| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 | "use strict";Object.defineProperty(exports, "__esModule", { value: true });exports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;/** * Remove an element from the dom * * @param elem The element to be removed */function removeElement(elem) {    if (elem.prev)        elem.prev.next = elem.next;    if (elem.next)        elem.next.prev = elem.prev;    if (elem.parent) {        var childs = elem.parent.children;        childs.splice(childs.lastIndexOf(elem), 1);    }}exports.removeElement = removeElement;/** * Replace an element in the dom * * @param elem The element to be replaced * @param replacement The element to be added */function replaceElement(elem, replacement) {    var prev = (replacement.prev = elem.prev);    if (prev) {        prev.next = replacement;    }    var next = (replacement.next = elem.next);    if (next) {        next.prev = replacement;    }    var parent = (replacement.parent = elem.parent);    if (parent) {        var childs = parent.children;        childs[childs.lastIndexOf(elem)] = replacement;    }}exports.replaceElement = replaceElement;/** * Append a child to an element. * * @param elem The element to append to. * @param child The element to be added as a child. */function appendChild(elem, child) {    removeElement(child);    child.next = null;    child.parent = elem;    if (elem.children.push(child) > 1) {        var sibling = elem.children[elem.children.length - 2];        sibling.next = child;        child.prev = sibling;    }    else {        child.prev = null;    }}exports.appendChild = appendChild;/** * Append an element after another. * * @param elem The element to append after. * @param next The element be added. */function append(elem, next) {    removeElement(next);    var parent = elem.parent;    var currNext = elem.next;    next.next = currNext;    next.prev = elem;    elem.next = next;    next.parent = parent;    if (currNext) {        currNext.prev = next;        if (parent) {            var childs = parent.children;            childs.splice(childs.lastIndexOf(currNext), 0, next);        }    }    else if (parent) {        parent.children.push(next);    }}exports.append = append;/** * Prepend a child to an element. * * @param elem The element to prepend before. * @param child The element to be added as a child. */function prependChild(elem, child) {    removeElement(child);    child.parent = elem;    child.prev = null;    if (elem.children.unshift(child) !== 1) {        var sibling = elem.children[1];        sibling.prev = child;        child.next = sibling;    }    else {        child.next = null;    }}exports.prependChild = prependChild;/** * Prepend an element before another. * * @param elem The element to prepend before. * @param prev The element be added. */function prepend(elem, prev) {    removeElement(prev);    var parent = elem.parent;    if (parent) {        var childs = parent.children;        childs.splice(childs.indexOf(elem), 0, prev);    }    if (elem.prev) {        elem.prev.next = prev;    }    prev.parent = parent;    prev.prev = elem.prev;    prev.next = elem;    elem.prev = prev;}exports.prepend = prepend;
 |