@visactor/vseed 0.1.1 → 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 +120 -28
- package/dist/dataReshape/constant.d.ts +0 -8
- package/dist/dataReshape/dataReshapeByEncoding.d.ts +1 -0
- package/dist/dataReshape/foldMeasures.d.ts +7 -24
- package/dist/index.cjs +820 -506
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +802 -464
- package/dist/index.js.map +1 -1
- package/dist/pipeline/advanced/chart/pipes/encoding/index.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/{init/autoDualMeasures.d.ts → encoding/line.d.ts} +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 +4 -0
- package/dist/pipeline/spec/chart/pipes/color/colorAreaStyleFill.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/color/colorBarStyleFill.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/color/colorLineStyleFill.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/color/colorPointStyleFill.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/color/index.d.ts +7 -0
- package/dist/pipeline/spec/chart/pipes/{tooltip/tooltipDisable.d.ts → color/linearColor.d.ts} +1 -1
- package/dist/pipeline/spec/chart/pipes/color/linearColorForDualAxis.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/legend/colorLegend.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/legend/index.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/legend/pivotColorLegend.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/tooltip/index.d.ts +0 -1
- package/dist/pipeline/utils/chatType.d.ts +1 -1
- package/dist/pipeline/utils/dimensions/find.d.ts +0 -2
- package/dist/pipeline/utils/dimensions/index.d.ts +0 -1
- package/dist/pipeline/utils/dimensions/typeGuard.d.ts +0 -4
- package/dist/types/advancedVSeed.d.ts +53 -14
- package/dist/types/chartType/area/zArea.d.ts +14 -0
- package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +14 -0
- package/dist/types/chartType/bar/zBar.d.ts +14 -0
- package/dist/types/chartType/barParallel/zBarParallel.d.ts +14 -0
- package/dist/types/chartType/barPercent/zBarPercent.d.ts +14 -0
- package/dist/types/chartType/column/zColumn.d.ts +14 -0
- package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +14 -0
- package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +14 -0
- package/dist/types/chartType/donut/zDonut.d.ts +14 -0
- package/dist/types/chartType/dualAxis/zDualAxis.d.ts +66 -0
- package/dist/types/chartType/funnel/zFunnel.d.ts +15 -0
- package/dist/types/chartType/heatmap/zHeatmap.d.ts +15 -0
- package/dist/types/chartType/line/line.d.ts +0 -1
- package/dist/types/chartType/line/zLine.d.ts +14 -0
- package/dist/types/chartType/pie/zPie.d.ts +14 -0
- package/dist/types/chartType/pivotTable/zPivotTable.d.ts +13 -0
- package/dist/types/chartType/radar/zRadar.d.ts +14 -0
- package/dist/types/chartType/rose/zRose.d.ts +14 -0
- package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +14 -0
- package/dist/types/chartType/scatter/zScatter.d.ts +66 -0
- package/dist/types/chartType/table/zTable.d.ts +13 -0
- package/dist/types/properties/config/color/color.d.ts +8 -2
- package/dist/types/properties/config/config.d.ts +36 -0
- package/dist/types/properties/config/legend/legend.d.ts +9 -5
- package/dist/types/properties/datasetReshapeInfo/datasetReshapeInfo.d.ts +2 -0
- package/dist/types/properties/datasetReshapeInfo/zDatasetReshapeInfo.d.ts +6 -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/properties/theme/customTheme.d.ts +36 -0
- package/dist/types/zVseed.d.ts +384 -0
- package/dist/umd/index.js +820 -490
- package/dist/umd/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/pipeline/advanced/chart/pipes/init/autoScatterMeasures.d.ts +0 -2
package/dist/index.js
CHANGED
@@ -713,32 +713,6 @@ const autoPivotMeasures = (advancedVSeed, context)=>{
|
|
713
713
|
}));
|
714
714
|
return result;
|
715
715
|
};
|
716
|
-
const findDimensionById = (dimensions = [], id)=>{
|
717
|
-
if (!dimensions) return;
|
718
|
-
let result;
|
719
|
-
preorderTraverse(dimensions, (node)=>{
|
720
|
-
if (!('children' in node)) {
|
721
|
-
if (node.id === id) {
|
722
|
-
result = node;
|
723
|
-
return true;
|
724
|
-
}
|
725
|
-
}
|
726
|
-
return false;
|
727
|
-
});
|
728
|
-
return result;
|
729
|
-
};
|
730
|
-
const findFirstDimension = (dimensions = [])=>{
|
731
|
-
if (!dimensions) return;
|
732
|
-
let result;
|
733
|
-
preorderTraverse(dimensions, (node)=>{
|
734
|
-
if (!('children' in node)) {
|
735
|
-
result = node;
|
736
|
-
return true;
|
737
|
-
}
|
738
|
-
return false;
|
739
|
-
});
|
740
|
-
return result;
|
741
|
-
};
|
742
716
|
const findAllDimensions = (dimensions = [])=>{
|
743
717
|
if (!dimensions) return [];
|
744
718
|
const result = [];
|
@@ -1062,6 +1036,39 @@ const initAdvancedVSeed_initAdvancedVSeed = (advancedVSeed, context)=>{
|
|
1062
1036
|
locale: locale || 'zh-CN'
|
1063
1037
|
};
|
1064
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
|
+
};
|
1065
1072
|
const measureDepth = (measures = [])=>{
|
1066
1073
|
if (!measures) return 0;
|
1067
1074
|
let depth = 1;
|
@@ -1080,23 +1087,26 @@ const isVTable = (vseed)=>[
|
|
1080
1087
|
const isVChart = (vseed)=>!isVTable(vseed);
|
1081
1088
|
const isPivotChart = (vseed)=>{
|
1082
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
|
+
}
|
1083
1094
|
if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
|
1084
1095
|
const { dimensions = [] } = vseed;
|
1085
1096
|
const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
|
1086
1097
|
if (hasRowOrColumnDimension) return true;
|
1087
1098
|
if ('scatter' === vseed.chartType) {
|
1088
|
-
if (vseed
|
1099
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1089
1100
|
const depth = measureDepth(vseed.measures);
|
1090
|
-
|
1091
|
-
return false;
|
1101
|
+
return 3 === depth;
|
1092
1102
|
}
|
1093
1103
|
if (vseed.scatterMeasures && vseed.scatterMeasures.length > 1) return true;
|
1104
|
+
return false;
|
1094
1105
|
}
|
1095
1106
|
if ('dualAxis' === vseed.chartType) {
|
1096
|
-
if (vseed
|
1107
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1097
1108
|
const depth = measureDepth(vseed.measures);
|
1098
|
-
|
1099
|
-
return false;
|
1109
|
+
return 3 === depth;
|
1100
1110
|
}
|
1101
1111
|
if (vseed.dualMeasures && vseed.dualMeasures.length > 1) return true;
|
1102
1112
|
}
|
@@ -1107,77 +1117,49 @@ const isPivotChart = (vseed)=>{
|
|
1107
1117
|
const hasMeasureGroup = measures && measures.some((measure)=>measure && measure.children);
|
1108
1118
|
return hasRowOrColumnDimension || hasMeasureGroup;
|
1109
1119
|
};
|
1110
|
-
const
|
1111
|
-
const result = {
|
1112
|
-
...advancedVSeed
|
1113
|
-
};
|
1114
|
-
const { vseed } = context;
|
1115
|
-
const { measures, dataset } = vseed;
|
1116
|
-
if (!dataset) throw new Error('dataset is required');
|
1117
|
-
if (0 === dataset.length) return result;
|
1118
|
-
if (isPivotChart(vseed)) return autoMeasureGroup(advancedVSeed, context);
|
1119
|
-
if (measures) {
|
1120
|
-
result.measures = measures;
|
1121
|
-
return result;
|
1122
|
-
}
|
1123
|
-
const top100dataset = dataset.slice(0, 100);
|
1124
|
-
const sample = top100dataset.reduce((prev, cur)=>({
|
1125
|
-
...prev,
|
1126
|
-
...cur
|
1127
|
-
}), {});
|
1128
|
-
result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
1129
|
-
'',
|
1130
|
-
null,
|
1131
|
-
void 0
|
1132
|
-
].includes(key)).map((measure)=>({
|
1133
|
-
id: measure,
|
1134
|
-
alias: measure
|
1135
|
-
}));
|
1136
|
-
return result;
|
1137
|
-
};
|
1138
|
-
const autoMeasureGroup = (advancedVSeed, context)=>{
|
1120
|
+
const buildMeasures = (advancedVSeed, context)=>{
|
1139
1121
|
const { vseed } = context;
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
if (!hasMeasureGroup) {
|
1144
|
-
const newMeasures = [
|
1145
|
-
{
|
1146
|
-
id: 'measureGroup',
|
1147
|
-
alias: 'measureGroup',
|
1148
|
-
children: measures
|
1149
|
-
}
|
1150
|
-
];
|
1151
|
-
return {
|
1152
|
-
...advancedVSeed,
|
1153
|
-
measures: newMeasures
|
1154
|
-
};
|
1122
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
1123
|
+
advancedVSeed.measures = vseed.measures;
|
1124
|
+
return advancedVSeed;
|
1155
1125
|
}
|
1156
|
-
|
1157
|
-
|
1158
|
-
|
1159
|
-
if (currentGroup.children?.length) {
|
1160
|
-
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1161
|
-
currentGroup.id = currentGroup.alias + currentGroup.children.map((item)=>item.id).join('-');
|
1162
|
-
measureGroups.push(currentGroup);
|
1163
|
-
currentGroup = createEmptyMeasureGroup();
|
1164
|
-
}
|
1165
|
-
measureGroups.push(measure);
|
1166
|
-
} else currentGroup.children?.push(measure);
|
1167
|
-
if (currentGroup.children?.length) {
|
1168
|
-
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1169
|
-
currentGroup.id = currentGroup.alias + currentGroup.children.map((item)=>item.id).join('-');
|
1170
|
-
measureGroups.push(currentGroup);
|
1171
|
-
currentGroup = createEmptyMeasureGroup();
|
1126
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
1127
|
+
advancedVSeed.measures = generateMeasuresByParentId(vseed.measures);
|
1128
|
+
return advancedVSeed;
|
1172
1129
|
}
|
1173
|
-
|
1130
|
+
const basicMeasures = getBasicMeasures(vseed);
|
1131
|
+
if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(basicMeasures);
|
1132
|
+
else advancedVSeed.measures = basicMeasures;
|
1174
1133
|
return advancedVSeed;
|
1175
1134
|
};
|
1176
|
-
const
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
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
|
+
});
|
1180
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
|
+
};
|
1181
1163
|
const ORIGINAL_DATA = '__OriginalData__';
|
1182
1164
|
const Separator = '-';
|
1183
1165
|
const FoldMeasureName = '__MeaName__';
|
@@ -1194,8 +1176,6 @@ const AngleEncoding = '__Dim_Angle__';
|
|
1194
1176
|
const DetailEncoding = '__Dim_Detail__';
|
1195
1177
|
const ColorEncoding = '__Dim_Color__';
|
1196
1178
|
const ColorIdEncoding = '__Dim_ColorId__';
|
1197
|
-
const UnfoldDimensionGroup = '__DimGroup__';
|
1198
|
-
const UnfoldDimensionGroupId = '__DimGroupID__';
|
1199
1179
|
const autoDimensions_autoDimensions = (advancedVSeed, context)=>{
|
1200
1180
|
const result = {
|
1201
1181
|
...advancedVSeed
|
@@ -1235,7 +1215,7 @@ const autoDimensions_autoDimensions = (advancedVSeed, context)=>{
|
|
1235
1215
|
result.dimensions.push(MeaName);
|
1236
1216
|
return result;
|
1237
1217
|
};
|
1238
|
-
const
|
1218
|
+
const encodingForLine = (advancedVSeed, context)=>{
|
1239
1219
|
const { vseed } = context;
|
1240
1220
|
const { dimensions } = advancedVSeed;
|
1241
1221
|
if (!dimensions) return advancedVSeed;
|
@@ -1248,10 +1228,7 @@ const encodingForColumn = (advancedVSeed, context)=>{
|
|
1248
1228
|
(dimensions[1] || dimensions[0]).id
|
1249
1229
|
];
|
1250
1230
|
const detail = encoding.detail || [];
|
1251
|
-
const mergedDetail =
|
1252
|
-
...color,
|
1253
|
-
...detail
|
1254
|
-
]);
|
1231
|
+
const mergedDetail = 0 === detail.length ? dimensions.map((d)=>d.id).filter((id)=>!x.includes(id)) : encoding.detail;
|
1255
1232
|
return {
|
1256
1233
|
...advancedVSeed,
|
1257
1234
|
encoding: {
|
@@ -1283,11 +1260,20 @@ const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
|
|
1283
1260
|
if (usePivotChart) return execPipeline(pivotPipeline, context, advancedVSeed);
|
1284
1261
|
return execPipeline(pipeline, context, advancedVSeed);
|
1285
1262
|
};
|
1286
|
-
const foldMeasures = (dataset, measures,
|
1263
|
+
const foldMeasures = (dataset, measures, encoding, options)=>{
|
1264
|
+
const { measureId, measureName, measureValue, colorMeasureId } = options || {};
|
1287
1265
|
const foldInfo = {
|
1288
1266
|
measureId,
|
1289
1267
|
measureName,
|
1290
1268
|
measureValue,
|
1269
|
+
colorRange: [
|
1270
|
+
0,
|
1271
|
+
1
|
1272
|
+
],
|
1273
|
+
measureRange: [
|
1274
|
+
0,
|
1275
|
+
1
|
1276
|
+
],
|
1291
1277
|
foldMap: {}
|
1292
1278
|
};
|
1293
1279
|
const result = new Array(dataset.length * measures.length);
|
@@ -1304,6 +1290,19 @@ const foldMeasures = (dataset, measures, measureId = FoldMeasureId, measureName
|
|
1304
1290
|
datum[measureId] = id;
|
1305
1291
|
datum[measureName] = alias || id;
|
1306
1292
|
datum[measureValue] = dataset[i][id];
|
1293
|
+
if (colorMeasureId) {
|
1294
|
+
const value = datum[ORIGINAL_DATA][colorMeasureId];
|
1295
|
+
datum[ColorEncoding] = value;
|
1296
|
+
datum[ColorIdEncoding] = colorMeasureId;
|
1297
|
+
foldInfo.colorRange = [
|
1298
|
+
Math.min(foldInfo.colorRange[0] || 1 / 0, Number(value)),
|
1299
|
+
Math.max(foldInfo.colorRange[1] || -1 / 0, Number(value))
|
1300
|
+
];
|
1301
|
+
}
|
1302
|
+
foldInfo.measureRange = [
|
1303
|
+
Math.min(foldInfo.measureRange[0] || 1 / 0, Number(datum[id])),
|
1304
|
+
Math.max(foldInfo.measureRange[1] || -1 / 0, Number(datum[id]))
|
1305
|
+
];
|
1307
1306
|
foldInfo.foldMap[id] = alias;
|
1308
1307
|
result[index++] = datum;
|
1309
1308
|
}
|
@@ -1339,7 +1338,7 @@ const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
|
|
1339
1338
|
applyEncoding(YEncoding, yDimensions, datum, separator);
|
1340
1339
|
applyEncoding(ColorEncoding, colorDimensions, datum, separator);
|
1341
1340
|
applyEncoding(DetailEncoding, detailDimensions, datum, separator);
|
1342
|
-
if (!datum[ColorEncoding]) continue;
|
1341
|
+
if (!colorDimensions.length || !datum[ColorEncoding]) continue;
|
1343
1342
|
const measureId = String(datum[foldMeasureId]);
|
1344
1343
|
const colorItem = String(datum[ColorEncoding]);
|
1345
1344
|
const colorId = colorItemAsId ? colorItem : measureId ? [
|
@@ -1360,29 +1359,14 @@ const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
|
|
1360
1359
|
const applyEncoding = (encoding, dimensions, datum, separator)=>{
|
1361
1360
|
if (encoding && dimensions.length) datum[encoding] = dimensions.map((dim)=>String(datum[dim.id])).join(separator);
|
1362
1361
|
};
|
1363
|
-
const emptyReshapeResult = {
|
1364
|
-
dataset: [],
|
1365
|
-
foldInfo: {
|
1366
|
-
foldMap: {},
|
1367
|
-
measureId: '',
|
1368
|
-
measureName: '',
|
1369
|
-
measureValue: ''
|
1370
|
-
},
|
1371
|
-
unfoldInfo: {
|
1372
|
-
encodingAngle: AngleEncoding,
|
1373
|
-
encodingX: XEncoding,
|
1374
|
-
encodingY: YEncoding,
|
1375
|
-
encodingDetail: DetailEncoding,
|
1376
|
-
encodingColor: ColorEncoding,
|
1377
|
-
encodingColorId: ColorIdEncoding,
|
1378
|
-
colorItems: [],
|
1379
|
-
colorIdMap: {}
|
1380
|
-
}
|
1381
|
-
};
|
1382
1362
|
const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)=>{
|
1383
|
-
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false } = options || {};
|
1384
|
-
|
1385
|
-
|
1363
|
+
const { foldMeasureId = FoldMeasureId, foldMeasureName = FoldMeasureName, foldMeasureValue = FoldMeasureValue, colorItemAsId = false, colorMeasureId } = options || {};
|
1364
|
+
const { dataset: foldedDataset, foldInfo } = foldMeasures(dataset, measures, encoding, {
|
1365
|
+
measureId: foldMeasureId,
|
1366
|
+
measureName: foldMeasureName,
|
1367
|
+
measureValue: foldMeasureValue,
|
1368
|
+
colorMeasureId
|
1369
|
+
});
|
1386
1370
|
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
|
1387
1371
|
foldMeasureId,
|
1388
1372
|
separator: Separator,
|
@@ -1394,6 +1378,24 @@ const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)
|
|
1394
1378
|
unfoldInfo
|
1395
1379
|
};
|
1396
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
|
+
};
|
1397
1399
|
const reshapeWithEncoding = (advancedVSeed, context)=>{
|
1398
1400
|
const result = {
|
1399
1401
|
...advancedVSeed
|
@@ -1403,7 +1405,9 @@ const reshapeWithEncoding = (advancedVSeed, context)=>{
|
|
1403
1405
|
const { dimensions, measures, encoding } = advancedVSeed;
|
1404
1406
|
if (!measures || !dimensions || !dataset || !encoding) return result;
|
1405
1407
|
if (0 === measures.length) throw new Error('measures can not be empty');
|
1406
|
-
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
|
+
});
|
1407
1411
|
return {
|
1408
1412
|
...result,
|
1409
1413
|
dataset: newDatasets,
|
@@ -1439,7 +1443,8 @@ const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
|
|
1439
1443
|
if (!measures) return;
|
1440
1444
|
const groupId = measureGroup.id;
|
1441
1445
|
const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, measures, encoding, {
|
1442
|
-
foldMeasureValue: `${FoldMeasureValue}${groupId}
|
1446
|
+
foldMeasureValue: `${FoldMeasureValue}${groupId}`,
|
1447
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
1443
1448
|
});
|
1444
1449
|
const reshapeInfo = {
|
1445
1450
|
id: groupId,
|
@@ -1646,9 +1651,9 @@ const annotation_annotation = (advancedVSeed, context)=>{
|
|
1646
1651
|
};
|
1647
1652
|
const lineAdvancedPipeline = [
|
1648
1653
|
initAdvancedVSeed_initAdvancedVSeed,
|
1649
|
-
|
1654
|
+
buildMeasures,
|
1650
1655
|
autoDimensions_autoDimensions,
|
1651
|
-
|
1656
|
+
encodingForLine,
|
1652
1657
|
pivotAdapter([
|
1653
1658
|
reshapeWithEncoding
|
1654
1659
|
], [
|
@@ -1672,7 +1677,7 @@ const initLine = (spec, context)=>{
|
|
1672
1677
|
result.direction = 'vertical';
|
1673
1678
|
result.xField = unfoldInfo.encodingX;
|
1674
1679
|
result.yField = foldInfo.measureValue;
|
1675
|
-
result.seriesField = unfoldInfo.encodingColorId;
|
1680
|
+
result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
1676
1681
|
result.padding = 0;
|
1677
1682
|
result.region = [
|
1678
1683
|
{
|
@@ -1733,6 +1738,31 @@ const createSpecifiedForColorMapping = (colorMapping, colorIdMap, colorItems)=>{
|
|
1733
1738
|
...accurateMap
|
1734
1739
|
};
|
1735
1740
|
};
|
1741
|
+
const linearColor = (spec, context)=>{
|
1742
|
+
const result = {
|
1743
|
+
...spec
|
1744
|
+
};
|
1745
|
+
const { advancedVSeed } = context;
|
1746
|
+
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
1747
|
+
const { unfoldInfo, id } = datasetReshapeInfo[0];
|
1748
|
+
const baseConfig = advancedVSeed.config[chartType];
|
1749
|
+
if (!baseConfig || !baseConfig.color) return result;
|
1750
|
+
const { color } = baseConfig;
|
1751
|
+
const { colorScheme, linearColorScheme } = color;
|
1752
|
+
result.color = {
|
1753
|
+
type: 'linear',
|
1754
|
+
range: linearColorScheme || colorScheme || [],
|
1755
|
+
domain: [
|
1756
|
+
{
|
1757
|
+
dataId: id,
|
1758
|
+
fields: [
|
1759
|
+
unfoldInfo.encodingColor
|
1760
|
+
]
|
1761
|
+
}
|
1762
|
+
]
|
1763
|
+
};
|
1764
|
+
return result;
|
1765
|
+
};
|
1736
1766
|
const background_backgroundColor = (spec, context)=>{
|
1737
1767
|
const result = {
|
1738
1768
|
...spec
|
@@ -2240,6 +2270,95 @@ const discreteLegend = (spec, context)=>{
|
|
2240
2270
|
};
|
2241
2271
|
return result;
|
2242
2272
|
};
|
2273
|
+
const colorLegend = (spec, context)=>{
|
2274
|
+
const result = {
|
2275
|
+
...spec
|
2276
|
+
};
|
2277
|
+
const { advancedVSeed } = context;
|
2278
|
+
const { datasetReshapeInfo, chartType } = advancedVSeed;
|
2279
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2280
|
+
const baseConfig = advancedVSeed.config[chartType];
|
2281
|
+
if (!baseConfig || !baseConfig.legend) return result;
|
2282
|
+
const { legend } = baseConfig;
|
2283
|
+
const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight } = legend || {};
|
2284
|
+
const orient = [
|
2285
|
+
'bottom',
|
2286
|
+
'bottomLeft',
|
2287
|
+
'bottomRight',
|
2288
|
+
'bl',
|
2289
|
+
'br'
|
2290
|
+
].includes(position) ? 'bottom' : [
|
2291
|
+
'top',
|
2292
|
+
'topLeft',
|
2293
|
+
'topRight',
|
2294
|
+
'tl',
|
2295
|
+
'tr'
|
2296
|
+
].includes(position) ? 'top' : [
|
2297
|
+
'left',
|
2298
|
+
'leftTop',
|
2299
|
+
'leftBottom',
|
2300
|
+
'lt',
|
2301
|
+
'lb'
|
2302
|
+
].includes(position) ? 'left' : 'right';
|
2303
|
+
const legendPosition = [
|
2304
|
+
'topLeft',
|
2305
|
+
'bottomLeft',
|
2306
|
+
'leftTop',
|
2307
|
+
'rightTop',
|
2308
|
+
'lt',
|
2309
|
+
'rt',
|
2310
|
+
'tl',
|
2311
|
+
'bl'
|
2312
|
+
].includes(position) ? 'start' : [
|
2313
|
+
'topRight',
|
2314
|
+
'bottomRight',
|
2315
|
+
'leftBottom',
|
2316
|
+
'rightBottom',
|
2317
|
+
'lb',
|
2318
|
+
'rb',
|
2319
|
+
'rt',
|
2320
|
+
'br'
|
2321
|
+
].includes(position) ? 'end' : 'middle';
|
2322
|
+
result.legends = {
|
2323
|
+
type: 'color',
|
2324
|
+
visible: enable,
|
2325
|
+
orient,
|
2326
|
+
position: legendPosition,
|
2327
|
+
padding: 0,
|
2328
|
+
field: unfoldInfo.encodingColor,
|
2329
|
+
maxWidth: '30%',
|
2330
|
+
startText: {
|
2331
|
+
visible: true,
|
2332
|
+
style: {
|
2333
|
+
fill: labelFontColor,
|
2334
|
+
fontSize: labelFontSize,
|
2335
|
+
fontWeight: labelFontWeight
|
2336
|
+
}
|
2337
|
+
},
|
2338
|
+
endText: {
|
2339
|
+
visible: true,
|
2340
|
+
style: {
|
2341
|
+
fill: labelFontColor,
|
2342
|
+
fontSize: labelFontSize,
|
2343
|
+
fontWeight: labelFontWeight
|
2344
|
+
}
|
2345
|
+
}
|
2346
|
+
};
|
2347
|
+
return result;
|
2348
|
+
};
|
2349
|
+
const colorPointStyleFill = (stylePipe)=>(spec, context)=>{
|
2350
|
+
const result = stylePipe(spec, context);
|
2351
|
+
const { advancedVSeed } = context;
|
2352
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
2353
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2354
|
+
if (isLinearColor(advancedVSeed)) {
|
2355
|
+
if (result?.point?.style) result.point.style.fill = {
|
2356
|
+
field: unfoldInfo.encodingColor,
|
2357
|
+
scale: 'color'
|
2358
|
+
};
|
2359
|
+
}
|
2360
|
+
return result;
|
2361
|
+
};
|
2243
2362
|
const selector_selector = (vchartDatum, selector)=>{
|
2244
2363
|
if (!selector) return true;
|
2245
2364
|
const selectorMode = 'And';
|
@@ -2336,7 +2455,10 @@ const pointStyle_pointStyle = (spec, context)=>{
|
|
2336
2455
|
const { markStyle } = advancedVSeed;
|
2337
2456
|
const { pointStyle } = markStyle;
|
2338
2457
|
const result = {
|
2339
|
-
...spec
|
2458
|
+
...spec,
|
2459
|
+
point: {
|
2460
|
+
style: {}
|
2461
|
+
}
|
2340
2462
|
};
|
2341
2463
|
if (!pointStyle) return result;
|
2342
2464
|
const pointStyles = Array.isArray(pointStyle) ? pointStyle : [
|
@@ -2380,6 +2502,7 @@ const pointStyle_pointStyle = (spec, context)=>{
|
|
2380
2502
|
return {
|
2381
2503
|
...result,
|
2382
2504
|
point: {
|
2505
|
+
...result.point,
|
2383
2506
|
state: {
|
2384
2507
|
...customMap
|
2385
2508
|
}
|
@@ -2435,15 +2558,31 @@ const pointStateHover = (spec, context)=>{
|
|
2435
2558
|
};
|
2436
2559
|
return result;
|
2437
2560
|
};
|
2561
|
+
const colorLineStyleFill = (stylePipe)=>(spec, context)=>{
|
2562
|
+
const result = stylePipe(spec, context);
|
2563
|
+
const { advancedVSeed } = context;
|
2564
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
2565
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
2566
|
+
if (isLinearColor(advancedVSeed)) {
|
2567
|
+
if (result?.line?.style) result.line.style.stroke = {
|
2568
|
+
field: unfoldInfo.encodingColor,
|
2569
|
+
scale: 'color'
|
2570
|
+
};
|
2571
|
+
}
|
2572
|
+
return result;
|
2573
|
+
};
|
2438
2574
|
const lineStyle_lineStyle = (spec, context)=>{
|
2439
2575
|
const { advancedVSeed } = context;
|
2440
2576
|
const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
|
2441
2577
|
const { unfoldInfo } = datasetReshapeInfo[0];
|
2442
2578
|
const { lineStyle } = markStyle;
|
2443
|
-
if (!lineStyle) return spec;
|
2444
2579
|
const result = {
|
2445
|
-
...spec
|
2580
|
+
...spec,
|
2581
|
+
line: {
|
2582
|
+
style: {}
|
2583
|
+
}
|
2446
2584
|
};
|
2585
|
+
if (!lineStyle) return result;
|
2447
2586
|
const lineStyles = Array.isArray(lineStyle) ? lineStyle : [
|
2448
2587
|
lineStyle
|
2449
2588
|
];
|
@@ -2487,6 +2626,7 @@ const lineStyle_lineStyle = (spec, context)=>{
|
|
2487
2626
|
return {
|
2488
2627
|
...result,
|
2489
2628
|
line: {
|
2629
|
+
...result.line,
|
2490
2630
|
state: {
|
2491
2631
|
...customMap
|
2492
2632
|
}
|
@@ -3259,7 +3399,7 @@ const pivotAdapter_pivotAdapter = (pipeline, pivotPipeline)=>(spec, context)=>{
|
|
3259
3399
|
};
|
3260
3400
|
const line_line = [
|
3261
3401
|
initLine,
|
3262
|
-
color_color,
|
3402
|
+
colorAdapter(color_color, linearColor),
|
3263
3403
|
background_backgroundColor,
|
3264
3404
|
datasetXY,
|
3265
3405
|
progressive,
|
@@ -3268,10 +3408,10 @@ const line_line = [
|
|
3268
3408
|
label_label,
|
3269
3409
|
tooltip_tooltip,
|
3270
3410
|
verticalCrosshairLine,
|
3271
|
-
discreteLegend,
|
3272
|
-
pointStyle_pointStyle,
|
3411
|
+
colorAdapter(discreteLegend, colorLegend),
|
3412
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
3273
3413
|
pointStateDimensionHover,
|
3274
|
-
lineStyle_lineStyle,
|
3414
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
3275
3415
|
annotationPoint_annotationPoint,
|
3276
3416
|
annotationVerticalLine_annotationVerticalLine,
|
3277
3417
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3312,9 +3452,51 @@ const registerLine = ()=>{
|
|
3312
3452
|
Builder._advancedPipelineMap.line = lineAdvancedPipeline;
|
3313
3453
|
Builder._specPipelineMap.line = lineSpecPipeline;
|
3314
3454
|
};
|
3455
|
+
const encodingForColumn = (advancedVSeed, context)=>{
|
3456
|
+
const { vseed } = context;
|
3457
|
+
const { dimensions } = advancedVSeed;
|
3458
|
+
if (!dimensions) return advancedVSeed;
|
3459
|
+
const encoding = vseed.encoding;
|
3460
|
+
if (encoding) {
|
3461
|
+
const x = encoding.x || [
|
3462
|
+
dimensions[0].id
|
3463
|
+
];
|
3464
|
+
const color = encoding.color || [
|
3465
|
+
(dimensions[1] || dimensions[0]).id
|
3466
|
+
];
|
3467
|
+
const detail = encoding.detail || [];
|
3468
|
+
const mergedDetail = 0 === detail.length ? unique([
|
3469
|
+
...color,
|
3470
|
+
...detail
|
3471
|
+
]) : detail;
|
3472
|
+
return {
|
3473
|
+
...advancedVSeed,
|
3474
|
+
encoding: {
|
3475
|
+
...encoding,
|
3476
|
+
x,
|
3477
|
+
color,
|
3478
|
+
detail: mergedDetail
|
3479
|
+
}
|
3480
|
+
};
|
3481
|
+
}
|
3482
|
+
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
3483
|
+
const mergedEncoding = {
|
3484
|
+
x: dimensions.slice(0, 1).map((item)=>item.id),
|
3485
|
+
color: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
3486
|
+
detail: dimensions.slice(onlyMeasureName ? 0 : 1).map((item)=>item.id),
|
3487
|
+
tooltip: dimensions.map((item)=>item.id),
|
3488
|
+
label: [],
|
3489
|
+
row: [],
|
3490
|
+
column: []
|
3491
|
+
};
|
3492
|
+
return {
|
3493
|
+
...advancedVSeed,
|
3494
|
+
encoding: mergedEncoding
|
3495
|
+
};
|
3496
|
+
};
|
3315
3497
|
const columnAdvancedPipeline = [
|
3316
3498
|
initAdvancedVSeed_initAdvancedVSeed,
|
3317
|
-
|
3499
|
+
buildMeasures,
|
3318
3500
|
autoDimensions_autoDimensions,
|
3319
3501
|
encodingForColumn,
|
3320
3502
|
pivotAdapter([
|
@@ -3354,9 +3536,14 @@ const stackCornerRadius_stackCornerRadius = (spec, context)=>{
|
|
3354
3536
|
const { advancedVSeed, vseed } = context;
|
3355
3537
|
const { chartType } = vseed;
|
3356
3538
|
const stackCornerRadius = advancedVSeed.config?.[chartType]?.stackCornerRadius;
|
3539
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
3540
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
3357
3541
|
return {
|
3358
3542
|
...spec,
|
3359
|
-
stackCornerRadius
|
3543
|
+
stackCornerRadius: (_, datum)=>{
|
3544
|
+
if (datum[foldInfo.measureValue] > 0) return stackCornerRadius;
|
3545
|
+
return 0;
|
3546
|
+
}
|
3360
3547
|
};
|
3361
3548
|
};
|
3362
3549
|
const stackInverse = (spec)=>{
|
@@ -3406,6 +3593,19 @@ const verticalCrosshairRect = (spec, context)=>{
|
|
3406
3593
|
};
|
3407
3594
|
return result;
|
3408
3595
|
};
|
3596
|
+
const colorBarStyleFill = (stylePipe)=>(spec, context)=>{
|
3597
|
+
const result = stylePipe(spec, context);
|
3598
|
+
const { advancedVSeed } = context;
|
3599
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
3600
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
3601
|
+
if (isLinearColor(advancedVSeed)) {
|
3602
|
+
if (result?.bar?.style) result.bar.style.fill = {
|
3603
|
+
field: unfoldInfo.encodingColor,
|
3604
|
+
scale: 'color'
|
3605
|
+
};
|
3606
|
+
}
|
3607
|
+
return result;
|
3608
|
+
};
|
3409
3609
|
const barStyle_barStyle = (spec, context)=>{
|
3410
3610
|
const { advancedVSeed } = context;
|
3411
3611
|
const { markStyle, dataset = [] } = advancedVSeed;
|
@@ -3594,18 +3794,105 @@ const annotationAreaBand = (spec, context)=>{
|
|
3594
3794
|
cornerRadius: areaBorderRadius
|
3595
3795
|
}
|
3596
3796
|
}
|
3597
|
-
};
|
3598
|
-
});
|
3797
|
+
};
|
3798
|
+
});
|
3799
|
+
return {
|
3800
|
+
...spec,
|
3801
|
+
markArea: markArea
|
3802
|
+
};
|
3803
|
+
};
|
3804
|
+
const pivotColorLegend = (spec, context)=>{
|
3805
|
+
const result = {
|
3806
|
+
...spec
|
3807
|
+
};
|
3808
|
+
const { advancedVSeed } = context;
|
3809
|
+
const { chartType } = advancedVSeed;
|
3810
|
+
const baseConfig = advancedVSeed.config[chartType];
|
3811
|
+
if (!baseConfig || !baseConfig.legend) return result;
|
3812
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
3813
|
+
const max = Math.max(...datasetReshapeInfo.map((d)=>d.foldInfo.colorRange[1]));
|
3814
|
+
const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.colorRange[0]));
|
3815
|
+
const { legend, color } = baseConfig;
|
3816
|
+
const { colorScheme, linearColorScheme } = color;
|
3817
|
+
const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {};
|
3818
|
+
const orient = [
|
3819
|
+
'bottom',
|
3820
|
+
'bottomLeft',
|
3821
|
+
'bottomRight',
|
3822
|
+
'bl',
|
3823
|
+
'br'
|
3824
|
+
].includes(position) ? 'bottom' : [
|
3825
|
+
'top',
|
3826
|
+
'topLeft',
|
3827
|
+
'topRight',
|
3828
|
+
'tl',
|
3829
|
+
'tr'
|
3830
|
+
].includes(position) ? 'top' : [
|
3831
|
+
'left',
|
3832
|
+
'leftTop',
|
3833
|
+
'leftBottom',
|
3834
|
+
'lt',
|
3835
|
+
'lb'
|
3836
|
+
].includes(position) ? 'left' : 'right';
|
3837
|
+
const legendPosition = [
|
3838
|
+
'topLeft',
|
3839
|
+
'bottomLeft',
|
3840
|
+
'leftTop',
|
3841
|
+
'rightTop',
|
3842
|
+
'lt',
|
3843
|
+
'rt',
|
3844
|
+
'tl',
|
3845
|
+
'bl'
|
3846
|
+
].includes(position) ? 'start' : [
|
3847
|
+
'topRight',
|
3848
|
+
'bottomRight',
|
3849
|
+
'leftBottom',
|
3850
|
+
'rightBottom',
|
3851
|
+
'lb',
|
3852
|
+
'rb',
|
3853
|
+
'rt',
|
3854
|
+
'br'
|
3855
|
+
].includes(position) ? 'end' : 'middle';
|
3856
|
+
const legends = {
|
3857
|
+
visible: enable,
|
3858
|
+
type: 'color',
|
3859
|
+
orient,
|
3860
|
+
position: legendPosition,
|
3861
|
+
colors: linearColorScheme || colorScheme || [],
|
3862
|
+
value: [
|
3863
|
+
min,
|
3864
|
+
max
|
3865
|
+
],
|
3866
|
+
min: min,
|
3867
|
+
max: max,
|
3868
|
+
maxWidth: '30%',
|
3869
|
+
startText: {
|
3870
|
+
visible: true,
|
3871
|
+
style: {
|
3872
|
+
fill: labelFontColor,
|
3873
|
+
fontSize: labelFontSize,
|
3874
|
+
fontWeight: labelFontWeight
|
3875
|
+
}
|
3876
|
+
},
|
3877
|
+
endText: {
|
3878
|
+
visible: true,
|
3879
|
+
style: {
|
3880
|
+
fill: labelFontColor,
|
3881
|
+
fontSize: labelFontSize,
|
3882
|
+
fontWeight: labelFontWeight
|
3883
|
+
}
|
3884
|
+
}
|
3885
|
+
};
|
3599
3886
|
return {
|
3600
|
-
...
|
3601
|
-
|
3887
|
+
...result,
|
3888
|
+
legends
|
3602
3889
|
};
|
3603
3890
|
};
|
3604
3891
|
const column = [
|
3605
3892
|
initColumn,
|
3606
3893
|
stackCornerRadius_stackCornerRadius,
|
3607
3894
|
stackInverse,
|
3608
|
-
color_color,
|
3895
|
+
colorAdapter(color_color, linearColor),
|
3609
3896
|
background_backgroundColor,
|
3610
3897
|
datasetXY,
|
3611
3898
|
progressive,
|
@@ -3614,8 +3901,8 @@ const column = [
|
|
3614
3901
|
label_label,
|
3615
3902
|
tooltip_tooltip,
|
3616
3903
|
verticalCrosshairRect,
|
3617
|
-
discreteLegend,
|
3618
|
-
barStyle_barStyle,
|
3904
|
+
colorAdapter(discreteLegend, colorLegend),
|
3905
|
+
colorBarStyleFill(barStyle_barStyle),
|
3619
3906
|
annotationPoint_annotationPoint,
|
3620
3907
|
annotationVerticalLine_annotationVerticalLine,
|
3621
3908
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3630,7 +3917,7 @@ const pivotColumn = [
|
|
3630
3917
|
initColumn,
|
3631
3918
|
stackCornerRadius_stackCornerRadius,
|
3632
3919
|
stackInverse,
|
3633
|
-
color_color,
|
3920
|
+
colorAdapter(color_color, linearColor),
|
3634
3921
|
background_backgroundColor,
|
3635
3922
|
datasetXY,
|
3636
3923
|
progressive,
|
@@ -3639,7 +3926,7 @@ const pivotColumn = [
|
|
3639
3926
|
label_label,
|
3640
3927
|
tooltip_tooltip,
|
3641
3928
|
verticalCrosshairRect,
|
3642
|
-
barStyle_barStyle,
|
3929
|
+
colorBarStyleFill(barStyle_barStyle),
|
3643
3930
|
annotationPoint_annotationPoint,
|
3644
3931
|
annotationVerticalLine_annotationVerticalLine,
|
3645
3932
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3647,7 +3934,7 @@ const pivotColumn = [
|
|
3647
3934
|
]),
|
3648
3935
|
pivotRowDimensions,
|
3649
3936
|
pivotColumnDimensions,
|
3650
|
-
pivotDiscreteLegend
|
3937
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
3651
3938
|
];
|
3652
3939
|
const columnSpecPipeline = [
|
3653
3940
|
pivotAdapter_pivotAdapter(column, pivotColumn)
|
@@ -3658,7 +3945,7 @@ const registerColumn = ()=>{
|
|
3658
3945
|
};
|
3659
3946
|
const columnParallelAdvancedPipeline = [
|
3660
3947
|
initAdvancedVSeed_initAdvancedVSeed,
|
3661
|
-
|
3948
|
+
buildMeasures,
|
3662
3949
|
autoDimensions_autoDimensions,
|
3663
3950
|
encodingForColumn,
|
3664
3951
|
pivotAdapter([
|
@@ -3703,7 +3990,7 @@ const initColumnParallel = (spec, context)=>{
|
|
3703
3990
|
const columnParallel = [
|
3704
3991
|
initColumnParallel,
|
3705
3992
|
stackCornerRadius_stackCornerRadius,
|
3706
|
-
color_color,
|
3993
|
+
colorAdapter(color_color, linearColor),
|
3707
3994
|
background_backgroundColor,
|
3708
3995
|
datasetXY,
|
3709
3996
|
progressive,
|
@@ -3711,9 +3998,9 @@ const columnParallel = [
|
|
3711
3998
|
yLinear,
|
3712
3999
|
label_label,
|
3713
4000
|
tooltip_tooltip,
|
3714
|
-
discreteLegend,
|
4001
|
+
colorAdapter(discreteLegend, colorLegend),
|
3715
4002
|
verticalCrosshairRect,
|
3716
|
-
barStyle_barStyle,
|
4003
|
+
colorBarStyleFill(barStyle_barStyle),
|
3717
4004
|
annotationPoint_annotationPoint,
|
3718
4005
|
annotationVerticalLine_annotationVerticalLine,
|
3719
4006
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3727,7 +4014,7 @@ const pivotColumnParallel = [
|
|
3727
4014
|
pivotIndicators_pivotIndicators([
|
3728
4015
|
initColumnParallel,
|
3729
4016
|
stackCornerRadius_stackCornerRadius,
|
3730
|
-
color_color,
|
4017
|
+
colorAdapter(color_color, linearColor),
|
3731
4018
|
background_backgroundColor,
|
3732
4019
|
datasetXY,
|
3733
4020
|
progressive,
|
@@ -3736,7 +4023,7 @@ const pivotColumnParallel = [
|
|
3736
4023
|
label_label,
|
3737
4024
|
tooltip_tooltip,
|
3738
4025
|
verticalCrosshairRect,
|
3739
|
-
barStyle_barStyle,
|
4026
|
+
colorBarStyleFill(barStyle_barStyle),
|
3740
4027
|
annotationPoint_annotationPoint,
|
3741
4028
|
annotationVerticalLine_annotationVerticalLine,
|
3742
4029
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3744,7 +4031,7 @@ const pivotColumnParallel = [
|
|
3744
4031
|
]),
|
3745
4032
|
pivotRowDimensions,
|
3746
4033
|
pivotColumnDimensions,
|
3747
|
-
pivotDiscreteLegend
|
4034
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
3748
4035
|
];
|
3749
4036
|
const columnParallelSpecPipeline = [
|
3750
4037
|
pivotAdapter_pivotAdapter(columnParallel, pivotColumnParallel)
|
@@ -3755,7 +4042,7 @@ const registerColumnParallel = ()=>{
|
|
3755
4042
|
};
|
3756
4043
|
const columnPercentAdvancedPipeline = [
|
3757
4044
|
initAdvancedVSeed_initAdvancedVSeed,
|
3758
|
-
|
4045
|
+
buildMeasures,
|
3759
4046
|
autoDimensions_autoDimensions,
|
3760
4047
|
encodingForColumn,
|
3761
4048
|
pivotAdapter([
|
@@ -3781,7 +4068,7 @@ const columnPercent = [
|
|
3781
4068
|
initColumn,
|
3782
4069
|
stackCornerRadius_stackCornerRadius,
|
3783
4070
|
stackInverse,
|
3784
|
-
color_color,
|
4071
|
+
colorAdapter(color_color, linearColor),
|
3785
4072
|
background_backgroundColor,
|
3786
4073
|
percent,
|
3787
4074
|
datasetXY,
|
@@ -3790,9 +4077,9 @@ const columnPercent = [
|
|
3790
4077
|
yLinear,
|
3791
4078
|
label_label,
|
3792
4079
|
tooltip_tooltip,
|
4080
|
+
colorAdapter(discreteLegend, colorLegend),
|
3793
4081
|
verticalCrosshairRect,
|
3794
|
-
|
3795
|
-
barStyle_barStyle,
|
4082
|
+
colorBarStyleFill(barStyle_barStyle),
|
3796
4083
|
annotationPoint_annotationPoint,
|
3797
4084
|
annotationVerticalLine_annotationVerticalLine,
|
3798
4085
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3807,7 +4094,7 @@ const pivotColumnPercent = [
|
|
3807
4094
|
initColumn,
|
3808
4095
|
stackCornerRadius_stackCornerRadius,
|
3809
4096
|
stackInverse,
|
3810
|
-
color_color,
|
4097
|
+
colorAdapter(color_color, linearColor),
|
3811
4098
|
percent,
|
3812
4099
|
background_backgroundColor,
|
3813
4100
|
datasetXY,
|
@@ -3817,7 +4104,7 @@ const pivotColumnPercent = [
|
|
3817
4104
|
label_label,
|
3818
4105
|
tooltip_tooltip,
|
3819
4106
|
verticalCrosshairRect,
|
3820
|
-
barStyle_barStyle,
|
4107
|
+
colorBarStyleFill(barStyle_barStyle),
|
3821
4108
|
annotationPoint_annotationPoint,
|
3822
4109
|
annotationVerticalLine_annotationVerticalLine,
|
3823
4110
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -3825,7 +4112,7 @@ const pivotColumnPercent = [
|
|
3825
4112
|
]),
|
3826
4113
|
pivotRowDimensions,
|
3827
4114
|
pivotColumnDimensions,
|
3828
|
-
pivotDiscreteLegend
|
4115
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
3829
4116
|
];
|
3830
4117
|
const columnPercentSpecPipeline = [
|
3831
4118
|
pivotAdapter_pivotAdapter(columnPercent, pivotColumnPercent)
|
@@ -3847,10 +4134,10 @@ const encodingForBar = (advancedVSeed, context)=>{
|
|
3847
4134
|
(dimensions[1] || dimensions[0]).id
|
3848
4135
|
];
|
3849
4136
|
const detail = encoding.detail || [];
|
3850
|
-
const mergedDetail = unique([
|
4137
|
+
const mergedDetail = 0 === detail.length ? unique([
|
3851
4138
|
...color,
|
3852
4139
|
...detail
|
3853
|
-
]);
|
4140
|
+
]) : detail;
|
3854
4141
|
return {
|
3855
4142
|
...advancedVSeed,
|
3856
4143
|
encoding: {
|
@@ -3894,7 +4181,7 @@ const sortYBandAxis = (advancedVSeed, context)=>{
|
|
3894
4181
|
};
|
3895
4182
|
const barAdvancedPipeline = [
|
3896
4183
|
initAdvancedVSeed_initAdvancedVSeed,
|
3897
|
-
|
4184
|
+
buildMeasures,
|
3898
4185
|
autoDimensions_autoDimensions,
|
3899
4186
|
encodingForBar,
|
3900
4187
|
pivotAdapter([
|
@@ -4194,7 +4481,7 @@ const horizontalCrosshairRect = (spec, context)=>{
|
|
4194
4481
|
const bar = [
|
4195
4482
|
initBar,
|
4196
4483
|
stackCornerRadius_stackCornerRadius,
|
4197
|
-
color_color,
|
4484
|
+
colorAdapter(color_color, linearColor),
|
4198
4485
|
background_backgroundColor,
|
4199
4486
|
datasetYX,
|
4200
4487
|
progressive,
|
@@ -4202,9 +4489,9 @@ const bar = [
|
|
4202
4489
|
yBand,
|
4203
4490
|
label_label,
|
4204
4491
|
tooltip_tooltip,
|
4492
|
+
colorAdapter(discreteLegend, colorLegend),
|
4205
4493
|
horizontalCrosshairRect,
|
4206
|
-
|
4207
|
-
barStyle_barStyle,
|
4494
|
+
colorBarStyleFill(barStyle_barStyle),
|
4208
4495
|
annotationPoint_annotationPoint,
|
4209
4496
|
annotationVerticalLine_annotationVerticalLine,
|
4210
4497
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4218,7 +4505,7 @@ const pivotBar = [
|
|
4218
4505
|
pivotIndicators_pivotIndicators([
|
4219
4506
|
initBar,
|
4220
4507
|
stackCornerRadius_stackCornerRadius,
|
4221
|
-
color_color,
|
4508
|
+
colorAdapter(color_color, linearColor),
|
4222
4509
|
background_backgroundColor,
|
4223
4510
|
datasetYX,
|
4224
4511
|
progressive,
|
@@ -4227,8 +4514,8 @@ const pivotBar = [
|
|
4227
4514
|
label_label,
|
4228
4515
|
label_label,
|
4229
4516
|
tooltip_tooltip,
|
4517
|
+
colorBarStyleFill(barStyle_barStyle),
|
4230
4518
|
horizontalCrosshairRect,
|
4231
|
-
barStyle_barStyle,
|
4232
4519
|
annotationPoint_annotationPoint,
|
4233
4520
|
annotationVerticalLine_annotationVerticalLine,
|
4234
4521
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4236,7 +4523,7 @@ const pivotBar = [
|
|
4236
4523
|
]),
|
4237
4524
|
pivotRowDimensions,
|
4238
4525
|
pivotColumnDimensions,
|
4239
|
-
pivotDiscreteLegend
|
4526
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
4240
4527
|
];
|
4241
4528
|
const barSpecPipeline = [
|
4242
4529
|
pivotAdapter_pivotAdapter(bar, pivotBar)
|
@@ -4247,7 +4534,7 @@ const registerBar = ()=>{
|
|
4247
4534
|
};
|
4248
4535
|
const barParallelAdvancedPipeline = [
|
4249
4536
|
initAdvancedVSeed_initAdvancedVSeed,
|
4250
|
-
|
4537
|
+
buildMeasures,
|
4251
4538
|
autoDimensions_autoDimensions,
|
4252
4539
|
encodingForBar,
|
4253
4540
|
pivotAdapter([
|
@@ -4292,7 +4579,7 @@ const initBarParallel = (spec, context)=>{
|
|
4292
4579
|
const barParallel = [
|
4293
4580
|
initBarParallel,
|
4294
4581
|
stackCornerRadius_stackCornerRadius,
|
4295
|
-
color_color,
|
4582
|
+
colorAdapter(color_color, linearColor),
|
4296
4583
|
background_backgroundColor,
|
4297
4584
|
datasetYX,
|
4298
4585
|
progressive,
|
@@ -4300,9 +4587,9 @@ const barParallel = [
|
|
4300
4587
|
yBand,
|
4301
4588
|
label_label,
|
4302
4589
|
tooltip_tooltip,
|
4590
|
+
colorAdapter(discreteLegend, colorLegend),
|
4303
4591
|
horizontalCrosshairRect,
|
4304
|
-
|
4305
|
-
barStyle_barStyle,
|
4592
|
+
colorBarStyleFill(barStyle_barStyle),
|
4306
4593
|
annotationPoint_annotationPoint,
|
4307
4594
|
annotationVerticalLine_annotationVerticalLine,
|
4308
4595
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4316,15 +4603,15 @@ const pivotBarParallel = [
|
|
4316
4603
|
pivotIndicators_pivotIndicators([
|
4317
4604
|
initBarParallel,
|
4318
4605
|
stackCornerRadius_stackCornerRadius,
|
4319
|
-
color_color,
|
4606
|
+
colorAdapter(color_color, linearColor),
|
4320
4607
|
background_backgroundColor,
|
4321
4608
|
datasetYX,
|
4322
4609
|
xLinear,
|
4323
4610
|
yBand,
|
4324
4611
|
label_label,
|
4325
4612
|
tooltip_tooltip,
|
4613
|
+
colorBarStyleFill(barStyle_barStyle),
|
4326
4614
|
horizontalCrosshairRect,
|
4327
|
-
barStyle_barStyle,
|
4328
4615
|
annotationPoint_annotationPoint,
|
4329
4616
|
annotationVerticalLine_annotationVerticalLine,
|
4330
4617
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4332,7 +4619,7 @@ const pivotBarParallel = [
|
|
4332
4619
|
]),
|
4333
4620
|
pivotRowDimensions,
|
4334
4621
|
pivotColumnDimensions,
|
4335
|
-
pivotDiscreteLegend
|
4622
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
4336
4623
|
];
|
4337
4624
|
const barParallelSpecPipeline = [
|
4338
4625
|
pivotAdapter_pivotAdapter(barParallel, pivotBarParallel)
|
@@ -4343,7 +4630,7 @@ const registerBarParallel = ()=>{
|
|
4343
4630
|
};
|
4344
4631
|
const barPercentAdvancedPipeline = [
|
4345
4632
|
initAdvancedVSeed_initAdvancedVSeed,
|
4346
|
-
|
4633
|
+
buildMeasures,
|
4347
4634
|
autoDimensions_autoDimensions,
|
4348
4635
|
encodingForBar,
|
4349
4636
|
pivotAdapter([
|
@@ -4361,7 +4648,7 @@ const barPercentAdvancedPipeline = [
|
|
4361
4648
|
const barPercent = [
|
4362
4649
|
initBar,
|
4363
4650
|
stackCornerRadius_stackCornerRadius,
|
4364
|
-
color_color,
|
4651
|
+
colorAdapter(color_color, linearColor),
|
4365
4652
|
background_backgroundColor,
|
4366
4653
|
percent,
|
4367
4654
|
datasetYX,
|
@@ -4370,9 +4657,9 @@ const barPercent = [
|
|
4370
4657
|
yBand,
|
4371
4658
|
label_label,
|
4372
4659
|
tooltip_tooltip,
|
4660
|
+
colorAdapter(discreteLegend, colorLegend),
|
4373
4661
|
horizontalCrosshairRect,
|
4374
|
-
|
4375
|
-
barStyle_barStyle,
|
4662
|
+
colorBarStyleFill(barStyle_barStyle),
|
4376
4663
|
annotationPoint_annotationPoint,
|
4377
4664
|
annotationVerticalLine_annotationVerticalLine,
|
4378
4665
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4386,7 +4673,7 @@ const pivotBarPercent = [
|
|
4386
4673
|
pivotIndicators_pivotIndicators([
|
4387
4674
|
initBar,
|
4388
4675
|
stackCornerRadius_stackCornerRadius,
|
4389
|
-
color_color,
|
4676
|
+
colorAdapter(color_color, linearColor),
|
4390
4677
|
background_backgroundColor,
|
4391
4678
|
percent,
|
4392
4679
|
datasetYX,
|
@@ -4394,8 +4681,8 @@ const pivotBarPercent = [
|
|
4394
4681
|
xLinear,
|
4395
4682
|
label_label,
|
4396
4683
|
tooltip_tooltip,
|
4684
|
+
colorBarStyleFill(barStyle_barStyle),
|
4397
4685
|
horizontalCrosshairRect,
|
4398
|
-
barStyle_barStyle,
|
4399
4686
|
annotationPoint_annotationPoint,
|
4400
4687
|
annotationVerticalLine_annotationVerticalLine,
|
4401
4688
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4403,7 +4690,7 @@ const pivotBarPercent = [
|
|
4403
4690
|
]),
|
4404
4691
|
pivotRowDimensions,
|
4405
4692
|
pivotColumnDimensions,
|
4406
|
-
pivotDiscreteLegend
|
4693
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
4407
4694
|
];
|
4408
4695
|
const barPercentSpecPipeline = [
|
4409
4696
|
pivotAdapter_pivotAdapter(barPercent, pivotBarPercent)
|
@@ -4414,7 +4701,7 @@ const registerBarPercent = ()=>{
|
|
4414
4701
|
};
|
4415
4702
|
const areaAdvancedPipeline = [
|
4416
4703
|
initAdvancedVSeed_initAdvancedVSeed,
|
4417
|
-
|
4704
|
+
buildMeasures,
|
4418
4705
|
autoDimensions_autoDimensions,
|
4419
4706
|
encodingForColumn,
|
4420
4707
|
pivotAdapter([
|
@@ -4440,7 +4727,7 @@ const initArea = (spec, context)=>{
|
|
4440
4727
|
result.direction = 'vertical';
|
4441
4728
|
result.yField = foldInfo.measureValue;
|
4442
4729
|
result.xField = unfoldInfo.encodingX;
|
4443
|
-
result.seriesField = unfoldInfo.encodingColorId;
|
4730
|
+
result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
4444
4731
|
result.padding = 0;
|
4445
4732
|
result.region = [
|
4446
4733
|
{
|
@@ -4450,20 +4737,32 @@ const initArea = (spec, context)=>{
|
|
4450
4737
|
result.animation = true;
|
4451
4738
|
return result;
|
4452
4739
|
};
|
4740
|
+
const colorAreaStyleFill = (stylePipe)=>(spec, context)=>{
|
4741
|
+
const result = stylePipe(spec, context);
|
4742
|
+
const { advancedVSeed } = context;
|
4743
|
+
const { datasetReshapeInfo } = advancedVSeed;
|
4744
|
+
const { unfoldInfo } = datasetReshapeInfo[0];
|
4745
|
+
if (isLinearColor(advancedVSeed)) {
|
4746
|
+
if (result?.area?.style) result.area.style.fill = {
|
4747
|
+
field: unfoldInfo.encodingColor,
|
4748
|
+
scale: 'color'
|
4749
|
+
};
|
4750
|
+
}
|
4751
|
+
return result;
|
4752
|
+
};
|
4453
4753
|
const areaStyle_areaStyle = (spec, context)=>{
|
4454
4754
|
const { advancedVSeed } = context;
|
4455
4755
|
const { markStyle, datasetReshapeInfo, dataset } = advancedVSeed;
|
4456
4756
|
const { areaStyle } = markStyle;
|
4457
4757
|
const { unfoldInfo } = datasetReshapeInfo[0];
|
4458
|
-
|
4758
|
+
const result = {
|
4459
4759
|
...spec,
|
4460
4760
|
area: {
|
4461
|
-
visible: true
|
4761
|
+
visible: true,
|
4762
|
+
style: {}
|
4462
4763
|
}
|
4463
4764
|
};
|
4464
|
-
|
4465
|
-
...spec
|
4466
|
-
};
|
4765
|
+
if (!areaStyle) return result;
|
4467
4766
|
const areaStyles = Array.isArray(areaStyle) ? areaStyle : [
|
4468
4767
|
areaStyle
|
4469
4768
|
];
|
@@ -4491,6 +4790,7 @@ const areaStyle_areaStyle = (spec, context)=>{
|
|
4491
4790
|
return {
|
4492
4791
|
...result,
|
4493
4792
|
area: {
|
4793
|
+
...result.area,
|
4494
4794
|
visible: true,
|
4495
4795
|
state: {
|
4496
4796
|
...customMap
|
@@ -4501,7 +4801,7 @@ const areaStyle_areaStyle = (spec, context)=>{
|
|
4501
4801
|
const area_area = [
|
4502
4802
|
initArea,
|
4503
4803
|
stackInverse,
|
4504
|
-
color_color,
|
4804
|
+
colorAdapter(color_color, linearColor),
|
4505
4805
|
background_backgroundColor,
|
4506
4806
|
datasetXY,
|
4507
4807
|
progressive,
|
@@ -4509,12 +4809,12 @@ const area_area = [
|
|
4509
4809
|
yLinear,
|
4510
4810
|
label_label,
|
4511
4811
|
tooltip_tooltip,
|
4812
|
+
colorAdapter(discreteLegend, colorLegend),
|
4512
4813
|
verticalCrosshairLine,
|
4513
|
-
|
4514
|
-
pointStyle_pointStyle,
|
4814
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
4515
4815
|
pointStateDimensionHover,
|
4516
|
-
lineStyle_lineStyle,
|
4517
|
-
areaStyle_areaStyle,
|
4816
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
4817
|
+
colorAreaStyleFill(areaStyle_areaStyle),
|
4518
4818
|
annotationPoint_annotationPoint,
|
4519
4819
|
annotationVerticalLine_annotationVerticalLine,
|
4520
4820
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4527,7 +4827,7 @@ const pivotArea = [
|
|
4527
4827
|
datasetPivot,
|
4528
4828
|
pivotIndicators_pivotIndicators([
|
4529
4829
|
initArea,
|
4530
|
-
color_color,
|
4830
|
+
colorAdapter(color_color, linearColor),
|
4531
4831
|
background_backgroundColor,
|
4532
4832
|
stackInverse,
|
4533
4833
|
datasetXY,
|
@@ -4537,10 +4837,10 @@ const pivotArea = [
|
|
4537
4837
|
label_label,
|
4538
4838
|
tooltip_tooltip,
|
4539
4839
|
verticalCrosshairLine,
|
4540
|
-
pointStyle_pointStyle,
|
4840
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
4541
4841
|
pointStateDimensionHover,
|
4542
|
-
lineStyle_lineStyle,
|
4543
|
-
areaStyle_areaStyle,
|
4842
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
4843
|
+
colorAreaStyleFill(areaStyle_areaStyle),
|
4544
4844
|
annotationPoint_annotationPoint,
|
4545
4845
|
annotationVerticalLine_annotationVerticalLine,
|
4546
4846
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4548,7 +4848,7 @@ const pivotArea = [
|
|
4548
4848
|
]),
|
4549
4849
|
pivotRowDimensions,
|
4550
4850
|
pivotColumnDimensions,
|
4551
|
-
pivotDiscreteLegend
|
4851
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
4552
4852
|
];
|
4553
4853
|
const areaSpecPipeline = [
|
4554
4854
|
pivotAdapter_pivotAdapter(area_area, pivotArea)
|
@@ -4559,7 +4859,7 @@ const registerArea = ()=>{
|
|
4559
4859
|
};
|
4560
4860
|
const areaPercentAdvancedPipeline = [
|
4561
4861
|
initAdvancedVSeed_initAdvancedVSeed,
|
4562
|
-
|
4862
|
+
buildMeasures,
|
4563
4863
|
autoDimensions_autoDimensions,
|
4564
4864
|
encodingForColumn,
|
4565
4865
|
pivotAdapter([
|
@@ -4577,7 +4877,7 @@ const areaPercentAdvancedPipeline = [
|
|
4577
4877
|
const areaPercent = [
|
4578
4878
|
initArea,
|
4579
4879
|
stackInverse,
|
4580
|
-
color_color,
|
4880
|
+
colorAdapter(color_color, linearColor),
|
4581
4881
|
background_backgroundColor,
|
4582
4882
|
percent,
|
4583
4883
|
datasetXY,
|
@@ -4586,11 +4886,12 @@ const areaPercent = [
|
|
4586
4886
|
yLinear,
|
4587
4887
|
label_label,
|
4588
4888
|
tooltip_tooltip,
|
4889
|
+
colorAdapter(discreteLegend, colorLegend),
|
4589
4890
|
verticalCrosshairLine,
|
4590
|
-
|
4591
|
-
|
4592
|
-
lineStyle_lineStyle,
|
4593
|
-
areaStyle_areaStyle,
|
4891
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
4892
|
+
pointStateDimensionHover,
|
4893
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
4894
|
+
colorAreaStyleFill(areaStyle_areaStyle),
|
4594
4895
|
annotationPoint_annotationPoint,
|
4595
4896
|
annotationVerticalLine_annotationVerticalLine,
|
4596
4897
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4604,7 +4905,7 @@ const pivotAreaPercent = [
|
|
4604
4905
|
pivotIndicators_pivotIndicators([
|
4605
4906
|
initArea,
|
4606
4907
|
stackInverse,
|
4607
|
-
color_color,
|
4908
|
+
colorAdapter(color_color, linearColor),
|
4608
4909
|
background_backgroundColor,
|
4609
4910
|
percent,
|
4610
4911
|
datasetXY,
|
@@ -4614,9 +4915,10 @@ const pivotAreaPercent = [
|
|
4614
4915
|
label_label,
|
4615
4916
|
tooltip_tooltip,
|
4616
4917
|
verticalCrosshairLine,
|
4617
|
-
pointStyle_pointStyle,
|
4618
|
-
|
4619
|
-
|
4918
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
4919
|
+
pointStateDimensionHover,
|
4920
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
4921
|
+
colorAreaStyleFill(areaStyle_areaStyle),
|
4620
4922
|
annotationPoint_annotationPoint,
|
4621
4923
|
annotationVerticalLine_annotationVerticalLine,
|
4622
4924
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -4624,7 +4926,7 @@ const pivotAreaPercent = [
|
|
4624
4926
|
]),
|
4625
4927
|
pivotRowDimensions,
|
4626
4928
|
pivotColumnDimensions,
|
4627
|
-
pivotDiscreteLegend
|
4929
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
4628
4930
|
];
|
4629
4931
|
const areaPercentSpecPipeline = [
|
4630
4932
|
pivotAdapter_pivotAdapter(areaPercent, pivotAreaPercent)
|
@@ -4633,95 +4935,105 @@ const registerAreaPercent = ()=>{
|
|
4633
4935
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
4634
4936
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
4635
4937
|
};
|
4636
|
-
const
|
4637
|
-
const result = {
|
4638
|
-
...advancedVSeed
|
4639
|
-
};
|
4938
|
+
const buildMeasuresForScatter = (advancedVSeed, context)=>{
|
4640
4939
|
const { vseed } = context;
|
4641
|
-
|
4642
|
-
|
4643
|
-
|
4644
|
-
if (scatterMeasures) {
|
4645
|
-
result.measures = scatterMeasuresToMeasureTree(scatterMeasures);
|
4646
|
-
return result;
|
4940
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
4941
|
+
advancedVSeed.measures = vseed.measures;
|
4942
|
+
return advancedVSeed;
|
4647
4943
|
}
|
4648
|
-
if (
|
4649
|
-
|
4650
|
-
return
|
4944
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
4945
|
+
advancedVSeed.measures = buildMeasuresForScatter_generateMeasuresByParentId(vseed.measures);
|
4946
|
+
return advancedVSeed;
|
4651
4947
|
}
|
4652
|
-
const
|
4653
|
-
const
|
4654
|
-
|
4655
|
-
|
4656
|
-
|
4657
|
-
|
4658
|
-
|
4659
|
-
|
4660
|
-
|
4661
|
-
]
|
4662
|
-
|
4663
|
-
|
4664
|
-
|
4665
|
-
|
4666
|
-
|
4667
|
-
|
4668
|
-
|
4669
|
-
|
4670
|
-
|
4671
|
-
|
4672
|
-
|
4673
|
-
else if (newMeasures.length > 1) result.measures = [
|
4674
|
-
{
|
4675
|
-
id: 'primary',
|
4676
|
-
alias: 'primary',
|
4677
|
-
children: newMeasures.slice(0, 1)
|
4678
|
-
},
|
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 [
|
4679
4969
|
{
|
4680
|
-
id: '
|
4681
|
-
|
4682
|
-
|
4970
|
+
id: 'scatterMeasures',
|
4971
|
+
xMeasures,
|
4972
|
+
yMeasures
|
4683
4973
|
}
|
4684
4974
|
];
|
4685
|
-
return result;
|
4686
4975
|
};
|
4687
4976
|
const scatterMeasuresToMeasureTree = (scatterMeasures)=>{
|
4688
4977
|
const measureTree = scatterMeasures.map((item, index)=>{
|
4689
|
-
const { xMeasures, yMeasures } = item;
|
4978
|
+
const { id, xMeasures, yMeasures } = item;
|
4690
4979
|
const groupChildren = [];
|
4691
|
-
let
|
4980
|
+
let groupId = `${id}-`;
|
4692
4981
|
if (xMeasures) {
|
4693
|
-
const
|
4982
|
+
const arrPrimaryMeasures = Array.isArray(xMeasures) ? xMeasures : [
|
4694
4983
|
xMeasures
|
4695
4984
|
];
|
4696
|
-
const alias =
|
4697
|
-
|
4985
|
+
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
4986
|
+
groupId += alias;
|
4698
4987
|
groupChildren.push({
|
4699
4988
|
id: `${index}-x`,
|
4700
|
-
alias:
|
4701
|
-
children:
|
4989
|
+
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
4990
|
+
children: arrPrimaryMeasures
|
4702
4991
|
});
|
4703
4992
|
}
|
4704
4993
|
if (yMeasures) {
|
4705
|
-
const
|
4994
|
+
const arrSecondaryMeasures = Array.isArray(yMeasures) ? yMeasures : [
|
4706
4995
|
yMeasures
|
4707
4996
|
];
|
4708
|
-
const alias =
|
4709
|
-
|
4997
|
+
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
4998
|
+
groupId += alias;
|
4710
4999
|
groupChildren.push({
|
4711
5000
|
id: `${index}-y`,
|
4712
|
-
alias:
|
4713
|
-
children:
|
5001
|
+
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
5002
|
+
children: arrSecondaryMeasures
|
4714
5003
|
});
|
4715
5004
|
}
|
4716
5005
|
return {
|
4717
|
-
id,
|
4718
|
-
alias:
|
5006
|
+
id: groupId,
|
5007
|
+
alias: groupId,
|
4719
5008
|
children: groupChildren
|
4720
5009
|
};
|
4721
5010
|
});
|
4722
5011
|
if (1 === scatterMeasures.length) return measureTree[0].children || [];
|
4723
5012
|
return measureTree;
|
4724
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
|
+
};
|
4725
5037
|
const encodingForScatter = (advancedVSeed, context)=>{
|
4726
5038
|
const { vseed } = context;
|
4727
5039
|
const { dimensions } = advancedVSeed;
|
@@ -4732,10 +5044,10 @@ const encodingForScatter = (advancedVSeed, context)=>{
|
|
4732
5044
|
const color = encoding.color || [
|
4733
5045
|
(dimensions[1] || dimensions[0]).id
|
4734
5046
|
];
|
4735
|
-
const mergedDetail = unique([
|
5047
|
+
const mergedDetail = 0 === detail.length ? unique([
|
4736
5048
|
...color,
|
4737
5049
|
...detail
|
4738
|
-
]);
|
5050
|
+
]) : detail;
|
4739
5051
|
return {
|
4740
5052
|
...advancedVSeed,
|
4741
5053
|
encoding: {
|
@@ -4777,7 +5089,8 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
4777
5089
|
if (xMeasures && xMeasures.children) {
|
4778
5090
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
4779
5091
|
foldMeasureValue: FoldXMeasureValue,
|
4780
|
-
colorItemAsId: true
|
5092
|
+
colorItemAsId: true,
|
5093
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
4781
5094
|
});
|
4782
5095
|
datasets.push(newDataset);
|
4783
5096
|
foldInfoList.push(foldInfo);
|
@@ -4786,7 +5099,8 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
4786
5099
|
if (yMeasures && yMeasures.children) {
|
4787
5100
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], dimensions, yMeasures.children, encoding, {
|
4788
5101
|
foldMeasureValue: FoldYMeasureValue,
|
4789
|
-
colorItemAsId: true
|
5102
|
+
colorItemAsId: true,
|
5103
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
4790
5104
|
});
|
4791
5105
|
datasets[0] = newDataset;
|
4792
5106
|
foldInfoList.push(foldInfo);
|
@@ -4841,7 +5155,8 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
4841
5155
|
if (xMeasures && xMeasures.children) {
|
4842
5156
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, xMeasures.children, encoding, {
|
4843
5157
|
foldMeasureValue: `${FoldXMeasureValue}${index}`,
|
4844
|
-
colorItemAsId: true
|
5158
|
+
colorItemAsId: true,
|
5159
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
4845
5160
|
});
|
4846
5161
|
datasets.push(newDataset);
|
4847
5162
|
foldInfoList.push(foldInfo);
|
@@ -4850,7 +5165,8 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
4850
5165
|
if (yMeasures && yMeasures.children) {
|
4851
5166
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, yMeasures.children, encoding, {
|
4852
5167
|
foldMeasureValue: `${FoldYMeasureValue}${index}`,
|
4853
|
-
colorItemAsId: true
|
5168
|
+
colorItemAsId: true,
|
5169
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
4854
5170
|
});
|
4855
5171
|
datasets.push(newDataset);
|
4856
5172
|
foldInfoList.push(foldInfo);
|
@@ -4885,7 +5201,7 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
4885
5201
|
};
|
4886
5202
|
const scatterAdvancedPipeline = [
|
4887
5203
|
initAdvancedVSeed_initAdvancedVSeed,
|
4888
|
-
|
5204
|
+
buildMeasuresForScatter,
|
4889
5205
|
autoDimensions_autoDimensions,
|
4890
5206
|
encodingForScatter,
|
4891
5207
|
pivotAdapter([
|
@@ -4979,7 +5295,7 @@ const horizontalCrosshairLine = (spec, context)=>{
|
|
4979
5295
|
};
|
4980
5296
|
const scatter = [
|
4981
5297
|
initScatter,
|
4982
|
-
color_color,
|
5298
|
+
colorAdapter(color_color, linearColor),
|
4983
5299
|
background_backgroundColor,
|
4984
5300
|
datasetScatter,
|
4985
5301
|
progressive,
|
@@ -4987,10 +5303,10 @@ const scatter = [
|
|
4987
5303
|
yLinear,
|
4988
5304
|
label_label,
|
4989
5305
|
tooltip_tooltip,
|
5306
|
+
colorAdapter(discreteLegend, colorLegend),
|
4990
5307
|
verticalCrosshairLine,
|
4991
5308
|
horizontalCrosshairLine,
|
4992
|
-
|
4993
|
-
pointStyle_pointStyle,
|
5309
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
4994
5310
|
pointStateHover,
|
4995
5311
|
annotationPoint_annotationPoint,
|
4996
5312
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -5004,7 +5320,7 @@ const pivotScatter = [
|
|
5004
5320
|
datasetPivot,
|
5005
5321
|
pivotIndicators_pivotIndicators([
|
5006
5322
|
initScatter,
|
5007
|
-
color_color,
|
5323
|
+
colorAdapter(color_color, linearColor),
|
5008
5324
|
background_backgroundColor,
|
5009
5325
|
datasetScatter,
|
5010
5326
|
progressive,
|
@@ -5014,7 +5330,7 @@ const pivotScatter = [
|
|
5014
5330
|
tooltip_tooltip,
|
5015
5331
|
verticalCrosshairLine,
|
5016
5332
|
horizontalCrosshairLine,
|
5017
|
-
pointStyle_pointStyle,
|
5333
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
5018
5334
|
pointStateHover,
|
5019
5335
|
annotationPoint_annotationPoint,
|
5020
5336
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -5032,68 +5348,55 @@ const registerScatter = ()=>{
|
|
5032
5348
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
5033
5349
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
5034
5350
|
};
|
5035
|
-
const
|
5036
|
-
const result = {
|
5037
|
-
...advancedVSeed
|
5038
|
-
};
|
5351
|
+
const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
|
5039
5352
|
const { vseed } = context;
|
5040
|
-
|
5041
|
-
|
5042
|
-
|
5043
|
-
if (dualMeasures) {
|
5044
|
-
result.measures = dualMeasuresToMeasureTree(dualMeasures);
|
5045
|
-
return result;
|
5353
|
+
if (isMeasureTreeWithChildren(vseed)) {
|
5354
|
+
advancedVSeed.measures = vseed.measures;
|
5355
|
+
return advancedVSeed;
|
5046
5356
|
}
|
5047
|
-
if (
|
5048
|
-
|
5049
|
-
return
|
5357
|
+
if (isMeasureTreeWithParentId(vseed)) {
|
5358
|
+
advancedVSeed.measures = buildMeasuresForDualAxis_generateMeasuresByParentId(vseed.measures);
|
5359
|
+
return advancedVSeed;
|
5050
5360
|
}
|
5051
|
-
const
|
5052
|
-
const
|
5053
|
-
|
5054
|
-
|
5055
|
-
|
5056
|
-
|
5057
|
-
|
5058
|
-
|
5059
|
-
|
5060
|
-
]
|
5061
|
-
|
5062
|
-
|
5063
|
-
|
5064
|
-
|
5065
|
-
|
5066
|
-
|
5067
|
-
|
5068
|
-
|
5069
|
-
|
5070
|
-
|
5071
|
-
|
5072
|
-
else if (newMeasures.length > 1) result.measures = [
|
5073
|
-
{
|
5074
|
-
id: 'primary',
|
5075
|
-
alias: 'primary',
|
5076
|
-
children: newMeasures.slice(0, 1)
|
5077
|
-
},
|
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 [
|
5078
5382
|
{
|
5079
|
-
id: '
|
5080
|
-
|
5081
|
-
|
5383
|
+
id: 'dualMeasures',
|
5384
|
+
primaryMeasures,
|
5385
|
+
secondaryMeasures
|
5082
5386
|
}
|
5083
5387
|
];
|
5084
|
-
return result;
|
5085
5388
|
};
|
5086
5389
|
const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
5087
5390
|
const measureTree = dualMeasures.map((item, index)=>{
|
5088
|
-
const { primaryMeasures, secondaryMeasures } = item;
|
5391
|
+
const { id, primaryMeasures, secondaryMeasures } = item;
|
5089
5392
|
const groupChildren = [];
|
5090
|
-
let
|
5393
|
+
let groupId = `${id}-`;
|
5091
5394
|
if (primaryMeasures) {
|
5092
5395
|
const arrPrimaryMeasures = Array.isArray(primaryMeasures) ? primaryMeasures : [
|
5093
5396
|
primaryMeasures
|
5094
5397
|
];
|
5095
5398
|
const alias = arrPrimaryMeasures.map((item)=>item.alias || item.id).toString();
|
5096
|
-
|
5399
|
+
groupId += alias;
|
5097
5400
|
groupChildren.push({
|
5098
5401
|
id: `${index}-primary`,
|
5099
5402
|
alias: arrPrimaryMeasures.map((item)=>item.alias || item.id).toString(),
|
@@ -5105,7 +5408,7 @@ const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
|
5105
5408
|
secondaryMeasures
|
5106
5409
|
];
|
5107
5410
|
const alias = arrSecondaryMeasures.map((item)=>item.alias || item.id).toString();
|
5108
|
-
|
5411
|
+
groupId += alias;
|
5109
5412
|
groupChildren.push({
|
5110
5413
|
id: `${index}-secondary`,
|
5111
5414
|
alias: arrSecondaryMeasures.map((item)=>item.alias || item.id).toString(),
|
@@ -5113,14 +5416,37 @@ const dualMeasuresToMeasureTree = (dualMeasures)=>{
|
|
5113
5416
|
});
|
5114
5417
|
}
|
5115
5418
|
return {
|
5116
|
-
id,
|
5117
|
-
alias:
|
5419
|
+
id: groupId,
|
5420
|
+
alias: groupId,
|
5118
5421
|
children: groupChildren
|
5119
5422
|
};
|
5120
5423
|
});
|
5121
5424
|
if (1 === dualMeasures.length) return measureTree[0].children || [];
|
5122
5425
|
return measureTree;
|
5123
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
|
+
};
|
5124
5450
|
const encodingForDualAxis = (advancedVSeed, context)=>{
|
5125
5451
|
const { vseed } = context;
|
5126
5452
|
const { dimensions } = advancedVSeed;
|
@@ -5134,10 +5460,10 @@ const encodingForDualAxis = (advancedVSeed, context)=>{
|
|
5134
5460
|
(dimensions[1] || dimensions[0]).id
|
5135
5461
|
];
|
5136
5462
|
const detail = encoding.detail || [];
|
5137
|
-
const mergedDetail = unique([
|
5463
|
+
const mergedDetail = 0 === detail.length ? unique([
|
5138
5464
|
...color,
|
5139
5465
|
...detail
|
5140
|
-
]);
|
5466
|
+
]) : detail;
|
5141
5467
|
return {
|
5142
5468
|
...advancedVSeed,
|
5143
5469
|
encoding: {
|
@@ -5179,7 +5505,8 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5179
5505
|
const secondaryMeasures = measures[1] || [];
|
5180
5506
|
if (primaryMeasures && primaryMeasures.children) {
|
5181
5507
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
5182
|
-
foldMeasureValue: FoldPrimaryMeasureValue
|
5508
|
+
foldMeasureValue: FoldPrimaryMeasureValue,
|
5509
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5183
5510
|
});
|
5184
5511
|
datasets.push(newDataset);
|
5185
5512
|
foldInfoList.push(foldInfo);
|
@@ -5187,7 +5514,8 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5187
5514
|
}
|
5188
5515
|
if (secondaryMeasures && secondaryMeasures.children) {
|
5189
5516
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
5190
|
-
foldMeasureValue: FoldSecondaryMeasureValue
|
5517
|
+
foldMeasureValue: FoldSecondaryMeasureValue,
|
5518
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5191
5519
|
});
|
5192
5520
|
datasets.push(newDataset);
|
5193
5521
|
foldInfoList.push(foldInfo);
|
@@ -5241,7 +5569,8 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5241
5569
|
const secondaryMeasures = measures[1] || [];
|
5242
5570
|
if (primaryMeasures && primaryMeasures.children) {
|
5243
5571
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
|
5244
|
-
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}
|
5572
|
+
foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
|
5573
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5245
5574
|
});
|
5246
5575
|
datasets.push(newDataset);
|
5247
5576
|
foldInfoList.push(foldInfo);
|
@@ -5249,7 +5578,8 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
|
|
5249
5578
|
}
|
5250
5579
|
if (secondaryMeasures && secondaryMeasures.children) {
|
5251
5580
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, secondaryMeasures.children, encoding, {
|
5252
|
-
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}
|
5581
|
+
foldMeasureValue: `${FoldSecondaryMeasureValue}${index}`,
|
5582
|
+
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5253
5583
|
});
|
5254
5584
|
datasets.push(newDataset);
|
5255
5585
|
foldInfoList.push(foldInfo);
|
@@ -5307,7 +5637,7 @@ const dualAxisConfig = (advancedVSeed, context)=>{
|
|
5307
5637
|
};
|
5308
5638
|
const dualAxisAdvancedPipeline = [
|
5309
5639
|
initAdvancedVSeed_initAdvancedVSeed,
|
5310
|
-
|
5640
|
+
buildMeasuresForDualAxis,
|
5311
5641
|
autoDimensions_autoDimensions,
|
5312
5642
|
encodingForDualAxis,
|
5313
5643
|
pivotAdapter([
|
@@ -5394,7 +5724,7 @@ const initDualAxisSecondary = (spec, context)=>{
|
|
5394
5724
|
result.direction = 'vertical';
|
5395
5725
|
result.xField = unfoldInfo.encodingX;
|
5396
5726
|
if (foldInfoList?.[1]) result.yField = foldInfoList[1].measureValue;
|
5397
|
-
result.seriesField = unfoldInfo.encodingColorId;
|
5727
|
+
result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
5398
5728
|
result.animation = true;
|
5399
5729
|
return result;
|
5400
5730
|
};
|
@@ -6020,6 +6350,37 @@ const yLinearSecondary = (spec, context)=>{
|
|
6020
6350
|
];
|
6021
6351
|
return result;
|
6022
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
|
+
};
|
6023
6384
|
const dualAxis = [
|
6024
6385
|
seriesDualAxis([
|
6025
6386
|
initDualAxisPrimary,
|
@@ -6028,11 +6389,11 @@ const dualAxis = [
|
|
6028
6389
|
labelPrimary,
|
6029
6390
|
tooltipPrimary,
|
6030
6391
|
progressive,
|
6031
|
-
barStyle_barStyle,
|
6032
|
-
pointStyle_pointStyle,
|
6392
|
+
colorBarStyleFill(barStyle_barStyle),
|
6393
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6033
6394
|
pointStateDimensionHover,
|
6034
|
-
lineStyle_lineStyle,
|
6035
|
-
areaStyle_areaStyle
|
6395
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6396
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6036
6397
|
], [
|
6037
6398
|
initDualAxisSecondary,
|
6038
6399
|
dualChartTypeSecondary,
|
@@ -6040,18 +6401,18 @@ const dualAxis = [
|
|
6040
6401
|
labelSecondary,
|
6041
6402
|
tooltipSecondary,
|
6042
6403
|
progressive,
|
6043
|
-
barStyle_barStyle,
|
6044
|
-
pointStyle_pointStyle,
|
6404
|
+
colorBarStyleFill(barStyle_barStyle),
|
6405
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6045
6406
|
pointStateDimensionHover,
|
6046
|
-
lineStyle_lineStyle,
|
6047
|
-
areaStyle_areaStyle
|
6407
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6408
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6048
6409
|
]),
|
6049
6410
|
xBand,
|
6050
6411
|
yLinearPrimary,
|
6051
6412
|
yLinearSecondary,
|
6052
|
-
color_color,
|
6413
|
+
colorAdapter(color_color, linearColorForDualAxis),
|
6414
|
+
colorAdapter(discreteLegend, colorLegend),
|
6053
6415
|
background_backgroundColor,
|
6054
|
-
discreteLegend,
|
6055
6416
|
verticalCrosshairRect,
|
6056
6417
|
annotationPoint_annotationPoint,
|
6057
6418
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -6071,11 +6432,11 @@ const pivotDualAxis = [
|
|
6071
6432
|
labelPrimary,
|
6072
6433
|
tooltipPrimary,
|
6073
6434
|
progressive,
|
6074
|
-
barStyle_barStyle,
|
6075
|
-
pointStyle_pointStyle,
|
6435
|
+
colorBarStyleFill(barStyle_barStyle),
|
6436
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6076
6437
|
pointStateDimensionHover,
|
6077
|
-
lineStyle_lineStyle,
|
6078
|
-
areaStyle_areaStyle
|
6438
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6439
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6079
6440
|
], [
|
6080
6441
|
initDualAxisSecondary,
|
6081
6442
|
dualChartTypeSecondary,
|
@@ -6083,16 +6444,16 @@ const pivotDualAxis = [
|
|
6083
6444
|
labelSecondary,
|
6084
6445
|
tooltipSecondary,
|
6085
6446
|
progressive,
|
6086
|
-
barStyle_barStyle,
|
6087
|
-
pointStyle_pointStyle,
|
6447
|
+
colorBarStyleFill(barStyle_barStyle),
|
6448
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6088
6449
|
pointStateDimensionHover,
|
6089
|
-
lineStyle_lineStyle,
|
6090
|
-
areaStyle_areaStyle
|
6450
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
6451
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6091
6452
|
]),
|
6092
6453
|
xBand,
|
6093
6454
|
yLinearPrimary,
|
6094
6455
|
yLinearSecondary,
|
6095
|
-
color_color,
|
6456
|
+
colorAdapter(color_color, linearColor),
|
6096
6457
|
background_backgroundColor,
|
6097
6458
|
verticalCrosshairRect,
|
6098
6459
|
annotationPoint_annotationPoint,
|
@@ -6102,7 +6463,7 @@ const pivotDualAxis = [
|
|
6102
6463
|
]),
|
6103
6464
|
pivotRowDimensions,
|
6104
6465
|
pivotColumnDimensions,
|
6105
|
-
pivotDiscreteLegend
|
6466
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
6106
6467
|
];
|
6107
6468
|
const dualAxisSpecPipeline = [
|
6108
6469
|
pivotAdapter_pivotAdapter(dualAxis, pivotDualAxis)
|
@@ -6137,7 +6498,7 @@ const encodingForPie = (advancedVSeed, context)=>{
|
|
6137
6498
|
};
|
6138
6499
|
const pieAdvancedPipeline = [
|
6139
6500
|
initAdvancedVSeed_initAdvancedVSeed,
|
6140
|
-
|
6501
|
+
buildMeasures,
|
6141
6502
|
autoDimensions_autoDimensions,
|
6142
6503
|
encodingForPie,
|
6143
6504
|
pivotAdapter([
|
@@ -6228,7 +6589,7 @@ const registerPie = ()=>{
|
|
6228
6589
|
};
|
6229
6590
|
const donutAdvancedPipeline = [
|
6230
6591
|
initAdvancedVSeed_initAdvancedVSeed,
|
6231
|
-
|
6592
|
+
buildMeasures,
|
6232
6593
|
autoDimensions_autoDimensions,
|
6233
6594
|
encodingForPie,
|
6234
6595
|
pivotAdapter([
|
@@ -6329,10 +6690,10 @@ const encodingForRose = (advancedVSeed, context)=>{
|
|
6329
6690
|
(dimensions[1] || dimensions[0]).id
|
6330
6691
|
];
|
6331
6692
|
const detail = encoding.detail || [];
|
6332
|
-
const mergedDetail = unique([
|
6693
|
+
const mergedDetail = 0 === detail.length ? unique([
|
6333
6694
|
...color,
|
6334
6695
|
...detail
|
6335
|
-
]);
|
6696
|
+
]) : detail;
|
6336
6697
|
return {
|
6337
6698
|
...advancedVSeed,
|
6338
6699
|
encoding: {
|
@@ -6360,7 +6721,7 @@ const encodingForRose = (advancedVSeed, context)=>{
|
|
6360
6721
|
};
|
6361
6722
|
const roseAdvancedPipeline = [
|
6362
6723
|
initAdvancedVSeed_initAdvancedVSeed,
|
6363
|
-
|
6724
|
+
buildMeasures,
|
6364
6725
|
autoDimensions_autoDimensions,
|
6365
6726
|
encodingForRose,
|
6366
6727
|
pivotAdapter([
|
@@ -6529,7 +6890,7 @@ const registerRose = ()=>{
|
|
6529
6890
|
};
|
6530
6891
|
const roseParallelAdvancedPipeline = [
|
6531
6892
|
initAdvancedVSeed_initAdvancedVSeed,
|
6532
|
-
|
6893
|
+
buildMeasures,
|
6533
6894
|
autoDimensions_autoDimensions,
|
6534
6895
|
encodingForRose,
|
6535
6896
|
pivotAdapter([
|
@@ -6648,10 +7009,10 @@ const encodingForRadar = (advancedVSeed, context)=>{
|
|
6648
7009
|
(dimensions[1] || dimensions[0]).id
|
6649
7010
|
];
|
6650
7011
|
const detail = encoding.detail || [];
|
6651
|
-
const mergedDetail = unique([
|
7012
|
+
const mergedDetail = 0 === detail.length ? unique([
|
6652
7013
|
...color,
|
6653
7014
|
...detail
|
6654
|
-
]);
|
7015
|
+
]) : detail;
|
6655
7016
|
return {
|
6656
7017
|
...advancedVSeed,
|
6657
7018
|
encoding: {
|
@@ -6678,7 +7039,7 @@ const encodingForRadar = (advancedVSeed, context)=>{
|
|
6678
7039
|
};
|
6679
7040
|
const radarAdvancedPipeline = [
|
6680
7041
|
initAdvancedVSeed_initAdvancedVSeed,
|
6681
|
-
|
7042
|
+
buildMeasures,
|
6682
7043
|
autoDimensions_autoDimensions,
|
6683
7044
|
encodingForRadar,
|
6684
7045
|
pivotAdapter([
|
@@ -6702,7 +7063,7 @@ const initRadar = (spec, context)=>{
|
|
6702
7063
|
result.type = 'radar';
|
6703
7064
|
result.angleField = unfoldInfo.encodingAngle;
|
6704
7065
|
result.radiusField = foldInfo.measureValue;
|
6705
|
-
result.seriesField = unfoldInfo.encodingColorId;
|
7066
|
+
result.seriesField = isLinearColor(advancedVSeed) ? unfoldInfo.encodingDetail : unfoldInfo.encodingColorId;
|
6706
7067
|
result.padding = 0;
|
6707
7068
|
result.region = [
|
6708
7069
|
{
|
@@ -6767,7 +7128,7 @@ const radarRadiusAxis = (spec, context)=>{
|
|
6767
7128
|
};
|
6768
7129
|
const radar = [
|
6769
7130
|
initRadar,
|
6770
|
-
color_color,
|
7131
|
+
colorAdapter(color_color, linearColor),
|
6771
7132
|
background_backgroundColor,
|
6772
7133
|
datasetXY,
|
6773
7134
|
progressive,
|
@@ -6775,12 +7136,12 @@ const radar = [
|
|
6775
7136
|
radarRadiusAxis,
|
6776
7137
|
label_label,
|
6777
7138
|
tooltip_tooltip,
|
7139
|
+
colorAdapter(discreteLegend, colorLegend),
|
6778
7140
|
verticalCrosshairLine,
|
6779
|
-
|
6780
|
-
pointStyle_pointStyle,
|
7141
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6781
7142
|
pointStateDimensionHover,
|
6782
|
-
lineStyle_lineStyle,
|
6783
|
-
areaStyle_areaStyle
|
7143
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
7144
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6784
7145
|
];
|
6785
7146
|
const pivotRadar = [
|
6786
7147
|
initPivot,
|
@@ -6789,7 +7150,7 @@ const pivotRadar = [
|
|
6789
7150
|
datasetPivot,
|
6790
7151
|
pivotIndicators_pivotIndicators([
|
6791
7152
|
initRadar,
|
6792
|
-
color_color,
|
7153
|
+
colorAdapter(color_color, linearColor),
|
6793
7154
|
background_backgroundColor,
|
6794
7155
|
datasetXY,
|
6795
7156
|
progressive,
|
@@ -6798,14 +7159,14 @@ const pivotRadar = [
|
|
6798
7159
|
label_label,
|
6799
7160
|
tooltip_tooltip,
|
6800
7161
|
verticalCrosshairLine,
|
6801
|
-
pointStyle_pointStyle,
|
7162
|
+
colorPointStyleFill(pointStyle_pointStyle),
|
6802
7163
|
pointStateDimensionHover,
|
6803
|
-
lineStyle_lineStyle,
|
6804
|
-
areaStyle_areaStyle
|
7164
|
+
colorLineStyleFill(lineStyle_lineStyle),
|
7165
|
+
colorAreaStyleFill(areaStyle_areaStyle)
|
6805
7166
|
]),
|
6806
7167
|
pivotRowDimensions,
|
6807
7168
|
pivotColumnDimensions,
|
6808
|
-
pivotDiscreteLegend
|
7169
|
+
colorAdapter(pivotDiscreteLegend, pivotColorLegend)
|
6809
7170
|
];
|
6810
7171
|
const radarSpecPipeline = [
|
6811
7172
|
pivotAdapter_pivotAdapter(radar, pivotRadar)
|
@@ -6840,7 +7201,7 @@ const encodingForFunnel = (advancedVSeed, context)=>{
|
|
6840
7201
|
};
|
6841
7202
|
const funnelAdvancedPipeline = [
|
6842
7203
|
initAdvancedVSeed_initAdvancedVSeed,
|
6843
|
-
|
7204
|
+
buildMeasures,
|
6844
7205
|
autoDimensions_autoDimensions,
|
6845
7206
|
encodingForFunnel,
|
6846
7207
|
pivotAdapter([
|
@@ -6971,7 +7332,7 @@ const encodingForHeatmap = (advancedVSeed, context)=>{
|
|
6971
7332
|
};
|
6972
7333
|
const heatmapAdvancedPipeline = [
|
6973
7334
|
initAdvancedVSeed_initAdvancedVSeed,
|
6974
|
-
|
7335
|
+
buildMeasures,
|
6975
7336
|
autoDimensions_autoDimensions,
|
6976
7337
|
encodingForHeatmap,
|
6977
7338
|
pivotAdapter([
|
@@ -7193,6 +7554,10 @@ const lightTheme = ()=>{
|
|
7193
7554
|
const baseConfig = {
|
7194
7555
|
backgroundColor: 'transparent',
|
7195
7556
|
color: {
|
7557
|
+
linearColorScheme: [
|
7558
|
+
'#C2CEFF',
|
7559
|
+
'#5766EC'
|
7560
|
+
],
|
7196
7561
|
colorScheme: [
|
7197
7562
|
'#8D72F6',
|
7198
7563
|
'#5766EC',
|
@@ -7257,8 +7622,8 @@ const lightTheme = ()=>{
|
|
7257
7622
|
stackCornerRadius: [
|
7258
7623
|
4,
|
7259
7624
|
4,
|
7260
|
-
|
7261
|
-
|
7625
|
+
0,
|
7626
|
+
0
|
7262
7627
|
]
|
7263
7628
|
},
|
7264
7629
|
columnParallel: {
|
@@ -7269,8 +7634,8 @@ const lightTheme = ()=>{
|
|
7269
7634
|
stackCornerRadius: [
|
7270
7635
|
4,
|
7271
7636
|
4,
|
7272
|
-
|
7273
|
-
|
7637
|
+
0,
|
7638
|
+
0
|
7274
7639
|
]
|
7275
7640
|
},
|
7276
7641
|
columnPercent: {
|
@@ -7281,8 +7646,8 @@ const lightTheme = ()=>{
|
|
7281
7646
|
stackCornerRadius: [
|
7282
7647
|
4,
|
7283
7648
|
4,
|
7284
|
-
|
7285
|
-
|
7649
|
+
0,
|
7650
|
+
0
|
7286
7651
|
]
|
7287
7652
|
},
|
7288
7653
|
bar: {
|
@@ -7291,10 +7656,10 @@ const lightTheme = ()=>{
|
|
7291
7656
|
yAxis: barBandAxis,
|
7292
7657
|
crosshairRect,
|
7293
7658
|
stackCornerRadius: [
|
7659
|
+
0,
|
7294
7660
|
4,
|
7295
7661
|
4,
|
7296
|
-
|
7297
|
-
4
|
7662
|
+
0
|
7298
7663
|
]
|
7299
7664
|
},
|
7300
7665
|
barParallel: {
|
@@ -7303,10 +7668,10 @@ const lightTheme = ()=>{
|
|
7303
7668
|
yAxis: barBandAxis,
|
7304
7669
|
crosshairRect,
|
7305
7670
|
stackCornerRadius: [
|
7671
|
+
0,
|
7306
7672
|
4,
|
7307
7673
|
4,
|
7308
|
-
|
7309
|
-
4
|
7674
|
+
0
|
7310
7675
|
]
|
7311
7676
|
},
|
7312
7677
|
barPercent: {
|
@@ -7315,10 +7680,10 @@ const lightTheme = ()=>{
|
|
7315
7680
|
yAxis: barBandAxis,
|
7316
7681
|
crosshairRect,
|
7317
7682
|
stackCornerRadius: [
|
7683
|
+
0,
|
7318
7684
|
4,
|
7319
7685
|
4,
|
7320
|
-
|
7321
|
-
4
|
7686
|
+
0
|
7322
7687
|
]
|
7323
7688
|
},
|
7324
7689
|
area: {
|
@@ -7383,38 +7748,10 @@ const lightTheme = ()=>{
|
|
7383
7748
|
...baseConfig
|
7384
7749
|
},
|
7385
7750
|
funnel: {
|
7386
|
-
...baseConfig
|
7387
|
-
color: {
|
7388
|
-
colorScheme: [
|
7389
|
-
'#5766EC',
|
7390
|
-
'#6372F0',
|
7391
|
-
'#7080F4',
|
7392
|
-
'#7C8CFA',
|
7393
|
-
'#8998FF',
|
7394
|
-
'#95A3FF',
|
7395
|
-
'#A0AEFF',
|
7396
|
-
'#ACB9FF',
|
7397
|
-
'#B7C4FF',
|
7398
|
-
'#C2CEFF'
|
7399
|
-
].reverse()
|
7400
|
-
}
|
7751
|
+
...baseConfig
|
7401
7752
|
},
|
7402
7753
|
heatmap: {
|
7403
|
-
...baseConfig
|
7404
|
-
color: {
|
7405
|
-
colorScheme: [
|
7406
|
-
'#5766EC',
|
7407
|
-
'#6372F0',
|
7408
|
-
'#7080F4',
|
7409
|
-
'#7C8CFA',
|
7410
|
-
'#8998FF',
|
7411
|
-
'#95A3FF',
|
7412
|
-
'#A0AEFF',
|
7413
|
-
'#ACB9FF',
|
7414
|
-
'#B7C4FF',
|
7415
|
-
'#C2CEFF'
|
7416
|
-
].reverse()
|
7417
|
-
}
|
7754
|
+
...baseConfig
|
7418
7755
|
}
|
7419
7756
|
}
|
7420
7757
|
};
|
@@ -7526,6 +7863,10 @@ const darkTheme = ()=>{
|
|
7526
7863
|
const baseConfig = {
|
7527
7864
|
backgroundColor: 'transparent',
|
7528
7865
|
color: {
|
7866
|
+
linearColorScheme: [
|
7867
|
+
'#A0CEFF',
|
7868
|
+
'#2E62F1'
|
7869
|
+
],
|
7529
7870
|
colorScheme: [
|
7530
7871
|
'#2E62F1',
|
7531
7872
|
'#4DC36A',
|
@@ -7589,8 +7930,8 @@ const darkTheme = ()=>{
|
|
7589
7930
|
stackCornerRadius: [
|
7590
7931
|
4,
|
7591
7932
|
4,
|
7592
|
-
|
7593
|
-
|
7933
|
+
0,
|
7934
|
+
0
|
7594
7935
|
]
|
7595
7936
|
},
|
7596
7937
|
columnParallel: {
|
@@ -7601,8 +7942,8 @@ const darkTheme = ()=>{
|
|
7601
7942
|
stackCornerRadius: [
|
7602
7943
|
4,
|
7603
7944
|
4,
|
7604
|
-
|
7605
|
-
|
7945
|
+
0,
|
7946
|
+
0
|
7606
7947
|
]
|
7607
7948
|
},
|
7608
7949
|
columnPercent: {
|
@@ -7613,8 +7954,8 @@ const darkTheme = ()=>{
|
|
7613
7954
|
stackCornerRadius: [
|
7614
7955
|
4,
|
7615
7956
|
4,
|
7616
|
-
|
7617
|
-
|
7957
|
+
0,
|
7958
|
+
0
|
7618
7959
|
]
|
7619
7960
|
},
|
7620
7961
|
bar: {
|
@@ -7635,10 +7976,10 @@ const darkTheme = ()=>{
|
|
7635
7976
|
yAxis: barBandAxis,
|
7636
7977
|
crosshairRect: crosshairRect,
|
7637
7978
|
stackCornerRadius: [
|
7979
|
+
0,
|
7638
7980
|
4,
|
7639
7981
|
4,
|
7640
|
-
|
7641
|
-
4
|
7982
|
+
0
|
7642
7983
|
]
|
7643
7984
|
},
|
7644
7985
|
barPercent: {
|
@@ -7647,10 +7988,10 @@ const darkTheme = ()=>{
|
|
7647
7988
|
yAxis: barBandAxis,
|
7648
7989
|
crosshairRect: crosshairRect,
|
7649
7990
|
stackCornerRadius: [
|
7991
|
+
0,
|
7650
7992
|
4,
|
7651
7993
|
4,
|
7652
|
-
|
7653
|
-
4
|
7994
|
+
0
|
7654
7995
|
]
|
7655
7996
|
},
|
7656
7997
|
area: {
|
@@ -7715,21 +8056,7 @@ const darkTheme = ()=>{
|
|
7715
8056
|
...baseConfig
|
7716
8057
|
},
|
7717
8058
|
funnel: {
|
7718
|
-
...baseConfig
|
7719
|
-
color: {
|
7720
|
-
colorScheme: [
|
7721
|
-
'#2E62F1',
|
7722
|
-
'#3A6EF6',
|
7723
|
-
'#4780FA',
|
7724
|
-
'#548CFE',
|
7725
|
-
'#6198FF',
|
7726
|
-
'#6FA3FF',
|
7727
|
-
'#7CACFF',
|
7728
|
-
'#88B7FF',
|
7729
|
-
'#94C2FF',
|
7730
|
-
'#A0CEFF'
|
7731
|
-
]
|
7732
|
-
}
|
8059
|
+
...baseConfig
|
7733
8060
|
},
|
7734
8061
|
heatmap: {
|
7735
8062
|
...baseConfig
|
@@ -7780,9 +8107,6 @@ const updateAdvanced = (chartType, advancedPipe)=>{
|
|
7780
8107
|
const updateSpec = (chartType, specPipe)=>{
|
7781
8108
|
Builder._customSpecPipe[chartType] = specPipe;
|
7782
8109
|
};
|
7783
|
-
const isDimension = (dimension)=>!('children' in dimension);
|
7784
|
-
const isDimensionGroup = (dimension)=>'children' in dimension;
|
7785
|
-
const isDimensions = (dimensions)=>dimensions.every(isDimension);
|
7786
8110
|
const zChartType = z["enum"]([
|
7787
8111
|
'table',
|
7788
8112
|
'pivotTable',
|
@@ -7875,7 +8199,20 @@ const zMeasure = z.object({
|
|
7875
8199
|
id: z.string(),
|
7876
8200
|
alias: z.string().optional(),
|
7877
8201
|
autoFormat: z.boolean().default(true),
|
7878
|
-
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()
|
7879
8216
|
});
|
7880
8217
|
const zMeasureGroup = z.object({
|
7881
8218
|
id: z.string(),
|
@@ -7900,6 +8237,8 @@ const zScatterMeasure = z.object({
|
|
7900
8237
|
const zScatterMeasures = z.array(zScatterMeasure);
|
7901
8238
|
const zFoldInfo = z.object({
|
7902
8239
|
foldMap: z.record(z.string(), z.string().or(z.undefined())),
|
8240
|
+
colorRange: z.array(z.number()),
|
8241
|
+
measureRange: z.array(z.number()),
|
7903
8242
|
measureId: z.string(),
|
7904
8243
|
measureName: z.string(),
|
7905
8244
|
measureValue: z.string()
|
@@ -7935,7 +8274,6 @@ const zEncoding = z.object({
|
|
7935
8274
|
column: z.array(z.string()).nullish(),
|
7936
8275
|
group: z.array(z.string()).nullish().describe("\u5DF2\u5F03\u7528, \u8BF7\u4F7F\u7528\u989C\u8272\u66FF\u4EE3")
|
7937
8276
|
});
|
7938
|
-
const zEncodings = z.array(zEncoding);
|
7939
8277
|
const zXBandAxis = z.object({
|
7940
8278
|
visible: z.boolean().default(true).nullish(),
|
7941
8279
|
labelAutoHide: z.boolean().default(true).nullish(),
|
@@ -8044,10 +8382,11 @@ const zStackCornerRadius = z.number().or(z.array(z.number())).default([
|
|
8044
8382
|
const zBackgroundColor = z.string().default('transparent').nullish();
|
8045
8383
|
const zColor = z.object({
|
8046
8384
|
colorScheme: z.array(z.string()).nullish(),
|
8385
|
+
linearColorScheme: z.array(z.string()).nullish(),
|
8047
8386
|
colorMapping: z.record(z.string(), z.string()).nullish()
|
8048
8387
|
});
|
8049
8388
|
const zLinearColor = z.object({
|
8050
|
-
|
8389
|
+
linearColorScheme: z.array(z.string()).nullish()
|
8051
8390
|
});
|
8052
8391
|
const zLabel = z.object({
|
8053
8392
|
enable: z.boolean().default(true).nullish()
|
@@ -9028,7 +9367,7 @@ const zFunnel = z.object({
|
|
9028
9367
|
dimensions: zDimensions.nullish(),
|
9029
9368
|
measures: zMeasureTree.nullish(),
|
9030
9369
|
backgroundColor: zBackgroundColor.nullish(),
|
9031
|
-
color:
|
9370
|
+
color: zColor.nullish(),
|
9032
9371
|
label: zLabel.nullish(),
|
9033
9372
|
legend: zColorLegend.nullish(),
|
9034
9373
|
tooltip: zTooltip.nullish(),
|
@@ -9041,7 +9380,7 @@ const zHeatmap = z.object({
|
|
9041
9380
|
dimensions: zDimensions.nullish(),
|
9042
9381
|
measures: zMeasureTree.nullish(),
|
9043
9382
|
backgroundColor: zBackgroundColor.nullish(),
|
9044
|
-
color:
|
9383
|
+
color: zColor.nullish(),
|
9045
9384
|
label: zLabel.nullish(),
|
9046
9385
|
legend: zColorLegend.nullish(),
|
9047
9386
|
tooltip: zTooltip.nullish(),
|
@@ -9077,7 +9416,6 @@ const zAdvancedVSeed = z.object({
|
|
9077
9416
|
dimensions: zDimensionTree,
|
9078
9417
|
measures: zMeasureTree,
|
9079
9418
|
encoding: zEncoding,
|
9080
|
-
encodings: zEncodings,
|
9081
9419
|
config: zConfig,
|
9082
9420
|
analysis: zAnalysis,
|
9083
9421
|
theme: zTheme,
|
@@ -9086,6 +9424,6 @@ const zAdvancedVSeed = z.object({
|
|
9086
9424
|
annotation: zAnnotation,
|
9087
9425
|
locale: zLocale
|
9088
9426
|
});
|
9089
|
-
export { AngleEncoding, Builder, ColorEncoding, ColorIdEncoding, DetailEncoding, FoldMeasureId, FoldMeasureName, FoldMeasureValue, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, FoldXMeasureValue, FoldYMeasureValue, MeasureName, ORIGINAL_DATA, Separator,
|
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 };
|
9090
9428
|
|
9091
9429
|
//# sourceMappingURL=index.js.map
|