chartai 0.0.11 → 1.0.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 (78) hide show
  1. package/dist/chart-library.d.ts +33 -146
  2. package/dist/chart-library.d.ts.map +1 -1
  3. package/dist/chart-library.js +378 -321
  4. package/dist/chart-library.min.js +1 -1
  5. package/dist/charts/area.d.ts +6 -0
  6. package/dist/charts/area.d.ts.map +1 -0
  7. package/dist/charts/area.js +65 -0
  8. package/dist/charts/area.min.js +1 -0
  9. package/dist/charts/bar.d.ts +11 -0
  10. package/dist/charts/bar.d.ts.map +1 -0
  11. package/dist/charts/bar.js +65 -0
  12. package/dist/charts/bar.min.js +1 -0
  13. package/dist/charts/boids.js +167 -0
  14. package/dist/charts/boids.min.js +18 -0
  15. package/dist/charts/candlestick.d.ts +21 -0
  16. package/dist/charts/candlestick.d.ts.map +1 -0
  17. package/dist/charts/candlestick.js +132 -0
  18. package/dist/charts/candlestick.min.js +32 -0
  19. package/dist/charts/line.d.ts +12 -0
  20. package/dist/charts/line.d.ts.map +1 -0
  21. package/dist/charts/line.js +62 -0
  22. package/dist/charts/line.min.js +1 -0
  23. package/dist/charts/scatter.d.ts +11 -0
  24. package/dist/charts/scatter.d.ts.map +1 -0
  25. package/dist/charts/scatter.js +46 -0
  26. package/dist/charts/scatter.min.js +1 -0
  27. package/dist/chunk-0jepamv9.js +7 -0
  28. package/dist/chunk-1p45ex5n.min.js +2 -0
  29. package/dist/chunk-831dem4f.js +4 -0
  30. package/dist/chunk-93yrr7er.js +35 -0
  31. package/dist/chunk-94kc81rr.min.js +2 -0
  32. package/dist/chunk-a27be8p9.js +105 -0
  33. package/dist/chunk-bfyv7z27.min.js +2 -0
  34. package/dist/chunk-dmaxrg6s.min.js +2 -0
  35. package/dist/chunk-e7d3zgw5.min.js +2 -0
  36. package/dist/chunk-g6m56ptf.js +609 -0
  37. package/dist/chunk-m17t3vjq.js +9 -0
  38. package/dist/chunk-me3qaz3m.min.js +2 -0
  39. package/dist/chunk-qr6mweck.min.js +2 -0
  40. package/dist/chunk-yabjrff2.js +11 -0
  41. package/dist/gpu-worker.js +625 -686
  42. package/dist/gpu-worker.min.js +1 -1
  43. package/dist/msg.d.ts +33 -0
  44. package/dist/msg.d.ts.map +1 -0
  45. package/dist/plugins/coords.d.ts +18 -0
  46. package/dist/plugins/coords.d.ts.map +1 -0
  47. package/dist/plugins/hover.d.ts +15 -2
  48. package/dist/plugins/hover.d.ts.map +1 -1
  49. package/dist/plugins/hover.js +103 -16
  50. package/dist/plugins/hover.min.js +1 -1
  51. package/dist/plugins/labels-panel.d.ts +4 -0
  52. package/dist/plugins/labels-panel.d.ts.map +1 -0
  53. package/dist/plugins/labels-panel.js +122 -0
  54. package/dist/plugins/labels-panel.min.js +1 -0
  55. package/dist/plugins/labels.d.ts +17 -2
  56. package/dist/plugins/labels.d.ts.map +1 -1
  57. package/dist/plugins/labels.js +11 -99
  58. package/dist/plugins/labels.min.js +1 -1
  59. package/dist/plugins/legend.d.ts +16 -0
  60. package/dist/plugins/legend.d.ts.map +1 -0
  61. package/dist/plugins/legend.js +282 -0
  62. package/dist/plugins/legend.min.js +21 -0
  63. package/dist/plugins/shared.d.ts +7 -0
  64. package/dist/plugins/shared.d.ts.map +1 -0
  65. package/dist/plugins/zoom.d.ts +10 -2
  66. package/dist/plugins/zoom.d.ts.map +1 -1
  67. package/dist/plugins/zoom.js +227 -97
  68. package/dist/plugins/zoom.min.js +1 -1
  69. package/dist/types.d.ts +179 -0
  70. package/dist/types.d.ts.map +1 -0
  71. package/dist/types.js +0 -0
  72. package/dist/types.min.js +0 -0
  73. package/dist/worker-inline.d.ts +1 -1
  74. package/dist/worker-inline.d.ts.map +1 -1
  75. package/package.json +13 -12
  76. package/readme.md +51 -42
  77. package/dist/chunk-bgfkgcmg.js +0 -25
  78. package/dist/chunk-cj3zanvs.min.js +0 -2
@@ -1,157 +1,276 @@
1
+ import {
2
+ MARGIN
3
+ } from "../chunk-831dem4f.js";
1
4
  import {
2
5
  ChartManager
3
- } from "../chart-library.js";
4
- import"../chunk-bgfkgcmg.js";
6
+ } from "../chunk-g6m56ptf.js";
7
+ import"../chunk-93yrr7er.js";
8
+ import"../chunk-m17t3vjq.js";
5
9
 
6
10
  // src/plugins/zoom.ts
11
+ var MIN_ZOOM = 0.1;
12
+ var MAX_ZOOM = 1e7;
7
13
  function zoomPlugin(opts = {}) {
8
- const decay = opts.momentumDecay ?? 0.91;
14
+ const decay = opts.momentumDecay ?? 0.9;
9
15
  const state = new WeakMap;
10
16
  return {
11
17
  name: "zoom",
12
18
  install(chart, el) {
13
- const mgr = ChartManager.getInstance();
19
+ const originalTouchAction = el.style.touchAction;
20
+ const originalUserSelect = el.style.userSelect;
21
+ const originalWebkitUserSelect = el.style.webkitUserSelect;
22
+ el.style.touchAction = "none";
23
+ el.style.userSelect = "none";
24
+ el.style.webkitUserSelect = "none";
25
+ const mgr = ChartManager;
14
26
  const ac = new AbortController;
15
27
  const s = {
16
28
  lastX: 0,
17
29
  lastY: 0,
18
30
  velX: 0,
19
31
  velY: 0,
20
- abort: ac
32
+ momentum: null,
33
+ abort: ac,
34
+ originalTouchAction,
35
+ originalUserSelect,
36
+ originalWebkitUserSelect,
37
+ el
21
38
  };
39
+ const mode = () => chart.config.zoomMode ?? "both";
22
40
  state.set(chart, s);
23
41
  let pointers = [];
24
- let lastTime = 0;
25
- let pinchDistance = 0, pinchZoomX = 1, pinchZoomY = 1, pinchX = 0.5, pinchY = 0.5;
42
+ let gestureState = "none";
43
+ let startX = 0, startY = 0, lastX = 0, lastY = 0, lastTime = 0;
44
+ const PAN_THRESHOLD = 10;
45
+ const TAP_THRESHOLD = 10;
46
+ const PRESS_TIME = 500;
47
+ let pressTimer = null;
48
+ let pinchStartDist = 0, pinchStartZoomX = 1, pinchStartZoomY = 1;
49
+ let pinchCenterX = 0.5, pinchCenterY = 0.5;
50
+ let velX = 0, velY = 0;
51
+ let lastTapTime = 0;
52
+ let edgeScaleMode = null;
53
+ let edgeScaleStart = 0, edgeScaleInitialZoom = 1;
26
54
  const sendView = () => {
27
- mgr.sendViewTransform(chart);
55
+ mgr.requestRender(chart.id);
28
56
  mgr.drawChart(chart);
29
57
  if (mgr.syncViews)
30
58
  mgr.syncAllViews(chart);
31
59
  };
32
60
  const startMomentum = () => {
33
- if (chart.momentum)
34
- cancelAnimationFrame(chart.momentum);
61
+ if (s.momentum)
62
+ cancelAnimationFrame(s.momentum);
35
63
  const tick = () => {
36
- s.velX *= decay;
37
- s.velY *= decay;
38
- if (Math.abs(s.velX) > 0.00005 || Math.abs(s.velY) > 0.00005) {
39
- if (chart.zoomMode !== "none" && (chart.zoomMode === "both" || chart.zoomMode === "x-only")) {
40
- chart.view.panX -= s.velX / chart.view.zoomX;
41
- }
42
- if (chart.zoomMode !== "none" && (chart.zoomMode === "both" || chart.zoomMode === "y-only")) {
43
- chart.view.panY += s.velY / chart.view.zoomY;
44
- }
64
+ velX *= decay;
65
+ velY *= decay;
66
+ if (Math.abs(velX) > 0.00005 || Math.abs(velY) > 0.00005) {
67
+ const m = mode();
68
+ if (m !== "none" && (m === "both" || m === "x-only"))
69
+ chart.view.panX -= velX / chart.view.zoomX;
70
+ if (m !== "none" && (m === "both" || m === "y-only"))
71
+ chart.view.panY += velY / chart.view.zoomY;
45
72
  sendView();
46
- chart.momentum = requestAnimationFrame(tick);
73
+ s.momentum = requestAnimationFrame(tick);
47
74
  } else {
48
- chart.momentum = null;
75
+ s.momentum = null;
49
76
  }
50
77
  };
51
- chart.momentum = requestAnimationFrame(tick);
52
- };
53
- const cancelDrag = () => {
54
- if (chart.dragging) {
55
- chart.dragging = false;
56
- pointers = [];
57
- }
78
+ s.momentum = requestAnimationFrame(tick);
58
79
  };
59
80
  el.addEventListener("pointerdown", (e) => {
60
- if (chart.momentum) {
61
- cancelAnimationFrame(chart.momentum);
62
- chart.momentum = null;
81
+ if (s.momentum) {
82
+ cancelAnimationFrame(s.momentum);
83
+ s.momentum = null;
63
84
  }
64
85
  pointers.push(e);
65
86
  el.setPointerCapture(e.pointerId);
66
87
  if (pointers.length === 1) {
67
- chart.dragging = true;
68
- s.lastX = e.clientX;
69
- s.lastY = e.clientY;
70
- s.velX = s.velY = 0;
88
+ gestureState = "detecting";
89
+ startX = e.clientX;
90
+ startY = e.clientY;
91
+ lastX = e.clientX;
92
+ lastY = e.clientY;
93
+ velX = velY = 0;
71
94
  lastTime = performance.now();
95
+ edgeScaleMode = null;
96
+ if (e.pointerType === "touch") {
97
+ pressTimer = window.setTimeout(() => {
98
+ if (gestureState === "detecting") {
99
+ gestureState = "press";
100
+ chart.dragging = false;
101
+ }
102
+ }, PRESS_TIME);
103
+ } else {
104
+ const rect = el.getBoundingClientRect();
105
+ const localX = e.clientX - rect.left;
106
+ const localY = e.clientY - rect.top;
107
+ const margin = MARGIN;
108
+ const overYAxis = localX < margin.left;
109
+ const overXAxis = localY > rect.height - margin.bottom;
110
+ if (overYAxis && !overXAxis) {
111
+ edgeScaleMode = "y";
112
+ edgeScaleStart = e.clientY;
113
+ edgeScaleInitialZoom = chart.view.zoomY;
114
+ chart.dragging = true;
115
+ } else if (overXAxis && !overYAxis) {
116
+ edgeScaleMode = "x";
117
+ edgeScaleStart = e.clientX;
118
+ edgeScaleInitialZoom = chart.view.zoomX;
119
+ chart.dragging = true;
120
+ } else {
121
+ chart.dragging = true;
122
+ }
123
+ }
72
124
  } else if (pointers.length === 2) {
125
+ if (pressTimer) {
126
+ clearTimeout(pressTimer);
127
+ pressTimer = null;
128
+ }
129
+ gestureState = "pinch";
130
+ chart.dragging = false;
131
+ if (e.pointerType === "touch") {
132
+ e.preventDefault();
133
+ }
73
134
  const rect = el.getBoundingClientRect();
74
135
  const dx = pointers[1].clientX - pointers[0].clientX;
75
136
  const dy = pointers[1].clientY - pointers[0].clientY;
76
- pinchDistance = Math.hypot(dx, dy);
77
- pinchZoomX = chart.view.zoomX;
78
- pinchZoomY = chart.view.zoomY;
79
- pinchX = ((pointers[0].clientX + pointers[1].clientX) / 2 - rect.left) / rect.width;
80
- pinchY = 1 - ((pointers[0].clientY + pointers[1].clientY) / 2 - rect.top) / rect.height;
137
+ pinchStartDist = Math.hypot(dx, dy);
138
+ pinchStartZoomX = chart.view.zoomX;
139
+ pinchStartZoomY = chart.view.zoomY;
140
+ pinchCenterX = ((pointers[0].clientX + pointers[1].clientX) / 2 - rect.left) / rect.width;
141
+ pinchCenterY = 1 - ((pointers[0].clientY + pointers[1].clientY) / 2 - rect.top) / rect.height;
81
142
  }
82
- }, { signal: ac.signal });
143
+ }, { passive: false, signal: ac.signal });
83
144
  el.addEventListener("pointermove", (e) => {
84
145
  const idx = pointers.findIndex((p) => p.pointerId === e.pointerId);
85
- if (idx >= 0)
146
+ if (idx >= 0) {
86
147
  pointers[idx] = e;
87
- if (pointers.length === 1 && chart.dragging) {
88
- const rect = el.getBoundingClientRect();
89
- const dx = (e.clientX - s.lastX) / rect.width;
90
- const dy = (e.clientY - s.lastY) / rect.height;
91
- const now = performance.now();
92
- if (now - lastTime < 100) {
93
- s.velX = s.velX * 0.5 + dx * 0.5;
94
- s.velY = s.velY * 0.5 + dy * 0.5;
148
+ }
149
+ if (pointers.length >= 1 && e.buttons === 0 && (gestureState === "pan" || gestureState === "detecting" || gestureState === "press" || edgeScaleMode !== null)) {
150
+ endPointer(e);
151
+ return;
152
+ }
153
+ if (pointers.length === 1) {
154
+ const totalDist = Math.hypot(e.clientX - startX, e.clientY - startY);
155
+ if (gestureState === "detecting" && totalDist > PAN_THRESHOLD) {
156
+ gestureState = "pan";
157
+ chart.dragging = true;
158
+ if (pressTimer) {
159
+ clearTimeout(pressTimer);
160
+ pressTimer = null;
161
+ }
95
162
  }
96
- lastTime = now;
97
- if (chart.zoomMode !== "none" && (chart.zoomMode === "both" || chart.zoomMode === "x-only")) {
98
- chart.view.panX -= dx / chart.view.zoomX;
163
+ if (gestureState === "press") {
164
+ return;
99
165
  }
100
- if (chart.zoomMode !== "none" && (chart.zoomMode === "both" || chart.zoomMode === "y-only")) {
101
- chart.view.panY += dy / chart.view.zoomY;
166
+ if (edgeScaleMode && e.pointerType !== "touch") {
167
+ if (edgeScaleMode === "x") {
168
+ const pixelDelta = e.clientX - edgeScaleStart;
169
+ const scale = Math.exp(pixelDelta / 200);
170
+ const newZoom = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, edgeScaleInitialZoom * scale));
171
+ const fx = chart.view.panX + 0.5 / edgeScaleInitialZoom;
172
+ chart.view.zoomX = newZoom;
173
+ chart.view.panX = fx - 0.5 / newZoom;
174
+ sendView();
175
+ return;
176
+ } else if (edgeScaleMode === "y") {
177
+ const pixelDelta = edgeScaleStart - e.clientY;
178
+ const scale = Math.exp(pixelDelta / 200);
179
+ const newZoom = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, edgeScaleInitialZoom * scale));
180
+ const fy = chart.view.panY + 0.5 / edgeScaleInitialZoom;
181
+ chart.view.zoomY = newZoom;
182
+ chart.view.panY = fy - 0.5 / newZoom;
183
+ sendView();
184
+ return;
185
+ }
102
186
  }
103
- s.lastX = e.clientX;
104
- s.lastY = e.clientY;
105
- sendView();
106
- } else if (pointers.length === 2) {
187
+ if (gestureState === "pan" || chart.dragging && !edgeScaleMode) {
188
+ const rect = el.getBoundingClientRect();
189
+ const dx = (e.clientX - lastX) / rect.width;
190
+ const dy = (e.clientY - lastY) / rect.height;
191
+ const now = performance.now();
192
+ if (now - lastTime < 100) {
193
+ velX = velX * 0.3 + dx * 0.7;
194
+ velY = velY * 0.3 + dy * 0.7;
195
+ }
196
+ lastTime = now;
197
+ const m = mode();
198
+ if (m !== "none" && (m === "both" || m === "x-only"))
199
+ chart.view.panX -= dx / chart.view.zoomX;
200
+ if (m !== "none" && (m === "both" || m === "y-only"))
201
+ chart.view.panY += dy / chart.view.zoomY;
202
+ lastX = e.clientX;
203
+ lastY = e.clientY;
204
+ sendView();
205
+ }
206
+ } else if (pointers.length === 2 && gestureState === "pinch") {
207
+ if (e.pointerType === "touch") {
208
+ e.preventDefault();
209
+ }
210
+ const rect = el.getBoundingClientRect();
107
211
  const dx = pointers[1].clientX - pointers[0].clientX;
108
212
  const dy = pointers[1].clientY - pointers[0].clientY;
109
- const d = Math.hypot(dx, dy);
110
- const scale = d / pinchDistance;
111
- if (chart.zoomMode !== "none" && (chart.zoomMode === "both" || chart.zoomMode === "x-only")) {
112
- const newZoomX = Math.max(ChartManager.MIN_ZOOM, Math.min(ChartManager.MAX_ZOOM, pinchZoomX * scale));
113
- const fx = chart.view.panX + pinchX / pinchZoomX;
213
+ const dist = Math.hypot(dx, dy);
214
+ const currentPinchCenterX = ((pointers[0].clientX + pointers[1].clientX) / 2 - rect.left) / rect.width;
215
+ const currentPinchCenterY = 1 - ((pointers[0].clientY + pointers[1].clientY) / 2 - rect.top) / rect.height;
216
+ const pixelChange = dist - pinchStartDist;
217
+ const scale = Math.exp(pixelChange / 280);
218
+ const pm = mode();
219
+ if (pm !== "none" && (pm === "both" || pm === "x-only")) {
220
+ const newZoomX = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, pinchStartZoomX * scale));
221
+ const fx = chart.view.panX + currentPinchCenterX / chart.view.zoomX;
114
222
  chart.view.zoomX = newZoomX;
115
- chart.view.panX = fx - pinchX / newZoomX;
223
+ chart.view.panX = fx - currentPinchCenterX / newZoomX;
116
224
  }
117
- if (chart.zoomMode !== "none" && (chart.zoomMode === "both" || chart.zoomMode === "y-only")) {
118
- const newZoomY = Math.max(ChartManager.MIN_ZOOM, Math.min(ChartManager.MAX_ZOOM, pinchZoomY * scale));
119
- const fy = chart.view.panY + pinchY / pinchZoomY;
225
+ if (pm !== "none" && (pm === "both" || pm === "y-only")) {
226
+ const newZoomY = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, pinchStartZoomY * scale));
227
+ const fy = chart.view.panY + currentPinchCenterY / chart.view.zoomY;
120
228
  chart.view.zoomY = newZoomY;
121
- chart.view.panY = fy - pinchY / newZoomY;
229
+ chart.view.panY = fy - currentPinchCenterY / newZoomY;
122
230
  }
123
231
  sendView();
124
232
  }
125
- }, { signal: ac.signal });
233
+ }, { passive: false, signal: ac.signal });
126
234
  const endPointer = (e) => {
127
235
  pointers = pointers.filter((p) => p.pointerId !== e.pointerId);
128
236
  el.releasePointerCapture(e.pointerId);
129
- if (pointers.length === 0 && chart.dragging) {
130
- chart.dragging = false;
131
- if (Math.abs(s.velX) > 0.001 || Math.abs(s.velY) > 0.001) {
237
+ if (pressTimer) {
238
+ clearTimeout(pressTimer);
239
+ pressTimer = null;
240
+ }
241
+ if (pointers.length === 0) {
242
+ const totalDist = Math.hypot(e.clientX - startX, e.clientY - startY);
243
+ const isTap = totalDist < TAP_THRESHOLD && gestureState !== "pan";
244
+ if (isTap) {
245
+ const now = Date.now();
246
+ if (now - lastTapTime < 300) {
247
+ mgr.resetView(chart.id);
248
+ lastTapTime = 0;
249
+ } else {
250
+ lastTapTime = now;
251
+ }
252
+ }
253
+ if (gestureState === "pan" && (Math.abs(velX) > 0.001 || Math.abs(velY) > 0.001)) {
132
254
  startMomentum();
133
255
  }
256
+ gestureState = "none";
257
+ chart.dragging = false;
258
+ edgeScaleMode = null;
259
+ } else if (pointers.length === 1) {
260
+ gestureState = "detecting";
261
+ startX = pointers[0].clientX;
262
+ startY = pointers[0].clientY;
263
+ lastX = pointers[0].clientX;
264
+ lastY = pointers[0].clientY;
134
265
  }
135
266
  };
136
267
  el.addEventListener("pointerup", endPointer, { signal: ac.signal });
137
- el.addEventListener("pointercancel", endPointer, {
138
- signal: ac.signal
139
- });
140
- el.addEventListener("pointerleave", cancelDrag, {
141
- signal: ac.signal
142
- });
143
- let lastTap = 0;
144
- el.addEventListener("pointerup", () => {
145
- const now = Date.now();
146
- if (now - lastTap < 300)
147
- mgr.resetView(chart.id);
148
- lastTap = now;
149
- }, { signal: ac.signal });
268
+ el.addEventListener("pointercancel", endPointer, { signal: ac.signal });
150
269
  el.addEventListener("wheel", (e) => {
151
270
  e.preventDefault();
152
- if (chart.momentum) {
153
- cancelAnimationFrame(chart.momentum);
154
- chart.momentum = null;
271
+ if (s.momentum) {
272
+ cancelAnimationFrame(s.momentum);
273
+ s.momentum = null;
155
274
  }
156
275
  const rect = el.getBoundingClientRect();
157
276
  const localX = e.clientX - rect.left;
@@ -159,7 +278,7 @@ function zoomPlugin(opts = {}) {
159
278
  const mx = localX / rect.width;
160
279
  const my = 1 - localY / rect.height;
161
280
  const scale = 1 - e.deltaY * 0.002;
162
- const margin = ChartManager.MARGIN;
281
+ const margin = MARGIN;
163
282
  const overYAxis = localX < margin.left;
164
283
  const overXAxis = localY > rect.height - margin.bottom;
165
284
  let zoomX;
@@ -171,30 +290,41 @@ function zoomPlugin(opts = {}) {
171
290
  zoomX = true;
172
291
  zoomY = false;
173
292
  } else {
174
- zoomX = chart.zoomMode === "both" || chart.zoomMode === "x-only";
175
- zoomY = chart.zoomMode === "both" || chart.zoomMode === "y-only";
293
+ const wm = mode();
294
+ zoomX = wm === "both" || wm === "x-only";
295
+ zoomY = wm === "both" || wm === "y-only";
176
296
  }
177
297
  if (zoomX) {
178
298
  const fx = chart.view.panX + mx / chart.view.zoomX;
179
- chart.view.zoomX = Math.max(ChartManager.MIN_ZOOM, Math.min(ChartManager.MAX_ZOOM, chart.view.zoomX * scale));
299
+ chart.view.zoomX = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, chart.view.zoomX * scale));
180
300
  chart.view.panX = fx - mx / chart.view.zoomX;
181
301
  }
182
302
  if (zoomY) {
183
303
  const fy = chart.view.panY + my / chart.view.zoomY;
184
- chart.view.zoomY = Math.max(ChartManager.MIN_ZOOM, Math.min(ChartManager.MAX_ZOOM, chart.view.zoomY * scale));
304
+ chart.view.zoomY = Math.max(MIN_ZOOM, Math.min(MAX_ZOOM, chart.view.zoomY * scale));
185
305
  chart.view.panY = fy - my / chart.view.zoomY;
186
306
  }
187
307
  if (zoomX || zoomY)
188
308
  sendView();
189
309
  }, { passive: false, signal: ac.signal });
190
310
  },
311
+ resetView(chart) {
312
+ const s = state.get(chart);
313
+ if (s?.momentum) {
314
+ cancelAnimationFrame(s.momentum);
315
+ s.momentum = null;
316
+ }
317
+ },
191
318
  uninstall(chart) {
192
319
  const s = state.get(chart);
193
320
  if (s) {
194
- if (chart.momentum) {
195
- cancelAnimationFrame(chart.momentum);
196
- chart.momentum = null;
321
+ if (s.momentum) {
322
+ cancelAnimationFrame(s.momentum);
323
+ s.momentum = null;
197
324
  }
325
+ s.el.style.touchAction = s.originalTouchAction;
326
+ s.el.style.userSelect = s.originalUserSelect;
327
+ s.el.style.webkitUserSelect = s.originalWebkitUserSelect;
198
328
  s.abort.abort();
199
329
  state.delete(chart);
200
330
  }
@@ -1 +1 @@
1
- import{a as s}from"../chart-library.js";import"../chunk-cj3zanvs.js";function F(C={}){let O=C.momentumDecay??0.91,Y=new WeakMap;return{name:"zoom",install(e,t){let f=s.getInstance(),d=new AbortController,i={lastX:0,lastY:0,velX:0,velY:0,abort:d};Y.set(e,i);let n=[],z=0,Z=0,b=1,y=1,c=0.5,r=0.5,X=()=>{if(f.sendViewTransform(e),f.drawChart(e),f.syncViews)f.syncAllViews(e)},P=()=>{if(e.momentum)cancelAnimationFrame(e.momentum);let o=()=>{if(i.velX*=O,i.velY*=O,Math.abs(i.velX)>0.00005||Math.abs(i.velY)>0.00005){if(e.zoomMode!=="none"&&(e.zoomMode==="both"||e.zoomMode==="x-only"))e.view.panX-=i.velX/e.view.zoomX;if(e.zoomMode!=="none"&&(e.zoomMode==="both"||e.zoomMode==="y-only"))e.view.panY+=i.velY/e.view.zoomY;X(),e.momentum=requestAnimationFrame(o)}else e.momentum=null};e.momentum=requestAnimationFrame(o)},E=()=>{if(e.dragging)e.dragging=!1,n=[]};t.addEventListener("pointerdown",(o)=>{if(e.momentum)cancelAnimationFrame(e.momentum),e.momentum=null;if(n.push(o),t.setPointerCapture(o.pointerId),n.length===1)e.dragging=!0,i.lastX=o.clientX,i.lastY=o.clientY,i.velX=i.velY=0,z=performance.now();else if(n.length===2){let m=t.getBoundingClientRect(),l=n[1].clientX-n[0].clientX,a=n[1].clientY-n[0].clientY;Z=Math.hypot(l,a),b=e.view.zoomX,y=e.view.zoomY,c=((n[0].clientX+n[1].clientX)/2-m.left)/m.width,r=1-((n[0].clientY+n[1].clientY)/2-m.top)/m.height}},{signal:d.signal}),t.addEventListener("pointermove",(o)=>{let m=n.findIndex((l)=>l.pointerId===o.pointerId);if(m>=0)n[m]=o;if(n.length===1&&e.dragging){let l=t.getBoundingClientRect(),a=(o.clientX-i.lastX)/l.width,M=(o.clientY-i.lastY)/l.height,v=performance.now();if(v-z<100)i.velX=i.velX*0.5+a*0.5,i.velY=i.velY*0.5+M*0.5;if(z=v,e.zoomMode!=="none"&&(e.zoomMode==="both"||e.zoomMode==="x-only"))e.view.panX-=a/e.view.zoomX;if(e.zoomMode!=="none"&&(e.zoomMode==="both"||e.zoomMode==="y-only"))e.view.panY+=M/e.view.zoomY;i.lastX=o.clientX,i.lastY=o.clientY,X()}else if(n.length===2){let l=n[1].clientX-n[0].clientX,a=n[1].clientY-n[0].clientY,v=Math.hypot(l,a)/Z;if(e.zoomMode!=="none"&&(e.zoomMode==="both"||e.zoomMode==="x-only")){let g=Math.max(s.MIN_ZOOM,Math.min(s.MAX_ZOOM,b*v)),p=e.view.panX+c/b;e.view.zoomX=g,e.view.panX=p-c/g}if(e.zoomMode!=="none"&&(e.zoomMode==="both"||e.zoomMode==="y-only")){let g=Math.max(s.MIN_ZOOM,Math.min(s.MAX_ZOOM,y*v)),p=e.view.panY+r/y;e.view.zoomY=g,e.view.panY=p-r/g}X()}},{signal:d.signal});let A=(o)=>{if(n=n.filter((m)=>m.pointerId!==o.pointerId),t.releasePointerCapture(o.pointerId),n.length===0&&e.dragging){if(e.dragging=!1,Math.abs(i.velX)>0.001||Math.abs(i.velY)>0.001)P()}};t.addEventListener("pointerup",A,{signal:d.signal}),t.addEventListener("pointercancel",A,{signal:d.signal}),t.addEventListener("pointerleave",E,{signal:d.signal});let I=0;t.addEventListener("pointerup",()=>{let o=Date.now();if(o-I<300)f.resetView(e.id);I=o},{signal:d.signal}),t.addEventListener("wheel",(o)=>{if(o.preventDefault(),e.momentum)cancelAnimationFrame(e.momentum),e.momentum=null;let m=t.getBoundingClientRect(),l=o.clientX-m.left,a=o.clientY-m.top,M=l/m.width,v=1-a/m.height,g=1-o.deltaY*0.002,p=s.MARGIN,_=l<p.left,L=a>m.height-p.bottom,u,w;if(_)u=!1,w=!0;else if(L)u=!0,w=!1;else u=e.zoomMode==="both"||e.zoomMode==="x-only",w=e.zoomMode==="both"||e.zoomMode==="y-only";if(u){let x=e.view.panX+M/e.view.zoomX;e.view.zoomX=Math.max(s.MIN_ZOOM,Math.min(s.MAX_ZOOM,e.view.zoomX*g)),e.view.panX=x-M/e.view.zoomX}if(w){let x=e.view.panY+v/e.view.zoomY;e.view.zoomY=Math.max(s.MIN_ZOOM,Math.min(s.MAX_ZOOM,e.view.zoomY*g)),e.view.panY=x-v/e.view.zoomY}if(u||w)X()},{passive:!1,signal:d.signal})},uninstall(e){let t=Y.get(e);if(t){if(e.momentum)cancelAnimationFrame(e.momentum),e.momentum=null;t.abort.abort(),Y.delete(e)}}}}export{F as zoomPlugin};
1
+ import{j as g}from"../chunk-e7d3zgw5.js";import{l as n}from"../chunk-94kc81rr.js";import"../chunk-bfyv7z27.js";import"../chunk-me3qaz3m.js";var P=0.1,y=1e7;function Bj(i={}){let S=i.momentumDecay??0.9,_=new WeakMap;return{name:"zoom",install(j,B){let l=B.style.touchAction,h=B.style.userSelect,o=B.style.webkitUserSelect;B.style.touchAction="none",B.style.userSelect="none",B.style.webkitUserSelect="none";let I=n,C=new AbortController,W={lastX:0,lastY:0,velX:0,velY:0,momentum:null,abort:C,originalTouchAction:l,originalUserSelect:h,originalWebkitUserSelect:o,el:B},A=()=>j.config.zoomMode??"both";_.set(j,W);let F=[],Q="none",v=0,x=0,u=0,w=0,Z=0,s=10,c=10,a=500,R=null,d=0,p=1,m=1,r=0.5,t=0.5,f=0,D=0,Y=0,V=null,T=0,N=1,z=()=>{if(I.requestRender(j.id),I.drawChart(j),I.syncViews)I.syncAllViews(j)},e=()=>{if(W.momentum)cancelAnimationFrame(W.momentum);let q=()=>{if(f*=S,D*=S,Math.abs(f)>0.00005||Math.abs(D)>0.00005){let J=A();if(J!=="none"&&(J==="both"||J==="x-only"))j.view.panX-=f/j.view.zoomX;if(J!=="none"&&(J==="both"||J==="y-only"))j.view.panY+=D/j.view.zoomY;z(),W.momentum=requestAnimationFrame(q)}else W.momentum=null};W.momentum=requestAnimationFrame(q)};B.addEventListener("pointerdown",(q)=>{if(W.momentum)cancelAnimationFrame(W.momentum),W.momentum=null;if(F.push(q),B.setPointerCapture(q.pointerId),F.length===1)if(Q="detecting",v=q.clientX,x=q.clientY,u=q.clientX,w=q.clientY,f=D=0,Z=performance.now(),V=null,q.pointerType==="touch")R=window.setTimeout(()=>{if(Q==="detecting")Q="press",j.dragging=!1},a);else{let J=B.getBoundingClientRect(),$=q.clientX-J.left,K=q.clientY-J.top,U=g,G=$<U.left,L=K>J.height-U.bottom;if(G&&!L)V="y",T=q.clientY,N=j.view.zoomY,j.dragging=!0;else if(L&&!G)V="x",T=q.clientX,N=j.view.zoomX,j.dragging=!0;else j.dragging=!0}else if(F.length===2){if(R)clearTimeout(R),R=null;if(Q="pinch",j.dragging=!1,q.pointerType==="touch")q.preventDefault();let J=B.getBoundingClientRect(),$=F[1].clientX-F[0].clientX,K=F[1].clientY-F[0].clientY;d=Math.hypot($,K),p=j.view.zoomX,m=j.view.zoomY,r=((F[0].clientX+F[1].clientX)/2-J.left)/J.width,t=1-((F[0].clientY+F[1].clientY)/2-J.top)/J.height}},{passive:!1,signal:C.signal}),B.addEventListener("pointermove",(q)=>{let J=F.findIndex(($)=>$.pointerId===q.pointerId);if(J>=0)F[J]=q;if(F.length>=1&&q.buttons===0&&(Q==="pan"||Q==="detecting"||Q==="press"||V!==null)){M(q);return}if(F.length===1){let $=Math.hypot(q.clientX-v,q.clientY-x);if(Q==="detecting"&&$>s){if(Q="pan",j.dragging=!0,R)clearTimeout(R),R=null}if(Q==="press")return;if(V&&q.pointerType!=="touch"){if(V==="x"){let K=q.clientX-T,U=Math.exp(K/200),G=Math.max(P,Math.min(y,N*U)),L=j.view.panX+0.5/N;j.view.zoomX=G,j.view.panX=L-0.5/G,z();return}else if(V==="y"){let K=T-q.clientY,U=Math.exp(K/200),G=Math.max(P,Math.min(y,N*U)),L=j.view.panY+0.5/N;j.view.zoomY=G,j.view.panY=L-0.5/G,z();return}}if(Q==="pan"||j.dragging&&!V){let K=B.getBoundingClientRect(),U=(q.clientX-u)/K.width,G=(q.clientY-w)/K.height,L=performance.now();if(L-Z<100)f=f*0.3+U*0.7,D=D*0.3+G*0.7;Z=L;let b=A();if(b!=="none"&&(b==="both"||b==="x-only"))j.view.panX-=U/j.view.zoomX;if(b!=="none"&&(b==="both"||b==="y-only"))j.view.panY+=G/j.view.zoomY;u=q.clientX,w=q.clientY,z()}}else if(F.length===2&&Q==="pinch"){if(q.pointerType==="touch")q.preventDefault();let $=B.getBoundingClientRect(),K=F[1].clientX-F[0].clientX,U=F[1].clientY-F[0].clientY,G=Math.hypot(K,U),L=((F[0].clientX+F[1].clientX)/2-$.left)/$.width,b=1-((F[0].clientY+F[1].clientY)/2-$.top)/$.height,X=G-d,O=Math.exp(X/280),k=A();if(k!=="none"&&(k==="both"||k==="x-only")){let H=Math.max(P,Math.min(y,p*O)),E=j.view.panX+L/j.view.zoomX;j.view.zoomX=H,j.view.panX=E-L/H}if(k!=="none"&&(k==="both"||k==="y-only")){let H=Math.max(P,Math.min(y,m*O)),E=j.view.panY+b/j.view.zoomY;j.view.zoomY=H,j.view.panY=E-b/H}z()}},{passive:!1,signal:C.signal});let M=(q)=>{if(F=F.filter((J)=>J.pointerId!==q.pointerId),B.releasePointerCapture(q.pointerId),R)clearTimeout(R),R=null;if(F.length===0){if(Math.hypot(q.clientX-v,q.clientY-x)<c&&Q!=="pan"){let K=Date.now();if(K-Y<300)I.resetView(j.id),Y=0;else Y=K}if(Q==="pan"&&(Math.abs(f)>0.001||Math.abs(D)>0.001))e();Q="none",j.dragging=!1,V=null}else if(F.length===1)Q="detecting",v=F[0].clientX,x=F[0].clientY,u=F[0].clientX,w=F[0].clientY};B.addEventListener("pointerup",M,{signal:C.signal}),B.addEventListener("pointercancel",M,{signal:C.signal}),B.addEventListener("wheel",(q)=>{if(q.preventDefault(),W.momentum)cancelAnimationFrame(W.momentum),W.momentum=null;let J=B.getBoundingClientRect(),$=q.clientX-J.left,K=q.clientY-J.top,U=$/J.width,G=1-K/J.height,L=1-q.deltaY*0.002,b=g,X=$<b.left,O=K>J.height-b.bottom,k,H;if(X)k=!1,H=!0;else if(O)k=!0,H=!1;else{let E=A();k=E==="both"||E==="x-only",H=E==="both"||E==="y-only"}if(k){let E=j.view.panX+U/j.view.zoomX;j.view.zoomX=Math.max(P,Math.min(y,j.view.zoomX*L)),j.view.panX=E-U/j.view.zoomX}if(H){let E=j.view.panY+G/j.view.zoomY;j.view.zoomY=Math.max(P,Math.min(y,j.view.zoomY*L)),j.view.panY=E-G/j.view.zoomY}if(k||H)z()},{passive:!1,signal:C.signal})},resetView(j){let B=_.get(j);if(B?.momentum)cancelAnimationFrame(B.momentum),B.momentum=null},uninstall(j){let B=_.get(j);if(B){if(B.momentum)cancelAnimationFrame(B.momentum),B.momentum=null;B.el.style.touchAction=B.originalTouchAction,B.el.style.userSelect=B.originalUserSelect,B.el.style.webkitUserSelect=B.originalWebkitUserSelect,B.abort.abort(),_.delete(j)}}}}export{Bj as zoomPlugin};
@@ -0,0 +1,179 @@
1
+ export type ZoomMode = "both" | "x-only" | "y-only" | "none";
2
+ export type BlendFactor = "zero" | "one" | "src" | "one-minus-src" | "src-alpha" | "one-minus-src-alpha" | "dst" | "one-minus-dst" | "dst-alpha" | "one-minus-dst-alpha" | "src-alpha-saturated" | "constant" | "one-minus-constant";
3
+ export type BlendOperation = "add" | "subtract" | "reverse-subtract" | "min" | "max";
4
+ export interface BlendComponent {
5
+ srcFactor?: BlendFactor;
6
+ dstFactor?: BlendFactor;
7
+ operation?: BlendOperation;
8
+ }
9
+ export interface BlendState {
10
+ color: BlendComponent;
11
+ alpha: BlendComponent;
12
+ }
13
+ export interface ChartColor {
14
+ r: number;
15
+ g: number;
16
+ b: number;
17
+ }
18
+ export interface ChartSeries {
19
+ label: string;
20
+ color: ChartColor | string;
21
+ x: number[];
22
+ y: number[];
23
+ [key: string]: any;
24
+ }
25
+ export interface HoverData {
26
+ x: number;
27
+ y: number;
28
+ index: number;
29
+ screenX: number;
30
+ screenY: number;
31
+ seriesIndex: number;
32
+ seriesLabel: string;
33
+ }
34
+ export interface RenderContext {
35
+ width: number;
36
+ height: number;
37
+ samples: number;
38
+ seriesCount: number;
39
+ bounds: {
40
+ minX: number;
41
+ maxX: number;
42
+ minY: number;
43
+ maxY: number;
44
+ };
45
+ view: {
46
+ panX: number;
47
+ panY: number;
48
+ zoomX: number;
49
+ zoomY: number;
50
+ };
51
+ }
52
+ export interface BindingDef {
53
+ binding: number;
54
+ source: string;
55
+ write?: boolean;
56
+ }
57
+ export interface PassDef {
58
+ type: "compute" | "render";
59
+ shader: string;
60
+ bindings: BindingDef[];
61
+ perSeries?: boolean;
62
+ dispatch?: (ctx: RenderContext) => {
63
+ x: number;
64
+ y?: number;
65
+ z?: number;
66
+ };
67
+ topology?: string;
68
+ loadOp?: "clear" | "load";
69
+ blend?: BlendState;
70
+ draw?: (ctx: RenderContext) => number;
71
+ }
72
+ export type BufferUsage = "STORAGE" | "VERTEX" | "UNIFORM" | "INDEX" | "INDIRECT" | "COPY_SRC" | "COPY_DST";
73
+ export interface BufferDef {
74
+ name: string;
75
+ bytes: (ctx: RenderContext) => number;
76
+ usages: BufferUsage[];
77
+ }
78
+ export interface UniformDef {
79
+ name: string;
80
+ type: "f32" | "u32";
81
+ default: number;
82
+ }
83
+ export interface PassMeta {
84
+ dispatch?: {
85
+ x: number;
86
+ y?: number;
87
+ z?: number;
88
+ };
89
+ draw?: number;
90
+ }
91
+ export interface ChartConfig {
92
+ type: string;
93
+ container: HTMLElement;
94
+ series: ChartSeries[];
95
+ defaultBounds?: {
96
+ minX?: number;
97
+ maxX?: number;
98
+ minY?: number;
99
+ maxY?: number;
100
+ };
101
+ bgColor?: [number, number, number];
102
+ }
103
+ export interface ChartTypeRegistry {
104
+ }
105
+ export interface ChartPluginRegistry {
106
+ }
107
+ export type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
108
+ export type AllPluginOptions = keyof ChartPluginRegistry extends never ? {} : Partial<UnionToIntersection<ChartPluginRegistry[keyof ChartPluginRegistry]>>;
109
+ export interface ChartStats {
110
+ fps: number;
111
+ renderMs: number;
112
+ total: number;
113
+ active: number;
114
+ }
115
+ export interface InternalChart<C extends ChartConfig = ChartConfig> {
116
+ id: string;
117
+ config: C;
118
+ el: HTMLElement;
119
+ backCanvas: HTMLCanvasElement;
120
+ frontCanvas: HTMLCanvasElement;
121
+ width: number;
122
+ height: number;
123
+ series: Array<{
124
+ label: string;
125
+ color: {
126
+ r: number;
127
+ g: number;
128
+ b: number;
129
+ };
130
+ rawX: number[];
131
+ rawY: number[];
132
+ extra: Record<string, number[]>;
133
+ }>;
134
+ bounds: {
135
+ minX: number;
136
+ maxX: number;
137
+ minY: number;
138
+ maxY: number;
139
+ };
140
+ view: {
141
+ panX: number;
142
+ panY: number;
143
+ zoomX: number;
144
+ zoomY: number;
145
+ };
146
+ visible: boolean;
147
+ dragging: boolean;
148
+ plugins: ChartPlugin<any>[];
149
+ renderer: RendererPlugin;
150
+ customUniforms: Record<string, number>;
151
+ }
152
+ export interface ChartPlugin<C extends object = object> {
153
+ name: string;
154
+ install?(chart: InternalChart<ChartConfig & C>, el: HTMLElement): void;
155
+ uninstall?(chart: InternalChart<ChartConfig & C>): void;
156
+ resetView?(chart: InternalChart<ChartConfig & C>): void;
157
+ beforeDraw?(ctx: CanvasRenderingContext2D, chart: InternalChart<ChartConfig & C>): void;
158
+ afterDraw?(ctx: CanvasRenderingContext2D, chart: InternalChart<ChartConfig & C>): void;
159
+ }
160
+ export interface RendererPlugin {
161
+ name: string;
162
+ shaders: Record<string, string>;
163
+ passes: PassDef[];
164
+ buffers?: BufferDef[];
165
+ uniforms?: UniformDef[];
166
+ computeBounds?(series: Array<{
167
+ rawX: number[];
168
+ rawY: number[];
169
+ extra: Record<string, number[]>;
170
+ }>): {
171
+ minX: number;
172
+ maxX: number;
173
+ minY: number;
174
+ maxY: number;
175
+ };
176
+ install?(chart: InternalChart<any>, el: HTMLElement): void;
177
+ uninstall?(chart: InternalChart<any>): void;
178
+ }
179
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
File without changes
File without changes