UNPKG

@glimmer/runtime

Version:

Minimal runtime needed to render Glimmer templates

82 lines (65 loc) 10.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isWhitespace = isWhitespace; exports.DOMTreeConstruction = exports.default = exports.DOMChangesImpl = exports.DOM = void 0; var _svgInnerHtmlFix = require("../compat/svg-inner-html-fix"); var _textNodeMergingFix = require("../compat/text-node-merging-fix"); var _operations = require("./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(tag => _operations.BLACKLIST_TABLE[tag] = 1); const WHITESPACE = /[\t-\r \xA0\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]/; let doc = typeof document === 'undefined' ? null : document; function isWhitespace(string) { return WHITESPACE.test(string); } var DOM; exports.DOM = DOM; (function (DOM) { class TreeConstruction extends _operations.DOMOperations { createElementNS(namespace, tag) { return this.document.createElementNS(namespace, tag); } setAttribute(element, name, value, namespace = null) { if (namespace) { element.setAttributeNS(namespace, name, value); } else { element.setAttribute(name, value); } } } DOM.TreeConstruction = TreeConstruction; let appliedTreeConstruction = TreeConstruction; appliedTreeConstruction = (0, _textNodeMergingFix.applyTextNodeMergingFix)(doc, appliedTreeConstruction); appliedTreeConstruction = (0, _svgInnerHtmlFix.applySVGInnerHTMLFix)(doc, appliedTreeConstruction, "http://www.w3.org/2000/svg" /* SVG */ ); DOM.DOMTreeConstruction = appliedTreeConstruction; })(DOM || (exports.DOM = DOM = {})); class DOMChangesImpl extends _operations.DOMOperations { constructor(document) { super(document); this.document = document; this.namespace = null; } setAttribute(element, name, value) { element.setAttribute(name, value); } removeAttribute(element, name) { element.removeAttribute(name); } insertAfter(element, node, reference) { this.insertBefore(element, node, reference.nextSibling); } } exports.DOMChangesImpl = DOMChangesImpl; let helper = DOMChangesImpl; helper = (0, _textNodeMergingFix.applyTextNodeMergingFix)(doc, helper); helper = (0, _svgInnerHtmlFix.applySVGInnerHTMLFix)(doc, helper, "http://www.w3.org/2000/svg" /* SVG */ ); var _default = helper; exports.default = _default; const DOMTreeConstruction = DOM.DOMTreeConstruction; exports.DOMTreeConstruction = DOMTreeConstruction; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3J1bnRpbWUvbGliL2RvbS9oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFVQTs7QUFDQTs7QUFDQTs7QUFFQSxDQUFBLEdBQUEsRUFBQSxLQUFBLEVBQUEsWUFBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsUUFBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsS0FBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLE9BQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLEdBQUEsRUFBQSxLQUFBLEVBQUEsSUFBQSxFQUFBLFNBQUEsRUFBQSxNQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsR0FBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBQUEsR0FBQSxFQUFBLE9BQUEsRUFBQSxNQUFBLEVBQUEsUUFBQSxFQUFBLFFBQUEsRUFBQSxLQUFBLEVBQUEsS0FBQSxFQUFBLE9BQUEsRUFBQSxJQUFBLEVBQUEsR0FBQSxFQUFBLElBQUEsRUFBQSxLQUFBLEVBQUEsT0FBQSxDQTZDVyxHQUFELElBQVUsNEJBQUEsR0FBQSxJQTdDcEIsQ0FBQTtBQStDQSxNQUFNLFVBQVUsR0FBaEIsMkVBQUE7QUFFQSxJQUFJLEdBQUcsR0FBMkIsT0FBQSxRQUFBLEtBQUEsV0FBQSxHQUFBLElBQUEsR0FBbEMsUUFBQTs7QUFFTSxTQUFBLFlBQUEsQ0FBQSxNQUFBLEVBQXFDO0FBQ3pDLFNBQU8sVUFBVSxDQUFWLElBQUEsQ0FBUCxNQUFPLENBQVA7QUFDRDs7QUFFSyxJQUFBLEdBQUE7OztBQUFOLENBQUEsVUFBQSxHQUFBLEVBQW9CO0FBQ2xCLFFBQUEsZ0JBQUEsU0FBQSx5QkFBQSxDQUFtRDtBQUNqRCxJQUFBLGVBQWUsQ0FBQSxTQUFBLEVBQUEsR0FBQSxFQUF5QztBQUN0RCxhQUFPLEtBQUEsUUFBQSxDQUFBLGVBQUEsQ0FBQSxTQUFBLEVBQVAsR0FBTyxDQUFQO0FBQ0Q7O0FBRUQsSUFBQSxZQUFZLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxLQUFBLEVBSVYsU0FBQSxHQUpVLElBQUEsRUFJNkI7QUFFdkMsVUFBQSxTQUFBLEVBQWU7QUFDYixRQUFBLE9BQU8sQ0FBUCxjQUFBLENBQUEsU0FBQSxFQUFBLElBQUEsRUFBQSxLQUFBO0FBREYsT0FBQSxNQUVPO0FBQ0wsUUFBQSxPQUFPLENBQVAsWUFBQSxDQUFBLElBQUEsRUFBQSxLQUFBO0FBQ0Q7QUFDRjs7QUFoQmdEOztBQUF0QyxFQUFBLEdBQUEsQ0FBQSxnQkFBQSxHQUFBLGdCQUFBO0FBbUJiLE1BQUksdUJBQXVCLEdBQTNCLGdCQUFBO0FBQ0EsRUFBQSx1QkFBdUIsR0FBRyxpREFBdUIsR0FBdkIsRUFBMUIsdUJBQTBCLENBQTFCO0FBSUEsRUFBQSx1QkFBdUIsR0FBRywyQ0FBb0IsR0FBcEIsRUFBb0IsdUJBQXBCLEVBRUQ7QUFBQTtBQUZDLEdBQTFCO0FBTWEsRUFBQSxHQUFBLENBQUEsbUJBQUEsR0FBQSx1QkFBQTtBQS9CZixDQUFBLEVBQWlCLEdBQUcsbUJBQUgsR0FBRyxHQUFwQixFQUFvQixDQUFwQjs7QUFtQ00sTUFBQSxjQUFBLFNBQUEseUJBQUEsQ0FBMkM7QUFHL0MsRUFBQSxXQUFBLENBQUEsUUFBQSxFQUE4QztBQUM1QyxVQUFBLFFBQUE7QUFEb0IsU0FBQSxRQUFBLEdBQUEsUUFBQTtBQUVwQixTQUFBLFNBQUEsR0FBQSxJQUFBO0FBQ0Q7O0FBRUQsRUFBQSxZQUFZLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxLQUFBLEVBQW9EO0FBQzlELElBQUEsT0FBTyxDQUFQLFlBQUEsQ0FBQSxJQUFBLEVBQUEsS0FBQTtBQUNEOztBQUVELEVBQUEsZUFBZSxDQUFBLE9BQUEsRUFBQSxJQUFBLEVBQXFDO0FBQ2xELElBQUEsT0FBTyxDQUFQLGVBQUEsQ0FBQSxJQUFBO0FBQ0Q7O0FBRUQsRUFBQSxXQUFXLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxTQUFBLEVBQWdFO0FBQ3pFLFNBQUEsWUFBQSxDQUFBLE9BQUEsRUFBQSxJQUFBLEVBQWlDLFNBQVMsQ0FBMUMsV0FBQTtBQUNEOztBQWxCOEM7OztBQXFCakQsSUFBSSxNQUFNLEdBQVYsY0FBQTtBQUVBLE1BQU0sR0FBRyxpREFBdUIsR0FBdkIsRUFBVCxNQUFTLENBQVQ7QUFDQSxNQUFNLEdBQUcsMkNBQW9CLEdBQXBCLEVBQW9CLE1BQXBCLEVBQWdDO0FBQUE7QUFBaEMsQ0FBVDtlQUVBLE07O0FBQ08sTUFBTSxtQkFBbUIsR0FBRyxHQUFHLENBQS9CLG1CQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2xpbW1lclRyZWVDaGFuZ2VzLCBHbGltbWVyVHJlZUNvbnN0cnVjdGlvbiwgT3B0aW9uIH0gZnJvbSAnQGdsaW1tZXIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjYXN0VG9TaW1wbGUgfSBmcm9tICdAZ2xpbW1lci91dGlsJztcbmltcG9ydCB7XG4gIEF0dHJOYW1lc3BhY2UsXG4gIEVsZW1lbnROYW1lc3BhY2UsXG4gIE5hbWVzcGFjZSxcbiAgU2ltcGxlRG9jdW1lbnQsXG4gIFNpbXBsZUVsZW1lbnQsXG4gIFNpbXBsZU5vZGUsXG59IGZyb20gJ0BzaW1wbGUtZG9tL2ludGVyZmFjZSc7XG5pbXBvcnQgeyBhcHBseVNWR0lubmVySFRNTEZpeCB9IGZyb20gJy4uL2NvbXBhdC9zdmctaW5uZXItaHRtbC1maXgnO1xuaW1wb3J0IHsgYXBwbHlUZXh0Tm9kZU1lcmdpbmdGaXggfSBmcm9tICcuLi9jb21wYXQvdGV4dC1ub2RlLW1lcmdpbmctZml4JztcbmltcG9ydCB7IEJMQUNLTElTVF9UQUJMRSwgRE9NT3BlcmF0aW9ucyB9IGZyb20gJy4vb3BlcmF0aW9ucyc7XG5cbltcbiAgJ2InLFxuICAnYmlnJyxcbiAgJ2Jsb2NrcXVvdGUnLFxuICAnYm9keScsXG4gICdicicsXG4gICdjZW50ZXInLFxuICAnY29kZScsXG4gICdkZCcsXG4gICdkaXYnLFxuICAnZGwnLFxuICAnZHQnLFxuICAnZW0nLFxuICAnZW1iZWQnLFxuICAnaDEnLFxuICAnaDInLFxuICAnaDMnLFxuICAnaDQnLFxuICAnaDUnLFxuICAnaDYnLFxuICAnaGVhZCcsXG4gICdocicsXG4gICdpJyxcbiAgJ2ltZycsXG4gICdsaScsXG4gICdsaXN0aW5nJyxcbiAgJ21haW4nLFxuICAnbWV0YScsXG4gICdub2JyJyxcbiAgJ29sJyxcbiAgJ3AnLFxuICAncHJlJyxcbiAgJ3J1YnknLFxuICAncycsXG4gICdzbWFsbCcsXG4gICdzcGFuJyxcbiAgJ3N0cm9uZycsXG4gICdzdHJpa2UnLFxuICAnc3ViJyxcbiAgJ3N1cCcsXG4gICd0YWJsZScsXG4gICd0dCcsXG4gICd1JyxcbiAgJ3VsJyxcbiAgJ3ZhcicsXG5dLmZvckVhY2goKHRhZykgPT4gKEJMQUNLTElTVF9UQUJMRVt0YWddID0gMSkpO1xuXG5jb25zdCBXSElURVNQQUNFID0gL1tcXHQtXFxyIFxceEEwXFx1MTY4MFxcdTE4MEVcXHUyMDAwLVxcdTIwMEFcXHUyMDI4XFx1MjAyOVxcdTIwMkZcXHUyMDVGXFx1MzAwMFxcdUZFRkZdLztcblxubGV0IGRvYzogT3B0aW9uPFNpbXBsZURvY3VtZW50PiA9IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgPyBudWxsIDogY2FzdFRvU2ltcGxlKGRvY3VtZW50KTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzV2hpdGVzcGFjZShzdHJpbmc6IHN0cmluZykge1xuICByZXR1cm4gV0hJVEVTUEFDRS50ZXN0KHN0cmluZyk7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRE9NIHtcbiAgZXhwb3J0IGNsYXNzIFRyZWVDb25zdHJ1Y3Rpb24gZXh0ZW5kcyBET01PcGVyYXRpb25zIGltcGxlbWVudHMgR2xpbW1lclRyZWVDb25zdHJ1Y3Rpb24ge1xuICAgIGNyZWF0ZUVsZW1lbnROUyhuYW1lc3BhY2U6IEVsZW1lbnROYW1lc3BhY2UsIHRhZzogc3RyaW5nKTogU2ltcGxlRWxlbWVudCB7XG4gICAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobmFtZXNwYWNlLCB0YWcpO1xuICAgIH1cblxuICAgIHNldEF0dHJpYnV0ZShcbiAgICAgIGVsZW1lbnQ6IFNpbXBsZUVsZW1lbnQsXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICB2YWx1ZTogc3RyaW5nLFxuICAgICAgbmFtZXNwYWNlOiBPcHRpb248QXR0ck5hbWVzcGFjZT4gPSBudWxsXG4gICAgKSB7XG4gICAgICBpZiAobmFtZXNwYWNlKSB7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlTlMobmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbGV0IGFwcGxpZWRUcmVlQ29uc3RydWN0aW9uID0gVHJlZUNvbnN0cnVjdGlvbjtcbiAgYXBwbGllZFRyZWVDb25zdHJ1Y3Rpb24gPSBhcHBseVRleHROb2RlTWVyZ2luZ0ZpeChcbiAgICBkb2MsXG4gICAgYXBwbGllZFRyZWVDb25zdHJ1Y3Rpb25cbiAgKSBhcyB0eXBlb2YgVHJlZUNvbnN0cnVjdGlvbjtcbiAgYXBwbGllZFRyZWVDb25zdHJ1Y3Rpb24gPSBhcHBseVNWR0lubmVySFRNTEZpeChcbiAgICBkb2MsXG4gICAgYXBwbGllZFRyZWVDb25zdHJ1Y3Rpb24sXG4gICAgTmFtZXNwYWNlLlNWR1xuICApIGFzIHR5cGVvZiBUcmVlQ29uc3RydWN0aW9uO1xuXG4gIGV4cG9ydCBjb25zdCBET01UcmVlQ29uc3RydWN0aW9uID0gYXBwbGllZFRyZWVDb25zdHJ1Y3Rpb247XG4gIGV4cG9ydCB0eXBlIERPTVRyZWVDb25zdHJ1Y3Rpb24gPSBUcmVlQ29uc3RydWN0aW9uO1xufVxuXG5leHBvcnQgY2xhc3MgRE9NQ2hhbmdlc0ltcGwgZXh0ZW5kcyBET01PcGVyYXRpb25zIGltcGxlbWVudHMgR2xpbW1lclRyZWVDaGFuZ2VzIHtcbiAgcHJvdGVjdGVkIG5hbWVzcGFjZTogT3B0aW9uPHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGRvY3VtZW50OiBTaW1wbGVEb2N1bWVudCkge1xuICAgIHN1cGVyKGRvY3VtZW50KTtcbiAgICB0aGlzLm5hbWVzcGFjZSA9IG51bGw7XG4gIH1cblxuICBzZXRBdHRyaWJ1dGUoZWxlbWVudDogU2ltcGxlRWxlbWVudCwgbmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgcmVtb3ZlQXR0cmlidXRlKGVsZW1lbnQ6IFNpbXBsZUVsZW1lbnQsIG5hbWU6IHN0cmluZykge1xuICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpO1xuICB9XG5cbiAgaW5zZXJ0QWZ0ZXIoZWxlbWVudDogU2ltcGxlRWxlbWVudCwgbm9kZTogU2ltcGxlTm9kZSwgcmVmZXJlbmNlOiBTaW1wbGVOb2RlKSB7XG4gICAgdGhpcy5pbnNlcnRCZWZvcmUoZWxlbWVudCwgbm9kZSwgcmVmZXJlbmNlLm5leHRTaWJsaW5nKTtcbiAgfVxufVxuXG5sZXQgaGVscGVyID0gRE9NQ2hhbmdlc0ltcGw7XG5cbmhlbHBlciA9IGFwcGx5VGV4dE5vZGVNZXJnaW5nRml4KGRvYywgaGVscGVyKSBhcyB0eXBlb2YgRE9NQ2hhbmdlc0ltcGw7XG5oZWxwZXIgPSBhcHBseVNWR0lubmVySFRNTEZpeChkb2MsIGhlbHBlciwgTmFtZXNwYWNlLlNWRykgYXMgdHlwZW9mIERPTUNoYW5nZXNJbXBsO1xuXG5leHBvcnQgZGVmYXVsdCBoZWxwZXI7XG5leHBvcnQgY29uc3QgRE9NVHJlZUNvbnN0cnVjdGlvbiA9IERPTS5ET01UcmVlQ29uc3RydWN0aW9uO1xuZXhwb3J0IHR5cGUgRE9NVHJlZUNvbnN0cnVjdGlvbiA9IERPTS5ET01UcmVlQ29uc3RydWN0aW9uO1xuZXhwb3J0IHR5cGUgRE9NTmFtZXNwYWNlID0gTmFtZXNwYWNlO1xuIl0sInNvdXJjZVJvb3QiOiIifQ==