UNPKG

highcharts

Version:
14 lines 7.42 kB
!/** * Highcharts JS v13.0.1 (2026-08-17) * @module highcharts/modules/offline-exporting * @requires highcharts * @requires highcharts/modules/exporting * * Client side exporting module * * (c) 2015-2026 Highsoft AS * Author: Torstein Hønsi / Øystein Moseng * * A commercial license may be required depending on use, * see www.highcharts.com/license */function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(t._Highcharts,t._Highcharts.AST,t._Highcharts.Chart):"function"==typeof define&&define.amd?define("highcharts/modules/offline-exporting",["highcharts/highcharts"],function(t){return e(t,t.AST,t.Chart)}):"object"==typeof exports?exports["highcharts/modules/offline-exporting"]=e(t._Highcharts,t._Highcharts.AST,t._Highcharts.Chart):t.Highcharts=e(t.Highcharts,t.Highcharts.AST,t.Highcharts.Chart)}("u"<typeof window?this:window,(t,e,r)=>(()=>{"use strict";var o,a={660(t){t.exports=e},960(t){t.exports=r},944(e){e.exports=t}};let n={};function i(t){let e=n[t];if(void 0!==e)return e.exports;let r=n[t]={exports:{}};return a[t](r,r.exports,i),r.exports}i.n=t=>{let e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{if(Array.isArray(e))for(var r=0;r<e.length;){var o=e[r++],a=e[r++];i.o(t,o)?0===a&&r++:0===a?Object.defineProperty(t,o,{enumerable:!0,value:e[r++]}):Object.defineProperty(t,o,{enumerable:!0,get:a})}else for(var o in e)i.o(e,o)&&!i.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let l={};i.d(l,{default:()=>R});var s=i(944),c=i.n(s);let{isSafari:d,win:f,win:{document:h}}=c(),p=f.URL||f.webkitURL||f;function u(t){let e=t.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(e&&e.length>3&&f.atob&&f.ArrayBuffer&&f.Uint8Array&&f.Blob&&p.createObjectURL){let t=f.atob(e[3]),r=new f.ArrayBuffer(t.length),o=new f.Uint8Array(r);for(let e=0;e<o.length;++e)o[e]=t.charCodeAt(e);return p.createObjectURL(new f.Blob([o],{type:e[1]}))}}function g(t,e){let r=f.navigator,o=h.createElement("a");if("string"!=typeof t&&!(t instanceof String)&&r.msSaveOrOpenBlob)return void r.msSaveOrOpenBlob(t,e);if(t=""+t,r.userAgent.length>1e3)throw Error("Input too long");let a=/Edge\/\d+/.test(r.userAgent);if((d&&"string"==typeof t&&0===t.indexOf("data:application/pdf")||a||t.length>2e6)&&!(t=u(t)||""))throw Error("Failed to convert to blob");if(void 0!==o.download)o.href=t,o.download=e,h.body.appendChild(o),o.click(),h.body.removeChild(o);else try{if(!f.open(t,"chart"))throw Error("Failed to open window")}catch{f.location.href=t}}function y(t){return new Promise((e,r)=>{let o=h.getElementsByTagName("head")[0],a=h.createElement("script");a.type="text/javascript",a.src=t,a.onload=()=>{e()},a.onerror=()=>{let e=`Error loading script ${t}`;(0,s.error)(e),r(Error(e))},o.appendChild(a)})}var b=i(660),m=i.n(b),w=i(960),x=i.n(w);let v={exporting:{}},{getOptions:E,setOptions:F}=c(),{composed:A,doc:L,win:S}=c();!function(t){let e="Invalid exporting.libURL:";function r(){return!!(S&&S.jspdf?.jsPDF&&S.svg2pdf)}async function o(t,e,r,o){var i,l;let s,c,d,f,h,p,u,y=(i=t,l=o,d=L.createElement("div"),m().setElementHTML(d,i),f=d.getElementsByTagName("text"),h=function(t,e){let r=t;for(;r&&r!==d;){if(r.style[e]){let o=r.style[e];"fontSize"===e&&/em$/.test(o)&&(o=Math.round(16*parseFloat(o))+"px"),t.style[e]=o;break}r=r.parentNode}},[].forEach.call(f,function(t){for(["fontFamily","fontSize"].forEach(e=>{h(t,e)}),t.style.fontFamily=l?.normal?"HighchartsFont":String(t.style.fontFamily&&t.style.fontFamily.split(" ").splice(-1)),s=t.getElementsByTagName("title"),[].forEach.call(s,function(t){t.remove()}),c=t.getElementsByClassName("highcharts-text-outline");c.length>0;)c[0].remove()}),p=/color\(\s*srgb\s+([\d.]+)[, ]+([\d.]+)[, ]+([\d.]+)(?:\s*\/\s*([\d.]+))?\s*\)/,u=t=>{if(t?.startsWith("color(srgb")){let e=t.match(p);if(e){let t=t=>Math.round(255*Math.max(0,Math.min(1,parseFloat(t)))),r=t(e[1]),o=t(e[2]),a=t(e[3]),n=e[4];return void 0!==n?`rgba(${r}, ${o}, ${a}, ${Math.max(0,Math.min(1,parseFloat(n)))})`:`rgb(${r}, ${o}, ${a})`}}},Array.from(d.querySelectorAll("*")).forEach(t=>{["color","fill","stop-color","stroke"].forEach(e=>{let r=u(t.getAttribute(e));r&&t.setAttribute(e,r);let o=u(t.style?.[e]);o&&(t.style[e]=o)})}),d.querySelector("svg"));y&&(await a(y,o),g(await n(y,0,e),r))}async function a(t,e){let r,o,a=(t,e)=>{S.jspdf.jsPDF.API.events.push(["initialized",function(){this.addFileToVFS(t,e),this.addFont(t,"HighchartsFont",t),this.getFontList()?.HighchartsFont||this.setFont("HighchartsFont")}])};for(let n of(e&&(o=t.textContent||"",!/[^\u0000-\u007F\u200B]+/.test(o))&&(e=void 0),["normal","italic","bold","bolditalic"])){let t=e?.[n];if(t)try{let e=await S.fetch(t);if(!e.ok)throw Error(`Failed to fetch font: ${t}`);let o=await e.blob(),i=new FileReader,l=await new Promise((t,e)=>{i.onloadend=()=>{"string"==typeof i.result?t(i.result.split(",")[1]):e(Error("Failed to read font as base64"))},i.onerror=e,i.readAsDataURL(o)});a(n,l),"normal"===n&&(r=l)}catch{}else r&&a(n,r)}}async function n(t,e,r){let o=(Number(t.getAttribute("width"))+2*e)*r,a=(Number(t.getAttribute("height"))+2*e)*r,n=new S.jspdf.jsPDF(a>o?"p":"l","pt",[o,a]);[].forEach.call(t.querySelectorAll('*[visibility="hidden"]'),function(t){t.parentNode.removeChild(t)});let i=t.querySelectorAll("linearGradient");for(let t=0;t<i.length;t++){let e=i[t].querySelectorAll("stop"),r=0;for(;r<e.length&&"0"===e[r].getAttribute("offset")&&"0"===e[r+1].getAttribute("offset");)e[r].remove(),r++}return[].forEach.call(t.querySelectorAll("tspan"),t=>{"​"===t.textContent&&(t.textContent=" ",t.setAttribute("dx",-5))}),await n.svg(t,{x:0,y:0,width:o,height:a,removeInvalid:!0}),n.output("datauristring")}t.compose=function(t){if((0,s.addEvent)(t,"downloadSVG",async function(t){let{svg:a,exportingOptions:n,exporting:i,preventDefault:l}=t,d=i?.chart;if(n?.type==="application/pdf"){l?.();try{let{type:t,filename:i,scale:l}=c().Exporting.prepareImageOptions(n),s=n.libURL||d?.options.exporting?.libURL,f=function(t){let r;if(!t)return;let o="/"!==t.slice(-1)?t+"/":t;if(S.URL?.canParse)r=S.URL.canParse(o,L.baseURI);else try{r=!!new S.URL(o,L.baseURI).href}catch{r=!1}if(!r)throw Error(`${e} "${t}". Provide a valid URL or path to the jsPDF and svg2pdf scripts.`);return o}(s);if("application/pdf"===t){if(!r()){if(!f)throw Error("PDF export requires jsPDF and svg2pdf.");S.jspdf?.jsPDF||await y(`${f}jspdf.js`),S.svg2pdf||await y(`${f}svg2pdf.js`)}await o(a,l,i,n?.pdfFont)}}catch(t){n?.fallbackToExportServer!==!1&&0===t.message.indexOf(e)&&(0,s.error)(`${t.message} Falling back to export server.`,!1,d),await i?.fallbackToServer(n,t)}}}),!(0,s.pushUnique)(A,"OfflineExporting"))return;(0,s.addEvent)(x(),"load",function(){!(this.renderer.forExport||r())&&(this.options.exporting?.libURL||(0,s.error)("Warning: exporting.libURL not defined, PDF client side export will not work",!1,this))}),(0,s.extend)(x().prototype,{exportChartLocal:async function(t,e){await this.exporting?.exportChart(t,e)}}),F(v);let a=E().exporting?.buttons?.contextButton?.menuItems;a?.push("downloadPDF")},t.downloadSVGLocal=async function(t,e){await c().Exporting.prototype.downloadSVG.call(void 0,t,e)}}(o||(o={}));let j=o,U=c();U.dataURLtoBlob=U.dataURLtoBlob||u,U.downloadSVGLocal=j.downloadSVGLocal,U.downloadURL=U.downloadURL||g,j.compose(U.Exporting);let R=c();return l.default})());