Comparing version 1.2.2 to 1.3.0
{ | ||
"name": "tablesort", | ||
"description": "tablesort BRAP tablesort BRAP", | ||
"version": "1.2.2", | ||
"description": "A sorting component for HTML tables", | ||
"version": "1.3.0", | ||
"author": "tristen <@fallsemo>", | ||
@@ -10,3 +10,4 @@ "main": "./tablesort.js", | ||
"contributors": [ | ||
"Olivier Vaillancourt <@ovaillancourt>" | ||
"Olivier Vaillancourt <@ovaillancourt>", | ||
"Dmitry Kichenko <@imissmyjuno>" | ||
], | ||
@@ -13,0 +14,0 @@ "licenses": [{ |
@@ -18,2 +18,3 @@ # tablesort.js | ||
* Sort currency | ||
* Basic date sorting: in `dd/mm/yy` or `dd-mm-yy` format. | ||
@@ -20,0 +21,0 @@ ## Additional options |
375
tablesort.js
// tablesort.js | ||
// tristen @fallsemo | ||
(function () { | ||
function Tablesort(el, options) { | ||
el.tagName === 'TABLE' ? this.init(el, options || {}) : console.error('Element must be a table'); | ||
} | ||
function Tablesort(el, options) { | ||
el.tagName === 'TABLE' ? this.init(el, options || {}) : console.error('Element must be a table'); | ||
} | ||
Tablesort.prototype = { | ||
init: function (el, options) { | ||
var that = this; | ||
var firstRow; | ||
this.thead = false; | ||
this.options = options; | ||
this.options.d = options.descending || false; | ||
Tablesort.prototype = { | ||
init: function(el, options) { | ||
var that = this; | ||
var firstRow; | ||
this.thead = false; | ||
this.options = options; | ||
this.options.d = options.descending || false; | ||
if (el.rows && el.rows.length > 0) { | ||
if (el.tHead && el.tHead.rows.length > 0) { | ||
firstRow = el.tHead.rows[el.tHead.rows.length -1]; | ||
that.thead = true; | ||
} else { | ||
firstRow = el.rows[0]; | ||
if(el.rows && el.rows.length > 0) { | ||
if(el.tHead && el.tHead.rows.length > 0) { | ||
firstRow = el.tHead.rows[el.tHead.rows.length - 1]; | ||
that.thead = true; | ||
} else { | ||
firstRow = el.rows[0]; | ||
} | ||
} | ||
} | ||
if (!firstRow) return; | ||
if(!firstRow) return; | ||
// Assume first row is the header and attach a click handler to each. | ||
for (var i = 0; i < firstRow.cells.length; i++) { | ||
var cell = firstRow.cells[i]; | ||
if (!that.hasClass(cell, 'no-sort')) { | ||
cell.className += ' sort-header'; | ||
this.addEvent(cell, 'click', function(e) { | ||
// Delete any sort classes on table headers that are not the current one. | ||
var siblings = that.getParent(cell, 'tr').getElementsByTagName('th'); | ||
for (var i = 0; i < siblings.length; i++) { | ||
if (that.hasClass(siblings[i], 'sort-up') || that.hasClass(siblings[i], 'sort-down')) { | ||
if (siblings[i] !== this) { | ||
siblings[i].className = siblings[i].className | ||
.replace(' sort-down', '') | ||
.replace(' sort-up', ''); | ||
// Assume first row is the header and attach a click handler to eech. | ||
for(var i = 0; i < firstRow.cells.length; i++) { | ||
var cell = firstRow.cells[i]; | ||
if(!hasClass(cell, 'no-sort')) { | ||
cell.className += ' sort-header'; | ||
addEvent(cell, 'click', function (e) { | ||
// Delete any sort classes on table headers that are not the current one. | ||
var siblings = getParent(cell, 'tr').getElementsByTagName('th'); | ||
for(var i = 0; i < siblings.length; i++) { | ||
if(hasClass(siblings[i], 'sort-up') || hasClass(siblings[i], 'sort-down')) { | ||
if(siblings[i] !== this) { | ||
siblings[i].className = siblings[i].className.replace(' sort-down', '') | ||
.replace(' sort-up', ''); | ||
} | ||
} | ||
} | ||
} | ||
that.sortTable(this); | ||
}); | ||
that.sortTable(this); | ||
}); | ||
} | ||
} | ||
} | ||
}, | ||
sortTable: function(header) { | ||
var that = this; | ||
var column = header.cellIndex; | ||
var t = this.getParent(header, 'table'); | ||
var sortCaseInsensitive = function(a, b) { | ||
var aa = that.getInnerText(a.cells[that.col]).toLowerCase(); | ||
var bb = that.getInnerText(b.cells[that.col]).toLowerCase(); | ||
if (aa === bb) return 0; | ||
if (that.options.d) { | ||
if (aa < bb) return -1; | ||
return 1; | ||
} | ||
if (aa < bb) return 1; | ||
return -1; | ||
}; | ||
var sortNumber = function(a, b) { | ||
var aa = that.getInnerText(a.cells[that.col]); | ||
aa = that.cleanNumber(aa); | ||
var bb = that.getInnerText(b.cells[that.col]); | ||
bb = that.cleanNumber(bb); | ||
}, | ||
sortTable: function (header) { | ||
var that = this; | ||
var column = header.cellIndex; | ||
var t = getParent(header, 'table'); | ||
if (that.options.d) return that.compareNumber(aa, bb); | ||
return that.compareNumber(bb, aa); | ||
}; | ||
var sortCaseInsensitive = function (a, b) { | ||
var aa = getInnerText(a.cells[that.col]).toLowerCase(); | ||
var bb = getInnerText(b.cells[that.col]).toLowerCase(); | ||
if(aa === bb) return 0; | ||
if(aa < bb) return 1; | ||
return -1; | ||
}; | ||
var sortNumber = function (a, b) { | ||
var aa = getInnerText(a.cells[that.col]); | ||
aa = cleanNumber(aa); | ||
var bb = getInnerText(b.cells[that.col]); | ||
bb = cleanNumber(bb); | ||
return compareNumber(bb, aa); | ||
}; | ||
var sortDate = function(a, b) { | ||
var aa = getInnerText(a.cells[that.col]).toLowerCase(), | ||
bb = getInnerText(b.cells[that.col]).toLowerCase(); | ||
return parseDate(bb) - parseDate(aa); | ||
}; | ||
// Work out a type for the column | ||
if (t.rows.length <= 1) return; | ||
var item = ''; | ||
var i = 0; | ||
while (item === '' && i < t.tBodies[0].rows.length) { | ||
var item = that.getInnerText(t.tBodies[0].rows[i].cells[column]); | ||
item = that.trim(item); | ||
if (item.substr(0,4) === '<!--' || item.length === 0) { | ||
item = ''; | ||
// Work out a type for the column | ||
if(t.rows.length <= 1) return; | ||
var item = ''; | ||
var i = 0; | ||
while(item === '' && i < t.tBodies[0].rows.length) { | ||
item = getInnerText(t.tBodies[0].rows[i].cells[column]); | ||
item = trim(item); | ||
if(item.substr(0, 4) === '<!--' || item.length === 0) { | ||
item = ''; | ||
} | ||
i++; | ||
} | ||
i++; | ||
} | ||
if (item === '') return; | ||
var sortFunction; | ||
// Sort as number if a currency key exists or number | ||
if (item.match(/^-?[£$Û¢´]\d/) || item.match(/^-?(\d+[,\.]?)+(E[\-+][\d]+)?%?$/)) { | ||
sortFunction = sortNumber; | ||
} else { | ||
sortFunction = sortCaseInsensitive; | ||
} | ||
this.col = column; | ||
var firstRow = [], newRows = [], k, j; | ||
if(item === '') return; | ||
var sortFunction; | ||
for (k = 0; k < t.tBodies.length; k++) { | ||
for (i = 0; i < t.tBodies[k].rows[0].length; i++) { | ||
firstRow[i] = t.tBodies[k].rows[0][i]; | ||
// Sort as number if a currency key exists or number | ||
if(item.match(/^-?[£$Û¢´]\d/) || item.match(/^-?(\d+[,\.]?)+(E[-+][\d]+)?%?$/)) { | ||
sortFunction = sortNumber; | ||
} else if(testDate(item)) { | ||
sortFunction = sortDate; | ||
} else { | ||
console.log('string'); | ||
sortFunction = sortCaseInsensitive; | ||
} | ||
} | ||
for (k = 0; k < t.tBodies.length; k++) { | ||
if (!that.thead) { | ||
// skip the first row | ||
for (j = 1; j < t.tBodies[k].rows.length; j++) { | ||
newRows[j-1] = t.tBodies[k].rows[j]; | ||
this.col = column; | ||
var firstRow = [], | ||
newRows = [], | ||
k, j; | ||
for(k = 0; k < t.tBodies.length; k++) { | ||
for(i = 0; i < t.tBodies[k].rows[0].length; i++) { | ||
firstRow[i] = t.tBodies[k].rows[0][i]; | ||
} | ||
} | ||
for(k = 0; k < t.tBodies.length; k++) { | ||
if(!that.thead) { | ||
// skip the first row | ||
for(j = 1; j < t.tBodies[k].rows.length; j++) { | ||
newRows[j - 1] = t.tBodies[k].rows[j]; | ||
} | ||
} else { | ||
// don't skip the first row | ||
for(j = 0; j < t.tBodies[k].rows.length; j++) { | ||
newRows[j] = t.tBodies[k].rows[j]; | ||
} | ||
} | ||
} | ||
newRows.sort(sortFunction); | ||
// TODO Optimize. | ||
if(that.options.d) { | ||
if(hasClass(header, 'sort-up')) { | ||
header.className = header.className.replace(/ sort-up/, ''); | ||
header.className += ' sort-down'; | ||
newRows.reverse(); | ||
} else { | ||
header.className = header.className.replace(/ sort-down/, ''); | ||
header.className += ' sort-up'; | ||
} | ||
} else { | ||
// don't skip the first row | ||
for (j = 0; j < t.tBodies[k].rows.length; j++) { | ||
newRows[j] = t.tBodies[k].rows[j]; | ||
if(hasClass(header, 'sort-down')) { | ||
header.className = header.className.replace(/ sort-down/, ''); | ||
header.className += ' sort-up'; | ||
} else { | ||
header.className = header.className.replace(/ sort-up/, ''); | ||
header.className += ' sort-down'; | ||
newRows.reverse(); | ||
} | ||
} | ||
// append rows that already exist rather than creating new ones | ||
for(i = 0; i < newRows.length; i++) { | ||
if(!newRows[i].className) { | ||
t.tBodies[0].appendChild(newRows[i]); | ||
} | ||
} | ||
} | ||
newRows.sort(sortFunction); | ||
}; | ||
var week = /(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\.?\,?\s*/i, | ||
commonDate = /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/, | ||
month = /(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i; | ||
// TODO Optimize. | ||
if (that.options.d) { | ||
if (that.hasClass(header, 'sort-up')) { | ||
header.className = header.className.replace(/ sort-up/, ''); | ||
header.className += ' sort-down'; | ||
var testDate = function(date) { | ||
return ( | ||
date.search(week) !== -1 || | ||
date.search(commonDate) !== -1 || | ||
date.search(month !== -1) | ||
) !== -1 ; | ||
}, | ||
parseDate = function (date) { | ||
date = date.replace(/\-/g, '/'); | ||
date = date.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, '$1/$2/$3'); // format before getTime | ||
return new Date(date).getTime(); | ||
}, | ||
getParent = function (el, pTagName) { | ||
if(el === null) { | ||
return null; | ||
} else if(el.nodeType === 1 && el.tagName.toLowerCase() === pTagName.toLowerCase()) { | ||
return el; | ||
} else { | ||
header.className = header.className.replace(/ sort-down/, ''); | ||
header.className += ' sort-up'; | ||
newRows.reverse(); | ||
return getParent(el.parentNode, pTagName); | ||
} | ||
} else { | ||
if (that.hasClass(header, 'sort-down')) { | ||
header.className = header.className.replace(/ sort-down/, ''); | ||
header.className += ' sort-up'; | ||
}, | ||
getInnerText = function (el) { | ||
var that = this; | ||
if(typeof el === 'string' || typeof el === 'undefined') return el; | ||
if(el.innerText) return el.innerText; | ||
var str = ''; | ||
var cs = el.childNodes; | ||
var l = cs.length; | ||
for(var i = 0; i < l; i++) { | ||
switch(cs[i].nodeType) { | ||
case 1: | ||
// ELEMENT_NODE | ||
str += that.getInnerText(cs[i]); | ||
break; | ||
case 3: | ||
// TEXT_NODE | ||
str += cs[i].nodeValue; | ||
break; | ||
} | ||
} | ||
return str; | ||
}, | ||
compareNumber = function (a, b) { | ||
var aa = parseFloat(a); | ||
a = isNaN(aa) ? 0 : aa; | ||
var bb = parseFloat(b); | ||
b = isNaN(bb) ? 0 : bb; | ||
return a - b; | ||
}, | ||
trim = function (s) { | ||
return s.replace(/^\s+|\s+$/g, ''); | ||
}, | ||
cleanNumber = function (i) { | ||
return i.replace(/[^\-?0-9.]/g, ''); | ||
}, | ||
hasClass = function (el, c) { | ||
return(' ' + el.className + ' ').indexOf(' ' + c + ' ') > -1; | ||
}, | ||
// http://ejohn.org/apps/jselect/event.html | ||
addEvent = function (object, event, method) { | ||
if(object.attachEvent) { | ||
object['e' + event + method] = method; | ||
object[event + method] = function () { | ||
object['e' + event + method](window.event); | ||
}; | ||
object.attachEvent('on' + event, object[event + method]); | ||
} else { | ||
header.className = header.className.replace(/ sort-up/, ''); | ||
header.className += ' sort-down'; | ||
newRows.reverse(); | ||
object.addEventListener(event, method, false); | ||
} | ||
} | ||
}; | ||
// append rows that already exist rather than creating new ones | ||
for (i = 0; i < newRows.length; i++) { | ||
if (!newRows[i].className) { | ||
t.tBodies[0].appendChild(newRows[i]); | ||
} | ||
} | ||
}, | ||
getInnerText: function(el) { | ||
var that = this; | ||
if (typeof el === 'string' || typeof el === 'undefined') return el; | ||
if (el.innerText) return el.innerText; | ||
var str = ''; | ||
var cs = el.childNodes; | ||
var l = cs.length; | ||
for (var i = 0; i < l; i++) { | ||
switch (cs[i].nodeType) { | ||
case 1: // ELEMENT_NODE | ||
str += that.getInnerText(cs[i]); | ||
break; | ||
case 3: // TEXT_NODE | ||
str += cs[i].nodeValue; | ||
break; | ||
} | ||
} | ||
return str; | ||
}, | ||
getParent: function(el, pTagName) { | ||
if (el === null) { | ||
return null; | ||
} else if (el.nodeType === 1 && el.tagName.toLowerCase() === pTagName.toLowerCase()) { | ||
return el; | ||
} else { | ||
return this.getParent(el.parentNode, pTagName); | ||
} | ||
}, | ||
compareNumber: function(a, b) { | ||
var aa = parseFloat(a); | ||
a = isNaN(aa) ? 0 : aa; | ||
var bb = parseFloat(b); | ||
b = isNaN(bb) ? 0 : bb; | ||
return a - b; | ||
}, | ||
trim: function(s) { | ||
return s.replace(/^\s+|\s+$/g, ''); | ||
}, | ||
cleanNumber: function(i) { | ||
return i.replace(/[^\-?0-9.]/g, ''); | ||
}, | ||
hasClass: function(el, c) { | ||
return (' ' + el.className + ' ').indexOf(' ' + c + ' ') > -1; | ||
}, | ||
// http://ejohn.org/apps/jselect/event.html | ||
addEvent: function(object, event, method) { | ||
if (object.attachEvent) { | ||
object['e' + event + method] = method; | ||
object[event + method] = function(){object['e' + event + method](window.event);}; | ||
object.attachEvent('on' + event, object[event + method]); | ||
} else { | ||
object.addEventListener(event, method, false); | ||
} | ||
} | ||
}; | ||
window.Tablesort = Tablesort; | ||
})(); |
// tablesort.js | ||
// tristen @fallsemo | ||
function Tablesort(a,b){a.tagName==="TABLE"?this.init(a,b||{}):console.error("Element must be a table")}Tablesort.prototype={init:function(a,b){var c=this,d;this.thead=!1,this.options=b,this.options.d=b.descending||!1,a.rows&&a.rows.length>0&&(a.tHead&&a.tHead.rows.length>0?(d=a.tHead.rows[a.tHead.rows.length-1],c.thead=!0):d=a.rows[0]);if(!d)return;for(var e=0;e<d.cells.length;e++){var f=d.cells[e];c.hasClass(f,"no-sort")||(f.className+=" sort-header",this.addEvent(f,"click",function(a){var b=c.getParent(f,"tr").getElementsByTagName("th");for(var d=0;d<b.length;d++)(c.hasClass(b[d],"sort-up")||c.hasClass(b[d],"sort-down"))&&b[d]!==this&&(b[d].className=b[d].className.replace(" sort-down","").replace(" sort-up",""));c.sortTable(this)}))}},sortTable:function(a){var b=this,c=a.cellIndex,d=this.getParent(a,"table"),e=function(a,c){var d=b.getInnerText(a.cells[b.col]).toLowerCase(),e=b.getInnerText(c.cells[b.col]).toLowerCase();return d===e?0:b.options.d?d<e?-1:1:d<e?1:-1},f=function(a,c){var d=b.getInnerText(a.cells[b.col]);d=b.cleanNumber(d);var e=b.getInnerText(c.cells[b.col]);return e=b.cleanNumber(e),b.options.d?b.compareNumber(d,e):b.compareNumber(e,d)};if(d.rows.length<=1)return;var g="",h=0;while(g===""&&h<d.tBodies[0].rows.length){var g=b.getInnerText(d.tBodies[0].rows[h].cells[c]);g=b.trim(g);if(g.substr(0,4)==="<!--"||g.length===0)g="";h++}if(g==="")return;var i;g.match(/^-?[£$Û¢´]\d/)||g.match(/^-?(\d+[,\.]?)+(E[\-+][\d]+)?%?$/)?i=f:i=e,this.col=c;var j=[],k=[],l,m;for(l=0;l<d.tBodies.length;l++)for(h=0;h<d.tBodies[l].rows[0].length;h++)j[h]=d.tBodies[l].rows[0][h];for(l=0;l<d.tBodies.length;l++)if(!b.thead)for(m=1;m<d.tBodies[l].rows.length;m++)k[m-1]=d.tBodies[l].rows[m];else for(m=0;m<d.tBodies[l].rows.length;m++)k[m]=d.tBodies[l].rows[m];k.sort(i),b.options.d?b.hasClass(a,"sort-up")?(a.className=a.className.replace(/ sort-up/,""),a.className+=" sort-down"):(a.className=a.className.replace(/ sort-down/,""),a.className+=" sort-up",k.reverse()):b.hasClass(a,"sort-down")?(a.className=a.className.replace(/ sort-down/,""),a.className+=" sort-up"):(a.className=a.className.replace(/ sort-up/,""),a.className+=" sort-down",k.reverse());for(h=0;h<k.length;h++)k[h].className||d.tBodies[0].appendChild(k[h])},getInnerText:function(a){var b=this;if(typeof a=="string"||typeof a=="undefined")return a;if(a.innerText)return a.innerText;var c="",d=a.childNodes,e=d.length;for(var f=0;f<e;f++)switch(d[f].nodeType){case 1:c+=b.getInnerText(d[f]);break;case 3:c+=d[f].nodeValue}return c},getParent:function(a,b){return a===null?null:a.nodeType===1&&a.tagName.toLowerCase()===b.toLowerCase()?a:this.getParent(a.parentNode,b)},compareNumber:function(a,b){var c=parseFloat(a);a=isNaN(c)?0:c;var d=parseFloat(b);return b=isNaN(d)?0:d,a-b},trim:function(a){return a.replace(/^\s+|\s+$/g,"")},cleanNumber:function(a){return a.replace(/[^\-?0-9.]/g,"")},hasClass:function(a,b){return(" "+a.className+" ").indexOf(" "+b+" ")>-1},addEvent:function(a,b,c){a.attachEvent?(a["e"+b+c]=c,a[b+c]=function(){a["e"+b+c](window.event)},a.attachEvent("on"+b,a[b+c])):a.addEventListener(b,c,!1)}}; | ||
(function(){function a(a,b){a.tagName==="TABLE"?this.init(a,b||{}):console.error("Element must be a table")}a.prototype={init:function(a,b){var c=this,d;this.thead=!1,this.options=b,this.options.d=b.descending||!1,a.rows&&a.rows.length>0&&(a.tHead&&a.tHead.rows.length>0?(d=a.tHead.rows[a.tHead.rows.length-1],c.thead=!0):d=a.rows[0]);if(!d)return;for(var e=0;e<d.cells.length;e++){var f=d.cells[e];l(f,"no-sort")||(f.className+=" sort-header",m(f,"click",function(a){var b=g(f,"tr").getElementsByTagName("th");for(var d=0;d<b.length;d++)(l(b[d],"sort-up")||l(b[d],"sort-down"))&&b[d]!==this&&(b[d].className=b[d].className.replace(" sort-down","").replace(" sort-up",""));c.sortTable(this)}))}},sortTable:function(a){var b=this,c=a.cellIndex,d=g(a,"table"),m=function(a,c){var d=h(a.cells[b.col]).toLowerCase(),e=h(c.cells[b.col]).toLowerCase();return d===e?0:d<e?1:-1},n=function(a,c){var d=h(a.cells[b.col]);d=k(d);var e=h(c.cells[b.col]);return e=k(e),i(e,d)},o=function(a,c){var d=h(a.cells[b.col]).toLowerCase(),e=h(c.cells[b.col]).toLowerCase();return f(e)-f(d)};if(d.rows.length<=1)return;var p="",q=0;while(p===""&&q<d.tBodies[0].rows.length){p=h(d.tBodies[0].rows[q].cells[c]),p=j(p);if(p.substr(0,4)==="<!--"||p.length===0)p="";q++}if(p==="")return;var r;p.match(/^-?[£$Û¢´]\d/)||p.match(/^-?(\d+[,\.]?)+(E[-+][\d]+)?%?$/)?r=n:e(p)?r=o:(console.log("string"),r=m),this.col=c;var s=[],t=[],u,v;for(u=0;u<d.tBodies.length;u++)for(q=0;q<d.tBodies[u].rows[0].length;q++)s[q]=d.tBodies[u].rows[0][q];for(u=0;u<d.tBodies.length;u++)if(!b.thead)for(v=1;v<d.tBodies[u].rows.length;v++)t[v-1]=d.tBodies[u].rows[v];else for(v=0;v<d.tBodies[u].rows.length;v++)t[v]=d.tBodies[u].rows[v];t.sort(r),b.options.d?l(a,"sort-up")?(a.className=a.className.replace(/ sort-up/,""),a.className+=" sort-down",t.reverse()):(a.className=a.className.replace(/ sort-down/,""),a.className+=" sort-up"):l(a,"sort-down")?(a.className=a.className.replace(/ sort-down/,""),a.className+=" sort-up"):(a.className=a.className.replace(/ sort-up/,""),a.className+=" sort-down",t.reverse());for(q=0;q<t.length;q++)t[q].className||d.tBodies[0].appendChild(t[q])}};var b=/(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\.?\,?\s*/i,c=/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/,d=/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i,e=function(a){return(a.search(b)!==-1||a.search(c)!==-1||a.search(d!==-1))!==-1},f=function(a){return a=a.replace(/\-/g,"/"),a=a.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3"),(new Date(a)).getTime()},g=function(a,b){return a===null?null:a.nodeType===1&&a.tagName.toLowerCase()===b.toLowerCase()?a:g(a.parentNode,b)},h=function(a){var b=this;if(typeof a=="string"||typeof a=="undefined")return a;if(a.innerText)return a.innerText;var c="",d=a.childNodes,e=d.length;for(var f=0;f<e;f++)switch(d[f].nodeType){case 1:c+=b.getInnerText(d[f]);break;case 3:c+=d[f].nodeValue}return c},i=function(a,b){var c=parseFloat(a);a=isNaN(c)?0:c;var d=parseFloat(b);return b=isNaN(d)?0:d,a-b},j=function(a){return a.replace(/^\s+|\s+$/g,"")},k=function(a){return a.replace(/[^\-?0-9.]/g,"")},l=function(a,b){return(" "+a.className+" ").indexOf(" "+b+" ")>-1},m=function(a,b,c){a.attachEvent?(a["e"+b+c]=c,a[b+c]=function(){a["e"+b+c](window.event)},a.attachEvent("on"+b,a[b+c])):a.addEventListener(b,c,!1)};window.Tablesort=a})(); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
85922
1920
99
0