UNPKG

@akala/core

Version:
68 lines (67 loc) 2.42 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { Formatter } from './formatters/common'; export interface IWatched extends Object { $$watchers?: { [key: string]: Binding; }; } export interface EventArgs { source: Binding; target: any; eventArgs: { fieldName: string; value: any; }; } export declare class Binding extends EventEmitter { protected _expression: string; private _target; static defineProperty(target: any, property: string | symbol, value?: any): Binding; static readonly ChangingFieldEventName = "fieldChanging"; static readonly ChangedFieldEventName = "fieldChanged"; static readonly ErrorEventName = "bindingError"; static unbindify<T>(element: T): Partial<T>; constructor(_expression: string, _target: IWatched, register?: boolean); formatter: Formatter<any>; get expression(): string; get target(): IWatched; set target(value: IWatched); private evaluator; onChanging(handler: (ev: EventArgs) => void): void; onChanged(handler: (ev: EventArgs) => void, doNotTriggerHandler?: boolean): void; onError(handler: (ev: EventArgs) => void): void; private registeredBindings; pipe(binding: Binding): void; getValue(): any; register(): void; apply(elements: any, doNotRegisterEvents?: boolean): void; static getSetter(target: IWatched, expression: string): (value: any, source: any, doNotTriggerEvents?: boolean) => Promise<unknown>; setValue(value: any, source?: Binding, doNotTriggerEvents?: boolean): void; } export declare class PromiseBinding extends Binding { constructor(expression: string, target: PromiseLike<any>); } export declare class ObservableArray<T> extends EventEmitter { array: Array<T>; constructor(array: Array<T>); get length(): number; push(...items: T[]): void; shift(): void; pop(): void; unshift: (item: any) => void; replace(index: any, item: any): void; init(): void; indexOf(searchElement: T, fromIndex?: number): number; toString(): string; } export interface ObservableArrayEventArgs<T> { action: 'init' | 'push' | 'shift' | 'pop' | 'unshift' | 'replace'; newItems?: T[]; oldItems?: T[]; } export declare class WatchBinding extends Binding { constructor(expression: string, target: any, interval: number); private lastValue; private check; }