(function() { var callWithJQuery; callWithJQuery = function(pivotModule) { if (typeof exports === "object" && typeof module === "object") { return pivotModule(require("jquery")); } else if (typeof define === "function" && define.amd) { return define(["jquery"], pivotModule); } else { return pivotModule(jQuery); } }; callWithJQuery(function($) { var makeGoogleChart; makeGoogleChart = function(chartType, extraOptions) { return function(pivotData, opts) { var 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; defaults = { localeStrings: { vs: "vs", by: "by" }, gchart: {} }; opts = $.extend(true, {}, defaults, opts); if ((base = opts.gchart).width == null) { base.width = window.innerWidth / 1.4; } if ((base1 = opts.gchart).height == null) { base1.height = window.innerHeight / 1.4; } rowKeys = pivotData.getRowKeys(); if (rowKeys.length === 0) { rowKeys.push([]); } colKeys = pivotData.getColKeys(); if (colKeys.length === 0) { colKeys.push([]); } fullAggName = pivotData.aggregatorName; if (pivotData.valAttrs.length) { fullAggName += "(" + (pivotData.valAttrs.join(", ")) + ")"; } headers = (function() { var i, len, results; results = []; for (i = 0, len = rowKeys.length; i < len; i++) { h = rowKeys[i]; results.push(h.join("-")); } return results; })(); headers.unshift(""); numCharsInHAxis = 0; if (chartType === "ScatterChart") { dataArray = []; ref = pivotData.tree; for (y in ref) { tree2 = ref[y]; for (x in tree2) { agg = tree2[x]; dataArray.push([parseFloat(x), parseFloat(y), fullAggName + ": \n" + agg.format(agg.value())]); } } dataTable = new google.visualization.DataTable(); dataTable.addColumn('number', pivotData.colAttrs.join("-")); dataTable.addColumn('number', pivotData.rowAttrs.join("-")); dataTable.addColumn({ type: "string", role: "tooltip" }); dataTable.addRows(dataArray); hAxisTitle = pivotData.colAttrs.join("-"); vAxisTitle = pivotData.rowAttrs.join("-"); title = ""; } else { dataArray = [headers]; for (i = 0, len = colKeys.length; i < len; i++) { colKey = colKeys[i]; row = [colKey.join("-")]; numCharsInHAxis += row[0].length; for (j = 0, len1 = rowKeys.length; j < len1; j++) { rowKey = rowKeys[j]; agg = pivotData.getAggregator(rowKey, colKey); if (agg.value() != null) { val = agg.value(); if ($.isNumeric(val)) { if (val < 1) { row.push(parseFloat(val.toPrecision(3))); } else { row.push(parseFloat(val.toFixed(3))); } } else { row.push(val); } } else { row.push(null); } } dataArray.push(row); } dataTable = google.visualization.arrayToDataTable(dataArray); title = vAxisTitle = fullAggName; hAxisTitle = pivotData.colAttrs.join("-"); if (hAxisTitle !== "") { title += " " + opts.localeStrings.vs + " " + hAxisTitle; } groupByTitle = pivotData.rowAttrs.join("-"); if (groupByTitle !== "") { title += " " + opts.localeStrings.by + " " + groupByTitle; } } options = { title: title, hAxis: { title: hAxisTitle, slantedText: numCharsInHAxis > 50 }, vAxis: { title: vAxisTitle }, tooltip: { textStyle: { fontName: 'Arial', fontSize: 12 } } }; if (chartType === "ColumnChart") { options.vAxis.minValue = 0; } if (chartType === "ScatterChart") { options.legend = { position: "none" }; options.chartArea = { 'width': '80%', 'height': '80%' }; } else if (dataArray[0].length === 2 && dataArray[0][1] === "") { options.legend = { position: "none" }; } options = $.extend(true, {}, options, opts.gchart, extraOptions); result = $("