{"version":3,"sources":["pivot.coffee","pivot.min.js"],"names":["callWithJQuery","indexOf","item","i","l","this","length","slice","bind","fn","me","apply","arguments","hasProp","hasOwnProperty","pivotModule","exports","module","require","define","amd","jQuery","$","PivotData","addSeparators","aggregatorTemplates","aggregators","dayNamesEn","derivers","getSort","locales","mthNamesEn","naturalSort","numberFormat","pivotTableRenderer","rd","renderers","rx","rz","sortAs","usFmt","usFmtInt","usFmtPct","zeroPad","nStr","thousandsSep","decimalSep","rgx","x","x1","x2","split","test","replace","opts","defaults","digitsAfterDecimal","scaler","prefix","suffix","extend","result","isNaN","isFinite","toFixed","count","formatter","data","rowKey","colKey","push","value","format","uniques","arg","attr","uniq","record","ref","call","numInputs","sum","parseFloat","extremes","mode","val","sorter","sorters","ref1","ref2","Math","quantile","q","vals","sort","a","b","floor","ceil","runningStat","ddof","n","m","s","m_new","sqrt","sumOverSum","denom","num","sumNum","sumDenom","sumOverSumBound80","upper","sign","fractionOf","wrapped","type","selector","total","row","col","inner","getAggregator","countUnique","f","listUnique","join","max","min","first","last","median","average","stdev","tpl","Count","Count Unique Values","List Unique Values","Sum","Integer Sum","Average","Median","Sample Variance","Sample Standard Deviation","Minimum","Maximum","First","Last","Sum over Sum","80% Upper Bound","80% Lower Bound","Sum as Fraction of Total","Sum as Fraction of Rows","Sum as Fraction of Columns","Count as Fraction of Total","Count as Fraction of Rows","Count as Fraction of Columns","Table","Table Barchart","barchart","Heatmap","heatmap","Row Heatmap","Col Heatmap","en","localeStrings","renderError","computeError","uiRenderError","selectAll","selectNone","tooMany","filterResults","cancel","totals","vs","by","number","substr","bin","binWidth","dateFormat","formatString","utcOutput","mthNames","dayNames","utc","date","Date","parse","p","_this","as","bs","a1","b1","nas","nbs","String","match","shift","order","l_mapping","mapping","toLowerCase","isFunction","input","ref3","ref4","ref5","ref6","ref7","ref8","ref9","getRowKeys","getColKeys","sortKeys","arrSort","aggregator","aggregatorName","colAttrs","cols","rowAttrs","rows","valAttrs","rowOrder","colOrder","derivedAttributes","filter","tree","rowKeys","colKeys","rowTotals","colTotals","allTotal","sorted","forEachRecord","processRecord","addRecord","compactRecord","j","k","len1","results","results1","tblCols","isEmptyObject","v","isArray","each","text","Error","prototype","forEachMatchingRecord","criteria","callback","attrs","sortersArr","comparison","r","c","flatColKey","flatRowKey","len2","fromCharCode","agg","pivotUtilities","pivotData","getClickHandler","spanSize","tbody","td","th","thead","totalAggregator","tr","txt","table","clickCallback","rowValues","colValues","filters","e","document","createElement","className","arr","len","noDraw","stop","parseInt","setAttribute","appendChild","textContent","innerHTML","onclick","pivot","inputOpts","locale","localeDefaults","dataClass","renderer","rendererOptions","error","console","stack","html","hasChildNodes","removeChild","lastChild","append","pivotUI","overwrite","attrLength","attrValues","colOrderArrow","existingOpts","fn1","initialRender","len3","materializedInput","o","ordering","pivotTable","recordsProcessed","refresh","refreshDelayed","rendererControl","rowOrderArrow","shownAttributes","shownInAggregators","shownInDragDrop","tr1","tr2","uiTable","unused","unusedAttrsVerticalAutoCutoff","unusedAttrsVerticalAutoOverride","hiddenAttributes","hiddenFromAggregators","hiddenFromDragDrop","menuLimit","exclusions","inclusions","unusedAttrsVertical","autoSortUnusedAttrs","onRefresh","showUI","base","class","addClass","appendTo","attrElem","checkContainer","closeFilterBox","controls","filterItem","filterItemExcluded","finalButtons","hasExcludedItem","placeholder","triangleLink","valueCount","valueList","values","hide","accept","accept_gen","trim","accepted","real_filter","substring","find","parent","show","prop","toggleClass","removeClass","left","top","currentTarget","position","css","key_a_to_z","rowSymbol","colSymbol","next","value_a_to_z","value_z_to_a","role","prepend","inArray","rendererName","len4","newDropdown","numInputsToProcess","pivotUIOptions","pvtVals","subopts","t","u","unusedAttrsContainer","remove","not","excludedItems","inclusionsInfo","children","setTimeout","sortable","update","ui","sender","connectWith","items","scope","colorScaleGenerator","heatmapper","numCols","numRows","nonRed","round","colorScale","forEachCell","elem","barcharter","range","bBase","bgColor","wrapper","height","bottom","right","background-color","padding-left","padding-right","padding","padding-top","text-align"],"mappings":"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","file":"pivot.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 ###\n Utilities\n ###\n\n addSeparators = (nStr, thousandsSep, decimalSep) ->\n nStr += ''\n x = nStr.split('.')\n x1 = x[0]\n x2 = if x.length > 1 then decimalSep + x[1] else ''\n rgx = /(\\d+)(\\d{3})/\n x1 = x1.replace(rgx, '$1' + thousandsSep + '$2') while rgx.test(x1)\n return x1 + x2\n\n numberFormat = (opts) ->\n defaults =\n digitsAfterDecimal: 2, scaler: 1,\n thousandsSep: \",\", decimalSep: \".\"\n prefix: \"\", suffix: \"\"\n opts = $.extend({}, defaults, opts)\n (x) ->\n return \"\" if isNaN(x) or not isFinite(x)\n result = addSeparators (opts.scaler*x).toFixed(opts.digitsAfterDecimal), opts.thousandsSep, opts.decimalSep\n return \"\"+opts.prefix+result+opts.suffix\n\n #aggregator templates default to US number formatting but this is overrideable\n usFmt = numberFormat()\n usFmtInt = numberFormat(digitsAfterDecimal: 0)\n usFmtPct = numberFormat(digitsAfterDecimal:1, scaler: 100, suffix: \"%\")\n\n aggregatorTemplates =\n count: (formatter=usFmtInt) -> () -> (data, rowKey, colKey) ->\n count: 0\n push: -> @count++\n value: -> @count\n format: formatter\n\n uniques: (fn, formatter=usFmtInt) -> ([attr]) -> (data, rowKey, colKey) ->\n uniq: []\n push: (record) -> @uniq.push(record[attr]) if record[attr] not in @uniq\n value: -> fn(@uniq)\n format: formatter\n numInputs: if attr? then 0 else 1\n\n sum: (formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n sum: 0\n push: (record) -> @sum += parseFloat(record[attr]) if not isNaN parseFloat(record[attr])\n value: -> @sum\n format: formatter\n numInputs: if attr? then 0 else 1\n\n extremes: (mode, formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n val: null\n sorter: getSort(data?.sorters, attr)\n push: (record) ->\n x = record[attr]\n if mode in [\"min\", \"max\"]\n x = parseFloat(x)\n if not isNaN x then @val = Math[mode](x, @val ? x)\n if mode == \"first\" then @val = x if @sorter(x, @val ? x) <= 0\n if mode == \"last\" then @val = x if @sorter(x, @val ? x) >= 0\n value: -> @val\n format: (x) -> if isNaN(x) then x else formatter(x)\n numInputs: if attr? then 0 else 1\n\n quantile: (q, formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n vals: []\n push: (record) ->\n x = parseFloat(record[attr])\n @vals.push(x) if not isNaN(x)\n value: ->\n return null if @vals.length == 0\n @vals.sort((a,b) -> a-b)\n i = (@vals.length-1)*q\n return (@vals[Math.floor(i)] + @vals[Math.ceil(i)])/2.0\n format: formatter\n numInputs: if attr? then 0 else 1\n\n runningStat: (mode=\"mean\", ddof=1, formatter=usFmt) -> ([attr]) -> (data, rowKey, colKey) ->\n n: 0.0, m: 0.0, s: 0.0\n push: (record) ->\n x = parseFloat(record[attr])\n return if isNaN(x)\n @n += 1.0\n if @n == 1.0\n @m = x\n else\n m_new = @m + (x - @m)/@n\n @s = @s + (x - @m)*(x - m_new)\n @m = m_new\n value: ->\n if mode == \"mean\"\n return if @n == 0 then 0/0 else @m\n return 0 if @n <= ddof\n switch mode\n when \"var\" then @s/(@n-ddof)\n when \"stdev\" then Math.sqrt(@s/(@n-ddof))\n format: formatter\n numInputs: if attr? then 0 else 1\n\n sumOverSum: (formatter=usFmt) -> ([num, denom]) -> (data, rowKey, colKey) ->\n sumNum: 0\n sumDenom: 0\n push: (record) ->\n @sumNum += parseFloat(record[num]) if not isNaN parseFloat(record[num])\n @sumDenom += parseFloat(record[denom]) if not isNaN parseFloat(record[denom])\n value: -> @sumNum/@sumDenom\n format: formatter\n numInputs: if num? and denom? then 0 else 2\n\n sumOverSumBound80: (upper=true, formatter=usFmt) -> ([num, denom]) -> (data, rowKey, colKey) ->\n sumNum: 0\n sumDenom: 0\n push: (record) ->\n @sumNum += parseFloat(record[num]) if not isNaN parseFloat(record[num])\n @sumDenom += parseFloat(record[denom]) if not isNaN parseFloat(record[denom])\n value: ->\n sign = if upper then 1 else -1\n (0.821187207574908/@sumDenom + @sumNum/@sumDenom + 1.2815515655446004*sign*\n Math.sqrt(0.410593603787454/ (@sumDenom*@sumDenom) + (@sumNum*(1 - @sumNum/ @sumDenom))/ (@sumDenom*@sumDenom)))/\n (1 + 1.642374415149816/@sumDenom)\n format: formatter\n numInputs: if num? and denom? then 0 else 2\n\n fractionOf: (wrapped, type=\"total\", formatter=usFmtPct) -> (x...) -> (data, rowKey, colKey) ->\n selector: {total:[[],[]],row:[rowKey,[]],col:[[],colKey]}[type]\n inner: wrapped(x...)(data, rowKey, colKey)\n push: (record) -> @inner.push record\n format: formatter\n value: -> @inner.value() / data.getAggregator(@selector...).inner.value()\n numInputs: wrapped(x...)().numInputs\n\n aggregatorTemplates.countUnique = (f) -> aggregatorTemplates.uniques(((x) -> x.length), f)\n aggregatorTemplates.listUnique = (s) -> aggregatorTemplates.uniques(((x) -> x.sort(naturalSort).join(s)), ((x)->x))\n aggregatorTemplates.max = (f) -> aggregatorTemplates.extremes('max', f)\n aggregatorTemplates.min = (f) -> aggregatorTemplates.extremes('min', f)\n aggregatorTemplates.first = (f) -> aggregatorTemplates.extremes('first', f)\n aggregatorTemplates.last = (f) -> aggregatorTemplates.extremes('last', f)\n aggregatorTemplates.median = (f) -> aggregatorTemplates.quantile(0.5, f)\n aggregatorTemplates.average = (f) -> aggregatorTemplates.runningStat(\"mean\", 1, f)\n aggregatorTemplates.var = (ddof, f) -> aggregatorTemplates.runningStat(\"var\", ddof, f)\n aggregatorTemplates.stdev = (ddof, f) -> aggregatorTemplates.runningStat(\"stdev\", ddof, f)\n\n #default aggregators & renderers use US naming and number formatting\n aggregators = do (tpl = aggregatorTemplates) ->\n \"Count\": tpl.count(usFmtInt)\n \"Count Unique Values\": tpl.countUnique(usFmtInt)\n \"List Unique Values\": tpl.listUnique(\", \")\n \"Sum\": tpl.sum(usFmt)\n \"Integer Sum\": tpl.sum(usFmtInt)\n \"Average\": tpl.average(usFmt)\n \"Median\": tpl.median(usFmt)\n \"Sample Variance\": tpl.var(1, usFmt)\n \"Sample Standard Deviation\": tpl.stdev(1, usFmt)\n \"Minimum\": tpl.min(usFmt)\n \"Maximum\": tpl.max(usFmt)\n \"First\": tpl.first(usFmt)\n \"Last\": tpl.last(usFmt)\n \"Sum over Sum\": tpl.sumOverSum(usFmt)\n \"80% Upper Bound\": tpl.sumOverSumBound80(true, usFmt)\n \"80% Lower Bound\": tpl.sumOverSumBound80(false, usFmt)\n \"Sum as Fraction of Total\": tpl.fractionOf(tpl.sum(), \"total\", usFmtPct)\n \"Sum as Fraction of Rows\": tpl.fractionOf(tpl.sum(), \"row\", usFmtPct)\n \"Sum as Fraction of Columns\": tpl.fractionOf(tpl.sum(), \"col\", usFmtPct)\n \"Count as Fraction of Total\": tpl.fractionOf(tpl.count(), \"total\", usFmtPct)\n \"Count as Fraction of Rows\": tpl.fractionOf(tpl.count(), \"row\", usFmtPct)\n \"Count as Fraction of Columns\": tpl.fractionOf(tpl.count(), \"col\", usFmtPct)\n\n renderers =\n \"Table\": (data, opts) -> pivotTableRenderer(data, opts)\n \"Table Barchart\": (data, opts) -> $(pivotTableRenderer(data, opts)).barchart()\n \"Heatmap\": (data, opts) -> $(pivotTableRenderer(data, opts)).heatmap(\"heatmap\", opts)\n \"Row Heatmap\": (data, opts) -> $(pivotTableRenderer(data, opts)).heatmap(\"rowheatmap\", opts)\n \"Col Heatmap\": (data, opts) -> $(pivotTableRenderer(data, opts)).heatmap(\"colheatmap\", opts)\n\n locales =\n en:\n aggregators: aggregators\n renderers: renderers\n localeStrings:\n renderError: \"An error occurred rendering the PivotTable results.\"\n computeError: \"An error occurred computing the PivotTable results.\"\n uiRenderError: \"An error occurred rendering the PivotTable UI.\"\n selectAll: \"Select All\"\n selectNone: \"Select None\"\n tooMany: \"(too many to list)\"\n filterResults: \"Filter values\"\n apply: \"Apply\"\n cancel: \"Cancel\"\n totals: \"Totals\" #for table renderer\n vs: \"vs\" #for gchart renderer\n by: \"by\" #for gchart renderer\n\n #dateFormat deriver l10n requires month and day names to be passed in directly\n mthNamesEn = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]\n dayNamesEn = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]\n zeroPad = (number) -> (\"0\"+number).substr(-2,2)\n\n derivers =\n bin: (col, binWidth) -> (record) -> record[col] - record[col] % binWidth\n dateFormat: (col, formatString, utcOutput=false, mthNames=mthNamesEn, dayNames=dayNamesEn) ->\n utc = if utcOutput then \"UTC\" else \"\"\n (record) -> #thanks http://stackoverflow.com/a/12213072/112871\n date = new Date(Date.parse(record[col]))\n if isNaN(date) then return \"\"\n formatString.replace /%(.)/g, (m, p) ->\n switch p\n when \"y\" then date[\"get#{utc}FullYear\"]()\n when \"m\" then zeroPad(date[\"get#{utc}Month\"]()+1)\n when \"n\" then mthNames[date[\"get#{utc}Month\"]()]\n when \"d\" then zeroPad(date[\"get#{utc}Date\"]())\n when \"w\" then dayNames[date[\"get#{utc}Day\"]()]\n when \"x\" then date[\"get#{utc}Day\"]()\n when \"H\" then zeroPad(date[\"get#{utc}Hours\"]())\n when \"M\" then zeroPad(date[\"get#{utc}Minutes\"]())\n when \"S\" then zeroPad(date[\"get#{utc}Seconds\"]())\n else \"%\" + p\n\n rx = /(\\d+)|(\\D+)/g\n rd = /\\d/\n rz = /^0/\n naturalSort = (as, bs) =>\n #nulls first\n return -1 if bs? and not as?\n return 1 if as? and not bs?\n\n #then raw NaNs\n return -1 if typeof as == \"number\" and isNaN(as)\n return 1 if typeof bs == \"number\" and isNaN(bs)\n\n #numbers and numbery strings group together\n nas = +as\n nbs = +bs\n return -1 if nas < nbs\n return 1 if nas > nbs\n\n #within that, true numbers before numbery strings\n return -1 if typeof as == \"number\" and typeof bs != \"number\"\n return 1 if typeof bs == \"number\" and typeof as != \"number\"\n return 0 if typeof as == \"number\" and typeof bs == \"number\"\n\n # 'Infinity' is a textual number, so less than 'A'\n return -1 if isNaN(nbs) and not isNaN(nas)\n return 1 if isNaN(nas) and not isNaN(nbs)\n\n #finally, \"smart\" string sorting per http://stackoverflow.com/a/4373421/112871\n a = String(as)\n b = String(bs)\n return 0 if a == b\n return (if a > b then 1 else -1) unless rd.test(a) and rd.test(b)\n\n #special treatment for strings containing digits\n a = a.match(rx) #create digits vs non-digit chunks and iterate through\n b = b.match(rx)\n while a.length and b.length\n a1 = a.shift()\n b1 = b.shift()\n if a1 != b1\n if rd.test(a1) and rd.test(b1) #both are digit chunks\n return a1.replace(rz, \".0\") - b1.replace(rz, \".0\")\n else\n return (if a1 > b1 then 1 else -1)\n return a.length - b.length\n\n sortAs = (order) ->\n mapping = {}\n l_mapping = {} # sort lowercased keys similarly\n for i, x of order\n mapping[x] = i\n l_mapping[x.toLowerCase()] = i if typeof x == \"string\"\n (a, b) ->\n if mapping[a]? and mapping[b]? then mapping[a] - mapping[b]\n else if mapping[a]? then -1\n else if mapping[b]? then 1\n else if l_mapping[a]? and l_mapping[b]? then l_mapping[a] - l_mapping[b]\n else if l_mapping[a]? then -1\n else if l_mapping[b]? then 1\n else naturalSort(a,b)\n\n getSort = (sorters, attr) ->\n if sorters?\n if $.isFunction(sorters)\n sort = sorters(attr)\n return sort if $.isFunction(sort)\n else if sorters[attr]?\n return sorters[attr]\n return naturalSort\n\n ###\n Data Model class\n ###\n\n class PivotData\n constructor: (input, opts = {}) ->\n @input = input\n @aggregator = opts.aggregator ? aggregatorTemplates.count()()\n @aggregatorName = opts.aggregatorName ? \"Count\"\n @colAttrs = opts.cols ? []\n @rowAttrs = opts.rows ? []\n @valAttrs = opts.vals ? []\n @sorters = opts.sorters ? {}\n @rowOrder = opts.rowOrder ? \"key_a_to_z\"\n @colOrder = opts.colOrder ? \"key_a_to_z\"\n @derivedAttributes = opts.derivedAttributes ? {}\n @filter = opts.filter ? (-> true)\n @tree = {}\n @rowKeys = []\n @colKeys = []\n @rowTotals = {}\n @colTotals = {}\n @allTotal = @aggregator(this, [], [])\n @sorted = false\n\n # iterate through input, accumulating data for cells\n PivotData.forEachRecord @input, @derivedAttributes, (record) =>\n @processRecord(record) if @filter(record)\n\n #can handle arrays or jQuery selections of tables\n @forEachRecord = (input, derivedAttributes, f) ->\n if $.isEmptyObject derivedAttributes\n addRecord = f\n else\n addRecord = (record) ->\n record[k] = v(record) ? record[k] for k, v of derivedAttributes\n f(record)\n\n #if it's a function, have it call us back\n if $.isFunction(input)\n input(addRecord)\n else if $.isArray(input)\n if $.isArray(input[0]) #array of arrays\n for own i, compactRecord of input when i > 0\n record = {}\n record[k] = compactRecord[j] for own j, k of input[0]\n addRecord(record)\n else #array of objects\n addRecord(record) for record in input\n else if input instanceof $\n tblCols = []\n $(\"thead > tr > th\", input).each (i) -> tblCols.push $(this).text()\n $(\"tbody > tr\", input).each (i) ->\n record = {}\n $(\"td\", this).each (j) -> record[tblCols[j]] = $(this).text()\n addRecord(record)\n else\n throw new Error(\"unknown input format\")\n\n forEachMatchingRecord: (criteria, callback) ->\n PivotData.forEachRecord @input, @derivedAttributes, (record) =>\n return if not @filter(record)\n for k, v of criteria\n return if v != (record[k] ? \"null\")\n callback(record)\n\n arrSort: (attrs) =>\n sortersArr = (getSort(@sorters, a) for a in attrs)\n (a,b) ->\n for own i, sorter of sortersArr\n comparison = sorter(a[i], b[i])\n return comparison if comparison != 0\n return 0\n\n sortKeys: () =>\n if not @sorted\n @sorted = true\n v = (r,c) => @getAggregator(r,c).value()\n switch @rowOrder\n when \"value_a_to_z\" then @rowKeys.sort (a,b) => naturalSort v(a,[]), v(b,[])\n when \"value_z_to_a\" then @rowKeys.sort (a,b) => -naturalSort v(a,[]), v(b,[])\n else @rowKeys.sort @arrSort(@rowAttrs)\n switch @colOrder\n when \"value_a_to_z\" then @colKeys.sort (a,b) => naturalSort v([],a), v([],b)\n when \"value_z_to_a\" then @colKeys.sort (a,b) => -naturalSort v([],a), v([],b)\n else @colKeys.sort @arrSort(@colAttrs)\n\n getColKeys: () =>\n @sortKeys()\n return @colKeys\n\n getRowKeys: () =>\n @sortKeys()\n return @rowKeys\n\n processRecord: (record) -> #this code is called in a tight loop\n colKey = []\n rowKey = []\n colKey.push record[x] ? \"null\" for x in @colAttrs\n rowKey.push record[x] ? \"null\" for x in @rowAttrs\n flatRowKey = rowKey.join(String.fromCharCode(0))\n flatColKey = colKey.join(String.fromCharCode(0))\n\n @allTotal.push record\n\n if rowKey.length != 0\n if not @rowTotals[flatRowKey]\n @rowKeys.push rowKey\n @rowTotals[flatRowKey] = @aggregator(this, rowKey, [])\n @rowTotals[flatRowKey].push record\n\n if colKey.length != 0\n if not @colTotals[flatColKey]\n @colKeys.push colKey\n @colTotals[flatColKey] = @aggregator(this, [], colKey)\n @colTotals[flatColKey].push record\n\n if colKey.length != 0 and rowKey.length != 0\n if not @tree[flatRowKey]\n @tree[flatRowKey] = {}\n if not @tree[flatRowKey][flatColKey]\n @tree[flatRowKey][flatColKey] = @aggregator(this, rowKey, colKey)\n @tree[flatRowKey][flatColKey].push record\n\n getAggregator: (rowKey, colKey) =>\n flatRowKey = rowKey.join(String.fromCharCode(0))\n flatColKey = colKey.join(String.fromCharCode(0))\n if rowKey.length == 0 and colKey.length == 0\n agg = @allTotal\n else if rowKey.length == 0\n agg = @colTotals[flatColKey]\n else if colKey.length == 0\n agg = @rowTotals[flatRowKey]\n else\n agg = @tree[flatRowKey][flatColKey]\n return agg ? {value: (-> null), format: -> \"\"}\n\n #expose these to the outside world\n $.pivotUtilities = {aggregatorTemplates, aggregators, renderers, derivers, locales,\n naturalSort, numberFormat, sortAs, PivotData}\n\n ###\n Default Renderer for hierarchical table layout\n ###\n\n pivotTableRenderer = (pivotData, opts) ->\n\n defaults =\n table:\n clickCallback: null\n rowTotals: true\n colTotals: true\n localeStrings: totals: \"Totals\"\n\n opts = $.extend(true, {}, defaults, opts)\n\n colAttrs = pivotData.colAttrs\n rowAttrs = pivotData.rowAttrs\n rowKeys = pivotData.getRowKeys()\n colKeys = pivotData.getColKeys()\n\n if opts.table.clickCallback\n getClickHandler = (value, rowValues, colValues) ->\n filters = {}\n filters[attr] = colValues[i] for own i, attr of colAttrs when colValues[i]?\n filters[attr] = rowValues[i] for own i, attr of rowAttrs when rowValues[i]?\n return (e) -> opts.table.clickCallback(e, value, filters, pivotData)\n\n #now actually build the output\n result = document.createElement(\"table\")\n result.className = \"pvtTable\"\n\n #helper function for setting row/col-span in pivotTableRenderer\n spanSize = (arr, i, j) ->\n if i != 0\n noDraw = true\n for x in [0..j]\n if arr[i-1][x] != arr[i][x]\n noDraw = false\n if noDraw\n return -1 #do not draw cell\n len = 0\n while i+len < arr.length\n stop = false\n for x in [0..j]\n stop = true if arr[i][x] != arr[i+len][x]\n break if stop\n len++\n return len\n\n #the first few rows are for col headers\n thead = document.createElement(\"thead\")\n for own j, c of colAttrs\n tr = document.createElement(\"tr\")\n if parseInt(j) == 0 and rowAttrs.length != 0\n th = document.createElement(\"th\")\n th.setAttribute(\"colspan\", rowAttrs.length)\n th.setAttribute(\"rowspan\", colAttrs.length)\n tr.appendChild th\n th = document.createElement(\"th\")\n th.className = \"pvtAxisLabel\"\n th.textContent = c\n tr.appendChild th\n for own i, colKey of colKeys\n x = spanSize(colKeys, parseInt(i), parseInt(j))\n if x != -1\n th = document.createElement(\"th\")\n th.className = \"pvtColLabel\"\n th.textContent = colKey[j]\n th.setAttribute(\"colspan\", x)\n if parseInt(j) == colAttrs.length-1 and rowAttrs.length != 0\n th.setAttribute(\"rowspan\", 2)\n tr.appendChild th\n if parseInt(j) == 0 && opts.table.rowTotals\n th = document.createElement(\"th\")\n th.className = \"pvtTotalLabel pvtRowTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n th.setAttribute(\"rowspan\", colAttrs.length + (if rowAttrs.length ==0 then 0 else 1))\n tr.appendChild th\n thead.appendChild tr\n\n #then a row for row header headers\n if rowAttrs.length !=0\n tr = document.createElement(\"tr\")\n for own i, r of rowAttrs\n th = document.createElement(\"th\")\n th.className = \"pvtAxisLabel\"\n th.textContent = r\n tr.appendChild th\n th = document.createElement(\"th\")\n if colAttrs.length ==0\n th.className = \"pvtTotalLabel pvtRowTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n tr.appendChild th\n thead.appendChild tr\n result.appendChild thead\n\n #now the actual data rows, with their row headers and totals\n tbody = document.createElement(\"tbody\")\n for own i, rowKey of rowKeys\n tr = document.createElement(\"tr\")\n for own j, txt of rowKey\n x = spanSize(rowKeys, parseInt(i), parseInt(j))\n if x != -1\n th = document.createElement(\"th\")\n th.className = \"pvtRowLabel\"\n th.textContent = txt\n th.setAttribute(\"rowspan\", x)\n if parseInt(j) == rowAttrs.length-1 and colAttrs.length !=0\n th.setAttribute(\"colspan\",2)\n tr.appendChild th\n for own j, colKey of colKeys #this is the tight loop\n aggregator = pivotData.getAggregator(rowKey, colKey)\n val = aggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtVal row#{i} col#{j}\"\n td.textContent = aggregator.format(val)\n td.setAttribute(\"data-value\", val)\n if getClickHandler?\n td.onclick = getClickHandler(val, rowKey, colKey)\n tr.appendChild td\n\n if opts.table.rowTotals || colAttrs.length == 0\n totalAggregator = pivotData.getAggregator(rowKey, [])\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtTotal rowTotal\"\n td.textContent = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n if getClickHandler?\n td.onclick = getClickHandler(val, rowKey, [])\n td.setAttribute(\"data-for\", \"row\"+i)\n tr.appendChild td\n tbody.appendChild tr\n\n #finally, the row for col totals, and a grand total\n if opts.table.colTotals || rowAttrs.length == 0\n tr = document.createElement(\"tr\")\n if opts.table.colTotals || rowAttrs.length == 0\n th = document.createElement(\"th\")\n th.className = \"pvtTotalLabel pvtColTotalLabel\"\n th.innerHTML = opts.localeStrings.totals\n th.setAttribute(\"colspan\", rowAttrs.length + (if colAttrs.length == 0 then 0 else 1))\n tr.appendChild th\n for own j, colKey of colKeys\n totalAggregator = pivotData.getAggregator([], colKey)\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtTotal colTotal\"\n td.textContent = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n if getClickHandler?\n td.onclick = getClickHandler(val, [], colKey)\n td.setAttribute(\"data-for\", \"col\"+j)\n tr.appendChild td\n if opts.table.rowTotals || colAttrs.length == 0\n totalAggregator = pivotData.getAggregator([], [])\n val = totalAggregator.value()\n td = document.createElement(\"td\")\n td.className = \"pvtGrandTotal\"\n td.textContent = totalAggregator.format(val)\n td.setAttribute(\"data-value\", val)\n if getClickHandler?\n td.onclick = getClickHandler(val, [], [])\n tr.appendChild td\n tbody.appendChild tr\n result.appendChild tbody\n\n #squirrel this away for later\n result.setAttribute(\"data-numrows\", rowKeys.length)\n result.setAttribute(\"data-numcols\", colKeys.length)\n\n return result\n\n ###\n Pivot Table core: create PivotData object and call Renderer on it\n ###\n\n $.fn.pivot = (input, inputOpts, locale=\"en\") ->\n locale = \"en\" if not locales[locale]?\n defaults =\n cols : [], rows: [], vals: []\n rowOrder: \"key_a_to_z\", colOrder: \"key_a_to_z\"\n dataClass: PivotData\n filter: -> true\n aggregator: aggregatorTemplates.count()()\n aggregatorName: \"Count\"\n sorters: {}\n derivedAttributes: {}\n renderer: pivotTableRenderer\n\n localeStrings = $.extend(true, {}, locales.en.localeStrings, locales[locale].localeStrings)\n localeDefaults =\n rendererOptions: {localeStrings}\n localeStrings: localeStrings\n\n opts = $.extend(true, {}, localeDefaults, $.extend({}, defaults, inputOpts))\n\n result = null\n try\n pivotData = new opts.dataClass(input, opts)\n try\n result = opts.renderer(pivotData, opts.rendererOptions)\n catch e\n console.error(e.stack) if console?\n result = $(\"\").html opts.localeStrings.renderError\n catch e\n console.error(e.stack) if console?\n result = $(\"\").html opts.localeStrings.computeError\n\n x = this[0]\n x.removeChild(x.lastChild) while x.hasChildNodes()\n return @append result\n\n\n ###\n Pivot Table UI: calls Pivot Table core above with options set by user\n ###\n\n $.fn.pivotUI = (input, inputOpts, overwrite = false, locale=\"en\") ->\n locale = \"en\" if not locales[locale]?\n defaults =\n derivedAttributes: {}\n aggregators: locales[locale].aggregators\n renderers: locales[locale].renderers\n hiddenAttributes: []\n hiddenFromAggregators: []\n hiddenFromDragDrop: []\n menuLimit: 500\n cols: [], rows: [], vals: []\n rowOrder: \"key_a_to_z\", colOrder: \"key_a_to_z\"\n dataClass: PivotData\n exclusions: {}\n inclusions: {}\n unusedAttrsVertical: 85\n autoSortUnusedAttrs: false\n onRefresh: null\n showUI: true\n filter: -> true\n sorters: {}\n\n localeStrings = $.extend(true, {}, locales.en.localeStrings, locales[locale].localeStrings)\n localeDefaults =\n rendererOptions: {localeStrings}\n localeStrings: localeStrings\n\n existingOpts = @data \"pivotUIOptions\"\n if not existingOpts? or overwrite\n opts = $.extend(true, {}, localeDefaults, $.extend({}, defaults, inputOpts))\n else\n opts = existingOpts\n\n try\n # do a first pass on the data to cache a materialized copy of any\n # function-valued inputs and to compute dimension cardinalities\n attrValues = {}\n materializedInput = []\n recordsProcessed = 0\n PivotData.forEachRecord input, opts.derivedAttributes, (record) ->\n return unless opts.filter(record)\n materializedInput.push(record)\n for own attr of record\n if not attrValues[attr]?\n attrValues[attr] = {}\n if recordsProcessed > 0\n attrValues[attr][\"null\"] = recordsProcessed\n for attr of attrValues\n value = record[attr] ? \"null\"\n attrValues[attr][value] ?= 0\n attrValues[attr][value]++\n recordsProcessed++\n\n #start building the output\n uiTable = $(\"\", \"class\": \"pvtUi\").attr(\"cellpadding\", 5)\n\n #renderer control\n rendererControl = $(\"\").appendTo(uiTable)\n\n #aggregator menu and value area\n\n aggregator = $(\"\").appendTo(uiTable)\n\n #row axes\n tr2.append $(\"\").append(rendererControl).append(unused)\n\n #render the UI in its default state\n @html uiTable\n\n #set up the UI initial state as requested by moving elements around\n\n for x in opts.cols\n @find(\".pvtCols\").append @find(\".axis_#{$.inArray(x, shownInDragDrop)}\")\n for x in opts.rows\n @find(\".pvtRows\").append @find(\".axis_#{$.inArray(x, shownInDragDrop)}\")\n if opts.aggregatorName?\n @find(\".pvtAggregator\").val opts.aggregatorName\n if opts.rendererName?\n @find(\".pvtRenderer\").val opts.rendererName\n\n @find(\".pvtUiCell\").hide() unless opts.showUI\n\n initialRender = true\n\n #set up for refreshing\n refreshDelayed = =>\n subopts =\n derivedAttributes: opts.derivedAttributes\n localeStrings: opts.localeStrings\n rendererOptions: opts.rendererOptions\n sorters: opts.sorters\n cols: [], rows: []\n dataClass: opts.dataClass\n\n numInputsToProcess = opts.aggregators[aggregator.val()]([])().numInputs ? 0\n vals = []\n @find(\".pvtRows li span.pvtAttr\").each -> subopts.rows.push $(this).data(\"attrName\")\n @find(\".pvtCols li span.pvtAttr\").each -> subopts.cols.push $(this).data(\"attrName\")\n @find(\".pvtVals select.pvtAttrDropdown\").each ->\n if numInputsToProcess == 0\n $(this).remove()\n else\n numInputsToProcess--\n vals.push $(this).val() if $(this).val() != \"\"\n\n if numInputsToProcess != 0\n pvtVals = @find(\".pvtVals\")\n for x in [0...numInputsToProcess]\n newDropdown = $(\"
\").addClass(\"pvtUiCell\")\n\n renderer = $(\"\").addClass('pvtAxisContainer pvtUnused pvtUiCell')\n shownAttributes = (a for a of attrValues when a not in opts.hiddenAttributes)\n shownInAggregators = (c for c in shownAttributes when c not in opts.hiddenFromAggregators)\n shownInDragDrop = (c for c in shownAttributes when c not in opts.hiddenFromDragDrop)\n\n\n unusedAttrsVerticalAutoOverride = false\n if opts.unusedAttrsVertical == \"auto\"\n unusedAttrsVerticalAutoCutoff = 120 # legacy support\n else\n unusedAttrsVerticalAutoCutoff = parseInt opts.unusedAttrsVertical\n\n if not isNaN(unusedAttrsVerticalAutoCutoff)\n attrLength = 0\n attrLength += a.length for a in shownInDragDrop\n unusedAttrsVerticalAutoOverride = attrLength > unusedAttrsVerticalAutoCutoff\n\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n unused.addClass('pvtVertList')\n else\n unused.addClass('pvtHorizList')\n\n for own i, attr of shownInDragDrop\n do (attr) ->\n values = (v for v of attrValues[attr])\n hasExcludedItem = false\n valueList = $(\"
\").addClass('pvtFilterBox').hide()\n\n valueList.append $(\"

\").append(\n $(\"\").text(attr),\n $(\"\").addClass(\"count\").text(\"(#{values.length})\"),\n )\n if values.length > opts.menuLimit\n valueList.append $(\"

\").html(opts.localeStrings.tooMany)\n else\n if values.length > 5\n controls = $(\"

\").appendTo(valueList)\n sorter = getSort(opts.sorters, attr)\n placeholder = opts.localeStrings.filterResults\n $(\"\", {type: \"text\"}).appendTo(controls)\n .attr({placeholder: placeholder, class: \"pvtSearch\"})\n .bind \"keyup\", ->\n filter = $(this).val().toLowerCase().trim()\n accept_gen = (prefix, accepted) -> (v) ->\n real_filter = filter.substring(prefix.length).trim()\n return true if real_filter.length == 0\n return Math.sign(sorter(v.toLowerCase(), real_filter)) in accepted\n accept =\n if filter.indexOf(\">=\") == 0 then accept_gen(\">=\", [1,0])\n else if filter.indexOf(\"<=\") == 0 then accept_gen(\"<=\", [-1,0])\n else if filter.indexOf(\">\") == 0 then accept_gen(\">\", [1])\n else if filter.indexOf(\"<\") == 0 then accept_gen(\"<\", [-1])\n else if filter.indexOf(\"~\") == 0 then (v) ->\n return true if filter.substring(1).trim().length == 0\n v.toLowerCase().match(filter.substring(1))\n else (v) -> v.toLowerCase().indexOf(filter) != -1\n\n valueList.find('.pvtCheckContainer p label span.value').each ->\n if accept($(this).text())\n $(this).parent().parent().show()\n else\n $(this).parent().parent().hide()\n controls.append $(\"
\")\n $(\"

\").addClass('pvtVals pvtUiCell')\n .appendTo(tr1)\n .append(aggregator)\n .append(rowOrderArrow)\n .append(colOrderArrow)\n .append($(\"
\"))\n\n #column axes\n $(\"
\").addClass('pvtAxisContainer pvtHorizList pvtCols pvtUiCell').appendTo(tr1)\n\n tr2 = $(\"
\").addClass('pvtAxisContainer pvtRows pvtUiCell').attr(\"valign\", \"top\")\n\n #the actual pivot table container\n pivotTable = $(\"\")\n .attr(\"valign\", \"top\")\n .addClass('pvtRendererArea')\n .appendTo(tr2)\n\n #finally the renderer dropdown and unused attribs are inserted at the requested location\n if opts.unusedAttrsVertical == true or unusedAttrsVerticalAutoOverride\n uiTable.find('tr:nth-child(1)').prepend rendererControl\n uiTable.find('tr:nth-child(2)').prepend unused\n else\n uiTable.prepend $(\"
\", {\n \"class\": \"pvtUi\"\n }).attr(\"cellpadding\", 5);\n rendererControl = $(\"\").appendTo(uiTable);\n aggregator = $(\"\").appendTo(uiTable);\n tr2.append($(\"\").append(rendererControl).append(unused));\n }\n this.html(uiTable);\n ref2 = opts.cols;\n for (n = 0, len2 = ref2.length; n < len2; n++) {\n x = ref2[n];\n this.find(\".pvtCols\").append(this.find(\".axis_\" + ($.inArray(x, shownInDragDrop))));\n }\n ref3 = opts.rows;\n for (o = 0, len3 = ref3.length; o < len3; o++) {\n x = ref3[o];\n this.find(\".pvtRows\").append(this.find(\".axis_\" + ($.inArray(x, shownInDragDrop))));\n }\n if (opts.aggregatorName != null) {\n this.find(\".pvtAggregator\").val(opts.aggregatorName);\n }\n if (opts.rendererName != null) {\n this.find(\".pvtRenderer\").val(opts.rendererName);\n }\n if (!opts.showUI) {\n this.find(\".pvtUiCell\").hide();\n }\n initialRender = true;\n refreshDelayed = (function(_this) {\n return function() {\n var exclusions, inclusions, len4, newDropdown, numInputsToProcess, pivotUIOptions, pvtVals, ref4, ref5, subopts, t, u, unusedAttrsContainer, vals;\n subopts = {\n derivedAttributes: opts.derivedAttributes,\n localeStrings: opts.localeStrings,\n rendererOptions: opts.rendererOptions,\n sorters: opts.sorters,\n cols: [],\n rows: [],\n dataClass: opts.dataClass\n };\n numInputsToProcess = (ref4 = opts.aggregators[aggregator.val()]([])().numInputs) != null ? ref4 : 0;\n vals = [];\n _this.find(\".pvtRows li span.pvtAttr\").each(function() {\n return subopts.rows.push($(this).data(\"attrName\"));\n });\n _this.find(\".pvtCols li span.pvtAttr\").each(function() {\n return subopts.cols.push($(this).data(\"attrName\"));\n });\n _this.find(\".pvtVals select.pvtAttrDropdown\").each(function() {\n if (numInputsToProcess === 0) {\n return $(this).remove();\n } else {\n numInputsToProcess--;\n if ($(this).val() !== \"\") {\n return vals.push($(this).val());\n }\n }\n });\n if (numInputsToProcess !== 0) {\n pvtVals = _this.find(\".pvtVals\");\n for (x = t = 0, ref5 = numInputsToProcess; 0 <= ref5 ? t < ref5 : t > ref5; x = 0 <= ref5 ? ++t : --t) {\n newDropdown = $(\"
\").addClass(\"pvtUiCell\");\n renderer = $(\"\").addClass('pvtAxisContainer pvtUnused pvtUiCell');\n shownAttributes = (function() {\n var results;\n results = [];\n for (a in attrValues) {\n if (indexOf.call(opts.hiddenAttributes, a) < 0) {\n results.push(a);\n }\n }\n return results;\n })();\n shownInAggregators = (function() {\n var l, len1, results;\n results = [];\n for (l = 0, len1 = shownAttributes.length; l < len1; l++) {\n c = shownAttributes[l];\n if (indexOf.call(opts.hiddenFromAggregators, c) < 0) {\n results.push(c);\n }\n }\n return results;\n })();\n shownInDragDrop = (function() {\n var l, len1, results;\n results = [];\n for (l = 0, len1 = shownAttributes.length; l < len1; l++) {\n c = shownAttributes[l];\n if (indexOf.call(opts.hiddenFromDragDrop, c) < 0) {\n results.push(c);\n }\n }\n return results;\n })();\n unusedAttrsVerticalAutoOverride = false;\n if (opts.unusedAttrsVertical === \"auto\") {\n unusedAttrsVerticalAutoCutoff = 120;\n } else {\n unusedAttrsVerticalAutoCutoff = parseInt(opts.unusedAttrsVertical);\n }\n if (!isNaN(unusedAttrsVerticalAutoCutoff)) {\n attrLength = 0;\n for (l = 0, len1 = shownInDragDrop.length; l < len1; l++) {\n a = shownInDragDrop[l];\n attrLength += a.length;\n }\n unusedAttrsVerticalAutoOverride = attrLength > unusedAttrsVerticalAutoCutoff;\n }\n if (opts.unusedAttrsVertical === true || unusedAttrsVerticalAutoOverride) {\n unused.addClass('pvtVertList');\n } else {\n unused.addClass('pvtHorizList');\n }\n fn1 = function(attr) {\n var attrElem, checkContainer, closeFilterBox, controls, filterItem, filterItemExcluded, finalButtons, hasExcludedItem, len2, n, placeholder, ref1, sorter, triangleLink, v, value, valueCount, valueList, values;\n values = (function() {\n var results;\n results = [];\n for (v in attrValues[attr]) {\n results.push(v);\n }\n return results;\n })();\n hasExcludedItem = false;\n valueList = $(\"
\").addClass('pvtFilterBox').hide();\n valueList.append($(\"

\").append($(\"\").text(attr), $(\"\").addClass(\"count\").text(\"(\" + values.length + \")\")));\n if (values.length > opts.menuLimit) {\n valueList.append($(\"

\").html(opts.localeStrings.tooMany));\n } else {\n if (values.length > 5) {\n controls = $(\"

\").appendTo(valueList);\n sorter = getSort(opts.sorters, attr);\n placeholder = opts.localeStrings.filterResults;\n $(\"\", {\n type: \"text\"\n }).appendTo(controls).attr({\n placeholder: placeholder,\n \"class\": \"pvtSearch\"\n }).bind(\"keyup\", function() {\n var accept, accept_gen, filter;\n filter = $(this).val().toLowerCase().trim();\n accept_gen = function(prefix, accepted) {\n return function(v) {\n var real_filter, ref1;\n real_filter = filter.substring(prefix.length).trim();\n if (real_filter.length === 0) {\n return true;\n }\n return ref1 = Math.sign(sorter(v.toLowerCase(), real_filter)), indexOf.call(accepted, ref1) >= 0;\n };\n };\n accept = filter.indexOf(\">=\") === 0 ? accept_gen(\">=\", [1, 0]) : filter.indexOf(\"<=\") === 0 ? accept_gen(\"<=\", [-1, 0]) : filter.indexOf(\">\") === 0 ? accept_gen(\">\", [1]) : filter.indexOf(\"<\") === 0 ? accept_gen(\"<\", [-1]) : filter.indexOf(\"~\") === 0 ? function(v) {\n if (filter.substring(1).trim().length === 0) {\n return true;\n }\n return v.toLowerCase().match(filter.substring(1));\n } : function(v) {\n return v.toLowerCase().indexOf(filter) !== -1;\n };\n return valueList.find('.pvtCheckContainer p label span.value').each(function() {\n if (accept($(this).text())) {\n return $(this).parent().parent().show();\n } else {\n return $(this).parent().parent().hide();\n }\n });\n });\n controls.append($(\"
\"));\n $(\"

\").addClass('pvtVals pvtUiCell').appendTo(tr1).append(aggregator).append(rowOrderArrow).append(colOrderArrow).append($(\"
\"));\n $(\"
\").addClass('pvtAxisContainer pvtHorizList pvtCols pvtUiCell').appendTo(tr1);\n tr2 = $(\"
\").addClass('pvtAxisContainer pvtRows pvtUiCell').attr(\"valign\", \"top\"));\n pivotTable = $(\"\").attr(\"valign\", \"top\").addClass('pvtRendererArea').appendTo(tr2);\n if (opts.unusedAttrsVertical === true || unusedAttrsVerticalAutoOverride) {\n uiTable.find('tr:nth-child(1)').prepend(rendererControl);\n uiTable.find('tr:nth-child(2)').prepend(unused);\n } else {\n uiTable.prepend($(\"