//>>builtdefine(["dojo/_base/declare","dojo/_base/array"],function(m,e){functionq(a,b){if(-1<a.indexOf(".")){vard=a.split("."),k=d.length;returnfunction(a){for(varf=0;f<k;f++)a=a&&(b&&a.get?a.get(d[f]):a[d[f]]);returna}}returnfunction(b){returnb.get?b.get(a):b[a]}}varn={eq:function(a,b){returna===b},"in":function(a,b){return-1<e.indexOf(b.data||b,a)},ne:function(a,b){returna!==b},lt:function(a,b){returna<b},lte:function(a,b){returna<=b},gt:function(a,b){returna>b},gte:function(a,b){returna>=b},match:function(a,b,d){returnb.test(a,d)},contains:function(a,b,d,k){varg=this;b=b.data?b.data:Array.isArray(b)?b:[b];returne.every(b,function(b){if("object"===typeofb&&b.type){varc=g._getFilterComparator(b.type);returne.some(a,function(a){returnc.call(g,a,b.args[1],d,k)})}return-1<e.indexOf(a,b)})}};returnm(null,{_createFilterQuerier:function(a){functionb(a){varc,f,h=a.type;a=a.args;varg=k._getFilterComparator(h);if(g){vare=a[0],m=q(e,d),l=a[1];l&&l.fetchSync&&(l=l.fetchSync());returnfunction(a){returng.call(k,m(a),l,a,e)}}switch(h){case"and":case"or":for(varp=0,n=a.length;p<n;p++)f=b(a[p]),c=c?function(a,b){return"and"===h?function(c){returna(c)&&b(c)}:function(c){returna(c)||b(c)}}(c,f):f;returnc;case"function":returna[0];case"string":c=k[a[0]];if(!c)throwError("No filter function "+a[0]+" was found in the collection");returnc;casevoid0:returnfunction(){return!0};default:throwError('Unknown filter operation "'+h+'"');}}vard=this.queryAccessors,k=this,g=b(a);returnfunction(a){returne.filter(a,g)}},_getFilterComparator:function(a){returnn[a]||this.inherited(arguments)},_createSelectQuerier:function(a){returnfunction(b){vard=a.length;returne.map(b,ainstanceofArray?function(b){for(varg={},f=0;f<d;f++){varc=a[f];g[c]=b[c]}returng}:function(b){returnb[a]})}},_createSortQuerier:function(a){varb=this.queryAccessors;returnfunction(d){d=d.slice();d.sort("function"==typeofa?a:function(d,g){for(varf=0;f<a.length;f++){varc,e=a[f];if("function"==typeofe)c=e(d,g);else{c=e.get||(e.get=q(e.property,b));vare=e.descending,h=c(d);c=c(g);null!=h&&(h=h.valueOf());null!=c&&(c=c.valueOf());c=h===c?0:!!e===("undefined"===typeofc||null===c&&"undefined"!==typeofh||null!=h&&h<c)?1:-1}if(0!==c)returnc}return0});returnd}}})});