minerva-design 1.13.2 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/custom-elements.json +194 -12
  3. package/dist/angular/fesm2022/minerva-angular.mjs +20 -0
  4. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  5. package/dist/angular/types/minerva-angular.d.ts +10 -1
  6. package/dist/charts/canvas.d.cts +1 -0
  7. package/dist/charts/canvas.d.ts +1 -0
  8. package/dist/charts/engine/canvas.cjs +1 -1
  9. package/dist/charts/engine/canvas.cjs.map +1 -1
  10. package/dist/charts/engine/canvas.js +152 -128
  11. package/dist/charts/engine/canvas.js.map +1 -1
  12. package/dist/charts/engine/chart.cjs +1 -1
  13. package/dist/charts/engine/chart.cjs.map +1 -1
  14. package/dist/charts/engine/chart.js +475 -405
  15. package/dist/charts/engine/chart.js.map +1 -1
  16. package/dist/charts/engine/controller.cjs +2 -2
  17. package/dist/charts/engine/controller.cjs.map +1 -1
  18. package/dist/charts/engine/controller.js +263 -248
  19. package/dist/charts/engine/controller.js.map +1 -1
  20. package/dist/charts/engine/dom.cjs +1 -1
  21. package/dist/charts/engine/dom.cjs.map +1 -1
  22. package/dist/charts/engine/dom.d.cts +34 -0
  23. package/dist/charts/engine/dom.d.ts +34 -0
  24. package/dist/charts/engine/dom.js +62 -51
  25. package/dist/charts/engine/dom.js.map +1 -1
  26. package/dist/charts/engine/graph/chart.cjs +1 -1
  27. package/dist/charts/engine/graph/chart.cjs.map +1 -1
  28. package/dist/charts/engine/graph/chart.js +835 -821
  29. package/dist/charts/engine/graph/chart.js.map +1 -1
  30. package/dist/charts/engine/graph/dom.cjs +1 -1
  31. package/dist/charts/engine/graph/dom.cjs.map +1 -1
  32. package/dist/charts/engine/graph/dom.js +44 -51
  33. package/dist/charts/engine/graph/dom.js.map +1 -1
  34. package/dist/charts/engine/hover-rect.cjs +2 -0
  35. package/dist/charts/engine/hover-rect.cjs.map +1 -0
  36. package/dist/charts/engine/hover-rect.d.cts +10 -0
  37. package/dist/charts/engine/hover-rect.d.ts +10 -0
  38. package/dist/charts/engine/hover-rect.js +47 -0
  39. package/dist/charts/engine/hover-rect.js.map +1 -0
  40. package/dist/charts/engine/items.cjs +1 -1
  41. package/dist/charts/engine/items.cjs.map +1 -1
  42. package/dist/charts/engine/items.js +8 -8
  43. package/dist/charts/engine/model.cjs +1 -1
  44. package/dist/charts/engine/model.cjs.map +1 -1
  45. package/dist/charts/engine/model.js +191 -191
  46. package/dist/charts/engine/model.js.map +1 -1
  47. package/dist/charts/engine/orderbook/depth.cjs +1 -1
  48. package/dist/charts/engine/orderbook/depth.cjs.map +1 -1
  49. package/dist/charts/engine/orderbook/depth.js +63 -63
  50. package/dist/charts/engine/orderbook/heatmap.cjs +1 -1
  51. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -1
  52. package/dist/charts/engine/orderbook/heatmap.js +155 -155
  53. package/dist/charts/engine/orderbook/host.cjs +1 -1
  54. package/dist/charts/engine/orderbook/host.cjs.map +1 -1
  55. package/dist/charts/engine/orderbook/host.js +87 -75
  56. package/dist/charts/engine/orderbook/host.js.map +1 -1
  57. package/dist/charts/engine/orderbook/ladder.cjs +1 -1
  58. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -1
  59. package/dist/charts/engine/orderbook/ladder.js +41 -41
  60. package/dist/charts/engine/orderbook/tape.cjs +1 -1
  61. package/dist/charts/engine/orderbook/tape.cjs.map +1 -1
  62. package/dist/charts/engine/orderbook/tape.js +31 -31
  63. package/dist/charts/engine/presets.cjs +2 -2
  64. package/dist/charts/engine/presets.cjs.map +1 -1
  65. package/dist/charts/engine/presets.js +15 -15
  66. package/dist/charts/engine/renderers/vector-gpu.cjs +24 -0
  67. package/dist/charts/engine/renderers/vector-gpu.cjs.map +1 -0
  68. package/dist/charts/engine/renderers/vector-gpu.d.cts +22 -0
  69. package/dist/charts/engine/renderers/vector-gpu.d.ts +22 -0
  70. package/dist/charts/engine/renderers/vector-gpu.js +301 -0
  71. package/dist/charts/engine/renderers/vector-gpu.js.map +1 -0
  72. package/dist/charts/engine/renderers/vector.cjs +2 -0
  73. package/dist/charts/engine/renderers/vector.cjs.map +1 -0
  74. package/dist/charts/engine/renderers/vector.d.cts +140 -0
  75. package/dist/charts/engine/renderers/vector.d.ts +140 -0
  76. package/dist/charts/engine/renderers/vector.js +568 -0
  77. package/dist/charts/engine/renderers/vector.js.map +1 -0
  78. package/dist/charts/engine/scene.cjs +1 -1
  79. package/dist/charts/engine/scene.cjs.map +1 -1
  80. package/dist/charts/engine/scene.d.cts +43 -3
  81. package/dist/charts/engine/scene.d.ts +43 -3
  82. package/dist/charts/engine/scene.js +411 -338
  83. package/dist/charts/engine/scene.js.map +1 -1
  84. package/dist/charts/engine/shapes/bullet.cjs +1 -1
  85. package/dist/charts/engine/shapes/bullet.cjs.map +1 -1
  86. package/dist/charts/engine/shapes/bullet.js +36 -36
  87. package/dist/charts/engine/shapes/calendar.cjs +1 -1
  88. package/dist/charts/engine/shapes/calendar.cjs.map +1 -1
  89. package/dist/charts/engine/shapes/calendar.js +53 -53
  90. package/dist/charts/engine/shapes/chart.cjs +1 -1
  91. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  92. package/dist/charts/engine/shapes/chart.d.cts +3 -2
  93. package/dist/charts/engine/shapes/chart.d.ts +3 -2
  94. package/dist/charts/engine/shapes/chart.js +192 -162
  95. package/dist/charts/engine/shapes/chart.js.map +1 -1
  96. package/dist/charts/engine/shapes/draw.cjs +1 -1
  97. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  98. package/dist/charts/engine/shapes/draw.js +87 -86
  99. package/dist/charts/engine/shapes/draw.js.map +1 -1
  100. package/dist/charts/engine/shapes/layout.cjs +2 -2
  101. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  102. package/dist/charts/engine/shapes/layout.d.cts +8 -7
  103. package/dist/charts/engine/shapes/layout.d.ts +8 -7
  104. package/dist/charts/engine/shapes/layout.js +262 -166
  105. package/dist/charts/engine/shapes/layout.js.map +1 -1
  106. package/dist/charts/engine/shapes/types.d.cts +13 -1
  107. package/dist/charts/engine/shapes/types.d.ts +13 -1
  108. package/dist/charts/engine/three-d/chart.cjs +1 -1
  109. package/dist/charts/engine/three-d/chart.cjs.map +1 -1
  110. package/dist/charts/engine/three-d/chart.js +266 -257
  111. package/dist/charts/engine/three-d/chart.js.map +1 -1
  112. package/dist/charts/engine/three-d/dom.cjs +1 -1
  113. package/dist/charts/engine/three-d/dom.cjs.map +1 -1
  114. package/dist/charts/engine/three-d/dom.js +28 -35
  115. package/dist/charts/engine/three-d/dom.js.map +1 -1
  116. package/dist/charts/engine/three-d/geometry.cjs +1 -1
  117. package/dist/charts/engine/three-d/geometry.cjs.map +1 -1
  118. package/dist/charts/engine/three-d/geometry.js +70 -70
  119. package/dist/charts/engine/three-d/overlay.cjs +1 -1
  120. package/dist/charts/engine/three-d/overlay.cjs.map +1 -1
  121. package/dist/charts/engine/three-d/overlay.js +15 -15
  122. package/dist/charts/engine/tooltip.cjs +2 -0
  123. package/dist/charts/engine/tooltip.cjs.map +1 -0
  124. package/dist/charts/engine/tooltip.d.cts +94 -0
  125. package/dist/charts/engine/tooltip.d.ts +94 -0
  126. package/dist/charts/engine/tooltip.js +242 -0
  127. package/dist/charts/engine/tooltip.js.map +1 -0
  128. package/dist/charts/engine/trading/chart.cjs +1 -1
  129. package/dist/charts/engine/trading/chart.cjs.map +1 -1
  130. package/dist/charts/engine/trading/chart.js +135 -135
  131. package/dist/charts/react/shapes.cjs +1 -1
  132. package/dist/charts/react/shapes.cjs.map +1 -1
  133. package/dist/charts/react/shapes.d.cts +10 -1
  134. package/dist/charts/react/shapes.d.ts +10 -1
  135. package/dist/charts/react/shapes.js +24 -19
  136. package/dist/charts/react/shapes.js.map +1 -1
  137. package/dist/core/contracts.cjs +1 -1
  138. package/dist/core/contracts.cjs.map +1 -1
  139. package/dist/core/contracts.js +1 -1
  140. package/dist/core/contracts.js.map +1 -1
  141. package/dist/native/charts/src/canvas.cjs +1 -1
  142. package/dist/native/charts/src/canvas.js +8 -7
  143. package/dist/native/charts/src/engine/canvas.cjs +1 -1
  144. package/dist/native/charts/src/engine/canvas.js +2 -0
  145. package/dist/native/charts/src/engine/controller.cjs +2 -2
  146. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  147. package/dist/native/charts/src/engine/controller.js +102 -87
  148. package/dist/native/charts/src/engine/controller.js.map +1 -1
  149. package/dist/native/charts/src/engine/hover-rect.cjs +2 -0
  150. package/dist/native/charts/src/engine/hover-rect.cjs.map +1 -0
  151. package/dist/native/charts/src/engine/hover-rect.js +47 -0
  152. package/dist/native/charts/src/engine/hover-rect.js.map +1 -0
  153. package/dist/native/charts/src/engine/scene.cjs +1 -1
  154. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  155. package/dist/native/charts/src/engine/scene.js +318 -245
  156. package/dist/native/charts/src/engine/scene.js.map +1 -1
  157. package/dist/native/charts/src/engine/shapes/draw.cjs +1 -1
  158. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -1
  159. package/dist/native/charts/src/engine/shapes/draw.js +81 -80
  160. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -1
  161. package/dist/native/charts/src/engine/shapes/layout.cjs +2 -2
  162. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -1
  163. package/dist/native/charts/src/engine/shapes/layout.js +239 -143
  164. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -1
  165. package/dist/native/charts/src/engine/tooltip.cjs +2 -0
  166. package/dist/native/charts/src/engine/tooltip.cjs.map +1 -0
  167. package/dist/native/charts/src/engine/tooltip.js +164 -0
  168. package/dist/native/charts/src/engine/tooltip.js.map +1 -0
  169. package/dist/native/components/Chart/scene.cjs +1 -1
  170. package/dist/native/components/Chart/scene.cjs.map +1 -1
  171. package/dist/native/components/Chart/scene.js +210 -187
  172. package/dist/native/components/Chart/scene.js.map +1 -1
  173. package/dist/native/source/components/Chart/scene.tsx +55 -2
  174. package/dist/taro/index.js +2026 -1626
  175. package/dist/uni/charts-canvas.js +1 -0
  176. package/dist/vue/components/Chart/BulletChart.vue.d.ts +2 -0
  177. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +2 -0
  178. package/dist/vue/components/Chart/ChordChart.vue.d.ts +2 -0
  179. package/dist/vue/components/Chart/DonutChart.vue.d.ts +2 -0
  180. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +2 -0
  181. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +2 -0
  182. package/dist/vue/components/Chart/PieChart.vue.d.ts +2 -0
  183. package/dist/vue/components/Chart/RadarChart.vue.d.ts +2 -0
  184. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +2 -0
  185. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +2 -0
  186. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +2 -0
  187. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +2 -0
  188. package/dist/vue/components/Chart/props.d.ts +2 -0
  189. package/dist/vue/components/Chart/props.js +1 -0
  190. package/dist/vue/components/Chart/props.js.map +1 -1
  191. package/dist/vue/components/Chart/shape.d.ts +2 -1
  192. package/dist/vue/components/Chart/shape.js +2 -0
  193. package/dist/vue/components/Chart/shape.js.map +1 -1
  194. package/dist/vue/components/Chart/types.d.ts +2 -0
  195. package/dist/weapp/charts/canvas.js +2576 -1969
  196. package/dist/weapp/charts/core.js +1 -0
  197. package/dist/web-components/components/chart/shape-chart.d.ts +9 -7
  198. package/dist/web-components/components/chart/shape-chart.js +3 -0
  199. package/dist/web-components/components/chart/shape-chart.js.map +1 -1
  200. package/dist/web-components/components/chart/shapes-extended.d.ts +6 -6
  201. package/dist/web-components/components/chart/shapes-extended.js.map +1 -1
  202. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import { createDataCanvas as e, styleElement as t } from "../dom.js";
2
- import { luminance as n, mix as r, packColor as i, parseColor as a, toCss as o } from "../color.js";
3
- import { languageOf as s, localeLabels as c, resolveLocale as l } from "../locale.js";
4
- import { stepDecimals as u } from "../scale.js";
2
+ import { languageOf as n, localeLabels as r, resolveLocale as i } from "../locale.js";
3
+ import { stepDecimals as a } from "../scale.js";
4
+ import { luminance as o, mix as s, packColor as c, parseColor as l, toCss as u } from "../color.js";
5
5
  import { createRenderer as d } from "../renderers/detect.js";
6
6
  import { followDefaultRenderer as f } from "../renderers/follow.js";
7
7
  import { readTheme as p, themeColorsChanged as m, watchTheme as h } from "../theme.js";
@@ -35,15 +35,15 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
35
35
  stopLoss: "stopLoss",
36
36
  alert: "alert"
37
37
  }, E = (e, t, n) => e < t ? t : e > n ? n : e, yt = (e) => {
38
- let t = a(e);
39
- return t && n(t) > .5 ? "#0b0e11" : "#fff";
38
+ let t = l(e);
39
+ return t && o(t) > .5 ? "#0b0e11" : "#fff";
40
40
  }, D = Number.isFinite, bt = "B S Alt+B Alt+S O Shift+O ArrowUp ArrowDown Shift+ArrowUp Shift+ArrowDown Enter Escape Delete", xt = (e, t, n) => D(n) ? e === "buy" ? t <= n ? "limit" : "stop" : t >= n ? "limit" : "stop" : "limit", St = {
41
41
  minWidth: "0",
42
42
  maxWidth: "100%",
43
43
  overflow: "hidden",
44
44
  textOverflow: "ellipsis"
45
- }, Ct = "display:inline-flex;gap:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis", O = (n, a = {}) => {
46
- let O = n.ownerDocument, wt = O.defaultView, k = { ...a }, Tt = !1, Et = (e, n) => t(O.createElement(e), n), A = Et("div", {
45
+ }, Ct = "display:inline-flex;gap:3px;max-width:100%;overflow:hidden;text-overflow:ellipsis", O = (o, l = {}) => {
46
+ let O = o.ownerDocument, wt = O.defaultView, k = { ...l }, Tt = !1, Et = (e, n) => t(O.createElement(e), n), A = Et("div", {
47
47
  position: "relative",
48
48
  width: "100%",
49
49
  height: "100%",
@@ -124,7 +124,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
124
124
  });
125
125
  j.rows = 1;
126
126
  let Pt = Et("style", {});
127
- Pt.textContent = ".minerva-trading-toolbar button{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 5px;border-radius:5px;cursor:pointer;color:var(--text-color,#1f2937)}.minerva-trading-toolbar button:hover{background:color-mix(in srgb,var(--text-color,#1f2937) 9%,transparent)}.minerva-trading-toolbar button:focus-visible{box-shadow:inset 0 0 0 2px var(--primary-color,#2962ff)}.minerva-trading-toolbar button[aria-pressed=\"true\"]{background:color-mix(in srgb,var(--primary-color,#2962ff) 16%,transparent);color:var(--primary-color,#2962ff)}.minerva-trading-toolbar .sep{width:1px;height:18px;margin:0 3px;background:var(--border-color,#e5e7eb)}", A.append(Pt, Ot, kt, At, jt, Nt, j, Mt), n.appendChild(A);
127
+ Pt.textContent = ".minerva-trading-toolbar button{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 5px;border-radius:5px;cursor:pointer;color:var(--text-color,#1f2937)}.minerva-trading-toolbar button:hover{background:color-mix(in srgb,var(--text-color,#1f2937) 9%,transparent)}.minerva-trading-toolbar button:focus-visible{box-shadow:inset 0 0 0 2px var(--primary-color,#2962ff)}.minerva-trading-toolbar button[aria-pressed=\"true\"]{background:color-mix(in srgb,var(--primary-color,#2962ff) 16%,transparent);color:var(--primary-color,#2962ff)}.minerva-trading-toolbar .sep{width:1px;height:18px;margin:0 3px;background:var(--border-color,#e5e7eb)}", A.append(Pt, Ot, kt, At, jt, Nt, j, Mt), o.appendChild(A);
128
128
  let M = qe(), Ft = Ge(), It = {
129
129
  time: M.time,
130
130
  open: /* @__PURE__ */ new Float64Array(),
@@ -136,9 +136,9 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
136
136
  dn = e;
137
137
  }), B = null, V = null, pn = !1, H = null, U = null, mn = /* @__PURE__ */ new Map(), hn = null, gn = null, _n = null, vn = null, W = k.drawings ?? [], yn = null, bn = W, xn = [], Sn = [], Cn = "false|false", wn = k.drawingMode ?? "cursor", Tn = null, En = null, G = null, Dn = 0, On = T, kn = 0, An = /* @__PURE__ */ new Map(), jn = null, Mn = "", Nn = !1, Pn = /* @__PURE__ */ new Map(), Fn = null, In = [], Ln = -1, Rn = null, zn = !1, Bn = null, Vn = "", Hn = NaN, Un = null, K = null, Wn = !1, Gn = 4, Kn = null, qn = /* @__PURE__ */ new Map(), q = (e, t) => {
138
138
  qn.get(e)?.forEach((e) => e(t));
139
- }, J = l(k.locale), Jn = c(Oe, J, k.labels), Yn = () => {
140
- J = l(k.locale), Jn = c(Oe, J, k.labels);
141
- }, Xn = () => Jn, Y = () => M.length, Zn = () => k.chartStyle ?? "candles", Qn = () => k.colorConvention === "redUp" || k.colorConvention === "auto" && he(J), $n = () => k.upColor ?? (Qn() ? dt : ut), er = () => k.downColor ?? (Qn() ? ut : dt), tr = (e, t = R.primary) => R.resolve ? R.resolve(e, t) : t, X = (e, t = 1) => o(tr(e), t), nr = () => k.precision ?? qt, rr = me(2, void 0), ir = "", Z = (e) => {
139
+ }, J = i(k.locale), Jn = r(Oe, J, k.labels), Yn = () => {
140
+ J = i(k.locale), Jn = r(Oe, J, k.labels);
141
+ }, Xn = () => Jn, Y = () => M.length, Zn = () => k.chartStyle ?? "candles", Qn = () => k.colorConvention === "redUp" || k.colorConvention === "auto" && he(J), $n = () => k.upColor ?? (Qn() ? dt : ut), er = () => k.downColor ?? (Qn() ? ut : dt), tr = (e, t = R.primary) => R.resolve ? R.resolve(e, t) : t, X = (e, t = 1) => u(tr(e), t), nr = () => k.precision ?? qt, rr = me(2, void 0), ir = "", Z = (e) => {
142
142
  if (k.formatPrice) return k.formatPrice(e);
143
143
  let t = `${nr()}|${J}`;
144
144
  return t !== ir && (rr = me(nr(), J), ir = t), rr(e);
@@ -436,18 +436,18 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
436
436
  text: ge(e.time, e.weight, J, i),
437
437
  bold: e.weight >= (i ? 50 : 60)
438
438
  }));
439
- }, Gr = (e, t) => e.id === T ? e.scale.mode === "percent" ? le(t, J, Math.min(2, u(e.step))) : Z(Fe(e.scale, t)) : e.study?.compact ? ue(t, J) : ce(t, Math.min(4, u(e.step)), J), Kr = (e, t) => e.overlay && e.type !== "volume" ? Z(t) : e.compact ? ue(t, J) : ce(t, e.range ? 2 : Math.max(2, Math.min(6, nr())), J), qr = (e, t) => {
440
- let n = [], a = e.cols, o = tr($n()), s = tr(er()), c = i(o), l = i(s), u = R.background, d = Se(N * e.size * t, t), f = (n) => cr(Fr(e, n)) * t, p = Zn(), m = Math.max(.5, d.body / 2), h = {
441
- up: i([
442
- o[0],
443
- o[1],
444
- o[2],
439
+ }, Gr = (e, t) => e.id === T ? e.scale.mode === "percent" ? le(t, J, Math.min(2, a(e.step))) : Z(Fe(e.scale, t)) : e.study?.compact ? ue(t, J) : ce(t, Math.min(4, a(e.step)), J), Kr = (e, t) => e.overlay && e.type !== "volume" ? Z(t) : e.compact ? ue(t, J) : ce(t, e.range ? 2 : Math.max(2, Math.min(6, nr())), J), qr = (e, t) => {
440
+ let n = [], r = e.cols, i = tr($n()), a = tr(er()), o = c(i), l = c(a), u = R.background, d = Se(N * e.size * t, t), f = (n) => cr(Fr(e, n)) * t, p = Zn(), m = Math.max(.5, d.body / 2), h = {
441
+ up: c([
442
+ i[0],
443
+ i[1],
444
+ i[2],
445
445
  .5
446
446
  ]),
447
- down: i([
448
- s[0],
449
- s[1],
450
- s[2],
447
+ down: c([
448
+ a[0],
449
+ a[1],
450
+ a[2],
451
451
  .5
452
452
  ])
453
453
  };
@@ -493,15 +493,15 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
493
493
  if (g.id === T) {
494
494
  if (zt.find((e) => e.overlay && e.type === "volume" && sr(e)) && tn > 0) {
495
495
  let t = (v - _) * .2;
496
- n.push((n, r) => {
497
- let i = new ye();
498
- for (let o = n; o <= r; o++) {
499
- let n = a.volume[o] / Ir(e, o);
496
+ n.push((n, i) => {
497
+ let a = new ye();
498
+ for (let o = n; o <= i; o++) {
499
+ let n = r.volume[o] / Ir(e, o);
500
500
  if (!(n > 0)) continue;
501
- let r = v - n / tn * t, [s, c] = we(r, v);
502
- i.push(d.snap(f(o)), s, c, a.close[o] >= a.open[o] ? h.up : h.down);
501
+ let i = v - n / tn * t, [s, c] = we(i, v);
502
+ a.push(d.snap(f(o)), s, c, r.close[o] >= r.open[o] ? h.up : h.down);
503
503
  }
504
- return [i.item("", 0, m)];
504
+ return [a.item("", 0, m)];
505
505
  });
506
506
  }
507
507
  for (let e of Ht) {
@@ -510,18 +510,18 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
510
510
  }
511
511
  if (p === "line" || p === "area" || p === "baseline") {
512
512
  let t = tr(pt);
513
- if (p === "area" && n.push((n, r, i) => {
513
+ if (p === "area" && n.push((n, i, a) => {
514
514
  let o = new ve(_, v);
515
- for (let t = i ? Math.max(e.g0, n - 1) : n; t <= r; t++) o.push(f(t), b(a.close[t]), v);
515
+ for (let t = a ? Math.max(e.g0, n - 1) : n; t <= i; t++) o.push(f(t), b(r.close[t]), v);
516
516
  return o.count > 1 ? [o.item("", 0, t, .28)] : [];
517
517
  }), p === "baseline") {
518
518
  let t = b(Br());
519
- n.push((n, r, i) => {
519
+ n.push((n, o, s) => {
520
520
  let c = new ve(_, v), l = new ve(_, v), u = new be(_, v), d = new be(_, v), p = NaN, m = NaN, h = (e, n) => {
521
521
  c.push(e, Math.min(n, t), t), l.push(e, Math.max(n, t), t), n <= t ? u.push(e, n) : u.break(), n >= t ? d.push(e, n) : d.break();
522
522
  };
523
- for (let o = i ? Math.max(e.g0, n - 1) : n; o <= r; o++) {
524
- let e = f(o), n = b(a.close[o]);
523
+ for (let i = s ? Math.max(e.g0, n - 1) : n; i <= o; i++) {
524
+ let e = f(i), n = b(r.close[i]);
525
525
  if (D(m) && (m - t) * (n - t) < 0) {
526
526
  let r = (t - m) / (n - m);
527
527
  h(p + (e - p) * r, t);
@@ -529,50 +529,50 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
529
529
  h(e, n), p = e, m = n;
530
530
  }
531
531
  let g = [];
532
- return c.count > 1 && g.push(c.item("u", 0, o, .22), l.item("d", 0, s, .22)), u.count > 1 && g.push(u.item("ul", 0, o, 2)), d.count > 1 && g.push(d.item("dl", 0, s, 2)), g;
532
+ return c.count > 1 && g.push(c.item("u", 0, i, .22), l.item("d", 0, a, .22)), u.count > 1 && g.push(u.item("ul", 0, i, 2)), d.count > 1 && g.push(d.item("dl", 0, a, 2)), g;
533
533
  });
534
- } else n.push(x((e) => a.close[e], t, 2));
534
+ } else n.push(x((e) => r.close[e], t, 2));
535
535
  } else {
536
- let e = p === "hollowCandles", t = p === "bars", r = d.wick, i = d.body;
537
- n.push((n, o) => {
538
- let s = new ye(), u = new ye(), p = new ye(), m = new ye(), h = Math.max(r, Math.round((i - r) / 2));
539
- for (let g = n; g <= o; g++) {
540
- let n = a.open[g], o = a.high[g], y = a.low[g], x = a.close[g];
536
+ let e = p === "hollowCandles", t = p === "bars", i = d.wick, a = d.body;
537
+ n.push((n, s) => {
538
+ let c = new ye(), u = new ye(), p = new ye(), m = new ye(), h = Math.max(i, Math.round((a - i) / 2));
539
+ for (let g = n; g <= s; g++) {
540
+ let n = r.open[g], s = r.high[g], y = r.low[g], x = r.close[g];
541
541
  if (!D(n) || !D(x)) continue;
542
- let S = (e ? x >= (g > 0 ? a.close[g - 1] : n) : x >= n) ? c : l, ee = d.snap(f(g)), [te, ne] = we(b(o), b(y));
542
+ let S = (e ? x >= (g > 0 ? r.close[g - 1] : n) : x >= n) ? o : l, ee = d.snap(f(g)), [te, ne] = we(b(s), b(y));
543
543
  if (t) {
544
544
  let e = Ce(te, ne, _, v);
545
- e && s.push(ee, e[0], e[1], S);
545
+ e && c.push(ee, e[0], e[1], S);
546
546
  for (let [e, t] of [[n, -1], [x, 1]]) {
547
- let n = Math.round(b(e) - r / 2);
548
- n < _ || n + r > v || m.push(ee + t * (r / 2 + h / 2), n, n + r, S);
547
+ let n = Math.round(b(e) - i / 2);
548
+ n < _ || n + i > v || m.push(ee + t * (i / 2 + h / 2), n, n + i, S);
549
549
  }
550
550
  continue;
551
551
  }
552
552
  let [re, ie] = we(b(n), b(x));
553
- if (i <= r) {
553
+ if (a <= i) {
554
554
  let e = Ce(te, ne, _, v);
555
- e && s.push(ee, e[0], e[1], S);
555
+ e && c.push(ee, e[0], e[1], S);
556
556
  continue;
557
557
  }
558
558
  if (e && x > n) {
559
559
  let e = [[te, re], [ie, ne]];
560
560
  for (let [t, n] of e) {
561
561
  let e = n > t ? Ce(t, n, _, v) : null;
562
- e && s.push(ee, e[0], e[1], S);
562
+ e && c.push(ee, e[0], e[1], S);
563
563
  }
564
564
  let t = Ce(re, ie, _, v);
565
- t && (s.push(ee - i / 2 + r / 2, t[0], t[1], S), s.push(ee + i / 2 - r / 2, t[0], t[1], S));
566
- for (let e of [re, ie - r]) e >= _ && e + r <= v && p.push(ee, e, e + r, S);
565
+ t && (c.push(ee - a / 2 + i / 2, t[0], t[1], S), c.push(ee + a / 2 - i / 2, t[0], t[1], S));
566
+ for (let e of [re, ie - i]) e >= _ && e + i <= v && p.push(ee, e, e + i, S);
567
567
  continue;
568
568
  }
569
569
  let ae = Ce(te, ne, _, v);
570
- ae && s.push(ee, ae[0], ae[1], S);
570
+ ae && c.push(ee, ae[0], ae[1], S);
571
571
  let C = Ce(re, ie, _, v);
572
572
  C && u.push(ee, C[0], C[1], S);
573
573
  }
574
- let g = [s.item("w", 0, r / 2)];
575
- return u.count && g.push(u.item("b", 0, i / 2)), p.count && g.push(p.item("c", 0, i / 2)), m.count && g.push(m.item("t", 0, h / 2)), g;
574
+ let g = [c.item("w", 0, i / 2)];
575
+ return u.count && g.push(u.item("b", 0, a / 2)), p.count && g.push(p.item("c", 0, a / 2)), m.count && g.push(m.item("t", 0, h / 2)), g;
576
576
  });
577
577
  }
578
578
  }
@@ -586,47 +586,47 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
586
586
  }
587
587
  for (let g of p.outputs) if (g.kind === "volume") {
588
588
  let t = b(0);
589
- n.push((n, r) => {
590
- let i = new ye();
591
- for (let o = n; o <= r; o++) {
592
- let n = a.volume[o] / Ir(e, o);
589
+ n.push((n, i) => {
590
+ let a = new ye();
591
+ for (let o = n; o <= i; o++) {
592
+ let n = r.volume[o] / Ir(e, o);
593
593
  if (!(n > 0)) continue;
594
- let r = Ce(...we(b(n), t), _, v);
595
- r && i.push(d.snap(f(o)), r[0], r[1], a.close[o] >= a.open[o] ? h.up : h.down);
594
+ let i = Ce(...we(b(n), t), _, v);
595
+ i && a.push(d.snap(f(o)), i[0], i[1], r.close[o] >= r.open[o] ? h.up : h.down);
596
596
  }
597
- return [i.item("", 0, m)];
597
+ return [a.item("", 0, m)];
598
598
  });
599
599
  } else if (g.kind === "histogram") {
600
- let t = b(0), a = {
601
- up: c,
600
+ let t = b(0), r = {
601
+ up: o,
602
602
  down: l
603
603
  }, p = {
604
- up: i(r(u, o, .45)),
605
- down: i(r(u, s, .45))
604
+ up: c(s(u, i, .45)),
605
+ down: c(s(u, a, .45))
606
606
  }, h = br(g);
607
- n.push((n, r) => {
608
- let i = vr(e, g.values, h), o = new ye();
609
- for (let s = n; s <= r; s++) {
610
- let n = i.last[s];
607
+ n.push((n, i) => {
608
+ let a = vr(e, g.values, h), o = new ye();
609
+ for (let s = n; s <= i; s++) {
610
+ let n = a.last[s];
611
611
  if (!D(n)) continue;
612
- let r = s > 0 ? i.last[s - 1] : n, c = n >= 0 ? n >= r ? a.up : p.up : n <= r ? a.down : p.down, l = Math.min(0, D(i.min[s]) ? i.min[s] : n), u = Math.max(0, D(i.max[s]) ? i.max[s] : n), m = Ce(...e.level ? we(b(u), b(l)) : we(b(n), t), _, v);
612
+ let i = s > 0 ? a.last[s - 1] : n, c = n >= 0 ? n >= i ? r.up : p.up : n <= i ? r.down : p.down, l = Math.min(0, D(a.min[s]) ? a.min[s] : n), u = Math.max(0, D(a.max[s]) ? a.max[s] : n), m = Ce(...e.level ? we(b(u), b(l)) : we(b(n), t), _, v);
613
613
  m && o.push(d.snap(f(s)), m[0], m[1], c);
614
614
  }
615
615
  return [o.item("", 0, m)];
616
616
  });
617
617
  } else if (g.kind === "dots") {
618
- let r = g.color ? i(tr(_r(g.color))) : 0, o = E(N * e.size * .22, 1.25, 2.6), s = o * t;
618
+ let i = g.color ? c(tr(_r(g.color))) : 0, a = E(N * e.size * .22, 1.25, 2.6), s = a * t;
619
619
  n.push((t, n) => {
620
- let i = new ye();
621
- for (let o = t; o <= n; o++) {
622
- let t = e.level ? g.values[Math.min(Y() - 1, o * e.size + e.size - 1)] : g.values[o];
620
+ let c = new ye();
621
+ for (let a = t; a <= n; a++) {
622
+ let t = e.level ? g.values[Math.min(Y() - 1, a * e.size + e.size - 1)] : g.values[a];
623
623
  if (!D(t)) continue;
624
624
  let n = b(t);
625
625
  if (n < _ || n > v) continue;
626
- let u = r || (t <= a.close[o] ? c : l);
627
- i.push(f(o), n - s, n + s, u);
626
+ let u = i || (t <= r.close[a] ? o : l);
627
+ c.push(f(a), n - s, n + s, u);
628
628
  }
629
- return i.count ? [i.item("", 0, s, 0, o)] : [];
629
+ return c.count ? [c.item("", 0, s, 0, a)] : [];
630
630
  });
631
631
  } else {
632
632
  let e = tr(_r(g.color));
@@ -755,7 +755,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
755
755
  r = i;
756
756
  }
757
757
  if (n.length) {
758
- e.save(), e.strokeStyle = o(R.textMuted, .4), e.setLineDash([4, 4]), e.beginPath();
758
+ e.save(), e.strokeStyle = u(R.textMuted, .4), e.setLineDash([4, 4]), e.beginPath();
759
759
  for (let t of n) e.moveTo(t, 0), e.lineTo(t, I);
760
760
  e.stroke(), e.restore();
761
761
  }
@@ -786,25 +786,25 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
786
786
  })
787
787
  };
788
788
  }
789
- let s = Kn.result;
790
- if (s.poc < 0) return;
791
- let c = 0;
792
- for (let e = 0; e < i; e++) c = Math.max(c, (s.up[e] ?? 0) + (s.down[e] ?? 0));
793
- if (!(c > 0)) return;
794
- let l = F * E(n.width ?? .28, .05, .9), u = (n.side ?? "right") === "right", d = tr(_r(n.upColor ?? "up")), f = tr(_r(n.downColor ?? "down"));
789
+ let o = Kn.result;
790
+ if (o.poc < 0) return;
791
+ let s = 0;
792
+ for (let e = 0; e < i; e++) s = Math.max(s, (o.up[e] ?? 0) + (o.down[e] ?? 0));
793
+ if (!(s > 0)) return;
794
+ let c = F * E(n.width ?? .28, .05, .9), l = (n.side ?? "right") === "right", d = tr(_r(n.upColor ?? "up")), f = tr(_r(n.downColor ?? "down"));
795
795
  e.save(), e.beginPath(), e.rect(0, r.top, F, r.height), e.clip();
796
796
  for (let t = 0; t < i; t++) {
797
- let n = s.up[t] ?? 0, i = s.down[t] ?? 0;
797
+ let n = o.up[t] ?? 0, i = o.down[t] ?? 0;
798
798
  if (!(n + i > 0)) continue;
799
- let a = w(r.scale, s.low + t * s.step), p = w(r.scale, s.low + (t + 1) * s.step), m = Math.min(a, p), h = Math.max(1, Math.abs(p - a) - +(Math.abs(p - a) > 4)), g = t >= s.valueAreaFrom && t <= s.valueAreaTo ? .42 : .17, _ = n / c * l, v = i / c * l, y = u ? F : 0, b = u ? -1 : 1;
800
- e.fillStyle = o(d, g), e.fillRect(Math.min(y, y + b * _), m, _, h), e.fillStyle = o(f, g);
799
+ let a = w(r.scale, o.low + t * o.step), p = w(r.scale, o.low + (t + 1) * o.step), m = Math.min(a, p), h = Math.max(1, Math.abs(p - a) - +(Math.abs(p - a) > 4)), g = t >= o.valueAreaFrom && t <= o.valueAreaTo ? .42 : .17, _ = n / s * c, v = i / s * c, y = l ? F : 0, b = l ? -1 : 1;
800
+ e.fillStyle = u(d, g), e.fillRect(Math.min(y, y + b * _), m, _, h), e.fillStyle = u(f, g);
801
801
  let x = y + b * _;
802
802
  e.fillRect(Math.min(x, x + b * v), m, v, h);
803
803
  }
804
- let p = Math.round(w(r.scale, s.low + (s.poc + .5) * s.step)) + .5;
804
+ let p = Math.round(w(r.scale, o.low + (o.poc + .5) * o.step)) + .5;
805
805
  e.strokeStyle = X(n.pocColor ?? ft, .9), e.lineWidth = 1, e.beginPath(), e.moveTo(0, p), e.lineTo(F, p), e.stroke(), e.restore();
806
806
  }, ni = (e, t, n) => {
807
- let r = o(R.grid), i = k.grid !== !1;
807
+ let r = u(R.grid), i = k.grid !== !1;
808
808
  if (e.lineWidth = 1, i) {
809
809
  e.strokeStyle = r, e.beginPath();
810
810
  for (let t of n) {
@@ -819,13 +819,13 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
819
819
  }
820
820
  if (k.watermark) {
821
821
  let t = L[0];
822
- e.save(), e.font = Q(Math.min(56, Math.max(22, F / 14)), 700), e.fillStyle = o(R.text, .07), e.textAlign = "center", e.textBaseline = "middle", e.fillText(k.watermark, F / 2, t.top + t.height / 2), e.restore();
822
+ e.save(), e.font = Q(Math.min(56, Math.max(22, F / 14)), 700), e.fillStyle = u(R.text, .07), e.textAlign = "center", e.textBaseline = "middle", e.fillText(k.watermark, F / 2, t.top + t.height / 2), e.restore();
823
823
  }
824
824
  for (let t of L) {
825
825
  let n = t.study;
826
826
  if (n?.bands && sr(n)) {
827
827
  let r = tr(_r(n.outputs[0]?.color ?? pt)), i = n.bands.map((e) => Math.round(w(t.scale, e)) + .5);
828
- n.bandFill && i.length === 2 && (e.fillStyle = o(r, .07), e.fillRect(0, Math.min(i[0], i[1]), F, Math.abs(i[1] - i[0]))), e.save(), e.setLineDash([4, 4]), e.strokeStyle = o(R.textMuted, .45), e.beginPath();
828
+ n.bandFill && i.length === 2 && (e.fillStyle = u(r, .07), e.fillRect(0, Math.min(i[0], i[1]), F, Math.abs(i[1] - i[0]))), e.save(), e.setLineDash([4, 4]), e.strokeStyle = u(R.textMuted, .45), e.beginPath();
829
829
  for (let n of i) n < t.top || n > t.top + t.height || (e.moveTo(0, n), e.lineTo(F, n));
830
830
  e.stroke(), e.restore();
831
831
  }
@@ -840,11 +840,11 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
840
840
  let n = L[0];
841
841
  if (n && n.scale.mode === "percent" && Ht.length) {
842
842
  let t = Math.round(Ve(n.scale, 0)) + .5;
843
- t > n.top && t < n.top + n.height && (e.save(), e.strokeStyle = o(R.textMuted, .6), e.setLineDash([2, 3]), e.beginPath(), e.moveTo(0, t), e.lineTo(F, t), e.stroke(), e.restore());
843
+ t > n.top && t < n.top + n.height && (e.save(), e.strokeStyle = u(R.textMuted, .6), e.setLineDash([2, 3]), e.beginPath(), e.moveTo(0, t), e.lineTo(F, t), e.stroke(), e.restore());
844
844
  }
845
845
  ti(e, t);
846
846
  }
847
- e.strokeStyle = o(R.axis), e.beginPath();
847
+ e.strokeStyle = u(R.axis), e.beginPath();
848
848
  for (let t of L.slice(1)) {
849
849
  let n = Math.round(t.top) + .5;
850
850
  e.moveTo(0, n), e.lineTo(Xt, n);
@@ -973,7 +973,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
973
973
  let r = L[0];
974
974
  if (!r) return;
975
975
  In = [];
976
- let i = Y(), a = o(R.text), s = o(R.textMuted), c = o(R.background), l = X($n()), u = X(er()), d = Xn(), f = i ? M.close[i - 1] : NaN, p = r.top + r.height, m = p - 32, h = [], g = (t, n, r, i = "left") => {
976
+ let i = Y(), a = u(R.text), o = u(R.textMuted), s = u(R.background), c = X($n()), l = X(er()), d = Xn(), f = i ? M.close[i - 1] : NaN, p = r.top + r.height, m = p - 32, h = [], g = (t, n, r, i = "left") => {
977
977
  e.font = Q(R.fontSize, 500);
978
978
  let a = e.measureText(t).width + 16, o = E(i === "center" ? n - a / 2 : n, 2, Math.max(2, F - a - 2));
979
979
  return {
@@ -991,7 +991,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
991
991
  let a = g(i, F - 56 - (e.measureText(i).width + 16), E(t - 11, r.top + 2, p - 24));
992
992
  _ = {
993
993
  y: t,
994
- color: H.side === "buy" ? l : u,
994
+ color: H.side === "buy" ? c : l,
995
995
  text: i,
996
996
  type: n,
997
997
  box: a
@@ -1007,17 +1007,17 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
1007
1007
  for (let t of k.priceLines ?? []) {
1008
1008
  let n = oi(t), i = w(r.scale, n), a = Math.round(i) + .5;
1009
1009
  if (!D(a) || a < r.top || a > p) continue;
1010
- let o = ai(t), s = t.kind ?? "line", m = vt[s], h = t.title ?? (m ? d[m] : ""), g = [];
1010
+ let o = ai(t), u = t.kind ?? "line", m = vt[u], h = t.title ?? (m ? d[m] : ""), g = [];
1011
1011
  if (h && g.push({
1012
1012
  text: h,
1013
1013
  fill: o,
1014
1014
  color: yt(o)
1015
1015
  }), t.quantity !== void 0 && t.quantity !== "" && g.push({
1016
1016
  text: String(t.quantity),
1017
- fill: c,
1017
+ fill: s,
1018
1018
  color: o
1019
- }), s === "position" && typeof t.quantity == "number" && D(f)) {
1020
- let e = (f - n) * t.quantity * (t.side === "sell" ? -1 : 1), r = e >= 0 ? l : u;
1019
+ }), u === "position" && typeof t.quantity == "number" && D(f)) {
1020
+ let e = (f - n) * t.quantity * (t.side === "sell" ? -1 : 1), r = e >= 0 ? c : l;
1021
1021
  g.push({
1022
1022
  text: `${e >= 0 ? "+" : "−"}${Z(Math.abs(e))}`,
1023
1023
  fill: r,
@@ -1026,7 +1026,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
1026
1026
  }
1027
1027
  t.cancellable && g.push({
1028
1028
  text: "×",
1029
- fill: c,
1029
+ fill: s,
1030
1030
  color: o,
1031
1031
  cancel: !0
1032
1032
  });
@@ -1060,26 +1060,26 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
1060
1060
  bottom: n.top + 22
1061
1061
  }));
1062
1062
  }), e.save(), e.beginPath(), e.rect(0, r.top, F, r.height), e.clip(), t && k.highLowMarkers !== !1 && Zn() !== "line" && Zn() !== "area" && Zn() !== "baseline") {
1063
- let n = -Infinity, i = Infinity, a = -1, o = -1;
1064
- for (let e = t.s0; e <= t.s1; e++) t.cols.high[e] > n && (n = t.cols.high[e], a = e), t.cols.low[e] < i && (i = t.cols.low[e], o = e);
1065
- e.font = Q(R.fontSize), e.fillStyle = s, e.strokeStyle = s, e.lineWidth = 1;
1063
+ let n = -Infinity, i = Infinity, a = -1, s = -1;
1064
+ for (let e = t.s0; e <= t.s1; e++) t.cols.high[e] > n && (n = t.cols.high[e], a = e), t.cols.low[e] < i && (i = t.cols.low[e], s = e);
1065
+ e.font = Q(R.fontSize), e.fillStyle = o, e.strokeStyle = o, e.lineWidth = 1;
1066
1066
  let c = bi.map((e) => ({
1067
1067
  left: 0,
1068
1068
  top: e.top,
1069
1069
  right: e.right,
1070
1070
  bottom: e.bottom
1071
1071
  }));
1072
- for (let [s, l, u] of [[
1072
+ for (let [o, l, u] of [[
1073
1073
  a,
1074
1074
  n,
1075
1075
  !1
1076
1076
  ], [
1077
- o,
1077
+ s,
1078
1078
  i,
1079
1079
  !0
1080
1080
  ]]) {
1081
- if (s < 0 || !D(l)) continue;
1082
- let n = cr(Fr(t, s)), i = Z(l), a = e.measureText(i).width, o = r.top + 8, d = p - 8, f = E(w(r.scale, l) + (u ? 9 : -9), o, d), m = F - 4 - (n + 17 + a), g = n - 17 - a - 4, _ = (m < 0 || n > F * .6) && g >= Math.min(0, m), v = [], y = u ? 1 : -1;
1081
+ if (o < 0 || !D(l)) continue;
1082
+ let n = cr(Fr(t, o)), i = Z(l), a = e.measureText(i).width, s = r.top + 8, d = p - 8, f = E(w(r.scale, l) + (u ? 9 : -9), s, d), m = F - 4 - (n + 17 + a), g = n - 17 - a - 4, _ = (m < 0 || n > F * .6) && g >= Math.min(0, m), v = [], y = u ? 1 : -1;
1083
1083
  for (let e of [
1084
1084
  0,
1085
1085
  1,
@@ -1088,7 +1088,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
1088
1088
  -1,
1089
1089
  -2
1090
1090
  ]) {
1091
- let t = E(f + e * y * 17, o, d);
1091
+ let t = E(f + e * y * 17, s, d);
1092
1092
  if (!v.some((e) => e.y === t)) for (let e of [_, !_]) v.push({
1093
1093
  y: t,
1094
1094
  left: e,
@@ -1122,40 +1122,40 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
1122
1122
  e.font = Q(R.fontSize, 600), e.textAlign = "center";
1123
1123
  let a = k.markers.length > 400;
1124
1124
  for (let o of k.markers) {
1125
- let s = xr(o.time);
1126
- if (s < 0 || s > i - 1) continue;
1127
- let d = Math.floor(s / t.size);
1125
+ let u = xr(o.time);
1126
+ if (u < 0 || u > i - 1) continue;
1127
+ let d = Math.floor(u / t.size);
1128
1128
  if (d < t.g0 || d > t.g1) continue;
1129
- let f = Math.round(cr(Fr(t, d))), p = o.side === "sell", m = o.color ? X(o.color) : p ? u : l, h = `${d}:${p}`, g = n.get(h) ?? 0;
1129
+ let f = Math.round(cr(Fr(t, d))), p = o.side === "sell", m = o.color ? X(o.color) : p ? l : c, h = `${d}:${p}`, g = n.get(h) ?? 0;
1130
1130
  n.set(h, g + (o.text && !a ? 30 : 16));
1131
1131
  let _ = w(r.scale, p ? t.cols.high[d] : t.cols.low[d]), v = p ? -1 : 1, y = _ + v * (6 + g);
1132
- e.fillStyle = m, e.beginPath(), e.moveTo(f, y), e.lineTo(f - 5.5, y + v * 7), e.lineTo(f - 2, y + v * 7), e.lineTo(f - 2, y + v * 12), e.lineTo(f + 2, y + v * 12), e.lineTo(f + 2, y + v * 7), e.lineTo(f + 5.5, y + v * 7), e.closePath(), e.fill(), o.text && !a && (e.textBaseline = p ? "bottom" : "top", e.fillText(o.text, f, y + v * 14)), o.price !== void 0 && D(o.price) && (e.beginPath(), e.arc(f, w(r.scale, o.price), 3, 0, Math.PI * 2), e.fill(), e.lineWidth = 1.5, e.strokeStyle = c, e.stroke());
1132
+ e.fillStyle = m, e.beginPath(), e.moveTo(f, y), e.lineTo(f - 5.5, y + v * 7), e.lineTo(f - 2, y + v * 7), e.lineTo(f - 2, y + v * 12), e.lineTo(f + 2, y + v * 12), e.lineTo(f + 2, y + v * 7), e.lineTo(f + 5.5, y + v * 7), e.closePath(), e.fill(), o.text && !a && (e.textBaseline = p ? "bottom" : "top", e.fillText(o.text, f, y + v * 14)), o.price !== void 0 && D(o.price) && (e.beginPath(), e.arc(f, w(r.scale, o.price), 3, 0, Math.PI * 2), e.fill(), e.lineWidth = 1.5, e.strokeStyle = s, e.stroke());
1133
1133
  }
1134
1134
  }
1135
1135
  e.restore(), _i(e, {
1136
1136
  text: a,
1137
- background: c,
1138
- up: l,
1139
- down: u
1137
+ background: s,
1138
+ up: c,
1139
+ down: l
1140
1140
  }), e.save(), e.beginPath(), e.rect(0, r.top, F, r.height), e.clip();
1141
1141
  for (let t of b) {
1142
1142
  let { line: n, y: r, color: i } = t, a = n.kind ?? "line", o = n.lineStyle ?? (a === "position" || a === "line" ? "solid" : "dashed");
1143
1143
  if (e.save(), e.strokeStyle = i, e.lineWidth = Fn === n.id || U?.kind === "order" && U.line.id === n.id || H?.kind === "move" && H.id === n.id ? 1.5 : 1, te(e, o, 1), e.beginPath(), e.moveTo(0, r), e.lineTo(F, r), e.stroke(), e.restore(), !t.total) continue;
1144
- let { parts: s, widths: l, grip: u, total: d, top: f } = t, p = t.left;
1145
- if (e.font = Q(R.fontSize, 600), p + d < F - 56 && (e.save(), e.strokeStyle = i, e.lineWidth = 1, e.setLineDash([]), e.beginPath(), e.moveTo(p + d, r), e.lineTo(Math.min(p + d + 6, F - 56), r), e.stroke(), e.restore()), H?.kind === "move" && H.id === n.id && (Zr(e, p - 3.5, f - 3.5, d + 7, 25, 5), e.strokeStyle = X(pt), e.lineWidth = 2, e.setLineDash([]), e.stroke()), Zr(e, p - .5, f - .5, d + 1, 19, 3), e.fillStyle = c, e.fill(), e.strokeStyle = i, e.lineWidth = 1, e.setLineDash([]), e.stroke(), u) {
1144
+ let { parts: c, widths: l, grip: u, total: d, top: f } = t, p = t.left;
1145
+ if (e.font = Q(R.fontSize, 600), p + d < F - 56 && (e.save(), e.strokeStyle = i, e.lineWidth = 1, e.setLineDash([]), e.beginPath(), e.moveTo(p + d, r), e.lineTo(Math.min(p + d + 6, F - 56), r), e.stroke(), e.restore()), H?.kind === "move" && H.id === n.id && (Zr(e, p - 3.5, f - 3.5, d + 7, 25, 5), e.strokeStyle = X(pt), e.lineWidth = 2, e.setLineDash([]), e.stroke()), Zr(e, p - .5, f - .5, d + 1, 19, 3), e.fillStyle = s, e.fill(), e.strokeStyle = i, e.lineWidth = 1, e.setLineDash([]), e.stroke(), u) {
1146
1146
  e.fillStyle = i;
1147
1147
  for (let t = 0; t < 3; t++) e.fillRect(p + 4, f + 5 + t * 3.5, 6, 1.5);
1148
1148
  p += u;
1149
1149
  }
1150
- e.textBaseline = "middle", e.textAlign = "center", s.forEach((t, r) => {
1150
+ e.textBaseline = "middle", e.textAlign = "center", c.forEach((t, r) => {
1151
1151
  let a = l[r] ?? 0, o = t.fill;
1152
1152
  t.cancel && (gi(p, f, a, 18, () => q("orderCancel", {
1153
1153
  id: n.id,
1154
1154
  line: n
1155
- })) && (o = i), e.fillStyle = i, e.fillRect(p, f + 3, 1, 12)), o !== c && (e.fillStyle = o, e.fillRect(p, f, a, 18)), e.fillStyle = t.cancel && o !== c ? yt(i) : t.color, t.cancel && (e.font = Q(R.fontSize + 3, 500)), e.fillText(t.text, p + a / 2, f + (t.cancel ? 9 : 9.5)), e.font = Q(R.fontSize, 600), p += a;
1155
+ })) && (o = i), e.fillStyle = i, e.fillRect(p, f + 3, 1, 12)), o !== s && (e.fillStyle = o, e.fillRect(p, f, a, 18)), e.fillStyle = t.cancel && o !== s ? yt(i) : t.color, t.cancel && (e.font = Q(R.fontSize + 3, 500)), e.fillText(t.text, p + a / 2, f + (t.cancel ? 9 : 9.5)), e.font = Q(R.fontSize, 600), p += a;
1156
1156
  });
1157
1157
  }
1158
- let S = k.lastPriceLine !== !1 && i > 0, ee = i > 0 && M.close[i - 1] >= M.open[i - 1], ne = Zn() === "line" || Zn() === "area" ? X(pt) : ee ? l : u;
1158
+ let S = k.lastPriceLine !== !1 && i > 0, ee = i > 0 && M.close[i - 1] >= M.open[i - 1], ne = Zn() === "line" || Zn() === "area" ? X(pt) : ee ? c : l;
1159
1159
  if (S) {
1160
1160
  let t = Math.round(w(r.scale, f)) + .5;
1161
1161
  e.save(), e.strokeStyle = ne, e.setLineDash([1, 2]), e.beginPath(), e.moveTo(0, t), e.lineTo(F, t), e.stroke(), e.restore();
@@ -1241,7 +1241,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
1241
1241
  })), e.top, Math.min(e.top + e.height, I), 1);
1242
1242
  t.forEach((e, t) => e.top = n[t] ?? null);
1243
1243
  }
1244
- e.font = Q(R.fontSize), e.textAlign = "left", e.textBaseline = "middle", e.fillStyle = s;
1244
+ e.font = Q(R.fontSize), e.textAlign = "left", e.textBaseline = "middle", e.fillStyle = o;
1245
1245
  for (let t of L) {
1246
1246
  let n = ie.filter((e) => e.pane === t && e.top != null);
1247
1247
  for (let r of t.ticks) {
@@ -1250,37 +1250,37 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
1250
1250
  }
1251
1251
  }
1252
1252
  e.textAlign = "center";
1253
- for (let t of n) e.font = Q(R.fontSize, t.bold ? 600 : 400), e.fillStyle = t.bold ? a : s, e.fillText(t.text, t.x, I + ot / 2);
1253
+ for (let t of n) e.font = Q(R.fontSize, t.bold ? 600 : 400), e.fillStyle = t.bold ? a : o, e.fillText(t.text, t.x, I + ot / 2);
1254
1254
  for (let t of [...ie].sort((e, t) => e.priority - t.priority)) t.top != null && ri(e, t.y, t.text, t.fill, yt(t.fill), t.second, t.top);
1255
1255
  if (Wn) {
1256
1256
  let t = B && B.x <= F ? B.x : NaN;
1257
- D(t) && (e.fillStyle = o(R.background, .62), e.fillRect(t, 0, F - t, I), e.strokeStyle = X(pt), e.lineWidth = 1.5, e.beginPath(), e.moveTo(Math.round(t) + .5, 0), e.lineTo(Math.round(t) + .5, I), e.stroke());
1257
+ D(t) && (e.fillStyle = u(R.background, .62), e.fillRect(t, 0, F - t, I), e.strokeStyle = X(pt), e.lineWidth = 1.5, e.beginPath(), e.moveTo(Math.round(t) + .5, 0), e.lineTo(Math.round(t) + .5, I), e.stroke());
1258
1258
  }
1259
- v && hi(e, v, F / 2, m, X(pt)), _ && (e.save(), e.strokeStyle = _.color, e.lineWidth = 1.5, e.setLineDash(_.type === "stop" ? [2, 3] : [6, 4]), e.beginPath(), e.moveTo(0, _.y), e.lineTo(F, _.y), e.stroke(), e.restore(), hi(e, _.text, _.box.left, _.box.top, _.color, "left")), y && hi(e, d.orderHint, 8, m, o(R.text, .86), "left");
1259
+ v && hi(e, v, F / 2, m, X(pt)), _ && (e.save(), e.strokeStyle = _.color, e.lineWidth = 1.5, e.setLineDash(_.type === "stop" ? [2, 3] : [6, 4]), e.beginPath(), e.moveTo(0, _.y), e.lineTo(F, _.y), e.stroke(), e.restore(), hi(e, _.text, _.box.left, _.box.top, _.color, "left")), y && hi(e, d.orderHint, 8, m, u(R.text, .86), "left");
1260
1260
  let C = si();
1261
1261
  if (C && t && !Wn) {
1262
1262
  let t = Math.round(cr(C.index)) + .5;
1263
- e.save(), e.strokeStyle = o(R.textMuted, .75), e.lineWidth = 1, e.setLineDash([4, 3]), e.beginPath(), t >= 0 && t <= F && (e.moveTo(t, 0), e.lineTo(t, I));
1263
+ e.save(), e.strokeStyle = u(R.textMuted, .75), e.lineWidth = 1, e.setLineDash([4, 3]), e.beginPath(), t >= 0 && t <= F && (e.moveTo(t, 0), e.lineTo(t, I));
1264
1264
  let n = Math.round(C.y) + .5;
1265
1265
  D(n) && n >= C.pane.top && n <= C.pane.top + C.pane.height && (e.moveTo(0, n), e.lineTo(F, n)), e.stroke(), e.restore();
1266
- let a = o(R.text);
1266
+ let a = u(R.text);
1267
1267
  if (D(C.y) && C.y >= C.pane.top && C.y <= C.pane.top + C.pane.height) {
1268
1268
  let t = Re(C.pane.scale, C.y), n = C.pane.id === T ? ii(Fe(C.pane.scale, t)) : Gr(C.pane, t);
1269
- ri(e, C.y, n, a, c);
1269
+ ri(e, C.y, n, a, s);
1270
1270
  }
1271
1271
  if (t >= 0 && t <= F && i) {
1272
1272
  let n = se(gr(ur(C.index)), or(), J);
1273
1273
  e.font = Q(R.fontSize, 500);
1274
1274
  let r = e.measureText(n).width + 16, i = E(t - r / 2, 0, Xt - r);
1275
- Zr(e, i, I + 3, r, 21, 3), e.fillStyle = a, e.fill(), e.fillStyle = c, e.textAlign = "center", e.textBaseline = "middle", e.fillText(n, i + r / 2, I + 14);
1275
+ Zr(e, i, I + 3, r, 21, 3), e.fillStyle = a, e.fill(), e.fillStyle = s, e.textAlign = "center", e.textBaseline = "middle", e.fillText(n, i + r / 2, I + 14);
1276
1276
  }
1277
1277
  if (k.orderEntry && B && C.pane.id === T && D(C.y) && wn === "cursor" && !U && i) {
1278
- let t = F - 18 - 4, n = E(Math.round(C.y - 9), r.top + 1, r.top + r.height - 18 - 1), i = fi(C.price), o = fi(f), s = i < o ? "buy" : "sell", d = pn ? s === "buy" ? "sell" : "buy" : s, p = xt(d, i, o), m = gi(t, n, 18, 18, () => q("orderCreate", {
1278
+ let t = F - 18 - 4, n = E(Math.round(C.y - 9), r.top + 1, r.top + r.height - 18 - 1), i = fi(C.price), o = fi(f), u = i < o ? "buy" : "sell", d = pn ? u === "buy" ? "sell" : "buy" : u, p = xt(d, i, o), m = gi(t, n, 18, 18, () => q("orderCreate", {
1279
1279
  price: i,
1280
1280
  side: d,
1281
1281
  orderType: p
1282
1282
  }));
1283
- Zr(e, t, n, 18, 18, 4), e.fillStyle = m ? X(pt) : a, e.fill(), e.strokeStyle = m ? yt(X(pt)) : c, e.lineWidth = 1.5, e.beginPath(), e.moveTo(t + 5, n + 9), e.lineTo(t + 18 - 5, n + 9), e.moveTo(t + 9, n + 5), e.lineTo(t + 9, n + 18 - 5), e.stroke(), m && hi(e, mi(d, p, i), t - 6, n - 2, d === "buy" ? l : u, "right");
1283
+ Zr(e, t, n, 18, 18, 4), e.fillStyle = m ? X(pt) : a, e.fill(), e.strokeStyle = m ? yt(X(pt)) : s, e.lineWidth = 1.5, e.beginPath(), e.moveTo(t + 5, n + 9), e.lineTo(t + 18 - 5, n + 9), e.moveTo(t + 9, n + 5), e.lineTo(t + 9, n + 18 - 5), e.stroke(), m && hi(e, mi(d, p, i), t - 6, n - 2, d === "buy" ? c : l, "right");
1284
1284
  }
1285
1285
  }
1286
1286
  }, yi = "", bi = [], xi = /* @__PURE__ */ new Map(), Si = /* @__PURE__ */ new Map(), Ci = (e) => {
@@ -2111,7 +2111,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
2111
2111
  close: Z(t.close[e])
2112
2112
  });
2113
2113
  }, Aa = (...e) => {
2114
- let t = ["zh", "ja"].includes(s(J));
2114
+ let t = ["zh", "ja"].includes(n(J));
2115
2115
  Mt.textContent = e.filter(Boolean).map((e) => e.replace(/[.。]$/, "")).join(t ? "。" : ". ");
2116
2116
  }, ja = () => (k.priceLines ?? []).filter((e) => e.draggable || e.cancellable), Ma = (e) => {
2117
2117
  let t = vt[e.kind ?? "line"];
@@ -2265,7 +2265,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
2265
2265
  try {
2266
2266
  e = A.matches(":focus-visible");
2267
2267
  } catch {}
2268
- e && (A.style.boxShadow = `inset 0 0 0 2px ${o(R.primary, .6)}`);
2268
+ e && (A.style.boxShadow = `inset 0 0 0 2px ${u(R.primary, .6)}`);
2269
2269
  }), A.addEventListener("blur", () => {
2270
2270
  A.style.boxShadow = "", H && (Na(!0), $()), V !== null && (V = null, $());
2271
2271
  }), jt.addEventListener("pointerdown", (e) => e.stopPropagation()), jt.addEventListener("click", () => Ja.scrollToRealtime(!0));
@@ -2291,7 +2291,7 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
2291
2291
  t.width = Math.max(1, Math.round(Xt * e)), t.height = Math.max(1, Math.round(Zt * e));
2292
2292
  let n = t.getContext("2d");
2293
2293
  if (!n) return null;
2294
- n.fillStyle = o(R.background), n.fillRect(0, 0, t.width, t.height);
2294
+ n.fillStyle = u(R.background), n.fillRect(0, 0, t.width, t.height);
2295
2295
  try {
2296
2296
  n.drawImage(Ot, 0, 0), z && n.drawImage(z.canvas, 0, 0, Math.round(F * e), Math.round(I * e)), n.drawImage(kt, 0, 0);
2297
2297
  } catch {}
@@ -2300,12 +2300,12 @@ var ot = 28, st = 60, ct = 60, lt = 48, T = "price", ut = "var(--success-color,
2300
2300
  return At.querySelectorAll("span, button").forEach((e) => {
2301
2301
  let t = e.textContent ?? "";
2302
2302
  if (e.children.length || !t.trim() || !i) return;
2303
- let a = e.getBoundingClientRect(), s = i.getComputedStyle(e);
2304
- n.font = `${s.fontWeight} ${s.fontSize} ${s.fontFamily}`, n.fillStyle = s.color || o(R.text), n.textAlign = "left", n.textBaseline = "middle", n.fillText(t, a.left - r.left, a.top - r.top + a.height / 2);
2303
+ let a = e.getBoundingClientRect(), o = i.getComputedStyle(e);
2304
+ n.font = `${o.fontWeight} ${o.fontSize} ${o.fontFamily}`, n.fillStyle = o.color || u(R.text), n.textAlign = "left", n.textBaseline = "middle", n.fillText(t, a.left - r.left, a.top - r.top + a.height / 2);
2305
2305
  }), t;
2306
2306
  }, Ha = !1, Ua = () => {
2307
2307
  let e = O.fullscreenElement === A;
2308
- e !== Ha && (Ha = e, A.style.background = e ? o(R.background) : "", q("fullscreenChange", e), $());
2308
+ e !== Ha && (Ha = e, A.style.background = e ? u(R.background) : "", q("fullscreenChange", e), $());
2309
2309
  };
2310
2310
  O.addEventListener("fullscreenchange", Ua);
2311
2311
  let Wa = async (t = /* @__PURE__ */ new Set()) => {