67 lines
1.1 KiB
JavaScript
67 lines
1.1 KiB
JavaScript
/*
|
|
Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
|
|
Available via Academic Free License >= 2.1 OR the modified BSD license.
|
|
see: http://dojotoolkit.org/license for details
|
|
*/
|
|
|
|
//>>built
|
|
define("dojo/data/util/sorter",["dojo/_base/lang"],function(_1){
|
|
var _2=_1.getObject("dojo.data.util.sorter",true);
|
|
_2.basicComparator=function(a,b){
|
|
var r=-1;
|
|
if(a===null){
|
|
a=undefined;
|
|
}
|
|
if(b===null){
|
|
b=undefined;
|
|
}
|
|
if(a==b){
|
|
r=0;
|
|
}else{
|
|
if(a>b||a==null){
|
|
r=1;
|
|
}
|
|
}
|
|
return r;
|
|
};
|
|
_2.createSortFunction=function(_3,_4){
|
|
var _5=[];
|
|
function _6(_7,_8,_9,s){
|
|
return function(_a,_b){
|
|
var a=s.getValue(_a,_7);
|
|
var b=s.getValue(_b,_7);
|
|
return _8*_9(a,b);
|
|
};
|
|
};
|
|
var _c;
|
|
var _d=_4.comparatorMap;
|
|
var bc=_2.basicComparator;
|
|
for(var i=0;i<_3.length;i++){
|
|
_c=_3[i];
|
|
var _e=_c.attribute;
|
|
if(_e){
|
|
var _f=(_c.descending)?-1:1;
|
|
var _10=bc;
|
|
if(_d){
|
|
if(typeof _e!=="string"&&("toString" in _e)){
|
|
_e=_e.toString();
|
|
}
|
|
_10=_d[_e]||bc;
|
|
}
|
|
_5.push(_6(_e,_f,_10,_4));
|
|
}
|
|
}
|
|
return function(_11,_12){
|
|
var i=0;
|
|
while(i<_5.length){
|
|
var ret=_5[i++](_11,_12);
|
|
if(ret!==0){
|
|
return ret;
|
|
}
|
|
}
|
|
return 0;
|
|
};
|
|
};
|
|
return _2;
|
|
});
|