Skip to content

PluginDependencyKind

ts
export type PluginDependencyKind =
  | 'required'
  | 'optional'
  | 'auto-installed'
  | 'event-integration'
  | 'config-integration'
  | 'ordering';

PluginDependencyPluginConstructor

ts
export type PluginDependencyPluginConstructor = abstract new (...args: any[]) => unknown;

PluginDependencyPluginRef

ts
export type PluginDependencyPluginRef =
  | PluginDependencyPluginConstructor
  | (() => PluginDependencyPluginConstructor);

PluginDependencyContract

ts
export type PluginDependencyContract =
  | 'aggregators'
  | 'auto-size-column'
  | 'column-types'
  | 'core-grouping'
  | 'direct-event-manager-config'
  | 'direct-history-config'
  | 'filtering'
  | 'direct-pagination-config'
  | 'direct-pivot-config'
  | 'direct-tree-config'
  | 'gantt-runtime'
  | 'overlay-producer'
  | 'pagination-capable-plugin'
  | 'pro-plugin-infrastructure'
  | 'pro-ui'
  | 'sorting-capable-plugin';

PluginDependencyAdditionalDataKey (Extended from index.ts)

ts
export type PluginDependencyAdditionalDataKey = keyof AdditionalData & string;

PluginDependencyTarget

ts
export type PluginDependencyTarget =
  | {
    readonly type: 'plugin';
    readonly plugin: PluginDependencyPluginRef;
  }
  | {
    readonly type: 'plugins';
    readonly plugins: readonly PluginDependencyPluginRef[];
    readonly mode?: 'all' | 'one-of';
  }
  | {
    readonly type: 'additionalData';
    readonly key: PluginDependencyAdditionalDataKey;
    readonly path?: readonly string[];
  }
  | {
    readonly type: 'event';
    readonly event: keyof HTMLRevoGridElementEventMap & string;
  }
  | {
    readonly type: 'events';
    readonly events: readonly (keyof HTMLRevoGridElementEventMap & string)[];
  }
  | {
    readonly type: 'contract';
    readonly contract: PluginDependencyContract;
  }
  | {
    readonly type: 'property';
    readonly property: keyof HTMLRevoGridElement & string;
    readonly path?: readonly string[];
  }
  | {
    readonly type: 'ordering';
    readonly relativeTo: 'other-grid-plugins';
    readonly position: 'before' | 'after';
  };

PluginDependency

ts
interface PluginDependency {
  kind: PluginDependencyKind;
  target: PluginDependencyTarget | readonly PluginDependencyTarget[];
  description: string
}

warnRequiredPluginDependencies

Warns when required plugin class dependencies are missing.

Metadata remains descriptive: this does not auto-install, reorder, or block plugin execution.

ts
warnRequiredPluginDependencies: (plugin: unknown, providers: PluginProviders, dependencies?: readonly PluginDependency[] | undefined) => void;