subtotal
Version:
Subtotal.js is a JavaScript plugin for PivotTable.js. It renders subtotals of rows and columns with the ability to expand and collapse rows.
3 lines (2 loc) • 18.3 kB
JavaScript
(function(){var t,l=function(t,l){function n(){this.constructor=t}for(var o in l)e.call(l,o)&&(t[o]=l[o]);return n.prototype=l.prototype,t.prototype=new n,t.__super__=l.prototype,t},e={}.hasOwnProperty,n=[].slice;(t=function(t){return"object"==typeof exports&&"object"==typeof module?t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){var o,a,r,i,c;return o=function(t){function e(t,l){e.__super__.constructor.call(this,t,l)}var n;return l(e,t),n=function(t,l,e,n,o){var a,r,i,c,s,d,u;for(s=[],a=!1,c=0,d=n.length;c<d;c++)r=n[c],s.push(null!=(u=t[r])?u:"null"),i=s.join(String.fromCharCode(0)),l[i]||(l[i]=o(s.slice()),a=!0),l[i].push(t);return a&&e.push(s),s},e.prototype.processRecord=function(t){var l,e,o,a,r,i,c,s,d,u,h,p,f;if(f=[],l=[],this.allTotal.push(t),f=n(t,this.rowTotals,this.rowKeys,this.rowAttrs,function(t){return function(l){return t.aggregator(t,l,[])}}(this)),l=n(t,this.colTotals,this.colKeys,this.colAttrs,function(t){return function(l){return t.aggregator(t,[],l)}}(this)),d=f.length-1,u=l.length-1,!(d<0||u<0)){for(p=[],i=s=0,h=d;0<=h?s<=h:s>=h;i=0<=h?++s:--s)o=f.slice(0,i+1),r=o.join(String.fromCharCode(0)),this.tree[r]||(this.tree[r]={}),p.push(function(){var n,i,s;for(s=[],c=n=0,i=u;0<=i?n<=i:n>=i;c=0<=i?++n:--n)e=l.slice(0,c+1),a=e.join(String.fromCharCode(0)),this.tree[r][a]||(this.tree[r][a]=this.aggregator(this,o,e)),s.push(this.tree[r][a].push(t));return s}.call(this));return p}},e}(t.pivotUtilities.PivotData),t.pivotUtilities.SubtotalPivotData=o,a=function(l,n){var o,a,r,i,c,s,d,u,h,p,f,b,g,v,S,C,w,y,x,m,T,A,D,k,O,E,F,H,q,R,L,_,j,K,P,U,N,W,B,I,M,V,G,Q,z,J,X,Y,Z,$,tt,lt,et,nt,ot,at,rt,it,ct,st,dt,ut,ht,pt;return M={table:{clickCallback:null},localeStrings:{totals:"Totals",subtotalOf:"Subtotal of"},arrowCollapsed:"▶",arrowExpanded:"◢",rowSubtotalDisplay:{displayOnTop:!0,disableFrom:99999,collapseAt:99999,hideOnExpand:!1,disableExpandCollapse:!1},colSubtotalDisplay:{displayOnTop:!0,disableFrom:99999,collapseAt:99999,hideOnExpand:!1,disableExpandCollapse:!1}},n=t.extend(!0,{},M,n),n.rowSubtotalDisplay.disableSubtotal&&(n.rowSubtotalDisplay.disableFrom=0),void 0!==n.rowSubtotalDisplay.disableAfter&&null!==n.rowSubtotalDisplay.disableAfter&&(n.rowSubtotalDisplay.disableFrom=n.rowSubtotalDisplay.disableAfter+1),void 0!==n.rowSubtotalDisplay.collapseAt&&null!==n.collapseRowsAt&&(n.rowSubtotalDisplay.collapseAt=n.collapseRowsAt),n.colSubtotalDisplay.disableSubtotal&&(n.colSubtotalDisplay.disableFrom=0),void 0!==n.colSubtotalDisplay.disableAfter&&null!==n.colSubtotalDisplay.disableAfter&&(n.colSubtotalDisplay.disableFrom=n.colSubtotalDisplay.disableAfter+1),void 0!==n.colSubtotalDisplay.collapseAt&&null!==n.collapseColsAt&&(n.colSubtotalDisplay.collapseAt=n.collapseColsAt),H=l.colAttrs,ct=l.rowAttrs,st=l.getRowKeys(),q=l.getColKeys(),pt=l.tree,dt=l.rowTotals,R=l.colTotals,r=l.allTotal,k="rowhide",O="rowshow",y="colhide",x="colshow",F="expanded",E="collapsed",T="expanded",m="collapsed",D="rowexpanded",A="rowcollapsed",w="colexpanded",C="colcollapsed",c=n.arrowExpanded,i=n.arrowCollapsed,et=function(t,l){var e;return e=new RegExp("(?:^|\\s)"+l+"(?!\\S)","g"),null!==t.className.match(e)},rt=function(t,l){var e,n,o,a,r,i;for(a=l.split(" "),i=[],e=0,n=a.length;e<n;e++)o=a[e],r=new RegExp("(?:^|\\s)"+o+"(?!\\S)","g"),i.push(t.className=t.className.replace(r,""));return i},o=function(t,l){var e,n,o,a,r;for(a=l.split(" "),r=[],e=0,n=a.length;e<n;e++)o=a[e],et(t,o)?r.push(void 0):r.push(t.className+=" "+o);return r},it=function(t,l,e){return rt(t,l),o(t,e)},I=function(t,l,n,o,a){var r,i,c,s,d;if(i=document.createElement(t),null!=l&&(i.className=l),null!=n&&(i.textContent=n),null!=o)for(r in o)e.call(o,r)&&(d=o[r],i.setAttribute(r,d));if(null!=a)for(c in a)e.call(a,c)&&(s=a[c],i.addEventListener(c,s));return i},function(t,l){var n,o,a;o=[];for(n in l)e.call(l,n)&&(a=l[n],o.push(t.setAttribute(n,a)));return o},at=function(t,l,e){var n,o,a;return o=t[0].length-1,n={children:[]},a=0,t.reduce(function(t){return function(t,e){var r;return r=0,e.reduce(function(t,i,c,s){var d,u,h,p,f;if(t[i]||(h=e.slice(0,r+1),t[i]={row:a,col:r,descendants:0,children:[],text:i,key:h,flatKey:h.join(String.fromCharCode(0)),firstLeaf:null,leaves:0,parent:0!==r?t:null,th:I("th",l,i),childrenSpan:0},t.children.push(i)),r>0&&t.descendants++,r++,c===o){for(p=n,d=u=0,f=o-1;0<=f?u<=f:u>=f;d=0<=f?++u:--u)o>0&&(p[e[d]].leaves++,p[e[d]].firstLeaf||(p[e[d]].firstLeaf=t[i]),p=p[e[d]]);return n}return t[i]},n),a++,n}}(),n),n},s=function(t,l,e,n){var o,a,r;return o={text:e[l],expandedCount:0,expandables:0,attrHeaders:[],clickStatus:F,onClick:L},a=c+" ",r=T,l>=n.collapseAt&&(a=i+" ",r=m,o.clickStatus=E,o.onClick=V),(l===e.length-1||l>=n.disableFrom||n.disableExpandCollapse)&&(a=""),o.th=I("th","pvtAxisLabel "+r,""+a+o.text),l<e.length-1&&l<n.disableFrom&&!n.disableExpandCollapse&&(o.th.onclick=function(a){return a=a||window.event,o.onClick(t,l,e,n)}),t.ah.push(o),o},d=function(t,l,e,n){var o,a,r,i,c;for(a={collapseAttrHeader:P,expandAttrHeader:z,ah:[]},r=i=0,c=e.length;i<c;r=++i)e[r],o=s(a,r,e,n.colSubtotalDisplay),o.tr=I("tr"),0===r&&0!==l.length&&o.tr.appendChild(I("th",null,null,{colspan:l.length,rowspan:e.length})),o.tr.appendChild(o.th),t.appendChild(o.tr);return a},b=function(t,l,e,n){var o,a,r,i,c,d;for(a={collapseAttrHeader:N,expandAttrHeader:Y,ah:[],tr:I("tr")},r=i=0,c=l.length-1;0<=c?i<=c:i>=c;r=0<=c?++i:--i)o=s(a,r,l,n.rowSubtotalDisplay),a.tr.appendChild(o.th);return 0!==e.length&&(d=I("th"),a.tr.appendChild(d)),t.appendChild(a.tr),a},tt=function(t,l,e){var n;return n=" "+c+" ",(t.col===l.length-1||t.col>=e.disableFrom||e.disableExpandCollapse||0===t.children.length)&&(n=""),""+n+t.text},u=function(t,l,e,n,a,r,i){var c,s,d,h,p,f;for(p=e.children,d=0,h=p.length;d<h;d++)s=p[d],u(t,l,e[s],n,a,r,i);return c=t.ah[e.col],c.attrHeaders.push(e),e.node=r.counter,e.onClick=P,o(e.th,x+" col"+e.row+" colcol"+e.col+" "+w),e.th.setAttribute("data-colnode",e.node),0!==e.children.length&&(e.th.colSpan=e.childrenSpan),0===e.children.length&&0!==n.length&&(e.th.rowSpan=2),e.th.textContent=tt(e,a,i.colSubtotalDisplay),0!==e.children.length&&e.col<i.colSubtotalDisplay.disableFrom&&(c.expandables++,c.expandedCount+=1,i.colSubtotalDisplay.hideOnExpand||e.th.colSpan++,i.colSubtotalDisplay.disableExpandCollapse||(e.th.onclick=function(l){return l=l||window.event,e.onClick(t,e,i.colSubtotalDisplay)}),e.sTh=I("th","pvtColLabelFiller "+x+" col"+e.row+" colcol"+e.col+" "+w),e.sTh.setAttribute("data-colnode",e.node),e.sTh.rowSpan=a.length-e.col,i.colSubtotalDisplay.hideOnExpand&&it(e.sTh,x,y),e[e.children[0]].tr.appendChild(e.sTh)),null!=(f=e.parent)&&(f.childrenSpan+=e.th.colSpan),e.clickStatus=F,c.tr.appendChild(e.th),e.tr=c.tr,l.push(e),r.counter++},v=function(t,l,e){var o;return o=I("th","pvtTotalLabel rowTotal",n.localeStrings.totals,{rowspan:0===e.length?1:e.length+(0===l.length?0:1)}),t.appendChild(o)},g=function(t,l,e,n,a,r,i,c){var s,d,u,h,p,f,b;for(f=n.children,h=0,p=f.length;h<p;h++)d=f[h],g(t,l,e,n[d],a,r,i,c);return s=l.ah[n.col],s.attrHeaders.push(n),n.node=i.counter,n.onClick=N,0!==n.children.length&&(u=n[n.children[0]]),o(n.th,O+" row"+n.row+" rowcol"+n.col+" "+D),n.th.setAttribute("data-rownode",n.node),n.col===a.length-1&&0!==r.length&&(n.th.colSpan=2),0!==n.children.length&&(n.th.rowSpan=n.childrenSpan),n.th.textContent=tt(n,a,c.rowSubtotalDisplay),n.tr=I("tr","row"+n.row),n.tr.appendChild(n.th),0===n.children.length?t.appendChild(n.tr):t.insertBefore(n.tr,u.tr),0!==n.children.length&&n.col<c.rowSubtotalDisplay.disableFrom&&(++s.expandedCount,++s.expandables,c.rowSubtotalDisplay.disableExpandCollapse||(n.th.onclick=function(t){return t=t||window.event,n.onClick(l,n,c.rowSubtotalDisplay)}),n.sTh=I("th","pvtRowLabelFiller row"+n.row+" rowcol"+n.col+" "+D+" "+O),c.rowSubtotalDisplay.hideOnExpand&&it(n.sTh,O,k),n.sTh.setAttribute("data-rownode",n.node),n.sTh.colSpan=a.length-(n.col+1)+(0!==r.length?1:0),c.rowSubtotalDisplay.displayOnTop?n.tr.appendChild(n.sTh):(n.th.rowSpan+=1,n.sTr=I("tr","row"+n.row),n.sTr.appendChild(n.sTh),t.appendChild(n.sTr))),0!==n.children.length&&n.th.rowSpan++,null!=(b=n.parent)&&(b.childrenSpan+=n.th.rowSpan),n.clickStatus=F,e.push(n),i.counter++},lt=function(t,n,o,a,r,i){var c,s,d,u,h,p,f,b;if(null!=(f=i.table)?f.eventHandlers:void 0){d={},b=i.table.eventHandlers;for(s in b)if(e.call(b,s)){h=b[s],u={};for(p in r)e.call(r,p)&&(c=r[p],null!=o[p]&&(u[c]=o[p]));for(p in a)e.call(a,p)&&(c=a[p],null!=n[p]&&(u[c]=n[p]));d[s]=function(e){return h(e,t,u,l)}}return d}},S=function(t,l,e,n,o,a){var r,i,c,s,d,u,h,p,f,b,g,v,S,C,m;for(b=[],s=0,u=e.length;s<u;s++)if(g=e[s],g.col===n.length-1||0!==g.children.length&&g.col<a.rowSubtotalDisplay.disableFrom){for(p="pvtVal row"+g.row+" rowcol"+g.col+" "+D,g.children.length>0?(p+=" pvtRowSubtotal",p+=a.rowSubtotalDisplay.hideOnExpand?" "+k:" "+O):p+=" "+O,C=g.sTr?g.sTr:g.tr,d=0,h=l.length;d<h;d++)i=l[d],(i.col===o.length-1||0!==i.children.length&&i.col<a.colSubtotalDisplay.disableFrom)&&(r=null!=(f=pt[g.flatKey][i.flatKey])?f:{value:function(){return null},format:function(){return""}},m=r.value(),c=" "+p+" col"+i.row+" colcol"+i.col+" "+w,i.children.length>0?(c+=" pvtColSubtotal",c+=a.colSubtotalDisplay.hideOnExpand?" "+y:" "+x):c+=" "+x,v=I("td",c,r.format(m),{"data-value":m,"data-rownode":g.node,"data-colnode":i.node},lt(m,g.key,i.key,n,o,a)),C.appendChild(v));S=dt[g.flatKey],m=S.value(),v=I("td","pvtTotal rowTotal "+p,S.format(m),{"data-value":m,"data-row":"row"+g.row,"data-rowcol":"col"+g.col,"data-rownode":g.node}),lt(m,g.key,[],n,o,a),b.push(C.appendChild(v))}return b},p=function(t,l){var e,o,a;return a=I("tr"),e=t.length+(0===l.length?0:1),o=I("th","pvtTotalLabel colTotal",n.localeStrings.totals,{colspan:e}),a.appendChild(o),a},h=function(t,l,e,n,o){var a,r,i,c,s,d,u,h;for(s=[],i=0,c=l.length;i<c;i++)r=l[i],(r.col===n.length-1||0!==r.children.length&&r.col<o.colSubtotalDisplay.disableFrom)&&(a="pvtVal pvtTotal colTotal "+w+" col"+r.row+" colcol"+r.col,0!==r.children.length?(a+=" pvtColSubtotal",a+=o.colSubtotalDisplay.hideOnExpand?" "+y:" "+x):a+=" "+x,u=R[r.flatKey],h=u.value(),d=I("td",a,u.format(h),{"data-value":h,"data-for":"col"+r.col,"data-colnode":""+r.node},lt(h,[],r.key,e,n,o)),s.push(t.appendChild(d)));return s},f=function(t,l,e,n,o){var a,i,c;return i=r,c=i.value(),a=I("td","pvtGrandTotal",i.format(c),{"data-value":c},lt(c,[],[],e,n,o)),l.appendChild(a),t.appendChild(l)},_=function(t,l,e){var n,o,a,r,c,s,d;if(o=Math.min(t.ah.length-2,e.disableFrom-1),!(l>o)){for(d=[],a=r=c=l,s=o;c<=s?r<=s:r>=s;a=c<=s?++r:--r)n=t.ah[a],it(n.th,T,m),n.th.textContent=" "+i+" "+n.text,n.clickStatus=E,d.push(n.onClick=V);return d}},a=function(t,l,e){var n;return n=t.ah[l],0===n.expandedCount?_(t,l,e):n.expandedCount===n.expandables?(it(n.th,m,T),n.th.textContent=" "+c+" "+n.text,n.clickStatus=F,n.onClick=L):void 0},nt=function(l){return t(l.th).closest("table.pvtTable").find('tbody tr td[data-colnode="'+l.node+'"], th[data-colnode="'+l.node+'"]').removeClass(x).addClass(y)},U=function(l,e){return t(l.th).closest("table.pvtTable").find('tbody tr td[data-colnode="'+l.node+'"], th[data-colnode="'+l.node+'"]').removeClass(w).addClass(C),0!==l.children.length&&(l.th.textContent=" "+i+" "+l.text),l.th.colSpan=1},W=function(l,e){return t(l.th).closest("table.pvtTable").find('tbody tr td[data-colnode="'+l.node+'"], th[data-colnode="'+l.node+'"]').removeClass(w).addClass(C).removeClass(y).addClass(x),0!==l.children.length&&(l.th.textContent=" "+i+" "+l.text),l.th.colSpan=1},j=function(t,l){var e,n,o,a;for(a=t.children,n=0,o=a.length;n<o;n++)e=a[n],et(t[e].th,x)&&j(t[e],l);return nt(t)},P=function(t,l,e){var n,o,r,i,c,s;for(o=l.th.colSpan-1,s=l.children,r=0,i=s.length;r<i;r++)n=s[r],et(l[n].th,x)&&j(l[n],l);for(l.col<e.disableFrom&&(et(l.th,y)?U(l,e):W(l,e)),c=l.parent;c;)c.th.colSpan-=o,c=c.parent;return l.clickStatus=E,l.onClick=z,t.ah[l.col].expandedCount--,a(t,l.col,e)},ut=function(l){return t(l.th).closest("table.pvtTable").find('tbody tr td[data-colnode="'+l.node+'"], th[data-colnode="'+l.node+'"]').removeClass(y).addClass(x)},J=function(l){return t(l.th).closest("table.pvtTable").find('tbody tr td[data-colnode="'+l.node+'"], th[data-colnode="'+l.node+'"]').removeClass(C+" "+x).addClass(w+" "+y),it(l.th,y,x),l.th.textContent=" "+c+" "+l.text},Z=function(l){return t(l.th).closest("table.pvtTable").find('tbody tr td[data-colnode="'+l.node+'"], th[data-colnode="'+l.node+'"]').removeClass(C+" "+y).addClass(w+" "+x),l.th.colSpan++,l.th.textContent=" "+c+" "+l.text},G=function(t,l){var e,n,o,a,r;if(0!==t.children.length&&l.hideOnExpand&&t.clickStatus===F?it(t.th,y,x):ut(t),t.sTh&&t.clickStatus===F&&l.hideOnExpand&&it(t.sTh,x,y),t.clickStatus===F||t.col>=l.disableFrom){for(a=t.children,r=[],n=0,o=a.length;n<o;n++)e=a[n],r.push(G(t[e],l));return r}},z=function(t,l,e){var n,o,r,i,c,s,d;if(l.clickStatus===F)return void a(t,l.col,e);for(r=0,d=l.children,i=0,c=d.length;i<c;i++)o=d[i],n=l[o],G(n,e),r+=n.th.colSpan;for(l.th.colSpan=r,l.col<e.disableFrom&&(e.hideOnExpand?(J(l),--r):Z(l)),s=l.parent;s;)s.th.colSpan+=r,s=s.parent;return l.clickStatus=F,l.onClick=P,t.ah[l.col].expandedCount++,a(t,l.col,e)},ot=function(t,l){var e,n,o,a,r,i,c,s;for(i=t.tr.querySelectorAll("th, td"),n=0,a=i.length;n<a;n++)e=i[n],it(e,O,k);if(t.sTr){for(c=t.sTr.querySelectorAll("th, td"),s=[],o=0,r=c.length;o<r;o++)e=c[o],s.push(it(e,O,k));return s}},B=function(t,l){var e,n,a,r,c,s,d,u;for(t.th.textContent=" "+i+" "+t.text,s=t.tr.querySelectorAll("th, td"),n=0,r=s.length;n<r;n++)e=s[n],rt(e,D+" "+k),o(e,A+" "+O);if(t.sTr){for(d=t.sTr.querySelectorAll("th, td"),u=[],a=0,c=d.length;a<c;a++)e=d[a],rt(e,D+" "+k),u.push(o(e,A+" "+O));return u}},K=function(t,l,e){var n,o,a,r;for(r=t.children,o=0,a=r.length;o<a;o++)n=r[o],K(t[n],l,e);return ot(t,e)},N=function(t,l,e){var n,o,r,i;for(i=l.children,o=0,r=i.length;o<r;o++)n=i[o],K(l[n],l,e);return B(l,e),l.clickStatus=E,l.onClick=Y,t.ah[l.col].expandedCount--,a(t,l.col,e)},ht=function(t,l){var e,n,o,a,r,i,c,s;for(i=t.tr.querySelectorAll("th, td"),n=0,a=i.length;n<a;n++)e=i[n],it(e,k,O);if(t.sTr){for(c=t.sTr.querySelectorAll("th, td"),s=[],o=0,r=c.length;o<r;o++)e=c[o],s.push(it(e,k,O));return s}},$=function(t,l){var e,n,a,r,i,s,d,u;for(t.th.textContent=" "+c+" "+t.text,s=t.tr.querySelectorAll("th, td"),n=0,r=s.length;n<r;n++)e=s[n],rt(e,A+" "+k),o(e,D+" "+O);if(t.sTr){for(d=t.sTr.querySelectorAll("th, td"),u=[],a=0,i=d.length;a<i;a++)e=d[a],rt(e,A+" "+k),u.push(o(e,D+" "+O));return u}},X=function(t,l){var e,n,a,r,i,s,d,u;for(t.th.textContent=" "+c+" "+t.text,s=t.tr.querySelectorAll("th, td"),n=0,r=s.length;n<r;n++)e=s[n],rt(e,A+" "+O),o(e,D+" "+k);if(rt(t.th,A+" "+k),o(e,D+" "+O),t.sTr){for(d=t.sTr.querySelectorAll("th, td"),u=[],a=0,i=d.length;a<i;a++)e=d[a],rt(e,A+" "+O),u.push(o(e,D+" "+k));return u}},Q=function(t,l){var e,n,o,a,r;if(0!==t.children.length&&l.hideOnExpand&&t.clickStatus===F?it(t.th,k,O):ht(t,l),t.sTh&&t.clickStatus===F&&l.hideOnExpand&&it(t.sTh,O,k),t.clickStatus===F||t.col>=l.disableFrom){for(a=t.children,r=[],n=0,o=a.length;n<o;n++)e=a[n],r.push(Q(t[e],l));return r}},Y=function(t,l,e){var n,o,r,i,c;if(l.clickStatus===F)return void a(t,l.col,e);for(c=l.children,r=0,i=c.length;r<i;r++)o=c[r],n=l[o],Q(n,e);return 0!==l.children.length&&(e.hideOnExpand?X(l,e):$(l,e)),l.clickStatus=F,l.onClick=N,t.ah[l.col].expandedCount++,a(t,l.col,e)},L=function(t,l,e,n){var o,a,r,i,c,s;if(o=Math.min(e.length-2,n.disableFrom-1),!(l>o)){for(s=[],r=i=o,c=l;i>=c;r=i+=-1)s.push(function(){var l,e,o,i;for(o=t.ah[r].attrHeaders,i=[],l=0,e=o.length;l<e;l++)a=o[l],a.clickStatus===F&&0!==a.children.length&&i.push(t.collapseAttrHeader(t,a,n));return i}());return s}},V=function(t,l,e,n){var o,a,r,i,c;for(t.ah[l],c=[],a=r=0,i=l;0<=i?r<=i:r>=i;a=0<=i?++r:--r)c.push(function(){var l,e,r,i;for(r=t.ah[a].attrHeaders,i=[],l=0,e=r.length;l<e;l++)o=r[l],i.push(t.expandAttrHeader(t,o,n));return i}());return c},function(t,l,e,o){var a,r,i,c,s,C,w,y,x,m,T,A,D,k,O,E,F,H;if(D=[],r=[],0!==e.length&&0!==o.length&&(c=at(o,"pvtColLabel")),0!==t.length&&0!==l.length&&(O=at(l,"pvtRowLabel")),A=I("table","pvtTable",null,{style:"display: none;"}),F=I("thead"),A.appendChild(F),0!==e.length){for(i=d(F,t,e,n),x={counter:0},m=c.children,s=0,w=m.length;s<w;s++)a=m[s],u(i,r,c[a],t,e,x,n);v(i.ah[0].tr,t,e)}if(E=I("tbody"),A.appendChild(E),0!==t.length)for(k=b(F,t,e,n),0===e.length&&v(k.tr,t,e),x={counter:0},T=O.children,C=0,y=T.length;C<y;C++)a=T[C],g(E,k,D,O[a],t,e,x,n);return S(E,r,D,t,e,n),H=p(t,e),e.length>0&&h(H,r,t,e,n),f(E,H,t,e,n),L(i,n.colSubtotalDisplay.collapseAt,e,n.colSubtotalDisplay),L(k,n.rowSubtotalDisplay.collapseAt,t,n.rowSubtotalDisplay),A.setAttribute("data-numrows",l.length),A.setAttribute("data-numcols",o.length),A.style.display="",A}(ct,st,H,q)},t.pivotUtilities.subtotal_renderers={"Table With Subtotal":function(t,l){return a(t,l)},"Table With Subtotal Bar Chart":function(l,e){return t(a(l,e)).barchart()},"Table With Subtotal Heatmap":function(l,e){return t(a(l,e)).heatmap("heatmap",e)},"Table With Subtotal Row Heatmap":function(l,e){return t(a(l,e)).heatmap("rowheatmap",e)},"Table With Subtotal Col Heatmap":function(l,e){return t(a(l,e)).heatmap("colheatmap",e)}},c=t.pivotUtilities.numberFormat({digitsAfterDecimal:1,scaler:100,suffix:"%"}),r=t.pivotUtilities.aggregatorTemplates,i={fractionOf:function(t,l,e){return null==l&&(l="row"),null==e&&(e=c),function(){var o;return o=1<=arguments.length?n.call(arguments,0):[],function(n,a,r){return void 0===a&&(a=[]),void 0===r&&(r=[]),{selector:{row:[a.slice(0,-1),[]],col:[[],r.slice(0,-1)]}[l],inner:t.apply(null,o)(n,a,r),push:function(t){return this.inner.push(t)},format:e,value:function(){return this.inner.value()/n.getAggregator.apply(n,this.selector).inner.value()},numInputs:t.apply(null,o)().numInputs}}}}},t.pivotUtilities.subtotalAggregatorTemplates=i,t.pivotUtilities.subtotal_aggregators=function(t,l){return{"Sum As Fraction Of Parent Row":l.fractionOf(t.sum(),"row",c),"Sum As Fraction Of Parent Column":l.fractionOf(t.sum(),"col",c),"Count As Fraction Of Parent Row":l.fractionOf(t.count(),"row",c),"Count As Fraction Of Parent Column":l.fractionOf(t.count(),"col",c)}}(r,i)})}).call(this);
//# sourceMappingURL=subtotal.min.js.map