← All packages

@searsuite/sear-render-event-engine

Hit testing and render-node event propagation.

Event registration

classEventEngine
class EventEngine<NodeTypeProperties> extends EventListener<string>

Coordinates render-context events, hit testing and plugin event dispatch.

constructorEventEngine<NodeTypeProperties>(scrollManager: ScrollManager, renderContext: RenderContext, stageNode: SceneGraph<NodeTypeProperties>, configEngine: ConfigEngine, eventRenderStrategy: EventRenderStrategy<NodeTypeProperties>, hitRenderStrategy: HitRenderStrategy<NodeTypeProperties>, eventRegistrar: EventRegistrar, coordinates: CoordinateTransformer): EventEngine<NodeTypeProperties>

Creates the event engine and installs built-in event strategies.

propertyreadonly configEngine: ConfigEngine
propertyreadonly eventRegistrar: EventRegistrar
propertyreadonly eventRenderStrategy: EventRenderStrategy<NodeTypeProperties>
propertyreadonly hitRenderStrategy: HitRenderStrategy<NodeTypeProperties>
propertyreadonly renderContext: RenderContext
propertyreadonly scrollManager: ScrollManager
propertyreadonly stageNode: SceneGraph<NodeTypeProperties>
propertyreadonly symbol: symbolstatic

DI token for resolving the event engine.

methodaddStrategy(name: string | Symbol, strategy: RenderStrategy<NodeTypeProperties>): void

Registers a named render strategy used by event handling.

methoddestroy(ownerToken?: object): void

Clears plugin handlers so a destroyed sheet cannot react to host events.

methodgetNodeAtViewPoint(x: number, y: number): Node<NodeTypeProperties> | null

Resolves a screen point through the same hit layer used by pointer events.

methodgetStrategy(name: string | Symbol): RenderStrategy<NodeTypeProperties> | undefined

Returns a previously registered event render strategy.

methodinitialize(): void

Registers built-in strategies and attaches render-context listeners.

methodregisterEvent<Event>(eventKey: string, handler: (event: Event): void): (): void

Registers a plugin event handler for a normalized event key.

methodregisterEventListenersToRenderContext(): void

Attaches platform event listeners to the underlying render context.

methodrender(node: Node<NodeTypeProperties>): void

Rebuilds the hit layer for the given scene graph.

methodrenderHitOnNextFrame(node: Node<NodeTypeProperties>): void

Coalesces scroll-driven hit refreshes to at most one per animation frame.

methodrenderImmediate(node: Node<NodeTypeProperties>): void

Render the hit canvas immediately, bypassing the debounce timer.

See HitRenderStrategy.renderImmediate() for details.

Inherited members 4

Inherited from EventListener.

classEventRegistrar

Base registry for event names supported by one host event adapter.

constructorEventRegistrar(): EventRegistrar
propertyregisteredEvents: string[]

Normalized event names currently registered for dispatch.

propertyreadonly symbol: symbolstatic

DI token for resolving the event registrar.

methodenforceCommandBoundary(assertWrite: (): void): void

Publishes a read-only event-name view after editor assembly.

methodregister(eventKey: string): void

Registers an event name after normalizing platform casing.

eventKey

Event name requested by a plugin.

methodunregister(eventKey: string): void

Removes a registered event name.

eventKey

Event name requested by a plugin.

classHeadlessEventRegistrar
class HeadlessEventRegistrar extends EventRegistrar

Event registrar for hosts without a native event source.

constructorHeadlessEventRegistrar(): HeadlessEventRegistrar
propertyreadonly symbol: symbolstatic

DI token for resolving HeadlessEventRegistrar.

Inherited members 4

Inherited from EventRegistrar.

classWebEventRegistrar
class WebEventRegistrar extends EventRegistrar

Browser event registrar with the built-in mouse event surface enabled.

constructorWebEventRegistrar(): WebEventRegistrar
propertyregisteredEvents: string[]

Normalized mouse events supported by the browser registrar.

Inherited members 4

Inherited from EventRegistrar.

Event values

interfaceEventWithOffsetAndTarget
interface EventWithOffsetAndTarget<NodeTypeProperties>

Plugin event payload enriched with hit-tested scene target.

propertyclickCount?: number

Consecutive click count for this pointer activation, when known.

propertyorigin: EventWithOffset

Original host event emitted by the render context.

propertytarget: Node<NodeTypeProperties> | null

Topmost scene node hit by the event, or null when empty.

functiongetPluginHandlerName
getPluginHandlerName(eventKey: string): string

Derives the plugin handler method name for a given event key. e.g. mousedown / mouseDown → onMouseDown

functionnormalizeEventKey
normalizeEventKey(eventKey: string): string

Normalizes an event key (whether lowercased like mousedown or camelCased like mouseDown) to its canonical engine identifier (mouseDown).

interfaceEventWithOffset
interface EventWithOffset extends RenderPointerEvent

Host pointer event carrying offsets in view coordinates.

Host adapters translate their native pointer event into the same offset contract and optionally provide a normalized click count.

propertyreadonly clickCount?: number

Consecutive click count normalized by host adapters when available.

Inherited members 13

Inherited from RenderPointerEvent.