@visactor/vseed 0.1.14 → 0.1.15

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 (119) 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 +1113 -9
  4. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js +1 -3
  5. package/dist/esm/pipeline/spec/chart/pipeline/heatmap.js.map +1 -1
  6. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js +3 -3
  7. package/dist/esm/pipeline/spec/chart/pipeline/scatter.js.map +1 -1
  8. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js +9 -3
  9. package/dist/esm/pipeline/spec/chart/pipes/axes/xLinear.js.map +1 -1
  10. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js +9 -3
  11. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinear.js.map +1 -1
  12. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js +8 -3
  13. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearPrimary.js.map +1 -1
  14. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js +8 -3
  15. package/dist/esm/pipeline/spec/chart/pipes/axes/yLinearSecondary.js.map +1 -1
  16. package/dist/esm/pipeline/spec/chart/pipes/label/index.d.ts +1 -1
  17. package/dist/esm/pipeline/spec/chart/pipes/label/index.js +2 -2
  18. package/dist/esm/pipeline/spec/chart/pipes/label/label.d.ts +5 -1
  19. package/dist/esm/pipeline/spec/chart/pipes/label/label.js +40 -32
  20. package/dist/esm/pipeline/spec/chart/pipes/label/label.js.map +1 -1
  21. package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js +15 -52
  22. package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js.map +1 -1
  23. package/dist/esm/pipeline/spec/chart/pipes/label/{labelColorInversion.d.ts → labelScatter.d.ts} +1 -1
  24. package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js +19 -0
  25. package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js.map +1 -0
  26. package/dist/esm/pipeline/spec/chart/pipes/series/series.js +1 -0
  27. package/dist/esm/pipeline/spec/chart/pipes/series/series.js.map +1 -1
  28. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.d.ts +3 -3
  29. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js +13 -30
  30. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltip.js.map +1 -1
  31. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js +6 -6
  32. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipDualAxis.js.map +1 -1
  33. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js +6 -18
  34. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipHeatmap.js.map +1 -1
  35. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js +6 -18
  36. package/dist/esm/pipeline/spec/chart/pipes/tooltip/tooltipScatter.js.map +1 -1
  37. package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js +8 -11
  38. package/dist/esm/pipeline/spec/table/pipes/columns/measuresToColumns.js.map +1 -1
  39. package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js +8 -13
  40. package/dist/esm/pipeline/spec/table/pipes/indicators/pivotIndicators.js.map +1 -1
  41. package/dist/esm/pipeline/utils/constant.d.ts +1 -0
  42. package/dist/esm/pipeline/utils/constant.js +2 -1
  43. package/dist/esm/pipeline/utils/constant.js.map +1 -1
  44. package/dist/esm/pipeline/utils/format/createFormatter.d.ts +1 -1
  45. package/dist/esm/pipeline/utils/format/createFormatter.js +3 -2
  46. package/dist/esm/pipeline/utils/format/createFormatter.js.map +1 -1
  47. package/dist/esm/pipeline/utils/format/createFormatterByMeasure.d.ts +2 -0
  48. package/dist/esm/pipeline/utils/format/createFormatterByMeasure.js +13 -0
  49. package/dist/esm/pipeline/utils/format/createFormatterByMeasure.js.map +1 -0
  50. package/dist/esm/pipeline/utils/format/createNumFormatter.d.ts +1 -1
  51. package/dist/esm/pipeline/utils/format/createNumFormatter.js.map +1 -1
  52. package/dist/esm/pipeline/utils/format/index.d.ts +1 -0
  53. package/dist/esm/pipeline/utils/format/index.js +1 -0
  54. package/dist/esm/theme/dark.js +5 -1
  55. package/dist/esm/theme/dark.js.map +1 -1
  56. package/dist/esm/theme/light.js +23 -4
  57. package/dist/esm/theme/light.js.map +1 -1
  58. package/dist/esm/types/advancedVSeed.d.ts +947 -17
  59. package/dist/esm/types/chartType/area/zArea.d.ts +60 -0
  60. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +60 -0
  61. package/dist/esm/types/chartType/bar/zBar.d.ts +60 -0
  62. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +60 -0
  63. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +60 -0
  64. package/dist/esm/types/chartType/column/zColumn.d.ts +60 -0
  65. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +60 -0
  66. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +60 -0
  67. package/dist/esm/types/chartType/donut/zDonut.d.ts +30 -0
  68. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +270 -0
  69. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +30 -0
  70. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +30 -0
  71. package/dist/esm/types/chartType/line/zLine.d.ts +60 -0
  72. package/dist/esm/types/chartType/pie/zPie.d.ts +30 -0
  73. package/dist/esm/types/chartType/pivotTable/zPivotTable.d.ts +30 -0
  74. package/dist/esm/types/chartType/radar/zRadar.d.ts +30 -0
  75. package/dist/esm/types/chartType/rose/zRose.d.ts +30 -0
  76. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +30 -0
  77. package/dist/esm/types/chartType/scatter/zScatter.d.ts +210 -0
  78. package/dist/esm/types/chartType/table/zTable.d.ts +30 -0
  79. package/dist/esm/types/properties/config/axes/bandAxis.d.ts +146 -3
  80. package/dist/esm/types/properties/config/axes/index.d.ts +0 -2
  81. package/dist/esm/types/properties/config/axes/index.js +0 -1
  82. package/dist/esm/types/properties/config/axes/linearAxis.d.ts +149 -3
  83. package/dist/esm/types/properties/config/axes/zLinearAxis.d.ts +60 -0
  84. package/dist/esm/types/properties/config/axes/zLinearAxis.js +2 -0
  85. package/dist/esm/types/properties/config/axes/zLinearAxis.js.map +1 -1
  86. package/dist/esm/types/properties/config/config.d.ts +916 -16
  87. package/dist/esm/types/properties/config/label/label.d.ts +2 -2
  88. package/dist/esm/types/properties/config/label/zLabel.js +1 -1
  89. package/dist/esm/types/properties/config/label/zLabel.js.map +1 -1
  90. package/dist/esm/types/properties/format/numFormat.js.map +1 -0
  91. package/dist/esm/types/properties/index.d.ts +1 -0
  92. package/dist/esm/types/properties/index.js +1 -0
  93. package/dist/esm/types/properties/measures/index.d.ts +0 -1
  94. package/dist/esm/types/properties/measures/index.js +0 -1
  95. package/dist/esm/types/properties/measures/measures.d.ts +6 -2
  96. package/dist/esm/types/properties/measures/zDualMeasures.d.ts +240 -0
  97. package/dist/esm/types/properties/measures/zMeasures.d.ts +90 -0
  98. package/dist/esm/types/properties/measures/zMeasures.js +2 -1
  99. package/dist/esm/types/properties/measures/zMeasures.js.map +1 -1
  100. package/dist/esm/types/properties/measures/zScatterMeasures.d.ts +240 -0
  101. package/dist/esm/types/properties/theme/customTheme.d.ts +916 -16
  102. package/dist/esm/types/zVseed.d.ts +1389 -99
  103. package/dist/umd/index.js +181 -252
  104. package/dist/umd/index.js.map +1 -1
  105. package/package.json +1 -1
  106. package/dist/esm/pipeline/spec/chart/pipes/label/labelColorInversion.js +0 -13
  107. package/dist/esm/pipeline/spec/chart/pipes/label/labelColorInversion.js.map +0 -1
  108. package/dist/esm/types/properties/config/axes/axis.d.ts +0 -208
  109. package/dist/esm/types/properties/config/axes/axis.js +0 -0
  110. package/dist/esm/types/properties/config/axes/zAxis.d.ts +0 -47
  111. package/dist/esm/types/properties/config/axes/zAxis.js +0 -54
  112. package/dist/esm/types/properties/config/axes/zAxis.js.map +0 -1
  113. package/dist/esm/types/properties/measures/format/numFormat.js.map +0 -1
  114. /package/dist/esm/types/properties/{measures/format → format}/formatter.d.ts +0 -0
  115. /package/dist/esm/types/properties/{measures/format → format}/formatter.js +0 -0
  116. /package/dist/esm/types/properties/{measures/format → format}/index.d.ts +0 -0
  117. /package/dist/esm/types/properties/{measures/format → format}/index.js +0 -0
  118. /package/dist/esm/types/properties/{measures/format → format}/numFormat.d.ts +0 -0
  119. /package/dist/esm/types/properties/{measures/format → format}/numFormat.js +0 -0
package/dist/umd/index.js CHANGED
@@ -106,6 +106,7 @@
106
106
  columnAdvancedPipeline: ()=>columnAdvancedPipeline,
107
107
  zLabel: ()=>zLabel,
108
108
  registerColumn: ()=>registerColumn,
109
+ createFormatterByMeasure: ()=>createFormatterByMeasure,
109
110
  findAllMeasures: ()=>findAllMeasures,
110
111
  funnelSpecPipeline: ()=>funnelSpecPipeline,
111
112
  isDimensionSelector: ()=>isDimensionSelector,
@@ -193,21 +194,20 @@
193
194
  darkTheme: ()=>darkTheme,
194
195
  createNumFormatter: ()=>createNumFormatter,
195
196
  zAreaConfig: ()=>zAreaConfig,
196
- zAxis: ()=>zAxis,
197
- isVTable: ()=>isVTable,
198
197
  zMeasures: ()=>zMeasures,
198
+ isVTable: ()=>isVTable,
199
199
  zRadar: ()=>zRadar,
200
+ zRadarConfig: ()=>zRadarConfig,
200
201
  zLine: ()=>zLine,
201
202
  columnSpecPipeline: ()=>columnSpecPipeline,
202
203
  zFoldInfo: ()=>zFoldInfo,
203
204
  zDatasetReshapeInfo: ()=>zDatasetReshapeInfo,
204
205
  zLinearColor: ()=>zLinearColor,
205
- zRadarConfig: ()=>zRadarConfig,
206
+ zStackCornerRadius: ()=>zStackCornerRadius,
206
207
  zAreaStyle: ()=>zAreaStyle,
207
208
  ORIGINAL_DATA: ()=>ORIGINAL_DATA,
208
- zStackCornerRadius: ()=>zStackCornerRadius,
209
- zAnnotationArea: ()=>zAnnotationArea,
210
209
  zUnfoldInfo: ()=>zUnfoldInfo,
210
+ zAnnotationArea: ()=>zAnnotationArea,
211
211
  DetailEncoding: ()=>DetailEncoding,
212
212
  zRose: ()=>zRose,
213
213
  columnParallelSpecPipeline: ()=>columnParallelSpecPipeline,
@@ -982,9 +982,6 @@
982
982
  });
983
983
  return result || [];
984
984
  };
985
- function chunk_VCYTMP4D_n(e) {
986
- return void 0 === e ? !0 : "string" == typeof e || Array.isArray(e) ? 0 === e.length : 0 === Object.keys(e).length;
987
- }
988
985
  const createNumFormatter = (format, locale = intl.getLocale())=>{
989
986
  const { type = 'number', ratio = 1, symbol = '', thousandSeparator = true, prefix = '', suffix = '', fractionDigits = 2, significantDigits, roundingMode = 'halfExpand', roundingPriority = 'auto' } = format || {};
990
987
  const numFormatterOptions = {
@@ -1041,11 +1038,21 @@
1041
1038
  });
1042
1039
  return numFormatter.format(Number(value));
1043
1040
  };
1044
- const createFormatter = (format)=>createNumFormatter(format);
1045
- const autoFormatter = (value, locale)=>autoNumFormatter(value, locale);
1041
+ const createFormatter = (format, locale)=>createNumFormatter(format, locale);
1042
+ const autoFormatter = (value, locale = intl.getLocale())=>autoNumFormatter(value, locale);
1043
+ function chunk_VCYTMP4D_n(e) {
1044
+ return void 0 === e ? !0 : "string" == typeof e || Array.isArray(e) ? 0 === e.length : 0 === Object.keys(e).length;
1045
+ }
1046
+ const createFormatterByMeasure = (measure)=>{
1047
+ if (!measure) return (v)=>String(v);
1048
+ const { numFormat, format, autoFormat = true } = measure;
1049
+ const formatterFormat = numFormat || format || {};
1050
+ if (!chunk_VCYTMP4D_n(formatterFormat)) return createFormatter(formatterFormat);
1051
+ if (autoFormat) return autoFormatter;
1052
+ return (v)=>String(v);
1053
+ };
1046
1054
  const measureTreeToColumns = (spec, context)=>{
1047
1055
  const { advancedVSeed } = context;
1048
- const { locale } = advancedVSeed;
1049
1056
  const measures = advancedVSeed.measures;
1050
1057
  const result = {
1051
1058
  ...spec
@@ -1053,7 +1060,7 @@
1053
1060
  const eachNode = (node)=>{
1054
1061
  if (isMeasure(node)) return {
1055
1062
  width: 'auto',
1056
- fieldFormat: fieldFormat(node, locale)
1063
+ fieldFormat: fieldFormat(node)
1057
1064
  };
1058
1065
  return {};
1059
1066
  };
@@ -1066,15 +1073,14 @@
1066
1073
  ]
1067
1074
  };
1068
1075
  };
1069
- const fieldFormat = (node, locale)=>(datum)=>{
1070
- const { format = {}, autoFormat = true, id } = node;
1076
+ const fieldFormat = (node)=>{
1077
+ const formatter = createFormatterByMeasure(node);
1078
+ return (datum)=>{
1079
+ const { id } = node;
1071
1080
  const value = datum[id];
1072
- if (!chunk_VCYTMP4D_n(format)) {
1073
- const formatter = createFormatter(format);
1074
- return formatter(value);
1075
- }
1076
- if (autoFormat) return autoFormatter(value, locale);
1081
+ return formatter(value);
1077
1082
  };
1083
+ };
1078
1084
  const measuresToColumns_treeTreeToColumns = (tree, callback)=>{
1079
1085
  const result = tree.map((item)=>{
1080
1086
  if ('children' in item && Array.isArray(item.children)) {
@@ -1515,7 +1521,7 @@
1515
1521
  };
1516
1522
  const pivotIndicators = (spec, context)=>{
1517
1523
  const { advancedVSeed } = context;
1518
- const { locale, measures, datasetReshapeInfo } = advancedVSeed;
1524
+ const { measures, datasetReshapeInfo } = advancedVSeed;
1519
1525
  const { foldInfo } = datasetReshapeInfo[0];
1520
1526
  return {
1521
1527
  ...spec,
@@ -1528,25 +1534,20 @@
1528
1534
  indicatorKey: foldInfo.measureValue,
1529
1535
  title: 'indicator',
1530
1536
  width: 'auto',
1531
- format: pivotIndicators_fieldFormat(measures, foldInfo, locale)
1537
+ format: pivotIndicators_fieldFormat(measures, foldInfo)
1532
1538
  }
1533
1539
  ]
1534
1540
  };
1535
1541
  };
1536
- const pivotIndicators_fieldFormat = (measures, foldInfo, locale)=>(value, col, row, table)=>{
1542
+ const pivotIndicators_fieldFormat = (measures, foldInfo)=>(value, col, row, table)=>{
1537
1543
  if (!chunk_6GTAPB47_e(col) || !chunk_6GTAPB47_e(row) || !table) return value;
1538
1544
  const datum = table.getCellOriginRecord(col, row);
1539
1545
  if (!datum[0]) return value;
1540
1546
  const { measureId: foldMeasureId } = foldInfo;
1541
1547
  const measureId = datum[0][foldMeasureId];
1542
- const node = findMeasureById(measures, measureId);
1543
- if (!node) return value;
1544
- const { format = {}, autoFormat = true } = node;
1545
- if (!chunk_VCYTMP4D_n(format)) {
1546
- const formatter = createFormatter(format);
1547
- return formatter(value);
1548
- }
1549
- if (autoFormat) return autoFormatter(value, locale);
1548
+ const measure = findMeasureById(measures, measureId);
1549
+ const formatter = createFormatterByMeasure(measure);
1550
+ return formatter(value);
1550
1551
  };
1551
1552
  const rowHeaderStyle = (spec, context)=>{
1552
1553
  const result = {
@@ -2687,7 +2688,8 @@
2687
2688
  ];
2688
2689
  return result;
2689
2690
  }
2690
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = config;
2691
+ const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat = true, numFormat = {} } = config;
2692
+ const formatter = createNumFormatter(numFormat);
2691
2693
  const linearAxis = {
2692
2694
  visible,
2693
2695
  type: log ? 'log' : 'linear',
@@ -2700,7 +2702,11 @@
2700
2702
  min,
2701
2703
  label: {
2702
2704
  visible: label?.visible,
2703
- formatMethod: (value)=>autoFormatter(value, locale),
2705
+ formatMethod: (value)=>{
2706
+ if (!chunk_VCYTMP4D_n(numFormat)) return formatter(value);
2707
+ if (autoFormat) return autoFormatter(value, locale);
2708
+ return value;
2709
+ },
2704
2710
  style: {
2705
2711
  fill: label?.labelColor,
2706
2712
  angle: label?.labelAngle,
@@ -3278,31 +3284,58 @@
3278
3284
  ...spec
3279
3285
  };
3280
3286
  const { advancedVSeed, vseed } = context;
3281
- const { measures, datasetReshapeInfo } = advancedVSeed;
3287
+ const { datasetReshapeInfo } = advancedVSeed;
3282
3288
  const { chartType, encoding } = advancedVSeed;
3283
3289
  const baseConfig = advancedVSeed.config[chartType];
3290
+ const foldInfo = datasetReshapeInfo[0].foldInfo;
3284
3291
  if (!baseConfig || chunk_VCYTMP4D_n(baseConfig.label)) return result;
3285
- const { measureId, measureValue, statistics } = datasetReshapeInfo[0].foldInfo;
3286
3292
  const { label } = baseConfig;
3293
+ result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, [
3294
+ foldInfo
3295
+ ]);
3296
+ return result;
3297
+ };
3298
+ const generateMeasureValue = (value, measure, labelAutoFormat = true, numFormat = {})=>{
3299
+ if (!measure) return value;
3300
+ const format = chunk_5S4PYKVY_t(numFormat, measure.numFormat || measure.format);
3301
+ const mergedMeasure = {
3302
+ ...measure,
3303
+ numFormat: format,
3304
+ autoFormat: labelAutoFormat || measure.autoFormat
3305
+ };
3306
+ const formatter = createFormatterByMeasure(mergedMeasure);
3307
+ return formatter(value);
3308
+ };
3309
+ const generateMeasurePercent = (value, sum, formatter)=>{
3310
+ if (null == value) return String(value);
3311
+ const num = Number(value);
3312
+ if (Number.isNaN(num)) return String(value);
3313
+ const percentValue = num / sum;
3314
+ return formatter(percentValue);
3315
+ };
3316
+ const buildLabel = (label, vseedMeasures = [], vseedDimensions = [], advancedVSeedMeasures, encoding, foldInfoList)=>{
3287
3317
  const { enable, wrap, showValue, showValuePercent, labelOverlap, labelColorSmartInvert, labelColor, labelFontSize, labelFontWeight, labelBackgroundColor, labelPosition, autoFormat = true, numFormat = {} } = label;
3288
- const labelDims = T((vseed.dimensions || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3289
- const labelMeas = T((vseed.measures || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3318
+ const labelDims = T((vseedDimensions || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3319
+ const labelMeas = T((vseedMeasures || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3290
3320
  const percentFormat = chunk_5S4PYKVY_t(numFormat, {
3291
3321
  type: 'percent'
3292
3322
  });
3293
3323
  const percentFormatter = createFormatter(percentFormat);
3294
- result.label = {
3324
+ const result = {
3295
3325
  visible: enable,
3296
3326
  formatMethod: (_, datum)=>{
3297
3327
  const result = [];
3298
3328
  const dimLabels = labelDims.map((item)=>item.alias || item.id);
3299
3329
  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);
3303
3330
  result.push(...dimLabels);
3304
- if (showValue) result.push(measureValueLabel);
3305
- if (showValuePercent) result.push(measurePercentLabel);
3331
+ foldInfoList.forEach((foldInfo)=>{
3332
+ const { measureId, measureValue, statistics } = foldInfo;
3333
+ const measure = findMeasureById(advancedVSeedMeasures, datum[measureId]);
3334
+ const measureValueLabel = generateMeasureValue(datum[measureValue], measure, autoFormat, numFormat);
3335
+ const measurePercentLabel = generateMeasurePercent(datum[measureValue], statistics.sum, percentFormatter);
3336
+ if (showValue) result.push(measureValueLabel);
3337
+ if (showValuePercent) result.push(measurePercentLabel);
3338
+ });
3306
3339
  result.push(...meaLabels);
3307
3340
  if (wrap) return result;
3308
3341
  return result.join(' ');
@@ -3316,36 +3349,18 @@
3316
3349
  },
3317
3350
  smartInvert: labelColorSmartInvert
3318
3351
  };
3319
- if (labelOverlap) result.label.overlap = {
3352
+ if (labelOverlap) result.overlap = {
3320
3353
  hideOnHit: true,
3321
3354
  clampForce: true
3322
3355
  };
3323
3356
  return result;
3324
3357
  };
3325
- const generateMeasureValue = (value, measure, labelAutoFormat = true, numFormat = {})=>{
3326
- if (!measure) return value;
3327
- const format = chunk_5S4PYKVY_t(numFormat, measure.format);
3328
- const autoFormat = labelAutoFormat || measure.autoFormat;
3329
- if (!chunk_VCYTMP4D_n(format)) {
3330
- const formatter = createFormatter(format);
3331
- return formatter(value);
3332
- }
3333
- if (autoFormat) return autoFormatter(value, intl.getLocale());
3334
- return String(value);
3335
- };
3336
- const generateMeasurePercent = (value, sum, formatter)=>{
3337
- if (null == value) return String(value);
3338
- const num = Number(value);
3339
- if (Number.isNaN(num)) return String(value);
3340
- const percentValue = num / sum;
3341
- return formatter(percentValue);
3342
- };
3343
3358
  const tooltip_tooltip = (spec, context)=>{
3344
3359
  const result = {
3345
3360
  ...spec
3346
3361
  };
3347
3362
  const { advancedVSeed, vseed } = context;
3348
- const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
3363
+ const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed;
3349
3364
  const baseConfig = advancedVSeed.config[chartType];
3350
3365
  const { tooltip = {
3351
3366
  enable: true
@@ -3358,18 +3373,18 @@
3358
3373
  title: {
3359
3374
  visible: false
3360
3375
  },
3361
- content: createMarkContent(encoding.tooltip || [], dimensions, findAllMeasures(vseed.measures), locale, foldInfo, unfoldInfo)
3376
+ content: createMarkContent(encoding.tooltip || [], dimensions, findAllMeasures(vseed.measures), foldInfo, unfoldInfo)
3362
3377
  },
3363
3378
  dimension: {
3364
3379
  title: {
3365
3380
  visible: true
3366
3381
  },
3367
- content: createDimensionContent(measures, foldInfo, unfoldInfo, locale)
3382
+ content: createDimensionContent(measures, foldInfo, unfoldInfo)
3368
3383
  }
3369
3384
  };
3370
3385
  return result;
3371
3386
  };
3372
- const createDimensionContent = (measures, foldInfo, unfoldInfo, locale)=>{
3387
+ const createDimensionContent = (measures, foldInfo, unfoldInfo)=>{
3373
3388
  const { measureId, measureValue } = foldInfo;
3374
3389
  const { encodingColor } = unfoldInfo;
3375
3390
  return [
@@ -3387,19 +3402,13 @@
3387
3402
  const value = datum[measureValue];
3388
3403
  const id = datum[measureId];
3389
3404
  const measure = findMeasureById(measures, id);
3390
- if (!measure) return String(value);
3391
- const { format = {}, autoFormat = true } = measure;
3392
- if (!chunk_VCYTMP4D_n(format)) {
3393
- const formatter = createFormatter(format);
3394
- return formatter(value);
3395
- }
3396
- if (autoFormat) return autoFormatter(value, locale);
3397
- return String(value);
3405
+ const formatter = createFormatterByMeasure(measure);
3406
+ return formatter(value);
3398
3407
  }
3399
3408
  }
3400
3409
  ];
3401
3410
  };
3402
- const createMarkContent = (tooltip, dimensions, measures, locale, foldInfo, unfoldInfo)=>{
3411
+ const createMarkContent = (tooltip, dimensions, measures, foldInfo, unfoldInfo)=>{
3403
3412
  const dims = C(dimensions.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
3404
3413
  const meas = C(measures.filter((item)=>tooltip.includes(item.id)), T((item)=>item.id), T((item)=>item.alias));
3405
3414
  const dimContent = dims.map((item)=>({
@@ -3429,14 +3438,8 @@
3429
3438
  const originalData = datum[ORIGINAL_DATA];
3430
3439
  const value = originalData[id];
3431
3440
  const measure = findMeasureById(measures, id);
3432
- if (!measure) return String(value);
3433
- const { format = {}, autoFormat = true } = measure;
3434
- if (!chunk_VCYTMP4D_n(format)) {
3435
- const formatter = createFormatter(format);
3436
- return formatter(value);
3437
- }
3438
- if (autoFormat) return autoFormatter(value, locale);
3439
- return String(value);
3441
+ const formatter = createFormatterByMeasure(measure);
3442
+ return formatter(value);
3440
3443
  }
3441
3444
  }));
3442
3445
  const defaultContent = {
@@ -3457,13 +3460,8 @@
3457
3460
  const id = datum[measureId];
3458
3461
  const measure = findMeasureById(measures, id);
3459
3462
  if (!measure) return String(value);
3460
- const { format = {}, autoFormat = true } = measure;
3461
- if (!chunk_VCYTMP4D_n(format)) {
3462
- const formatter = createFormatter(format);
3463
- return formatter(value);
3464
- }
3465
- if (autoFormat) return autoFormatter(value, locale);
3466
- return String(value);
3463
+ const formatter = createFormatterByMeasure(measure);
3464
+ return formatter(value);
3467
3465
  }
3468
3466
  };
3469
3467
  return [
@@ -5213,7 +5211,8 @@
5213
5211
  ];
5214
5212
  return result;
5215
5213
  }
5216
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = config;
5214
+ const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat = true, numFormat = {} } = config;
5215
+ const formatter = createNumFormatter(numFormat, locale);
5217
5216
  const linearAxis = {
5218
5217
  visible,
5219
5218
  type: log ? 'log' : 'linear',
@@ -5226,7 +5225,11 @@
5226
5225
  min,
5227
5226
  label: {
5228
5227
  visible: label?.visible,
5229
- formatMethod: (value)=>autoFormatter(value, locale),
5228
+ formatMethod: (value)=>{
5229
+ if (!chunk_VCYTMP4D_n(numFormat)) return formatter(value);
5230
+ if (autoFormat) return autoFormatter(value, locale);
5231
+ return value;
5232
+ },
5230
5233
  style: {
5231
5234
  fill: label?.labelColor,
5232
5235
  angle: label?.labelAngle,
@@ -6257,6 +6260,20 @@
6257
6260
  }
6258
6261
  };
6259
6262
  };
6263
+ const labelScatter = (spec, context)=>{
6264
+ const result = {
6265
+ ...spec
6266
+ };
6267
+ const { advancedVSeed, vseed } = context;
6268
+ const { datasetReshapeInfo } = advancedVSeed;
6269
+ const { chartType, encoding } = advancedVSeed;
6270
+ const baseConfig = advancedVSeed.config[chartType];
6271
+ if (!baseConfig || chunk_VCYTMP4D_n(baseConfig.label)) return result;
6272
+ const foldInfoList = datasetReshapeInfo[0].foldInfoList;
6273
+ const { label } = baseConfig;
6274
+ result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, foldInfoList);
6275
+ return result;
6276
+ };
6260
6277
  const tooltipScatter = (spec, context)=>{
6261
6278
  const result = {
6262
6279
  ...spec
@@ -6313,14 +6330,8 @@
6313
6330
  const originalData = datum[ORIGINAL_DATA];
6314
6331
  const value = originalData[id];
6315
6332
  const measure = findMeasureById(measures, id);
6316
- if (!measure) return String(value);
6317
- const { format = {}, autoFormat = true } = measure;
6318
- if (!chunk_VCYTMP4D_n(format)) {
6319
- const formatter = createFormatter(format);
6320
- return formatter(value);
6321
- }
6322
- if (autoFormat) return autoFormatter(value, locale);
6323
- return String(value);
6333
+ const formatter = createFormatterByMeasure(measure);
6334
+ return formatter(value);
6324
6335
  }
6325
6336
  }));
6326
6337
  const foldMeaContent = foldInfoList.map((foldInfo)=>({
@@ -6340,14 +6351,8 @@
6340
6351
  const value = datum[measureValue];
6341
6352
  const id = datum[measureId];
6342
6353
  const measure = findMeasureById(measures, id);
6343
- if (!measure) return String(value);
6344
- const { format = {}, autoFormat = true } = measure;
6345
- if (!chunk_VCYTMP4D_n(format)) {
6346
- const formatter = createFormatter(format);
6347
- return formatter(value);
6348
- }
6349
- if (autoFormat) return autoFormatter(value, locale);
6350
- return String(value);
6354
+ const formatter = createFormatterByMeasure(measure);
6355
+ return formatter(value);
6351
6356
  }
6352
6357
  }));
6353
6358
  return [
@@ -6408,7 +6413,7 @@
6408
6413
  progressive,
6409
6414
  xLinear,
6410
6415
  yLinear,
6411
- label_label,
6416
+ labelScatter,
6412
6417
  tooltipScatter,
6413
6418
  colorAdapter(discreteLegend, colorLegend),
6414
6419
  verticalCrosshairLine,
@@ -6433,7 +6438,7 @@
6433
6438
  progressive,
6434
6439
  xLinear,
6435
6440
  yLinear,
6436
- label_label,
6441
+ labelScatter,
6437
6442
  tooltipScatter,
6438
6443
  verticalCrosshairLine,
6439
6444
  horizontalCrosshairLine,
@@ -6819,6 +6824,7 @@
6819
6824
  const result = {
6820
6825
  type: 'common',
6821
6826
  padding: 0,
6827
+ labelLayout: 'region',
6822
6828
  region: [
6823
6829
  {
6824
6830
  clip: true
@@ -7074,71 +7080,33 @@
7074
7080
  const result = {
7075
7081
  ...spec
7076
7082
  };
7077
- const { advancedVSeed } = context;
7078
- const { measures, datasetReshapeInfo, locale } = advancedVSeed;
7083
+ const { advancedVSeed, vseed } = context;
7084
+ const { datasetReshapeInfo, encoding } = advancedVSeed;
7079
7085
  const { chartType } = advancedVSeed;
7080
7086
  const baseConfig = advancedVSeed.config[chartType];
7081
7087
  if (!baseConfig || !baseConfig.label) return result;
7082
7088
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
7083
- const { measureId, measureValue } = foldInfoList[0];
7084
- const { label } = baseConfig;
7085
- const { enable } = label;
7086
- result.label = {
7087
- visible: enable,
7088
- formatMethod: (value, datum)=>{
7089
- const result = [];
7090
- const formatValue = (value)=>{
7091
- const id = datum[measureId];
7092
- const measure = findMeasureById(measures, id);
7093
- if (!measure) return value;
7094
- const { format = {}, autoFormat = true } = measure;
7095
- if (!chunk_VCYTMP4D_n(format)) {
7096
- const formatter = createFormatter(format);
7097
- return formatter(value);
7098
- }
7099
- if (autoFormat) return autoFormatter(value, locale);
7100
- return String(value);
7101
- };
7102
- result.push(formatValue(datum[measureValue]));
7103
- return result.join(' ');
7104
- }
7105
- };
7089
+ result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, [
7090
+ foldInfoList[0]
7091
+ ]);
7092
+ result.label.zIndex = 1002;
7106
7093
  return result;
7107
7094
  };
7108
7095
  const labelSecondary = (spec, context)=>{
7109
7096
  const result = {
7110
7097
  ...spec
7111
7098
  };
7112
- const { advancedVSeed } = context;
7113
- const { measures, datasetReshapeInfo, locale } = advancedVSeed;
7099
+ const { advancedVSeed, vseed } = context;
7100
+ const { datasetReshapeInfo, encoding } = advancedVSeed;
7114
7101
  const { chartType } = advancedVSeed;
7115
7102
  const baseConfig = advancedVSeed.config[chartType];
7116
7103
  if (!baseConfig || !baseConfig.label) return result;
7117
7104
  if (chunk_JK3VNB42_n(datasetReshapeInfo[0].foldInfoList?.[1])) return result;
7118
7105
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
7119
- const { measureId, measureValue } = foldInfoList[1];
7120
- const { label } = baseConfig;
7121
- const { enable } = label;
7122
- result.label = {
7123
- visible: enable,
7124
- formatMethod: (value, datum)=>{
7125
- const result = [];
7126
- const formatValue = (value)=>{
7127
- const id = datum[measureId];
7128
- const measure = findMeasureById(measures, id);
7129
- if (!measure) return value;
7130
- const { format = {}, autoFormat = true } = measure;
7131
- if (!chunk_VCYTMP4D_n(format)) {
7132
- const formatter = createFormatter(format);
7133
- return formatter(value);
7134
- }
7135
- if (autoFormat) return autoFormatter(value, locale);
7136
- return String(value);
7137
- };
7138
- result.push(formatValue(datum[measureValue]));
7139
- return result.join(' ');
7140
- }
7141
- };
7106
+ result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, [
7107
+ foldInfoList[1]
7108
+ ]);
7109
+ result.label.zIndex = 1002;
7142
7110
  return result;
7143
7111
  };
7144
7112
  const tooltipPrimary = (spec, context)=>{
@@ -7146,7 +7114,7 @@
7146
7114
  ...spec
7147
7115
  };
7148
7116
  const { advancedVSeed, vseed } = context;
7149
- const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
7117
+ const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed;
7150
7118
  const baseConfig = advancedVSeed.config[chartType];
7151
7119
  const { tooltip = {
7152
7120
  enable: true
@@ -7160,13 +7128,13 @@
7160
7128
  title: {
7161
7129
  visible: false
7162
7130
  },
7163
- content: createMarkContent(encoding.tooltip || [], dimensions, findAllMeasures(vseed.measures), locale, foldInfoList[0], unfoldInfo)
7131
+ content: createMarkContent(encoding.tooltip || [], dimensions, findAllMeasures(vseed.measures), foldInfoList[0], unfoldInfo)
7164
7132
  },
7165
7133
  dimension: {
7166
7134
  title: {
7167
7135
  visible: true
7168
7136
  },
7169
- content: createDimensionContent(measures, foldInfoList[0], unfoldInfo, locale)
7137
+ content: createDimensionContent(measures, foldInfoList[0], unfoldInfo)
7170
7138
  }
7171
7139
  };
7172
7140
  return result;
@@ -7176,7 +7144,7 @@
7176
7144
  ...spec
7177
7145
  };
7178
7146
  const { advancedVSeed, vseed } = context;
7179
- const { measures, datasetReshapeInfo, chartType, locale, dimensions, encoding } = advancedVSeed;
7147
+ const { measures, datasetReshapeInfo, chartType, dimensions, encoding } = advancedVSeed;
7180
7148
  const baseConfig = advancedVSeed.config[chartType];
7181
7149
  const { tooltip = {
7182
7150
  enable: true
@@ -7191,13 +7159,13 @@
7191
7159
  title: {
7192
7160
  visible: false
7193
7161
  },
7194
- content: createMarkContent(encoding.tooltip || [], dimensions, findAllMeasures(vseed.measures), locale, foldInfoList[1], unfoldInfo)
7162
+ content: createMarkContent(encoding.tooltip || [], dimensions, findAllMeasures(vseed.measures), foldInfoList[1], unfoldInfo)
7195
7163
  },
7196
7164
  dimension: {
7197
7165
  title: {
7198
7166
  visible: true
7199
7167
  },
7200
- content: createDimensionContent(measures, foldInfoList[1], unfoldInfo, locale)
7168
+ content: createDimensionContent(measures, foldInfoList[1], unfoldInfo)
7201
7169
  }
7202
7170
  };
7203
7171
  return result;
@@ -7236,7 +7204,8 @@
7236
7204
  ];
7237
7205
  return result;
7238
7206
  }
7239
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
7207
+ const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, autoFormat = true, numFormat = {} } = yAxisConfig;
7208
+ const formatter = createNumFormatter(numFormat, locale);
7240
7209
  const linearAxis = {
7241
7210
  visible: isEmptySecondary ? false : visible,
7242
7211
  id,
@@ -7251,7 +7220,11 @@
7251
7220
  min,
7252
7221
  label: {
7253
7222
  visible: label?.visible,
7254
- formatMethod: (value)=>autoFormatter(value, locale),
7223
+ formatMethod: (value)=>{
7224
+ if (!chunk_VCYTMP4D_n(numFormat)) return formatter(value);
7225
+ if (autoFormat) return autoFormatter(value, locale);
7226
+ return value;
7227
+ },
7255
7228
  style: {
7256
7229
  fill: label?.labelColor,
7257
7230
  angle: label?.labelAngle,
@@ -7340,7 +7313,8 @@
7340
7313
  ];
7341
7314
  return result;
7342
7315
  }
7343
- const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10 } = yAxisConfig;
7316
+ const { visible = true, label, tick, title, grid, line, zero, nice, inverse, max, min, log, logBase = 10, numFormat = {}, autoFormat = true } = yAxisConfig;
7317
+ const formatter = createNumFormatter(numFormat, locale);
7344
7318
  const linearAxis = {
7345
7319
  visible: isEmptySecondary ? false : visible,
7346
7320
  id,
@@ -7356,7 +7330,11 @@
7356
7330
  min,
7357
7331
  label: {
7358
7332
  visible: label?.visible,
7359
- formatMethod: (value)=>autoFormatter(value, locale),
7333
+ formatMethod: (value)=>{
7334
+ if (!chunk_VCYTMP4D_n(numFormat)) return formatter(value);
7335
+ if (autoFormat) return autoFormatter(value, locale);
7336
+ return value;
7337
+ },
7360
7338
  style: {
7361
7339
  fill: label?.labelColor,
7362
7340
  angle: label?.labelAngle,
@@ -8717,16 +8695,6 @@
8717
8695
  markStyle_markStyle,
8718
8696
  annotation_annotation
8719
8697
  ];
8720
- const labelColorInversion = (spec)=>{
8721
- const result = {
8722
- ...spec
8723
- };
8724
- if (result.label) result.label.smartInvert = true;
8725
- else result.label = {
8726
- smartInvert: true
8727
- };
8728
- return result;
8729
- };
8730
8698
  const colorCellStyleFill = (stylePipe)=>(spec, context)=>{
8731
8699
  const result = stylePipe(spec, context);
8732
8700
  const { advancedVSeed } = context;
@@ -8814,14 +8782,8 @@
8814
8782
  const originalData = datum[ORIGINAL_DATA];
8815
8783
  const value = originalData[id];
8816
8784
  const measure = findMeasureById(measures, id);
8817
- if (!measure) return String(value);
8818
- const { format = {}, autoFormat = true } = measure;
8819
- if (!chunk_VCYTMP4D_n(format)) {
8820
- const formatter = createFormatter(format);
8821
- return formatter(value);
8822
- }
8823
- if (autoFormat) return autoFormatter(value, locale);
8824
- return String(value);
8785
+ const formatter = createFormatterByMeasure(measure);
8786
+ return formatter(value);
8825
8787
  }
8826
8788
  }));
8827
8789
  const foldMeaContent = [
@@ -8843,14 +8805,8 @@
8843
8805
  const value = datum[measureValue];
8844
8806
  const id = datum[measureId];
8845
8807
  const measure = findMeasureById(measures, id);
8846
- if (!measure) return String(value);
8847
- const { format = {}, autoFormat = true } = measure;
8848
- if (!chunk_VCYTMP4D_n(format)) {
8849
- const formatter = createFormatter(format);
8850
- return formatter(value);
8851
- }
8852
- if (autoFormat) return autoFormatter(value, locale);
8853
- return String(value);
8808
+ const formatter = createFormatterByMeasure(measure);
8809
+ return formatter(value);
8854
8810
  }
8855
8811
  }));
8856
8812
  return [
@@ -8899,7 +8855,6 @@
8899
8855
  datasetXY,
8900
8856
  colorAdapter(color_color, linearColor),
8901
8857
  label_label,
8902
- labelColorInversion,
8903
8858
  colorAdapter(discreteLegend, colorLegend),
8904
8859
  colorCellStyleFill(cellStyle),
8905
8860
  tooltipHeatmap,
@@ -8919,7 +8874,6 @@
8919
8874
  datasetXY,
8920
8875
  colorAdapter(color_color, linearColor),
8921
8876
  label_label,
8922
- labelColorInversion,
8923
8877
  discreteLegend,
8924
8878
  tooltipHeatmap,
8925
8879
  colorCellStyleFill(cellStyle),
@@ -9139,7 +9093,12 @@
9139
9093
  columnPercent: {
9140
9094
  ...baseConfig,
9141
9095
  xAxis: bandAxis,
9142
- yAxis: linearAxis,
9096
+ yAxis: {
9097
+ ...linearAxis,
9098
+ numFormat: {
9099
+ type: 'percent'
9100
+ }
9101
+ },
9143
9102
  crosshairRect,
9144
9103
  stackCornerRadius: [
9145
9104
  4,
@@ -9174,7 +9133,12 @@
9174
9133
  },
9175
9134
  barPercent: {
9176
9135
  ...baseConfig,
9177
- xAxis: linearAxis,
9136
+ xAxis: {
9137
+ ...linearAxis,
9138
+ numFormat: {
9139
+ type: 'percent'
9140
+ }
9141
+ },
9178
9142
  yAxis: barBandAxis,
9179
9143
  crosshairRect,
9180
9144
  stackCornerRadius: [
@@ -9193,7 +9157,12 @@
9193
9157
  areaPercent: {
9194
9158
  ...baseConfig,
9195
9159
  xAxis: bandAxis,
9196
- yAxis: linearAxis,
9160
+ yAxis: {
9161
+ ...linearAxis,
9162
+ numFormat: {
9163
+ type: 'percent'
9164
+ }
9165
+ },
9197
9166
  crosshairLine
9198
9167
  },
9199
9168
  scatter: {
@@ -9261,7 +9230,11 @@
9261
9230
  ...baseConfig
9262
9231
  },
9263
9232
  heatmap: {
9264
- ...baseConfig
9233
+ ...baseConfig,
9234
+ label: {
9235
+ ...baseConfig.label,
9236
+ labelColorSmartInvert: true
9237
+ }
9265
9238
  }
9266
9239
  }
9267
9240
  };
@@ -9586,7 +9559,11 @@
9586
9559
  ...baseConfig
9587
9560
  },
9588
9561
  heatmap: {
9589
- ...baseConfig
9562
+ ...baseConfig,
9563
+ label: {
9564
+ ...baseConfig.label,
9565
+ labelColorSmartInvert: true
9566
+ }
9590
9567
  }
9591
9568
  }
9592
9569
  };
@@ -13015,6 +12992,7 @@
13015
12992
  id: schemas_string(),
13016
12993
  alias: schemas_string().optional(),
13017
12994
  autoFormat: schemas_boolean().default(true),
12995
+ numFormat: zNumFormat["default"]({}),
13018
12996
  format: zNumFormat["default"]({}),
13019
12997
  encoding: schemas_enum([
13020
12998
  'primaryYAxis',
@@ -13215,6 +13193,7 @@
13215
13193
  log: schemas_boolean().default(false).nullish(),
13216
13194
  logBase: schemas_number().default(10).nullish(),
13217
13195
  inverse: schemas_boolean().default(false).nullish(),
13196
+ numFormat: zNumFormat.nullish(),
13218
13197
  label: schemas_object({
13219
13198
  visible: schemas_boolean().default(true).nullish(),
13220
13199
  labelColor: schemas_string().default('#797B85').nullish(),
@@ -13501,56 +13480,6 @@
13501
13480
  funnel: zFunnelConfig.nullish(),
13502
13481
  heatmap: zHeatmapConfig.nullish()
13503
13482
  });
13504
- const zAxis = schemas_object({
13505
- visible: schemas_boolean().default(true).nullish(),
13506
- min: schemas_number().nullish(),
13507
- max: schemas_number().nullish(),
13508
- nice: schemas_boolean().default(true).nullish(),
13509
- zero: schemas_boolean().default(true).nullish(),
13510
- inverse: schemas_boolean().default(false).nullish(),
13511
- log: schemas_boolean().default(false).nullish(),
13512
- logBase: schemas_number().default(10).nullish(),
13513
- labelAutoHide: schemas_boolean().default(true).nullish(),
13514
- labelAutoHideGap: schemas_number().default(4).nullish(),
13515
- labelAutoRotate: schemas_boolean().default(true).nullish(),
13516
- labelAutoRotateAngleRange: schemas_array(schemas_number()).default([
13517
- 0,
13518
- -45,
13519
- -90
13520
- ]).nullish(),
13521
- labelAutoLimit: schemas_boolean().default(true).nullish(),
13522
- labelAutoLimitLength: schemas_number().default(100).nullish(),
13523
- label: schemas_object({
13524
- visible: schemas_boolean().default(true).nullish(),
13525
- labelColor: schemas_string().default('#797B85').nullish(),
13526
- labelFontSize: schemas_number().default(12).nullish(),
13527
- labelFontWeight: schemas_number().default(400).nullish(),
13528
- labelAngle: schemas_number().default(0).nullish()
13529
- }).nullish(),
13530
- line: schemas_object({
13531
- visible: schemas_boolean().default(true).nullish(),
13532
- lineColor: schemas_string().default('rgba(54, 65, 89, 0.30)').nullish(),
13533
- lineWidth: schemas_number().default(1).nullish()
13534
- }).nullish(),
13535
- tick: schemas_object({
13536
- visible: schemas_boolean().default(true).nullish(),
13537
- tickInside: schemas_boolean().default(false).nullish(),
13538
- tickColor: schemas_string().default('rgba(54, 65, 89, 0.30)').nullish(),
13539
- tickSize: schemas_number().default(4).nullish()
13540
- }).nullish(),
13541
- title: schemas_object({
13542
- visible: schemas_boolean().default(false).nullish(),
13543
- titleText: schemas_string().default('').nullish(),
13544
- titleColor: schemas_string().default('#646A73').nullish(),
13545
- titleFontSize: schemas_number().default(12).nullish(),
13546
- titleFontWeight: schemas_number().default(400).nullish()
13547
- }).nullish(),
13548
- grid: schemas_object({
13549
- visible: schemas_boolean().default(false).nullish(),
13550
- gridColor: schemas_string().default('rgba(54, 65, 89, 0.15)').nullish(),
13551
- gridWidth: schemas_number().default(0.5).nullish()
13552
- }).nullish()
13553
- });
13554
13483
  const zCustomThemeConfig = schemas_object({
13555
13484
  config: zConfig.nullish()
13556
13485
  });