@visactor/vseed 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/dataReshape/constant.d.ts +2 -0
  2. package/dist/index.cjs +740 -288
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.js +733 -286
  5. package/dist/index.js.map +1 -1
  6. package/dist/pipeline/advanced/chart/pipes/encoding/bar.d.ts +1 -19
  7. package/dist/pipeline/advanced/chart/pipes/encoding/column.d.ts +1 -19
  8. package/dist/pipeline/advanced/chart/pipes/encoding/dualAxis.d.ts +1 -19
  9. package/dist/pipeline/advanced/chart/pipes/encoding/encodingAdapter.d.ts +2 -0
  10. package/dist/pipeline/advanced/chart/pipes/encoding/funnel.d.ts +1 -17
  11. package/dist/pipeline/advanced/chart/pipes/encoding/heatmap.d.ts +1 -19
  12. package/dist/pipeline/advanced/chart/pipes/encoding/index.d.ts +11 -9
  13. package/dist/pipeline/advanced/chart/pipes/encoding/line.d.ts +1 -18
  14. package/dist/pipeline/advanced/chart/pipes/encoding/pie.d.ts +1 -18
  15. package/dist/pipeline/advanced/chart/pipes/encoding/radar.d.ts +1 -19
  16. package/dist/pipeline/advanced/chart/pipes/encoding/rose.d.ts +1 -19
  17. package/dist/pipeline/advanced/chart/pipes/encoding/scatter.d.ts +1 -18
  18. package/dist/pipeline/advanced/chart/pipes/measures/utils.d.ts +7 -1
  19. package/dist/pipeline/spec/chart/pipes/tooltip/index.d.ts +2 -0
  20. package/dist/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +21 -1
  21. package/dist/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.d.ts +15 -0
  22. package/dist/pipeline/spec/chart/pipes/tooltip/tooltipScatter.d.ts +15 -0
  23. package/dist/types/chartType/area/area.d.ts +7 -27
  24. package/dist/types/chartType/areaPercent/areaPercent.d.ts +7 -27
  25. package/dist/types/chartType/bar/bar.d.ts +8 -29
  26. package/dist/types/chartType/barParallel/barParallel.d.ts +8 -29
  27. package/dist/types/chartType/barPercent/barPercent.d.ts +8 -29
  28. package/dist/types/chartType/column/column.d.ts +8 -29
  29. package/dist/types/chartType/columnParallel/columnParallel.d.ts +9 -30
  30. package/dist/types/chartType/columnPercent/columnPercent.d.ts +8 -29
  31. package/dist/types/chartType/donut/donut.d.ts +7 -27
  32. package/dist/types/chartType/dualAxis/dualAxis.d.ts +9 -29
  33. package/dist/types/chartType/funnel/funnel.d.ts +7 -26
  34. package/dist/types/chartType/heatmap/heatmap.d.ts +8 -29
  35. package/dist/types/chartType/line/line.d.ts +7 -27
  36. package/dist/types/chartType/pie/pie.d.ts +7 -27
  37. package/dist/types/chartType/pivotTable/pivotTable.d.ts +4 -7
  38. package/dist/types/chartType/radar/radar.d.ts +7 -29
  39. package/dist/types/chartType/rose/rose.d.ts +8 -29
  40. package/dist/types/chartType/roseParallel/roseParallel.d.ts +8 -29
  41. package/dist/types/chartType/scatter/scatter.d.ts +7 -28
  42. package/dist/umd/index.js +736 -288
  43. package/dist/umd/index.js.map +1 -1
  44. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -56,7 +56,7 @@ __webpack_require__.d(__webpack_exports__, {
56
56
  zYLinearAxis: ()=>zYLinearAxis,
57
57
  zMarkStyle: ()=>zMarkStyle,
58
58
  registerFunnel: ()=>registerFunnel,
59
- Separator: ()=>Separator,
59
+ Separator: ()=>"-",
60
60
  columnAdvancedPipeline: ()=>columnAdvancedPipeline,
61
61
  zLabel: ()=>zLabel,
62
62
  registerColumn: ()=>registerColumn,
@@ -85,12 +85,13 @@ __webpack_require__.d(__webpack_exports__, {
85
85
  FoldMeasureId: ()=>FoldMeasureId,
86
86
  zColumnParallelConfig: ()=>zColumnParallelConfig,
87
87
  donutSpecPipeline: ()=>donutSpecPipeline,
88
+ FoldXMeasureId: ()=>FoldXMeasureId,
88
89
  registerAreaPercent: ()=>registerAreaPercent,
89
- zHeatmap: ()=>zHeatmap,
90
90
  zBarPercent: ()=>zBarPercent,
91
+ zHeatmap: ()=>zHeatmap,
91
92
  zScatterMeasure: ()=>zScatterMeasure,
92
- zTheme: ()=>zTheme,
93
93
  zDatum: ()=>zDatum,
94
+ zTheme: ()=>zTheme,
94
95
  barAdvancedPipeline: ()=>barAdvancedPipeline,
95
96
  zCustomThemeConfig: ()=>zCustomThemeConfig,
96
97
  registerColumnPercent: ()=>registerColumnPercent,
@@ -180,6 +181,7 @@ __webpack_require__.d(__webpack_exports__, {
180
181
  zTableConfig: ()=>zTableConfig,
181
182
  zXBandAxis: ()=>zXBandAxis,
182
183
  zColumnPercentConfig: ()=>zColumnPercentConfig,
184
+ FoldYMeasureId: ()=>FoldYMeasureId,
183
185
  findMeasureById: ()=>findMeasureById,
184
186
  zVSeed: ()=>zVSeed,
185
187
  AngleEncoding: ()=>AngleEncoding,
@@ -923,7 +925,6 @@ const registerTable = ()=>{
923
925
  Builder._specPipelineMap.table = tableSpecPipeline;
924
926
  };
925
927
  const ORIGINAL_DATA = '__OriginalData__';
926
- const Separator = '-';
927
928
  const FoldMeasureName = '__MeaName__';
928
929
  const FoldMeasureId = '__MeaId__';
929
930
  const FoldMeasureValue = '__MeaValue__';
@@ -932,6 +933,8 @@ const FoldPrimaryMeasureValue = '__MeaPrimaryValue__';
932
933
  const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
933
934
  const FoldXMeasureValue = '__MeaXValue__';
934
935
  const FoldYMeasureValue = '__MeaYValue__';
936
+ const FoldXMeasureId = '__MeaXId__';
937
+ const FoldYMeasureId = '__MeaYId__';
935
938
  const XEncoding = '__Dim_X__';
936
939
  const YEncoding = '__Dim_Y__';
937
940
  const AngleEncoding = '__Dim_Angle__';
@@ -1433,6 +1436,25 @@ const defaultMeasureName_defaultMeasureName = (advancedVSeed)=>{
1433
1436
  if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
1434
1437
  return result;
1435
1438
  };
1439
+ const encodingAdapter = (noEncodingPipeline, hasEncodingPipeline)=>(advancedVSeed, context)=>{
1440
+ const { dimensions = [], measures = [] } = advancedVSeed;
1441
+ const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
1442
+ const hasMeasureEncoding = measures.some((item)=>item.encoding);
1443
+ const hasEncoding = hasDimensionEncoding || hasMeasureEncoding;
1444
+ if (hasEncoding) return execPipeline(hasEncodingPipeline, context, advancedVSeed);
1445
+ return execPipeline(noEncodingPipeline, context, advancedVSeed);
1446
+ };
1447
+ const defaultEncodingForLine = (advancedVSeed)=>{
1448
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1449
+ const measures = findAllMeasures(vseedMeasures);
1450
+ const encoding = {};
1451
+ line_generateDefaultDimensionEncoding(dimensions, encoding);
1452
+ line_generateDefaultMeasureEncoding(measures, encoding);
1453
+ return {
1454
+ ...advancedVSeed,
1455
+ encoding
1456
+ };
1457
+ };
1436
1458
  const encodingForLine = (advancedVSeed)=>{
1437
1459
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1438
1460
  const measures = findAllMeasures(vseedMeasures);
@@ -1452,7 +1474,7 @@ const line_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1452
1474
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
1453
1475
  encoding.x = uniqueDimIds.slice(0, 1);
1454
1476
  encoding.color = uniqueDimIds.slice(1);
1455
- encoding.tooltip = uniqueDimIds;
1477
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
1456
1478
  encoding.detail = [];
1457
1479
  encoding.label = [];
1458
1480
  encoding.row = [];
@@ -1460,27 +1482,32 @@ const line_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
1460
1482
  };
1461
1483
  const line_generateDimensionEncoding = (dimensions, encoding)=>{
1462
1484
  encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
1463
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1464
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1465
1485
  if (0 === encoding.x.length) encoding.x = [
1466
1486
  dimensions[0].id
1467
1487
  ];
1488
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1468
1489
  if (0 === encoding.color.length) encoding.color = [
1469
1490
  MeasureName
1470
1491
  ];
1492
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1471
1493
  if (0 === encoding.detail.length) encoding.detail = [
1472
1494
  MeasureName
1473
1495
  ];
1496
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
1497
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
1474
1498
  };
1475
1499
  const line_generateDefaultMeasureEncoding = (measures, encoding)=>{
1476
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
1477
1500
  encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1478
1501
  };
1479
1502
  const line_generateMeasureEncoding = (measures, encoding)=>{
1480
- encoding.tooltip = measures.map((item)=>item.id);
1481
1503
  encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1482
1504
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1483
1505
  if (color.length > 0) encoding.color = color;
1506
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
1507
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
1508
+ ...encoding.tooltip || [],
1509
+ ...tooltip
1510
+ ]);
1484
1511
  };
1485
1512
  const isMeasureTreeWithChildren = (vseed)=>{
1486
1513
  const { measures } = vseed;
@@ -1492,6 +1519,37 @@ const isMeasureTreeWithParentId = (vseed)=>{
1492
1519
  if (!measures) return false;
1493
1520
  return measures.some((measure)=>'parentId' in measure);
1494
1521
  };
1522
+ const normalizeMeasureTree = (measures)=>{
1523
+ const createEmptyMeasureGroup = ()=>({
1524
+ id: 'group',
1525
+ alias: '',
1526
+ children: []
1527
+ });
1528
+ let currentGroup = createEmptyMeasureGroup();
1529
+ const measureGroups = [];
1530
+ for (const measure of measures)if ('children' in measure) {
1531
+ if (currentGroup.children?.length) {
1532
+ currentGroup.id = [
1533
+ currentGroup.id,
1534
+ ...currentGroup.children.map((item)=>item.id)
1535
+ ].join('-');
1536
+ currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
1537
+ measureGroups.push(currentGroup);
1538
+ currentGroup = createEmptyMeasureGroup();
1539
+ }
1540
+ measureGroups.push(measure);
1541
+ } else currentGroup.children?.push(measure);
1542
+ if (currentGroup.children?.length) {
1543
+ currentGroup.id = [
1544
+ currentGroup.id,
1545
+ ...currentGroup.children.map((item)=>item.id)
1546
+ ].join('-');
1547
+ currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
1548
+ measureGroups.push(currentGroup);
1549
+ currentGroup = createEmptyMeasureGroup();
1550
+ }
1551
+ return measureGroups;
1552
+ };
1495
1553
  const measureDepth = (measures = [])=>{
1496
1554
  if (!measures) return 0;
1497
1555
  let depth = 1;
@@ -1543,7 +1601,7 @@ const isPivotChart = (vseed)=>{
1543
1601
  const buildMeasures = (advancedVSeed, context)=>{
1544
1602
  const { vseed } = context;
1545
1603
  if (isMeasureTreeWithChildren(vseed)) {
1546
- advancedVSeed.measures = vseed.measures;
1604
+ advancedVSeed.measures = normalizeMeasureTree(vseed.measures);
1547
1605
  return advancedVSeed;
1548
1606
  }
1549
1607
  if (isMeasureTreeWithParentId(vseed)) {
@@ -1645,7 +1703,7 @@ const dataReshapeByEncoding = (dataset, dimensions, measures, encoding, options)
1645
1703
  });
1646
1704
  const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
1647
1705
  foldMeasureId,
1648
- separator: Separator,
1706
+ separator: "-",
1649
1707
  colorItemAsId
1650
1708
  });
1651
1709
  return {
@@ -1934,8 +1992,13 @@ const lineAdvancedPipeline = [
1934
1992
  default_defaultMeasures_defaultMeasures,
1935
1993
  defaultDimensions_defaultDimensions,
1936
1994
  defaultMeasureName_defaultMeasureName,
1937
- encodingForLine,
1938
- buildMeasures,
1995
+ encodingAdapter([
1996
+ defaultEncodingForLine,
1997
+ buildMeasures
1998
+ ], [
1999
+ encodingForLine,
2000
+ buildMeasures
2001
+ ]),
1939
2002
  pivotAdapter([
1940
2003
  reshapeWithEncoding
1941
2004
  ], [
@@ -2210,10 +2273,6 @@ const xBand = (spec, context)=>{
2210
2273
  ];
2211
2274
  return result;
2212
2275
  };
2213
- const ANNOTATION_Z_INDEX = 1000;
2214
- const LINEAR_AXIS_INNER_OFFSET_TOP = 7;
2215
- const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000;
2216
- const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001;
2217
2276
  const yLinear = (spec, context)=>{
2218
2277
  const result = {
2219
2278
  ...spec
@@ -2287,7 +2346,7 @@ const yLinear = (spec, context)=>{
2287
2346
  }
2288
2347
  },
2289
2348
  innerOffset: {
2290
- top: LINEAR_AXIS_INNER_OFFSET_TOP
2349
+ top: 7
2291
2350
  }
2292
2351
  };
2293
2352
  result.axes = [
@@ -2843,78 +2902,133 @@ const tooltip_tooltip = (spec, context)=>{
2843
2902
  ...spec
2844
2903
  };
2845
2904
  const { advancedVSeed } = context;
2846
- const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
2905
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
2847
2906
  const baseConfig = advancedVSeed.config[chartType];
2848
2907
  const { tooltip = {
2849
2908
  enable: true
2850
2909
  } } = baseConfig;
2851
2910
  const { enable } = tooltip;
2852
- const { measureId, measureValue, measureName } = datasetReshapeInfo[0].foldInfo;
2853
- const { encodingColor: colorName } = datasetReshapeInfo[0].unfoldInfo;
2911
+ const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
2854
2912
  result.tooltip = {
2855
2913
  visible: enable,
2856
2914
  mark: {
2857
2915
  title: {
2858
- visible: true
2916
+ visible: false
2859
2917
  },
2860
- content: [
2861
- ...dimensions.map((item)=>({
2862
- visible: true,
2863
- hasShape: true,
2864
- shapeType: 'rectRound',
2865
- key: (datum)=>{
2866
- if (item.alias || item.id) return item.alias || item.id;
2867
- return datum && datum[item.id];
2868
- },
2869
- value: (datum)=>datum && datum[item.id]
2870
- })),
2871
- {
2872
- visible: true,
2873
- hasShape: true,
2874
- key: (datum)=>datum && datum[measureName || colorName] || '',
2875
- value: (datum)=>{
2876
- if (!datum) return '';
2877
- const value = datum[measureValue];
2878
- const id = datum[measureId];
2879
- const measure = findMeasureById(measures, id);
2880
- if (!measure) return String(value);
2881
- const { format = {}, autoFormat = true } = measure;
2882
- if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
2883
- const formatter = createFormatter(format);
2884
- return formatter(value);
2885
- }
2886
- if (autoFormat) return autoFormatter(value, locale);
2887
- return String(value);
2888
- }
2889
- }
2890
- ]
2918
+ content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfo, unfoldInfo)
2891
2919
  },
2892
2920
  dimension: {
2893
- content: [
2894
- {
2895
- visible: true,
2896
- key: (datum)=>datum && datum[colorName] || '',
2897
- value: (datum)=>{
2898
- if (!datum) return '';
2899
- const value = datum[measureValue];
2900
- const id = datum[measureId];
2901
- const measure = findMeasureById(measures, id);
2902
- if (!measure) return String(value);
2903
- const { format = {}, autoFormat = true } = measure;
2904
- if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
2905
- const formatter = createFormatter(format);
2906
- return formatter(value);
2907
- }
2908
- if (autoFormat) return autoFormatter(value, locale);
2909
- return String(value);
2910
- },
2911
- shapeType: 'rectRound'
2912
- }
2913
- ]
2921
+ title: {
2922
+ visible: true
2923
+ },
2924
+ content: createDimensionContent(measures, foldInfo, unfoldInfo, locale)
2914
2925
  }
2915
2926
  };
2916
2927
  return result;
2917
2928
  };
2929
+ const createDimensionContent = (measures, foldInfo, unfoldInfo, locale)=>{
2930
+ const { measureId, measureValue } = foldInfo;
2931
+ const { encodingColor } = unfoldInfo;
2932
+ return [
2933
+ {
2934
+ visible: true,
2935
+ shapeType: 'rectRound',
2936
+ hasShape: true,
2937
+ key: (v)=>{
2938
+ const datum = v;
2939
+ return datum && datum[encodingColor] || '';
2940
+ },
2941
+ value: (v)=>{
2942
+ const datum = v;
2943
+ if (!datum) return '';
2944
+ const value = datum[measureValue];
2945
+ const id = datum[measureId];
2946
+ const measure = findMeasureById(measures, id);
2947
+ if (!measure) return String(value);
2948
+ const { format = {}, autoFormat = true } = measure;
2949
+ if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
2950
+ const formatter = createFormatter(format);
2951
+ return formatter(value);
2952
+ }
2953
+ if (autoFormat) return autoFormatter(value, locale);
2954
+ return String(value);
2955
+ }
2956
+ }
2957
+ ];
2958
+ };
2959
+ const createMarkContent = (tooltip, dimensions, measures, locale, foldInfo, unfoldInfo)=>{
2960
+ const dims = dimensions.filter((item)=>tooltip.includes(item.id));
2961
+ const meas = measures.filter((item)=>tooltip.includes(item.id));
2962
+ const dimContent = dims.map((item)=>({
2963
+ visible: true,
2964
+ hasShape: true,
2965
+ shapeType: 'rectRound',
2966
+ key: (v)=>{
2967
+ const datum = v;
2968
+ if (item.alias || item.id) return item.alias || item.id;
2969
+ return datum && datum[item.id];
2970
+ },
2971
+ value: (v)=>{
2972
+ const datum = v;
2973
+ return datum && datum[item.id];
2974
+ }
2975
+ }));
2976
+ const meaContent = meas.map((item)=>({
2977
+ visible: true,
2978
+ hasShape: true,
2979
+ shapeType: 'rectRound',
2980
+ key: item.alias || item.id,
2981
+ value: (v)=>{
2982
+ const datum = v;
2983
+ if (!datum) return '';
2984
+ const id = item.id;
2985
+ if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
2986
+ const originalData = datum[ORIGINAL_DATA];
2987
+ const value = originalData[id];
2988
+ const measure = findMeasureById(measures, id);
2989
+ if (!measure) return String(value);
2990
+ const { format = {}, autoFormat = true } = measure;
2991
+ if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
2992
+ const formatter = createFormatter(format);
2993
+ return formatter(value);
2994
+ }
2995
+ if (autoFormat) return autoFormatter(value, locale);
2996
+ return String(value);
2997
+ }
2998
+ }));
2999
+ const defaultContent = {
3000
+ visible: true,
3001
+ hasShape: true,
3002
+ shapeType: 'rectRound',
3003
+ key: (v)=>{
3004
+ const { measureName } = foldInfo;
3005
+ const { encodingColor: colorName } = unfoldInfo;
3006
+ const datum = v;
3007
+ return datum && datum[measureName || colorName] || '';
3008
+ },
3009
+ value: (v)=>{
3010
+ const { measureId, measureValue } = foldInfo;
3011
+ const datum = v;
3012
+ if (!datum) return '';
3013
+ const value = datum[measureValue];
3014
+ const id = datum[measureId];
3015
+ const measure = findMeasureById(measures, id);
3016
+ if (!measure) return String(value);
3017
+ const { format = {}, autoFormat = true } = measure;
3018
+ if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
3019
+ const formatter = createFormatter(format);
3020
+ return formatter(value);
3021
+ }
3022
+ if (autoFormat) return autoFormatter(value, locale);
3023
+ return String(value);
3024
+ }
3025
+ };
3026
+ return [
3027
+ ...dimContent,
3028
+ defaultContent,
3029
+ ...meaContent
3030
+ ];
3031
+ };
2918
3032
  const isSubset = (sub, obj)=>Object.entries(sub).every(([key, value])=>{
2919
3033
  if ('string' == typeof value) return obj[key] === value;
2920
3034
  if ('number' == typeof value) return obj[key] === value;
@@ -2933,7 +3047,7 @@ const annotationPoint_annotationPoint = (spec, context)=>{
2933
3047
  const dataset = advancedVSeed.dataset.flat();
2934
3048
  const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
2935
3049
  return selectedData.map((datum)=>({
2936
- zIndex: ANNOTATION_Z_INDEX,
3050
+ zIndex: 1000,
2937
3051
  regionRelative: true,
2938
3052
  position: (data, context)=>{
2939
3053
  const targetDatum = data.find((item)=>isSubset(datum, item));
@@ -3006,7 +3120,7 @@ const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
3006
3120
  const dataset = advancedVSeed.dataset.flat();
3007
3121
  const generateOneMarkLine = (x)=>({
3008
3122
  x: x,
3009
- zIndex: ANNOTATION_Z_INDEX,
3123
+ zIndex: 1000,
3010
3124
  line: {
3011
3125
  style: {
3012
3126
  visible: lineVisible,
@@ -3104,7 +3218,7 @@ const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
3104
3218
  const dataset = advancedVSeed.dataset.flat();
3105
3219
  const generateOneMarkLine = (y)=>({
3106
3220
  y,
3107
- zIndex: ANNOTATION_Z_INDEX,
3221
+ zIndex: 1000,
3108
3222
  line: {
3109
3223
  style: {
3110
3224
  visible: lineVisible,
@@ -3205,7 +3319,7 @@ const annotationArea_annotationArea = (spec, context)=>{
3205
3319
  const labelPosition = positionMap[textPosition || 'top'];
3206
3320
  const isBottom = labelPosition.toLocaleLowerCase().includes('bottom');
3207
3321
  return {
3208
- zIndex: ANNOTATION_Z_INDEX,
3322
+ zIndex: 1000,
3209
3323
  regionRelative: true,
3210
3324
  positions: (data, context)=>{
3211
3325
  const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
@@ -3821,6 +3935,17 @@ const registerLine = ()=>{
3821
3935
  Builder._advancedPipelineMap.line = lineAdvancedPipeline;
3822
3936
  Builder._specPipelineMap.line = lineSpecPipeline;
3823
3937
  };
3938
+ const defaultEncodingForColumn = (advancedVSeed)=>{
3939
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
3940
+ const measures = findAllMeasures(vseedMeasures);
3941
+ const encoding = {};
3942
+ column_generateDefaultDimensionEncoding(dimensions, encoding);
3943
+ column_generateDefaultMeasureEncoding(measures, encoding);
3944
+ return {
3945
+ ...advancedVSeed,
3946
+ encoding
3947
+ };
3948
+ };
3824
3949
  const encodingForColumn = (advancedVSeed)=>{
3825
3950
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
3826
3951
  const measures = findAllMeasures(vseedMeasures);
@@ -3842,43 +3967,52 @@ const column_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
3842
3967
  encoding.x = uniqueDimIds.slice(0, 1);
3843
3968
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
3844
3969
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
3845
- encoding.tooltip = uniqueDimIds;
3970
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
3846
3971
  encoding.label = [];
3847
3972
  encoding.row = [];
3848
3973
  encoding.column = [];
3849
3974
  };
3850
3975
  const column_generateDimensionEncoding = (dimensions, encoding)=>{
3851
3976
  encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
3852
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
3853
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
3854
3977
  if (0 === encoding.x.length) encoding.x = [
3855
3978
  dimensions[0].id
3856
3979
  ];
3980
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
3857
3981
  if (0 === encoding.color.length) encoding.color = [
3858
3982
  MeasureName
3859
3983
  ];
3984
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
3860
3985
  if (0 === encoding.detail.length) encoding.detail = [
3861
3986
  MeasureName
3862
3987
  ];
3988
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
3989
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
3863
3990
  };
3864
3991
  const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
3865
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
3866
3992
  encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
3867
3993
  };
3868
3994
  const column_generateMeasureEncoding = (measures, encoding)=>{
3869
- encoding.tooltip = measures.map((item)=>item.id);
3870
3995
  encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
3871
3996
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
3872
3997
  if (color.length > 0) encoding.color = color;
3873
- return encoding;
3998
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
3999
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
4000
+ ...encoding.tooltip || [],
4001
+ ...tooltip
4002
+ ]);
3874
4003
  };
3875
4004
  const columnAdvancedPipeline = [
3876
4005
  initAdvancedVSeed_initAdvancedVSeed,
3877
4006
  default_defaultMeasures_defaultMeasures,
3878
4007
  defaultDimensions_defaultDimensions,
3879
4008
  defaultMeasureName_defaultMeasureName,
3880
- encodingForColumn,
3881
- buildMeasures,
4009
+ encodingAdapter([
4010
+ defaultEncodingForColumn,
4011
+ buildMeasures
4012
+ ], [
4013
+ encodingForColumn,
4014
+ buildMeasures
4015
+ ]),
3882
4016
  pivotAdapter([
3883
4017
  reshapeWithEncoding
3884
4018
  ], [
@@ -4075,7 +4209,7 @@ const annotationAreaBand = (spec, context)=>{
4075
4209
  const dataset = advancedVSeed.dataset.flat();
4076
4210
  const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
4077
4211
  return {
4078
- zIndex: ANNOTATION_Z_INDEX,
4212
+ zIndex: 1000,
4079
4213
  regionRelative: true,
4080
4214
  positions: (data, context)=>{
4081
4215
  const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
@@ -4241,8 +4375,13 @@ const columnParallelAdvancedPipeline = [
4241
4375
  default_defaultMeasures_defaultMeasures,
4242
4376
  defaultDimensions_defaultDimensions,
4243
4377
  defaultMeasureName_defaultMeasureName,
4244
- encodingForColumn,
4245
- buildMeasures,
4378
+ encodingAdapter([
4379
+ defaultEncodingForColumn,
4380
+ buildMeasures
4381
+ ], [
4382
+ encodingForColumn,
4383
+ buildMeasures
4384
+ ]),
4246
4385
  pivotAdapter([
4247
4386
  reshapeWithEncoding
4248
4387
  ], [
@@ -4340,8 +4479,13 @@ const columnPercentAdvancedPipeline = [
4340
4479
  default_defaultMeasures_defaultMeasures,
4341
4480
  defaultDimensions_defaultDimensions,
4342
4481
  defaultMeasureName_defaultMeasureName,
4343
- encodingForColumn,
4344
- buildMeasures,
4482
+ encodingAdapter([
4483
+ defaultEncodingForColumn,
4484
+ buildMeasures
4485
+ ], [
4486
+ encodingForColumn,
4487
+ buildMeasures
4488
+ ]),
4345
4489
  pivotAdapter([
4346
4490
  reshapeWithEncoding
4347
4491
  ], [
@@ -4418,6 +4562,17 @@ const registerColumnPercent = ()=>{
4418
4562
  Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
4419
4563
  Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
4420
4564
  };
4565
+ const defaultEncodingForBar = (advancedVSeed)=>{
4566
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4567
+ const measures = findAllMeasures(vseedMeasures);
4568
+ const encoding = {};
4569
+ bar_generateDefaultDimensionEncoding(dimensions, encoding);
4570
+ bar_generateDefaultMeasureEncoding(measures, encoding);
4571
+ return {
4572
+ ...advancedVSeed,
4573
+ encoding
4574
+ };
4575
+ };
4421
4576
  const encodingForBar = (advancedVSeed)=>{
4422
4577
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4423
4578
  const measures = findAllMeasures(vseedMeasures);
@@ -4439,35 +4594,39 @@ const bar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
4439
4594
  encoding.y = uniqueDimIds.slice(0, 1);
4440
4595
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
4441
4596
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
4442
- encoding.tooltip = uniqueDimIds;
4597
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
4443
4598
  encoding.label = [];
4444
4599
  encoding.row = [];
4445
4600
  encoding.column = [];
4446
4601
  };
4447
4602
  const bar_generateDimensionEncoding = (dimensions, encoding)=>{
4448
4603
  encoding.y = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
4449
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4450
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
4451
4604
  if (0 === encoding.y.length) encoding.y = [
4452
4605
  dimensions[0].id
4453
4606
  ];
4607
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4454
4608
  if (0 === encoding.color.length) encoding.color = [
4455
4609
  MeasureName
4456
4610
  ];
4611
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
4457
4612
  if (0 === encoding.detail.length) encoding.detail = [
4458
4613
  MeasureName
4459
4614
  ];
4615
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
4616
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
4460
4617
  };
4461
4618
  const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
4462
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
4463
4619
  encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4464
4620
  };
4465
4621
  const bar_generateMeasureEncoding = (measures, encoding)=>{
4466
- encoding.tooltip = measures.map((item)=>item.id);
4467
4622
  encoding.x = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4468
4623
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4469
4624
  if (color.length > 0) encoding.color = color;
4470
- return encoding;
4625
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
4626
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
4627
+ ...encoding.tooltip || [],
4628
+ ...tooltip
4629
+ ]);
4471
4630
  };
4472
4631
  const sortYBandAxis = (advancedVSeed, context)=>{
4473
4632
  const result = {
@@ -4490,8 +4649,13 @@ const barAdvancedPipeline = [
4490
4649
  default_defaultMeasures_defaultMeasures,
4491
4650
  defaultDimensions_defaultDimensions,
4492
4651
  defaultMeasureName_defaultMeasureName,
4493
- encodingForBar,
4494
- buildMeasures,
4652
+ encodingAdapter([
4653
+ defaultEncodingForBar,
4654
+ buildMeasures
4655
+ ], [
4656
+ encodingForBar,
4657
+ buildMeasures
4658
+ ]),
4495
4659
  pivotAdapter([
4496
4660
  reshapeWithEncoding
4497
4661
  ], [
@@ -4642,7 +4806,7 @@ const xLinear = (spec, context)=>{
4642
4806
  }
4643
4807
  },
4644
4808
  innerOffset: {
4645
- right: LINEAR_AXIS_INNER_OFFSET_TOP
4809
+ right: 7
4646
4810
  }
4647
4811
  };
4648
4812
  result.axes = [
@@ -4845,8 +5009,13 @@ const barParallelAdvancedPipeline = [
4845
5009
  default_defaultMeasures_defaultMeasures,
4846
5010
  defaultDimensions_defaultDimensions,
4847
5011
  defaultMeasureName_defaultMeasureName,
4848
- encodingForBar,
4849
- buildMeasures,
5012
+ encodingAdapter([
5013
+ defaultEncodingForBar,
5014
+ buildMeasures
5015
+ ], [
5016
+ encodingForBar,
5017
+ buildMeasures
5018
+ ]),
4850
5019
  pivotAdapter([
4851
5020
  reshapeWithEncoding
4852
5021
  ], [
@@ -4943,8 +5112,13 @@ const barPercentAdvancedPipeline = [
4943
5112
  default_defaultMeasures_defaultMeasures,
4944
5113
  defaultDimensions_defaultDimensions,
4945
5114
  defaultMeasureName_defaultMeasureName,
4946
- encodingForBar,
4947
- buildMeasures,
5115
+ encodingAdapter([
5116
+ defaultEncodingForBar,
5117
+ buildMeasures
5118
+ ], [
5119
+ encodingForBar,
5120
+ buildMeasures
5121
+ ]),
4948
5122
  pivotAdapter([
4949
5123
  reshapeWithEncoding
4950
5124
  ], [
@@ -5016,8 +5190,13 @@ const areaAdvancedPipeline = [
5016
5190
  default_defaultMeasures_defaultMeasures,
5017
5191
  defaultDimensions_defaultDimensions,
5018
5192
  defaultMeasureName_defaultMeasureName,
5019
- encodingForLine,
5020
- buildMeasures,
5193
+ encodingAdapter([
5194
+ defaultEncodingForLine,
5195
+ buildMeasures
5196
+ ], [
5197
+ encodingForLine,
5198
+ buildMeasures
5199
+ ]),
5021
5200
  pivotAdapter([
5022
5201
  reshapeWithEncoding
5023
5202
  ], [
@@ -5176,8 +5355,13 @@ const areaPercentAdvancedPipeline = [
5176
5355
  default_defaultMeasures_defaultMeasures,
5177
5356
  defaultDimensions_defaultDimensions,
5178
5357
  defaultMeasureName_defaultMeasureName,
5179
- encodingForLine,
5180
- buildMeasures,
5358
+ encodingAdapter([
5359
+ defaultEncodingForLine,
5360
+ buildMeasures
5361
+ ], [
5362
+ encodingForLine,
5363
+ buildMeasures
5364
+ ]),
5181
5365
  pivotAdapter([
5182
5366
  reshapeWithEncoding
5183
5367
  ], [
@@ -5251,6 +5435,17 @@ const registerAreaPercent = ()=>{
5251
5435
  Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
5252
5436
  Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
5253
5437
  };
5438
+ const defaultEncodingForScatter = (advancedVSeed)=>{
5439
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5440
+ const measures = findAllMeasures(vseedMeasures);
5441
+ const encoding = {};
5442
+ scatter_generateDefaultDimensionEncoding(dimensions, encoding);
5443
+ scatter_generateDefaultMeasureEncoding(measures, encoding);
5444
+ return {
5445
+ ...advancedVSeed,
5446
+ encoding
5447
+ };
5448
+ };
5254
5449
  const encodingForScatter = (advancedVSeed)=>{
5255
5450
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5256
5451
  const measures = findAllMeasures(vseedMeasures);
@@ -5271,23 +5466,24 @@ const scatter_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5271
5466
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensionsWithoutMeasureName.map((d)=>d.id));
5272
5467
  encoding.color = uniqueDimIds.slice(0);
5273
5468
  encoding.detail = uniqueDimIds.slice(0);
5274
- encoding.tooltip = uniqueDimIds;
5469
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
5275
5470
  encoding.label = [];
5276
5471
  encoding.row = [];
5277
5472
  encoding.column = [];
5278
5473
  };
5279
5474
  const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
5280
5475
  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
5476
  if (0 === encoding.color.length) encoding.color = [
5283
5477
  MeasureName
5284
5478
  ];
5479
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5285
5480
  if (0 === encoding.detail.length) encoding.detail = [
5286
5481
  MeasureName
5287
5482
  ];
5483
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
5484
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
5288
5485
  };
5289
5486
  const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
5290
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
5291
5487
  encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5292
5488
  };
5293
5489
  const scatter_generateMeasureEncoding = (measures, encoding)=>{
@@ -5297,6 +5493,11 @@ const scatter_generateMeasureEncoding = (measures, encoding)=>{
5297
5493
  if (color.length > 0) encoding.color = [
5298
5494
  color[0]
5299
5495
  ];
5496
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
5497
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
5498
+ ...encoding.tooltip || [],
5499
+ ...tooltip
5500
+ ]);
5300
5501
  };
5301
5502
  const buildMeasuresForScatter = (advancedVSeed, context)=>{
5302
5503
  const { vseed } = context;
@@ -5327,6 +5528,7 @@ const basicMeasuresToScatterMeasures = (basicMeasures)=>{
5327
5528
  else if (0 !== index) yMeasures.push(item);
5328
5529
  else xMeasures.push(item);
5329
5530
  }
5531
+ if (0 === yMeasures.length && xMeasures.length > 0) yMeasures.push(xMeasures[0]);
5330
5532
  return [
5331
5533
  {
5332
5534
  id: 'scatterMeasures',
@@ -5415,6 +5617,7 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
5415
5617
  if (xMeasures && xMeasures.children) {
5416
5618
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, (0, external_remeda_namespaceObject.uniqueBy)(dimensions, (d)=>d.id), (0, external_remeda_namespaceObject.uniqueBy)(xMeasures.children, (d)=>d.id), encoding, {
5417
5619
  foldMeasureValue: FoldXMeasureValue,
5620
+ foldMeasureId: FoldXMeasureId,
5418
5621
  colorItemAsId: true,
5419
5622
  colorMeasureId: getColorMeasureId(advancedVSeed)
5420
5623
  });
@@ -5425,6 +5628,7 @@ const reshapeWithScatterEncoding = (advancedVSeed, context)=>{
5425
5628
  if (yMeasures && yMeasures.children) {
5426
5629
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], (0, external_remeda_namespaceObject.uniqueBy)(dimensions, (d)=>d.id), (0, external_remeda_namespaceObject.uniqueBy)(yMeasures.children, (d)=>d.id), encoding, {
5427
5630
  foldMeasureValue: FoldYMeasureValue,
5631
+ foldMeasureId: FoldYMeasureId,
5428
5632
  colorItemAsId: true,
5429
5633
  colorMeasureId: getColorMeasureId(advancedVSeed)
5430
5634
  });
@@ -5530,8 +5734,13 @@ const scatterAdvancedPipeline = [
5530
5734
  default_defaultMeasures_defaultMeasures,
5531
5735
  defaultDimensions_defaultDimensions,
5532
5736
  defaultMeasureName_defaultMeasureName,
5533
- encodingForScatter,
5534
- buildMeasuresForScatter,
5737
+ encodingAdapter([
5738
+ defaultEncodingForScatter,
5739
+ buildMeasuresForScatter
5740
+ ], [
5741
+ encodingForScatter,
5742
+ buildMeasuresForScatter
5743
+ ]),
5535
5744
  pivotAdapter([
5536
5745
  reshapeWithScatterEncoding
5537
5746
  ], [
@@ -5577,6 +5786,105 @@ const datasetScatter = (spec, context)=>{
5577
5786
  }
5578
5787
  };
5579
5788
  };
5789
+ const tooltipScatter = (spec, context)=>{
5790
+ const result = {
5791
+ ...spec
5792
+ };
5793
+ const { advancedVSeed } = context;
5794
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
5795
+ const baseConfig = advancedVSeed.config[chartType];
5796
+ const { tooltip = {
5797
+ enable: true
5798
+ } } = baseConfig;
5799
+ const { enable } = tooltip;
5800
+ const { foldInfoList } = datasetReshapeInfo[0];
5801
+ result.tooltip = {
5802
+ visible: enable,
5803
+ mark: {
5804
+ title: {
5805
+ visible: false
5806
+ },
5807
+ content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList)
5808
+ },
5809
+ dimension: {
5810
+ visible: false
5811
+ }
5812
+ };
5813
+ return result;
5814
+ };
5815
+ const tooltipScatter_createMarkContent = (tooltip, dimensions, measures, locale, foldInfoList)=>{
5816
+ const dims = dimensions.filter((item)=>tooltip.includes(item.id));
5817
+ const meas = measures.filter((item)=>tooltip.includes(item.id));
5818
+ const dimContent = dims.map((item)=>({
5819
+ visible: true,
5820
+ hasShape: true,
5821
+ shapeType: 'rectRound',
5822
+ key: (v)=>{
5823
+ const datum = v;
5824
+ if (item.alias || item.id) return item.alias || item.id;
5825
+ return datum && datum[item.id];
5826
+ },
5827
+ value: (v)=>{
5828
+ const datum = v;
5829
+ return datum && datum[item.id];
5830
+ }
5831
+ }));
5832
+ const meaContent = meas.map((item)=>({
5833
+ visible: true,
5834
+ hasShape: true,
5835
+ shapeType: 'rectRound',
5836
+ key: item.alias || item.id,
5837
+ value: (v)=>{
5838
+ const datum = v;
5839
+ if (!datum) return '';
5840
+ const id = item.id;
5841
+ if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
5842
+ const originalData = datum[ORIGINAL_DATA];
5843
+ const value = originalData[id];
5844
+ const measure = findMeasureById(measures, id);
5845
+ if (!measure) return String(value);
5846
+ const { format = {}, autoFormat = true } = measure;
5847
+ if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
5848
+ const formatter = createFormatter(format);
5849
+ return formatter(value);
5850
+ }
5851
+ if (autoFormat) return autoFormatter(value, locale);
5852
+ return String(value);
5853
+ }
5854
+ }));
5855
+ const foldMeaContent = foldInfoList.map((foldInfo)=>({
5856
+ visible: true,
5857
+ hasShape: true,
5858
+ shapeType: 'rectRound',
5859
+ key: (v)=>{
5860
+ const { measureId, foldMap } = foldInfo;
5861
+ const datum = v;
5862
+ const id = datum[measureId];
5863
+ return foldMap[id] || id;
5864
+ },
5865
+ value: (v)=>{
5866
+ const { measureId, measureValue } = foldInfo;
5867
+ const datum = v;
5868
+ if (!datum) return '';
5869
+ const value = datum[measureValue];
5870
+ const id = datum[measureId];
5871
+ const measure = findMeasureById(measures, id);
5872
+ if (!measure) return String(value);
5873
+ const { format = {}, autoFormat = true } = measure;
5874
+ if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
5875
+ const formatter = createFormatter(format);
5876
+ return formatter(value);
5877
+ }
5878
+ if (autoFormat) return autoFormatter(value, locale);
5879
+ return String(value);
5880
+ }
5881
+ }));
5882
+ return [
5883
+ ...dimContent,
5884
+ ...foldMeaContent,
5885
+ ...meaContent
5886
+ ];
5887
+ };
5580
5888
  const horizontalCrosshairLine = (spec, context)=>{
5581
5889
  const result = {
5582
5890
  ...spec
@@ -5630,7 +5938,7 @@ const scatter = [
5630
5938
  xLinear,
5631
5939
  yLinear,
5632
5940
  label_label,
5633
- tooltip_tooltip,
5941
+ tooltipScatter,
5634
5942
  colorAdapter(discreteLegend, colorLegend),
5635
5943
  verticalCrosshairLine,
5636
5944
  horizontalCrosshairLine,
@@ -5655,7 +5963,7 @@ const pivotScatter = [
5655
5963
  xLinear,
5656
5964
  yLinear,
5657
5965
  label_label,
5658
- tooltip_tooltip,
5966
+ tooltipScatter,
5659
5967
  verticalCrosshairLine,
5660
5968
  horizontalCrosshairLine,
5661
5969
  colorPointStyleFill(pointStyle_pointStyle),
@@ -5676,6 +5984,17 @@ const registerScatter = ()=>{
5676
5984
  Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
5677
5985
  Builder._specPipelineMap.scatter = scatterSpecPipeline;
5678
5986
  };
5987
+ const defaultEncodingForDualAxis = (advancedVSeed)=>{
5988
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5989
+ const measures = findAllMeasures(vseedMeasures);
5990
+ const encoding = {};
5991
+ dualAxis_generateDefaultDimensionEncoding(dimensions, encoding);
5992
+ dualAxis_generateDefaultMeasureEncoding(measures, encoding);
5993
+ return {
5994
+ ...advancedVSeed,
5995
+ encoding
5996
+ };
5997
+ };
5679
5998
  const encodingForDualAxis = (advancedVSeed)=>{
5680
5999
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5681
6000
  const measures = findAllMeasures(vseedMeasures);
@@ -5697,35 +6016,39 @@ const dualAxis_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
5697
6016
  encoding.x = uniqueDimIds.slice(0, 1);
5698
6017
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
5699
6018
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
5700
- encoding.tooltip = uniqueDimIds;
6019
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
5701
6020
  encoding.label = [];
5702
6021
  encoding.row = [];
5703
6022
  encoding.column = [];
5704
6023
  };
5705
6024
  const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
5706
6025
  encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
5707
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5708
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5709
6026
  if (0 === encoding.x.length) encoding.x = [
5710
6027
  dimensions[0].id
5711
6028
  ];
6029
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5712
6030
  if (0 === encoding.color.length) encoding.color = [
5713
6031
  MeasureName
5714
6032
  ];
6033
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5715
6034
  if (0 === encoding.detail.length) encoding.detail = [
5716
6035
  MeasureName
5717
6036
  ];
6037
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
6038
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
5718
6039
  };
5719
6040
  const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
5720
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
5721
6041
  encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5722
6042
  };
5723
6043
  const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
5724
- encoding.tooltip = measures.map((item)=>item.id);
5725
6044
  encoding.y = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5726
6045
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5727
6046
  if (color.length > 0) encoding.color = color;
5728
- return encoding;
6047
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
6048
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
6049
+ ...encoding.tooltip || [],
6050
+ ...tooltip
6051
+ ]);
5729
6052
  };
5730
6053
  const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
5731
6054
  const { vseed } = context;
@@ -5982,8 +6305,13 @@ const dualAxisAdvancedPipeline = [
5982
6305
  default_defaultMeasures_defaultMeasures,
5983
6306
  defaultDimensions_defaultDimensions,
5984
6307
  defaultMeasureName_defaultMeasureName,
5985
- encodingForDualAxis,
5986
- buildMeasuresForDualAxis,
6308
+ encodingAdapter([
6309
+ defaultEncodingForDualAxis,
6310
+ buildMeasuresForDualAxis
6311
+ ], [
6312
+ encodingForDualAxis,
6313
+ buildMeasuresForDualAxis
6314
+ ]),
5987
6315
  pivotAdapter([
5988
6316
  reshapeWithDualEncoding
5989
6317
  ], [
@@ -6075,7 +6403,7 @@ const initDualAxisSecondary = (spec, context)=>{
6075
6403
  const dualChartTypePrimary = (spec, context)=>{
6076
6404
  const result = {
6077
6405
  ...spec,
6078
- zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX
6406
+ zIndex: 1001
6079
6407
  };
6080
6408
  const { advancedVSeed, vseed } = context;
6081
6409
  const { chartType } = vseed;
@@ -6095,7 +6423,7 @@ const dualChartTypePrimary = (spec, context)=>{
6095
6423
  break;
6096
6424
  case 'column':
6097
6425
  result.type = 'bar';
6098
- result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
6426
+ result.zIndex = 1000;
6099
6427
  break;
6100
6428
  case 'columnParallel':
6101
6429
  {
@@ -6106,7 +6434,7 @@ const dualChartTypePrimary = (spec, context)=>{
6106
6434
  datasetReshapeInfo[0].unfoldInfo.encodingDetail
6107
6435
  ];
6108
6436
  columnSpec.type = 'bar';
6109
- result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
6437
+ result.zIndex = 1000;
6110
6438
  break;
6111
6439
  }
6112
6440
  case 'columnPercent':
@@ -6131,7 +6459,7 @@ const dualChartTypePrimary = (spec, context)=>{
6131
6459
  const dualChartTypeSecondary = (spec, context)=>{
6132
6460
  const result = {
6133
6461
  ...spec,
6134
- zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX
6462
+ zIndex: 1001
6135
6463
  };
6136
6464
  const { advancedVSeed, vseed } = context;
6137
6465
  const { chartType } = vseed;
@@ -6151,7 +6479,7 @@ const dualChartTypeSecondary = (spec, context)=>{
6151
6479
  break;
6152
6480
  case 'column':
6153
6481
  result.type = 'bar';
6154
- result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
6482
+ result.zIndex = 1000;
6155
6483
  break;
6156
6484
  case 'columnParallel':
6157
6485
  {
@@ -6162,7 +6490,7 @@ const dualChartTypeSecondary = (spec, context)=>{
6162
6490
  datasetReshapeInfo[0].unfoldInfo.encodingDetail
6163
6491
  ];
6164
6492
  columnSpec.type = 'bar';
6165
- result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
6493
+ result.zIndex = 1000;
6166
6494
  break;
6167
6495
  }
6168
6496
  case 'columnPercent':
@@ -6340,7 +6668,7 @@ const tooltipPrimary = (spec, context)=>{
6340
6668
  ...spec
6341
6669
  };
6342
6670
  const { advancedVSeed } = context;
6343
- const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
6671
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
6344
6672
  const baseConfig = advancedVSeed.config[chartType];
6345
6673
  const { tooltip = {
6346
6674
  enable: true
@@ -6348,68 +6676,19 @@ const tooltipPrimary = (spec, context)=>{
6348
6676
  const { enable } = tooltip;
6349
6677
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
6350
6678
  const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
6351
- const { measureId, measureValue, measureName } = foldInfoList[0];
6352
- const { encodingColor: colorName } = unfoldInfo;
6353
6679
  result.tooltip = {
6354
6680
  visible: enable,
6355
6681
  mark: {
6356
6682
  title: {
6357
- visible: true
6683
+ visible: false
6358
6684
  },
6359
- content: [
6360
- ...dimensions.map((item)=>({
6361
- visible: true,
6362
- hasShape: true,
6363
- shapeType: 'rectRound',
6364
- key: (datum)=>{
6365
- if (item.alias || item.id) return item.alias || item.id;
6366
- return datum && datum[item.id];
6367
- },
6368
- value: (datum)=>datum && datum[item.id]
6369
- })),
6370
- {
6371
- visible: true,
6372
- hasShape: true,
6373
- key: (datum)=>datum && datum[measureName || colorName] || '',
6374
- value: (datum)=>{
6375
- if (!datum) return '';
6376
- const value = datum[measureValue];
6377
- const id = datum[measureId];
6378
- const measure = findMeasureById(measures, id);
6379
- if (!measure) return String(value);
6380
- const { format = {}, autoFormat = true } = measure;
6381
- if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
6382
- const formatter = createFormatter(format);
6383
- return formatter(value);
6384
- }
6385
- if (autoFormat) return autoFormatter(value, locale);
6386
- return String(value);
6387
- }
6388
- }
6389
- ]
6685
+ content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList[0], unfoldInfo)
6390
6686
  },
6391
6687
  dimension: {
6392
- content: [
6393
- {
6394
- visible: true,
6395
- key: (datum)=>datum && datum[colorName] || '',
6396
- value: (datum)=>{
6397
- if (!datum) return '';
6398
- const value = datum[measureValue];
6399
- const id = datum[measureId];
6400
- const measure = findMeasureById(measures, id);
6401
- if (!measure) return String(value);
6402
- const { format = {}, autoFormat = true } = measure;
6403
- if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
6404
- const formatter = createFormatter(format);
6405
- return formatter(value);
6406
- }
6407
- if (autoFormat) return autoFormatter(value, locale);
6408
- return String(value);
6409
- },
6410
- shapeType: 'rectRound'
6411
- }
6412
- ]
6688
+ title: {
6689
+ visible: true
6690
+ },
6691
+ content: createDimensionContent(measures, foldInfoList[0], unfoldInfo, locale)
6413
6692
  }
6414
6693
  };
6415
6694
  return result;
@@ -6419,7 +6698,7 @@ const tooltipSecondary = (spec, context)=>{
6419
6698
  ...spec
6420
6699
  };
6421
6700
  const { advancedVSeed } = context;
6422
- const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
6701
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
6423
6702
  const baseConfig = advancedVSeed.config[chartType];
6424
6703
  const { tooltip = {
6425
6704
  enable: true
@@ -6428,68 +6707,19 @@ const tooltipSecondary = (spec, context)=>{
6428
6707
  if ((0, external_remeda_namespaceObject.isNullish)(datasetReshapeInfo[0].foldInfoList?.[1])) return result;
6429
6708
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
6430
6709
  const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
6431
- const { measureId, measureValue, measureName } = foldInfoList[1];
6432
- const { encodingColorId } = unfoldInfo;
6433
6710
  result.tooltip = {
6434
6711
  visible: enable,
6435
6712
  mark: {
6436
6713
  title: {
6437
- visible: true
6714
+ visible: false
6438
6715
  },
6439
- content: [
6440
- ...dimensions.map((item)=>({
6441
- visible: true,
6442
- hasShape: true,
6443
- shapeType: 'rectRound',
6444
- key: (datum)=>{
6445
- if (item.alias || item.id) return item.alias || item.id;
6446
- return datum && datum[item.id];
6447
- },
6448
- value: (datum)=>datum && datum[item.id]
6449
- })),
6450
- {
6451
- visible: true,
6452
- hasShape: true,
6453
- key: (datum)=>datum && datum[measureName || encodingColorId] || '',
6454
- value: (datum)=>{
6455
- if (!datum) return '';
6456
- const value = datum[measureValue];
6457
- const id = datum[measureId];
6458
- const measure = findMeasureById(measures, id);
6459
- if (!measure) return String(value);
6460
- const { format = {}, autoFormat = true } = measure;
6461
- if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
6462
- const formatter = createFormatter(format);
6463
- return formatter(value);
6464
- }
6465
- if (autoFormat) return autoFormatter(value, locale);
6466
- return String(value);
6467
- }
6468
- }
6469
- ]
6716
+ content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList[1], unfoldInfo)
6470
6717
  },
6471
6718
  dimension: {
6472
- content: [
6473
- {
6474
- visible: true,
6475
- key: (datum)=>datum && datum[encodingColorId] || '',
6476
- value: (datum)=>{
6477
- if (!datum) return '';
6478
- const value = datum[measureValue];
6479
- const id = datum[measureId];
6480
- const measure = findMeasureById(measures, id);
6481
- if (!measure) return String(value);
6482
- const { format = {}, autoFormat = true } = measure;
6483
- if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
6484
- const formatter = createFormatter(format);
6485
- return formatter(value);
6486
- }
6487
- if (autoFormat) return autoFormatter(value, locale);
6488
- return String(value);
6489
- },
6490
- shapeType: 'rectRound'
6491
- }
6492
- ]
6719
+ title: {
6720
+ visible: true
6721
+ },
6722
+ content: createDimensionContent(measures, foldInfoList[1], unfoldInfo, locale)
6493
6723
  }
6494
6724
  };
6495
6725
  return result;
@@ -6506,7 +6736,8 @@ const yLinearPrimary = (spec, context)=>{
6506
6736
  const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis;
6507
6737
  const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
6508
6738
  const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
6509
- if (foldInfoList?.[0] && (0, external_remeda_namespaceObject.isEmpty)(foldInfoList[0].foldMap)) return result;
6739
+ if ((0, external_remeda_namespaceObject.isNullish)(foldInfoList?.[0])) return result;
6740
+ const isEmptySecondary = (0, external_remeda_namespaceObject.isEmpty)(foldInfoList?.[0].foldMap);
6510
6741
  const id = `${reshapeInfoId}-primary-axis`;
6511
6742
  const seriesIds = [
6512
6743
  `${reshapeInfoId}-primary-series`,
@@ -6529,7 +6760,7 @@ const yLinearPrimary = (spec, context)=>{
6529
6760
  }
6530
6761
  const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
6531
6762
  const linearAxis = {
6532
- visible,
6763
+ visible: isEmptySecondary ? false : visible,
6533
6764
  id,
6534
6765
  seriesId,
6535
6766
  type: log ? 'log' : 'linear',
@@ -6582,7 +6813,7 @@ const yLinearPrimary = (spec, context)=>{
6582
6813
  }
6583
6814
  },
6584
6815
  innerOffset: {
6585
- top: LINEAR_AXIS_INNER_OFFSET_TOP
6816
+ top: 7
6586
6817
  }
6587
6818
  };
6588
6819
  result.axes = [
@@ -6604,6 +6835,8 @@ const yLinearSecondary = (spec, context)=>{
6604
6835
  const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
6605
6836
  const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
6606
6837
  if ((0, external_remeda_namespaceObject.isNullish)(foldInfoList?.[1])) return result;
6838
+ const isEmptySecondary = (0, external_remeda_namespaceObject.isEmpty)(foldInfoList?.[1].foldMap);
6839
+ const onlySecondary = (0, external_remeda_namespaceObject.isEmpty)(foldInfoList?.[0].foldMap) && !isEmptySecondary;
6607
6840
  const sync = {
6608
6841
  axisId: `${reshapeInfoId}-primary-axis`,
6609
6842
  zeroAlign: true
@@ -6631,7 +6864,7 @@ const yLinearSecondary = (spec, context)=>{
6631
6864
  }
6632
6865
  const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
6633
6866
  const linearAxis = {
6634
- visible,
6867
+ visible: isEmptySecondary ? false : visible,
6635
6868
  id,
6636
6869
  seriesId,
6637
6870
  sync,
@@ -6671,7 +6904,7 @@ const yLinearSecondary = (spec, context)=>{
6671
6904
  }
6672
6905
  },
6673
6906
  grid: {
6674
- visible: grid?.visible,
6907
+ visible: onlySecondary ? true : grid?.visible,
6675
6908
  style: {
6676
6909
  lineWidth: grid?.gridWidth,
6677
6910
  stroke: grid?.gridColor
@@ -6685,7 +6918,7 @@ const yLinearSecondary = (spec, context)=>{
6685
6918
  }
6686
6919
  },
6687
6920
  innerOffset: {
6688
- top: LINEAR_AXIS_INNER_OFFSET_TOP
6921
+ top: 7
6689
6922
  }
6690
6923
  };
6691
6924
  result.axes = [
@@ -6816,6 +7049,17 @@ const registerDualAxis = ()=>{
6816
7049
  Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
6817
7050
  Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
6818
7051
  };
7052
+ const defaultEncodingForPie = (advancedVSeed)=>{
7053
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7054
+ const measures = findAllMeasures(vseedMeasures);
7055
+ const encoding = {};
7056
+ pie_generateDefaultDimensionEncoding(dimensions, encoding);
7057
+ pie_generateDefaultMeasureEncoding(measures, encoding);
7058
+ return {
7059
+ ...advancedVSeed,
7060
+ encoding
7061
+ };
7062
+ };
6819
7063
  const encodingForPie = (advancedVSeed)=>{
6820
7064
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
6821
7065
  const measures = findAllMeasures(vseedMeasures);
@@ -6835,38 +7079,48 @@ const pie_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
6835
7079
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
6836
7080
  encoding.color = uniqueDimIds.slice(0);
6837
7081
  encoding.detail = uniqueDimIds.slice(0);
6838
- encoding.tooltip = uniqueDimIds;
7082
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
6839
7083
  encoding.label = [];
6840
7084
  encoding.row = [];
6841
7085
  encoding.column = [];
6842
7086
  };
6843
7087
  const pie_generateDimensionEncoding = (dimensions, encoding)=>{
6844
7088
  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
7089
  if (0 === encoding.color.length) encoding.color = [
6847
7090
  MeasureName
6848
7091
  ];
7092
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
6849
7093
  if (0 === encoding.detail.length) encoding.detail = [
6850
7094
  MeasureName
6851
7095
  ];
7096
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
7097
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
6852
7098
  };
6853
7099
  const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
6854
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
6855
7100
  encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
6856
7101
  };
6857
7102
  const pie_generateMeasureEncoding = (measures, encoding)=>{
6858
- encoding.tooltip = measures.map((item)=>item.id);
6859
7103
  encoding.angle = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
6860
7104
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
6861
7105
  if (color.length > 0) encoding.color = color;
7106
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
7107
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
7108
+ ...encoding.tooltip || [],
7109
+ ...tooltip
7110
+ ]);
6862
7111
  };
6863
7112
  const pieAdvancedPipeline = [
6864
7113
  initAdvancedVSeed_initAdvancedVSeed,
6865
7114
  default_defaultMeasures_defaultMeasures,
6866
7115
  defaultDimensions_defaultDimensions,
6867
7116
  defaultMeasureName_defaultMeasureName,
6868
- encodingForPie,
6869
- buildMeasures,
7117
+ encodingAdapter([
7118
+ defaultEncodingForPie,
7119
+ buildMeasures
7120
+ ], [
7121
+ encodingForPie,
7122
+ buildMeasures
7123
+ ]),
6870
7124
  pivotAdapter([
6871
7125
  reshapeWithEncoding
6872
7126
  ], [
@@ -6985,8 +7239,13 @@ const donutAdvancedPipeline = [
6985
7239
  default_defaultMeasures_defaultMeasures,
6986
7240
  defaultDimensions_defaultDimensions,
6987
7241
  defaultMeasureName_defaultMeasureName,
6988
- buildMeasures,
6989
- encodingForPie,
7242
+ encodingAdapter([
7243
+ defaultEncodingForPie,
7244
+ buildMeasures
7245
+ ], [
7246
+ encodingForPie,
7247
+ buildMeasures
7248
+ ]),
6990
7249
  pivotAdapter([
6991
7250
  reshapeWithEncoding
6992
7251
  ], [
@@ -7062,6 +7321,17 @@ const registerDonut = ()=>{
7062
7321
  Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
7063
7322
  Builder._specPipelineMap.donut = donutSpecPipeline;
7064
7323
  };
7324
+ const defaultEncodingForRose = (advancedVSeed)=>{
7325
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7326
+ const measures = findAllMeasures(vseedMeasures);
7327
+ const encoding = {};
7328
+ rose_generateDefaultDimensionEncoding(dimensions, encoding);
7329
+ rose_generateDefaultMeasureEncoding(measures, encoding);
7330
+ return {
7331
+ ...advancedVSeed,
7332
+ encoding
7333
+ };
7334
+ };
7065
7335
  const encodingForRose = (advancedVSeed)=>{
7066
7336
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7067
7337
  const measures = findAllMeasures(vseedMeasures);
@@ -7083,42 +7353,52 @@ const rose_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7083
7353
  encoding.angle = uniqueDimIds.slice(0, 1);
7084
7354
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
7085
7355
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
7086
- encoding.tooltip = uniqueDimIds;
7356
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7087
7357
  encoding.label = [];
7088
7358
  encoding.row = [];
7089
7359
  encoding.column = [];
7090
7360
  };
7091
7361
  const rose_generateDimensionEncoding = (dimensions, encoding)=>{
7092
7362
  encoding.angle = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7093
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7094
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7095
7363
  if (0 === encoding.angle.length) encoding.angle = [
7096
7364
  dimensions[0].id
7097
7365
  ];
7366
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7098
7367
  if (0 === encoding.color.length) encoding.color = [
7099
7368
  MeasureName
7100
7369
  ];
7370
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7101
7371
  if (0 === encoding.detail.length) encoding.detail = [
7102
7372
  MeasureName
7103
7373
  ];
7374
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
7375
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7104
7376
  };
7105
7377
  const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
7106
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7107
7378
  encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7108
7379
  };
7109
7380
  const rose_generateMeasureEncoding = (measures, encoding)=>{
7110
- encoding.tooltip = measures.map((item)=>item.id);
7111
7381
  encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7112
7382
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7113
7383
  if (color.length > 0) encoding.color = color;
7384
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
7385
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
7386
+ ...encoding.tooltip || [],
7387
+ ...tooltip
7388
+ ]);
7114
7389
  };
7115
7390
  const roseAdvancedPipeline = [
7116
7391
  initAdvancedVSeed_initAdvancedVSeed,
7117
7392
  default_defaultMeasures_defaultMeasures,
7118
7393
  defaultDimensions_defaultDimensions,
7119
7394
  defaultMeasureName_defaultMeasureName,
7120
- encodingForRose,
7121
- buildMeasures,
7395
+ encodingAdapter([
7396
+ defaultEncodingForRose,
7397
+ buildMeasures
7398
+ ], [
7399
+ encodingForRose,
7400
+ buildMeasures
7401
+ ]),
7122
7402
  pivotAdapter([
7123
7403
  reshapeWithEncoding
7124
7404
  ], [
@@ -7317,8 +7597,13 @@ const roseParallelAdvancedPipeline = [
7317
7597
  default_defaultMeasures_defaultMeasures,
7318
7598
  defaultDimensions_defaultDimensions,
7319
7599
  defaultMeasureName_defaultMeasureName,
7320
- encodingForRose,
7321
- buildMeasures,
7600
+ encodingAdapter([
7601
+ defaultEncodingForRose,
7602
+ buildMeasures
7603
+ ], [
7604
+ encodingForRose,
7605
+ buildMeasures
7606
+ ]),
7322
7607
  pivotAdapter([
7323
7608
  reshapeWithEncoding
7324
7609
  ], [
@@ -7424,6 +7709,17 @@ const registerRoseParallel = ()=>{
7424
7709
  Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
7425
7710
  Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
7426
7711
  };
7712
+ const defaultEncodingForRadar = (advancedVSeed)=>{
7713
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7714
+ const measures = findAllMeasures(vseedMeasures);
7715
+ const encoding = {};
7716
+ radar_generateDefaultDimensionEncoding(dimensions, encoding);
7717
+ radar_generateDefaultMeasureEncoding(measures, encoding);
7718
+ return {
7719
+ ...advancedVSeed,
7720
+ encoding
7721
+ };
7722
+ };
7427
7723
  const encodingForRadar = (advancedVSeed)=>{
7428
7724
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7429
7725
  const measures = findAllMeasures(vseedMeasures);
@@ -7443,7 +7739,7 @@ const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7443
7739
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
7444
7740
  encoding.angle = uniqueDimIds.slice(0, 1);
7445
7741
  encoding.color = uniqueDimIds.slice(1);
7446
- encoding.tooltip = uniqueDimIds;
7742
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7447
7743
  encoding.detail = [];
7448
7744
  encoding.label = [];
7449
7745
  encoding.row = [];
@@ -7451,35 +7747,45 @@ const radar_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7451
7747
  };
7452
7748
  const radar_generateDimensionEncoding = (dimensions, encoding)=>{
7453
7749
  encoding.angle = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7454
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7455
- encoding.detail = [];
7456
7750
  if (0 === encoding.angle.length) encoding.angle = [
7457
7751
  dimensions[0].id
7458
7752
  ];
7753
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7459
7754
  if (0 === encoding.color.length) encoding.color = [
7460
7755
  MeasureName
7461
7756
  ];
7757
+ encoding.detail = [];
7462
7758
  if (0 === encoding.detail.length) encoding.detail = [
7463
7759
  MeasureName
7464
7760
  ];
7761
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
7762
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7465
7763
  };
7466
7764
  const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
7467
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7468
7765
  encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7469
7766
  };
7470
7767
  const radar_generateMeasureEncoding = (measures, encoding)=>{
7471
- encoding.tooltip = measures.map((item)=>item.id);
7472
7768
  encoding.radius = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7473
7769
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7474
7770
  if (color.length > 0) encoding.color = color;
7771
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
7772
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
7773
+ ...encoding.tooltip || [],
7774
+ ...tooltip
7775
+ ]);
7475
7776
  };
7476
7777
  const radarAdvancedPipeline = [
7477
7778
  initAdvancedVSeed_initAdvancedVSeed,
7478
7779
  default_defaultMeasures_defaultMeasures,
7479
7780
  defaultDimensions_defaultDimensions,
7480
7781
  defaultMeasureName_defaultMeasureName,
7481
- encodingForRadar,
7482
- buildMeasures,
7782
+ encodingAdapter([
7783
+ defaultEncodingForRadar,
7784
+ buildMeasures
7785
+ ], [
7786
+ encodingForRadar,
7787
+ buildMeasures
7788
+ ]),
7483
7789
  pivotAdapter([
7484
7790
  reshapeWithEncoding
7485
7791
  ], [
@@ -7613,6 +7919,17 @@ const registerRadar = ()=>{
7613
7919
  Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
7614
7920
  Builder._specPipelineMap.radar = radarSpecPipeline;
7615
7921
  };
7922
+ const defaultEncodingForFunnel = (advancedVSeed)=>{
7923
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7924
+ const measures = findAllMeasures(vseedMeasures);
7925
+ const encoding = {};
7926
+ funnel_generateDefaultDimensionEncoding(dimensions, encoding);
7927
+ funnel_generateDefaultMeasureEncoding(measures, encoding);
7928
+ return {
7929
+ ...advancedVSeed,
7930
+ encoding
7931
+ };
7932
+ };
7616
7933
  const encodingForFunnel = (advancedVSeed)=>{
7617
7934
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7618
7935
  const measures = findAllMeasures(vseedMeasures);
@@ -7632,40 +7949,50 @@ const funnel_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7632
7949
  const uniqueDimIds = (0, external_remeda_namespaceObject.unique)(dimensions.map((d)=>d.id));
7633
7950
  encoding.color = uniqueDimIds.slice(0);
7634
7951
  encoding.detail = uniqueDimIds.slice(0);
7635
- encoding.tooltip = uniqueDimIds;
7952
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7636
7953
  encoding.label = [];
7637
7954
  encoding.row = [];
7638
7955
  encoding.column = [];
7639
7956
  };
7640
7957
  const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
7641
7958
  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
7959
  if (0 === encoding.color.length) encoding.color = [
7644
7960
  MeasureName
7645
7961
  ];
7962
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7646
7963
  if (0 === encoding.detail.length) encoding.detail = [
7647
7964
  MeasureName
7648
7965
  ];
7966
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
7967
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7649
7968
  };
7650
7969
  const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
7651
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7652
7970
  encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7653
7971
  };
7654
7972
  const funnel_generateMeasureEncoding = (measures, encoding)=>{
7655
- encoding.tooltip = measures.map((item)=>item.id);
7656
7973
  encoding.size = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7657
7974
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7658
7975
  if (color.length > 0) encoding.color = [
7659
7976
  color[0]
7660
7977
  ];
7978
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
7979
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
7980
+ ...encoding.tooltip || [],
7981
+ ...tooltip
7982
+ ]);
7661
7983
  };
7662
7984
  const funnelAdvancedPipeline = [
7663
7985
  initAdvancedVSeed_initAdvancedVSeed,
7664
7986
  default_defaultMeasures_defaultMeasures,
7665
7987
  defaultDimensions_defaultDimensions,
7666
7988
  defaultMeasureName_defaultMeasureName,
7667
- encodingForFunnel,
7668
- buildMeasures,
7989
+ encodingAdapter([
7990
+ defaultEncodingForFunnel,
7991
+ buildMeasures
7992
+ ], [
7993
+ encodingForFunnel,
7994
+ buildMeasures
7995
+ ]),
7669
7996
  pivotAdapter([
7670
7997
  reshapeWithEncoding
7671
7998
  ], [
@@ -7778,6 +8105,17 @@ const registerFunnel = ()=>{
7778
8105
  Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
7779
8106
  Builder._specPipelineMap.funnel = funnelSpecPipeline;
7780
8107
  };
8108
+ const defaultEncodingForHeatmap = (advancedVSeed)=>{
8109
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
8110
+ const measures = findAllMeasures(vseedMeasures);
8111
+ const encoding = {};
8112
+ heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
8113
+ heatmap_generateDefaultMeasureEncoding(measures, encoding);
8114
+ return {
8115
+ ...advancedVSeed,
8116
+ encoding
8117
+ };
8118
+ };
7781
8119
  const encodingForHeatmap = (advancedVSeed)=>{
7782
8120
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7783
8121
  const measures = findAllMeasures(vseedMeasures);
@@ -7800,50 +8138,59 @@ const heatmap_generateDefaultDimensionEncoding = (dimensions, encoding)=>{
7800
8138
  encoding.y = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
7801
8139
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
7802
8140
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
7803
- encoding.tooltip = uniqueDimIds;
8141
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7804
8142
  encoding.label = [];
7805
8143
  encoding.row = [];
7806
8144
  encoding.column = [];
7807
8145
  };
7808
8146
  const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
7809
8147
  encoding.x = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
7810
- encoding.y = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
7811
- encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7812
- encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7813
8148
  if (0 === encoding.x.length) encoding.x = [
7814
8149
  dimensions[0].id
7815
8150
  ];
8151
+ encoding.y = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
7816
8152
  if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
7817
8153
  else encoding.y = dimensions.slice(0).map((item)=>item.id);
8154
+ encoding.color = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7818
8155
  if (0 === encoding.color.length) encoding.color = [
7819
8156
  MeasureName
7820
8157
  ];
8158
+ encoding.detail = (0, external_remeda_namespaceObject.unique)(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7821
8159
  if (0 === encoding.detail.length) encoding.detail = [
7822
8160
  MeasureName
7823
8161
  ];
8162
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)(dimensions.map((item)=>item.id));
8163
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7824
8164
  };
7825
8165
  const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
7826
- encoding.tooltip = (0, external_remeda_namespaceObject.unique)(measures.map((item)=>item.id));
7827
8166
  const colorDims = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
7828
8167
  if (colorDims.length > 0) encoding.color = [
7829
8168
  colorDims[0]
7830
8169
  ];
7831
8170
  };
7832
8171
  const heatmap_generateMeasureEncoding = (measures, encoding)=>{
7833
- encoding.tooltip = measures.map((item)=>item.id);
7834
8172
  const color = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7835
8173
  if (color.length > 0) encoding.color = [
7836
8174
  color[0]
7837
8175
  ];
7838
- return encoding;
8176
+ const tooltip = (0, external_remeda_namespaceObject.unique)(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
8177
+ encoding.tooltip = (0, external_remeda_namespaceObject.unique)([
8178
+ ...encoding.tooltip || [],
8179
+ ...tooltip
8180
+ ]);
7839
8181
  };
7840
8182
  const heatmapAdvancedPipeline = [
7841
8183
  initAdvancedVSeed_initAdvancedVSeed,
7842
8184
  default_defaultMeasures_defaultMeasures,
7843
8185
  defaultDimensions_defaultDimensions,
7844
8186
  defaultMeasureName_defaultMeasureName,
7845
- encodingForHeatmap,
7846
- buildMeasures,
8187
+ encodingAdapter([
8188
+ defaultEncodingForHeatmap,
8189
+ buildMeasures
8190
+ ], [
8191
+ encodingForHeatmap,
8192
+ buildMeasures
8193
+ ]),
7847
8194
  pivotAdapter([
7848
8195
  reshapeWithEncoding
7849
8196
  ], [
@@ -7896,6 +8243,107 @@ const cellStyle = (spec)=>{
7896
8243
  }
7897
8244
  };
7898
8245
  };
8246
+ const tooltipHeatmap = (spec, context)=>{
8247
+ const result = {
8248
+ ...spec
8249
+ };
8250
+ const { advancedVSeed } = context;
8251
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
8252
+ const baseConfig = advancedVSeed.config[chartType];
8253
+ const { tooltip = {
8254
+ enable: true
8255
+ } } = baseConfig;
8256
+ const { enable } = tooltip;
8257
+ const { foldInfo } = datasetReshapeInfo[0];
8258
+ result.tooltip = {
8259
+ visible: enable,
8260
+ mark: {
8261
+ title: {
8262
+ visible: false
8263
+ },
8264
+ content: tooltipHeatmap_createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfo)
8265
+ },
8266
+ dimension: {
8267
+ visible: false
8268
+ }
8269
+ };
8270
+ return result;
8271
+ };
8272
+ const tooltipHeatmap_createMarkContent = (tooltip, dimensions, measures, locale, foldInfo)=>{
8273
+ const dims = dimensions.filter((item)=>tooltip.includes(item.id));
8274
+ const meas = measures.filter((item)=>tooltip.includes(item.id));
8275
+ const dimContent = dims.map((item)=>({
8276
+ visible: true,
8277
+ hasShape: true,
8278
+ shapeType: 'rectRound',
8279
+ key: (v)=>{
8280
+ const datum = v;
8281
+ if (item.alias || item.id) return item.alias || item.id;
8282
+ return datum && datum[item.id];
8283
+ },
8284
+ value: (v)=>{
8285
+ const datum = v;
8286
+ return datum && datum[item.id];
8287
+ }
8288
+ }));
8289
+ const meaContent = meas.map((item)=>({
8290
+ visible: true,
8291
+ hasShape: true,
8292
+ shapeType: 'rectRound',
8293
+ key: item.alias || item.id,
8294
+ value: (v)=>{
8295
+ const datum = v;
8296
+ if (!datum) return '';
8297
+ const id = item.id;
8298
+ if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
8299
+ const originalData = datum[ORIGINAL_DATA];
8300
+ const value = originalData[id];
8301
+ const measure = findMeasureById(measures, id);
8302
+ if (!measure) return String(value);
8303
+ const { format = {}, autoFormat = true } = measure;
8304
+ if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
8305
+ const formatter = createFormatter(format);
8306
+ return formatter(value);
8307
+ }
8308
+ if (autoFormat) return autoFormatter(value, locale);
8309
+ return String(value);
8310
+ }
8311
+ }));
8312
+ const foldMeaContent = [
8313
+ foldInfo
8314
+ ].map((foldInfo)=>({
8315
+ visible: true,
8316
+ hasShape: true,
8317
+ shapeType: 'rectRound',
8318
+ key: (v)=>{
8319
+ const { measureId, foldMap } = foldInfo;
8320
+ const datum = v;
8321
+ const id = datum[measureId];
8322
+ return foldMap[id] || id;
8323
+ },
8324
+ value: (v)=>{
8325
+ const { measureId, measureValue } = foldInfo;
8326
+ const datum = v;
8327
+ if (!datum) return '';
8328
+ const value = datum[measureValue];
8329
+ const id = datum[measureId];
8330
+ const measure = findMeasureById(measures, id);
8331
+ if (!measure) return String(value);
8332
+ const { format = {}, autoFormat = true } = measure;
8333
+ if (!(0, external_remeda_namespaceObject.isEmpty)(format)) {
8334
+ const formatter = createFormatter(format);
8335
+ return formatter(value);
8336
+ }
8337
+ if (autoFormat) return autoFormatter(value, locale);
8338
+ return String(value);
8339
+ }
8340
+ }));
8341
+ return [
8342
+ ...dimContent,
8343
+ ...foldMeaContent,
8344
+ ...meaContent
8345
+ ];
8346
+ };
7899
8347
  const initHeatmap = (spec, context)=>{
7900
8348
  const result = {
7901
8349
  ...spec
@@ -7939,7 +8387,7 @@ const heatmap = [
7939
8387
  labelColorInversion,
7940
8388
  colorAdapter(discreteLegend, colorLegend),
7941
8389
  colorCellStyleFill(cellStyle),
7942
- tooltip_tooltip,
8390
+ tooltipHeatmap,
7943
8391
  annotationPoint_annotationPoint,
7944
8392
  annotationVerticalLine_annotationVerticalLine,
7945
8393
  annotationHorizontalLine_annotationHorizontalLine,
@@ -7958,7 +8406,7 @@ const pivotHeatmap = [
7958
8406
  label_label,
7959
8407
  labelColorInversion,
7960
8408
  discreteLegend,
7961
- tooltip_tooltip,
8409
+ tooltipHeatmap,
7962
8410
  colorCellStyleFill(cellStyle),
7963
8411
  annotationPoint_annotationPoint,
7964
8412
  annotationVerticalLine_annotationVerticalLine,
@@ -9982,7 +10430,9 @@ exports.FoldMeasureName = __webpack_exports__.FoldMeasureName;
9982
10430
  exports.FoldMeasureValue = __webpack_exports__.FoldMeasureValue;
9983
10431
  exports.FoldPrimaryMeasureValue = __webpack_exports__.FoldPrimaryMeasureValue;
9984
10432
  exports.FoldSecondaryMeasureValue = __webpack_exports__.FoldSecondaryMeasureValue;
10433
+ exports.FoldXMeasureId = __webpack_exports__.FoldXMeasureId;
9985
10434
  exports.FoldXMeasureValue = __webpack_exports__.FoldXMeasureValue;
10435
+ exports.FoldYMeasureId = __webpack_exports__.FoldYMeasureId;
9986
10436
  exports.FoldYMeasureValue = __webpack_exports__.FoldYMeasureValue;
9987
10437
  exports.MeasureName = __webpack_exports__.MeasureName;
9988
10438
  exports.ORIGINAL_DATA = __webpack_exports__.ORIGINAL_DATA;
@@ -10192,7 +10642,9 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
10192
10642
  "FoldMeasureValue",
10193
10643
  "FoldPrimaryMeasureValue",
10194
10644
  "FoldSecondaryMeasureValue",
10645
+ "FoldXMeasureId",
10195
10646
  "FoldXMeasureValue",
10647
+ "FoldYMeasureId",
10196
10648
  "FoldYMeasureValue",
10197
10649
  "MeasureName",
10198
10650
  "ORIGINAL_DATA",