@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
37 lines (30 loc) • 3.31 kB
JavaScript
import { isEmpty, isString } from '../../dom/normalize';
import { valueForRef } from '@glimmer/reference';
var DynamicTextContent = /*#__PURE__*/function () {
function DynamicTextContent(node, reference, lastValue) {
this.node = node;
this.reference = reference;
this.lastValue = lastValue;
}
var _proto = DynamicTextContent.prototype;
_proto.evaluate = function evaluate() {
var value = valueForRef(this.reference);
var lastValue = this.lastValue;
if (value === lastValue) return;
var normalized;
if (isEmpty(value)) {
normalized = '';
} else if (isString(value)) {
normalized = value;
} else {
normalized = String(value);
}
if (normalized !== lastValue) {
var textNode = this.node;
textNode.nodeValue = this.lastValue = normalized;
}
};
return DynamicTextContent;
}();
export { DynamicTextContent as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3ZtL2NvbnRlbnQvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxTQUFBLE9BQUEsRUFBQSxRQUFBLFFBQUEscUJBQUE7QUFFQSxTQUFBLFdBQUEsUUFBQSxvQkFBQTs7SUFHYyxrQjtBQUNaLDhCQUFBLElBQUEsRUFBQSxTQUFBLEVBQUEsU0FBQSxFQUcyQjtBQUZsQixTQUFBLElBQUEsR0FBQSxJQUFBO0FBQ0MsU0FBQSxTQUFBLEdBQUEsU0FBQTtBQUNBLFNBQUEsU0FBQSxHQUFBLFNBQUE7QUFDTjs7OztTQUVKLFEsR0FBQSxvQkFBUTtBQUNOLFFBQUksS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUF4QixTQUF1QixDQUF2QjtBQURNLFFBR0EsU0FIQSxHQUdOLElBSE0sQ0FHQSxTQUhBO0FBS04sUUFBSSxLQUFLLEtBQVQsU0FBQSxFQUF5QjtBQUV6QixRQUFBLFVBQUE7O0FBRUEsUUFBSSxPQUFPLENBQVgsS0FBVyxDQUFYLEVBQW9CO0FBQ2xCLE1BQUEsVUFBVSxHQUFWLEVBQUE7QUFERixLQUFBLE1BRU8sSUFBSSxRQUFRLENBQVosS0FBWSxDQUFaLEVBQXFCO0FBQzFCLE1BQUEsVUFBVSxHQUFWLEtBQUE7QUFESyxLQUFBLE1BRUE7QUFDTCxNQUFBLFVBQVUsR0FBRyxNQUFNLENBQW5CLEtBQW1CLENBQW5CO0FBQ0Q7O0FBRUQsUUFBSSxVQUFVLEtBQWQsU0FBQSxFQUE4QjtBQUM1QixVQUFJLFFBQVEsR0FBRyxLQUFmLElBQUE7QUFDQSxNQUFBLFFBQVEsQ0FBUixTQUFBLEdBQXFCLEtBQUEsU0FBQSxHQUFyQixVQUFBO0FBQ0Q7QUFDRixHOzs7OztTQTVCVyxrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHksIGlzU3RyaW5nIH0gZnJvbSAnLi4vLi4vZG9tL25vcm1hbGl6ZSc7XG5pbXBvcnQgeyBVcGRhdGluZ09wY29kZSB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgUmVmZXJlbmNlLCB2YWx1ZUZvclJlZiB9IGZyb20gJ0BnbGltbWVyL3JlZmVyZW5jZSc7XG5pbXBvcnQgeyBTaW1wbGVUZXh0IH0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHluYW1pY1RleHRDb250ZW50IGltcGxlbWVudHMgVXBkYXRpbmdPcGNvZGUge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbm9kZTogU2ltcGxlVGV4dCxcbiAgICBwcml2YXRlIHJlZmVyZW5jZTogUmVmZXJlbmNlPHVua25vd24+LFxuICAgIHByaXZhdGUgbGFzdFZhbHVlOiBzdHJpbmdcbiAgKSB7fVxuXG4gIGV2YWx1YXRlKCkge1xuICAgIGxldCB2YWx1ZSA9IHZhbHVlRm9yUmVmKHRoaXMucmVmZXJlbmNlKTtcblxuICAgIGxldCB7IGxhc3RWYWx1ZSB9ID0gdGhpcztcblxuICAgIGlmICh2YWx1ZSA9PT0gbGFzdFZhbHVlKSByZXR1cm47XG5cbiAgICBsZXQgbm9ybWFsaXplZDogc3RyaW5nO1xuXG4gICAgaWYgKGlzRW1wdHkodmFsdWUpKSB7XG4gICAgICBub3JtYWxpemVkID0gJyc7XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyh2YWx1ZSkpIHtcbiAgICAgIG5vcm1hbGl6ZWQgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbm9ybWFsaXplZCA9IFN0cmluZyh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKG5vcm1hbGl6ZWQgIT09IGxhc3RWYWx1ZSkge1xuICAgICAgbGV0IHRleHROb2RlID0gdGhpcy5ub2RlO1xuICAgICAgdGV4dE5vZGUubm9kZVZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSBub3JtYWxpemVkO1xuICAgIH1cbiAgfVxufVxuIl0sInNvdXJjZVJvb3QiOiIifQ==