UNPKG

@glimmer/runtime

Version:

Minimal runtime needed to render Glimmer templates

89 lines (72 loc) 10.9 kB
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } import { applySVGInnerHTMLFix } from '../compat/svg-inner-html-fix'; import { applyTextNodeMergingFix } from '../compat/text-node-merging-fix'; import { BLACKLIST_TABLE, DOMOperations } from './operations'; ['b', 'big', 'blockquote', 'body', 'br', 'center', 'code', 'dd', 'div', 'dl', 'dt', 'em', 'embed', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'hr', 'i', 'img', 'li', 'listing', 'main', 'meta', 'nobr', 'ol', 'p', 'pre', 'ruby', 's', 'small', 'span', 'strong', 'strike', 'sub', 'sup', 'table', 'tt', 'u', 'ul', 'var'].forEach(function (tag) { return BLACKLIST_TABLE[tag] = 1; }); var WHITESPACE = /[\t-\r \xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/; var doc = typeof document === 'undefined' ? null : document; export function isWhitespace(string) { return WHITESPACE.test(string); } export var DOM; (function (DOM) { var TreeConstruction = /*#__PURE__*/function (_DOMOperations) { _inheritsLoose(TreeConstruction, _DOMOperations); function TreeConstruction() { return _DOMOperations.apply(this, arguments) || this; } var _proto = TreeConstruction.prototype; _proto.createElementNS = function createElementNS(namespace, tag) { return this.document.createElementNS(namespace, tag); }; _proto.setAttribute = function setAttribute(element, name, value, namespace) { if (namespace === void 0) { namespace = null; } if (namespace) { element.setAttributeNS(namespace, name, value); } else { element.setAttribute(name, value); } }; return TreeConstruction; }(DOMOperations); DOM.TreeConstruction = TreeConstruction; var appliedTreeConstruction = TreeConstruction; appliedTreeConstruction = applyTextNodeMergingFix(doc, appliedTreeConstruction); appliedTreeConstruction = applySVGInnerHTMLFix(doc, appliedTreeConstruction, "http://www.w3.org/2000/svg" /* SVG */ ); DOM.DOMTreeConstruction = appliedTreeConstruction; })(DOM || (DOM = {})); export var DOMChangesImpl = /*#__PURE__*/function (_DOMOperations2) { _inheritsLoose(DOMChangesImpl, _DOMOperations2); function DOMChangesImpl(document) { var _this; _this = _DOMOperations2.call(this, document) || this; _this.document = document; _this.namespace = null; return _this; } var _proto2 = DOMChangesImpl.prototype; _proto2.setAttribute = function setAttribute(element, name, value) { element.setAttribute(name, value); }; _proto2.removeAttribute = function removeAttribute(element, name) { element.removeAttribute(name); }; _proto2.insertAfter = function insertAfter(element, node, reference) { this.insertBefore(element, node, reference.nextSibling); }; return DOMChangesImpl; }(DOMOperations); var helper = DOMChangesImpl; helper = applyTextNodeMergingFix(doc, helper); helper = applySVGInnerHTMLFix(doc, helper, "http://www.w3.org/2000/svg" /* SVG */ ); export default helper; export var DOMTreeConstruction = DOM.DOMTreeConstruction; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2RvbS9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFVQSxTQUFBLG9CQUFBLFFBQUEsOEJBQUE7QUFDQSxTQUFBLHVCQUFBLFFBQUEsaUNBQUE7QUFDQSxTQUFBLGVBQUEsRUFBQSxhQUFBLFFBQUEsY0FBQTtBQUVBLENBQUEsR0FBQSxFQUFBLEtBQUEsRUFBQSxZQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxRQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxLQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsR0FBQSxFQUFBLEtBQUEsRUFBQSxJQUFBLEVBQUEsU0FBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxHQUFBLEVBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxHQUFBLEVBQUEsT0FBQSxFQUFBLE1BQUEsRUFBQSxRQUFBLEVBQUEsUUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxHQUFBLEVBQUEsSUFBQSxFQUFBLEtBQUEsRUFBQSxPQUFBLENBNkNXLFVBQUEsR0FBRDtBQUFBLFNBQVUsZUFBZSxDQUFmLEdBQWUsQ0FBZixHQTdDcEIsQ0E2Q1U7QUFBQSxDQTdDVjtBQStDQSxJQUFNLFVBQVUsR0FBaEIsMkVBQUE7QUFFQSxJQUFJLEdBQUcsR0FBMkIsT0FBQSxRQUFBLEtBQUEsV0FBQSxHQUFBLElBQUEsR0FBbEMsUUFBQTtBQUVBLE9BQU0sU0FBQSxZQUFBLENBQUEsTUFBQSxFQUFxQztBQUN6QyxTQUFPLFVBQVUsQ0FBVixJQUFBLENBQVAsTUFBTyxDQUFQO0FBQ0Q7QUFFRCxPQUFNLElBQUEsR0FBQTs7QUFBTixDQUFBLFVBQUEsR0FBQSxFQUFvQjtBQUFBLE1BQ2xCLGdCQURrQjtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTs7QUFBQSxXQUVoQixlQUZnQixHQUVoQix5QkFBZSxTQUFmLEVBQWUsR0FBZixFQUF3RDtBQUN0RCxhQUFPLEtBQUEsUUFBQSxDQUFBLGVBQUEsQ0FBQSxTQUFBLEVBQVAsR0FBTyxDQUFQO0FBQ0QsS0FKZTs7QUFBQSxXQU1oQixZQU5nQixHQU1oQixzQkFBWSxPQUFaLEVBQVksSUFBWixFQUFZLEtBQVosRUFJRSxTQUpGLEVBSXlDO0FBQUEsVUFBdkMsU0FBdUM7QUFBdkMsUUFBQSxTQUF1QyxHQUo3QixJQUk2QjtBQUFBOztBQUV2QyxVQUFBLFNBQUEsRUFBZTtBQUNiLFFBQUEsT0FBTyxDQUFQLGNBQUEsQ0FBQSxTQUFBLEVBQUEsSUFBQSxFQUFBLEtBQUE7QUFERixPQUFBLE1BRU87QUFDTCxRQUFBLE9BQU8sQ0FBUCxZQUFBLENBQUEsSUFBQSxFQUFBLEtBQUE7QUFDRDtBQUNGLEtBakJlOztBQUFBO0FBQUEsSUFDbEIsYUFEa0I7O0FBQ0wsRUFBQSxHQUFBLENBQUEsZ0JBQUEsR0FBQSxnQkFBQTtBQW1CYixNQUFJLHVCQUF1QixHQUEzQixnQkFBQTtBQUNBLEVBQUEsdUJBQXVCLEdBQUcsdUJBQXVCLENBQUEsR0FBQSxFQUFqRCx1QkFBaUQsQ0FBakQ7QUFJQSxFQUFBLHVCQUF1QixHQUFHLG9CQUFvQixDQUFBLEdBQUEsRUFBQSx1QkFBQSxFQUVyQjtBQUFBO0FBRnFCLEdBQTlDO0FBTWEsRUFBQSxHQUFBLENBQUEsbUJBQUEsR0FBQSx1QkFBQTtBQS9CZixDQUFBLEVBQWlCLEdBQUcsS0FBSCxHQUFHLEdBQXBCLEVBQW9CLENBQXBCOztBQW1DQSxXQUFNLGNBQU47QUFBQTs7QUFHRSwwQkFBQSxRQUFBLEVBQThDO0FBQUE7O0FBQzVDLHVDQUFBLFFBQUE7QUFEb0IsVUFBQSxRQUFBLEdBQUEsUUFBQTtBQUVwQixVQUFBLFNBQUEsR0FBQSxJQUFBO0FBRjRDO0FBRzdDOztBQU5IOztBQUFBLFVBUUUsWUFSRixHQVFFLHNCQUFZLE9BQVosRUFBWSxJQUFaLEVBQVksS0FBWixFQUFnRTtBQUM5RCxJQUFBLE9BQU8sQ0FBUCxZQUFBLENBQUEsSUFBQSxFQUFBLEtBQUE7QUFDRCxHQVZIOztBQUFBLFVBWUUsZUFaRixHQVlFLHlCQUFlLE9BQWYsRUFBZSxJQUFmLEVBQW9EO0FBQ2xELElBQUEsT0FBTyxDQUFQLGVBQUEsQ0FBQSxJQUFBO0FBQ0QsR0FkSDs7QUFBQSxVQWdCRSxXQWhCRixHQWdCRSxxQkFBVyxPQUFYLEVBQVcsSUFBWCxFQUFXLFNBQVgsRUFBMkU7QUFDekUsU0FBQSxZQUFBLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBaUMsU0FBUyxDQUExQyxXQUFBO0FBQ0QsR0FsQkg7O0FBQUE7QUFBQSxFQUFNLGFBQU47QUFxQkEsSUFBSSxNQUFNLEdBQVYsY0FBQTtBQUVBLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQSxHQUFBLEVBQWhDLE1BQWdDLENBQWhDO0FBQ0EsTUFBTSxHQUFHLG9CQUFvQixDQUFBLEdBQUEsRUFBQSxNQUFBLEVBQVk7QUFBQTtBQUFaLENBQTdCO0FBRUEsZUFBQSxNQUFBO0FBQ0EsT0FBTyxJQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBL0IsbUJBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHbGltbWVyVHJlZUNoYW5nZXMsIEdsaW1tZXJUcmVlQ29uc3RydWN0aW9uLCBPcHRpb24gfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGNhc3RUb1NpbXBsZSB9IGZyb20gJ0BnbGltbWVyL3V0aWwnO1xuaW1wb3J0IHtcbiAgQXR0ck5hbWVzcGFjZSxcbiAgRWxlbWVudE5hbWVzcGFjZSxcbiAgTmFtZXNwYWNlLFxuICBTaW1wbGVEb2N1bWVudCxcbiAgU2ltcGxlRWxlbWVudCxcbiAgU2ltcGxlTm9kZSxcbn0gZnJvbSAnQHNpbXBsZS1kb20vaW50ZXJmYWNlJztcbmltcG9ydCB7IGFwcGx5U1ZHSW5uZXJIVE1MRml4IH0gZnJvbSAnLi4vY29tcGF0L3N2Zy1pbm5lci1odG1sLWZpeCc7XG5pbXBvcnQgeyBhcHBseVRleHROb2RlTWVyZ2luZ0ZpeCB9IGZyb20gJy4uL2NvbXBhdC90ZXh0LW5vZGUtbWVyZ2luZy1maXgnO1xuaW1wb3J0IHsgQkxBQ0tMSVNUX1RBQkxFLCBET01PcGVyYXRpb25zIH0gZnJvbSAnLi9vcGVyYXRpb25zJztcblxuW1xuICAnYicsXG4gICdiaWcnLFxuICAnYmxvY2txdW90ZScsXG4gICdib2R5JyxcbiAgJ2JyJyxcbiAgJ2NlbnRlcicsXG4gICdjb2RlJyxcbiAgJ2RkJyxcbiAgJ2RpdicsXG4gICdkbCcsXG4gICdkdCcsXG4gICdlbScsXG4gICdlbWJlZCcsXG4gICdoMScsXG4gICdoMicsXG4gICdoMycsXG4gICdoNCcsXG4gICdoNScsXG4gICdoNicsXG4gICdoZWFkJyxcbiAgJ2hyJyxcbiAgJ2knLFxuICAnaW1nJyxcbiAgJ2xpJyxcbiAgJ2xpc3RpbmcnLFxuICAnbWFpbicsXG4gICdtZXRhJyxcbiAgJ25vYnInLFxuICAnb2wnLFxuICAncCcsXG4gICdwcmUnLFxuICAncnVieScsXG4gICdzJyxcbiAgJ3NtYWxsJyxcbiAgJ3NwYW4nLFxuICAnc3Ryb25nJyxcbiAgJ3N0cmlrZScsXG4gICdzdWInLFxuICAnc3VwJyxcbiAgJ3RhYmxlJyxcbiAgJ3R0JyxcbiAgJ3UnLFxuICAndWwnLFxuICAndmFyJyxcbl0uZm9yRWFjaCgodGFnKSA9PiAoQkxBQ0tMSVNUX1RBQkxFW3RhZ10gPSAxKSk7XG5cbmNvbnN0IFdISVRFU1BBQ0UgPSAvW1xcdC1cXHIgXFx4QTBcXHUxNjgwXFx1MTgwRVxcdTIwMDAtXFx1MjAwQVxcdTIwMjhcXHUyMDI5XFx1MjAyRlxcdTIwNUZcXHUzMDAwXFx1RkVGRl0vO1xuXG5sZXQgZG9jOiBPcHRpb248U2ltcGxlRG9jdW1lbnQ+ID0gdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiBjYXN0VG9TaW1wbGUoZG9jdW1lbnQpO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNXaGl0ZXNwYWNlKHN0cmluZzogc3RyaW5nKSB7XG4gIHJldHVybiBXSElURVNQQUNFLnRlc3Qoc3RyaW5nKTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBET00ge1xuICBleHBvcnQgY2xhc3MgVHJlZUNvbnN0cnVjdGlvbiBleHRlbmRzIERPTU9wZXJhdGlvbnMgaW1wbGVtZW50cyBHbGltbWVyVHJlZUNvbnN0cnVjdGlvbiB7XG4gICAgY3JlYXRlRWxlbWVudE5TKG5hbWVzcGFjZTogRWxlbWVudE5hbWVzcGFjZSwgdGFnOiBzdHJpbmcpOiBTaW1wbGVFbGVtZW50IHtcbiAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2UsIHRhZyk7XG4gICAgfVxuXG4gICAgc2V0QXR0cmlidXRlKFxuICAgICAgZWxlbWVudDogU2ltcGxlRWxlbWVudCxcbiAgICAgIG5hbWU6IHN0cmluZyxcbiAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgICBuYW1lc3BhY2U6IE9wdGlvbjxBdHRyTmFtZXNwYWNlPiA9IG51bGxcbiAgICApIHtcbiAgICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGVOUyhuYW1lc3BhY2UsIG5hbWUsIHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBsZXQgYXBwbGllZFRyZWVDb25zdHJ1Y3Rpb24gPSBUcmVlQ29uc3RydWN0aW9uO1xuICBhcHBsaWVkVHJlZUNvbnN0cnVjdGlvbiA9IGFwcGx5VGV4dE5vZGVNZXJnaW5nRml4KFxuICAgIGRvYyxcbiAgICBhcHBsaWVkVHJlZUNvbnN0cnVjdGlvblxuICApIGFzIHR5cGVvZiBUcmVlQ29uc3RydWN0aW9uO1xuICBhcHBsaWVkVHJlZUNvbnN0cnVjdGlvbiA9IGFwcGx5U1ZHSW5uZXJIVE1MRml4KFxuICAgIGRvYyxcbiAgICBhcHBsaWVkVHJlZUNvbnN0cnVjdGlvbixcbiAgICBOYW1lc3BhY2UuU1ZHXG4gICkgYXMgdHlwZW9mIFRyZWVDb25zdHJ1Y3Rpb247XG5cbiAgZXhwb3J0IGNvbnN0IERPTVRyZWVDb25zdHJ1Y3Rpb24gPSBhcHBsaWVkVHJlZUNvbnN0cnVjdGlvbjtcbiAgZXhwb3J0IHR5cGUgRE9NVHJlZUNvbnN0cnVjdGlvbiA9IFRyZWVDb25zdHJ1Y3Rpb247XG59XG5cbmV4cG9ydCBjbGFzcyBET01DaGFuZ2VzSW1wbCBleHRlbmRzIERPTU9wZXJhdGlvbnMgaW1wbGVtZW50cyBHbGltbWVyVHJlZUNoYW5nZXMge1xuICBwcm90ZWN0ZWQgbmFtZXNwYWNlOiBPcHRpb248c3RyaW5nPjtcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZG9jdW1lbnQ6IFNpbXBsZURvY3VtZW50KSB7XG4gICAgc3VwZXIoZG9jdW1lbnQpO1xuICAgIHRoaXMubmFtZXNwYWNlID0gbnVsbDtcbiAgfVxuXG4gIHNldEF0dHJpYnV0ZShlbGVtZW50OiBTaW1wbGVFbGVtZW50LCBuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gIH1cblxuICByZW1vdmVBdHRyaWJ1dGUoZWxlbWVudDogU2ltcGxlRWxlbWVudCwgbmFtZTogc3RyaW5nKSB7XG4gICAgZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gIH1cblxuICBpbnNlcnRBZnRlcihlbGVtZW50OiBTaW1wbGVFbGVtZW50LCBub2RlOiBTaW1wbGVOb2RlLCByZWZlcmVuY2U6IFNpbXBsZU5vZGUpIHtcbiAgICB0aGlzLmluc2VydEJlZm9yZShlbGVtZW50LCBub2RlLCByZWZlcmVuY2UubmV4dFNpYmxpbmcpO1xuICB9XG59XG5cbmxldCBoZWxwZXIgPSBET01DaGFuZ2VzSW1wbDtcblxuaGVscGVyID0gYXBwbHlUZXh0Tm9kZU1lcmdpbmdGaXgoZG9jLCBoZWxwZXIpIGFzIHR5cGVvZiBET01DaGFuZ2VzSW1wbDtcbmhlbHBlciA9IGFwcGx5U1ZHSW5uZXJIVE1MRml4KGRvYywgaGVscGVyLCBOYW1lc3BhY2UuU1ZHKSBhcyB0eXBlb2YgRE9NQ2hhbmdlc0ltcGw7XG5cbmV4cG9ydCBkZWZhdWx0IGhlbHBlcjtcbmV4cG9ydCBjb25zdCBET01UcmVlQ29uc3RydWN0aW9uID0gRE9NLkRPTVRyZWVDb25zdHJ1Y3Rpb247XG5leHBvcnQgdHlwZSBET01UcmVlQ29uc3RydWN0aW9uID0gRE9NLkRPTVRyZWVDb25zdHJ1Y3Rpb247XG5leHBvcnQgdHlwZSBET01OYW1lc3BhY2UgPSBOYW1lc3BhY2U7XG4iXSwic291cmNlUm9vdCI6IiJ9