@xcons/widget
Version:
XCon Studio widget utilities with advanced template rendering, reactive binding system and registry pattern support
44 lines (43 loc) • 1.23 kB
TypeScript
import type { InitializationMode, WidgetConfig } from '../widget/interfaces';
export interface RegisteredWidget {
selector: string;
widgetClass: new (...args: any[]) => any;
config: WidgetConfig;
initMode: InitializationMode;
isReady: boolean;
}
export declare class WidgetRegistry {
private widgets;
/**
* Register widget with selector
*/
registerWidget(selector: string, widgetClass: any, config: WidgetConfig, initMode?: InitializationMode): void;
/**
* Mark all widgets as ready (called by DOM manager)
*/
markAllWidgetsAsReady(): void;
/**
* Create widget instance by selector
*/
createWidget(selector: string, config?: Partial<WidgetConfig>): any | null;
/**
* Get all registered widget selectors
*/
getRegisteredSelectors(): string[];
/**
* Get registered widget by selector
*/
getRegisteredWidget(selector: string): RegisteredWidget | undefined;
/**
* Get all registered widgets
*/
getRegisteredWidgets(): RegisteredWidget[];
/**
* Unregister widget
*/
unregisterWidget(selector: string): boolean;
/**
* Clear all registered widgets
*/
clear(): void;
}