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