@sentio/ui-dashboard 0.2.6 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3667,6 +3667,252 @@ ${percent}%`;
3667
3667
  );
3668
3668
  PieChart2.displayName = "PieChart";
3669
3669
 
3670
+ // src/charts/BarGaugeChart.tsx
3671
+ import { forwardRef as forwardRef3, useEffect as useEffect7, useMemo as useMemo7, useState as useState9 } from "react";
3672
+ import { jsx as jsx23 } from "react/jsx-runtime";
3673
+ var compareOption = { numeric: true };
3674
+ var BarGaugeChart = forwardRef3(
3675
+ (props, ref) => {
3676
+ const {
3677
+ series: input,
3678
+ legend,
3679
+ valueFormatter,
3680
+ config,
3681
+ title,
3682
+ minHeight,
3683
+ loading,
3684
+ style,
3685
+ onInitChart
3686
+ } = props;
3687
+ const [series, setSeries] = useState9([]);
3688
+ const [xAxis, setXAxis] = useState9();
3689
+ const [yAxis, setYAxis] = useState9();
3690
+ const isVertical = config?.barGauge?.direction === "VERTICAL";
3691
+ useEffect7(() => {
3692
+ const tmpData = input.map((s) => {
3693
+ const d = s.data && s.data[0];
3694
+ return { name: s.name, value: d && d[1] };
3695
+ });
3696
+ const sort = config?.barGauge?.sort;
3697
+ switch (sort?.sortBy) {
3698
+ case "ByName":
3699
+ tmpData.sort(
3700
+ (a, b) => sort.orderDesc ? b.name.localeCompare(a.name, void 0, compareOption) : a.name.localeCompare(b.name, void 0, compareOption)
3701
+ );
3702
+ break;
3703
+ case "ByValue":
3704
+ tmpData.sort(
3705
+ (a, b) => sort.orderDesc ? b.value - a.value : a.value - b.value
3706
+ );
3707
+ break;
3708
+ }
3709
+ const series2 = [
3710
+ {
3711
+ type: "bar",
3712
+ data: tmpData.map((d) => d.value),
3713
+ label: {
3714
+ show: config?.valueConfig ? config.valueConfig.showValueLabel : false,
3715
+ position: config?.barGauge?.direction == "VERTICAL" ? "top" : "right",
3716
+ formatter: ({ value }) => valueFormatter(value)
3717
+ }
3718
+ }
3719
+ ];
3720
+ const seriesAxis = {
3721
+ type: "category",
3722
+ data: tmpData.map((s) => s.name),
3723
+ axisLabel: config?.barGauge?.direction == "VERTICAL" ? { interval: 0, rotate: 30 } : {}
3724
+ };
3725
+ if (config?.xAxis?.name) {
3726
+ seriesAxis.name = config?.xAxis?.name;
3727
+ seriesAxis.nameLocation = "middle";
3728
+ seriesAxis.nameGap = isVertical ? 45 : 60;
3729
+ }
3730
+ const valueAxis = {
3731
+ type: "value",
3732
+ axisLabel: (
3733
+ // show dates on value-axis label is weird
3734
+ config?.valueConfig?.valueFormatter == "DateFormatter" ? void 0 : { formatter: (v) => valueFormatter(v) }
3735
+ )
3736
+ };
3737
+ let xAxis2, yAxis2;
3738
+ switch (config?.barGauge?.direction) {
3739
+ case "VERTICAL":
3740
+ xAxis2 = seriesAxis;
3741
+ yAxis2 = valueAxis;
3742
+ break;
3743
+ case "HORIZONTAL":
3744
+ default:
3745
+ xAxis2 = valueAxis;
3746
+ yAxis2 = seriesAxis;
3747
+ }
3748
+ setSeries(series2);
3749
+ setXAxis(xAxis2);
3750
+ setYAxis(yAxis2);
3751
+ }, [
3752
+ input,
3753
+ config?.barGauge?.calculation,
3754
+ config?.barGauge?.sort,
3755
+ config?.valueConfig?.showValueLabel,
3756
+ config?.xAxis?.name,
3757
+ isVertical,
3758
+ valueFormatter
3759
+ ]);
3760
+ const dataZoom = useMemo7(() => {
3761
+ if (config?.barGauge?.direction == "HORIZONTAL") {
3762
+ return [
3763
+ {
3764
+ show: series[0]?.data.length > 15,
3765
+ type: "slider",
3766
+ yAxisIndex: 0,
3767
+ zoomLock: true,
3768
+ width: 8,
3769
+ right: 10,
3770
+ top: 5,
3771
+ bottom: 30,
3772
+ minValueSpan: 5,
3773
+ maxValueSpan: 15,
3774
+ orient: "vertical",
3775
+ handleSize: 0,
3776
+ showDetail: false,
3777
+ brushSelect: false,
3778
+ showDataShadow: false
3779
+ },
3780
+ {
3781
+ type: "inside",
3782
+ id: "insideY",
3783
+ yAxisIndex: 0,
3784
+ zoomOnMouseWheel: false,
3785
+ moveOnMouseMove: true,
3786
+ moveOnMouseWheel: true
3787
+ }
3788
+ ];
3789
+ } else {
3790
+ return [
3791
+ {
3792
+ show: series[0]?.data.length > 25,
3793
+ type: "slider",
3794
+ xAxisIndex: 0,
3795
+ zoomLock: true,
3796
+ height: 8,
3797
+ bottom: 5,
3798
+ maxValueSpan: 25,
3799
+ minValueSpan: 10,
3800
+ handleSize: "0",
3801
+ showDetail: false,
3802
+ orient: "horizontal",
3803
+ brushSelect: false,
3804
+ showDataShadow: false
3805
+ },
3806
+ {
3807
+ type: "inside",
3808
+ id: "insideX",
3809
+ xAxisIndex: 0,
3810
+ zoomOnMouseWheel: false,
3811
+ moveOnMouseMove: true,
3812
+ moveOnMouseWheel: true
3813
+ }
3814
+ ];
3815
+ }
3816
+ }, [config, series]);
3817
+ const options = {
3818
+ title: { text: title },
3819
+ grid: {
3820
+ top: title ? 48 : 16,
3821
+ right: 40,
3822
+ bottom: isVertical && config?.xAxis?.name ? 40 : 16,
3823
+ left: !isVertical && config?.xAxis?.name ? 40 : 16,
3824
+ containLabel: true
3825
+ },
3826
+ xAxis,
3827
+ legend: { data: legend, top: -1e4, left: -1e4 },
3828
+ toolbox: { show: false },
3829
+ yAxis,
3830
+ dataZoom,
3831
+ animation: false,
3832
+ series,
3833
+ tooltip: {
3834
+ trigger: "axis",
3835
+ confine: true,
3836
+ extraCssText: "max-width: 50%; max-height: 50vh; overflow-y: auto;"
3837
+ }
3838
+ };
3839
+ return /* @__PURE__ */ jsx23("div", { className: "h-full w-full", children: /* @__PURE__ */ jsx23(
3840
+ ReactEChartsBase,
3841
+ {
3842
+ ref,
3843
+ loading,
3844
+ option: options,
3845
+ minHeight,
3846
+ style,
3847
+ noLegend: true,
3848
+ onInitChart
3849
+ }
3850
+ ) });
3851
+ }
3852
+ );
3853
+ BarGaugeChart.displayName = "BarGaugeChart";
3854
+
3855
+ // src/charts/QueryValueChart.tsx
3856
+ import { forwardRef as forwardRef4, useMemo as useMemo8 } from "react";
3857
+ import { useResizeDetector as useResizeDetector4 } from "react-resize-detector";
3858
+ import { jsx as jsx24 } from "react/jsx-runtime";
3859
+ var QueryValueChart = forwardRef4(
3860
+ (props, ref) => {
3861
+ const {
3862
+ series,
3863
+ valueText,
3864
+ textColor,
3865
+ backgroundColor,
3866
+ minHeight,
3867
+ loading,
3868
+ style,
3869
+ onInitChart
3870
+ } = props;
3871
+ const { width, height, ref: ref2 } = useResizeDetector4();
3872
+ const fontSize = useMemo8(() => {
3873
+ return Math.min(
3874
+ (width || 0) / String(valueText).length,
3875
+ (height || 0) / 1.5
3876
+ );
3877
+ }, [width, height, valueText]);
3878
+ const options = {
3879
+ backgroundColor,
3880
+ grid: { top: 0, right: 0, bottom: 0, left: 0 },
3881
+ toolbox: { show: false },
3882
+ animation: false,
3883
+ series,
3884
+ xAxis: { type: "time", show: false },
3885
+ yAxis: { type: "value", show: false },
3886
+ legend: { show: false },
3887
+ graphic: {
3888
+ type: "text",
3889
+ z: 100,
3890
+ left: "center",
3891
+ top: "middle",
3892
+ style: {
3893
+ text: valueText,
3894
+ fontSize,
3895
+ stroke: textColor,
3896
+ fill: textColor
3897
+ }
3898
+ }
3899
+ };
3900
+ return /* @__PURE__ */ jsx24("div", { className: "h-full w-full", children: /* @__PURE__ */ jsx24("div", { className: "h-full w-full", ref: ref2, children: /* @__PURE__ */ jsx24(
3901
+ ReactEChartsBase,
3902
+ {
3903
+ ref,
3904
+ loading,
3905
+ option: options,
3906
+ minHeight,
3907
+ style,
3908
+ noLegend: true,
3909
+ onInitChart
3910
+ }
3911
+ ) }) });
3912
+ }
3913
+ );
3914
+ QueryValueChart.displayName = "QueryValueChart";
3915
+
3670
3916
  // src/charts/options/LineControls.tsx
3671
3917
  import { produce as produce4 } from "immer";
3672
3918
  import {
@@ -3674,7 +3920,7 @@ import {
3674
3920
  NewButtonGroup as ButtonGroup2,
3675
3921
  Checkbox
3676
3922
  } from "@sentio/ui-core";
3677
- import { jsx as jsx23, jsxs as jsxs16 } from "react/jsx-runtime";
3923
+ import { jsx as jsx25, jsxs as jsxs16 } from "react/jsx-runtime";
3678
3924
  var lineStyles = [
3679
3925
  { label: "Solid", value: "Solid" },
3680
3926
  { label: "Dotted", value: "Dotted" }
@@ -3694,13 +3940,13 @@ var LineControls = ({ config, defaultOpen, onChange }) => {
3694
3940
  })
3695
3941
  );
3696
3942
  };
3697
- return /* @__PURE__ */ jsx23(
3943
+ return /* @__PURE__ */ jsx25(
3698
3944
  DisclosurePanel,
3699
3945
  {
3700
3946
  title: "Line style",
3701
3947
  containerClassName: "w-full bg-default-bg",
3702
3948
  children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-4", children: [
3703
- /* @__PURE__ */ jsx23(
3949
+ /* @__PURE__ */ jsx25(
3704
3950
  ButtonGroup2,
3705
3951
  {
3706
3952
  buttons: lineStyles,
@@ -3709,7 +3955,7 @@ var LineControls = ({ config, defaultOpen, onChange }) => {
3709
3955
  small: true
3710
3956
  }
3711
3957
  ),
3712
- /* @__PURE__ */ jsx23(
3958
+ /* @__PURE__ */ jsx25(
3713
3959
  Checkbox,
3714
3960
  {
3715
3961
  label: "Smooth Curves",
@@ -3723,16 +3969,16 @@ var LineControls = ({ config, defaultOpen, onChange }) => {
3723
3969
  };
3724
3970
 
3725
3971
  // src/charts/options/LabelControls.tsx
3726
- import { useEffect as useEffect7, useMemo as useMemo7 } from "react";
3972
+ import { useEffect as useEffect8, useMemo as useMemo9 } from "react";
3727
3973
  import { produce as produce5 } from "immer";
3728
3974
  import { Button as NewButton2, DisclosurePanel as DisclosurePanel2, HelpIcon as HelpIcon2 } from "@sentio/ui-core";
3729
- import { jsx as jsx24, jsxs as jsxs17 } from "react/jsx-runtime";
3975
+ import { jsx as jsx26, jsxs as jsxs17 } from "react/jsx-runtime";
3730
3976
  var initialConfig = {
3731
3977
  columns: [],
3732
3978
  alias: ""
3733
3979
  };
3734
3980
  var LabelControls = ({ config, setConfig, defaultOpen }) => {
3735
- useEffect7(() => {
3981
+ useEffect8(() => {
3736
3982
  if (config?.columns && config.columns.length > 0 && !config.alias) {
3737
3983
  const aliasParts = [];
3738
3984
  config.columns.forEach((colConfig) => {
@@ -3762,13 +4008,13 @@ var LabelControls = ({ config, setConfig, defaultOpen }) => {
3762
4008
  })
3763
4009
  );
3764
4010
  };
3765
- const _defaultOpen = useMemo7(() => {
4011
+ const _defaultOpen = useMemo9(() => {
3766
4012
  if (defaultOpen) {
3767
4013
  return true;
3768
4014
  }
3769
4015
  return config?.alias !== "" || config?.columns && config.columns.length > 0;
3770
4016
  }, [config, defaultOpen]);
3771
- return /* @__PURE__ */ jsx24(
4017
+ return /* @__PURE__ */ jsx26(
3772
4018
  DisclosurePanel2,
3773
4019
  {
3774
4020
  title: "Label Controls",
@@ -3778,15 +4024,15 @@ var LabelControls = ({ config, setConfig, defaultOpen }) => {
3778
4024
  /* @__PURE__ */ jsxs17("div", { className: "inline-flex h-8", children: [
3779
4025
  /* @__PURE__ */ jsxs17("span", { className: "sm:text-icontent border-main inline-flex items-center rounded-l-md border border-r-0 bg-gray-50 px-2 font-medium", children: [
3780
4026
  "Label Alias",
3781
- /* @__PURE__ */ jsx24(
4027
+ /* @__PURE__ */ jsx26(
3782
4028
  HelpIcon2,
3783
4029
  {
3784
4030
  text: /* @__PURE__ */ jsxs17("div", { className: "text-icontent text-text-foreground", children: [
3785
- /* @__PURE__ */ jsx24("div", { children: "Series name override or template." }),
4031
+ /* @__PURE__ */ jsx26("div", { children: "Series name override or template." }),
3786
4032
  /* @__PURE__ */ jsxs17("div", { children: [
3787
4033
  "Ex.",
3788
4034
  " ",
3789
- /* @__PURE__ */ jsx24("span", { className: "text-primary mx-1 font-semibold italic", children: "{{contract}}" }),
4035
+ /* @__PURE__ */ jsx26("span", { className: "text-primary mx-1 font-semibold italic", children: "{{contract}}" }),
3790
4036
  " ",
3791
4037
  "will be replaced with the value of the contract label."
3792
4038
  ] })
@@ -3794,7 +4040,7 @@ var LabelControls = ({ config, setConfig, defaultOpen }) => {
3794
4040
  }
3795
4041
  )
3796
4042
  ] }),
3797
- /* @__PURE__ */ jsx24(
4043
+ /* @__PURE__ */ jsx26(
3798
4044
  "input",
3799
4045
  {
3800
4046
  type: "text",
@@ -3805,7 +4051,7 @@ var LabelControls = ({ config, setConfig, defaultOpen }) => {
3805
4051
  }
3806
4052
  )
3807
4053
  ] }),
3808
- /* @__PURE__ */ jsx24(
4054
+ /* @__PURE__ */ jsx26(
3809
4055
  NewButton2,
3810
4056
  {
3811
4057
  type: "button",
@@ -3829,7 +4075,7 @@ import {
3829
4075
  DisclosurePanel as DisclosurePanel3,
3830
4076
  NewButtonGroup as ButtonGroup3
3831
4077
  } from "@sentio/ui-core";
3832
- import { jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
4078
+ import { jsx as jsx27, jsxs as jsxs18 } from "react/jsx-runtime";
3833
4079
  var defaultConfig = {
3834
4080
  pieType: "Pie",
3835
4081
  calculation: "LAST",
@@ -3864,14 +4110,14 @@ function PieChartControls({ config, defaultOpen, onChange }) {
3864
4110
  })
3865
4111
  );
3866
4112
  }
3867
- return /* @__PURE__ */ jsx25(
4113
+ return /* @__PURE__ */ jsx27(
3868
4114
  DisclosurePanel3,
3869
4115
  {
3870
4116
  title: "Pie Chart Options",
3871
4117
  defaultOpen,
3872
4118
  containerClassName: "w-full bg-default-bg",
3873
4119
  children: /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-4", children: [
3874
- /* @__PURE__ */ jsx25("div", { className: "shadow-xs flex rounded-md", children: /* @__PURE__ */ jsx25(
4120
+ /* @__PURE__ */ jsx27("div", { className: "shadow-xs flex rounded-md", children: /* @__PURE__ */ jsx27(
3875
4121
  ButtonGroup3,
3876
4122
  {
3877
4123
  small: true,
@@ -3881,20 +4127,20 @@ function PieChartControls({ config, defaultOpen, onChange }) {
3881
4127
  }
3882
4128
  ) }),
3883
4129
  /* @__PURE__ */ jsxs18("div", { className: "shadow-xs flex rounded-md", children: [
3884
- /* @__PURE__ */ jsx25("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border border-r-0 bg-gray-50 px-3 ", children: "Calculation" }),
3885
- /* @__PURE__ */ jsx25(
4130
+ /* @__PURE__ */ jsx27("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border border-r-0 bg-gray-50 px-3 ", children: "Calculation" }),
4131
+ /* @__PURE__ */ jsx27(
3886
4132
  "select",
3887
4133
  {
3888
4134
  value: config.calculation,
3889
4135
  className: "sm:text-ilabel text-text-foreground border-main hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30 focus:border-primary-600 inline-flex items-center rounded-r-md border pl-4 pr-7",
3890
4136
  onChange: (e) => onCalculationChange(e.target.value),
3891
4137
  children: CalculationItems.map((d) => {
3892
- return /* @__PURE__ */ jsx25("option", { value: d.value, children: d.label }, d.value);
4138
+ return /* @__PURE__ */ jsx27("option", { value: d.value, children: d.label }, d.value);
3893
4139
  })
3894
4140
  }
3895
4141
  )
3896
4142
  ] }),
3897
- /* @__PURE__ */ jsx25(
4143
+ /* @__PURE__ */ jsx27(
3898
4144
  Checkbox2,
3899
4145
  {
3900
4146
  checked: config?.showValue,
@@ -3903,7 +4149,7 @@ function PieChartControls({ config, defaultOpen, onChange }) {
3903
4149
  labelClassName: "whitespace-nowrap"
3904
4150
  }
3905
4151
  ),
3906
- /* @__PURE__ */ jsx25(
4152
+ /* @__PURE__ */ jsx27(
3907
4153
  Checkbox2,
3908
4154
  {
3909
4155
  checked: config?.showPercent,
@@ -3912,7 +4158,7 @@ function PieChartControls({ config, defaultOpen, onChange }) {
3912
4158
  labelClassName: "whitespace-nowrap"
3913
4159
  }
3914
4160
  ),
3915
- /* @__PURE__ */ jsx25(
4161
+ /* @__PURE__ */ jsx27(
3916
4162
  Checkbox2,
3917
4163
  {
3918
4164
  checked: config?.absValue,
@@ -3930,7 +4176,7 @@ function PieChartControls({ config, defaultOpen, onChange }) {
3930
4176
  import { produce as produce7 } from "immer";
3931
4177
  import { defaults as defaults2 } from "lodash";
3932
4178
  import { DisclosurePanel as DisclosurePanel4 } from "@sentio/ui-core";
3933
- import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
4179
+ import { jsx as jsx28, jsxs as jsxs19 } from "react/jsx-runtime";
3934
4180
  var defaultConfig2 = {
3935
4181
  direction: "HORIZONTAL",
3936
4182
  calculation: "LAST",
@@ -3983,7 +4229,7 @@ function BarGaugeControls({ config, defaultOpen, onChange }) {
3983
4229
  })
3984
4230
  );
3985
4231
  }
3986
- return /* @__PURE__ */ jsx26(
4232
+ return /* @__PURE__ */ jsx28(
3987
4233
  DisclosurePanel4,
3988
4234
  {
3989
4235
  title: "Bar Gauge Options",
@@ -3991,54 +4237,54 @@ function BarGaugeControls({ config, defaultOpen, onChange }) {
3991
4237
  containerClassName: "w-full bg-default-bg",
3992
4238
  children: /* @__PURE__ */ jsxs19("div", { className: "flex items-center gap-4", children: [
3993
4239
  /* @__PURE__ */ jsxs19("div", { className: "shadow-xs flex rounded-md", children: [
3994
- /* @__PURE__ */ jsx26("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border border-r-0 bg-gray-50 px-3 ", children: "Direction" }),
3995
- /* @__PURE__ */ jsx26(
4240
+ /* @__PURE__ */ jsx28("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border border-r-0 bg-gray-50 px-3 ", children: "Direction" }),
4241
+ /* @__PURE__ */ jsx28(
3996
4242
  "select",
3997
4243
  {
3998
4244
  value: config.direction,
3999
4245
  className: "sm:text-ilabel border-main text-text-foreground hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30 focus:border-primary-600 inline-flex items-center rounded-r-md border pl-4 pr-7",
4000
4246
  onChange: (e) => onDirectionChange(e.target.value),
4001
4247
  children: directionItems.map((d) => {
4002
- return /* @__PURE__ */ jsx26("option", { value: d.value, children: d.label }, d.value);
4248
+ return /* @__PURE__ */ jsx28("option", { value: d.value, children: d.label }, d.value);
4003
4249
  })
4004
4250
  }
4005
4251
  )
4006
4252
  ] }),
4007
4253
  /* @__PURE__ */ jsxs19("div", { className: "shadow-xs flex rounded-md", children: [
4008
- /* @__PURE__ */ jsx26("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border border-r-0 bg-gray-50 px-3 ", children: "Calculation" }),
4009
- /* @__PURE__ */ jsx26(
4254
+ /* @__PURE__ */ jsx28("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border border-r-0 bg-gray-50 px-3 ", children: "Calculation" }),
4255
+ /* @__PURE__ */ jsx28(
4010
4256
  "select",
4011
4257
  {
4012
4258
  value: config.calculation,
4013
4259
  className: "sm:text-ilabel border-main text-text-foreground hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30 focus:border-primary-600 inline-flex items-center rounded-r-md border pl-4 pr-7",
4014
4260
  onChange: (e) => onCalculationChange(e.target.value),
4015
4261
  children: CalculationItems2.map((d) => {
4016
- return /* @__PURE__ */ jsx26("option", { value: d.value, children: d.label }, d.value);
4262
+ return /* @__PURE__ */ jsx28("option", { value: d.value, children: d.label }, d.value);
4017
4263
  })
4018
4264
  }
4019
4265
  )
4020
4266
  ] }),
4021
4267
  /* @__PURE__ */ jsxs19("div", { className: "shadow-xs flex rounded-md", children: [
4022
- /* @__PURE__ */ jsx26("span", { className: "sm:text-ilabel border-main inline-flex items-center whitespace-nowrap rounded-l-md border border-r-0 bg-gray-50 px-3", children: "Sort by" }),
4023
- /* @__PURE__ */ jsx26(
4268
+ /* @__PURE__ */ jsx28("span", { className: "sm:text-ilabel border-main inline-flex items-center whitespace-nowrap rounded-l-md border border-r-0 bg-gray-50 px-3", children: "Sort by" }),
4269
+ /* @__PURE__ */ jsx28(
4024
4270
  "select",
4025
4271
  {
4026
4272
  value: config?.sort?.sortBy,
4027
4273
  className: "sm:text-ilabel border-main text-text-foreground hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30 focus:border-primary-600 inline-flex items-center border pl-4 pr-7",
4028
4274
  onChange: (e) => onSortByChange(e.target.value),
4029
4275
  children: sortByItems.map((d) => {
4030
- return /* @__PURE__ */ jsx26("option", { value: d.value, children: d.label }, d.value);
4276
+ return /* @__PURE__ */ jsx28("option", { value: d.value, children: d.label }, d.value);
4031
4277
  })
4032
4278
  }
4033
4279
  ),
4034
- /* @__PURE__ */ jsx26(
4280
+ /* @__PURE__ */ jsx28(
4035
4281
  "select",
4036
4282
  {
4037
4283
  value: config?.sort?.orderDesc + "",
4038
4284
  className: "sm:text-ilabel border-main text-text-foreground hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30 focus:border-primary-600 inline-flex items-center rounded-r-md border border-l-0 pl-4 pr-7",
4039
4285
  onChange: (e) => onOrderChange(e.target.value === "true"),
4040
4286
  children: orderItems.map((d) => {
4041
- return /* @__PURE__ */ jsx26("option", { value: d.value + "", children: d.label }, d.label);
4287
+ return /* @__PURE__ */ jsx28("option", { value: d.value + "", children: d.label }, d.label);
4042
4288
  })
4043
4289
  }
4044
4290
  )
@@ -4050,13 +4296,30 @@ function BarGaugeControls({ config, defaultOpen, onChange }) {
4050
4296
 
4051
4297
  // src/charts/options/ValueOptions.tsx
4052
4298
  import { produce as produce9 } from "immer";
4053
- import { ComboInput, classNames as classNames8 } from "@sentio/ui-core";
4299
+ import { ComboInput, classNames as classNames9 } from "@sentio/ui-core";
4300
+
4301
+ // src/charts/options/controls-ui.tsx
4302
+ import { classNames as classNames7 } from "@sentio/ui-core";
4303
+ import { jsx as jsx29 } from "react/jsx-runtime";
4304
+ var AddonLabel = ({
4305
+ className,
4306
+ children
4307
+ }) => /* @__PURE__ */ jsx29(
4308
+ "span",
4309
+ {
4310
+ className: classNames7(
4311
+ "sm:text-icontent border-main inline-flex items-center whitespace-nowrap bg-gray-50",
4312
+ className
4313
+ ),
4314
+ children
4315
+ }
4316
+ );
4054
4317
 
4055
4318
  // src/charts/options/ValueStringMapping.tsx
4056
4319
  import { LuPlus, LuTrash2 } from "react-icons/lu";
4057
- import { Button, classNames as classNames7 } from "@sentio/ui-core";
4320
+ import { Button, classNames as classNames8 } from "@sentio/ui-core";
4058
4321
  import { produce as produce8 } from "immer";
4059
- import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
4322
+ import { jsx as jsx30, jsxs as jsxs20 } from "react/jsx-runtime";
4060
4323
  var operators = {
4061
4324
  ">": "greater than",
4062
4325
  ">=": "greater or equal",
@@ -4066,17 +4329,17 @@ var operators = {
4066
4329
  "<=": "less or equal"
4067
4330
  };
4068
4331
  var renderTreeLine = (index, isLast) => {
4069
- return /* @__PURE__ */ jsx27("div", { className: "mr-2 flex h-12 w-3 flex-col items-center justify-center", children: /* @__PURE__ */ jsxs20("div", { className: "flex h-full w-full items-center", children: [
4070
- /* @__PURE__ */ jsx27(
4332
+ return /* @__PURE__ */ jsx30("div", { className: "mr-2 flex h-12 w-3 flex-col items-center justify-center", children: /* @__PURE__ */ jsxs20("div", { className: "flex h-full w-full items-center", children: [
4333
+ /* @__PURE__ */ jsx30(
4071
4334
  "div",
4072
4335
  {
4073
- className: classNames7(
4336
+ className: classNames8(
4074
4337
  "w-px bg-gray-300",
4075
4338
  isLast ? "h-1/2 self-start" : index === 0 ? "h-full self-end" : "h-full"
4076
4339
  )
4077
4340
  }
4078
4341
  ),
4079
- /* @__PURE__ */ jsx27("div", { className: "h-px w-3 bg-gray-300" })
4342
+ /* @__PURE__ */ jsx30("div", { className: "h-px w-3 bg-gray-300" })
4080
4343
  ] }) });
4081
4344
  };
4082
4345
  function ValueStringMapping({ rules, onChange }) {
@@ -4116,8 +4379,8 @@ function ValueStringMapping({ rules, onChange }) {
4116
4379
  className: "text-text-foreground flex h-10 items-center py-1",
4117
4380
  children: [
4118
4381
  renderTreeLine(index, isLast),
4119
- /* @__PURE__ */ jsx27("span", { className: "sm:text-ilabel inline-flex h-full items-center pr-3 font-medium", children: "If value is" }),
4120
- /* @__PURE__ */ jsx27(
4382
+ /* @__PURE__ */ jsx30("span", { className: "sm:text-ilabel inline-flex h-full items-center pr-3 font-medium", children: "If value is" }),
4383
+ /* @__PURE__ */ jsx30(
4121
4384
  "select",
4122
4385
  {
4123
4386
  value: rule.comparison,
@@ -4131,7 +4394,7 @@ function ValueStringMapping({ rules, onChange }) {
4131
4394
  })
4132
4395
  }
4133
4396
  ),
4134
- /* @__PURE__ */ jsx27(
4397
+ /* @__PURE__ */ jsx30(
4135
4398
  "input",
4136
4399
  {
4137
4400
  type: "text",
@@ -4145,8 +4408,8 @@ function ValueStringMapping({ rules, onChange }) {
4145
4408
  }
4146
4409
  }
4147
4410
  ),
4148
- /* @__PURE__ */ jsx27("span", { className: "sm:text-ilabel inline-flex h-full items-center rounded-none px-3 font-medium", children: ", then show" }),
4149
- /* @__PURE__ */ jsx27(
4411
+ /* @__PURE__ */ jsx30("span", { className: "sm:text-ilabel inline-flex h-full items-center rounded-none px-3 font-medium", children: ", then show" }),
4412
+ /* @__PURE__ */ jsx30(
4150
4413
  "input",
4151
4414
  {
4152
4415
  type: "text",
@@ -4160,14 +4423,14 @@ function ValueStringMapping({ rules, onChange }) {
4160
4423
  }
4161
4424
  }
4162
4425
  ),
4163
- /* @__PURE__ */ jsx27(
4426
+ /* @__PURE__ */ jsx30(
4164
4427
  "button",
4165
4428
  {
4166
4429
  type: "button",
4167
4430
  className: "mx-2",
4168
4431
  "aria-label": "remove",
4169
4432
  onClick: () => removeRule(index),
4170
- children: /* @__PURE__ */ jsx27(
4433
+ children: /* @__PURE__ */ jsx30(
4171
4434
  LuTrash2,
4172
4435
  {
4173
4436
  className: "icon text-text-foreground-disabled",
@@ -4190,7 +4453,7 @@ function ValueStringMapping({ rules, onChange }) {
4190
4453
  "aria-label": "remove",
4191
4454
  onClick: addRule,
4192
4455
  children: [
4193
- /* @__PURE__ */ jsx27(LuPlus, { className: classNames7("h-4 w-4"), "aria-hidden": "true" }),
4456
+ /* @__PURE__ */ jsx30(LuPlus, { className: classNames8("h-4 w-4"), "aria-hidden": "true" }),
4194
4457
  "Add Formatting Rule"
4195
4458
  ]
4196
4459
  }
@@ -4199,7 +4462,7 @@ function ValueStringMapping({ rules, onChange }) {
4199
4462
  }
4200
4463
 
4201
4464
  // src/charts/options/ValueOptions.tsx
4202
- import { Fragment as Fragment8, jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
4465
+ import { Fragment as Fragment8, jsx as jsx31, jsxs as jsxs21 } from "react/jsx-runtime";
4203
4466
  var ValueFormatters = [
4204
4467
  { label: "Number", value: "NumberFormatter" },
4205
4468
  { label: "Date", value: "DateFormatter" },
@@ -4225,19 +4488,10 @@ var CurrencySymbols = [
4225
4488
  { label: "BTC", value: "\u0243" },
4226
4489
  { label: "ETH", value: "\u039E" }
4227
4490
  ];
4228
- var AddonLabel = ({
4491
+ var AddonLabel2 = ({
4229
4492
  className,
4230
4493
  children
4231
- }) => /* @__PURE__ */ jsx28(
4232
- "span",
4233
- {
4234
- className: classNames8(
4235
- "sm:text-ilabel border-main inline-flex items-center whitespace-nowrap bg-gray-50 px-3",
4236
- className
4237
- ),
4238
- children
4239
- }
4240
- );
4494
+ }) => /* @__PURE__ */ jsx31(AddonLabel, { className: classNames9("px-3", className), children });
4241
4495
  var ValueOptions = ({
4242
4496
  config,
4243
4497
  onChange,
@@ -4305,8 +4559,8 @@ var ValueOptions = ({
4305
4559
  switch (style) {
4306
4560
  case "None":
4307
4561
  return /* @__PURE__ */ jsxs21(Fragment8, { children: [
4308
- /* @__PURE__ */ jsx28(AddonLabel, { className: "border border-l-0", children: "Fraction Digits" }),
4309
- /* @__PURE__ */ jsx28(
4562
+ /* @__PURE__ */ jsx31(AddonLabel2, { className: "border border-l-0", children: "Fraction Digits" }),
4563
+ /* @__PURE__ */ jsx31(
4310
4564
  "input",
4311
4565
  {
4312
4566
  disabled: true,
@@ -4318,8 +4572,8 @@ var ValueOptions = ({
4318
4572
  case "Percent":
4319
4573
  case "Standard":
4320
4574
  return /* @__PURE__ */ jsxs21(Fragment8, { children: [
4321
- /* @__PURE__ */ jsx28(AddonLabel, { className: "border border-x-0", children: "Fraction Digits" }),
4322
- /* @__PURE__ */ jsx28(
4575
+ /* @__PURE__ */ jsx31(AddonLabel2, { className: "border border-x-0", children: "Fraction Digits" }),
4576
+ /* @__PURE__ */ jsx31(
4323
4577
  "input",
4324
4578
  {
4325
4579
  type: "number",
@@ -4334,8 +4588,8 @@ var ValueOptions = ({
4334
4588
  ] });
4335
4589
  case "Currency":
4336
4590
  return /* @__PURE__ */ jsxs21(Fragment8, { children: [
4337
- /* @__PURE__ */ jsx28(AddonLabel, { className: "border border-r-0", children: "Symbol" }),
4338
- /* @__PURE__ */ jsx28("div", { className: "w-28 ", children: /* @__PURE__ */ jsx28(
4591
+ /* @__PURE__ */ jsx31(AddonLabel2, { className: "border border-r-0", children: "Symbol" }),
4592
+ /* @__PURE__ */ jsx31("div", { className: "w-28 ", children: /* @__PURE__ */ jsx31(
4339
4593
  ComboInput,
4340
4594
  {
4341
4595
  onChange: onChangeSymbol,
@@ -4348,8 +4602,8 @@ var ValueOptions = ({
4348
4602
  value: config?.currencySymbol
4349
4603
  }
4350
4604
  ) }),
4351
- /* @__PURE__ */ jsx28(AddonLabel, { className: "border", children: "Precision" }),
4352
- /* @__PURE__ */ jsx28(
4605
+ /* @__PURE__ */ jsx31(AddonLabel2, { className: "border", children: "Precision" }),
4606
+ /* @__PURE__ */ jsx31(
4353
4607
  "input",
4354
4608
  {
4355
4609
  type: "number",
@@ -4365,8 +4619,8 @@ var ValueOptions = ({
4365
4619
  ] });
4366
4620
  default:
4367
4621
  return /* @__PURE__ */ jsxs21(Fragment8, { children: [
4368
- /* @__PURE__ */ jsx28(AddonLabel, { className: "border border-x-0", children: "Max significant digits" }),
4369
- /* @__PURE__ */ jsx28(
4622
+ /* @__PURE__ */ jsx31(AddonLabel2, { className: "border border-x-0", children: "Max significant digits" }),
4623
+ /* @__PURE__ */ jsx31(
4370
4624
  "input",
4371
4625
  {
4372
4626
  type: "number",
@@ -4382,24 +4636,24 @@ var ValueOptions = ({
4382
4636
  }
4383
4637
  }
4384
4638
  return /* @__PURE__ */ jsxs21(Fragment8, { children: [
4385
- /* @__PURE__ */ jsx28("div", { children: /* @__PURE__ */ jsxs21("div", { className: "flex", children: [
4386
- /* @__PURE__ */ jsx28(AddonLabel, { className: "rounded-l-md border border-r-0", children: "Value formatter" }),
4387
- /* @__PURE__ */ jsx28(
4639
+ /* @__PURE__ */ jsx31("div", { children: /* @__PURE__ */ jsxs21("div", { className: "flex", children: [
4640
+ /* @__PURE__ */ jsx31(AddonLabel2, { className: "rounded-l-md border border-r-0", children: "Value formatter" }),
4641
+ /* @__PURE__ */ jsx31(
4388
4642
  "select",
4389
4643
  {
4390
4644
  value: config.valueFormatter,
4391
- className: classNames8(
4645
+ className: classNames9(
4392
4646
  "sm:text-ilabel border-main text-text-foreground hover:border-primary-600 inline-flex items-center border py-1.5 pl-4 pr-7 focus:ring-0",
4393
4647
  config.valueFormatter == "StringFormatter" ? "rounded-r-md" : ""
4394
4648
  ),
4395
4649
  onChange: (e) => onChangeFormatter(e.target.value),
4396
4650
  children: formatters.map((d) => {
4397
- return /* @__PURE__ */ jsx28("option", { value: d.value, children: d.label }, d.value);
4651
+ return /* @__PURE__ */ jsx31("option", { value: d.value, children: d.label }, d.value);
4398
4652
  })
4399
4653
  }
4400
4654
  ),
4401
4655
  config.valueFormatter == "NumberFormatter" && /* @__PURE__ */ jsxs21(Fragment8, { children: [
4402
- /* @__PURE__ */ jsx28(AddonLabel, { className: "border border-l-0 border-r-0", children: "Style" }),
4656
+ /* @__PURE__ */ jsx31(AddonLabel2, { className: "border border-l-0 border-r-0", children: "Style" }),
4403
4657
  /* @__PURE__ */ jsxs21(
4404
4658
  "select",
4405
4659
  {
@@ -4407,36 +4661,36 @@ var ValueOptions = ({
4407
4661
  className: "sm:text-ilabel border-main text-text-foreground hover:border-primary-600 inline-flex items-center border py-1 pl-4 pr-7 focus:ring-0",
4408
4662
  onChange: (e) => onStyleChange(e.target.value),
4409
4663
  children: [
4410
- /* @__PURE__ */ jsx28("option", { value: "None", children: "None" }),
4411
- /* @__PURE__ */ jsx28("option", { value: "Compact", children: "Compact" }),
4412
- /* @__PURE__ */ jsx28("option", { value: "Standard", children: "Standard" }),
4413
- /* @__PURE__ */ jsx28("option", { value: "Scientific", children: "Scientific" }),
4414
- /* @__PURE__ */ jsx28("option", { value: "Percent", children: "Percent" }),
4415
- /* @__PURE__ */ jsx28("option", { value: "Currency", children: "Currency" })
4664
+ /* @__PURE__ */ jsx31("option", { value: "None", children: "None" }),
4665
+ /* @__PURE__ */ jsx31("option", { value: "Compact", children: "Compact" }),
4666
+ /* @__PURE__ */ jsx31("option", { value: "Standard", children: "Standard" }),
4667
+ /* @__PURE__ */ jsx31("option", { value: "Scientific", children: "Scientific" }),
4668
+ /* @__PURE__ */ jsx31("option", { value: "Percent", children: "Percent" }),
4669
+ /* @__PURE__ */ jsx31("option", { value: "Currency", children: "Currency" })
4416
4670
  ]
4417
4671
  }
4418
4672
  ),
4419
4673
  config.style && numberAddons(config.style)
4420
4674
  ] }),
4421
4675
  config.valueFormatter == "DateFormatter" && /* @__PURE__ */ jsxs21(Fragment8, { children: [
4422
- /* @__PURE__ */ jsx28(AddonLabel, { className: "border border-l-0", children: "Date format" }),
4423
- /* @__PURE__ */ jsx28(
4676
+ /* @__PURE__ */ jsx31(AddonLabel2, { className: "border border-l-0", children: "Date format" }),
4677
+ /* @__PURE__ */ jsx31(
4424
4678
  "select",
4425
4679
  {
4426
4680
  value: config.dateFormat,
4427
4681
  className: "sm:text-ilabel border-main text-text-foreground inline-flex items-center rounded-r-md border border-l-0 py-1 pl-4 pr-7",
4428
4682
  onChange: (e) => onChangeDateFormat(e.target.value),
4429
4683
  children: dateFormats.map((d) => {
4430
- return /* @__PURE__ */ jsx28("option", { value: d.value, children: d.label }, d.value);
4684
+ return /* @__PURE__ */ jsx31("option", { value: d.value, children: d.label }, d.value);
4431
4685
  })
4432
4686
  }
4433
4687
  )
4434
4688
  ] })
4435
4689
  ] }) }),
4436
- (showPrefix || showSuffix) && /* @__PURE__ */ jsx28("div", { children: /* @__PURE__ */ jsxs21("div", { className: "mt-2 flex items-center gap-4", children: [
4690
+ (showPrefix || showSuffix) && /* @__PURE__ */ jsx31("div", { children: /* @__PURE__ */ jsxs21("div", { className: "mt-2 flex items-center gap-4", children: [
4437
4691
  showPrefix && /* @__PURE__ */ jsxs21("div", { className: "border-main hover:border-primary-600 focus-within:border-primary-600 focus-within:ring-3 focus-within:ring-primary-500/30 text-icontent inline-flex items-center rounded-md border", children: [
4438
- /* @__PURE__ */ jsx28("div", { className: "h-7.5 leading-7.5 border-r px-3", children: "Prefix" }),
4439
- /* @__PURE__ */ jsx28(
4692
+ /* @__PURE__ */ jsx31("div", { className: "h-7.5 leading-7.5 border-r px-3", children: "Prefix" }),
4693
+ /* @__PURE__ */ jsx31(
4440
4694
  "input",
4441
4695
  {
4442
4696
  type: "text",
@@ -4448,8 +4702,8 @@ var ValueOptions = ({
4448
4702
  )
4449
4703
  ] }),
4450
4704
  showSuffix && /* @__PURE__ */ jsxs21("div", { className: "border-main hover:border-primary-600 focus-within:border-primary-600 focus-within:ring-3 focus-within:ring-primary-500/30 text-icontent inline-flex items-center rounded-md border", children: [
4451
- /* @__PURE__ */ jsx28("div", { className: "h-7.5 leading-7.5 border-r px-3", children: "Suffix" }),
4452
- /* @__PURE__ */ jsx28(
4705
+ /* @__PURE__ */ jsx31("div", { className: "h-7.5 leading-7.5 border-r px-3", children: "Suffix" }),
4706
+ /* @__PURE__ */ jsx31(
4453
4707
  "input",
4454
4708
  {
4455
4709
  type: "text",
@@ -4461,7 +4715,7 @@ var ValueOptions = ({
4461
4715
  )
4462
4716
  ] })
4463
4717
  ] }) }),
4464
- config.valueFormatter == "StringFormatter" && /* @__PURE__ */ jsx28(
4718
+ config.valueFormatter == "StringFormatter" && /* @__PURE__ */ jsx31(
4465
4719
  ValueStringMapping,
4466
4720
  {
4467
4721
  rules: config.mappingRules || [],
@@ -4475,7 +4729,7 @@ var ValueOptions = ({
4475
4729
  import { defaults as defaults3 } from "lodash";
4476
4730
  import { Checkbox as Checkbox3, DisclosurePanel as DisclosurePanel5 } from "@sentio/ui-core";
4477
4731
  import { produce as produce10 } from "immer";
4478
- import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
4732
+ import { jsx as jsx32, jsxs as jsxs22 } from "react/jsx-runtime";
4479
4733
  var defaultConfig4 = {
4480
4734
  valueFormatter: "NumberFormatter",
4481
4735
  showValueLabel: false,
@@ -4509,7 +4763,7 @@ var ValueControls = ({
4509
4763
  defaultOpen,
4510
4764
  containerClassName: "w-full bg-default-bg",
4511
4765
  children: [
4512
- /* @__PURE__ */ jsx29(
4766
+ /* @__PURE__ */ jsx32(
4513
4767
  ValueOptions,
4514
4768
  {
4515
4769
  onChange,
@@ -4520,7 +4774,7 @@ var ValueControls = ({
4520
4774
  }
4521
4775
  ),
4522
4776
  /* @__PURE__ */ jsxs22("div", { className: "mt-2 flex items-center gap-2", children: [
4523
- /* @__PURE__ */ jsx29(
4777
+ /* @__PURE__ */ jsx32(
4524
4778
  Checkbox3,
4525
4779
  {
4526
4780
  checked: config?.showValueLabel,
@@ -4528,7 +4782,7 @@ var ValueControls = ({
4528
4782
  label: "Show value label"
4529
4783
  }
4530
4784
  ),
4531
- /* @__PURE__ */ jsx29(
4785
+ /* @__PURE__ */ jsx32(
4532
4786
  Checkbox3,
4533
4787
  {
4534
4788
  checked: config?.tooltipTotal,
@@ -4541,17 +4795,608 @@ var ValueControls = ({
4541
4795
  }
4542
4796
  );
4543
4797
  };
4798
+
4799
+ // src/charts/options/YaxisControls.tsx
4800
+ import { defaults as defaults4 } from "lodash";
4801
+ import { Button as Button2, Checkbox as Checkbox4, DisclosurePanel as DisclosurePanel6 } from "@sentio/ui-core";
4802
+ import { Fragment as Fragment9, jsx as jsx33, jsxs as jsxs23 } from "react/jsx-runtime";
4803
+ var initialConfig2 = {
4804
+ yAxis: {
4805
+ min: "",
4806
+ max: "",
4807
+ scale: true,
4808
+ stack: ""
4809
+ }
4810
+ };
4811
+ function YaxisControls({
4812
+ yAxis,
4813
+ setYAxis,
4814
+ defaultOpen,
4815
+ columnSelect,
4816
+ supportSetName = true,
4817
+ supportSetMinMax = true,
4818
+ supportStackSeries = true,
4819
+ supportAlwaysShowZero = true,
4820
+ supportReset = true,
4821
+ panelTitle = "Y-Axis Controls"
4822
+ }) {
4823
+ yAxis = defaults4(yAxis || {}, initialConfig2.yAxis);
4824
+ const onChangeInput = (field) => (event) => {
4825
+ const { value } = event.target;
4826
+ setYAxis({
4827
+ ...yAxis,
4828
+ [field]: value || void 0,
4829
+ scale: field == "min" && value > "0" ? true : yAxis?.scale
4830
+ });
4831
+ };
4832
+ const onToggleZero = (checked) => {
4833
+ setYAxis({ ...yAxis, scale: !checked, min: checked ? "" : yAxis?.min });
4834
+ };
4835
+ const onClickResetYAxis = () => {
4836
+ setYAxis(initialConfig2.yAxis);
4837
+ };
4838
+ const onToggleStack = (checked) => {
4839
+ setYAxis({ ...yAxis, stacked: checked ? "samesign" : "" });
4840
+ };
4841
+ const minMaxLabelCls = "inline-flex items-center border border-r-0 sm:text-icontent border-main bg-gray-50 px-2 rounded-l-md";
4842
+ const minMaxInputCls = "border focus:border-primary-500 rounded-r-md sm:text-icontent border-main hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30";
4843
+ return /* @__PURE__ */ jsx33(
4844
+ DisclosurePanel6,
4845
+ {
4846
+ title: panelTitle,
4847
+ defaultOpen,
4848
+ containerClassName: "w-full bg-default-bg",
4849
+ children: /* @__PURE__ */ jsxs23("div", { className: "text-icontent flex flex-wrap gap-[10px]", children: [
4850
+ supportSetName && /* @__PURE__ */ jsxs23("label", { className: "inline-flex h-8", children: [
4851
+ /* @__PURE__ */ jsx33(AddonLabel, { className: "rounded-l-md border border-r-0 px-2", children: "Name" }),
4852
+ /* @__PURE__ */ jsx33(
4853
+ "input",
4854
+ {
4855
+ type: "text",
4856
+ className: "focus:border-primary-500 sm:text-icontent border-main hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30 w-40 rounded-r-md border",
4857
+ value: yAxis?.name,
4858
+ placeholder: "Axis Name",
4859
+ onChange: onChangeInput("name")
4860
+ }
4861
+ )
4862
+ ] }),
4863
+ columnSelect && /* @__PURE__ */ jsxs23("span", { className: "inline-flex h-8", children: [
4864
+ /* @__PURE__ */ jsx33(AddonLabel, { className: "rounded-l-md border px-2", children: "Column" }),
4865
+ columnSelect
4866
+ ] }),
4867
+ supportSetMinMax && /* @__PURE__ */ jsxs23(Fragment9, { children: [
4868
+ /* @__PURE__ */ jsxs23("label", { className: "inline-flex h-8", children: [
4869
+ /* @__PURE__ */ jsx33("span", { className: minMaxLabelCls, children: "Min" }),
4870
+ /* @__PURE__ */ jsx33(
4871
+ "input",
4872
+ {
4873
+ type: "text",
4874
+ className: minMaxInputCls,
4875
+ style: { width: "10em" },
4876
+ value: yAxis.min,
4877
+ placeholder: "Auto",
4878
+ onChange: onChangeInput("min")
4879
+ }
4880
+ )
4881
+ ] }),
4882
+ /* @__PURE__ */ jsxs23("label", { className: "inline-flex h-8", children: [
4883
+ /* @__PURE__ */ jsx33("span", { className: minMaxLabelCls, children: "Max" }),
4884
+ /* @__PURE__ */ jsx33(
4885
+ "input",
4886
+ {
4887
+ type: "text",
4888
+ className: minMaxInputCls,
4889
+ style: { width: "10em" },
4890
+ value: yAxis.max,
4891
+ placeholder: "Auto",
4892
+ onChange: onChangeInput("max")
4893
+ }
4894
+ )
4895
+ ] })
4896
+ ] }),
4897
+ supportStackSeries && /* @__PURE__ */ jsx33(
4898
+ Checkbox4,
4899
+ {
4900
+ checked: !!yAxis?.stacked,
4901
+ onChange: onToggleStack,
4902
+ label: "Stack series"
4903
+ }
4904
+ ),
4905
+ supportAlwaysShowZero && /* @__PURE__ */ jsx33(
4906
+ Checkbox4,
4907
+ {
4908
+ checked: !yAxis.scale,
4909
+ onChange: onToggleZero,
4910
+ label: "Always show zero"
4911
+ }
4912
+ ),
4913
+ supportReset && /* @__PURE__ */ jsx33(Button2, { type: "button", role: "link", onClick: onClickResetYAxis, children: "Reset" })
4914
+ ] })
4915
+ }
4916
+ );
4917
+ }
4918
+
4919
+ // src/charts/options/XaxisControls.tsx
4920
+ import {
4921
+ Button as Button3,
4922
+ DisclosurePanel as DisclosurePanel7,
4923
+ PopoverTooltip,
4924
+ Select
4925
+ } from "@sentio/ui-core";
4926
+ import { LuInfo } from "react-icons/lu";
4927
+ import { jsx as jsx34, jsxs as jsxs24 } from "react/jsx-runtime";
4928
+ var TypeSelect = Select;
4929
+ var SortSelect = Select;
4930
+ var OrderSelect = Select;
4931
+ var sortByItems2 = [
4932
+ { label: "Name", value: "ByName" },
4933
+ { label: "Value", value: "ByValue" }
4934
+ ];
4935
+ var orderItems2 = [
4936
+ { label: "Ascendant", value: false },
4937
+ { label: "Descendant", value: true }
4938
+ ];
4939
+ var XAxisControls = ({
4940
+ xAxis,
4941
+ setXAxis,
4942
+ defaultOpen,
4943
+ columnSelect,
4944
+ columnIsNonTime,
4945
+ panelTitle = "X-Axis Controls",
4946
+ supportName = true,
4947
+ supportSort,
4948
+ supportSetType
4949
+ }) => {
4950
+ const onChangeInput = (field) => (event) => {
4951
+ const { value } = event.target;
4952
+ setXAxis({ ...xAxis, [field]: value || void 0 });
4953
+ };
4954
+ const onClickResetXAxis = () => {
4955
+ setXAxis(void 0);
4956
+ };
4957
+ const isXAixsNoneTime = xAxis && xAxis.column && columnIsNonTime;
4958
+ return /* @__PURE__ */ jsx34(
4959
+ DisclosurePanel7,
4960
+ {
4961
+ title: panelTitle,
4962
+ defaultOpen,
4963
+ containerClassName: "w-full bg-default-bg",
4964
+ children: /* @__PURE__ */ jsxs24("div", { className: "text-icontent flex flex-wrap gap-[10px]", children: [
4965
+ supportName && /* @__PURE__ */ jsxs24("label", { className: "inline-flex h-8", children: [
4966
+ /* @__PURE__ */ jsx34(AddonLabel, { className: "rounded-l-md border border-r-0 px-2", children: "Name" }),
4967
+ /* @__PURE__ */ jsx34(
4968
+ "input",
4969
+ {
4970
+ type: "text",
4971
+ className: "sm:text-icontent border-main hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30 focus:border-primary-600 w-40 rounded-r-md",
4972
+ value: xAxis?.name,
4973
+ placeholder: "Axis Name",
4974
+ onChange: onChangeInput("name")
4975
+ }
4976
+ )
4977
+ ] }),
4978
+ supportSetType && /* @__PURE__ */ jsxs24("span", { className: "inline-flex h-8", children: [
4979
+ /* @__PURE__ */ jsxs24("span", { className: "sm:text-icontent border-main inline-flex items-center rounded-l-md border border-r-0 bg-gray-50 px-2", children: [
4980
+ "X-Axis Type",
4981
+ " ",
4982
+ /* @__PURE__ */ jsx34(
4983
+ PopoverTooltip,
4984
+ {
4985
+ strategy: "fixed",
4986
+ hideArrow: true,
4987
+ placementOption: "bottom",
4988
+ text: /* @__PURE__ */ jsxs24("div", { className: "text-text-foreground max-w-[300px] p-2", children: [
4989
+ /* @__PURE__ */ jsx34("span", { className: "font-medium", children: "Discrete axis" }),
4990
+ " displays",
4991
+ " ",
4992
+ /* @__PURE__ */ jsx34("span", { className: "text-primary-600", children: "discrete values evenly" }),
4993
+ ", while ",
4994
+ /* @__PURE__ */ jsx34("span", { className: "font-medium", children: "Continuous axis" }),
4995
+ " ",
4996
+ "shows",
4997
+ " ",
4998
+ /* @__PURE__ */ jsx34("span", { className: "text-primary-600", children: "continuous time series" }),
4999
+ " ",
5000
+ "and",
5001
+ " ",
5002
+ /* @__PURE__ */ jsx34("span", { className: "text-primary-600", children: "auto-fills missing time points" })
5003
+ ] }),
5004
+ children: /* @__PURE__ */ jsx34(LuInfo, { className: "text-text-foreground-secondary h-4 w-4" })
5005
+ }
5006
+ )
5007
+ ] }),
5008
+ /* @__PURE__ */ jsx34(
5009
+ TypeSelect,
5010
+ {
5011
+ className: "h-8 w-40",
5012
+ buttonClassName: "h-full border-main rounded-l-none items-center inline-flex items-center",
5013
+ value: xAxis?.type || "time",
5014
+ onChange: (val) => {
5015
+ setXAxis({ ...xAxis, type: val });
5016
+ },
5017
+ options: [
5018
+ { label: "Continuous", value: "time" },
5019
+ { label: "Discrete", value: "category" }
5020
+ ]
5021
+ }
5022
+ )
5023
+ ] }),
5024
+ columnSelect && /* @__PURE__ */ jsxs24("span", { className: "inline-flex h-8", children: [
5025
+ /* @__PURE__ */ jsx34(AddonLabel, { className: "rounded-l-md border px-2", children: "Column" }),
5026
+ columnSelect
5027
+ ] }),
5028
+ supportSort && isXAixsNoneTime && /* @__PURE__ */ jsxs24("span", { className: "inline-flex h-8", children: [
5029
+ /* @__PURE__ */ jsx34(AddonLabel, { className: "rounded-l-md border border-r-0 px-2", children: "Sort By" }),
5030
+ /* @__PURE__ */ jsx34(
5031
+ SortSelect,
5032
+ {
5033
+ className: "h-8 w-20 leading-8",
5034
+ buttonClassName: "h-full border-main rounded-none inline-flex items-center",
5035
+ options: sortByItems2,
5036
+ value: xAxis?.sort?.sortBy,
5037
+ onChange: (value) => {
5038
+ setXAxis({
5039
+ ...xAxis,
5040
+ sort: { ...xAxis?.sort, sortBy: value }
5041
+ });
5042
+ },
5043
+ placeholder: "Sort By"
5044
+ }
5045
+ ),
5046
+ /* @__PURE__ */ jsx34(
5047
+ OrderSelect,
5048
+ {
5049
+ className: "h-8 w-40 leading-8",
5050
+ buttonClassName: "h-full border-l-0 border-main rounded-l-none inline-flex items-center",
5051
+ options: orderItems2,
5052
+ value: xAxis?.sort?.orderDesc,
5053
+ onChange: (value) => {
5054
+ setXAxis({
5055
+ ...xAxis,
5056
+ sort: { ...xAxis?.sort, orderDesc: value }
5057
+ });
5058
+ },
5059
+ placeholder: "Sort Order"
5060
+ }
5061
+ )
5062
+ ] }),
5063
+ /* @__PURE__ */ jsx34(
5064
+ Button3,
5065
+ {
5066
+ type: "button",
5067
+ role: "link",
5068
+ onClick: onClickResetXAxis,
5069
+ className: "h-8",
5070
+ children: "Reset"
5071
+ }
5072
+ )
5073
+ ] })
5074
+ }
5075
+ );
5076
+ };
5077
+
5078
+ // src/charts/options/MarkerControls.tsx
5079
+ import { produce as produce11 } from "immer";
5080
+ import { LuMinus, LuPlus as LuPlus2 } from "react-icons/lu";
5081
+ import { Button as Button4, DisclosurePanel as DisclosurePanel8 } from "@sentio/ui-core";
5082
+ import { jsx as jsx35, jsxs as jsxs25 } from "react/jsx-runtime";
5083
+ var labelCls = "inline-flex items-center border border-r-0 sm:text-icontent border-main bg-gray-50 px-2 rounded-l-md";
5084
+ var inputCls = "border focus:border-primary-500 rounded-r-md sm:text-icontent border-main w-28 hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30";
5085
+ function MarkerInput({
5086
+ marker,
5087
+ label,
5088
+ onChange,
5089
+ onRemove
5090
+ }) {
5091
+ const _onChange = (field, value) => {
5092
+ onChange(
5093
+ produce11(marker, (draft) => {
5094
+ ;
5095
+ draft[field] = value;
5096
+ })
5097
+ );
5098
+ };
5099
+ return /* @__PURE__ */ jsxs25("div", { className: "flex items-center gap-[10px]", children: [
5100
+ /* @__PURE__ */ jsxs25("label", { className: "inline-flex h-8", children: [
5101
+ /* @__PURE__ */ jsxs25("span", { className: labelCls, children: [
5102
+ /* @__PURE__ */ jsx35("span", { className: "pr-2", children: label }),
5103
+ /* @__PURE__ */ jsxs25(
5104
+ "select",
5105
+ {
5106
+ className: "sm:text-ilabel border-main text-text-foreground inline-flex h-full items-center border border-b-0 border-t-0 bg-gray-50 p-0 pl-4 pr-7 focus:border-transparent focus:ring-inset",
5107
+ value: marker.type,
5108
+ onChange: (e) => _onChange("type", e.target.value),
5109
+ children: [
5110
+ /* @__PURE__ */ jsx35("option", { value: "LINE", children: "horizontal line" }),
5111
+ /* @__PURE__ */ jsx35("option", { value: "LINEX", children: "vertical line" })
5112
+ ]
5113
+ }
5114
+ ),
5115
+ /* @__PURE__ */ jsx35("span", { className: "pl-2", children: "at" })
5116
+ ] }),
5117
+ marker.type === "LINEX" ? /* @__PURE__ */ jsx35(
5118
+ "input",
5119
+ {
5120
+ className: inputCls,
5121
+ type: "text",
5122
+ value: marker.valueX,
5123
+ placeholder: "YYYY-MM-DD",
5124
+ onChange: (e) => _onChange("valueX", e.target.value)
5125
+ }
5126
+ ) : /* @__PURE__ */ jsx35(
5127
+ "input",
5128
+ {
5129
+ className: inputCls,
5130
+ type: "text",
5131
+ value: marker.value,
5132
+ onChange: (e) => _onChange("value", e.target.value)
5133
+ }
5134
+ )
5135
+ ] }),
5136
+ /* @__PURE__ */ jsxs25("label", { className: "inline-flex h-8", children: [
5137
+ /* @__PURE__ */ jsx35("span", { className: labelCls, children: "Color" }),
5138
+ /* @__PURE__ */ jsxs25("div", { className: "relative", children: [
5139
+ /* @__PURE__ */ jsx35("div", { className: "absolute inset-0 flex w-8 items-center justify-center", children: /* @__PURE__ */ jsx35("div", { className: "h-4 w-4", style: { background: marker.color } }) }),
5140
+ /* @__PURE__ */ jsx35(
5141
+ "input",
5142
+ {
5143
+ className: inputCls + " pl-8",
5144
+ type: "text",
5145
+ value: marker.color,
5146
+ onChange: (e) => _onChange("color", e.target.value)
5147
+ }
5148
+ )
5149
+ ] })
5150
+ ] }),
5151
+ /* @__PURE__ */ jsxs25("label", { className: "inline-flex h-8", children: [
5152
+ /* @__PURE__ */ jsx35("span", { className: labelCls, children: "Label" }),
5153
+ /* @__PURE__ */ jsx35(
5154
+ "input",
5155
+ {
5156
+ className: inputCls,
5157
+ type: "text",
5158
+ value: marker.label,
5159
+ onChange: (e) => _onChange("label", e.target.value)
5160
+ }
5161
+ )
5162
+ ] }),
5163
+ /* @__PURE__ */ jsx35(
5164
+ "button",
5165
+ {
5166
+ type: "button",
5167
+ className: "ml-2 flex h-4 w-4 cursor-pointer items-center justify-center rounded-full bg-gray-800 hover:bg-red-600",
5168
+ "aria-label": "Remove marker",
5169
+ onClick: onRemove,
5170
+ children: /* @__PURE__ */ jsx35(
5171
+ LuMinus,
5172
+ {
5173
+ className: "dark:text-default-bg h-3 w-3 text-white",
5174
+ "aria-hidden": "true"
5175
+ }
5176
+ )
5177
+ }
5178
+ )
5179
+ ] });
5180
+ }
5181
+ var DEFAULT_MARKER = { value: 0, color: "#ff0000", label: "" };
5182
+ function MarkerControls({ markers, onChange }) {
5183
+ const _markers = markers?.length ? markers : [];
5184
+ const onAdd = () => {
5185
+ onChange(
5186
+ produce11(_markers, (draft) => {
5187
+ draft.push(DEFAULT_MARKER);
5188
+ })
5189
+ );
5190
+ };
5191
+ const onRemove = (index) => {
5192
+ onChange(
5193
+ produce11(_markers, (draft) => {
5194
+ draft.splice(index, 1);
5195
+ })
5196
+ );
5197
+ };
5198
+ const _onChange = (index, marker) => {
5199
+ onChange(
5200
+ produce11(_markers, (draft) => {
5201
+ draft[index] = marker;
5202
+ })
5203
+ );
5204
+ };
5205
+ return /* @__PURE__ */ jsx35(
5206
+ DisclosurePanel8,
5207
+ {
5208
+ title: "Markers",
5209
+ containerClassName: "w-full bg-default-bg",
5210
+ defaultOpen: true,
5211
+ children: /* @__PURE__ */ jsxs25("div", { className: "space-y-2", children: [
5212
+ _markers.map((marker, index) => /* @__PURE__ */ jsx35(
5213
+ MarkerInput,
5214
+ {
5215
+ marker,
5216
+ label: String.fromCharCode(65 + index % 26),
5217
+ onChange: (v) => _onChange(index, v),
5218
+ onRemove: () => onRemove(index)
5219
+ },
5220
+ index
5221
+ )),
5222
+ /* @__PURE__ */ jsx35("div", { children: /* @__PURE__ */ jsxs25(Button4, { type: "button", onClick: onAdd, children: [
5223
+ /* @__PURE__ */ jsx35(LuPlus2, { className: "h-4 w-4", "aria-hidden": "true" }),
5224
+ "Add Marker"
5225
+ ] }) })
5226
+ ] })
5227
+ }
5228
+ );
5229
+ }
5230
+
5231
+ // src/charts/options/DataControls.tsx
5232
+ import { produce as produce12 } from "immer";
5233
+ import { defaults as defaults5 } from "lodash";
5234
+ import { DisclosurePanel as DisclosurePanel9 } from "@sentio/ui-core";
5235
+ import { jsx as jsx36, jsxs as jsxs26 } from "react/jsx-runtime";
5236
+ var defaultConfig5 = {
5237
+ seriesLimit: void 0
5238
+ };
5239
+ function DataControls({
5240
+ defaultOpen,
5241
+ onChange,
5242
+ chartConfig,
5243
+ defaultSeriesLimit = 20
5244
+ }) {
5245
+ const config = defaults5(chartConfig?.dataConfig, defaultConfig5);
5246
+ const currentSeriesLimit = config?.seriesLimit || chartConfig?.tableConfig?.rowLimit;
5247
+ function onSeriesLimitChange(e) {
5248
+ const value = parseInt(e.target.value);
5249
+ if (value > 1e3) {
5250
+ return;
5251
+ }
5252
+ config && onChange(
5253
+ produce12(config, (draft) => {
5254
+ draft.seriesLimit = value;
5255
+ })
5256
+ );
5257
+ }
5258
+ function onKeyDown(e) {
5259
+ if (!/[0-9]/.test(e.key) && !["Backspace", "Delete", "ArrowLeft", "ArrowRight", "Tab"].includes(e.key)) {
5260
+ e.preventDefault();
5261
+ }
5262
+ }
5263
+ return /* @__PURE__ */ jsx36(
5264
+ DisclosurePanel9,
5265
+ {
5266
+ title: "Data Options",
5267
+ defaultOpen,
5268
+ containerClassName: "w-full bg-default-bg",
5269
+ children: /* @__PURE__ */ jsxs26("div", { className: "flex h-8", children: [
5270
+ /* @__PURE__ */ jsx36(AddonLabel, { className: "rounded-l-md border border-r-0 px-3", children: "Max Series Limit" }),
5271
+ /* @__PURE__ */ jsx36(
5272
+ "input",
5273
+ {
5274
+ type: "number",
5275
+ max: 1e3,
5276
+ min: 20,
5277
+ className: "text-icontent border-main hover:border-primary-600 focus:ring-3 focus:ring-primary-600/30 focus:border-primary-600 mr-1 w-32 rounded-r-md",
5278
+ value: currentSeriesLimit ?? defaultSeriesLimit,
5279
+ onChange: onSeriesLimitChange,
5280
+ onKeyDown
5281
+ }
5282
+ )
5283
+ ] })
5284
+ }
5285
+ );
5286
+ }
5287
+
5288
+ // src/charts/options/ScatterControls.tsx
5289
+ import { produce as produce13 } from "immer";
5290
+ import { defaults as defaults6 } from "lodash";
5291
+ import { useCallback as useCallback4 } from "react";
5292
+ import { DisclosurePanel as DisclosurePanel10 } from "@sentio/ui-core";
5293
+ import { jsx as jsx37, jsxs as jsxs27 } from "react/jsx-runtime";
5294
+ var defaultConfig6 = {
5295
+ minSize: 5,
5296
+ maxSize: 30
5297
+ };
5298
+ function ScatterControls({
5299
+ config,
5300
+ defaultOpen,
5301
+ onChange,
5302
+ columnSelect,
5303
+ colorPicker
5304
+ }) {
5305
+ config = defaults6(config, defaultConfig6);
5306
+ const onSymbolSizeColumnChange = useCallback4(
5307
+ (column) => {
5308
+ config && onChange(produce13(config, (draft) => void (draft.symbolSize = column)));
5309
+ },
5310
+ [config, onChange]
5311
+ );
5312
+ const onSymbolColorChange = useCallback4(
5313
+ (color) => {
5314
+ config && onChange(produce13(config, (draft) => void (draft.color = color)));
5315
+ },
5316
+ [config, onChange]
5317
+ );
5318
+ const onMinSizeChange = useCallback4(
5319
+ (event) => {
5320
+ const value = parseInt(event.target.value) || 5;
5321
+ config && onChange(produce13(config, (draft) => void (draft.minSize = value)));
5322
+ },
5323
+ [config, onChange]
5324
+ );
5325
+ const onMaxSizeChange = useCallback4(
5326
+ (event) => {
5327
+ const value = parseInt(event.target.value) || 50;
5328
+ config && onChange(produce13(config, (draft) => void (draft.maxSize = value)));
5329
+ },
5330
+ [config, onChange]
5331
+ );
5332
+ return /* @__PURE__ */ jsx37(
5333
+ DisclosurePanel10,
5334
+ {
5335
+ title: "Scatter Chart Options",
5336
+ defaultOpen,
5337
+ containerClassName: "w-full bg-default-bg",
5338
+ children: /* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-4", children: [
5339
+ columnSelect && /* @__PURE__ */ jsxs27("div", { className: "inline-flex h-8", children: [
5340
+ /* @__PURE__ */ jsx37(AddonLabel, { className: "rounded-l-md border border-r-0 px-2", children: "Size By Column" }),
5341
+ columnSelect({
5342
+ value: config.symbolSize,
5343
+ onChange: onSymbolSizeColumnChange
5344
+ })
5345
+ ] }),
5346
+ colorPicker && /* @__PURE__ */ jsxs27("div", { className: "inline-flex h-8", children: [
5347
+ /* @__PURE__ */ jsx37(AddonLabel, { className: "rounded-l-md border border-r-0 px-2", children: "Size Color Mapping" }),
5348
+ colorPicker({
5349
+ value: config.color,
5350
+ onChange: onSymbolColorChange
5351
+ })
5352
+ ] }),
5353
+ /* @__PURE__ */ jsxs27("div", { className: "inline-flex h-8", children: [
5354
+ /* @__PURE__ */ jsx37(AddonLabel, { className: "rounded-l-md border border-r-0 px-2", children: "Min Size" }),
5355
+ /* @__PURE__ */ jsx37(
5356
+ "input",
5357
+ {
5358
+ name: "minSize",
5359
+ type: "number",
5360
+ className: "focus:ring-primary-600/30 focus:border-primary-600 border-main text-icontent focus:ring-3 h-8 w-24 rounded-r-md border px-2",
5361
+ value: config.minSize || 5,
5362
+ onChange: onMinSizeChange,
5363
+ min: "1",
5364
+ max: "60"
5365
+ }
5366
+ )
5367
+ ] }),
5368
+ /* @__PURE__ */ jsxs27("div", { className: "inline-flex h-8", children: [
5369
+ /* @__PURE__ */ jsx37(AddonLabel, { className: "rounded-l-md border border-r-0 px-2", children: "Max Size" }),
5370
+ /* @__PURE__ */ jsx37(
5371
+ "input",
5372
+ {
5373
+ name: "maxSize",
5374
+ type: "number",
5375
+ className: "focus:ring-primary-600/30 focus:border-primary-600 border-main focus:ring-3 h-8 w-24 rounded-r-md border px-2 text-sm",
5376
+ value: config.maxSize || 30,
5377
+ onChange: onMaxSizeChange,
5378
+ min: "1",
5379
+ max: "60"
5380
+ }
5381
+ )
5382
+ ] })
5383
+ ] })
5384
+ }
5385
+ );
5386
+ }
4544
5387
  export {
4545
5388
  AggregateInput,
4546
5389
  AreaIcon_default as AreaIcon,
4547
5390
  ArgumentInput,
4548
5391
  ArgumentType,
5392
+ BarGaugeChart,
4549
5393
  BarGaugeControls,
4550
5394
  BarGuageIcon_default as BarGuageIcon,
4551
5395
  BarIcon_default as BarIcon,
4552
5396
  ChartLegend,
4553
5397
  ChartTooltip,
4554
5398
  ChartTypeButtonGroup,
5399
+ DataControls,
4555
5400
  EventsFunctionCategories,
4556
5401
  EventsFunctionMap,
4557
5402
  FunctionInput,
@@ -4563,14 +5408,17 @@ export {
4563
5408
  LabelsInput,
4564
5409
  LineControls,
4565
5410
  LineIcon_default as LineIcon,
5411
+ MarkerControls,
4566
5412
  PieChart2 as PieChart,
4567
5413
  PieChartControls,
4568
5414
  PieIcon_default as PieIcon,
5415
+ QueryValueChart,
4569
5416
  QueryValueIcon_default as QueryValueIcon,
4570
5417
  ReactEChartsBase,
4571
5418
  RefreshButton,
4572
5419
  RefreshContext,
4573
5420
  ScatterChartTooltip,
5421
+ ScatterControls,
4574
5422
  ScatterIcon_default as ScatterIcon,
4575
5423
  SystemLabels,
4576
5424
  TableIcon_default as TableIcon,
@@ -4578,8 +5426,12 @@ export {
4578
5426
  ValueFormatters,
4579
5427
  ValueOptions,
4580
5428
  ValueStringMapping,
5429
+ XAxisControls,
5430
+ YaxisControls,
4581
5431
  defaultConfig2 as defaultBarGaugeConfig,
5432
+ defaultConfig5 as defaultDataConfig,
4582
5433
  defaultConfig as defaultPieConfig,
5434
+ defaultConfig6 as defaultScatterConfig,
4583
5435
  defaultConfig3 as defaultValueConfig,
4584
5436
  defaultConfig4 as defaultValueControlsConfig,
4585
5437
  isAggrOrRollupFunction,