{"version":3,"file":"plotly_renderers.js","sources":["plotly_renderers.coffee"],"names":[],"mappings":"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","sourcesContent":["callWithJQuery = (pivotModule) ->\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\n pivotModule require(\"jquery\"), require(\"plotly.js\")\n else if typeof define is \"function\" and define.amd # AMD\n define [\"jquery\", \"plotly.js\"], pivotModule\n # Plain browser env\n else\n pivotModule jQuery, Plotly\n\ncallWithJQuery ($, Plotly) ->\n\n makePlotlyChart = (traceOptions = {}, layoutOptions = {}, transpose = false) ->\n (pivotData, opts) ->\n defaults =\n localeStrings: {vs: \"vs\", by: \"by\"}\n plotly: {}\n plotlyConfig: {}\n\n opts = $.extend(true, {}, defaults, opts)\n\n rowKeys = pivotData.getRowKeys()\n colKeys = pivotData.getColKeys()\n traceKeys = if transpose then colKeys else rowKeys\n traceKeys.push([]) if traceKeys.length == 0\n datumKeys = if transpose then rowKeys else colKeys\n datumKeys.push([]) if datumKeys.length == 0\n\n fullAggName = pivotData.aggregatorName\n if pivotData.valAttrs.length\n fullAggName += \"(#{pivotData.valAttrs.join(\", \")})\"\n\n data = traceKeys.map (traceKey) ->\n values = []\n labels = []\n for datumKey in datumKeys\n val = parseFloat(pivotData.getAggregator(\n if transpose then datumKey else traceKey,\n if transpose then traceKey else datumKey\n ).value())\n values.push(if isFinite(val) then val else null)\n labels.push(datumKey.join('-') || ' ')\n\n trace = {name: traceKey.join('-') || fullAggName}\n if traceOptions.type == \"pie\"\n trace.values = values\n trace.labels = if labels.length > 1 then labels else [fullAggName]\n else\n trace.x = if transpose then values else labels\n trace.y = if transpose then labels else values\n return $.extend(trace, traceOptions)\n\n if transpose\n hAxisTitle = pivotData.rowAttrs.join(\"-\")\n groupByTitle = pivotData.colAttrs.join(\"-\")\n else\n hAxisTitle = pivotData.colAttrs.join(\"-\")\n groupByTitle = pivotData.rowAttrs.join(\"-\")\n titleText = fullAggName\n titleText += \" #{opts.localeStrings.vs} #{hAxisTitle}\" if hAxisTitle != \"\"\n titleText += \" #{opts.localeStrings.by} #{groupByTitle}\" if groupByTitle != \"\"\n\n layout =\n title: titleText\n hovermode: 'closest'\n width: window.innerWidth / 1.4\n height: window.innerHeight / 1.4 - 50\n\n if traceOptions.type == 'pie'\n columns = Math.ceil(Math.sqrt(data.length))\n rows = Math.ceil(data.length / columns)\n layout.grid = {columns, rows}\n for i, d of data\n d.domain = {\n row: Math.floor(i / columns),\n column: i - columns * Math.floor(i / columns),\n }\n if data.length > 1\n d.title = d.name\n layout.showlegend = false if data[0].labels.length == 1\n else\n layout.xaxis =\n title: if transpose then fullAggName else null\n automargin: true\n layout.yaxis =\n title: if transpose then null else fullAggName\n automargin: true\n\n\n result = $(\"
\").appendTo $(\"body\")\n Plotly.newPlot(result[0], data, $.extend(layout, layoutOptions, opts.plotly), opts.plotlyConfig)\n return result.detach()\n\n makePlotlyScatterChart = -> (pivotData, opts) ->\n defaults =\n localeStrings: {vs: \"vs\", by: \"by\"}\n plotly: {}\n plotlyConfig: {}\n\n opts = $.extend(true, {}, defaults, opts)\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 data = {x: [], y: [], text: [], type: 'scatter', mode: 'markers'}\n\n for rowKey in rowKeys\n for colKey in colKeys\n v = pivotData.getAggregator(rowKey, colKey).value()\n if v?\n data.x.push(colKey.join('-'))\n data.y.push(rowKey.join('-'))\n data.text.push(v)\n\n layout = {\n title: pivotData.rowAttrs.join(\"-\") + ' vs ' + pivotData.colAttrs.join(\"-\")\n hovermode: 'closest',\n xaxis: {title: pivotData.colAttrs.join('-'), automargin: true},\n yaxis: {title: pivotData.rowAttrs.join('-'), automargin: true},\n width: window.innerWidth / 1.5,\n height: window.innerHeight / 1.4 - 50\n }\n\n renderArea = $(\"
\", style: \"display:none;\").appendTo $(\"body\")\n result = $(\"
\").appendTo renderArea\n Plotly.newPlot(result[0], [data], $.extend(layout, opts.plotly), opts.plotlyConfig)\n result.detach()\n renderArea.remove()\n return result\n\n $.pivotUtilities.plotly_renderers =\n \"Horizontal Bar Chart\": makePlotlyChart({type: 'bar', orientation: 'h'},\n {barmode: 'group'}, true)\n \"Horizontal Stacked Bar Chart\": makePlotlyChart({type: 'bar', orientation: 'h'},\n {barmode: 'relative'}, true)\n \"Bar Chart\": makePlotlyChart({type: 'bar'}, {barmode: 'group'})\n \"Stacked Bar Chart\": makePlotlyChart({type: 'bar'}, {barmode: 'relative'})\n \"Line Chart\": makePlotlyChart()\n \"Area Chart\": makePlotlyChart({stackgroup: 1})\n \"Scatter Chart\": makePlotlyScatterChart()\n 'Multiple Pie Chart': makePlotlyChart(\n {type: 'pie', scalegroup: 1, hoverinfo: 'label+value', textinfo: 'none'},\n {}, true)\n"]}