tablesorter/js/jquery.tablesorter.min.js

6 lines
31 KiB
JavaScript
Raw Normal View History

2012-03-18 14:02:49 +00:00
/*!
2014-10-27 00:11:12 +00:00
* TableSorter 2.18.0 min - Client-side table sorting with ease!
2011-06-22 23:19:27 +00:00
* Copyright (c) 2007 Christian Bach
*/
2014-10-27 00:11:12 +00:00
!function(k){k.extend({tablesorter:new function(){function f(){var b=arguments[0],a=1<arguments.length?Array.prototype.slice.call(arguments):b;if("undefined"!==typeof console&&"undefined"!==typeof console.log)console[/error/i.test(b)?"error":/warn/i.test(b)?"warn":"log"](a);else alert(a)}function t(b,a){f(b+" ("+((new Date).getTime()-a.getTime())+"ms)")}function m(b){for(var a in b)return!1;return!0}function u(b,a,c){if(!a)return"";var e,d=b.config,l=d.textExtraction||"",f="",f="basic"===l?k(a).attr(d.textAttribute)|| a.textContent||a.innerText||k(a).text()||"":"function"===typeof l?l(a,b,c):"function"===typeof(e=g.getColumnData(b,l,c))?e(a,b,c):a.textContent||a.innerText||k(a).text()||"";return k.trim(f)}function q(b){var a,c,e=b.config,d=e.$tbodies=e.$table.children("tbody:not(."+e.cssInfoBlock+")"),l,w,h,n,p,v,m,r,s,C=0,y="",z=d.length;if(0===z)return e.debug?f("Warning: *Empty table!* Not building a parser cache"):"";e.debug&&(s=new Date,f("Detecting parsers for each column"));a=[];for(c=[];C<z;){l=d[C].rows; if(l[C])for(w=e.columns,h=0;h<w;h++){n=e.$headers.filter('[data-column="'+h+'"]:last');p=g.getColumnData(b,e.headers,h);r=g.getParserById(g.getData(n,p,"extractor"));m=g.getParserById(g.getData(n,p,"sorter"));v="false"===g.getData(n,p,"parser");e.empties[h]=(g.getData(n,p,"empty")||e.emptyTo||(e.emptyToBottom?"bottom":"top")).toLowerCase();e.strings[h]=(g.getData(n,p,"string")||e.stringTo||"max").toLowerCase();v&&(m=g.getParserById("no-parser"));r||(r=!1);if(!m)a:{n=b;p=l;v=-1;m=h;for(var B=void 0, K=void 0,L=g.parsers.length,x=!1,A="",B=!0;""===A&&B;)v++,p[v]?(x=p[v].cells[m],A=u(n,x,m),K=k(x),n.config.debug&&f("Checking if value was empty on row "+v+", column: "+m+': "'+A+'"')):B=!1;for(;0<=--L;)if((B=g.parsers[L])&&"text"!==B.id&&B.is&&B.is(A,n,x,K)){m=B;break a}m=g.getParserById("text")}e.debug&&(y+="column:"+h+"; extractor:"+r.id+"; parser:"+m.id+"; string:"+e.strings[h]+"; empty: "+e.empties[h]+"\n");c[h]=m;a[h]=r}C+=c.length?z:1}e.debug&&(f(y?y:"No parsers detected"),t("Completed detecting parsers", s));e.parsers=c;e.extractors=a}function z(b){var a,c,e,d,l,w,h,n,p,v,m,r=b.config,s=r.$table.children("tbody"),q=r.extractors,y=r.parsers;r.cache={};r.totalRows=0;if(!y)return r.debug?f("Warning: *Empty table!* Not building a cache"):"";r.debug&&(n=new Date);r.showProcessing&&g.isProcessing(b,!0);for(l=0;l<s.length;l++)if(m=[],a=r.cache[l]={normalized:[]},!s.eq(l).hasClass(r.cssInfoBlock)){p=s[l]&&s[l].rows.length||0;for(e=0;e<p;++e)if(v={child:[]},w=k(s[l].rows[e]),h=[],w.hasClass(r.cssChildRow)&& 0!==e)c=a.normalized.length-1,a.normalized[c][r.columns].$row=a.normalized[c][r.columns].$row.add(w),w.prev().hasClass(r.cssChildRow)||w.prev().addClass(g.css.cssHasChild),v.child[c]=k.trim(w[0].textContent||w[0].innerText||w.text()||"");else{v.$row=w;v.order=e;for(d=0;d<r.columns;++d)"undefined"===typeof y[d]?r.debug&&f("No parser found for cell:",w[0].cells[d],"does it have a header?"):(c=u(b,w[0].cells[d],d),c="undefined"===typeof q[d].id?c:q[d].format(c,b,w[0].cells[d],d),c="no-parser"===y[d].id? "":y[d].format(c,b,w[0].cells[d],d),h.push(r.ignoreCase&&"string"===typeof c?c.toLowerCase():c),"numeric"===(y[d].type||"").toLowerCase()&&(m[d]=Math.max(Math.abs(c)||0,m[d]||0)));h[r.columns]=v;a.normalized.push(h)}a.colMax=m;r.totalRows+=a.normalized.length}r.showProcessing&&g.isProcessing(b);r.debug&&t("Building cache for "+p+" rows",n)}function A(b,a){var c=b.config,e=c.widgetOptions,d=b.tBodies,l=[],f=c.cache,h,n,p,v,q,r;if(m(f))return c.appender?c.appender(b,l):b.isUpdating?c.$table.trigger("updateComplete", b):"";c.debug&&(r=new Date);for(q=0;q<d.length;q++)if(h=k(d[q]),h.length&&!h.hasClass(c.cssInfoBlock)){p=g.processTbody(b,h,!0);h=f[q].normalized;n=h.length;for(v=0;v<n;v++)l.push(h[v][c.columns].$row),c.appender&&(!c.pager||c.pager.removeRows&&e.pager_removeRows||c.pager.ajax)||p.append(h[v][c.columns].$row);g.processTbody(b,p,!1)}c.appender&&c.appender(b,l);c.debug&&t("Rebuilt table",r);a||c.appender||g.applyWidget(b);b.isUpdating&&c.$table.trigger("updateComplete",b)}function E(b){return/^d/i.test(b)|| 1==