ux-datagrid-expandableGroups.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_ALL_GROUPS="datagrid:collapseAllGroups",a.datagrid.events.EXPAND_ALL_GROUPS="datagrid:expandAllGroups",a.datagrid.events.COLLAPSE_GROUP="datagrid:collapseGroup",a.datagrid.events.EXPAND_GROUP="datagrid:expandGroup",a.datagrid.events.TOGGLE_GROUP="datagrid:toggleGroup",a.datagrid.events.EXPAND_GROUP_CHANGE="datagrid:expandGroupChange",angular.module("ux").factory("expandableGroups",function(){return["inst",function(b){function c(){j.length=0;for(var c,e=l(),f=0,g=-1,h=e&&e.length||0;h>f;)c=e[f],d(c)?(g+=1,j.push(c)):i[g]&&j.push(c),f+=1;e.length&&!j.length&&window.console&&window.console.warn&&console.warn("ExpandableGroups does not work with async loaded groups. It cannot keep the indexes in sync. Try this example http://jsfiddle.net/wesjones/3Wg79/"),b.dispatch(a.datagrid.events.EXPAND_GROUP_CHANGE)}function d(a){return h.hideEmptyGroups?a[b.grouped]&&a[b.grouped].length:a[b.grouped]}function e(){c(),b.reset()}function f(a){for(var b=0,c=0;a>b;)d(j[b])&&(c+=1),b+=1;return c}var g=a.logWrapper("expandableGroups",{},"orange",b),h=b.expandableGroups||{},i={},j=[],k=b.setData,l=b.getData;return b.setData=function(d,e){return a.util.apply(k,b,arguments),c(),j},b.getData=function(){return j},g.expand=function(a,b){var c=b?a:f(a);i[c]=!0,e()},g.collapse=function(a,b){var c=b?a:f(a);delete i[c],e()},g.toggle=function(a){var b=f(a);i[b]?g.collapse(b,!0):g.expand(b,!0)},g.isExpanded=function(a){var b=f(a);return!!i[b]},g.getItems=function(){for(var a={expanded:[],collapsed:[]},c=0,e=j.length;e>c;c+=1){var f=b.getRowItem(c);d(f)&&a[g.isExpanded(c)?"expanded":"collapsed"].push(f)}return a},b.unwatchers.push(b.scope.$on(a.datagrid.events.EXPAND_GROUP,function(a,b){g.expand(b)})),b.unwatchers.push(b.scope.$on(a.datagrid.events.COLLAPSE_GROUP,function(a,b){g.collapse(b)})),b.unwatchers.push(b.scope.$on(a.datagrid.events.TOGGLE_GROUP,function(a,b){g.toggle(f(b))})),b.unwatchers.push(b.scope.$on(a.datagrid.events.COLLAPSE_ALL_GROUPS,function(a,b){i={},e()})),b.unwatchers.push(b.scope.$on(a.datagrid.events.EXPAND_ALL_GROUPS,function(c,d){var f=b.getOriginalData();i={},a.each(f,function(a,b){i[b]=!0}),e()})),b.expandableGroups=g,b}]})}(this.ux=this.ux||{},function(){return this}());

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

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