@validationcloud/fractal-ui 1.59.0 → 1.61.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 +2 -0
- package/dist/charts.js +19 -14
- package/dist/components/echarts-renderer/echarts-renderer.js +15 -8
- package/dist/components/echarts-renderer/formatters/formatter-functions.d.ts +22 -0
- package/dist/components/echarts-renderer/formatters/formatter-functions.js +76 -0
- package/dist/components/echarts-renderer/formatters/formatter-tokens.d.ts +63 -0
- package/dist/components/echarts-renderer/formatters/formatter-tokens.js +45 -0
- package/dist/components/echarts-renderer/formatters/replace-formatter-tokens.d.ts +26 -0
- package/dist/components/echarts-renderer/formatters/replace-formatter-tokens.js +70 -0
- package/dist/components/echarts-renderer/formatters/replace-formatter-tokens.test.d.ts +1 -0
- package/dist/components/echarts-renderer/mavrik-theme-horizontal.json.d.ts +13 -37
- package/dist/components/echarts-renderer/mavrik-theme-horizontal.json.js +2 -2
- package/dist/components/echarts-renderer/mavrik-theme.json.d.ts +13 -37
- package/dist/components/echarts-renderer/mavrik-theme.json.js +2 -2
- package/dist/components/echarts-renderer/use-chart-instance.js +36 -35
- package/dist/lib/render-chart-to-image.js +30 -29
- package/dist/server.d.ts +1 -0
- package/dist/server.js +9 -4
- package/package.json +1 -1
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
|
|
4
|
-
import { useChartInstance as
|
|
5
|
-
import { MavrikChart as
|
|
6
|
-
import { MAVRIK_THEME as
|
|
7
|
-
import { hasHorizontalBars as
|
|
8
|
-
import { sanitizeChartOptionsForStaticRendering as
|
|
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
|
-
|
|
12
|
+
p as EChartsChartOption,
|
|
11
13
|
e as EChartsRenderer,
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
|
19
|
-
|
|
20
|
-
|
|
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
|
|
2
|
+
import { jsx as e } from "react/jsx-runtime";
|
|
3
3
|
import { forwardRef as f, useImperativeHandle as i } from "react";
|
|
4
|
-
import { twMerge as
|
|
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, ...
|
|
7
|
-
const { containerRef:
|
|
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
|
-
|
|
12
|
+
a,
|
|
13
13
|
() => ({
|
|
14
|
-
download:
|
|
14
|
+
download: r
|
|
15
15
|
}),
|
|
16
|
-
[
|
|
17
|
-
), /* @__PURE__ */
|
|
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,76 @@
|
|
|
1
|
+
function a(t) {
|
|
2
|
+
return t.includes(".") ? t.replace(/\.?0+$/, "") : t;
|
|
3
|
+
}
|
|
4
|
+
function d(t) {
|
|
5
|
+
const o = t.toString().split("."), e = o[0] ?? "0", r = o[1], c = e.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
6
|
+
return r !== void 0 ? `${c}.${r}` : c;
|
|
7
|
+
}
|
|
8
|
+
function n(t, o) {
|
|
9
|
+
const r = t.toFixed(o).split("."), c = r[0] ?? "0", i = r[1], s = c.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
10
|
+
return i !== void 0 ? `${s}.${i}` : s;
|
|
11
|
+
}
|
|
12
|
+
function _(t, o) {
|
|
13
|
+
const e = Math.abs(t), r = t < 0 ? "-" : "";
|
|
14
|
+
return e >= 1e12 ? `${r}${(e / 1e12).toFixed(o)}T` : e >= 1e9 ? `${r}${(e / 1e9).toFixed(o)}B` : e >= 1e6 ? `${r}${(e / 1e6).toFixed(o)}M` : e >= 1e3 ? `${r}${(e / 1e3).toFixed(o)}k` : a(n(t, o));
|
|
15
|
+
}
|
|
16
|
+
function I(t, o) {
|
|
17
|
+
if (t === 0) return 0;
|
|
18
|
+
const e = Math.floor(Math.log10(Math.abs(t))), r = Math.pow(10, o - e - 1);
|
|
19
|
+
return Math.round(t * r) / r;
|
|
20
|
+
}
|
|
21
|
+
function u(t, o) {
|
|
22
|
+
const e = Math.abs(t), r = t < 0 ? "-" : "", c = [
|
|
23
|
+
{ threshold: 1e12, divisor: 1e12, suffix: "T" },
|
|
24
|
+
{ threshold: 1e9, divisor: 1e9, suffix: "B" },
|
|
25
|
+
{ threshold: 1e6, divisor: 1e6, suffix: "M" },
|
|
26
|
+
{ threshold: 1e3, divisor: 1e3, suffix: "k" }
|
|
27
|
+
];
|
|
28
|
+
for (const s of c)
|
|
29
|
+
if (e >= s.threshold) {
|
|
30
|
+
const C = `${r}${d(e)}`, m = e / s.divisor, f = I(m, o), N = Math.floor(Math.log10(f)) + 1, $ = Math.max(0, o - N), l = `${r}${f.toFixed($)}${s.suffix}`, b = `${r}${a(f.toFixed($))}${s.suffix}`;
|
|
31
|
+
return l.length < C.length ? b : C;
|
|
32
|
+
}
|
|
33
|
+
const i = I(e, o);
|
|
34
|
+
if (i >= 1e3) {
|
|
35
|
+
const s = `${r}${d(i)}`, C = i / 1e3, m = Math.floor(Math.log10(C)) + 1, f = Math.max(0, o - m), N = `${r}${a(C.toFixed(f))}k`;
|
|
36
|
+
return N.length < s.length ? N : s;
|
|
37
|
+
}
|
|
38
|
+
return `${r}${a(d(i))}`;
|
|
39
|
+
}
|
|
40
|
+
const h = {
|
|
41
|
+
// Fixed decimal places with thousand separators
|
|
42
|
+
VC_PRECISION_0: (t) => n(Number(t), 0),
|
|
43
|
+
VC_PRECISION_1: (t) => n(Number(t), 1),
|
|
44
|
+
VC_PRECISION_2: (t) => n(Number(t), 2),
|
|
45
|
+
VC_PRECISION_3: (t) => n(Number(t), 3),
|
|
46
|
+
VC_PRECISION_4: (t) => n(Number(t), 4),
|
|
47
|
+
VC_PRECISION_5: (t) => n(Number(t), 5),
|
|
48
|
+
VC_PRECISION_6: (t) => n(Number(t), 6),
|
|
49
|
+
// Significant digits with compact notation (k/M/B/T) when shorter
|
|
50
|
+
VC_SIGNIFICANT_1: (t) => u(Number(t), 1),
|
|
51
|
+
VC_SIGNIFICANT_2: (t) => u(Number(t), 2),
|
|
52
|
+
VC_SIGNIFICANT_3: (t) => u(Number(t), 3),
|
|
53
|
+
VC_SIGNIFICANT_4: (t) => u(Number(t), 4),
|
|
54
|
+
VC_SIGNIFICANT_5: (t) => u(Number(t), 5),
|
|
55
|
+
VC_SIGNIFICANT_6: (t) => u(Number(t), 6),
|
|
56
|
+
// Compact notation
|
|
57
|
+
VC_COMPACT_0: (t) => _(Number(t), 0),
|
|
58
|
+
VC_COMPACT_1: (t) => _(Number(t), 1),
|
|
59
|
+
VC_COMPACT_2: (t) => _(Number(t), 2),
|
|
60
|
+
// Percentage formatting (multiplies by 100) with thousand separators, trailing zeros stripped
|
|
61
|
+
VC_PERCENT_0: (t) => `${n(Number(t) * 100, 0)}%`,
|
|
62
|
+
VC_PERCENT_1: (t) => `${a(n(Number(t) * 100, 1))}%`,
|
|
63
|
+
VC_PERCENT_2: (t) => `${a(n(Number(t) * 100, 2))}%`
|
|
64
|
+
};
|
|
65
|
+
function x(t) {
|
|
66
|
+
return h[t];
|
|
67
|
+
}
|
|
68
|
+
function V(t) {
|
|
69
|
+
const o = h[t.token];
|
|
70
|
+
return (e) => `${t.prefix}${o(e)}${t.suffix}`;
|
|
71
|
+
}
|
|
72
|
+
export {
|
|
73
|
+
V as createTemplateFormatter,
|
|
74
|
+
h as formatterRegistry,
|
|
75
|
+
x as getFormatter
|
|
76
|
+
};
|
|
@@ -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
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -13,46 +13,21 @@ declare const _default: {
|
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"offset": 1,
|
|
16
|
-
"color": "#
|
|
16
|
+
"color": "#DE7385"
|
|
17
17
|
}
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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": "#
|
|
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(
|
|
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
|
-
|
|
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": "#
|
|
16
|
+
"color": "#DE7385"
|
|
17
17
|
}
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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": "#
|
|
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(
|
|
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
|
-
|
|
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
|
|
3
|
-
import { calculateTitleLayout as
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
|
13
|
-
const
|
|
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
|
|
17
|
-
u.setOption(h
|
|
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
|
|
22
|
+
return f.observe(s), (async () => {
|
|
22
23
|
try {
|
|
23
24
|
const i = await import("echarts");
|
|
24
|
-
if (!
|
|
25
|
-
if (
|
|
26
|
-
const { graphic:
|
|
27
|
-
i.registerTheme(
|
|
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(
|
|
30
|
-
a && a.dispose(), e = i.init(
|
|
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 =
|
|
34
|
-
e.setOption(
|
|
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(),
|
|
37
|
+
}), e.resize(), v(!0);
|
|
37
38
|
} catch (i) {
|
|
38
39
|
console.error("Failed to load echarts", i);
|
|
39
40
|
}
|
|
40
41
|
})(), () => {
|
|
41
|
-
|
|
42
|
+
r = !1, f.disconnect(), e && e.dispose(), c.current = null, v(!1);
|
|
42
43
|
};
|
|
43
|
-
}, [
|
|
44
|
-
if (!
|
|
45
|
-
const s =
|
|
46
|
-
c.current.setOption(
|
|
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
|
-
}, [
|
|
50
|
-
const
|
|
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
|
-
}),
|
|
57
|
-
|
|
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:
|
|
61
|
-
downloadChart:
|
|
61
|
+
containerRef: n,
|
|
62
|
+
downloadChart: k
|
|
62
63
|
};
|
|
63
64
|
}
|
|
64
65
|
export {
|
|
65
|
-
|
|
66
|
+
L as useChartInstance
|
|
66
67
|
};
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as h from "echarts";
|
|
2
2
|
import { randomUUID as y } from "node:crypto";
|
|
3
|
-
import { writeFileSync as
|
|
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
|
|
7
|
-
import { calculateTitleLayout as
|
|
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 {
|
|
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
|
|
14
|
+
function E() {
|
|
14
15
|
return l || (l = O(T.join(j(), "chart-fonts-"))), l;
|
|
15
16
|
}
|
|
16
|
-
function
|
|
17
|
+
function G(e) {
|
|
17
18
|
for (const t of e)
|
|
18
19
|
if (!d.has(t.family))
|
|
19
20
|
try {
|
|
20
|
-
const r =
|
|
21
|
-
const
|
|
22
|
-
return
|
|
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
|
-
|
|
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
|
|
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
|
|
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]) => !
|
|
46
|
+
Object.entries(e).filter(([r]) => !N.has(r))
|
|
46
47
|
);
|
|
47
48
|
return t.animation = !1, t;
|
|
48
49
|
}
|
|
49
|
-
function
|
|
50
|
+
function V({
|
|
50
51
|
option: e,
|
|
51
52
|
theme: t,
|
|
52
53
|
fonts: r,
|
|
53
54
|
width: n = 800,
|
|
54
|
-
height:
|
|
55
|
+
height: c = 600,
|
|
55
56
|
devicePixelRatio: m = 2
|
|
56
57
|
}) {
|
|
57
|
-
r?.length &&
|
|
58
|
-
let
|
|
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
|
-
|
|
63
|
-
const { graphic:
|
|
64
|
-
|
|
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
|
-
|
|
67
|
-
const { graphic:
|
|
68
|
-
|
|
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
|
|
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:
|
|
75
|
+
height: c
|
|
75
76
|
});
|
|
76
77
|
try {
|
|
77
|
-
const
|
|
78
|
-
return u.setOption(
|
|
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
|
-
|
|
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
|
|
2
|
-
import { renderMavrikChartToImage as
|
|
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
|
-
|
|
6
|
-
|
|
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
|
};
|