Skip to content

Module Extensions

AdditionalData (Extended from @revolist/revogrid)

ts
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)

ts
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.

ts
class EventManagerPlugin {}

EventManagerEvent (Extended from index.ts)

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

EventManagerConfig

The configuration object for the EventManagerPlugin.

ts
/**
 * 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;
};