HtmlElementContext.ts
37 lines
| 998 B
| video/mp2t
|
TypeScriptLexer
|
|
r7 | import dom = require("dojo/dom-construct"); | ||
| import { argumentNotEmptyString } from "@implab/core-amd/safe"; | ||||
| import { BuildContextBase } from "./BuildContextBase"; | ||||
|
|
r22 | export class HtmlElementContext extends BuildContextBase<HTMLElement> { | ||
|
|
r7 | elementType: string; | ||
| _element: HTMLElement | undefined; | ||||
| constructor(elementType: string) { | ||||
| argumentNotEmptyString(elementType, "elementType"); | ||||
| super(); | ||||
| this.elementType = elementType; | ||||
| } | ||||
| _addChild(child: any): void { | ||||
| if (!this._element) | ||||
| throw new Error("The HTML element isn't created"); | ||||
|
|
r59 | dom.place(this.getItemDom(child), this._element); | ||
|
|
r7 | } | ||
| _create(attrs: object, children: any[]) { | ||||
| this._element = dom.create(this.elementType, attrs); | ||||
| if (children) | ||||
| children.forEach(v => this._addChild(v)); | ||||
| } | ||||
|
|
r19 | _getDomNode() { | ||
|
|
r7 | if (!this._element) | ||
| throw new Error("The HTML element isn't created"); | ||||
| return this._element; | ||||
| } | ||||
| } | ||||
