feat(ivy): add namespace instructions for SVG and others (#23899)

PR Close #23899
This commit is contained in:
Ben Lesh
2018-05-25 13:14:49 -07:00
committed by Victor Berchet
parent c494d3cf60
commit 81e4b2a4bf
6 changed files with 80 additions and 22 deletions

View File

@ -110,7 +110,7 @@ class DefaultDomRenderer2 implements Renderer2 {
createElement(name: string, namespace?: string): any {
if (namespace) {
return document.createElementNS(NAMESPACE_URIS[namespace], name);
return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);
}
return document.createElement(name);
@ -150,13 +150,8 @@ class DefaultDomRenderer2 implements Renderer2 {
setAttribute(el: any, name: string, value: string, namespace?: string): void {
if (namespace) {
name = `${namespace}:${name}`;
const namespaceUri = NAMESPACE_URIS[namespace];
if (namespaceUri) {
el.setAttributeNS(namespaceUri, name, value);
} else {
el.setAttribute(name, value);
}
const namespaceUri = NAMESPACE_URIS[namespace] || namespace;
el.setAttributeNS(namespaceUri, name, value);
} else {
el.setAttribute(name, value);
}
@ -164,12 +159,8 @@ class DefaultDomRenderer2 implements Renderer2 {
removeAttribute(el: any, name: string, namespace?: string): void {
if (namespace) {
const namespaceUri = NAMESPACE_URIS[namespace];
if (namespaceUri) {
el.removeAttributeNS(namespaceUri, name);
} else {
el.removeAttribute(`${namespace}:${name}`);
}
const namespaceUri = NAMESPACE_URIS[namespace] || namespace;
el.removeAttributeNS(namespaceUri, name);
} else {
el.removeAttribute(name);
}