@akala/core
Version:
68 lines (67 loc) • 2.42 kB
TypeScript
/// <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;
}