@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/umd/index.js CHANGED
@@ -62,7 +62,7 @@
62
62
  zYLinearAxis: ()=>zYLinearAxis,
63
63
  zMarkStyle: ()=>zMarkStyle,
64
64
  registerFunnel: ()=>registerFunnel,
65
- Separator: ()=>Separator,
65
+ Separator: ()=>"-",
66
66
  columnAdvancedPipeline: ()=>columnAdvancedPipeline,
67
67
  zLabel: ()=>zLabel,
68
68
  registerColumn: ()=>registerColumn,
@@ -91,12 +91,13 @@
91
91
  FoldMeasureId: ()=>FoldMeasureId,
92
92
  zColumnParallelConfig: ()=>zColumnParallelConfig,
93
93
  donutSpecPipeline: ()=>donutSpecPipeline,
94
+ FoldXMeasureId: ()=>FoldXMeasureId,
94
95
  registerAreaPercent: ()=>registerAreaPercent,
95
- zHeatmap: ()=>zHeatmap,
96
96
  zBarPercent: ()=>zBarPercent,
97
+ zHeatmap: ()=>zHeatmap,
97
98
  zScatterMeasure: ()=>zScatterMeasure,
98
- zTheme: ()=>zTheme,
99
99
  zDatum: ()=>zDatum,
100
+ zTheme: ()=>zTheme,
100
101
  barAdvancedPipeline: ()=>barAdvancedPipeline,
101
102
  zCustomThemeConfig: ()=>zCustomThemeConfig,
102
103
  registerColumnPercent: ()=>registerColumnPercent,
@@ -186,6 +187,7 @@
186
187
  zTableConfig: ()=>zTableConfig,
187
188
  zXBandAxis: ()=>zXBandAxis,
188
189
  zColumnPercentConfig: ()=>zColumnPercentConfig,
190
+ FoldYMeasureId: ()=>FoldYMeasureId,
189
191
  findMeasureById: ()=>findMeasureById,
190
192
  zVSeed: ()=>zVSeed,
191
193
  AngleEncoding: ()=>AngleEncoding,
@@ -1097,7 +1099,6 @@
1097
1099
  Builder._specPipelineMap.table = tableSpecPipeline;
1098
1100
  };
1099
1101
  const ORIGINAL_DATA = '__OriginalData__';
1100
- const Separator = '-';
1101
1102
  const FoldMeasureName = '__MeaName__';
1102
1103
  const FoldMeasureId = '__MeaId__';
1103
1104
  const FoldMeasureValue = '__MeaValue__';
@@ -1106,6 +1107,8 @@
1106
1107
  const FoldSecondaryMeasureValue = '__MeaSecondaryValue__';
1107
1108
  const FoldXMeasureValue = '__MeaXValue__';
1108
1109
  const FoldYMeasureValue = '__MeaYValue__';
1110
+ const FoldXMeasureId = '__MeaXId__';
1111
+ const FoldYMeasureId = '__MeaYId__';
1109
1112
  const XEncoding = '__Dim_X__';
1110
1113
  const YEncoding = '__Dim_Y__';
1111
1114
  const AngleEncoding = '__Dim_Angle__';
@@ -1628,6 +1631,25 @@
1628
1631
  if (!result.dimensions?.some((dim)=>dim.id === MeasureName)) result.dimensions?.push(MeaName);
1629
1632
  return result;
1630
1633
  };
1634
+ const encodingAdapter = (noEncodingPipeline, hasEncodingPipeline)=>(advancedVSeed, context)=>{
1635
+ const { dimensions = [], measures = [] } = advancedVSeed;
1636
+ const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
1637
+ const hasMeasureEncoding = measures.some((item)=>item.encoding);
1638
+ const hasEncoding = hasDimensionEncoding || hasMeasureEncoding;
1639
+ if (hasEncoding) return execPipeline(hasEncodingPipeline, context, advancedVSeed);
1640
+ return execPipeline(noEncodingPipeline, context, advancedVSeed);
1641
+ };
1642
+ const defaultEncodingForLine = (advancedVSeed)=>{
1643
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1644
+ const measures = findAllMeasures(vseedMeasures);
1645
+ const encoding = {};
1646
+ line_generateDefaultDimensionEncoding(dimensions, encoding);
1647
+ line_generateDefaultMeasureEncoding(measures, encoding);
1648
+ return {
1649
+ ...advancedVSeed,
1650
+ encoding
1651
+ };
1652
+ };
1631
1653
  const encodingForLine = (advancedVSeed)=>{
1632
1654
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1633
1655
  const measures = findAllMeasures(vseedMeasures);
@@ -1647,7 +1669,7 @@
1647
1669
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
1648
1670
  encoding.x = uniqueDimIds.slice(0, 1);
1649
1671
  encoding.color = uniqueDimIds.slice(1);
1650
- encoding.tooltip = uniqueDimIds;
1672
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
1651
1673
  encoding.detail = [];
1652
1674
  encoding.label = [];
1653
1675
  encoding.row = [];
@@ -1655,27 +1677,32 @@
1655
1677
  };
1656
1678
  const line_generateDimensionEncoding = (dimensions, encoding)=>{
1657
1679
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
1658
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1659
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1660
1680
  if (0 === encoding.x.length) encoding.x = [
1661
1681
  dimensions[0].id
1662
1682
  ];
1683
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1663
1684
  if (0 === encoding.color.length) encoding.color = [
1664
1685
  MeasureName
1665
1686
  ];
1687
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1666
1688
  if (0 === encoding.detail.length) encoding.detail = [
1667
1689
  MeasureName
1668
1690
  ];
1691
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
1692
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
1669
1693
  };
1670
1694
  const line_generateDefaultMeasureEncoding = (measures, encoding)=>{
1671
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
1672
1695
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1673
1696
  };
1674
1697
  const line_generateMeasureEncoding = (measures, encoding)=>{
1675
- encoding.tooltip = measures.map((item)=>item.id);
1676
1698
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
1677
1699
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1678
1700
  if (color.length > 0) encoding.color = color;
1701
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
1702
+ encoding.tooltip = chunk_QJLMYOTX_i([
1703
+ ...encoding.tooltip || [],
1704
+ ...tooltip
1705
+ ]);
1679
1706
  };
1680
1707
  const isMeasureTreeWithChildren = (vseed)=>{
1681
1708
  const { measures } = vseed;
@@ -1687,6 +1714,37 @@
1687
1714
  if (!measures) return false;
1688
1715
  return measures.some((measure)=>'parentId' in measure);
1689
1716
  };
1717
+ const normalizeMeasureTree = (measures)=>{
1718
+ const createEmptyMeasureGroup = ()=>({
1719
+ id: 'group',
1720
+ alias: '',
1721
+ children: []
1722
+ });
1723
+ let currentGroup = createEmptyMeasureGroup();
1724
+ const measureGroups = [];
1725
+ for (const measure of measures)if ('children' in measure) {
1726
+ if (currentGroup.children?.length) {
1727
+ currentGroup.id = [
1728
+ currentGroup.id,
1729
+ ...currentGroup.children.map((item)=>item.id)
1730
+ ].join('-');
1731
+ currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
1732
+ measureGroups.push(currentGroup);
1733
+ currentGroup = createEmptyMeasureGroup();
1734
+ }
1735
+ measureGroups.push(measure);
1736
+ } else currentGroup.children?.push(measure);
1737
+ if (currentGroup.children?.length) {
1738
+ currentGroup.id = [
1739
+ currentGroup.id,
1740
+ ...currentGroup.children.map((item)=>item.id)
1741
+ ].join('-');
1742
+ currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
1743
+ measureGroups.push(currentGroup);
1744
+ currentGroup = createEmptyMeasureGroup();
1745
+ }
1746
+ return measureGroups;
1747
+ };
1690
1748
  const measureDepth = (measures = [])=>{
1691
1749
  if (!measures) return 0;
1692
1750
  let depth = 1;
@@ -1738,7 +1796,7 @@
1738
1796
  const buildMeasures = (advancedVSeed, context)=>{
1739
1797
  const { vseed } = context;
1740
1798
  if (isMeasureTreeWithChildren(vseed)) {
1741
- advancedVSeed.measures = vseed.measures;
1799
+ advancedVSeed.measures = normalizeMeasureTree(vseed.measures);
1742
1800
  return advancedVSeed;
1743
1801
  }
1744
1802
  if (isMeasureTreeWithParentId(vseed)) {
@@ -1854,7 +1912,7 @@
1854
1912
  });
1855
1913
  const { dataset: finalDataset, unfoldInfo } = unfoldDimensions(foldedDataset, dimensions, encoding, {
1856
1914
  foldMeasureId,
1857
- separator: Separator,
1915
+ separator: "-",
1858
1916
  colorItemAsId
1859
1917
  });
1860
1918
  return {
@@ -2152,8 +2210,13 @@
2152
2210
  default_defaultMeasures_defaultMeasures,
2153
2211
  defaultDimensions_defaultDimensions,
2154
2212
  defaultMeasureName_defaultMeasureName,
2155
- encodingForLine,
2156
- buildMeasures,
2213
+ encodingAdapter([
2214
+ defaultEncodingForLine,
2215
+ buildMeasures
2216
+ ], [
2217
+ encodingForLine,
2218
+ buildMeasures
2219
+ ]),
2157
2220
  pivotAdapter([
2158
2221
  reshapeWithEncoding
2159
2222
  ], [
@@ -2428,10 +2491,6 @@
2428
2491
  ];
2429
2492
  return result;
2430
2493
  };
2431
- const ANNOTATION_Z_INDEX = 1000;
2432
- const LINEAR_AXIS_INNER_OFFSET_TOP = 7;
2433
- const DUAL_AXIS_CHART_COLUMN_Z_INDEX = 1000;
2434
- const DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX = 1001;
2435
2494
  const yLinear = (spec, context)=>{
2436
2495
  const result = {
2437
2496
  ...spec
@@ -2505,7 +2564,7 @@
2505
2564
  }
2506
2565
  },
2507
2566
  innerOffset: {
2508
- top: LINEAR_AXIS_INNER_OFFSET_TOP
2567
+ top: 7
2509
2568
  }
2510
2569
  };
2511
2570
  result.axes = [
@@ -3077,78 +3136,133 @@
3077
3136
  ...spec
3078
3137
  };
3079
3138
  const { advancedVSeed } = context;
3080
- const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
3139
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
3081
3140
  const baseConfig = advancedVSeed.config[chartType];
3082
3141
  const { tooltip = {
3083
3142
  enable: true
3084
3143
  } } = baseConfig;
3085
3144
  const { enable } = tooltip;
3086
- const { measureId, measureValue, measureName } = datasetReshapeInfo[0].foldInfo;
3087
- const { encodingColor: colorName } = datasetReshapeInfo[0].unfoldInfo;
3145
+ const { foldInfo, unfoldInfo } = datasetReshapeInfo[0];
3088
3146
  result.tooltip = {
3089
3147
  visible: enable,
3090
3148
  mark: {
3091
3149
  title: {
3092
- visible: true
3150
+ visible: false
3093
3151
  },
3094
- content: [
3095
- ...dimensions.map((item)=>({
3096
- visible: true,
3097
- hasShape: true,
3098
- shapeType: 'rectRound',
3099
- key: (datum)=>{
3100
- if (item.alias || item.id) return item.alias || item.id;
3101
- return datum && datum[item.id];
3102
- },
3103
- value: (datum)=>datum && datum[item.id]
3104
- })),
3105
- {
3106
- visible: true,
3107
- hasShape: true,
3108
- key: (datum)=>datum && datum[measureName || colorName] || '',
3109
- value: (datum)=>{
3110
- if (!datum) return '';
3111
- const value = datum[measureValue];
3112
- const id = datum[measureId];
3113
- const measure = findMeasureById(measures, id);
3114
- if (!measure) return String(value);
3115
- const { format = {}, autoFormat = true } = measure;
3116
- if (!chunk_VCYTMP4D_n(format)) {
3117
- const formatter = createFormatter(format);
3118
- return formatter(value);
3119
- }
3120
- if (autoFormat) return autoFormatter(value, locale);
3121
- return String(value);
3122
- }
3123
- }
3124
- ]
3152
+ content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfo, unfoldInfo)
3125
3153
  },
3126
3154
  dimension: {
3127
- content: [
3128
- {
3129
- visible: true,
3130
- key: (datum)=>datum && datum[colorName] || '',
3131
- value: (datum)=>{
3132
- if (!datum) return '';
3133
- const value = datum[measureValue];
3134
- const id = datum[measureId];
3135
- const measure = findMeasureById(measures, id);
3136
- if (!measure) return String(value);
3137
- const { format = {}, autoFormat = true } = measure;
3138
- if (!chunk_VCYTMP4D_n(format)) {
3139
- const formatter = createFormatter(format);
3140
- return formatter(value);
3141
- }
3142
- if (autoFormat) return autoFormatter(value, locale);
3143
- return String(value);
3144
- },
3145
- shapeType: 'rectRound'
3146
- }
3147
- ]
3155
+ title: {
3156
+ visible: true
3157
+ },
3158
+ content: createDimensionContent(measures, foldInfo, unfoldInfo, locale)
3148
3159
  }
3149
3160
  };
3150
3161
  return result;
3151
3162
  };
3163
+ const createDimensionContent = (measures, foldInfo, unfoldInfo, locale)=>{
3164
+ const { measureId, measureValue } = foldInfo;
3165
+ const { encodingColor } = unfoldInfo;
3166
+ return [
3167
+ {
3168
+ visible: true,
3169
+ shapeType: 'rectRound',
3170
+ hasShape: true,
3171
+ key: (v)=>{
3172
+ const datum = v;
3173
+ return datum && datum[encodingColor] || '';
3174
+ },
3175
+ value: (v)=>{
3176
+ const datum = v;
3177
+ if (!datum) return '';
3178
+ const value = datum[measureValue];
3179
+ const id = datum[measureId];
3180
+ const measure = findMeasureById(measures, id);
3181
+ if (!measure) return String(value);
3182
+ const { format = {}, autoFormat = true } = measure;
3183
+ if (!chunk_VCYTMP4D_n(format)) {
3184
+ const formatter = createFormatter(format);
3185
+ return formatter(value);
3186
+ }
3187
+ if (autoFormat) return autoFormatter(value, locale);
3188
+ return String(value);
3189
+ }
3190
+ }
3191
+ ];
3192
+ };
3193
+ const createMarkContent = (tooltip, dimensions, measures, locale, foldInfo, unfoldInfo)=>{
3194
+ const dims = dimensions.filter((item)=>tooltip.includes(item.id));
3195
+ const meas = measures.filter((item)=>tooltip.includes(item.id));
3196
+ const dimContent = dims.map((item)=>({
3197
+ visible: true,
3198
+ hasShape: true,
3199
+ shapeType: 'rectRound',
3200
+ key: (v)=>{
3201
+ const datum = v;
3202
+ if (item.alias || item.id) return item.alias || item.id;
3203
+ return datum && datum[item.id];
3204
+ },
3205
+ value: (v)=>{
3206
+ const datum = v;
3207
+ return datum && datum[item.id];
3208
+ }
3209
+ }));
3210
+ const meaContent = meas.map((item)=>({
3211
+ visible: true,
3212
+ hasShape: true,
3213
+ shapeType: 'rectRound',
3214
+ key: item.alias || item.id,
3215
+ value: (v)=>{
3216
+ const datum = v;
3217
+ if (!datum) return '';
3218
+ const id = item.id;
3219
+ if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
3220
+ const originalData = datum[ORIGINAL_DATA];
3221
+ const value = originalData[id];
3222
+ const measure = findMeasureById(measures, id);
3223
+ if (!measure) return String(value);
3224
+ const { format = {}, autoFormat = true } = measure;
3225
+ if (!chunk_VCYTMP4D_n(format)) {
3226
+ const formatter = createFormatter(format);
3227
+ return formatter(value);
3228
+ }
3229
+ if (autoFormat) return autoFormatter(value, locale);
3230
+ return String(value);
3231
+ }
3232
+ }));
3233
+ const defaultContent = {
3234
+ visible: true,
3235
+ hasShape: true,
3236
+ shapeType: 'rectRound',
3237
+ key: (v)=>{
3238
+ const { measureName } = foldInfo;
3239
+ const { encodingColor: colorName } = unfoldInfo;
3240
+ const datum = v;
3241
+ return datum && datum[measureName || colorName] || '';
3242
+ },
3243
+ value: (v)=>{
3244
+ const { measureId, measureValue } = foldInfo;
3245
+ const datum = v;
3246
+ if (!datum) return '';
3247
+ const value = datum[measureValue];
3248
+ const id = datum[measureId];
3249
+ const measure = findMeasureById(measures, id);
3250
+ if (!measure) return String(value);
3251
+ const { format = {}, autoFormat = true } = measure;
3252
+ if (!chunk_VCYTMP4D_n(format)) {
3253
+ const formatter = createFormatter(format);
3254
+ return formatter(value);
3255
+ }
3256
+ if (autoFormat) return autoFormatter(value, locale);
3257
+ return String(value);
3258
+ }
3259
+ };
3260
+ return [
3261
+ ...dimContent,
3262
+ defaultContent,
3263
+ ...meaContent
3264
+ ];
3265
+ };
3152
3266
  const isSubset = (sub, obj)=>Object.entries(sub).every(([key, value])=>{
3153
3267
  if ('string' == typeof value) return obj[key] === value;
3154
3268
  if ('number' == typeof value) return obj[key] === value;
@@ -3167,7 +3281,7 @@
3167
3281
  const dataset = advancedVSeed.dataset.flat();
3168
3282
  const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
3169
3283
  return selectedData.map((datum)=>({
3170
- zIndex: ANNOTATION_Z_INDEX,
3284
+ zIndex: 1000,
3171
3285
  regionRelative: true,
3172
3286
  position: (data, context)=>{
3173
3287
  const targetDatum = data.find((item)=>isSubset(datum, item));
@@ -3243,7 +3357,7 @@
3243
3357
  const dataset = advancedVSeed.dataset.flat();
3244
3358
  const generateOneMarkLine = (x)=>({
3245
3359
  x: x,
3246
- zIndex: ANNOTATION_Z_INDEX,
3360
+ zIndex: 1000,
3247
3361
  line: {
3248
3362
  style: {
3249
3363
  visible: lineVisible,
@@ -3341,7 +3455,7 @@
3341
3455
  const dataset = advancedVSeed.dataset.flat();
3342
3456
  const generateOneMarkLine = (y)=>({
3343
3457
  y,
3344
- zIndex: ANNOTATION_Z_INDEX,
3458
+ zIndex: 1000,
3345
3459
  line: {
3346
3460
  style: {
3347
3461
  visible: lineVisible,
@@ -3442,7 +3556,7 @@
3442
3556
  const labelPosition = positionMap[textPosition || 'top'];
3443
3557
  const isBottom = labelPosition.toLocaleLowerCase().includes('bottom');
3444
3558
  return {
3445
- zIndex: ANNOTATION_Z_INDEX,
3559
+ zIndex: 1000,
3446
3560
  regionRelative: true,
3447
3561
  positions: (data, context)=>{
3448
3562
  const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
@@ -4058,6 +4172,17 @@
4058
4172
  Builder._advancedPipelineMap.line = lineAdvancedPipeline;
4059
4173
  Builder._specPipelineMap.line = lineSpecPipeline;
4060
4174
  };
4175
+ const defaultEncodingForColumn = (advancedVSeed)=>{
4176
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4177
+ const measures = findAllMeasures(vseedMeasures);
4178
+ const encoding = {};
4179
+ column_generateDefaultDimensionEncoding(dimensions, encoding);
4180
+ column_generateDefaultMeasureEncoding(measures, encoding);
4181
+ return {
4182
+ ...advancedVSeed,
4183
+ encoding
4184
+ };
4185
+ };
4061
4186
  const encodingForColumn = (advancedVSeed)=>{
4062
4187
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4063
4188
  const measures = findAllMeasures(vseedMeasures);
@@ -4079,43 +4204,52 @@
4079
4204
  encoding.x = uniqueDimIds.slice(0, 1);
4080
4205
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
4081
4206
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
4082
- encoding.tooltip = uniqueDimIds;
4207
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
4083
4208
  encoding.label = [];
4084
4209
  encoding.row = [];
4085
4210
  encoding.column = [];
4086
4211
  };
4087
4212
  const column_generateDimensionEncoding = (dimensions, encoding)=>{
4088
4213
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
4089
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4090
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
4091
4214
  if (0 === encoding.x.length) encoding.x = [
4092
4215
  dimensions[0].id
4093
4216
  ];
4217
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4094
4218
  if (0 === encoding.color.length) encoding.color = [
4095
4219
  MeasureName
4096
4220
  ];
4221
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
4097
4222
  if (0 === encoding.detail.length) encoding.detail = [
4098
4223
  MeasureName
4099
4224
  ];
4225
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
4226
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
4100
4227
  };
4101
4228
  const column_generateDefaultMeasureEncoding = (measures, encoding)=>{
4102
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
4103
4229
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4104
4230
  };
4105
4231
  const column_generateMeasureEncoding = (measures, encoding)=>{
4106
- encoding.tooltip = measures.map((item)=>item.id);
4107
4232
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4108
4233
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4109
4234
  if (color.length > 0) encoding.color = color;
4110
- return encoding;
4235
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
4236
+ encoding.tooltip = chunk_QJLMYOTX_i([
4237
+ ...encoding.tooltip || [],
4238
+ ...tooltip
4239
+ ]);
4111
4240
  };
4112
4241
  const columnAdvancedPipeline = [
4113
4242
  initAdvancedVSeed_initAdvancedVSeed,
4114
4243
  default_defaultMeasures_defaultMeasures,
4115
4244
  defaultDimensions_defaultDimensions,
4116
4245
  defaultMeasureName_defaultMeasureName,
4117
- encodingForColumn,
4118
- buildMeasures,
4246
+ encodingAdapter([
4247
+ defaultEncodingForColumn,
4248
+ buildMeasures
4249
+ ], [
4250
+ encodingForColumn,
4251
+ buildMeasures
4252
+ ]),
4119
4253
  pivotAdapter([
4120
4254
  reshapeWithEncoding
4121
4255
  ], [
@@ -4312,7 +4446,7 @@
4312
4446
  const dataset = advancedVSeed.dataset.flat();
4313
4447
  const selectedData = selectorPoint ? dataset.filter((datum)=>selector_selector(datum, selectorPoint)) : [];
4314
4448
  return {
4315
- zIndex: ANNOTATION_Z_INDEX,
4449
+ zIndex: 1000,
4316
4450
  regionRelative: true,
4317
4451
  positions: (data, context)=>{
4318
4452
  const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
@@ -4478,8 +4612,13 @@
4478
4612
  default_defaultMeasures_defaultMeasures,
4479
4613
  defaultDimensions_defaultDimensions,
4480
4614
  defaultMeasureName_defaultMeasureName,
4481
- encodingForColumn,
4482
- buildMeasures,
4615
+ encodingAdapter([
4616
+ defaultEncodingForColumn,
4617
+ buildMeasures
4618
+ ], [
4619
+ encodingForColumn,
4620
+ buildMeasures
4621
+ ]),
4483
4622
  pivotAdapter([
4484
4623
  reshapeWithEncoding
4485
4624
  ], [
@@ -4577,8 +4716,13 @@
4577
4716
  default_defaultMeasures_defaultMeasures,
4578
4717
  defaultDimensions_defaultDimensions,
4579
4718
  defaultMeasureName_defaultMeasureName,
4580
- encodingForColumn,
4581
- buildMeasures,
4719
+ encodingAdapter([
4720
+ defaultEncodingForColumn,
4721
+ buildMeasures
4722
+ ], [
4723
+ encodingForColumn,
4724
+ buildMeasures
4725
+ ]),
4582
4726
  pivotAdapter([
4583
4727
  reshapeWithEncoding
4584
4728
  ], [
@@ -4655,6 +4799,17 @@
4655
4799
  Builder._advancedPipelineMap.columnPercent = columnPercentAdvancedPipeline;
4656
4800
  Builder._specPipelineMap.columnPercent = columnPercentSpecPipeline;
4657
4801
  };
4802
+ const defaultEncodingForBar = (advancedVSeed)=>{
4803
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4804
+ const measures = findAllMeasures(vseedMeasures);
4805
+ const encoding = {};
4806
+ bar_generateDefaultDimensionEncoding(dimensions, encoding);
4807
+ bar_generateDefaultMeasureEncoding(measures, encoding);
4808
+ return {
4809
+ ...advancedVSeed,
4810
+ encoding
4811
+ };
4812
+ };
4658
4813
  const encodingForBar = (advancedVSeed)=>{
4659
4814
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
4660
4815
  const measures = findAllMeasures(vseedMeasures);
@@ -4676,35 +4831,39 @@
4676
4831
  encoding.y = uniqueDimIds.slice(0, 1);
4677
4832
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
4678
4833
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
4679
- encoding.tooltip = uniqueDimIds;
4834
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
4680
4835
  encoding.label = [];
4681
4836
  encoding.row = [];
4682
4837
  encoding.column = [];
4683
4838
  };
4684
4839
  const bar_generateDimensionEncoding = (dimensions, encoding)=>{
4685
4840
  encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
4686
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4687
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
4688
4841
  if (0 === encoding.y.length) encoding.y = [
4689
4842
  dimensions[0].id
4690
4843
  ];
4844
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4691
4845
  if (0 === encoding.color.length) encoding.color = [
4692
4846
  MeasureName
4693
4847
  ];
4848
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
4694
4849
  if (0 === encoding.detail.length) encoding.detail = [
4695
4850
  MeasureName
4696
4851
  ];
4852
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
4853
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
4697
4854
  };
4698
4855
  const bar_generateDefaultMeasureEncoding = (measures, encoding)=>{
4699
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
4700
4856
  encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4701
4857
  };
4702
4858
  const bar_generateMeasureEncoding = (measures, encoding)=>{
4703
- encoding.tooltip = measures.map((item)=>item.id);
4704
4859
  encoding.x = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || !item.encoding).map((item)=>item.id));
4705
4860
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4706
4861
  if (color.length > 0) encoding.color = color;
4707
- return encoding;
4862
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
4863
+ encoding.tooltip = chunk_QJLMYOTX_i([
4864
+ ...encoding.tooltip || [],
4865
+ ...tooltip
4866
+ ]);
4708
4867
  };
4709
4868
  const sortYBandAxis = (advancedVSeed, context)=>{
4710
4869
  const result = {
@@ -4727,8 +4886,13 @@
4727
4886
  default_defaultMeasures_defaultMeasures,
4728
4887
  defaultDimensions_defaultDimensions,
4729
4888
  defaultMeasureName_defaultMeasureName,
4730
- encodingForBar,
4731
- buildMeasures,
4889
+ encodingAdapter([
4890
+ defaultEncodingForBar,
4891
+ buildMeasures
4892
+ ], [
4893
+ encodingForBar,
4894
+ buildMeasures
4895
+ ]),
4732
4896
  pivotAdapter([
4733
4897
  reshapeWithEncoding
4734
4898
  ], [
@@ -4879,7 +5043,7 @@
4879
5043
  }
4880
5044
  },
4881
5045
  innerOffset: {
4882
- right: LINEAR_AXIS_INNER_OFFSET_TOP
5046
+ right: 7
4883
5047
  }
4884
5048
  };
4885
5049
  result.axes = [
@@ -5082,8 +5246,13 @@
5082
5246
  default_defaultMeasures_defaultMeasures,
5083
5247
  defaultDimensions_defaultDimensions,
5084
5248
  defaultMeasureName_defaultMeasureName,
5085
- encodingForBar,
5086
- buildMeasures,
5249
+ encodingAdapter([
5250
+ defaultEncodingForBar,
5251
+ buildMeasures
5252
+ ], [
5253
+ encodingForBar,
5254
+ buildMeasures
5255
+ ]),
5087
5256
  pivotAdapter([
5088
5257
  reshapeWithEncoding
5089
5258
  ], [
@@ -5180,8 +5349,13 @@
5180
5349
  default_defaultMeasures_defaultMeasures,
5181
5350
  defaultDimensions_defaultDimensions,
5182
5351
  defaultMeasureName_defaultMeasureName,
5183
- encodingForBar,
5184
- buildMeasures,
5352
+ encodingAdapter([
5353
+ defaultEncodingForBar,
5354
+ buildMeasures
5355
+ ], [
5356
+ encodingForBar,
5357
+ buildMeasures
5358
+ ]),
5185
5359
  pivotAdapter([
5186
5360
  reshapeWithEncoding
5187
5361
  ], [
@@ -5253,8 +5427,13 @@
5253
5427
  default_defaultMeasures_defaultMeasures,
5254
5428
  defaultDimensions_defaultDimensions,
5255
5429
  defaultMeasureName_defaultMeasureName,
5256
- encodingForLine,
5257
- buildMeasures,
5430
+ encodingAdapter([
5431
+ defaultEncodingForLine,
5432
+ buildMeasures
5433
+ ], [
5434
+ encodingForLine,
5435
+ buildMeasures
5436
+ ]),
5258
5437
  pivotAdapter([
5259
5438
  reshapeWithEncoding
5260
5439
  ], [
@@ -5413,8 +5592,13 @@
5413
5592
  default_defaultMeasures_defaultMeasures,
5414
5593
  defaultDimensions_defaultDimensions,
5415
5594
  defaultMeasureName_defaultMeasureName,
5416
- encodingForLine,
5417
- buildMeasures,
5595
+ encodingAdapter([
5596
+ defaultEncodingForLine,
5597
+ buildMeasures
5598
+ ], [
5599
+ encodingForLine,
5600
+ buildMeasures
5601
+ ]),
5418
5602
  pivotAdapter([
5419
5603
  reshapeWithEncoding
5420
5604
  ], [
@@ -5488,6 +5672,17 @@
5488
5672
  Builder._advancedPipelineMap.areaPercent = areaPercentAdvancedPipeline;
5489
5673
  Builder._specPipelineMap.areaPercent = areaPercentSpecPipeline;
5490
5674
  };
5675
+ const defaultEncodingForScatter = (advancedVSeed)=>{
5676
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5677
+ const measures = findAllMeasures(vseedMeasures);
5678
+ const encoding = {};
5679
+ scatter_generateDefaultDimensionEncoding(dimensions, encoding);
5680
+ scatter_generateDefaultMeasureEncoding(measures, encoding);
5681
+ return {
5682
+ ...advancedVSeed,
5683
+ encoding
5684
+ };
5685
+ };
5491
5686
  const encodingForScatter = (advancedVSeed)=>{
5492
5687
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5493
5688
  const measures = findAllMeasures(vseedMeasures);
@@ -5508,23 +5703,24 @@
5508
5703
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensionsWithoutMeasureName.map((d)=>d.id));
5509
5704
  encoding.color = uniqueDimIds.slice(0);
5510
5705
  encoding.detail = uniqueDimIds.slice(0);
5511
- encoding.tooltip = uniqueDimIds;
5706
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
5512
5707
  encoding.label = [];
5513
5708
  encoding.row = [];
5514
5709
  encoding.column = [];
5515
5710
  };
5516
5711
  const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
5517
5712
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5518
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5519
5713
  if (0 === encoding.color.length) encoding.color = [
5520
5714
  MeasureName
5521
5715
  ];
5716
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5522
5717
  if (0 === encoding.detail.length) encoding.detail = [
5523
5718
  MeasureName
5524
5719
  ];
5720
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
5721
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
5525
5722
  };
5526
5723
  const scatter_generateDefaultMeasureEncoding = (measures, encoding)=>{
5527
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
5528
5724
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'xAxis' === item.encoding || 'yAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5529
5725
  };
5530
5726
  const scatter_generateMeasureEncoding = (measures, encoding)=>{
@@ -5534,6 +5730,11 @@
5534
5730
  if (color.length > 0) encoding.color = [
5535
5731
  color[0]
5536
5732
  ];
5733
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
5734
+ encoding.tooltip = chunk_QJLMYOTX_i([
5735
+ ...encoding.tooltip || [],
5736
+ ...tooltip
5737
+ ]);
5537
5738
  };
5538
5739
  const buildMeasuresForScatter = (advancedVSeed, context)=>{
5539
5740
  const { vseed } = context;
@@ -5564,6 +5765,7 @@
5564
5765
  else if (0 !== index) yMeasures.push(item);
5565
5766
  else xMeasures.push(item);
5566
5767
  }
5768
+ if (0 === yMeasures.length && xMeasures.length > 0) yMeasures.push(xMeasures[0]);
5567
5769
  return [
5568
5770
  {
5569
5771
  id: 'scatterMeasures',
@@ -5652,6 +5854,7 @@
5652
5854
  if (xMeasures && xMeasures.children) {
5653
5855
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(dataset, T(dimensions, (d)=>d.id), T(xMeasures.children, (d)=>d.id), encoding, {
5654
5856
  foldMeasureValue: FoldXMeasureValue,
5857
+ foldMeasureId: FoldXMeasureId,
5655
5858
  colorItemAsId: true,
5656
5859
  colorMeasureId: getColorMeasureId(advancedVSeed)
5657
5860
  });
@@ -5662,6 +5865,7 @@
5662
5865
  if (yMeasures && yMeasures.children) {
5663
5866
  const { dataset: newDataset, foldInfo, unfoldInfo } = dataReshapeByEncoding(datasets[0], T(dimensions, (d)=>d.id), T(yMeasures.children, (d)=>d.id), encoding, {
5664
5867
  foldMeasureValue: FoldYMeasureValue,
5868
+ foldMeasureId: FoldYMeasureId,
5665
5869
  colorItemAsId: true,
5666
5870
  colorMeasureId: getColorMeasureId(advancedVSeed)
5667
5871
  });
@@ -5767,8 +5971,13 @@
5767
5971
  default_defaultMeasures_defaultMeasures,
5768
5972
  defaultDimensions_defaultDimensions,
5769
5973
  defaultMeasureName_defaultMeasureName,
5770
- encodingForScatter,
5771
- buildMeasuresForScatter,
5974
+ encodingAdapter([
5975
+ defaultEncodingForScatter,
5976
+ buildMeasuresForScatter
5977
+ ], [
5978
+ encodingForScatter,
5979
+ buildMeasuresForScatter
5980
+ ]),
5772
5981
  pivotAdapter([
5773
5982
  reshapeWithScatterEncoding
5774
5983
  ], [
@@ -5814,6 +6023,105 @@
5814
6023
  }
5815
6024
  };
5816
6025
  };
6026
+ const tooltipScatter = (spec, context)=>{
6027
+ const result = {
6028
+ ...spec
6029
+ };
6030
+ const { advancedVSeed } = context;
6031
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
6032
+ const baseConfig = advancedVSeed.config[chartType];
6033
+ const { tooltip = {
6034
+ enable: true
6035
+ } } = baseConfig;
6036
+ const { enable } = tooltip;
6037
+ const { foldInfoList } = datasetReshapeInfo[0];
6038
+ result.tooltip = {
6039
+ visible: enable,
6040
+ mark: {
6041
+ title: {
6042
+ visible: false
6043
+ },
6044
+ content: tooltipScatter_createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList)
6045
+ },
6046
+ dimension: {
6047
+ visible: false
6048
+ }
6049
+ };
6050
+ return result;
6051
+ };
6052
+ const tooltipScatter_createMarkContent = (tooltip, dimensions, measures, locale, foldInfoList)=>{
6053
+ const dims = dimensions.filter((item)=>tooltip.includes(item.id));
6054
+ const meas = measures.filter((item)=>tooltip.includes(item.id));
6055
+ const dimContent = dims.map((item)=>({
6056
+ visible: true,
6057
+ hasShape: true,
6058
+ shapeType: 'rectRound',
6059
+ key: (v)=>{
6060
+ const datum = v;
6061
+ if (item.alias || item.id) return item.alias || item.id;
6062
+ return datum && datum[item.id];
6063
+ },
6064
+ value: (v)=>{
6065
+ const datum = v;
6066
+ return datum && datum[item.id];
6067
+ }
6068
+ }));
6069
+ const meaContent = meas.map((item)=>({
6070
+ visible: true,
6071
+ hasShape: true,
6072
+ shapeType: 'rectRound',
6073
+ key: item.alias || item.id,
6074
+ value: (v)=>{
6075
+ const datum = v;
6076
+ if (!datum) return '';
6077
+ const id = item.id;
6078
+ if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
6079
+ const originalData = datum[ORIGINAL_DATA];
6080
+ const value = originalData[id];
6081
+ const measure = findMeasureById(measures, id);
6082
+ if (!measure) return String(value);
6083
+ const { format = {}, autoFormat = true } = measure;
6084
+ if (!chunk_VCYTMP4D_n(format)) {
6085
+ const formatter = createFormatter(format);
6086
+ return formatter(value);
6087
+ }
6088
+ if (autoFormat) return autoFormatter(value, locale);
6089
+ return String(value);
6090
+ }
6091
+ }));
6092
+ const foldMeaContent = foldInfoList.map((foldInfo)=>({
6093
+ visible: true,
6094
+ hasShape: true,
6095
+ shapeType: 'rectRound',
6096
+ key: (v)=>{
6097
+ const { measureId, foldMap } = foldInfo;
6098
+ const datum = v;
6099
+ const id = datum[measureId];
6100
+ return foldMap[id] || id;
6101
+ },
6102
+ value: (v)=>{
6103
+ const { measureId, measureValue } = foldInfo;
6104
+ const datum = v;
6105
+ if (!datum) return '';
6106
+ const value = datum[measureValue];
6107
+ const id = datum[measureId];
6108
+ const measure = findMeasureById(measures, id);
6109
+ if (!measure) return String(value);
6110
+ const { format = {}, autoFormat = true } = measure;
6111
+ if (!chunk_VCYTMP4D_n(format)) {
6112
+ const formatter = createFormatter(format);
6113
+ return formatter(value);
6114
+ }
6115
+ if (autoFormat) return autoFormatter(value, locale);
6116
+ return String(value);
6117
+ }
6118
+ }));
6119
+ return [
6120
+ ...dimContent,
6121
+ ...foldMeaContent,
6122
+ ...meaContent
6123
+ ];
6124
+ };
5817
6125
  const horizontalCrosshairLine = (spec, context)=>{
5818
6126
  const result = {
5819
6127
  ...spec
@@ -5867,7 +6175,7 @@
5867
6175
  xLinear,
5868
6176
  yLinear,
5869
6177
  label_label,
5870
- tooltip_tooltip,
6178
+ tooltipScatter,
5871
6179
  colorAdapter(discreteLegend, colorLegend),
5872
6180
  verticalCrosshairLine,
5873
6181
  horizontalCrosshairLine,
@@ -5892,7 +6200,7 @@
5892
6200
  xLinear,
5893
6201
  yLinear,
5894
6202
  label_label,
5895
- tooltip_tooltip,
6203
+ tooltipScatter,
5896
6204
  verticalCrosshairLine,
5897
6205
  horizontalCrosshairLine,
5898
6206
  colorPointStyleFill(pointStyle_pointStyle),
@@ -5913,6 +6221,17 @@
5913
6221
  Builder._advancedPipelineMap.scatter = scatterAdvancedPipeline;
5914
6222
  Builder._specPipelineMap.scatter = scatterSpecPipeline;
5915
6223
  };
6224
+ const defaultEncodingForDualAxis = (advancedVSeed)=>{
6225
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
6226
+ const measures = findAllMeasures(vseedMeasures);
6227
+ const encoding = {};
6228
+ dualAxis_generateDefaultDimensionEncoding(dimensions, encoding);
6229
+ dualAxis_generateDefaultMeasureEncoding(measures, encoding);
6230
+ return {
6231
+ ...advancedVSeed,
6232
+ encoding
6233
+ };
6234
+ };
5916
6235
  const encodingForDualAxis = (advancedVSeed)=>{
5917
6236
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
5918
6237
  const measures = findAllMeasures(vseedMeasures);
@@ -5934,35 +6253,39 @@
5934
6253
  encoding.x = uniqueDimIds.slice(0, 1);
5935
6254
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
5936
6255
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
5937
- encoding.tooltip = uniqueDimIds;
6256
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
5938
6257
  encoding.label = [];
5939
6258
  encoding.row = [];
5940
6259
  encoding.column = [];
5941
6260
  };
5942
6261
  const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
5943
6262
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
5944
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5945
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5946
6263
  if (0 === encoding.x.length) encoding.x = [
5947
6264
  dimensions[0].id
5948
6265
  ];
6266
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5949
6267
  if (0 === encoding.color.length) encoding.color = [
5950
6268
  MeasureName
5951
6269
  ];
6270
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5952
6271
  if (0 === encoding.detail.length) encoding.detail = [
5953
6272
  MeasureName
5954
6273
  ];
6274
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
6275
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
5955
6276
  };
5956
6277
  const dualAxis_generateDefaultMeasureEncoding = (measures, encoding)=>{
5957
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
5958
6278
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5959
6279
  };
5960
6280
  const dualAxis_generateMeasureEncoding = (measures, encoding)=>{
5961
- encoding.tooltip = measures.map((item)=>item.id);
5962
6281
  encoding.y = chunk_QJLMYOTX_i(measures.filter((item)=>'primaryYAxis' === item.encoding || 'secondaryYAxis' === item.encoding || !item.encoding).map((item)=>item.id));
5963
6282
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5964
6283
  if (color.length > 0) encoding.color = color;
5965
- return encoding;
6284
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
6285
+ encoding.tooltip = chunk_QJLMYOTX_i([
6286
+ ...encoding.tooltip || [],
6287
+ ...tooltip
6288
+ ]);
5966
6289
  };
5967
6290
  const buildMeasuresForDualAxis = (advancedVSeed, context)=>{
5968
6291
  const { vseed } = context;
@@ -6219,8 +6542,13 @@
6219
6542
  default_defaultMeasures_defaultMeasures,
6220
6543
  defaultDimensions_defaultDimensions,
6221
6544
  defaultMeasureName_defaultMeasureName,
6222
- encodingForDualAxis,
6223
- buildMeasuresForDualAxis,
6545
+ encodingAdapter([
6546
+ defaultEncodingForDualAxis,
6547
+ buildMeasuresForDualAxis
6548
+ ], [
6549
+ encodingForDualAxis,
6550
+ buildMeasuresForDualAxis
6551
+ ]),
6224
6552
  pivotAdapter([
6225
6553
  reshapeWithDualEncoding
6226
6554
  ], [
@@ -6312,7 +6640,7 @@
6312
6640
  const dualChartTypePrimary = (spec, context)=>{
6313
6641
  const result = {
6314
6642
  ...spec,
6315
- zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX
6643
+ zIndex: 1001
6316
6644
  };
6317
6645
  const { advancedVSeed, vseed } = context;
6318
6646
  const { chartType } = vseed;
@@ -6332,7 +6660,7 @@
6332
6660
  break;
6333
6661
  case 'column':
6334
6662
  result.type = 'bar';
6335
- result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
6663
+ result.zIndex = 1000;
6336
6664
  break;
6337
6665
  case 'columnParallel':
6338
6666
  {
@@ -6343,7 +6671,7 @@
6343
6671
  datasetReshapeInfo[0].unfoldInfo.encodingDetail
6344
6672
  ];
6345
6673
  columnSpec.type = 'bar';
6346
- result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
6674
+ result.zIndex = 1000;
6347
6675
  break;
6348
6676
  }
6349
6677
  case 'columnPercent':
@@ -6368,7 +6696,7 @@
6368
6696
  const dualChartTypeSecondary = (spec, context)=>{
6369
6697
  const result = {
6370
6698
  ...spec,
6371
- zIndex: DUAL_AXIS_CHART_NON_COLUMN_Z_INDEX
6699
+ zIndex: 1001
6372
6700
  };
6373
6701
  const { advancedVSeed, vseed } = context;
6374
6702
  const { chartType } = vseed;
@@ -6388,7 +6716,7 @@
6388
6716
  break;
6389
6717
  case 'column':
6390
6718
  result.type = 'bar';
6391
- result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
6719
+ result.zIndex = 1000;
6392
6720
  break;
6393
6721
  case 'columnParallel':
6394
6722
  {
@@ -6399,7 +6727,7 @@
6399
6727
  datasetReshapeInfo[0].unfoldInfo.encodingDetail
6400
6728
  ];
6401
6729
  columnSpec.type = 'bar';
6402
- result.zIndex = DUAL_AXIS_CHART_COLUMN_Z_INDEX;
6730
+ result.zIndex = 1000;
6403
6731
  break;
6404
6732
  }
6405
6733
  case 'columnPercent':
@@ -6577,7 +6905,7 @@
6577
6905
  ...spec
6578
6906
  };
6579
6907
  const { advancedVSeed } = context;
6580
- const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
6908
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
6581
6909
  const baseConfig = advancedVSeed.config[chartType];
6582
6910
  const { tooltip = {
6583
6911
  enable: true
@@ -6585,68 +6913,19 @@
6585
6913
  const { enable } = tooltip;
6586
6914
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
6587
6915
  const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
6588
- const { measureId, measureValue, measureName } = foldInfoList[0];
6589
- const { encodingColor: colorName } = unfoldInfo;
6590
6916
  result.tooltip = {
6591
6917
  visible: enable,
6592
6918
  mark: {
6593
6919
  title: {
6594
- visible: true
6920
+ visible: false
6595
6921
  },
6596
- content: [
6597
- ...dimensions.map((item)=>({
6598
- visible: true,
6599
- hasShape: true,
6600
- shapeType: 'rectRound',
6601
- key: (datum)=>{
6602
- if (item.alias || item.id) return item.alias || item.id;
6603
- return datum && datum[item.id];
6604
- },
6605
- value: (datum)=>datum && datum[item.id]
6606
- })),
6607
- {
6608
- visible: true,
6609
- hasShape: true,
6610
- key: (datum)=>datum && datum[measureName || colorName] || '',
6611
- value: (datum)=>{
6612
- if (!datum) return '';
6613
- const value = datum[measureValue];
6614
- const id = datum[measureId];
6615
- const measure = findMeasureById(measures, id);
6616
- if (!measure) return String(value);
6617
- const { format = {}, autoFormat = true } = measure;
6618
- if (!chunk_VCYTMP4D_n(format)) {
6619
- const formatter = createFormatter(format);
6620
- return formatter(value);
6621
- }
6622
- if (autoFormat) return autoFormatter(value, locale);
6623
- return String(value);
6624
- }
6625
- }
6626
- ]
6922
+ content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList[0], unfoldInfo)
6627
6923
  },
6628
6924
  dimension: {
6629
- content: [
6630
- {
6631
- visible: true,
6632
- key: (datum)=>datum && datum[colorName] || '',
6633
- value: (datum)=>{
6634
- if (!datum) return '';
6635
- const value = datum[measureValue];
6636
- const id = datum[measureId];
6637
- const measure = findMeasureById(measures, id);
6638
- if (!measure) return String(value);
6639
- const { format = {}, autoFormat = true } = measure;
6640
- if (!chunk_VCYTMP4D_n(format)) {
6641
- const formatter = createFormatter(format);
6642
- return formatter(value);
6643
- }
6644
- if (autoFormat) return autoFormatter(value, locale);
6645
- return String(value);
6646
- },
6647
- shapeType: 'rectRound'
6648
- }
6649
- ]
6925
+ title: {
6926
+ visible: true
6927
+ },
6928
+ content: createDimensionContent(measures, foldInfoList[0], unfoldInfo, locale)
6650
6929
  }
6651
6930
  };
6652
6931
  return result;
@@ -6656,7 +6935,7 @@
6656
6935
  ...spec
6657
6936
  };
6658
6937
  const { advancedVSeed } = context;
6659
- const { measures, datasetReshapeInfo, chartType, locale, dimensions } = advancedVSeed;
6938
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
6660
6939
  const baseConfig = advancedVSeed.config[chartType];
6661
6940
  const { tooltip = {
6662
6941
  enable: true
@@ -6665,68 +6944,19 @@
6665
6944
  if (chunk_JK3VNB42_n(datasetReshapeInfo[0].foldInfoList?.[1])) return result;
6666
6945
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
6667
6946
  const unfoldInfo = datasetReshapeInfo[0].unfoldInfo;
6668
- const { measureId, measureValue, measureName } = foldInfoList[1];
6669
- const { encodingColorId } = unfoldInfo;
6670
6947
  result.tooltip = {
6671
6948
  visible: enable,
6672
6949
  mark: {
6673
6950
  title: {
6674
- visible: true
6951
+ visible: false
6675
6952
  },
6676
- content: [
6677
- ...dimensions.map((item)=>({
6678
- visible: true,
6679
- hasShape: true,
6680
- shapeType: 'rectRound',
6681
- key: (datum)=>{
6682
- if (item.alias || item.id) return item.alias || item.id;
6683
- return datum && datum[item.id];
6684
- },
6685
- value: (datum)=>datum && datum[item.id]
6686
- })),
6687
- {
6688
- visible: true,
6689
- hasShape: true,
6690
- key: (datum)=>datum && datum[measureName || encodingColorId] || '',
6691
- value: (datum)=>{
6692
- if (!datum) return '';
6693
- const value = datum[measureValue];
6694
- const id = datum[measureId];
6695
- const measure = findMeasureById(measures, id);
6696
- if (!measure) return String(value);
6697
- const { format = {}, autoFormat = true } = measure;
6698
- if (!chunk_VCYTMP4D_n(format)) {
6699
- const formatter = createFormatter(format);
6700
- return formatter(value);
6701
- }
6702
- if (autoFormat) return autoFormatter(value, locale);
6703
- return String(value);
6704
- }
6705
- }
6706
- ]
6953
+ content: createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfoList[1], unfoldInfo)
6707
6954
  },
6708
6955
  dimension: {
6709
- content: [
6710
- {
6711
- visible: true,
6712
- key: (datum)=>datum && datum[encodingColorId] || '',
6713
- value: (datum)=>{
6714
- if (!datum) return '';
6715
- const value = datum[measureValue];
6716
- const id = datum[measureId];
6717
- const measure = findMeasureById(measures, id);
6718
- if (!measure) return String(value);
6719
- const { format = {}, autoFormat = true } = measure;
6720
- if (!chunk_VCYTMP4D_n(format)) {
6721
- const formatter = createFormatter(format);
6722
- return formatter(value);
6723
- }
6724
- if (autoFormat) return autoFormatter(value, locale);
6725
- return String(value);
6726
- },
6727
- shapeType: 'rectRound'
6728
- }
6729
- ]
6956
+ title: {
6957
+ visible: true
6958
+ },
6959
+ content: createDimensionContent(measures, foldInfoList[1], unfoldInfo, locale)
6730
6960
  }
6731
6961
  };
6732
6962
  return result;
@@ -6743,7 +6973,8 @@
6743
6973
  const yAxisConfig = Array.isArray(primaryYAxis) ? primaryYAxis[index] || primaryYAxis[0] : primaryYAxis;
6744
6974
  const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
6745
6975
  const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
6746
- if (foldInfoList?.[0] && chunk_VCYTMP4D_n(foldInfoList[0].foldMap)) return result;
6976
+ if (chunk_JK3VNB42_n(foldInfoList?.[0])) return result;
6977
+ const isEmptySecondary = chunk_VCYTMP4D_n(foldInfoList?.[0].foldMap);
6747
6978
  const id = `${reshapeInfoId}-primary-axis`;
6748
6979
  const seriesIds = [
6749
6980
  `${reshapeInfoId}-primary-series`,
@@ -6766,7 +6997,7 @@
6766
6997
  }
6767
6998
  const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
6768
6999
  const linearAxis = {
6769
- visible,
7000
+ visible: isEmptySecondary ? false : visible,
6770
7001
  id,
6771
7002
  seriesId,
6772
7003
  type: log ? 'log' : 'linear',
@@ -6819,7 +7050,7 @@
6819
7050
  }
6820
7051
  },
6821
7052
  innerOffset: {
6822
- top: LINEAR_AXIS_INNER_OFFSET_TOP
7053
+ top: 7
6823
7054
  }
6824
7055
  };
6825
7056
  result.axes = [
@@ -6841,6 +7072,8 @@
6841
7072
  const alignTicks = advancedVSeed.config?.[chartType]?.alignTicks;
6842
7073
  const alignTicksConfig = Array.isArray(alignTicks) ? alignTicks[index] || alignTicks[0] : alignTicks;
6843
7074
  if (chunk_JK3VNB42_n(foldInfoList?.[1])) return result;
7075
+ const isEmptySecondary = chunk_VCYTMP4D_n(foldInfoList?.[1].foldMap);
7076
+ const onlySecondary = chunk_VCYTMP4D_n(foldInfoList?.[0].foldMap) && !isEmptySecondary;
6844
7077
  const sync = {
6845
7078
  axisId: `${reshapeInfoId}-primary-axis`,
6846
7079
  zeroAlign: true
@@ -6868,7 +7101,7 @@
6868
7101
  }
6869
7102
  const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
6870
7103
  const linearAxis = {
6871
- visible,
7104
+ visible: isEmptySecondary ? false : visible,
6872
7105
  id,
6873
7106
  seriesId,
6874
7107
  sync,
@@ -6908,7 +7141,7 @@
6908
7141
  }
6909
7142
  },
6910
7143
  grid: {
6911
- visible: grid?.visible,
7144
+ visible: onlySecondary ? true : grid?.visible,
6912
7145
  style: {
6913
7146
  lineWidth: grid?.gridWidth,
6914
7147
  stroke: grid?.gridColor
@@ -6922,7 +7155,7 @@
6922
7155
  }
6923
7156
  },
6924
7157
  innerOffset: {
6925
- top: LINEAR_AXIS_INNER_OFFSET_TOP
7158
+ top: 7
6926
7159
  }
6927
7160
  };
6928
7161
  result.axes = [
@@ -7053,6 +7286,17 @@
7053
7286
  Builder._advancedPipelineMap.dualAxis = dualAxisAdvancedPipeline;
7054
7287
  Builder._specPipelineMap.dualAxis = dualAxisSpecPipeline;
7055
7288
  };
7289
+ const defaultEncodingForPie = (advancedVSeed)=>{
7290
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7291
+ const measures = findAllMeasures(vseedMeasures);
7292
+ const encoding = {};
7293
+ pie_generateDefaultDimensionEncoding(dimensions, encoding);
7294
+ pie_generateDefaultMeasureEncoding(measures, encoding);
7295
+ return {
7296
+ ...advancedVSeed,
7297
+ encoding
7298
+ };
7299
+ };
7056
7300
  const encodingForPie = (advancedVSeed)=>{
7057
7301
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7058
7302
  const measures = findAllMeasures(vseedMeasures);
@@ -7072,38 +7316,48 @@
7072
7316
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
7073
7317
  encoding.color = uniqueDimIds.slice(0);
7074
7318
  encoding.detail = uniqueDimIds.slice(0);
7075
- encoding.tooltip = uniqueDimIds;
7319
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7076
7320
  encoding.label = [];
7077
7321
  encoding.row = [];
7078
7322
  encoding.column = [];
7079
7323
  };
7080
7324
  const pie_generateDimensionEncoding = (dimensions, encoding)=>{
7081
7325
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7082
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7083
7326
  if (0 === encoding.color.length) encoding.color = [
7084
7327
  MeasureName
7085
7328
  ];
7329
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7086
7330
  if (0 === encoding.detail.length) encoding.detail = [
7087
7331
  MeasureName
7088
7332
  ];
7333
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
7334
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7089
7335
  };
7090
7336
  const pie_generateDefaultMeasureEncoding = (measures, encoding)=>{
7091
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7092
7337
  encoding.angle = chunk_QJLMYOTX_i(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
7093
7338
  };
7094
7339
  const pie_generateMeasureEncoding = (measures, encoding)=>{
7095
- encoding.tooltip = measures.map((item)=>item.id);
7096
7340
  encoding.angle = chunk_QJLMYOTX_i(measures.filter((item)=>'angle' === item.encoding || !item.encoding).map((item)=>item.id));
7097
7341
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7098
7342
  if (color.length > 0) encoding.color = color;
7343
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
7344
+ encoding.tooltip = chunk_QJLMYOTX_i([
7345
+ ...encoding.tooltip || [],
7346
+ ...tooltip
7347
+ ]);
7099
7348
  };
7100
7349
  const pieAdvancedPipeline = [
7101
7350
  initAdvancedVSeed_initAdvancedVSeed,
7102
7351
  default_defaultMeasures_defaultMeasures,
7103
7352
  defaultDimensions_defaultDimensions,
7104
7353
  defaultMeasureName_defaultMeasureName,
7105
- encodingForPie,
7106
- buildMeasures,
7354
+ encodingAdapter([
7355
+ defaultEncodingForPie,
7356
+ buildMeasures
7357
+ ], [
7358
+ encodingForPie,
7359
+ buildMeasures
7360
+ ]),
7107
7361
  pivotAdapter([
7108
7362
  reshapeWithEncoding
7109
7363
  ], [
@@ -7222,8 +7476,13 @@
7222
7476
  default_defaultMeasures_defaultMeasures,
7223
7477
  defaultDimensions_defaultDimensions,
7224
7478
  defaultMeasureName_defaultMeasureName,
7225
- buildMeasures,
7226
- encodingForPie,
7479
+ encodingAdapter([
7480
+ defaultEncodingForPie,
7481
+ buildMeasures
7482
+ ], [
7483
+ encodingForPie,
7484
+ buildMeasures
7485
+ ]),
7227
7486
  pivotAdapter([
7228
7487
  reshapeWithEncoding
7229
7488
  ], [
@@ -7299,6 +7558,17 @@
7299
7558
  Builder._advancedPipelineMap.donut = donutAdvancedPipeline;
7300
7559
  Builder._specPipelineMap.donut = donutSpecPipeline;
7301
7560
  };
7561
+ const defaultEncodingForRose = (advancedVSeed)=>{
7562
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7563
+ const measures = findAllMeasures(vseedMeasures);
7564
+ const encoding = {};
7565
+ rose_generateDefaultDimensionEncoding(dimensions, encoding);
7566
+ rose_generateDefaultMeasureEncoding(measures, encoding);
7567
+ return {
7568
+ ...advancedVSeed,
7569
+ encoding
7570
+ };
7571
+ };
7302
7572
  const encodingForRose = (advancedVSeed)=>{
7303
7573
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7304
7574
  const measures = findAllMeasures(vseedMeasures);
@@ -7320,42 +7590,52 @@
7320
7590
  encoding.angle = uniqueDimIds.slice(0, 1);
7321
7591
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
7322
7592
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
7323
- encoding.tooltip = uniqueDimIds;
7593
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7324
7594
  encoding.label = [];
7325
7595
  encoding.row = [];
7326
7596
  encoding.column = [];
7327
7597
  };
7328
7598
  const rose_generateDimensionEncoding = (dimensions, encoding)=>{
7329
7599
  encoding.angle = chunk_QJLMYOTX_i(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7330
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7331
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7332
7600
  if (0 === encoding.angle.length) encoding.angle = [
7333
7601
  dimensions[0].id
7334
7602
  ];
7603
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7335
7604
  if (0 === encoding.color.length) encoding.color = [
7336
7605
  MeasureName
7337
7606
  ];
7607
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7338
7608
  if (0 === encoding.detail.length) encoding.detail = [
7339
7609
  MeasureName
7340
7610
  ];
7611
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
7612
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7341
7613
  };
7342
7614
  const rose_generateDefaultMeasureEncoding = (measures, encoding)=>{
7343
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7344
7615
  encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7345
7616
  };
7346
7617
  const rose_generateMeasureEncoding = (measures, encoding)=>{
7347
- encoding.tooltip = measures.map((item)=>item.id);
7348
7618
  encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7349
7619
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7350
7620
  if (color.length > 0) encoding.color = color;
7621
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
7622
+ encoding.tooltip = chunk_QJLMYOTX_i([
7623
+ ...encoding.tooltip || [],
7624
+ ...tooltip
7625
+ ]);
7351
7626
  };
7352
7627
  const roseAdvancedPipeline = [
7353
7628
  initAdvancedVSeed_initAdvancedVSeed,
7354
7629
  default_defaultMeasures_defaultMeasures,
7355
7630
  defaultDimensions_defaultDimensions,
7356
7631
  defaultMeasureName_defaultMeasureName,
7357
- encodingForRose,
7358
- buildMeasures,
7632
+ encodingAdapter([
7633
+ defaultEncodingForRose,
7634
+ buildMeasures
7635
+ ], [
7636
+ encodingForRose,
7637
+ buildMeasures
7638
+ ]),
7359
7639
  pivotAdapter([
7360
7640
  reshapeWithEncoding
7361
7641
  ], [
@@ -7554,8 +7834,13 @@
7554
7834
  default_defaultMeasures_defaultMeasures,
7555
7835
  defaultDimensions_defaultDimensions,
7556
7836
  defaultMeasureName_defaultMeasureName,
7557
- encodingForRose,
7558
- buildMeasures,
7837
+ encodingAdapter([
7838
+ defaultEncodingForRose,
7839
+ buildMeasures
7840
+ ], [
7841
+ encodingForRose,
7842
+ buildMeasures
7843
+ ]),
7559
7844
  pivotAdapter([
7560
7845
  reshapeWithEncoding
7561
7846
  ], [
@@ -7661,6 +7946,17 @@
7661
7946
  Builder._advancedPipelineMap.roseParallel = roseParallelAdvancedPipeline;
7662
7947
  Builder._specPipelineMap.roseParallel = roseParallelSpecPipeline;
7663
7948
  };
7949
+ const defaultEncodingForRadar = (advancedVSeed)=>{
7950
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7951
+ const measures = findAllMeasures(vseedMeasures);
7952
+ const encoding = {};
7953
+ radar_generateDefaultDimensionEncoding(dimensions, encoding);
7954
+ radar_generateDefaultMeasureEncoding(measures, encoding);
7955
+ return {
7956
+ ...advancedVSeed,
7957
+ encoding
7958
+ };
7959
+ };
7664
7960
  const encodingForRadar = (advancedVSeed)=>{
7665
7961
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7666
7962
  const measures = findAllMeasures(vseedMeasures);
@@ -7680,7 +7976,7 @@
7680
7976
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
7681
7977
  encoding.angle = uniqueDimIds.slice(0, 1);
7682
7978
  encoding.color = uniqueDimIds.slice(1);
7683
- encoding.tooltip = uniqueDimIds;
7979
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7684
7980
  encoding.detail = [];
7685
7981
  encoding.label = [];
7686
7982
  encoding.row = [];
@@ -7688,35 +7984,45 @@
7688
7984
  };
7689
7985
  const radar_generateDimensionEncoding = (dimensions, encoding)=>{
7690
7986
  encoding.angle = chunk_QJLMYOTX_i(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7691
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7692
- encoding.detail = [];
7693
7987
  if (0 === encoding.angle.length) encoding.angle = [
7694
7988
  dimensions[0].id
7695
7989
  ];
7990
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7696
7991
  if (0 === encoding.color.length) encoding.color = [
7697
7992
  MeasureName
7698
7993
  ];
7994
+ encoding.detail = [];
7699
7995
  if (0 === encoding.detail.length) encoding.detail = [
7700
7996
  MeasureName
7701
7997
  ];
7998
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
7999
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7702
8000
  };
7703
8001
  const radar_generateDefaultMeasureEncoding = (measures, encoding)=>{
7704
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7705
8002
  encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7706
8003
  };
7707
8004
  const radar_generateMeasureEncoding = (measures, encoding)=>{
7708
- encoding.tooltip = measures.map((item)=>item.id);
7709
8005
  encoding.radius = chunk_QJLMYOTX_i(measures.filter((item)=>'radius' === item.encoding || !item.encoding).map((item)=>item.id));
7710
8006
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7711
8007
  if (color.length > 0) encoding.color = color;
8008
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
8009
+ encoding.tooltip = chunk_QJLMYOTX_i([
8010
+ ...encoding.tooltip || [],
8011
+ ...tooltip
8012
+ ]);
7712
8013
  };
7713
8014
  const radarAdvancedPipeline = [
7714
8015
  initAdvancedVSeed_initAdvancedVSeed,
7715
8016
  default_defaultMeasures_defaultMeasures,
7716
8017
  defaultDimensions_defaultDimensions,
7717
8018
  defaultMeasureName_defaultMeasureName,
7718
- encodingForRadar,
7719
- buildMeasures,
8019
+ encodingAdapter([
8020
+ defaultEncodingForRadar,
8021
+ buildMeasures
8022
+ ], [
8023
+ encodingForRadar,
8024
+ buildMeasures
8025
+ ]),
7720
8026
  pivotAdapter([
7721
8027
  reshapeWithEncoding
7722
8028
  ], [
@@ -7850,6 +8156,17 @@
7850
8156
  Builder._advancedPipelineMap.radar = radarAdvancedPipeline;
7851
8157
  Builder._specPipelineMap.radar = radarSpecPipeline;
7852
8158
  };
8159
+ const defaultEncodingForFunnel = (advancedVSeed)=>{
8160
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
8161
+ const measures = findAllMeasures(vseedMeasures);
8162
+ const encoding = {};
8163
+ funnel_generateDefaultDimensionEncoding(dimensions, encoding);
8164
+ funnel_generateDefaultMeasureEncoding(measures, encoding);
8165
+ return {
8166
+ ...advancedVSeed,
8167
+ encoding
8168
+ };
8169
+ };
7853
8170
  const encodingForFunnel = (advancedVSeed)=>{
7854
8171
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
7855
8172
  const measures = findAllMeasures(vseedMeasures);
@@ -7869,40 +8186,50 @@
7869
8186
  const uniqueDimIds = chunk_QJLMYOTX_i(dimensions.map((d)=>d.id));
7870
8187
  encoding.color = uniqueDimIds.slice(0);
7871
8188
  encoding.detail = uniqueDimIds.slice(0);
7872
- encoding.tooltip = uniqueDimIds;
8189
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
7873
8190
  encoding.label = [];
7874
8191
  encoding.row = [];
7875
8192
  encoding.column = [];
7876
8193
  };
7877
8194
  const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
7878
8195
  encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7879
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7880
8196
  if (0 === encoding.color.length) encoding.color = [
7881
8197
  MeasureName
7882
8198
  ];
8199
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7883
8200
  if (0 === encoding.detail.length) encoding.detail = [
7884
8201
  MeasureName
7885
8202
  ];
8203
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
8204
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
7886
8205
  };
7887
8206
  const funnel_generateDefaultMeasureEncoding = (measures, encoding)=>{
7888
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
7889
8207
  encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7890
8208
  };
7891
8209
  const funnel_generateMeasureEncoding = (measures, encoding)=>{
7892
- encoding.tooltip = measures.map((item)=>item.id);
7893
8210
  encoding.size = chunk_QJLMYOTX_i(measures.filter((item)=>'size' === item.encoding || !item.encoding).map((item)=>item.id));
7894
8211
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7895
8212
  if (color.length > 0) encoding.color = [
7896
8213
  color[0]
7897
8214
  ];
8215
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
8216
+ encoding.tooltip = chunk_QJLMYOTX_i([
8217
+ ...encoding.tooltip || [],
8218
+ ...tooltip
8219
+ ]);
7898
8220
  };
7899
8221
  const funnelAdvancedPipeline = [
7900
8222
  initAdvancedVSeed_initAdvancedVSeed,
7901
8223
  default_defaultMeasures_defaultMeasures,
7902
8224
  defaultDimensions_defaultDimensions,
7903
8225
  defaultMeasureName_defaultMeasureName,
7904
- encodingForFunnel,
7905
- buildMeasures,
8226
+ encodingAdapter([
8227
+ defaultEncodingForFunnel,
8228
+ buildMeasures
8229
+ ], [
8230
+ encodingForFunnel,
8231
+ buildMeasures
8232
+ ]),
7906
8233
  pivotAdapter([
7907
8234
  reshapeWithEncoding
7908
8235
  ], [
@@ -8015,6 +8342,17 @@
8015
8342
  Builder._advancedPipelineMap.funnel = funnelAdvancedPipeline;
8016
8343
  Builder._specPipelineMap.funnel = funnelSpecPipeline;
8017
8344
  };
8345
+ const defaultEncodingForHeatmap = (advancedVSeed)=>{
8346
+ const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
8347
+ const measures = findAllMeasures(vseedMeasures);
8348
+ const encoding = {};
8349
+ heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
8350
+ heatmap_generateDefaultMeasureEncoding(measures, encoding);
8351
+ return {
8352
+ ...advancedVSeed,
8353
+ encoding
8354
+ };
8355
+ };
8018
8356
  const encodingForHeatmap = (advancedVSeed)=>{
8019
8357
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
8020
8358
  const measures = findAllMeasures(vseedMeasures);
@@ -8037,50 +8375,59 @@
8037
8375
  encoding.y = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
8038
8376
  encoding.color = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
8039
8377
  encoding.detail = uniqueDimIds.slice(onlyMeasureName ? 0 : 1);
8040
- encoding.tooltip = uniqueDimIds;
8378
+ encoding.tooltip = uniqueDimIds.filter((d)=>d !== MeasureName);
8041
8379
  encoding.label = [];
8042
8380
  encoding.row = [];
8043
8381
  encoding.column = [];
8044
8382
  };
8045
8383
  const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
8046
8384
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
8047
- encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
8048
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8049
- encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
8050
8385
  if (0 === encoding.x.length) encoding.x = [
8051
8386
  dimensions[0].id
8052
8387
  ];
8388
+ encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
8053
8389
  if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
8054
8390
  else encoding.y = dimensions.slice(0).map((item)=>item.id);
8391
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8055
8392
  if (0 === encoding.color.length) encoding.color = [
8056
8393
  MeasureName
8057
8394
  ];
8395
+ encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
8058
8396
  if (0 === encoding.detail.length) encoding.detail = [
8059
8397
  MeasureName
8060
8398
  ];
8399
+ encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
8400
+ encoding.tooltip = encoding.tooltip.filter((d)=>d !== MeasureName);
8061
8401
  };
8062
8402
  const heatmap_generateDefaultMeasureEncoding = (measures, encoding)=>{
8063
- encoding.tooltip = chunk_QJLMYOTX_i(measures.map((item)=>item.id));
8064
8403
  const colorDims = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding || !item.encoding).map((item)=>item.id));
8065
8404
  if (colorDims.length > 0) encoding.color = [
8066
8405
  colorDims[0]
8067
8406
  ];
8068
8407
  };
8069
8408
  const heatmap_generateMeasureEncoding = (measures, encoding)=>{
8070
- encoding.tooltip = measures.map((item)=>item.id);
8071
8409
  const color = chunk_QJLMYOTX_i(measures.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8072
8410
  if (color.length > 0) encoding.color = [
8073
8411
  color[0]
8074
8412
  ];
8075
- return encoding;
8413
+ const tooltip = chunk_QJLMYOTX_i(measures.filter((item)=>'tooltip' === item.encoding).map((item)=>item.id));
8414
+ encoding.tooltip = chunk_QJLMYOTX_i([
8415
+ ...encoding.tooltip || [],
8416
+ ...tooltip
8417
+ ]);
8076
8418
  };
8077
8419
  const heatmapAdvancedPipeline = [
8078
8420
  initAdvancedVSeed_initAdvancedVSeed,
8079
8421
  default_defaultMeasures_defaultMeasures,
8080
8422
  defaultDimensions_defaultDimensions,
8081
8423
  defaultMeasureName_defaultMeasureName,
8082
- encodingForHeatmap,
8083
- buildMeasures,
8424
+ encodingAdapter([
8425
+ defaultEncodingForHeatmap,
8426
+ buildMeasures
8427
+ ], [
8428
+ encodingForHeatmap,
8429
+ buildMeasures
8430
+ ]),
8084
8431
  pivotAdapter([
8085
8432
  reshapeWithEncoding
8086
8433
  ], [
@@ -8133,6 +8480,107 @@
8133
8480
  }
8134
8481
  };
8135
8482
  };
8483
+ const tooltipHeatmap = (spec, context)=>{
8484
+ const result = {
8485
+ ...spec
8486
+ };
8487
+ const { advancedVSeed } = context;
8488
+ const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
8489
+ const baseConfig = advancedVSeed.config[chartType];
8490
+ const { tooltip = {
8491
+ enable: true
8492
+ } } = baseConfig;
8493
+ const { enable } = tooltip;
8494
+ const { foldInfo } = datasetReshapeInfo[0];
8495
+ result.tooltip = {
8496
+ visible: enable,
8497
+ mark: {
8498
+ title: {
8499
+ visible: false
8500
+ },
8501
+ content: tooltipHeatmap_createMarkContent(encoding.tooltip || [], dimensions, measures, locale, foldInfo)
8502
+ },
8503
+ dimension: {
8504
+ visible: false
8505
+ }
8506
+ };
8507
+ return result;
8508
+ };
8509
+ const tooltipHeatmap_createMarkContent = (tooltip, dimensions, measures, locale, foldInfo)=>{
8510
+ const dims = dimensions.filter((item)=>tooltip.includes(item.id));
8511
+ const meas = measures.filter((item)=>tooltip.includes(item.id));
8512
+ const dimContent = dims.map((item)=>({
8513
+ visible: true,
8514
+ hasShape: true,
8515
+ shapeType: 'rectRound',
8516
+ key: (v)=>{
8517
+ const datum = v;
8518
+ if (item.alias || item.id) return item.alias || item.id;
8519
+ return datum && datum[item.id];
8520
+ },
8521
+ value: (v)=>{
8522
+ const datum = v;
8523
+ return datum && datum[item.id];
8524
+ }
8525
+ }));
8526
+ const meaContent = meas.map((item)=>({
8527
+ visible: true,
8528
+ hasShape: true,
8529
+ shapeType: 'rectRound',
8530
+ key: item.alias || item.id,
8531
+ value: (v)=>{
8532
+ const datum = v;
8533
+ if (!datum) return '';
8534
+ const id = item.id;
8535
+ if (!datum || !datum[ORIGINAL_DATA] || !datum[ORIGINAL_DATA]) return '';
8536
+ const originalData = datum[ORIGINAL_DATA];
8537
+ const value = originalData[id];
8538
+ const measure = findMeasureById(measures, id);
8539
+ if (!measure) return String(value);
8540
+ const { format = {}, autoFormat = true } = measure;
8541
+ if (!chunk_VCYTMP4D_n(format)) {
8542
+ const formatter = createFormatter(format);
8543
+ return formatter(value);
8544
+ }
8545
+ if (autoFormat) return autoFormatter(value, locale);
8546
+ return String(value);
8547
+ }
8548
+ }));
8549
+ const foldMeaContent = [
8550
+ foldInfo
8551
+ ].map((foldInfo)=>({
8552
+ visible: true,
8553
+ hasShape: true,
8554
+ shapeType: 'rectRound',
8555
+ key: (v)=>{
8556
+ const { measureId, foldMap } = foldInfo;
8557
+ const datum = v;
8558
+ const id = datum[measureId];
8559
+ return foldMap[id] || id;
8560
+ },
8561
+ value: (v)=>{
8562
+ const { measureId, measureValue } = foldInfo;
8563
+ const datum = v;
8564
+ if (!datum) return '';
8565
+ const value = datum[measureValue];
8566
+ const id = datum[measureId];
8567
+ const measure = findMeasureById(measures, id);
8568
+ if (!measure) return String(value);
8569
+ const { format = {}, autoFormat = true } = measure;
8570
+ if (!chunk_VCYTMP4D_n(format)) {
8571
+ const formatter = createFormatter(format);
8572
+ return formatter(value);
8573
+ }
8574
+ if (autoFormat) return autoFormatter(value, locale);
8575
+ return String(value);
8576
+ }
8577
+ }));
8578
+ return [
8579
+ ...dimContent,
8580
+ ...foldMeaContent,
8581
+ ...meaContent
8582
+ ];
8583
+ };
8136
8584
  const initHeatmap = (spec, context)=>{
8137
8585
  const result = {
8138
8586
  ...spec
@@ -8176,7 +8624,7 @@
8176
8624
  labelColorInversion,
8177
8625
  colorAdapter(discreteLegend, colorLegend),
8178
8626
  colorCellStyleFill(cellStyle),
8179
- tooltip_tooltip,
8627
+ tooltipHeatmap,
8180
8628
  annotationPoint_annotationPoint,
8181
8629
  annotationVerticalLine_annotationVerticalLine,
8182
8630
  annotationHorizontalLine_annotationHorizontalLine,
@@ -8195,7 +8643,7 @@
8195
8643
  label_label,
8196
8644
  labelColorInversion,
8197
8645
  discreteLegend,
8198
- tooltip_tooltip,
8646
+ tooltipHeatmap,
8199
8647
  colorCellStyleFill(cellStyle),
8200
8648
  annotationPoint_annotationPoint,
8201
8649
  annotationVerticalLine_annotationVerticalLine,