UNPKG

mostly-dom

Version:
39 lines 1.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); function removeVNodes(parentNode, vNodes, startIndex, endIndex, moduleCallbacks) { for (; startIndex <= endIndex; ++startIndex) { var vNode = vNodes[startIndex]; if (!vNode) continue; if (isElementVNode(vNode)) { var props = vNode.props; invokeDestroyHook(vNode, moduleCallbacks); var removeElement = moduleCallbacks.createRemoveElementFn(vNode.element); moduleCallbacks.remove(vNode, removeElement); if (props.remove) props.remove(vNode, removeElement); else removeElement(); } else { parentNode.removeChild(vNode.element); } } } exports.removeVNodes = removeVNodes; function isElementVNode(vNode) { return vNode.tagName && vNode.element; } function invokeDestroyHook(vNode, moduleCallbacks) { var props = vNode.props; if (props.destroy) props.destroy(vNode); if (isElementVNode(vNode)) moduleCallbacks.destroy(vNode); var children = vNode.children; if (!children) return; for (var i = 0; i < children.length; ++i) invokeDestroyHook(children[i], moduleCallbacks); } //# sourceMappingURL=removeVNodes.js.map