You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.5 KiB
77 lines
1.5 KiB
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; |
|
}; |
|
|
|
|
|
|