{"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]}