UNPKG

highcharts

Version:
12 lines 5.27 kB
/** * Highcharts JS v12.3.0 (2025-06-21) * @module highcharts/modules/offline-exporting * @requires highcharts * @requires highcharts/modules/exporting * * Client side exporting module * * (c) 2015-2025 Torstein Honsi / Oystein Moseng * * License: www.highcharts.com/license */import*as t from"../highcharts.js";import"./exporting.js";var e,o={};o.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return o.d(e,{a:e}),e},o.d=(t,e)=>{for(var a in e)o.o(e,a)&&!o.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},o.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);let a=t.default;var n=o.n(a);let{isSafari:r,win:l,win:{document:i}}=n(),{error:d}=n(),s=l.URL||l.webkitURL||l;function c(t){let e=t.replace(/filename=.*;/,"").match(/data:([^;]*)(;base64)?,([A-Z+\d\/]+)/i);if(e&&e.length>3&&l.atob&&l.ArrayBuffer&&l.Uint8Array&&l.Blob&&s.createObjectURL){let t=l.atob(e[3]),o=new l.ArrayBuffer(t.length),a=new l.Uint8Array(o);for(let e=0;e<a.length;++e)a[e]=t.charCodeAt(e);return s.createObjectURL(new l.Blob([a],{type:e[1]}))}}let f={dataURLtoBlob:c,downloadURL:function(t,e){let o=l.navigator,a=i.createElement("a");if("string"!=typeof t&&!(t instanceof String)&&o.msSaveOrOpenBlob)return void o.msSaveOrOpenBlob(t,e);if(t=""+t,o.userAgent.length>1e3)throw Error("Input too long");let n=/Edge\/\d+/.test(o.userAgent);if((r&&"string"==typeof t&&0===t.indexOf("data:application/pdf")||n||t.length>2e6)&&!(t=c(t)||""))throw Error("Failed to convert to blob");if(void 0!==a.download)a.href=t,a.download=e,i.body.appendChild(a),a.click(),i.body.removeChild(a);else try{if(!l.open(t,"chart"))throw Error("Failed to open window")}catch{l.location.href=t}},getScript:function(t){return new Promise((e,o)=>{let a=i.getElementsByTagName("head")[0],n=i.createElement("script");n.type="text/javascript",n.src=t,n.onload=()=>{e()},n.onerror=()=>{o(d(`Error loading script ${t}`))},a.appendChild(n)})}},p=t.default.AST;var h=o.n(p);let u=t.default.Chart;var g=o.n(u);let y={exporting:{}},{getOptions:m,setOptions:w}=n(),{downloadURL:b,getScript:v}=f,{composed:F,doc:E,win:x}=n(),{addEvent:S,extend:A,pushUnique:L}=n();!function(t){async function e(t,e,n,r){let l=function(t,e){let o,a,n=E.createElement("div");h().setElementHTML(n,t);let r=n.getElementsByTagName("text"),l=function(t,e){let o=t;for(;o&&o!==n;){if(o.style[e]){let a=o.style[e];"fontSize"===e&&/em$/.test(a)&&(a=Math.round(16*parseFloat(a))+"px"),t.style[e]=a;break}o=o.parentNode}};return[].forEach.call(r,function(t){for(["fontFamily","fontSize"].forEach(e=>{l(t,e)}),t.style.fontFamily=e?.normal?"HighchartsFont":String(t.style.fontFamily&&t.style.fontFamily.split(" ").splice(-1)),o=t.getElementsByTagName("title"),[].forEach.call(o,function(e){t.removeChild(e)}),a=t.getElementsByClassName("highcharts-text-outline");a.length>0;){let t=a[0];t.parentNode&&t.parentNode.removeChild(t)}}),n.querySelector("svg")}(t,r);l&&(await o(l,r),b(await a(l,0,e),n))}async function o(t,e){let o,a,n=(t,e)=>{x.jspdf.jsPDF.API.events.push(["initialized",function(){this.addFileToVFS(t,e),this.addFont(t,"HighchartsFont",t),this.getFontList()?.HighchartsFont||this.setFont("HighchartsFont")}])};for(let r of(e&&(a=t.textContent||"",!/[^\u0000-\u007F\u200B]+/.test(a))&&(e=void 0),["normal","italic","bold","bolditalic"])){let t=e?.[r];if(t)try{let e=await x.fetch(t);if(!e.ok)throw Error(`Failed to fetch font: ${t}`);let a=await e.blob(),l=new FileReader,i=await new Promise((t,e)=>{l.onloadend=()=>{"string"==typeof l.result?t(l.result.split(",")[1]):e(Error("Failed to read font as base64"))},l.onerror=e,l.readAsDataURL(a)});n(r,i),"normal"===r&&(o=i)}catch(t){}else o&&n(r,o)}}async function a(t,e,o){let a=(Number(t.getAttribute("width"))+2*e)*o,n=(Number(t.getAttribute("height"))+2*e)*o,r=new x.jspdf.jsPDF(n>a?"p":"l","pt",[a,n]);[].forEach.call(t.querySelectorAll('*[visibility="hidden"]'),function(t){t.parentNode.removeChild(t)});let l=t.querySelectorAll("linearGradient");for(let t=0;t<l.length;t++){let e=l[t].querySelectorAll("stop"),o=0;for(;o<e.length&&"0"===e[o].getAttribute("offset")&&"0"===e[o+1].getAttribute("offset");)e[o].remove(),o++}return[].forEach.call(t.querySelectorAll("tspan"),t=>{"​"===t.textContent&&(t.textContent=" ",t.setAttribute("dx",-5))}),await r.svg(t,{x:0,y:0,width:a,height:n,removeInvalid:!0}),r.output("datauristring")}t.compose=function(t){if(S(t,"downloadSVG",async function(t){let{svg:o,exportingOptions:a,exporting:r,preventDefault:l}=t;if(a?.type==="application/pdf"){l?.();try{let{type:t,filename:r,scale:l,libURL:i}=n().Exporting.prepareImageOptions(a);"application/pdf"===t&&(x.jspdf?.jsPDF||(await v(`${i}jspdf.js`),await v(`${i}svg2pdf.js`)),await e(o,l,r,a?.pdfFont))}catch(t){await r?.fallbackToServer(a,t)}}}),!L(F,"OfflineExporting"))return;A(g().prototype,{exportChartLocal:async function(t,e){await this.exporting?.exportChart(t,e)}}),w(y);let o=m().exporting?.buttons?.contextButton?.menuItems;o&&o.push("downloadPDF")},t.downloadSVGLocal=async function(t,e){await n().Exporting.prototype.downloadSVG.call(void 0,t,e)}}(e||(e={}));let j=e;o.d({},{});let B=n();B.dataURLtoBlob=B.dataURLtoBlob||f.dataURLtoBlob,B.downloadSVGLocal=j.downloadSVGLocal,B.downloadURL=B.downloadURL||f.downloadURL,j.compose(B.Exporting);let U=n();export{U as default};