@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.
@@ -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":"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"}
@@ -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;
@@ -54,28 +54,36 @@ var makeAjaxRequest = function (url, httpRequestWithCredentials, callback) {
54
54
 
55
55
  var requestQueue = {};
56
56
  var queueRequest = function (url, callback) {
57
- requestQueue[url] = requestQueue[url] || [];
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 = requestQueue[url][i];
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 === requestQueue[url].length - 1) {
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 = requestQueue[url].length; i < len; i++) {
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 elUrl = el.getAttribute('data-src') || el.getAttribute('src');
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') || '').split(' '), true), ['injected-svg'], false), (el.getAttribute('class') || '').split(' '), true))).join(' ').trim();
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 _loop_1 = function (a, elementsLen) {
203
- currentId_1 = elements_1[a].id;
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
- var referencingElements;
206
- Array.prototype.forEach.call(properties_1, function (property) {
207
- referencingElements = svg.querySelectorAll('[' + property + '*="' + currentId_1 + '"]');
208
- for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {
209
- var attrValue = referencingElements[b].getAttribute(property);
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
- var allLinks = svg.querySelectorAll('[*|href]');
217
- var links = [];
218
- for (var c = 0, allLinksLen = allLinks.length; c < allLinksLen; c++) {
219
- var href = allLinks[c].getAttributeNS(xlinkNamespace, 'href');
220
- if (href && href.toString() === '#' + elements_1[a].id) {
221
- links.push(allLinks[c]);
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
- for (var d = 0, linksLen = links.length; d < linksLen; d++) {
225
- links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);
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
- scriptType = scripts[i].getAttribute('type');
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 = scripts[i].innerText || scripts[i].textContent;
309
+ script = scriptElement.innerText || scriptElement.textContent;
243
310
  if (script) {
244
311
  scriptsToEval.push(script);
245
312
  }
246
- svg.removeChild(scripts[i]);
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
- injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {
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":";;;AAAA,IAAMA,KAAK,GAAG,IAAIC,GAAG,EAA6C;;ACAlE,IAAMC,QAAQ,GAAG,UAACC,SAAwB,EAAA;AACxC,EAAA,OAAAA,SAAS,CAACC,SAAS,CAAC,IAAI,CAAkB;AAA1C,CAA0C;;ACD5C,IAAMC,OAAO,GAAG,YAAA;AAAM,EAAA,OAAAC,MAAM,CAACC,QAAQ,CAACC,QAAQ,KAAK,OAAO;AAApC,CAAoC;;ACG1D,IAAMC,eAAe,GAAG,UACtBC,GAAW,EACXC,0BAAmC,EACnCC,QAAoE,EAAA;AAEpE,EAAA,IAAMC,WAAW,GAAG,IAAIC,cAAc,EAAE;EAExCD,WAAW,CAACE,kBAAkB,GAAG,YAAA;IAC/B,IAAI;AACF,MAAA,IAAI,CAAC,QAAQ,CAACC,IAAI,CAACN,GAAG,CAAC,IAAIG,WAAW,CAACI,UAAU,KAAK,CAAC,EAAE;AACvD,QAAA,IAAMC,WAAW,GAAGL,WAAW,CAACM,iBAAiB,CAAC,cAAc,CAAC;QACjE,IAAI,CAACD,WAAW,EAAE;AAChB,UAAA,MAAM,IAAIE,KAAK,CAAC,wBAAwB,CAAC;AAC3C,QAAA;AAEQ,QAAA,IAAAC,IAAI,GAAKC,KAAgB,CAACJ,WAAW,CAAC,CAAAG,IAAlC;QACZ,IAAI,EAAEA,IAAI,KAAK,eAAe,IAAIA,IAAI,KAAK,YAAY,CAAC,EAAE;UACxD,MAAM,IAAID,KAAK,CAAC,wBAAA,CAAAG,MAAA,CAAyBF,IAAI,CAAE,CAAC;AAClD,QAAA;AACF,MAAA;AAEA,MAAA,IAAIR,WAAW,CAACI,UAAU,KAAK,CAAC,EAAE;QAChC,IAAIJ,WAAW,CAACW,MAAM,KAAK,GAAG,IAAIX,WAAW,CAACY,WAAW,KAAK,IAAI,EAAE;AAClE,UAAA,MAAM,IAAIL,KAAK,CACbf,OAAO,EAAE,GACL,6DAA6D,GAC3D,2DAA2D,GAC3D,0BAA0B,GAC5B,2BAA2B,GAAGK,GAAG,CACtC;AACH,QAAA;AAEA,QAAA,IACEG,WAAW,CAACW,MAAM,KAAK,GAAG,IACzBnB,OAAO,EAAE,IAAIQ,WAAW,CAACW,MAAM,KAAK,CAAE,EACvC;AACAZ,UAAAA,QAAQ,CAAC,IAAI,EAAEC,WAAW,CAAC;AAC7B,QAAA,CAAC,MAAM;AACL,UAAA,MAAM,IAAIO,KAAK,CACb,yCAAyC,GACvCP,WAAW,CAACW,MAAM,GAClB,GAAG,GACHX,WAAW,CAACa,UAAU,CACzB;AACH,QAAA;AACF,MAAA;IACF,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdd,WAAW,CAACe,KAAK,EAAE;MACnB,IAAID,KAAK,YAAYP,KAAK,EAAE;AAC1BR,QAAAA,QAAQ,CAACe,KAAK,EAAEd,WAAW,CAAC;AAC9B,MAAA,CAAC,MAAM;AACL,QAAA,MAAMc,KAAK;AACb,MAAA;AACF,IAAA;EACF,CAAC;AAEDd,EAAAA,WAAW,CAACgB,IAAI,CAAC,KAAK,EAAEnB,GAAG,CAAC;EAE5BG,WAAW,CAACiB,eAAe,GAAGnB,0BAA0B;EAKxD,IAAIE,WAAW,CAACkB,gBAAgB,EAAE;AAChClB,IAAAA,WAAW,CAACkB,gBAAgB,CAAC,UAAU,CAAC;AAC1C,EAAA;EAEAlB,WAAW,CAACmB,IAAI,EAAE;AACpB,CAAC;;ACnED,IAAIC,YAAY,GAA8B,EAAE;AAMzC,IAAMC,YAAY,GAAG,UAACxB,GAAW,EAAEE,QAAiB,EAAA;;AACzD,EAAA,CAAAuB,EAAA,GAAAF,YAAY,CAACvB,GAAG,CAAA,MAAA,IAAA,IAAAyB,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAhBF,YAAY,CAACvB,GAAG,IAAM,EAAE;AACxBuB,EAAAA,YAAY,CAACvB,GAAG,CAAE,CAAC0B,IAAI,CAACxB,QAAQ,CAAC;AACnC,CAAC;AAEM,IAAMyB,mBAAmB,GAAG,UAAC3B,GAAW,EAAA;AAC7C,EAAA,IAAM4B,SAAS,GAAGL,YAAY,CAACvB,GAAG,CAAC;EACnC,IAAI,CAAC4B,SAAS,EAAE;AACd,IAAA;AACF,EAAA;AAESC,EAAAA,IAAAA,OAAAA,GAAAA,UAAAA,CAAC,EAAMC,GAAG,EAAA;AAEjBC,IAAAA,UAAU,CAAC,YAAA;MAET,IAAIC,KAAK,CAACC,OAAO,CAACV,YAAY,CAACvB,GAAG,CAAC,CAAC,EAAE;AACpC,QAAA,IAAMkC,UAAU,GAAG5C,KAAK,CAAC6C,GAAG,CAACnC,GAAG,CAAC;AACjC,QAAA,IAAME,QAAQ,GAAG0B,SAAS,CAACC,CAAC,CAAC;QAG7B,IAAI,CAAC3B,QAAQ,EAAE;AACb,UAAA;AACF,QAAA;QAGA,IAAIgC,UAAU,YAAYE,aAAa,EAAE;AACvClC,UAAAA,QAAQ,CAAC,IAAI,EAAEV,QAAQ,CAAC0C,UAAU,CAAC,CAAC;AACtC,QAAA;QAGA,IAAIA,UAAU,YAAYxB,KAAK,EAAE;UAC/BR,QAAQ,CAACgC,UAAU,CAAC;AACtB,QAAA;AAGA,QAAA,IAAIL,CAAC,KAAKD,SAAS,CAACS,MAAM,GAAG,CAAC,EAAE;UAC9B,OAAOd,YAAY,CAACvB,GAAG,CAAC;AAC1B,QAAA;AACF,MAAA;IACF,CAAC,EAAE,CAAC,CAAC;;AA5BP,EAAA,KAAK,IAAI6B,CAAC,GAAG,CAAC,EAAEC,GAAG,GAAGF,SAAS,CAACS,MAAM,EAAER,CAAC,GAAGC,GAAG,EAAED,CAAC,EAAE,EAAA;AAA3CA,IAAAA,OAAAA,CAAAA,CAAU,CAAA;;AA8BrB,CAAC;;AC7CD,IAAMS,aAAa,GAAG,UACpBtC,GAAW,EACXC,0BAAmC,EACnCC,QAAiB,EAAA;AAEjB,EAAA,IAAIZ,KAAK,CAACiD,GAAG,CAACvC,GAAG,CAAC,EAAE;AAClB,IAAA,IAAMkC,UAAU,GAAG5C,KAAK,CAAC6C,GAAG,CAACnC,GAAG,CAAC;IAEjC,IAAIkC,UAAU,KAAKM,SAAS,EAAE;AAC5BhB,MAAAA,YAAY,CAACxB,GAAG,EAAEE,QAAQ,CAAC;AAC3B,MAAA;AACF,IAAA;IAGA,IAAIgC,UAAU,YAAYE,aAAa,EAAE;AACvClC,MAAAA,QAAQ,CAAC,IAAI,EAAEV,QAAQ,CAAC0C,UAAU,CAAC,CAAC;AACpC,MAAA;AACF,IAAA;AAGF,EAAA;AAGA5C,EAAAA,KAAK,CAACmD,GAAG,CAACzC,GAAG,EAAEwC,SAAS,CAAC;AACzBhB,EAAAA,YAAY,CAACxB,GAAG,EAAEE,QAAQ,CAAC;EAE3BH,eAAe,CAACC,GAAG,EAAEC,0BAA0B,EAAE,UAACgB,KAAK,EAAEd,WAAW,EAAA;;AAElE,IAAA,IAAIc,KAAK,EAAE;AACT3B,MAAAA,KAAK,CAACmD,GAAG,CAACzC,GAAG,EAAEiB,KAAK,CAAC;AACvB,IAAA,CAAC,MAAM,IACL,CAAA,CAAAQ,EAAA,GAAAtB,WAAW,CAACY,WAAW,MAAA,IAAA,IAAAU,EAAA,uBAAAA,EAAA,CAAEiB,eAAe,aAAYN,aAAa,EACjE;MACA9C,KAAK,CAACmD,GAAG,CAACzC,GAAG,EAAEG,WAAW,CAACY,WAAW,CAAC2B,eAAe,CAAC;AACzD,IAAA;IACAf,mBAAmB,CAAC3B,GAAG,CAAC;AAC1B,EAAA,CAAC,CAAC;AACJ,CAAC;;ACxCD,IAAM2C,eAAe,GAAG,UACtB3C,GAAW,EACXC,0BAAmC,EACnCC,QAAiB,EAAA;EAEjBH,eAAe,CAACC,GAAG,EAAEC,0BAA0B,EAAE,UAACgB,KAAK,EAAEd,WAAW,EAAA;;AAElE,IAAA,IAAIc,KAAK,EAAE;MACTf,QAAQ,CAACe,KAAK,CAAC;AACjB,IAAA,CAAC,MAAM,IACL,CAAA,CAAAQ,EAAA,GAAAtB,WAAW,CAACY,WAAW,MAAA,IAAA,IAAAU,EAAA,uBAAAA,EAAA,CAAEiB,eAAe,aAAYN,aAAa,EACjE;MACAlC,QAAQ,CAAC,IAAI,EAAEC,WAAW,CAACY,WAAW,CAAC2B,eAAe,CAAC;AACzD,IAAA;AACF,EAAA,CAAC,CAAC;AACJ,CAAC;;AClBD,IAAIE,SAAS,GAAG,CAAC;AACjB,IAAMC,QAAQ,GAAG,YAAA;AAAM,EAAA,OAAA,EAAED,SAAS;AAAX,CAAW;;ACMlC,IAAME,gBAAgB,GAAkB,EAAE;AAC1C,IAAMC,UAAU,GAA4B,EAAE;AAC9C,IAAMC,YAAY,GAAG,4BAA4B;AACjD,IAAMC,cAAc,GAAG,8BAA8B;AAErD,IAAMC,aAAa,GAAG,UACpBC,EAA4B,EAC5BC,WAAwB,EACxBC,qBAA8B,EAC9BC,aAAsB,EACtBrD,0BAAmC,EACnCsD,UAAsB,EACtBrD,QAAiB,EAAA;;EAEjB,IAAMsD,KAAK,GAAG,CAAA/B,EAAA,GAAA0B,EAAE,CAACM,YAAY,CAAC,UAAU,CAAC,MAAA,IAAA,IAAAhC,EAAA,cAAAA,EAAA,GAAI0B,EAAE,CAACM,YAAY,CAAC,KAAK,CAAC;EAGnE,IAAI,CAACD,KAAK,EAAE;AACVtD,IAAAA,QAAQ,CAAC,IAAIQ,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACxD,IAAA;AACF,EAAA;EAOA,IAAIoC,gBAAgB,CAACY,OAAO,CAACP,EAAE,CAAC,KAAK,EAAE,EAAE;IAEvCL,gBAAgB,CAACa,MAAM,CAACb,gBAAgB,CAACY,OAAO,CAACP,EAAE,CAAC,EAAE,CAAC,CAAC;AACtDA,IAAAA,EAAkB,GAAG,IAAI;AAC3B,IAAA;AACF,EAAA;AAIAL,EAAAA,gBAAgB,CAACpB,IAAI,CAACyB,EAAE,CAAC;AAGzBA,EAAAA,EAAE,CAACS,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;AAE1B,EAAA,IAAMC,OAAO,GAAGP,aAAa,GAAGhB,aAAa,GAAGK,eAAe;EAE/DkB,OAAO,CAACL,KAAK,EAAEvD,0BAA0B,EAAE,UAACgB,KAAK,EAAE6C,GAAG,EAAA;;IAEpD,IAAI,CAACA,GAAG,EAAE;MAERhB,gBAAgB,CAACa,MAAM,CAACb,gBAAgB,CAACY,OAAO,CAACP,EAAE,CAAC,EAAE,CAAC,CAAC;AACtDA,MAAAA,EAAkB,GAAG,IAAI;MAC3BjD,QAAQ,CAACe,KAAK,CAAC;AACf,MAAA;AACF,IAAA;AAEA,IAAA,IAAM8C,IAAI,GAAGZ,EAAE,CAACM,YAAY,CAAC,IAAI,CAAC;AAElC,IAAA,IAAIM,IAAI,EAAE;AACRD,MAAAA,GAAG,CAACF,YAAY,CAAC,IAAI,EAAEG,IAAI,CAAC;AAC9B,IAAA;AAEA,IAAA,IAAMC,OAAO,GAAGb,EAAE,CAACM,YAAY,CAAC,OAAO,CAAC;AAExC,IAAA,IAAIO,OAAO,EAAE;AACXF,MAAAA,GAAG,CAACF,YAAY,CAAC,OAAO,EAAEI,OAAO,CAAC;AACpC,IAAA;AAEA,IAAA,IAAMC,OAAO,GAAGd,EAAE,CAACM,YAAY,CAAC,OAAO,CAAC;AAExC,IAAA,IAAIQ,OAAO,EAAE;AACXH,MAAAA,GAAG,CAACF,YAAY,CAAC,OAAO,EAAEK,OAAO,CAAC;AACpC,IAAA;AAEA,IAAA,IAAMC,QAAQ,GAAGf,EAAE,CAACM,YAAY,CAAC,QAAQ,CAAC;AAE1C,IAAA,IAAIS,QAAQ,EAAE;AACZJ,MAAAA,GAAG,CAACF,YAAY,CAAC,QAAQ,EAAEM,QAAQ,CAAC;AACtC,IAAA;AAEA,IAAA,IAAMC,aAAa,GAAGnC,KAAK,CAACoC,IAAI,CAC9B,IAAIC,GAAG,CAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA,EAAA,EACF,CAAC,CAAA7C,EAAA,GAAAqC,GAAG,CAACL,YAAY,CAAC,OAAO,CAAC,MAAA,IAAA,IAAAhC,EAAA,cAAAA,EAAA,GAAI,EAAE,EAAE8C,KAAK,CAAC,GAAG,CAAC,EAAA,IAAA,CAAA,EAAA,CAC/C,cAAc,WACX,CAAC,CAAAC,EAAA,GAAArB,EAAE,CAACM,YAAY,CAAC,OAAO,CAAC,cAAAe,EAAA,KAAA,MAAA,GAAAA,EAAA,GAAI,EAAE,EAAED,KAAK,CAAC,GAAG,CAAC,EAAA,IAAA,CAAA,CAC9C,CACH,CACEE,IAAI,CAAC,GAAG,CAAC,CACTC,IAAI,EAAE;AACTZ,IAAAA,GAAG,CAACF,YAAY,CAAC,OAAO,EAAEO,aAAa,CAAC;AAExC,IAAA,IAAMQ,OAAO,GAAGxB,EAAE,CAACM,YAAY,CAAC,OAAO,CAAC;AAExC,IAAA,IAAIkB,OAAO,EAAE;AACXb,MAAAA,GAAG,CAACF,YAAY,CAAC,OAAO,EAAEe,OAAO,CAAC;AACpC,IAAA;AAEAb,IAAAA,GAAG,CAACF,YAAY,CAAC,UAAU,EAAEJ,KAAK,CAAC;AAGnC,IAAA,IAAMoB,MAAM,GAAW,EAAE,CAACC,MAAM,CAACC,IAAI,CAAC3B,EAAE,CAAC4B,UAAU,EAAE,UAACC,EAAQ,EAAA;AAC5D,MAAA,OAAO,iBAAiB,CAAC1E,IAAI,CAAC0E,EAAE,CAACC,IAAI,CAAC;AACxC,IAAA,CAAC,CAAC;IAEFjD,KAAK,CAACkD,SAAS,CAACC,OAAO,CAACL,IAAI,CAACF,MAAM,EAAE,UAACQ,QAAc,EAAA;AAElD,MAAA,IAAIA,QAAQ,CAACH,IAAI,IAAIG,QAAQ,CAACC,KAAK,EAAE;QACnCvB,GAAG,CAACF,YAAY,CAACwB,QAAQ,CAACH,IAAI,EAAEG,QAAQ,CAACC,KAAK,CAAC;AACjD,MAAA;AACF,IAAA,CAAC,CAAC;AAGF,IAAA,IAAIhC,qBAAqB,EAAE;AAezB,MAAA,IAAMiC,0BAAwB,GAA6B;QACzDC,QAAQ,EAAE,CAAC,WAAW,CAAC;QACvB,eAAe,EAAE,CAAC,eAAe,CAAC;QAClCC,MAAM,EAAE,CAAC,QAAQ,CAAC;QAClBX,MAAM,EAAE,CAAC,QAAQ,CAAC;AAClBY,QAAAA,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;QAClCC,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,CAAC;QAC9DC,IAAI,EAAE,CAAC,MAAM,CAAC;AACdC,QAAAA,IAAI,EAAE,EAAE;AACRC,QAAAA,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;AAC3BC,QAAAA,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ;AAClC,OAAA;AAED,MAAA,IAAMC,sBAAoB,GAAG,UAC3BV,KAAa,EACbW,QAAgC,EAAA;QAEhC,OAAOX,KAAK,CAACY,OAAO,CAClB,sCAAsC,EACtC,UAACC,KAAa,EAAEC,MAAc,EAAEC,KAAa,EAAA;AAC3C,UAAA,IAAMC,KAAK,GAAGL,QAAQ,CAACI,KAAK,CAAC;UAC7B,OAAOC,KAAK,GAAG,OAAA,CAAAxF,MAAA,CAAQwF,KAAK,EAAA,GAAA,CAAG,GAAGH,KAAK;AACzC,QAAA,CAAC,CACF;MACH,CAAC;AAED,MAAA,IAAMI,oBAAoB,GAAG,UAC3BjB,KAAa,EACbW,QAAgC,EAAA;AAEhC,QAAA,IAAI,CAACX,KAAK,CAACkB,UAAU,CAAC,GAAG,CAAC,EAAE;AAC1B,UAAA,OAAOlB,KAAK;AACd,QAAA;AAEA,QAAA,IAAMe,KAAK,GAAGf,KAAK,CAACmB,KAAK,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAMH,KAAK,GAAGL,QAAQ,CAACI,KAAK,CAAC;AAC7B,QAAA,OAAOC,KAAK,GAAG,GAAG,GAAGA,KAAK,GAAGhB,KAAK;MACpC,CAAC;AAED,MAAA,IAAIoB,SAAe;AACnB,MAAA,IAAIC,UAA6B;AACjC,MAAA,IAAIC,YAAoB;AACxB,MAAA,IAAIC,WAAiB;AACrB,MAAA,IAAIC,OAAa;MAEjB,IAAMC,qBAAmB,GAIpB,EAAE;MACP,IAAMC,UAAQ,GAA2B,EAAE;MAE3CC,MAAM,CAACC,IAAI,CAAC3B,0BAAwB,CAAC,CAACH,OAAO,CAAC,UAAC+B,GAAG,EAAA;AAChDT,QAAAA,SAAO,GAAGS,GAAG;QACbR,UAAQ,GAAG5C,GAAG,CAACqD,gBAAgB,CAACV,SAAO,GAAG,MAAM,CAAC;AACjD,QAAA,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEC,WAAW,GAAGX,UAAQ,CAACrE,MAAM,EAAE+E,CAAC,GAAGC,WAAW,EAAED,CAAC,EAAE,EAAE;AACnE,UAAA,IAAME,cAAc,GAAGZ,UAAQ,CAACU,CAAC,CAAE;UACnCR,WAAS,GAAGU,cAAc,CAACC,EAAE;AAC7BV,UAAAA,OAAK,GAAGD,WAAS,GAAG,GAAG,GAAG/D,QAAQ,EAAE;AAEpCkE,UAAAA,UAAQ,CAACH,WAAS,CAAC,GAAGC,OAAK;UAC3BC,qBAAmB,CAACpF,IAAI,CAAC;AACvB8F,YAAAA,OAAO,EAAEF,cAAc;AACvBG,YAAAA,SAAS,EAAAb,WAAA;AACTP,YAAAA,KAAK,EAAAQ;WACN,CAAC;AACJ,QAAA;AACF,MAAA,CAAC,CAAC;MAEFG,MAAM,CAACC,IAAI,CAAC3B,0BAAwB,CAAC,CAACH,OAAO,CAAC,UAAC+B,GAAG,EAAA;AAChDP,QAAAA,YAAU,GAAGrB,0BAAwB,CAAC4B,GAAG,CAAE;AAG3C,QAAA,IAAIQ,mBAAwC;QAC5C1F,KAAK,CAACkD,SAAS,CAACC,OAAO,CAACL,IAAI,CAAC6B,YAAU,EAAE,UAACgB,QAAgB,EAAA;UACxDD,mBAAmB,GAAG5D,GAAG,CAACqD,gBAAgB,CAAC,GAAG,GAAGQ,QAAQ,GAAG,GAAG,CAAC;AAChE,UAAA,KACE,IAAIC,CAAC,GAAG,CAAC,EAAEC,qBAAqB,GAAGH,mBAAmB,CAACrF,MAAM,EAC7DuF,CAAC,GAAGC,qBAAqB,EACzBD,CAAC,EAAE,EACH;AACA,YAAA,IAAME,kBAAkB,GAAGJ,mBAAmB,CAACE,CAAC,CAAE;AAClD,YAAA,IAAMG,SAAS,GACbD,kBAAkB,CAACrE,YAAY,CAACkE,QAAQ,CAAC;AAE3C,YAAA,IAAII,SAAS,EAAE;AACb,cAAA,IAAMC,SAAS,GAAGjC,sBAAoB,CAACgC,SAAS,EAAEhB,UAAQ,CAAC;cAC3D,IAAIiB,SAAS,KAAKD,SAAS,EAAE;AAC3BD,gBAAAA,kBAAkB,CAAClE,YAAY,CAAC+D,QAAQ,EAAEK,SAAS,CAAC;AACtD,cAAA;AACF,YAAA;AACF,UAAA;AACF,QAAA,CAAC,CAAC;AACJ,MAAA,CAAC,CAAC;AAEF,MAAA,IAAMC,QAAQ,GAAGnE,GAAG,CAACqD,gBAAgB,CAAC,GAAG,CAAC;AAC1C,MAAA,KAAK,IAAIe,CAAC,GAAG,CAAC,EAAEC,WAAW,GAAGF,QAAQ,CAAC5F,MAAM,EAAE6F,CAAC,GAAGC,WAAW,EAAED,CAAC,EAAE,EAAE;AACnE,QAAA,IAAME,IAAI,GAAGH,QAAQ,CAACC,CAAC,CAAE;AACzB,QAAA,IAAMG,IAAI,GAAGD,IAAI,CAAC3E,YAAY,CAAC,MAAM,CAAC;AAEtC,QAAA,IAAI4E,IAAI,EAAE;AACR,UAAA,IAAMC,QAAQ,GAAGhC,oBAAoB,CAAC+B,IAAI,EAAEtB,UAAQ,CAAC;UACrD,IAAIuB,QAAQ,KAAKD,IAAI,EAAE;AACrBD,YAAAA,IAAI,CAACxE,YAAY,CAAC,MAAM,EAAE0E,QAAQ,CAAC;AACrC,UAAA;AACF,QAAA;QAEA,IAAMC,SAAS,GAAGH,IAAI,CAACI,cAAc,CAACvF,cAAc,EAAE,MAAM,CAAC;AAE7D,QAAA,IAAIsF,SAAS,EAAE;AACb,UAAA,IAAME,aAAa,GAAGnC,oBAAoB,CAACiC,SAAS,EAAExB,UAAQ,CAAC;UAC/D,IAAI0B,aAAa,KAAKF,SAAS,EAAE;YAC/BH,IAAI,CAACM,cAAc,CAACzF,cAAc,EAAE,MAAM,EAAEwF,aAAa,CAAC;AAC5D,UAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA,IAAME,aAAa,GAAG7E,GAAG,CAACqD,gBAAgB,CAAC,SAAS,CAAC;AACrD,MAAA,KACE,IAAIyB,CAAC,GAAG,CAAC,EAAEC,gBAAgB,GAAGF,aAAa,CAACtG,MAAM,EAClDuG,CAAC,GAAGC,gBAAgB,EACpBD,CAAC,EAAE,EACH;AACA,QAAA,IAAME,YAAY,GAAGH,aAAa,CAACC,CAAC,CAAE;AACtC,QAAA,IAAMG,UAAU,GAAGD,YAAY,CAACrF,YAAY,CAAC,OAAO,CAAC;AAErD,QAAA,IAAIsF,UAAU,EAAE;AACd,UAAA,IAAMC,cAAc,GAAGjD,sBAAoB,CAACgD,UAAU,EAAEhC,UAAQ,CAAC;UACjE,IAAIiC,cAAc,KAAKD,UAAU,EAAE;AACjCD,YAAAA,YAAY,CAAClF,YAAY,CAAC,OAAO,EAAEoF,cAAc,CAAC;AACpD,UAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA,IAAMC,gBAAgB,GAAGnF,GAAG,CAACqD,gBAAgB,CAAC,OAAO,CAAC;AACtD,MAAA,KACE,IAAI+B,CAAC,GAAG,CAAC,EAAEC,mBAAmB,GAAGF,gBAAgB,CAAC5G,MAAM,EACxD6G,CAAC,GAAGC,mBAAmB,EACvBD,CAAC,EAAE,EACH;AACA,QAAA,IAAME,eAAe,GAAGH,gBAAgB,CAACC,CAAC,CAAE;AAC5C,QAAA,IAAMG,WAAW,GAAGD,eAAe,CAACC,WAAW;AAE/C,QAAA,IAAIA,WAAW,EAAE;AACf,UAAA,IAAMC,eAAe,GAAGvD,sBAAoB,CAACsD,WAAW,EAAEtC,UAAQ,CAAC;UACnE,IAAIuC,eAAe,KAAKD,WAAW,EAAE;YACnCD,eAAe,CAACC,WAAW,GAAGC,eAAe;AAC/C,UAAA;AACF,QAAA;AACF,MAAA;AAEA,MAAA,KACE,IAAIC,CAAC,GAAG,CAAC,EAAEC,sBAAsB,GAAG1C,qBAAmB,CAACzE,MAAM,EAC9DkH,CAAC,GAAGC,sBAAsB,EAC1BD,CAAC,EAAE,EACH;AACAzC,QAAAA,qBAAmB,CAACyC,CAAC,CAAE,CAAC/B,OAAO,CAACD,EAAE,GAAGT,qBAAmB,CAACyC,CAAC,CAAE,CAAClD,KAAK;AACpE,MAAA;AACF,IAAA;AAIAvC,IAAAA,GAAG,CAAC2F,eAAe,CAAC,SAAS,CAAC;AAM9B,IAAA,IAAMC,OAAO,GAAG5F,GAAG,CAACqD,gBAAgB,CAAC,QAAQ,CAAC;IAC9C,IAAMwC,aAAa,GAAa,EAAE;AAClC,IAAA,IAAIC,MAAqB;AACzB,IAAA,IAAIC,UAAyB;AAE7B,IAAA,KAAK,IAAIhI,CAAC,GAAG,CAAC,EAAEiI,UAAU,GAAGJ,OAAO,CAACrH,MAAM,EAAER,CAAC,GAAGiI,UAAU,EAAEjI,CAAC,EAAE,EAAE;AAChE,MAAA,IAAMkI,aAAa,GAAGL,OAAO,CAAC7H,CAAC,CAAE;AACjCgI,MAAAA,UAAU,GAAGE,aAAa,CAACtG,YAAY,CAAC,MAAM,CAAC;AAK/C,MAAA,IACE,CAACoG,UAAU,IACXA,UAAU,KAAK,wBAAwB,IACvCA,UAAU,KAAK,wBAAwB,IACvCA,UAAU,KAAK,iBAAiB,EAChC;AAEAD,QAAAA,MAAM,GAAGG,aAAa,CAACC,SAAS,IAAID,aAAa,CAACV,WAAW;AAI7D,QAAA,IAAIO,MAAM,EAAE;AACVD,UAAAA,aAAa,CAACjI,IAAI,CAACkI,MAAM,CAAC;AAC5B,QAAA;AAGA9F,QAAAA,GAAG,CAACmG,WAAW,CAACF,aAAa,CAAC;AAChC,MAAA;AACF,IAAA;IAIA,IACEJ,aAAa,CAACtH,MAAM,GAAG,CAAC,KACvBe,WAAW,KAAK,QAAQ,IACtBA,WAAW,KAAK,MAAM,IAAI,CAACL,UAAU,CAACS,KAAK,CAAE,CAAC,EACjD;AACA,MAAA,KACE,IAAI0G,CAAC,GAAG,CAAC,EAAEC,gBAAgB,GAAGR,aAAa,CAACtH,MAAM,EAClD6H,CAAC,GAAGC,gBAAgB,EACpBD,CAAC,EAAE,EACH;QAOA,IAAIE,QAAQ,CAACT,aAAa,CAACO,CAAC,CAAE,CAAC,CAACtK,MAAM,CAAC;AACzC,MAAA;AAGAmD,MAAAA,UAAU,CAACS,KAAK,CAAC,GAAG,IAAI;AAC1B,IAAA;AAOA,IAAA,IAAM6G,SAAS,GAAGvG,GAAG,CAACqD,gBAAgB,CAAC,OAAO,CAAC;IAC/CnF,KAAK,CAACkD,SAAS,CAACC,OAAO,CAACL,IAAI,CAACuF,SAAS,EAAE,UAACC,QAA0B,EAAA;MACjEA,QAAQ,CAACjB,WAAW,IAAI,EAAE;AAC5B,IAAA,CAAC,CAAC;AAEFvF,IAAAA,GAAG,CAACF,YAAY,CAAC,OAAO,EAAEZ,YAAY,CAAC;AACvCc,IAAAA,GAAG,CAACF,YAAY,CAAC,aAAa,EAAEX,cAAc,CAAC;IAE/CM,UAAU,CAACO,GAAG,CAAC;AAEf,IAAA,IAAI,CAACX,EAAE,CAACoH,UAAU,EAAE;MAClBzH,gBAAgB,CAACa,MAAM,CAACb,gBAAgB,CAACY,OAAO,CAACP,EAAE,CAAC,EAAE,CAAC,CAAC;AACtDA,MAAAA,EAAkB,GAAG,IAAI;AAC3BjD,MAAAA,QAAQ,CAAC,IAAIQ,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAC1C,MAAA;AACF,IAAA;IAGAyC,EAAE,CAACoH,UAAU,CAACC,YAAY,CAAC1G,GAAG,EAAEX,EAAE,CAAC;IAKnCL,gBAAgB,CAACa,MAAM,CAACb,gBAAgB,CAACY,OAAO,CAACP,EAAE,CAAC,EAAE,CAAC,CAAC;AACtDA,IAAAA,EAAkB,GAAG,IAAI;AAE3BjD,IAAAA,QAAQ,CAAC,IAAI,EAAE4D,GAAG,CAAC;AACrB,EAAA,CAAC,CAAC;AACJ,CAAC;;ACtXD,IAAM2G,WAAW,GAAG,UAClBC,QAAkB,EAClBjJ,EAQoB,EAAA;AARpB+C,EAAAA,IAAAA,EAAA,GAAA/C,EAAA,KAAA,MAAA,GAQkB,EAAE,GAAAA,EAAA;IAPlBkJ,EAAA,GAAAnG,EAAA,CAAAoG,QAA0B;IAA1BA,QAAQ,GAAAD,EAAA,KAAA,MAAA,GAAG,YAAA;AAAM,MAAA,OAAAnI,SAAS;AAAT,IAAA,CAAS,GAAAmI,EAAA;IAC1BE,EAAA,GAAArG,EAAA,CAAAsG,SAA2B;IAA3BA,SAAS,GAAAD,EAAA,KAAA,MAAA,GAAG,YAAA;AAAM,MAAA,OAAArI,SAAS;AAAT,IAAA,CAAS,GAAAqI,EAAA;IAC3BE,EAAA,GAAAvG,EAAA,CAAAjB,UAA4B;IAA5BA,UAAU,GAAAwH,EAAA,KAAA,MAAA,GAAG,YAAA;AAAM,MAAA,OAAAvI,SAAS;AAAT,IAAA,CAAS,GAAAuI,EAAA;IAC5BC,EAAA,GAAAxG,EAAA,CAAAlB,aAAoB;AAApBA,IAAAA,aAAa,GAAA0H,EAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,EAAA;IACpBC,EAAA,GAAAzG,EAAA,CAAApB,WAAqB;AAArBA,IAAAA,WAAW,GAAA6H,EAAA,KAAA,MAAA,GAAG,OAAO,GAAAA,EAAA;IACrBC,EAAA,GAAA1G,EAAA,CAAAvE,0BAAkC;AAAlCA,IAAAA,0BAA0B,GAAAiL,EAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,EAAA;IAClCC,EAAA,GAAA3G,EAAA,CAAAnB,qBAA4B;AAA5BA,IAAAA,qBAAqB,GAAA8H,EAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,EAAA;AAG9B,EAAA,IAAIT,QAAQ,IAAI,QAAQ,IAAIA,QAAQ,EAAE;IACpC,IAAIU,gBAAc,GAAG,CAAC;AACtB,IAAA,KAAK,IAAIvJ,CAAC,GAAG,CAAC,EAAEwJ,CAAC,GAAGX,QAAQ,CAACrI,MAAM,EAAER,CAAC,GAAGwJ,CAAC,EAAExJ,CAAC,EAAE,EAAE;AAC/C,MAAA,IAAM2F,OAAO,GAAGkD,QAAQ,CAAC7I,CAAC,CAAC;MAC3B,IAAI,CAAC2F,OAAO,EAAE;AACZ,QAAA;AACF,MAAA;AACAtE,MAAAA,aAAa,CACXsE,OAAO,EACPpE,WAAW,EACXC,qBAAqB,EACrBC,aAAa,EACbrD,0BAA0B,EAC1BsD,UAAU,EACV,UAACtC,KAAK,EAAE6C,GAAG,EAAA;AACTgH,QAAAA,SAAS,CAAC7J,KAAK,EAAE6C,GAAG,CAAC;AACrB,QAAA,IACE4G,QAAQ,IACR,QAAQ,IAAIA,QAAQ,IACpBA,QAAQ,CAACrI,MAAM,KAAK,EAAE+I,gBAAc,EACpC;UACAR,QAAQ,CAACQ,gBAAc,CAAC;AAC1B,QAAA;AACF,MAAA,CAAC,CACF;AACH,IAAA;EACF,CAAC,MAAM,IAAIV,QAAQ,EAAE;AACnBxH,IAAAA,aAAa,CACXwH,QAAQ,EACRtH,WAAW,EACXC,qBAAqB,EACrBC,aAAa,EACbrD,0BAA0B,EAC1BsD,UAAU,EACV,UAACtC,KAAK,EAAE6C,GAAG,EAAA;AACTgH,MAAAA,SAAS,CAAC7J,KAAK,EAAE6C,GAAG,CAAC;MACrB8G,QAAQ,CAAC,CAAC,CAAC;AACXF,MAAAA,QAAQ,GAAG,IAAI;AACjB,IAAA,CAAC,CACF;AACH,EAAA,CAAC,MAAM;IACLE,QAAQ,CAAC,CAAC,CAAC;AACb,EAAA;AACF;;;;"}