candleview 2.3.6 → 2.3.9

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/index.mjs CHANGED
@@ -2,11 +2,11 @@ import rt, { useState as st, useRef as Ct, useEffect as ut } from "react";
2
2
  import { LineSeries as dt, AreaSeries as xe, CandlestickSeries as Kt, BarSeries as yi, BaselineSeries as De, HistogramSeries as Qt, createChart as ar } from "lightweight-charts";
3
3
  import me from "react-dom";
4
4
  var Jt = { exports: {} }, Vt = {};
5
- var Ee;
5
+ var Re;
6
6
  function nr() {
7
- if (Ee) return Vt;
8
- Ee = 1;
9
- var f = Symbol.for("react.transitional.element"), t = Symbol.for("react.fragment");
7
+ if (Re) return Vt;
8
+ Re = 1;
9
+ var f = /* @__PURE__ */ Symbol.for("react.transitional.element"), t = /* @__PURE__ */ Symbol.for("react.fragment");
10
10
  function e(i, r, a) {
11
11
  var s = null;
12
12
  if (a !== void 0 && (s = "" + a), r.key !== void 0 && (s = "" + r.key), "key" in r) {
@@ -28,12 +28,12 @@ var qt = {};
28
28
  var ye;
29
29
  function or() {
30
30
  return ye || (ye = 1, process.env.NODE_ENV !== "production" && (function() {
31
- function f(E) {
32
- if (E == null) return null;
33
- if (typeof E == "function")
34
- return E.$$typeof === W ? null : E.displayName || E.name || null;
35
- if (typeof E == "string") return E;
36
- switch (E) {
31
+ function f(R) {
32
+ if (R == null) return null;
33
+ if (typeof R == "function")
34
+ return R.$$typeof === W ? null : R.displayName || R.name || null;
35
+ if (typeof R == "string") return R;
36
+ switch (R) {
37
37
  case M:
38
38
  return "Fragment";
39
39
  case P:
@@ -47,127 +47,127 @@ function or() {
47
47
  case I:
48
48
  return "Activity";
49
49
  }
50
- if (typeof E == "object")
51
- switch (typeof E.tag == "number" && console.error(
50
+ if (typeof R == "object")
51
+ switch (typeof R.tag == "number" && console.error(
52
52
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
53
- ), E.$$typeof) {
53
+ ), R.$$typeof) {
54
54
  case p:
55
55
  return "Portal";
56
56
  case _:
57
- return E.displayName || "Context";
57
+ return R.displayName || "Context";
58
58
  case S:
59
- return (E._context.displayName || "Context") + ".Consumer";
59
+ return (R._context.displayName || "Context") + ".Consumer";
60
60
  case C:
61
- var N = E.render;
62
- return E = E.displayName, E || (E = N.displayName || N.name || "", E = E !== "" ? "ForwardRef(" + E + ")" : "ForwardRef"), E;
63
- case R:
64
- return N = E.displayName || null, N !== null ? N : f(E.type) || "Memo";
61
+ var N = R.render;
62
+ return R = R.displayName, R || (R = N.displayName || N.name || "", R = R !== "" ? "ForwardRef(" + R + ")" : "ForwardRef"), R;
63
+ case E:
64
+ return N = R.displayName || null, N !== null ? N : f(R.type) || "Memo";
65
65
  case B:
66
- N = E._payload, E = E._init;
66
+ N = R._payload, R = R._init;
67
67
  try {
68
- return f(E(N));
68
+ return f(R(N));
69
69
  } catch {
70
70
  }
71
71
  }
72
72
  return null;
73
73
  }
74
- function t(E) {
75
- return "" + E;
74
+ function t(R) {
75
+ return "" + R;
76
76
  }
77
- function e(E) {
77
+ function e(R) {
78
78
  try {
79
- t(E);
79
+ t(R);
80
80
  var N = !1;
81
81
  } catch {
82
82
  N = !0;
83
83
  }
84
84
  if (N) {
85
85
  N = console;
86
- var nt = N.error, ct = typeof Symbol == "function" && Symbol.toStringTag && E[Symbol.toStringTag] || E.constructor.name || "Object";
86
+ var nt = N.error, ct = typeof Symbol == "function" && Symbol.toStringTag && R[Symbol.toStringTag] || R.constructor.name || "Object";
87
87
  return nt.call(
88
88
  N,
89
89
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
90
90
  ct
91
- ), t(E);
91
+ ), t(R);
92
92
  }
93
93
  }
94
- function i(E) {
95
- if (E === M) return "<>";
96
- if (typeof E == "object" && E !== null && E.$$typeof === B)
94
+ function i(R) {
95
+ if (R === M) return "<>";
96
+ if (typeof R == "object" && R !== null && R.$$typeof === B)
97
97
  return "<...>";
98
98
  try {
99
- var N = f(E);
99
+ var N = f(R);
100
100
  return N ? "<" + N + ">" : "<...>";
101
101
  } catch {
102
102
  return "<...>";
103
103
  }
104
104
  }
105
105
  function r() {
106
- var E = L.A;
107
- return E === null ? null : E.getOwner();
106
+ var R = L.A;
107
+ return R === null ? null : R.getOwner();
108
108
  }
109
109
  function a() {
110
110
  return Error("react-stack-top-frame");
111
111
  }
112
- function s(E) {
113
- if ($.call(E, "key")) {
114
- var N = Object.getOwnPropertyDescriptor(E, "key").get;
112
+ function s(R) {
113
+ if ($.call(R, "key")) {
114
+ var N = Object.getOwnPropertyDescriptor(R, "key").get;
115
115
  if (N && N.isReactWarning) return !1;
116
116
  }
117
- return E.key !== void 0;
117
+ return R.key !== void 0;
118
118
  }
119
- function n(E, N) {
119
+ function n(R, N) {
120
120
  function nt() {
121
121
  Z || (Z = !0, console.error(
122
122
  "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
123
123
  N
124
124
  ));
125
125
  }
126
- nt.isReactWarning = !0, Object.defineProperty(E, "key", {
126
+ nt.isReactWarning = !0, Object.defineProperty(R, "key", {
127
127
  get: nt,
128
128
  configurable: !0
129
129
  });
130
130
  }
131
131
  function o() {
132
- var E = f(this.type);
133
- return O[E] || (O[E] = !0, console.error(
132
+ var R = f(this.type);
133
+ return O[R] || (O[R] = !0, console.error(
134
134
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
135
- )), E = this.props.ref, E !== void 0 ? E : null;
135
+ )), R = this.props.ref, R !== void 0 ? R : null;
136
136
  }
137
- function h(E, N, nt, ct, tt, y) {
137
+ function h(R, N, nt, ct, tt, y) {
138
138
  var Q = nt.ref;
139
- return E = {
139
+ return R = {
140
140
  $$typeof: u,
141
- type: E,
141
+ type: R,
142
142
  key: N,
143
143
  props: nt,
144
144
  _owner: ct
145
- }, (Q !== void 0 ? Q : null) !== null ? Object.defineProperty(E, "ref", {
145
+ }, (Q !== void 0 ? Q : null) !== null ? Object.defineProperty(R, "ref", {
146
146
  enumerable: !1,
147
147
  get: o
148
- }) : Object.defineProperty(E, "ref", { enumerable: !1, value: null }), E._store = {}, Object.defineProperty(E._store, "validated", {
148
+ }) : Object.defineProperty(R, "ref", { enumerable: !1, value: null }), R._store = {}, Object.defineProperty(R._store, "validated", {
149
149
  configurable: !1,
150
150
  enumerable: !1,
151
151
  writable: !0,
152
152
  value: 0
153
- }), Object.defineProperty(E, "_debugInfo", {
153
+ }), Object.defineProperty(R, "_debugInfo", {
154
154
  configurable: !1,
155
155
  enumerable: !1,
156
156
  writable: !0,
157
157
  value: null
158
- }), Object.defineProperty(E, "_debugStack", {
158
+ }), Object.defineProperty(R, "_debugStack", {
159
159
  configurable: !1,
160
160
  enumerable: !1,
161
161
  writable: !0,
162
162
  value: tt
163
- }), Object.defineProperty(E, "_debugTask", {
163
+ }), Object.defineProperty(R, "_debugTask", {
164
164
  configurable: !1,
165
165
  enumerable: !1,
166
166
  writable: !0,
167
167
  value: y
168
- }), Object.freeze && (Object.freeze(E.props), Object.freeze(E)), E;
168
+ }), Object.freeze && (Object.freeze(R.props), Object.freeze(R)), R;
169
169
  }
170
- function l(E, N, nt, ct, tt, y) {
170
+ function l(R, N, nt, ct, tt, y) {
171
171
  var Q = N.children;
172
172
  if (Q !== void 0)
173
173
  if (ct)
@@ -181,7 +181,7 @@ function or() {
181
181
  );
182
182
  else g(Q);
183
183
  if ($.call(N, "key")) {
184
- Q = f(E);
184
+ Q = f(R);
185
185
  var et = Object.keys(N).filter(function(gt) {
186
186
  return gt !== "key";
187
187
  });
@@ -205,9 +205,9 @@ React keys must be passed directly to JSX without using spread:
205
205
  } else nt = N;
206
206
  return Q && n(
207
207
  nt,
208
- typeof E == "function" ? E.displayName || E.name || "Unknown" : E
208
+ typeof R == "function" ? R.displayName || R.name || "Unknown" : R
209
209
  ), h(
210
- E,
210
+ R,
211
211
  Q,
212
212
  nt,
213
213
  r(),
@@ -215,43 +215,43 @@ React keys must be passed directly to JSX without using spread:
215
215
  y
216
216
  );
217
217
  }
218
- function g(E) {
219
- c(E) ? E._store && (E._store.validated = 1) : typeof E == "object" && E !== null && E.$$typeof === B && (E._payload.status === "fulfilled" ? c(E._payload.value) && E._payload.value._store && (E._payload.value._store.validated = 1) : E._store && (E._store.validated = 1));
218
+ function g(R) {
219
+ c(R) ? R._store && (R._store.validated = 1) : typeof R == "object" && R !== null && R.$$typeof === B && (R._payload.status === "fulfilled" ? c(R._payload.value) && R._payload.value._store && (R._payload.value._store.validated = 1) : R._store && (R._store.validated = 1));
220
220
  }
221
- function c(E) {
222
- return typeof E == "object" && E !== null && E.$$typeof === u;
221
+ function c(R) {
222
+ return typeof R == "object" && R !== null && R.$$typeof === u;
223
223
  }
224
- var d = rt, u = Symbol.for("react.transitional.element"), p = Symbol.for("react.portal"), M = Symbol.for("react.fragment"), k = Symbol.for("react.strict_mode"), P = Symbol.for("react.profiler"), S = Symbol.for("react.consumer"), _ = Symbol.for("react.context"), C = Symbol.for("react.forward_ref"), A = Symbol.for("react.suspense"), x = Symbol.for("react.suspense_list"), R = Symbol.for("react.memo"), B = Symbol.for("react.lazy"), I = Symbol.for("react.activity"), W = Symbol.for("react.client.reference"), L = d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, $ = Object.prototype.hasOwnProperty, at = Array.isArray, J = console.createTask ? console.createTask : function() {
224
+ var d = rt, u = /* @__PURE__ */ Symbol.for("react.transitional.element"), p = /* @__PURE__ */ Symbol.for("react.portal"), M = /* @__PURE__ */ Symbol.for("react.fragment"), k = /* @__PURE__ */ Symbol.for("react.strict_mode"), P = /* @__PURE__ */ Symbol.for("react.profiler"), S = /* @__PURE__ */ Symbol.for("react.consumer"), _ = /* @__PURE__ */ Symbol.for("react.context"), C = /* @__PURE__ */ Symbol.for("react.forward_ref"), A = /* @__PURE__ */ Symbol.for("react.suspense"), x = /* @__PURE__ */ Symbol.for("react.suspense_list"), E = /* @__PURE__ */ Symbol.for("react.memo"), B = /* @__PURE__ */ Symbol.for("react.lazy"), I = /* @__PURE__ */ Symbol.for("react.activity"), W = /* @__PURE__ */ Symbol.for("react.client.reference"), L = d.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, $ = Object.prototype.hasOwnProperty, at = Array.isArray, J = console.createTask ? console.createTask : function() {
225
225
  return null;
226
226
  };
227
227
  d = {
228
- react_stack_bottom_frame: function(E) {
229
- return E();
228
+ react_stack_bottom_frame: function(R) {
229
+ return R();
230
230
  }
231
231
  };
232
232
  var Z, O = {}, it = d.react_stack_bottom_frame.bind(
233
233
  d,
234
234
  a
235
235
  )(), ht = J(i(a)), pt = {};
236
- qt.Fragment = M, qt.jsx = function(E, N, nt) {
236
+ qt.Fragment = M, qt.jsx = function(R, N, nt) {
237
237
  var ct = 1e4 > L.recentlyCreatedOwnerStacks++;
238
238
  return l(
239
- E,
239
+ R,
240
240
  N,
241
241
  nt,
242
242
  !1,
243
243
  ct ? Error("react-stack-top-frame") : it,
244
- ct ? J(i(E)) : ht
244
+ ct ? J(i(R)) : ht
245
245
  );
246
- }, qt.jsxs = function(E, N, nt) {
246
+ }, qt.jsxs = function(R, N, nt) {
247
247
  var ct = 1e4 > L.recentlyCreatedOwnerStacks++;
248
248
  return l(
249
- E,
249
+ R,
250
250
  N,
251
251
  nt,
252
252
  !0,
253
253
  ct ? Error("react-stack-top-frame") : it,
254
- ct ? J(i(E)) : ht
254
+ ct ? J(i(R)) : ht
255
255
  );
256
256
  };
257
257
  })()), qt;
@@ -721,7 +721,7 @@ const vr = (f, t) => ({ series: f.addSeries(Kt, {
721
721
  precision: 2,
722
722
  minMove: 0.01
723
723
  }
724
- }), type: "candle" }), Rr = (f, t) => ({ series: f.addSeries(Kt, {
724
+ }), type: "candle" }), Er = (f, t) => ({ series: f.addSeries(Kt, {
725
725
  upColor: "transparent",
726
726
  downColor: t.chart.candleDownColor || "#ef5350",
727
727
  borderUpColor: t.chart.candleUpColor || "#26a69a",
@@ -735,7 +735,7 @@ const vr = (f, t) => ({ series: f.addSeries(Kt, {
735
735
  precision: 2,
736
736
  minMove: 0.01
737
737
  }
738
- }), type: "hollow-candle" }), Er = (f, t) => ({ series: f.addSeries(yi, {
738
+ }), type: "hollow-candle" }), Rr = (f, t) => ({ series: f.addSeries(yi, {
739
739
  upColor: t.chart.candleUpColor || "#26a69a",
740
740
  downColor: t.chart.candleDownColor || "#ef5350",
741
741
  thinBars: !0,
@@ -808,14 +808,14 @@ const vr = (f, t) => ({ series: f.addSeries(Kt, {
808
808
  id: "hollow-candle",
809
809
  label: "Hollow Candlestick",
810
810
  description: "Hollow Candlestick",
811
- createSeries: Rr,
811
+ createSeries: Er,
812
812
  type: q.HollowCandle
813
813
  },
814
814
  {
815
815
  id: "bar",
816
816
  label: "Bar Chart",
817
817
  description: "Bar Chart",
818
- createSeries: Er,
818
+ createSeries: Rr,
819
819
  type: q.Bar
820
820
  },
821
821
  {
@@ -2579,13 +2579,13 @@ const Lr = ({
2579
2579
  onCancel: h,
2580
2580
  i18n: l
2581
2581
  }) => {
2582
- const [g, c] = st(i), [d, u] = st(r), [p, M] = st(a), [k, P] = st(s), [S, _] = st(n), [C, A] = st(t), [x, R] = st(!1), [B, I] = st({ x: 0, y: 0 }), W = Ct(null), L = Ct(null);
2582
+ const [g, c] = st(i), [d, u] = st(r), [p, M] = st(a), [k, P] = st(s), [S, _] = st(n), [C, A] = st(t), [x, E] = st(!1), [B, I] = st({ x: 0, y: 0 }), W = Ct(null), L = Ct(null);
2583
2583
  ut(() => {
2584
2584
  c(i), u(r), M(a), P(s), _(n), A(t);
2585
2585
  }, [i, r, a, s, n, t]);
2586
2586
  const $ = (O) => {
2587
2587
  if (O.target === L.current || L.current?.contains(O.target)) {
2588
- R(!0);
2588
+ E(!0);
2589
2589
  const it = W.current.getBoundingClientRect();
2590
2590
  I({
2591
2591
  x: O.clientX - it.left,
@@ -2596,14 +2596,14 @@ const Lr = ({
2596
2596
  ut(() => {
2597
2597
  const O = (ht) => {
2598
2598
  if (x) {
2599
- const pt = ht.clientX - B.x, E = ht.clientY - B.y, N = window.innerWidth - 320, nt = window.innerHeight - 300;
2599
+ const pt = ht.clientX - B.x, R = ht.clientY - B.y, N = window.innerWidth - 320, nt = window.innerHeight - 300;
2600
2600
  A({
2601
2601
  x: Math.max(10, Math.min(pt, N)),
2602
- y: Math.max(10, Math.min(E, nt))
2602
+ y: Math.max(10, Math.min(R, nt))
2603
2603
  });
2604
2604
  }
2605
2605
  }, it = () => {
2606
- R(!1);
2606
+ E(!1);
2607
2607
  };
2608
2608
  if (x)
2609
2609
  return document.addEventListener("mousemove", O), document.addEventListener("mouseup", it), () => {
@@ -2936,7 +2936,7 @@ const Lr = ({
2936
2936
  boxShadow: "0 8px 24px rgba(0,0,0,0.3)",
2937
2937
  cursor: h ? "grabbing" : "default",
2938
2938
  userSelect: h ? "none" : "auto"
2939
- }, R = {
2939
+ }, E = {
2940
2940
  padding: "12px 16px",
2941
2941
  borderBottom: `1px solid ${i.toolbar.border}`,
2942
2942
  cursor: "grab",
@@ -3003,7 +3003,7 @@ const Lr = ({
3003
3003
  fontSize: "12px",
3004
3004
  cursor: "pointer",
3005
3005
  minWidth: "60px"
3006
- }, E = {
3006
+ }, R = {
3007
3007
  background: i.toolbar.button.active,
3008
3008
  color: i.toolbar.button.activeTextColor,
3009
3009
  border: "none",
@@ -3056,7 +3056,7 @@ const Lr = ({
3056
3056
  "div",
3057
3057
  {
3058
3058
  ref: p,
3059
- style: R,
3059
+ style: E,
3060
3060
  onMouseDown: (tt) => {
3061
3061
  tt.target === p.current && tt.preventDefault();
3062
3062
  },
@@ -3118,7 +3118,7 @@ const Lr = ({
3118
3118
  {
3119
3119
  onClick: P,
3120
3120
  disabled: !a,
3121
- style: a ? E : N,
3121
+ style: a ? R : N,
3122
3122
  type: "button",
3123
3123
  children: r.systemSettings?.confirm || "确定"
3124
3124
  }
@@ -5346,8 +5346,8 @@ class Wr {
5346
5346
  else if (this.state.dragPoint === "mid") {
5347
5347
  const u = g.timeToCoordinate(this.state.dragTarget.getStartTime()), p = i.series.priceToCoordinate(this.state.dragTarget.getStartPrice()), M = g.timeToCoordinate(this.state.dragTarget.getEndTime()), k = i.series.priceToCoordinate(this.state.dragTarget.getEndPrice());
5348
5348
  if (u === null || p === null || M === null || k === null) return;
5349
- const P = (u + M) / 2, S = (p + k) / 2, _ = this.state.dragTarget.getMidPixelOffsetX() + P, C = this.state.dragTarget.getMidPixelOffsetY() + S, A = this.quadraticBezierPoint(u, _, M, 0.5), x = this.quadraticBezierPoint(p, C, k, 0.5), R = h - A, B = l - x, I = this.state.dragTarget.getMidPixelOffsetX(), W = this.state.dragTarget.getMidPixelOffsetY();
5350
- this.state.dragTarget.updateMidPoint(I + R, W + B), this.dragStartData = { time: c, price: d };
5349
+ const P = (u + M) / 2, S = (p + k) / 2, _ = this.state.dragTarget.getMidPixelOffsetX() + P, C = this.state.dragTarget.getMidPixelOffsetY() + S, A = this.quadraticBezierPoint(u, _, M, 0.5), x = this.quadraticBezierPoint(p, C, k, 0.5), E = h - A, B = l - x, I = this.state.dragTarget.getMidPixelOffsetX(), W = this.state.dragTarget.getMidPixelOffsetY();
5350
+ this.state.dragTarget.updateMidPoint(I + E, W + B), this.dragStartData = { time: c, price: d };
5351
5351
  }
5352
5352
  return;
5353
5353
  }
@@ -5546,8 +5546,8 @@ class Oe {
5546
5546
  const l = Math.abs(this._series.priceToCoordinate(this._startPrice - this._channelHeight) - this._series.priceToCoordinate(this._startPrice)), g = s - r, c = n - a, d = Math.sqrt(g * g + c * c), u = this._angle * Math.PI / 180, p = Math.tan(u) * d * 0.5, M = (r + s) / 2, k = (a + n) / 2, P = M, S = k - l;
5547
5547
  if (Math.sqrt(Math.pow(t - P, 2) + Math.pow(e - S, 2)) <= i)
5548
5548
  return "channel";
5549
- const C = n - l - p, A = n + l + p, x = s, R = (C + A) / 2;
5550
- return Math.sqrt(Math.pow(t - x, 2) + Math.pow(e - R, 2)) <= i ? "angle" : null;
5549
+ const C = n - l - p, A = n + l + p, x = s, E = (C + A) / 2;
5550
+ return Math.sqrt(Math.pow(t - x, 2) + Math.pow(e - E, 2)) <= i ? "angle" : null;
5551
5551
  }
5552
5552
  updateAngleByPixels(t) {
5553
5553
  if (!this._chart || !this._series) return;
@@ -5609,8 +5609,8 @@ class Oe {
5609
5609
  e.fillRect(L - O / 2 - 5, $ - 25, O + 10, 18), e.fillStyle = "#333333", e.fillText(Z, L, $ - 10), e.restore();
5610
5610
  };
5611
5611
  C(i, r, "start", this._dragPoint === "start" || this._hoverPoint === "start"), C(a, s, "end", this._dragPoint === "end" || this._hoverPoint === "end");
5612
- const A = (i + a) / 2, x = (r + s) / 2, R = A, B = x - l;
5613
- C(R, B, "channel", this._dragPoint === "channel" || this._hoverPoint === "channel");
5612
+ const A = (i + a) / 2, x = (r + s) / 2, E = A, B = x - l;
5613
+ C(E, B, "channel", this._dragPoint === "channel" || this._hoverPoint === "channel");
5614
5614
  const I = a, W = (M + _) / 2;
5615
5615
  C(I, W, "angle", this._dragPoint === "angle" || this._hoverPoint === "angle");
5616
5616
  }
@@ -5954,11 +5954,11 @@ class Xr {
5954
5954
  if (p === 0) return !1;
5955
5955
  const M = -u / p, k = d / p;
5956
5956
  for (let P = -1; P <= 1; P += 2) {
5957
- const S = M * 30 * P, _ = k * 30 * P, C = a + S, A = s + _, x = n + S, R = o + _, B = t - C, I = e - A, W = x - C, L = R - A, $ = B * W + I * L, at = W * W + L * L;
5957
+ const S = M * 30 * P, _ = k * 30 * P, C = a + S, A = s + _, x = n + S, E = o + _, B = t - C, I = e - A, W = x - C, L = E - A, $ = B * W + I * L, at = W * W + L * L;
5958
5958
  let J = -1;
5959
5959
  at !== 0 && (J = $ / at);
5960
5960
  let Z, O;
5961
- J < 0 ? (Z = C, O = A) : J > 1 ? (Z = x, O = R) : (Z = C + J * W, O = A + J * L);
5961
+ J < 0 ? (Z = C, O = A) : J > 1 ? (Z = x, O = E) : (Z = C + J * W, O = A + J * L);
5962
5962
  const it = t - Z, ht = e - O;
5963
5963
  if (Math.sqrt(it * it + ht * ht) <= r)
5964
5964
  return !0;
@@ -6316,10 +6316,10 @@ class Yr {
6316
6316
  else if (this.state.dragPoint === "mid1" || this.state.dragPoint === "mid2") {
6317
6317
  const u = g.timeToCoordinate(this.state.dragTarget.getStartTime()), p = i.series.priceToCoordinate(this.state.dragTarget.getStartPrice()), M = g.timeToCoordinate(this.state.dragTarget.getEndTime()), k = i.series.priceToCoordinate(this.state.dragTarget.getEndPrice());
6318
6318
  if (u === null || p === null || M === null || k === null) return;
6319
- const P = u + (M - u) * 1 / 3, S = p + (k - p) * 1 / 3, _ = u + (M - u) * 2 / 3, C = p + (k - p) * 2 / 3, A = this.state.dragTarget.getMid1PixelOffsetX(), x = this.state.dragTarget.getMid1PixelOffsetY(), R = this.state.dragTarget.getMid2PixelOffsetX(), B = this.state.dragTarget.getMid2PixelOffsetY(), I = P + A, W = S + x, L = _ + R, $ = C + B;
6319
+ const P = u + (M - u) * 1 / 3, S = p + (k - p) * 1 / 3, _ = u + (M - u) * 2 / 3, C = p + (k - p) * 2 / 3, A = this.state.dragTarget.getMid1PixelOffsetX(), x = this.state.dragTarget.getMid1PixelOffsetY(), E = this.state.dragTarget.getMid2PixelOffsetX(), B = this.state.dragTarget.getMid2PixelOffsetY(), I = P + A, W = S + x, L = _ + E, $ = C + B;
6320
6320
  let at, J;
6321
6321
  this.state.dragPoint === "mid1" ? (at = this.cubicBezierPoint(u, I, L, M, 1 / 3), J = this.cubicBezierPoint(p, W, $, k, 1 / 3)) : (at = this.cubicBezierPoint(u, I, L, M, 2 / 3), J = this.cubicBezierPoint(p, W, $, k, 2 / 3));
6322
- const Z = h - at, O = l - J, it = this.state.dragPoint === "mid1" ? A : R, ht = this.state.dragPoint === "mid1" ? x : B;
6322
+ const Z = h - at, O = l - J, it = this.state.dragPoint === "mid1" ? A : E, ht = this.state.dragPoint === "mid1" ? x : B;
6323
6323
  this.state.dragPoint === "mid1" ? this.state.dragTarget.updateMid1Point(it + Z, ht + O) : this.state.dragTarget.updateMid2Point(it + Z, ht + O), this.dragStartData = { time: c, price: d };
6324
6324
  }
6325
6325
  return;
@@ -9368,8 +9368,8 @@ class We {
9368
9368
  if (e.strokeStyle = "#FF6B35", e.setLineDash([]), e.beginPath(), e.moveTo(h, l), e.lineTo(i, r), e.stroke(), !g) {
9369
9369
  const u = i - h, p = r - l, M = 3, k = -u * M, P = -p * M, S = [];
9370
9370
  for (let A = 0; A < this._numberOfForks; A++) {
9371
- const x = A / (this._numberOfForks - 1), R = a + (n - a) * x, B = s + (o - s) * x;
9372
- S.push({ x: R, y: B });
9371
+ const x = A / (this._numberOfForks - 1), E = a + (n - a) * x, B = s + (o - s) * x;
9372
+ S.push({ x: E, y: B });
9373
9373
  }
9374
9374
  const _ = [
9375
9375
  "#FF4444",
@@ -9384,17 +9384,17 @@ class We {
9384
9384
  const C = e.createLinearGradient(a, s, n, o);
9385
9385
  if (C.addColorStop(0, "#FF4444"), C.addColorStop(0.5, "#4CAF50"), C.addColorStop(1, "#9C27B0"), e.strokeStyle = C, e.setLineDash([]), e.beginPath(), e.moveTo(a, s), e.lineTo(n, o), e.stroke(), !this._isPreview)
9386
9386
  for (let A = 0; A < S.length - 1; A++) {
9387
- const x = S[A], R = S[A + 1], B = e.createLinearGradient(
9387
+ const x = S[A], E = S[A + 1], B = e.createLinearGradient(
9388
9388
  x.x,
9389
9389
  x.y,
9390
- R.x + k,
9391
- R.y + P
9390
+ E.x + k,
9391
+ E.y + P
9392
9392
  );
9393
- A === 0 ? (B.addColorStop(0, "rgba(255, 68, 68, 0.2)"), B.addColorStop(1, "rgba(255, 170, 0, 0.3)")) : A === 1 ? (B.addColorStop(0, "rgba(255, 170, 0, 0.3)"), B.addColorStop(1, "rgba(76, 175, 80, 0.4)")) : A === 2 ? (B.addColorStop(0, "rgba(76, 175, 80, 0.4)"), B.addColorStop(1, "rgba(33, 150, 243, 0.3)")) : A === 3 && (B.addColorStop(0, "rgba(33, 150, 243, 0.3)"), B.addColorStop(1, "rgba(156, 39, 176, 0.2)")), e.fillStyle = B, e.beginPath(), e.moveTo(x.x, x.y), e.lineTo(x.x + k, x.y + P), e.lineTo(R.x + k, R.y + P), e.lineTo(R.x, R.y), e.closePath(), e.fill(), e.strokeStyle = _[A], e.lineWidth = 0.5, e.setLineDash([2, 2]), e.stroke(), e.setLineDash([]);
9393
+ A === 0 ? (B.addColorStop(0, "rgba(255, 68, 68, 0.2)"), B.addColorStop(1, "rgba(255, 170, 0, 0.3)")) : A === 1 ? (B.addColorStop(0, "rgba(255, 170, 0, 0.3)"), B.addColorStop(1, "rgba(76, 175, 80, 0.4)")) : A === 2 ? (B.addColorStop(0, "rgba(76, 175, 80, 0.4)"), B.addColorStop(1, "rgba(33, 150, 243, 0.3)")) : A === 3 && (B.addColorStop(0, "rgba(33, 150, 243, 0.3)"), B.addColorStop(1, "rgba(156, 39, 176, 0.2)")), e.fillStyle = B, e.beginPath(), e.moveTo(x.x, x.y), e.lineTo(x.x + k, x.y + P), e.lineTo(E.x + k, E.y + P), e.lineTo(E.x, E.y), e.closePath(), e.fill(), e.strokeStyle = _[A], e.lineWidth = 0.5, e.setLineDash([2, 2]), e.stroke(), e.setLineDash([]);
9394
9394
  }
9395
9395
  this._isPreview || S.forEach((A, x) => {
9396
- const R = A.x + k, B = A.y + P;
9397
- e.fillStyle = _[x], e.beginPath(), e.arc(R, B, 3, 0, Math.PI * 2), e.fill(), e.fillStyle = "#FFFFFF", e.beginPath(), e.arc(R, B, 1, 0, Math.PI * 2), e.fill();
9396
+ const E = A.x + k, B = A.y + P;
9397
+ e.fillStyle = _[x], e.beginPath(), e.arc(E, B, 3, 0, Math.PI * 2), e.fill(), e.fillStyle = "#FFFFFF", e.beginPath(), e.arc(E, B, 1, 0, Math.PI * 2), e.fill();
9398
9398
  });
9399
9399
  }
9400
9400
  const c = (this._showHandles || this._isDragging || this._hoverPoint) && !this._isPreview, d = this._isPreview;
@@ -9752,7 +9752,7 @@ class $r {
9752
9752
  return !1;
9753
9753
  const p = (n + h) / 2, M = (o + l) / 2, k = a - p, P = s - M, S = [];
9754
9754
  for (let x = 0; x < 5; x++) {
9755
- const R = x / 4, B = n + (h - n) * R, I = o + (l - o) * R;
9755
+ const E = x / 4, B = n + (h - n) * E, I = o + (l - o) * E;
9756
9756
  S.push({ x: B, y: I });
9757
9757
  }
9758
9758
  const _ = S.map((x) => ({
@@ -9918,10 +9918,10 @@ class Xe {
9918
9918
  if ((this._showHandles || this._isDragging || this._hoverPoint) && !this._isPreview) {
9919
9919
  const p = (_, C, A, x = !1) => {
9920
9920
  e.save(), e.fillStyle = this._color, e.beginPath(), e.arc(_, C, 6, 0, Math.PI * 2), e.fill(), e.fillStyle = "#FFFFFF", e.beginPath(), e.arc(_, C, 4, 0, Math.PI * 2), e.fill(), x && (e.strokeStyle = this._color, e.lineWidth = 2, e.setLineDash([]), e.beginPath(), e.arc(_, C, 8, 0, Math.PI * 2), e.stroke()), e.fillStyle = this._color, e.font = "12px Arial", e.textAlign = "center", e.textBaseline = "bottom";
9921
- let R = "";
9922
- A === "start" ? R = `${this._startPrice.toFixed(2)}` : A === "end" ? R = `${this._endPrice.toFixed(2)}` : A === "channel" && (R = `${(this._channelHeight / this._startPrice * 100).toFixed(2)}%`), e.fillStyle = "rgba(255, 255, 255, 0.9)";
9923
- const B = e.measureText(R).width;
9924
- e.fillRect(_ - B / 2 - 5, C - 25, B + 10, 18), e.fillStyle = "#333333", e.fillText(R, _, C - 10), e.restore();
9921
+ let E = "";
9922
+ A === "start" ? E = `${this._startPrice.toFixed(2)}` : A === "end" ? E = `${this._endPrice.toFixed(2)}` : A === "channel" && (E = `${(this._channelHeight / this._startPrice * 100).toFixed(2)}%`), e.fillStyle = "rgba(255, 255, 255, 0.9)";
9923
+ const B = e.measureText(E).width;
9924
+ e.fillRect(_ - B / 2 - 5, C - 25, B + 10, 18), e.fillStyle = "#333333", e.fillText(E, _, C - 10), e.restore();
9925
9925
  };
9926
9926
  p(i, r, "start", this._dragPoint === "start" || this._hoverPoint === "start"), p(a, s, "end", this._dragPoint === "end" || this._hoverPoint === "end");
9927
9927
  const M = (i + a) / 2, k = (r + s) / 2, P = M + c * u, S = k + d * u;
@@ -10258,11 +10258,11 @@ class Zr {
10258
10258
  if (p === 0) return !1;
10259
10259
  const M = -u / p, k = d / p;
10260
10260
  for (let P = -1; P <= 1; P += 2) {
10261
- const S = M * 30 * P, _ = k * 30 * P, C = a + S, A = s + _, x = n + S, R = o + _, B = t - C, I = e - A, W = x - C, L = R - A, $ = B * W + I * L, at = W * W + L * L;
10261
+ const S = M * 30 * P, _ = k * 30 * P, C = a + S, A = s + _, x = n + S, E = o + _, B = t - C, I = e - A, W = x - C, L = E - A, $ = B * W + I * L, at = W * W + L * L;
10262
10262
  let J = -1;
10263
10263
  at !== 0 && (J = $ / at);
10264
10264
  let Z, O;
10265
- J < 0 ? (Z = C, O = A) : J > 1 ? (Z = x, O = R) : (Z = C + J * W, O = A + J * L);
10265
+ J < 0 ? (Z = C, O = A) : J > 1 ? (Z = x, O = E) : (Z = C + J * W, O = A + J * L);
10266
10266
  const it = t - Z, ht = e - O;
10267
10267
  if (Math.sqrt(it * it + ht * ht) <= r)
10268
10268
  return !0;
@@ -11004,8 +11004,8 @@ class Ve {
11004
11004
  M === "start" ? C = `${this._startPrice.toFixed(2)}` : M === "end" ? C = `${this._endPrice.toFixed(2)}` : M === "channel" && (C = `${(this._channelHeight / Math.min(this._startPrice, this._endPrice) * 100).toFixed(2)}%`);
11005
11005
  const A = S, x = Math.max(25, _ - 15);
11006
11006
  t.fillStyle = "rgba(255, 255, 255, 0.9)";
11007
- const R = t.measureText(C).width;
11008
- t.fillRect(A - R / 2 - 5, x - 8, R + 4, 16), t.fillStyle = "#333333", t.fillText(C, A, x), t.restore();
11007
+ const E = t.measureText(C).width;
11008
+ t.fillRect(A - E / 2 - 5, x - 8, E + 4, 16), t.fillStyle = "#333333", t.fillText(C, A, x), t.restore();
11009
11009
  };
11010
11010
  s(e, i, "start", this._dragPoint === "start" || this._hoverPoint === "start"), s(r, a, "end", this._dragPoint === "end" || this._hoverPoint === "end");
11011
11011
  const n = (e + r) / 2, o = (i + a) / 2, h = r - e, l = a - i, g = Math.sqrt(h * h + l * l);
@@ -11237,7 +11237,7 @@ class es {
11237
11237
  if (P === null) return;
11238
11238
  const _ = l - P, C = Math.abs(M - p), A = i.series.priceToCoordinate(p), x = i.series.priceToCoordinate(M);
11239
11239
  if (A === null || x === null) return;
11240
- const R = Math.abs(A - x), B = R > 0 ? C / R : 0.01, I = _ * B, W = Math.max(1e-3, Math.abs(this.state.adjustStartData.channelHeight + I));
11240
+ const E = Math.abs(A - x), B = E > 0 ? C / E : 0.01, I = _ * B, W = Math.max(1e-3, Math.abs(this.state.adjustStartData.channelHeight + I));
11241
11241
  this.state.dragTarget.updateChannelHeight(W);
11242
11242
  }
11243
11243
  }
@@ -11356,11 +11356,11 @@ class es {
11356
11356
  if (p === 0) return !1;
11357
11357
  const M = -u / p, k = d / p;
11358
11358
  for (let P = 0; P <= 10; P++) {
11359
- const S = P / 10, _ = M * 30 * S, C = k * 30 * S, A = a + _, x = s + C, R = n + _, B = o + C, I = t - A, W = e - x, L = R - A, $ = B - x, at = I * L + W * $, J = L * L + $ * $;
11359
+ const S = P / 10, _ = M * 30 * S, C = k * 30 * S, A = a + _, x = s + C, E = n + _, B = o + C, I = t - A, W = e - x, L = E - A, $ = B - x, at = I * L + W * $, J = L * L + $ * $;
11360
11360
  let Z = -1;
11361
11361
  J !== 0 && (Z = at / J);
11362
11362
  let O, it;
11363
- Z < 0 ? (O = A, it = x) : Z > 1 ? (O = R, it = B) : (O = A + Z * L, it = x + Z * $);
11363
+ Z < 0 ? (O = A, it = x) : Z > 1 ? (O = E, it = B) : (O = A + Z * L, it = x + Z * $);
11364
11364
  const ht = t - O, pt = e - it;
11365
11365
  if (Math.sqrt(ht * ht + pt * pt) <= r)
11366
11366
  return !0;
@@ -14499,8 +14499,8 @@ class os {
14499
14499
  if (this.state.fibonacciSpiralCenterPoint && this.previewFibonacciSpiralMark) {
14500
14500
  const u = this.previewFibonacciSpiralMark.getCenterPrice(), p = this.previewFibonacciSpiralMark.getCenterTime(), M = i.series.priceToCoordinate(u), P = r.timeScale().timeToCoordinate(p);
14501
14501
  if (M !== null && P !== null) {
14502
- const S = h - P, _ = l - M, C = Math.sqrt(S * S + _ * _), A = M + C, x = i.series.coordinateToPrice(A), R = Math.abs(x - u);
14503
- this.previewFibonacciSpiralMark.updateRadius && this.previewFibonacciSpiralMark.updateRadius(R);
14502
+ const S = h - P, _ = l - M, C = Math.sqrt(S * S + _ * _), A = M + C, x = i.series.coordinateToPrice(A), E = Math.abs(x - u);
14503
+ this.previewFibonacciSpiralMark.updateRadius && this.previewFibonacciSpiralMark.updateRadius(E);
14504
14504
  const B = Math.atan2(_, S), I = P + C * Math.cos(B), W = M + C * Math.sin(B);
14505
14505
  this.previewFibonacciSpiralMark.setRadiusPoint({ x: I, y: W });
14506
14506
  }
@@ -16971,8 +16971,8 @@ class ri {
16971
16971
  let _, C;
16972
16972
  const A = n + (r - s) * Math.tan(P), x = s + (a - n) / Math.tan(P);
16973
16973
  if (A >= a && A <= i ? (_ = r, C = A) : x >= e && x <= r ? (_ = x, C = a) : (_ = r, C = a), t.lineTo(_, C), t.stroke(), this._showLabels && !this._isPreview) {
16974
- const R = Math.round(P * 180 / Math.PI), B = Math.sqrt(Math.pow(_ - s, 2) + Math.pow(C - n, 2)) * 0.5, I = s + B * Math.cos(P), W = n + B * Math.sin(P);
16975
- t.save(), t.fillStyle = this._labelColor, t.font = "10px Arial", t.textAlign = "center", t.textBaseline = "middle", t.fillText(`${R}°`, I, W), t.restore();
16974
+ const E = Math.round(P * 180 / Math.PI), B = Math.sqrt(Math.pow(_ - s, 2) + Math.pow(C - n, 2)) * 0.5, I = s + B * Math.cos(P), W = n + B * Math.sin(P);
16975
+ t.save(), t.fillStyle = this._labelColor, t.font = "10px Arial", t.textAlign = "center", t.textBaseline = "middle", t.fillText(`${E}°`, I, W), t.restore();
16976
16976
  }
16977
16977
  }
16978
16978
  t.restore();
@@ -18440,10 +18440,10 @@ class ai {
18440
18440
  if ((this._showHandles || this._isDragging || this._hoverPoint) && !this._isPreview) {
18441
18441
  const p = (_, C, A, x = !1) => {
18442
18442
  e.save(), e.fillStyle = this._color, e.beginPath(), e.arc(_, C, 6, 0, Math.PI * 2), e.fill(), e.fillStyle = "#FFFFFF", e.beginPath(), e.arc(_, C, 4, 0, Math.PI * 2), e.fill(), x && (e.strokeStyle = this._color, e.lineWidth = 2, e.setLineDash([]), e.beginPath(), e.arc(_, C, 8, 0, Math.PI * 2), e.stroke()), e.fillStyle = this._color, e.font = "12px Arial", e.textAlign = "center", e.textBaseline = "bottom";
18443
- let R = "";
18444
- A === "start" ? R = `${this._startPrice.toFixed(2)}` : A === "end" ? R = `${this._endPrice.toFixed(2)}` : A === "channel" && (R = `${(this._channelHeight / this._startPrice * 100).toFixed(2)}%`), e.fillStyle = "rgba(255, 255, 255, 0.9)";
18445
- const B = e.measureText(R).width;
18446
- e.fillRect(_ - B / 2 - 5, C - 25, B + 10, 18), e.fillStyle = "#333333", e.fillText(R, _, C - 10), e.restore();
18443
+ let E = "";
18444
+ A === "start" ? E = `${this._startPrice.toFixed(2)}` : A === "end" ? E = `${this._endPrice.toFixed(2)}` : A === "channel" && (E = `${(this._channelHeight / this._startPrice * 100).toFixed(2)}%`), e.fillStyle = "rgba(255, 255, 255, 0.9)";
18445
+ const B = e.measureText(E).width;
18446
+ e.fillRect(_ - B / 2 - 5, C - 25, B + 10, 18), e.fillStyle = "#333333", e.fillText(E, _, C - 10), e.restore();
18447
18447
  };
18448
18448
  p(i, r, "start", this._dragPoint === "start" || this._hoverPoint === "start"), p(a, s, "end", this._dragPoint === "end" || this._hoverPoint === "end");
18449
18449
  const M = (i + a) / 2, k = (r + s) / 2, P = M + c * u, S = k + d * u;
@@ -18780,11 +18780,11 @@ class fs {
18780
18780
  if (p === 0) return !1;
18781
18781
  const M = -u / p, k = d / p;
18782
18782
  for (let P = -1; P <= 1; P++) {
18783
- const S = M * 30 * P, _ = k * 30 * P, C = a + S, A = s + _, x = n + S, R = o + _, B = t - C, I = e - A, W = x - C, L = R - A, $ = B * W + I * L, at = W * W + L * L;
18783
+ const S = M * 30 * P, _ = k * 30 * P, C = a + S, A = s + _, x = n + S, E = o + _, B = t - C, I = e - A, W = x - C, L = E - A, $ = B * W + I * L, at = W * W + L * L;
18784
18784
  let J = -1;
18785
18785
  at !== 0 && (J = $ / at);
18786
18786
  let Z, O;
18787
- J < 0 ? (Z = C, O = A) : J > 1 ? (Z = x, O = R) : (Z = C + J * W, O = A + J * L);
18787
+ J < 0 ? (Z = C, O = A) : J > 1 ? (Z = x, O = E) : (Z = C + J * W, O = A + J * L);
18788
18788
  const it = t - Z, ht = e - O;
18789
18789
  if (Math.sqrt(it * it + ht * ht) <= r)
18790
18790
  return !0;
@@ -23205,7 +23205,7 @@ class ui {
23205
23205
  return i ? t >= i.minX && t <= i.maxX && e >= i.minY && e <= i.maxY : !1;
23206
23206
  }
23207
23207
  }
23208
- class Rs {
23208
+ class Es {
23209
23209
  constructor(t) {
23210
23210
  this.previewTimeRangeMark = null, this.timeRangeMarks = [], this.dragStartData = null, this.isOperating = !1, this.firstPointPrice = 0, this.firstPointTime = 0, this.secondPointPrice = 0, this.secondPointTime = 0, this.setTimeRangeMarkMode = () => (this.state = {
23211
23211
  ...this.state,
@@ -23673,7 +23673,7 @@ class ae {
23673
23673
  }
23674
23674
  }
23675
23675
  }
23676
- class Es {
23676
+ class Rs {
23677
23677
  constructor(t) {
23678
23678
  this.previewMark = null, this.TriangleABCDMarks = [], this.mouseDownPoint = null, this.dragStartData = null, this.isOperating = !1, this.defaultColor = "#396DFE", this.lastMousePoint = null, this.setGlassTriangleABCDMode = () => (this.state = {
23679
23679
  ...this.state,
@@ -31677,8 +31677,8 @@ class _i {
31677
31677
  if (isNaN(t) || isNaN(e) || !this._chart || !this._series) return;
31678
31678
  const i = this._chart.timeScale(), r = i.timeToCoordinate(this._handleTime), a = this._series.priceToCoordinate(this._handlePrice), s = i.timeToCoordinate(this._baseStartTime), n = this._series.priceToCoordinate(this._baseStartPrice), o = i.timeToCoordinate(this._baseEndTime), h = this._series.priceToCoordinate(this._baseEndPrice), l = i.timeToCoordinate(this._extensionTime), g = this._series.priceToCoordinate(this._extensionPrice);
31679
31679
  if (r === null || a === null || s === null || n === null || o === null || h === null || l === null || g === null) return;
31680
- const c = r + t, d = a + e, u = s + t, p = n + e, M = o + t, k = h + e, P = l + t, S = g + e, _ = i.coordinateToTime(c), C = this._series.coordinateToPrice(d), A = i.coordinateToTime(u), x = this._series.coordinateToPrice(p), R = i.coordinateToTime(M), B = this._series.coordinateToPrice(k), I = i.coordinateToTime(P), W = this._series.coordinateToPrice(S);
31681
- _ !== null && !isNaN(C) && A !== null && !isNaN(x) && R !== null && !isNaN(B) && I !== null && !isNaN(W) && (this._handleTime = _, this._handlePrice = C, this._baseStartTime = A, this._baseStartPrice = x, this._baseEndTime = R, this._baseEndPrice = B, this._extensionTime = I, this._extensionPrice = W, this.requestUpdate());
31680
+ const c = r + t, d = a + e, u = s + t, p = n + e, M = o + t, k = h + e, P = l + t, S = g + e, _ = i.coordinateToTime(c), C = this._series.coordinateToPrice(d), A = i.coordinateToTime(u), x = this._series.coordinateToPrice(p), E = i.coordinateToTime(M), B = this._series.coordinateToPrice(k), I = i.coordinateToTime(P), W = this._series.coordinateToPrice(S);
31681
+ _ !== null && !isNaN(C) && A !== null && !isNaN(x) && E !== null && !isNaN(B) && I !== null && !isNaN(W) && (this._handleTime = _, this._handlePrice = C, this._baseStartTime = A, this._baseStartPrice = x, this._baseEndTime = E, this._baseEndPrice = B, this._extensionTime = I, this._extensionPrice = W, this.requestUpdate());
31682
31682
  }
31683
31683
  isPointNearHandle(t, e, i = 15) {
31684
31684
  if (!this._chart || !this._series) return null;
@@ -31725,8 +31725,8 @@ class _i {
31725
31725
  const g = (a + n) / 2, c = (s + o) / 2, d = a === n && s === o, u = h - g, p = l - c;
31726
31726
  if (e.strokeStyle = "#2962FF", e.setLineDash([]), e.beginPath(), e.moveTo(g, c), e.lineTo(i, r), e.stroke(), !d) {
31727
31727
  const S = -u * 3, _ = -p * 3, C = [];
31728
- for (let R = 0; R < this._numberOfForks; R++) {
31729
- const B = R / (this._numberOfForks - 1), I = a + (n - a) * B, W = s + (o - s) * B;
31728
+ for (let E = 0; E < this._numberOfForks; E++) {
31729
+ const B = E / (this._numberOfForks - 1), I = a + (n - a) * B, W = s + (o - s) * B;
31730
31730
  C.push({ x: I, y: W });
31731
31731
  }
31732
31732
  const A = [
@@ -31736,22 +31736,22 @@ class _i {
31736
31736
  "#2196F3",
31737
31737
  "#9C27B0"
31738
31738
  ];
31739
- e.setLineDash(this._isPreview ? [5, 3] : []), C.forEach((R, B) => {
31740
- e.strokeStyle = A[B], e.lineWidth = B === 2 ? this._lineWidth + 1 : this._lineWidth, e.beginPath(), e.moveTo(R.x, R.y), e.lineTo(R.x + S, R.y + _), e.stroke();
31739
+ e.setLineDash(this._isPreview ? [5, 3] : []), C.forEach((E, B) => {
31740
+ e.strokeStyle = A[B], e.lineWidth = B === 2 ? this._lineWidth + 1 : this._lineWidth, e.beginPath(), e.moveTo(E.x, E.y), e.lineTo(E.x + S, E.y + _), e.stroke();
31741
31741
  }), e.lineWidth = this._lineWidth;
31742
31742
  const x = e.createLinearGradient(a, s, n, o);
31743
31743
  if (x.addColorStop(0, "#FF4444"), x.addColorStop(0.5, "#4CAF50"), x.addColorStop(1, "#9C27B0"), e.strokeStyle = x, e.setLineDash([]), e.beginPath(), e.moveTo(a, s), e.lineTo(n, o), e.stroke(), !this._isPreview)
31744
- for (let R = 0; R < C.length - 1; R++) {
31745
- const B = C[R], I = C[R + 1], W = e.createLinearGradient(
31744
+ for (let E = 0; E < C.length - 1; E++) {
31745
+ const B = C[E], I = C[E + 1], W = e.createLinearGradient(
31746
31746
  B.x,
31747
31747
  B.y,
31748
31748
  I.x + S,
31749
31749
  I.y + _
31750
31750
  );
31751
- R === 0 ? (W.addColorStop(0, "rgba(255, 68, 68, 0.2)"), W.addColorStop(1, "rgba(255, 170, 0, 0.3)")) : R === 1 ? (W.addColorStop(0, "rgba(255, 170, 0, 0.3)"), W.addColorStop(1, "rgba(76, 175, 80, 0.4)")) : R === 2 ? (W.addColorStop(0, "rgba(76, 175, 80, 0.4)"), W.addColorStop(1, "rgba(33, 150, 243, 0.3)")) : R === 3 && (W.addColorStop(0, "rgba(33, 150, 243, 0.3)"), W.addColorStop(1, "rgba(156, 39, 176, 0.2)")), e.fillStyle = W, e.beginPath(), e.moveTo(B.x, B.y), e.lineTo(B.x + S, B.y + _), e.lineTo(I.x + S, I.y + _), e.lineTo(I.x, I.y), e.closePath(), e.fill(), e.strokeStyle = A[R], e.lineWidth = 0.5, e.setLineDash([2, 2]), e.stroke(), e.setLineDash([]);
31751
+ E === 0 ? (W.addColorStop(0, "rgba(255, 68, 68, 0.2)"), W.addColorStop(1, "rgba(255, 170, 0, 0.3)")) : E === 1 ? (W.addColorStop(0, "rgba(255, 170, 0, 0.3)"), W.addColorStop(1, "rgba(76, 175, 80, 0.4)")) : E === 2 ? (W.addColorStop(0, "rgba(76, 175, 80, 0.4)"), W.addColorStop(1, "rgba(33, 150, 243, 0.3)")) : E === 3 && (W.addColorStop(0, "rgba(33, 150, 243, 0.3)"), W.addColorStop(1, "rgba(156, 39, 176, 0.2)")), e.fillStyle = W, e.beginPath(), e.moveTo(B.x, B.y), e.lineTo(B.x + S, B.y + _), e.lineTo(I.x + S, I.y + _), e.lineTo(I.x, I.y), e.closePath(), e.fill(), e.strokeStyle = A[E], e.lineWidth = 0.5, e.setLineDash([2, 2]), e.stroke(), e.setLineDash([]);
31752
31752
  }
31753
- this._isPreview || C.forEach((R, B) => {
31754
- const I = R.x + S, W = R.y + _;
31753
+ this._isPreview || C.forEach((E, B) => {
31754
+ const I = E.x + S, W = E.y + _;
31755
31755
  e.fillStyle = A[B], e.beginPath(), e.arc(I, W, 3, 0, Math.PI * 2), e.fill(), e.fillStyle = "#FFFFFF", e.beginPath(), e.arc(I, W, 1, 0, Math.PI * 2), e.fill();
31756
31756
  });
31757
31757
  }
@@ -31823,8 +31823,8 @@ class _i {
31823
31823
  if (t == null || e == null || i == null || r == null || a == null || s == null || n == null || o == null) return null;
31824
31824
  const h = (i + a) / 2, l = (r + s) / 2, g = t - h, c = e - l, d = 3, u = -g * d, p = -c * d, M = [];
31825
31825
  for (let C = 0; C < this._numberOfForks; C++) {
31826
- const A = C / (this._numberOfForks - 1), x = i + (a - i) * A, R = r + (s - r) * A;
31827
- M.push({ x, y: R });
31826
+ const A = C / (this._numberOfForks - 1), x = i + (a - i) * A, E = r + (s - r) * A;
31827
+ M.push({ x, y: E });
31828
31828
  }
31829
31829
  const k = M.map((C) => ({
31830
31830
  x: C.x + u,
@@ -32317,7 +32317,7 @@ class ea {
32317
32317
  chart: t.props.chart,
32318
32318
  containerRef: t.containerRef,
32319
32319
  onCloseDrawing: t.props.onCloseDrawing
32320
- }), this.timeRangeMarkManager = new Rs({
32320
+ }), this.timeRangeMarkManager = new Es({
32321
32321
  chartSeries: t.props.chartSeries,
32322
32322
  chart: t.props.chart,
32323
32323
  containerRef: t.containerRef,
@@ -32347,7 +32347,7 @@ class ea {
32347
32347
  chart: t.props.chart,
32348
32348
  containerRef: t.containerRef,
32349
32349
  onCloseDrawing: t.props.onCloseDrawing
32350
- }), this.triangleABCDMarkManager = new Es({
32350
+ }), this.triangleABCDMarkManager = new Rs({
32351
32351
  chartSeries: t.props.chartSeries,
32352
32352
  chart: t.props.chart,
32353
32353
  containerRef: t.containerRef,
@@ -34319,7 +34319,7 @@ const b = 1.5, T = "round", z = "round", Oi = ({ size: f = 29, color: t = "curre
34319
34319
  /* @__PURE__ */ m.jsx("circle", { cx: "2", cy: "20", r: "1.2", stroke: t, strokeWidth: b, fill: "none" }),
34320
34320
  /* @__PURE__ */ m.jsx("circle", { cx: "12", cy: "2", r: "1.2", stroke: t, strokeWidth: b, fill: "none" }),
34321
34321
  /* @__PURE__ */ m.jsx("circle", { cx: "22", cy: "20", r: "1.2", stroke: t, strokeWidth: b, fill: "none" })
34322
- ] }), Ra = ({ size: f = 29, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsxs("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: [
34322
+ ] }), Ea = ({ size: f = 29, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsxs("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: [
34323
34323
  /* @__PURE__ */ m.jsx("path", { d: "M2 20L12 2L22 20L2 20Z", stroke: t, strokeWidth: b * 0.8, strokeLinecap: T, strokeLinejoin: z, fill: "none" }),
34324
34324
  /* @__PURE__ */ m.jsx("path", { d: "M6 16L18 16", stroke: t, strokeWidth: b * 0.8, strokeLinecap: T, strokeDasharray: "2 2" }),
34325
34325
  /* @__PURE__ */ m.jsx("circle", { cx: "2", cy: "20", r: "1", stroke: t, strokeWidth: b, fill: "none" }),
@@ -34327,7 +34327,7 @@ const b = 1.5, T = "round", z = "round", Oi = ({ size: f = 29, color: t = "curre
34327
34327
  /* @__PURE__ */ m.jsx("circle", { cx: "22", cy: "20", r: "1", stroke: t, strokeWidth: b, fill: "none" }),
34328
34328
  /* @__PURE__ */ m.jsx("circle", { cx: "6", cy: "16", r: "1", stroke: t, strokeWidth: b, fill: "none" }),
34329
34329
  /* @__PURE__ */ m.jsx("circle", { cx: "18", cy: "16", r: "1", stroke: t, strokeWidth: b, fill: "none" })
34330
- ] }), Ea = ({ size: f = 29, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsxs("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: [
34330
+ ] }), Ra = ({ size: f = 29, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsxs("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: [
34331
34331
  /* @__PURE__ */ m.jsx("path", { d: "M2 18L6 6L10 14L14 6L18 10L22 18", stroke: t, strokeWidth: b, strokeLinecap: T, strokeLinejoin: z }),
34332
34332
  /* @__PURE__ */ m.jsx("circle", { cx: "6", cy: "6", r: "0.8", fill: t }),
34333
34333
  /* @__PURE__ */ m.jsx("circle", { cx: "10", cy: "14", r: "0.8", fill: t }),
@@ -34622,7 +34622,7 @@ const b = 1.5, T = "round", z = "round", Oi = ({ size: f = 29, color: t = "curre
34622
34622
  /* @__PURE__ */ m.jsx("path", { d: "M15 6V18", stroke: t, strokeWidth: b, strokeLinecap: T }),
34623
34623
  /* @__PURE__ */ m.jsx("path", { d: "M18 8V16", stroke: t, strokeWidth: b, strokeLinecap: T }),
34624
34624
  /* @__PURE__ */ m.jsx("path", { d: "M20 10L23 12L20 14", stroke: t, strokeWidth: b, strokeLinecap: T, strokeLinejoin: z })
34625
- ] }), Rn = ({ size: f = 29, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsxs("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: [
34625
+ ] }), En = ({ size: f = 29, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsxs("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: [
34626
34626
  /* @__PURE__ */ m.jsx("path", { d: "M12 2V22", stroke: t, strokeWidth: b, strokeLinecap: T }),
34627
34627
  /* @__PURE__ */ m.jsx("path", { d: "M8 6H16", stroke: t, strokeWidth: b, strokeLinecap: T }),
34628
34628
  /* @__PURE__ */ m.jsx("path", { d: "M6 9H18", stroke: t, strokeWidth: b, strokeLinecap: T }),
@@ -34630,7 +34630,7 @@ const b = 1.5, T = "round", z = "round", Oi = ({ size: f = 29, color: t = "curre
34630
34630
  /* @__PURE__ */ m.jsx("path", { d: "M6 15H18", stroke: t, strokeWidth: b, strokeLinecap: T }),
34631
34631
  /* @__PURE__ */ m.jsx("path", { d: "M8 18H16", stroke: t, strokeWidth: b, strokeLinecap: T }),
34632
34632
  /* @__PURE__ */ m.jsx("path", { d: "M10 20L12 23L14 20", stroke: t, strokeWidth: b, strokeLinecap: T, strokeLinejoin: z })
34633
- ] }), En = ({ size: f = 29, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsx("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: /* @__PURE__ */ m.jsx("path", { d: "M4 20A16 16 0 0 1 20 4L20 20L4 20Z", stroke: t, strokeWidth: b, fill: "none" }) }), yn = ({ size: f = 25, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsxs("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: [
34633
+ ] }), Rn = ({ size: f = 29, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsx("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: /* @__PURE__ */ m.jsx("path", { d: "M4 20A16 16 0 0 1 20 4L20 20L4 20Z", stroke: t, strokeWidth: b, fill: "none" }) }), yn = ({ size: f = 25, color: t = "currentColor", className: e }) => /* @__PURE__ */ m.jsxs("svg", { width: f, height: f, viewBox: "0 0 24 24", fill: "none", className: e, children: [
34634
34634
  /* @__PURE__ */ m.jsx(
34635
34635
  "rect",
34636
34636
  {
@@ -38943,7 +38943,7 @@ const Vn = ({
38943
38943
  ...o,
38944
38944
  params: V
38945
38945
  });
38946
- }, R = (Y, U) => {
38946
+ }, E = (Y, U) => {
38947
38947
  if (!o || !o.params) return;
38948
38948
  const V = [...o.params];
38949
38949
  V[Y] = { ...V[Y], lineWidth: U }, h({
@@ -39014,10 +39014,10 @@ const Vn = ({
39014
39014
  ut(() => {
39015
39015
  const Y = (V) => {
39016
39016
  if (c) {
39017
- const G = V.clientX - u.x, wt = V.clientY - u.y, Tt = window.innerWidth - 400, Rt = window.innerHeight - 400;
39017
+ const G = V.clientX - u.x, wt = V.clientY - u.y, Tt = window.innerWidth - 400, Et = window.innerHeight - 400;
39018
39018
  g({
39019
39019
  x: Math.max(10, Math.min(G, Tt)),
39020
- y: Math.max(10, Math.min(wt, Rt))
39020
+ y: Math.max(10, Math.min(wt, Et))
39021
39021
  });
39022
39022
  }
39023
39023
  }, U = () => {
@@ -39074,7 +39074,7 @@ const Vn = ({
39074
39074
  cursor: "grab",
39075
39075
  userSelect: "none",
39076
39076
  flexShrink: 0
39077
- }, E = {
39077
+ }, R = {
39078
39078
  fontSize: "14px",
39079
39079
  fontWeight: "bold",
39080
39080
  color: r?.layout?.textColor || "#000000",
@@ -39236,7 +39236,7 @@ const Vn = ({
39236
39236
  onMouseDown: (Y) => {
39237
39237
  Y.target === k.current && Y.preventDefault();
39238
39238
  },
39239
- children: /* @__PURE__ */ m.jsx("div", { style: E, children: L() })
39239
+ children: /* @__PURE__ */ m.jsx("div", { style: R, children: L() })
39240
39240
  }
39241
39241
  ),
39242
39242
  /* @__PURE__ */ m.jsxs("div", { style: N, children: [
@@ -39262,7 +39262,7 @@ const Vn = ({
39262
39262
  {
39263
39263
  style: Q,
39264
39264
  value: Y.lineWidth,
39265
- onChange: (V) => R(U, Number(V.target.value)),
39265
+ onChange: (V) => E(U, Number(V.target.value)),
39266
39266
  onClick: (V) => V.stopPropagation(),
39267
39267
  children: [
39268
39268
  /* @__PURE__ */ m.jsx("option", { value: 1, children: "1px" }),
@@ -39692,10 +39692,10 @@ class Gn {
39692
39692
  MinusDI: []
39693
39693
  }, r = t.map((S) => S.time), a = [0], s = [0], n = [0];
39694
39694
  for (let S = 1; S < t.length; S++) {
39695
- const _ = t[S].high, C = t[S].low, A = t[S - 1].high, x = t[S - 1].low, R = t[S - 1].close, B = Math.max(
39695
+ const _ = t[S].high, C = t[S].low, A = t[S - 1].high, x = t[S - 1].low, E = t[S - 1].close, B = Math.max(
39696
39696
  _ - C,
39697
- Math.abs(_ - R),
39698
- Math.abs(C - R)
39697
+ Math.abs(_ - E),
39698
+ Math.abs(C - E)
39699
39699
  );
39700
39700
  a.push(B);
39701
39701
  const I = _ - A, W = x - C;
@@ -41592,10 +41592,10 @@ const So = ({
41592
41592
  }, [f, i]), ut(() => {
41593
41593
  f && g((() => {
41594
41594
  if (a?.current) {
41595
- const V = a.current.getBoundingClientRect(), G = 450, wt = 500, Tt = V.left + (V.width - G) / 2, Rt = V.top + (V.height - wt) / 2;
41595
+ const V = a.current.getBoundingClientRect(), G = 450, wt = 500, Tt = V.left + (V.width - G) / 2, Et = V.top + (V.height - wt) / 2;
41596
41596
  return {
41597
41597
  x: Math.max(10, Tt),
41598
- y: Math.max(10, Rt)
41598
+ y: Math.max(10, Et)
41599
41599
  };
41600
41600
  } else {
41601
41601
  const V = Math.max(10, (window.innerWidth - 450) / 2), G = Math.max(10, (window.innerHeight - 500) / 2);
@@ -41608,14 +41608,14 @@ const So = ({
41608
41608
  if (o.length >= U.maxParams || !U.allowAdd) return;
41609
41609
  const V = o.map((Lt) => Lt.paramValue), G = [6, 12, 14, 24, 26, 9, 20].filter((Lt) => !V.includes(Lt));
41610
41610
  if (G.length === 0) return;
41611
- const wt = B(), Tt = G[0], Rt = {
41611
+ const wt = B(), Tt = G[0], Et = {
41612
41612
  paramName: `${n.modal?.parameterName || "Param"}${Tt}`,
41613
41613
  paramValue: Tt,
41614
41614
  lineColor: wt,
41615
41615
  lineWidth: 1,
41616
41616
  data: []
41617
41617
  };
41618
- h([...o, Rt]);
41618
+ h([...o, Et]);
41619
41619
  }, _ = (U) => {
41620
41620
  const V = $(s);
41621
41621
  if (o.length <= V.minParams || !V.allowDelete) return;
@@ -41639,7 +41639,7 @@ const So = ({
41639
41639
  ...G[U],
41640
41640
  lineColor: V
41641
41641
  }, h(G);
41642
- }, R = (U, V) => {
41642
+ }, E = (U, V) => {
41643
41643
  const G = [...o];
41644
41644
  G[U] = {
41645
41645
  ...G[U],
@@ -41790,9 +41790,9 @@ const So = ({
41790
41790
  ut(() => {
41791
41791
  const U = (G) => {
41792
41792
  if (c) {
41793
- const wt = G.clientX - u.x, Tt = G.clientY - u.y, Rt = window.innerWidth - 450, Lt = window.innerHeight - 500;
41793
+ const wt = G.clientX - u.x, Tt = G.clientY - u.y, Et = window.innerWidth - 450, Lt = window.innerHeight - 500;
41794
41794
  g({
41795
- x: Math.max(10, Math.min(wt, Rt)),
41795
+ x: Math.max(10, Math.min(wt, Et)),
41796
41796
  y: Math.max(10, Math.min(Tt, Lt))
41797
41797
  });
41798
41798
  }
@@ -41855,7 +41855,7 @@ const So = ({
41855
41855
  fontWeight: "bold",
41856
41856
  color: r?.layout?.textColor || "#000000",
41857
41857
  margin: 0
41858
- }, E = {
41858
+ }, R = {
41859
41859
  padding: "16px",
41860
41860
  flex: 1,
41861
41861
  display: "flex",
@@ -42020,7 +42020,7 @@ const So = ({
42020
42020
  ] })
42021
42021
  }
42022
42022
  ),
42023
- /* @__PURE__ */ m.jsxs("div", { style: E, children: [
42023
+ /* @__PURE__ */ m.jsxs("div", { style: R, children: [
42024
42024
  /* @__PURE__ */ m.jsx(
42025
42025
  "div",
42026
42026
  {
@@ -42057,7 +42057,7 @@ const So = ({
42057
42057
  {
42058
42058
  style: y,
42059
42059
  value: U.lineWidth,
42060
- onChange: (G) => R(V, Number(G.target.value)),
42060
+ onChange: (G) => E(V, Number(G.target.value)),
42061
42061
  onClick: (G) => G.stopPropagation(),
42062
42062
  children: [
42063
42063
  /* @__PURE__ */ m.jsx("option", { value: 1, children: "1px" }),
@@ -42947,7 +42947,7 @@ class Fo {
42947
42947
  return this.series;
42948
42948
  }
42949
42949
  }
42950
- class Ro {
42950
+ class Eo {
42951
42951
  constructor(t, e) {
42952
42952
  this.series = null, this.refreshData = (r) => {
42953
42953
  if (!this.series) return;
@@ -43051,7 +43051,7 @@ class Ro {
43051
43051
  return this.series;
43052
43052
  }
43053
43053
  }
43054
- class Eo {
43054
+ class Ro {
43055
43055
  constructor(t, e) {
43056
43056
  this.series = null, this._chart = null, this._renderer = null, this._chartData = [], this._width = 0, this._height = 0, this._isAttached = !1, this.channelWidthPercent = 0.3, this._timeScale = null, this._lineWidth = 2, this.refreshData = (r) => {
43057
43057
  if (!this.series) return;
@@ -43331,10 +43331,10 @@ class Bo {
43331
43331
  this.currentChart = new yo(this.chartLayer, this.theme);
43332
43332
  break;
43333
43333
  case q.HighLow:
43334
- this.currentChart = new Ro(this.chartLayer, this.theme);
43334
+ this.currentChart = new Eo(this.chartLayer, this.theme);
43335
43335
  break;
43336
43336
  case q.HLCArea:
43337
- this.currentChart = new Eo(this.chartLayer, this.theme);
43337
+ this.currentChart = new Ro(this.chartLayer, this.theme);
43338
43338
  break;
43339
43339
  default:
43340
43340
  console.warn(`Unknown chart type: ${t}`), this.currentChart = new xi(this.chartLayer, this.theme);
@@ -43474,7 +43474,7 @@ class Uo {
43474
43474
  const L = (_ - 0.5) * 2;
43475
43475
  C = Math.floor(255 * L), A = Math.floor(255 * (1 - L)), x = Math.floor(255 * (1 - L));
43476
43476
  }
43477
- const R = 0.4 + _ * 0.6, B = `rgba(${C}, ${A}, ${x}, ${R})`, I = o + (n - S), W = this._height - (u + 1) * d;
43477
+ const E = 0.4 + _ * 0.6, B = `rgba(${C}, ${A}, ${x}, ${E})`, I = o + (n - S), W = this._height - (u + 1) * d;
43478
43478
  t.fillStyle = B, t.fillRect(I, W, S, d);
43479
43479
  }
43480
43480
  t.restore();
@@ -44750,7 +44750,7 @@ class Lo extends rt.Component {
44750
44750
  left: 0,
44751
44751
  width: "100%",
44752
44752
  height: "100%",
44753
- zIndex: 5,
44753
+ zIndex: 1,
44754
44754
  pointerEvents: t ? "auto" : "none",
44755
44755
  opacity: 1,
44756
44756
  display: "block"
@@ -46700,6 +46700,7 @@ const tl = {
46700
46700
  hover: "#2D323D",
46701
46701
  active: "#2962FF",
46702
46702
  color: "#E8EAED",
46703
+ iconColor: "#FFFFFF",
46703
46704
  activeTextColor: "#FFFFFF",
46704
46705
  boxShadow: "0 0 0 1px rgba(255, 255, 255, 0.1), 0 2px 4px rgba(0, 0, 0, 0.3)",
46705
46706
  sendButton: {
@@ -46764,6 +46765,7 @@ const tl = {
46764
46765
  hover: "#E1E5E9",
46765
46766
  active: "#2962FF",
46766
46767
  color: "#495057",
46768
+ iconColor: "#000000",
46767
46769
  activeTextColor: "#FFFFFF",
46768
46770
  boxShadow: "0 0 0 1px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.1)",
46769
46771
  sendButton: {
@@ -47640,7 +47642,7 @@ const ll = {
47640
47642
  deepseek: "https://www.deepseek.com/favicon.ico",
47641
47643
  claude: "https://cdn.simpleicons.org/anthropic/FF6B35",
47642
47644
  gemini: "https://cdn.simpleicons.org/google/4285F4"
47643
- }, Ri = {
47645
+ }, Ei = {
47644
47646
  aliyun: "Aliyun",
47645
47647
  openai: "OpenAI",
47646
47648
  deepseek: "DeepSeek",
@@ -47719,7 +47721,7 @@ const ul = ({
47719
47721
  onModelChange: h,
47720
47722
  data: l
47721
47723
  }) => {
47722
- const [g, c] = st(""), [d, u] = st([]), [p, M] = st(!1), [k, P] = st(""), [S, _] = st([]), [C, A] = st(!1), x = Ct(null), R = Ct(null), B = Ct(null), [I, W] = st(10), L = 10, $ = Ct(!1), at = Ct(0), J = Ct(0);
47724
+ const [g, c] = st(""), [d, u] = st([]), [p, M] = st(!1), [k, P] = st(""), [S, _] = st([]), [C, A] = st(!1), x = Ct(null), E = Ct(null), B = Ct(null), [I, W] = st(10), L = 10, $ = Ct(!1), at = Ct(0), J = Ct(0);
47723
47725
  ut(() => {
47724
47726
  const y = (Q) => {
47725
47727
  C && B.current && !B.current.contains(Q.target) && A(!1);
@@ -47793,7 +47795,7 @@ const ul = ({
47793
47795
  };
47794
47796
  return y.addEventListener("scroll", Q), () => y.removeEventListener("scroll", Q);
47795
47797
  }, []), ut(() => {
47796
- const y = R.current;
47798
+ const y = E.current;
47797
47799
  y && setTimeout(() => {
47798
47800
  y.style.height = "auto";
47799
47801
  const et = Math.max(y.scrollHeight, 60);
@@ -47809,7 +47811,7 @@ const ul = ({
47809
47811
  }
47810
47812
  ]);
47811
47813
  }, [e, t]), ut(() => {
47812
- const y = R.current;
47814
+ const y = E.current;
47813
47815
  if (!y) return;
47814
47816
  const Q = 60;
47815
47817
  y.style.height = "auto";
@@ -47834,7 +47836,7 @@ const ul = ({
47834
47836
  }, [o, i, h]);
47835
47837
  const pt = (y) => {
47836
47838
  c(y.target.value);
47837
- }, E = (y) => {
47839
+ }, R = (y) => {
47838
47840
  P(y), A(!1), h && h(y);
47839
47841
  }, N = () => !o || !k ? null : i.find(
47840
47842
  (Q) => Q.brand === o && Q.model === k
@@ -47915,7 +47917,7 @@ const ul = ({
47915
47917
  });
47916
47918
  } finally {
47917
47919
  M(!1), setTimeout(() => {
47918
- R.current?.focus();
47920
+ E.current?.focus();
47919
47921
  }, 100);
47920
47922
  }
47921
47923
  }, ct = (y) => {
@@ -48057,7 +48059,7 @@ const ul = ({
48057
48059
  textOverflow: "ellipsis",
48058
48060
  whiteSpace: "nowrap"
48059
48061
  },
48060
- onClick: () => E(y),
48062
+ onClick: () => R(y),
48061
48063
  onMouseEnter: (et) => {
48062
48064
  et.currentTarget.style.backgroundColor = y === k ? f.toolbar.button.dropdown.selected : f.toolbar.button.dropdown.hover;
48063
48065
  },
@@ -48251,7 +48253,7 @@ const ul = ({
48251
48253
  /* @__PURE__ */ m.jsx(
48252
48254
  "textarea",
48253
48255
  {
48254
- ref: R,
48256
+ ref: E,
48255
48257
  value: g,
48256
48258
  onChange: pt,
48257
48259
  onKeyDown: ct,
@@ -48328,7 +48330,7 @@ const ul = ({
48328
48330
  marginTop: "8px",
48329
48331
  textAlign: "center"
48330
48332
  }, children: [
48331
- o ? t === kt ? `Powered by ${Ri[o]}` : `由 ${Ri[o]} 提供支持` : null,
48333
+ o ? t === kt ? `Powered by ${Ei[o]}` : `由 ${Ei[o]} 提供支持` : null,
48332
48334
  k && ` - ${k}`
48333
48335
  ] })
48334
48336
  ] }),
@@ -48419,7 +48421,7 @@ const pl = [
48419
48421
  chartLayerRef: o,
48420
48422
  candleView: h
48421
48423
  }) => {
48422
- const [l, g] = st(""), [c, d] = st([]), [u, p] = st(-1), [M, k] = st(!1), [P, S] = st(0), [_, C] = st(n), [A, x] = st([]), [R, B] = st(!1), I = Ct(null), W = Ct(null), L = t.terminal.isEn === "en", [$, at] = st([]), [J, Z] = st(-1), [O, it] = st(!1);
48424
+ const [l, g] = st(""), [c, d] = st([]), [u, p] = st(-1), [M, k] = st(!1), [P, S] = st(0), [_, C] = st(n), [A, x] = st([]), [E, B] = st(!1), I = Ct(null), W = Ct(null), L = t.terminal.isEn === "en", [$, at] = st([]), [J, Z] = st(-1), [O, it] = st(!1);
48423
48425
  ut(() => {
48424
48426
  x([L ? `🕯️ Welcome to CandleView Terminal v1.0 Type 'help' to see available commands
48425
48427
  This software is licensed under AGPL 3.0
@@ -48483,7 +48485,7 @@ Npm: <a href="https://www.npmjs.com/package/candleview" target="_blank" rel="noo
48483
48485
  localStorage.setItem("terminal_command_history", JSON.stringify(X));
48484
48486
  } catch {
48485
48487
  }
48486
- }, E = (D) => {
48488
+ }, R = (D) => {
48487
48489
  x((K) => [...K, `$ ${D}`]);
48488
48490
  }, N = (D) => {
48489
48491
  x((K) => [...K, D]);
@@ -48495,7 +48497,7 @@ Npm: <a href="https://www.npmjs.com/package/candleview" target="_blank" rel="noo
48495
48497
  const nt = (D) => {
48496
48498
  D.preventDefault();
48497
48499
  const K = l.trim();
48498
- K && (E(K), e && e(K), Tt(K), pt(K), g(""), p(-1), at([]), it(!1), Z(-1), setTimeout(() => {
48500
+ K && (R(K), e && e(K), Tt(K), pt(K), g(""), p(-1), at([]), it(!1), Z(-1), setTimeout(() => {
48499
48501
  const X = document.querySelector(".terminal-scrollbar");
48500
48502
  X && (X.scrollTop = X.scrollHeight);
48501
48503
  }, 50), !r && _ && (I.current?.focus(), S(0)));
@@ -48665,15 +48667,15 @@ Npm: <a href="https://www.npmjs.com/package/candleview" target="_blank" rel="noo
48665
48667
  }, Tt = (D) => {
48666
48668
  const K = D.toLowerCase().trim();
48667
48669
  if (K.startsWith("open ") || K.startsWith("close ")) {
48668
- const [X, ...lt] = K.split(" "), mt = lt.join(" ").toUpperCase(), Ot = Object.values(F).includes(mt), Re = Object.values(j).includes(mt);
48669
- if (!Ot && !Re) {
48670
- const Gt = Object.values(F).map((Yt) => Yt.toLowerCase().replace(/_/g, " ")).join(", "), Et = Object.values(j).map((Yt) => Yt.toLowerCase().replace(/_/g, " ")).join(", ");
48670
+ const [X, ...lt] = K.split(" "), mt = lt.join(" ").toUpperCase(), Ot = Object.values(F).includes(mt), Ee = Object.values(j).includes(mt);
48671
+ if (!Ot && !Ee) {
48672
+ const Gt = Object.values(F).map((Yt) => Yt.toLowerCase().replace(/_/g, " ")).join(", "), Rt = Object.values(j).map((Yt) => Yt.toLowerCase().replace(/_/g, " ")).join(", ");
48671
48673
  N(
48672
48674
  L ? `[<span style="color: #c41a1aff">ERROR</span>] Invalid indicator: "${mt}".
48673
48675
  Main chart indicators: ${Gt}
48674
- Sub chart indicators: ${Et}` : `[<span style="color: #c41a1aff">错误</span>] 无效的指标: "${mt}"。
48676
+ Sub chart indicators: ${Rt}` : `[<span style="color: #c41a1aff">错误</span>] 无效的指标: "${mt}"。
48675
48677
  主图指标: ${Gt}
48676
- 副图指标: ${Et}`
48678
+ 副图指标: ${Rt}`
48677
48679
  );
48678
48680
  return;
48679
48681
  }
@@ -48708,13 +48710,13 @@ Sub chart indicators: ${Et}` : `[<span style="color: #c41a1aff">错误</span>]
48708
48710
  At(ft);
48709
48711
  break;
48710
48712
  default:
48711
- const Et = mt.toLowerCase().replace(/_/g, " ");
48713
+ const Rt = mt.toLowerCase().replace(/_/g, " ");
48712
48714
  N(
48713
- L ? `[<span style="color: #52c41a">INFO</span>] ${X === "open" ? "Opening" : "Closing"} main chart indicator: ${Et}` : `[<span style="color: #52c41a">信息</span>] ${X === "open" ? "开启" : "关闭"}主图指标: ${Et}`
48715
+ L ? `[<span style="color: #52c41a">INFO</span>] ${X === "open" ? "Opening" : "Closing"} main chart indicator: ${Rt}` : `[<span style="color: #52c41a">信息</span>] ${X === "open" ? "开启" : "关闭"}主图指标: ${Rt}`
48714
48716
  );
48715
48717
  break;
48716
48718
  }
48717
- else if (Re)
48719
+ else if (Ee)
48718
48720
  switch (mt) {
48719
48721
  case j.RSI:
48720
48722
  Pt(ft);
@@ -48750,9 +48752,9 @@ Sub chart indicators: ${Et}` : `[<span style="color: #c41a1aff">错误</span>]
48750
48752
  wt(ft);
48751
48753
  break;
48752
48754
  default:
48753
- const Et = mt.toLowerCase().replace(/_/g, " ");
48755
+ const Rt = mt.toLowerCase().replace(/_/g, " ");
48754
48756
  N(
48755
- L ? `[<span style="color: #52c41a">INFO</span>] ${X === "open" ? "Opening" : "Closing"} sub chart indicator: ${Et}` : `[<span style="color: #52c41a">信息</span>] ${X === "open" ? "开启" : "关闭"}副图指标: ${Et}`
48757
+ L ? `[<span style="color: #52c41a">INFO</span>] ${X === "open" ? "Opening" : "Closing"} sub chart indicator: ${Rt}` : `[<span style="color: #52c41a">信息</span>] ${X === "open" ? "开启" : "关闭"}副图指标: ${Rt}`
48756
48758
  );
48757
48759
  break;
48758
48760
  }
@@ -48806,7 +48808,7 @@ ${X}`
48806
48808
  N(
48807
48809
  L ? `Command executed: ${D}` : `命令已执行: ${D}`
48808
48810
  );
48809
- }, Rt = (D) => {
48811
+ }, Et = (D) => {
48810
48812
  if (!r)
48811
48813
  switch (D.key) {
48812
48814
  case "ArrowLeft":
@@ -48922,7 +48924,7 @@ ${X}`
48922
48924
  style: {
48923
48925
  fontSize: "20px",
48924
48926
  color: f.toolbar.button.color,
48925
- backgroundColor: R ? f.toolbar.button.hover + "20" : "transparent",
48927
+ backgroundColor: E ? f.toolbar.button.hover + "20" : "transparent",
48926
48928
  border: "none",
48927
48929
  borderRadius: "4px",
48928
48930
  padding: "6px",
@@ -48933,7 +48935,7 @@ ${X}`
48933
48935
  justifyContent: "center",
48934
48936
  width: "30px",
48935
48937
  height: "30px",
48936
- opacity: R ? 1 : 0.7,
48938
+ opacity: E ? 1 : 0.7,
48937
48939
  transition: "opacity 0.2s, background-color 0.2s"
48938
48940
  },
48939
48941
  title: L ? "Close Terminal" : "关闭终端",
@@ -49078,7 +49080,7 @@ ${X}`
49078
49080
  onChange: (D) => {
49079
49081
  g(D.target.value), p(-1), S(D.target.selectionStart || 0);
49080
49082
  },
49081
- onKeyDown: Rt,
49083
+ onKeyDown: Et,
49082
49084
  onFocus: () => k(!0),
49083
49085
  onBlur: () => k(!1),
49084
49086
  disabled: r,
@@ -49670,7 +49672,7 @@ ${X}`
49670
49672
  { id: "fibonacci-wedge", name: f.leftPanel.fibonacciWedge, description: f.leftPanel.fibonacciWedgeDesc, icon: Ca },
49671
49673
  { id: "fibonacci-fan", name: f.leftPanel.fibonacciFan, description: f.leftPanel.fibonacciFanDesc, icon: va },
49672
49674
  { id: "fibonacci-channel", name: f.leftPanel.fibonacciChannel, description: f.leftPanel.fibonacciChannelDesc, icon: Ta },
49673
- { id: "fibonacci-extension-base-price", name: f.leftPanel.fibonacciExtensionPrice, description: f.leftPanel.fibonacciExtensionPriceDesc, icon: Rn },
49675
+ { id: "fibonacci-extension-base-price", name: f.leftPanel.fibonacciExtensionPrice, description: f.leftPanel.fibonacciExtensionPriceDesc, icon: En },
49674
49676
  { id: "fibonacci-extension-base-time", name: f.leftPanel.fibonacciExtensionTime, description: f.leftPanel.fibonacciExtensionTimeDesc, icon: Fn }
49675
49677
  ]
49676
49678
  }
@@ -49682,13 +49684,13 @@ ${X}`
49682
49684
  { id: "xabcd", name: f.leftPanel.xabcdPattern, description: f.leftPanel.xabcdPatternDesc, icon: xa },
49683
49685
  { id: "head-and-shoulders", name: f.leftPanel.headAndShoulders, description: f.leftPanel.headAndShouldersDesc, icon: Da },
49684
49686
  { id: "abcd", name: f.leftPanel.abcdPattern, description: f.leftPanel.abcdPatternDesc, icon: Fa },
49685
- { id: "triangle-abcd", name: f.leftPanel.triangleAbcd, description: f.leftPanel.triangleAbcdDesc, icon: Ra }
49687
+ { id: "triangle-abcd", name: f.leftPanel.triangleAbcd, description: f.leftPanel.triangleAbcdDesc, icon: Ea }
49686
49688
  ]
49687
49689
  },
49688
49690
  {
49689
49691
  title: f.leftPanel.elliottWave,
49690
49692
  tools: [
49691
- { id: "elliott-lmpulse", name: f.leftPanel.elliottImpulse, description: f.leftPanel.elliottImpulseDesc, icon: Ea },
49693
+ { id: "elliott-lmpulse", name: f.leftPanel.elliottImpulse, description: f.leftPanel.elliottImpulseDesc, icon: Ra },
49692
49694
  { id: "elliott-corrective", name: f.leftPanel.elliottCorrective, description: f.leftPanel.elliottCorrectiveDesc, icon: ya },
49693
49695
  { id: "elliott-triangle", name: f.leftPanel.elliottTriangle, description: f.leftPanel.elliottTriangleDesc, icon: Ba },
49694
49696
  { id: "elliott-double-combo", name: f.leftPanel.elliottDoubleCombo, description: f.leftPanel.elliottDoubleComboDesc, icon: Ua },
@@ -49702,7 +49704,7 @@ ${X}`
49702
49704
  { id: "circle", name: f.leftPanel.circle, description: f.leftPanel.circleDesc, icon: aa },
49703
49705
  { id: "ellipse", name: f.leftPanel.ellipse, description: f.leftPanel.ellipseDesc, icon: ca },
49704
49706
  { id: "triangle", name: f.leftPanel.triangle, description: f.leftPanel.triangleDesc, icon: na },
49705
- { id: "sector", name: f.leftPanel.sector, description: f.leftPanel.sectorDesc, icon: En },
49707
+ { id: "sector", name: f.leftPanel.sector, description: f.leftPanel.sectorDesc, icon: Rn },
49706
49708
  { id: "curve", name: f.leftPanel.curve, description: f.leftPanel.curveDesc, icon: La },
49707
49709
  { id: "double-curve", name: f.leftPanel.doubleCurve, description: f.leftPanel.doubleCurveDesc, icon: Ka }
49708
49710
  ]
@@ -49790,7 +49792,7 @@ ${X}`
49790
49792
  }
49791
49793
  ]
49792
49794
  });
49793
- class Ei {
49795
+ class Ri {
49794
49796
  constructor() {
49795
49797
  this.handleDrawingToolSelect = (t, e) => {
49796
49798
  t.setState({
@@ -49808,7 +49810,7 @@ class Ei {
49808
49810
  }
49809
49811
  class Sl extends rt.Component {
49810
49812
  constructor(t) {
49811
- super(t), this.drawingModalRef = rt.createRef(), this.emojiPickerRef = rt.createRef(), this.cursorModalRef = rt.createRef(), this.brushModalRef = rt.createRef(), this.rulerModalRef = rt.createRef(), this.fibonacciModalRef = rt.createRef(), this.gannModalRef = rt.createRef(), this.projectInfoModalRef = rt.createRef(), this.irregularShapeModalRef = rt.createRef(), this.aiModalRef = rt.createRef(), this.toolManager = new Ei(), this.functionPopUpWidth = "200px", this.emojiSelectPopUpWidth = "315px", this.containerRef = rt.createRef(), this.updateContainerHeight = () => {
49813
+ super(t), this.drawingModalRef = rt.createRef(), this.emojiPickerRef = rt.createRef(), this.cursorModalRef = rt.createRef(), this.brushModalRef = rt.createRef(), this.rulerModalRef = rt.createRef(), this.fibonacciModalRef = rt.createRef(), this.gannModalRef = rt.createRef(), this.projectInfoModalRef = rt.createRef(), this.irregularShapeModalRef = rt.createRef(), this.aiModalRef = rt.createRef(), this.toolManager = new Ri(), this.functionPopUpWidth = "200px", this.emojiSelectPopUpWidth = "315px", this.containerRef = rt.createRef(), this.updateContainerHeight = () => {
49812
49814
  if (this.containerRef.current) {
49813
49815
  const e = this.containerRef.current.clientHeight;
49814
49816
  this.setState({ containerHeight: e });
@@ -50821,7 +50823,7 @@ class Sl extends rt.Component {
50821
50823
  ai: this.props.ai || !1,
50822
50824
  // ai config list
50823
50825
  aiconfigs: this.props.aiconfigs || []
50824
- }, this.toolManager = new Ei();
50826
+ }, this.toolManager = new Ri();
50825
50827
  }
50826
50828
  componentDidMount() {
50827
50829
  document.addEventListener("mousedown", (t) => this.handleClickOutside(t), !0), this.updateContainerHeight(), window.addEventListener("resize", this.updateContainerHeight);
@@ -52962,22 +52964,24 @@ class vl {
52962
52964
  const xl = "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4QrVaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJFeGVtcGkgKyBYTVAgQ29yZSA2LjAuMCI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOkFJR0M9Imh0dHA6Ly9ucy5hZG9iZS5jb20vQUlHQy8xLjAvIiBBSUdDOkFJR0M9InsmcXVvdDtMYWJlbCZxdW90OzogJnF1b3Q7MiZxdW90OywgJnF1b3Q7Q29udGVudFByb2R1Y2VyJnF1b3Q7OiAmcXVvdDswMDExOTExMTAwMDA4MDIxMDA0MzNCMTAwMDUmcXVvdDssICZxdW90O1Byb2R1Y2VJRCZxdW90OzogJnF1b3Q7MTIxNTMxMTg1OTk2OTc2NTAxMiZxdW90OywgJnF1b3Q7UmVzZXJ2ZWRDb2RlMSZxdW90OzogJnF1b3Q7JnF1b3Q7LCAmcXVvdDtDb250ZW50UHJvcGFnYXRvciZxdW90OzogJnF1b3Q7MDAxMTkxMTEwMDAwODAyMTAwNDMzQjEwMDA1JnF1b3Q7LCAmcXVvdDtQcm9wYWdhdGVJRCZxdW90OzogJnF1b3Q7MTIxNTMxMTg1OTk2OTc2NTAxMiZxdW90OywgJnF1b3Q7UmVzZXJ2ZWRDb2RlMiZxdW90OzogJnF1b3Q7JnF1b3Q7fSIvPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBlbmQ9InciPz7/7QAsUGhvdG9zaG9wIDMuMAA4QklNBCUAAAAAABDUHYzZjwCyBOmACZjs+EJ+/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgD6APoAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+f6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoopaAEopaSgAooooAKWkooAKKKWgBKKKKACiiigAooooAKKWigBKMUUUAFFLSUAFFLSUAFFFFABRRRQAUUtJQAUUUUAFFFFABRRS0AJRRRQAUUUUAFFFFAC0lLRQAlFLSUALSUtFACUUd6KACiiigAooooAKKKKACiiloASiiigAooooAKKKKACiiigAooooAKKKKACiiloASiiloASiiigAooooAKKKKACiiigAooooAKKKKACiiigAopaKAEopaSgAopaKAEooooAKKKWgBKKKWgBKKKWgBKKKKACiiigApaKSgAopaKAEoopaAEopaSgBaSiigAooopgLSUUUgCiiigAooooAKKKWgBKWikoAKKKKACiiigAooooAWiiigApKWkoAKKKKACiiigAooooAKWkooAKKKWgApKWigBKKWkoAWkoopgLSUUUgCiiigAooopgLRSUUgClpKWgBKKKKACiiigApaSigBaSiigApaKKACkopaACkpaSgBaSiigAooooAKKWkoAKWiigBKKKKACiiloASilpKACilpKAClopKAClpKKAFpKKKYBS0lFIAooooAWkpaSmAUUUUgCiiigApaSigBaSiigAooooAKKWkpgFFFFIAoopaACkpaSgBaKSlpgJS0lFAC0lKaSkAUtJRQAtJS0lABS0UlAC0lLRQAlFLSUAFLRRTAKKKKAEooopAFFFFABRRRQAUUUUALRRSUAFLSUUAFFFFABRRRQAUUUUAFFFFAC0lLRQAlFFFABRRRQAtFJRQAUUUUAFFLSUALSUUUwClpKWkAlLRSUALRSUUAFFFFMAooopALRSUtACUUUtMApKWkpALSUUUwCloopAFFJS0wEooopAFFFLQAlFFFAC0UlLQAlFLSUALRSUUAFFFFABS0lFABS0lFABS0UlABRRRTAKKKKAFpKKKAFpKKKQBRRRQAUtJRQAUUUUAFFFFABRRRQAUUUUwCiiigAooooAKWkopALRSUtACUUUUwCiiigBaKKKAEoopaQBRSUUAFLSUUAFFFFMAooooAKKKKQBRRS0AFFFFMBKKKKQBRRRQAUUUUALSUUUALRRSUAFFLSUAFFFLQAlFLRQAlFLRQAlFFFABRRRQAClpKKAClopKAFpKWkoAKKKKAClpKWgBKKKKYBRRRQAUUUUALRRRSASiiimAUUUUgFpKWkoAKWkooAKKKWgBKKWkpgLSUtFIAopKKYBS0UlIApaKKAEopaSgAopaSmAtFJS0gCkopaAEooooAKKKKYBRS0lAC0lLSUAFFLSUALSUtJSAKKKKYBS0lFIApaKSgAooooAKKKKAClpKWgBKWkopgFFFFAC0lFLSASiiimAUtFJSAWkoooAKKKWgBKWkpaACiiimIKSiigYUUUtIBKKKKYBRRRQAUUtFIApKKKAFopKWgAopKWmAlFFLSASiiigAooooAKKKKYBS0lFABRS0lIAopaKAEooooAKWkpaAEooopgFFFFAC0lLSUgFpKWigApKKWgBKKKKAFpKKKYBRRRQAUUUUAFFLSUAFLSUtIBKKWkoAWkoooAKKWkoAKKWkoAKKKKYBS0UUgCkoooAKKKWgBKKWkpgFFFFAC0lFLSAKSiimAtFJS0AFJS0UAJRS0UgCkpaKAEooopgFFFFABRRRQAUUUUgClpKWgAopKKAClopKAFoopKAFpKKKACiiloASiiloASiiigAooopgFFFLQAlFFFIBaSlpKAFpKKKAFoopKYC0UUUAJRRRQAUUUtIAopKWgBKKKWmAlFLSUgFpKKKACiilpgFFJS0AJRRRSAKKKKACiiigAooopgFFFFABRS0UAFJRRSAKKKKAFpKKWgBKKKKYBRRRQAUtJS0gCikpaAEooopgFFFFAC0lFFABRRRQAUUUUAFFFFABRRS0AFFJRSAWiikoAKKKKACiiigAoopaAEooooAKKWkoAWikpaAEoopaAEoopaAEopaSgAooopgLSUtFACUUUUALRSUtIBKKKKACiiigAooooAKKKKACiiimAUUUtIBKWikoAKWkooAWikooAKKKKAFpKKKAClpKWgAopKKAFpKKKYBR2opaAEooopAFFFLTASiiigBaSiikAtJRS0wEooopAFLRSUALSUUtACUtJS0AJRRRQAUtJS0wEpaSloAKSlpKACiiikAUUUUAFFFFABRRRQAUUUtMBKKKKAFpKKWkAlFLRQAUlFFMApaSlpAJRRRTAKKKKACiiigBaSlpKQC0UUlAC0UlLTASloooASiiigAopaKACiiigBKWiikAlFFFABRRRQAUUtJQAUtJRQAtJRRTAKWkopALSUUtMBKKKKAClpKKQC0lFFABRS0lAC0lFFMApaSigApaSigBaKKSgBaKSigAooooAKWikpAFLR2pKACloopgJS0lFAC0lFLSASlpKKAClpKWgBKKWkpgLRRRQAUlFFAC0lFFABRRRQAUUtFACUUUUAFFFFABS0lFABRRRQAUUUUgFpKWigApKWkpgFFFFABRRRQAUUUUgCloopgFJS0lABS0lLSASiiigAooooAKKKKAFopKKACiiigAoopaAEopaKAEopaKAEopaKACkpaSgAooopgFLSUtABSUtJQAtFFJQAtJS0lIApaKSgBaKSlpgFFFJQAtJRRQAtJS0lIAooopgFFFFABRRS0AFJRRQAUUUUAFFFFABRRRQAtJS0lABRRS0AFFJRSAKKKKYC0lFFAC0UlFABRS0lABS0lLQAlFLSUAFLSUUgCiiigBaSiigAopaSmAUUtGaQCUtJRQAUtJRQAUUUUAFLRSUALRSUtMBKKWkoAKKKKACiiigBaSlooASilooASlpKWkAlFFFMAooooAWkoopAFFFLTAKSlpKQC0lFLTASiiigApaSikAUtFFMAopKWgBKKKDSAKKKKACiiigAooooAKKKKACiiigAopaKACkoopgFFLRSASilopgJRRRQAUUUUgCiilpgJS0lFAC0lFFABRRRQAUUUUgClpKWgAooooAKKKSgAooopgFFFFABRRRQAUtFFAhKKKKBhS0lFABRRRQAtFJRQAUtFFACUtJS0AFFFFACUUUUAFFFFABRRRQAUUUUAFFFFABRS0lABRRRSAKKWkoAKKWkoAWkopaYCUtJRQAUtJRSAKKWkoAKWkooAKKKWgBKKKKYBRRRQAtJRRQAUtJS0gEpaKSmAtJS0lABRRRQAUUUUAFFFFABR1oopAFFLSUAFFFFABRRRQAUUUUwCiiikAtFJS0wCkpaSgApaSikAUUUUAFFFFABS0lFABS0lLQAlFLSUwCiilpAJRRRTAO1FLRSASlpKWmAlFLSUAFFFFABS0lLQAUlFFIBaSilpgFFFJ3oAKWkooAKKWkpALRSUUwFpKKKAFoopKACiiigAooooAKKKWgBKWkopAFLRSUwFpKWkoAKKKKAFpKKKACiiloASilooASilpKAFpKKKQBRRRTAKO9FFAC0UlFIAooopgFLSUtABRSUtIBKKWigAooooASilpKYBRRS0gEopaKYCUUUUALRSUUgFopKKAClpKKYBRRRQAtFJS0AJRS0lIBaKKKACkpaSgAooopgFFFFABRRRQAUUUUAFFFFIApaSimAUUtFACUUUUALSUUUALSUUUAFFFLSASiiigAooooADRRS0AFJRRTAWkpaSgAooooAWkoopAFFFFABS0lFABRRRTAKKKKAFpKKKACilpKQBRRS0wCkoooAKKKKAFpKKKQBRS0lAC0UlLTAKKSloASiiigAooooAKKKKQBRRRQAUUUtACUUUUALSUtFACUUtJQAUtJS0wCikooAWkopaQCUUUUAFFFLQAlFFLTAKSlooAKSlpKACilooASlpKWgBKWikpAFFLRTAKSiikAUtJRQAUUUUwFpKKKAClpKKQBQaKKACilpKACiiimAtJRRQAtFJRSAKKWimAUlFFABRRRQAtJRRSAKKKKYBRS0lABRRRSAKKKKAClpKKYC0lFFABS0lLQAlLRRQAlFFFIAooooAKKKKAClpKWgApKKKACiiloAKSlooASilopgJRRRQAUUUUAFLSUUAFFFFIAooopgFFFFABS0lFABRRRQAUUUUAFFFFABRRS0AJRS0UAJRRRQAUUUUAFFLRQAlFFFIAooooAKKKKACiiloAKSiigAooopgFFLRQAUlFFABRRRSAKKKKAClpKKAFopKWmAUUUlABS0lFAC0UUUAFFFFABRSUtABRRSUALSUtJQAUUUUAFFFFABRRRQAUUUUgCiiigAooopgFFFFABRRRQAUUUUAFLSUUAFFFFABRS0lAC0lLSUgA0UUUwCiiigApaKSkAd6KKKYC0UUUAJS0UUAJS0UUAFFFFACUUUtIBKKKKACiiigAooooAKWiimAUlLRSAKKKKACkopaAEoopaYBSUUUAFFFFABS0lFABRRRQAUUUUAFFFFABRRRQAUtJRSAKKWkpgFFLSUAFFFFAC0lLSUAFFFFAC0UlFAC0UlFIApaSimAUtJS0AJRRRQAUUUUAFFLSUgCiiigAopaSmAUUUUAFFFFABRS0lABS0lFIBaKSigBaSlpKYBS0lFABS0lFABRRRQAUtJRQAUUUUAFLSUUAFFFFAC0lFFABRRRSAKWkopgFFLSUAFFFFABRS0UgEopaSgApaKSgAooopgLSUUUAFLSUtACUtJS0AJRRRQAUUUUAFFFLQAUUlLQAlLSUtABRRRQAUlFFABRRS0gEooooAKKWkoAKKKKAFopKWmAlFFFAC0neilpAFFFFABRRSUAFFLRQAlFFLTASilpKAClpKWkAlFFFAC0lFFMAooooAWikpaAEooooAKKKWkAlLSUUAFFFLTASlpKKACilpKACilpKQBS0lFMAopaSgBaKKKAEopaSgAooooAKKWkpAFFFFABRRRTAKKKKACiiigBaSlopAJRRRQAUUUUAFFFFMAooooAKKKKACiiloASilpKACiiigAoopaAEooooAKWkpaQCUUtJQAUUtFACUUtJQAUUUUAFFFFABRS0UAJRS0lABRRRTAWiiigApKKKACilooASlpKWgBKKKKACiiigAooooAKKKKACiiikAUtJRQAUUUUAFLSUtACUUUUwFopKKACilpKACiiikAUUUtABRRRQAUUlLQAUUlFABRRRTAWkpaKAEopaSgAopaSgAooooAKKKWgBKKKKACiiigBaSlpKQC0lFLTASilpKQBS0lLQAUlLRQAlLSUUALSUUUwCiiigApaSigAooopALRSUUALSUtFACUUtFACUUUUwCilpKACilopAFFJS0AJRS0UAJRRS0AFJS0UAJRRRTAKWkooAWiikoAWkoooAKKKKACiiigAooooAKKKWgBKKWkpALSUUUAFLSUUwCiiikAUUtJQAtFFJQAtFFFMApKWigBKKKKACilopAJS0lLQAUUlFAC0UlFMAooooAKKKWgApKKKQBRRRQAUUUUAFFFFABRRRQAUUtJTAWkoopAFFFFMApaSikAUtFFABSUtJQAUUUUwCiiigBaKSigApaSigBaSiikAUUUtMAooopAJRRRTAKKKKACiiikAUUUUwCiiikAtJRRQAUUtJQAUUUUAFFFFMAooooAKKKKACiiikAUtFJQAUtJRQAUUUUAFFFFABRRRQAUUUUwClpKWkAlFFFABRRRQAUUUUAFFFFMAopaSgApaSigAooooAKKWkpALSUtJQAUUUUALSUUUALSUtJQAUUUUAFFFFAC0lFLQAlFLRQAlFFFAC0lFFMBaSlpKACiiikAUtJRQAUUUUwCiiigBaSiikAtFFFAC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0lFAC0UUUwCiiigAooooAKKKKAEpaSigAooooAKKKKAFpKKKACiiigAooooAKKKKACiiigAooopALSUtJQAUUUUALRRSUALRSUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAuaSiigAooooAKKKKACiiigBaKSigAooooAKKKKACjNFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFLQAlFFLQAlFFFABRRRQAUUUUAFFFFABRRRQAUtJRQAUtJS0AJRRRTAWkpaSkAtJS0UAFFJRTAKWkpaACkoooAWikopAFLSUtACUtJS0wCiiigBKKKKACilooASlpKKQBRRRQAUUUUALRSUUALRRRTAKSiigBaKKSgBaKSloASiiigApaSloASiiigAopaSkAUUUtMBKKKKACiiigAooooAWkopaAEooooAKKWkoAWiikpAFLSUUAFLSUUABooopgFFFFIAooooAKWkooAKKKKYBRS0UgEpaSigAooopgFFFFAC0lFFIAooopgFFLSUAFLSUtIApKWkoAKWkpaAEoopaAEpaKSgAooooAKKKKAClpKKAClpKKYC0UlLSASiiigApaSloAKSiigAooooAKKWkoAKKKKACiiimAUUtJQAtJRRQAtJRRQAUtFFIBKWkooAKWikpgFFFFABS0lFIApaSimAtJRRQAUUUtABRSUUgCiiigAooooAKKKKAClpKKAFpKKKYBRRRQAUUUUAFFFFABRRRQAUUUUgCiiigAooFFABRS0lMAopaSgAooooAKWikpAFFFLQAlFFFMAooooAKKKKQBRRS0AJRRRTAKKKKAClpKKQBRRRQAUtJS0AJRRRQAUUUUAFFFFABRRRTAKKWkoAKKWkoAKKKKQBRRS0wEooopALSUUUAFFFFMAoopaQCUUtJQAtJS0lABRRRQAUUtJQAUUUUwCiiloASiiigAopaSkAUUUUwCiiigAooooAKWkopAFFFFMAooooAKKKKACiiikAUUUUALRSUUALSUUUwCilpKACiilpAJRRRTAKKKWgBKKWkpAFFLSUAFFFFABRRRQAUUUUAFLSUUAFLRRTAKSlpKACiiigAoopaQCUUUUwFpKKKAFpKKKACiiikAUtJS0AJS0UlMApaKKACkpaSkAUtJRQAUtJRTAWkoooAWikpaQBRSUUwCiiikAUUUUwCiiigAooooAKWkpaQCUUUUwCilpKACilpKACiiikAUtJS0AJRRRTAKKKKAFpKWkoAKWkpaQBSUtJQAUUtJTAKWko7UgCiiigAooooAKKKKACilooASiiimAUtFJQAUUUtIBKKKKACiiloASiiimAtFJRSAKKKKYBRRRQAUtFFACUUtJSAKKWkoAWkopaYCUtFFACUUUUALSUUUAFLSUUAFFFFABS0lFABRRRSAKKWigBKKKKACiiigAooooAKWkpaAEooopgFLSUUAFFFFIAooooAKKKKACiiimAUUUUALSUtJSAKWkpaAEooooAKWikoAWikooAKKKWgAopKKYC0lFFAC0UlFABRRRQAUUUUAFFFFABRRRSAKKKKYBRRRQAUtJRQAUtFFABSUUUAFFFFIApaSigAooopgFFFFABRRRQAUUUUgCiiigAooooAKKKWgBKWkooAKKKKACiiloASiiimAUUUUAFFFFAC0lFLSASlpKKACiiigAooopgFFLSUAFFFFABS0lLQAUlFFABRRRQAtJRRQAClopKAClpKKACiiigApaSloASlpKKACiiloASiilpAFFJS0AFJS0lABRRRQAUUUUAFFFFABS0lFABS0lFABRS0lABRRS0AHakoooAKKWkoAWikooAKKWkpgFFFFIBaKKKAEopaSmAtJS0lAC0UlFIBaKKKAEooopgFFFFABRRRQAtJRRQAUUtJQAUdaKWgBKWikoAKKKKAFpKKKACiiikAUUUUwCiiigAooooAKKWigBKKWkoAKWkooAWkoooAKKKKAFpKKKQBRRRQAYopaSgApaSigAopaSgBaSiloASiiimAUtJRQAUUUtACUUtJQAUUtFIBKKWigBKKKKYC0UlFABRRRQAUUUUgFpKKWgBKKKWgBKKKKYBS0lFABRRS0AJRRS0AJRS0lABS0UUAFFFJQAUtFJSAKKKWmAUUUUAJS0lFABRRRSAKKKKACiiigAooooAKKWkoAKWkpaYCUUtJQAUtJS0gCkopaYBRRSUAFLSUUAFLSUooAKKKSkAUtJRTAWikooAKKKKACilpKQBS0lFABS0lFABS0lLQAUlFFABS0lFMAooooAKWkooAKKKKAClpKKQBRRRQAUUtFMApKWkoAKKKKACiiloASiiigAooooAKKKKQC0UlFABS0lFABRR3oxQAUUUUAFFFFABRRS0AJS0UUAJRRRTAKKKWgBKWiigBKWkpaQCUtFJTAKKWigBKKWkoAKKKKQBRRRQAtJRRQAtJRRQAUUUUwCiiigAooopAFHelpKAFpKKKACilooASiiimAUUUUALSUtFIApKKKYC0UlFABRRRSAKKKKACiiigApaSigAopaKAE70UUUwCiiloASlpKKAClopKACilooASilooASilooAKSilpAJS0UUAJRRS0AFJS0lAC0lFFABRS0UAFJS0lABRRRQAUUtFACUUUUwFopKWkAlFFFABRS0lABRRRQAUtJRQAUtJRTAWkoopAFFFFABS0lGKYBRRRQAUUUUALRSUUgCiiigApaSigBaSiloASiiimAUUtJSAKWkooAWkpaKAEooopgFLRRQAUUlFABS0lFABRRRQAUtJRQAtJRS0AFFJRSAKKWkoAKKKWgBKKWkoAKKKKYBS0lFABRRRQAUUUtIBKKWigAooopgJRRRQAUUUUAFFFFIBaSiigApaKSgAooooAKKWigBKKKKACiiigAooooAWkoo70ALSUtFACUUUUAFFFFAC0lFFABRRRTAWikpaACkpaKQBRSUUALRSUtACUUUtACUtJS0AJRRRQAUUtJQAUUUUALRSUUAFLSUUwCilpKACiiikAUUUtACUUtJQAUUUUwFpKKO9ABRRS0AJRS0UgEooopgLSUUUgCiiimAUUUtABRSUtIBKKKKAFopKKAFpKKWgBKWkooAWiikoAWkpaKAEooooAKKKKYBRS0lABRRRQAUtFJQAUUUUALSUUUAFFFFAC0UlFIAooopgFFFFIAooopgLSUtJSAKWkooAWikooAKWkopgLRRRQAlFFFABRS0lABRRRQAUtFFIBKKKKACiiigApaSloASiiloAKKSloASlpKKACiiigAoopaAEooooAKWkooAKKKWgApKKKACiiigBaSiigAooooAKKKWgAoopKACjtRS0wEpaSikAUUtJQAUUUUAFFFFMAopaSgApaSigBaSiikAUUUUALRSUtACUUtJQAUUUUAFFFLQAUlFFABRRS0AJRRRTAKWkooAWikopAFFLRQAlLRSUAFFFFABRRS0AJRRRTAKWkopALRRRQAlLSUUALSUUtMBKKKKAClpKKACiiigAopaSgAooooAWkoooAKKKKACiiigBaKSlpAFJS0lABRRRQAUUUUALRRRQAUUUUAJRRS0AJRRRQAtJRRTAKKKKACiiigAooopAFFFFABS0lFABS0lFAC0UUlABRRRQAUUtJQAUUUtABSUtJQAUUtJQAUUtJTAKWkpaQCUUUUAFFFFABRRRQAUUtFACUUtJQAUUUUwCiilpAJRRRQAUUUtACUUUUAFLSUtMBKKKWgBKKWikAlFLSUAFFFFABS0lFAC0lLRTASlpKKQBRS0lABS0lFABRS0lABRS0UwEoopaAEpaSikAUUtJQAUUUUwCilooASiilpAFFJRQAtFFFACUUUtMApKKKQBRRRQAtJRRQAUUUUwCiiigAooooAKKKKACiiigAooooAKKKKAFopKKQBRRRQAUUtJQAUtJRQAtJRRQAtFJRQAUUUUAFFFFMAooooAKWkooAKKKWkAlFFFABRRRQAUtFJTAKWkooAWkpaSkAtFJRQAtJRRQAtJRRQAtJS0lMApaKKACkpaSkAUtFJQAUUtJQAUUUUAFLSUUALSUUUAFFFFAC0lFFABRS0lAC0UlFABRRRQAUUUtMBKWkpaACkpaSgAopaSgAooooAKKKKAClpKKACiiigApaSigBaSiikAUUUUAFFFFMBaKSigAooooAKKWkoAKKKKAFpKWikAUUlFABRS0UwCiiigApKWkoAKKKWgBKKKKACiiigAooooAKKWkpAFFFLQAlFFFMAoopaACkoopALSUUUAFFFLQAUUUUwEoopaQBRRRQAUUlFAC0UlFAC0UUUAFJS0UAFFFFMBKKKKACiiikAUUUUAFFFFAC0lFFABS0UlABRS0UAJRRS0AJRRRQAtFJRQAUtJRQAUtJRTAWkoopAFLSUUALSUUUALSUUUAFFFFABRRRQAtJS0UAJS0lFAC0lFFAC0UlFABS0lLQAlFFFMBaKSigBaKSigAooopALSUtJQAUUtJTAKKKWkAlFFLTASlpKKACiiigAopaSgAooooAKKKKQBRRRQAUtJRQAUUUUALRSUtABSUUtACUUtJQAtFFFMAopKKACilopAFJRRTAKKKKACiiigBaSlopAJS0lFAC0lLRQAlFFFMAooopAFFFFABRS0AUAFGKdijFADaKdRQA2inUYoAZRT8UYoAZRT8UYoAZRT6KAGUU+jFADKKfijFADaSn4oxQAyilNJQAUUUUAFFFFAC0UlFABS0UUwCkpaSkAUUUUALSUUtACUUUUAFFLSUALRSUUALSUUtACUUUtABSUZpaAEooooAKWkpaYCUUUUALRSUUgFpKWkoAKKKWgBKWkpaAEopaSgApaKSgBaSiimAUUUUgFpKWkoAWiikoAKWiimAlLRRSASlpKWmAlFFLQAlLSUUgClpKWgBKKKWmAlFLSUAFLSUUAFFLSUgCiiloAKKSimAUUUUgFpKWkoAWkoopgFLSUtIBKWkooAWikooAKKWkoAKWikpgLRRSUgClpKKYBRS0lAC0lFFABRRRSAKKWigAoFJThQAtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANakpWpKACiiigAooooAWkoooAKWkpaYBRRSUALSUtJSAWkpaSmAtJRRQAtJRRSAKKWkoAWkoooAKKKKACiiigApaSloASiiigAopaSgAooooAWkoooAWikooAWkoooAKKKKACiiloASiilpgFJS0lIAooooAKKKBQAtJS0UAJS0lFABRRS0wEooooAKKKKQBRRRQAUtJRQAUtJRQAUUUUwClopKQBRR3ooAKKKKYC0lFFABRRS0gEpaKSgAoopaYCUUUtIBKKKKACiiloASiiimAUtJRQAtJRS0gCikooAKKWkoAKKWigBKKKKACnCm04UALS0UlABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUANakpTSUAFFFFABRRRQAUCiigBaSiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigApaSigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKWkooAKKKKAClpKKACiiigAooooAKWkooAWkoooAKKKKADNFFFABRRRQAUUUUAFFFFABRRRQAtHSkpaAF3UmaSigB2aTdSUUALmjNJRQA7NJmkooAXNGaSigBc0ZpKKAFzRmkooAXNGaSigBc0ZpKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA/9k=";
52963
52965
  class yl extends rt.Component {
52964
52966
  constructor(t) {
52965
- super(t), this.candleViewRef = rt.createRef(), this.chartRef = rt.createRef(), this.chartContainerRef = rt.createRef(), this.chartLayerRef = rt.createRef(), this.chart = null, this.resizeObserver = null, this.realTimeInterval = null, this.currentSeries = null, this.chartManager = null, this.updateTimeout = null, this.viewportManager = null, this.chartEventManager = null, this.aiPanelResizeRef = rt.createRef(), this.isDragging = !1, this.startX = 0, this.startChartWidth = 0, this.startPanelWidth = 0, this.containerWidth = 0, this.terminalResizeRef = rt.createRef(), this.isDraggingTerminal = !1, this.startY = 0, this.startTerminalHeightRatio = 0, this.containerHeight = 0, this.preparedData = [], this.originalData = [], this.aiManager = null, this.handleTerminalResizeMouseDown = (a) => {
52966
- a.preventDefault(), this.isDraggingTerminal = !0, this.setState({ isResizingTerminal: !0 });
52967
- const s = this.candleViewRef.current;
52968
- s && (this.startY = a.clientY, this.startTerminalHeightRatio = this.state.terminalHeightRatio, this.containerHeight = s.clientHeight), document.body.style.cursor = "row-resize", document.body.style.userSelect = "none";
52967
+ super(t), this.candleViewRef = rt.createRef(), this.chartRef = rt.createRef(), this.chartContainerRef = rt.createRef(), this.chartLayerRef = rt.createRef(), this.chart = null, this.resizeObserver = null, this.realTimeInterval = null, this.currentSeries = null, this.chartManager = null, this.updateTimeout = null, this.viewportManager = null, this.chartEventManager = null, this.aiPanelResizeRef = rt.createRef(), this.isDragging = !1, this.startX = 0, this.startChartWidth = 0, this.containerWidth = 0, this.terminalResizeRef = rt.createRef(), this.isDraggingTerminal = !1, this.startY = 0, this.startTerminalHeightRatio = 0, this.preparedData = [], this.originalData = [], this.aiManager = null, this.handleTerminalResizeMouseDown = (a) => {
52968
+ a.preventDefault(), this.isDraggingTerminal = !0, this.setState({ isResizingTerminal: !0 }), this.candleViewRef.current && (this.startY = a.clientY, this.startTerminalHeightRatio = this.state.terminalHeightRatio), document.body.style.cursor = "row-resize", document.body.style.userSelect = "none";
52969
52969
  }, this.handleTerminalMouseMove = (a) => {
52970
- if (!this.isDraggingTerminal || !this.containerHeight) return;
52971
- const s = a.clientY - this.startY, n = Math.max(0.3, Math.min(0.5, this.startTerminalHeightRatio - s / this.containerHeight));
52970
+ if (!this.isDraggingTerminal) return;
52971
+ const s = this.candleViewRef.current;
52972
+ if (!s) return;
52973
+ const n = s.clientHeight;
52974
+ if (n <= 0) return;
52975
+ const o = this.startY - a.clientY, h = this.startTerminalHeightRatio + o / n, l = Math.max(0.2, Math.min(0.5, h));
52972
52976
  this.setState({
52973
- terminalHeightRatio: n
52977
+ terminalHeightRatio: l
52974
52978
  });
52975
52979
  }, this.handleTerminalMouseUp = () => {
52976
52980
  this.isDraggingTerminal && (this.isDraggingTerminal = !1, this.setState({ isResizingTerminal: !1 }), document.body.style.cursor = "", document.body.style.userSelect = "");
52977
52981
  }, this.handleResizeMouseDown = (a) => {
52978
52982
  a.preventDefault(), this.isDragging = !0, this.setState({ isResizingAiPanel: !0 }), this.aiPanelResizeRef.current && (this.aiPanelResizeRef.current.style.backgroundColor = this.state.currentTheme.divider.dragging);
52979
52983
  const s = this.candleViewRef.current;
52980
- s && (this.containerWidth = s.clientWidth, this.startX = a.clientX, this.startChartWidth = this.state.aiPanelWidthRatio, this.startPanelWidth = 1 - this.state.aiPanelWidthRatio), document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
52984
+ s && (this.containerWidth = s.clientWidth, this.startX = a.clientX, this.startChartWidth = this.state.aiPanelWidthRatio), document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
52981
52985
  }, this.handleMouseMove = (a) => {
52982
52986
  if (!this.isDragging || !this.containerWidth) return;
52983
52987
  const s = a.clientX - this.startX;
@@ -53332,10 +53336,6 @@ class yl extends rt.Component {
53332
53336
  }
53333
53337
  }, this.handleTerminalCommand = (a) => {
53334
53338
  this.setState({ terminalCommand: a });
53335
- }, this.handleToggleTerminal = () => {
53336
- this.setState((a) => ({
53337
- terminal: !a.terminal
53338
- }));
53339
53339
  }, this.openTerminal = () => {
53340
53340
  this.setState({
53341
53341
  terminal: !0
@@ -53629,7 +53629,7 @@ class yl extends rt.Component {
53629
53629
  return t === "en" ? kt : Ho;
53630
53630
  }
53631
53631
  render() {
53632
- const { currentTheme: t, isDataLoading: e, ai: i, openAiChat: r, terminal: a, terminalHeightRatio: s } = this.state, { height: n = 500, width: o = "100%" } = this.props, h = a ? 1 - s : 1, l = a ? s : 0, g = i ? this.state.aiPanelWidthRatio : 1, c = i ? 1 - this.state.aiPanelWidthRatio : 0, d = `
53632
+ const { currentTheme: t, isDataLoading: e, ai: i, openAiChat: r, terminal: a, terminalHeightRatio: s } = this.state, { height: n = "100%", width: o = "100%" } = this.props, h = i ? this.state.aiPanelWidthRatio : 1, l = i ? 1 - this.state.aiPanelWidthRatio : 0, g = `
53633
53633
  .custom-scrollbar::-webkit-scrollbar {
53634
53634
  width: 6px;
53635
53635
  }
@@ -53668,7 +53668,7 @@ class yl extends rt.Component {
53668
53668
  white-space: pre-wrap;
53669
53669
  word-break: break-all;
53670
53670
  }
53671
- `, u = this.state.isTimeframeModalOpen || this.state.isIndicatorModalOpen || this.state.isTradeModalOpen || this.state.isChartTypeModalOpen || this.state.isSubChartModalOpen || this.state.isTimezoneModalOpen || this.state.isTimeFormatModalOpen || this.state.isCloseTimeModalOpen || this.state.isTradingDayModalOpen || this.state.isMobileMenuOpen, p = this.state.currentI18N === kt ? "Loading data..." : "正在加载数据...", M = this.state.currentI18N === kt ? "Load failed" : "加载失败";
53671
+ `, c = this.state.isTimeframeModalOpen || this.state.isIndicatorModalOpen || this.state.isTradeModalOpen || this.state.isChartTypeModalOpen || this.state.isSubChartModalOpen || this.state.isTimezoneModalOpen || this.state.isTimeFormatModalOpen || this.state.isCloseTimeModalOpen || this.state.isTradingDayModalOpen || this.state.isMobileMenuOpen, d = this.state.currentI18N === kt ? "Loading data..." : "正在加载数据...", u = this.state.currentI18N === kt ? "Load failed" : "加载失败";
53672
53672
  return /* @__PURE__ */ m.jsxs(
53673
53673
  "div",
53674
53674
  {
@@ -53686,7 +53686,7 @@ class yl extends rt.Component {
53686
53686
  "candleview-container": "true",
53687
53687
  onContextMenu: this.handleContextMenu,
53688
53688
  children: [
53689
- /* @__PURE__ */ m.jsx("style", { children: d }),
53689
+ /* @__PURE__ */ m.jsx("style", { children: g }),
53690
53690
  e && /* @__PURE__ */ m.jsx(
53691
53691
  "div",
53692
53692
  {
@@ -53696,7 +53696,7 @@ class yl extends rt.Component {
53696
53696
  left: 0,
53697
53697
  right: 0,
53698
53698
  bottom: 0,
53699
- zIndex: 9999,
53699
+ zIndex: 4,
53700
53700
  backgroundColor: t.layout.background.color + "10",
53701
53701
  display: "flex",
53702
53702
  alignItems: "center",
@@ -53733,7 +53733,7 @@ class yl extends rt.Component {
53733
53733
  fontSize: "16px",
53734
53734
  fontWeight: 500,
53735
53735
  textAlign: "center"
53736
- }, children: p }),
53736
+ }, children: d }),
53737
53737
  this.state.dataLoadProgress > 0 && /* @__PURE__ */ m.jsxs("div", { style: {
53738
53738
  width: "240px",
53739
53739
  marginTop: "8px",
@@ -53789,7 +53789,7 @@ class yl extends rt.Component {
53789
53789
  borderRadius: "6px",
53790
53790
  maxWidth: "320px"
53791
53791
  }, children: [
53792
- M,
53792
+ u,
53793
53793
  ": ",
53794
53794
  this.state.loadError
53795
53795
  ] })
@@ -53804,7 +53804,7 @@ class yl extends rt.Component {
53804
53804
  100% { transform: rotate(360deg); }
53805
53805
  }
53806
53806
  ` }),
53807
- u && /* @__PURE__ */ m.jsx(
53807
+ c && /* @__PURE__ */ m.jsx(
53808
53808
  "div",
53809
53809
  {
53810
53810
  style: {
@@ -53813,7 +53813,7 @@ class yl extends rt.Component {
53813
53813
  left: 0,
53814
53814
  right: 0,
53815
53815
  bottom: 0,
53816
- zIndex: 998,
53816
+ zIndex: 2,
53817
53817
  background: "transparent"
53818
53818
  },
53819
53819
  onClick: this.handleCloseModals
@@ -53864,7 +53864,7 @@ class yl extends rt.Component {
53864
53864
  ),
53865
53865
  /* @__PURE__ */ m.jsxs("div", { style: {
53866
53866
  display: "flex",
53867
- flex: h,
53867
+ flex: a ? `calc(100% - ${s * 100}%)` : "100%",
53868
53868
  minHeight: 0,
53869
53869
  position: "relative"
53870
53870
  }, children: [
@@ -53895,7 +53895,7 @@ class yl extends rt.Component {
53895
53895
  position: "relative"
53896
53896
  }, children: [
53897
53897
  /* @__PURE__ */ m.jsx("div", { style: {
53898
- flex: g,
53898
+ flex: h,
53899
53899
  display: "flex",
53900
53900
  flexDirection: "column",
53901
53901
  minWidth: 0,
@@ -53956,21 +53956,22 @@ class yl extends rt.Component {
53956
53956
  {
53957
53957
  style: {
53958
53958
  position: "absolute",
53959
- bottom: "110px",
53959
+ bottom: "100px",
53960
53960
  left: "50%",
53961
53961
  transform: "translateX(-50%)",
53962
53962
  display: "flex",
53963
53963
  alignItems: "center",
53964
- gap: "25px",
53965
- zIndex: 100,
53964
+ gap: "15px",
53965
+ zIndex: 3,
53966
53966
  opacity: 0,
53967
- transition: "opacity 0.3s ease"
53967
+ transition: "opacity 0.3s ease",
53968
+ pointerEvents: "auto"
53968
53969
  },
53969
- onMouseEnter: (k) => {
53970
- k.currentTarget.style.opacity = "1";
53970
+ onMouseEnter: (p) => {
53971
+ p.currentTarget.style.opacity = "1", p.stopPropagation();
53971
53972
  },
53972
- onMouseLeave: (k) => {
53973
- k.currentTarget.style.opacity = "0";
53973
+ onMouseLeave: (p) => {
53974
+ p.currentTarget.style.opacity = "0", p.stopPropagation();
53974
53975
  },
53975
53976
  children: [
53976
53977
  /* @__PURE__ */ m.jsx(
@@ -53978,18 +53979,20 @@ class yl extends rt.Component {
53978
53979
  {
53979
53980
  onClick: this.handleZoomOut,
53980
53981
  style: {
53981
- width: "36px",
53982
- height: "36px",
53983
- borderRadius: "50%",
53982
+ width: "25px",
53983
+ height: "25px",
53984
+ borderRadius: "6px",
53984
53985
  border: "none",
53985
53986
  background: t.toolbar.button.backgroundColor,
53986
53987
  display: "flex",
53987
53988
  alignItems: "center",
53988
53989
  justifyContent: "center",
53989
53990
  cursor: "pointer",
53990
- boxShadow: t.toolbar.button.boxShadow
53991
+ boxShadow: t.toolbar.button.boxShadow,
53992
+ pointerEvents: "auto"
53991
53993
  },
53992
- children: /* @__PURE__ */ m.jsx(Dn, { size: 18, color: t.toolbar.button.color })
53994
+ onMouseDown: (p) => p.stopPropagation(),
53995
+ children: /* @__PURE__ */ m.jsx(Dn, { size: 14, color: t.toolbar.button.iconColor })
53993
53996
  }
53994
53997
  ),
53995
53998
  /* @__PURE__ */ m.jsx(
@@ -53997,18 +54000,20 @@ class yl extends rt.Component {
53997
54000
  {
53998
54001
  onClick: this.handleLeftArrowClick,
53999
54002
  style: {
54000
- width: "36px",
54001
- height: "36px",
54002
- borderRadius: "50%",
54003
+ width: "25px",
54004
+ height: "25px",
54005
+ borderRadius: "6px",
54003
54006
  border: "none",
54004
54007
  background: t.toolbar.button.backgroundColor,
54005
54008
  display: "flex",
54006
54009
  alignItems: "center",
54007
54010
  justifyContent: "center",
54008
54011
  cursor: "pointer",
54009
- boxShadow: t.toolbar.button.boxShadow
54012
+ boxShadow: t.toolbar.button.boxShadow,
54013
+ pointerEvents: "auto"
54010
54014
  },
54011
- children: /* @__PURE__ */ m.jsx(wn, { size: 18, color: t.toolbar.button.color })
54015
+ onMouseDown: (p) => p.stopPropagation(),
54016
+ children: /* @__PURE__ */ m.jsx(wn, { size: 14, color: t.toolbar.button.iconColor })
54012
54017
  }
54013
54018
  ),
54014
54019
  /* @__PURE__ */ m.jsx(
@@ -54016,18 +54021,20 @@ class yl extends rt.Component {
54016
54021
  {
54017
54022
  onClick: this.handleRefreshClick,
54018
54023
  style: {
54019
- width: "40px",
54020
- height: "40px",
54021
- borderRadius: "50%",
54024
+ width: "25px",
54025
+ height: "25px",
54026
+ borderRadius: "6px",
54022
54027
  border: "none",
54023
54028
  background: t.toolbar.button.backgroundColor,
54024
54029
  display: "flex",
54025
54030
  alignItems: "center",
54026
54031
  justifyContent: "center",
54027
54032
  cursor: "pointer",
54028
- boxShadow: t.toolbar.button.boxShadow
54033
+ boxShadow: t.toolbar.button.boxShadow,
54034
+ pointerEvents: "auto"
54029
54035
  },
54030
- children: /* @__PURE__ */ m.jsx(vn, { size: 20, color: t.toolbar.button.color })
54036
+ onMouseDown: (p) => p.stopPropagation(),
54037
+ children: /* @__PURE__ */ m.jsx(vn, { size: 16, color: t.toolbar.button.iconColor })
54031
54038
  }
54032
54039
  ),
54033
54040
  /* @__PURE__ */ m.jsx(
@@ -54035,18 +54042,20 @@ class yl extends rt.Component {
54035
54042
  {
54036
54043
  onClick: this.handleRightArrowClick,
54037
54044
  style: {
54038
- width: "36px",
54039
- height: "36px",
54040
- borderRadius: "50%",
54045
+ width: "25px",
54046
+ height: "25px",
54047
+ borderRadius: "6px",
54041
54048
  border: "none",
54042
54049
  background: t.toolbar.button.backgroundColor,
54043
54050
  display: "flex",
54044
54051
  alignItems: "center",
54045
54052
  justifyContent: "center",
54046
54053
  cursor: "pointer",
54047
- boxShadow: t.toolbar.button.boxShadow
54054
+ boxShadow: t.toolbar.button.boxShadow,
54055
+ pointerEvents: "auto"
54048
54056
  },
54049
- children: /* @__PURE__ */ m.jsx(An, { size: 18, color: t.toolbar.button.color })
54057
+ onMouseDown: (p) => p.stopPropagation(),
54058
+ children: /* @__PURE__ */ m.jsx(An, { size: 14, color: t.toolbar.button.iconColor })
54050
54059
  }
54051
54060
  ),
54052
54061
  /* @__PURE__ */ m.jsx(
@@ -54054,18 +54063,20 @@ class yl extends rt.Component {
54054
54063
  {
54055
54064
  onClick: this.handleZoomIn,
54056
54065
  style: {
54057
- width: "36px",
54058
- height: "36px",
54059
- borderRadius: "50%",
54066
+ width: "25px",
54067
+ height: "25px",
54068
+ borderRadius: "6px",
54060
54069
  border: "none",
54061
54070
  background: t.toolbar.button.backgroundColor,
54062
54071
  display: "flex",
54063
54072
  alignItems: "center",
54064
54073
  justifyContent: "center",
54065
54074
  cursor: "pointer",
54066
- boxShadow: t.toolbar.button.boxShadow
54075
+ boxShadow: t.toolbar.button.boxShadow,
54076
+ pointerEvents: "auto"
54067
54077
  },
54068
- children: /* @__PURE__ */ m.jsx(xn, { size: 18, color: t.toolbar.button.color })
54078
+ onMouseDown: (p) => p.stopPropagation(),
54079
+ children: /* @__PURE__ */ m.jsx(xn, { size: 14, color: t.toolbar.button.iconColor })
54069
54080
  }
54070
54081
  )
54071
54082
  ]
@@ -54109,7 +54120,7 @@ class yl extends rt.Component {
54109
54120
  }
54110
54121
  ),
54111
54122
  r && /* @__PURE__ */ m.jsx("div", { style: {
54112
- flex: c,
54123
+ flex: l,
54113
54124
  minWidth: "200px",
54114
54125
  display: "flex",
54115
54126
  flexDirection: "column",
@@ -54127,9 +54138,9 @@ class yl extends rt.Component {
54127
54138
  onClose: () => {
54128
54139
  this.setState({ openAiChat: !1 });
54129
54140
  },
54130
- onSendMessage: async (k) => new Promise((P) => {
54141
+ onSendMessage: async (p) => new Promise((M) => {
54131
54142
  setTimeout(() => {
54132
- P();
54143
+ M();
54133
54144
  }, 1e3);
54134
54145
  }),
54135
54146
  data: this.originalData
@@ -54172,8 +54183,8 @@ class yl extends rt.Component {
54172
54183
  }
54173
54184
  ),
54174
54185
  a && /* @__PURE__ */ m.jsx("div", { style: {
54175
- flex: l,
54176
- minHeight: "100px",
54186
+ flex: a ? `${s * 100}%` : "0",
54187
+ minHeight: "130px",
54177
54188
  maxHeight: "50%",
54178
54189
  display: "flex",
54179
54190
  flexDirection: "column",