@tanem/svg-injector 11.0.0 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cache.d.ts +1 -1
- package/dist/inject-element.d.ts +1 -1
- package/dist/load-svg-cached.d.ts +1 -1
- package/dist/load-svg-uncached.d.ts +1 -1
- package/dist/request-queue.d.ts +1 -1
- package/dist/svg-injector.cjs.development.js +107 -36
- package/dist/svg-injector.cjs.development.js.map +1 -1
- package/dist/svg-injector.cjs.production.js +1 -1
- package/dist/svg-injector.cjs.production.js.map +1 -1
- package/dist/svg-injector.d.ts +1 -1
- package/dist/svg-injector.esm.js +107 -36
- package/dist/svg-injector.esm.js.map +1 -1
- package/dist/svg-injector.umd.development.js +336 -175
- package/dist/svg-injector.umd.development.js.map +1 -1
- package/dist/svg-injector.umd.production.js +1 -1
- package/dist/svg-injector.umd.production.js.map +1 -1
- package/package.json +25 -26
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg-injector.cjs.production.js","sources":["../compiled/cache.js","../compiled/clone-svg.js","../compiled/is-local.js","../compiled/make-ajax-request.js","../compiled/request-queue.js","../compiled/load-svg-cached.js","../compiled/load-svg-uncached.js","../compiled/unique-id.js","../compiled/inject-element.js","../compiled/svg-injector.js"],"sourcesContent":["var cache = new Map();\nexport default cache;\n//# sourceMappingURL=cache.js.map","var cloneSvg = function (sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\nexport default cloneSvg;\n//# sourceMappingURL=clone-svg.js.map","var isLocal = function () { return window.location.protocol === 'file:'; };\nexport default isLocal;\n//# sourceMappingURL=is-local.js.map","import { parse as parseContentType } from 'content-type';\nimport isLocal from './is-local';\nvar makeAjaxRequest = function (url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n if (!contentType) {\n throw new Error('Content type not found');\n }\n var type = parseContentType(contentType).type;\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \".concat(type));\n }\n }\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal()\n ? 'Note: SVG injection ajax calls do not work locally without ' +\n 'adjusting security settings in your browser. Or consider ' +\n 'using a local webserver.'\n : 'Unable to load SVG file: ' + url);\n }\n if (httpRequest.status === 200 ||\n (isLocal() && httpRequest.status === 0)) {\n callback(null, httpRequest);\n }\n else {\n throw new Error('There was a problem injecting the SVG: ' +\n httpRequest.status +\n ' ' +\n httpRequest.statusText);\n }\n }\n }\n catch (error) {\n httpRequest.abort();\n if (error instanceof Error) {\n callback(error, httpRequest);\n }\n else {\n throw error;\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n httpRequest.send();\n};\nexport default makeAjaxRequest;\n//# sourceMappingURL=make-ajax-request.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nvar requestQueue = {};\nexport var clear = function () {\n requestQueue = {};\n};\nexport var queueRequest = function (url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n};\nexport var processRequestQueue = function (url) {\n var _loop_1 = function (i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = requestQueue[url][i];\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n if (i === requestQueue[url].length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n _loop_1(i, len);\n }\n};\n//# sourceMappingURL=request-queue.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nimport makeAjaxRequest from './make-ajax-request';\nimport { processRequestQueue, queueRequest } from './request-queue';\nvar loadSvgCached = function (url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n cache.set(url, error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n processRequestQueue(url);\n });\n};\nexport default loadSvgCached;\n//# sourceMappingURL=load-svg-cached.js.map","import makeAjaxRequest from './make-ajax-request';\nvar loadSvgUncached = function (url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n callback(error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\nexport default loadSvgUncached;\n//# sourceMappingURL=load-svg-uncached.js.map","var idCounter = 0;\nvar uniqueId = function () { return ++idCounter; };\nexport default uniqueId;\n//# sourceMappingURL=unique-id.js.map","import { __spreadArray } from \"tslib\";\nimport loadSvgCached from './load-svg-cached';\nimport loadSvgUncached from './load-svg-uncached';\nimport uniqueId from './unique-id';\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar injectElement = function (el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var elUrl = el.getAttribute('data-src') || el.getAttribute('src');\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n var elId = el.getAttribute('id');\n if (elId) {\n svg.setAttribute('id', elId);\n }\n var elTitle = el.getAttribute('title');\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n var elWidth = el.getAttribute('width');\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n var elHeight = el.getAttribute('height');\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], (svg.getAttribute('class') || '').split(' '), true), [\n 'injected-svg'\n ], false), (el.getAttribute('class') || '').split(' '), true)))\n .join(' ')\n .trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke'],\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n properties_1 = iriElementsAndProperties_1[key];\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n var _loop_1 = function (a, elementsLen) {\n currentId_1 = elements_1[a].id;\n newId_1 = currentId_1 + '-' + uniqueId();\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId_1 + '\"]');\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var attrValue = referencingElements[b].getAttribute(property);\n if (attrValue &&\n !attrValue.match(new RegExp('url\\\\(\"?#' + currentId_1 + '\"?\\\\)'))) {\n continue;\n }\n referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');\n }\n });\n var allLinks = svg.querySelectorAll('[*|href]');\n var links = [];\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href');\n if (href && href.toString() === '#' + elements_1[a].id) {\n links.push(allLinks[c]);\n }\n }\n for (var d = 0, linksLen = links.length; d < linksLen; d++) {\n links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);\n }\n elements_1[a].id = newId_1;\n };\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n _loop_1(a, elementsLen);\n }\n });\n }\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n scriptType = scripts[i].getAttribute('type');\n if (!scriptType ||\n scriptType === 'application/ecmascript' ||\n scriptType === 'application/javascript' ||\n scriptType === 'text/javascript') {\n script = scripts[i].innerText || scripts[i].textContent;\n if (script) {\n scriptsToEval.push(script);\n }\n svg.removeChild(scripts[i]);\n }\n }\n if (scriptsToEval.length > 0 &&\n (evalScripts === 'always' ||\n (evalScripts === 'once' && !ranScripts[elUrl]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n ranScripts[elUrl] = true;\n }\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\nexport default injectElement;\n//# sourceMappingURL=inject-element.js.map","import injectElement from './inject-element';\nvar SVGInjector = function (elements, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.afterAll, afterAll = _c === void 0 ? function () { return undefined; } : _c, _d = _b.afterEach, afterEach = _d === void 0 ? function () { return undefined; } : _d, _e = _b.beforeEach, beforeEach = _e === void 0 ? function () { return undefined; } : _e, _f = _b.cacheRequests, cacheRequests = _f === void 0 ? true : _f, _g = _b.evalScripts, evalScripts = _g === void 0 ? 'never' : _g, _h = _b.httpRequestWithCredentials, httpRequestWithCredentials = _h === void 0 ? false : _h, _j = _b.renumerateIRIElements, renumerateIRIElements = _j === void 0 ? true : _j;\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n for (var i = 0, j = elements.length; i < j; i++) {\n injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n if (elements &&\n 'length' in elements &&\n elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n }\n else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n }\n else {\n afterAll(0);\n }\n};\nexport default SVGInjector;\n//# sourceMappingURL=svg-injector.js.map"],"names":["cache","Map","cloneSvg","sourceSvg","cloneNode","isLocal","window","location","protocol","makeAjaxRequest","url","httpRequestWithCredentials","callback","httpRequest","XMLHttpRequest","onreadystatechange","test","readyState","contentType","getResponseHeader","Error","type","parseContentType","concat","status","responseXML","statusText","error","abort","open","withCredentials","overrideMimeType","send","requestQueue","queueRequest","push","processRequestQueue","i","len","setTimeout","Array","isArray","cacheValue","get","SVGSVGElement","length","loadSvgCached","has","undefined","set","_a","documentElement","loadSvgUncached","idCounter","uniqueId","injectedElements","ranScripts","svgNamespace","xlinkNamespace","injectElement","el","evalScripts","renumerateIRIElements","cacheRequests","beforeEach","elUrl","getAttribute","indexOf","splice","setAttribute","svg","elId","elTitle","elWidth","elHeight","mergedClasses","from","Set","__spreadArray","split","join","trim","elStyle","elData","filter","call","attributes","at","name","prototype","forEach","dataAttr","value","elements_1","properties_1","currentId_1","newId_1","iriElementsAndProperties_1","clipPath","cursor","linearGradient","marker","mask","path","pattern","radialGradient","Object","keys","key","a","elementsLen","referencingElements","id","property","b","referencingElementLen","querySelectorAll","attrValue","match","RegExp","allLinks","links","c","allLinksLen","href","getAttributeNS","toString","d","linksLen","setAttributeNS","removeAttribute","script","scriptType","scripts","scriptsToEval","scriptsLen","innerText","textContent","removeChild","l","scriptsToEvalLen","Function","styleTags","styleTag","parentNode","replaceChild","SVGInjector","elements","_b","_c","afterAll","_d","afterEach","_e","_f","_g","_h","_j","elementsLoaded_1","j"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"svg-injector.cjs.production.js","sources":["../compiled/cache.js","../compiled/clone-svg.js","../compiled/is-local.js","../compiled/make-ajax-request.js","../compiled/request-queue.js","../compiled/load-svg-cached.js","../compiled/load-svg-uncached.js","../compiled/unique-id.js","../compiled/inject-element.js","../compiled/svg-injector.js"],"sourcesContent":["var cache = new Map();\nexport default cache;\n//# sourceMappingURL=cache.js.map","var cloneSvg = function (sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\nexport default cloneSvg;\n//# sourceMappingURL=clone-svg.js.map","var isLocal = function () { return window.location.protocol === 'file:'; };\nexport default isLocal;\n//# sourceMappingURL=is-local.js.map","import { parse as parseContentType } from 'content-type';\nimport isLocal from './is-local';\nvar makeAjaxRequest = function (url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n if (!contentType) {\n throw new Error('Content type not found');\n }\n var type = parseContentType(contentType).type;\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \".concat(type));\n }\n }\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal()\n ? 'Note: SVG injection ajax calls do not work locally without ' +\n 'adjusting security settings in your browser. Or consider ' +\n 'using a local webserver.'\n : 'Unable to load SVG file: ' + url);\n }\n if (httpRequest.status === 200 ||\n (isLocal() && httpRequest.status === 0)) {\n callback(null, httpRequest);\n }\n else {\n throw new Error('There was a problem injecting the SVG: ' +\n httpRequest.status +\n ' ' +\n httpRequest.statusText);\n }\n }\n }\n catch (error) {\n httpRequest.abort();\n if (error instanceof Error) {\n callback(error, httpRequest);\n }\n else {\n throw error;\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n httpRequest.send();\n};\nexport default makeAjaxRequest;\n//# sourceMappingURL=make-ajax-request.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nvar requestQueue = {};\nexport var clear = function () {\n requestQueue = {};\n};\nexport var queueRequest = function (url, callback) {\n var _a;\n (_a = requestQueue[url]) !== null && _a !== void 0 ? _a : (requestQueue[url] = []);\n requestQueue[url].push(callback);\n};\nexport var processRequestQueue = function (url) {\n var callbacks = requestQueue[url];\n if (!callbacks) {\n return;\n }\n var _loop_1 = function (i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = callbacks[i];\n if (!callback) {\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n if (i === callbacks.length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n for (var i = 0, len = callbacks.length; i < len; i++) {\n _loop_1(i, len);\n }\n};\n//# sourceMappingURL=request-queue.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nimport makeAjaxRequest from './make-ajax-request';\nimport { processRequestQueue, queueRequest } from './request-queue';\nvar loadSvgCached = function (url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n cache.set(url, error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n processRequestQueue(url);\n });\n};\nexport default loadSvgCached;\n//# sourceMappingURL=load-svg-cached.js.map","import makeAjaxRequest from './make-ajax-request';\nvar loadSvgUncached = function (url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n callback(error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\nexport default loadSvgUncached;\n//# sourceMappingURL=load-svg-uncached.js.map","var idCounter = 0;\nvar uniqueId = function () { return ++idCounter; };\nexport default uniqueId;\n//# sourceMappingURL=unique-id.js.map","import { __spreadArray } from \"tslib\";\nimport loadSvgCached from './load-svg-cached';\nimport loadSvgUncached from './load-svg-uncached';\nimport uniqueId from './unique-id';\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar injectElement = function (el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var _a;\n var elUrl = (_a = el.getAttribute('data-src')) !== null && _a !== void 0 ? _a : el.getAttribute('src');\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n var _a, _b;\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n var elId = el.getAttribute('id');\n if (elId) {\n svg.setAttribute('id', elId);\n }\n var elTitle = el.getAttribute('title');\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n var elWidth = el.getAttribute('width');\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n var elHeight = el.getAttribute('height');\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], ((_a = svg.getAttribute('class')) !== null && _a !== void 0 ? _a : '').split(' '), true), [\n 'injected-svg'\n ], false), ((_b = el.getAttribute('class')) !== null && _b !== void 0 ? _b : '').split(' '), true)))\n .join(' ')\n .trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke'],\n };\n var replaceIriReferences_1 = function (value, iriIdMap) {\n return value.replace(/url\\((['\"]?)\\s*#([^\\s'\"\\)]+)\\s*\\1\\)/g, function (match, _quote, iriId) {\n var newId = iriIdMap[iriId];\n return newId ? \"url(#\".concat(newId, \")\") : match;\n });\n };\n var replaceHrefReference = function (value, iriIdMap) {\n if (!value.startsWith('#')) {\n return value;\n }\n var iriId = value.slice(1);\n var newId = iriIdMap[iriId];\n return newId ? '#' + newId : value;\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n var renumeratedElements_1 = [];\n var iriIdMap_1 = {};\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n var currentElement = elements_1[a];\n currentId_1 = currentElement.id;\n newId_1 = currentId_1 + '-' + uniqueId();\n iriIdMap_1[currentId_1] = newId_1;\n renumeratedElements_1.push({\n element: currentElement,\n currentId: currentId_1,\n newId: newId_1,\n });\n }\n });\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n properties_1 = iriElementsAndProperties_1[key];\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + ']');\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var referencingElement = referencingElements[b];\n var attrValue = referencingElement.getAttribute(property);\n if (attrValue) {\n var nextValue = replaceIriReferences_1(attrValue, iriIdMap_1);\n if (nextValue !== attrValue) {\n referencingElement.setAttribute(property, nextValue);\n }\n }\n }\n });\n });\n var allLinks = svg.querySelectorAll('*');\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var link = allLinks[c];\n var href = link.getAttribute('href');\n if (href) {\n var nextHref = replaceHrefReference(href, iriIdMap_1);\n if (nextHref !== href) {\n link.setAttribute('href', nextHref);\n }\n }\n var xlinkHref = link.getAttributeNS(xlinkNamespace, 'href');\n if (xlinkHref) {\n var nextXlinkHref = replaceHrefReference(xlinkHref, iriIdMap_1);\n if (nextXlinkHref !== xlinkHref) {\n link.setAttributeNS(xlinkNamespace, 'href', nextXlinkHref);\n }\n }\n }\n var styleElements = svg.querySelectorAll('[style]');\n for (var d = 0, styleElementsLen = styleElements.length; d < styleElementsLen; d++) {\n var styleElement = styleElements[d];\n var styleValue = styleElement.getAttribute('style');\n if (styleValue) {\n var nextStyleValue = replaceIriReferences_1(styleValue, iriIdMap_1);\n if (nextStyleValue !== styleValue) {\n styleElement.setAttribute('style', nextStyleValue);\n }\n }\n }\n var styleTagElements = svg.querySelectorAll('style');\n for (var e = 0, styleTagElementsLen = styleTagElements.length; e < styleTagElementsLen; e++) {\n var styleTagElement = styleTagElements[e];\n var textContent = styleTagElement.textContent;\n if (textContent) {\n var nextTextContent = replaceIriReferences_1(textContent, iriIdMap_1);\n if (nextTextContent !== textContent) {\n styleTagElement.textContent = nextTextContent;\n }\n }\n }\n for (var f = 0, renumeratedElementsLen = renumeratedElements_1.length; f < renumeratedElementsLen; f++) {\n renumeratedElements_1[f].element.id = renumeratedElements_1[f].newId;\n }\n }\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n var scriptElement = scripts[i];\n scriptType = scriptElement.getAttribute('type');\n if (!scriptType ||\n scriptType === 'application/ecmascript' ||\n scriptType === 'application/javascript' ||\n scriptType === 'text/javascript') {\n script = scriptElement.innerText || scriptElement.textContent;\n if (script) {\n scriptsToEval.push(script);\n }\n svg.removeChild(scriptElement);\n }\n }\n if (scriptsToEval.length > 0 &&\n (evalScripts === 'always' ||\n (evalScripts === 'once' && !ranScripts[elUrl]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n ranScripts[elUrl] = true;\n }\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\nexport default injectElement;\n//# sourceMappingURL=inject-element.js.map","import injectElement from './inject-element';\nvar SVGInjector = function (elements, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.afterAll, afterAll = _c === void 0 ? function () { return undefined; } : _c, _d = _b.afterEach, afterEach = _d === void 0 ? function () { return undefined; } : _d, _e = _b.beforeEach, beforeEach = _e === void 0 ? function () { return undefined; } : _e, _f = _b.cacheRequests, cacheRequests = _f === void 0 ? true : _f, _g = _b.evalScripts, evalScripts = _g === void 0 ? 'never' : _g, _h = _b.httpRequestWithCredentials, httpRequestWithCredentials = _h === void 0 ? false : _h, _j = _b.renumerateIRIElements, renumerateIRIElements = _j === void 0 ? true : _j;\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n for (var i = 0, j = elements.length; i < j; i++) {\n var element = elements[i];\n if (!element) {\n continue;\n }\n injectElement(element, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n if (elements &&\n 'length' in elements &&\n elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n }\n else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n }\n else {\n afterAll(0);\n }\n};\nexport default SVGInjector;\n//# sourceMappingURL=svg-injector.js.map"],"names":["cache","Map","cloneSvg","sourceSvg","cloneNode","isLocal","window","location","protocol","makeAjaxRequest","url","httpRequestWithCredentials","callback","httpRequest","XMLHttpRequest","onreadystatechange","test","readyState","contentType","getResponseHeader","Error","type","parseContentType","concat","status","responseXML","statusText","error","abort","open","withCredentials","overrideMimeType","send","requestQueue","queueRequest","_a","push","processRequestQueue","callbacks","i","len","setTimeout","Array","isArray","cacheValue","get","SVGSVGElement","length","loadSvgCached","has","undefined","set","documentElement","loadSvgUncached","idCounter","uniqueId","injectedElements","ranScripts","svgNamespace","xlinkNamespace","injectElement","el","evalScripts","renumerateIRIElements","cacheRequests","beforeEach","elUrl","getAttribute","indexOf","splice","setAttribute","svg","elId","elTitle","elWidth","elHeight","mergedClasses","from","Set","__spreadArray","split","_b","join","trim","elStyle","elData","filter","call","attributes","at","name","prototype","forEach","dataAttr","value","elements_1","currentId_1","newId_1","iriElementsAndProperties_1","clipPath","cursor","linearGradient","marker","mask","path","pattern","radialGradient","replaceIriReferences_1","iriIdMap","replace","match","_quote","iriId","newId","replaceHrefReference","startsWith","slice","renumeratedElements_1","iriIdMap_1","Object","keys","key","a","elementsLen","querySelectorAll","currentElement","id","element","currentId","referencingElements","property","b","referencingElementLen","referencingElement","attrValue","nextValue","allLinks","c","allLinksLen","link","href","nextHref","xlinkHref","getAttributeNS","nextXlinkHref","setAttributeNS","styleElements","d","styleElementsLen","styleElement","styleValue","nextStyleValue","styleTagElements","e","styleTagElementsLen","styleTagElement","textContent","nextTextContent","f","renumeratedElementsLen","removeAttribute","script","scriptType","scripts","scriptsToEval","scriptsLen","scriptElement","innerText","removeChild","l","scriptsToEvalLen","Function","styleTags","styleTag","parentNode","replaceChild","SVGInjector","elements","_c","afterAll","_d","afterEach","_e","_f","_g","_h","_j","elementsLoaded_1","j"],"mappings":"4EAAMA,MAAQ,IAAIC,ICAZC,SAAW,SAACC,GAChB,OAAAA,EAAUC,WAAU,EAApB,ECDIC,QAAU,WAAM,MAA6B,UAA7BC,OAAOC,SAASC,QAAhB,ECGhBC,gBAAkB,SACtBC,EACAC,EACAC,GAEA,IAAMC,EAAc,IAAIC,eAExBD,EAAYE,mBAAqB,WAC/B,IACE,IAAK,SAASC,KAAKN,IAAmC,IAA3BG,EAAYI,WAAkB,CACvD,IAAMC,EAAcL,EAAYM,kBAAkB,gBAClD,IAAKD,EACH,MAAM,IAAIE,MAAM,0BAGV,IAAAC,EAASC,YAAAA,MAAiBJ,GAAYG,KAC9C,GAAe,kBAATA,GAAqC,eAATA,EAChC,MAAM,IAAID,MAAM,yBAAAG,OAAyBF,GAE7C,CAEA,GAA+B,IAA3BR,EAAYI,WAAkB,CAChC,GAA2B,MAAvBJ,EAAYW,QAA8C,OAA5BX,EAAYY,YAC5C,MAAM,IAAIL,MACRf,UACI,+IAGA,4BAA8BK,GAItC,KACyB,MAAvBG,EAAYW,QACXnB,WAAoC,IAAvBQ,EAAYW,QAI1B,MAAM,IAAIJ,MACR,0CACEP,EAAYW,OACZ,IACAX,EAAYa,YANhBd,EAAS,KAAMC,EASnB,CACF,CAAE,MAAOc,GAEP,GADAd,EAAYe,UACRD,aAAiBP,OAGnB,MAAMO,EAFNf,EAASe,EAAOd,EAIpB,CACF,EAEAA,EAAYgB,KAAK,MAAOnB,GAExBG,EAAYiB,gBAAkBnB,EAK1BE,EAAYkB,kBACdlB,EAAYkB,iBAAiB,YAG/BlB,EAAYmB,MACd,ECnEIC,aAA0C,CAAA,EAMjCC,aAAe,SAACxB,EAAaE,SACxB,QAAhBuB,EAAAF,aAAavB,UAAG,IAAAyB,IAAhBF,aAAavB,GAAS,IACtBuB,aAAavB,GAAM0B,KAAKxB,EAC1B,EAEayB,oBAAsB,SAAC3B,GAClC,IAAM4B,EAAYL,aAAavB,GAC/B,GAAK4B,EAIL,IAASC,IAAAA,EAAAA,SAAAA,EAAOC,GAEdC,YAAW,WAET,GAAIC,MAAMC,QAAQV,aAAavB,IAAO,CACpC,IAAMkC,EAAa5C,MAAM6C,IAAInC,GACvBE,EAAW0B,EAAUC,GAG3B,IAAK3B,EACH,OAIEgC,aAAsBE,eACxBlC,EAAS,KAAMV,SAAS0C,IAItBA,aAAsBxB,OACxBR,EAASgC,GAIPL,IAAMD,EAAUS,OAAS,UACpBd,aAAavB,EAExB,CACF,GAAG,IA5BI6B,EAAI,EAAGC,EAAMF,EAAUS,OAAQR,EAAIC,EAAKD,IAAxCA,EAAAA,EA8BX,EC7CMS,cAAgB,SACpBtC,EACAC,EACAC,GAEA,GAAIZ,MAAMiD,IAAIvC,GAAM,CAClB,IAAMkC,EAAa5C,MAAM6C,IAAInC,GAE7B,QAAmBwC,IAAfN,EAEF,YADAV,aAAaxB,EAAKE,GAKpB,GAAIgC,aAAsBE,cAExB,YADAlC,EAAS,KAAMV,SAAS0C,GAK5B,CAGA5C,MAAMmD,IAAIzC,OAAKwC,GACfhB,aAAaxB,EAAKE,GAElBH,gBAAgBC,EAAKC,GAA4B,SAACgB,EAAOd,SAEnDc,EACF3B,MAAMmD,IAAIzC,EAAKiB,IAEQ,QAAvBQ,EAAAtB,EAAYY,uBAAWU,SAAAA,EAAEiB,2BAA2BN,eAEpD9C,MAAMmD,IAAIzC,EAAKG,EAAYY,YAAY2B,iBAEzCf,oBAAoB3B,EACtB,GACF,ECxCM2C,gBAAkB,SACtB3C,EACAC,EACAC,GAEAH,gBAAgBC,EAAKC,GAA4B,SAACgB,EAAOd,SAEnDc,EACFf,EAASe,IAEc,QAAvBQ,EAAAtB,EAAYY,uBAAWU,SAAAA,EAAEiB,2BAA2BN,eAEpDlC,EAAS,KAAMC,EAAYY,YAAY2B,gBAE3C,GACF,EClBIE,UAAY,EACVC,SAAW,WAAM,QAAED,SAAF,ECMjBE,iBAAkC,GAClCC,WAAsC,CAAA,EACtCC,aAAe,6BACfC,eAAiB,+BAEjBC,cAAgB,SACpBC,EACAC,EACAC,EACAC,EACArD,EACAsD,EACArD,SAEMsD,EAAmC,QAA3B/B,EAAA0B,EAAGM,aAAa,uBAAWhC,EAAAA,EAAI0B,EAAGM,aAAa,OAG7D,GAAKD,EAAL,CAUA,IAAqC,IAAjCV,iBAAiBY,QAAQP,GAI3B,OAFAL,iBAAiBa,OAAOb,iBAAiBY,QAAQP,GAAK,QACpDA,EAAqB,MAMzBL,iBAAiBpB,KAAKyB,GAGtBA,EAAGS,aAAa,MAAO,KAEPN,EAAgBhB,cAAgBK,iBAExCa,EAAOvD,GAA4B,SAACgB,EAAO4C,WAEjD,IAAKA,EAKH,OAHAf,iBAAiBa,OAAOb,iBAAiBY,QAAQP,GAAK,GACpDA,EAAqB,UACvBjD,EAASe,GAIX,IAAM6C,EAAOX,EAAGM,aAAa,MAEzBK,GACFD,EAAID,aAAa,KAAME,GAGzB,IAAMC,EAAUZ,EAAGM,aAAa,SAE5BM,GACFF,EAAID,aAAa,QAASG,GAG5B,IAAMC,EAAUb,EAAGM,aAAa,SAE5BO,GACFH,EAAID,aAAa,QAASI,GAG5B,IAAMC,EAAWd,EAAGM,aAAa,UAE7BQ,GACFJ,EAAID,aAAa,SAAUK,GAG7B,IAAMC,EAAgBlC,MAAMmC,KAC1B,IAAIC,IAAGC,MAAAA,cAAAA,oBAAAA,MAAAA,cAAA,IACwB,QAAzB5C,EAAAoC,EAAIJ,aAAa,oBAAQhC,EAAAA,EAAI,IAAI6C,MAAM,MAAI,GAAA,CAC/C,6BACIC,EAAApB,EAAGM,aAAa,gBAAQ,IAAAc,EAAAA,EAAI,IAAID,MAAM,MAAI,KAG/CE,KAAK,KACLC,OACHZ,EAAID,aAAa,QAASM,GAE1B,IAAMQ,EAAUvB,EAAGM,aAAa,SAE5BiB,GACFb,EAAID,aAAa,QAASc,GAG5Bb,EAAID,aAAa,WAAYJ,GAG7B,IAAMmB,EAAiB,GAAGC,OAAOC,KAAK1B,EAAG2B,YAAY,SAACC,GACpD,MAAO,kBAAkBzE,KAAKyE,EAAGC,KACnC,IAUA,GARAhD,MAAMiD,UAAUC,QAAQL,KAAKF,GAAQ,SAACQ,GAEhCA,EAASH,MAAQG,EAASC,OAC5BvB,EAAID,aAAauB,EAASH,KAAMG,EAASC,MAE7C,IAGI/B,EAAuB,CAezB,IAwCIgC,EAEAC,EACAC,EA3CEC,EAAqD,CACzDC,SAAU,CAAC,aACX,gBAAiB,CAAC,iBAClBC,OAAQ,CAAC,UACTd,OAAQ,CAAC,UACTe,eAAgB,CAAC,OAAQ,UACzBC,OAAQ,CAAC,SAAU,eAAgB,aAAc,cACjDC,KAAM,CAAC,QACPC,KAAM,GACNC,QAAS,CAAC,OAAQ,UAClBC,eAAgB,CAAC,OAAQ,WAGrBC,EAAuB,SAC3Bb,EACAc,GAEA,OAAOd,EAAMe,QACX,wCACA,SAACC,EAAeC,EAAgBC,GAC9B,IAAMC,EAAQL,EAASI,GACvB,OAAOC,EAAQ,QAAA1F,OAAQ0F,EAAK,KAAMH,CACpC,GAEJ,EAEMI,EAAuB,SAC3BpB,EACAc,GAEA,IAAKd,EAAMqB,WAAW,KACpB,OAAOrB,EAGT,IACMmB,EAAQL,EADAd,EAAMsB,MAAM,IAE1B,OAAOH,EAAQ,IAAMA,EAAQnB,CAC/B,EAQMuB,EAID,GACCC,EAAmC,CAAA,EAEzCC,OAAOC,KAAKtB,GAA0BN,SAAQ,SAAC6B,GAG7C,IAAK,IAAIC,EAAI,EAAGC,GADhB5B,EAAWxB,EAAIqD,iBADLH,EACgC,SACH1E,OAAQ2E,EAAIC,EAAaD,IAAK,CACnE,IAAMG,EAAiB9B,EAAS2B,GAEhCzB,GADAD,EAAY6B,EAAeC,IACP,IAAMvE,WAE1B+D,EAAStB,GAAaC,EACtBoB,EAAoBjF,KAAK,CACvB2F,QAASF,EACTG,UAAShC,EACTiB,MAAKhB,GAET,CACF,IAEAsB,OAAOC,KAAKtB,GAA0BN,SAAQ,SAAC6B,GAI7C,IAAIQ,EACJvF,MAAMiD,UAAUC,QAAQL,KAJXW,EAAyBuB,IAIG,SAACS,GAExC,IACE,IAAIC,EAAI,EAAGC,GAFbH,EAAsB1D,EAAIqD,iBAAiB,IAAMM,EAAW,MAEHnF,OACvDoF,EAAIC,EACJD,IACA,CACA,IAAME,EAAqBJ,EAAoBE,GACzCG,EACJD,EAAmBlE,aAAa+D,GAElC,GAAII,EAAW,CACb,IAAMC,EAAY5B,EAAqB2B,EAAWhB,GAC9CiB,IAAcD,GAChBD,EAAmB/D,aAAa4D,EAAUK,EAE9C,CACF,CACF,GACF,IAGA,IADA,IAAMC,EAAWjE,EAAIqD,iBAAiB,KAC7Ba,EAAI,EAAGC,EAAcF,EAASzF,OAAQ0F,EAAIC,EAAaD,IAAK,CACnE,IAAME,EAAOH,EAASC,GAChBG,EAAOD,EAAKxE,aAAa,QAE/B,GAAIyE,EAAM,CACR,IAAMC,EAAW3B,EAAqB0B,EAAMtB,GACxCuB,IAAaD,GACfD,EAAKrE,aAAa,OAAQuE,EAE9B,CAEA,IAAMC,EAAYH,EAAKI,eAAepF,eAAgB,QAEtD,GAAImF,EAAW,CACb,IAAME,EAAgB9B,EAAqB4B,EAAWxB,GAClD0B,IAAkBF,GACpBH,EAAKM,eAAetF,eAAgB,OAAQqF,EAEhD,CACF,CAGA,IADA,IAAME,EAAgB3E,EAAIqD,iBAAiB,WAErCuB,EAAI,EAAGC,EAAmBF,EAAcnG,OAC5CoG,EAAIC,EACJD,IACA,CACA,IAAME,EAAeH,EAAcC,GAC7BG,EAAaD,EAAalF,aAAa,SAE7C,GAAImF,EAAY,CACd,IAAMC,EAAiB5C,EAAqB2C,EAAYhC,GACpDiC,IAAmBD,GACrBD,EAAa/E,aAAa,QAASiF,EAEvC,CACF,CAGA,IADA,IAAMC,EAAmBjF,EAAIqD,iBAAiB,SAExC6B,EAAI,EAAGC,EAAsBF,EAAiBzG,OAClD0G,EAAIC,EACJD,IACA,CACA,IAAME,EAAkBH,EAAiBC,GACnCG,EAAcD,EAAgBC,YAEpC,GAAIA,EAAa,CACf,IAAMC,EAAkBlD,EAAqBiD,EAAatC,GACtDuC,IAAoBD,IACtBD,EAAgBC,YAAcC,EAElC,CACF,CAEA,IACE,IAAIC,EAAI,EAAGC,EAAyB1C,EAAoBtE,OACxD+G,EAAIC,EACJD,IAEAzC,EAAoByC,GAAI/B,QAAQD,GAAKT,EAAoByC,GAAI7C,KAEjE,CAIA1C,EAAIyF,gBAAgB,WAWpB,IALA,IAEIC,EACAC,EAHEC,EAAU5F,EAAIqD,iBAAiB,UAC/BwC,EAA0B,GAIvB7H,EAAI,EAAG8H,EAAaF,EAAQpH,OAAQR,EAAI8H,EAAY9H,IAAK,CAChE,IAAM+H,EAAgBH,EAAQ5H,IAC9B2H,EAAaI,EAAcnG,aAAa,UAOvB,2BAAf+F,GACe,2BAAfA,GACe,oBAAfA,KAGAD,EAASK,EAAcC,WAAaD,EAAcV,cAKhDQ,EAAchI,KAAK6H,GAIrB1F,EAAIiG,YAAYF,GAEpB,CAIA,GACEF,EAAcrH,OAAS,IACN,WAAhBe,GACkB,SAAhBA,IAA2BL,WAAWS,IACzC,CACA,IACE,IAAIuG,GAAI,EAAGC,GAAmBN,EAAcrH,OAC5C0H,GAAIC,GACJD,KAQA,IAAIE,SAASP,EAAcK,IAA3B,CAAgCnK,QAIlCmD,WAAWS,IAAS,CACtB,CAOA,IAAM0G,GAAYrG,EAAIqD,iBAAiB,SAUvC,GATAlF,MAAMiD,UAAUC,QAAQL,KAAKqF,IAAW,SAACC,GACvCA,EAASjB,aAAe,EAC1B,IAEArF,EAAID,aAAa,QAASZ,cAC1Ba,EAAID,aAAa,cAAeX,gBAEhCM,EAAWM,IAENV,EAAGiH,WAIN,OAHAtH,iBAAiBa,OAAOb,iBAAiBY,QAAQP,GAAK,GACpDA,EAAqB,UACvBjD,EAAS,IAAIQ,MAAM,wBAKrByC,EAAGiH,WAAWC,aAAaxG,EAAKV,GAKhCL,iBAAiBa,OAAOb,iBAAiBY,QAAQP,GAAK,GACpDA,EAAqB,KAEvBjD,EAAS,KAAM2D,EACjB,GAzWA,MAFE3D,EAAS,IAAIQ,MAAM,qCA4WvB,ECtXM4J,YAAc,SAClBC,EACA9I,GAAA8C,IAAAA,OAAA,IAAA9C,EAQkB,CAAA,EAAEA,EAPlB+I,EAAAjG,EAAAkG,SAAAA,OAAQ,IAAAD,EAAG,WAAM,EAASA,EAC1BE,EAAAnG,EAAAoG,UAAAA,OAAS,IAAAD,EAAG,WAAM,EAASA,EAC3BE,EAAArG,EAAAhB,WAAAA,OAAU,IAAAqH,EAAG,WAAM,EAASA,EAC5BC,EAAAtG,EAAAjB,cAAAA,OAAa,IAAAuH,GAAOA,EACpBC,EAAAvG,EAAAnB,YAAAA,OAAW,IAAA0H,EAAG,QAAOA,EACrBC,EAAAxG,EAAAtE,2BAAAA,OAA0B,IAAA8K,GAAQA,EAClCC,EAAAzG,EAAAlB,sBAAAA,OAAqB,IAAA2H,GAAOA,EAG9B,GAAIT,GAAY,WAAYA,EAE1B,IADA,IAAIU,EAAiB,EACZpJ,EAAI,EAAGqJ,EAAIX,EAASlI,OAAQR,EAAIqJ,EAAGrJ,IAAK,CAC/C,IAAMwF,EAAUkD,EAAS1I,GACpBwF,GAGLnE,cACEmE,EACAjE,EACAC,EACAC,EACArD,EACAsD,GACA,SAACtC,EAAO4C,GACN8G,EAAU1J,EAAO4C,GAEf0G,GACA,WAAYA,GACZA,EAASlI,WAAa4I,GAEtBR,EAASQ,EAEb,GAEJ,MACSV,EACTrH,cACEqH,EACAnH,EACAC,EACAC,EACArD,EACAsD,GACA,SAACtC,EAAO4C,GACN8G,EAAU1J,EAAO4C,GACjB4G,EAAS,GACTF,EAAW,IACb,IAGFE,EAAS,EAEb"}
|
package/dist/svg-injector.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AfterAll, BeforeEach, Errback, EvalScripts } from './types';
|
|
1
|
+
import type { AfterAll, BeforeEach, Errback, EvalScripts } from './types';
|
|
2
2
|
type Elements = HTMLCollectionOf<Element> | NodeListOf<Element> | Element | null;
|
|
3
3
|
interface OptionalArgs {
|
|
4
4
|
afterAll?: AfterAll;
|
package/dist/svg-injector.esm.js
CHANGED
|
@@ -54,28 +54,36 @@ var makeAjaxRequest = function (url, httpRequestWithCredentials, callback) {
|
|
|
54
54
|
|
|
55
55
|
var requestQueue = {};
|
|
56
56
|
var queueRequest = function (url, callback) {
|
|
57
|
-
|
|
57
|
+
var _a;
|
|
58
|
+
(_a = requestQueue[url]) !== null && _a !== void 0 ? _a : requestQueue[url] = [];
|
|
58
59
|
requestQueue[url].push(callback);
|
|
59
60
|
};
|
|
60
61
|
var processRequestQueue = function (url) {
|
|
62
|
+
var callbacks = requestQueue[url];
|
|
63
|
+
if (!callbacks) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
61
66
|
var _loop_1 = function (i, len) {
|
|
62
67
|
setTimeout(function () {
|
|
63
68
|
if (Array.isArray(requestQueue[url])) {
|
|
64
69
|
var cacheValue = cache.get(url);
|
|
65
|
-
var callback =
|
|
70
|
+
var callback = callbacks[i];
|
|
71
|
+
if (!callback) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
66
74
|
if (cacheValue instanceof SVGSVGElement) {
|
|
67
75
|
callback(null, cloneSvg(cacheValue));
|
|
68
76
|
}
|
|
69
77
|
if (cacheValue instanceof Error) {
|
|
70
78
|
callback(cacheValue);
|
|
71
79
|
}
|
|
72
|
-
if (i ===
|
|
80
|
+
if (i === callbacks.length - 1) {
|
|
73
81
|
delete requestQueue[url];
|
|
74
82
|
}
|
|
75
83
|
}
|
|
76
84
|
}, 0);
|
|
77
85
|
};
|
|
78
|
-
for (var i = 0, len =
|
|
86
|
+
for (var i = 0, len = callbacks.length; i < len; i++) {
|
|
79
87
|
_loop_1(i);
|
|
80
88
|
}
|
|
81
89
|
};
|
|
@@ -126,7 +134,8 @@ var ranScripts = {};
|
|
|
126
134
|
var svgNamespace = 'http://www.w3.org/2000/svg';
|
|
127
135
|
var xlinkNamespace = 'http://www.w3.org/1999/xlink';
|
|
128
136
|
var injectElement = function (el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {
|
|
129
|
-
var
|
|
137
|
+
var _a;
|
|
138
|
+
var elUrl = (_a = el.getAttribute('data-src')) !== null && _a !== void 0 ? _a : el.getAttribute('src');
|
|
130
139
|
if (!elUrl) {
|
|
131
140
|
callback(new Error('Invalid data-src or src attribute'));
|
|
132
141
|
return;
|
|
@@ -140,6 +149,7 @@ var injectElement = function (el, evalScripts, renumerateIRIElements, cacheReque
|
|
|
140
149
|
el.setAttribute('src', '');
|
|
141
150
|
var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;
|
|
142
151
|
loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {
|
|
152
|
+
var _a, _b;
|
|
143
153
|
if (!svg) {
|
|
144
154
|
injectedElements.splice(injectedElements.indexOf(el), 1);
|
|
145
155
|
el = null;
|
|
@@ -162,7 +172,7 @@ var injectElement = function (el, evalScripts, renumerateIRIElements, cacheReque
|
|
|
162
172
|
if (elHeight) {
|
|
163
173
|
svg.setAttribute('height', elHeight);
|
|
164
174
|
}
|
|
165
|
-
var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], (svg.getAttribute('class')
|
|
175
|
+
var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], ((_a = svg.getAttribute('class')) !== null && _a !== void 0 ? _a : '').split(' '), true), ['injected-svg'], false), ((_b = el.getAttribute('class')) !== null && _b !== void 0 ? _b : '').split(' '), true))).join(' ').trim();
|
|
166
176
|
svg.setAttribute('class', mergedClasses);
|
|
167
177
|
var elStyle = el.getAttribute('style');
|
|
168
178
|
if (elStyle) {
|
|
@@ -190,46 +200,102 @@ var injectElement = function (el, evalScripts, renumerateIRIElements, cacheReque
|
|
|
190
200
|
pattern: ['fill', 'stroke'],
|
|
191
201
|
radialGradient: ['fill', 'stroke']
|
|
192
202
|
};
|
|
203
|
+
var replaceIriReferences_1 = function (value, iriIdMap) {
|
|
204
|
+
return value.replace(/url\((['"]?)\s*#([^\s'"\)]+)\s*\1\)/g, function (match, _quote, iriId) {
|
|
205
|
+
var newId = iriIdMap[iriId];
|
|
206
|
+
return newId ? "url(#".concat(newId, ")") : match;
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
var replaceHrefReference = function (value, iriIdMap) {
|
|
210
|
+
if (!value.startsWith('#')) {
|
|
211
|
+
return value;
|
|
212
|
+
}
|
|
213
|
+
var iriId = value.slice(1);
|
|
214
|
+
var newId = iriIdMap[iriId];
|
|
215
|
+
return newId ? '#' + newId : value;
|
|
216
|
+
};
|
|
193
217
|
var element_1;
|
|
194
218
|
var elements_1;
|
|
195
219
|
var properties_1;
|
|
196
220
|
var currentId_1;
|
|
197
221
|
var newId_1;
|
|
222
|
+
var renumeratedElements_1 = [];
|
|
223
|
+
var iriIdMap_1 = {};
|
|
198
224
|
Object.keys(iriElementsAndProperties_1).forEach(function (key) {
|
|
199
225
|
element_1 = key;
|
|
200
|
-
properties_1 = iriElementsAndProperties_1[key];
|
|
201
226
|
elements_1 = svg.querySelectorAll(element_1 + '[id]');
|
|
202
|
-
var
|
|
203
|
-
|
|
227
|
+
for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {
|
|
228
|
+
var currentElement = elements_1[a];
|
|
229
|
+
currentId_1 = currentElement.id;
|
|
204
230
|
newId_1 = currentId_1 + '-' + uniqueId();
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
if (attrValue && !attrValue.match(new RegExp('url\\("?#' + currentId_1 + '"?\\)'))) {
|
|
211
|
-
continue;
|
|
212
|
-
}
|
|
213
|
-
referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');
|
|
214
|
-
}
|
|
231
|
+
iriIdMap_1[currentId_1] = newId_1;
|
|
232
|
+
renumeratedElements_1.push({
|
|
233
|
+
element: currentElement,
|
|
234
|
+
currentId: currentId_1,
|
|
235
|
+
newId: newId_1
|
|
215
236
|
});
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
Object.keys(iriElementsAndProperties_1).forEach(function (key) {
|
|
240
|
+
properties_1 = iriElementsAndProperties_1[key];
|
|
241
|
+
var referencingElements;
|
|
242
|
+
Array.prototype.forEach.call(properties_1, function (property) {
|
|
243
|
+
referencingElements = svg.querySelectorAll('[' + property + ']');
|
|
244
|
+
for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {
|
|
245
|
+
var referencingElement = referencingElements[b];
|
|
246
|
+
var attrValue = referencingElement.getAttribute(property);
|
|
247
|
+
if (attrValue) {
|
|
248
|
+
var nextValue = replaceIriReferences_1(attrValue, iriIdMap_1);
|
|
249
|
+
if (nextValue !== attrValue) {
|
|
250
|
+
referencingElement.setAttribute(property, nextValue);
|
|
251
|
+
}
|
|
222
252
|
}
|
|
223
253
|
}
|
|
224
|
-
|
|
225
|
-
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
var allLinks = svg.querySelectorAll('*');
|
|
257
|
+
for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {
|
|
258
|
+
var link = allLinks[c];
|
|
259
|
+
var href = link.getAttribute('href');
|
|
260
|
+
if (href) {
|
|
261
|
+
var nextHref = replaceHrefReference(href, iriIdMap_1);
|
|
262
|
+
if (nextHref !== href) {
|
|
263
|
+
link.setAttribute('href', nextHref);
|
|
226
264
|
}
|
|
227
|
-
elements_1[a].id = newId_1;
|
|
228
|
-
};
|
|
229
|
-
for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {
|
|
230
|
-
_loop_1(a);
|
|
231
265
|
}
|
|
232
|
-
|
|
266
|
+
var xlinkHref = link.getAttributeNS(xlinkNamespace, 'href');
|
|
267
|
+
if (xlinkHref) {
|
|
268
|
+
var nextXlinkHref = replaceHrefReference(xlinkHref, iriIdMap_1);
|
|
269
|
+
if (nextXlinkHref !== xlinkHref) {
|
|
270
|
+
link.setAttributeNS(xlinkNamespace, 'href', nextXlinkHref);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
var styleElements = svg.querySelectorAll('[style]');
|
|
275
|
+
for (var d = 0, styleElementsLen = styleElements.length; d < styleElementsLen; d++) {
|
|
276
|
+
var styleElement = styleElements[d];
|
|
277
|
+
var styleValue = styleElement.getAttribute('style');
|
|
278
|
+
if (styleValue) {
|
|
279
|
+
var nextStyleValue = replaceIriReferences_1(styleValue, iriIdMap_1);
|
|
280
|
+
if (nextStyleValue !== styleValue) {
|
|
281
|
+
styleElement.setAttribute('style', nextStyleValue);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
var styleTagElements = svg.querySelectorAll('style');
|
|
286
|
+
for (var e = 0, styleTagElementsLen = styleTagElements.length; e < styleTagElementsLen; e++) {
|
|
287
|
+
var styleTagElement = styleTagElements[e];
|
|
288
|
+
var textContent = styleTagElement.textContent;
|
|
289
|
+
if (textContent) {
|
|
290
|
+
var nextTextContent = replaceIriReferences_1(textContent, iriIdMap_1);
|
|
291
|
+
if (nextTextContent !== textContent) {
|
|
292
|
+
styleTagElement.textContent = nextTextContent;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
for (var f = 0, renumeratedElementsLen = renumeratedElements_1.length; f < renumeratedElementsLen; f++) {
|
|
297
|
+
renumeratedElements_1[f].element.id = renumeratedElements_1[f].newId;
|
|
298
|
+
}
|
|
233
299
|
}
|
|
234
300
|
svg.removeAttribute('xmlns:a');
|
|
235
301
|
var scripts = svg.querySelectorAll('script');
|
|
@@ -237,13 +303,14 @@ var injectElement = function (el, evalScripts, renumerateIRIElements, cacheReque
|
|
|
237
303
|
var script;
|
|
238
304
|
var scriptType;
|
|
239
305
|
for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {
|
|
240
|
-
|
|
306
|
+
var scriptElement = scripts[i];
|
|
307
|
+
scriptType = scriptElement.getAttribute('type');
|
|
241
308
|
if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript' || scriptType === 'text/javascript') {
|
|
242
|
-
script =
|
|
309
|
+
script = scriptElement.innerText || scriptElement.textContent;
|
|
243
310
|
if (script) {
|
|
244
311
|
scriptsToEval.push(script);
|
|
245
312
|
}
|
|
246
|
-
svg.removeChild(
|
|
313
|
+
svg.removeChild(scriptElement);
|
|
247
314
|
}
|
|
248
315
|
}
|
|
249
316
|
if (scriptsToEval.length > 0 && (evalScripts === 'always' || evalScripts === 'once' && !ranScripts[elUrl])) {
|
|
@@ -297,7 +364,11 @@ var SVGInjector = function (elements, _a) {
|
|
|
297
364
|
if (elements && 'length' in elements) {
|
|
298
365
|
var elementsLoaded_1 = 0;
|
|
299
366
|
for (var i = 0, j = elements.length; i < j; i++) {
|
|
300
|
-
|
|
367
|
+
var element = elements[i];
|
|
368
|
+
if (!element) {
|
|
369
|
+
continue;
|
|
370
|
+
}
|
|
371
|
+
injectElement(element, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {
|
|
301
372
|
afterEach(error, svg);
|
|
302
373
|
if (elements && 'length' in elements && elements.length === ++elementsLoaded_1) {
|
|
303
374
|
afterAll(elementsLoaded_1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svg-injector.esm.js","sources":["../compiled/cache.js","../compiled/clone-svg.js","../compiled/is-local.js","../compiled/make-ajax-request.js","../compiled/request-queue.js","../compiled/load-svg-cached.js","../compiled/load-svg-uncached.js","../compiled/unique-id.js","../compiled/inject-element.js","../compiled/svg-injector.js"],"sourcesContent":["var cache = new Map();\nexport default cache;\n//# sourceMappingURL=cache.js.map","var cloneSvg = function (sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\nexport default cloneSvg;\n//# sourceMappingURL=clone-svg.js.map","var isLocal = function () { return window.location.protocol === 'file:'; };\nexport default isLocal;\n//# sourceMappingURL=is-local.js.map","import { parse as parseContentType } from 'content-type';\nimport isLocal from './is-local';\nvar makeAjaxRequest = function (url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n if (!contentType) {\n throw new Error('Content type not found');\n }\n var type = parseContentType(contentType).type;\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \".concat(type));\n }\n }\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal()\n ? 'Note: SVG injection ajax calls do not work locally without ' +\n 'adjusting security settings in your browser. Or consider ' +\n 'using a local webserver.'\n : 'Unable to load SVG file: ' + url);\n }\n if (httpRequest.status === 200 ||\n (isLocal() && httpRequest.status === 0)) {\n callback(null, httpRequest);\n }\n else {\n throw new Error('There was a problem injecting the SVG: ' +\n httpRequest.status +\n ' ' +\n httpRequest.statusText);\n }\n }\n }\n catch (error) {\n httpRequest.abort();\n if (error instanceof Error) {\n callback(error, httpRequest);\n }\n else {\n throw error;\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n httpRequest.send();\n};\nexport default makeAjaxRequest;\n//# sourceMappingURL=make-ajax-request.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nvar requestQueue = {};\nexport var clear = function () {\n requestQueue = {};\n};\nexport var queueRequest = function (url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n};\nexport var processRequestQueue = function (url) {\n var _loop_1 = function (i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = requestQueue[url][i];\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n if (i === requestQueue[url].length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n _loop_1(i, len);\n }\n};\n//# sourceMappingURL=request-queue.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nimport makeAjaxRequest from './make-ajax-request';\nimport { processRequestQueue, queueRequest } from './request-queue';\nvar loadSvgCached = function (url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n cache.set(url, error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n processRequestQueue(url);\n });\n};\nexport default loadSvgCached;\n//# sourceMappingURL=load-svg-cached.js.map","import makeAjaxRequest from './make-ajax-request';\nvar loadSvgUncached = function (url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n callback(error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\nexport default loadSvgUncached;\n//# sourceMappingURL=load-svg-uncached.js.map","var idCounter = 0;\nvar uniqueId = function () { return ++idCounter; };\nexport default uniqueId;\n//# sourceMappingURL=unique-id.js.map","import { __spreadArray } from \"tslib\";\nimport loadSvgCached from './load-svg-cached';\nimport loadSvgUncached from './load-svg-uncached';\nimport uniqueId from './unique-id';\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar injectElement = function (el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var elUrl = el.getAttribute('data-src') || el.getAttribute('src');\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n var elId = el.getAttribute('id');\n if (elId) {\n svg.setAttribute('id', elId);\n }\n var elTitle = el.getAttribute('title');\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n var elWidth = el.getAttribute('width');\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n var elHeight = el.getAttribute('height');\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], (svg.getAttribute('class') || '').split(' '), true), [\n 'injected-svg'\n ], false), (el.getAttribute('class') || '').split(' '), true)))\n .join(' ')\n .trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke'],\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n properties_1 = iriElementsAndProperties_1[key];\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n var _loop_1 = function (a, elementsLen) {\n currentId_1 = elements_1[a].id;\n newId_1 = currentId_1 + '-' + uniqueId();\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId_1 + '\"]');\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var attrValue = referencingElements[b].getAttribute(property);\n if (attrValue &&\n !attrValue.match(new RegExp('url\\\\(\"?#' + currentId_1 + '\"?\\\\)'))) {\n continue;\n }\n referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');\n }\n });\n var allLinks = svg.querySelectorAll('[*|href]');\n var links = [];\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href');\n if (href && href.toString() === '#' + elements_1[a].id) {\n links.push(allLinks[c]);\n }\n }\n for (var d = 0, linksLen = links.length; d < linksLen; d++) {\n links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);\n }\n elements_1[a].id = newId_1;\n };\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n _loop_1(a, elementsLen);\n }\n });\n }\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n scriptType = scripts[i].getAttribute('type');\n if (!scriptType ||\n scriptType === 'application/ecmascript' ||\n scriptType === 'application/javascript' ||\n scriptType === 'text/javascript') {\n script = scripts[i].innerText || scripts[i].textContent;\n if (script) {\n scriptsToEval.push(script);\n }\n svg.removeChild(scripts[i]);\n }\n }\n if (scriptsToEval.length > 0 &&\n (evalScripts === 'always' ||\n (evalScripts === 'once' && !ranScripts[elUrl]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n ranScripts[elUrl] = true;\n }\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\nexport default injectElement;\n//# sourceMappingURL=inject-element.js.map","import injectElement from './inject-element';\nvar SVGInjector = function (elements, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.afterAll, afterAll = _c === void 0 ? function () { return undefined; } : _c, _d = _b.afterEach, afterEach = _d === void 0 ? function () { return undefined; } : _d, _e = _b.beforeEach, beforeEach = _e === void 0 ? function () { return undefined; } : _e, _f = _b.cacheRequests, cacheRequests = _f === void 0 ? true : _f, _g = _b.evalScripts, evalScripts = _g === void 0 ? 'never' : _g, _h = _b.httpRequestWithCredentials, httpRequestWithCredentials = _h === void 0 ? false : _h, _j = _b.renumerateIRIElements, renumerateIRIElements = _j === void 0 ? true : _j;\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n for (var i = 0, j = elements.length; i < j; i++) {\n injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n if (elements &&\n 'length' in elements &&\n elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n }\n else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n }\n else {\n afterAll(0);\n }\n};\nexport default SVGInjector;\n//# sourceMappingURL=svg-injector.js.map"],"names":["cache","Map","cloneSvg","sourceSvg","cloneNode","isLocal","window","location","protocol","makeAjaxRequest","url","httpRequestWithCredentials","callback","httpRequest","XMLHttpRequest","onreadystatechange","test","readyState","contentType","getResponseHeader","Error","type","parseContentType","concat","status","responseXML","statusText","error","abort","open","withCredentials","overrideMimeType","send","requestQueue","queueRequest","push","processRequestQueue","i","len","setTimeout","Array","isArray","cacheValue","get","SVGSVGElement","length","loadSvgCached","has","undefined","set","_a","documentElement","loadSvgUncached","idCounter","uniqueId","injectedElements","ranScripts","svgNamespace","xlinkNamespace","injectElement","el","evalScripts","renumerateIRIElements","cacheRequests","beforeEach","elUrl","getAttribute","indexOf","splice","setAttribute","loadSvg","svg","elId","elTitle","elWidth","elHeight","mergedClasses","from","Set","__spreadArray","split","join","trim","elStyle","elData","filter","call","attributes","at","name","prototype","forEach","dataAttr","value","iriElementsAndProperties_1","clipPath","cursor","linearGradient","marker","mask","path","pattern","radialGradient","element_1","elements_1","properties_1","currentId_1","newId_1","Object","keys","key","querySelectorAll","a","elementsLen","id","referencingElements","property","b","referencingElementLen","attrValue","match","RegExp","allLinks","links","c","allLinksLen","href","getAttributeNS","toString","d","linksLen","setAttributeNS","removeAttribute","scripts","scriptsToEval","script","scriptType","scriptsLen","innerText","textContent","removeChild","l","scriptsToEvalLen","Function","styleTags","styleTag","parentNode","replaceChild","SVGInjector","elements","_b","_c","afterAll","_d","afterEach","_e","_f","_g","_h","_j","elementsLoaded_1","j"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"svg-injector.esm.js","sources":["../compiled/cache.js","../compiled/clone-svg.js","../compiled/is-local.js","../compiled/make-ajax-request.js","../compiled/request-queue.js","../compiled/load-svg-cached.js","../compiled/load-svg-uncached.js","../compiled/unique-id.js","../compiled/inject-element.js","../compiled/svg-injector.js"],"sourcesContent":["var cache = new Map();\nexport default cache;\n//# sourceMappingURL=cache.js.map","var cloneSvg = function (sourceSvg) {\n return sourceSvg.cloneNode(true);\n};\nexport default cloneSvg;\n//# sourceMappingURL=clone-svg.js.map","var isLocal = function () { return window.location.protocol === 'file:'; };\nexport default isLocal;\n//# sourceMappingURL=is-local.js.map","import { parse as parseContentType } from 'content-type';\nimport isLocal from './is-local';\nvar makeAjaxRequest = function (url, httpRequestWithCredentials, callback) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.onreadystatechange = function () {\n try {\n if (!/\\.svg/i.test(url) && httpRequest.readyState === 2) {\n var contentType = httpRequest.getResponseHeader('Content-Type');\n if (!contentType) {\n throw new Error('Content type not found');\n }\n var type = parseContentType(contentType).type;\n if (!(type === 'image/svg+xml' || type === 'text/plain')) {\n throw new Error(\"Invalid content type: \".concat(type));\n }\n }\n if (httpRequest.readyState === 4) {\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n throw new Error(isLocal()\n ? 'Note: SVG injection ajax calls do not work locally without ' +\n 'adjusting security settings in your browser. Or consider ' +\n 'using a local webserver.'\n : 'Unable to load SVG file: ' + url);\n }\n if (httpRequest.status === 200 ||\n (isLocal() && httpRequest.status === 0)) {\n callback(null, httpRequest);\n }\n else {\n throw new Error('There was a problem injecting the SVG: ' +\n httpRequest.status +\n ' ' +\n httpRequest.statusText);\n }\n }\n }\n catch (error) {\n httpRequest.abort();\n if (error instanceof Error) {\n callback(error, httpRequest);\n }\n else {\n throw error;\n }\n }\n };\n httpRequest.open('GET', url);\n httpRequest.withCredentials = httpRequestWithCredentials;\n if (httpRequest.overrideMimeType) {\n httpRequest.overrideMimeType('text/xml');\n }\n httpRequest.send();\n};\nexport default makeAjaxRequest;\n//# sourceMappingURL=make-ajax-request.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nvar requestQueue = {};\nexport var clear = function () {\n requestQueue = {};\n};\nexport var queueRequest = function (url, callback) {\n var _a;\n (_a = requestQueue[url]) !== null && _a !== void 0 ? _a : (requestQueue[url] = []);\n requestQueue[url].push(callback);\n};\nexport var processRequestQueue = function (url) {\n var callbacks = requestQueue[url];\n if (!callbacks) {\n return;\n }\n var _loop_1 = function (i, len) {\n setTimeout(function () {\n if (Array.isArray(requestQueue[url])) {\n var cacheValue = cache.get(url);\n var callback = callbacks[i];\n if (!callback) {\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n }\n if (cacheValue instanceof Error) {\n callback(cacheValue);\n }\n if (i === callbacks.length - 1) {\n delete requestQueue[url];\n }\n }\n }, 0);\n };\n for (var i = 0, len = callbacks.length; i < len; i++) {\n _loop_1(i, len);\n }\n};\n//# sourceMappingURL=request-queue.js.map","import cache from './cache';\nimport cloneSvg from './clone-svg';\nimport makeAjaxRequest from './make-ajax-request';\nimport { processRequestQueue, queueRequest } from './request-queue';\nvar loadSvgCached = function (url, httpRequestWithCredentials, callback) {\n if (cache.has(url)) {\n var cacheValue = cache.get(url);\n if (cacheValue === undefined) {\n queueRequest(url, callback);\n return;\n }\n if (cacheValue instanceof SVGSVGElement) {\n callback(null, cloneSvg(cacheValue));\n return;\n }\n }\n cache.set(url, undefined);\n queueRequest(url, callback);\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n cache.set(url, error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n cache.set(url, httpRequest.responseXML.documentElement);\n }\n processRequestQueue(url);\n });\n};\nexport default loadSvgCached;\n//# sourceMappingURL=load-svg-cached.js.map","import makeAjaxRequest from './make-ajax-request';\nvar loadSvgUncached = function (url, httpRequestWithCredentials, callback) {\n makeAjaxRequest(url, httpRequestWithCredentials, function (error, httpRequest) {\n var _a;\n if (error) {\n callback(error);\n }\n else if (((_a = httpRequest.responseXML) === null || _a === void 0 ? void 0 : _a.documentElement) instanceof SVGSVGElement) {\n callback(null, httpRequest.responseXML.documentElement);\n }\n });\n};\nexport default loadSvgUncached;\n//# sourceMappingURL=load-svg-uncached.js.map","var idCounter = 0;\nvar uniqueId = function () { return ++idCounter; };\nexport default uniqueId;\n//# sourceMappingURL=unique-id.js.map","import { __spreadArray } from \"tslib\";\nimport loadSvgCached from './load-svg-cached';\nimport loadSvgUncached from './load-svg-uncached';\nimport uniqueId from './unique-id';\nvar injectedElements = [];\nvar ranScripts = {};\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar injectElement = function (el, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, callback) {\n var _a;\n var elUrl = (_a = el.getAttribute('data-src')) !== null && _a !== void 0 ? _a : el.getAttribute('src');\n if (!elUrl) {\n callback(new Error('Invalid data-src or src attribute'));\n return;\n }\n if (injectedElements.indexOf(el) !== -1) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n return;\n }\n injectedElements.push(el);\n el.setAttribute('src', '');\n var loadSvg = cacheRequests ? loadSvgCached : loadSvgUncached;\n loadSvg(elUrl, httpRequestWithCredentials, function (error, svg) {\n var _a, _b;\n if (!svg) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(error);\n return;\n }\n var elId = el.getAttribute('id');\n if (elId) {\n svg.setAttribute('id', elId);\n }\n var elTitle = el.getAttribute('title');\n if (elTitle) {\n svg.setAttribute('title', elTitle);\n }\n var elWidth = el.getAttribute('width');\n if (elWidth) {\n svg.setAttribute('width', elWidth);\n }\n var elHeight = el.getAttribute('height');\n if (elHeight) {\n svg.setAttribute('height', elHeight);\n }\n var mergedClasses = Array.from(new Set(__spreadArray(__spreadArray(__spreadArray([], ((_a = svg.getAttribute('class')) !== null && _a !== void 0 ? _a : '').split(' '), true), [\n 'injected-svg'\n ], false), ((_b = el.getAttribute('class')) !== null && _b !== void 0 ? _b : '').split(' '), true)))\n .join(' ')\n .trim();\n svg.setAttribute('class', mergedClasses);\n var elStyle = el.getAttribute('style');\n if (elStyle) {\n svg.setAttribute('style', elStyle);\n }\n svg.setAttribute('data-src', elUrl);\n var elData = [].filter.call(el.attributes, function (at) {\n return /^data-\\w[\\w-]*$/.test(at.name);\n });\n Array.prototype.forEach.call(elData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n if (renumerateIRIElements) {\n var iriElementsAndProperties_1 = {\n clipPath: ['clip-path'],\n 'color-profile': ['color-profile'],\n cursor: ['cursor'],\n filter: ['filter'],\n linearGradient: ['fill', 'stroke'],\n marker: ['marker', 'marker-start', 'marker-mid', 'marker-end'],\n mask: ['mask'],\n path: [],\n pattern: ['fill', 'stroke'],\n radialGradient: ['fill', 'stroke'],\n };\n var replaceIriReferences_1 = function (value, iriIdMap) {\n return value.replace(/url\\((['\"]?)\\s*#([^\\s'\"\\)]+)\\s*\\1\\)/g, function (match, _quote, iriId) {\n var newId = iriIdMap[iriId];\n return newId ? \"url(#\".concat(newId, \")\") : match;\n });\n };\n var replaceHrefReference = function (value, iriIdMap) {\n if (!value.startsWith('#')) {\n return value;\n }\n var iriId = value.slice(1);\n var newId = iriIdMap[iriId];\n return newId ? '#' + newId : value;\n };\n var element_1;\n var elements_1;\n var properties_1;\n var currentId_1;\n var newId_1;\n var renumeratedElements_1 = [];\n var iriIdMap_1 = {};\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n element_1 = key;\n elements_1 = svg.querySelectorAll(element_1 + '[id]');\n for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {\n var currentElement = elements_1[a];\n currentId_1 = currentElement.id;\n newId_1 = currentId_1 + '-' + uniqueId();\n iriIdMap_1[currentId_1] = newId_1;\n renumeratedElements_1.push({\n element: currentElement,\n currentId: currentId_1,\n newId: newId_1,\n });\n }\n });\n Object.keys(iriElementsAndProperties_1).forEach(function (key) {\n properties_1 = iriElementsAndProperties_1[key];\n var referencingElements;\n Array.prototype.forEach.call(properties_1, function (property) {\n referencingElements = svg.querySelectorAll('[' + property + ']');\n for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {\n var referencingElement = referencingElements[b];\n var attrValue = referencingElement.getAttribute(property);\n if (attrValue) {\n var nextValue = replaceIriReferences_1(attrValue, iriIdMap_1);\n if (nextValue !== attrValue) {\n referencingElement.setAttribute(property, nextValue);\n }\n }\n }\n });\n });\n var allLinks = svg.querySelectorAll('*');\n for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {\n var link = allLinks[c];\n var href = link.getAttribute('href');\n if (href) {\n var nextHref = replaceHrefReference(href, iriIdMap_1);\n if (nextHref !== href) {\n link.setAttribute('href', nextHref);\n }\n }\n var xlinkHref = link.getAttributeNS(xlinkNamespace, 'href');\n if (xlinkHref) {\n var nextXlinkHref = replaceHrefReference(xlinkHref, iriIdMap_1);\n if (nextXlinkHref !== xlinkHref) {\n link.setAttributeNS(xlinkNamespace, 'href', nextXlinkHref);\n }\n }\n }\n var styleElements = svg.querySelectorAll('[style]');\n for (var d = 0, styleElementsLen = styleElements.length; d < styleElementsLen; d++) {\n var styleElement = styleElements[d];\n var styleValue = styleElement.getAttribute('style');\n if (styleValue) {\n var nextStyleValue = replaceIriReferences_1(styleValue, iriIdMap_1);\n if (nextStyleValue !== styleValue) {\n styleElement.setAttribute('style', nextStyleValue);\n }\n }\n }\n var styleTagElements = svg.querySelectorAll('style');\n for (var e = 0, styleTagElementsLen = styleTagElements.length; e < styleTagElementsLen; e++) {\n var styleTagElement = styleTagElements[e];\n var textContent = styleTagElement.textContent;\n if (textContent) {\n var nextTextContent = replaceIriReferences_1(textContent, iriIdMap_1);\n if (nextTextContent !== textContent) {\n styleTagElement.textContent = nextTextContent;\n }\n }\n }\n for (var f = 0, renumeratedElementsLen = renumeratedElements_1.length; f < renumeratedElementsLen; f++) {\n renumeratedElements_1[f].element.id = renumeratedElements_1[f].newId;\n }\n }\n svg.removeAttribute('xmlns:a');\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script;\n var scriptType;\n for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {\n var scriptElement = scripts[i];\n scriptType = scriptElement.getAttribute('type');\n if (!scriptType ||\n scriptType === 'application/ecmascript' ||\n scriptType === 'application/javascript' ||\n scriptType === 'text/javascript') {\n script = scriptElement.innerText || scriptElement.textContent;\n if (script) {\n scriptsToEval.push(script);\n }\n svg.removeChild(scriptElement);\n }\n }\n if (scriptsToEval.length > 0 &&\n (evalScripts === 'always' ||\n (evalScripts === 'once' && !ranScripts[elUrl]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n new Function(scriptsToEval[l])(window);\n }\n ranScripts[elUrl] = true;\n }\n var styleTags = svg.querySelectorAll('style');\n Array.prototype.forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n svg.setAttribute('xmlns', svgNamespace);\n svg.setAttribute('xmlns:xlink', xlinkNamespace);\n beforeEach(svg);\n if (!el.parentNode) {\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(new Error('Parent node is null'));\n return;\n }\n el.parentNode.replaceChild(svg, el);\n injectedElements.splice(injectedElements.indexOf(el), 1);\n el = null;\n callback(null, svg);\n });\n};\nexport default injectElement;\n//# sourceMappingURL=inject-element.js.map","import injectElement from './inject-element';\nvar SVGInjector = function (elements, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.afterAll, afterAll = _c === void 0 ? function () { return undefined; } : _c, _d = _b.afterEach, afterEach = _d === void 0 ? function () { return undefined; } : _d, _e = _b.beforeEach, beforeEach = _e === void 0 ? function () { return undefined; } : _e, _f = _b.cacheRequests, cacheRequests = _f === void 0 ? true : _f, _g = _b.evalScripts, evalScripts = _g === void 0 ? 'never' : _g, _h = _b.httpRequestWithCredentials, httpRequestWithCredentials = _h === void 0 ? false : _h, _j = _b.renumerateIRIElements, renumerateIRIElements = _j === void 0 ? true : _j;\n if (elements && 'length' in elements) {\n var elementsLoaded_1 = 0;\n for (var i = 0, j = elements.length; i < j; i++) {\n var element = elements[i];\n if (!element) {\n continue;\n }\n injectElement(element, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n if (elements &&\n 'length' in elements &&\n elements.length === ++elementsLoaded_1) {\n afterAll(elementsLoaded_1);\n }\n });\n }\n }\n else if (elements) {\n injectElement(elements, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {\n afterEach(error, svg);\n afterAll(1);\n elements = null;\n });\n }\n else {\n afterAll(0);\n }\n};\nexport default SVGInjector;\n//# sourceMappingURL=svg-injector.js.map"],"names":["cache","Map","cloneSvg","sourceSvg","cloneNode","isLocal","window","location","protocol","makeAjaxRequest","url","httpRequestWithCredentials","callback","httpRequest","XMLHttpRequest","onreadystatechange","test","readyState","contentType","getResponseHeader","Error","type","parseContentType","concat","status","responseXML","statusText","error","abort","open","withCredentials","overrideMimeType","send","requestQueue","queueRequest","_a","push","processRequestQueue","callbacks","i","len","setTimeout","Array","isArray","cacheValue","get","SVGSVGElement","length","loadSvgCached","has","undefined","set","documentElement","loadSvgUncached","idCounter","uniqueId","injectedElements","ranScripts","svgNamespace","xlinkNamespace","injectElement","el","evalScripts","renumerateIRIElements","cacheRequests","beforeEach","elUrl","getAttribute","indexOf","splice","setAttribute","loadSvg","svg","elId","elTitle","elWidth","elHeight","mergedClasses","from","Set","__spreadArray","split","_b","join","trim","elStyle","elData","filter","call","attributes","at","name","prototype","forEach","dataAttr","value","iriElementsAndProperties_1","clipPath","cursor","linearGradient","marker","mask","path","pattern","radialGradient","replaceIriReferences_1","iriIdMap","replace","match","_quote","iriId","newId","replaceHrefReference","startsWith","slice","element_1","elements_1","properties_1","currentId_1","newId_1","renumeratedElements_1","iriIdMap_1","Object","keys","key","querySelectorAll","a","elementsLen","currentElement","id","element","currentId","referencingElements","property","b","referencingElementLen","referencingElement","attrValue","nextValue","allLinks","c","allLinksLen","link","href","nextHref","xlinkHref","getAttributeNS","nextXlinkHref","setAttributeNS","styleElements","d","styleElementsLen","styleElement","styleValue","nextStyleValue","styleTagElements","e","styleTagElementsLen","styleTagElement","textContent","nextTextContent","f","renumeratedElementsLen","removeAttribute","scripts","scriptsToEval","script","scriptType","scriptsLen","scriptElement","innerText","removeChild","l","scriptsToEvalLen","Function","styleTags","styleTag","parentNode","replaceChild","SVGInjector","elements","_c","afterAll","_d","afterEach","_e","_f","_g","_h","_j","elementsLoaded_1","j"],"mappings":"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"}
|