ux-datagrid-collapsibleGroups.min.js

! ux-angularjs-datagrid v.1.4.11 (c) 2016, Obogo https://github.com/obogo/ux-angularjs-datagrid License: MIT.

(function (exports, global) {
if (typeof define === "function" && define.amd) {
  define(exports);
} else if (typeof module !== "undefined" && module.exports) {
  module.exports = exports;
} else {
  global.ux = exports;
}


!function(a,b){"function"==typeof define&&define.amd?define(a):"undefined"!=typeof module&&module.exports?module.exports=a:b.ux=a,a.datagrid.events.COLLAPSE_GROUP="datagrid:collapseGroup",a.datagrid.events.EXPAND_GROUP="datagrid:expandGroup",a.datagrid.events.TOGGLE_GROUP="datagrid:toggleGroup",angular.module("ux").factory("collapsibleGroups",function(){return["inst",function(b){function c(a){return j="number"==typeof a?a:b.getNormalizedIndex(a,j)}function d(a){var b=e(a);return b?!!l[a+1]:!!l[a]}function e(a){var c=b.getRowItem(a);return!!(c&&b.grouped&&c[b.grouped]&&c[b.grouped].length)}function f(a,c){for(var d,e=0,f=b.getRowItem(a),i=f[b.grouped].length;i>e;)d=c===n.COLLAPSE?g(a+e+1):h(a+e+1),d=!1,e+=1;b.updateHeights()}function g(a){var c;return d(a)?!1:(c=b.getRowElm(a)[0],l[a]={prevDisplay:c.style.display,height:0},c.style.display="none",!0)}function h(a){var c;return d(a)?(c=b.getRowElm(a)[0],c.style.display=l[a].prevDisplay,delete l[a],!0):!1}var i=a.logWrapper("collapsibleGroups",{},"orange",b),j=0,k=[],l={},m=b.templateModel.getTemplateHeight,n={COLLAPSE:"collapse",EXPAND:"expand"};return i.collapse=function(a){var b=c(a);f(b,n.COLLAPSE)},i.expand=function(a){var b=c(a);f(b,n.EXPAND)},i.toggle=function(a){var b=c(a);return e(b)?d(b)?i.expand(b):i.collapse(b):!1},b.templateModel.getTemplateHeight=function(a){var b=c(a);return l[b]?l[b].height:m(a)},b.unwatchers.push(b.scope.$on(a.datagrid.events.EXPAND_GROUP,function(a,b){i.expand(b)})),b.unwatchers.push(b.scope.$on(a.datagrid.events.COLLAPSE_GROUP,function(a,b){i.collapse(b)})),b.unwatchers.push(b.scope.$on(a.datagrid.events.TOGGLE_GROUP,function(a,b){i.toggle(b)})),b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_BEFORE_DATA_CHANGE,function(c){var d,e,f;k.length=0;for(e in l)a.util.apply(Object.prototype.hasOwnProperty,l,[e])&&(d=l[e],f=b.getRowItem(e-1),f&&f[b.grouped]&&k.push(e-1));l={}})),b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_RENDER_AFTER_DATA_CHANGE,function(b){a.each(k,i.collapse)})),b.collapsibleGroups=i,b}]})}(this.ux=this.ux||{},function(){return this}());

sourceMappingURL=ux-datagrid-collapsibleGroups.min.js.map

}(this.ux = this.ux || {}, function() {return this;}()));