fix: Remove blank SVG
This commit is contained in:
parent
8b8b828cd1
commit
16c12a42c7
|
@ -97,7 +97,7 @@ mermaid.initialize(config);
|
||||||
|
|
||||||
#### Defined in
|
#### Defined in
|
||||||
|
|
||||||
[mermaidAPI.ts:679](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L679)
|
[mermaidAPI.ts:685](https://github.com/mermaid-js/mermaid/blob/master/packages/mermaid/src/mermaidAPI.ts#L685)
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
|
|
|
@ -420,6 +420,16 @@ const render = async function (
|
||||||
const enclosingDivID = 'd' + id;
|
const enclosingDivID = 'd' + id;
|
||||||
const enclosingDivID_selector = '#' + enclosingDivID;
|
const enclosingDivID_selector = '#' + enclosingDivID;
|
||||||
|
|
||||||
|
const removeTempElements = () => {
|
||||||
|
// -------------------------------------------------------------------------------
|
||||||
|
// Remove the temporary HTML element if appropriate
|
||||||
|
const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;
|
||||||
|
const node = select(tmpElementSelector).node();
|
||||||
|
if (node && 'remove' in node) {
|
||||||
|
node.remove();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
let root: any = select('body');
|
let root: any = select('body');
|
||||||
|
|
||||||
const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX;
|
const isSandboxed = config.securityLevel === SECURITY_LVL_SANDBOX;
|
||||||
|
@ -479,6 +489,7 @@ const render = async function (
|
||||||
diag = await getDiagramFromText(text);
|
diag = await getDiagramFromText(text);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
if (config.suppressErrorRendering) {
|
if (config.suppressErrorRendering) {
|
||||||
|
removeTempElements();
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
diag = new Diagram('error');
|
diag = new Diagram('error');
|
||||||
|
@ -510,10 +521,11 @@ const render = async function (
|
||||||
try {
|
try {
|
||||||
await diag.renderer.draw(text, id, version, diag);
|
await diag.renderer.draw(text, id, version, diag);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (!config.suppressErrorRendering) {
|
if (config.suppressErrorRendering) {
|
||||||
errorRenderer.draw(text, id, version);
|
removeTempElements();
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
throw e;
|
errorRenderer.draw(text, id, version);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This is the d3 node for the svg element
|
// This is the d3 node for the svg element
|
||||||
|
@ -549,13 +561,7 @@ const render = async function (
|
||||||
throw parseEncounteredException;
|
throw parseEncounteredException;
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------------------
|
removeTempElements();
|
||||||
// Remove the temporary HTML element if appropriate
|
|
||||||
const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;
|
|
||||||
const node = select(tmpElementSelector).node();
|
|
||||||
if (node && 'remove' in node) {
|
|
||||||
node.remove();
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
svg: svgCode,
|
svg: svgCode,
|
||||||
|
|
Loading…
Reference in New Issue