{"version":3,"sources":["/source/gchart_renderers.coffee","gchart_renderers.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","makeGoogleChart","chartType","extraOptions","pivotData","opts","agg","base","base1","colKey","colKeys","dataArray","dataTable","defaults","fullAggName","groupByTitle","h","hAxisTitle","headers","i","j","len","len1","numCharsInHAxis","options","ref","result","row","rowKey","rowKeys","title","tree2","vAxisTitle","val","wrapper","x","y","localeStrings","vs","by","gchart","extend","width","window","innerWidth","height","innerHeight","getRowKeys","length","push","getColKeys","aggregatorName","valAttrs","join","results","unshift","tree","parseFloat","format","value","google","visualization","DataTable","addColumn","colAttrs","rowAttrs","type","role","addRows","getAggregator","isNumeric","toPrecision","toFixed","arrayToDataTable","hAxis","slantedText","vAxis","tooltip","textStyle","fontName","fontSize","minValue","legend","position","chartArea","css","ChartWrapper","draw","bind","editor","ChartEditor","events","addListener","getChartWrapper","openDialog","pivotUtilities","gchart_renderers","Line Chart","Bar Chart","Stacked Bar Chart","isStacked","Area Chart","Scatter Chart","call","this"],"mappings":"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","file":"gchart_renderers.min.js","sourcesContent":["callWithJQuery = (pivotModule) ->\n    if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n        pivotModule require(\"jquery\")\n    else if typeof define is \"function\" and define.amd # AMD\n        define [\"jquery\"], pivotModule\n    # Plain browser env\n    else\n        pivotModule jQuery\n\ncallWithJQuery ($) ->\n\n    makeGoogleChart = (chartType, extraOptions) -> (pivotData, opts) ->\n        defaults =\n            localeStrings:\n                vs: \"vs\"\n                by: \"by\"\n            gchart: {}\n\n        opts = $.extend(true, {}, defaults, opts)\n        opts.gchart.width ?= window.innerWidth / 1.4\n        opts.gchart.height ?= window.innerHeight / 1.4\n\n        rowKeys = pivotData.getRowKeys()\n        rowKeys.push [] if rowKeys.length == 0\n        colKeys = pivotData.getColKeys()\n        colKeys.push [] if colKeys.length == 0\n        fullAggName = pivotData.aggregatorName\n        if pivotData.valAttrs.length\n            fullAggName += \"(#{pivotData.valAttrs.join(\", \")})\"\n        headers = (h.join(\"-\") for h in rowKeys)\n        headers.unshift \"\"\n\n        numCharsInHAxis = 0\n        if chartType == \"ScatterChart\"\n            dataArray = []\n            for y, tree2 of pivotData.tree\n                for x, agg of tree2\n                     dataArray.push [\n                        parseFloat(x),\n                        parseFloat(y),\n                        fullAggName+\": \\n\"+agg.format(agg.value())\n                        ]\n            dataTable = new google.visualization.DataTable()\n            dataTable.addColumn 'number', pivotData.colAttrs.join(\"-\")\n            dataTable.addColumn 'number', pivotData.rowAttrs.join(\"-\")\n            dataTable.addColumn type: \"string\", role: \"tooltip\"\n            dataTable.addRows dataArray\n            hAxisTitle = pivotData.colAttrs.join(\"-\")\n            vAxisTitle = pivotData.rowAttrs.join(\"-\")\n            title = \"\"\n        else\n            dataArray = [headers]\n            for colKey in colKeys\n                row = [colKey.join(\"-\")]\n                numCharsInHAxis += row[0].length\n                for rowKey in rowKeys\n                    agg = pivotData.getAggregator(rowKey, colKey)\n                    if agg.value()?\n                        val = agg.value()\n                        if $.isNumeric val\n                            if val < 1\n                                row.push parseFloat(val.toPrecision(3))\n                            else\n                                row.push parseFloat(val.toFixed(3))\n                        else\n                            row.push val\n                    else row.push null\n                dataArray.push row\n\n            dataTable = google.visualization.arrayToDataTable(dataArray)\n\n            title = vAxisTitle = fullAggName\n            hAxisTitle = pivotData.colAttrs.join(\"-\")\n            title += \" #{opts.localeStrings.vs} #{hAxisTitle}\" if hAxisTitle != \"\"\n            groupByTitle = pivotData.rowAttrs.join(\"-\")\n            title += \" #{opts.localeStrings.by} #{groupByTitle}\" if groupByTitle != \"\"\n\n        options =\n            title: title\n            hAxis: {title: hAxisTitle, slantedText: numCharsInHAxis > 50}\n            vAxis: {title: vAxisTitle}\n            tooltip: { textStyle: { fontName: 'Arial', fontSize: 12 } }\n\n        if chartType == \"ColumnChart\"\n            options.vAxis.minValue = 0\n\n        if chartType == \"ScatterChart\"\n            options.legend = position: \"none\"\n            options.chartArea = {'width': '80%', 'height': '80%'}\n\n        else if dataArray[0].length == 2 and dataArray[0][1] ==  \"\"\n            options.legend = position: \"none\"\n\n        options = $.extend(true, {}, options, opts.gchart, extraOptions)\n\n        result = $(\"<div>\").css(width: \"100%\", height: \"100%\")\n        wrapper = new google.visualization.ChartWrapper {dataTable, chartType, options}\n        wrapper.draw(result[0])\n        result.bind \"dblclick\", ->\n            editor = new google.visualization.ChartEditor()\n            google.visualization.events.addListener editor, 'ok', ->\n                editor.getChartWrapper().draw(result[0])\n            editor.openDialog(wrapper)\n        return result\n\n    $.pivotUtilities.gchart_renderers =\n        \"Line Chart\": makeGoogleChart(\"LineChart\")\n        \"Bar Chart\": makeGoogleChart(\"ColumnChart\")\n        \"Stacked Bar Chart\": makeGoogleChart(\"ColumnChart\", isStacked: true)\n        \"Area Chart\": makeGoogleChart(\"AreaChart\", isStacked: true)\n        \"Scatter Chart\": makeGoogleChart(\"ScatterChart\")\n","(function(){var t;(t=function(t){return\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"jquery\")):\"function\"==typeof define&&define.amd?define([\"jquery\"],t):t(jQuery)})(function(t){var e;return e=function(e,r){return function(n,a){var o,i,l,h,s,u,g,d,c,p,f,v,C,w,A,m,y,j,b,S,x,z,T,k,F,q,D,L,N,W,B;if(d={localeStrings:{vs:\"vs\",by:\"by\"},gchart:{}},a=t.extend(!0,{},d,a),null==(i=a.gchart).width&&(i.width=window.innerWidth/1.4),null==(l=a.gchart).height&&(l.height=window.innerHeight/1.4),k=n.getRowKeys(),0===k.length&&k.push([]),s=n.getColKeys(),0===s.length&&s.push([]),c=n.aggregatorName,n.valAttrs.length&&(c+=\"(\"+n.valAttrs.join(\", \")+\")\"),C=function(){var t,e,r;for(r=[],t=0,e=k.length;e>t;t++)f=k[t],r.push(f.join(\"-\"));return r}(),C.unshift(\"\"),j=0,\"ScatterChart\"===e){u=[],S=n.tree;for(B in S){q=S[B];for(W in q)o=q[W],u.push([parseFloat(W),parseFloat(B),c+\": \\n\"+o.format(o.value())])}g=new google.visualization.DataTable,g.addColumn(\"number\",n.colAttrs.join(\"-\")),g.addColumn(\"number\",n.rowAttrs.join(\"-\")),g.addColumn({type:\"string\",role:\"tooltip\"}),g.addRows(u),v=n.colAttrs.join(\"-\"),D=n.rowAttrs.join(\"-\"),F=\"\"}else{for(u=[C],w=0,m=s.length;m>w;w++){for(h=s[w],z=[h.join(\"-\")],j+=z[0].length,A=0,y=k.length;y>A;A++)T=k[A],o=n.getAggregator(T,h),null!=o.value()?(L=o.value(),z.push(t.isNumeric(L)?1>L?parseFloat(L.toPrecision(3)):parseFloat(L.toFixed(3)):L)):z.push(null);u.push(z)}g=google.visualization.arrayToDataTable(u),F=D=c,v=n.colAttrs.join(\"-\"),\"\"!==v&&(F+=\" \"+a.localeStrings.vs+\" \"+v),p=n.rowAttrs.join(\"-\"),\"\"!==p&&(F+=\" \"+a.localeStrings.by+\" \"+p)}return b={title:F,hAxis:{title:v,slantedText:j>50},vAxis:{title:D},tooltip:{textStyle:{fontName:\"Arial\",fontSize:12}}},\"ColumnChart\"===e&&(b.vAxis.minValue=0),\"ScatterChart\"===e?(b.legend={position:\"none\"},b.chartArea={width:\"80%\",height:\"80%\"}):2===u[0].length&&\"\"===u[0][1]&&(b.legend={position:\"none\"}),b=t.extend(!0,{},b,a.gchart,r),x=t(\"<div>\").css({width:\"100%\",height:\"100%\"}),N=new google.visualization.ChartWrapper({dataTable:g,chartType:e,options:b}),N.draw(x[0]),x.bind(\"dblclick\",function(){var t;return t=new google.visualization.ChartEditor,google.visualization.events.addListener(t,\"ok\",function(){return t.getChartWrapper().draw(x[0])}),t.openDialog(N)}),x}},t.pivotUtilities.gchart_renderers={\"Line Chart\":e(\"LineChart\"),\"Bar Chart\":e(\"ColumnChart\"),\"Stacked Bar Chart\":e(\"ColumnChart\",{isStacked:!0}),\"Area Chart\":e(\"AreaChart\",{isStacked:!0}),\"Scatter Chart\":e(\"ScatterChart\")}})}).call(this);\n//# sourceMappingURL=gchart_renderers.min.js.map"],"sourceRoot":"/source/"}