← All packages

API reference

@searsuite/sear-render-event-engine

Hit testing and render-node event propagation.

8 exportsderived from source

classEventEnginesource ↗
class EventEngine<NodeTypeProperties> extends EventListener<string>

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

constructorconstructor
EventEngine<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.

scrollManager: ScrollManager
renderContext: RenderContext
stageNode: SceneGraph<NodeTypeProperties>
configEngine: ConfigEngine
eventRenderStrategy: EventRenderStrategy<NodeTypeProperties>
hitRenderStrategy: HitRenderStrategy<NodeTypeProperties>
eventRegistrar: EventRegistrar
coordinates: CoordinateTransformer
propertyconfigEngine
readonly configEngine: ConfigEngine
propertyeventRegistrar
readonly eventRegistrar: EventRegistrar
propertyeventRenderStrategy
readonly eventRenderStrategy: EventRenderStrategy<NodeTypeProperties>
propertyhitRenderStrategy
readonly hitRenderStrategy: HitRenderStrategy<NodeTypeProperties>
propertyrenderContext
readonly renderContext: RenderContext
propertyscrollManager
readonly scrollManager: ScrollManager
propertystageNode
readonly stageNode: SceneGraph<NodeTypeProperties>
propertysymbolstatic
readonly symbol: symbol

DI token for resolving the event engine.

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

Registers a named render strategy used by event handling.

name: string | Symbol
strategy: RenderStrategy<NodeTypeProperties>
methoddestroy
destroy(ownerToken?: object): void

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

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

Returns a previously registered event render strategy.

name: string | Symbol
methodinitialize
initialize(): void

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

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

Registers a plugin event handler for a normalized event key.

eventKey: string
handler: (event: Event): void
methodregisterEventListenersToRenderContext
registerEventListenersToRenderContext(): void

Attaches platform event listeners to the underlying render context.

methodrender
render(node: Node<NodeTypeProperties>): void

Rebuilds the hit layer for the given scene graph.

node: Node<NodeTypeProperties>
methodrenderHitOnNextFrame
renderHitOnNextFrame(node: Node<NodeTypeProperties>): void

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

node: Node<NodeTypeProperties>
methodrenderImmediate
renderImmediate(node: Node<NodeTypeProperties>): void

Render the hit canvas immediately, bypassing the debounce timer.

See HitRenderStrategy.renderImmediate() for details.

node: Node<NodeTypeProperties>
Inherited members 4

Inherited from EventListener.

classEventRegistrarsource ↗
class EventRegistrar

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

constructorconstructor
EventRegistrar(): EventRegistrar
propertyregisteredEvents
registeredEvents: string[]

Normalized event names currently registered for dispatch.

propertysymbolstatic
readonly symbol: symbol

DI token for resolving the event registrar.

methodenforceCommandBoundary
enforceCommandBoundary(assertWrite: (): void): void

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

assertWrite: (): void
methodregister
register(eventKey: string): void

Registers an event name after normalizing platform casing.

eventKey: string

Event name requested by a plugin.

methodunregister
unregister(eventKey: string): void

Removes a registered event name.

eventKey: string

Event name requested by a plugin.

classHeadlessEventRegistrarsource ↗
class HeadlessEventRegistrar extends EventRegistrar

Event registrar for hosts without a native event source.

constructorconstructor
HeadlessEventRegistrar(): HeadlessEventRegistrar
propertysymbolstatic
readonly symbol: symbol

DI token for resolving HeadlessEventRegistrar.

Inherited members 4

Inherited from EventRegistrar.

classWebEventRegistrarsource ↗
class WebEventRegistrar extends EventRegistrar

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

constructorconstructor
WebEventRegistrar(): WebEventRegistrar
propertyregisteredEvents
registeredEvents: string[]

Normalized mouse events supported by the browser registrar.

Inherited members 4

Inherited from EventRegistrar.

interfaceEventWithOffsetAndTargetsource ↗
interface EventWithOffsetAndTarget<NodeTypeProperties>

Plugin event payload enriched with hit-tested scene target.

propertyclickCount
clickCount?: number

Consecutive click count for this pointer activation, when known.

propertyorigin
origin: EventWithOffset

Original host event emitted by the render context.

propertytarget
target: Node<NodeTypeProperties> | null

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

functiongetPluginHandlerNamesource ↗
getPluginHandlerName(eventKey: string): string

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

eventKey: string
functionnormalizeEventKeysource ↗
normalizeEventKey(eventKey: string): string

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

eventKey: string
interfaceEventWithOffsetsource ↗
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.

propertyclickCount
readonly clickCount?: number

Consecutive click count normalized by host adapters when available.

Inherited members 13

Inherited from RenderPointerEvent.