Fix #25 - Added no-sort & col
This commit is contained in:
97
assets/scripts/tablesort.min.js
vendored
97
assets/scripts/tablesort.min.js
vendored
@@ -2,4 +2,99 @@
|
||||
* tablesort v5.0.2 (2017-11-12)
|
||||
* http://tristen.ca/tablesort/demo/
|
||||
* Copyright (c) 2017 ; Licensed MIT
|
||||
*/!function(){function a(b,c){if(!(this instanceof a))return new a(b,c);if(!b||"TABLE"!==b.tagName)throw new Error("Element must be a table");this.init(b,c||{})}var b=[],c=function(a){var b;return window.CustomEvent&&"function"==typeof window.CustomEvent?b=new CustomEvent(a):(b=document.createEvent("CustomEvent"),b.initCustomEvent(a,!1,!1,void 0)),b},d=function(a){return a.getAttribute("data-sort")||a.textContent||a.innerText||""},e=function(a,b){return a=a.trim().toLowerCase(),b=b.trim().toLowerCase(),a===b?0:a<b?1:-1},f=function(a,b){return function(c,d){var e=a(c.td,d.td);return 0===e?b?d.index-c.index:c.index-d.index:e}};a.extend=function(a,c,d){if("function"!=typeof c||"function"!=typeof d)throw new Error("Pattern and sort must be a function");b.push({name:a,pattern:c,sort:d})},a.prototype={init:function(a,b){var c,d,e,f,g=this;if(g.table=a,g.thead=!1,g.options=b,a.rows&&a.rows.length>0)if(a.tHead&&a.tHead.rows.length>0){for(e=0;e<a.tHead.rows.length;e++)if("thead"===a.tHead.rows[e].getAttribute("data-sort-method")){c=a.tHead.rows[e];break}c||(c=a.tHead.rows[a.tHead.rows.length-1]),g.thead=!0}else c=a.rows[0];if(c){var h=function(){g.current&&g.current!==this&&g.current.removeAttribute("aria-sort"),g.current=this,g.sortTable(this)};for(e=0;e<c.cells.length;e++)f=c.cells[e],f.setAttribute("role","columnheader"),"none"!==f.getAttribute("data-sort-method")&&(f.tabindex=0,f.addEventListener("click",h,!1),null!==f.getAttribute("data-sort-default")&&(d=f));d&&(g.current=d,g.sortTable(d))}},sortTable:function(a,g){var h=this,i=a.cellIndex,j=e,k="",l=[],m=h.thead?0:1,n=a.getAttribute("data-sort-method"),o=a.getAttribute("aria-sort");if(h.table.dispatchEvent(c("beforeSort")),g||(o="ascending"===o?"descending":"descending"===o?"ascending":h.options.descending?"descending":"ascending",a.setAttribute("aria-sort",o)),!(h.table.rows.length<2)){if(!n){for(;l.length<3&&m<h.table.tBodies[0].rows.length;)k=d(h.table.tBodies[0].rows[m].cells[i]),k=k.trim(),k.length>0&&l.push(k),m++;if(!l)return}for(m=0;m<b.length;m++)if(k=b[m],n){if(k.name===n){j=k.sort;break}}else if(l.every(k.pattern)){j=k.sort;break}for(h.col=i,m=0;m<h.table.tBodies.length;m++){var p,q=[],r={},s=0,t=0;if(!(h.table.tBodies[m].rows.length<2)){for(p=0;p<h.table.tBodies[m].rows.length;p++)k=h.table.tBodies[m].rows[p],"none"===k.getAttribute("data-sort-method")?r[s]=k:q.push({tr:k,td:d(k.cells[h.col]),index:s}),s++;for("descending"===o?q.sort(f(j,!0)):(q.sort(f(j,!1)),q.reverse()),p=0;p<s;p++)r[p]?(k=r[p],t++):k=q[p-t].tr,h.table.tBodies[m].appendChild(k)}}h.table.dispatchEvent(c("afterSort"))}},refresh:function(){void 0!==this.current&&this.sortTable(this.current,!0)}},"undefined"!=typeof module&&module.exports?module.exports=a:window.Tablesort=a}();
|
||||
*/
|
||||
! function() {
|
||||
function a(b, c) {
|
||||
if (!(this instanceof a)) return new a(b, c);
|
||||
if (!b || "TABLE" !== b.tagName) throw new Error("Element must be a table");
|
||||
this.init(b, c || {})
|
||||
}
|
||||
var b = [],
|
||||
c = function(a) {
|
||||
var b;
|
||||
return window.CustomEvent && "function" == typeof window.CustomEvent ? b = new CustomEvent(a) : (b = document.createEvent("CustomEvent"), b.initCustomEvent(a, !1, !1, void 0)), b
|
||||
},
|
||||
d = function(a) {
|
||||
return a.getAttribute("data-sort") || a.textContent || a.innerText || ""
|
||||
},
|
||||
e = function(a, b) {
|
||||
return a = a.trim().toLowerCase(), b = b.trim().toLowerCase(), a === b ? 0 : a < b ? 1 : -1
|
||||
},
|
||||
f = function(a, b) {
|
||||
return function(c, d) {
|
||||
var e = a(c.td, d.td);
|
||||
return 0 === e ? b ? d.index - c.index : c.index - d.index : e
|
||||
}
|
||||
};
|
||||
a.extend = function(a, c, d) {
|
||||
if ("function" != typeof c || "function" != typeof d) throw new Error("Pattern and sort must be a function");
|
||||
b.push({
|
||||
name: a,
|
||||
pattern: c,
|
||||
sort: d
|
||||
})
|
||||
}, a.prototype = {
|
||||
init: function(a, b) {
|
||||
var c, d, e, f, g = this;
|
||||
if (g.table = a, g.thead = !1, g.options = b, a.rows && a.rows.length > 0)
|
||||
if (a.tHead && a.tHead.rows.length > 0) {
|
||||
for (e = 0; e < a.tHead.rows.length; e++)
|
||||
if ("thead" === a.tHead.rows[e].getAttribute("data-sort-method")) {
|
||||
c = a.tHead.rows[e];
|
||||
break
|
||||
} c || (c = a.tHead.rows[a.tHead.rows.length - 1]), g.thead = !0
|
||||
} else c = a.rows[0];
|
||||
if (c) {
|
||||
var h = function() {
|
||||
g.current && g.current !== this && g.current.removeAttribute("aria-sort"), g.current = this, g.sortTable(this)
|
||||
};
|
||||
for (e = 0; e < c.cells.length; e++) f = c.cells[e], f.setAttribute("role", "columnheader"), "none" !== f.getAttribute("data-sort-method") && (f.tabindex = 0, f.addEventListener("click", h, !1), null !== f.getAttribute("data-sort-default") && (d = f));
|
||||
d && (g.current = d, g.sortTable(d))
|
||||
}
|
||||
},
|
||||
sortTable: function(a, g) {
|
||||
var h = this,
|
||||
i = a.cellIndex,
|
||||
j = e,
|
||||
k = "",
|
||||
l = [],
|
||||
m = h.thead ? 0 : 1,
|
||||
n = a.getAttribute("data-sort-method"),
|
||||
o = a.getAttribute("aria-sort");
|
||||
if (h.table.dispatchEvent(c("beforeSort")), g || (o = "ascending" === o ? "descending" : "descending" === o ? "ascending" : h.options.descending ? "descending" : "ascending", a.setAttribute("aria-sort", o)), !(h.table.rows.length < 2)) {
|
||||
if (!n) {
|
||||
for (; l.length < 3 && m < h.table.tBodies[0].rows.length;) k = d(h.table.tBodies[0].rows[m].cells[i]), k = k.trim(), k.length > 0 && l.push(k), m++;
|
||||
if (!l) return
|
||||
}
|
||||
for (m = 0; m < b.length; m++)
|
||||
if (k = b[m], n) {
|
||||
if (k.name === n) {
|
||||
j = k.sort;
|
||||
break
|
||||
}
|
||||
} else if (l.every(k.pattern)) {
|
||||
j = k.sort;
|
||||
break
|
||||
}
|
||||
for (h.col = i, m = 0; m < h.table.tBodies.length; m++) {
|
||||
var p, q = [],
|
||||
r = {},
|
||||
s = 0,
|
||||
t = 0;
|
||||
if (!(h.table.tBodies[m].rows.length < 2)) {
|
||||
for (p = 0; p < h.table.tBodies[m].rows.length; p++) k = h.table.tBodies[m].rows[p], "none" === k.getAttribute("data-sort-method") ? r[s] = k : q.push({
|
||||
tr: k,
|
||||
td: d(k.cells[h.col]),
|
||||
index: s
|
||||
}), s++;
|
||||
for ("descending" === o ? q.sort(f(j, !0)) : (q.sort(f(j, !1)), q.reverse()), p = 0; p < s; p++) r[p] ? (k = r[p], t++) : k = q[p - t].tr, h.table.tBodies[m].appendChild(k)
|
||||
}
|
||||
}
|
||||
h.table.dispatchEvent(c("afterSort"))
|
||||
}
|
||||
},
|
||||
refresh: function() {
|
||||
void 0 !== this.current && this.sortTable(this.current, !0)
|
||||
}
|
||||
}, "undefined" != typeof module && module.exports ? module.exports = a : window.Tablesort = a
|
||||
}();
|
||||
|
||||
@@ -24,8 +24,10 @@
|
||||
<table class="bordered" id="addressTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="no-sort"></th>
|
||||
<th scope="col">Name</th>
|
||||
<th scope="col">Address</th>
|
||||
<th scope="col"class="no-sort"></th>
|
||||
<th scope="col" data-sort-method='number'>Balance</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
Reference in New Issue
Block a user