summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/domutils/lib/manipulation.js
diff options
context:
space:
mode:
authorRaindropsSys <contact@minteck.org>2023-04-06 22:18:28 +0200
committerRaindropsSys <contact@minteck.org>2023-04-06 22:18:28 +0200
commit83354b2b88218090988dd6e526b0a2505b57e0f1 (patch)
treee3c73c38a122a78bb7e66fbb99056407edd9d4b9 /includes/external/addressbook/node_modules/domutils/lib/manipulation.js
parent47b8f2299a483024c4a6a8876af825a010954caa (diff)
downloadpluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.tar.gz
pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.tar.bz2
pluralconnect-83354b2b88218090988dd6e526b0a2505b57e0f1.zip
Updated 5 files and added 1110 files (automated)
Diffstat (limited to 'includes/external/addressbook/node_modules/domutils/lib/manipulation.js')
-rw-r--r--includes/external/addressbook/node_modules/domutils/lib/manipulation.js137
1 files changed, 137 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/domutils/lib/manipulation.js b/includes/external/addressbook/node_modules/domutils/lib/manipulation.js
new file mode 100644
index 0000000..31c5cc0
--- /dev/null
+++ b/includes/external/addressbook/node_modules/domutils/lib/manipulation.js
@@ -0,0 +1,137 @@
+"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
+ *
+ * @category Manipulation
+ * @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
+ *
+ * @category Manipulation
+ * @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;
+ elem.parent = null;
+ }
+}
+exports.replaceElement = replaceElement;
+/**
+ * Append a child to an element.
+ *
+ * @category Manipulation
+ * @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.
+ *
+ * @category Manipulation
+ * @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.
+ *
+ * @category Manipulation
+ * @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.
+ *
+ * @category Manipulation
+ * @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;
+//# sourceMappingURL=manipulation.js.map \ No newline at end of file