@sentio/ui-dashboard 0.1.2 → 0.2.1

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
@@ -677,7 +677,7 @@ function FunctionInput({ value, onChange }) {
677
677
  }
678
678
  ),
679
679
  /* @__PURE__ */ jsxs3("div", { className: "inline-flex items-center", children: [
680
- /* @__PURE__ */ jsx4("div", { className: "h-px w-2.5 self-center bg-border-color" }),
680
+ /* @__PURE__ */ jsx4("div", { className: "bg-border-color h-px w-2.5 self-center" }),
681
681
  /* @__PURE__ */ jsx4(Popover, { className: "relative", children: ({ open }) => /* @__PURE__ */ jsxs3(Fragment2, { children: [
682
682
  /* @__PURE__ */ jsxs3(
683
683
  Popover.Button,
@@ -732,7 +732,7 @@ function Functions({
732
732
  return /* @__PURE__ */ jsx4(Fragment2, { children: functions.map((f, fi) => {
733
733
  const def = FunctionMap[f.name];
734
734
  return /* @__PURE__ */ jsxs3("div", { className: "inline-flex items-center", children: [
735
- /* @__PURE__ */ jsx4("div", { className: "h-px w-2.5 self-center bg-border-color" }),
735
+ /* @__PURE__ */ jsx4("div", { className: "bg-border-color h-px w-2.5 self-center" }),
736
736
  /* @__PURE__ */ jsxs3(
737
737
  "div",
738
738
  {
@@ -1001,20 +1001,2340 @@ function LabelsInput({
1001
1001
  }
1002
1002
  );
1003
1003
  }
1004
+
1005
+ // src/charts/EchartsBase.tsx
1006
+ import {
1007
+ useEffect as useEffect5,
1008
+ useCallback as useCallback3,
1009
+ useState as useState6,
1010
+ useImperativeHandle,
1011
+ forwardRef,
1012
+ useRef as useRef3,
1013
+ useMemo as useMemo4
1014
+ } from "react";
1015
+ import { CanvasRenderer, SVGRenderer } from "echarts/renderers";
1016
+ import { init, use } from "echarts/core";
1017
+ import {
1018
+ LineChart,
1019
+ BarChart,
1020
+ PieChart,
1021
+ ScatterChart,
1022
+ SankeyChart
1023
+ } from "echarts/charts";
1024
+ import {
1025
+ LegendComponent,
1026
+ GridComponent,
1027
+ TooltipComponent,
1028
+ ToolboxComponent,
1029
+ TitleComponent,
1030
+ DataZoomComponent,
1031
+ BrushComponent,
1032
+ MarkLineComponent,
1033
+ MarkAreaComponent,
1034
+ GraphicComponent,
1035
+ VisualMapComponent
1036
+ } from "echarts/components";
1037
+ import { useResizeDetector } from "react-resize-detector";
1038
+ import { BarLoading } from "@sentio/ui-core";
1039
+
1040
+ // src/charts/ChartLegend.tsx
1041
+ import { useCallback, useEffect as useEffect3, useRef as useRef2, useState as useState4 } from "react";
1042
+
1043
+ // src/common/Tooltip.tsx
1044
+ import { useEffect as useEffect2 } from "react";
1045
+ import { useFloating as useFloating2, FloatingPortal, shift } from "@floating-ui/react";
1046
+ import { jsx as jsx7 } from "react/jsx-runtime";
1047
+ function Tooltip({ referenceElement, text }) {
1048
+ const { x, y, refs, strategy } = useFloating2({
1049
+ placement: "bottom",
1050
+ middleware: [shift()]
1051
+ });
1052
+ useEffect2(() => {
1053
+ if (referenceElement) refs.setReference(referenceElement);
1054
+ }, [refs, referenceElement]);
1055
+ if (!referenceElement || !text) {
1056
+ return null;
1057
+ }
1058
+ return /* @__PURE__ */ jsx7(FloatingPortal, { children: /* @__PURE__ */ jsx7(
1059
+ "div",
1060
+ {
1061
+ ref: refs.setFloating,
1062
+ className: "z-tooltip pointer-events-none rounded-md bg-black/70 px-2 py-1 text-white backdrop-opacity-60",
1063
+ style: {
1064
+ position: strategy,
1065
+ top: y ?? 0,
1066
+ left: x ?? 0
1067
+ },
1068
+ children: text
1069
+ }
1070
+ ) });
1071
+ }
1072
+
1073
+ // src/charts/ChartLegend.tsx
1074
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
1075
+ var COLOR_UNSELECTED = "#dddddd";
1076
+ var ChartLegend = ({
1077
+ legend,
1078
+ legendSelected,
1079
+ returnedSeries,
1080
+ totalSeries,
1081
+ onRendered,
1082
+ chartHandle
1083
+ }) => {
1084
+ const rootRef = useRef2(null);
1085
+ const [tooltipText, setTooltipText] = useState4("");
1086
+ const [tooltipReferenceElement, setTooltipReferenceElement] = useState4();
1087
+ useEffect3(() => {
1088
+ if (!rootRef.current) {
1089
+ return;
1090
+ }
1091
+ const offsetHeight = rootRef?.current?.parentElement?.offsetHeight || 0;
1092
+ chartHandle?.resize({
1093
+ height: offsetHeight - rootRef.current.offsetHeight
1094
+ });
1095
+ onRendered(true);
1096
+ }, [chartHandle, onRendered]);
1097
+ const onToggleLegend = useCallback(
1098
+ (event, name, _seriesIndex) => {
1099
+ if (event.altKey) {
1100
+ legend.forEach((n) => {
1101
+ chartHandle?.toggleLegend(n, n === name);
1102
+ });
1103
+ return;
1104
+ }
1105
+ chartHandle?.toggleLegend(name);
1106
+ },
1107
+ [chartHandle, legendSelected]
1108
+ );
1109
+ const highlightSeries = useCallback(
1110
+ (index) => {
1111
+ chartHandle?.highlightSeries({ seriesIndex: index });
1112
+ },
1113
+ [chartHandle]
1114
+ );
1115
+ const unhighlightSeries = useCallback(() => {
1116
+ chartHandle?.highlightSeries(void 0);
1117
+ }, [chartHandle]);
1118
+ const onToggleAll = useCallback(
1119
+ (legend2, legendSelected2, chartHandle2) => {
1120
+ const allSelected = legend2.every((name) => legendSelected2[name]);
1121
+ legend2.forEach((name) => {
1122
+ chartHandle2?.toggleLegend(name, !allSelected);
1123
+ });
1124
+ },
1125
+ [legend, legendSelected, chartHandle]
1126
+ );
1127
+ const list = legend.map((name, index) => {
1128
+ const selected = legendSelected[name] || legendSelected[name] === void 0;
1129
+ return /* @__PURE__ */ jsxs5(
1130
+ "div",
1131
+ {
1132
+ className: "flex cursor-pointer items-center gap-0.5 whitespace-nowrap",
1133
+ "data-tip": name,
1134
+ onClick: (event) => onToggleLegend(event, name, index),
1135
+ onDoubleClick: (event) => {
1136
+ onToggleAll(legend, legendSelected, chartHandle);
1137
+ },
1138
+ onMouseEnter: (e) => {
1139
+ if (legendSelected[name] !== false) {
1140
+ highlightSeries(index);
1141
+ }
1142
+ setTooltipReferenceElement(e.currentTarget);
1143
+ setTooltipText(name);
1144
+ },
1145
+ onMouseLeave: () => {
1146
+ unhighlightSeries();
1147
+ setTooltipReferenceElement(void 0);
1148
+ setTooltipText("");
1149
+ },
1150
+ children: [
1151
+ /* @__PURE__ */ jsx8(
1152
+ "span",
1153
+ {
1154
+ className: "rounded-xs h-2.5 w-2.5",
1155
+ style: {
1156
+ backgroundColor: selected ? chartHandle?.getSeriesColor({ seriesName: name }) : COLOR_UNSELECTED
1157
+ }
1158
+ }
1159
+ ),
1160
+ /* @__PURE__ */ jsx8(
1161
+ "span",
1162
+ {
1163
+ className: "truncate text-xs",
1164
+ style: {
1165
+ maxWidth: "12em",
1166
+ color: selected ? void 0 : COLOR_UNSELECTED
1167
+ },
1168
+ children: name
1169
+ }
1170
+ )
1171
+ ]
1172
+ },
1173
+ name + index
1174
+ );
1175
+ });
1176
+ return /* @__PURE__ */ jsxs5(
1177
+ "div",
1178
+ {
1179
+ ref: rootRef,
1180
+ className: "text-text-foreground-secondary flex max-h-10 flex-wrap gap-x-3 gap-y-1 overflow-y-auto px-2 text-[13px] leading-[18px]",
1181
+ children: [
1182
+ list,
1183
+ returnedSeries && totalSeries && returnedSeries < totalSeries ? /* @__PURE__ */ jsxs5("div", { className: "font-semibold", style: { color: "#6B7280" }, children: [
1184
+ "showing ",
1185
+ returnedSeries,
1186
+ " of ",
1187
+ totalSeries,
1188
+ " series"
1189
+ ] }) : null,
1190
+ /* @__PURE__ */ jsx8(Tooltip, { referenceElement: tooltipReferenceElement, text: tooltipText })
1191
+ ]
1192
+ }
1193
+ );
1194
+ };
1195
+
1196
+ // src/utils/is-mobile.ts
1197
+ function isMobile() {
1198
+ return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
1199
+ navigator.userAgent
1200
+ );
1201
+ }
1202
+
1203
+ // src/charts/theme/register.ts
1204
+ import { registerTheme } from "echarts/core";
1205
+
1206
+ // src/charts/theme/sentio-colors.ts
1207
+ var sentioColors = {
1208
+ light: {
1209
+ classic: [
1210
+ "#5470f0",
1211
+ "#47c9d9",
1212
+ "#de5f94",
1213
+ "#e4bc4f",
1214
+ "#4cb275",
1215
+ "#77aeef",
1216
+ "#9368dd",
1217
+ "#e46d6d",
1218
+ "#f1904e"
1219
+ ],
1220
+ purple: [
1221
+ "#5b0fa6",
1222
+ "#6d11c9",
1223
+ "#8617e8",
1224
+ "#9b35e9",
1225
+ "#a855f7",
1226
+ "#b67af2",
1227
+ "#7a6bff",
1228
+ "#5b7cff",
1229
+ "#3e82f6"
1230
+ ]
1231
+ },
1232
+ dark: {
1233
+ classic: [
1234
+ "#6c8aff",
1235
+ "#74dfe6",
1236
+ "#ff75b0",
1237
+ "#f1cf66",
1238
+ "#67c88f",
1239
+ "#95c6ff",
1240
+ "#b189ff",
1241
+ "#f28787",
1242
+ "#ffad67"
1243
+ ],
1244
+ purple: [
1245
+ "#3f0a78",
1246
+ "#5310a0",
1247
+ "#6816c7",
1248
+ "#7c2ee6",
1249
+ "#9451f4",
1250
+ "#a874f8",
1251
+ "#6d63f6",
1252
+ "#5b7cff",
1253
+ "#4794ff"
1254
+ ]
1255
+ }
1256
+ };
1257
+
1258
+ // src/charts/theme/sentio-theme.ts
1259
+ var sansFontFamily = 'ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif';
1260
+ var textSecondaryLight = "#625d75";
1261
+ var textSecondaryDark = "#b7b4c7";
1262
+ var sentioTheme = {
1263
+ color: sentioColors.light.classic,
1264
+ backgroundColor: "rgba(0,0,0,0)",
1265
+ textStyle: {
1266
+ fontSize: 11,
1267
+ fontFamily: sansFontFamily,
1268
+ color: textSecondaryLight
1269
+ },
1270
+ title: {
1271
+ textStyle: {
1272
+ color: textSecondaryLight
1273
+ },
1274
+ subtextStyle: {
1275
+ color: textSecondaryLight
1276
+ }
1277
+ },
1278
+ line: {
1279
+ itemStyle: {
1280
+ borderWidth: 1
1281
+ },
1282
+ lineStyle: {
1283
+ width: 2
1284
+ },
1285
+ symbolSize: 4,
1286
+ symbol: "emptyCircle",
1287
+ smooth: false
1288
+ },
1289
+ radar: {
1290
+ itemStyle: {
1291
+ borderWidth: 1
1292
+ },
1293
+ lineStyle: {
1294
+ width: 2
1295
+ },
1296
+ symbolSize: 4,
1297
+ symbol: "emptyCircle",
1298
+ smooth: false
1299
+ },
1300
+ bar: {
1301
+ itemStyle: {
1302
+ borderWidth: 0,
1303
+ borderColor: "#ccc"
1304
+ }
1305
+ },
1306
+ pie: {
1307
+ itemStyle: {
1308
+ borderWidth: 0,
1309
+ borderColor: "#ccc"
1310
+ },
1311
+ label: {
1312
+ textBorderWidth: 0,
1313
+ textBorderColor: "transparent"
1314
+ }
1315
+ },
1316
+ scatter: {
1317
+ itemStyle: {
1318
+ borderWidth: 0,
1319
+ borderColor: "#ccc"
1320
+ }
1321
+ },
1322
+ boxplot: {
1323
+ itemStyle: {
1324
+ borderWidth: 0,
1325
+ borderColor: "#ccc"
1326
+ }
1327
+ },
1328
+ parallel: {
1329
+ itemStyle: {
1330
+ borderWidth: 0,
1331
+ borderColor: "#ccc"
1332
+ }
1333
+ },
1334
+ sankey: {
1335
+ itemStyle: {
1336
+ borderWidth: 0,
1337
+ borderColor: "#ccc"
1338
+ }
1339
+ },
1340
+ funnel: {
1341
+ itemStyle: {
1342
+ borderWidth: 0,
1343
+ borderColor: "#ccc"
1344
+ }
1345
+ },
1346
+ gauge: {
1347
+ itemStyle: {
1348
+ borderWidth: 0,
1349
+ borderColor: "#ccc"
1350
+ }
1351
+ },
1352
+ candlestick: {
1353
+ itemStyle: {
1354
+ color: "#eb5454",
1355
+ color0: "#47b262",
1356
+ borderColor: "#eb5454",
1357
+ borderColor0: "#47b262",
1358
+ borderWidth: 1
1359
+ }
1360
+ },
1361
+ graph: {
1362
+ itemStyle: {
1363
+ borderWidth: 0,
1364
+ borderColor: "#ccc"
1365
+ },
1366
+ lineStyle: {
1367
+ width: 1,
1368
+ color: "#aaaaaa"
1369
+ },
1370
+ symbolSize: 4,
1371
+ symbol: "emptyCircle",
1372
+ smooth: false,
1373
+ color: [
1374
+ "#2e71db",
1375
+ "#8dc869",
1376
+ "#ffdc2d",
1377
+ "#f05a4d",
1378
+ "#56bce5",
1379
+ "#73ba46",
1380
+ "#fe9f05",
1381
+ "#a452d7",
1382
+ "#a65a8b"
1383
+ ],
1384
+ label: {
1385
+ color: "#ebeff3"
1386
+ }
1387
+ },
1388
+ map: {
1389
+ itemStyle: {
1390
+ areaColor: "#eee",
1391
+ borderColor: "#444",
1392
+ borderWidth: 0.5
1393
+ },
1394
+ label: {
1395
+ color: "#000"
1396
+ },
1397
+ emphasis: {
1398
+ itemStyle: {
1399
+ areaColor: "rgba(255,215,0,0.8)",
1400
+ borderColor: "#444",
1401
+ borderWidth: 1
1402
+ },
1403
+ label: {
1404
+ color: "rgb(100,0,0)"
1405
+ }
1406
+ }
1407
+ },
1408
+ geo: {
1409
+ itemStyle: {
1410
+ areaColor: "#eee",
1411
+ borderColor: "#444",
1412
+ borderWidth: 0.5
1413
+ },
1414
+ label: {
1415
+ color: "#000"
1416
+ },
1417
+ emphasis: {
1418
+ itemStyle: {
1419
+ areaColor: "rgba(255,215,0,0.8)",
1420
+ borderColor: "#444",
1421
+ borderWidth: 1
1422
+ },
1423
+ label: {
1424
+ color: "rgb(100,0,0)"
1425
+ }
1426
+ }
1427
+ },
1428
+ categoryAxis: {
1429
+ axisLine: {
1430
+ show: true,
1431
+ lineStyle: {
1432
+ // matches CSS --border-color in light mode (rgb(235,239,243))
1433
+ color: "#EBEFF3"
1434
+ }
1435
+ },
1436
+ axisTick: {
1437
+ show: true,
1438
+ lineStyle: {
1439
+ color: "#EBEFF3"
1440
+ }
1441
+ },
1442
+ axisLabel: {
1443
+ show: true,
1444
+ color: textSecondaryLight,
1445
+ fontWeight: "normal"
1446
+ },
1447
+ splitLine: {
1448
+ show: false,
1449
+ lineStyle: {
1450
+ color: ["#E0E6F1"]
1451
+ }
1452
+ },
1453
+ splitArea: {
1454
+ show: false,
1455
+ areaStyle: {
1456
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1457
+ }
1458
+ }
1459
+ },
1460
+ valueAxis: {
1461
+ axisLine: {
1462
+ show: false,
1463
+ lineStyle: {
1464
+ color: textSecondaryLight
1465
+ }
1466
+ },
1467
+ axisTick: {
1468
+ show: false,
1469
+ lineStyle: {
1470
+ color: textSecondaryLight
1471
+ }
1472
+ },
1473
+ axisLabel: {
1474
+ show: true,
1475
+ color: textSecondaryLight,
1476
+ fontWeight: "normal"
1477
+ },
1478
+ splitLine: {
1479
+ show: true,
1480
+ lineStyle: {
1481
+ color: "rgba(228, 232, 237, 0.3)"
1482
+ }
1483
+ },
1484
+ splitArea: {
1485
+ show: false,
1486
+ areaStyle: {
1487
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1488
+ }
1489
+ }
1490
+ },
1491
+ logAxis: {
1492
+ axisLine: {
1493
+ show: false,
1494
+ lineStyle: {
1495
+ color: textSecondaryLight
1496
+ }
1497
+ },
1498
+ axisTick: {
1499
+ show: false,
1500
+ lineStyle: {
1501
+ color: textSecondaryLight
1502
+ }
1503
+ },
1504
+ axisLabel: {
1505
+ show: true,
1506
+ color: textSecondaryLight
1507
+ },
1508
+ splitLine: {
1509
+ show: true,
1510
+ lineStyle: {
1511
+ color: "rgba(89, 93, 97, 0.8)"
1512
+ }
1513
+ },
1514
+ splitArea: {
1515
+ show: false,
1516
+ areaStyle: {
1517
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1518
+ }
1519
+ }
1520
+ },
1521
+ timeAxis: {
1522
+ axisLine: {
1523
+ show: true,
1524
+ lineStyle: {
1525
+ // matches CSS --border-color in light mode (rgb(235,239,243))
1526
+ color: "#EBEFF3"
1527
+ }
1528
+ },
1529
+ axisTick: {
1530
+ show: true,
1531
+ lineStyle: {
1532
+ color: "#EBEFF3"
1533
+ }
1534
+ },
1535
+ axisLabel: {
1536
+ show: true,
1537
+ color: textSecondaryLight
1538
+ },
1539
+ splitLine: {
1540
+ show: false,
1541
+ lineStyle: {
1542
+ color: ["#E0E6F1"]
1543
+ }
1544
+ },
1545
+ splitArea: {
1546
+ show: false,
1547
+ areaStyle: {
1548
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1549
+ }
1550
+ }
1551
+ },
1552
+ toolbox: {
1553
+ iconStyle: {
1554
+ borderColor: "#999999"
1555
+ },
1556
+ emphasis: {
1557
+ iconStyle: {
1558
+ borderColor: "#666666"
1559
+ }
1560
+ }
1561
+ },
1562
+ legend: {
1563
+ textStyle: {
1564
+ color: textSecondaryLight,
1565
+ fontSize: 10
1566
+ },
1567
+ pageIconColor: "#4E5969",
1568
+ pageIconInactiveColor: "#C9CDD4",
1569
+ pageTextStyle: {
1570
+ color: textSecondaryLight
1571
+ }
1572
+ },
1573
+ tooltip: {
1574
+ axisPointer: {
1575
+ lineStyle: {
1576
+ color: "#e0e0e0",
1577
+ width: 1
1578
+ },
1579
+ crossStyle: {
1580
+ color: "#e0e0e0",
1581
+ width: 1
1582
+ }
1583
+ }
1584
+ },
1585
+ timeline: {
1586
+ lineStyle: {
1587
+ color: "#dae1f5",
1588
+ width: 2
1589
+ },
1590
+ itemStyle: {
1591
+ color: "#a4b1d7",
1592
+ borderWidth: 1
1593
+ },
1594
+ controlStyle: {
1595
+ color: "#a4b1d7",
1596
+ borderColor: "#a4b1d7",
1597
+ borderWidth: 1
1598
+ },
1599
+ checkpointStyle: {
1600
+ color: "#316bf3",
1601
+ borderColor: "#ffffff"
1602
+ },
1603
+ label: {
1604
+ color: "#a4b1d7"
1605
+ },
1606
+ emphasis: {
1607
+ itemStyle: {
1608
+ color: "#ffffff"
1609
+ },
1610
+ controlStyle: {
1611
+ color: "#a4b1d7",
1612
+ borderColor: "#a4b1d7",
1613
+ borderWidth: 1
1614
+ },
1615
+ label: {
1616
+ color: "#a4b1d7"
1617
+ }
1618
+ }
1619
+ },
1620
+ visualMap: {
1621
+ color: ["#bf444c", "#d88273", "#f6efa6"]
1622
+ },
1623
+ dataZoom: {
1624
+ handleSize: "undefined%",
1625
+ textStyle: {}
1626
+ },
1627
+ markPoint: {
1628
+ label: {
1629
+ color: "#ebeff3"
1630
+ },
1631
+ emphasis: {
1632
+ label: {
1633
+ color: "#ebeff3"
1634
+ }
1635
+ }
1636
+ }
1637
+ };
1638
+ var sentioThemeDark = {
1639
+ color: sentioColors.dark.classic,
1640
+ backgroundColor: "rgba(0,0,0,0)",
1641
+ textStyle: {
1642
+ fontSize: 11,
1643
+ fontFamily: sansFontFamily,
1644
+ textBorderWidth: 0,
1645
+ textBorderColor: "transparent",
1646
+ color: textSecondaryDark
1647
+ },
1648
+ title: {
1649
+ textStyle: {
1650
+ color: textSecondaryDark
1651
+ },
1652
+ subtextStyle: {
1653
+ color: textSecondaryDark
1654
+ }
1655
+ },
1656
+ line: {
1657
+ itemStyle: {
1658
+ borderWidth: 1
1659
+ },
1660
+ lineStyle: {
1661
+ width: 2
1662
+ },
1663
+ symbolSize: 4,
1664
+ symbol: "emptyCircle",
1665
+ smooth: false
1666
+ },
1667
+ radar: {
1668
+ itemStyle: {
1669
+ borderWidth: 1
1670
+ },
1671
+ lineStyle: {
1672
+ width: 2
1673
+ },
1674
+ symbolSize: 4,
1675
+ symbol: "emptyCircle",
1676
+ smooth: false
1677
+ },
1678
+ bar: {
1679
+ itemStyle: {
1680
+ borderWidth: 0,
1681
+ borderColor: "#ccc"
1682
+ }
1683
+ },
1684
+ pie: {
1685
+ itemStyle: {
1686
+ borderWidth: 0,
1687
+ borderColor: "transparent"
1688
+ },
1689
+ label: {
1690
+ textBorderWidth: 0,
1691
+ textBorderColor: "transparent",
1692
+ color: textSecondaryDark
1693
+ }
1694
+ },
1695
+ scatter: {
1696
+ itemStyle: {
1697
+ borderWidth: 0,
1698
+ borderColor: "#ccc"
1699
+ }
1700
+ },
1701
+ boxplot: {
1702
+ itemStyle: {
1703
+ borderWidth: 0,
1704
+ borderColor: "#ccc"
1705
+ }
1706
+ },
1707
+ parallel: {
1708
+ itemStyle: {
1709
+ borderWidth: 0,
1710
+ borderColor: "#ccc"
1711
+ }
1712
+ },
1713
+ sankey: {
1714
+ itemStyle: {
1715
+ borderWidth: 0,
1716
+ borderColor: "#ccc"
1717
+ }
1718
+ },
1719
+ funnel: {
1720
+ itemStyle: {
1721
+ borderWidth: 0,
1722
+ borderColor: "#ccc"
1723
+ }
1724
+ },
1725
+ gauge: {
1726
+ itemStyle: {
1727
+ borderWidth: 0,
1728
+ borderColor: "#ccc"
1729
+ }
1730
+ },
1731
+ candlestick: {
1732
+ itemStyle: {
1733
+ color: "#eb5454",
1734
+ color0: "#47b262",
1735
+ borderColor: "#eb5454",
1736
+ borderColor0: "#47b262",
1737
+ borderWidth: 1
1738
+ }
1739
+ },
1740
+ graph: {
1741
+ itemStyle: {
1742
+ borderWidth: 0,
1743
+ borderColor: "#ccc"
1744
+ },
1745
+ lineStyle: {
1746
+ width: 1,
1747
+ color: "#aaaaaa"
1748
+ },
1749
+ symbolSize: 4,
1750
+ symbol: "emptyCircle",
1751
+ smooth: false,
1752
+ color: [
1753
+ "#2e71db",
1754
+ "#a8d58d",
1755
+ "#ffe355",
1756
+ "#f05a4d",
1757
+ "#56bce5",
1758
+ "#73ba46",
1759
+ "#ff9f05",
1760
+ "#ad56e2",
1761
+ "#e97ec2"
1762
+ ],
1763
+ label: {
1764
+ color: "#ebeff3"
1765
+ }
1766
+ },
1767
+ map: {
1768
+ itemStyle: {
1769
+ areaColor: "#eee",
1770
+ borderColor: "#444",
1771
+ borderWidth: 0.5
1772
+ },
1773
+ label: {
1774
+ color: "#000"
1775
+ },
1776
+ emphasis: {
1777
+ itemStyle: {
1778
+ areaColor: "rgba(255,215,0,0.8)",
1779
+ borderColor: "#444",
1780
+ borderWidth: 1
1781
+ },
1782
+ label: {
1783
+ color: "rgb(100,0,0)"
1784
+ }
1785
+ }
1786
+ },
1787
+ geo: {
1788
+ itemStyle: {
1789
+ areaColor: "#eee",
1790
+ borderColor: "#444",
1791
+ borderWidth: 0.5
1792
+ },
1793
+ label: {
1794
+ color: "#000"
1795
+ },
1796
+ emphasis: {
1797
+ itemStyle: {
1798
+ areaColor: "rgba(255,215,0,0.8)",
1799
+ borderColor: "#444",
1800
+ borderWidth: 1
1801
+ },
1802
+ label: {
1803
+ color: "rgb(100,0,0)"
1804
+ }
1805
+ }
1806
+ },
1807
+ categoryAxis: {
1808
+ axisLine: {
1809
+ show: true,
1810
+ lineStyle: {
1811
+ // matches CSS --border-color in dark mode (gray-100 = rgb(66,66,72))
1812
+ color: "#424248"
1813
+ }
1814
+ },
1815
+ axisTick: {
1816
+ show: true,
1817
+ lineStyle: {
1818
+ color: "#424248"
1819
+ }
1820
+ },
1821
+ axisLabel: {
1822
+ show: true,
1823
+ color: textSecondaryDark,
1824
+ fontWeight: "normal"
1825
+ },
1826
+ splitLine: {
1827
+ show: false,
1828
+ lineStyle: {
1829
+ color: ["#E0E6F1"]
1830
+ }
1831
+ },
1832
+ splitArea: {
1833
+ show: false,
1834
+ areaStyle: {
1835
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1836
+ }
1837
+ }
1838
+ },
1839
+ valueAxis: {
1840
+ axisLine: {
1841
+ show: false,
1842
+ lineStyle: {
1843
+ color: textSecondaryDark
1844
+ }
1845
+ },
1846
+ axisTick: {
1847
+ show: false,
1848
+ lineStyle: {
1849
+ color: textSecondaryDark
1850
+ }
1851
+ },
1852
+ axisLabel: {
1853
+ show: true,
1854
+ color: textSecondaryDark
1855
+ },
1856
+ splitLine: {
1857
+ show: true,
1858
+ lineStyle: {
1859
+ // softer gridline on the new dark canvas — barely visible
1860
+ color: "rgba(255, 255, 255, 0.05)",
1861
+ width: 1,
1862
+ opacity: 0.4
1863
+ }
1864
+ },
1865
+ splitArea: {
1866
+ show: false,
1867
+ areaStyle: {
1868
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1869
+ }
1870
+ }
1871
+ },
1872
+ logAxis: {
1873
+ axisLine: {
1874
+ show: false,
1875
+ lineStyle: {
1876
+ color: textSecondaryDark
1877
+ }
1878
+ },
1879
+ axisTick: {
1880
+ show: false,
1881
+ lineStyle: {
1882
+ color: textSecondaryDark
1883
+ }
1884
+ },
1885
+ axisLabel: {
1886
+ show: true,
1887
+ color: textSecondaryDark,
1888
+ fontWeight: "normal"
1889
+ },
1890
+ splitLine: {
1891
+ show: true,
1892
+ lineStyle: {
1893
+ // softer gridline on the new dark canvas
1894
+ color: ["rgba(255, 255, 255, 0.05)"],
1895
+ width: 1,
1896
+ opacity: 0.4
1897
+ }
1898
+ },
1899
+ splitArea: {
1900
+ show: false,
1901
+ areaStyle: {
1902
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1903
+ }
1904
+ }
1905
+ },
1906
+ timeAxis: {
1907
+ axisLine: {
1908
+ show: true,
1909
+ lineStyle: {
1910
+ // matches CSS --border-color in dark mode (gray-100 = rgb(66,66,72))
1911
+ color: "#424248"
1912
+ }
1913
+ },
1914
+ axisTick: {
1915
+ show: true,
1916
+ lineStyle: {
1917
+ color: "#424248"
1918
+ }
1919
+ },
1920
+ axisLabel: {
1921
+ show: true,
1922
+ color: textSecondaryDark
1923
+ },
1924
+ splitLine: {
1925
+ show: false,
1926
+ lineStyle: {
1927
+ color: ["#5d6165"]
1928
+ }
1929
+ },
1930
+ splitArea: {
1931
+ show: false,
1932
+ areaStyle: {
1933
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1934
+ }
1935
+ }
1936
+ },
1937
+ toolbox: {
1938
+ iconStyle: {
1939
+ borderColor: "#999999"
1940
+ },
1941
+ emphasis: {
1942
+ iconStyle: {
1943
+ borderColor: "#666666"
1944
+ }
1945
+ }
1946
+ },
1947
+ legend: {
1948
+ textStyle: {
1949
+ color: textSecondaryDark
1950
+ },
1951
+ pageIconColor: "#909399",
1952
+ pageIconInactiveColor: "#606266",
1953
+ pageTextStyle: {
1954
+ color: textSecondaryDark
1955
+ }
1956
+ },
1957
+ tooltip: {
1958
+ axisPointer: {
1959
+ lineStyle: {
1960
+ color: "#e0e0e0",
1961
+ width: 1
1962
+ },
1963
+ crossStyle: {
1964
+ color: "#e0e0e0",
1965
+ width: 1
1966
+ }
1967
+ },
1968
+ backgroundColor: "#202020",
1969
+ textStyle: {
1970
+ color: textSecondaryDark
1971
+ }
1972
+ },
1973
+ timeline: {
1974
+ lineStyle: {
1975
+ color: "#dae1f5",
1976
+ width: 2
1977
+ },
1978
+ itemStyle: {
1979
+ color: "#a4b1d7",
1980
+ borderWidth: 1
1981
+ },
1982
+ controlStyle: {
1983
+ color: "#a4b1d7",
1984
+ borderColor: "#a4b1d7",
1985
+ borderWidth: 1
1986
+ },
1987
+ checkpointStyle: {
1988
+ color: "#316bf3",
1989
+ borderColor: "#ffffff"
1990
+ },
1991
+ label: {
1992
+ color: "#a4b1d7"
1993
+ },
1994
+ emphasis: {
1995
+ itemStyle: {
1996
+ color: "#ffffff"
1997
+ },
1998
+ controlStyle: {
1999
+ color: "#a4b1d7",
2000
+ borderColor: "#a4b1d7",
2001
+ borderWidth: 1
2002
+ },
2003
+ label: {
2004
+ color: "#a4b1d7"
2005
+ }
2006
+ }
2007
+ },
2008
+ visualMap: {
2009
+ color: ["#bf444c", "#d88273", "#f6efa6"]
2010
+ },
2011
+ dataZoom: {
2012
+ handleSize: "undefined%",
2013
+ textStyle: {}
2014
+ },
2015
+ markPoint: {
2016
+ label: {
2017
+ color: "#ebeff3"
2018
+ },
2019
+ emphasis: {
2020
+ label: {
2021
+ color: "#ebeff3"
2022
+ }
2023
+ }
2024
+ }
2025
+ };
2026
+
2027
+ // src/charts/theme/register.ts
2028
+ var registered = false;
2029
+ function registerSentioTheme() {
2030
+ if (registered) return;
2031
+ registered = true;
2032
+ registerTheme("sentio", sentioTheme);
2033
+ registerTheme("sentio-dark", sentioThemeDark);
2034
+ }
2035
+
2036
+ // src/utils/use-dark-mode.ts
2037
+ import { useCallback as useCallback2, useEffect as useEffect4, useState as useState5 } from "react";
2038
+ var DarkModeListener = class _DarkModeListener {
2039
+ constructor() {
2040
+ this.isDarkMode = false;
2041
+ this.listeners = [];
2042
+ this.init();
2043
+ }
2044
+ static get instance() {
2045
+ if (!this._instance) {
2046
+ this._instance = new _DarkModeListener();
2047
+ }
2048
+ return this._instance;
2049
+ }
2050
+ addListener(listener) {
2051
+ this.listeners.push(listener);
2052
+ }
2053
+ removeListener(listener) {
2054
+ this.listeners = this.listeners.filter((l) => l !== listener);
2055
+ }
2056
+ get darkMode() {
2057
+ return this.isDarkMode;
2058
+ }
2059
+ _sync(theme = "system") {
2060
+ let isDarkMode = false;
2061
+ if (theme === "system") {
2062
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
2063
+ isDarkMode = mediaQuery.matches;
2064
+ localStorage.setItem("theme", "system");
2065
+ } else if (theme === "light") {
2066
+ isDarkMode = false;
2067
+ localStorage.removeItem("theme");
2068
+ } else {
2069
+ isDarkMode = theme === "dark";
2070
+ localStorage.setItem("theme", "dark");
2071
+ }
2072
+ this.isDarkMode = isDarkMode;
2073
+ document.body.classList.remove("light", "dark");
2074
+ document.body.classList.add(isDarkMode ? "dark" : "light");
2075
+ this.listeners.forEach((listener) => listener(isDarkMode));
2076
+ }
2077
+ toggleDarkMode() {
2078
+ this.isDarkMode = document.body.classList.contains("dark");
2079
+ this._sync(this.isDarkMode ? "light" : "dark");
2080
+ }
2081
+ setDarkMode(value) {
2082
+ this._sync(value);
2083
+ }
2084
+ init() {
2085
+ this.isDarkMode = document.body.classList.contains("dark");
2086
+ const observer = new MutationObserver((mutationsList) => {
2087
+ for (const mutation of mutationsList) {
2088
+ if (mutation.type === "attributes" && mutation.attributeName === "class") {
2089
+ const isDarkMode = document.body.classList.contains("dark");
2090
+ if (this.isDarkMode !== isDarkMode) {
2091
+ this.isDarkMode = isDarkMode;
2092
+ this.listeners.forEach((listener) => listener(isDarkMode));
2093
+ }
2094
+ }
2095
+ }
2096
+ });
2097
+ const config = {
2098
+ attributes: true,
2099
+ // Observe attribute changes
2100
+ attributeFilter: ["class"]
2101
+ // Only observe changes to the 'class' attribute
2102
+ };
2103
+ observer.observe(document.body, config);
2104
+ }
2105
+ };
2106
+ var useDarkMode = (defaultValue = false) => {
2107
+ const [isDarkMode, setIsDarkMode] = useState5(defaultValue);
2108
+ useEffect4(() => {
2109
+ const instance = DarkModeListener.instance;
2110
+ setIsDarkMode(instance.darkMode);
2111
+ instance.addListener(setIsDarkMode);
2112
+ }, []);
2113
+ return isDarkMode;
2114
+ };
2115
+
2116
+ // src/charts/EchartsBase.tsx
2117
+ import { Fragment as Fragment4, jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
2118
+ use([
2119
+ LegendComponent,
2120
+ PieChart,
2121
+ LineChart,
2122
+ ScatterChart,
2123
+ MarkLineComponent,
2124
+ MarkAreaComponent,
2125
+ BarChart,
2126
+ SankeyChart,
2127
+ GridComponent,
2128
+ TooltipComponent,
2129
+ BrushComponent,
2130
+ TitleComponent,
2131
+ ToolboxComponent,
2132
+ // A group of utility tools, which includes export, data view, dynamic type switching, data area zooming, and reset.
2133
+ DataZoomComponent,
2134
+ // Used in Line Graph Charts
2135
+ CanvasRenderer,
2136
+ // If you only need to use the canvas rendering mode, the bundle will not include the SVGRenderer module, which is not needed.
2137
+ GraphicComponent,
2138
+ SVGRenderer,
2139
+ VisualMapComponent
2140
+ ]);
2141
+ registerSentioTheme();
2142
+ var ReactEChartsBaseComponent = ({
2143
+ group,
2144
+ option,
2145
+ style,
2146
+ settings,
2147
+ loading,
2148
+ theme: _theme,
2149
+ // minHeight,
2150
+ returnedSeries,
2151
+ totalSeries,
2152
+ onSelect,
2153
+ noLegend,
2154
+ onZoom,
2155
+ onClick,
2156
+ onSeriesEvent,
2157
+ onInitChart
2158
+ }, forwardedRef) => {
2159
+ const isDarkMode = useDarkMode();
2160
+ const theme = _theme || (isDarkMode ? "sentio-dark" : "sentio");
2161
+ const [legendSelected, setLegendSelected] = useState6(
2162
+ {}
2163
+ );
2164
+ const [chart, setChart] = useState6();
2165
+ const echartInstanceRef = useRef3();
2166
+ const [legendRendered, setLegendRendered] = useState6(false);
2167
+ const chartRender = "canvas";
2168
+ const frameRef = useRef3(null);
2169
+ const chartHandle = useMemo4(() => {
2170
+ return {
2171
+ getEChart: () => echartInstanceRef.current,
2172
+ highlightSeries(highlighted) {
2173
+ const chart2 = echartInstanceRef.current;
2174
+ if (chart2) {
2175
+ const { series: s } = chart2.getOption();
2176
+ const series = s;
2177
+ if (highlighted) {
2178
+ for (let i = 0; i < series.length; i++) {
2179
+ const s2 = series[i];
2180
+ if (s2.id == highlighted.seriesId || highlighted.seriesIndex == i) {
2181
+ s2.lineStyle = s2.lineStyle || {};
2182
+ s2.lineStyle.opacity = 1;
2183
+ } else {
2184
+ s2.lineStyle = s2.lineStyle || {};
2185
+ s2.lineStyle.opacity = 0.2;
2186
+ }
2187
+ }
2188
+ } else {
2189
+ series.forEach((s2) => {
2190
+ s2.lineStyle = s2.lineStyle || {};
2191
+ s2.lineStyle.opacity = 1;
2192
+ });
2193
+ }
2194
+ chart2.setOption({ series });
2195
+ }
2196
+ },
2197
+ getSeriesColor(s) {
2198
+ const chart2 = echartInstanceRef.current;
2199
+ if (chart2) {
2200
+ try {
2201
+ const { series: optionSeries } = chart2.getOption();
2202
+ const seriesList = optionSeries || [];
2203
+ let resolvedIndex = s.seriesIndex;
2204
+ if ((resolvedIndex == null || resolvedIndex < 0) && s.seriesId) {
2205
+ resolvedIndex = seriesList.findIndex(
2206
+ (serie) => serie.id === s.seriesId
2207
+ );
2208
+ }
2209
+ if ((resolvedIndex == null || resolvedIndex < 0) && s.seriesName) {
2210
+ resolvedIndex = seriesList.findIndex(
2211
+ (serie) => serie.name === s.seriesName
2212
+ );
2213
+ }
2214
+ if (resolvedIndex != null && resolvedIndex >= 0 && resolvedIndex < seriesList.length) {
2215
+ return chart2.getVisual(
2216
+ { seriesIndex: resolvedIndex },
2217
+ "color"
2218
+ );
2219
+ }
2220
+ return void 0;
2221
+ } catch (e) {
2222
+ }
2223
+ }
2224
+ },
2225
+ getFrame() {
2226
+ return frameRef.current;
2227
+ },
2228
+ toggleLegend(name, selected) {
2229
+ const chart2 = echartInstanceRef.current;
2230
+ if (selected == null) {
2231
+ chart2?.dispatchAction({
2232
+ type: "legendToggleSelect",
2233
+ name
2234
+ });
2235
+ } else {
2236
+ chart2?.dispatchAction({
2237
+ type: selected ? "legendSelect" : "legendUnSelect",
2238
+ name
2239
+ });
2240
+ }
2241
+ },
2242
+ getSeries(seriesId) {
2243
+ const chart2 = echartInstanceRef.current;
2244
+ if (chart2) {
2245
+ const { series: s } = chart2.getOption();
2246
+ const series = s;
2247
+ return series?.find((s2) => s2.id == seriesId);
2248
+ }
2249
+ },
2250
+ resize: (size) => {
2251
+ const chart2 = echartInstanceRef.current;
2252
+ chart2?.resize(size);
2253
+ }
2254
+ };
2255
+ }, []);
2256
+ useImperativeHandle(forwardedRef, () => {
2257
+ return chartHandle;
2258
+ }, [chartHandle]);
2259
+ const onResize = useCallback3(({ width, height }) => {
2260
+ const chart2 = echartInstanceRef.current;
2261
+ chart2?.resize({
2262
+ width: width ?? void 0,
2263
+ height: height ?? void 0
2264
+ });
2265
+ }, []);
2266
+ const {
2267
+ // width,
2268
+ // height,
2269
+ ref: chartRef
2270
+ } = useResizeDetector({
2271
+ onResize,
2272
+ refreshMode: "throttle",
2273
+ refreshRate: 100
2274
+ });
2275
+ useEffect5(() => {
2276
+ let instance;
2277
+ const containerNode = frameRef.current?.querySelector(".echart-container");
2278
+ if (containerNode) {
2279
+ instance = init(containerNode, theme, {
2280
+ renderer: chartRender,
2281
+ locale: "EN"
2282
+ });
2283
+ echartInstanceRef.current = instance;
2284
+ setChart(instance);
2285
+ }
2286
+ return () => {
2287
+ echartInstanceRef.current = void 0;
2288
+ instance?.dispose();
2289
+ };
2290
+ }, [theme, chartRender]);
2291
+ useEffect5(() => {
2292
+ if (!chart || chart.isDisposed()) {
2293
+ return;
2294
+ }
2295
+ chart.on("legendselected", (event) => {
2296
+ setLegendSelected(event.selected);
2297
+ });
2298
+ chart.on("legendunselected", (event) => {
2299
+ setLegendSelected(event.selected);
2300
+ });
2301
+ chart.on("legendselectchanged", (event) => {
2302
+ setLegendSelected(event.selected);
2303
+ });
2304
+ chart.on("brushEnd", (params) => {
2305
+ const areas = params.areas[0];
2306
+ if (areas) {
2307
+ const start = areas.coordRange[0];
2308
+ const end = areas.coordRange[1];
2309
+ onSelect && onSelect(start, end);
2310
+ }
2311
+ });
2312
+ if (onZoom) {
2313
+ chart.on("dataZoom", (params) => {
2314
+ onZoom(params.start, params.end);
2315
+ });
2316
+ }
2317
+ return () => {
2318
+ if (chart.isDisposed()) return;
2319
+ chart.off("legendselectchanged");
2320
+ chart.off("brushEnd");
2321
+ chart.off("dataZoom");
2322
+ };
2323
+ }, [chart, onSelect, onZoom]);
2324
+ useEffect5(() => {
2325
+ if (!chart || chart.isDisposed() || !onClick) {
2326
+ return;
2327
+ }
2328
+ chart.getZr()?.on("click", (params) => {
2329
+ const pointInPixel = [params.offsetX, params.offsetY];
2330
+ const pointInGrid = chart.convertFromPixel("grid", pointInPixel);
2331
+ onClick(pointInGrid, params);
2332
+ });
2333
+ if (onSeriesEvent) {
2334
+ chart.on("click", "series", (params) => {
2335
+ onSeriesEvent?.("click", params);
2336
+ });
2337
+ chart.on("mouseover", "series", (params) => {
2338
+ onSeriesEvent?.("mouseover", params);
2339
+ });
2340
+ chart.on("mouseout", "series", (params) => {
2341
+ onSeriesEvent?.("mouseout", params);
2342
+ });
2343
+ }
2344
+ return () => {
2345
+ if (chart.isDisposed()) return;
2346
+ chart.getZr()?.off("click");
2347
+ if (onSeriesEvent) {
2348
+ chart.off("click");
2349
+ chart.off("mouseout");
2350
+ chart.off("mouseover");
2351
+ }
2352
+ };
2353
+ }, [chart, onClick, onSeriesEvent, onInitChart]);
2354
+ const processedOption = useMemo4(() => {
2355
+ if (!option) return option;
2356
+ const processedOpt = { ...option };
2357
+ const graphicElements = [];
2358
+ let hasYAxisName = false;
2359
+ let hasXAxisName = false;
2360
+ const textColor = isDarkMode ? "#A6A6A6" : "#6E7079";
2361
+ const createAxisNameElement = (name, isYAxis, axisIndex = 0) => {
2362
+ const baseStyle = {
2363
+ text: name,
2364
+ fontSize: 11,
2365
+ fontFamily: sansFontFamily,
2366
+ fontWeight: 600,
2367
+ fill: textColor,
2368
+ textAlign: "center",
2369
+ textVerticalAlign: "middle"
2370
+ };
2371
+ if (isYAxis) {
2372
+ return {
2373
+ type: "text",
2374
+ left: axisIndex === 0 ? 8 : "right",
2375
+ top: "middle",
2376
+ rotation: Math.PI / 2,
2377
+ style: baseStyle,
2378
+ z: 100,
2379
+ silent: true
2380
+ };
2381
+ } else {
2382
+ return {
2383
+ type: "text",
2384
+ left: "center",
2385
+ bottom: axisIndex === 0 ? 8 : "top",
2386
+ style: baseStyle,
2387
+ z: 100,
2388
+ silent: true
2389
+ };
2390
+ }
2391
+ };
2392
+ const processAxisName = (axisConfig, isYAxis, axisIndex = 0) => {
2393
+ if (axisConfig && typeof axisConfig === "object" && axisConfig.name) {
2394
+ if (isYAxis) {
2395
+ hasYAxisName = true;
2396
+ } else {
2397
+ hasXAxisName = true;
2398
+ }
2399
+ const { name, ...restAxis } = axisConfig;
2400
+ const graphicElement = createAxisNameElement(name, isYAxis, axisIndex);
2401
+ graphicElements.push(graphicElement);
2402
+ return restAxis;
2403
+ }
2404
+ return axisConfig;
2405
+ };
2406
+ const processAxisArray = (axisOption, isYAxis) => {
2407
+ if (!axisOption) return axisOption;
2408
+ if (Array.isArray(axisOption)) {
2409
+ return axisOption.map(
2410
+ (axis, index) => processAxisName(axis, isYAxis, index)
2411
+ );
2412
+ } else {
2413
+ return processAxisName(axisOption, isYAxis, 0);
2414
+ }
2415
+ };
2416
+ processedOpt.yAxis = processAxisArray(option.yAxis, true);
2417
+ processedOpt.xAxis = processAxisArray(option.xAxis, false);
2418
+ if (hasYAxisName || hasXAxisName) {
2419
+ const originalGrid = processedOpt.grid || {};
2420
+ const adjustGridSpacing = (gridItem) => ({
2421
+ ...gridItem,
2422
+ left: hasYAxisName ? typeof gridItem.left === "number" ? gridItem.left + 20 : 32 : gridItem.left,
2423
+ bottom: hasXAxisName ? typeof gridItem.bottom === "number" ? gridItem.bottom + 20 : 28 : gridItem.bottom
2424
+ });
2425
+ processedOpt.grid = Array.isArray(originalGrid) ? originalGrid.map(adjustGridSpacing) : adjustGridSpacing(originalGrid);
2426
+ }
2427
+ if (graphicElements.length > 0) {
2428
+ const existingGraphic = processedOpt.graphic;
2429
+ if (existingGraphic) {
2430
+ processedOpt.graphic = Array.isArray(existingGraphic) ? [...existingGraphic, ...graphicElements] : [existingGraphic, ...graphicElements];
2431
+ } else {
2432
+ processedOpt.graphic = graphicElements;
2433
+ }
2434
+ }
2435
+ return processedOpt;
2436
+ }, [option, isDarkMode]);
2437
+ useEffect5(() => {
2438
+ if (!chart || chart.isDisposed()) {
2439
+ return;
2440
+ }
2441
+ try {
2442
+ chart.setOption(
2443
+ {
2444
+ ...processedOption,
2445
+ legend: {
2446
+ ...processedOption.legend,
2447
+ // Persist legend selected state between re-render.
2448
+ ...legendSelected ? { selected: legendSelected } : {}
2449
+ }
2450
+ },
2451
+ { ...settings, notMerge: true }
2452
+ );
2453
+ } catch (e) {
2454
+ console.error("echarts set option failed", e, processedOption);
2455
+ }
2456
+ onInitChart?.(chart);
2457
+ if (!isMobile()) {
2458
+ chart.dispatchAction({
2459
+ type: "brush",
2460
+ command: "clear",
2461
+ areas: []
2462
+ });
2463
+ chart.dispatchAction({
2464
+ type: "takeGlobalCursor",
2465
+ key: "brush",
2466
+ brushOption: {
2467
+ brushType: "lineX",
2468
+ brushMode: "single"
2469
+ }
2470
+ });
2471
+ }
2472
+ }, [
2473
+ chart,
2474
+ processedOption,
2475
+ settings,
2476
+ theme,
2477
+ onSelect,
2478
+ legendSelected,
2479
+ onInitChart
2480
+ ]);
2481
+ useEffect5(() => {
2482
+ if (loading) {
2483
+ setLegendRendered(false);
2484
+ }
2485
+ }, [loading]);
2486
+ useEffect5(() => {
2487
+ if (chart && !chart.isDisposed()) {
2488
+ chart.group = group || "";
2489
+ }
2490
+ }, [chart, group]);
2491
+ const onMouseDown = useCallback3(
2492
+ (event) => {
2493
+ if (event.button !== 0 && chartRef.current) {
2494
+ chartRef.current.querySelector(chartRender)?.dispatchEvent(
2495
+ new MouseEvent("mouseup", event)
2496
+ );
2497
+ }
2498
+ },
2499
+ [chartRef, chartRender]
2500
+ );
2501
+ const legends = noLegend ? null : /* @__PURE__ */ jsx9(Fragment4, { children: chart && !loading && /* @__PURE__ */ jsx9(
2502
+ ChartLegend,
2503
+ {
2504
+ legend: option?.legend?.data || [],
2505
+ chartHandle,
2506
+ legendSelected,
2507
+ returnedSeries,
2508
+ totalSeries,
2509
+ onRendered: setLegendRendered
2510
+ }
2511
+ ) });
2512
+ return /* @__PURE__ */ jsxs6(
2513
+ "div",
2514
+ {
2515
+ className: "relative mb-1 grid h-full",
2516
+ style: { gridTemplateRows: "1fr max-content", height: "270px", ...style },
2517
+ onMouseDown,
2518
+ ref: frameRef,
2519
+ children: [
2520
+ /* @__PURE__ */ jsx9(
2521
+ "div",
2522
+ {
2523
+ ref: chartRef,
2524
+ className: "echart-container min-h-0 w-full min-w-0"
2525
+ }
2526
+ ),
2527
+ legends,
2528
+ loading && /* @__PURE__ */ jsx9(
2529
+ BarLoading,
2530
+ {
2531
+ className: "bg-default-bg absolute w-full",
2532
+ hint: "Loading",
2533
+ width: 100
2534
+ }
2535
+ )
2536
+ ]
2537
+ }
2538
+ );
2539
+ };
2540
+ var ReactEChartsBase = forwardRef(ReactEChartsBaseComponent);
2541
+
2542
+ // src/charts/RefreshContext.tsx
2543
+ import { createContext as createContext2, useContext as useContext2 } from "react";
2544
+ import { Button as NewButton } from "@sentio/ui-core";
2545
+ import { IoMdRefresh } from "react-icons/io";
2546
+ import { jsx as jsx10 } from "react/jsx-runtime";
2547
+ var RefreshContext = createContext2({});
2548
+ var RefreshButton = (props) => {
2549
+ const { refresh, isRefreshing } = useContext2(RefreshContext);
2550
+ if (!refresh) return null;
2551
+ return /* @__PURE__ */ jsx10("div", { className: "grid items-center justify-items-center", children: /* @__PURE__ */ jsx10(
2552
+ NewButton,
2553
+ {
2554
+ size: "sm",
2555
+ role: "text",
2556
+ onClick: (evt) => {
2557
+ evt.preventDefault();
2558
+ refresh();
2559
+ },
2560
+ processing: isRefreshing,
2561
+ icon: /* @__PURE__ */ jsx10(IoMdRefresh, {}),
2562
+ className: "text-text-foreground-secondary!",
2563
+ ...props,
2564
+ children: "Retry"
2565
+ }
2566
+ ) });
2567
+ };
2568
+
2569
+ // src/charts/options/LineControls.tsx
2570
+ import { produce as produce4 } from "immer";
2571
+ import {
2572
+ DisclosurePanel,
2573
+ NewButtonGroup as ButtonGroup,
2574
+ Checkbox
2575
+ } from "@sentio/ui-core";
2576
+ import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
2577
+ var lineStyles = [
2578
+ { label: "Solid", value: "Solid" },
2579
+ { label: "Dotted", value: "Dotted" }
2580
+ ];
2581
+ var LineControls = ({ config, defaultOpen, onChange }) => {
2582
+ const setStyle = (style) => {
2583
+ onChange(
2584
+ produce4(config || {}, (draft) => {
2585
+ draft.style = style;
2586
+ })
2587
+ );
2588
+ };
2589
+ const setSmooth = (smooth) => {
2590
+ onChange(
2591
+ produce4(config || {}, (draft) => {
2592
+ draft.smooth = smooth;
2593
+ })
2594
+ );
2595
+ };
2596
+ return /* @__PURE__ */ jsx11(
2597
+ DisclosurePanel,
2598
+ {
2599
+ title: "Line style",
2600
+ containerClassName: "w-full bg-default-bg",
2601
+ children: /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-4", children: [
2602
+ /* @__PURE__ */ jsx11(
2603
+ ButtonGroup,
2604
+ {
2605
+ buttons: lineStyles,
2606
+ value: config?.style || "Solid",
2607
+ onChange: setStyle
2608
+ }
2609
+ ),
2610
+ /* @__PURE__ */ jsx11(
2611
+ Checkbox,
2612
+ {
2613
+ label: "Smooth Curves",
2614
+ checked: config?.smooth,
2615
+ onChange: setSmooth
2616
+ }
2617
+ )
2618
+ ] })
2619
+ }
2620
+ );
2621
+ };
2622
+
2623
+ // src/charts/options/LabelControls.tsx
2624
+ import { useEffect as useEffect6, useMemo as useMemo5 } from "react";
2625
+ import { produce as produce5 } from "immer";
2626
+ import { Button as NewButton2, DisclosurePanel as DisclosurePanel2, HelpIcon as HelpIcon2 } from "@sentio/ui-core";
2627
+ import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
2628
+ var initialConfig = {
2629
+ columns: [],
2630
+ alias: ""
2631
+ };
2632
+ var LabelControls = ({ config, setConfig, defaultOpen }) => {
2633
+ useEffect6(() => {
2634
+ if (config?.columns && config.columns.length > 0 && !config.alias) {
2635
+ const aliasParts = [];
2636
+ config.columns.forEach((colConfig) => {
2637
+ if (!colConfig.name) return;
2638
+ if (colConfig.showLabel === false && colConfig.showValue === false) {
2639
+ } else if (colConfig.showValue === false) {
2640
+ aliasParts.push(colConfig.name);
2641
+ } else {
2642
+ aliasParts.push(`{{${colConfig.name}}}`);
2643
+ }
2644
+ });
2645
+ if (aliasParts.length > 0) {
2646
+ const migratedAlias = aliasParts.join(", ");
2647
+ setConfig(
2648
+ produce5(config, (draft) => {
2649
+ draft.alias = migratedAlias;
2650
+ draft.columns = [];
2651
+ })
2652
+ );
2653
+ }
2654
+ }
2655
+ }, [config, setConfig]);
2656
+ const onAliasChanged = (alias) => {
2657
+ setConfig(
2658
+ produce5(config ?? initialConfig, (draft) => {
2659
+ draft.alias = alias;
2660
+ })
2661
+ );
2662
+ };
2663
+ const _defaultOpen = useMemo5(() => {
2664
+ if (defaultOpen) {
2665
+ return true;
2666
+ }
2667
+ return config?.alias !== "" || config?.columns && config.columns.length > 0;
2668
+ }, [config, defaultOpen]);
2669
+ return /* @__PURE__ */ jsx12(
2670
+ DisclosurePanel2,
2671
+ {
2672
+ title: "Label Controls",
2673
+ defaultOpen: _defaultOpen,
2674
+ containerClassName: "w-full bg-default-bg",
2675
+ children: /* @__PURE__ */ jsxs8("div", { className: "flex items-center gap-2", children: [
2676
+ /* @__PURE__ */ jsxs8("div", { className: "inline-flex h-8", children: [
2677
+ /* @__PURE__ */ jsxs8("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: [
2678
+ "Label Alias",
2679
+ /* @__PURE__ */ jsx12(
2680
+ HelpIcon2,
2681
+ {
2682
+ text: /* @__PURE__ */ jsxs8("div", { className: "text-icontent text-text-foreground", children: [
2683
+ /* @__PURE__ */ jsx12("div", { children: "Series name override or template." }),
2684
+ /* @__PURE__ */ jsxs8("div", { children: [
2685
+ "Ex.",
2686
+ " ",
2687
+ /* @__PURE__ */ jsx12("span", { className: "text-primary mx-1 font-semibold italic", children: "{{contract}}" }),
2688
+ " ",
2689
+ "will be replaced with the value of the contract label."
2690
+ ] })
2691
+ ] })
2692
+ }
2693
+ )
2694
+ ] }),
2695
+ /* @__PURE__ */ jsx12(
2696
+ "input",
2697
+ {
2698
+ type: "text",
2699
+ value: config?.alias || "",
2700
+ onChange: (e) => onAliasChanged(e.target.value),
2701
+ placeholder: "Enter alias...",
2702
+ className: "focus:border-primary-500 sm:text-icontent border-main inline-flex w-64 items-center rounded-r-md border px-2"
2703
+ }
2704
+ )
2705
+ ] }),
2706
+ /* @__PURE__ */ jsx12(
2707
+ NewButton2,
2708
+ {
2709
+ type: "button",
2710
+ role: "link",
2711
+ onClick: () => {
2712
+ setConfig(initialConfig);
2713
+ },
2714
+ children: "Reset"
2715
+ }
2716
+ )
2717
+ ] })
2718
+ }
2719
+ );
2720
+ };
2721
+
2722
+ // src/charts/options/PieChartControls.tsx
2723
+ import { produce as produce6 } from "immer";
2724
+ import { defaults } from "lodash";
2725
+ import {
2726
+ Checkbox as Checkbox2,
2727
+ DisclosurePanel as DisclosurePanel3,
2728
+ NewButtonGroup as ButtonGroup2
2729
+ } from "@sentio/ui-core";
2730
+ import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
2731
+ var defaultConfig = {
2732
+ pieType: "Pie",
2733
+ calculation: "LAST",
2734
+ showPercent: true,
2735
+ showValue: true,
2736
+ absValue: false
2737
+ };
2738
+ var CalculationItems = [
2739
+ { label: "Last", value: "LAST" },
2740
+ { label: "First", value: "FIRST" },
2741
+ { label: "Total", value: "TOTAL" },
2742
+ { label: "Mean", value: "MEAN" },
2743
+ { label: "Max", value: "MAX" },
2744
+ { label: "Min", value: "MIN" }
2745
+ ];
2746
+ var PieTypeItems = [
2747
+ { label: "Pie", value: "Pie" },
2748
+ { label: "Donut", value: "Donut" }
2749
+ ];
2750
+ function PieChartControls({ config, defaultOpen, onChange }) {
2751
+ config = defaults(config, defaultConfig);
2752
+ function onCalculationChange(cal) {
2753
+ config && onChange(produce6(config, (draft) => void (draft.calculation = cal)));
2754
+ }
2755
+ function onPieTypeChange(pieType) {
2756
+ config && onChange(produce6(config, (draft) => void (draft.pieType = pieType)));
2757
+ }
2758
+ function toggle(field, value) {
2759
+ config && onChange(
2760
+ produce6(config, (draft) => {
2761
+ draft[field] = value;
2762
+ })
2763
+ );
2764
+ }
2765
+ return /* @__PURE__ */ jsx13(
2766
+ DisclosurePanel3,
2767
+ {
2768
+ title: "Pie Chart Options",
2769
+ defaultOpen,
2770
+ containerClassName: "w-full bg-default-bg",
2771
+ children: /* @__PURE__ */ jsxs9("div", { className: "flex items-center gap-4", children: [
2772
+ /* @__PURE__ */ jsx13("div", { className: "shadow-xs flex rounded-md", children: /* @__PURE__ */ jsx13(
2773
+ ButtonGroup2,
2774
+ {
2775
+ small: true,
2776
+ buttons: PieTypeItems,
2777
+ value: config.pieType,
2778
+ onChange: onPieTypeChange
2779
+ }
2780
+ ) }),
2781
+ /* @__PURE__ */ jsxs9("div", { className: "shadow-xs flex rounded-md", children: [
2782
+ /* @__PURE__ */ jsx13("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border bg-gray-50 px-3 ", children: "Calculation" }),
2783
+ /* @__PURE__ */ jsx13(
2784
+ "select",
2785
+ {
2786
+ value: config.calculation,
2787
+ className: "sm:text-ilabel text-text-foreground border-main inline-flex items-center rounded-r-md border border-l-0 pl-4 pr-7",
2788
+ onChange: (e) => onCalculationChange(e.target.value),
2789
+ children: CalculationItems.map((d) => {
2790
+ return /* @__PURE__ */ jsx13("option", { value: d.value, children: d.label }, d.value);
2791
+ })
2792
+ }
2793
+ )
2794
+ ] }),
2795
+ /* @__PURE__ */ jsx13(
2796
+ Checkbox2,
2797
+ {
2798
+ checked: config?.showValue,
2799
+ onChange: (v) => toggle("showValue", v),
2800
+ label: "Show value",
2801
+ labelClassName: "whitespace-nowrap"
2802
+ }
2803
+ ),
2804
+ /* @__PURE__ */ jsx13(
2805
+ Checkbox2,
2806
+ {
2807
+ checked: config?.showPercent,
2808
+ onChange: (v) => toggle("showPercent", v),
2809
+ label: "Show percent",
2810
+ labelClassName: "whitespace-nowrap"
2811
+ }
2812
+ ),
2813
+ /* @__PURE__ */ jsx13(
2814
+ Checkbox2,
2815
+ {
2816
+ checked: config?.absValue,
2817
+ onChange: (v) => toggle("absValue", v),
2818
+ label: "Use absolute values",
2819
+ labelClassName: "whitespace-nowrap"
2820
+ }
2821
+ )
2822
+ ] })
2823
+ }
2824
+ );
2825
+ }
2826
+
2827
+ // src/charts/options/BarGaugeControls.tsx
2828
+ import { produce as produce7 } from "immer";
2829
+ import { defaults as defaults2 } from "lodash";
2830
+ import { DisclosurePanel as DisclosurePanel4 } from "@sentio/ui-core";
2831
+ import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
2832
+ var defaultConfig2 = {
2833
+ direction: "HORIZONTAL",
2834
+ calculation: "LAST",
2835
+ sort: {
2836
+ sortBy: "ByName",
2837
+ orderDesc: true
2838
+ }
2839
+ };
2840
+ var directionItems = [
2841
+ { label: "Horizontal", value: "HORIZONTAL" },
2842
+ { label: "Vertical", value: "VERTICAL" }
2843
+ ];
2844
+ var CalculationItems2 = [
2845
+ { label: "Last", value: "LAST" },
2846
+ { label: "First", value: "FIRST" },
2847
+ { label: "Total", value: "TOTAL" },
2848
+ { label: "Mean", value: "MEAN" },
2849
+ { label: "Max", value: "MAX" },
2850
+ { label: "Min", value: "MIN" }
2851
+ ];
2852
+ var sortByItems = [
2853
+ { label: "Name", value: "ByName" },
2854
+ { label: "Value", value: "ByValue" }
2855
+ ];
2856
+ var orderItems = [
2857
+ { label: "Ascendant", value: "false" },
2858
+ { label: "Descendant", value: "true" }
2859
+ ];
2860
+ function BarGaugeControls({ config, defaultOpen, onChange }) {
2861
+ config = defaults2(config, defaultConfig2);
2862
+ function onCalculationChange(cal) {
2863
+ config && onChange(produce7(config, (draft) => void (draft.calculation = cal)));
2864
+ }
2865
+ function onDirectionChange(dir) {
2866
+ config && onChange(produce7(config, (draft) => void (draft.direction = dir)));
2867
+ }
2868
+ function onOrderChange(orderDesc) {
2869
+ config && onChange(
2870
+ produce7(config, (draft) => {
2871
+ draft.sort = draft.sort || {};
2872
+ draft.sort.orderDesc = orderDesc;
2873
+ })
2874
+ );
2875
+ }
2876
+ function onSortByChange(sortBy2) {
2877
+ config && onChange(
2878
+ produce7(config, (draft) => {
2879
+ draft.sort = draft.sort || {};
2880
+ draft.sort.sortBy = sortBy2;
2881
+ })
2882
+ );
2883
+ }
2884
+ return /* @__PURE__ */ jsx14(
2885
+ DisclosurePanel4,
2886
+ {
2887
+ title: "Bar Gauge Options",
2888
+ defaultOpen,
2889
+ containerClassName: "w-full bg-default-bg",
2890
+ children: /* @__PURE__ */ jsxs10("div", { className: "flex items-center gap-4", children: [
2891
+ /* @__PURE__ */ jsxs10("div", { className: "shadow-xs flex rounded-md", children: [
2892
+ /* @__PURE__ */ jsx14("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border bg-gray-50 px-3 ", children: "Direction" }),
2893
+ /* @__PURE__ */ jsx14(
2894
+ "select",
2895
+ {
2896
+ value: config.direction,
2897
+ className: "sm:text-ilabel border-main text-text-foreground inline-flex items-center rounded-r-md border border-l-0 pl-4 pr-7",
2898
+ onChange: (e) => onDirectionChange(e.target.value),
2899
+ children: directionItems.map((d) => {
2900
+ return /* @__PURE__ */ jsx14("option", { value: d.value, children: d.label }, d.value);
2901
+ })
2902
+ }
2903
+ )
2904
+ ] }),
2905
+ /* @__PURE__ */ jsxs10("div", { className: "shadow-xs flex rounded-md", children: [
2906
+ /* @__PURE__ */ jsx14("span", { className: "sm:text-ilabel border-main inline-flex items-center rounded-l-md border bg-gray-50 px-3 ", children: "Calculation" }),
2907
+ /* @__PURE__ */ jsx14(
2908
+ "select",
2909
+ {
2910
+ value: config.calculation,
2911
+ className: "sm:text-ilabel border-main text-text-foreground inline-flex items-center rounded-r-md border border-l-0 pl-4 pr-7",
2912
+ onChange: (e) => onCalculationChange(e.target.value),
2913
+ children: CalculationItems2.map((d) => {
2914
+ return /* @__PURE__ */ jsx14("option", { value: d.value, children: d.label }, d.value);
2915
+ })
2916
+ }
2917
+ )
2918
+ ] }),
2919
+ /* @__PURE__ */ jsxs10("div", { className: "shadow-xs flex rounded-md", children: [
2920
+ /* @__PURE__ */ jsx14("span", { className: "sm:text-ilabel border-main inline-flex items-center whitespace-nowrap rounded-l-md border bg-gray-50 px-3", children: "Sort by" }),
2921
+ /* @__PURE__ */ jsx14(
2922
+ "select",
2923
+ {
2924
+ value: config?.sort?.sortBy,
2925
+ className: "sm:text-ilabel border-main text-text-foreground inline-flex items-center border border-l-0 pl-4 pr-7",
2926
+ onChange: (e) => onSortByChange(e.target.value),
2927
+ children: sortByItems.map((d) => {
2928
+ return /* @__PURE__ */ jsx14("option", { value: d.value, children: d.label }, d.value);
2929
+ })
2930
+ }
2931
+ ),
2932
+ /* @__PURE__ */ jsx14(
2933
+ "select",
2934
+ {
2935
+ value: config?.sort?.orderDesc + "",
2936
+ className: "sm:text-ilabel border-main text-text-foreground inline-flex items-center rounded-r-md border border-l-0 pl-4 pr-7",
2937
+ onChange: (e) => onOrderChange(e.target.value === "true"),
2938
+ children: orderItems.map((d) => {
2939
+ return /* @__PURE__ */ jsx14("option", { value: d.value + "", children: d.label }, d.label);
2940
+ })
2941
+ }
2942
+ )
2943
+ ] })
2944
+ ] })
2945
+ }
2946
+ );
2947
+ }
2948
+
2949
+ // src/charts/icons/LineIcon.tsx
2950
+ import { jsx as jsx15, jsxs as jsxs11 } from "react/jsx-runtime";
2951
+ var SvgIcon = ({ className }) => /* @__PURE__ */ jsxs11(
2952
+ "svg",
2953
+ {
2954
+ width: "14",
2955
+ height: "14",
2956
+ viewBox: "0 0 14 14",
2957
+ fill: "none",
2958
+ xmlns: "http://www.w3.org/2000/svg",
2959
+ className,
2960
+ children: [
2961
+ /* @__PURE__ */ jsx15("g", { clipPath: "url(#clip0_1774_9563)", children: /* @__PURE__ */ jsx15(
2962
+ "path",
2963
+ {
2964
+ d: "M12.6191 13.1249H1.35352C1.21672 13.1249 1.10049 13.0771 1.00483 12.9814C0.909161 12.8857 0.861328 12.7695 0.861328 12.6327V1.35352C0.861328 1.21672 0.909161 1.10049 1.00483 1.00483C1.10049 0.909161 1.21672 0.861328 1.35352 0.861328C1.49031 0.861328 1.60654 0.909161 1.7022 1.00483C1.79787 1.10049 1.8457 1.21672 1.8457 1.35352V12.1405H12.6191C12.7559 12.1405 12.8722 12.1883 12.9678 12.284C13.0635 12.3797 13.1113 12.4959 13.1113 12.6327C13.1113 12.7695 13.0635 12.8857 12.9678 12.9814C12.8722 13.0771 12.7559 13.1249 12.6191 13.1249ZM5.26345 10.1582C5.0902 10.1582 4.95341 10.0853 4.85308 9.93945L2.7067 6.52127C2.63379 6.40285 2.61104 6.27758 2.63845 6.14545C2.66587 6.01333 2.73645 5.91081 2.8502 5.83789C2.96395 5.76497 3.08704 5.74222 3.21945 5.76964C3.35187 5.79706 3.45439 5.86545 3.52702 5.97483L5.05827 8.46333L5.68739 6.04352C5.72385 5.89768 5.81047 5.79283 5.94727 5.72895L8.43576 4.52583C8.55418 4.47099 8.67274 4.45962 8.79145 4.4917C8.91016 4.52379 9.00583 4.59437 9.07845 4.70345L10.3227 6.72689L12.155 1.21702C12.2005 1.08927 12.2826 0.993599 12.4013 0.930016C12.52 0.866432 12.6431 0.857245 12.7705 0.902453C12.898 0.947661 12.9936 1.02977 13.0575 1.14877C13.1214 1.26777 13.1306 1.39085 13.0851 1.51802L10.9247 8.03939C10.8608 8.24006 10.724 8.35177 10.5143 8.37452C10.3046 8.39727 10.1451 8.32202 10.0357 8.14877L8.46333 5.60558L6.59039 6.50814L5.74252 9.78939C5.68768 9.9991 5.55556 10.1177 5.34614 10.1451C5.31872 10.1541 5.29131 10.1586 5.26389 10.1586L5.26345 10.1582Z",
2965
+ fill: "currentColor"
2966
+ }
2967
+ ) }),
2968
+ /* @__PURE__ */ jsx15("defs", { children: /* @__PURE__ */ jsx15("clipPath", { id: "clip0_1774_9563", children: /* @__PURE__ */ jsx15("rect", { width: "14", height: "14", fill: "white" }) }) })
2969
+ ]
2970
+ }
2971
+ );
2972
+ var LineIcon_default = SvgIcon;
2973
+
2974
+ // src/charts/icons/AreaIcon.tsx
2975
+ import { jsx as jsx16, jsxs as jsxs12 } from "react/jsx-runtime";
2976
+ var SvgIcon2 = ({ className }) => /* @__PURE__ */ jsxs12(
2977
+ "svg",
2978
+ {
2979
+ width: "14",
2980
+ height: "14",
2981
+ viewBox: "0 0 14 14",
2982
+ fill: "none",
2983
+ xmlns: "http://www.w3.org/2000/svg",
2984
+ className,
2985
+ children: [
2986
+ /* @__PURE__ */ jsx16("g", { clipPath: "url(#clip0_1774_9545)", children: /* @__PURE__ */ jsx16(
2987
+ "path",
2988
+ {
2989
+ d: "M12.6193 13.1249H1.35364C1.21685 13.1249 1.10062 13.0771 1.00495 12.9814C0.909284 12.8857 0.86145 12.7695 0.86145 12.6327V1.35352C0.86145 1.21672 0.909284 1.10049 1.00495 1.00483C1.10062 0.909161 1.21685 0.861328 1.35364 0.861328C1.49043 0.861328 1.60666 0.909161 1.70233 1.00483C1.79799 1.10049 1.84583 1.21672 1.84583 1.35352V12.1405H12.6193C12.7561 12.1405 12.8723 12.1883 12.968 12.284C13.0636 12.3797 13.1115 12.4959 13.1115 12.6327C13.1115 12.7695 13.0636 12.8857 12.968 12.9814C12.8723 13.0771 12.7561 13.1249 12.6193 13.1249ZM2.62501 10.9374L4.22451 8.08008C4.26097 8.0162 4.31566 7.97289 4.38858 7.95014C4.46149 7.92739 4.53441 7.92972 4.60733 7.95714L6.12501 8.66808L7.73851 6.33008C7.83885 6.19329 7.96193 6.16135 8.10776 6.23427L9.61189 6.99989L11.7994 3.56814C11.8633 3.46781 11.9521 3.43368 12.0658 3.46577C12.1796 3.49785 12.2366 3.5731 12.2369 3.69152V10.8009C12.2369 10.9467 12.1845 11.072 12.0798 11.1767C11.9751 11.2814 11.8498 11.3338 11.704 11.3338H2.87176C2.77143 11.3338 2.69399 11.2905 2.63945 11.2038C2.58491 11.1172 2.58039 11.0284 2.62589 10.9374H2.62501Z",
2990
+ fill: "currentColor"
2991
+ }
2992
+ ) }),
2993
+ /* @__PURE__ */ jsx16("defs", { children: /* @__PURE__ */ jsx16("clipPath", { id: "clip0_1774_9545", children: /* @__PURE__ */ jsx16("rect", { width: "14", height: "14", fill: "white" }) }) })
2994
+ ]
2995
+ }
2996
+ );
2997
+ var AreaIcon_default = SvgIcon2;
2998
+
2999
+ // src/charts/icons/BarIcon.tsx
3000
+ import { jsx as jsx17 } from "react/jsx-runtime";
3001
+ var SvgIcon3 = ({ className }) => /* @__PURE__ */ jsx17(
3002
+ "svg",
3003
+ {
3004
+ width: "14",
3005
+ height: "14",
3006
+ viewBox: "0 0 14 14",
3007
+ fill: "none",
3008
+ xmlns: "http://www.w3.org/2000/svg",
3009
+ className,
3010
+ children: /* @__PURE__ */ jsx17(
3011
+ "path",
3012
+ {
3013
+ d: "M2.12791 1.5625V12.4375C2.12791 12.5938 2.07311 12.7267 1.96349 12.836C1.85387 12.9453 1.7207 13 1.56396 13C1.40722 13 1.27404 12.9453 1.16442 12.836C1.05481 12.7267 1 12.5938 1 12.4375V1.5625C1 1.40617 1.05481 1.27333 1.16442 1.164C1.27404 1.05467 1.40722 1 1.56396 1C1.7207 1 1.85387 1.05467 1.96349 1.164C2.07311 1.27333 2.12791 1.40617 2.12791 1.5625ZM1.56396 11.875H12.436C12.5928 11.875 12.726 11.9297 12.8356 12.039C12.9452 12.1483 13 12.2812 13 12.4375C13 12.5938 12.9452 12.7267 12.8356 12.836C12.726 12.9453 12.5928 13 12.436 13H1.56396C1.40722 13 1.27404 12.9453 1.16442 12.836C1.05481 12.7267 1 12.5938 1 12.4375C1 12.2812 1.05481 12.1483 1.16442 12.039C1.27404 11.9297 1.40722 11.875 1.56396 11.875ZM5.12014 4.578V10.375C5.12014 10.5313 5.06534 10.6642 4.95572 10.7735C4.8461 10.8828 4.71293 10.9375 4.55619 10.9375C4.39945 10.9375 4.26627 10.8828 4.15665 10.7735C4.04704 10.6642 3.99223 10.5313 3.99223 10.375V4.578C3.99223 4.42167 4.04704 4.28883 4.15665 4.1795C4.26627 4.07017 4.39945 4.0155 4.55619 4.0155C4.71293 4.0155 4.8461 4.07017 4.95572 4.1795C5.06534 4.28883 5.12014 4.42167 5.12014 4.578ZM11.1196 2.5465V10.3745C11.1196 10.5308 11.0648 10.6637 10.9552 10.773C10.8456 10.8823 10.7124 10.937 10.5557 10.937C10.3989 10.937 10.2658 10.8823 10.1562 10.773C10.0465 10.6637 9.99173 10.5308 9.99173 10.3745V2.5465C9.99173 2.39017 10.0465 2.25733 10.1562 2.148C10.2658 2.03867 10.3989 1.984 10.5557 1.984C10.7124 1.984 10.8456 2.03867 10.9552 2.148C11.0648 2.25733 11.1196 2.39017 11.1196 2.5465ZM8.11187 6.5465V10.3745C8.11187 10.5308 8.05706 10.6637 7.94745 10.773C7.83783 10.8823 7.70465 10.937 7.54792 10.937C7.39118 10.937 7.258 10.8823 7.14838 10.773C7.03877 10.6637 6.98396 10.5308 6.98396 10.3745V6.5465C6.98396 6.39017 7.03877 6.25733 7.14838 6.148C7.258 6.03867 7.39118 5.984 7.54792 5.984C7.69429 5.984 7.8248 6.03867 7.93943 6.148C8.05406 6.25733 8.11154 6.39017 8.11187 6.5465Z",
3014
+ fill: "currentColor"
3015
+ }
3016
+ )
3017
+ }
3018
+ );
3019
+ var BarIcon_default = SvgIcon3;
3020
+
3021
+ // src/charts/icons/BarGuageIcon.tsx
3022
+ import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
3023
+ var SvgIcon4 = ({ className }) => /* @__PURE__ */ jsxs13(
3024
+ "svg",
3025
+ {
3026
+ width: "14",
3027
+ height: "14",
3028
+ viewBox: "0 0 14 14",
3029
+ fill: "currentColor",
3030
+ className,
3031
+ xmlns: "http://www.w3.org/2000/svg",
3032
+ children: [
3033
+ /* @__PURE__ */ jsx18(
3034
+ "path",
3035
+ {
3036
+ d: "M2.12791 1.5625V12.4375C2.12791 12.5938 2.07311 12.7267 1.96349 12.836C1.85387 12.9453 1.7207 13 1.56396 13C1.40722 13 1.27404 12.9453 1.16442 12.836C1.05481 12.7267 1 12.5938 1 12.4375V1.5625C1 1.40617 1.05481 1.27333 1.16442 1.164C1.27404 1.05467 1.40722 1 1.56396 1C1.7207 1 1.85387 1.05467 1.96349 1.164C2.07311 1.27333 2.12791 1.40617 2.12791 1.5625ZM1.56396 11.875H12.436C12.5928 11.875 12.726 11.9297 12.8356 12.039C12.9452 12.1483 13 12.2812 13 12.4375C13 12.5938 12.9452 12.7267 12.8356 12.836C12.726 12.9453 12.5928 13 12.436 13H1.56396C1.40722 13 1.27404 12.9453 1.16442 12.836C1.05481 12.7267 1 12.5938 1 12.4375C1 12.2812 1.05481 12.1483 1.16442 12.039C1.27404 11.9297 1.40722 11.875 1.56396 11.875Z",
3037
+ fill: "currentColor"
3038
+ }
3039
+ ),
3040
+ /* @__PURE__ */ jsx18(
3041
+ "path",
3042
+ {
3043
+ d: "M3.64159 4.02495H9.43859C9.59493 4.02495 9.72776 3.97014 9.83709 3.86052C9.94643 3.75091 10.0011 3.61773 10.0011 3.46099C10.0011 3.30425 9.94643 3.17108 9.83709 3.06146C9.72776 2.95184 9.59493 2.89703 9.43859 2.89703L3.64159 2.89703C3.48526 2.89703 3.35243 2.95184 3.24309 3.06146C3.13376 3.17108 3.07909 3.30425 3.07909 3.46099C3.07909 3.61773 3.13376 3.75091 3.24309 3.86052C3.35243 3.97014 3.48526 4.02495 3.64159 4.02495Z",
3044
+ fill: "currentColor"
3045
+ }
3046
+ ),
3047
+ /* @__PURE__ */ jsx18(
3048
+ "path",
3049
+ {
3050
+ d: "M3.64209 10.0244H11.4701C11.6264 10.0244 11.7593 9.96964 11.8686 9.86002C11.9779 9.7504 12.0326 9.61723 12.0326 9.46049C12.0326 9.30375 11.9779 9.17057 11.8686 9.06096C11.7593 8.95134 11.6264 8.89653 11.4701 8.89653H3.64209C3.48576 8.89653 3.35293 8.95134 3.24359 9.06096C3.13426 9.17057 3.07959 9.30375 3.07959 9.46049C3.07959 9.61723 3.13426 9.7504 3.24359 9.86002C3.35293 9.96964 3.48576 10.0244 3.64209 10.0244Z",
3051
+ fill: "currentColor"
3052
+ }
3053
+ ),
3054
+ /* @__PURE__ */ jsx18(
3055
+ "path",
3056
+ {
3057
+ d: "M3.64209 7.01668L7.47009 7.01668C7.62643 7.01634 7.75926 6.95886 7.86859 6.84423C7.97793 6.7296 8.03259 6.5991 8.03259 6.45272C8.03259 6.29598 7.97793 6.1628 7.86859 6.05319C7.75926 5.94357 7.62643 5.88876 7.47009 5.88876H3.64209C3.48576 5.88876 3.35293 5.94357 3.24359 6.05319C3.13426 6.1628 3.07959 6.29598 3.07959 6.45272C3.07959 6.60946 3.13426 6.74263 3.24359 6.85225C3.35293 6.96187 3.48576 7.01668 3.64209 7.01668Z",
3058
+ fill: "currentColor"
3059
+ }
3060
+ )
3061
+ ]
3062
+ }
3063
+ );
3064
+ var BarGuageIcon_default = SvgIcon4;
3065
+
3066
+ // src/charts/icons/PieIcon.tsx
3067
+ import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
3068
+ var SvgIcon5 = ({ className }) => /* @__PURE__ */ jsxs14(
3069
+ "svg",
3070
+ {
3071
+ width: "14",
3072
+ height: "14",
3073
+ viewBox: "0 0 14 14",
3074
+ fill: "none",
3075
+ xmlns: "http://www.w3.org/2000/svg",
3076
+ className,
3077
+ children: [
3078
+ /* @__PURE__ */ jsxs14("g", { clipPath: "url(#clip0_28267_7202)", children: [
3079
+ /* @__PURE__ */ jsx19(
3080
+ "path",
3081
+ {
3082
+ d: "M5.83329 1.86662C4.92079 2.07816 4.08149 2.52998 3.40247 3.17523C2.72345 3.82048 2.22942 4.63564 1.97164 5.53618C1.71386 6.43671 1.70171 7.38982 1.93644 8.29663C2.17118 9.20345 2.64426 10.0309 3.30661 10.6933C3.96896 11.3556 4.79646 11.8287 5.70327 12.0635C6.61009 12.2982 7.56319 12.286 8.46373 12.0283C9.36426 11.7705 10.1794 11.2765 10.8247 10.5974C11.4699 9.91841 11.9217 9.07912 12.1333 8.16662C12.1333 8.01191 12.0718 7.86353 11.9624 7.75414C11.853 7.64474 11.7047 7.58328 11.55 7.58328H7.58329C7.27387 7.58328 6.97713 7.46037 6.75833 7.24157C6.53954 7.02278 6.41662 6.72604 6.41662 6.41662V2.33328C6.40938 2.26417 6.38848 2.19719 6.35515 2.13621C6.32182 2.07524 6.27671 2.02149 6.22245 1.97808C6.16819 1.93467 6.10585 1.90247 6.03905 1.88333C5.97224 1.8642 5.90231 1.85852 5.83329 1.86662Z",
3083
+ stroke: "currentColor",
3084
+ strokeWidth: "1.16667",
3085
+ strokeLinecap: "round",
3086
+ strokeLinejoin: "round"
3087
+ }
3088
+ ),
3089
+ /* @__PURE__ */ jsx19(
3090
+ "path",
3091
+ {
3092
+ d: "M8.75 2.04175C9.49067 2.30255 10.1634 2.72617 10.7187 3.28142C11.2739 3.83668 11.6975 4.50941 11.9583 5.25008H9.33333C9.17862 5.25008 9.03025 5.18862 8.92085 5.07923C8.81146 4.96983 8.75 4.82146 8.75 4.66675V2.04175Z",
3093
+ stroke: "currentColor",
3094
+ strokeWidth: "1.16667",
3095
+ strokeLinecap: "round",
3096
+ strokeLinejoin: "round"
3097
+ }
3098
+ )
3099
+ ] }),
3100
+ /* @__PURE__ */ jsx19("defs", { children: /* @__PURE__ */ jsx19("clipPath", { id: "clip0_28267_7202", children: /* @__PURE__ */ jsx19("rect", { width: "14", height: "14", fill: "white" }) }) })
3101
+ ]
3102
+ }
3103
+ );
3104
+ var PieIcon_default = SvgIcon5;
3105
+
3106
+ // src/charts/icons/QueryValueIcon.tsx
3107
+ import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
3108
+ var SvgIcon6 = ({ className }) => /* @__PURE__ */ jsxs15(
3109
+ "svg",
3110
+ {
3111
+ width: "14",
3112
+ height: "14",
3113
+ viewBox: "0 0 14 14",
3114
+ fill: "none",
3115
+ className,
3116
+ xmlns: "http://www.w3.org/2000/svg",
3117
+ children: [
3118
+ /* @__PURE__ */ jsxs15("g", { clipPath: "url(#clip0_3670_4424)", children: [
3119
+ /* @__PURE__ */ jsx20(
3120
+ "path",
3121
+ {
3122
+ d: "M11.5 1.5H2.5C1.67157 1.5 1 2.11561 1 2.875V11.125C1 11.8844 1.67157 12.5 2.5 12.5H11.5C12.3284 12.5 13 11.8844 13 11.125V2.875C13 2.11561 12.3284 1.5 11.5 1.5Z",
3123
+ stroke: "currentColor",
3124
+ strokeWidth: "1.16667",
3125
+ strokeLinecap: "round",
3126
+ strokeLinejoin: "round"
3127
+ }
3128
+ ),
3129
+ /* @__PURE__ */ jsx20(
3130
+ "path",
3131
+ {
3132
+ d: "M7.98188 5.77273H6.39097L5.75461 5.13636L6.39097 4.5H7.98188L8.61824 5.13636L7.98188 5.77273Z",
3133
+ fill: "currentColor"
3134
+ }
3135
+ ),
3136
+ /* @__PURE__ */ jsx20(
3137
+ "path",
3138
+ {
3139
+ d: "M7.98188 11.5H6.39097L5.75461 10.8637L6.39097 10.2273H7.98188L8.61824 10.8637L7.98188 11.5Z",
3140
+ fill: "currentColor"
3141
+ }
3142
+ ),
3143
+ /* @__PURE__ */ jsx20(
3144
+ "path",
3145
+ {
3146
+ d: "M8.30005 9.90907V6.09089L8.93641 5.45453L9.57278 6.09089V9.90907L8.93641 10.5454L8.30005 9.90907Z",
3147
+ fill: "currentColor"
3148
+ }
3149
+ ),
3150
+ /* @__PURE__ */ jsx20(
3151
+ "path",
3152
+ {
3153
+ d: "M4.80005 9.90907V6.09089L5.43641 5.45453L6.07278 6.09089V9.90907L5.43641 10.5454L4.80005 9.90907Z",
3154
+ fill: "currentColor"
3155
+ }
3156
+ ),
3157
+ /* @__PURE__ */ jsx20(
3158
+ "path",
3159
+ {
3160
+ d: "M1 3.5L13 3.5",
3161
+ stroke: "currentColor",
3162
+ strokeWidth: "1.16667",
3163
+ strokeLinecap: "round",
3164
+ strokeLinejoin: "round"
3165
+ }
3166
+ )
3167
+ ] }),
3168
+ /* @__PURE__ */ jsx20("defs", { children: /* @__PURE__ */ jsx20("clipPath", { id: "clip0_3670_4424", children: /* @__PURE__ */ jsx20("rect", { width: "14", height: "14", fill: "white" }) }) })
3169
+ ]
3170
+ }
3171
+ );
3172
+ var QueryValueIcon_default = SvgIcon6;
3173
+
3174
+ // src/charts/icons/ScatterIcon.tsx
3175
+ import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
3176
+ var SvgIcon7 = ({ className }) => /* @__PURE__ */ jsxs16(
3177
+ "svg",
3178
+ {
3179
+ width: "14",
3180
+ height: "14",
3181
+ viewBox: "0 0 14 14",
3182
+ fill: "none",
3183
+ xmlns: "http://www.w3.org/2000/svg",
3184
+ className,
3185
+ children: [
3186
+ /* @__PURE__ */ jsxs16("g", { clipPath: "url(#clip0_28248_7302)", children: [
3187
+ /* @__PURE__ */ jsx21(
3188
+ "path",
3189
+ {
3190
+ d: "M1.75 1.75V12.25H12.25",
3191
+ stroke: "currentColor",
3192
+ strokeWidth: "1.16667",
3193
+ strokeLinecap: "round",
3194
+ strokeLinejoin: "round"
3195
+ }
3196
+ ),
3197
+ /* @__PURE__ */ jsx21(
3198
+ "path",
3199
+ {
3200
+ d: "M4.66663 8.75879V8.76754",
3201
+ stroke: "currentColor",
3202
+ strokeWidth: "1.16667",
3203
+ strokeLinecap: "round",
3204
+ strokeLinejoin: "round"
3205
+ }
3206
+ ),
3207
+ /* @__PURE__ */ jsx21(
3208
+ "path",
3209
+ {
3210
+ d: "M9.33337 9.34204V9.35079",
3211
+ stroke: "currentColor",
3212
+ strokeWidth: "1.16667",
3213
+ strokeLinecap: "round",
3214
+ strokeLinejoin: "round"
3215
+ }
3216
+ ),
3217
+ /* @__PURE__ */ jsx21(
3218
+ "path",
3219
+ {
3220
+ d: "M4.66663 4.10083V4.10958",
3221
+ stroke: "currentColor",
3222
+ strokeWidth: "1.16667",
3223
+ strokeLinecap: "round",
3224
+ strokeLinejoin: "round"
3225
+ }
3226
+ ),
3227
+ /* @__PURE__ */ jsx21(
3228
+ "path",
3229
+ {
3230
+ d: "M7 6.43408V6.44283",
3231
+ stroke: "currentColor",
3232
+ strokeWidth: "1.16667",
3233
+ strokeLinecap: "round",
3234
+ strokeLinejoin: "round"
3235
+ }
3236
+ ),
3237
+ /* @__PURE__ */ jsx21(
3238
+ "path",
3239
+ {
3240
+ d: "M11.0834 6.43408V6.44283",
3241
+ stroke: "currentColor",
3242
+ strokeWidth: "1.16667",
3243
+ strokeLinecap: "round",
3244
+ strokeLinejoin: "round"
3245
+ }
3246
+ )
3247
+ ] }),
3248
+ /* @__PURE__ */ jsx21("defs", { children: /* @__PURE__ */ jsx21("clipPath", { id: "clip0_28248_7302", children: /* @__PURE__ */ jsx21("rect", { width: "14", height: "14", fill: "white" }) }) })
3249
+ ]
3250
+ }
3251
+ );
3252
+ var ScatterIcon_default = SvgIcon7;
3253
+
3254
+ // src/charts/icons/TableIcon.tsx
3255
+ import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
3256
+ var SvgIcon8 = ({ className }) => /* @__PURE__ */ jsxs17(
3257
+ "svg",
3258
+ {
3259
+ width: "14",
3260
+ height: "14",
3261
+ viewBox: "0 0 14 14",
3262
+ fill: "none",
3263
+ xmlns: "http://www.w3.org/2000/svg",
3264
+ className,
3265
+ children: [
3266
+ /* @__PURE__ */ jsxs17("g", { clipPath: "url(#clip0_3670_4416)", children: [
3267
+ /* @__PURE__ */ jsx22(
3268
+ "path",
3269
+ {
3270
+ d: "M11.5 2H2.5C1.67157 2 1 2.55964 1 3.25V10.75C1 11.4404 1.67157 12 2.5 12H11.5C12.3284 12 13 11.4404 13 10.75V3.25C13 2.55964 12.3284 2 11.5 2Z",
3271
+ stroke: "currentColor",
3272
+ strokeWidth: "1.16667",
3273
+ strokeLinecap: "round",
3274
+ strokeLinejoin: "round"
3275
+ }
3276
+ ),
3277
+ /* @__PURE__ */ jsx22(
3278
+ "path",
3279
+ {
3280
+ d: "M1 5L13 5",
3281
+ stroke: "currentColor",
3282
+ strokeWidth: "1.16667",
3283
+ strokeLinecap: "round",
3284
+ strokeLinejoin: "round"
3285
+ }
3286
+ ),
3287
+ /* @__PURE__ */ jsx22(
3288
+ "path",
3289
+ {
3290
+ d: "M6 2L6 12",
3291
+ stroke: "currentColor",
3292
+ strokeWidth: "1.16667",
3293
+ strokeLinecap: "round",
3294
+ strokeLinejoin: "round"
3295
+ }
3296
+ )
3297
+ ] }),
3298
+ /* @__PURE__ */ jsx22("defs", { children: /* @__PURE__ */ jsx22("clipPath", { id: "clip0_3670_4416", children: /* @__PURE__ */ jsx22("rect", { width: "14", height: "14", fill: "white" }) }) })
3299
+ ]
3300
+ }
3301
+ );
3302
+ var TableIcon_default = SvgIcon8;
1004
3303
  export {
1005
3304
  AggregateInput,
3305
+ AreaIcon_default as AreaIcon,
1006
3306
  ArgumentInput,
1007
3307
  ArgumentType,
3308
+ BarGaugeControls,
3309
+ BarGuageIcon_default as BarGuageIcon,
3310
+ BarIcon_default as BarIcon,
3311
+ ChartLegend,
1008
3312
  EventsFunctionCategories,
1009
3313
  EventsFunctionMap,
1010
3314
  FunctionInput,
1011
3315
  FunctionMap,
1012
3316
  FunctionsCategories,
1013
3317
  FunctionsPanel,
3318
+ LabelControls,
1014
3319
  LabelSearchProvider,
1015
3320
  LabelsInput,
3321
+ LineControls,
3322
+ LineIcon_default as LineIcon,
3323
+ PieChartControls,
3324
+ PieIcon_default as PieIcon,
3325
+ QueryValueIcon_default as QueryValueIcon,
3326
+ ReactEChartsBase,
3327
+ RefreshButton,
3328
+ RefreshContext,
3329
+ ScatterIcon_default as ScatterIcon,
1016
3330
  SystemLabels,
3331
+ TableIcon_default as TableIcon,
3332
+ defaultConfig2 as defaultBarGaugeConfig,
3333
+ defaultConfig as defaultPieConfig,
1017
3334
  isAggrOrRollupFunction,
3335
+ sentioColors,
3336
+ sentioTheme,
3337
+ sentioThemeDark,
1018
3338
  sortMetricByName,
1019
3339
  useLabelSearch,
1020
3340
  useLabelSearchContext