visual-dom-diff
Version:
Highlight differences between two DOM trees.
72 lines (71 loc) • 2.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var util_1 = require("./util");
var skipChildrenMap = new Set();
skipChildrenMap.add('IMG');
skipChildrenMap.add('VIDEO');
skipChildrenMap.add('IFRAME');
skipChildrenMap.add('OBJECT');
skipChildrenMap.add('SVG');
var skipSelfMap = new Set();
skipSelfMap.add('BDO');
skipSelfMap.add('BDI');
skipSelfMap.add('Q');
skipSelfMap.add('CITE');
skipSelfMap.add('CODE');
skipSelfMap.add('DATA');
skipSelfMap.add('TIME');
skipSelfMap.add('VAR');
skipSelfMap.add('DFN');
skipSelfMap.add('ABBR');
skipSelfMap.add('STRONG');
skipSelfMap.add('EM');
skipSelfMap.add('BIG');
skipSelfMap.add('SMALL');
skipSelfMap.add('MARK');
skipSelfMap.add('SUB');
skipSelfMap.add('SUP');
skipSelfMap.add('SAMP');
skipSelfMap.add('KBD');
skipSelfMap.add('B');
skipSelfMap.add('I');
skipSelfMap.add('S');
skipSelfMap.add('U');
skipSelfMap.add('SPAN');
function optionsToConfig(_a) {
var _b = _a === void 0 ? {} : _a, _c = _b.addedClass, addedClass = _c === void 0 ? 'vdd-added' : _c, _d = _b.modifiedClass, modifiedClass = _d === void 0 ? 'vdd-modified' : _d, _e = _b.removedClass, removedClass = _e === void 0 ? 'vdd-removed' : _e, _f = _b.skipModified, skipModified = _f === void 0 ? false : _f, skipChildren = _b.skipChildren, skipSelf = _b.skipSelf, _g = _b.diffText, diffText = _g === void 0 ? util_1.diffText : _g;
return {
addedClass: addedClass,
diffText: diffText,
modifiedClass: modifiedClass,
removedClass: removedClass,
skipModified: skipModified,
skipChildren: function (node) {
if (!util_1.isElement(node) &&
!util_1.isDocumentFragment(node) &&
!util_1.isDocument(node)) {
return true;
}
if (skipChildren) {
var result = skipChildren(node);
if (typeof result === 'boolean') {
return result;
}
}
return skipChildrenMap.has(node.nodeName);
},
skipSelf: function (node) {
if (!util_1.isText(node) && !util_1.isElement(node)) {
return true;
}
if (skipSelf) {
var result = skipSelf(node);
if (typeof result === 'boolean') {
return result;
}
}
return skipSelfMap.has(node.nodeName);
},
};
}
exports.optionsToConfig = optionsToConfig;