chore(parsing): change internal usage of `@` to `:` for namespaced values
Closes #8346
This commit is contained in:
parent
7a524e3deb
commit
9fbafba993
|
@ -408,10 +408,10 @@ export function getHtmlTagDefinition(tagName: string): HtmlTagDefinition {
|
||||||
return isPresent(result) ? result : DEFAULT_TAG_DEFINITION;
|
return isPresent(result) ? result : DEFAULT_TAG_DEFINITION;
|
||||||
}
|
}
|
||||||
|
|
||||||
var NS_PREFIX_RE = /^@([^:]+):(.+)/g;
|
var NS_PREFIX_RE = /^:([^:]+):(.+)/g;
|
||||||
|
|
||||||
export function splitNsName(elementName: string): string[] {
|
export function splitNsName(elementName: string): string[] {
|
||||||
if (elementName[0] != '@') {
|
if (elementName[0] != ':') {
|
||||||
return [null, elementName];
|
return [null, elementName];
|
||||||
}
|
}
|
||||||
let match = RegExpWrapper.firstMatch(NS_PREFIX_RE, elementName);
|
let match = RegExpWrapper.firstMatch(NS_PREFIX_RE, elementName);
|
||||||
|
@ -423,5 +423,5 @@ export function getNsPrefix(elementName: string): string {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function mergeNsAndName(prefix: string, localName: string): string {
|
export function mergeNsAndName(prefix: string, localName: string): string {
|
||||||
return isPresent(prefix) ? `@${prefix}:${localName}` : localName;
|
return isPresent(prefix) ? `:${prefix}:${localName}` : localName;
|
||||||
}
|
}
|
||||||
|
|
|
@ -154,17 +154,17 @@ export function main() {
|
||||||
|
|
||||||
it('should support explicit mamespace', () => {
|
it('should support explicit mamespace', () => {
|
||||||
expect(humanizeDom(parser.parse('<myns:div></myns:div>', 'TestComp')))
|
expect(humanizeDom(parser.parse('<myns:div></myns:div>', 'TestComp')))
|
||||||
.toEqual([[HtmlElementAst, '@myns:div', 0]]);
|
.toEqual([[HtmlElementAst, ':myns:div', 0]]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should support implicit mamespace', () => {
|
it('should support implicit mamespace', () => {
|
||||||
expect(humanizeDom(parser.parse('<svg></svg>', 'TestComp')))
|
expect(humanizeDom(parser.parse('<svg></svg>', 'TestComp')))
|
||||||
.toEqual([[HtmlElementAst, '@svg:svg', 0]]);
|
.toEqual([[HtmlElementAst, ':svg:svg', 0]]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should propagate the namespace', () => {
|
it('should propagate the namespace', () => {
|
||||||
expect(humanizeDom(parser.parse('<myns:div><p></p></myns:div>', 'TestComp')))
|
expect(humanizeDom(parser.parse('<myns:div><p></p></myns:div>', 'TestComp')))
|
||||||
.toEqual([[HtmlElementAst, '@myns:div', 0], [HtmlElementAst, '@myns:p', 1]]);
|
.toEqual([[HtmlElementAst, ':myns:div', 0], [HtmlElementAst, ':myns:p', 1]]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should match closing tags case sensitive', () => {
|
it('should match closing tags case sensitive', () => {
|
||||||
|
@ -184,7 +184,7 @@ export function main() {
|
||||||
|
|
||||||
it('should support self closing foreign elements', () => {
|
it('should support self closing foreign elements', () => {
|
||||||
expect(humanizeDom(parser.parse('<math />', 'TestComp')))
|
expect(humanizeDom(parser.parse('<math />', 'TestComp')))
|
||||||
.toEqual([[HtmlElementAst, '@math:math', 0]]);
|
.toEqual([[HtmlElementAst, ':math:math', 0]]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should ignore LF immediately after textarea, pre and listing', () => {
|
it('should ignore LF immediately after textarea, pre and listing', () => {
|
||||||
|
@ -221,7 +221,7 @@ export function main() {
|
||||||
|
|
||||||
it('should parse attributes on svg elements case sensitive', () => {
|
it('should parse attributes on svg elements case sensitive', () => {
|
||||||
expect(humanizeDom(parser.parse('<svg viewBox="0"></svg>', 'TestComp')))
|
expect(humanizeDom(parser.parse('<svg viewBox="0"></svg>', 'TestComp')))
|
||||||
.toEqual([[HtmlElementAst, '@svg:svg', 0], [HtmlAttrAst, 'viewBox', '0']]);
|
.toEqual([[HtmlElementAst, ':svg:svg', 0], [HtmlAttrAst, 'viewBox', '0']]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should parse attributes on template elements', () => {
|
it('should parse attributes on template elements', () => {
|
||||||
|
@ -231,7 +231,7 @@ export function main() {
|
||||||
|
|
||||||
it('should support namespace', () => {
|
it('should support namespace', () => {
|
||||||
expect(humanizeDom(parser.parse('<svg:use xlink:href="Port" />', 'TestComp')))
|
expect(humanizeDom(parser.parse('<svg:use xlink:href="Port" />', 'TestComp')))
|
||||||
.toEqual([[HtmlElementAst, '@svg:use', 0], [HtmlAttrAst, '@xlink:href', 'Port']]);
|
.toEqual([[HtmlElementAst, ':svg:use', 0], [HtmlAttrAst, ':xlink:href', 'Port']]);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -146,7 +146,7 @@ export function main() {
|
||||||
var parsed = parse('<svg><ng-content></ng-content></svg>', []);
|
var parsed = parse('<svg><ng-content></ng-content></svg>', []);
|
||||||
expect(humanizeTplAst(parsed))
|
expect(humanizeTplAst(parsed))
|
||||||
.toEqual([
|
.toEqual([
|
||||||
[ElementAst, '@svg:svg'],
|
[ElementAst, ':svg:svg'],
|
||||||
[NgContentAst],
|
[NgContentAst],
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
@ -854,7 +854,7 @@ There is no directive with "exportAs" set to "dirA" ("<div [ERROR ->]#a="dirA"><
|
||||||
() => {
|
() => {
|
||||||
expect(humanizeTplAst(parse('<svg><template></template></svg>', [])))
|
expect(humanizeTplAst(parse('<svg><template></template></svg>', [])))
|
||||||
.toEqual([
|
.toEqual([
|
||||||
[ElementAst, '@svg:svg'],
|
[ElementAst, ':svg:svg'],
|
||||||
[EmbeddedTemplateAst],
|
[EmbeddedTemplateAst],
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
@ -1423,11 +1423,11 @@ Property binding a not used by any directive on an embedded template ("[ERROR ->
|
||||||
expect(humanizeTplAstSourceSpans(
|
expect(humanizeTplAstSourceSpans(
|
||||||
parse('<svg><circle /><use xlink:href="Port" /></svg>', [tagSel, attrSel])))
|
parse('<svg><circle /><use xlink:href="Port" /></svg>', [tagSel, attrSel])))
|
||||||
.toEqual([
|
.toEqual([
|
||||||
[ElementAst, '@svg:svg', '<svg>'],
|
[ElementAst, ':svg:svg', '<svg>'],
|
||||||
[ElementAst, '@svg:circle', '<circle />'],
|
[ElementAst, ':svg:circle', '<circle />'],
|
||||||
[DirectiveAst, tagSel, '<circle />'],
|
[DirectiveAst, tagSel, '<circle />'],
|
||||||
[ElementAst, '@svg:use', '<use xlink:href="Port" />'],
|
[ElementAst, ':svg:use', '<use xlink:href="Port" />'],
|
||||||
[AttrAst, '@xlink:href', 'Port', 'xlink:href="Port"'],
|
[AttrAst, ':xlink:href', 'Port', 'xlink:href="Port"'],
|
||||||
[DirectiveAst, attrSel, '<use xlink:href="Port" />'],
|
[DirectiveAst, attrSel, '<use xlink:href="Port" />'],
|
||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
|
@ -328,10 +328,10 @@ function _flattenStyles(compId: string, styles: Array<any | any[]>, target: stri
|
||||||
return target;
|
return target;
|
||||||
}
|
}
|
||||||
|
|
||||||
var NS_PREFIX_RE = /^@([^:]+):(.+)/g;
|
var NS_PREFIX_RE = /^:([^:]+):(.+)/g;
|
||||||
|
|
||||||
function splitNamespace(name: string): string[] {
|
function splitNamespace(name: string): string[] {
|
||||||
if (name[0] != '@') {
|
if (name[0] != ':') {
|
||||||
return [null, name];
|
return [null, name];
|
||||||
}
|
}
|
||||||
let match = RegExpWrapper.firstMatch(NS_PREFIX_RE, name);
|
let match = RegExpWrapper.firstMatch(NS_PREFIX_RE, name);
|
||||||
|
|
Loading…
Reference in New Issue