Event Categories
Content & Document Events
| Event | Payload | Description |
|---|---|---|
contentChange | void | Document content changed |
saved | IEditorResult | Document saved (Ctrl+S or command) |
Selection & Style Events
| Event | Payload | Description |
|---|---|---|
rangeStyleChange | IRangeStyle | Selection formatting changed |
positionContextChange | IPositionContextChangePayload | Cursor position context changed |
Page Events
| Event | Payload | Description |
|---|---|---|
pageSizeChange | number | Total page count changed |
pageScaleChange | number | Zoom level changed |
pageModeChange | PageMode | Page mode changed (paging/continuous) |
visiblePageNoListChange | number[] | Visible pages during scroll |
intersectionPageNoChange | number | Primary visible page changed |
Control (Form) Events
| Event | Payload | Description |
|---|---|---|
controlChange | IControlChangeResult | Control state changed (active/inactive) |
controlContentChange | IControlContentChangeResult | Control value/content changed |
Zone Events
| Event | Payload | Description |
|---|---|---|
zoneChange | EditorZone | Cursor moved between zones (header/main/footer) |
Mouse Events
| Event | Payload | Description |
|---|---|---|
click | MouseEvent | Editor clicked |
mousedown | MouseEvent | Mouse button pressed |
mouseup | MouseEvent | Mouse button released |
mousemove | MouseEvent | Mouse moved over editor |
mouseenter | MouseEvent | Mouse entered editor area |
mouseleave | MouseEvent | Mouse left editor area |
Input Events
| Event | Payload | Description |
|---|---|---|
input | Event | Input/text entry occurred |
Image Events
| Event | Payload | Description |
|---|---|---|
imageSizeChange | { element: IElement } | Image resized |
imageMousedown | { evt: MouseEvent, element: IElement } | Image clicked |
imageDblclick | { evt: MouseEvent, element: IElement } | Image double-clicked |
Label Events
| Event | Payload | Description |
|---|---|---|
labelMousedown | { evt: MouseEvent, element: IElement } | Label clicked |
Usage Examples
Using Listener (Callback)
Using EventBus (Pub-Sub)
Event Payload Types
IRangeStyle
src/editor/interface/Listener.ts
IEditorResult
src/editor/interface/Editor.ts
IControlChangeResult
src/editor/interface/Control.ts
IControlContentChangeResult
src/editor/interface/Control.ts
IPositionContextChangePayload
src/editor/interface/Listener.ts
Common Patterns
Auto-Save
Toolbar Updates
Page Navigation
Form Validation
Image Interaction
Activity Tracking
Event Timing
Events fire in the following order during typical operations: Text Input:inputcontentChangerangeStyleChange(if style context changes)positionContextChange(if position context changes)
visiblePageNoListChangeintersectionPageNoChange
pageScaleChangevisiblePageNoListChange(if visible pages change)
controlChange(state: ‘active’)positionContextChange
Best Practices
-
Debounce expensive operations: For
contentChange,mousemove, etc. -
Clean up event listeners: Always unsubscribe when component unmounts
-
Use Listener for primary handlers: Use EventBus for plugins/modules
-
Type your event handlers: