114 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
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
 |