.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / domutils / lib / manipulation.js
1 exports.removeElement = function(elem){
2         if(elem.prev) elem.prev.next = elem.next;
3         if(elem.next) elem.next.prev = elem.prev;
4
5         if(elem.parent){
6                 var childs = elem.parent.children;
7                 childs.splice(childs.lastIndexOf(elem), 1);
8         }
9 };
10
11 exports.replaceElement = function(elem, replacement){
12         var prev = replacement.prev = elem.prev;
13         if(prev){
14                 prev.next = replacement;
15         }
16
17         var next = replacement.next = elem.next;
18         if(next){
19                 next.prev = replacement;
20         }
21
22         var parent = replacement.parent = elem.parent;
23         if(parent){
24                 var childs = parent.children;
25                 childs[childs.lastIndexOf(elem)] = replacement;
26         }
27 };
28
29 exports.appendChild = function(elem, child){
30         child.parent = elem;
31
32         if(elem.children.push(child) !== 1){
33                 var sibling = elem.children[elem.children.length - 2];
34                 sibling.next = child;
35                 child.prev = sibling;
36                 child.next = null;
37         }
38 };
39
40 exports.append = function(elem, next){
41         var parent = elem.parent,
42                 currNext = elem.next;
43
44         next.next = currNext;
45         next.prev = elem;
46         elem.next = next;
47         next.parent = parent;
48
49         if(currNext){
50                 currNext.prev = next;
51                 if(parent){
52                         var childs = parent.children;
53                         childs.splice(childs.lastIndexOf(currNext), 0, next);
54                 }
55         } else if(parent){
56                 parent.children.push(next);
57         }
58 };
59
60 exports.prepend = function(elem, prev){
61         var parent = elem.parent;
62         if(parent){
63                 var childs = parent.children;
64                 childs.splice(childs.lastIndexOf(elem), 0, prev);
65         }
66
67         if(elem.prev){
68                 elem.prev.next = prev;
69         }
70         
71         prev.parent = parent;
72         prev.prev = elem.prev;
73         prev.next = elem;
74         elem.prev = prev;
75 };
76
77