UNPKG

cui-light

Version:
184 lines (183 loc) 5.75 kB
import { CuiUtils } from "./utils"; export interface ICuiLogger { debug(message: string, functionName?: string): void; error(message: string, functionName?: string): void; warning(message: string, functionName?: string): void; exception(e: Error, functionName?: string): void; performance(callback: any, functionName?: string): void; setId(id: string): void; } export interface IUIInteractionProvider { mutate(callback: any, ctx: any, ...args: any[]): void; fetch(callback: any, ctx: any, ...args: any[]): void; } export interface ICuiDictionary<T> { add(key: string, value: T): void; remove(key: string): void; get(key: string): T | undefined; containsKey(key: string): boolean; keys(): string[]; values(): T[]; indexOf(key: string): number; update(key: string, value: T): void; clear(): void; } export interface ICuiDictionaryItem<T> { key: string; value: T; } export interface ICuiComponentHandler { handle(args: any): void; refresh(args: any): void; destroy(): void; } export interface ICuiOpenable { open(args?: any): Promise<boolean>; } export interface ICuiSwitchable { switch(index: number): Promise<boolean>; } export interface ICuiClosable { close(args?: any): Promise<boolean>; } export interface CuiCachable { refresh(): boolean; } export interface ICuiParsable { parse(val: any): void; } export interface ICui { getId(): string; } export interface ICuiManager<T> { put(key: string, element: T): void; get(key: string): T | undefined; has(key: string): boolean; remove(key: string): boolean; clear(): void; } export interface ICuiPlugin { description: string; name: string; setup: any; init(utils: CuiUtils): void; destroy(): void; } export interface ICuiMutiationPlugin { mutation(record: MutationRecord): Promise<boolean>; } export interface ICuiEventBus { on(name: string, callback: any, cui?: CuiElement): string | null; detach(name: string, id: string, cui?: CuiElement): void; detachAll(name: string, cui?: CuiElement): void; emit(event: string, cuid: string | null, ...args: any[]): Promise<boolean>; isSubscribing(name: string, id: string, cui?: CuiElement): boolean; detachByCuid(event: string, cuid: string): void; } export interface ICuiCallbackExecutor { execute(callback: any, args: any[]): Promise<void>; } export interface CuiEventObj { callback: any; $cuid: string | null; } export interface CuiEventReceiver { [id: string]: CuiEventObj; } export interface ICuiEventEmitHandler { handle(receiver: CuiEventReceiver, cuid: string | null, args: any[]): Promise<void>; } export interface CuiContext { getId(): string; } export interface ICuiComponentFactory { get(element: Element, sutils: CuiUtils): ICuiComponentHandler; } export interface ICuiComponent { attribute: string; getStyle(): string | null; get(element: HTMLElement, sutils: CuiUtils): ICuiComponentHandler; } export interface ICuiPluginManager { init(utils: CuiUtils): void; get(name: string): ICuiPlugin | undefined; onMutation(mutation: MutationRecord): Promise<boolean>; } export interface ICuiObservableArg { } export interface ICuiObservable { key: string; on(arg: ICuiObservableArg): Promise<boolean>; } export interface CuiObservables { [key: string]: ICuiObservable; } export interface CuiHandlers { [id: string]: ICuiComponentHandler; } export interface CuiElement { $cuid: string | null; $handlers?: CuiHandlers; } export interface ICuiObserver { observe(target: Element): void; unobserve(target: Element): void; connect(): void; disconnect(): void; } export interface ICuiEventListener<T> { setCallback(callback: (t: T) => void): void; isInProgress(): boolean; attach(): void; detach(): void; isAttached(): boolean; } export interface CuiAlertData { title: string; message: string; reverse?: boolean; onCancel?: () => void; onOk?: () => void; onYes?: () => void; onNo?: () => void; } export interface ICuiDevelopmentTool { registerElement(element: HTMLElement, cuid: string, component: string): void; unregisterElement(cuid: string, component: string): void; setProperty<T>(cuid: string, component: string, name: string, t: T): void; pushState(cuid: string, component: string, type: CuiDevelopmentStateType, message: string, functionName?: string): void; log(type: CuiDevelopmentStateType, message: string, functionName?: string): void; } export interface ICuiDevelopmentToolApi { getProperty<T>(cuid: string, component: string, name: string): T; getElement<T>(cuid: string): CuiDevelopmentElement<T>; } export interface CuiDevelopmentElement<T> { element: HTMLElement; cuid: string; components: CuiDevelopmentComponents<T>; properties: CuiDevelopmentProperties<T>; } export interface CuiDevelopmentProperties<T> { [name: string]: T; } export interface CuiDevelopmentComponents<T> { [name: string]: CuiDevelopmentComponent<T>; } export interface CuiDevelopmentComponent<T> { name: string; registerDt: number; properties: CuiDevelopmentProperties<T>; state: CuiDevelopmentState[]; } export interface CuiDevelopmentState { message: string; function: string; timestamp: number; type: CuiDevelopmentStateType; } export interface KeyDownEvent { timestamp: number; event: KeyboardEvent; } export declare type CuiDevelopmentStateType = "info" | "error" | "warning";