@wick-charts/vue 0.6.0 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -3
- package/dist/ChartContainer.vue.js +99 -69
- package/dist/core/dist/chart/options.js +27 -16
- package/dist/core/dist/chart.js +566 -366
- package/dist/core/dist/components/crosshair.js +8 -6
- package/dist/core/dist/interactions/handler.js +36 -20
- package/dist/index.d.ts +90 -0
- package/package.json +2 -2
- package/src/ChartContainer.vue +116 -1
package/README.md
CHANGED
|
@@ -72,6 +72,30 @@ chart.setSeriesData(seriesId, data);
|
|
|
72
72
|
|
|
73
73
|
There's no separate `@wick-charts/core` package on npm — the three framework packages are the supported way to install the engine.
|
|
74
74
|
|
|
75
|
+
### Drop-in `<script>` — no build step
|
|
76
|
+
|
|
77
|
+
For a CodePen, JSFiddle, or a plain HTML page, load the prebuilt UMD bundle from a CDN — no npm, no bundler. It exposes the whole engine (every `ChartInstance`, series def, theme, and painter) as a `WickCharts` global:
|
|
78
|
+
|
|
79
|
+
```html
|
|
80
|
+
<div id="chart" style="width: 640px; height: 320px"></div>
|
|
81
|
+
|
|
82
|
+
<script src="https://cdn.jsdelivr.net/npm/@wick-charts/react/dist/wick-charts.umd.min.js"></script>
|
|
83
|
+
<script>
|
|
84
|
+
const { ChartInstance, LineSeriesDef } = WickCharts;
|
|
85
|
+
|
|
86
|
+
const chart = new ChartInstance(document.getElementById('chart'));
|
|
87
|
+
const id = chart.addSeries(LineSeriesDef);
|
|
88
|
+
chart.setLayerColors(id, ['#22c55e']);
|
|
89
|
+
chart.setSeriesData(id, [
|
|
90
|
+
{ time: Date.now() - 2 * 86_400_000, value: 100 },
|
|
91
|
+
{ time: Date.now() - 86_400_000, value: 118 },
|
|
92
|
+
{ time: Date.now(), value: 109 },
|
|
93
|
+
]);
|
|
94
|
+
</script>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
The same file is on unpkg (`https://unpkg.com/@wick-charts/react/dist/wick-charts.umd.min.js`); pin a version with `@x.y.z` for production. ~72 kB gzipped, self-contained.
|
|
98
|
+
|
|
75
99
|
## Bundle size
|
|
76
100
|
|
|
77
101
|
Packages ship per-module ESM with `sideEffects: false`, and each series component carries its own renderer — your bundler only ships the chart types you import.
|
|
@@ -80,9 +104,9 @@ Tree-shaken React scenarios via `pnpm size` (esbuild, minified, browser target,
|
|
|
80
104
|
|
|
81
105
|
| Scenario | Raw | Gzip | Brotli |
|
|
82
106
|
|---|---:|---:|---:|
|
|
83
|
-
| Candlestick only |
|
|
84
|
-
| Line only |
|
|
85
|
-
| Full React |
|
|
107
|
+
| Candlestick only | 109.8 kB | 34.1 kB | 30.0 kB |
|
|
108
|
+
| Line only | 125.6 kB | 38.7 kB | 33.8 kB |
|
|
109
|
+
| Full React | 253.5 kB | 78.1 kB | 65.6 kB |
|
|
86
110
|
|
|
87
111
|
## Migration
|
|
88
112
|
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { ChartInstance as
|
|
3
|
-
import { deepEqual as
|
|
4
|
-
import { catppuccin as
|
|
5
|
-
import { ChartKey as
|
|
6
|
-
const
|
|
1
|
+
import { defineComponent as U, ref as r, shallowRef as P, provide as l, computed as v, onMounted as G, nextTick as g, onUnmounted as I, watch as d, openBlock as y, createElementBlock as m, normalizeStyle as q, createElementVNode as o, createCommentVNode as w, renderSlot as J } from "vue";
|
|
2
|
+
import { ChartInstance as T } from "./core/dist/chart.js";
|
|
3
|
+
import { deepEqual as z } from "./core/dist/utils/deep-equal.js";
|
|
4
|
+
import { catppuccin as Q } from "./core/dist/theme/themes/catppuccin.js";
|
|
5
|
+
import { ChartKey as W, ThemeKey as X, TitleAnchorKey as Y, InfoBarAnchorKey as Z, LegendAnchorKey as ee, LegendRightAnchorKey as te, NavigatorAnchorKey as ie } from "./context.js";
|
|
6
|
+
const ae = { style: { display: "flex", "flex-direction": "row", flex: "1", "min-height": "0" } }, oe = { style: { display: "flex", "flex-direction": "column", flex: "1", "min-width": "0", "min-height": "0" } }, ne = {
|
|
7
7
|
key: 0,
|
|
8
8
|
"data-chart-header": "",
|
|
9
9
|
style: { "flex-shrink": "0", display: "flex", "flex-direction": "column", "pointer-events": "none" }
|
|
10
|
-
},
|
|
10
|
+
}, re = {
|
|
11
11
|
key: 1,
|
|
12
12
|
"data-chart-series-overlay": "",
|
|
13
13
|
style: { position: "absolute", inset: "0", "pointer-events": "none", "z-index": "3" }
|
|
14
|
-
},
|
|
14
|
+
}, H = 24, ce = /* @__PURE__ */ U({
|
|
15
15
|
__name: "ChartContainer",
|
|
16
16
|
props: {
|
|
17
|
-
theme: { default: () =>
|
|
17
|
+
theme: { default: () => Q.theme },
|
|
18
18
|
axis: {},
|
|
19
19
|
padding: {},
|
|
20
20
|
viewport: {},
|
|
@@ -22,6 +22,7 @@ const X = { style: { display: "flex", "flex-direction": "row", flex: "1", "min-h
|
|
|
22
22
|
gradient: { type: Boolean, default: !0 },
|
|
23
23
|
interactive: { type: Boolean, default: !0 },
|
|
24
24
|
grid: {},
|
|
25
|
+
fade: { type: [Boolean, Object], default: void 0 },
|
|
25
26
|
headerLayout: { default: "overlay" },
|
|
26
27
|
animations: { type: [Boolean, Object] },
|
|
27
28
|
perf: {},
|
|
@@ -33,76 +34,105 @@ const X = { style: { display: "flex", "flex-direction": "row", flex: "1", "min-h
|
|
|
33
34
|
onVisibleRangeChange: {},
|
|
34
35
|
onCrosshairMove: {}
|
|
35
36
|
},
|
|
36
|
-
setup(
|
|
37
|
-
const e =
|
|
38
|
-
l(
|
|
39
|
-
let
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
37
|
+
setup(b) {
|
|
38
|
+
const e = b, s = r(), a = P(null), x = P(e.theme), c = e.perf, p = e.onEdgeReached, C = r(null), R = r(null), k = r(null), _ = r(null), E = r(null), B = r(null);
|
|
39
|
+
l(W, a), l(X, x), l(Y, R), l(Z, k), l(ee, _), l(te, E), l(ie, B);
|
|
40
|
+
let f = null;
|
|
41
|
+
const u = r(0), O = v(() => e.fade === !1 ? !1 : typeof e.fade == "object" ? e.fade.top !== void 0 || e.fade.overlap !== void 0 : e.fade === !0), S = v(() => {
|
|
42
|
+
if (!O.value) return 0;
|
|
43
|
+
const t = typeof e.fade == "object" ? e.fade.overlap : void 0;
|
|
44
|
+
return t !== void 0 ? Math.max(0, t) : u.value / 2;
|
|
45
|
+
}), j = v(() => {
|
|
46
|
+
if (!O.value) return 0;
|
|
47
|
+
if (typeof e.fade == "object" && e.fade.top !== void 0) return e.fade.top;
|
|
48
|
+
const t = e.headerLayout === "overlay" ? u.value : 0;
|
|
49
|
+
return t > 0 ? t + H : H;
|
|
50
|
+
}), L = v(
|
|
51
|
+
() => e.headerLayout === "overlay" ? Math.max(0, u.value - S.value) : 0
|
|
52
|
+
);
|
|
53
|
+
function A() {
|
|
54
|
+
if (!a.value) return;
|
|
55
|
+
const i = { top: (e.padding?.top ?? 20) + L.value };
|
|
56
|
+
e.padding?.bottom !== void 0 && (i.bottom = e.padding.bottom), e.padding?.right !== void 0 && (i.right = e.padding.right), e.padding?.left !== void 0 && (i.left = e.padding.left), a.value.setPadding(i);
|
|
57
|
+
}
|
|
58
|
+
function M(t) {
|
|
59
|
+
if (e.fade === !1) {
|
|
60
|
+
t.fade = { top: 0, right: 0, left: 0 };
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (typeof e.fade != "object") return;
|
|
64
|
+
const i = {};
|
|
65
|
+
e.fade.top !== void 0 && (i.top = e.fade.top), e.fade.right !== void 0 && (i.right = e.fade.right), e.fade.left !== void 0 && (i.left = e.fade.left), t.fade = i;
|
|
66
|
+
}
|
|
67
|
+
function $() {
|
|
68
|
+
if (!a.value) return;
|
|
69
|
+
if (e.fade === !1) {
|
|
70
|
+
a.value.setFade({ top: 0, right: 0, left: 0 });
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
const t = { top: j.value };
|
|
74
|
+
typeof e.fade == "object" && (e.fade.right !== void 0 && (t.right = e.fade.right), e.fade.left !== void 0 && (t.left = e.fade.left)), a.value.setFade(t);
|
|
45
75
|
}
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
const t = e.headerLayout === "overlay" ?
|
|
76
|
+
function V() {
|
|
77
|
+
f?.disconnect(), f = null;
|
|
78
|
+
const t = e.headerLayout === "overlay" ? C.value : null;
|
|
49
79
|
if (!t) {
|
|
50
|
-
|
|
80
|
+
u.value = 0, A();
|
|
51
81
|
return;
|
|
52
82
|
}
|
|
53
83
|
const i = () => {
|
|
54
|
-
|
|
84
|
+
u.value = t.getBoundingClientRect().height, A();
|
|
55
85
|
};
|
|
56
|
-
i(),
|
|
86
|
+
i(), f = new ResizeObserver(i), f.observe(t);
|
|
57
87
|
}
|
|
58
|
-
function
|
|
59
|
-
t.on("pointClick", (
|
|
88
|
+
function K(t) {
|
|
89
|
+
t.on("pointClick", (n) => e.onPointClick?.(n)), t.on("pointDoubleClick", (n) => e.onPointDoubleClick?.(n)), t.on("seriesHover", (n) => e.onSeriesHover?.(n)), t.on("crosshairMove", (n) => e.onCrosshairMove?.(n));
|
|
60
90
|
const i = () => e.onVisibleRangeChange?.(t.getVisibleRange());
|
|
61
91
|
t.on("viewportChange", i), t.on("dataUpdate", i), t.on("seriesChange", i);
|
|
62
92
|
}
|
|
63
|
-
|
|
64
|
-
if (!
|
|
93
|
+
G(async () => {
|
|
94
|
+
if (!s.value) return;
|
|
65
95
|
const t = {};
|
|
66
|
-
e.axis && (t.axis = e.axis), e.theme && (t.theme = e.theme), e.padding && (t.padding = e.padding), e.viewport && (t.viewport = e.viewport), e.interactive !== void 0 && (t.interactive = e.interactive), e.grid !== void 0 && (t.grid = e.grid),
|
|
67
|
-
}),
|
|
68
|
-
|
|
96
|
+
e.axis && (t.axis = e.axis), e.theme && (t.theme = e.theme), e.padding && (t.padding = e.padding), e.viewport && (t.viewport = e.viewport), e.interactive !== void 0 && (t.interactive = e.interactive), e.grid !== void 0 && (t.grid = e.grid), c !== void 0 && (t.perf = c), p && (t.onEdgeReached = p), e.animations !== void 0 && (t.animations = e.animations), M(t), a.value = new T(s.value, t), K(a.value), e.onReady?.(a.value), await g(), V();
|
|
97
|
+
}), I(() => {
|
|
98
|
+
f?.disconnect(), f = null, a.value?.destroy(), a.value = null;
|
|
69
99
|
}), d(
|
|
70
100
|
() => e.headerLayout,
|
|
71
101
|
async () => {
|
|
72
|
-
|
|
102
|
+
a.value && (await g(), V());
|
|
73
103
|
}
|
|
74
104
|
), d(
|
|
75
105
|
() => e.theme,
|
|
76
106
|
(t) => {
|
|
77
|
-
|
|
107
|
+
a.value && t && (a.value.setTheme(t), x.value = t);
|
|
78
108
|
}
|
|
79
109
|
), d(
|
|
80
110
|
() => e.axis,
|
|
81
111
|
(t) => {
|
|
82
|
-
|
|
112
|
+
a.value && t && a.value.setAxis(t);
|
|
83
113
|
},
|
|
84
114
|
{ deep: !0 }
|
|
85
115
|
), d(
|
|
86
116
|
() => e.grid?.visible,
|
|
87
117
|
() => {
|
|
88
|
-
|
|
118
|
+
a.value && e.grid !== void 0 && a.value.setGrid(e.grid);
|
|
89
119
|
}
|
|
90
120
|
);
|
|
91
|
-
let
|
|
121
|
+
let D = e.animations;
|
|
92
122
|
d(
|
|
93
123
|
() => e.animations,
|
|
94
124
|
async (t) => {
|
|
95
|
-
if (
|
|
96
|
-
|
|
125
|
+
if (z(t, D) || (D = t, !a.value || !s.value)) return;
|
|
126
|
+
a.value.destroy(), a.value = null, await g();
|
|
97
127
|
const i = {};
|
|
98
|
-
e.axis && (i.axis = e.axis), e.theme && (i.theme = e.theme), e.padding && (i.padding = e.padding), e.viewport && (i.viewport = e.viewport), e.interactive !== void 0 && (i.interactive = e.interactive), e.grid !== void 0 && (i.grid = e.grid),
|
|
128
|
+
e.axis && (i.axis = e.axis), e.theme && (i.theme = e.theme), e.padding && (i.padding = e.padding), e.viewport && (i.viewport = e.viewport), e.interactive !== void 0 && (i.interactive = e.interactive), e.grid !== void 0 && (i.grid = e.grid), c !== void 0 && (i.perf = c), p && (i.onEdgeReached = p), t !== void 0 && (i.animations = t), M(i), a.value = new T(s.value, i), K(a.value), e.onReady?.(a.value);
|
|
99
129
|
}
|
|
100
130
|
);
|
|
101
|
-
let
|
|
131
|
+
let h;
|
|
102
132
|
d(
|
|
103
|
-
() => [
|
|
133
|
+
() => [a.value, e.visibleRange],
|
|
104
134
|
async ([t, i]) => {
|
|
105
|
-
!t || i === void 0 ||
|
|
135
|
+
!t || i === void 0 || h !== void 0 && h.instance === t && z(h.spec, i) || (h = { instance: t, spec: i }, await g(), t.setVisibleRange(i));
|
|
106
136
|
},
|
|
107
137
|
{ immediate: !0 }
|
|
108
138
|
), d(
|
|
@@ -111,75 +141,75 @@ const X = { style: { display: "flex", "flex-direction": "row", flex: "1", "min-h
|
|
|
111
141
|
e.padding?.bottom,
|
|
112
142
|
typeof e.padding?.right == "object" ? e.padding.right.intervals : e.padding?.right,
|
|
113
143
|
typeof e.padding?.left == "object" ? e.padding.left.intervals : e.padding?.left,
|
|
114
|
-
|
|
144
|
+
L.value
|
|
115
145
|
],
|
|
116
|
-
|
|
117
|
-
);
|
|
118
|
-
const
|
|
119
|
-
const t =
|
|
120
|
-
return `position: relative; display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 240px; overflow: hidden; background: ${e.gradient ? `linear-gradient(to bottom, ${i} 0%, ${
|
|
146
|
+
A
|
|
147
|
+
), d(() => [a.value, j.value, e.fade], $, { immediate: !0 });
|
|
148
|
+
const N = v(() => {
|
|
149
|
+
const t = x.value, [i, n] = t?.chartGradient ?? ["transparent", "transparent"], F = t?.background ?? "transparent";
|
|
150
|
+
return `position: relative; display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 240px; overflow: hidden; background: ${e.gradient ? `linear-gradient(to bottom, ${i} 0%, ${F} 70%, ${n} 100%)` : F}`;
|
|
121
151
|
});
|
|
122
|
-
return (t, i) => (
|
|
123
|
-
style:
|
|
152
|
+
return (t, i) => (y(), m("div", {
|
|
153
|
+
style: q(N.value)
|
|
124
154
|
}, [
|
|
125
|
-
o("div",
|
|
126
|
-
o("div",
|
|
127
|
-
|
|
155
|
+
o("div", ae, [
|
|
156
|
+
o("div", oe, [
|
|
157
|
+
b.headerLayout === "inline" ? (y(), m("div", ne, [
|
|
128
158
|
o("div", {
|
|
129
159
|
ref_key: "titleAnchor",
|
|
130
|
-
ref:
|
|
160
|
+
ref: R,
|
|
131
161
|
"data-chart-title-anchor": ""
|
|
132
162
|
}, null, 512),
|
|
133
163
|
o("div", {
|
|
134
164
|
ref_key: "infoBarAnchor",
|
|
135
|
-
ref:
|
|
165
|
+
ref: k,
|
|
136
166
|
"data-tooltip-legend-anchor": ""
|
|
137
167
|
}, null, 512)
|
|
138
|
-
])) :
|
|
168
|
+
])) : w("", !0),
|
|
139
169
|
o("div", {
|
|
140
170
|
ref_key: "containerRef",
|
|
141
|
-
ref:
|
|
171
|
+
ref: s,
|
|
142
172
|
style: { position: "relative", flex: "1", "min-width": "0", "min-height": "0", overflow: "hidden" }
|
|
143
173
|
}, [
|
|
144
|
-
|
|
174
|
+
b.headerLayout === "overlay" ? (y(), m("div", {
|
|
145
175
|
key: 0,
|
|
146
176
|
ref_key: "topOverlayRef",
|
|
147
|
-
ref:
|
|
177
|
+
ref: C,
|
|
148
178
|
"data-chart-top-overlay": "",
|
|
149
179
|
style: { position: "absolute", top: "0", left: "0", right: "0", "z-index": "2", "pointer-events": "none", display: "flex", "flex-direction": "column" }
|
|
150
180
|
}, [
|
|
151
181
|
o("div", {
|
|
152
182
|
ref_key: "titleAnchor",
|
|
153
|
-
ref:
|
|
183
|
+
ref: R,
|
|
154
184
|
"data-chart-title-anchor": ""
|
|
155
185
|
}, null, 512),
|
|
156
186
|
o("div", {
|
|
157
187
|
ref_key: "infoBarAnchor",
|
|
158
|
-
ref:
|
|
188
|
+
ref: k,
|
|
159
189
|
"data-tooltip-legend-anchor": ""
|
|
160
190
|
}, null, 512)
|
|
161
|
-
], 512)) :
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
])) :
|
|
191
|
+
], 512)) : w("", !0),
|
|
192
|
+
a.value ? (y(), m("div", re, [
|
|
193
|
+
J(t.$slots, "default")
|
|
194
|
+
])) : w("", !0)
|
|
165
195
|
], 512)
|
|
166
196
|
]),
|
|
167
197
|
o("div", {
|
|
168
198
|
ref_key: "legendRightAnchor",
|
|
169
|
-
ref:
|
|
199
|
+
ref: E,
|
|
170
200
|
"data-legend-right-anchor": "",
|
|
171
201
|
style: { flex: "0 0 auto" }
|
|
172
202
|
}, null, 512)
|
|
173
203
|
]),
|
|
174
204
|
o("div", {
|
|
175
205
|
ref_key: "legendAnchor",
|
|
176
|
-
ref:
|
|
206
|
+
ref: _,
|
|
177
207
|
"data-legend-anchor": "",
|
|
178
208
|
style: { flex: "0 0 auto" }
|
|
179
209
|
}, null, 512),
|
|
180
210
|
o("div", {
|
|
181
211
|
ref_key: "navigatorAnchor",
|
|
182
|
-
ref:
|
|
212
|
+
ref: B,
|
|
183
213
|
"data-navigator-anchor": "",
|
|
184
214
|
style: { flex: "0 0 auto" }
|
|
185
215
|
}, null, 512)
|
|
@@ -187,5 +217,5 @@ const X = { style: { display: "flex", "flex-direction": "row", flex: "1", "min-h
|
|
|
187
217
|
}
|
|
188
218
|
});
|
|
189
219
|
export {
|
|
190
|
-
|
|
220
|
+
ce as default
|
|
191
221
|
};
|
|
@@ -1,5 +1,15 @@
|
|
|
1
|
-
import { DEFAULT_MAX_VISIBLE_BARS as
|
|
2
|
-
function
|
|
1
|
+
import { DEFAULT_MAX_VISIBLE_BARS as i, MIN_VISIBLE_BARS as r } from "./pan-zoom-math.js";
|
|
2
|
+
function n(t) {
|
|
3
|
+
return t === void 0 || !Number.isFinite(t) || t <= 0 ? 0 : t;
|
|
4
|
+
}
|
|
5
|
+
function a(t) {
|
|
6
|
+
return {
|
|
7
|
+
top: n(t?.top),
|
|
8
|
+
right: t?.right === void 0 ? null : n(t.right),
|
|
9
|
+
left: n(t?.left)
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function l(t) {
|
|
3
13
|
if (!t) return { monitor: null, ownsMonitor: !1, hud: null };
|
|
4
14
|
if (typeof t != "object" || !("monitor" in t || "recordFrame" in t))
|
|
5
15
|
throw new Error(
|
|
@@ -7,29 +17,30 @@ function s(t) {
|
|
|
7
17
|
);
|
|
8
18
|
return "recordFrame" in t ? { monitor: t, ownsMonitor: !1, hud: null } : { monitor: t.monitor, ownsMonitor: t.ownsMonitor ?? !1, hud: t.hud ?? null };
|
|
9
19
|
}
|
|
10
|
-
const
|
|
20
|
+
const e = {
|
|
11
21
|
top: 20,
|
|
12
22
|
bottom: 20,
|
|
13
23
|
right: { intervals: 3 },
|
|
14
24
|
left: { intervals: 0 }
|
|
15
25
|
};
|
|
16
|
-
function
|
|
26
|
+
function f(t) {
|
|
17
27
|
return {
|
|
18
|
-
top: t?.top ??
|
|
19
|
-
bottom: t?.bottom ??
|
|
20
|
-
right: t?.right ??
|
|
21
|
-
left: t?.left ??
|
|
28
|
+
top: t?.top ?? e.top,
|
|
29
|
+
bottom: t?.bottom ?? e.bottom,
|
|
30
|
+
right: t?.right ?? e.right,
|
|
31
|
+
left: t?.left ?? e.left
|
|
22
32
|
};
|
|
23
33
|
}
|
|
24
|
-
function
|
|
25
|
-
return typeof t == "number" && typeof
|
|
34
|
+
function u(t, o) {
|
|
35
|
+
return typeof t == "number" && typeof o == "number" ? t === o : typeof t == "object" && typeof o == "object" ? t.intervals === o.intervals : !1;
|
|
26
36
|
}
|
|
27
|
-
function
|
|
28
|
-
return t === void 0 ?
|
|
37
|
+
function m(t) {
|
|
38
|
+
return t === void 0 ? i : Number.isFinite(t) ? Math.max(r, Math.floor(t)) : i;
|
|
29
39
|
}
|
|
30
40
|
export {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
u as isSameHorizontalPadding,
|
|
42
|
+
a as resolveFade,
|
|
43
|
+
m as resolveMaxVisibleBars,
|
|
44
|
+
f as resolvePadding,
|
|
45
|
+
l as resolvePerfOptions
|
|
35
46
|
};
|