@363045841yyt/klinechart 0.7.3-alpha.5 → 0.7.4
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/IndicatorSelector.vue.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +609 -567
- package/dist/klinechart.css +1 -1
- package/package.json +1 -1
- package/src/components/IndicatorSelector.vue +134 -7
- package/src/index.ts +1 -1
package/dist/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
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, ref as C, renderList as w, resolveDynamicComponent as T, shallowRef as E, toDisplayString as D, unref as O, vModelCheckbox as k, vModelSelect as A,
|
|
2
|
-
import { findIndicator as ee, isSubIndicatorId as
|
|
3
|
-
import { SemanticChartController as R, __setDataFetcher as
|
|
4
|
-
import { Chart as
|
|
5
|
-
import { createChartStore as
|
|
6
|
-
import { kGapFromKWidth as
|
|
7
|
-
import { getPhysicalKLineConfig as
|
|
8
|
-
import { SUB_PANE_INDICATORS as
|
|
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, ref as C, renderList as w, resolveDynamicComponent as T, shallowRef as E, toDisplayString as D, unref as O, vModelCheckbox as k, vModelSelect as A, vModelText as j, watch as M, withCtx as N, withDirectives as P, withModifiers as F } from "vue";
|
|
2
|
+
import { findIndicator as ee, isSubIndicatorId as I, mainIndicators as L, subIndicators as te } from "@363045841yyt/klinechart-core/engine/renderers/Indicator/indicatorData";
|
|
3
|
+
import { SemanticChartController as R, __setDataFetcher as ne } from "@363045841yyt/klinechart-core/semantic";
|
|
4
|
+
import { Chart as z } from "@363045841yyt/klinechart-core/engine/chart";
|
|
5
|
+
import { createChartStore as re } from "@363045841yyt/klinechart-core/engine/chart-store";
|
|
6
|
+
import { kGapFromKWidth as ie, zoomLevelToKWidth as B } from "@363045841yyt/klinechart-core/engine/utils/zoom";
|
|
7
|
+
import { getPhysicalKLineConfig as V } from "@363045841yyt/klinechart-core/engine/utils/klineConfig";
|
|
8
|
+
import { SUB_PANE_INDICATORS as ae, SUB_PANE_INDICATOR_CONFIGS as H } from "@363045841yyt/klinechart-core/engine/renderers/Indicator/subPaneConfig";
|
|
9
9
|
import { createPaneTitleRendererPlugin as oe } from "@363045841yyt/klinechart-core/engine/renderers/paneTitle";
|
|
10
|
-
import { DEFAULT_SETTINGS as
|
|
11
|
-
import { DrawingInteractionController as
|
|
12
|
-
import { VERSION as
|
|
10
|
+
import { DEFAULT_SETTINGS as U, SETTINGS_STORAGE_KEY as se } from "@363045841yyt/klinechart-core/config";
|
|
11
|
+
import { DrawingInteractionController as ce } from "@363045841yyt/klinechart-core/engine/drawing";
|
|
12
|
+
import { VERSION as le, createChartController as ue } from "@363045841yyt/klinechart-core";
|
|
13
13
|
//#region src/components/DrawingStyleToolbar.vue?vue&type=script&setup=true&lang.ts
|
|
14
|
-
var
|
|
14
|
+
var de = {
|
|
15
15
|
class: "toolbar-item color-item",
|
|
16
16
|
title: "颜色"
|
|
17
|
-
},
|
|
17
|
+
}, fe = ["value"], W = ["value"], G = ["value"], K = /* @__PURE__ */ u({
|
|
18
18
|
__name: "DrawingStyleToolbar",
|
|
19
19
|
props: { drawing: {} },
|
|
20
20
|
emits: ["updateStyle", "delete"],
|
|
@@ -35,11 +35,11 @@ var le = {
|
|
|
35
35
|
}
|
|
36
36
|
return (t, n) => (S(), o("div", {
|
|
37
37
|
class: "drawing-style-toolbar",
|
|
38
|
-
onPointerdown: n[4] ||=
|
|
39
|
-
onPointermove: n[5] ||=
|
|
40
|
-
onPointerup: n[6] ||=
|
|
38
|
+
onPointerdown: n[4] ||= F(() => {}, ["stop"]),
|
|
39
|
+
onPointermove: n[5] ||= F(() => {}, ["stop"]),
|
|
40
|
+
onPointerup: n[6] ||= F(() => {}, ["stop"])
|
|
41
41
|
}, [
|
|
42
|
-
s("div",
|
|
42
|
+
s("div", de, [s("span", {
|
|
43
43
|
class: "color-swatch",
|
|
44
44
|
style: _({ background: e.drawing.style.stroke ?? "#2962ff" })
|
|
45
45
|
}, null, 4), s("input", {
|
|
@@ -47,7 +47,7 @@ var le = {
|
|
|
47
47
|
class: "color-input",
|
|
48
48
|
value: e.drawing.style.stroke ?? "#2962ff",
|
|
49
49
|
onInput: n[0] ||= (e) => i(e.target.value)
|
|
50
|
-
}, null, 40,
|
|
50
|
+
}, null, 40, fe)]),
|
|
51
51
|
s("select", {
|
|
52
52
|
class: "toolbar-select",
|
|
53
53
|
value: e.drawing.style.strokeWidth ?? 1,
|
|
@@ -58,7 +58,7 @@ var le = {
|
|
|
58
58
|
s("option", { value: 2 }, "2px", -1),
|
|
59
59
|
s("option", { value: 3 }, "3px", -1),
|
|
60
60
|
s("option", { value: 4 }, "4px", -1)
|
|
61
|
-
]], 40,
|
|
61
|
+
]], 40, W),
|
|
62
62
|
s("select", {
|
|
63
63
|
class: "toolbar-select",
|
|
64
64
|
value: e.drawing.style.strokeStyle ?? "solid",
|
|
@@ -68,7 +68,7 @@ var le = {
|
|
|
68
68
|
s("option", { value: "solid" }, "实线", -1),
|
|
69
69
|
s("option", { value: "dashed" }, "虚线", -1),
|
|
70
70
|
s("option", { value: "dotted" }, "点线", -1)
|
|
71
|
-
]], 40,
|
|
71
|
+
]], 40, G),
|
|
72
72
|
s("button", {
|
|
73
73
|
type: "button",
|
|
74
74
|
class: "toolbar-btn delete-btn",
|
|
@@ -90,11 +90,11 @@ var le = {
|
|
|
90
90
|
], -1)]])
|
|
91
91
|
], 32));
|
|
92
92
|
}
|
|
93
|
-
}),
|
|
93
|
+
}), q = (e, t) => {
|
|
94
94
|
let n = e.__vccOpts || e;
|
|
95
95
|
for (let [e, r] of t) n[e] = r;
|
|
96
96
|
return n;
|
|
97
|
-
}, pe = /* @__PURE__ */ K
|
|
97
|
+
}, pe = /* @__PURE__ */ q(K, [["__scopeId", "data-v-87e91714"]]), me = { class: "params-header" }, J = { class: "header-left" }, Y = { class: "params-title" }, he = { class: "header-right" }, ge = {
|
|
98
98
|
key: 0,
|
|
99
99
|
class: "indicator-description"
|
|
100
100
|
}, _e = { class: "params-body" }, ve = { class: "param-header" }, ye = { class: "param-label" }, be = { class: "param-label-text" }, xe = {
|
|
@@ -109,7 +109,7 @@ var le = {
|
|
|
109
109
|
], Te = ["disabled", "onClick"], Ee = {
|
|
110
110
|
key: 0,
|
|
111
111
|
class: "param-description"
|
|
112
|
-
}, De = { class: "params-footer" }, Oe = { class: "footer-right" }, ke = /* @__PURE__ */
|
|
112
|
+
}, De = { class: "params-footer" }, Oe = { class: "footer-right" }, ke = /* @__PURE__ */ q(/* @__PURE__ */ u({
|
|
113
113
|
__name: "IndicatorParams",
|
|
114
114
|
props: {
|
|
115
115
|
visible: { type: Boolean },
|
|
@@ -122,12 +122,12 @@ var le = {
|
|
|
122
122
|
emits: ["close", "confirm"],
|
|
123
123
|
setup(u, { emit: d }) {
|
|
124
124
|
let f = u, p = d, m = C({ ...f.values }), h = C(!0), _ = r(() => "body");
|
|
125
|
-
|
|
125
|
+
M(() => f.values, (e) => {
|
|
126
126
|
m.value = { ...e };
|
|
127
127
|
}, {
|
|
128
128
|
deep: !0,
|
|
129
129
|
immediate: !0
|
|
130
|
-
}),
|
|
130
|
+
}), M(() => f.visible, (e) => {
|
|
131
131
|
e && (m.value = { ...f.values });
|
|
132
132
|
});
|
|
133
133
|
function v(e, t) {
|
|
@@ -148,16 +148,16 @@ var le = {
|
|
|
148
148
|
p("confirm", { ...m.value });
|
|
149
149
|
}
|
|
150
150
|
return (r, d) => (S(), i(t, { to: _.value }, [l(n, { name: "overlay" }, {
|
|
151
|
-
default:
|
|
151
|
+
default: N(() => [u.visible ? (S(), o("div", {
|
|
152
152
|
key: 0,
|
|
153
153
|
class: "params-overlay",
|
|
154
154
|
onClick: d[4] ||= (e) => r.$emit("close")
|
|
155
155
|
}, [l(n, { name: "modal" }, {
|
|
156
|
-
default:
|
|
156
|
+
default: N(() => [s("div", {
|
|
157
157
|
class: "indicator-params",
|
|
158
|
-
onClick: d[3] ||=
|
|
158
|
+
onClick: d[3] ||= F(() => {}, ["stop"])
|
|
159
159
|
}, [
|
|
160
|
-
s("div", me, [s("div",
|
|
160
|
+
s("div", me, [s("div", J, [s("span", Y, D(u.indicatorName), 1), d[5] ||= s("span", { class: "params-subtitle" }, "参数设置", -1)]), s("div", he, [s("button", {
|
|
161
161
|
class: g(["toggle-desc-btn", { active: h.value }]),
|
|
162
162
|
onClick: d[0] ||= (e) => h.value = !h.value,
|
|
163
163
|
title: "显示/隐藏说明"
|
|
@@ -174,7 +174,7 @@ var le = {
|
|
|
174
174
|
"stroke-width": "2"
|
|
175
175
|
}, [s("path", { d: "M18 6L6 18M6 6l12 12" })], -1)]])])]),
|
|
176
176
|
l(n, { name: "slide" }, {
|
|
177
|
-
default:
|
|
177
|
+
default: N(() => [h.value && u.indicatorDescription ? (S(), o("div", ge, [s("p", null, D(u.indicatorDescription), 1)])) : a("", !0)]),
|
|
178
178
|
_: 1
|
|
179
179
|
}),
|
|
180
180
|
s("div", _e, [(S(!0), o(e, null, w(u.params, (e) => (S(), o("div", {
|
|
@@ -202,7 +202,7 @@ var le = {
|
|
|
202
202
|
onClick: (t) => y(e, 1)
|
|
203
203
|
}, " + ", 8, Te)
|
|
204
204
|
])]), l(n, { name: "slide" }, {
|
|
205
|
-
default:
|
|
205
|
+
default: N(() => [h.value && e.description ? (S(), o("div", Ee, D(e.description), 1)) : a("", !0)]),
|
|
206
206
|
_: 2
|
|
207
207
|
}, 1024)], 2))), 128))]),
|
|
208
208
|
s("div", De, [s("button", {
|
|
@@ -268,7 +268,19 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
268
268
|
width: "16",
|
|
269
269
|
height: "16",
|
|
270
270
|
fill: "currentColor"
|
|
271
|
-
},
|
|
271
|
+
}, X = { class: "modal-body" }, Ze = { class: "search-box" }, Qe = {
|
|
272
|
+
key: 0,
|
|
273
|
+
class: "indicator-section"
|
|
274
|
+
}, Z = { class: "section-header" }, Q = { class: "section-count" }, $e = ["onClick"], et = { class: "card-label" }, tt = { class: "card-tooltip" }, nt = { class: "card-header" }, rt = { class: "card-label" }, it = { class: "card-header-actions" }, at = ["onClick"], ot = { class: "card-name" }, st = {
|
|
275
|
+
key: 1,
|
|
276
|
+
class: "section-divider"
|
|
277
|
+
}, ct = {
|
|
278
|
+
key: 2,
|
|
279
|
+
class: "no-results"
|
|
280
|
+
}, lt = {
|
|
281
|
+
key: 3,
|
|
282
|
+
class: "indicator-section"
|
|
283
|
+
}, ut = { class: "section-header" }, dt = { class: "section-count" }, ft = ["onClick"], pt = { class: "card-label" }, mt = { class: "card-tooltip" }, ht = { class: "card-header" }, gt = { class: "card-label" }, _t = { class: "card-header-actions" }, vt = ["onClick"], yt = { class: "card-name" }, bt = { class: "modal-footer" }, xt = { class: "footer-info" }, St = { class: "info-text" }, Ct = /* @__PURE__ */ q(/* @__PURE__ */ u({
|
|
272
284
|
__name: "IndicatorSelector",
|
|
273
285
|
props: {
|
|
274
286
|
activeIndicators: {},
|
|
@@ -280,25 +292,33 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
280
292
|
"reorderSubIndicators"
|
|
281
293
|
],
|
|
282
294
|
setup(u, { emit: d }) {
|
|
283
|
-
let f = u, p = d, m = C(null), h = C(!1), _ = C(null), v = C(null), b = C(!1), T = C(null), E = C(null), k = C(!1), A = je(),
|
|
284
|
-
|
|
295
|
+
let f = u, p = d, m = C(null), h = C(!1), _ = C(null), v = C(null), b = C(!1), T = C(null), E = C(null), k = C(!1), A = C(""), M = je(), R = r(() => f.activeIndicators?.length ? f.activeIndicators.map((e) => ee(e)).filter((e) => e !== void 0).sort((e, t) => e.pane === t.pane ? 0 : e.pane === "main" ? -1 : 1) : []), ne = r(() => R.value.some((e) => e.pane === "main") ? R.value.find((e) => e.pane === "sub")?.id ?? null : null), z = r(() => _.value ? ee(_.value) : null), re = r(() => L.length + te.length), ie = r(() => f.activeIndicators?.length ?? 0), B = r(() => {
|
|
296
|
+
if (!A.value.trim()) return L;
|
|
297
|
+
let e = A.value.toLowerCase().trim();
|
|
298
|
+
return L.filter((t) => t.label.toLowerCase().includes(e) || t.name.toLowerCase().includes(e) || t.id.toLowerCase().includes(e));
|
|
299
|
+
}), V = r(() => {
|
|
300
|
+
if (!A.value.trim()) return te;
|
|
301
|
+
let e = A.value.toLowerCase().trim();
|
|
302
|
+
return te.filter((t) => t.label.toLowerCase().includes(e) || t.name.toLowerCase().includes(e) || t.id.toLowerCase().includes(e));
|
|
303
|
+
}), ae = r(() => B.value.length > 0 || V.value.length > 0);
|
|
304
|
+
function H(e) {
|
|
285
305
|
return f.activeIndicators?.includes(e) ?? !1;
|
|
286
306
|
}
|
|
287
|
-
function
|
|
288
|
-
if (
|
|
307
|
+
function oe(e) {
|
|
308
|
+
if (H(e)) return;
|
|
289
309
|
let t = ee(e);
|
|
290
|
-
t && (t.pane === "main" &&
|
|
310
|
+
t && (t.pane === "main" && L.filter((t) => t.id !== e && H(t.id)).forEach((e) => p("toggle", e.id, !1)), p("toggle", e, !0));
|
|
291
311
|
}
|
|
292
|
-
function
|
|
312
|
+
function U(e) {
|
|
293
313
|
p("toggle", e, !1);
|
|
294
314
|
}
|
|
295
|
-
function
|
|
315
|
+
function se(e) {
|
|
296
316
|
_.value = e, h.value = !0;
|
|
297
317
|
}
|
|
298
|
-
function
|
|
318
|
+
function ce() {
|
|
299
319
|
b.value = !1;
|
|
300
320
|
}
|
|
301
|
-
function
|
|
321
|
+
function le(e) {
|
|
302
322
|
let t = ee(e);
|
|
303
323
|
if (!t?.params) return {};
|
|
304
324
|
let n = {};
|
|
@@ -307,70 +327,70 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
307
327
|
for (let [e, t] of Object.entries(r)) typeof t == "number" && (i[e] = t);
|
|
308
328
|
return i;
|
|
309
329
|
}
|
|
310
|
-
function
|
|
311
|
-
let t =
|
|
330
|
+
function ue(e) {
|
|
331
|
+
let t = le(e.id);
|
|
312
332
|
return e.params ? e.params.map((e) => t[e.key] ?? "").join(",") : "";
|
|
313
333
|
}
|
|
314
|
-
function
|
|
334
|
+
function de(e) {
|
|
315
335
|
_.value && p("updateParams", _.value, e), h.value = !1;
|
|
316
336
|
}
|
|
317
|
-
function
|
|
318
|
-
if (!
|
|
337
|
+
function fe(e, t) {
|
|
338
|
+
if (!I(t)) {
|
|
319
339
|
e.preventDefault();
|
|
320
340
|
return;
|
|
321
341
|
}
|
|
322
342
|
E.value = t, T.value = null, e.dataTransfer?.setData("text/plain", t), e.dataTransfer && (e.dataTransfer.effectAllowed = "move");
|
|
323
343
|
}
|
|
324
|
-
function
|
|
325
|
-
!E.value || !
|
|
344
|
+
function W(e, t) {
|
|
345
|
+
!E.value || !I(t) || E.value === t || (T.value = t, e.dataTransfer && (e.dataTransfer.dropEffect = "move"));
|
|
326
346
|
}
|
|
327
|
-
function
|
|
347
|
+
function G(e, t) {
|
|
328
348
|
let n = E.value || e.dataTransfer?.getData("text/plain") || "";
|
|
329
349
|
if (!n || n === t) {
|
|
330
|
-
|
|
350
|
+
K();
|
|
331
351
|
return;
|
|
332
352
|
}
|
|
333
|
-
if (!
|
|
334
|
-
|
|
353
|
+
if (!I(n) || !I(t)) {
|
|
354
|
+
K();
|
|
335
355
|
return;
|
|
336
356
|
}
|
|
337
|
-
let r =
|
|
357
|
+
let r = R.value.findIndex((e) => e.id === n), i = R.value.findIndex((e) => e.id === t);
|
|
338
358
|
if (r < 0 || i < 0) {
|
|
339
|
-
|
|
359
|
+
K();
|
|
340
360
|
return;
|
|
341
361
|
}
|
|
342
|
-
let a = [...
|
|
362
|
+
let a = [...R.value.map((e) => e.id)], [o] = a.splice(r, 1);
|
|
343
363
|
if (!o) {
|
|
344
|
-
|
|
364
|
+
K();
|
|
345
365
|
return;
|
|
346
366
|
}
|
|
347
|
-
a.splice(i, 0, o), p("reorderSubIndicators", a.filter((e) =>
|
|
367
|
+
a.splice(i, 0, o), p("reorderSubIndicators", a.filter((e) => I(e))), K();
|
|
348
368
|
}
|
|
349
|
-
function
|
|
369
|
+
function K() {
|
|
350
370
|
T.value = null, E.value = null;
|
|
351
371
|
}
|
|
352
|
-
function
|
|
372
|
+
function q() {
|
|
353
373
|
b.value = !b.value;
|
|
354
374
|
}
|
|
355
|
-
function
|
|
375
|
+
function pe(e) {
|
|
356
376
|
e.key === "Escape" && b.value && (b.value = !1);
|
|
357
377
|
}
|
|
358
378
|
return y(() => {
|
|
359
|
-
document.addEventListener("keydown",
|
|
379
|
+
document.addEventListener("keydown", pe);
|
|
360
380
|
}), x(() => {
|
|
361
|
-
document.removeEventListener("keydown",
|
|
381
|
+
document.removeEventListener("keydown", pe);
|
|
362
382
|
}), (r, u) => (S(), o("div", Me, [
|
|
363
|
-
s("div", Ne, [s("div", Pe, [(S(!0), o(e, null, w(
|
|
383
|
+
s("div", Ne, [s("div", Pe, [(S(!0), o(e, null, w(R.value, (t) => (S(), o(e, { key: t.id }, [t.id === ne.value ? (S(), o("div", Fe)) : a("", !0), s("div", {
|
|
364
384
|
class: g(["indicator-item", {
|
|
365
|
-
draggable: O(
|
|
385
|
+
draggable: O(I)(t.id),
|
|
366
386
|
"drag-over": T.value === t.id,
|
|
367
387
|
"is-dragging": E.value === t.id
|
|
368
388
|
}]),
|
|
369
|
-
draggable: O(
|
|
370
|
-
onDragstart: (e) =>
|
|
371
|
-
onDragover:
|
|
372
|
-
onDrop:
|
|
373
|
-
onDragend:
|
|
389
|
+
draggable: O(I)(t.id),
|
|
390
|
+
onDragstart: (e) => fe(e, t.id),
|
|
391
|
+
onDragover: F((e) => W(e, t.id), ["prevent"]),
|
|
392
|
+
onDrop: F((e) => G(e, t.id), ["prevent"]),
|
|
393
|
+
onDragend: K
|
|
374
394
|
}, [s("div", {
|
|
375
395
|
class: "indicator-btn-wrapper",
|
|
376
396
|
onMouseenter: (e) => v.value = t.id,
|
|
@@ -378,14 +398,14 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
378
398
|
}, [s("button", { class: g(["indicator-btn", {
|
|
379
399
|
active: !0,
|
|
380
400
|
hovering: v.value === t.id
|
|
381
|
-
}]) }, [s("span", Re, [c(D(t.label) + " ", 1), t.params?.length ? (S(), o("span", ze, " (" + D(
|
|
382
|
-
default:
|
|
401
|
+
}]) }, [s("span", Re, [c(D(t.label) + " ", 1), t.params?.length ? (S(), o("span", ze, " (" + D(ue(t)) + ") ", 1)) : a("", !0)]), l(n, { name: "fade" }, {
|
|
402
|
+
default: N(() => [v.value === t.id ? (S(), o("div", Be, [
|
|
383
403
|
t.params?.length ? (S(), o("button", {
|
|
384
404
|
key: 0,
|
|
385
405
|
class: "action-btn settings-btn",
|
|
386
|
-
onClick:
|
|
406
|
+
onClick: F((e) => se(t.id), ["stop"]),
|
|
387
407
|
title: "编辑参数"
|
|
388
|
-
}, [...u[
|
|
408
|
+
}, [...u[5] ||= [s("svg", {
|
|
389
409
|
viewBox: "0 0 24 24",
|
|
390
410
|
width: "14",
|
|
391
411
|
height: "14",
|
|
@@ -394,9 +414,9 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
394
414
|
t.params?.length ? (S(), o("span", He)) : a("", !0),
|
|
395
415
|
s("button", {
|
|
396
416
|
class: "action-btn remove-btn",
|
|
397
|
-
onClick:
|
|
417
|
+
onClick: F((e) => U(t.id), ["stop"]),
|
|
398
418
|
title: "移除指标"
|
|
399
|
-
}, [...u[
|
|
419
|
+
}, [...u[6] ||= [s("svg", {
|
|
400
420
|
viewBox: "0 0 24 24",
|
|
401
421
|
width: "14",
|
|
402
422
|
height: "14",
|
|
@@ -408,97 +428,119 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
408
428
|
ref_key: "addBtnRef",
|
|
409
429
|
ref: m,
|
|
410
430
|
class: "add-btn",
|
|
411
|
-
onClick:
|
|
431
|
+
onClick: q,
|
|
412
432
|
title: "添加指标"
|
|
413
|
-
}, [...u[
|
|
433
|
+
}, [...u[7] ||= [s("svg", {
|
|
414
434
|
viewBox: "0 0 24 24",
|
|
415
435
|
width: "16",
|
|
416
436
|
height: "16",
|
|
417
437
|
fill: "currentColor"
|
|
418
438
|
}, [s("path", { d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z" })], -1)]], 512)])])]),
|
|
419
|
-
(S(), i(t, { to: O(
|
|
420
|
-
default:
|
|
439
|
+
(S(), i(t, { to: O(M) }, [l(n, { name: "overlay" }, {
|
|
440
|
+
default: N(() => [b.value ? (S(), o("div", {
|
|
421
441
|
key: 0,
|
|
422
442
|
class: "selector-overlay",
|
|
423
|
-
onClick:
|
|
443
|
+
onClick: ce
|
|
424
444
|
}, [l(n, { name: "modal" }, {
|
|
425
|
-
default:
|
|
445
|
+
default: N(() => [b.value ? (S(), o("div", {
|
|
426
446
|
key: 0,
|
|
427
447
|
class: "selector-modal",
|
|
428
|
-
onClick: u[
|
|
448
|
+
onClick: u[3] ||= F(() => {}, ["stop"])
|
|
429
449
|
}, [
|
|
430
|
-
s("div", Ge, [s("div", Ke, [u[
|
|
450
|
+
s("div", Ge, [s("div", Ke, [u[8] ||= s("span", { class: "title-text" }, "添加指标", -1), s("span", qe, D(re.value) + " 个可用指标", 1)]), s("div", Je, [s("button", {
|
|
431
451
|
class: g(["view-toggle-btn", { active: k.value }]),
|
|
432
452
|
onClick: u[1] ||= (e) => k.value = !k.value,
|
|
433
453
|
title: "简洁模式"
|
|
434
|
-
}, [k.value ? (S(), o("svg", Xe, [...u[
|
|
454
|
+
}, [k.value ? (S(), o("svg", Xe, [...u[10] ||= [s("path", { d: "M3 3h18v18H3V3zm16 16V5H5v14h14zM7 7h4v4H7V7zm0 6h4v4H7v-4zm6-6h4v4h-4V7zm0 6h4v4h-4v-4z" }, null, -1)]])) : (S(), o("svg", Ye, [...u[9] ||= [s("path", { d: "M4 6h16v2H4zm0 5h16v2H4zm0 5h16v2H4z" }, null, -1)]]))], 2), s("button", {
|
|
435
455
|
class: "modal-close",
|
|
436
|
-
onClick:
|
|
456
|
+
onClick: ce,
|
|
437
457
|
title: "关闭"
|
|
438
|
-
}, [...u[
|
|
458
|
+
}, [...u[11] ||= [s("svg", {
|
|
439
459
|
viewBox: "0 0 24 24",
|
|
440
460
|
width: "14",
|
|
441
461
|
height: "14",
|
|
442
462
|
fill: "currentColor"
|
|
443
463
|
}, [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)]])])]),
|
|
444
|
-
s("div",
|
|
445
|
-
s("div",
|
|
464
|
+
s("div", X, [
|
|
465
|
+
s("div", Ze, [u[12] ||= s("svg", {
|
|
466
|
+
class: "search-icon",
|
|
467
|
+
viewBox: "0 0 24 24",
|
|
468
|
+
width: "16",
|
|
469
|
+
height: "16",
|
|
470
|
+
fill: "currentColor"
|
|
471
|
+
}, [s("path", { d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" })], -1), P(s("input", {
|
|
472
|
+
"onUpdate:modelValue": u[2] ||= (e) => A.value = e,
|
|
473
|
+
type: "text",
|
|
474
|
+
class: "search-input",
|
|
475
|
+
placeholder: "搜索指标名称..."
|
|
476
|
+
}, null, 512), [[j, A.value]])]),
|
|
477
|
+
B.value.length > 0 ? (S(), o("div", Qe, [s("div", Z, [u[13] ||= s("span", { class: "section-title" }, "主图指标", -1), s("span", Q, D(B.value.length), 1)]), s("div", { class: g(["indicator-grid", { compact: k.value }]) }, [(S(!0), o(e, null, w(B.value, (t) => (S(), o("button", {
|
|
446
478
|
key: t.id,
|
|
447
479
|
class: g(["indicator-card", {
|
|
448
|
-
active:
|
|
480
|
+
active: H(t.id),
|
|
449
481
|
compact: k.value
|
|
450
482
|
}]),
|
|
451
|
-
onClick: (e) =>
|
|
452
|
-
}, [k.value ? (S(), o(e, { key: 0 }, [s("span",
|
|
483
|
+
onClick: (e) => H(t.id) ? U(t.id) : oe(t.id)
|
|
484
|
+
}, [k.value ? (S(), o(e, { key: 0 }, [s("span", et, D(t.label), 1), s("span", tt, D(t.name), 1)], 64)) : (S(), o(e, { key: 1 }, [s("div", nt, [s("span", rt, D(t.label), 1), s("div", it, [t.params?.length ? (S(), o("button", {
|
|
453
485
|
key: 0,
|
|
454
486
|
class: "card-settings-btn",
|
|
455
|
-
onClick:
|
|
487
|
+
onClick: F((e) => se(t.id), ["stop"]),
|
|
456
488
|
title: "编辑参数"
|
|
457
|
-
}, [...u[
|
|
489
|
+
}, [...u[14] ||= [s("svg", {
|
|
458
490
|
viewBox: "0 0 24 24",
|
|
459
491
|
width: "14",
|
|
460
492
|
height: "14",
|
|
461
493
|
fill: "currentColor"
|
|
462
|
-
}, [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,
|
|
463
|
-
|
|
464
|
-
|
|
494
|
+
}, [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, at)) : a("", !0)])]), s("div", ot, D(t.name), 1)], 64))], 10, $e))), 128))], 2)])) : a("", !0),
|
|
495
|
+
B.value.length > 0 && V.value.length > 0 ? (S(), o("div", st)) : a("", !0),
|
|
496
|
+
!ae.value && A.value.trim() ? (S(), o("div", ct, [...u[15] ||= [
|
|
497
|
+
s("svg", {
|
|
498
|
+
viewBox: "0 0 24 24",
|
|
499
|
+
width: "48",
|
|
500
|
+
height: "48",
|
|
501
|
+
fill: "currentColor"
|
|
502
|
+
}, [s("path", { d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" })], -1),
|
|
503
|
+
s("p", null, "未找到匹配的指标", -1),
|
|
504
|
+
s("span", { class: "no-results-hint" }, "请尝试其他关键词", -1)
|
|
505
|
+
]])) : a("", !0),
|
|
506
|
+
V.value.length > 0 ? (S(), o("div", lt, [s("div", ut, [u[16] ||= s("span", { class: "section-title" }, "副图指标", -1), s("span", dt, D(V.value.length), 1)]), s("div", { class: g(["indicator-grid", { compact: k.value }]) }, [(S(!0), o(e, null, w(V.value, (t) => (S(), o("button", {
|
|
465
507
|
key: t.id,
|
|
466
508
|
class: g(["indicator-card", {
|
|
467
|
-
active:
|
|
509
|
+
active: H(t.id),
|
|
468
510
|
compact: k.value
|
|
469
511
|
}]),
|
|
470
|
-
onClick: (e) =>
|
|
471
|
-
}, [k.value ? (S(), o(e, { key: 0 }, [s("span",
|
|
512
|
+
onClick: (e) => H(t.id) ? U(t.id) : oe(t.id)
|
|
513
|
+
}, [k.value ? (S(), o(e, { key: 0 }, [s("span", pt, D(t.label), 1), s("span", mt, D(t.name), 1)], 64)) : (S(), o(e, { key: 1 }, [s("div", ht, [s("span", gt, D(t.label), 1), s("div", _t, [t.params?.length ? (S(), o("button", {
|
|
472
514
|
key: 0,
|
|
473
515
|
class: "card-settings-btn",
|
|
474
|
-
onClick:
|
|
516
|
+
onClick: F((e) => se(t.id), ["stop"]),
|
|
475
517
|
title: "编辑参数"
|
|
476
|
-
}, [...u[
|
|
518
|
+
}, [...u[17] ||= [s("svg", {
|
|
477
519
|
viewBox: "0 0 24 24",
|
|
478
520
|
width: "14",
|
|
479
521
|
height: "14",
|
|
480
522
|
fill: "currentColor"
|
|
481
|
-
}, [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,
|
|
523
|
+
}, [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, vt)) : a("", !0)])]), s("div", yt, D(t.name), 1)], 64))], 10, ft))), 128))], 2)])) : a("", !0)
|
|
482
524
|
]),
|
|
483
|
-
s("div",
|
|
525
|
+
s("div", bt, [s("div", xt, [s("span", St, "已激活 " + D(ie.value) + " 个指标", 1)]), s("button", {
|
|
484
526
|
class: "btn btn-confirm",
|
|
485
|
-
onClick:
|
|
527
|
+
onClick: ce
|
|
486
528
|
}, "确认")])
|
|
487
529
|
])) : a("", !0)]),
|
|
488
530
|
_: 1
|
|
489
531
|
})])) : a("", !0)]),
|
|
490
532
|
_: 1
|
|
491
533
|
})], 8, ["to"])),
|
|
492
|
-
|
|
534
|
+
z.value ? (S(), i(ke, {
|
|
493
535
|
key: 0,
|
|
494
536
|
visible: h.value,
|
|
495
|
-
"indicator-id":
|
|
496
|
-
"indicator-name":
|
|
497
|
-
"indicator-description":
|
|
498
|
-
params:
|
|
499
|
-
values:
|
|
500
|
-
onClose: u[
|
|
501
|
-
onConfirm:
|
|
537
|
+
"indicator-id": z.value.id,
|
|
538
|
+
"indicator-name": z.value.name,
|
|
539
|
+
"indicator-description": z.value.description,
|
|
540
|
+
params: z.value.params || [],
|
|
541
|
+
values: le(z.value.id),
|
|
542
|
+
onClose: u[4] ||= (e) => h.value = !1,
|
|
543
|
+
onConfirm: de
|
|
502
544
|
}, null, 8, [
|
|
503
545
|
"visible",
|
|
504
546
|
"indicator-id",
|
|
@@ -509,25 +551,25 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
509
551
|
])) : a("", !0)
|
|
510
552
|
]));
|
|
511
553
|
}
|
|
512
|
-
}), [["__scopeId", "data-v-
|
|
554
|
+
}), [["__scopeId", "data-v-22a0d967"]]), wt = { class: "kline-tooltip__title" }, Tt = { key: 0 }, Et = { class: "kline-tooltip__grid" }, Dt = { class: "row" }, Ot = { class: "row" }, kt = { class: "row" }, At = { class: "row" }, jt = {
|
|
513
555
|
key: 0,
|
|
514
556
|
class: "row"
|
|
515
|
-
},
|
|
557
|
+
}, Mt = {
|
|
516
558
|
key: 1,
|
|
517
559
|
class: "row"
|
|
518
|
-
},
|
|
560
|
+
}, Nt = {
|
|
519
561
|
key: 2,
|
|
520
562
|
class: "row"
|
|
521
|
-
},
|
|
563
|
+
}, Pt = {
|
|
522
564
|
key: 3,
|
|
523
565
|
class: "row"
|
|
524
|
-
},
|
|
566
|
+
}, Ft = {
|
|
525
567
|
key: 4,
|
|
526
568
|
class: "row"
|
|
527
|
-
},
|
|
569
|
+
}, It = {
|
|
528
570
|
key: 5,
|
|
529
571
|
class: "row"
|
|
530
|
-
},
|
|
572
|
+
}, Lt = "#ef4444", Rt = "#22c55e", zt = "#6b7280", Bt = /* @__PURE__ */ q(/* @__PURE__ */ u({
|
|
531
573
|
__name: "KLineTooltip",
|
|
532
574
|
props: {
|
|
533
575
|
k: {},
|
|
@@ -560,19 +602,19 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
560
602
|
}
|
|
561
603
|
let p = r(() => {
|
|
562
604
|
let e = t.k;
|
|
563
|
-
if (!e) return
|
|
605
|
+
if (!e) return zt;
|
|
564
606
|
let n = f(e, t.data, t.index);
|
|
565
|
-
return n > 0 ?
|
|
607
|
+
return n > 0 ? Lt : n < 0 ? Rt : zt;
|
|
566
608
|
}), m = r(() => {
|
|
567
609
|
let e = t.k;
|
|
568
|
-
if (!e) return
|
|
610
|
+
if (!e) return zt;
|
|
569
611
|
let n = e.close - e.open;
|
|
570
|
-
return n > 0 ?
|
|
612
|
+
return n > 0 ? Lt : n < 0 ? Rt : zt;
|
|
571
613
|
}), h = r(() => {
|
|
572
614
|
let e = t.k;
|
|
573
|
-
if (!e) return
|
|
615
|
+
if (!e) return zt;
|
|
574
616
|
let n = e.changePercent ?? (e.close - e.open) / e.open * 100;
|
|
575
|
-
return n > 0 ?
|
|
617
|
+
return n > 0 ? Lt : n < 0 ? Rt : zt;
|
|
576
618
|
});
|
|
577
619
|
return (t, r) => e.k ? (S(), o("div", {
|
|
578
620
|
key: 0,
|
|
@@ -582,23 +624,23 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
582
624
|
left: `${e.pos.x}px`,
|
|
583
625
|
top: `${e.pos.y}px`
|
|
584
626
|
})
|
|
585
|
-
}, [s("div",
|
|
586
|
-
s("div",
|
|
587
|
-
s("div",
|
|
588
|
-
s("div",
|
|
589
|
-
s("div",
|
|
590
|
-
typeof e.k.volume == "number" ? (S(), o("div",
|
|
591
|
-
typeof e.k.turnover == "number" ? (S(), o("div",
|
|
592
|
-
typeof e.k.amplitude == "number" ? (S(), o("div",
|
|
593
|
-
typeof e.k.changePercent == "number" ? (S(), o("div",
|
|
594
|
-
typeof e.k.changeAmount == "number" ? (S(), o("div",
|
|
595
|
-
typeof e.k.turnoverRate == "number" ? (S(), o("div",
|
|
627
|
+
}, [s("div", wt, [e.k.stockCode ? (S(), o("span", Tt, D(e.k.stockCode), 1)) : a("", !0), s("span", null, D(l(e.k.timestamp)), 1)]), s("div", Et, [
|
|
628
|
+
s("div", Dt, [r[0] ||= s("span", null, "开", -1), s("span", { style: _({ color: p.value }) }, D(e.k.open.toFixed(2)), 5)]),
|
|
629
|
+
s("div", Ot, [r[1] ||= s("span", null, "高", -1), s("span", null, D(e.k.high.toFixed(2)), 1)]),
|
|
630
|
+
s("div", kt, [r[2] ||= s("span", null, "低", -1), s("span", null, D(e.k.low.toFixed(2)), 1)]),
|
|
631
|
+
s("div", At, [r[3] ||= s("span", null, "收", -1), s("span", { style: _({ color: m.value }) }, D(e.k.close.toFixed(2)), 5)]),
|
|
632
|
+
typeof e.k.volume == "number" ? (S(), o("div", jt, [r[4] ||= s("span", null, "成交量", -1), s("span", null, D(u(e.k.volume)), 1)])) : a("", !0),
|
|
633
|
+
typeof e.k.turnover == "number" ? (S(), o("div", Mt, [r[5] ||= s("span", null, "成交额", -1), s("span", null, D(u(e.k.turnover)), 1)])) : a("", !0),
|
|
634
|
+
typeof e.k.amplitude == "number" ? (S(), o("div", Nt, [r[6] ||= s("span", null, "振幅", -1), s("span", null, D(e.k.amplitude) + "%", 1)])) : a("", !0),
|
|
635
|
+
typeof e.k.changePercent == "number" ? (S(), o("div", Pt, [r[7] ||= s("span", null, "涨跌幅", -1), s("span", { style: _({ color: h.value }) }, D(d(e.k.changePercent, "%")), 5)])) : a("", !0),
|
|
636
|
+
typeof e.k.changeAmount == "number" ? (S(), o("div", Ft, [r[8] ||= s("span", null, "涨跌额", -1), s("span", { style: _({ color: h.value }) }, D(d(e.k.changeAmount, "")), 5)])) : a("", !0),
|
|
637
|
+
typeof e.k.turnoverRate == "number" ? (S(), o("div", It, [r[9] ||= s("span", null, "换手率", -1), s("span", null, D(e.k.turnoverRate.toFixed(2)) + "%", 1)])) : a("", !0)
|
|
596
638
|
])], 6)) : a("", !0);
|
|
597
639
|
}
|
|
598
|
-
}), [["__scopeId", "data-v-90b1aa6d"]]),
|
|
640
|
+
}), [["__scopeId", "data-v-90b1aa6d"]]), Vt = { class: "marker-tooltip__title" }, Ht = {
|
|
599
641
|
key: 0,
|
|
600
642
|
class: "marker-tooltip__content"
|
|
601
|
-
},
|
|
643
|
+
}, Ut = /* @__PURE__ */ q(/* @__PURE__ */ u({
|
|
602
644
|
__name: "MarkerTooltip",
|
|
603
645
|
props: {
|
|
604
646
|
marker: {},
|
|
@@ -647,30 +689,12 @@ var Me = { class: "indicator-selector" }, Ne = { class: "indicator-scroll-contai
|
|
|
647
689
|
left: `${t.pos.x + 12}px`,
|
|
648
690
|
top: `${t.pos.y + 12}px`
|
|
649
691
|
})
|
|
650
|
-
}, [s("div",
|
|
692
|
+
}, [s("div", Vt, D(f.value), 1), m.value ? (S(), o("div", Ht, [(S(!0), o(e, null, w(p.value, (e, t) => (S(), o("div", {
|
|
651
693
|
key: t,
|
|
652
694
|
class: "row"
|
|
653
695
|
}, [s("span", null, D(t), 1), s("span", null, D(h(e)), 1)]))), 128))])) : a("", !0)], 6)) : a("", !0);
|
|
654
696
|
}
|
|
655
|
-
}), [["__scopeId", "data-v-057b55c9"]]),
|
|
656
|
-
viewBox: "0 0 24 24",
|
|
657
|
-
width: "1.2em",
|
|
658
|
-
height: "1.2em"
|
|
659
|
-
};
|
|
660
|
-
function Ht(e, t) {
|
|
661
|
-
return S(), o("svg", Vt, [...t[0] ||= [s("path", {
|
|
662
|
-
fill: "none",
|
|
663
|
-
stroke: "currentColor",
|
|
664
|
-
"stroke-linecap": "round",
|
|
665
|
-
"stroke-linejoin": "round",
|
|
666
|
-
"stroke-width": "2",
|
|
667
|
-
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"
|
|
668
|
-
}, null, -1)]]);
|
|
669
|
-
}
|
|
670
|
-
var Ut = m({
|
|
671
|
-
name: "tabler-pointer",
|
|
672
|
-
render: Ht
|
|
673
|
-
}), Wt = {
|
|
697
|
+
}), [["__scopeId", "data-v-057b55c9"]]), Wt = {
|
|
674
698
|
viewBox: "0 0 24 24",
|
|
675
699
|
width: "1.2em",
|
|
676
700
|
height: "1.2em"
|
|
@@ -682,11 +706,11 @@ function Gt(e, t) {
|
|
|
682
706
|
"stroke-linecap": "round",
|
|
683
707
|
"stroke-linejoin": "round",
|
|
684
708
|
"stroke-width": "2",
|
|
685
|
-
d: "
|
|
709
|
+
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"
|
|
686
710
|
}, null, -1)]]);
|
|
687
711
|
}
|
|
688
712
|
var Kt = m({
|
|
689
|
-
name: "tabler-
|
|
713
|
+
name: "tabler-pointer",
|
|
690
714
|
render: Gt
|
|
691
715
|
}), qt = {
|
|
692
716
|
viewBox: "0 0 24 24",
|
|
@@ -700,11 +724,11 @@ function Jt(e, t) {
|
|
|
700
724
|
"stroke-linecap": "round",
|
|
701
725
|
"stroke-linejoin": "round",
|
|
702
726
|
"stroke-width": "2",
|
|
703
|
-
d: "
|
|
727
|
+
d: "M4 19h16M4 15l4-6l4 2l4-5l4 4"
|
|
704
728
|
}, null, -1)]]);
|
|
705
729
|
}
|
|
706
730
|
var Yt = m({
|
|
707
|
-
name: "tabler-
|
|
731
|
+
name: "tabler-chart-line",
|
|
708
732
|
render: Jt
|
|
709
733
|
}), Xt = {
|
|
710
734
|
viewBox: "0 0 24 24",
|
|
@@ -718,11 +742,11 @@ function Zt(e, t) {
|
|
|
718
742
|
"stroke-linecap": "round",
|
|
719
743
|
"stroke-linejoin": "round",
|
|
720
744
|
"stroke-width": "2",
|
|
721
|
-
d: "
|
|
745
|
+
d: "M17 7L7 17M8 7h9v9"
|
|
722
746
|
}, null, -1)]]);
|
|
723
747
|
}
|
|
724
748
|
var Qt = m({
|
|
725
|
-
name: "tabler-arrow-right",
|
|
749
|
+
name: "tabler-arrow-up-right",
|
|
726
750
|
render: Zt
|
|
727
751
|
}), $t = {
|
|
728
752
|
viewBox: "0 0 24 24",
|
|
@@ -736,11 +760,11 @@ function en(e, t) {
|
|
|
736
760
|
"stroke-linecap": "round",
|
|
737
761
|
"stroke-linejoin": "round",
|
|
738
762
|
"stroke-width": "2",
|
|
739
|
-
d: "M5
|
|
763
|
+
d: "M5 12h14m-6 6l6-6m-6-6l6 6"
|
|
740
764
|
}, null, -1)]]);
|
|
741
765
|
}
|
|
742
766
|
var tn = m({
|
|
743
|
-
name: "tabler-
|
|
767
|
+
name: "tabler-arrow-right",
|
|
744
768
|
render: en
|
|
745
769
|
}), nn = {
|
|
746
770
|
viewBox: "0 0 24 24",
|
|
@@ -754,11 +778,11 @@ function rn(e, t) {
|
|
|
754
778
|
"stroke-linecap": "round",
|
|
755
779
|
"stroke-linejoin": "round",
|
|
756
780
|
"stroke-width": "2",
|
|
757
|
-
d: "
|
|
781
|
+
d: "M5 12h14"
|
|
758
782
|
}, null, -1)]]);
|
|
759
783
|
}
|
|
760
784
|
var an = m({
|
|
761
|
-
name: "tabler-
|
|
785
|
+
name: "tabler-minus",
|
|
762
786
|
render: rn
|
|
763
787
|
}), on = {
|
|
764
788
|
viewBox: "0 0 24 24",
|
|
@@ -772,11 +796,11 @@ function sn(e, t) {
|
|
|
772
796
|
"stroke-linecap": "round",
|
|
773
797
|
"stroke-linejoin": "round",
|
|
774
798
|
"stroke-width": "2",
|
|
775
|
-
d: "
|
|
799
|
+
d: "M3 12v.01M7 12h10m4 0v.01"
|
|
776
800
|
}, null, -1)]]);
|
|
777
801
|
}
|
|
778
802
|
var cn = m({
|
|
779
|
-
name: "tabler-
|
|
803
|
+
name: "tabler-separator",
|
|
780
804
|
render: sn
|
|
781
805
|
}), ln = {
|
|
782
806
|
viewBox: "0 0 24 24",
|
|
@@ -784,16 +808,17 @@ var cn = m({
|
|
|
784
808
|
height: "1.2em"
|
|
785
809
|
};
|
|
786
810
|
function un(e, t) {
|
|
787
|
-
return S(), o("svg", ln, [...t[0] ||= [s("
|
|
811
|
+
return S(), o("svg", ln, [...t[0] ||= [s("path", {
|
|
788
812
|
fill: "none",
|
|
789
813
|
stroke: "currentColor",
|
|
790
814
|
"stroke-linecap": "round",
|
|
791
815
|
"stroke-linejoin": "round",
|
|
792
|
-
"stroke-width": "2"
|
|
793
|
-
|
|
816
|
+
"stroke-width": "2",
|
|
817
|
+
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"
|
|
818
|
+
}, null, -1)]]);
|
|
794
819
|
}
|
|
795
820
|
var dn = m({
|
|
796
|
-
name: "tabler-
|
|
821
|
+
name: "tabler-crosshair",
|
|
797
822
|
render: un
|
|
798
823
|
}), fn = {
|
|
799
824
|
viewBox: "0 0 24 24",
|
|
@@ -801,17 +826,16 @@ var dn = m({
|
|
|
801
826
|
height: "1.2em"
|
|
802
827
|
};
|
|
803
828
|
function pn(e, t) {
|
|
804
|
-
return S(), o("svg", fn, [...t[0] ||= [s("
|
|
829
|
+
return S(), o("svg", fn, [...t[0] ||= [s("g", {
|
|
805
830
|
fill: "none",
|
|
806
831
|
stroke: "currentColor",
|
|
807
832
|
"stroke-linecap": "round",
|
|
808
833
|
"stroke-linejoin": "round",
|
|
809
|
-
"stroke-width": "2"
|
|
810
|
-
|
|
811
|
-
}, null, -1)]]);
|
|
834
|
+
"stroke-width": "2"
|
|
835
|
+
}, [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)]]);
|
|
812
836
|
}
|
|
813
837
|
var mn = m({
|
|
814
|
-
name: "tabler-
|
|
838
|
+
name: "tabler-info-circle",
|
|
815
839
|
render: pn
|
|
816
840
|
}), hn = {
|
|
817
841
|
viewBox: "0 0 24 24",
|
|
@@ -825,11 +849,11 @@ function gn(e, t) {
|
|
|
825
849
|
"stroke-linecap": "round",
|
|
826
850
|
"stroke-linejoin": "round",
|
|
827
851
|
"stroke-width": "2",
|
|
828
|
-
d: "M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m4
|
|
852
|
+
d: "M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m4 0h6m-3-3v6m11 8l-6-6"
|
|
829
853
|
}, null, -1)]]);
|
|
830
854
|
}
|
|
831
855
|
var _n = m({
|
|
832
|
-
name: "tabler-zoom-
|
|
856
|
+
name: "tabler-zoom-in",
|
|
833
857
|
render: gn
|
|
834
858
|
}), vn = {
|
|
835
859
|
viewBox: "0 0 24 24",
|
|
@@ -843,11 +867,11 @@ function yn(e, t) {
|
|
|
843
867
|
"stroke-linecap": "round",
|
|
844
868
|
"stroke-linejoin": "round",
|
|
845
869
|
"stroke-width": "2",
|
|
846
|
-
d: "
|
|
870
|
+
d: "M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m4 0h6m8 11l-6-6"
|
|
847
871
|
}, null, -1)]]);
|
|
848
872
|
}
|
|
849
873
|
var bn = m({
|
|
850
|
-
name: "tabler-
|
|
874
|
+
name: "tabler-zoom-out",
|
|
851
875
|
render: yn
|
|
852
876
|
}), xn = {
|
|
853
877
|
viewBox: "0 0 24 24",
|
|
@@ -861,11 +885,11 @@ function Sn(e, t) {
|
|
|
861
885
|
"stroke-linecap": "round",
|
|
862
886
|
"stroke-linejoin": "round",
|
|
863
887
|
"stroke-width": "2",
|
|
864
|
-
d: "
|
|
888
|
+
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"
|
|
865
889
|
}, null, -1)]]);
|
|
866
890
|
}
|
|
867
891
|
var Cn = m({
|
|
868
|
-
name: "tabler-
|
|
892
|
+
name: "tabler-maximize",
|
|
869
893
|
render: Sn
|
|
870
894
|
}), wn = {
|
|
871
895
|
viewBox: "0 0 24 24",
|
|
@@ -873,16 +897,17 @@ var Cn = m({
|
|
|
873
897
|
height: "1.2em"
|
|
874
898
|
};
|
|
875
899
|
function Tn(e, t) {
|
|
876
|
-
return S(), o("svg", wn, [...t[0] ||= [s("
|
|
900
|
+
return S(), o("svg", wn, [...t[0] ||= [s("path", {
|
|
877
901
|
fill: "none",
|
|
878
902
|
stroke: "currentColor",
|
|
879
903
|
"stroke-linecap": "round",
|
|
880
904
|
"stroke-linejoin": "round",
|
|
881
|
-
"stroke-width": "2"
|
|
882
|
-
|
|
905
|
+
"stroke-width": "2",
|
|
906
|
+
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"
|
|
907
|
+
}, null, -1)]]);
|
|
883
908
|
}
|
|
884
909
|
var En = m({
|
|
885
|
-
name: "tabler-
|
|
910
|
+
name: "tabler-minimize",
|
|
886
911
|
render: Tn
|
|
887
912
|
}), Dn = {
|
|
888
913
|
viewBox: "0 0 24 24",
|
|
@@ -890,17 +915,16 @@ var En = m({
|
|
|
890
915
|
height: "1.2em"
|
|
891
916
|
};
|
|
892
917
|
function On(e, t) {
|
|
893
|
-
return S(), o("svg", Dn, [...t[0] ||= [s("
|
|
918
|
+
return S(), o("svg", Dn, [...t[0] ||= [s("g", {
|
|
894
919
|
fill: "none",
|
|
895
920
|
stroke: "currentColor",
|
|
896
921
|
"stroke-linecap": "round",
|
|
897
922
|
"stroke-linejoin": "round",
|
|
898
|
-
"stroke-width": "2"
|
|
899
|
-
|
|
900
|
-
}, null, -1)]]);
|
|
923
|
+
"stroke-width": "2"
|
|
924
|
+
}, [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)]]);
|
|
901
925
|
}
|
|
902
926
|
var kn = m({
|
|
903
|
-
name: "tabler-
|
|
927
|
+
name: "tabler-settings",
|
|
904
928
|
render: On
|
|
905
929
|
}), An = {
|
|
906
930
|
viewBox: "0 0 24 24",
|
|
@@ -914,11 +938,11 @@ function jn(e, t) {
|
|
|
914
938
|
"stroke-linecap": "round",
|
|
915
939
|
"stroke-linejoin": "round",
|
|
916
940
|
"stroke-width": "2",
|
|
917
|
-
d: "M3
|
|
941
|
+
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"
|
|
918
942
|
}, null, -1)]]);
|
|
919
943
|
}
|
|
920
944
|
var Mn = m({
|
|
921
|
-
name: "tabler-
|
|
945
|
+
name: "tabler-shape",
|
|
922
946
|
render: jn
|
|
923
947
|
}), Nn = {
|
|
924
948
|
viewBox: "0 0 24 24",
|
|
@@ -932,11 +956,11 @@ function Pn(e, t) {
|
|
|
932
956
|
"stroke-linecap": "round",
|
|
933
957
|
"stroke-linejoin": "round",
|
|
934
958
|
"stroke-width": "2",
|
|
935
|
-
d: "
|
|
959
|
+
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"
|
|
936
960
|
}, null, -1)]]);
|
|
937
961
|
}
|
|
938
962
|
var Fn = m({
|
|
939
|
-
name: "tabler-
|
|
963
|
+
name: "tabler-chart-dots-3",
|
|
940
964
|
render: Pn
|
|
941
965
|
}), In = {
|
|
942
966
|
viewBox: "0 0 24 24",
|
|
@@ -950,37 +974,55 @@ function Ln(e, t) {
|
|
|
950
974
|
"stroke-linecap": "round",
|
|
951
975
|
"stroke-linejoin": "round",
|
|
952
976
|
"stroke-width": "2",
|
|
953
|
-
d: "
|
|
977
|
+
d: "m18 10l-6-6l-6 6zm0 4l-6 6l-6-6z"
|
|
954
978
|
}, null, -1)]]);
|
|
955
979
|
}
|
|
956
980
|
var Rn = m({
|
|
957
|
-
name: "tabler-
|
|
981
|
+
name: "tabler-caret-up-down",
|
|
958
982
|
render: Ln
|
|
983
|
+
}), zn = {
|
|
984
|
+
viewBox: "0 0 24 24",
|
|
985
|
+
width: "1.2em",
|
|
986
|
+
height: "1.2em"
|
|
987
|
+
};
|
|
988
|
+
function Bn(e, t) {
|
|
989
|
+
return S(), o("svg", zn, [...t[0] ||= [s("path", {
|
|
990
|
+
fill: "none",
|
|
991
|
+
stroke: "currentColor",
|
|
992
|
+
"stroke-linecap": "round",
|
|
993
|
+
"stroke-linejoin": "round",
|
|
994
|
+
"stroke-width": "2",
|
|
995
|
+
d: "M8 4H5v16h3m8-16h3v16h-3"
|
|
996
|
+
}, null, -1)]]);
|
|
997
|
+
}
|
|
998
|
+
var Vn = m({
|
|
999
|
+
name: "tabler-brackets",
|
|
1000
|
+
render: Bn
|
|
959
1001
|
});
|
|
960
1002
|
//#endregion
|
|
961
1003
|
//#region src/debug/canvasProfiler.ts
|
|
962
|
-
function
|
|
1004
|
+
function Hn() {
|
|
963
1005
|
return Object.create(null);
|
|
964
1006
|
}
|
|
965
|
-
function
|
|
1007
|
+
function Un() {
|
|
966
1008
|
return {
|
|
967
|
-
ctxMethods:
|
|
968
|
-
ctxProps:
|
|
969
|
-
canvasProps:
|
|
1009
|
+
ctxMethods: Hn(),
|
|
1010
|
+
ctxProps: Hn(),
|
|
1011
|
+
canvasProps: Hn(),
|
|
970
1012
|
ctxMethodSources: Object.create(null)
|
|
971
1013
|
};
|
|
972
1014
|
}
|
|
973
|
-
function
|
|
1015
|
+
function Wn(e, t, n) {
|
|
974
1016
|
let r = e[t] ??= {
|
|
975
1017
|
count: 0,
|
|
976
1018
|
totalTime: 0
|
|
977
1019
|
};
|
|
978
1020
|
r.count += 1, r.totalTime += n;
|
|
979
1021
|
}
|
|
980
|
-
function
|
|
981
|
-
|
|
1022
|
+
function Gn(e, t, n, r) {
|
|
1023
|
+
Wn(e.ctxMethodSources[t] ??= Hn(), n, r);
|
|
982
1024
|
}
|
|
983
|
-
function
|
|
1025
|
+
function Kn(e) {
|
|
984
1026
|
return Object.entries(e).filter(([, e]) => e.count > 0).map(([e, t]) => ({
|
|
985
1027
|
name: e,
|
|
986
1028
|
count: t.count,
|
|
@@ -988,12 +1030,12 @@ function Un(e) {
|
|
|
988
1030
|
averageTime: (t.totalTime / t.count).toFixed(4)
|
|
989
1031
|
})).sort((e, t) => Number(t.totalTime) - Number(e.totalTime));
|
|
990
1032
|
}
|
|
991
|
-
var
|
|
992
|
-
function
|
|
993
|
-
|
|
1033
|
+
var qn = !1, Jn = /* @__PURE__ */ new Map(), Yn = /* @__PURE__ */ new Map();
|
|
1034
|
+
function Xn(e) {
|
|
1035
|
+
qn = e, e ? typeof window < "u" && !window.__KMAP_CANVAS_PROFILER_INSTALLED__ && $n() : er();
|
|
994
1036
|
}
|
|
995
|
-
function
|
|
996
|
-
if (!
|
|
1037
|
+
function Zn() {
|
|
1038
|
+
if (!qn) return "disabled";
|
|
997
1039
|
let e = (/* @__PURE__ */ Error()).stack;
|
|
998
1040
|
if (!e) return "unknown";
|
|
999
1041
|
let t = e.split("\n").map((e) => e.trim()).filter(Boolean);
|
|
@@ -1006,82 +1048,82 @@ function Jn() {
|
|
|
1006
1048
|
}
|
|
1007
1049
|
return "unknown";
|
|
1008
1050
|
}
|
|
1009
|
-
function
|
|
1051
|
+
function $(e, t, n, r) {
|
|
1010
1052
|
let i = `${e.constructor?.name ?? "proto"}:${t}`;
|
|
1011
|
-
if (
|
|
1053
|
+
if (Jn.has(i)) return;
|
|
1012
1054
|
let a = Reflect.get(e, t);
|
|
1013
|
-
typeof a == "function" && (
|
|
1014
|
-
if (!
|
|
1015
|
-
let i = r?.captureSource ?
|
|
1016
|
-
return
|
|
1055
|
+
typeof a == "function" && (Jn.set(i, a), Reflect.set(e, t, function(...e) {
|
|
1056
|
+
if (!qn) return a.apply(this, e);
|
|
1057
|
+
let i = r?.captureSource ? Zn() : null, o = performance.now(), s = a.apply(this, e), c = performance.now() - o;
|
|
1058
|
+
return Wn(n.ctxMethods, t, c), i && Gn(n, t, i, c), s;
|
|
1017
1059
|
}));
|
|
1018
1060
|
}
|
|
1019
|
-
function
|
|
1061
|
+
function Qn(e, t, n) {
|
|
1020
1062
|
let r = Object.getOwnPropertyDescriptor(e, t);
|
|
1021
1063
|
if (!r?.set || !r.configurable) return;
|
|
1022
1064
|
let i = `${e.constructor?.name ?? "proto"}:${t}`;
|
|
1023
|
-
|
|
1065
|
+
Yn.has(i) || (Yn.set(i, r), Object.defineProperty(e, t, {
|
|
1024
1066
|
configurable: !0,
|
|
1025
1067
|
enumerable: r.enumerable ?? !1,
|
|
1026
1068
|
get: r.get,
|
|
1027
1069
|
set(e) {
|
|
1028
|
-
if (!
|
|
1070
|
+
if (!qn) {
|
|
1029
1071
|
r.set.call(this, e);
|
|
1030
1072
|
return;
|
|
1031
1073
|
}
|
|
1032
1074
|
let i = performance.now();
|
|
1033
|
-
r.set.call(this, e),
|
|
1075
|
+
r.set.call(this, e), Wn(n, t, performance.now() - i);
|
|
1034
1076
|
}
|
|
1035
1077
|
}));
|
|
1036
1078
|
}
|
|
1037
|
-
function
|
|
1079
|
+
function $n() {
|
|
1038
1080
|
if (typeof window > "u" || window.__KMAP_CANVAS_PROFILER_INSTALLED__) return;
|
|
1039
1081
|
let e = CanvasRenderingContext2D?.prototype, t = HTMLCanvasElement?.prototype;
|
|
1040
1082
|
if (!e || !t) return;
|
|
1041
|
-
let n =
|
|
1042
|
-
|
|
1083
|
+
let n = Un();
|
|
1084
|
+
$(e, "fillText", n, { captureSource: !0 }), $(e, "measureText", n, { captureSource: !0 }), $(e, "drawImage", n), $(e, "save", n), $(e, "restore", n), $(e, "clip", n), $(e, "setTransform", n), $(e, "scale", n), Qn(e, "font", n.ctxProps), Qn(e, "filter", n.ctxProps), Qn(e, "shadowBlur", n.ctxProps), Qn(e, "lineWidth", n.ctxProps), Qn(t, "width", n.canvasProps), Qn(t, "height", n.canvasProps), window.__KMAP_CANVAS_PROFILER_METRICS__ = n, window.__KMAP_CANVAS_PROFILER_INSTALLED__ = !0, window.showCanvasReport = () => {
|
|
1043
1085
|
let e = window.__KMAP_CANVAS_PROFILER_METRICS__;
|
|
1044
1086
|
if (e) {
|
|
1045
|
-
console.group("[kmap] Canvas profiler report"), console.log("ctx methods"), console.table(
|
|
1087
|
+
console.group("[kmap] Canvas profiler report"), console.log("ctx methods"), console.table(Kn(e.ctxMethods)), console.log("ctx props"), console.table(Kn(e.ctxProps)), console.log("canvas props"), console.table(Kn(e.canvasProps));
|
|
1046
1088
|
for (let t of ["fillText", "measureText"]) {
|
|
1047
1089
|
let n = e.ctxMethodSources[t];
|
|
1048
|
-
n && (console.log(`${t} sources`), console.table(
|
|
1090
|
+
n && (console.log(`${t} sources`), console.table(Kn(n).slice(0, 20)));
|
|
1049
1091
|
}
|
|
1050
1092
|
console.groupEnd();
|
|
1051
1093
|
}
|
|
1052
1094
|
}, window.resetCanvasReport = () => {
|
|
1053
|
-
window.__KMAP_CANVAS_PROFILER_METRICS__ =
|
|
1095
|
+
window.__KMAP_CANVAS_PROFILER_METRICS__ = Un();
|
|
1054
1096
|
}, console.info("[kmap] Canvas profiler enabled. Use window.showCanvasReport() and window.resetCanvasReport().");
|
|
1055
1097
|
}
|
|
1056
|
-
function
|
|
1098
|
+
function er() {
|
|
1057
1099
|
if (typeof window > "u" || !window.__KMAP_CANVAS_PROFILER_INSTALLED__) return;
|
|
1058
1100
|
let e = CanvasRenderingContext2D?.prototype, t = HTMLCanvasElement?.prototype;
|
|
1059
|
-
|
|
1101
|
+
Jn.forEach((n, r) => {
|
|
1060
1102
|
let i = r.match(/^(.+):(.+)$/);
|
|
1061
1103
|
if (!i) return;
|
|
1062
1104
|
let [, a, o] = i, s = null;
|
|
1063
1105
|
a === "CanvasRenderingContext2D" ? s = e : a === "HTMLCanvasElement" && (s = t), s && Reflect.set(s, o, n);
|
|
1064
|
-
}),
|
|
1106
|
+
}), Jn.clear(), Yn.forEach((n, r) => {
|
|
1065
1107
|
let i = r.match(/^(.+):(.+)$/);
|
|
1066
1108
|
if (!i) return;
|
|
1067
1109
|
let [, a, o] = i, s = null;
|
|
1068
1110
|
a === "CanvasRenderingContext2D" ? s = e : a === "HTMLCanvasElement" && (s = t), s && n.configurable && Object.defineProperty(s, o, n);
|
|
1069
|
-
}),
|
|
1111
|
+
}), Yn.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.");
|
|
1070
1112
|
}
|
|
1071
1113
|
//#endregion
|
|
1072
1114
|
//#region src/components/LeftToolbar.vue?vue&type=script&setup=true&lang.ts
|
|
1073
|
-
var
|
|
1115
|
+
var tr = {
|
|
1074
1116
|
class: "left-toolbar",
|
|
1075
1117
|
"aria-label": "图表工具栏"
|
|
1076
|
-
},
|
|
1118
|
+
}, nr = { class: "left-toolbar__group" }, rr = [
|
|
1077
1119
|
"title",
|
|
1078
1120
|
"aria-label",
|
|
1079
1121
|
"onClick"
|
|
1080
|
-
],
|
|
1122
|
+
], ir = ["onClick"], ar = [
|
|
1081
1123
|
"title",
|
|
1082
1124
|
"aria-label",
|
|
1083
1125
|
"onClick"
|
|
1084
|
-
],
|
|
1126
|
+
], or = { class: "left-toolbar__group" }, sr = { class: "left-toolbar__group" }, cr = ["title", "aria-label"], lr = { class: "left-toolbar__group" }, ur = { class: "settings-body" }, dr = { class: "settings-label" }, fr = ["onUpdate:modelValue"], pr = ["onUpdate:modelValue"], mr = ["value"], hr = { class: "settings-label" }, gr = ["onUpdate:modelValue"], _r = ["onUpdate:modelValue"], vr = ["value"], yr = /* @__PURE__ */ q(/* @__PURE__ */ u({
|
|
1085
1127
|
__name: "LeftToolbar",
|
|
1086
1128
|
props: { isFullscreen: { type: Boolean } },
|
|
1087
1129
|
emits: [
|
|
@@ -1096,103 +1138,103 @@ var Zn = {
|
|
|
1096
1138
|
{
|
|
1097
1139
|
id: "cursor",
|
|
1098
1140
|
title: "光标",
|
|
1099
|
-
icon:
|
|
1141
|
+
icon: Kt
|
|
1100
1142
|
},
|
|
1101
1143
|
{
|
|
1102
1144
|
id: "lines",
|
|
1103
1145
|
title: "线条",
|
|
1104
|
-
icon:
|
|
1146
|
+
icon: Yt,
|
|
1105
1147
|
children: [
|
|
1106
1148
|
{
|
|
1107
1149
|
id: "trend-line",
|
|
1108
1150
|
title: "线段",
|
|
1109
|
-
icon:
|
|
1151
|
+
icon: Yt
|
|
1110
1152
|
},
|
|
1111
1153
|
{
|
|
1112
1154
|
id: "ray",
|
|
1113
1155
|
title: "射线",
|
|
1114
|
-
icon:
|
|
1156
|
+
icon: Qt
|
|
1115
1157
|
},
|
|
1116
1158
|
{
|
|
1117
1159
|
id: "h-line",
|
|
1118
1160
|
title: "水平线",
|
|
1119
|
-
icon:
|
|
1161
|
+
icon: an
|
|
1120
1162
|
},
|
|
1121
1163
|
{
|
|
1122
1164
|
id: "h-ray",
|
|
1123
1165
|
title: "水平射线",
|
|
1124
|
-
icon:
|
|
1166
|
+
icon: tn
|
|
1125
1167
|
},
|
|
1126
1168
|
{
|
|
1127
1169
|
id: "v-line",
|
|
1128
1170
|
title: "垂直线",
|
|
1129
|
-
icon:
|
|
1171
|
+
icon: cn
|
|
1130
1172
|
},
|
|
1131
1173
|
{
|
|
1132
1174
|
id: "crosshair-line",
|
|
1133
1175
|
title: "十字线",
|
|
1134
|
-
icon:
|
|
1176
|
+
icon: dn
|
|
1135
1177
|
},
|
|
1136
1178
|
{
|
|
1137
1179
|
id: "info-line",
|
|
1138
1180
|
title: "信息线",
|
|
1139
|
-
icon:
|
|
1181
|
+
icon: mn
|
|
1140
1182
|
}
|
|
1141
1183
|
]
|
|
1142
1184
|
},
|
|
1143
1185
|
{
|
|
1144
1186
|
id: "channels",
|
|
1145
1187
|
title: "通道",
|
|
1146
|
-
icon:
|
|
1188
|
+
icon: Mn,
|
|
1147
1189
|
children: [
|
|
1148
1190
|
{
|
|
1149
1191
|
id: "parallel-channel",
|
|
1150
1192
|
title: "平行通道",
|
|
1151
|
-
icon:
|
|
1193
|
+
icon: Mn
|
|
1152
1194
|
},
|
|
1153
1195
|
{
|
|
1154
1196
|
id: "regression-channel",
|
|
1155
1197
|
title: "回归趋势",
|
|
1156
|
-
icon:
|
|
1198
|
+
icon: Fn
|
|
1157
1199
|
},
|
|
1158
1200
|
{
|
|
1159
1201
|
id: "flat-line",
|
|
1160
1202
|
title: "平滑顶底",
|
|
1161
|
-
icon:
|
|
1203
|
+
icon: Rn
|
|
1162
1204
|
},
|
|
1163
1205
|
{
|
|
1164
1206
|
id: "disjoint-channel",
|
|
1165
1207
|
title: "不相交通道",
|
|
1166
|
-
icon:
|
|
1208
|
+
icon: Vn
|
|
1167
1209
|
}
|
|
1168
1210
|
]
|
|
1169
1211
|
}
|
|
1170
|
-
], m = f, h = C("cursor"), _ = C(null), v = C(!1), b = je(), E = r(() =>
|
|
1171
|
-
function
|
|
1212
|
+
], m = f, h = C("cursor"), _ = C(null), v = C(!1), b = je(), E = r(() => U.filter((e) => e.group === "main")), j = r(() => U.filter((e) => e.group === "experimental"));
|
|
1213
|
+
function M() {
|
|
1172
1214
|
try {
|
|
1173
|
-
let e = localStorage.getItem(
|
|
1215
|
+
let e = localStorage.getItem(se);
|
|
1174
1216
|
if (e) {
|
|
1175
1217
|
let t = JSON.parse(e), n = {};
|
|
1176
|
-
return
|
|
1218
|
+
return U.forEach((e) => {
|
|
1177
1219
|
n[e.key] = t[e.key] ?? e.default;
|
|
1178
1220
|
}), n;
|
|
1179
1221
|
}
|
|
1180
1222
|
} catch {}
|
|
1181
1223
|
let e = {};
|
|
1182
|
-
return
|
|
1224
|
+
return U.forEach((t) => {
|
|
1183
1225
|
e[t.key] = t.default;
|
|
1184
1226
|
}), e;
|
|
1185
1227
|
}
|
|
1186
|
-
function
|
|
1228
|
+
function ee(e) {
|
|
1187
1229
|
try {
|
|
1188
|
-
localStorage.setItem(
|
|
1230
|
+
localStorage.setItem(se, JSON.stringify(e));
|
|
1189
1231
|
} catch {}
|
|
1190
1232
|
}
|
|
1191
|
-
let I = C(
|
|
1192
|
-
function
|
|
1233
|
+
let I = C(M()), L = C({ ...I.value });
|
|
1234
|
+
function te(e) {
|
|
1193
1235
|
return h.value === e.id ? !0 : e.children ? e.children.some((e) => e.id === h.value) : !1;
|
|
1194
1236
|
}
|
|
1195
|
-
function
|
|
1237
|
+
function R(e) {
|
|
1196
1238
|
if (e.children?.length) {
|
|
1197
1239
|
if (!e.children.some((e) => e.id === h.value)) {
|
|
1198
1240
|
let t = e.children[0];
|
|
@@ -1212,57 +1254,57 @@ var Zn = {
|
|
|
1212
1254
|
function re() {
|
|
1213
1255
|
L.value = { ...I.value }, v.value = !0;
|
|
1214
1256
|
}
|
|
1215
|
-
function
|
|
1257
|
+
function ie() {
|
|
1216
1258
|
v.value = !1;
|
|
1217
1259
|
}
|
|
1218
|
-
function
|
|
1260
|
+
function B() {
|
|
1219
1261
|
let e = {};
|
|
1220
|
-
|
|
1262
|
+
U.forEach((t) => {
|
|
1221
1263
|
e[t.key] = t.default;
|
|
1222
1264
|
}), L.value = e;
|
|
1223
1265
|
}
|
|
1224
1266
|
function V() {
|
|
1225
|
-
I.value = { ...L.value },
|
|
1267
|
+
I.value = { ...L.value }, ee(I.value), Xn(!!I.value.enableCanvasProfiler), m("settingsChange", { ...I.value }), ie();
|
|
1226
1268
|
}
|
|
1227
1269
|
function ae() {
|
|
1228
1270
|
return { ...I.value };
|
|
1229
1271
|
}
|
|
1230
1272
|
d({ getSettings: ae });
|
|
1231
|
-
function
|
|
1273
|
+
function H(e) {
|
|
1232
1274
|
e.target.closest(".tool-item") || (_.value = null);
|
|
1233
1275
|
}
|
|
1234
1276
|
return y(() => {
|
|
1235
|
-
document.addEventListener("click",
|
|
1277
|
+
document.addEventListener("click", H, !0), m("settingsChange", { ...I.value }), Xn(!!I.value.enableCanvasProfiler);
|
|
1236
1278
|
}), x(() => {
|
|
1237
|
-
document.removeEventListener("click",
|
|
1238
|
-
}), (r, d) => (S(), o(e, null, [s("nav",
|
|
1239
|
-
s("div",
|
|
1279
|
+
document.removeEventListener("click", H, !0);
|
|
1280
|
+
}), (r, d) => (S(), o(e, null, [s("nav", tr, [
|
|
1281
|
+
s("div", nr, [(S(), o(e, null, w(p, (t) => s("div", {
|
|
1240
1282
|
key: t.id,
|
|
1241
1283
|
class: "tool-item"
|
|
1242
1284
|
}, [s("button", {
|
|
1243
1285
|
type: "button",
|
|
1244
|
-
class: g(["left-toolbar__button", { active:
|
|
1286
|
+
class: g(["left-toolbar__button", { active: te(t) }]),
|
|
1245
1287
|
title: t.title,
|
|
1246
1288
|
"aria-label": t.title,
|
|
1247
|
-
onClick: (e) =>
|
|
1248
|
-
onPointerdown: d[0] ||=
|
|
1249
|
-
onPointermove: d[1] ||=
|
|
1250
|
-
onPointerup: d[2] ||=
|
|
1289
|
+
onClick: (e) => R(t),
|
|
1290
|
+
onPointerdown: d[0] ||= F(() => {}, ["stop"]),
|
|
1291
|
+
onPointermove: d[1] ||= F(() => {}, ["stop"]),
|
|
1292
|
+
onPointerup: d[2] ||= F(() => {}, ["stop"])
|
|
1251
1293
|
}, [(S(), i(T(t.icon), {
|
|
1252
1294
|
class: "tool-icon",
|
|
1253
1295
|
"aria-hidden": "true"
|
|
1254
1296
|
})), t.children && t.children.length ? (S(), o("span", {
|
|
1255
1297
|
key: 0,
|
|
1256
1298
|
class: g(["corner-indicator", { open: _.value === t.id }]),
|
|
1257
|
-
onClick:
|
|
1299
|
+
onClick: F((e) => z(t.id), ["stop"]),
|
|
1258
1300
|
"aria-label": "展开子菜单"
|
|
1259
|
-
}, null, 10,
|
|
1260
|
-
default:
|
|
1301
|
+
}, null, 10, ir)) : a("", !0)], 42, rr), l(n, { name: "dropdown" }, {
|
|
1302
|
+
default: N(() => [_.value === t.id && t.children && t.children.length ? (S(), o("div", {
|
|
1261
1303
|
key: 0,
|
|
1262
1304
|
class: "tool-dropdown",
|
|
1263
|
-
onPointerdown: d[3] ||=
|
|
1264
|
-
onPointermove: d[4] ||=
|
|
1265
|
-
onPointerup: d[5] ||=
|
|
1305
|
+
onPointerdown: d[3] ||= F(() => {}, ["stop"]),
|
|
1306
|
+
onPointermove: d[4] ||= F(() => {}, ["stop"]),
|
|
1307
|
+
onPointerup: d[5] ||= F(() => {}, ["stop"])
|
|
1266
1308
|
}, [(S(!0), o(e, null, w(t.children, (e) => (S(), o("button", {
|
|
1267
1309
|
key: e.id,
|
|
1268
1310
|
type: "button",
|
|
@@ -1273,20 +1315,20 @@ var Zn = {
|
|
|
1273
1315
|
}, [(S(), i(T(e.icon), {
|
|
1274
1316
|
class: "tool-icon",
|
|
1275
1317
|
"aria-hidden": "true"
|
|
1276
|
-
}))], 10,
|
|
1318
|
+
}))], 10, ar))), 128))], 32)) : a("", !0)]),
|
|
1277
1319
|
_: 2
|
|
1278
1320
|
}, 1024)])), 64))]),
|
|
1279
1321
|
d[22] ||= s("span", { class: "left-toolbar__divider" }, null, -1),
|
|
1280
|
-
s("div",
|
|
1322
|
+
s("div", or, [s("button", {
|
|
1281
1323
|
type: "button",
|
|
1282
1324
|
class: "left-toolbar__button",
|
|
1283
1325
|
title: "放大",
|
|
1284
1326
|
"aria-label": "放大",
|
|
1285
1327
|
onClick: d[6] ||= (e) => r.$emit("zoomIn"),
|
|
1286
|
-
onPointerdown: d[7] ||=
|
|
1287
|
-
onPointermove: d[8] ||=
|
|
1288
|
-
onPointerup: d[9] ||=
|
|
1289
|
-
}, [l(O(
|
|
1328
|
+
onPointerdown: d[7] ||= F(() => {}, ["stop"]),
|
|
1329
|
+
onPointermove: d[8] ||= F(() => {}, ["stop"]),
|
|
1330
|
+
onPointerup: d[9] ||= F(() => {}, ["stop"])
|
|
1331
|
+
}, [l(O(_n), {
|
|
1290
1332
|
class: "tool-icon",
|
|
1291
1333
|
"aria-hidden": "true"
|
|
1292
1334
|
})], 32), s("button", {
|
|
@@ -1295,99 +1337,99 @@ var Zn = {
|
|
|
1295
1337
|
title: "缩小",
|
|
1296
1338
|
"aria-label": "缩小",
|
|
1297
1339
|
onClick: d[10] ||= (e) => r.$emit("zoomOut"),
|
|
1298
|
-
onPointerdown: d[11] ||=
|
|
1299
|
-
onPointermove: d[12] ||=
|
|
1300
|
-
onPointerup: d[13] ||=
|
|
1301
|
-
}, [l(O(
|
|
1340
|
+
onPointerdown: d[11] ||= F(() => {}, ["stop"]),
|
|
1341
|
+
onPointermove: d[12] ||= F(() => {}, ["stop"]),
|
|
1342
|
+
onPointerup: d[13] ||= F(() => {}, ["stop"])
|
|
1343
|
+
}, [l(O(bn), {
|
|
1302
1344
|
class: "tool-icon",
|
|
1303
1345
|
"aria-hidden": "true"
|
|
1304
1346
|
})], 32)]),
|
|
1305
1347
|
d[23] ||= s("span", { class: "left-toolbar__divider" }, null, -1),
|
|
1306
|
-
s("div",
|
|
1348
|
+
s("div", sr, [s("button", {
|
|
1307
1349
|
type: "button",
|
|
1308
1350
|
class: "left-toolbar__button",
|
|
1309
1351
|
title: u.isFullscreen ? "退出全屏" : "全屏显示",
|
|
1310
1352
|
"aria-label": u.isFullscreen ? "退出全屏" : "全屏显示",
|
|
1311
1353
|
onClick: d[14] ||= (e) => r.$emit("toggleFullscreen"),
|
|
1312
|
-
onPointerdown: d[15] ||=
|
|
1313
|
-
onPointermove: d[16] ||=
|
|
1314
|
-
onPointerup: d[17] ||=
|
|
1315
|
-
}, [u.isFullscreen ? (S(), i(O(
|
|
1354
|
+
onPointerdown: d[15] ||= F(() => {}, ["stop"]),
|
|
1355
|
+
onPointermove: d[16] ||= F(() => {}, ["stop"]),
|
|
1356
|
+
onPointerup: d[17] ||= F(() => {}, ["stop"])
|
|
1357
|
+
}, [u.isFullscreen ? (S(), i(O(En), {
|
|
1316
1358
|
key: 0,
|
|
1317
1359
|
class: "tool-icon",
|
|
1318
1360
|
"aria-hidden": "true"
|
|
1319
|
-
})) : (S(), i(O(
|
|
1361
|
+
})) : (S(), i(O(Cn), {
|
|
1320
1362
|
key: 1,
|
|
1321
1363
|
class: "tool-icon",
|
|
1322
1364
|
"aria-hidden": "true"
|
|
1323
|
-
}))], 40,
|
|
1365
|
+
}))], 40, cr)]),
|
|
1324
1366
|
d[24] ||= s("span", { class: "left-toolbar__divider" }, null, -1),
|
|
1325
|
-
s("div",
|
|
1367
|
+
s("div", lr, [s("button", {
|
|
1326
1368
|
type: "button",
|
|
1327
1369
|
class: "left-toolbar__button",
|
|
1328
1370
|
title: "设置",
|
|
1329
1371
|
"aria-label": "设置",
|
|
1330
1372
|
onClick: re,
|
|
1331
|
-
onPointerdown: d[18] ||=
|
|
1332
|
-
onPointermove: d[19] ||=
|
|
1333
|
-
onPointerup: d[20] ||=
|
|
1334
|
-
}, [l(O(
|
|
1373
|
+
onPointerdown: d[18] ||= F(() => {}, ["stop"]),
|
|
1374
|
+
onPointermove: d[19] ||= F(() => {}, ["stop"]),
|
|
1375
|
+
onPointerup: d[20] ||= F(() => {}, ["stop"])
|
|
1376
|
+
}, [l(O(kn), {
|
|
1335
1377
|
class: "tool-icon",
|
|
1336
1378
|
"aria-hidden": "true"
|
|
1337
1379
|
})], 32)])
|
|
1338
1380
|
]), (S(), i(t, { to: O(b) }, [l(n, { name: "overlay" }, {
|
|
1339
|
-
default:
|
|
1381
|
+
default: N(() => [v.value ? (S(), o("div", {
|
|
1340
1382
|
key: 0,
|
|
1341
1383
|
class: "settings-overlay",
|
|
1342
|
-
onClick:
|
|
1384
|
+
onClick: ie
|
|
1343
1385
|
}, [l(n, { name: "modal" }, {
|
|
1344
|
-
default:
|
|
1386
|
+
default: N(() => [s("div", {
|
|
1345
1387
|
class: "settings-modal",
|
|
1346
|
-
onClick: d[21] ||=
|
|
1388
|
+
onClick: d[21] ||= F(() => {}, ["stop"])
|
|
1347
1389
|
}, [
|
|
1348
1390
|
s("div", { class: "settings-header" }, [d[26] ||= s("div", { class: "header-left" }, [s("span", { class: "settings-title" }, "图表设置"), s("span", { class: "settings-subtitle" }, "个性化配置")], -1), s("div", { class: "header-right" }, [s("button", {
|
|
1349
1391
|
class: "settings-close",
|
|
1350
|
-
onClick:
|
|
1392
|
+
onClick: ie
|
|
1351
1393
|
}, [...d[25] ||= [s("svg", {
|
|
1352
1394
|
viewBox: "0 0 24 24",
|
|
1353
1395
|
fill: "none",
|
|
1354
1396
|
stroke: "currentColor",
|
|
1355
1397
|
"stroke-width": "2"
|
|
1356
1398
|
}, [s("path", { d: "M18 6L6 18M6 6l12 12" })], -1)]])])]),
|
|
1357
|
-
s("div",
|
|
1399
|
+
s("div", ur, [E.value.length > 0 ? (S(), o(e, { key: 0 }, [d[27] ||= s("div", { class: "settings-section-divider" }, [s("span", { class: "settings-section-label" }, "主图设置")], -1), (S(!0), o(e, null, w(E.value, (t) => (S(), o("div", {
|
|
1358
1400
|
key: t.key,
|
|
1359
1401
|
class: "settings-item"
|
|
1360
|
-
}, [s("label",
|
|
1402
|
+
}, [s("label", dr, [s("span", null, D(t.label), 1), t.type === "boolean" ? P((S(), o("input", {
|
|
1361
1403
|
key: 0,
|
|
1362
1404
|
type: "checkbox",
|
|
1363
1405
|
class: "settings-checkbox",
|
|
1364
1406
|
"onUpdate:modelValue": (e) => L.value[t.key] = e
|
|
1365
|
-
}, null, 8,
|
|
1407
|
+
}, null, 8, fr)), [[k, L.value[t.key]]]) : t.type === "select" && t.options ? P((S(), o("select", {
|
|
1366
1408
|
key: 1,
|
|
1367
1409
|
class: "settings-select",
|
|
1368
1410
|
"onUpdate:modelValue": (e) => L.value[t.key] = e
|
|
1369
1411
|
}, [(S(!0), o(e, null, w(t.options, (e) => (S(), o("option", {
|
|
1370
1412
|
key: e.value,
|
|
1371
1413
|
value: e.value
|
|
1372
|
-
}, D(e.label), 9,
|
|
1414
|
+
}, D(e.label), 9, mr))), 128))], 8, pr)), [[A, L.value[t.key]]]) : a("", !0)])]))), 128))], 64)) : a("", !0), j.value.length > 0 ? (S(), o(e, { key: 1 }, [d[28] ||= s("div", { class: "settings-section-divider" }, [s("span", { class: "settings-section-label" }, "实验性 / 调试设置")], -1), (S(!0), o(e, null, w(j.value, (t) => (S(), o("div", {
|
|
1373
1415
|
key: t.key,
|
|
1374
1416
|
class: "settings-item experimental"
|
|
1375
|
-
}, [s("label",
|
|
1417
|
+
}, [s("label", hr, [s("span", null, D(t.label), 1), t.type === "boolean" ? P((S(), o("input", {
|
|
1376
1418
|
key: 0,
|
|
1377
1419
|
type: "checkbox",
|
|
1378
1420
|
class: "settings-checkbox",
|
|
1379
1421
|
"onUpdate:modelValue": (e) => L.value[t.key] = e
|
|
1380
|
-
}, null, 8,
|
|
1422
|
+
}, null, 8, gr)), [[k, L.value[t.key]]]) : t.type === "select" && t.options ? P((S(), o("select", {
|
|
1381
1423
|
key: 1,
|
|
1382
1424
|
class: "settings-select",
|
|
1383
1425
|
"onUpdate:modelValue": (e) => L.value[t.key] = e
|
|
1384
1426
|
}, [(S(!0), o(e, null, w(t.options, (e) => (S(), o("option", {
|
|
1385
1427
|
key: e.value,
|
|
1386
1428
|
value: e.value
|
|
1387
|
-
}, D(e.label), 9,
|
|
1429
|
+
}, D(e.label), 9, vr))), 128))], 8, _r)), [[A, L.value[t.key]]]) : a("", !0)])]))), 128))], 64)) : a("", !0)]),
|
|
1388
1430
|
s("div", { class: "settings-footer" }, [s("button", {
|
|
1389
1431
|
class: "settings-btn reset",
|
|
1390
|
-
onClick:
|
|
1432
|
+
onClick: B
|
|
1391
1433
|
}, [...d[29] ||= [s("svg", {
|
|
1392
1434
|
viewBox: "0 0 24 24",
|
|
1393
1435
|
fill: "none",
|
|
@@ -1395,7 +1437,7 @@ var Zn = {
|
|
|
1395
1437
|
"stroke-width": "2"
|
|
1396
1438
|
}, [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", { class: "footer-right" }, [s("button", {
|
|
1397
1439
|
class: "settings-btn cancel",
|
|
1398
|
-
onClick:
|
|
1440
|
+
onClick: ie
|
|
1399
1441
|
}, "取消"), s("button", {
|
|
1400
1442
|
class: "settings-btn confirm",
|
|
1401
1443
|
onClick: V
|
|
@@ -1411,10 +1453,10 @@ var Zn = {
|
|
|
1411
1453
|
_: 1
|
|
1412
1454
|
})], 8, ["to"]))], 64));
|
|
1413
1455
|
}
|
|
1414
|
-
}), [["__scopeId", "data-v-35cfe78e"]]),
|
|
1456
|
+
}), [["__scopeId", "data-v-35cfe78e"]]), br = ["data-theme"], xr = {
|
|
1415
1457
|
class: "pane-separator-layer",
|
|
1416
1458
|
"aria-hidden": "true"
|
|
1417
|
-
},
|
|
1459
|
+
}, Sr = 4, Cr = /* @__PURE__ */ q(/* @__PURE__ */ u({
|
|
1418
1460
|
__name: "KLineChart",
|
|
1419
1461
|
props: {
|
|
1420
1462
|
semanticConfig: {},
|
|
@@ -1434,7 +1476,7 @@ var Zn = {
|
|
|
1434
1476
|
},
|
|
1435
1477
|
emits: ["zoomLevelChange", "toggleFullscreen"],
|
|
1436
1478
|
setup(n, { expose: c, emit: u }) {
|
|
1437
|
-
let d = n, f = C(null), p = C(null), m = C(null), v = C(null), b = C(null), T = C(null), D = C(null), k = E(null), A = E(null),
|
|
1479
|
+
let d = n, f = C(null), p = C(null), m = C(null), v = C(null), b = C(null), T = C(null), D = C(null), k = E(null), A = E(null), j = re({
|
|
1438
1480
|
initialZoomLevel: d.initialZoomLevel ?? 1,
|
|
1439
1481
|
minKWidth: d.minKWidth,
|
|
1440
1482
|
maxKWidth: d.maxKWidth,
|
|
@@ -1442,28 +1484,28 @@ var Zn = {
|
|
|
1442
1484
|
rightAxisWidth: d.rightAxisWidth,
|
|
1443
1485
|
priceLabelWidth: d.priceLabelWidth
|
|
1444
1486
|
}), N = C("light");
|
|
1445
|
-
|
|
1487
|
+
j.actions.setZoomState(j.state.zoomLevel, B(j.state.zoomLevel, {
|
|
1446
1488
|
minKWidth: d.minKWidth,
|
|
1447
1489
|
maxKWidth: d.maxKWidth,
|
|
1448
1490
|
zoomLevelCount: d.zoomLevels,
|
|
1449
|
-
dpr:
|
|
1450
|
-
}),
|
|
1491
|
+
dpr: j.state.viewportDpr
|
|
1492
|
+
}), ie(B(j.state.zoomLevel, {
|
|
1451
1493
|
minKWidth: d.minKWidth,
|
|
1452
1494
|
maxKWidth: d.maxKWidth,
|
|
1453
1495
|
zoomLevelCount: d.zoomLevels,
|
|
1454
|
-
dpr:
|
|
1455
|
-
}),
|
|
1456
|
-
let P = r(() =>
|
|
1496
|
+
dpr: j.state.viewportDpr
|
|
1497
|
+
}), j.state.viewportDpr)), r(() => j.state.dataLength), r(() => j.state.viewportDpr);
|
|
1498
|
+
let P = r(() => j.state.zoomLevel), F = r(() => j.state.kWidth), ee = r(() => j.state.kGap), I = r(() => j.state.paneRatios), L = r(() => j.state.selectedDrawingId), te = r(() => j.state.dataVersion);
|
|
1457
1499
|
function U() {
|
|
1458
1500
|
k.value?.scheduleDraw();
|
|
1459
1501
|
}
|
|
1460
|
-
function
|
|
1502
|
+
function se(e) {
|
|
1461
1503
|
if (k.value?.updateSettings(e), e.performanceTest10kKlines) {
|
|
1462
|
-
let e =
|
|
1463
|
-
console.time("updateData-10k"), k.value?.updateData(e), console.timeEnd("updateData-10k"),
|
|
1504
|
+
let e = le();
|
|
1505
|
+
console.time("updateData-10k"), k.value?.updateData(e), console.timeEnd("updateData-10k"), j.actions.setDataLength(e.length), j.actions.bumpDataVersion();
|
|
1464
1506
|
} else A.value && k.value?.getData()?.length === 1e4 && A.value.applyConfig(d.semanticConfig);
|
|
1465
1507
|
}
|
|
1466
|
-
function
|
|
1508
|
+
function le() {
|
|
1467
1509
|
let e = [], t = (/* @__PURE__ */ new Date("2020-01-01")).getTime(), n = 3e3;
|
|
1468
1510
|
for (let r = 0; r < 1e4; r++) {
|
|
1469
1511
|
let i = t + r * 864e5, a = (Math.random() - .5) * 2 * .02 + 1e-4, o = n, s = o * (1 + a), c = Math.max(o, s) * (1 + Math.random() * .01), l = Math.min(o, s) * (1 - Math.random() * .01), u = Math.floor(1e6 + Math.random() * 5e6);
|
|
@@ -1478,36 +1520,36 @@ var Zn = {
|
|
|
1478
1520
|
}
|
|
1479
1521
|
return e;
|
|
1480
1522
|
}
|
|
1481
|
-
function
|
|
1523
|
+
function ue(e, t, n) {
|
|
1482
1524
|
let r = e.getBoundingClientRect();
|
|
1483
1525
|
return {
|
|
1484
1526
|
width: Math.max(t, Math.round(r.width)),
|
|
1485
1527
|
height: Math.max(n, Math.round(r.height))
|
|
1486
1528
|
};
|
|
1487
1529
|
}
|
|
1488
|
-
function
|
|
1530
|
+
function de(e) {
|
|
1489
1531
|
e && h(() => {
|
|
1490
1532
|
if (!e.isConnected) return;
|
|
1491
|
-
let t =
|
|
1533
|
+
let t = ue(e, 180, 80);
|
|
1492
1534
|
k.value?.interaction.setTooltipSize(t);
|
|
1493
1535
|
});
|
|
1494
1536
|
}
|
|
1495
|
-
function
|
|
1537
|
+
function fe(e) {
|
|
1496
1538
|
e && h(() => {
|
|
1497
|
-
e.isConnected && (
|
|
1539
|
+
e.isConnected && (_e.value = ue(e, 120, 60));
|
|
1498
1540
|
});
|
|
1499
1541
|
}
|
|
1500
|
-
let
|
|
1542
|
+
let W = C({
|
|
1501
1543
|
x: 0,
|
|
1502
1544
|
y: 0
|
|
1503
1545
|
}), G = C(!1), K = null;
|
|
1504
|
-
function
|
|
1546
|
+
function q() {
|
|
1505
1547
|
K = null;
|
|
1506
1548
|
}
|
|
1507
|
-
function
|
|
1549
|
+
function me(e) {
|
|
1508
1550
|
return K ||= e.getBoundingClientRect(), K;
|
|
1509
1551
|
}
|
|
1510
|
-
let
|
|
1552
|
+
let J = E({
|
|
1511
1553
|
crosshairPos: null,
|
|
1512
1554
|
crosshairIndex: null,
|
|
1513
1555
|
crosshairPrice: null,
|
|
@@ -1525,13 +1567,13 @@ var Zn = {
|
|
|
1525
1567
|
isHoveringPaneBoundary: !1,
|
|
1526
1568
|
hoveredPaneBoundaryId: null,
|
|
1527
1569
|
isHoveringRightAxis: !1
|
|
1528
|
-
}),
|
|
1570
|
+
}), Y = E(null), he = r(() => {
|
|
1529
1571
|
let e = L.value;
|
|
1530
|
-
return e ?
|
|
1531
|
-
}),
|
|
1572
|
+
return e ? j.state.drawings.find((t) => t.id === e) ?? null : null;
|
|
1573
|
+
}), ge = C([]), _e = C({
|
|
1532
1574
|
width: 220,
|
|
1533
1575
|
height: 120
|
|
1534
|
-
}),
|
|
1576
|
+
}), ve = r(() => {
|
|
1535
1577
|
let e = v.value, t = b.value;
|
|
1536
1578
|
return !e || !t ? {
|
|
1537
1579
|
x: 0,
|
|
@@ -1540,55 +1582,58 @@ var Zn = {
|
|
|
1540
1582
|
x: e.offsetLeft,
|
|
1541
1583
|
y: e.offsetTop
|
|
1542
1584
|
};
|
|
1543
|
-
}),
|
|
1544
|
-
let e =
|
|
1585
|
+
}), ye = r(() => J.value.hoveredMarkerData), be = r(() => J.value.hoveredCustomMarker), xe = r(() => J.value.isDragging), Se = r(() => J.value.isResizingPaneBoundary), Ce = r(() => J.value.isHoveringPaneBoundary), we = r(() => J.value.hoveredPaneBoundaryId), Te = r(() => J.value.isHoveringRightAxis), Ee = r(() => J.value.hoveredIndex), De = r(() => J.value.crosshairIndex), Oe = r(() => xe.value ? "grabbing" : Se.value || Ce.value ? "ns-resize" : Ee.value === null ? "crosshair" : "pointer"), ke = r(() => {
|
|
1586
|
+
let e = J.value.hoveredIndex;
|
|
1545
1587
|
if (typeof e != "number") return null;
|
|
1546
|
-
|
|
1588
|
+
te.value;
|
|
1547
1589
|
let t = k.value?.getData();
|
|
1548
1590
|
return t && e >= 0 && e < t.length ? t[e] : null;
|
|
1549
|
-
}),
|
|
1550
|
-
x:
|
|
1551
|
-
y:
|
|
1591
|
+
}), Ae = r(() => J.value.hoveredIndex), je = r(() => J.value.tooltipPos), Me = r(() => ({
|
|
1592
|
+
x: je.value.x + ve.value.x,
|
|
1593
|
+
y: je.value.y + ve.value.y
|
|
1594
|
+
})), Ne = r(() => ({
|
|
1595
|
+
left: `${Me.value.x}px`,
|
|
1596
|
+
top: `${Me.value.y}px`
|
|
1552
1597
|
})), Pe = r(() => ({
|
|
1553
|
-
|
|
1554
|
-
|
|
1598
|
+
x: W.value.x + ve.value.x,
|
|
1599
|
+
y: W.value.y + ve.value.y
|
|
1555
1600
|
})), Fe = r(() => ({
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
})), Ie = r(() => ({
|
|
1559
|
-
left: `${Fe.value.x}px`,
|
|
1560
|
-
top: `${Fe.value.y}px`
|
|
1561
|
-
})), Le = r(() => q.value.tooltipAnchorPlacement), Re = r(() => {
|
|
1601
|
+
left: `${Pe.value.x}px`,
|
|
1602
|
+
top: `${Pe.value.y}px`
|
|
1603
|
+
})), Ie = r(() => J.value.tooltipAnchorPlacement), Le = r(() => {
|
|
1562
1604
|
let e = k.value?.getViewport(), t = v.value, n = e?.plotWidth ?? (t ? t.clientWidth : 0);
|
|
1563
|
-
return
|
|
1564
|
-
}),
|
|
1605
|
+
return W.value.x + 12 + _e.value.width + 12 > n ? "left-bottom" : "right-bottom";
|
|
1606
|
+
}), Re = r(() => (te.value, k.value?.getData() ?? []));
|
|
1607
|
+
function ze(e) {
|
|
1608
|
+
Y.value?.setTool(e);
|
|
1609
|
+
}
|
|
1565
1610
|
function Be(e) {
|
|
1566
|
-
|
|
1611
|
+
let t = he.value;
|
|
1612
|
+
!t || !Y.value || (Y.value.updateDrawingStyle(t.id, e), j.actions.bumpDrawingVersion());
|
|
1567
1613
|
}
|
|
1568
|
-
function Ve(
|
|
1569
|
-
let
|
|
1570
|
-
!
|
|
1614
|
+
function Ve() {
|
|
1615
|
+
let e = he.value;
|
|
1616
|
+
!e || !Y.value || (Y.value.removeDrawing(e.id), j.actions.setSelectedDrawingId(null), j.actions.bumpDrawingVersion(), j.actions.setDrawings(Y.value.getDrawings()));
|
|
1571
1617
|
}
|
|
1572
|
-
function He() {
|
|
1573
|
-
|
|
1574
|
-
!e || !J.value || (J.value.removeDrawing(e.id), M.actions.setSelectedDrawingId(null), M.actions.bumpDrawingVersion(), M.actions.setDrawings(J.value.getDrawings()));
|
|
1618
|
+
function He(e) {
|
|
1619
|
+
k.value?.handlePointerEvent(e, { onPointerDown: (e, t) => Y.value?.onPointerDown(e, t) ? (j.actions.setDrawings(Y.value.getDrawings()), j.actions.bumpDrawingVersion(), !0) : !1 });
|
|
1575
1620
|
}
|
|
1576
1621
|
function Ue(e) {
|
|
1577
|
-
k.value?.handlePointerEvent(e, { onPointerDown: (e, t) => J.value?.onPointerDown(e, t) ? (M.actions.setDrawings(J.value.getDrawings()), M.actions.bumpDrawingVersion(), !0) : !1 });
|
|
1578
|
-
}
|
|
1579
|
-
function We(e) {
|
|
1580
1622
|
let t = v.value;
|
|
1581
1623
|
if (t) {
|
|
1582
|
-
let n =
|
|
1583
|
-
|
|
1624
|
+
let n = me(t);
|
|
1625
|
+
W.value = {
|
|
1584
1626
|
x: e.clientX - n.left,
|
|
1585
1627
|
y: e.clientY - n.top
|
|
1586
1628
|
};
|
|
1587
1629
|
}
|
|
1588
|
-
k.value?.handlePointerEvent(e, { onPointerMove: (e, t) =>
|
|
1630
|
+
k.value?.handlePointerEvent(e, { onPointerMove: (e, t) => Y.value?.onPointerMove(e, t) ? (j.actions.setDrawings(Y.value.getDrawings()), !0) : !1 });
|
|
1631
|
+
}
|
|
1632
|
+
function We(e) {
|
|
1633
|
+
k.value?.handlePointerEvent(e, { onPointerUp: (e, t) => Y.value?.onPointerUp(e, t) ? (j.actions.setDrawings(Y.value.getDrawings()), !0) : !1 });
|
|
1589
1634
|
}
|
|
1590
1635
|
function Ge(e) {
|
|
1591
|
-
k.value?.handlePointerEvent(e
|
|
1636
|
+
k.value?.handlePointerEvent(e);
|
|
1592
1637
|
}
|
|
1593
1638
|
function Ke(e) {
|
|
1594
1639
|
k.value?.handlePointerEvent(e);
|
|
@@ -1602,20 +1647,17 @@ var Zn = {
|
|
|
1602
1647
|
function Ye(e) {
|
|
1603
1648
|
k.value?.handlePointerEvent(e);
|
|
1604
1649
|
}
|
|
1605
|
-
function Xe(
|
|
1606
|
-
k.value?.handlePointerEvent(e);
|
|
1607
|
-
}
|
|
1608
|
-
function Ze() {
|
|
1650
|
+
function Xe() {
|
|
1609
1651
|
k.value?.handleScrollEvent();
|
|
1610
1652
|
}
|
|
1611
|
-
let
|
|
1653
|
+
let X = C([]), Ze = r(() => {
|
|
1612
1654
|
let e = [], t = /* @__PURE__ */ new Set();
|
|
1613
|
-
for (let n of
|
|
1655
|
+
for (let n of Q.value) t.has(n.indicatorId) || (t.add(n.indicatorId), e.push(n.indicatorId));
|
|
1614
1656
|
return e;
|
|
1615
|
-
}),
|
|
1616
|
-
function
|
|
1657
|
+
}), Qe = r(() => [...X.value, ...Ze.value]), Z = C({}), Q = C([]);
|
|
1658
|
+
function $e() {
|
|
1617
1659
|
let e = I.value.main ?? 3;
|
|
1618
|
-
return
|
|
1660
|
+
return Q.value.length === 0 ? [{
|
|
1619
1661
|
id: "main",
|
|
1620
1662
|
ratio: e,
|
|
1621
1663
|
visible: !0,
|
|
@@ -1625,83 +1667,83 @@ var Zn = {
|
|
|
1625
1667
|
ratio: e,
|
|
1626
1668
|
visible: !0,
|
|
1627
1669
|
role: "price"
|
|
1628
|
-
}, ...
|
|
1670
|
+
}, ...Q.value.map((e) => ({
|
|
1629
1671
|
id: e.id,
|
|
1630
1672
|
ratio: I.value[e.id] ?? 1,
|
|
1631
1673
|
visible: !0,
|
|
1632
1674
|
role: "indicator"
|
|
1633
1675
|
}))];
|
|
1634
1676
|
}
|
|
1635
|
-
function
|
|
1636
|
-
return { ...
|
|
1677
|
+
function et(e) {
|
|
1678
|
+
return { ...H[e].defaultParams };
|
|
1637
1679
|
}
|
|
1638
|
-
let
|
|
1639
|
-
function
|
|
1680
|
+
let tt = /* @__PURE__ */ new Map(), nt = /* @__PURE__ */ new Map();
|
|
1681
|
+
function rt(e, t) {
|
|
1640
1682
|
let n = oe({
|
|
1641
1683
|
paneId: e,
|
|
1642
1684
|
title: t,
|
|
1643
|
-
getTitleInfo: () =>
|
|
1685
|
+
getTitleInfo: () => ft(e)
|
|
1644
1686
|
});
|
|
1645
|
-
k.value?.useRenderer(n),
|
|
1687
|
+
k.value?.useRenderer(n), nt.set(e, n.name);
|
|
1646
1688
|
}
|
|
1647
|
-
function
|
|
1648
|
-
let t =
|
|
1649
|
-
t && (k.value?.removeRenderer(t),
|
|
1689
|
+
function it(e) {
|
|
1690
|
+
let t = nt.get(e);
|
|
1691
|
+
t && (k.value?.removeRenderer(t), nt.delete(e));
|
|
1650
1692
|
}
|
|
1651
|
-
function
|
|
1652
|
-
if (
|
|
1653
|
-
let n = t ??
|
|
1654
|
-
return r ? (
|
|
1693
|
+
function at(e = "VOLUME", t) {
|
|
1694
|
+
if (Q.value.length >= Sr) return !1;
|
|
1695
|
+
let n = t ?? et(e), r = k.value?.addIndicator(e, "sub", n);
|
|
1696
|
+
return r ? (rt(r, e), Q.value.push({
|
|
1655
1697
|
id: r,
|
|
1656
1698
|
indicatorId: e,
|
|
1657
1699
|
params: n
|
|
1658
1700
|
}), U(), !0) : !1;
|
|
1659
1701
|
}
|
|
1660
|
-
function
|
|
1661
|
-
let t =
|
|
1662
|
-
t !== -1 &&
|
|
1702
|
+
function ot(e) {
|
|
1703
|
+
let t = Q.value.findIndex((t) => t.id === e);
|
|
1704
|
+
t !== -1 && Q.value[t] && (it(e), k.value?.removeIndicator(e), Q.value.splice(t, 1));
|
|
1663
1705
|
}
|
|
1664
|
-
function
|
|
1665
|
-
for (let e of
|
|
1666
|
-
|
|
1706
|
+
function st() {
|
|
1707
|
+
for (let e of Q.value) k.value?.removeIndicator(e.id), it(e.id);
|
|
1708
|
+
Q.value = [], tt.clear(), nt.clear();
|
|
1667
1709
|
}
|
|
1668
|
-
function
|
|
1710
|
+
function ct() {
|
|
1669
1711
|
let e = d.semanticConfig, t = k.value;
|
|
1670
1712
|
if (!t) return;
|
|
1671
1713
|
let n = e.indicators?.main;
|
|
1672
|
-
if (n) for (let e of n) e.enabled && (
|
|
1714
|
+
if (n) for (let e of n) e.enabled && (X.value.includes(e.type) || X.value.push(e.type), e.params && (Z.value[e.type] = e.params), t.enableMainIndicator(e.type, e.params));
|
|
1673
1715
|
}
|
|
1674
|
-
|
|
1716
|
+
M([Qe, Z], ([e]) => {
|
|
1675
1717
|
let t = k.value;
|
|
1676
1718
|
t && (t.updateRendererConfig("mainIndicatorLegend", { indicators: {
|
|
1677
1719
|
MA: {
|
|
1678
1720
|
enabled: e.includes("MA"),
|
|
1679
|
-
params:
|
|
1721
|
+
params: Z.value.MA || {}
|
|
1680
1722
|
},
|
|
1681
1723
|
BOLL: {
|
|
1682
1724
|
enabled: e.includes("BOLL"),
|
|
1683
|
-
params:
|
|
1725
|
+
params: Z.value.BOLL || {}
|
|
1684
1726
|
},
|
|
1685
1727
|
EXPMA: {
|
|
1686
1728
|
enabled: e.includes("EXPMA"),
|
|
1687
|
-
params:
|
|
1729
|
+
params: Z.value.EXPMA || {}
|
|
1688
1730
|
},
|
|
1689
1731
|
ENE: {
|
|
1690
1732
|
enabled: e.includes("ENE"),
|
|
1691
|
-
params:
|
|
1733
|
+
params: Z.value.ENE || {}
|
|
1692
1734
|
}
|
|
1693
1735
|
} }), U());
|
|
1694
1736
|
}, { deep: !0 });
|
|
1695
|
-
function
|
|
1737
|
+
function lt() {
|
|
1696
1738
|
let e = k.value?.getSubPaneEntries() ?? [];
|
|
1697
|
-
|
|
1739
|
+
Q.value = [], nt.clear();
|
|
1698
1740
|
for (let t of e) {
|
|
1699
1741
|
let { paneId: e, indicatorId: n, params: r } = t, i = e.match(/^(.+)_(\d+)$/);
|
|
1700
1742
|
if (i) {
|
|
1701
1743
|
let [, e, t] = i, n = parseInt(t, 10);
|
|
1702
|
-
n >= (
|
|
1744
|
+
n >= (tt.get(e) ?? 0) && tt.set(e, n + 1);
|
|
1703
1745
|
}
|
|
1704
|
-
|
|
1746
|
+
rt(e, n), Q.value.push({
|
|
1705
1747
|
id: e,
|
|
1706
1748
|
indicatorId: n,
|
|
1707
1749
|
params: { ...r }
|
|
@@ -1709,33 +1751,33 @@ var Zn = {
|
|
|
1709
1751
|
}
|
|
1710
1752
|
U();
|
|
1711
1753
|
}
|
|
1712
|
-
function
|
|
1713
|
-
if (!
|
|
1714
|
-
let n =
|
|
1715
|
-
|
|
1716
|
-
let r =
|
|
1717
|
-
r !== -1 && (
|
|
1754
|
+
function ut(e, t) {
|
|
1755
|
+
if (!Q.value.find((t) => t.id === e)) return;
|
|
1756
|
+
let n = et(t);
|
|
1757
|
+
it(e), k.value?.replaceSubPaneIndicator(e, t, n), rt(e, t);
|
|
1758
|
+
let r = Q.value.findIndex((t) => t.id === e);
|
|
1759
|
+
r !== -1 && (Q.value[r] = {
|
|
1718
1760
|
id: e,
|
|
1719
1761
|
indicatorId: t,
|
|
1720
1762
|
params: n
|
|
1721
1763
|
});
|
|
1722
1764
|
}
|
|
1723
|
-
let
|
|
1724
|
-
function
|
|
1725
|
-
let t =
|
|
1765
|
+
let dt = /* @__PURE__ */ new Map();
|
|
1766
|
+
function ft(e) {
|
|
1767
|
+
let t = Q.value.find((t) => t.id === e);
|
|
1726
1768
|
if (!t) return null;
|
|
1727
1769
|
let n = k.value?.getData();
|
|
1728
1770
|
if (!n || n.length === 0) return null;
|
|
1729
|
-
let r =
|
|
1771
|
+
let r = De.value, i = n.length, a = dt.get(e);
|
|
1730
1772
|
if (a && a.idx === r && a.dataLen === i) return a.result;
|
|
1731
|
-
let o =
|
|
1732
|
-
return
|
|
1773
|
+
let o = H[t.indicatorId], s = t.params, c = k.value?.plugin, l = c ? o.getTitleInfo(n, r, s, c, e) : null;
|
|
1774
|
+
return dt.set(e, {
|
|
1733
1775
|
idx: r,
|
|
1734
1776
|
dataLen: i,
|
|
1735
1777
|
result: l
|
|
1736
1778
|
}), l;
|
|
1737
1779
|
}
|
|
1738
|
-
function
|
|
1780
|
+
function pt(e, t) {
|
|
1739
1781
|
let n = k.value;
|
|
1740
1782
|
if (n) {
|
|
1741
1783
|
if ([
|
|
@@ -1758,94 +1800,94 @@ var Zn = {
|
|
|
1758
1800
|
"STRUCTURE",
|
|
1759
1801
|
"ZONES"
|
|
1760
1802
|
].includes(e)) {
|
|
1761
|
-
let r =
|
|
1762
|
-
if (t && !r) n.addIndicator(e, "main",
|
|
1803
|
+
let r = X.value.find((t) => t === e);
|
|
1804
|
+
if (t && !r) n.addIndicator(e, "main", Z.value[e]), X.value.push(e);
|
|
1763
1805
|
else if (!t && r) {
|
|
1764
1806
|
let t = e.toUpperCase();
|
|
1765
|
-
n.removeIndicator(t),
|
|
1807
|
+
n.removeIndicator(t), X.value = X.value.filter((t) => t !== e);
|
|
1766
1808
|
}
|
|
1767
1809
|
return;
|
|
1768
1810
|
}
|
|
1769
|
-
if (
|
|
1811
|
+
if (ae.includes(e)) {
|
|
1770
1812
|
if (t) {
|
|
1771
|
-
if (
|
|
1772
|
-
let t = n.addIndicator(e, "sub",
|
|
1773
|
-
if (t)
|
|
1813
|
+
if (Q.value.find((t) => t.indicatorId === e) || Q.value.length >= Sr) return;
|
|
1814
|
+
let t = n.addIndicator(e, "sub", Z.value[e]);
|
|
1815
|
+
if (t) rt(t, e), Q.value.push({
|
|
1774
1816
|
id: t,
|
|
1775
1817
|
indicatorId: e,
|
|
1776
|
-
params: { ...
|
|
1818
|
+
params: { ...Z.value[e] }
|
|
1777
1819
|
});
|
|
1778
|
-
else if (
|
|
1779
|
-
let t =
|
|
1780
|
-
|
|
1820
|
+
else if (Q.value.length > 0) {
|
|
1821
|
+
let t = Q.value[Q.value.length - 1];
|
|
1822
|
+
ut(t.id, e);
|
|
1781
1823
|
}
|
|
1782
|
-
} else
|
|
1783
|
-
n.removeIndicator(e.id),
|
|
1784
|
-
}),
|
|
1824
|
+
} else Q.value.filter((t) => t.indicatorId === e).forEach((e) => {
|
|
1825
|
+
n.removeIndicator(e.id), it(e.id);
|
|
1826
|
+
}), Q.value = Q.value.filter((t) => t.indicatorId !== e);
|
|
1785
1827
|
U();
|
|
1786
1828
|
}
|
|
1787
1829
|
}
|
|
1788
1830
|
}
|
|
1789
|
-
function
|
|
1790
|
-
if (
|
|
1831
|
+
function mt(e, t) {
|
|
1832
|
+
if (Z.value[e] = t, e === "MA" || e === "BOLL" || e === "EXPMA" || e === "ENE") {
|
|
1791
1833
|
k.value?.updateMainIndicatorParams(e, t), U();
|
|
1792
1834
|
return;
|
|
1793
1835
|
}
|
|
1794
|
-
if (
|
|
1795
|
-
|
|
1836
|
+
if (ae.includes(e)) {
|
|
1837
|
+
Q.value.filter((t) => t.indicatorId === e).forEach((e) => {
|
|
1796
1838
|
k.value?.updateSubPaneParams(e.id, t), e.params = { ...t };
|
|
1797
1839
|
}), U();
|
|
1798
1840
|
return;
|
|
1799
1841
|
}
|
|
1800
1842
|
U();
|
|
1801
1843
|
}
|
|
1802
|
-
function
|
|
1803
|
-
if (!e.length ||
|
|
1804
|
-
let t = e.filter((e) =>
|
|
1844
|
+
function ht(e) {
|
|
1845
|
+
if (!e.length || Q.value.length <= 1) return;
|
|
1846
|
+
let t = e.filter((e) => ae.includes(e));
|
|
1805
1847
|
if (!t.length) return;
|
|
1806
|
-
let n = new Map(
|
|
1848
|
+
let n = new Map(Q.value.map((e) => [e.indicatorId, e])), r = [];
|
|
1807
1849
|
for (let e of t) {
|
|
1808
1850
|
let t = n.get(e);
|
|
1809
1851
|
t && (r.push(t), n.delete(e));
|
|
1810
1852
|
}
|
|
1811
1853
|
if (r.length === 0) return;
|
|
1812
|
-
for (let e of
|
|
1813
|
-
let i =
|
|
1854
|
+
for (let e of Q.value) n.has(e.indicatorId) && (r.push(e), n.delete(e.indicatorId));
|
|
1855
|
+
let i = Q.value.map((e) => e.id), a = r.map((e) => e.id);
|
|
1814
1856
|
if (i.join("|") === a.join("|")) return;
|
|
1815
|
-
|
|
1857
|
+
Q.value = r;
|
|
1816
1858
|
let o = k.value;
|
|
1817
|
-
o && o.updatePaneLayout(
|
|
1859
|
+
o && o.updatePaneLayout($e());
|
|
1818
1860
|
}
|
|
1819
|
-
let
|
|
1820
|
-
function
|
|
1861
|
+
let gt = r(() => d.rightAxisWidth + d.priceLabelWidth), _t = j.computed.totalWidth;
|
|
1862
|
+
function vt() {
|
|
1821
1863
|
let e = v.value, t = k.value;
|
|
1822
1864
|
if (!e || !t) return;
|
|
1823
1865
|
let n = t.getData()?.length ?? 0;
|
|
1824
1866
|
if (n === 0) return;
|
|
1825
|
-
let r = t.getCurrentDpr(), { unitPx: i, startXPx: a } =
|
|
1867
|
+
let r = t.getCurrentDpr(), { unitPx: i, startXPx: a } = V(F.value, ee.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));
|
|
1826
1868
|
e.scrollLeft = Math.round(c * r) / r, U();
|
|
1827
1869
|
}
|
|
1828
|
-
function
|
|
1870
|
+
function yt(e, t) {
|
|
1829
1871
|
let n = k.value;
|
|
1830
1872
|
n && n.zoomToLevel(e, t);
|
|
1831
1873
|
}
|
|
1832
1874
|
c({
|
|
1833
1875
|
scheduleRender: U,
|
|
1834
|
-
scrollToRight:
|
|
1835
|
-
addSubPane:
|
|
1836
|
-
removeSubPane:
|
|
1837
|
-
switchSubIndicator:
|
|
1838
|
-
clearAllSubPanes:
|
|
1876
|
+
scrollToRight: vt,
|
|
1877
|
+
addSubPane: at,
|
|
1878
|
+
removeSubPane: ot,
|
|
1879
|
+
switchSubIndicator: ut,
|
|
1880
|
+
clearAllSubPanes: st,
|
|
1839
1881
|
get plugin() {
|
|
1840
1882
|
return k.value?.plugin;
|
|
1841
1883
|
},
|
|
1842
|
-
zoomToLevel:
|
|
1843
|
-
zoomIn: (e) =>
|
|
1844
|
-
zoomOut: (e) =>
|
|
1884
|
+
zoomToLevel: yt,
|
|
1885
|
+
zoomIn: (e) => yt(P.value + 1, e),
|
|
1886
|
+
zoomOut: (e) => yt(P.value - 1, e),
|
|
1845
1887
|
getZoomLevel: () => P.value,
|
|
1846
1888
|
getZoomLevelCount: () => k.value?.getZoomLevelCount() ?? 10
|
|
1847
1889
|
});
|
|
1848
|
-
function
|
|
1890
|
+
function bt(e) {
|
|
1849
1891
|
let t = (e) => {
|
|
1850
1892
|
e.preventDefault();
|
|
1851
1893
|
let t = k.value;
|
|
@@ -1853,8 +1895,8 @@ var Zn = {
|
|
|
1853
1895
|
};
|
|
1854
1896
|
return e.addEventListener("wheel", t, { passive: !1 }), t;
|
|
1855
1897
|
}
|
|
1856
|
-
function
|
|
1857
|
-
return new
|
|
1898
|
+
function xt(e, t, n, r) {
|
|
1899
|
+
return new z({
|
|
1858
1900
|
container: e,
|
|
1859
1901
|
canvasLayer: t,
|
|
1860
1902
|
rightAxisLayer: n,
|
|
@@ -1875,11 +1917,11 @@ var Zn = {
|
|
|
1875
1917
|
initialZoomLevel: d.initialZoomLevel
|
|
1876
1918
|
});
|
|
1877
1919
|
}
|
|
1878
|
-
function
|
|
1920
|
+
function St(e) {
|
|
1879
1921
|
e.setOnPaneLayoutChange(() => {
|
|
1880
|
-
|
|
1922
|
+
q();
|
|
1881
1923
|
let t = e.getPaneRenderers(), n = v.value && parseInt(getComputedStyle(v.value).borderTopWidth) || 0;
|
|
1882
|
-
|
|
1924
|
+
ge.value = t.slice(0, -1).map((e) => {
|
|
1883
1925
|
let t = e.getPane();
|
|
1884
1926
|
return {
|
|
1885
1927
|
id: t.id,
|
|
@@ -1889,12 +1931,12 @@ var Zn = {
|
|
|
1889
1931
|
});
|
|
1890
1932
|
let t = e.paneRatios.subscribe(() => {
|
|
1891
1933
|
let t = e.paneRatios.peek();
|
|
1892
|
-
|
|
1934
|
+
j.actions.setPaneRatios({ ...t });
|
|
1893
1935
|
}), n = e.viewport.subscribe(() => {
|
|
1894
1936
|
let t = e.viewport.peek();
|
|
1895
|
-
|
|
1937
|
+
j.state.viewportDpr !== t.dpr && j.actions.setViewportDpr(t.dpr), j.state.viewWidth !== t.plotWidth && j.actions.setViewWidth(t.plotWidth), (j.state.zoomLevel !== t.zoomLevel || j.state.kWidth !== t.kWidth || j.state.kGap !== t.kGap) && j.actions.setZoomState(t.zoomLevel, t.kWidth, t.kGap);
|
|
1896
1938
|
let n = t.desiredScrollLeft;
|
|
1897
|
-
n !== void 0 && n !== v.value?.scrollLeft && (
|
|
1939
|
+
n !== void 0 && n !== v.value?.scrollLeft && (q(), h(() => {
|
|
1898
1940
|
let t = v.value;
|
|
1899
1941
|
if (!t) return;
|
|
1900
1942
|
let r = Math.max(0, t.scrollWidth - t.clientWidth), i = Math.min(Math.max(0, n), r), a = e.getCurrentDpr();
|
|
@@ -1902,7 +1944,7 @@ var Zn = {
|
|
|
1902
1944
|
}));
|
|
1903
1945
|
}), r = e.data.subscribe(() => {
|
|
1904
1946
|
let t = e.data.peek();
|
|
1905
|
-
|
|
1947
|
+
j.actions.setDataLength(t.length), j.actions.bumpDataVersion();
|
|
1906
1948
|
}), i = e.theme.subscribe(() => {
|
|
1907
1949
|
N.value = e.theme.peek();
|
|
1908
1950
|
});
|
|
@@ -1910,40 +1952,40 @@ var Zn = {
|
|
|
1910
1952
|
n(), r(), t(), i();
|
|
1911
1953
|
});
|
|
1912
1954
|
}
|
|
1913
|
-
function
|
|
1955
|
+
function wt(e) {
|
|
1914
1956
|
let t = D.value?.getSettings() ?? { showVolumePriceMarkers: !0 };
|
|
1915
1957
|
if (e.updateSettings(t), t.performanceTest10kKlines) {
|
|
1916
|
-
let t =
|
|
1958
|
+
let t = le();
|
|
1917
1959
|
console.time("updateData-10k"), e.updateData(t), console.timeEnd("updateData-10k");
|
|
1918
1960
|
}
|
|
1919
1961
|
}
|
|
1920
|
-
function
|
|
1921
|
-
|
|
1962
|
+
function Tt(e) {
|
|
1963
|
+
Y.value = new ce(e), Y.value.setCallbacks({
|
|
1922
1964
|
onDrawingCreated: (e) => {
|
|
1923
|
-
|
|
1965
|
+
j.actions.setDrawings([...j.state.drawings, e]), j.actions.setSelectedDrawingId(e.id);
|
|
1924
1966
|
},
|
|
1925
1967
|
onToolChange: () => {},
|
|
1926
1968
|
onDrawingSelected: (e) => {
|
|
1927
|
-
|
|
1969
|
+
j.actions.setSelectedDrawingId(e?.id ?? null);
|
|
1928
1970
|
}
|
|
1929
1971
|
});
|
|
1930
1972
|
}
|
|
1931
|
-
function
|
|
1973
|
+
function Et(e) {
|
|
1932
1974
|
e.interaction.setTooltipAnchorPositioning(G.value), e.interaction.setOnInteractionChange((e) => {
|
|
1933
|
-
|
|
1975
|
+
J.value = e;
|
|
1934
1976
|
}), e.interaction.setOnPinchZoom((t, n) => {
|
|
1935
1977
|
if (!e) return;
|
|
1936
1978
|
let r = v.value;
|
|
1937
1979
|
if (!r) return;
|
|
1938
1980
|
let i = n - r.getBoundingClientRect().left;
|
|
1939
1981
|
e.handlePinchZoom(t, i);
|
|
1940
|
-
}),
|
|
1982
|
+
}), J.value = e.interaction.getInteractionSnapshot(), j.actions.setViewportDpr(e.getCurrentDpr()), e.resize();
|
|
1941
1983
|
}
|
|
1942
|
-
function
|
|
1943
|
-
|
|
1984
|
+
function Dt(e) {
|
|
1985
|
+
ne(d.dataFetcher), A.value = new R(e), A.value.on("config:error", (e) => {
|
|
1944
1986
|
console.error("Semantic config error:", e);
|
|
1945
1987
|
}), A.value.on("config:ready", () => {
|
|
1946
|
-
|
|
1988
|
+
ct(), lt(), h(() => vt());
|
|
1947
1989
|
}), A.value.applyConfig(d.semanticConfig).then((e) => {
|
|
1948
1990
|
e && !e.success && console.error("Semantic config apply failed:", e.errors);
|
|
1949
1991
|
});
|
|
@@ -1952,18 +1994,18 @@ var Zn = {
|
|
|
1952
1994
|
G.value = !1;
|
|
1953
1995
|
let e = v.value, t = p.value, n = m.value, r = f.value;
|
|
1954
1996
|
if (!e || !t || !n || !r) return;
|
|
1955
|
-
let i =
|
|
1956
|
-
k.value = a,
|
|
1997
|
+
let i = bt(e), a = xt(e, t, n, r);
|
|
1998
|
+
k.value = a, St(a), a.applyRenderState(j.state.kWidth, j.state.kGap, j.state.zoomLevel), wt(a), Tt(a), Et(a), Dt(a), a.__onWheel = i;
|
|
1957
1999
|
}), x(() => {
|
|
1958
2000
|
let e = k.value;
|
|
1959
2001
|
if (e) {
|
|
1960
2002
|
let t = e.__onWheel, n = v.value;
|
|
1961
2003
|
t && n && n.removeEventListener("wheel", t), e.destroy();
|
|
1962
2004
|
}
|
|
1963
|
-
k.value = null,
|
|
1964
|
-
}),
|
|
2005
|
+
k.value = null, Y.value = null;
|
|
2006
|
+
}), M(() => d.yPaddingPx, (e) => {
|
|
1965
2007
|
k.value?.updateOptions({ yPaddingPx: e });
|
|
1966
|
-
}),
|
|
2008
|
+
}), M(() => d.semanticConfig, async (e, t) => {
|
|
1967
2009
|
if (e && e !== t) {
|
|
1968
2010
|
let t = await A.value?.applyConfig(e);
|
|
1969
2011
|
t && !t.success && console.error("Semantic config apply failed:", t.errors);
|
|
@@ -1972,28 +2014,28 @@ var Zn = {
|
|
|
1972
2014
|
class: "chart-wrapper",
|
|
1973
2015
|
"data-theme": N.value
|
|
1974
2016
|
}, [s("div", { class: g(["chart-stage", {
|
|
1975
|
-
"is-dragging":
|
|
1976
|
-
"is-resizing-pane":
|
|
1977
|
-
"is-hovering-pane-separator":
|
|
1978
|
-
"is-hovering-right-axis":
|
|
1979
|
-
"is-hovering-kline":
|
|
1980
|
-
}]) }, [l(
|
|
2017
|
+
"is-dragging": xe.value,
|
|
2018
|
+
"is-resizing-pane": Se.value,
|
|
2019
|
+
"is-hovering-pane-separator": Ce.value,
|
|
2020
|
+
"is-hovering-right-axis": Te.value,
|
|
2021
|
+
"is-hovering-kline": Ee.value !== null
|
|
2022
|
+
}]) }, [l(yr, {
|
|
1981
2023
|
ref_key: "toolbarRef",
|
|
1982
2024
|
ref: D,
|
|
1983
2025
|
"is-fullscreen": n.isFullscreen,
|
|
1984
|
-
onSelectTool:
|
|
2026
|
+
onSelectTool: ze,
|
|
1985
2027
|
onToggleFullscreen: c[0] ||= (e) => r.$emit("toggleFullscreen"),
|
|
1986
|
-
onZoomIn: c[1] ||= (e) =>
|
|
1987
|
-
onZoomOut: c[2] ||= (e) =>
|
|
1988
|
-
onSettingsChange:
|
|
2028
|
+
onZoomIn: c[1] ||= (e) => yt(P.value + 1),
|
|
2029
|
+
onZoomOut: c[2] ||= (e) => yt(P.value - 1),
|
|
2030
|
+
onSettingsChange: se
|
|
1989
2031
|
}, null, 8, ["is-fullscreen"]), s("div", {
|
|
1990
2032
|
class: "chart-main",
|
|
1991
2033
|
ref_key: "chartMainRef",
|
|
1992
2034
|
ref: b
|
|
1993
2035
|
}, [
|
|
1994
|
-
s("div",
|
|
2036
|
+
s("div", xr, [(S(!0), o(e, null, w(ge.value, (e) => (S(), o("div", {
|
|
1995
2037
|
key: e.id,
|
|
1996
|
-
class: g(["pane-separator-line", { "is-active":
|
|
2038
|
+
class: g(["pane-separator-line", { "is-active": we.value === e.id }]),
|
|
1997
2039
|
style: _({ top: `${e.top}px` })
|
|
1998
2040
|
}, null, 6))), 128))]),
|
|
1999
2041
|
s("div", {
|
|
@@ -2003,17 +2045,17 @@ var Zn = {
|
|
|
2003
2045
|
}, null, 512),
|
|
2004
2046
|
s("div", {
|
|
2005
2047
|
class: "chart-container",
|
|
2006
|
-
style: _({ cursor:
|
|
2048
|
+
style: _({ cursor: Oe.value }),
|
|
2007
2049
|
ref_key: "containerRef",
|
|
2008
2050
|
ref: v,
|
|
2009
|
-
onScrollPassive:
|
|
2010
|
-
onPointerdown:
|
|
2011
|
-
onPointermove:
|
|
2012
|
-
onPointerup:
|
|
2013
|
-
onPointerleave:
|
|
2051
|
+
onScrollPassive: Xe,
|
|
2052
|
+
onPointerdown: He,
|
|
2053
|
+
onPointermove: Ue,
|
|
2054
|
+
onPointerup: We,
|
|
2055
|
+
onPointerleave: Ge
|
|
2014
2056
|
}, [s("div", {
|
|
2015
2057
|
class: "scroll-content",
|
|
2016
|
-
style: _({ width: O(
|
|
2058
|
+
style: _({ width: O(_t) + "px" })
|
|
2017
2059
|
}, [s("div", {
|
|
2018
2060
|
class: "canvas-layer",
|
|
2019
2061
|
ref_key: "canvasLayerRef",
|
|
@@ -2022,35 +2064,35 @@ var Zn = {
|
|
|
2022
2064
|
class: "x-axis-canvas",
|
|
2023
2065
|
ref_key: "xAxisCanvasRef",
|
|
2024
2066
|
ref: f
|
|
2025
|
-
}, null, 512),
|
|
2067
|
+
}, null, 512), he.value ? (S(), i(pe, {
|
|
2026
2068
|
key: 0,
|
|
2027
|
-
drawing:
|
|
2028
|
-
onUpdateStyle:
|
|
2029
|
-
onDelete:
|
|
2069
|
+
drawing: he.value,
|
|
2070
|
+
onUpdateStyle: Be,
|
|
2071
|
+
onDelete: Ve
|
|
2030
2072
|
}, null, 8, ["drawing"])) : a("", !0)], 512)], 4)], 36),
|
|
2031
2073
|
T.value ? (S(), i(t, {
|
|
2032
2074
|
key: 0,
|
|
2033
2075
|
to: T.value
|
|
2034
2076
|
}, [
|
|
2035
|
-
|
|
2077
|
+
ke.value ? (S(), o("div", {
|
|
2036
2078
|
key: 0,
|
|
2037
2079
|
class: g(["tooltip-anchor kline-tooltip-anchor", { "use-anchor": G.value }]),
|
|
2038
|
-
style: _(
|
|
2080
|
+
style: _(Ne.value)
|
|
2039
2081
|
}, null, 6)) : a("", !0),
|
|
2040
|
-
|
|
2082
|
+
ye.value || be.value ? (S(), o("div", {
|
|
2041
2083
|
key: 1,
|
|
2042
2084
|
class: g(["tooltip-anchor marker-tooltip-anchor", { "use-anchor": G.value }]),
|
|
2043
|
-
style: _(
|
|
2085
|
+
style: _(Fe.value)
|
|
2044
2086
|
}, null, 6)) : a("", !0),
|
|
2045
|
-
|
|
2087
|
+
ke.value ? (S(), i(Bt, {
|
|
2046
2088
|
key: 2,
|
|
2047
|
-
k:
|
|
2048
|
-
index:
|
|
2049
|
-
data:
|
|
2050
|
-
pos:
|
|
2051
|
-
"set-el":
|
|
2089
|
+
k: ke.value,
|
|
2090
|
+
index: Ae.value,
|
|
2091
|
+
data: Re.value,
|
|
2092
|
+
pos: Me.value,
|
|
2093
|
+
"set-el": de,
|
|
2052
2094
|
"use-anchor": G.value,
|
|
2053
|
-
"anchor-placement":
|
|
2095
|
+
"anchor-placement": Ie.value
|
|
2054
2096
|
}, null, 8, [
|
|
2055
2097
|
"k",
|
|
2056
2098
|
"index",
|
|
@@ -2059,13 +2101,13 @@ var Zn = {
|
|
|
2059
2101
|
"use-anchor",
|
|
2060
2102
|
"anchor-placement"
|
|
2061
2103
|
])) : a("", !0),
|
|
2062
|
-
|
|
2104
|
+
ye.value || be.value ? (S(), i(Ut, {
|
|
2063
2105
|
key: 3,
|
|
2064
|
-
marker:
|
|
2065
|
-
pos:
|
|
2106
|
+
marker: ye.value || be.value,
|
|
2107
|
+
pos: Pe.value,
|
|
2066
2108
|
"use-anchor": G.value,
|
|
2067
|
-
"anchor-placement":
|
|
2068
|
-
"set-el":
|
|
2109
|
+
"anchor-placement": Le.value,
|
|
2110
|
+
"set-el": fe
|
|
2069
2111
|
}, null, 8, [
|
|
2070
2112
|
"marker",
|
|
2071
2113
|
"pos",
|
|
@@ -2077,23 +2119,23 @@ var Zn = {
|
|
|
2077
2119
|
class: "right-axis-host",
|
|
2078
2120
|
ref_key: "rightAxisLayerRef",
|
|
2079
2121
|
ref: m,
|
|
2080
|
-
style: _({ width:
|
|
2081
|
-
onPointerdown:
|
|
2082
|
-
onPointermove:
|
|
2083
|
-
onPointerup:
|
|
2084
|
-
onPointerleave:
|
|
2122
|
+
style: _({ width: gt.value + "px" }),
|
|
2123
|
+
onPointerdown: Ke,
|
|
2124
|
+
onPointermove: qe,
|
|
2125
|
+
onPointerup: Je,
|
|
2126
|
+
onPointerleave: Ye
|
|
2085
2127
|
}, null, 36)
|
|
2086
|
-
], 512)], 2), l(
|
|
2087
|
-
"active-indicators":
|
|
2088
|
-
"indicator-params":
|
|
2089
|
-
onToggle:
|
|
2090
|
-
onUpdateParams:
|
|
2091
|
-
onReorderSubIndicators:
|
|
2092
|
-
}, null, 8, ["active-indicators", "indicator-params"])], 8,
|
|
2128
|
+
], 512)], 2), l(Ct, {
|
|
2129
|
+
"active-indicators": Qe.value,
|
|
2130
|
+
"indicator-params": Z.value,
|
|
2131
|
+
onToggle: pt,
|
|
2132
|
+
onUpdateParams: mt,
|
|
2133
|
+
onReorderSubIndicators: ht
|
|
2134
|
+
}, null, 8, ["active-indicators", "indicator-params"])], 8, br));
|
|
2093
2135
|
}
|
|
2094
|
-
}), [["__scopeId", "data-v-c50302da"]]),
|
|
2136
|
+
}), [["__scopeId", "data-v-c50302da"]]), wr = {
|
|
2095
2137
|
name: "@363045841yyt/klinechart",
|
|
2096
|
-
version: "0.7.
|
|
2138
|
+
version: "0.7.4",
|
|
2097
2139
|
description: "Vue 3 bindings for @363045841yyt/klinechart-core. Idiomatic composables, SFC components.",
|
|
2098
2140
|
license: "MIT",
|
|
2099
2141
|
type: "module",
|
|
@@ -2155,30 +2197,30 @@ var Zn = {
|
|
|
2155
2197
|
vitest: "^4.1.5",
|
|
2156
2198
|
vue: "^3.5.0"
|
|
2157
2199
|
}
|
|
2158
|
-
}.version,
|
|
2159
|
-
function
|
|
2160
|
-
|
|
2200
|
+
}.version, Tr = null;
|
|
2201
|
+
function Er(e) {
|
|
2202
|
+
Tr = e;
|
|
2161
2203
|
}
|
|
2162
|
-
function
|
|
2204
|
+
function Dr(e) {
|
|
2163
2205
|
if (e.container == null) throw Error("[@363045841yyt/klinechart] createChart: `container` is required and must be a non-null HTMLElement");
|
|
2164
|
-
if (
|
|
2165
|
-
return
|
|
2206
|
+
if (Tr === null) throw Error("[@363045841yyt/klinechart] createChart: no ChartController factory registered. Call __setControllerFactory(...) before mounting (the core package wires this in production).");
|
|
2207
|
+
return Tr(e);
|
|
2166
2208
|
}
|
|
2167
|
-
function
|
|
2209
|
+
function Or(e) {
|
|
2168
2210
|
let t = E(e.peek());
|
|
2169
2211
|
return b(e.subscribe(() => {
|
|
2170
2212
|
t.value = e.peek();
|
|
2171
2213
|
})), t;
|
|
2172
2214
|
}
|
|
2173
|
-
function
|
|
2215
|
+
function kr(e, t) {
|
|
2174
2216
|
let n = E(null), r = (e) => {
|
|
2175
|
-
e == null || n.value != null || (n.value =
|
|
2217
|
+
e == null || n.value != null || (n.value = Dr({
|
|
2176
2218
|
...t,
|
|
2177
2219
|
container: e
|
|
2178
2220
|
}));
|
|
2179
2221
|
};
|
|
2180
2222
|
r(e.value);
|
|
2181
|
-
let i =
|
|
2223
|
+
let i = M(e, (e) => {
|
|
2182
2224
|
r(e);
|
|
2183
2225
|
}, {
|
|
2184
2226
|
immediate: !0,
|
|
@@ -2190,7 +2232,7 @@ function Tr(e, t) {
|
|
|
2190
2232
|
};
|
|
2191
2233
|
return b(a), v(a), { chart: n };
|
|
2192
2234
|
}
|
|
2193
|
-
function
|
|
2235
|
+
function Ar(e) {
|
|
2194
2236
|
let t = E(e.indicators.peek());
|
|
2195
2237
|
return b(e.indicators.subscribe(() => {
|
|
2196
2238
|
t.value = e.indicators.peek();
|
|
@@ -2201,25 +2243,25 @@ function Er(e) {
|
|
|
2201
2243
|
updateParams: e.updateIndicatorParams.bind(e)
|
|
2202
2244
|
};
|
|
2203
2245
|
}
|
|
2204
|
-
function
|
|
2246
|
+
function jr(e) {
|
|
2205
2247
|
let t = E(e.interactionState.peek());
|
|
2206
2248
|
return b(e.interactionState.subscribe(() => {
|
|
2207
2249
|
t.value = e.interactionState.peek();
|
|
2208
2250
|
})), t;
|
|
2209
2251
|
}
|
|
2210
|
-
function
|
|
2252
|
+
function Mr(e) {
|
|
2211
2253
|
let t = E(e.paneRatios.peek());
|
|
2212
2254
|
return b(e.paneRatios.subscribe(() => {
|
|
2213
2255
|
t.value = e.paneRatios.peek();
|
|
2214
2256
|
})), t;
|
|
2215
2257
|
}
|
|
2216
|
-
function
|
|
2258
|
+
function Nr(e) {
|
|
2217
2259
|
let t = E(e.viewport.peek());
|
|
2218
2260
|
return b(e.viewport.subscribe(() => {
|
|
2219
2261
|
t.value = e.viewport.peek();
|
|
2220
2262
|
})), t;
|
|
2221
2263
|
}
|
|
2222
|
-
var
|
|
2264
|
+
var Pr = u({
|
|
2223
2265
|
name: "KLineChart",
|
|
2224
2266
|
props: {
|
|
2225
2267
|
data: {
|
|
@@ -2252,7 +2294,7 @@ var Ar = u({
|
|
|
2252
2294
|
y(() => {
|
|
2253
2295
|
let n = r.value;
|
|
2254
2296
|
n != null && (i.run(() => {
|
|
2255
|
-
if (a.value =
|
|
2297
|
+
if (a.value = Dr({
|
|
2256
2298
|
container: n,
|
|
2257
2299
|
data: e.data,
|
|
2258
2300
|
initialZoomLevel: e.initialZoomLevel,
|
|
@@ -2266,9 +2308,9 @@ var Ar = u({
|
|
|
2266
2308
|
};
|
|
2267
2309
|
n(), b(e.viewport.subscribe(n));
|
|
2268
2310
|
}
|
|
2269
|
-
}),
|
|
2311
|
+
}), M(() => e.data, (e) => {
|
|
2270
2312
|
a.value?.setData(e);
|
|
2271
|
-
}),
|
|
2313
|
+
}), M(() => e.theme, (e) => {
|
|
2272
2314
|
a.value?.setTheme(e);
|
|
2273
2315
|
}));
|
|
2274
2316
|
}), x(() => {
|
|
@@ -2298,9 +2340,9 @@ var Ar = u({
|
|
|
2298
2340
|
}
|
|
2299
2341
|
});
|
|
2300
2342
|
}
|
|
2301
|
-
}),
|
|
2302
|
-
e.component("KLineChart",
|
|
2343
|
+
}), Fr = { install(e) {
|
|
2344
|
+
e.component("KLineChart", Pr);
|
|
2303
2345
|
} };
|
|
2304
|
-
|
|
2346
|
+
Er(ue);
|
|
2305
2347
|
//#endregion
|
|
2306
|
-
export {
|
|
2348
|
+
export { le as CORE_VERSION, pe as DrawingStyleToolbar, ke as IndicatorParams, Ct as IndicatorSelector, Pr as KLineChart, Cr as KLineChartVue, Bt as KLineTooltip, Fr as KMapPlugin, yr as LeftToolbar, Ut as MarkerTooltip, wr as VERSION, Er as __setControllerFactory, Or as coreSignalToVueRef, Dr as createChart, kr as useChart, Ar as useIndicators, jr as useInteractionState, Mr as usePaneRatios, Nr as useViewport };
|