aurelia-templating
Version:
An extensible HTML templating engine supporting databinding, custom elements, attached behaviors and more.
82 lines (73 loc) • 2.79 kB
text/typescript
import { View } from './view';
import { ViewStrategy } from './view-strategy';
/**
* An optional interface describing the created convention.
*/
export interface ComponentCreated {
/**
* Implement this hook if you want to perform custom logic after the constructor has been called.
* At this point in time, the view has also been created and both the view-model and the view
* are connected to their controller. The hook will recieve the instance of the "owningView".
* This is the view that the component is declared inside of. If the component itself has a view,
* this will be passed second.
*/
created(owningView: View, myView: View): void;
}
/**
* An optional interface describing the bind convention.
*/
export interface ComponentBind {
/**
* Implement this hook if you want to perform custom logic when databinding is activated on the view and view-model.
* The "binding context" to which the component is being bound will be passed first.
* An "override context" will be passed second. The override context contains information used to traverse
* the parent hierarchy and can also be used to add any contextual properties that the component wants to add.
*/
bind(bindingContext: any, overrideContext: any): void;
}
/**
* An optional interface describing the attached convention.
*/
export interface ComponentAttached {
/**
* Implement this hook if you want to perform custom logic when the component is attached to the DOM (in document).
*/
attached(): void;
}
/**
* An optional interface describing the detached convention.
*/
export interface ComponentDetached {
/**
* Implement this hook if you want to perform custom logic if/when the component is removed from the the DOM.
*/
detached(): void;
}
/**
* An optional interface describing the unbind convention.
*/
export interface ComponentUnbind {
/**
* Implement this hook if you want to perform custom logic after the component is detached and unbound.
*/
unbind(): void;
}
/**
* An optional interface describing the getViewStrategy convention for dynamic components (used with the compose element or the router).
*/
export interface DynamicComponentGetViewStrategy {
/**
* Implement this hook if you want to provide custom view strategy when this component is used with the compose element or the router.
*/
getViewStrategy(): string | ViewStrategy;
}
/**
* An optional interface describing the `propertyChanged` convention for bindable properties
*/
export interface ComponentPropertyChanged {
propertyChanged(name: string, newValue: any, oldValue: any): void;
}
/** @internal */
export type ObservableGetterFunction = Function & {
getObserver?(...args: unknown[]): any;
}