UNPKG

dompro

Version:
31 lines (25 loc) 1.14 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateDOM = updateDOM; var _createElement = require('./createElement.js'); var _hasChanged = require('./hasChanged.js'); var _propHandler = require('./propHandler.js'); function updateDOM($parent, newNode, oldNode) { var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0; if (!oldNode) { $parent.appendChild((0, _createElement.createElement)(newNode)); } else if (!newNode) { $parent.removeChild($parent.childNodes[index]); } else if ((0, _hasChanged.hasChanged)(newNode, oldNode)) { $parent.replaceChild((0, _createElement.createElement)(newNode), $parent.childNodes[index]); } else if (newNode.type) { (0, _propHandler.updateProps)($parent.childNodes[index], newNode.props, oldNode.props); var newLength = newNode.children.length; var oldLength = oldNode.children.length; for (var i = 0; i < newLength || i < oldLength; i++) { updateDOM($parent.childNodes[index], newNode.children[i], oldNode.children[i], i); } } }