drizzle-cube 0.4.3 → 0.4.5
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/client/charts.js +13 -13
- package/dist/client/chunks/{RetentionCombinedChart-7bGP_ozM.js → RetentionCombinedChart-CEI8KQ3t.js} +2 -2
- package/dist/client/chunks/{RetentionCombinedChart-7bGP_ozM.js.map → RetentionCombinedChart-CEI8KQ3t.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-BlCXpnDL.js → analysis-builder-CG5VIMYB.js} +8 -9
- package/dist/client/chunks/{analysis-builder-BlCXpnDL.js.map → analysis-builder-CG5VIMYB.js.map} +1 -1
- package/dist/client/chunks/{analysis-builder-shared-BOYNJQY8.js → analysis-builder-shared-CjlKJgyA.js} +6 -6
- package/dist/client/chunks/{analysis-builder-shared-BOYNJQY8.js.map → analysis-builder-shared-CjlKJgyA.js.map} +1 -1
- package/dist/client/chunks/{chart-activity-grid-sUkuCJzm.js → chart-activity-grid-DStNr34n.js} +2 -2
- package/dist/client/chunks/{chart-activity-grid-sUkuCJzm.js.map → chart-activity-grid-DStNr34n.js.map} +1 -1
- package/dist/client/chunks/{chart-area-C4DIi9k_.js → chart-area-QKKboTbq.js} +3 -3
- package/dist/client/chunks/{chart-area-C4DIi9k_.js.map → chart-area-QKKboTbq.js.map} +1 -1
- package/dist/client/chunks/{chart-bar-7ZleGCsN.js → chart-bar-HpXF42H1.js} +2 -2
- package/dist/client/chunks/{chart-bar-7ZleGCsN.js.map → chart-bar-HpXF42H1.js.map} +1 -1
- package/dist/client/chunks/{chart-bubble-D-auWIjP.js → chart-bubble-Bf42A1-B.js} +2 -2
- package/dist/client/chunks/{chart-bubble-D-auWIjP.js.map → chart-bubble-Bf42A1-B.js.map} +1 -1
- package/dist/client/chunks/{chart-config-markdown-DZxdGNVQ.js → chart-config-markdown-BXKL5TbQ.js} +45 -8
- package/dist/client/chunks/chart-config-markdown-BXKL5TbQ.js.map +1 -0
- package/dist/client/chunks/{chart-data-table-DW6VNGeW.js → chart-data-table-Ch_1c1Zo.js} +3 -3
- package/dist/client/chunks/{chart-data-table-DW6VNGeW.js.map → chart-data-table-Ch_1c1Zo.js.map} +1 -1
- package/dist/client/chunks/{chart-funnel-eUJApzmA.js → chart-funnel-C9kenCpp.js} +2 -2
- package/dist/client/chunks/{chart-funnel-eUJApzmA.js.map → chart-funnel-C9kenCpp.js.map} +1 -1
- package/dist/client/chunks/{chart-heat-map-DR3O3GXx.js → chart-heat-map-CYGemyPB.js} +2 -2
- package/dist/client/chunks/{chart-heat-map-DR3O3GXx.js.map → chart-heat-map-CYGemyPB.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-delta-Bp9Yrgyc.js → chart-kpi-delta-CWCmi8vL.js} +3 -3
- package/dist/client/chunks/{chart-kpi-delta-Bp9Yrgyc.js.map → chart-kpi-delta-CWCmi8vL.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-number-B3yvgbr-.js → chart-kpi-number-C-5m3qt5.js} +2 -2
- package/dist/client/chunks/{chart-kpi-number-B3yvgbr-.js.map → chart-kpi-number-C-5m3qt5.js.map} +1 -1
- package/dist/client/chunks/{chart-kpi-text-D0TsUiaO.js → chart-kpi-text--t4ibPmx.js} +3 -3
- package/dist/client/chunks/{chart-kpi-text-D0TsUiaO.js.map → chart-kpi-text--t4ibPmx.js.map} +1 -1
- package/dist/client/chunks/{chart-line-C7VStgaJ.js → chart-line-C7YcMWBw.js} +3 -3
- package/dist/client/chunks/{chart-line-C7VStgaJ.js.map → chart-line-C7YcMWBw.js.map} +1 -1
- package/dist/client/chunks/chart-markdown-Rq6ORisB.js +276 -0
- package/dist/client/chunks/chart-markdown-Rq6ORisB.js.map +1 -0
- package/dist/client/chunks/{chart-pie-DPdYJSM3.js → chart-pie-C4SuxKSN.js} +2 -2
- package/dist/client/chunks/{chart-pie-DPdYJSM3.js.map → chart-pie-C4SuxKSN.js.map} +1 -1
- package/dist/client/chunks/{chart-radar-DF6VNSiC.js → chart-radar-BW3Z_-Ly.js} +2 -2
- package/dist/client/chunks/{chart-radar-DF6VNSiC.js.map → chart-radar-BW3Z_-Ly.js.map} +1 -1
- package/dist/client/chunks/{chart-radial-bar-7Ttfz-kO.js → chart-radial-bar-0Fa3aeP5.js} +2 -2
- package/dist/client/chunks/{chart-radial-bar-7Ttfz-kO.js.map → chart-radial-bar-0Fa3aeP5.js.map} +1 -1
- package/dist/client/chunks/{chart-sankey-D86RYk9B.js → chart-sankey-DBghfbg1.js} +2 -2
- package/dist/client/chunks/{chart-sankey-D86RYk9B.js.map → chart-sankey-DBghfbg1.js.map} +1 -1
- package/dist/client/chunks/{chart-scatter-BUnIiLr_.js → chart-scatter-DOVu1TNq.js} +2 -2
- package/dist/client/chunks/{chart-scatter-BUnIiLr_.js.map → chart-scatter-DOVu1TNq.js.map} +1 -1
- package/dist/client/chunks/{chart-sunburst-CsHlHfZQ.js → chart-sunburst-LfNthFlZ.js} +2 -2
- package/dist/client/chunks/{chart-sunburst-CsHlHfZQ.js.map → chart-sunburst-LfNthFlZ.js.map} +1 -1
- package/dist/client/chunks/{chart-tree-map-DFAbkeo1.js → chart-tree-map-DZtQPyWX.js} +2 -2
- package/dist/client/chunks/{chart-tree-map-DFAbkeo1.js.map → chart-tree-map-DZtQPyWX.js.map} +1 -1
- package/dist/client/chunks/{chartConfigRegistry-DNEbwgTc.js → chartConfigRegistry-C5dZm-ZK.js} +2 -2
- package/dist/client/chunks/{chartConfigRegistry-DNEbwgTc.js.map → chartConfigRegistry-C5dZm-ZK.js.map} +1 -1
- package/dist/client/chunks/{charts-core-DAF1iT_h.js → charts-core-DmGfleFz.js} +346 -334
- package/dist/client/chunks/charts-core-DmGfleFz.js.map +1 -0
- package/dist/client/chunks/{charts-loader-7pEaEz-f.js → charts-loader-m5Ussksz.js} +21 -21
- package/dist/client/chunks/{charts-loader-7pEaEz-f.js.map → charts-loader-m5Ussksz.js.map} +1 -1
- package/dist/client/chunks/components-D-5p1LVQ.js +9987 -0
- package/dist/client/chunks/components-D-5p1LVQ.js.map +1 -0
- package/dist/client/chunks/{core-DGLxd5v5.js → core-D_8mkGpQ.js} +2 -2
- package/dist/client/chunks/{core-DGLxd5v5.js.map → core-D_8mkGpQ.js.map} +1 -1
- package/dist/client/chunks/{providers-D2xswCYu.js → providers-CgxXm6Ll.js} +2 -2
- package/dist/client/chunks/{providers-D2xswCYu.js.map → providers-CgxXm6Ll.js.map} +1 -1
- package/dist/client/chunks/{syntaxHighlighting-DAT9C6Ss.js → syntaxHighlighting-BQfjio-i.js} +2 -2
- package/dist/client/chunks/{syntaxHighlighting-DAT9C6Ss.js.map → syntaxHighlighting-BQfjio-i.js.map} +1 -1
- package/dist/client/chunks/{useDirtyStateTracking-CTS_m9mg.js → useDirtyStateTracking-Cu1HSjmo.js} +9 -9
- package/dist/client/chunks/{useDirtyStateTracking-CTS_m9mg.js.map → useDirtyStateTracking-Cu1HSjmo.js.map} +1 -1
- package/dist/client/chunks/{vendor-DfDLOfBe.js → vendor-AVsJ2ni0.js} +4 -4
- package/dist/client/chunks/{vendor-DfDLOfBe.js.map → vendor-AVsJ2ni0.js.map} +1 -1
- package/dist/client/components/AnalysisBuilder/AnalysisDisplayConfigPanel.d.ts +3 -1
- package/dist/client/components/DashboardPortletCard.d.ts +3 -2
- package/dist/client/components/FloatingEditToolbar.d.ts +3 -1
- package/dist/client/components/TextPortletModal.d.ts +12 -0
- package/dist/client/components.js +15 -352
- package/dist/client/components.js.map +1 -1
- package/dist/client/hooks/dashboard/layoutUtils.d.ts +7 -0
- package/dist/client/hooks/dashboard/useDashboardController.d.ts +53 -0
- package/dist/client/hooks/dashboard/useGridLayoutEngine.d.ts +10 -0
- package/dist/client/hooks/dashboard/useRowLayoutEngine.d.ts +18 -0
- package/dist/client/hooks/useDashboardHook.d.ts +7 -2
- package/dist/client/hooks.js +23 -23
- package/dist/client/index.js +8 -8
- package/dist/client/providers.js +1 -1
- package/dist/client/stores/dashboardStore.d.ts +14 -0
- package/dist/client/styles.css +1 -1
- package/dist/client/types.d.ts +3 -0
- package/dist/client/utils.js +6 -6
- package/dist/client-bundle-stats.html +1 -1
- package/package.json +1 -1
- package/dist/client/chunks/DashboardEditModal-BGDhxKg1.js +0 -9169
- package/dist/client/chunks/DashboardEditModal-BGDhxKg1.js.map +0 -1
- package/dist/client/chunks/chart-config-markdown-DZxdGNVQ.js.map +0 -1
- package/dist/client/chunks/chart-markdown-Cget3iEq.js +0 -257
- package/dist/client/chunks/chart-markdown-Cget3iEq.js.map +0 -1
- package/dist/client/chunks/charts-core-DAF1iT_h.js.map +0 -1
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { ResponsiveContainer as
|
|
1
|
+
import { jsx as l, jsxs as x } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as U, useContext as H, useRef as D, useState as T, useLayoutEffect as K, startTransition as V } from "react";
|
|
3
|
+
import { C as B } from "./providers-CgxXm6Ll.js";
|
|
4
|
+
import { ResponsiveContainer as I, Tooltip as z } from "recharts";
|
|
5
5
|
const G = {
|
|
6
6
|
sm: "dc:h-6 dc:w-6",
|
|
7
7
|
md: "dc:h-8 dc:w-8",
|
|
8
8
|
lg: "dc:h-12 dc:w-12"
|
|
9
9
|
};
|
|
10
|
-
function
|
|
10
|
+
function A({
|
|
11
11
|
size: e = "md",
|
|
12
12
|
className: t = ""
|
|
13
13
|
}) {
|
|
@@ -21,26 +21,23 @@ function I({
|
|
|
21
21
|
}
|
|
22
22
|
);
|
|
23
23
|
}
|
|
24
|
-
function
|
|
25
|
-
|
|
26
|
-
if (!e)
|
|
27
|
-
throw new Error("useCubeFieldLabel must be used within CubeProvider");
|
|
28
|
-
return U(() => e.getFieldLabel, [e.getFieldLabel]);
|
|
24
|
+
function k({ children: e, className: t = "" }) {
|
|
25
|
+
return /* @__PURE__ */ l("h3", { className: `dc:text-sm dc:font-semibold text-dc-primary dc:uppercase dc:tracking-wide ${t}`, children: e });
|
|
29
26
|
}
|
|
30
27
|
function ee(e) {
|
|
31
28
|
return e != null && !isNaN(Number(e));
|
|
32
29
|
}
|
|
33
|
-
function
|
|
30
|
+
function E(e) {
|
|
34
31
|
if (e == null) return null;
|
|
35
32
|
const t = typeof e == "string" ? parseFloat(e) : Number(e);
|
|
36
33
|
return isNaN(t) ? null : t;
|
|
37
34
|
}
|
|
38
|
-
function
|
|
35
|
+
function F(e) {
|
|
39
36
|
if (e == null) return "No data";
|
|
40
37
|
const t = typeof e == "number" ? e : parseFloat(e);
|
|
41
38
|
return isNaN(t) ? String(e) : Number.isInteger(t) ? t.toLocaleString() : parseFloat(t.toFixed(2)).toLocaleString();
|
|
42
39
|
}
|
|
43
|
-
function
|
|
40
|
+
function M(e, t, c) {
|
|
44
41
|
if (e == null)
|
|
45
42
|
return "No data";
|
|
46
43
|
const n = typeof e == "number" ? e : parseFloat(String(e));
|
|
@@ -50,58 +47,58 @@ function F(e, t, c) {
|
|
|
50
47
|
return n > 0 ? "∞" : "-∞";
|
|
51
48
|
const r = c || (typeof navigator < "u" ? navigator.language : "en-US");
|
|
52
49
|
if (!t)
|
|
53
|
-
return
|
|
54
|
-
const { unit: i, abbreviate: s = !0, decimals:
|
|
55
|
-
let u = n,
|
|
50
|
+
return F(e);
|
|
51
|
+
const { unit: i, abbreviate: s = !0, decimals: d, customPrefix: h, customSuffix: o } = t;
|
|
52
|
+
let u = n, f = "";
|
|
56
53
|
if (s) {
|
|
57
|
-
const
|
|
58
|
-
|
|
54
|
+
const a = Math.abs(n);
|
|
55
|
+
a >= 1e9 ? (u = n / 1e9, f = "B") : a >= 1e6 ? (u = n / 1e6, f = "M") : a >= 1e3 && (u = n / 1e3, f = "K");
|
|
59
56
|
}
|
|
60
|
-
const
|
|
57
|
+
const p = d !== void 0 ? d : Number.isInteger(u) ? 0 : 2;
|
|
61
58
|
switch (i) {
|
|
62
59
|
case "currency": {
|
|
63
|
-
const
|
|
64
|
-
if (s &&
|
|
60
|
+
const a = O(r);
|
|
61
|
+
if (s && f) {
|
|
65
62
|
const N = new Intl.NumberFormat(r, {
|
|
66
63
|
style: "currency",
|
|
67
|
-
currency:
|
|
68
|
-
minimumFractionDigits:
|
|
69
|
-
maximumFractionDigits:
|
|
70
|
-
}).format(u),
|
|
64
|
+
currency: a,
|
|
65
|
+
minimumFractionDigits: p,
|
|
66
|
+
maximumFractionDigits: p
|
|
67
|
+
}).format(u), R = new Intl.NumberFormat(r, {
|
|
71
68
|
style: "currency",
|
|
72
|
-
currency:
|
|
69
|
+
currency: a
|
|
73
70
|
}).formatToParts(u);
|
|
74
|
-
return
|
|
71
|
+
return R[R.length - 1]?.type === "currency" ? N.replace(/(\s*[^\d\s]+)$/, f + "$1") : N + f;
|
|
75
72
|
}
|
|
76
73
|
return new Intl.NumberFormat(r, {
|
|
77
74
|
style: "currency",
|
|
78
|
-
currency:
|
|
79
|
-
minimumFractionDigits:
|
|
80
|
-
maximumFractionDigits:
|
|
75
|
+
currency: a,
|
|
76
|
+
minimumFractionDigits: p,
|
|
77
|
+
maximumFractionDigits: p
|
|
81
78
|
}).format(u);
|
|
82
79
|
}
|
|
83
80
|
case "percent": {
|
|
84
|
-
const
|
|
81
|
+
const a = Math.abs(u) <= 1 && !s ? u * 100 : u;
|
|
85
82
|
return new Intl.NumberFormat(r, {
|
|
86
|
-
minimumFractionDigits:
|
|
87
|
-
maximumFractionDigits:
|
|
88
|
-
}).format(
|
|
83
|
+
minimumFractionDigits: p,
|
|
84
|
+
maximumFractionDigits: p
|
|
85
|
+
}).format(a) + f + "%";
|
|
89
86
|
}
|
|
90
87
|
case "custom": {
|
|
91
|
-
const
|
|
92
|
-
minimumFractionDigits:
|
|
93
|
-
maximumFractionDigits:
|
|
88
|
+
const a = h || "", N = o || "", R = new Intl.NumberFormat(r, {
|
|
89
|
+
minimumFractionDigits: p,
|
|
90
|
+
maximumFractionDigits: p
|
|
94
91
|
}).format(u);
|
|
95
|
-
return
|
|
92
|
+
return a + R + f + N;
|
|
96
93
|
}
|
|
97
94
|
default:
|
|
98
95
|
return new Intl.NumberFormat(r, {
|
|
99
|
-
minimumFractionDigits:
|
|
100
|
-
maximumFractionDigits:
|
|
101
|
-
}).format(u) +
|
|
96
|
+
minimumFractionDigits: p,
|
|
97
|
+
maximumFractionDigits: p
|
|
98
|
+
}).format(u) + f;
|
|
102
99
|
}
|
|
103
100
|
}
|
|
104
|
-
function
|
|
101
|
+
function O(e) {
|
|
105
102
|
const c = e.split("-")[1]?.toUpperCase();
|
|
106
103
|
return {
|
|
107
104
|
US: "USD",
|
|
@@ -149,15 +146,15 @@ function k(e) {
|
|
|
149
146
|
}[c] || "USD";
|
|
150
147
|
}
|
|
151
148
|
function te(e) {
|
|
152
|
-
return (t) =>
|
|
149
|
+
return (t) => M(t, e);
|
|
153
150
|
}
|
|
154
|
-
function
|
|
151
|
+
function W(e, t) {
|
|
155
152
|
return t[e] || e;
|
|
156
153
|
}
|
|
157
154
|
function re(e, t) {
|
|
158
|
-
return e.map((c) =>
|
|
155
|
+
return e.map((c) => W(c, t));
|
|
159
156
|
}
|
|
160
|
-
function
|
|
157
|
+
function P(e, t) {
|
|
161
158
|
if (!e) return String(e || "Unknown");
|
|
162
159
|
const c = String(e);
|
|
163
160
|
if (c.match(/^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}/)) {
|
|
@@ -166,39 +163,39 @@ function M(e, t) {
|
|
|
166
163
|
const r = new Date(n);
|
|
167
164
|
if (isNaN(r.getTime()))
|
|
168
165
|
return c;
|
|
169
|
-
const i = r.getUTCFullYear(), s = String(r.getUTCMonth() + 1).padStart(2, "0"),
|
|
166
|
+
const i = r.getUTCFullYear(), s = String(r.getUTCMonth() + 1).padStart(2, "0"), d = String(r.getUTCDate()).padStart(2, "0"), h = r.getUTCHours(), o = r.getUTCMinutes();
|
|
170
167
|
if (t)
|
|
171
168
|
switch (t.toLowerCase()) {
|
|
172
169
|
case "year":
|
|
173
170
|
return `${i}`;
|
|
174
171
|
case "quarter": {
|
|
175
|
-
const
|
|
176
|
-
return `${i}-Q${
|
|
172
|
+
const p = Math.floor(r.getUTCMonth() / 3) + 1;
|
|
173
|
+
return `${i}-Q${p}`;
|
|
177
174
|
}
|
|
178
175
|
case "month":
|
|
179
176
|
return `${i}-${s}`;
|
|
180
177
|
case "week":
|
|
181
|
-
return `${i}-${s}-${
|
|
178
|
+
return `${i}-${s}-${d}`;
|
|
182
179
|
case "day":
|
|
183
|
-
return `${i}-${s}-${
|
|
180
|
+
return `${i}-${s}-${d}`;
|
|
184
181
|
case "hour":
|
|
185
|
-
return `${i}-${s}-${
|
|
182
|
+
return `${i}-${s}-${d} ${String(h).padStart(2, "0")}:00`;
|
|
186
183
|
case "minute":
|
|
187
|
-
return `${i}-${s}-${
|
|
184
|
+
return `${i}-${s}-${d} ${String(h).padStart(2, "0")}:${String(o).padStart(2, "0")}`;
|
|
188
185
|
}
|
|
189
|
-
const u = r.getUTCSeconds(),
|
|
190
|
-
if (
|
|
186
|
+
const u = r.getUTCSeconds(), f = r.getUTCMilliseconds();
|
|
187
|
+
if (d === "01" && h === 0 && o === 0 && u === 0 && f === 0) {
|
|
191
188
|
if (s === "01" || s === "04" || s === "07" || s === "10") {
|
|
192
|
-
const
|
|
193
|
-
return `${i}-Q${
|
|
189
|
+
const p = Math.floor(r.getUTCMonth() / 3) + 1;
|
|
190
|
+
return `${i}-Q${p}`;
|
|
194
191
|
}
|
|
195
192
|
return `${i}-${s}`;
|
|
196
193
|
}
|
|
197
|
-
return
|
|
194
|
+
return h === 0 && o === 0 && u === 0 && f === 0 ? `${i}-${s}-${d}` : o === 0 && u === 0 && f === 0 ? `${i}-${s}-${d} ${String(h).padStart(2, "0")}:00` : `${i}-${s}-${d} ${String(h).padStart(2, "0")}:${String(o).padStart(2, "0")}`;
|
|
198
195
|
}
|
|
199
196
|
return c;
|
|
200
197
|
}
|
|
201
|
-
function
|
|
198
|
+
function L(e, t) {
|
|
202
199
|
try {
|
|
203
200
|
if (e?.timeDimensions) {
|
|
204
201
|
const n = e.timeDimensions.find((r) => t === r.dimension || t.startsWith(r.dimension.replace(".", "_")) || t === `${r.dimension}_${r.granularity}`);
|
|
@@ -216,253 +213,74 @@ function P(e, t) {
|
|
|
216
213
|
return;
|
|
217
214
|
}
|
|
218
215
|
}
|
|
219
|
-
function
|
|
216
|
+
function Y(e, t, c, n, r = (i) => i) {
|
|
220
217
|
if (!e || e.length === 0) return [];
|
|
221
|
-
const i =
|
|
218
|
+
const i = L(n, t);
|
|
222
219
|
return e.map((s) => {
|
|
223
|
-
const
|
|
224
|
-
name:
|
|
220
|
+
const d = {
|
|
221
|
+
name: P(s[t], i) || s[t] || "Unknown"
|
|
225
222
|
};
|
|
226
|
-
return c.forEach((
|
|
227
|
-
const
|
|
228
|
-
|
|
229
|
-
}),
|
|
223
|
+
return c.forEach((h) => {
|
|
224
|
+
const o = r(h);
|
|
225
|
+
d[o] = E(s[h]);
|
|
226
|
+
}), d;
|
|
230
227
|
});
|
|
231
228
|
}
|
|
232
229
|
function ne(e, t, c, n, r, i = (s) => s) {
|
|
233
230
|
if (!e || e.length === 0)
|
|
234
231
|
return { data: [], seriesKeys: [], hasDimensions: !1 };
|
|
235
|
-
const s = n || {},
|
|
232
|
+
const s = n || {}, d = [
|
|
236
233
|
...s.dimensions || [],
|
|
237
|
-
...s.timeDimensions?.map((
|
|
238
|
-
],
|
|
234
|
+
...s.timeDimensions?.map((a) => a.dimension) || []
|
|
235
|
+
], h = s.measures || [], o = c.filter((a) => h.includes(a)), u = (r || []).filter((a) => d.includes(a));
|
|
239
236
|
if (u.length > 0) {
|
|
240
|
-
const
|
|
241
|
-
e.forEach((
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
const
|
|
245
|
-
if (
|
|
246
|
-
const
|
|
247
|
-
|
|
248
|
-
} else
|
|
249
|
-
}), u.forEach((
|
|
250
|
-
const
|
|
251
|
-
if (
|
|
252
|
-
const
|
|
253
|
-
(
|
|
254
|
-
) ||
|
|
255
|
-
if (
|
|
256
|
-
const
|
|
257
|
-
if (
|
|
258
|
-
const
|
|
259
|
-
|
|
260
|
-
} else
|
|
237
|
+
const a = {};
|
|
238
|
+
e.forEach((b) => {
|
|
239
|
+
const g = L(n, t), m = P(b[t], g) || b[t] || "Unknown";
|
|
240
|
+
a[m] || (a[m] = { name: String(m) }), o.forEach((S) => {
|
|
241
|
+
const y = i(S), C = E(b[S]);
|
|
242
|
+
if (C !== null) {
|
|
243
|
+
const w = a[m][y];
|
|
244
|
+
a[m][y] = w == null ? C : w + C;
|
|
245
|
+
} else y in a[m] || (a[m][y] = null);
|
|
246
|
+
}), u.forEach((S) => {
|
|
247
|
+
const y = b[S];
|
|
248
|
+
if (y != null) {
|
|
249
|
+
const C = String(y), w = o[0] || h.find(
|
|
250
|
+
(v) => v.includes("totalCost") || v.includes("count") || v.includes("sum")
|
|
251
|
+
) || h[0];
|
|
252
|
+
if (w) {
|
|
253
|
+
const v = E(b[w]);
|
|
254
|
+
if (v !== null) {
|
|
255
|
+
const $ = a[m][C];
|
|
256
|
+
a[m][C] = $ == null ? v : $ + v;
|
|
257
|
+
} else C in a[m] || (a[m][C] = null);
|
|
261
258
|
}
|
|
262
259
|
}
|
|
263
260
|
});
|
|
264
261
|
});
|
|
265
|
-
const N = Object.values(
|
|
262
|
+
const N = Object.values(a), R = Array.from(new Set(
|
|
266
263
|
e.flatMap(
|
|
267
|
-
(
|
|
268
|
-
const
|
|
269
|
-
return
|
|
270
|
-
}).filter((
|
|
264
|
+
(b) => u.map((g) => {
|
|
265
|
+
const m = b[g];
|
|
266
|
+
return m != null ? String(m) : null;
|
|
267
|
+
}).filter((g) => g !== null)
|
|
271
268
|
)
|
|
272
269
|
));
|
|
273
270
|
return {
|
|
274
271
|
data: N,
|
|
275
|
-
seriesKeys:
|
|
272
|
+
seriesKeys: R,
|
|
276
273
|
hasDimensions: !0
|
|
277
274
|
};
|
|
278
275
|
}
|
|
279
|
-
const
|
|
276
|
+
const f = Y(e, t, c, n, i), p = c.map((a) => i(a));
|
|
280
277
|
return {
|
|
281
|
-
data:
|
|
282
|
-
seriesKeys:
|
|
278
|
+
data: f,
|
|
279
|
+
seriesKeys: p,
|
|
283
280
|
hasDimensions: !1
|
|
284
281
|
};
|
|
285
282
|
}
|
|
286
|
-
|
|
287
|
-
"#3b82f6",
|
|
288
|
-
// blue
|
|
289
|
-
"#10b981",
|
|
290
|
-
// green
|
|
291
|
-
"#f59e0b",
|
|
292
|
-
// yellow
|
|
293
|
-
"#ef4444",
|
|
294
|
-
// red
|
|
295
|
-
"#8b5cf6",
|
|
296
|
-
// purple
|
|
297
|
-
"#f97316",
|
|
298
|
-
// orange
|
|
299
|
-
"#06b6d4",
|
|
300
|
-
// cyan
|
|
301
|
-
"#84cc16"
|
|
302
|
-
// lime
|
|
303
|
-
], se = [
|
|
304
|
-
"#440154",
|
|
305
|
-
// dark purple
|
|
306
|
-
"#414487",
|
|
307
|
-
// purple-blue
|
|
308
|
-
"#2a788e",
|
|
309
|
-
// teal
|
|
310
|
-
"#22a884",
|
|
311
|
-
// green-teal
|
|
312
|
-
"#7ad151",
|
|
313
|
-
// green
|
|
314
|
-
"#fde725"
|
|
315
|
-
// yellow
|
|
316
|
-
], ie = "#10b981", ae = "#ef4444", oe = {
|
|
317
|
-
top: 5,
|
|
318
|
-
right: 30,
|
|
319
|
-
left: 20,
|
|
320
|
-
bottom: 5
|
|
321
|
-
}, de = {
|
|
322
|
-
top: 5,
|
|
323
|
-
right: 30,
|
|
324
|
-
left: 20,
|
|
325
|
-
bottom: 60
|
|
326
|
-
// Extra space for rotated labels
|
|
327
|
-
};
|
|
328
|
-
function le({ children: e, height: t = "100%" }) {
|
|
329
|
-
const c = H(null), [n, r] = E(!1), [i, s] = E({ width: 0, height: 0 });
|
|
330
|
-
K(() => {
|
|
331
|
-
let a = !0, m = null;
|
|
332
|
-
const d = () => {
|
|
333
|
-
if (!a || !c.current) return;
|
|
334
|
-
const u = c.current.getBoundingClientRect(), h = Math.max(c.current.clientWidth, u.width), f = Math.max(c.current.clientHeight, u.height);
|
|
335
|
-
h > 0 && f > 0 && (s({ width: h, height: f }), r(!0));
|
|
336
|
-
};
|
|
337
|
-
return m = new ResizeObserver((u) => {
|
|
338
|
-
for (const h of u) {
|
|
339
|
-
const { width: f, height: o } = h.contentRect;
|
|
340
|
-
f > 0 && o > 0 && (s({ width: f, height: o }), n || r(!0));
|
|
341
|
-
}
|
|
342
|
-
}), c.current && (m.observe(c.current), d()), () => {
|
|
343
|
-
a = !1, m?.disconnect();
|
|
344
|
-
};
|
|
345
|
-
}, [n]);
|
|
346
|
-
try {
|
|
347
|
-
if (t === "100%")
|
|
348
|
-
return /* @__PURE__ */ l(
|
|
349
|
-
"div",
|
|
350
|
-
{
|
|
351
|
-
ref: c,
|
|
352
|
-
className: "dc:w-full dc:h-full dc:flex-1 dc:flex dc:flex-col dc:relative",
|
|
353
|
-
style: { minHeight: "250px", minWidth: "100px", overflow: "hidden", userSelect: "none" },
|
|
354
|
-
children: n && i.width > 0 && i.height > 0 ? /* @__PURE__ */ l(
|
|
355
|
-
T,
|
|
356
|
-
{
|
|
357
|
-
width: i.width,
|
|
358
|
-
height: i.height - 16,
|
|
359
|
-
debounce: 100,
|
|
360
|
-
style: { marginTop: "16px" },
|
|
361
|
-
children: e
|
|
362
|
-
}
|
|
363
|
-
) : /* @__PURE__ */ l("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full dc:h-full", children: /* @__PURE__ */ l(I, { size: "sm" }) })
|
|
364
|
-
}
|
|
365
|
-
);
|
|
366
|
-
const a = {
|
|
367
|
-
height: typeof t == "number" ? `${t}px` : t,
|
|
368
|
-
width: "100%",
|
|
369
|
-
minHeight: "200px",
|
|
370
|
-
minWidth: "100px",
|
|
371
|
-
userSelect: "none"
|
|
372
|
-
};
|
|
373
|
-
return /* @__PURE__ */ l(
|
|
374
|
-
"div",
|
|
375
|
-
{
|
|
376
|
-
ref: c,
|
|
377
|
-
className: "dc:w-full dc:flex dc:flex-col dc:relative",
|
|
378
|
-
style: { ...a, overflow: "hidden" },
|
|
379
|
-
children: n && i.width > 0 && i.height > 0 ? /* @__PURE__ */ l(
|
|
380
|
-
T,
|
|
381
|
-
{
|
|
382
|
-
width: i.width,
|
|
383
|
-
height: i.height - 16,
|
|
384
|
-
debounce: 100,
|
|
385
|
-
style: { marginTop: "16px" },
|
|
386
|
-
children: e
|
|
387
|
-
}
|
|
388
|
-
) : /* @__PURE__ */ l("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full dc:h-full", children: /* @__PURE__ */ l(I, { size: "sm" }) })
|
|
389
|
-
}
|
|
390
|
-
);
|
|
391
|
-
} catch (a) {
|
|
392
|
-
return /* @__PURE__ */ p(
|
|
393
|
-
"div",
|
|
394
|
-
{
|
|
395
|
-
className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full dc:h-full dc:p-4 dc:text-center dc:border dc:border-dashed dc:rounded-lg",
|
|
396
|
-
style: { height: t, borderColor: "var(--dc-border)", backgroundColor: "var(--dc-surface)" },
|
|
397
|
-
children: [
|
|
398
|
-
/* @__PURE__ */ l("div", { className: "dc:text-sm dc:font-semibold dc:mb-1 text-dc-text-muted", children: "Unable to display chart" }),
|
|
399
|
-
/* @__PURE__ */ l("div", { className: "dc:text-xs text-dc-text-secondary", children: a instanceof Error ? a.message : "Failed to create responsive container" })
|
|
400
|
-
]
|
|
401
|
-
}
|
|
402
|
-
);
|
|
403
|
-
}
|
|
404
|
-
}
|
|
405
|
-
const Y = (e, t) => e == null ? ["No data", t] : [A(e), t];
|
|
406
|
-
function ue({ formatter: e, labelFormatter: t }) {
|
|
407
|
-
return /* @__PURE__ */ l(
|
|
408
|
-
B,
|
|
409
|
-
{
|
|
410
|
-
formatter: e || Y,
|
|
411
|
-
labelFormatter: t,
|
|
412
|
-
contentStyle: {
|
|
413
|
-
backgroundColor: "white",
|
|
414
|
-
border: "1px solid #e5e7eb",
|
|
415
|
-
borderRadius: "0.5rem",
|
|
416
|
-
fontSize: "0.875rem",
|
|
417
|
-
color: "#1f2937",
|
|
418
|
-
boxShadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
|
|
419
|
-
padding: "8px 12px"
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
);
|
|
423
|
-
}
|
|
424
|
-
function me(e) {
|
|
425
|
-
if (!e || typeof e != "string")
|
|
426
|
-
return [];
|
|
427
|
-
const t = e.trim();
|
|
428
|
-
if (!t)
|
|
429
|
-
return [];
|
|
430
|
-
try {
|
|
431
|
-
const c = t.split(",").map((n) => n.trim()).filter((n) => n !== "").map((n) => {
|
|
432
|
-
const r = parseFloat(n);
|
|
433
|
-
if (isNaN(r))
|
|
434
|
-
throw new Error(`Invalid numeric value: ${n}`);
|
|
435
|
-
return r;
|
|
436
|
-
});
|
|
437
|
-
return c.length > 0 ? c : [];
|
|
438
|
-
} catch (c) {
|
|
439
|
-
return console.warn("Failed to parse target values:", c), [];
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
function fe(e, t) {
|
|
443
|
-
if (e.length === 0 || t <= 0)
|
|
444
|
-
return [];
|
|
445
|
-
if (e.length === 1)
|
|
446
|
-
return new Array(t).fill(e[0]);
|
|
447
|
-
const c = [], n = Math.floor(t / e.length), r = t % e.length;
|
|
448
|
-
let i = 0;
|
|
449
|
-
for (let s = 0; s < e.length; s++) {
|
|
450
|
-
const a = n + (s < r ? 1 : 0);
|
|
451
|
-
for (let m = 0; m < a; m++)
|
|
452
|
-
c[i++] = e[s];
|
|
453
|
-
}
|
|
454
|
-
return c;
|
|
455
|
-
}
|
|
456
|
-
function he(e, t) {
|
|
457
|
-
return t === 0 ? e === 0 ? 0 : e > 0 ? 100 : -100 : (e - t) / t * 100;
|
|
458
|
-
}
|
|
459
|
-
function be(e, t = 1) {
|
|
460
|
-
return `${e >= 0 ? "+" : ""}${e.toFixed(t)}%`;
|
|
461
|
-
}
|
|
462
|
-
function Z({ children: e, className: t = "" }) {
|
|
463
|
-
return /* @__PURE__ */ l("h3", { className: `dc:text-sm dc:font-semibold text-dc-primary dc:uppercase dc:tracking-wide ${t}`, children: e });
|
|
464
|
-
}
|
|
465
|
-
function z() {
|
|
283
|
+
function Z() {
|
|
466
284
|
const e = typeof navigator < "u" ? navigator.language : "en-US";
|
|
467
285
|
return new Intl.NumberFormat(e, {
|
|
468
286
|
style: "currency",
|
|
@@ -517,84 +335,84 @@ function _(e) {
|
|
|
517
335
|
TR: "TRY"
|
|
518
336
|
}[c] || "USD";
|
|
519
337
|
}
|
|
520
|
-
function
|
|
338
|
+
function ce({
|
|
521
339
|
value: e,
|
|
522
340
|
onChange: t,
|
|
523
341
|
axisLabel: c,
|
|
524
342
|
previewValue: n = 125e4
|
|
525
343
|
}) {
|
|
526
|
-
const r = U(() => e || {}, [e]), i = U(() =>
|
|
527
|
-
t({ ...r, ...
|
|
528
|
-
},
|
|
344
|
+
const r = U(() => e || {}, [e]), i = U(() => Z(), []), s = U(() => M(n, r), [n, r]), d = (o) => {
|
|
345
|
+
t({ ...r, ...o });
|
|
346
|
+
}, h = [
|
|
529
347
|
{ value: "currency", label: i },
|
|
530
348
|
{ value: "percent", label: "%" },
|
|
531
349
|
{ value: "number", label: "#" },
|
|
532
350
|
{ value: "custom", label: "Custom" }
|
|
533
351
|
];
|
|
534
|
-
return /* @__PURE__ */
|
|
535
|
-
/* @__PURE__ */ l(
|
|
536
|
-
/* @__PURE__ */
|
|
352
|
+
return /* @__PURE__ */ x("div", { className: "dc:space-y-3 dc:pb-4", children: [
|
|
353
|
+
/* @__PURE__ */ l(k, { children: c }),
|
|
354
|
+
/* @__PURE__ */ x("div", { className: "dc:space-y-1", children: [
|
|
537
355
|
/* @__PURE__ */ l("label", { className: "dc:text-xs text-dc-text-secondary", children: "Label" }),
|
|
538
356
|
/* @__PURE__ */ l(
|
|
539
357
|
"input",
|
|
540
358
|
{
|
|
541
359
|
type: "text",
|
|
542
360
|
value: r.label || "",
|
|
543
|
-
onChange: (
|
|
361
|
+
onChange: (o) => d({ label: o.target.value || void 0 }),
|
|
544
362
|
placeholder: "Auto-generated label",
|
|
545
363
|
className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
|
|
546
364
|
}
|
|
547
365
|
)
|
|
548
366
|
] }),
|
|
549
|
-
/* @__PURE__ */
|
|
367
|
+
/* @__PURE__ */ x("div", { className: "dc:space-y-1", children: [
|
|
550
368
|
/* @__PURE__ */ l("label", { className: "dc:text-xs text-dc-text-secondary", children: "Unit" }),
|
|
551
|
-
/* @__PURE__ */ l("div", { className: "dc:flex dc:border border-dc-border dc:rounded-sm dc:overflow-hidden", children:
|
|
369
|
+
/* @__PURE__ */ l("div", { className: "dc:flex dc:border border-dc-border dc:rounded-sm dc:overflow-hidden", children: h.map((o) => /* @__PURE__ */ l(
|
|
552
370
|
"button",
|
|
553
371
|
{
|
|
554
372
|
type: "button",
|
|
555
|
-
onClick: () =>
|
|
556
|
-
className: `dc:flex-1 dc:px-2 dc:py-1.5 dc:text-sm dc:font-medium dc:transition-colors ${r.unit ===
|
|
557
|
-
children:
|
|
373
|
+
onClick: () => d({ unit: o.value }),
|
|
374
|
+
className: `dc:flex-1 dc:px-2 dc:py-1.5 dc:text-sm dc:font-medium dc:transition-colors ${r.unit === o.value ? "bg-dc-primary text-white" : "bg-dc-surface text-dc-text hover:bg-dc-border"}`,
|
|
375
|
+
children: o.label
|
|
558
376
|
},
|
|
559
|
-
|
|
377
|
+
o.value
|
|
560
378
|
)) })
|
|
561
379
|
] }),
|
|
562
|
-
r.unit === "custom" && /* @__PURE__ */
|
|
563
|
-
/* @__PURE__ */
|
|
380
|
+
r.unit === "custom" && /* @__PURE__ */ x("div", { className: "dc:flex dc:gap-2", children: [
|
|
381
|
+
/* @__PURE__ */ x("div", { className: "dc:flex-1 dc:space-y-1", children: [
|
|
564
382
|
/* @__PURE__ */ l("label", { className: "dc:text-xs text-dc-text-secondary", children: "Prefix" }),
|
|
565
383
|
/* @__PURE__ */ l(
|
|
566
384
|
"input",
|
|
567
385
|
{
|
|
568
386
|
type: "text",
|
|
569
387
|
value: r.customPrefix || "",
|
|
570
|
-
onChange: (
|
|
388
|
+
onChange: (o) => d({ customPrefix: o.target.value || void 0 }),
|
|
571
389
|
placeholder: "e.g., $",
|
|
572
390
|
className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
|
|
573
391
|
}
|
|
574
392
|
)
|
|
575
393
|
] }),
|
|
576
|
-
/* @__PURE__ */
|
|
394
|
+
/* @__PURE__ */ x("div", { className: "dc:flex-1 dc:space-y-1", children: [
|
|
577
395
|
/* @__PURE__ */ l("label", { className: "dc:text-xs text-dc-text-secondary", children: "Suffix" }),
|
|
578
396
|
/* @__PURE__ */ l(
|
|
579
397
|
"input",
|
|
580
398
|
{
|
|
581
399
|
type: "text",
|
|
582
400
|
value: r.customSuffix || "",
|
|
583
|
-
onChange: (
|
|
401
|
+
onChange: (o) => d({ customSuffix: o.target.value || void 0 }),
|
|
584
402
|
placeholder: "e.g., units",
|
|
585
403
|
className: "dc:w-full dc:px-2 dc:py-1 dc:text-sm dc:border border-dc-border dc:rounded-sm focus:ring-dc-accent focus:border-dc-accent bg-dc-surface text-dc-text"
|
|
586
404
|
}
|
|
587
405
|
)
|
|
588
406
|
] })
|
|
589
407
|
] }),
|
|
590
|
-
/* @__PURE__ */
|
|
408
|
+
/* @__PURE__ */ x("div", { className: "dc:space-y-1", children: [
|
|
591
409
|
/* @__PURE__ */ l("label", { className: "dc:text-xs text-dc-text-secondary", children: "Abbreviation" }),
|
|
592
|
-
/* @__PURE__ */
|
|
410
|
+
/* @__PURE__ */ x("div", { className: "dc:flex dc:border border-dc-border dc:rounded-sm dc:overflow-hidden", children: [
|
|
593
411
|
/* @__PURE__ */ l(
|
|
594
412
|
"button",
|
|
595
413
|
{
|
|
596
414
|
type: "button",
|
|
597
|
-
onClick: () =>
|
|
415
|
+
onClick: () => d({ abbreviate: !0 }),
|
|
598
416
|
className: `dc:flex-1 dc:px-3 dc:py-1.5 dc:text-sm dc:font-medium dc:transition-colors ${r.abbreviate !== !1 ? "bg-dc-primary text-white" : "bg-dc-surface text-dc-text hover:bg-dc-border"}`,
|
|
599
417
|
children: "Yes"
|
|
600
418
|
}
|
|
@@ -603,23 +421,23 @@ function pe({
|
|
|
603
421
|
"button",
|
|
604
422
|
{
|
|
605
423
|
type: "button",
|
|
606
|
-
onClick: () =>
|
|
424
|
+
onClick: () => d({ abbreviate: !1 }),
|
|
607
425
|
className: `dc:flex-1 dc:px-3 dc:py-1.5 dc:text-sm dc:font-medium dc:transition-colors ${r.abbreviate === !1 ? "bg-dc-primary text-white" : "bg-dc-surface text-dc-text hover:bg-dc-border"}`,
|
|
608
426
|
children: "No"
|
|
609
427
|
}
|
|
610
428
|
)
|
|
611
429
|
] })
|
|
612
430
|
] }),
|
|
613
|
-
/* @__PURE__ */
|
|
431
|
+
/* @__PURE__ */ x("div", { className: "dc:space-y-1", children: [
|
|
614
432
|
/* @__PURE__ */ l("label", { className: "dc:text-xs text-dc-text-secondary", children: "Decimals" }),
|
|
615
|
-
/* @__PURE__ */
|
|
433
|
+
/* @__PURE__ */ x("div", { className: "dc:flex dc:gap-2", children: [
|
|
616
434
|
/* @__PURE__ */ l(
|
|
617
435
|
"button",
|
|
618
436
|
{
|
|
619
437
|
type: "button",
|
|
620
438
|
onClick: () => {
|
|
621
|
-
const
|
|
622
|
-
|
|
439
|
+
const o = r.decimals ?? 2;
|
|
440
|
+
o > 0 && d({ decimals: o - 1 });
|
|
623
441
|
},
|
|
624
442
|
disabled: (r.decimals ?? 2) <= 0,
|
|
625
443
|
className: "dc:flex-1 dc:px-3 dc:py-2 dc:text-sm dc:border border-dc-border dc:rounded-sm bg-dc-surface text-dc-text hover:bg-dc-border dc:disabled:opacity-40 dc:disabled:cursor-not-allowed dc:transition-colors",
|
|
@@ -631,8 +449,8 @@ function pe({
|
|
|
631
449
|
{
|
|
632
450
|
type: "button",
|
|
633
451
|
onClick: () => {
|
|
634
|
-
const
|
|
635
|
-
|
|
452
|
+
const o = r.decimals ?? 2;
|
|
453
|
+
o < 4 && d({ decimals: o + 1 });
|
|
636
454
|
},
|
|
637
455
|
disabled: (r.decimals ?? 2) >= 4,
|
|
638
456
|
className: "dc:flex-1 dc:px-3 dc:py-2 dc:text-sm dc:border border-dc-border dc:rounded-sm bg-dc-surface text-dc-text hover:bg-dc-border dc:disabled:opacity-40 dc:disabled:cursor-not-allowed dc:transition-colors",
|
|
@@ -641,39 +459,233 @@ function pe({
|
|
|
641
459
|
)
|
|
642
460
|
] })
|
|
643
461
|
] }),
|
|
644
|
-
/* @__PURE__ */
|
|
462
|
+
/* @__PURE__ */ x("div", { className: "dc:space-y-1", children: [
|
|
645
463
|
/* @__PURE__ */ l("label", { className: "dc:text-xs text-dc-text-secondary", children: "Preview" }),
|
|
646
464
|
/* @__PURE__ */ l("div", { className: "dc:text-sm dc:font-mono text-dc-text", children: s })
|
|
647
465
|
] })
|
|
648
466
|
] });
|
|
649
467
|
}
|
|
468
|
+
function se() {
|
|
469
|
+
const e = H(B);
|
|
470
|
+
if (!e)
|
|
471
|
+
throw new Error("useCubeFieldLabel must be used within CubeProvider");
|
|
472
|
+
return U(() => e.getFieldLabel, [e.getFieldLabel]);
|
|
473
|
+
}
|
|
474
|
+
const ie = [
|
|
475
|
+
"#3b82f6",
|
|
476
|
+
// blue
|
|
477
|
+
"#10b981",
|
|
478
|
+
// green
|
|
479
|
+
"#f59e0b",
|
|
480
|
+
// yellow
|
|
481
|
+
"#ef4444",
|
|
482
|
+
// red
|
|
483
|
+
"#8b5cf6",
|
|
484
|
+
// purple
|
|
485
|
+
"#f97316",
|
|
486
|
+
// orange
|
|
487
|
+
"#06b6d4",
|
|
488
|
+
// cyan
|
|
489
|
+
"#84cc16"
|
|
490
|
+
// lime
|
|
491
|
+
], oe = [
|
|
492
|
+
"#440154",
|
|
493
|
+
// dark purple
|
|
494
|
+
"#414487",
|
|
495
|
+
// purple-blue
|
|
496
|
+
"#2a788e",
|
|
497
|
+
// teal
|
|
498
|
+
"#22a884",
|
|
499
|
+
// green-teal
|
|
500
|
+
"#7ad151",
|
|
501
|
+
// green
|
|
502
|
+
"#fde725"
|
|
503
|
+
// yellow
|
|
504
|
+
], ae = "#10b981", de = "#ef4444", le = {
|
|
505
|
+
top: 5,
|
|
506
|
+
right: 30,
|
|
507
|
+
left: 20,
|
|
508
|
+
bottom: 5
|
|
509
|
+
}, ue = {
|
|
510
|
+
top: 5,
|
|
511
|
+
right: 30,
|
|
512
|
+
left: 20,
|
|
513
|
+
bottom: 60
|
|
514
|
+
// Extra space for rotated labels
|
|
515
|
+
};
|
|
516
|
+
function me({ children: e, height: t = "100%" }) {
|
|
517
|
+
const c = D(null), [n, r] = T(!1), [i, s] = T({ width: 0, height: 0 }), d = D({ width: 0, height: 0 }), h = D(!1), o = D(null), u = D(null);
|
|
518
|
+
K(() => {
|
|
519
|
+
let f = !0, p = null;
|
|
520
|
+
const a = () => {
|
|
521
|
+
if (u.current = null, !f) return;
|
|
522
|
+
const b = o.current;
|
|
523
|
+
if (o.current = null, !b) return;
|
|
524
|
+
const g = Math.round(b.width), m = Math.round(b.height);
|
|
525
|
+
if (g <= 0 || m <= 0) return;
|
|
526
|
+
const S = d.current.width !== g || d.current.height !== m, y = !h.current;
|
|
527
|
+
!S && !y || (d.current = { width: g, height: m }, h.current = !0, V(() => {
|
|
528
|
+
S && s({ width: g, height: m }), y && r(!0);
|
|
529
|
+
}));
|
|
530
|
+
}, N = (b, g) => {
|
|
531
|
+
o.current = { width: b, height: g }, u.current === null && (u.current = requestAnimationFrame(a));
|
|
532
|
+
}, R = () => {
|
|
533
|
+
if (!f || !c.current) return;
|
|
534
|
+
const b = c.current.getBoundingClientRect(), g = Math.max(c.current.clientWidth, b.width), m = Math.max(c.current.clientHeight, b.height);
|
|
535
|
+
g > 0 && m > 0 && N(g, m);
|
|
536
|
+
};
|
|
537
|
+
return p = new ResizeObserver((b) => {
|
|
538
|
+
for (const g of b) {
|
|
539
|
+
const { width: m, height: S } = g.contentRect;
|
|
540
|
+
m > 0 && S > 0 && N(m, S);
|
|
541
|
+
}
|
|
542
|
+
}), c.current && (p.observe(c.current), R()), () => {
|
|
543
|
+
f = !1, u.current !== null && (cancelAnimationFrame(u.current), u.current = null), p?.disconnect();
|
|
544
|
+
};
|
|
545
|
+
}, []);
|
|
546
|
+
try {
|
|
547
|
+
if (t === "100%")
|
|
548
|
+
return /* @__PURE__ */ l(
|
|
549
|
+
"div",
|
|
550
|
+
{
|
|
551
|
+
ref: c,
|
|
552
|
+
className: "dc:w-full dc:h-full dc:flex-1 dc:flex dc:flex-col dc:relative",
|
|
553
|
+
style: { minHeight: "250px", minWidth: "100px", overflow: "hidden", userSelect: "none" },
|
|
554
|
+
children: n && i.width > 0 && i.height > 0 ? /* @__PURE__ */ l(
|
|
555
|
+
I,
|
|
556
|
+
{
|
|
557
|
+
width: i.width,
|
|
558
|
+
height: i.height - 16,
|
|
559
|
+
debounce: 100,
|
|
560
|
+
style: { marginTop: "16px" },
|
|
561
|
+
children: e
|
|
562
|
+
}
|
|
563
|
+
) : /* @__PURE__ */ l("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full dc:h-full", children: /* @__PURE__ */ l(A, { size: "sm" }) })
|
|
564
|
+
}
|
|
565
|
+
);
|
|
566
|
+
const f = {
|
|
567
|
+
height: typeof t == "number" ? `${t}px` : t,
|
|
568
|
+
width: "100%",
|
|
569
|
+
minHeight: "200px",
|
|
570
|
+
minWidth: "100px",
|
|
571
|
+
userSelect: "none"
|
|
572
|
+
};
|
|
573
|
+
return /* @__PURE__ */ l(
|
|
574
|
+
"div",
|
|
575
|
+
{
|
|
576
|
+
ref: c,
|
|
577
|
+
className: "dc:w-full dc:flex dc:flex-col dc:relative",
|
|
578
|
+
style: { ...f, overflow: "hidden" },
|
|
579
|
+
children: n && i.width > 0 && i.height > 0 ? /* @__PURE__ */ l(
|
|
580
|
+
I,
|
|
581
|
+
{
|
|
582
|
+
width: i.width,
|
|
583
|
+
height: i.height - 16,
|
|
584
|
+
debounce: 100,
|
|
585
|
+
style: { marginTop: "16px" },
|
|
586
|
+
children: e
|
|
587
|
+
}
|
|
588
|
+
) : /* @__PURE__ */ l("div", { className: "dc:flex dc:items-center dc:justify-center dc:w-full dc:h-full", children: /* @__PURE__ */ l(A, { size: "sm" }) })
|
|
589
|
+
}
|
|
590
|
+
);
|
|
591
|
+
} catch (f) {
|
|
592
|
+
return /* @__PURE__ */ x(
|
|
593
|
+
"div",
|
|
594
|
+
{
|
|
595
|
+
className: "dc:flex dc:flex-col dc:items-center dc:justify-center dc:w-full dc:h-full dc:p-4 dc:text-center dc:border dc:border-dashed dc:rounded-lg",
|
|
596
|
+
style: { height: t, borderColor: "var(--dc-border)", backgroundColor: "var(--dc-surface)" },
|
|
597
|
+
children: [
|
|
598
|
+
/* @__PURE__ */ l("div", { className: "dc:text-sm dc:font-semibold dc:mb-1 text-dc-text-muted", children: "Unable to display chart" }),
|
|
599
|
+
/* @__PURE__ */ l("div", { className: "dc:text-xs text-dc-text-secondary", children: f instanceof Error ? f.message : "Failed to create responsive container" })
|
|
600
|
+
]
|
|
601
|
+
}
|
|
602
|
+
);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
const j = (e, t) => e == null ? ["No data", t] : [F(e), t];
|
|
606
|
+
function fe({ formatter: e, labelFormatter: t }) {
|
|
607
|
+
return /* @__PURE__ */ l(
|
|
608
|
+
z,
|
|
609
|
+
{
|
|
610
|
+
formatter: e || j,
|
|
611
|
+
labelFormatter: t,
|
|
612
|
+
contentStyle: {
|
|
613
|
+
backgroundColor: "white",
|
|
614
|
+
border: "1px solid #e5e7eb",
|
|
615
|
+
borderRadius: "0.5rem",
|
|
616
|
+
fontSize: "0.875rem",
|
|
617
|
+
color: "#1f2937",
|
|
618
|
+
boxShadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
|
|
619
|
+
padding: "8px 12px"
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
);
|
|
623
|
+
}
|
|
624
|
+
function he(e) {
|
|
625
|
+
if (!e || typeof e != "string")
|
|
626
|
+
return [];
|
|
627
|
+
const t = e.trim();
|
|
628
|
+
if (!t)
|
|
629
|
+
return [];
|
|
630
|
+
try {
|
|
631
|
+
const c = t.split(",").map((n) => n.trim()).filter((n) => n !== "").map((n) => {
|
|
632
|
+
const r = parseFloat(n);
|
|
633
|
+
if (isNaN(r))
|
|
634
|
+
throw new Error(`Invalid numeric value: ${n}`);
|
|
635
|
+
return r;
|
|
636
|
+
});
|
|
637
|
+
return c.length > 0 ? c : [];
|
|
638
|
+
} catch (c) {
|
|
639
|
+
return console.warn("Failed to parse target values:", c), [];
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
function pe(e, t) {
|
|
643
|
+
if (e.length === 0 || t <= 0)
|
|
644
|
+
return [];
|
|
645
|
+
if (e.length === 1)
|
|
646
|
+
return new Array(t).fill(e[0]);
|
|
647
|
+
const c = [], n = Math.floor(t / e.length), r = t % e.length;
|
|
648
|
+
let i = 0;
|
|
649
|
+
for (let s = 0; s < e.length; s++) {
|
|
650
|
+
const d = n + (s < r ? 1 : 0);
|
|
651
|
+
for (let h = 0; h < d; h++)
|
|
652
|
+
c[i++] = e[s];
|
|
653
|
+
}
|
|
654
|
+
return c;
|
|
655
|
+
}
|
|
656
|
+
function be(e, t) {
|
|
657
|
+
return t === 0 ? e === 0 ? 0 : e > 0 ? 100 : -100 : (e - t) / t * 100;
|
|
658
|
+
}
|
|
659
|
+
function ge(e, t = 1) {
|
|
660
|
+
return `${e >= 0 ? "+" : ""}${e.toFixed(t)}%`;
|
|
661
|
+
}
|
|
650
662
|
export {
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
663
|
+
ce as A,
|
|
664
|
+
le as C,
|
|
665
|
+
A as L,
|
|
666
|
+
de as N,
|
|
667
|
+
ae as P,
|
|
668
|
+
ue as R,
|
|
669
|
+
k as S,
|
|
670
|
+
me as a,
|
|
671
|
+
fe as b,
|
|
672
|
+
ie as c,
|
|
673
|
+
P as d,
|
|
674
|
+
E as e,
|
|
675
|
+
M as f,
|
|
676
|
+
L as g,
|
|
677
|
+
oe as h,
|
|
666
678
|
ee as i,
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
679
|
+
be as j,
|
|
680
|
+
ge as k,
|
|
681
|
+
F as l,
|
|
670
682
|
te as m,
|
|
671
|
-
|
|
683
|
+
W as n,
|
|
672
684
|
re as o,
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
685
|
+
he as p,
|
|
686
|
+
Y as q,
|
|
687
|
+
pe as s,
|
|
676
688
|
ne as t,
|
|
677
|
-
|
|
689
|
+
se as u
|
|
678
690
|
};
|
|
679
|
-
//# sourceMappingURL=charts-core-
|
|
691
|
+
//# sourceMappingURL=charts-core-DmGfleFz.js.map
|