UNPKG

web-atoms-core

Version:
52 lines 2.27 kB
export interface IAtomComponent { element: any; viewModel: any; localViewModel: any; data: any; app: { callLater: (f: () => void) => void; }; runAfterInit(f: () => void): void; setLocalValue(e: any, name: string, value: any): void; bindEvent(e: any, name: string, handler: any): any; bind(e: any, name: string, path: any, twoWays: boolean, converter: any, source?: any): any; } /** * Bindings needs to be cloned... */ export declare type bindingFunction<T extends IAtomComponent = IAtomComponent> = (control: T, e?: any) => any; export interface IData<T> extends IAtomComponent { data: T; } export interface IVM<T> extends IAtomComponent { viewModel: T; } export interface ILVM<T> extends IAtomComponent { localViewModel: T; } export interface IBinder<T extends IAtomComponent> { presenter(name?: string): Bind; event(handler: (control: T, e?: CustomEvent) => void): any; oneTime(path: bindingFunction<T>): Bind; oneWay(path: bindingFunction<T>): Bind; twoWays(path: bindingFunction<T>, events?: string[]): Bind; } export default class Bind { readonly setupFunction: ((name: string, b: Bind, c: IAtomComponent, e: any, self?: any) => void); readonly name?: string; readonly eventList?: string[]; static forData<D>(): IBinder<IData<D>>; static forViewModel<D>(): IBinder<IVM<D>>; static forLocalViewModel<D>(): IBinder<ILVM<D>>; static presenter(name?: string): Bind; static event<T extends IAtomComponent = IAtomComponent>(sourcePath: (control: T, e?: CustomEvent) => void): any; static oneTime<T extends IAtomComponent = IAtomComponent>(sourcePath: bindingFunction<T>): Bind; static oneWay<T extends IAtomComponent = IAtomComponent>(sourcePath: bindingFunction<T>): Bind; static twoWays<T extends IAtomComponent = IAtomComponent>(sourcePath: bindingFunction<T>, events?: string[]): Bind; readonly sourcePath: bindingFunction; readonly pathList: string[][]; readonly thisPathList: string[][]; readonly combined: string[][]; constructor(setupFunction: ((name: string, b: Bind, c: IAtomComponent, e: any, self?: any) => void), sourcePath: bindingFunction, name?: string, eventList?: string[]); } //# sourceMappingURL=Bind.d.ts.map