velo-plot 2.20.0 → 3.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.
- package/README.md +15 -8
- package/dist/{ChartCore-ivzLqxVb.js → ChartCore-BpzRvN4Y.js} +978 -861
- package/dist/ChartCore-BpzRvN4Y.js.map +1 -0
- package/dist/a11y-Bw6urYpr.js +105 -0
- package/dist/a11y-Bw6urYpr.js.map +1 -0
- package/dist/angular/hooks-entry.d.ts +1 -0
- package/dist/angular/hooks.d.ts +26 -0
- package/dist/angular/index.d.ts +8 -0
- package/dist/angular/velo-plot.component.d.ts +46 -0
- package/dist/angular-hooks.d.ts +1 -0
- package/dist/angular-hooks.js +9 -0
- package/dist/angular-hooks.js.map +1 -0
- package/dist/angular.d.ts +1 -0
- package/dist/angular.js +166 -0
- package/dist/angular.js.map +1 -0
- package/dist/assets/indicator.worker-bv0zC4EX.js.map +1 -1
- package/dist/astro/StackedPlot.astro +19 -0
- package/dist/astro/VeloPlot.astro +23 -0
- package/dist/bindings/shared/a11y.d.ts +26 -0
- package/dist/bindings/shared/chartLifecycle.d.ts +16 -0
- package/dist/bindings/shared/chartSyncBridge.d.ts +8 -0
- package/dist/bindings/shared/dimensions.d.ts +1 -0
- package/dist/bindings/shared/index.d.ts +9 -0
- package/dist/bindings/shared/indicatorBridge.d.ts +11 -0
- package/dist/bindings/shared/optionsSync.d.ts +7 -0
- package/dist/bindings/shared/seriesDiff.d.ts +8 -0
- package/dist/bindings/shared/stackedSync.d.ts +9 -0
- package/dist/bindings/shared/types.d.ts +46 -0
- package/dist/bindings/test-utils/index.d.ts +35 -0
- package/dist/bindings/test-utils/mockLifecycle.d.ts +120 -0
- package/dist/bindings/test-utils/vitestSveltePlugin.d.ts +3 -0
- package/dist/chartSyncBridge-DbWrwtyP.js +57 -0
- package/dist/chartSyncBridge-DbWrwtyP.js.map +1 -0
- package/dist/core/Chart.d.ts +1 -1
- package/dist/core/InteractionManager.d.ts +7 -1
- package/dist/core/OverlayRenderer.d.ts +5 -0
- package/dist/core/annotations/types.d.ts +1 -1
- package/dist/core/chart/ChartCore.d.ts +2 -2
- package/dist/core/chart/types.d.ts +1 -1
- package/dist/core/clipboard/index.d.ts +1 -1
- package/dist/core/debug/index.d.ts +1 -1
- package/dist/core/keybindings/index.d.ts +1 -1
- package/dist/core/loading/index.d.ts +1 -1
- package/dist/core/locale/index.d.ts +1 -1
- package/dist/core/stacked/paneResize.d.ts +3 -0
- package/dist/core/stacked/types.d.ts +10 -0
- package/dist/core/theme-editor/index.d.ts +1 -1
- package/dist/createStackedChart-Dm-YqUT7.js +756 -0
- package/dist/createStackedChart-Dm-YqUT7.js.map +1 -0
- package/dist/examples/PluginDemonstration.d.ts +1 -1
- package/dist/gpuRenderer-BpaMYz-k.js.map +1 -1
- package/dist/hooks-CYPCxoZx.js +69 -0
- package/dist/hooks-CYPCxoZx.js.map +1 -0
- package/dist/{index-BBpJwOct.js → index-0InEyj0q.js} +119 -121
- package/dist/index-0InEyj0q.js.map +1 -0
- package/dist/index-BMiZoKmm.js.map +1 -1
- package/dist/{index-DoYxf1cV.js → index-CWxIHdwX.js} +38 -98
- package/dist/index-CWxIHdwX.js.map +1 -0
- package/dist/index-CaXWSOTk.js.map +1 -1
- package/dist/index-Dag88bW4.js.map +1 -1
- package/dist/index-qhscKTDy.js.map +1 -1
- package/dist/index-qunX30Xu.js.map +1 -1
- package/dist/index-x4stH3jD.js.map +1 -1
- package/dist/{index.core-COREBDNq.js → index.core-BmZe2jRQ.js} +9 -9
- package/dist/index.core-BmZe2jRQ.js.map +1 -0
- package/dist/index.core.d.ts +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/indicators--eJGmVox.js.map +1 -1
- package/dist/{mockDatafeed-927foCM4.js → mockDatafeed-DHIDPcpX.js} +150 -146
- package/dist/mockDatafeed-DHIDPcpX.js.map +1 -0
- package/dist/optionsSync-QUiN4Inw.js +119 -0
- package/dist/optionsSync-QUiN4Inw.js.map +1 -0
- package/dist/plugins/3d/index.d.ts +2 -2
- package/dist/plugins/3d.d.ts +2 -2
- package/dist/plugins/3d.js.map +1 -1
- package/dist/plugins/analysis/index.d.ts +1 -1
- package/dist/plugins/analysis/indicators.d.ts +1 -1
- package/dist/plugins/analysis.d.ts +2 -2
- package/dist/plugins/analysis.js +2 -2
- package/dist/plugins/analysis.js.map +1 -1
- package/dist/plugins/annotations/index.d.ts +1 -1
- package/dist/plugins/annotations.d.ts +2 -2
- package/dist/plugins/annotations.js.map +1 -1
- package/dist/plugins/anomaly-detection.js +1 -1
- package/dist/plugins/anomaly-detection.js.map +1 -1
- package/dist/plugins/broken-axis.d.ts +2 -2
- package/dist/plugins/builtins/crosshair/CrosshairPlugin.d.ts +1 -1
- package/dist/plugins/builtins/index.d.ts +1 -1
- package/dist/plugins/caching.d.ts +2 -2
- package/dist/plugins/clipboard/index.d.ts +2 -2
- package/dist/plugins/clipboard.d.ts +2 -2
- package/dist/plugins/clipboard.js.map +1 -1
- package/dist/plugins/context-menu/index.d.ts +1 -1
- package/dist/plugins/context-menu.d.ts +2 -2
- package/dist/plugins/context-menu.js +1 -1
- package/dist/plugins/context-menu.js.map +1 -1
- package/dist/plugins/data-export/index.d.ts +1 -1
- package/dist/plugins/data-export.d.ts +2 -2
- package/dist/plugins/data-export.js +2 -2
- package/dist/plugins/data-export.js.map +1 -1
- package/dist/plugins/data-transform.d.ts +2 -2
- package/dist/plugins/data-transform.js +19 -19
- package/dist/plugins/data-transform.js.map +1 -1
- package/dist/plugins/debug/index.d.ts +2 -2
- package/dist/plugins/debug.d.ts +2 -2
- package/dist/plugins/debug.js +2 -2
- package/dist/plugins/debug.js.map +1 -1
- package/dist/plugins/forecasting/index.d.ts +1 -1
- package/dist/plugins/forecasting.js.map +1 -1
- package/dist/plugins/gpu/index.d.ts +2 -2
- package/dist/plugins/gpu.d.ts +2 -2
- package/dist/plugins/gpu.js.map +1 -1
- package/dist/plugins/i18n/index.d.ts +2 -2
- package/dist/plugins/i18n.d.ts +2 -2
- package/dist/plugins/i18n.js.map +1 -1
- package/dist/plugins/index.d.ts +1 -1
- package/dist/plugins/keyboard.d.ts +2 -2
- package/dist/plugins/keyboard.js +65 -5
- package/dist/plugins/keyboard.js.map +1 -1
- package/dist/plugins/latex.js.map +1 -1
- package/dist/plugins/lazy-load.d.ts +2 -2
- package/dist/plugins/loading/index.d.ts +1 -1
- package/dist/plugins/loading.d.ts +2 -2
- package/dist/plugins/ml-integration.d.ts +2 -2
- package/dist/plugins/ml-integration.js +5 -5
- package/dist/plugins/ml-integration.js.map +1 -1
- package/dist/plugins/offscreen.d.ts +2 -2
- package/dist/plugins/pattern-recognition.d.ts +2 -2
- package/dist/plugins/pattern-recognition.js +1 -1
- package/dist/plugins/pattern-recognition.js.map +1 -1
- package/dist/plugins/radar.d.ts +2 -2
- package/dist/plugins/regression.d.ts +2 -2
- package/dist/plugins/regression.js +1 -1
- package/dist/plugins/regression.js.map +1 -1
- package/dist/plugins/roi.js +9 -9
- package/dist/plugins/roi.js.map +1 -1
- package/dist/plugins/snapshot/index.d.ts +1 -1
- package/dist/plugins/snapshot/types.d.ts +1 -1
- package/dist/plugins/snapshot.d.ts +2 -2
- package/dist/plugins/snapshot.js.map +1 -1
- package/dist/plugins/streaming/index.d.ts +2 -2
- package/dist/plugins/streaming.d.ts +2 -2
- package/dist/plugins/sync/index.d.ts +3 -2
- package/dist/plugins/sync.d.ts +2 -2
- package/dist/plugins/sync.js.map +1 -1
- package/dist/plugins/theme-editor/index.d.ts +1 -1
- package/dist/plugins/theme-editor.d.ts +2 -2
- package/dist/plugins/tools/index.d.ts +1 -1
- package/dist/plugins/tools/tooltip/index.d.ts +1 -1
- package/dist/plugins/tools.d.ts +2 -2
- package/dist/plugins/types.d.ts +1 -1
- package/dist/plugins/video-recorder.d.ts +2 -2
- package/dist/plugins/virtualization.d.ts +2 -2
- package/dist/plugins/virtualization.js +1 -1
- package/dist/pool-DZ8shSqv.js +109 -0
- package/dist/pool-DZ8shSqv.js.map +1 -0
- package/dist/react/StackedPlot.d.ts +31 -0
- package/dist/react/VeloPlot.d.ts +29 -0
- package/dist/react/index.d.ts +25 -3
- package/dist/react/useChartSync.d.ts +8 -0
- package/dist/react/useIndicator.d.ts +12 -0
- package/dist/react/useVeloPlot.d.ts +19 -0
- package/dist/react.js +328 -24
- package/dist/react.js.map +1 -1
- package/dist/scientific/index.d.ts +48 -0
- package/dist/scientific.d.ts +1 -0
- package/dist/scientific.js +91 -0
- package/dist/scientific.js.map +1 -0
- package/dist/solid/VeloPlot.d.ts +16 -0
- package/dist/solid/index.d.ts +13 -0
- package/dist/solid/useChartSync.d.ts +6 -0
- package/dist/solid/useIndicator.d.ts +11 -0
- package/dist/solid/useStackedPlot.d.ts +14 -0
- package/dist/solid/useVeloPlot.d.ts +18 -0
- package/dist/solid.d.ts +1 -0
- package/dist/solid.js +172 -0
- package/dist/solid.js.map +1 -0
- package/dist/stackedSync-tnrunZMt.js +100 -0
- package/dist/stackedSync-tnrunZMt.js.map +1 -0
- package/dist/svelte/StackedPlot.svelte +29 -0
- package/dist/svelte/StackedPlot.test.ts +114 -0
- package/dist/svelte/VeloPlot.svelte +44 -0
- package/dist/svelte/VeloPlot.test.ts +105 -0
- package/dist/svelte/index.d.ts +11 -0
- package/dist/svelte/index.test.ts +20 -0
- package/dist/svelte/index.ts +15 -0
- package/dist/svelte/useChartSync.d.ts +8 -0
- package/dist/svelte/useChartSync.test.ts +49 -0
- package/dist/svelte/useChartSync.ts +29 -0
- package/dist/svelte/useIndicator.d.ts +13 -0
- package/dist/svelte/useIndicator.test.ts +67 -0
- package/dist/svelte/useIndicator.ts +43 -0
- package/dist/svelte/useStackedPlot.d.ts +16 -0
- package/dist/svelte/useStackedPlot.test.ts +76 -0
- package/dist/svelte/useStackedPlot.ts +54 -0
- package/dist/svelte/useVeloPlot.d.ts +21 -0
- package/dist/svelte/useVeloPlot.test.ts +100 -0
- package/dist/svelte/useVeloPlot.ts +81 -0
- package/dist/svelte.d.ts +1 -0
- package/dist/svelte.js +143 -0
- package/dist/svelte.js.map +1 -0
- package/dist/testing/index.d.ts +1 -1
- package/dist/theme/index.d.ts +2 -1
- package/dist/trading.js +6 -6
- package/dist/types.d.ts +1 -1
- package/dist/{utils-BK5UUXxj.js → utils-Dx0h0bgQ.js} +9 -9
- package/dist/{utils-BK5UUXxj.js.map → utils-Dx0h0bgQ.js.map} +1 -1
- package/dist/velo-plot.full.js +452 -443
- package/dist/velo-plot.full.js.map +1 -1
- package/dist/velo-plot.js +15 -15
- package/dist/vue/StackedPlot.vue.d.ts +48 -0
- package/dist/vue/VeloPlot.vue.d.ts +64 -0
- package/dist/vue/index.d.ts +250 -0
- package/dist/vue/useChartSync.d.ts +52 -0
- package/dist/vue/useIndicator.d.ts +23 -0
- package/dist/vue/useStackedPlot.d.ts +15 -0
- package/dist/vue/useVeloPlot.d.ts +20 -0
- package/dist/vue.d.ts +1 -0
- package/dist/vue.js +312 -0
- package/dist/vue.js.map +1 -0
- package/dist/workers/indicatorsAsync.d.ts +2 -0
- package/dist/workers/pool.d.ts +9 -0
- package/package.json +88 -10
- package/dist/ChartCore-ivzLqxVb.js.map +0 -1
- package/dist/SciPlot-CEU4ApgD.js +0 -463
- package/dist/SciPlot-CEU4ApgD.js.map +0 -1
- package/dist/createStackedChart-DxNW0VkF.js +0 -705
- package/dist/createStackedChart-DxNW0VkF.js.map +0 -1
- package/dist/index-BBpJwOct.js.map +0 -1
- package/dist/index-DoYxf1cV.js.map +0 -1
- package/dist/index.core-COREBDNq.js.map +0 -1
- package/dist/mockDatafeed-927foCM4.js.map +0 -1
- package/dist/pool-15HMCNv8.js +0 -88
- package/dist/pool-15HMCNv8.js.map +0 -1
- package/dist/react/SciPlot.d.ts +0 -60
- package/dist/react/useSciPlot.d.ts +0 -56
package/dist/pool-15HMCNv8.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
var c = Object.defineProperty;
|
|
2
|
-
var l = (o, e, r) => e in o ? c(o, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : o[e] = r;
|
|
3
|
-
var n = (o, e, r) => l(o, typeof e != "symbol" ? e + "" : e, r);
|
|
4
|
-
class d {
|
|
5
|
-
constructor(e, r = {}) {
|
|
6
|
-
n(this, "workers", []);
|
|
7
|
-
n(this, "pending", /* @__PURE__ */ new Map());
|
|
8
|
-
n(this, "nextWorker", 0);
|
|
9
|
-
n(this, "poolSize");
|
|
10
|
-
n(this, "syncFallback");
|
|
11
|
-
n(this, "workerFactory");
|
|
12
|
-
n(this, "syncHandler");
|
|
13
|
-
n(this, "destroyed", !1);
|
|
14
|
-
if (this.workerFactory = e, this.poolSize = r.poolSize ?? 2, this.syncFallback = r.syncFallback ?? !0, this.syncHandler = r.syncHandler, typeof Worker < "u")
|
|
15
|
-
for (let s = 0; s < this.poolSize; s++)
|
|
16
|
-
this.spawnWorker();
|
|
17
|
-
}
|
|
18
|
-
removeWorker(e) {
|
|
19
|
-
const r = this.workers.indexOf(e);
|
|
20
|
-
r >= 0 && this.workers.splice(r, 1), e.terminate();
|
|
21
|
-
}
|
|
22
|
-
workerErrorMessage(e) {
|
|
23
|
-
const r = e;
|
|
24
|
-
return typeof r.message == "string" && r.message ? r.message : "Worker error";
|
|
25
|
-
}
|
|
26
|
-
rejectPendingWithSyncFallback(e, r) {
|
|
27
|
-
this.removeWorker(e);
|
|
28
|
-
const s = this.workerErrorMessage(r), t = [...this.pending.entries()];
|
|
29
|
-
this.pending.clear();
|
|
30
|
-
for (const [, i] of t) {
|
|
31
|
-
if (this.syncFallback && this.syncHandler) {
|
|
32
|
-
Promise.resolve(this.syncHandler(i.task)).then(i.resolve).catch(i.reject);
|
|
33
|
-
continue;
|
|
34
|
-
}
|
|
35
|
-
i.reject(new Error(s));
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
spawnWorker() {
|
|
39
|
-
const e = this.workerFactory();
|
|
40
|
-
e.onmessage = (r) => {
|
|
41
|
-
const s = r.data;
|
|
42
|
-
if (!(s != null && s.id)) return;
|
|
43
|
-
const t = this.pending.get(s.id);
|
|
44
|
-
if (t) {
|
|
45
|
-
if (this.pending.delete(s.id), s.type === "error" || s.error) {
|
|
46
|
-
if (this.syncFallback && this.syncHandler) {
|
|
47
|
-
Promise.resolve(this.syncHandler(t.task)).then(t.resolve).catch(t.reject);
|
|
48
|
-
return;
|
|
49
|
-
}
|
|
50
|
-
t.reject(new Error(s.error ?? "Worker task failed"));
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
t.resolve(s);
|
|
54
|
-
}
|
|
55
|
-
}, e.onerror = (r) => {
|
|
56
|
-
this.rejectPendingWithSyncFallback(e, r);
|
|
57
|
-
}, this.workers.push(e);
|
|
58
|
-
}
|
|
59
|
-
/** Dispatch a task to the pool. Falls back to syncHandler when no workers exist. */
|
|
60
|
-
run(e) {
|
|
61
|
-
return this.destroyed ? Promise.reject(new Error("WorkerPool destroyed")) : this.workers.length === 0 ? this.syncFallback && this.syncHandler ? Promise.resolve(this.syncHandler(e)) : Promise.reject(new Error("No workers available and sync fallback disabled")) : new Promise((r, s) => {
|
|
62
|
-
this.pending.set(e.id, { resolve: r, reject: s, task: e });
|
|
63
|
-
const t = this.nextWorker;
|
|
64
|
-
this.nextWorker = (this.nextWorker + 1) % this.workers.length, this.workers[t].postMessage(e);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
size() {
|
|
68
|
-
return this.workers.length;
|
|
69
|
-
}
|
|
70
|
-
pendingCount() {
|
|
71
|
-
return this.pending.size;
|
|
72
|
-
}
|
|
73
|
-
destroy() {
|
|
74
|
-
this.destroyed = !0;
|
|
75
|
-
for (const e of this.workers)
|
|
76
|
-
e.terminate();
|
|
77
|
-
this.workers = [], this.pending.clear();
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
let a = 0;
|
|
81
|
-
function k(o = "task") {
|
|
82
|
-
return a += 1, `${o}-${a}-${Date.now()}`;
|
|
83
|
-
}
|
|
84
|
-
export {
|
|
85
|
-
d as W,
|
|
86
|
-
k as n
|
|
87
|
-
};
|
|
88
|
-
//# sourceMappingURL=pool-15HMCNv8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pool-15HMCNv8.js","sources":["../src/workers/pool.ts"],"sourcesContent":["/**\n * Generic worker pool with round-robin dispatch and sync fallback.\n * @module workers/pool\n */\n\nexport interface WorkerPoolOptions {\n /** Number of workers (default: 2) */\n poolSize?: number;\n /** Run tasks on main thread when Worker is unavailable */\n syncFallback?: boolean;\n}\n\nexport class WorkerPool<TMessage extends { id: string }, TResult = unknown> {\n private workers: Worker[] = [];\n private pending = new Map<\n string,\n {\n resolve: (value: TResult) => void;\n reject: (error: Error) => void;\n task: TMessage;\n }\n >();\n private nextWorker = 0;\n private readonly poolSize: number;\n private readonly syncFallback: boolean;\n private readonly workerFactory: () => Worker;\n private readonly syncHandler?: (task: TMessage) => TResult | Promise<TResult>;\n private destroyed = false;\n\n constructor(\n workerFactory: () => Worker,\n options: WorkerPoolOptions & {\n syncHandler?: (task: TMessage) => TResult | Promise<TResult>;\n } = {},\n ) {\n this.workerFactory = workerFactory;\n this.poolSize = options.poolSize ?? 2;\n this.syncFallback = options.syncFallback ?? true;\n this.syncHandler = options.syncHandler;\n\n if (typeof Worker !== \"undefined\") {\n for (let i = 0; i < this.poolSize; i++) {\n this.spawnWorker();\n }\n }\n }\n\n private removeWorker(worker: Worker): void {\n const index = this.workers.indexOf(worker);\n if (index >= 0) this.workers.splice(index, 1);\n worker.terminate();\n }\n\n private workerErrorMessage(event: Event): string {\n const maybe = event as { message?: string };\n if (typeof maybe.message === \"string\" && maybe.message) return maybe.message;\n return \"Worker error\";\n }\n\n private rejectPendingWithSyncFallback(failedWorker: Worker, event: Event): void {\n this.removeWorker(failedWorker);\n const message = this.workerErrorMessage(event);\n const entries = [...this.pending.entries()];\n this.pending.clear();\n\n for (const [, entry] of entries) {\n if (this.syncFallback && this.syncHandler) {\n Promise.resolve(this.syncHandler(entry.task)).then(entry.resolve).catch(entry.reject);\n continue;\n }\n entry.reject(new Error(message));\n }\n }\n\n private spawnWorker(): void {\n const worker = this.workerFactory();\n worker.onmessage = (event: MessageEvent) => {\n const data = event.data as { id?: string; type?: string; error?: string };\n if (!data?.id) return;\n\n const task = this.pending.get(data.id);\n if (!task) return;\n\n this.pending.delete(data.id);\n\n if (data.type === \"error\" || data.error) {\n if (this.syncFallback && this.syncHandler) {\n Promise.resolve(this.syncHandler(task.task)).then(task.resolve).catch(task.reject);\n return;\n }\n task.reject(new Error(data.error ?? \"Worker task failed\"));\n return;\n }\n\n task.resolve(data as TResult);\n };\n\n worker.onerror = (event) => {\n this.rejectPendingWithSyncFallback(worker, event);\n };\n\n this.workers.push(worker);\n }\n\n /** Dispatch a task to the pool. Falls back to syncHandler when no workers exist. */\n run(task: TMessage): Promise<TResult> {\n if (this.destroyed) {\n return Promise.reject(new Error(\"WorkerPool destroyed\"));\n }\n\n if (this.workers.length === 0) {\n if (this.syncFallback && this.syncHandler) {\n return Promise.resolve(this.syncHandler(task));\n }\n return Promise.reject(new Error(\"No workers available and sync fallback disabled\"));\n }\n\n return new Promise((resolve, reject) => {\n this.pending.set(task.id, { resolve, reject, task });\n const workerIndex = this.nextWorker;\n this.nextWorker = (this.nextWorker + 1) % this.workers.length;\n this.workers[workerIndex].postMessage(task);\n });\n }\n\n size(): number {\n return this.workers.length;\n }\n\n pendingCount(): number {\n return this.pending.size;\n }\n\n destroy(): void {\n this.destroyed = true;\n for (const worker of this.workers) {\n worker.terminate();\n }\n this.workers = [];\n this.pending.clear();\n }\n}\n\nlet taskCounter = 0;\n\n/** Generate a unique task id */\nexport function nextTaskId(prefix = \"task\"): string {\n taskCounter += 1;\n return `${prefix}-${taskCounter}-${Date.now()}`;\n}\n"],"names":["WorkerPool","workerFactory","options","__publicField","i","worker","index","event","maybe","failedWorker","message","entries","entry","data","task","resolve","reject","workerIndex","taskCounter","nextTaskId","prefix"],"mappings":"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"}
|
package/dist/react/SciPlot.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { CSSProperties } from 'react';
|
|
2
|
-
import { UseSciPlotOptions } from './useSciPlot';
|
|
3
|
-
import { ZoomOptions, CursorOptions, Bounds } from '../types';
|
|
4
|
-
import { Chart } from '../core/Chart';
|
|
5
|
-
|
|
6
|
-
export interface SciPlotSeries {
|
|
7
|
-
id: string;
|
|
8
|
-
x: Float32Array | Float64Array;
|
|
9
|
-
y: Float32Array | Float64Array;
|
|
10
|
-
color?: string;
|
|
11
|
-
width?: number;
|
|
12
|
-
visible?: boolean;
|
|
13
|
-
}
|
|
14
|
-
export interface SciPlotProps extends UseSciPlotOptions {
|
|
15
|
-
/** Series data to display */
|
|
16
|
-
series?: SciPlotSeries[];
|
|
17
|
-
/** Zoom state (controlled) */
|
|
18
|
-
zoom?: ZoomOptions;
|
|
19
|
-
/** Callback when zoom changes */
|
|
20
|
-
onZoomChange?: (bounds: Bounds) => void;
|
|
21
|
-
/** Cursor configuration */
|
|
22
|
-
cursor?: CursorOptions;
|
|
23
|
-
/** Container width */
|
|
24
|
-
width?: number | string;
|
|
25
|
-
/** Container height */
|
|
26
|
-
height?: number | string;
|
|
27
|
-
/** Additional class name */
|
|
28
|
-
className?: string;
|
|
29
|
-
/** Additional styles */
|
|
30
|
-
style?: CSSProperties;
|
|
31
|
-
/** Debug mode - shows FPS counter */
|
|
32
|
-
debug?: boolean;
|
|
33
|
-
}
|
|
34
|
-
export interface SciPlotRef {
|
|
35
|
-
/** Get the chart instance */
|
|
36
|
-
getChart: () => Chart | null;
|
|
37
|
-
/** Reset zoom to show all data */
|
|
38
|
-
resetZoom: () => void;
|
|
39
|
-
/** Get current bounds */
|
|
40
|
-
getBounds: () => Bounds | null;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* SciPlot React Component
|
|
44
|
-
*
|
|
45
|
-
* @example
|
|
46
|
-
* ```tsx
|
|
47
|
-
* <SciPlot
|
|
48
|
-
* series={[
|
|
49
|
-
* { id: 'cv-1', x: potentialData, y: currentData, color: '#ff0055' }
|
|
50
|
-
* ]}
|
|
51
|
-
* xAxis={{ label: 'E / V' }}
|
|
52
|
-
* yAxis={{ label: 'I / A' }}
|
|
53
|
-
* height={400}
|
|
54
|
-
* cursor={{ enabled: true, snap: true }}
|
|
55
|
-
* onZoomChange={(bounds) => console.log('Zoom:', bounds)}
|
|
56
|
-
* />
|
|
57
|
-
* ```
|
|
58
|
-
*/
|
|
59
|
-
export declare const SciPlot: import('react').ForwardRefExoticComponent<SciPlotProps & import('react').RefAttributes<SciPlotRef>>;
|
|
60
|
-
export default SciPlot;
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import { RefObject } from 'react';
|
|
2
|
-
import { Chart, ChartOptions } from '../core/Chart';
|
|
3
|
-
import { SeriesOptions, SeriesUpdateData, ZoomOptions, Bounds } from '../types';
|
|
4
|
-
|
|
5
|
-
export interface UseSciPlotOptions extends Omit<ChartOptions, "container"> {
|
|
6
|
-
/** Auto-resize on container changes */
|
|
7
|
-
autoResize?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface UseSciPlotReturn {
|
|
10
|
-
/** Chart instance (null until initialized) */
|
|
11
|
-
chart: Chart | null;
|
|
12
|
-
/** Whether the chart is ready */
|
|
13
|
-
isReady: boolean;
|
|
14
|
-
/** Error during initialization */
|
|
15
|
-
error: Error | null;
|
|
16
|
-
/** Current view bounds */
|
|
17
|
-
bounds: Bounds | null;
|
|
18
|
-
/** Add a series */
|
|
19
|
-
addSeries: (options: SeriesOptions) => void;
|
|
20
|
-
/** Update series data */
|
|
21
|
-
updateSeries: (id: string, data: SeriesUpdateData) => void;
|
|
22
|
-
/** Remove a series */
|
|
23
|
-
removeSeries: (id: string) => void;
|
|
24
|
-
/** Set zoom range */
|
|
25
|
-
zoom: (options: ZoomOptions) => void;
|
|
26
|
-
/** Reset zoom to show all data */
|
|
27
|
-
resetZoom: () => void;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* React hook for using Sci Plot
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* ```tsx
|
|
34
|
-
* function MyChart() {
|
|
35
|
-
* const canvasRef = useRef<HTMLCanvasElement>(null);
|
|
36
|
-
* const { chart, isReady, addSeries, zoom } = useSciPlot(canvasRef, {
|
|
37
|
-
* xAxis: { label: 'E / V' },
|
|
38
|
-
* yAxis: { label: 'I / A' }
|
|
39
|
-
* });
|
|
40
|
-
*
|
|
41
|
-
* useEffect(() => {
|
|
42
|
-
* if (isReady) {
|
|
43
|
-
* addSeries({
|
|
44
|
-
* id: 'cv-1',
|
|
45
|
-
* type: 'line',
|
|
46
|
-
* data: { x: xData, y: yData },
|
|
47
|
-
* style: { color: '#ff0055' }
|
|
48
|
-
* });
|
|
49
|
-
* }
|
|
50
|
-
* }, [isReady]);
|
|
51
|
-
*
|
|
52
|
-
* return <canvas ref={canvasRef} />;
|
|
53
|
-
* }
|
|
54
|
-
* ```
|
|
55
|
-
*/
|
|
56
|
-
export declare function useSciPlot(containerRef: RefObject<HTMLDivElement>, options?: UseSciPlotOptions): UseSciPlotReturn;
|