##// END OF EJS Templates
`Subscribable` is made compatible with rxjs, added map, filter and scan...
`Subscribable` is made compatible with rxjs, added map, filter and scan methods to observables. `watch` can accept either stateful object and a property name to observe or the subscribable value. added ref attribute to the markup elements and widgets. `bind`, `tooggleClass` and `attach` methods can be passed to `ref` attribute in the markup to interact with elemnts and widgets.

File last commit:

r101:bb6b1db1b430 v1.3
r102:c65ea2350b1a v1.3
Show More
FunctionRendition.ts
30 lines | 898 B | video/mp2t | TypeScriptLexer
/ djx / src / main / ts / tsx / FunctionRendition.ts
import { argumentNotNull } from "@implab/core-amd/safe";
import { getItemDom } from "./render";
import { RenditionBase } from "./RenditionBase";
export class FunctionRendition extends RenditionBase<Node> {
private _component: (...args: any[]) => any;
private _node: Node | undefined;
constructor(component: (...args: any[]) => any) {
super();
argumentNotNull(component, "component");
this._component = component;
}
protected _create(attrs: object, children: any[]) {
const _attrs: any = attrs || {};
const _children = children.map(x => getItemDom(x));
this._node = getItemDom(
this._component.call(null, { ..._attrs, children: _children }));
}
protected _getDomNode() {
if (!this._node)
throw new Error("The instance of the widget isn't created");
return this._node;
}
}