minerva-design 1.6.0 → 1.7.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 (120) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/charts/engine/data.cjs +1 -1
  3. package/dist/charts/engine/data.cjs.map +1 -1
  4. package/dist/charts/engine/data.d.cts +2 -0
  5. package/dist/charts/engine/data.d.ts +2 -0
  6. package/dist/charts/engine/data.js +6 -4
  7. package/dist/charts/engine/data.js.map +1 -1
  8. package/dist/charts/engine/defaults.cjs +1 -1
  9. package/dist/charts/engine/defaults.cjs.map +1 -1
  10. package/dist/charts/engine/defaults.js +22 -18
  11. package/dist/charts/engine/defaults.js.map +1 -1
  12. package/dist/charts/engine/graph/chart.cjs +1 -1
  13. package/dist/charts/engine/graph/chart.cjs.map +1 -1
  14. package/dist/charts/engine/graph/chart.js +532 -493
  15. package/dist/charts/engine/graph/chart.js.map +1 -1
  16. package/dist/charts/engine/graph/geometry.cjs +1 -1
  17. package/dist/charts/engine/graph/geometry.cjs.map +1 -1
  18. package/dist/charts/engine/graph/geometry.d.cts +12 -2
  19. package/dist/charts/engine/graph/geometry.d.ts +12 -2
  20. package/dist/charts/engine/graph/geometry.js +35 -31
  21. package/dist/charts/engine/graph/geometry.js.map +1 -1
  22. package/dist/charts/engine/model.cjs +1 -1
  23. package/dist/charts/engine/model.cjs.map +1 -1
  24. package/dist/charts/engine/model.js +95 -74
  25. package/dist/charts/engine/model.js.map +1 -1
  26. package/dist/charts/engine/orderbook/field.cjs +1 -1
  27. package/dist/charts/engine/orderbook/field.cjs.map +1 -1
  28. package/dist/charts/engine/orderbook/field.d.cts +15 -2
  29. package/dist/charts/engine/orderbook/field.d.ts +15 -2
  30. package/dist/charts/engine/orderbook/field.js +21 -9
  31. package/dist/charts/engine/orderbook/field.js.map +1 -1
  32. package/dist/charts/engine/orderbook/heatmap.cjs +1 -1
  33. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -1
  34. package/dist/charts/engine/orderbook/heatmap.d.cts +29 -0
  35. package/dist/charts/engine/orderbook/heatmap.d.ts +29 -0
  36. package/dist/charts/engine/orderbook/heatmap.js +576 -453
  37. package/dist/charts/engine/orderbook/heatmap.js.map +1 -1
  38. package/dist/charts/engine/orderbook/types.d.cts +36 -11
  39. package/dist/charts/engine/orderbook/types.d.ts +36 -11
  40. package/dist/charts/engine/presets.cjs +1 -1
  41. package/dist/charts/engine/presets.cjs.map +1 -1
  42. package/dist/charts/engine/presets.d.cts +16 -3
  43. package/dist/charts/engine/presets.d.ts +16 -3
  44. package/dist/charts/engine/presets.js +42 -32
  45. package/dist/charts/engine/presets.js.map +1 -1
  46. package/dist/charts/engine/scene.cjs +1 -1
  47. package/dist/charts/engine/scene.cjs.map +1 -1
  48. package/dist/charts/engine/scene.d.cts +4 -2
  49. package/dist/charts/engine/scene.d.ts +4 -2
  50. package/dist/charts/engine/scene.js +185 -107
  51. package/dist/charts/engine/scene.js.map +1 -1
  52. package/dist/charts/engine/three-d/oit.cjs +119 -34
  53. package/dist/charts/engine/three-d/oit.cjs.map +1 -1
  54. package/dist/charts/engine/three-d/oit.d.cts +65 -10
  55. package/dist/charts/engine/three-d/oit.d.ts +65 -10
  56. package/dist/charts/engine/three-d/oit.js +119 -34
  57. package/dist/charts/engine/three-d/oit.js.map +1 -1
  58. package/dist/charts/engine/three-d/render-types.cjs.map +1 -1
  59. package/dist/charts/engine/three-d/render-types.d.cts +19 -0
  60. package/dist/charts/engine/three-d/render-types.d.ts +19 -0
  61. package/dist/charts/engine/three-d/render-types.js.map +1 -1
  62. package/dist/charts/engine/three-d/shaders.cjs +14 -6
  63. package/dist/charts/engine/three-d/shaders.cjs.map +1 -1
  64. package/dist/charts/engine/three-d/shaders.d.cts +6 -1
  65. package/dist/charts/engine/three-d/shaders.d.ts +6 -1
  66. package/dist/charts/engine/three-d/shaders.js +40 -26
  67. package/dist/charts/engine/three-d/shaders.js.map +1 -1
  68. package/dist/charts/engine/three-d/webgl.cjs +1 -1
  69. package/dist/charts/engine/three-d/webgl.cjs.map +1 -1
  70. package/dist/charts/engine/three-d/webgl.js +167 -125
  71. package/dist/charts/engine/three-d/webgl.js.map +1 -1
  72. package/dist/charts/engine/three-d/webgpu.cjs +1 -1
  73. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -1
  74. package/dist/charts/engine/three-d/webgpu.js +169 -140
  75. package/dist/charts/engine/three-d/webgpu.js.map +1 -1
  76. package/dist/charts/engine/trading/chart.cjs +1 -1
  77. package/dist/charts/engine/trading/chart.cjs.map +1 -1
  78. package/dist/charts/engine/trading/chart.js +1149 -1023
  79. package/dist/charts/engine/trading/chart.js.map +1 -1
  80. package/dist/charts/engine/trading/labels.cjs +1 -1
  81. package/dist/charts/engine/trading/labels.cjs.map +1 -1
  82. package/dist/charts/engine/trading/labels.js +12 -0
  83. package/dist/charts/engine/trading/labels.js.map +1 -1
  84. package/dist/charts/engine/trading/layout.cjs +2 -0
  85. package/dist/charts/engine/trading/layout.cjs.map +1 -0
  86. package/dist/charts/engine/trading/layout.d.cts +37 -0
  87. package/dist/charts/engine/trading/layout.d.ts +37 -0
  88. package/dist/charts/engine/trading/layout.js +63 -0
  89. package/dist/charts/engine/trading/layout.js.map +1 -0
  90. package/dist/charts/engine/trading/types.d.cts +24 -7
  91. package/dist/charts/engine/trading/types.d.ts +24 -7
  92. package/dist/charts/engine/types.d.cts +21 -8
  93. package/dist/charts/engine/types.d.ts +21 -8
  94. package/dist/core/contracts.cjs +1 -1
  95. package/dist/core/contracts.cjs.map +1 -1
  96. package/dist/core/contracts.js +1 -1
  97. package/dist/core/contracts.js.map +1 -1
  98. package/dist/native/charts/src/engine/data.cjs +1 -1
  99. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  100. package/dist/native/charts/src/engine/data.js +6 -4
  101. package/dist/native/charts/src/engine/data.js.map +1 -1
  102. package/dist/native/charts/src/engine/model.cjs +1 -1
  103. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  104. package/dist/native/charts/src/engine/model.js +104 -83
  105. package/dist/native/charts/src/engine/model.js.map +1 -1
  106. package/dist/native/charts/src/engine/presets.cjs +1 -1
  107. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  108. package/dist/native/charts/src/engine/presets.js +42 -32
  109. package/dist/native/charts/src/engine/presets.js.map +1 -1
  110. package/dist/native/charts/src/engine/scene.cjs +1 -1
  111. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  112. package/dist/native/charts/src/engine/scene.js +185 -107
  113. package/dist/native/charts/src/engine/scene.js.map +1 -1
  114. package/dist/taro/index.js +1263 -1152
  115. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +11 -0
  116. package/dist/vue/components/Chart/orderbook.d.ts +7 -0
  117. package/dist/vue/components/Chart/orderbook.js +2 -0
  118. package/dist/vue/components/Chart/orderbook.js.map +1 -1
  119. package/dist/weapp/charts/canvas.js +234 -58
  120. package/package.json +1 -1
@@ -10,7 +10,7 @@ var x = {
10
10
  right: 16,
11
11
  bottom: 4,
12
12
  left: 4
13
- }, S = (e, t) => t, C = (e, n, r, i) => {
13
+ }, S = (e, t) => t, ee = (e, n, r, i) => {
14
14
  let a = n.resolve ?? S, o = (e) => r && e !== void 0 ? r(e) : e, s = (e) => i && e !== void 0 ? i(e) : e;
15
15
  return (e ?? []).map((e) => {
16
16
  if (e.type === "rect") {
@@ -46,12 +46,12 @@ var x = {
46
46
  label: e.label
47
47
  };
48
48
  });
49
- }, w = (e) => {
49
+ }, C = (e) => {
50
50
  let { model: t, view: n, theme: r, width: i, height: a, measure: o } = e;
51
- if (t.horizontal) return E(e);
51
+ if (t.horizontal) return w(e);
52
52
  let l = t.y.tickCount ?? (t.y.type === "category" ? Math.max(1, Math.floor((a - 40) / (r.fontSize + 5))) : a >= 220 ? 5 : Math.max(2, Math.round((a - 48) / 52))), u = b(t.y, n.y, l), d = 0;
53
53
  if (t.y.visible) for (let e of u.labels) d = Math.max(d, o(e));
54
- let f = T(t, u, n.y, l), p = 0;
54
+ let f = te(t, u, n.y, l), p = 0;
55
55
  if (f && t.y2?.visible) for (let e of f.labels) p = Math.max(p, o(e));
56
56
  let m = 48;
57
57
  if (t.x.type === "category") {
@@ -83,7 +83,7 @@ var x = {
83
83
  yTicks: u,
84
84
  y2Ticks: f
85
85
  };
86
- }, T = (e, t, n, r) => {
86
+ }, te = (e, t, n, r) => {
87
87
  let i = e.y2, a = e.y2Map;
88
88
  if (!i || !a || !a.scale) return null;
89
89
  if (a.log) {
@@ -101,7 +101,7 @@ var x = {
101
101
  labels: o.map(l),
102
102
  formatValue: i.format ?? e.formatValue
103
103
  };
104
- }, E = (e) => {
104
+ }, w = (e) => {
105
105
  let { model: t, view: n, theme: r, width: i, height: a, measure: o } = e, l = Math.max(1, Math.floor((a - 40) / (r.fontSize + 5))), u = t.x.tickCount ?? (t.x.type === "category" ? l : a >= 220 ? 5 : Math.max(2, Math.round((a - 48) / 52))), d = b(t.x, n.x, u), f = 0;
106
106
  if (t.x.visible) {
107
107
  if (t.x.type === "category") {
@@ -134,7 +134,7 @@ var x = {
134
134
  yTicks: g,
135
135
  y2Ticks: null
136
136
  };
137
- }, D = (e, t, n, r) => {
137
+ }, ne = (e, t, n, r) => {
138
138
  let i = [], a = e.percent ? e.formatValue : r?.formatValue ?? e.formatValue;
139
139
  for (let r of e.series) {
140
140
  if (r.hidden || !r.showLabels) continue;
@@ -173,21 +173,21 @@ var x = {
173
173
  }
174
174
  }
175
175
  return i;
176
- }, O = (e) => e.type === "bar" || e.type === "boxplot" ? e.barOffset : 0, k = (e, t, n) => {
177
- let r = f(n, e.cols.x[t] + O(e), v(e, t));
176
+ }, T = (e) => e.type === "bar" || e.type === "boxplot" ? e.barOffset : 0, E = (e, t, n) => {
177
+ let r = f(n, e.cols.x[t] + T(e), v(e, t));
178
178
  return {
179
179
  px: r.x,
180
180
  py: r.y
181
181
  };
182
- }, A = (e, t, n, r, i, a, o) => {
182
+ }, D = (e, t, n, r, i, a, o) => {
183
183
  let s = e.yToPx(r), c = e.yToPx(i);
184
184
  return Math.abs(a - t) <= n && o >= Math.min(s, c) - 2 && o <= Math.max(s, c) + 2;
185
- }, j = (e, t, n, r, i) => {
186
- let s = k(e, t, i), c = a(i, n, r), l = o(i, n, r), u = i.xToPx(e.cols.x[t] + O(e)), d = !1;
187
- if (e.type === "bar" && e.barBase && e.barTop) d = A(i, u, e.barHalfWidth / Math.abs(i.xPerPx), e.barBase[t], e.barTop[t], c, l);
185
+ }, O = (e, t, n, r, i) => {
186
+ let s = E(e, t, i), c = a(i, n, r), l = o(i, n, r), u = i.xToPx(e.cols.x[t] + T(e)), d = !1;
187
+ if (e.type === "bar" && e.barBase && e.barTop) d = D(i, u, e.barHalfWidth / Math.abs(i.xPerPx), e.barBase[t], e.barTop[t], c, l);
188
188
  else if (e.type === "candlestick" || e.type === "boxplot") {
189
189
  let { high: n, low: r, y: a } = e.cols;
190
- d = A(i, u, Math.max(e.barHalfWidth / Math.abs(i.xPerPx), 3), n ? n[t] : a[t], r ? r[t] : a[t], c, l);
190
+ d = D(i, u, Math.max(e.barHalfWidth / Math.abs(i.xPerPx), 3), n ? n[t] : a[t], r ? r[t] : a[t], c, l);
191
191
  }
192
192
  return {
193
193
  series: e,
@@ -198,36 +198,36 @@ var x = {
198
198
  dist: d ? 0 : Math.hypot(s.px - n, s.py - r),
199
199
  inside: d
200
200
  };
201
- }, M = (e, t, n, r, i, s) => {
201
+ }, k = (e, t, n, r, i, s) => {
202
202
  let c = e.cols.outliers?.[t];
203
203
  if (!c) return;
204
- let l = i.xToPx(e.cols.x[t] + O(e)), u = a(i, n, r) - l, d = o(i, n, r), f = e.outlierSize / 2 + 4 + s, p, m = f;
204
+ let l = i.xToPx(e.cols.x[t] + T(e)), u = a(i, n, r) - l, d = o(i, n, r), f = e.outlierSize / 2 + 4 + s, p, m = f;
205
205
  return c.forEach((n, r) => {
206
206
  let a = Math.hypot(u, i.yToPx(n) - d);
207
207
  a <= m && (m = a, p = e.raw.outliers?.[t]?.[r] ?? n);
208
208
  }), p;
209
- }, N = (e, t) => e.cols.size && e.cols.size[t] > 0 ? e.cols.size[t] : e.pointSize, P = /* @__PURE__ */ new WeakMap(), F = (e) => {
209
+ }, A = (e, t) => e.cols.size && e.cols.size[t] > 0 ? e.cols.size[t] : e.pointSize, j = /* @__PURE__ */ new WeakMap(), M = (e) => {
210
210
  let t = e.cols.size;
211
211
  if (!t) return e.pointSize;
212
- let n = P.get(t);
212
+ let n = j.get(t);
213
213
  if (n === void 0) {
214
214
  n = e.pointSize;
215
215
  for (let e = 0; e < t.length; e++) t[e] > n && (n = t[e]);
216
- P.set(t, n);
216
+ j.set(t, n);
217
217
  }
218
218
  return n;
219
- }, I = (e, t, n, r, i) => {
220
- let a = Math.max(F(e) / 2 + 6, 10) + i, o = d(r, t, n), s = a * Math.abs(r.xPerPx), c = a * Math.abs(r.yPerPx), l = -1, u = Infinity, { x: p, y: m } = e.cols;
219
+ }, N = (e, t, n, r, i) => {
220
+ let a = Math.max(M(e) / 2 + 6, 10) + i, o = d(r, t, n), s = a * Math.abs(r.xPerPx), c = a * Math.abs(r.yPerPx), l = -1, u = Infinity, { x: p, y: m } = e.cols;
221
221
  return _(e).query(o.x - s, o.x + s, o.y - c, o.y + c, (a) => {
222
222
  let o = f(r, p[a], m[a]), s = Math.hypot(o.x - t, o.y - n);
223
- s <= Math.max(N(e, a) / 2 + 4, 8) + i && s <= u && (u = s, l = a);
223
+ s <= Math.max(A(e, a) / 2 + 4, 8) + i && s <= u && (u = s, l = a);
224
224
  }), l;
225
- }, L = (e, t, n) => {
225
+ }, re = (e, t, n) => {
226
226
  let { x: r, y: i } = e.cellHalf, { x: a, y: o } = e.cols, s = -1;
227
227
  return _(e).query(t - r, t + r, n - i, n + i, (c) => {
228
228
  e.cellColors?.[c] && Math.abs(a[c] - t) <= r && Math.abs(o[c] - n) <= i && (s = c);
229
229
  }), s;
230
- }, R = (e, t) => {
230
+ }, ie = (e, t) => {
231
231
  let { x: n, y: r, count: a, sorted: o } = e.cols;
232
232
  if (o) return i(n, r, a, t);
233
233
  let s = -1, c = Infinity;
@@ -237,7 +237,7 @@ var x = {
237
237
  i < c && (c = i, s = e);
238
238
  }
239
239
  return s;
240
- }, z = (e, t) => {
240
+ }, P = (e, t) => {
241
241
  let i = e.pointColors?.[t], { open: a, high: o, low: s, value: c, y0: l, q1: u, q3: d, outliers: f, labels: p } = e.raw, m = p?.[t], h = i ? n(i) : e.colorCss, g = {};
242
242
  if (e.type === "candlestick") {
243
243
  let r = a ? a[t] : NaN;
@@ -263,11 +263,11 @@ var x = {
263
263
  ...m === void 0 ? {} : { label: m },
264
264
  ...g
265
265
  };
266
- }, B = (e, t) => {
266
+ }, F = (e, t) => {
267
267
  if (!e.length) return null;
268
268
  e.sort((e, t) => e.series.index - t.series.index);
269
269
  let n = e.map((e) => {
270
- let t = z(e.series, e.index);
270
+ let t = P(e.series, e.index);
271
271
  return e.outlier !== void 0 && (t.outlier = e.outlier), t;
272
272
  }), r = n[0].x;
273
273
  return {
@@ -275,51 +275,51 @@ var x = {
275
275
  x: r,
276
276
  xLabel: t?.formatValue(r) ?? String(r)
277
277
  };
278
- }, V = (e, t, n, r, i, a = 0) => {
278
+ }, ae = (e, t, n, r, i, a = 0) => {
279
279
  let { plot: o } = t, s = 6 + a;
280
280
  if (r < o.x - s || r > o.x + o.width + s || i < o.y - s || i > o.y + o.height + s) return null;
281
281
  let c = d(t, r, i), l = [], u = [];
282
282
  for (let n of e.series) if (!n.hidden && n.tooltip && n.cols.count !== 0) {
283
283
  if (n.type === "scatter") {
284
- let e = I(n, r, i, t, a);
285
- e >= 0 && l.push(j(n, e, r, i, t));
284
+ let e = N(n, r, i, t, a);
285
+ e >= 0 && l.push(O(n, e, r, i, t));
286
286
  } else if (n.type === "heatmap") {
287
- let e = L(n, c.x, c.y);
287
+ let e = re(n, c.x, c.y);
288
288
  if (e >= 0) {
289
- let a = j(n, e, r, i, t);
289
+ let a = O(n, e, r, i, t);
290
290
  a.inside = !0, a.dist = 0, l.push(a);
291
291
  }
292
292
  } else {
293
- let e = R(n, c.x);
293
+ let e = ie(n, c.x);
294
294
  if (e < 0) continue;
295
- let o = j(n, e, r, i, t);
296
- n.type === "boxplot" && (o.outlier = M(n, e, r, i, t, a), o.outlier !== void 0 && (o.inside = !0, o.dist = 0)), u.push(o);
295
+ let o = O(n, e, r, i, t);
296
+ n.type === "boxplot" && (o.outlier = k(n, e, r, i, t, a), o.outlier !== void 0 && (o.inside = !0, o.dist = 0)), u.push(o);
297
297
  }
298
298
  }
299
299
  if (e.tooltipMode === "item") {
300
300
  let e = [...l, ...u].filter((e) => e.inside || e.series.type === "scatter" || (e.series.type === "line" || e.series.type === "area") && e.dist <= 8 + a);
301
- return e.length ? B([e.reduce((e, t) => t.dist < e.dist || t.dist === e.dist && t.series.index > e.series.index ? t : e)], n) : null;
301
+ return e.length ? F([e.reduce((e, t) => t.dist < e.dist || t.dist === e.dist && t.series.index > e.series.index ? t : e)], n) : null;
302
302
  }
303
303
  if (e.tooltipMode === "nearest") {
304
304
  let e = [...l, ...u].filter((e) => e.inside || e.series.type === "scatter" || e.dist <= 32 + a);
305
- return e.length ? B([e.reduce((e, t) => t.dist <= e.dist ? t : e)], n) : null;
305
+ return e.length ? F([e.reduce((e, t) => t.dist <= e.dist ? t : e)], n) : null;
306
306
  }
307
- if (!u.length) return l.length ? B([l.reduce((e, t) => t.dist <= e.dist ? t : e)], n) : null;
308
- let f = Math.min(...u.map((e) => e.dx)), p = e.x.type === "category" ? .5 / Math.abs(t.xPerPx) : 0, m = u.filter((e) => e.dx <= f + Math.max(1, p)), h = m.reduce((e, t) => t.dx < e.dx ? t : e), g = B([
307
+ if (!u.length) return l.length ? F([l.reduce((e, t) => t.dist <= e.dist ? t : e)], n) : null;
308
+ let f = Math.min(...u.map((e) => e.dx)), p = e.x.type === "category" ? .5 / Math.abs(t.xPerPx) : 0, m = u.filter((e) => e.dx <= f + Math.max(1, p)), h = m.reduce((e, t) => t.dx < e.dx ? t : e), g = F([
309
309
  h,
310
310
  ...m.filter((e) => e !== h),
311
311
  ...l
312
312
  ], n);
313
- return g && (g.x = z(h.series, h.index).x, g.xLabel = n?.formatValue(g.x) ?? String(g.x)), g;
314
- }, H = (e, t) => e === t || !!e && !!t && e.items.length === t.items.length && e.items.every((e, n) => e.index === t.items[n].index && e.seriesIndex === t.items[n].seriesIndex), U = {
313
+ return g && (g.x = P(h.series, h.index).x, g.xLabel = n?.formatValue(g.x) ?? String(g.x)), g;
314
+ }, I = (e, t) => e === t || !!e && !!t && e.items.length === t.items.length && e.items.every((e, n) => e.index === t.items[n].index && e.seriesIndex === t.items[n].seriesIndex), L = {
315
315
  style: "percent",
316
316
  minimumFractionDigits: 2,
317
317
  maximumFractionDigits: 2
318
- }, W = (e, t) => e.raw.details?.[t]?.map((e) => ({
318
+ }, R = (e, t) => e.raw.details?.[t]?.map((e) => ({
319
319
  color: null,
320
320
  name: e.name,
321
321
  value: e.value
322
- })) ?? [], G = (e, t, n, r = null) => {
322
+ })) ?? [], z = (e, t, n, r = null) => {
323
323
  let i = n?.formatValue ?? String, a = (t) => t.format ?? (t.yAxis === "right" ? r?.formatValue ?? e.y2?.format ?? e.formatValue : i), o = e.labels, s = t.items[0], c = s ? e.series[s.seriesIndex] : null;
324
324
  if (t.items.length === 1 && s && c?.type === "bar" && s.y0 !== void 0 && e.y.type === "time") {
325
325
  let n = a(c);
@@ -343,7 +343,7 @@ var x = {
343
343
  name: o.duration,
344
344
  value: m(s.y - s.y0, e.locale)
345
345
  },
346
- ...W(c, s.index)
346
+ ...R(c, s.index)
347
347
  ]
348
348
  };
349
349
  }
@@ -356,7 +356,7 @@ var x = {
356
356
  color: s.color,
357
357
  name: s.label ?? c.name,
358
358
  value: s.value === void 0 ? "–" : (c.format ?? e.formatValue)(s.value)
359
- }, ...W(c, s.index)]
359
+ }, ...R(c, s.index)]
360
360
  };
361
361
  }
362
362
  if (t.items.every((t) => e.series[t.seriesIndex].type === "scatter") && t.items.length === 1) {
@@ -375,7 +375,7 @@ var x = {
375
375
  value: a(s)(n.y)
376
376
  },
377
377
  ...c,
378
- ...W(s, n.index)
378
+ ...R(s, n.index)
379
379
  ]
380
380
  };
381
381
  let l = s.yAxis === "right" ? r?.formatValue ?? e.y2?.format ?? e.formatValue : i, u = [
@@ -390,7 +390,7 @@ var x = {
390
390
  value: (n.value === void 0 ? a(s) : l)(n.y)
391
391
  },
392
392
  ...c,
393
- ...W(s, n.index)
393
+ ...R(s, n.index)
394
394
  ];
395
395
  return {
396
396
  title: n.label ?? n.seriesName,
@@ -407,7 +407,7 @@ var x = {
407
407
  l.push({
408
408
  color: n.color,
409
409
  name: t.name,
410
- value: Number.isFinite(i) ? `${i >= 0 ? "+" : ""}${p(e.locale, U).format(i / 100)}` : ""
410
+ value: Number.isFinite(i) ? `${i >= 0 ? "+" : ""}${p(e.locale, L).format(i / 100)}` : ""
411
411
  });
412
412
  let a = [
413
413
  [o.open, n.open],
@@ -468,16 +468,16 @@ var x = {
468
468
  color: n.color,
469
469
  name: n.label && d === null ? `${n.seriesName} · ${n.label}` : n.seriesName,
470
470
  value: i
471
- }), l.push(...W(t, n.index));
471
+ }), l.push(...R(t, n.index));
472
472
  }
473
473
  if (e.percent) {
474
474
  let n = /* @__PURE__ */ new Map();
475
475
  for (let r of t.items) {
476
- let t = K(e, r.seriesIndex);
476
+ let t = B(e, r.seriesIndex);
477
477
  t !== null && Number.isFinite(r.y) && n.set(t, (n.get(t) ?? 0) + Math.abs(r.y));
478
478
  }
479
479
  t.items.forEach((t, r) => {
480
- let i = K(e, t.seriesIndex), a = i === null ? void 0 : n.get(i), o = l[u[r]];
480
+ let i = B(e, t.seriesIndex), a = i === null ? void 0 : n.get(i), o = l[u[r]];
481
481
  a && o && Number.isFinite(t.y) && (o.value = `${(e.series[t.seriesIndex].format ?? e.formatValue)(t.y)} · ${h(Math.abs(t.y) / a * 100, e.locale, !0)}`);
482
482
  });
483
483
  }
@@ -486,12 +486,12 @@ var x = {
486
486
  titleColor: null,
487
487
  rows: l
488
488
  };
489
- }, K = (e, t) => e.series[t].hidden ? null : e.stacks[t], q = (e, t, i) => {
489
+ }, B = (e, t) => e.series[t].hidden ? null : e.stacks[t], V = (e, t, i) => {
490
490
  let a = [], { plot: o } = t, s = Infinity, c = -Infinity;
491
491
  for (let d of i.items) {
492
492
  let i = e.series[d.seriesIndex], p = i.cols.x[d.index] ?? d.x;
493
493
  if (i.type === "boxplot" && d.outlier !== void 0) {
494
- let e = f(t, p + O(i), Y(i, d));
494
+ let e = f(t, p + T(i), U(i, d));
495
495
  a.push({
496
496
  kind: "dot",
497
497
  x: e.x,
@@ -503,7 +503,7 @@ var x = {
503
503
  continue;
504
504
  }
505
505
  if (i.type === "bar" || i.type === "candlestick" || i.type === "boxplot") {
506
- let e = t.xToPx(p + O(i)), n = Math.max(i.barHalfWidth / Math.abs(t.xPerPx), 1);
506
+ let e = t.xToPx(p + T(i)), n = Math.max(i.barHalfWidth / Math.abs(t.xPerPx), 1);
507
507
  s = Math.min(s, e - n), c = Math.max(c, e + n);
508
508
  continue;
509
509
  }
@@ -530,14 +530,14 @@ var x = {
530
530
  width: Math.max(1, f.width - m.inset * 2),
531
531
  height: Math.max(1, f.height - m.inset * 2),
532
532
  color: d.color,
533
- ring: J(b),
533
+ ring: H(b),
534
534
  radius: m.radius
535
535
  });
536
536
  continue;
537
537
  }
538
- let { px: m, py: h } = k(i, d.index, t);
538
+ let { px: m, py: h } = E(i, d.index, t);
539
539
  if (m < o.x - 1 || m > o.x + o.width + 1 || h < o.y - 1 || h > o.y + o.height + 1) continue;
540
- let g = i.type === "scatter" ? N(i, d.index) + 4 : Math.max(9, i.lineWidth * 2 + 5), _ = i.pointColors?.[d.index] ?? i.color;
540
+ let g = i.type === "scatter" ? A(i, d.index) + 4 : Math.max(9, i.lineWidth * 2 + 5), _ = i.pointColors?.[d.index] ?? i.color;
541
541
  a.push({
542
542
  kind: "dot",
543
543
  x: m,
@@ -565,10 +565,10 @@ var x = {
565
565
  });
566
566
  }
567
567
  return a;
568
- }, J = (t) => e(t) > .45 ? "rgba(15, 23, 42, 0.78)" : "rgba(255, 255, 255, 0.9)", Y = (e, t) => {
568
+ }, H = (t) => e(t) > .45 ? "rgba(15, 23, 42, 0.78)" : "rgba(255, 255, 255, 0.9)", U = (e, t) => {
569
569
  let n = e.raw.outliers?.[t.index], r = n ? n.indexOf(t.outlier ?? NaN) : -1;
570
570
  return (r >= 0 ? e.cols.outliers?.[t.index]?.[r] : void 0) ?? t.outlier ?? 0;
571
- }, X = (e, t) => {
571
+ }, W = (e, t) => {
572
572
  let r = [];
573
573
  for (let i of e.series) {
574
574
  let e = i.connector;
@@ -591,81 +591,159 @@ var x = {
591
591
  }
592
592
  }
593
593
  return r;
594
- }, ee = (e, t) => {
594
+ }, G = (e, t) => {
595
595
  let r = t.resolve ?? S, i = n(t.textMuted, .85);
596
596
  return (e ?? []).map((e) => ({
597
597
  from: e.from,
598
598
  to: e.to,
599
599
  color: e.color ? n(r(e.color, t.textMuted)) : i
600
600
  }));
601
- }, Z = {
601
+ }, K = {
602
602
  length: 6,
603
603
  half: 3.5
604
- }, te = (e, t) => {
605
- let n = /* @__PURE__ */ new Map();
606
- for (let r of e.series) {
607
- if (r.hidden || !r.tooltip || r.type !== "bar" && r.type !== "scatter") continue;
608
- let { x: e, y: i, count: a } = r.cols, o = r.type === "bar" && r.barBase && r.barTop, s = o ? r.barHalfWidth / Math.abs(t.xPerPx) : N(r, 0) / 2;
609
- for (let t = 0; t < a; t++) {
610
- let a = Math.round(e[t]);
611
- if (n.has(a)) continue;
612
- let c = o ? r.barBase[t] : i[t], l = o ? r.barTop[t] : i[t];
613
- Number.isFinite(c) && Number.isFinite(l) && n.set(a, {
614
- at: e[t] + O(r),
615
- start: Math.min(c, l),
616
- end: Math.max(c, l),
617
- half: s,
618
- dot: !o
619
- });
604
+ }, q = (e, t, n, r) => {
605
+ let i = {
606
+ boxes: [],
607
+ byId: /* @__PURE__ */ new Map(),
608
+ byRow: /* @__PURE__ */ new Map(),
609
+ ids: /* @__PURE__ */ new Set()
610
+ }, a = e.x.type === "category" ? e.x.categories : null;
611
+ for (let o of e.series) {
612
+ if (o.type !== "bar" && o.type !== "scatter") continue;
613
+ let e = o.raw.ids;
614
+ if (e) for (let t of e) t !== void 0 && i.ids.add(t);
615
+ if (o.hidden || !o.tooltip) continue;
616
+ let { x: s, y: c, count: l } = o.cols, u = o.type === "bar" && o.barBase && o.barTop, d = T(o);
617
+ for (let f = 0; f < l; f++) {
618
+ let l = u ? o.barBase[f] : c[f], p = u ? o.barTop[f] : c[f];
619
+ if (!Number.isFinite(s[f]) || !Number.isFinite(l) || !Number.isFinite(p)) continue;
620
+ let m = u ? o.barHalfWidth / Math.abs(t.xPerPx) : A(o, f) / 2, h = n(Math.min(l, p)), g = n(Math.max(l, p)), _ = u ? 0 : m, v = {
621
+ c: r(s[f] + d),
622
+ half: m,
623
+ start: h,
624
+ end: g,
625
+ lo: Math.min(h, g) - _,
626
+ hi: Math.max(h, g) + _,
627
+ dot: !u
628
+ };
629
+ i.boxes.push(v);
630
+ let y = e?.[f];
631
+ y !== void 0 && !i.byId.has(y) && i.byId.set(y, v);
632
+ let b = a ? a[Math.round(s[f])] : String(o.raw.x[f]);
633
+ b !== void 0 && !i.byRow.has(b) && i.byRow.set(b, v);
620
634
  }
621
635
  }
636
+ return i;
637
+ }, J = 8, Y = 4, X = (e) => {
638
+ let t = e.map((e) => [e.lo - Y, e.hi + Y]).sort((e, t) => e[0] - t[0]), n = [];
639
+ for (let e of t) {
640
+ let t = n[n.length - 1];
641
+ t && e[0] <= t[1] ? t[1] = Math.max(t[1], e[1]) : n.push(e);
642
+ }
622
643
  return n;
623
- }, ne = (e, t, n) => {
624
- if (!n.length || e.x.type !== "category") return [];
625
- let r = te(e, t), i = /* @__PURE__ */ new Map();
626
- e.x.categories.forEach((e, t) => {
627
- i.has(e) || i.set(e, t);
628
- });
629
- let a = t.horizontal, o = (e, t) => a ? {
644
+ }, oe = (e, t) => e.some(([e, n]) => t > e + 1e-6 && t < n - 1e-6), se = (e, t, n, r) => {
645
+ let i = [t];
646
+ for (let [t, n] of e) i.push(t, n);
647
+ let a = null;
648
+ for (let o of i) {
649
+ let i = r * (o - t);
650
+ i < 0 || r * (n - o) < 0 || oe(e, o) || (a === null || i < r * (a - t)) && (a = o);
651
+ }
652
+ return a;
653
+ }, ce = (e, t) => {
654
+ let n = e.find(([e, n]) => t > e + 1e-6 && t < n - 1e-6);
655
+ if (!n) return t;
656
+ let [r, i] = n;
657
+ return t - r <= i - t ? r : i;
658
+ }, Z = (e) => {
659
+ let t = [], n = (e, t) => Math.abs(e - t) < 1e-6;
660
+ for (let r of e) {
661
+ let e = t[t.length - 1];
662
+ if (e && n(e[0], r[0]) && n(e[1], r[1])) continue;
663
+ let i = t[t.length - 2];
664
+ i && e && (n(i[0], e[0]) && n(e[0], r[0]) || n(i[1], e[1]) && n(e[1], r[1])) && t.pop(), t.push(r);
665
+ }
666
+ return t;
667
+ }, le = (e, t, n, r, i, a) => {
668
+ let o = e.c, s = t.c, c = n + i * J, l = i * (r - c) >= 0, u = Math.min(o, s), d = Math.max(o, s), f = d - u < .5 ? [] : a.filter((n) => n !== e && n !== t && n.c + n.half > u && n.c - n.half < d);
669
+ if (l) {
670
+ let e = se(X(f), c, r, i);
671
+ if (e !== null) return Z([
672
+ [n, o],
673
+ [e, o],
674
+ [e, s],
675
+ [r, s]
676
+ ]);
677
+ }
678
+ let p = Math.sign(s - o) || 1, m = /* @__PURE__ */ new Map();
679
+ for (let e of f) {
680
+ if (Math.abs(e.c - o) < .5 || Math.abs(e.c - s) < .5) continue;
681
+ let t = Math.round(e.c * 2), n = m.get(t);
682
+ n ? (n.half = Math.max(n.half, e.half), n.of.push(e)) : m.set(t, {
683
+ c: e.c,
684
+ half: e.half,
685
+ of: [e]
686
+ });
687
+ }
688
+ let h = [
689
+ {
690
+ c: o,
691
+ half: e.half,
692
+ lanes: []
693
+ },
694
+ ...[...m.values()].sort((e, t) => p * (e.c - t.c)).map((e) => ({
695
+ c: e.c,
696
+ half: e.half,
697
+ lanes: X(e.of)
698
+ })),
699
+ {
700
+ c: s,
701
+ half: t.half,
702
+ lanes: []
703
+ }
704
+ ], g = r - i * J, _ = [[n, o], [c, o]], v = c;
705
+ for (let e = 0; e + 1 < h.length; e++) {
706
+ let t = h[e], n = h[e + 1], a = Math.abs(n.c - t.c) < .5 ? t.c + p * (Math.max(t.half, n.half) + Y) : (t.c + p * t.half + n.c - p * n.half) / 2, o = e + 2 === h.length ? l && i * (r - v) >= 0 ? v : g : ce(n.lanes, l ? v : g);
707
+ o !== v && (_.push([v, a], [o, a]), v = o);
708
+ }
709
+ return _.push([v, s], [r, s]), Z(_);
710
+ }, ue = (e, t, n) => {
711
+ if (!n.length) return [];
712
+ let r = t.horizontal, i = (e, t) => r ? {
630
713
  x: e,
631
714
  y: t
632
715
  } : {
633
716
  x: t,
634
717
  y: e
635
- }, s = (e) => {
718
+ }, a = (e) => {
636
719
  let n = f(t, 0, e);
637
- return a ? n.x : n.y;
638
- }, c = (e) => {
720
+ return r ? n.x : n.y;
721
+ }, o = (e) => {
639
722
  let n = f(t, e, 0);
640
- return a ? n.y : n.x;
641
- }, l = Math.sign(s(t.view.y[1]) - s(t.view.y[0])) || 1, u = Math.abs(c(1) - c(0)), { length: d, half: p } = Z, m = [];
723
+ return r ? n.y : n.x;
724
+ }, s = Math.sign(a(t.view.y[1]) - a(t.view.y[0])) || 1, c = q(e, t, a, o), l = (e) => c.byId.get(e) ?? (c.ids.has(e) ? void 0 : c.byRow.get(e)), { length: u, half: d } = K, p = [];
642
725
  for (let e of n) {
643
- let t = r.get(i.get(e.from) ?? NaN), n = r.get(i.get(e.to) ?? NaN);
726
+ let t = l(e.from), n = l(e.to);
644
727
  if (!t || !n || t === n) continue;
645
- let a = s(t.end) + (t.dot ? l * t.half : 0), f = c(t.at), h = s(n.start) - l * (n.dot ? n.half + 1 : 1), g = c(n.at), _ = h - l * d, v = [o(a, f)], y = a + l * 8;
646
- if (l * (_ - y) >= 0) v.push(o(y, f), o(y, g), o(_, g));
647
- else {
648
- let e = f + (Math.sign(g - f) || 1) * Math.max(t.half + 3, u / 2), n = _ - l * 8;
649
- v.push(o(y, f), o(y, e), o(n, e), o(n, g), o(_, g));
650
- }
651
- m.push({
652
- points: v,
728
+ let r = t.end + (t.dot ? s * t.half : 0), a = n.start - s * (n.dot ? n.half + 1 : 1), o = a - s * u, f = le(t, n, r, o, s, c.boxes);
729
+ p.push({
730
+ points: f.map(([e, t]) => i(e, t)),
653
731
  head: [
654
- o(h, g),
655
- o(_, g - p),
656
- o(_, g + p)
732
+ i(a, n.c),
733
+ i(o, n.c - d),
734
+ i(o, n.c + d)
657
735
  ],
658
736
  color: e.color,
659
737
  width: 1.25
660
738
  });
661
739
  }
662
- return m;
663
- }, re = 12, Q = (e) => {
740
+ return p;
741
+ }, de = 12, Q = (e) => {
664
742
  if (!e.series.length || e.series.some((e) => e.type !== "heatmap")) return null;
665
743
  let t = e.series.find((e) => !e.hidden && e.colorLut), i = t?.colorLut;
666
744
  if (!t || !i) return null;
667
745
  let a = [];
668
- for (let e = 0; e < re; e++) {
746
+ for (let e = 0; e < de; e++) {
669
747
  let t = i[Math.round(e / 11 * (i.length - 1))];
670
748
  a.push(n(r(t ?? 0)));
671
749
  }
@@ -684,18 +762,18 @@ var x = {
684
762
  stops: a,
685
763
  labels: l
686
764
  };
687
- }, ie = (e, t, n) => e === void 0 ? n > 1 || Q(t) !== null : !!e, ae = (e) => e === "scatter" ? "dot" : e === "line" ? "line" : "square", $ = (e, t, n) => n ?? (e.tooltipMode === "axis" && t.items.some((t) => {
765
+ }, fe = (e, t, n) => e === void 0 ? n > 1 || Q(t) !== null : !!e, pe = (e) => e === "scatter" ? "dot" : e === "line" ? "line" : "square", $ = (e, t, n) => n ?? (e.tooltipMode === "axis" && t.items.some((t) => {
688
766
  let n = e.series[t.seriesIndex].type;
689
767
  return n === "line" || n === "area";
690
768
  }) && !t.items.some((t) => {
691
769
  let n = e.series[t.seriesIndex].type;
692
770
  return n === "bar" || n === "candlestick" || n === "boxplot";
693
- })), oe = (e, t, n, r) => {
771
+ })), me = (e, t, n, r) => {
694
772
  if (!$(e, n, r)) return null;
695
773
  let i = n.items[0], a = t.xToPx(e.series[i.seriesIndex]?.cols.x[i.index] ?? y(e, i.x)), o = t.horizontal ? t.plot.y : t.plot.x, s = o + (t.horizontal ? t.plot.height : t.plot.width);
696
774
  return a >= o && a <= s ? a : null;
697
775
  };
698
776
  //#endregion
699
- export { Z as ARROW_HEAD, x as DEFAULT_PADDING, D as collectPointLabels, Q as colorLegend, X as connectorSegments, J as contrastRing, oe as crosshairAt, ne as dependencyArrows, N as dotSize, S as fallbackResolve, V as hitTest, z as hoverItemOf, q as hoverMarks, w as layoutChart, ae as legendShape, ie as legendShown, k as pointOf, C as resolveAnnotations, ee as resolveDependencies, H as sameHover, $ as showsCrosshair, G as tooltipContent };
777
+ export { K as ARROW_HEAD, x as DEFAULT_PADDING, ne as collectPointLabels, Q as colorLegend, W as connectorSegments, H as contrastRing, me as crosshairAt, ue as dependencyArrows, A as dotSize, S as fallbackResolve, ae as hitTest, P as hoverItemOf, V as hoverMarks, C as layoutChart, pe as legendShape, fe as legendShown, E as pointOf, ee as resolveAnnotations, G as resolveDependencies, I as sameHover, $ as showsCrosshair, z as tooltipContent };
700
778
 
701
779
  //# sourceMappingURL=scene.js.map