{"version":3,"sources":["/home/runner/work/vite-awesome-svg-loader/vite-awesome-svg-loader/packages/integration-utils/dist/index.mjs","../../../node_modules/debounce/index.js","../../../node_modules/imurmurhash/imurmurhash.js","../src/index.ts"],"names":["M","Object","create","g","defineProperty","T","getOwnPropertyDescriptor","B","getOwnPropertyNames","N","getPrototypeOf","U","prototype","hasOwnProperty","b","r","f","exports","D","t","e","n","call","get","enumerable","S","__esModule","value","require_debounce","__commonJSMin","module","debounce","func","wait","immediate","timeout","args","context","timestamp","result","later","last","Date","now","setTimeout","apply","debounced","arguments","callNow","clear","clearTimeout","flush","require_imurmurhash","cache","MurmurHash3","key","seed","m","reset","length","hash","h1","k1","i","top","len","rem","charCodeAt","import_debounce","A","import_imurmurhash","v","SVG_ID","SYMBOL_ID_PREFIX","USAGES_COUNT_ATTR","onSrcUpdate","prevSrc","src","window","svgEl","document","getElementById","createElementNS","id","setAttribute","body","appendChild","x","reduceSymbolUsages","existingSymbol","getSymbolUsagesCount","attrs","getSvgAttrs","svg","DOMParser","parseFromString","firstElementChild","querySelector","console","error","symbol","attributes","attr","name","children","onUnmount","symbolOrId","newCount","symbolsToRemove","push","scheduleSymbolsRemoval","G","parentElement","removeChild","pop","nanReplacement","count","parseInt","getAttribute","isNaN","viewBox","width","height","y","C","c","R","F"],"mappings":"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","sourcesContent":["var M=Object.create;var g=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var b=(r,f)=>()=>(f||r((f={exports:{}}).exports,f),f.exports);var D=(r,f,t,e)=>{if(f&&typeof f==\"object\"||typeof f==\"function\")for(let n of B(f))!U.call(r,n)&&n!==t&&g(r,n,{get:()=>f[n],enumerable:!(e=T(f,n))||e.enumerable});return r};var S=(r,f,t)=>(t=r!=null?M(N(r)):{},D(f||!r||!r.__esModule?g(t,\"default\",{value:r,enumerable:!0}):t,r));var A=b((H,w)=>{\"use strict\";function d(r,f,t){var e,n,o,s,i;f==null&&(f=100);function l(){var u=Date.now()-s;u<f&&u>=0?e=setTimeout(l,f-u):(e=null,t||(i=r.apply(o,n),o=n=null))}var h=function(){o=this,n=arguments,s=Date.now();var u=t&&!e;return e||(e=setTimeout(l,f)),u&&(i=r.apply(o,n),o=n=null),i};return h.clear=function(){e&&(clearTimeout(e),e=null)},h.flush=function(){e&&(i=r.apply(o,n),o=n=null,clearTimeout(e),e=null)},h}d.debounce=d;w.exports=d});var v=b((P,m)=>{\"use strict\";(function(){var r;function f(t,e){var n=this instanceof f?this:r;if(n.reset(e),typeof t==\"string\"&&t.length>0&&n.hash(t),n!==this)return n}f.prototype.hash=function(t){var e,n,o,s,i;switch(i=t.length,this.len+=i,n=this.k1,o=0,this.rem){case 0:n^=i>o?t.charCodeAt(o++)&65535:0;case 1:n^=i>o?(t.charCodeAt(o++)&65535)<<8:0;case 2:n^=i>o?(t.charCodeAt(o++)&65535)<<16:0;case 3:n^=i>o?(t.charCodeAt(o)&255)<<24:0,n^=i>o?(t.charCodeAt(o++)&65280)>>8:0}if(this.rem=i+this.rem&3,i-=this.rem,i>0){for(e=this.h1;n=n*11601+(n&65535)*3432906752&4294967295,n=n<<15|n>>>17,n=n*13715+(n&65535)*461832192&4294967295,e^=n,e=e<<13|e>>>19,e=e*5+3864292196&4294967295,!(o>=i);)n=t.charCodeAt(o++)&65535^(t.charCodeAt(o++)&65535)<<8^(t.charCodeAt(o++)&65535)<<16,s=t.charCodeAt(o++),n^=(s&255)<<24^(s&65280)>>8;switch(n=0,this.rem){case 3:n^=(t.charCodeAt(o+2)&65535)<<16;case 2:n^=(t.charCodeAt(o+1)&65535)<<8;case 1:n^=t.charCodeAt(o)&65535}this.h1=e}return this.k1=n,this},f.prototype.result=function(){var t,e;return t=this.k1,e=this.h1,t>0&&(t=t*11601+(t&65535)*3432906752&4294967295,t=t<<15|t>>>17,t=t*13715+(t&65535)*461832192&4294967295,e^=t),e^=this.len,e^=e>>>16,e=e*51819+(e&65535)*2246770688&4294967295,e^=e>>>13,e=e*44597+(e&65535)*3266445312&4294967295,e^=e>>>16,e>>>0},f.prototype.reset=function(t){return this.h1=typeof t==\"number\"?t:0,this.rem=this.k1=this.len=0,this},r=new f,typeof m<\"u\"?m.exports=f:this.MurmurHash3=f})()});var G=S(A()),x=S(v()),y=\"svg-symbols\",C=\"svg-\",c=\"data-count\";function R(r,f){if(typeof window>\"u\"||r===f)return{};let t=document.getElementById(y);if(t||(t=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),t.id=y,t.setAttribute(\"aria-hidden\",\"true\"),t.setAttribute(\"style\",\"position:fixed;top:-99999px;left:-99999px;z-index:0;opacity:0;\"),document.body.appendChild(t)),r){let i=C+new x.default(r).result();V(document.getElementById(i))}let e=C+new x.default(f).result(),n=document.getElementById(e);if(n)return n.setAttribute(c,p(n)+1+\"\"),{id:e,attrs:E(n)};let o=new DOMParser().parseFromString(f,\"application/xml\").firstElementChild;if(o?.querySelector(\"parsererror\"))return console.error(\"Provided source code is not a valid SVG: \"+f),{id:e};if(!o)return console.error(\"Missing child in SVG: \"+f),{id:e};let s=document.createElementNS(\"http://www.w3.org/2000/svg\",\"symbol\");for(let i=0;i<o.attributes.length;i++){let l=o.attributes[i];s.setAttribute(l.name,l.value)}for(s.id=e,s.setAttribute(c,\"1\");o.children.length;)s.appendChild(o.children[0]);return t.appendChild(s),{id:e,attrs:E(s)}}function F(r){!r||typeof window>\"u\"||V(typeof r==\"string\"?document.getElementById(r):r)}function V(r){if(!r)return;let f=p(r,1)-1;r.setAttribute(c,f+\"\"),f<=0&&(a.push(r),I())}var a=[],I=(0,G.default)(()=>{for(let r=a.length-1;r>=0;r--){let f=a[r];f.parentElement&&p(f)<=0&&f.parentElement.removeChild(f),a.pop()}},5e3);function p(r,f=0){if(!r)return f;let t=parseInt(r.getAttribute(c)||\"1\");return isNaN(t)?f:t}function E(r){let f=r.getAttribute(\"viewBox\")||\"\";if(!f)for(let t of[\"x\",\"y\",\"width\",\"height\"]){let e=r.getAttribute(t);f+=(e||\"0\")+\" \"}return{viewBox:f,width:\"100%\",height:\"100%\"}}export{y as SVG_ID,C as SYMBOL_ID_PREFIX,c as USAGES_COUNT_ATTR,R as onSrcUpdate,F as onUnmount};\n/*! Bundled license information:\n\nimurmurhash/imurmurhash.js:\n  (**\n   * @preserve\n   * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)\n   *\n   * @author <a href=\"mailto:jensyt@gmail.com\">Jens Taylor</a>\n   * @see http://github.com/homebrewing/brauhaus-diff\n   * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n   * @see http://github.com/garycourt/murmurhash-js\n   * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\n   * @see http://sites.google.com/site/murmurhash/\n   *)\n*/\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n  var timeout, args, context, timestamp, result;\n  if (null == wait) wait = 100;\n\n  function later() {\n    var last = Date.now() - timestamp;\n\n    if (last < wait && last >= 0) {\n      timeout = setTimeout(later, wait - last);\n    } else {\n      timeout = null;\n      if (!immediate) {\n        result = func.apply(context, args);\n        context = args = null;\n      }\n    }\n  };\n\n  var debounced = function(){\n    context = this;\n    args = arguments;\n    timestamp = Date.now();\n    var callNow = immediate && !timeout;\n    if (!timeout) timeout = setTimeout(later, wait);\n    if (callNow) {\n      result = func.apply(context, args);\n      context = args = null;\n    }\n\n    return result;\n  };\n\n  debounced.clear = function() {\n    if (timeout) {\n      clearTimeout(timeout);\n      timeout = null;\n    }\n  };\n  \n  debounced.flush = function() {\n    if (timeout) {\n      result = func.apply(context, args);\n      context = args = null;\n      \n      clearTimeout(timeout);\n      timeout = null;\n    }\n  };\n\n  return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","/**\n * @preserve\n * JS Implementation of incremental MurmurHash3 (r150) (as of May 10, 2013)\n *\n * @author <a href=\"mailto:jensyt@gmail.com\">Jens Taylor</a>\n * @see http://github.com/homebrewing/brauhaus-diff\n * @author <a href=\"mailto:gary.court@gmail.com\">Gary Court</a>\n * @see http://github.com/garycourt/murmurhash-js\n * @author <a href=\"mailto:aappleby@gmail.com\">Austin Appleby</a>\n * @see http://sites.google.com/site/murmurhash/\n */\n(function(){\n    var cache;\n\n    // Call this function without `new` to use the cached object (good for\n    // single-threaded environments), or with `new` to create a new object.\n    //\n    // @param {string} key A UTF-16 or ASCII string\n    // @param {number} seed An optional positive integer\n    // @return {object} A MurmurHash3 object for incremental hashing\n    function MurmurHash3(key, seed) {\n        var m = this instanceof MurmurHash3 ? this : cache;\n        m.reset(seed)\n        if (typeof key === 'string' && key.length > 0) {\n            m.hash(key);\n        }\n\n        if (m !== this) {\n            return m;\n        }\n    };\n\n    // Incrementally add a string to this hash\n    //\n    // @param {string} key A UTF-16 or ASCII string\n    // @return {object} this\n    MurmurHash3.prototype.hash = function(key) {\n        var h1, k1, i, top, len;\n\n        len = key.length;\n        this.len += len;\n\n        k1 = this.k1;\n        i = 0;\n        switch (this.rem) {\n            case 0: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) : 0;\n            case 1: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 8 : 0;\n            case 2: k1 ^= len > i ? (key.charCodeAt(i++) & 0xffff) << 16 : 0;\n            case 3:\n                k1 ^= len > i ? (key.charCodeAt(i) & 0xff) << 24 : 0;\n                k1 ^= len > i ? (key.charCodeAt(i++) & 0xff00) >> 8 : 0;\n        }\n\n        this.rem = (len + this.rem) & 3; // & 3 is same as % 4\n        len -= this.rem;\n        if (len > 0) {\n            h1 = this.h1;\n            while (1) {\n                k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n                k1 = (k1 << 15) | (k1 >>> 17);\n                k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n\n                h1 ^= k1;\n                h1 = (h1 << 13) | (h1 >>> 19);\n                h1 = (h1 * 5 + 0xe6546b64) & 0xffffffff;\n\n                if (i >= len) {\n                    break;\n                }\n\n                k1 = ((key.charCodeAt(i++) & 0xffff)) ^\n                     ((key.charCodeAt(i++) & 0xffff) << 8) ^\n                     ((key.charCodeAt(i++) & 0xffff) << 16);\n                top = key.charCodeAt(i++);\n                k1 ^= ((top & 0xff) << 24) ^\n                      ((top & 0xff00) >> 8);\n            }\n\n            k1 = 0;\n            switch (this.rem) {\n                case 3: k1 ^= (key.charCodeAt(i + 2) & 0xffff) << 16;\n                case 2: k1 ^= (key.charCodeAt(i + 1) & 0xffff) << 8;\n                case 1: k1 ^= (key.charCodeAt(i) & 0xffff);\n            }\n\n            this.h1 = h1;\n        }\n\n        this.k1 = k1;\n        return this;\n    };\n\n    // Get the result of this hash\n    //\n    // @return {number} The 32-bit hash\n    MurmurHash3.prototype.result = function() {\n        var k1, h1;\n        \n        k1 = this.k1;\n        h1 = this.h1;\n\n        if (k1 > 0) {\n            k1 = (k1 * 0x2d51 + (k1 & 0xffff) * 0xcc9e0000) & 0xffffffff;\n            k1 = (k1 << 15) | (k1 >>> 17);\n            k1 = (k1 * 0x3593 + (k1 & 0xffff) * 0x1b870000) & 0xffffffff;\n            h1 ^= k1;\n        }\n\n        h1 ^= this.len;\n\n        h1 ^= h1 >>> 16;\n        h1 = (h1 * 0xca6b + (h1 & 0xffff) * 0x85eb0000) & 0xffffffff;\n        h1 ^= h1 >>> 13;\n        h1 = (h1 * 0xae35 + (h1 & 0xffff) * 0xc2b20000) & 0xffffffff;\n        h1 ^= h1 >>> 16;\n\n        return h1 >>> 0;\n    };\n\n    // Reset the hash object for reuse\n    //\n    // @param {number} seed An optional positive integer\n    MurmurHash3.prototype.reset = function(seed) {\n        this.h1 = typeof seed === 'number' ? seed : 0;\n        this.rem = this.k1 = this.len = 0;\n        return this;\n    };\n\n    // A cached object to use. This can be safely used if you're in a single-\n    // threaded environment, otherwise you need to create new hashes to use.\n    cache = new MurmurHash3();\n\n    if (typeof(module) != 'undefined') {\n        module.exports = MurmurHash3;\n    } else {\n        this.MurmurHash3 = MurmurHash3;\n    }\n}());\n","import debounce from \"debounce\";\r\nimport MurmurHash3 from \"imurmurhash\";\r\n\r\n/**\r\n * ID of an SVG element that contains all symbols\r\n */\r\nexport const SVG_ID = \"svg-symbols\";\r\n\r\n/**\r\n * Prepended to the symbol ID\r\n */\r\nexport const SYMBOL_ID_PREFIX = \"svg-\";\r\n\r\n/**\r\n * Attribute of a symbol element that contains count of elements that uses that symbol\r\n */\r\nexport const USAGES_COUNT_ATTR = \"data-count\";\r\n\r\ntype MaybeSymbol = SVGSymbolElement | null | undefined;\r\n\r\n/**\r\n * Should be called whenever image source is updated, and component is mounted.\r\n *\r\n * @param prevSrc Previous symbol source code, i.e. value of `import \"./my/image.svg\"`. If there's no previous source, pass `undefined`.\r\n * @param src Symbol source code, i.e. value of `import \"./my/image.svg\"`\r\n * @returns Attributes that should be bound to the `<svg>` tag. These attributes should override attributes bound by the user.\r\n */\r\nexport function onSrcUpdate(prevSrc: string | undefined, src: string) {\r\n  if (typeof window === \"undefined\" || prevSrc === src) {\r\n    return {};\r\n  }\r\n\r\n  // Get or create SVG symbols container\r\n\r\n  let svgEl = document.getElementById(SVG_ID) as SVGSVGElement | null;\r\n\r\n  if (!svgEl) {\r\n    svgEl = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\r\n    svgEl.id = SVG_ID;\r\n    svgEl.setAttribute(\"aria-hidden\", \"true\");\r\n    // display: none messes with some of the icons\r\n    svgEl.setAttribute(\"style\", \"position:fixed;top:-99999px;left:-99999px;z-index:0;opacity:0;\");\r\n    document.body.appendChild(svgEl);\r\n  }\r\n\r\n  // Reduce usages count of previous symbol\r\n\r\n  if (prevSrc) {\r\n    const id = SYMBOL_ID_PREFIX + new MurmurHash3(prevSrc).result();\r\n    reduceSymbolUsages(document.getElementById(id) as any);\r\n  }\r\n\r\n  const id = SYMBOL_ID_PREFIX + new MurmurHash3(src).result(); // Use hash of the source code as an ID\r\n\r\n  // Check if symbol already exists. If so, increment its usages count.\r\n\r\n  const existingSymbol = document.getElementById(id) as SVGSymbolElement | null;\r\n\r\n  if (existingSymbol) {\r\n    existingSymbol.setAttribute(USAGES_COUNT_ATTR, getSymbolUsagesCount(existingSymbol) + 1 + \"\");\r\n    return { id, attrs: getSvgAttrs(existingSymbol) };\r\n  }\r\n\r\n  // Create new symbol\r\n\r\n  const svg = new DOMParser().parseFromString(src, \"application/xml\").firstElementChild;\r\n\r\n  if (svg?.querySelector(\"parsererror\")) {\r\n    console.error(\"Provided source code is not a valid SVG: \" + src);\r\n    return { id };\r\n  }\r\n\r\n  if (!svg) {\r\n    console.error(\"Missing child in SVG: \" + src);\r\n    return { id };\r\n  }\r\n\r\n  const symbol = document.createElementNS(\"http://www.w3.org/2000/svg\", \"symbol\");\r\n\r\n  for (let i = 0; i < svg.attributes.length; i++) {\r\n    const attr = svg.attributes[i];\r\n    symbol.setAttribute(attr.name, attr.value);\r\n  }\r\n\r\n  symbol.id = id;\r\n  symbol.setAttribute(USAGES_COUNT_ATTR, \"1\");\r\n\r\n  while (svg.children.length) {\r\n    symbol.appendChild(svg.children[0]);\r\n  }\r\n\r\n  svgEl.appendChild(symbol);\r\n  return { id, attrs: getSvgAttrs(symbol) };\r\n}\r\n\r\n/**\r\n * Should be called whenever component is unmounted\r\n * @param symbolOrId Symbol or ID of a symbol. If nullish value is provided, won't do anything.\r\n */\r\nexport function onUnmount(symbolOrId: SVGSymbolElement | string | null | undefined) {\r\n  if (!symbolOrId || typeof window === \"undefined\") {\r\n    return;\r\n  }\r\n\r\n  reduceSymbolUsages(typeof symbolOrId === \"string\" ? (document.getElementById(symbolOrId) as any) : symbolOrId);\r\n}\r\n\r\nfunction reduceSymbolUsages(symbol: SVGSymbolElement | null | undefined) {\r\n  if (!symbol) {\r\n    return;\r\n  }\r\n\r\n  const newCount = getSymbolUsagesCount(symbol, 1) - 1;\r\n  symbol.setAttribute(USAGES_COUNT_ATTR, newCount + \"\");\r\n\r\n  if (newCount <= 0) {\r\n    symbolsToRemove.push(symbol);\r\n    scheduleSymbolsRemoval();\r\n  }\r\n}\r\n\r\nconst symbolsToRemove: SVGSymbolElement[] = [];\r\n\r\nconst scheduleSymbolsRemoval = debounce(() => {\r\n  for (let i = symbolsToRemove.length - 1; i >= 0; i--) {\r\n    const symbol = symbolsToRemove[i];\r\n\r\n    if (symbol.parentElement && getSymbolUsagesCount(symbol) <= 0) {\r\n      symbol.parentElement.removeChild(symbol);\r\n    }\r\n\r\n    symbolsToRemove.pop();\r\n  }\r\n}, 5000);\r\n\r\nfunction getSymbolUsagesCount(symbol: MaybeSymbol, nanReplacement = 0) {\r\n  if (!symbol) {\r\n    return nanReplacement;\r\n  }\r\n\r\n  const count = parseInt(symbol.getAttribute(USAGES_COUNT_ATTR) || \"1\");\r\n  return isNaN(count) ? nanReplacement : count;\r\n}\r\n\r\nfunction getSvgAttrs(symbol: SVGSymbolElement) {\r\n  let viewBox = symbol.getAttribute(\"viewBox\") || \"\";\r\n\r\n  if (!viewBox) {\r\n    for (const attr of [\"x\", \"y\", \"width\", \"height\"]) {\r\n      const value = symbol.getAttribute(attr);\r\n      viewBox += (value || \"0\") + \" \";\r\n    }\r\n  }\r\n\r\n  return {\r\n    viewBox,\r\n    width: \"100%\",\r\n    height: \"100%\",\r\n  };\r\n}\r\n"]}