@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
103 lines (78 loc) • 7.25 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.move = move;
exports.clear = clear;
exports.SingleNodeBounds = exports.ConcreteBounds = exports.CursorImpl = void 0;
var CursorImpl = function CursorImpl(element, nextSibling) {
this.element = element;
this.nextSibling = nextSibling;
};
exports.CursorImpl = CursorImpl;
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;
}();
exports.ConcreteBounds = ConcreteBounds;
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;
}();
exports.SingleNodeBounds = SingleNodeBounds;
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;
}
}
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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2JvdW5kcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFJQSxJQUFNLFVBQU4sR0FDRSxTQUFBLFVBQUEsQ0FBQSxPQUFBLEVBQUEsV0FBQSxFQUFpRjtBQUE5RCxPQUFBLE9BQUEsR0FBQSxPQUFBO0FBQStCLE9BQUEsV0FBQSxHQUFBLFdBQUE7QUFEcEQsQ0FBQTs7OztBQU1BLElBQU0sY0FBTixHQUFBLGFBQUEsWUFBQTtBQUNFLFdBQUEsY0FBQSxDQUFBLFVBQUEsRUFBQSxLQUFBLEVBQUEsSUFBQSxFQUcwQjtBQUZqQixTQUFBLFVBQUEsR0FBQSxVQUFBO0FBQ0MsU0FBQSxLQUFBLEdBQUEsS0FBQTtBQUNBLFNBQUEsSUFBQSxHQUFBLElBQUE7QUFDTjs7QUFMTixNQUFBLE1BQUEsR0FBQSxjQUFBLENBQUEsU0FBQTs7QUFBQSxFQUFBLE1BQUEsQ0FBQSxhQUFBLEdBT0UsU0FBQSxhQUFBLEdBQWE7QUFDWCxXQUFPLEtBQVAsVUFBQTtBQVJKLEdBQUE7O0FBQUEsRUFBQSxNQUFBLENBQUEsU0FBQSxHQVdFLFNBQUEsU0FBQSxHQUFTO0FBQ1AsV0FBTyxLQUFQLEtBQUE7QUFaSixHQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLFFBQUEsR0FlRSxTQUFBLFFBQUEsR0FBUTtBQUNOLFdBQU8sS0FBUCxJQUFBO0FBaEJKLEdBQUE7O0FBQUEsU0FBQSxjQUFBO0FBQUEsQ0FBQSxFQUFBOzs7O0FBb0JBLElBQU0sZ0JBQU4sR0FBQSxhQUFBLFlBQUE7QUFDRSxXQUFBLGdCQUFBLENBQUEsVUFBQSxFQUFBLElBQUEsRUFBdUU7QUFBbkQsU0FBQSxVQUFBLEdBQUEsVUFBQTtBQUFtQyxTQUFBLElBQUEsR0FBQSxJQUFBO0FBQW9COztBQUQ3RSxNQUFBLE9BQUEsR0FBQSxnQkFBQSxDQUFBLFNBQUE7O0FBQUEsRUFBQSxPQUFBLENBQUEsYUFBQSxHQUdFLFNBQUEsYUFBQSxHQUFhO0FBQ1gsV0FBTyxLQUFQLFVBQUE7QUFKSixHQUFBOztBQUFBLEVBQUEsT0FBQSxDQUFBLFNBQUEsR0FPRSxTQUFBLFNBQUEsR0FBUztBQUNQLFdBQU8sS0FBUCxJQUFBO0FBUkosR0FBQTs7QUFBQSxFQUFBLE9BQUEsQ0FBQSxRQUFBLEdBV0UsU0FBQSxRQUFBLEdBQVE7QUFDTixXQUFPLEtBQVAsSUFBQTtBQVpKLEdBQUE7O0FBQUEsU0FBQSxnQkFBQTtBQUFBLENBQUEsRUFBQTs7OztBQWdCTSxTQUFBLElBQUEsQ0FBQSxNQUFBLEVBQUEsU0FBQSxFQUE0RDtBQUNoRSxNQUFJLE1BQU0sR0FBRyxNQUFNLENBQW5CLGFBQWEsRUFBYjtBQUNBLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBbEIsU0FBWSxFQUFaO0FBQ0EsTUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFqQixRQUFXLEVBQVg7QUFFQSxNQUFJLE9BQU8sR0FBWCxLQUFBOztBQUVBLFNBQUEsSUFBQSxFQUFhO0FBQ1gsUUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFsQixXQUFBO0FBRUEsSUFBQSxNQUFNLENBQU4sWUFBQSxDQUFBLE9BQUEsRUFBQSxTQUFBOztBQUVBLFFBQUksT0FBTyxLQUFYLElBQUEsRUFBc0I7QUFDcEIsYUFBQSxJQUFBO0FBQ0Q7O0FBRUQsSUFBQSxPQUFPLEdBQVAsSUFBQTtBQUNEO0FBQ0Y7O0FBRUssU0FBQSxLQUFBLENBQUEsTUFBQSxFQUE4QjtBQUNsQyxNQUFJLE1BQU0sR0FBRyxNQUFNLENBQW5CLGFBQWEsRUFBYjtBQUNBLE1BQUksS0FBSyxHQUFHLE1BQU0sQ0FBbEIsU0FBWSxFQUFaO0FBQ0EsTUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFqQixRQUFXLEVBQVg7QUFFQSxNQUFJLE9BQU8sR0FBWCxLQUFBOztBQUVBLFNBQUEsSUFBQSxFQUFhO0FBQ1gsUUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFsQixXQUFBO0FBRUEsSUFBQSxNQUFNLENBQU4sV0FBQSxDQUFBLE9BQUE7O0FBRUEsUUFBSSxPQUFPLEtBQVgsSUFBQSxFQUFzQjtBQUNwQixhQUFBLElBQUE7QUFDRDs7QUFFRCxJQUFBLE9BQU8sR0FBUCxJQUFBO0FBQ0Q7QUFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvdW5kcywgQ3Vyc29yLCBPcHRpb24gfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNpbXBsZUVsZW1lbnQsIFNpbXBsZU5vZGUgfSBmcm9tICdAc2ltcGxlLWRvbS9pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZXhwZWN0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBDdXJzb3JJbXBsIGltcGxlbWVudHMgQ3Vyc29yIHtcbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IFNpbXBsZUVsZW1lbnQsIHB1YmxpYyBuZXh0U2libGluZzogT3B0aW9uPFNpbXBsZU5vZGU+KSB7fVxufVxuXG5leHBvcnQgdHlwZSBEZXN0cm95YWJsZUJvdW5kcyA9IEJvdW5kcztcblxuZXhwb3J0IGNsYXNzIENvbmNyZXRlQm91bmRzIGltcGxlbWVudHMgQm91bmRzIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhcmVudE5vZGU6IFNpbXBsZUVsZW1lbnQsXG4gICAgcHJpdmF0ZSBmaXJzdDogU2ltcGxlTm9kZSxcbiAgICBwcml2YXRlIGxhc3Q6IFNpbXBsZU5vZGVcbiAgKSB7fVxuXG4gIHBhcmVudEVsZW1lbnQoKTogU2ltcGxlRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50Tm9kZTtcbiAgfVxuXG4gIGZpcnN0Tm9kZSgpOiBTaW1wbGVOb2RlIHtcbiAgICByZXR1cm4gdGhpcy5maXJzdDtcbiAgfVxuXG4gIGxhc3ROb2RlKCk6IFNpbXBsZU5vZGUge1xuICAgIHJldHVybiB0aGlzLmxhc3Q7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNpbmdsZU5vZGVCb3VuZHMgaW1wbGVtZW50cyBCb3VuZHMge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhcmVudE5vZGU6IFNpbXBsZUVsZW1lbnQsIHByaXZhdGUgbm9kZTogU2ltcGxlTm9kZSkge31cblxuICBwYXJlbnRFbGVtZW50KCk6IFNpbXBsZUVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLnBhcmVudE5vZGU7XG4gIH1cblxuICBmaXJzdE5vZGUoKTogU2ltcGxlTm9kZSB7XG4gICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgfVxuXG4gIGxhc3ROb2RlKCk6IFNpbXBsZU5vZGUge1xuICAgIHJldHVybiB0aGlzLm5vZGU7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vdmUoYm91bmRzOiBCb3VuZHMsIHJlZmVyZW5jZTogT3B0aW9uPFNpbXBsZU5vZGU+KTogT3B0aW9uPFNpbXBsZU5vZGU+IHtcbiAgbGV0IHBhcmVudCA9IGJvdW5kcy5wYXJlbnRFbGVtZW50KCk7XG4gIGxldCBmaXJzdCA9IGJvdW5kcy5maXJzdE5vZGUoKTtcbiAgbGV0IGxhc3QgPSBib3VuZHMubGFzdE5vZGUoKTtcblxuICBsZXQgY3VycmVudDogU2ltcGxlTm9kZSA9IGZpcnN0O1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbGV0IG5leHQgPSBjdXJyZW50Lm5leHRTaWJsaW5nO1xuXG4gICAgcGFyZW50Lmluc2VydEJlZm9yZShjdXJyZW50LCByZWZlcmVuY2UpO1xuXG4gICAgaWYgKGN1cnJlbnQgPT09IGxhc3QpIHtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH1cblxuICAgIGN1cnJlbnQgPSBleHBlY3QobmV4dCwgJ2ludmFsaWQgYm91bmRzJyk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyKGJvdW5kczogQm91bmRzKTogT3B0aW9uPFNpbXBsZU5vZGU+IHtcbiAgbGV0IHBhcmVudCA9IGJvdW5kcy5wYXJlbnRFbGVtZW50KCk7XG4gIGxldCBmaXJzdCA9IGJvdW5kcy5maXJzdE5vZGUoKTtcbiAgbGV0IGxhc3QgPSBib3VuZHMubGFzdE5vZGUoKTtcblxuICBsZXQgY3VycmVudDogU2ltcGxlTm9kZSA9IGZpcnN0O1xuXG4gIHdoaWxlICh0cnVlKSB7XG4gICAgbGV0IG5leHQgPSBjdXJyZW50Lm5leHRTaWJsaW5nO1xuXG4gICAgcGFyZW50LnJlbW92ZUNoaWxkKGN1cnJlbnQpO1xuXG4gICAgaWYgKGN1cnJlbnQgPT09IGxhc3QpIHtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH1cblxuICAgIGN1cnJlbnQgPSBleHBlY3QobmV4dCwgJ2ludmFsaWQgYm91bmRzJyk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=