@forgecharts/sdk 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/DrawingManager.d.ts +1 -1
- package/dist/api/DrawingManager.d.ts.map +1 -1
- package/dist/api/LayoutManager.d.ts +2 -1
- package/dist/api/LayoutManager.d.ts.map +1 -1
- package/dist/api/ReferenceAPI.d.ts +5 -0
- package/dist/api/ReferenceAPI.d.ts.map +1 -1
- package/dist/api/TChart.d.ts +40 -0
- package/dist/api/TChart.d.ts.map +1 -1
- package/dist/api/drawing tools/fib gann menu/fibChannel.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibChannel.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibCircles.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibCircles.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibRetracement.d.ts.map +1 -1
- package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceArcs.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceArcs.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceFan.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibSpeedResistanceFan.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibSpiral.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibSpiral.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibTimeZone.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibTimeZone.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/fibWedge.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/fibWedge.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/gannBox.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/gannBox.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/gannFan.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/gannFan.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/gannSquare.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/gannSquare.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/gannSquareFixed.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/gannSquareFixed.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/pitchfan.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/pitchfan.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/trendBasedFibExtension.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/trendBasedFibExtension.d.ts.map +1 -0
- package/dist/api/drawing tools/fib gann menu/trendBasedFibTime.d.ts +4 -0
- package/dist/api/drawing tools/fib gann menu/trendBasedFibTime.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/anchoredText.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/anchoredText.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/arc.d.ts +8 -0
- package/dist/api/drawing tools/shapes menu/arc.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/arrow.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/arrow.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/arrowDown.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/arrowDown.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/arrowUp.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/arrowUp.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/callout.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/callout.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/dateRange.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/dateRange.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/ellipse.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/ellipse.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/longPosition.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/longPosition.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/priceLabel.d.ts +7 -0
- package/dist/api/drawing tools/shapes menu/priceLabel.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/priceRange.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/priceRange.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/shortPosition.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/shortPosition.d.ts.map +1 -0
- package/dist/api/drawing tools/shapes menu/triangle.d.ts +4 -0
- package/dist/api/drawing tools/shapes menu/triangle.d.ts.map +1 -0
- package/dist/core/Chart.d.ts +21 -2
- package/dist/core/Chart.d.ts.map +1 -1
- package/dist/core/CoordTransform.d.ts.map +1 -1
- package/dist/core/Crosshair.d.ts +2 -0
- package/dist/core/Crosshair.d.ts.map +1 -1
- package/dist/core/InteractionManager.d.ts +36 -2
- package/dist/core/InteractionManager.d.ts.map +1 -1
- package/dist/core/PriceScale.d.ts +2 -0
- package/dist/core/PriceScale.d.ts.map +1 -1
- package/dist/core/TimeScale.d.ts +52 -1
- package/dist/core/TimeScale.d.ts.map +1 -1
- package/dist/datafeed/DatafeedConnector.d.ts +4 -0
- package/dist/datafeed/DatafeedConnector.d.ts.map +1 -1
- package/dist/forgecharts.css +1938 -111
- package/dist/forgescript/ast.d.ts +71 -4
- package/dist/forgescript/ast.d.ts.map +1 -1
- package/dist/forgescript/builtins/collections.d.ts +56 -0
- package/dist/forgescript/builtins/collections.d.ts.map +1 -0
- package/dist/forgescript/builtins/drawing.d.ts +57 -0
- package/dist/forgescript/builtins/drawing.d.ts.map +1 -0
- package/dist/forgescript/builtins/udt.d.ts +30 -0
- package/dist/forgescript/builtins/udt.d.ts.map +1 -0
- package/dist/forgescript/conversion/index.d.ts +16 -9
- package/dist/forgescript/conversion/index.d.ts.map +1 -1
- package/dist/forgescript/conversion/types.d.ts +10 -54
- package/dist/forgescript/conversion/types.d.ts.map +1 -1
- package/dist/forgescript/conversion/validation.d.ts.map +1 -1
- package/dist/forgescript/datasets/DatasetStore.d.ts +65 -0
- package/dist/forgescript/datasets/DatasetStore.d.ts.map +1 -0
- package/dist/forgescript/datasets/parseDataset.d.ts +32 -0
- package/dist/forgescript/datasets/parseDataset.d.ts.map +1 -0
- package/dist/forgescript/parser.d.ts +19 -1
- package/dist/forgescript/parser.d.ts.map +1 -1
- package/dist/forgescript/runtime.d.ts +119 -104
- package/dist/forgescript/runtime.d.ts.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12034 -6683
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +13494 -8884
- package/dist/internal.js.map +1 -1
- package/dist/licensing/licenseTypes.d.ts +1 -0
- package/dist/licensing/licenseTypes.d.ts.map +1 -1
- package/dist/pixi/PixiBenchmark.d.ts +56 -0
- package/dist/pixi/PixiBenchmark.d.ts.map +1 -0
- package/dist/pixi/PixiCandlestickRenderer.d.ts +5 -6
- package/dist/pixi/PixiCandlestickRenderer.d.ts.map +1 -1
- package/dist/pixi/PixiChart.d.ts +100 -2
- package/dist/pixi/PixiChart.d.ts.map +1 -1
- package/dist/pixi/PixiCrosshairRenderer.d.ts +10 -0
- package/dist/pixi/PixiCrosshairRenderer.d.ts.map +1 -1
- package/dist/pixi/PixiDrawingRenderer.d.ts +17 -5
- package/dist/pixi/PixiDrawingRenderer.d.ts.map +1 -1
- package/dist/pixi/PixiGridRenderer.d.ts +16 -2
- package/dist/pixi/PixiGridRenderer.d.ts.map +1 -1
- package/dist/pixi/PixiHistogramRenderer.d.ts +17 -0
- package/dist/pixi/PixiHistogramRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiIndicatorRenderer.d.ts +31 -0
- package/dist/pixi/PixiIndicatorRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiLastPriceRenderer.d.ts +33 -0
- package/dist/pixi/PixiLastPriceRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiLayerManager.d.ts.map +1 -1
- package/dist/pixi/PixiLineRenderer.d.ts +19 -0
- package/dist/pixi/PixiLineRenderer.d.ts.map +1 -0
- package/dist/pixi/PixiTradingRenderer.d.ts +46 -0
- package/dist/pixi/PixiTradingRenderer.d.ts.map +1 -0
- package/dist/react/agent/AgentFAB.d.ts +20 -0
- package/dist/react/agent/AgentFAB.d.ts.map +1 -0
- package/dist/react/agent/AgentProvider.d.ts +15 -0
- package/dist/react/agent/AgentProvider.d.ts.map +1 -0
- package/dist/react/agent/AgentUIBus.d.ts +111 -0
- package/dist/react/agent/AgentUIBus.d.ts.map +1 -0
- package/dist/react/agent/AssistantPanel.d.ts +12 -0
- package/dist/react/agent/AssistantPanel.d.ts.map +1 -0
- package/dist/react/agent/CommandDispatcher.d.ts +77 -0
- package/dist/react/agent/CommandDispatcher.d.ts.map +1 -0
- package/dist/react/agent/VoiceInput.d.ts +36 -0
- package/dist/react/agent/VoiceInput.d.ts.map +1 -0
- package/dist/react/agent/index.d.ts +18 -0
- package/dist/react/agent/index.d.ts.map +1 -0
- package/dist/react/agent/useAgent.d.ts +81 -0
- package/dist/react/agent/useAgent.d.ts.map +1 -0
- package/dist/react/canvas/ChartCanvas.d.ts +45 -0
- package/dist/react/canvas/ChartCanvas.d.ts.map +1 -1
- package/dist/react/canvas/ChartSettingsDialog.d.ts +80 -2
- package/dist/react/canvas/ChartSettingsDialog.d.ts.map +1 -1
- package/dist/react/canvas/ContractSwitchDialog.d.ts +22 -0
- package/dist/react/canvas/ContractSwitchDialog.d.ts.map +1 -0
- package/dist/react/canvas/DrawingPropertiesDialog.d.ts +23 -0
- package/dist/react/canvas/DrawingPropertiesDialog.d.ts.map +1 -0
- package/dist/react/canvas/IndicatorPane.d.ts.map +1 -1
- package/dist/react/canvas/PointerOverlay.d.ts +6 -3
- package/dist/react/canvas/PointerOverlay.d.ts.map +1 -1
- package/dist/react/canvas/PositionPropertiesDialog.d.ts +22 -0
- package/dist/react/canvas/PositionPropertiesDialog.d.ts.map +1 -0
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts +6 -1
- package/dist/react/canvas/toolbars/LeftToolbar.d.ts.map +1 -1
- package/dist/react/hooks/useBrokerEvents.d.ts +9 -0
- package/dist/react/hooks/useBrokerEvents.d.ts.map +1 -1
- package/dist/react/hooks/usePanelDrag.d.ts +2 -0
- package/dist/react/hooks/usePanelDrag.d.ts.map +1 -0
- package/dist/react/index.d.ts +3 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +16158 -4468
- package/dist/react/index.js.map +1 -1
- package/dist/react/internal.js +23373 -10757
- package/dist/react/internal.js.map +1 -1
- package/dist/react/shell/DatasetImportPanel.d.ts +2 -0
- package/dist/react/shell/DatasetImportPanel.d.ts.map +1 -0
- package/dist/react/shell/DatasetManagerDrawer.d.ts +10 -0
- package/dist/react/shell/DatasetManagerDrawer.d.ts.map +1 -0
- package/dist/react/shell/DocsEditor.d.ts +10 -0
- package/dist/react/shell/DocsEditor.d.ts.map +1 -0
- package/dist/react/shell/ManagedAppShell.d.ts +27 -0
- package/dist/react/shell/ManagedAppShell.d.ts.map +1 -1
- package/dist/react/shell/OrderEntryPanel.d.ts +6 -1
- package/dist/react/shell/OrderEntryPanel.d.ts.map +1 -1
- package/dist/react/shell/ScriptDrawer.d.ts.map +1 -1
- package/dist/react/shell/ScriptSettings.d.ts +20 -0
- package/dist/react/shell/ScriptSettings.d.ts.map +1 -0
- package/dist/react/shell/TradeDrawer.d.ts.map +1 -1
- package/dist/react/shell/WatchlistDrawer.d.ts.map +1 -1
- package/dist/react/workspace/BottomTradingPanel.d.ts +75 -0
- package/dist/react/workspace/BottomTradingPanel.d.ts.map +1 -0
- package/dist/react/workspace/ChartWorkspace.d.ts +35 -1
- package/dist/react/workspace/ChartWorkspace.d.ts.map +1 -1
- package/dist/react/workspace/IndicatorsDialog.d.ts +5 -1
- package/dist/react/workspace/IndicatorsDialog.d.ts.map +1 -1
- package/dist/react/workspace/SymbolSearchDialog.d.ts.map +1 -1
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts +3 -1
- package/dist/react/workspace/toolbars/BottomToolbar.d.ts.map +1 -1
- package/dist/react/workspace/toolbars/RightToolbar.d.ts +5 -1
- package/dist/react/workspace/toolbars/RightToolbar.d.ts.map +1 -1
- package/dist/react/workspace/toolbars/TopToolbar.d.ts +20 -1
- package/dist/react/workspace/toolbars/TopToolbar.d.ts.map +1 -1
- package/dist/renderers/CandlestickRenderer.d.ts.map +1 -1
- package/dist/theme/colors.d.ts.map +1 -1
- package/dist/trading/UnmanagedIngestion.d.ts +39 -12
- package/dist/trading/UnmanagedIngestion.d.ts.map +1 -1
- package/dist/trading/tradingTypes.d.ts +11 -2
- package/dist/trading/tradingTypes.d.ts.map +1 -1
- package/dist/types/ChartBackend.d.ts +61 -0
- package/dist/types/ChartBackend.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/forgescript/__tests__/ai-response-parser.test.d.ts +0 -2
- package/dist/forgescript/__tests__/ai-response-parser.test.d.ts.map +0 -1
- package/dist/forgescript/__tests__/orchestrator.test.d.ts +0 -2
- package/dist/forgescript/__tests__/orchestrator.test.d.ts.map +0 -1
- package/dist/forgescript/__tests__/pine-transpiler.test.d.ts +0 -2
- package/dist/forgescript/__tests__/pine-transpiler.test.d.ts.map +0 -1
- package/dist/forgescript/conversion/ai-conversion-agent.d.ts +0 -41
- package/dist/forgescript/conversion/ai-conversion-agent.d.ts.map +0 -1
- package/dist/forgescript/conversion/conversion-orchestrator.d.ts +0 -44
- package/dist/forgescript/conversion/conversion-orchestrator.d.ts.map +0 -1
- package/dist/forgescript/conversion/prompts/index.d.ts +0 -17
- package/dist/forgescript/conversion/prompts/index.d.ts.map +0 -1
- package/dist/forgescript/pine/PineCompiler.d.ts +0 -38
- package/dist/forgescript/pine/PineCompiler.d.ts.map +0 -1
- package/dist/forgescript/pine/diagnostics.d.ts +0 -20
- package/dist/forgescript/pine/diagnostics.d.ts.map +0 -1
- package/dist/forgescript/pine/index.d.ts +0 -8
- package/dist/forgescript/pine/index.d.ts.map +0 -1
- package/dist/forgescript/pine/pine-ast.d.ts +0 -190
- package/dist/forgescript/pine/pine-ast.d.ts.map +0 -1
- package/dist/forgescript/pine/pine-lexer.d.ts +0 -41
- package/dist/forgescript/pine/pine-lexer.d.ts.map +0 -1
- package/dist/forgescript/pine/pine-parser.d.ts +0 -108
- package/dist/forgescript/pine/pine-parser.d.ts.map +0 -1
- package/dist/forgescript/pine/pine-transpiler.d.ts +0 -40
- package/dist/forgescript/pine/pine-transpiler.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"licenseTypes.d.ts","sourceRoot":"","sources":["../../src/licensing/licenseTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAE7D,qEAAqE;AACrE,QAAA,MAAM,aAAa,kBAA2C,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"licenseTypes.d.ts","sourceRoot":"","sources":["../../src/licensing/licenseTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAE7D,qEAAqE;AACrE,QAAA,MAAM,aAAa,kBAA2C,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PixiBenchmark — lightweight performance measurement utility for PixiJS chart.
|
|
3
|
+
*
|
|
4
|
+
* Hooks into a PixiJS `Ticker` and collects FPS, frame time, and memory stats.
|
|
5
|
+
* Call `start()` to begin sampling and `stop()` to get a {@link BenchmarkReport}.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```ts
|
|
9
|
+
* const bench = new PixiBenchmark(pixiChart.app.ticker);
|
|
10
|
+
* bench.start();
|
|
11
|
+
* // … render 60 s worth of frames …
|
|
12
|
+
* const report = bench.stop();
|
|
13
|
+
* console.table(report);
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
import type { Ticker } from 'pixi.js';
|
|
17
|
+
export interface BenchmarkReport {
|
|
18
|
+
/** Total frames sampled. */
|
|
19
|
+
frames: number;
|
|
20
|
+
/** Wall-clock duration of the sample window (ms). */
|
|
21
|
+
durationMs: number;
|
|
22
|
+
/** Average FPS. */
|
|
23
|
+
avgFps: number;
|
|
24
|
+
/** Minimum instantaneous FPS during the window. */
|
|
25
|
+
minFps: number;
|
|
26
|
+
/** Maximum instantaneous FPS during the window. */
|
|
27
|
+
maxFps: number;
|
|
28
|
+
/** Average frame time in milliseconds. */
|
|
29
|
+
avgFrameMs: number;
|
|
30
|
+
/** 99th-percentile frame time (ms). */
|
|
31
|
+
p99FrameMs: number;
|
|
32
|
+
/** 95th-percentile frame time (ms). */
|
|
33
|
+
p95FrameMs: number;
|
|
34
|
+
/** Percentage of frames that exceeded 16.67 ms (missed 60 fps target). */
|
|
35
|
+
droppedFramePct: number;
|
|
36
|
+
/** JS heap size at end of sample (bytes, Chrome only — 0 elsewhere). */
|
|
37
|
+
jsHeapUsed: number;
|
|
38
|
+
/** JS heap limit (bytes, Chrome only — 0 elsewhere). */
|
|
39
|
+
jsHeapLimit: number;
|
|
40
|
+
}
|
|
41
|
+
export declare class PixiBenchmark {
|
|
42
|
+
private readonly _ticker;
|
|
43
|
+
private _frameTimes;
|
|
44
|
+
private _startMs;
|
|
45
|
+
private _running;
|
|
46
|
+
private _tickerFn;
|
|
47
|
+
private _lastMs;
|
|
48
|
+
constructor(ticker: Ticker);
|
|
49
|
+
/** Begin sampling frame times. Any previous data is discarded. */
|
|
50
|
+
start(): void;
|
|
51
|
+
/** Stop sampling and return the collected report. */
|
|
52
|
+
stop(): BenchmarkReport;
|
|
53
|
+
/** Whether the benchmark is currently sampling. */
|
|
54
|
+
get running(): boolean;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=PixiBenchmark.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiBenchmark.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiBenchmark.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,OAAO,CAAK;gBAER,MAAM,EAAE,MAAM;IAI1B,kEAAkE;IAClE,KAAK,IAAI,IAAI;IAeb,qDAAqD;IACrD,IAAI,IAAI,eAAe;IAkDvB,mDAAmD;IACnD,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Container } from 'pixi.js';
|
|
2
|
-
import type { OHLCV } from '@forgecharts/types';
|
|
2
|
+
import type { OHLCV, SeriesOptions } from '@forgecharts/types';
|
|
3
3
|
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
4
|
/**
|
|
5
5
|
* PixiCandlestickRenderer — renders OHLCV data as GPU-batched candlesticks.
|
|
@@ -9,15 +9,14 @@ import type { CoordTransform } from '../core/CoordTransform';
|
|
|
9
9
|
* high-performance rendering of large datasets.
|
|
10
10
|
*/
|
|
11
11
|
export declare class PixiCandlestickRenderer {
|
|
12
|
-
private readonly _upColor;
|
|
13
|
-
private readonly _downColor;
|
|
14
12
|
private readonly _gfx;
|
|
15
|
-
constructor(layer: Container
|
|
16
|
-
draw(bars: readonly OHLCV[], transform: CoordTransform): void;
|
|
13
|
+
constructor(layer: Container);
|
|
14
|
+
draw(bars: readonly OHLCV[], transform: CoordTransform, opts?: SeriesOptions): void;
|
|
17
15
|
/**
|
|
18
16
|
* Converts OHLCV bars to Heikin-Ashi values before drawing.
|
|
19
17
|
*/
|
|
20
|
-
drawHeikinAshi(bars: readonly OHLCV[], transform: CoordTransform): void;
|
|
18
|
+
drawHeikinAshi(bars: readonly OHLCV[], transform: CoordTransform, opts?: SeriesOptions): void;
|
|
19
|
+
destroy(): void;
|
|
21
20
|
private _toHeikinAshi;
|
|
22
21
|
}
|
|
23
22
|
//# sourceMappingURL=PixiCandlestickRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixiCandlestickRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCandlestickRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"PixiCandlestickRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCandlestickRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAe7D;;;;;;GAMG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,KAAK,EAAE,SAAS;IAK5B,IAAI,CACF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,EACzB,IAAI,CAAC,EAAE,aAAa,GACnB,IAAI;IAsJP;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI;IAI7F,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,aAAa;CAkBtB"}
|
package/dist/pixi/PixiChart.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
import type { ChartOptions, Drawing } from '@forgecharts/types';
|
|
1
|
+
import type { ChartOptions, Drawing, DrawingType, OHLCV, Viewport, IndicatorInstance, PaneDescriptor } from '@forgecharts/types';
|
|
2
2
|
import type { IChart, IChartPlugin } from '../types/IChart';
|
|
3
|
+
import type { ChartBackend } from '../types/ChartBackend';
|
|
4
|
+
import type { ChartOrder, ChartPosition } from '../trading/tradingTypes';
|
|
5
|
+
import type { DAGResult } from '../api/IndicatorDAG';
|
|
6
|
+
import { DrawingManager } from '../api/DrawingManager';
|
|
3
7
|
import type { ISeries } from '../types/ISeries';
|
|
4
8
|
import { CoordTransform } from '../core/CoordTransform';
|
|
9
|
+
import { PixiBenchmark } from './PixiBenchmark';
|
|
5
10
|
/**
|
|
6
11
|
* PixiChart — GPU-accelerated chart engine built on PixiJS v8.
|
|
7
12
|
*
|
|
@@ -25,7 +30,7 @@ import { CoordTransform } from '../core/CoordTransform';
|
|
|
25
30
|
* const { x, y } = chart.transform().toPixel(bar.time, bar.close);
|
|
26
31
|
* ```
|
|
27
32
|
*/
|
|
28
|
-
export declare class PixiChart implements
|
|
33
|
+
export declare class PixiChart implements ChartBackend {
|
|
29
34
|
private readonly _app;
|
|
30
35
|
private readonly _stage;
|
|
31
36
|
private readonly _container;
|
|
@@ -37,15 +42,65 @@ export declare class PixiChart implements IChart {
|
|
|
37
42
|
private readonly _layers;
|
|
38
43
|
private readonly _gridRenderer;
|
|
39
44
|
private readonly _candleRenderer;
|
|
45
|
+
private readonly _lineRenderer;
|
|
46
|
+
private readonly _histogramRenderer;
|
|
40
47
|
private readonly _crosshairRenderer;
|
|
41
48
|
private readonly _drawingRenderer;
|
|
49
|
+
private readonly _lastPriceRenderer;
|
|
50
|
+
private readonly _tradingRenderer;
|
|
51
|
+
private readonly _indicatorRenderer;
|
|
42
52
|
private _series;
|
|
43
53
|
private _drawings;
|
|
44
54
|
private _plugins;
|
|
45
55
|
private _resizeObserver;
|
|
56
|
+
private _visibilityObserver;
|
|
46
57
|
private _initPromise;
|
|
47
58
|
private _ready;
|
|
59
|
+
private _destroyed;
|
|
48
60
|
private _interaction;
|
|
61
|
+
private readonly _drawingMgr;
|
|
62
|
+
private _interval;
|
|
63
|
+
private _crosshairEnabled;
|
|
64
|
+
private _magnetMode;
|
|
65
|
+
private _indicatorsVisible;
|
|
66
|
+
private _priceScaleManual;
|
|
67
|
+
private _tradingOrders;
|
|
68
|
+
private _tradingPositions;
|
|
69
|
+
private _paneLayout;
|
|
70
|
+
private _priceFraction;
|
|
71
|
+
private _indicatorResults;
|
|
72
|
+
private _indicatorInstances;
|
|
73
|
+
private _indicatorBars;
|
|
74
|
+
private _fullCanvasHeight;
|
|
75
|
+
/** Tracks the last axis-hover state so we only dirty Background on change. */
|
|
76
|
+
private _lastAxisHover;
|
|
77
|
+
private _orderDragId;
|
|
78
|
+
private _orderDragStartY;
|
|
79
|
+
private _drawingTool;
|
|
80
|
+
private _drawingState;
|
|
81
|
+
private _drawingP0;
|
|
82
|
+
private _drawingP1;
|
|
83
|
+
private _drawingCursorPt;
|
|
84
|
+
/** Performance benchmark utility — call `benchmark.start()` / `benchmark.stop()`. */
|
|
85
|
+
private _benchmark;
|
|
86
|
+
get benchmark(): PixiBenchmark | null;
|
|
87
|
+
/** Bound handler references for context loss events (cleaned up in destroy). */
|
|
88
|
+
private _onContextLost;
|
|
89
|
+
private _onContextRestored;
|
|
90
|
+
/** Called whenever a drawing is committed. */
|
|
91
|
+
onDrawingCommitted: ((drawing: Drawing) => void) | undefined;
|
|
92
|
+
/** Called whenever a drawing is deleted. */
|
|
93
|
+
onDrawingDeleted: ((id: string) => void) | undefined;
|
|
94
|
+
/** Called when the user clicks a position overlay label. */
|
|
95
|
+
onPositionClick: ((positionId: string) => void) | undefined;
|
|
96
|
+
/** Called when the user finishes dragging an SL/TP order line to a new price. */
|
|
97
|
+
onOrderDragEnd: ((orderId: string, newPrice: number) => void) | undefined;
|
|
98
|
+
/** Called when the user right-clicks a drawing. */
|
|
99
|
+
onDrawingContextMenu: ((id: string, x: number, y: number) => void) | undefined;
|
|
100
|
+
/** Called when the user double-clicks a drawing. */
|
|
101
|
+
onDrawingDoubleClick: ((id: string, x: number, y: number) => void) | undefined;
|
|
102
|
+
/** Called after every pan/zoom so TChart can trigger lazy history loading. */
|
|
103
|
+
onViewportChanged: (() => void) | undefined;
|
|
49
104
|
constructor(container: HTMLElement, options?: ChartOptions);
|
|
50
105
|
addSeries(options: Parameters<IChart['addSeries']>[0]): ISeries;
|
|
51
106
|
removeSeries(series: ISeries): void;
|
|
@@ -59,6 +114,11 @@ export declare class PixiChart implements IChart {
|
|
|
59
114
|
/** @internal Used by PixiChart when DrawingManager pushes an update. */
|
|
60
115
|
setDrawings(drawings: readonly Drawing[]): void;
|
|
61
116
|
private _renderFrame;
|
|
117
|
+
/**
|
|
118
|
+
* Syncs bar timestamps from a series into the time scale for ordinal mapping.
|
|
119
|
+
* Avoids a full re-map when only the last bar changed or was appended.
|
|
120
|
+
*/
|
|
121
|
+
private _syncBarTimestamps;
|
|
62
122
|
private _getVisibleBars;
|
|
63
123
|
private _autoFitPriceRange;
|
|
64
124
|
private _markViewportDirty;
|
|
@@ -66,6 +126,44 @@ export declare class PixiChart implements IChart {
|
|
|
66
126
|
private _handleKeyAction;
|
|
67
127
|
/** Pans the viewport so the latest bar sits near the right edge. */
|
|
68
128
|
private _scrollToLatestBar;
|
|
129
|
+
scrollToEnd(): void;
|
|
130
|
+
fitDefaultView(): void;
|
|
131
|
+
resetPriceScale(): void;
|
|
132
|
+
getViewport(): Viewport;
|
|
133
|
+
restoreViewport(v: Viewport): void;
|
|
134
|
+
drawingManager(): DrawingManager;
|
|
135
|
+
startDrawingTool(type: DrawingType): void;
|
|
136
|
+
cancelDrawingTool(): void;
|
|
137
|
+
deleteSelectedDrawing(): void;
|
|
138
|
+
setAllDrawingsVisible(v: boolean): void;
|
|
139
|
+
markDirty(): void;
|
|
140
|
+
setDataBoundaryTime(time: number | null): void;
|
|
141
|
+
setCrosshairEnabled(enabled: boolean): void;
|
|
142
|
+
setMagnetMode(mode: import('@forgecharts/types').MagnetMode): void;
|
|
143
|
+
setNativeCursorHidden(hidden: boolean): void;
|
|
144
|
+
snapXToBar(x: number): {
|
|
145
|
+
x: number;
|
|
146
|
+
time: number;
|
|
147
|
+
closeY?: number;
|
|
148
|
+
};
|
|
149
|
+
setIndicatorsVisible(v: boolean): void;
|
|
150
|
+
setIndicatorLines(lines: readonly {
|
|
151
|
+
id: string;
|
|
152
|
+
points: readonly {
|
|
153
|
+
time: number;
|
|
154
|
+
value: number;
|
|
155
|
+
}[];
|
|
156
|
+
}[]): void;
|
|
157
|
+
setTradingOrders(orders: ChartOrder[]): void;
|
|
158
|
+
setTradingPositions(positions: ChartPosition[]): void;
|
|
159
|
+
setContractSwitches(switches: import('@forgecharts/types').ContractSwitch[]): void;
|
|
160
|
+
setPaneLayout(panes: readonly PaneDescriptor[], priceFraction: number): void;
|
|
161
|
+
setIndicatorResults(results: ReadonlyMap<string, DAGResult>, indicators: readonly IndicatorInstance[], bars: readonly OHLCV[]): void;
|
|
162
|
+
private _handleDrawClick;
|
|
163
|
+
private _buildDraftPreview;
|
|
164
|
+
private _snapToBar;
|
|
165
|
+
/** Convert a Timeframe string to seconds (internal helper). */
|
|
166
|
+
private _tfToSeconds;
|
|
69
167
|
private _resolveOptions;
|
|
70
168
|
private _resolveColors;
|
|
71
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixiChart.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiChart.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAA0C,OAAO,
|
|
1
|
+
{"version":3,"file":"PixiChart.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiChart.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,17 @@ export declare class PixiCrosshairRenderer {
|
|
|
23
23
|
update(x: number, y: number): void;
|
|
24
24
|
hide(): void;
|
|
25
25
|
draw(transform: CoordTransform): void;
|
|
26
|
+
/** Optional price precision override (decimal count). */
|
|
27
|
+
pricePrecision: number | undefined;
|
|
26
28
|
private _formatPrice;
|
|
29
|
+
destroy(): void;
|
|
30
|
+
/** Cached Intl formatters keyed by timezone. */
|
|
31
|
+
private _fmtCache;
|
|
32
|
+
private _getFormatters;
|
|
27
33
|
private _formatTime;
|
|
34
|
+
/** Appends dashed vertical segments to the current path (no stroke). */
|
|
35
|
+
private _appendDashV;
|
|
36
|
+
/** Appends dashed horizontal segments to the current path (no stroke). */
|
|
37
|
+
private _appendDashH;
|
|
28
38
|
}
|
|
29
39
|
//# sourceMappingURL=PixiCrosshairRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixiCrosshairRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCrosshairRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"PixiCrosshairRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiCrosshairRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAe9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAd1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAElC,OAAO,CAAC,EAAE,CAAuB;IACjC,OAAO,CAAC,EAAE,CAAuB;IAEjC,4EAA4E;IAC5E,QAAQ,EAAE,MAAM,CAAQ;IACxB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAS;gBAGvB,KAAK,EAAE,SAAS,EACC,OAAO,EAAE,WAAW;IAevC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,IAAI,IAAI,IAAI;IAKZ,IAAI,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAsErC,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/C,OAAO,CAAC,YAAY;IAKpB,OAAO,IAAI,IAAI;IAMf,gDAAgD;IAChD,OAAO,CAAC,SAAS,CAAsM;IAEvN,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,WAAW;IAoBnB,wEAAwE;IACxE,OAAO,CAAC,YAAY;IAWpB,0EAA0E;IAC1E,OAAO,CAAC,YAAY;CAUrB"}
|
|
@@ -1,17 +1,29 @@
|
|
|
1
1
|
import type { Container } from 'pixi.js';
|
|
2
|
-
import type { Drawing } from '@forgecharts/types';
|
|
2
|
+
import type { Drawing, OHLCV } from '@forgecharts/types';
|
|
3
3
|
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
4
|
/**
|
|
5
5
|
* PixiDrawingRenderer — renders all drawing objects via GPU-batched Graphics.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
7
|
+
* Handles all implemented drawing types: lines, channels, pitchforks,
|
|
8
|
+
* fib retracement, shapes (rectangle, text), and selection handles.
|
|
9
|
+
* Text labels use pooled `Text` objects.
|
|
10
10
|
*/
|
|
11
11
|
export declare class PixiDrawingRenderer {
|
|
12
12
|
private readonly _gfx;
|
|
13
|
+
/** Separate Graphics for curve-heavy tools (ellipse, arc, fib circles/spiral/arcs)
|
|
14
|
+
* where sub-pixel precision prevents visible stepping on curved segments. */
|
|
15
|
+
private readonly _gfxCurves;
|
|
16
|
+
private readonly _layer;
|
|
17
|
+
private _labels;
|
|
13
18
|
constructor(layer: Container);
|
|
14
|
-
|
|
19
|
+
/** Clean up pooled Text objects and Graphics. */
|
|
20
|
+
destroy(): void;
|
|
21
|
+
draw(drawings: readonly Drawing[], transform: CoordTransform, selectedId?: string | null, interval?: string, candles?: readonly OHLCV[]): void;
|
|
22
|
+
private _drawHandles;
|
|
23
|
+
/** Tools that use curves / many-segment approximations and need sub-pixel precision. */
|
|
24
|
+
private static readonly _CURVE_TOOLS;
|
|
15
25
|
private _drawOne;
|
|
26
|
+
private _label;
|
|
27
|
+
drawPreview(draft: Drawing, transform: CoordTransform, interval?: string, candles?: readonly OHLCV[]): void;
|
|
16
28
|
}
|
|
17
29
|
//# sourceMappingURL=PixiDrawingRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixiDrawingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiDrawingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"PixiDrawingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiDrawingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiH7D;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC;kFAC8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAW;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,OAAO,CAAc;gBAEjB,KAAK,EAAE,SAAS;IAO5B,iDAAiD;IACjD,OAAO,IAAI,IAAI;IASf,IAAI,CACF,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,SAAS,EAAE,cAAc,EACzB,UAAU,GAAE,MAAM,GAAG,IAAW,EAChC,QAAQ,SAAO,EACf,OAAO,GAAE,SAAS,KAAK,EAAO,GAC7B,IAAI;IAsBP,OAAO,CAAC,YAAY;IAYpB,wFAAwF;IACxF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAEjC;IAEH,OAAO,CAAC,QAAQ;IA89BhB,OAAO,CAAC,MAAM;IAqBd,WAAW,CACT,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,cAAc,EACzB,QAAQ,SAAO,EACf,OAAO,GAAE,SAAS,KAAK,EAAO,GAC7B,IAAI;CAOR"}
|
|
@@ -6,7 +6,9 @@ import type { TimeScale } from '../core/TimeScale';
|
|
|
6
6
|
* PixiGridRenderer — draws background fill, horizontal grid lines (price),
|
|
7
7
|
* vertical grid lines (time), and the axis separator borders.
|
|
8
8
|
*
|
|
9
|
-
* All
|
|
9
|
+
* All line segments are batched into a single path per stroke style to
|
|
10
|
+
* minimise GPU draw calls (previously ~60 per frame → now ~4).
|
|
11
|
+
* Text labels are pooled and reused to avoid texture upload churn.
|
|
10
12
|
*/
|
|
11
13
|
export declare class PixiGridRenderer {
|
|
12
14
|
private readonly _colors;
|
|
@@ -14,8 +16,20 @@ export declare class PixiGridRenderer {
|
|
|
14
16
|
private readonly _timeLabels;
|
|
15
17
|
private readonly _priceLabels;
|
|
16
18
|
private readonly _timeScale;
|
|
19
|
+
private _priceTextPool;
|
|
20
|
+
private _timeTextPool;
|
|
21
|
+
private readonly _labelStyle;
|
|
17
22
|
constructor(layer: Container, _colors: ChartColors, timeScale: TimeScale);
|
|
18
|
-
draw(transform: CoordTransform, width: number, height: number): void;
|
|
23
|
+
draw(transform: CoordTransform, width: number, height: number, axisHover?: 'none' | 'price' | 'time'): void;
|
|
24
|
+
/** Draws ▲ / ▼ triangles near the top and bottom of the price axis strip. */
|
|
25
|
+
private _drawPriceAxisArrows;
|
|
26
|
+
/** Draws ◄ / ► triangles near the left and right of the time axis strip. */
|
|
27
|
+
private _drawTimeAxisArrows;
|
|
28
|
+
destroy(): void;
|
|
29
|
+
private _getOrCreatePriceText;
|
|
30
|
+
private _getOrCreateTimeText;
|
|
31
|
+
/** Optional price precision override (decimal count). */
|
|
32
|
+
pricePrecision: number | undefined;
|
|
19
33
|
private _formatPrice;
|
|
20
34
|
private _niceTimeStep;
|
|
21
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixiGridRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiGridRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD
|
|
1
|
+
{"version":3,"file":"PixiGridRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiGridRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,SAAS,EAAmB,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAazB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAZ1B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IAGvC,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAY;gBAGtC,KAAK,EAAE,SAAS,EACC,OAAO,EAAE,WAAW,EACrC,SAAS,EAAE,SAAS;IActB,IAAI,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAM,GAAG,OAAO,GAAG,MAAe,GAAG,IAAI;IA8MnH,6EAA6E;IAC7E,OAAO,CAAC,oBAAoB;IAgB5B,4EAA4E;IAC5E,OAAO,CAAC,mBAAmB;IAgB3B,OAAO,IAAI,IAAI;IAYf,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,oBAAoB;IAY5B,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/C,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,aAAa;CAgBtB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Container } from 'pixi.js';
|
|
2
|
+
import type { OHLCV } from '@forgecharts/types';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
/**
|
|
5
|
+
* PixiHistogramRenderer — draws volume or indicator values as vertical bars.
|
|
6
|
+
*
|
|
7
|
+
* Colour-coded: green when close >= open, red otherwise (matching Canvas 2D).
|
|
8
|
+
* Each bar is drawn as a filled rectangle from the bottom of the plot area
|
|
9
|
+
* up to the mapped volume/value height.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PixiHistogramRenderer {
|
|
12
|
+
private readonly _gfx;
|
|
13
|
+
constructor(layer: Container);
|
|
14
|
+
destroy(): void;
|
|
15
|
+
draw(bars: readonly OHLCV[], transform: CoordTransform): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=PixiHistogramRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiHistogramRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiHistogramRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK7D;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;gBAEpB,KAAK,EAAE,SAAS;IAK5B,OAAO,IAAI,IAAI;IAIf,IAAI,CACF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,GACxB,IAAI;CA8CR"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Container } from 'pixi.js';
|
|
2
|
+
import type { OHLCV, IndicatorInstance, PaneDescriptor } from '@forgecharts/types';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
import type { DAGResult } from '../api/IndicatorDAG';
|
|
5
|
+
/**
|
|
6
|
+
* PixiIndicatorRenderer — renders indicator sub-panes (RSI, MACD, Volume,
|
|
7
|
+
* generic line) below the price chart within the same PixiJS Application.
|
|
8
|
+
*
|
|
9
|
+
* Each pane gets a background, separator, axis column, and the indicator's
|
|
10
|
+
* visual representation. All drawing uses a single `Graphics` object that
|
|
11
|
+
* is cleared and redrawn every dirty frame.
|
|
12
|
+
*/
|
|
13
|
+
export declare class PixiIndicatorRenderer {
|
|
14
|
+
private readonly _gfx;
|
|
15
|
+
private readonly _layer;
|
|
16
|
+
private _labels;
|
|
17
|
+
private _bgColor;
|
|
18
|
+
private _borderColor;
|
|
19
|
+
private _mutedColor;
|
|
20
|
+
constructor(layer: Container);
|
|
21
|
+
setColors(bg: string, border: string, muted: string): void;
|
|
22
|
+
destroy(): void;
|
|
23
|
+
draw(panes: readonly PaneDescriptor[], indicators: readonly IndicatorInstance[], results: ReadonlyMap<string, DAGResult>, bars: readonly OHLCV[], transform: CoordTransform, priceFraction: number, canvasWidth: number, canvasHeight: number): void;
|
|
24
|
+
private _drawRSI;
|
|
25
|
+
private _drawMACD;
|
|
26
|
+
private _drawVolume;
|
|
27
|
+
private _drawLine;
|
|
28
|
+
private _dashH;
|
|
29
|
+
private _label;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=PixiIndicatorRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiIndicatorRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiIndicatorRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAqBrD;;;;;;;GAOG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,YAAY,CAAY;IAChC,OAAO,CAAC,WAAW,CAAa;gBAEpB,KAAK,EAAE,SAAS;IAM5B,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1D,OAAO,IAAI,IAAI;IAMf,IAAI,CACF,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,UAAU,EAAE,SAAS,iBAAiB,EAAE,EACxC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,EACvC,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,EACzB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,IAAI;IAqDP,OAAO,CAAC,QAAQ;IAuChB,OAAO,CAAC,SAAS;IA4EjB,OAAO,CAAC,WAAW;IA8CnB,OAAO,CAAC,SAAS;IAoCjB,OAAO,CAAC,MAAM;IAUd,OAAO,CAAC,MAAM;CAiBf"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Container } from 'pixi.js';
|
|
2
|
+
import type { Timeframe } from '@forgecharts/types';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
import type { Series } from '../core/Series';
|
|
5
|
+
/**
|
|
6
|
+
* PixiLastPriceRenderer — renders the live last-price dotted line, price label,
|
|
7
|
+
* and countdown timer on the PixiJS UIOverlay layer.
|
|
8
|
+
*
|
|
9
|
+
* Updated every ticker frame so the countdown advances each second and the
|
|
10
|
+
* price line tracks the latest bar's close in real-time.
|
|
11
|
+
*/
|
|
12
|
+
export declare class PixiLastPriceRenderer {
|
|
13
|
+
private readonly _lineGfx;
|
|
14
|
+
private readonly _boxGfx;
|
|
15
|
+
private readonly _priceText;
|
|
16
|
+
private readonly _countdownText;
|
|
17
|
+
private _lastSec;
|
|
18
|
+
/** Optional price precision override (decimal count). */
|
|
19
|
+
pricePrecision: number | undefined;
|
|
20
|
+
/** Whether to show the countdown timer. */
|
|
21
|
+
showCountdown: boolean;
|
|
22
|
+
constructor(layer: Container);
|
|
23
|
+
destroy(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Draw the last-price line + label + countdown.
|
|
26
|
+
* Returns true if any content was drawn (so caller knows to keep layer dirty
|
|
27
|
+
* for the next-second countdown tick).
|
|
28
|
+
*/
|
|
29
|
+
draw(series: readonly Series[], transform: CoordTransform, interval: Timeframe): boolean;
|
|
30
|
+
/** Returns true when the second has ticked over (countdown needs redraw). */
|
|
31
|
+
needsRedraw(): boolean;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=PixiLastPriceRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiLastPriceRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLastPriceRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AA+B7C;;;;;;GAMG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAO;IACtC,OAAO,CAAC,QAAQ,CAAK;IACrB,yDAAyD;IACzD,cAAc,EAAE,MAAM,GAAG,SAAS,CAAa;IAC/C,2CAA2C;IAC3C,aAAa,UAAQ;gBAET,KAAK,EAAE,SAAS;IAyB5B,OAAO,IAAI,IAAI;IAOf;;;;OAIG;IACH,IAAI,CACF,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,SAAS,EAAE,cAAc,EACzB,QAAQ,EAAE,SAAS,GAClB,OAAO;IAuEV,6EAA6E;IAC7E,WAAW,IAAI,OAAO;CAIvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixiLayerManager.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLayerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAA4B,MAAM,aAAa,CAAC;AAElE;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAK;IAElB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI5B,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,QAAQ,IAAI,IAAI;CAGjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,QAAQ,CAAC,KAAK,aAAoB;gBAEtB,KAAK,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"PixiLayerManager.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLayerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,SAAS,EAA4B,MAAM,aAAa,CAAC;AAElE;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAK;IAElB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI5B,OAAO,IAAI,IAAI;IAIf,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAIlC,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,QAAQ,IAAI,IAAI;CAGjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmC;IAC/D,QAAQ,CAAC,KAAK,aAAoB;gBAEtB,KAAK,EAAE,SAAS;IAoB5B,mDAAmD;IACnD,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS;IAMhC,iFAAiF;IACjF,KAAK,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI7B,oDAAoD;IACpD,QAAQ,IAAI,IAAI;IAIhB,8DAA8D;IAC9D,OAAO,IAAI,IAAI;CAOhB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Container } from 'pixi.js';
|
|
2
|
+
import type { OHLCV, SeriesOptions } from '@forgecharts/types';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
/**
|
|
5
|
+
* PixiLineRenderer — draws close prices as a line or area (gradient-fill) series.
|
|
6
|
+
*
|
|
7
|
+
* Uses a single re-used `Graphics` object that is fully cleared and redrawn
|
|
8
|
+
* on each invalidation. For area series a vertical gradient fill is drawn
|
|
9
|
+
* from the line down to the bottom of the plot area.
|
|
10
|
+
*/
|
|
11
|
+
export declare class PixiLineRenderer {
|
|
12
|
+
private readonly _gfx;
|
|
13
|
+
/** Cached gradient — invalidated when color or plot height changes. */
|
|
14
|
+
private _gradientCache;
|
|
15
|
+
constructor(layer: Container);
|
|
16
|
+
destroy(): void;
|
|
17
|
+
draw(bars: readonly OHLCV[], transform: CoordTransform, options: SeriesOptions): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=PixiLineRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiLineRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiLineRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,uEAAuE;IACvE,OAAO,CAAC,cAAc,CAAsE;gBAEhF,KAAK,EAAE,SAAS;IAK5B,OAAO,IAAI,IAAI;IAKf,IAAI,CACF,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,SAAS,EAAE,cAAc,EACzB,OAAO,EAAE,aAAa,GACrB,IAAI;CAkGR"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { Container } from 'pixi.js';
|
|
2
|
+
import type { ChartOrder, ChartPosition } from '../trading/tradingTypes';
|
|
3
|
+
import type { CoordTransform } from '../core/CoordTransform';
|
|
4
|
+
/**
|
|
5
|
+
* PixiTradingRenderer — draws order lines + position lines + label boxes
|
|
6
|
+
* on the TradingOverlay layer.
|
|
7
|
+
*
|
|
8
|
+
* Orders: Filters out terminal statuses (cancelled/rejected/expired/filled).
|
|
9
|
+
* Buy = green, Sell = red. Pending orders are dashed + 60% alpha.
|
|
10
|
+
* SL/TP orders are draggable — user can drag the line to modify the price.
|
|
11
|
+
*
|
|
12
|
+
* Positions: Renders a solid horizontal line at the entry price for every open
|
|
13
|
+
* position. Long = green, Short = red. Label shows side + qty + P&L.
|
|
14
|
+
* Clicking the label prompts to close the position.
|
|
15
|
+
*/
|
|
16
|
+
export declare class PixiTradingRenderer {
|
|
17
|
+
private readonly _lineGfx;
|
|
18
|
+
private readonly _boxGfx;
|
|
19
|
+
private readonly _layer;
|
|
20
|
+
private _labels;
|
|
21
|
+
/** Position hit-zones for click detection — rebuilt on every draw(). */
|
|
22
|
+
private _positionHitZones;
|
|
23
|
+
/** Order line hit-zones for drag detection — rebuilt on every draw(). */
|
|
24
|
+
private _orderHitZones;
|
|
25
|
+
/** Callback invoked when the user clicks a position label. */
|
|
26
|
+
onPositionClick: ((positionId: string) => void) | undefined;
|
|
27
|
+
/** Callback invoked when the user finishes dragging an SL/TP order to a new price. */
|
|
28
|
+
onOrderDragEnd: ((orderId: string, newPrice: number) => void) | undefined;
|
|
29
|
+
constructor(layer: Container);
|
|
30
|
+
destroy(): void;
|
|
31
|
+
/**
|
|
32
|
+
* Hit-test a point against position labels.
|
|
33
|
+
* Returns the position ID if the point is inside a label box, or null.
|
|
34
|
+
*/
|
|
35
|
+
hitTestPosition(x: number, y: number): string | null;
|
|
36
|
+
/**
|
|
37
|
+
* Hit-test a point against draggable order lines (SL/TP).
|
|
38
|
+
* Returns the order ID if the point is near a draggable order line, or null.
|
|
39
|
+
* Uses a generous vertical tolerance (6px each side) for easy grab.
|
|
40
|
+
*/
|
|
41
|
+
hitTestDraggableOrder(x: number, y: number): string | null;
|
|
42
|
+
draw(orders: readonly ChartOrder[], transform: CoordTransform, positions?: readonly ChartPosition[]): void;
|
|
43
|
+
/** Draws or reuses a label at the given position and returns the next label index. */
|
|
44
|
+
private _drawLabel;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=PixiTradingRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PixiTradingRenderer.d.ts","sourceRoot":"","sources":["../../src/pixi/PixiTradingRenderer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA+B7D;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,OAAO,CAAc;IAC7B,wEAAwE;IACxE,OAAO,CAAC,iBAAiB,CAAyE;IAClG,yEAAyE;IACzE,OAAO,CAAC,cAAc,CAAmG;IAEzH,8DAA8D;IAC9D,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D,sFAAsF;IACtF,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;gBAE9D,KAAK,EAAE,SAAS;IAQ5B,OAAO,IAAI,IAAI;IAOf;;;OAGG;IACH,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASpD;;;;OAIG;IACH,qBAAqB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAW1D,IAAI,CACF,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,SAAS,EAAE,cAAc,EACzB,SAAS,CAAC,EAAE,SAAS,aAAa,EAAE,GACnC,IAAI;IAkIP,sFAAsF;IACtF,OAAO,CAAC,UAAU;CAgBnB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ChartContextSnapshot } from '@forgecharts/types';
|
|
2
|
+
/**
|
|
3
|
+
* AgentFAB — Floating Action Button for agent interaction.
|
|
4
|
+
*
|
|
5
|
+
* Features:
|
|
6
|
+
* - Pulsing animation ring on idle
|
|
7
|
+
* - Radial menu with "Type" and "Speak" options
|
|
8
|
+
* - Wave animation during responding
|
|
9
|
+
* - Mic icon during recording
|
|
10
|
+
* - Error state with visual feedback
|
|
11
|
+
*/
|
|
12
|
+
interface AgentFABProps {
|
|
13
|
+
onTypeClick?: () => void;
|
|
14
|
+
onSpeakClick?: () => void;
|
|
15
|
+
chartContext?: ChartContextSnapshot;
|
|
16
|
+
onOpenPanel?: () => void;
|
|
17
|
+
}
|
|
18
|
+
export declare function AgentFAB(props?: AgentFABProps): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=AgentFAB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentFAB.d.ts","sourceRoot":"","sources":["../../../src/react/agent/AgentFAB.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAezE;;;;;;;;;GASG;AACH,UAAU,aAAa;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B;AAED,wBAAgB,QAAQ,CAAC,KAAK,GAAE,aAAkB,2CAqZjD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AgentToolCall } from '@forgecharts/types';
|
|
3
|
+
import { type AgentConfig } from './useAgent';
|
|
4
|
+
type ToolResult = {
|
|
5
|
+
ok: boolean;
|
|
6
|
+
data?: unknown;
|
|
7
|
+
error?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function AgentProvider({ config, children, onToolCall, }: {
|
|
10
|
+
config: AgentConfig;
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
onToolCall?: (toolCall: AgentToolCall) => Promise<ToolResult>;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=AgentProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentProvider.d.ts","sourceRoot":"","sources":["../../../src/react/agent/AgentProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AACjF,OAAO,KAAK,EAKV,aAAa,EACd,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAgB,KAAK,WAAW,EAA0B,MAAM,YAAY,CAAC;AAmBpF,KAAK,UAAU,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAWlE,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,QAAQ,EACR,UAAU,GACX,EAAE;IACD,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/D,2CAoYA"}
|