UNPKG

ember-legacy-class-transform

Version:
83 lines 1.96 kB
export class Cursor { constructor(element, nextSibling) { this.element = element; this.nextSibling = nextSibling; } } export class RealDOMBounds { constructor(bounds) { this.bounds = bounds; } parentElement() { return this.bounds.parentElement(); } firstNode() { return this.bounds.firstNode(); } lastNode() { return this.bounds.lastNode(); } } export class ConcreteBounds { constructor(parentNode, first, last) { this.parentNode = parentNode; this.first = first; this.last = last; } parentElement() { return this.parentNode; } firstNode() { return this.first; } lastNode() { return this.last; } } export class SingleNodeBounds { constructor(parentNode, node) { this.parentNode = parentNode; this.node = node; } parentElement() { return this.parentNode; } firstNode() { return this.node; } lastNode() { return this.node; } } export function bounds(parent, first, last) { return new ConcreteBounds(parent, first, last); } export function single(parent, node) { return new SingleNodeBounds(parent, node); } export function move(bounds, reference) { let parent = bounds.parentElement(); let first = bounds.firstNode(); let last = bounds.lastNode(); let node = first; while (node) { let next = node.nextSibling; parent.insertBefore(node, reference); if (node === last) return next; node = next; } return null; } export function clear(bounds) { let parent = bounds.parentElement(); let first = bounds.firstNode(); let last = bounds.lastNode(); let node = first; while (node) { let next = node.nextSibling; parent.removeChild(node); if (node === last) return next; node = next; } return null; }