FunctionRendition.ts
29 lines
| 801 B
| video/mp2t
|
TypeScriptLexer
cin
|
r63 | import { argumentNotNull } from "@implab/core-amd/safe"; | ||
import { RenditionBase } from "./RenditionBase"; | ||||
export class FunctionRendition extends RenditionBase<Node> { | ||||
private _component: (props: any) => any; | ||||
private _node: Node | undefined; | ||||
constructor(component: (props: any) => any) { | ||||
super(); | ||||
argumentNotNull(component, "component"); | ||||
this._component = component; | ||||
} | ||||
_create(attrs: object, children: any[]) { | ||||
const _attrs: any = attrs || {}; | ||||
_attrs.children = children.map(x => this.getItemDom(x)); | ||||
this._node = this.getItemDom(this._component.call(null, _attrs)); | ||||
} | ||||
_getDomNode() { | ||||
if (!this._node) | ||||
throw new Error("The instance of the widget isn't created"); | ||||
return this._node; | ||||
} | ||||
} | ||||