Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
81149 views
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
78
79