{"version":3,"sources":["jsdelivr-header.js","/npm/simg@1.1.1/src/simg.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCLA,SAAU,GACR,IAAI,EAAe,EAAK,KACpB,EAAO,EAAK,KAAO,SAAS,GAC9B,KAAK,IAAM,CACb,EAEA,EAAK,WAAa,WAEhB,OADA,EAAK,KAAO,EACL,IACT,EAEA,EAAK,eAAiB,SAAS,GAE7B,IAAI,EAAS,SAAS,cAAc,UAQpC,OAPA,EAAO,MAAQ,EAAI,MACnB,EAAO,OAAS,EAAI,OAEV,EAAO,WAAW,MACxB,UAAU,EAAK,EAAG,GACR,EAAO,UAAU,aAEhB,QAAQ,iCAAkC,GAC3D,EAEA,EAAK,UAAY,CAGf,SAAU,SAAS,GACjB,IAAK,EACH,MAAM,IAAI,MAAM,4BASlB,MANA,CACE,CAAC,UAAW,KACZ,CAAC,QAAS,+BACV,SAAQ,SAAS,GACjB,EAAI,aAAa,EAAK,GAAI,EAAK,GACjC,IACO,EAAI,WAAW,SACxB,EAGA,SAAU,SAAS,GACjB,KAAK,YAAW,SAAS,GACvB,IAAI,EAAS,SAAS,cAAc,UAChC,EAAU,EAAO,WAAW,MAEhC,EAAO,MAAQ,EAAI,MACnB,EAAO,OAAS,EAAI,OAEpB,EAAQ,UAAU,EAAK,EAAG,GAC1B,EAAG,EACL,GACF,EAEA,WAAY,SAAS,GACnB,IAAI,EAAM,KAAK,SAAS,KAAK,KACzB,EAAM,SAAS,cAAc,OAE7B,IACF,EAAI,OAAS,WACX,EAAG,EACL,GAIF,EAAI,aAAa,MAAO,6BAA8B,KAAK,SAAS,mBAAmB,KACzF,EAKA,MAAO,SAAS,GACd,KAAK,UAAS,SAAS,GACrB,IAAI,EAAa,EAAO,UAAU,aAC9B,EAAM,SAAS,cAAc,OAEjC,EAAI,OAAS,WACX,EAAG,EACL,EAGA,EAAI,aAAa,MAAO,EAC1B,GACF,EAGA,QAAS,SAAS,GAChB,IAAI,EAAO,KACX,KAAK,OAAM,SAAS,GACD,EAAK,IAAI,WACf,aAAa,EAAK,EAAK,KAC9B,GACF,GAEJ,GACF,EAGA,aAAc,SAAS,GACrB,KAAK,UAAS,SAAS,GAMrB,IALA,IAAI,EAAU,EAAO,YAAY,QAAQ,iCAAkC,IACvE,EAAa,KAAK,OAAO,IAEzB,EAAK,IAAI,YAAY,EAAW,QAChC,EAAK,IAAI,WAAW,GACf,EAAI,EAAG,EAAI,EAAW,OAAQ,IACrC,EAAG,GAAK,EAAW,WAAW,GAEhC,IAAI,EAAW,IAAI,SAAS,GACxB,EAAO,IAAI,KAAK,CAAC,GAAW,CAAC,KAAM,cACvC,EAAG,EACL,GACF,EAGA,SAAU,SAAS,GACZ,IACH,EAAW,SAEb,KAAK,OAAM,SAAS,GAClB,IAAI,EAAI,SAAS,cAAc,KAE/B,EAAE,SAAW,EAAW,OACxB,EAAE,KAAO,EAAI,aAAa,OAE1B,EAAE,MAAM,QAAU,OAClB,SAAS,KAAK,YAAY,GAC1B,EAAE,QACF,SAAS,KAAK,YAAY,EAC5B,GACF,EAEH,CArID,CAqIG","file":"/npm/simg@1.1.1/src/simg.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/simg@1.1.1/src/simg.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*jshint nonstandard:true */\n(function(root){\n  var previousSimg = root.Simg;\n  var Simg = root.Simg = function(svg){\n    this.svg = svg;\n  };\n\n  Simg.noConflict = function(){\n    root.Simg = previousSimg;\n    return this;\n  };\n\n  Simg.getBase64Image = function(img) {\n    // From: http://stackoverflow.com/questions/934012/get-image-data-in-javascript\n    var canvas = document.createElement(\"canvas\");\n    canvas.width = img.width;\n    canvas.height = img.height;\n\n    var ctx = canvas.getContext(\"2d\");\n    ctx.drawImage(img, 0, 0);\n    var dataURL = canvas.toDataURL(\"image/png\");\n\n    return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");\n  };\n\n  Simg.prototype = {\n\n    // Return SVG text.\n    toString: function(svg){\n      if (!svg){\n        throw new Error('.toString: No SVG found.');\n      }\n\n      [\n        ['version', 1.1],\n        ['xmlns', \"http://www.w3.org/2000/svg\"],\n      ].forEach(function(item){\n        svg.setAttribute(item[0], item[1]);\n      });\n      return svg.parentNode.innerHTML;\n    },\n\n    // Return canvas with this SVG drawn inside.\n    toCanvas: function(cb){\n      this.toSvgImage(function(img){\n        var canvas = document.createElement('canvas');\n        var context = canvas.getContext(\"2d\");\n\n        canvas.width = img.width;\n        canvas.height = img.height;\n\n        context.drawImage(img, 0, 0);\n        cb(canvas);\n      });\n    },\n\n    toSvgImage: function(cb){\n      var str = this.toString(this.svg);\n      var img = document.createElement('img');\n\n      if (cb){\n        img.onload = function(){\n          cb(img);\n        };\n      }\n\n      // Make the new img's source an SVG image.\n      img.setAttribute('src', 'data:image/svg+xml;base64,'+ btoa(unescape(encodeURIComponent(str))));\n    },\n\n    // Returns callback to new img from SVG.\n    // Call with no arguments to return svg image element.\n    // Call with callback to return png image element.\n    toImg: function(cb){\n      this.toCanvas(function(canvas){\n        var canvasData = canvas.toDataURL(\"image/png\");\n        var img = document.createElement('img');\n\n        img.onload = function(){\n          cb(img);\n        };\n\n        // Make pngImg's source the canvas data.\n        img.setAttribute('src', canvasData);\n      });\n    },\n\n    // Replace SVG with PNG img.\n    replace: function(cb){\n      var self = this;\n      this.toImg(function(img){\n        var parentNode = self.svg.parentNode;\n        parentNode.replaceChild(img, self.svg);\n        if (cb){\n          cb();\n        }\n      });\n    },\n\n    // Converts canvas to binary blob.\n    toBinaryBlob: function(cb){\n      this.toCanvas(function(canvas){\n        var dataUrl = canvas.toDataURL().replace(/^data:image\\/(png|jpg);base64,/, \"\");\n        var byteString = atob(escape(dataUrl));\n        // write the bytes of the string to an ArrayBuffer\n        var ab = new ArrayBuffer(byteString.length);\n        var ia = new Uint8Array(ab);\n        for (var i = 0; i < byteString.length; i++) {\n          ia[i] = byteString.charCodeAt(i);\n        }\n        var dataView = new DataView(ab);\n        var blob = new Blob([dataView], {type: \"image/png\"});\n        cb(blob);\n      });\n    },\n\n    // Trigger download of image.\n    download: function(filename){\n      if (!filename){\n        filename = 'chart';\n      }\n      this.toImg(function(img){\n        var a = document.createElement(\"a\");\n        // Name of the file being downloaded.\n        a.download = filename + \".png\";\n        a.href = img.getAttribute('src');\n        // Support for Firefox which requires inserting in dom.\n        a.style.display = 'none';\n        document.body.appendChild(a);\n        a.click();\n        document.body.removeChild(a);\n      });\n    }\n  };\n})(this);\n"]}