UNPKG

snabbdom

Version:

A virtual DOM library with focus on simplicity, modularity, powerful features and performance.

114 lines 3.5 kB
function createElement(tagName, options) { return document.createElement(tagName, options); } function createElementNS(namespaceURI, qualifiedName, options) { return document.createElementNS(namespaceURI, qualifiedName, options); } function createDocumentFragment() { return parseFragment(document.createDocumentFragment()); } function createTextNode(text) { return document.createTextNode(text); } function createComment(text) { return document.createComment(text); } function insertBefore(parentNode, newNode, referenceNode) { if (isDocumentFragment(parentNode)) { let node = parentNode; while (node && isDocumentFragment(node)) { const fragment = parseFragment(node); node = fragment.parent; } parentNode = node !== null && node !== void 0 ? node : parentNode; } if (isDocumentFragment(newNode)) { newNode = parseFragment(newNode, parentNode); } if (referenceNode && isDocumentFragment(referenceNode)) { referenceNode = parseFragment(referenceNode).firstChildNode; } parentNode.insertBefore(newNode, referenceNode); } function removeChild(node, child) { node.removeChild(child); } function appendChild(node, child) { if (isDocumentFragment(child)) { child = parseFragment(child, node); } node.appendChild(child); } function parentNode(node) { if (isDocumentFragment(node)) { while (node && isDocumentFragment(node)) { const fragment = parseFragment(node); node = fragment.parent; } return node !== null && node !== void 0 ? node : null; } return node.parentNode; } function nextSibling(node) { var _a; if (isDocumentFragment(node)) { const fragment = parseFragment(node); const parent = parentNode(fragment); if (parent && fragment.lastChildNode) { const children = Array.from(parent.childNodes); const index = children.indexOf(fragment.lastChildNode); return (_a = children[index + 1]) !== null && _a !== void 0 ? _a : null; } return null; } return node.nextSibling; } function tagName(elm) { return elm.tagName; } function setTextContent(node, text) { node.textContent = text; } function getTextContent(node) { return node.textContent; } function isElement(node) { return node.nodeType === 1; } function isText(node) { return node.nodeType === 3; } function isComment(node) { return node.nodeType === 8; } function isDocumentFragment(node) { return node.nodeType === 11; } function parseFragment(fragmentNode, parentNode) { var _a, _b, _c; const fragment = fragmentNode; (_a = fragment.parent) !== null && _a !== void 0 ? _a : (fragment.parent = parentNode !== null && parentNode !== void 0 ? parentNode : null); (_b = fragment.firstChildNode) !== null && _b !== void 0 ? _b : (fragment.firstChildNode = fragmentNode.firstChild); (_c = fragment.lastChildNode) !== null && _c !== void 0 ? _c : (fragment.lastChildNode = fragmentNode.lastChild); return fragment; } export const htmlDomApi = { createElement, createElementNS, createTextNode, createDocumentFragment, createComment, insertBefore, removeChild, appendChild, parentNode, nextSibling, tagName, setTextContent, getTextContent, isElement, isText, isComment, isDocumentFragment }; //# sourceMappingURL=htmldomapi.js.map