data-context-binding
Version:
Simple and lightweight solution for binding data to DOM elements.
80 lines (73 loc) • 2.95 kB
TypeScript
declare module 'data-context-binding' {
/**
* Get-Set DOM html root data context
* @param value data context
*/
export default function DataContextBinding(value?: any): any;
export interface DataContextBinding {
/**
* Selects all the elements that need binding and binds the data to the context.
* @param rootElement DOM root element. Child elements are also reviewed.
* @param rebinding If true, then already binded elements will rebinding.
*/
bindAllElements(rootElement: Node, rebinding: boolean = false): void;
/**
* Trying to bind this element.
* @param element DOM element.
* @param rebinding If true, then binds again.
*/
bindElement(element: Node, rebinding: boolean = false): void;
/**
* Get-Set binding context
* @param element DOM element.
* @param rebinding If true, then binds again.
*/
bindingContext(element: Node, rebinding: boolean): BindingContext | null;
// default bind function
innerHTML(event: object): boolean;
value(event: object): boolean;
check(event: object): boolean;
hidden(event: object): boolean;
enabled(event: object): boolean;
disabled(event: object): boolean;
input(event: object): boolean;
input_checkbox(event: object): boolean;
input_color(event: object): boolean;
input_date(event: object): boolean;
input_datetime_local(event: object): boolean;
input_email(event: object): boolean;
input_file(event: object): boolean;
input_hidden(event: object): boolean;
input_month(event: object): boolean;
input_number(event: object): boolean;
input_password(event: object): boolean;
input_radio(event: object): boolean;
input_range(event: object): boolean;
input_search(event: object): boolean;
input_tel(event: object): boolean;
input_text(event: object): boolean;
input_time(event: object): boolean;
input_url(event: object): boolean;
input_week(event: object): boolean;
select(event: object): boolean;
textarea(event: object): boolean;
}
export interface BindingContext {
/** Bindable DOM element */
element: Node;
/** Data Context */
source: any;
/** Property name in data context */
property: string;
/** Property path to root */
path: string[];
/** Proxy Value */
value: any;
/** Set-Get value to data-context. */
contextValue(value?: any): any;
/** Set-Get isActive value. */
isActive(activate: boolean = true): boolean;
/** Remove value in Data Context */
remove(): void;
}
}