@visactor/vseed 0.1.5 → 0.1.7

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.
Files changed (84) hide show
  1. package/dist/builder/builder/builder.d.ts +2 -4
  2. package/dist/index.cjs +574 -498
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.js +574 -498
  5. package/dist/index.js.map +1 -1
  6. package/dist/pipeline/advanced/chart/pipes/{init/autoDimensions.d.ts → default/defaultDimensions.d.ts} +1 -1
  7. package/dist/pipeline/advanced/{table/pipes/init/autoMeasures.d.ts → chart/pipes/default/defaultMeasureName.d.ts} +1 -1
  8. package/dist/pipeline/advanced/chart/pipes/default/defaultMeasures.d.ts +5 -0
  9. package/dist/pipeline/advanced/chart/pipes/default/index.d.ts +3 -0
  10. package/dist/pipeline/advanced/chart/pipes/encoding/bar.d.ts +19 -0
  11. package/dist/pipeline/advanced/chart/pipes/encoding/column.d.ts +19 -0
  12. package/dist/pipeline/advanced/chart/pipes/encoding/dualAxis.d.ts +19 -0
  13. package/dist/pipeline/advanced/chart/pipes/encoding/funnel.d.ts +17 -0
  14. package/dist/pipeline/advanced/chart/pipes/encoding/heatmap.d.ts +19 -0
  15. package/dist/pipeline/advanced/chart/pipes/encoding/line.d.ts +18 -0
  16. package/dist/pipeline/advanced/chart/pipes/encoding/pie.d.ts +18 -0
  17. package/dist/pipeline/advanced/chart/pipes/encoding/radar.d.ts +19 -0
  18. package/dist/pipeline/advanced/chart/pipes/encoding/rose.d.ts +19 -0
  19. package/dist/pipeline/advanced/chart/pipes/encoding/scatter.d.ts +18 -0
  20. package/dist/pipeline/advanced/chart/pipes/index.d.ts +1 -0
  21. package/dist/pipeline/advanced/chart/pipes/init/index.d.ts +0 -2
  22. package/dist/pipeline/advanced/chart/pipes/measures/utils.d.ts +3 -18
  23. package/dist/pipeline/advanced/table/pipes/{init/autoPivotMeasures.d.ts → default/defaultDimensions.d.ts} +1 -1
  24. package/dist/pipeline/advanced/table/pipes/default/defaultMeasureName.d.ts +2 -0
  25. package/dist/pipeline/advanced/table/pipes/default/defaultMeasures.d.ts +5 -0
  26. package/dist/pipeline/advanced/table/pipes/default/index.d.ts +3 -0
  27. package/dist/pipeline/advanced/table/pipes/encoding/index.d.ts +1 -0
  28. package/dist/pipeline/advanced/table/pipes/encoding/pivotTable.d.ts +2 -0
  29. package/dist/pipeline/advanced/table/pipes/index.d.ts +3 -0
  30. package/dist/pipeline/advanced/table/pipes/init/index.d.ts +0 -3
  31. package/dist/pipeline/advanced/table/pipes/reshape/index.d.ts +1 -0
  32. package/dist/pipeline/advanced/table/pipes/{init/autoDimensions.d.ts → reshape/reshapePivotTable.d.ts} +1 -1
  33. package/dist/types/advancedVSeed.d.ts +2 -5
  34. package/dist/types/chartType/area/area.d.ts +19 -3
  35. package/dist/types/chartType/area/zArea.d.ts +2 -5
  36. package/dist/types/chartType/areaPercent/areaPercent.d.ts +15 -1
  37. package/dist/types/chartType/areaPercent/zAreaPercent.d.ts +2 -5
  38. package/dist/types/chartType/bar/bar.d.ts +17 -1
  39. package/dist/types/chartType/bar/zBar.d.ts +2 -5
  40. package/dist/types/chartType/barParallel/barParallel.d.ts +17 -1
  41. package/dist/types/chartType/barParallel/zBarParallel.d.ts +2 -5
  42. package/dist/types/chartType/barPercent/barPercent.d.ts +17 -1
  43. package/dist/types/chartType/barPercent/zBarPercent.d.ts +2 -5
  44. package/dist/types/chartType/column/column.d.ts +17 -1
  45. package/dist/types/chartType/column/zColumn.d.ts +2 -5
  46. package/dist/types/chartType/columnParallel/columnParallel.d.ts +17 -1
  47. package/dist/types/chartType/columnParallel/zColumnParallel.d.ts +2 -5
  48. package/dist/types/chartType/columnPercent/columnPercent.d.ts +17 -1
  49. package/dist/types/chartType/columnPercent/zColumnPercent.d.ts +2 -5
  50. package/dist/types/chartType/donut/donut.d.ts +16 -1
  51. package/dist/types/chartType/donut/zDonut.d.ts +2 -5
  52. package/dist/types/chartType/dualAxis/dualAxis.d.ts +17 -1
  53. package/dist/types/chartType/dualAxis/zDualAxis.d.ts +10 -5
  54. package/dist/types/chartType/funnel/funnel.d.ts +15 -1
  55. package/dist/types/chartType/funnel/zFunnel.d.ts +2 -5
  56. package/dist/types/chartType/heatmap/heatmap.d.ts +17 -1
  57. package/dist/types/chartType/heatmap/zHeatmap.d.ts +2 -5
  58. package/dist/types/chartType/line/line.d.ts +16 -4
  59. package/dist/types/chartType/line/zLine.d.ts +2 -5
  60. package/dist/types/chartType/pie/pie.d.ts +16 -1
  61. package/dist/types/chartType/pie/zPie.d.ts +2 -5
  62. package/dist/types/chartType/pivotTable/pivotTable.d.ts +10 -3
  63. package/dist/types/chartType/pivotTable/zPivotTable.d.ts +2 -5
  64. package/dist/types/chartType/radar/radar.d.ts +17 -1
  65. package/dist/types/chartType/radar/zRadar.d.ts +2 -5
  66. package/dist/types/chartType/rose/rose.d.ts +17 -1
  67. package/dist/types/chartType/rose/zRose.d.ts +2 -5
  68. package/dist/types/chartType/roseParallel/roseParallel.d.ts +17 -1
  69. package/dist/types/chartType/roseParallel/zRoseParallel.d.ts +2 -5
  70. package/dist/types/chartType/scatter/scatter.d.ts +16 -1
  71. package/dist/types/chartType/scatter/zScatter.d.ts +10 -5
  72. package/dist/types/chartType/table/table.d.ts +2 -0
  73. package/dist/types/chartType/table/zTable.d.ts +2 -5
  74. package/dist/types/properties/dimensions/dimensions.d.ts +0 -4
  75. package/dist/types/properties/dimensions/zDimensions.d.ts +0 -15
  76. package/dist/types/properties/measures/measures.d.ts +3 -1
  77. package/dist/types/properties/measures/zDualMeasures.d.ts +16 -0
  78. package/dist/types/properties/measures/zMeasures.d.ts +6 -0
  79. package/dist/types/properties/measures/zScatterMeasures.d.ts +16 -0
  80. package/dist/types/zVseed.d.ts +56 -100
  81. package/dist/umd/index.js +606 -530
  82. package/dist/umd/index.js.map +1 -1
  83. package/package.json +2 -2
  84. package/dist/pipeline/advanced/chart/pipes/init/utils.d.ts +0 -2
package/dist/index.cjs CHANGED
@@ -402,24 +402,24 @@ const initAdvancedVSeed = (advancedVSeed, context)=>{
402
402
  locale: locale || 'zh-CN'
403
403
  };
404
404
  };
405
- const autoMeasures = (advancedVSeed, context)=>{
406
- const result = {
407
- ...advancedVSeed
408
- };
405
+ const defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
409
406
  const { vseed } = context;
410
407
  const { measures, dataset } = vseed;
408
+ if (measures && measures.length > 0) return {
409
+ ...advancedVSeed,
410
+ measures
411
+ };
411
412
  if (!dataset) throw new Error('dataset is required');
412
- if (0 === dataset.length) return result;
413
- if (measures) {
414
- result.measures = measures;
415
- return result;
416
- }
413
+ if (0 === dataset.length) return {
414
+ ...advancedVSeed,
415
+ measures: []
416
+ };
417
417
  const top100dataset = dataset.slice(0, 100);
418
418
  const sample = top100dataset.reduce((prev, cur)=>({
419
419
  ...prev,
420
420
  ...cur
421
421
  }), {});
422
- result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
422
+ const defaultMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
423
423
  '',
424
424
  null,
425
425
  void 0
@@ -427,7 +427,10 @@ const autoMeasures = (advancedVSeed, context)=>{
427
427
  id: measure,
428
428
  alias: measure
429
429
  }));
430
- return result;
430
+ return {
431
+ ...advancedVSeed,
432
+ measures: defaultMeasures
433
+ };
431
434
  };
432
435
  const preorderTraverse = (tree, callback)=>{
433
436
  if (!tree || 0 === tree.length) return;
@@ -481,37 +484,36 @@ const findAllMeasures = (measures = [])=>{
481
484
  });
482
485
  return result;
483
486
  };
484
- const autoDimensions = (advancedVSeed, context)=>{
487
+ const defaultDimensions = (advancedVSeed, context)=>{
485
488
  const result = {
486
489
  ...advancedVSeed
487
490
  };
488
491
  const { vseed } = context;
489
492
  const { dimensions, dataset } = vseed;
490
- const measures = findAllMeasures(advancedVSeed.measures);
493
+ if (dimensions && dimensions.length > 0) return {
494
+ ...result,
495
+ dimensions
496
+ };
491
497
  if (!dataset) throw new Error('dataset is required');
492
498
  if (0 === dataset.length) return result;
493
- if (dimensions) {
494
- result.dimensions = dimensions.map((dim)=>({
495
- location: 'dimension',
496
- ...dim
497
- }));
498
- return result;
499
- }
499
+ const measures = findAllMeasures(advancedVSeed.measures);
500
500
  const top100dataset = dataset.slice(0, 100);
501
501
  const sample = top100dataset.reduce((prev, cur)=>({
502
502
  ...prev,
503
503
  ...cur
504
504
  }), {});
505
- result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
505
+ const newDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
506
506
  '',
507
507
  null,
508
508
  void 0
509
509
  ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
510
510
  id: dim,
511
- alias: dim,
512
- location: 'dimension'
511
+ alias: dim
513
512
  }));
514
- return result;
513
+ return {
514
+ ...result,
515
+ dimensions: newDimensions
516
+ };
515
517
  };
516
518
  const records_records = (advancedVSeed, context)=>{
517
519
  const { vseed } = context;
@@ -583,8 +585,8 @@ const mergeArray = (arr, themeItem)=>{
583
585
  };
584
586
  const tableAdvancedPipeline = [
585
587
  initAdvancedVSeed,
586
- autoMeasures,
587
- autoDimensions,
588
+ defaultMeasures_defaultMeasures,
589
+ defaultDimensions,
588
590
  records_records,
589
591
  tableConfig_tableConfig,
590
592
  theme_theme
@@ -805,9 +807,9 @@ const bodyStyle = (spec, context)=>{
805
807
  borderColor: borderColor,
806
808
  borderLineWidth: 1,
807
809
  padding: [
808
- 8.6,
810
+ 8,
809
811
  12,
810
- 8.6,
812
+ 8,
811
813
  12
812
814
  ],
813
815
  textAlign: 'right',
@@ -920,79 +922,156 @@ const registerTable = ()=>{
920
922
  Builder._advancedPipelineMap.table = tableAdvancedPipeline;
921
923
  Builder._specPipelineMap.table = tableSpecPipeline;
922
924
  };
923
- const autoPivotMeasures = (advancedVSeed, context)=>{
925
+ const ORIGINAL_DATA = '__OriginalData__';
926
+ const Separator = '-';
927
+ const FoldMeasureName = '__MeaName__';
928
+ const FoldMeasureId = '__MeaId__';
929
+ const FoldMeasureValue = '__MeaValue__';
930
+ const MeasureName = FoldMeasureName;
931
+ const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
932
+ const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
933
+ const FoldXMeasureValue = '__MeaXValue__';
934
+ const FoldYMeasureValue = '__MeaYValue__';
935
+ const XEncoding = '__Dim_X__';
936
+ const YEncoding = '__Dim_Y__';
937
+ const AngleEncoding = '__Dim_Angle__';
938
+ const DetailEncoding = '__Dim_Detail__';
939
+ const ColorEncoding = '__Dim_Color__';
940
+ const ColorIdEncoding = '__Dim_ColorId__';
941
+ const defaultMeasureName = (advancedVSeed)=>{
924
942
  const result = {
925
943
  ...advancedVSeed
926
944
  };
927
- const { vseed } = context;
928
- const { dataset } = vseed;
929
- const measures = findAllMeasures(vseed.measures);
930
- if (!dataset) throw new Error('dataset is required');
931
- if (0 === dataset.length) return result;
932
- if (vseed.measures) {
933
- result.measures = findAllMeasures(measures);
934
- return result;
935
- }
936
- const top100dataset = dataset.slice(0, 100);
937
- const sample = top100dataset.reduce((prev, cur)=>({
938
- ...prev,
939
- ...cur
940
- }), {});
941
- result.measures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
942
- '',
943
- null,
944
- void 0
945
- ].includes(key)).map((measure)=>({
946
- id: measure,
947
- alias: measure
948
- }));
945
+ const MeaName = {
946
+ id: MeasureName,
947
+ alias: intl.i18n`指标名称`
948
+ };
949
+ if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
949
950
  return result;
950
951
  };
951
- const findAllDimensions = (dimensions = [])=>{
952
- if (!dimensions) return [];
953
- const result = [];
954
- preorderTraverse(dimensions, (node)=>{
955
- if (!('children' in node)) result.push(node);
956
- return false;
952
+ const encodingForPivotTable = (advancedVSeed)=>{
953
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
954
+ const measures = findAllMeasures(vseedMeasures);
955
+ const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
956
+ const hasMeasureEncoding = measures.some((item)=>item.encoding);
957
+ const encoding = {};
958
+ if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding);
959
+ else generateDefaultDimensionEncoding(dimensions, encoding);
960
+ if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
961
+ else generateDefaultMeasureEncoding(measures, encoding);
962
+ return {
963
+ ...advancedVSeed,
964
+ encoding
965
+ };
966
+ };
967
+ const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
968
+ const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
969
+ encoding.tooltip = uniqueDimIds;
970
+ encoding.row = [];
971
+ encoding.column = [];
972
+ uniqueDimIds.forEach((item, index)=>{
973
+ if (index % 2 === 0) encoding.column.push(item);
974
+ else encoding.row.push(item);
975
+ });
976
+ };
977
+ const generateDimensionEncoding = (dimensions, encoding)=>{
978
+ const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
979
+ encoding.tooltip = uniqueDimIds;
980
+ encoding.row = [];
981
+ encoding.column = [];
982
+ dimensions.forEach((dim, index)=>{
983
+ const id = dim.id;
984
+ if ('row' === dim.encoding) encoding.row.push(id);
985
+ else if ('column' === dim.encoding) encoding.column.push(id);
986
+ else if (index % 2 === 0) encoding.column.push(id);
987
+ else encoding.row.push(id);
957
988
  });
958
- return result;
959
989
  };
960
- const autoPivotDimensions = (advancedVSeed, context)=>{
990
+ const generateDefaultMeasureEncoding = (measures, encoding)=>{
991
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
992
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'detail' === item.encoding || !item.encoding).map((item)=>item.id));
993
+ };
994
+ const generateMeasureEncoding = (measures, encoding)=>{
995
+ encoding.tooltip = measures.map((item)=>item.id);
996
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'detail' === item.encoding || !item.encoding).map((item)=>item.id));
997
+ };
998
+ const foldMeasures = (dataset, measures, options)=>{
999
+ const { measureId, measureName, measureValue, colorMeasureId } = options || {};
1000
+ const foldInfo = {
1001
+ measureId,
1002
+ measureName,
1003
+ measureValue,
1004
+ colorRange: [
1005
+ 0,
1006
+ 1
1007
+ ],
1008
+ measureRange: [
1009
+ 0,
1010
+ 1
1011
+ ],
1012
+ foldMap: {}
1013
+ };
1014
+ const result = new Array(dataset.length * measures.length);
1015
+ let index = 0;
1016
+ const ids = measures.map((d)=>d.id);
1017
+ for(let i = 0; i < dataset.length; i++)for(let j = 0; j < measures.length; j++){
1018
+ const datum = (0, external_remeda_namespaceObject.omit)({
1019
+ ...dataset[i]
1020
+ }, ids);
1021
+ datum[ORIGINAL_DATA] = dataset[i];
1022
+ const measure = measures[j];
1023
+ const { id, alias } = measure;
1024
+ datum[id] = dataset[i][id];
1025
+ datum[measureId] = id;
1026
+ datum[measureName] = alias || id;
1027
+ datum[measureValue] = dataset[i][id];
1028
+ if (colorMeasureId) {
1029
+ const value = datum[ORIGINAL_DATA][colorMeasureId];
1030
+ datum[ColorEncoding] = value;
1031
+ datum[ColorIdEncoding] = colorMeasureId;
1032
+ foldInfo.colorRange = [
1033
+ Math.min(foldInfo.colorRange[0] || 1 / 0, Number(value)),
1034
+ Math.max(foldInfo.colorRange[1] || -1 / 0, Number(value))
1035
+ ];
1036
+ }
1037
+ foldInfo.measureRange = [
1038
+ Math.min(foldInfo.measureRange[0] || 1 / 0, Number(datum[id])),
1039
+ Math.max(foldInfo.measureRange[1] || -1 / 0, Number(datum[id]))
1040
+ ];
1041
+ foldInfo.foldMap[id] = alias;
1042
+ result[index++] = datum;
1043
+ }
1044
+ return {
1045
+ dataset: result,
1046
+ foldInfo
1047
+ };
1048
+ };
1049
+ const reshapePivotTable = (advancedVSeed, context)=>{
961
1050
  const result = {
962
1051
  ...advancedVSeed
963
1052
  };
964
1053
  const { vseed } = context;
965
- const { dimensions, dataset } = vseed;
966
- const measures = findAllMeasures(advancedVSeed.measures);
967
- if (!dataset) throw new Error('dataset is required');
968
- if (0 === dataset.length) return result;
969
- if (dimensions) {
970
- const newDimensions = findAllDimensions(dimensions);
971
- result.dimensions = newDimensions.map((item, index)=>{
972
- if ('rowDimension' === item.location || 'columnDimension' === item.location) return item;
973
- return {
974
- ...item,
975
- location: index % 2 === 0 ? 'columnDimension' : 'rowDimension'
976
- };
977
- });
978
- return result;
979
- }
980
- const top100dataset = dataset.slice(0, 100);
981
- const sample = top100dataset.reduce((prev, cur)=>({
982
- ...prev,
983
- ...cur
984
- }), {});
985
- let i = 0;
986
- result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
987
- '',
988
- null,
989
- void 0
990
- ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
991
- id: dim,
992
- alias: dim,
993
- location: i++ % 2 === 0 ? 'columnDimension' : 'rowDimension'
994
- }));
995
- return result;
1054
+ const { dataset, chartType } = vseed;
1055
+ const { dimensions, measures } = advancedVSeed;
1056
+ const { dataset: newDatasets, foldInfo } = foldMeasures(dataset, findAllMeasures(measures), {
1057
+ measureId: FoldMeasureId,
1058
+ measureName: FoldMeasureName,
1059
+ measureValue: FoldMeasureValue
1060
+ });
1061
+ const datasetReshapeInfo = [
1062
+ {
1063
+ id: String(chartType),
1064
+ index: 0,
1065
+ foldInfo
1066
+ }
1067
+ ];
1068
+ return {
1069
+ ...result,
1070
+ dataset: newDatasets,
1071
+ datasetReshapeInfo: datasetReshapeInfo,
1072
+ dimensions,
1073
+ measures
1074
+ };
996
1075
  };
997
1076
  const pivotTableConfig = (advancedVSeed, context)=>{
998
1077
  const { vseed } = context;
@@ -1023,9 +1102,11 @@ const pivotTableConfig = (advancedVSeed, context)=>{
1023
1102
  };
1024
1103
  const pivotTableAdvancedPipeline = [
1025
1104
  initAdvancedVSeed,
1026
- autoPivotMeasures,
1027
- autoPivotDimensions,
1028
- records_records,
1105
+ defaultMeasures_defaultMeasures,
1106
+ defaultDimensions,
1107
+ defaultMeasureName,
1108
+ encodingForPivotTable,
1109
+ reshapePivotTable,
1029
1110
  pivotTableConfig,
1030
1111
  theme_theme
1031
1112
  ];
@@ -1071,8 +1152,9 @@ const initPivotTable = (spec, context)=>{
1071
1152
  };
1072
1153
  const pivotColumns = (spec, context)=>{
1073
1154
  const { advancedVSeed } = context;
1155
+ const { encoding } = advancedVSeed;
1074
1156
  const dimensions = advancedVSeed.dimensions;
1075
- const columns = dimensions.filter((item)=>'columnDimension' === item['location']);
1157
+ const columns = dimensions.filter((item)=>encoding.column?.includes(item.id));
1076
1158
  return {
1077
1159
  ...spec,
1078
1160
  columns: columns.map((item)=>({
@@ -1085,7 +1167,8 @@ const pivotColumns = (spec, context)=>{
1085
1167
  const pivotRows = (spec, context)=>{
1086
1168
  const { advancedVSeed } = context;
1087
1169
  const dimensions = advancedVSeed.dimensions;
1088
- const rows = dimensions.filter((item)=>'rowDimension' === item['location']);
1170
+ const { encoding } = advancedVSeed;
1171
+ const rows = dimensions.filter((item)=>encoding.row?.includes(item.id));
1089
1172
  return {
1090
1173
  ...spec,
1091
1174
  rows: rows.map((item)=>({
@@ -1097,25 +1180,32 @@ const pivotRows = (spec, context)=>{
1097
1180
  };
1098
1181
  const pivotIndicators = (spec, context)=>{
1099
1182
  const { advancedVSeed } = context;
1100
- const { locale } = advancedVSeed;
1101
- const measures = advancedVSeed.measures;
1183
+ const { locale, measures, datasetReshapeInfo } = advancedVSeed;
1184
+ const { foldInfo } = datasetReshapeInfo[0];
1102
1185
  return {
1103
1186
  ...spec,
1104
1187
  indicatorsAsCol: true,
1105
1188
  indicatorTitle: intl.i18n`指标名称`,
1106
- indicators: measures.map((item)=>{
1107
- if (isMeasure(item)) return {
1189
+ hideIndicatorName: true,
1190
+ indicators: [
1191
+ {
1108
1192
  cellType: 'text',
1109
- indicatorKey: item.id,
1110
- title: item.alias || item.id,
1193
+ indicatorKey: foldInfo.measureValue,
1194
+ title: 'indicator',
1111
1195
  width: 'auto',
1112
- format: pivotIndicators_fieldFormat(item, locale)
1113
- };
1114
- return {};
1115
- })
1196
+ format: pivotIndicators_fieldFormat(measures, foldInfo, locale)
1197
+ }
1198
+ ]
1116
1199
  };
1117
1200
  };
1118
- const pivotIndicators_fieldFormat = (node, locale)=>(value)=>{
1201
+ const pivotIndicators_fieldFormat = (measures, foldInfo, locale)=>(value, col, row, table)=>{
1202
+ if (!(0, external_remeda_namespaceObject.isNumber)(col) || !(0, external_remeda_namespaceObject.isNumber)(row) || !table) return value;
1203
+ const datum = table.getCellOriginRecord(col, row);
1204
+ if (!datum[0]) return value;
1205
+ const { measureId: foldMeasureId } = foldInfo;
1206
+ const measureId = datum[0][foldMeasureId];
1207
+ const node = findMeasureById(measures, measureId);
1208
+ if (!node) return value;
1119
1209
  const { format = {}, autoFormat = true } = node;
1120
1210
  if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
1121
1211
  const formatter = createFormatter(format);
@@ -1141,9 +1231,9 @@ const rowHeaderStyle = (spec, context)=>{
1141
1231
  borderColor: borderColor,
1142
1232
  borderLineWidth: 1,
1143
1233
  padding: [
1144
- 8.6,
1234
+ 8,
1145
1235
  12,
1146
- 8.6,
1236
+ 8,
1147
1237
  12
1148
1238
  ],
1149
1239
  textAlign: 'left',
@@ -1271,111 +1361,94 @@ const initAdvancedVSeed_initAdvancedVSeed = (advancedVSeed, context)=>{
1271
1361
  locale: locale || 'zh-CN'
1272
1362
  };
1273
1363
  };
1274
- const ORIGINAL_DATA = '__OriginalData__';
1275
- const Separator = '-';
1276
- const FoldMeasureName = '__MeaName__';
1277
- const FoldMeasureId = '__MeaId__';
1278
- const FoldMeasureValue = '__MeaValue__';
1279
- const MeasureName = FoldMeasureName;
1280
- const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
1281
- const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
1282
- const FoldXMeasureValue = '__MeaXValue__';
1283
- const FoldYMeasureValue = '__MeaYValue__';
1284
- const XEncoding = '__Dim_X__';
1285
- const YEncoding = '__Dim_Y__';
1286
- const AngleEncoding = '__Dim_Angle__';
1287
- const DetailEncoding = '__Dim_Detail__';
1288
- const ColorEncoding = '__Dim_Color__';
1289
- const ColorIdEncoding = '__Dim_ColorId__';
1290
- const getBasicDimensions = (vseed)=>{
1291
- const { dimensions, dataset } = vseed;
1292
- const MeaName = {
1293
- id: MeasureName,
1294
- alias: intl.i18n`指标名称`
1364
+ const default_defaultMeasures_defaultMeasures = (advancedVSeed, context)=>{
1365
+ const { vseed } = context;
1366
+ const { measures, dataset } = vseed;
1367
+ if (measures && measures.length > 0) return {
1368
+ ...advancedVSeed,
1369
+ measures
1295
1370
  };
1296
1371
  if (!dataset) throw new Error('dataset is required');
1297
- if (0 === dataset.length) return [];
1298
- if (dimensions) {
1299
- const basicDimensions = dimensions.map((dim)=>({
1300
- location: 'dimension',
1301
- ...dim
1302
- }));
1303
- if (basicDimensions.some((dim)=>dim.id === MeasureName)) return basicDimensions;
1304
- basicDimensions.push(MeaName);
1305
- return basicDimensions;
1306
- }
1372
+ if (0 === dataset.length) return {
1373
+ ...advancedVSeed,
1374
+ measures: []
1375
+ };
1307
1376
  const top100dataset = dataset.slice(0, 100);
1308
1377
  const sample = top100dataset.reduce((prev, cur)=>({
1309
1378
  ...prev,
1310
1379
  ...cur
1311
1380
  }), {});
1312
- const basicDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1381
+ const defaultMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1313
1382
  '',
1314
1383
  null,
1315
1384
  void 0
1316
- ].includes(key)).map((dim)=>({
1317
- id: dim,
1318
- alias: dim,
1319
- location: 'dimension'
1385
+ ].includes(key)).map((measure)=>({
1386
+ id: measure,
1387
+ alias: measure
1320
1388
  }));
1321
- basicDimensions.push(MeaName);
1322
- return basicDimensions;
1323
- };
1324
- const getBasicMeasures = (vseed)=>{
1325
- const { dataset, measures } = vseed;
1326
- if (!measures || 0 === measures.length) return generateMeasuresByDataset(dataset);
1327
- return measures;
1389
+ return {
1390
+ ...advancedVSeed,
1391
+ measures: defaultMeasures
1392
+ };
1328
1393
  };
1329
- const generateMeasuresByDataset = (dataset)=>{
1394
+ const defaultDimensions_defaultDimensions = (advancedVSeed, context)=>{
1395
+ const result = {
1396
+ ...advancedVSeed
1397
+ };
1398
+ const { vseed } = context;
1399
+ const { dimensions, dataset } = vseed;
1400
+ if (dimensions && dimensions.length > 0) return {
1401
+ ...result,
1402
+ dimensions
1403
+ };
1330
1404
  if (!dataset) throw new Error('dataset is required');
1331
- if (0 === dataset.length) return [];
1405
+ if (0 === dataset.length) return result;
1406
+ const measures = findAllMeasures(advancedVSeed.measures);
1332
1407
  const top100dataset = dataset.slice(0, 100);
1333
1408
  const sample = top100dataset.reduce((prev, cur)=>({
1334
1409
  ...prev,
1335
1410
  ...cur
1336
1411
  }), {});
1337
- const basicMeasures = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'number' == typeof item[key]) && ![
1412
+ const newDimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1338
1413
  '',
1339
1414
  null,
1340
1415
  void 0
1341
- ].includes(key)).map((measure)=>({
1342
- id: measure,
1343
- alias: measure
1416
+ ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1417
+ id: dim,
1418
+ alias: dim
1344
1419
  }));
1345
- return basicMeasures;
1346
- };
1347
- const isMeasureTreeWithChildren = (vseed)=>{
1348
- const { measures } = vseed;
1349
- if (!measures) return false;
1350
- return measures.some((measure)=>'children' in measure);
1420
+ return {
1421
+ ...result,
1422
+ dimensions: newDimensions
1423
+ };
1351
1424
  };
1352
- const isMeasureTreeWithParentId = (vseed)=>{
1353
- const { measures } = vseed;
1354
- if (!measures) return false;
1355
- return measures.some((measure)=>'parentId' in measure);
1425
+ const defaultMeasureName_defaultMeasureName = (advancedVSeed)=>{
1426
+ const result = {
1427
+ ...advancedVSeed
1428
+ };
1429
+ const MeaName = {
1430
+ id: MeasureName,
1431
+ alias: intl.i18n`指标名称`
1432
+ };
1433
+ if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
1434
+ return result;
1356
1435
  };
1357
- const encodingForLine = (advancedVSeed, context)=>{
1358
- const { vseed } = context;
1359
- const { measures: vseedMeasures = [] } = vseed;
1360
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
1361
- const dimensions = getBasicDimensions(vseed);
1436
+ const encodingForLine = (advancedVSeed)=>{
1437
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1438
+ const measures = findAllMeasures(vseedMeasures);
1362
1439
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
1363
1440
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
1364
1441
  const encoding = {};
1365
- if (hasDimensionEncoding) generateDimensionEncoding(dimensions, encoding);
1366
- else generateDefaultDimensionEncoding(dimensions, encoding);
1367
- if (hasMeasureEncoding) generateMeasureEncoding(measures, encoding);
1368
- else generateDefaultMeasureEncoding(measures, encoding);
1442
+ if (hasDimensionEncoding) line_generateDimensionEncoding(dimensions, encoding);
1443
+ else line_generateDefaultDimensionEncoding(dimensions, encoding);
1444
+ if (hasMeasureEncoding) line_generateMeasureEncoding(measures, encoding);
1445
+ else line_generateDefaultMeasureEncoding(measures, encoding);
1369
1446
  return {
1370
1447
  ...advancedVSeed,
1371
1448
  encoding
1372
1449
  };
1373
1450
  };
1374
- const generateDefaultMeasureEncoding = (measures, encoding)=>{
1375
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
1376
- encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1377
- };
1378
- const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1451
+ const line_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1379
1452
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
1380
1453
  encoding.x = uniqueDimIds.slice(0, 1);
1381
1454
  encoding.color = uniqueDimIds.slice(1);
@@ -1385,20 +1458,39 @@ const generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1385
1458
  encoding.row = [];
1386
1459
  encoding.column = [];
1387
1460
  };
1388
- const generateMeasureEncoding = (measures, encoding)=>{
1389
- encoding.tooltip = measures.map((item)=>item.id);
1390
- encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1391
- const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1392
- if (color.length > 0) encoding.color = color;
1393
- };
1394
- const generateDimensionEncoding = (dimensions, encoding)=>{
1461
+ const line_generateDimensionEncoding = (dimensions, encoding)=>{
1395
1462
  encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
1396
1463
  encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1397
- encoding.detail = [];
1464
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1398
1465
  if (0 === encoding.x.length) encoding.x = [
1399
1466
  dimensions[0].id
1400
1467
  ];
1401
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
1468
+ if (0 === encoding.color.length) encoding.color = [
1469
+ MeasureName
1470
+ ];
1471
+ if (0 === encoding.detail.length) encoding.detail = [
1472
+ MeasureName
1473
+ ];
1474
+ };
1475
+ const line_generateDefaultMeasureEncoding = (measures, encoding)=>{
1476
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
1477
+ encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1478
+ };
1479
+ const line_generateMeasureEncoding = (measures, encoding)=>{
1480
+ encoding.tooltip = measures.map((item)=>item.id);
1481
+ encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1482
+ const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1483
+ if (color.length > 0) encoding.color = color;
1484
+ };
1485
+ const isMeasureTreeWithChildren = (vseed)=>{
1486
+ const { measures } = vseed;
1487
+ if (!measures) return false;
1488
+ return measures.some((measure)=>'children' in measure);
1489
+ };
1490
+ const isMeasureTreeWithParentId = (vseed)=>{
1491
+ const { measures } = vseed;
1492
+ if (!measures) return false;
1493
+ return measures.some((measure)=>'parentId' in measure);
1402
1494
  };
1403
1495
  const measureDepth = (measures = [])=>{
1404
1496
  if (!measures) return 0;
@@ -1424,7 +1516,7 @@ const isPivotChart = (vseed)=>{
1424
1516
  }
1425
1517
  if ('dualAxis' === vseed.chartType || 'scatter' === vseed.chartType) {
1426
1518
  const { dimensions = [] } = vseed;
1427
- const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
1519
+ const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
1428
1520
  if (hasRowOrColumnDimension) return true;
1429
1521
  if ('scatter' === vseed.chartType) {
1430
1522
  if (isMeasureTreeWithChildren(vseed)) {
@@ -1444,7 +1536,7 @@ const isPivotChart = (vseed)=>{
1444
1536
  return false;
1445
1537
  }
1446
1538
  const { measures = [], dimensions = [] } = vseed;
1447
- const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'rowDimension' === dimension.location || 'columnDimension' === dimension.location);
1539
+ const hasRowOrColumnDimension = dimensions && dimensions.some((dimension)=>'row' === dimension.encoding || 'column' === dimension.encoding);
1448
1540
  const hasMeasureGroup = measures && measures.some((measure)=>measure && measure.children);
1449
1541
  return hasRowOrColumnDimension || hasMeasureGroup;
1450
1542
  };
@@ -1458,9 +1550,7 @@ const buildMeasures = (advancedVSeed, context)=>{
1458
1550
  advancedVSeed.measures = generateMeasuresByParentId(vseed.measures);
1459
1551
  return advancedVSeed;
1460
1552
  }
1461
- const basicMeasures = getBasicMeasures(vseed);
1462
- if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(basicMeasures);
1463
- else advancedVSeed.measures = basicMeasures;
1553
+ if (isPivotChart(vseed)) advancedVSeed.measures = basicMeasuresToMeasureTree(advancedVSeed.measures);
1464
1554
  return advancedVSeed;
1465
1555
  };
1466
1556
  const generateMeasuresByParentId = (measures)=>{
@@ -1478,115 +1568,25 @@ const generateMeasuresByParentId = (measures)=>{
1478
1568
  ]
1479
1569
  });
1480
1570
  });
1481
- return measureTree;
1482
- };
1483
- const basicMeasuresToMeasureTree = (measures)=>{
1484
- const id = measures.map((item)=>item.id).join('-');
1485
- const alias = measures.map((item)=>item.alias || item.id).join('-');
1486
- return [
1487
- {
1488
- id,
1489
- alias,
1490
- children: measures
1491
- }
1492
- ];
1493
- };
1494
- const autoDimensions_autoDimensions = (advancedVSeed, context)=>{
1495
- const result = {
1496
- ...advancedVSeed
1497
- };
1498
- const { vseed } = context;
1499
- const { dimensions, dataset } = vseed;
1500
- const measures = findAllMeasures(advancedVSeed.measures);
1501
- const MeaName = {
1502
- id: MeasureName,
1503
- alias: intl.i18n`指标名称`
1504
- };
1505
- if (!dataset) throw new Error('dataset is required');
1506
- if (0 === dataset.length) return result;
1507
- if (dimensions) {
1508
- result.dimensions = dimensions.map((dim)=>({
1509
- location: 'dimension',
1510
- ...dim
1511
- }));
1512
- if (result.dimensions.some((dim)=>dim.id === MeasureName)) return result;
1513
- result.dimensions.push(MeaName);
1514
- return result;
1515
- }
1516
- const top100dataset = dataset.slice(0, 100);
1517
- const sample = top100dataset.reduce((prev, cur)=>({
1518
- ...prev,
1519
- ...cur
1520
- }), {});
1521
- result.dimensions = Object.keys(sample).filter((key)=>top100dataset.some((item)=>'string' == typeof item[key]) && ![
1522
- '',
1523
- null,
1524
- void 0
1525
- ].includes(key) && !measures.some((measure)=>measure.id === key)).map((dim)=>({
1526
- id: dim,
1527
- alias: dim,
1528
- location: 'dimension'
1529
- }));
1530
- result.dimensions.push(MeaName);
1531
- return result;
1532
- };
1533
- const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
1534
- const { vseed } = context;
1535
- const usePivotChart = isPivotChart(vseed);
1536
- if (usePivotChart) return execPipeline(pivotPipeline, context, advancedVSeed);
1537
- return execPipeline(pipeline, context, advancedVSeed);
1538
- };
1539
- const foldMeasures = (dataset, measures, options)=>{
1540
- const { measureId, measureName, measureValue, colorMeasureId } = options || {};
1541
- const foldInfo = {
1542
- measureId,
1543
- measureName,
1544
- measureValue,
1545
- colorRange: [
1546
- 0,
1547
- 1
1548
- ],
1549
- measureRange: [
1550
- 0,
1551
- 1
1552
- ],
1553
- foldMap: {}
1554
- };
1555
- const result = new Array(dataset.length * measures.length);
1556
- let index = 0;
1557
- const ids = measures.map((d)=>d.id);
1558
- for(let i = 0; i < dataset.length; i++)for(let j = 0; j < measures.length; j++){
1559
- const datum = (0, external_remeda_namespaceObject.omit)({
1560
- ...dataset[i]
1561
- }, ids);
1562
- datum[ORIGINAL_DATA] = dataset[i];
1563
- const measure = measures[j];
1564
- const { id, alias } = measure;
1565
- datum[id] = dataset[i][id];
1566
- datum[measureId] = id;
1567
- datum[measureName] = alias || id;
1568
- datum[measureValue] = dataset[i][id];
1569
- if (colorMeasureId) {
1570
- const value = datum[ORIGINAL_DATA][colorMeasureId];
1571
- datum[ColorEncoding] = value;
1572
- datum[ColorIdEncoding] = colorMeasureId;
1573
- foldInfo.colorRange = [
1574
- Math.min(foldInfo.colorRange[0] || 1 / 0, Number(value)),
1575
- Math.max(foldInfo.colorRange[1] || -1 / 0, Number(value))
1576
- ];
1571
+ return measureTree;
1572
+ };
1573
+ const basicMeasuresToMeasureTree = (measures)=>{
1574
+ const id = measures.map((item)=>item.id).join('-');
1575
+ const alias = measures.map((item)=>item.alias || item.id).join('-');
1576
+ return [
1577
+ {
1578
+ id,
1579
+ alias,
1580
+ children: measures
1577
1581
  }
1578
- foldInfo.measureRange = [
1579
- Math.min(foldInfo.measureRange[0] || 1 / 0, Number(datum[id])),
1580
- Math.max(foldInfo.measureRange[1] || -1 / 0, Number(datum[id]))
1581
- ];
1582
- foldInfo.foldMap[id] = alias;
1583
- result[index++] = datum;
1584
- }
1585
- return {
1586
- dataset: result,
1587
- foldInfo
1588
- };
1582
+ ];
1589
1583
  };
1584
+ const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
1585
+ const { vseed } = context;
1586
+ const usePivotChart = isPivotChart(vseed);
1587
+ if (usePivotChart) return execPipeline(pivotPipeline, context, advancedVSeed);
1588
+ return execPipeline(pipeline, context, advancedVSeed);
1589
+ };
1590
1590
  const unfoldDimensions = (dataset, dimensions, encoding, options)=>{
1591
1591
  const { foldMeasureId, separator, colorItemAsId } = options;
1592
1592
  const unfoldInfo = {
@@ -1681,7 +1681,9 @@ const reshapeWithEncoding = (advancedVSeed, context)=>{
1681
1681
  const { dimensions, measures, encoding } = advancedVSeed;
1682
1682
  if (!measures || !dimensions || !dataset || !encoding) return result;
1683
1683
  if (0 === measures.length) throw new Error('measures can not be empty');
1684
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
1684
1685
  const { dataset: newDatasets, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, (0, external_remeda_namespaceObject.uniqueBy)(dimensions, (item)=>item.id), (0, external_remeda_namespaceObject.uniqueBy)(findAllMeasures(measures), (item)=>item.id), encoding, {
1686
+ colorItemAsId: hasEncoding,
1685
1687
  colorMeasureId: getColorMeasureId(advancedVSeed)
1686
1688
  });
1687
1689
  return {
@@ -1712,6 +1714,7 @@ const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
1712
1714
  if (measures) measures.forEach((measure)=>{
1713
1715
  if (measure.children && measure.children.length > 0) measureGroups.push(measure);
1714
1716
  });
1717
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
1715
1718
  const datasets = [];
1716
1719
  const datasetReshapeInfo = [];
1717
1720
  measureGroups.forEach((measureGroup, index)=>{
@@ -1719,6 +1722,7 @@ const pivotReshapeWithEncoding = (advancedVSeed, context)=>{
1719
1722
  if (!measures) return;
1720
1723
  const groupId = measureGroup.id;
1721
1724
  const { dataset: newSubDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, (0, external_remeda_namespaceObject.uniqueBy)(dimensions, (item)=>item.id), (0, external_remeda_namespaceObject.uniqueBy)(measures, (item)=>item.id), encoding, {
1725
+ colorItemAsId: hasEncoding,
1722
1726
  foldMeasureValue: `${FoldMeasureValue}${groupId}`,
1723
1727
  colorMeasureId: getColorMeasureId(advancedVSeed)
1724
1728
  });
@@ -1927,9 +1931,11 @@ const annotation_annotation = (advancedVSeed, context)=>{
1927
1931
  };
1928
1932
  const lineAdvancedPipeline = [
1929
1933
  initAdvancedVSeed_initAdvancedVSeed,
1934
+ default_defaultMeasures_defaultMeasures,
1935
+ defaultDimensions_defaultDimensions,
1936
+ defaultMeasureName_defaultMeasureName,
1930
1937
  encodingForLine,
1931
1938
  buildMeasures,
1932
- autoDimensions_autoDimensions,
1933
1939
  pivotAdapter([
1934
1940
  reshapeWithEncoding
1935
1941
  ], [
@@ -2981,7 +2987,7 @@ const annotationPoint_annotationPoint = (spec, context)=>{
2981
2987
  const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
2982
2988
  const { advancedVSeed } = context;
2983
2989
  const { annotation, datasetReshapeInfo } = advancedVSeed;
2984
- const { unfoldInfo } = datasetReshapeInfo[0];
2990
+ const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
2985
2991
  if (!annotation || !annotation.annotationVerticalLine) return spec;
2986
2992
  const { annotationVerticalLine } = annotation;
2987
2993
  const annotationVerticalLineList = Array.isArray(annotationVerticalLine) ? annotationVerticalLine : [
@@ -3061,9 +3067,9 @@ const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
3061
3067
  }
3062
3068
  const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
3063
3069
  return selectedData.map((datum)=>{
3064
- const x = unfoldInfo.encodingX;
3065
- if (!x) return {};
3066
- return generateOneMarkLine(datum[x]);
3070
+ if (datum[unfoldInfo.encodingX]) return generateOneMarkLine(datum[unfoldInfo.encodingX]);
3071
+ if (datum[foldInfo.measureValue]) return generateOneMarkLine(datum[foldInfo.measureValue]);
3072
+ return {};
3067
3073
  });
3068
3074
  });
3069
3075
  const specMarkLine = spec.markLine || [];
@@ -3079,10 +3085,10 @@ const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
3079
3085
  const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
3080
3086
  const { advancedVSeed } = context;
3081
3087
  const { annotation, datasetReshapeInfo } = advancedVSeed;
3082
- const { unfoldInfo } = datasetReshapeInfo[0];
3088
+ const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
3083
3089
  if (!annotation || !annotation.annotationHorizontalLine) return spec;
3084
3090
  const { annotationHorizontalLine } = annotation;
3085
- const annotationVerticalLineList = Array.isArray(annotationHorizontalLine) ? annotationHorizontalLine : [
3091
+ const annotationHorizontalLineList = Array.isArray(annotationHorizontalLine) ? annotationHorizontalLine : [
3086
3092
  annotationHorizontalLine
3087
3093
  ];
3088
3094
  const positionMap = {
@@ -3093,8 +3099,8 @@ const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
3093
3099
  insideMiddle: 'insideMiddleTop',
3094
3100
  insideEnd: 'insideEndTop'
3095
3101
  };
3096
- const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine)=>{
3097
- 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 } = annotationVerticalLine;
3102
+ const markLine = annotationHorizontalLineList.flatMap((annotationHorizontalLine)=>{
3103
+ 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;
3098
3104
  const dataset = advancedVSeed.dataset.flat();
3099
3105
  const generateOneMarkLine = (y)=>({
3100
3106
  y,
@@ -3159,9 +3165,9 @@ const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
3159
3165
  }
3160
3166
  const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
3161
3167
  return selectedData.map((datum)=>{
3162
- const y = unfoldInfo.encodingY;
3163
- if (!y) return {};
3164
- return generateOneMarkLine(datum[y]);
3168
+ if (datum[unfoldInfo.encodingY]) return generateOneMarkLine(datum[unfoldInfo.encodingY]);
3169
+ if (datum[foldInfo.measureValue]) return generateOneMarkLine(datum[foldInfo.measureValue]);
3170
+ return {};
3165
3171
  });
3166
3172
  });
3167
3173
  const specMarkLine = spec.markLine || [];
@@ -3525,7 +3531,7 @@ const pivotRowDimensions = (spec, context)=>{
3525
3531
  const { advancedVSeed } = context;
3526
3532
  const dimensions = advancedVSeed.dimensions;
3527
3533
  if (!dimensions) return result;
3528
- const rowDimensions = dimensions.filter((dim)=>'rowDimension' === dim.location);
3534
+ const rowDimensions = dimensions.filter((dim)=>'row' === dim.encoding);
3529
3535
  const rows = rowDimensions.map((dim)=>({
3530
3536
  dimensionKey: dim.id,
3531
3537
  title: dim.alias || dim.id
@@ -3542,7 +3548,7 @@ const pivotColumnDimensions = (spec, context)=>{
3542
3548
  const { advancedVSeed } = context;
3543
3549
  const dimensions = advancedVSeed.dimensions;
3544
3550
  if (!dimensions) return result;
3545
- const columnDimensions = dimensions.filter((dim)=>'columnDimension' === dim.location);
3551
+ const columnDimensions = dimensions.filter((dim)=>'column' === dim.encoding);
3546
3552
  const columns = columnDimensions.map((dim)=>({
3547
3553
  dimensionKey: dim.id,
3548
3554
  title: dim.alias || dim.id
@@ -3815,11 +3821,9 @@ const registerLine = ()=>{
3815
3821
  Builder._advancedPipelineMap.line = lineAdvancedPipeline;
3816
3822
  Builder._specPipelineMap.line = lineSpecPipeline;
3817
3823
  };
3818
- const encodingForColumn = (advancedVSeed, context)=>{
3819
- const { vseed } = context;
3820
- const { measures: vseedMeasures = [] } = vseed;
3821
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
3822
- const dimensions = getBasicDimensions(vseed);
3824
+ const encodingForColumn = (advancedVSeed)=>{
3825
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
3826
+ const measures = findAllMeasures(vseedMeasures);
3823
3827
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
3824
3828
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
3825
3829
  const encoding = {};
@@ -3832,10 +3836,6 @@ const encodingForColumn = (advancedVSeed, context)=>{
3832
3836
  encoding
3833
3837
  };
3834
3838
  };
3835
- const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
3836
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
3837
- encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
3838
- };
3839
3839
  const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
3840
3840
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
3841
3841
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
@@ -3847,13 +3847,6 @@ const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
3847
3847
  encoding.row = [];
3848
3848
  encoding.column = [];
3849
3849
  };
3850
- const column_generateMeasureEncoding = (measures, encoding)=>{
3851
- encoding.tooltip = measures.map((item)=>item.id);
3852
- encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
3853
- const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
3854
- if (color.length > 0) encoding.color = color;
3855
- return encoding;
3856
- };
3857
3850
  const column_generateDimensionEncoding = (dimensions, encoding)=>{
3858
3851
  encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
3859
3852
  encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -3861,14 +3854,31 @@ const column_generateDimensionEncoding = (dimensions, encoding)=>{
3861
3854
  if (0 === encoding.x.length) encoding.x = [
3862
3855
  dimensions[0].id
3863
3856
  ];
3864
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
3865
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
3857
+ if (0 === encoding.color.length) encoding.color = [
3858
+ MeasureName
3859
+ ];
3860
+ if (0 === encoding.detail.length) encoding.detail = [
3861
+ MeasureName
3862
+ ];
3863
+ };
3864
+ const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
3865
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
3866
+ encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
3867
+ };
3868
+ const column_generateMeasureEncoding = (measures, encoding)=>{
3869
+ encoding.tooltip = measures.map((item)=>item.id);
3870
+ encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
3871
+ const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
3872
+ if (color.length > 0) encoding.color = color;
3873
+ return encoding;
3866
3874
  };
3867
3875
  const columnAdvancedPipeline = [
3868
3876
  initAdvancedVSeed_initAdvancedVSeed,
3877
+ default_defaultMeasures_defaultMeasures,
3878
+ defaultDimensions_defaultDimensions,
3879
+ defaultMeasureName_defaultMeasureName,
3869
3880
  encodingForColumn,
3870
3881
  buildMeasures,
3871
- autoDimensions_autoDimensions,
3872
3882
  pivotAdapter([
3873
3883
  reshapeWithEncoding
3874
3884
  ], [
@@ -4228,9 +4238,11 @@ const registerColumn = ()=>{
4228
4238
  };
4229
4239
  const columnParallelAdvancedPipeline = [
4230
4240
  initAdvancedVSeed_initAdvancedVSeed,
4241
+ default_defaultMeasures_defaultMeasures,
4242
+ defaultDimensions_defaultDimensions,
4243
+ defaultMeasureName_defaultMeasureName,
4231
4244
  encodingForColumn,
4232
4245
  buildMeasures,
4233
- autoDimensions_autoDimensions,
4234
4246
  pivotAdapter([
4235
4247
  reshapeWithEncoding
4236
4248
  ], [
@@ -4325,9 +4337,11 @@ const registerColumnParallel = ()=>{
4325
4337
  };
4326
4338
  const columnPercentAdvancedPipeline = [
4327
4339
  initAdvancedVSeed_initAdvancedVSeed,
4340
+ default_defaultMeasures_defaultMeasures,
4341
+ defaultDimensions_defaultDimensions,
4342
+ defaultMeasureName_defaultMeasureName,
4328
4343
  encodingForColumn,
4329
4344
  buildMeasures,
4330
- autoDimensions_autoDimensions,
4331
4345
  pivotAdapter([
4332
4346
  reshapeWithEncoding
4333
4347
  ], [
@@ -4404,11 +4418,9 @@ const registerColumnPercent = ()=>{
4404
4418
  Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
4405
4419
  Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
4406
4420
  };
4407
- const encodingForBar = (advancedVSeed, context)=>{
4408
- const { vseed } = context;
4409
- const { measures: vseedMeasures = [] } = vseed;
4410
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
4411
- const dimensions = getBasicDimensions(vseed);
4421
+ const encodingForBar = (advancedVSeed)=>{
4422
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4423
+ const measures = findAllMeasures(vseedMeasures);
4412
4424
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
4413
4425
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
4414
4426
  const encoding = {};
@@ -4421,10 +4433,6 @@ const encodingForBar = (advancedVSeed, context)=>{
4421
4433
  encoding
4422
4434
  };
4423
4435
  };
4424
- const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
4425
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
4426
- encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4427
- };
4428
4436
  const bar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
4429
4437
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
4430
4438
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
@@ -4436,13 +4444,6 @@ const bar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
4436
4444
  encoding.row = [];
4437
4445
  encoding.column = [];
4438
4446
  };
4439
- const bar_generateMeasureEncoding = (measures, encoding)=>{
4440
- encoding.tooltip = measures.map((item)=>item.id);
4441
- encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4442
- const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4443
- if (color.length > 0) encoding.color = color;
4444
- return encoding;
4445
- };
4446
4447
  const bar_generateDimensionEncoding = (dimensions, encoding)=>{
4447
4448
  encoding.y = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
4448
4449
  encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -4450,8 +4451,23 @@ const bar_generateDimensionEncoding = (dimensions, encoding)=>{
4450
4451
  if (0 === encoding.y.length) encoding.y = [
4451
4452
  dimensions[0].id
4452
4453
  ];
4453
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.y?.includes(item.id)).map((item)=>item.id);
4454
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.y?.includes(item.id)).map((item)=>item.id);
4454
+ if (0 === encoding.color.length) encoding.color = [
4455
+ MeasureName
4456
+ ];
4457
+ if (0 === encoding.detail.length) encoding.detail = [
4458
+ MeasureName
4459
+ ];
4460
+ };
4461
+ const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
4462
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
4463
+ encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4464
+ };
4465
+ const bar_generateMeasureEncoding = (measures, encoding)=>{
4466
+ encoding.tooltip = measures.map((item)=>item.id);
4467
+ encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4468
+ const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4469
+ if (color.length > 0) encoding.color = color;
4470
+ return encoding;
4455
4471
  };
4456
4472
  const sortYBandAxis = (advancedVSeed, context)=>{
4457
4473
  const result = {
@@ -4471,9 +4487,11 @@ const sortYBandAxis = (advancedVSeed, context)=>{
4471
4487
  };
4472
4488
  const barAdvancedPipeline = [
4473
4489
  initAdvancedVSeed_initAdvancedVSeed,
4490
+ default_defaultMeasures_defaultMeasures,
4491
+ defaultDimensions_defaultDimensions,
4492
+ defaultMeasureName_defaultMeasureName,
4474
4493
  encodingForBar,
4475
4494
  buildMeasures,
4476
- autoDimensions_autoDimensions,
4477
4495
  pivotAdapter([
4478
4496
  reshapeWithEncoding
4479
4497
  ], [
@@ -4824,9 +4842,11 @@ const registerBar = ()=>{
4824
4842
  };
4825
4843
  const barParallelAdvancedPipeline = [
4826
4844
  initAdvancedVSeed_initAdvancedVSeed,
4827
- buildMeasures,
4828
- autoDimensions_autoDimensions,
4845
+ default_defaultMeasures_defaultMeasures,
4846
+ defaultDimensions_defaultDimensions,
4847
+ defaultMeasureName_defaultMeasureName,
4829
4848
  encodingForBar,
4849
+ buildMeasures,
4830
4850
  pivotAdapter([
4831
4851
  reshapeWithEncoding
4832
4852
  ], [
@@ -4920,9 +4940,11 @@ const registerBarParallel = ()=>{
4920
4940
  };
4921
4941
  const barPercentAdvancedPipeline = [
4922
4942
  initAdvancedVSeed_initAdvancedVSeed,
4923
- buildMeasures,
4924
- autoDimensions_autoDimensions,
4943
+ default_defaultMeasures_defaultMeasures,
4944
+ defaultDimensions_defaultDimensions,
4945
+ defaultMeasureName_defaultMeasureName,
4925
4946
  encodingForBar,
4947
+ buildMeasures,
4926
4948
  pivotAdapter([
4927
4949
  reshapeWithEncoding
4928
4950
  ], [
@@ -4991,9 +5013,11 @@ const registerBarPercent = ()=>{
4991
5013
  };
4992
5014
  const areaAdvancedPipeline = [
4993
5015
  initAdvancedVSeed_initAdvancedVSeed,
5016
+ default_defaultMeasures_defaultMeasures,
5017
+ defaultDimensions_defaultDimensions,
5018
+ defaultMeasureName_defaultMeasureName,
4994
5019
  encodingForLine,
4995
5020
  buildMeasures,
4996
- autoDimensions_autoDimensions,
4997
5021
  pivotAdapter([
4998
5022
  reshapeWithEncoding
4999
5023
  ], [
@@ -5149,9 +5173,11 @@ const registerArea = ()=>{
5149
5173
  };
5150
5174
  const areaPercentAdvancedPipeline = [
5151
5175
  initAdvancedVSeed_initAdvancedVSeed,
5176
+ default_defaultMeasures_defaultMeasures,
5177
+ defaultDimensions_defaultDimensions,
5178
+ defaultMeasureName_defaultMeasureName,
5152
5179
  encodingForLine,
5153
5180
  buildMeasures,
5154
- autoDimensions_autoDimensions,
5155
5181
  pivotAdapter([
5156
5182
  reshapeWithEncoding
5157
5183
  ], [
@@ -5225,11 +5251,9 @@ const registerAreaPercent = ()=>{
5225
5251
  Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
5226
5252
  Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
5227
5253
  };
5228
- const encodingForScatter = (advancedVSeed, context)=>{
5229
- const { vseed } = context;
5230
- const { measures: vseedMeasures = [] } = vseed;
5231
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
5232
- const dimensions = getBasicDimensions(vseed);
5254
+ const encodingForScatter = (advancedVSeed)=>{
5255
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5256
+ const measures = findAllMeasures(vseedMeasures);
5233
5257
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
5234
5258
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
5235
5259
  const encoding = {};
@@ -5242,10 +5266,6 @@ const encodingForScatter = (advancedVSeed, context)=>{
5242
5266
  encoding
5243
5267
  };
5244
5268
  };
5245
- const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
5246
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
5247
- encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5248
- };
5249
5269
  const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5250
5270
  const dimensionsWithoutMeasureName = dimensions.filter((item)=>item.id !== MeasureName);
5251
5271
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensionsWithoutMeasureName.map((d)=>d.id));
@@ -5256,17 +5276,27 @@ const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5256
5276
  encoding.row = [];
5257
5277
  encoding.column = [];
5258
5278
  };
5279
+ const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
5280
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5281
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5282
+ if (0 === encoding.color.length) encoding.color = [
5283
+ MeasureName
5284
+ ];
5285
+ if (0 === encoding.detail.length) encoding.detail = [
5286
+ MeasureName
5287
+ ];
5288
+ };
5289
+ const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
5290
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
5291
+ encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5292
+ };
5259
5293
  const scatter_generateMeasureEncoding = (measures, encoding)=>{
5260
5294
  encoding.tooltip = measures.map((item)=>item.id);
5261
5295
  encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5262
5296
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5263
- if (color.length > 0) encoding.color = color;
5264
- };
5265
- const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
5266
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5267
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5268
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5269
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5297
+ if (color.length > 0) encoding.color = [
5298
+ color[0]
5299
+ ];
5270
5300
  };
5271
5301
  const buildMeasuresForScatter = (advancedVSeed, context)=>{
5272
5302
  const { vseed } = context;
@@ -5278,8 +5308,7 @@ const buildMeasuresForScatter = (advancedVSeed, context)=>{
5278
5308
  advancedVSeed.measures = buildMeasuresForScatter_generateMeasuresByParentId(vseed.measures);
5279
5309
  return advancedVSeed;
5280
5310
  }
5281
- const basicMeasures = getBasicMeasures(vseed);
5282
- const scatterMeasures = vseed.scatterMeasures ? vseed.scatterMeasures : basicMeasuresToScatterMeasures(basicMeasures);
5311
+ const scatterMeasures = vseed.scatterMeasures ? vseed.scatterMeasures : basicMeasuresToScatterMeasures(advancedVSeed.measures || []);
5283
5312
  advancedVSeed.measures = scatterMeasuresToMeasureTree(scatterMeasures);
5284
5313
  return advancedVSeed;
5285
5314
  };
@@ -5295,7 +5324,7 @@ const basicMeasuresToScatterMeasures = (basicMeasures)=>{
5295
5324
  const isXAxis = encoding.includes('xAxis');
5296
5325
  if (isYAxis) yMeasures.push(item);
5297
5326
  else if (isXAxis) xMeasures.push(item);
5298
- else if (0 === index) yMeasures.push(item);
5327
+ else if (0 !== index) yMeasures.push(item);
5299
5328
  else xMeasures.push(item);
5300
5329
  }
5301
5330
  return [
@@ -5363,7 +5392,7 @@ const buildMeasuresForScatter_generateMeasuresByParentId = (measures)=>{
5363
5392
  const isEmpty = !encoding.length;
5364
5393
  if (isY) scatterChart.yMeasures.push(item);
5365
5394
  else if (isX) scatterChart.xMeasures.push(item);
5366
- else if (isEmpty) if (0 === scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
5395
+ else if (isEmpty) if (0 !== scatterChart.yMeasures.length) scatterChart.yMeasures.push(item);
5367
5396
  else scatterChart.xMeasures.push(item);
5368
5397
  });
5369
5398
  return scatterMeasuresToMeasureTree(scatterMeasures);
@@ -5498,9 +5527,11 @@ const pivotReshapeWithScatterEncoding = (advancedVSeed, context)=>{
5498
5527
  };
5499
5528
  const scatterAdvancedPipeline = [
5500
5529
  initAdvancedVSeed_initAdvancedVSeed,
5530
+ default_defaultMeasures_defaultMeasures,
5531
+ defaultDimensions_defaultDimensions,
5532
+ defaultMeasureName_defaultMeasureName,
5501
5533
  encodingForScatter,
5502
5534
  buildMeasuresForScatter,
5503
- autoDimensions_autoDimensions,
5504
5535
  pivotAdapter([
5505
5536
  reshapeWithScatterEncoding
5506
5537
  ], [
@@ -5645,11 +5676,9 @@ const registerScatter = ()=>{
5645
5676
  Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
5646
5677
  Builder._specPipelineMap.scatter = scatterSpecPipeline;
5647
5678
  };
5648
- const encodingForDualAxis = (advancedVSeed, context)=>{
5649
- const { vseed } = context;
5650
- const { measures: vseedMeasures = [] } = vseed;
5651
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
5652
- const dimensions = getBasicDimensions(vseed);
5679
+ const encodingForDualAxis = (advancedVSeed)=>{
5680
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5681
+ const measures = findAllMeasures(vseedMeasures);
5653
5682
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
5654
5683
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
5655
5684
  const encoding = {};
@@ -5662,10 +5691,6 @@ const encodingForDualAxis = (advancedVSeed, context)=>{
5662
5691
  encoding
5663
5692
  };
5664
5693
  };
5665
- const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
5666
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
5667
- encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5668
- };
5669
5694
  const dualAxis_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5670
5695
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
5671
5696
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
@@ -5677,13 +5702,6 @@ const dualAxis_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5677
5702
  encoding.row = [];
5678
5703
  encoding.column = [];
5679
5704
  };
5680
- const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
5681
- encoding.tooltip = measures.map((item)=>item.id);
5682
- encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5683
- const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5684
- if (color.length > 0) encoding.color = color;
5685
- return encoding;
5686
- };
5687
5705
  const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
5688
5706
  encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
5689
5707
  encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -5691,8 +5709,23 @@ const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
5691
5709
  if (0 === encoding.x.length) encoding.x = [
5692
5710
  dimensions[0].id
5693
5711
  ];
5694
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5695
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
5712
+ if (0 === encoding.color.length) encoding.color = [
5713
+ MeasureName
5714
+ ];
5715
+ if (0 === encoding.detail.length) encoding.detail = [
5716
+ MeasureName
5717
+ ];
5718
+ };
5719
+ const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
5720
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(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
+ };
5723
+ const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
5724
+ encoding.tooltip = measures.map((item)=>item.id);
5725
+ encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5726
+ const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5727
+ if (color.length > 0) encoding.color = color;
5728
+ return encoding;
5696
5729
  };
5697
5730
  const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
5698
5731
  const { vseed } = context;
@@ -5704,8 +5737,7 @@ const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
5704
5737
  advancedVSeed.measures = buildMeasuresForDualAxis_generateMeasuresByParentId(vseed.measures);
5705
5738
  return advancedVSeed;
5706
5739
  }
5707
- const basicMeasures = getBasicMeasures(vseed);
5708
- const dualMeasures = vseed.dualMeasures ? vseed.dualMeasures : basicMeasuresToDualMeasures(basicMeasures);
5740
+ const dualMeasures = vseed.dualMeasures ? vseed.dualMeasures : basicMeasuresToDualMeasures(advancedVSeed.measures || []);
5709
5741
  advancedVSeed.measures = dualMeasuresToMeasureTree(dualMeasures);
5710
5742
  return advancedVSeed;
5711
5743
  };
@@ -5809,8 +5841,10 @@ const reshapeWithDualEncoding = (advancedVSeed, context)=>{
5809
5841
  const datasets = [];
5810
5842
  const primaryMeasures = measures[0];
5811
5843
  const secondaryMeasures = measures[1] || [];
5844
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
5812
5845
  if (primaryMeasures && primaryMeasures.children) {
5813
5846
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
5847
+ colorItemAsId: hasEncoding,
5814
5848
  foldMeasureValue: FoldPrimaryMeasureValue,
5815
5849
  colorMeasureId: getColorMeasureId(advancedVSeed)
5816
5850
  });
@@ -5857,6 +5891,7 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
5857
5891
  const { dataset } = vseed;
5858
5892
  const { dimensions, measures, encoding, chartType } = advancedVSeed;
5859
5893
  if (!measures || !dimensions || !dataset || !encoding) return result;
5894
+ const hasEncoding = (vseed.dimensions || []).some((item)=>item.encoding);
5860
5895
  const datasetList = [];
5861
5896
  const datasetReshapeInfo = [];
5862
5897
  const measureGroups = [];
@@ -5875,6 +5910,7 @@ const pivotReshapeWithDualEncoding = (advancedVSeed, context)=>{
5875
5910
  const secondaryMeasures = measures[1] || [];
5876
5911
  if (primaryMeasures && primaryMeasures.children) {
5877
5912
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, dimensions, primaryMeasures.children, encoding, {
5913
+ colorItemAsId: hasEncoding,
5878
5914
  foldMeasureValue: `${FoldPrimaryMeasureValue}${index}`,
5879
5915
  colorMeasureId: getColorMeasureId(advancedVSeed)
5880
5916
  });
@@ -5943,9 +5979,11 @@ const dualAxisConfig = (advancedVSeed, context)=>{
5943
5979
  };
5944
5980
  const dualAxisAdvancedPipeline = [
5945
5981
  initAdvancedVSeed_initAdvancedVSeed,
5982
+ default_defaultMeasures_defaultMeasures,
5983
+ defaultDimensions_defaultDimensions,
5984
+ defaultMeasureName_defaultMeasureName,
5946
5985
  encodingForDualAxis,
5947
5986
  buildMeasuresForDualAxis,
5948
- autoDimensions_autoDimensions,
5949
5987
  pivotAdapter([
5950
5988
  reshapeWithDualEncoding
5951
5989
  ], [
@@ -6778,11 +6816,9 @@ const registerDualAxis = ()=>{
6778
6816
  Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
6779
6817
  Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
6780
6818
  };
6781
- const encodingForPie = (advancedVSeed, context)=>{
6782
- const { vseed } = context;
6783
- const { measures: vseedMeasures = [] } = vseed;
6784
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
6785
- const dimensions = getBasicDimensions(vseed);
6819
+ const encodingForPie = (advancedVSeed)=>{
6820
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
6821
+ const measures = findAllMeasures(vseedMeasures);
6786
6822
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
6787
6823
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
6788
6824
  const encoding = {};
@@ -6795,10 +6831,6 @@ const encodingForPie = (advancedVSeed, context)=>{
6795
6831
  encoding
6796
6832
  };
6797
6833
  };
6798
- const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
6799
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
6800
- encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
6801
- };
6802
6834
  const pie_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
6803
6835
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
6804
6836
  encoding.color = uniqueDimIds.slice(0);
@@ -6808,23 +6840,33 @@ const pie_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
6808
6840
  encoding.row = [];
6809
6841
  encoding.column = [];
6810
6842
  };
6843
+ const pie_generateDimensionEncoding = (dimensions, encoding)=>{
6844
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
6845
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
6846
+ if (0 === encoding.color.length) encoding.color = [
6847
+ MeasureName
6848
+ ];
6849
+ if (0 === encoding.detail.length) encoding.detail = [
6850
+ MeasureName
6851
+ ];
6852
+ };
6853
+ const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
6854
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
6855
+ encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
6856
+ };
6811
6857
  const pie_generateMeasureEncoding = (measures, encoding)=>{
6812
6858
  encoding.tooltip = measures.map((item)=>item.id);
6813
6859
  encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
6814
6860
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
6815
6861
  if (color.length > 0) encoding.color = color;
6816
6862
  };
6817
- const pie_generateDimensionEncoding = (dimensions, encoding)=>{
6818
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
6819
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
6820
- if (0 === encoding.color.length) encoding.color = dimensions.map((item)=>item.id);
6821
- if (0 === encoding.detail.length) encoding.detail = dimensions.map((item)=>item.id);
6822
- };
6823
6863
  const pieAdvancedPipeline = [
6824
6864
  initAdvancedVSeed_initAdvancedVSeed,
6865
+ default_defaultMeasures_defaultMeasures,
6866
+ defaultDimensions_defaultDimensions,
6867
+ defaultMeasureName_defaultMeasureName,
6825
6868
  encodingForPie,
6826
6869
  buildMeasures,
6827
- autoDimensions_autoDimensions,
6828
6870
  pivotAdapter([
6829
6871
  reshapeWithEncoding
6830
6872
  ], [
@@ -6940,8 +6982,10 @@ const registerPie = ()=>{
6940
6982
  };
6941
6983
  const donutAdvancedPipeline = [
6942
6984
  initAdvancedVSeed_initAdvancedVSeed,
6985
+ default_defaultMeasures_defaultMeasures,
6986
+ defaultDimensions_defaultDimensions,
6987
+ defaultMeasureName_defaultMeasureName,
6943
6988
  buildMeasures,
6944
- autoDimensions_autoDimensions,
6945
6989
  encodingForPie,
6946
6990
  pivotAdapter([
6947
6991
  reshapeWithEncoding
@@ -7018,11 +7062,9 @@ const registerDonut = ()=>{
7018
7062
  Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
7019
7063
  Builder._specPipelineMap.donut = donutSpecPipeline;
7020
7064
  };
7021
- const encodingForRose = (advancedVSeed, context)=>{
7022
- const { vseed } = context;
7023
- const { measures: vseedMeasures = [] } = vseed;
7024
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7025
- const dimensions = getBasicDimensions(vseed);
7065
+ const encodingForRose = (advancedVSeed)=>{
7066
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7067
+ const measures = findAllMeasures(vseedMeasures);
7026
7068
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7027
7069
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7028
7070
  const encoding = {};
@@ -7035,10 +7077,6 @@ const encodingForRose = (advancedVSeed, context)=>{
7035
7077
  encoding
7036
7078
  };
7037
7079
  };
7038
- const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
7039
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7040
- encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7041
- };
7042
7080
  const rose_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7043
7081
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
7044
7082
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
@@ -7050,12 +7088,6 @@ const rose_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7050
7088
  encoding.row = [];
7051
7089
  encoding.column = [];
7052
7090
  };
7053
- const rose_generateMeasureEncoding = (measures, encoding)=>{
7054
- encoding.tooltip = measures.map((item)=>item.id);
7055
- encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7056
- const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7057
- if (color.length > 0) encoding.color = color;
7058
- };
7059
7091
  const rose_generateDimensionEncoding = (dimensions, encoding)=>{
7060
7092
  encoding.angle = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7061
7093
  encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -7063,14 +7095,30 @@ const rose_generateDimensionEncoding = (dimensions, encoding)=>{
7063
7095
  if (0 === encoding.angle.length) encoding.angle = [
7064
7096
  dimensions[0].id
7065
7097
  ];
7066
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7067
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7098
+ if (0 === encoding.color.length) encoding.color = [
7099
+ MeasureName
7100
+ ];
7101
+ if (0 === encoding.detail.length) encoding.detail = [
7102
+ MeasureName
7103
+ ];
7104
+ };
7105
+ const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
7106
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7107
+ encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7108
+ };
7109
+ const rose_generateMeasureEncoding = (measures, encoding)=>{
7110
+ encoding.tooltip = measures.map((item)=>item.id);
7111
+ encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7112
+ const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7113
+ if (color.length > 0) encoding.color = color;
7068
7114
  };
7069
7115
  const roseAdvancedPipeline = [
7070
7116
  initAdvancedVSeed_initAdvancedVSeed,
7117
+ default_defaultMeasures_defaultMeasures,
7118
+ defaultDimensions_defaultDimensions,
7119
+ defaultMeasureName_defaultMeasureName,
7071
7120
  encodingForRose,
7072
7121
  buildMeasures,
7073
- autoDimensions_autoDimensions,
7074
7122
  pivotAdapter([
7075
7123
  reshapeWithEncoding
7076
7124
  ], [
@@ -7266,9 +7314,11 @@ const registerRose = ()=>{
7266
7314
  };
7267
7315
  const roseParallelAdvancedPipeline = [
7268
7316
  initAdvancedVSeed_initAdvancedVSeed,
7317
+ default_defaultMeasures_defaultMeasures,
7318
+ defaultDimensions_defaultDimensions,
7319
+ defaultMeasureName_defaultMeasureName,
7269
7320
  encodingForRose,
7270
7321
  buildMeasures,
7271
- autoDimensions_autoDimensions,
7272
7322
  pivotAdapter([
7273
7323
  reshapeWithEncoding
7274
7324
  ], [
@@ -7374,11 +7424,9 @@ const registerRoseParallel = ()=>{
7374
7424
  Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
7375
7425
  Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
7376
7426
  };
7377
- const encodingForRadar = (advancedVSeed, context)=>{
7378
- const { vseed } = context;
7379
- const { measures: vseedMeasures = [] } = vseed;
7380
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7381
- const dimensions = getBasicDimensions(vseed);
7427
+ const encodingForRadar = (advancedVSeed)=>{
7428
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7429
+ const measures = findAllMeasures(vseedMeasures);
7382
7430
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7383
7431
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7384
7432
  const encoding = {};
@@ -7391,10 +7439,6 @@ const encodingForRadar = (advancedVSeed, context)=>{
7391
7439
  encoding
7392
7440
  };
7393
7441
  };
7394
- const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
7395
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7396
- encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7397
- };
7398
7442
  const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7399
7443
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
7400
7444
  encoding.angle = uniqueDimIds.slice(0, 1);
@@ -7405,12 +7449,6 @@ const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7405
7449
  encoding.row = [];
7406
7450
  encoding.column = [];
7407
7451
  };
7408
- const radar_generateMeasureEncoding = (measures, encoding)=>{
7409
- encoding.tooltip = measures.map((item)=>item.id);
7410
- encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7411
- const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7412
- if (color.length > 0) encoding.color = color;
7413
- };
7414
7452
  const radar_generateDimensionEncoding = (dimensions, encoding)=>{
7415
7453
  encoding.angle = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7416
7454
  encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
@@ -7418,13 +7456,30 @@ const radar_generateDimensionEncoding = (dimensions, encoding)=>{
7418
7456
  if (0 === encoding.angle.length) encoding.angle = [
7419
7457
  dimensions[0].id
7420
7458
  ];
7421
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.angle?.includes(item.id)).map((item)=>item.id);
7459
+ if (0 === encoding.color.length) encoding.color = [
7460
+ MeasureName
7461
+ ];
7462
+ if (0 === encoding.detail.length) encoding.detail = [
7463
+ MeasureName
7464
+ ];
7465
+ };
7466
+ const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
7467
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7468
+ encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7469
+ };
7470
+ const radar_generateMeasureEncoding = (measures, encoding)=>{
7471
+ encoding.tooltip = measures.map((item)=>item.id);
7472
+ encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7473
+ const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7474
+ if (color.length > 0) encoding.color = color;
7422
7475
  };
7423
7476
  const radarAdvancedPipeline = [
7424
7477
  initAdvancedVSeed_initAdvancedVSeed,
7478
+ default_defaultMeasures_defaultMeasures,
7479
+ defaultDimensions_defaultDimensions,
7480
+ defaultMeasureName_defaultMeasureName,
7425
7481
  encodingForRadar,
7426
7482
  buildMeasures,
7427
- autoDimensions_autoDimensions,
7428
7483
  pivotAdapter([
7429
7484
  reshapeWithEncoding
7430
7485
  ], [
@@ -7558,11 +7613,9 @@ const registerRadar = ()=>{
7558
7613
  Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
7559
7614
  Builder._specPipelineMap.radar = radarSpecPipeline;
7560
7615
  };
7561
- const encodingForFunnel = (advancedVSeed, context)=>{
7562
- const { vseed } = context;
7563
- const { measures: vseedMeasures = [] } = vseed;
7564
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7565
- const dimensions = getBasicDimensions(vseed);
7616
+ const encodingForFunnel = (advancedVSeed)=>{
7617
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7618
+ const measures = findAllMeasures(vseedMeasures);
7566
7619
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7567
7620
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7568
7621
  const encoding = {};
@@ -7575,10 +7628,6 @@ const encodingForFunnel = (advancedVSeed, context)=>{
7575
7628
  encoding
7576
7629
  };
7577
7630
  };
7578
- const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
7579
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7580
- encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7581
- };
7582
7631
  const funnel_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7583
7632
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
7584
7633
  encoding.color = uniqueDimIds.slice(0);
@@ -7588,23 +7637,35 @@ const funnel_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7588
7637
  encoding.row = [];
7589
7638
  encoding.column = [];
7590
7639
  };
7640
+ const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
7641
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7642
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7643
+ if (0 === encoding.color.length) encoding.color = [
7644
+ MeasureName
7645
+ ];
7646
+ if (0 === encoding.detail.length) encoding.detail = [
7647
+ MeasureName
7648
+ ];
7649
+ };
7650
+ const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
7651
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7652
+ encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7653
+ };
7591
7654
  const funnel_generateMeasureEncoding = (measures, encoding)=>{
7592
7655
  encoding.tooltip = measures.map((item)=>item.id);
7593
7656
  encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7594
7657
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7595
- if (color.length > 0) encoding.color = color;
7596
- };
7597
- const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
7598
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7599
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7600
- if (0 === encoding.color.length) encoding.color = dimensions.map((item)=>item.id);
7601
- if (0 === encoding.detail.length) encoding.detail = dimensions.map((item)=>item.id);
7658
+ if (color.length > 0) encoding.color = [
7659
+ color[0]
7660
+ ];
7602
7661
  };
7603
7662
  const funnelAdvancedPipeline = [
7604
7663
  initAdvancedVSeed_initAdvancedVSeed,
7664
+ default_defaultMeasures_defaultMeasures,
7665
+ defaultDimensions_defaultDimensions,
7666
+ defaultMeasureName_defaultMeasureName,
7605
7667
  encodingForFunnel,
7606
7668
  buildMeasures,
7607
- autoDimensions_autoDimensions,
7608
7669
  pivotAdapter([
7609
7670
  reshapeWithEncoding
7610
7671
  ], [
@@ -7717,11 +7778,9 @@ const registerFunnel = ()=>{
7717
7778
  Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
7718
7779
  Builder._specPipelineMap.funnel = funnelSpecPipeline;
7719
7780
  };
7720
- const encodingForHeatmap = (advancedVSeed, context)=>{
7721
- const { vseed } = context;
7722
- const { measures: vseedMeasures = [] } = vseed;
7723
- const measures = vseedMeasures.length ? findAllMeasures(vseedMeasures) : getBasicMeasures(vseed);
7724
- const dimensions = getBasicDimensions(vseed);
7781
+ const encodingForHeatmap = (advancedVSeed)=>{
7782
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7783
+ const measures = findAllMeasures(vseedMeasures);
7725
7784
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7726
7785
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7727
7786
  const encoding = {};
@@ -7734,10 +7793,6 @@ const encodingForHeatmap = (advancedVSeed, context)=>{
7734
7793
  encoding
7735
7794
  };
7736
7795
  };
7737
- const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
7738
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7739
- encoding.color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
7740
- };
7741
7796
  const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7742
7797
  const onlyMeasureName = 1 === dimensions.length && dimensions.find((item)=>item.id === MeasureName);
7743
7798
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
@@ -7750,12 +7805,6 @@ const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7750
7805
  encoding.row = [];
7751
7806
  encoding.column = [];
7752
7807
  };
7753
- const heatmap_generateMeasureEncoding = (measures, encoding)=>{
7754
- encoding.tooltip = measures.map((item)=>item.id);
7755
- const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7756
- if (color.length > 0) encoding.color = color;
7757
- return encoding;
7758
- };
7759
7808
  const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
7760
7809
  encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
7761
7810
  encoding.y = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
@@ -7766,14 +7815,35 @@ const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
7766
7815
  ];
7767
7816
  if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
7768
7817
  else encoding.y = dimensions.slice(0).map((item)=>item.id);
7769
- if (0 === encoding.color.length) encoding.color = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
7770
- if (0 === encoding.detail.length) encoding.detail = dimensions.filter((item)=>!encoding.x?.includes(item.id)).map((item)=>item.id);
7818
+ if (0 === encoding.color.length) encoding.color = [
7819
+ MeasureName
7820
+ ];
7821
+ if (0 === encoding.detail.length) encoding.detail = [
7822
+ MeasureName
7823
+ ];
7824
+ };
7825
+ const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
7826
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7827
+ const colorDims = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
7828
+ if (colorDims.length > 0) encoding.color = [
7829
+ colorDims[0]
7830
+ ];
7831
+ };
7832
+ const heatmap_generateMeasureEncoding = (measures, encoding)=>{
7833
+ encoding.tooltip = measures.map((item)=>item.id);
7834
+ const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7835
+ if (color.length > 0) encoding.color = [
7836
+ color[0]
7837
+ ];
7838
+ return encoding;
7771
7839
  };
7772
7840
  const heatmapAdvancedPipeline = [
7773
7841
  initAdvancedVSeed_initAdvancedVSeed,
7842
+ default_defaultMeasures_defaultMeasures,
7843
+ defaultDimensions_defaultDimensions,
7844
+ defaultMeasureName_defaultMeasureName,
7774
7845
  encodingForHeatmap,
7775
7846
  buildMeasures,
7776
- autoDimensions_autoDimensions,
7777
7847
  pivotAdapter([
7778
7848
  reshapeWithEncoding
7779
7849
  ], [
@@ -8567,6 +8637,15 @@ const updateAdvanced = (chartType, advancedPipe)=>{
8567
8637
  const updateSpec = (chartType, specPipe)=>{
8568
8638
  Builder._customSpecPipe[chartType] = specPipe;
8569
8639
  };
8640
+ const findAllDimensions = (dimensions = [])=>{
8641
+ if (!dimensions) return [];
8642
+ const result = [];
8643
+ preorderTraverse(dimensions, (node)=>{
8644
+ if (!('children' in node)) result.push(node);
8645
+ return false;
8646
+ });
8647
+ return result;
8648
+ };
8570
8649
  const external_zod_namespaceObject = require("zod");
8571
8650
  const zChartType = external_zod_namespaceObject.z["enum"]([
8572
8651
  'table',
@@ -8611,11 +8690,6 @@ const zDataset = external_zod_namespaceObject.z.array(zDatum);
8611
8690
  const zDimension = external_zod_namespaceObject.z.object({
8612
8691
  id: external_zod_namespaceObject.z.string(),
8613
8692
  alias: external_zod_namespaceObject.z.string().optional(),
8614
- location: external_zod_namespaceObject.z["enum"]([
8615
- 'dimension',
8616
- 'rowDimension',
8617
- 'columnDimension'
8618
- ]).default('dimension'),
8619
8693
  encoding: external_zod_namespaceObject.z["enum"]([
8620
8694
  'xAxis',
8621
8695
  'yAxis',
@@ -8682,7 +8756,9 @@ const zMeasure = external_zod_namespaceObject.z.object({
8682
8756
  'size',
8683
8757
  'color',
8684
8758
  'label',
8685
- 'tooltip'
8759
+ 'tooltip',
8760
+ 'detail',
8761
+ 'column'
8686
8762
  ]).optional(),
8687
8763
  parentId: external_zod_namespaceObject.z.string().optional()
8688
8764
  });