You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2 lines
46 KiB

9 years ago
AmCharts.translations["export"]||(AmCharts.translations["export"]={}),AmCharts.translations["export"].en||(AmCharts.translations["export"].en={"fallback.save.text":"CTRL + C to copy the data into the clipboard.","fallback.save.image":"Rightclick -> Save picture as... to save the image.","capturing.delayed.menu.label":"{{duration}}","capturing.delayed.menu.title":"Click to cancel","menu.label.print":"Print","menu.label.undo":"Undo","menu.label.redo":"Redo","menu.label.cancel":"Cancel","menu.label.save.image":"Download as ...","menu.label.save.data":"Save as ...","menu.label.draw":"Annotate ...","menu.label.draw.change":"Change ...","menu.label.draw.add":"Add ...","menu.label.draw.shapes":"Shape ...","menu.label.draw.colors":"Color ...","menu.label.draw.widths":"Size ...","menu.label.draw.opacities":"Opacity ...","menu.label.draw.text":"Text","menu.label.draw.modes":"Mode ...","menu.label.draw.modes.pencil":"Pencil","menu.label.draw.modes.line":"Line","menu.label.draw.modes.arrow":"Arrow"}),function(){AmCharts["export"]=function(a,b){var c={name:"export",version:"1.4.20",libs:{async:!0,autoLoad:!0,reload:!1,resources:[{"pdfmake/pdfmake.js":["pdfmake/vfs_fonts.js"],"jszip/jszip.js":["xlsx/xlsx.js"]},"fabric.js/fabric.js","FileSaver.js/FileSaver.js"],namespaces:{"pdfmake.js":"pdfMake","jszip.js":"JSZip","xlsx.js":"XLSX","fabric.js":"fabric","FileSaver.js":"saveAs"}},config:{},setup:{chart:a,hasBlob:!1,wrapper:!1},drawing:{enabled:!1,undos:[],redos:[],buffer:{position:{x1:0,y1:0,x2:0,y2:0,xD:0,yD:0}},handler:{undo:function(a,b){var d=c.drawing.undos.pop();if(d){d.selectable=!0,c.drawing.redos.push(d),"added"==d.action&&c.setup.fabric.remove(d.target);var e=JSON.parse(d.state);d.target.set(e),d.target instanceof fabric.Group&&c.drawing.handler.change({color:e.cfg.color,width:e.cfg.width,opacity:e.cfg.opacity},!0,d.target),c.setup.fabric.renderAll(),d.state!=d.target.recentState||b||c.drawing.handler.undo(d,!0)}},redo:function(a,b){var d=c.drawing.redos.pop();if(d){d.selectable=!0,c.drawing.undos.push(d),"added"==d.action&&c.setup.fabric.add(d.target);var e=JSON.parse(d.state);d.target.recentState=d.state,d.target.set(e),d.target instanceof fabric.Group&&c.drawing.handler.change({color:e.cfg.color,width:e.cfg.width,opacity:e.cfg.opacity},!0,d.target),c.setup.fabric.renderAll(),"addified"==d.action&&c.drawing.handler.redo()}},done:function(a){c.drawing.buffer.enabled=!1,c.drawing.undos=[],c.drawing.redos=[],c.createMenu(c.config.menu),c.setup.fabric.deactivateAll(),c.setup.wrapper&&(c.setup.chart.containerDiv.removeChild(c.setup.wrapper),c.setup.wrapper=!1)},add:function(a){var b=c.deepMerge({top:c.setup.fabric.height/2,left:c.setup.fabric.width/2},a||{}),d=-1!=b.url.indexOf(".svg")?fabric.loadSVGFromURL:fabric.Image.fromURL;d(b.url,function(a,d){var e=void 0!==d?fabric.util.groupSVGElements(a,d):a,f=!1;(e.height>c.setup.fabric.height||e.width>c.setup.fabric.width)&&(f=c.setup.fabric.height/2/e.height),b.top>c.setup.fabric.height&&(b.top=c.setup.fabric.height/2),b.left>c.setup.fabric.width&&(b.left=c.setup.fabric.width/2),e.set({originX:"center",originY:"center",top:b.top,left:b.left,width:f?e.width*f:e.width,height:f?e.height*f:e.height,fill:c.drawing.color}),c.setup.fabric.add(e)})},change:function(a,b,d){var f,g,h,e=c.deepMerge({},a||{}),i=d||c.drawing.buffer.target,j=i?i._objects?i._objects:[i]:null;if(e.mode&&(c.drawing.mode=e.mode),e.width&&(c.drawing.width=e.width,c.drawing.fontSize=3*e.width),e.fontSize&&(c.drawing.fontSize=e.fontSize),e.color&&(c.drawing.color=e.color),e.opacity&&(c.drawing.opacity=e.opacity),h=new fabric.Color(c.drawing.color).getSource(),h.pop(),h.push(c.drawing.opacity),c.drawing.color="rgba("+h.join()+")",c.setup.fabric.freeDrawingBrush.color=c.drawing.color,c.setup.fabric.freeDrawingBrush.width=c.drawing.width,i){for(f=JSON.parse(i.recentState).cfg,f&&(e.color=e.color||f.color,e.width=e.width||f.width,e.opacity=e.opacity||f.opacity,e.fontSize=e.fontSize||3*e.width,h=new fabric.Color(e.color).getSource(),h.pop(),h.push(e.opacity),e.color="rgba("+h.join()+")"),g=0;g<j.length;g++)j[g]instanceof fabri
return b===f?62:b===g?63:h>b?-1:h+10>b?b-h+26+26:j+26>b?b-j:i+26>b?b-i+26:void 0}function m(a){function k(a){h[j++]=a}var b,c,d,f,g,h;if(a.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var i=a.length;g="="===a.charAt(i-2)?2:"="===a.charAt(i-1)?1:0,h=new e(3*a.length/4-g),d=g>0?a.length-4:a.length;var j=0;for(b=0,c=0;d>b;b+=4,c+=3)f=l(a.charAt(b))<<18|l(a.charAt(b+1))<<12|l(a.charAt(b+2))<<6|l(a.charAt(b+3)),k((16711680&f)>>16),k((65280&f)>>8),k(255&f);return 2===g?(f=l(a.charAt(b))<<2|l(a.charAt(b+1))>>4,k(255&f)):1===g&&(f=l(a.charAt(b))<<10|l(a.charAt(b+1))<<4|l(a.charAt(b+2))>>2,k(f>>8&255),k(255&f)),h}var d=c.deepMerge({},a||{}),e="undefined"!=typeof Uint8Array?Uint8Array:Array,f="+".charCodeAt(0),g="/".charCodeAt(0),h="0".charCodeAt(0),i="a".charCodeAt(0),j="A".charCodeAt(0),k=m(d.data);return c.handleCallback(b,k),k},handleCallback:function(a){var b,d=Array();if(a&&a instanceof Function){for(b=0;b<arguments.length;b++)b>0&&d.push(arguments[b]);a.apply(c,d)}},handleBorder:function(a){if(c.config.border instanceof Object){var b=c.deepMerge(c.defaults.fabric.border,a.border||{},!0),d=new fabric.Rect;b.width=c.setup.fabric.width-b.strokeWidth,b.height=c.setup.fabric.height-b.strokeWidth,d.set(b),c.setup.fabric.add(d)}},handleDropbox:function(a){if(c.drawing.buffer.enabled)if(a.preventDefault(),a.stopPropagation(),"dragover"==a.type)c.setup.wrapper.setAttribute("class",c.setup.chart.classNamePrefix+"-export-canvas active dropbox");else if(c.setup.wrapper.setAttribute("class",c.setup.chart.classNamePrefix+"-export-canvas active"),"drop"==a.type&&a.dataTransfer.files.length)for(var b=0;b<a.dataTransfer.files.length;b++){var d=new FileReader;d.onloadend=function(b){return function(){c.drawing.handler.add({url:d.result,top:a.layerY-10*b,left:a.layerX-10*b})}}(b),d.readAsDataURL(a.dataTransfer.files[b])}},getChartData:function(a){function i(a,e,f){function g(a,c){return-1!=b.dataFields.indexOf(a)?g([a,".",c].join("")):a}a&&b.exportTitles&&"gantt"!=c.setup.chart.type&&(d=g(a,f),b.dataFieldsMap[d]=a,b.dataFields.push(d),b.titles[d]=e||d)}var d,e,f,g,b=c.deepMerge({data:[],titles:{},dateFields:[],dataFields:[],dataFieldsMap:{},exportTitles:c.config.exportTitles,exportFields:c.config.exportFields,exportSelection:c.config.exportSelection,columnNames:c.config.columnNames},a||{},!0),h=["valueField","openField","closeField","highField","lowField","xField","yField"];if(0==b.data.length)if("stock"==c.setup.chart.type){for(b.data=c.setup.chart.mainDataSet.dataProvider,i(c.setup.chart.mainDataSet.categoryField),b.dateFields.push(c.setup.chart.mainDataSet.categoryField),e=0;e<c.setup.chart.mainDataSet.fieldMappings.length;e++){var j=c.setup.chart.mainDataSet.fieldMappings[e];for(f=0;f<c.setup.chart.panels.length;f++){var k=c.setup.chart.panels[f];for(g=0;g<k.stockGraphs.length;g++){var l=k.stockGraphs[g];for(i4=0;i4<h.length;i4++)l[h[i4]]==j.toField&&i(j.fromField,l.title,h[i4])}}}for(e=0;e<c.setup.chart.comparedGraphs.length;e++){var l=c.setup.chart.comparedGraphs[e];for(f=0;f<l.dataSet.dataProvider.length;f++)for(g=0;g<l.dataSet.fieldMappings.length;g++){var j=l.dataSet.fieldMappings[g],d=l.dataSet.id+"_"+j.toField;f<b.data.length&&(b.data[f][d]=l.dataSet.dataProvider[f][j.fromField],b.titles[d]||i(d,l.dataSet.title))}}}else if("gantt"==c.setup.chart.type){i(c.setup.chart.categoryField),b.dateFields.push(c.setup.chart.categoryField);var m=c.setup.chart.segmentsField;for(e=0;e<c.setup.chart.dataProvider.length;e++){var n=c.setup.chart.dataProvider[e];if(n[m])for(f=0;f<n[m].length;f++)n[m][f][c.setup.chart.categoryField]=n[c.setup.chart.categoryField],b.data.push(n[m][f])}for(e=0;e<c.setup.chart.graphs.length;e++){var l=c.setup.chart.graphs[e];for(f=0;f<h.length;f++){var o=h[f],p=l[o];l.title;i(p,l.title,o)}}}else if(-1!=["pie","funnel"].indexOf(c.setup.chart.type))b.data=c.setup.chart.dataProvider,i(c.setup.chart.titleField),b.dateFields.push(c.setup.chart.titleField),i(c.setup.chart.valueField);else if("map"!=c.setup.chart.type)for(b.data=c.setup.chart.dataProvider,c.setup.chart.categoryAxis&&(i(c.setup.