@visactor/vseed 0.1.7 → 0.1.8
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/dataReshape/constant.d.ts +2 -0
- package/dist/index.cjs +740 -288
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +733 -286
- package/dist/index.js.map +1 -1
- package/dist/pipeline/advanced/chart/pipes/encoding/bar.d.ts +1 -19
- package/dist/pipeline/advanced/chart/pipes/encoding/column.d.ts +1 -19
- package/dist/pipeline/advanced/chart/pipes/encoding/dualAxis.d.ts +1 -19
- package/dist/pipeline/advanced/chart/pipes/encoding/encodingAdapter.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/funnel.d.ts +1 -17
- package/dist/pipeline/advanced/chart/pipes/encoding/heatmap.d.ts +1 -19
- package/dist/pipeline/advanced/chart/pipes/encoding/index.d.ts +11 -9
- package/dist/pipeline/advanced/chart/pipes/encoding/line.d.ts +1 -18
- package/dist/pipeline/advanced/chart/pipes/encoding/pie.d.ts +1 -18
- package/dist/pipeline/advanced/chart/pipes/encoding/radar.d.ts +1 -19
- package/dist/pipeline/advanced/chart/pipes/encoding/rose.d.ts +1 -19
- package/dist/pipeline/advanced/chart/pipes/encoding/scatter.d.ts +1 -18
- package/dist/pipeline/advanced/chart/pipes/measures/utils.d.ts +7 -1
- package/dist/pipeline/spec/chart/pipes/tooltip/index.d.ts +2 -0
- package/dist/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +21 -1
- package/dist/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.d.ts +15 -0
- package/dist/pipeline/spec/chart/pipes/tooltip/tooltipScatter.d.ts +15 -0
- package/dist/types/chartType/area/area.d.ts +7 -27
- package/dist/types/chartType/areaPercent/areaPercent.d.ts +7 -27
- package/dist/types/chartType/bar/bar.d.ts +8 -29
- package/dist/types/chartType/barParallel/barParallel.d.ts +8 -29
- package/dist/types/chartType/barPercent/barPercent.d.ts +8 -29
- package/dist/types/chartType/column/column.d.ts +8 -29
- package/dist/types/chartType/columnParallel/columnParallel.d.ts +9 -30
- package/dist/types/chartType/columnPercent/columnPercent.d.ts +8 -29
- package/dist/types/chartType/donut/donut.d.ts +7 -27
- package/dist/types/chartType/dualAxis/dualAxis.d.ts +9 -29
- package/dist/types/chartType/funnel/funnel.d.ts +7 -26
- package/dist/types/chartType/heatmap/heatmap.d.ts +8 -29
- package/dist/types/chartType/line/line.d.ts +7 -27
- package/dist/types/chartType/pie/pie.d.ts +7 -27
- package/dist/types/chartType/pivotTable/pivotTable.d.ts +4 -7
- package/dist/types/chartType/radar/radar.d.ts +7 -29
- package/dist/types/chartType/rose/rose.d.ts +8 -29
- package/dist/types/chartType/roseParallel/roseParallel.d.ts +8 -29
- package/dist/types/chartType/scatter/scatter.d.ts +7 -28
- package/dist/umd/index.js +736 -288
- package/dist/umd/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
@@ -688,7 +688,6 @@ const registerTable = ()=>{
|
|
688
688
|
Builder._specPipelineMap.table = tableSpecPipeline;
|
689
689
|
};
|
690
690
|
const ORIGINAL_DATA = '__OriginalData__';
|
691
|
-
const Separator = '-';
|
692
691
|
const FoldMeasureName = '__MeaName__';
|
693
692
|
const FoldMeasureId = '__MeaId__';
|
694
693
|
const FoldMeasureValue = '__MeaValue__';
|
@@ -697,6 +696,8 @@ const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
|
|
697
696
|
const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
|
698
697
|
const FoldXMeasureValue = '__MeaXValue__';
|
699
698
|
const FoldYMeasureValue = '__MeaYValue__';
|
699
|
+
const FoldXMeasureId = '__MeaXId__';
|
700
|
+
const FoldYMeasureId = '__MeaYId__';
|
700
701
|
const XEncoding = '__Dim_X__';
|
701
702
|
const YEncoding = '__Dim_Y__';
|
702
703
|
const AngleEncoding = '__Dim_Angle__';
|
@@ -1198,6 +1199,25 @@ const defaultMeasureName_defaultMeasureName = (advancedVSeed)=>{
|
|
1198
1199
|
if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
|
1199
1200
|
return result;
|
1200
1201
|
};
|
1202
|
+
const encodingAdapter = (noEncodingPipeline, hasEncodingPipeline)=>(advancedVSeed, context)=>{
|
1203
|
+
const { dimensions = [], measures = [] } = advancedVSeed;
|
1204
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
1205
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
1206
|
+
const hasEncoding = hasDimensionEncoding || hasMeasureEncoding;
|
1207
|
+
if (hasEncoding) return execPipeline(hasEncodingPipeline, context, advancedVSeed);
|
1208
|
+
return execPipeline(noEncodingPipeline, context, advancedVSeed);
|
1209
|
+
};
|
1210
|
+
const defaultEncodingForLine = (advancedVSeed)=>{
|
1211
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
1212
|
+
const measures = findAllMeasures(vseedMeasures);
|
1213
|
+
const encoding = {};
|
1214
|
+
line_generateDefaultDimensionEncoding(dimensions, encoding);
|
1215
|
+
line_generateDefaultMeasureEncoding(measures, encoding);
|
1216
|
+
return {
|
1217
|
+
...advancedVSeed,
|
1218
|
+
encoding
|
1219
|
+
};
|
1220
|
+
};
|
1201
1221
|
const encodingForLine = (advancedVSeed)=>{
|
1202
1222
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
1203
1223
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -1217,7 +1237,7 @@ const line_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
1217
1237
|
const uniqueDimIds = unique(dimensions.map((d)=>d.id));
|
1218
1238
|
encoding.x = uniqueDimIds.slice(0, 1);
|
1219
1239
|
encoding.color = uniqueDimIds.slice(1);
|
1220
|
-
encoding.tooltip = uniqueDimIds;
|
1240
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
1221
1241
|
encoding.detail = [];
|
1222
1242
|
encoding.label = [];
|
1223
1243
|
encoding.row = [];
|
@@ -1225,27 +1245,32 @@ const line_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
1225
1245
|
};
|
1226
1246
|
const line_generateDimensionEncoding = (dimensions, encoding)=>{
|
1227
1247
|
encoding.x = unique(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
1228
|
-
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
1229
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
1230
1248
|
if (0 === encoding.x.length) encoding.x = [
|
1231
1249
|
dimensions[0].id
|
1232
1250
|
];
|
1251
|
+
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
1233
1252
|
if (0 === encoding.color.length) encoding.color = [
|
1234
1253
|
MeasureName
|
1235
1254
|
];
|
1255
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
1236
1256
|
if (0 === encoding.detail.length) encoding.detail = [
|
1237
1257
|
MeasureName
|
1238
1258
|
];
|
1259
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
1260
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
1239
1261
|
};
|
1240
1262
|
const line_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
1241
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
1242
1263
|
encoding.y = unique(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
1243
1264
|
};
|
1244
1265
|
const line_generateMeasureEncoding = (measures, encoding)=>{
|
1245
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
1246
1266
|
encoding.y = unique(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
1247
1267
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
1248
1268
|
if (color.length > 0) encoding.color = color;
|
1269
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
1270
|
+
encoding.tooltip = unique([
|
1271
|
+
...encoding.tooltip || [],
|
1272
|
+
...tooltip
|
1273
|
+
]);
|
1249
1274
|
};
|
1250
1275
|
const isMeasureTreeWithChildren = (vseed)=>{
|
1251
1276
|
const { measures } = vseed;
|
@@ -1257,6 +1282,37 @@ const isMeasureTreeWithParentId = (vseed)=>{
|
|
1257
1282
|
if (!measures) return false;
|
1258
1283
|
return measures.some((measure)=>'parentId' in measure);
|
1259
1284
|
};
|
1285
|
+
const normalizeMeasureTree = (measures)=>{
|
1286
|
+
const createEmptyMeasureGroup = ()=>({
|
1287
|
+
id: 'group',
|
1288
|
+
alias: '',
|
1289
|
+
children: []
|
1290
|
+
});
|
1291
|
+
let currentGroup = createEmptyMeasureGroup();
|
1292
|
+
const measureGroups = [];
|
1293
|
+
for (const measure of measures)if ('children' in measure) {
|
1294
|
+
if (currentGroup.children?.length) {
|
1295
|
+
currentGroup.id = [
|
1296
|
+
currentGroup.id,
|
1297
|
+
...currentGroup.children.map((item)=>item.id)
|
1298
|
+
].join('-');
|
1299
|
+
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1300
|
+
measureGroups.push(currentGroup);
|
1301
|
+
currentGroup = createEmptyMeasureGroup();
|
1302
|
+
}
|
1303
|
+
measureGroups.push(measure);
|
1304
|
+
} else currentGroup.children?.push(measure);
|
1305
|
+
if (currentGroup.children?.length) {
|
1306
|
+
currentGroup.id = [
|
1307
|
+
currentGroup.id,
|
1308
|
+
...currentGroup.children.map((item)=>item.id)
|
1309
|
+
].join('-');
|
1310
|
+
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1311
|
+
measureGroups.push(currentGroup);
|
1312
|
+
currentGroup = createEmptyMeasureGroup();
|
1313
|
+
}
|
1314
|
+
return measureGroups;
|
1315
|
+
};
|
1260
1316
|
const measureDepth = (measures = [])=>{
|
1261
1317
|
if (!measures) return 0;
|
1262
1318
|
let depth = 1;
|
@@ -1308,7 +1364,7 @@ const isPivotChart = (vseed)=>{
|
|
1308
1364
|
const buildMeasures = (advancedVSeed, context)=>{
|
1309
1365
|
const { vseed } = context;
|
1310
1366
|
if (isMeasureTreeWithChildren(vseed)) {
|
1311
|
-
advancedVSeed.measures = vseed.measures;
|
1367
|
+
advancedVSeed.measures = normalizeMeasureTree(vseed.measures);
|
1312
1368
|
return advancedVSeed;
|
1313
1369
|
}
|
1314
1370
|
if (isMeasureTreeWithParentId(vseed)) {
|
@@ -1410,7 +1466,7 @@ const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)
|
|
1410
1466
|
});
|
1411
1467
|
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
|
1412
1468
|
foldMeasureId,
|
1413
|
-
separator:
|
1469
|
+
separator: "-",
|
1414
1470
|
colorItemAsId
|
1415
1471
|
});
|
1416
1472
|
return {
|
@@ -1699,8 +1755,13 @@ const lineAdvancedPipeline = [
|
|
1699
1755
|
default_defaultMeasures_defaultMeasures,
|
1700
1756
|
defaultDimensions_defaultDimensions,
|
1701
1757
|
defaultMeasureName_defaultMeasureName,
|
1702
|
-
|
1703
|
-
|
1758
|
+
encodingAdapter([
|
1759
|
+
defaultEncodingForLine,
|
1760
|
+
buildMeasures
|
1761
|
+
], [
|
1762
|
+
encodingForLine,
|
1763
|
+
buildMeasures
|
1764
|
+
]),
|
1704
1765
|
pivotAdapter([
|
1705
1766
|
reshapeWithEncoding
|
1706
1767
|
], [
|
@@ -1975,10 +2036,6 @@ const xBand = (spec, context)=>{
|
|
1975
2036
|
];
|
1976
2037
|
return result;
|
1977
2038
|
};
|
1978
|
-
const ANNOTATION_Z_INDEX = 1000;
|
1979
|
-
const LINEAR_AXIS_INNER_OFFSET_TOP = 7;
|
1980
|
-
const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000;
|
1981
|
-
const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001;
|
1982
2039
|
const yLinear = (spec, context)=>{
|
1983
2040
|
const result = {
|
1984
2041
|
...spec
|
@@ -2052,7 +2109,7 @@ const yLinear = (spec, context)=>{
|
|
2052
2109
|
}
|
2053
2110
|
},
|
2054
2111
|
innerOffset: {
|
2055
|
-
top:
|
2112
|
+
top: 7
|
2056
2113
|
}
|
2057
2114
|
};
|
2058
2115
|
result.axes = [
|
@@ -2608,78 +2665,133 @@ const tooltip_tooltip = (spec, context)=>{
|
|
2608
2665
|
...spec
|
2609
2666
|
};
|
2610
2667
|
const { advancedVSeed } = context;
|
2611
|
-
const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
|
2668
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
2612
2669
|
const baseConfig = advancedVSeed.config[chartType];
|
2613
2670
|
const { tooltip = {
|
2614
2671
|
enable: true
|
2615
2672
|
} } = baseConfig;
|
2616
2673
|
const { enable } = tooltip;
|
2617
|
-
const {
|
2618
|
-
const { encodingColor: colorName } = datasetReshapeInfo[0].unfoldInfo;
|
2674
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
2619
2675
|
result.tooltip = {
|
2620
2676
|
visible: enable,
|
2621
2677
|
mark: {
|
2622
2678
|
title: {
|
2623
|
-
visible:
|
2679
|
+
visible: false
|
2624
2680
|
},
|
2625
|
-
content: [
|
2626
|
-
...dimensions.map((item)=>({
|
2627
|
-
visible: true,
|
2628
|
-
hasShape: true,
|
2629
|
-
shapeType: 'rectRound',
|
2630
|
-
key: (datum)=>{
|
2631
|
-
if (item.alias || item.id) return item.alias || item.id;
|
2632
|
-
return datum && datum[item.id];
|
2633
|
-
},
|
2634
|
-
value: (datum)=>datum && datum[item.id]
|
2635
|
-
})),
|
2636
|
-
{
|
2637
|
-
visible: true,
|
2638
|
-
hasShape: true,
|
2639
|
-
key: (datum)=>datum && datum[measureName || colorName] || '',
|
2640
|
-
value: (datum)=>{
|
2641
|
-
if (!datum) return '';
|
2642
|
-
const value = datum[measureValue];
|
2643
|
-
const id = datum[measureId];
|
2644
|
-
const measure = findMeasureById(measures, id);
|
2645
|
-
if (!measure) return String(value);
|
2646
|
-
const { format = {}, autoFormat = true } = measure;
|
2647
|
-
if (!external_remeda_isEmpty(format)) {
|
2648
|
-
const formatter = createFormatter(format);
|
2649
|
-
return formatter(value);
|
2650
|
-
}
|
2651
|
-
if (autoFormat) return autoFormatter(value, locale);
|
2652
|
-
return String(value);
|
2653
|
-
}
|
2654
|
-
}
|
2655
|
-
]
|
2681
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfo, unfoldInfo)
|
2656
2682
|
},
|
2657
2683
|
dimension: {
|
2658
|
-
|
2659
|
-
|
2660
|
-
|
2661
|
-
|
2662
|
-
value: (datum)=>{
|
2663
|
-
if (!datum) return '';
|
2664
|
-
const value = datum[measureValue];
|
2665
|
-
const id = datum[measureId];
|
2666
|
-
const measure = findMeasureById(measures, id);
|
2667
|
-
if (!measure) return String(value);
|
2668
|
-
const { format = {}, autoFormat = true } = measure;
|
2669
|
-
if (!external_remeda_isEmpty(format)) {
|
2670
|
-
const formatter = createFormatter(format);
|
2671
|
-
return formatter(value);
|
2672
|
-
}
|
2673
|
-
if (autoFormat) return autoFormatter(value, locale);
|
2674
|
-
return String(value);
|
2675
|
-
},
|
2676
|
-
shapeType: 'rectRound'
|
2677
|
-
}
|
2678
|
-
]
|
2684
|
+
title: {
|
2685
|
+
visible: true
|
2686
|
+
},
|
2687
|
+
content: createDimensionContent(measures, foldInfo, unfoldInfo, locale)
|
2679
2688
|
}
|
2680
2689
|
};
|
2681
2690
|
return result;
|
2682
2691
|
};
|
2692
|
+
const createDimensionContent = (measures, foldInfo, unfoldInfo, locale)=>{
|
2693
|
+
const { measureId, measureValue } = foldInfo;
|
2694
|
+
const { encodingColor } = unfoldInfo;
|
2695
|
+
return [
|
2696
|
+
{
|
2697
|
+
visible: true,
|
2698
|
+
shapeType: 'rectRound',
|
2699
|
+
hasShape: true,
|
2700
|
+
key: (v)=>{
|
2701
|
+
const datum = v;
|
2702
|
+
return datum && datum[encodingColor] || '';
|
2703
|
+
},
|
2704
|
+
value: (v)=>{
|
2705
|
+
const datum = v;
|
2706
|
+
if (!datum) return '';
|
2707
|
+
const value = datum[measureValue];
|
2708
|
+
const id = datum[measureId];
|
2709
|
+
const measure = findMeasureById(measures, id);
|
2710
|
+
if (!measure) return String(value);
|
2711
|
+
const { format = {}, autoFormat = true } = measure;
|
2712
|
+
if (!external_remeda_isEmpty(format)) {
|
2713
|
+
const formatter = createFormatter(format);
|
2714
|
+
return formatter(value);
|
2715
|
+
}
|
2716
|
+
if (autoFormat) return autoFormatter(value, locale);
|
2717
|
+
return String(value);
|
2718
|
+
}
|
2719
|
+
}
|
2720
|
+
];
|
2721
|
+
};
|
2722
|
+
const createMarkContent = (tooltip, dimensions, measures, locale, foldInfo, unfoldInfo)=>{
|
2723
|
+
const dims = dimensions.filter((item)=>tooltip.includes(item.id));
|
2724
|
+
const meas = measures.filter((item)=>tooltip.includes(item.id));
|
2725
|
+
const dimContent = dims.map((item)=>({
|
2726
|
+
visible: true,
|
2727
|
+
hasShape: true,
|
2728
|
+
shapeType: 'rectRound',
|
2729
|
+
key: (v)=>{
|
2730
|
+
const datum = v;
|
2731
|
+
if (item.alias || item.id) return item.alias || item.id;
|
2732
|
+
return datum && datum[item.id];
|
2733
|
+
},
|
2734
|
+
value: (v)=>{
|
2735
|
+
const datum = v;
|
2736
|
+
return datum && datum[item.id];
|
2737
|
+
}
|
2738
|
+
}));
|
2739
|
+
const meaContent = meas.map((item)=>({
|
2740
|
+
visible: true,
|
2741
|
+
hasShape: true,
|
2742
|
+
shapeType: 'rectRound',
|
2743
|
+
key: item.alias || item.id,
|
2744
|
+
value: (v)=>{
|
2745
|
+
const datum = v;
|
2746
|
+
if (!datum) return '';
|
2747
|
+
const id = item.id;
|
2748
|
+
if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
|
2749
|
+
const originalData = datum[ORIGINAL_DATA];
|
2750
|
+
const value = originalData[id];
|
2751
|
+
const measure = findMeasureById(measures, id);
|
2752
|
+
if (!measure) return String(value);
|
2753
|
+
const { format = {}, autoFormat = true } = measure;
|
2754
|
+
if (!external_remeda_isEmpty(format)) {
|
2755
|
+
const formatter = createFormatter(format);
|
2756
|
+
return formatter(value);
|
2757
|
+
}
|
2758
|
+
if (autoFormat) return autoFormatter(value, locale);
|
2759
|
+
return String(value);
|
2760
|
+
}
|
2761
|
+
}));
|
2762
|
+
const defaultContent = {
|
2763
|
+
visible: true,
|
2764
|
+
hasShape: true,
|
2765
|
+
shapeType: 'rectRound',
|
2766
|
+
key: (v)=>{
|
2767
|
+
const { measureName } = foldInfo;
|
2768
|
+
const { encodingColor: colorName } = unfoldInfo;
|
2769
|
+
const datum = v;
|
2770
|
+
return datum && datum[measureName || colorName] || '';
|
2771
|
+
},
|
2772
|
+
value: (v)=>{
|
2773
|
+
const { measureId, measureValue } = foldInfo;
|
2774
|
+
const datum = v;
|
2775
|
+
if (!datum) return '';
|
2776
|
+
const value = datum[measureValue];
|
2777
|
+
const id = datum[measureId];
|
2778
|
+
const measure = findMeasureById(measures, id);
|
2779
|
+
if (!measure) return String(value);
|
2780
|
+
const { format = {}, autoFormat = true } = measure;
|
2781
|
+
if (!external_remeda_isEmpty(format)) {
|
2782
|
+
const formatter = createFormatter(format);
|
2783
|
+
return formatter(value);
|
2784
|
+
}
|
2785
|
+
if (autoFormat) return autoFormatter(value, locale);
|
2786
|
+
return String(value);
|
2787
|
+
}
|
2788
|
+
};
|
2789
|
+
return [
|
2790
|
+
...dimContent,
|
2791
|
+
defaultContent,
|
2792
|
+
...meaContent
|
2793
|
+
];
|
2794
|
+
};
|
2683
2795
|
const isSubset = (sub, obj)=>Object.entries(sub).every(([key, value])=>{
|
2684
2796
|
if ('string' == typeof value) return obj[key] === value;
|
2685
2797
|
if ('number' == typeof value) return obj[key] === value;
|
@@ -2698,7 +2810,7 @@ const annotationPoint_annotationPoint = (spec, context)=>{
|
|
2698
2810
|
const dataset = advancedVSeed.dataset.flat();
|
2699
2811
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
2700
2812
|
return selectedData.map((datum)=>({
|
2701
|
-
zIndex:
|
2813
|
+
zIndex: 1000,
|
2702
2814
|
regionRelative: true,
|
2703
2815
|
position: (data, context)=>{
|
2704
2816
|
const targetDatum = data.find((item)=>isSubset(datum, item));
|
@@ -2771,7 +2883,7 @@ const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
|
|
2771
2883
|
const dataset = advancedVSeed.dataset.flat();
|
2772
2884
|
const generateOneMarkLine = (x)=>({
|
2773
2885
|
x: x,
|
2774
|
-
zIndex:
|
2886
|
+
zIndex: 1000,
|
2775
2887
|
line: {
|
2776
2888
|
style: {
|
2777
2889
|
visible: lineVisible,
|
@@ -2869,7 +2981,7 @@ const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
|
|
2869
2981
|
const dataset = advancedVSeed.dataset.flat();
|
2870
2982
|
const generateOneMarkLine = (y)=>({
|
2871
2983
|
y,
|
2872
|
-
zIndex:
|
2984
|
+
zIndex: 1000,
|
2873
2985
|
line: {
|
2874
2986
|
style: {
|
2875
2987
|
visible: lineVisible,
|
@@ -2970,7 +3082,7 @@ const annotationArea_annotationArea = (spec, context)=>{
|
|
2970
3082
|
const labelPosition = positionMap[textPosition || 'top'];
|
2971
3083
|
const isBottom = labelPosition.toLocaleLowerCase().includes('bottom');
|
2972
3084
|
return {
|
2973
|
-
zIndex:
|
3085
|
+
zIndex: 1000,
|
2974
3086
|
regionRelative: true,
|
2975
3087
|
positions: (data, context)=>{
|
2976
3088
|
const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
|
@@ -3586,6 +3698,17 @@ const registerLine = ()=>{
|
|
3586
3698
|
Builder._advancedPipelineMap.line = lineAdvancedPipeline;
|
3587
3699
|
Builder._specPipelineMap.line = lineSpecPipeline;
|
3588
3700
|
};
|
3701
|
+
const defaultEncodingForColumn = (advancedVSeed)=>{
|
3702
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
3703
|
+
const measures = findAllMeasures(vseedMeasures);
|
3704
|
+
const encoding = {};
|
3705
|
+
column_generateDefaultDimensionEncoding(dimensions, encoding);
|
3706
|
+
column_generateDefaultMeasureEncoding(measures, encoding);
|
3707
|
+
return {
|
3708
|
+
...advancedVSeed,
|
3709
|
+
encoding
|
3710
|
+
};
|
3711
|
+
};
|
3589
3712
|
const encodingForColumn = (advancedVSeed)=>{
|
3590
3713
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
3591
3714
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -3607,43 +3730,52 @@ const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
3607
3730
|
encoding.x = uniqueDimIds.slice(0, 1);
|
3608
3731
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
3609
3732
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
3610
|
-
encoding.tooltip = uniqueDimIds;
|
3733
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
3611
3734
|
encoding.label = [];
|
3612
3735
|
encoding.row = [];
|
3613
3736
|
encoding.column = [];
|
3614
3737
|
};
|
3615
3738
|
const column_generateDimensionEncoding = (dimensions, encoding)=>{
|
3616
3739
|
encoding.x = unique(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
3617
|
-
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
3618
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
3619
3740
|
if (0 === encoding.x.length) encoding.x = [
|
3620
3741
|
dimensions[0].id
|
3621
3742
|
];
|
3743
|
+
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
3622
3744
|
if (0 === encoding.color.length) encoding.color = [
|
3623
3745
|
MeasureName
|
3624
3746
|
];
|
3747
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
3625
3748
|
if (0 === encoding.detail.length) encoding.detail = [
|
3626
3749
|
MeasureName
|
3627
3750
|
];
|
3751
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
3752
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
3628
3753
|
};
|
3629
3754
|
const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
3630
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
3631
3755
|
encoding.y = unique(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
3632
3756
|
};
|
3633
3757
|
const column_generateMeasureEncoding = (measures, encoding)=>{
|
3634
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
3635
3758
|
encoding.y = unique(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
3636
3759
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
3637
3760
|
if (color.length > 0) encoding.color = color;
|
3638
|
-
|
3761
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
3762
|
+
encoding.tooltip = unique([
|
3763
|
+
...encoding.tooltip || [],
|
3764
|
+
...tooltip
|
3765
|
+
]);
|
3639
3766
|
};
|
3640
3767
|
const columnAdvancedPipeline = [
|
3641
3768
|
initAdvancedVSeed_initAdvancedVSeed,
|
3642
3769
|
default_defaultMeasures_defaultMeasures,
|
3643
3770
|
defaultDimensions_defaultDimensions,
|
3644
3771
|
defaultMeasureName_defaultMeasureName,
|
3645
|
-
|
3646
|
-
|
3772
|
+
encodingAdapter([
|
3773
|
+
defaultEncodingForColumn,
|
3774
|
+
buildMeasures
|
3775
|
+
], [
|
3776
|
+
encodingForColumn,
|
3777
|
+
buildMeasures
|
3778
|
+
]),
|
3647
3779
|
pivotAdapter([
|
3648
3780
|
reshapeWithEncoding
|
3649
3781
|
], [
|
@@ -3840,7 +3972,7 @@ const annotationAreaBand = (spec, context)=>{
|
|
3840
3972
|
const dataset = advancedVSeed.dataset.flat();
|
3841
3973
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
3842
3974
|
return {
|
3843
|
-
zIndex:
|
3975
|
+
zIndex: 1000,
|
3844
3976
|
regionRelative: true,
|
3845
3977
|
positions: (data, context)=>{
|
3846
3978
|
const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
|
@@ -4006,8 +4138,13 @@ const columnParallelAdvancedPipeline = [
|
|
4006
4138
|
default_defaultMeasures_defaultMeasures,
|
4007
4139
|
defaultDimensions_defaultDimensions,
|
4008
4140
|
defaultMeasureName_defaultMeasureName,
|
4009
|
-
|
4010
|
-
|
4141
|
+
encodingAdapter([
|
4142
|
+
defaultEncodingForColumn,
|
4143
|
+
buildMeasures
|
4144
|
+
], [
|
4145
|
+
encodingForColumn,
|
4146
|
+
buildMeasures
|
4147
|
+
]),
|
4011
4148
|
pivotAdapter([
|
4012
4149
|
reshapeWithEncoding
|
4013
4150
|
], [
|
@@ -4105,8 +4242,13 @@ const columnPercentAdvancedPipeline = [
|
|
4105
4242
|
default_defaultMeasures_defaultMeasures,
|
4106
4243
|
defaultDimensions_defaultDimensions,
|
4107
4244
|
defaultMeasureName_defaultMeasureName,
|
4108
|
-
|
4109
|
-
|
4245
|
+
encodingAdapter([
|
4246
|
+
defaultEncodingForColumn,
|
4247
|
+
buildMeasures
|
4248
|
+
], [
|
4249
|
+
encodingForColumn,
|
4250
|
+
buildMeasures
|
4251
|
+
]),
|
4110
4252
|
pivotAdapter([
|
4111
4253
|
reshapeWithEncoding
|
4112
4254
|
], [
|
@@ -4183,6 +4325,17 @@ const registerColumnPercent = ()=>{
|
|
4183
4325
|
Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
|
4184
4326
|
Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
|
4185
4327
|
};
|
4328
|
+
const defaultEncodingForBar = (advancedVSeed)=>{
|
4329
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
4330
|
+
const measures = findAllMeasures(vseedMeasures);
|
4331
|
+
const encoding = {};
|
4332
|
+
bar_generateDefaultDimensionEncoding(dimensions, encoding);
|
4333
|
+
bar_generateDefaultMeasureEncoding(measures, encoding);
|
4334
|
+
return {
|
4335
|
+
...advancedVSeed,
|
4336
|
+
encoding
|
4337
|
+
};
|
4338
|
+
};
|
4186
4339
|
const encodingForBar = (advancedVSeed)=>{
|
4187
4340
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
4188
4341
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -4204,35 +4357,39 @@ const bar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
4204
4357
|
encoding.y = uniqueDimIds.slice(0, 1);
|
4205
4358
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
4206
4359
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
4207
|
-
encoding.tooltip = uniqueDimIds;
|
4360
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
4208
4361
|
encoding.label = [];
|
4209
4362
|
encoding.row = [];
|
4210
4363
|
encoding.column = [];
|
4211
4364
|
};
|
4212
4365
|
const bar_generateDimensionEncoding = (dimensions, encoding)=>{
|
4213
4366
|
encoding.y = unique(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
4214
|
-
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4215
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
4216
4367
|
if (0 === encoding.y.length) encoding.y = [
|
4217
4368
|
dimensions[0].id
|
4218
4369
|
];
|
4370
|
+
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4219
4371
|
if (0 === encoding.color.length) encoding.color = [
|
4220
4372
|
MeasureName
|
4221
4373
|
];
|
4374
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
4222
4375
|
if (0 === encoding.detail.length) encoding.detail = [
|
4223
4376
|
MeasureName
|
4224
4377
|
];
|
4378
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
4379
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
4225
4380
|
};
|
4226
4381
|
const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
4227
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
4228
4382
|
encoding.x = unique(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4229
4383
|
};
|
4230
4384
|
const bar_generateMeasureEncoding = (measures, encoding)=>{
|
4231
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
4232
4385
|
encoding.x = unique(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4233
4386
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4234
4387
|
if (color.length > 0) encoding.color = color;
|
4235
|
-
|
4388
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
4389
|
+
encoding.tooltip = unique([
|
4390
|
+
...encoding.tooltip || [],
|
4391
|
+
...tooltip
|
4392
|
+
]);
|
4236
4393
|
};
|
4237
4394
|
const sortYBandAxis = (advancedVSeed, context)=>{
|
4238
4395
|
const result = {
|
@@ -4255,8 +4412,13 @@ const barAdvancedPipeline = [
|
|
4255
4412
|
default_defaultMeasures_defaultMeasures,
|
4256
4413
|
defaultDimensions_defaultDimensions,
|
4257
4414
|
defaultMeasureName_defaultMeasureName,
|
4258
|
-
|
4259
|
-
|
4415
|
+
encodingAdapter([
|
4416
|
+
defaultEncodingForBar,
|
4417
|
+
buildMeasures
|
4418
|
+
], [
|
4419
|
+
encodingForBar,
|
4420
|
+
buildMeasures
|
4421
|
+
]),
|
4260
4422
|
pivotAdapter([
|
4261
4423
|
reshapeWithEncoding
|
4262
4424
|
], [
|
@@ -4407,7 +4569,7 @@ const xLinear = (spec, context)=>{
|
|
4407
4569
|
}
|
4408
4570
|
},
|
4409
4571
|
innerOffset: {
|
4410
|
-
right:
|
4572
|
+
right: 7
|
4411
4573
|
}
|
4412
4574
|
};
|
4413
4575
|
result.axes = [
|
@@ -4610,8 +4772,13 @@ const barParallelAdvancedPipeline = [
|
|
4610
4772
|
default_defaultMeasures_defaultMeasures,
|
4611
4773
|
defaultDimensions_defaultDimensions,
|
4612
4774
|
defaultMeasureName_defaultMeasureName,
|
4613
|
-
|
4614
|
-
|
4775
|
+
encodingAdapter([
|
4776
|
+
defaultEncodingForBar,
|
4777
|
+
buildMeasures
|
4778
|
+
], [
|
4779
|
+
encodingForBar,
|
4780
|
+
buildMeasures
|
4781
|
+
]),
|
4615
4782
|
pivotAdapter([
|
4616
4783
|
reshapeWithEncoding
|
4617
4784
|
], [
|
@@ -4708,8 +4875,13 @@ const barPercentAdvancedPipeline = [
|
|
4708
4875
|
default_defaultMeasures_defaultMeasures,
|
4709
4876
|
defaultDimensions_defaultDimensions,
|
4710
4877
|
defaultMeasureName_defaultMeasureName,
|
4711
|
-
|
4712
|
-
|
4878
|
+
encodingAdapter([
|
4879
|
+
defaultEncodingForBar,
|
4880
|
+
buildMeasures
|
4881
|
+
], [
|
4882
|
+
encodingForBar,
|
4883
|
+
buildMeasures
|
4884
|
+
]),
|
4713
4885
|
pivotAdapter([
|
4714
4886
|
reshapeWithEncoding
|
4715
4887
|
], [
|
@@ -4781,8 +4953,13 @@ const areaAdvancedPipeline = [
|
|
4781
4953
|
default_defaultMeasures_defaultMeasures,
|
4782
4954
|
defaultDimensions_defaultDimensions,
|
4783
4955
|
defaultMeasureName_defaultMeasureName,
|
4784
|
-
|
4785
|
-
|
4956
|
+
encodingAdapter([
|
4957
|
+
defaultEncodingForLine,
|
4958
|
+
buildMeasures
|
4959
|
+
], [
|
4960
|
+
encodingForLine,
|
4961
|
+
buildMeasures
|
4962
|
+
]),
|
4786
4963
|
pivotAdapter([
|
4787
4964
|
reshapeWithEncoding
|
4788
4965
|
], [
|
@@ -4941,8 +5118,13 @@ const areaPercentAdvancedPipeline = [
|
|
4941
5118
|
default_defaultMeasures_defaultMeasures,
|
4942
5119
|
defaultDimensions_defaultDimensions,
|
4943
5120
|
defaultMeasureName_defaultMeasureName,
|
4944
|
-
|
4945
|
-
|
5121
|
+
encodingAdapter([
|
5122
|
+
defaultEncodingForLine,
|
5123
|
+
buildMeasures
|
5124
|
+
], [
|
5125
|
+
encodingForLine,
|
5126
|
+
buildMeasures
|
5127
|
+
]),
|
4946
5128
|
pivotAdapter([
|
4947
5129
|
reshapeWithEncoding
|
4948
5130
|
], [
|
@@ -5016,6 +5198,17 @@ const registerAreaPercent = ()=>{
|
|
5016
5198
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
5017
5199
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
5018
5200
|
};
|
5201
|
+
const defaultEncodingForScatter = (advancedVSeed)=>{
|
5202
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
5203
|
+
const measures = findAllMeasures(vseedMeasures);
|
5204
|
+
const encoding = {};
|
5205
|
+
scatter_generateDefaultDimensionEncoding(dimensions, encoding);
|
5206
|
+
scatter_generateDefaultMeasureEncoding(measures, encoding);
|
5207
|
+
return {
|
5208
|
+
...advancedVSeed,
|
5209
|
+
encoding
|
5210
|
+
};
|
5211
|
+
};
|
5019
5212
|
const encodingForScatter = (advancedVSeed)=>{
|
5020
5213
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
5021
5214
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -5036,23 +5229,24 @@ const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
5036
5229
|
const uniqueDimIds = unique(dimensionsWithoutMeasureName.map((d)=>d.id));
|
5037
5230
|
encoding.color = uniqueDimIds.slice(0);
|
5038
5231
|
encoding.detail = uniqueDimIds.slice(0);
|
5039
|
-
encoding.tooltip = uniqueDimIds;
|
5232
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
5040
5233
|
encoding.label = [];
|
5041
5234
|
encoding.row = [];
|
5042
5235
|
encoding.column = [];
|
5043
5236
|
};
|
5044
5237
|
const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
|
5045
5238
|
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5046
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5047
5239
|
if (0 === encoding.color.length) encoding.color = [
|
5048
5240
|
MeasureName
|
5049
5241
|
];
|
5242
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5050
5243
|
if (0 === encoding.detail.length) encoding.detail = [
|
5051
5244
|
MeasureName
|
5052
5245
|
];
|
5246
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
5247
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
5053
5248
|
};
|
5054
5249
|
const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
5055
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
5056
5250
|
encoding.y = unique(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5057
5251
|
};
|
5058
5252
|
const scatter_generateMeasureEncoding = (measures, encoding)=>{
|
@@ -5062,6 +5256,11 @@ const scatter_generateMeasureEncoding = (measures, encoding)=>{
|
|
5062
5256
|
if (color.length > 0) encoding.color = [
|
5063
5257
|
color[0]
|
5064
5258
|
];
|
5259
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
5260
|
+
encoding.tooltip = unique([
|
5261
|
+
...encoding.tooltip || [],
|
5262
|
+
...tooltip
|
5263
|
+
]);
|
5065
5264
|
};
|
5066
5265
|
const buildMeasuresForScatter = (advancedVSeed, context)=>{
|
5067
5266
|
const { vseed } = context;
|
@@ -5092,6 +5291,7 @@ const basicMeasuresToScatterMeasures = (basicMeasures)=>{
|
|
5092
5291
|
else if (0 !== index) yMeasures.push(item);
|
5093
5292
|
else xMeasures.push(item);
|
5094
5293
|
}
|
5294
|
+
if (0 === yMeasures.length && xMeasures.length > 0) yMeasures.push(xMeasures[0]);
|
5095
5295
|
return [
|
5096
5296
|
{
|
5097
5297
|
id: 'scatterMeasures',
|
@@ -5180,6 +5380,7 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5180
5380
|
if (xMeasures && xMeasures.children) {
|
5181
5381
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, uniqueBy(dimensions, (d)=>d.id), uniqueBy(xMeasures.children, (d)=>d.id), encoding, {
|
5182
5382
|
foldMeasureValue: FoldXMeasureValue,
|
5383
|
+
foldMeasureId: FoldXMeasureId,
|
5183
5384
|
colorItemAsId: true,
|
5184
5385
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5185
5386
|
});
|
@@ -5190,6 +5391,7 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5190
5391
|
if (yMeasures && yMeasures.children) {
|
5191
5392
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], uniqueBy(dimensions, (d)=>d.id), uniqueBy(yMeasures.children, (d)=>d.id), encoding, {
|
5192
5393
|
foldMeasureValue: FoldYMeasureValue,
|
5394
|
+
foldMeasureId: FoldYMeasureId,
|
5193
5395
|
colorItemAsId: true,
|
5194
5396
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5195
5397
|
});
|
@@ -5295,8 +5497,13 @@ const scatterAdvancedPipeline = [
|
|
5295
5497
|
default_defaultMeasures_defaultMeasures,
|
5296
5498
|
defaultDimensions_defaultDimensions,
|
5297
5499
|
defaultMeasureName_defaultMeasureName,
|
5298
|
-
|
5299
|
-
|
5500
|
+
encodingAdapter([
|
5501
|
+
defaultEncodingForScatter,
|
5502
|
+
buildMeasuresForScatter
|
5503
|
+
], [
|
5504
|
+
encodingForScatter,
|
5505
|
+
buildMeasuresForScatter
|
5506
|
+
]),
|
5300
5507
|
pivotAdapter([
|
5301
5508
|
reshapeWithScatterEncoding
|
5302
5509
|
], [
|
@@ -5342,6 +5549,105 @@ const datasetScatter = (spec, context)=>{
|
|
5342
5549
|
}
|
5343
5550
|
};
|
5344
5551
|
};
|
5552
|
+
const tooltipScatter = (spec, context)=>{
|
5553
|
+
const result = {
|
5554
|
+
...spec
|
5555
|
+
};
|
5556
|
+
const { advancedVSeed } = context;
|
5557
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
5558
|
+
const baseConfig = advancedVSeed.config[chartType];
|
5559
|
+
const { tooltip = {
|
5560
|
+
enable: true
|
5561
|
+
} } = baseConfig;
|
5562
|
+
const { enable } = tooltip;
|
5563
|
+
const { foldInfoList } = datasetReshapeInfo[0];
|
5564
|
+
result.tooltip = {
|
5565
|
+
visible: enable,
|
5566
|
+
mark: {
|
5567
|
+
title: {
|
5568
|
+
visible: false
|
5569
|
+
},
|
5570
|
+
content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList)
|
5571
|
+
},
|
5572
|
+
dimension: {
|
5573
|
+
visible: false
|
5574
|
+
}
|
5575
|
+
};
|
5576
|
+
return result;
|
5577
|
+
};
|
5578
|
+
const tooltipScatter_createMarkContent = (tooltip, dimensions, measures, locale, foldInfoList)=>{
|
5579
|
+
const dims = dimensions.filter((item)=>tooltip.includes(item.id));
|
5580
|
+
const meas = measures.filter((item)=>tooltip.includes(item.id));
|
5581
|
+
const dimContent = dims.map((item)=>({
|
5582
|
+
visible: true,
|
5583
|
+
hasShape: true,
|
5584
|
+
shapeType: 'rectRound',
|
5585
|
+
key: (v)=>{
|
5586
|
+
const datum = v;
|
5587
|
+
if (item.alias || item.id) return item.alias || item.id;
|
5588
|
+
return datum && datum[item.id];
|
5589
|
+
},
|
5590
|
+
value: (v)=>{
|
5591
|
+
const datum = v;
|
5592
|
+
return datum && datum[item.id];
|
5593
|
+
}
|
5594
|
+
}));
|
5595
|
+
const meaContent = meas.map((item)=>({
|
5596
|
+
visible: true,
|
5597
|
+
hasShape: true,
|
5598
|
+
shapeType: 'rectRound',
|
5599
|
+
key: item.alias || item.id,
|
5600
|
+
value: (v)=>{
|
5601
|
+
const datum = v;
|
5602
|
+
if (!datum) return '';
|
5603
|
+
const id = item.id;
|
5604
|
+
if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
|
5605
|
+
const originalData = datum[ORIGINAL_DATA];
|
5606
|
+
const value = originalData[id];
|
5607
|
+
const measure = findMeasureById(measures, id);
|
5608
|
+
if (!measure) return String(value);
|
5609
|
+
const { format = {}, autoFormat = true } = measure;
|
5610
|
+
if (!external_remeda_isEmpty(format)) {
|
5611
|
+
const formatter = createFormatter(format);
|
5612
|
+
return formatter(value);
|
5613
|
+
}
|
5614
|
+
if (autoFormat) return autoFormatter(value, locale);
|
5615
|
+
return String(value);
|
5616
|
+
}
|
5617
|
+
}));
|
5618
|
+
const foldMeaContent = foldInfoList.map((foldInfo)=>({
|
5619
|
+
visible: true,
|
5620
|
+
hasShape: true,
|
5621
|
+
shapeType: 'rectRound',
|
5622
|
+
key: (v)=>{
|
5623
|
+
const { measureId, foldMap } = foldInfo;
|
5624
|
+
const datum = v;
|
5625
|
+
const id = datum[measureId];
|
5626
|
+
return foldMap[id] || id;
|
5627
|
+
},
|
5628
|
+
value: (v)=>{
|
5629
|
+
const { measureId, measureValue } = foldInfo;
|
5630
|
+
const datum = v;
|
5631
|
+
if (!datum) return '';
|
5632
|
+
const value = datum[measureValue];
|
5633
|
+
const id = datum[measureId];
|
5634
|
+
const measure = findMeasureById(measures, id);
|
5635
|
+
if (!measure) return String(value);
|
5636
|
+
const { format = {}, autoFormat = true } = measure;
|
5637
|
+
if (!external_remeda_isEmpty(format)) {
|
5638
|
+
const formatter = createFormatter(format);
|
5639
|
+
return formatter(value);
|
5640
|
+
}
|
5641
|
+
if (autoFormat) return autoFormatter(value, locale);
|
5642
|
+
return String(value);
|
5643
|
+
}
|
5644
|
+
}));
|
5645
|
+
return [
|
5646
|
+
...dimContent,
|
5647
|
+
...foldMeaContent,
|
5648
|
+
...meaContent
|
5649
|
+
];
|
5650
|
+
};
|
5345
5651
|
const horizontalCrosshairLine = (spec, context)=>{
|
5346
5652
|
const result = {
|
5347
5653
|
...spec
|
@@ -5395,7 +5701,7 @@ const scatter = [
|
|
5395
5701
|
xLinear,
|
5396
5702
|
yLinear,
|
5397
5703
|
label_label,
|
5398
|
-
|
5704
|
+
tooltipScatter,
|
5399
5705
|
colorAdapter(discreteLegend, colorLegend),
|
5400
5706
|
verticalCrosshairLine,
|
5401
5707
|
horizontalCrosshairLine,
|
@@ -5420,7 +5726,7 @@ const pivotScatter = [
|
|
5420
5726
|
xLinear,
|
5421
5727
|
yLinear,
|
5422
5728
|
label_label,
|
5423
|
-
|
5729
|
+
tooltipScatter,
|
5424
5730
|
verticalCrosshairLine,
|
5425
5731
|
horizontalCrosshairLine,
|
5426
5732
|
colorPointStyleFill(pointStyle_pointStyle),
|
@@ -5441,6 +5747,17 @@ const registerScatter = ()=>{
|
|
5441
5747
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
5442
5748
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
5443
5749
|
};
|
5750
|
+
const defaultEncodingForDualAxis = (advancedVSeed)=>{
|
5751
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
5752
|
+
const measures = findAllMeasures(vseedMeasures);
|
5753
|
+
const encoding = {};
|
5754
|
+
dualAxis_generateDefaultDimensionEncoding(dimensions, encoding);
|
5755
|
+
dualAxis_generateDefaultMeasureEncoding(measures, encoding);
|
5756
|
+
return {
|
5757
|
+
...advancedVSeed,
|
5758
|
+
encoding
|
5759
|
+
};
|
5760
|
+
};
|
5444
5761
|
const encodingForDualAxis = (advancedVSeed)=>{
|
5445
5762
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
5446
5763
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -5462,35 +5779,39 @@ const dualAxis_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
5462
5779
|
encoding.x = uniqueDimIds.slice(0, 1);
|
5463
5780
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
5464
5781
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
5465
|
-
encoding.tooltip = uniqueDimIds;
|
5782
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
5466
5783
|
encoding.label = [];
|
5467
5784
|
encoding.row = [];
|
5468
5785
|
encoding.column = [];
|
5469
5786
|
};
|
5470
5787
|
const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
|
5471
5788
|
encoding.x = unique(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
5472
|
-
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5473
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5474
5789
|
if (0 === encoding.x.length) encoding.x = [
|
5475
5790
|
dimensions[0].id
|
5476
5791
|
];
|
5792
|
+
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5477
5793
|
if (0 === encoding.color.length) encoding.color = [
|
5478
5794
|
MeasureName
|
5479
5795
|
];
|
5796
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5480
5797
|
if (0 === encoding.detail.length) encoding.detail = [
|
5481
5798
|
MeasureName
|
5482
5799
|
];
|
5800
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
5801
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
5483
5802
|
};
|
5484
5803
|
const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
5485
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
5486
5804
|
encoding.y = unique(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5487
5805
|
};
|
5488
5806
|
const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
|
5489
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
5490
5807
|
encoding.y = unique(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5491
5808
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5492
5809
|
if (color.length > 0) encoding.color = color;
|
5493
|
-
|
5810
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
5811
|
+
encoding.tooltip = unique([
|
5812
|
+
...encoding.tooltip || [],
|
5813
|
+
...tooltip
|
5814
|
+
]);
|
5494
5815
|
};
|
5495
5816
|
const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
|
5496
5817
|
const { vseed } = context;
|
@@ -5747,8 +6068,13 @@ const dualAxisAdvancedPipeline = [
|
|
5747
6068
|
default_defaultMeasures_defaultMeasures,
|
5748
6069
|
defaultDimensions_defaultDimensions,
|
5749
6070
|
defaultMeasureName_defaultMeasureName,
|
5750
|
-
|
5751
|
-
|
6071
|
+
encodingAdapter([
|
6072
|
+
defaultEncodingForDualAxis,
|
6073
|
+
buildMeasuresForDualAxis
|
6074
|
+
], [
|
6075
|
+
encodingForDualAxis,
|
6076
|
+
buildMeasuresForDualAxis
|
6077
|
+
]),
|
5752
6078
|
pivotAdapter([
|
5753
6079
|
reshapeWithDualEncoding
|
5754
6080
|
], [
|
@@ -5840,7 +6166,7 @@ const initDualAxisSecondary = (spec, context)=>{
|
|
5840
6166
|
const dualChartTypePrimary = (spec, context)=>{
|
5841
6167
|
const result = {
|
5842
6168
|
...spec,
|
5843
|
-
zIndex:
|
6169
|
+
zIndex: 1001
|
5844
6170
|
};
|
5845
6171
|
const { advancedVSeed, vseed } = context;
|
5846
6172
|
const { chartType } = vseed;
|
@@ -5860,7 +6186,7 @@ const dualChartTypePrimary = (spec, context)=>{
|
|
5860
6186
|
break;
|
5861
6187
|
case 'column':
|
5862
6188
|
result.type = 'bar';
|
5863
|
-
result.zIndex =
|
6189
|
+
result.zIndex = 1000;
|
5864
6190
|
break;
|
5865
6191
|
case 'columnParallel':
|
5866
6192
|
{
|
@@ -5871,7 +6197,7 @@ const dualChartTypePrimary = (spec, context)=>{
|
|
5871
6197
|
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
5872
6198
|
];
|
5873
6199
|
columnSpec.type = 'bar';
|
5874
|
-
result.zIndex =
|
6200
|
+
result.zIndex = 1000;
|
5875
6201
|
break;
|
5876
6202
|
}
|
5877
6203
|
case 'columnPercent':
|
@@ -5896,7 +6222,7 @@ const dualChartTypePrimary = (spec, context)=>{
|
|
5896
6222
|
const dualChartTypeSecondary = (spec, context)=>{
|
5897
6223
|
const result = {
|
5898
6224
|
...spec,
|
5899
|
-
zIndex:
|
6225
|
+
zIndex: 1001
|
5900
6226
|
};
|
5901
6227
|
const { advancedVSeed, vseed } = context;
|
5902
6228
|
const { chartType } = vseed;
|
@@ -5916,7 +6242,7 @@ const dualChartTypeSecondary = (spec, context)=>{
|
|
5916
6242
|
break;
|
5917
6243
|
case 'column':
|
5918
6244
|
result.type = 'bar';
|
5919
|
-
result.zIndex =
|
6245
|
+
result.zIndex = 1000;
|
5920
6246
|
break;
|
5921
6247
|
case 'columnParallel':
|
5922
6248
|
{
|
@@ -5927,7 +6253,7 @@ const dualChartTypeSecondary = (spec, context)=>{
|
|
5927
6253
|
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
5928
6254
|
];
|
5929
6255
|
columnSpec.type = 'bar';
|
5930
|
-
result.zIndex =
|
6256
|
+
result.zIndex = 1000;
|
5931
6257
|
break;
|
5932
6258
|
}
|
5933
6259
|
case 'columnPercent':
|
@@ -6105,7 +6431,7 @@ const tooltipPrimary = (spec, context)=>{
|
|
6105
6431
|
...spec
|
6106
6432
|
};
|
6107
6433
|
const { advancedVSeed } = context;
|
6108
|
-
const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
|
6434
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
6109
6435
|
const baseConfig = advancedVSeed.config[chartType];
|
6110
6436
|
const { tooltip = {
|
6111
6437
|
enable: true
|
@@ -6113,68 +6439,19 @@ const tooltipPrimary = (spec, context)=>{
|
|
6113
6439
|
const { enable } = tooltip;
|
6114
6440
|
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
6115
6441
|
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
6116
|
-
const { measureId, measureValue, measureName } = foldInfoList[0];
|
6117
|
-
const { encodingColor: colorName } = unfoldInfo;
|
6118
6442
|
result.tooltip = {
|
6119
6443
|
visible: enable,
|
6120
6444
|
mark: {
|
6121
6445
|
title: {
|
6122
|
-
visible:
|
6446
|
+
visible: false
|
6123
6447
|
},
|
6124
|
-
content: [
|
6125
|
-
...dimensions.map((item)=>({
|
6126
|
-
visible: true,
|
6127
|
-
hasShape: true,
|
6128
|
-
shapeType: 'rectRound',
|
6129
|
-
key: (datum)=>{
|
6130
|
-
if (item.alias || item.id) return item.alias || item.id;
|
6131
|
-
return datum && datum[item.id];
|
6132
|
-
},
|
6133
|
-
value: (datum)=>datum && datum[item.id]
|
6134
|
-
})),
|
6135
|
-
{
|
6136
|
-
visible: true,
|
6137
|
-
hasShape: true,
|
6138
|
-
key: (datum)=>datum && datum[measureName || colorName] || '',
|
6139
|
-
value: (datum)=>{
|
6140
|
-
if (!datum) return '';
|
6141
|
-
const value = datum[measureValue];
|
6142
|
-
const id = datum[measureId];
|
6143
|
-
const measure = findMeasureById(measures, id);
|
6144
|
-
if (!measure) return String(value);
|
6145
|
-
const { format = {}, autoFormat = true } = measure;
|
6146
|
-
if (!external_remeda_isEmpty(format)) {
|
6147
|
-
const formatter = createFormatter(format);
|
6148
|
-
return formatter(value);
|
6149
|
-
}
|
6150
|
-
if (autoFormat) return autoFormatter(value, locale);
|
6151
|
-
return String(value);
|
6152
|
-
}
|
6153
|
-
}
|
6154
|
-
]
|
6448
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList[0], unfoldInfo)
|
6155
6449
|
},
|
6156
6450
|
dimension: {
|
6157
|
-
|
6158
|
-
|
6159
|
-
|
6160
|
-
|
6161
|
-
value: (datum)=>{
|
6162
|
-
if (!datum) return '';
|
6163
|
-
const value = datum[measureValue];
|
6164
|
-
const id = datum[measureId];
|
6165
|
-
const measure = findMeasureById(measures, id);
|
6166
|
-
if (!measure) return String(value);
|
6167
|
-
const { format = {}, autoFormat = true } = measure;
|
6168
|
-
if (!external_remeda_isEmpty(format)) {
|
6169
|
-
const formatter = createFormatter(format);
|
6170
|
-
return formatter(value);
|
6171
|
-
}
|
6172
|
-
if (autoFormat) return autoFormatter(value, locale);
|
6173
|
-
return String(value);
|
6174
|
-
},
|
6175
|
-
shapeType: 'rectRound'
|
6176
|
-
}
|
6177
|
-
]
|
6451
|
+
title: {
|
6452
|
+
visible: true
|
6453
|
+
},
|
6454
|
+
content: createDimensionContent(measures, foldInfoList[0], unfoldInfo, locale)
|
6178
6455
|
}
|
6179
6456
|
};
|
6180
6457
|
return result;
|
@@ -6184,7 +6461,7 @@ const tooltipSecondary = (spec, context)=>{
|
|
6184
6461
|
...spec
|
6185
6462
|
};
|
6186
6463
|
const { advancedVSeed } = context;
|
6187
|
-
const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
|
6464
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
6188
6465
|
const baseConfig = advancedVSeed.config[chartType];
|
6189
6466
|
const { tooltip = {
|
6190
6467
|
enable: true
|
@@ -6193,68 +6470,19 @@ const tooltipSecondary = (spec, context)=>{
|
|
6193
6470
|
if (isNullish(datasetReshapeInfo[0].foldInfoList?.[1])) return result;
|
6194
6471
|
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
6195
6472
|
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
6196
|
-
const { measureId, measureValue, measureName } = foldInfoList[1];
|
6197
|
-
const { encodingColorId } = unfoldInfo;
|
6198
6473
|
result.tooltip = {
|
6199
6474
|
visible: enable,
|
6200
6475
|
mark: {
|
6201
6476
|
title: {
|
6202
|
-
visible:
|
6477
|
+
visible: false
|
6203
6478
|
},
|
6204
|
-
content: [
|
6205
|
-
...dimensions.map((item)=>({
|
6206
|
-
visible: true,
|
6207
|
-
hasShape: true,
|
6208
|
-
shapeType: 'rectRound',
|
6209
|
-
key: (datum)=>{
|
6210
|
-
if (item.alias || item.id) return item.alias || item.id;
|
6211
|
-
return datum && datum[item.id];
|
6212
|
-
},
|
6213
|
-
value: (datum)=>datum && datum[item.id]
|
6214
|
-
})),
|
6215
|
-
{
|
6216
|
-
visible: true,
|
6217
|
-
hasShape: true,
|
6218
|
-
key: (datum)=>datum && datum[measureName || encodingColorId] || '',
|
6219
|
-
value: (datum)=>{
|
6220
|
-
if (!datum) return '';
|
6221
|
-
const value = datum[measureValue];
|
6222
|
-
const id = datum[measureId];
|
6223
|
-
const measure = findMeasureById(measures, id);
|
6224
|
-
if (!measure) return String(value);
|
6225
|
-
const { format = {}, autoFormat = true } = measure;
|
6226
|
-
if (!external_remeda_isEmpty(format)) {
|
6227
|
-
const formatter = createFormatter(format);
|
6228
|
-
return formatter(value);
|
6229
|
-
}
|
6230
|
-
if (autoFormat) return autoFormatter(value, locale);
|
6231
|
-
return String(value);
|
6232
|
-
}
|
6233
|
-
}
|
6234
|
-
]
|
6479
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList[1], unfoldInfo)
|
6235
6480
|
},
|
6236
6481
|
dimension: {
|
6237
|
-
|
6238
|
-
|
6239
|
-
|
6240
|
-
|
6241
|
-
value: (datum)=>{
|
6242
|
-
if (!datum) return '';
|
6243
|
-
const value = datum[measureValue];
|
6244
|
-
const id = datum[measureId];
|
6245
|
-
const measure = findMeasureById(measures, id);
|
6246
|
-
if (!measure) return String(value);
|
6247
|
-
const { format = {}, autoFormat = true } = measure;
|
6248
|
-
if (!external_remeda_isEmpty(format)) {
|
6249
|
-
const formatter = createFormatter(format);
|
6250
|
-
return formatter(value);
|
6251
|
-
}
|
6252
|
-
if (autoFormat) return autoFormatter(value, locale);
|
6253
|
-
return String(value);
|
6254
|
-
},
|
6255
|
-
shapeType: 'rectRound'
|
6256
|
-
}
|
6257
|
-
]
|
6482
|
+
title: {
|
6483
|
+
visible: true
|
6484
|
+
},
|
6485
|
+
content: createDimensionContent(measures, foldInfoList[1], unfoldInfo, locale)
|
6258
6486
|
}
|
6259
6487
|
};
|
6260
6488
|
return result;
|
@@ -6271,7 +6499,8 @@ const yLinearPrimary = (spec, context)=>{
|
|
6271
6499
|
const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis;
|
6272
6500
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
6273
6501
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
6274
|
-
if (foldInfoList?.[0]
|
6502
|
+
if (isNullish(foldInfoList?.[0])) return result;
|
6503
|
+
const isEmptySecondary = external_remeda_isEmpty(foldInfoList?.[0].foldMap);
|
6275
6504
|
const id = `${reshapeInfoId}-primary-axis`;
|
6276
6505
|
const seriesIds = [
|
6277
6506
|
`${reshapeInfoId}-primary-series`,
|
@@ -6294,7 +6523,7 @@ const yLinearPrimary = (spec, context)=>{
|
|
6294
6523
|
}
|
6295
6524
|
const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
|
6296
6525
|
const linearAxis = {
|
6297
|
-
visible,
|
6526
|
+
visible: isEmptySecondary ? false : visible,
|
6298
6527
|
id,
|
6299
6528
|
seriesId,
|
6300
6529
|
type: log ? 'log' : 'linear',
|
@@ -6347,7 +6576,7 @@ const yLinearPrimary = (spec, context)=>{
|
|
6347
6576
|
}
|
6348
6577
|
},
|
6349
6578
|
innerOffset: {
|
6350
|
-
top:
|
6579
|
+
top: 7
|
6351
6580
|
}
|
6352
6581
|
};
|
6353
6582
|
result.axes = [
|
@@ -6369,6 +6598,8 @@ const yLinearSecondary = (spec, context)=>{
|
|
6369
6598
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
6370
6599
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
6371
6600
|
if (isNullish(foldInfoList?.[1])) return result;
|
6601
|
+
const isEmptySecondary = external_remeda_isEmpty(foldInfoList?.[1].foldMap);
|
6602
|
+
const onlySecondary = external_remeda_isEmpty(foldInfoList?.[0].foldMap) && !isEmptySecondary;
|
6372
6603
|
const sync = {
|
6373
6604
|
axisId: `${reshapeInfoId}-primary-axis`,
|
6374
6605
|
zeroAlign: true
|
@@ -6396,7 +6627,7 @@ const yLinearSecondary = (spec, context)=>{
|
|
6396
6627
|
}
|
6397
6628
|
const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
|
6398
6629
|
const linearAxis = {
|
6399
|
-
visible,
|
6630
|
+
visible: isEmptySecondary ? false : visible,
|
6400
6631
|
id,
|
6401
6632
|
seriesId,
|
6402
6633
|
sync,
|
@@ -6436,7 +6667,7 @@ const yLinearSecondary = (spec, context)=>{
|
|
6436
6667
|
}
|
6437
6668
|
},
|
6438
6669
|
grid: {
|
6439
|
-
visible: grid?.visible,
|
6670
|
+
visible: onlySecondary ? true : grid?.visible,
|
6440
6671
|
style: {
|
6441
6672
|
lineWidth: grid?.gridWidth,
|
6442
6673
|
stroke: grid?.gridColor
|
@@ -6450,7 +6681,7 @@ const yLinearSecondary = (spec, context)=>{
|
|
6450
6681
|
}
|
6451
6682
|
},
|
6452
6683
|
innerOffset: {
|
6453
|
-
top:
|
6684
|
+
top: 7
|
6454
6685
|
}
|
6455
6686
|
};
|
6456
6687
|
result.axes = [
|
@@ -6581,6 +6812,17 @@ const registerDualAxis = ()=>{
|
|
6581
6812
|
Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
|
6582
6813
|
Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
|
6583
6814
|
};
|
6815
|
+
const defaultEncodingForPie = (advancedVSeed)=>{
|
6816
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
6817
|
+
const measures = findAllMeasures(vseedMeasures);
|
6818
|
+
const encoding = {};
|
6819
|
+
pie_generateDefaultDimensionEncoding(dimensions, encoding);
|
6820
|
+
pie_generateDefaultMeasureEncoding(measures, encoding);
|
6821
|
+
return {
|
6822
|
+
...advancedVSeed,
|
6823
|
+
encoding
|
6824
|
+
};
|
6825
|
+
};
|
6584
6826
|
const encodingForPie = (advancedVSeed)=>{
|
6585
6827
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
6586
6828
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -6600,38 +6842,48 @@ const pie_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
6600
6842
|
const uniqueDimIds = unique(dimensions.map((d)=>d.id));
|
6601
6843
|
encoding.color = uniqueDimIds.slice(0);
|
6602
6844
|
encoding.detail = uniqueDimIds.slice(0);
|
6603
|
-
encoding.tooltip = uniqueDimIds;
|
6845
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
6604
6846
|
encoding.label = [];
|
6605
6847
|
encoding.row = [];
|
6606
6848
|
encoding.column = [];
|
6607
6849
|
};
|
6608
6850
|
const pie_generateDimensionEncoding = (dimensions, encoding)=>{
|
6609
6851
|
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
6610
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
6611
6852
|
if (0 === encoding.color.length) encoding.color = [
|
6612
6853
|
MeasureName
|
6613
6854
|
];
|
6855
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
6614
6856
|
if (0 === encoding.detail.length) encoding.detail = [
|
6615
6857
|
MeasureName
|
6616
6858
|
];
|
6859
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
6860
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
6617
6861
|
};
|
6618
6862
|
const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
6619
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
6620
6863
|
encoding.angle = unique(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
6621
6864
|
};
|
6622
6865
|
const pie_generateMeasureEncoding = (measures, encoding)=>{
|
6623
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
6624
6866
|
encoding.angle = unique(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
6625
6867
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
6626
6868
|
if (color.length > 0) encoding.color = color;
|
6869
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
6870
|
+
encoding.tooltip = unique([
|
6871
|
+
...encoding.tooltip || [],
|
6872
|
+
...tooltip
|
6873
|
+
]);
|
6627
6874
|
};
|
6628
6875
|
const pieAdvancedPipeline = [
|
6629
6876
|
initAdvancedVSeed_initAdvancedVSeed,
|
6630
6877
|
default_defaultMeasures_defaultMeasures,
|
6631
6878
|
defaultDimensions_defaultDimensions,
|
6632
6879
|
defaultMeasureName_defaultMeasureName,
|
6633
|
-
|
6634
|
-
|
6880
|
+
encodingAdapter([
|
6881
|
+
defaultEncodingForPie,
|
6882
|
+
buildMeasures
|
6883
|
+
], [
|
6884
|
+
encodingForPie,
|
6885
|
+
buildMeasures
|
6886
|
+
]),
|
6635
6887
|
pivotAdapter([
|
6636
6888
|
reshapeWithEncoding
|
6637
6889
|
], [
|
@@ -6750,8 +7002,13 @@ const donutAdvancedPipeline = [
|
|
6750
7002
|
default_defaultMeasures_defaultMeasures,
|
6751
7003
|
defaultDimensions_defaultDimensions,
|
6752
7004
|
defaultMeasureName_defaultMeasureName,
|
6753
|
-
|
6754
|
-
|
7005
|
+
encodingAdapter([
|
7006
|
+
defaultEncodingForPie,
|
7007
|
+
buildMeasures
|
7008
|
+
], [
|
7009
|
+
encodingForPie,
|
7010
|
+
buildMeasures
|
7011
|
+
]),
|
6755
7012
|
pivotAdapter([
|
6756
7013
|
reshapeWithEncoding
|
6757
7014
|
], [
|
@@ -6827,6 +7084,17 @@ const registerDonut = ()=>{
|
|
6827
7084
|
Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
|
6828
7085
|
Builder._specPipelineMap.donut = donutSpecPipeline;
|
6829
7086
|
};
|
7087
|
+
const defaultEncodingForRose = (advancedVSeed)=>{
|
7088
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7089
|
+
const measures = findAllMeasures(vseedMeasures);
|
7090
|
+
const encoding = {};
|
7091
|
+
rose_generateDefaultDimensionEncoding(dimensions, encoding);
|
7092
|
+
rose_generateDefaultMeasureEncoding(measures, encoding);
|
7093
|
+
return {
|
7094
|
+
...advancedVSeed,
|
7095
|
+
encoding
|
7096
|
+
};
|
7097
|
+
};
|
6830
7098
|
const encodingForRose = (advancedVSeed)=>{
|
6831
7099
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
6832
7100
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -6848,42 +7116,52 @@ const rose_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
6848
7116
|
encoding.angle = uniqueDimIds.slice(0, 1);
|
6849
7117
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
6850
7118
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
6851
|
-
encoding.tooltip = uniqueDimIds;
|
7119
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
6852
7120
|
encoding.label = [];
|
6853
7121
|
encoding.row = [];
|
6854
7122
|
encoding.column = [];
|
6855
7123
|
};
|
6856
7124
|
const rose_generateDimensionEncoding = (dimensions, encoding)=>{
|
6857
7125
|
encoding.angle = unique(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
|
6858
|
-
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
6859
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
6860
7126
|
if (0 === encoding.angle.length) encoding.angle = [
|
6861
7127
|
dimensions[0].id
|
6862
7128
|
];
|
7129
|
+
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
6863
7130
|
if (0 === encoding.color.length) encoding.color = [
|
6864
7131
|
MeasureName
|
6865
7132
|
];
|
7133
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
6866
7134
|
if (0 === encoding.detail.length) encoding.detail = [
|
6867
7135
|
MeasureName
|
6868
7136
|
];
|
7137
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
7138
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
6869
7139
|
};
|
6870
7140
|
const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
6871
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
6872
7141
|
encoding.radius = unique(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
6873
7142
|
};
|
6874
7143
|
const rose_generateMeasureEncoding = (measures, encoding)=>{
|
6875
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
6876
7144
|
encoding.radius = unique(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
6877
7145
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
6878
7146
|
if (color.length > 0) encoding.color = color;
|
7147
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
7148
|
+
encoding.tooltip = unique([
|
7149
|
+
...encoding.tooltip || [],
|
7150
|
+
...tooltip
|
7151
|
+
]);
|
6879
7152
|
};
|
6880
7153
|
const roseAdvancedPipeline = [
|
6881
7154
|
initAdvancedVSeed_initAdvancedVSeed,
|
6882
7155
|
default_defaultMeasures_defaultMeasures,
|
6883
7156
|
defaultDimensions_defaultDimensions,
|
6884
7157
|
defaultMeasureName_defaultMeasureName,
|
6885
|
-
|
6886
|
-
|
7158
|
+
encodingAdapter([
|
7159
|
+
defaultEncodingForRose,
|
7160
|
+
buildMeasures
|
7161
|
+
], [
|
7162
|
+
encodingForRose,
|
7163
|
+
buildMeasures
|
7164
|
+
]),
|
6887
7165
|
pivotAdapter([
|
6888
7166
|
reshapeWithEncoding
|
6889
7167
|
], [
|
@@ -7082,8 +7360,13 @@ const roseParallelAdvancedPipeline = [
|
|
7082
7360
|
default_defaultMeasures_defaultMeasures,
|
7083
7361
|
defaultDimensions_defaultDimensions,
|
7084
7362
|
defaultMeasureName_defaultMeasureName,
|
7085
|
-
|
7086
|
-
|
7363
|
+
encodingAdapter([
|
7364
|
+
defaultEncodingForRose,
|
7365
|
+
buildMeasures
|
7366
|
+
], [
|
7367
|
+
encodingForRose,
|
7368
|
+
buildMeasures
|
7369
|
+
]),
|
7087
7370
|
pivotAdapter([
|
7088
7371
|
reshapeWithEncoding
|
7089
7372
|
], [
|
@@ -7189,6 +7472,17 @@ const registerRoseParallel = ()=>{
|
|
7189
7472
|
Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
|
7190
7473
|
Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
|
7191
7474
|
};
|
7475
|
+
const defaultEncodingForRadar = (advancedVSeed)=>{
|
7476
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7477
|
+
const measures = findAllMeasures(vseedMeasures);
|
7478
|
+
const encoding = {};
|
7479
|
+
radar_generateDefaultDimensionEncoding(dimensions, encoding);
|
7480
|
+
radar_generateDefaultMeasureEncoding(measures, encoding);
|
7481
|
+
return {
|
7482
|
+
...advancedVSeed,
|
7483
|
+
encoding
|
7484
|
+
};
|
7485
|
+
};
|
7192
7486
|
const encodingForRadar = (advancedVSeed)=>{
|
7193
7487
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7194
7488
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -7208,7 +7502,7 @@ const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
7208
7502
|
const uniqueDimIds = unique(dimensions.map((d)=>d.id));
|
7209
7503
|
encoding.angle = uniqueDimIds.slice(0, 1);
|
7210
7504
|
encoding.color = uniqueDimIds.slice(1);
|
7211
|
-
encoding.tooltip = uniqueDimIds;
|
7505
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
7212
7506
|
encoding.detail = [];
|
7213
7507
|
encoding.label = [];
|
7214
7508
|
encoding.row = [];
|
@@ -7216,35 +7510,45 @@ const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
7216
7510
|
};
|
7217
7511
|
const radar_generateDimensionEncoding = (dimensions, encoding)=>{
|
7218
7512
|
encoding.angle = unique(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
|
7219
|
-
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7220
|
-
encoding.detail = [];
|
7221
7513
|
if (0 === encoding.angle.length) encoding.angle = [
|
7222
7514
|
dimensions[0].id
|
7223
7515
|
];
|
7516
|
+
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7224
7517
|
if (0 === encoding.color.length) encoding.color = [
|
7225
7518
|
MeasureName
|
7226
7519
|
];
|
7520
|
+
encoding.detail = [];
|
7227
7521
|
if (0 === encoding.detail.length) encoding.detail = [
|
7228
7522
|
MeasureName
|
7229
7523
|
];
|
7524
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
7525
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
7230
7526
|
};
|
7231
7527
|
const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7232
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
7233
7528
|
encoding.radius = unique(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7234
7529
|
};
|
7235
7530
|
const radar_generateMeasureEncoding = (measures, encoding)=>{
|
7236
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
7237
7531
|
encoding.radius = unique(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7238
7532
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7239
7533
|
if (color.length > 0) encoding.color = color;
|
7534
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
7535
|
+
encoding.tooltip = unique([
|
7536
|
+
...encoding.tooltip || [],
|
7537
|
+
...tooltip
|
7538
|
+
]);
|
7240
7539
|
};
|
7241
7540
|
const radarAdvancedPipeline = [
|
7242
7541
|
initAdvancedVSeed_initAdvancedVSeed,
|
7243
7542
|
default_defaultMeasures_defaultMeasures,
|
7244
7543
|
defaultDimensions_defaultDimensions,
|
7245
7544
|
defaultMeasureName_defaultMeasureName,
|
7246
|
-
|
7247
|
-
|
7545
|
+
encodingAdapter([
|
7546
|
+
defaultEncodingForRadar,
|
7547
|
+
buildMeasures
|
7548
|
+
], [
|
7549
|
+
encodingForRadar,
|
7550
|
+
buildMeasures
|
7551
|
+
]),
|
7248
7552
|
pivotAdapter([
|
7249
7553
|
reshapeWithEncoding
|
7250
7554
|
], [
|
@@ -7378,6 +7682,17 @@ const registerRadar = ()=>{
|
|
7378
7682
|
Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
|
7379
7683
|
Builder._specPipelineMap.radar = radarSpecPipeline;
|
7380
7684
|
};
|
7685
|
+
const defaultEncodingForFunnel = (advancedVSeed)=>{
|
7686
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7687
|
+
const measures = findAllMeasures(vseedMeasures);
|
7688
|
+
const encoding = {};
|
7689
|
+
funnel_generateDefaultDimensionEncoding(dimensions, encoding);
|
7690
|
+
funnel_generateDefaultMeasureEncoding(measures, encoding);
|
7691
|
+
return {
|
7692
|
+
...advancedVSeed,
|
7693
|
+
encoding
|
7694
|
+
};
|
7695
|
+
};
|
7381
7696
|
const encodingForFunnel = (advancedVSeed)=>{
|
7382
7697
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7383
7698
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -7397,40 +7712,50 @@ const funnel_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
7397
7712
|
const uniqueDimIds = unique(dimensions.map((d)=>d.id));
|
7398
7713
|
encoding.color = uniqueDimIds.slice(0);
|
7399
7714
|
encoding.detail = uniqueDimIds.slice(0);
|
7400
|
-
encoding.tooltip = uniqueDimIds;
|
7715
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
7401
7716
|
encoding.label = [];
|
7402
7717
|
encoding.row = [];
|
7403
7718
|
encoding.column = [];
|
7404
7719
|
};
|
7405
7720
|
const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
|
7406
7721
|
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7407
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7408
7722
|
if (0 === encoding.color.length) encoding.color = [
|
7409
7723
|
MeasureName
|
7410
7724
|
];
|
7725
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7411
7726
|
if (0 === encoding.detail.length) encoding.detail = [
|
7412
7727
|
MeasureName
|
7413
7728
|
];
|
7729
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
7730
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
7414
7731
|
};
|
7415
7732
|
const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7416
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
7417
7733
|
encoding.size = unique(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
7418
7734
|
};
|
7419
7735
|
const funnel_generateMeasureEncoding = (measures, encoding)=>{
|
7420
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
7421
7736
|
encoding.size = unique(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
7422
7737
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7423
7738
|
if (color.length > 0) encoding.color = [
|
7424
7739
|
color[0]
|
7425
7740
|
];
|
7741
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
7742
|
+
encoding.tooltip = unique([
|
7743
|
+
...encoding.tooltip || [],
|
7744
|
+
...tooltip
|
7745
|
+
]);
|
7426
7746
|
};
|
7427
7747
|
const funnelAdvancedPipeline = [
|
7428
7748
|
initAdvancedVSeed_initAdvancedVSeed,
|
7429
7749
|
default_defaultMeasures_defaultMeasures,
|
7430
7750
|
defaultDimensions_defaultDimensions,
|
7431
7751
|
defaultMeasureName_defaultMeasureName,
|
7432
|
-
|
7433
|
-
|
7752
|
+
encodingAdapter([
|
7753
|
+
defaultEncodingForFunnel,
|
7754
|
+
buildMeasures
|
7755
|
+
], [
|
7756
|
+
encodingForFunnel,
|
7757
|
+
buildMeasures
|
7758
|
+
]),
|
7434
7759
|
pivotAdapter([
|
7435
7760
|
reshapeWithEncoding
|
7436
7761
|
], [
|
@@ -7543,6 +7868,17 @@ const registerFunnel = ()=>{
|
|
7543
7868
|
Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
|
7544
7869
|
Builder._specPipelineMap.funnel = funnelSpecPipeline;
|
7545
7870
|
};
|
7871
|
+
const defaultEncodingForHeatmap = (advancedVSeed)=>{
|
7872
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7873
|
+
const measures = findAllMeasures(vseedMeasures);
|
7874
|
+
const encoding = {};
|
7875
|
+
heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
|
7876
|
+
heatmap_generateDefaultMeasureEncoding(measures, encoding);
|
7877
|
+
return {
|
7878
|
+
...advancedVSeed,
|
7879
|
+
encoding
|
7880
|
+
};
|
7881
|
+
};
|
7546
7882
|
const encodingForHeatmap = (advancedVSeed)=>{
|
7547
7883
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7548
7884
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -7565,50 +7901,59 @@ const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
7565
7901
|
encoding.y = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7566
7902
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7567
7903
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7568
|
-
encoding.tooltip = uniqueDimIds;
|
7904
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
7569
7905
|
encoding.label = [];
|
7570
7906
|
encoding.row = [];
|
7571
7907
|
encoding.column = [];
|
7572
7908
|
};
|
7573
7909
|
const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
|
7574
7910
|
encoding.x = unique(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
7575
|
-
encoding.y = unique(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
7576
|
-
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7577
|
-
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7578
7911
|
if (0 === encoding.x.length) encoding.x = [
|
7579
7912
|
dimensions[0].id
|
7580
7913
|
];
|
7914
|
+
encoding.y = unique(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
7581
7915
|
if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
|
7582
7916
|
else encoding.y = dimensions.slice(0).map((item)=>item.id);
|
7917
|
+
encoding.color = unique(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7583
7918
|
if (0 === encoding.color.length) encoding.color = [
|
7584
7919
|
MeasureName
|
7585
7920
|
];
|
7921
|
+
encoding.detail = unique(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7586
7922
|
if (0 === encoding.detail.length) encoding.detail = [
|
7587
7923
|
MeasureName
|
7588
7924
|
];
|
7925
|
+
encoding.tooltip = unique(dimensions.map((item)=>item.id));
|
7926
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
7589
7927
|
};
|
7590
7928
|
const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7591
|
-
encoding.tooltip = unique(measures.map((item)=>item.id));
|
7592
7929
|
const colorDims = unique(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
|
7593
7930
|
if (colorDims.length > 0) encoding.color = [
|
7594
7931
|
colorDims[0]
|
7595
7932
|
];
|
7596
7933
|
};
|
7597
7934
|
const heatmap_generateMeasureEncoding = (measures, encoding)=>{
|
7598
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
7599
7935
|
const color = unique(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7600
7936
|
if (color.length > 0) encoding.color = [
|
7601
7937
|
color[0]
|
7602
7938
|
];
|
7603
|
-
|
7939
|
+
const tooltip = unique(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
7940
|
+
encoding.tooltip = unique([
|
7941
|
+
...encoding.tooltip || [],
|
7942
|
+
...tooltip
|
7943
|
+
]);
|
7604
7944
|
};
|
7605
7945
|
const heatmapAdvancedPipeline = [
|
7606
7946
|
initAdvancedVSeed_initAdvancedVSeed,
|
7607
7947
|
default_defaultMeasures_defaultMeasures,
|
7608
7948
|
defaultDimensions_defaultDimensions,
|
7609
7949
|
defaultMeasureName_defaultMeasureName,
|
7610
|
-
|
7611
|
-
|
7950
|
+
encodingAdapter([
|
7951
|
+
defaultEncodingForHeatmap,
|
7952
|
+
buildMeasures
|
7953
|
+
], [
|
7954
|
+
encodingForHeatmap,
|
7955
|
+
buildMeasures
|
7956
|
+
]),
|
7612
7957
|
pivotAdapter([
|
7613
7958
|
reshapeWithEncoding
|
7614
7959
|
], [
|
@@ -7661,6 +8006,107 @@ const cellStyle = (spec)=>{
|
|
7661
8006
|
}
|
7662
8007
|
};
|
7663
8008
|
};
|
8009
|
+
const tooltipHeatmap = (spec, context)=>{
|
8010
|
+
const result = {
|
8011
|
+
...spec
|
8012
|
+
};
|
8013
|
+
const { advancedVSeed } = context;
|
8014
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
8015
|
+
const baseConfig = advancedVSeed.config[chartType];
|
8016
|
+
const { tooltip = {
|
8017
|
+
enable: true
|
8018
|
+
} } = baseConfig;
|
8019
|
+
const { enable } = tooltip;
|
8020
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
8021
|
+
result.tooltip = {
|
8022
|
+
visible: enable,
|
8023
|
+
mark: {
|
8024
|
+
title: {
|
8025
|
+
visible: false
|
8026
|
+
},
|
8027
|
+
content: tooltipHeatmap_createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfo)
|
8028
|
+
},
|
8029
|
+
dimension: {
|
8030
|
+
visible: false
|
8031
|
+
}
|
8032
|
+
};
|
8033
|
+
return result;
|
8034
|
+
};
|
8035
|
+
const tooltipHeatmap_createMarkContent = (tooltip, dimensions, measures, locale, foldInfo)=>{
|
8036
|
+
const dims = dimensions.filter((item)=>tooltip.includes(item.id));
|
8037
|
+
const meas = measures.filter((item)=>tooltip.includes(item.id));
|
8038
|
+
const dimContent = dims.map((item)=>({
|
8039
|
+
visible: true,
|
8040
|
+
hasShape: true,
|
8041
|
+
shapeType: 'rectRound',
|
8042
|
+
key: (v)=>{
|
8043
|
+
const datum = v;
|
8044
|
+
if (item.alias || item.id) return item.alias || item.id;
|
8045
|
+
return datum && datum[item.id];
|
8046
|
+
},
|
8047
|
+
value: (v)=>{
|
8048
|
+
const datum = v;
|
8049
|
+
return datum && datum[item.id];
|
8050
|
+
}
|
8051
|
+
}));
|
8052
|
+
const meaContent = meas.map((item)=>({
|
8053
|
+
visible: true,
|
8054
|
+
hasShape: true,
|
8055
|
+
shapeType: 'rectRound',
|
8056
|
+
key: item.alias || item.id,
|
8057
|
+
value: (v)=>{
|
8058
|
+
const datum = v;
|
8059
|
+
if (!datum) return '';
|
8060
|
+
const id = item.id;
|
8061
|
+
if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
|
8062
|
+
const originalData = datum[ORIGINAL_DATA];
|
8063
|
+
const value = originalData[id];
|
8064
|
+
const measure = findMeasureById(measures, id);
|
8065
|
+
if (!measure) return String(value);
|
8066
|
+
const { format = {}, autoFormat = true } = measure;
|
8067
|
+
if (!external_remeda_isEmpty(format)) {
|
8068
|
+
const formatter = createFormatter(format);
|
8069
|
+
return formatter(value);
|
8070
|
+
}
|
8071
|
+
if (autoFormat) return autoFormatter(value, locale);
|
8072
|
+
return String(value);
|
8073
|
+
}
|
8074
|
+
}));
|
8075
|
+
const foldMeaContent = [
|
8076
|
+
foldInfo
|
8077
|
+
].map((foldInfo)=>({
|
8078
|
+
visible: true,
|
8079
|
+
hasShape: true,
|
8080
|
+
shapeType: 'rectRound',
|
8081
|
+
key: (v)=>{
|
8082
|
+
const { measureId, foldMap } = foldInfo;
|
8083
|
+
const datum = v;
|
8084
|
+
const id = datum[measureId];
|
8085
|
+
return foldMap[id] || id;
|
8086
|
+
},
|
8087
|
+
value: (v)=>{
|
8088
|
+
const { measureId, measureValue } = foldInfo;
|
8089
|
+
const datum = v;
|
8090
|
+
if (!datum) return '';
|
8091
|
+
const value = datum[measureValue];
|
8092
|
+
const id = datum[measureId];
|
8093
|
+
const measure = findMeasureById(measures, id);
|
8094
|
+
if (!measure) return String(value);
|
8095
|
+
const { format = {}, autoFormat = true } = measure;
|
8096
|
+
if (!external_remeda_isEmpty(format)) {
|
8097
|
+
const formatter = createFormatter(format);
|
8098
|
+
return formatter(value);
|
8099
|
+
}
|
8100
|
+
if (autoFormat) return autoFormatter(value, locale);
|
8101
|
+
return String(value);
|
8102
|
+
}
|
8103
|
+
}));
|
8104
|
+
return [
|
8105
|
+
...dimContent,
|
8106
|
+
...foldMeaContent,
|
8107
|
+
...meaContent
|
8108
|
+
];
|
8109
|
+
};
|
7664
8110
|
const initHeatmap = (spec, context)=>{
|
7665
8111
|
const result = {
|
7666
8112
|
...spec
|
@@ -7704,7 +8150,7 @@ const heatmap = [
|
|
7704
8150
|
labelColorInversion,
|
7705
8151
|
colorAdapter(discreteLegend, colorLegend),
|
7706
8152
|
colorCellStyleFill(cellStyle),
|
7707
|
-
|
8153
|
+
tooltipHeatmap,
|
7708
8154
|
annotationPoint_annotationPoint,
|
7709
8155
|
annotationVerticalLine_annotationVerticalLine,
|
7710
8156
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -7723,7 +8169,7 @@ const pivotHeatmap = [
|
|
7723
8169
|
label_label,
|
7724
8170
|
labelColorInversion,
|
7725
8171
|
discreteLegend,
|
7726
|
-
|
8172
|
+
tooltipHeatmap,
|
7727
8173
|
colorCellStyleFill(cellStyle),
|
7728
8174
|
annotationPoint_annotationPoint,
|
7729
8175
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -9736,6 +10182,7 @@ const zAdvancedVSeed = z.object({
|
|
9736
10182
|
annotation: zAnnotation,
|
9737
10183
|
locale: zLocale
|
9738
10184
|
});
|
9739
|
-
|
10185
|
+
var __webpack_exports__Separator = "-";
|
10186
|
+
export { AngleEncoding, Builder, ColorEncoding, ColorIdEncoding, DetailEncoding, FoldMeasureId, FoldMeasureName, FoldMeasureValue, FoldPrimaryMeasureValue, FoldSecondaryMeasureValue, FoldXMeasureId, FoldXMeasureValue, FoldYMeasureId, FoldYMeasureValue, MeasureName, ORIGINAL_DATA, 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, __webpack_exports__Separator as Separator };
|
9740
10187
|
|
9741
10188
|
//# sourceMappingURL=index.js.map
|