Skip to content

## [0.8.1] - 2026-03-18 - Plugin System Refactor, Chart Patterns & Drawing Tool Improvements#32

Merged
alaa-eddine merged 8 commits intomainfrom
dev
Mar 18, 2026
Merged

## [0.8.1] - 2026-03-18 - Plugin System Refactor, Chart Patterns & Drawing Tool Improvements#32
alaa-eddine merged 8 commits intomainfrom
dev

Conversation

@alaa-eddine
Copy link
Contributor

[0.8.1] - 2026-03-18 - Plugin System Refactor, Chart Patterns & Drawing Tool Improvements

Added

  • Plugin System Refactor: Each plugin now lives in its own folder (LineTool/, FibonacciTool/, MeasureTool/, etc.) with a dedicated DrawingRenderer class, tool class, and index.ts barrel. Key architectural changes:
    • New DrawingRenderer / DrawingRenderContext interfaces exported from types.ts — renderers receive typed pixel coordinates and selection state, returning an ECharts graphic element.
    • New DrawingRendererRegistry — maps drawing type strings to their renderer; plugins self-register on init.
    • DrawingType widened from a fixed union to string, allowing fully custom drawing types.
    • ChartContext gains registerDrawingRenderer() so plugins can extend the render pipeline.
    • New ToolGroup class — wraps multiple plugins into a single toolbar button with a chevron-indicator dropdown.
  • Chart Pattern Tools: Seven new pattern tools, each with its own multi-point drawing renderer:
    • ABCDPatternTool — classic 4-point ABCD harmonic pattern
    • XABCDPatternTool — 5-point XABCD harmonic pattern
    • CypherPatternTool — Cypher harmonic pattern
    • HeadAndShouldersTool — Head & Shoulders / Inverse H&S
    • ThreeDrivesPatternTool — Three Drives pattern
    • TrianglePatternTool — Triangle (ascending / descending / symmetrical)
    • FibSpeedResistanceFanTool — Fibonacci Speed & Resistance Fan
  • Fibonacci Channel Tool (FibonacciChannelTool): Multi-segment channel drawn from two anchor points with configurable Fibonacci levels.
  • Fibonacci Trend Extension Tool (FibTrendExtensionTool): Three-point trend extension tool projecting Fibonacci price targets beyond the impulse move.
  • Drawing Tool Point Snapping: Holding Ctrl while placing or dragging a drawing point snaps it to nearby OHLC levels on the closest candle. Implemented in AbstractPlugin and active across all drawing tools.

Fixed

  • DataZoom Hidden Mode: When the DataZoom widget was configured with show: false, pan and zoom interactions stopped working entirely. Fixed by keeping the underlying event listeners active regardless of visibility.
  • Empty Chart Title: Setting an empty string as the chart title now works correctly — previously an empty title was silently replaced with a default value.
  • Drawing Editor Point Placement: Fixed a bug in DrawingEditor causing incorrect point snapping and state transitions when placing and editing multi-point drawing tools.

@alaa-eddine alaa-eddine merged commit b84134f into main Mar 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant