function splitSVGDefs(content, tag = "defs") { let defs = ""; const index = content.indexOf("<" + tag); while (index >= 0) { const start = content.indexOf(">", index); const end = content.indexOf("", end); if (endEnd === -1) break; defs += content.slice(start + 1, end).trim(); content = content.slice(0, index).trim() + content.slice(endEnd + 1); } return { defs, content }; } /** * Merge defs and content */ function mergeDefsAndContent(defs, content) { return defs ? "" + defs + "" + content : content; } /** * Wrap SVG content, without wrapping definitions */ function wrapSVGContent(body, start, end) { const split = splitSVGDefs(body); return mergeDefsAndContent(split.defs, start + split.content + end); } export { mergeDefsAndContent, splitSVGDefs, wrapSVGContent };