import { App } from "../App.js"; import { IAnyInstanceType, IDisposable, INotifyPropertyChanged, PathList } from "../core/types.js"; import type { AtomControl } from "../web/controls/AtomControl.js"; import { AtomDisposableList } from "./AtomDisposableList.js"; import { ObjectProperty } from "./AtomWatcher.js"; import { IValueConverter } from "./IValueConverter.js"; import XNode, { IElementAttributes, isControl, isFactorySymbol } from "./XNode.js"; export declare abstract class AtomComponent implements INotifyPropertyChanged { readonly app: App; static readonly [isControl] = true; static readonly [isFactorySymbol] = true; readonly disposables: AtomDisposableList; readonly element: HTMLElement; data: any; viewModel: any; localViewModel: any; creator: any; protected pendingInits: Array<() => void>; private mInvalidated; private mPendingPromises; abstract get parent(): AtomControl; get vsProps(): { [k in keyof this]?: this[k]; } | IElementAttributes; private readonly eventHandlers; private readonly bindings; constructor(app: App, element?: HTMLElement); abstract atomParent(e: HTMLElement): AtomControl; bind(element: HTMLElement, name: string, path: PathList[], twoWays?: boolean | string[], valueFunc?: (...v: any[]) => any, source?: any): IDisposable; unbind(element: HTMLElement, name?: string): void; bindEvent(element: HTMLElement, name?: string, method?: EventListenerOrEventListenerObject, key?: string, capture?: boolean | AddEventListenerOptions): IDisposable; unbindEvent(element: HTMLElement, name?: string, method?: EventListenerOrEventListenerObject, key?: string): void; hasProperty(name: string): boolean; setPrimitiveValue(element: HTMLElement, name: string, value: any): void; setLocalValue(element: HTMLElement, name: string, value: any): void; dispose(e?: HTMLElement): void; abstract append(element: HTMLElement | AtomControl): AtomControl; onPropertyChanged(name: string): void; beginEdit(): IDisposable; invalidate(): void; onUpdateUI(): void; runAfterInit(f: () => void): void; registerDisposable(d: IDisposable): IDisposable; protected render(node: XNode, e?: any, creator?: any): void; protected extractControlProperties(x: XNode, name?: string | Function): {}; protected create(): void; protected preCreate(): void; protected setElementValue(element: HTMLElement, name: string, value: any): void; protected resolve(c: TService, selfName?: string | (() => any)): IAnyInstanceType; protected pushInit(): void; protected abstract createNode(app: any, e: any, iterator: any, creator: any): any; protected abstract toTemplate(app: any, iterator: any, creator: any): any; protected abstract get factory(): any; } export declare class PropertyBinding implements IDisposable { private target; readonly element: HTMLElement; readonly name: string; private twoWays; private source; path: ObjectProperty[][]; private watcher; private twoWaysDisposable; private isTwoWaySetup; private isRunning; private fromSourceToTarget; private fromTargetToSource; private disposed; constructor(target: AtomControl | any, element: HTMLElement, name: string, path: PathList[], twoWays: boolean | string[], valueFunc: ((...v: any[]) => any) | IValueConverter, source: any); setupTwoWayBinding(): void; setInverseValue(value: any): void; dispose(): void; } //# sourceMappingURL=AtomComponent.d.ts.map