{"version":3,"sources":["/source/c3_renderers.coffee","c3_renderers.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","$","makeC3Chart","chartOpts","pivotData","opts","agg","base","base1","base2","colKey","colKeys","columns","dataArray","datum","defaults","fullAggName","groupByTitle","h","hAxisTitle","headers","i","j","k","len","len1","len2","numCharsInHAxis","params","ref","renderArea","result","rotationAngle","row","rowHeader","rowKey","rowKeys","title","titleText","tree2","vAxisTitle","val","x","y","localeStrings","vs","by","c3","extend","size","width","window","innerWidth","height","innerHeight","type","getRowKeys","length","push","getColKeys","results","join","aggregatorName","valAttrs","colAttrs","rowAttrs","tree","parseFloat","format","value","getAggregator","isNumeric","toPrecision","toFixed","style","text","axis","label","tick","rotate","multiline","data","tooltip","grouped","color","pattern","fit","json","keys","legend","show","name","a","b","c","d","categories","stacked","groups","l","len3","appendTo","bindto","generate","detach","remove","append","pivotUtilities","c3_renderers","Line Chart","Bar Chart","Stacked Bar Chart","Area Chart","Scatter Chart","call","this"],"mappings":"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","file":"c3_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    makeC3Chart = (chartOpts = {}) -> (pivotData, opts) ->\n        defaults =\n            localeStrings:\n                vs: \"vs\"\n                by: \"by\"\n            c3: {}\n\n        opts = $.extend true, defaults, opts\n        opts.c3.size ?= {}\n        opts.c3.size.width ?= window.innerWidth / 1.4\n        opts.c3.size.height ?= window.innerHeight / 1.4 - 50\n        chartOpts.type ?= \"line\"\n\n        rowKeys = pivotData.getRowKeys()\n        rowKeys.push [] if rowKeys.length == 0\n        colKeys = pivotData.getColKeys()\n        colKeys.push [] if colKeys.length == 0\n\n        headers = (h.join(\"-\") for h in colKeys)\n        rotationAngle = 0\n\n        fullAggName = pivotData.aggregatorName \n        if pivotData.valAttrs.length\n            fullAggName += \"(#{pivotData.valAttrs.join(\", \")})\"\n\n        if chartOpts.type == \"scatter\"\n            dataArray = []\n            hAxisTitle = pivotData.colAttrs.join(\"-\")\n            vAxisTitle = pivotData.rowAttrs.join(\"-\")\n            for y, tree2 of pivotData.tree\n                for x, agg of tree2\n                    datum = {}\n                    datum[hAxisTitle] = parseFloat(x)\n                    datum[vAxisTitle] = parseFloat(y)\n                    datum[\"tooltip\"] = agg.format(agg.value())\n                    dataArray.push datum\n        else\n            numCharsInHAxis = 0\n            for x in headers\n                numCharsInHAxis += x.length\n            if numCharsInHAxis > 50\n                rotationAngle = 45\n\n            columns = []\n            for rowKey in rowKeys\n                rowHeader = rowKey.join(\"-\")\n                row = [if rowHeader == \"\" then pivotData.aggregatorName else rowHeader]\n                for colKey in colKeys\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\n                    else row.push null\n                columns.push row\n\n            vAxisTitle = pivotData.aggregatorName+ \n                if pivotData.valAttrs.length then \"(#{pivotData.valAttrs.join(\", \")})\" else \"\"\n            hAxisTitle = pivotData.colAttrs.join(\"-\")\n\n        titleText = fullAggName\n        titleText += \" #{opts.localeStrings.vs} #{hAxisTitle}\" if hAxisTitle != \"\"\n        groupByTitle = pivotData.rowAttrs.join(\"-\")\n        titleText += \" #{opts.localeStrings.by} #{groupByTitle}\" if groupByTitle != \"\"\n        title = $(\"<p>\", {style: \"text-align: center; font-weight: bold\"})\n        title.text(titleText)\n\n        params = \n            axis: \n                y:\n                    label: vAxisTitle\n                x:\n                    label: hAxisTitle\n                    tick:\n                        rotate: rotationAngle\n                        multiline: false\n            data: \n                type: chartOpts.type\n            tooltip:\n                grouped: false\n            color: \n                pattern: [ \"#3366cc\", \"#dc3912\", \"#ff9900\", \"#109618\",\n                           \"#990099\", \"#0099c6\", \"#dd4477\", \"#66aa00\",\n                           \"#b82e2e\", \"#316395\", \"#994499\", \"#22aa99\",\n                           \"#aaaa11\", \"#6633cc\", \"#e67300\", \"#8b0707\",\n                           \"#651067\", \"#329262\", \"#5574a6\", \"#3b3eac\" ]\n\n\n        $.extend params, opts.c3\n\n        if chartOpts.type == \"scatter\"\n            params.data.x = hAxisTitle\n            params.axis.x.tick = fit: false\n            params.data.json = dataArray\n            params.data.keys = value: [hAxisTitle,vAxisTitle]\n            params.legend = show: false \n            params.tooltip.format =  \n                title: -> fullAggName\n                name: -> \"\"\n                value: (a,b,c,d) -> dataArray[d].tooltip\n        else\n            params.axis.x.type= 'category'\n            params.axis.x.categories = headers\n            params.data.columns = columns\n\n\n        if chartOpts.stacked?\n            params.data.groups = [x.join(\"-\") for x in rowKeys]\n        renderArea = $(\"<div>\", style: \"display:none;\").appendTo $(\"body\")\n        result = $(\"<div>\").appendTo renderArea\n        params.bindto = result[0]\n        c3.generate params\n        result.detach()\n        renderArea.remove()\n        return $(\"<div>\").append title, result\n\n    $.pivotUtilities.c3_renderers = \n        \"Line Chart\": makeC3Chart()\n        \"Bar Chart\": makeC3Chart(type: \"bar\")\n        \"Stacked Bar Chart\": makeC3Chart(type: \"bar\", stacked: true)\n        \"Area Chart\": makeC3Chart(type: \"area\", stacked: true)\n        \"Scatter Chart\": makeC3Chart(type: \"scatter\")\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){return null==e&&(e={}),function(r,n){var a,o,i,l,s,u,c,p,g,d,h,f,y,v,j,x,b,m,w,A,k,C,F,S,z,N,q,B,K,T,H,L,P,Q,R,U,W,_;if(d={localeStrings:{vs:\"vs\",by:\"by\"},c3:{}},n=t.extend(!0,d,n),null==(o=n.c3).size&&(o.size={}),null==(i=n.c3.size).width&&(i.width=window.innerWidth/1.4),null==(l=n.c3.size).height&&(l.height=window.innerHeight/1.4-50),null==e.type&&(e.type=\"line\"),H=r.getRowKeys(),0===H.length&&H.push([]),u=r.getColKeys(),0===u.length&&u.push([]),j=function(){var t,e,r;for(r=[],t=0,e=u.length;e>t;t++)y=u[t],r.push(y.join(\"-\"));return r}(),q=0,h=r.aggregatorName,r.valAttrs.length&&(h+=\"(\"+r.valAttrs.join(\", \")+\")\"),\"scatter\"===e.type){p=[],v=r.colAttrs.join(\"-\"),R=r.rowAttrs.join(\"-\"),S=r.tree;for(_ in S){Q=S[_];for(W in Q)a=Q[W],g={},g[v]=parseFloat(W),g[R]=parseFloat(_),g.tooltip=a.format(a.value()),p.push(g)}}else{for(C=0,x=0,w=j.length;w>x;x++)W=j[x],C+=W.length;for(C>50&&(q=45),c=[],b=0,A=H.length;A>b;b++){for(T=H[b],K=T.join(\"-\"),B=[\"\"===K?r.aggregatorName:K],m=0,k=u.length;k>m;m++)s=u[m],a=r.getAggregator(T,s),null!=a.value()?(U=a.value(),B.push(t.isNumeric(U)?1>U?parseFloat(U.toPrecision(3)):parseFloat(U.toFixed(3)):U)):B.push(null);c.push(B)}R=r.aggregatorName+(r.valAttrs.length?\"(\"+r.valAttrs.join(\", \")+\")\":\"\"),v=r.colAttrs.join(\"-\")}return P=h,\"\"!==v&&(P+=\" \"+n.localeStrings.vs+\" \"+v),f=r.rowAttrs.join(\"-\"),\"\"!==f&&(P+=\" \"+n.localeStrings.by+\" \"+f),L=t(\"<p>\",{style:\"text-align: center; font-weight: bold\"}),L.text(P),F={axis:{y:{label:R},x:{label:v,tick:{rotate:q,multiline:!1}}},data:{type:e.type},tooltip:{grouped:!1}},t.extend(F,n.c3),\"scatter\"===e.type?(F.data.x=v,F.axis.x.tick={fit:!1},F.data.json=p,F.data.keys={value:[v,R]},F.legend={show:!1},F.tooltip.format={title:function(){return h},name:function(){return\"\"},value:function(t,e,r,n){return p[n].tooltip}}):(F.axis.x.type=\"category\",F.axis.x.categories=j,F.data.columns=c),null!=e.stacked&&(F.data.groups=[function(){var t,e,r;for(r=[],t=0,e=H.length;e>t;t++)W=H[t],r.push(W.join(\"-\"));return r}()]),z=t(\"<div>\",{style:\"display:none;\"}).appendTo(t(\"body\")),N=t(\"<div>\").appendTo(z),F.bindto=N[0],c3.generate(F),N.detach(),z.remove(),t(\"<div>\").append(L,N)}},t.pivotUtilities.c3_renderers={\"Line Chart\":e(),\"Bar Chart\":e({type:\"bar\"}),\"Stacked Bar Chart\":e({type:\"bar\",stacked:!0}),\"Area Chart\":e({type:\"area\",stacked:!0}),\"Scatter Chart\":e({type:\"scatter\"})}})}).call(this);\n//# sourceMappingURL=c3_renderers.min.js.map"],"sourceRoot":"/source/"}
