/*!
|
* Ext JS Library 3.1.0
|
* Copyright(c) 2006-2009 Ext JS, LLC
|
* licensing@extjs.com
|
* http://www.extjs.com/license
|
*/
|
|
/**
|
* @class Ext.data.SortTypes
|
* @singleton
|
* Defines the default sorting (casting?) comparison functions used when sorting data.
|
*/
|
Ext.data.SortTypes = {
|
/**
|
* Default sort that does nothing
|
* @param {Mixed} s The value being converted
|
* @return {Mixed} The comparison value
|
*/
|
none : function(s){
|
return s;
|
},
|
|
/**
|
* The regular expression used to strip tags
|
* @type {RegExp}
|
* @property
|
*/
|
stripTagsRE : /<\/?[^>]+>/gi,
|
|
/**
|
* Strips all HTML tags to sort on text only
|
* @param {Mixed} s The value being converted
|
* @return {String} The comparison value
|
*/
|
asText : function(s){
|
return String(s).replace(this.stripTagsRE, "");
|
},
|
|
/**
|
* Strips all HTML tags to sort on text only - Case insensitive
|
* @param {Mixed} s The value being converted
|
* @return {String} The comparison value
|
*/
|
asUCText : function(s){
|
return String(s).toUpperCase().replace(this.stripTagsRE, "");
|
},
|
|
/**
|
* Case insensitive string
|
* @param {Mixed} s The value being converted
|
* @return {String} The comparison value
|
*/
|
asUCString : function(s) {
|
return String(s).toUpperCase();
|
},
|
|
/**
|
* Date sorting
|
* @param {Mixed} s The value being converted
|
* @return {Number} The comparison value
|
*/
|
asDate : function(s) {
|
if(!s){
|
return 0;
|
}
|
if(Ext.isDate(s)){
|
return s.getTime();
|
}
|
return Date.parse(String(s));
|
},
|
|
/**
|
* Float sorting
|
* @param {Mixed} s The value being converted
|
* @return {Float} The comparison value
|
*/
|
asFloat : function(s) {
|
var val = parseFloat(String(s).replace(/,/g, ""));
|
return isNaN(val) ? 0 : val;
|
},
|
|
/**
|
* Integer sorting
|
* @param {Mixed} s The value being converted
|
* @return {Number} The comparison value
|
*/
|
asInt : function(s) {
|
var val = parseInt(String(s).replace(/,/g, ""), 10);
|
return isNaN(val) ? 0 : val;
|
}
|
};
|