Plugin Dependencies
ensurePlugin
Section titled “ensurePlugin”Return an existing plugin instance by class, or create and register one.
Use this for auto-installed plugin dependencies so host-provided plugin
instances are reused and duplicate runtime plugins are not added. On Core
runtimes, dependencies declared through pluginDependencies are retained
while any configured owner needs them and removed after their final owner.
The owning plugin must declare the same class as an auto-installed target
so runtime grid.plugins updates can resolve the ownership graph.
export function ensurePlugin<T extends PluginBaseComponent>( providers: PluginProviders, pluginClass: RuntimePluginConstructor & (new (...args: any[]) => T), createPlugin: () => T,): T;PluginDependencyKind
Section titled “PluginDependencyKind”export type PluginDependencyKind = | 'required' | 'optional' | 'auto-installed' | 'event-integration' | 'config-integration' | 'ordering';PluginDependencyPluginConstructor
Section titled “PluginDependencyPluginConstructor”export type PluginDependencyPluginConstructor = abstract new (...args: any[]) => unknown;PluginDependencyPluginRef
Section titled “PluginDependencyPluginRef”export type PluginDependencyPluginRef = | PluginDependencyPluginConstructor | (() => PluginDependencyPluginConstructor);PluginDependencyContract
Section titled “PluginDependencyContract”export type PluginDependencyContract = | 'aggregators' | 'auto-size-column' | 'column-types' | 'column-selection-handoff' | 'core-grouping' | 'direct-event-manager-config' | 'direct-history-config' | 'filtering' | 'direct-pagination-config' | 'direct-pivot-config' | 'direct-tree-config' | 'gantt-runtime' | 'json-clipboard' | 'multi-range-selection' | 'overlay-producer' | 'pagination-capable-plugin' | 'pro-plugin-infrastructure' | 'pro-ui' | 'row-order' | 'row-select' | 'sorting-capable-plugin' | 'tree-data';PluginDependencyAdditionalDataKey (Extended from index.ts)
Section titled “PluginDependencyAdditionalDataKey (Extended from index.ts)”export type PluginDependencyAdditionalDataKey = keyof AdditionalData & string;PluginDependencyTarget
Section titled “PluginDependencyTarget”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
Section titled “PluginDependency”interface PluginDependency { kind: PluginDependencyKind; target: PluginDependencyTarget | readonly PluginDependencyTarget[]; description: string}warnRequiredPluginDependencies
Section titled “warnRequiredPluginDependencies”Warns when required plugin class dependencies are missing.
Metadata remains descriptive: this does not auto-install, reorder, or block plugin execution.
warnRequiredPluginDependencies: (plugin: unknown, providers: PluginProviders, dependencies?: readonly PluginDependency[] | undefined) => void;