@tanem/svg-injector 11.0.0 → 11.0.1

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.
@@ -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) {
@@ -200,31 +210,34 @@ var injectElement = function (el, evalScripts, renumerateIRIElements, cacheReque
200
210
  properties_1 = iriElementsAndProperties_1[key];
201
211
  elements_1 = svg.querySelectorAll(element_1 + '[id]');
202
212
  var _loop_1 = function (a, elementsLen) {
203
- currentId_1 = elements_1[a].id;
213
+ var currentElement = elements_1[a];
214
+ currentId_1 = currentElement.id;
204
215
  newId_1 = currentId_1 + '-' + uniqueId();
205
216
  var referencingElements;
206
217
  Array.prototype.forEach.call(properties_1, function (property) {
207
218
  referencingElements = svg.querySelectorAll('[' + property + '*="' + currentId_1 + '"]');
208
219
  for (var b = 0, referencingElementLen = referencingElements.length; b < referencingElementLen; b++) {
209
- var attrValue = referencingElements[b].getAttribute(property);
220
+ var referencingElement = referencingElements[b];
221
+ var attrValue = referencingElement.getAttribute(property);
210
222
  if (attrValue && !attrValue.match(new RegExp('url\\("?#' + currentId_1 + '"?\\)'))) {
211
223
  continue;
212
224
  }
213
- referencingElements[b].setAttribute(property, 'url(#' + newId_1 + ')');
225
+ referencingElement.setAttribute(property, 'url(#' + newId_1 + ')');
214
226
  }
215
227
  });
216
228
  var allLinks = svg.querySelectorAll('[*|href]');
217
229
  var links = [];
218
230
  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]);
231
+ var link = allLinks[c];
232
+ var href = link.getAttributeNS(xlinkNamespace, 'href');
233
+ if ((href === null || href === void 0 ? void 0 : href.toString()) === '#' + currentElement.id) {
234
+ links.push(link);
222
235
  }
223
236
  }
224
237
  for (var d = 0, linksLen = links.length; d < linksLen; d++) {
225
238
  links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);
226
239
  }
227
- elements_1[a].id = newId_1;
240
+ currentElement.id = newId_1;
228
241
  };
229
242
  for (var a = 0, elementsLen = elements_1.length; a < elementsLen; a++) {
230
243
  _loop_1(a);
@@ -237,13 +250,14 @@ var injectElement = function (el, evalScripts, renumerateIRIElements, cacheReque
237
250
  var script;
238
251
  var scriptType;
239
252
  for (var i = 0, scriptsLen = scripts.length; i < scriptsLen; i++) {
240
- scriptType = scripts[i].getAttribute('type');
253
+ var scriptElement = scripts[i];
254
+ scriptType = scriptElement.getAttribute('type');
241
255
  if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript' || scriptType === 'text/javascript') {
242
- script = scripts[i].innerText || scripts[i].textContent;
256
+ script = scriptElement.innerText || scriptElement.textContent;
243
257
  if (script) {
244
258
  scriptsToEval.push(script);
245
259
  }
246
- svg.removeChild(scripts[i]);
260
+ svg.removeChild(scriptElement);
247
261
  }
248
262
  }
249
263
  if (scriptsToEval.length > 0 && (evalScripts === 'always' || evalScripts === 'once' && !ranScripts[elUrl])) {
@@ -297,7 +311,11 @@ var SVGInjector = function (elements, _a) {
297
311
  if (elements && 'length' in elements) {
298
312
  var elementsLoaded_1 = 0;
299
313
  for (var i = 0, j = elements.length; i < j; i++) {
300
- injectElement(elements[i], evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {
314
+ var element = elements[i];
315
+ if (!element) {
316
+ continue;
317
+ }
318
+ injectElement(element, evalScripts, renumerateIRIElements, cacheRequests, httpRequestWithCredentials, beforeEach, function (error, svg) {
301
319
  afterEach(error, svg);
302
320
  if (elements && 'length' in elements && elements.length === ++elementsLoaded_1) {
303
321
  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 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 var currentElement = elements_1[a];\n currentId_1 = currentElement.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 referencingElement = referencingElements[b];\n var attrValue = referencingElement.getAttribute(property);\n if (attrValue &&\n !attrValue.match(new RegExp('url\\\\(\"?#' + currentId_1 + '\"?\\\\)'))) {\n continue;\n }\n referencingElement.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 link = allLinks[c];\n var href = link.getAttributeNS(xlinkNamespace, 'href');\n if ((href === null || href === void 0 ? void 0 : href.toString()) === '#' + currentElement.id) {\n links.push(link);\n }\n }\n for (var d = 0, linksLen = links.length; d < linksLen; d++) {\n links[d].setAttributeNS(xlinkNamespace, 'href', '#' + newId_1);\n }\n currentElement.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 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","element_1","elements_1","properties_1","currentId_1","newId_1","Object","keys","key","querySelectorAll","a","elementsLen","currentElement","id","referencingElements","property","b","referencingElementLen","referencingElement","attrValue","match","RegExp","allLinks","links","c","allLinksLen","link","href","getAttributeNS","toString","d","linksLen","setAttributeNS","removeAttribute","scripts","scriptsToEval","script","scriptType","scriptsLen","scriptElement","innerText","textContent","removeChild","l","scriptsToEvalLen","Function","styleTags","styleTag","parentNode","replaceChild","SVGInjector","elements","_c","afterAll","_d","afterEach","_e","_f","_g","_h","_j","elementsLoaded_1","j","element"],"mappings":"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"}