{"version":3,"file":"subtotal.js","sources":["subtotal.coffee"],"names":[],"mappings":"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","sourcesContent":["callWithJQuery = (pivotModule) ->\r\n if typeof exports is \"object\" and typeof module is \"object\" # CommonJS\r\n pivotModule require(\"jquery\")\r\n else if typeof define is \"function\" and define.amd # AMD\r\n define [\"jquery\"], pivotModule\r\n # Plain browser env\r\n else\r\n pivotModule jQuery\r\n\r\ncallWithJQuery ($) ->\r\n\r\n class SubtotalPivotData extends $.pivotUtilities.PivotData\r\n constructor: (input, opts) ->\r\n super input, opts\r\n\r\n processKey = (record, totals, keys, attrs, getAggregator) ->\r\n key = []\r\n addKey = false\r\n for attr in attrs\r\n key.push record[attr] ? \"null\"\r\n flatKey = key.join String.fromCharCode(0)\r\n if not totals[flatKey]\r\n totals[flatKey] = getAggregator key.slice()\r\n addKey = true\r\n totals[flatKey].push record\r\n keys.push key if addKey\r\n return key\r\n\r\n processRecord: (record) -> #this code is called in a tight loop\r\n rowKey = []\r\n colKey = []\r\n\r\n @allTotal.push record\r\n rowKey = processKey record, @rowTotals, @rowKeys, @rowAttrs, (key) =>\r\n return @aggregator this, key, []\r\n colKey = processKey record, @colTotals, @colKeys, @colAttrs, (key) =>\r\n return @aggregator this, [], key\r\n m = rowKey.length-1\r\n n = colKey.length-1\r\n return if m < 0 or n < 0\r\n for i in [0..m]\r\n fRowKey = rowKey.slice(0, i+1)\r\n flatRowKey = fRowKey.join String.fromCharCode(0)\r\n @tree[flatRowKey] = {} if not @tree[flatRowKey]\r\n for j in [0..n]\r\n fColKey = colKey.slice 0, j+1\r\n flatColKey = fColKey.join String.fromCharCode(0)\r\n @tree[flatRowKey][flatColKey] = @aggregator this, fRowKey, fColKey if not @tree[flatRowKey][flatColKey]\r\n @tree[flatRowKey][flatColKey].push record\r\n\r\n $.pivotUtilities.SubtotalPivotData = SubtotalPivotData\r\n\r\n SubtotalRenderer = (pivotData, opts) ->\r\n defaults =\r\n table: clickCallback: null\r\n localeStrings: totals: \"Totals\", subtotalOf: \"Subtotal of\"\r\n arrowCollapsed: \"\\u25B6\"\r\n arrowExpanded: \"\\u25E2\"\r\n rowSubtotalDisplay:\r\n displayOnTop: true\r\n disableFrom: 99999\r\n collapseAt: 99999\r\n hideOnExpand: false\r\n disableExpandCollapse: false\r\n colSubtotalDisplay:\r\n displayOnTop: true\r\n disableFrom: 99999\r\n collapseAt: 99999\r\n hideOnExpand: false\r\n disableExpandCollapse: false\r\n opts = $.extend true, {}, defaults, opts\r\n\r\n opts.rowSubtotalDisplay.disableFrom = 0 if opts.rowSubtotalDisplay.disableSubtotal\r\n opts.rowSubtotalDisplay.disableFrom = opts.rowSubtotalDisplay.disableAfter+1 if typeof opts.rowSubtotalDisplay.disableAfter isnt 'undefined' and opts.rowSubtotalDisplay.disableAfter isnt null\r\n opts.rowSubtotalDisplay.collapseAt = opts.collapseRowsAt if typeof opts.rowSubtotalDisplay.collapseAt isnt 'undefined' and opts.collapseRowsAt isnt null\r\n\r\n opts.colSubtotalDisplay.disableFrom = 0 if opts.colSubtotalDisplay.disableSubtotal\r\n opts.colSubtotalDisplay.disableFrom = opts.colSubtotalDisplay.disableAfter+1 if typeof opts.colSubtotalDisplay.disableAfter isnt 'undefined' and opts.colSubtotalDisplay.disableAfter isnt null\r\n opts.colSubtotalDisplay.collapseAt = opts.collapseColsAt if typeof opts.colSubtotalDisplay.collapseAt isnt 'undefined' and opts.collapseColsAt isnt null\r\n\r\n colAttrs = pivotData.colAttrs\r\n rowAttrs = pivotData.rowAttrs\r\n rowKeys = pivotData.getRowKeys()\r\n colKeys = pivotData.getColKeys()\r\n tree = pivotData.tree\r\n rowTotals = pivotData.rowTotals\r\n colTotals = pivotData.colTotals\r\n allTotal = pivotData.allTotal\r\n\r\n classRowHide = \"rowhide\"\r\n classRowShow = \"rowshow\"\r\n classColHide = \"colhide\"\r\n classColShow = \"colshow\"\r\n clickStatusExpanded = \"expanded\"\r\n clickStatusCollapsed = \"collapsed\"\r\n classExpanded = \"expanded\"\r\n classCollapsed = \"collapsed\"\r\n classRowExpanded = \"rowexpanded\"\r\n classRowCollapsed = \"rowcollapsed\"\r\n classColExpanded = \"colexpanded\"\r\n classColCollapsed = \"colcollapsed\"\r\n arrowExpanded = opts.arrowExpanded\r\n arrowCollapsed = opts.arrowCollapsed\r\n\r\n # Based on http://stackoverflow.com/questions/195951/change-an-elements-class-with-javascript -- Begin\r\n hasClass = (element, className) ->\r\n regExp = new RegExp \"(?:^|\\\\s)\" + className + \"(?!\\\\S)\", \"g\"\r\n element.className.match(regExp) isnt null\r\n\r\n removeClass = (element, className) ->\r\n for name in className.split \" \"\r\n regExp = new RegExp \"(?:^|\\\\s)\" + name + \"(?!\\\\S)\", \"g\"\r\n element.className = element.className.replace regExp, ''\r\n\r\n addClass = (element, className) ->\r\n for name in className.split \" \"\r\n element.className += (\" \" + name) if not hasClass element, name\r\n\r\n replaceClass = (element, replaceClassName, byClassName) ->\r\n removeClass element, replaceClassName\r\n addClass element, byClassName\r\n # Based on http://stackoverflow.com/questions/195951/change-an-elements-class-with-javascript -- End \r\n\r\n createElement = (elementType, className, textContent, attributes, eventHandlers) ->\r\n e = document.createElement elementType\r\n e.className = className if className?\r\n e.textContent = textContent if textContent?\r\n e.setAttribute attr, val for own attr, val of attributes if attributes?\r\n e.addEventListener event, handler for own event, handler of eventHandlers if eventHandlers?\r\n return e\r\n\r\n setAttributes = (e, attrs) ->\r\n e.setAttribute a, v for own a, v of attrs\r\n\r\n processKeys = (keysArr, className, opts) ->\r\n lastIdx = keysArr[0].length-1\r\n headers = children: []\r\n row = 0\r\n keysArr.reduce(\r\n (val0, k0) => \r\n col = 0\r\n k0.reduce(\r\n (acc, curVal, curIdx, arr) => \r\n if not acc[curVal]\r\n key = k0.slice 0, col+1\r\n acc[curVal] =\r\n row: row\r\n col: col\r\n descendants: 0\r\n children: []\r\n text: curVal\r\n key: key \r\n flatKey: key.join String.fromCharCode(0) \r\n firstLeaf: null \r\n leaves: 0\r\n parent: if col isnt 0 then acc else null\r\n th: createElement \"th\", className, curVal\r\n childrenSpan: 0\r\n acc.children.push curVal\r\n if col > 0 \r\n acc.descendants++\r\n col++\r\n if curIdx == lastIdx\r\n node = headers\r\n for i in [0..lastIdx-1] when lastIdx > 0\r\n node[k0[i]].leaves++\r\n if not node[k0[i]].firstLeaf \r\n node[k0[i]].firstLeaf = acc[curVal]\r\n node = node[k0[i]]\r\n return headers\r\n return acc[curVal]\r\n headers)\r\n row++\r\n return headers\r\n headers)\r\n return headers\r\n\r\n buildAxisHeader = (axisHeaders, col, attrs, opts) ->\r\n ah =\r\n text: attrs[col]\r\n expandedCount: 0\r\n expandables: 0\r\n attrHeaders: []\r\n clickStatus: clickStatusExpanded\r\n onClick: collapseAxis\r\n\r\n arrow = \"#{arrowExpanded} \"\r\n hClass = classExpanded\r\n if col >= opts.collapseAt\r\n arrow = \"#{arrowCollapsed} \"\r\n hClass = classCollapsed\r\n ah.clickStatus = clickStatusCollapsed\r\n ah.onClick = expandAxis\r\n if col == attrs.length-1 or col >= opts.disableFrom or opts.disableExpandCollapse\r\n arrow = \"\"\r\n ah.th = createElement \"th\", \"pvtAxisLabel #{hClass}\", \"#{arrow}#{ah.text}\" \r\n if col < attrs.length-1 and col < opts.disableFrom and not opts.disableExpandCollapse\r\n ah.th.onclick = (event) ->\r\n event = event || window.event\r\n ah.onClick axisHeaders, col, attrs, opts\r\n axisHeaders.ah.push ah\r\n return ah \r\n\r\n buildColAxisHeaders = (thead, rowAttrs, colAttrs, opts) ->\r\n axisHeaders =\r\n collapseAttrHeader: collapseCol\r\n expandAttrHeader: expandCol\r\n ah: []\r\n for attr, col in colAttrs\r\n ah = buildAxisHeader axisHeaders, col, colAttrs, opts.colSubtotalDisplay\r\n ah.tr = createElement \"tr\"\r\n ah.tr.appendChild createElement \"th\", null, null, {colspan: rowAttrs.length, rowspan: colAttrs.length} if col is 0 and rowAttrs.length isnt 0\r\n ah.tr.appendChild ah.th\r\n thead.appendChild ah.tr\r\n return axisHeaders\r\n\r\n buildRowAxisHeaders = (thead, rowAttrs, colAttrs, opts) ->\r\n axisHeaders =\r\n collapseAttrHeader: collapseRow\r\n expandAttrHeader: expandRow\r\n ah: []\r\n tr: createElement \"tr\"\r\n for col in [0..rowAttrs.length-1] \r\n ah = buildAxisHeader axisHeaders, col, rowAttrs, opts.rowSubtotalDisplay\r\n axisHeaders.tr.appendChild ah.th\r\n if colAttrs.length != 0\r\n th = createElement \"th\"\r\n axisHeaders.tr.appendChild th\r\n thead.appendChild axisHeaders.tr\r\n return axisHeaders\r\n\r\n getHeaderText = (h, attrs, opts) ->\r\n arrow = \" #{arrowExpanded} \"\r\n arrow = \"\" if h.col == attrs.length-1 or h.col >= opts.disableFrom or opts.disableExpandCollapse or h.children.length is 0\r\n return \"#{arrow}#{h.text}\"\r\n\r\n buildColHeader = (axisHeaders, attrHeaders, h, rowAttrs, colAttrs, node, opts) ->\r\n # DF Recurse\r\n buildColHeader axisHeaders, attrHeaders, h[chKey], rowAttrs, colAttrs, node, opts for chKey in h.children\r\n # Process\r\n ah = axisHeaders.ah[h.col]\r\n ah.attrHeaders.push h\r\n\r\n h.node = node.counter\r\n h.onClick = collapseCol\r\n\r\n addClass h.th, \"#{classColShow} col#{h.row} colcol#{h.col} #{classColExpanded}\"\r\n h.th.setAttribute \"data-colnode\", h.node\r\n h.th.colSpan = h.childrenSpan if h.children.length isnt 0\r\n h.th.rowSpan = 2 if h.children.length is 0 and rowAttrs.length isnt 0\r\n h.th.textContent = getHeaderText h, colAttrs, opts.colSubtotalDisplay\r\n if h.children.length isnt 0 and h.col < opts.colSubtotalDisplay.disableFrom\r\n ah.expandables++\r\n ah.expandedCount += 1\r\n h.th.colSpan++ if not opts.colSubtotalDisplay.hideOnExpand\r\n if not opts.colSubtotalDisplay.disableExpandCollapse\r\n h.th.onclick = (event) ->\r\n event = event || window.event\r\n h.onClick axisHeaders, h, opts.colSubtotalDisplay \r\n h.sTh = createElement \"th\", \"pvtColLabelFiller #{classColShow} col#{h.row} colcol#{h.col} #{classColExpanded}\"\r\n h.sTh.setAttribute \"data-colnode\", h.node\r\n h.sTh.rowSpan = colAttrs.length-h.col\r\n replaceClass h.sTh, classColShow, classColHide if opts.colSubtotalDisplay.hideOnExpand\r\n h[h.children[0]].tr.appendChild h.sTh\r\n\r\n h.parent?.childrenSpan += h.th.colSpan\r\n\r\n h.clickStatus = clickStatusExpanded\r\n ah.tr.appendChild h.th\r\n h.tr = ah.tr\r\n attrHeaders.push h\r\n node.counter++ \r\n\r\n\r\n buildRowTotalsHeader = (tr, rowAttrs, colAttrs) ->\r\n th = createElement \"th\", \"pvtTotalLabel rowTotal\", opts.localeStrings.totals,\r\n rowspan: if colAttrs.length is 0 then 1 else colAttrs.length + (if rowAttrs.length is 0 then 0 else 1)\r\n tr.appendChild th\r\n\r\n buildRowHeader = (tbody, axisHeaders, attrHeaders, h, rowAttrs, colAttrs, node, opts) ->\r\n # DF Recurse\r\n buildRowHeader tbody, axisHeaders, attrHeaders, h[chKey], rowAttrs, colAttrs, node, opts for chKey in h.children\r\n # Process\r\n ah = axisHeaders.ah[h.col]\r\n ah.attrHeaders.push h\r\n\r\n h.node = node.counter\r\n h.onClick = collapseRow\r\n firstChild = h[h.children[0]] if h.children.length isnt 0\r\n\r\n addClass h.th, \"#{classRowShow} row#{h.row} rowcol#{h.col} #{classRowExpanded}\"\r\n h.th.setAttribute \"data-rownode\", h.node\r\n h.th.colSpan = 2 if h.col is rowAttrs.length-1 and colAttrs.length isnt 0\r\n h.th.rowSpan = h.childrenSpan if h.children.length isnt 0\r\n h.th.textContent = getHeaderText h, rowAttrs, opts.rowSubtotalDisplay\r\n\r\n h.tr = createElement \"tr\", \"row#{h.row}\"\r\n h.tr.appendChild h.th\r\n if h.children.length is 0\r\n tbody.appendChild h.tr\r\n else\r\n tbody.insertBefore h.tr, firstChild.tr\r\n \r\n if h.children.length isnt 0 and h.col < opts.rowSubtotalDisplay.disableFrom\r\n ++ah.expandedCount\r\n ++ah.expandables\r\n if not opts.rowSubtotalDisplay.disableExpandCollapse\r\n h.th.onclick = (event) ->\r\n event = event || window.event\r\n h.onClick axisHeaders, h, opts.rowSubtotalDisplay\r\n\r\n h.sTh = createElement \"th\", \"pvtRowLabelFiller row#{h.row} rowcol#{h.col} #{classRowExpanded} #{classRowShow}\"\r\n replaceClass h.sTh, classRowShow, classRowHide if opts.rowSubtotalDisplay.hideOnExpand\r\n h.sTh.setAttribute \"data-rownode\", h.node\r\n h.sTh.colSpan = rowAttrs.length-(h.col+1) + if colAttrs.length != 0 then 1 else 0 \r\n\r\n if opts.rowSubtotalDisplay.displayOnTop\r\n h.tr.appendChild h.sTh\r\n else\r\n h.th.rowSpan += 1 # if not opts.rowSubtotalDisplay.hideOnExpand\r\n h.sTr = createElement \"tr\", \"row#{h.row}\"\r\n h.sTr.appendChild h.sTh\r\n tbody.appendChild h.sTr\r\n\r\n h.th.rowSpan++ if h.children.length isnt 0\r\n h.parent?.childrenSpan += h.th.rowSpan\r\n\r\n h.clickStatus = clickStatusExpanded\r\n attrHeaders.push h\r\n node.counter++\r\n\r\n getTableEventHandlers = (value, rowKey, colKey, rowAttrs, colAttrs, opts) ->\r\n return if not opts.table?.eventHandlers\r\n eventHandlers = {}\r\n for own event, handler of opts.table.eventHandlers\r\n filters = {}\r\n filters[attr] = colKey[i] for own i, attr of colAttrs when colKey[i]?\r\n filters[attr] = rowKey[i] for own i, attr of rowAttrs when rowKey[i]?\r\n eventHandlers[event] = (e) -> handler(e, value, filters, pivotData)\r\n return eventHandlers\r\n\r\n buildValues = (tbody, colAttrHeaders, rowAttrHeaders, rowAttrs, colAttrs, opts) ->\r\n for rh in rowAttrHeaders when rh.col is rowAttrs.length-1 or (rh.children.length isnt 0 and rh.col < opts.rowSubtotalDisplay.disableFrom)\r\n rCls = \"pvtVal row#{rh.row} rowcol#{rh.col} #{classRowExpanded}\"\r\n if rh.children.length > 0\r\n rCls += \" pvtRowSubtotal\"\r\n rCls += if opts.rowSubtotalDisplay.hideOnExpand then \" #{classRowHide}\" else \" #{classRowShow}\"\r\n else\r\n rCls += \" #{classRowShow}\"\r\n tr = if rh.sTr then rh.sTr else rh.tr\r\n for ch in colAttrHeaders when ch.col is colAttrs.length-1 or (ch.children.length isnt 0 and ch.col < opts.colSubtotalDisplay.disableFrom)\r\n aggregator = tree[rh.flatKey][ch.flatKey] ? {value: (-> null), format: -> \"\"}\r\n val = aggregator.value()\r\n cls = \" #{rCls} col#{ch.row} colcol#{ch.col} #{classColExpanded}\"\r\n if ch.children.length > 0\r\n cls += \" pvtColSubtotal\"\r\n cls += if opts.colSubtotalDisplay.hideOnExpand then \" #{classColHide}\" else \" #{classColShow}\"\r\n else\r\n cls += \" #{classColShow}\"\r\n td = createElement \"td\", cls, aggregator.format(val),\r\n \"data-value\": val\r\n \"data-rownode\": rh.node\r\n \"data-colnode\": ch.node,\r\n getTableEventHandlers val, rh.key, ch.key, rowAttrs, colAttrs, opts\r\n\r\n tr.appendChild td\r\n\r\n # buildRowTotal\r\n totalAggregator = rowTotals[rh.flatKey]\r\n val = totalAggregator.value()\r\n td = createElement \"td\", \"pvtTotal rowTotal #{rCls}\", totalAggregator.format(val),\r\n \"data-value\": val\r\n \"data-row\": \"row#{rh.row}\"\r\n \"data-rowcol\": \"col#{rh.col}\"\r\n \"data-rownode\": rh.node,\r\n getTableEventHandlers val, rh.key, [], rowAttrs, colAttrs, opts\r\n tr.appendChild td\r\n\r\n buildColTotalsHeader = (rowAttrs, colAttrs) ->\r\n tr = createElement \"tr\"\r\n colspan = rowAttrs.length + (if colAttrs.length == 0 then 0 else 1)\r\n th = createElement \"th\", \"pvtTotalLabel colTotal\", opts.localeStrings.totals, {colspan: colspan}\r\n tr.appendChild th\r\n return tr\r\n\r\n buildColTotals = (tr, attrHeaders, rowAttrs, colAttrs, opts) ->\r\n for h in attrHeaders when h.col is colAttrs.length-1 or (h.children.length isnt 0 and h.col < opts.colSubtotalDisplay.disableFrom)\r\n clsNames = \"pvtVal pvtTotal colTotal #{classColExpanded} col#{h.row} colcol#{h.col}\"\r\n if h.children.length isnt 0\r\n clsNames += \" pvtColSubtotal\" \r\n clsNames += if opts.colSubtotalDisplay.hideOnExpand then \" #{classColHide}\" else \" #{classColShow}\"\r\n else\r\n clsNames += \" #{classColShow}\"\r\n totalAggregator = colTotals[h.flatKey]\r\n val = totalAggregator.value()\r\n td = createElement \"td\", clsNames, totalAggregator.format(val),\r\n \"data-value\": val\r\n \"data-for\": \"col#{h.col}\"\r\n \"data-colnode\": \"#{h.node}\",\r\n getTableEventHandlers val, [], h.key, rowAttrs, colAttrs, opts\r\n tr.appendChild td\r\n\r\n buildGrandTotal = (tbody, tr, rowAttrs, colAttrs, opts) ->\r\n totalAggregator = allTotal\r\n val = totalAggregator.value()\r\n td = createElement \"td\", \"pvtGrandTotal\", totalAggregator.format(val),\r\n {\"data-value\": val},\r\n getTableEventHandlers val, [], [], rowAttrs, colAttrs, opts\r\n tr.appendChild td\r\n tbody.appendChild tr\r\n\r\n collapseAxisHeaders = (axisHeaders, col, opts) ->\r\n collapsible = Math.min axisHeaders.ah.length-2, opts.disableFrom-1\r\n return if col > collapsible\r\n for i in [col..collapsible]\r\n ah = axisHeaders.ah[i]\r\n replaceClass ah.th, classExpanded, classCollapsed\r\n ah.th.textContent = \" #{arrowCollapsed} #{ah.text}\"\r\n ah.clickStatus = clickStatusCollapsed\r\n ah.onClick = expandAxis\r\n\r\n adjustAxisHeader = (axisHeaders, col, opts) ->\r\n ah = axisHeaders.ah[col]\r\n if ah.expandedCount is 0\r\n collapseAxisHeaders axisHeaders, col, opts\r\n else if ah.expandedCount is ah.expandables\r\n replaceClass ah.th, classCollapsed, classExpanded\r\n ah.th.textContent = \" #{arrowExpanded} #{ah.text}\"\r\n ah.clickStatus = clickStatusExpanded\r\n ah.onClick = collapseAxis\r\n\r\n hideChildCol = (ch) ->\r\n $(ch.th).closest 'table.pvtTable'\r\n .find \"tbody tr td[data-colnode=\\\"#{ch.node}\\\"], th[data-colnode=\\\"#{ch.node}\\\"]\" \r\n .removeClass classColShow \r\n .addClass classColHide\r\n\r\n collapseHiddenColSubtotal = (h, opts) ->\r\n $(h.th).closest 'table.pvtTable'\r\n .find \"tbody tr td[data-colnode=\\\"#{h.node}\\\"], th[data-colnode=\\\"#{h.node}\\\"]\" \r\n .removeClass classColExpanded\r\n .addClass classColCollapsed\r\n h.th.textContent = \" #{arrowCollapsed} #{h.text}\" if h.children.length isnt 0\r\n h.th.colSpan = 1\r\n \r\n collapseShowColSubtotal = (h, opts) ->\r\n $(h.th).closest 'table.pvtTable'\r\n .find \"tbody tr td[data-colnode=\\\"#{h.node}\\\"], th[data-colnode=\\\"#{h.node}\\\"]\" \r\n .removeClass classColExpanded\r\n .addClass classColCollapsed\r\n .removeClass classColHide\r\n .addClass classColShow\r\n h.th.textContent = \" #{arrowCollapsed} #{h.text}\" if h.children.length isnt 0\r\n h.th.colSpan = 1\r\n\r\n collapseChildCol = (ch, h) ->\r\n collapseChildCol ch[chKey], h for chKey in ch.children when hasClass ch[chKey].th, classColShow\r\n hideChildCol ch\r\n\r\n collapseCol = (axisHeaders, h, opts) ->\r\n colSpan = h.th.colSpan - 1\r\n collapseChildCol h[chKey], h for chKey in h.children when hasClass h[chKey].th, classColShow\r\n if h.col < opts.disableFrom\r\n if hasClass h.th, classColHide\r\n collapseHiddenColSubtotal h, opts\r\n else \r\n collapseShowColSubtotal h, opts\r\n p = h.parent\r\n while p\r\n p.th.colSpan -= colSpan\r\n p = p.parent\r\n h.clickStatus = clickStatusCollapsed\r\n h.onClick = expandCol\r\n axisHeaders.ah[h.col].expandedCount--\r\n adjustAxisHeader axisHeaders, h.col, opts\r\n\r\n showChildCol = (ch) ->\r\n $(ch.th).closest 'table.pvtTable'\r\n .find \"tbody tr td[data-colnode=\\\"#{ch.node}\\\"], th[data-colnode=\\\"#{ch.node}\\\"]\" \r\n .removeClass classColHide\r\n .addClass classColShow\r\n\r\n expandHideColSubtotal = (h) ->\r\n $(h.th).closest 'table.pvtTable'\r\n .find \"tbody tr td[data-colnode=\\\"#{h.node}\\\"], th[data-colnode=\\\"#{h.node}\\\"]\" \r\n .removeClass \"#{classColCollapsed} #{classColShow}\" \r\n .addClass \"#{classColExpanded} #{classColHide}\" \r\n replaceClass h.th, classColHide, classColShow\r\n h.th.textContent = \" #{arrowExpanded} #{h.text}\"\r\n\r\n expandShowColSubtotal = (h) ->\r\n $(h.th).closest 'table.pvtTable'\r\n .find \"tbody tr td[data-colnode=\\\"#{h.node}\\\"], th[data-colnode=\\\"#{h.node}\\\"]\" \r\n .removeClass \"#{classColCollapsed} #{classColHide}\"\r\n .addClass \"#{classColExpanded} #{classColShow}\"\r\n h.th.colSpan++\r\n h.th.textContent = \" #{arrowExpanded} #{h.text}\"\r\n\r\n expandChildCol = (ch, opts) ->\r\n if ch.children.length isnt 0 and opts.hideOnExpand and ch.clickStatus is clickStatusExpanded\r\n replaceClass ch.th, classColHide, classColShow\r\n else\r\n showChildCol ch\r\n if ch.sTh and ch.clickStatus is clickStatusExpanded and opts.hideOnExpand\r\n replaceClass ch.sTh, classColShow, classColHide\r\n expandChildCol ch[chKey], opts for chKey in ch.children if (ch.clickStatus is clickStatusExpanded or ch.col >= opts.disableFrom)\r\n \r\n expandCol = (axisHeaders, h, opts) ->\r\n if h.clickStatus is clickStatusExpanded\r\n adjustAxisHeader axisHeaders, h.col, opts\r\n return\r\n colSpan = 0\r\n for chKey in h.children\r\n ch = h[chKey]\r\n expandChildCol ch, opts\r\n colSpan += ch.th.colSpan\r\n h.th.colSpan = colSpan\r\n\r\n if h.col < opts.disableFrom\r\n if opts.hideOnExpand\r\n expandHideColSubtotal h\r\n --colSpan\r\n else\r\n expandShowColSubtotal h\r\n p = h.parent\r\n while p\r\n p.th.colSpan += colSpan\r\n p = p.parent\r\n h.clickStatus = clickStatusExpanded\r\n h.onClick = collapseCol\r\n axisHeaders.ah[h.col].expandedCount++\r\n adjustAxisHeader axisHeaders, h.col, opts\r\n\r\n hideChildRow = (ch, opts) ->\r\n replaceClass cell, classRowShow, classRowHide for cell in ch.tr.querySelectorAll \"th, td\"\r\n replaceClass cell, classRowShow, classRowHide for cell in ch.sTr.querySelectorAll \"th, td\" if ch.sTr\r\n\r\n collapseShowRowSubtotal = (h, opts) ->\r\n h.th.textContent = \" #{arrowCollapsed} #{h.text}\"\r\n for cell in h.tr.querySelectorAll \"th, td\"\r\n removeClass cell, \"#{classRowExpanded} #{classRowHide}\"\r\n addClass cell, \"#{classRowCollapsed} #{classRowShow}\"\r\n if h.sTr\r\n for cell in h.sTr.querySelectorAll \"th, td\"\r\n removeClass cell, \"#{classRowExpanded} #{classRowHide}\"\r\n addClass cell, \"#{classRowCollapsed} #{classRowShow}\"\r\n\r\n collapseChildRow = (ch, h, opts) ->\r\n collapseChildRow ch[chKey], h, opts for chKey in ch.children\r\n hideChildRow ch, opts\r\n\r\n collapseRow = (axisHeaders, h, opts) ->\r\n collapseChildRow h[chKey], h, opts for chKey in h.children\r\n collapseShowRowSubtotal h, opts\r\n h.clickStatus = clickStatusCollapsed\r\n h.onClick = expandRow\r\n axisHeaders.ah[h.col].expandedCount--\r\n adjustAxisHeader axisHeaders, h.col, opts\r\n\r\n showChildRow = (ch, opts) ->\r\n replaceClass cell, classRowHide, classRowShow for cell in ch.tr.querySelectorAll \"th, td\"\r\n replaceClass cell, classRowHide, classRowShow for cell in ch.sTr.querySelectorAll \"th, td\" if ch.sTr\r\n\r\n expandShowRowSubtotal = (h, opts) ->\r\n h.th.textContent = \" #{arrowExpanded} #{h.text}\"\r\n for cell in h.tr.querySelectorAll \"th, td\"\r\n removeClass cell, \"#{classRowCollapsed} #{classRowHide}\"\r\n addClass cell, \"#{classRowExpanded} #{classRowShow}\"\r\n if h.sTr\r\n for cell in h.sTr.querySelectorAll \"th, td\"\r\n removeClass cell, \"#{classRowCollapsed} #{classRowHide}\"\r\n addClass cell, \"#{classRowExpanded} #{classRowShow}\"\r\n\r\n expandHideRowSubtotal = (h, opts) ->\r\n h.th.textContent = \" #{arrowExpanded} #{h.text}\"\r\n for cell in h.tr.querySelectorAll \"th, td\"\r\n removeClass cell, \"#{classRowCollapsed} #{classRowShow}\"\r\n addClass cell, \"#{classRowExpanded} #{classRowHide}\"\r\n removeClass h.th, \"#{classRowCollapsed} #{classRowHide}\"\r\n addClass cell, \"#{classRowExpanded} #{classRowShow}\"\r\n if h.sTr\r\n for cell in h.sTr.querySelectorAll \"th, td\"\r\n removeClass cell, \"#{classRowCollapsed} #{classRowShow}\"\r\n addClass cell, \"#{classRowExpanded} #{classRowHide}\"\r\n\r\n expandChildRow = (ch, opts) ->\r\n if ch.children.length isnt 0 and opts.hideOnExpand and ch.clickStatus is clickStatusExpanded\r\n replaceClass ch.th, classRowHide, classRowShow\r\n else\r\n showChildRow ch, opts\r\n if ch.sTh and ch.clickStatus is clickStatusExpanded and opts.hideOnExpand\r\n replaceClass ch.sTh, classRowShow, classRowHide\r\n expandChildRow ch[chKey], opts for chKey in ch.children if (ch.clickStatus is clickStatusExpanded or ch.col >= opts.disableFrom)\r\n\r\n expandRow = (axisHeaders, h, opts) ->\r\n if h.clickStatus is clickStatusExpanded\r\n adjustAxisHeader axisHeaders, h.col, opts\r\n return\r\n for chKey in h.children\r\n ch = h[chKey]\r\n expandChildRow ch, opts\r\n if h.children.length isnt 0 \r\n if opts.hideOnExpand\r\n expandHideRowSubtotal h, opts\r\n else\r\n expandShowRowSubtotal h, opts\r\n h.clickStatus = clickStatusExpanded\r\n h.onClick = collapseRow\r\n axisHeaders.ah[h.col].expandedCount++\r\n adjustAxisHeader axisHeaders, h.col, opts\r\n \r\n collapseAxis = (axisHeaders, col, attrs, opts) ->\r\n collapsible = Math.min attrs.length-2, opts.disableFrom-1\r\n return if col > collapsible\r\n axisHeaders.collapseAttrHeader axisHeaders, h, opts for h in axisHeaders.ah[i].attrHeaders when h.clickStatus is clickStatusExpanded and h.children.length isnt 0 for i in [collapsible..col] by -1\r\n\r\n expandAxis = (axisHeaders, col, attrs, opts) ->\r\n ah = axisHeaders.ah[col]\r\n axisHeaders.expandAttrHeader axisHeaders, h, opts for h in axisHeaders.ah[i].attrHeaders for i in [0..col] \r\n # when h.clickStatus is clickStatusCollapsed and h.children.length isnt 0 for i in [0..col] \r\n\r\n main = (rowAttrs, rowKeys, colAttrs, colKeys) ->\r\n rowAttrHeaders = []\r\n colAttrHeaders = []\r\n\r\n colKeyHeaders = processKeys colKeys, \"pvtColLabel\" if colAttrs.length isnt 0 and colKeys.length isnt 0\r\n rowKeyHeaders = processKeys rowKeys, \"pvtRowLabel\" if rowAttrs.length isnt 0 and rowKeys.length isnt 0\r\n\r\n result = createElement \"table\", \"pvtTable\", null, {style: \"display: none;\"}\r\n\r\n thead = createElement \"thead\"\r\n result.appendChild thead\r\n\r\n if colAttrs.length isnt 0\r\n colAxisHeaders = buildColAxisHeaders thead, rowAttrs, colAttrs, opts\r\n node = counter: 0\r\n buildColHeader colAxisHeaders, colAttrHeaders, colKeyHeaders[chKey], rowAttrs, colAttrs, node, opts for chKey in colKeyHeaders.children\r\n buildRowTotalsHeader colAxisHeaders.ah[0].tr, rowAttrs, colAttrs\r\n\r\n tbody = createElement \"tbody\"\r\n result.appendChild tbody\r\n if rowAttrs.length isnt 0\r\n rowAxisHeaders = buildRowAxisHeaders thead, rowAttrs, colAttrs, opts\r\n buildRowTotalsHeader rowAxisHeaders.tr, rowAttrs, colAttrs if colAttrs.length is 0\r\n node = counter: 0\r\n buildRowHeader tbody, rowAxisHeaders, rowAttrHeaders, rowKeyHeaders[chKey], rowAttrs, colAttrs, node, opts for chKey in rowKeyHeaders.children\r\n\r\n buildValues tbody, colAttrHeaders, rowAttrHeaders, rowAttrs, colAttrs, opts\r\n tr = buildColTotalsHeader rowAttrs, colAttrs\r\n buildColTotals tr, colAttrHeaders, rowAttrs, colAttrs, opts if colAttrs.length > 0\r\n buildGrandTotal tbody, tr, rowAttrs, colAttrs, opts\r\n\r\n collapseAxis colAxisHeaders, opts.colSubtotalDisplay.collapseAt, colAttrs, opts.colSubtotalDisplay\r\n collapseAxis rowAxisHeaders, opts.rowSubtotalDisplay.collapseAt, rowAttrs, opts.rowSubtotalDisplay\r\n\r\n result.setAttribute \"data-numrows\", rowKeys.length\r\n result.setAttribute \"data-numcols\", colKeys.length\r\n result.style.display = \"\"\r\n\r\n return result\r\n\r\n return main rowAttrs, rowKeys, colAttrs, colKeys\r\n\r\n $.pivotUtilities.subtotal_renderers =\r\n \"Table With Subtotal\": (pvtData, opts) -> SubtotalRenderer pvtData, opts\r\n \"Table With Subtotal Bar Chart\": (pvtData, opts) -> $(SubtotalRenderer pvtData, opts).barchart()\r\n \"Table With Subtotal Heatmap\": (pvtData, opts) -> $(SubtotalRenderer pvtData, opts).heatmap \"heatmap\", opts\r\n \"Table With Subtotal Row Heatmap\": (pvtData, opts) -> $(SubtotalRenderer pvtData, opts).heatmap \"rowheatmap\", opts\r\n \"Table With Subtotal Col Heatmap\": (pvtData, opts) -> $(SubtotalRenderer pvtData, opts).heatmap \"colheatmap\", opts\r\n\r\n # \r\n # Aggregators\r\n #\r\n usFmtPct = $.pivotUtilities.numberFormat digitsAfterDecimal:1, scaler: 100, suffix: \"%\"\r\n aggregatorTemplates = $.pivotUtilities.aggregatorTemplates;\r\n\r\n subtotalAggregatorTemplates =\r\n fractionOf: (wrapped, type=\"row\", formatter=usFmtPct) -> (x...) -> (data, rowKey, colKey) ->\r\n rowKey = [] if typeof rowKey is \"undefined\"\r\n colKey = [] if typeof colKey is \"undefined\"\r\n selector: {row: [rowKey.slice(0, -1),[]], col: [[], colKey.slice(0, -1)]}[type]\r\n inner: wrapped(x...)(data, rowKey, colKey)\r\n push: (record) -> @inner.push record\r\n format: formatter\r\n value: -> @inner.value() / data.getAggregator(@selector...).inner.value()\r\n numInputs: wrapped(x...)().numInputs\r\n\r\n $.pivotUtilities.subtotalAggregatorTemplates = subtotalAggregatorTemplates\r\n\r\n $.pivotUtilities.subtotal_aggregators = do (tpl = aggregatorTemplates, sTpl = subtotalAggregatorTemplates) ->\r\n \"Sum As Fraction Of Parent Row\": sTpl.fractionOf(tpl.sum(), \"row\", usFmtPct)\r\n \"Sum As Fraction Of Parent Column\": sTpl.fractionOf(tpl.sum(), \"col\", usFmtPct)\r\n \"Count As Fraction Of Parent Row\": sTpl.fractionOf(tpl.count(), \"row\", usFmtPct)\r\n \"Count As Fraction Of Parent Column\": sTpl.fractionOf(tpl.count(), \"col\", usFmtPct)\r\n\r\n"]}