angular-ux-datagrid.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 c(b,c,d){var e,f,g,h=0,i=a.util.apply;if(arguments.length>2&&(g=a.util.array.toArray(arguments),g.splice(0,2)),b&&b.length)for(e=b.length;e>h;){if(f=i(c,null,[b[h],h,b].concat(g)),void 0!==f)return f;h+=1}else if(b&&i(Object.prototype.hasOwnProperty,b,["0"]))for(;i(Object.prototype.hasOwnProperty,b,[h]);){if(f=i(c,null,[b[h],h,b].concat(g)),void 0!==f)return f;h+=1}else if(!(b instanceof Array))for(h in b)if(i(Object.prototype.hasOwnProperty,b,[h])&&(f=i(c,null,[b[h],h,b].concat(g)),void 0!==f))return f;return b}function d(b,c,d){var e,f,g,h=0,i=[],j=a.util.apply;if(arguments.length>2&&(f=a.util.array.toArray(arguments),f.splice(0,2)),b&&b.length)for(e=b.length;e>h;)g=j(c,null,[b[h],h,b].concat(f)),g&&i.push(b[h]),h+=1;else for(h in b)j(Object.prototype.hasOwnProperty,b,[h])&&(g=j(c,null,[b[h],h,b].concat(f)),g&&i.push(b[h]));return i}function e(b,c){for(var d,f,g=a.util.array.toArray(arguments),h=1,i=g.length;i>h;){d=g[h];for(f in d)b[f]&&"object"==typeof b[f]?b[f]=e(b[f],d[f]):d[f]instanceof Array?b[f]=e([],d[f]):d[f]&&"object"==typeof d[f]?b[f]=e({},d[f]):b[f]=d[f];h+=1}return b}function f(b,c,d,e){function f(a){return a.toString().split(/\b/)[2]}function g(a,b,c){return{label:f(a),method:a,args:b||[],delay:c}}function h(a){var b=f(a);H[b]=a}function i(a){for(var c=0,d=E.length;d>c;)E[c].label===a.label&&(E[c]===D&&B?(e.cancel(B),B=null,D=null,b.warn("REMOVE ACTIVE FLOW ITEM %c%s",J,a.label)):b.info("remove Flow item %c%s",J,a.label),E.splice(c,1),c-=1,d-=1),c+=1;D||s()}function j(a,b,c){var d=g(a,b,c);H[d.label]&&i(d),E.push(d),C&&s()}function k(a,b,c){E.splice(1,0,g(a,b,c))}function l(a){i({label:f(a)})}function m(a,c){var d,e=g(a,[]),f=Date.now(),h=function(){b.log("exec timeout method %c%s %sms (len:%s)",J,e.label,Date.now()-f,E.length),E.push(e),C&&s()};return b.log("wait for timeout method %c%s (len:%s)",J,e.label,E.length),d=setTimeout(h,c),I[d]=function(){clearTimeout(d),delete I[d]},d}function n(a){I[a]&&I[a]()}function o(a){var b=a.toString(),c=b.match(/\(.*\)/);return c[0].match(/([\$\w])+/gm)}function p(a){var b=o(a);return!(!b||-1===b.indexOf("done"))}function q(){return A=Date.now(),b.log("finish %c%s took %dms (len:%s)",J,D.label,A-z,E.length),D=null,r(E.shift()),s(),A-z}function r(a){for(F.unshift(a);F.length>G;)F.pop()}function s(){b.log("next %s",E.length),!D&&E.length&&(D=E[0],b.async&&void 0!==D.delay?(b.log(" delay for %c%s %sms (len:%s)",J,D.label,D.delay,E.length),B=e(t,D.delay,!1)):t())}function t(){if(b){if(B&&e.cancel(B),d&&d())return b.warn(" wait for pauseFn"),void(B=e(t,0,!1));var c=p(D.method);b.log("start method %c%s (len:%s)"+(c&&" - (has done arg)"||""),J,D.label,E.length),c&&D.args.push(q);try{z=Date.now(),a.util.apply(D.method,null,D.args)}catch(f){b.warn(f.message+"\n"+(f.stack||f.stacktrace||f.backtrace))}finally{c||q()}}}function u(){C=!0,s()}function v(){var a,c=D?1:0;for(b.info("clear");E.length>c;)a=E.splice(c,1)[0],b.log(" remove %s from flow",a.label)}function w(){return E.length}function x(a){for(var b=0,c=0;c<E.length;c+=1)E[c].label===a&&(b+=1);return b}function y(){E.length=0,b=null}var z,A,B,C=!1,D=null,E=[],F=[],G=10,H={},I={},J="color:#666666;";return a.logWrapper("Flow",b,"grey",b),b.debug=a.util.apply(Object.prototype.hasOwnProperty,b,["debug"])?b.debug:0,b.insert=k,b.add=j,b.unique=h,b.remove=l,b.timeout=m,b.stopTimeout=n,b.run=u,b.clear=v,b.length=w,b.count=x,b.destroy=y,b}function g(b,d,e,g,h){function i(){Ga.unique(ya),Ga.unique(na),Ga.unique(da)}function j(){Ya.uid=a.uid(),Ya.name=b.$eval(e.gridName)||"datagrid",Ya.scope=b,Ya.element=d,Ya.attr=e,Ya.rowsLength=0,Ya.scopes=Oa,Ya.data=Ya.data||[],Ya.unwatchers=Na,Ya.values=Wa,Ya.start=o,Ya.update=oa,Ya.reset=ya,Ya.isReady=w,Ya.isStartupComplete=r,Ya.forceRenderScope=za,Ya.dispatch=Ca,Ya.activateScope=$,Ya.deactivateScope=Z,Ya.updateLinks=ga,Ya.render=function(){Ga.add(na)},Ya.updateHeights=Ba,Ya.getOffsetIndex=aa,Ya.isActive=_,Ya.isCompiled=F,Ya.swapItem=z,Ya.moveItem=A,Ya.getScope=B,Ya.getRowItem=C,Ya.getRowElm=D,Ya.getExistingRow=E,Ya.getRowIndex=Ya.getIndexOf=G,Ya.getRowOffset=I,Ya.getRowHeight=J,Ya.getViewportHeight=K,Ya.getContentHeight=L,Ya.getContent=n,Ya.isDigesting=S,Ya.safeDigest=T,Ya.getRowIndexFromElement=H,Ya.updateViewportHeight=v,Ya.calculateViewportHeight=x,Ya.options=Ja=a.extend({},a.datagrid.options,b.$eval(e.options)||{}),Ya.flow=Ga=new f({async:a.util.apply(Object.prototype.hasOwnProperty,Ja,["async"])?!!Ja.async:!0,debug:a.util.apply(Object.prototype.hasOwnProperty,Ja,["debug"])?Ja.debug:0},Ya.dispatch,S,h),Ya.grouped=b.$eval(e.grouped),Ya.gc=Da,Ya.throwError=a.datagrid.throwError,Ga.add(i),Ga.run()}function k(){var b,c=d[0].getElementsByClassName(Ja.contentClass),e=Ja.contentClass;return c=a.filter(c,m),b=c[0],b&&(e=b.className||Ja.contentClass),b||(e=l()||e,b=angular.element('<div class="'+e+'"></div>'),Ya.options.chunks.detachDom&&(b[0].style.position="relative"),d.prepend(b)),b[0]||(b=angular.element(b)),b}function l(){var b,c;return Ia?(b=a.util.array.toArray(Ia[0].classList),c=b.indexOf("old-"+Ja.contentClass),-1!==c&&b.splice(c,1),b.join(" ")):void 0}function m(a,b,c){return angular.element(a).hasClass("old-"+Ja.contentClass)?!1:!0}function n(){return Ha}function o(){Ya.dispatch(a.datagrid.events.ON_INIT,Ya),Ha=k(),p(0)}function p(a){if(!Ya.element[0].offsetHeight){if(1>a)return void Ga.add(p,[a+1],0);Ga.warn("Datagrid: DOM Element does not have a height.")}Ja.templateModel&&Ja.templateModel.templates&&Ga.add(Ya.templateModel.createTemplatesFromData,[Ja.templateModel.templates],0),Ga.add(Ya.templateModel.createTemplates,null,0),Ga.add(function(){Ja.dynamicRowHeights=Ya.templateModel.dynamicHeights()}),Ga.add(q)}function q(){var c=b.$on(a.datagrid.events.ON_BEFORE_RENDER_AFTER_DATA_CHANGE,function(){c(),Ga.add(s)});window.addEventListener("resize",y),Na.push(b.$on(a.datagrid.events.UPDATE,oa)),Na.push(b.$on(a.datagrid.events.ON_ROW_TEMPLATE_CHANGE,Aa)),Na.push(b.$on("$destroy",Fa)),Ga.add(t,[],0),Ya.dispatch(a.datagrid.events.ON_LISTENERS_READY)}function r(){return $a}function s(){$a=!0,Ca(a.datagrid.events.ON_STARTUP_COMPLETE,Ya)}function t(){if(!Ma){Ya.log("setupChangeWatcher"),Ma=!0,Na.push(b.$watchCollection(e.uxDatagrid,u));var a=b.$eval(e.uxDatagrid);a&&a.length&&Ga.add(na)}}function u(a,b,c){Ga.add(va,[a,b])}function v(){Sa=Ya.calculateViewportHeight(),Sa||(Sa=Ja.minHeight)}function w(){return Va===Ta.READY}function x(){return d[0].offsetHeight}function y(a){pa()}function z(b,c,d){var e,f,g=G(b);a.util.apply(Object.prototype.hasOwnProperty,Ya.data,[g])&&(e=Ya.templateModel.getTemplate(b),f=d?e:Ya.templateModel.getTemplate(c),Ya.normalizeModel.replace(c,g),e!==f?Ya.templateModel.setTemplate(g,f):(Oa[g][f.item]=c,T(Oa[g])))}function A(a,b){Ya.normalizeModel.move(a,b),xa(Ya.getOriginalData(),Ya.getOriginalData())}function B(a){return Oa[a]}function C(a){return this.getData()[a]}function D(a){return angular.element(Ya.chunkModel.getRow(a))}function E(a){return angular.element(Ya.chunkModel.getExistingRow(a))}function F(a){return!!Oa[a]}function G(a){return Ya.getNormalizedIndex(a,0)}function H(a){if(a&&d[0].contains(a[0]||a)){a=a.scope?a:angular.element(a);var b=a.scope();for(b===Ya.scope&&Ya.throwError("Unable to get row scope... something went wrong.");b&&b.$parent&&b.$parent!==Ya.scope;)b=b.$parent;return b.$index}return-1}function I(a){return void 0===Ra[a]&&(Ja.dynamicRowHeights?ca():Ra[a]=a*Ja.rowHeight),Ra[a]}function J(a){return Ya.templateModel.getRowHeight(a)}function K(){return Sa}function L(){var a=Ya.chunkModel.getChunkList();return a&&a.height||0}function M(a){Ya.log("OVERWRITE DOM!!!");var b=a.length;Ya.chunkModel.chunkDom(a,Ja.chunks.size,'<div class="'+Ja.chunks.chunkClass+'">',"</div>",Ha),Ya.rowsLength=b,Ya.log("created %s dom elements",b)}function N(a,b){b=b||B(a);var c=B(a-1),d=B(a+1);c&&(c.$$nextSibling=b),b.$$prevSibling=c,b.$$nextSibling=d,b.$$nextSibling&&(b.$$nextSibling.$$prevSibling=b),Oa[a]=b}function O(c,d){var e,f,h,i=Oa[c];return i&&!i.$parent&&(i.$parent=b),i||(!b.$$childTail&&b.$$childHead&&Oa[c-1]&&(b.$$childTail=Oa[c-1]),i=b.$new(),e=Ya.templateModel.getTemplateName(Ya.data[c]),f=Ya.templateModel.getTemplate(Ya.data[c]),N(c,i),i.$status=Ja.compiledClass,i[f.item]=Ya.data[c],i.$index=c,Oa[c]=i,d=d||D(c),d.removeClass(Ja.uncompiledClass),h=_a[e]||(_a[e]=g(d)),h(i,function(a){var b=Ya.chunkModel.getRowIndexes(c);b.pop();for(var e=Ya.chunkModel.getItemByIndexes(b).dom,f=d[0].attributes,g=f.length,h=0;g>h;h+=1){var i=f[h];a.attr(i.name)!==i.value&&a.attr(i.name,i.value)}e.replaceChild(a[0],d[0])}),Ya.templateModel.hasVariableRowHeights()&&Ya.chunkModel.updateAllChunkHeights(c),Ya.dispatch(a.datagrid.events.ON_ROW_COMPILE,i,d),Z(i,c)),i}function P(a,b){Ya.log(" buildRows %s",a.length),Va=Ta.BUILDING,M(a),Ga.add(ca,0),w()||Ga.add(Q),b&&Ga.add(na)}function Q(){Ya.log(" ready"),Va=Ta.READY,Ga.add(R),Ga.add(T,[b])}function R(){b.$emit(a.datagrid.events.ON_READY)}function S(a){for(var c=a||b;c;){if(c.$$phase)return!0;c=c.$parent}return!1}function T(a){return S(a)?!1:(a.$digest(),!0)}function U(b,c,d){for(;b;){for(var e in c)a.util.apply(Object.prototype.hasOwnProperty,c,[e])&&d(b,c,e);b=b.$parent}}function V(a,b){U(a,b,W)}function W(a,b,c){a.$$listenerCount[c]+=b[c]}function X(a,b){U(a,b,Y)}function Y(a,b,c){a.$$listenerCount[c]-=b[c]}function Z(b,c){return b&&!_(b)?(b.$emit(a.datagrid.events.ON_BEFORE_ROW_DEACTIVATE),b.$$$watchers=b.$$watchers,b.$$watchers=[],b.$$$listenerCount=angular.extend({},b.$$listenerCount),X(b,b.$$listenerCount),c>=0&&(b.$parent=null,b.$$nextSibling=null,b.$$prevSibling=null),!0):!1}function $(c,d){return c&&c.$$$watchers?(c.$parent=c.$$parent,c.$$watchers=c.$$$watchers,delete c.$$$watchers,V(c,c.$$$listenerCount),delete c.$$$listenerCount,d>=0&&(c.$$nextSibling=Oa[d+1],c.$$prevSibling=Oa[d-1]),c.$parent=b,c.$emit(a.datagrid.events.ON_AFTER_ROW_ACTIVATE),!0):!(!c||c.$$$watchers)}function _(a){var b=Oa[a];return!(!b||b.$$$watchers)}function aa(a){var b=Math.floor(a/Ya.templateModel.averageTemplateHeight()),c=0,d=Ya.rowsLength;if(!a||Ya.rowsLength<2)return c;for(Ra[b]&&Ra[b]<=a&&(c=b);d>c;){if(Ra[c]<=a&&Ra[c+1]>a)return c;c+=1}return c}function ba(){Wa.dirty&&Ya.chunkModel.getChunkList()&&Ya.chunkModel.getChunkList().height-Ya.getViewportHeight()<Wa.scroll&&(Ya.info("Scroll reset because either there is no data or the scroll is taller than there is scroll area"),Wa.scroll=0);var b=Sa,c=Wa.scroll>=0?Wa.scroll:0,d={startIndex:0,i:0,inc:1,end:Ya.rowsLength,visibleScrollStart:c+Ja.cushion,visibleScrollEnd:c+b-Ja.cushion};return d.startIndex=d.i=Ya.getOffsetIndex(c),Ya.rowsLength&&d.startIndex===d.end&&(d.startIndex=d.i=d.end-1,Ya.log(a.errors.E1002)),d}function ca(){for(var a,b=0,c=0;c<Ya.rowsLength;)Ra[c]=b,b+=Ya.getRowHeight(c),c+=1;Ja.rowHeight=Ya.rowsLength?Ya.templateModel.getTemplateHeight("default"):0,a=L(),Ya.getContent()[0].style.height=a+"px",Ya.log("heights: viewport %s content %s",Ya.getViewportHeight(),a)}function da(){var c,d,e,f,g=ba(),h=[].concat(Pa),i=!1;if(!(g.i<0)){for(Ya.dispatch(Ua.ON_BEFORE_UPDATE_WATCHERS,g),ha(),Pa.length=0,Ya.log(" scroll %s visibleScrollStart %s visibleScrollEnd %s",Wa.scroll,g.visibleScrollStart,g.visibleScrollEnd);g.i<Ya.rowsLength&&(f=b.$$childHead?Oa[g.i-1]:null,c=Ya.getRowOffset(g.i),(c>=g.visibleScrollStart&&c<=g.visibleScrollEnd||g.i===g.startIndex&&g.i<g.end)&&(e=O(g.i),void 0===g.started&&(g.started=g.i),ia(g.i),$(e,g.i)&&(Ya.getRowElm(g.i).attr("status","active"),d=h.indexOf(g.i),-1!==d&&h.splice(d,1),Pa.push(g.i),T(e,!0)||(i=!0),e.$digested=!0)),g.i+=g.inc,!(g.inc>0&&c>g.visibleScrollEnd||g.inc<0&&c<g.visibleScrollStart)););g.ended=g.i-1,Ya.rowsLength&&Wa.activeRange.min<0&&Wa.activeRange.max<0&&Ya.throwError(a.errors.E1002),Ya.log(" startIndex %s endIndex %s",g.startIndex,g.i),fa(h),Qa=g.visibleScrollStart,Ya.log(" activated %s",Pa.join(", ")),ga(),Ya.templateModel.hasVariableRowHeights()&&ca(),Ga.add(ea,[g],0),i&&Ga.add(function(){T(b)})}}function ea(a){Ya.dispatch(Ua.ON_AFTER_UPDATE_WATCHERS,a)}function fa(a){for(var b,c=[];a.length;)b=a.pop(),c.push(b),Z(Oa[b],b),Ya.getRowElm(b).attr("status","inactive");Ya.log(" deactivated %s",c.join(", "))}function ga(){if(Pa.length){var a,c=Pa[Pa.length-1],d=0,e=Pa.length;for(b.$$childHead=Oa[Pa[0]],b.$$childTail=Oa[c];e>d;)a=Oa[Pa[d]],a.$$prevSibling=Oa[Pa[d-1]],a.$$nextSibling=Oa[Pa[d+1]],a.$parent=b,d+=1}}function ha(){Wa.activeRange.min=Wa.activeRange.max=-1}function ia(a){Wa.activeRange.min=Wa.activeRange.min<a&&Wa.activeRange.min>=0?Wa.activeRange.min:a,Wa.activeRange.max=Wa.activeRange.max>a&&Wa.activeRange.max>=0?Wa.activeRange.max:a}function ja(){Wa.dirty&&Ca(a.datagrid.events.ON_BEFORE_RENDER_AFTER_DATA_CHANGE)}function ka(){var b,c;Wa.dirty&&Wa.activeRange.max>=0&&(Wa.dirty=!1,b=Ya.templateModel.calculateRowHeight(D(Wa.activeRange.min)[0]),Ga.async&&Ya.getData().length&&b!==(c=Ya.templateModel.getRowHeight(Wa.activeRange.min))&&(window.console&&console.warn&&console.warn("Template height change from "+c+" to "+b+". This can cause gaps in the datagrid."),Ya.templateModel.updateTemplateHeights()),Ca(a.datagrid.events.ON_RENDER_AFTER_DATA_CHANGE))}function la(){Ga.add(Ya.updateViewportHeight,null,La),Ga.add(na)}function ma(){return v(),Sa?(La&&Ya.info("datagrid has height of %s.",Sa),La=0,!0):(La+=1,La<Ya.options.readyToRenderRetryMax?(Ya.info("datagrid is waiting for element to have a height."),la()):Ga.warn("Datagrid: Unable to determine a height for the datagrid. Cannot render. Exiting."),!1)}function na(){Ya.info("render"),ma()?(La=0,Ya.log(" render %s",Va),Va===Ta.BUILDING?P(Ya.data):Va===Ta.READY?(Ya.dispatch(a.datagrid.events.ON_BEFORE_RENDER),Ga.add(ja),Ga.add(da),Ga.add(ka,[],0),Ga.add(Ya.dispatch,[a.datagrid.events.ON_AFTER_RENDER])):Ya.throwError(a.errors.E1001)):Ya.log(" not ready to render.")}function oa(){Ya&&Ya.warn("force update"),va(b.$eval(e.uxDatagrid),Ya.data)||pa()}function pa(){Ga.add(Ba,[],100)}function qa(a,b){if(a&&b&&a.length===b.length){for(var c=0,d=a.length;d>c;){if(ra(a[c],b[c]))return!0;c+=1}return Ya.data.length!==Ya.normalize(a,Ya.grouped).length?(Ya.log(" dirtyCheckData length is different"),!0):!1}return!0}function ra(a,b){return Ya.templateModel.getTemplate(a)!==Ya.templateModel.getTemplate(b)?(Ya.log(" dirtyCheckData row template changed"),!0):!1}function sa(b,c){Ya.log(" mapData()");var d=[];a.each(Ya.getData(),ta,d),Ya.data=Ya.setData(b,Ya.grouped)||[],Ya.chunkModel.updateList(Ya.data),a.each(Ya.getData(),ua,d),d=null,Ca(a.datagrid.events.ON_AFTER_DATA_CHANGE,Ya.data,c)}function ta(a,b,c,d){d[b]=Ya.templateModel.getTemplate(a)}function ua(a,b,c,d){var e,f;Oa[b]&&(f=d[b],delete Oa[b][f.item],e=Ya.templateModel.getTemplate(a),Oa[b][e.item]=a,e!==d[b]&&Aa({},a,d[b].name,e.name,[],!0))}function va(c,d){if(Ya.log("onDataChanged"),Ya.grouped=b.$eval(e.grouped),d!==Ya.getOriginalData()&&(d=Ya.getOriginalData()),!Ya.options.smartUpdate||!Ya.data.length||qa(c,d)){var f=Ca(a.datagrid.events.ON_BEFORE_DATA_CHANGE,c,d);return f.defaultPrevented&&f.newValue&&(c=f.newValue),Wa.dirty=!0,Ga.add(xa,[c,d]),!0}return wa(c)?(Wa.dirty=!0,sa(c,d),Ga.add(Ba,[],0),!0):!1}function wa(a){for(var b=0,c=Ya.normalize(a,Ya.grouped),d=a.length;d>b;){if(Ya.data[b]!==c[b])return!0;b+=1}return!1}function xa(b,c){Ya.flow.count("changeData")>1||(Ya.log(" changeData"),Ya.templateModel.clearAllRowHeights(),Ca(a.datagrid.events.ON_BEFORE_RESET,Ya),Ya.data=Ya.setData(b,Ya.grouped)||[],Ca(a.datagrid.events.ON_AFTER_DATA_CHANGE,Ya.data,c),ya())}function ya(){Ya.info("reset start"),Ga.clear(),Ea(),Ra={},Pa.length=0,Oa.length=0,Ha.children().unbind(),Ha.children().remove(),Ya.chunkModel.getChunkList()?(Ya.chunkModel.reset(Ya.data,Ha,Oa),Ya.rowsLength=Ya.data.length,Ba()):P(Ya.data,!0),Ga.add(Ya.info,["reset complete"]),Ga.add(Ca,[a.datagrid.events.ON_AFTER_RESET,Ya])}function za(a){var c=Oa[a];!c&&a>=0&&a<Ya.rowsLength&&(c=O(a)),c&&!b.$$phase&&($(c),c.$digest(),Z(c),c.$digested=!0,Ya.templateModel.hasVariableRowHeights()&&(Ya.chunkModel.updateAllChunkHeights(a),ca()))}function Aa(a,c,d,e,f,g){var h,i=Ya.getNormalizedIndex(c),j=E(i),k=B(i);if(k&&k!==b){for(h=angular.element(Ya.templateModel.getTemplateByName(e).template),h.addClass(Ja.uncompiledClass);f&&f.length;)h.addClass(f.shift());j.parent()[0].replaceChild(h[0],j[0]),$(k),N(i,k),j.remove(),k.$destroy(),Oa[i]=null,g||(Ya.chunkModel.updateRow(i,c),Ba(i))}}function Ba(b){Ga.add(v),Ga.add(Ya.chunkModel.updateAllChunkHeights,[b]),Ga.add(ca),Ga.add(v),Ga.add(function(){var a=Ya.getContentHeight()-Ya.getViewportHeight();Wa.scroll>a&&(Wa.scroll=a)}),Ga.add(Ya.dispatch,[a.datagrid.events.ON_AFTER_HEIGHTS_UPDATED]),Ga.add(na),Ga.add(Ya.dispatch,[a.datagrid.events.ON_AFTER_HEIGHTS_UPDATED_RENDER])}function Ca(c){return Ja.debug&&Za.log("$emit %s",c),a.util.apply(b.$emit,b,arguments)}function Da(){clearInterval(Ka),Ya.shuttingDown||(Ka=setTimeout(function(){if(Ya){Ya.info("GC");var a,b,c=524288;for(b=0;c>b;b+=1)a=.5}},5e3))}function Ea(){var a,d,e=0;c(Oa,function(b,c){if(b){for(b.$$prevSibling=a||void 0,e=c;!d&&e<Ya.rowsLength;)e+=1,d=Oa[e]||void 0;$(b),a=b,b.$destroy()}}),b.$$childHead=void 0,b.$$childTail=void 0,Oa.length=0}function Fa(){for(Ya.shuttingDown=!0,n()[0].style.display="none",b.datagrid=null,Ya.log("destroying grid"),window.removeEventListener("resize",y),clearTimeout(Wa.scrollingStopIntv),Ga.destroy(),Ya.flow=void 0,Ga=null;Na.length;)Na.pop()();Ya.destroyLogger();for(var a in Ya)Ya[a]&&Ya[a].hasOwnProperty("destroy")&&(Ya[a].destroy(),Ya[a]=null);Ea(),d.remove(),delete b.$parent[Ya.name],Ra=null,Ya=null,b=null,d=null,e=null,Na=null,Ha=null,Pa.length=0,Pa=null,Oa.length=0,Oa=null,Wa=null,Ta=null,Ua=null,Ja=null,Xa=null,g=null}var Ga,Ha,Ia,Ja,Ka,La=0,Ma=!1,Na=[],Oa=[],Pa=[],Qa=0,Ra={},Sa=0,Ta=a.datagrid.states,Ua=a.datagrid.events,Va=Ta.BUILDING,Wa={dirty:!1,scroll:0,speed:0,absSpeed:0,scrollPercent:0,touchDown:!1,scrollingStopIntv:null,activeRange:{min:0,max:0}},Xa=[a.datagrid.events.LOG,a.datagrid.events.INFO,a.datagrid.events.WARN,a.datagrid.events.ERROR],Ya=this,Za={},$a=!1,_a={};return a.logWrapper("datagrid event",Ya,"grey",Ya),a.logWrapper("datagrid",Ya,"green",Ya),a.logWrapper("events",Za,"light",Ya),b.datagrid=Ya,j(),Ya}function h(a,b){var c=0;"string"==typeof a&&(a=a.split("."));for(var d=0;d<a.length;d+=1)a[d]=parseInt(a[d],10),c+=d<a.length-1?a[d]*b:a[d];return c}function i(a){this.uid=i.uid++,this.enabled=!0,this.min=0,this.max=0,this.templateStart="",this.templateStartWithPos="",this.templateEnd="",this.parent=null,this.mode=a?i.DETACHED:i.ATTACHED,this.detachDom=a,this.index=0}"function"==typeof define&&define.amd?define(a):"undefined"!=typeof j&&j.exports?j.exports=a:b.ux=a,function(a,b){b.util=a;var c,d,e=function(){};!function(){var a,b,f,g,h,i="~",j=".";return a=Function[i]=Function[i]||function(b){return a[b]||(a[b]={}),a[b]},g=a("c"),b=a("d"),f=a("p"),h=function(a){var c=arguments,d=c[1];"function"==typeof d?b[a]=d():(g[a]=c[2],g[a][j]=d)},c=d=function(){h.apply(null,arguments)},resolve=function(a,c){f[a]=!0;var d,e,h,i=c[j],k=[];if(i)for(e=i.length,d=0;e>d;d++)if(h=i[d],g[h]){if(f.hasOwnProperty(h))throw new Error('Cyclical reference: "'+a+'" referencing "'+h+'"');resolve(h,g[h]),delete g[h]}if(!b.hasOwnProperty(a)){for(d=0;e>d;d++)h=i[d],k.push(b.hasOwnProperty(h)&&b[h]);b[a]=c.apply(null,k)}delete f[a]},e=function(){for(var a in g)resolve(a,g[a])},c}(),c("toArray",["isArguments","isArray","isUndefined"],function(a,b,c){var d=function(d){if(a(d))return Array.prototype.slice.call(d,0)||[];try{if(b(d))return d;if(!c(d))return[].concat(d)}catch(e){}return[]};return d}),c("dg.api",["isMatch","apply","toArray","sort","dispatcher","matchAll"],function(b,c,d,e,f,g){a.isMatch=b,a.apply=c,a.dispatcher=f,a.matchAll=g,a.array={toArray:d,sort:e}}),c("isRegExp",function(){var a=function(a){return"[object RegExp]"===Object.prototype.toString.call(a)};return a}),c("isDate",function(){var a=function(a){return a instanceof Date};return a}),c("apply",["isFunction"],function(a){return function(b,c,d){if(a(b)){switch(d=d||[],d.length){case 0:return b.call(c);case 1:return b.call(c,d[0]);case 2:return b.call(c,d[0],d[1]);case 3:return b.call(c,d[0],d[1],d[2]);case 4:return b.call(c,d[0],d[1],d[2],d[3]);case 5:return b.call(c,d[0],d[1],d[2],d[3],d[4]);case 6:return b.call(c,d[0],d[1],d[2],d[3],d[4],d[5])}return b.apply(c,d)}}}),c("isFunction",function(){var a=function(a){return"function"==typeof a};return a}),c("isMatch",["isRegExp","isDate"],function(a,b){function c(e,f){var g;if(e===f)return!0;if("object"==typeof f){if(g=typeof e,-1!==d.indexOf(g)){if(a(f)&&!f.test(e+""))return!1;if(b(f))return b(e)&&f.getTime()===e.getTime()?!0:!1}if(e instanceof Array&&void 0!==f[0]){for(var h=0;h<e.length;h+=1)if(c(e[h],f[0]))return!0;return!1}for(var i in f)if(f.hasOwnProperty(i)){if(void 0===e[i]&&!e.hasOwnProperty(i))return!1;if(!c(e[i],f[i]))return!1}return!0}return"function"==typeof f?!!f(e):!1}var d=["string","number","boolean"];return c}),c("isArguments",["toString"],function(a){var b=function(b){var c=String(b),d="[object Arguments]"===c;return d||(d="[object Array]"!==c&&null!==b&&"object"==typeof b&&"number"==typeof b.length&&b.length>=0&&(!b.callee||"[object Function]"===a.call(b.callee))),d};return b}),c("isArray",function(){Array.prototype.__isArray=!0,Object.defineProperty(Array.prototype,"__isArray",{enumerable:!1,writable:!0});var a=function(a){return a?!!a.__isArray:!1};return a}),c("isUndefined",function(){var a=function(a){return"undefined"==typeof a};return a}),c("sort",function(){function a(a,c,d,e){var f,g=a[d-1],h=c,i=0;for(f=c;d-1>f;f+=1)i=e(a[f],g),0>i&&(f!==h&&b(a,f,h),h+=1);return e(a[h],g)&&b(a,h,d-1),h}function b(a,b,c){var d=a[b];return a[b]=a[c],a[c]=d,a}function c(b,d,e,f){if(e>d){var g=a(b,d,e,f);c(b,d,g,f),c(b,g+1,e,f)}return b}return function(a,b){var d=c(a,0,a.length,b);return d}}),c("dispatcher",["apply","isFunction"],function(a,b){function c(a){this.type=a,this.defaultPrevented=!1,this.propagationStopped=!1,this.immediatePropagationStopped=!1}function d(a){if(!a)throw Error("event cannot be undefined")}c.prototype.preventDefault=function(){this.defaultPrevented=!0},c.prototype.stopPropagation=function(){this.propagationStopped=!0},c.prototype.stopImmediatePropagation=function(){this.immediatePropagationStopped=!0},c.prototype.toString=function(){return this.type};var e=function(e,f,g){function h(a,b){d(a);var c,e;e=o[a],e&&(b?(c=e.indexOf(b),-1!==c&&e.splice(c,1)):e.length=0)}function i(a,c){return b(c)?(d(a),o[a]=o[a]||[],o[a].push(c),function(){h(a,c)}):void 0}function j(c,g){function j(){h(c,j),a(g,f||e,arguments)}return b(g)?(d(c),i(c,j)):void 0}function k(a,b){d(a);var c,e="*";return a||b?(c=[],o[e]&&(c=o[e].concat(c)),o[a]&&(c=o[a].concat(c)),c):o}function l(){o={}}function m(b,c){return b&&a(b,e,c)}function n(a){d(a);var b,e=k(a,!0),f=e.length,a="object"==typeof a?a:new c(a);if(f)for(arguments[0]=a,b=0;f>b;b+=1)a.immediatePropagationStopped||m(e[b],arguments);return a}if(e&&e.on&&e.on.dispatcher)return e;e=e||{};var o={};return i.dispatcher=!0,f&&g?(e.on=f[g.on]&&f[g.on].bind(f),e.off=f[g.off]&&f[g.off].bind(f),e.once=f[g.once]&&f[g.once].bind(f),e.dispatch=e.fire=f[g.dispatch].bind(f)):(e.on=i,e.off=h,e.once=j,e.dispatch=e.fire=n),e.getListeners=k,e.removeAllListeners=l,e};return e}),c("matchAll",["isMatch"],function(a){function b(b,c){for(var d=[],e=0;e<b.length;e+=1)a(b[e],c)&&d.push(b[e]);return d}return b}),e()}(this.util||{},function(){return a}()),a.errors={E1000:"Datagrid cannot have a height of 0",E1001:"RENDER STATE INVALID. The only valid render states are those on ux.datagrid.states",E1002:"Unable to render. Invalid activeRange.",E1101:"Script templates that are used for datagrid rows must have a height greater than 0. This may be because the grid is not yet attached to the dom preventing it from calculating heights.",E1102:"at least one template is required. There were no row templates found for the datagrid."};var j,k=!!navigator.userAgent.match(/(iPad|iPhone|iPod)/g);try{j=angular.module("ux",["ng"])}catch(l){j=angular.module("ux")}a.datagrid={version:"1.4.11",isIOS:k,states:{BUILDING:"datagrid:building",READY:"datagrid:ready"},events:{ON_INIT:"datagrid:onInit",ON_LISTENERS_READY:"datagrid:onListenersReady",ON_READY:"datagrid:onReady",ON_STARTUP_COMPLETE:"datagrid:onStartupComplete",ON_BEFORE_RENDER:"datagrid:onBeforeRender",ON_AFTER_RENDER:"datagrid:onAfterRender",ON_BEFORE_UPDATE_WATCHERS:"datagrid:onBeforeUpdateWatchers",ON_AFTER_UPDATE_WATCHERS:"datagrid:onAfterUpdateWatchers",ON_BEFORE_DATA_CHANGE:"datagrid:onBeforeDataChange",ON_AFTER_DATA_CHANGE:"datagrid:onAfterDataChange",ON_BEFORE_RENDER_AFTER_DATA_CHANGE:"datagrid:onBeforeRenderAfterDataChange",ON_RENDER_AFTER_DATA_CHANGE:"datagrid:onRenderAfterDataChange",ON_ROW_TEMPLATE_CHANGE:"datagrid:onRowTemplateChange",ON_SCROLL:"datagrid:onScroll",ON_BEFORE_RESET:"datagrid:onBeforeReset",ON_AFTER_RESET:"datagrid:onAfterReset",ON_AFTER_HEIGHTS_UPDATED:"datagrid:onAfterHeightsUpdated",ON_AFTER_HEIGHTS_UPDATED_RENDER:"datagrid:onAfterHeightsUpdatedRender",ON_BEFORE_ROW_DEACTIVATE:"datagrid:onBeforeRowDeactivate",ON_AFTER_ROW_ACTIVATE:"datagrid:onAFterRowActivate",ON_ROW_COMPILE:"datagrid:onRowCompile",ON_SCROLL_TO_TOP:"datagrid:onScrollToTop",ON_SCROLL_TO_BOTTOM:"datagrid:onScrollToBottom",RESIZE:"datagrid:resize",UPDATE:"datagrid:update",SCROLL_TO_INDEX:"datagrid:scrollToIndex",SCROLL_TO_ITEM:"datagrid:scrollToItem",SCROLL_INTO_VIEW:"datagrid:scrollIntoView",LOG:"datagrid:log",INFO:"datagrid:info",WARN:"datagrid:warn",ERROR:"datagrid:error"},getGrid:function(b){for(var c;b;){if(b.datagrid)return b.datagrid;if(b.$$childHead&&(c=a.datagrid.getGrid(b.$$childHead)))return c;b=b.$$nextSibling}return null},throwError:function(a){window.console&&console.warn&&console.warn(a)},options:{async:!0,updateDelay:100,creepRender:{enable:!0},creepStartDelay:1e3,cushion:-100,chunks:{detachDom:null,size:50,chunkClass:"datagrid-chunk",chunkDisabledClass:"datagrid-chunk-disabled",chunkReadyClass:"datagrid-chunk-ready"},scrollModel:{speed:5,manual:!0,simulateClick:!1,preventTouchMove:!1},compiledClass:"compiled",uncompiledClass:"uncompiled",contentClass:"datagrid-content",rowClass:"datagrid-row",renderThreshold:1,renderThresholdWait:50,renderWhileScrolling:!1,creepLimit:500,smartUpdate:!0,readyToRenderRetryMax:10,minHeight:100},coreAddons:[]},j.factory("gridAddons",["$injector",function(a){function b(b,c){for(var d,e,f=0,g=b.length;g>f;){if(d=a.get(b[f]),!("function"==typeof d||d instanceof Array))throw new Error("Addons expect a function ($injector array supported) to pass the grid instance to.");e=a.invoke(d,c,{inst:c}),f+=1}}return function(a,c){c=c instanceof Array?c:c&&c.replace(/,/g," ").replace(/\s+/g," ").split(" ")||[],a.addons&&(c=a.addons=a.addons.concat(c)),b(c,a)}}]),a.css=function(){function a(a){return b(a)||(j[a]=c(a)),b(a)}function b(a){return j[a]}function c(a){if(document.styleSheets&&0!==document.getElementsByTagName(l.head).length){var b,c,d,e;if(document.styleSheets.length>0)for(d=0;d<document.styleSheets.length&&(document.styleSheets[d].disabled||(e=document.styleSheets[d].media,c=typeof e,c===l.string?(""===e||-1!==e.indexOf(l.screen))&&(b=document.styleSheets[d]):c===l.object&&(""===e.mediaText||-1!==e.mediaText.indexOf(l.screen))&&(b=document.styleSheets[d]),"undefined"==typeof b));d++);var f=document.createElement("style");f.type="text/css",f.title=a,document.getElementsByTagName(l.head)[0].appendChild(f);var g=document.styleSheets.length-1;return b=document.styleSheets[g],{name:a,styleSheet:b}}}function d(a){for(var b=j[a],c=document.styleSheets.length,d=0;c>d;d+=1)document.styleSheets[d]===b.styleSheet&&document.styleSheets.splice(d,1);delete j[a],b=null}function e(c,d,e){var f,g=b(c)||a(c),h=g.styleSheet;if(h.addRule){for(f=0;f<h.rules.length;f++)if(h.rules[f].selectorText&&h.rules[f].selectorText.toLowerCase()===d.toLowerCase())return void(h.rules[f].style.cssText=e);if(h.addRule(d,e),h.rules[h.rules.length-1].cssText===d+" { }")throw new Error("CSS failed to write")}else if(h.insertRule){for(f=0;f<h.cssRules.length;f++)if(h.cssRules[f].selectorText&&h.cssRules[f].selectorText.toLowerCase()===d.toLowerCase())return void(h.cssRules[f].style.cssText=e);h.insertRule(d+"{"+e+"}",0)}}function f(a){var b,c,d,e,f;if(-1!==a.indexOf("{")||-1!==a.indexOf("}"))return null;if(k[a])return k[a];for(b=0,c=document.styleSheets.length;c>b;b+=1)if(d=document.styleSheets[b],e=d.rules||d.cssRules,f=g(e,a))return f;return null}function g(a,b){var c,d,e,f;if(a)for(c=0,d=a.length;d>c;c+=1){if(e=a[c],e.cssRules&&(f=g(e.cssRules,b)))return f;if(e.selectorText){var h="(\b)*"+b.replace(".","\\.")+"([^-a-zA-Z0-9]|,|$)",i=e.selectorText.match(h);if(i&&-1!==i.indexOf(b))return k[b]=e.style,e.style}}return null}function h(a,b){var c=f(a);return c&&void 0!==c[b]?c[b]:null}function i(a,b,c){var d=f(a);d[b]=c}var j={},k={},l={head:"head",screen:"screen",string:"string",object:"object"};return{createdStyleSheets:[],createStyleSheet:c,createClass:e,getCSSValue:h,setCSSValue:i,getSelector:f,removeStyleSheet:d}}(),a.each=c,a.filter=d,a.extend=e,function(){"use strict";var b=0;a.uid=function(){b+=1;for(var a=b.toString(36).toUpperCase();a.length<6;)a="0"+a;return a}}(),a.logWrapper=function(b,c,d,e){function f(a,b){"function"==typeof a&&g(a,c,b)}var g=a.util.apply;return d=d||"black",c.$logName=b,c.log=c.info=c.warn=c.error=function(){},c.log=function(){var c=[a.datagrid.events.LOG,b,d].concat(a.util.array.toArray(arguments));e.logger?g(e.logger.log,e.logger,c):f(e,c)},c.info=function(){var c=[a.datagrid.events.INFO,b,d].concat(a.util.array.toArray(arguments));e.logger?g(e.logger.info,e.logger,c):f(e,c)},c.warn=function(){var c=[a.datagrid.events.WARN,b,d].concat(a.util.array.toArray(arguments));e.logger?g(e.logger.warn,e.logger,c):f(e,c)},c.error=function(){var c=[a.datagrid.events.ERROR,b,d].concat(a.util.array.toArray(arguments));e.logger?g(e.logger.error,e.logger,c):f(e,c)},c.destroyLogger=function(){e.logger&&(e.log("destroy"),e.logger.destroy(),e.logger=null)},c},a.datagrid.Flow=f,j.directive("uxDatagrid",["$compile","gridAddons","$timeout",function(b,d,e){return{restrict:"AE",scope:!0,link:{pre:function(f,h,i){var j=new g(f,h,i,b,e);c(a.datagrid.coreAddons,function(b){a.util.apply(b,j,[j])}),d(j,i.addons)},post:function(a,b,c){a.datagrid.start()}}}}]),a.datagrid.coreAddons.chunkModel=function(b){function c(){return A}function d(a,c,e,f){for(var g,h,j=0,k=a.length,l=new i(b.options.chunks.detachDom);k>j;)h=a[j],j%c===0&&(g&&g.updateHeight(b.templateModel,B),g=new i(b.options.chunks.detachDom),g.min=h.min||j,g.templateModel=b.templateModel,g.templateStart=e,g.templateEnd=f,g.parent=l,g.index=l.length,l.push(g)),h instanceof i&&(h.parent=g,h.index=g.length),g.push(h),g.max=h.max||j,j+=1;return g&&g.updateHeight(b.templateModel,B),l.min||(l.min=l[0]?l[0].min:0,l.max=l[l.length-1]?l[l.length-1].max:0,l.templateStart=e,l.templateEnd=f,l.updateHeight(b.templateModel,B),l.dirtyHeight=!1),l.length>c?d(l,c,e,f):l}function e(a){var c,d;void 0===a||b.options.chunks.detachDom?A&&(A.forceHeightReCalc(b.templateModel,B),A.updateHeight(b.templateModel,B,1,!0),A.detachDom&&A.updateDomHeight(1)):(c=l(a,A),d=f(c,A),d.updateHeight(b.templateModel,B,-1,!0))}function f(a,b){for(var c;a.length;)c=a.shift(),b[c]instanceof i&&(b=b[c]);return b}function g(a,b,c,e,f){return G.log("chunkDom"),D=f,C=b,B=a,E=c,F=e,A=d(a,b,c,e),w(A),A.updateDomHeight(1),f}function j(a){if(B.length!==a.length)return g(a,C,E,F,D);for(var b=0,c=a.length;c>b;)k(b,a[b]),b+=1}function k(a,b){var c=l(a,A),d=c.pop(),e=o(c);e&&e[d]&&(e[d]=b,e.dirtyHeight=!0),B[a]=b}function l(a,b,c){if(!b)return[];var d,e=0,f=b.length;for(c=c||[];f>e;){if(d=b[e],!(d instanceof i)){c.push(a%C);break}if(a>=d.min&&a<=d.max){c.push(e),l(a,d,c);break}e+=1}return c}function m(a){var b=l(a,A),c=s(b);return c&&c.length&&void 0===c.attr("row-id")&&c.attr("row-id",a),c}function n(a){if(A){var b=l(a,A);return p(b)}}function o(a){for(var b=a.slice(0),c=A;b.length;)c=c[b.shift()];return c}function p(a,b){for(var c,d=0,e=a.slice(0),f=A,g=D;d<e.length;)c=e.shift(),
!b||f.rendered&&!q(f)||(b(g,f),w(f)),e.length||u(f),f=f[c],g=f.rendered||angular.element(g.children()[c]);return g}function q(a){var b=!a.hasChildChunks()&&a.length&&a.rendered&&a.rendered.children().length!==a.length;return b&&G.info("recompile chunk %s",a.getId()),b}function r(c,d){var e,f,g=0;if(c.html(d.getChildrenStr(!1,C)),e=c.children(),d.rendered=c,d.hasChildChunks())for(f=e.length;f>g;)d[g].dom=e[g],g+=1;d.detachDom&&d.dirtyHeight&&d.updateDomHeight(),a.each(e,t),d.hasChildChunks()?-1!==e[0].className.indexOf(b.options.chunks.chunkClass)&&e.addClass(b.options.chunks.chunkReadyClass):d.rendered.hasClass(b.options.chunks.chunkReadyClass)||d.rendered.addClass(b.options.chunks.chunkReadyClass)}function s(a){return p(a,r)}function t(a){if(a){var b=window.getComputedStyle(a);if(b)return b.getPropertyValue("top")}}function u(a){return a.compiled||(a.compiled=v(a),a.compiled&&(a.parent&&u(a.parent),b.flow.add(y))),a.compiled}function v(a){var c,d;if(a[0]instanceof i){for(c=0,d=a.length;d>c;){if(!a[c].compiled)return!1;c+=1}return!0}for(c=a.min,d=a.max;d>c;){if(!b.isCompiled(c))return!1;c+=1}return!0}function w(a){a.updateDom(b.options.chunks.chunkDisabledClass)}function x(a,b,c){G.log("reset"),H.length=0,a=a||[],A&&(A.destroy(),A=null,D=null,B=null),g(a,C,E,F,b)}function y(){var a=b.values.activeRange,c=b.options.chunks;A.enableRange(a.min,a.max,c.chunkDisabledClass),c.detachDom&&w(A)}function z(){x(),A=null,B=null,C=null,D=null,E=null,F=null,H.length=0,H=null,b.chunkModel=null,G.destroyLogger(),G=null,b=null}var A,B,C,D,E,F,G=a.logWrapper("chunkModel",{},"purple",b),H=[];return b.flow.unique(w),G.chunkDom=g,G.getChunkList=c,G.getRowIndexes=function(a){return l(a,A)},G.getItemByIndexes=o,G.getRow=m,G.getExistingRow=n,G.reset=x,G.updateRow=k,G.updateList=j,G.updateAllChunkHeights=e,G.getRowIndexFromIndexes=h,G.destroy=z,b.scope.$on(a.datagrid.events.ON_AFTER_UPDATE_WATCHERS,y),a.util.dispatcher(G),b.chunkModel=G,G},a.datagrid.coreAddons.push(a.datagrid.coreAddons.chunkModel),i.uid=0,i.DETACHED="chunkArray:detached",i.ATTACHED="chunkArray:attached",i.prototype=[],i.prototype.getStub=function(a){return this.templateStartWithPos||this.createDomTemplates(),this.templateStartWithPos+a+this.templateEnd},i.prototype.inRange=function(a){return a>=this.min&&a<=this.max},i.prototype.rangeOverlap=function(a,b,c){var d=!1;for(c=c>0?c:0,a-=c,b+=c;b>=a;){if(this.inRange(a)){d=!0;break}a+=1}return d},i.prototype.each=function(b,c){for(var d=0,e=this.length;e>d;)a.util.apply(b,this[d],c),d+=1},i.prototype.getChildrenStr=function(a,b){for(var c,d=0,e=this.length,f="",g=this;e>d;)g[d]instanceof i?f+=g[d].getStub(a?g[d].getChildrenStr(a):"",b):(c=h(g._id+"."+d,b),f+=this.templateModel.getTemplate(g[d]).template),d+=1;return f},i.prototype.updateHeight=function(a,b,c,d){var e,f=0,g=0;if(this[0]instanceof i)for(e=this.length;e>f;)1===c&&this[f].updateHeight(a,b,c,d),g+=this[f].height,f+=1;else g=a.getHeight(b,this.min,this.max);this.height!==g?(this.dirtyHeight=!0,this.height=g):this.rendered,-1==c&&this.dirtyHeight&&this.parent&&this.parent.updateHeight(a,b,c,d),d&&this.dirtyHeight&&this.updateDomHeight()},i.prototype.getPreviousSibling=function(){var a,b;return this.parent&&(b=this.index-1,a=this.parent[b],a&&a.index===this.index-1||this.parent.parent&&(a=this.parent.getPreviousSibling(),a&&(a=a.last()))),a},i.prototype.getNextSibling=function(){var a,b;return this.parent&&(b=this.index+1,a=this.parent[b],a&&a.index===this.index+1||this.parent.parent&&(a=this.parent.getNextSibling(),a&&(a=a.first()))),a},i.prototype.first=function(){return this[0]},i.prototype.last=function(){return this[this.length-1]},i.prototype.calculateTop=function(){var a,b=0;return this.index&&this.parent&&(a=this.getPreviousSibling(),a&&(b=a.top+a.height)),this.top=b,this.top},i.prototype.forceHeightReCalc=function(a,b){var c,d=0,e=0;if(this[0]instanceof i)for(c=this.length;c>d;)e+=this[d].forceHeightReCalc(a,b),d+=1;else e=a.getHeight(b,this.min,this.max);return this.height!==e&&(this.height=e,this.detachDom?this.dirtySiblings():this.setDirtyHeight()),this.height},i.prototype.setDirtyHeight=function(){for(var a=this;a;)a.dirtyHeight=!0,a=a.parent},i.prototype.dirtySiblings=function(){if(this.dirtyHeight=!0,this.parent){for(var a=0,b=this.length;b>a;)this[a].dirtyHeight=!0,a+=1;this.parent.dirtySiblings()}},i.prototype.getId=function(){if(this._index!==this.index||!this._id){var a=this,b="";for(this._index=this.index;a;)b="."+a.index+b,a=a.parent;this._id=b.substr(1,b.length)}return this._id},i.prototype.hasChildChunks=function(){return this._hasChildChunks||(this._hasChildChunks=this.first()instanceof i),this._hasChildChunks},i.prototype.enableRange=function(a,b,c){this.rangeOverlap(a,b,this.detachDom)?this.enable(c):this.disable(c),this.hasChildChunks()&&this.each(this.enableRange,[a,b,c])},i.prototype.enable=function(a){this.enabled||(this.enabled=!0,this.updateDom(a),this.parent&&this.parent.enable(a))},i.prototype.disable=function(a){var b,c=0;if(this.compiled){if(this.hasChildChunks())for(b=this.length;b>c;)this[c].disable(a),c+=1;this.enabled&&(this.enabled=!1,this.updateDom(a))}},i.prototype.updateDom=function(a){this.rendered&&(this.compiled&&!this.rendered.attr("compiled")&&this.rendered.attr("compiled",!0),this.detachDom?this.enabled?this.detached&&(this.detached=!1,this.parent.rendered.append(this.rendered)):this.enabled||this.detached||this.parent&&this.parent.compiled&&this.rendered.parent().length&&(this.detached=!0,this.rendered.remove(void 0,!0)):(this.rendered.attr("enabled",this.enabled),this.enabled?(this.rendered.removeAttr("disabled"),this.rendered.removeAttr("read-only"),this.rendered.removeClass(a)):(this.rendered.attr("disabled","disabled"),this.rendered.attr("read-only",!0),this.rendered.addClass(a))),this.each(this.updateDom,[a]))},i.prototype.updateDomHeight=function(a){var b=this.rendered&&this.rendered[0]||this.dom;b?(this.dirtyHeight=!1,this.mode===i.DETACHED&&(this.calculateTop(),b.style.top=this.top+"px"),b.style.height=this.height+"px"):this.createDomTemplates(),-1===a&&this.parent?this.parent.updateDomHeight(a):a&&this.hasChildChunks()&&this.each(this.updateDomHeight,[a])},i.prototype.createDomTemplates=function(){if(!this.templateReady&&this.templateStart){var a=this.templateStart.substr(0,this.templateStart.length-1)+' style="';this.mode===i.DETACHED&&(this.calculateTop(),a+="position:absolute;top:"+this.top+"px;left:0px;"),this.templateStartWithPos=a+"width:100%;height:"+this.height+'px;" chunk-id="'+this.getId()+'" range="'+this.min+":"+this.max+'">',this.templateReady=!0}},i.prototype.children=function(){var a=[];this.each(function(){a.push(this.rendered)},[])},i.prototype.decompile=function(a){this.hasChildChunks()?this.each("decompile",[a]):this.rendered&&(this.rendered.children().remove(),this.rendered.removeClass(a))},i.prototype.destroy=function(){for(this.hasChildChunks()&&this.each(this.destroy),this.templateStart="",this.templateEnd="",this.templateModel=null,this.rendered=null,this.dom=null,this.parent=null;this.length;)this.pop();this.length=0},a.datagrid.events.ON_RENDER_PROGRESS="datagrid:onRenderProgress",a.datagrid.events.STOP_CREEP="datagrid:stopCreep",a.datagrid.events.ENABLE_CREEP="datagrid:enableCreep",a.datagrid.events.DISABLE_CREEP="datagrid:disableCreep",a.datagrid.coreAddons.creepRenderModel=function(b){function d(a){if(b.scope.$root.$$phase)return!1;var c=b.getScope(a);return c&&c.$digested||b.forceRenderScope(a),!0}function e(){var a={count:0};return c(b.scopes,f,a),a.count>=b.rowsLength&&z.disable(),{count:a.count,len:b.rowsLength}}function f(a,b,c,d){d.count+=a?1:0}function g(a,c,d){b.values.touchDown||(u=!1,v=Date.now()+b.options.renderThreshold,A=a,B=c,j(k,d))}function h(c,d){var e=a.util.array.toArray(arguments);return e.splice(0,2),b.options.async?(clearTimeout(t),t=setTimeout(function(){a.util.apply(c,null,e)},d)):a.util.apply(c,this,e),t}function i(a,c){for(;a>=0&&a<b.rowsLength&&b.isCompiled(a);)a+=c;return a>=0&&a<b.rowsLength?a:c>0?b.rowsLength:-1}function j(a,c){var e,f=Date.now();v>f&&l()?(e=b.templateModel.hasVariableRowHeights(),A=c?A:i(A,-1),A>=0&&d(A)&&c&&(A-=1),B=c?B:i(B,1),B!==b.rowsLength&&d(B)&&c&&(B+=1),j(a,c),e&&p()):a()}function k(){if(m(),l()){y+=1,b.values.touchDown||b.values.speed||!l()||n(A,B);var c=e();c!==w&&b.dispatch(a.datagrid.events.ON_RENDER_PROGRESS,c)}else y=0,z.disable(),w=1,b.dispatch(a.datagrid.events.ON_RENDER_PROGRESS,1)}function l(){return!!(A>-1||B<b.rowsLength)}function m(){v=0,clearTimeout(x),clearTimeout(t),x=0}function n(a,c,d,e){m(),y<b.options.creepLimit&&(x=h(g,d||b.options.renderThresholdWait,a,c,e))}function o(a,c){n(A,B,b.options.creepStartDelay,c)}function p(){D=!0;var a=b.getRowOffset(E)+F;b.scrollModel.scrollTo(a,!0),D=!1}function q(a){D||(b.templateModel.hasVariableRowHeights()&&(E=b.getOffsetIndex(b.values.scroll),F=b.values.scroll-b.getRowOffset(E)),m())}function r(a,b,c){y=0,A=b.started||0,B=b.ended||0,o(a,c)}function s(a){q(a),b.options.creepRender&&b.options.creepRender.enable!==!1&&z.enable()}var t,u,v,w,x=0,y=0,z=a.logWrapper("creepModel",{},"blue",b),A=0,B=0,C=[],D=!1,E=0,F=0;z.stop=m,z.destroy=function(){z.disable(),m(),b=null,z=null},z.enable=function(){C.length||(C.push(b.scope.$on(a.datagrid.events.BEFORE_VIRTUAL_SCROLL_START,q)),C.push(b.scope.$on(a.datagrid.events.ON_VIRTUAL_SCROLL_UPDATE,q)),C.push(b.scope.$on(a.datagrid.events.ON_TOUCH_DOWN,q)),C.push(b.scope.$on(a.datagrid.events.ON_SCROLL_START,q)),C.push(b.scope.$on(a.datagrid.events.ON_AFTER_UPDATE_WATCHERS,r)))},z.disable=function(){for(m(),z.info("creep Disabled");C.length;)C.pop()()},b.unwatchers.push(b.scope.$on(a.datagrid.events.DISABLE_CREEP,z.disable)),b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_BEFORE_RESET,s)),b.unwatchers.push(b.scope.$on(a.datagrid.events.STOP_CREEP,m)),b.creepRenderModel=z,b.options.creepRender&&b.options.creepRender.enable?z.enable():z.disable()},a.datagrid.coreAddons.push(a.datagrid.coreAddons.creepRenderModel),a.datagrid.coreAddons.normalizeModel=function(b){function c(a,d,e,f,g){var h;return g=g.slice(0),g.push(d),a===f?g:a[b.grouped]&&a[b.grouped].length&&(h=ux.each(a[b.grouped],c,f,g),h&&h!==a[b.grouped])?h:void 0}function d(a,b,c,d){"replace"===d?a[b]=c:"insert"===d?a.splice(b,0,c):"remove"===d&&a.splice(b,1)}function e(a,c,e){for(var h,i,j=b.getOriginalIndexOfItem(g[c]),k=f;j.length;){if(i=j.shift(),h=k[i],!j.length){b.grouped&&k[0]&&k[0].hasOwnProperty(b.grouped)&&(k=k[0][b.grouped],j.push(k.length),i=k.length),d(k,i,a,e);break}b.grouped&&(k=h[b.grouped])}d(g,c,a,e)}var f,g,h=a.logWrapper("normalizeModel",{},"grey",b);return b.normalize=function(a,c,d){a=a||[];var e=0,f=a.length;for(d=d||[];f>e;)d.push(a[e]),a[e]&&a[e][c]&&b.normalize(a[e][c],c,d),e+=1;return d},b.setData=function(a,c){return h.log("setData %s",a),f=a,g=c?b.normalize(a,c):a&&a.slice(0)||[]},b.getData=function(){return g},b.getOriginalData=function(){return f},b.getOriginalIndexOfItem=function(a){var b=ux.each(f,c,a,[]);return b&&b!==f?b:[]},b.getNormalizedIndex=function(a,c){for(var d=c||0;d<b.rowsLength;){if(b.data[d]===a)return d;d+=1}if(c)for(d=c;d>=0;){if(b.data[d]===a)return d;d-=1}return-1},h.replace=function(a,b){e(a,b,"replace")},h.insert=function(a,b){e(a,b,"insert")},h.remove=function(a){e(null,a,"remove")},h.move=function(a,c){var d=b.getRowItem(a);a>c?(h.remove(a),h.insert(d,c)):c>a&&(h.insert(d,c),h.remove(a))},h.destroy=function(){h.destroyLogger(),f=null,g=null,b.normalizeModel=null,b=null,h=null},b.normalizeModel=h,b},a.datagrid.coreAddons.push(a.datagrid.coreAddons.normalizeModel),a.datagrid.events.ON_SCROLL_START="datagrid:scrollStart",a.datagrid.events.ON_SCROLL_STOP="datagrid:scrollStop",a.datagrid.events.ON_TOUCH_DOWN="datagrid:touchDown",a.datagrid.events.ON_TOUCH_UP="datagrid:touchUp",a.datagrid.events.ON_TOUCH_MOVE="datagrid:touchMove",a.datagrid.coreAddons.scrollModel=function(b){function c(){p(),b.element.css("willChange","scroll-position"),b.element.css("overflow")&&"visible"!==b.element.css("overflow")||b.element.css({overflow:"auto"}),D.log("addScrollListener"),d(),b.unwatchers.push(b.scope.$on(a.datagrid.events.SCROLL_TO_INDEX,function(a,c){b.scrollModel.scrollToIndex(c,!0)})),b.unwatchers.push(b.scope.$on(a.datagrid.events.SCROLL_TO_ITEM,function(a,c){b.scrollModel.scrollToItem(c,!0)})),b.unwatchers.push(b.scope.$on(a.datagrid.events.SCROLL_INTO_VIEW,function(a,c){b.scrollModel.scrollIntoView(c,!0)})),g(),E=!0}function d(){D.log("addScrollListener"),H=!0,b.element[0].addEventListener("scroll",k)}function e(){b.options.scrollModel&&b.options.scrollModel.manual&&(L[1].enabled=!0),H&&(D.removeScrollListener(),H=!1),D.removeTouchEvents()}function f(){H||d(),g()}function g(){D.log("addTouchEvents");var c=b.getContent();a.each(L,function(a){a.enabled&&(D.log(" add %s",a.event),c.bind(a.event,D[a.method]))})}function h(a){return a.touches||a.originalEvent.touches}function i(){return b.values.scroll}function j(a){b.element[0].scrollTop=a,b.values.scroll=a}function k(a){b.scrollModel.onUpdateScroll(a)}function l(){s=Date.now(),b.scrollModel.onScrollingStop()}function m(a){b.data[a-1]&&!b.isCompiled(a-1)&&b.forceRenderScope(a-1),b.data[a+1]&&!b.isCompiled(a+1)&&b.forceRenderScope(a+1)}function n(){H&&(D.log("onAfterHeightsUpdated force scroll to %s",b.values.scroll),j(b.values.scroll))}function o(){clearTimeout(q),D.destroyLogger(),p(),E&&(D.removeScrollListener(),D.removeTouchEvents()),D=null,b=null}var p,q,r,s,t,u,v,w,x,y,z,A,B,C,D=a.logWrapper("scrollModel",{},"orange",b),E=!1,F=!0,G=0,H=!1,I=0,J=0,K=0,L=[{event:"touchstart",method:"onTouchStart",enabled:!0},{event:"touchmove",method:"onTouchMove",enabled:!1},{event:"touchend",method:"onTouchEnd",enabled:!0},{event:"touchcancel",method:"onTouchEnd",enabled:!0}];return D.fireOnScroll=function(){b.values.scroll!==r&&(r=b.values.scroll,b.dispatch(a.datagrid.events.ON_SCROLL,b.values))},D.removeScrollListener=function(){D.log("removeScrollListener"),H=!1,b.element[0].removeEventListener("scroll",k)},D.removeTouchEvents=function(){if(E){D.log("removeTouchEvents");var c=b.getContent();a.each(L,function(a){D.log(" remove %s",a.event),c.unbind(a.event,D[a.method])})}},D.killEvent=function(a){a.preventDefault(),a.stopPropagation&&a.stopPropagation(),a.stopImmediatePropagation&&a.stopImmediatePropagation()},D.enable=function(a){F=!!a},D.onTouchStart=function(c){F&&(clearTimeout(C),b.values.touchDown=!0,v=t=h(c)[0].clientY||0,w=u=h(c)[0].clientX||0,b.values.scroll<0?b.values.scroll=0:b.values.scroll>I&&(b.values.scroll=I),x=b.values.scroll,y=0,z=0,b.dispatch(a.datagrid.events.ON_TOUCH_DOWN,c))},D.onTouchMove=function(c){if(F){b.options.scrollModel&&b.options.scrollModel.preventTouchMove&&D.killEvent(c);var d=Date.now();if(!(20>d-G)){G=d;var e,f=h(c)[0].clientY,g=h(c)[0].clientX,j=v-f,k=w-g;Math.abs(k)>Math.abs(j)||(v!==f&&(e=D.capScrollValue(i()+j),D.setScroll(e),J=j,v=f,y=j),k!==z&&(K=k-z,z=k),b.dispatch(a.datagrid.events.ON_TOUCH_MOVE,J,j,y,K,k,z))}}},D.onTouchEnd=function(c){if(F&&b.values.touchDown){b.values.touchDown=!1,b.dispatch(a.datagrid.events.ON_TOUCH_UP,c),L[1].enabled?Math.abs(y)<2&&Math.abs(z)<2?D.click(c):(A=Date.now(),B=J*b.options.scrollModel.speed,D.scrollSlowDown(!0)):D.onUpdateScroll();var d=i();0>d||b.getContentHeight()<b.getViewportHeight()?j(0):d>b.getContentHeight()-b.getViewportHeight()&&j(b.getContentHeight()-b.getViewportHeight())}},D.scrollSlowDown=function(a){clearTimeout(C);var c,d,e=Math.abs(J)*b.options.scrollModel.speed,f=e-(Date.now()-A),g=B;B=D.easeOut(f,B,J||0,e),d=B-g,Math.abs(d)<5&&(f=0),f>0&&(c=D.capScrollValue(i()+d),a||j(c),C=setTimeout(D.scrollSlowDown,20))},D.easeOut=function(a,b,c,d){return-c*(a/=d)*(a-2)+b},D.click=function(a){if(b.options.scrollModel.simulateClick){b.options.scrollModel.simulateClick&&d&&!/(SELECT|INPUT|TEXTAREA)/i.test(d.tagName)&&D.killEvent(a);var c,d=a.target;if(!b.isDigesting(b.$scope)&&d&&!/(SELECT|INPUT|TEXTAREA)/i.test(d.tagName)){c=document.createEvent("MouseEvents"),c.initMouseEvent("click",!0,!0,a.view,1,d.screenX,d.screenY,d.clientX,d.clientY,a.ctrlKey,a.altKey,a.shiftKey,a.metaKey,0,null),c._constructed=!0;try{b.creepRenderModel.stop(),d.dispatchEvent(c)}catch(e){}}}},D.getScroll=function(a){return a?a.scrollTop:i()},D.setScroll=function(c){var d,e=b.chunkModel.getChunkList();e&&e.height?b.getContentHeight()-b.getViewportHeight()>=c&&(j(c),D.onUpdateScroll()):d=b.scope.$on(a.datagrid.events.ON_AFTER_RENDER,function(){d(),D.setScroll(c)})},D.onUpdateScroll=function(c){var d=b.scrollModel.getScroll(c&&(c.target||c.srcElement));b.values.scroll!==d&&(b.dispatch(a.datagrid.events.ON_SCROLL_START,d),b.values.speed=d-b.values.scroll,b.values.absSpeed=Math.abs(b.values.speed),b.values.scroll=d,b.values.scrollPercent=(b.values.scroll/b.getContentHeight()*100).toFixed(2)),b.scrollModel.waitForStop(),D.fireOnScroll()},D.capScrollValue=function(a){var c;return b.getContentHeight()<b.getViewportHeight()?(b.log(" CAPPED scroll value from %s to 0",a),a=0):b.getContentHeight()-a<b.getViewportHeight()&&(c=b.getContentHeight()-b.getViewportHeight(),b.log(" CAPPED scroll value to keep it from scrolling past the bottom. changed %s to %s",a,c),a=c),a},D.scrollTo=function(a,c){return a=D.capScrollValue(a),a!==r?(b.scrollModel.setScroll(a),c?b.scrollModel.onScrollingStop():b.scrollModel.waitForStop(),!0):!1},D.clearOnScrollingStop=function(){D.onScrollingStop()},D.waitForStop=function(){var a=!1;clearTimeout(q),D.log("waitForStop scroll = %s",b.values.scroll),b.options.renderWhileScrolling&&Date.now()-(b.options.renderWhileScrolling>0||0)>s&&(a=!0),a||!b.flow.async&&!b.values.touchDown?l():q=setTimeout(l,b.options.updateDelay)},D.onScrollingStop=function(){D.log("onScrollingStop %s",b.values.scroll),D.checkForEnds(),b.values.speed=0,b.values.absSpeed=0,b.render(),D.fireOnScroll(),b.dispatch(a.datagrid.events.ON_SCROLL_STOP,b.values),D.calculateBottomOffset()},D.scrollToIndex=function(a,c){D.log("scrollToIndex");var d=b.getRowOffset(a);return b.scrollModel.scrollTo(d,c),d},D.scrollToItem=function(a,c){D.log("scrollToItem");var d=b.getNormalizedIndex(a);return-1!==d?b.scrollModel.scrollToIndex(d,c):b.values.scroll},D.scrollIntoView=function(a,c){D.log("scrollIntoView");var d,e,f="number"==typeof a?a:b.getNormalizedIndex(a),g=b.getRowOffset(f);return m(f),g<b.values.scroll?b.scrollModel.scrollTo(g,c):(b.updateViewportHeight(),e=b.getViewportHeight(),d=b.templateModel.getTemplateHeight(b.getData()[f]),g>=b.values.scroll+e-d?b.scrollModel.scrollTo(g-e+d,c):!1)},D.scrollToTop=function(a){D.log("scrollToTop"),b.scrollModel.scrollTo(0,a)},D.scrollToBottom=function(a){D.log("scrollToBottom");var c=b.getContentHeight()-b.getViewportHeight();b.scrollModel.scrollTo(c>=0?c:0,a)},D.calculateBottomOffset=function(){if(b.rowsLength){var a=b.rowsLength-1;D.bottomOffset=I=b.getRowOffset(a)-b.getViewportHeight()+b.getRowHeight(a)}},D.checkForEnds=function(){b.values.scroll&&b.values.scroll>=I?b.dispatch(ux.datagrid.events.ON_SCROLL_TO_BOTTOM,b.values.speed):b.values.scroll<=0&&b.dispatch(ux.datagrid.events.ON_SCROLL_TO_TOP,b.values.speed)},p=b.scope.$on(a.datagrid.events.ON_READY,c),b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_AFTER_HEIGHTS_UPDATED,n)),b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_BEFORE_RESET,e)),b.unwatchers.push(b.scope.$on(a.datagrid.events.ON_AFTER_RESET,f)),b.unwatchers.push(b.scope.$on(ux.datagrid.events.ON_RENDER_AFTER_DATA_CHANGE,D.calculateBottomOffset)),D.destroy=o,b.scrollModel=D,b},a.datagrid.coreAddons.push(a.datagrid.coreAddons.scrollModel),a.datagrid.coreAddons.templateModel=function(b){"use strict";function c(a){return a=a.replace(/\n/g,""),a=a.replace(/[\t ]+</g,"<"),a=a.replace(/>[\t ]+</g,"><"),a=a.replace(/>[\t ]+$/g,">")}var d=/\#{3}[\w\d\W]+\#{3}/gi,f=/\#{3}include:([\w\d\W]+)\#{3}/gi,g=/uncompiled\s?/;return b.templateModel=function(){function h(){return M||(M="$$template_"+b.uid),M}function i(){Q.log("createTemplates");var c,d=b.element[0].getElementsByTagName("script"),e=d.length;for(e||O.length||b.throwError(a.errors.E1102),c=0;e>c;c+=1)j(d[c]);for(;d.length;)b.element[0].removeChild(d[0])}function j(a){var b=n(a,"template-name")||P,d=n(a,"template-base")||null,e=n(a,"template-item");return l(c(angular.element(a).html()),b,e,d)}function k(b){a.each(b,function(a){l(a.template,a.name,a.item,a.base)})}function l(d,e,f,g){var h,i=d,j=document.createElement("div");return j.className="grid-template-wrapper",d=Q.prepTemplate(e,d,g),d=angular.element(d)[0],g||(d.className+=" "+b.options.rowClass+" "+b.options.uncompiledClass+" {{$status}}"),d.setAttribute("template",e),b.getContent()[0].appendChild(j),j.appendChild(d),d=c(j.innerHTML),h={name:e,item:f,template:d,originalTemplate:i,height:G(j.children[0])},Q.log("template: %s %o",e,h),h.height||("none"===b.element.css("display")?Q.warn("Datagrid was intialized with a display:'none' value. Templates are unable to calculate heights. Grid will not render correctly."):b.element[0].offsetHeight?b.throwError(a.errors.E1101):b.throwError(a.errors.E1000)),O[h.name]=h,O.push(h),b.getContent()[0].removeChild(j),L=0,h}function m(a,b,c){var e,h="";return c?(e=Q.getTemplateByName(c),h=e.originalTemplate,h=h.replace(new RegExp("#{3}"+a+"#{3}","gi"),b)):-1!==b.indexOf("###include:")?b.replace(f,function(a,b){var c=Q.getTemplateByName(b);return c&&c.template.replace(g,"")||""}):b.replace(d,"")}function n(a,b){var c=a.attributes["data-"+b]||a.attributes[b];return c&&c.value||""}function o(){return O}function p(a){return a.attr||a.getAttribute?a.attr?a.attr("template"):a.getAttribute("template"):a instanceof HTMLElement?void 0:a[h()]||a._template}function q(a){return O[a]?O[a]:O[P]}function r(){var b,c;for(b in O)if(a.util.apply(Object.prototype.hasOwnProperty,O,[b])&&(c=c||O[b].height,c!==O[b].height))return!0;return!1}function s(){var a=0,b=O.length;if(!L)for(;b>a;)L+=O[a].height,a+=1;return L/b}function t(){return O.length}function u(a){var b=Q.getTemplate(a);return b?b.height:0}function v(a,b,c){var d=b,e=0;if(!a.length)return 0;for(;c>=d;)e+=Q.getRowHeight(d),d+=1;return e}function w(b,c){var d=h();a.util.apply(Object.prototype.hasOwnProperty,b,[d])||-1!==R.indexOf(b)||R.push(b),b[d]=c}function x(c,d,e){Q.info("setTemplate %s %s",c,d);var f;"number"==typeof c?(f=b.data[c],z(c)):f=c;var g=Q.getTemplate(f).name;Q.setTemplateName(f,d),b.flow.add(b.dispatch,[a.datagrid.events.ON_ROW_TEMPLATE_CHANGE,f,g,d,e],0)}function y(a,b){N[a]=b,S=!0}function z(a){delete N[a],S=!0}function A(){N={},S=!0}function B(a){return!!N[a]}function C(a){var c,d,e=N.hasOwnProperty(a),f=Q.getTemplateHeight(b.data[a]);if(T.variableRowHeights&&!e&&b.isCompiled(a)){if(c=b.getExistingRow(a),!c||!c.length)return f;d=c[0].offsetHeight,d!==N[a]&&d!==f&&(c[0].style.height=d+"px",N[a]=d,e=!0,S=!0)}return e?N[a]:f}function D(){return!!T.variableRowHeights}function E(){return S}function F(){S=!1}function G(a){var b=window.getComputedStyle(a);return a.offsetHeight+parseInt(b.marginTop,10)+parseInt(b.marginBottom,10)}function H(){for(var a,c,d,e=b.values.activeRange.min,f=b.values.activeRange.max-e,g={};f>e&&!S;)N.hasOwnProperty(e)||(Q.hasVariableRowHeights()?Q.getRowHeight(e):(c=Q.getTemplate(b.getData()[e]),g[c.name]||(a=b.getRowElm(e),d=Q.calculateRowHeight(a[0]),d!==c.height&&(c.height=d,S=!0)))),e+=1;S&&(b.updateHeights(),F())}function I(a){delete a[h()]}function J(){a.each(R,I),R.length=0}function K(){J(),Q.destroyLogger(),Q=null,O.length=0,O=null,R=null}var L,M,N,O=[],P="default",Q=a.logWrapper("templateModel",{},"teal",b),R=[],S=!1,T=e({},b.options.templateModel);return Q.getTemplate=function(a){var b=a[h()]||a._template;return Q.getTemplateByName(b)},Q.defaultName=P,Q.prepTemplate=m,Q.createTemplates=i,Q.createTemplatesFromData=k,Q.getTemplates=o,Q.getTemplateName=p,Q.getTemplateByName=q,Q.calculateRowHeight=G,Q.templateCount=t,Q.dynamicHeights=r,Q.averageTemplateHeight=s,Q.getHeight=v,Q.getTemplateHeight=u,Q.getRowHeight=C,Q.hasDirtyHeights=E,Q.clearDirtyHeights=F,Q.hasVariableRowHeights=D,Q.hasOverrideHeight=B,Q.forceRowHeight=y,Q.clearRowHeight=z,Q.clearAllRowHeights=A,Q.setTemplate=x,Q.setTemplateName=w,Q.updateTemplateHeights=H,Q.getTemplatesKey=h,Q.destroy=K,Q}(),b.templateModel},a.datagrid.coreAddons.push(a.datagrid.coreAddons.templateModel)}(this.ux=this.ux||{},function(){return this}());
|
¶ sourceMappingURL=angular-ux-datagrid.min.js.map |
}(this.ux = this.ux || {}, function() {return this;}()));
|