UNPKG

@glimmer/compiler

Version:
89 lines (85 loc) 7.89 kB
// There is a small whitelist of namespaced attributes specially // enumerated in // https://www.w3.org/TR/html/syntax.html#attributes-0 // // > When a foreign element has one of the namespaced attributes given by // > the local name and namespace of the first and second cells of a row // > from the following table, it must be written using the name given by // > the third cell from the same row. // // In all other cases, colons are interpreted as a regular character // with no special meaning: // // > No other namespaced attribute can be expressed in the HTML syntax. var XLINK = 'http://www.w3.org/1999/xlink'; var XML = 'http://www.w3.org/XML/1998/namespace'; var XMLNS = 'http://www.w3.org/2000/xmlns/'; var WHITELIST = { 'xlink:actuate': XLINK, 'xlink:arcrole': XLINK, 'xlink:href': XLINK, 'xlink:role': XLINK, 'xlink:show': XLINK, 'xlink:title': XLINK, 'xlink:type': XLINK, 'xml:base': XML, 'xml:lang': XML, 'xml:space': XML, xmlns: XMLNS, 'xmlns:xlink': XMLNS }; export function getAttrNamespace(attrName) { return WHITELIST[attrName]; } var DEFLATE_TAG_TABLE = { div: 0 /* div */ , span: 1 /* span */ , p: 2 /* p */ , a: 3 /* a */ }; var INFLATE_TAG_TABLE = ['div', 'span', 'p', 'a']; export function deflateTagName(tagName) { var _a; return (_a = DEFLATE_TAG_TABLE[tagName]) !== null && _a !== void 0 ? _a : tagName; } export function inflateTagName(tagName) { return typeof tagName === 'string' ? tagName : INFLATE_TAG_TABLE[tagName]; } var DEFLATE_ATTR_TABLE = { "class": 0 /* class */ , id: 1 /* id */ , value: 2 /* value */ , name: 3 /* name */ , type: 4 /* type */ , style: 5 /* style */ , href: 6 /* href */ }; var INFLATE_ATTR_TABLE = ['class', 'id', 'value', 'name', 'type', 'style', 'href']; export function deflateAttrName(attrName) { var _a; return (_a = DEFLATE_ATTR_TABLE[attrName]) !== null && _a !== void 0 ? _a : attrName; } export function inflateAttrName(attrName) { return typeof attrName === 'string' ? attrName : INFLATE_ATTR_TABLE[attrName]; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBpbGVyL2xpYi91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLElBQU0sS0FBSyxHQUFYLDhCQUFBO0FBQ0EsSUFBTSxHQUFHLEdBQVQsc0NBQUE7QUFDQSxJQUFNLEtBQUssR0FBWCwrQkFBQTtBQUVBLElBQU0sU0FBUyxHQUE2QjtBQUMxQyxtQkFEMEMsS0FBQTtBQUUxQyxtQkFGMEMsS0FBQTtBQUcxQyxnQkFIMEMsS0FBQTtBQUkxQyxnQkFKMEMsS0FBQTtBQUsxQyxnQkFMMEMsS0FBQTtBQU0xQyxpQkFOMEMsS0FBQTtBQU8xQyxnQkFQMEMsS0FBQTtBQVExQyxjQVIwQyxHQUFBO0FBUzFDLGNBVDBDLEdBQUE7QUFVMUMsZUFWMEMsR0FBQTtBQVcxQyxFQUFBLEtBQUssRUFYcUMsS0FBQTtBQVkxQyxpQkFBZTtBQVoyQixDQUE1QztBQWVBLE9BQU0sU0FBQSxnQkFBQSxDQUFBLFFBQUEsRUFBMkM7QUFDL0MsU0FBTyxTQUFTLENBQWhCLFFBQWdCLENBQWhCO0FBQ0Q7QUFFRCxJQUFNLGlCQUFpQixHQUVuQjtBQUNGLEVBQUEsR0FBRyxFQUFBO0FBQUE7QUFERDtBQUVGLEVBQUEsSUFBSSxFQUFBO0FBQUE7QUFGRjtBQUdGLEVBQUEsQ0FBQyxFQUFBO0FBQUE7QUFIQztBQUlGLEVBQUEsQ0FBQyxFQUFBO0FBQUE7O0FBSkMsQ0FGSjtBQVNBLElBQU0saUJBQWlCLEdBRW5CLENBQUEsS0FBQSxFQUFBLE1BQUEsRUFBQSxHQUFBLEVBRkosR0FFSSxDQUZKO0FBSUEsT0FBTSxTQUFBLGNBQUEsQ0FBQSxPQUFBLEVBQXdDOzs7QUFDNUMsU0FBQSxDQUFBLEVBQUEsR0FBTyxpQkFBaUIsQ0FBeEIsT0FBd0IsQ0FBeEIsTUFBQSxJQUFBLElBQWlDLEVBQUEsS0FBQSxLQUFqQyxDQUFBLEdBQUEsRUFBQSxHQUFBLE9BQUE7QUFDRDtBQUVELE9BQU0sU0FBQSxjQUFBLENBQUEsT0FBQSxFQUEyRDtBQUMvRCxTQUFPLE9BQUEsT0FBQSxLQUFBLFFBQUEsR0FBQSxPQUFBLEdBQXdDLGlCQUFpQixDQUFoRSxPQUFnRSxDQUFoRTtBQUNEO0FBRUQsSUFBTSxrQkFBa0IsR0FFcEI7QUFDRixXQUFLO0FBQUE7QUFESDtBQUVGLEVBQUEsRUFBRSxFQUFBO0FBQUE7QUFGQTtBQUdGLEVBQUEsS0FBSyxFQUFBO0FBQUE7QUFISDtBQUlGLEVBQUEsSUFBSSxFQUFBO0FBQUE7QUFKRjtBQUtGLEVBQUEsSUFBSSxFQUFBO0FBQUE7QUFMRjtBQU1GLEVBQUEsS0FBSyxFQUFBO0FBQUE7QUFOSDtBQU9GLEVBQUEsSUFBSSxFQUFBO0FBQUE7O0FBUEYsQ0FGSjtBQVlBLElBQU0sa0JBQWtCLEdBRXBCLENBQUEsT0FBQSxFQUFBLElBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxPQUFBLEVBRkosTUFFSSxDQUZKO0FBSUEsT0FBTSxTQUFBLGVBQUEsQ0FBQSxRQUFBLEVBQTBDOzs7QUFDOUMsU0FBQSxDQUFBLEVBQUEsR0FBTyxrQkFBa0IsQ0FBekIsUUFBeUIsQ0FBekIsTUFBQSxJQUFBLElBQW1DLEVBQUEsS0FBQSxLQUFuQyxDQUFBLEdBQUEsRUFBQSxHQUFBLFFBQUE7QUFDRDtBQUVELE9BQU0sU0FBQSxlQUFBLENBQUEsUUFBQSxFQUE4RDtBQUNsRSxTQUFPLE9BQUEsUUFBQSxLQUFBLFFBQUEsR0FBQSxRQUFBLEdBQTBDLGtCQUFrQixDQUFuRSxRQUFtRSxDQUFuRTtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGljdCwgV2VsbEtub3duQXR0ck5hbWUsIFdlbGxLbm93blRhZ05hbWUgfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuLy8gVGhlcmUgaXMgYSBzbWFsbCB3aGl0ZWxpc3Qgb2YgbmFtZXNwYWNlZCBhdHRyaWJ1dGVzIHNwZWNpYWxseVxuLy8gZW51bWVyYXRlZCBpblxuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2h0bWwvc3ludGF4Lmh0bWwjYXR0cmlidXRlcy0wXG4vL1xuLy8gPiBXaGVuIGEgZm9yZWlnbiBlbGVtZW50IGhhcyBvbmUgb2YgdGhlIG5hbWVzcGFjZWQgYXR0cmlidXRlcyBnaXZlbiBieVxuLy8gPiB0aGUgbG9jYWwgbmFtZSBhbmQgbmFtZXNwYWNlIG9mIHRoZSBmaXJzdCBhbmQgc2Vjb25kIGNlbGxzIG9mIGEgcm93XG4vLyA+IGZyb20gdGhlIGZvbGxvd2luZyB0YWJsZSwgaXQgbXVzdCBiZSB3cml0dGVuIHVzaW5nIHRoZSBuYW1lIGdpdmVuIGJ5XG4vLyA+IHRoZSB0aGlyZCBjZWxsIGZyb20gdGhlIHNhbWUgcm93LlxuLy9cbi8vIEluIGFsbCBvdGhlciBjYXNlcywgY29sb25zIGFyZSBpbnRlcnByZXRlZCBhcyBhIHJlZ3VsYXIgY2hhcmFjdGVyXG4vLyB3aXRoIG5vIHNwZWNpYWwgbWVhbmluZzpcbi8vXG4vLyA+IE5vIG90aGVyIG5hbWVzcGFjZWQgYXR0cmlidXRlIGNhbiBiZSBleHByZXNzZWQgaW4gdGhlIEhUTUwgc3ludGF4LlxuXG5jb25zdCBYTElOSyA9ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJztcbmNvbnN0IFhNTCA9ICdodHRwOi8vd3d3LnczLm9yZy9YTUwvMTk5OC9uYW1lc3BhY2UnO1xuY29uc3QgWE1MTlMgPSAnaHR0cDovL3d3dy53My5vcmcvMjAwMC94bWxucy8nO1xuXG5jb25zdCBXSElURUxJU1Q6IERpY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPiA9IHtcbiAgJ3hsaW5rOmFjdHVhdGUnOiBYTElOSyxcbiAgJ3hsaW5rOmFyY3JvbGUnOiBYTElOSyxcbiAgJ3hsaW5rOmhyZWYnOiBYTElOSyxcbiAgJ3hsaW5rOnJvbGUnOiBYTElOSyxcbiAgJ3hsaW5rOnNob3cnOiBYTElOSyxcbiAgJ3hsaW5rOnRpdGxlJzogWExJTkssXG4gICd4bGluazp0eXBlJzogWExJTkssXG4gICd4bWw6YmFzZSc6IFhNTCxcbiAgJ3htbDpsYW5nJzogWE1MLFxuICAneG1sOnNwYWNlJzogWE1MLFxuICB4bWxuczogWE1MTlMsXG4gICd4bWxuczp4bGluayc6IFhNTE5TLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEF0dHJOYW1lc3BhY2UoYXR0ck5hbWU6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBXSElURUxJU1RbYXR0ck5hbWVdO1xufVxuXG5jb25zdCBERUZMQVRFX1RBR19UQUJMRToge1xuICBbdGFnTmFtZTogc3RyaW5nXTogV2VsbEtub3duVGFnTmFtZSB8IHVuZGVmaW5lZDtcbn0gPSB7XG4gIGRpdjogV2VsbEtub3duVGFnTmFtZS5kaXYsXG4gIHNwYW46IFdlbGxLbm93blRhZ05hbWUuc3BhbixcbiAgcDogV2VsbEtub3duVGFnTmFtZS5wLFxuICBhOiBXZWxsS25vd25UYWdOYW1lLmEsXG59O1xuXG5jb25zdCBJTkZMQVRFX1RBR19UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25UYWdOYW1lXTogc3RyaW5nO1xufSA9IFsnZGl2JywgJ3NwYW4nLCAncCcsICdhJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZsYXRlVGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBXZWxsS25vd25UYWdOYW1lIHtcbiAgcmV0dXJuIERFRkxBVEVfVEFHX1RBQkxFW3RhZ05hbWVdID8/IHRhZ05hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlVGFnTmFtZSh0YWdOYW1lOiBzdHJpbmcgfCBXZWxsS25vd25UYWdOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiB0YWdOYW1lID09PSAnc3RyaW5nJyA/IHRhZ05hbWUgOiBJTkZMQVRFX1RBR19UQUJMRVt0YWdOYW1lXTtcbn1cblxuY29uc3QgREVGTEFURV9BVFRSX1RBQkxFOiB7XG4gIFt0YWdOYW1lOiBzdHJpbmddOiBXZWxsS25vd25BdHRyTmFtZSB8IHVuZGVmaW5lZDtcbn0gPSB7XG4gIGNsYXNzOiBXZWxsS25vd25BdHRyTmFtZS5jbGFzcyxcbiAgaWQ6IFdlbGxLbm93bkF0dHJOYW1lLmlkLFxuICB2YWx1ZTogV2VsbEtub3duQXR0ck5hbWUudmFsdWUsXG4gIG5hbWU6IFdlbGxLbm93bkF0dHJOYW1lLm5hbWUsXG4gIHR5cGU6IFdlbGxLbm93bkF0dHJOYW1lLnR5cGUsXG4gIHN0eWxlOiBXZWxsS25vd25BdHRyTmFtZS5zdHlsZSxcbiAgaHJlZjogV2VsbEtub3duQXR0ck5hbWUuaHJlZixcbn07XG5cbmNvbnN0IElORkxBVEVfQVRUUl9UQUJMRToge1xuICBbSSBpbiBXZWxsS25vd25BdHRyTmFtZV06IHN0cmluZztcbn0gPSBbJ2NsYXNzJywgJ2lkJywgJ3ZhbHVlJywgJ25hbWUnLCAndHlwZScsICdzdHlsZScsICdocmVmJ107XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyk6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lIHtcbiAgcmV0dXJuIERFRkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV0gPz8gYXR0ck5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZsYXRlQXR0ck5hbWUoYXR0ck5hbWU6IHN0cmluZyB8IFdlbGxLbm93bkF0dHJOYW1lKTogc3RyaW5nIHtcbiAgcmV0dXJuIHR5cGVvZiBhdHRyTmFtZSA9PT0gJ3N0cmluZycgPyBhdHRyTmFtZSA6IElORkxBVEVfQVRUUl9UQUJMRVthdHRyTmFtZV07XG59XG4iXSwic291cmNlUm9vdCI6IiJ9