@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
84 lines (68 loc) • 6.58 kB
JavaScript
export var CursorImpl = function CursorImpl(element, nextSibling) {
this.element = element;
this.nextSibling = nextSibling;
};
export var ConcreteBounds = /*#__PURE__*/function () {
function ConcreteBounds(parentNode, first, last) {
this.parentNode = parentNode;
this.first = first;
this.last = last;
}
var _proto = ConcreteBounds.prototype;
_proto.parentElement = function parentElement() {
return this.parentNode;
};
_proto.firstNode = function firstNode() {
return this.first;
};
_proto.lastNode = function lastNode() {
return this.last;
};
return ConcreteBounds;
}();
export var SingleNodeBounds = /*#__PURE__*/function () {
function SingleNodeBounds(parentNode, node) {
this.parentNode = parentNode;
this.node = node;
}
var _proto2 = SingleNodeBounds.prototype;
_proto2.parentElement = function parentElement() {
return this.parentNode;
};
_proto2.firstNode = function firstNode() {
return this.node;
};
_proto2.lastNode = function lastNode() {
return this.node;
};
return SingleNodeBounds;
}();
export function move(bounds, reference) {
var parent = bounds.parentElement();
var first = bounds.firstNode();
var last = bounds.lastNode();
var current = first;
while (true) {
var next = current.nextSibling;
parent.insertBefore(current, reference);
if (current === last) {
return next;
}
current = next;
}
}
export function clear(bounds) {
var parent = bounds.parentElement();
var first = bounds.firstNode();
var last = bounds.lastNode();
var current = first;
while (true) {
var next = current.nextSibling;
parent.removeChild(current);
if (current === last) {
return next;
}
current = next;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2JvdW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxXQUFNLFVBQU4sR0FDRSxvQkFBQSxPQUFBLEVBQUEsV0FBQSxFQUFpRjtBQUE5RCxPQUFBLE9BQUEsR0FBQSxPQUFBO0FBQStCLE9BQUEsV0FBQSxHQUFBLFdBQUE7QUFBbUMsQ0FEdkY7QUFNQSxXQUFNLGNBQU47QUFDRSwwQkFBQSxVQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsRUFHMEI7QUFGakIsU0FBQSxVQUFBLEdBQUEsVUFBQTtBQUNDLFNBQUEsS0FBQSxHQUFBLEtBQUE7QUFDQSxTQUFBLElBQUEsR0FBQSxJQUFBO0FBQ047O0FBTE47O0FBQUEsU0FPRSxhQVBGLEdBT0UseUJBQWE7QUFDWCxXQUFPLEtBQVAsVUFBQTtBQUNELEdBVEg7O0FBQUEsU0FXRSxTQVhGLEdBV0UscUJBQVM7QUFDUCxXQUFPLEtBQVAsS0FBQTtBQUNELEdBYkg7O0FBQUEsU0FlRSxRQWZGLEdBZUUsb0JBQVE7QUFDTixXQUFPLEtBQVAsSUFBQTtBQUNELEdBakJIOztBQUFBO0FBQUE7QUFvQkEsV0FBTSxnQkFBTjtBQUNFLDRCQUFBLFVBQUEsRUFBQSxJQUFBLEVBQXVFO0FBQW5ELFNBQUEsVUFBQSxHQUFBLFVBQUE7QUFBbUMsU0FBQSxJQUFBLEdBQUEsSUFBQTtBQUFvQjs7QUFEN0U7O0FBQUEsVUFHRSxhQUhGLEdBR0UseUJBQWE7QUFDWCxXQUFPLEtBQVAsVUFBQTtBQUNELEdBTEg7O0FBQUEsVUFPRSxTQVBGLEdBT0UscUJBQVM7QUFDUCxXQUFPLEtBQVAsSUFBQTtBQUNELEdBVEg7O0FBQUEsVUFXRSxRQVhGLEdBV0Usb0JBQVE7QUFDTixXQUFPLEtBQVAsSUFBQTtBQUNELEdBYkg7O0FBQUE7QUFBQTtBQWdCQSxPQUFNLFNBQUEsSUFBQSxDQUFBLE1BQUEsRUFBQSxTQUFBLEVBQTREO0FBQ2hFLE1BQUksTUFBTSxHQUFHLE1BQU0sQ0FBbkIsYUFBYSxFQUFiO0FBQ0EsTUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFsQixTQUFZLEVBQVo7QUFDQSxNQUFJLElBQUksR0FBRyxNQUFNLENBQWpCLFFBQVcsRUFBWDtBQUVBLE1BQUksT0FBTyxHQUFYLEtBQUE7O0FBRUEsU0FBQSxJQUFBLEVBQWE7QUFDWCxRQUFJLElBQUksR0FBRyxPQUFPLENBQWxCLFdBQUE7QUFFQSxJQUFBLE1BQU0sQ0FBTixZQUFBLENBQUEsT0FBQSxFQUFBLFNBQUE7O0FBRUEsUUFBSSxPQUFPLEtBQVgsSUFBQSxFQUFzQjtBQUNwQixhQUFBLElBQUE7QUFDRDs7QUFFRCxJQUFBLE9BQU8sR0FBUCxJQUFBO0FBQ0Q7QUFDRjtBQUVELE9BQU0sU0FBQSxLQUFBLENBQUEsTUFBQSxFQUE4QjtBQUNsQyxNQUFJLE1BQU0sR0FBRyxNQUFNLENBQW5CLGFBQWEsRUFBYjtBQUNBLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBbEIsU0FBWSxFQUFaO0FBQ0EsTUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFqQixRQUFXLEVBQVg7QUFFQSxNQUFJLE9BQU8sR0FBWCxLQUFBOztBQUVBLFNBQUEsSUFBQSxFQUFhO0FBQ1gsUUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFsQixXQUFBO0FBRUEsSUFBQSxNQUFNLENBQU4sV0FBQSxDQUFBLE9BQUE7O0FBRUEsUUFBSSxPQUFPLEtBQVgsSUFBQSxFQUFzQjtBQUNwQixhQUFBLElBQUE7QUFDRDs7QUFFRCxJQUFBLE9BQU8sR0FBUCxJQUFBO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvdW5kcywgQ3Vyc29yLCBPcHRpb24gfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNpbXBsZUVsZW1lbnQsIFNpbXBsZU5vZGUgfSBmcm9tICdAc2ltcGxlLWRvbS9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBDdXJzb3JJbXBsIGltcGxlbWVudHMgQ3Vyc29yIHtcbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IFNpbXBsZUVsZW1lbnQsIHB1YmxpYyBuZXh0U2libGluZzogT3B0aW9uPFNpbXBsZU5vZGU+KSB7fVxufVxuXG5leHBvcnQgdHlwZSBEZXN0cm95YWJsZUJvdW5kcyA9IEJvdW5kcztcblxuZXhwb3J0IGNsYXNzIENvbmNyZXRlQm91bmRzIGltcGxlbWVudHMgQm91bmRzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhcmVudE5vZGU6IFNpbXBsZUVsZW1lbnQsXG4gICAgcHJpdmF0ZSBmaXJzdDogU2ltcGxlTm9kZSxcbiAgICBwcml2YXRlIGxhc3Q6IFNpbXBsZU5vZGVcbiAgKSB7fVxuXG4gIHBhcmVudEVsZW1lbnQoKTogU2ltcGxlRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50Tm9kZTtcbiAgfVxuXG4gIGZpcnN0Tm9kZSgpOiBTaW1wbGVOb2RlIHtcbiAgICByZXR1cm4gdGhpcy5maXJzdDtcbiAgfVxuXG4gIGxhc3ROb2RlKCk6IFNpbXBsZU5vZGUge1xuICAgIHJldHVybiB0aGlzLmxhc3Q7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNpbmdsZU5vZGVCb3VuZHMgaW1wbGVtZW50cyBCb3VuZHMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudE5vZGU6IFNpbXBsZUVsZW1lbnQsIHByaXZhdGUgbm9kZTogU2ltcGxlTm9kZSkge31cblxuICBwYXJlbnRFbGVtZW50KCk6IFNpbXBsZUVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBmaXJzdE5vZGUoKTogU2ltcGxlTm9kZSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGxhc3ROb2RlKCk6IFNpbXBsZU5vZGUge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmUoYm91bmRzOiBCb3VuZHMsIHJlZmVyZW5jZTogT3B0aW9uPFNpbXBsZU5vZGU+KTogT3B0aW9uPFNpbXBsZU5vZGU+IHtcbiAgbGV0IHBhcmVudCA9IGJvdW5kcy5wYXJlbnRFbGVtZW50KCk7XG4gIGxldCBmaXJzdCA9IGJvdW5kcy5maXJzdE5vZGUoKTtcbiAgbGV0IGxhc3QgPSBib3VuZHMubGFzdE5vZGUoKTtcblxuICBsZXQgY3VycmVudDogU2ltcGxlTm9kZSA9IGZpcnN0O1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbGV0IG5leHQgPSBjdXJyZW50Lm5leHRTaWJsaW5nO1xuXG4gICAgcGFyZW50Lmluc2VydEJlZm9yZShjdXJyZW50LCByZWZlcmVuY2UpO1xuXG4gICAgaWYgKGN1cnJlbnQgPT09IGxhc3QpIHtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH1cblxuICAgIGN1cnJlbnQgPSBleHBlY3QobmV4dCwgJ2ludmFsaWQgYm91bmRzJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyKGJvdW5kczogQm91bmRzKTogT3B0aW9uPFNpbXBsZU5vZGU+IHtcbiAgbGV0IHBhcmVudCA9IGJvdW5kcy5wYXJlbnRFbGVtZW50KCk7XG4gIGxldCBmaXJzdCA9IGJvdW5kcy5maXJzdE5vZGUoKTtcbiAgbGV0IGxhc3QgPSBib3VuZHMubGFzdE5vZGUoKTtcblxuICBsZXQgY3VycmVudDogU2ltcGxlTm9kZSA9IGZpcnN0O1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbGV0IG5leHQgPSBjdXJyZW50Lm5leHRTaWJsaW5nO1xuXG4gICAgcGFyZW50LnJlbW92ZUNoaWxkKGN1cnJlbnQpO1xuXG4gICAgaWYgKGN1cnJlbnQgPT09IGxhc3QpIHtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH1cblxuICAgIGN1cnJlbnQgPSBleHBlY3QobmV4dCwgJ2ludmFsaWQgYm91bmRzJyk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=