@363045841yyt/klinechart 0.8.1-alpha.3 → 0.8.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/dist/components/CompareSymbolSelector.vue.d.ts +2 -0
- package/dist/components/CompareSymbolSelector.vue.d.ts.map +1 -1
- package/dist/components/KLineChart.vue.d.ts +0 -2
- package/dist/components/KLineChart.vue.d.ts.map +1 -1
- package/dist/components/SymbolSelector.vue.d.ts.map +1 -1
- package/dist/components/TopToolbar.vue.d.ts +2 -0
- package/dist/components/TopToolbar.vue.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.css +1 -1
- package/dist/index.js +574 -600
- package/package.json +1 -1
- package/src/components/CompareSymbolSelector.vue +29 -0
- package/src/components/KLineChart.vue +24 -91
- package/src/components/SymbolSelector.vue +12 -3
- package/src/components/TopToolbar.vue +23 -18
package/dist/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { Fragment as e, Teleport as t, Transition as n, computed as r, createBlock as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, effectScope as d, h as f, inject as p, markRaw as m, nextTick as h, normalizeClass as g, normalizeStyle as _, onBeforeUnmount as v, onMounted as y, onScopeDispose as b, onUnmounted as x, openBlock as S, provide as C, ref as w, renderList as T, resolveDynamicComponent as E, shallowRef as D, toDisplayString as O, unref as k, vModelCheckbox as A, vModelText as j, watch as M, withCtx as N, withDirectives as P, withKeys as F, withModifiers as I } from "vue";
|
|
2
2
|
import { COLOR_PRESET_ITEMS as L, VERSION as R, createChartController as ee, createIndicatorSelectorController as te, darkTheme as ne, lightTheme as re, normalizeColorPresetSettings as ie, resolveThemeColors as ae, themeToCssVars as oe } from "@363045841yyt/klinechart-core";
|
|
3
|
-
import { DrawingInteractionController as se, allIndicators as ce, createChartController as le, createIndicatorSelectorController as z, findIndicator as ue,
|
|
4
|
-
import { SemanticChartController as
|
|
5
|
-
import { getRegisteredIndicatorDefinition as
|
|
6
|
-
import { DEFAULT_SETTINGS as B, SETTINGS_STORAGE_KEY as
|
|
3
|
+
import { DrawingInteractionController as se, allIndicators as ce, createChartController as le, createIndicatorSelectorController as z, findIndicator as ue, kGapFromKWidth as de, zoomLevelToKWidth as fe } from "@363045841yyt/klinechart-core/controllers";
|
|
4
|
+
import { SemanticChartController as pe } from "@363045841yyt/klinechart-core/semantic";
|
|
5
|
+
import { getRegisteredIndicatorDefinition as me } from "@363045841yyt/klinechart-core/indicators";
|
|
6
|
+
import { DEFAULT_SETTINGS as B, SETTINGS_STORAGE_KEY as he } from "@363045841yyt/klinechart-core/config";
|
|
7
7
|
//#region src/components/ColorPresetPanel.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
-
var
|
|
8
|
+
var ge = { class: "color-preset-tools" }, V = {
|
|
9
9
|
class: "theme-tabs",
|
|
10
10
|
role: "tablist",
|
|
11
11
|
"aria-label": "颜色主题"
|
|
12
|
-
},
|
|
12
|
+
}, H = ["onClick"], _e = { class: "color-group-label" }, ve = { class: "color-grid" }, ye = ["value", "onInput"], be = /*@__PURE__*/ u({
|
|
13
13
|
__name: "ColorPresetPanel",
|
|
14
14
|
props: { colorPresetSettings: {} },
|
|
15
15
|
emits: ["update:colorPresetSettings"],
|
|
@@ -50,12 +50,12 @@ var V = { class: "color-preset-tools" }, H = {
|
|
|
50
50
|
let e = { ...ie(i.colorPresetSettings) };
|
|
51
51
|
delete e[d.value], a("update:colorPresetSettings", e);
|
|
52
52
|
}
|
|
53
|
-
return (t, n) => (S(), o("div", null, [s("div",
|
|
53
|
+
return (t, n) => (S(), o("div", null, [s("div", ge, [s("div", V, [(S(), o(e, null, T(c, (e) => s("button", {
|
|
54
54
|
key: e.value,
|
|
55
55
|
type: "button",
|
|
56
56
|
class: g(["theme-tab", { active: d.value === e.value }]),
|
|
57
57
|
onClick: (t) => d.value = e.value
|
|
58
|
-
}, O(e.label), 11,
|
|
58
|
+
}, O(e.label), 11, H)), 64))]), s("button", {
|
|
59
59
|
type: "button",
|
|
60
60
|
class: "color-reset-btn",
|
|
61
61
|
onClick: h
|
|
@@ -69,18 +69,18 @@ var V = { class: "color-preset-tools" }, H = {
|
|
|
69
69
|
onInput: (t) => m(e.key, t.target.value)
|
|
70
70
|
}, null, 40, ye)]))), 128))])], 64))), 128))]));
|
|
71
71
|
}
|
|
72
|
-
}),
|
|
72
|
+
}), U = (e, t) => {
|
|
73
73
|
let n = e.__vccOpts || e;
|
|
74
74
|
for (let [e, r] of t) n[e] = r;
|
|
75
75
|
return n;
|
|
76
|
-
},
|
|
76
|
+
}, W = /*#__PURE__*/ U(be, [["__scopeId", "data-v-a52947a4"]]), xe = [
|
|
77
77
|
"title",
|
|
78
78
|
"aria-expanded",
|
|
79
79
|
"onKeydown"
|
|
80
|
-
],
|
|
80
|
+
], Se = {
|
|
81
81
|
key: 0,
|
|
82
82
|
class: "dropdown__label"
|
|
83
|
-
}, Ce = { class: "dropdown__value" }, we = ["aria-selected", "onClick"],
|
|
83
|
+
}, Ce = { class: "dropdown__value" }, we = ["aria-selected", "onClick"], G = 0, Te = null, Ee = 0, K = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
84
84
|
__name: "Dropdown",
|
|
85
85
|
props: {
|
|
86
86
|
modelValue: {},
|
|
@@ -92,7 +92,7 @@ var V = { class: "color-preset-tools" }, H = {
|
|
|
92
92
|
},
|
|
93
93
|
emits: ["update:modelValue"],
|
|
94
94
|
setup(t, { emit: n }) {
|
|
95
|
-
let i = t, c = n, l = w(null), u = w(null), d = w(!1), f = w(0), p = ++
|
|
95
|
+
let i = t, c = n, l = w(null), u = w(null), d = w(!1), f = w(0), p = ++Ee, m = r(() => i.minWidth ? { minWidth: i.minWidth } : {}), h = r(() => {
|
|
96
96
|
if (!d.value) return;
|
|
97
97
|
let e = f.value || (i.minWidth ? parseInt(i.minWidth) : 0);
|
|
98
98
|
return { width: e ? `${e}px` : void 0 };
|
|
@@ -101,10 +101,10 @@ var V = { class: "color-preset-tools" }, H = {
|
|
|
101
101
|
return e && i.options.some((t) => t.value === e) ? e : i.options[0]?.value ?? "";
|
|
102
102
|
}), b = r(() => i.options.find((e) => e.value === y.value) ?? i.options[0]);
|
|
103
103
|
function x() {
|
|
104
|
-
|
|
104
|
+
G !== p && Te && Te(), !d.value && (G = p, Te = C, f.value = u.value?.offsetWidth ?? 0, d.value = !0, document.addEventListener("pointerdown", k));
|
|
105
105
|
}
|
|
106
106
|
function C() {
|
|
107
|
-
d.value && (d.value = !1,
|
|
107
|
+
d.value && (d.value = !1, G === p && (G = 0, Te = null), document.removeEventListener("pointerdown", k));
|
|
108
108
|
}
|
|
109
109
|
function E() {
|
|
110
110
|
d.value ? C() : x();
|
|
@@ -137,13 +137,13 @@ var V = { class: "color-preset-tools" }, H = {
|
|
|
137
137
|
F(I(E, ["prevent"]), ["space"])
|
|
138
138
|
]
|
|
139
139
|
}, [
|
|
140
|
-
t.label ? (S(), o("span",
|
|
140
|
+
t.label ? (S(), o("span", Se, O(t.label), 1)) : a("", !0),
|
|
141
141
|
s("span", Ce, O(b.value.label), 1),
|
|
142
142
|
r[0] ||= s("span", {
|
|
143
143
|
class: "dropdown__chevron",
|
|
144
144
|
"aria-hidden": "true"
|
|
145
145
|
}, null, -1)
|
|
146
|
-
], 44,
|
|
146
|
+
], 44, xe), d.value ? (S(), o("div", {
|
|
147
147
|
key: 0,
|
|
148
148
|
class: "dropdown__menu",
|
|
149
149
|
style: _(h.value),
|
|
@@ -161,7 +161,7 @@ var V = { class: "color-preset-tools" }, H = {
|
|
|
161
161
|
}), [["__scopeId", "data-v-126e11f2"]]), De = {
|
|
162
162
|
class: "toolbar-item color-item",
|
|
163
163
|
title: "颜色"
|
|
164
|
-
}, Oe = ["value"], ke = /*#__PURE__*/
|
|
164
|
+
}, Oe = ["value"], ke = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
165
165
|
__name: "DrawingStyleToolbar",
|
|
166
166
|
props: { drawing: {} },
|
|
167
167
|
emits: ["updateStyle", "delete"],
|
|
@@ -225,14 +225,14 @@ var V = { class: "color-preset-tools" }, H = {
|
|
|
225
225
|
value: e.drawing.style.stroke ?? "#2962ff",
|
|
226
226
|
onInput: i[0] ||= (e) => c(e.target.value)
|
|
227
227
|
}, null, 40, Oe)]),
|
|
228
|
-
l(
|
|
228
|
+
l(K, {
|
|
229
229
|
"model-value": String(e.drawing.style.strokeWidth ?? 1),
|
|
230
230
|
options: n,
|
|
231
231
|
size: "sm",
|
|
232
232
|
title: "线宽",
|
|
233
233
|
"onUpdate:modelValue": i[1] ||= (e) => u(Number(e))
|
|
234
234
|
}, null, 8, ["model-value"]),
|
|
235
|
-
l(
|
|
235
|
+
l(K, {
|
|
236
236
|
"model-value": e.drawing.style.strokeStyle ?? "solid",
|
|
237
237
|
options: r,
|
|
238
238
|
size: "sm",
|
|
@@ -270,22 +270,22 @@ function Me() {
|
|
|
270
270
|
}
|
|
271
271
|
//#endregion
|
|
272
272
|
//#region src/components/IndicatorParams.vue?vue&type=script&setup=true&lang.ts
|
|
273
|
-
var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class: "params-title" }, Ie = { class: "header-right" },
|
|
273
|
+
var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class: "params-title" }, Ie = { class: "header-right" }, q = {
|
|
274
274
|
key: 0,
|
|
275
275
|
class: "indicator-description"
|
|
276
|
-
},
|
|
276
|
+
}, Le = { class: "params-body" }, Re = { class: "param-header" }, ze = { class: "param-label" }, J = { class: "param-label-text" }, Y = {
|
|
277
277
|
key: 0,
|
|
278
278
|
class: "param-range"
|
|
279
|
-
},
|
|
279
|
+
}, Be = { class: "input-wrapper" }, Ve = ["disabled", "onClick"], He = [
|
|
280
280
|
"value",
|
|
281
281
|
"min",
|
|
282
282
|
"max",
|
|
283
283
|
"step",
|
|
284
284
|
"onInput"
|
|
285
|
-
],
|
|
285
|
+
], Ue = ["disabled", "onClick"], We = {
|
|
286
286
|
key: 0,
|
|
287
287
|
class: "param-description"
|
|
288
|
-
},
|
|
288
|
+
}, Ge = { class: "params-footer" }, Ke = { class: "footer-right" }, qe = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
289
289
|
__name: "IndicatorParams",
|
|
290
290
|
props: {
|
|
291
291
|
visible: { type: Boolean },
|
|
@@ -350,18 +350,18 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
350
350
|
"stroke-width": "2"
|
|
351
351
|
}, [s("path", { d: "M18 6L6 18M6 6l12 12" })], -1)]])])]),
|
|
352
352
|
l(n, { name: "slide" }, {
|
|
353
|
-
default: N(() => [m.value && r.indicatorDescription ? (S(), o("div",
|
|
353
|
+
default: N(() => [m.value && r.indicatorDescription ? (S(), o("div", q, [s("p", null, O(r.indicatorDescription), 1)])) : a("", !0)]),
|
|
354
354
|
_: 1
|
|
355
355
|
}),
|
|
356
|
-
s("div",
|
|
356
|
+
s("div", Le, [(S(!0), o(e, null, T(r.params, (e) => (S(), o("div", {
|
|
357
357
|
key: e.key,
|
|
358
358
|
class: g(["param-item", { "has-desc": m.value && e.description }])
|
|
359
|
-
}, [s("div",
|
|
359
|
+
}, [s("div", Re, [s("label", ze, [s("span", J, O(e.label), 1), e.min !== void 0 || e.max !== void 0 ? (S(), o("span", Y, O(e.min ?? "-∞") + " ~ " + O(e.max ?? "+∞"), 1)) : a("", !0)]), s("div", Be, [
|
|
360
360
|
s("button", {
|
|
361
361
|
class: "stepper-btn",
|
|
362
362
|
disabled: e.min !== void 0 && (p.value[e.key] ?? 0) <= e.min,
|
|
363
363
|
onClick: (t) => v(e, -1)
|
|
364
|
-
}, " − ", 8,
|
|
364
|
+
}, " − ", 8, Ve),
|
|
365
365
|
e.type === "number" ? (S(), o("input", {
|
|
366
366
|
key: 0,
|
|
367
367
|
type: "number",
|
|
@@ -371,17 +371,17 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
371
371
|
max: e.max,
|
|
372
372
|
step: e.step || 1,
|
|
373
373
|
onInput: (t) => _(e.key, t)
|
|
374
|
-
}, null, 40,
|
|
374
|
+
}, null, 40, He)) : a("", !0),
|
|
375
375
|
s("button", {
|
|
376
376
|
class: "stepper-btn",
|
|
377
377
|
disabled: e.max !== void 0 && (p.value[e.key] ?? 0) >= e.max,
|
|
378
378
|
onClick: (t) => v(e, 1)
|
|
379
|
-
}, " + ", 8,
|
|
379
|
+
}, " + ", 8, Ue)
|
|
380
380
|
])]), l(n, { name: "slide" }, {
|
|
381
|
-
default: N(() => [m.value && e.description ? (S(), o("div",
|
|
381
|
+
default: N(() => [m.value && e.description ? (S(), o("div", We, O(e.description), 1)) : a("", !0)]),
|
|
382
382
|
_: 2
|
|
383
383
|
}, 1024)], 2))), 128))]),
|
|
384
|
-
s("div",
|
|
384
|
+
s("div", Ge, [s("button", {
|
|
385
385
|
class: "params-btn reset",
|
|
386
386
|
onClick: y
|
|
387
387
|
}, [...d[8] ||= [s("svg", {
|
|
@@ -389,7 +389,7 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
389
389
|
fill: "none",
|
|
390
390
|
stroke: "currentColor",
|
|
391
391
|
"stroke-width": "2"
|
|
392
|
-
}, [s("path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }), s("path", { d: "M3 3v5h5" })], -1), c(" 重置 ", -1)]]), s("div",
|
|
392
|
+
}, [s("path", { d: "M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8" }), s("path", { d: "M3 3v5h5" })], -1), c(" 重置 ", -1)]]), s("div", Ke, [s("button", {
|
|
393
393
|
class: "params-btn cancel",
|
|
394
394
|
onClick: d[2] ||= (e) => u.$emit("close")
|
|
395
395
|
}, "取消"), s("button", {
|
|
@@ -407,31 +407,31 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
407
407
|
_: 1
|
|
408
408
|
})], 8, ["to"]));
|
|
409
409
|
}
|
|
410
|
-
}), [["__scopeId", "data-v-30f2f611"]]),
|
|
410
|
+
}), [["__scopeId", "data-v-30f2f611"]]), Je = { class: "indicator-selector" }, Ye = { class: "modal-header" }, Xe = { class: "header-title" }, Ze = { class: "title-sub" }, Qe = { class: "header-actions" }, $e = {
|
|
411
411
|
key: 0,
|
|
412
412
|
viewBox: "0 0 24 24",
|
|
413
413
|
width: "16",
|
|
414
414
|
height: "16",
|
|
415
415
|
fill: "currentColor"
|
|
416
|
-
},
|
|
416
|
+
}, et = {
|
|
417
417
|
key: 1,
|
|
418
418
|
viewBox: "0 0 24 24",
|
|
419
419
|
width: "16",
|
|
420
420
|
height: "16",
|
|
421
421
|
fill: "currentColor"
|
|
422
|
-
},
|
|
422
|
+
}, tt = { class: "modal-search-area" }, nt = { class: "search-box" }, rt = ["value"], it = { class: "modal-body" }, at = {
|
|
423
423
|
key: 0,
|
|
424
424
|
class: "indicator-section"
|
|
425
|
-
},
|
|
425
|
+
}, ot = { class: "section-header" }, st = { class: "section-count" }, ct = ["onClick"], lt = { class: "card-label" }, ut = { class: "card-tooltip" }, dt = { class: "card-header" }, ft = { class: "card-label" }, pt = { class: "card-header-actions" }, mt = ["onClick"], ht = { class: "card-name" }, gt = {
|
|
426
426
|
key: 1,
|
|
427
427
|
class: "section-divider"
|
|
428
|
-
},
|
|
428
|
+
}, _t = {
|
|
429
429
|
key: 2,
|
|
430
430
|
class: "no-results"
|
|
431
|
-
},
|
|
431
|
+
}, vt = {
|
|
432
432
|
key: 3,
|
|
433
433
|
class: "indicator-section"
|
|
434
|
-
},
|
|
434
|
+
}, yt = { class: "section-header" }, bt = { class: "section-count" }, xt = ["onClick"], St = { class: "card-label" }, Ct = { class: "card-tooltip" }, wt = { class: "card-header" }, X = { class: "card-label" }, Z = { class: "card-header-actions" }, Tt = ["onClick"], Et = { class: "card-name" }, Dt = { class: "modal-footer" }, Ot = { class: "footer-info" }, kt = { class: "info-text" }, At = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
435
435
|
__name: "IndicatorSelector",
|
|
436
436
|
props: {
|
|
437
437
|
activeIndicators: {},
|
|
@@ -498,7 +498,7 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
498
498
|
openMenu: () => h.openMenu(),
|
|
499
499
|
closeMenu: () => h.closeMenu(),
|
|
500
500
|
toggleMenu: () => h.toggleMenu()
|
|
501
|
-
}), (r, c) => (S(), o("div",
|
|
501
|
+
}), (r, c) => (S(), o("div", Je, [(S(), i(t, { to: k(P) }, [l(n, { name: "overlay" }, {
|
|
502
502
|
default: N(() => [k(_) ? (S(), o("div", {
|
|
503
503
|
key: 0,
|
|
504
504
|
class: "selector-overlay",
|
|
@@ -509,11 +509,11 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
509
509
|
class: "selector-modal",
|
|
510
510
|
onClick: c[4] ||= I(() => {}, ["stop"])
|
|
511
511
|
}, [
|
|
512
|
-
s("div",
|
|
512
|
+
s("div", Ye, [s("div", Xe, [c[7] ||= s("span", { class: "title-text" }, "添加指标", -1), s("span", Ze, O(k(D)) + " 个可用指标", 1)]), s("div", Qe, [s("button", {
|
|
513
513
|
class: g(["view-toggle-btn", { active: M.value }]),
|
|
514
514
|
onClick: c[0] ||= (e) => M.value = !M.value,
|
|
515
515
|
title: "简洁模式"
|
|
516
|
-
}, [M.value ? (S(), o("svg",
|
|
516
|
+
}, [M.value ? (S(), o("svg", et, [...c[9] ||= [s("path", { d: "M3 3h18v18H3V3zm16 16V5H5v14h14zM7 7h4v4H7V7zm0 6h4v4H7v-4zm6-6h4v4h-4V7zm0 6h4v4h-4v-4z" }, null, -1)]])) : (S(), o("svg", $e, [...c[8] ||= [s("path", { d: "M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z" }, null, -1)]]))], 2), s("button", {
|
|
517
517
|
class: "modal-close",
|
|
518
518
|
onClick: c[1] ||= (e) => k(h).closeMenu(),
|
|
519
519
|
title: "关闭"
|
|
@@ -523,7 +523,7 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
523
523
|
height: "14",
|
|
524
524
|
fill: "currentColor"
|
|
525
525
|
}, [s("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" })], -1)]])])]),
|
|
526
|
-
s("div",
|
|
526
|
+
s("div", tt, [s("div", nt, [c[11] ||= s("svg", {
|
|
527
527
|
class: "search-icon",
|
|
528
528
|
viewBox: "0 0 24 24",
|
|
529
529
|
width: "16",
|
|
@@ -535,16 +535,16 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
535
535
|
type: "text",
|
|
536
536
|
class: "search-input",
|
|
537
537
|
placeholder: "搜索指标名称..."
|
|
538
|
-
}, null, 40,
|
|
539
|
-
s("div",
|
|
540
|
-
k(b).length > 0 ? (S(), o("div",
|
|
538
|
+
}, null, 40, rt)])]),
|
|
539
|
+
s("div", it, [
|
|
540
|
+
k(b).length > 0 ? (S(), o("div", at, [s("div", ot, [c[12] ||= s("span", { class: "section-title" }, "主图指标", -1), s("span", st, O(k(b).length), 1)]), s("div", { class: g(["indicator-grid", { compact: M.value }]) }, [(S(!0), o(e, null, T(k(b), (t) => (S(), o("button", {
|
|
541
541
|
key: t.id,
|
|
542
542
|
class: g(["indicator-card", {
|
|
543
543
|
active: R(t.id),
|
|
544
544
|
compact: M.value
|
|
545
545
|
}]),
|
|
546
546
|
onClick: (e) => R(t.id) ? te(t.id) : ee(t.id)
|
|
547
|
-
}, [M.value ? (S(), o(e, { key: 0 }, [s("span",
|
|
547
|
+
}, [M.value ? (S(), o(e, { key: 0 }, [s("span", lt, O(t.label), 1), s("span", ut, O(t.name), 1)], 64)) : (S(), o(e, { key: 1 }, [s("div", dt, [s("span", ft, O(t.label), 1), s("div", pt, [t.params?.length ? (S(), o("button", {
|
|
548
548
|
key: 0,
|
|
549
549
|
class: "card-settings-btn",
|
|
550
550
|
onClick: I((e) => ne(t.id), ["stop"]),
|
|
@@ -554,9 +554,9 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
554
554
|
width: "14",
|
|
555
555
|
height: "14",
|
|
556
556
|
fill: "currentColor"
|
|
557
|
-
}, [s("path", { d: "M19.14 12.94c.04-.31.06-.63.06-.94 0-.31-.02-.63-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z" })], -1)]], 8,
|
|
558
|
-
k(b).length > 0 && k(C).length > 0 ? (S(), o("div",
|
|
559
|
-
!E.value && k(v).trim() ? (S(), o("div",
|
|
557
|
+
}, [s("path", { d: "M19.14 12.94c.04-.31.06-.63.06-.94 0-.31-.02-.63-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z" })], -1)]], 8, mt)) : a("", !0)])]), s("div", ht, O(t.name), 1)], 64))], 10, ct))), 128))], 2)])) : a("", !0),
|
|
558
|
+
k(b).length > 0 && k(C).length > 0 ? (S(), o("div", gt)) : a("", !0),
|
|
559
|
+
!E.value && k(v).trim() ? (S(), o("div", _t, [...c[14] ||= [
|
|
560
560
|
s("svg", {
|
|
561
561
|
viewBox: "0 0 24 24",
|
|
562
562
|
width: "48",
|
|
@@ -566,14 +566,14 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
566
566
|
s("p", null, "未找到匹配的指标", -1),
|
|
567
567
|
s("span", { class: "no-results-hint" }, "请尝试其他关键词", -1)
|
|
568
568
|
]])) : a("", !0),
|
|
569
|
-
k(C).length > 0 ? (S(), o("div",
|
|
569
|
+
k(C).length > 0 ? (S(), o("div", vt, [s("div", yt, [c[15] ||= s("span", { class: "section-title" }, "副图指标", -1), s("span", bt, O(k(C).length), 1)]), s("div", { class: g(["indicator-grid", { compact: M.value }]) }, [(S(!0), o(e, null, T(k(C), (t) => (S(), o("button", {
|
|
570
570
|
key: t.id,
|
|
571
571
|
class: g(["indicator-card", {
|
|
572
572
|
active: R(t.id),
|
|
573
573
|
compact: M.value
|
|
574
574
|
}]),
|
|
575
575
|
onClick: (e) => R(t.id) ? te(t.id) : ee(t.id)
|
|
576
|
-
}, [M.value ? (S(), o(e, { key: 0 }, [s("span",
|
|
576
|
+
}, [M.value ? (S(), o(e, { key: 0 }, [s("span", St, O(t.label), 1), s("span", Ct, O(t.name), 1)], 64)) : (S(), o(e, { key: 1 }, [s("div", wt, [s("span", X, O(t.label), 1), s("div", Z, [t.params?.length ? (S(), o("button", {
|
|
577
577
|
key: 0,
|
|
578
578
|
class: "card-settings-btn",
|
|
579
579
|
onClick: I((e) => ne(t.id), ["stop"]),
|
|
@@ -583,9 +583,9 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
583
583
|
width: "14",
|
|
584
584
|
height: "14",
|
|
585
585
|
fill: "currentColor"
|
|
586
|
-
}, [s("path", { d: "M19.14 12.94c.04-.31.06-.63.06-.94 0-.31-.02-.63-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z" })], -1)]], 8,
|
|
586
|
+
}, [s("path", { d: "M19.14 12.94c.04-.31.06-.63.06-.94 0-.31-.02-.63-.06-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.04.31-.06.63-.06.94s.02.63.06.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z" })], -1)]], 8, Tt)) : a("", !0)])]), s("div", Et, O(t.name), 1)], 64))], 10, xt))), 128))], 2)])) : a("", !0)
|
|
587
587
|
]),
|
|
588
|
-
s("div",
|
|
588
|
+
s("div", Dt, [s("div", Ot, [s("span", kt, "已激活 " + O(L.value) + " 个指标", 1)]), s("button", {
|
|
589
589
|
class: "btn btn-confirm",
|
|
590
590
|
onClick: c[3] ||= (e) => k(h).closeMenu()
|
|
591
591
|
}, "确认")])
|
|
@@ -593,7 +593,7 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
593
593
|
_: 1
|
|
594
594
|
})])) : a("", !0)]),
|
|
595
595
|
_: 1
|
|
596
|
-
})], 8, ["to"])), F.value ? (S(), i(
|
|
596
|
+
})], 8, ["to"])), F.value ? (S(), i(qe, {
|
|
597
597
|
key: 0,
|
|
598
598
|
visible: A.value,
|
|
599
599
|
"indicator-id": F.value.id,
|
|
@@ -612,25 +612,25 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
612
612
|
"values"
|
|
613
613
|
])) : a("", !0)]));
|
|
614
614
|
}
|
|
615
|
-
}), [["__scopeId", "data-v-bbd88e50"]]),
|
|
615
|
+
}), [["__scopeId", "data-v-bbd88e50"]]), jt = { class: "kline-tooltip__title" }, Mt = { key: 0 }, Nt = { class: "kline-tooltip__grid" }, Pt = { class: "row" }, Ft = { class: "row" }, It = { class: "row" }, Lt = { class: "row" }, Rt = {
|
|
616
616
|
key: 0,
|
|
617
617
|
class: "row"
|
|
618
|
-
},
|
|
618
|
+
}, zt = {
|
|
619
619
|
key: 1,
|
|
620
620
|
class: "row"
|
|
621
|
-
},
|
|
621
|
+
}, Bt = {
|
|
622
622
|
key: 2,
|
|
623
623
|
class: "row"
|
|
624
|
-
},
|
|
624
|
+
}, Vt = {
|
|
625
625
|
key: 3,
|
|
626
626
|
class: "row"
|
|
627
|
-
},
|
|
627
|
+
}, Ht = {
|
|
628
628
|
key: 4,
|
|
629
629
|
class: "row"
|
|
630
|
-
},
|
|
630
|
+
}, Ut = {
|
|
631
631
|
key: 5,
|
|
632
632
|
class: "row"
|
|
633
|
-
},
|
|
633
|
+
}, Wt = "#6b7280", Gt = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
634
634
|
__name: "KLineTooltip",
|
|
635
635
|
props: {
|
|
636
636
|
k: {},
|
|
@@ -665,19 +665,19 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
665
665
|
}
|
|
666
666
|
let p = r(() => {
|
|
667
667
|
let e = t.k;
|
|
668
|
-
if (!e) return
|
|
668
|
+
if (!e) return Wt;
|
|
669
669
|
let n = f(e, t.data, t.index);
|
|
670
|
-
return n > 0 ? t.upColor : n < 0 ? t.downColor :
|
|
670
|
+
return n > 0 ? t.upColor : n < 0 ? t.downColor : Wt;
|
|
671
671
|
}), m = r(() => {
|
|
672
672
|
let e = t.k;
|
|
673
|
-
if (!e) return
|
|
673
|
+
if (!e) return Wt;
|
|
674
674
|
let n = e.close - e.open;
|
|
675
|
-
return n > 0 ? t.upColor : n < 0 ? t.downColor :
|
|
675
|
+
return n > 0 ? t.upColor : n < 0 ? t.downColor : Wt;
|
|
676
676
|
}), h = r(() => {
|
|
677
677
|
let e = t.k;
|
|
678
|
-
if (!e) return
|
|
678
|
+
if (!e) return Wt;
|
|
679
679
|
let n = e.changePercent ?? (e.close - e.open) / e.open * 100;
|
|
680
|
-
return n > 0 ? t.upColor : n < 0 ? t.downColor :
|
|
680
|
+
return n > 0 ? t.upColor : n < 0 ? t.downColor : Wt;
|
|
681
681
|
});
|
|
682
682
|
return (t, r) => e.k ? (S(), o("div", {
|
|
683
683
|
key: 0,
|
|
@@ -687,23 +687,23 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
687
687
|
left: `${e.pos.x}px`,
|
|
688
688
|
top: `${e.pos.y}px`
|
|
689
689
|
})
|
|
690
|
-
}, [s("div",
|
|
691
|
-
s("div",
|
|
692
|
-
s("div",
|
|
693
|
-
s("div",
|
|
694
|
-
s("div",
|
|
695
|
-
typeof e.k.volume == "number" ? (S(), o("div",
|
|
696
|
-
typeof e.k.turnover == "number" ? (S(), o("div",
|
|
697
|
-
typeof e.k.amplitude == "number" ? (S(), o("div",
|
|
698
|
-
typeof e.k.changePercent == "number" ? (S(), o("div",
|
|
699
|
-
typeof e.k.changeAmount == "number" ? (S(), o("div",
|
|
700
|
-
typeof e.k.turnoverRate == "number" ? (S(), o("div",
|
|
690
|
+
}, [s("div", jt, [e.k.stockCode ? (S(), o("span", Mt, O(e.k.stockCode), 1)) : a("", !0), s("span", null, O(l(e.k.timestamp)), 1)]), s("div", Nt, [
|
|
691
|
+
s("div", Pt, [r[0] ||= s("span", null, "开", -1), s("span", { style: _({ color: p.value }) }, O(e.k.open.toFixed(2)), 5)]),
|
|
692
|
+
s("div", Ft, [r[1] ||= s("span", null, "高", -1), s("span", null, O(e.k.high.toFixed(2)), 1)]),
|
|
693
|
+
s("div", It, [r[2] ||= s("span", null, "低", -1), s("span", null, O(e.k.low.toFixed(2)), 1)]),
|
|
694
|
+
s("div", Lt, [r[3] ||= s("span", null, "收", -1), s("span", { style: _({ color: m.value }) }, O(e.k.close.toFixed(2)), 5)]),
|
|
695
|
+
typeof e.k.volume == "number" ? (S(), o("div", Rt, [r[4] ||= s("span", null, "成交量", -1), s("span", null, O(u(e.k.volume)), 1)])) : a("", !0),
|
|
696
|
+
typeof e.k.turnover == "number" ? (S(), o("div", zt, [r[5] ||= s("span", null, "成交额", -1), s("span", null, O(u(e.k.turnover)), 1)])) : a("", !0),
|
|
697
|
+
typeof e.k.amplitude == "number" ? (S(), o("div", Bt, [r[6] ||= s("span", null, "振幅", -1), s("span", null, O(e.k.amplitude) + "%", 1)])) : a("", !0),
|
|
698
|
+
typeof e.k.changePercent == "number" ? (S(), o("div", Vt, [r[7] ||= s("span", null, "涨跌幅", -1), s("span", { style: _({ color: h.value }) }, O(d(e.k.changePercent, "%")), 5)])) : a("", !0),
|
|
699
|
+
typeof e.k.changeAmount == "number" ? (S(), o("div", Ht, [r[8] ||= s("span", null, "涨跌额", -1), s("span", { style: _({ color: h.value }) }, O(d(e.k.changeAmount, "")), 5)])) : a("", !0),
|
|
700
|
+
typeof e.k.turnoverRate == "number" ? (S(), o("div", Ut, [r[9] ||= s("span", null, "换手率", -1), s("span", null, O(e.k.turnoverRate.toFixed(2)) + "%", 1)])) : a("", !0)
|
|
701
701
|
])], 6)) : a("", !0);
|
|
702
702
|
}
|
|
703
|
-
}), [["__scopeId", "data-v-a068b75e"]]),
|
|
703
|
+
}), [["__scopeId", "data-v-a068b75e"]]), Kt = { class: "marker-tooltip__title" }, qt = {
|
|
704
704
|
key: 0,
|
|
705
705
|
class: "marker-tooltip__content"
|
|
706
|
-
},
|
|
706
|
+
}, Jt = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
707
707
|
__name: "MarkerTooltip",
|
|
708
708
|
props: {
|
|
709
709
|
marker: {},
|
|
@@ -752,18 +752,18 @@ var Ne = { class: "params-header" }, Pe = { class: "header-left" }, Fe = { class
|
|
|
752
752
|
left: `${t.pos.x + 12}px`,
|
|
753
753
|
top: `${t.pos.y + 12}px`
|
|
754
754
|
})
|
|
755
|
-
}, [s("div",
|
|
755
|
+
}, [s("div", Kt, O(f.value), 1), m.value ? (S(), o("div", qt, [(S(!0), o(e, null, T(p.value, (e, t) => (S(), o("div", {
|
|
756
756
|
key: t,
|
|
757
757
|
class: "row"
|
|
758
758
|
}, [s("span", null, O(t), 1), s("span", null, O(h(e)), 1)]))), 128))])) : a("", !0)], 6)) : a("", !0);
|
|
759
759
|
}
|
|
760
|
-
}), [["__scopeId", "data-v-f2a21012"]]),
|
|
760
|
+
}), [["__scopeId", "data-v-f2a21012"]]), Yt = {
|
|
761
761
|
viewBox: "0 0 24 24",
|
|
762
762
|
width: "1.2em",
|
|
763
763
|
height: "1.2em"
|
|
764
764
|
};
|
|
765
|
-
function
|
|
766
|
-
return S(), o("svg",
|
|
765
|
+
function Xt(e, t) {
|
|
766
|
+
return S(), o("svg", Yt, [...t[0] ||= [s("path", {
|
|
767
767
|
fill: "none",
|
|
768
768
|
stroke: "currentColor",
|
|
769
769
|
"stroke-linecap": "round",
|
|
@@ -772,16 +772,16 @@ function Zt(e, t) {
|
|
|
772
772
|
d: "M7.904 17.563a1.2 1.2 0 0 0 2.228.308l2.09-3.093l4.907 4.907a1.067 1.067 0 0 0 1.509 0l1.047-1.047a1.067 1.067 0 0 0 0-1.509l-4.907-4.907l3.113-2.09a1.2 1.2 0 0 0-.309-2.228L4 4z"
|
|
773
773
|
}, null, -1)]]);
|
|
774
774
|
}
|
|
775
|
-
var
|
|
775
|
+
var Zt = m({
|
|
776
776
|
name: "tabler-pointer",
|
|
777
|
-
render:
|
|
778
|
-
}),
|
|
777
|
+
render: Xt
|
|
778
|
+
}), Qt = {
|
|
779
779
|
viewBox: "0 0 24 24",
|
|
780
780
|
width: "1.2em",
|
|
781
781
|
height: "1.2em"
|
|
782
782
|
};
|
|
783
|
-
function
|
|
784
|
-
return S(), o("svg",
|
|
783
|
+
function $t(e, t) {
|
|
784
|
+
return S(), o("svg", Qt, [...t[0] ||= [s("path", {
|
|
785
785
|
fill: "none",
|
|
786
786
|
stroke: "currentColor",
|
|
787
787
|
"stroke-linecap": "round",
|
|
@@ -790,16 +790,16 @@ function en(e, t) {
|
|
|
790
790
|
d: "M4 19h16M4 15l4-6l4 2l4-5l4 4"
|
|
791
791
|
}, null, -1)]]);
|
|
792
792
|
}
|
|
793
|
-
var
|
|
793
|
+
var en = m({
|
|
794
794
|
name: "tabler-chart-line",
|
|
795
|
-
render:
|
|
796
|
-
}),
|
|
795
|
+
render: $t
|
|
796
|
+
}), tn = {
|
|
797
797
|
viewBox: "0 0 24 24",
|
|
798
798
|
width: "1.2em",
|
|
799
799
|
height: "1.2em"
|
|
800
800
|
};
|
|
801
|
-
function
|
|
802
|
-
return S(), o("svg",
|
|
801
|
+
function nn(e, t) {
|
|
802
|
+
return S(), o("svg", tn, [...t[0] ||= [s("path", {
|
|
803
803
|
fill: "none",
|
|
804
804
|
stroke: "currentColor",
|
|
805
805
|
"stroke-linecap": "round",
|
|
@@ -808,16 +808,16 @@ function rn(e, t) {
|
|
|
808
808
|
d: "M17 7L7 17M8 7h9v9"
|
|
809
809
|
}, null, -1)]]);
|
|
810
810
|
}
|
|
811
|
-
var
|
|
811
|
+
var rn = m({
|
|
812
812
|
name: "tabler-arrow-up-right",
|
|
813
|
-
render:
|
|
814
|
-
}),
|
|
813
|
+
render: nn
|
|
814
|
+
}), an = {
|
|
815
815
|
viewBox: "0 0 24 24",
|
|
816
816
|
width: "1.2em",
|
|
817
817
|
height: "1.2em"
|
|
818
818
|
};
|
|
819
|
-
function
|
|
820
|
-
return S(), o("svg",
|
|
819
|
+
function on(e, t) {
|
|
820
|
+
return S(), o("svg", an, [...t[0] ||= [s("path", {
|
|
821
821
|
fill: "none",
|
|
822
822
|
stroke: "currentColor",
|
|
823
823
|
"stroke-linecap": "round",
|
|
@@ -826,16 +826,16 @@ function sn(e, t) {
|
|
|
826
826
|
d: "M5 12h14m-6 6l6-6m-6-6l6 6"
|
|
827
827
|
}, null, -1)]]);
|
|
828
828
|
}
|
|
829
|
-
var
|
|
829
|
+
var sn = m({
|
|
830
830
|
name: "tabler-arrow-right",
|
|
831
|
-
render:
|
|
832
|
-
}),
|
|
831
|
+
render: on
|
|
832
|
+
}), cn = {
|
|
833
833
|
viewBox: "0 0 24 24",
|
|
834
834
|
width: "1.2em",
|
|
835
835
|
height: "1.2em"
|
|
836
836
|
};
|
|
837
|
-
function
|
|
838
|
-
return S(), o("svg",
|
|
837
|
+
function ln(e, t) {
|
|
838
|
+
return S(), o("svg", cn, [...t[0] ||= [s("path", {
|
|
839
839
|
fill: "none",
|
|
840
840
|
stroke: "currentColor",
|
|
841
841
|
"stroke-linecap": "round",
|
|
@@ -844,16 +844,16 @@ function un(e, t) {
|
|
|
844
844
|
d: "M5 12h14"
|
|
845
845
|
}, null, -1)]]);
|
|
846
846
|
}
|
|
847
|
-
var
|
|
847
|
+
var un = m({
|
|
848
848
|
name: "tabler-minus",
|
|
849
|
-
render:
|
|
850
|
-
}),
|
|
849
|
+
render: ln
|
|
850
|
+
}), dn = {
|
|
851
851
|
viewBox: "0 0 24 24",
|
|
852
852
|
width: "1.2em",
|
|
853
853
|
height: "1.2em"
|
|
854
854
|
};
|
|
855
|
-
function
|
|
856
|
-
return S(), o("svg",
|
|
855
|
+
function fn(e, t) {
|
|
856
|
+
return S(), o("svg", dn, [...t[0] ||= [s("path", {
|
|
857
857
|
fill: "none",
|
|
858
858
|
stroke: "currentColor",
|
|
859
859
|
"stroke-linecap": "round",
|
|
@@ -862,16 +862,16 @@ function pn(e, t) {
|
|
|
862
862
|
d: "M3 12v.01M7 12h10m4 0v.01"
|
|
863
863
|
}, null, -1)]]);
|
|
864
864
|
}
|
|
865
|
-
var
|
|
865
|
+
var pn = m({
|
|
866
866
|
name: "tabler-separator",
|
|
867
|
-
render:
|
|
868
|
-
}),
|
|
867
|
+
render: fn
|
|
868
|
+
}), mn = {
|
|
869
869
|
viewBox: "0 0 24 24",
|
|
870
870
|
width: "1.2em",
|
|
871
871
|
height: "1.2em"
|
|
872
872
|
};
|
|
873
|
-
function
|
|
874
|
-
return S(), o("svg",
|
|
873
|
+
function hn(e, t) {
|
|
874
|
+
return S(), o("svg", mn, [...t[0] ||= [s("path", {
|
|
875
875
|
fill: "none",
|
|
876
876
|
stroke: "currentColor",
|
|
877
877
|
"stroke-linecap": "round",
|
|
@@ -880,16 +880,16 @@ function gn(e, t) {
|
|
|
880
880
|
d: "M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2m8-16h2a2 2 0 0 1 2 2v2m-4 12h2a2 2 0 0 0 2-2v-2M9 12h6m-3-3v6"
|
|
881
881
|
}, null, -1)]]);
|
|
882
882
|
}
|
|
883
|
-
var
|
|
883
|
+
var gn = m({
|
|
884
884
|
name: "tabler-crosshair",
|
|
885
|
-
render:
|
|
886
|
-
}),
|
|
885
|
+
render: hn
|
|
886
|
+
}), _n = {
|
|
887
887
|
viewBox: "0 0 24 24",
|
|
888
888
|
width: "1.2em",
|
|
889
889
|
height: "1.2em"
|
|
890
890
|
};
|
|
891
|
-
function
|
|
892
|
-
return S(), o("svg",
|
|
891
|
+
function vn(e, t) {
|
|
892
|
+
return S(), o("svg", _n, [...t[0] ||= [s("g", {
|
|
893
893
|
fill: "none",
|
|
894
894
|
stroke: "currentColor",
|
|
895
895
|
"stroke-linecap": "round",
|
|
@@ -897,16 +897,16 @@ function yn(e, t) {
|
|
|
897
897
|
"stroke-width": "2"
|
|
898
898
|
}, [s("path", { d: "M3 12a9 9 0 1 0 18 0a9 9 0 0 0-18 0m9-3h.01" }), s("path", { d: "M11 12h1v4h1" })], -1)]]);
|
|
899
899
|
}
|
|
900
|
-
var
|
|
900
|
+
var yn = m({
|
|
901
901
|
name: "tabler-info-circle",
|
|
902
|
-
render:
|
|
903
|
-
}),
|
|
902
|
+
render: vn
|
|
903
|
+
}), bn = {
|
|
904
904
|
viewBox: "0 0 24 24",
|
|
905
905
|
width: "1.2em",
|
|
906
906
|
height: "1.2em"
|
|
907
907
|
};
|
|
908
|
-
function
|
|
909
|
-
return S(), o("svg",
|
|
908
|
+
function xn(e, t) {
|
|
909
|
+
return S(), o("svg", bn, [...t[0] ||= [s("path", {
|
|
910
910
|
fill: "none",
|
|
911
911
|
stroke: "currentColor",
|
|
912
912
|
"stroke-linecap": "round",
|
|
@@ -915,16 +915,16 @@ function Sn(e, t) {
|
|
|
915
915
|
d: "M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m4 0h6m-3-3v6m11 8l-6-6"
|
|
916
916
|
}, null, -1)]]);
|
|
917
917
|
}
|
|
918
|
-
var
|
|
918
|
+
var Sn = m({
|
|
919
919
|
name: "tabler-zoom-in",
|
|
920
|
-
render:
|
|
921
|
-
}),
|
|
920
|
+
render: xn
|
|
921
|
+
}), Cn = {
|
|
922
922
|
viewBox: "0 0 24 24",
|
|
923
923
|
width: "1.2em",
|
|
924
924
|
height: "1.2em"
|
|
925
925
|
};
|
|
926
|
-
function
|
|
927
|
-
return S(), o("svg",
|
|
926
|
+
function wn(e, t) {
|
|
927
|
+
return S(), o("svg", Cn, [...t[0] ||= [s("path", {
|
|
928
928
|
fill: "none",
|
|
929
929
|
stroke: "currentColor",
|
|
930
930
|
"stroke-linecap": "round",
|
|
@@ -933,16 +933,16 @@ function Tn(e, t) {
|
|
|
933
933
|
d: "M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m4 0h6m8 11l-6-6"
|
|
934
934
|
}, null, -1)]]);
|
|
935
935
|
}
|
|
936
|
-
var
|
|
936
|
+
var Tn = m({
|
|
937
937
|
name: "tabler-zoom-out",
|
|
938
|
-
render:
|
|
939
|
-
}),
|
|
938
|
+
render: wn
|
|
939
|
+
}), En = {
|
|
940
940
|
viewBox: "0 0 24 24",
|
|
941
941
|
width: "1.2em",
|
|
942
942
|
height: "1.2em"
|
|
943
943
|
};
|
|
944
|
-
function
|
|
945
|
-
return S(), o("svg",
|
|
944
|
+
function Dn(e, t) {
|
|
945
|
+
return S(), o("svg", En, [...t[0] ||= [s("path", {
|
|
946
946
|
fill: "none",
|
|
947
947
|
stroke: "currentColor",
|
|
948
948
|
"stroke-linecap": "round",
|
|
@@ -951,16 +951,16 @@ function On(e, t) {
|
|
|
951
951
|
d: "M4 8V6a2 2 0 0 1 2-2h2M4 16v2a2 2 0 0 0 2 2h2m8-16h2a2 2 0 0 1 2 2v2m-4 12h2a2 2 0 0 0 2-2v-2"
|
|
952
952
|
}, null, -1)]]);
|
|
953
953
|
}
|
|
954
|
-
var
|
|
954
|
+
var On = m({
|
|
955
955
|
name: "tabler-maximize",
|
|
956
|
-
render:
|
|
957
|
-
}),
|
|
956
|
+
render: Dn
|
|
957
|
+
}), kn = {
|
|
958
958
|
viewBox: "0 0 24 24",
|
|
959
959
|
width: "1.2em",
|
|
960
960
|
height: "1.2em"
|
|
961
961
|
};
|
|
962
|
-
function
|
|
963
|
-
return S(), o("svg",
|
|
962
|
+
function An(e, t) {
|
|
963
|
+
return S(), o("svg", kn, [...t[0] ||= [s("path", {
|
|
964
964
|
fill: "none",
|
|
965
965
|
stroke: "currentColor",
|
|
966
966
|
"stroke-linecap": "round",
|
|
@@ -969,16 +969,16 @@ function jn(e, t) {
|
|
|
969
969
|
d: "M15 19v-2a2 2 0 0 1 2-2h2M15 5v2a2 2 0 0 0 2 2h2M5 15h2a2 2 0 0 1 2 2v2M5 9h2a2 2 0 0 0 2-2V5"
|
|
970
970
|
}, null, -1)]]);
|
|
971
971
|
}
|
|
972
|
-
var
|
|
972
|
+
var jn = m({
|
|
973
973
|
name: "tabler-minimize",
|
|
974
|
-
render:
|
|
975
|
-
}),
|
|
974
|
+
render: An
|
|
975
|
+
}), Mn = {
|
|
976
976
|
viewBox: "0 0 24 24",
|
|
977
977
|
width: "1.2em",
|
|
978
978
|
height: "1.2em"
|
|
979
979
|
};
|
|
980
|
-
function
|
|
981
|
-
return S(), o("svg",
|
|
980
|
+
function Nn(e, t) {
|
|
981
|
+
return S(), o("svg", Mn, [...t[0] ||= [s("g", {
|
|
982
982
|
fill: "none",
|
|
983
983
|
stroke: "currentColor",
|
|
984
984
|
"stroke-linecap": "round",
|
|
@@ -986,16 +986,16 @@ function Pn(e, t) {
|
|
|
986
986
|
"stroke-width": "2"
|
|
987
987
|
}, [s("path", { d: "M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 0 0 2.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 0 0 1.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 0 0-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 0 0-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 0 0-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 0 0-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 0 0 1.066-2.573c-.94-1.543.826-3.31 2.37-2.37c1 .608 2.296.07 2.572-1.065" }), s("path", { d: "M9 12a3 3 0 1 0 6 0a3 3 0 0 0-6 0" })], -1)]]);
|
|
988
988
|
}
|
|
989
|
-
var
|
|
989
|
+
var Pn = m({
|
|
990
990
|
name: "tabler-settings",
|
|
991
|
-
render:
|
|
992
|
-
}),
|
|
991
|
+
render: Nn
|
|
992
|
+
}), Fn = {
|
|
993
993
|
viewBox: "0 0 24 24",
|
|
994
994
|
width: "1.2em",
|
|
995
995
|
height: "1.2em"
|
|
996
996
|
};
|
|
997
|
-
function
|
|
998
|
-
return S(), o("svg",
|
|
997
|
+
function In(e, t) {
|
|
998
|
+
return S(), o("svg", Fn, [...t[0] ||= [s("path", {
|
|
999
999
|
fill: "none",
|
|
1000
1000
|
stroke: "currentColor",
|
|
1001
1001
|
"stroke-linecap": "round",
|
|
@@ -1004,16 +1004,16 @@ function Ln(e, t) {
|
|
|
1004
1004
|
d: "M3 5a2 2 0 1 0 4 0a2 2 0 1 0-4 0m14 0a2 2 0 1 0 4 0a2 2 0 1 0-4 0M3 19a2 2 0 1 0 4 0a2 2 0 1 0-4 0m14 0a2 2 0 1 0 4 0a2 2 0 1 0-4 0M5 7v10M7 5h10M7 19h10m2-12v10"
|
|
1005
1005
|
}, null, -1)]]);
|
|
1006
1006
|
}
|
|
1007
|
-
var
|
|
1007
|
+
var Ln = m({
|
|
1008
1008
|
name: "tabler-shape",
|
|
1009
|
-
render:
|
|
1010
|
-
}),
|
|
1009
|
+
render: In
|
|
1010
|
+
}), Rn = {
|
|
1011
1011
|
viewBox: "0 0 24 24",
|
|
1012
1012
|
width: "1.2em",
|
|
1013
1013
|
height: "1.2em"
|
|
1014
1014
|
};
|
|
1015
|
-
function
|
|
1016
|
-
return S(), o("svg",
|
|
1015
|
+
function zn(e, t) {
|
|
1016
|
+
return S(), o("svg", Rn, [...t[0] ||= [s("path", {
|
|
1017
1017
|
fill: "none",
|
|
1018
1018
|
stroke: "currentColor",
|
|
1019
1019
|
"stroke-linecap": "round",
|
|
@@ -1022,16 +1022,16 @@ function Bn(e, t) {
|
|
|
1022
1022
|
d: "M3 7a2 2 0 1 0 4 0a2 2 0 1 0-4 0m11 8a2 2 0 1 0 4 0a2 2 0 1 0-4 0m1-9a3 3 0 1 0 6 0a3 3 0 1 0-6 0M3 18a3 3 0 1 0 6 0a3 3 0 1 0-6 0m6-1l5-1.5m-7.5-7l7.81 5.37M7 7l8-1"
|
|
1023
1023
|
}, null, -1)]]);
|
|
1024
1024
|
}
|
|
1025
|
-
var
|
|
1025
|
+
var Bn = m({
|
|
1026
1026
|
name: "tabler-chart-dots-3",
|
|
1027
|
-
render:
|
|
1028
|
-
}),
|
|
1027
|
+
render: zn
|
|
1028
|
+
}), Vn = {
|
|
1029
1029
|
viewBox: "0 0 24 24",
|
|
1030
1030
|
width: "1.2em",
|
|
1031
1031
|
height: "1.2em"
|
|
1032
1032
|
};
|
|
1033
|
-
function
|
|
1034
|
-
return S(), o("svg",
|
|
1033
|
+
function Hn(e, t) {
|
|
1034
|
+
return S(), o("svg", Vn, [...t[0] ||= [s("path", {
|
|
1035
1035
|
fill: "none",
|
|
1036
1036
|
stroke: "currentColor",
|
|
1037
1037
|
"stroke-linecap": "round",
|
|
@@ -1040,16 +1040,16 @@ function Un(e, t) {
|
|
|
1040
1040
|
d: "m18 10l-6-6l-6 6zm0 4l-6 6l-6-6z"
|
|
1041
1041
|
}, null, -1)]]);
|
|
1042
1042
|
}
|
|
1043
|
-
var
|
|
1043
|
+
var Un = m({
|
|
1044
1044
|
name: "tabler-caret-up-down",
|
|
1045
|
-
render:
|
|
1046
|
-
}),
|
|
1045
|
+
render: Hn
|
|
1046
|
+
}), Wn = {
|
|
1047
1047
|
viewBox: "0 0 24 24",
|
|
1048
1048
|
width: "1.2em",
|
|
1049
1049
|
height: "1.2em"
|
|
1050
1050
|
};
|
|
1051
|
-
function
|
|
1052
|
-
return S(), o("svg",
|
|
1051
|
+
function Gn(e, t) {
|
|
1052
|
+
return S(), o("svg", Wn, [...t[0] ||= [s("path", {
|
|
1053
1053
|
fill: "none",
|
|
1054
1054
|
stroke: "currentColor",
|
|
1055
1055
|
"stroke-linecap": "round",
|
|
@@ -1058,34 +1058,34 @@ function Kn(e, t) {
|
|
|
1058
1058
|
d: "M8 4H5v16h3m8-16h3v16h-3"
|
|
1059
1059
|
}, null, -1)]]);
|
|
1060
1060
|
}
|
|
1061
|
-
var
|
|
1061
|
+
var Kn = m({
|
|
1062
1062
|
name: "tabler-brackets",
|
|
1063
|
-
render:
|
|
1063
|
+
render: Gn
|
|
1064
1064
|
});
|
|
1065
1065
|
//#endregion
|
|
1066
1066
|
//#region src/debug/canvasProfiler.ts
|
|
1067
|
-
function
|
|
1067
|
+
function qn() {
|
|
1068
1068
|
return Object.create(null);
|
|
1069
1069
|
}
|
|
1070
|
-
function
|
|
1070
|
+
function Jn() {
|
|
1071
1071
|
return {
|
|
1072
|
-
ctxMethods:
|
|
1073
|
-
ctxProps:
|
|
1074
|
-
canvasProps:
|
|
1072
|
+
ctxMethods: qn(),
|
|
1073
|
+
ctxProps: qn(),
|
|
1074
|
+
canvasProps: qn(),
|
|
1075
1075
|
ctxMethodSources: Object.create(null)
|
|
1076
1076
|
};
|
|
1077
1077
|
}
|
|
1078
|
-
function
|
|
1078
|
+
function Yn(e, t, n) {
|
|
1079
1079
|
let r = e[t] ??= {
|
|
1080
1080
|
count: 0,
|
|
1081
1081
|
totalTime: 0
|
|
1082
1082
|
};
|
|
1083
1083
|
r.count += 1, r.totalTime += n;
|
|
1084
1084
|
}
|
|
1085
|
-
function
|
|
1086
|
-
|
|
1085
|
+
function Xn(e, t, n, r) {
|
|
1086
|
+
Yn(e.ctxMethodSources[t] ??= qn(), n, r);
|
|
1087
1087
|
}
|
|
1088
|
-
function
|
|
1088
|
+
function Zn(e) {
|
|
1089
1089
|
return Object.entries(e).filter(([, e]) => e.count > 0).map(([e, t]) => ({
|
|
1090
1090
|
name: e,
|
|
1091
1091
|
count: t.count,
|
|
@@ -1093,12 +1093,12 @@ function Qn(e) {
|
|
|
1093
1093
|
averageTime: (t.totalTime / t.count).toFixed(4)
|
|
1094
1094
|
})).sort((e, t) => Number(t.totalTime) - Number(e.totalTime));
|
|
1095
1095
|
}
|
|
1096
|
-
var
|
|
1097
|
-
function
|
|
1098
|
-
|
|
1096
|
+
var Qn = !1, $n = /* @__PURE__ */ new Map(), er = /* @__PURE__ */ new Map();
|
|
1097
|
+
function tr(e) {
|
|
1098
|
+
Qn = e, e ? typeof window < "u" && !window.__KMAP_CANVAS_PROFILER_INSTALLED__ && ir() : ar();
|
|
1099
1099
|
}
|
|
1100
|
-
function
|
|
1101
|
-
if (
|
|
1100
|
+
function nr() {
|
|
1101
|
+
if (!Qn) return "disabled";
|
|
1102
1102
|
let e = (/* @__PURE__ */ Error()).stack;
|
|
1103
1103
|
if (!e) return "unknown";
|
|
1104
1104
|
let t = e.split("\n").map((e) => e.trim()).filter(Boolean);
|
|
@@ -1113,69 +1113,69 @@ function rr() {
|
|
|
1113
1113
|
}
|
|
1114
1114
|
function Q(e, t, n, r) {
|
|
1115
1115
|
let i = `${e.constructor?.name ?? "proto"}:${t}`;
|
|
1116
|
-
if (
|
|
1116
|
+
if ($n.has(i)) return;
|
|
1117
1117
|
let a = Reflect.get(e, t);
|
|
1118
|
-
typeof a == "function" && (
|
|
1119
|
-
if (
|
|
1120
|
-
let i = r?.captureSource ?
|
|
1121
|
-
return
|
|
1118
|
+
typeof a == "function" && ($n.set(i, a), Reflect.set(e, t, function(...e) {
|
|
1119
|
+
if (!Qn) return a.apply(this, e);
|
|
1120
|
+
let i = r?.captureSource ? nr() : null, o = performance.now(), s = a.apply(this, e), c = performance.now() - o;
|
|
1121
|
+
return Yn(n.ctxMethods, t, c), i && Xn(n, t, i, c), s;
|
|
1122
1122
|
}));
|
|
1123
1123
|
}
|
|
1124
|
-
function
|
|
1124
|
+
function rr(e, t, n) {
|
|
1125
1125
|
let r = Object.getOwnPropertyDescriptor(e, t);
|
|
1126
1126
|
if (!r?.set || !r.configurable) return;
|
|
1127
1127
|
let i = `${e.constructor?.name ?? "proto"}:${t}`;
|
|
1128
|
-
|
|
1128
|
+
er.has(i) || (er.set(i, r), Object.defineProperty(e, t, {
|
|
1129
1129
|
configurable: !0,
|
|
1130
1130
|
enumerable: r.enumerable ?? !1,
|
|
1131
1131
|
get: r.get,
|
|
1132
1132
|
set(e) {
|
|
1133
|
-
if (
|
|
1133
|
+
if (!Qn) {
|
|
1134
1134
|
r.set.call(this, e);
|
|
1135
1135
|
return;
|
|
1136
1136
|
}
|
|
1137
1137
|
let i = performance.now();
|
|
1138
|
-
r.set.call(this, e),
|
|
1138
|
+
r.set.call(this, e), Yn(n, t, performance.now() - i);
|
|
1139
1139
|
}
|
|
1140
1140
|
}));
|
|
1141
1141
|
}
|
|
1142
|
-
function
|
|
1142
|
+
function ir() {
|
|
1143
1143
|
if (typeof window > "u" || window.__KMAP_CANVAS_PROFILER_INSTALLED__) return;
|
|
1144
1144
|
let e = CanvasRenderingContext2D?.prototype, t = HTMLCanvasElement?.prototype;
|
|
1145
1145
|
if (!e || !t) return;
|
|
1146
|
-
let n =
|
|
1147
|
-
Q(e, "fillText", n, { captureSource: !0 }), Q(e, "measureText", n, { captureSource: !0 }), Q(e, "drawImage", n), Q(e, "save", n), Q(e, "restore", n), Q(e, "clip", n), Q(e, "setTransform", n), Q(e, "scale", n),
|
|
1146
|
+
let n = Jn();
|
|
1147
|
+
Q(e, "fillText", n, { captureSource: !0 }), Q(e, "measureText", n, { captureSource: !0 }), Q(e, "drawImage", n), Q(e, "save", n), Q(e, "restore", n), Q(e, "clip", n), Q(e, "setTransform", n), Q(e, "scale", n), rr(e, "font", n.ctxProps), rr(e, "filter", n.ctxProps), rr(e, "shadowBlur", n.ctxProps), rr(e, "lineWidth", n.ctxProps), rr(t, "width", n.canvasProps), rr(t, "height", n.canvasProps), window.__KMAP_CANVAS_PROFILER_METRICS__ = n, window.__KMAP_CANVAS_PROFILER_INSTALLED__ = !0, window.showCanvasReport = () => {
|
|
1148
1148
|
let e = window.__KMAP_CANVAS_PROFILER_METRICS__;
|
|
1149
1149
|
if (e) {
|
|
1150
|
-
console.group("[kmap] Canvas profiler report"), console.log("ctx methods"), console.table(
|
|
1150
|
+
console.group("[kmap] Canvas profiler report"), console.log("ctx methods"), console.table(Zn(e.ctxMethods)), console.log("ctx props"), console.table(Zn(e.ctxProps)), console.log("canvas props"), console.table(Zn(e.canvasProps));
|
|
1151
1151
|
for (let t of ["fillText", "measureText"]) {
|
|
1152
1152
|
let n = e.ctxMethodSources[t];
|
|
1153
|
-
n && (console.log(`${t} sources`), console.table(
|
|
1153
|
+
n && (console.log(`${t} sources`), console.table(Zn(n).slice(0, 20)));
|
|
1154
1154
|
}
|
|
1155
1155
|
console.groupEnd();
|
|
1156
1156
|
}
|
|
1157
1157
|
}, window.resetCanvasReport = () => {
|
|
1158
|
-
window.__KMAP_CANVAS_PROFILER_METRICS__ =
|
|
1158
|
+
window.__KMAP_CANVAS_PROFILER_METRICS__ = Jn();
|
|
1159
1159
|
}, console.info("[kmap] Canvas profiler enabled. Use window.showCanvasReport() and window.resetCanvasReport().");
|
|
1160
1160
|
}
|
|
1161
|
-
function
|
|
1161
|
+
function ar() {
|
|
1162
1162
|
if (typeof window > "u" || !window.__KMAP_CANVAS_PROFILER_INSTALLED__) return;
|
|
1163
1163
|
let e = CanvasRenderingContext2D?.prototype, t = HTMLCanvasElement?.prototype;
|
|
1164
|
-
|
|
1164
|
+
$n.forEach((n, r) => {
|
|
1165
1165
|
let i = r.match(/^(.+):(.+)$/);
|
|
1166
1166
|
if (!i) return;
|
|
1167
1167
|
let [, a, o] = i, s = null;
|
|
1168
1168
|
a === "CanvasRenderingContext2D" ? s = e : a === "HTMLCanvasElement" && (s = t), s && Reflect.set(s, o, n);
|
|
1169
|
-
}),
|
|
1169
|
+
}), $n.clear(), er.forEach((n, r) => {
|
|
1170
1170
|
let i = r.match(/^(.+):(.+)$/);
|
|
1171
1171
|
if (!i) return;
|
|
1172
1172
|
let [, a, o] = i, s = null;
|
|
1173
1173
|
a === "CanvasRenderingContext2D" ? s = e : a === "HTMLCanvasElement" && (s = t), s && n.configurable && Object.defineProperty(s, o, n);
|
|
1174
|
-
}),
|
|
1174
|
+
}), er.clear(), window.__KMAP_CANVAS_PROFILER_INSTALLED__ = !1, window.__KMAP_CANVAS_PROFILER_METRICS__ = void 0, window.showCanvasReport = void 0, window.resetCanvasReport = void 0, console.info("[kmap] Canvas profiler disabled.");
|
|
1175
1175
|
}
|
|
1176
1176
|
//#endregion
|
|
1177
1177
|
//#region src/components/ChartSettingsDialog.vue?vue&type=script&setup=true&lang.ts
|
|
1178
|
-
var
|
|
1178
|
+
var or = { class: "settings-body" }, sr = { class: "settings-label" }, cr = ["onUpdate:modelValue"], lr = { class: "settings-label" }, ur = ["onUpdate:modelValue"], dr = { class: "settings-label" }, fr = ["onUpdate:modelValue"], pr = { class: "settings-header" }, mr = { class: "header-right" }, hr = { class: "settings-body" }, gr = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
1179
1179
|
__name: "ChartSettingsDialog",
|
|
1180
1180
|
props: { show: { type: Boolean } },
|
|
1181
1181
|
emits: ["close", "confirm"],
|
|
@@ -1183,7 +1183,7 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1183
1183
|
let f = u, p = d, m = Me(), h = r(() => B.filter((e) => e.group === "main")), g = r(() => B.filter((e) => e.group === "experimental")), _ = r(() => B.filter((e) => e.group === "style")), v = w(!1);
|
|
1184
1184
|
function y() {
|
|
1185
1185
|
try {
|
|
1186
|
-
let e = localStorage.getItem(
|
|
1186
|
+
let e = localStorage.getItem(he);
|
|
1187
1187
|
if (e) {
|
|
1188
1188
|
let t = JSON.parse(e), n = {};
|
|
1189
1189
|
return B.forEach((e) => {
|
|
@@ -1231,16 +1231,16 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1231
1231
|
stroke: "currentColor",
|
|
1232
1232
|
"stroke-width": "2"
|
|
1233
1233
|
}, [s("path", { d: "M18 6L6 18M6 6l12 12" })], -1)]])])]),
|
|
1234
|
-
s("div",
|
|
1234
|
+
s("div", or, [
|
|
1235
1235
|
h.value.length > 0 ? (S(), o(e, { key: 0 }, [d[8] ||= s("div", { class: "settings-section-divider" }, [s("span", { class: "settings-section-label" }, "主图设置")], -1), (S(!0), o(e, null, T(h.value, (e) => (S(), o("div", {
|
|
1236
1236
|
key: e.key,
|
|
1237
1237
|
class: "settings-item"
|
|
1238
|
-
}, [s("label",
|
|
1238
|
+
}, [s("label", sr, [s("span", null, O(e.label), 1), e.type === "boolean" ? P((S(), o("input", {
|
|
1239
1239
|
key: 0,
|
|
1240
1240
|
type: "checkbox",
|
|
1241
1241
|
class: "settings-checkbox",
|
|
1242
1242
|
"onUpdate:modelValue": (t) => b.value[e.key] = t
|
|
1243
|
-
}, null, 8,
|
|
1243
|
+
}, null, 8, cr)), [[A, b.value[e.key]]]) : e.type === "select" && e.options ? (S(), i(K, {
|
|
1244
1244
|
key: 1,
|
|
1245
1245
|
"model-value": String(b.value[e.key]),
|
|
1246
1246
|
options: e.options,
|
|
@@ -1256,12 +1256,12 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1256
1256
|
(S(!0), o(e, null, T(_.value, (e) => (S(), o("div", {
|
|
1257
1257
|
key: e.key,
|
|
1258
1258
|
class: "settings-item"
|
|
1259
|
-
}, [s("label",
|
|
1259
|
+
}, [s("label", lr, [s("span", null, O(e.label), 1), e.type === "boolean" ? P((S(), o("input", {
|
|
1260
1260
|
key: 0,
|
|
1261
1261
|
type: "checkbox",
|
|
1262
1262
|
class: "settings-checkbox",
|
|
1263
1263
|
"onUpdate:modelValue": (t) => b.value[e.key] = t
|
|
1264
|
-
}, null, 8,
|
|
1264
|
+
}, null, 8, ur)), [[A, b.value[e.key]]]) : e.type === "select" && e.options ? (S(), i(K, {
|
|
1265
1265
|
key: 1,
|
|
1266
1266
|
"model-value": String(b.value[e.key]),
|
|
1267
1267
|
options: e.options,
|
|
@@ -1288,12 +1288,12 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1288
1288
|
g.value.length > 0 ? (S(), o(e, { key: 1 }, [d[10] ||= s("div", { class: "settings-section-divider" }, [s("span", { class: "settings-section-label" }, "实验性 / 调试设置")], -1), (S(!0), o(e, null, T(g.value, (e) => (S(), o("div", {
|
|
1289
1289
|
key: e.key,
|
|
1290
1290
|
class: "settings-item experimental"
|
|
1291
|
-
}, [s("label",
|
|
1291
|
+
}, [s("label", dr, [s("span", null, O(e.label), 1), e.type === "boolean" ? P((S(), o("input", {
|
|
1292
1292
|
key: 0,
|
|
1293
1293
|
type: "checkbox",
|
|
1294
1294
|
class: "settings-checkbox",
|
|
1295
1295
|
"onUpdate:modelValue": (t) => b.value[e.key] = t
|
|
1296
|
-
}, null, 8,
|
|
1296
|
+
}, null, 8, fr)), [[A, b.value[e.key]]]) : e.type === "select" && e.options ? (S(), i(K, {
|
|
1297
1297
|
key: 1,
|
|
1298
1298
|
"model-value": String(b.value[e.key]),
|
|
1299
1299
|
options: e.options,
|
|
@@ -1339,7 +1339,7 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1339
1339
|
default: N(() => [s("div", {
|
|
1340
1340
|
class: "settings-modal",
|
|
1341
1341
|
onClick: d[4] ||= I(() => {}, ["stop"])
|
|
1342
|
-
}, [s("div",
|
|
1342
|
+
}, [s("div", pr, [d[15] ||= s("div", { class: "header-left" }, [s("span", { class: "settings-title" }, "颜色预设"), s("span", { class: "settings-subtitle" }, "自定义图表颜色")], -1), s("div", mr, [s("button", {
|
|
1343
1343
|
class: "settings-close",
|
|
1344
1344
|
onClick: d[2] ||= (e) => v.value = !1
|
|
1345
1345
|
}, [...d[14] ||= [s("svg", {
|
|
@@ -1347,7 +1347,7 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1347
1347
|
fill: "none",
|
|
1348
1348
|
stroke: "currentColor",
|
|
1349
1349
|
"stroke-width": "2"
|
|
1350
|
-
}, [s("path", { d: "M18 6L6 18M6 6l12 12" })], -1)]])])]), s("div",
|
|
1350
|
+
}, [s("path", { d: "M18 6L6 18M6 6l12 12" })], -1)]])])]), s("div", hr, [l(W, {
|
|
1351
1351
|
"color-preset-settings": b.value.colorPresetSettings,
|
|
1352
1352
|
"onUpdate:colorPresetSettings": d[3] ||= (e) => b.value = {
|
|
1353
1353
|
...b.value,
|
|
@@ -1359,18 +1359,18 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1359
1359
|
_: 1
|
|
1360
1360
|
})], 8, ["to"]));
|
|
1361
1361
|
}
|
|
1362
|
-
}), [["__scopeId", "data-v-e04604ac"]]),
|
|
1362
|
+
}), [["__scopeId", "data-v-e04604ac"]]), _r = {
|
|
1363
1363
|
class: "left-toolbar",
|
|
1364
1364
|
"aria-label": "图表工具栏"
|
|
1365
|
-
},
|
|
1365
|
+
}, vr = { class: "left-toolbar__group" }, yr = [
|
|
1366
1366
|
"title",
|
|
1367
1367
|
"aria-label",
|
|
1368
1368
|
"onClick"
|
|
1369
|
-
],
|
|
1369
|
+
], br = ["onClick"], xr = [
|
|
1370
1370
|
"title",
|
|
1371
1371
|
"aria-label",
|
|
1372
1372
|
"onClick"
|
|
1373
|
-
],
|
|
1373
|
+
], Sr = { class: "left-toolbar__group" }, Cr = { class: "left-toolbar__group" }, wr = ["title", "aria-label"], Tr = { class: "left-toolbar__group" }, Er = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
1374
1374
|
__name: "LeftToolbar",
|
|
1375
1375
|
props: { isFullscreen: { type: Boolean } },
|
|
1376
1376
|
emits: [
|
|
@@ -1385,81 +1385,81 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1385
1385
|
{
|
|
1386
1386
|
id: "cursor",
|
|
1387
1387
|
title: "光标",
|
|
1388
|
-
icon:
|
|
1388
|
+
icon: Zt
|
|
1389
1389
|
},
|
|
1390
1390
|
{
|
|
1391
1391
|
id: "lines",
|
|
1392
1392
|
title: "线条",
|
|
1393
|
-
icon:
|
|
1393
|
+
icon: en,
|
|
1394
1394
|
children: [
|
|
1395
1395
|
{
|
|
1396
1396
|
id: "trend-line",
|
|
1397
1397
|
title: "线段",
|
|
1398
|
-
icon:
|
|
1398
|
+
icon: en
|
|
1399
1399
|
},
|
|
1400
1400
|
{
|
|
1401
1401
|
id: "ray",
|
|
1402
1402
|
title: "射线",
|
|
1403
|
-
icon:
|
|
1403
|
+
icon: rn
|
|
1404
1404
|
},
|
|
1405
1405
|
{
|
|
1406
1406
|
id: "h-line",
|
|
1407
1407
|
title: "水平线",
|
|
1408
|
-
icon:
|
|
1408
|
+
icon: un
|
|
1409
1409
|
},
|
|
1410
1410
|
{
|
|
1411
1411
|
id: "h-ray",
|
|
1412
1412
|
title: "水平射线",
|
|
1413
|
-
icon:
|
|
1413
|
+
icon: sn
|
|
1414
1414
|
},
|
|
1415
1415
|
{
|
|
1416
1416
|
id: "v-line",
|
|
1417
1417
|
title: "垂直线",
|
|
1418
|
-
icon:
|
|
1418
|
+
icon: pn
|
|
1419
1419
|
},
|
|
1420
1420
|
{
|
|
1421
1421
|
id: "crosshair-line",
|
|
1422
1422
|
title: "十字线",
|
|
1423
|
-
icon:
|
|
1423
|
+
icon: gn
|
|
1424
1424
|
},
|
|
1425
1425
|
{
|
|
1426
1426
|
id: "info-line",
|
|
1427
1427
|
title: "信息线",
|
|
1428
|
-
icon:
|
|
1428
|
+
icon: yn
|
|
1429
1429
|
}
|
|
1430
1430
|
]
|
|
1431
1431
|
},
|
|
1432
1432
|
{
|
|
1433
1433
|
id: "channels",
|
|
1434
1434
|
title: "通道",
|
|
1435
|
-
icon:
|
|
1435
|
+
icon: Ln,
|
|
1436
1436
|
children: [
|
|
1437
1437
|
{
|
|
1438
1438
|
id: "parallel-channel",
|
|
1439
1439
|
title: "平行通道",
|
|
1440
|
-
icon:
|
|
1440
|
+
icon: Ln
|
|
1441
1441
|
},
|
|
1442
1442
|
{
|
|
1443
1443
|
id: "regression-channel",
|
|
1444
1444
|
title: "回归趋势",
|
|
1445
|
-
icon:
|
|
1445
|
+
icon: Bn
|
|
1446
1446
|
},
|
|
1447
1447
|
{
|
|
1448
1448
|
id: "flat-line",
|
|
1449
1449
|
title: "平滑顶底",
|
|
1450
|
-
icon:
|
|
1450
|
+
icon: Un
|
|
1451
1451
|
},
|
|
1452
1452
|
{
|
|
1453
1453
|
id: "disjoint-channel",
|
|
1454
1454
|
title: "不相交通道",
|
|
1455
|
-
icon:
|
|
1455
|
+
icon: Kn
|
|
1456
1456
|
}
|
|
1457
1457
|
]
|
|
1458
1458
|
}
|
|
1459
1459
|
], d = c, f = w("cursor"), p = w(null), m = w(!1);
|
|
1460
1460
|
function h() {
|
|
1461
1461
|
try {
|
|
1462
|
-
let e = localStorage.getItem(
|
|
1462
|
+
let e = localStorage.getItem(he);
|
|
1463
1463
|
if (e) {
|
|
1464
1464
|
let t = JSON.parse(e), n = { ...t };
|
|
1465
1465
|
return B.forEach((e) => {
|
|
@@ -1474,7 +1474,7 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1474
1474
|
}
|
|
1475
1475
|
function _(e) {
|
|
1476
1476
|
try {
|
|
1477
|
-
localStorage.setItem(
|
|
1477
|
+
localStorage.setItem(he, JSON.stringify(e));
|
|
1478
1478
|
} catch {}
|
|
1479
1479
|
}
|
|
1480
1480
|
let v = w(h());
|
|
@@ -1506,17 +1506,17 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1506
1506
|
}
|
|
1507
1507
|
r({ getSettings: j });
|
|
1508
1508
|
function M(e) {
|
|
1509
|
-
v.value = { ...e }, _(v.value),
|
|
1509
|
+
v.value = { ...e }, _(v.value), tr(!!v.value.enableCanvasProfiler), d("settingsChange", { ...v.value }), m.value = !1;
|
|
1510
1510
|
}
|
|
1511
1511
|
function P(e) {
|
|
1512
1512
|
e.target.closest(".tool-item") || (p.value = null);
|
|
1513
1513
|
}
|
|
1514
1514
|
return y(() => {
|
|
1515
|
-
document.addEventListener("click", P, !0), d("settingsChange", { ...v.value }),
|
|
1515
|
+
document.addEventListener("click", P, !0), d("settingsChange", { ...v.value }), tr(!!v.value.enableCanvasProfiler);
|
|
1516
1516
|
}), x(() => {
|
|
1517
1517
|
document.removeEventListener("click", P, !0);
|
|
1518
|
-
}), (r, c) => (S(), o(e, null, [s("nav",
|
|
1519
|
-
s("div",
|
|
1518
|
+
}), (r, c) => (S(), o(e, null, [s("nav", _r, [
|
|
1519
|
+
s("div", vr, [(S(), o(e, null, T(u, (t) => s("div", {
|
|
1520
1520
|
key: t.id,
|
|
1521
1521
|
class: "tool-item"
|
|
1522
1522
|
}, [s("button", {
|
|
@@ -1536,7 +1536,7 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1536
1536
|
class: g(["corner-indicator", { open: p.value === t.id }]),
|
|
1537
1537
|
onClick: I((e) => O(t.id), ["stop"]),
|
|
1538
1538
|
"aria-label": "展开子菜单"
|
|
1539
|
-
}, null, 10,
|
|
1539
|
+
}, null, 10, br)) : a("", !0)], 42, yr), l(n, { name: "dropdown" }, {
|
|
1540
1540
|
default: N(() => [p.value === t.id && t.children && t.children.length ? (S(), o("div", {
|
|
1541
1541
|
key: 0,
|
|
1542
1542
|
class: "tool-dropdown",
|
|
@@ -1553,11 +1553,11 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1553
1553
|
}, [(S(), i(E(e.icon), {
|
|
1554
1554
|
class: "tool-icon",
|
|
1555
1555
|
"aria-hidden": "true"
|
|
1556
|
-
}))], 10,
|
|
1556
|
+
}))], 10, xr))), 128))], 32)) : a("", !0)]),
|
|
1557
1557
|
_: 2
|
|
1558
1558
|
}, 1024)])), 64))]),
|
|
1559
1559
|
c[22] ||= s("span", { class: "left-toolbar__divider" }, null, -1),
|
|
1560
|
-
s("div",
|
|
1560
|
+
s("div", Sr, [s("button", {
|
|
1561
1561
|
type: "button",
|
|
1562
1562
|
class: "left-toolbar__button",
|
|
1563
1563
|
title: "放大",
|
|
@@ -1566,7 +1566,7 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1566
1566
|
onPointerdown: c[7] ||= I(() => {}, ["stop"]),
|
|
1567
1567
|
onPointermove: c[8] ||= I(() => {}, ["stop"]),
|
|
1568
1568
|
onPointerup: c[9] ||= I(() => {}, ["stop"])
|
|
1569
|
-
}, [l(k(
|
|
1569
|
+
}, [l(k(Sn), {
|
|
1570
1570
|
class: "tool-icon",
|
|
1571
1571
|
"aria-hidden": "true"
|
|
1572
1572
|
})], 32), s("button", {
|
|
@@ -1578,12 +1578,12 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1578
1578
|
onPointerdown: c[11] ||= I(() => {}, ["stop"]),
|
|
1579
1579
|
onPointermove: c[12] ||= I(() => {}, ["stop"]),
|
|
1580
1580
|
onPointerup: c[13] ||= I(() => {}, ["stop"])
|
|
1581
|
-
}, [l(k(
|
|
1581
|
+
}, [l(k(Tn), {
|
|
1582
1582
|
class: "tool-icon",
|
|
1583
1583
|
"aria-hidden": "true"
|
|
1584
1584
|
})], 32)]),
|
|
1585
1585
|
c[23] ||= s("span", { class: "left-toolbar__divider" }, null, -1),
|
|
1586
|
-
s("div",
|
|
1586
|
+
s("div", Cr, [s("button", {
|
|
1587
1587
|
type: "button",
|
|
1588
1588
|
class: "left-toolbar__button",
|
|
1589
1589
|
title: t.isFullscreen ? "退出全屏" : "全屏显示",
|
|
@@ -1592,17 +1592,17 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1592
1592
|
onPointerdown: c[15] ||= I(() => {}, ["stop"]),
|
|
1593
1593
|
onPointermove: c[16] ||= I(() => {}, ["stop"]),
|
|
1594
1594
|
onPointerup: c[17] ||= I(() => {}, ["stop"])
|
|
1595
|
-
}, [t.isFullscreen ? (S(), i(k(
|
|
1595
|
+
}, [t.isFullscreen ? (S(), i(k(jn), {
|
|
1596
1596
|
key: 0,
|
|
1597
1597
|
class: "tool-icon",
|
|
1598
1598
|
"aria-hidden": "true"
|
|
1599
|
-
})) : (S(), i(k(
|
|
1599
|
+
})) : (S(), i(k(On), {
|
|
1600
1600
|
key: 1,
|
|
1601
1601
|
class: "tool-icon",
|
|
1602
1602
|
"aria-hidden": "true"
|
|
1603
|
-
}))], 40,
|
|
1603
|
+
}))], 40, wr)]),
|
|
1604
1604
|
c[24] ||= s("span", { class: "left-toolbar__divider" }, null, -1),
|
|
1605
|
-
s("div",
|
|
1605
|
+
s("div", Tr, [s("button", {
|
|
1606
1606
|
type: "button",
|
|
1607
1607
|
class: "left-toolbar__button",
|
|
1608
1608
|
title: "设置",
|
|
@@ -1611,17 +1611,17 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1611
1611
|
onPointerdown: c[18] ||= I(() => {}, ["stop"]),
|
|
1612
1612
|
onPointermove: c[19] ||= I(() => {}, ["stop"]),
|
|
1613
1613
|
onPointerup: c[20] ||= I(() => {}, ["stop"])
|
|
1614
|
-
}, [l(k(
|
|
1614
|
+
}, [l(k(Pn), {
|
|
1615
1615
|
class: "tool-icon",
|
|
1616
1616
|
"aria-hidden": "true"
|
|
1617
1617
|
})], 32)])
|
|
1618
|
-
]), l(
|
|
1618
|
+
]), l(gr, {
|
|
1619
1619
|
show: m.value,
|
|
1620
1620
|
onClose: c[21] ||= (e) => m.value = !1,
|
|
1621
1621
|
onConfirm: M
|
|
1622
1622
|
}, null, 8, ["show"])], 64));
|
|
1623
1623
|
}
|
|
1624
|
-
}), [["__scopeId", "data-v-66411b58"]]),
|
|
1624
|
+
}), [["__scopeId", "data-v-66411b58"]]), Dr = /* @__PURE__ */ u({
|
|
1625
1625
|
__name: "KLineLevelDropdown",
|
|
1626
1626
|
props: { modelValue: {} },
|
|
1627
1627
|
emits: ["update:modelValue"],
|
|
@@ -1664,7 +1664,7 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1664
1664
|
value: "yearly"
|
|
1665
1665
|
}
|
|
1666
1666
|
], r = t;
|
|
1667
|
-
return (t, a) => (S(), i(
|
|
1667
|
+
return (t, a) => (S(), i(K, {
|
|
1668
1668
|
"model-value": e.modelValue,
|
|
1669
1669
|
options: n,
|
|
1670
1670
|
label: "级别",
|
|
@@ -1673,13 +1673,13 @@ var sr = { class: "settings-body" }, cr = { class: "settings-label" }, lr = ["on
|
|
|
1673
1673
|
"onUpdate:modelValue": a[0] ||= (e) => r("update:modelValue", e)
|
|
1674
1674
|
}, null, 8, ["model-value"]));
|
|
1675
1675
|
}
|
|
1676
|
-
}),
|
|
1676
|
+
}), Or = {
|
|
1677
1677
|
viewBox: "0 0 24 24",
|
|
1678
1678
|
width: "1.2em",
|
|
1679
1679
|
height: "1.2em"
|
|
1680
1680
|
};
|
|
1681
|
-
function
|
|
1682
|
-
return S(), o("svg",
|
|
1681
|
+
function kr(e, t) {
|
|
1682
|
+
return S(), o("svg", Or, [...t[0] ||= [s("path", {
|
|
1683
1683
|
fill: "none",
|
|
1684
1684
|
stroke: "currentColor",
|
|
1685
1685
|
"stroke-linecap": "round",
|
|
@@ -1688,26 +1688,26 @@ function Ar(e, t) {
|
|
|
1688
1688
|
d: "M12 9v4m-1.637-9.409L2.257 17.125a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636-2.87L13.637 3.59a1.914 1.914 0 0 0-3.274 0M12 16h.01"
|
|
1689
1689
|
}, null, -1)]]);
|
|
1690
1690
|
}
|
|
1691
|
-
var
|
|
1691
|
+
var Ar = m({
|
|
1692
1692
|
name: "tabler-alert-triangle",
|
|
1693
|
-
render:
|
|
1694
|
-
}),
|
|
1693
|
+
render: kr
|
|
1694
|
+
}), jr = ["title", "aria-expanded"], Mr = { class: "symbol-chip__code" }, Nr = {
|
|
1695
1695
|
key: 0,
|
|
1696
1696
|
class: "symbol-chip__spinner",
|
|
1697
1697
|
"aria-hidden": "true"
|
|
1698
|
-
},
|
|
1698
|
+
}, Pr = {
|
|
1699
1699
|
key: 0,
|
|
1700
1700
|
class: "symbol-popover",
|
|
1701
1701
|
role: "dialog",
|
|
1702
1702
|
"aria-label": "切换合约"
|
|
1703
|
-
},
|
|
1703
|
+
}, Fr = { class: "symbol-search" }, Ir = {
|
|
1704
1704
|
class: "symbol-list",
|
|
1705
1705
|
role: "listbox",
|
|
1706
1706
|
"aria-label": "商品列表"
|
|
1707
|
-
},
|
|
1707
|
+
}, Lr = {
|
|
1708
1708
|
key: 0,
|
|
1709
1709
|
class: "symbol-list__empty"
|
|
1710
|
-
},
|
|
1710
|
+
}, Rr = {
|
|
1711
1711
|
width: "32",
|
|
1712
1712
|
height: "32",
|
|
1713
1713
|
viewBox: "0 0 32 32",
|
|
@@ -1716,7 +1716,7 @@ var jr = m({
|
|
|
1716
1716
|
"margin-bottom": "8px",
|
|
1717
1717
|
opacity: "0.35"
|
|
1718
1718
|
}
|
|
1719
|
-
},
|
|
1719
|
+
}, zr = ["aria-selected", "onClick"], Br = { class: "symbol-list__left" }, Vr = { class: "symbol-list__code" }, Hr = { class: "symbol-list__desc" }, Ur = { class: "symbol-list__exchange" }, Wr = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
1720
1720
|
__name: "SymbolSelector",
|
|
1721
1721
|
props: {
|
|
1722
1722
|
symbol: {},
|
|
@@ -1726,24 +1726,27 @@ var jr = m({
|
|
|
1726
1726
|
},
|
|
1727
1727
|
emits: ["change"],
|
|
1728
1728
|
setup(t, { emit: c }) {
|
|
1729
|
-
let u = t, d = c, f = w(!1), p = w(""), m = w(null), _ = w(null), b = r(() => {
|
|
1729
|
+
let u = t, d = c, f = w(!1), p = w(""), m = w(null), _ = w(null), b = r(() => u.symbols.find((e) => e.code === u.symbol)), x = r(() => {
|
|
1730
|
+
let e = b.value;
|
|
1731
|
+
return e ? `${e.code} - ${e.description}` : u.symbol;
|
|
1732
|
+
}), C = r(() => {
|
|
1730
1733
|
let e = p.value.trim().toLowerCase();
|
|
1731
1734
|
return e ? u.symbols.filter((t) => t.code.toLowerCase().includes(e) || t.description.toLowerCase().includes(e) || t.exchange.toLowerCase().includes(e)) : u.symbols;
|
|
1732
1735
|
});
|
|
1733
|
-
function
|
|
1736
|
+
function E() {
|
|
1734
1737
|
f.value = !f.value, f.value && h(() => m.value?.focus());
|
|
1735
1738
|
}
|
|
1736
|
-
function
|
|
1739
|
+
function D() {
|
|
1737
1740
|
p.value = "", m.value?.focus();
|
|
1738
1741
|
}
|
|
1739
|
-
function
|
|
1740
|
-
function
|
|
1742
|
+
function A() {}
|
|
1743
|
+
function F(e) {
|
|
1741
1744
|
d("change", e), f.value = !1, p.value = "";
|
|
1742
1745
|
}
|
|
1743
|
-
function
|
|
1746
|
+
function I(e) {
|
|
1744
1747
|
_.value && !_.value.contains(e.target) && (f.value = !1);
|
|
1745
1748
|
}
|
|
1746
|
-
return y(() => document.addEventListener("mousedown",
|
|
1749
|
+
return y(() => document.addEventListener("mousedown", I)), v(() => document.removeEventListener("mousedown", I)), M(() => u.symbol, () => {
|
|
1747
1750
|
f.value = !1, p.value = "";
|
|
1748
1751
|
}), (r, c) => (S(), o("div", {
|
|
1749
1752
|
ref_key: "chipWrapRef",
|
|
@@ -1752,16 +1755,16 @@ var jr = m({
|
|
|
1752
1755
|
}, [s("button", {
|
|
1753
1756
|
type: "button",
|
|
1754
1757
|
class: g(["symbol-chip", { "is-open": f.value }]),
|
|
1755
|
-
title:
|
|
1758
|
+
title: x.value,
|
|
1756
1759
|
"aria-expanded": f.value,
|
|
1757
1760
|
"aria-haspopup": "dialog",
|
|
1758
|
-
onClick:
|
|
1759
|
-
}, [s("span",
|
|
1761
|
+
onClick: E
|
|
1762
|
+
}, [s("span", Mr, O(x.value), 1), t.loading ? (S(), o("span", Nr)) : t.error ? (S(), i(k(Ar), {
|
|
1760
1763
|
key: 1,
|
|
1761
1764
|
class: "symbol-chip__warn",
|
|
1762
1765
|
"aria-hidden": "true"
|
|
1763
|
-
})) : a("", !0)], 10,
|
|
1764
|
-
default: N(() => [f.value ? (S(), o("div",
|
|
1766
|
+
})) : a("", !0)], 10, jr), l(n, { name: "symbol-popover" }, {
|
|
1767
|
+
default: N(() => [f.value ? (S(), o("div", Pr, [s("div", Fr, [
|
|
1765
1768
|
c[2] ||= s("span", {
|
|
1766
1769
|
class: "symbol-search__icon",
|
|
1767
1770
|
"aria-hidden": "true"
|
|
@@ -1795,14 +1798,14 @@ var jr = m({
|
|
|
1795
1798
|
autocomplete: "off",
|
|
1796
1799
|
spellcheck: "false",
|
|
1797
1800
|
"aria-label": "搜索商品",
|
|
1798
|
-
onInput:
|
|
1801
|
+
onInput: A
|
|
1799
1802
|
}, null, 544), [[j, p.value]]),
|
|
1800
1803
|
p.value ? (S(), o("button", {
|
|
1801
1804
|
key: 0,
|
|
1802
1805
|
type: "button",
|
|
1803
1806
|
class: "symbol-search__clear",
|
|
1804
1807
|
"aria-label": "清空搜索",
|
|
1805
|
-
onClick:
|
|
1808
|
+
onClick: D
|
|
1806
1809
|
}, [...c[1] ||= [s("svg", {
|
|
1807
1810
|
class: "delete-icon",
|
|
1808
1811
|
viewBox: "0 0 24 24",
|
|
@@ -1817,7 +1820,7 @@ var jr = m({
|
|
|
1817
1820
|
s("path", { d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6" }),
|
|
1818
1821
|
s("path", { d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" })
|
|
1819
1822
|
], -1)]])) : a("", !0)
|
|
1820
|
-
]), s("div",
|
|
1823
|
+
]), s("div", Ir, [C.value.length === 0 ? (S(), o("div", Lr, [(S(), o("svg", Rr, [...c[3] ||= [s("circle", {
|
|
1821
1824
|
cx: "13",
|
|
1822
1825
|
cy: "13",
|
|
1823
1826
|
r: "10",
|
|
@@ -1831,19 +1834,22 @@ var jr = m({
|
|
|
1831
1834
|
stroke: "currentColor",
|
|
1832
1835
|
"stroke-width": "2",
|
|
1833
1836
|
"stroke-linecap": "round"
|
|
1834
|
-
}, null, -1)]])), c[4] ||= s("span", null, "未找到相关商品", -1)])) : a("", !0), (S(!0), o(e, null, T(
|
|
1837
|
+
}, null, -1)]])), c[4] ||= s("span", null, "未找到相关商品", -1)])) : a("", !0), (S(!0), o(e, null, T(C.value, (e) => (S(), o("button", {
|
|
1835
1838
|
key: e.code,
|
|
1836
1839
|
type: "button",
|
|
1837
1840
|
class: g(["symbol-list__item", { "is-active": e.code === t.symbol }]),
|
|
1838
1841
|
role: "option",
|
|
1839
1842
|
"aria-selected": e.code === t.symbol,
|
|
1840
|
-
onClick: (t) =>
|
|
1841
|
-
}, [s("span",
|
|
1843
|
+
onClick: (t) => F(e)
|
|
1844
|
+
}, [s("span", Br, [s("span", Vr, O(e.code), 1), s("span", Hr, O(e.description), 1)]), s("span", Ur, O(e.exchange), 1)], 10, zr))), 128))])])) : a("", !0)]),
|
|
1842
1845
|
_: 1
|
|
1843
1846
|
})], 512));
|
|
1844
1847
|
}
|
|
1845
|
-
}), [["__scopeId", "data-v-
|
|
1848
|
+
}), [["__scopeId", "data-v-8a2877e0"]]), Gr = ["aria-expanded"], Kr = {
|
|
1846
1849
|
key: 0,
|
|
1850
|
+
class: "compare-chip__spinner"
|
|
1851
|
+
}, qr = {
|
|
1852
|
+
key: 1,
|
|
1847
1853
|
class: "compare-chip__badge"
|
|
1848
1854
|
}, Jr = {
|
|
1849
1855
|
key: 0,
|
|
@@ -1873,40 +1879,42 @@ var jr = m({
|
|
|
1873
1879
|
key: 0,
|
|
1874
1880
|
class: "compare-list__check",
|
|
1875
1881
|
"aria-hidden": "true"
|
|
1876
|
-
}, di = /*#__PURE__*/
|
|
1882
|
+
}, di = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
1877
1883
|
__name: "CompareSymbolSelector",
|
|
1878
1884
|
props: {
|
|
1879
1885
|
symbols: {},
|
|
1880
|
-
selected: { default: () => [] }
|
|
1886
|
+
selected: { default: () => [] },
|
|
1887
|
+
comparisonColors: {},
|
|
1888
|
+
comparisonLoading: { type: Boolean }
|
|
1881
1889
|
},
|
|
1882
1890
|
emits: ["add", "remove"],
|
|
1883
1891
|
setup(t, { emit: i }) {
|
|
1884
|
-
let c = t, u = i, d = w(!1), f = w(""), p = w(null), m = w(null),
|
|
1885
|
-
let e =
|
|
1892
|
+
let c = t, u = i, d = w(!1), f = w(""), p = w(null), m = w(null), b = r(() => new Set(c.selected ?? [])), x = r(() => {
|
|
1893
|
+
let e = b.value;
|
|
1886
1894
|
return c.symbols.filter((t) => e.has(t.code));
|
|
1887
|
-
}),
|
|
1895
|
+
}), C = r(() => {
|
|
1888
1896
|
let e = f.value.trim().toLowerCase();
|
|
1889
1897
|
return e ? c.symbols.filter((t) => t.code.toLowerCase().includes(e) || t.description.toLowerCase().includes(e) || t.exchange.toLowerCase().includes(e)) : c.symbols;
|
|
1890
1898
|
});
|
|
1891
|
-
function C(e) {
|
|
1892
|
-
return _.value.has(e);
|
|
1893
|
-
}
|
|
1894
1899
|
function E(e) {
|
|
1895
|
-
|
|
1900
|
+
return b.value.has(e);
|
|
1896
1901
|
}
|
|
1897
1902
|
function D(e) {
|
|
1903
|
+
E(e.code) ? u("remove", e.code) : u("add", e);
|
|
1904
|
+
}
|
|
1905
|
+
function k(e) {
|
|
1898
1906
|
u("remove", e);
|
|
1899
1907
|
}
|
|
1900
|
-
function
|
|
1908
|
+
function A() {
|
|
1901
1909
|
d.value = !d.value, d.value && h(() => p.value?.focus());
|
|
1902
1910
|
}
|
|
1903
|
-
function
|
|
1911
|
+
function M() {
|
|
1904
1912
|
f.value = "", p.value?.focus();
|
|
1905
1913
|
}
|
|
1906
|
-
function
|
|
1914
|
+
function F(e) {
|
|
1907
1915
|
m.value && !m.value.contains(e.target) && (d.value = !1, f.value = "");
|
|
1908
1916
|
}
|
|
1909
|
-
return y(() => document.addEventListener("mousedown",
|
|
1917
|
+
return y(() => document.addEventListener("mousedown", F)), v(() => document.removeEventListener("mousedown", F)), (r, i) => (S(), o("div", {
|
|
1910
1918
|
ref_key: "rootRef",
|
|
1911
1919
|
ref: m,
|
|
1912
1920
|
class: "compare-chip-wrap"
|
|
@@ -1916,15 +1924,16 @@ var jr = m({
|
|
|
1916
1924
|
title: "比较商品",
|
|
1917
1925
|
"aria-expanded": d.value,
|
|
1918
1926
|
"aria-haspopup": "dialog",
|
|
1919
|
-
onClick:
|
|
1927
|
+
onClick: A
|
|
1920
1928
|
}, [
|
|
1921
1929
|
i[1] ||= s("span", {
|
|
1922
1930
|
class: "compare-chip__icon",
|
|
1923
1931
|
"aria-hidden": "true"
|
|
1924
1932
|
}, "+", -1),
|
|
1925
1933
|
i[2] ||= s("span", { class: "compare-chip__text" }, "比较商品", -1),
|
|
1934
|
+
t.comparisonLoading ? (S(), o("span", Kr)) : a("", !0),
|
|
1926
1935
|
t.selected.length > 0 ? (S(), o("span", qr, O(t.selected.length), 1)) : a("", !0)
|
|
1927
|
-
], 10,
|
|
1936
|
+
], 10, Gr), l(n, { name: "symbol-popover" }, {
|
|
1928
1937
|
default: N(() => [d.value ? (S(), o("div", Jr, [
|
|
1929
1938
|
s("div", Yr, [
|
|
1930
1939
|
i[4] ||= s("span", {
|
|
@@ -1966,7 +1975,7 @@ var jr = m({
|
|
|
1966
1975
|
type: "button",
|
|
1967
1976
|
class: "compare-search__clear",
|
|
1968
1977
|
"aria-label": "清空搜索",
|
|
1969
|
-
onClick:
|
|
1978
|
+
onClick: M
|
|
1970
1979
|
}, [...i[3] ||= [s("svg", {
|
|
1971
1980
|
class: "delete-icon",
|
|
1972
1981
|
viewBox: "0 0 24 24",
|
|
@@ -1982,17 +1991,21 @@ var jr = m({
|
|
|
1982
1991
|
s("path", { d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" })
|
|
1983
1992
|
], -1)]])) : a("", !0)
|
|
1984
1993
|
]),
|
|
1985
|
-
t.selected.length > 0 ? (S(), o("div", Xr, [i[6] ||= s("div", { class: "compare-selected__header" }, [s("span", { class: "compare-selected__title" }, "已添加商品")], -1), s("div", Zr, [(S(!0), o(e, null, T(
|
|
1994
|
+
t.selected.length > 0 ? (S(), o("div", Xr, [i[6] ||= s("div", { class: "compare-selected__header" }, [s("span", { class: "compare-selected__title" }, "已添加商品")], -1), s("div", Zr, [(S(!0), o(e, null, T(x.value, (e) => (S(), o("div", {
|
|
1986
1995
|
key: e.code,
|
|
1987
1996
|
class: "compare-selected__item"
|
|
1988
1997
|
}, [
|
|
1998
|
+
s("span", {
|
|
1999
|
+
class: "compare-selected__color",
|
|
2000
|
+
style: _({ background: t.comparisonColors?.get(e.code) ?? "#888" })
|
|
2001
|
+
}, null, 4),
|
|
1989
2002
|
s("span", Qr, O(e.code), 1),
|
|
1990
2003
|
s("span", $r, O(e.description), 1),
|
|
1991
2004
|
s("button", {
|
|
1992
2005
|
type: "button",
|
|
1993
2006
|
class: "compare-selected__remove",
|
|
1994
2007
|
"aria-label": "移除 " + e.code,
|
|
1995
|
-
onClick: (t) =>
|
|
2008
|
+
onClick: (t) => k(e.code)
|
|
1996
2009
|
}, [...i[5] ||= [s("svg", {
|
|
1997
2010
|
viewBox: "0 0 24 24",
|
|
1998
2011
|
width: "12",
|
|
@@ -2004,7 +2017,7 @@ var jr = m({
|
|
|
2004
2017
|
"stroke-linejoin": "round"
|
|
2005
2018
|
}, [s("path", { d: "M18 6L6 18" }), s("path", { d: "M6 6l12 12" })], -1)]], 8, ei)
|
|
2006
2019
|
]))), 128))])])) : a("", !0),
|
|
2007
|
-
s("div", ti, [
|
|
2020
|
+
s("div", ti, [C.value.length === 0 ? (S(), o("div", ni, [(S(), o("svg", ri, [...i[7] ||= [s("circle", {
|
|
2008
2021
|
cx: "13",
|
|
2009
2022
|
cy: "13",
|
|
2010
2023
|
r: "10",
|
|
@@ -2018,14 +2031,14 @@ var jr = m({
|
|
|
2018
2031
|
stroke: "currentColor",
|
|
2019
2032
|
"stroke-width": "2",
|
|
2020
2033
|
"stroke-linecap": "round"
|
|
2021
|
-
}, null, -1)]])), i[8] ||= s("span", null, "未找到相关商品", -1)])) : a("", !0), (S(!0), o(e, null, T(
|
|
2034
|
+
}, null, -1)]])), i[8] ||= s("span", null, "未找到相关商品", -1)])) : a("", !0), (S(!0), o(e, null, T(C.value, (e) => (S(), o("button", {
|
|
2022
2035
|
key: e.code,
|
|
2023
2036
|
type: "button",
|
|
2024
|
-
class: g(["compare-list__item", { "is-selected":
|
|
2037
|
+
class: g(["compare-list__item", { "is-selected": E(e.code) }]),
|
|
2025
2038
|
role: "option",
|
|
2026
|
-
"aria-selected":
|
|
2027
|
-
onClick: (t) =>
|
|
2028
|
-
}, [s("span", ai, [s("span", oi, O(e.code), 1), s("span", si, O(e.description), 1)]), s("span", ci, [s("span", li, O(e.exchange), 1),
|
|
2039
|
+
"aria-selected": E(e.code),
|
|
2040
|
+
onClick: (t) => D(e)
|
|
2041
|
+
}, [s("span", ai, [s("span", oi, O(e.code), 1), s("span", si, O(e.description), 1)]), s("span", ci, [s("span", li, O(e.exchange), 1), E(e.code) ? (S(), o("span", ui, [...i[9] ||= [s("svg", {
|
|
2029
2042
|
viewBox: "0 0 24 24",
|
|
2030
2043
|
width: "16",
|
|
2031
2044
|
height: "16",
|
|
@@ -2039,7 +2052,7 @@ var jr = m({
|
|
|
2039
2052
|
_: 1
|
|
2040
2053
|
})], 512));
|
|
2041
2054
|
}
|
|
2042
|
-
}), [["__scopeId", "data-v-
|
|
2055
|
+
}), [["__scopeId", "data-v-9513ad09"]]), fi = { class: "top-toolbar" }, pi = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
2043
2056
|
__name: "TopToolbar",
|
|
2044
2057
|
props: {
|
|
2045
2058
|
symbol: {},
|
|
@@ -2047,7 +2060,9 @@ var jr = m({
|
|
|
2047
2060
|
symbols: {},
|
|
2048
2061
|
symbolLoading: { type: Boolean },
|
|
2049
2062
|
symbolError: { type: Boolean },
|
|
2050
|
-
overlaySymbols: {}
|
|
2063
|
+
overlaySymbols: {},
|
|
2064
|
+
comparisonColors: {},
|
|
2065
|
+
comparisonLoading: { type: Boolean }
|
|
2051
2066
|
},
|
|
2052
2067
|
emits: [
|
|
2053
2068
|
"addOverlaySymbol",
|
|
@@ -2059,75 +2074,69 @@ var jr = m({
|
|
|
2059
2074
|
setup(e, { emit: t }) {
|
|
2060
2075
|
let n = e, c = t, u = [
|
|
2061
2076
|
{
|
|
2062
|
-
code: "
|
|
2063
|
-
description: "
|
|
2064
|
-
exchange: "
|
|
2065
|
-
source: "
|
|
2077
|
+
code: "XAUUSD",
|
|
2078
|
+
description: "现货黄金",
|
|
2079
|
+
exchange: "OANDA",
|
|
2080
|
+
source: "tradingview"
|
|
2066
2081
|
},
|
|
2067
2082
|
{
|
|
2068
|
-
code: "
|
|
2069
|
-
description: "
|
|
2070
|
-
exchange: "
|
|
2071
|
-
source: "
|
|
2083
|
+
code: "BTCUSDT",
|
|
2084
|
+
description: "Bitcoin / Tether",
|
|
2085
|
+
exchange: "BINANCE",
|
|
2086
|
+
source: "tradingview"
|
|
2072
2087
|
},
|
|
2073
2088
|
{
|
|
2074
|
-
code: "
|
|
2075
|
-
description: "
|
|
2076
|
-
exchange: "
|
|
2077
|
-
source: "
|
|
2089
|
+
code: "ETHUSDT",
|
|
2090
|
+
description: "Ethereum / Tether",
|
|
2091
|
+
exchange: "BINANCE",
|
|
2092
|
+
source: "tradingview"
|
|
2078
2093
|
},
|
|
2079
2094
|
{
|
|
2080
|
-
code: "
|
|
2081
|
-
description: "
|
|
2082
|
-
exchange: "
|
|
2083
|
-
source: "
|
|
2095
|
+
code: "EURUSD",
|
|
2096
|
+
description: "欧元/美元",
|
|
2097
|
+
exchange: "OANDA",
|
|
2098
|
+
source: "tradingview"
|
|
2084
2099
|
},
|
|
2085
2100
|
{
|
|
2086
|
-
code: "
|
|
2087
|
-
description: "
|
|
2088
|
-
exchange: "
|
|
2089
|
-
source: "
|
|
2101
|
+
code: "SPX",
|
|
2102
|
+
description: "标普 500 指数",
|
|
2103
|
+
exchange: "SP",
|
|
2104
|
+
source: "tradingview"
|
|
2090
2105
|
},
|
|
2091
2106
|
{
|
|
2092
|
-
code: "
|
|
2093
|
-
description: "
|
|
2107
|
+
code: "AAPL",
|
|
2108
|
+
description: "Apple Inc.",
|
|
2094
2109
|
exchange: "NASDAQ",
|
|
2095
|
-
source: "
|
|
2110
|
+
source: "tradingview"
|
|
2096
2111
|
},
|
|
2097
2112
|
{
|
|
2098
|
-
code: "
|
|
2099
|
-
description: "
|
|
2113
|
+
code: "TSLA",
|
|
2114
|
+
description: "Tesla, Inc.",
|
|
2100
2115
|
exchange: "NASDAQ",
|
|
2101
|
-
source: "
|
|
2102
|
-
},
|
|
2103
|
-
{
|
|
2104
|
-
code: "BRK.B",
|
|
2105
|
-
description: "Berkshire Hathaway Inc.",
|
|
2106
|
-
exchange: "NYSE",
|
|
2107
|
-
source: "baostock"
|
|
2116
|
+
source: "tradingview"
|
|
2108
2117
|
},
|
|
2109
2118
|
{
|
|
2110
|
-
code: "
|
|
2111
|
-
description: "
|
|
2112
|
-
exchange: "
|
|
2113
|
-
source: "
|
|
2119
|
+
code: "600519",
|
|
2120
|
+
description: "贵州茅台",
|
|
2121
|
+
exchange: "SSE",
|
|
2122
|
+
source: "tradingview"
|
|
2114
2123
|
},
|
|
2115
2124
|
{
|
|
2116
|
-
code: "
|
|
2117
|
-
description: "
|
|
2118
|
-
exchange: "
|
|
2119
|
-
source: "
|
|
2125
|
+
code: "000001",
|
|
2126
|
+
description: "平安银行",
|
|
2127
|
+
exchange: "SZSE",
|
|
2128
|
+
source: "tradingview"
|
|
2120
2129
|
},
|
|
2121
2130
|
{
|
|
2122
|
-
code: "
|
|
2123
|
-
description: "
|
|
2124
|
-
exchange: "
|
|
2125
|
-
source: "
|
|
2131
|
+
code: "1810",
|
|
2132
|
+
description: "小米集团",
|
|
2133
|
+
exchange: "HKEX",
|
|
2134
|
+
source: "tradingview"
|
|
2126
2135
|
},
|
|
2127
2136
|
{
|
|
2128
|
-
code: "
|
|
2129
|
-
description: "
|
|
2130
|
-
exchange: "
|
|
2137
|
+
code: "sh.600519",
|
|
2138
|
+
description: "贵州茅台",
|
|
2139
|
+
exchange: "SSE",
|
|
2131
2140
|
source: "baostock"
|
|
2132
2141
|
},
|
|
2133
2142
|
{
|
|
@@ -2136,12 +2145,6 @@ var jr = m({
|
|
|
2136
2145
|
exchange: "SSE",
|
|
2137
2146
|
source: "baostock"
|
|
2138
2147
|
},
|
|
2139
|
-
{
|
|
2140
|
-
code: "sh.600519",
|
|
2141
|
-
description: "贵州茅台",
|
|
2142
|
-
exchange: "SSE",
|
|
2143
|
-
source: "baostock"
|
|
2144
|
-
},
|
|
2145
2148
|
{
|
|
2146
2149
|
code: "000858",
|
|
2147
2150
|
description: "五 粮 液",
|
|
@@ -2171,7 +2174,7 @@ var jr = m({
|
|
|
2171
2174
|
c("symbolChange", e);
|
|
2172
2175
|
}
|
|
2173
2176
|
return (t, n) => (S(), o("div", fi, [
|
|
2174
|
-
d.value ? (S(), i(
|
|
2177
|
+
d.value ? (S(), i(Wr, {
|
|
2175
2178
|
key: 0,
|
|
2176
2179
|
symbol: d.value,
|
|
2177
2180
|
symbols: f.value,
|
|
@@ -2187,10 +2190,17 @@ var jr = m({
|
|
|
2187
2190
|
l(di, {
|
|
2188
2191
|
symbols: f.value,
|
|
2189
2192
|
selected: e.overlaySymbols,
|
|
2193
|
+
"comparison-colors": e.comparisonColors,
|
|
2194
|
+
"comparison-loading": e.comparisonLoading,
|
|
2190
2195
|
onAdd: n[0] ||= (e) => c("addOverlaySymbol", e),
|
|
2191
2196
|
onRemove: n[1] ||= (e) => c("removeOverlaySymbol", e)
|
|
2192
|
-
}, null, 8, [
|
|
2193
|
-
|
|
2197
|
+
}, null, 8, [
|
|
2198
|
+
"symbols",
|
|
2199
|
+
"selected",
|
|
2200
|
+
"comparison-colors",
|
|
2201
|
+
"comparison-loading"
|
|
2202
|
+
]),
|
|
2203
|
+
l(Dr, {
|
|
2194
2204
|
"model-value": e.kLineLevel,
|
|
2195
2205
|
"onUpdate:modelValue": n[2] ||= (e) => c("kLineLevelChange", e)
|
|
2196
2206
|
}, null, 8, ["model-value"]),
|
|
@@ -2206,7 +2216,7 @@ var jr = m({
|
|
|
2206
2216
|
}, "fx", -1), s("span", { class: "indicator-button__text" }, "指标", -1)]])
|
|
2207
2217
|
]));
|
|
2208
2218
|
}
|
|
2209
|
-
}), [["__scopeId", "data-v-
|
|
2219
|
+
}), [["__scopeId", "data-v-6cd21003"]]), mi = ["data-theme"], hi = {
|
|
2210
2220
|
class: "pane-separator-layer",
|
|
2211
2221
|
"aria-hidden": "true"
|
|
2212
2222
|
}, gi = {
|
|
@@ -2215,7 +2225,7 @@ var jr = m({
|
|
|
2215
2225
|
}, _i = {
|
|
2216
2226
|
class: "x-axis-canvas",
|
|
2217
2227
|
ref: "xAxisCanvasRef"
|
|
2218
|
-
}, vi = 4, yi = /*#__PURE__*/
|
|
2228
|
+
}, vi = 4, yi = /*#__PURE__*/ U(/* @__PURE__ */ u({
|
|
2219
2229
|
__name: "KLineChart",
|
|
2220
2230
|
props: {
|
|
2221
2231
|
semanticConfig: {},
|
|
@@ -2248,10 +2258,10 @@ var jr = m({
|
|
|
2248
2258
|
C.value = !1, m.value = e.code, v.value = e, F();
|
|
2249
2259
|
}
|
|
2250
2260
|
function j(e) {
|
|
2251
|
-
v.value?.code !== e.code && (E.value.includes(e.code) || (O.value = [...O.value, e], E.value = O.value.map((e) => e.code), I(),
|
|
2261
|
+
v.value?.code !== e.code && (E.value.includes(e.code) || (O.value = [...O.value, e], E.value = O.value.map((e) => e.code), I(), z.value?.addComparisonSymbol(P(e))));
|
|
2252
2262
|
}
|
|
2253
2263
|
function N(e) {
|
|
2254
|
-
O.value = O.value.filter((t) => t.code !== e), E.value = O.value.map((e) => e.code),
|
|
2264
|
+
O.value = O.value.filter((t) => t.code !== e), E.value = O.value.map((e) => e.code), z.value?.removeComparisonSymbol(e);
|
|
2255
2265
|
}
|
|
2256
2266
|
function P(e) {
|
|
2257
2267
|
return {
|
|
@@ -2274,24 +2284,27 @@ var jr = m({
|
|
|
2274
2284
|
axisType: "percent"
|
|
2275
2285
|
};
|
|
2276
2286
|
G.value = e, z.value?.updateSettingsFacade(e);
|
|
2287
|
+
try {
|
|
2288
|
+
localStorage.setItem(he, JSON.stringify(e));
|
|
2289
|
+
} catch {}
|
|
2277
2290
|
}
|
|
2278
2291
|
let L = w(null), R = w(null), ee = w(null), te = w(null), ie = w(null), ce = w(null);
|
|
2279
2292
|
je(ee);
|
|
2280
|
-
let z = D(null), ue = D(null), B = w(0), ge = w(0), V = w(1), H = w(d.initialZoomLevel ?? 1),
|
|
2281
|
-
|
|
2293
|
+
let z = D(null), ue = D(null), B = w(0), ge = w(0), V = w(1), H = w(d.initialZoomLevel ?? 1), _e = w(0), ve = w(1), ye = w(0), be = w({}), U = w(null), W = w([]), xe = w(/* @__PURE__ */ new Map()), Se = w(!1), Ce = H.value;
|
|
2294
|
+
_e.value = fe(Ce, {
|
|
2282
2295
|
minKWidth: d.minKWidth,
|
|
2283
2296
|
maxKWidth: d.maxKWidth,
|
|
2284
2297
|
zoomLevelCount: d.zoomLevels,
|
|
2285
2298
|
dpr: V.value
|
|
2286
|
-
}),
|
|
2287
|
-
let
|
|
2288
|
-
let e = G.value.isAsiaMarket ?? !1, t = ae(
|
|
2299
|
+
}), ve.value = de(_e.value, V.value);
|
|
2300
|
+
let we = w("light"), G = w({}), Te = r(() => {
|
|
2301
|
+
let e = G.value.isAsiaMarket ?? !1, t = ae(we.value, e);
|
|
2289
2302
|
return {
|
|
2290
2303
|
upColor: t.candleUpBody,
|
|
2291
2304
|
downColor: t.candleDownBody
|
|
2292
2305
|
};
|
|
2293
|
-
}),
|
|
2294
|
-
let e =
|
|
2306
|
+
}), Ee = r(() => {
|
|
2307
|
+
let e = we.value === "dark" ? ne : re, t = G.value.colorPresetSettings?.[we.value];
|
|
2295
2308
|
return t && Object.keys(t).length > 0 ? oe({
|
|
2296
2309
|
...e,
|
|
2297
2310
|
colors: {
|
|
@@ -2300,47 +2313,47 @@ var jr = m({
|
|
|
2300
2313
|
}
|
|
2301
2314
|
}) : oe(e);
|
|
2302
2315
|
}), K = null;
|
|
2303
|
-
function
|
|
2316
|
+
function De(e) {
|
|
2304
2317
|
z.value?.setTheme(e.matches ? "dark" : "light");
|
|
2305
2318
|
}
|
|
2306
|
-
function
|
|
2319
|
+
function Oe(e, t) {
|
|
2307
2320
|
if (!(!e || !t)) if (t === "auto") {
|
|
2308
2321
|
let t = window.matchMedia("(prefers-color-scheme: dark)");
|
|
2309
|
-
e.setTheme(t.matches ? "dark" : "light"), K !== t && (K?.removeEventListener("change",
|
|
2310
|
-
} else K?.removeEventListener("change",
|
|
2322
|
+
e.setTheme(t.matches ? "dark" : "light"), K !== t && (K?.removeEventListener("change", De), K = t, t.addEventListener("change", De));
|
|
2323
|
+
} else K?.removeEventListener("change", De), K = null, e.setTheme(t);
|
|
2311
2324
|
}
|
|
2312
|
-
function
|
|
2313
|
-
function
|
|
2314
|
-
G.value = e,
|
|
2325
|
+
function Ae() {}
|
|
2326
|
+
function Me(e) {
|
|
2327
|
+
G.value = e, Oe(z.value, e.theme), z.value?.updateSettingsFacade(e);
|
|
2315
2328
|
}
|
|
2316
|
-
function
|
|
2329
|
+
function Ne(e, t, n) {
|
|
2317
2330
|
let r = e.getBoundingClientRect();
|
|
2318
2331
|
return {
|
|
2319
2332
|
width: Math.max(t, Math.round(r.width)),
|
|
2320
2333
|
height: Math.max(n, Math.round(r.height))
|
|
2321
2334
|
};
|
|
2322
2335
|
}
|
|
2323
|
-
function
|
|
2336
|
+
function Pe(e) {
|
|
2324
2337
|
e && h(() => {
|
|
2325
2338
|
if (!e.isConnected) return;
|
|
2326
|
-
let t =
|
|
2339
|
+
let t = Ne(e, 180, 80);
|
|
2327
2340
|
z.value?.setTooltipSize(t);
|
|
2328
2341
|
});
|
|
2329
2342
|
}
|
|
2330
|
-
function
|
|
2343
|
+
function Fe(e) {
|
|
2331
2344
|
e && h(() => {
|
|
2332
|
-
e.isConnected && (
|
|
2345
|
+
e.isConnected && (He.value = Ne(e, 120, 60));
|
|
2333
2346
|
});
|
|
2334
2347
|
}
|
|
2335
|
-
let
|
|
2348
|
+
let Ie = w({
|
|
2336
2349
|
x: 0,
|
|
2337
2350
|
y: 0
|
|
2338
|
-
}),
|
|
2339
|
-
function
|
|
2340
|
-
|
|
2351
|
+
}), q = w(!1), Le = null;
|
|
2352
|
+
function Re() {
|
|
2353
|
+
Le = null;
|
|
2341
2354
|
}
|
|
2342
|
-
function
|
|
2343
|
-
return
|
|
2355
|
+
function ze(e) {
|
|
2356
|
+
return Le ||= e.getBoundingClientRect(), Le;
|
|
2344
2357
|
}
|
|
2345
2358
|
let J = D({
|
|
2346
2359
|
crosshairPos: null,
|
|
@@ -2360,13 +2373,13 @@ var jr = m({
|
|
|
2360
2373
|
isHoveringPaneBoundary: !1,
|
|
2361
2374
|
hoveredPaneBoundaryId: null,
|
|
2362
2375
|
isHoveringRightAxis: !1
|
|
2363
|
-
}), Y = D(null),
|
|
2364
|
-
let e =
|
|
2376
|
+
}), Y = D(null), Be = r(() => {
|
|
2377
|
+
let e = U.value;
|
|
2365
2378
|
return e ? W.value.find((t) => t.id === e) ?? null : null;
|
|
2366
|
-
}),
|
|
2379
|
+
}), Ve = w([]), He = w({
|
|
2367
2380
|
width: 220,
|
|
2368
2381
|
height: 120
|
|
2369
|
-
}),
|
|
2382
|
+
}), Ue = r(() => {
|
|
2370
2383
|
let e = L.value, t = R.value;
|
|
2371
2384
|
return !e || !t ? {
|
|
2372
2385
|
x: 0,
|
|
@@ -2375,66 +2388,60 @@ var jr = m({
|
|
|
2375
2388
|
x: e.offsetLeft,
|
|
2376
2389
|
y: e.offsetTop
|
|
2377
2390
|
};
|
|
2378
|
-
}),
|
|
2391
|
+
}), We = r(() => J.value.hoveredMarkerData), Ge = r(() => J.value.hoveredCustomMarker), Ke = r(() => J.value.isDragging), qe = r(() => J.value.isResizingPaneBoundary), Je = r(() => J.value.isHoveringPaneBoundary), Ye = r(() => J.value.hoveredPaneBoundaryId), Xe = r(() => J.value.isHoveringRightAxis), Ze = r(() => J.value.hoveredIndex);
|
|
2379
2392
|
r(() => J.value.crosshairIndex);
|
|
2380
|
-
let
|
|
2393
|
+
let Qe = r(() => Ke.value ? "grabbing" : qe.value || Je.value ? "ns-resize" : Ze.value === null ? "crosshair" : "pointer"), $e = r(() => {
|
|
2381
2394
|
let e = J.value.hoveredIndex;
|
|
2382
2395
|
if (typeof e != "number") return null;
|
|
2383
2396
|
ge.value;
|
|
2384
2397
|
let t = z.value?.getData();
|
|
2385
2398
|
return t && e >= 0 && e < t.length ? t[e] : null;
|
|
2386
|
-
}),
|
|
2387
|
-
x:
|
|
2388
|
-
y:
|
|
2389
|
-
})), tt = r(() => ({
|
|
2390
|
-
left: `${et.value.x}px`,
|
|
2391
|
-
top: `${et.value.y}px`
|
|
2392
|
-
})), nt = r(() => ({
|
|
2393
|
-
x: Ne.value.x + Ve.value.x,
|
|
2394
|
-
y: Ne.value.y + Ve.value.y
|
|
2399
|
+
}), et = r(() => J.value.hoveredIndex), tt = r(() => J.value.tooltipPos), nt = r(() => ({
|
|
2400
|
+
x: tt.value.x + Ue.value.x,
|
|
2401
|
+
y: tt.value.y + Ue.value.y
|
|
2395
2402
|
})), rt = r(() => ({
|
|
2396
2403
|
left: `${nt.value.x}px`,
|
|
2397
2404
|
top: `${nt.value.y}px`
|
|
2398
|
-
})), it = r(() =>
|
|
2405
|
+
})), it = r(() => ({
|
|
2406
|
+
x: Ie.value.x + Ue.value.x,
|
|
2407
|
+
y: Ie.value.y + Ue.value.y
|
|
2408
|
+
})), at = r(() => ({
|
|
2409
|
+
left: `${it.value.x}px`,
|
|
2410
|
+
top: `${it.value.y}px`
|
|
2411
|
+
})), ot = r(() => J.value.tooltipAnchorPlacement), st = r(() => {
|
|
2399
2412
|
let e = z.value?.viewport.peek(), t = L.value, n = e?.plotWidth ?? (t ? t.clientWidth : 0);
|
|
2400
|
-
return
|
|
2401
|
-
}),
|
|
2402
|
-
function
|
|
2413
|
+
return Ie.value.x + 12 + He.value.width + 12 > n ? "left-bottom" : "right-bottom";
|
|
2414
|
+
}), ct = r(() => (ge.value, z.value?.getData() ?? []));
|
|
2415
|
+
function lt(e) {
|
|
2403
2416
|
Y.value?.setTool(e);
|
|
2404
2417
|
}
|
|
2405
|
-
function
|
|
2418
|
+
function ut() {
|
|
2406
2419
|
ce.value?.toggleMenu();
|
|
2407
2420
|
}
|
|
2408
|
-
function
|
|
2409
|
-
let t =
|
|
2421
|
+
function dt(e) {
|
|
2422
|
+
let t = Be.value;
|
|
2410
2423
|
!t || !Y.value || (Y.value.updateDrawingStyle(t.id, e), W.value = Y.value.getDrawings());
|
|
2411
2424
|
}
|
|
2412
|
-
function
|
|
2413
|
-
let e =
|
|
2414
|
-
!e || !Y.value || (Y.value.removeDrawing(e.id),
|
|
2425
|
+
function ft() {
|
|
2426
|
+
let e = Be.value;
|
|
2427
|
+
!e || !Y.value || (Y.value.removeDrawing(e.id), W.value = Y.value.getDrawings());
|
|
2415
2428
|
}
|
|
2416
|
-
function
|
|
2417
|
-
z.value?.handlePointerEvent(e, { onPointerDown: (e, t) => Y.value?.onPointerDown(e, t)
|
|
2429
|
+
function pt(e) {
|
|
2430
|
+
z.value?.handlePointerEvent(e, { onPointerDown: (e, t) => !!Y.value?.onPointerDown(e, t) });
|
|
2418
2431
|
}
|
|
2419
|
-
function
|
|
2432
|
+
function mt(e) {
|
|
2420
2433
|
let t = L.value;
|
|
2421
2434
|
if (t) {
|
|
2422
|
-
let n =
|
|
2423
|
-
|
|
2435
|
+
let n = ze(t);
|
|
2436
|
+
Ie.value = {
|
|
2424
2437
|
x: e.clientX - n.left,
|
|
2425
2438
|
y: e.clientY - n.top
|
|
2426
2439
|
};
|
|
2427
2440
|
}
|
|
2428
2441
|
z.value?.handlePointerEvent(e, { onPointerMove: (e, t) => Y.value?.onPointerMove(e, t) ? (W.value = Y.value.getDrawings(), !0) : !1 });
|
|
2429
2442
|
}
|
|
2430
|
-
function pt(e) {
|
|
2431
|
-
z.value?.handlePointerEvent(e, { onPointerUp: (e, t) => Y.value?.onPointerUp(e, t) ? (W.value = Y.value.getDrawings(), !0) : !1 });
|
|
2432
|
-
}
|
|
2433
|
-
function mt(e) {
|
|
2434
|
-
z.value?.handlePointerEvent(e);
|
|
2435
|
-
}
|
|
2436
2443
|
function ht(e) {
|
|
2437
|
-
z.value?.handlePointerEvent(e);
|
|
2444
|
+
z.value?.handlePointerEvent(e, { onPointerUp: (e, t) => !!Y.value?.onPointerUp(e, t) });
|
|
2438
2445
|
}
|
|
2439
2446
|
function gt(e) {
|
|
2440
2447
|
z.value?.handlePointerEvent(e);
|
|
@@ -2445,16 +2452,22 @@ var jr = m({
|
|
|
2445
2452
|
function vt(e) {
|
|
2446
2453
|
z.value?.handlePointerEvent(e);
|
|
2447
2454
|
}
|
|
2448
|
-
function yt() {
|
|
2455
|
+
function yt(e) {
|
|
2456
|
+
z.value?.handlePointerEvent(e);
|
|
2457
|
+
}
|
|
2458
|
+
function bt(e) {
|
|
2459
|
+
z.value?.handlePointerEvent(e);
|
|
2460
|
+
}
|
|
2461
|
+
function xt() {
|
|
2449
2462
|
z.value?.handleScrollEvent();
|
|
2450
2463
|
}
|
|
2451
|
-
let
|
|
2464
|
+
let St = w([]), Ct = r(() => {
|
|
2452
2465
|
let e = [], t = /* @__PURE__ */ new Set();
|
|
2453
2466
|
for (let n of Z.value) t.has(n.indicatorId) || (t.add(n.indicatorId), e.push(n.indicatorId));
|
|
2454
2467
|
return e;
|
|
2455
|
-
}),
|
|
2456
|
-
function
|
|
2457
|
-
let e =
|
|
2468
|
+
}), wt = r(() => [...St.value, ...Ct.value]), X = w({}), Z = w([]);
|
|
2469
|
+
function Tt() {
|
|
2470
|
+
let e = be.value.main ?? 3;
|
|
2458
2471
|
return Z.value.length === 0 ? [{
|
|
2459
2472
|
id: "main",
|
|
2460
2473
|
ratio: e,
|
|
@@ -2467,104 +2480,73 @@ var jr = m({
|
|
|
2467
2480
|
role: "price"
|
|
2468
2481
|
}, ...Z.value.map((e) => ({
|
|
2469
2482
|
id: e.id,
|
|
2470
|
-
ratio:
|
|
2483
|
+
ratio: be.value[e.id] ?? 1,
|
|
2471
2484
|
visible: !0,
|
|
2472
2485
|
role: "indicator"
|
|
2473
2486
|
}))];
|
|
2474
2487
|
}
|
|
2475
|
-
function
|
|
2488
|
+
function Et(e) {
|
|
2476
2489
|
if (e === "VOLUME") return {};
|
|
2477
|
-
let t =
|
|
2490
|
+
let t = me(e);
|
|
2478
2491
|
return t?.runtime?.defaultConfig ? { ...t.runtime.defaultConfig } : {};
|
|
2479
2492
|
}
|
|
2480
|
-
function
|
|
2493
|
+
function Dt(e) {
|
|
2481
2494
|
if (e === "VOLUME") return !0;
|
|
2482
|
-
let t =
|
|
2495
|
+
let t = me(e);
|
|
2483
2496
|
return !!t && t.category !== "main";
|
|
2484
2497
|
}
|
|
2485
|
-
|
|
2486
|
-
function Dt(e = "VOLUME", t) {
|
|
2498
|
+
function Ot(e = "VOLUME", t) {
|
|
2487
2499
|
if (Z.value.length >= vi) return !1;
|
|
2488
|
-
let n = t ??
|
|
2500
|
+
let n = t ?? Et(e);
|
|
2489
2501
|
return !!z.value?.addIndicator(e, "sub", n);
|
|
2490
2502
|
}
|
|
2491
|
-
function
|
|
2503
|
+
function kt(e) {
|
|
2492
2504
|
z.value?.removeIndicator(e);
|
|
2493
2505
|
}
|
|
2494
|
-
function
|
|
2506
|
+
function jt() {
|
|
2495
2507
|
for (let e of Z.value) z.value?.removeIndicator(e.id);
|
|
2496
|
-
Et.clear();
|
|
2497
2508
|
}
|
|
2498
|
-
function
|
|
2509
|
+
function Mt() {
|
|
2499
2510
|
let e = d.semanticConfig, t = z.value;
|
|
2500
2511
|
if (!t) return;
|
|
2501
2512
|
let n = e.indicators?.main;
|
|
2502
2513
|
if (n) for (let e of n) e.enabled && t.addIndicator(e.type, "main", e.params);
|
|
2503
2514
|
}
|
|
2504
|
-
function Mt() {
|
|
2505
|
-
let e = z.value?.subPanes.peek() ?? [];
|
|
2506
|
-
for (let t of e) {
|
|
2507
|
-
let { paneId: e, indicatorId: n, params: r } = t, i = e.match(/^(.+)_(\d+)$/);
|
|
2508
|
-
if (i) {
|
|
2509
|
-
let [, e, t] = i, n = parseInt(t, 10);
|
|
2510
|
-
n >= (Et.get(e) ?? 0) && Et.set(e, n + 1);
|
|
2511
|
-
}
|
|
2512
|
-
}
|
|
2513
|
-
}
|
|
2514
2515
|
function Nt(e, t) {
|
|
2515
|
-
let n =
|
|
2516
|
+
let n = Et(t);
|
|
2516
2517
|
z.value?.replaceSubPaneIndicator(e, t, n);
|
|
2517
2518
|
}
|
|
2518
2519
|
function Pt(e, t) {
|
|
2519
2520
|
let n = z.value;
|
|
2520
|
-
if (n)
|
|
2521
|
-
|
|
2522
|
-
|
|
2523
|
-
|
|
2524
|
-
|
|
2525
|
-
|
|
2526
|
-
"WMA",
|
|
2527
|
-
"DEMA",
|
|
2528
|
-
"TEMA",
|
|
2529
|
-
"HMA",
|
|
2530
|
-
"KAMA",
|
|
2531
|
-
"SAR",
|
|
2532
|
-
"SUPERTREND",
|
|
2533
|
-
"KELTNER",
|
|
2534
|
-
"DONCHIAN",
|
|
2535
|
-
"ICHIMOKU",
|
|
2536
|
-
"PIVOT",
|
|
2537
|
-
"FIB",
|
|
2538
|
-
"STRUCTURE",
|
|
2539
|
-
"ZONES"
|
|
2540
|
-
].includes(e)) {
|
|
2541
|
-
let r = bt.value.find((t) => t === e);
|
|
2542
|
-
t && !r ? n.addIndicator(e, "main", X.value[e]) : !t && r && n.removeIndicator(e.toUpperCase());
|
|
2543
|
-
return;
|
|
2544
|
-
}
|
|
2545
|
-
if (Tt(e)) if (t) {
|
|
2546
|
-
if (Z.value.find((t) => t.indicatorId === e) || Z.value.length >= vi) return;
|
|
2547
|
-
if (!n.addIndicator(e, "sub", X.value[e]) && Z.value.length > 0) {
|
|
2548
|
-
let t = Z.value[Z.value.length - 1];
|
|
2549
|
-
Nt(t.id, e);
|
|
2550
|
-
}
|
|
2551
|
-
} else Z.value.filter((t) => t.indicatorId === e).forEach((e) => {
|
|
2552
|
-
n.removeIndicator(e.id);
|
|
2553
|
-
});
|
|
2521
|
+
if (!n) return;
|
|
2522
|
+
let r = me(e);
|
|
2523
|
+
if (r && (r.category === "main" || r.allowMainPane)) {
|
|
2524
|
+
let r = St.value.find((t) => t === e);
|
|
2525
|
+
t && !r ? n.addIndicator(e, "main", X.value[e]) : !t && r && n.removeIndicator(e.toUpperCase());
|
|
2526
|
+
return;
|
|
2554
2527
|
}
|
|
2528
|
+
if (Dt(e)) if (t) {
|
|
2529
|
+
if (Z.value.find((t) => t.indicatorId === e) || Z.value.length >= vi) return;
|
|
2530
|
+
if (!n.addIndicator(e, "sub", X.value[e]) && Z.value.length > 0) {
|
|
2531
|
+
let t = Z.value[Z.value.length - 1];
|
|
2532
|
+
Nt(t.id, e);
|
|
2533
|
+
}
|
|
2534
|
+
} else Z.value.filter((t) => t.indicatorId === e).forEach((e) => {
|
|
2535
|
+
n.removeIndicator(e.id);
|
|
2536
|
+
});
|
|
2555
2537
|
}
|
|
2556
2538
|
function Ft(e, t) {
|
|
2557
2539
|
if (e === "MA" || e === "BOLL" || e === "EXPMA" || e === "ENE") {
|
|
2558
2540
|
z.value?.updateIndicatorParams(e, t);
|
|
2559
2541
|
return;
|
|
2560
2542
|
}
|
|
2561
|
-
|
|
2543
|
+
Dt(e) && Z.value.filter((t) => t.indicatorId === e).forEach((e) => {
|
|
2562
2544
|
z.value?.updateIndicatorParams(e.id, t);
|
|
2563
2545
|
});
|
|
2564
2546
|
}
|
|
2565
2547
|
function It(e) {
|
|
2566
2548
|
if (!e.length || Z.value.length <= 1) return;
|
|
2567
|
-
let t = e.filter((e) =>
|
|
2549
|
+
let t = e.filter((e) => Dt(e));
|
|
2568
2550
|
if (!t.length) return;
|
|
2569
2551
|
let n = new Map(Z.value.map((e) => [e.indicatorId, e])), r = [];
|
|
2570
2552
|
for (let e of t) {
|
|
@@ -2577,39 +2559,30 @@ var jr = m({
|
|
|
2577
2559
|
if (i.join("|") === a.join("|")) return;
|
|
2578
2560
|
Z.value = r;
|
|
2579
2561
|
let o = z.value;
|
|
2580
|
-
o && o.updatePaneLayout(
|
|
2562
|
+
o && o.updatePaneLayout(Tt());
|
|
2581
2563
|
}
|
|
2582
|
-
let Lt = r(() => d.rightAxisWidth + d.priceLabelWidth), Rt = r(() => (ge.value,
|
|
2583
|
-
function zt() {
|
|
2584
|
-
let e = L.value, t = z.value;
|
|
2585
|
-
if (!e || !t) return;
|
|
2586
|
-
let n = t.getData()?.length ?? 0;
|
|
2587
|
-
if (n === 0) return;
|
|
2588
|
-
let r = t.viewport.peek().dpr, { unitPx: i, startXPx: a } = de(U.value, _e.value, r), o = (a + n * i) / r, s = Math.max(0, e.scrollWidth - e.clientWidth), c = Math.min(s, Math.max(0, o - e.clientWidth));
|
|
2589
|
-
e.scrollLeft = Math.round(c * r) / r;
|
|
2590
|
-
}
|
|
2591
|
-
function Bt(e, t) {
|
|
2564
|
+
let Lt = r(() => d.rightAxisWidth + d.priceLabelWidth), Rt = r(() => (ge.value, ye.value, _e.value, ve.value, V.value, z.value?.getContentWidth() ?? 0));
|
|
2565
|
+
function zt(e, t) {
|
|
2592
2566
|
z.value?.zoomToLevel(e, t);
|
|
2593
2567
|
}
|
|
2594
2568
|
c({
|
|
2595
|
-
scheduleRender:
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
removeSubPane: Ot,
|
|
2569
|
+
scheduleRender: Ae,
|
|
2570
|
+
addSubPane: Ot,
|
|
2571
|
+
removeSubPane: kt,
|
|
2599
2572
|
switchSubIndicator: Nt,
|
|
2600
|
-
clearAllSubPanes:
|
|
2601
|
-
zoomToLevel:
|
|
2602
|
-
zoomIn: (e) =>
|
|
2603
|
-
zoomOut: (e) =>
|
|
2573
|
+
clearAllSubPanes: jt,
|
|
2574
|
+
zoomToLevel: zt,
|
|
2575
|
+
zoomIn: (e) => zt(H.value + 1, e),
|
|
2576
|
+
zoomOut: (e) => zt(H.value - 1, e),
|
|
2604
2577
|
getZoomLevel: () => H.value,
|
|
2605
2578
|
getZoomLevelCount: () => z.value?.getZoomLevelCount() ?? 10
|
|
2606
2579
|
});
|
|
2607
|
-
function
|
|
2580
|
+
function Bt() {
|
|
2608
2581
|
return (e) => {
|
|
2609
2582
|
e.preventDefault(), z.value?.handleWheelEvent(e);
|
|
2610
2583
|
};
|
|
2611
2584
|
}
|
|
2612
|
-
function
|
|
2585
|
+
function Vt(e, t, n, r) {
|
|
2613
2586
|
return le({
|
|
2614
2587
|
container: e,
|
|
2615
2588
|
data: [],
|
|
@@ -2626,11 +2599,11 @@ var jr = m({
|
|
|
2626
2599
|
maxKWidth: d.maxKWidth
|
|
2627
2600
|
});
|
|
2628
2601
|
}
|
|
2629
|
-
function
|
|
2602
|
+
function Ht(e) {
|
|
2630
2603
|
let t = e.paneLayout.subscribe(() => {
|
|
2631
|
-
|
|
2604
|
+
Re();
|
|
2632
2605
|
let t = L.value && parseInt(getComputedStyle(L.value).borderTopWidth) || 0;
|
|
2633
|
-
|
|
2606
|
+
Ve.value = e.paneLayout.peek().slice(0, -1).map((n) => {
|
|
2634
2607
|
let r = e.getPaneInfo(n.id), i = (r?.top ?? 0) + (r?.height ?? 0);
|
|
2635
2608
|
return {
|
|
2636
2609
|
id: n.id,
|
|
@@ -2638,17 +2611,10 @@ var jr = m({
|
|
|
2638
2611
|
};
|
|
2639
2612
|
});
|
|
2640
2613
|
}), n = e.paneRatios.subscribe(() => {
|
|
2641
|
-
|
|
2614
|
+
be.value = { ...e.paneRatios.peek() };
|
|
2642
2615
|
}), r = e.viewport.subscribe(() => {
|
|
2643
2616
|
let t = e.viewport.peek();
|
|
2644
|
-
V.value !== t.dpr && (V.value = t.dpr),
|
|
2645
|
-
let n = t.desiredScrollLeft;
|
|
2646
|
-
n !== void 0 && n !== L.value?.scrollLeft && (Ie(), h(() => {
|
|
2647
|
-
let e = L.value;
|
|
2648
|
-
if (!e) return;
|
|
2649
|
-
let r = Math.max(0, e.scrollWidth - e.clientWidth), i = Math.min(Math.max(0, n), r), a = t.dpr;
|
|
2650
|
-
e.scrollLeft = Math.round(i * a) / a;
|
|
2651
|
-
}));
|
|
2617
|
+
V.value !== t.dpr && (V.value = t.dpr), ye.value !== t.plotWidth && (ye.value = t.plotWidth), (H.value !== t.zoomLevel || _e.value !== t.kWidth || ve.value !== t.kGap) && (H.value = t.zoomLevel, _e.value = t.kWidth, ve.value = t.kGap);
|
|
2652
2618
|
}), i = e.data.subscribe(() => {
|
|
2653
2619
|
let t = e.data.peek();
|
|
2654
2620
|
B.value = t.length, ge.value++, C.value = t.length === 0;
|
|
@@ -2656,10 +2622,10 @@ var jr = m({
|
|
|
2656
2622
|
b.value = e.dataLoading.peek();
|
|
2657
2623
|
}), o = e.theme.subscribe(() => {
|
|
2658
2624
|
let t = e.theme.peek();
|
|
2659
|
-
|
|
2625
|
+
we.value = t, f("themeChange", t);
|
|
2660
2626
|
}), s = e.indicators.subscribe(() => {
|
|
2661
2627
|
let t = e.indicators.peek(), n = t.filter((e) => e.role === "main").map((e) => e.definitionId);
|
|
2662
|
-
|
|
2628
|
+
St.value = n;
|
|
2663
2629
|
let r = { ...X.value };
|
|
2664
2630
|
for (let e of t) e.role === "main" && e.params && Object.keys(e.params).length > 0 && (r[e.definitionId] = { ...e.params });
|
|
2665
2631
|
e.updateRendererConfig("mainIndicatorLegend", { indicators: {
|
|
@@ -2691,46 +2657,50 @@ var jr = m({
|
|
|
2691
2657
|
let a = { ...X.value };
|
|
2692
2658
|
for (let e of t) e.params && Object.keys(e.params).length > 0 && (a[e.indicatorId] = { ...e.params });
|
|
2693
2659
|
X.value = a;
|
|
2660
|
+
}), l = e.comparisonColors.subscribe(() => {
|
|
2661
|
+
xe.value = new Map(e.comparisonColors.peek());
|
|
2662
|
+
}), u = e.comparisonLoading.subscribe(() => {
|
|
2663
|
+
Se.value = e.comparisonLoading.peek();
|
|
2694
2664
|
});
|
|
2695
2665
|
x(() => {
|
|
2696
|
-
r(), i(), a(), n(), t(), o(), s(), c(), K?.removeEventListener("change",
|
|
2666
|
+
r(), i(), a(), n(), t(), o(), s(), c(), l(), u(), K?.removeEventListener("change", De);
|
|
2697
2667
|
});
|
|
2698
2668
|
}
|
|
2699
|
-
function
|
|
2669
|
+
function Ut(e) {
|
|
2700
2670
|
let t = ie.value?.getSettings() ?? { showVolumePriceMarkers: !0 };
|
|
2701
|
-
G.value = t,
|
|
2671
|
+
G.value = t, Oe(e, t.theme), e.updateSettingsFacade(t);
|
|
2702
2672
|
}
|
|
2703
|
-
function
|
|
2673
|
+
function Wt(e) {
|
|
2704
2674
|
Y.value = new se(e), Y.value.setCallbacks({
|
|
2705
2675
|
onDrawingCreated: (e) => {
|
|
2706
|
-
W.value = [...W.value, e],
|
|
2676
|
+
W.value = [...W.value, e], U.value = e.id;
|
|
2707
2677
|
},
|
|
2708
2678
|
onToolChange: () => {},
|
|
2709
2679
|
onDrawingSelected: (e) => {
|
|
2710
|
-
|
|
2680
|
+
U.value = e?.id ?? null;
|
|
2711
2681
|
}
|
|
2712
2682
|
});
|
|
2713
2683
|
}
|
|
2714
|
-
function
|
|
2715
|
-
e.setTooltipAnchorPositioning(
|
|
2684
|
+
function Kt(e) {
|
|
2685
|
+
e.setTooltipAnchorPositioning(q.value), e.interactionState.subscribe(() => {
|
|
2716
2686
|
J.value = e.interactionState.peek();
|
|
2717
2687
|
}), J.value = e.interactionState.peek(), V.value = e.viewport.peek().dpr;
|
|
2718
2688
|
}
|
|
2719
|
-
function
|
|
2720
|
-
e.setDataFetcher(d.dataFetcher), ue.value = new
|
|
2689
|
+
function qt(e) {
|
|
2690
|
+
e.setDataFetcher(d.dataFetcher), ue.value = new pe(e), ue.value.on("config:error", (e) => {
|
|
2721
2691
|
console.error("Semantic config error:", e);
|
|
2722
2692
|
}), ue.value.on("config:ready", () => {
|
|
2723
|
-
|
|
2693
|
+
Mt(), h(() => z.value?.scrollToRight());
|
|
2724
2694
|
});
|
|
2725
2695
|
}
|
|
2726
2696
|
return y(() => {
|
|
2727
|
-
|
|
2697
|
+
q.value = !1;
|
|
2728
2698
|
let e = L.value, t = R.value;
|
|
2729
2699
|
if (!e || !t) return;
|
|
2730
|
-
let n =
|
|
2700
|
+
let n = Bt();
|
|
2731
2701
|
e.addEventListener("wheel", n, { passive: !1 });
|
|
2732
|
-
let r = e.querySelector(".canvas-layer"), i = e.querySelector(".x-axis-canvas"), a =
|
|
2733
|
-
z.value = a,
|
|
2702
|
+
let r = e.querySelector(".canvas-layer"), i = e.querySelector(".x-axis-canvas"), a = Vt(e, r, t.querySelector(".right-axis-host"), i);
|
|
2703
|
+
z.value = a, Ht(a), Mt(), Ut(a), Wt(a), Kt(a), qt(a);
|
|
2734
2704
|
}), x(() => {
|
|
2735
2705
|
let e = z.value;
|
|
2736
2706
|
e && (z.value = null, e.dispose()), Y.value = null;
|
|
@@ -2745,8 +2715,8 @@ var jr = m({
|
|
|
2745
2715
|
ref_key: "chartWrapperRef",
|
|
2746
2716
|
ref: ee,
|
|
2747
2717
|
class: "chart-wrapper",
|
|
2748
|
-
"data-theme":
|
|
2749
|
-
style: _(
|
|
2718
|
+
"data-theme": we.value,
|
|
2719
|
+
style: _(Ee.value)
|
|
2750
2720
|
}, [
|
|
2751
2721
|
l(pi, {
|
|
2752
2722
|
symbol: m.value,
|
|
@@ -2754,41 +2724,45 @@ var jr = m({
|
|
|
2754
2724
|
"symbol-loading": b.value,
|
|
2755
2725
|
"symbol-error": C.value,
|
|
2756
2726
|
"overlay-symbols": E.value,
|
|
2727
|
+
"comparison-colors": xe.value,
|
|
2728
|
+
"comparison-loading": Se.value,
|
|
2757
2729
|
onAddOverlaySymbol: j,
|
|
2758
2730
|
onRemoveOverlaySymbol: N,
|
|
2759
2731
|
onKLineLevelChange: k,
|
|
2760
|
-
onToggleIndicator:
|
|
2732
|
+
onToggleIndicator: ut,
|
|
2761
2733
|
onSymbolChange: A
|
|
2762
2734
|
}, null, 8, [
|
|
2763
2735
|
"symbol",
|
|
2764
2736
|
"k-line-level",
|
|
2765
2737
|
"symbol-loading",
|
|
2766
2738
|
"symbol-error",
|
|
2767
|
-
"overlay-symbols"
|
|
2739
|
+
"overlay-symbols",
|
|
2740
|
+
"comparison-colors",
|
|
2741
|
+
"comparison-loading"
|
|
2768
2742
|
]),
|
|
2769
2743
|
s("div", { class: g(["chart-stage", {
|
|
2770
|
-
"is-dragging":
|
|
2771
|
-
"is-resizing-pane":
|
|
2772
|
-
"is-hovering-pane-separator":
|
|
2773
|
-
"is-hovering-right-axis":
|
|
2774
|
-
"is-hovering-kline":
|
|
2775
|
-
}]) }, [l(
|
|
2744
|
+
"is-dragging": Ke.value,
|
|
2745
|
+
"is-resizing-pane": qe.value,
|
|
2746
|
+
"is-hovering-pane-separator": Je.value,
|
|
2747
|
+
"is-hovering-right-axis": Xe.value,
|
|
2748
|
+
"is-hovering-kline": Ze.value !== null
|
|
2749
|
+
}]) }, [l(Er, {
|
|
2776
2750
|
ref_key: "toolbarRef",
|
|
2777
2751
|
ref: ie,
|
|
2778
2752
|
"is-fullscreen": n.isFullscreen,
|
|
2779
|
-
onSelectTool:
|
|
2753
|
+
onSelectTool: lt,
|
|
2780
2754
|
onToggleFullscreen: c[0] ||= (e) => r.$emit("toggleFullscreen"),
|
|
2781
|
-
onZoomIn: c[1] ||= (e) =>
|
|
2782
|
-
onZoomOut: c[2] ||= (e) =>
|
|
2783
|
-
onSettingsChange:
|
|
2755
|
+
onZoomIn: c[1] ||= (e) => zt(H.value + 1),
|
|
2756
|
+
onZoomOut: c[2] ||= (e) => zt(H.value - 1),
|
|
2757
|
+
onSettingsChange: Me
|
|
2784
2758
|
}, null, 8, ["is-fullscreen"]), s("div", {
|
|
2785
2759
|
class: "chart-main",
|
|
2786
2760
|
ref_key: "chartMainRef",
|
|
2787
2761
|
ref: R
|
|
2788
2762
|
}, [
|
|
2789
|
-
s("div", hi, [(S(!0), o(e, null, T(
|
|
2763
|
+
s("div", hi, [(S(!0), o(e, null, T(Ve.value, (e) => (S(), o("div", {
|
|
2790
2764
|
key: e.id,
|
|
2791
|
-
class: g(["pane-separator-line", { "is-active":
|
|
2765
|
+
class: g(["pane-separator-line", { "is-active": Ye.value === e.id }]),
|
|
2792
2766
|
style: _({ top: `${e.top}px` })
|
|
2793
2767
|
}, null, 6))), 128))]),
|
|
2794
2768
|
s("div", {
|
|
@@ -2798,48 +2772,48 @@ var jr = m({
|
|
|
2798
2772
|
}, null, 512),
|
|
2799
2773
|
s("div", {
|
|
2800
2774
|
class: "chart-container",
|
|
2801
|
-
style: _({ cursor:
|
|
2775
|
+
style: _({ cursor: Qe.value }),
|
|
2802
2776
|
ref_key: "containerRef",
|
|
2803
2777
|
ref: L,
|
|
2804
|
-
onScrollPassive:
|
|
2805
|
-
onPointerdown:
|
|
2806
|
-
onPointermove:
|
|
2807
|
-
onPointerup:
|
|
2808
|
-
onPointerleave:
|
|
2778
|
+
onScrollPassive: xt,
|
|
2779
|
+
onPointerdown: pt,
|
|
2780
|
+
onPointermove: mt,
|
|
2781
|
+
onPointerup: ht,
|
|
2782
|
+
onPointerleave: gt
|
|
2809
2783
|
}, [s("div", {
|
|
2810
2784
|
class: "scroll-content",
|
|
2811
2785
|
style: _({ width: Rt.value + "px" })
|
|
2812
|
-
}, [s("div", gi, [s("canvas", _i, null, 512),
|
|
2786
|
+
}, [s("div", gi, [s("canvas", _i, null, 512), Be.value ? (S(), i(ke, {
|
|
2813
2787
|
key: 0,
|
|
2814
|
-
drawing:
|
|
2815
|
-
onUpdateStyle:
|
|
2816
|
-
onDelete:
|
|
2788
|
+
drawing: Be.value,
|
|
2789
|
+
onUpdateStyle: dt,
|
|
2790
|
+
onDelete: ft
|
|
2817
2791
|
}, null, 8, ["drawing"])) : a("", !0)], 512)], 4)], 36),
|
|
2818
2792
|
te.value ? (S(), i(t, {
|
|
2819
2793
|
key: 0,
|
|
2820
2794
|
to: te.value
|
|
2821
2795
|
}, [
|
|
2822
|
-
|
|
2796
|
+
$e.value ? (S(), o("div", {
|
|
2823
2797
|
key: 0,
|
|
2824
|
-
class: g(["tooltip-anchor kline-tooltip-anchor", { "use-anchor":
|
|
2825
|
-
style: _(
|
|
2798
|
+
class: g(["tooltip-anchor kline-tooltip-anchor", { "use-anchor": q.value }]),
|
|
2799
|
+
style: _(rt.value)
|
|
2826
2800
|
}, null, 6)) : a("", !0),
|
|
2827
|
-
|
|
2801
|
+
We.value || Ge.value ? (S(), o("div", {
|
|
2828
2802
|
key: 1,
|
|
2829
|
-
class: g(["tooltip-anchor marker-tooltip-anchor", { "use-anchor":
|
|
2830
|
-
style: _(
|
|
2803
|
+
class: g(["tooltip-anchor marker-tooltip-anchor", { "use-anchor": q.value }]),
|
|
2804
|
+
style: _(at.value)
|
|
2831
2805
|
}, null, 6)) : a("", !0),
|
|
2832
|
-
|
|
2806
|
+
$e.value ? (S(), i(Gt, {
|
|
2833
2807
|
key: 2,
|
|
2834
|
-
k:
|
|
2835
|
-
index:
|
|
2836
|
-
data:
|
|
2837
|
-
pos:
|
|
2838
|
-
"set-el":
|
|
2839
|
-
"use-anchor":
|
|
2840
|
-
"anchor-placement":
|
|
2841
|
-
"up-color":
|
|
2842
|
-
"down-color":
|
|
2808
|
+
k: $e.value,
|
|
2809
|
+
index: et.value,
|
|
2810
|
+
data: ct.value,
|
|
2811
|
+
pos: nt.value,
|
|
2812
|
+
"set-el": Pe,
|
|
2813
|
+
"use-anchor": q.value,
|
|
2814
|
+
"anchor-placement": ot.value,
|
|
2815
|
+
"up-color": Te.value.upColor,
|
|
2816
|
+
"down-color": Te.value.downColor
|
|
2843
2817
|
}, null, 8, [
|
|
2844
2818
|
"k",
|
|
2845
2819
|
"index",
|
|
@@ -2850,13 +2824,13 @@ var jr = m({
|
|
|
2850
2824
|
"up-color",
|
|
2851
2825
|
"down-color"
|
|
2852
2826
|
])) : a("", !0),
|
|
2853
|
-
|
|
2827
|
+
We.value || Ge.value ? (S(), i(Jt, {
|
|
2854
2828
|
key: 3,
|
|
2855
|
-
marker:
|
|
2856
|
-
pos:
|
|
2857
|
-
"use-anchor":
|
|
2858
|
-
"anchor-placement":
|
|
2859
|
-
"set-el":
|
|
2829
|
+
marker: We.value || Ge.value,
|
|
2830
|
+
pos: it.value,
|
|
2831
|
+
"use-anchor": q.value,
|
|
2832
|
+
"anchor-placement": st.value,
|
|
2833
|
+
"set-el": Fe
|
|
2860
2834
|
}, null, 8, [
|
|
2861
2835
|
"marker",
|
|
2862
2836
|
"pos",
|
|
@@ -2868,16 +2842,16 @@ var jr = m({
|
|
|
2868
2842
|
class: "right-axis-host",
|
|
2869
2843
|
ref: "rightAxisLayerRef",
|
|
2870
2844
|
style: _({ width: Lt.value + "px" }),
|
|
2871
|
-
onPointerdown:
|
|
2872
|
-
onPointermove:
|
|
2873
|
-
onPointerup:
|
|
2874
|
-
onPointerleave:
|
|
2845
|
+
onPointerdown: _t,
|
|
2846
|
+
onPointermove: vt,
|
|
2847
|
+
onPointerup: yt,
|
|
2848
|
+
onPointerleave: bt
|
|
2875
2849
|
}, null, 36)
|
|
2876
2850
|
], 512)], 2),
|
|
2877
|
-
l(
|
|
2851
|
+
l(At, {
|
|
2878
2852
|
ref_key: "indicatorSelectorRef",
|
|
2879
2853
|
ref: ce,
|
|
2880
|
-
"active-indicators":
|
|
2854
|
+
"active-indicators": wt.value,
|
|
2881
2855
|
"indicator-params": X.value,
|
|
2882
2856
|
onToggle: Pt,
|
|
2883
2857
|
onUpdateParams: Ft,
|
|
@@ -2885,9 +2859,9 @@ var jr = m({
|
|
|
2885
2859
|
}, null, 8, ["active-indicators", "indicator-params"])
|
|
2886
2860
|
], 12, mi));
|
|
2887
2861
|
}
|
|
2888
|
-
}), [["__scopeId", "data-v-
|
|
2862
|
+
}), [["__scopeId", "data-v-c0ab68e5"]]), bi = {
|
|
2889
2863
|
name: "@363045841yyt/klinechart",
|
|
2890
|
-
version: "0.8.1
|
|
2864
|
+
version: "0.8.1",
|
|
2891
2865
|
description: "Vue 3 bindings for @363045841yyt/klinechart-core. Idiomatic composables, SFC components.",
|
|
2892
2866
|
license: "MIT",
|
|
2893
2867
|
repository: {
|
|
@@ -3136,4 +3110,4 @@ var Ai = u({
|
|
|
3136
3110
|
} };
|
|
3137
3111
|
Si(ee);
|
|
3138
3112
|
//#endregion
|
|
3139
|
-
export { R as CORE_VERSION, ke as DrawingStyleToolbar,
|
|
3113
|
+
export { R as CORE_VERSION, ke as DrawingStyleToolbar, qe as IndicatorParams, At as IndicatorSelector, Ai as KLineChart, yi as KLineChartVue, Gt as KLineTooltip, ji as KMapPlugin, Er as LeftToolbar, Jt as MarkerTooltip, bi as VERSION, Si as __setControllerFactory, $ as coreSignalToVueRef, Ci as createChart, wi as useChart, ki as useIndicatorSelector, Ti as useIndicators, Ei as useInteractionState, Di as usePaneRatios, Oi as useViewport };
|