/** * Kendo UI v2018.1.117 (http://www.telerik.com/kendo-ui) * Copyright 2018 Telerik AD. All rights reserved. * * Kendo UI commercial licenses may be obtained at * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete * If you do not own a commercial license, this file shall be governed by the trial license terms. */ !function(e,define){define("kendo.data.min",["kendo.core.min","kendo.data.odata.min","kendo.data.xml.min"],e)}(function(){return function(e,t){function r(e,t,r,i){return function(n){var a,s={};for(a in n)s[a]=n[a];s.field=i?r+"."+n.field:r,t==De&&e._notifyChange&&e._notifyChange(s),e.trigger(t,s)}}function i(t,r){if(t===r)return!0;var n,a=e.type(t),s=e.type(r);if(a!==s)return!1;if("date"===a)return t.getTime()===r.getTime();if("object"!==a&&"array"!==a)return!1;for(n in t)if(!i(t[n],r[n]))return!1;return!0}function n(e,t){var r,i;for(i in e){if(r=e[i],de(r)&&r.field&&r.field===t)return r;if(r===t)return r}return null}function a(e){this.data=e||[]}function s(e,r){if(e){var i=typeof e===we?{field:e,dir:r}:e,n=ce(i)?i:i!==t?[i]:[];return ge(n,function(e){return!!e.dir})}}function o(e){var t,r,i,n,a=e.filters;if(a)for(t=0,r=a.length;tt.field?1:e.field=t.length)););o0&&(t=this[r--]);r>=0;r--)t=e(t,this[r],r,this);return t},filter:function(e,t){for(var r,i=0,n=[],a=this.length,s=t||window;i=0;if(s)for(r=e.split("."),i="";r.length>1;){if(i+=r.shift(),n=me.getter(i,!0)(a),n instanceof U)return n.set(r.join("."),t),s;i+="."}return me.setter(e)(a,t),s},set:function(e,t){var r=this,i=!1,n=e.indexOf(".")>=0,a=me.getter(e,!0)(r);return a!==t&&(a instanceof Se&&this._handlers[e]&&(this._handlers[e].get&&a.unbind(ze,this._handlers[e].get),a.unbind(De,this._handlers[e].change)),i=r.trigger("set",{field:e,value:t}),i||(n||(t=r.wrap(t,e,function(){return r})),(!r._set(e,t)||e.indexOf("(")>=0||e.indexOf("[")>=0)&&r.trigger(De,{field:e}))),i},parent:ve,wrap:function(e,t,i){var n,a,s,o,u=this,l=We.call(e);return null==e||"[object Object]"!==l&&"[object Array]"!==l||(s=e instanceof Ke,o=e instanceof ie,"[object Object]"!==l||o||s?("[object Array]"===l||s||o)&&(s||o||(e=new Ke(e)),a=r(u,De,t,!1),e.bind(De,a),u._handlers[t]={change:a}):(e instanceof U||(e=new U(e)),n=r(u,ze,t,!0),e.bind(ze,n),a=r(u,De,t,!0),e.bind(De,a),u._handlers[t]={get:n,change:a}),e.parent=i),e}}),J={number:function(e){return typeof e===we&&"null"===e.toLowerCase()?null:me.parseFloat(e)},date:function(e){return typeof e===we&&"null"===e.toLowerCase()?null:me.parseDate(e)},"boolean":function(e){return typeof e===we?"null"===e.toLowerCase()?null:"true"===e.toLowerCase():null!=e?!!e:e},string:function(e){return typeof e===we&&"null"===e.toLowerCase()?null:null!=e?e+"":e},"default":function(e){return e}},V={string:"",number:0,date:new Date,"boolean":!1,"default":""},W=U.extend({init:function(r){var i,n,a=this;if((!r||e.isEmptyObject(r))&&(r=e.extend({},a.defaults,r),a._initializers))for(i=0;i0&&(d._initializers=g),i=e.extend(d),i.define=function(e){return W.define(i,e)},d.fields&&(i.fields=d.fields,i.idField=d.idField),i},Q={selector:function(e){return ye(e)?e:Ne(e)},compare:function(e){var t=this.selector(e);return function(e,r){return e=t(e),r=t(r),null==e&&null==r?0:null==e?-1:null==r?1:e.localeCompare?e.localeCompare(r):e>r?1:en?1:-1}},desc:function(e){var t=this.selector(e);return function(e,r){var i=t(e),n=t(r);return i&&i.getTime&&n&&n.getTime&&(i=i.getTime(),n=n.getTime()),i===n?e.__position-r.__position:null==i?1:null==n?-1:n.localeCompare?n.localeCompare(i):i=0?"\\"+n:n}r=!1}return t+"$/"}return{quote:function(t){return t&&t.getTime?"new Date("+t.getTime()+")":e(t)},eq:function(e,t,i){return r("==",e,t,i)},neq:function(e,t,i){return r("!=",e,t,i)},gt:function(e,t,i){return r(">",e,t,i)},gte:function(e,t,i){return r(">=",e,t,i)},lt:function(e,t,i){return r("<",e,t,i)},lte:function(e,t,i){return r("<=",e,t,i)},startswith:t(function(e,t){return e+".lastIndexOf("+t+", 0) == 0"}),doesnotstartwith:t(function(e,t){return e+".lastIndexOf("+t+", 0) == -1"}),endswith:t(function(e,t){var r=t?t.length-2:0;return e+".indexOf("+t+", "+e+".length - "+r+") >= 0"}),doesnotendwith:t(function(e,t){var r=t?t.length-2:0;return e+".indexOf("+t+", "+e+".length - "+r+") < 0"}),contains:t(function(e,t){return e+".indexOf("+t+") >= 0"}),doesnotcontain:t(function(e,t){return e+".indexOf("+t+") == -1"}),matches:t(function(e,t){return t=t.substring(1,t.length-1),i(t)+".test("+e+")"}),doesnotmatch:t(function(e,t){return t=t.substring(1,t.length-1),"!"+i(t)+".test("+e+")"}),isempty:function(e){return e+" === ''"},isnotempty:function(e){return e+" !== ''"},isnull:function(e){return"("+e+" == null)"},isnotnull:function(e){return"("+e+" != null)"}}}(),a.filterExpr=function(e){var r,i,n,s,o,u,l=[],h={and:" && ",or:" || "},d=[],f=[],c=e.filters;for(r=0,i=c.length;r":"gt",isgreaterthan:"gt",greaterthan:"gt",greater:"gt",">=":"gte",isgreaterthanorequalto:"gte",greaterthanequal:"gte",ge:"gte",notsubstringof:"doesnotcontain",isnull:"isnull",isempty:"isempty",isnotempty:"isnotempty"},a.normalizeFilter=u,a.compareFilters=f,a.prototype={toArray:function(){return this.data},range:function(e,t){return new a(this.data.slice(e,e+t))},skip:function(e){return new a(this.data.slice(e))},take:function(e){return new a(this.data.slice(0,e))},select:function(e){return new a(L(this.data,e))},order:function(e,t,r){var i={dir:t};return e&&(e.compare?i.compare=e.compare:i.field=e),new a(r?this.data.sort(Q.create(i)):this.data.slice(0).sort(Q.create(i)))},orderBy:function(e,t){return this.order(e,"asc",t)},orderByDescending:function(e,t){return this.order(e,"desc",t)},sort:function(e,t,r,i){var n,a,o=s(e,t),u=[];if(r=r||Q,o.length){for(n=0,a=o.length;n0&&(r=e[0],n=n.groupBy(r).select(function(i){var n=new a(t).filter([{field:i.field,operator:"eq",value:i.value,ignoreCase:!1}]);return{field:i.field,value:i.value,items:e.length>1?new a(i.items).group(e.slice(1),n.toArray()).toArray():i.items,hasSubgroups:e.length>1,aggregates:n.aggregate(r.aggregates)}})),n},groupBy:function(e){if(fe(e)||!this.data.length)return new a([]);var t,r,i,n,s=e.field,o=this._sortForGrouping(s,e.dir||"asc"),u=me.accessor(s),l=u.get(o[0],s),h={field:s,value:l,items:[]},d=[h];for(i=0,n=o.length;ii&&(v(i)||m(i))&&(e=i),e}},a.process=function(e,r,i){r=r||{};var n,o=new a(e),u=r.group,l=g(u||[]).concat(s(r.sort||[])),h=r.filterCallback,d=r.filter,f=r.skip,c=r.take;return d&&(o=o.filter(d),h&&(o=h(o)),n=o.toArray().length),l&&(o=i?o.sort(l,t,t,i):o.sort(l),u&&(e=o.toArray())),f!==t&&c!==t&&(o=o.range(f,c)),u&&(o=o.group(u,e)),{total:n,data:o.toArray()}},Z=be.extend({init:function(e){this.data=e.data},read:function(e){e.success(this.data)},update:function(e){e.success(e.data)},create:function(e){e.success(e.data)},destroy:function(e){e.success(e.data)}}),ee=be.extend({init:function(e){var t,r=this;e=r.options=le({},r.options,e),_e(Ie,function(t,r){typeof e[r]===we&&(e[r]={url:e[r]})}),r.cache=e.cache?te.create(e.cache):{find:ve,add:ve},t=e.parameterMap,r.submit=e.submit,ye(e.push)&&(r.push=e.push),r.push||(r.push=Me),r.parameterMap=ye(t)?t:function(e){var r={};return _e(e,function(e,i){e in t&&(e=t[e],de(e)&&(i=e.value(i),e=e.key)),r[e]=i}),r}},options:{parameterMap:Me},create:function(e){return pe(this.setup(e,xe))},read:function(r){var i,n,a,s=this,o=s.cache;r=s.setup(r,qe),i=r.success||ve,n=r.error||ve,a=o.find(r.data),a!==t?i(a):(r.success=function(e){o.add(r.data,e),i(e)},e.ajax(r))},update:function(e){return pe(this.setup(e,Fe))},destroy:function(e){return pe(this.setup(e,Re))},setup:function(e,t){e=e||{};var r,i=this,n=i.options[t],a=ye(n.data)?n.data(e.data):n.data;return e=le(!0,{},n,e),r=le(!0,{},a,e.data),e.data=i.parameterMap(r,t),ye(e.url)&&(e.url=e.url(r)),e}}),te=be.extend({init:function(){this._store={}},add:function(e,r){e!==t&&(this._store[je(e)]=r)},find:function(e){return this._store[je(e)]},clear:function(){this._store={}},remove:function(e){delete this._store[je(e)]}}),te.create=function(e){var t={inmemory:function(){return new te}};return de(e)&&ye(e.find)?e:e===!0?new te:t[e]()},re=be.extend({init:function(e){var t,r,i,n,a,s,o,u,l,h,d,f,c,g=this;e=e||{};for(t in e)r=e[t],g[t]=typeof r===we?Ne(r):r;n=e.modelBase||W,de(g.model)&&(g.model=i=n.define(g.model)),a=he(g.data,g),g._dataAccessFunction=a,g.model&&(s=he(g.groups,g),o=he(g.serialize,g),u={},l={},h={},d={},f=!1,i=g.model,i.fields&&(_e(i.fields,function(e,t){var r;c=e,de(t)&&t.field?c=t.field:typeof t===we&&(c=t),de(t)&&t.from&&(r=t.from),f=f||r&&r!==e||c!==e,l[e]=Ne(r||c),h[e]=Ne(e),u[r||c]=e,d[e]=r||c}),!e.serialize&&f&&(g.serialize=k(o,i,S,h,u,d))),g._dataAccessFunction=a,g.data=k(a,i,b,l,u,d),g.groups=k(s,i,w,l,u,d))},errors:function(e){return e?e.errors:null},parse:Me,data:Me,total:function(e){return e.length},groups:Me,aggregates:function(){return{}},serialize:function(e){return e}}),ie=Se.extend({init:function(e){var r,i,n,a=this;e&&(i=e.data),e=a.options=le({},a.options,e),a._map={},a._prefetch={},a._data=[],a._pristineData=[],a._ranges=[],a._view=[],a._pristineTotal=0,a._destroyed=[],a._pageSize=e.pageSize,a._page=e.page||(e.pageSize?1:t),a._sort=s(e.sort),a._filter=u(e.filter),a._group=g(e.group),a._aggregate=e.aggregate,a._total=e.total,a._shouldDetachObservableParents=!0,Se.fn.init.call(a),a.transport=ne.create(e,i,a),ye(a.transport.push)&&a.transport.push({pushCreate:he(a._pushCreate,a),pushUpdate:he(a._pushUpdate,a),pushDestroy:he(a._pushDestroy,a)}),null!=e.offlineStorage&&("string"==typeof e.offlineStorage?(n=e.offlineStorage,a._storage={getItem:function(){return JSON.parse(localStorage.getItem(n))},setItem:function(e){localStorage.setItem(n,je(a.reader.serialize(e)))}}):a._storage=e.offlineStorage),a.reader=new me.data.readers[e.schema.type||"json"](e.schema),r=a.reader.model||{},a._detachObservableParents(),a._data=a._observe(a._data),a._online=!0,a.bind(["push",Pe,De,Ce,Oe,Ae,Te],e)},options:{data:null,schema:{modelBase:W},offlineStorage:null,serverSorting:!1,serverPaging:!1,serverFiltering:!1,serverGrouping:!1,serverAggregates:!1,batch:!1,inPlaceSort:!1},clone:function(){return this},online:function(r){return r!==t?this._online!=r&&(this._online=r,r)?this.sync():e.Deferred().resolve().promise():this._online},offlineData:function(e){return null==this.options.offlineStorage?null:e!==t?this._storage.setItem(e):this._storage.getItem()||[]},_isServerGrouped:function(){var e=this.group()||[];return this.options.serverGrouping&&e.length},_pushCreate:function(e){this._push(e,"pushCreate")},_pushUpdate:function(e){this._push(e,"pushUpdate")},_pushDestroy:function(e){this._push(e,"pushDestroy")},_push:function(e,t){var r=this._readData(e);r||(r=e),this[t](r)},_flatData:function(e,t){if(e){if(this._isServerGrouped())return q(e);if(!t)for(var r=0;r-1)return t(i,r),!0})},_removePristineForModel:function(e){this._executeOnPristineForModel(e,function(e,t){t.splice(e,1)})},_readData:function(e){var t=this._isServerGrouped()?this.reader.groups:this.reader.data;return t.call(this.reader,e)},_eachPristineItem:function(e){this._eachItem(this._pristineData,e)},_eachItem:function(e,t){e&&e.length&&(this._isServerGrouped()?R(e,t):t(e))},_pristineForModel:function(e){var t,r,i=function(i){if(r=C(i,e),r>-1)return t=i[r],!0};return this._eachPristineItem(i),t},_cancelModel:function(e){var t=this,r=this._pristineForModel(e);this._eachItem(this._data,function(i){var n=T(i,e);n>=0&&(!r||e.isNew()&&!r.__state__?(i.splice(n,1),t._removeModelFromRanges(e)):(i[n].accept(r),"update"==r.__state__&&(i[n].dirty=!0)))})},_submit:function(t,r){var i=this;i.trigger(Ce,{type:"submit"}),i.trigger(Te),i.transport.submit(le({success:function(r,i){var n=e.grep(t,function(e){return e.type==i})[0];n&&n.resolve({response:r,models:n.models,type:i})},error:function(e,r,n){for(var a=0;a1?arguments[1]:t,e=f._readData(e,r),f._destroyed=[]}else{for(e=f._readData(e),i=[],n={},a=f.reader.model,s=a?a.idField:"id",o=0;o0?(n=this.pageSize(),r.page=r.pageSize/n,r.pageSize=n):(r.page=1,this.options.endless=!1)),this.read(this._mergeState(r))):(a=this.trigger(Ce,{type:"read"}),a||(this.trigger(Te),i=this._queryProcess(this._data,this._mergeState(r)),this.options.serverFiltering||(this._total=i.total!==t?i.total:this._data.length),this._aggregateResult=this._calculateAggregates(this._data,r),this.view(i.data),this.trigger(Ae,{type:"read"}),this.trigger(De,{items:i.data})),e.Deferred().resolve(a).promise())},fetch:function(e){var t=this,r=function(r){r!==!0&&ye(e)&&e.call(t)};return this._query().then(r)},_query:function(e){var t=this;return t.query(le({},{page:t.page(),pageSize:t.pageSize(),sort:t.sort(),filter:t.filter(),group:t.group(),aggregate:t.aggregate()},e))},next:function(e){var t=this,r=t.page(),i=t.total();if(e=e||{},r&&!(i&&r+1>t.totalPages()))return t._skip=t._currentRangeStart=r*t.take(),r+=1,e.page=r,t._query(e),r},prev:function(e){var t=this,r=t.page();if(e=e||{},r&&1!==r)return t._skip=t._currentRangeStart=t._skip-t.take(),r-=1,e.page=r,t._query(e),r},page:function(e){var r,i=this;return e!==t?(e=Ge.max(Ge.min(Ge.max(e,1),i.totalPages()),1),i._query({page:e}),t):(r=i.skip(),r!==t?Ge.round((r||0)/(i.take()||1))+1:t)},pageSize:function(e){var r=this;return e!==t?(r._query({pageSize:e,page:1}),t):r.take()},sort:function(e){var r=this;return e!==t?(r._query({sort:e}),t):r._sort},filter:function(e){var r=this;return e===t?r._filter:(r.trigger("reset"),r._query({filter:e,page:1}),t)},group:function(e){var r=this;return e!==t?(r._query({group:e}),t):r._group},total:function(){return parseInt(this._total||0,10)},aggregate:function(e){var r=this;return e!==t?(r._query({aggregate:e}),t):r._aggregate},aggregates:function(){var e=this._aggregateResult;return fe(e)&&(e=this._emptyAggregates(this.aggregate())),e},_emptyAggregates:function(e){var t,r,i={};if(!fe(e))for(t={},ce(e)||(e=[e]),r=0;r=n;i--)r=a[i],t={value:e.get(r.field),field:r.field,items:t?[t]:[e],hasSubgroups:!!t,aggregates:this._emptyAggregates(r.aggregates)};return t},totalPages:function(){var e=this,t=e.pageSize()||e.total();return Ge.ceil((e.total()||0)/t)},inRange:function(e,t){var r=this,i=Ge.min(e+t,r.total());return!r.options.serverPaging&&r._data.length>0||r._findRange(e,i).length>0},lastRange:function(){var e=this._ranges;return e[e.length-1]||{start:0,end:0,data:[]}},firstItemUid:function(){var e=this._ranges;return e.length&&e[0].data.length&&e[0].data[0].uid},enableRequestsInProgress:function(){this._skipRequestsInProgress=!1},_timeStamp:function(){return(new Date).getTime()},range:function(e,r,i){var n,a,s,o,u,l,h,d;if(this._currentRequestTimeStamp=this._timeStamp(),this._skipRequestsInProgress=!0,e=Ge.min(e||0,this.total()),n=this,a=Ge.max(Ge.floor(e/r),0)*r,s=Ge.min(a+r,n.total()),o=n._findRange(e,Ge.min(e+r,n.total())),o.length){n._pending=t,n._skip=e>n.skip()?Ge.min(s,(n.totalPages()-1)*n.take()):a,n._currentRangeStart=e,n._take=r,u=n.options.serverPaging,l=n.options.serverSorting,h=n.options.serverFiltering,d=n.options.serverAggregates;try{n.options.serverPaging=!0,n._isServerGrouped()||n.group()&&n.group().length||(n.options.serverSorting=!0),n.options.serverFiltering=!0,n.options.serverPaging=!0,n.options.serverAggregates=!0,u&&(n._detachObservableParents(),n._data=o=n._observe(o)),n._process(o)}finally{n.options.serverPaging=u,n.options.serverSorting=l,n.options.serverFiltering=h,n.options.serverAggregates=d}return ye(i)&&i(),t}r!==t&&(n._rangeExists(a,s)?aa&&s=i.start&&e<=i.end){for(c=0,a=n;a=i.start&&(l=i.data,h=i.end,b||(S.inPlaceSort?d=v._queryProcess(i.data,{filter:v.filter()}):(_=g(v.group()||[]).concat(s(v.sort()||[])),d=v._queryProcess(i.data,{sort:_,filter:v.filter()})),f=l=d.data,d.total!==t&&(h=d.total)),o=0,e+c>i.start&&(o=e+c-i.start),u=f.length,h>r&&(u-=h-r),c+=u-o,y=v._mergeGroups(y,l,o,u),r<=i.end&&c==r-e))return y;break}return[]},_mergeGroups:function(e,t,r,i){if(this._isServerGrouped()){var n,a=t.toJSON();return e.length&&(n=e[e.length-1]),x(n,a,r,i),e.concat(a)}return e.concat(t.slice(r,i))},skip:function(){var e=this;return e._skip===t?e._page!==t?(e._page-1)*(e.take()||1):t:e._skip},currentRangeStart:function(){return this._currentRangeStart||0},take:function(){return this._take||this._pageSize},_prefetchSuccessHandler:function(e,t,r,i){var n=this,a=n._timeStamp();return function(s){var o,u,l,h=!1,d={start:e,end:t,data:[],timestamp:n._timeStamp()};if(n._dequeueRequest(),n.trigger(Ae,{response:s,type:"read"}),s=n.reader.parse(s),l=n._readData(s),l.length){for(o=0,u=n._ranges.length;o=n._currentRequestTimeStamp||!n._skipRequestsInProgress)&&(r&&l.length?r():n.trigger(De,{}))}},prefetch:function(e,t,r){var i=this,n=Ge.min(e+t,i.total()),a={take:t,skip:e,page:e/t+1,pageSize:t,sort:i._sort,filter:i._filter,group:i._group,aggregate:i._aggregate};i._rangeExists(e,n)?r&&r():(clearTimeout(i._timeout),i._timeout=setTimeout(function(){i._queueRequest(a,function(){i.trigger(Ce,{type:"read"})?i._dequeueRequest():i.transport.read({data:i._params(a),success:i._prefetchSuccessHandler(e,n,r),error:function(){var e=Je.call(arguments);i.error.apply(i,e)}})})},100))},_multiplePrefetch:function(e,t,r){var i=this,n=Ge.min(e+t,i.total()),a={take:t,skip:e,page:e/t+1,pageSize:t,sort:i._sort,filter:i._filter,group:i._group,aggregate:i._aggregate};i._rangeExists(e,n)?r&&r():i.trigger(Ce,{type:"read"})||i.transport.read({data:i._params(a),success:i._prefetchSuccessHandler(e,n,r,!0)})},_rangeExists:function(e,t){var r,i,n=this,a=n._ranges;for(r=0,i=a.length;r=t)return!0;return!1},_removeModelFromRanges:function(e){var t,r,i,n,a=this;for(i=0,n=this._ranges.length;i=e){n._getByUid(t.uid,r.data)||(n._isServerGrouped()?r.data.splice(e,0,n._wrapInEmptyGroup(t)):r.data.splice(e,0,t));break}n._updateRangesLength()},_updateRangesLength:function(){var e,t,r=this,i=r._ranges||[],n=i.length,a=!1,s=0,o=0;for(t=0;t0?this.filter(this._hierarchicalFilter):(this.options.filter=this._hierarchicalFilter,this._filter=u(this.options.filter),this._hierarchicalFilter=null)),t},remove:function(e){var t,r=e.parentNode(),i=this;return r&&r._initChildren&&(i=r.children),t=ie.fn.remove.call(i,e),r&&!i.data().length&&(r.hasChildren=!1),t},success:B("success"),data:B("data"),insert:function(e,t){var r=this.parent();return r&&r._initChildren&&(r.hasChildren=!0,r._initChildren()),ie.fn.insert.call(this,e,t)},filter:function(e){return e===t?this._filter:(!this.options.serverFiltering&&this._markHierarchicalQuery(e)&&(e={logic:"or",filters:[e,{field:"_matchFilter",operator:"equals",value:!0}]}),this.trigger("reset"),this._query({filter:e,page:1}),t)},_markHierarchicalQuery:function(e){var t,r,i,n,s;return e=u(e),e&&0!==e.filters.length?(t=a.filterExpr(e),i=t.fields,n=t.operators,r=s=Function("d, __f, __o","return "+t.expression),(i.length||n.length)&&(s=function(e){return r(e,i,n)}),this._updateHierarchicalFilter(s),!0):(this._updateHierarchicalFilter(function(){return!0}),!1)},_updateHierarchicalFilter:function(e){var t,r,i=this._data,n=!1;for(r=0;r=this.total()?(this.trigger("endreached",{index:e}),null):this.useRanges?this.useRanges?((e=this.skip+r)&&(i=this.range(Math.floor(e/r)*r)),e===this.prefetchThreshold&&this._prefetch(),e===this.midPageThreshold?this.range(this.nextMidRange,!0):e===this.nextPageThreshold?this.range(this.nextFullRange):e===this.pullBackThreshold&&this.range(this.offset===this.skip?this.previousMidRange:this.previousFullRange),i?this.dataSource.at(e-this.dataOffset):(this.trigger("endreached",{index:e}),null)):t:this.dataSource.view()[e]},indexOf:function(e){return this.dataSource.data().indexOf(e)+this.dataOffset},total:function(){return parseInt(this.dataSource.total(),10)},next:function(){var e=this,t=e.pageSize,r=e.skip-e.viewSize+t,i=Ge.max(Ge.floor(r/t),0)*t;this.offset=r,this.dataSource.prefetch(i,t,function(){e._goToRange(r,!0)})},range:function(e,t){if(this.offset===e)return!0;var r=this,i=this.pageSize,n=Ge.max(Ge.floor(e/i),0)*i,a=this.dataSource;return t&&(n+=i),a.inRange(e,i)?(this.offset=e,this._recalculate(),this._goToRange(e),!0):!this.prefetch||(a.prefetch(n,i,function(){r.offset=e,r._recalculate(),r._goToRange(e,!0)}),!1)},syncDataSource:function(){var e=this.offset;this.offset=null,this.range(e)},destroy:function(){this.unbind()},_prefetch:function(){var e=this,t=this.pageSize,r=this.skip+t,i=this.dataSource;i.inRange(r,t)||this._prefetching||!this.prefetch||(this._prefetching=!0,this.trigger("prefetching",{skip:r,take:t}),i.prefetch(r,t,function(){e._prefetching=!1,e.trigger("prefetched",{skip:r,take:t})}))},_goToRange:function(e,t){this.offset===e&&(this.dataOffset=e,this._expanding=t,this.dataSource.range(e,this.pageSize),this.dataSource.enableRequestsInProgress())},_reset:function(){this._syncPending=!0},_change:function(){var e=this.dataSource;this.length=this.useRanges?e.lastRange().end:e.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 e=this.dataSource;this._firstItemUid=e.firstItemUid(),this.dataOffset=this.offset=e.skip()||0,this.pageSize=e.pageSize(),this.useRanges=e.options.serverPaging},_recalculate:function(){var e=this.pageSize,t=this.offset,r=this.viewSize,i=Math.ceil(t/e)*e;this.skip=i,this.midPageThreshold=i+e-1,this.nextPageThreshold=i+r-1,this.prefetchThreshold=i+Math.floor(e/3*2),this.pullBackThreshold=this.offset-1,this.nextMidRange=i+e-r,this.nextFullRange=i,this.previousMidRange=t-r,this.previousFullRange=i-e}}),ue=me.Observable.extend({init:function(e,t){var r=this;me.Observable.fn.init.call(r),this.dataSource=e,this.batchSize=t,this._total=0,this.buffer=new oe(e,3*t),this.buffer.bind({endreached:function(e){r.trigger("endreached",{index:e.index})},prefetching:function(e){r.trigger("prefetching",{skip:e.skip,take:e.take})},prefetched:function(e){r.trigger("prefetched",{skip:e.skip,take:e.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(e){var t,r,i=this.buffer,n=e*this.batchSize,a=this.batchSize,s=[];for(i.offset>n&&i.at(i.offset-1),r=0;r