tablesorter/js/jquery.tablesorter.min.js

6 lines
31 KiB
JavaScript
Raw Normal View History

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