package.test._utils.dom.js Maven / Gradle / Ivy
var domUtils = (function (exports) {
'use strict';
const range = document.createRange();
function parseHTML(html) {
return range.createContextualFragment(html);
}
// equivalent to jQuery's :visble
function isVisible(el) {
return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
}
function hideElement(el) {
if (el.style.display === 'none') {
return;
}
// back up the existing display setting in data-style-display
if (el.style.display) {
el.dataset.styleDisplay = el.style.display;
}
el.style.display = 'none';
}
function showElement(el) {
if (el.style.display !== 'none') {
return;
}
if (el.dataset.styleDisplay) {
// restore backed-up dispay property
el.style.display = el.dataset.styleDisplay;
delete el.dataset.styleDisplay;
} else {
el.style.display = '';
}
}
function emptyChildNodes(el) {
if (el.firstChild) {
el.removeChild(el.firstChild);
emptyChildNodes(el);
}
}
function replaceChildNodes(el, newChildNodes) {
emptyChildNodes(el);
if (newChildNodes instanceof DocumentFragment) {
el.appendChild(newChildNodes);
} else if (typeof newChildNodes === 'string') {
el.appendChild(parseHTML(newChildNodes));
} else if (typeof newChildNodes.forEach === 'function') {
newChildNodes.forEach((node) => {
el.appendChild(node);
});
}
}
exports.emptyChildNodes = emptyChildNodes;
exports.hideElement = hideElement;
exports.isVisible = isVisible;
exports.parseHTML = parseHTML;
exports.replaceChildNodes = replaceChildNodes;
exports.showElement = showElement;
Object.defineProperty(exports, '__esModule', { value: true });
return exports;
})({});