mostly-dom
Version:
A virtual-dom for TypeScript
35 lines • 1.37 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var dom_scope_attribute_1 = require("./dom-scope-attribute");
function createElement(vNode, moduleCallbacks, insertedVNodeQueue) {
var props = vNode.props;
moduleCallbacks.init(vNode);
if (props.init)
props.init(vNode);
if (vNode.tagName) {
var element = vNode.namespace
? document.createElementNS(vNode.namespace, vNode.tagName)
: document.createElement(vNode.tagName);
if (vNode.scope)
element.setAttribute(dom_scope_attribute_1.SCOPE_ATTRIBUTE, vNode.scope);
vNode.element = element;
var children = vNode.children;
if (children) {
var childCount = children.length;
for (var i = 0; i < childCount; ++i)
element.appendChild(createElement(children[i], moduleCallbacks, insertedVNodeQueue).element);
}
if (vNode.text)
element.appendChild(document.createTextNode(vNode.text));
moduleCallbacks.create(vNode);
if (props.create)
props.create(vNode);
if (props.insert)
insertedVNodeQueue.push(vNode);
return vNode;
}
vNode.element = document.createTextNode(vNode.text);
return vNode;
}
exports.createElement = createElement;
//# sourceMappingURL=createElement.js.map
;