Skip to content

Event Manager

Module Extensions

AdditionalData (Extended from @revolist/revogrid)

interface AdditionalData {
/**
* Additional data property for event manager
*
* @example
* ```typescript
* const grid = document.createElement('revo-grid');
* grid.additionalData = { eventManager: { collectEvents: true, collectEventsDelay: 1000 } };
* ```
*/
eventManager?: EventManagerConfig
}

HTMLRevoGridElementEventMap (Extended from global)

interface HTMLRevoGridElementEventMap {
/**
* Event for event manager
*
* @example
* ```typescript
* grid.addEventListener(ON_EDIT_EVENT, (event) => {
* console.log(event);
* });
* ```
*/
[ON_EDIT_EVENT]: EventManagerEvent
}

Plugin API

EventManagerPlugin

RevoGrid Plugin for Event Manager. Whole purpose is to collect and dispatch edit events in one place.

class EventManagerPlugin {}

EventManagerEvent (Extended from index.ts)

export type EventManagerEvent = {
eventTypes: string[];
previousData: BeforeRangeSaveDataDetails['data'];
} & Omit<BeforeRangeSaveDataDetails, 'newRange' | 'oldRange'>;

EventManagerConfig

The configuration object for the EventManagerPlugin.

/**
* The configuration object for the EventManagerPlugin.
*/
export type EventManagerConfig = {
/**
* Whether to collect events and apply delay or send them immediately.
* @default false
*/
collectEvents?: boolean;
/**
* The delay in milliseconds to wait until the
* collected events are applied to the grid.
* Used only when `collectEvents` is true.
* @default 0
*/
collectEventsDelay?: number;
/**
* Whether to apply the collected events to the
* original data source.
* @default true
*/
applyEventsToSource?: boolean;
};