bootstrap-table-group-by.min.js 3.0 KB

1234567
  1. /*
  2. * bootstrap-table - v1.8.1 - 2015-08-24
  3. * https://github.com/wenzhixin/bootstrap-table
  4. * Copyright (c) 2015 zhixin wen
  5. * Licensed MIT License
  6. */
  7. !function(a){"use strict";var b,c="data-tt-id",d="data-tt-parent-id",e={},f=void 0,g=function(b,c){var d=-1;return a.each(b,function(a,b){return b.field===c?(d=a,!1):!0}),d},h=function(b,c){for(var d=b.$body.find("tr").not("[data-tt-parent-id]"),e=0;e<d.length;e++)if(e===c)return a(d[e]).attr("data-tt-id");return void 0},i=function(b,c){var d={};return a.each(c,function(a,c){for(var e in c)c.IsParent||isNaN(parseFloat(c[e]))||b.columns[g(b.columns,e)].groupBySumGroup&&(void 0===d[e]&&(d[e]=0),d[e]+=+c[e])}),d},j=function(a,g){return b.apply([a,g]),e[c.toString()]=g,a.IsParent?(f=g,delete e[d.toString()]):e[d.toString()]=void 0===f?g:f,e},k=function(){Object.keys=function(a){if(a!==Object(a))throw new TypeError("Object.keys called on a non-object");var b,c=[];for(b in a)Object.prototype.hasOwnProperty.call(a,b)&&c.push(b);return c}},l=function(b,c){var d={};return a.each(b,function(a,b){var e=JSON.stringify(c(b));d[e]=d[e]||[],d[e].push(b)}),Object.keys(d).map(function(a){return d[a]})},m=function(b,c){for(var d={},e=[],f={},g=l(c,function(a){return[a[b.options.groupByField]]}),h=0;h<g.length;h++)d[b.options.groupByField.toString()]=g[h][0][b.options.groupByField],d.IsParent=!0,g[h].unshift(d),b.options.groupBySumGroup&&(f=i(b,g[h]),a.isEmptyObject(f)||g[h].push(f)),d={};return e=e.concat.apply(e,g),!b.options.loaded&&e.length>0&&(b.options.loaded=!0,b.options.originalData=b.options.data,b.options.data=e),e};a.extend(a.fn.bootstrapTable.defaults,{groupBy:!1,groupByField:"",groupBySumGroup:!1,groupByInitExpanded:void 0,loaded:!1,originalData:void 0}),a.fn.bootstrapTable.methods.push("collapseAll","expandAll"),a.extend(a.fn.bootstrapTable.COLUMN_DEFAULTS,{groupBySumGroup:!1});var n=a.fn.bootstrapTable.Constructor,o=n.prototype.init,p=n.prototype.initData;n.prototype.init=function(){if(!this.options.sortName&&this.options.groupBy&&""!==this.options.groupByField){var a=this;Object.keys||k(),this.options.loaded=!1,this.options.originalData=void 0,b=this.options.rowAttributes,this.options.rowAttributes=j,this.$el.on("post-body.bs.table",function(){a.$el.treetable({expandable:!0,onNodeExpand:function(){a.options.height&&a.resetHeader()},onNodeCollapse:function(){a.options.height&&a.resetHeader()}},!0),void 0!==a.options.groupByInitExpanded&&("number"==typeof a.options.groupByInitExpanded?a.expandNode(a.options.groupByInitExpanded):"all"===a.options.groupByInitExpanded.toLowerCase()&&a.expandAll())})}o.apply(this,Array.prototype.slice.apply(arguments))},n.prototype.initData=function(a,b){this.options.sortName||this.options.groupBy&&""!==this.options.groupByField&&(a=m(this,a?a:this.options.data)),p.apply(this,[a,b])},n.prototype.expandAll=function(){this.$el.treetable("expandAll")},n.prototype.collapseAll=function(){this.$el.treetable("collapseAll")},n.prototype.expandNode=function(a){a=h(this,a),void 0!==a&&this.$el.treetable("expandNode",a)}}(jQuery);