ux-datagrid-memoryOptimizer.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.ON_MEMORY_OPTIMIZED="datagrid:onMemoryOptimized",angular.module("ux").factory("memoryOptimizer",function(){return["inst",function(b){function c(){b.options.creepRender=b.options.creepRender||{},b.options.creepLimit>.5*l.range&&(b.options.creepLimit=.5*l.range),b.creepRenderModel.disable()}function d(){e(),i=setTimeout(f,3e3)}function e(){clearTimeout(i),i=0}function f(){for(var c,d,e=0,f=b.scopes.length,i={},j=0;f>e;)b.scopes[e]&&!h(e)&&(c=b.chunkModel.getRowIndexes(e),c.pop(),d=b.chunkModel.getItemByIndexes(c),i[d.getId()]||(i[d.getId()]=d,j+=1)),e+=1;j&&(a.each(i,g),b.gc(),b.updateLinks())}function g(a){j.log("  decompile %s %s-%s",a.getId(),a.min,a.max);for(var c=a.min,d=a.max;d>=c;){if(b.scopes[c]){var e=b.scopes[c];b.activateScope(e),b.$$prevSibling=null,b.$$nextSibling=null,e.$destroy(),b.scopes[c]=void 0}c+=1}a.decompile(b.options.chunks.chunkReadyClass)}function h(a){var c=b.values.activeRange.min-l.range,d=b.values.activeRange.max+l.range;return c=0>c?0:c,a>=c&&d>a}b.options.memoryOptimizer=b.options.memoryOptimizer||{};var i,j=a.logWrapper("memoryOptimizer",{},"redOrange",b),k={range:2*b.options.creepLimit||200},l=b.options.memoryOptimizer=a.extend(k,b.options.memoryOptimizer);return b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_BEFORE_DATA_CHANGE,e)),b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_RENDER_PROGRESS,d)),b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_AFTER_UPDATE_WATCHERS,d)),c(),b.memoryOptimizer=j,b}]})}(this.ux=this.ux||{},function(){return this}());

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

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