@visactor/vseed 0.1.13 → 0.1.14

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 (108) hide show
  1. package/dist/cjs/index.cjs +1 -1
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/esm/builder/builder/builder.d.ts +2272 -112
  4. package/dist/esm/pipeline/advanced/chart/pipes/encoding/{encodingAdapter.d.ts → adapter/encodingAdapter.d.ts} +1 -1
  5. package/dist/esm/pipeline/advanced/chart/pipes/encoding/{encodingAdapter.js → adapter/encodingAdapter.js} +1 -1
  6. package/dist/esm/pipeline/advanced/chart/pipes/encoding/adapter/encodingAdapter.js.map +1 -0
  7. package/dist/esm/pipeline/advanced/chart/pipes/encoding/adapter/index.d.ts +1 -0
  8. package/dist/esm/pipeline/advanced/chart/pipes/encoding/adapter/index.js +2 -0
  9. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js +4 -6
  10. package/dist/esm/pipeline/advanced/chart/pipes/encoding/bar.js.map +1 -1
  11. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.d.ts +8 -0
  12. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.js +13 -0
  13. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/addColorToEncoding.js.map +1 -0
  14. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/index.d.ts +1 -0
  15. package/dist/esm/pipeline/advanced/chart/pipes/encoding/color/index.js +2 -0
  16. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js +4 -6
  17. package/dist/esm/pipeline/advanced/chart/pipes/encoding/column.js.map +1 -1
  18. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js +4 -6
  19. package/dist/esm/pipeline/advanced/chart/pipes/encoding/dualAxis.js.map +1 -1
  20. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js +4 -6
  21. package/dist/esm/pipeline/advanced/chart/pipes/encoding/funnel.js.map +1 -1
  22. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js +4 -6
  23. package/dist/esm/pipeline/advanced/chart/pipes/encoding/heatmap.js.map +1 -1
  24. package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.d.ts +1 -1
  25. package/dist/esm/pipeline/advanced/chart/pipes/encoding/index.js +1 -1
  26. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js +4 -6
  27. package/dist/esm/pipeline/advanced/chart/pipes/encoding/line.js.map +1 -1
  28. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js +4 -6
  29. package/dist/esm/pipeline/advanced/chart/pipes/encoding/pie.js.map +1 -1
  30. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js +4 -6
  31. package/dist/esm/pipeline/advanced/chart/pipes/encoding/radar.js.map +1 -1
  32. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js +4 -6
  33. package/dist/esm/pipeline/advanced/chart/pipes/encoding/rose.js.map +1 -1
  34. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js +2 -4
  35. package/dist/esm/pipeline/advanced/chart/pipes/encoding/scatter.js.map +1 -1
  36. package/dist/esm/pipeline/spec/chart/pipes/axes/angle.js +1 -0
  37. package/dist/esm/pipeline/spec/chart/pipes/axes/angle.js.map +1 -1
  38. package/dist/esm/pipeline/spec/chart/pipes/axes/radius.js +1 -0
  39. package/dist/esm/pipeline/spec/chart/pipes/axes/radius.js.map +1 -1
  40. package/dist/esm/pipeline/spec/chart/pipes/label/label.js +26 -13
  41. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  42. package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js +3 -3
  43. package/dist/esm/pipeline/spec/chart/pipes/legend/colorLegend.js.map +1 -1
  44. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js +4 -4
  45. package/dist/esm/pipeline/spec/chart/pipes/legend/discreteLegend.js.map +1 -1
  46. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js +3 -3
  47. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotColorLegend.js.map +1 -1
  48. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js +4 -4
  49. package/dist/esm/pipeline/spec/chart/pipes/legend/pivotDiscreteLegend.js.map +1 -1
  50. package/dist/esm/theme/dark.js +4 -2
  51. package/dist/esm/theme/dark.js.map +1 -1
  52. package/dist/esm/theme/light.js +4 -2
  53. package/dist/esm/theme/light.js.map +1 -1
  54. package/dist/esm/types/advancedVSeed.d.ts +1404 -36
  55. package/dist/esm/types/chartType/area/zArea.d.ts +39 -1
  56. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +39 -1
  57. package/dist/esm/types/chartType/bar/zBar.d.ts +39 -1
  58. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +39 -1
  59. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +39 -1
  60. package/dist/esm/types/chartType/column/zColumn.d.ts +39 -1
  61. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +39 -1
  62. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +39 -1
  63. package/dist/esm/types/chartType/donut/zDonut.d.ts +39 -1
  64. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +39 -1
  65. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +38 -0
  66. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +38 -0
  67. package/dist/esm/types/chartType/line/zLine.d.ts +39 -1
  68. package/dist/esm/types/chartType/pie/zPie.d.ts +39 -1
  69. package/dist/esm/types/chartType/radar/zRadar.d.ts +39 -1
  70. package/dist/esm/types/chartType/rose/zRose.d.ts +39 -1
  71. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +39 -1
  72. package/dist/esm/types/chartType/scatter/zScatter.d.ts +39 -1
  73. package/dist/esm/types/properties/config/axes/axis.d.ts +0 -47
  74. package/dist/esm/types/properties/config/axes/axis.js +0 -54
  75. package/dist/esm/types/properties/config/axes/bandAxis.d.ts +0 -79
  76. package/dist/esm/types/properties/config/axes/bandAxis.js +0 -48
  77. package/dist/esm/types/properties/config/axes/index.d.ts +6 -3
  78. package/dist/esm/types/properties/config/axes/index.js +3 -3
  79. package/dist/esm/types/properties/config/axes/linearAxis.d.ts +0 -81
  80. package/dist/esm/types/properties/config/axes/linearAxis.js +0 -45
  81. package/dist/esm/types/properties/config/axes/zAxis.d.ts +47 -0
  82. package/dist/esm/types/properties/config/axes/zAxis.js +54 -0
  83. package/dist/esm/types/properties/config/axes/zAxis.js.map +1 -0
  84. package/dist/esm/types/properties/config/axes/zBandAxis.d.ts +79 -0
  85. package/dist/esm/types/properties/config/axes/zBandAxis.js +48 -0
  86. package/dist/esm/types/properties/config/axes/zBandAxis.js.map +1 -0
  87. package/dist/esm/types/properties/config/axes/zLinearAxis.d.ts +81 -0
  88. package/dist/esm/types/properties/config/axes/zLinearAxis.js +45 -0
  89. package/dist/esm/types/properties/config/axes/zLinearAxis.js.map +1 -0
  90. package/dist/esm/types/properties/config/config.d.ts +1404 -37
  91. package/dist/esm/types/properties/config/config.js +1 -2
  92. package/dist/esm/types/properties/config/config.js.map +1 -1
  93. package/dist/esm/types/properties/config/label/label.d.ts +37 -0
  94. package/dist/esm/types/properties/config/label/zLabel.d.ts +38 -0
  95. package/dist/esm/types/properties/config/label/zLabel.js +11 -1
  96. package/dist/esm/types/properties/config/label/zLabel.js.map +1 -1
  97. package/dist/esm/types/properties/config/legend/legend.d.ts +6 -2
  98. package/dist/esm/types/properties/config/legend/legend.js +1 -1
  99. package/dist/esm/types/properties/config/legend/legend.js.map +1 -1
  100. package/dist/esm/types/properties/theme/customTheme.d.ts +1404 -36
  101. package/dist/esm/types/zVseed.d.ts +716 -32
  102. package/dist/umd/index.js +96 -90
  103. package/dist/umd/index.js.map +1 -1
  104. package/package.json +1 -1
  105. package/dist/esm/pipeline/advanced/chart/pipes/encoding/encodingAdapter.js.map +0 -1
  106. package/dist/esm/types/properties/config/axes/axis.js.map +0 -1
  107. package/dist/esm/types/properties/config/axes/bandAxis.js.map +0 -1
  108. package/dist/esm/types/properties/config/axes/linearAxis.js.map +0 -1
package/dist/umd/index.js CHANGED
@@ -1776,6 +1776,14 @@
1776
1776
  if (hasEncoding) return execPipeline(hasEncodingPipeline, context, advancedVSeed);
1777
1777
  return execPipeline(noEncodingPipeline, context, advancedVSeed);
1778
1778
  };
1779
+ const addColorToEncoding = (dimensions, encoding, isMultiMeasure)=>{
1780
+ encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1781
+ const measureName = dimensions.find((item)=>item.id === MeasureName);
1782
+ if (isMultiMeasure && measureName && !measureName.encoding) encoding.color.push(MeasureName);
1783
+ if (0 === encoding.color.length) encoding.color = [
1784
+ MeasureName
1785
+ ];
1786
+ };
1779
1787
  const defaultEncodingForLine = (advancedVSeed)=>{
1780
1788
  const { measures: vseedMeasures = [], dimensions = [] } = advancedVSeed;
1781
1789
  const measures = findAllMeasures(vseedMeasures);
@@ -1793,7 +1801,7 @@
1793
1801
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
1794
1802
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
1795
1803
  const encoding = {};
1796
- if (hasDimensionEncoding) line_generateDimensionEncoding(dimensions, encoding);
1804
+ if (hasDimensionEncoding) line_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
1797
1805
  else line_generateDefaultDimensionEncoding(dimensions, encoding);
1798
1806
  if (hasMeasureEncoding) line_generateMeasureEncoding(measures, encoding);
1799
1807
  else line_generateDefaultMeasureEncoding(measures, encoding);
@@ -1812,15 +1820,12 @@
1812
1820
  encoding.row = [];
1813
1821
  encoding.column = [];
1814
1822
  };
1815
- const line_generateDimensionEncoding = (dimensions, encoding)=>{
1823
+ const line_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
1816
1824
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
1817
1825
  if (0 === encoding.x.length) encoding.x = [
1818
1826
  dimensions[0].id
1819
1827
  ];
1820
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
1821
- if (0 === encoding.color.length) encoding.color = [
1822
- MeasureName
1823
- ];
1828
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
1824
1829
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
1825
1830
  if (0 === encoding.detail.length) encoding.detail = [
1826
1831
  MeasureName
@@ -2798,7 +2803,7 @@
2798
2803
  const baseConfig = advancedVSeed.config[chartType];
2799
2804
  if (!baseConfig || !baseConfig.legend) return result;
2800
2805
  const { legend } = baseConfig;
2801
- const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight, maxSize = 1, border, shapeType = 'rectRound' } = legend || {};
2806
+ const { enable, position = 'bottom', labelFontColor, labelColor, labelFontSize = 12, labelFontWeight, maxSize = 1, border, shapeType = 'rectRound' } = legend || {};
2802
2807
  const orient = [
2803
2808
  'bottom',
2804
2809
  'bottomLeft',
@@ -2858,7 +2863,7 @@
2858
2863
  maxWidth: '30%',
2859
2864
  focusIconStyle: {
2860
2865
  size: labelFontSize + 2,
2861
- fill: labelFontColor,
2866
+ fill: labelColor || labelFontColor,
2862
2867
  fontWeight: labelFontWeight
2863
2868
  },
2864
2869
  shape: {
@@ -2872,14 +2877,14 @@
2872
2877
  formatMethod: (value)=>unfoldInfo.colorIdMap[String(value)] ?? value,
2873
2878
  style: {
2874
2879
  fontSize: labelFontSize,
2875
- fill: labelFontColor,
2880
+ fill: labelColor || labelFontColor,
2876
2881
  fontWeight: labelFontWeight
2877
2882
  }
2878
2883
  },
2879
2884
  background: {
2880
2885
  state: {
2881
2886
  selectedHover: {
2882
- fill: labelFontColor,
2887
+ fill: labelColor || labelFontColor,
2883
2888
  fillOpacity: 0.05
2884
2889
  }
2885
2890
  }
@@ -2899,7 +2904,7 @@
2899
2904
  const baseConfig = advancedVSeed.config[chartType];
2900
2905
  if (!baseConfig || !baseConfig.legend) return result;
2901
2906
  const { legend } = baseConfig;
2902
- const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight } = legend || {};
2907
+ const { enable, position = 'bottom', labelFontColor, labelColor, labelFontSize = 12, labelFontWeight } = legend || {};
2903
2908
  const orient = [
2904
2909
  'bottom',
2905
2910
  'bottomLeft',
@@ -2949,7 +2954,7 @@
2949
2954
  startText: {
2950
2955
  visible: true,
2951
2956
  style: {
2952
- fill: labelFontColor,
2957
+ fill: labelColor || labelFontColor,
2953
2958
  fontSize: labelFontSize,
2954
2959
  fontWeight: labelFontWeight
2955
2960
  }
@@ -2957,7 +2962,7 @@
2957
2962
  endText: {
2958
2963
  visible: true,
2959
2964
  style: {
2960
- fill: labelFontColor,
2965
+ fill: labelColor || labelFontColor,
2961
2966
  fontSize: labelFontSize,
2962
2967
  fontWeight: labelFontWeight
2963
2968
  }
@@ -3276,38 +3281,51 @@
3276
3281
  const { measures, datasetReshapeInfo } = advancedVSeed;
3277
3282
  const { chartType, encoding } = advancedVSeed;
3278
3283
  const baseConfig = advancedVSeed.config[chartType];
3279
- if (!baseConfig || !baseConfig.label) return result;
3284
+ if (!baseConfig || chunk_VCYTMP4D_n(baseConfig.label)) return result;
3280
3285
  const { measureId, measureValue, statistics } = datasetReshapeInfo[0].foldInfo;
3281
3286
  const { label } = baseConfig;
3282
- const { enable, wrap, showValue, showValuePercent } = label;
3287
+ const { enable, wrap, showValue, showValuePercent, labelOverlap, labelColorSmartInvert, labelColor, labelFontSize, labelFontWeight, labelBackgroundColor, labelPosition, autoFormat = true, numFormat = {} } = label;
3283
3288
  const labelDims = T((vseed.dimensions || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3284
3289
  const labelMeas = T((vseed.measures || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3285
- const format = {
3290
+ const percentFormat = chunk_5S4PYKVY_t(numFormat, {
3286
3291
  type: 'percent'
3287
- };
3288
- const formatter = createFormatter(format);
3292
+ });
3293
+ const percentFormatter = createFormatter(percentFormat);
3289
3294
  result.label = {
3290
3295
  visible: enable,
3291
3296
  formatMethod: (_, datum)=>{
3292
3297
  const result = [];
3293
- const measure = findMeasureById(measures, datum[measureId]);
3294
3298
  const dimLabels = labelDims.map((item)=>item.alias || item.id);
3295
- const meaLabels = labelMeas.map((item)=>generateMeasureValue(datum[item.id], item));
3296
- const measureValueLabel = generateMeasureValue(datum[measureValue], measure);
3297
- const measurePercentLabel = generateMeasurePercent(datum[measureValue], statistics.sum, formatter);
3299
+ const meaLabels = labelMeas.map((item)=>generateMeasureValue(datum[item.id], item, autoFormat, numFormat));
3300
+ const measure = findMeasureById(measures, datum[measureId]);
3301
+ const measureValueLabel = generateMeasureValue(datum[measureValue], measure, autoFormat, numFormat);
3302
+ const measurePercentLabel = generateMeasurePercent(datum[measureValue], statistics.sum, percentFormatter);
3298
3303
  result.push(...dimLabels);
3299
3304
  if (showValue) result.push(measureValueLabel);
3300
3305
  if (showValuePercent) result.push(measurePercentLabel);
3301
3306
  result.push(...meaLabels);
3302
3307
  if (wrap) return result;
3303
3308
  return result.join(' ');
3304
- }
3309
+ },
3310
+ position: labelPosition,
3311
+ style: {
3312
+ fill: labelColor,
3313
+ fontSize: labelFontSize,
3314
+ fontWeight: labelFontWeight,
3315
+ background: labelBackgroundColor
3316
+ },
3317
+ smartInvert: labelColorSmartInvert
3318
+ };
3319
+ if (labelOverlap) result.label.overlap = {
3320
+ hideOnHit: true,
3321
+ clampForce: true
3305
3322
  };
3306
3323
  return result;
3307
3324
  };
3308
- const generateMeasureValue = (value, measure)=>{
3325
+ const generateMeasureValue = (value, measure, labelAutoFormat = true, numFormat = {})=>{
3309
3326
  if (!measure) return value;
3310
- const { format = {}, autoFormat = true } = measure;
3327
+ const format = chunk_5S4PYKVY_t(numFormat, measure.format);
3328
+ const autoFormat = labelAutoFormat || measure.autoFormat;
3311
3329
  if (!chunk_VCYTMP4D_n(format)) {
3312
3330
  const formatter = createFormatter(format);
3313
3331
  return formatter(value);
@@ -4117,7 +4135,7 @@
4117
4135
  const { legend, color } = baseConfig;
4118
4136
  const { colorScheme, colorMapping } = color;
4119
4137
  const colorSpecified = createSpecifiedForColorMapping(colorMapping, colorIdMap, colorItems);
4120
- const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400, maxSize = 1, border, shapeType = 'rectRound' } = legend || {};
4138
+ const { enable, position = 'bottom', labelFontColor, labelColor, labelFontSize = 12, labelFontWeight = 400, maxSize = 1, border, shapeType = 'rectRound' } = legend || {};
4121
4139
  const orient = [
4122
4140
  'bottom',
4123
4141
  'bottomLeft',
@@ -4182,7 +4200,7 @@
4182
4200
  maxWidth: '30%',
4183
4201
  focusIconStyle: {
4184
4202
  size: labelFontSize + 2,
4185
- fill: labelFontColor,
4203
+ fill: labelColor || labelFontColor,
4186
4204
  fontWeight: labelFontWeight
4187
4205
  },
4188
4206
  shape: {
@@ -4196,14 +4214,14 @@
4196
4214
  formatMethod: (value)=>colorIdMap[value] ?? value,
4197
4215
  style: {
4198
4216
  fontSize: labelFontSize,
4199
- fill: labelFontColor,
4217
+ fill: labelColor || labelFontColor,
4200
4218
  fontWeight: labelFontWeight
4201
4219
  }
4202
4220
  },
4203
4221
  background: {
4204
4222
  state: {
4205
4223
  selectedHover: {
4206
- fill: labelFontColor,
4224
+ fill: labelColor || labelFontColor,
4207
4225
  fillOpacity: 0.05
4208
4226
  }
4209
4227
  }
@@ -4228,7 +4246,7 @@
4228
4246
  const min = Math.min(...datasetReshapeInfo.map((d)=>d.foldInfo.statistics.colorMax));
4229
4247
  const { legend, color } = baseConfig;
4230
4248
  const { colorScheme, linearColorScheme } = color;
4231
- const { enable, position = 'bottom', labelFontColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {};
4249
+ const { enable, position = 'bottom', labelFontColor, labelColor, labelFontSize = 12, labelFontWeight = 400 } = legend || {};
4232
4250
  const orient = [
4233
4251
  'bottom',
4234
4252
  'bottomLeft',
@@ -4283,7 +4301,7 @@
4283
4301
  startText: {
4284
4302
  visible: true,
4285
4303
  style: {
4286
- fill: labelFontColor,
4304
+ fill: labelColor || labelFontColor,
4287
4305
  fontSize: labelFontSize,
4288
4306
  fontWeight: labelFontWeight
4289
4307
  }
@@ -4291,7 +4309,7 @@
4291
4309
  endText: {
4292
4310
  visible: true,
4293
4311
  style: {
4294
- fill: labelFontColor,
4312
+ fill: labelColor || labelFontColor,
4295
4313
  fontSize: labelFontSize,
4296
4314
  fontWeight: labelFontWeight
4297
4315
  }
@@ -4380,7 +4398,7 @@
4380
4398
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
4381
4399
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
4382
4400
  const encoding = {};
4383
- if (hasDimensionEncoding) column_generateDimensionEncoding(dimensions, encoding);
4401
+ if (hasDimensionEncoding) column_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
4384
4402
  else column_generateDefaultDimensionEncoding(dimensions, encoding);
4385
4403
  if (hasMeasureEncoding) column_generateMeasureEncoding(measures, encoding);
4386
4404
  else column_generateDefaultMeasureEncoding(measures, encoding);
@@ -4400,15 +4418,12 @@
4400
4418
  encoding.row = [];
4401
4419
  encoding.column = [];
4402
4420
  };
4403
- const column_generateDimensionEncoding = (dimensions, encoding)=>{
4421
+ const column_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
4404
4422
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
4405
4423
  if (0 === encoding.x.length) encoding.x = [
4406
4424
  dimensions[0].id
4407
4425
  ];
4408
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
4409
- if (0 === encoding.color.length) encoding.color = [
4410
- MeasureName
4411
- ];
4426
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
4412
4427
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
4413
4428
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
4414
4429
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
@@ -5019,7 +5034,7 @@
5019
5034
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
5020
5035
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
5021
5036
  const encoding = {};
5022
- if (hasDimensionEncoding) bar_generateDimensionEncoding(dimensions, encoding);
5037
+ if (hasDimensionEncoding) bar_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
5023
5038
  else bar_generateDefaultDimensionEncoding(dimensions, encoding);
5024
5039
  if (hasMeasureEncoding) bar_generateMeasureEncoding(measures, encoding);
5025
5040
  else bar_generateDefaultMeasureEncoding(measures, encoding);
@@ -5039,15 +5054,12 @@
5039
5054
  encoding.row = [];
5040
5055
  encoding.column = [];
5041
5056
  };
5042
- const bar_generateDimensionEncoding = (dimensions, encoding)=>{
5057
+ const bar_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
5043
5058
  encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
5044
5059
  if (0 === encoding.y.length) encoding.y = [
5045
5060
  dimensions[0].id
5046
5061
  ];
5047
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5048
- if (0 === encoding.color.length) encoding.color = [
5049
- MeasureName
5050
- ];
5062
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
5051
5063
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5052
5064
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
5053
5065
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
@@ -5928,10 +5940,7 @@
5928
5940
  encoding.column = [];
5929
5941
  };
5930
5942
  const scatter_generateDimensionEncoding = (dimensions, encoding)=>{
5931
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
5932
- if (0 === encoding.color.length) encoding.color = [
5933
- MeasureName
5934
- ];
5943
+ addColorToEncoding(dimensions, encoding, false);
5935
5944
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
5936
5945
  if (0 === encoding.detail.length) encoding.detail = [
5937
5946
  MeasureName
@@ -6463,7 +6472,7 @@
6463
6472
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
6464
6473
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
6465
6474
  const encoding = {};
6466
- if (hasDimensionEncoding) dualAxis_generateDimensionEncoding(dimensions, encoding);
6475
+ if (hasDimensionEncoding) dualAxis_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
6467
6476
  else dualAxis_generateDefaultDimensionEncoding(dimensions, encoding);
6468
6477
  if (hasMeasureEncoding) dualAxis_generateMeasureEncoding(measures, encoding);
6469
6478
  else dualAxis_generateDefaultMeasureEncoding(measures, encoding);
@@ -6483,15 +6492,12 @@
6483
6492
  encoding.row = [];
6484
6493
  encoding.column = [];
6485
6494
  };
6486
- const dualAxis_generateDimensionEncoding = (dimensions, encoding)=>{
6495
+ const dualAxis_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
6487
6496
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
6488
6497
  if (0 === encoding.x.length) encoding.x = [
6489
6498
  dimensions[0].id
6490
6499
  ];
6491
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
6492
- if (0 === encoding.color.length) encoding.color = [
6493
- MeasureName
6494
- ];
6500
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
6495
6501
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
6496
6502
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
6497
6503
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
@@ -7538,7 +7544,7 @@
7538
7544
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7539
7545
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7540
7546
  const encoding = {};
7541
- if (hasDimensionEncoding) pie_generateDimensionEncoding(dimensions, encoding);
7547
+ if (hasDimensionEncoding) pie_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
7542
7548
  else pie_generateDefaultDimensionEncoding(dimensions, encoding);
7543
7549
  if (hasMeasureEncoding) pie_generateMeasureEncoding(measures, encoding);
7544
7550
  else pie_generateDefaultMeasureEncoding(measures, encoding);
@@ -7556,11 +7562,8 @@
7556
7562
  encoding.row = [];
7557
7563
  encoding.column = [];
7558
7564
  };
7559
- const pie_generateDimensionEncoding = (dimensions, encoding)=>{
7560
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7561
- if (0 === encoding.color.length) encoding.color = [
7562
- MeasureName
7563
- ];
7565
+ const pie_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
7566
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
7564
7567
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7565
7568
  if (0 === encoding.detail.length) encoding.detail = [
7566
7569
  MeasureName
@@ -7822,7 +7825,7 @@
7822
7825
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
7823
7826
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
7824
7827
  const encoding = {};
7825
- if (hasDimensionEncoding) rose_generateDimensionEncoding(dimensions, encoding);
7828
+ if (hasDimensionEncoding) rose_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
7826
7829
  else rose_generateDefaultDimensionEncoding(dimensions, encoding);
7827
7830
  if (hasMeasureEncoding) rose_generateMeasureEncoding(measures, encoding);
7828
7831
  else rose_generateDefaultMeasureEncoding(measures, encoding);
@@ -7842,15 +7845,12 @@
7842
7845
  encoding.row = [];
7843
7846
  encoding.column = [];
7844
7847
  };
7845
- const rose_generateDimensionEncoding = (dimensions, encoding)=>{
7848
+ const rose_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
7846
7849
  encoding.angle = chunk_QJLMYOTX_i(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
7847
7850
  if (0 === encoding.angle.length) encoding.angle = [
7848
7851
  dimensions[0].id
7849
7852
  ];
7850
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
7851
- if (0 === encoding.color.length) encoding.color = [
7852
- MeasureName
7853
- ];
7853
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
7854
7854
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
7855
7855
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
7856
7856
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
@@ -7937,6 +7937,7 @@
7937
7937
  const showAxis = !(is0D || is1M1D);
7938
7938
  if (!result.axes) result.axes = [];
7939
7939
  result.axes.push({
7940
+ type: 'band',
7940
7941
  orient: 'angle',
7941
7942
  visible: showAxis,
7942
7943
  zero: true,
@@ -7979,6 +7980,7 @@
7979
7980
  const showAxis = !(is0D || is1M1D);
7980
7981
  if (!result.axes) result.axes = [];
7981
7982
  result.axes.push({
7983
+ type: 'linear',
7982
7984
  orient: 'radius',
7983
7985
  visible: showAxis,
7984
7986
  zero: true,
@@ -8220,7 +8222,7 @@
8220
8222
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
8221
8223
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
8222
8224
  const encoding = {};
8223
- if (hasDimensionEncoding) radar_generateDimensionEncoding(dimensions, encoding);
8225
+ if (hasDimensionEncoding) radar_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
8224
8226
  else radar_generateDefaultDimensionEncoding(dimensions, encoding);
8225
8227
  if (hasMeasureEncoding) radar_generateMeasureEncoding(measures, encoding);
8226
8228
  else radar_generateDefaultMeasureEncoding(measures, encoding);
@@ -8239,15 +8241,12 @@
8239
8241
  encoding.row = [];
8240
8242
  encoding.column = [];
8241
8243
  };
8242
- const radar_generateDimensionEncoding = (dimensions, encoding)=>{
8244
+ const radar_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
8243
8245
  encoding.angle = chunk_QJLMYOTX_i(dimensions.filter((item)=>'angle' === item.encoding).map((item)=>item.id));
8244
8246
  if (0 === encoding.angle.length) encoding.angle = [
8245
8247
  dimensions[0].id
8246
8248
  ];
8247
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8248
- if (0 === encoding.color.length) encoding.color = [
8249
- MeasureName
8250
- ];
8249
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
8251
8250
  encoding.detail = [];
8252
8251
  if (0 === encoding.detail.length) encoding.detail = [
8253
8252
  MeasureName
@@ -8440,7 +8439,7 @@
8440
8439
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
8441
8440
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
8442
8441
  const encoding = {};
8443
- if (hasDimensionEncoding) funnel_generateDimensionEncoding(dimensions, encoding);
8442
+ if (hasDimensionEncoding) funnel_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
8444
8443
  else funnel_generateDefaultDimensionEncoding(dimensions, encoding);
8445
8444
  if (hasMeasureEncoding) funnel_generateMeasureEncoding(measures, encoding);
8446
8445
  else funnel_generateDefaultMeasureEncoding(measures, encoding);
@@ -8458,11 +8457,8 @@
8458
8457
  encoding.row = [];
8459
8458
  encoding.column = [];
8460
8459
  };
8461
- const funnel_generateDimensionEncoding = (dimensions, encoding)=>{
8462
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8463
- if (0 === encoding.color.length) encoding.color = [
8464
- MeasureName
8465
- ];
8460
+ const funnel_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
8461
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
8466
8462
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
8467
8463
  if (0 === encoding.detail.length) encoding.detail = [
8468
8464
  MeasureName
@@ -8636,7 +8632,7 @@
8636
8632
  const hasDimensionEncoding = dimensions.some((item)=>item.encoding);
8637
8633
  const hasMeasureEncoding = measures.some((item)=>item.encoding);
8638
8634
  const encoding = {};
8639
- if (hasDimensionEncoding) heatmap_generateDimensionEncoding(dimensions, encoding);
8635
+ if (hasDimensionEncoding) heatmap_generateDimensionEncoding(dimensions, encoding, measures.length > 1);
8640
8636
  else heatmap_generateDefaultDimensionEncoding(dimensions, encoding);
8641
8637
  if (hasMeasureEncoding) heatmap_generateMeasureEncoding(measures, encoding);
8642
8638
  else heatmap_generateDefaultMeasureEncoding(measures, encoding);
@@ -8657,7 +8653,7 @@
8657
8653
  encoding.row = [];
8658
8654
  encoding.column = [];
8659
8655
  };
8660
- const heatmap_generateDimensionEncoding = (dimensions, encoding)=>{
8656
+ const heatmap_generateDimensionEncoding = (dimensions, encoding, isMultiMeasure)=>{
8661
8657
  encoding.x = chunk_QJLMYOTX_i(dimensions.filter((item)=>'xAxis' === item.encoding).map((item)=>item.id));
8662
8658
  if (0 === encoding.x.length) encoding.x = [
8663
8659
  dimensions[0].id
@@ -8665,10 +8661,7 @@
8665
8661
  encoding.y = chunk_QJLMYOTX_i(dimensions.filter((item)=>'yAxis' === item.encoding).map((item)=>item.id));
8666
8662
  if (0 === encoding.y.length) if (dimensions.length > 1) encoding.y = dimensions.slice(1).map((item)=>item.id);
8667
8663
  else encoding.y = dimensions.slice(0).map((item)=>item.id);
8668
- encoding.color = chunk_QJLMYOTX_i(dimensions.filter((item)=>'color' === item.encoding).map((item)=>item.id));
8669
- if (0 === encoding.color.length) encoding.color = [
8670
- MeasureName
8671
- ];
8664
+ addColorToEncoding(dimensions, encoding, isMultiMeasure);
8672
8665
  encoding.detail = chunk_QJLMYOTX_i(dimensions.filter((item)=>'detail' === item.encoding).map((item)=>item.id));
8673
8666
  if (0 === encoding.detail.length) encoding.detail = encoding.color;
8674
8667
  encoding.tooltip = chunk_QJLMYOTX_i(dimensions.map((item)=>item.id));
@@ -9075,7 +9068,9 @@
9075
9068
  enable: true,
9076
9069
  wrap: true,
9077
9070
  showValue: true,
9078
- showValuePercent: false
9071
+ showValuePercent: false,
9072
+ labelColorSmartInvert: false,
9073
+ labelOverlap: true
9079
9074
  },
9080
9075
  tooltip: {
9081
9076
  enable: true
@@ -9086,7 +9081,7 @@
9086
9081
  maxSize: 1,
9087
9082
  shapeType: 'rectRound',
9088
9083
  position: 'rt',
9089
- labelFontColor: '#646A73',
9084
+ labelColor: '#646A73',
9090
9085
  labelFontSize: 12,
9091
9086
  labelFontWeight: 400
9092
9087
  }
@@ -9399,7 +9394,9 @@
9399
9394
  enable: true,
9400
9395
  wrap: true,
9401
9396
  showValue: true,
9402
- showValuePercent: false
9397
+ showValuePercent: false,
9398
+ labelColorSmartInvert: false,
9399
+ labelOverlap: true
9403
9400
  },
9404
9401
  tooltip: {
9405
9402
  enable: true
@@ -9410,7 +9407,7 @@
9410
9407
  maxSize: 1,
9411
9408
  position: 'rt',
9412
9409
  shapeType: 'rectRound',
9413
- labelFontColor: '#FDFDFD',
9410
+ labelColor: '#FDFDFD',
9414
9411
  labelFontSize: 12,
9415
9412
  labelFontWeight: 400
9416
9413
  }
@@ -13283,7 +13280,16 @@
13283
13280
  enable: schemas_boolean().nullish(),
13284
13281
  wrap: schemas_boolean().nullish(),
13285
13282
  showValue: schemas_boolean().nullish(),
13286
- showValuePercent: schemas_boolean().nullish()
13283
+ showValuePercent: schemas_boolean().nullish(),
13284
+ autoFormat: schemas_boolean().nullish(),
13285
+ numFormat: zNumFormat.nullish(),
13286
+ labelFontSize: schemas_number().nullish(),
13287
+ labelFontWeight: schemas_number().or(schemas_string()).nullish(),
13288
+ labelBackgroundColor: schemas_string().nullish(),
13289
+ labelColor: schemas_string().nullish(),
13290
+ labelColorSmartInvert: schemas_boolean().nullish(),
13291
+ labelPosition: schemas_string().nullish(),
13292
+ labelOverlap: schemas_boolean().nullish()
13287
13293
  });
13288
13294
  const zLegend = schemas_object({
13289
13295
  enable: schemas_boolean().default(true).nullish(),
@@ -13335,8 +13341,8 @@
13335
13341
  'bl',
13336
13342
  'br'
13337
13343
  ]).default('bottom').nullish(),
13344
+ labelColor: schemas_string().default('#fff').nullish(),
13338
13345
  labelFontSize: schemas_number().default(12).nullish(),
13339
- labelFontColor: schemas_string().default('#fff').nullish(),
13340
13346
  labelFontWeight: schemas_number().or(schemas_string()).default(400).nullish()
13341
13347
  });
13342
13348
  const zColorLegend = schemas_object({