mirror of
https://github.com/mermaid-js/mermaid.git
synced 2025-11-06 13:54:09 +01:00
fix: Remove blank SVG
This commit is contained in:
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user