UNPKG

kendo-ui-core

Version:
1 lines 76.1 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("kendo.core.js"),require("kendo.data.odata.js"),require("kendo.data.xml.js")):"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.data.odata.min","kendo.data.xml.min"],t):((e="undefined"!=typeof globalThis?globalThis:e||self).kendodata=e.kendodata||{},e.kendodata.js=t())}(this,(function(){var e={or:{concat:function(e,t){return function(r){return e(r)||t(r)}},identity:function(){return!1}},and:{concat:function(e,t){return function(r){return e(r)&&t(r)}},identity:function(){return!0}}},t={isnullorempty:function(e){return kendo.isBlank(e)||""===e},isnotnullorempty:function(e){return kendo.isPresent(e)&&""!==e},contains:function(e,t){return(e+"").indexOf(t)>=0},doesnotcontain:function(e,t){return-1===(e+"").indexOf(t)},doesnotendwith:function(e,t){return(e+"").indexOf(t,(e||"").length-(t||"").length)<0},doesnotstartwith:function(e,t){return-1===(e+"").lastIndexOf(t,0)},endswith:function(e,t){return(e+"").indexOf(t,(e||"").length-(t||"").length)>=0},eq:function(e,t){return e===t},gt:function(e,t){return e>t},gte:function(e,t){return e>=t},isempty:function(e){return""===e},isnotempty:function(e){return""!==e},isnotnull:function(e){return kendo.isPresent(e)},isnull:function(e){return kendo.isBlank(e)},lt:function(e,t){return e<t},lte:function(e,t){return e<=t},neq:function(e,t){return e!=t},startswith:function(e,t){return 0===(e+"").lastIndexOf(t,0)}},r=/^\/Date\((.*?)\)\/$/,n=function(e){var n=e.field,i=e.ignoreCase,a=e.value,s=e.operator;void 0===s&&(s="eq");var o=e.accentFoldingFiltering;n=kendo.isPresent(n)?n:function(e){return e},i=!kendo.isPresent(i)||i;var u=function(e,t,n,i){if(!kendo.isPresent(t))return e;var a=e;if(kendo.isString(t)){var s=r.exec(t);s?t=new Date(+s[1]):a=function(t){var r=e(t);return"string"==typeof r&&n?i?r.toLocaleLowerCase(i):r.toLowerCase():kendo.isNumeric(r)?r+"":r}}return kendo.isDate(t)?function(e){var t=a(e);return kendo.isDate(t)?t.getTime():t}:a}(kendo.isFunction(n)?n:kendo.getter(n,!0),a,i,o);a=function(e,t,n){if(null!=e&&kendo.isString(e)){var i=r.exec(e);if(i)return new Date(+i[1]).getTime();if(t)return n?e.toLocaleLowerCase(n):e.toLowerCase()}else if(null!=e&&kendo.isDate(e))return e.getTime();return e}(a,i,o);var l=kendo.isFunction(s)?s:t[s];return function(e){return l(u(e),a,i)}},i=function(t){var r=t.accentFoldingFiltering,s=e[t.logic||"and"];return t.filters.filter(kendo.isPresent).map((function(e){return t=e,kendo.isPresent(t.filters)?i(a(e,r)):n(a(e,r));var t})).reduce(s.concat,s.identity)},a=function(e,t){return kendo.isPresent(t)?Object.assign(e,{accentFoldingFiltering:t}):e};return function(e,t){var r,n=e.extend,a=e.isPlainObject,s=e.isEmptyObject,o=Array.isArray,u=e.grep,l=e.ajax,d=e.each,g=e.noop,h=window.kendo,f=h.isFunction,c=h.Observable,p=h.Class,_="string",v="function",m="create",y="read",S="update",b="destroy",k="change",w="sync",P="get",x="error",F="requestStart",C="progress",G="requestEnd",O="itemsLoaded",R="itemLoad",q=[m,y,S,b],D=function(e){return e},I=h.getter,T=h.stringify,z=Math,E=[].push,A=[].join,N=[].pop,M=[].splice,j=[].shift,L=[].slice,B=[].unshift,H={}.toString,U=h.support.stableSort,J=/^\/Date\((.*?)\)\/$/,V=[],Q=c.extend({init:function(e,t){var r=this;r.type=t||X,c.fn.init.call(r),r.length=e.length,r.wrapAll(e,r),r._loadPromises=[],r._loadedNodes=[]},at:function(e){return this[e]},toJSON:function(e){var t,r,n=this.length,i=new Array(n);for(t=0;t<n;t++)(r=this[t])instanceof X&&(r=r.toJSON(e)),i[t]=r;return i},parent:g,wrapAll:function(e,t){var r,n,i=this,a=function(){return i};for(t=t||[],r=0,n=e.length;r<n;r++)t[r]=i.wrap(e[r],a);return t},wrap:function(e,t){var r=this;return null!==e&&"[object Object]"===H.call(e)&&(e instanceof r.type||e instanceof te||(e=e instanceof X?e.toJSON():e,e=new r.type(e)),e.parent=t,e.bind(k,(function(t){var n=e.hasOwnProperty("hasSubgroups");r.trigger(k,{field:t.field,node:t.node,index:t.index,items:t.items||[this],action:t.node||n?t.action||"itemloaded":"itemchange"})})),e.bind(R,(function(e){r._loadPromises.push(e.promise),r._loading=!0,e.promise.done((function(){r._loadedNodes.push(e.node);var t=r._loadPromises.indexOf(e.promise);r._loadPromises.splice(t,1),r._loadPromises.length||(r._loading=!1,r.trigger(O,{collection:r,nodes:r._loadedNodes}),r._loadedNodes=[])}))}))),e},loading:function(){return this._loading},push:function(){var e,t=this.length,r=this.wrapAll(arguments);return e=E.apply(this,r),this.omitChangeEvent||this.trigger(k,{action:"add",index:t,items:r}),e},slice:L,sort:[].sort,join:A,pop:function(){var e=this.length,t=N.apply(this);return e&&this.trigger(k,{action:"remove",index:e-1,items:[t]}),t},splice:function(e,t,r){var n,i,a,s=this.wrapAll(L.call(arguments,2));if((n=M.apply(this,[e,t].concat(s))).length)for(this.omitChangeEvent||(this.trigger(k,{action:"remove",index:e,items:this.omitCache&&this.omitCache.length?n.concat(this.omitCache):n}),this.omitCache=[]),i=0,a=n.length;i<a;i++)n[i]&&n[i].children&&n[i].unbind(k);return r&&(this.omitChangeEvent||this.trigger(k,{action:"add",index:e,items:s})),n},shift:function(){var e=this.length,t=j.apply(this);return e&&this.trigger(k,{action:"remove",index:0,items:[t]}),t},unshift:function(){var e,t=this.wrapAll(arguments);return e=B.apply(this,t),this.trigger(k,{action:"add",index:0,items:t}),e},indexOf:function(e){var t,r;for(t=0,r=this.length;t<r;t++)if(this[t]===e)return t;return-1},forEach:function(e,t){for(var r=0,n=this.length,i=t||window;r<n;r++)e.call(i,this[r],r,this)},map:function(e,t){for(var r=0,n=[],i=this.length,a=t||window;r<i;r++)n[r]=e.call(a,this[r],r,this);return n},reduce:function(e){var t,r=0,n=this.length;for(2==arguments.length?t=arguments[1]:r<n&&(t=this[r++]);r<n;r++)t=e(t,this[r],r,this);return t},reduceRight:function(e){var t,r=this.length-1;for(2==arguments.length?t=arguments[1]:r>0&&(t=this[r--]);r>=0;r--)t=e(t,this[r],r,this);return t},filter:function(e,t){for(var r,n=0,i=[],a=this.length,s=t||window;n<a;n++)r=this[n],e.call(s,r,n,this)&&(i[i.length]=r);return i},find:function(e,t){for(var r,n=0,i=this.length,a=t||window;n<i;n++)if(r=this[n],e.call(a,r,n,this))return r},every:function(e,t){for(var r,n=0,i=this.length,a=t||window;n<i;n++)if(r=this[n],!e.call(a,r,n,this))return!1;return!0},some:function(e,t){for(var r,n=0,i=this.length,a=t||window;n<i;n++)if(r=this[n],e.call(a,r,n,this))return!0;return!1},remove:function(e){var t=this.indexOf(e);-1!==t&&this.splice(t,1)},empty:function(){this.splice(0,this.length)}});"undefined"!=typeof Symbol&&Symbol.iterator&&!Q.prototype[Symbol.iterator]&&(Q.prototype[Symbol.iterator]=[][Symbol.iterator]);var W=Q.extend({init:function(e,t,r){c.fn.init.call(this),this.type=t||X,r&&(this._events=r);for(var n=0;n<e.length;n++)this[n]=e[n];this.length=n,this._parent=function(){return this}.bind(this)},at:function(e){var t=this[e];return t instanceof this.type?t.parent=this._parent:t=this[e]=this.wrap(t,this._parent),t}});function $(e,t,r,n){return function(i){var a,s={};for(a in i)s[a]=i[a];s.field=n?r+"."+i.field:r,t==k&&e._notifyChange&&e._notifyChange(s),e.trigger(t,s)}}function K(e,t){var r,n,i=[],a=[];for(function(e){return"object"==typeof e&&Object.getPrototypeOf(e)===Object.getPrototypeOf({})||Object.getPrototypeOf(e)===Object.getPrototypeOf(new Date)||"object"!=typeof e}(e=e||{})||(a=Object.getOwnPropertyNames(Object.getPrototypeOf(e)).filter((function(e){return 0!==e.indexOf("__")}))),r=Object.getOwnPropertyNames(e).concat(a),n=V.filter((function(e){return r.indexOf(e)<0}));e;)Object.getOwnPropertyNames(e).forEach((function(e){-1===i.indexOf(e)&&(!t||n.indexOf(e)<0)&&i.push(e)})),e=Object.getPrototypeOf(e);return i}V=K({},!1);var X=c.extend({init:function(e){var t,r=this,n=K(e,!0),i=function(){return r};c.fn.init.call(this),this._handlers={},n.forEach((function(n){"object"==typeof(t=e[n])&&t&&!t.getTime&&"_"!=n.charAt(0)&&(t=r.wrap(t,n,i)),r[n]=t})),r.uid=h.guid()},shouldSerialize:function(e,t){return this.hasOwnProperty(e)&&"_handlers"!==e&&"_events"!==e&&(t&&t[e]||typeof this[e]!==v)&&"uid"!==e},forEach:function(e){for(var t in this)this.shouldSerialize(t)&&e(this[t],t)},toJSON:function(e){var t,r,n={};for(r in this)this.shouldSerialize(r,e)&&(((t=this[r])instanceof X||t instanceof Q)&&(t=t.toJSON(e)),n[r]=t);return n},get:function(e){var t=this;return t.trigger(P,{field:e}),"this"===e?t:h.getter(e,!0)(t)},_set:function(e,t){var r=e.indexOf(".")>=0;if(r)for(var n=e.split("."),i="";n.length>1;){i+=n.shift();var a=h.getter(i,!0)(this);if(a instanceof X)return a.set(n.join("."),t),r;i+="."}return h.setter(e)(this,t),r},set:function(e,t){var r=this,n=!1,i=e.indexOf(".")>=0,a=h.getter(e,!0)(r);return a!==t&&(a instanceof c&&this._handlers[e]&&(this._handlers[e].get&&a.unbind(P,this._handlers[e].get),a.unbind(k,this._handlers[e].change)),(n=r.trigger("set",{field:e,value:t}))||(i||(t=r.wrap(t,e,(function(){return r}))),(!r._set(e,t)||e.indexOf("(")>=0||e.indexOf("[")>=0)&&r.trigger(k,{field:e}))),n},parent:g,wrap:function(e,t,r){var n,i,a=this,s=H.call(e);if(null!=e&&("[object Object]"===s||"[object Array]"===s)){var o=e instanceof Q,u=e instanceof Ve;"[object Object]"!==s||u||o?("[object Array]"===s||o||u)&&(o||u||(e=new Q(e)),i=$(a,k,t,!1),e.bind(k,i),a._handlers[t]={change:i}):(e instanceof X||(e=new X(e)),n=$(a,P,t,!0),e.bind(P,n),i=$(a,k,t,!0),e.bind(k,i),a._handlers[t]={get:n,change:i}),e.parent=r}return e}});function Y(e,t){if(e===t)return!0;var r,n=h.type(e);if(n!==h.type(t))return!1;if("date"===n)return e.getTime()===t.getTime();if("object"!==n&&"array"!==n)return!1;for(r in e)if(!Y(e[r],t[r]))return!1;return!0}var Z={number:function(e){return typeof e===_&&"null"===e.toLowerCase()?null:h.parseFloat(e)},date:function(e){return typeof e===_&&"null"===e.toLowerCase()?null:h.parseDate(e)},boolean:function(e){return typeof e===_?"null"===e.toLowerCase()?null:"true"===e.toLowerCase():null!=e?!!e:e},string:function(e){return typeof e===_&&"null"===e.toLowerCase()?null:null!=e?e+"":e},default:function(e){return e}},ee={string:"",number:0,date:new Date,boolean:!1,default:""};var te=X.extend({init:function(r){var n=this;if((!r||e.isEmptyObject(r))&&(r=e.extend({},n.defaults,r),n._initializers))for(var i=0;i<n._initializers.length;i++){var a=n._initializers[i];r[a]=n.defaults[a]()}X.fn.init.call(n,r),n.dirty=!1,n.dirtyFields={},n.idField&&(n.id=n.get(n.idField),n.id===t&&(n.id=n._defaultId))},shouldSerialize:function(e){return X.fn.shouldSerialize.call(this,e)&&"uid"!==e&&!("id"!==this.idField&&"id"===e)&&"dirty"!==e&&"dirtyFields"!==e&&"_accessors"!==e},_parse:function(e,t){var r,n=e,i=this.fields||{};return(e=i[e])||(e=function(e,t){var r,n;for(n in e){if(r=e[n],a(r)&&r.field&&r.field===t)return r;if(r===t)return r}return null}(i,n)),e&&!(r=e.parse)&&e.type&&(r=Z[e.type.toLowerCase()]),r?r(t):t},_notifyChange:function(e){var t=e.action;"add"!=t&&"remove"!=t||(this.dirty=!0,this.dirtyFields[e.field]=!0)},editable:function(e){return!(e=(this.fields||{})[e])||!1!==e.editable},set:function(e,t){var r=this,n=r.dirty;r.editable(e)&&(Y(t=r._parse(e,t),r.get(e))?r.trigger("equalSet",{field:e,value:t}):(r.dirty=!0,r.dirtyFields[e]=!0,X.fn.set.call(r,e,t)&&!n&&(r.dirty=n,r.dirty||(r.dirtyFields[e]=!1))))},accept:function(e){var t,r=this,n=function(){return r};for(t in e){var i=e[t];"_"!=t.charAt(0)&&(i=r.wrap(e[t],t,n)),r._set(t,i)}r.idField&&(r.id=r.get(r.idField)),r.dirty=!1,r.dirtyFields={}},isNew:function(){return this.id===this._defaultId}});te.define=function(r,i){i===t&&(i=r,r=te);var a,s,o,u,l,d,g,h,f=n({defaults:{}},i),c={},p=f.id,v=[];if(p&&(f.idField=p),f.id&&delete f.id,p&&(f.defaults[p]=f._defaultId=""),"[object Array]"===H.call(f.fields)){for(d=0,g=f.fields.length;d<g;d++)typeof(o=f.fields[d])===_?c[o]={}:o.field&&(c[o.field]=o);f.fields=c}for(s in f.fields)u=(o=f.fields[s]).type||"default",l=null,h=s,s=typeof o.field===_?o.field:s,o.nullable||"function"==typeof(l=f.defaults[h!==s?h:s]=o.defaultValue!==t?o.defaultValue:ee[u.toLowerCase()])&&v.push(s),i.id===s&&(f._defaultId=l),f.defaults[h!==s?h:s]=l,e.isPlainObject(o)?o.parse=o.parse||Z[u]:o={parse:Z[u]};return v.length>0&&(f._initializers=v),(a=r.extend(f)).define=function(e){return te.define(a,e)},f.fields&&(a.fields=f.fields,a.idField=f.idField),a};var re={selector:function(e){return f(e)?e:I(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:e<r?-1:0}},create:function(e){var t=e.compare||this.compare(e.field);return"desc"==e.dir?function(e,r){return t(r,e,!0)}:t},combine:function(e){return function(t,r){var n,i,a=e[0](t,r);for(n=1,i=e.length;n<i;n++)a=a||e[n](t,r);return a}}},ne=n({},re,{asc:function(e){var t=this.selector(e);return function(e,r){var n=t(e),i=t(r);return n&&n.getTime&&i&&i.getTime&&(n=n.getTime(),i=i.getTime()),n===i?e.__position-r.__position:null==n?-1:null==i?1:n.localeCompare?n.localeCompare(i):n>i?1:-1}},desc:function(e){var t=this.selector(e);return function(e,r){var n=t(e),i=t(r);return n&&n.getTime&&i&&i.getTime&&(n=n.getTime(),i=i.getTime()),n===i?e.__position-r.__position:null==n?1:null==i?-1:i.localeCompare?i.localeCompare(n):n<i?1:-1}},create:function(e){return this[e.dir](e.field)}});r=function(e,t){var r,n=e.length,i=new Array(n);for(r=0;r<n;r++)i[r]=t(e[r],r,e);return i};var ie=function(){function e(e){return"string"==typeof e&&(e=e.replace(/[\r\n]+/g,"")),JSON.stringify(e)}function t(t){return function(r,n,i,a){return n+="",i&&(r="("+r+" + '').toString()"+(a?".toLocaleLowerCase('"+a+"')":".toLowerCase()"),n=a?n.toLocaleLowerCase(a):n.toLowerCase()),t(r,e(n),i)}}function r(t,r,n,i,a){if(null!=n){if(typeof n===_){var s=J.exec(n);s?n=new Date(+s[1]):i?(n=e(a?n.toLocaleLowerCase(a):n.toLowerCase()),r="(("+r+" || '')+'')"+(a?".toLocaleLowerCase('"+a+"')":".toLowerCase()")):n=e(n)}n.getTime&&(r="("+r+"&&"+r+".getTime?"+r+".getTime():"+r+")",n=n.getTime())}return r+" "+t+" "+n}function n(e){for(var t="/^",r=!1,n=0;n<e.length;++n){var i=e.charAt(n);if(r)t+="\\"+i;else{if("~"==i){r=!0;continue}"*"==i?t+=".*":"?"==i?t+=".":".+^$()[]{}|\\/\n\r\u2028\u2029 ".indexOf(i)>=0?t+="\\"+i:t+=i}r=!1}return t+"$/"}return{quote:function(t){return t&&t.getTime?"new Date("+t.getTime()+")":e(t)},eq:function(e,t,n,i){return r("==",e,t,n,i)},neq:function(e,t,n,i){return r("!=",e,t,n,i)},gt:function(e,t,n){return r(">",e,t,n)},gte:function(e,t,n){return r(">=",e,t,n)},lt:function(e,t,n){return r("<",e,t,n)},lte:function(e,t,n){return r("<=",e,t,n)},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){return e+".indexOf("+t+", "+e+".length - "+(t?t.length-2:0)+") >= 0"})),doesnotendwith:t((function(e,t){return e+".indexOf("+t+", "+e+".length - "+(t?t.length-2:0)+") < 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 n(t=t.substring(1,t.length-1))+".test("+e+")"})),doesnotmatch:t((function(e,t){return"!"+n(t=t.substring(1,t.length-1))+".test("+e+")"})),isempty:function(e){return e+" === ''"},isnotempty:function(e){return e+" !== ''"},isnull:function(e){return"("+e+" == null)"},isnotnull:function(e){return"("+e+" != null)"},isnullorempty:function(e){return"("+e+" === null) || ("+e+" === '')"},isnotnullorempty:function(e){return"("+e+" !== null) && ("+e+" !== '')"}}}();function ae(e){this.data=e||[]}function se(e,r){if(e){var n=typeof e===_?{field:e,dir:r}:e,i=o(n)?n:n!==t?[n]:[];return u(i,(function(e){return!!e.dir}))}}function oe(e,r){var n={};if(e)for(var i=typeof e===_?{field:e,dir:r}:e,a=o(i)?i:i!==t?[i]:[],s=0;s<a.length;s++)n[a[s].field]={dir:a[s].dir,index:s+1};return n}ae.filterExpr=function(e,r){if(void 0===r&&(r={noEval:!1}),r.noEval)return function(e){return i(e)}(e);var n,a,s,o,u,l,d=[],g=[],f=[],c=e.filters;for(n=0,a=c.length;n<a;n++)u=(s=c[n]).field,l=s.operator,s.filters?(s=(o=ae.filterExpr(s)).expression.replace(/__o\[(\d+)\]/g,(function(e,t){return t=+t,"__o["+(f.length+t)+"]"})).replace(/__f\[(\d+)\]/g,(function(e,t){return t=+t,"__f["+(g.length+t)+"]"})),f.push.apply(f,o.operators),g.push.apply(g,o.fields)):(typeof u===v?(o="__f["+g.length+"](d)",g.push(u)):o=h.expr(u),typeof l===v?(s="__o["+f.length+"]("+o+", "+ie.quote(s.value)+")",f.push(l)):s=ie[(l||"eq").toLowerCase()](o,s.value,s.ignoreCase===t||s.ignoreCase,e.accentFoldingFiltering)),d.push(s);return{expression:"("+d.join({and:" && ",or:" || "}[e.logic])+")",fields:g,operators:f}};var ue={"==":"eq",equals:"eq",isequalto:"eq",equalto:"eq",equal:"eq","!=":"neq",ne:"neq",notequals:"neq",isnotequalto:"neq",notequalto:"neq",notequal:"neq","<":"lt",islessthan:"lt",lessthan:"lt",less:"lt","<=":"lte",le:"lte",islessthanorequalto:"lte",lessthanequal:"lte",">":"gt",isgreaterthan:"gt",greaterthan:"gt",greater:"gt",">=":"gte",isgreaterthanorequalto:"gte",greaterthanequal:"gte",ge:"gte",notsubstringof:"doesnotcontain",isnull:"isnull",isempty:"isempty",isnotempty:"isnotempty"};function le(e){var t,r,n,i,a=e.filters;if(a)for(t=0,r=a.length;t<r;t++)(i=(n=a[t]).operator)&&typeof i===_&&(n.operator=ue[i.toLowerCase()]||i),le(n)}function de(e){if(e&&!s(e))return!o(e)&&e.filters||(e={logic:"and",filters:o(e)?e:[e]}),le(e),e}function ge(e,t){return!e.logic&&!t.logic&&(e.field===t.field&&e.value===t.value&&e.operator===t.operator)}function he(e){return s(e=e||{})?{logic:"and",filters:[]}:de(e)}function fe(e,t){return t.logic||e.field>t.field?1:e.field<t.field?-1:0}function ce(e,n,i,a){var s=typeof e===_?{field:e,dir:n,compare:i,skipItemSorting:a}:e,u=o(s)?s:s!==t?[s]:[];return r(u,(function(e){return{field:e.field,dir:e.dir||"asc",aggregates:e.aggregates,compare:e.compare,skipItemSorting:e.skipItemSorting}}))}function pe(e,t,r){for(var n=ce(e,t,r),i=0;i<n.length;i++)delete n[i].compare;return n}function _e(e,t){return e&&e.getTime&&t&&t.getTime?e.getTime()===t.getTime():e===t}function ve(e,t,r,n,i,a){var s,o,u,l=(t=t||[]).length;for(s=0;s<l;s++){u=(o=t[s]).aggregate;var d=o.field;e[d]=e[d]||{},a[d]=a[d]||{},a[d][u]=a[d][u]||{},e[d][u]=me[u.toLowerCase()](e[d][u],r,h.accessor(d),n,i,a[d][u])}}ae.normalizeFilter=de,ae.compareFilters=function e(t,r){if(t=he(t),r=he(r),t.logic!==r.logic)return!1;var n,i,a=(t.filters||[]).slice(),s=(r.filters||[]).slice();if(a.length!==s.length)return!1;a=a.sort(fe),s=s.sort(fe);for(var o=0;o<a.length;o++)if(n=a[o],i=s[o],n.logic&&i.logic){if(!e(n,i))return!1}else if(!ge(n,i))return!1;return!0},ae.prototype={toArray:function(){return this.data},range:function(e,t){return new ae(this.data.slice(e,e+t))},skip:function(e){return new ae(this.data.slice(e))},take:function(e){return new ae(this.data.slice(0,e))},select:function(e){return new ae(r(this.data,e))},order:function(e,t,r){var n={dir:t};return e&&(e.compare?n.compare=e.compare:n.field=e),new ae(r?this.data.sort(re.create(n)):this.data.slice(0).sort(re.create(n)))},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,n){var i,a,s=se(e,t),o=[];if(r=r||re,s.length){for(i=0,a=s.length;i<a;i++)o.push(r.create(s[i]));return this.orderBy({compare:r.combine(o)},n)}return this},filter:function(e){var t,r=this.data;return(e=de(e))&&0!==e.filters.length?(t=ae.filterExpr(e,{noEval:!0}),new ae(r.filter(t))):this},group:function(e,t,r){e=ce(e||[]),t=t||this.data;var n,i=new ae(this.data),a=function(e,r){return r=r||new ae(t).filter([{field:e.field,operator:"eq",value:e.value,ignoreCase:!1}])};return e.length>0&&(n=e[0],i=r&&r.groupPaging?new ae(t).groupAllData(n,t).select((function(t){var i,s=e.length>1?new ae(t.items).group(e.slice(1),a(t,i).toArray(),r).toArray():t.items;return{field:t.field,value:t.value,hasSubgroups:e.length>1,items:s,aggregates:n.aggregates&&n.aggregates.length?a(t,i).aggregate(n.aggregates):{},uid:h.guid(),itemCount:s.length,subgroupCount:s.length}})):i.groupBy(n).select((function(t){var r;return{field:t.field,value:t.value,items:e.length>1?new ae(t.items).group(e.slice(1),a(t,r).toArray()).toArray():t.items,hasSubgroups:e.length>1,aggregates:n.aggregates&&n.aggregates.length?a(t,r).aggregate(n.aggregates):{}}}))),i},groupBy:function(e){if(s(e)||!this.data.length)return new ae([]);var t,r,n,i,a=e.field,o=e.skipItemSorting?this.data:this._sortForGrouping(a,e.dir||"asc"),u=h.accessor(a),l=u.get(o[0],a),d={field:a,value:l,items:[]},g=[d];for(n=0,i=o.length;n<i;n++)t=o[n],_e(l,r=u.get(t,a))||(d={field:a,value:l=r,items:[]},g.push(d)),d.items.push(t);return new ae(g=this._sortGroups(g,e))},groupAllData:function(e,t){if(s(e)||this.data&&!this.data.length)return new ae([]);var r,n,i,a,o=e.field,u=e.skipItemSorting?t:new ae(t).sort(o,e.dir||"asc",ne).toArray(),l=h.accessor(o),d=l.get(u[0],o),g={field:o,value:d,items:[]},f=[g];for(i=0,a=u.length;i<a;i++)r=u[i],_e(d,n=l.get(r,o))||(g={field:o,value:d=n,items:[]},f.push(g)),g.items.push(r);return new ae(f=this._sortGroups(f,e))},_sortForGrouping:function(e,t){var r,n,i=this.data;if(!U){for(r=0,n=i.length;r<n;r++)i[r].__position=r;for(r=0,n=(i=new ae(i).sort(e,t,ne).toArray()).length;r<n;r++)delete i[r].__position;return i}return this.sort(e,t).toArray()},_sortGroups:function(e,t){var r=e;return t&&f(t.compare)&&(r=new ae(r).order({compare:t.compare},t.dir||"asc").toArray()),r},aggregate:function(e){var t,r,n={},i={};if(e&&e.length)for(t=0,r=this.data.length;t<r;t++)ve(n,e,this.data[t],t,r,i);return n}};var me={sum:function(e,t,r){var n=r.get(t);return ye(e)?ye(n)&&(e+=n):e=n,e},count:function(e){return(e||0)+1},average:function(e,r,n,i,a,s){var o=n.get(r);return s.count===t&&(s.count=0),ye(e)?ye(o)&&(e+=o):e=o,ye(o)&&s.count++,i==a-1&&ye(e)&&(e/=s.count),e},max:function(e,t,r){var n=r.get(t);return ye(e)||Se(e)||(e=n),e<n&&(ye(n)||Se(n))&&(e=n),e},min:function(e,t,r){var n=r.get(t);return ye(e)||Se(e)||(e=n),e>n&&(ye(n)||Se(n))&&(e=n),e}};function ye(e){return"number"==typeof e&&!isNaN(e)}function Se(e){return e&&e.getTime}function be(e){var t,r=e.length,n=new Array(r);for(t=0;t<r;t++)n[t]=e[t].toJSON();return n}ae.normalizeGroup=ce,ae.normalizeSort=se,ae.process=function(e,i,a){var u,l,d=(i=i||{}).group,g=function(e){for(var t=o(e)?e:[e],r=0;r<t.length;r++)if(t[r]&&f(t[r].compare))return!0;return!1}(ce(d||[])),h=new ae(e),c=pe(d||[]),p=se(i.sort||[]),_=g?p:c.concat(p),v=i.filterCallback,m=i.filter,y=i.skip,S=i.take;return _&&a&&(h=h.sort(_,t,t,a)),m&&(h=h.filter(m),v&&(h=v(h)),l=h.toArray().length),_&&(a||(h=h.sort(_)),d&&(e=h.toArray())),g?(h=h.group(d,e,i),y===t||S===t||i.groupPaging||(h=new ae(Ie(h.toArray())).range(y,S),u=r(c,(function(e){return n({},e,{skipItemSorting:!0})})),h=h.group(u,e,i))):(y!==t&&S!==t&&(y+S>(l=h.data.length)&&i.virtual&&(y=(y-=y+S-l)<0?0:y),h=h.range(y,S)),!d||s(d)&&0===d.length||(h=h.group(d,e,i))),{total:l,data:h.toArray()}};var ke=p.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)}}),we=p.extend({init:function(e){var t,r=this;e=r.options=n({},r.options,e),d(q,(function(t,r){typeof e[r]===_&&(e[r]={url:e[r]})})),r.cache=e.cache?Pe.create(e.cache):{find:g,add:g},t=e.parameterMap,e.submit&&(r.submit=e.submit),f(e.push)&&(r.push=e.push),r.push||(r.push=D),r.parameterMap=f(t)?t:function(e){var r={};return d(e,(function(e,n){e in t&&(e=t[e],a(e)&&(n=e.value(n),e=e.key)),r[e]=n})),r}},options:{parameterMap:D},create:function(e){return l(this.setup(e,m))},read:function(r){var n,i,a=this.cache;r=this.setup(r,y),n=r.success||g,r.error,(i=a.find(r.data))!==t?n(i):(r.success=function(e){a.add(r.data,e),n(e)},e.ajax(r))},update:function(e){return l(this.setup(e,S))},destroy:function(e){return l(this.setup(e,b))},setup:function(e,t){e=e||{};var r,i=this.options[t],a=f(i.data)?i.data(e.data):i.data;return e=n(!0,{},i,e),r=n(!0,{},a,e.data),e.data=this.parameterMap(r,t),f(e.url)&&(e.url=e.url(r)),e}}),Pe=p.extend({init:function(){this._store={}},add:function(e,r){e!==t&&(this._store[T(e)]=r)},find:function(e){return this._store[T(e)]},clear:function(){this._store={}},remove:function(e){delete this._store[T(e)]}});function xe(e,t,r,n,i){var a,s,o,u,l,d={};for(u=0,l=e.length;u<l;u++)for(s in a=e[u],t)(o=i[s])&&o!==s&&(d[o]||(d[o]=h.setter(o)),d[o](a,t[s](a)),delete a[s])}function Fe(e,t,r,n,i){var a,s,o,u,l;for(u=0,l=e.length;u<l;u++)for(s in a=e[u],t)a[s]=r._parse(s,t[s](a)),(o=i[s])&&o!==s&&delete a[o]}function Ce(e,t,r,n,i){var a,s,o,u;for(s=0,u=e.length;s<u;s++)(o=n[(a=e[s]).field])&&o!=a.field&&(a.field=o),a.value=r._parse(a.field,a.value),a.items&&(a.hasSubgroups?Ce(a.items,t,r,n,i):Fe(a.items,t,r,0,i))}function Ge(e,t,r,n,i,a){return function(s){return s=e(s),Oe(t,r,n,i,a)(s)}}function Oe(e,t,r,n,i){return function(a){return a&&!s(r)&&("[object Array]"===H.call(a)||a instanceof Q||(a=[a]),t(a,r,new e,n,i)),a||[]}}Pe.create=function(e){var t={inmemory:function(){return new Pe}};return a(e)&&f(e.find)?e:!0===e?new Pe:t[e]()};var Re=p.extend({init:function(e){var t,r,n,i,s=this;for(t in e=e||{})r=e[t],s[t]=typeof r===_?I(r):r;i=e.modelBase||te,a(s.model)&&(s.model=n=i.define(s.model));var o=s.data.bind(s);if(s._dataAccessFunction=o,s.model){var u,l,g=s.groups.bind(s),h=s.serialize.bind(s),f={},c={},p={},v={},m=!1;(n=s.model).fields&&(d(n.fields,(function(e,t){var r;u=e,a(t)&&t.field?u=t.field:typeof t===_&&(u=t),a(t)&&t.from&&(r=t.from),m=m||r&&r!==e||u!==e,l=r||u,c[e]=-1!==l.indexOf(".")?I(l,!0):I(l),p[e]=I(e),f[r||u]=e,v[e]=r||u})),!e.serialize&&m&&(s.serialize=Ge(h,n,xe,p,f,v))),s._dataAccessFunction=o,s._wrapDataAccessBase=Oe(n,Fe,c,f,v),s.data=Ge(o,n,Fe,c,f,v),s.groups=Ge(g,n,Ce,c,f,v)}},errors:function(e){return e?e.errors:null},parse:D,data:D,total:function(e){return e.length},groups:D,aggregates:function(){return{}},serialize:function(e){return e}});function qe(e,t){var r,n;if(t.items&&t.items.length)for(var i=0;i<t.items.length;i++)r=e.items[e.items.length-1],n=t.items[i],r&&n?r.hasSubgroups&&r.value==n.value?qe(r,n):r.field&&r.value==n.value?(r.items.omitChangeEvent=!0,r.items.push.apply(r.items,n.items),r.items.omitChangeEvent=!1):(e.items.omitChangeEvent=!0,e.items.push.apply(e.items,[n]),e.items.omitChangeEvent=!1):n&&(e.items.omitChangeEvent=!0,e.items.push.apply(e.items,[n]),e.items.omitChangeEvent=!1)}function De(e,t,r,n){for(var i,a,s=0;t.length&&n;){var o=(a=(i=t[s]).items).length;if(e&&e.field===i.field&&e.value===i.value?(e.hasSubgroups&&e.items.length?De(e.items[e.items.length-1],i.items,r,n):(a=a.slice(r,r+n),e.items=e.items.concat(a)),t.splice(s--,1)):i.hasSubgroups&&a.length?(De(i,a,r,n),i.items.length||t.splice(s--,1)):(a=a.slice(r,r+n),i.items=a,i.items.length||t.splice(s--,1)),0===a.length?r-=o:(r=0,n-=a.length),++s>=t.length)break}s<t.length&&t.splice(s,t.length-s)}function Ie(e,t){for(var r,n,i=[],a=(e||[]).length,s=f(t)?t:function(e,t){return e[t]},o=0;o<a;o++)if((r=s(e,o)).hasSubgroups)i=i.concat(Ie(r.items));else{n=r.items;for(var u=0;u<n.length;u++)i.push(s(n,u))}return i}function Te(e){var t,r,n,i,a=[];for(t=0,r=e.length;t<r;t++){var s=e.at(t);if(s.items)if(s.hasSubgroups)a=a.concat(Te(s.items));else for(n=s.items,i=0;i<n.length;i++)a.push(n.at(i))}return a}function ze(e,t){var r,n,i;if(t)for(r=0,n=e.length;r<n;r++)(i=e.at(r)).items&&(i.hasSubgroups?ze(i.items,t):i.items=new W(i.items,t,i.items._events))}function Ee(e,t){for(var r=0;r<e.length;r++)if(e[r].hasSubgroups){if(Ee(e[r].items,t))return!0}else if(t(e[r].items,e[r]))return!0}function Ae(e,t,r,n){for(var i=0;i<e.length&&e[i].data!==t&&!Ne(e[i].data,r,n);i++);}function Ne(e,t,r){for(var n=0,i=e.length;n<i;n++){if(e[n]&&e[n].hasSubgroups)return Ne(e[n].items,t,r);if(e[n]===t||e[n]===r)return e[n]=r,!0}}function Me(e,r,n,i,a){for(var s=0,o=e.length;s<o;s++){var u=e[s];if(u&&!(u instanceof i))if(u.hasSubgroups===t||a){for(var l=0;l<r.length;l++)if(r[l]===u){e[s]=r.at(l),Ae(n,r,u,e[s]);break}}else Me(u.items,r,n,i,a)}}function je(e,t){return t?Be(e,(function(e){return e.uid&&e.uid==t.uid||e[t.idField]===t.id&&t.id!==t._defaultId})):-1}function Le(e,t){return t?Be(e,(function(e){return e.uid==t.uid})):-1}function Be(e,t){var r,n;if(e){for(r=0,n=e.length;r<n;r++)if(t(e[r]))return r;return-1}}function He(e,t){if(e&&!s(e)){var r,n=e[t];return r=a(n)?n.from||n.field||t:e[t]||t,f(r)?t:r}return t}function Ue(e,t){var r,n,i={};for(var a in e)"filters"!==a&&(i[a]=e[a]);if(e.filters)for(i.filters=[],r=0,n=e.filters.length;r<n;r++)i.filters[r]=Ue(e.filters[r],t);else i.field=He(t.fields,i.field);return i}function Je(e,t){var r,n,i,a,s=[];for(r=0,n=e.length;r<n;r++){for(var u in i={},a=e[r])i[u]=a[u];i.field=He(t.fields,i.field),i.aggregates&&o(i.aggregates)&&(i.aggregates=Je(i.aggregates,t)),s.push(i)}return s}var Ve=c.extend({init:function(e){var r,i=this;if(e&&(r=e.data),e=i.options=n({},i.options,e),i._map={},i._prefetch={},i._data=[],i._pristineData=[],i._ranges=[],i._view=[],i._pristineTotal=0,i._destroyed=[],i._pageSize=e.pageSize,i._page=e.page||(e.pageSize?1:t),i._sort=se(e.sort),i._sortFields=oe(e.sort),i._filter=de(e.filter),i._group=ce(e.group),i._aggregate=e.aggregate,i._total=e.total,i._groupPaging=e.groupPaging,i._groupPaging&&(i._groupsState={}),i._shouldDetachObservableParents=!0,c.fn.init.call(i),i.transport=Qe.create(e,r,i),f(i.transport.push)&&i.transport.push({pushCreate:i._pushCreate.bind(i),pushUpdate:i._pushUpdate.bind(i),pushDestroy:i._pushDestroy.bind(i)}),null!=e.offlineStorage)if("string"==typeof e.offlineStorage){var a=e.offlineStorage;i._storage={getItem:function(){return JSON.parse(localStorage.getItem(a))},setItem:function(e){localStorage.setItem(a,T(i.reader.serialize(e)))}}}else i._storage=e.offlineStorage;i.reader=new h.data.readers[e.schema.type||"json"](e.schema),i.reader.model,i._detachObservableParents(),i._data=i._observe(i._data),i._online=!0,i.bind(["push",x,k,F,w,G,C],e)},options:{data:null,schema:{modelBase:te},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()||[]},_isGrouped:function(){return(this.group()||[]).length},_isServerGrouped:function(){var e=this.group()||[];return this.options.serverGrouping&&e.length},_isServerGroupPaged:function(){return this._isServerGrouped()&&this._groupPaging},_isGroupPaged:function(){var e=this._group||[];return this._groupPaging&&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 Te(e);if(!t)for(var r=0;r<e.length;r++)e.at(r)}return e},parent:g,get:function(e){var t,r,n=this._flatData(this._data,this.options.useRanges);for(t=0,r=n.length;t<r;t++)if(n[t].id==e)return n[t]},getByUid:function(e){return this._getByUid(e,this._data)},_getByUid:function(e,t){var r,n,i=this._flatData(t,this.options.useRanges);if(i)for(r=0,n=i.length;r<n;r++)if(i[r].uid==e)return i[r]},indexOf:function(e){return Le(this._data,e)},at:function(e){return this._data.at(e)},data:function(e){var r=this;if(e===t){if(r._data)for(var n=0;n<r._data.length;n++)r._data.at(n);return r._data}r._detachObservableParents(),r._data=this._observe(e),r._pristineData=e.slice(0),r._storeData(),r._ranges=[],r.trigger("reset"),r._addRange(r._data),r._total=r._data.length,r._pristineTotal=r._total,r._process(r._data)},view:function(e){if(e===t)return this._view;this._view=this._observeView(e)},_observeView:function(e){var t=this;Me(e,t._data,t._ranges,t.reader.model||X,t._isServerGrouped());var r=new W(e,t.reader.model);return r.parent=function(){return t.parent()},r},flatView:function(){return(this.group()||[]).length?Te(this._view):this._view},add:function(e){return this.insert(this._data.length,e)},_createNewModel:function(e){return this.reader.model?new this.reader.model(e):e instanceof X?e:new X(e)},insert:function(e,t){return t||(t=e,e=0),t instanceof te||(t=this._createNewModel(t)),this._isServerGrouped()?this._data.splice(e,0,this._wrapInEmptyGroup(t)):this._data.splice(e,0,t),this._insertModelInRange(e,t),t},pushInsert:function(t,r){var n=this._getCurrentRangeSpan();r||(r=t,t=0),o(r)||(r=[r]);var i=[],a=this.options.autoSync;this.options.autoSync=!1;try{for(var s=0;s<r.length;s++){var u=r[s],l=this.insert(t,u);i.push(l);var d=l.toJSON();this._isServerGrouped()&&(d=this._wrapInEmptyGroup(d)),this._pristineData.push(d),n&&n.length&&e(n).last()[0].pristineData.push(d),t++}}finally{this.options.autoSync=a}i.length&&this.trigger("push",{type:"create",items:i})},pushCreate:function(e){this.pushInsert(this._data.length,e)},pushUpdate:function(e){o(e)||(e=[e]);for(var t=[],r=0;r<e.length;r++){var n=e[r],i=this._createNewModel(n),a=this.get(i.id);a?(t.push(a),a.accept(n),a.trigger(k),this._updatePristineForModel(a,n)):this.pushCreate(n)}t.length&&this.trigger("push",{type:"update",items:t})},pushDestroy:function(e){var t=this._removeItems(e);t.length&&this.trigger("push",{type:"destroy",items:t})},_removeItems:function(e,t){o(e)||(e=[e]);var r=void 0===t||t,n=[],i=this.options.autoSync;this.options.autoSync=!1;try{for(var a=0;a<e.length;a++){var s=e[a],u=this._createNewModel(s),l=!1,d=a;this._eachItem(this._data,(function(t){d!==e.length-1?(t.omitChangeEvent=!0,t.omitCache=[]):t.omitChangeEvent=!1;for(var r=0;r<t.length;r++){var i=t.at(r);if(i.id===u.id){t.omitChangeEvent&&t.omitCache.push(i),n.push(i),t.splice(r,1),l=!0;break}}})),l&&r&&(this._removePristineForModel(u),this._destroyed.pop())}}finally{this.options.autoSync=i}return n},pushMove:function(e,t){var r=this._moveItems(e,t);r.length&&this.trigger("push",{type:"update",items:r})},_moveItems:function(e,t){o(t)||(t=[t]);var r=[],n=this.options.autoSync;this.options.autoSync=!1;try{for(var i=0;i<t.length;i++){var a=t[i],s=this._createNewModel(a);this._eachItem(this._data,(function(t){for(var n=0;n<t.length;n++){var i=t.at(n);if(i.id===s.id){r.push(i),t.splice(e>=n?--e:e,0,t.splice(n,1)[0]),e++;break}}}))}}finally{this.options.autoSync=n}return r},remove:function(e){var t,r=this,n=r._isServerGrouped();return!n||!e.uid||e.isNew&&e.isNew()||r._pushInDestroyed(e),this._eachItem(r._data,(function(r){if(t=function(e,t){if(e){var r,n,i=e.length;for(n=0;n<i;n++)if((r=e[n]).uid&&r.uid==t.uid)return e.splice(n,1),r}}(r,e),t&&n)return!0})),this._removeModelFromRanges(e),e},destroyed:function(){return this._destroyed},created:function(){var e,t,r=[],n=this._flatData(this._data,this.options.useRanges);for(e=0,t=n.length;e<t;e++)n[e].isNew&&n[e].isNew()&&!n[e].notFetched&&r.push(n[e]);return r},updated:function(){var e,t,r=[],n=this._flatData(this._data,this.options.useRanges);for(e=0,t=n.length;e<t;e++)n[e].isNew&&!n[e].isNew()&&n[e].dirty&&r.push(n[e]);return r},sync:function(){var t=this,r=[],n=[],i=t._destroyed,a=e.Deferred().resolve().promise();if(t.online()){if(!t.reader.model)return a;r=t.created(),n=t.updated();var s=[];t.options.batch&&t.transport.submit?s=t._sendSubmit(r,n,i):(s.push.apply(s,t._send("create",r)),s.push.apply(s,t._send("update",n)),s.push.apply(s,t._send("destroy",i))),a=e.when.apply(null,s).then((function(){var e,r,n=arguments;for(e=0,r=arguments.length;e<r;e++)n[e]&&t._accept(n[e]);t._storeData(!0),t._syncEnd(),t._change({action:"sync"}),t.trigger(w),t._isServerGroupPaged()&&t.read()}))}else t._storeData(!0),t._syncEnd(),t._change({action:"sync"});return a},_syncEnd:g,cancelChanges:function(e){var t=this;e instanceof h.data.Model?t._cancelModel(e):(t._destroyed=[],t._detachObservableParents(),t._data=t._observe(t._pristineData),t.options.serverPaging&&(t._total=t._pristineTotal),t._ranges=[],t._addRange(t._data,0),t._changesCanceled(),t._change(),t._markOfflineUpdatesAsDirty(),t._isServerGrouped()&&t.read())},_changesCanceled:g,_markOfflineUpdatesAsDirty:function(){var e=this;null!=e.options.offlineStorage&&e._eachItem(e._data,(function(e){for(var t=0;t<e.length;t++){var r=e.at(t);"update"!=r.__state__&&"create"!=r.__state__||(r.dirty=!0)}}))},hasChanges:function(){var e,t,r=this._flatData(this._data,this.options.useRanges);if(this._destroyed.length)return!0;for(e=0,t=r.length;e<t;e++)if(r[e].isNew&&r[e].isNew()||r[e].dirty)return!0;return!1},_accept:function(t){var r,n=this,i=t.models,a=t.response,u=0,l=n._isServerGrouped(),d=n._pristineData,g=t.type;if(n.trigger(G,{response:a,type:g}),a&&!s(a)){if(a=n.reader.parse(a),n._handleCustomErrors(a))return;a=n.reader.data(a),o(a)||(a=[a])}else a=e.map(i,(function(e){return e.toJSON()}));for("destroy"===g&&(n._destroyed=[]),u=0,r=i.length;u<r;u++)"destroy"!==g?(i[u].accept(a[u]),"create"===g?d.push(l?n._wrapInEmptyGroup(i[u].toJSON()):a[u]):"update"===g&&n._updatePristineForModel(i[u],a[u])):n._removePristineForModel(i[u])},_updatePristineForModel:function(e,t){this._executeOnPristineForModel(e,(function(e,r){h.deepExtend(r[e],t)}))},_executeOnPristineForModel:function(e,t){this._eachPristineItem((function(r){var n=je(r,e);if(n>-1)return t(n,r),!0}))},_removePristineForModel:function(e){this._executeOnPristineForModel(e,(function(e,t){t.splice(e,1)}))},_readData:function(e){return(this._isServerGrouped()?this.reader.groups:this.reader.data).call(this.reader,e)},_eachPristineItem:function(e){var t=this,r=t.options,n=t._getCurrentRangeSpan();t._eachItem(t._pristineData,e),r.serverPaging&&r.useRanges&&d(n,(function(r,n){t._eachItem(n.pristineData,e)}))},_eachItem:function(e,t){e&&e.length&&(this._isServerGrouped()?Ee(e,t):t(e))},_pristineForModel:function(e){var t,r;return this._eachPristineItem((function(n){if((r=je(n,e))>-1)return t=n[r],!0})),t},_cancelModel:function(e){var t=this,r=this._pristineForModel(e);this._eachItem(this._data,(function(n){var i=Le(n,e);i>=0&&(!r||e.isNew()&&!r.__state__?(t._modelCanceled(e),n.splice(i,1),t._removeModelFromRanges(e)):(n[i].accept(r),"update"==r.__state__&&(n[i].dirty=!0)))}))},_modelCanceled:g,_submit:function(t,r){var i=this;i.trigger(F,{type:"submit"}),i.trigger(C),i.transport.submit(n({success:function(r,n){var i=e.grep(t,(function(e){return e.type==n}))[0];i&&i.resolve({response:r,models:i.models,type:n})},error:function(e,r,n){for(var a=0;a<t.length;a++)t[a].reject(e);i.error(e,r,n)}},r))},_sendSubmit:function(t,r,n){var i=this,a=[];return i.options.batch&&(t.length&&a.push(e.Deferred((function(e){e.type="create",e.models=t}))),r.length&&a.push(e.Deferred((function(e){e.type="update",e.models=r}))),n.length&&a.push(e.Deferred((function(e){e.type="destroy",e.models=n}))),i._submit(a,{data:{created:i.reader.serialize(be(t)),updated:i.reader.serialize(be(r)),destroyed:i.reader.serialize(be(n))}})),a},_promise:function(t,r,i){var a=this;return e.Deferred((function(e){a.trigger(F,{type:i}),a.trigger(C),a.transport[i].call(a.transport,n({success:function(t){e.resolve({response:t,models:r,type:i})},error:function(t,r,n){e.reject(t),a.error(t,r,n)}},t))})).promise()},_send:function(e,t){var r,n,i=this,a=[],s=i.reader.serialize(be(t));if(i.options.batch)t.length&&a.push(i._promise({data:{models:s}},t,e));else for(r=0,n=t.length;r<n;r++)a.push(i._promise({data:s[r]},[t[r]],e));return a},read:function(t){var r=this,n=r._params(t),i=e.Deferred();return r._queueRequest(n,(function(){var e=r.trigger(F,{type:"read"});e?(r._dequeueRequest(),i.resolve(e)):(r.trigger(C),r._ranges=[],r.trigger("reset"),r.online()?r.transport.read({data:n,success:function(e){r._ranges=[],r.success(e,n),i.resolve()},error:function(){var e=L.call(arguments);r.error.apply(r,e),i.reject.apply(i,e)}}):null!=r.options.offlineStorage&&(r.success(r.offlineData(),n),i.resolve()))})),i.promise()},_readAggregates:function(e){return this.reader.aggregates(e)},success:function(e){var t,r,n=this,i=n.options;if(n.trigger(G,{response:e,type:"read"}),n.online()){if(e=n.reader.parse(e),n._handleCustomErrors(e))return void n._dequeueRequest();n._total=n.reader.total(e),n._isServerGroupPaged()&&(n._serverGroupsTotal=n._total),n._pageSize>n._total&&(n._pageSize=n._total,n.options.pageSize&&n.options.pageSize>n._pageSize&&(n._pageSize=n.options.pageSize)),n._aggregate&&i.serverAggregates&&(n._aggregateResult=n._readAggregates(e)),e=n._readData(e),n._destroyed=[]}else{e=n._readData(e),t=[];var a,s={},o=n.reader.model,u=o?o.idField:"id";for(a=0;a<this._destroyed.length;a++){var l=this._destroyed[a][u];s[l]=l}for(a=0;a<e.length;a++){var d=e[a];"destroy"==d.__state__?s[d[u]]||this._pushInDestroyed(this._createNewModel(d)):t.push(d)}e=t,n._total=e.length}if(n._pristineTotal=n._total,r=n._skip&&n._data.length&&n._skip<n._data.length,n.options.endless){r&&n._pristineData.splice(n._skip,n._pristineData.length),t=e.slice(0);for(var g=0;g<t.length;g++)n._pristineData.push(t[g])}else n._pristineData=e.slice(0);if(n._detachObservableParents(),n.options.endless){n._data.unbind(k,n._changeHandler),n._isServerGrouped()&&n._data[n._data.length-1].value===e[0].value&&(qe(n._data[n._data.length-1],e[0]),e.shift()),e=n._observe(e),r&&n._data.splice(n._skip,n._data.length);for(var h=0;h<e.length;h++)n._data.push(e[h]);n._data.bind(k,n._changeHandler)}else n._data=n._observe(e);n._markOfflineUpdatesAsDirty(),n._storeData(),n._addRange(n._data),n._process(n._data),n._dequeueRequest()},_detachObservableParents:function(){if(this._data&&this._shouldDetachObservableParents)for(var e=0;e<this._data.length;e++)this._data[e].parent&&(this._data[e].parent=g)},_storeData:function(e){var t=this._isServerGrouped(),r=this.reader.model;if(null!=this.options.offlineStorage){for(var n=function e(n){for(var i=[],a=0;a<n.length;a++){var s=n.at(a),o=s.toJSON();t&&s.items?o.items=e(s.items):(o.uid=s.uid,r&&(s.isNew()?o.__state__="create":s.dirty&&(o.__state__="update"))),i.push(o)}return i}(this._data),i=[],a=0;a<this._destroyed.length;a++){var s=this._destroyed[a].toJSON();s.__state__="destroy",i.push(s)}this.offlineData(n.concat(i)),e&&(this._pristineData=this.reader.reader?this.reader.reader._wrapDataAccessBase(n):this.reader._wrapDataAccessBase(n))}},_addRange:function(e,t){var r,n=this,i=void 0!==t?t:n._skip||0,a={data:e,pristineData:e.toJSON(),timestamp:n._timeStamp()};this._isGroupPaged()?(r=i+e.length,a.outerStart=i,a.outerEnd=r):r=i+n._flatData(e,!0).length,a.start=i,a.end=r,n._ranges.push(a),n._sortRanges(),n._isGroupPaged()&&(n._groupsFlat||(n._groupsFlat=[]),n._appendToGroupsFlat(a.data),n._updateOuterRangesLength())},_appendToGroupsFlat:function(e){for(var t=e.length,r=0;r<t;r++)this._groupsFlat.push(e[r])},_getGroupByUid:function(e){for(var t,r=this._groupsFlat.length,n=0;n<r;n++)if((t=this._groupsFlat[n]).uid===e)return t},_sortRanges:function(){this._ranges.sort((function(e,t){return e.start-t.start}))},error:function(e,t,r){this._dequeueRequest(),this.trigger(G,{}),this.trigger(x,{xhr:e,status:t,errorThrown:r})},_params:function(e){var t=this,r=n({take:t.take(),skip:t.skip(),page:t.page(),pageSize:t.pageSize(),sort:t._sort,filter:t._filter,group:t._group,aggregate:t._aggregate,groupPaging:!!t._groupPaging},e);return t.options.serverPaging||(delete r.take,delete r.skip,delete r.page,delete r.pageSize),t.options.serverGrouping?t.reader.model&&r.group&&(r.group=Je(r.group,t.reader.model)):delete r.group,t.options.serverFiltering?t.reader.model&&r.filter&&(r.filter=Ue(r.filter,t.reader.model)):delete r.filter,t.options.serverSorting?t.reader.model&&r.sort&&(r.sort=Je(r.sort,t.reader.model)):delete r.sort,t.options.serverAggregates?t.reader.model&&r.aggregate&&(r.aggregate=Je(r.aggregate,t.reader.model)):delete r.aggregate,t.options.groupPaging||delete r.groupPaging,r},_queueRequest:function(e,r){var n=this;n._requestInProgress?n._pending={callback:r.bind(n),options:e}:(n._requestInProgress=!0,n._pending=t,r())},_dequeueRequest:function(){var e=this;e._requestInProgress=!1,e._pending&&e._queueRequest(e._pending.options,e._pending.callback)},_handleCustomErrors:function(e){if(this.reader.errors){var t=this.reader.errors(e);if(t)return this.trigger(x,{xhr:null,status:"customerror",errorThrown:"custom error",errors:t}),!0}return!1},_shouldWrap:function(e){var t=this.reader.model;return!(!t||!e.length)&&!(e[0]instanceof t)},_observe:function(e){var t=this,r=t.reader.model;(t._shouldDetachObservableParents=!0,e instanceof Q)?(t._shouldDetachObservableParents=!1,t._shouldWrap(e)&&(e.type=t.reader.model,e.wrapAll(e,e))):(e=new(t.pageSize()&&!t.options.serverPaging?W:Q)(e,t.reader.model)).parent=function(){return t.parent()};return t._isServerGrouped()&&ze(e,r),!(t._changeHandler&&t._data&&t._data instanceof Q)||t.options.useRanges&&t.options.serverPaging?t._changeHandler=t._change.bind(t):t._data.unbind(k,t._changeHandler),e.bind(k,t._changeHandler)},_updateTotalForAction:function(e,t){var r=this,n=parseInt(r._total,10);ye(r._total)||(n=parseInt(r._pristineTotal,10)),"add"===e?n+=t.length:"remove"===e?n-=t.length:"itemchange"===e||"sync"===e||r.options.serverPaging?"sync"===e&&(n=r._pristineTotal=parseInt(r._total,10)):n=r._pristineTotal,r._total=n},_pushInDestroyed:function(e){this._destroyed.find((function(t){return t.uid===e.uid}))||this._destroyed.push(e)},_change:function(e){var t,r,n=this,i=e?e.action:"";if("remove"===i)for(t=0,r=e.items.length;t<r;t++)e.items[t].isNew&&e.items[t].isNew()||n._pushInDestroyed(e.items[t]);if(!n.options.autoSync||"add"!==i&&"remove"!==i&&"itemchange"!==i)n._updateTotalForAction(i,e?e.items:[]),n._process(n._data,e);else{var a=function(t){"sync"===t.action&&(n.unbind("change",a),n._updateTotalForAction(i,e.items))};n.first("change",a),n.sync()}},_calculateAggregates:function(e,t){t=t||{};var r=new ae(e),n=t.aggregate,i=t.filter;return i&&(r=r.filter(i)),r.aggregate(n)},_process:function(e,r){var n,i=this,a={};if(!0!==i.options.serverPaging&&(a.skip=i._skip,a.take=i._take||i._pageSize,a.skip===t&&i._page!==t&&i._pageSize!==t&&(a.skip=(i._page-1)*i._pageSize),i.options.useRanges&&(a.skip=i.currentRangeStart())),!0!==i.options.serverSorting&&(a.sort=i._sort),!0!==i.options.serverFiltering&&(a.filter=i._filter),!0!==i.options.serverGrouping&&(a.group=i._group),!0!==i.options.serverAggregates&&(a.aggregate=i._aggregate),i.options.serverGrouping&&i._clearEmptyGroups(e),a.groupPaging=i._groupPaging,n=i._isGroupPaged()&&r&&("page"===r.action||"expandGroup"===r.action||"collapseGroup"===r.action)?i._queryProcess(e,{aggregate:i._aggregate}):i._queryProcess(e,a),i._filter&&r&&"add"===r.action){var s=r.items[0],o=n.data;i._isGrouped()&&!this._isServerGrouped()&&(o=Te(o)),o.find((function(e){return e.uid===s.uid}))||(n.data.splice(s.index,0,i._isGrouped()?i._wrapInEmptyGroup(s):s),n.total++)}!0!==i.options.serverAggregates&&(i._aggregateResult=i._calculateAggregates(n.dataToAggregate||e,a)),i._setView(n,a,r),i._setFilterTotal(n.total,!1),(r=r||{}).items=r.items||i._view,i.trigger(k,r)},_setView:function(e,t,r){var n=this;if(n._isGroupPaged()&&!n._isServerGrouped())if(!r||"page"!==r.action&&"expandGroup"!==r.action&&"collapseGroup"!==r.action){n._ranges=[];var i=new ae(e.data);n._addRange(n._observe(e.data)),t.skip+t.take>e.data.length&&(t.skip=e.data.length-t.take),n.view(i.range(t.skip,t.take).toArray())}else n.view(e.data),n._updateOuterRangesLength();else n.view(e.data)},_clearEmptyGroups:function(e){for(var t=e.length-1;t>=0;t--){var r=e[t];r.hasSubgroups&&this._clearEmptyGroups(r.items),!r.items||r.items.length||r.itemCount||M.apply(r.parent(),[t,1])}},_queryProcess:function(e,t){return this.options.inPlaceSort?ae.process(e,t,this.options.inPlaceSort):ae.process(e,t)},_mergeState:function(r){var n,i=this;return r!==t&&(i._pageSize=r.pageSize,i._page=r.page,i._sort=r.sort,i._filter=r.filter,i._group=r.group,i._aggregate=r.aggregate,i._skip=i._currentRangeStart=r.skip,i._take=r.take,i._skip===t&&(i._skip=i._currentRangeStart=i.skip(),r.skip=i.skip()),i._take===t&&i._pageSize!==t&&(i._take=i._pageSize,r.take=i._take),i.options.virtual&&(r.virtual=i.options.virtual),r.sort&&(i._sort=r.sort=se(r.sort),i._sortFields=oe(r.sort)),r.filter&&(i._filter=r.filter=i.options.accentFoldingFiltering&&!e.isEmptyObject(r.filter)?e.extend({},de(r.filter),{accentFoldingFiltering:i.options.accentFoldingFiltering}):de(r.filter)),r.group&&(i._group=r.group=ce(r.group)),r.aggregate&&(i._aggregate=r.aggregate=(n=r.aggregate,o(n)?n:[n]))),r},query:function(r){var n;if(this.options.serverSorting||this.options.serverPaging||this.options.serverFiltering||this.options.serverGrouping||this.options.serverAggregates||(this._data===t||0===this._data.length)&&!this._destroyed.length){if(this.options.endless){var i=r.pageSize-this.pageSize();i>0?(i=this.pageSize(),r.page=r.pageSize/i,r.pageSize=i):(r.page=1,this.options.endless=!1)}return this.read(this._mergeState(r))}var a=this.trigger(F,{type:"read"});return a||(this.trigger(C),r&&(r.groupPaging=this._groupPaging),n=this._queryProcess(this._data,this._mergeState(r)),this._setFilterTotal(n.total,!0),this._aggregateResult=this._calculateAggregates(n.dataToAggregate||this._data,r),this._setView(n,r),this.trigger(G,{type:"read"}),this.trigger(k,{items:n.data,action:r?r.action:""})),e.Deferred().resolve(a).promise()},_hasExpandedSubGroups:function(e){var t=!1,r=e.items?e.items.length:0;if(!e.hasSubgroups)return!1;for(var n=0;n<r;n++)if(this._groupsState[e.items[n].uid]){t=!0;break}return t},_findGroupedRange:function(e,t,r,n,i){for(var a,s,o,u,l,d=this,g=e.length,h=0;h<g&&(a=e[h],!(r.taken>=r.take));h++)if(d._getGroupByUid(a.uid)||d._groupsFlat.push(a),d._groupsState[a.uid]){if(d._isServerGroupPaged()){if(d._fetchGroupItems(a,r,n,i))return void(d._fetchingGroupItems=!0);if(u=(a.subgroupCount||a.itemCount)+1,l=r.skip-r.skipped,!d._hasExpandedSubGroups(a)&&l>u){r.skipped+=u;continue}}if(r.includeParents&&r.skipped<r.skip?(r.skipped++,a.excludeHead