@visactor/vseed 0.0.10 → 0.0.12

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 (69) hide show
  1. package/dist/builder/builder/builder.d.ts +5168 -511
  2. package/dist/builder/register/theme.d.ts +4 -1
  3. package/dist/dataSelector/selector.d.ts +1 -1
  4. package/dist/index.cjs +1690 -247
  5. package/dist/index.cjs.map +1 -1
  6. package/dist/index.js +1658 -254
  7. package/dist/index.js.map +1 -1
  8. package/dist/pipeline/advanced/pipes/config/config.d.ts +3 -3
  9. package/dist/pipeline/constant.d.ts +2 -0
  10. package/dist/pipeline/spec/pipes/annotation/annotationArea.d.ts +2 -0
  11. package/dist/pipeline/spec/pipes/annotation/annotationAreaBand.d.ts +2 -0
  12. package/dist/pipeline/spec/pipes/annotation/annotationHorizontalLine.d.ts +2 -0
  13. package/dist/pipeline/spec/pipes/annotation/annotationVerticalLine.d.ts +2 -0
  14. package/dist/pipeline/spec/pipes/annotation/index.d.ts +4 -0
  15. package/dist/pipeline/spec/pipes/annotation/utils.d.ts +2 -0
  16. package/dist/pipeline/spec/pipes/crosshair/horizontalCrosshairRect.d.ts +2 -0
  17. package/dist/pipeline/spec/pipes/crosshair/index.d.ts +3 -0
  18. package/dist/pipeline/spec/pipes/crosshair/verticalCrosshairLine.d.ts +2 -0
  19. package/dist/pipeline/spec/pipes/crosshair/verticalCrosshairRect.d.ts +2 -0
  20. package/dist/pipeline/spec/pipes/index.d.ts +1 -0
  21. package/dist/pipeline/spec/pipes/markStyle/areaStyle.d.ts +2 -0
  22. package/dist/pipeline/spec/pipes/markStyle/index.d.ts +3 -0
  23. package/dist/pipeline/spec/pipes/markStyle/lineStyle.d.ts +2 -0
  24. package/dist/pipeline/spec/pipes/markStyle/pointStyle.d.ts +2 -0
  25. package/dist/pipeline/spec/pipes/stack/index.d.ts +1 -0
  26. package/dist/pipeline/spec/pipes/stack/stackCornerRadius.d.ts +2 -0
  27. package/dist/pipeline/utils/chatType.d.ts +16 -16
  28. package/dist/pipeline/utils/format/createFormatter.d.ts +2 -0
  29. package/dist/pipeline/utils/format/createNumFormatter.d.ts +2 -0
  30. package/dist/pipeline/utils/format/index.d.ts +2 -0
  31. package/dist/pipeline/utils/index.d.ts +4 -2
  32. package/dist/pipeline/utils/measures/findMeasureById.d.ts +2 -0
  33. package/dist/pipeline/utils/measures/index.d.ts +1 -0
  34. package/dist/types/advancedVSeed.d.ts +3018 -106
  35. package/dist/types/builder/builder.d.ts +3 -0
  36. package/dist/types/chartType/area/area.d.ts +48 -1
  37. package/dist/types/chartType/areaPercent/areaPercent.d.ts +48 -1
  38. package/dist/types/chartType/bar/bar.d.ts +28 -2
  39. package/dist/types/chartType/barParallel/barParallel.d.ts +28 -2
  40. package/dist/types/chartType/barPercent/barPercent.d.ts +28 -2
  41. package/dist/types/chartType/column/column.d.ts +28 -2
  42. package/dist/types/chartType/columnParallel/columnParallel.d.ts +28 -2
  43. package/dist/types/chartType/columnPercent/columnPercent.d.ts +28 -2
  44. package/dist/types/chartType/line/line.d.ts +39 -1
  45. package/dist/types/dataSelector/selector.d.ts +60 -6
  46. package/dist/types/properties/annotation/annotation.d.ts +747 -8
  47. package/dist/types/properties/annotation/annotationArea.d.ts +248 -0
  48. package/dist/types/properties/annotation/annotationHorizontalLine.d.ts +253 -0
  49. package/dist/types/properties/annotation/annotationPoint.d.ts +56 -4
  50. package/dist/types/properties/annotation/annotationVerticalLine.d.ts +253 -0
  51. package/dist/types/properties/annotation/index.d.ts +3 -0
  52. package/dist/types/properties/config/config.d.ts +105 -36
  53. package/dist/types/properties/config/crosshair.d.ts +17 -0
  54. package/dist/types/properties/config/index.d.ts +2 -0
  55. package/dist/types/properties/config/stackCornerRadius.d.ts +3 -0
  56. package/dist/types/properties/markStyle/areaStyle.d.ts +129 -0
  57. package/dist/types/properties/markStyle/barStyle.d.ts +56 -4
  58. package/dist/types/properties/markStyle/index.d.ts +3 -0
  59. package/dist/types/properties/markStyle/lineStyle.d.ts +160 -0
  60. package/dist/types/properties/markStyle/markStyle.d.ts +599 -6
  61. package/dist/types/properties/markStyle/pointStyle.d.ts +168 -0
  62. package/dist/types/properties/measures/format/formatter.d.ts +1 -0
  63. package/dist/types/properties/measures/format/index.d.ts +2 -0
  64. package/dist/types/properties/measures/format/numFormat.d.ts +20 -0
  65. package/dist/types/properties/measures/index.d.ts +2 -2
  66. package/dist/types/properties/measures/measures.d.ts +40 -40
  67. package/dist/types/properties/theme/customTheme.d.ts +3094 -72
  68. package/dist/types/vseed.d.ts +20 -20
  69. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -26,7 +26,8 @@ __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  registerBar: ()=>registerBar,
28
28
  isVChart: ()=>isVChart,
29
- columnPercentSpecPipeline: ()=>columnPercentSpecPipeline,
29
+ zBaseConfig: ()=>zBaseConfig,
30
+ zTooltip: ()=>zTooltip,
30
31
  pieAdvancedPipeline: ()=>pieAdvancedPipeline,
31
32
  execPipeline: ()=>execPipeline,
32
33
  areaSpecPipeline: ()=>areaSpecPipeline,
@@ -36,8 +37,10 @@ __webpack_require__.d(__webpack_exports__, {
36
37
  zMeasureGroup: ()=>zMeasureGroup,
37
38
  zUnfoldInfo: ()=>zUnfoldInfo,
38
39
  zMeasures: ()=>zMeasures,
40
+ zCrosshairRect: ()=>zCrosshairRect,
39
41
  FoldMeasureName: ()=>FoldMeasureName,
40
42
  darkTheme: ()=>darkTheme,
43
+ createNumFormatter: ()=>createNumFormatter,
41
44
  columnPercentAdvancedPipeline: ()=>columnPercentAdvancedPipeline,
42
45
  zAxis: ()=>zAxis,
43
46
  isVTable: ()=>isVTable,
@@ -47,9 +50,12 @@ __webpack_require__.d(__webpack_exports__, {
47
50
  zDatasetReshapeInfo: ()=>zDatasetReshapeInfo,
48
51
  zFoldInfo: ()=>zFoldInfo,
49
52
  zYBandAxis: ()=>zYBandAxis,
53
+ zAreaStyle: ()=>zAreaStyle,
50
54
  ORIGINAL_DATA: ()=>ORIGINAL_DATA,
51
- zYLinearAxis: ()=>zYLinearAxis,
55
+ zAnnotationHorizontalLine: ()=>zAnnotationHorizontalLine,
56
+ zAnnotationArea: ()=>zAnnotationArea,
52
57
  zMarkStyle: ()=>zMarkStyle,
58
+ zYLinearAxis: ()=>zYLinearAxis,
53
59
  Separator: ()=>Separator,
54
60
  columnAdvancedPipeline: ()=>columnAdvancedPipeline,
55
61
  columnParallelSpecPipeline: ()=>columnParallelSpecPipeline,
@@ -59,12 +65,16 @@ __webpack_require__.d(__webpack_exports__, {
59
65
  lightTheme: ()=>lightTheme,
60
66
  registerColumnParallel: ()=>registerColumnParallel,
61
67
  zDimension: ()=>zDimension,
68
+ zPointStyle: ()=>zPointStyle,
62
69
  isPivotChart: ()=>isPivotChart,
63
70
  zCustomTheme: ()=>zCustomTheme,
71
+ zLineStyle: ()=>zLineStyle,
64
72
  zXBandAxis: ()=>zXBandAxis,
65
73
  dataReshapeFor1D1M: ()=>dataReshapeFor1D1M,
66
74
  registerArea: ()=>registerArea,
75
+ findMeasureById: ()=>findMeasureById,
67
76
  zDataset: ()=>zDataset,
77
+ zNumFormat: ()=>zNumFormat,
68
78
  barPercentAdvancedPipeline: ()=>barPercentAdvancedPipeline,
69
79
  areaPercentAdvancedPipeline: ()=>areaPercentAdvancedPipeline,
70
80
  zBackgroundColor: ()=>zBackgroundColor,
@@ -85,11 +95,13 @@ __webpack_require__.d(__webpack_exports__, {
85
95
  columnParallelAdvancedPipeline: ()=>columnParallelAdvancedPipeline,
86
96
  registerColumnPercent: ()=>registerColumnPercent,
87
97
  registerBarPercent: ()=>registerBarPercent,
98
+ zCrosshairLine: ()=>zCrosshairLine,
88
99
  foldMeasures: ()=>foldMeasures,
89
100
  dataReshapeFor2D1M: ()=>dataReshapeFor2D1M,
90
101
  registerLightTheme: ()=>registerLightTheme,
102
+ zStackCornerRadius: ()=>zStackCornerRadius,
91
103
  registerDarkTheme: ()=>registerDarkTheme,
92
- zChartType: ()=>zChartType,
104
+ zAnnotationVerticalLine: ()=>zAnnotationVerticalLine,
93
105
  barParallelAdvancedPipeline: ()=>barParallelAdvancedPipeline,
94
106
  FoldMeasureValue: ()=>FoldMeasureValue,
95
107
  barPercentSpecPipeline: ()=>barPercentSpecPipeline,
@@ -97,13 +109,14 @@ __webpack_require__.d(__webpack_exports__, {
97
109
  pieSpecPipeline: ()=>pieSpecPipeline,
98
110
  barSpecPipeline: ()=>barSpecPipeline,
99
111
  lineSpecPipeline: ()=>lineSpecPipeline,
100
- zTooltip: ()=>zTooltip,
101
- zBaseConfig: ()=>zBaseConfig,
112
+ zChartType: ()=>zChartType,
113
+ createFormatter: ()=>createFormatter,
102
114
  unfoldDimensions: ()=>unfoldDimensions,
103
115
  areaAdvancedPipeline: ()=>areaAdvancedPipeline,
104
116
  areaPercentSpecPipeline: ()=>areaPercentSpecPipeline,
105
117
  Builder: ()=>Builder,
106
118
  barParallelSpecPipeline: ()=>barParallelSpecPipeline,
119
+ columnPercentSpecPipeline: ()=>columnPercentSpecPipeline,
107
120
  registerAll: ()=>all_registerAll
108
121
  });
109
122
  const initAdvancedVSeed = (advancedVSeed, context)=>{
@@ -175,16 +188,16 @@ const autoMeasureGroup = (advancedVSeed, context)=>{
175
188
  const measureGroups = [];
176
189
  for (const measure of measures)if ('children' in measure) {
177
190
  if (currentGroup.children?.length) {
178
- currentGroup.id = currentGroup.children.map((item)=>item.id).join('-');
179
191
  currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
192
+ currentGroup.id = currentGroup.alias + currentGroup.children.map((item)=>item.id).join('-');
180
193
  measureGroups.push(currentGroup);
181
194
  currentGroup = createEmptyMeasureGroup();
182
195
  }
183
196
  measureGroups.push(measure);
184
197
  } else currentGroup.children?.push(measure);
185
198
  if (currentGroup.children?.length) {
186
- currentGroup.id = currentGroup.children.map((item)=>item.id).join('-');
187
199
  currentGroup.alias = currentGroup.children.map((item)=>item.alias).join('-');
200
+ currentGroup.id = currentGroup.alias + currentGroup.children.map((item)=>item.id).join('-');
188
201
  measureGroups.push(currentGroup);
189
202
  currentGroup = createEmptyMeasureGroup();
190
203
  }
@@ -668,7 +681,28 @@ const lineConfig = (advancedVSeed, context)=>{
668
681
  };
669
682
  const config = (0, external_remeda_namespaceObject.pick)(vseed, [
670
683
  'xAxis',
671
- 'yAxis'
684
+ 'yAxis',
685
+ 'crosshairLine'
686
+ ]);
687
+ result.config = {
688
+ ...result.config || {},
689
+ [chartType]: {
690
+ ...config
691
+ }
692
+ };
693
+ return result;
694
+ };
695
+ const columnConfig = (advancedVSeed, context)=>{
696
+ const { vseed } = context;
697
+ const { chartType } = vseed;
698
+ const result = {
699
+ ...advancedVSeed
700
+ };
701
+ const config = (0, external_remeda_namespaceObject.pick)(vseed, [
702
+ 'xAxis',
703
+ 'yAxis',
704
+ 'crosshairRect',
705
+ 'stackCornerRadius'
672
706
  ]);
673
707
  result.config = {
674
708
  ...result.config || {},
@@ -693,14 +727,13 @@ const pieConfig = (advancedVSeed, context)=>{
693
727
  };
694
728
  return result;
695
729
  };
696
- const barConfig = lineConfig;
697
- const barParallelConfig = lineConfig;
698
- const barPercentConfig = lineConfig;
699
- const columnConfig = lineConfig;
700
- const columnParallelConfig = lineConfig;
701
- const columnPercentConfig = lineConfig;
702
730
  const areaConfig = lineConfig;
703
731
  const areaPercentConfig = lineConfig;
732
+ const barConfig = columnConfig;
733
+ const barParallelConfig = columnConfig;
734
+ const barPercentConfig = columnConfig;
735
+ const columnParallelConfig = columnConfig;
736
+ const columnPercentConfig = columnConfig;
704
737
  const vchartTheme = (advancedVSeed, context)=>{
705
738
  const { customTheme, vseed } = context;
706
739
  const { theme = 'light', chartType } = vseed;
@@ -739,7 +772,10 @@ const pivotAdapter = (pipeline, pivotPipeline)=>(advancedVSeed, context)=>{
739
772
  const markStyle_markStyle = (advancedVSeed, context)=>{
740
773
  const { vseed } = context;
741
774
  const markStyle = (0, external_remeda_namespaceObject.pick)(vseed, [
742
- 'barStyle'
775
+ 'barStyle',
776
+ 'pointStyle',
777
+ 'lineStyle',
778
+ 'areaStyle'
743
779
  ]);
744
780
  return {
745
781
  ...advancedVSeed,
@@ -749,7 +785,10 @@ const markStyle_markStyle = (advancedVSeed, context)=>{
749
785
  const annotation_annotation = (advancedVSeed, context)=>{
750
786
  const { vseed } = context;
751
787
  const annotation = (0, external_remeda_namespaceObject.pick)(vseed, [
752
- 'annotationPoint'
788
+ 'annotationPoint',
789
+ 'annotationHorizontalLine',
790
+ 'annotationVerticalLine',
791
+ 'annotationArea'
753
792
  ]);
754
793
  return {
755
794
  ...advancedVSeed,
@@ -769,6 +808,7 @@ const lineAdvancedPipeline = [
769
808
  vchartBaseConfig,
770
809
  lineConfig,
771
810
  vchartTheme,
811
+ markStyle_markStyle,
772
812
  annotation_annotation
773
813
  ];
774
814
  const barAdvancedPipeline = [
@@ -880,6 +920,7 @@ const areaAdvancedPipeline = [
880
920
  areaConfig,
881
921
  vchartBaseConfig,
882
922
  vchartTheme,
923
+ markStyle_markStyle,
883
924
  annotation_annotation
884
925
  ];
885
926
  const areaPercentAdvancedPipeline = [
@@ -895,6 +936,7 @@ const areaPercentAdvancedPipeline = [
895
936
  areaPercentConfig,
896
937
  vchartBaseConfig,
897
938
  vchartTheme,
939
+ markStyle_markStyle,
898
940
  annotation_annotation
899
941
  ];
900
942
  const pieAdvancedPipeline = [
@@ -1185,7 +1227,15 @@ const xBand = (spec, context)=>{
1185
1227
  lineWidth: line?.lineWidth,
1186
1228
  stroke: line?.lineColor
1187
1229
  }
1188
- }
1230
+ },
1231
+ paddingInner: [
1232
+ 0.15,
1233
+ 0.1
1234
+ ],
1235
+ paddingOuter: [
1236
+ 0.075,
1237
+ 0.1
1238
+ ]
1189
1239
  };
1190
1240
  result.axes = [
1191
1241
  ...result.axes,
@@ -1193,6 +1243,8 @@ const xBand = (spec, context)=>{
1193
1243
  ];
1194
1244
  return result;
1195
1245
  };
1246
+ const ANNOTATION_Z_INDEX = 1000;
1247
+ const LINEAR_AXIS_INNER_OFFSET_TOP = 5;
1196
1248
  const xLinear = (spec, context)=>{
1197
1249
  const result = {
1198
1250
  ...spec
@@ -1261,6 +1313,9 @@ const xLinear = (spec, context)=>{
1261
1313
  lineWidth: line?.lineWidth,
1262
1314
  stroke: line?.lineColor
1263
1315
  }
1316
+ },
1317
+ innerOffset: {
1318
+ top: LINEAR_AXIS_INNER_OFFSET_TOP
1264
1319
  }
1265
1320
  };
1266
1321
  result.axes = [
@@ -1348,7 +1403,15 @@ const yBand = (spec, context)=>{
1348
1403
  lineWidth: line?.lineWidth,
1349
1404
  stroke: line?.lineColor
1350
1405
  }
1351
- }
1406
+ },
1407
+ paddingInner: [
1408
+ 0.15,
1409
+ 0.1
1410
+ ],
1411
+ paddingOuter: [
1412
+ 0.075,
1413
+ 0.1
1414
+ ]
1352
1415
  };
1353
1416
  result.axes = [
1354
1417
  ...result.axes,
@@ -1424,6 +1487,9 @@ const yLinear = (spec, context)=>{
1424
1487
  lineWidth: line?.lineWidth,
1425
1488
  stroke: line?.lineColor
1426
1489
  }
1490
+ },
1491
+ innerOffset: {
1492
+ top: LINEAR_AXIS_INNER_OFFSET_TOP
1427
1493
  }
1428
1494
  };
1429
1495
  result.axes = [
@@ -1446,6 +1512,15 @@ const stackInverse = (spec)=>{
1446
1512
  result.stackInverse = true;
1447
1513
  return result;
1448
1514
  };
1515
+ const stackCornerRadius_stackCornerRadius = (spec, context)=>{
1516
+ const { advancedVSeed, vseed } = context;
1517
+ const { chartType } = vseed;
1518
+ const stackCornerRadius = advancedVSeed.config?.[chartType]?.stackCornerRadius;
1519
+ return {
1520
+ ...spec,
1521
+ stackCornerRadius
1522
+ };
1523
+ };
1449
1524
  const background_backgroundColor = (spec, context)=>{
1450
1525
  const result = {
1451
1526
  ...spec
@@ -1459,6 +1534,43 @@ const background_backgroundColor = (spec, context)=>{
1459
1534
  background: backgroundColor
1460
1535
  };
1461
1536
  };
1537
+ function findMeasureById(measures, id) {
1538
+ if (!measures) return;
1539
+ const stack = [
1540
+ ...measures
1541
+ ];
1542
+ while(stack.length > 0){
1543
+ const current = stack.pop();
1544
+ if (!current) continue;
1545
+ if (current.id === id && !('children' in current)) return current;
1546
+ if ('children' in current && current.children) stack.push(...current.children);
1547
+ }
1548
+ }
1549
+ const createNumFormatter = (format)=>{
1550
+ const { type = 'number', ratio = 1, symbol = '', thousandSeparator = true, decimalPlaces = 2, round = 'round', prefix = '', suffix = '' } = format || {};
1551
+ return (value)=>{
1552
+ let num = Number(value);
1553
+ let typeSymbol = '';
1554
+ if (Number.isNaN(num)) return num.toString();
1555
+ if ('percent' === type) {
1556
+ num *= 100;
1557
+ typeSymbol = '%';
1558
+ } else if ('permille' === type) {
1559
+ num *= 1000;
1560
+ typeSymbol = "\u2030";
1561
+ } else if ('number' === type) num /= ratio || 1;
1562
+ const multiplier = 10 ** decimalPlaces;
1563
+ num = Math[round](num * multiplier) / multiplier;
1564
+ let numStr = num.toFixed(decimalPlaces);
1565
+ if (thousandSeparator) {
1566
+ const parts = numStr.split('.');
1567
+ parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ',');
1568
+ numStr = parts.join('.');
1569
+ }
1570
+ return `${prefix}${numStr}${typeSymbol}${symbol}${suffix}`;
1571
+ };
1572
+ };
1573
+ const createFormatter = (format)=>createNumFormatter(format);
1462
1574
  const defaultTooltip = {
1463
1575
  enable: true
1464
1576
  };
@@ -1467,11 +1579,55 @@ const tooltip_tooltip = (spec, context)=>{
1467
1579
  ...spec
1468
1580
  };
1469
1581
  const { advancedVSeed } = context;
1582
+ const { measures, datasetReshapeInfo } = advancedVSeed;
1470
1583
  const baseConfig = advancedVSeed.baseConfig.vchart;
1471
1584
  const { tooltip = defaultTooltip } = baseConfig;
1472
1585
  const { enable } = tooltip;
1586
+ const { measureId, measureName, measureValue } = datasetReshapeInfo[0].foldInfo;
1473
1587
  result.tooltip = {
1474
- visible: enable
1588
+ visible: enable,
1589
+ mark: {
1590
+ content: [
1591
+ {
1592
+ visible: true,
1593
+ key: (datum)=>datum && datum[measureName] || '',
1594
+ value: (datum)=>{
1595
+ if (!datum) return '';
1596
+ const value = datum[measureValue];
1597
+ const id = datum[measureId];
1598
+ const measure = findMeasureById(measures, id);
1599
+ if (!measure) return String(value);
1600
+ const { format = {}, autoFormat = true } = measure;
1601
+ if (format || autoFormat) {
1602
+ const formatter = createFormatter(format);
1603
+ return formatter(value);
1604
+ }
1605
+ return String(value);
1606
+ }
1607
+ }
1608
+ ]
1609
+ },
1610
+ dimension: {
1611
+ content: [
1612
+ {
1613
+ visible: true,
1614
+ key: (datum)=>datum && datum[measureName] || '',
1615
+ value: (datum)=>{
1616
+ if (!datum) return '';
1617
+ const value = datum[measureValue];
1618
+ const id = datum[measureId];
1619
+ const measure = findMeasureById(measures, id);
1620
+ if (!measure) return String(value);
1621
+ const { format = {}, autoFormat = true } = measure;
1622
+ if (format || autoFormat) {
1623
+ const formatter = createFormatter(format);
1624
+ return formatter(value);
1625
+ }
1626
+ return String(value);
1627
+ }
1628
+ }
1629
+ ]
1630
+ }
1475
1631
  };
1476
1632
  return result;
1477
1633
  };
@@ -1480,12 +1636,24 @@ const label_label = (spec, context)=>{
1480
1636
  ...spec
1481
1637
  };
1482
1638
  const { advancedVSeed } = context;
1639
+ const { measures, datasetReshapeInfo } = advancedVSeed;
1483
1640
  const baseConfig = advancedVSeed.baseConfig.vchart;
1484
1641
  if (!baseConfig || !baseConfig.label) return result;
1642
+ const { measureId } = datasetReshapeInfo[0].foldInfo;
1485
1643
  const { label } = baseConfig;
1486
1644
  const { enable } = label;
1487
1645
  result.label = {
1488
- visible: enable
1646
+ visible: enable,
1647
+ formatMethod: (value, datum)=>{
1648
+ const id = datum[measureId];
1649
+ const measure = findMeasureById(measures, id);
1650
+ if (!measure) return value;
1651
+ const { format = {}, autoFormat = true } = measure;
1652
+ if (format || autoFormat) {
1653
+ const formatter = createFormatter(format);
1654
+ return formatter(value);
1655
+ }
1656
+ }
1489
1657
  };
1490
1658
  return result;
1491
1659
  };
@@ -1788,6 +1956,7 @@ const pivotGridStyle = (spec)=>{
1788
1956
  ...spec
1789
1957
  };
1790
1958
  const transparent = 'rgba(0,0,0,0)';
1959
+ const hoverBackgroundColor = 'rgba(178,186,207, 0.2)';
1791
1960
  return {
1792
1961
  ...result,
1793
1962
  theme: {
@@ -1806,7 +1975,10 @@ const pivotGridStyle = (spec)=>{
1806
1975
  0,
1807
1976
  1,
1808
1977
  0
1809
- ]
1978
+ ],
1979
+ hover: {
1980
+ cellBgColor: 'transparent'
1981
+ }
1810
1982
  },
1811
1983
  headerStyle: {
1812
1984
  borderColor: 'rgba(0,4,20,0.2)',
@@ -1816,7 +1988,7 @@ const pivotGridStyle = (spec)=>{
1816
1988
  borderLineWidth: 0,
1817
1989
  bgColor: transparent,
1818
1990
  hover: {
1819
- cellBgColor: 'rgba(178,186,207, 0.2)'
1991
+ cellBgColor: hoverBackgroundColor
1820
1992
  }
1821
1993
  },
1822
1994
  rowHeaderStyle: {
@@ -1826,7 +1998,7 @@ const pivotGridStyle = (spec)=>{
1826
1998
  borderLineWidth: 0,
1827
1999
  bgColor: transparent,
1828
2000
  hover: {
1829
- cellBgColor: 'rgba(178,186,207, 0.2)'
2001
+ cellBgColor: hoverBackgroundColor
1830
2002
  }
1831
2003
  },
1832
2004
  cornerHeaderStyle: {
@@ -1843,7 +2015,7 @@ const pivotGridStyle = (spec)=>{
1843
2015
  ],
1844
2016
  bgColor: transparent,
1845
2017
  hover: {
1846
- cellBgColor: ''
2018
+ cellBgColor: hoverBackgroundColor
1847
2019
  }
1848
2020
  },
1849
2021
  cornerRightTopCellStyle: {
@@ -1851,7 +2023,7 @@ const pivotGridStyle = (spec)=>{
1851
2023
  borderLineWidth: 0,
1852
2024
  bgColor: transparent,
1853
2025
  hover: {
1854
- cellBgColor: ''
2026
+ cellBgColor: hoverBackgroundColor
1855
2027
  }
1856
2028
  },
1857
2029
  cornerLeftBottomCellStyle: {
@@ -1859,7 +2031,7 @@ const pivotGridStyle = (spec)=>{
1859
2031
  borderLineWidth: 0,
1860
2032
  bgColor: transparent,
1861
2033
  hover: {
1862
- cellBgColor: ''
2034
+ cellBgColor: hoverBackgroundColor
1863
2035
  }
1864
2036
  },
1865
2037
  cornerRightBottomCellStyle: {
@@ -1867,7 +2039,7 @@ const pivotGridStyle = (spec)=>{
1867
2039
  borderLineWidth: 0,
1868
2040
  bgColor: transparent,
1869
2041
  hover: {
1870
- cellBgColor: ''
2042
+ cellBgColor: hoverBackgroundColor
1871
2043
  }
1872
2044
  },
1873
2045
  rightFrozenStyle: {
@@ -1875,7 +2047,7 @@ const pivotGridStyle = (spec)=>{
1875
2047
  borderLineWidth: 0,
1876
2048
  bgColor: transparent,
1877
2049
  hover: {
1878
- cellBgColor: 'rgba(178,186,207, 0.2)'
2050
+ cellBgColor: hoverBackgroundColor
1879
2051
  }
1880
2052
  },
1881
2053
  bottomFrozenStyle: {
@@ -1883,7 +2055,7 @@ const pivotGridStyle = (spec)=>{
1883
2055
  borderLineWidth: 0,
1884
2056
  bgColor: transparent,
1885
2057
  hover: {
1886
- cellBgColor: 'rgba(178,186,207, 0.2)'
2058
+ cellBgColor: hoverBackgroundColor
1887
2059
  }
1888
2060
  },
1889
2061
  selectionStyle: {
@@ -1931,19 +2103,23 @@ const pivotRowDimensions = (spec, context)=>{
1931
2103
  rows: rows
1932
2104
  };
1933
2105
  };
1934
- const selector_selector = (datum, selector)=>{
2106
+ const selector_selector = (vchartDatum, selector)=>{
1935
2107
  if (!selector) return true;
2108
+ const vchartKeys = Object.keys(vchartDatum).filter((k)=>k.toLocaleLowerCase().startsWith('__vchart'));
2109
+ const datum = (0, external_remeda_namespaceObject.omit)(vchartDatum, vchartKeys);
1936
2110
  const selectors = Array.isArray(selector) ? selector : [
1937
2111
  selector
1938
2112
  ];
1939
2113
  for (const selector of selectors)if (isValueSelector(selector)) {
1940
2114
  if (Object.values(datum).find((v)=>v === selector)) return true;
1941
2115
  } else if (isMeasureSelector(selector)) {
2116
+ const op = selector.operator || selector.op;
1942
2117
  const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
1943
2118
  selector.value
1944
2119
  ];
1945
- switch(selector.operator){
2120
+ switch(op){
1946
2121
  case '=':
2122
+ case '==':
1947
2123
  if (datum[selector.field] === selectorValueArr[0]) return true;
1948
2124
  break;
1949
2125
  case '!=':
@@ -1968,11 +2144,20 @@ const selector_selector = (datum, selector)=>{
1968
2144
  break;
1969
2145
  }
1970
2146
  } else if (isDimensionSelector(selector)) {
2147
+ const op = selector.operator || selector.op;
1971
2148
  const selectorValueArr = Array.isArray(selector.value) ? selector.value : [
1972
2149
  selector.value
1973
2150
  ];
1974
- if ('in' === selector.operator && selectorValueArr.includes(datum[selector.field])) return true;
1975
- if ('not in' === selector.operator && !selectorValueArr.includes(datum[selector.field])) return true;
2151
+ switch(op){
2152
+ case 'in':
2153
+ if (selectorValueArr.includes(datum[selector.field])) return true;
2154
+ break;
2155
+ case 'not in':
2156
+ if (!selectorValueArr.includes(datum[selector.field])) return true;
2157
+ break;
2158
+ default:
2159
+ break;
2160
+ }
1976
2161
  } else if (isPartialDatumSelector(selector)) {
1977
2162
  if (Object.keys(selector).every((key)=>datum[key] === selector[key])) return true;
1978
2163
  }
@@ -1980,73 +2165,257 @@ const selector_selector = (datum, selector)=>{
1980
2165
  };
1981
2166
  const isValueSelector = (selector)=>'string' == typeof selector || 'number' == typeof selector;
1982
2167
  const isPartialDatumSelector = (selector)=>'object' == typeof selector && null !== selector;
1983
- const isMeasureSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && 'operator' in selector && 'value' in selector && [
2168
+ const isMeasureSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && ('operator' in selector || 'op' in selector) && 'value' in selector && ([
2169
+ '=',
2170
+ '==',
2171
+ '!=',
2172
+ '>',
2173
+ '<',
2174
+ '>=',
2175
+ '<=',
2176
+ 'between'
2177
+ ].includes(selector.operator) || [
1984
2178
  '=',
2179
+ '==',
1985
2180
  '!=',
1986
2181
  '>',
1987
2182
  '<',
1988
2183
  '>=',
1989
2184
  '<=',
1990
2185
  'between'
1991
- ].includes(selector.operator);
1992
- const isDimensionSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && 'operator' in selector && 'value' in selector && [
2186
+ ].includes(selector.op));
2187
+ const isDimensionSelector = (selector)=>'object' == typeof selector && null !== selector && 'field' in selector && ('operator' in selector || 'op' in selector) && 'value' in selector && ([
2188
+ 'in',
2189
+ 'not in'
2190
+ ].includes(selector.operator) || [
1993
2191
  'in',
1994
2192
  'not in'
1995
- ].includes(selector.operator);
2193
+ ].includes(selector.op));
1996
2194
  const barStyle_barStyle = (spec, context)=>{
1997
2195
  const { advancedVSeed } = context;
1998
2196
  const { markStyle, encoding } = advancedVSeed;
1999
2197
  const { barStyle } = markStyle;
2000
- if (!barStyle) return spec;
2001
2198
  const result = {
2002
- ...spec
2199
+ ...spec,
2200
+ bar: {
2201
+ state: {
2202
+ hover: {
2203
+ stroke: (datum, context)=>{
2204
+ const field = encoding[0]?.group?.[0];
2205
+ const color = context.seriesColor(datum[field]);
2206
+ return color;
2207
+ },
2208
+ lineWidth: 4,
2209
+ fillOpacity: 0.6
2210
+ }
2211
+ }
2212
+ }
2003
2213
  };
2004
- const { selector: barSelector, barBorderColor, barBorderStyle, barBorderWidth, barColor, barColorOpacity, barRadius } = barStyle;
2214
+ if (!barStyle) return result;
2215
+ const barStyles = Array.isArray(barStyle) ? barStyle : [
2216
+ barStyle
2217
+ ];
2218
+ const customMap = barStyles.reduce((result, style, index)=>{
2219
+ const { barBorderColor, barBorderStyle, barBorderWidth, barColor, barColorOpacity, barRadius } = style;
2220
+ const lineDash = 'dashed' === barBorderStyle ? [
2221
+ 5,
2222
+ 2
2223
+ ] : 'dotted' === barBorderStyle ? [
2224
+ 2,
2225
+ 5
2226
+ ] : [
2227
+ 0,
2228
+ 0
2229
+ ];
2230
+ return {
2231
+ ...result,
2232
+ [`custom${index + 1}`]: {
2233
+ level: index + 1,
2234
+ filter: (datum)=>{
2235
+ if (selector_selector(datum, style.selector)) return true;
2236
+ return false;
2237
+ },
2238
+ style: {
2239
+ fill: barColor,
2240
+ fillOpacity: barColorOpacity,
2241
+ stroke: barBorderColor,
2242
+ lineWidth: barBorderWidth,
2243
+ lineDash: lineDash,
2244
+ cornerRadius: barRadius
2245
+ }
2246
+ }
2247
+ };
2248
+ }, {});
2005
2249
  return {
2006
2250
  ...result,
2007
2251
  bar: {
2008
- style: {
2009
- fill: barColor ? (datum, context)=>{
2010
- if (selector_selector(datum, barSelector)) return barColor;
2011
- return context.seriesColor(datum[encoding[0]?.group?.[0]]);
2012
- } : void 0,
2013
- fillOpacity: barColorOpacity ? (datum)=>{
2014
- if (selector_selector(datum, barSelector)) return barColorOpacity;
2015
- return 1;
2016
- } : void 0,
2017
- stroke: barBorderColor ? (datum, context)=>{
2018
- if (selector_selector(datum, barSelector)) return barBorderColor;
2019
- return context.seriesColor(datum[encoding[0]?.group?.[0]]);
2020
- } : void 0,
2021
- lineWidth: barBorderWidth ? (datum)=>{
2022
- if (selector_selector(datum, barSelector)) return barBorderWidth;
2023
- return 0;
2024
- } : void 0,
2025
- lineDash: barBorderStyle ? (datum)=>{
2026
- if (selector_selector(datum, barSelector)) {
2027
- if ('solid' === barBorderStyle) ;
2028
- else if ('dashed' === barBorderStyle) return [
2029
- 5,
2030
- 5
2031
- ];
2032
- else if ('dotted' === barBorderStyle) return [
2033
- 1,
2034
- 5
2035
- ];
2036
- }
2037
- return [
2038
- 0,
2039
- 0
2040
- ];
2041
- } : void 0,
2042
- cornerRadius: barRadius ? (datum)=>{
2043
- if (selector_selector(datum, barSelector)) return barRadius;
2044
- return 0;
2045
- } : void 0
2252
+ state: {
2253
+ ...customMap
2254
+ }
2255
+ }
2256
+ };
2257
+ };
2258
+ const pointStyle_pointStyle = (spec, context)=>{
2259
+ const { advancedVSeed } = context;
2260
+ const { markStyle } = advancedVSeed;
2261
+ const { pointStyle } = markStyle;
2262
+ const result = {
2263
+ ...spec,
2264
+ point: {
2265
+ state: {
2266
+ dimension_hover: {
2267
+ scaleX: 1.4,
2268
+ scaleY: 1.4
2269
+ }
2270
+ }
2271
+ }
2272
+ };
2273
+ if (!pointStyle) return result;
2274
+ const pointStyles = Array.isArray(pointStyle) ? pointStyle : [
2275
+ pointStyle
2276
+ ];
2277
+ const customMap = pointStyles.reduce((result, style, index)=>{
2278
+ const { pointBorderColor, pointBorderStyle, pointBorderWidth, pointColor, pointColorOpacity, pointSize } = style;
2279
+ const lineDash = 'dashed' === pointBorderStyle ? [
2280
+ 5,
2281
+ 2
2282
+ ] : 'dotted' === pointBorderStyle ? [
2283
+ 2,
2284
+ 5
2285
+ ] : [
2286
+ 0,
2287
+ 0
2288
+ ];
2289
+ return {
2290
+ ...result,
2291
+ [`custom${index + 1}`]: {
2292
+ level: index + 1,
2293
+ filter: (datum)=>{
2294
+ if (selector_selector(datum, style.selector)) return true;
2295
+ return false;
2296
+ },
2297
+ style: {
2298
+ size: pointSize,
2299
+ fill: pointColor,
2300
+ fillOpacity: pointColorOpacity,
2301
+ stroke: pointBorderColor,
2302
+ lineWidth: pointBorderWidth,
2303
+ lineDash: lineDash
2304
+ }
2305
+ }
2306
+ };
2307
+ }, {});
2308
+ return {
2309
+ ...result,
2310
+ point: {
2311
+ state: {
2312
+ ...customMap
2313
+ }
2314
+ }
2315
+ };
2316
+ };
2317
+ const lineStyle_lineStyle = (spec, context)=>{
2318
+ const { advancedVSeed } = context;
2319
+ const { markStyle, encoding, dataset } = advancedVSeed;
2320
+ const { lineStyle } = markStyle;
2321
+ if (!lineStyle) return spec;
2322
+ const result = {
2323
+ ...spec
2324
+ };
2325
+ const lineStyles = Array.isArray(lineStyle) ? lineStyle : [
2326
+ lineStyle
2327
+ ];
2328
+ const group = encoding[0]?.group?.[0];
2329
+ const lineGroups = (0, external_remeda_namespaceObject.groupBy)(dataset, (d)=>d[group ?? '']);
2330
+ const customMap = lineStyles.reduce((result, style, index)=>{
2331
+ const { lineColor, lineColorOpacity, lineSmooth, lineStyle, lineWidth } = style;
2332
+ const dashSegment = (lineWidth ?? 2) * 2;
2333
+ const dashGap = lineWidth ?? 2;
2334
+ const lineDash = 'dashed' === lineStyle ? [
2335
+ dashSegment,
2336
+ dashSegment
2337
+ ] : 'dotted' === lineStyle ? [
2338
+ dashGap / 2,
2339
+ 2 * dashGap
2340
+ ] : [
2341
+ 0,
2342
+ 0
2343
+ ];
2344
+ const curveType = lineSmooth ? 'monotone' : 'linear';
2345
+ return {
2346
+ ...result,
2347
+ [`custom${index + 1}`]: {
2348
+ level: index + 1,
2349
+ filter: (datum)=>{
2350
+ const lineData = lineGroups[datum[group ?? '']];
2351
+ for (const d of lineData)if (selector_selector(d, style.selector)) return true;
2352
+ return false;
2353
+ },
2354
+ style: {
2355
+ curveType: curveType,
2356
+ fill: lineColor,
2357
+ fillOpacity: lineColorOpacity,
2358
+ stroke: lineColor,
2359
+ lineWidth: lineWidth,
2360
+ lineDash: lineDash
2361
+ }
2362
+ }
2363
+ };
2364
+ }, {});
2365
+ return {
2366
+ ...result,
2367
+ line: {
2368
+ state: {
2369
+ ...customMap
2370
+ }
2371
+ }
2372
+ };
2373
+ };
2374
+ const areaStyle_areaStyle = (spec, context)=>{
2375
+ const { advancedVSeed } = context;
2376
+ const { markStyle, encoding, dataset } = advancedVSeed;
2377
+ const { areaStyle } = markStyle;
2378
+ if (!areaStyle) return spec;
2379
+ const result = {
2380
+ ...spec
2381
+ };
2382
+ const areaStyles = Array.isArray(areaStyle) ? areaStyle : [
2383
+ areaStyle
2384
+ ];
2385
+ const group = encoding[0]?.group?.[0];
2386
+ const lineGroups = (0, external_remeda_namespaceObject.groupBy)(dataset, (d)=>d[group ?? '']);
2387
+ const customMap = areaStyles.reduce((result, style, index)=>{
2388
+ const { areaColor, areaColorOpacity } = style;
2389
+ return {
2390
+ ...result,
2391
+ [`custom${index + 1}`]: {
2392
+ level: index + 1,
2393
+ filter: (datum)=>{
2394
+ const lineData = lineGroups[datum[group ?? '']];
2395
+ for (const d of lineData)if (selector_selector(d, style.selector)) return true;
2396
+ return false;
2397
+ },
2398
+ style: {
2399
+ fill: areaColor,
2400
+ fillOpacity: areaColorOpacity
2401
+ }
2402
+ }
2403
+ };
2404
+ }, {});
2405
+ return {
2406
+ ...result,
2407
+ area: {
2408
+ state: {
2409
+ ...customMap
2046
2410
  }
2047
2411
  }
2048
2412
  };
2049
2413
  };
2414
+ const isSubset = (sub, obj)=>Object.entries(sub).every(([key, value])=>{
2415
+ if ('string' == typeof value) return obj[key] === value;
2416
+ if ('number' == typeof value) return obj[key] === value;
2417
+ return true;
2418
+ });
2050
2419
  const annotationPoint_annotationPoint = (spec, context)=>{
2051
2420
  const { advancedVSeed } = context;
2052
2421
  const { annotation } = advancedVSeed;
@@ -2056,24 +2425,19 @@ const annotationPoint_annotationPoint = (spec, context)=>{
2056
2425
  annotationPoint
2057
2426
  ];
2058
2427
  const markPoint = annotationPointList.flatMap((annotationPoint)=>{
2059
- const { selector: selectorPoint, text = '', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'center', textBaseline = 'middle', backgroundBorderColor, backgroundBorderRadius = 4, backgroundBorderWidth = 1, backgroundColor = '#212121', backgroundPadding = 4, backgroundVisible = true, offsetX = 0, offsetY = 0 } = annotationPoint;
2428
+ const { selector: selectorPoint, text = '', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'center', textBaseline = 'middle', backgroundBorderColor, backgroundBorderRadius = 4, backgroundBorderWidth = 1, backgroundColor = '#212121', backgroundPadding = 2, backgroundVisible = true, offsetX = 0, offsetY = 0 } = annotationPoint;
2060
2429
  const dataset = advancedVSeed.dataset.flat();
2061
2430
  const selectedData = dataset.filter((datum)=>selector_selector(datum, selectorPoint));
2062
2431
  return selectedData.map((datum)=>({
2432
+ zIndex: ANNOTATION_Z_INDEX,
2063
2433
  regionRelative: true,
2064
2434
  position: (data, context)=>{
2065
2435
  const targetDatum = data.find((item)=>isSubset(datum, item));
2066
2436
  if (targetDatum) {
2067
2437
  const { x, y } = context.dataToPosition(targetDatum);
2068
- const xBandWidth = context.scaleX?.bandwidth?.();
2069
- const yBandWidth = context.scaleY?.bandwidth?.();
2070
- if (xBandWidth) return {
2071
- x: x,
2072
- y: y
2073
- };
2074
- if (yBandWidth) return {
2438
+ return {
2075
2439
  x,
2076
- y: y
2440
+ y
2077
2441
  };
2078
2442
  }
2079
2443
  },
@@ -2112,67 +2476,632 @@ const annotationPoint_annotationPoint = (spec, context)=>{
2112
2476
  markPoint
2113
2477
  };
2114
2478
  };
2115
- const isSubset = (sub, obj)=>Object.entries(sub).every(([key, value])=>{
2116
- if ('string' == typeof value) return obj[key] === value;
2117
- if ('number' == typeof value) return obj[key] === value;
2118
- return true;
2479
+ const annotationVerticalLine_annotationVerticalLine = (spec, context)=>{
2480
+ const { advancedVSeed } = context;
2481
+ const { annotation, encoding } = advancedVSeed;
2482
+ if (!annotation || !annotation.annotationVerticalLine) return spec;
2483
+ const { annotationVerticalLine } = annotation;
2484
+ const annotationVerticalLineList = Array.isArray(annotationVerticalLine) ? annotationVerticalLine : [
2485
+ annotationVerticalLine
2486
+ ];
2487
+ const positionMap = {
2488
+ outsideStart: 'start',
2489
+ outsideEnd: 'end',
2490
+ outsideMiddle: 'middle',
2491
+ insideStart: 'insideStartTop',
2492
+ insideMiddle: 'insideMiddleTop',
2493
+ insideEnd: 'insideEndTop'
2494
+ };
2495
+ const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine)=>{
2496
+ const { selector: selectorPoint, xValue, text = '', textPosition = 'insideEnd', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'right', textBaseline = 'top', backgroundBorderColor, backgroundBorderRadius = 4, backgroundBorderWidth = 1, backgroundColor = '#212121', backgroundPadding = 2, backgroundVisible = true, offsetX = 0, offsetY = 0, lineColor = '#212121', lineStyle = 'dashed', lineVisible = true, lineWidth = 1 } = annotationVerticalLine;
2497
+ const dataset = advancedVSeed.dataset.flat();
2498
+ const generateOneMarkLine = (x)=>({
2499
+ x: x,
2500
+ zIndex: ANNOTATION_Z_INDEX,
2501
+ line: {
2502
+ visible: lineVisible,
2503
+ style: {
2504
+ offsetX,
2505
+ offsetY,
2506
+ stroke: lineColor,
2507
+ lineStyle: lineStyle,
2508
+ lineWidth: lineWidth,
2509
+ lineDash: 'dashed' === lineStyle ? [
2510
+ 5,
2511
+ 2
2512
+ ] : 'dotted' === lineStyle ? [
2513
+ 2,
2514
+ 5
2515
+ ] : [
2516
+ 0
2517
+ ]
2518
+ }
2519
+ },
2520
+ label: {
2521
+ text: text,
2522
+ position: positionMap[textPosition],
2523
+ style: {
2524
+ offsetX,
2525
+ offsetY,
2526
+ visible: true,
2527
+ textAlign: textAlign,
2528
+ textBaseline: textBaseline,
2529
+ fill: textColor,
2530
+ fontSize: textFontSize,
2531
+ fontWeight: textFontWeight
2532
+ },
2533
+ labelBackground: {
2534
+ visible: backgroundVisible,
2535
+ padding: backgroundPadding,
2536
+ style: {
2537
+ offsetX,
2538
+ offsetY,
2539
+ cornerRadius: backgroundBorderRadius ?? 4,
2540
+ fill: backgroundColor,
2541
+ stroke: backgroundBorderColor,
2542
+ strokeWidth: backgroundBorderWidth
2543
+ }
2544
+ }
2545
+ },
2546
+ endSymbol: {
2547
+ visible: true,
2548
+ style: {
2549
+ fill: lineColor
2550
+ }
2551
+ }
2552
+ });
2553
+ if (!selectorPoint && (0, external_remeda_namespaceObject.isArray)(xValue) || (0, external_remeda_namespaceObject.isString)(xValue) || (0, external_remeda_namespaceObject.isNumber)(xValue)) {
2554
+ const xValueArr = Array.isArray(xValue) ? xValue : [
2555
+ xValue
2556
+ ];
2557
+ return xValueArr.map(generateOneMarkLine);
2558
+ }
2559
+ const selectedData = dataset.filter((datum)=>selector_selector(datum, selectorPoint));
2560
+ return selectedData.map((datum)=>{
2561
+ const x = encoding[0]?.x?.[0];
2562
+ if (!x) return {};
2563
+ return generateOneMarkLine(datum[x]);
2564
+ });
2119
2565
  });
2120
- const line_line = [
2121
- initLine,
2122
- color_color,
2123
- background_backgroundColor,
2124
- dataset_dataset,
2125
- xBand,
2126
- yLinear,
2127
- label_label,
2128
- tooltip_tooltip,
2129
- discreteLegend,
2130
- annotationPoint_annotationPoint
2131
- ];
2132
- const pivotLine = [
2133
- initPivot,
2134
- pivotGridStyle,
2135
- pivotIndicators_pivotIndicatorsAsRow,
2136
- datasetPivot,
2137
- pivotIndicators([
2138
- initLine,
2139
- color_color,
2140
- background_backgroundColor,
2141
- datasetPivotPlaceholder,
2142
- xBand,
2143
- yLinear,
2144
- label_label,
2145
- tooltip_tooltip,
2146
- annotationPoint_annotationPoint
2147
- ]),
2148
- pivotRowDimensions,
2149
- pivotColumnDimensions,
2150
- pivotDiscreteLegend
2151
- ];
2152
- const lineSpecPipeline = [
2153
- pivotAdapter_pivotAdapter(line_line, pivotLine)
2154
- ];
2155
- const column = [
2156
- initColumn,
2157
- stackInverse,
2158
- color_color,
2159
- background_backgroundColor,
2160
- dataset_dataset,
2161
- xBand,
2162
- yLinear,
2163
- label_label,
2164
- tooltip_tooltip,
2165
- discreteLegend,
2166
- barStyle_barStyle,
2167
- annotationPoint_annotationPoint
2168
- ];
2169
- const pivotColumn = [
2170
- initPivot,
2171
- pivotGridStyle,
2172
- pivotIndicators_pivotIndicatorsAsRow,
2173
- datasetPivot,
2174
- pivotIndicators([
2566
+ const specMarkLine = spec.markLine || [];
2567
+ const newMarkLine = [
2568
+ ...specMarkLine,
2569
+ ...markLine || []
2570
+ ];
2571
+ return {
2572
+ ...spec,
2573
+ markLine: newMarkLine
2574
+ };
2575
+ };
2576
+ const annotationHorizontalLine_annotationHorizontalLine = (spec, context)=>{
2577
+ const { advancedVSeed } = context;
2578
+ const { annotation, encoding } = advancedVSeed;
2579
+ if (!annotation || !annotation.annotationHorizontalLine) return spec;
2580
+ const { annotationHorizontalLine } = annotation;
2581
+ const annotationVerticalLineList = Array.isArray(annotationHorizontalLine) ? annotationHorizontalLine : [
2582
+ annotationHorizontalLine
2583
+ ];
2584
+ const positionMap = {
2585
+ outsideStart: 'start',
2586
+ outsideEnd: 'end',
2587
+ outsideMiddle: 'middle',
2588
+ insideStart: 'insideStartTop',
2589
+ insideMiddle: 'insideMiddleTop',
2590
+ insideEnd: 'insideEndTop'
2591
+ };
2592
+ const markLine = annotationVerticalLineList.flatMap((annotationVerticalLine)=>{
2593
+ const { selector: selectorPoint, yValue, text = '', textPosition = 'insideEnd', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'center', textBaseline = 'bottom', backgroundBorderColor, backgroundBorderRadius = 4, backgroundBorderWidth = 1, backgroundColor = '#212121', backgroundPadding = 2, backgroundVisible = true, offsetX = 0, offsetY = 0, lineColor = '#212121', lineStyle = 'dashed', lineVisible = true, lineWidth = 1 } = annotationVerticalLine;
2594
+ const dataset = advancedVSeed.dataset.flat();
2595
+ const generateOneMarkLine = (y)=>({
2596
+ y,
2597
+ zIndex: ANNOTATION_Z_INDEX,
2598
+ line: {
2599
+ visible: lineVisible,
2600
+ style: {
2601
+ offsetX,
2602
+ offsetY,
2603
+ stroke: lineColor,
2604
+ lineStyle: lineStyle,
2605
+ lineWidth: lineWidth,
2606
+ lineDash: 'dashed' === lineStyle ? [
2607
+ 5,
2608
+ 2
2609
+ ] : 'dotted' === lineStyle ? [
2610
+ 2,
2611
+ 5
2612
+ ] : [
2613
+ 0
2614
+ ]
2615
+ }
2616
+ },
2617
+ label: {
2618
+ text: text,
2619
+ position: positionMap[textPosition],
2620
+ style: {
2621
+ offsetX,
2622
+ offsetY,
2623
+ visible: true,
2624
+ textAlign: textAlign,
2625
+ textBaseline: textBaseline,
2626
+ fill: textColor,
2627
+ fontSize: textFontSize,
2628
+ fontWeight: textFontWeight
2629
+ },
2630
+ labelBackground: {
2631
+ visible: backgroundVisible,
2632
+ padding: backgroundPadding,
2633
+ style: {
2634
+ offsetX,
2635
+ offsetY,
2636
+ cornerRadius: backgroundBorderRadius ?? 4,
2637
+ fill: backgroundColor,
2638
+ stroke: backgroundBorderColor,
2639
+ strokeWidth: backgroundBorderWidth
2640
+ }
2641
+ }
2642
+ },
2643
+ endSymbol: {
2644
+ visible: true,
2645
+ style: {
2646
+ fill: lineColor
2647
+ }
2648
+ }
2649
+ });
2650
+ if (!selectorPoint && (0, external_remeda_namespaceObject.isArray)(yValue) || (0, external_remeda_namespaceObject.isString)(yValue) || (0, external_remeda_namespaceObject.isNumber)(yValue)) {
2651
+ const yValueArr = Array.isArray(yValue) ? yValue : [
2652
+ yValue
2653
+ ];
2654
+ return yValueArr.map(generateOneMarkLine);
2655
+ }
2656
+ const selectedData = dataset.filter((datum)=>selector_selector(datum, selectorPoint));
2657
+ return selectedData.map((datum)=>{
2658
+ const y = encoding[0]?.y?.[0];
2659
+ if (!y) return {};
2660
+ return generateOneMarkLine(datum[y]);
2661
+ });
2662
+ });
2663
+ const specMarkLine = spec.markLine || [];
2664
+ const newMarkLine = [
2665
+ ...specMarkLine,
2666
+ ...markLine || []
2667
+ ];
2668
+ return {
2669
+ ...spec,
2670
+ markLine: newMarkLine
2671
+ };
2672
+ };
2673
+ const annotationArea_annotationArea = (spec, context)=>{
2674
+ const { advancedVSeed } = context;
2675
+ const { annotation } = advancedVSeed;
2676
+ if (!annotation || !annotation.annotationArea) return spec;
2677
+ const { annotationArea } = annotation;
2678
+ const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [
2679
+ annotationArea
2680
+ ];
2681
+ const positionMap = {
2682
+ top: 'insideTop',
2683
+ topRight: 'insideTopRight',
2684
+ topLeft: 'insideTopLeft',
2685
+ bottom: 'insideBottom',
2686
+ bottomLeft: 'insideBottomLeft',
2687
+ bottomRight: 'insideBottomRight',
2688
+ left: 'insideLeft',
2689
+ right: 'insideRight'
2690
+ };
2691
+ const markArea = annotationAreaList.flatMap((annotationArea)=>{
2692
+ const { selector: selectorPoint, text = '', textPosition = 'top', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'center', textBaseline = 'top', backgroundBorderColor, backgroundBorderRadius = 4, backgroundBorderWidth = 1, backgroundColor = '#191d24', backgroundPadding = 4, backgroundVisible = true, outerPadding = 0, areaColor = '#888888', areaColorOpacity = 0.15, areaBorderColor, areaBorderRadius, areaBorderWidth } = annotationArea;
2693
+ const dataset = advancedVSeed.dataset.flat();
2694
+ const selectedData = dataset.filter((datum)=>selector_selector(datum, selectorPoint));
2695
+ return {
2696
+ zIndex: ANNOTATION_Z_INDEX,
2697
+ regionRelative: true,
2698
+ positions: (data, context)=>{
2699
+ const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
2700
+ const xyList = positionData.map((datum)=>context.dataToPosition(datum));
2701
+ const yAxisHelper = context.getYAxisHelper();
2702
+ const xAxisHelper = context.getXAxisHelper();
2703
+ if ('function' == typeof xAxisHelper?.getBandwidth) {
2704
+ const yScale = yAxisHelper.getScale();
2705
+ const minX = Math.min(...xyList.map((item)=>item.x)) - outerPadding;
2706
+ const maxX = Math.max(...xyList.map((item)=>item.x)) + outerPadding;
2707
+ const minY = Math.min(...yScale.range());
2708
+ const maxY = Math.max(...yScale.range());
2709
+ return [
2710
+ {
2711
+ x: minX,
2712
+ y: minY
2713
+ },
2714
+ {
2715
+ x: maxX,
2716
+ y: minY
2717
+ },
2718
+ {
2719
+ x: maxX,
2720
+ y: maxY
2721
+ },
2722
+ {
2723
+ x: minX,
2724
+ y: maxY
2725
+ }
2726
+ ];
2727
+ }
2728
+ if ('function' == typeof yAxisHelper?.getBandwidth) {
2729
+ const xScale = xAxisHelper.getScale();
2730
+ const minY = Math.min(...xyList.map((item)=>item.y)) - outerPadding;
2731
+ const maxY = Math.max(...xyList.map((item)=>item.y)) + outerPadding;
2732
+ const minX = Math.min(...xScale.range());
2733
+ const maxX = Math.max(...xScale.range());
2734
+ return [
2735
+ {
2736
+ x: minX,
2737
+ y: minY
2738
+ },
2739
+ {
2740
+ x: maxX,
2741
+ y: minY
2742
+ },
2743
+ {
2744
+ x: maxX,
2745
+ y: maxY
2746
+ },
2747
+ {
2748
+ x: minX,
2749
+ y: maxY
2750
+ }
2751
+ ];
2752
+ }
2753
+ return [];
2754
+ },
2755
+ label: {
2756
+ position: positionMap[textPosition],
2757
+ visible: true,
2758
+ text: text,
2759
+ style: {
2760
+ textAlign: textAlign,
2761
+ textBaseline: textBaseline,
2762
+ fill: textColor,
2763
+ fontSize: textFontSize,
2764
+ fontWeight: textFontWeight
2765
+ },
2766
+ labelBackground: {
2767
+ visible: backgroundVisible,
2768
+ padding: backgroundPadding,
2769
+ style: {
2770
+ cornerRadius: backgroundBorderRadius ?? 4,
2771
+ fill: backgroundColor,
2772
+ stroke: backgroundBorderColor,
2773
+ strokeWidth: backgroundBorderWidth
2774
+ }
2775
+ }
2776
+ },
2777
+ area: {
2778
+ style: {
2779
+ visible: true,
2780
+ fill: areaColor,
2781
+ fillOpacity: areaColorOpacity,
2782
+ stroke: areaBorderColor,
2783
+ strokeWidth: areaBorderWidth,
2784
+ cornerRadius: areaBorderRadius
2785
+ }
2786
+ }
2787
+ };
2788
+ });
2789
+ return {
2790
+ ...spec,
2791
+ markArea: markArea
2792
+ };
2793
+ };
2794
+ const annotationAreaBand = (spec, context)=>{
2795
+ const { advancedVSeed } = context;
2796
+ const { annotation } = advancedVSeed;
2797
+ if (!annotation || !annotation.annotationArea) return spec;
2798
+ const { annotationArea } = annotation;
2799
+ const annotationAreaList = Array.isArray(annotationArea) ? annotationArea : [
2800
+ annotationArea
2801
+ ];
2802
+ const positionMap = {
2803
+ top: 'insideTop',
2804
+ topRight: 'insideTopRight',
2805
+ topLeft: 'insideTopLeft',
2806
+ bottom: 'insideBottom',
2807
+ bottomLeft: 'insideBottomLeft',
2808
+ bottomRight: 'insideBottomRight',
2809
+ left: 'insideLeft',
2810
+ right: 'insideRight'
2811
+ };
2812
+ const markArea = annotationAreaList.flatMap((annotationArea)=>{
2813
+ const { selector: selectorPoint, text = '', textPosition = 'top', textColor = '#ffffff', textFontSize = 12, textFontWeight = 400, textAlign = 'center', textBaseline = 'top', backgroundBorderColor, backgroundBorderRadius = 4, backgroundBorderWidth = 1, backgroundColor = '#191d24', backgroundPadding = 4, backgroundVisible = true, outerPadding = 8, areaColor = '#888888', areaColorOpacity = 0.15, areaBorderColor, areaBorderRadius, areaBorderWidth } = annotationArea;
2814
+ const dataset = advancedVSeed.dataset.flat();
2815
+ const selectedData = dataset.filter((datum)=>selector_selector(datum, selectorPoint));
2816
+ return {
2817
+ zIndex: ANNOTATION_Z_INDEX,
2818
+ regionRelative: true,
2819
+ positions: (data, context)=>{
2820
+ const positionData = data.filter((item)=>selectedData.some((datum)=>isSubset(datum, item)));
2821
+ const xyList = positionData.map((datum)=>context.dataToPosition(datum));
2822
+ const yAxisHelper = context.getYAxisHelper();
2823
+ const xAxisHelper = context.getXAxisHelper();
2824
+ if ('function' == typeof xAxisHelper?.getBandwidth) {
2825
+ const depth = context.fieldX.length ?? 0;
2826
+ const xBandWidth = xAxisHelper?.getBandwidth?.(depth - 1);
2827
+ const yScale = yAxisHelper.getScale();
2828
+ const minX = Math.min(...xyList.map((item)=>item.x)) - outerPadding;
2829
+ const maxX = Math.max(...xyList.map((item)=>item.x)) + xBandWidth + outerPadding;
2830
+ const minY = Math.min(...yScale.range());
2831
+ const maxY = Math.max(...yScale.range());
2832
+ return [
2833
+ {
2834
+ x: minX,
2835
+ y: minY
2836
+ },
2837
+ {
2838
+ x: maxX,
2839
+ y: minY
2840
+ },
2841
+ {
2842
+ x: maxX,
2843
+ y: maxY
2844
+ },
2845
+ {
2846
+ x: minX,
2847
+ y: maxY
2848
+ }
2849
+ ];
2850
+ }
2851
+ if ('function' == typeof yAxisHelper?.getBandwidth) {
2852
+ const depth = context.fieldY.length ?? 0;
2853
+ const yBandWidth = yAxisHelper?.getBandwidth?.(depth - 1);
2854
+ const xScale = xAxisHelper.getScale();
2855
+ const minY = Math.min(...xyList.map((item)=>item.y)) - outerPadding;
2856
+ const maxY = Math.max(...xyList.map((item)=>item.y)) + yBandWidth + outerPadding;
2857
+ const minX = Math.min(...xScale.range());
2858
+ const maxX = Math.max(...xScale.range());
2859
+ return [
2860
+ {
2861
+ x: minX,
2862
+ y: minY
2863
+ },
2864
+ {
2865
+ x: maxX,
2866
+ y: minY
2867
+ },
2868
+ {
2869
+ x: maxX,
2870
+ y: maxY
2871
+ },
2872
+ {
2873
+ x: minX,
2874
+ y: maxY
2875
+ }
2876
+ ];
2877
+ }
2878
+ return [];
2879
+ },
2880
+ label: {
2881
+ position: positionMap[textPosition],
2882
+ visible: true,
2883
+ text: text,
2884
+ style: {
2885
+ textAlign: textAlign,
2886
+ textBaseline: textBaseline,
2887
+ fill: textColor,
2888
+ fontSize: textFontSize,
2889
+ fontWeight: textFontWeight
2890
+ },
2891
+ labelBackground: {
2892
+ visible: backgroundVisible,
2893
+ padding: backgroundPadding,
2894
+ style: {
2895
+ cornerRadius: backgroundBorderRadius ?? 4,
2896
+ fill: backgroundColor,
2897
+ stroke: backgroundBorderColor,
2898
+ strokeWidth: backgroundBorderWidth
2899
+ }
2900
+ }
2901
+ },
2902
+ area: {
2903
+ style: {
2904
+ visible: true,
2905
+ fill: areaColor,
2906
+ fillOpacity: areaColorOpacity,
2907
+ stroke: areaBorderColor,
2908
+ strokeWidth: areaBorderWidth,
2909
+ cornerRadius: areaBorderRadius
2910
+ }
2911
+ }
2912
+ };
2913
+ });
2914
+ return {
2915
+ ...spec,
2916
+ markArea: markArea
2917
+ };
2918
+ };
2919
+ const verticalCrosshairLine = (spec, context)=>{
2920
+ const result = {
2921
+ ...spec
2922
+ };
2923
+ const { advancedVSeed, vseed } = context;
2924
+ const { chartType } = vseed;
2925
+ const config = advancedVSeed.config?.[chartType]?.crosshairLine;
2926
+ if (!config) return result;
2927
+ if (!result.crosshair) result.crosshair = {};
2928
+ const { visible = true, lineColor, labelColor, labelVisible, labelBackgroundColor } = config;
2929
+ const crosshair = result.crosshair;
2930
+ crosshair.xField = {
2931
+ visible,
2932
+ line: {
2933
+ type: 'line',
2934
+ style: {
2935
+ lineWidth: 1,
2936
+ opacity: 1,
2937
+ stroke: lineColor,
2938
+ lineDash: [
2939
+ 4,
2940
+ 2
2941
+ ]
2942
+ }
2943
+ },
2944
+ label: {
2945
+ visible: labelVisible,
2946
+ labelBackground: {
2947
+ visible: labelVisible,
2948
+ style: {
2949
+ fill: labelBackgroundColor
2950
+ }
2951
+ },
2952
+ style: {
2953
+ fill: labelColor
2954
+ }
2955
+ }
2956
+ };
2957
+ return result;
2958
+ };
2959
+ const verticalCrosshairRect = (spec, context)=>{
2960
+ const result = {
2961
+ ...spec
2962
+ };
2963
+ const { advancedVSeed, vseed } = context;
2964
+ const { chartType } = vseed;
2965
+ const config = advancedVSeed.config?.[chartType]?.crosshairRect;
2966
+ if (!config) return result;
2967
+ if (!result.crosshair) result.crosshair = {};
2968
+ const { visible = true, rectColor, labelColor, labelVisible, labelBackgroundColor } = config;
2969
+ const crosshair = result.crosshair;
2970
+ crosshair.xField = {
2971
+ visible,
2972
+ line: {
2973
+ type: 'rect',
2974
+ style: {
2975
+ lineWidth: 0,
2976
+ opacity: 0.2,
2977
+ fill: rectColor
2978
+ }
2979
+ },
2980
+ label: {
2981
+ visible: labelVisible,
2982
+ labelBackground: {
2983
+ visible: labelVisible,
2984
+ style: {
2985
+ fill: labelBackgroundColor
2986
+ }
2987
+ },
2988
+ style: {
2989
+ fill: labelColor
2990
+ }
2991
+ }
2992
+ };
2993
+ return result;
2994
+ };
2995
+ const horizontalCrosshairRect = (spec, context)=>{
2996
+ const result = {
2997
+ ...spec
2998
+ };
2999
+ const { advancedVSeed, vseed } = context;
3000
+ const { chartType } = vseed;
3001
+ const config = advancedVSeed.config?.[chartType]?.crosshairRect;
3002
+ if (!config) return result;
3003
+ if (!result.crosshair) result.crosshair = {};
3004
+ const { visible = true, rectColor, labelColor, labelVisible, labelBackgroundColor } = config;
3005
+ const crosshair = result.crosshair;
3006
+ crosshair.yField = {
3007
+ visible,
3008
+ line: {
3009
+ type: 'rect',
3010
+ style: {
3011
+ lineWidth: 0,
3012
+ opacity: 0.2,
3013
+ fill: rectColor
3014
+ }
3015
+ },
3016
+ label: {
3017
+ visible: labelVisible,
3018
+ labelBackground: {
3019
+ visible: labelVisible,
3020
+ style: {
3021
+ fill: labelBackgroundColor
3022
+ }
3023
+ },
3024
+ style: {
3025
+ fill: labelColor
3026
+ }
3027
+ }
3028
+ };
3029
+ return result;
3030
+ };
3031
+ const line_line = [
3032
+ initLine,
3033
+ color_color,
3034
+ background_backgroundColor,
3035
+ dataset_dataset,
3036
+ xBand,
3037
+ yLinear,
3038
+ label_label,
3039
+ tooltip_tooltip,
3040
+ verticalCrosshairLine,
3041
+ discreteLegend,
3042
+ pointStyle_pointStyle,
3043
+ lineStyle_lineStyle,
3044
+ annotationPoint_annotationPoint,
3045
+ annotationVerticalLine_annotationVerticalLine,
3046
+ annotationHorizontalLine_annotationHorizontalLine,
3047
+ annotationArea_annotationArea
3048
+ ];
3049
+ const pivotLine = [
3050
+ initPivot,
3051
+ pivotGridStyle,
3052
+ pivotIndicators_pivotIndicatorsAsRow,
3053
+ datasetPivot,
3054
+ pivotIndicators([
3055
+ initLine,
3056
+ color_color,
3057
+ background_backgroundColor,
3058
+ datasetPivotPlaceholder,
3059
+ xBand,
3060
+ yLinear,
3061
+ label_label,
3062
+ tooltip_tooltip,
3063
+ verticalCrosshairLine,
3064
+ pointStyle_pointStyle,
3065
+ lineStyle_lineStyle,
3066
+ annotationPoint_annotationPoint,
3067
+ annotationVerticalLine_annotationVerticalLine,
3068
+ annotationHorizontalLine_annotationHorizontalLine,
3069
+ annotationArea_annotationArea
3070
+ ]),
3071
+ pivotRowDimensions,
3072
+ pivotColumnDimensions,
3073
+ pivotDiscreteLegend
3074
+ ];
3075
+ const lineSpecPipeline = [
3076
+ pivotAdapter_pivotAdapter(line_line, pivotLine)
3077
+ ];
3078
+ const column = [
3079
+ initColumn,
3080
+ stackCornerRadius_stackCornerRadius,
3081
+ stackInverse,
3082
+ color_color,
3083
+ background_backgroundColor,
3084
+ dataset_dataset,
3085
+ xBand,
3086
+ yLinear,
3087
+ label_label,
3088
+ tooltip_tooltip,
3089
+ verticalCrosshairRect,
3090
+ discreteLegend,
3091
+ barStyle_barStyle,
3092
+ annotationPoint_annotationPoint,
3093
+ annotationVerticalLine_annotationVerticalLine,
3094
+ annotationHorizontalLine_annotationHorizontalLine,
3095
+ annotationAreaBand
3096
+ ];
3097
+ const pivotColumn = [
3098
+ initPivot,
3099
+ pivotGridStyle,
3100
+ pivotIndicators_pivotIndicatorsAsRow,
3101
+ datasetPivot,
3102
+ pivotIndicators([
2175
3103
  initColumn,
3104
+ stackCornerRadius_stackCornerRadius,
2176
3105
  stackInverse,
2177
3106
  color_color,
2178
3107
  background_backgroundColor,
@@ -2181,8 +3110,12 @@ const pivotColumn = [
2181
3110
  yLinear,
2182
3111
  label_label,
2183
3112
  tooltip_tooltip,
3113
+ verticalCrosshairRect,
2184
3114
  barStyle_barStyle,
2185
- annotationPoint_annotationPoint
3115
+ annotationPoint_annotationPoint,
3116
+ annotationVerticalLine_annotationVerticalLine,
3117
+ annotationHorizontalLine_annotationHorizontalLine,
3118
+ annotationAreaBand
2186
3119
  ]),
2187
3120
  pivotRowDimensions,
2188
3121
  pivotColumnDimensions,
@@ -2193,6 +3126,7 @@ const columnSpecPipeline = [
2193
3126
  ];
2194
3127
  const columnParallel = [
2195
3128
  initColumnParallel,
3129
+ stackCornerRadius_stackCornerRadius,
2196
3130
  color_color,
2197
3131
  background_backgroundColor,
2198
3132
  dataset_dataset,
@@ -2201,8 +3135,12 @@ const columnParallel = [
2201
3135
  label_label,
2202
3136
  tooltip_tooltip,
2203
3137
  discreteLegend,
3138
+ verticalCrosshairRect,
2204
3139
  barStyle_barStyle,
2205
- annotationPoint_annotationPoint
3140
+ annotationPoint_annotationPoint,
3141
+ annotationVerticalLine_annotationVerticalLine,
3142
+ annotationHorizontalLine_annotationHorizontalLine,
3143
+ annotationAreaBand
2206
3144
  ];
2207
3145
  const pivotColumnParallel = [
2208
3146
  initPivot,
@@ -2211,6 +3149,7 @@ const pivotColumnParallel = [
2211
3149
  datasetPivot,
2212
3150
  pivotIndicators([
2213
3151
  initColumnParallel,
3152
+ stackCornerRadius_stackCornerRadius,
2214
3153
  color_color,
2215
3154
  background_backgroundColor,
2216
3155
  datasetPivotPlaceholder,
@@ -2218,8 +3157,12 @@ const pivotColumnParallel = [
2218
3157
  yLinear,
2219
3158
  label_label,
2220
3159
  tooltip_tooltip,
3160
+ verticalCrosshairRect,
2221
3161
  barStyle_barStyle,
2222
- annotationPoint_annotationPoint
3162
+ annotationPoint_annotationPoint,
3163
+ annotationVerticalLine_annotationVerticalLine,
3164
+ annotationHorizontalLine_annotationHorizontalLine,
3165
+ annotationAreaBand
2223
3166
  ]),
2224
3167
  pivotRowDimensions,
2225
3168
  pivotColumnDimensions,
@@ -2230,6 +3173,7 @@ const columnParallelSpecPipeline = [
2230
3173
  ];
2231
3174
  const columnPercent = [
2232
3175
  initColumn,
3176
+ stackCornerRadius_stackCornerRadius,
2233
3177
  stackInverse,
2234
3178
  color_color,
2235
3179
  background_backgroundColor,
@@ -2239,9 +3183,13 @@ const columnPercent = [
2239
3183
  yLinear,
2240
3184
  label_label,
2241
3185
  tooltip_tooltip,
3186
+ verticalCrosshairRect,
2242
3187
  discreteLegend,
2243
3188
  barStyle_barStyle,
2244
- annotationPoint_annotationPoint
3189
+ annotationPoint_annotationPoint,
3190
+ annotationVerticalLine_annotationVerticalLine,
3191
+ annotationHorizontalLine_annotationHorizontalLine,
3192
+ annotationAreaBand
2245
3193
  ];
2246
3194
  const pivotColumnPercent = [
2247
3195
  initPivot,
@@ -2250,6 +3198,7 @@ const pivotColumnPercent = [
2250
3198
  datasetPivot,
2251
3199
  pivotIndicators([
2252
3200
  initColumn,
3201
+ stackCornerRadius_stackCornerRadius,
2253
3202
  stackInverse,
2254
3203
  color_color,
2255
3204
  percent,
@@ -2259,8 +3208,12 @@ const pivotColumnPercent = [
2259
3208
  yLinear,
2260
3209
  label_label,
2261
3210
  tooltip_tooltip,
3211
+ verticalCrosshairRect,
2262
3212
  barStyle_barStyle,
2263
- annotationPoint_annotationPoint
3213
+ annotationPoint_annotationPoint,
3214
+ annotationVerticalLine_annotationVerticalLine,
3215
+ annotationHorizontalLine_annotationHorizontalLine,
3216
+ annotationAreaBand
2264
3217
  ]),
2265
3218
  pivotRowDimensions,
2266
3219
  pivotColumnDimensions,
@@ -2271,6 +3224,7 @@ const columnPercentSpecPipeline = [
2271
3224
  ];
2272
3225
  const bar = [
2273
3226
  initBar,
3227
+ stackCornerRadius_stackCornerRadius,
2274
3228
  color_color,
2275
3229
  background_backgroundColor,
2276
3230
  dataset_dataset,
@@ -2278,9 +3232,13 @@ const bar = [
2278
3232
  yBand,
2279
3233
  label_label,
2280
3234
  tooltip_tooltip,
3235
+ horizontalCrosshairRect,
2281
3236
  discreteLegend,
2282
3237
  barStyle_barStyle,
2283
- annotationPoint_annotationPoint
3238
+ annotationPoint_annotationPoint,
3239
+ annotationVerticalLine_annotationVerticalLine,
3240
+ annotationHorizontalLine_annotationHorizontalLine,
3241
+ annotationAreaBand
2284
3242
  ];
2285
3243
  const pivotBar = [
2286
3244
  initPivot,
@@ -2289,6 +3247,7 @@ const pivotBar = [
2289
3247
  datasetPivot,
2290
3248
  pivotIndicators([
2291
3249
  initBar,
3250
+ stackCornerRadius_stackCornerRadius,
2292
3251
  color_color,
2293
3252
  background_backgroundColor,
2294
3253
  datasetPivotPlaceholder,
@@ -2296,8 +3255,12 @@ const pivotBar = [
2296
3255
  label_label,
2297
3256
  label_label,
2298
3257
  tooltip_tooltip,
3258
+ horizontalCrosshairRect,
2299
3259
  barStyle_barStyle,
2300
- annotationPoint_annotationPoint
3260
+ annotationPoint_annotationPoint,
3261
+ annotationVerticalLine_annotationVerticalLine,
3262
+ annotationHorizontalLine_annotationHorizontalLine,
3263
+ annotationAreaBand
2301
3264
  ]),
2302
3265
  pivotRowDimensions,
2303
3266
  pivotColumnDimensions,
@@ -2308,6 +3271,7 @@ const barSpecPipeline = [
2308
3271
  ];
2309
3272
  const barParallel = [
2310
3273
  initBarParallel,
3274
+ stackCornerRadius_stackCornerRadius,
2311
3275
  color_color,
2312
3276
  background_backgroundColor,
2313
3277
  dataset_dataset,
@@ -2315,9 +3279,13 @@ const barParallel = [
2315
3279
  yBand,
2316
3280
  label_label,
2317
3281
  tooltip_tooltip,
3282
+ horizontalCrosshairRect,
2318
3283
  discreteLegend,
2319
3284
  barStyle_barStyle,
2320
- annotationPoint_annotationPoint
3285
+ annotationPoint_annotationPoint,
3286
+ annotationVerticalLine_annotationVerticalLine,
3287
+ annotationHorizontalLine_annotationHorizontalLine,
3288
+ annotationAreaBand
2321
3289
  ];
2322
3290
  const pivotBarParallel = [
2323
3291
  initPivot,
@@ -2326,6 +3294,7 @@ const pivotBarParallel = [
2326
3294
  datasetPivot,
2327
3295
  pivotIndicators([
2328
3296
  initBarParallel,
3297
+ stackCornerRadius_stackCornerRadius,
2329
3298
  color_color,
2330
3299
  background_backgroundColor,
2331
3300
  datasetPivotPlaceholder,
@@ -2333,8 +3302,12 @@ const pivotBarParallel = [
2333
3302
  xLinear,
2334
3303
  label_label,
2335
3304
  tooltip_tooltip,
3305
+ horizontalCrosshairRect,
2336
3306
  barStyle_barStyle,
2337
- annotationPoint_annotationPoint
3307
+ annotationPoint_annotationPoint,
3308
+ annotationVerticalLine_annotationVerticalLine,
3309
+ annotationHorizontalLine_annotationHorizontalLine,
3310
+ annotationAreaBand
2338
3311
  ]),
2339
3312
  pivotRowDimensions,
2340
3313
  pivotColumnDimensions,
@@ -2345,6 +3318,7 @@ const barParallelSpecPipeline = [
2345
3318
  ];
2346
3319
  const barPercent = [
2347
3320
  initBar,
3321
+ stackCornerRadius_stackCornerRadius,
2348
3322
  color_color,
2349
3323
  background_backgroundColor,
2350
3324
  percent,
@@ -2353,9 +3327,13 @@ const barPercent = [
2353
3327
  yBand,
2354
3328
  label_label,
2355
3329
  tooltip_tooltip,
3330
+ horizontalCrosshairRect,
2356
3331
  discreteLegend,
2357
3332
  barStyle_barStyle,
2358
- annotationPoint_annotationPoint
3333
+ annotationPoint_annotationPoint,
3334
+ annotationVerticalLine_annotationVerticalLine,
3335
+ annotationHorizontalLine_annotationHorizontalLine,
3336
+ annotationAreaBand
2359
3337
  ];
2360
3338
  const pivotBarPercent = [
2361
3339
  initPivot,
@@ -2364,6 +3342,7 @@ const pivotBarPercent = [
2364
3342
  datasetPivot,
2365
3343
  pivotIndicators([
2366
3344
  initBar,
3345
+ stackCornerRadius_stackCornerRadius,
2367
3346
  color_color,
2368
3347
  background_backgroundColor,
2369
3348
  percent,
@@ -2372,8 +3351,12 @@ const pivotBarPercent = [
2372
3351
  xLinear,
2373
3352
  label_label,
2374
3353
  tooltip_tooltip,
3354
+ horizontalCrosshairRect,
2375
3355
  barStyle_barStyle,
2376
- annotationPoint_annotationPoint
3356
+ annotationPoint_annotationPoint,
3357
+ annotationVerticalLine_annotationVerticalLine,
3358
+ annotationHorizontalLine_annotationHorizontalLine,
3359
+ annotationAreaBand
2377
3360
  ]),
2378
3361
  pivotRowDimensions,
2379
3362
  pivotColumnDimensions,
@@ -2392,8 +3375,15 @@ const area_area = [
2392
3375
  yLinear,
2393
3376
  label_label,
2394
3377
  tooltip_tooltip,
3378
+ verticalCrosshairLine,
2395
3379
  discreteLegend,
2396
- annotationPoint_annotationPoint
3380
+ pointStyle_pointStyle,
3381
+ lineStyle_lineStyle,
3382
+ areaStyle_areaStyle,
3383
+ annotationPoint_annotationPoint,
3384
+ annotationVerticalLine_annotationVerticalLine,
3385
+ annotationHorizontalLine_annotationHorizontalLine,
3386
+ annotationArea_annotationArea
2397
3387
  ];
2398
3388
  const pivotArea = [
2399
3389
  initPivot,
@@ -2410,7 +3400,14 @@ const pivotArea = [
2410
3400
  yLinear,
2411
3401
  label_label,
2412
3402
  tooltip_tooltip,
2413
- annotationPoint_annotationPoint
3403
+ verticalCrosshairLine,
3404
+ pointStyle_pointStyle,
3405
+ lineStyle_lineStyle,
3406
+ areaStyle_areaStyle,
3407
+ annotationPoint_annotationPoint,
3408
+ annotationVerticalLine_annotationVerticalLine,
3409
+ annotationHorizontalLine_annotationHorizontalLine,
3410
+ annotationArea_annotationArea
2414
3411
  ]),
2415
3412
  pivotRowDimensions,
2416
3413
  pivotColumnDimensions,
@@ -2430,8 +3427,15 @@ const areaPercent = [
2430
3427
  yLinear,
2431
3428
  label_label,
2432
3429
  tooltip_tooltip,
3430
+ verticalCrosshairLine,
2433
3431
  discreteLegend,
2434
- annotationPoint_annotationPoint
3432
+ pointStyle_pointStyle,
3433
+ lineStyle_lineStyle,
3434
+ areaStyle_areaStyle,
3435
+ annotationPoint_annotationPoint,
3436
+ annotationVerticalLine_annotationVerticalLine,
3437
+ annotationHorizontalLine_annotationHorizontalLine,
3438
+ annotationArea_annotationArea
2435
3439
  ];
2436
3440
  const pivotAreaPercent = [
2437
3441
  initPivot,
@@ -2449,7 +3453,14 @@ const pivotAreaPercent = [
2449
3453
  yLinear,
2450
3454
  label_label,
2451
3455
  tooltip_tooltip,
2452
- annotationPoint_annotationPoint
3456
+ verticalCrosshairLine,
3457
+ pointStyle_pointStyle,
3458
+ lineStyle_lineStyle,
3459
+ areaStyle_areaStyle,
3460
+ annotationPoint_annotationPoint,
3461
+ annotationVerticalLine_annotationVerticalLine,
3462
+ annotationHorizontalLine_annotationHorizontalLine,
3463
+ annotationArea_annotationArea
2453
3464
  ]),
2454
3465
  pivotRowDimensions,
2455
3466
  pivotColumnDimensions,
@@ -2466,7 +3477,10 @@ const pie = [
2466
3477
  label_label,
2467
3478
  tooltip_tooltip,
2468
3479
  discreteLegend,
2469
- annotationPoint_annotationPoint
3480
+ annotationPoint_annotationPoint,
3481
+ annotationVerticalLine_annotationVerticalLine,
3482
+ annotationHorizontalLine_annotationHorizontalLine,
3483
+ annotationArea_annotationArea
2470
3484
  ];
2471
3485
  const pivotPie = [
2472
3486
  initPivot,
@@ -2480,7 +3494,10 @@ const pivotPie = [
2480
3494
  datasetPivotPlaceholder,
2481
3495
  label_label,
2482
3496
  tooltip_tooltip,
2483
- annotationPoint_annotationPoint
3497
+ annotationPoint_annotationPoint,
3498
+ annotationVerticalLine_annotationVerticalLine,
3499
+ annotationHorizontalLine_annotationHorizontalLine,
3500
+ annotationArea_annotationArea
2484
3501
  ]),
2485
3502
  pivotRowDimensions,
2486
3503
  pivotColumnDimensions,
@@ -2522,17 +3539,17 @@ const buildSpec = (builder, advancedVSeed)=>{
2522
3539
  }
2523
3540
  };
2524
3541
  const build = (builder)=>{
2525
- console.log('debug vseed', builder.vseed);
2526
3542
  const advancedVSeed = builder.buildAdvanced();
2527
- console.log('debug advancedVSeed', advancedVSeed);
3543
+ builder.advancedVSeed = advancedVSeed;
2528
3544
  if (!advancedVSeed) throw new Error('advancedVSeed is null');
2529
3545
  const spec = builder.buildSpec(advancedVSeed);
2530
- console.log('debug spec', spec);
3546
+ builder.spec = spec;
2531
3547
  return spec;
2532
3548
  };
2533
3549
  class Builder {
2534
3550
  _vseed;
2535
3551
  _advancedVSeed = null;
3552
+ _spec = null;
2536
3553
  constructor(vseed){
2537
3554
  this._vseed = vseed;
2538
3555
  }
@@ -2555,6 +3572,12 @@ class Builder {
2555
3572
  set advancedVSeed(value) {
2556
3573
  this._advancedVSeed = value;
2557
3574
  }
3575
+ get spec() {
3576
+ return this._spec;
3577
+ }
3578
+ set spec(value) {
3579
+ this._spec = value;
3580
+ }
2558
3581
  static _advancedPipelineMap = {};
2559
3582
  static _specPipelineMap = {};
2560
3583
  static _themeMap = {};
@@ -2641,7 +3664,7 @@ const lightTheme = ()=>{
2641
3664
  labelAutoHideGap: 4,
2642
3665
  labelAutoLimit: true,
2643
3666
  labelAutoLimitLength: 100,
2644
- labelAutoRotate: true,
3667
+ labelAutoRotate: false,
2645
3668
  labelAutoRotateAngleRange: [
2646
3669
  0,
2647
3670
  -45,
@@ -2691,6 +3714,20 @@ const lightTheme = ()=>{
2691
3714
  -90
2692
3715
  ]
2693
3716
  };
3717
+ const crosshairLine = {
3718
+ visible: true,
3719
+ labelVisible: true,
3720
+ lineColor: '#3641594d',
3721
+ labelColor: '#ffffff',
3722
+ labelBackgroundColor: '#364159'
3723
+ };
3724
+ const crosshairRect = {
3725
+ visible: true,
3726
+ labelVisible: true,
3727
+ rectColor: '#3641594d',
3728
+ labelColor: '#ffffff',
3729
+ labelBackgroundColor: '#364159'
3730
+ };
2694
3731
  return {
2695
3732
  baseConfig: {
2696
3733
  vtable: {
@@ -2733,39 +3770,84 @@ const lightTheme = ()=>{
2733
3770
  config: {
2734
3771
  line: {
2735
3772
  xAxis: bandAxis,
2736
- yAxis: linearAxis
3773
+ yAxis: linearAxis,
3774
+ crosshairLine
2737
3775
  },
2738
3776
  column: {
2739
3777
  xAxis: bandAxis,
2740
- yAxis: linearAxis
3778
+ yAxis: linearAxis,
3779
+ crosshairRect,
3780
+ stackCornerRadius: [
3781
+ 4,
3782
+ 4,
3783
+ 0,
3784
+ 0
3785
+ ]
2741
3786
  },
2742
3787
  columnParallel: {
2743
3788
  xAxis: bandAxis,
2744
- yAxis: linearAxis
3789
+ yAxis: linearAxis,
3790
+ crosshairRect,
3791
+ stackCornerRadius: [
3792
+ 4,
3793
+ 4,
3794
+ 0,
3795
+ 0
3796
+ ]
2745
3797
  },
2746
3798
  columnPercent: {
2747
3799
  xAxis: bandAxis,
2748
- yAxis: linearAxis
3800
+ yAxis: linearAxis,
3801
+ crosshairRect,
3802
+ stackCornerRadius: [
3803
+ 4,
3804
+ 4,
3805
+ 0,
3806
+ 0
3807
+ ]
2749
3808
  },
2750
3809
  bar: {
2751
3810
  xAxis: linearAxis,
2752
- yAxis: barBandAxis
3811
+ yAxis: barBandAxis,
3812
+ crosshairRect,
3813
+ stackCornerRadius: [
3814
+ 0,
3815
+ 4,
3816
+ 4,
3817
+ 0
3818
+ ]
2753
3819
  },
2754
3820
  barParallel: {
2755
3821
  xAxis: linearAxis,
2756
- yAxis: barBandAxis
3822
+ yAxis: barBandAxis,
3823
+ crosshairRect,
3824
+ stackCornerRadius: [
3825
+ 0,
3826
+ 4,
3827
+ 4,
3828
+ 0
3829
+ ]
2757
3830
  },
2758
3831
  barPercent: {
2759
3832
  xAxis: linearAxis,
2760
- yAxis: barBandAxis
3833
+ yAxis: barBandAxis,
3834
+ crosshairRect,
3835
+ stackCornerRadius: [
3836
+ 0,
3837
+ 4,
3838
+ 4,
3839
+ 0
3840
+ ]
2761
3841
  },
2762
3842
  area: {
2763
3843
  xAxis: bandAxis,
2764
- yAxis: linearAxis
3844
+ yAxis: linearAxis,
3845
+ crosshairLine
2765
3846
  },
2766
3847
  areaPercent: {
2767
3848
  xAxis: bandAxis,
2768
- yAxis: linearAxis
3849
+ yAxis: linearAxis,
3850
+ crosshairLine
2769
3851
  }
2770
3852
  }
2771
3853
  };
@@ -2810,7 +3892,7 @@ const darkTheme = ()=>{
2810
3892
  labelAutoHideGap: 4,
2811
3893
  labelAutoLimit: true,
2812
3894
  labelAutoLimitLength: 100,
2813
- labelAutoRotate: true,
3895
+ labelAutoRotate: false,
2814
3896
  labelAutoRotateAngleRange: [
2815
3897
  0,
2816
3898
  -45,
@@ -2847,6 +3929,33 @@ const darkTheme = ()=>{
2847
3929
  lineWidth: 1
2848
3930
  }
2849
3931
  };
3932
+ const barBandAxis = {
3933
+ ...bandAxis,
3934
+ labelAutoHide: false,
3935
+ labelAutoHideGap: 1,
3936
+ labelAutoLimit: false,
3937
+ labelAutoLimitLength: void 0,
3938
+ labelAutoRotate: false,
3939
+ labelAutoRotateAngleRange: [
3940
+ 0,
3941
+ -45,
3942
+ -90
3943
+ ]
3944
+ };
3945
+ const crosshairLine = {
3946
+ visible: true,
3947
+ labelVisible: true,
3948
+ lineColor: '#E2E3E6',
3949
+ labelColor: '#4B4F54',
3950
+ labelBackgroundColor: '#ffffff'
3951
+ };
3952
+ const crosshairRect = {
3953
+ visible: true,
3954
+ labelVisible: true,
3955
+ lineColor: '#E2E3E6',
3956
+ labelColor: '#4B4F54',
3957
+ labelBackgroundColor: '#ffffff'
3958
+ };
2850
3959
  return {
2851
3960
  baseConfig: {
2852
3961
  vtable: {
@@ -2889,45 +3998,94 @@ const darkTheme = ()=>{
2889
3998
  config: {
2890
3999
  line: {
2891
4000
  xAxis: bandAxis,
2892
- yAxis: linearAxis
4001
+ yAxis: linearAxis,
4002
+ crosshairLine: crosshairLine
2893
4003
  },
2894
4004
  column: {
2895
4005
  xAxis: bandAxis,
2896
- yAxis: linearAxis
4006
+ yAxis: linearAxis,
4007
+ crosshairRect: crosshairRect,
4008
+ stackCornerRadius: [
4009
+ 4,
4010
+ 4,
4011
+ 0,
4012
+ 0
4013
+ ]
2897
4014
  },
2898
4015
  columnParallel: {
2899
4016
  xAxis: bandAxis,
2900
- yAxis: linearAxis
4017
+ yAxis: linearAxis,
4018
+ crosshairRect: crosshairRect,
4019
+ stackCornerRadius: [
4020
+ 4,
4021
+ 4,
4022
+ 0,
4023
+ 0
4024
+ ]
2901
4025
  },
2902
4026
  columnPercent: {
2903
4027
  xAxis: bandAxis,
2904
- yAxis: linearAxis
4028
+ yAxis: linearAxis,
4029
+ crosshairRect: crosshairRect,
4030
+ stackCornerRadius: [
4031
+ 4,
4032
+ 4,
4033
+ 0,
4034
+ 0
4035
+ ]
2905
4036
  },
2906
4037
  bar: {
2907
4038
  xAxis: linearAxis,
2908
- yAxis: bandAxis
4039
+ yAxis: barBandAxis,
4040
+ crosshairRect: crosshairRect,
4041
+ stackCornerRadius: [
4042
+ 0,
4043
+ 4,
4044
+ 4,
4045
+ 0
4046
+ ]
2909
4047
  },
2910
4048
  barParallel: {
2911
4049
  xAxis: linearAxis,
2912
- yAxis: bandAxis
4050
+ yAxis: barBandAxis,
4051
+ crosshairRect: crosshairRect,
4052
+ stackCornerRadius: [
4053
+ 0,
4054
+ 4,
4055
+ 4,
4056
+ 0
4057
+ ]
2913
4058
  },
2914
4059
  barPercent: {
2915
4060
  xAxis: linearAxis,
2916
- yAxis: bandAxis
4061
+ yAxis: barBandAxis,
4062
+ crosshairRect: crosshairRect,
4063
+ stackCornerRadius: [
4064
+ 0,
4065
+ 4,
4066
+ 4,
4067
+ 0
4068
+ ]
2917
4069
  },
2918
4070
  area: {
2919
4071
  xAxis: bandAxis,
2920
- yAxis: linearAxis
4072
+ yAxis: linearAxis,
4073
+ crosshairLine: crosshairLine
2921
4074
  },
2922
4075
  areaPercent: {
2923
4076
  xAxis: bandAxis,
2924
- yAxis: linearAxis
4077
+ yAxis: linearAxis,
4078
+ crosshairLine: crosshairLine
2925
4079
  }
2926
4080
  }
2927
4081
  };
2928
4082
  };
2929
4083
  const registerCustomTheme = (key, themeConfig)=>{
2930
- Builder._themeMap[key] = themeConfig;
4084
+ const customTheme = 'function' == typeof themeConfig ? themeConfig({
4085
+ lightTheme: lightTheme(),
4086
+ darkTheme: darkTheme()
4087
+ }) : themeConfig;
4088
+ Builder._themeMap[key] = customTheme;
2931
4089
  };
2932
4090
  const registerLightTheme = ()=>{
2933
4091
  registerCustomTheme('light', lightTheme());
@@ -2980,29 +4138,30 @@ const zDimension = external_zod_namespaceObject.z.object({
2980
4138
  ])
2981
4139
  });
2982
4140
  const zDimensions = external_zod_namespaceObject.z.array(zDimension).optional();
4141
+ const zNumFormat = external_zod_namespaceObject.z.object({
4142
+ type: external_zod_namespaceObject.z["enum"]([
4143
+ 'number',
4144
+ 'percent',
4145
+ 'permille'
4146
+ ]).default('number').optional(),
4147
+ ratio: external_zod_namespaceObject.z.number().default(1).optional(),
4148
+ symbol: external_zod_namespaceObject.z.string().default('').optional(),
4149
+ thousandSeparator: external_zod_namespaceObject.z.boolean().default(false).optional(),
4150
+ decimalPlaces: external_zod_namespaceObject.z.number().default(2).optional(),
4151
+ round: external_zod_namespaceObject.z["enum"]([
4152
+ 'round',
4153
+ 'floor',
4154
+ 'ceil'
4155
+ ]).default('round').optional(),
4156
+ prefix: external_zod_namespaceObject.z.string().default('').optional(),
4157
+ suffix: external_zod_namespaceObject.z.string().default('').optional()
4158
+ }).optional();
2983
4159
  const zMeasure = external_zod_namespaceObject.z.object({
2984
4160
  id: external_zod_namespaceObject.z.string(),
2985
4161
  alias: external_zod_namespaceObject.z.string().optional(),
2986
4162
  visible: external_zod_namespaceObject.z.boolean().default(true).optional(),
2987
4163
  autoFormat: external_zod_namespaceObject.z.boolean().default(true).optional(),
2988
- format: external_zod_namespaceObject.z.object({
2989
- type: external_zod_namespaceObject.z["enum"]([
2990
- 'number',
2991
- 'percent',
2992
- 'permille'
2993
- ]).optional().default('number'),
2994
- ratio: external_zod_namespaceObject.z.number().optional().default(1),
2995
- symbol: external_zod_namespaceObject.z.string().optional().default(''),
2996
- thousandSeparator: external_zod_namespaceObject.z.boolean().optional().default(false),
2997
- decimalPlaces: external_zod_namespaceObject.z.number().optional().default(2),
2998
- round: external_zod_namespaceObject.z["enum"]([
2999
- 'round',
3000
- 'floor',
3001
- 'ceil'
3002
- ]).optional().default('round'),
3003
- prefix: external_zod_namespaceObject.z.string().optional().default(''),
3004
- suffix: external_zod_namespaceObject.z.string().optional().default('')
3005
- }).optional()
4164
+ format: zNumFormat.optional()
3006
4165
  });
3007
4166
  const zMeasureGroup = external_zod_namespaceObject.z.object({
3008
4167
  id: external_zod_namespaceObject.z.string(),
@@ -3247,42 +4406,77 @@ const zXLinearAxis = external_zod_namespaceObject.z.object({
3247
4406
  }).optional()
3248
4407
  });
3249
4408
  const zYLinearAxis = zXLinearAxis;
4409
+ const zCrosshairLine = external_zod_namespaceObject.z.object({
4410
+ visible: external_zod_namespaceObject.z.boolean().optional(),
4411
+ lineColor: external_zod_namespaceObject.z.string().optional(),
4412
+ labelColor: external_zod_namespaceObject.z.string().optional(),
4413
+ labelVisible: external_zod_namespaceObject.z.boolean().optional(),
4414
+ labelBackgroundColor: external_zod_namespaceObject.z.string().optional()
4415
+ });
4416
+ const zCrosshairRect = external_zod_namespaceObject.z.object({
4417
+ visible: external_zod_namespaceObject.z.boolean().optional(),
4418
+ rectColor: external_zod_namespaceObject.z.string().optional(),
4419
+ labelColor: external_zod_namespaceObject.z.string().optional(),
4420
+ labelVisible: external_zod_namespaceObject.z.boolean().optional(),
4421
+ labelBackgroundColor: external_zod_namespaceObject.z.string().optional()
4422
+ });
4423
+ const zStackCornerRadius = external_zod_namespaceObject.z.number().or(external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.number())).default([
4424
+ 3,
4425
+ 3,
4426
+ 0,
4427
+ 0
4428
+ ]);
3250
4429
  const zConfig = external_zod_namespaceObject.z.object({
3251
4430
  line: external_zod_namespaceObject.z.object({
3252
- xAxis: zXBandAxis,
3253
- yAxis: zYLinearAxis
4431
+ xAxis: zXBandAxis.optional(),
4432
+ yAxis: zYLinearAxis.optional(),
4433
+ crosshairLine: zCrosshairLine.optional()
3254
4434
  }).optional(),
3255
4435
  column: external_zod_namespaceObject.z.object({
3256
- xAxis: zXBandAxis,
3257
- yAxis: zYLinearAxis
4436
+ xAxis: zXBandAxis.optional(),
4437
+ yAxis: zYLinearAxis.optional(),
4438
+ crosshairRect: zCrosshairRect.optional(),
4439
+ stackCornerRadius: zStackCornerRadius.optional()
3258
4440
  }).optional(),
3259
4441
  columnParallel: external_zod_namespaceObject.z.object({
3260
- xAxis: zXBandAxis,
3261
- yAxis: zYLinearAxis
4442
+ xAxis: zXBandAxis.optional(),
4443
+ yAxis: zYLinearAxis.optional(),
4444
+ crosshairRect: zCrosshairRect.optional(),
4445
+ stackCornerRadius: zStackCornerRadius.optional()
3262
4446
  }).optional(),
3263
4447
  columnPercent: external_zod_namespaceObject.z.object({
3264
- xAxis: zXBandAxis,
3265
- yAxis: zYLinearAxis
4448
+ xAxis: zXBandAxis.optional(),
4449
+ yAxis: zYLinearAxis.optional(),
4450
+ crosshairRect: zCrosshairRect.optional(),
4451
+ stackCornerRadius: zStackCornerRadius.optional()
3266
4452
  }).optional(),
3267
4453
  bar: external_zod_namespaceObject.z.object({
3268
- xAxis: zXLinearAxis,
3269
- yAxis: zYBandAxis
4454
+ xAxis: zXLinearAxis.optional(),
4455
+ yAxis: zYBandAxis.optional(),
4456
+ crosshairRect: zCrosshairRect.optional(),
4457
+ stackCornerRadius: zStackCornerRadius.optional()
3270
4458
  }).optional(),
3271
4459
  barParallel: external_zod_namespaceObject.z.object({
3272
- xAxis: zXLinearAxis,
3273
- yAxis: zYBandAxis
4460
+ xAxis: zXLinearAxis.optional(),
4461
+ yAxis: zYBandAxis.optional(),
4462
+ crosshairRect: zCrosshairRect.optional(),
4463
+ stackCornerRadius: zStackCornerRadius.optional()
3274
4464
  }).optional(),
3275
4465
  barPercent: external_zod_namespaceObject.z.object({
3276
- xAxis: zXLinearAxis,
3277
- yAxis: zYBandAxis
4466
+ xAxis: zXLinearAxis.optional(),
4467
+ yAxis: zYBandAxis.optional(),
4468
+ crosshairRect: zCrosshairRect.optional(),
4469
+ stackCornerRadius: zStackCornerRadius.optional()
3278
4470
  }).optional(),
3279
4471
  area: external_zod_namespaceObject.z.object({
3280
- xAxis: zXBandAxis,
3281
- yAxis: zYLinearAxis
4472
+ xAxis: zXBandAxis.optional(),
4473
+ yAxis: zYLinearAxis.optional(),
4474
+ crosshairLine: zCrosshairLine.optional()
3282
4475
  }).optional(),
3283
4476
  areaPercent: external_zod_namespaceObject.z.object({
3284
- xAxis: zXBandAxis,
3285
- yAxis: zYLinearAxis
4477
+ xAxis: zXBandAxis.optional(),
4478
+ yAxis: zYLinearAxis.optional(),
4479
+ crosshairLine: zCrosshairLine.optional()
3286
4480
  }).optional(),
3287
4481
  pie: external_zod_namespaceObject.z.object({}).optional(),
3288
4482
  donut: external_zod_namespaceObject.z.object({}).optional(),
@@ -3291,18 +4485,31 @@ const zConfig = external_zod_namespaceObject.z.object({
3291
4485
  table: external_zod_namespaceObject.z.object({}).optional(),
3292
4486
  pivotTable: external_zod_namespaceObject.z.object({}).optional()
3293
4487
  });
3294
- const zCustomThemeConfig = external_zod_namespaceObject.z.object({
3295
- baseConfig: zBaseConfig.optional(),
3296
- config: zConfig.optional()
3297
- });
3298
- const zCustomTheme = external_zod_namespaceObject.z.record(external_zod_namespaceObject.z.string(), zCustomThemeConfig).optional();
3299
- const zTheme = external_zod_namespaceObject.z.string();
3300
4488
  const zSelector = external_zod_namespaceObject.z.union([
3301
4489
  external_zod_namespaceObject.z.string(),
3302
4490
  external_zod_namespaceObject.z.number(),
3303
4491
  external_zod_namespaceObject.z.object({
3304
4492
  field: external_zod_namespaceObject.z.string(),
3305
- operator: external_zod_namespaceObject.z.string(),
4493
+ operator: external_zod_namespaceObject.z["enum"]([
4494
+ '=',
4495
+ '==',
4496
+ '!=',
4497
+ '>',
4498
+ '<',
4499
+ '>=',
4500
+ '<=',
4501
+ 'between'
4502
+ ]).optional(),
4503
+ op: external_zod_namespaceObject.z["enum"]([
4504
+ '=',
4505
+ '==',
4506
+ '!=',
4507
+ '>',
4508
+ '<',
4509
+ '>=',
4510
+ '<=',
4511
+ 'between'
4512
+ ]).optional(),
3306
4513
  value: external_zod_namespaceObject.z.union([
3307
4514
  external_zod_namespaceObject.z.string(),
3308
4515
  external_zod_namespaceObject.z.number(),
@@ -3314,7 +4521,14 @@ const zSelector = external_zod_namespaceObject.z.union([
3314
4521
  }),
3315
4522
  external_zod_namespaceObject.z.object({
3316
4523
  field: external_zod_namespaceObject.z.string(),
3317
- operator: external_zod_namespaceObject.z.string(),
4524
+ operator: external_zod_namespaceObject.z["enum"]([
4525
+ 'in',
4526
+ 'not in'
4527
+ ]).optional(),
4528
+ op: external_zod_namespaceObject.z["enum"]([
4529
+ 'in',
4530
+ 'not in'
4531
+ ]).optional(),
3318
4532
  value: external_zod_namespaceObject.z.union([
3319
4533
  external_zod_namespaceObject.z.string(),
3320
4534
  external_zod_namespaceObject.z.number(),
@@ -3326,33 +4540,153 @@ const zSelector = external_zod_namespaceObject.z.union([
3326
4540
  })
3327
4541
  ]);
3328
4542
  const zSelectors = external_zod_namespaceObject.z.array(zSelector);
3329
- const zBarStyle = external_zod_namespaceObject.z.object({
4543
+ const zAnnotationPoint = external_zod_namespaceObject.z.object({
4544
+ selector: external_zod_namespaceObject.z.union([
4545
+ zSelector,
4546
+ zSelectors
4547
+ ]),
4548
+ text: external_zod_namespaceObject.z.string().or(external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string())).optional(),
4549
+ textColor: external_zod_namespaceObject.z.string().default('#ffffff').optional(),
4550
+ textFontSize: external_zod_namespaceObject.z.number().default(12).optional(),
4551
+ textFontWeight: external_zod_namespaceObject.z.number().default(400).optional(),
4552
+ textAlign: external_zod_namespaceObject.z["enum"]([
4553
+ 'left',
4554
+ 'right',
4555
+ 'center'
4556
+ ]).default('center').optional(),
4557
+ textBaseline: external_zod_namespaceObject.z["enum"]([
4558
+ 'top',
4559
+ 'middle',
4560
+ 'bottom'
4561
+ ]).default('middle').optional(),
4562
+ backgroundVisible: external_zod_namespaceObject.z.boolean().default(true).optional(),
4563
+ backgroundColor: external_zod_namespaceObject.z.string().default('#212121').optional(),
4564
+ backgroundBorderColor: external_zod_namespaceObject.z.string().optional(),
4565
+ backgroundBorderWidth: external_zod_namespaceObject.z.number().default(1).optional(),
4566
+ backgroundBorderRadius: external_zod_namespaceObject.z.number().default(4).optional(),
4567
+ backgroundPadding: external_zod_namespaceObject.z.number().optional(),
4568
+ offsetY: external_zod_namespaceObject.z.number().default(0).optional(),
4569
+ offsetX: external_zod_namespaceObject.z.number().default(0).optional()
4570
+ });
4571
+ const zAnnotationVerticalLine = external_zod_namespaceObject.z.object({
3330
4572
  selector: external_zod_namespaceObject.z.union([
3331
4573
  zSelector,
3332
4574
  zSelectors
3333
4575
  ]).optional(),
3334
- barColor: external_zod_namespaceObject.z.string().optional(),
3335
- barColorOpacity: external_zod_namespaceObject.z.number().optional(),
3336
- barBorderColor: external_zod_namespaceObject.z.string().optional(),
3337
- barBorderWidth: external_zod_namespaceObject.z.number().optional(),
3338
- barBorderStyle: external_zod_namespaceObject.z.union([
4576
+ xValue: external_zod_namespaceObject.z.union([
4577
+ external_zod_namespaceObject.z.number(),
4578
+ external_zod_namespaceObject.z.string(),
4579
+ external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.union([
4580
+ external_zod_namespaceObject.z.number(),
4581
+ external_zod_namespaceObject.z.string()
4582
+ ]))
4583
+ ]).optional(),
4584
+ text: external_zod_namespaceObject.z.string().or(external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string())).optional(),
4585
+ textPosition: external_zod_namespaceObject.z["enum"]([
4586
+ 'outsideStart',
4587
+ 'outsideEnd',
4588
+ 'outsideMiddle',
4589
+ 'insideStart',
4590
+ 'insideMiddle',
4591
+ 'insideEnd'
4592
+ ]).default('insideEnd').optional(),
4593
+ textColor: external_zod_namespaceObject.z.string().default('#ffffff').optional(),
4594
+ textFontSize: external_zod_namespaceObject.z.number().default(12).optional(),
4595
+ textFontWeight: external_zod_namespaceObject.z.number().default(400).optional(),
4596
+ textAlign: external_zod_namespaceObject.z["enum"]([
4597
+ 'left',
4598
+ 'right',
4599
+ 'center'
4600
+ ]).default('right').optional(),
4601
+ textBaseline: external_zod_namespaceObject.z["enum"]([
4602
+ 'top',
4603
+ 'middle',
4604
+ 'bottom'
4605
+ ]).default('top').optional(),
4606
+ lineVisible: external_zod_namespaceObject.z.boolean().optional(),
4607
+ lineColor: external_zod_namespaceObject.z.string().optional(),
4608
+ lineWidth: external_zod_namespaceObject.z.number().optional(),
4609
+ lineStyle: external_zod_namespaceObject.z.union([
3339
4610
  external_zod_namespaceObject.z.literal('solid'),
3340
4611
  external_zod_namespaceObject.z.literal('dashed'),
3341
4612
  external_zod_namespaceObject.z.literal('dotted')
3342
4613
  ]).optional(),
3343
- barRadius: external_zod_namespaceObject.z.union([
3344
- external_zod_namespaceObject.z.number(),
3345
- external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.number())
3346
- ]).optional()
4614
+ backgroundVisible: external_zod_namespaceObject.z.boolean().default(true).optional(),
4615
+ backgroundColor: external_zod_namespaceObject.z.string().default('#212121').optional(),
4616
+ backgroundBorderColor: external_zod_namespaceObject.z.string().optional(),
4617
+ backgroundBorderWidth: external_zod_namespaceObject.z.number().default(1).optional(),
4618
+ backgroundBorderRadius: external_zod_namespaceObject.z.number().default(4).optional(),
4619
+ backgroundPadding: external_zod_namespaceObject.z.number().optional(),
4620
+ offsetY: external_zod_namespaceObject.z.number().default(0).optional(),
4621
+ offsetX: external_zod_namespaceObject.z.number().default(0).optional()
3347
4622
  });
3348
- const zMarkStyle = external_zod_namespaceObject.z.object({
3349
- barStyle: zBarStyle.optional()
4623
+ const zAnnotationHorizontalLine = external_zod_namespaceObject.z.object({
4624
+ selector: external_zod_namespaceObject.z.union([
4625
+ zSelector,
4626
+ zSelectors
4627
+ ]).optional(),
4628
+ yValue: external_zod_namespaceObject.z.union([
4629
+ external_zod_namespaceObject.z.number(),
4630
+ external_zod_namespaceObject.z.string(),
4631
+ external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.union([
4632
+ external_zod_namespaceObject.z.number(),
4633
+ external_zod_namespaceObject.z.string()
4634
+ ]))
4635
+ ]).optional(),
4636
+ text: external_zod_namespaceObject.z.string().or(external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string())).optional(),
4637
+ textPosition: external_zod_namespaceObject.z["enum"]([
4638
+ 'outsideStart',
4639
+ 'outsideEnd',
4640
+ 'outsideMiddle',
4641
+ 'insideStart',
4642
+ 'insideMiddle',
4643
+ 'insideEnd'
4644
+ ]).default('insideMiddle').optional(),
4645
+ textColor: external_zod_namespaceObject.z.string().default('#ffffff').optional(),
4646
+ textFontSize: external_zod_namespaceObject.z.number().default(12).optional(),
4647
+ textFontWeight: external_zod_namespaceObject.z.number().default(400).optional(),
4648
+ textAlign: external_zod_namespaceObject.z["enum"]([
4649
+ 'left',
4650
+ 'right',
4651
+ 'center'
4652
+ ]).default('center').optional(),
4653
+ textBaseline: external_zod_namespaceObject.z["enum"]([
4654
+ 'top',
4655
+ 'middle',
4656
+ 'bottom'
4657
+ ]).default('bottom').optional(),
4658
+ lineVisible: external_zod_namespaceObject.z.boolean().optional(),
4659
+ lineColor: external_zod_namespaceObject.z.string().optional(),
4660
+ lineWidth: external_zod_namespaceObject.z.number().optional(),
4661
+ lineStyle: external_zod_namespaceObject.z.union([
4662
+ external_zod_namespaceObject.z.literal('solid'),
4663
+ external_zod_namespaceObject.z.literal('dashed'),
4664
+ external_zod_namespaceObject.z.literal('dotted')
4665
+ ]).optional(),
4666
+ backgroundVisible: external_zod_namespaceObject.z.boolean().default(true).optional(),
4667
+ backgroundColor: external_zod_namespaceObject.z.string().default('#212121').optional(),
4668
+ backgroundBorderColor: external_zod_namespaceObject.z.string().optional(),
4669
+ backgroundBorderWidth: external_zod_namespaceObject.z.number().default(1).optional(),
4670
+ backgroundBorderRadius: external_zod_namespaceObject.z.number().default(4).optional(),
4671
+ backgroundPadding: external_zod_namespaceObject.z.number().optional(),
4672
+ offsetY: external_zod_namespaceObject.z.number().default(0).optional(),
4673
+ offsetX: external_zod_namespaceObject.z.number().default(0).optional()
3350
4674
  });
3351
- const zAnnotationPoint = external_zod_namespaceObject.z.object({
4675
+ const zAnnotationArea = external_zod_namespaceObject.z.object({
3352
4676
  selector: external_zod_namespaceObject.z.union([
3353
4677
  zSelector,
3354
4678
  zSelectors
3355
4679
  ]),
4680
+ textPosition: external_zod_namespaceObject.z["enum"]([
4681
+ 'top',
4682
+ 'topRight',
4683
+ 'topLeft',
4684
+ 'bottom',
4685
+ 'bottomLeft',
4686
+ 'bottomRight',
4687
+ 'left',
4688
+ 'right'
4689
+ ]).default('top').optional(),
3356
4690
  text: external_zod_namespaceObject.z.string().or(external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.string())).optional(),
3357
4691
  textColor: external_zod_namespaceObject.z.string().default('#ffffff').optional(),
3358
4692
  textFontSize: external_zod_namespaceObject.z.number().default(12).optional(),
@@ -3373,12 +4707,95 @@ const zAnnotationPoint = external_zod_namespaceObject.z.object({
3373
4707
  backgroundBorderWidth: external_zod_namespaceObject.z.number().default(1).optional(),
3374
4708
  backgroundBorderRadius: external_zod_namespaceObject.z.number().default(4).optional(),
3375
4709
  backgroundPadding: external_zod_namespaceObject.z.number().optional(),
3376
- offsetY: external_zod_namespaceObject.z.number().default(0).optional(),
3377
- offsetX: external_zod_namespaceObject.z.number().default(0).optional()
4710
+ areaColor: external_zod_namespaceObject.z.string().default('red').optional(),
4711
+ areaColorOpacity: external_zod_namespaceObject.z.number().default(0.5).optional(),
4712
+ areaBorderColor: external_zod_namespaceObject.z.number().optional(),
4713
+ areaBorderWidth: external_zod_namespaceObject.z.number().default(2).optional(),
4714
+ areaBorderRadius: external_zod_namespaceObject.z.number().default(4).optional(),
4715
+ outerPadding: external_zod_namespaceObject.z.number().optional()
3378
4716
  });
3379
4717
  const zAnnotation = external_zod_namespaceObject.z.object({
3380
- annotationPoint: zAnnotationPoint.or(external_zod_namespaceObject.z.array(zAnnotationPoint)).optional()
4718
+ annotationPoint: zAnnotationPoint.or(external_zod_namespaceObject.z.array(zAnnotationPoint)).optional(),
4719
+ annotationVerticalLine: zAnnotationVerticalLine.or(external_zod_namespaceObject.z.array(zAnnotationVerticalLine)).optional(),
4720
+ annotationHorizontalLine: zAnnotationHorizontalLine.or(external_zod_namespaceObject.z.array(zAnnotationHorizontalLine)).optional(),
4721
+ annotationArea: zAnnotationArea.or(external_zod_namespaceObject.z.array(zAnnotationArea)).optional()
4722
+ });
4723
+ const zBarStyle = external_zod_namespaceObject.z.object({
4724
+ selector: external_zod_namespaceObject.z.union([
4725
+ zSelector,
4726
+ zSelectors
4727
+ ]).optional(),
4728
+ barColor: external_zod_namespaceObject.z.string().optional(),
4729
+ barColorOpacity: external_zod_namespaceObject.z.number().optional(),
4730
+ barBorderColor: external_zod_namespaceObject.z.string().optional(),
4731
+ barBorderWidth: external_zod_namespaceObject.z.number().optional(),
4732
+ barBorderStyle: external_zod_namespaceObject.z.union([
4733
+ external_zod_namespaceObject.z.literal('solid'),
4734
+ external_zod_namespaceObject.z.literal('dashed'),
4735
+ external_zod_namespaceObject.z.literal('dotted')
4736
+ ]).optional(),
4737
+ barRadius: external_zod_namespaceObject.z.union([
4738
+ external_zod_namespaceObject.z.number(),
4739
+ external_zod_namespaceObject.z.array(external_zod_namespaceObject.z.number())
4740
+ ]).optional()
4741
+ });
4742
+ const zPointStyle = external_zod_namespaceObject.z.object({
4743
+ selector: external_zod_namespaceObject.z.union([
4744
+ zSelector,
4745
+ zSelectors
4746
+ ]).optional(),
4747
+ pointSize: external_zod_namespaceObject.z.number().optional(),
4748
+ pointColor: external_zod_namespaceObject.z.string().optional(),
4749
+ pointColorOpacity: external_zod_namespaceObject.z.number().optional(),
4750
+ pointBorderColor: external_zod_namespaceObject.z.string().optional(),
4751
+ pointBorderWidth: external_zod_namespaceObject.z.number().optional(),
4752
+ pointBorderStyle: external_zod_namespaceObject.z.union([
4753
+ external_zod_namespaceObject.z["enum"]([
4754
+ 'solid',
4755
+ 'dashed',
4756
+ 'dotted'
4757
+ ])
4758
+ ]).optional()
3381
4759
  });
4760
+ const zLineStyle = external_zod_namespaceObject.z.object({
4761
+ selector: external_zod_namespaceObject.z.union([
4762
+ zSelector,
4763
+ zSelectors
4764
+ ]).optional(),
4765
+ lineSmooth: external_zod_namespaceObject.z.boolean().default(true).optional(),
4766
+ lineColor: external_zod_namespaceObject.z.string().optional(),
4767
+ lineColorOpacity: external_zod_namespaceObject.z.number().optional(),
4768
+ lineWidth: external_zod_namespaceObject.z.number().optional(),
4769
+ lineStyle: external_zod_namespaceObject.z.union([
4770
+ external_zod_namespaceObject.z["enum"]([
4771
+ 'solid',
4772
+ 'dashed',
4773
+ 'dotted'
4774
+ ])
4775
+ ]).optional()
4776
+ });
4777
+ const zAreaStyle = external_zod_namespaceObject.z.object({
4778
+ selector: external_zod_namespaceObject.z.union([
4779
+ zSelector,
4780
+ zSelectors
4781
+ ]).optional(),
4782
+ areaColor: external_zod_namespaceObject.z.string().optional(),
4783
+ areaColorOpacity: external_zod_namespaceObject.z.number().optional()
4784
+ });
4785
+ const zMarkStyle = external_zod_namespaceObject.z.object({
4786
+ barStyle: zBarStyle.or(external_zod_namespaceObject.z.array(zBarStyle)).optional(),
4787
+ pointStyle: zPointStyle.or(external_zod_namespaceObject.z.array(zPointStyle)).optional(),
4788
+ lineStyle: zLineStyle.or(external_zod_namespaceObject.z.array(zLineStyle)).optional(),
4789
+ areaStyle: zAreaStyle.or(external_zod_namespaceObject.z.array(zAreaStyle)).optional()
4790
+ });
4791
+ const zCustomThemeConfig = external_zod_namespaceObject.z.object({
4792
+ baseConfig: zBaseConfig.optional(),
4793
+ config: zConfig.optional(),
4794
+ annotation: zAnnotation.optional(),
4795
+ markStyle: zMarkStyle.optional()
4796
+ });
4797
+ const zCustomTheme = external_zod_namespaceObject.z.record(external_zod_namespaceObject.z.string(), zCustomThemeConfig).optional();
4798
+ const zTheme = external_zod_namespaceObject.z.string();
3382
4799
  exports.Builder = __webpack_exports__.Builder;
3383
4800
  exports.FoldMeasureId = __webpack_exports__.FoldMeasureId;
3384
4801
  exports.FoldMeasureName = __webpack_exports__.FoldMeasureName;
@@ -3402,10 +4819,13 @@ exports.columnParallelSpecPipeline = __webpack_exports__.columnParallelSpecPipel
3402
4819
  exports.columnPercentAdvancedPipeline = __webpack_exports__.columnPercentAdvancedPipeline;
3403
4820
  exports.columnPercentSpecPipeline = __webpack_exports__.columnPercentSpecPipeline;
3404
4821
  exports.columnSpecPipeline = __webpack_exports__.columnSpecPipeline;
4822
+ exports.createFormatter = __webpack_exports__.createFormatter;
4823
+ exports.createNumFormatter = __webpack_exports__.createNumFormatter;
3405
4824
  exports.darkTheme = __webpack_exports__.darkTheme;
3406
4825
  exports.dataReshapeFor1D1M = __webpack_exports__.dataReshapeFor1D1M;
3407
4826
  exports.dataReshapeFor2D1M = __webpack_exports__.dataReshapeFor2D1M;
3408
4827
  exports.execPipeline = __webpack_exports__.execPipeline;
4828
+ exports.findMeasureById = __webpack_exports__.findMeasureById;
3409
4829
  exports.foldMeasures = __webpack_exports__.foldMeasures;
3410
4830
  exports.isPivotChart = __webpack_exports__.isPivotChart;
3411
4831
  exports.isVChart = __webpack_exports__.isVChart;
@@ -3430,7 +4850,11 @@ exports.registerLightTheme = __webpack_exports__.registerLightTheme;
3430
4850
  exports.registerLine = __webpack_exports__.registerLine;
3431
4851
  exports.unfoldDimensions = __webpack_exports__.unfoldDimensions;
3432
4852
  exports.zAnnotation = __webpack_exports__.zAnnotation;
4853
+ exports.zAnnotationArea = __webpack_exports__.zAnnotationArea;
4854
+ exports.zAnnotationHorizontalLine = __webpack_exports__.zAnnotationHorizontalLine;
3433
4855
  exports.zAnnotationPoint = __webpack_exports__.zAnnotationPoint;
4856
+ exports.zAnnotationVerticalLine = __webpack_exports__.zAnnotationVerticalLine;
4857
+ exports.zAreaStyle = __webpack_exports__.zAreaStyle;
3434
4858
  exports.zAxis = __webpack_exports__.zAxis;
3435
4859
  exports.zBackgroundColor = __webpack_exports__.zBackgroundColor;
3436
4860
  exports.zBarStyle = __webpack_exports__.zBarStyle;
@@ -3438,6 +4862,8 @@ exports.zBaseConfig = __webpack_exports__.zBaseConfig;
3438
4862
  exports.zChartType = __webpack_exports__.zChartType;
3439
4863
  exports.zColor = __webpack_exports__.zColor;
3440
4864
  exports.zConfig = __webpack_exports__.zConfig;
4865
+ exports.zCrosshairLine = __webpack_exports__.zCrosshairLine;
4866
+ exports.zCrosshairRect = __webpack_exports__.zCrosshairRect;
3441
4867
  exports.zCustomTheme = __webpack_exports__.zCustomTheme;
3442
4868
  exports.zCustomThemeConfig = __webpack_exports__.zCustomThemeConfig;
3443
4869
  exports.zDataset = __webpack_exports__.zDataset;
@@ -3449,10 +4875,14 @@ exports.zEncoding = __webpack_exports__.zEncoding;
3449
4875
  exports.zFoldInfo = __webpack_exports__.zFoldInfo;
3450
4876
  exports.zLabel = __webpack_exports__.zLabel;
3451
4877
  exports.zLegend = __webpack_exports__.zLegend;
4878
+ exports.zLineStyle = __webpack_exports__.zLineStyle;
3452
4879
  exports.zMarkStyle = __webpack_exports__.zMarkStyle;
3453
4880
  exports.zMeasure = __webpack_exports__.zMeasure;
3454
4881
  exports.zMeasureGroup = __webpack_exports__.zMeasureGroup;
3455
4882
  exports.zMeasures = __webpack_exports__.zMeasures;
4883
+ exports.zNumFormat = __webpack_exports__.zNumFormat;
4884
+ exports.zPointStyle = __webpack_exports__.zPointStyle;
4885
+ exports.zStackCornerRadius = __webpack_exports__.zStackCornerRadius;
3456
4886
  exports.zTheme = __webpack_exports__.zTheme;
3457
4887
  exports.zTooltip = __webpack_exports__.zTooltip;
3458
4888
  exports.zUnfoldInfo = __webpack_exports__.zUnfoldInfo;
@@ -3484,10 +4914,13 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
3484
4914
  "columnPercentAdvancedPipeline",
3485
4915
  "columnPercentSpecPipeline",
3486
4916
  "columnSpecPipeline",
4917
+ "createFormatter",
4918
+ "createNumFormatter",
3487
4919
  "darkTheme",
3488
4920
  "dataReshapeFor1D1M",
3489
4921
  "dataReshapeFor2D1M",
3490
4922
  "execPipeline",
4923
+ "findMeasureById",
3491
4924
  "foldMeasures",
3492
4925
  "isPivotChart",
3493
4926
  "isVChart",
@@ -3512,7 +4945,11 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
3512
4945
  "registerLine",
3513
4946
  "unfoldDimensions",
3514
4947
  "zAnnotation",
4948
+ "zAnnotationArea",
4949
+ "zAnnotationHorizontalLine",
3515
4950
  "zAnnotationPoint",
4951
+ "zAnnotationVerticalLine",
4952
+ "zAreaStyle",
3516
4953
  "zAxis",
3517
4954
  "zBackgroundColor",
3518
4955
  "zBarStyle",
@@ -3520,6 +4957,8 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
3520
4957
  "zChartType",
3521
4958
  "zColor",
3522
4959
  "zConfig",
4960
+ "zCrosshairLine",
4961
+ "zCrosshairRect",
3523
4962
  "zCustomTheme",
3524
4963
  "zCustomThemeConfig",
3525
4964
  "zDataset",
@@ -3531,10 +4970,14 @@ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
3531
4970
  "zFoldInfo",
3532
4971
  "zLabel",
3533
4972
  "zLegend",
4973
+ "zLineStyle",
3534
4974
  "zMarkStyle",
3535
4975
  "zMeasure",
3536
4976
  "zMeasureGroup",
3537
4977
  "zMeasures",
4978
+ "zNumFormat",
4979
+ "zPointStyle",
4980
+ "zStackCornerRadius",
3538
4981
  "zTheme",
3539
4982
  "zTooltip",
3540
4983
  "zUnfoldInfo",