UNPKG

mostly-dom

Version:
36 lines 1.22 kB
export 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); } } } 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