1
office
1
/*
2
Highcharts JS v5.0.10 (2017-03-31)
3
Exporting module
4
5
(c) 2010-2017 Torstein Honsi
6
7
License: www.highcharts.com/license
8
*/
9
(function (k){"object" ===typeof module&&module.exports?module.exports=k:k(Highcharts)})(function (k){(function (f){var k=f.defaultOptions,n=f.doc,A=f.Chart,w=f.addEvent,F=f.removeEvent,D=f.fireEvent,q=f.createElement,B=f.discardElement,u=f.css,p=f.merge,C=f.pick,h=f.each,r=f.extend,G=f.isTouchDevice,E=f.win,H=f.Renderer.prototype.symbols;r(k.lang,{printChart:"Print chart" ,downloadPNG:"Download PNG image" ,downloadJPEG:"Download JPEG image" ,downloadPDF:"Download PDF document" ,downloadSVG:"Download SVG vector image" ,
10
contextButtonTitle:"Chart context menu" });k.navigation={buttonOptions:{theme:{},symbolSize:14,symbolX:12.5,symbolY:10.5,align:"right" ,buttonSpacing:3,height:22,verticalAlign:"top" ,width:24}};p(!0,k.navigation,{menuStyle:{border:"1px solid #999999" ,background:"#ffffff" ,padding:"5px 0" },menuItemStyle:{padding:"0.5em 1em" ,background:"none" ,color:"#333333" ,fontSize:G?"14px" :"11px" ,transition:"background 250ms, color 250ms" },menuItemHoverStyle:{background:"#335cad" ,color:"#ffffff" },buttonOptions:{symbolFill:"#666666" ,
11
symbolStroke:"#666666" ,symbolStrokeWidth:3,theme:{fill:"#ffffff" ,stroke:"none" ,padding:5}}});k.exporting={type:"image/png" ,url:"https://export.highcharts.com/" ,printMaxWidth:780,scale:2,buttons:{contextButton:{className:"highcharts-contextbutton" ,menuClassName:"highcharts-contextmenu" ,symbol:"menu" ,_titleKey:"contextButtonTitle" ,menuItems:[{textKey:"printChart" ,onclick:function (){this .print()}},{separator:!0},{textKey:"downloadPNG" ,onclick:function (){this .exportChart()}},{textKey:"downloadJPEG" ,onclick:function (){this .exportChart({type:"image/jpeg" })}},
12
{textKey:"downloadPDF" ,onclick:function (){this .exportChart({type:"application/pdf" })}},{textKey:"downloadSVG" ,onclick:function (){this .exportChart({type:"image/svg+xml" })}}]}}};f.post=function (a,b,e){var c;a=q("form" ,p({method:"post" ,action:a,enctype:"multipart/form-data" },e),{display:"none" },n.body);for (c in b)q("input" ,{type:"hidden" ,name:c,value:b[c]},null ,a);a.submit();B(a)};r(A.prototype,{sanitizeSVG:function (a,b){if (b&&b.exporting&&b.exporting.allowHTML){var e=a.match(/<\/svg>(.*?$)/ );e&&e[1]&&\/svg>
13
<\/svg>(e='\x3cforeignObject x\x3d"0" y\x3d"0" width\x3d"' +b.chart.width+'" height\x3d"' +b.chart.height+'"\x3e\x3cbody xmlns\x3d"http://www.w3.org/1999/xhtml"\x3e' +e[1]+"\x3c/body\x3e\x3c/foreignObject\x3e" ,a=a.replace("\x3c/svg\x3e" ,e+"\x3c/svg\x3e" ))}a=a.replace(/zIndex="[^"]+"/ g,"" ).replace(/isShadow="[^"]+"/ g,"" ).replace(/symbolName="[^"]+"/ g,"" ).replace(/jQuery[0-9]+="[^"]+"/ g,"" ).replace(/url\(("|")(\S+)("|")\)/ g,"url($2)" ).replace(/url\([^#]+#/ g,"url(#" ).replace(/ ,'\x3csvg xmlns:xlink\x3d"http://www.w3.org/1999/xlink" ' ).replace(/ (NS[0-9]+\:)?href=/ g,\/svg>
14
<\/svg>" xlink:href\x3d" ).replace(/\n/ ," " ).replace(/<\/svg>.*?$/ ,"\x3c/svg\x3e" ).replace(/(fill|stroke)="rgba\(([ 0-9]+,[ 0-9]+,[ 0-9]+),([ 0-9\.]+)\)"/ g,'$1\x3d"rgb($2)" $1-opacity\x3d"$3"' ).replace(/ / g,"\u00a0" ).replace(// g,"\u00ad" );return a=a.replace(/ g,"\x3cimage " ).replace(/<(\/?)TITLE>/ g,"\x3c$1title\x3e" ).replace(/height=([^" ]+)/ g,'height\x3d"$1"' ).replace(/width=([^" ]+)/ g,'width\x3d"$1"' ).replace(/hc-svg-href="([^"]+)">/ g,'xlink:href\x3d"$1"/\x3e' ).replace(/ id=([^" >]+)/ g,' id\x3d"$1"' ).replace(/class=([^" >]+)/ g,(\/?)TITLE>\/svg> \/svg>
15
<\/svg><\/svg> <(\/?)TITLE>'class\x3d"$1"' ).replace(/ transform / g," " ).replace(/:(path|rect)/ g,"$1" ).replace(/style="([^"]+)"/ g,function (a){return a.toLowerCase()})},getChartHTML:function (){return this .container.innerHTML},getSVG:function (a){var b,e,c,v,m,g=p(this .options,a);n.createElementNS||(n.createElementNS=function (a,b){return n.createElement(b)});e=q("div" ,null ,{position:"absolute" ,top:"-9999em" ,width:this .chartWidth+"px" ,height:this .chartHeight+"px" },n.body);c=this .renderTo.style.width;m=this .renderTo.style.height;(\/?)TITLE>\/svg> \/svg>
16
<\/svg><\/svg> <(\/?)TITLE>c=g.exporting.sourceWidth||g.chart.width||/px$/ .test(c)&&parseInt (c,10)||600;m=g.exporting.sourceHeight||g.chart.height||/px$/ .test(m)&&parseInt (m,10)||400;r(g.chart,{animation:!1,renderTo:e,forExport:!0,renderer:"SVGRenderer" ,width:c,height:m});g.exporting.enabled=!1;delete g.data;g.series=[];h(this .series,function (a){v=p(a.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:a.visible});v.isInternal||g.series.push(v)});h(this .axes,function (a){a.userOptions.internalKey||(a.userOptions.internalKey=(\/?)TITLE>\/svg> \/svg>
17
<\/svg><\/svg> <(\/?)TITLE>f.uniqueKey())});b=new f.Chart(g,this .callback);a&&h(["xAxis" ,"yAxis" ,"series" ],function (c){var d={};a[c]&&(d[c]=a[c],b.update(d))});h(this .axes,function (a){var c=f.find(b.axes,function (b){return b.options.internalKey===a.userOptions.internalKey}),d=a.getExtremes(),e=d.userMin,d=d.userMax;!c||void 0===e&&void 0===d||c.setExtremes(e,d,!0,!1)});c=b.getChartHTML();c=this .sanitizeSVG(c,g);g=null ;b.destroy();B(e);return c},getSVGForExport:function (a,b){var e=this .options.exporting;return this .getSVG(p({chart:{borderRadius:0}},(\/?)TITLE>\/svg> \/svg>
18
<\/svg><\/svg> <(\/?)TITLE>e.chartOptions,b,{exporting:{sourceWidth:a&&a.sourceWidth||e.sourceWidth,sourceHeight:a&&a.sourceHeight||e.sourceHeight}}))},exportChart:function (a,b){b=this .getSVGForExport(a,b);a=p(this .options.exporting,a);f.post(a.url,{filename:a.filename||"chart" ,type:a.type,width:a.width||0,scale:a.scale,svg:b},a.formAttributes)},print:function (){var a=this ,b=a.container,e=[],c=b.parentNode,f=n.body,m=f.childNodes,g=a.options.exporting.printMaxWidth,d,t;if (!a.isPrinting){a.isPrinting=!0;a.pointer.reset(null ,(\/?)TITLE>\/svg> \/svg>
19
<\/svg><\/svg> <(\/?)TITLE>0);D(a,"beforePrint" );if (t=g&&a.chartWidth>g)d=[a.options.chart.width,void 0,!1],a.setSize(g,void 0,!1);h(m,function (a,b){1===a.nodeType&&(e[b]=a.style.display,a.style.display="none" )});f.appendChild(b);E.focus();E.print();setTimeout(function (){c.appendChild(b);h(m,function (a,b){1===a.nodeType&&(a.style.display=e[b])});a.isPrinting=!1;t&&a.setSize.apply(a,d);D(a,"afterPrint" )},1E3)}},contextMenu:function (a,b,e,c,f,m,g){var d=this ,t=d.options.navigation,v=d.chartWidth,k=d.chartHeight,p="cache-" +a,(\/?)TITLE>\/svg> \/svg>
20
<\/svg><\/svg> <(\/?)TITLE>l=d[p],x=Math .max(f,m),y,z;l||(d[p]=l=q("div" ,{className:a},{position:"absolute" ,zIndex:1E3,padding:x+"px" },d.container),y=q("div" ,{className:"highcharts-menu" },null ,l),u(y,r({MozBoxShadow:"3px 3px 10px #888" ,WebkitBoxShadow:"3px 3px 10px #888" ,boxShadow:"3px 3px 10px #888" },t.menuStyle)),z=function (){u(l,{display:"none" });g&&g.setState(0);d.openMenu=!1},d.exportEvents.push(w(l,"mouseleave" ,function (){l.hideTimer=setTimeout(z,500)}),w(l,"mouseenter" ,function (){clearTimeout(l.hideTimer)}),w(n,"mouseup" ,(\/?)TITLE>\/svg> \/svg>
21
<\/svg><\/svg> <(\/?)TITLE>function (b){d.pointer.inClass(b.target,a)||z()})),h(b,function (a){if (a){var b;a.separator?b=q("hr" ,null ,null ,y):(b=q("div" ,{className:"highcharts-menu-item" ,onclick:function (b){b&&b.stopPropagation();z();a.onclick&&a.onclick.apply(d,arguments)},innerHTML:a.text||d.options.lang[a.textKey]},null ,y),b.onmouseover=function (){u(this ,t.menuItemHoverStyle)},b.onmouseout=function (){u(this ,t.menuItemStyle)},u(b,r({cursor:"pointer" },t.menuItemStyle)));d.exportDivElements.push(b)}}),d.exportDivElements.push(y,(\/?)TITLE>\/svg> \/svg>
22
<\/svg><\/svg> <(\/?)TITLE>l),d.exportMenuWidth=l.offsetWidth,d.exportMenuHeight=l.offsetHeight);b={display:"block" };e+d.exportMenuWidth>v?b.right=v-e-f-x+"px" :b.left=e-x+"px" ;c+m+d.exportMenuHeight>k&&"top" !==g.alignOptions.verticalAlign?b.bottom=k-c-x+"px" :b.top=c+m-x+"px" ;u(l,b);d.openMenu=!0},addButton:function (a){var b=this ,e=b.renderer,c=p(b.options.navigation.buttonOptions,a),f=c.onclick,m=c.menuItems,g,d,k=c.symbolSize||12;b.btnCount||(b.btnCount=0);b.exportDivElements||(b.exportDivElements=[],b.exportSVGElements=[]);(\/?)TITLE>\/svg> \/svg>
23
<\/svg><\/svg> <(\/?)TITLE>if (!1!==c.enabled){var h=c.theme,n=h.states,q=n&&n.hover,n=n&&n.select,l;delete h.states;f?l=function (a){a.stopPropagation();f.call(b,a)}:m&&(l=function (){b.contextMenu(d.menuClassName,m,d.translateX,d.translateY,d.width,d.height,d);d.setState(2)});c.text&&c.symbol?h.paddingLeft=C(h.paddingLeft,25):c.text||r(h,{width:c.width,height:c.height,padding:0});d=e.button(c.text,0,0,l,h,q,n).addClass(a.className).attr({"stroke-linecap" :"round" ,title:b.options.lang[c._titleKey],zIndex:3});d.menuClassName=a.menuClassName||(\/?)TITLE>\/svg> \/svg>
24
<\/svg><\/svg> <(\/?)TITLE>"highcharts-menu-" +b.btnCount++;c.symbol&&(g=e.symbol(c.symbol,c.symbolX-k/2,c.symbolY-k/ 2,k,k).addClass("highcharts-button-symbol" ).attr({zIndex:1}).add(d),g.attr({stroke:c.symbolStroke,fill:c.symbolFill,"stroke-width" :c.symbolStrokeWidth||1}));d.add().align(r(c,{width:d.width,x:C(c.x,b.buttonOffset)}),!0,"spacingBox" );b.buttonOffset+=(d.width+c.buttonSpacing)*("right" ===c.align?-1:1);b.exportSVGElements.push(d,g)}},destroyExport:function (a){var b=a?a.target:this ;a=b.exportSVGElements;var e=b.exportDivElements,(\/?)TITLE>\/svg> \/svg>
25
<\/svg><\/svg> <(\/?)TITLE>c=b.exportEvents,f;a&&(h(a,function (a,c){a&&(a.onclick=a.ontouchstart=null ,f="cache-" +a.menuClassName,b[f]&&delete b[f],b.exportSVGElements[c]=a.destroy())}),a.length=0);e&&(h(e,function (a,c){clearTimeout(a.hideTimer);F(a,"mouseleave" );b.exportDivElements[c]=a.onmouseout=a.onmouseover=a.ontouchstart=a.onclick=null ;B(a)}),e.length=0);c&&(h(c,function (a){a()}),c.length=0)}});H.menu=function (a,b,e,c){return ["M" ,a,b+2.5,"L" ,a+e,b+2.5,"M" ,a,b+c/2+.5,"L",a+e,b+c/ 2+.5,"M" ,a,b+c-1.5,"L" ,a+e,b+c-1.5]};A.prototype.renderExporting=(\/?)TITLE>\/svg> \/svg>
26
<\/svg><\/svg> <(\/?)TITLE>function (){var a,b=this .options.exporting,e=b.buttons,c=this .isDirtyExporting||!this .exportSVGElements;this .buttonOffset=0;this .isDirtyExporting&&this .destroyExport();if (c&&!1!==b.enabled){this .exportEvents=[];for (a in e)this .addButton(e[a]);this .isDirtyExporting=!1}w(this ,"destroy" ,this .destroyExport)};A.prototype.callbacks.push(function (a){a.renderExporting();w(a,"redraw" ,a.renderExporting);h(["exporting" ,"navigation" ],function (b){a[b]={update:function (e,c){a.isDirtyExporting=!0;p(!0,a.options[b],(\/?)TITLE>\/svg> \/svg>
27
<\/svg><\/svg> <(\/?)TITLE>e);C(c,!0)&&a.redraw()}}})})})(k)});(\/?)TITLE>\/svg> \/svg>