.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / domutils / lib / manipulation.js
diff --git a/.config/coc/extensions/node_modules/coc-prettier/node_modules/domutils/lib/manipulation.js b/.config/coc/extensions/node_modules/coc-prettier/node_modules/domutils/lib/manipulation.js
new file mode 100644 (file)
index 0000000..6b44cbc
--- /dev/null
@@ -0,0 +1,77 @@
+exports.removeElement = function(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.replaceElement = function(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.appendChild = function(elem, child){
+       child.parent = elem;
+
+       if(elem.children.push(child) !== 1){
+               var sibling = elem.children[elem.children.length - 2];
+               sibling.next = child;
+               child.prev = sibling;
+               child.next = null;
+       }
+};
+
+exports.append = function(elem, next){
+       var parent = elem.parent,
+               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.prepend = function(elem, prev){
+       var parent = elem.parent;
+       if(parent){
+               var childs = parent.children;
+               childs.splice(childs.lastIndexOf(elem), 0, prev);
+       }
+
+       if(elem.prev){
+               elem.prev.next = prev;
+       }
+       
+       prev.parent = parent;
+       prev.prev = elem.prev;
+       prev.next = elem;
+       elem.prev = prev;
+};
+
+