ngxsmk-datatable
Version:
A powerful, feature-rich Angular datatable component with virtual scrolling, built for Angular 17+
85 lines (84 loc) • 1.97 kB
TypeScript
import { Plugin, PluginConfig, PluginManager } from '../interfaces/plugin.interface';
import * as i0 from "@angular/core";
/**
* Plugin Service
* Extensible plugin system for custom extensions
*/
export declare class PluginService implements PluginManager {
private plugins;
private metadata;
private config;
private datatableInstance;
private pluginsSubject;
readonly plugins$: import("rxjs").Observable<Plugin[]>;
private eventEmitter;
private storage;
private logger;
constructor();
/**
* Initialize plugin system
*/
initialize(config: PluginConfig, datatableInstance: any): Promise<void>;
/**
* Register plugin
*/
register(plugin: Plugin): Promise<void>;
/**
* Unregister plugin
*/
unregister(pluginId: string): Promise<void>;
/**
* Get plugin
*/
get(pluginId: string): Plugin | undefined;
/**
* Get all plugins
*/
getAll(): Plugin[];
/**
* Enable plugin
*/
enable(pluginId: string): void;
/**
* Disable plugin
*/
disable(pluginId: string): void;
/**
* Check if plugin is loaded
*/
isLoaded(pluginId: string): boolean;
/**
* Execute hook
*/
executeHook(hookName: string, ...args: any[]): Promise<any>;
/**
* Call plugin API
*/
callApi(pluginId: string, method: string, ...args: any[]): any;
/**
* Validate plugin
*/
private validatePlugin;
/**
* Create plugin context
*/
private createContext;
/**
* Create event emitter
*/
private createEventEmitter;
/**
* Create storage
*/
private createStorage;
/**
* Create logger
*/
private createLogger;
/**
* Update plugin metadata
*/
private updateMetadata;
static ɵfac: i0.ɵɵFactoryDeclaration<PluginService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<PluginService>;
}