=r.start&&n<=r.end){for(f=0,h=o;h=r.start&&(y=r.data,a=r.end,d||(e.inPlaceSort?s=u._queryProcess(r.data,{filter:u.filter()}):(k=nr(u.group()||[]).concat(rt(u.sort()||[])),s=u._queryProcess(r.data,{sort:k,filter:u.filter()})),v=y=s.data,s.total!==t&&(a=s.total)),c=0,n+f>r.start&&(c=n+f-r.start),l=v.length,a>i&&(l-=a-i),f+=l-c,b=u._mergeGroups(b,y,c,l),i<=r.end&&f==i-n))return b;break}return[]},_mergeGroups:function(n,t,i,r){if(this._isServerGrouped()){var u,f=t.toJSON();return n.length&&(u=n[n.length-1]),ui(u,f,i,r),n.concat(f)}return n.concat(t.slice(i,r))},_processRangeData:function(n,i,r,u,e){var s,h,c,l,o=this;o._pending=t;o._skip=i>o.skip()?f.min(e,(o.totalPages()-1)*o.take()):u;o._currentRangeStart=i;o._take=r;s=o.options.serverPaging;h=o.options.serverSorting;c=o.options.serverFiltering;l=o.options.serverAggregates;try{o.options.serverPaging=!0;o._isServerGrouped()||o.group()&&o.group().length||(o.options.serverSorting=!0);o.options.serverFiltering=!0;o.options.serverPaging=!0;o.options.serverAggregates=!0;s&&(o._detachObservableParents(),o._data=n=o._observe(n));o._process(n)}finally{o.options.serverPaging=s;o.options.serverSorting=h;o.options.serverFiltering=c;o.options.serverAggregates=l}},skip:function(){var n=this;return n._skip===t?n._page!==t?(n._page-1)*(n.take()||1):t:n._skip},currentRangeStart:function(){return this._currentRangeStart||0},take:function(){return this._take||this._pageSize},_prefetchSuccessHandler:function(n,t,i,r){var f=this,e=f._timeStamp();return function(o){var c,l,s,a=!1,h={start:n,end:t,data:[],timestamp:f._timeStamp()};if(f._dequeueRequest(),f.trigger(et,{response:o,type:"read"}),o=f.reader.parse(o),s=f._readData(o),s.length){for(c=0,l=f._ranges.length;c=f._currentRequestTimeStamp||!f._skipRequestsInProgress)&&(i&&s.length?i():f.trigger(u,{}))}},prefetch:function(n,t,i){var r=this,u=f.min(n+t,r.total()),e={take:t,skip:n,page:n/t+1,pageSize:t,sort:r._sort,filter:r._filter,group:r._group,aggregate:r._aggregate};r._rangeExists(n,u)?i&&i():(clearTimeout(r._timeout),r._timeout=setTimeout(function(){r._queueRequest(e,function(){r.trigger(it,{type:"read"})?r._dequeueRequest():r.transport.read({data:r._params(e),success:r._prefetchSuccessHandler(n,u,i),error:function(){var n=at.call(arguments);r.error.apply(r,n)}})})},100))},_multiplePrefetch:function(n,t,i){var r=this,u=f.min(n+t,r.total()),e={take:t,skip:n,page:n/t+1,pageSize:t,sort:r._sort,filter:r._filter,group:r._group,aggregate:r._aggregate};r._rangeExists(n,u)?i&&i():r.trigger(it,{type:"read"})||r.transport.read({data:r._params(e),success:r._prefetchSuccessHandler(n,u,i,!0)})},_rangeExists:function(n,t){for(var f=this,r=f._ranges,i=0,u=r.length;i=t)return!0;return!1},_getCurrentRangeSpan:function(){for(var n,r=this,u=r._ranges,i=r.currentRangeStart(),e=i+(r.take()||0),f=[],o=u.length,t=0;t=i||n.start>=i&&n.start<=e)&&f.push(n);return f},_removeModelFromRanges:function(n){for(var i,u=this,t=0,r=this._ranges.length;t=n){r._getByUid(t.uid,i.data)||(r._isServerGrouped()?i.data.splice(n,0,r._wrapInEmptyGroup(t)):i.data.splice(n,0,t));break}r._updateRangesLength()},_updateRangesLength:function(){for(var n,e=this,o=e._ranges||[],s=o.length,r=!1,i=0,u=0,t=0;t0?this.filter(this._hierarchicalFilter):(this.options.filter=this._hierarchicalFilter,this._filter=b(this.options.filter),this._hierarchicalFilter=null)),t},remove:function(n){var r,t=n.parentNode(),i=this;return t&&t._initChildren&&(i=t.children),r=l.fn.remove.call(i,n),t&&!i.data().length&&(t.hasChildren=!1),r},success:yr("success"),data:yr("data"),insert:function(n,t){var i=this.parent();return i&&i._initChildren&&(i.hasChildren=!0,i._initChildren()),l.fn.insert.call(this,n,t)},filter:function(n){return n===t?this._filter:(!this.options.serverFiltering&&this._markHierarchicalQuery(n)&&(n={logic:"or",filters:[n,{field:"_matchFilter",operator:"equals",value:!0}]}),this.trigger("reset"),this._query({filter:n,page:1}),t)},_markHierarchicalQuery:function(t){var i,o,u,f,e,s=this.options.accentFoldingFiltering;return t=s?n.extend({},b(t),{accentFoldingFiltering:s}):b(t),t&&0!==t.filters.length?(i=r.filterExpr(t),u=i.fields,f=i.operators,o=e=Function("d, __f, __o","return "+i.expression),(u.length||f.length)&&(e=function(n){return o(n,u,f)}),this._updateHierarchicalFilter(e),!0):(this._updateHierarchicalFilter(function(){return!0}),!1)},_updateHierarchicalFilter:function(n){for(var t,r=this._data,u=!1,i=0;i=this.total()?(this.trigger("endreached",{index:n}),null):this.useRanges?this.useRanges?((n=this.skip+i)&&(r=this.range(Math.floor(n/i)*i)),n===this.prefetchThreshold&&this._prefetch(),n===this.midPageThreshold?this.range(this.nextMidRange,!0):n===this.nextPageThreshold?this.range(this.nextFullRange):n===this.pullBackThreshold&&this.range(this.offset===this.skip?this.previousMidRange:this.previousFullRange),r?this.dataSource.at(n-this.dataOffset):(this.trigger("endreached",{index:n}),null)):t:this.dataSource.view()[n]},indexOf:function(n){return this.dataSource.data().indexOf(n)+this.dataOffset},total:function(){return parseInt(this.dataSource.total(),10)},next:function(){var n=this,t=n.pageSize,i=n.skip-n.viewSize+t,r=f.max(f.floor(i/t),0)*t;this.offset=i;this.dataSource.prefetch(r,t,function(){n._goToRange(i,!0)})},range:function(n,t){if(this.offset===n)return!0;var r=this,i=this.pageSize,u=f.max(f.floor(n/i),0)*i,e=this.dataSource;return t&&(u+=i),e.inRange(n,i)?(this.offset=n,this._recalculate(),this._goToRange(n),!0):!this.prefetch||(e.prefetch(u,i,function(){r.offset=n;r._recalculate();r._goToRange(n,!0)}),!1)},syncDataSource:function(){var n=this.offset;this.offset=null;this.range(n)},destroy:function(){this.unbind()},_prefetch:function(){var i=this,n=this.pageSize,t=this.skip+n,r=this.dataSource;r.inRange(t,n)||this._prefetching||!this.prefetch||(this._prefetching=!0,this.trigger("prefetching",{skip:t,take:n}),r.prefetch(t,n,function(){i._prefetching=!1;i.trigger("prefetched",{skip:t,take:n})}))},_goToRange:function(n,t){this.offset===n&&(this.dataOffset=n,this._expanding=t,this.dataSource.range(n,this.pageSize),this.dataSource.enableRequestsInProgress())},_reset:function(){this._syncPending=!0},_change:function(){var n=this.dataSource;this.length=this.useRanges?n.lastRange().end:n.view().length;this._syncPending&&(this._syncWithDataSource(),this._recalculate(),this._syncPending=!1,this.trigger("reset",{offset:this.offset}));this.trigger("resize");this._expanding&&this.trigger("expand");delete this._expanding},_syncWithDataSource:function(){var n=this.dataSource;this._firstItemUid=n.firstItemUid();this.dataOffset=this.offset=n.skip()||0;this.pageSize=n.pageSize();this.useRanges=n.options.serverPaging},_recalculate:function(){var t=this.pageSize,r=this.offset,i=this.viewSize,n=Math.ceil(r/t)*t;this.skip=n;this.midPageThreshold=n+t-1;this.nextPageThreshold=n+i-1;this.prefetchThreshold=n+Math.floor(t/3*2);this.pullBackThreshold=this.offset-1;this.nextMidRange=n+t-i;this.nextFullRange=n;this.previousMidRange=r-i;this.previousFullRange=n-t}});gr=i.Observable.extend({init:function(n,t){var r=this;i.Observable.fn.init.call(r);this.dataSource=n;this.batchSize=t;this._total=0;this.buffer=new vi(n,3*t);this.buffer.bind({endreached:function(n){r.trigger("endreached",{index:n.index})},prefetching:function(n){r.trigger("prefetching",{skip:n.skip,take:n.take})},prefetched:function(n){r.trigger("prefetched",{skip:n.skip,take:n.take})},reset:function(){r._total=0;r.trigger("reset")},resize:function(){r._total=Math.ceil(this.length/r.batchSize);r.trigger("resize",{total:r.total(),offset:this.offset})}})},syncDataSource:function(){this.buffer.syncDataSource()},at:function(n){var r,t,i=this.buffer,u=n*this.batchSize,e=this.batchSize,f=[];for(i.offset>u&&i.at(i.offset-1),t=0;t0&&(n=n.get(f.substring(0,e))),i.start(n),r=n!==i.source?r.call(n,i.source):r.call(n),i.stop(n)),n&&n!==i.source&&(i.currentSource=n,n.unbind(u,i._change).bind(u,i._change)),i.stop(i.source),r},set:function(n){var t=this.currentSource||this.source,r=i.getter(this.path)(t);"function"==typeof r?t!==this.source?r.call(t,this.source,n):r.call(t,n):t.set(this.path,n)},destroy:function(){this.observable&&(this.source.unbind(u,this._change),this.currentSource&&this.currentSource.unbind(u,this._change));this.unbind()}});ft=h.extend({get:function(){for(var n=this.source,i=this.path,r=0,t=n.get(i);!t&&n;)n=this.parents[++r],n instanceof o&&(t=n.get(i));return c(t,n)}});et=h.extend({init:function(n,t,i){var r=this;h.fn.init.call(r,n,t);r.template=i},render:function(n){var t;return this.start(this.source),t=i.render(this.template,n),this.stop(this.source),t}});r=ct.extend({init:function(n,t,i){this.element=n;this.bindings=t;this.options=i},bind:function(n,t){var i=this;n=t?n[t]:n;n.bind(u,function(n){i.refresh(t||n)});i.refresh(t)},destroy:function(){}});v=r.extend({dataType:function(){var n=this.element.getAttribute("data-type")||this.element.type||"text";return n.toLowerCase()},parsedValue:function(){return this._parseValue(this.element.value,this.dataType())},_parseValue:function(n,t){return"date"==t?n=i.parseDate(n,"yyyy-MM-dd"):"datetime-local"==t?n=i.parseDate(n,["yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mm"]):"number"==t?n=i.parseFloat(n):"boolean"==t&&(n=n.toLowerCase(),n=null!==i.parseFloat(n)?!!i.parseFloat(n):"true"===n.toLowerCase()),n}});f.attr=r.extend({refresh:function(n){this.element.setAttribute(n,this.bindings.attr[n].get())}});f.css=r.extend({init:function(n,t,i){r.fn.init.call(this,n,t,i);this.classes={}},refresh:function(t){var i=n(this.element),r=this.bindings.css[t],u=this.classes[t]=r.get();u?i.addClass(t):i.removeClass(t)}});f.style=r.extend({refresh:function(n){this.element.style[n]=this.bindings.style[n].get()||""}});f.enabled=r.extend({refresh:function(){this.bindings.enabled.get()?this.element.removeAttribute("disabled"):this.element.setAttribute("disabled","disabled")}});f.readonly=r.extend({refresh:function(){this.bindings.readonly.get()?this.element.setAttribute("readonly","readonly"):this.element.removeAttribute("readonly")}});f.disabled=r.extend({refresh:function(){this.bindings.disabled.get()?this.element.setAttribute("disabled","disabled"):this.element.removeAttribute("disabled")}});f.events=r.extend({init:function(n,t,i){r.fn.init.call(this,n,t,i);this.handlers={}},refresh:function(t){var r=n(this.element),u=this.bindings.events[t],i=this.handlers[t];i&&r.off(t,i);i=this.handlers[t]=u.get();r.on(t,u.source,i)},destroy:function(){var t,i=n(this.element);for(t in this.handlers)i.off(t,this.handlers[t])}});f.text=r.extend({refresh:function(){var t=this.bindings.text.get(),r=this.element.getAttribute("data-format")||"";null==t&&(t="");n(this.element).text(i.toString(t,r))}});f.visible=r.extend({refresh:function(){this.element.style.display=this.bindings.visible.get()?"":"none"}});f.invisible=r.extend({refresh:function(){this.element.style.display=this.bindings.invisible.get()?"none":""}});f.html=r.extend({refresh:function(){this.element.innerHTML=this.bindings.html.get()}});f.value=v.extend({init:function(t,i,r){v.fn.init.call(this,t,i,r);this._change=c(this.change,this);this.eventName=r.valueUpdate||u;n(this.element).on(this.eventName,this._change);this._initChange=!1},change:function(){this._initChange=this.eventName!=u;this.bindings[s].set(this.parsedValue());this._initChange=!1},refresh:function(){var n,t;this._initChange||(n=this.bindings[s].get(),null==n&&(n=""),t=this.dataType(),"date"==t?n=i.toString(n,"yyyy-MM-dd"):"datetime-local"==t&&(n=i.toString(n,"yyyy-MM-ddTHH:mm:ss")),this.element.value=n);this._initChange=!1},destroy:function(){n(this.element).off(this.eventName,this._change)}});f.source=r.extend({init:function(n,t,u){r.fn.init.call(this,n,t,u);var f=this.bindings.source.get();f instanceof i.data.DataSource&&u.autoBind!==!1&&f.fetch()},refresh:function(n){var t=this,r=t.bindings.source.get();r instanceof e||r instanceof i.data.DataSource?(n=n||{},"add"==n.action?t.add(n.index,n.items):"remove"==n.action?t.remove(n.index,n.items):"itemchange"!=n.action&&t.render()):t.render()},container:function(){var n=this.element;return"table"==n.nodeName.toLowerCase()&&(n.tBodies[0]||n.appendChild(document.createElement("tbody")),n=n.tBodies[0]),n},template:function(){var n=this.options,t=n.template,r=this.container().nodeName.toLowerCase();return t||(t="select"==r?n.valueField||n.textField?i.format('