{"version":3,"sources":["/source/d3_renderers.coffee","d3_renderers.min.js"],"names":["callWithJQuery","pivotModule","exports","module","require","define","amd","jQuery","d3","$","pivotUtilities","d3_renderers","Treemap","pivotData","opts","addToTree","color","defaults","height","i","len","ref","result","rowKey","tree","treemap","value","width","localeStrings","window","extend","css","name","children","path","child","newChild","x","length","shift","push","getRowKeys","getAggregator","scale","category10","layout","size","sticky","d","select","append","style","datum","selectAll","data","padding","nodes","enter","attr","text","call","this","y","Math","max","dx","dy"],"mappings":"CAAA,WAAA,GAAAA,IAAAA,EAAiB,SAACC,GACd,MAAqB,gBAAlBC,UAAgD,gBAAjBC,QAC9BF,EAAYG,QAAQ,UAAWA,QAAQ,OAClB,kBAAjBC,SAAgCA,OAAOC,IAC3CD,QAAQ,SAAU,MAAOJ,GAGzBA,EAAYM,OAAQC,MAEb,SAACC,EAAGD,GCKf,MDHAC,GAAEC,eAAeC,cAAeC,QAAS,SAACC,EAAWC,GACjD,GAAAC,GAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,CAyBA,KAzBAV,GACIW,iBACApB,IACImB,MAAO,WCMT,MDNYlB,GAAEoB,QAAQF,QAAU,KAC9BT,OAAQ,WCQV,MDRaT,GAAEoB,QAAQX,SAAW,OAExCJ,EAAOL,EAAEqB,QAAO,KAAUb,EAAUH,GAGpCQ,EAASb,EAAE,SAASsB,KAAIJ,MAAO,OAAQT,OAAQ,SAE/CM,GAAOQ,KAAM,MAAOC,aACpBlB,EAAY,SAACS,EAAMU,EAAMR,GACrB,GAAAS,GAAAhB,EAAAC,EAAAgB,EAAAf,EAAAgB,CAAA,IAAkB,IAAfH,EAAKI,OAEJ,YADAd,EAAKE,MAAQA,EAIjB,KCamB,MAAjBF,EAAKS,WDfPT,EAAKS,aACLI,EAAIH,EAAKK,QACTlB,EAAAG,EAAAS,SAAAd,EAAA,EAAAC,EAAAC,EAAAiB,OAAAlB,EAAAD,EAAAA,ICoBA,GADAgB,EAAQd,EAAIF,GDnBoBgB,EAAMH,OAAQK,EAE1C,WADAtB,GAAUoB,EAAOD,EAAMR,EC6B7B,OD3BEU,IAAWJ,KAAMK,GACjBtB,EAAUqB,EAAUF,EAAMR,GAC1BF,EAAKS,SAASO,KAAKJ,IAEvBf,EAAAR,EAAA4B,aAAAtB,EAAA,EAAAC,EAAAC,EAAAiB,OAAAlB,EAAAD,EAAAA,IC2BEI,EAASF,EAAIF,GD1BXO,EAAQb,EAAU6B,cAAcnB,MAAYG,QACzC,MAAAA,GACCX,EAAUS,EAAMD,EAAQG,EA6BhC,OA3BAV,GAAQR,EAAGmC,MAAMC,aACjBjB,EAAQb,EAAKN,GAAGmB,QAChBT,EAASJ,EAAKN,GAAGU,SAEjBO,EAAUjB,EAAGqC,OAAOpB,UACfqB,MAAMnB,EAAOT,IACb6B,QAAO,GACPrB,MAAO,SAACsB,GCyBX,MDzBiBA,GAAEF,OAErBtC,EAAGyC,OAAO3B,EAAO,IACZ4B,OAAO,OACHC,MAAM,WAAY,YAClBA,MAAM,QAASxB,EAAQ,MACvBwB,MAAM,SAAUjC,EAAS,MAC7BkC,MAAM5B,GAAM6B,UAAU,SAClBC,KAAK7B,EAAQ8B,SAAS,GAAG,EAAE,EAAE,IAAI7B,MAAO,SAACsB,GCoBhD,MDpBsDA,GAAEtB,QAAQ8B,OAC7DC,QAAQP,OAAO,OACfQ,KAAK,QAAS,QACdP,MAAM,aAAc,SAACH,GAAM,MAAG,OAAAA,EAAAf,SAAiB,YAAiBjB,EAAMgC,EAAEhB,QACxE2B,KAAM,SAACX,GCwBV,MDxBgBA,GAAEhB,OACf4B,KAAK,WACEC,KAAKV,MAAM,OAAS,SAACH,GCyB7B,MDzBmCA,GAAEX,EAAE,OAC1Bc,MAAM,MAAS,SAACH,GC0B7B,MD1BmCA,GAAEc,EAAE,OAC1BX,MAAM,QAAS,SAACH,GC2B7B,MD3BmCe,MAAKC,IAAI,EAAGhB,EAAEiB,GAAK,GAAG,OAC5Cd,MAAM,SAAS,SAACH,GC4B7B,MD5BmCe,MAAKC,IAAI,EAAGhB,EAAEkB,GAAK,GAAG,SAGtD5C,QCiCZsC,KAAKC","file":"d3_renderers.min.js","sourcesContent":["callWithJQuery = (pivotModule) ->\n    if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n        pivotModule require(\"jquery\"), require(\"d3\")\n    else if typeof define is \"function\" and define.amd # AMD\n        define [\"jquery\", \"d3\"], pivotModule\n    # Plain browser env\n    else\n        pivotModule jQuery, d3\n\ncallWithJQuery ($, d3) ->\n\n    $.pivotUtilities.d3_renderers = Treemap: (pivotData, opts) ->\n        defaults =\n            localeStrings: {}\n            d3:\n                width: -> $(window).width() / 1.4\n                height: -> $(window).height() / 1.4\n\n        opts = $.extend(true, {}, defaults, opts)\n\n\n        result = $(\"<div>\").css(width: \"100%\", height: \"100%\")\n\n        tree = name: \"All\", children: []\n        addToTree = (tree, path, value) ->\n            if path.length == 0\n                tree.value = value\n                return\n            tree.children ?= []\n            x = path.shift()\n            for child in tree.children when child.name == x\n                addToTree(child, path, value)\n                return\n            newChild = name: x\n            addToTree(newChild, path, value)\n            tree.children.push newChild\n\n        for rowKey in pivotData.getRowKeys()\n            value = pivotData.getAggregator(rowKey, []).value()\n            if value?\n                addToTree(tree, rowKey, value)\n\n        color = d3.scale.category10()\n        width = opts.d3.width()\n        height = opts.d3.height()\n\n        treemap = d3.layout.treemap()\n            .size([width, height])\n            .sticky(true)\n            .value( (d) -> d.size )\n\n        d3.select(result[0])\n            .append(\"div\")\n                .style(\"position\", \"relative\")\n                .style(\"width\", width + \"px\")\n                .style(\"height\", height + \"px\")\n            .datum(tree).selectAll(\".node\")\n                .data(treemap.padding([15,0,0,0]).value( (d) -> d.value ).nodes)\n            .enter().append(\"div\")\n            .attr(\"class\", \"node\")\n            .style(\"background\", (d) -> if d.children? then \"lightgrey\" else color(d.name) )\n            .text( (d) -> d.name )\n            .call ->\n                    this.style(\"left\",  (d) -> d.x+\"px\" )\n                        .style(\"top\",   (d) -> d.y+\"px\" )\n                        .style(\"width\", (d) -> Math.max(0, d.dx - 1)+\"px\" )\n                        .style(\"height\",(d) -> Math.max(0, d.dy - 1)+\"px\" )\n                    return\n\n        return result\n\n\n\n","(function(){var e;(e=function(e){return\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"jquery\"),require(\"d3\")):\"function\"==typeof define&&define.amd?define([\"jquery\",\"d3\"],e):e(jQuery,d3)})(function(e,t){return e.pivotUtilities.d3_renderers={Treemap:function(n,i){var r,u,l,d,o,a,c,h,f,s,p,y,g;for(l={localeStrings:{},d3:{width:function(){return e(window).width()/1.4},height:function(){return e(window).height()/1.4}}},i=e.extend(!0,{},l,i),h=e(\"<div>\").css({width:\"100%\",height:\"100%\"}),s={name:\"All\",children:[]},r=function(e,t,n){var i,u,l,d,o,a;if(0===t.length)return void(e.value=n);for(null==e.children&&(e.children=[]),a=t.shift(),o=e.children,u=0,l=o.length;l>u;u++)if(i=o[u],i.name===a)return void r(i,t,n);return d={name:a},r(d,t,n),e.children.push(d)},c=n.getRowKeys(),o=0,a=c.length;a>o;o++)f=c[o],y=n.getAggregator(f,[]).value(),null!=y&&r(s,f,y);return u=t.scale.category10(),g=i.d3.width(),d=i.d3.height(),p=t.layout.treemap().size([g,d]).sticky(!0).value(function(e){return e.size}),t.select(h[0]).append(\"div\").style(\"position\",\"relative\").style(\"width\",g+\"px\").style(\"height\",d+\"px\").datum(s).selectAll(\".node\").data(p.padding([15,0,0,0]).value(function(e){return e.value}).nodes).enter().append(\"div\").attr(\"class\",\"node\").style(\"background\",function(e){return null!=e.children?\"lightgrey\":u(e.name)}).text(function(e){return e.name}).call(function(){this.style(\"left\",function(e){return e.x+\"px\"}).style(\"top\",function(e){return e.y+\"px\"}).style(\"width\",function(e){return Math.max(0,e.dx-1)+\"px\"}).style(\"height\",function(e){return Math.max(0,e.dy-1)+\"px\"})}),h}}})}).call(this);\n//# sourceMappingURL=d3_renderers.min.js.map"],"sourceRoot":"/source/"}