@visactor/vseed 0.1.25 → 0.1.27

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 (105) 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/advanced/colorItems.d.ts +4 -1
  4. package/dist/esm/builder/builder/advanced/colorItems.js +4 -1
  5. package/dist/esm/builder/builder/advanced/colorItems.js.map +1 -1
  6. package/dist/esm/builder/builder/builder.d.ts +128 -17
  7. package/dist/esm/dataSelector/selector.js +2 -4
  8. package/dist/esm/dataSelector/selector.js.map +1 -1
  9. package/dist/esm/pipeline/spec/chart/pipes/init/barParallel.js +6 -4
  10. package/dist/esm/pipeline/spec/chart/pipes/init/barParallel.js.map +1 -1
  11. package/dist/esm/pipeline/spec/chart/pipes/init/columnParallel.js +6 -4
  12. package/dist/esm/pipeline/spec/chart/pipes/init/columnParallel.js.map +1 -1
  13. package/dist/esm/pipeline/spec/chart/pipes/init/pivot.d.ts +0 -2
  14. package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js +1 -19
  15. package/dist/esm/pipeline/spec/chart/pipes/init/pivot.js.map +1 -1
  16. package/dist/esm/pipeline/spec/chart/pipes/init/roseParallel.js +6 -4
  17. package/dist/esm/pipeline/spec/chart/pipes/init/roseParallel.js.map +1 -1
  18. package/dist/esm/pipeline/spec/chart/pipes/label/label.d.ts +1 -1
  19. package/dist/esm/pipeline/spec/chart/pipes/label/label.js +11 -6
  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 +2 -2
  22. package/dist/esm/pipeline/spec/chart/pipes/label/labelDualAxis.js.map +1 -1
  23. package/dist/esm/pipeline/spec/chart/pipes/label/labelPie.js +1 -1
  24. package/dist/esm/pipeline/spec/chart/pipes/label/labelPie.js.map +1 -1
  25. package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js +1 -1
  26. package/dist/esm/pipeline/spec/chart/pipes/label/labelScatter.js.map +1 -1
  27. package/dist/esm/theme/common/axes.d.ts +5 -0
  28. package/dist/esm/theme/common/axes.js +156 -0
  29. package/dist/esm/theme/common/axes.js.map +1 -0
  30. package/dist/esm/theme/common/color.d.ts +12 -0
  31. package/dist/esm/theme/common/color.js +43 -0
  32. package/dist/esm/theme/common/color.js.map +1 -0
  33. package/dist/esm/theme/common/crosshair.d.ts +28 -0
  34. package/dist/esm/theme/common/crosshair.js +31 -0
  35. package/dist/esm/theme/common/crosshair.js.map +1 -0
  36. package/dist/esm/theme/common/index.d.ts +7 -0
  37. package/dist/esm/theme/common/index.js +7 -0
  38. package/dist/esm/theme/common/label.d.ts +8 -0
  39. package/dist/esm/theme/common/label.js +11 -0
  40. package/dist/esm/theme/common/label.js.map +1 -0
  41. package/dist/esm/theme/common/legend.d.ts +2 -0
  42. package/dist/esm/theme/common/legend.js +13 -0
  43. package/dist/esm/theme/common/legend.js.map +1 -0
  44. package/dist/esm/theme/common/table.d.ts +3 -0
  45. package/dist/esm/theme/common/table.js +34 -0
  46. package/dist/esm/theme/common/table.js.map +1 -0
  47. package/dist/esm/theme/common/tooltip.d.ts +2 -0
  48. package/dist/esm/theme/common/tooltip.js +6 -0
  49. package/dist/esm/theme/common/tooltip.js.map +1 -0
  50. package/dist/esm/theme/{dark.d.ts → dark/dark.d.ts} +1 -1
  51. package/dist/esm/theme/{dark.js → dark/dark.js} +30 -153
  52. package/dist/esm/theme/dark/dark.js.map +1 -0
  53. package/dist/esm/theme/dark/index.d.ts +1 -0
  54. package/dist/esm/theme/dark/index.js +2 -0
  55. package/dist/esm/theme/index.js +2 -2
  56. package/dist/esm/theme/light/index.d.ts +1 -0
  57. package/dist/esm/theme/light/index.js +2 -0
  58. package/dist/esm/theme/{light.d.ts → light/light.d.ts} +1 -1
  59. package/dist/esm/theme/{light.js → light/light.js} +30 -155
  60. package/dist/esm/theme/light/light.js.map +1 -0
  61. package/dist/esm/types/advancedVSeed.d.ts +44 -8
  62. package/dist/esm/types/builder/builder.d.ts +4 -1
  63. package/dist/esm/types/builder/builder.js.map +1 -1
  64. package/dist/esm/types/chartType/area/zArea.d.ts +9 -8
  65. package/dist/esm/types/chartType/areaPercent/zAreaPercent.d.ts +9 -8
  66. package/dist/esm/types/chartType/bar/zBar.d.ts +9 -8
  67. package/dist/esm/types/chartType/barParallel/zBarParallel.d.ts +9 -8
  68. package/dist/esm/types/chartType/barPercent/zBarPercent.d.ts +9 -8
  69. package/dist/esm/types/chartType/column/zColumn.d.ts +9 -8
  70. package/dist/esm/types/chartType/columnParallel/zColumnParallel.d.ts +9 -8
  71. package/dist/esm/types/chartType/columnPercent/zColumnPercent.d.ts +9 -8
  72. package/dist/esm/types/chartType/donut/zDonut.d.ts +1 -0
  73. package/dist/esm/types/chartType/dualAxis/zDualAxis.d.ts +9 -8
  74. package/dist/esm/types/chartType/funnel/zFunnel.d.ts +1 -0
  75. package/dist/esm/types/chartType/heatmap/zHeatmap.d.ts +1 -0
  76. package/dist/esm/types/chartType/line/zLine.d.ts +9 -8
  77. package/dist/esm/types/chartType/pie/zPie.d.ts +1 -0
  78. package/dist/esm/types/chartType/radar/zRadar.d.ts +1 -0
  79. package/dist/esm/types/chartType/rose/zRose.d.ts +1 -0
  80. package/dist/esm/types/chartType/roseParallel/zRoseParallel.d.ts +1 -0
  81. package/dist/esm/types/chartType/scatter/zScatter.d.ts +9 -8
  82. package/dist/esm/types/dataSelector/selector.d.ts +2 -2
  83. package/dist/esm/types/dataSelector/selector.js.map +1 -1
  84. package/dist/esm/types/properties/annotation/annotation.d.ts +8 -8
  85. package/dist/esm/types/properties/annotation/annotationArea.d.ts +1 -1
  86. package/dist/esm/types/properties/annotation/annotationPoint.d.ts +1 -1
  87. package/dist/esm/types/properties/annotation/zAnnotationArea.d.ts +2 -2
  88. package/dist/esm/types/properties/annotation/zAnnotationArea.js +1 -1
  89. package/dist/esm/types/properties/annotation/zAnnotationArea.js.map +1 -1
  90. package/dist/esm/types/properties/annotation/zAnnotationPoint.d.ts +2 -2
  91. package/dist/esm/types/properties/annotation/zAnnotationPoint.js +1 -1
  92. package/dist/esm/types/properties/annotation/zAnnotationPoint.js.map +1 -1
  93. package/dist/esm/types/properties/config/config.d.ts +36 -0
  94. package/dist/esm/types/properties/config/label/label.d.ts +8 -0
  95. package/dist/esm/types/properties/config/label/zLabel.d.ts +1 -0
  96. package/dist/esm/types/properties/config/label/zLabel.js +1 -0
  97. package/dist/esm/types/properties/config/label/zLabel.js.map +1 -1
  98. package/dist/esm/types/properties/config/label/zPieLabel.d.ts +1 -0
  99. package/dist/esm/types/properties/theme/customTheme.d.ts +36 -0
  100. package/dist/esm/types/zVseed.d.ts +106 -88
  101. package/dist/umd/index.js +313 -285
  102. package/dist/umd/index.js.map +1 -1
  103. package/package.json +1 -1
  104. package/dist/esm/theme/dark.js.map +0 -1
  105. package/dist/esm/theme/light.js.map +0 -1
package/dist/umd/index.js CHANGED
@@ -611,7 +611,10 @@
611
611
  ...prev,
612
612
  ...cur.unfoldInfo.colorIdMap
613
613
  }), {});
614
- return colorItems.map((d)=>colorIdMap[d]);
614
+ return colorItems.map((d)=>({
615
+ id: d,
616
+ alias: colorIdMap[d]
617
+ }));
615
618
  };
616
619
  const getColorIdMap = (builder)=>{
617
620
  const advancedVSeed = builder.advancedVSeed;
@@ -3078,6 +3081,8 @@
3078
3081
  ];
3079
3082
  switch(op){
3080
3083
  case '=':
3084
+ if (String(datum[selector.field]) === String(selectorValueArr[0])) return true;
3085
+ break;
3081
3086
  case '==':
3082
3087
  if (datum[selector.field] === selectorValueArr[0]) return true;
3083
3088
  break;
@@ -3099,8 +3104,6 @@
3099
3104
  case 'between':
3100
3105
  if (Array.isArray(selector.value) && datum[selector.field] >= selectorValueArr[0] && datum[selector.field] <= selectorValueArr[1]) return true;
3101
3106
  break;
3102
- default:
3103
- break;
3104
3107
  }
3105
3108
  } else if (isDimensionSelector(selector)) {
3106
3109
  const op = selector.operator || selector.op;
@@ -3114,8 +3117,6 @@
3114
3117
  case 'not in':
3115
3118
  if (!selectorValueArr.includes(datum[selector.field])) return true;
3116
3119
  break;
3117
- default:
3118
- break;
3119
3120
  }
3120
3121
  } else if (isPartialDatumSelector(selector)) {
3121
3122
  if (Object.keys(selector).every((key)=>datum[key] === selector[key])) return true;
@@ -3351,7 +3352,7 @@
3351
3352
  const baseConfig = advancedVSeed.config[chartType];
3352
3353
  const foldInfo = datasetReshapeInfo[0].foldInfo;
3353
3354
  const { label } = baseConfig;
3354
- result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, [
3355
+ result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
3355
3356
  foldInfo
3356
3357
  ]);
3357
3358
  return result;
@@ -3373,10 +3374,11 @@
3373
3374
  const percentValue = num / sum;
3374
3375
  return formatter(percentValue);
3375
3376
  };
3376
- const buildLabel = (label, vseedMeasures = [], vseedDimensions = [], advancedVSeedMeasures, encoding, foldInfoList)=>{
3377
- const { enable, wrap, showValue, showValuePercent, labelOverlap, labelColorSmartInvert, labelColor, labelFontSize, labelFontWeight, labelBackgroundColor, labelPosition, autoFormat, numFormat = {} } = label;
3378
- const labelDims = T((vseedDimensions || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3379
- const labelMeas = T((vseedMeasures || []).filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3377
+ const buildLabel = (label, vseedMeasures = [], vseedDimensions = [], advancedVSeedDimensions, advancedVSeedMeasures, encoding, foldInfoList)=>{
3378
+ const { enable, wrap, showValue, showValuePercent, showDimension, labelOverlap, labelColorSmartInvert, labelColor, labelFontSize, labelFontWeight, labelBackgroundColor, labelPosition, autoFormat, numFormat = {} } = label;
3379
+ const hasDimLabelEncoding = vseedDimensions.some((item)=>encoding.label?.includes(item.id));
3380
+ const labelDims = T(hasDimLabelEncoding ? vseedDimensions.filter((item)=>encoding.label?.includes(item.id)) : showDimension ? advancedVSeedDimensions.filter((d)=>d.id !== MeasureName) : [], (item)=>item.id);
3381
+ const labelMeas = T(vseedMeasures.filter((item)=>encoding.label?.includes(item.id)), (item)=>item.id);
3380
3382
  const percentFormat = chunk_5S4PYKVY_t(numFormat, {
3381
3383
  type: 'percent'
3382
3384
  });
@@ -3385,7 +3387,10 @@
3385
3387
  visible: enable,
3386
3388
  formatMethod: (_, datum)=>{
3387
3389
  const result = [];
3388
- const dimLabels = labelDims.map((item)=>item.alias || item.id);
3390
+ const dimLabels = labelDims.map((item)=>{
3391
+ const id = item.id;
3392
+ return datum[id];
3393
+ });
3389
3394
  const meaLabels = labelMeas.map((item)=>generateMeasureValue(datum[item.id], item, autoFormat, numFormat));
3390
3395
  result.push(...dimLabels);
3391
3396
  foldInfoList.forEach((foldInfo)=>{
@@ -4172,7 +4177,7 @@
4172
4177
  indicators: indicators
4173
4178
  };
4174
4179
  };
4175
- const pivotIndicators_pivotIndicatorsAsRow = (spec)=>{
4180
+ const pivotIndicatorsAsRow = (spec)=>{
4176
4181
  const result = {
4177
4182
  ...spec
4178
4183
  };
@@ -4181,7 +4186,7 @@
4181
4186
  indicatorsAsCol: false
4182
4187
  };
4183
4188
  };
4184
- const pivotIndicators_pivotIndicatorsAsCol = (spec)=>{
4189
+ const pivotIndicatorsAsCol = (spec)=>{
4185
4190
  const result = {
4186
4191
  ...spec
4187
4192
  };
@@ -4463,7 +4468,7 @@
4463
4468
  const pivotLine = [
4464
4469
  initPivot,
4465
4470
  pivotGridStyle,
4466
- pivotIndicators_pivotIndicatorsAsRow,
4471
+ pivotIndicatorsAsRow,
4467
4472
  datasetPivot,
4468
4473
  pivotIndicators_pivotIndicators([
4469
4474
  initLine,
@@ -4917,7 +4922,7 @@
4917
4922
  const pivotColumn = [
4918
4923
  initPivot,
4919
4924
  pivotGridStyle,
4920
- pivotIndicators_pivotIndicatorsAsRow,
4925
+ pivotIndicatorsAsRow,
4921
4926
  datasetPivot,
4922
4927
  pivotIndicators_pivotIndicators([
4923
4928
  initColumn,
@@ -5029,12 +5034,13 @@
5029
5034
  const sameDimensionsMode = chunk_HGKLN5KY_k(encoding.x, encoding.color);
5030
5035
  result.type = 'bar';
5031
5036
  result.direction = 'vertical';
5032
- result.xField = sameDimensionsMode ? [
5037
+ result.xField = [
5033
5038
  unfoldInfo.encodingX
5034
- ] : [
5035
- unfoldInfo.encodingX,
5036
- unfoldInfo.encodingDetail
5037
5039
  ];
5040
+ if (!sameDimensionsMode) {
5041
+ result.xField.push(unfoldInfo.encodingDetail);
5042
+ if (encoding.detail?.[0] === MeasureName && encoding.y?.length === 1) result.xField.pop();
5043
+ }
5038
5044
  result.yField = foldInfo.measureValue;
5039
5045
  result.seriesField = unfoldInfo.encodingColorId;
5040
5046
  result.padding = 0;
@@ -5068,7 +5074,7 @@
5068
5074
  const pivotColumnParallel = [
5069
5075
  initPivot,
5070
5076
  pivotGridStyle,
5071
- pivotIndicators_pivotIndicatorsAsRow,
5077
+ pivotIndicatorsAsRow,
5072
5078
  datasetPivot,
5073
5079
  pivotIndicators_pivotIndicators([
5074
5080
  initColumnParallel,
@@ -5160,7 +5166,7 @@
5160
5166
  const pivotColumnPercent = [
5161
5167
  initPivot,
5162
5168
  pivotGridStyle,
5163
- pivotIndicators_pivotIndicatorsAsRow,
5169
+ pivotIndicatorsAsRow,
5164
5170
  datasetPivot,
5165
5171
  pivotIndicators_pivotIndicators([
5166
5172
  initColumn,
@@ -5598,7 +5604,7 @@
5598
5604
  const pivotBar = [
5599
5605
  initPivot,
5600
5606
  pivotGridStyle,
5601
- pivotIndicators_pivotIndicatorsAsCol,
5607
+ pivotIndicatorsAsCol,
5602
5608
  datasetPivot,
5603
5609
  pivotIndicators_pivotIndicators([
5604
5610
  initBar,
@@ -5670,12 +5676,13 @@
5670
5676
  const sameDimensionsMode = chunk_HGKLN5KY_k(encoding.y, encoding.color);
5671
5677
  result.type = 'bar';
5672
5678
  result.direction = 'horizontal';
5673
- result.yField = sameDimensionsMode ? [
5679
+ result.yField = [
5674
5680
  unfoldInfo.encodingY
5675
- ] : [
5676
- unfoldInfo.encodingY,
5677
- unfoldInfo.encodingDetail
5678
5681
  ];
5682
+ if (!sameDimensionsMode) {
5683
+ result.yField.push(unfoldInfo.encodingDetail);
5684
+ if (encoding.detail?.[0] === MeasureName && encoding.x?.length === 1) result.yField.pop();
5685
+ }
5679
5686
  result.xField = foldInfo.measureValue;
5680
5687
  result.seriesField = unfoldInfo.encodingColorId;
5681
5688
  result.padding = 0;
@@ -5709,7 +5716,7 @@
5709
5716
  const pivotBarParallel = [
5710
5717
  initPivot,
5711
5718
  pivotGridStyle,
5712
- pivotIndicators_pivotIndicatorsAsCol,
5719
+ pivotIndicatorsAsCol,
5713
5720
  datasetPivot,
5714
5721
  pivotIndicators_pivotIndicators([
5715
5722
  initBarParallel,
@@ -5792,7 +5799,7 @@
5792
5799
  const pivotBarPercent = [
5793
5800
  initPivot,
5794
5801
  pivotGridStyle,
5795
- pivotIndicators_pivotIndicatorsAsCol,
5802
+ pivotIndicatorsAsCol,
5796
5803
  datasetPivot,
5797
5804
  pivotIndicators_pivotIndicators([
5798
5805
  initBar,
@@ -5983,7 +5990,7 @@
5983
5990
  const pivotArea = [
5984
5991
  initPivot,
5985
5992
  pivotGridStyle,
5986
- pivotIndicators_pivotIndicatorsAsRow,
5993
+ pivotIndicatorsAsRow,
5987
5994
  datasetPivot,
5988
5995
  pivotIndicators_pivotIndicators([
5989
5996
  initArea,
@@ -6073,7 +6080,7 @@
6073
6080
  const pivotAreaPercent = [
6074
6081
  initPivot,
6075
6082
  pivotGridStyle,
6076
- pivotIndicators_pivotIndicatorsAsRow,
6083
+ pivotIndicatorsAsRow,
6077
6084
  datasetPivot,
6078
6085
  pivotIndicators_pivotIndicators([
6079
6086
  initArea,
@@ -6520,7 +6527,7 @@
6520
6527
  const baseConfig = advancedVSeed.config[chartType];
6521
6528
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
6522
6529
  const { label } = baseConfig;
6523
- result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, foldInfoList);
6530
+ result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, foldInfoList);
6524
6531
  return result;
6525
6532
  };
6526
6533
  const tooltipScatter = (spec, context)=>{
@@ -6678,7 +6685,7 @@
6678
6685
  const pivotScatter = [
6679
6686
  initPivot,
6680
6687
  pivotGridStyle,
6681
- pivotIndicators_pivotIndicatorsAsRow,
6688
+ pivotIndicatorsAsRow,
6682
6689
  datasetPivot,
6683
6690
  pivotIndicators_pivotIndicators([
6684
6691
  initScatter,
@@ -7336,7 +7343,7 @@
7336
7343
  const { chartType } = advancedVSeed;
7337
7344
  const baseConfig = advancedVSeed.config[chartType];
7338
7345
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
7339
- result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, [
7346
+ result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
7340
7347
  foldInfoList[0]
7341
7348
  ]);
7342
7349
  result.label.zIndex = 1002;
@@ -7351,7 +7358,7 @@
7351
7358
  const { chartType } = advancedVSeed;
7352
7359
  const baseConfig = advancedVSeed.config[chartType];
7353
7360
  const foldInfoList = datasetReshapeInfo[0].foldInfoList;
7354
- result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, [
7361
+ result.label = buildLabel(baseConfig.label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
7355
7362
  foldInfoList[1]
7356
7363
  ]);
7357
7364
  result.label.zIndex = 1002;
@@ -7668,7 +7675,7 @@
7668
7675
  const pivotDualAxis = [
7669
7676
  initPivot,
7670
7677
  pivotGridStyle,
7671
- pivotIndicators_pivotIndicatorsAsRow,
7678
+ pivotIndicatorsAsRow,
7672
7679
  datasetPivot,
7673
7680
  pivotIndicators_pivotIndicators([
7674
7681
  series([
@@ -7879,7 +7886,7 @@
7879
7886
  const baseConfig = advancedVSeed.config[chartType];
7880
7887
  const foldInfo = datasetReshapeInfo[0].foldInfo;
7881
7888
  const { label } = baseConfig;
7882
- result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.measures, encoding, [
7889
+ result.label = buildLabel(label, vseed.measures, vseed.dimensions, advancedVSeed.dimensions, advancedVSeed.measures, encoding, [
7883
7890
  foldInfo
7884
7891
  ]);
7885
7892
  if (label.labelLayout) result.label.layout = {
@@ -7909,7 +7916,7 @@
7909
7916
  const pivotPie = [
7910
7917
  initPivot,
7911
7918
  pivotGridStyle,
7912
- pivotIndicators_pivotIndicatorsAsRow,
7919
+ pivotIndicatorsAsRow,
7913
7920
  pivotHideIndicatorName,
7914
7921
  datasetPivot,
7915
7922
  pivotIndicators_pivotIndicators([
@@ -8003,7 +8010,7 @@
8003
8010
  const pivotDonut = [
8004
8011
  initPivot,
8005
8012
  pivotGridStyle,
8006
- pivotIndicators_pivotIndicatorsAsRow,
8013
+ pivotIndicatorsAsRow,
8007
8014
  pivotHideIndicatorName,
8008
8015
  datasetPivot,
8009
8016
  pivotIndicators_pivotIndicators([
@@ -8223,7 +8230,7 @@
8223
8230
  const pivotRose = [
8224
8231
  initPivot,
8225
8232
  pivotGridStyle,
8226
- pivotIndicators_pivotIndicatorsAsRow,
8233
+ pivotIndicatorsAsRow,
8227
8234
  pivotHideIndicatorName,
8228
8235
  datasetPivot,
8229
8236
  pivotIndicators_pivotIndicators([
@@ -8288,12 +8295,13 @@
8288
8295
  const { unfoldInfo, foldInfo } = datasetReshapeInfo[0];
8289
8296
  const sameDimensionsMode = chunk_HGKLN5KY_k(encoding.angle, encoding.color);
8290
8297
  result.type = 'rose';
8291
- result.angleField = sameDimensionsMode ? [
8298
+ result.angleField = [
8292
8299
  unfoldInfo.encodingAngle
8293
- ] : [
8294
- unfoldInfo.encodingAngle,
8295
- unfoldInfo.encodingDetail
8296
8300
  ];
8301
+ if (!sameDimensionsMode) {
8302
+ result.angleField.push(unfoldInfo.encodingDetail);
8303
+ if (encoding.detail?.[0] === MeasureName && encoding.radius?.length === 1) result.angleField.pop();
8304
+ }
8297
8305
  result.valueField = foldInfo.measureValue;
8298
8306
  result.seriesField = unfoldInfo.encodingColorId;
8299
8307
  result.padding = 0;
@@ -8342,7 +8350,7 @@
8342
8350
  const pivotRoseParallel = [
8343
8351
  initPivot,
8344
8352
  pivotGridStyle,
8345
- pivotIndicators_pivotIndicatorsAsRow,
8353
+ pivotIndicatorsAsRow,
8346
8354
  pivotHideIndicatorName,
8347
8355
  datasetPivot,
8348
8356
  pivotIndicators_pivotIndicators([
@@ -8559,7 +8567,7 @@
8559
8567
  const pivotRadar = [
8560
8568
  initPivot,
8561
8569
  pivotGridStyle,
8562
- pivotIndicators_pivotIndicatorsAsRow,
8570
+ pivotIndicatorsAsRow,
8563
8571
  pivotHideIndicatorName,
8564
8572
  datasetPivot,
8565
8573
  pivotIndicators_pivotIndicators([
@@ -8760,7 +8768,7 @@
8760
8768
  const pivotFunnel = [
8761
8769
  initPivot,
8762
8770
  pivotGridStyle,
8763
- pivotIndicators_pivotIndicatorsAsRow,
8771
+ pivotIndicatorsAsRow,
8764
8772
  pivotHideIndicatorName,
8765
8773
  datasetPivot,
8766
8774
  pivotIndicators_pivotIndicators([
@@ -9063,7 +9071,7 @@
9063
9071
  const pivotHeatmap = [
9064
9072
  initPivot,
9065
9073
  pivotGridStyle,
9066
- pivotIndicators_pivotIndicatorsAsRow,
9074
+ pivotIndicatorsAsRow,
9067
9075
  datasetPivot,
9068
9076
  pivotIndicators_pivotIndicators([
9069
9077
  initHeatmap,
@@ -9089,8 +9097,127 @@
9089
9097
  Builder._advancedPipelineMap.heatmap = heatmapAdvancedPipeline;
9090
9098
  Builder._specPipelineMap.heatmap = heatmapSpecPipeline;
9091
9099
  };
9092
- const lightTheme = ()=>{
9093
- const linearAxis = {
9100
+ const getDarkCrosshairLine = ()=>({
9101
+ visible: true,
9102
+ labelVisible: true,
9103
+ labelColor: '#4B4F54',
9104
+ labelBackgroundColor: '#ffffff',
9105
+ lineColor: '#E2E3E6'
9106
+ });
9107
+ const getDarkCrosshairRect = ()=>({
9108
+ visible: true,
9109
+ labelVisible: true,
9110
+ labelColor: '#4B4F54',
9111
+ labelBackgroundColor: '#ffffff',
9112
+ rectColor: '#E2E3E6'
9113
+ });
9114
+ const getLightCrosshairLine = ()=>({
9115
+ visible: true,
9116
+ labelVisible: true,
9117
+ labelColor: '#ffffff',
9118
+ labelBackgroundColor: '#364159',
9119
+ lineColor: '#3641594d'
9120
+ });
9121
+ const getLightCrosshairRect = ()=>({
9122
+ visible: true,
9123
+ labelVisible: true,
9124
+ labelColor: '#ffffff',
9125
+ labelBackgroundColor: '#364159',
9126
+ rectColor: '#3641594d'
9127
+ });
9128
+ const getLightColorScheme = ()=>[
9129
+ '#8D72F6',
9130
+ '#5766EC',
9131
+ '#66A3FE',
9132
+ '#51D5E6',
9133
+ '#4EC0B3',
9134
+ '#F9DF90',
9135
+ '#F9AD71',
9136
+ '#ED8888',
9137
+ '#E9A0C3',
9138
+ '#D77DD3'
9139
+ ];
9140
+ const getDarkColorScheme = ()=>[
9141
+ '#2E62F1',
9142
+ '#4DC36A',
9143
+ '#FF8406',
9144
+ '#FFCC00',
9145
+ '#4F44CF',
9146
+ '#5AC8FA',
9147
+ '#003A8C',
9148
+ '#B08AE2',
9149
+ '#FF6341',
9150
+ '#98DD62'
9151
+ ];
9152
+ const getLightLinearColorScheme = ()=>[
9153
+ '#C2CEFF',
9154
+ '#5766EC'
9155
+ ];
9156
+ const getDarkLinearColorScheme = ()=>[
9157
+ '#A0CEFF',
9158
+ '#2E62F1'
9159
+ ];
9160
+ const getLightColor = ()=>({
9161
+ linearColorScheme: getLightLinearColorScheme(),
9162
+ colorScheme: getLightColorScheme()
9163
+ });
9164
+ const getDarkColor = ()=>({
9165
+ linearColorScheme: getDarkLinearColorScheme(),
9166
+ colorScheme: getDarkColorScheme()
9167
+ });
9168
+ const getDefaultLabel = ()=>({
9169
+ enable: true,
9170
+ wrap: true,
9171
+ showValue: true,
9172
+ showValuePercent: false,
9173
+ labelColorSmartInvert: false,
9174
+ labelOverlap: true
9175
+ });
9176
+ const getDefaultLegend = ()=>({
9177
+ enable: true,
9178
+ border: true,
9179
+ maxSize: 1,
9180
+ shapeType: 'rectRound',
9181
+ position: 'rt',
9182
+ labelColor: '#646A73',
9183
+ labelFontSize: 12,
9184
+ labelFontWeight: 400
9185
+ });
9186
+ const getLightTableConfig = ()=>({
9187
+ borderColor: '#e3e5eb',
9188
+ bodyFontSize: 12,
9189
+ bodyFontColor: '#141414',
9190
+ bodyBackgroundColor: 'transparent',
9191
+ headerFontSize: 12,
9192
+ headerFontColor: '#21252c',
9193
+ headerBackgroundColor: '#f6f7f9',
9194
+ hoverBodyBackgroundColor: '#bedaff',
9195
+ hoverBodyInlineBackgroundColor: '#bedaff33',
9196
+ hoverHeaderBackgroundColor: '#D9DDE4',
9197
+ hoverHeaderInlineBackgroundColor: '#D9DDE455',
9198
+ selectedBorderColor: '#4080ff',
9199
+ selectedBackgroundColor: '#bedaff33',
9200
+ backgroundColor: 'transparent'
9201
+ });
9202
+ const getDarkTableConfig = ()=>({
9203
+ borderColor: '#4b4e53',
9204
+ bodyFontSize: 12,
9205
+ bodyFontColor: '#fdfdfd',
9206
+ bodyBackgroundColor: 'transparent',
9207
+ headerFontSize: 12,
9208
+ headerFontColor: '#fdfdfd',
9209
+ headerBackgroundColor: '#36393e',
9210
+ hoverBodyBackgroundColor: '#4284ff66',
9211
+ hoverBodyInlineBackgroundColor: '#4284ff10',
9212
+ hoverHeaderBackgroundColor: '#6f7984cc',
9213
+ hoverHeaderInlineBackgroundColor: '#4b4f54',
9214
+ selectedBorderColor: '#3073f2',
9215
+ selectedBackgroundColor: '#4284ff33'
9216
+ });
9217
+ const getDefaultTooltip = ()=>({
9218
+ enable: true
9219
+ });
9220
+ const getLightLinearAxis = ()=>({
9094
9221
  nice: true,
9095
9222
  zero: true,
9096
9223
  inverse: false,
@@ -9124,8 +9251,8 @@
9124
9251
  lineColor: '#3641594d',
9125
9252
  lineWidth: 1
9126
9253
  }
9127
- };
9128
- const bandAxis = {
9254
+ });
9255
+ const getLightBandAxis = ()=>({
9129
9256
  labelAutoHide: true,
9130
9257
  labelAutoHideGap: 4,
9131
9258
  labelAutoLimit: true,
@@ -9166,7 +9293,86 @@
9166
9293
  lineColor: '#3641594d',
9167
9294
  lineWidth: 1
9168
9295
  }
9169
- };
9296
+ });
9297
+ const getDarkLinearAxis = ()=>({
9298
+ nice: true,
9299
+ zero: true,
9300
+ label: {
9301
+ visible: true,
9302
+ labelAngle: 0,
9303
+ labelColor: '#E2E3E6',
9304
+ labelFontSize: 12,
9305
+ labelFontWeight: 400
9306
+ },
9307
+ title: {
9308
+ visible: false,
9309
+ titleText: '',
9310
+ titleColor: '#FDFDFD',
9311
+ titleFontSize: 12,
9312
+ titleFontWeight: 400
9313
+ },
9314
+ grid: {
9315
+ visible: true,
9316
+ gridColor: '#404349',
9317
+ gridWidth: 0.5
9318
+ },
9319
+ tick: {
9320
+ visible: false,
9321
+ tickInside: false,
9322
+ tickSize: 4,
9323
+ tickColor: '#4B4F54'
9324
+ },
9325
+ line: {
9326
+ visible: false,
9327
+ lineColor: '#4B4F54',
9328
+ lineWidth: 1
9329
+ }
9330
+ });
9331
+ const getDarkBandAxis = ()=>({
9332
+ labelAutoHide: true,
9333
+ labelAutoHideGap: 4,
9334
+ labelAutoLimit: true,
9335
+ labelAutoLimitLength: 80,
9336
+ labelAutoRotate: false,
9337
+ labelAutoRotateAngleRange: [
9338
+ 0,
9339
+ -45,
9340
+ -90
9341
+ ],
9342
+ label: {
9343
+ visible: true,
9344
+ labelAngle: 0,
9345
+ labelColor: '#E2E3E6',
9346
+ labelFontSize: 12,
9347
+ labelFontWeight: 400
9348
+ },
9349
+ title: {
9350
+ visible: false,
9351
+ titleText: '',
9352
+ titleColor: '#FDFDFD',
9353
+ titleFontSize: 12,
9354
+ titleFontWeight: 400
9355
+ },
9356
+ grid: {
9357
+ visible: false,
9358
+ gridColor: '#404349',
9359
+ gridWidth: 0.5
9360
+ },
9361
+ tick: {
9362
+ visible: false,
9363
+ tickInside: false,
9364
+ tickSize: 4,
9365
+ tickColor: '#4B4F54'
9366
+ },
9367
+ line: {
9368
+ visible: true,
9369
+ lineColor: '#4B4F54',
9370
+ lineWidth: 1
9371
+ }
9372
+ });
9373
+ const lightTheme = ()=>{
9374
+ const linearAxis = getLightLinearAxis();
9375
+ const bandAxis = getLightBandAxis();
9170
9376
  const barBandAxis = {
9171
9377
  ...bandAxis,
9172
9378
  labelAutoHide: false,
@@ -9180,78 +9386,16 @@
9180
9386
  -90
9181
9387
  ]
9182
9388
  };
9183
- const crosshairLine = {
9184
- visible: true,
9185
- labelVisible: true,
9186
- lineColor: '#3641594d',
9187
- labelColor: '#ffffff',
9188
- labelBackgroundColor: '#364159'
9189
- };
9190
- const crosshairRect = {
9191
- visible: true,
9192
- labelVisible: true,
9193
- rectColor: '#3641594d',
9194
- labelColor: '#ffffff',
9195
- labelBackgroundColor: '#364159'
9196
- };
9389
+ const crosshairLine = getLightCrosshairLine();
9390
+ const crosshairRect = getLightCrosshairRect();
9197
9391
  const baseConfig = {
9198
9392
  backgroundColor: 'transparent',
9199
- color: {
9200
- linearColorScheme: [
9201
- '#C2CEFF',
9202
- '#5766EC'
9203
- ],
9204
- colorScheme: [
9205
- '#8D72F6',
9206
- '#5766EC',
9207
- '#66A3FE',
9208
- '#51D5E6',
9209
- '#4EC0B3',
9210
- '#F9DF90',
9211
- '#F9AD71',
9212
- '#ED8888',
9213
- '#E9A0C3',
9214
- '#D77DD3'
9215
- ]
9216
- },
9217
- label: {
9218
- enable: true,
9219
- wrap: true,
9220
- showValue: true,
9221
- showValuePercent: false,
9222
- labelColorSmartInvert: false,
9223
- labelOverlap: true
9224
- },
9225
- tooltip: {
9226
- enable: true
9227
- },
9228
- legend: {
9229
- enable: true,
9230
- border: true,
9231
- maxSize: 1,
9232
- shapeType: 'rectRound',
9233
- position: 'rt',
9234
- labelColor: '#646A73',
9235
- labelFontSize: 12,
9236
- labelFontWeight: 400
9237
- }
9238
- };
9239
- const tableConfig = {
9240
- borderColor: '#e3e5eb',
9241
- bodyFontSize: 12,
9242
- bodyFontColor: '#141414',
9243
- bodyBackgroundColor: 'transparent',
9244
- headerFontSize: 12,
9245
- headerFontColor: '#21252c',
9246
- headerBackgroundColor: '#f6f7f9',
9247
- hoverBodyBackgroundColor: '#bedaff',
9248
- hoverBodyInlineBackgroundColor: '#bedaff33',
9249
- hoverHeaderBackgroundColor: '#D9DDE4',
9250
- hoverHeaderInlineBackgroundColor: '#D9DDE455',
9251
- selectedBorderColor: '#4080ff',
9252
- selectedBackgroundColor: '#bedaff33',
9253
- backgroundColor: 'transparent'
9393
+ color: getLightColor(),
9394
+ label: getDefaultLabel(),
9395
+ legend: getDefaultLegend(),
9396
+ tooltip: getDefaultTooltip()
9254
9397
  };
9398
+ const tableConfig = getLightTableConfig();
9255
9399
  return {
9256
9400
  config: {
9257
9401
  table: tableConfig,
@@ -9354,6 +9498,11 @@
9354
9498
  },
9355
9499
  scatter: {
9356
9500
  ...baseConfig,
9501
+ crosshairLine,
9502
+ sizeRange: [
9503
+ 8,
9504
+ 24
9505
+ ],
9357
9506
  xAxis: {
9358
9507
  ...linearAxis,
9359
9508
  line: {
@@ -9368,11 +9517,11 @@
9368
9517
  visible: true
9369
9518
  }
9370
9519
  },
9371
- crosshairLine,
9372
- sizeRange: [
9373
- 8,
9374
- 24
9375
- ]
9520
+ label: {
9521
+ ...baseConfig.label,
9522
+ showValue: false,
9523
+ showValuePercent: false
9524
+ }
9376
9525
  },
9377
9526
  dualAxis: {
9378
9527
  ...baseConfig,
@@ -9395,7 +9544,8 @@
9395
9544
  label: {
9396
9545
  ...baseConfig.label,
9397
9546
  showValuePercent: true,
9398
- labelLayout: 'labelLine'
9547
+ labelLayout: 'labelLine',
9548
+ showDimension: true
9399
9549
  }
9400
9550
  },
9401
9551
  donut: {
@@ -9403,7 +9553,8 @@
9403
9553
  label: {
9404
9554
  ...baseConfig.label,
9405
9555
  showValuePercent: true,
9406
- labelLayout: 'labelLine'
9556
+ labelLayout: 'labelLine',
9557
+ showDimension: true
9407
9558
  }
9408
9559
  },
9409
9560
  radar: {
@@ -9413,14 +9564,16 @@
9413
9564
  ...baseConfig,
9414
9565
  label: {
9415
9566
  ...baseConfig.label,
9416
- showValuePercent: true
9567
+ showValuePercent: true,
9568
+ showDimension: true
9417
9569
  }
9418
9570
  },
9419
9571
  roseParallel: {
9420
9572
  ...baseConfig,
9421
9573
  label: {
9422
9574
  ...baseConfig.label,
9423
- showValuePercent: true
9575
+ showValuePercent: true,
9576
+ showDimension: true
9424
9577
  }
9425
9578
  },
9426
9579
  funnel: {
@@ -9437,82 +9590,8 @@
9437
9590
  };
9438
9591
  };
9439
9592
  const darkTheme = ()=>{
9440
- const linearAxis = {
9441
- nice: true,
9442
- zero: true,
9443
- label: {
9444
- visible: true,
9445
- labelAngle: 0,
9446
- labelColor: '#E2E3E6',
9447
- labelFontSize: 12,
9448
- labelFontWeight: 400
9449
- },
9450
- title: {
9451
- visible: false,
9452
- titleText: '',
9453
- titleColor: '#FDFDFD',
9454
- titleFontSize: 12,
9455
- titleFontWeight: 400
9456
- },
9457
- grid: {
9458
- visible: true,
9459
- gridColor: '#404349',
9460
- gridWidth: 0.5
9461
- },
9462
- tick: {
9463
- visible: false,
9464
- tickInside: false,
9465
- tickSize: 4,
9466
- tickColor: '#4B4F54'
9467
- },
9468
- line: {
9469
- visible: false,
9470
- lineColor: '#4B4F54',
9471
- lineWidth: 1
9472
- }
9473
- };
9474
- const bandAxis = {
9475
- labelAutoHide: true,
9476
- labelAutoHideGap: 4,
9477
- labelAutoLimit: true,
9478
- labelAutoLimitLength: 80,
9479
- labelAutoRotate: false,
9480
- labelAutoRotateAngleRange: [
9481
- 0,
9482
- -45,
9483
- -90
9484
- ],
9485
- label: {
9486
- visible: true,
9487
- labelAngle: 0,
9488
- labelColor: '#E2E3E6',
9489
- labelFontSize: 12,
9490
- labelFontWeight: 400
9491
- },
9492
- title: {
9493
- visible: false,
9494
- titleText: '',
9495
- titleColor: '#FDFDFD',
9496
- titleFontSize: 12,
9497
- titleFontWeight: 400
9498
- },
9499
- grid: {
9500
- visible: false,
9501
- gridColor: '#404349',
9502
- gridWidth: 0.5
9503
- },
9504
- tick: {
9505
- visible: false,
9506
- tickInside: false,
9507
- tickSize: 4,
9508
- tickColor: '#4B4F54'
9509
- },
9510
- line: {
9511
- visible: true,
9512
- lineColor: '#4B4F54',
9513
- lineWidth: 1
9514
- }
9515
- };
9593
+ const linearAxis = getDarkLinearAxis();
9594
+ const bandAxis = getDarkBandAxis();
9516
9595
  const barBandAxis = {
9517
9596
  ...bandAxis,
9518
9597
  labelAutoHide: false,
@@ -9526,77 +9605,16 @@
9526
9605
  -90
9527
9606
  ]
9528
9607
  };
9529
- const crosshairLine = {
9530
- visible: true,
9531
- labelVisible: true,
9532
- lineColor: '#E2E3E6',
9533
- labelColor: '#4B4F54',
9534
- labelBackgroundColor: '#ffffff'
9535
- };
9536
- const crosshairRect = {
9537
- visible: true,
9538
- labelVisible: true,
9539
- lineColor: '#E2E3E6',
9540
- labelColor: '#4B4F54',
9541
- labelBackgroundColor: '#ffffff'
9542
- };
9608
+ const crosshairLine = getDarkCrosshairLine();
9609
+ const crosshairRect = getDarkCrosshairRect();
9543
9610
  const baseConfig = {
9544
9611
  backgroundColor: 'transparent',
9545
- color: {
9546
- linearColorScheme: [
9547
- '#A0CEFF',
9548
- '#2E62F1'
9549
- ],
9550
- colorScheme: [
9551
- '#2E62F1',
9552
- '#4DC36A',
9553
- '#FF8406',
9554
- '#FFCC00',
9555
- '#4F44CF',
9556
- '#5AC8FA',
9557
- '#003A8C',
9558
- '#B08AE2',
9559
- '#FF6341',
9560
- '#98DD62'
9561
- ]
9562
- },
9563
- label: {
9564
- enable: true,
9565
- wrap: true,
9566
- showValue: true,
9567
- showValuePercent: false,
9568
- labelColorSmartInvert: false,
9569
- labelOverlap: true
9570
- },
9571
- tooltip: {
9572
- enable: true
9573
- },
9574
- legend: {
9575
- enable: true,
9576
- border: true,
9577
- maxSize: 1,
9578
- position: 'rt',
9579
- shapeType: 'rectRound',
9580
- labelColor: '#FDFDFD',
9581
- labelFontSize: 12,
9582
- labelFontWeight: 400
9583
- }
9584
- };
9585
- const tableConfig = {
9586
- borderColor: '#4b4e53',
9587
- bodyFontSize: 12,
9588
- bodyFontColor: '#fdfdfd',
9589
- bodyBackgroundColor: 'transparent',
9590
- headerFontSize: 12,
9591
- headerFontColor: '#fdfdfd',
9592
- headerBackgroundColor: '#36393e',
9593
- hoverBodyBackgroundColor: '#4284ff66',
9594
- hoverBodyInlineBackgroundColor: '#4284ff10',
9595
- hoverHeaderBackgroundColor: '#6f7984cc',
9596
- hoverHeaderInlineBackgroundColor: '#4b4f54',
9597
- selectedBorderColor: '#3073f2',
9598
- selectedBackgroundColor: '#4284ff33'
9612
+ color: getDarkColor(),
9613
+ label: getDefaultLabel(),
9614
+ legend: getDefaultLegend(),
9615
+ tooltip: getDefaultTooltip()
9599
9616
  };
9617
+ const tableConfig = getDarkTableConfig();
9600
9618
  return {
9601
9619
  config: {
9602
9620
  table: tableConfig,
@@ -9693,6 +9711,11 @@
9693
9711
  },
9694
9712
  scatter: {
9695
9713
  ...baseConfig,
9714
+ crosshairLine,
9715
+ sizeRange: [
9716
+ 8,
9717
+ 24
9718
+ ],
9696
9719
  xAxis: {
9697
9720
  ...linearAxis,
9698
9721
  line: {
@@ -9707,11 +9730,11 @@
9707
9730
  visible: true
9708
9731
  }
9709
9732
  },
9710
- crosshairLine,
9711
- sizeRange: [
9712
- 8,
9713
- 24
9714
- ]
9733
+ label: {
9734
+ ...baseConfig.label,
9735
+ showValue: false,
9736
+ showValuePercent: false
9737
+ }
9715
9738
  },
9716
9739
  dualAxis: {
9717
9740
  ...baseConfig,
@@ -9734,7 +9757,8 @@
9734
9757
  label: {
9735
9758
  ...baseConfig.label,
9736
9759
  showValuePercent: true,
9737
- labelLayout: 'labelLine'
9760
+ labelLayout: 'labelLine',
9761
+ showDimension: true
9738
9762
  }
9739
9763
  },
9740
9764
  donut: {
@@ -9742,7 +9766,8 @@
9742
9766
  label: {
9743
9767
  ...baseConfig.label,
9744
9768
  showValuePercent: true,
9745
- labelLayout: 'labelLine'
9769
+ labelLayout: 'labelLine',
9770
+ showDimension: true
9746
9771
  }
9747
9772
  },
9748
9773
  radar: {
@@ -9752,14 +9777,16 @@
9752
9777
  ...baseConfig,
9753
9778
  label: {
9754
9779
  ...baseConfig.label,
9755
- showValuePercent: true
9780
+ showValuePercent: true,
9781
+ showDimension: true
9756
9782
  }
9757
9783
  },
9758
9784
  roseParallel: {
9759
9785
  ...baseConfig,
9760
9786
  label: {
9761
9787
  ...baseConfig.label,
9762
- showValuePercent: true
9788
+ showValuePercent: true,
9789
+ showDimension: true
9763
9790
  }
9764
9791
  },
9765
9792
  funnel: {
@@ -13479,6 +13506,7 @@
13479
13506
  wrap: schemas_boolean().nullish(),
13480
13507
  showValue: schemas_boolean().nullish(),
13481
13508
  showValuePercent: schemas_boolean().nullish(),
13509
+ showDimension: schemas_boolean().nullish(),
13482
13510
  autoFormat: schemas_boolean().nullish(),
13483
13511
  numFormat: zNumFormat.nullish(),
13484
13512
  labelFontSize: schemas_number().nullish(),
@@ -13844,7 +13872,7 @@
13844
13872
  selector: union([
13845
13873
  zSelector,
13846
13874
  zSelectors
13847
- ]),
13875
+ ]).nullish(),
13848
13876
  text: schemas_string().or(schemas_array(schemas_string())).nullish(),
13849
13877
  textColor: schemas_string().default('#ffffff').nullish(),
13850
13878
  textFontSize: schemas_number().default(12).nullish(),
@@ -13972,7 +14000,7 @@
13972
14000
  selector: union([
13973
14001
  zSelector,
13974
14002
  zSelectors
13975
- ]),
14003
+ ]).nullish(),
13976
14004
  textPosition: schemas_enum([
13977
14005
  'top',
13978
14006
  'topRight',