@visactor/vseed 0.1.6 → 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/builder/builder/builder.d.ts +0 -2
- package/dist/dataReshape/constant.d.ts +2 -0
- package/dist/index.cjs +1053 -587
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1050 -589
- package/dist/index.js.map +1 -1
- package/dist/pipeline/advanced/chart/pipes/encoding/bar.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/column.d.ts +1 -19
- package/dist/pipeline/advanced/chart/pipes/encoding/dualAxis.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/encodingAdapter.d.ts +2 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/funnel.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/heatmap.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/index.d.ts +11 -9
- package/dist/pipeline/advanced/chart/pipes/encoding/line.d.ts +1 -17
- package/dist/pipeline/advanced/chart/pipes/encoding/pie.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/radar.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/rose.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/encoding/scatter.d.ts +1 -0
- package/dist/pipeline/advanced/chart/pipes/measures/utils.d.ts +7 -1
- package/dist/pipeline/advanced/table/pipes/{init/autoDimensions.d.ts → default/defaultDimensions.d.ts} +1 -1
- package/dist/pipeline/advanced/table/pipes/{init/autoMeasures.d.ts → default/defaultMeasureName.d.ts} +1 -1
- package/dist/pipeline/advanced/table/pipes/default/defaultMeasures.d.ts +5 -0
- package/dist/pipeline/advanced/table/pipes/default/index.d.ts +3 -0
- package/dist/pipeline/advanced/table/pipes/encoding/index.d.ts +1 -0
- package/dist/pipeline/advanced/table/pipes/{init/autoPivotMeasures.d.ts → encoding/pivotTable.d.ts} +1 -1
- package/dist/pipeline/advanced/table/pipes/index.d.ts +3 -0
- package/dist/pipeline/advanced/table/pipes/init/index.d.ts +0 -3
- 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/advancedVSeed.d.ts +0 -5
- package/dist/types/chartType/area/area.d.ts +8 -29
- package/dist/types/chartType/area/zArea.d.ts +0 -5
- package/dist/types/chartType/areaPercent/areaPercent.d.ts +8 -30
- package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +0 -5
- package/dist/types/chartType/bar/bar.d.ts +9 -14
- package/dist/types/chartType/bar/zBar.d.ts +0 -5
- package/dist/types/chartType/barParallel/barParallel.d.ts +9 -14
- package/dist/types/chartType/barParallel/zBarParallel.d.ts +0 -5
- package/dist/types/chartType/barPercent/barPercent.d.ts +9 -14
- package/dist/types/chartType/barPercent/zBarPercent.d.ts +0 -5
- package/dist/types/chartType/column/column.d.ts +9 -30
- package/dist/types/chartType/column/zColumn.d.ts +0 -5
- package/dist/types/chartType/columnParallel/columnParallel.d.ts +10 -32
- package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +0 -5
- package/dist/types/chartType/columnPercent/columnPercent.d.ts +9 -30
- package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +0 -5
- package/dist/types/chartType/donut/donut.d.ts +8 -13
- package/dist/types/chartType/donut/zDonut.d.ts +0 -5
- package/dist/types/chartType/dualAxis/dualAxis.d.ts +10 -14
- package/dist/types/chartType/dualAxis/zDualAxis.d.ts +0 -5
- package/dist/types/chartType/funnel/funnel.d.ts +8 -13
- package/dist/types/chartType/funnel/zFunnel.d.ts +0 -5
- package/dist/types/chartType/heatmap/heatmap.d.ts +9 -14
- package/dist/types/chartType/heatmap/zHeatmap.d.ts +0 -5
- package/dist/types/chartType/line/line.d.ts +9 -33
- package/dist/types/chartType/line/zLine.d.ts +0 -5
- package/dist/types/chartType/pie/pie.d.ts +8 -13
- package/dist/types/chartType/pie/zPie.d.ts +0 -5
- package/dist/types/chartType/pivotTable/pivotTable.d.ts +7 -3
- package/dist/types/chartType/pivotTable/zPivotTable.d.ts +0 -5
- package/dist/types/chartType/radar/radar.d.ts +8 -14
- package/dist/types/chartType/radar/zRadar.d.ts +0 -5
- package/dist/types/chartType/rose/rose.d.ts +9 -14
- package/dist/types/chartType/rose/zRose.d.ts +0 -5
- package/dist/types/chartType/roseParallel/roseParallel.d.ts +9 -14
- package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +0 -5
- package/dist/types/chartType/scatter/scatter.d.ts +8 -14
- package/dist/types/chartType/scatter/zScatter.d.ts +0 -5
- package/dist/types/chartType/table/table.d.ts +2 -0
- package/dist/types/chartType/table/zTable.d.ts +0 -5
- package/dist/types/properties/dimensions/dimensions.d.ts +0 -4
- package/dist/types/properties/dimensions/zDimensions.d.ts +0 -15
- package/dist/types/zVseed.d.ts +0 -100
- package/dist/umd/index.js +1050 -588
- package/dist/umd/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
@@ -56,7 +56,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
56
56
|
zYLinearAxis: ()=>zYLinearAxis,
|
57
57
|
zMarkStyle: ()=>zMarkStyle,
|
58
58
|
registerFunnel: ()=>registerFunnel,
|
59
|
-
Separator: ()=>
|
59
|
+
Separator: ()=>"-",
|
60
60
|
columnAdvancedPipeline: ()=>columnAdvancedPipeline,
|
61
61
|
zLabel: ()=>zLabel,
|
62
62
|
registerColumn: ()=>registerColumn,
|
@@ -85,12 +85,13 @@ __webpack_require__.d(__webpack_exports__, {
|
|
85
85
|
FoldMeasureId: ()=>FoldMeasureId,
|
86
86
|
zColumnParallelConfig: ()=>zColumnParallelConfig,
|
87
87
|
donutSpecPipeline: ()=>donutSpecPipeline,
|
88
|
+
FoldXMeasureId: ()=>FoldXMeasureId,
|
88
89
|
registerAreaPercent: ()=>registerAreaPercent,
|
89
|
-
zHeatmap: ()=>zHeatmap,
|
90
90
|
zBarPercent: ()=>zBarPercent,
|
91
|
+
zHeatmap: ()=>zHeatmap,
|
91
92
|
zScatterMeasure: ()=>zScatterMeasure,
|
92
|
-
zTheme: ()=>zTheme,
|
93
93
|
zDatum: ()=>zDatum,
|
94
|
+
zTheme: ()=>zTheme,
|
94
95
|
barAdvancedPipeline: ()=>barAdvancedPipeline,
|
95
96
|
zCustomThemeConfig: ()=>zCustomThemeConfig,
|
96
97
|
registerColumnPercent: ()=>registerColumnPercent,
|
@@ -180,6 +181,7 @@ __webpack_require__.d(__webpack_exports__, {
|
|
180
181
|
zTableConfig: ()=>zTableConfig,
|
181
182
|
zXBandAxis: ()=>zXBandAxis,
|
182
183
|
zColumnPercentConfig: ()=>zColumnPercentConfig,
|
184
|
+
FoldYMeasureId: ()=>FoldYMeasureId,
|
183
185
|
findMeasureById: ()=>findMeasureById,
|
184
186
|
zVSeed: ()=>zVSeed,
|
185
187
|
AngleEncoding: ()=>AngleEncoding,
|
@@ -402,33 +404,35 @@ const initAdvancedVSeed = (advancedVSeed, context)=>{
|
|
402
404
|
locale: locale || 'zh-CN'
|
403
405
|
};
|
404
406
|
};
|
405
|
-
const
|
406
|
-
const result = {
|
407
|
-
...advancedVSeed
|
408
|
-
};
|
407
|
+
const defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
|
409
408
|
const { vseed } = context;
|
410
409
|
const { measures, dataset } = vseed;
|
410
|
+
if (measures && measures.length > 0) return {
|
411
|
+
...advancedVSeed,
|
412
|
+
measures
|
413
|
+
};
|
411
414
|
if (!dataset) throw new Error('dataset is required');
|
412
|
-
if (0 === dataset.length) return
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
}
|
415
|
+
if (0 === dataset.length) return {
|
416
|
+
...advancedVSeed,
|
417
|
+
measures: []
|
418
|
+
};
|
417
419
|
const top100dataset = dataset.slice(0, 100);
|
418
420
|
const sample = top100dataset.reduce((prev, cur)=>({
|
419
421
|
...prev,
|
420
422
|
...cur
|
421
423
|
}), {});
|
422
|
-
|
424
|
+
const defaultMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
423
425
|
'',
|
424
426
|
null,
|
425
427
|
void 0
|
426
428
|
].includes(key)).map((measure)=>({
|
427
429
|
id: measure,
|
428
|
-
alias: measure
|
429
|
-
encoding: 'column'
|
430
|
+
alias: measure
|
430
431
|
}));
|
431
|
-
return
|
432
|
+
return {
|
433
|
+
...advancedVSeed,
|
434
|
+
measures: defaultMeasures
|
435
|
+
};
|
432
436
|
};
|
433
437
|
const preorderTraverse = (tree, callback)=>{
|
434
438
|
if (!tree || 0 === tree.length) return;
|
@@ -482,37 +486,36 @@ const findAllMeasures = (measures = [])=>{
|
|
482
486
|
});
|
483
487
|
return result;
|
484
488
|
};
|
485
|
-
const
|
489
|
+
const defaultDimensions = (advancedVSeed, context)=>{
|
486
490
|
const result = {
|
487
491
|
...advancedVSeed
|
488
492
|
};
|
489
493
|
const { vseed } = context;
|
490
494
|
const { dimensions, dataset } = vseed;
|
491
|
-
|
495
|
+
if (dimensions && dimensions.length > 0) return {
|
496
|
+
...result,
|
497
|
+
dimensions
|
498
|
+
};
|
492
499
|
if (!dataset) throw new Error('dataset is required');
|
493
500
|
if (0 === dataset.length) return result;
|
494
|
-
|
495
|
-
result.dimensions = dimensions.map((dim)=>({
|
496
|
-
location: 'dimension',
|
497
|
-
...dim
|
498
|
-
}));
|
499
|
-
return result;
|
500
|
-
}
|
501
|
+
const measures = findAllMeasures(advancedVSeed.measures);
|
501
502
|
const top100dataset = dataset.slice(0, 100);
|
502
503
|
const sample = top100dataset.reduce((prev, cur)=>({
|
503
504
|
...prev,
|
504
505
|
...cur
|
505
506
|
}), {});
|
506
|
-
|
507
|
+
const newDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
|
507
508
|
'',
|
508
509
|
null,
|
509
510
|
void 0
|
510
511
|
].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
|
511
512
|
id: dim,
|
512
|
-
alias: dim
|
513
|
-
encoding: 'column'
|
513
|
+
alias: dim
|
514
514
|
}));
|
515
|
-
return
|
515
|
+
return {
|
516
|
+
...result,
|
517
|
+
dimensions: newDimensions
|
518
|
+
};
|
516
519
|
};
|
517
520
|
const records_records = (advancedVSeed, context)=>{
|
518
521
|
const { vseed } = context;
|
@@ -584,8 +587,8 @@ const mergeArray = (arr, themeItem)=>{
|
|
584
587
|
};
|
585
588
|
const tableAdvancedPipeline = [
|
586
589
|
initAdvancedVSeed,
|
587
|
-
|
588
|
-
|
590
|
+
defaultMeasures_defaultMeasures,
|
591
|
+
defaultDimensions,
|
589
592
|
records_records,
|
590
593
|
tableConfig_tableConfig,
|
591
594
|
theme_theme
|
@@ -806,9 +809,9 @@ const bodyStyle = (spec, context)=>{
|
|
806
809
|
borderColor: borderColor,
|
807
810
|
borderLineWidth: 1,
|
808
811
|
padding: [
|
809
|
-
8
|
812
|
+
8,
|
810
813
|
12,
|
811
|
-
8
|
814
|
+
8,
|
812
815
|
12
|
813
816
|
],
|
814
817
|
textAlign: 'right',
|
@@ -921,37 +924,7 @@ const registerTable = ()=>{
|
|
921
924
|
Builder._advancedPipelineMap.table = tableAdvancedPipeline;
|
922
925
|
Builder._specPipelineMap.table = tableSpecPipeline;
|
923
926
|
};
|
924
|
-
const autoPivotMeasures = (advancedVSeed, context)=>{
|
925
|
-
const result = {
|
926
|
-
...advancedVSeed
|
927
|
-
};
|
928
|
-
const { vseed } = context;
|
929
|
-
const { dataset } = vseed;
|
930
|
-
const measures = findAllMeasures(vseed.measures);
|
931
|
-
if (!dataset) throw new Error('dataset is required');
|
932
|
-
if (0 === dataset.length) return result;
|
933
|
-
if (vseed.measures) {
|
934
|
-
result.measures = findAllMeasures(measures);
|
935
|
-
return result;
|
936
|
-
}
|
937
|
-
const top100dataset = dataset.slice(0, 100);
|
938
|
-
const sample = top100dataset.reduce((prev, cur)=>({
|
939
|
-
...prev,
|
940
|
-
...cur
|
941
|
-
}), {});
|
942
|
-
result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
|
943
|
-
'',
|
944
|
-
null,
|
945
|
-
void 0
|
946
|
-
].includes(key)).map((measure)=>({
|
947
|
-
id: measure,
|
948
|
-
alias: measure,
|
949
|
-
encoding: 'detail'
|
950
|
-
}));
|
951
|
-
return result;
|
952
|
-
};
|
953
927
|
const ORIGINAL_DATA = '__OriginalData__';
|
954
|
-
const Separator = '-';
|
955
928
|
const FoldMeasureName = '__MeaName__';
|
956
929
|
const FoldMeasureId = '__MeaId__';
|
957
930
|
const FoldMeasureValue = '__MeaValue__';
|
@@ -960,94 +933,70 @@ const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
|
|
960
933
|
const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
|
961
934
|
const FoldXMeasureValue = '__MeaXValue__';
|
962
935
|
const FoldYMeasureValue = '__MeaYValue__';
|
936
|
+
const FoldXMeasureId = '__MeaXId__';
|
937
|
+
const FoldYMeasureId = '__MeaYId__';
|
963
938
|
const XEncoding = '__Dim_X__';
|
964
939
|
const YEncoding = '__Dim_Y__';
|
965
940
|
const AngleEncoding = '__Dim_Angle__';
|
966
941
|
const DetailEncoding = '__Dim_Detail__';
|
967
942
|
const ColorEncoding = '__Dim_Color__';
|
968
943
|
const ColorIdEncoding = '__Dim_ColorId__';
|
969
|
-
const
|
970
|
-
if (!dimensions) return [];
|
971
|
-
const result = [];
|
972
|
-
preorderTraverse(dimensions, (node)=>{
|
973
|
-
if (!('children' in node)) result.push(node);
|
974
|
-
return false;
|
975
|
-
});
|
976
|
-
return result;
|
977
|
-
};
|
978
|
-
const autoPivotDimensions = (advancedVSeed, context)=>{
|
944
|
+
const defaultMeasureName = (advancedVSeed)=>{
|
979
945
|
const result = {
|
980
946
|
...advancedVSeed
|
981
947
|
};
|
982
|
-
const { vseed } = context;
|
983
|
-
const { dimensions, dataset } = vseed;
|
984
|
-
const measures = findAllMeasures(advancedVSeed.measures);
|
985
948
|
const MeaName = {
|
986
949
|
id: MeasureName,
|
987
950
|
alias: intl.i18n`指标名称`
|
988
951
|
};
|
989
|
-
if (!
|
990
|
-
if (0 === dataset.length) return result;
|
991
|
-
if (dimensions) {
|
992
|
-
const newDimensions = findAllDimensions(dimensions);
|
993
|
-
if (!newDimensions.some((dim)=>dim.id === MeasureName)) newDimensions.push(MeaName);
|
994
|
-
result.dimensions = newDimensions.map((item, index)=>{
|
995
|
-
if ('row' === item.encoding || 'column' === item.encoding) return item;
|
996
|
-
if ('rowDimension' === item.location || 'columnDimension' === item.location) return item;
|
997
|
-
return {
|
998
|
-
...item,
|
999
|
-
encoding: index % 2 === 0 ? 'column' : 'row'
|
1000
|
-
};
|
1001
|
-
});
|
1002
|
-
return result;
|
1003
|
-
}
|
1004
|
-
const top100dataset = dataset.slice(0, 100);
|
1005
|
-
const sample = top100dataset.reduce((prev, cur)=>({
|
1006
|
-
...prev,
|
1007
|
-
...cur
|
1008
|
-
}), {});
|
1009
|
-
const newDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
|
1010
|
-
'',
|
1011
|
-
null,
|
1012
|
-
void 0
|
1013
|
-
].includes(key) && !measures.some((measure)=>measure.id === key));
|
1014
|
-
result.dimensions = newDimensions.map((dim)=>({
|
1015
|
-
id: dim,
|
1016
|
-
alias: dim
|
1017
|
-
}));
|
1018
|
-
result.dimensions.push(MeaName);
|
1019
|
-
result.dimensions = result.dimensions.map((dim, index)=>({
|
1020
|
-
...dim,
|
1021
|
-
encoding: index % 2 === 0 ? 'column' : 'row'
|
1022
|
-
}));
|
952
|
+
if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
|
1023
953
|
return result;
|
1024
954
|
};
|
1025
|
-
const
|
1026
|
-
const {
|
1027
|
-
const
|
1028
|
-
const
|
1029
|
-
|
1030
|
-
};
|
1031
|
-
|
1032
|
-
|
1033
|
-
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1037
|
-
|
1038
|
-
'headerBackgroundColor',
|
1039
|
-
'hoverHeaderBackgroundColor',
|
1040
|
-
'hoverHeaderInlineBackgroundColor',
|
1041
|
-
'selectedBorderColor',
|
1042
|
-
'selectedBackgroundColor'
|
1043
|
-
]);
|
1044
|
-
result.config = {
|
1045
|
-
...result.config || {},
|
1046
|
-
[chartType]: {
|
1047
|
-
...config
|
1048
|
-
}
|
955
|
+
const encodingForPivotTable = (advancedVSeed)=>{
|
956
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
957
|
+
const measures = findAllMeasures(vseedMeasures);
|
958
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
959
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
960
|
+
const encoding = {};
|
961
|
+
if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding);
|
962
|
+
else generateDefaultDimensionEncoding(dimensions, encoding);
|
963
|
+
if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
|
964
|
+
else generateDefaultMeasureEncoding(measures, encoding);
|
965
|
+
return {
|
966
|
+
...advancedVSeed,
|
967
|
+
encoding
|
1049
968
|
};
|
1050
|
-
|
969
|
+
};
|
970
|
+
const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
971
|
+
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
972
|
+
encoding.tooltip = uniqueDimIds;
|
973
|
+
encoding.row = [];
|
974
|
+
encoding.column = [];
|
975
|
+
uniqueDimIds.forEach((item, index)=>{
|
976
|
+
if (index % 2 === 0) encoding.column.push(item);
|
977
|
+
else encoding.row.push(item);
|
978
|
+
});
|
979
|
+
};
|
980
|
+
const generateDimensionEncoding = (dimensions, encoding)=>{
|
981
|
+
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
982
|
+
encoding.tooltip = uniqueDimIds;
|
983
|
+
encoding.row = [];
|
984
|
+
encoding.column = [];
|
985
|
+
dimensions.forEach((dim, index)=>{
|
986
|
+
const id = dim.id;
|
987
|
+
if ('row' === dim.encoding) encoding.row.push(id);
|
988
|
+
else if ('column' === dim.encoding) encoding.column.push(id);
|
989
|
+
else if (index % 2 === 0) encoding.column.push(id);
|
990
|
+
else encoding.row.push(id);
|
991
|
+
});
|
992
|
+
};
|
993
|
+
const generateDefaultMeasureEncoding = (measures, encoding)=>{
|
994
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
995
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'detail' === item.encoding || !item.encoding).map((item)=>item.id));
|
996
|
+
};
|
997
|
+
const generateMeasureEncoding = (measures, encoding)=>{
|
998
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
999
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'detail' === item.encoding || !item.encoding).map((item)=>item.id));
|
1051
1000
|
};
|
1052
1001
|
const foldMeasures = (dataset, measures, options)=>{
|
1053
1002
|
const { measureId, measureName, measureValue, colorMeasureId } = options || {};
|
@@ -1127,10 +1076,39 @@ const reshapePivotTable = (advancedVSeed, context)=>{
|
|
1127
1076
|
measures
|
1128
1077
|
};
|
1129
1078
|
};
|
1079
|
+
const pivotTableConfig = (advancedVSeed, context)=>{
|
1080
|
+
const { vseed } = context;
|
1081
|
+
const { chartType } = vseed;
|
1082
|
+
const result = {
|
1083
|
+
...advancedVSeed
|
1084
|
+
};
|
1085
|
+
const config = (0, external_remeda_namespaceObject.pick)(vseed, [
|
1086
|
+
'backgroundColor',
|
1087
|
+
'bodyFontSize',
|
1088
|
+
'bodyFontColor',
|
1089
|
+
'bodyBackgroundColor',
|
1090
|
+
'headerFontSize',
|
1091
|
+
'headerFontColor',
|
1092
|
+
'headerBackgroundColor',
|
1093
|
+
'hoverHeaderBackgroundColor',
|
1094
|
+
'hoverHeaderInlineBackgroundColor',
|
1095
|
+
'selectedBorderColor',
|
1096
|
+
'selectedBackgroundColor'
|
1097
|
+
]);
|
1098
|
+
result.config = {
|
1099
|
+
...result.config || {},
|
1100
|
+
[chartType]: {
|
1101
|
+
...config
|
1102
|
+
}
|
1103
|
+
};
|
1104
|
+
return result;
|
1105
|
+
};
|
1130
1106
|
const pivotTableAdvancedPipeline = [
|
1131
1107
|
initAdvancedVSeed,
|
1132
|
-
|
1133
|
-
|
1108
|
+
defaultMeasures_defaultMeasures,
|
1109
|
+
defaultDimensions,
|
1110
|
+
defaultMeasureName,
|
1111
|
+
encodingForPivotTable,
|
1134
1112
|
reshapePivotTable,
|
1135
1113
|
pivotTableConfig,
|
1136
1114
|
theme_theme
|
@@ -1177,8 +1155,9 @@ const initPivotTable = (spec, context)=>{
|
|
1177
1155
|
};
|
1178
1156
|
const pivotColumns = (spec, context)=>{
|
1179
1157
|
const { advancedVSeed } = context;
|
1158
|
+
const { encoding } = advancedVSeed;
|
1180
1159
|
const dimensions = advancedVSeed.dimensions;
|
1181
|
-
const columns = dimensions.filter((item)=>
|
1160
|
+
const columns = dimensions.filter((item)=>encoding.column?.includes(item.id));
|
1182
1161
|
return {
|
1183
1162
|
...spec,
|
1184
1163
|
columns: columns.map((item)=>({
|
@@ -1191,7 +1170,8 @@ const pivotColumns = (spec, context)=>{
|
|
1191
1170
|
const pivotRows = (spec, context)=>{
|
1192
1171
|
const { advancedVSeed } = context;
|
1193
1172
|
const dimensions = advancedVSeed.dimensions;
|
1194
|
-
const
|
1173
|
+
const { encoding } = advancedVSeed;
|
1174
|
+
const rows = dimensions.filter((item)=>encoding.row?.includes(item.id));
|
1195
1175
|
return {
|
1196
1176
|
...spec,
|
1197
1177
|
rows: rows.map((item)=>({
|
@@ -1224,6 +1204,7 @@ const pivotIndicators = (spec, context)=>{
|
|
1224
1204
|
const pivotIndicators_fieldFormat = (measures, foldInfo, locale)=>(value, col, row, table)=>{
|
1225
1205
|
if (!(0, external_remeda_namespaceObject.isNumber)(col) || !(0, external_remeda_namespaceObject.isNumber)(row) || !table) return value;
|
1226
1206
|
const datum = table.getCellOriginRecord(col, row);
|
1207
|
+
if (!datum[0]) return value;
|
1227
1208
|
const { measureId: foldMeasureId } = foldInfo;
|
1228
1209
|
const measureId = datum[0][foldMeasureId];
|
1229
1210
|
const node = findMeasureById(measures, measureId);
|
@@ -1253,9 +1234,9 @@ const rowHeaderStyle = (spec, context)=>{
|
|
1253
1234
|
borderColor: borderColor,
|
1254
1235
|
borderLineWidth: 1,
|
1255
1236
|
padding: [
|
1256
|
-
8
|
1237
|
+
8,
|
1257
1238
|
12,
|
1258
|
-
8
|
1239
|
+
8,
|
1259
1240
|
12
|
1260
1241
|
],
|
1261
1242
|
textAlign: 'left',
|
@@ -1383,7 +1364,7 @@ const initAdvancedVSeed_initAdvancedVSeed = (advancedVSeed, context)=>{
|
|
1383
1364
|
locale: locale || 'zh-CN'
|
1384
1365
|
};
|
1385
1366
|
};
|
1386
|
-
const
|
1367
|
+
const default_defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
|
1387
1368
|
const { vseed } = context;
|
1388
1369
|
const { measures, dataset } = vseed;
|
1389
1370
|
if (measures && measures.length > 0) return {
|
@@ -1413,7 +1394,7 @@ const defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
|
|
1413
1394
|
measures: defaultMeasures
|
1414
1395
|
};
|
1415
1396
|
};
|
1416
|
-
const
|
1397
|
+
const defaultDimensions_defaultDimensions = (advancedVSeed, context)=>{
|
1417
1398
|
const result = {
|
1418
1399
|
...advancedVSeed
|
1419
1400
|
};
|
@@ -1444,7 +1425,7 @@ const defaultDimensions = (advancedVSeed, context)=>{
|
|
1444
1425
|
dimensions: newDimensions
|
1445
1426
|
};
|
1446
1427
|
};
|
1447
|
-
const
|
1428
|
+
const defaultMeasureName_defaultMeasureName = (advancedVSeed)=>{
|
1448
1429
|
const result = {
|
1449
1430
|
...advancedVSeed
|
1450
1431
|
};
|
@@ -1455,51 +1436,78 @@ const defaultMeasureName = (advancedVSeed)=>{
|
|
1455
1436
|
if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
|
1456
1437
|
return result;
|
1457
1438
|
};
|
1439
|
+
const encodingAdapter = (noEncodingPipeline, hasEncodingPipeline)=>(advancedVSeed, context)=>{
|
1440
|
+
const { dimensions = [], measures = [] } = advancedVSeed;
|
1441
|
+
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
1442
|
+
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
1443
|
+
const hasEncoding = hasDimensionEncoding || hasMeasureEncoding;
|
1444
|
+
if (hasEncoding) return execPipeline(hasEncodingPipeline, context, advancedVSeed);
|
1445
|
+
return execPipeline(noEncodingPipeline, context, advancedVSeed);
|
1446
|
+
};
|
1447
|
+
const defaultEncodingForLine = (advancedVSeed)=>{
|
1448
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
1449
|
+
const measures = findAllMeasures(vseedMeasures);
|
1450
|
+
const encoding = {};
|
1451
|
+
line_generateDefaultDimensionEncoding(dimensions, encoding);
|
1452
|
+
line_generateDefaultMeasureEncoding(measures, encoding);
|
1453
|
+
return {
|
1454
|
+
...advancedVSeed,
|
1455
|
+
encoding
|
1456
|
+
};
|
1457
|
+
};
|
1458
1458
|
const encodingForLine = (advancedVSeed)=>{
|
1459
1459
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
1460
1460
|
const measures = findAllMeasures(vseedMeasures);
|
1461
1461
|
const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
|
1462
1462
|
const hasMeasureEncoding = measures.some((item)=>item.encoding);
|
1463
1463
|
const encoding = {};
|
1464
|
-
if (hasDimensionEncoding)
|
1465
|
-
else
|
1466
|
-
if (hasMeasureEncoding)
|
1467
|
-
else
|
1464
|
+
if (hasDimensionEncoding) line_generateDimensionEncoding(dimensions, encoding);
|
1465
|
+
else line_generateDefaultDimensionEncoding(dimensions, encoding);
|
1466
|
+
if (hasMeasureEncoding) line_generateMeasureEncoding(measures, encoding);
|
1467
|
+
else line_generateDefaultMeasureEncoding(measures, encoding);
|
1468
1468
|
return {
|
1469
1469
|
...advancedVSeed,
|
1470
1470
|
encoding
|
1471
1471
|
};
|
1472
1472
|
};
|
1473
|
-
const
|
1473
|
+
const line_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
1474
1474
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
1475
1475
|
encoding.x = uniqueDimIds.slice(0, 1);
|
1476
1476
|
encoding.color = uniqueDimIds.slice(1);
|
1477
|
-
encoding.tooltip = uniqueDimIds;
|
1477
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
1478
1478
|
encoding.detail = [];
|
1479
1479
|
encoding.label = [];
|
1480
1480
|
encoding.row = [];
|
1481
1481
|
encoding.column = [];
|
1482
1482
|
};
|
1483
|
-
const
|
1483
|
+
const line_generateDimensionEncoding = (dimensions, encoding)=>{
|
1484
1484
|
encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
1485
|
-
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
1486
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
1487
1485
|
if (0 === encoding.x.length) encoding.x = [
|
1488
1486
|
dimensions[0].id
|
1489
1487
|
];
|
1488
|
+
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
1490
1489
|
if (0 === encoding.color.length) encoding.color = [
|
1491
1490
|
MeasureName
|
1492
1491
|
];
|
1492
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
1493
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
1494
|
+
MeasureName
|
1495
|
+
];
|
1496
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
1497
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
1493
1498
|
};
|
1494
|
-
const
|
1495
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
1499
|
+
const line_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
1496
1500
|
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
1497
1501
|
};
|
1498
|
-
const
|
1499
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
1502
|
+
const line_generateMeasureEncoding = (measures, encoding)=>{
|
1500
1503
|
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
1501
1504
|
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
1502
1505
|
if (color.length > 0) encoding.color = color;
|
1506
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
1507
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
1508
|
+
...encoding.tooltip || [],
|
1509
|
+
...tooltip
|
1510
|
+
]);
|
1503
1511
|
};
|
1504
1512
|
const isMeasureTreeWithChildren = (vseed)=>{
|
1505
1513
|
const { measures } = vseed;
|
@@ -1511,6 +1519,37 @@ const isMeasureTreeWithParentId = (vseed)=>{
|
|
1511
1519
|
if (!measures) return false;
|
1512
1520
|
return measures.some((measure)=>'parentId' in measure);
|
1513
1521
|
};
|
1522
|
+
const normalizeMeasureTree = (measures)=>{
|
1523
|
+
const createEmptyMeasureGroup = ()=>({
|
1524
|
+
id: 'group',
|
1525
|
+
alias: '',
|
1526
|
+
children: []
|
1527
|
+
});
|
1528
|
+
let currentGroup = createEmptyMeasureGroup();
|
1529
|
+
const measureGroups = [];
|
1530
|
+
for (const measure of measures)if ('children' in measure) {
|
1531
|
+
if (currentGroup.children?.length) {
|
1532
|
+
currentGroup.id = [
|
1533
|
+
currentGroup.id,
|
1534
|
+
...currentGroup.children.map((item)=>item.id)
|
1535
|
+
].join('-');
|
1536
|
+
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1537
|
+
measureGroups.push(currentGroup);
|
1538
|
+
currentGroup = createEmptyMeasureGroup();
|
1539
|
+
}
|
1540
|
+
measureGroups.push(measure);
|
1541
|
+
} else currentGroup.children?.push(measure);
|
1542
|
+
if (currentGroup.children?.length) {
|
1543
|
+
currentGroup.id = [
|
1544
|
+
currentGroup.id,
|
1545
|
+
...currentGroup.children.map((item)=>item.id)
|
1546
|
+
].join('-');
|
1547
|
+
currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
|
1548
|
+
measureGroups.push(currentGroup);
|
1549
|
+
currentGroup = createEmptyMeasureGroup();
|
1550
|
+
}
|
1551
|
+
return measureGroups;
|
1552
|
+
};
|
1514
1553
|
const measureDepth = (measures = [])=>{
|
1515
1554
|
if (!measures) return 0;
|
1516
1555
|
let depth = 1;
|
@@ -1535,7 +1574,7 @@ const isPivotChart = (vseed)=>{
|
|
1535
1574
|
}
|
1536
1575
|
if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
|
1537
1576
|
const { dimensions = [] } = vseed;
|
1538
|
-
const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'
|
1577
|
+
const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
|
1539
1578
|
if (hasRowOrColumnDimension) return true;
|
1540
1579
|
if ('scatter' === vseed.chartType) {
|
1541
1580
|
if (isMeasureTreeWithChildren(vseed)) {
|
@@ -1555,14 +1594,14 @@ const isPivotChart = (vseed)=>{
|
|
1555
1594
|
return false;
|
1556
1595
|
}
|
1557
1596
|
const { measures = [], dimensions = [] } = vseed;
|
1558
|
-
const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'
|
1597
|
+
const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
|
1559
1598
|
const hasMeasureGroup = measures && measures.some((measure)=>measure && measure.children);
|
1560
1599
|
return hasRowOrColumnDimension || hasMeasureGroup;
|
1561
1600
|
};
|
1562
1601
|
const buildMeasures = (advancedVSeed, context)=>{
|
1563
1602
|
const { vseed } = context;
|
1564
1603
|
if (isMeasureTreeWithChildren(vseed)) {
|
1565
|
-
advancedVSeed.measures = vseed.measures;
|
1604
|
+
advancedVSeed.measures = normalizeMeasureTree(vseed.measures);
|
1566
1605
|
return advancedVSeed;
|
1567
1606
|
}
|
1568
1607
|
if (isMeasureTreeWithParentId(vseed)) {
|
@@ -1664,7 +1703,7 @@ const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)
|
|
1664
1703
|
});
|
1665
1704
|
const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
|
1666
1705
|
foldMeasureId,
|
1667
|
-
separator:
|
1706
|
+
separator: "-",
|
1668
1707
|
colorItemAsId
|
1669
1708
|
});
|
1670
1709
|
return {
|
@@ -1950,11 +1989,16 @@ const annotation_annotation = (advancedVSeed, context)=>{
|
|
1950
1989
|
};
|
1951
1990
|
const lineAdvancedPipeline = [
|
1952
1991
|
initAdvancedVSeed_initAdvancedVSeed,
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
1956
|
-
|
1957
|
-
|
1992
|
+
default_defaultMeasures_defaultMeasures,
|
1993
|
+
defaultDimensions_defaultDimensions,
|
1994
|
+
defaultMeasureName_defaultMeasureName,
|
1995
|
+
encodingAdapter([
|
1996
|
+
defaultEncodingForLine,
|
1997
|
+
buildMeasures
|
1998
|
+
], [
|
1999
|
+
encodingForLine,
|
2000
|
+
buildMeasures
|
2001
|
+
]),
|
1958
2002
|
pivotAdapter([
|
1959
2003
|
reshapeWithEncoding
|
1960
2004
|
], [
|
@@ -2229,10 +2273,6 @@ const xBand = (spec, context)=>{
|
|
2229
2273
|
];
|
2230
2274
|
return result;
|
2231
2275
|
};
|
2232
|
-
const ANNOTATION_Z_INDEX = 1000;
|
2233
|
-
const LINEAR_AXIS_INNER_OFFSET_TOP = 7;
|
2234
|
-
const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000;
|
2235
|
-
const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001;
|
2236
2276
|
const yLinear = (spec, context)=>{
|
2237
2277
|
const result = {
|
2238
2278
|
...spec
|
@@ -2306,7 +2346,7 @@ const yLinear = (spec, context)=>{
|
|
2306
2346
|
}
|
2307
2347
|
},
|
2308
2348
|
innerOffset: {
|
2309
|
-
top:
|
2349
|
+
top: 7
|
2310
2350
|
}
|
2311
2351
|
};
|
2312
2352
|
result.axes = [
|
@@ -2862,82 +2902,137 @@ const tooltip_tooltip = (spec, context)=>{
|
|
2862
2902
|
...spec
|
2863
2903
|
};
|
2864
2904
|
const { advancedVSeed } = context;
|
2865
|
-
const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
|
2905
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
2866
2906
|
const baseConfig = advancedVSeed.config[chartType];
|
2867
2907
|
const { tooltip = {
|
2868
2908
|
enable: true
|
2869
2909
|
} } = baseConfig;
|
2870
2910
|
const { enable } = tooltip;
|
2871
|
-
const {
|
2872
|
-
const { encodingColor: colorName } = datasetReshapeInfo[0].unfoldInfo;
|
2911
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
2873
2912
|
result.tooltip = {
|
2874
2913
|
visible: enable,
|
2875
2914
|
mark: {
|
2876
2915
|
title: {
|
2877
|
-
visible:
|
2916
|
+
visible: false
|
2878
2917
|
},
|
2879
|
-
content: [
|
2880
|
-
...dimensions.map((item)=>({
|
2881
|
-
visible: true,
|
2882
|
-
hasShape: true,
|
2883
|
-
shapeType: 'rectRound',
|
2884
|
-
key: (datum)=>{
|
2885
|
-
if (item.alias || item.id) return item.alias || item.id;
|
2886
|
-
return datum && datum[item.id];
|
2887
|
-
},
|
2888
|
-
value: (datum)=>datum && datum[item.id]
|
2889
|
-
})),
|
2890
|
-
{
|
2891
|
-
visible: true,
|
2892
|
-
hasShape: true,
|
2893
|
-
key: (datum)=>datum && datum[measureName || colorName] || '',
|
2894
|
-
value: (datum)=>{
|
2895
|
-
if (!datum) return '';
|
2896
|
-
const value = datum[measureValue];
|
2897
|
-
const id = datum[measureId];
|
2898
|
-
const measure = findMeasureById(measures, id);
|
2899
|
-
if (!measure) return String(value);
|
2900
|
-
const { format = {}, autoFormat = true } = measure;
|
2901
|
-
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
2902
|
-
const formatter = createFormatter(format);
|
2903
|
-
return formatter(value);
|
2904
|
-
}
|
2905
|
-
if (autoFormat) return autoFormatter(value, locale);
|
2906
|
-
return String(value);
|
2907
|
-
}
|
2908
|
-
}
|
2909
|
-
]
|
2918
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfo, unfoldInfo)
|
2910
2919
|
},
|
2911
2920
|
dimension: {
|
2912
|
-
|
2913
|
-
|
2914
|
-
|
2915
|
-
|
2916
|
-
value: (datum)=>{
|
2917
|
-
if (!datum) return '';
|
2918
|
-
const value = datum[measureValue];
|
2919
|
-
const id = datum[measureId];
|
2920
|
-
const measure = findMeasureById(measures, id);
|
2921
|
-
if (!measure) return String(value);
|
2922
|
-
const { format = {}, autoFormat = true } = measure;
|
2923
|
-
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
2924
|
-
const formatter = createFormatter(format);
|
2925
|
-
return formatter(value);
|
2926
|
-
}
|
2927
|
-
if (autoFormat) return autoFormatter(value, locale);
|
2928
|
-
return String(value);
|
2929
|
-
},
|
2930
|
-
shapeType: 'rectRound'
|
2931
|
-
}
|
2932
|
-
]
|
2921
|
+
title: {
|
2922
|
+
visible: true
|
2923
|
+
},
|
2924
|
+
content: createDimensionContent(measures, foldInfo, unfoldInfo, locale)
|
2933
2925
|
}
|
2934
2926
|
};
|
2935
2927
|
return result;
|
2936
2928
|
};
|
2937
|
-
const
|
2938
|
-
|
2939
|
-
|
2940
|
-
|
2929
|
+
const createDimensionContent = (measures, foldInfo, unfoldInfo, locale)=>{
|
2930
|
+
const { measureId, measureValue } = foldInfo;
|
2931
|
+
const { encodingColor } = unfoldInfo;
|
2932
|
+
return [
|
2933
|
+
{
|
2934
|
+
visible: true,
|
2935
|
+
shapeType: 'rectRound',
|
2936
|
+
hasShape: true,
|
2937
|
+
key: (v)=>{
|
2938
|
+
const datum = v;
|
2939
|
+
return datum && datum[encodingColor] || '';
|
2940
|
+
},
|
2941
|
+
value: (v)=>{
|
2942
|
+
const datum = v;
|
2943
|
+
if (!datum) return '';
|
2944
|
+
const value = datum[measureValue];
|
2945
|
+
const id = datum[measureId];
|
2946
|
+
const measure = findMeasureById(measures, id);
|
2947
|
+
if (!measure) return String(value);
|
2948
|
+
const { format = {}, autoFormat = true } = measure;
|
2949
|
+
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
2950
|
+
const formatter = createFormatter(format);
|
2951
|
+
return formatter(value);
|
2952
|
+
}
|
2953
|
+
if (autoFormat) return autoFormatter(value, locale);
|
2954
|
+
return String(value);
|
2955
|
+
}
|
2956
|
+
}
|
2957
|
+
];
|
2958
|
+
};
|
2959
|
+
const createMarkContent = (tooltip, dimensions, measures, locale, foldInfo, unfoldInfo)=>{
|
2960
|
+
const dims = dimensions.filter((item)=>tooltip.includes(item.id));
|
2961
|
+
const meas = measures.filter((item)=>tooltip.includes(item.id));
|
2962
|
+
const dimContent = dims.map((item)=>({
|
2963
|
+
visible: true,
|
2964
|
+
hasShape: true,
|
2965
|
+
shapeType: 'rectRound',
|
2966
|
+
key: (v)=>{
|
2967
|
+
const datum = v;
|
2968
|
+
if (item.alias || item.id) return item.alias || item.id;
|
2969
|
+
return datum && datum[item.id];
|
2970
|
+
},
|
2971
|
+
value: (v)=>{
|
2972
|
+
const datum = v;
|
2973
|
+
return datum && datum[item.id];
|
2974
|
+
}
|
2975
|
+
}));
|
2976
|
+
const meaContent = meas.map((item)=>({
|
2977
|
+
visible: true,
|
2978
|
+
hasShape: true,
|
2979
|
+
shapeType: 'rectRound',
|
2980
|
+
key: item.alias || item.id,
|
2981
|
+
value: (v)=>{
|
2982
|
+
const datum = v;
|
2983
|
+
if (!datum) return '';
|
2984
|
+
const id = item.id;
|
2985
|
+
if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
|
2986
|
+
const originalData = datum[ORIGINAL_DATA];
|
2987
|
+
const value = originalData[id];
|
2988
|
+
const measure = findMeasureById(measures, id);
|
2989
|
+
if (!measure) return String(value);
|
2990
|
+
const { format = {}, autoFormat = true } = measure;
|
2991
|
+
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
2992
|
+
const formatter = createFormatter(format);
|
2993
|
+
return formatter(value);
|
2994
|
+
}
|
2995
|
+
if (autoFormat) return autoFormatter(value, locale);
|
2996
|
+
return String(value);
|
2997
|
+
}
|
2998
|
+
}));
|
2999
|
+
const defaultContent = {
|
3000
|
+
visible: true,
|
3001
|
+
hasShape: true,
|
3002
|
+
shapeType: 'rectRound',
|
3003
|
+
key: (v)=>{
|
3004
|
+
const { measureName } = foldInfo;
|
3005
|
+
const { encodingColor: colorName } = unfoldInfo;
|
3006
|
+
const datum = v;
|
3007
|
+
return datum && datum[measureName || colorName] || '';
|
3008
|
+
},
|
3009
|
+
value: (v)=>{
|
3010
|
+
const { measureId, measureValue } = foldInfo;
|
3011
|
+
const datum = v;
|
3012
|
+
if (!datum) return '';
|
3013
|
+
const value = datum[measureValue];
|
3014
|
+
const id = datum[measureId];
|
3015
|
+
const measure = findMeasureById(measures, id);
|
3016
|
+
if (!measure) return String(value);
|
3017
|
+
const { format = {}, autoFormat = true } = measure;
|
3018
|
+
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
3019
|
+
const formatter = createFormatter(format);
|
3020
|
+
return formatter(value);
|
3021
|
+
}
|
3022
|
+
if (autoFormat) return autoFormatter(value, locale);
|
3023
|
+
return String(value);
|
3024
|
+
}
|
3025
|
+
};
|
3026
|
+
return [
|
3027
|
+
...dimContent,
|
3028
|
+
defaultContent,
|
3029
|
+
...meaContent
|
3030
|
+
];
|
3031
|
+
};
|
3032
|
+
const isSubset = (sub, obj)=>Object.entries(sub).every(([key, value])=>{
|
3033
|
+
if ('string' == typeof value) return obj[key] === value;
|
3034
|
+
if ('number' == typeof value) return obj[key] === value;
|
3035
|
+
return true;
|
2941
3036
|
});
|
2942
3037
|
const annotationPoint_annotationPoint = (spec, context)=>{
|
2943
3038
|
const { advancedVSeed } = context;
|
@@ -2952,7 +3047,7 @@ const annotationPoint_annotationPoint = (spec, context)=>{
|
|
2952
3047
|
const dataset = advancedVSeed.dataset.flat();
|
2953
3048
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
2954
3049
|
return selectedData.map((datum)=>({
|
2955
|
-
zIndex:
|
3050
|
+
zIndex: 1000,
|
2956
3051
|
regionRelative: true,
|
2957
3052
|
position: (data, context)=>{
|
2958
3053
|
const targetDatum = data.find((item)=>isSubset(datum, item));
|
@@ -3006,7 +3101,7 @@ const annotationPoint_annotationPoint = (spec, context)=>{
|
|
3006
3101
|
const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
|
3007
3102
|
const { advancedVSeed } = context;
|
3008
3103
|
const { annotation, datasetReshapeInfo } = advancedVSeed;
|
3009
|
-
const { unfoldInfo } = datasetReshapeInfo[0];
|
3104
|
+
const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
|
3010
3105
|
if (!annotation || !annotation.annotationVerticalLine) return spec;
|
3011
3106
|
const { annotationVerticalLine } = annotation;
|
3012
3107
|
const annotationVerticalLineList = Array.isArray(annotationVerticalLine) ? annotationVerticalLine : [
|
@@ -3025,7 +3120,7 @@ const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
|
|
3025
3120
|
const dataset = advancedVSeed.dataset.flat();
|
3026
3121
|
const generateOneMarkLine = (x)=>({
|
3027
3122
|
x: x,
|
3028
|
-
zIndex:
|
3123
|
+
zIndex: 1000,
|
3029
3124
|
line: {
|
3030
3125
|
style: {
|
3031
3126
|
visible: lineVisible,
|
@@ -3086,9 +3181,9 @@ const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
|
|
3086
3181
|
}
|
3087
3182
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
3088
3183
|
return selectedData.map((datum)=>{
|
3089
|
-
|
3090
|
-
if (
|
3091
|
-
return
|
3184
|
+
if (datum[unfoldInfo.encodingX]) return generateOneMarkLine(datum[unfoldInfo.encodingX]);
|
3185
|
+
if (datum[foldInfo.measureValue]) return generateOneMarkLine(datum[foldInfo.measureValue]);
|
3186
|
+
return {};
|
3092
3187
|
});
|
3093
3188
|
});
|
3094
3189
|
const specMarkLine = spec.markLine || [];
|
@@ -3104,10 +3199,10 @@ const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
|
|
3104
3199
|
const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
|
3105
3200
|
const { advancedVSeed } = context;
|
3106
3201
|
const { annotation, datasetReshapeInfo } = advancedVSeed;
|
3107
|
-
const { unfoldInfo } = datasetReshapeInfo[0];
|
3202
|
+
const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
|
3108
3203
|
if (!annotation || !annotation.annotationHorizontalLine) return spec;
|
3109
3204
|
const { annotationHorizontalLine } = annotation;
|
3110
|
-
const
|
3205
|
+
const annotationHorizontalLineList = Array.isArray(annotationHorizontalLine) ? annotationHorizontalLine : [
|
3111
3206
|
annotationHorizontalLine
|
3112
3207
|
];
|
3113
3208
|
const positionMap = {
|
@@ -3118,12 +3213,12 @@ const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
|
|
3118
3213
|
insideMiddle: 'insideMiddleTop',
|
3119
3214
|
insideEnd: 'insideEndTop'
|
3120
3215
|
};
|
3121
|
-
const markLine =
|
3122
|
-
const { selector: selectorPoint, yValue, text = '', textPosition = 'insideEnd', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'right', textBaseline = 'top', lineColor = '#212121', lineStyle = 'dashed', lineVisible = true, lineWidth = 1, textBackgroundVisible = true, textBackgroundColor = '#212121', textBackgroundBorderColor = '#212121', textBackgroundBorderRadius = 4, textBackgroundBorderWidth = 1, textBackgroundPadding = 2 } =
|
3216
|
+
const markLine = annotationHorizontalLineList.flatMap((annotationHorizontalLine)=>{
|
3217
|
+
const { selector: selectorPoint, yValue, text = '', textPosition = 'insideEnd', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'right', textBaseline = 'top', lineColor = '#212121', lineStyle = 'dashed', lineVisible = true, lineWidth = 1, textBackgroundVisible = true, textBackgroundColor = '#212121', textBackgroundBorderColor = '#212121', textBackgroundBorderRadius = 4, textBackgroundBorderWidth = 1, textBackgroundPadding = 2 } = annotationHorizontalLine;
|
3123
3218
|
const dataset = advancedVSeed.dataset.flat();
|
3124
3219
|
const generateOneMarkLine = (y)=>({
|
3125
3220
|
y,
|
3126
|
-
zIndex:
|
3221
|
+
zIndex: 1000,
|
3127
3222
|
line: {
|
3128
3223
|
style: {
|
3129
3224
|
visible: lineVisible,
|
@@ -3184,9 +3279,9 @@ const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
|
|
3184
3279
|
}
|
3185
3280
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
3186
3281
|
return selectedData.map((datum)=>{
|
3187
|
-
|
3188
|
-
if (
|
3189
|
-
return
|
3282
|
+
if (datum[unfoldInfo.encodingY]) return generateOneMarkLine(datum[unfoldInfo.encodingY]);
|
3283
|
+
if (datum[foldInfo.measureValue]) return generateOneMarkLine(datum[foldInfo.measureValue]);
|
3284
|
+
return {};
|
3190
3285
|
});
|
3191
3286
|
});
|
3192
3287
|
const specMarkLine = spec.markLine || [];
|
@@ -3224,7 +3319,7 @@ const annotationArea_annotationArea = (spec, context)=>{
|
|
3224
3319
|
const labelPosition = positionMap[textPosition || 'top'];
|
3225
3320
|
const isBottom = labelPosition.toLocaleLowerCase().includes('bottom');
|
3226
3321
|
return {
|
3227
|
-
zIndex:
|
3322
|
+
zIndex: 1000,
|
3228
3323
|
regionRelative: true,
|
3229
3324
|
positions: (data, context)=>{
|
3230
3325
|
const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
|
@@ -3550,7 +3645,7 @@ const pivotRowDimensions = (spec, context)=>{
|
|
3550
3645
|
const { advancedVSeed } = context;
|
3551
3646
|
const dimensions = advancedVSeed.dimensions;
|
3552
3647
|
if (!dimensions) return result;
|
3553
|
-
const rowDimensions = dimensions.filter((dim)=>'
|
3648
|
+
const rowDimensions = dimensions.filter((dim)=>'row' === dim.encoding);
|
3554
3649
|
const rows = rowDimensions.map((dim)=>({
|
3555
3650
|
dimensionKey: dim.id,
|
3556
3651
|
title: dim.alias || dim.id
|
@@ -3567,7 +3662,7 @@ const pivotColumnDimensions = (spec, context)=>{
|
|
3567
3662
|
const { advancedVSeed } = context;
|
3568
3663
|
const dimensions = advancedVSeed.dimensions;
|
3569
3664
|
if (!dimensions) return result;
|
3570
|
-
const columnDimensions = dimensions.filter((dim)=>'
|
3665
|
+
const columnDimensions = dimensions.filter((dim)=>'column' === dim.encoding);
|
3571
3666
|
const columns = columnDimensions.map((dim)=>({
|
3572
3667
|
dimensionKey: dim.id,
|
3573
3668
|
title: dim.alias || dim.id
|
@@ -3840,6 +3935,17 @@ const registerLine = ()=>{
|
|
3840
3935
|
Builder._advancedPipelineMap.line = lineAdvancedPipeline;
|
3841
3936
|
Builder._specPipelineMap.line = lineSpecPipeline;
|
3842
3937
|
};
|
3938
|
+
const defaultEncodingForColumn = (advancedVSeed)=>{
|
3939
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
3940
|
+
const measures = findAllMeasures(vseedMeasures);
|
3941
|
+
const encoding = {};
|
3942
|
+
column_generateDefaultDimensionEncoding(dimensions, encoding);
|
3943
|
+
column_generateDefaultMeasureEncoding(measures, encoding);
|
3944
|
+
return {
|
3945
|
+
...advancedVSeed,
|
3946
|
+
encoding
|
3947
|
+
};
|
3948
|
+
};
|
3843
3949
|
const encodingForColumn = (advancedVSeed)=>{
|
3844
3950
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
3845
3951
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -3861,40 +3967,52 @@ const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
3861
3967
|
encoding.x = uniqueDimIds.slice(0, 1);
|
3862
3968
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
3863
3969
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
3864
|
-
encoding.tooltip = uniqueDimIds;
|
3970
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
3865
3971
|
encoding.label = [];
|
3866
3972
|
encoding.row = [];
|
3867
3973
|
encoding.column = [];
|
3868
3974
|
};
|
3869
3975
|
const column_generateDimensionEncoding = (dimensions, encoding)=>{
|
3870
3976
|
encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
3871
|
-
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
3872
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
3873
3977
|
if (0 === encoding.x.length) encoding.x = [
|
3874
3978
|
dimensions[0].id
|
3875
3979
|
];
|
3980
|
+
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
3876
3981
|
if (0 === encoding.color.length) encoding.color = [
|
3877
3982
|
MeasureName
|
3878
3983
|
];
|
3984
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
3985
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
3986
|
+
MeasureName
|
3987
|
+
];
|
3988
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
3989
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
3879
3990
|
};
|
3880
3991
|
const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
3881
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
3882
3992
|
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
3883
3993
|
};
|
3884
3994
|
const column_generateMeasureEncoding = (measures, encoding)=>{
|
3885
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
3886
3995
|
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
3887
3996
|
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
3888
3997
|
if (color.length > 0) encoding.color = color;
|
3889
|
-
|
3998
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
3999
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
4000
|
+
...encoding.tooltip || [],
|
4001
|
+
...tooltip
|
4002
|
+
]);
|
3890
4003
|
};
|
3891
4004
|
const columnAdvancedPipeline = [
|
3892
4005
|
initAdvancedVSeed_initAdvancedVSeed,
|
3893
|
-
|
3894
|
-
|
3895
|
-
|
3896
|
-
|
3897
|
-
|
4006
|
+
default_defaultMeasures_defaultMeasures,
|
4007
|
+
defaultDimensions_defaultDimensions,
|
4008
|
+
defaultMeasureName_defaultMeasureName,
|
4009
|
+
encodingAdapter([
|
4010
|
+
defaultEncodingForColumn,
|
4011
|
+
buildMeasures
|
4012
|
+
], [
|
4013
|
+
encodingForColumn,
|
4014
|
+
buildMeasures
|
4015
|
+
]),
|
3898
4016
|
pivotAdapter([
|
3899
4017
|
reshapeWithEncoding
|
3900
4018
|
], [
|
@@ -4091,7 +4209,7 @@ const annotationAreaBand = (spec, context)=>{
|
|
4091
4209
|
const dataset = advancedVSeed.dataset.flat();
|
4092
4210
|
const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
|
4093
4211
|
return {
|
4094
|
-
zIndex:
|
4212
|
+
zIndex: 1000,
|
4095
4213
|
regionRelative: true,
|
4096
4214
|
positions: (data, context)=>{
|
4097
4215
|
const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
|
@@ -4254,11 +4372,16 @@ const registerColumn = ()=>{
|
|
4254
4372
|
};
|
4255
4373
|
const columnParallelAdvancedPipeline = [
|
4256
4374
|
initAdvancedVSeed_initAdvancedVSeed,
|
4257
|
-
|
4258
|
-
|
4259
|
-
|
4260
|
-
|
4261
|
-
|
4375
|
+
default_defaultMeasures_defaultMeasures,
|
4376
|
+
defaultDimensions_defaultDimensions,
|
4377
|
+
defaultMeasureName_defaultMeasureName,
|
4378
|
+
encodingAdapter([
|
4379
|
+
defaultEncodingForColumn,
|
4380
|
+
buildMeasures
|
4381
|
+
], [
|
4382
|
+
encodingForColumn,
|
4383
|
+
buildMeasures
|
4384
|
+
]),
|
4262
4385
|
pivotAdapter([
|
4263
4386
|
reshapeWithEncoding
|
4264
4387
|
], [
|
@@ -4353,11 +4476,16 @@ const registerColumnParallel = ()=>{
|
|
4353
4476
|
};
|
4354
4477
|
const columnPercentAdvancedPipeline = [
|
4355
4478
|
initAdvancedVSeed_initAdvancedVSeed,
|
4356
|
-
|
4357
|
-
|
4358
|
-
|
4359
|
-
|
4360
|
-
|
4479
|
+
default_defaultMeasures_defaultMeasures,
|
4480
|
+
defaultDimensions_defaultDimensions,
|
4481
|
+
defaultMeasureName_defaultMeasureName,
|
4482
|
+
encodingAdapter([
|
4483
|
+
defaultEncodingForColumn,
|
4484
|
+
buildMeasures
|
4485
|
+
], [
|
4486
|
+
encodingForColumn,
|
4487
|
+
buildMeasures
|
4488
|
+
]),
|
4361
4489
|
pivotAdapter([
|
4362
4490
|
reshapeWithEncoding
|
4363
4491
|
], [
|
@@ -4434,6 +4562,17 @@ const registerColumnPercent = ()=>{
|
|
4434
4562
|
Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
|
4435
4563
|
Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
|
4436
4564
|
};
|
4565
|
+
const defaultEncodingForBar = (advancedVSeed)=>{
|
4566
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
4567
|
+
const measures = findAllMeasures(vseedMeasures);
|
4568
|
+
const encoding = {};
|
4569
|
+
bar_generateDefaultDimensionEncoding(dimensions, encoding);
|
4570
|
+
bar_generateDefaultMeasureEncoding(measures, encoding);
|
4571
|
+
return {
|
4572
|
+
...advancedVSeed,
|
4573
|
+
encoding
|
4574
|
+
};
|
4575
|
+
};
|
4437
4576
|
const encodingForBar = (advancedVSeed)=>{
|
4438
4577
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
4439
4578
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -4449,39 +4588,45 @@ const encodingForBar = (advancedVSeed)=>{
|
|
4449
4588
|
encoding
|
4450
4589
|
};
|
4451
4590
|
};
|
4452
|
-
const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
4453
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
4454
|
-
encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4455
|
-
};
|
4456
4591
|
const bar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
4457
4592
|
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
4458
4593
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
4459
4594
|
encoding.y = uniqueDimIds.slice(0, 1);
|
4460
4595
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
4461
4596
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
4462
|
-
encoding.tooltip = uniqueDimIds;
|
4597
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
4463
4598
|
encoding.label = [];
|
4464
4599
|
encoding.row = [];
|
4465
4600
|
encoding.column = [];
|
4466
4601
|
};
|
4467
|
-
const bar_generateMeasureEncoding = (measures, encoding)=>{
|
4468
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
4469
|
-
encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4470
|
-
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4471
|
-
if (color.length > 0) encoding.color = color;
|
4472
|
-
return encoding;
|
4473
|
-
};
|
4474
4602
|
const bar_generateDimensionEncoding = (dimensions, encoding)=>{
|
4475
4603
|
encoding.y = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
4476
|
-
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4477
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
4478
4604
|
if (0 === encoding.y.length) encoding.y = [
|
4479
4605
|
dimensions[0].id
|
4480
4606
|
];
|
4607
|
+
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4481
4608
|
if (0 === encoding.color.length) encoding.color = [
|
4482
4609
|
MeasureName
|
4483
4610
|
];
|
4484
|
-
|
4611
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
4612
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
4613
|
+
MeasureName
|
4614
|
+
];
|
4615
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
4616
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
4617
|
+
};
|
4618
|
+
const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
4619
|
+
encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4620
|
+
};
|
4621
|
+
const bar_generateMeasureEncoding = (measures, encoding)=>{
|
4622
|
+
encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
4623
|
+
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
4624
|
+
if (color.length > 0) encoding.color = color;
|
4625
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
4626
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
4627
|
+
...encoding.tooltip || [],
|
4628
|
+
...tooltip
|
4629
|
+
]);
|
4485
4630
|
};
|
4486
4631
|
const sortYBandAxis = (advancedVSeed, context)=>{
|
4487
4632
|
const result = {
|
@@ -4501,11 +4646,16 @@ const sortYBandAxis = (advancedVSeed, context)=>{
|
|
4501
4646
|
};
|
4502
4647
|
const barAdvancedPipeline = [
|
4503
4648
|
initAdvancedVSeed_initAdvancedVSeed,
|
4504
|
-
|
4505
|
-
|
4506
|
-
|
4507
|
-
|
4508
|
-
|
4649
|
+
default_defaultMeasures_defaultMeasures,
|
4650
|
+
defaultDimensions_defaultDimensions,
|
4651
|
+
defaultMeasureName_defaultMeasureName,
|
4652
|
+
encodingAdapter([
|
4653
|
+
defaultEncodingForBar,
|
4654
|
+
buildMeasures
|
4655
|
+
], [
|
4656
|
+
encodingForBar,
|
4657
|
+
buildMeasures
|
4658
|
+
]),
|
4509
4659
|
pivotAdapter([
|
4510
4660
|
reshapeWithEncoding
|
4511
4661
|
], [
|
@@ -4656,7 +4806,7 @@ const xLinear = (spec, context)=>{
|
|
4656
4806
|
}
|
4657
4807
|
},
|
4658
4808
|
innerOffset: {
|
4659
|
-
right:
|
4809
|
+
right: 7
|
4660
4810
|
}
|
4661
4811
|
};
|
4662
4812
|
result.axes = [
|
@@ -4856,11 +5006,16 @@ const registerBar = ()=>{
|
|
4856
5006
|
};
|
4857
5007
|
const barParallelAdvancedPipeline = [
|
4858
5008
|
initAdvancedVSeed_initAdvancedVSeed,
|
4859
|
-
|
4860
|
-
|
4861
|
-
|
4862
|
-
|
4863
|
-
|
5009
|
+
default_defaultMeasures_defaultMeasures,
|
5010
|
+
defaultDimensions_defaultDimensions,
|
5011
|
+
defaultMeasureName_defaultMeasureName,
|
5012
|
+
encodingAdapter([
|
5013
|
+
defaultEncodingForBar,
|
5014
|
+
buildMeasures
|
5015
|
+
], [
|
5016
|
+
encodingForBar,
|
5017
|
+
buildMeasures
|
5018
|
+
]),
|
4864
5019
|
pivotAdapter([
|
4865
5020
|
reshapeWithEncoding
|
4866
5021
|
], [
|
@@ -4954,11 +5109,16 @@ const registerBarParallel = ()=>{
|
|
4954
5109
|
};
|
4955
5110
|
const barPercentAdvancedPipeline = [
|
4956
5111
|
initAdvancedVSeed_initAdvancedVSeed,
|
4957
|
-
|
4958
|
-
|
4959
|
-
|
4960
|
-
|
4961
|
-
|
5112
|
+
default_defaultMeasures_defaultMeasures,
|
5113
|
+
defaultDimensions_defaultDimensions,
|
5114
|
+
defaultMeasureName_defaultMeasureName,
|
5115
|
+
encodingAdapter([
|
5116
|
+
defaultEncodingForBar,
|
5117
|
+
buildMeasures
|
5118
|
+
], [
|
5119
|
+
encodingForBar,
|
5120
|
+
buildMeasures
|
5121
|
+
]),
|
4962
5122
|
pivotAdapter([
|
4963
5123
|
reshapeWithEncoding
|
4964
5124
|
], [
|
@@ -5027,11 +5187,16 @@ const registerBarPercent = ()=>{
|
|
5027
5187
|
};
|
5028
5188
|
const areaAdvancedPipeline = [
|
5029
5189
|
initAdvancedVSeed_initAdvancedVSeed,
|
5030
|
-
|
5031
|
-
|
5032
|
-
|
5033
|
-
|
5034
|
-
|
5190
|
+
default_defaultMeasures_defaultMeasures,
|
5191
|
+
defaultDimensions_defaultDimensions,
|
5192
|
+
defaultMeasureName_defaultMeasureName,
|
5193
|
+
encodingAdapter([
|
5194
|
+
defaultEncodingForLine,
|
5195
|
+
buildMeasures
|
5196
|
+
], [
|
5197
|
+
encodingForLine,
|
5198
|
+
buildMeasures
|
5199
|
+
]),
|
5035
5200
|
pivotAdapter([
|
5036
5201
|
reshapeWithEncoding
|
5037
5202
|
], [
|
@@ -5187,11 +5352,16 @@ const registerArea = ()=>{
|
|
5187
5352
|
};
|
5188
5353
|
const areaPercentAdvancedPipeline = [
|
5189
5354
|
initAdvancedVSeed_initAdvancedVSeed,
|
5190
|
-
|
5191
|
-
|
5192
|
-
|
5193
|
-
|
5194
|
-
|
5355
|
+
default_defaultMeasures_defaultMeasures,
|
5356
|
+
defaultDimensions_defaultDimensions,
|
5357
|
+
defaultMeasureName_defaultMeasureName,
|
5358
|
+
encodingAdapter([
|
5359
|
+
defaultEncodingForLine,
|
5360
|
+
buildMeasures
|
5361
|
+
], [
|
5362
|
+
encodingForLine,
|
5363
|
+
buildMeasures
|
5364
|
+
]),
|
5195
5365
|
pivotAdapter([
|
5196
5366
|
reshapeWithEncoding
|
5197
5367
|
], [
|
@@ -5265,6 +5435,17 @@ const registerAreaPercent = ()=>{
|
|
5265
5435
|
Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
|
5266
5436
|
Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
|
5267
5437
|
};
|
5438
|
+
const defaultEncodingForScatter = (advancedVSeed)=>{
|
5439
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
5440
|
+
const measures = findAllMeasures(vseedMeasures);
|
5441
|
+
const encoding = {};
|
5442
|
+
scatter_generateDefaultDimensionEncoding(dimensions, encoding);
|
5443
|
+
scatter_generateDefaultMeasureEncoding(measures, encoding);
|
5444
|
+
return {
|
5445
|
+
...advancedVSeed,
|
5446
|
+
encoding
|
5447
|
+
};
|
5448
|
+
};
|
5268
5449
|
const encodingForScatter = (advancedVSeed)=>{
|
5269
5450
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
5270
5451
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -5280,33 +5461,43 @@ const encodingForScatter = (advancedVSeed)=>{
|
|
5280
5461
|
encoding
|
5281
5462
|
};
|
5282
5463
|
};
|
5283
|
-
const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
5284
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
5285
|
-
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5286
|
-
};
|
5287
5464
|
const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
5288
5465
|
const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
|
5289
5466
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensionsWithoutMeasureName.map((d)=>d.id));
|
5290
5467
|
encoding.color = uniqueDimIds.slice(0);
|
5291
5468
|
encoding.detail = uniqueDimIds.slice(0);
|
5292
|
-
encoding.tooltip = uniqueDimIds;
|
5469
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
5293
5470
|
encoding.label = [];
|
5294
5471
|
encoding.row = [];
|
5295
5472
|
encoding.column = [];
|
5296
5473
|
};
|
5297
|
-
const scatter_generateMeasureEncoding = (measures, encoding)=>{
|
5298
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
5299
|
-
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5300
|
-
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5301
|
-
if (color.length > 0) encoding.color = color;
|
5302
|
-
};
|
5303
5474
|
const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
|
5304
5475
|
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5305
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5306
5476
|
if (0 === encoding.color.length) encoding.color = [
|
5307
5477
|
MeasureName
|
5308
5478
|
];
|
5309
|
-
|
5479
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5480
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
5481
|
+
MeasureName
|
5482
|
+
];
|
5483
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
5484
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
5485
|
+
};
|
5486
|
+
const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
5487
|
+
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5488
|
+
};
|
5489
|
+
const scatter_generateMeasureEncoding = (measures, encoding)=>{
|
5490
|
+
encoding.tooltip = measures.map((item)=>item.id);
|
5491
|
+
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5492
|
+
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5493
|
+
if (color.length > 0) encoding.color = [
|
5494
|
+
color[0]
|
5495
|
+
];
|
5496
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
5497
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
5498
|
+
...encoding.tooltip || [],
|
5499
|
+
...tooltip
|
5500
|
+
]);
|
5310
5501
|
};
|
5311
5502
|
const buildMeasuresForScatter = (advancedVSeed, context)=>{
|
5312
5503
|
const { vseed } = context;
|
@@ -5334,9 +5525,10 @@ const basicMeasuresToScatterMeasures = (basicMeasures)=>{
|
|
5334
5525
|
const isXAxis = encoding.includes('xAxis');
|
5335
5526
|
if (isYAxis) yMeasures.push(item);
|
5336
5527
|
else if (isXAxis) xMeasures.push(item);
|
5337
|
-
else if (0
|
5528
|
+
else if (0 !== index) yMeasures.push(item);
|
5338
5529
|
else xMeasures.push(item);
|
5339
5530
|
}
|
5531
|
+
if (0 === yMeasures.length && xMeasures.length > 0) yMeasures.push(xMeasures[0]);
|
5340
5532
|
return [
|
5341
5533
|
{
|
5342
5534
|
id: 'scatterMeasures',
|
@@ -5402,7 +5594,7 @@ const buildMeasuresForScatter_generateMeasuresByParentId = (measures)=>{
|
|
5402
5594
|
const isEmpty = !encoding.length;
|
5403
5595
|
if (isY) scatterChart.yMeasures.push(item);
|
5404
5596
|
else if (isX) scatterChart.xMeasures.push(item);
|
5405
|
-
else if (isEmpty) if (0
|
5597
|
+
else if (isEmpty) if (0 !== scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
|
5406
5598
|
else scatterChart.xMeasures.push(item);
|
5407
5599
|
});
|
5408
5600
|
return scatterMeasuresToMeasureTree(scatterMeasures);
|
@@ -5425,6 +5617,7 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5425
5617
|
if (xMeasures && xMeasures.children) {
|
5426
5618
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, (0, external_remeda_namespaceObject.uniqueBy)(dimensions, (d)=>d.id), (0, external_remeda_namespaceObject.uniqueBy)(xMeasures.children, (d)=>d.id), encoding, {
|
5427
5619
|
foldMeasureValue: FoldXMeasureValue,
|
5620
|
+
foldMeasureId: FoldXMeasureId,
|
5428
5621
|
colorItemAsId: true,
|
5429
5622
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5430
5623
|
});
|
@@ -5435,6 +5628,7 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5435
5628
|
if (yMeasures && yMeasures.children) {
|
5436
5629
|
const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], (0, external_remeda_namespaceObject.uniqueBy)(dimensions, (d)=>d.id), (0, external_remeda_namespaceObject.uniqueBy)(yMeasures.children, (d)=>d.id), encoding, {
|
5437
5630
|
foldMeasureValue: FoldYMeasureValue,
|
5631
|
+
foldMeasureId: FoldYMeasureId,
|
5438
5632
|
colorItemAsId: true,
|
5439
5633
|
colorMeasureId: getColorMeasureId(advancedVSeed)
|
5440
5634
|
});
|
@@ -5537,11 +5731,16 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
|
|
5537
5731
|
};
|
5538
5732
|
const scatterAdvancedPipeline = [
|
5539
5733
|
initAdvancedVSeed_initAdvancedVSeed,
|
5540
|
-
|
5541
|
-
|
5542
|
-
|
5543
|
-
|
5544
|
-
|
5734
|
+
default_defaultMeasures_defaultMeasures,
|
5735
|
+
defaultDimensions_defaultDimensions,
|
5736
|
+
defaultMeasureName_defaultMeasureName,
|
5737
|
+
encodingAdapter([
|
5738
|
+
defaultEncodingForScatter,
|
5739
|
+
buildMeasuresForScatter
|
5740
|
+
], [
|
5741
|
+
encodingForScatter,
|
5742
|
+
buildMeasuresForScatter
|
5743
|
+
]),
|
5545
5744
|
pivotAdapter([
|
5546
5745
|
reshapeWithScatterEncoding
|
5547
5746
|
], [
|
@@ -5587,6 +5786,105 @@ const datasetScatter = (spec, context)=>{
|
|
5587
5786
|
}
|
5588
5787
|
};
|
5589
5788
|
};
|
5789
|
+
const tooltipScatter = (spec, context)=>{
|
5790
|
+
const result = {
|
5791
|
+
...spec
|
5792
|
+
};
|
5793
|
+
const { advancedVSeed } = context;
|
5794
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
5795
|
+
const baseConfig = advancedVSeed.config[chartType];
|
5796
|
+
const { tooltip = {
|
5797
|
+
enable: true
|
5798
|
+
} } = baseConfig;
|
5799
|
+
const { enable } = tooltip;
|
5800
|
+
const { foldInfoList } = datasetReshapeInfo[0];
|
5801
|
+
result.tooltip = {
|
5802
|
+
visible: enable,
|
5803
|
+
mark: {
|
5804
|
+
title: {
|
5805
|
+
visible: false
|
5806
|
+
},
|
5807
|
+
content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList)
|
5808
|
+
},
|
5809
|
+
dimension: {
|
5810
|
+
visible: false
|
5811
|
+
}
|
5812
|
+
};
|
5813
|
+
return result;
|
5814
|
+
};
|
5815
|
+
const tooltipScatter_createMarkContent = (tooltip, dimensions, measures, locale, foldInfoList)=>{
|
5816
|
+
const dims = dimensions.filter((item)=>tooltip.includes(item.id));
|
5817
|
+
const meas = measures.filter((item)=>tooltip.includes(item.id));
|
5818
|
+
const dimContent = dims.map((item)=>({
|
5819
|
+
visible: true,
|
5820
|
+
hasShape: true,
|
5821
|
+
shapeType: 'rectRound',
|
5822
|
+
key: (v)=>{
|
5823
|
+
const datum = v;
|
5824
|
+
if (item.alias || item.id) return item.alias || item.id;
|
5825
|
+
return datum && datum[item.id];
|
5826
|
+
},
|
5827
|
+
value: (v)=>{
|
5828
|
+
const datum = v;
|
5829
|
+
return datum && datum[item.id];
|
5830
|
+
}
|
5831
|
+
}));
|
5832
|
+
const meaContent = meas.map((item)=>({
|
5833
|
+
visible: true,
|
5834
|
+
hasShape: true,
|
5835
|
+
shapeType: 'rectRound',
|
5836
|
+
key: item.alias || item.id,
|
5837
|
+
value: (v)=>{
|
5838
|
+
const datum = v;
|
5839
|
+
if (!datum) return '';
|
5840
|
+
const id = item.id;
|
5841
|
+
if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
|
5842
|
+
const originalData = datum[ORIGINAL_DATA];
|
5843
|
+
const value = originalData[id];
|
5844
|
+
const measure = findMeasureById(measures, id);
|
5845
|
+
if (!measure) return String(value);
|
5846
|
+
const { format = {}, autoFormat = true } = measure;
|
5847
|
+
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
5848
|
+
const formatter = createFormatter(format);
|
5849
|
+
return formatter(value);
|
5850
|
+
}
|
5851
|
+
if (autoFormat) return autoFormatter(value, locale);
|
5852
|
+
return String(value);
|
5853
|
+
}
|
5854
|
+
}));
|
5855
|
+
const foldMeaContent = foldInfoList.map((foldInfo)=>({
|
5856
|
+
visible: true,
|
5857
|
+
hasShape: true,
|
5858
|
+
shapeType: 'rectRound',
|
5859
|
+
key: (v)=>{
|
5860
|
+
const { measureId, foldMap } = foldInfo;
|
5861
|
+
const datum = v;
|
5862
|
+
const id = datum[measureId];
|
5863
|
+
return foldMap[id] || id;
|
5864
|
+
},
|
5865
|
+
value: (v)=>{
|
5866
|
+
const { measureId, measureValue } = foldInfo;
|
5867
|
+
const datum = v;
|
5868
|
+
if (!datum) return '';
|
5869
|
+
const value = datum[measureValue];
|
5870
|
+
const id = datum[measureId];
|
5871
|
+
const measure = findMeasureById(measures, id);
|
5872
|
+
if (!measure) return String(value);
|
5873
|
+
const { format = {}, autoFormat = true } = measure;
|
5874
|
+
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
5875
|
+
const formatter = createFormatter(format);
|
5876
|
+
return formatter(value);
|
5877
|
+
}
|
5878
|
+
if (autoFormat) return autoFormatter(value, locale);
|
5879
|
+
return String(value);
|
5880
|
+
}
|
5881
|
+
}));
|
5882
|
+
return [
|
5883
|
+
...dimContent,
|
5884
|
+
...foldMeaContent,
|
5885
|
+
...meaContent
|
5886
|
+
];
|
5887
|
+
};
|
5590
5888
|
const horizontalCrosshairLine = (spec, context)=>{
|
5591
5889
|
const result = {
|
5592
5890
|
...spec
|
@@ -5640,7 +5938,7 @@ const scatter = [
|
|
5640
5938
|
xLinear,
|
5641
5939
|
yLinear,
|
5642
5940
|
label_label,
|
5643
|
-
|
5941
|
+
tooltipScatter,
|
5644
5942
|
colorAdapter(discreteLegend, colorLegend),
|
5645
5943
|
verticalCrosshairLine,
|
5646
5944
|
horizontalCrosshairLine,
|
@@ -5665,7 +5963,7 @@ const pivotScatter = [
|
|
5665
5963
|
xLinear,
|
5666
5964
|
yLinear,
|
5667
5965
|
label_label,
|
5668
|
-
|
5966
|
+
tooltipScatter,
|
5669
5967
|
verticalCrosshairLine,
|
5670
5968
|
horizontalCrosshairLine,
|
5671
5969
|
colorPointStyleFill(pointStyle_pointStyle),
|
@@ -5686,6 +5984,17 @@ const registerScatter = ()=>{
|
|
5686
5984
|
Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
|
5687
5985
|
Builder._specPipelineMap.scatter = scatterSpecPipeline;
|
5688
5986
|
};
|
5987
|
+
const defaultEncodingForDualAxis = (advancedVSeed)=>{
|
5988
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
5989
|
+
const measures = findAllMeasures(vseedMeasures);
|
5990
|
+
const encoding = {};
|
5991
|
+
dualAxis_generateDefaultDimensionEncoding(dimensions, encoding);
|
5992
|
+
dualAxis_generateDefaultMeasureEncoding(measures, encoding);
|
5993
|
+
return {
|
5994
|
+
...advancedVSeed,
|
5995
|
+
encoding
|
5996
|
+
};
|
5997
|
+
};
|
5689
5998
|
const encodingForDualAxis = (advancedVSeed)=>{
|
5690
5999
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
5691
6000
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -5701,39 +6010,45 @@ const encodingForDualAxis = (advancedVSeed)=>{
|
|
5701
6010
|
encoding
|
5702
6011
|
};
|
5703
6012
|
};
|
5704
|
-
const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
5705
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
5706
|
-
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5707
|
-
};
|
5708
6013
|
const dualAxis_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
5709
6014
|
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
5710
6015
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
5711
6016
|
encoding.x = uniqueDimIds.slice(0, 1);
|
5712
6017
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
5713
6018
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
5714
|
-
encoding.tooltip = uniqueDimIds;
|
6019
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
5715
6020
|
encoding.label = [];
|
5716
6021
|
encoding.row = [];
|
5717
6022
|
encoding.column = [];
|
5718
6023
|
};
|
5719
|
-
const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
|
5720
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
5721
|
-
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
5722
|
-
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5723
|
-
if (color.length > 0) encoding.color = color;
|
5724
|
-
return encoding;
|
5725
|
-
};
|
5726
6024
|
const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
|
5727
6025
|
encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
5728
|
-
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5729
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
5730
6026
|
if (0 === encoding.x.length) encoding.x = [
|
5731
6027
|
dimensions[0].id
|
5732
6028
|
];
|
6029
|
+
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
5733
6030
|
if (0 === encoding.color.length) encoding.color = [
|
5734
6031
|
MeasureName
|
5735
6032
|
];
|
5736
|
-
|
6033
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
6034
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
6035
|
+
MeasureName
|
6036
|
+
];
|
6037
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
6038
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
6039
|
+
};
|
6040
|
+
const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
6041
|
+
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
6042
|
+
};
|
6043
|
+
const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
|
6044
|
+
encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
|
6045
|
+
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
6046
|
+
if (color.length > 0) encoding.color = color;
|
6047
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
6048
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
6049
|
+
...encoding.tooltip || [],
|
6050
|
+
...tooltip
|
6051
|
+
]);
|
5737
6052
|
};
|
5738
6053
|
const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
|
5739
6054
|
const { vseed } = context;
|
@@ -5987,11 +6302,16 @@ const dualAxisConfig = (advancedVSeed, context)=>{
|
|
5987
6302
|
};
|
5988
6303
|
const dualAxisAdvancedPipeline = [
|
5989
6304
|
initAdvancedVSeed_initAdvancedVSeed,
|
5990
|
-
|
5991
|
-
|
5992
|
-
|
5993
|
-
|
5994
|
-
|
6305
|
+
default_defaultMeasures_defaultMeasures,
|
6306
|
+
defaultDimensions_defaultDimensions,
|
6307
|
+
defaultMeasureName_defaultMeasureName,
|
6308
|
+
encodingAdapter([
|
6309
|
+
defaultEncodingForDualAxis,
|
6310
|
+
buildMeasuresForDualAxis
|
6311
|
+
], [
|
6312
|
+
encodingForDualAxis,
|
6313
|
+
buildMeasuresForDualAxis
|
6314
|
+
]),
|
5995
6315
|
pivotAdapter([
|
5996
6316
|
reshapeWithDualEncoding
|
5997
6317
|
], [
|
@@ -6083,7 +6403,7 @@ const initDualAxisSecondary = (spec, context)=>{
|
|
6083
6403
|
const dualChartTypePrimary = (spec, context)=>{
|
6084
6404
|
const result = {
|
6085
6405
|
...spec,
|
6086
|
-
zIndex:
|
6406
|
+
zIndex: 1001
|
6087
6407
|
};
|
6088
6408
|
const { advancedVSeed, vseed } = context;
|
6089
6409
|
const { chartType } = vseed;
|
@@ -6103,7 +6423,7 @@ const dualChartTypePrimary = (spec, context)=>{
|
|
6103
6423
|
break;
|
6104
6424
|
case 'column':
|
6105
6425
|
result.type = 'bar';
|
6106
|
-
result.zIndex =
|
6426
|
+
result.zIndex = 1000;
|
6107
6427
|
break;
|
6108
6428
|
case 'columnParallel':
|
6109
6429
|
{
|
@@ -6114,7 +6434,7 @@ const dualChartTypePrimary = (spec, context)=>{
|
|
6114
6434
|
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
6115
6435
|
];
|
6116
6436
|
columnSpec.type = 'bar';
|
6117
|
-
result.zIndex =
|
6437
|
+
result.zIndex = 1000;
|
6118
6438
|
break;
|
6119
6439
|
}
|
6120
6440
|
case 'columnPercent':
|
@@ -6139,7 +6459,7 @@ const dualChartTypePrimary = (spec, context)=>{
|
|
6139
6459
|
const dualChartTypeSecondary = (spec, context)=>{
|
6140
6460
|
const result = {
|
6141
6461
|
...spec,
|
6142
|
-
zIndex:
|
6462
|
+
zIndex: 1001
|
6143
6463
|
};
|
6144
6464
|
const { advancedVSeed, vseed } = context;
|
6145
6465
|
const { chartType } = vseed;
|
@@ -6159,7 +6479,7 @@ const dualChartTypeSecondary = (spec, context)=>{
|
|
6159
6479
|
break;
|
6160
6480
|
case 'column':
|
6161
6481
|
result.type = 'bar';
|
6162
|
-
result.zIndex =
|
6482
|
+
result.zIndex = 1000;
|
6163
6483
|
break;
|
6164
6484
|
case 'columnParallel':
|
6165
6485
|
{
|
@@ -6170,7 +6490,7 @@ const dualChartTypeSecondary = (spec, context)=>{
|
|
6170
6490
|
datasetReshapeInfo[0].unfoldInfo.encodingDetail
|
6171
6491
|
];
|
6172
6492
|
columnSpec.type = 'bar';
|
6173
|
-
result.zIndex =
|
6493
|
+
result.zIndex = 1000;
|
6174
6494
|
break;
|
6175
6495
|
}
|
6176
6496
|
case 'columnPercent':
|
@@ -6348,7 +6668,7 @@ const tooltipPrimary = (spec, context)=>{
|
|
6348
6668
|
...spec
|
6349
6669
|
};
|
6350
6670
|
const { advancedVSeed } = context;
|
6351
|
-
const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
|
6671
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
6352
6672
|
const baseConfig = advancedVSeed.config[chartType];
|
6353
6673
|
const { tooltip = {
|
6354
6674
|
enable: true
|
@@ -6356,68 +6676,19 @@ const tooltipPrimary = (spec, context)=>{
|
|
6356
6676
|
const { enable } = tooltip;
|
6357
6677
|
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
6358
6678
|
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
6359
|
-
const { measureId, measureValue, measureName } = foldInfoList[0];
|
6360
|
-
const { encodingColor: colorName } = unfoldInfo;
|
6361
6679
|
result.tooltip = {
|
6362
6680
|
visible: enable,
|
6363
6681
|
mark: {
|
6364
6682
|
title: {
|
6365
|
-
visible:
|
6683
|
+
visible: false
|
6366
6684
|
},
|
6367
|
-
content: [
|
6368
|
-
...dimensions.map((item)=>({
|
6369
|
-
visible: true,
|
6370
|
-
hasShape: true,
|
6371
|
-
shapeType: 'rectRound',
|
6372
|
-
key: (datum)=>{
|
6373
|
-
if (item.alias || item.id) return item.alias || item.id;
|
6374
|
-
return datum && datum[item.id];
|
6375
|
-
},
|
6376
|
-
value: (datum)=>datum && datum[item.id]
|
6377
|
-
})),
|
6378
|
-
{
|
6379
|
-
visible: true,
|
6380
|
-
hasShape: true,
|
6381
|
-
key: (datum)=>datum && datum[measureName || colorName] || '',
|
6382
|
-
value: (datum)=>{
|
6383
|
-
if (!datum) return '';
|
6384
|
-
const value = datum[measureValue];
|
6385
|
-
const id = datum[measureId];
|
6386
|
-
const measure = findMeasureById(measures, id);
|
6387
|
-
if (!measure) return String(value);
|
6388
|
-
const { format = {}, autoFormat = true } = measure;
|
6389
|
-
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
6390
|
-
const formatter = createFormatter(format);
|
6391
|
-
return formatter(value);
|
6392
|
-
}
|
6393
|
-
if (autoFormat) return autoFormatter(value, locale);
|
6394
|
-
return String(value);
|
6395
|
-
}
|
6396
|
-
}
|
6397
|
-
]
|
6685
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList[0], unfoldInfo)
|
6398
6686
|
},
|
6399
6687
|
dimension: {
|
6400
|
-
|
6401
|
-
|
6402
|
-
|
6403
|
-
|
6404
|
-
value: (datum)=>{
|
6405
|
-
if (!datum) return '';
|
6406
|
-
const value = datum[measureValue];
|
6407
|
-
const id = datum[measureId];
|
6408
|
-
const measure = findMeasureById(measures, id);
|
6409
|
-
if (!measure) return String(value);
|
6410
|
-
const { format = {}, autoFormat = true } = measure;
|
6411
|
-
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
6412
|
-
const formatter = createFormatter(format);
|
6413
|
-
return formatter(value);
|
6414
|
-
}
|
6415
|
-
if (autoFormat) return autoFormatter(value, locale);
|
6416
|
-
return String(value);
|
6417
|
-
},
|
6418
|
-
shapeType: 'rectRound'
|
6419
|
-
}
|
6420
|
-
]
|
6688
|
+
title: {
|
6689
|
+
visible: true
|
6690
|
+
},
|
6691
|
+
content: createDimensionContent(measures, foldInfoList[0], unfoldInfo, locale)
|
6421
6692
|
}
|
6422
6693
|
};
|
6423
6694
|
return result;
|
@@ -6427,7 +6698,7 @@ const tooltipSecondary = (spec, context)=>{
|
|
6427
6698
|
...spec
|
6428
6699
|
};
|
6429
6700
|
const { advancedVSeed } = context;
|
6430
|
-
const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
|
6701
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
6431
6702
|
const baseConfig = advancedVSeed.config[chartType];
|
6432
6703
|
const { tooltip = {
|
6433
6704
|
enable: true
|
@@ -6436,68 +6707,19 @@ const tooltipSecondary = (spec, context)=>{
|
|
6436
6707
|
if ((0, external_remeda_namespaceObject.isNullish)(datasetReshapeInfo[0].foldInfoList?.[1])) return result;
|
6437
6708
|
const foldInfoList = datasetReshapeInfo[0].foldInfoList;
|
6438
6709
|
const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
|
6439
|
-
const { measureId, measureValue, measureName } = foldInfoList[1];
|
6440
|
-
const { encodingColorId } = unfoldInfo;
|
6441
6710
|
result.tooltip = {
|
6442
6711
|
visible: enable,
|
6443
6712
|
mark: {
|
6444
6713
|
title: {
|
6445
|
-
visible:
|
6714
|
+
visible: false
|
6446
6715
|
},
|
6447
|
-
content: [
|
6448
|
-
...dimensions.map((item)=>({
|
6449
|
-
visible: true,
|
6450
|
-
hasShape: true,
|
6451
|
-
shapeType: 'rectRound',
|
6452
|
-
key: (datum)=>{
|
6453
|
-
if (item.alias || item.id) return item.alias || item.id;
|
6454
|
-
return datum && datum[item.id];
|
6455
|
-
},
|
6456
|
-
value: (datum)=>datum && datum[item.id]
|
6457
|
-
})),
|
6458
|
-
{
|
6459
|
-
visible: true,
|
6460
|
-
hasShape: true,
|
6461
|
-
key: (datum)=>datum && datum[measureName || encodingColorId] || '',
|
6462
|
-
value: (datum)=>{
|
6463
|
-
if (!datum) return '';
|
6464
|
-
const value = datum[measureValue];
|
6465
|
-
const id = datum[measureId];
|
6466
|
-
const measure = findMeasureById(measures, id);
|
6467
|
-
if (!measure) return String(value);
|
6468
|
-
const { format = {}, autoFormat = true } = measure;
|
6469
|
-
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
6470
|
-
const formatter = createFormatter(format);
|
6471
|
-
return formatter(value);
|
6472
|
-
}
|
6473
|
-
if (autoFormat) return autoFormatter(value, locale);
|
6474
|
-
return String(value);
|
6475
|
-
}
|
6476
|
-
}
|
6477
|
-
]
|
6716
|
+
content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList[1], unfoldInfo)
|
6478
6717
|
},
|
6479
6718
|
dimension: {
|
6480
|
-
|
6481
|
-
|
6482
|
-
|
6483
|
-
|
6484
|
-
value: (datum)=>{
|
6485
|
-
if (!datum) return '';
|
6486
|
-
const value = datum[measureValue];
|
6487
|
-
const id = datum[measureId];
|
6488
|
-
const measure = findMeasureById(measures, id);
|
6489
|
-
if (!measure) return String(value);
|
6490
|
-
const { format = {}, autoFormat = true } = measure;
|
6491
|
-
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
6492
|
-
const formatter = createFormatter(format);
|
6493
|
-
return formatter(value);
|
6494
|
-
}
|
6495
|
-
if (autoFormat) return autoFormatter(value, locale);
|
6496
|
-
return String(value);
|
6497
|
-
},
|
6498
|
-
shapeType: 'rectRound'
|
6499
|
-
}
|
6500
|
-
]
|
6719
|
+
title: {
|
6720
|
+
visible: true
|
6721
|
+
},
|
6722
|
+
content: createDimensionContent(measures, foldInfoList[1], unfoldInfo, locale)
|
6501
6723
|
}
|
6502
6724
|
};
|
6503
6725
|
return result;
|
@@ -6514,7 +6736,8 @@ const yLinearPrimary = (spec, context)=>{
|
|
6514
6736
|
const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis;
|
6515
6737
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
6516
6738
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
6517
|
-
if (
|
6739
|
+
if ((0, external_remeda_namespaceObject.isNullish)(foldInfoList?.[0])) return result;
|
6740
|
+
const isEmptySecondary = (0, external_remeda_namespaceObject.isEmpty)(foldInfoList?.[0].foldMap);
|
6518
6741
|
const id = `${reshapeInfoId}-primary-axis`;
|
6519
6742
|
const seriesIds = [
|
6520
6743
|
`${reshapeInfoId}-primary-series`,
|
@@ -6537,7 +6760,7 @@ const yLinearPrimary = (spec, context)=>{
|
|
6537
6760
|
}
|
6538
6761
|
const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
|
6539
6762
|
const linearAxis = {
|
6540
|
-
visible,
|
6763
|
+
visible: isEmptySecondary ? false : visible,
|
6541
6764
|
id,
|
6542
6765
|
seriesId,
|
6543
6766
|
type: log ? 'log' : 'linear',
|
@@ -6590,7 +6813,7 @@ const yLinearPrimary = (spec, context)=>{
|
|
6590
6813
|
}
|
6591
6814
|
},
|
6592
6815
|
innerOffset: {
|
6593
|
-
top:
|
6816
|
+
top: 7
|
6594
6817
|
}
|
6595
6818
|
};
|
6596
6819
|
result.axes = [
|
@@ -6612,6 +6835,8 @@ const yLinearSecondary = (spec, context)=>{
|
|
6612
6835
|
const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
|
6613
6836
|
const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
|
6614
6837
|
if ((0, external_remeda_namespaceObject.isNullish)(foldInfoList?.[1])) return result;
|
6838
|
+
const isEmptySecondary = (0, external_remeda_namespaceObject.isEmpty)(foldInfoList?.[1].foldMap);
|
6839
|
+
const onlySecondary = (0, external_remeda_namespaceObject.isEmpty)(foldInfoList?.[0].foldMap) && !isEmptySecondary;
|
6615
6840
|
const sync = {
|
6616
6841
|
axisId: `${reshapeInfoId}-primary-axis`,
|
6617
6842
|
zeroAlign: true
|
@@ -6639,7 +6864,7 @@ const yLinearSecondary = (spec, context)=>{
|
|
6639
6864
|
}
|
6640
6865
|
const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
|
6641
6866
|
const linearAxis = {
|
6642
|
-
visible,
|
6867
|
+
visible: isEmptySecondary ? false : visible,
|
6643
6868
|
id,
|
6644
6869
|
seriesId,
|
6645
6870
|
sync,
|
@@ -6679,7 +6904,7 @@ const yLinearSecondary = (spec, context)=>{
|
|
6679
6904
|
}
|
6680
6905
|
},
|
6681
6906
|
grid: {
|
6682
|
-
visible: grid?.visible,
|
6907
|
+
visible: onlySecondary ? true : grid?.visible,
|
6683
6908
|
style: {
|
6684
6909
|
lineWidth: grid?.gridWidth,
|
6685
6910
|
stroke: grid?.gridColor
|
@@ -6693,7 +6918,7 @@ const yLinearSecondary = (spec, context)=>{
|
|
6693
6918
|
}
|
6694
6919
|
},
|
6695
6920
|
innerOffset: {
|
6696
|
-
top:
|
6921
|
+
top: 7
|
6697
6922
|
}
|
6698
6923
|
};
|
6699
6924
|
result.axes = [
|
@@ -6824,6 +7049,17 @@ const registerDualAxis = ()=>{
|
|
6824
7049
|
Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
|
6825
7050
|
Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
|
6826
7051
|
};
|
7052
|
+
const defaultEncodingForPie = (advancedVSeed)=>{
|
7053
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7054
|
+
const measures = findAllMeasures(vseedMeasures);
|
7055
|
+
const encoding = {};
|
7056
|
+
pie_generateDefaultDimensionEncoding(dimensions, encoding);
|
7057
|
+
pie_generateDefaultMeasureEncoding(measures, encoding);
|
7058
|
+
return {
|
7059
|
+
...advancedVSeed,
|
7060
|
+
encoding
|
7061
|
+
};
|
7062
|
+
};
|
6827
7063
|
const encodingForPie = (advancedVSeed)=>{
|
6828
7064
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
6829
7065
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -6839,40 +7075,52 @@ const encodingForPie = (advancedVSeed)=>{
|
|
6839
7075
|
encoding
|
6840
7076
|
};
|
6841
7077
|
};
|
6842
|
-
const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
6843
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
6844
|
-
encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
6845
|
-
};
|
6846
7078
|
const pie_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
6847
7079
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
6848
7080
|
encoding.color = uniqueDimIds.slice(0);
|
6849
7081
|
encoding.detail = uniqueDimIds.slice(0);
|
6850
|
-
encoding.tooltip = uniqueDimIds;
|
7082
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
6851
7083
|
encoding.label = [];
|
6852
7084
|
encoding.row = [];
|
6853
7085
|
encoding.column = [];
|
6854
7086
|
};
|
6855
|
-
const pie_generateMeasureEncoding = (measures, encoding)=>{
|
6856
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
6857
|
-
encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
6858
|
-
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
6859
|
-
if (color.length > 0) encoding.color = color;
|
6860
|
-
};
|
6861
7087
|
const pie_generateDimensionEncoding = (dimensions, encoding)=>{
|
6862
7088
|
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
6863
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
6864
7089
|
if (0 === encoding.color.length) encoding.color = [
|
6865
7090
|
MeasureName
|
6866
7091
|
];
|
6867
|
-
|
7092
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7093
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
7094
|
+
MeasureName
|
7095
|
+
];
|
7096
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
7097
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
7098
|
+
};
|
7099
|
+
const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7100
|
+
encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
7101
|
+
};
|
7102
|
+
const pie_generateMeasureEncoding = (measures, encoding)=>{
|
7103
|
+
encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
|
7104
|
+
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7105
|
+
if (color.length > 0) encoding.color = color;
|
7106
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
7107
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
7108
|
+
...encoding.tooltip || [],
|
7109
|
+
...tooltip
|
7110
|
+
]);
|
6868
7111
|
};
|
6869
7112
|
const pieAdvancedPipeline = [
|
6870
7113
|
initAdvancedVSeed_initAdvancedVSeed,
|
6871
|
-
|
6872
|
-
|
6873
|
-
|
6874
|
-
|
6875
|
-
|
7114
|
+
default_defaultMeasures_defaultMeasures,
|
7115
|
+
defaultDimensions_defaultDimensions,
|
7116
|
+
defaultMeasureName_defaultMeasureName,
|
7117
|
+
encodingAdapter([
|
7118
|
+
defaultEncodingForPie,
|
7119
|
+
buildMeasures
|
7120
|
+
], [
|
7121
|
+
encodingForPie,
|
7122
|
+
buildMeasures
|
7123
|
+
]),
|
6876
7124
|
pivotAdapter([
|
6877
7125
|
reshapeWithEncoding
|
6878
7126
|
], [
|
@@ -6988,11 +7236,16 @@ const registerPie = ()=>{
|
|
6988
7236
|
};
|
6989
7237
|
const donutAdvancedPipeline = [
|
6990
7238
|
initAdvancedVSeed_initAdvancedVSeed,
|
6991
|
-
|
6992
|
-
|
6993
|
-
|
6994
|
-
|
6995
|
-
|
7239
|
+
default_defaultMeasures_defaultMeasures,
|
7240
|
+
defaultDimensions_defaultDimensions,
|
7241
|
+
defaultMeasureName_defaultMeasureName,
|
7242
|
+
encodingAdapter([
|
7243
|
+
defaultEncodingForPie,
|
7244
|
+
buildMeasures
|
7245
|
+
], [
|
7246
|
+
encodingForPie,
|
7247
|
+
buildMeasures
|
7248
|
+
]),
|
6996
7249
|
pivotAdapter([
|
6997
7250
|
reshapeWithEncoding
|
6998
7251
|
], [
|
@@ -7068,6 +7321,17 @@ const registerDonut = ()=>{
|
|
7068
7321
|
Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
|
7069
7322
|
Builder._specPipelineMap.donut = donutSpecPipeline;
|
7070
7323
|
};
|
7324
|
+
const defaultEncodingForRose = (advancedVSeed)=>{
|
7325
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7326
|
+
const measures = findAllMeasures(vseedMeasures);
|
7327
|
+
const encoding = {};
|
7328
|
+
rose_generateDefaultDimensionEncoding(dimensions, encoding);
|
7329
|
+
rose_generateDefaultMeasureEncoding(measures, encoding);
|
7330
|
+
return {
|
7331
|
+
...advancedVSeed,
|
7332
|
+
encoding
|
7333
|
+
};
|
7334
|
+
};
|
7071
7335
|
const encodingForRose = (advancedVSeed)=>{
|
7072
7336
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7073
7337
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -7083,46 +7347,58 @@ const encodingForRose = (advancedVSeed)=>{
|
|
7083
7347
|
encoding
|
7084
7348
|
};
|
7085
7349
|
};
|
7086
|
-
const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7087
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
7088
|
-
encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7089
|
-
};
|
7090
7350
|
const rose_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7091
7351
|
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
7092
7352
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
7093
7353
|
encoding.angle = uniqueDimIds.slice(0, 1);
|
7094
7354
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7095
7355
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7096
|
-
encoding.tooltip = uniqueDimIds;
|
7356
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
7097
7357
|
encoding.label = [];
|
7098
7358
|
encoding.row = [];
|
7099
7359
|
encoding.column = [];
|
7100
7360
|
};
|
7101
|
-
const rose_generateMeasureEncoding = (measures, encoding)=>{
|
7102
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
7103
|
-
encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7104
|
-
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7105
|
-
if (color.length > 0) encoding.color = color;
|
7106
|
-
};
|
7107
7361
|
const rose_generateDimensionEncoding = (dimensions, encoding)=>{
|
7108
7362
|
encoding.angle = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
|
7109
|
-
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7110
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7111
7363
|
if (0 === encoding.angle.length) encoding.angle = [
|
7112
7364
|
dimensions[0].id
|
7113
7365
|
];
|
7366
|
+
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7114
7367
|
if (0 === encoding.color.length) encoding.color = [
|
7115
7368
|
MeasureName
|
7116
7369
|
];
|
7117
|
-
|
7370
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7371
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
7372
|
+
MeasureName
|
7373
|
+
];
|
7374
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
7375
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
7376
|
+
};
|
7377
|
+
const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7378
|
+
encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7379
|
+
};
|
7380
|
+
const rose_generateMeasureEncoding = (measures, encoding)=>{
|
7381
|
+
encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7382
|
+
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7383
|
+
if (color.length > 0) encoding.color = color;
|
7384
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
7385
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
7386
|
+
...encoding.tooltip || [],
|
7387
|
+
...tooltip
|
7388
|
+
]);
|
7118
7389
|
};
|
7119
7390
|
const roseAdvancedPipeline = [
|
7120
7391
|
initAdvancedVSeed_initAdvancedVSeed,
|
7121
|
-
|
7122
|
-
|
7123
|
-
|
7124
|
-
|
7125
|
-
|
7392
|
+
default_defaultMeasures_defaultMeasures,
|
7393
|
+
defaultDimensions_defaultDimensions,
|
7394
|
+
defaultMeasureName_defaultMeasureName,
|
7395
|
+
encodingAdapter([
|
7396
|
+
defaultEncodingForRose,
|
7397
|
+
buildMeasures
|
7398
|
+
], [
|
7399
|
+
encodingForRose,
|
7400
|
+
buildMeasures
|
7401
|
+
]),
|
7126
7402
|
pivotAdapter([
|
7127
7403
|
reshapeWithEncoding
|
7128
7404
|
], [
|
@@ -7318,11 +7594,16 @@ const registerRose = ()=>{
|
|
7318
7594
|
};
|
7319
7595
|
const roseParallelAdvancedPipeline = [
|
7320
7596
|
initAdvancedVSeed_initAdvancedVSeed,
|
7321
|
-
|
7322
|
-
|
7323
|
-
|
7324
|
-
|
7325
|
-
|
7597
|
+
default_defaultMeasures_defaultMeasures,
|
7598
|
+
defaultDimensions_defaultDimensions,
|
7599
|
+
defaultMeasureName_defaultMeasureName,
|
7600
|
+
encodingAdapter([
|
7601
|
+
defaultEncodingForRose,
|
7602
|
+
buildMeasures
|
7603
|
+
], [
|
7604
|
+
encodingForRose,
|
7605
|
+
buildMeasures
|
7606
|
+
]),
|
7326
7607
|
pivotAdapter([
|
7327
7608
|
reshapeWithEncoding
|
7328
7609
|
], [
|
@@ -7428,6 +7709,17 @@ const registerRoseParallel = ()=>{
|
|
7428
7709
|
Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
|
7429
7710
|
Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
|
7430
7711
|
};
|
7712
|
+
const defaultEncodingForRadar = (advancedVSeed)=>{
|
7713
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7714
|
+
const measures = findAllMeasures(vseedMeasures);
|
7715
|
+
const encoding = {};
|
7716
|
+
radar_generateDefaultDimensionEncoding(dimensions, encoding);
|
7717
|
+
radar_generateDefaultMeasureEncoding(measures, encoding);
|
7718
|
+
return {
|
7719
|
+
...advancedVSeed,
|
7720
|
+
encoding
|
7721
|
+
};
|
7722
|
+
};
|
7431
7723
|
const encodingForRadar = (advancedVSeed)=>{
|
7432
7724
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7433
7725
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -7443,44 +7735,57 @@ const encodingForRadar = (advancedVSeed)=>{
|
|
7443
7735
|
encoding
|
7444
7736
|
};
|
7445
7737
|
};
|
7446
|
-
const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7447
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
7448
|
-
encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7449
|
-
};
|
7450
7738
|
const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7451
7739
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
7452
7740
|
encoding.angle = uniqueDimIds.slice(0, 1);
|
7453
7741
|
encoding.color = uniqueDimIds.slice(1);
|
7454
|
-
encoding.tooltip = uniqueDimIds;
|
7742
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
7455
7743
|
encoding.detail = [];
|
7456
7744
|
encoding.label = [];
|
7457
7745
|
encoding.row = [];
|
7458
7746
|
encoding.column = [];
|
7459
7747
|
};
|
7460
|
-
const radar_generateMeasureEncoding = (measures, encoding)=>{
|
7461
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
7462
|
-
encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7463
|
-
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7464
|
-
if (color.length > 0) encoding.color = color;
|
7465
|
-
};
|
7466
7748
|
const radar_generateDimensionEncoding = (dimensions, encoding)=>{
|
7467
7749
|
encoding.angle = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
|
7468
|
-
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7469
|
-
encoding.detail = [];
|
7470
7750
|
if (0 === encoding.angle.length) encoding.angle = [
|
7471
7751
|
dimensions[0].id
|
7472
7752
|
];
|
7753
|
+
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7473
7754
|
if (0 === encoding.color.length) encoding.color = [
|
7474
7755
|
MeasureName
|
7475
7756
|
];
|
7757
|
+
encoding.detail = [];
|
7758
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
7759
|
+
MeasureName
|
7760
|
+
];
|
7761
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
7762
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
7763
|
+
};
|
7764
|
+
const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7765
|
+
encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7766
|
+
};
|
7767
|
+
const radar_generateMeasureEncoding = (measures, encoding)=>{
|
7768
|
+
encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
|
7769
|
+
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7770
|
+
if (color.length > 0) encoding.color = color;
|
7771
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
7772
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
7773
|
+
...encoding.tooltip || [],
|
7774
|
+
...tooltip
|
7775
|
+
]);
|
7476
7776
|
};
|
7477
7777
|
const radarAdvancedPipeline = [
|
7478
7778
|
initAdvancedVSeed_initAdvancedVSeed,
|
7479
|
-
|
7480
|
-
|
7481
|
-
|
7482
|
-
|
7483
|
-
|
7779
|
+
default_defaultMeasures_defaultMeasures,
|
7780
|
+
defaultDimensions_defaultDimensions,
|
7781
|
+
defaultMeasureName_defaultMeasureName,
|
7782
|
+
encodingAdapter([
|
7783
|
+
defaultEncodingForRadar,
|
7784
|
+
buildMeasures
|
7785
|
+
], [
|
7786
|
+
encodingForRadar,
|
7787
|
+
buildMeasures
|
7788
|
+
]),
|
7484
7789
|
pivotAdapter([
|
7485
7790
|
reshapeWithEncoding
|
7486
7791
|
], [
|
@@ -7614,6 +7919,17 @@ const registerRadar = ()=>{
|
|
7614
7919
|
Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
|
7615
7920
|
Builder._specPipelineMap.radar = radarSpecPipeline;
|
7616
7921
|
};
|
7922
|
+
const defaultEncodingForFunnel = (advancedVSeed)=>{
|
7923
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7924
|
+
const measures = findAllMeasures(vseedMeasures);
|
7925
|
+
const encoding = {};
|
7926
|
+
funnel_generateDefaultDimensionEncoding(dimensions, encoding);
|
7927
|
+
funnel_generateDefaultMeasureEncoding(measures, encoding);
|
7928
|
+
return {
|
7929
|
+
...advancedVSeed,
|
7930
|
+
encoding
|
7931
|
+
};
|
7932
|
+
};
|
7617
7933
|
const encodingForFunnel = (advancedVSeed)=>{
|
7618
7934
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7619
7935
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -7629,40 +7945,54 @@ const encodingForFunnel = (advancedVSeed)=>{
|
|
7629
7945
|
encoding
|
7630
7946
|
};
|
7631
7947
|
};
|
7632
|
-
const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7633
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
7634
|
-
encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
7635
|
-
};
|
7636
7948
|
const funnel_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7637
7949
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
7638
7950
|
encoding.color = uniqueDimIds.slice(0);
|
7639
7951
|
encoding.detail = uniqueDimIds.slice(0);
|
7640
|
-
encoding.tooltip = uniqueDimIds;
|
7952
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
7641
7953
|
encoding.label = [];
|
7642
7954
|
encoding.row = [];
|
7643
7955
|
encoding.column = [];
|
7644
7956
|
};
|
7645
|
-
const funnel_generateMeasureEncoding = (measures, encoding)=>{
|
7646
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
7647
|
-
encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
7648
|
-
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7649
|
-
if (color.length > 0) encoding.color = color;
|
7650
|
-
};
|
7651
7957
|
const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
|
7652
7958
|
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7653
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7654
7959
|
if (0 === encoding.color.length) encoding.color = [
|
7655
7960
|
MeasureName
|
7656
7961
|
];
|
7657
|
-
|
7962
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7963
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
7964
|
+
MeasureName
|
7965
|
+
];
|
7966
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
7967
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
7968
|
+
};
|
7969
|
+
const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7970
|
+
encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
7971
|
+
};
|
7972
|
+
const funnel_generateMeasureEncoding = (measures, encoding)=>{
|
7973
|
+
encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
|
7974
|
+
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7975
|
+
if (color.length > 0) encoding.color = [
|
7976
|
+
color[0]
|
7977
|
+
];
|
7978
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
7979
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
7980
|
+
...encoding.tooltip || [],
|
7981
|
+
...tooltip
|
7982
|
+
]);
|
7658
7983
|
};
|
7659
7984
|
const funnelAdvancedPipeline = [
|
7660
7985
|
initAdvancedVSeed_initAdvancedVSeed,
|
7661
|
-
|
7662
|
-
|
7663
|
-
|
7664
|
-
|
7665
|
-
|
7986
|
+
default_defaultMeasures_defaultMeasures,
|
7987
|
+
defaultDimensions_defaultDimensions,
|
7988
|
+
defaultMeasureName_defaultMeasureName,
|
7989
|
+
encodingAdapter([
|
7990
|
+
defaultEncodingForFunnel,
|
7991
|
+
buildMeasures
|
7992
|
+
], [
|
7993
|
+
encodingForFunnel,
|
7994
|
+
buildMeasures
|
7995
|
+
]),
|
7666
7996
|
pivotAdapter([
|
7667
7997
|
reshapeWithEncoding
|
7668
7998
|
], [
|
@@ -7775,6 +8105,17 @@ const registerFunnel = ()=>{
|
|
7775
8105
|
Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
|
7776
8106
|
Builder._specPipelineMap.funnel = funnelSpecPipeline;
|
7777
8107
|
};
|
8108
|
+
const defaultEncodingForHeatmap = (advancedVSeed)=>{
|
8109
|
+
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
8110
|
+
const measures = findAllMeasures(vseedMeasures);
|
8111
|
+
const encoding = {};
|
8112
|
+
heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
|
8113
|
+
heatmap_generateDefaultMeasureEncoding(measures, encoding);
|
8114
|
+
return {
|
8115
|
+
...advancedVSeed,
|
8116
|
+
encoding
|
8117
|
+
};
|
8118
|
+
};
|
7778
8119
|
const encodingForHeatmap = (advancedVSeed)=>{
|
7779
8120
|
const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
|
7780
8121
|
const measures = findAllMeasures(vseedMeasures);
|
@@ -7790,10 +8131,6 @@ const encodingForHeatmap = (advancedVSeed)=>{
|
|
7790
8131
|
encoding
|
7791
8132
|
};
|
7792
8133
|
};
|
7793
|
-
const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
7794
|
-
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
|
7795
|
-
encoding.color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
|
7796
|
-
};
|
7797
8134
|
const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
7798
8135
|
const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
|
7799
8136
|
const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
|
@@ -7801,39 +8138,59 @@ const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
|
|
7801
8138
|
encoding.y = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7802
8139
|
encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7803
8140
|
encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
|
7804
|
-
encoding.tooltip = uniqueDimIds;
|
8141
|
+
encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
|
7805
8142
|
encoding.label = [];
|
7806
8143
|
encoding.row = [];
|
7807
8144
|
encoding.column = [];
|
7808
8145
|
};
|
7809
|
-
const heatmap_generateMeasureEncoding = (measures, encoding)=>{
|
7810
|
-
encoding.tooltip = measures.map((item)=>item.id);
|
7811
|
-
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7812
|
-
if (color.length > 0) encoding.color = color;
|
7813
|
-
return encoding;
|
7814
|
-
};
|
7815
8146
|
const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
|
7816
8147
|
encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
|
7817
|
-
encoding.y = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
7818
|
-
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7819
|
-
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
7820
8148
|
if (0 === encoding.x.length) encoding.x = [
|
7821
8149
|
dimensions[0].id
|
7822
8150
|
];
|
8151
|
+
encoding.y = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
|
7823
8152
|
if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
|
7824
8153
|
else encoding.y = dimensions.slice(0).map((item)=>item.id);
|
8154
|
+
encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
7825
8155
|
if (0 === encoding.color.length) encoding.color = [
|
7826
8156
|
MeasureName
|
7827
8157
|
];
|
7828
|
-
|
8158
|
+
encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
|
8159
|
+
if (0 === encoding.detail.length) encoding.detail = [
|
8160
|
+
MeasureName
|
8161
|
+
];
|
8162
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
|
8163
|
+
encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
|
8164
|
+
};
|
8165
|
+
const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
|
8166
|
+
const colorDims = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
|
8167
|
+
if (colorDims.length > 0) encoding.color = [
|
8168
|
+
colorDims[0]
|
8169
|
+
];
|
8170
|
+
};
|
8171
|
+
const heatmap_generateMeasureEncoding = (measures, encoding)=>{
|
8172
|
+
const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
|
8173
|
+
if (color.length > 0) encoding.color = [
|
8174
|
+
color[0]
|
8175
|
+
];
|
8176
|
+
const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
|
8177
|
+
encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
|
8178
|
+
...encoding.tooltip || [],
|
8179
|
+
...tooltip
|
8180
|
+
]);
|
7829
8181
|
};
|
7830
8182
|
const heatmapAdvancedPipeline = [
|
7831
8183
|
initAdvancedVSeed_initAdvancedVSeed,
|
7832
|
-
|
7833
|
-
|
7834
|
-
|
7835
|
-
|
7836
|
-
|
8184
|
+
default_defaultMeasures_defaultMeasures,
|
8185
|
+
defaultDimensions_defaultDimensions,
|
8186
|
+
defaultMeasureName_defaultMeasureName,
|
8187
|
+
encodingAdapter([
|
8188
|
+
defaultEncodingForHeatmap,
|
8189
|
+
buildMeasures
|
8190
|
+
], [
|
8191
|
+
encodingForHeatmap,
|
8192
|
+
buildMeasures
|
8193
|
+
]),
|
7837
8194
|
pivotAdapter([
|
7838
8195
|
reshapeWithEncoding
|
7839
8196
|
], [
|
@@ -7886,6 +8243,107 @@ const cellStyle = (spec)=>{
|
|
7886
8243
|
}
|
7887
8244
|
};
|
7888
8245
|
};
|
8246
|
+
const tooltipHeatmap = (spec, context)=>{
|
8247
|
+
const result = {
|
8248
|
+
...spec
|
8249
|
+
};
|
8250
|
+
const { advancedVSeed } = context;
|
8251
|
+
const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
|
8252
|
+
const baseConfig = advancedVSeed.config[chartType];
|
8253
|
+
const { tooltip = {
|
8254
|
+
enable: true
|
8255
|
+
} } = baseConfig;
|
8256
|
+
const { enable } = tooltip;
|
8257
|
+
const { foldInfo } = datasetReshapeInfo[0];
|
8258
|
+
result.tooltip = {
|
8259
|
+
visible: enable,
|
8260
|
+
mark: {
|
8261
|
+
title: {
|
8262
|
+
visible: false
|
8263
|
+
},
|
8264
|
+
content: tooltipHeatmap_createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfo)
|
8265
|
+
},
|
8266
|
+
dimension: {
|
8267
|
+
visible: false
|
8268
|
+
}
|
8269
|
+
};
|
8270
|
+
return result;
|
8271
|
+
};
|
8272
|
+
const tooltipHeatmap_createMarkContent = (tooltip, dimensions, measures, locale, foldInfo)=>{
|
8273
|
+
const dims = dimensions.filter((item)=>tooltip.includes(item.id));
|
8274
|
+
const meas = measures.filter((item)=>tooltip.includes(item.id));
|
8275
|
+
const dimContent = dims.map((item)=>({
|
8276
|
+
visible: true,
|
8277
|
+
hasShape: true,
|
8278
|
+
shapeType: 'rectRound',
|
8279
|
+
key: (v)=>{
|
8280
|
+
const datum = v;
|
8281
|
+
if (item.alias || item.id) return item.alias || item.id;
|
8282
|
+
return datum && datum[item.id];
|
8283
|
+
},
|
8284
|
+
value: (v)=>{
|
8285
|
+
const datum = v;
|
8286
|
+
return datum && datum[item.id];
|
8287
|
+
}
|
8288
|
+
}));
|
8289
|
+
const meaContent = meas.map((item)=>({
|
8290
|
+
visible: true,
|
8291
|
+
hasShape: true,
|
8292
|
+
shapeType: 'rectRound',
|
8293
|
+
key: item.alias || item.id,
|
8294
|
+
value: (v)=>{
|
8295
|
+
const datum = v;
|
8296
|
+
if (!datum) return '';
|
8297
|
+
const id = item.id;
|
8298
|
+
if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
|
8299
|
+
const originalData = datum[ORIGINAL_DATA];
|
8300
|
+
const value = originalData[id];
|
8301
|
+
const measure = findMeasureById(measures, id);
|
8302
|
+
if (!measure) return String(value);
|
8303
|
+
const { format = {}, autoFormat = true } = measure;
|
8304
|
+
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
8305
|
+
const formatter = createFormatter(format);
|
8306
|
+
return formatter(value);
|
8307
|
+
}
|
8308
|
+
if (autoFormat) return autoFormatter(value, locale);
|
8309
|
+
return String(value);
|
8310
|
+
}
|
8311
|
+
}));
|
8312
|
+
const foldMeaContent = [
|
8313
|
+
foldInfo
|
8314
|
+
].map((foldInfo)=>({
|
8315
|
+
visible: true,
|
8316
|
+
hasShape: true,
|
8317
|
+
shapeType: 'rectRound',
|
8318
|
+
key: (v)=>{
|
8319
|
+
const { measureId, foldMap } = foldInfo;
|
8320
|
+
const datum = v;
|
8321
|
+
const id = datum[measureId];
|
8322
|
+
return foldMap[id] || id;
|
8323
|
+
},
|
8324
|
+
value: (v)=>{
|
8325
|
+
const { measureId, measureValue } = foldInfo;
|
8326
|
+
const datum = v;
|
8327
|
+
if (!datum) return '';
|
8328
|
+
const value = datum[measureValue];
|
8329
|
+
const id = datum[measureId];
|
8330
|
+
const measure = findMeasureById(measures, id);
|
8331
|
+
if (!measure) return String(value);
|
8332
|
+
const { format = {}, autoFormat = true } = measure;
|
8333
|
+
if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
|
8334
|
+
const formatter = createFormatter(format);
|
8335
|
+
return formatter(value);
|
8336
|
+
}
|
8337
|
+
if (autoFormat) return autoFormatter(value, locale);
|
8338
|
+
return String(value);
|
8339
|
+
}
|
8340
|
+
}));
|
8341
|
+
return [
|
8342
|
+
...dimContent,
|
8343
|
+
...foldMeaContent,
|
8344
|
+
...meaContent
|
8345
|
+
];
|
8346
|
+
};
|
7889
8347
|
const initHeatmap = (spec, context)=>{
|
7890
8348
|
const result = {
|
7891
8349
|
...spec
|
@@ -7929,7 +8387,7 @@ const heatmap = [
|
|
7929
8387
|
labelColorInversion,
|
7930
8388
|
colorAdapter(discreteLegend, colorLegend),
|
7931
8389
|
colorCellStyleFill(cellStyle),
|
7932
|
-
|
8390
|
+
tooltipHeatmap,
|
7933
8391
|
annotationPoint_annotationPoint,
|
7934
8392
|
annotationVerticalLine_annotationVerticalLine,
|
7935
8393
|
annotationHorizontalLine_annotationHorizontalLine,
|
@@ -7948,7 +8406,7 @@ const pivotHeatmap = [
|
|
7948
8406
|
label_label,
|
7949
8407
|
labelColorInversion,
|
7950
8408
|
discreteLegend,
|
7951
|
-
|
8409
|
+
tooltipHeatmap,
|
7952
8410
|
colorCellStyleFill(cellStyle),
|
7953
8411
|
annotationPoint_annotationPoint,
|
7954
8412
|
annotationVerticalLine_annotationVerticalLine,
|
@@ -8627,6 +9085,15 @@ const updateAdvanced = (chartType, advancedPipe)=>{
|
|
8627
9085
|
const updateSpec = (chartType, specPipe)=>{
|
8628
9086
|
Builder._customSpecPipe[chartType] = specPipe;
|
8629
9087
|
};
|
9088
|
+
const findAllDimensions = (dimensions = [])=>{
|
9089
|
+
if (!dimensions) return [];
|
9090
|
+
const result = [];
|
9091
|
+
preorderTraverse(dimensions, (node)=>{
|
9092
|
+
if (!('children' in node)) result.push(node);
|
9093
|
+
return false;
|
9094
|
+
});
|
9095
|
+
return result;
|
9096
|
+
};
|
8630
9097
|
const external_zod_namespaceObject = require("zod");
|
8631
9098
|
const zChartType = external_zod_namespaceObject.z["enum"]([
|
8632
9099
|
'table',
|
@@ -8671,11 +9138,6 @@ const zDataset = external_zod_namespaceObject.z.array(zDatum);
|
|
8671
9138
|
const zDimension = external_zod_namespaceObject.z.object({
|
8672
9139
|
id: external_zod_namespaceObject.z.string(),
|
8673
9140
|
alias: external_zod_namespaceObject.z.string().optional(),
|
8674
|
-
location: external_zod_namespaceObject.z["enum"]([
|
8675
|
-
'dimension',
|
8676
|
-
'rowDimension',
|
8677
|
-
'columnDimension'
|
8678
|
-
]).default('dimension'),
|
8679
9141
|
encoding: external_zod_namespaceObject.z["enum"]([
|
8680
9142
|
'xAxis',
|
8681
9143
|
'yAxis',
|
@@ -9968,7 +10430,9 @@ exports.FoldMeasureName = __webpack_exports__.FoldMeasureName;
|
|
9968
10430
|
exports.FoldMeasureValue = __webpack_exports__.FoldMeasureValue;
|
9969
10431
|
exports.FoldPrimaryMeasureValue = __webpack_exports__.FoldPrimaryMeasureValue;
|
9970
10432
|
exports.FoldSecondaryMeasureValue = __webpack_exports__.FoldSecondaryMeasureValue;
|
10433
|
+
exports.FoldXMeasureId = __webpack_exports__.FoldXMeasureId;
|
9971
10434
|
exports.FoldXMeasureValue = __webpack_exports__.FoldXMeasureValue;
|
10435
|
+
exports.FoldYMeasureId = __webpack_exports__.FoldYMeasureId;
|
9972
10436
|
exports.FoldYMeasureValue = __webpack_exports__.FoldYMeasureValue;
|
9973
10437
|
exports.MeasureName = __webpack_exports__.MeasureName;
|
9974
10438
|
exports.ORIGINAL_DATA = __webpack_exports__.ORIGINAL_DATA;
|
@@ -10178,7 +10642,9 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
10178
10642
|
"FoldMeasureValue",
|
10179
10643
|
"FoldPrimaryMeasureValue",
|
10180
10644
|
"FoldSecondaryMeasureValue",
|
10645
|
+
"FoldXMeasureId",
|
10181
10646
|
"FoldXMeasureValue",
|
10647
|
+
"FoldYMeasureId",
|
10182
10648
|
"FoldYMeasureValue",
|
10183
10649
|
"MeasureName",
|
10184
10650
|
"ORIGINAL_DATA",
|