UNPKG

2.42 kBTypeScriptView Raw
1/// <reference types="node" />
2import { EventEmitter } from 'events';
3import { Formatter } from './formatters/common';
4export interface IWatched extends Object {
5 $$watchers?: {
6 [key: string]: Binding;
7 };
8}
9export interface EventArgs {
10 source: Binding;
11 target: any;
12 eventArgs: {
13 fieldName: string;
14 value: any;
15 };
16}
17export declare class Binding extends EventEmitter {
18 protected _expression: string;
19 private _target;
20 static defineProperty(target: any, property: string | symbol, value?: any): Binding;
21 static readonly ChangingFieldEventName = "fieldChanging";
22 static readonly ChangedFieldEventName = "fieldChanged";
23 static readonly ErrorEventName = "bindingError";
24 static unbindify<T>(element: T): Partial<T>;
25 constructor(_expression: string, _target: IWatched, register?: boolean);
26 formatter: Formatter<any>;
27 get expression(): string;
28 get target(): IWatched;
29 set target(value: IWatched);
30 private evaluator;
31 onChanging(handler: (ev: EventArgs) => void): void;
32 onChanged(handler: (ev: EventArgs) => void, doNotTriggerHandler?: boolean): void;
33 onError(handler: (ev: EventArgs) => void): void;
34 private registeredBindings;
35 pipe(binding: Binding): void;
36 getValue(): any;
37 register(): void;
38 apply(elements: any, doNotRegisterEvents?: boolean): void;
39 static getSetter(target: IWatched, expression: string): (value: any, source: any, doNotTriggerEvents?: boolean) => Promise<unknown>;
40 setValue(value: any, source?: Binding, doNotTriggerEvents?: boolean): void;
41}
42export declare class PromiseBinding extends Binding {
43 constructor(expression: string, target: PromiseLike<any>);
44}
45export declare class ObservableArray<T> extends EventEmitter {
46 array: Array<T>;
47 constructor(array: Array<T>);
48 get length(): number;
49 push(...items: T[]): void;
50 shift(): void;
51 pop(): void;
52 unshift: (item: any) => void;
53 replace(index: any, item: any): void;
54 init(): void;
55 indexOf(searchElement: T, fromIndex?: number): number;
56 toString(): string;
57}
58export interface ObservableArrayEventArgs<T> {
59 action: 'init' | 'push' | 'shift' | 'pop' | 'unshift' | 'replace';
60 newItems?: T[];
61 oldItems?: T[];
62}
63export declare class WatchBinding extends Binding {
64 constructor(expression: string, target: any, interval: number);
65 private lastValue;
66 private check;
67}