UNPKG

@glimmer/runtime

Version:

Minimal runtime needed to render Glimmer templates

44 lines (35 loc) 3.26 kB
"use strict"; 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=