@validationcloud/fractal-ui 1.59.0 → 1.60.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/charts.d.ts CHANGED
@@ -7,3 +7,5 @@ export { MavrikChart, type MavrikChartProps } from './components/echarts-rendere
7
7
  export { MAVRIK_THEME, MAVRIK_THEME_HORIZONTAL, selectMavrikTheme, type MavrikTheme, } from './components/echarts-renderer/mavrik-theme';
8
8
  export { hasHorizontalBars } from './components/echarts-renderer/detect-horizontal-bars';
9
9
  export { sanitizeChartOptionsForStaticRendering } from './components/echarts-renderer/sanitize-chart-options-for-static-rendering';
10
+ export { FormatterToken, isFormatterToken } from './components/echarts-renderer/formatters/formatter-tokens';
11
+ export { replaceFormatterTokens } from './components/echarts-renderer/formatters/replace-formatter-tokens';
package/dist/charts.js CHANGED
@@ -1,21 +1,26 @@
1
1
  import { EChartsRenderer as e } from "./components/echarts-renderer/echarts-renderer.js";
2
2
  import { isChartTheme as a } from "./components/echarts-renderer/chart-theme.js";
3
- import { EChartsChartOption as i, isEChartsChartOption as s } from "./components/echarts-renderer/echarts-chart-option.js";
4
- import { useChartInstance as m } from "./components/echarts-renderer/use-chart-instance.js";
5
- import { MavrikChart as C } from "./components/echarts-renderer/mavrik-chart.js";
6
- import { MAVRIK_THEME as x, MAVRIK_THEME_HORIZONTAL as E, selectMavrikTheme as M } from "./components/echarts-renderer/mavrik-theme.js";
7
- import { hasHorizontalBars as R } from "./components/echarts-renderer/detect-horizontal-bars.js";
8
- import { sanitizeChartOptionsForStaticRendering as H } from "./components/echarts-renderer/sanitize-chart-options-for-static-rendering.js";
3
+ import { EChartsChartOption as p, isEChartsChartOption as s } from "./components/echarts-renderer/echarts-chart-option.js";
4
+ import { useChartInstance as n } from "./components/echarts-renderer/use-chart-instance.js";
5
+ import { MavrikChart as f } from "./components/echarts-renderer/mavrik-chart.js";
6
+ import { MAVRIK_THEME as C, MAVRIK_THEME_HORIZONTAL as T, selectMavrikTheme as E } from "./components/echarts-renderer/mavrik-theme.js";
7
+ import { hasHorizontalBars as k } from "./components/echarts-renderer/detect-horizontal-bars.js";
8
+ import { sanitizeChartOptionsForStaticRendering as R } from "./components/echarts-renderer/sanitize-chart-options-for-static-rendering.js";
9
+ import { FormatterToken as F, isFormatterToken as H } from "./components/echarts-renderer/formatters/formatter-tokens.js";
10
+ import { replaceFormatterTokens as l } from "./components/echarts-renderer/formatters/replace-formatter-tokens.js";
9
11
  export {
10
- i as EChartsChartOption,
12
+ p as EChartsChartOption,
11
13
  e as EChartsRenderer,
12
- x as MAVRIK_THEME,
13
- E as MAVRIK_THEME_HORIZONTAL,
14
- C as MavrikChart,
15
- R as hasHorizontalBars,
14
+ F as FormatterToken,
15
+ C as MAVRIK_THEME,
16
+ T as MAVRIK_THEME_HORIZONTAL,
17
+ f as MavrikChart,
18
+ k as hasHorizontalBars,
16
19
  a as isChartTheme,
17
20
  s as isEChartsChartOption,
18
- H as sanitizeChartOptionsForStaticRendering,
19
- M as selectMavrikTheme,
20
- m as useChartInstance
21
+ H as isFormatterToken,
22
+ l as replaceFormatterTokens,
23
+ R as sanitizeChartOptionsForStaticRendering,
24
+ E as selectMavrikTheme,
25
+ n as useChartInstance
21
26
  };
@@ -1,20 +1,27 @@
1
1
  "use client";
2
- import { jsx as r } from "react/jsx-runtime";
2
+ import { jsx as e } from "react/jsx-runtime";
3
3
  import { forwardRef as f, useImperativeHandle as i } from "react";
4
- import { twMerge as d } from "../../lib/tailwind-merge.js";
4
+ import { twMerge as s } from "../../lib/tailwind-merge.js";
5
5
  import { useChartInstance as m } from "./use-chart-instance.js";
6
- const v = f(function({ className: o, option: t, theme: n, ...a }, l) {
7
- const { containerRef: s, downloadChart: e } = m({
6
+ const v = f(function({ className: o, option: t, theme: n, ...l }, a) {
7
+ const { containerRef: d, downloadChart: r } = m({
8
8
  options: t,
9
9
  theme: n
10
10
  });
11
11
  return i(
12
- l,
12
+ a,
13
13
  () => ({
14
- download: e
14
+ download: r
15
15
  }),
16
- [e]
17
- ), /* @__PURE__ */ r("div", { className: d("relative h-full w-full", o), ...a, children: /* @__PURE__ */ r("div", { className: "h-full w-full", ref: s }) });
16
+ [r]
17
+ ), /* @__PURE__ */ e(
18
+ "div",
19
+ {
20
+ className: s("border-neutral-70 relative h-full w-full overflow-hidden rounded-lg border", o),
21
+ ...l,
22
+ children: /* @__PURE__ */ e("div", { className: "h-full w-full", ref: d })
23
+ }
24
+ );
18
25
  });
19
26
  export {
20
27
  v as EChartsRenderer
@@ -0,0 +1,22 @@
1
+ import { FormatterTemplate, FormatterToken } from './formatter-tokens';
2
+ /**
3
+ * ECharts formatter function signature.
4
+ * Accepts a numeric value (or string that can be converted to number) and returns formatted string.
5
+ */
6
+ export type EChartsFormatter = (value: number | string) => string;
7
+ /**
8
+ * Registry mapping formatter tokens to their implementations.
9
+ */
10
+ export declare const formatterRegistry: Record<FormatterToken, EChartsFormatter>;
11
+ /**
12
+ * Retrieves the formatter function for a given token.
13
+ */
14
+ export declare function getFormatter(token: FormatterToken): EChartsFormatter;
15
+ /**
16
+ * Creates a formatter function from a template with prefix/suffix.
17
+ *
18
+ * @example
19
+ * const formatter = createTemplateFormatter({ token: "COMPACT_1", prefix: "$", suffix: " USD" });
20
+ * formatter(1500) // "$1.5k USD"
21
+ */
22
+ export declare function createTemplateFormatter(template: FormatterTemplate): EChartsFormatter;
@@ -0,0 +1,41 @@
1
+ function C(e, t) {
2
+ const r = Math.abs(e), o = e < 0 ? "-" : "";
3
+ return r >= 1e12 ? `${o}${(r / 1e12).toFixed(t)}T` : r >= 1e9 ? `${o}${(r / 1e9).toFixed(t)}B` : r >= 1e6 ? `${o}${(r / 1e6).toFixed(t)}M` : r >= 1e3 ? `${o}${(r / 1e3).toFixed(t)}k` : e.toFixed(t);
4
+ }
5
+ const N = {
6
+ // Fixed decimal places
7
+ VC_PRECISION_0: (e) => Number(e).toFixed(0),
8
+ VC_PRECISION_1: (e) => Number(e).toFixed(1),
9
+ VC_PRECISION_2: (e) => Number(e).toFixed(2),
10
+ VC_PRECISION_3: (e) => Number(e).toFixed(3),
11
+ VC_PRECISION_4: (e) => Number(e).toFixed(4),
12
+ VC_PRECISION_5: (e) => Number(e).toFixed(5),
13
+ VC_PRECISION_6: (e) => Number(e).toFixed(6),
14
+ // Significant digits
15
+ VC_SIGNIFICANT_1: (e) => Number(e).toPrecision(1),
16
+ VC_SIGNIFICANT_2: (e) => Number(e).toPrecision(2),
17
+ VC_SIGNIFICANT_3: (e) => Number(e).toPrecision(3),
18
+ VC_SIGNIFICANT_4: (e) => Number(e).toPrecision(4),
19
+ VC_SIGNIFICANT_5: (e) => Number(e).toPrecision(5),
20
+ VC_SIGNIFICANT_6: (e) => Number(e).toPrecision(6),
21
+ // Compact notation
22
+ VC_COMPACT_0: (e) => C(Number(e), 0),
23
+ VC_COMPACT_1: (e) => C(Number(e), 1),
24
+ VC_COMPACT_2: (e) => C(Number(e), 2),
25
+ // Percentage formatting (multiplies by 100)
26
+ VC_PERCENT_0: (e) => `${(Number(e) * 100).toFixed(0)}%`,
27
+ VC_PERCENT_1: (e) => `${(Number(e) * 100).toFixed(1)}%`,
28
+ VC_PERCENT_2: (e) => `${(Number(e) * 100).toFixed(2)}%`
29
+ };
30
+ function _(e) {
31
+ return N[e];
32
+ }
33
+ function i(e) {
34
+ const t = N[e.token];
35
+ return (r) => `${e.prefix}${t(r)}${e.suffix}`;
36
+ }
37
+ export {
38
+ i as createTemplateFormatter,
39
+ N as formatterRegistry,
40
+ _ as getFormatter
41
+ };
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Formatter token constants for use in static JSON chart options.
3
+ *
4
+ * These tokens are replaced with actual formatter functions at render time,
5
+ * allowing chart options to remain as serializable JSON.
6
+ *
7
+ * Supports two syntaxes:
8
+ * 1. Simple token: `"VC_COMPACT_1"` → "5.2k"
9
+ * 2. Template with prefix/suffix: `"${VC_COMPACT_1} USD"` → "$5.2k USD"
10
+ *
11
+ * @example
12
+ * ```json
13
+ * {
14
+ * "yAxis": { "axisLabel": { "formatter": "{VC_COMPACT_1}" } },
15
+ * "tooltip": { "valueFormatter": "${VC_COMPACT_1} USD" }
16
+ * }
17
+ * ```
18
+ */
19
+ export declare const FormatterToken: {
20
+ readonly VC_PRECISION_0: "VC_PRECISION_0";
21
+ readonly VC_PRECISION_1: "VC_PRECISION_1";
22
+ readonly VC_PRECISION_2: "VC_PRECISION_2";
23
+ readonly VC_PRECISION_3: "VC_PRECISION_3";
24
+ readonly VC_PRECISION_4: "VC_PRECISION_4";
25
+ readonly VC_PRECISION_5: "VC_PRECISION_5";
26
+ readonly VC_PRECISION_6: "VC_PRECISION_6";
27
+ readonly VC_SIGNIFICANT_1: "VC_SIGNIFICANT_1";
28
+ readonly VC_SIGNIFICANT_2: "VC_SIGNIFICANT_2";
29
+ readonly VC_SIGNIFICANT_3: "VC_SIGNIFICANT_3";
30
+ readonly VC_SIGNIFICANT_4: "VC_SIGNIFICANT_4";
31
+ readonly VC_SIGNIFICANT_5: "VC_SIGNIFICANT_5";
32
+ readonly VC_SIGNIFICANT_6: "VC_SIGNIFICANT_6";
33
+ readonly VC_COMPACT_0: "VC_COMPACT_0";
34
+ readonly VC_COMPACT_1: "VC_COMPACT_1";
35
+ readonly VC_COMPACT_2: "VC_COMPACT_2";
36
+ readonly VC_PERCENT_0: "VC_PERCENT_0";
37
+ readonly VC_PERCENT_1: "VC_PERCENT_1";
38
+ readonly VC_PERCENT_2: "VC_PERCENT_2";
39
+ };
40
+ export type FormatterToken = (typeof FormatterToken)[keyof typeof FormatterToken];
41
+ /**
42
+ * Type guard to check if a value is a valid simple formatter token (e.g., "COMPACT_1").
43
+ */
44
+ export declare function isFormatterToken(value: unknown): value is FormatterToken;
45
+ /**
46
+ * Parsed result of a formatter template string.
47
+ */
48
+ export type FormatterTemplate = {
49
+ token: FormatterToken;
50
+ prefix: string;
51
+ suffix: string;
52
+ };
53
+ /**
54
+ * Parses a formatter template string into its components.
55
+ * Returns null if the string is not a valid formatter template.
56
+ *
57
+ * @example
58
+ * parseFormatterTemplate("{VC_COMPACT_1}") // { token: "VC_COMPACT_1", prefix: "", suffix: "" }
59
+ * parseFormatterTemplate("${VC_COMPACT_1}") // { token: "VC_COMPACT_1", prefix: "$", suffix: "" }
60
+ * parseFormatterTemplate("{VC_COMPACT_1} WETH") // { token: "VC_COMPACT_1", prefix: "", suffix: " WETH" }
61
+ * parseFormatterTemplate("${VC_PRECISION_2} USD") // { token: "VC_PRECISION_2", prefix: "$", suffix: " USD" }
62
+ */
63
+ export declare function parseFormatterTemplate(value: unknown): FormatterTemplate | null;
@@ -0,0 +1,45 @@
1
+ const E = {
2
+ // Fixed decimal places (0-6)
3
+ VC_PRECISION_0: "VC_PRECISION_0",
4
+ VC_PRECISION_1: "VC_PRECISION_1",
5
+ VC_PRECISION_2: "VC_PRECISION_2",
6
+ VC_PRECISION_3: "VC_PRECISION_3",
7
+ VC_PRECISION_4: "VC_PRECISION_4",
8
+ VC_PRECISION_5: "VC_PRECISION_5",
9
+ VC_PRECISION_6: "VC_PRECISION_6",
10
+ // Significant digits (1-6)
11
+ VC_SIGNIFICANT_1: "VC_SIGNIFICANT_1",
12
+ VC_SIGNIFICANT_2: "VC_SIGNIFICANT_2",
13
+ VC_SIGNIFICANT_3: "VC_SIGNIFICANT_3",
14
+ VC_SIGNIFICANT_4: "VC_SIGNIFICANT_4",
15
+ VC_SIGNIFICANT_5: "VC_SIGNIFICANT_5",
16
+ VC_SIGNIFICANT_6: "VC_SIGNIFICANT_6",
17
+ // Compact notation (k/M/B/T suffixes)
18
+ VC_COMPACT_0: "VC_COMPACT_0",
19
+ VC_COMPACT_1: "VC_COMPACT_1",
20
+ VC_COMPACT_2: "VC_COMPACT_2",
21
+ // Percentage formatting
22
+ VC_PERCENT_0: "VC_PERCENT_0",
23
+ VC_PERCENT_1: "VC_PERCENT_1",
24
+ VC_PERCENT_2: "VC_PERCENT_2"
25
+ }, N = new Set(Object.values(E));
26
+ function S(C) {
27
+ return typeof C == "string" && N.has(C);
28
+ }
29
+ const T = /^(.*)\{([A-Z0-9_]+)\}(.*)$/;
30
+ function P(C) {
31
+ if (typeof C != "string") return null;
32
+ const _ = T.exec(C);
33
+ if (!_) return null;
34
+ const [, V = "", I = "", t = ""] = _;
35
+ return N.has(I) ? {
36
+ token: I,
37
+ prefix: V,
38
+ suffix: t
39
+ } : null;
40
+ }
41
+ export {
42
+ E as FormatterToken,
43
+ S as isFormatterToken,
44
+ P as parseFormatterTemplate
45
+ };
@@ -0,0 +1,26 @@
1
+ import { EChartsOption } from 'echarts';
2
+ /**
3
+ * Input type that allows formatter tokens (strings) where ECharts expects functions.
4
+ * This is needed because JSON options will have string tokens that get replaced.
5
+ */
6
+ export type EChartsOptionWithTokens = Record<string, unknown>;
7
+ /**
8
+ * Replaces formatter token strings with actual formatter functions.
9
+ *
10
+ * Traverses known ECharts formatter paths and replaces any token strings
11
+ * (e.g., "PRECISION_2") with the corresponding formatter function.
12
+ *
13
+ * @param options - ECharts options that may contain formatter tokens
14
+ * @returns New options object with tokens replaced by functions
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const options = {
19
+ * xAxis: { axisLabel: { formatter: 'PRECISION_2' } },
20
+ * tooltip: { valueFormatter: 'COMPACT_1' }
21
+ * };
22
+ * const resolved = replaceFormatterTokens(options);
23
+ * // resolved.xAxis.axisLabel.formatter is now a function
24
+ * ```
25
+ */
26
+ export declare function replaceFormatterTokens(options: EChartsOptionWithTokens): EChartsOption;
@@ -0,0 +1,70 @@
1
+ import { getFormatter as p, createTemplateFormatter as u } from "./formatter-functions.js";
2
+ import { isFormatterToken as A, parseFormatterTemplate as b } from "./formatter-tokens.js";
3
+ function l(t) {
4
+ if (t === null || typeof t != "object")
5
+ return t;
6
+ if (Array.isArray(t))
7
+ return t.map((o) => l(o));
8
+ const e = {};
9
+ for (const r of Object.keys(t))
10
+ e[r] = l(t[r]);
11
+ return e;
12
+ }
13
+ const y = [
14
+ // Axis formatters (single object form)
15
+ "xAxis.axisLabel.formatter",
16
+ "yAxis.axisLabel.formatter",
17
+ "radiusAxis.axisLabel.formatter",
18
+ "angleAxis.axisLabel.formatter",
19
+ // Axis formatters (array form)
20
+ "xAxis[].axisLabel.formatter",
21
+ "yAxis[].axisLabel.formatter",
22
+ // Tooltip formatters
23
+ "tooltip.formatter",
24
+ "tooltip.valueFormatter",
25
+ // Series formatters
26
+ "series[].label.formatter",
27
+ "series[].labelLine.formatter",
28
+ "series[].emphasis.label.formatter",
29
+ "series[].tooltip.valueFormatter",
30
+ "series[].tooltip.formatter",
31
+ // Legend formatter
32
+ "legend.formatter",
33
+ // Visual map formatters
34
+ "visualMap.formatter",
35
+ "visualMap[].formatter"
36
+ ];
37
+ function T(t) {
38
+ const e = l(t);
39
+ for (const r of y)
40
+ x(e, r);
41
+ return e;
42
+ }
43
+ function x(t, e) {
44
+ const r = e.split(".");
45
+ n(t, r, 0);
46
+ }
47
+ function n(t, e, r) {
48
+ if (t == null || r >= e.length || typeof t != "object") return;
49
+ const o = e[r];
50
+ if (o === void 0) return;
51
+ const c = r === e.length - 1, m = o.endsWith("[]"), s = m ? o.slice(0, -2) : o, i = t;
52
+ if (m) {
53
+ const a = i[s];
54
+ if (Array.isArray(a))
55
+ for (const f of a)
56
+ n(f, e, r + 1);
57
+ } else if (c) {
58
+ const a = i[s];
59
+ if (A(a))
60
+ i[s] = p(a);
61
+ else {
62
+ const f = b(a);
63
+ f && (i[s] = u(f));
64
+ }
65
+ } else
66
+ n(i[s], e, r + 1);
67
+ }
68
+ export {
69
+ T as replaceFormatterTokens
70
+ };
@@ -13,46 +13,21 @@ declare const _default: {
13
13
  },
14
14
  {
15
15
  "offset": 1,
16
- "color": "#DF687D"
16
+ "color": "#DE7385"
17
17
  }
18
18
  ]
19
19
  },
20
- {
21
- "type": "linear",
22
- "x": 0,
23
- "y": 0,
24
- "x2": 1,
25
- "y2": 0,
26
- "colorStops": [
27
- {
28
- "offset": 0,
29
- "color": "#FFFFFF"
30
- },
31
- {
32
- "offset": 1,
33
- "color": "#FFFFFF"
34
- }
35
- ]
36
- },
37
- {
38
- "type": "linear",
39
- "x": 0,
40
- "y": 0,
41
- "x2": 1,
42
- "y2": 0,
43
- "colorStops": [
44
- {
45
- "offset": 0,
46
- "color": "#1E6FDA"
47
- },
48
- {
49
- "offset": 1,
50
- "color": "#3F8CFF"
51
- }
52
- ]
53
- }
20
+ "#00BBFA",
21
+ "#0072B2",
22
+ "#E69F00",
23
+ "#D66119",
24
+ "#56B4E9",
25
+ "#45B26B",
26
+ "#F0E442",
27
+ "#FF99BF",
28
+ "#8277D8"
54
29
  ],
55
- "backgroundColor": "#242731",
30
+ "backgroundColor": "#1A1D1F",
56
31
  "textStyle": {
57
32
  "fontFamily": "Poppins, sans-serif",
58
33
  "fontWeight": 500
@@ -214,7 +189,7 @@ declare const _default: {
214
189
  "outerBoundsContain": "axisLabel"
215
190
  },
216
191
  "dataZoom": {
217
- "backgroundColor": "rgba(36, 39, 49, 0)",
192
+ "backgroundColor": "rgba(26, 29, 31, 0)",
218
193
  "borderColor": "#3A3D46",
219
194
  "borderRadius": 4,
220
195
  "dataBackground": {
@@ -268,6 +243,7 @@ declare const _default: {
268
243
  }
269
244
  },
270
245
  "tooltip": {
246
+ "confine": true,
271
247
  "backgroundColor": "transparent",
272
248
  "padding": 10,
273
249
  "borderRadius": 8,
@@ -1,4 +1,4 @@
1
- const M = [{ type: "linear", x: 0, y: 0, x2: 1, y2: 0, colorStops: [{ offset: 0, color: "#C14E64" }, { offset: 1, color: "#DF687D" }] }, { type: "linear", x: 0, y: 0, x2: 1, y2: 0, colorStops: [{ offset: 0, color: "#FFFFFF" }, { offset: 1, color: "#FFFFFF" }] }, { type: "linear", x: 0, y: 0, x2: 1, y2: 0, colorStops: [{ offset: 0, color: "#1E6FDA" }, { offset: 1, color: "#3F8CFF" }] }], L = "#242731", N = { fontFamily: "Poppins, sans-serif", fontWeight: 500 }, j = { top: 32, left: 32, textStyle: { color: "#FFFFFF", fontSize: 16, fontWeight: 600 }, subtextStyle: { color: "#A7A9AD" } }, D = { itemStyle: { borderWidth: 1 }, lineStyle: { width: 2 }, areaStyle: { opacity: 0.15 }, showSymbol: !1, symbolSize: 5, symbol: "circle", smooth: !1, sampling: "lttb" }, A = { barGap: "25%", barCategoryGap: "25%" }, g = { axisLine: { show: !0, lineStyle: { color: "#3A3D46", type: "dashed" } }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !1 } }, I = { axisLine: { show: !1 }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !0, lineStyle: { color: ["#3A3D46"], type: "dashed" } } }, u = { axisLine: { show: !1 }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !0, lineStyle: { color: ["#3A3D46"], type: "dashed" } } }, t = { axisLine: { show: !0, lineStyle: { color: "#3A3D46" } }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !1 } }, T = { top: 82, left: "auto", right: 32, icon: "circle", itemGap: 22, itemWidth: 12, itemHeight: 12, textStyle: { color: "#A7A9AD", fontSize: 11 } }, y = { top: 132, left: 32, right: 32, bottom: 32, outerBoundsMode: "same", outerBoundsContain: "axisLabel" }, S = { backgroundColor: "rgba(36, 39, 49, 0)", borderColor: "#3A3D46", borderRadius: 4, dataBackground: { lineStyle: { color: "#606060", width: 1 }, areaStyle: { color: "rgba(96, 96, 96, 0.3)" } }, selectedDataBackground: { lineStyle: { color: "#b36674", width: 1 }, areaStyle: { color: "rgba(164, 91, 105, 0.5)" } }, fillerColor: "rgba(82, 45, 52, 0.35)", handleStyle: { color: "#C14E64", borderColor: "#C14E64" }, moveHandleStyle: { color: "#b36674" }, brushStyle: { color: "rgba(95, 58, 65, 0.2)" }, emphasis: { handleStyle: { color: "rgb(209, 123, 140)", borderColor: "rgb(209, 123, 140)" } }, handleSize: "100%", textStyle: { color: "#A7A9AD" } }, z = { label: { color: "#A7A9AD" }, emphasis: { label: { color: "#FFFFFF" } } }, i = { backgroundColor: "transparent", padding: 10, borderRadius: 8, borderColor: "#50525A", borderWidth: 1, textStyle: { color: "#FCFCFC", fontFamily: "Poppins, sans-serif", fontSize: 11, fontStyle: "normal", fontWeight: 500 }, extraCssText: "letter-spacing: 0.22px; box-shadow: 0 14px 11px -4px rgba(0, 0, 0, 0.30), 0 -4px 4px 0 rgba(0, 0, 0, 0.04) inset; background: radial-gradient(ellipse at 25% 0%, rgba(217, 217, 217, 0.12) 0%, transparent 60%), #1A1D1F;" }, x = { type: "image", id: "fractal-watermark", left: "center", top: "middle", style: { image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMTAiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMTAgMjQiPgogIDxnIGZpbGw9IiNhN2E5YWQiIGZpbGwtb3BhY2l0eT0iMC4zIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjczMyAxLjg2OGgtMjEuNjdDNi40MzggMS44NjggMS44NzggNi40MDQgMS44NzggMTJzNC41NiAxMC4xMzIgMTAuMTg1IDEwLjEzMmgyMS42N2M1LjYyNSAwIDEwLjE4NS00LjUzNiAxMC4xODUtMTAuMTMyUzM5LjM1OCAxLjg2OCAzMy43MzMgMS44NjhNMCAxMmMwIDYuNjI3IDUuNCAxMiAxMi4wNjMgMTJoMjEuNjdjNi42NjIgMCAxMi4wNjMtNS4zNzMgMTIuMDYzLTEycy01LjQtMTItMTIuMDYzLTEyaC0yMS42N0M1LjQwMSAwIDAgNS4zNzMgMCAxMiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMy43MzQgNS4xNzRoLTIxLjY3QzguMjczIDUuMTc0IDUuMiA4LjIzIDUuMiAxMnMzLjA3MyA2LjgyNiA2Ljg2MyA2LjgyNmgyMS42N2MzLjc5IDAgNi44NjItMy4wNTYgNi44NjItNi44MjZzLTMuMDcyLTYuODI2LTYuODYyLTYuODI2TTMuMzIzIDEyYzAgNC44MDIgMy45MTIgOC42OTUgOC43NCA4LjY5NWgyMS42N2M0LjgyNyAwIDguNzQtMy44OTMgOC43NC04LjY5NXMtMy45MTMtOC42OTUtOC43NC04LjY5NWgtMjEuNjdjLTQuODI4IDAtOC43NCAzLjg5My04Ljc0IDguNjk1IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjczMyA4LjQ4aC0yMS42N0EzLjUzIDMuNTMgMCAwIDAgOC41MjMgMTJhMy41MyAzLjUzIDAgMCAwIDMuNTQgMy41MjFoMjEuNjdhMy41MyAzLjUzIDAgMCAwIDMuNTQtMy41MiAzLjUzIDMuNTMgMCAwIDAtMy41NC0zLjUyMk02LjY0NiAxMmMwIDIuOTc2IDIuNDI1IDUuMzkgNS40MTcgNS4zOWgyMS42N2MyLjk5MiAwIDUuNDE4LTIuNDE0IDUuNDE4LTUuMzlzLTIuNDI2LTUuMzktNS40MTgtNS4zOWgtMjEuNjdjLTIuOTkyIDAtNS40MTcgMi40MTQtNS40MTcgNS4zOSIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBkPSJNNTguNDUgMjAuNjk1aC0yLjc3TDQ4LjU5MiAzLjMyN2gyLjdsNS43NzMgMTQuNTQyIDUuNzczLTE0LjU0MmgyLjd6TTczLjk4NiAyMC42OTVoLTIuMDZsLS4xNC0xLjQ4MnEtLjY0LjgxLTEuNjE3IDEuMjYyLS45NzguNDUtMi4xNjUuNDUxLTEuMjQ2IDAtMi4yMjMtLjQ4NmEzLjg2IDMuODYgMCAwIDEtMS41MzctMS4zMzIgMy40IDMuNCAwIDAgMS0uNTU5LTEuOTIycTAtMS4xMzQuNjA2LTEuOTkxLjYwNS0uODY4IDEuNjUzLTEuMzU1IDEuMDQ3LS40OTggMi4zODYtLjQ5OC44MzggMCAxLjY5OS4xOTdhNi42IDYuNiAwIDAgMSAxLjU3MS41NTZ2LS40MjlxMC0uODQ0LS40NDItMS40NDdhMi43IDIuNyAwIDAgMC0xLjE4Ny0uOTM4IDQuMSA0LjEgMCAwIDAtMS42NTMtLjMyNHEtLjgwMiAwLTEuNjQxLjI3OC0uODI2LjI3Ny0xLjU2Ljg1N2wtLjcyMS0xLjkzNGE5LjMgOS4zIDAgMCAxIDIuMi0uOTUgOC4zIDguMyAwIDAgMSAyLjI1Ny0uMzIzcTEuNTgzIDAgMi43MjQuNjI1YTQuMzUgNC4zNSAwIDAgMSAxLjc4IDEuNzgzcS42MyAxLjE0Ni42MyAyLjcxem0tNS41MTctMS43ODNxLjgyNyAwIDEuNTI1LS4zMzZhMi45MyAyLjkzIDAgMCAwIDEuMTI5LS45NzNxLjQ0Mi0uNjM2LjQ3Ny0xLjQ4MnYtLjE2MmE0LjcgNC43IDAgMCAwLTEuMzM4LS42ODMgNC42IDQuNiAwIDAgMC0xLjUwMi0uMjU1cS0xLjE3NiAwLTEuOTU1LjU1Ni0uNzguNTU1LS43OCAxLjQyNCAwIC41NDQuMzE0Ljk4NC4zMjYuNDMuODczLjY4My41Ni4yNDQgMS4yNTcuMjQ0TTc3Ljk4OCAyMC42OTVoLTIuNTRWMi44NjRoMi41NHpNODAuNjY2IDUuNzU4cS0uNTQ4IDAtLjkyLS4zODJhMS4yOCAxLjI4IDAgMCAxLS4zNzMtLjkyNnEwLS41NDUuMzczLS45MTUuMzcyLS4zODIuOTItLjM4Mi41NiAwIC45MzIuMzgyLjM4NS4zNy4zODUuOTE1dC0uMzg1LjkyNnEtLjM3My4zODItLjkzMi4zODJtMS4xODggMTQuOTM3aC0yLjM4OFY5LjExNmgyLjM4OHpNOTUuNjI4IDIwLjY5NUg5My41MmwtLjEyOC0xLjY1NmE1LjcgNS43IDAgMCAxLTEuOTA5IDEuMzlxLTEuMTA2LjQ5Ny0yLjQzMi40OTctMS42NzcgMC0zLjAwMy0uNzg3YTUuNyA1LjcgMCAwIDEtMi4wOTUtMi4xNTRxLS43NTctMS4zNjUtLjc1Ny0zLjA4IDAtMS43MjQuNzU3LTMuMDhhNS43IDUuNyAwIDAgMSAyLjA5NS0yLjE1M3ExLjMyNi0uNzg3IDMuMDAzLS43ODcgMS4yNTcgMCAyLjMyOC40NTFhNS41IDUuNSAwIDAgMSAxLjg2MiAxLjI2MlYzLjMyN2gyLjM4NnptLTYuMTgtMS45cTEuMDU5IDAgMS45MDgtLjQ4NmEzLjc1IDMuNzUgMCAwIDAgMS4zNzQtMS4zMnEuNTEyLS44MzMuNTEyLTEuODk4di0uMzk0cTAtMS4wNjUtLjUxMi0xLjg5OWEzLjY2IDMuNjYgMCAwIDAtMS4zNzQtMS4zMDhxLS44NS0uNDc1LTEuOTA4LS40NzUtMS4wODMgMC0xLjk0NC41MWEzLjcgMy43IDAgMCAwLTEuMzYyIDEuMzg5cS0uNS44NjktLjUgMS45OHQuNSAxLjk5MWEzLjggMy44IDAgMCAwIDEuMzYyIDEuNDAxcS44NjEuNTEgMS45NDQuNTFNMTA3LjI2OSAyMC42OTVoLTIuMDYxbC0uMTM5LTEuNDgycS0uNjQuODEtMS42MTggMS4yNjItLjk3OC40NS0yLjE2NS40NTEtMS4yNDUgMC0yLjIyMy0uNDg2YTMuODYgMy44NiAwIDAgMS0xLjUzNi0xLjMzMiAzLjQgMy40IDAgMCAxLS41Ni0xLjkyMnEwLTEuMTM0LjYwNi0xLjk5MS42MDUtLjg2OCAxLjY1My0xLjM1NSAxLjA0Ny0uNDk4IDIuMzg2LS40OThhNy42IDcuNiAwIDAgMSAxLjY5OS4xOTcgNi42IDYuNiAwIDAgMSAxLjU3MS41NTZ2LS40MjlxMC0uODQ0LS40NDItMS40NDdhMi43IDIuNyAwIDAgMC0xLjE4Ny0uOTM4IDQuMSA0LjEgMCAwIDAtMS42NTMtLjMyNCA1LjE2NiA1LjE2NiAwIDAgMC0zLjIgMS4xMzVsLS43MjItMS45MzRhOS4zIDkuMyAwIDAgMSAyLjItLjk1IDguMyA4LjMgMCAwIDEgMi4yNTgtLjMyM3ExLjU4MyAwIDIuNzIzLjYyNWE0LjM1IDQuMzUgMCAwIDEgMS43ODEgMS43ODNxLjYyOSAxLjE0Ni42MjkgMi43MXptLTUuNTE3LTEuNzgzcS44MjYgMCAxLjUyNC0uMzM2YTIuOSAyLjkgMCAwIDAgMS4xMjktLjk3M3EuNDQyLS42MzYuNDc3LTEuNDgydi0uMTYyYTQuNiA0LjYgMCAwIDAtMS4zMzgtLjY4MyA0LjYgNC42IDAgMCAwLTEuNTAyLS4yNTVxLTEuMTc1IDAtMS45NTUuNTU2LS43OC41NTUtLjc4IDEuNDI0IDAgLjU0NC4zMTQuOTg0LjMyNy40My44NzMuNjgzLjU2LjI0NCAxLjI1OC4yNDRNMTE2LjQyNCAyMC40MDVxLTEuMjIxLjUyMS0yLjM2Mi41MjF0LTIuMDAyLS40ODZhMy41IDMuNSAwIDAgMS0xLjMzOS0xLjM2NnEtLjQ3Ny0uODkyLS40NzctMi4wNXYtNS43ODloLTIuMDM3VjkuMTE2aDIuMTUzVjYuMjIyaDIuMjd2Mi44OTRoMy4zOTl2Mi4xMTloLTMuMzk5djUuMzVxMCAxLjAxOC41NDcgMS42Mi41NTguNTkgMS40MzIuNTkuNzM0IDAgMS40NTUtLjQ0ek0xMTguNTggNS43NThxLS41NDggMC0uOTItLjM4MmExLjI4IDEuMjggMCAwIDEtLjM3My0uOTI2cTAtLjU0NS4zNzMtLjkxNS4zNzItLjM4Mi45Mi0uMzgyLjU2IDAgLjkzMi4zODIuMzg1LjM3LjM4NS45MTV0LS4zODUuOTI2YTEuMjUgMS4yNSAwIDAgMS0uOTMyLjM4Mm0xLjE4OCAxNC45MzdoLTIuMzg4VjkuMTE2aDIuMzg4ek0xMjcuMjU3IDIwLjkyNnEtMS43NDYgMC0zLjE0My0uNzg3YTUuODUgNS44NSAwIDAgMS0yLjItMi4xNDJxLS44MDMtMS4zNjYtLjgwMy0zLjA5MiAwLTEuNzEzLjgwMy0zLjA2OGE1LjggNS44IDAgMCAxIDIuMi0yLjE1M3ExLjM5Ny0uOCAzLjE0My0uOCAxLjc1NyAwIDMuMTQyLjhhNS43NiA1Ljc2IDAgMCAxIDIuMTc3IDIuMTUzcS44MDMgMS4zNTUuODAzIDMuMDY4IDAgMS43MjUtLjgwMyAzLjA5MmE1LjggNS44IDAgMCAxLTIuMTc3IDIuMTQycS0xLjM4NS43ODctMy4xNDIuNzg3bS0uMDEyLTIuMTNxMS4wNiAwIDEuODg2LS41MWEzLjcgMy43IDAgMCAwIDEuMzE1LTEuMzlxLjQ4OS0uODguNDg5LTIuMDAyIDAtMS4xLS40ODktMS45NjlhMy42IDMuNiAwIDAgMC0xLjMxNS0xLjM4OXEtLjgyNy0uNTItMS44ODYtLjUyLTEuMDQ3IDAtMS44ODUuNTJhMy43IDMuNyAwIDAgMC0xLjMyNyAxLjM5cS0uNDc3Ljg2OC0uNDc3IDEuOTY4IDAgMS4xMjMuNDc3IDIuMDAzYTMuOCAzLjggMCAwIDAgMS4zMjcgMS4zOXEuODM3LjUwOSAxLjg4NS41MDlNMTQ1LjgxNiAyMC42OTVoLTIuMzg2di02LjI4N3EwLTEuNTQtLjg0OS0yLjQ1NS0uODM5LS45MTUtMi4yNTgtLjkxNS0xLjQ2NiAwLTIuMzYzLjk3My0uODk2Ljk3Mi0uODk2IDIuNTgydjYuMTAyaC0yLjM4NlY5LjExNmgyLjAxM2wuMDgyIDEuODY0YTQuMjUgNC4yNSAwIDAgMSAxLjY3Ni0xLjU1MXExLjAzNS0uNTQ0IDIuNDMyLS41NDQgMi4yOTQgMCAzLjYwOSAxLjM3NyAxLjMyNiAxLjM3OSAxLjMyNiAzLjc5OHpNMTY2LjE3OCAxOC40ODNhOC43IDguNyAwIDAgMS0yLjg4OCAxLjg4N3EtMS42NjQuNjcyLTMuNjMxLjY3MnQtMy42MzItLjY3MmE4LjcgOC43IDAgMCAxLTIuODk4LTEuODg3IDguOSA4LjkgMCAwIDEtMS45MDgtMi44NzFxLS42NzYtMS42NTYtLjY3Ni0zLjYwMSAwLTEuOTU3LjY3Ni0zLjYwMWE4LjcgOC43IDAgMCAxIDEuOTA4LTIuODcyIDguNyA4LjcgMCAwIDEgMi44OTgtMS44ODdxMS42NjUtLjY3MSAzLjYzMi0uNjcxIDEuOTU1IDAgMy42MTkuNjgzIDEuNjc3LjY3MSAyLjg3NSAxLjg2NGwtMS43OCAxLjgwNmE2LjIgNi4yIDAgMCAwLTIuMDk0LTEuNTRxLTEuMjEyLS41NjctMi42NTQtLjU2Ny0xLjM5NyAwLTIuNTczLjUxYTYgNiAwIDAgMC0yLjA0OSAxLjQyMyA2LjYgNi42IDAgMCAwLTEuMzYxIDIuMTU0cS0uNDc4IDEuMjM5LS40NzggMi42OTh0LjQ3OCAyLjY5OGE2LjcgNi43IDAgMCAwIDEuMzYxIDIuMTY1IDYuMiA2LjIgMCAwIDAgMi4wNDkgMS40MjRxMS4xNzUuNDk4IDIuNTczLjQ5OCAxLjQ0MiAwIDIuNjU0LS41NTZhNi4yIDYuMiAwIDAgMCAyLjA4My0xLjU1MnpNMTcwLjA5MiAyMC42OTVoLTIuNTRWMi44NjRoMi41NHpNMTc3LjUzNCAyMC45MjZxLTEuNzQ1IDAtMy4xNDMtLjc4N2E1Ljg0IDUuODQgMCAwIDEtMi4xOTktMi4xNDJxLS44MDMtMS4zNjYtLjgwMy0zLjA5MiAwLTEuNzEzLjgwMy0zLjA2OGE1LjggNS44IDAgMCAxIDIuMTk5LTIuMTUzcTEuMzk4LS44IDMuMTQzLS44IDEuNzU4IDAgMy4xNDIuOGE1Ljc1IDUuNzUgMCAwIDEgMi4xNzYgMi4xNTNxLjgwNCAxLjM1NS44MDMgMy4wNjggMCAxLjcyNS0uODAzIDMuMDkyYTUuOCA1LjggMCAwIDEtMi4xNzYgMi4xNDJxLTEuMzg0Ljc4Ny0zLjE0Mi43ODdtLS4wMTMtMi4xM3ExLjA2IDAgMS44ODctLjUxYTMuNyAzLjcgMCAwIDAgMS4zMTUtMS4zOXEuNDg4LS44OC40ODgtMi4wMDIgMC0xLjEtLjQ4OC0xLjk2OWEzLjYgMy42IDAgMCAwLTEuMzE1LTEuMzg5cS0uODI3LS41Mi0xLjg4Ny0uNTJhMy41IDMuNSAwIDAgMC0xLjg4NS41MiAzLjcgMy43IDAgMCAwLTEuMzI2IDEuMzlxLS40NzcuODY4LS40NzcgMS45NjggMCAxLjEyMy40NzcgMi4wMDNhMy44IDMuOCAwIDAgMCAxLjMyNiAxLjM5IDMuNTYgMy41NiAwIDAgMCAxLjg4NS41MDlNMTk2LjEgMjAuNjk1aC0yLjAyNmwtLjA4Mi0xLjg2NHEtLjY0IDEuMDE4LTEuNjc2IDEuNTYzLTEuMDI1LjUzMi0yLjQzMy41MzItMi4yOCAwLTMuNjA3LTEuMzc4LTEuMzE2LTEuMzktMS4zMTYtMy43OTdWOS4xMTZoMi4zODd2Ni4yODdxMCAxLjU0LjgzNyAyLjQ1NS44NC45MTUgMi4yNTguOTE1IDEuNDY4IDAgMi4zNjQtLjk3My45MDctLjk4NC45MDctMi41ODJWOS4xMTZoMi4zODd6TTIwOS44NCAyMC42OTVoLTIuMTA2bC0uMTI5LTEuNjU2YTUuNyA1LjcgMCAwIDEtMS45MDggMS4zOXEtMS4xMDUuNDk3LTIuNDMzLjQ5Ny0xLjY3NiAwLTMuMDAyLS43ODdhNS43IDUuNyAwIDAgMS0yLjA5Ni0yLjE1NHEtLjc1Ni0xLjM2NS0uNzU2LTMuMDggMC0xLjcyNC43NTYtMy4wOGE1LjcgNS43IDAgMCAxIDIuMDk2LTIuMTUzcTEuMzI2LS43ODcgMy4wMDItLjc4NyAxLjI1NyAwIDIuMzI5LjQ1MWE1LjUgNS41IDAgMCAxIDEuODYyIDEuMjYyVjMuMzI3aDIuMzg1em0tNi4xOC0xLjlxMS4wNTkgMCAxLjkwOC0uNDg2YTMuNzQgMy43NCAwIDAgMCAxLjM3NC0xLjMycS41MTItLjgzMy41MTMtMS44OTh2LS4zOTRxMC0xLjA2NS0uNTEzLTEuODk5YTMuNjUgMy42NSAwIDAgMC0xLjM3NC0xLjMwOHEtLjg0OS0uNDc1LTEuOTA4LS40NzUtMS4wODIgMC0xLjk0My41MWEzLjcgMy43IDAgMCAwLTEuMzYzIDEuMzg5cS0uNS44NjktLjQ5OSAxLjk4IDAgMS4xMTEuNDk5IDEuOTkxYTMuOCAzLjggMCAwIDAgMS4zNjMgMS40MDFxLjg2LjUxIDEuOTQzLjUxIi8+CiAgPC9nPgo8L3N2Zz4=", width: 210, height: 24 }, z: 100, silent: !0 }, o = {
1
+ const M = [{ type: "linear", x: 0, y: 0, x2: 1, y2: 0, colorStops: [{ offset: 0, color: "#C14E64" }, { offset: 1, color: "#DE7385" }] }, "#00BBFA", "#0072B2", "#E69F00", "#D66119", "#56B4E9", "#45B26B", "#F0E442", "#FF99BF", "#8277D8"], L = "#1A1D1F", N = { fontFamily: "Poppins, sans-serif", fontWeight: 500 }, j = { top: 32, left: 32, textStyle: { color: "#FFFFFF", fontSize: 16, fontWeight: 600 }, subtextStyle: { color: "#A7A9AD" } }, D = { itemStyle: { borderWidth: 1 }, lineStyle: { width: 2 }, areaStyle: { opacity: 0.15 }, showSymbol: !1, symbolSize: 5, symbol: "circle", smooth: !1, sampling: "lttb" }, A = { barGap: "25%", barCategoryGap: "25%" }, g = { axisLine: { show: !0, lineStyle: { color: "#3A3D46", type: "dashed" } }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !1 } }, I = { axisLine: { show: !1 }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !0, lineStyle: { color: ["#3A3D46"], type: "dashed" } } }, u = { axisLine: { show: !1 }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !0, lineStyle: { color: ["#3A3D46"], type: "dashed" } } }, t = { axisLine: { show: !0, lineStyle: { color: "#3A3D46" } }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !1 } }, T = { top: 82, left: "auto", right: 32, icon: "circle", itemGap: 22, itemWidth: 12, itemHeight: 12, textStyle: { color: "#A7A9AD", fontSize: 11 } }, y = { top: 132, left: 32, right: 32, bottom: 32, outerBoundsMode: "same", outerBoundsContain: "axisLabel" }, S = { backgroundColor: "rgba(26, 29, 31, 0)", borderColor: "#3A3D46", borderRadius: 4, dataBackground: { lineStyle: { color: "#606060", width: 1 }, areaStyle: { color: "rgba(96, 96, 96, 0.3)" } }, selectedDataBackground: { lineStyle: { color: "#b36674", width: 1 }, areaStyle: { color: "rgba(164, 91, 105, 0.5)" } }, fillerColor: "rgba(82, 45, 52, 0.35)", handleStyle: { color: "#C14E64", borderColor: "#C14E64" }, moveHandleStyle: { color: "#b36674" }, brushStyle: { color: "rgba(95, 58, 65, 0.2)" }, emphasis: { handleStyle: { color: "rgb(209, 123, 140)", borderColor: "rgb(209, 123, 140)" } }, handleSize: "100%", textStyle: { color: "#A7A9AD" } }, z = { label: { color: "#A7A9AD" }, emphasis: { label: { color: "#FFFFFF" } } }, i = { confine: !0, backgroundColor: "transparent", padding: 10, borderRadius: 8, borderColor: "#50525A", borderWidth: 1, textStyle: { color: "#FCFCFC", fontFamily: "Poppins, sans-serif", fontSize: 11, fontStyle: "normal", fontWeight: 500 }, extraCssText: "letter-spacing: 0.22px; box-shadow: 0 14px 11px -4px rgba(0, 0, 0, 0.30), 0 -4px 4px 0 rgba(0, 0, 0, 0.04) inset; background: radial-gradient(ellipse at 25% 0%, rgba(217, 217, 217, 0.12) 0%, transparent 60%), #1A1D1F;" }, x = { type: "image", id: "fractal-watermark", left: "center", top: "middle", style: { image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMTAiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMTAgMjQiPgogIDxnIGZpbGw9IiNhN2E5YWQiIGZpbGwtb3BhY2l0eT0iMC4zIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjczMyAxLjg2OGgtMjEuNjdDNi40MzggMS44NjggMS44NzggNi40MDQgMS44NzggMTJzNC41NiAxMC4xMzIgMTAuMTg1IDEwLjEzMmgyMS42N2M1LjYyNSAwIDEwLjE4NS00LjUzNiAxMC4xODUtMTAuMTMyUzM5LjM1OCAxLjg2OCAzMy43MzMgMS44NjhNMCAxMmMwIDYuNjI3IDUuNCAxMiAxMi4wNjMgMTJoMjEuNjdjNi42NjIgMCAxMi4wNjMtNS4zNzMgMTIuMDYzLTEycy01LjQtMTItMTIuMDYzLTEyaC0yMS42N0M1LjQwMSAwIDAgNS4zNzMgMCAxMiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMy43MzQgNS4xNzRoLTIxLjY3QzguMjczIDUuMTc0IDUuMiA4LjIzIDUuMiAxMnMzLjA3MyA2LjgyNiA2Ljg2MyA2LjgyNmgyMS42N2MzLjc5IDAgNi44NjItMy4wNTYgNi44NjItNi44MjZzLTMuMDcyLTYuODI2LTYuODYyLTYuODI2TTMuMzIzIDEyYzAgNC44MDIgMy45MTIgOC42OTUgOC43NCA4LjY5NWgyMS42N2M0LjgyNyAwIDguNzQtMy44OTMgOC43NC04LjY5NXMtMy45MTMtOC42OTUtOC43NC04LjY5NWgtMjEuNjdjLTQuODI4IDAtOC43NCAzLjg5My04Ljc0IDguNjk1IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjczMyA4LjQ4aC0yMS42N0EzLjUzIDMuNTMgMCAwIDAgOC41MjMgMTJhMy41MyAzLjUzIDAgMCAwIDMuNTQgMy41MjFoMjEuNjdhMy41MyAzLjUzIDAgMCAwIDMuNTQtMy41MiAzLjUzIDMuNTMgMCAwIDAtMy41NC0zLjUyMk02LjY0NiAxMmMwIDIuOTc2IDIuNDI1IDUuMzkgNS40MTcgNS4zOWgyMS42N2MyLjk5MiAwIDUuNDE4LTIuNDE0IDUuNDE4LTUuMzlzLTIuNDI2LTUuMzktNS40MTgtNS4zOWgtMjEuNjdjLTIuOTkyIDAtNS40MTcgMi40MTQtNS40MTcgNS4zOSIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBkPSJNNTguNDUgMjAuNjk1aC0yLjc3TDQ4LjU5MiAzLjMyN2gyLjdsNS43NzMgMTQuNTQyIDUuNzczLTE0LjU0MmgyLjd6TTczLjk4NiAyMC42OTVoLTIuMDZsLS4xNC0xLjQ4MnEtLjY0LjgxLTEuNjE3IDEuMjYyLS45NzguNDUtMi4xNjUuNDUxLTEuMjQ2IDAtMi4yMjMtLjQ4NmEzLjg2IDMuODYgMCAwIDEtMS41MzctMS4zMzIgMy40IDMuNCAwIDAgMS0uNTU5LTEuOTIycTAtMS4xMzQuNjA2LTEuOTkxLjYwNS0uODY4IDEuNjUzLTEuMzU1IDEuMDQ3LS40OTggMi4zODYtLjQ5OC44MzggMCAxLjY5OS4xOTdhNi42IDYuNiAwIDAgMSAxLjU3MS41NTZ2LS40MjlxMC0uODQ0LS40NDItMS40NDdhMi43IDIuNyAwIDAgMC0xLjE4Ny0uOTM4IDQuMSA0LjEgMCAwIDAtMS42NTMtLjMyNHEtLjgwMiAwLTEuNjQxLjI3OC0uODI2LjI3Ny0xLjU2Ljg1N2wtLjcyMS0xLjkzNGE5LjMgOS4zIDAgMCAxIDIuMi0uOTUgOC4zIDguMyAwIDAgMSAyLjI1Ny0uMzIzcTEuNTgzIDAgMi43MjQuNjI1YTQuMzUgNC4zNSAwIDAgMSAxLjc4IDEuNzgzcS42MyAxLjE0Ni42MyAyLjcxem0tNS41MTctMS43ODNxLjgyNyAwIDEuNTI1LS4zMzZhMi45MyAyLjkzIDAgMCAwIDEuMTI5LS45NzNxLjQ0Mi0uNjM2LjQ3Ny0xLjQ4MnYtLjE2MmE0LjcgNC43IDAgMCAwLTEuMzM4LS42ODMgNC42IDQuNiAwIDAgMC0xLjUwMi0uMjU1cS0xLjE3NiAwLTEuOTU1LjU1Ni0uNzguNTU1LS43OCAxLjQyNCAwIC41NDQuMzE0Ljk4NC4zMjYuNDMuODczLjY4My41Ni4yNDQgMS4yNTcuMjQ0TTc3Ljk4OCAyMC42OTVoLTIuNTRWMi44NjRoMi41NHpNODAuNjY2IDUuNzU4cS0uNTQ4IDAtLjkyLS4zODJhMS4yOCAxLjI4IDAgMCAxLS4zNzMtLjkyNnEwLS41NDUuMzczLS45MTUuMzcyLS4zODIuOTItLjM4Mi41NiAwIC45MzIuMzgyLjM4NS4zNy4zODUuOTE1dC0uMzg1LjkyNnEtLjM3My4zODItLjkzMi4zODJtMS4xODggMTQuOTM3aC0yLjM4OFY5LjExNmgyLjM4OHpNOTUuNjI4IDIwLjY5NUg5My41MmwtLjEyOC0xLjY1NmE1LjcgNS43IDAgMCAxLTEuOTA5IDEuMzlxLTEuMTA2LjQ5Ny0yLjQzMi40OTctMS42NzcgMC0zLjAwMy0uNzg3YTUuNyA1LjcgMCAwIDEtMi4wOTUtMi4xNTRxLS43NTctMS4zNjUtLjc1Ny0zLjA4IDAtMS43MjQuNzU3LTMuMDhhNS43IDUuNyAwIDAgMSAyLjA5NS0yLjE1M3ExLjMyNi0uNzg3IDMuMDAzLS43ODcgMS4yNTcgMCAyLjMyOC40NTFhNS41IDUuNSAwIDAgMSAxLjg2MiAxLjI2MlYzLjMyN2gyLjM4NnptLTYuMTgtMS45cTEuMDU5IDAgMS45MDgtLjQ4NmEzLjc1IDMuNzUgMCAwIDAgMS4zNzQtMS4zMnEuNTEyLS44MzMuNTEyLTEuODk4di0uMzk0cTAtMS4wNjUtLjUxMi0xLjg5OWEzLjY2IDMuNjYgMCAwIDAtMS4zNzQtMS4zMDhxLS44NS0uNDc1LTEuOTA4LS40NzUtMS4wODMgMC0xLjk0NC41MWEzLjcgMy43IDAgMCAwLTEuMzYyIDEuMzg5cS0uNS44NjktLjUgMS45OHQuNSAxLjk5MWEzLjggMy44IDAgMCAwIDEuMzYyIDEuNDAxcS44NjEuNTEgMS45NDQuNTFNMTA3LjI2OSAyMC42OTVoLTIuMDYxbC0uMTM5LTEuNDgycS0uNjQuODEtMS42MTggMS4yNjItLjk3OC40NS0yLjE2NS40NTEtMS4yNDUgMC0yLjIyMy0uNDg2YTMuODYgMy44NiAwIDAgMS0xLjUzNi0xLjMzMiAzLjQgMy40IDAgMCAxLS41Ni0xLjkyMnEwLTEuMTM0LjYwNi0xLjk5MS42MDUtLjg2OCAxLjY1My0xLjM1NSAxLjA0Ny0uNDk4IDIuMzg2LS40OThhNy42IDcuNiAwIDAgMSAxLjY5OS4xOTcgNi42IDYuNiAwIDAgMSAxLjU3MS41NTZ2LS40MjlxMC0uODQ0LS40NDItMS40NDdhMi43IDIuNyAwIDAgMC0xLjE4Ny0uOTM4IDQuMSA0LjEgMCAwIDAtMS42NTMtLjMyNCA1LjE2NiA1LjE2NiAwIDAgMC0zLjIgMS4xMzVsLS43MjItMS45MzRhOS4zIDkuMyAwIDAgMSAyLjItLjk1IDguMyA4LjMgMCAwIDEgMi4yNTgtLjMyM3ExLjU4MyAwIDIuNzIzLjYyNWE0LjM1IDQuMzUgMCAwIDEgMS43ODEgMS43ODNxLjYyOSAxLjE0Ni42MjkgMi43MXptLTUuNTE3LTEuNzgzcS44MjYgMCAxLjUyNC0uMzM2YTIuOSAyLjkgMCAwIDAgMS4xMjktLjk3M3EuNDQyLS42MzYuNDc3LTEuNDgydi0uMTYyYTQuNiA0LjYgMCAwIDAtMS4zMzgtLjY4MyA0LjYgNC42IDAgMCAwLTEuNTAyLS4yNTVxLTEuMTc1IDAtMS45NTUuNTU2LS43OC41NTUtLjc4IDEuNDI0IDAgLjU0NC4zMTQuOTg0LjMyNy40My44NzMuNjgzLjU2LjI0NCAxLjI1OC4yNDRNMTE2LjQyNCAyMC40MDVxLTEuMjIxLjUyMS0yLjM2Mi41MjF0LTIuMDAyLS40ODZhMy41IDMuNSAwIDAgMS0xLjMzOS0xLjM2NnEtLjQ3Ny0uODkyLS40NzctMi4wNXYtNS43ODloLTIuMDM3VjkuMTE2aDIuMTUzVjYuMjIyaDIuMjd2Mi44OTRoMy4zOTl2Mi4xMTloLTMuMzk5djUuMzVxMCAxLjAxOC41NDcgMS42Mi41NTguNTkgMS40MzIuNTkuNzM0IDAgMS40NTUtLjQ0ek0xMTguNTggNS43NThxLS41NDggMC0uOTItLjM4MmExLjI4IDEuMjggMCAwIDEtLjM3My0uOTI2cTAtLjU0NS4zNzMtLjkxNS4zNzItLjM4Mi45Mi0uMzgyLjU2IDAgLjkzMi4zODIuMzg1LjM3LjM4NS45MTV0LS4zODUuOTI2YTEuMjUgMS4yNSAwIDAgMS0uOTMyLjM4Mm0xLjE4OCAxNC45MzdoLTIuMzg4VjkuMTE2aDIuMzg4ek0xMjcuMjU3IDIwLjkyNnEtMS43NDYgMC0zLjE0My0uNzg3YTUuODUgNS44NSAwIDAgMS0yLjItMi4xNDJxLS44MDMtMS4zNjYtLjgwMy0zLjA5MiAwLTEuNzEzLjgwMy0zLjA2OGE1LjggNS44IDAgMCAxIDIuMi0yLjE1M3ExLjM5Ny0uOCAzLjE0My0uOCAxLjc1NyAwIDMuMTQyLjhhNS43NiA1Ljc2IDAgMCAxIDIuMTc3IDIuMTUzcS44MDMgMS4zNTUuODAzIDMuMDY4IDAgMS43MjUtLjgwMyAzLjA5MmE1LjggNS44IDAgMCAxLTIuMTc3IDIuMTQycS0xLjM4NS43ODctMy4xNDIuNzg3bS0uMDEyLTIuMTNxMS4wNiAwIDEuODg2LS41MWEzLjcgMy43IDAgMCAwIDEuMzE1LTEuMzlxLjQ4OS0uODguNDg5LTIuMDAyIDAtMS4xLS40ODktMS45NjlhMy42IDMuNiAwIDAgMC0xLjMxNS0xLjM4OXEtLjgyNy0uNTItMS44ODYtLjUyLTEuMDQ3IDAtMS44ODUuNTJhMy43IDMuNyAwIDAgMC0xLjMyNyAxLjM5cS0uNDc3Ljg2OC0uNDc3IDEuOTY4IDAgMS4xMjMuNDc3IDIuMDAzYTMuOCAzLjggMCAwIDAgMS4zMjcgMS4zOXEuODM3LjUwOSAxLjg4NS41MDlNMTQ1LjgxNiAyMC42OTVoLTIuMzg2di02LjI4N3EwLTEuNTQtLjg0OS0yLjQ1NS0uODM5LS45MTUtMi4yNTgtLjkxNS0xLjQ2NiAwLTIuMzYzLjk3My0uODk2Ljk3Mi0uODk2IDIuNTgydjYuMTAyaC0yLjM4NlY5LjExNmgyLjAxM2wuMDgyIDEuODY0YTQuMjUgNC4yNSAwIDAgMSAxLjY3Ni0xLjU1MXExLjAzNS0uNTQ0IDIuNDMyLS41NDQgMi4yOTQgMCAzLjYwOSAxLjM3NyAxLjMyNiAxLjM3OSAxLjMyNiAzLjc5OHpNMTY2LjE3OCAxOC40ODNhOC43IDguNyAwIDAgMS0yLjg4OCAxLjg4N3EtMS42NjQuNjcyLTMuNjMxLjY3MnQtMy42MzItLjY3MmE4LjcgOC43IDAgMCAxLTIuODk4LTEuODg3IDguOSA4LjkgMCAwIDEtMS45MDgtMi44NzFxLS42NzYtMS42NTYtLjY3Ni0zLjYwMSAwLTEuOTU3LjY3Ni0zLjYwMWE4LjcgOC43IDAgMCAxIDEuOTA4LTIuODcyIDguNyA4LjcgMCAwIDEgMi44OTgtMS44ODdxMS42NjUtLjY3MSAzLjYzMi0uNjcxIDEuOTU1IDAgMy42MTkuNjgzIDEuNjc3LjY3MSAyLjg3NSAxLjg2NGwtMS43OCAxLjgwNmE2LjIgNi4yIDAgMCAwLTIuMDk0LTEuNTRxLTEuMjEyLS41NjctMi42NTQtLjU2Ny0xLjM5NyAwLTIuNTczLjUxYTYgNiAwIDAgMC0yLjA0OSAxLjQyMyA2LjYgNi42IDAgMCAwLTEuMzYxIDIuMTU0cS0uNDc4IDEuMjM5LS40NzggMi42OTh0LjQ3OCAyLjY5OGE2LjcgNi43IDAgMCAwIDEuMzYxIDIuMTY1IDYuMiA2LjIgMCAwIDAgMi4wNDkgMS40MjRxMS4xNzUuNDk4IDIuNTczLjQ5OCAxLjQ0MiAwIDIuNjU0LS41NTZhNi4yIDYuMiAwIDAgMCAyLjA4My0xLjU1MnpNMTcwLjA5MiAyMC42OTVoLTIuNTRWMi44NjRoMi41NHpNMTc3LjUzNCAyMC45MjZxLTEuNzQ1IDAtMy4xNDMtLjc4N2E1Ljg0IDUuODQgMCAwIDEtMi4xOTktMi4xNDJxLS44MDMtMS4zNjYtLjgwMy0zLjA5MiAwLTEuNzEzLjgwMy0zLjA2OGE1LjggNS44IDAgMCAxIDIuMTk5LTIuMTUzcTEuMzk4LS44IDMuMTQzLS44IDEuNzU4IDAgMy4xNDIuOGE1Ljc1IDUuNzUgMCAwIDEgMi4xNzYgMi4xNTNxLjgwNCAxLjM1NS44MDMgMy4wNjggMCAxLjcyNS0uODAzIDMuMDkyYTUuOCA1LjggMCAwIDEtMi4xNzYgMi4xNDJxLTEuMzg0Ljc4Ny0zLjE0Mi43ODdtLS4wMTMtMi4xM3ExLjA2IDAgMS44ODctLjUxYTMuNyAzLjcgMCAwIDAgMS4zMTUtMS4zOXEuNDg4LS44OC40ODgtMi4wMDIgMC0xLjEtLjQ4OC0xLjk2OWEzLjYgMy42IDAgMCAwLTEuMzE1LTEuMzg5cS0uODI3LS41Mi0xLjg4Ny0uNTJhMy41IDMuNSAwIDAgMC0xLjg4NS41MiAzLjcgMy43IDAgMCAwLTEuMzI2IDEuMzlxLS40NzcuODY4LS40NzcgMS45NjggMCAxLjEyMy40NzcgMi4wMDNhMy44IDMuOCAwIDAgMCAxLjMyNiAxLjM5IDMuNTYgMy41NiAwIDAgMCAxLjg4NS41MDlNMTk2LjEgMjAuNjk1aC0yLjAyNmwtLjA4Mi0xLjg2NHEtLjY0IDEuMDE4LTEuNjc2IDEuNTYzLTEuMDI1LjUzMi0yLjQzMy41MzItMi4yOCAwLTMuNjA3LTEuMzc4LTEuMzE2LTEuMzktMS4zMTYtMy43OTdWOS4xMTZoMi4zODd2Ni4yODdxMCAxLjU0LjgzNyAyLjQ1NS44NC45MTUgMi4yNTguOTE1IDEuNDY4IDAgMi4zNjQtLjk3My45MDctLjk4NC45MDctMi41ODJWOS4xMTZoMi4zODd6TTIwOS44NCAyMC42OTVoLTIuMTA2bC0uMTI5LTEuNjU2YTUuNyA1LjcgMCAwIDEtMS45MDggMS4zOXEtMS4xMDUuNDk3LTIuNDMzLjQ5Ny0xLjY3NiAwLTMuMDAyLS43ODdhNS43IDUuNyAwIDAgMS0yLjA5Ni0yLjE1NHEtLjc1Ni0xLjM2NS0uNzU2LTMuMDggMC0xLjcyNC43NTYtMy4wOGE1LjcgNS43IDAgMCAxIDIuMDk2LTIuMTUzcTEuMzI2LS43ODcgMy4wMDItLjc4NyAxLjI1NyAwIDIuMzI5LjQ1MWE1LjUgNS41IDAgMCAxIDEuODYyIDEuMjYyVjMuMzI3aDIuMzg1em0tNi4xOC0xLjlxMS4wNTkgMCAxLjkwOC0uNDg2YTMuNzQgMy43NCAwIDAgMCAxLjM3NC0xLjMycS41MTItLjgzMy41MTMtMS44OTh2LS4zOTRxMC0xLjA2NS0uNTEzLTEuODk5YTMuNjUgMy42NSAwIDAgMC0xLjM3NC0xLjMwOHEtLjg0OS0uNDc1LTEuOTA4LS40NzUtMS4wODIgMC0xLjk0My41MWEzLjcgMy43IDAgMCAwLTEuMzYzIDEuMzg5cS0uNS44NjktLjQ5OSAxLjk4IDAgMS4xMTEuNDk5IDEuOTkxYTMuOCAzLjggMCAwIDAgMS4zNjMgMS40MDFxLjg2LjUxIDEuOTQzLjUxIi8+CiAgPC9nPgo8L3N2Zz4=", width: 210, height: 24 }, z: 100, silent: !0 }, C = {
2
2
  color: M,
3
3
  backgroundColor: L,
4
4
  textStyle: N,
@@ -22,7 +22,7 @@ export {
22
22
  g as categoryAxis,
23
23
  M as color,
24
24
  S as dataZoom,
25
- o as default,
25
+ C as default,
26
26
  x as graphic,
27
27
  y as grid,
28
28
  T as legend,
@@ -13,46 +13,21 @@ declare const _default: {
13
13
  },
14
14
  {
15
15
  "offset": 1,
16
- "color": "#DF687D"
16
+ "color": "#DE7385"
17
17
  }
18
18
  ]
19
19
  },
20
- {
21
- "type": "linear",
22
- "x": 0,
23
- "y": 0,
24
- "x2": 0,
25
- "y2": 1,
26
- "colorStops": [
27
- {
28
- "offset": 0,
29
- "color": "#FFFFFF"
30
- },
31
- {
32
- "offset": 1,
33
- "color": "#FFFFFF"
34
- }
35
- ]
36
- },
37
- {
38
- "type": "linear",
39
- "x": 0,
40
- "y": 0,
41
- "x2": 0,
42
- "y2": 1,
43
- "colorStops": [
44
- {
45
- "offset": 0,
46
- "color": "#1E6FDA"
47
- },
48
- {
49
- "offset": 1,
50
- "color": "#3F8CFF"
51
- }
52
- ]
53
- }
20
+ "#00BBFA",
21
+ "#0072B2",
22
+ "#E69F00",
23
+ "#D66119",
24
+ "#56B4E9",
25
+ "#45B26B",
26
+ "#F0E442",
27
+ "#FF99BF",
28
+ "#8277D8"
54
29
  ],
55
- "backgroundColor": "#242731",
30
+ "backgroundColor": "#1A1D1F",
56
31
  "textStyle": {
57
32
  "fontFamily": "Poppins, sans-serif",
58
33
  "fontWeight": 500
@@ -214,7 +189,7 @@ declare const _default: {
214
189
  "outerBoundsContain": "axisLabel"
215
190
  },
216
191
  "dataZoom": {
217
- "backgroundColor": "rgba(36, 39, 49, 0)",
192
+ "backgroundColor": "rgba(26, 29, 31, 0)",
218
193
  "borderColor": "#3A3D46",
219
194
  "borderRadius": 4,
220
195
  "dataBackground": {
@@ -268,6 +243,7 @@ declare const _default: {
268
243
  }
269
244
  },
270
245
  "tooltip": {
246
+ "confine": true,
271
247
  "backgroundColor": "transparent",
272
248
  "padding": 10,
273
249
  "borderRadius": 8,
@@ -1,4 +1,4 @@
1
- const M = [{ type: "linear", x: 0, y: 0, x2: 0, y2: 1, colorStops: [{ offset: 0, color: "#C14E64" }, { offset: 1, color: "#DF687D" }] }, { type: "linear", x: 0, y: 0, x2: 0, y2: 1, colorStops: [{ offset: 0, color: "#FFFFFF" }, { offset: 1, color: "#FFFFFF" }] }, { type: "linear", x: 0, y: 0, x2: 0, y2: 1, colorStops: [{ offset: 0, color: "#1E6FDA" }, { offset: 1, color: "#3F8CFF" }] }], L = "#242731", N = { fontFamily: "Poppins, sans-serif", fontWeight: 500 }, j = { top: 32, left: 32, textStyle: { color: "#FFFFFF", fontSize: 16, fontWeight: 600 }, subtextStyle: { color: "#A7A9AD" } }, D = { itemStyle: { borderWidth: 1 }, lineStyle: { width: 2 }, areaStyle: { opacity: 0.15 }, showSymbol: !1, symbolSize: 5, symbol: "circle", smooth: !1, sampling: "lttb" }, A = { barGap: "25%", barCategoryGap: "25%" }, g = { axisLine: { show: !0, lineStyle: { color: "#3A3D46", type: "dashed" } }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !1 } }, I = { axisLine: { show: !1 }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !0, lineStyle: { color: ["#3A3D46"], type: "dashed" } } }, u = { axisLine: { show: !1 }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !0, lineStyle: { color: ["#3A3D46"], type: "dashed" } } }, t = { axisLine: { show: !0, lineStyle: { color: "#3A3D46" } }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !1 } }, T = { top: 82, left: "auto", right: 32, icon: "circle", itemGap: 22, itemWidth: 12, itemHeight: 12, textStyle: { color: "#A7A9AD", fontSize: 11 } }, y = { top: 132, left: 32, right: 32, bottom: 32, outerBoundsMode: "same", outerBoundsContain: "axisLabel" }, S = { backgroundColor: "rgba(36, 39, 49, 0)", borderColor: "#3A3D46", borderRadius: 4, dataBackground: { lineStyle: { color: "#606060", width: 1 }, areaStyle: { color: "rgba(96, 96, 96, 0.3)" } }, selectedDataBackground: { lineStyle: { color: "#b36674", width: 1 }, areaStyle: { color: "rgba(164, 91, 105, 0.5)" } }, fillerColor: "rgba(82, 45, 52, 0.35)", handleStyle: { color: "#C14E64", borderColor: "#C14E64" }, moveHandleStyle: { color: "#b36674" }, brushStyle: { color: "rgba(95, 58, 65, 0.2)" }, emphasis: { handleStyle: { color: "rgb(209, 123, 140)", borderColor: "rgb(209, 123, 140)" } }, handleSize: "100%", textStyle: { color: "#A7A9AD" } }, z = { label: { color: "#A7A9AD" }, emphasis: { label: { color: "#FFFFFF" } } }, i = { backgroundColor: "transparent", padding: 10, borderRadius: 8, borderColor: "#50525A", borderWidth: 1, textStyle: { color: "#FCFCFC", fontFamily: "Poppins, sans-serif", fontSize: 11, fontStyle: "normal", fontWeight: 500 }, extraCssText: "letter-spacing: 0.22px; box-shadow: 0 14px 11px -4px rgba(0, 0, 0, 0.30), 0 -4px 4px 0 rgba(0, 0, 0, 0.04) inset; background: radial-gradient(ellipse at 25% 0%, rgba(217, 217, 217, 0.12) 0%, transparent 60%), #1A1D1F;" }, x = { type: "image", id: "fractal-watermark", left: "center", top: "middle", style: { image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMTAiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMTAgMjQiPgogIDxnIGZpbGw9IiNhN2E5YWQiIGZpbGwtb3BhY2l0eT0iMC4zIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjczMyAxLjg2OGgtMjEuNjdDNi40MzggMS44NjggMS44NzggNi40MDQgMS44NzggMTJzNC41NiAxMC4xMzIgMTAuMTg1IDEwLjEzMmgyMS42N2M1LjYyNSAwIDEwLjE4NS00LjUzNiAxMC4xODUtMTAuMTMyUzM5LjM1OCAxLjg2OCAzMy43MzMgMS44NjhNMCAxMmMwIDYuNjI3IDUuNCAxMiAxMi4wNjMgMTJoMjEuNjdjNi42NjIgMCAxMi4wNjMtNS4zNzMgMTIuMDYzLTEycy01LjQtMTItMTIuMDYzLTEyaC0yMS42N0M1LjQwMSAwIDAgNS4zNzMgMCAxMiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMy43MzQgNS4xNzRoLTIxLjY3QzguMjczIDUuMTc0IDUuMiA4LjIzIDUuMiAxMnMzLjA3MyA2LjgyNiA2Ljg2MyA2LjgyNmgyMS42N2MzLjc5IDAgNi44NjItMy4wNTYgNi44NjItNi44MjZzLTMuMDcyLTYuODI2LTYuODYyLTYuODI2TTMuMzIzIDEyYzAgNC44MDIgMy45MTIgOC42OTUgOC43NCA4LjY5NWgyMS42N2M0LjgyNyAwIDguNzQtMy44OTMgOC43NC04LjY5NXMtMy45MTMtOC42OTUtOC43NC04LjY5NWgtMjEuNjdjLTQuODI4IDAtOC43NCAzLjg5My04Ljc0IDguNjk1IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjczMyA4LjQ4aC0yMS42N0EzLjUzIDMuNTMgMCAwIDAgOC41MjMgMTJhMy41MyAzLjUzIDAgMCAwIDMuNTQgMy41MjFoMjEuNjdhMy41MyAzLjUzIDAgMCAwIDMuNTQtMy41MiAzLjUzIDMuNTMgMCAwIDAtMy41NC0zLjUyMk02LjY0NiAxMmMwIDIuOTc2IDIuNDI1IDUuMzkgNS40MTcgNS4zOWgyMS42N2MyLjk5MiAwIDUuNDE4LTIuNDE0IDUuNDE4LTUuMzlzLTIuNDI2LTUuMzktNS40MTgtNS4zOWgtMjEuNjdjLTIuOTkyIDAtNS40MTcgMi40MTQtNS40MTcgNS4zOSIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBkPSJNNTguNDUgMjAuNjk1aC0yLjc3TDQ4LjU5MiAzLjMyN2gyLjdsNS43NzMgMTQuNTQyIDUuNzczLTE0LjU0MmgyLjd6TTczLjk4NiAyMC42OTVoLTIuMDZsLS4xNC0xLjQ4MnEtLjY0LjgxLTEuNjE3IDEuMjYyLS45NzguNDUtMi4xNjUuNDUxLTEuMjQ2IDAtMi4yMjMtLjQ4NmEzLjg2IDMuODYgMCAwIDEtMS41MzctMS4zMzIgMy40IDMuNCAwIDAgMS0uNTU5LTEuOTIycTAtMS4xMzQuNjA2LTEuOTkxLjYwNS0uODY4IDEuNjUzLTEuMzU1IDEuMDQ3LS40OTggMi4zODYtLjQ5OC44MzggMCAxLjY5OS4xOTdhNi42IDYuNiAwIDAgMSAxLjU3MS41NTZ2LS40MjlxMC0uODQ0LS40NDItMS40NDdhMi43IDIuNyAwIDAgMC0xLjE4Ny0uOTM4IDQuMSA0LjEgMCAwIDAtMS42NTMtLjMyNHEtLjgwMiAwLTEuNjQxLjI3OC0uODI2LjI3Ny0xLjU2Ljg1N2wtLjcyMS0xLjkzNGE5LjMgOS4zIDAgMCAxIDIuMi0uOTUgOC4zIDguMyAwIDAgMSAyLjI1Ny0uMzIzcTEuNTgzIDAgMi43MjQuNjI1YTQuMzUgNC4zNSAwIDAgMSAxLjc4IDEuNzgzcS42MyAxLjE0Ni42MyAyLjcxem0tNS41MTctMS43ODNxLjgyNyAwIDEuNTI1LS4zMzZhMi45MyAyLjkzIDAgMCAwIDEuMTI5LS45NzNxLjQ0Mi0uNjM2LjQ3Ny0xLjQ4MnYtLjE2MmE0LjcgNC43IDAgMCAwLTEuMzM4LS42ODMgNC42IDQuNiAwIDAgMC0xLjUwMi0uMjU1cS0xLjE3NiAwLTEuOTU1LjU1Ni0uNzguNTU1LS43OCAxLjQyNCAwIC41NDQuMzE0Ljk4NC4zMjYuNDMuODczLjY4My41Ni4yNDQgMS4yNTcuMjQ0TTc3Ljk4OCAyMC42OTVoLTIuNTRWMi44NjRoMi41NHpNODAuNjY2IDUuNzU4cS0uNTQ4IDAtLjkyLS4zODJhMS4yOCAxLjI4IDAgMCAxLS4zNzMtLjkyNnEwLS41NDUuMzczLS45MTUuMzcyLS4zODIuOTItLjM4Mi41NiAwIC45MzIuMzgyLjM4NS4zNy4zODUuOTE1dC0uMzg1LjkyNnEtLjM3My4zODItLjkzMi4zODJtMS4xODggMTQuOTM3aC0yLjM4OFY5LjExNmgyLjM4OHpNOTUuNjI4IDIwLjY5NUg5My41MmwtLjEyOC0xLjY1NmE1LjcgNS43IDAgMCAxLTEuOTA5IDEuMzlxLTEuMTA2LjQ5Ny0yLjQzMi40OTctMS42NzcgMC0zLjAwMy0uNzg3YTUuNyA1LjcgMCAwIDEtMi4wOTUtMi4xNTRxLS43NTctMS4zNjUtLjc1Ny0zLjA4IDAtMS43MjQuNzU3LTMuMDhhNS43IDUuNyAwIDAgMSAyLjA5NS0yLjE1M3ExLjMyNi0uNzg3IDMuMDAzLS43ODcgMS4yNTcgMCAyLjMyOC40NTFhNS41IDUuNSAwIDAgMSAxLjg2MiAxLjI2MlYzLjMyN2gyLjM4NnptLTYuMTgtMS45cTEuMDU5IDAgMS45MDgtLjQ4NmEzLjc1IDMuNzUgMCAwIDAgMS4zNzQtMS4zMnEuNTEyLS44MzMuNTEyLTEuODk4di0uMzk0cTAtMS4wNjUtLjUxMi0xLjg5OWEzLjY2IDMuNjYgMCAwIDAtMS4zNzQtMS4zMDhxLS44NS0uNDc1LTEuOTA4LS40NzUtMS4wODMgMC0xLjk0NC41MWEzLjcgMy43IDAgMCAwLTEuMzYyIDEuMzg5cS0uNS44NjktLjUgMS45OHQuNSAxLjk5MWEzLjggMy44IDAgMCAwIDEuMzYyIDEuNDAxcS44NjEuNTEgMS45NDQuNTFNMTA3LjI2OSAyMC42OTVoLTIuMDYxbC0uMTM5LTEuNDgycS0uNjQuODEtMS42MTggMS4yNjItLjk3OC40NS0yLjE2NS40NTEtMS4yNDUgMC0yLjIyMy0uNDg2YTMuODYgMy44NiAwIDAgMS0xLjUzNi0xLjMzMiAzLjQgMy40IDAgMCAxLS41Ni0xLjkyMnEwLTEuMTM0LjYwNi0xLjk5MS42MDUtLjg2OCAxLjY1My0xLjM1NSAxLjA0Ny0uNDk4IDIuMzg2LS40OThhNy42IDcuNiAwIDAgMSAxLjY5OS4xOTcgNi42IDYuNiAwIDAgMSAxLjU3MS41NTZ2LS40MjlxMC0uODQ0LS40NDItMS40NDdhMi43IDIuNyAwIDAgMC0xLjE4Ny0uOTM4IDQuMSA0LjEgMCAwIDAtMS42NTMtLjMyNCA1LjE2NiA1LjE2NiAwIDAgMC0zLjIgMS4xMzVsLS43MjItMS45MzRhOS4zIDkuMyAwIDAgMSAyLjItLjk1IDguMyA4LjMgMCAwIDEgMi4yNTgtLjMyM3ExLjU4MyAwIDIuNzIzLjYyNWE0LjM1IDQuMzUgMCAwIDEgMS43ODEgMS43ODNxLjYyOSAxLjE0Ni42MjkgMi43MXptLTUuNTE3LTEuNzgzcS44MjYgMCAxLjUyNC0uMzM2YTIuOSAyLjkgMCAwIDAgMS4xMjktLjk3M3EuNDQyLS42MzYuNDc3LTEuNDgydi0uMTYyYTQuNiA0LjYgMCAwIDAtMS4zMzgtLjY4MyA0LjYgNC42IDAgMCAwLTEuNTAyLS4yNTVxLTEuMTc1IDAtMS45NTUuNTU2LS43OC41NTUtLjc4IDEuNDI0IDAgLjU0NC4zMTQuOTg0LjMyNy40My44NzMuNjgzLjU2LjI0NCAxLjI1OC4yNDRNMTE2LjQyNCAyMC40MDVxLTEuMjIxLjUyMS0yLjM2Mi41MjF0LTIuMDAyLS40ODZhMy41IDMuNSAwIDAgMS0xLjMzOS0xLjM2NnEtLjQ3Ny0uODkyLS40NzctMi4wNXYtNS43ODloLTIuMDM3VjkuMTE2aDIuMTUzVjYuMjIyaDIuMjd2Mi44OTRoMy4zOTl2Mi4xMTloLTMuMzk5djUuMzVxMCAxLjAxOC41NDcgMS42Mi41NTguNTkgMS40MzIuNTkuNzM0IDAgMS40NTUtLjQ0ek0xMTguNTggNS43NThxLS41NDggMC0uOTItLjM4MmExLjI4IDEuMjggMCAwIDEtLjM3My0uOTI2cTAtLjU0NS4zNzMtLjkxNS4zNzItLjM4Mi45Mi0uMzgyLjU2IDAgLjkzMi4zODIuMzg1LjM3LjM4NS45MTV0LS4zODUuOTI2YTEuMjUgMS4yNSAwIDAgMS0uOTMyLjM4Mm0xLjE4OCAxNC45MzdoLTIuMzg4VjkuMTE2aDIuMzg4ek0xMjcuMjU3IDIwLjkyNnEtMS43NDYgMC0zLjE0My0uNzg3YTUuODUgNS44NSAwIDAgMS0yLjItMi4xNDJxLS44MDMtMS4zNjYtLjgwMy0zLjA5MiAwLTEuNzEzLjgwMy0zLjA2OGE1LjggNS44IDAgMCAxIDIuMi0yLjE1M3ExLjM5Ny0uOCAzLjE0My0uOCAxLjc1NyAwIDMuMTQyLjhhNS43NiA1Ljc2IDAgMCAxIDIuMTc3IDIuMTUzcS44MDMgMS4zNTUuODAzIDMuMDY4IDAgMS43MjUtLjgwMyAzLjA5MmE1LjggNS44IDAgMCAxLTIuMTc3IDIuMTQycS0xLjM4NS43ODctMy4xNDIuNzg3bS0uMDEyLTIuMTNxMS4wNiAwIDEuODg2LS41MWEzLjcgMy43IDAgMCAwIDEuMzE1LTEuMzlxLjQ4OS0uODguNDg5LTIuMDAyIDAtMS4xLS40ODktMS45NjlhMy42IDMuNiAwIDAgMC0xLjMxNS0xLjM4OXEtLjgyNy0uNTItMS44ODYtLjUyLTEuMDQ3IDAtMS44ODUuNTJhMy43IDMuNyAwIDAgMC0xLjMyNyAxLjM5cS0uNDc3Ljg2OC0uNDc3IDEuOTY4IDAgMS4xMjMuNDc3IDIuMDAzYTMuOCAzLjggMCAwIDAgMS4zMjcgMS4zOXEuODM3LjUwOSAxLjg4NS41MDlNMTQ1LjgxNiAyMC42OTVoLTIuMzg2di02LjI4N3EwLTEuNTQtLjg0OS0yLjQ1NS0uODM5LS45MTUtMi4yNTgtLjkxNS0xLjQ2NiAwLTIuMzYzLjk3My0uODk2Ljk3Mi0uODk2IDIuNTgydjYuMTAyaC0yLjM4NlY5LjExNmgyLjAxM2wuMDgyIDEuODY0YTQuMjUgNC4yNSAwIDAgMSAxLjY3Ni0xLjU1MXExLjAzNS0uNTQ0IDIuNDMyLS41NDQgMi4yOTQgMCAzLjYwOSAxLjM3NyAxLjMyNiAxLjM3OSAxLjMyNiAzLjc5OHpNMTY2LjE3OCAxOC40ODNhOC43IDguNyAwIDAgMS0yLjg4OCAxLjg4N3EtMS42NjQuNjcyLTMuNjMxLjY3MnQtMy42MzItLjY3MmE4LjcgOC43IDAgMCAxLTIuODk4LTEuODg3IDguOSA4LjkgMCAwIDEtMS45MDgtMi44NzFxLS42NzYtMS42NTYtLjY3Ni0zLjYwMSAwLTEuOTU3LjY3Ni0zLjYwMWE4LjcgOC43IDAgMCAxIDEuOTA4LTIuODcyIDguNyA4LjcgMCAwIDEgMi44OTgtMS44ODdxMS42NjUtLjY3MSAzLjYzMi0uNjcxIDEuOTU1IDAgMy42MTkuNjgzIDEuNjc3LjY3MSAyLjg3NSAxLjg2NGwtMS43OCAxLjgwNmE2LjIgNi4yIDAgMCAwLTIuMDk0LTEuNTRxLTEuMjEyLS41NjctMi42NTQtLjU2Ny0xLjM5NyAwLTIuNTczLjUxYTYgNiAwIDAgMC0yLjA0OSAxLjQyMyA2LjYgNi42IDAgMCAwLTEuMzYxIDIuMTU0cS0uNDc4IDEuMjM5LS40NzggMi42OTh0LjQ3OCAyLjY5OGE2LjcgNi43IDAgMCAwIDEuMzYxIDIuMTY1IDYuMiA2LjIgMCAwIDAgMi4wNDkgMS40MjRxMS4xNzUuNDk4IDIuNTczLjQ5OCAxLjQ0MiAwIDIuNjU0LS41NTZhNi4yIDYuMiAwIDAgMCAyLjA4My0xLjU1MnpNMTcwLjA5MiAyMC42OTVoLTIuNTRWMi44NjRoMi41NHpNMTc3LjUzNCAyMC45MjZxLTEuNzQ1IDAtMy4xNDMtLjc4N2E1Ljg0IDUuODQgMCAwIDEtMi4xOTktMi4xNDJxLS44MDMtMS4zNjYtLjgwMy0zLjA5MiAwLTEuNzEzLjgwMy0zLjA2OGE1LjggNS44IDAgMCAxIDIuMTk5LTIuMTUzcTEuMzk4LS44IDMuMTQzLS44IDEuNzU4IDAgMy4xNDIuOGE1Ljc1IDUuNzUgMCAwIDEgMi4xNzYgMi4xNTNxLjgwNCAxLjM1NS44MDMgMy4wNjggMCAxLjcyNS0uODAzIDMuMDkyYTUuOCA1LjggMCAwIDEtMi4xNzYgMi4xNDJxLTEuMzg0Ljc4Ny0zLjE0Mi43ODdtLS4wMTMtMi4xM3ExLjA2IDAgMS44ODctLjUxYTMuNyAzLjcgMCAwIDAgMS4zMTUtMS4zOXEuNDg4LS44OC40ODgtMi4wMDIgMC0xLjEtLjQ4OC0xLjk2OWEzLjYgMy42IDAgMCAwLTEuMzE1LTEuMzg5cS0uODI3LS41Mi0xLjg4Ny0uNTJhMy41IDMuNSAwIDAgMC0xLjg4NS41MiAzLjcgMy43IDAgMCAwLTEuMzI2IDEuMzlxLS40NzcuODY4LS40NzcgMS45NjggMCAxLjEyMy40NzcgMi4wMDNhMy44IDMuOCAwIDAgMCAxLjMyNiAxLjM5IDMuNTYgMy41NiAwIDAgMCAxLjg4NS41MDlNMTk2LjEgMjAuNjk1aC0yLjAyNmwtLjA4Mi0xLjg2NHEtLjY0IDEuMDE4LTEuNjc2IDEuNTYzLTEuMDI1LjUzMi0yLjQzMy41MzItMi4yOCAwLTMuNjA3LTEuMzc4LTEuMzE2LTEuMzktMS4zMTYtMy43OTdWOS4xMTZoMi4zODd2Ni4yODdxMCAxLjU0LjgzNyAyLjQ1NS44NC45MTUgMi4yNTguOTE1IDEuNDY4IDAgMi4zNjQtLjk3My45MDctLjk4NC45MDctMi41ODJWOS4xMTZoMi4zODd6TTIwOS44NCAyMC42OTVoLTIuMTA2bC0uMTI5LTEuNjU2YTUuNyA1LjcgMCAwIDEtMS45MDggMS4zOXEtMS4xMDUuNDk3LTIuNDMzLjQ5Ny0xLjY3NiAwLTMuMDAyLS43ODdhNS43IDUuNyAwIDAgMS0yLjA5Ni0yLjE1NHEtLjc1Ni0xLjM2NS0uNzU2LTMuMDggMC0xLjcyNC43NTYtMy4wOGE1LjcgNS43IDAgMCAxIDIuMDk2LTIuMTUzcTEuMzI2LS43ODcgMy4wMDItLjc4NyAxLjI1NyAwIDIuMzI5LjQ1MWE1LjUgNS41IDAgMCAxIDEuODYyIDEuMjYyVjMuMzI3aDIuMzg1em0tNi4xOC0xLjlxMS4wNTkgMCAxLjkwOC0uNDg2YTMuNzQgMy43NCAwIDAgMCAxLjM3NC0xLjMycS41MTItLjgzMy41MTMtMS44OTh2LS4zOTRxMC0xLjA2NS0uNTEzLTEuODk5YTMuNjUgMy42NSAwIDAgMC0xLjM3NC0xLjMwOHEtLjg0OS0uNDc1LTEuOTA4LS40NzUtMS4wODIgMC0xLjk0My41MWEzLjcgMy43IDAgMCAwLTEuMzYzIDEuMzg5cS0uNS44NjktLjQ5OSAxLjk4IDAgMS4xMTEuNDk5IDEuOTkxYTMuOCAzLjggMCAwIDAgMS4zNjMgMS40MDFxLjg2LjUxIDEuOTQzLjUxIi8+CiAgPC9nPgo8L3N2Zz4=", width: 210, height: 24 }, z: 100, silent: !0 }, o = {
1
+ const M = [{ type: "linear", x: 0, y: 0, x2: 0, y2: 1, colorStops: [{ offset: 0, color: "#C14E64" }, { offset: 1, color: "#DE7385" }] }, "#00BBFA", "#0072B2", "#E69F00", "#D66119", "#56B4E9", "#45B26B", "#F0E442", "#FF99BF", "#8277D8"], L = "#1A1D1F", N = { fontFamily: "Poppins, sans-serif", fontWeight: 500 }, j = { top: 32, left: 32, textStyle: { color: "#FFFFFF", fontSize: 16, fontWeight: 600 }, subtextStyle: { color: "#A7A9AD" } }, D = { itemStyle: { borderWidth: 1 }, lineStyle: { width: 2 }, areaStyle: { opacity: 0.15 }, showSymbol: !1, symbolSize: 5, symbol: "circle", smooth: !1, sampling: "lttb" }, A = { barGap: "25%", barCategoryGap: "25%" }, g = { axisLine: { show: !0, lineStyle: { color: "#3A3D46", type: "dashed" } }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !1 } }, I = { axisLine: { show: !1 }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !0, lineStyle: { color: ["#3A3D46"], type: "dashed" } } }, u = { axisLine: { show: !1 }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !0, lineStyle: { color: ["#3A3D46"], type: "dashed" } } }, t = { axisLine: { show: !0, lineStyle: { color: "#3A3D46" } }, axisTick: { show: !1 }, axisLabel: { show: !0, color: "#A7A9AD", hideOverlap: !0 }, nameLocation: "middle", nameTextStyle: { color: "#A7A9AD", fontSize: 11, fontWeight: 400 }, splitLine: { show: !1 } }, T = { top: 82, left: "auto", right: 32, icon: "circle", itemGap: 22, itemWidth: 12, itemHeight: 12, textStyle: { color: "#A7A9AD", fontSize: 11 } }, y = { top: 132, left: 32, right: 32, bottom: 32, outerBoundsMode: "same", outerBoundsContain: "axisLabel" }, S = { backgroundColor: "rgba(26, 29, 31, 0)", borderColor: "#3A3D46", borderRadius: 4, dataBackground: { lineStyle: { color: "#606060", width: 1 }, areaStyle: { color: "rgba(96, 96, 96, 0.3)" } }, selectedDataBackground: { lineStyle: { color: "#b36674", width: 1 }, areaStyle: { color: "rgba(164, 91, 105, 0.5)" } }, fillerColor: "rgba(82, 45, 52, 0.35)", handleStyle: { color: "#C14E64", borderColor: "#C14E64" }, moveHandleStyle: { color: "#b36674" }, brushStyle: { color: "rgba(95, 58, 65, 0.2)" }, emphasis: { handleStyle: { color: "rgb(209, 123, 140)", borderColor: "rgb(209, 123, 140)" } }, handleSize: "100%", textStyle: { color: "#A7A9AD" } }, z = { label: { color: "#A7A9AD" }, emphasis: { label: { color: "#FFFFFF" } } }, i = { confine: !0, backgroundColor: "transparent", padding: 10, borderRadius: 8, borderColor: "#50525A", borderWidth: 1, textStyle: { color: "#FCFCFC", fontFamily: "Poppins, sans-serif", fontSize: 11, fontStyle: "normal", fontWeight: 500 }, extraCssText: "letter-spacing: 0.22px; box-shadow: 0 14px 11px -4px rgba(0, 0, 0, 0.30), 0 -4px 4px 0 rgba(0, 0, 0, 0.04) inset; background: radial-gradient(ellipse at 25% 0%, rgba(217, 217, 217, 0.12) 0%, transparent 60%), #1A1D1F;" }, x = { type: "image", id: "fractal-watermark", left: "center", top: "middle", style: { image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMTAiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAyMTAgMjQiPgogIDxnIGZpbGw9IiNhN2E5YWQiIGZpbGwtb3BhY2l0eT0iMC4zIj4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjczMyAxLjg2OGgtMjEuNjdDNi40MzggMS44NjggMS44NzggNi40MDQgMS44NzggMTJzNC41NiAxMC4xMzIgMTAuMTg1IDEwLjEzMmgyMS42N2M1LjYyNSAwIDEwLjE4NS00LjUzNiAxMC4xODUtMTAuMTMyUzM5LjM1OCAxLjg2OCAzMy43MzMgMS44NjhNMCAxMmMwIDYuNjI3IDUuNCAxMiAxMi4wNjMgMTJoMjEuNjdjNi42NjIgMCAxMi4wNjMtNS4zNzMgMTIuMDYzLTEycy01LjQtMTItMTIuMDYzLTEyaC0yMS42N0M1LjQwMSAwIDAgNS4zNzMgMCAxMiIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zMy43MzQgNS4xNzRoLTIxLjY3QzguMjczIDUuMTc0IDUuMiA4LjIzIDUuMiAxMnMzLjA3MyA2LjgyNiA2Ljg2MyA2LjgyNmgyMS42N2MzLjc5IDAgNi44NjItMy4wNTYgNi44NjItNi44MjZzLTMuMDcyLTYuODI2LTYuODYyLTYuODI2TTMuMzIzIDEyYzAgNC44MDIgMy45MTIgOC42OTUgOC43NCA4LjY5NWgyMS42N2M0LjgyNyAwIDguNzQtMy44OTMgOC43NC04LjY5NXMtMy45MTMtOC42OTUtOC43NC04LjY5NWgtMjEuNjdjLTQuODI4IDAtOC43NCAzLjg5My04Ljc0IDguNjk1IiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz4KICAgIDxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTMzLjczMyA4LjQ4aC0yMS42N0EzLjUzIDMuNTMgMCAwIDAgOC41MjMgMTJhMy41MyAzLjUzIDAgMCAwIDMuNTQgMy41MjFoMjEuNjdhMy41MyAzLjUzIDAgMCAwIDMuNTQtMy41MiAzLjUzIDMuNTMgMCAwIDAtMy41NC0zLjUyMk02LjY0NiAxMmMwIDIuOTc2IDIuNDI1IDUuMzkgNS40MTcgNS4zOWgyMS42N2MyLjk5MiAwIDUuNDE4LTIuNDE0IDUuNDE4LTUuMzlzLTIuNDI2LTUuMzktNS40MTgtNS4zOWgtMjEuNjdjLTIuOTkyIDAtNS40MTcgMi40MTQtNS40MTcgNS4zOSIgY2xpcC1ydWxlPSJldmVub2RkIi8+CiAgICA8cGF0aCBkPSJNNTguNDUgMjAuNjk1aC0yLjc3TDQ4LjU5MiAzLjMyN2gyLjdsNS43NzMgMTQuNTQyIDUuNzczLTE0LjU0MmgyLjd6TTczLjk4NiAyMC42OTVoLTIuMDZsLS4xNC0xLjQ4MnEtLjY0LjgxLTEuNjE3IDEuMjYyLS45NzguNDUtMi4xNjUuNDUxLTEuMjQ2IDAtMi4yMjMtLjQ4NmEzLjg2IDMuODYgMCAwIDEtMS41MzctMS4zMzIgMy40IDMuNCAwIDAgMS0uNTU5LTEuOTIycTAtMS4xMzQuNjA2LTEuOTkxLjYwNS0uODY4IDEuNjUzLTEuMzU1IDEuMDQ3LS40OTggMi4zODYtLjQ5OC44MzggMCAxLjY5OS4xOTdhNi42IDYuNiAwIDAgMSAxLjU3MS41NTZ2LS40MjlxMC0uODQ0LS40NDItMS40NDdhMi43IDIuNyAwIDAgMC0xLjE4Ny0uOTM4IDQuMSA0LjEgMCAwIDAtMS42NTMtLjMyNHEtLjgwMiAwLTEuNjQxLjI3OC0uODI2LjI3Ny0xLjU2Ljg1N2wtLjcyMS0xLjkzNGE5LjMgOS4zIDAgMCAxIDIuMi0uOTUgOC4zIDguMyAwIDAgMSAyLjI1Ny0uMzIzcTEuNTgzIDAgMi43MjQuNjI1YTQuMzUgNC4zNSAwIDAgMSAxLjc4IDEuNzgzcS42MyAxLjE0Ni42MyAyLjcxem0tNS41MTctMS43ODNxLjgyNyAwIDEuNTI1LS4zMzZhMi45MyAyLjkzIDAgMCAwIDEuMTI5LS45NzNxLjQ0Mi0uNjM2LjQ3Ny0xLjQ4MnYtLjE2MmE0LjcgNC43IDAgMCAwLTEuMzM4LS42ODMgNC42IDQuNiAwIDAgMC0xLjUwMi0uMjU1cS0xLjE3NiAwLTEuOTU1LjU1Ni0uNzguNTU1LS43OCAxLjQyNCAwIC41NDQuMzE0Ljk4NC4zMjYuNDMuODczLjY4My41Ni4yNDQgMS4yNTcuMjQ0TTc3Ljk4OCAyMC42OTVoLTIuNTRWMi44NjRoMi41NHpNODAuNjY2IDUuNzU4cS0uNTQ4IDAtLjkyLS4zODJhMS4yOCAxLjI4IDAgMCAxLS4zNzMtLjkyNnEwLS41NDUuMzczLS45MTUuMzcyLS4zODIuOTItLjM4Mi41NiAwIC45MzIuMzgyLjM4NS4zNy4zODUuOTE1dC0uMzg1LjkyNnEtLjM3My4zODItLjkzMi4zODJtMS4xODggMTQuOTM3aC0yLjM4OFY5LjExNmgyLjM4OHpNOTUuNjI4IDIwLjY5NUg5My41MmwtLjEyOC0xLjY1NmE1LjcgNS43IDAgMCAxLTEuOTA5IDEuMzlxLTEuMTA2LjQ5Ny0yLjQzMi40OTctMS42NzcgMC0zLjAwMy0uNzg3YTUuNyA1LjcgMCAwIDEtMi4wOTUtMi4xNTRxLS43NTctMS4zNjUtLjc1Ny0zLjA4IDAtMS43MjQuNzU3LTMuMDhhNS43IDUuNyAwIDAgMSAyLjA5NS0yLjE1M3ExLjMyNi0uNzg3IDMuMDAzLS43ODcgMS4yNTcgMCAyLjMyOC40NTFhNS41IDUuNSAwIDAgMSAxLjg2MiAxLjI2MlYzLjMyN2gyLjM4NnptLTYuMTgtMS45cTEuMDU5IDAgMS45MDgtLjQ4NmEzLjc1IDMuNzUgMCAwIDAgMS4zNzQtMS4zMnEuNTEyLS44MzMuNTEyLTEuODk4di0uMzk0cTAtMS4wNjUtLjUxMi0xLjg5OWEzLjY2IDMuNjYgMCAwIDAtMS4zNzQtMS4zMDhxLS44NS0uNDc1LTEuOTA4LS40NzUtMS4wODMgMC0xLjk0NC41MWEzLjcgMy43IDAgMCAwLTEuMzYyIDEuMzg5cS0uNS44NjktLjUgMS45OHQuNSAxLjk5MWEzLjggMy44IDAgMCAwIDEuMzYyIDEuNDAxcS44NjEuNTEgMS45NDQuNTFNMTA3LjI2OSAyMC42OTVoLTIuMDYxbC0uMTM5LTEuNDgycS0uNjQuODEtMS42MTggMS4yNjItLjk3OC40NS0yLjE2NS40NTEtMS4yNDUgMC0yLjIyMy0uNDg2YTMuODYgMy44NiAwIDAgMS0xLjUzNi0xLjMzMiAzLjQgMy40IDAgMCAxLS41Ni0xLjkyMnEwLTEuMTM0LjYwNi0xLjk5MS42MDUtLjg2OCAxLjY1My0xLjM1NSAxLjA0Ny0uNDk4IDIuMzg2LS40OThhNy42IDcuNiAwIDAgMSAxLjY5OS4xOTcgNi42IDYuNiAwIDAgMSAxLjU3MS41NTZ2LS40MjlxMC0uODQ0LS40NDItMS40NDdhMi43IDIuNyAwIDAgMC0xLjE4Ny0uOTM4IDQuMSA0LjEgMCAwIDAtMS42NTMtLjMyNCA1LjE2NiA1LjE2NiAwIDAgMC0zLjIgMS4xMzVsLS43MjItMS45MzRhOS4zIDkuMyAwIDAgMSAyLjItLjk1IDguMyA4LjMgMCAwIDEgMi4yNTgtLjMyM3ExLjU4MyAwIDIuNzIzLjYyNWE0LjM1IDQuMzUgMCAwIDEgMS43ODEgMS43ODNxLjYyOSAxLjE0Ni42MjkgMi43MXptLTUuNTE3LTEuNzgzcS44MjYgMCAxLjUyNC0uMzM2YTIuOSAyLjkgMCAwIDAgMS4xMjktLjk3M3EuNDQyLS42MzYuNDc3LTEuNDgydi0uMTYyYTQuNiA0LjYgMCAwIDAtMS4zMzgtLjY4MyA0LjYgNC42IDAgMCAwLTEuNTAyLS4yNTVxLTEuMTc1IDAtMS45NTUuNTU2LS43OC41NTUtLjc4IDEuNDI0IDAgLjU0NC4zMTQuOTg0LjMyNy40My44NzMuNjgzLjU2LjI0NCAxLjI1OC4yNDRNMTE2LjQyNCAyMC40MDVxLTEuMjIxLjUyMS0yLjM2Mi41MjF0LTIuMDAyLS40ODZhMy41IDMuNSAwIDAgMS0xLjMzOS0xLjM2NnEtLjQ3Ny0uODkyLS40NzctMi4wNXYtNS43ODloLTIuMDM3VjkuMTE2aDIuMTUzVjYuMjIyaDIuMjd2Mi44OTRoMy4zOTl2Mi4xMTloLTMuMzk5djUuMzVxMCAxLjAxOC41NDcgMS42Mi41NTguNTkgMS40MzIuNTkuNzM0IDAgMS40NTUtLjQ0ek0xMTguNTggNS43NThxLS41NDggMC0uOTItLjM4MmExLjI4IDEuMjggMCAwIDEtLjM3My0uOTI2cTAtLjU0NS4zNzMtLjkxNS4zNzItLjM4Mi45Mi0uMzgyLjU2IDAgLjkzMi4zODIuMzg1LjM3LjM4NS45MTV0LS4zODUuOTI2YTEuMjUgMS4yNSAwIDAgMS0uOTMyLjM4Mm0xLjE4OCAxNC45MzdoLTIuMzg4VjkuMTE2aDIuMzg4ek0xMjcuMjU3IDIwLjkyNnEtMS43NDYgMC0zLjE0My0uNzg3YTUuODUgNS44NSAwIDAgMS0yLjItMi4xNDJxLS44MDMtMS4zNjYtLjgwMy0zLjA5MiAwLTEuNzEzLjgwMy0zLjA2OGE1LjggNS44IDAgMCAxIDIuMi0yLjE1M3ExLjM5Ny0uOCAzLjE0My0uOCAxLjc1NyAwIDMuMTQyLjhhNS43NiA1Ljc2IDAgMCAxIDIuMTc3IDIuMTUzcS44MDMgMS4zNTUuODAzIDMuMDY4IDAgMS43MjUtLjgwMyAzLjA5MmE1LjggNS44IDAgMCAxLTIuMTc3IDIuMTQycS0xLjM4NS43ODctMy4xNDIuNzg3bS0uMDEyLTIuMTNxMS4wNiAwIDEuODg2LS41MWEzLjcgMy43IDAgMCAwIDEuMzE1LTEuMzlxLjQ4OS0uODguNDg5LTIuMDAyIDAtMS4xLS40ODktMS45NjlhMy42IDMuNiAwIDAgMC0xLjMxNS0xLjM4OXEtLjgyNy0uNTItMS44ODYtLjUyLTEuMDQ3IDAtMS44ODUuNTJhMy43IDMuNyAwIDAgMC0xLjMyNyAxLjM5cS0uNDc3Ljg2OC0uNDc3IDEuOTY4IDAgMS4xMjMuNDc3IDIuMDAzYTMuOCAzLjggMCAwIDAgMS4zMjcgMS4zOXEuODM3LjUwOSAxLjg4NS41MDlNMTQ1LjgxNiAyMC42OTVoLTIuMzg2di02LjI4N3EwLTEuNTQtLjg0OS0yLjQ1NS0uODM5LS45MTUtMi4yNTgtLjkxNS0xLjQ2NiAwLTIuMzYzLjk3My0uODk2Ljk3Mi0uODk2IDIuNTgydjYuMTAyaC0yLjM4NlY5LjExNmgyLjAxM2wuMDgyIDEuODY0YTQuMjUgNC4yNSAwIDAgMSAxLjY3Ni0xLjU1MXExLjAzNS0uNTQ0IDIuNDMyLS41NDQgMi4yOTQgMCAzLjYwOSAxLjM3NyAxLjMyNiAxLjM3OSAxLjMyNiAzLjc5OHpNMTY2LjE3OCAxOC40ODNhOC43IDguNyAwIDAgMS0yLjg4OCAxLjg4N3EtMS42NjQuNjcyLTMuNjMxLjY3MnQtMy42MzItLjY3MmE4LjcgOC43IDAgMCAxLTIuODk4LTEuODg3IDguOSA4LjkgMCAwIDEtMS45MDgtMi44NzFxLS42NzYtMS42NTYtLjY3Ni0zLjYwMSAwLTEuOTU3LjY3Ni0zLjYwMWE4LjcgOC43IDAgMCAxIDEuOTA4LTIuODcyIDguNyA4LjcgMCAwIDEgMi44OTgtMS44ODdxMS42NjUtLjY3MSAzLjYzMi0uNjcxIDEuOTU1IDAgMy42MTkuNjgzIDEuNjc3LjY3MSAyLjg3NSAxLjg2NGwtMS43OCAxLjgwNmE2LjIgNi4yIDAgMCAwLTIuMDk0LTEuNTRxLTEuMjEyLS41NjctMi42NTQtLjU2Ny0xLjM5NyAwLTIuNTczLjUxYTYgNiAwIDAgMC0yLjA0OSAxLjQyMyA2LjYgNi42IDAgMCAwLTEuMzYxIDIuMTU0cS0uNDc4IDEuMjM5LS40NzggMi42OTh0LjQ3OCAyLjY5OGE2LjcgNi43IDAgMCAwIDEuMzYxIDIuMTY1IDYuMiA2LjIgMCAwIDAgMi4wNDkgMS40MjRxMS4xNzUuNDk4IDIuNTczLjQ5OCAxLjQ0MiAwIDIuNjU0LS41NTZhNi4yIDYuMiAwIDAgMCAyLjA4My0xLjU1MnpNMTcwLjA5MiAyMC42OTVoLTIuNTRWMi44NjRoMi41NHpNMTc3LjUzNCAyMC45MjZxLTEuNzQ1IDAtMy4xNDMtLjc4N2E1Ljg0IDUuODQgMCAwIDEtMi4xOTktMi4xNDJxLS44MDMtMS4zNjYtLjgwMy0zLjA5MiAwLTEuNzEzLjgwMy0zLjA2OGE1LjggNS44IDAgMCAxIDIuMTk5LTIuMTUzcTEuMzk4LS44IDMuMTQzLS44IDEuNzU4IDAgMy4xNDIuOGE1Ljc1IDUuNzUgMCAwIDEgMi4xNzYgMi4xNTNxLjgwNCAxLjM1NS44MDMgMy4wNjggMCAxLjcyNS0uODAzIDMuMDkyYTUuOCA1LjggMCAwIDEtMi4xNzYgMi4xNDJxLTEuMzg0Ljc4Ny0zLjE0Mi43ODdtLS4wMTMtMi4xM3ExLjA2IDAgMS44ODctLjUxYTMuNyAzLjcgMCAwIDAgMS4zMTUtMS4zOXEuNDg4LS44OC40ODgtMi4wMDIgMC0xLjEtLjQ4OC0xLjk2OWEzLjYgMy42IDAgMCAwLTEuMzE1LTEuMzg5cS0uODI3LS41Mi0xLjg4Ny0uNTJhMy41IDMuNSAwIDAgMC0xLjg4NS41MiAzLjcgMy43IDAgMCAwLTEuMzI2IDEuMzlxLS40NzcuODY4LS40NzcgMS45NjggMCAxLjEyMy40NzcgMi4wMDNhMy44IDMuOCAwIDAgMCAxLjMyNiAxLjM5IDMuNTYgMy41NiAwIDAgMCAxLjg4NS41MDlNMTk2LjEgMjAuNjk1aC0yLjAyNmwtLjA4Mi0xLjg2NHEtLjY0IDEuMDE4LTEuNjc2IDEuNTYzLTEuMDI1LjUzMi0yLjQzMy41MzItMi4yOCAwLTMuNjA3LTEuMzc4LTEuMzE2LTEuMzktMS4zMTYtMy43OTdWOS4xMTZoMi4zODd2Ni4yODdxMCAxLjU0LjgzNyAyLjQ1NS44NC45MTUgMi4yNTguOTE1IDEuNDY4IDAgMi4zNjQtLjk3My45MDctLjk4NC45MDctMi41ODJWOS4xMTZoMi4zODd6TTIwOS44NCAyMC42OTVoLTIuMTA2bC0uMTI5LTEuNjU2YTUuNyA1LjcgMCAwIDEtMS45MDggMS4zOXEtMS4xMDUuNDk3LTIuNDMzLjQ5Ny0xLjY3NiAwLTMuMDAyLS43ODdhNS43IDUuNyAwIDAgMS0yLjA5Ni0yLjE1NHEtLjc1Ni0xLjM2NS0uNzU2LTMuMDggMC0xLjcyNC43NTYtMy4wOGE1LjcgNS43IDAgMCAxIDIuMDk2LTIuMTUzcTEuMzI2LS43ODcgMy4wMDItLjc4NyAxLjI1NyAwIDIuMzI5LjQ1MWE1LjUgNS41IDAgMCAxIDEuODYyIDEuMjYyVjMuMzI3aDIuMzg1em0tNi4xOC0xLjlxMS4wNTkgMCAxLjkwOC0uNDg2YTMuNzQgMy43NCAwIDAgMCAxLjM3NC0xLjMycS41MTItLjgzMy41MTMtMS44OTh2LS4zOTRxMC0xLjA2NS0uNTEzLTEuODk5YTMuNjUgMy42NSAwIDAgMC0xLjM3NC0xLjMwOHEtLjg0OS0uNDc1LTEuOTA4LS40NzUtMS4wODIgMC0xLjk0My41MWEzLjcgMy43IDAgMCAwLTEuMzYzIDEuMzg5cS0uNS44NjktLjQ5OSAxLjk4IDAgMS4xMTEuNDk5IDEuOTkxYTMuOCAzLjggMCAwIDAgMS4zNjMgMS40MDFxLjg2LjUxIDEuOTQzLjUxIi8+CiAgPC9nPgo8L3N2Zz4=", width: 210, height: 24 }, z: 100, silent: !0 }, C = {
2
2
  color: M,
3
3
  backgroundColor: L,
4
4
  textStyle: N,
@@ -22,7 +22,7 @@ export {
22
22
  g as categoryAxis,
23
23
  M as color,
24
24
  S as dataZoom,
25
- o as default,
25
+ C as default,
26
26
  x as graphic,
27
27
  y as grid,
28
28
  T as legend,
@@ -1,66 +1,67 @@
1
1
  "use client";
2
- import { useRef as d, useState as k, useEffect as b, useCallback as S } from "react";
3
- import { calculateTitleLayout as l } from "./calculate-title-layout.js";
4
- import { mergeThemeGraphicIntoOptions as h } from "./merge-theme-graphic-into-options.js";
5
- import { sanitizeChartOptions as O } from "./sanitize-chart-options.js";
6
- const v = /* @__PURE__ */ new Set();
7
- function M({ options: o, theme: n }) {
8
- const r = d(null), c = d(null), R = d(o), y = d(n?.config), m = d(n?.config.graphic), [C, w] = k(!1);
9
- R.current = o, y.current = n?.config, m.current = n?.config.graphic, b(() => {
10
- const s = r.current;
2
+ import { useRef as d, useState as T, useEffect as I, useCallback as S } from "react";
3
+ import { calculateTitleLayout as m } from "./calculate-title-layout.js";
4
+ import { replaceFormatterTokens as O } from "./formatters/replace-formatter-tokens.js";
5
+ import { mergeThemeGraphicIntoOptions as R } from "./merge-theme-graphic-into-options.js";
6
+ import { sanitizeChartOptions as w } from "./sanitize-chart-options.js";
7
+ const W = /* @__PURE__ */ new Set();
8
+ function L({ options: o, theme: t }) {
9
+ const n = d(null), c = d(null), y = d(o), C = d(t?.config), z = d(t?.config.graphic), [b, v] = T(!1);
10
+ y.current = o, C.current = t?.config, z.current = t?.config.graphic, I(() => {
11
+ const s = n.current;
11
12
  if (!s) return;
12
- let t = !0, e;
13
- const z = new ResizeObserver((i) => {
13
+ let r = !0, e;
14
+ const f = new ResizeObserver((i) => {
14
15
  const a = i[0], u = c.current;
15
16
  if (!a || !u) return;
16
- const f = a.contentRect.width, g = O(R.current), p = l(g, f, y.current);
17
- u.setOption(h(p, m.current), {
17
+ const p = a.contentRect.width, g = w(y.current), l = O(g), h = m(l, p, C.current);
18
+ u.setOption(R(h, z.current), {
18
19
  replaceMerge: ["graphic"]
19
20
  }), u.resize();
20
21
  });
21
- return z.observe(s), (async () => {
22
+ return f.observe(s), (async () => {
22
23
  try {
23
24
  const i = await import("echarts");
24
- if (!t || !r.current) return;
25
- if (n && !v.has(n.name)) {
26
- const { graphic: p, ...W } = n.config;
27
- i.registerTheme(n.name, W), v.add(n.name);
25
+ if (!r || !n.current) return;
26
+ if (t && !W.has(t.name)) {
27
+ const { graphic: h, ...F } = t.config;
28
+ i.registerTheme(t.name, F), W.add(t.name);
28
29
  }
29
- const a = i.getInstanceByDom(r.current);
30
- a && a.dispose(), e = i.init(r.current, n?.name, {
30
+ const a = i.getInstanceByDom(n.current);
31
+ a && a.dispose(), e = i.init(n.current, t?.name, {
31
32
  renderer: "svg"
32
33
  }), c.current = e;
33
- const u = r.current.clientWidth, f = O(o), g = l(f, u, n?.config);
34
- e.setOption(h(g, n?.config.graphic), {
34
+ const u = n.current.clientWidth, p = w(o), g = O(p), l = m(g, u, t?.config);
35
+ e.setOption(R(l, t?.config.graphic), {
35
36
  replaceMerge: ["graphic"]
36
- }), e.resize(), w(!0);
37
+ }), e.resize(), v(!0);
37
38
  } catch (i) {
38
39
  console.error("Failed to load echarts", i);
39
40
  }
40
41
  })(), () => {
41
- t = !1, z.disconnect(), e && e.dispose(), c.current = null, w(!1);
42
+ r = !1, f.disconnect(), e && e.dispose(), c.current = null, v(!1);
42
43
  };
43
- }, [n, o]), b(() => {
44
- if (!C || !c.current || !r.current) return;
45
- const s = r.current.clientWidth, t = O(o), e = l(t, s, n?.config);
46
- c.current.setOption(h(e, n?.config.graphic), {
44
+ }, [t, o]), I(() => {
45
+ if (!b || !c.current || !n.current) return;
46
+ const s = n.current.clientWidth, r = w(o), e = O(r), f = m(e, s, t?.config);
47
+ c.current.setOption(R(f, t?.config.graphic), {
47
48
  replaceMerge: ["graphic"]
48
49
  });
49
- }, [C, o, n?.config, n?.config.graphic]);
50
- const I = S(async () => {
50
+ }, [b, o, t?.config, t?.config.graphic]);
51
+ const k = S(async () => {
51
52
  if (!c.current) return;
52
53
  const s = c.current.getDataURL({
53
54
  type: "png",
54
55
  pixelRatio: 2,
55
56
  backgroundColor: "#fff"
56
- }), t = document.createElement("a");
57
- t.download = `chart-${(/* @__PURE__ */ new Date()).toISOString()}.png`, t.href = s, document.body.appendChild(t), t.click(), document.body.removeChild(t);
57
+ }), r = document.createElement("a");
58
+ r.download = `chart-${(/* @__PURE__ */ new Date()).toISOString()}.png`, r.href = s, document.body.appendChild(r), r.click(), document.body.removeChild(r);
58
59
  }, []);
59
60
  return {
60
- containerRef: r,
61
- downloadChart: I
61
+ containerRef: n,
62
+ downloadChart: k
62
63
  };
63
64
  }
64
65
  export {
65
- M as useChartInstance
66
+ L as useChartInstance
66
67
  };
@@ -1,32 +1,33 @@
1
- import * as p from "echarts";
1
+ import * as h from "echarts";
2
2
  import { randomUUID as y } from "node:crypto";
3
- import { writeFileSync as b, mkdtempSync as O } from "node:fs";
3
+ import { writeFileSync as F, mkdtempSync as O } from "node:fs";
4
4
  import { tmpdir as j } from "node:os";
5
5
  import T from "node:path";
6
- import { Image as C, Canvas as F, FontLibrary as I } from "skia-canvas";
7
- import { calculateTitleLayout as S } from "../components/echarts-renderer/calculate-title-layout.js";
6
+ import { Image as C, Canvas as I, FontLibrary as S } from "skia-canvas";
7
+ import { calculateTitleLayout as w } from "../components/echarts-renderer/calculate-title-layout.js";
8
8
  import { isChartTheme as $ } from "../components/echarts-renderer/chart-theme.js";
9
- import { mergeThemeGraphicIntoOptions as w } from "../components/echarts-renderer/merge-theme-graphic-into-options.js";
9
+ import { replaceFormatterTokens as A } from "../components/echarts-renderer/formatters/replace-formatter-tokens.js";
10
+ import { mergeThemeGraphicIntoOptions as D } from "../components/echarts-renderer/merge-theme-graphic-into-options.js";
10
11
  globalThis.Image = C;
11
12
  const d = /* @__PURE__ */ new Set();
12
13
  let l;
13
- function A() {
14
+ function E() {
14
15
  return l || (l = O(T.join(j(), "chart-fonts-"))), l;
15
16
  }
16
- function D(e) {
17
+ function G(e) {
17
18
  for (const t of e)
18
19
  if (!d.has(t.family))
19
20
  try {
20
- const r = A(), n = t.data.map((s, m) => {
21
- const i = T.join(r, `${t.family}-${String(m)}.ttf`);
22
- return b(i, s), i;
21
+ const r = E(), n = t.data.map((c, m) => {
22
+ const o = T.join(r, `${t.family}-${String(m)}.ttf`);
23
+ return F(o, c), o;
23
24
  });
24
- I.use(t.family, n), d.add(t.family);
25
+ S.use(t.family, n), d.add(t.family);
25
26
  } catch (r) {
26
27
  console.warn(`Failed to register ${t.family} fonts, charts will use fallback font:`, r);
27
28
  }
28
29
  }
29
- const E = /* @__PURE__ */ new Set([
30
+ const N = /* @__PURE__ */ new Set([
30
31
  "aria",
31
32
  // Tries to set DOM attributes which node-canvas doesn't implement
32
33
  "toolbox",
@@ -38,48 +39,48 @@ const E = /* @__PURE__ */ new Set([
38
39
  "axisPointer"
39
40
  // Crosshair on hover
40
41
  ]);
41
- function G(e) {
42
+ function P(e) {
42
43
  if (!e || typeof e != "object" || Array.isArray(e))
43
44
  return { animation: !1 };
44
45
  const t = Object.fromEntries(
45
- Object.entries(e).filter(([r]) => !E.has(r))
46
+ Object.entries(e).filter(([r]) => !N.has(r))
46
47
  );
47
48
  return t.animation = !1, t;
48
49
  }
49
- function M({
50
+ function V({
50
51
  option: e,
51
52
  theme: t,
52
53
  fonts: r,
53
54
  width: n = 800,
54
- height: s = 600,
55
+ height: c = 600,
55
56
  devicePixelRatio: m = 2
56
57
  }) {
57
- r?.length && D(r);
58
- let i, o, f;
58
+ r?.length && G(r);
59
+ let o, i, f;
59
60
  const a = t;
60
61
  if (a && typeof a == "object")
61
62
  if ($(a)) {
62
- i = `theme-${y()}`, o = a.config, f = o.graphic;
63
- const { graphic: h, ...c } = o;
64
- p.registerTheme(i, c);
63
+ o = `theme-${y()}`, i = a.config, f = i.graphic;
64
+ const { graphic: p, ...s } = i;
65
+ h.registerTheme(o, s);
65
66
  } else {
66
- i = `theme-${y()}`, o = a, f = o.graphic;
67
- const { graphic: h, ...c } = o;
68
- p.registerTheme(i, c);
67
+ o = `theme-${y()}`, i = a, f = i.graphic;
68
+ const { graphic: p, ...s } = i;
69
+ h.registerTheme(o, s);
69
70
  }
70
- const g = new F(n, s), u = p.init(g, i, {
71
+ const g = new I(n, c), u = h.init(g, o, {
71
72
  renderer: "canvas",
72
73
  devicePixelRatio: m,
73
74
  width: n,
74
- height: s
75
+ height: c
75
76
  });
76
77
  try {
77
- const h = G(e), c = S(h, n, o);
78
- return u.setOption(w(c, f), { replaceMerge: ["graphic"] }), g.toBufferSync("png");
78
+ const p = P(e), s = A(p), b = w(s, n, i);
79
+ return u.setOption(D(b, f), { replaceMerge: ["graphic"] }), g.toBufferSync("png");
79
80
  } finally {
80
81
  u.dispose();
81
82
  }
82
83
  }
83
84
  export {
84
- M as renderChartToImage
85
+ V as renderChartToImage
85
86
  };
package/dist/server.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export { renderChartToImage, type RenderChartToImageOptions } from './lib/render-chart-to-image';
2
2
  export { renderMavrikChartToImage, type RenderMavrikChartToImageOptions } from './lib/render-mavrik-chart-to-image';
3
3
  export { sanitizeChartOptionsForStaticRendering } from './components/echarts-renderer/sanitize-chart-options-for-static-rendering';
4
+ export { PoppinsRegular, PoppinsMedium, PoppinsSemiBold, PoppinsBold } from './lib/font-data';
package/dist/server.js CHANGED
@@ -1,8 +1,13 @@
1
- import { renderChartToImage as o } from "./lib/render-chart-to-image.js";
2
- import { renderMavrikChartToImage as a } from "./lib/render-mavrik-chart-to-image.js";
1
+ import { renderChartToImage as e } from "./lib/render-chart-to-image.js";
2
+ import { renderMavrikChartToImage as i } from "./lib/render-mavrik-chart-to-image.js";
3
3
  import { sanitizeChartOptionsForStaticRendering as n } from "./components/echarts-renderer/sanitize-chart-options-for-static-rendering.js";
4
+ import { PoppinsBold as m, PoppinsMedium as d, PoppinsRegular as s, PoppinsSemiBold as f } from "./lib/font-data.js";
4
5
  export {
5
- o as renderChartToImage,
6
- a as renderMavrikChartToImage,
6
+ m as PoppinsBold,
7
+ d as PoppinsMedium,
8
+ s as PoppinsRegular,
9
+ f as PoppinsSemiBold,
10
+ e as renderChartToImage,
11
+ i as renderMavrikChartToImage,
7
12
  n as sanitizeChartOptionsForStaticRendering
8
13
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@validationcloud/fractal-ui",
3
3
  "private": false,
4
- "version": "1.59.0",
4
+ "version": "1.60.0",
5
5
  "module": "./dist/index.js",
6
6
  "type": "module",
7
7
  "files": [