@xcons/widget
Version:
XCon Studio widget utilities with advanced template rendering, reactive binding system and registry pattern support
25 lines (24 loc) • 1.23 kB
TypeScript
import type { IWidget, WidgetConfig, WidgetContext } from '../widget/interfaces';
import { WidgetRegistry } from './widget-registry';
export interface WidgetRef<T extends IWidget = IWidget> {
instance: T;
container: HTMLElement | null;
widgetId: string;
}
export interface MountConfig {
context?: Partial<WidgetContext>;
autoInit?: boolean;
}
export declare class WidgetFactory {
private registry;
constructor(registry?: WidgetRegistry);
createWidget(selector: string, config?: Partial<WidgetConfig>): WidgetRef<IWidget>;
createWidget<T extends IWidget>(widgetClass: new (...args: any[]) => T, config?: Partial<WidgetConfig>): WidgetRef<T>;
createAndMount(selector: string, container: HTMLElement, mountConfig?: MountConfig): Promise<WidgetRef<IWidget>>;
createAndMount<T extends IWidget>(widgetClass: new (...args: any[]) => T, container: HTMLElement, mountConfig?: MountConfig): Promise<WidgetRef<T>>;
attach(widgetRef: WidgetRef, container: HTMLElement, contextOverride?: Partial<WidgetContext>): Promise<void>;
detach(widgetRef: WidgetRef): void;
private detectMobile;
dispose(widgetRef: WidgetRef): void;
}
export declare const defaultWidgetFactory: WidgetFactory;