nnnjjj123
2020-11-17 1b2c1edb61190eeb19f465ff031eaa3b2a1b8dbc
1
2
3
4
5
6
7
8
//>>built
define(["dojo/_base/declare","dojo/_base/lang","dojo/_base/array","dojo/_base/Deferred","dojo/data/util/filter"],function(p,h,m,q,n){var l=function(a,b,c){return function(d){a._updates.push({create:b&&d,remove:c&&d});k.onUpdate()}},k=p("dojox.data.ClientFilter",null,{cacheByDefault:!1,constructor:function(){this.onSet=l(this,!0,!0);this.onNew=l(this,!0,!1);this.onDelete=l(this,!1,!0);this._updates=[];this._fetchCache=[]},clearCache:function(){this._fetchCache=[]},updateResultSet:function(a,b){if(this.isUpdateable(b)){for(var c=
b._version||0;c<this._updates.length;c++){var d=this._updates[c].create,f=this._updates[c].remove;if(f)for(var e=0;e<a.length;e++)if(this.getIdentity(a[e])==this.getIdentity(f)){a.splice(e--,1);var g=!0}d&&this.matchesQuery(d,b)&&-1==m.indexOf(a,d)&&(a.push(d),g=!0)}b.sort&&g&&a.sort(this.makeComparator(b.sort.concat()));a._fullLength=a.length;b.count&&g&&Infinity!==b.count&&a.splice(b.count,a.length);b._version=this._updates.length;return g?2:1}return 0},querySuperSet:function(a,b){if(a.query==b.query)return{};
if(!(b.query instanceof Object)||a.query&&"object"!=typeof a.query)return!1;b=h.mixin({},b.query);for(var c in a.query)if(b[c]==a.query[c])delete b[c];else if("string"!=typeof a.query[c]||!n.patternToRegExp(a.query[c]).test(b[c]))return!1;return b},serverVersion:0,cachingFetch:function(a){for(var b=this,c=0;c<this._fetchCache.length;c++){var d=this._fetchCache[c],f=this.querySuperSet(d,a);if(!1!==f){var e=d._loading;e||(e=new q,e.callback(d.cacheResults));e.addCallback(function(c){c=b.clientSideFetch(h.mixin(h.mixin({},
a),{query:f}),c);e.fullLength=c._fullLength;return c});a._version=d._version;break}}if(!e){var c=h.mixin({},a),d=(a.queryOptions||0).cache,g=this._fetchCache;if(void 0===d?this.cacheByDefault:d){if(a.start||a.count)delete c.start,delete c.count,a.clientQuery=h.mixin(a.clientQuery||{},{start:a.start,count:a.count});a=c;g.push(a)}e=a._loading=this._doQuery(a);e.addErrback(function(){g.splice(m.indexOf(g,a),1)})}var r=this.serverVersion;e.addCallback(function(c){delete a._loading;c&&(a._version="number"==
typeof a._version?a._version:r,b.updateResultSet(c,a),a.cacheResults=c,!a.count||c.length<a.count)&&(e.fullLength=(a.start?a.start:0)+c.length);return c});return e},isUpdateable:function(a){return!a.query||"object"==typeof a.query},clientSideFetch:function(a,b){a.queryOptions&&a.queryOptions.results&&(b=a.queryOptions.results);if(a.query)for(var c=[],d=0;d<b.length;d++){var f=b[d];f&&this.matchesQuery(f,a)&&c.push(b[d])}else c=a.sort?b.concat():b;a.sort&&c.sort(this.makeComparator(a.sort.concat()));
return this.clientSidePaging(a,c)},clientSidePaging:function(a,b){var c=a.start||0;a=c||a.count?b.slice(c,c+(a.count||b.length)):b;a._fullLength=b.length;return a},matchesQuery:function(a,b){var c=b.query;b=b.queryOptions&&b.queryOptions.ignoreCase;for(var d in c){var f=c[d],e=this.getValue(a,d);if("string"==typeof f&&(f.match(/[\*\.]/)||b)?!n.patternToRegExp(f,b).test(e):e!=f)return!1}return!0},makeComparator:function(a){var b=a.shift();if(!b)return function(){return 0};var c=b.attribute,d=!!b.descending,
f=this.makeComparator(a),e=this;return function(a,b){var g=e.getValue(a,c),h=e.getValue(b,c);return g!=h?g<h==d?1:-1:f(a,b)}}});k.onUpdate=function(){};return k});