{"version":3,"file":"Svg-DxXDX8he.js","sources":["../../Client/node_modules/svg-injector/svg-injector.js","../../Client/legacy/Components/Svg.tsx"],"sourcesContent":["/**\n * SVGInjector v1.1.3 - Fast, caching, dynamic inline SVG DOM injection library\n * https://github.com/iconic/SVGInjector\n *\n * Copyright (c) 2014-2015 Waybury <hello@waybury.com>\n * @license MIT\n */\n\n(function (window, document) {\n\n 'use strict';\n\n // Environment\n var isLocal = window.location.protocol === 'file:';\n var hasSvgSupport = document.implementation.hasFeature('http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1');\n\n function uniqueClasses(list) {\n list = list.split(' ');\n\n var hash = {};\n var i = list.length;\n var out = [];\n\n while (i--) {\n if (!hash.hasOwnProperty(list[i])) {\n hash[list[i]] = 1;\n out.unshift(list[i]);\n }\n }\n\n return out.join(' ');\n }\n\n /**\n * cache (or polyfill for <= IE8) Array.forEach()\n * source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach\n */\n var forEach = Array.prototype.forEach || function (fn, scope) {\n if (this === void 0 || this === null || typeof fn !== 'function') {\n throw new TypeError();\n }\n\n /* jshint bitwise: false */\n var i, len = this.length >>> 0;\n /* jshint bitwise: true */\n\n for (i = 0; i < len; ++i) {\n if (i in this) {\n fn.call(scope, this[i], i, this);\n }\n }\n };\n\n // SVG Cache\n var svgCache = {};\n\n var injectCount = 0;\n var injectedElements = [];\n\n // Request Queue\n var requestQueue = [];\n\n // Script running status\n var ranScripts = {};\n\n var cloneSvg = function (sourceSvg) {\n return sourceSvg.cloneNode(true);\n };\n\n var queueRequest = function (url, callback) {\n requestQueue[url] = requestQueue[url] || [];\n requestQueue[url].push(callback);\n };\n\n var processRequestQueue = function (url) {\n for (var i = 0, len = requestQueue[url].length; i < len; i++) {\n // Make these calls async so we avoid blocking the page/renderer\n /* jshint loopfunc: true */\n (function (index) {\n setTimeout(function () {\n requestQueue[url][index](cloneSvg(svgCache[url]));\n }, 0);\n })(i);\n /* jshint loopfunc: false */\n }\n };\n\n var loadSvg = function (url, callback) {\n if (svgCache[url] !== undefined) {\n if (svgCache[url] instanceof SVGSVGElement) {\n // We already have it in cache, so use it\n callback(cloneSvg(svgCache[url]));\n }\n else {\n // We don't have it in cache yet, but we are loading it, so queue this request\n queueRequest(url, callback);\n }\n }\n else {\n\n if (!window.XMLHttpRequest) {\n callback('Browser does not support XMLHttpRequest');\n return false;\n }\n\n // Seed the cache to indicate we are loading this URL already\n svgCache[url] = {};\n queueRequest(url, callback);\n\n var httpRequest = new XMLHttpRequest();\n\n httpRequest.onreadystatechange = function () {\n // readyState 4 = complete\n if (httpRequest.readyState === 4) {\n\n // Handle status\n if (httpRequest.status === 404 || httpRequest.responseXML === null) {\n callback('Unable to load SVG file: ' + url);\n\n if (isLocal) callback('Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver.');\n\n callback();\n return false;\n }\n\n // 200 success from server, or 0 when using file:// protocol locally\n if (httpRequest.status === 200 || (isLocal && httpRequest.status === 0)) {\n\n /* globals Document */\n if (httpRequest.responseXML instanceof Document) {\n // Cache it\n svgCache[url] = httpRequest.responseXML.documentElement;\n }\n /* globals -Document */\n\n // IE9 doesn't create a responseXML Document object from loaded SVG,\n // and throws a \"DOM Exception: HIERARCHY_REQUEST_ERR (3)\" error when injected.\n //\n // So, we'll just create our own manually via the DOMParser using\n // the the raw XML responseText.\n //\n // :NOTE: IE8 and older doesn't have DOMParser, but they can't do SVG either, so...\n else if (DOMParser && (DOMParser instanceof Function)) {\n var xmlDoc;\n try {\n var parser = new DOMParser();\n xmlDoc = parser.parseFromString(httpRequest.responseText, 'text/xml');\n }\n catch (e) {\n xmlDoc = undefined;\n }\n\n if (!xmlDoc || xmlDoc.getElementsByTagName('parsererror').length) {\n callback('Unable to parse SVG file: ' + url);\n return false;\n }\n else {\n // Cache it\n svgCache[url] = xmlDoc.documentElement;\n }\n }\n\n // We've loaded a new asset, so process any requests waiting for it\n processRequestQueue(url);\n }\n else {\n callback('There was a problem injecting the SVG: ' + httpRequest.status + ' ' + httpRequest.statusText);\n return false;\n }\n }\n };\n\n httpRequest.open('GET', url);\n\n // Treat and parse the response as XML, even if the\n // server sends us a different mimetype\n if (httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/xml');\n\n httpRequest.send();\n }\n };\n\n // Inject a single element\n var injectElement = function (el, evalScripts, pngFallback, callback) {\n\n // Grab the src or data-src attribute\n var imgUrl = el.getAttribute('data-src') || el.getAttribute('src');\n\n // We can only inject SVG\n if (!(/\\.svg/i).test(imgUrl)) {\n callback('Attempted to inject a file with a non-svg extension: ' + imgUrl);\n return;\n }\n\n // If we don't have SVG support try to fall back to a png,\n // either defined per-element via data-fallback or data-png,\n // or globally via the pngFallback directory setting\n if (!hasSvgSupport) {\n var perElementFallback = el.getAttribute('data-fallback') || el.getAttribute('data-png');\n\n // Per-element specific PNG fallback defined, so use that\n if (perElementFallback) {\n el.setAttribute('src', perElementFallback);\n callback(null);\n }\n // Global PNG fallback directoriy defined, use the same-named PNG\n else if (pngFallback) {\n el.setAttribute('src', pngFallback + '/' + imgUrl.split('/').pop().replace('.svg', '.png'));\n callback(null);\n }\n // um...\n else {\n callback('This browser does not support SVG and no PNG fallback was defined.');\n }\n\n return;\n }\n\n // Make sure we aren't already in the process of injecting this element to\n // avoid a race condition if multiple injections for the same element are run.\n // :NOTE: Using indexOf() only _after_ we check for SVG support and bail,\n // so no need for IE8 indexOf() polyfill\n if (injectedElements.indexOf(el) !== -1) {\n return;\n }\n\n // Remember the request to inject this element, in case other injection\n // calls are also trying to replace this element before we finish\n injectedElements.push(el);\n\n // Try to avoid loading the orginal image src if possible.\n el.setAttribute('src', '');\n\n // Load it up\n loadSvg(imgUrl, function (svg) {\n\n if (typeof svg === 'undefined' || typeof svg === 'string') {\n callback(svg);\n return false;\n }\n\n var imgId = el.getAttribute('id');\n if (imgId) {\n svg.setAttribute('id', imgId);\n }\n\n var imgTitle = el.getAttribute('title');\n if (imgTitle) {\n svg.setAttribute('title', imgTitle);\n }\n\n // Concat the SVG classes + 'injected-svg' + the img classes\n var classMerge = [].concat(svg.getAttribute('class') || [], 'injected-svg', el.getAttribute('class') || []).join(' ');\n svg.setAttribute('class', uniqueClasses(classMerge));\n\n var imgStyle = el.getAttribute('style');\n if (imgStyle) {\n svg.setAttribute('style', imgStyle);\n }\n\n // Copy all the data elements to the svg\n var imgData = [].filter.call(el.attributes, function (at) {\n return (/^data-\\w[\\w\\-]*$/).test(at.name);\n });\n forEach.call(imgData, function (dataAttr) {\n if (dataAttr.name && dataAttr.value) {\n svg.setAttribute(dataAttr.name, dataAttr.value);\n }\n });\n\n // Make sure any internally referenced clipPath ids and their\n // clip-path references are unique.\n //\n // This addresses the issue of having multiple instances of the\n // same SVG on a page and only the first clipPath id is referenced.\n //\n // Browsers often shortcut the SVG Spec and don't use clipPaths\n // contained in parent elements that are hidden, so if you hide the first\n // SVG instance on the page, then all other instances lose their clipping.\n // Reference: https://bugzilla.mozilla.org/show_bug.cgi?id=376027\n\n // Handle all defs elements that have iri capable attributes as defined by w3c: http://www.w3.org/TR/SVG/linking.html#processingIRI\n // Mapping IRI addressable elements to the properties that can reference them:\n var iriElementsAndProperties = {\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 'pattern': ['fill', 'stroke'],\n 'radialGradient': ['fill', 'stroke']\n };\n\n var element, elementDefs, properties, currentId, newId;\n Object.keys(iriElementsAndProperties).forEach(function (key) {\n element = key;\n properties = iriElementsAndProperties[key];\n\n elementDefs = svg.querySelectorAll('defs ' + element + '[id]');\n for (var i = 0, elementsLen = elementDefs.length; i < elementsLen; i++) {\n currentId = elementDefs[i].id;\n newId = currentId + '-' + injectCount;\n\n // All of the properties that can reference this element type\n var referencingElements;\n forEach.call(properties, function (property) {\n // :NOTE: using a substring match attr selector here to deal with IE \"adding extra quotes in url() attrs\"\n referencingElements = svg.querySelectorAll('[' + property + '*=\"' + currentId + '\"]');\n for (var j = 0, referencingElementLen = referencingElements.length; j < referencingElementLen; j++) {\n referencingElements[j].setAttribute(property, 'url(#' + newId + ')');\n }\n });\n\n elementDefs[i].id = newId;\n }\n });\n\n // Remove any unwanted/invalid namespaces that might have been added by SVG editing tools\n svg.removeAttribute('xmlns:a');\n\n // Post page load injected SVGs don't automatically have their script\n // elements run, so we'll need to make that happen, if requested\n\n // Find then prune the scripts\n var scripts = svg.querySelectorAll('script');\n var scriptsToEval = [];\n var script, scriptType;\n\n for (var k = 0, scriptsLen = scripts.length; k < scriptsLen; k++) {\n scriptType = scripts[k].getAttribute('type');\n\n // Only process javascript types.\n // SVG defaults to 'application/ecmascript' for unset types\n if (!scriptType || scriptType === 'application/ecmascript' || scriptType === 'application/javascript') {\n\n // innerText for IE, textContent for other browsers\n script = scripts[k].innerText || scripts[k].textContent;\n\n // Stash\n scriptsToEval.push(script);\n\n // Tidy up and remove the script element since we don't need it anymore\n svg.removeChild(scripts[k]);\n }\n }\n\n // Run/Eval the scripts if needed\n if (scriptsToEval.length > 0 && (evalScripts === 'always' || (evalScripts === 'once' && !ranScripts[imgUrl]))) {\n for (var l = 0, scriptsToEvalLen = scriptsToEval.length; l < scriptsToEvalLen; l++) {\n\n // :NOTE: Yup, this is a form of eval, but it is being used to eval code\n // the caller has explictely asked to be loaded, and the code is in a caller\n // defined SVG file... not raw user input.\n //\n // Also, the code is evaluated in a closure and not in the global scope.\n // If you need to put something in global scope, use 'window'\n new Function(scriptsToEval[l])(window); // jshint ignore:line\n }\n\n // Remember we already ran scripts for this svg\n ranScripts[imgUrl] = true;\n }\n\n // :WORKAROUND:\n // IE doesn't evaluate <style> tags in SVGs that are dynamically added to the page.\n // This trick will trigger IE to read and use any existing SVG <style> tags.\n //\n // Reference: https://github.com/iconic/SVGInjector/issues/23\n var styleTags = svg.querySelectorAll('style');\n forEach.call(styleTags, function (styleTag) {\n styleTag.textContent += '';\n });\n\n // Replace the image with the svg\n el.parentNode.replaceChild(svg, el);\n\n // Now that we no longer need it, drop references\n // to the original element so it can be GC'd\n delete injectedElements[injectedElements.indexOf(el)];\n el = null;\n\n // Increment the injected count\n injectCount++;\n\n callback(svg);\n });\n };\n\n /**\n * SVGInjector\n *\n * Replace the given elements with their full inline SVG DOM elements.\n *\n * :NOTE: We are using get/setAttribute with SVG because the SVG DOM spec differs from HTML DOM and\n * can return other unexpected object types when trying to directly access svg properties.\n * ex: \"className\" returns a SVGAnimatedString with the class value found in the \"baseVal\" property,\n * instead of simple string like with HTML Elements.\n *\n * @param {mixes} Array of or single DOM element\n * @param {object} options\n * @param {function} callback\n * @return {object} Instance of SVGInjector\n */\n var SVGInjector = function (elements, options, done) {\n\n // Options & defaults\n options = options || {};\n\n // Should we run the scripts blocks found in the SVG\n // 'always' - Run them every time\n // 'once' - Only run scripts once for each SVG\n // [false|'never'] - Ignore scripts\n var evalScripts = options.evalScripts || 'always';\n\n // Location of fallback pngs, if desired\n var pngFallback = options.pngFallback || false;\n\n // Callback to run during each SVG injection, returning the SVG injected\n var eachCallback = options.each;\n\n // Do the injection...\n if (elements.length !== undefined) {\n var elementsLoaded = 0;\n forEach.call(elements, function (element) {\n injectElement(element, evalScripts, pngFallback, function (svg) {\n if (eachCallback && typeof eachCallback === 'function') eachCallback(svg);\n if (done && elements.length === ++elementsLoaded) done(elementsLoaded);\n });\n });\n }\n else {\n if (elements) {\n injectElement(elements, evalScripts, pngFallback, function (svg) {\n if (eachCallback && typeof eachCallback === 'function') eachCallback(svg);\n if (done) done(1);\n elements = null;\n });\n }\n else {\n if (done) done(0);\n }\n }\n };\n\n /* global module, exports: true, define */\n // Node.js or CommonJS\n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = exports = SVGInjector;\n }\n // AMD support\n else if (typeof define === 'function' && define.amd) {\n define(function () {\n return SVGInjector;\n });\n }\n // Otherwise, attach to window as global\n else if (typeof window === 'object') {\n window.SVGInjector = SVGInjector;\n }\n /* global -module, -exports, -define */\n\n}(window, document));\n","import { useEffect, useRef } from 'react';\r\nimport SVGInjector from 'svg-injector';\r\n\r\ntype Props = {\r\n path: string;\r\n alt: string;\r\n className?: string;\r\n unstyled?: boolean;\r\n onClick?: () => void;\r\n id?: string;\r\n};\r\n\r\nexport function Svg(props: Props) {\r\n const img = useRef<HTMLImageElement>(null);\r\n\r\n useEffect(() => {\r\n if (img.current === null) return;\r\n\r\n // The injector below will attempt to replace the contents of the element's parent node, so we need to exit if there isn't a parent yet. This could\r\n // occur when clicking the browser's Back button on certain pages (e.g. the URQ page).\r\n if (img.current && img.current.parentNode === null) return;\r\n\r\n SVGInjector(img.current);\r\n }, []);\r\n\r\n return (\r\n <div\r\n id={props.id ? props.id : ''}\r\n onClick={() => props.onClick && props.onClick()}\r\n className={`svg-cp ${props.className || ''} ${props.unstyled === true ? '' : 'styled-cp'}`}\r\n >\r\n <img ref={img} src={props.path} alt={props.alt} />\r\n </div>\r\n );\r\n}\r\n"],"names":["window","document","isLocal","hasSvgSupport","uniqueClasses","list","hash","i","out","forEach","fn","scope","len","svgCache","injectCount","injectedElements","requestQueue","ranScripts","cloneSvg","sourceSvg","queueRequest","url","callback","processRequestQueue","index","loadSvg","httpRequest","xmlDoc","parser","injectElement","el","evalScripts","pngFallback","imgUrl","perElementFallback","svg","imgId","imgTitle","classMerge","imgStyle","imgData","at","dataAttr","iriElementsAndProperties","element","elementDefs","properties","currentId","newId","key","elementsLen","referencingElements","property","j","referencingElementLen","scripts","scriptsToEval","script","scriptType","k","scriptsLen","l","scriptsToEvalLen","styleTags","styleTag","SVGInjector","elements","options","done","eachCallback","elementsLoaded","module","Svg","props","img","useRef","useEffect","jsx"],"mappings":"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","x_google_ignoreList":[0]}