@glimmer/runtime
Version:
Minimal runtime needed to render Glimmer templates
44 lines (35 loc) • 3.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _normalize = require("../../dom/normalize");
var _reference = require("@glimmer/reference");
class DynamicTextContent {
constructor(node, reference, lastValue) {
this.node = node;
this.reference = reference;
this.lastValue = lastValue;
}
evaluate() {
let value = (0, _reference.valueForRef)(this.reference);
let {
lastValue
} = this;
if (value === lastValue) return;
let normalized;
if ((0, _normalize.isEmpty)(value)) {
normalized = '';
} else if ((0, _normalize.isString)(value)) {
normalized = value;
} else {
normalized = String(value);
}
if (normalized !== lastValue) {
let textNode = this.node;
textNode.nodeValue = this.lastValue = normalized;
}
}
}
exports.default = DynamicTextContent;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL3ZtL2NvbnRlbnQvdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRUE7O0FBR2MsTUFBQSxrQkFBQSxDQUF5QjtBQUNyQyxFQUFBLFdBQUEsQ0FBQSxJQUFBLEVBQUEsU0FBQSxFQUFBLFNBQUEsRUFHMkI7QUFGbEIsU0FBQSxJQUFBLEdBQUEsSUFBQTtBQUNDLFNBQUEsU0FBQSxHQUFBLFNBQUE7QUFDQSxTQUFBLFNBQUEsR0FBQSxTQUFBO0FBQ047O0FBRUosRUFBQSxRQUFRLEdBQUE7QUFDTixRQUFJLEtBQUssR0FBRyw0QkFBWSxLQUF4QixTQUFZLENBQVo7QUFFQSxRQUFJO0FBQUUsTUFBQTtBQUFGLFFBQUosSUFBQTtBQUVBLFFBQUksS0FBSyxLQUFULFNBQUEsRUFBeUI7QUFFekIsUUFBQSxVQUFBOztBQUVBLFFBQUksd0JBQUosS0FBSSxDQUFKLEVBQW9CO0FBQ2xCLE1BQUEsVUFBVSxHQUFWLEVBQUE7QUFERixLQUFBLE1BRU8sSUFBSSx5QkFBSixLQUFJLENBQUosRUFBcUI7QUFDMUIsTUFBQSxVQUFVLEdBQVYsS0FBQTtBQURLLEtBQUEsTUFFQTtBQUNMLE1BQUEsVUFBVSxHQUFHLE1BQU0sQ0FBbkIsS0FBbUIsQ0FBbkI7QUFDRDs7QUFFRCxRQUFJLFVBQVUsS0FBZCxTQUFBLEVBQThCO0FBQzVCLFVBQUksUUFBUSxHQUFHLEtBQWYsSUFBQTtBQUNBLE1BQUEsUUFBUSxDQUFSLFNBQUEsR0FBcUIsS0FBQSxTQUFBLEdBQXJCLFVBQUE7QUFDRDtBQUNGOztBQTVCb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0VtcHR5LCBpc1N0cmluZyB9IGZyb20gJy4uLy4uL2RvbS9ub3JtYWxpemUnO1xuaW1wb3J0IHsgVXBkYXRpbmdPcGNvZGUgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFJlZmVyZW5jZSwgdmFsdWVGb3JSZWYgfSBmcm9tICdAZ2xpbW1lci9yZWZlcmVuY2UnO1xuaW1wb3J0IHsgU2ltcGxlVGV4dCB9IGZyb20gJ0BzaW1wbGUtZG9tL2ludGVyZmFjZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIER5bmFtaWNUZXh0Q29udGVudCBpbXBsZW1lbnRzIFVwZGF0aW5nT3Bjb2RlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5vZGU6IFNpbXBsZVRleHQsXG4gICAgcHJpdmF0ZSByZWZlcmVuY2U6IFJlZmVyZW5jZTx1bmtub3duPixcbiAgICBwcml2YXRlIGxhc3RWYWx1ZTogc3RyaW5nXG4gICkge31cblxuICBldmFsdWF0ZSgpIHtcbiAgICBsZXQgdmFsdWUgPSB2YWx1ZUZvclJlZih0aGlzLnJlZmVyZW5jZSk7XG5cbiAgICBsZXQgeyBsYXN0VmFsdWUgfSA9IHRoaXM7XG5cbiAgICBpZiAodmFsdWUgPT09IGxhc3RWYWx1ZSkgcmV0dXJuO1xuXG4gICAgbGV0IG5vcm1hbGl6ZWQ6IHN0cmluZztcblxuICAgIGlmIChpc0VtcHR5KHZhbHVlKSkge1xuICAgICAgbm9ybWFsaXplZCA9ICcnO1xuICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICBub3JtYWxpemVkID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5vcm1hbGl6ZWQgPSBTdHJpbmcodmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChub3JtYWxpemVkICE9PSBsYXN0VmFsdWUpIHtcbiAgICAgIGxldCB0ZXh0Tm9kZSA9IHRoaXMubm9kZTtcbiAgICAgIHRleHROb2RlLm5vZGVWYWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gbm9ybWFsaXplZDtcbiAgICB9XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=