@sentio/ui-dashboard 0.1.2 → 0.2.0

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.js CHANGED
@@ -31,8 +31,12 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
33
  AggregateInput: () => AggregateInput,
34
+ AreaIcon: () => AreaIcon_default,
34
35
  ArgumentInput: () => ArgumentInput,
35
36
  ArgumentType: () => ArgumentType,
37
+ BarGuageIcon: () => BarGuageIcon_default,
38
+ BarIcon: () => BarIcon_default,
39
+ ChartLegend: () => ChartLegend,
36
40
  EventsFunctionCategories: () => EventsFunctionCategories,
37
41
  EventsFunctionMap: () => EventsFunctionMap,
38
42
  FunctionInput: () => FunctionInput,
@@ -41,8 +45,19 @@ __export(index_exports, {
41
45
  FunctionsPanel: () => FunctionsPanel,
42
46
  LabelSearchProvider: () => LabelSearchProvider,
43
47
  LabelsInput: () => LabelsInput,
48
+ LineIcon: () => LineIcon_default,
49
+ PieIcon: () => PieIcon_default,
50
+ QueryValueIcon: () => QueryValueIcon_default,
51
+ ReactEChartsBase: () => ReactEChartsBase,
52
+ RefreshButton: () => RefreshButton,
53
+ RefreshContext: () => RefreshContext,
54
+ ScatterIcon: () => ScatterIcon_default,
44
55
  SystemLabels: () => SystemLabels,
56
+ TableIcon: () => TableIcon_default,
45
57
  isAggrOrRollupFunction: () => isAggrOrRollupFunction,
58
+ sentioColors: () => sentioColors,
59
+ sentioTheme: () => sentioTheme,
60
+ sentioThemeDark: () => sentioThemeDark,
46
61
  sortMetricByName: () => sortMetricByName,
47
62
  useLabelSearch: () => useLabelSearch,
48
63
  useLabelSearchContext: () => useLabelSearchContext
@@ -728,7 +743,7 @@ function FunctionInput({ value, onChange }) {
728
743
  }
729
744
  ),
730
745
  /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "inline-flex items-center", children: [
731
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "h-px w-2.5 self-center bg-border-color" }),
746
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "bg-border-color h-px w-2.5 self-center" }),
732
747
  /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_react4.Popover, { className: "relative", children: ({ open }) => /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
733
748
  /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
734
749
  import_react4.Popover.Button,
@@ -783,7 +798,7 @@ function Functions({
783
798
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_jsx_runtime4.Fragment, { children: functions.map((f, fi) => {
784
799
  const def = FunctionMap[f.name];
785
800
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "inline-flex items-center", children: [
786
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "h-px w-2.5 self-center bg-border-color" }),
801
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: "bg-border-color h-px w-2.5 self-center" }),
787
802
  /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
788
803
  "div",
789
804
  {
@@ -1052,11 +1067,1908 @@ function LabelsInput({
1052
1067
  }
1053
1068
  );
1054
1069
  }
1070
+
1071
+ // src/charts/EchartsBase.tsx
1072
+ var import_react12 = require("react");
1073
+ var import_renderers = require("echarts/renderers");
1074
+ var import_core2 = require("echarts/core");
1075
+ var import_charts = require("echarts/charts");
1076
+ var import_components = require("echarts/components");
1077
+ var import_react_resize_detector = require("react-resize-detector");
1078
+ var import_ui_core6 = require("@sentio/ui-core");
1079
+
1080
+ // src/charts/ChartLegend.tsx
1081
+ var import_react10 = require("react");
1082
+
1083
+ // src/common/Tooltip.tsx
1084
+ var import_react8 = require("react");
1085
+ var import_react9 = require("@floating-ui/react");
1086
+ var import_jsx_runtime7 = require("react/jsx-runtime");
1087
+ function Tooltip({ referenceElement, text }) {
1088
+ const { x, y, refs, strategy } = (0, import_react9.useFloating)({
1089
+ placement: "bottom",
1090
+ middleware: [(0, import_react9.shift)()]
1091
+ });
1092
+ (0, import_react8.useEffect)(() => {
1093
+ if (referenceElement) refs.setReference(referenceElement);
1094
+ }, [refs, referenceElement]);
1095
+ if (!referenceElement || !text) {
1096
+ return null;
1097
+ }
1098
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_react9.FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1099
+ "div",
1100
+ {
1101
+ ref: refs.setFloating,
1102
+ className: "z-tooltip pointer-events-none rounded-md bg-black/70 px-2 py-1 text-white backdrop-opacity-60",
1103
+ style: {
1104
+ position: strategy,
1105
+ top: y ?? 0,
1106
+ left: x ?? 0
1107
+ },
1108
+ children: text
1109
+ }
1110
+ ) });
1111
+ }
1112
+
1113
+ // src/charts/ChartLegend.tsx
1114
+ var import_jsx_runtime8 = require("react/jsx-runtime");
1115
+ var COLOR_UNSELECTED = "#dddddd";
1116
+ var ChartLegend = ({
1117
+ legend,
1118
+ legendSelected,
1119
+ returnedSeries,
1120
+ totalSeries,
1121
+ onRendered,
1122
+ chartHandle
1123
+ }) => {
1124
+ const rootRef = (0, import_react10.useRef)(null);
1125
+ const [tooltipText, setTooltipText] = (0, import_react10.useState)("");
1126
+ const [tooltipReferenceElement, setTooltipReferenceElement] = (0, import_react10.useState)();
1127
+ (0, import_react10.useEffect)(() => {
1128
+ if (!rootRef.current) {
1129
+ return;
1130
+ }
1131
+ const offsetHeight = rootRef?.current?.parentElement?.offsetHeight || 0;
1132
+ chartHandle?.resize({
1133
+ height: offsetHeight - rootRef.current.offsetHeight
1134
+ });
1135
+ onRendered(true);
1136
+ }, [chartHandle, onRendered]);
1137
+ const onToggleLegend = (0, import_react10.useCallback)(
1138
+ (event, name, _seriesIndex) => {
1139
+ if (event.altKey) {
1140
+ legend.forEach((n) => {
1141
+ chartHandle?.toggleLegend(n, n === name);
1142
+ });
1143
+ return;
1144
+ }
1145
+ chartHandle?.toggleLegend(name);
1146
+ },
1147
+ [chartHandle, legendSelected]
1148
+ );
1149
+ const highlightSeries = (0, import_react10.useCallback)(
1150
+ (index) => {
1151
+ chartHandle?.highlightSeries({ seriesIndex: index });
1152
+ },
1153
+ [chartHandle]
1154
+ );
1155
+ const unhighlightSeries = (0, import_react10.useCallback)(() => {
1156
+ chartHandle?.highlightSeries(void 0);
1157
+ }, [chartHandle]);
1158
+ const onToggleAll = (0, import_react10.useCallback)(
1159
+ (legend2, legendSelected2, chartHandle2) => {
1160
+ const allSelected = legend2.every((name) => legendSelected2[name]);
1161
+ legend2.forEach((name) => {
1162
+ chartHandle2?.toggleLegend(name, !allSelected);
1163
+ });
1164
+ },
1165
+ [legend, legendSelected, chartHandle]
1166
+ );
1167
+ const list = legend.map((name, index) => {
1168
+ const selected = legendSelected[name] || legendSelected[name] === void 0;
1169
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
1170
+ "div",
1171
+ {
1172
+ className: "flex cursor-pointer items-center gap-0.5 whitespace-nowrap",
1173
+ "data-tip": name,
1174
+ onClick: (event) => onToggleLegend(event, name, index),
1175
+ onDoubleClick: (event) => {
1176
+ onToggleAll(legend, legendSelected, chartHandle);
1177
+ },
1178
+ onMouseEnter: (e) => {
1179
+ if (legendSelected[name] !== false) {
1180
+ highlightSeries(index);
1181
+ }
1182
+ setTooltipReferenceElement(e.currentTarget);
1183
+ setTooltipText(name);
1184
+ },
1185
+ onMouseLeave: () => {
1186
+ unhighlightSeries();
1187
+ setTooltipReferenceElement(void 0);
1188
+ setTooltipText("");
1189
+ },
1190
+ children: [
1191
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1192
+ "span",
1193
+ {
1194
+ className: "rounded-xs h-2.5 w-2.5",
1195
+ style: {
1196
+ backgroundColor: selected ? chartHandle?.getSeriesColor({ seriesName: name }) : COLOR_UNSELECTED
1197
+ }
1198
+ }
1199
+ ),
1200
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1201
+ "span",
1202
+ {
1203
+ className: "truncate text-xs",
1204
+ style: {
1205
+ maxWidth: "12em",
1206
+ color: selected ? void 0 : COLOR_UNSELECTED
1207
+ },
1208
+ children: name
1209
+ }
1210
+ )
1211
+ ]
1212
+ },
1213
+ name + index
1214
+ );
1215
+ });
1216
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
1217
+ "div",
1218
+ {
1219
+ ref: rootRef,
1220
+ 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]",
1221
+ children: [
1222
+ list,
1223
+ returnedSeries && totalSeries && returnedSeries < totalSeries ? /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "font-semibold", style: { color: "#6B7280" }, children: [
1224
+ "showing ",
1225
+ returnedSeries,
1226
+ " of ",
1227
+ totalSeries,
1228
+ " series"
1229
+ ] }) : null,
1230
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(Tooltip, { referenceElement: tooltipReferenceElement, text: tooltipText })
1231
+ ]
1232
+ }
1233
+ );
1234
+ };
1235
+
1236
+ // src/utils/is-mobile.ts
1237
+ function isMobile() {
1238
+ return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
1239
+ navigator.userAgent
1240
+ );
1241
+ }
1242
+
1243
+ // src/charts/theme/register.ts
1244
+ var import_core = require("echarts/core");
1245
+
1246
+ // src/charts/theme/sentio-colors.ts
1247
+ var sentioColors = {
1248
+ light: {
1249
+ classic: [
1250
+ "#5470f0",
1251
+ "#47c9d9",
1252
+ "#de5f94",
1253
+ "#e4bc4f",
1254
+ "#4cb275",
1255
+ "#77aeef",
1256
+ "#9368dd",
1257
+ "#e46d6d",
1258
+ "#f1904e"
1259
+ ],
1260
+ purple: [
1261
+ "#5b0fa6",
1262
+ "#6d11c9",
1263
+ "#8617e8",
1264
+ "#9b35e9",
1265
+ "#a855f7",
1266
+ "#b67af2",
1267
+ "#7a6bff",
1268
+ "#5b7cff",
1269
+ "#3e82f6"
1270
+ ]
1271
+ },
1272
+ dark: {
1273
+ classic: [
1274
+ "#6c8aff",
1275
+ "#74dfe6",
1276
+ "#ff75b0",
1277
+ "#f1cf66",
1278
+ "#67c88f",
1279
+ "#95c6ff",
1280
+ "#b189ff",
1281
+ "#f28787",
1282
+ "#ffad67"
1283
+ ],
1284
+ purple: [
1285
+ "#3f0a78",
1286
+ "#5310a0",
1287
+ "#6816c7",
1288
+ "#7c2ee6",
1289
+ "#9451f4",
1290
+ "#a874f8",
1291
+ "#6d63f6",
1292
+ "#5b7cff",
1293
+ "#4794ff"
1294
+ ]
1295
+ }
1296
+ };
1297
+
1298
+ // src/charts/theme/sentio-theme.ts
1299
+ var sansFontFamily = 'ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif';
1300
+ var textSecondaryLight = "#625d75";
1301
+ var textSecondaryDark = "#b7b4c7";
1302
+ var sentioTheme = {
1303
+ color: sentioColors.light.classic,
1304
+ backgroundColor: "rgba(0,0,0,0)",
1305
+ textStyle: {
1306
+ fontSize: 11,
1307
+ fontFamily: sansFontFamily,
1308
+ color: textSecondaryLight
1309
+ },
1310
+ title: {
1311
+ textStyle: {
1312
+ color: textSecondaryLight
1313
+ },
1314
+ subtextStyle: {
1315
+ color: textSecondaryLight
1316
+ }
1317
+ },
1318
+ line: {
1319
+ itemStyle: {
1320
+ borderWidth: 1
1321
+ },
1322
+ lineStyle: {
1323
+ width: 2
1324
+ },
1325
+ symbolSize: 4,
1326
+ symbol: "emptyCircle",
1327
+ smooth: false
1328
+ },
1329
+ radar: {
1330
+ itemStyle: {
1331
+ borderWidth: 1
1332
+ },
1333
+ lineStyle: {
1334
+ width: 2
1335
+ },
1336
+ symbolSize: 4,
1337
+ symbol: "emptyCircle",
1338
+ smooth: false
1339
+ },
1340
+ bar: {
1341
+ itemStyle: {
1342
+ borderWidth: 0,
1343
+ borderColor: "#ccc"
1344
+ }
1345
+ },
1346
+ pie: {
1347
+ itemStyle: {
1348
+ borderWidth: 0,
1349
+ borderColor: "#ccc"
1350
+ },
1351
+ label: {
1352
+ textBorderWidth: 0,
1353
+ textBorderColor: "transparent"
1354
+ }
1355
+ },
1356
+ scatter: {
1357
+ itemStyle: {
1358
+ borderWidth: 0,
1359
+ borderColor: "#ccc"
1360
+ }
1361
+ },
1362
+ boxplot: {
1363
+ itemStyle: {
1364
+ borderWidth: 0,
1365
+ borderColor: "#ccc"
1366
+ }
1367
+ },
1368
+ parallel: {
1369
+ itemStyle: {
1370
+ borderWidth: 0,
1371
+ borderColor: "#ccc"
1372
+ }
1373
+ },
1374
+ sankey: {
1375
+ itemStyle: {
1376
+ borderWidth: 0,
1377
+ borderColor: "#ccc"
1378
+ }
1379
+ },
1380
+ funnel: {
1381
+ itemStyle: {
1382
+ borderWidth: 0,
1383
+ borderColor: "#ccc"
1384
+ }
1385
+ },
1386
+ gauge: {
1387
+ itemStyle: {
1388
+ borderWidth: 0,
1389
+ borderColor: "#ccc"
1390
+ }
1391
+ },
1392
+ candlestick: {
1393
+ itemStyle: {
1394
+ color: "#eb5454",
1395
+ color0: "#47b262",
1396
+ borderColor: "#eb5454",
1397
+ borderColor0: "#47b262",
1398
+ borderWidth: 1
1399
+ }
1400
+ },
1401
+ graph: {
1402
+ itemStyle: {
1403
+ borderWidth: 0,
1404
+ borderColor: "#ccc"
1405
+ },
1406
+ lineStyle: {
1407
+ width: 1,
1408
+ color: "#aaaaaa"
1409
+ },
1410
+ symbolSize: 4,
1411
+ symbol: "emptyCircle",
1412
+ smooth: false,
1413
+ color: [
1414
+ "#2e71db",
1415
+ "#8dc869",
1416
+ "#ffdc2d",
1417
+ "#f05a4d",
1418
+ "#56bce5",
1419
+ "#73ba46",
1420
+ "#fe9f05",
1421
+ "#a452d7",
1422
+ "#a65a8b"
1423
+ ],
1424
+ label: {
1425
+ color: "#ebeff3"
1426
+ }
1427
+ },
1428
+ map: {
1429
+ itemStyle: {
1430
+ areaColor: "#eee",
1431
+ borderColor: "#444",
1432
+ borderWidth: 0.5
1433
+ },
1434
+ label: {
1435
+ color: "#000"
1436
+ },
1437
+ emphasis: {
1438
+ itemStyle: {
1439
+ areaColor: "rgba(255,215,0,0.8)",
1440
+ borderColor: "#444",
1441
+ borderWidth: 1
1442
+ },
1443
+ label: {
1444
+ color: "rgb(100,0,0)"
1445
+ }
1446
+ }
1447
+ },
1448
+ geo: {
1449
+ itemStyle: {
1450
+ areaColor: "#eee",
1451
+ borderColor: "#444",
1452
+ borderWidth: 0.5
1453
+ },
1454
+ label: {
1455
+ color: "#000"
1456
+ },
1457
+ emphasis: {
1458
+ itemStyle: {
1459
+ areaColor: "rgba(255,215,0,0.8)",
1460
+ borderColor: "#444",
1461
+ borderWidth: 1
1462
+ },
1463
+ label: {
1464
+ color: "rgb(100,0,0)"
1465
+ }
1466
+ }
1467
+ },
1468
+ categoryAxis: {
1469
+ axisLine: {
1470
+ show: true,
1471
+ lineStyle: {
1472
+ // matches CSS --border-color in light mode (rgb(235,239,243))
1473
+ color: "#EBEFF3"
1474
+ }
1475
+ },
1476
+ axisTick: {
1477
+ show: true,
1478
+ lineStyle: {
1479
+ color: "#EBEFF3"
1480
+ }
1481
+ },
1482
+ axisLabel: {
1483
+ show: true,
1484
+ color: textSecondaryLight,
1485
+ fontWeight: "normal"
1486
+ },
1487
+ splitLine: {
1488
+ show: false,
1489
+ lineStyle: {
1490
+ color: ["#E0E6F1"]
1491
+ }
1492
+ },
1493
+ splitArea: {
1494
+ show: false,
1495
+ areaStyle: {
1496
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1497
+ }
1498
+ }
1499
+ },
1500
+ valueAxis: {
1501
+ axisLine: {
1502
+ show: false,
1503
+ lineStyle: {
1504
+ color: textSecondaryLight
1505
+ }
1506
+ },
1507
+ axisTick: {
1508
+ show: false,
1509
+ lineStyle: {
1510
+ color: textSecondaryLight
1511
+ }
1512
+ },
1513
+ axisLabel: {
1514
+ show: true,
1515
+ color: textSecondaryLight,
1516
+ fontWeight: "normal"
1517
+ },
1518
+ splitLine: {
1519
+ show: true,
1520
+ lineStyle: {
1521
+ color: "rgba(228, 232, 237, 0.3)"
1522
+ }
1523
+ },
1524
+ splitArea: {
1525
+ show: false,
1526
+ areaStyle: {
1527
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1528
+ }
1529
+ }
1530
+ },
1531
+ logAxis: {
1532
+ axisLine: {
1533
+ show: false,
1534
+ lineStyle: {
1535
+ color: textSecondaryLight
1536
+ }
1537
+ },
1538
+ axisTick: {
1539
+ show: false,
1540
+ lineStyle: {
1541
+ color: textSecondaryLight
1542
+ }
1543
+ },
1544
+ axisLabel: {
1545
+ show: true,
1546
+ color: textSecondaryLight
1547
+ },
1548
+ splitLine: {
1549
+ show: true,
1550
+ lineStyle: {
1551
+ color: "rgba(89, 93, 97, 0.8)"
1552
+ }
1553
+ },
1554
+ splitArea: {
1555
+ show: false,
1556
+ areaStyle: {
1557
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1558
+ }
1559
+ }
1560
+ },
1561
+ timeAxis: {
1562
+ axisLine: {
1563
+ show: true,
1564
+ lineStyle: {
1565
+ // matches CSS --border-color in light mode (rgb(235,239,243))
1566
+ color: "#EBEFF3"
1567
+ }
1568
+ },
1569
+ axisTick: {
1570
+ show: true,
1571
+ lineStyle: {
1572
+ color: "#EBEFF3"
1573
+ }
1574
+ },
1575
+ axisLabel: {
1576
+ show: true,
1577
+ color: textSecondaryLight
1578
+ },
1579
+ splitLine: {
1580
+ show: false,
1581
+ lineStyle: {
1582
+ color: ["#E0E6F1"]
1583
+ }
1584
+ },
1585
+ splitArea: {
1586
+ show: false,
1587
+ areaStyle: {
1588
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1589
+ }
1590
+ }
1591
+ },
1592
+ toolbox: {
1593
+ iconStyle: {
1594
+ borderColor: "#999999"
1595
+ },
1596
+ emphasis: {
1597
+ iconStyle: {
1598
+ borderColor: "#666666"
1599
+ }
1600
+ }
1601
+ },
1602
+ legend: {
1603
+ textStyle: {
1604
+ color: textSecondaryLight,
1605
+ fontSize: 10
1606
+ },
1607
+ pageIconColor: "#4E5969",
1608
+ pageIconInactiveColor: "#C9CDD4",
1609
+ pageTextStyle: {
1610
+ color: textSecondaryLight
1611
+ }
1612
+ },
1613
+ tooltip: {
1614
+ axisPointer: {
1615
+ lineStyle: {
1616
+ color: "#e0e0e0",
1617
+ width: 1
1618
+ },
1619
+ crossStyle: {
1620
+ color: "#e0e0e0",
1621
+ width: 1
1622
+ }
1623
+ }
1624
+ },
1625
+ timeline: {
1626
+ lineStyle: {
1627
+ color: "#dae1f5",
1628
+ width: 2
1629
+ },
1630
+ itemStyle: {
1631
+ color: "#a4b1d7",
1632
+ borderWidth: 1
1633
+ },
1634
+ controlStyle: {
1635
+ color: "#a4b1d7",
1636
+ borderColor: "#a4b1d7",
1637
+ borderWidth: 1
1638
+ },
1639
+ checkpointStyle: {
1640
+ color: "#316bf3",
1641
+ borderColor: "#ffffff"
1642
+ },
1643
+ label: {
1644
+ color: "#a4b1d7"
1645
+ },
1646
+ emphasis: {
1647
+ itemStyle: {
1648
+ color: "#ffffff"
1649
+ },
1650
+ controlStyle: {
1651
+ color: "#a4b1d7",
1652
+ borderColor: "#a4b1d7",
1653
+ borderWidth: 1
1654
+ },
1655
+ label: {
1656
+ color: "#a4b1d7"
1657
+ }
1658
+ }
1659
+ },
1660
+ visualMap: {
1661
+ color: ["#bf444c", "#d88273", "#f6efa6"]
1662
+ },
1663
+ dataZoom: {
1664
+ handleSize: "undefined%",
1665
+ textStyle: {}
1666
+ },
1667
+ markPoint: {
1668
+ label: {
1669
+ color: "#ebeff3"
1670
+ },
1671
+ emphasis: {
1672
+ label: {
1673
+ color: "#ebeff3"
1674
+ }
1675
+ }
1676
+ }
1677
+ };
1678
+ var sentioThemeDark = {
1679
+ color: sentioColors.dark.classic,
1680
+ backgroundColor: "rgba(0,0,0,0)",
1681
+ textStyle: {
1682
+ fontSize: 11,
1683
+ fontFamily: sansFontFamily,
1684
+ textBorderWidth: 0,
1685
+ textBorderColor: "transparent",
1686
+ color: textSecondaryDark
1687
+ },
1688
+ title: {
1689
+ textStyle: {
1690
+ color: textSecondaryDark
1691
+ },
1692
+ subtextStyle: {
1693
+ color: textSecondaryDark
1694
+ }
1695
+ },
1696
+ line: {
1697
+ itemStyle: {
1698
+ borderWidth: 1
1699
+ },
1700
+ lineStyle: {
1701
+ width: 2
1702
+ },
1703
+ symbolSize: 4,
1704
+ symbol: "emptyCircle",
1705
+ smooth: false
1706
+ },
1707
+ radar: {
1708
+ itemStyle: {
1709
+ borderWidth: 1
1710
+ },
1711
+ lineStyle: {
1712
+ width: 2
1713
+ },
1714
+ symbolSize: 4,
1715
+ symbol: "emptyCircle",
1716
+ smooth: false
1717
+ },
1718
+ bar: {
1719
+ itemStyle: {
1720
+ borderWidth: 0,
1721
+ borderColor: "#ccc"
1722
+ }
1723
+ },
1724
+ pie: {
1725
+ itemStyle: {
1726
+ borderWidth: 0,
1727
+ borderColor: "transparent"
1728
+ },
1729
+ label: {
1730
+ textBorderWidth: 0,
1731
+ textBorderColor: "transparent",
1732
+ color: textSecondaryDark
1733
+ }
1734
+ },
1735
+ scatter: {
1736
+ itemStyle: {
1737
+ borderWidth: 0,
1738
+ borderColor: "#ccc"
1739
+ }
1740
+ },
1741
+ boxplot: {
1742
+ itemStyle: {
1743
+ borderWidth: 0,
1744
+ borderColor: "#ccc"
1745
+ }
1746
+ },
1747
+ parallel: {
1748
+ itemStyle: {
1749
+ borderWidth: 0,
1750
+ borderColor: "#ccc"
1751
+ }
1752
+ },
1753
+ sankey: {
1754
+ itemStyle: {
1755
+ borderWidth: 0,
1756
+ borderColor: "#ccc"
1757
+ }
1758
+ },
1759
+ funnel: {
1760
+ itemStyle: {
1761
+ borderWidth: 0,
1762
+ borderColor: "#ccc"
1763
+ }
1764
+ },
1765
+ gauge: {
1766
+ itemStyle: {
1767
+ borderWidth: 0,
1768
+ borderColor: "#ccc"
1769
+ }
1770
+ },
1771
+ candlestick: {
1772
+ itemStyle: {
1773
+ color: "#eb5454",
1774
+ color0: "#47b262",
1775
+ borderColor: "#eb5454",
1776
+ borderColor0: "#47b262",
1777
+ borderWidth: 1
1778
+ }
1779
+ },
1780
+ graph: {
1781
+ itemStyle: {
1782
+ borderWidth: 0,
1783
+ borderColor: "#ccc"
1784
+ },
1785
+ lineStyle: {
1786
+ width: 1,
1787
+ color: "#aaaaaa"
1788
+ },
1789
+ symbolSize: 4,
1790
+ symbol: "emptyCircle",
1791
+ smooth: false,
1792
+ color: [
1793
+ "#2e71db",
1794
+ "#a8d58d",
1795
+ "#ffe355",
1796
+ "#f05a4d",
1797
+ "#56bce5",
1798
+ "#73ba46",
1799
+ "#ff9f05",
1800
+ "#ad56e2",
1801
+ "#e97ec2"
1802
+ ],
1803
+ label: {
1804
+ color: "#ebeff3"
1805
+ }
1806
+ },
1807
+ map: {
1808
+ itemStyle: {
1809
+ areaColor: "#eee",
1810
+ borderColor: "#444",
1811
+ borderWidth: 0.5
1812
+ },
1813
+ label: {
1814
+ color: "#000"
1815
+ },
1816
+ emphasis: {
1817
+ itemStyle: {
1818
+ areaColor: "rgba(255,215,0,0.8)",
1819
+ borderColor: "#444",
1820
+ borderWidth: 1
1821
+ },
1822
+ label: {
1823
+ color: "rgb(100,0,0)"
1824
+ }
1825
+ }
1826
+ },
1827
+ geo: {
1828
+ itemStyle: {
1829
+ areaColor: "#eee",
1830
+ borderColor: "#444",
1831
+ borderWidth: 0.5
1832
+ },
1833
+ label: {
1834
+ color: "#000"
1835
+ },
1836
+ emphasis: {
1837
+ itemStyle: {
1838
+ areaColor: "rgba(255,215,0,0.8)",
1839
+ borderColor: "#444",
1840
+ borderWidth: 1
1841
+ },
1842
+ label: {
1843
+ color: "rgb(100,0,0)"
1844
+ }
1845
+ }
1846
+ },
1847
+ categoryAxis: {
1848
+ axisLine: {
1849
+ show: true,
1850
+ lineStyle: {
1851
+ // matches CSS --border-color in dark mode (gray-100 = rgb(66,66,72))
1852
+ color: "#424248"
1853
+ }
1854
+ },
1855
+ axisTick: {
1856
+ show: true,
1857
+ lineStyle: {
1858
+ color: "#424248"
1859
+ }
1860
+ },
1861
+ axisLabel: {
1862
+ show: true,
1863
+ color: textSecondaryDark,
1864
+ fontWeight: "normal"
1865
+ },
1866
+ splitLine: {
1867
+ show: false,
1868
+ lineStyle: {
1869
+ color: ["#E0E6F1"]
1870
+ }
1871
+ },
1872
+ splitArea: {
1873
+ show: false,
1874
+ areaStyle: {
1875
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1876
+ }
1877
+ }
1878
+ },
1879
+ valueAxis: {
1880
+ axisLine: {
1881
+ show: false,
1882
+ lineStyle: {
1883
+ color: textSecondaryDark
1884
+ }
1885
+ },
1886
+ axisTick: {
1887
+ show: false,
1888
+ lineStyle: {
1889
+ color: textSecondaryDark
1890
+ }
1891
+ },
1892
+ axisLabel: {
1893
+ show: true,
1894
+ color: textSecondaryDark
1895
+ },
1896
+ splitLine: {
1897
+ show: true,
1898
+ lineStyle: {
1899
+ // softer gridline on the new dark canvas — barely visible
1900
+ color: "rgba(255, 255, 255, 0.05)",
1901
+ width: 1,
1902
+ opacity: 0.4
1903
+ }
1904
+ },
1905
+ splitArea: {
1906
+ show: false,
1907
+ areaStyle: {
1908
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1909
+ }
1910
+ }
1911
+ },
1912
+ logAxis: {
1913
+ axisLine: {
1914
+ show: false,
1915
+ lineStyle: {
1916
+ color: textSecondaryDark
1917
+ }
1918
+ },
1919
+ axisTick: {
1920
+ show: false,
1921
+ lineStyle: {
1922
+ color: textSecondaryDark
1923
+ }
1924
+ },
1925
+ axisLabel: {
1926
+ show: true,
1927
+ color: textSecondaryDark,
1928
+ fontWeight: "normal"
1929
+ },
1930
+ splitLine: {
1931
+ show: true,
1932
+ lineStyle: {
1933
+ // softer gridline on the new dark canvas
1934
+ color: ["rgba(255, 255, 255, 0.05)"],
1935
+ width: 1,
1936
+ opacity: 0.4
1937
+ }
1938
+ },
1939
+ splitArea: {
1940
+ show: false,
1941
+ areaStyle: {
1942
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1943
+ }
1944
+ }
1945
+ },
1946
+ timeAxis: {
1947
+ axisLine: {
1948
+ show: true,
1949
+ lineStyle: {
1950
+ // matches CSS --border-color in dark mode (gray-100 = rgb(66,66,72))
1951
+ color: "#424248"
1952
+ }
1953
+ },
1954
+ axisTick: {
1955
+ show: true,
1956
+ lineStyle: {
1957
+ color: "#424248"
1958
+ }
1959
+ },
1960
+ axisLabel: {
1961
+ show: true,
1962
+ color: textSecondaryDark
1963
+ },
1964
+ splitLine: {
1965
+ show: false,
1966
+ lineStyle: {
1967
+ color: ["#5d6165"]
1968
+ }
1969
+ },
1970
+ splitArea: {
1971
+ show: false,
1972
+ areaStyle: {
1973
+ color: ["rgba(250,250,250,0.2)", "rgba(210,219,238,0.2)"]
1974
+ }
1975
+ }
1976
+ },
1977
+ toolbox: {
1978
+ iconStyle: {
1979
+ borderColor: "#999999"
1980
+ },
1981
+ emphasis: {
1982
+ iconStyle: {
1983
+ borderColor: "#666666"
1984
+ }
1985
+ }
1986
+ },
1987
+ legend: {
1988
+ textStyle: {
1989
+ color: textSecondaryDark
1990
+ },
1991
+ pageIconColor: "#909399",
1992
+ pageIconInactiveColor: "#606266",
1993
+ pageTextStyle: {
1994
+ color: textSecondaryDark
1995
+ }
1996
+ },
1997
+ tooltip: {
1998
+ axisPointer: {
1999
+ lineStyle: {
2000
+ color: "#e0e0e0",
2001
+ width: 1
2002
+ },
2003
+ crossStyle: {
2004
+ color: "#e0e0e0",
2005
+ width: 1
2006
+ }
2007
+ },
2008
+ backgroundColor: "#202020",
2009
+ textStyle: {
2010
+ color: textSecondaryDark
2011
+ }
2012
+ },
2013
+ timeline: {
2014
+ lineStyle: {
2015
+ color: "#dae1f5",
2016
+ width: 2
2017
+ },
2018
+ itemStyle: {
2019
+ color: "#a4b1d7",
2020
+ borderWidth: 1
2021
+ },
2022
+ controlStyle: {
2023
+ color: "#a4b1d7",
2024
+ borderColor: "#a4b1d7",
2025
+ borderWidth: 1
2026
+ },
2027
+ checkpointStyle: {
2028
+ color: "#316bf3",
2029
+ borderColor: "#ffffff"
2030
+ },
2031
+ label: {
2032
+ color: "#a4b1d7"
2033
+ },
2034
+ emphasis: {
2035
+ itemStyle: {
2036
+ color: "#ffffff"
2037
+ },
2038
+ controlStyle: {
2039
+ color: "#a4b1d7",
2040
+ borderColor: "#a4b1d7",
2041
+ borderWidth: 1
2042
+ },
2043
+ label: {
2044
+ color: "#a4b1d7"
2045
+ }
2046
+ }
2047
+ },
2048
+ visualMap: {
2049
+ color: ["#bf444c", "#d88273", "#f6efa6"]
2050
+ },
2051
+ dataZoom: {
2052
+ handleSize: "undefined%",
2053
+ textStyle: {}
2054
+ },
2055
+ markPoint: {
2056
+ label: {
2057
+ color: "#ebeff3"
2058
+ },
2059
+ emphasis: {
2060
+ label: {
2061
+ color: "#ebeff3"
2062
+ }
2063
+ }
2064
+ }
2065
+ };
2066
+
2067
+ // src/charts/theme/register.ts
2068
+ var registered = false;
2069
+ function registerSentioTheme() {
2070
+ if (registered) return;
2071
+ registered = true;
2072
+ (0, import_core.registerTheme)("sentio", sentioTheme);
2073
+ (0, import_core.registerTheme)("sentio-dark", sentioThemeDark);
2074
+ }
2075
+
2076
+ // src/utils/use-dark-mode.ts
2077
+ var import_react11 = require("react");
2078
+ var DarkModeListener = class _DarkModeListener {
2079
+ constructor() {
2080
+ this.isDarkMode = false;
2081
+ this.listeners = [];
2082
+ this.init();
2083
+ }
2084
+ static get instance() {
2085
+ if (!this._instance) {
2086
+ this._instance = new _DarkModeListener();
2087
+ }
2088
+ return this._instance;
2089
+ }
2090
+ addListener(listener) {
2091
+ this.listeners.push(listener);
2092
+ }
2093
+ removeListener(listener) {
2094
+ this.listeners = this.listeners.filter((l) => l !== listener);
2095
+ }
2096
+ get darkMode() {
2097
+ return this.isDarkMode;
2098
+ }
2099
+ _sync(theme = "system") {
2100
+ let isDarkMode = false;
2101
+ if (theme === "system") {
2102
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
2103
+ isDarkMode = mediaQuery.matches;
2104
+ localStorage.setItem("theme", "system");
2105
+ } else if (theme === "light") {
2106
+ isDarkMode = false;
2107
+ localStorage.removeItem("theme");
2108
+ } else {
2109
+ isDarkMode = theme === "dark";
2110
+ localStorage.setItem("theme", "dark");
2111
+ }
2112
+ this.isDarkMode = isDarkMode;
2113
+ document.body.classList.remove("light", "dark");
2114
+ document.body.classList.add(isDarkMode ? "dark" : "light");
2115
+ this.listeners.forEach((listener) => listener(isDarkMode));
2116
+ }
2117
+ toggleDarkMode() {
2118
+ this.isDarkMode = document.body.classList.contains("dark");
2119
+ this._sync(this.isDarkMode ? "light" : "dark");
2120
+ }
2121
+ setDarkMode(value) {
2122
+ this._sync(value);
2123
+ }
2124
+ init() {
2125
+ this.isDarkMode = document.body.classList.contains("dark");
2126
+ const observer = new MutationObserver((mutationsList) => {
2127
+ for (const mutation of mutationsList) {
2128
+ if (mutation.type === "attributes" && mutation.attributeName === "class") {
2129
+ const isDarkMode = document.body.classList.contains("dark");
2130
+ if (this.isDarkMode !== isDarkMode) {
2131
+ this.isDarkMode = isDarkMode;
2132
+ this.listeners.forEach((listener) => listener(isDarkMode));
2133
+ }
2134
+ }
2135
+ }
2136
+ });
2137
+ const config = {
2138
+ attributes: true,
2139
+ // Observe attribute changes
2140
+ attributeFilter: ["class"]
2141
+ // Only observe changes to the 'class' attribute
2142
+ };
2143
+ observer.observe(document.body, config);
2144
+ }
2145
+ };
2146
+ var useDarkMode = (defaultValue = false) => {
2147
+ const [isDarkMode, setIsDarkMode] = (0, import_react11.useState)(defaultValue);
2148
+ (0, import_react11.useEffect)(() => {
2149
+ const instance = DarkModeListener.instance;
2150
+ setIsDarkMode(instance.darkMode);
2151
+ instance.addListener(setIsDarkMode);
2152
+ }, []);
2153
+ return isDarkMode;
2154
+ };
2155
+
2156
+ // src/charts/EchartsBase.tsx
2157
+ var import_jsx_runtime9 = require("react/jsx-runtime");
2158
+ (0, import_core2.use)([
2159
+ import_components.LegendComponent,
2160
+ import_charts.PieChart,
2161
+ import_charts.LineChart,
2162
+ import_charts.ScatterChart,
2163
+ import_components.MarkLineComponent,
2164
+ import_components.MarkAreaComponent,
2165
+ import_charts.BarChart,
2166
+ import_charts.SankeyChart,
2167
+ import_components.GridComponent,
2168
+ import_components.TooltipComponent,
2169
+ import_components.BrushComponent,
2170
+ import_components.TitleComponent,
2171
+ import_components.ToolboxComponent,
2172
+ // A group of utility tools, which includes export, data view, dynamic type switching, data area zooming, and reset.
2173
+ import_components.DataZoomComponent,
2174
+ // Used in Line Graph Charts
2175
+ import_renderers.CanvasRenderer,
2176
+ // If you only need to use the canvas rendering mode, the bundle will not include the SVGRenderer module, which is not needed.
2177
+ import_components.GraphicComponent,
2178
+ import_renderers.SVGRenderer,
2179
+ import_components.VisualMapComponent
2180
+ ]);
2181
+ registerSentioTheme();
2182
+ var ReactEChartsBaseComponent = ({
2183
+ group,
2184
+ option,
2185
+ style,
2186
+ settings,
2187
+ loading,
2188
+ theme: _theme,
2189
+ // minHeight,
2190
+ returnedSeries,
2191
+ totalSeries,
2192
+ onSelect,
2193
+ noLegend,
2194
+ onZoom,
2195
+ onClick,
2196
+ onSeriesEvent,
2197
+ onInitChart
2198
+ }, forwardedRef) => {
2199
+ const isDarkMode = useDarkMode();
2200
+ const theme = _theme || (isDarkMode ? "sentio-dark" : "sentio");
2201
+ const [legendSelected, setLegendSelected] = (0, import_react12.useState)(
2202
+ {}
2203
+ );
2204
+ const [chart, setChart] = (0, import_react12.useState)();
2205
+ const echartInstanceRef = (0, import_react12.useRef)();
2206
+ const [legendRendered, setLegendRendered] = (0, import_react12.useState)(false);
2207
+ const chartRender = "canvas";
2208
+ const frameRef = (0, import_react12.useRef)(null);
2209
+ const chartHandle = (0, import_react12.useMemo)(() => {
2210
+ return {
2211
+ getEChart: () => echartInstanceRef.current,
2212
+ highlightSeries(highlighted) {
2213
+ const chart2 = echartInstanceRef.current;
2214
+ if (chart2) {
2215
+ const { series: s } = chart2.getOption();
2216
+ const series = s;
2217
+ if (highlighted) {
2218
+ for (let i = 0; i < series.length; i++) {
2219
+ const s2 = series[i];
2220
+ if (s2.id == highlighted.seriesId || highlighted.seriesIndex == i) {
2221
+ s2.lineStyle = s2.lineStyle || {};
2222
+ s2.lineStyle.opacity = 1;
2223
+ } else {
2224
+ s2.lineStyle = s2.lineStyle || {};
2225
+ s2.lineStyle.opacity = 0.2;
2226
+ }
2227
+ }
2228
+ } else {
2229
+ series.forEach((s2) => {
2230
+ s2.lineStyle = s2.lineStyle || {};
2231
+ s2.lineStyle.opacity = 1;
2232
+ });
2233
+ }
2234
+ chart2.setOption({ series });
2235
+ }
2236
+ },
2237
+ getSeriesColor(s) {
2238
+ const chart2 = echartInstanceRef.current;
2239
+ if (chart2) {
2240
+ try {
2241
+ const { series: optionSeries } = chart2.getOption();
2242
+ const seriesList = optionSeries || [];
2243
+ let resolvedIndex = s.seriesIndex;
2244
+ if ((resolvedIndex == null || resolvedIndex < 0) && s.seriesId) {
2245
+ resolvedIndex = seriesList.findIndex(
2246
+ (serie) => serie.id === s.seriesId
2247
+ );
2248
+ }
2249
+ if ((resolvedIndex == null || resolvedIndex < 0) && s.seriesName) {
2250
+ resolvedIndex = seriesList.findIndex(
2251
+ (serie) => serie.name === s.seriesName
2252
+ );
2253
+ }
2254
+ if (resolvedIndex != null && resolvedIndex >= 0 && resolvedIndex < seriesList.length) {
2255
+ return chart2.getVisual(
2256
+ { seriesIndex: resolvedIndex },
2257
+ "color"
2258
+ );
2259
+ }
2260
+ return void 0;
2261
+ } catch (e) {
2262
+ }
2263
+ }
2264
+ },
2265
+ getFrame() {
2266
+ return frameRef.current;
2267
+ },
2268
+ toggleLegend(name, selected) {
2269
+ const chart2 = echartInstanceRef.current;
2270
+ if (selected == null) {
2271
+ chart2?.dispatchAction({
2272
+ type: "legendToggleSelect",
2273
+ name
2274
+ });
2275
+ } else {
2276
+ chart2?.dispatchAction({
2277
+ type: selected ? "legendSelect" : "legendUnSelect",
2278
+ name
2279
+ });
2280
+ }
2281
+ },
2282
+ getSeries(seriesId) {
2283
+ const chart2 = echartInstanceRef.current;
2284
+ if (chart2) {
2285
+ const { series: s } = chart2.getOption();
2286
+ const series = s;
2287
+ return series?.find((s2) => s2.id == seriesId);
2288
+ }
2289
+ },
2290
+ resize: (size) => {
2291
+ const chart2 = echartInstanceRef.current;
2292
+ chart2?.resize(size);
2293
+ }
2294
+ };
2295
+ }, []);
2296
+ (0, import_react12.useImperativeHandle)(forwardedRef, () => {
2297
+ return chartHandle;
2298
+ }, [chartHandle]);
2299
+ const onResize = (0, import_react12.useCallback)(({ width, height }) => {
2300
+ const chart2 = echartInstanceRef.current;
2301
+ chart2?.resize({
2302
+ width: width ?? void 0,
2303
+ height: height ?? void 0
2304
+ });
2305
+ }, []);
2306
+ const {
2307
+ // width,
2308
+ // height,
2309
+ ref: chartRef
2310
+ } = (0, import_react_resize_detector.useResizeDetector)({
2311
+ onResize,
2312
+ refreshMode: "throttle",
2313
+ refreshRate: 100
2314
+ });
2315
+ (0, import_react12.useEffect)(() => {
2316
+ let instance;
2317
+ const containerNode = frameRef.current?.querySelector(".echart-container");
2318
+ if (containerNode) {
2319
+ instance = (0, import_core2.init)(containerNode, theme, {
2320
+ renderer: chartRender,
2321
+ locale: "EN"
2322
+ });
2323
+ echartInstanceRef.current = instance;
2324
+ setChart(instance);
2325
+ }
2326
+ return () => {
2327
+ echartInstanceRef.current = void 0;
2328
+ instance?.dispose();
2329
+ };
2330
+ }, [theme, chartRender]);
2331
+ (0, import_react12.useEffect)(() => {
2332
+ if (!chart || chart.isDisposed()) {
2333
+ return;
2334
+ }
2335
+ chart.on("legendselected", (event) => {
2336
+ setLegendSelected(event.selected);
2337
+ });
2338
+ chart.on("legendunselected", (event) => {
2339
+ setLegendSelected(event.selected);
2340
+ });
2341
+ chart.on("legendselectchanged", (event) => {
2342
+ setLegendSelected(event.selected);
2343
+ });
2344
+ chart.on("brushEnd", (params) => {
2345
+ const areas = params.areas[0];
2346
+ if (areas) {
2347
+ const start = areas.coordRange[0];
2348
+ const end = areas.coordRange[1];
2349
+ onSelect && onSelect(start, end);
2350
+ }
2351
+ });
2352
+ if (onZoom) {
2353
+ chart.on("dataZoom", (params) => {
2354
+ onZoom(params.start, params.end);
2355
+ });
2356
+ }
2357
+ return () => {
2358
+ if (chart.isDisposed()) return;
2359
+ chart.off("legendselectchanged");
2360
+ chart.off("brushEnd");
2361
+ chart.off("dataZoom");
2362
+ };
2363
+ }, [chart, onSelect, onZoom]);
2364
+ (0, import_react12.useEffect)(() => {
2365
+ if (!chart || chart.isDisposed() || !onClick) {
2366
+ return;
2367
+ }
2368
+ chart.getZr()?.on("click", (params) => {
2369
+ const pointInPixel = [params.offsetX, params.offsetY];
2370
+ const pointInGrid = chart.convertFromPixel("grid", pointInPixel);
2371
+ onClick(pointInGrid, params);
2372
+ });
2373
+ if (onSeriesEvent) {
2374
+ chart.on("click", "series", (params) => {
2375
+ onSeriesEvent?.("click", params);
2376
+ });
2377
+ chart.on("mouseover", "series", (params) => {
2378
+ onSeriesEvent?.("mouseover", params);
2379
+ });
2380
+ chart.on("mouseout", "series", (params) => {
2381
+ onSeriesEvent?.("mouseout", params);
2382
+ });
2383
+ }
2384
+ return () => {
2385
+ if (chart.isDisposed()) return;
2386
+ chart.getZr()?.off("click");
2387
+ if (onSeriesEvent) {
2388
+ chart.off("click");
2389
+ chart.off("mouseout");
2390
+ chart.off("mouseover");
2391
+ }
2392
+ };
2393
+ }, [chart, onClick, onSeriesEvent, onInitChart]);
2394
+ const processedOption = (0, import_react12.useMemo)(() => {
2395
+ if (!option) return option;
2396
+ const processedOpt = { ...option };
2397
+ const graphicElements = [];
2398
+ let hasYAxisName = false;
2399
+ let hasXAxisName = false;
2400
+ const textColor = isDarkMode ? "#A6A6A6" : "#6E7079";
2401
+ const createAxisNameElement = (name, isYAxis, axisIndex = 0) => {
2402
+ const baseStyle = {
2403
+ text: name,
2404
+ fontSize: 11,
2405
+ fontFamily: sansFontFamily,
2406
+ fontWeight: 600,
2407
+ fill: textColor,
2408
+ textAlign: "center",
2409
+ textVerticalAlign: "middle"
2410
+ };
2411
+ if (isYAxis) {
2412
+ return {
2413
+ type: "text",
2414
+ left: axisIndex === 0 ? 8 : "right",
2415
+ top: "middle",
2416
+ rotation: Math.PI / 2,
2417
+ style: baseStyle,
2418
+ z: 100,
2419
+ silent: true
2420
+ };
2421
+ } else {
2422
+ return {
2423
+ type: "text",
2424
+ left: "center",
2425
+ bottom: axisIndex === 0 ? 8 : "top",
2426
+ style: baseStyle,
2427
+ z: 100,
2428
+ silent: true
2429
+ };
2430
+ }
2431
+ };
2432
+ const processAxisName = (axisConfig, isYAxis, axisIndex = 0) => {
2433
+ if (axisConfig && typeof axisConfig === "object" && axisConfig.name) {
2434
+ if (isYAxis) {
2435
+ hasYAxisName = true;
2436
+ } else {
2437
+ hasXAxisName = true;
2438
+ }
2439
+ const { name, ...restAxis } = axisConfig;
2440
+ const graphicElement = createAxisNameElement(name, isYAxis, axisIndex);
2441
+ graphicElements.push(graphicElement);
2442
+ return restAxis;
2443
+ }
2444
+ return axisConfig;
2445
+ };
2446
+ const processAxisArray = (axisOption, isYAxis) => {
2447
+ if (!axisOption) return axisOption;
2448
+ if (Array.isArray(axisOption)) {
2449
+ return axisOption.map(
2450
+ (axis, index) => processAxisName(axis, isYAxis, index)
2451
+ );
2452
+ } else {
2453
+ return processAxisName(axisOption, isYAxis, 0);
2454
+ }
2455
+ };
2456
+ processedOpt.yAxis = processAxisArray(option.yAxis, true);
2457
+ processedOpt.xAxis = processAxisArray(option.xAxis, false);
2458
+ if (hasYAxisName || hasXAxisName) {
2459
+ const originalGrid = processedOpt.grid || {};
2460
+ const adjustGridSpacing = (gridItem) => ({
2461
+ ...gridItem,
2462
+ left: hasYAxisName ? typeof gridItem.left === "number" ? gridItem.left + 20 : 32 : gridItem.left,
2463
+ bottom: hasXAxisName ? typeof gridItem.bottom === "number" ? gridItem.bottom + 20 : 28 : gridItem.bottom
2464
+ });
2465
+ processedOpt.grid = Array.isArray(originalGrid) ? originalGrid.map(adjustGridSpacing) : adjustGridSpacing(originalGrid);
2466
+ }
2467
+ if (graphicElements.length > 0) {
2468
+ const existingGraphic = processedOpt.graphic;
2469
+ if (existingGraphic) {
2470
+ processedOpt.graphic = Array.isArray(existingGraphic) ? [...existingGraphic, ...graphicElements] : [existingGraphic, ...graphicElements];
2471
+ } else {
2472
+ processedOpt.graphic = graphicElements;
2473
+ }
2474
+ }
2475
+ return processedOpt;
2476
+ }, [option, isDarkMode]);
2477
+ (0, import_react12.useEffect)(() => {
2478
+ if (!chart || chart.isDisposed()) {
2479
+ return;
2480
+ }
2481
+ try {
2482
+ chart.setOption(
2483
+ {
2484
+ ...processedOption,
2485
+ legend: {
2486
+ ...processedOption.legend,
2487
+ // Persist legend selected state between re-render.
2488
+ ...legendSelected ? { selected: legendSelected } : {}
2489
+ }
2490
+ },
2491
+ { ...settings, notMerge: true }
2492
+ );
2493
+ } catch (e) {
2494
+ console.error("echarts set option failed", e, processedOption);
2495
+ }
2496
+ onInitChart?.(chart);
2497
+ if (!isMobile()) {
2498
+ chart.dispatchAction({
2499
+ type: "brush",
2500
+ command: "clear",
2501
+ areas: []
2502
+ });
2503
+ chart.dispatchAction({
2504
+ type: "takeGlobalCursor",
2505
+ key: "brush",
2506
+ brushOption: {
2507
+ brushType: "lineX",
2508
+ brushMode: "single"
2509
+ }
2510
+ });
2511
+ }
2512
+ }, [
2513
+ chart,
2514
+ processedOption,
2515
+ settings,
2516
+ theme,
2517
+ onSelect,
2518
+ legendSelected,
2519
+ onInitChart
2520
+ ]);
2521
+ (0, import_react12.useEffect)(() => {
2522
+ if (loading) {
2523
+ setLegendRendered(false);
2524
+ }
2525
+ }, [loading]);
2526
+ (0, import_react12.useEffect)(() => {
2527
+ if (chart && !chart.isDisposed()) {
2528
+ chart.group = group || "";
2529
+ }
2530
+ }, [chart, group]);
2531
+ const onMouseDown = (0, import_react12.useCallback)(
2532
+ (event) => {
2533
+ if (event.button !== 0 && chartRef.current) {
2534
+ chartRef.current.querySelector(chartRender)?.dispatchEvent(
2535
+ new MouseEvent("mouseup", event)
2536
+ );
2537
+ }
2538
+ },
2539
+ [chartRef, chartRender]
2540
+ );
2541
+ const legends = noLegend ? null : /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_jsx_runtime9.Fragment, { children: chart && !loading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2542
+ ChartLegend,
2543
+ {
2544
+ legend: option?.legend?.data || [],
2545
+ chartHandle,
2546
+ legendSelected,
2547
+ returnedSeries,
2548
+ totalSeries,
2549
+ onRendered: setLegendRendered
2550
+ }
2551
+ ) });
2552
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
2553
+ "div",
2554
+ {
2555
+ className: "relative mb-1 grid h-full",
2556
+ style: { gridTemplateRows: "1fr max-content", height: "270px", ...style },
2557
+ onMouseDown,
2558
+ ref: frameRef,
2559
+ children: [
2560
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2561
+ "div",
2562
+ {
2563
+ ref: chartRef,
2564
+ className: "echart-container min-h-0 w-full min-w-0"
2565
+ }
2566
+ ),
2567
+ legends,
2568
+ loading && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2569
+ import_ui_core6.BarLoading,
2570
+ {
2571
+ className: "bg-default-bg absolute w-full",
2572
+ hint: "Loading",
2573
+ width: 100
2574
+ }
2575
+ )
2576
+ ]
2577
+ }
2578
+ );
2579
+ };
2580
+ var ReactEChartsBase = (0, import_react12.forwardRef)(ReactEChartsBaseComponent);
2581
+
2582
+ // src/charts/RefreshContext.tsx
2583
+ var import_react13 = require("react");
2584
+ var import_ui_core7 = require("@sentio/ui-core");
2585
+ var import_io = require("react-icons/io");
2586
+ var import_jsx_runtime10 = require("react/jsx-runtime");
2587
+ var RefreshContext = (0, import_react13.createContext)({});
2588
+ var RefreshButton = (props) => {
2589
+ const { refresh, isRefreshing } = (0, import_react13.useContext)(RefreshContext);
2590
+ if (!refresh) return null;
2591
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "grid items-center justify-items-center", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2592
+ import_ui_core7.Button,
2593
+ {
2594
+ size: "sm",
2595
+ role: "text",
2596
+ onClick: (evt) => {
2597
+ evt.preventDefault();
2598
+ refresh();
2599
+ },
2600
+ processing: isRefreshing,
2601
+ icon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_io.IoMdRefresh, {}),
2602
+ className: "text-text-foreground-secondary!",
2603
+ ...props,
2604
+ children: "Retry"
2605
+ }
2606
+ ) });
2607
+ };
2608
+
2609
+ // src/charts/icons/LineIcon.tsx
2610
+ var import_jsx_runtime11 = require("react/jsx-runtime");
2611
+ var SvgIcon = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2612
+ "svg",
2613
+ {
2614
+ width: "14",
2615
+ height: "14",
2616
+ viewBox: "0 0 14 14",
2617
+ fill: "none",
2618
+ xmlns: "http://www.w3.org/2000/svg",
2619
+ className,
2620
+ children: [
2621
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("g", { clipPath: "url(#clip0_1774_9563)", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2622
+ "path",
2623
+ {
2624
+ 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",
2625
+ fill: "currentColor"
2626
+ }
2627
+ ) }),
2628
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("clipPath", { id: "clip0_1774_9563", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("rect", { width: "14", height: "14", fill: "white" }) }) })
2629
+ ]
2630
+ }
2631
+ );
2632
+ var LineIcon_default = SvgIcon;
2633
+
2634
+ // src/charts/icons/AreaIcon.tsx
2635
+ var import_jsx_runtime12 = require("react/jsx-runtime");
2636
+ var SvgIcon2 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2637
+ "svg",
2638
+ {
2639
+ width: "14",
2640
+ height: "14",
2641
+ viewBox: "0 0 14 14",
2642
+ fill: "none",
2643
+ xmlns: "http://www.w3.org/2000/svg",
2644
+ className,
2645
+ children: [
2646
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("g", { clipPath: "url(#clip0_1774_9545)", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2647
+ "path",
2648
+ {
2649
+ 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",
2650
+ fill: "currentColor"
2651
+ }
2652
+ ) }),
2653
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("clipPath", { id: "clip0_1774_9545", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("rect", { width: "14", height: "14", fill: "white" }) }) })
2654
+ ]
2655
+ }
2656
+ );
2657
+ var AreaIcon_default = SvgIcon2;
2658
+
2659
+ // src/charts/icons/BarIcon.tsx
2660
+ var import_jsx_runtime13 = require("react/jsx-runtime");
2661
+ var SvgIcon3 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2662
+ "svg",
2663
+ {
2664
+ width: "14",
2665
+ height: "14",
2666
+ viewBox: "0 0 14 14",
2667
+ fill: "none",
2668
+ xmlns: "http://www.w3.org/2000/svg",
2669
+ className,
2670
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2671
+ "path",
2672
+ {
2673
+ 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",
2674
+ fill: "currentColor"
2675
+ }
2676
+ )
2677
+ }
2678
+ );
2679
+ var BarIcon_default = SvgIcon3;
2680
+
2681
+ // src/charts/icons/BarGuageIcon.tsx
2682
+ var import_jsx_runtime14 = require("react/jsx-runtime");
2683
+ var SvgIcon4 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
2684
+ "svg",
2685
+ {
2686
+ width: "14",
2687
+ height: "14",
2688
+ viewBox: "0 0 14 14",
2689
+ fill: "currentColor",
2690
+ className,
2691
+ xmlns: "http://www.w3.org/2000/svg",
2692
+ children: [
2693
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2694
+ "path",
2695
+ {
2696
+ 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",
2697
+ fill: "currentColor"
2698
+ }
2699
+ ),
2700
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2701
+ "path",
2702
+ {
2703
+ 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",
2704
+ fill: "currentColor"
2705
+ }
2706
+ ),
2707
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2708
+ "path",
2709
+ {
2710
+ 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",
2711
+ fill: "currentColor"
2712
+ }
2713
+ ),
2714
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2715
+ "path",
2716
+ {
2717
+ 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",
2718
+ fill: "currentColor"
2719
+ }
2720
+ )
2721
+ ]
2722
+ }
2723
+ );
2724
+ var BarGuageIcon_default = SvgIcon4;
2725
+
2726
+ // src/charts/icons/PieIcon.tsx
2727
+ var import_jsx_runtime15 = require("react/jsx-runtime");
2728
+ var SvgIcon5 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
2729
+ "svg",
2730
+ {
2731
+ width: "14",
2732
+ height: "14",
2733
+ viewBox: "0 0 14 14",
2734
+ fill: "none",
2735
+ xmlns: "http://www.w3.org/2000/svg",
2736
+ className,
2737
+ children: [
2738
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("g", { clipPath: "url(#clip0_28267_7202)", children: [
2739
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2740
+ "path",
2741
+ {
2742
+ 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",
2743
+ stroke: "currentColor",
2744
+ strokeWidth: "1.16667",
2745
+ strokeLinecap: "round",
2746
+ strokeLinejoin: "round"
2747
+ }
2748
+ ),
2749
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2750
+ "path",
2751
+ {
2752
+ 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",
2753
+ stroke: "currentColor",
2754
+ strokeWidth: "1.16667",
2755
+ strokeLinecap: "round",
2756
+ strokeLinejoin: "round"
2757
+ }
2758
+ )
2759
+ ] }),
2760
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("clipPath", { id: "clip0_28267_7202", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("rect", { width: "14", height: "14", fill: "white" }) }) })
2761
+ ]
2762
+ }
2763
+ );
2764
+ var PieIcon_default = SvgIcon5;
2765
+
2766
+ // src/charts/icons/QueryValueIcon.tsx
2767
+ var import_jsx_runtime16 = require("react/jsx-runtime");
2768
+ var SvgIcon6 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
2769
+ "svg",
2770
+ {
2771
+ width: "14",
2772
+ height: "14",
2773
+ viewBox: "0 0 14 14",
2774
+ fill: "none",
2775
+ className,
2776
+ xmlns: "http://www.w3.org/2000/svg",
2777
+ children: [
2778
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("g", { clipPath: "url(#clip0_3670_4424)", children: [
2779
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2780
+ "path",
2781
+ {
2782
+ 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",
2783
+ stroke: "currentColor",
2784
+ strokeWidth: "1.16667",
2785
+ strokeLinecap: "round",
2786
+ strokeLinejoin: "round"
2787
+ }
2788
+ ),
2789
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2790
+ "path",
2791
+ {
2792
+ d: "M7.98188 5.77273H6.39097L5.75461 5.13636L6.39097 4.5H7.98188L8.61824 5.13636L7.98188 5.77273Z",
2793
+ fill: "currentColor"
2794
+ }
2795
+ ),
2796
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2797
+ "path",
2798
+ {
2799
+ d: "M7.98188 11.5H6.39097L5.75461 10.8637L6.39097 10.2273H7.98188L8.61824 10.8637L7.98188 11.5Z",
2800
+ fill: "currentColor"
2801
+ }
2802
+ ),
2803
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2804
+ "path",
2805
+ {
2806
+ d: "M8.30005 9.90907V6.09089L8.93641 5.45453L9.57278 6.09089V9.90907L8.93641 10.5454L8.30005 9.90907Z",
2807
+ fill: "currentColor"
2808
+ }
2809
+ ),
2810
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2811
+ "path",
2812
+ {
2813
+ d: "M4.80005 9.90907V6.09089L5.43641 5.45453L6.07278 6.09089V9.90907L5.43641 10.5454L4.80005 9.90907Z",
2814
+ fill: "currentColor"
2815
+ }
2816
+ ),
2817
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2818
+ "path",
2819
+ {
2820
+ d: "M1 3.5L13 3.5",
2821
+ stroke: "currentColor",
2822
+ strokeWidth: "1.16667",
2823
+ strokeLinecap: "round",
2824
+ strokeLinejoin: "round"
2825
+ }
2826
+ )
2827
+ ] }),
2828
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("clipPath", { id: "clip0_3670_4424", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("rect", { width: "14", height: "14", fill: "white" }) }) })
2829
+ ]
2830
+ }
2831
+ );
2832
+ var QueryValueIcon_default = SvgIcon6;
2833
+
2834
+ // src/charts/icons/ScatterIcon.tsx
2835
+ var import_jsx_runtime17 = require("react/jsx-runtime");
2836
+ var SvgIcon7 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
2837
+ "svg",
2838
+ {
2839
+ width: "14",
2840
+ height: "14",
2841
+ viewBox: "0 0 14 14",
2842
+ fill: "none",
2843
+ xmlns: "http://www.w3.org/2000/svg",
2844
+ className,
2845
+ children: [
2846
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("g", { clipPath: "url(#clip0_28248_7302)", children: [
2847
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2848
+ "path",
2849
+ {
2850
+ d: "M1.75 1.75V12.25H12.25",
2851
+ stroke: "currentColor",
2852
+ strokeWidth: "1.16667",
2853
+ strokeLinecap: "round",
2854
+ strokeLinejoin: "round"
2855
+ }
2856
+ ),
2857
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2858
+ "path",
2859
+ {
2860
+ d: "M4.66663 8.75879V8.76754",
2861
+ stroke: "currentColor",
2862
+ strokeWidth: "1.16667",
2863
+ strokeLinecap: "round",
2864
+ strokeLinejoin: "round"
2865
+ }
2866
+ ),
2867
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2868
+ "path",
2869
+ {
2870
+ d: "M9.33337 9.34204V9.35079",
2871
+ stroke: "currentColor",
2872
+ strokeWidth: "1.16667",
2873
+ strokeLinecap: "round",
2874
+ strokeLinejoin: "round"
2875
+ }
2876
+ ),
2877
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2878
+ "path",
2879
+ {
2880
+ d: "M4.66663 4.10083V4.10958",
2881
+ stroke: "currentColor",
2882
+ strokeWidth: "1.16667",
2883
+ strokeLinecap: "round",
2884
+ strokeLinejoin: "round"
2885
+ }
2886
+ ),
2887
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2888
+ "path",
2889
+ {
2890
+ d: "M7 6.43408V6.44283",
2891
+ stroke: "currentColor",
2892
+ strokeWidth: "1.16667",
2893
+ strokeLinecap: "round",
2894
+ strokeLinejoin: "round"
2895
+ }
2896
+ ),
2897
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2898
+ "path",
2899
+ {
2900
+ d: "M11.0834 6.43408V6.44283",
2901
+ stroke: "currentColor",
2902
+ strokeWidth: "1.16667",
2903
+ strokeLinecap: "round",
2904
+ strokeLinejoin: "round"
2905
+ }
2906
+ )
2907
+ ] }),
2908
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("clipPath", { id: "clip0_28248_7302", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("rect", { width: "14", height: "14", fill: "white" }) }) })
2909
+ ]
2910
+ }
2911
+ );
2912
+ var ScatterIcon_default = SvgIcon7;
2913
+
2914
+ // src/charts/icons/TableIcon.tsx
2915
+ var import_jsx_runtime18 = require("react/jsx-runtime");
2916
+ var SvgIcon8 = ({ className }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
2917
+ "svg",
2918
+ {
2919
+ width: "14",
2920
+ height: "14",
2921
+ viewBox: "0 0 14 14",
2922
+ fill: "none",
2923
+ xmlns: "http://www.w3.org/2000/svg",
2924
+ className,
2925
+ children: [
2926
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("g", { clipPath: "url(#clip0_3670_4416)", children: [
2927
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2928
+ "path",
2929
+ {
2930
+ 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",
2931
+ stroke: "currentColor",
2932
+ strokeWidth: "1.16667",
2933
+ strokeLinecap: "round",
2934
+ strokeLinejoin: "round"
2935
+ }
2936
+ ),
2937
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2938
+ "path",
2939
+ {
2940
+ d: "M1 5L13 5",
2941
+ stroke: "currentColor",
2942
+ strokeWidth: "1.16667",
2943
+ strokeLinecap: "round",
2944
+ strokeLinejoin: "round"
2945
+ }
2946
+ ),
2947
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2948
+ "path",
2949
+ {
2950
+ d: "M6 2L6 12",
2951
+ stroke: "currentColor",
2952
+ strokeWidth: "1.16667",
2953
+ strokeLinecap: "round",
2954
+ strokeLinejoin: "round"
2955
+ }
2956
+ )
2957
+ ] }),
2958
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("clipPath", { id: "clip0_3670_4416", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("rect", { width: "14", height: "14", fill: "white" }) }) })
2959
+ ]
2960
+ }
2961
+ );
2962
+ var TableIcon_default = SvgIcon8;
1055
2963
  // Annotate the CommonJS export names for ESM import in node:
1056
2964
  0 && (module.exports = {
1057
2965
  AggregateInput,
2966
+ AreaIcon,
1058
2967
  ArgumentInput,
1059
2968
  ArgumentType,
2969
+ BarGuageIcon,
2970
+ BarIcon,
2971
+ ChartLegend,
1060
2972
  EventsFunctionCategories,
1061
2973
  EventsFunctionMap,
1062
2974
  FunctionInput,
@@ -1065,8 +2977,19 @@ function LabelsInput({
1065
2977
  FunctionsPanel,
1066
2978
  LabelSearchProvider,
1067
2979
  LabelsInput,
2980
+ LineIcon,
2981
+ PieIcon,
2982
+ QueryValueIcon,
2983
+ ReactEChartsBase,
2984
+ RefreshButton,
2985
+ RefreshContext,
2986
+ ScatterIcon,
1068
2987
  SystemLabels,
2988
+ TableIcon,
1069
2989
  isAggrOrRollupFunction,
2990
+ sentioColors,
2991
+ sentioTheme,
2992
+ sentioThemeDark,
1070
2993
  sortMetricByName,
1071
2994
  useLabelSearch,
1072
2995
  useLabelSearchContext