mirror of
https://github.com/Mottie/tablesorter.git
synced 2024-11-15 23:54:22 +00:00
18 lines
28 KiB
JavaScript
18 lines
28 KiB
JavaScript
/*! tableSorter 2.16+ widgets - updated 4/23/2014 (v2.16.0) */
|
|
;(function(k){
|
|
var c=k.tablesorter=k.tablesorter||{};
|
|
c.themes={bootstrap:{table:"table table-bordered table-striped",caption:"caption",header:"bootstrap-header",footerRow:"",footerCells:"",icons:"",sortNone:"bootstrap-icon-unsorted",sortAsc:"icon-chevron-up glyphicon glyphicon-chevron-up",sortDesc:"icon-chevron-down glyphicon glyphicon-chevron-down",active:"",hover:"",filterRow:"",even:"",odd:""},jui:{table:"ui-widget ui-widget-content ui-corner-all",caption:"ui-widget-content ui-corner-all",header:"ui-widget-header ui-corner-all ui-state-default", footerRow:"",footerCells:"",icons:"ui-icon",sortNone:"ui-icon-carat-2-n-s",sortAsc:"ui-icon-carat-1-n",sortDesc:"ui-icon-carat-1-s",active:"ui-state-active",hover:"ui-state-hover",filterRow:"",even:"ui-widget-content",odd:"ui-state-default"}};k.extend(c.css,{filterRow:"tablesorter-filter-row",filter:"tablesorter-filter",wrapper:"tablesorter-wrapper",resizer:"tablesorter-resizer",grip:"tablesorter-resizer-grip",sticky:"tablesorter-stickyHeader",stickyVis:"tablesorter-sticky-visible"});
|
|
c.storage=function(b, a,e,c){b=k(b)[0];var d,g,h=!1;d={};g=b.config;var m=k(b);b=c&&c.id||m.attr(c&&c.group||"data-table-group")||b.id||k(".tablesorter").index(m);c=c&&c.url||m.attr(c&&c.page||"data-table-page")||g&&g.fixedUrl||window.location.pathname;if("localStorage"in window)try{window.localStorage.setItem("_tmptest","temp"),h=!0,window.localStorage.removeItem("_tmptest")}catch(q){}k.parseJSON&&(h?d=k.parseJSON(localStorage[a]||"{}"):(g=document.cookie.split(/[;\s|=]/),d=k.inArray(a,g)+1,d=0!==d?k.parseJSON(g[d]|| "{}"):{}));if((e||""===e)&&window.JSON&&JSON.hasOwnProperty("stringify"))d[c]||(d[c]={}),d[c][b]=e,h?localStorage[a]=JSON.stringify(d):(e=new Date,e.setTime(e.getTime()+31536E6),document.cookie=a+"="+JSON.stringify(d).replace(/\"/g,'"')+"; expires="+e.toGMTString()+"; path=/");else return d&&d[c]?d[c][b]:""};
|
|
c.addHeaderResizeEvent=function(b,a,e){var c;e=k.extend({},{timer:250},e);var d=b.config,g=d.widgetOptions,h=function(a){g.resize_flag=!0;c=[];d.$headers.each(function(){var a=k(this),b=a.data("savedSizes")|| [0,0],e=this.offsetWidth,d=this.offsetHeight;if(e!==b[0]||d!==b[1])a.data("savedSizes",[e,d]),c.push(this)});c.length&&!1!==a&&d.$table.trigger("resize",[c]);g.resize_flag=!1};h(!1);clearInterval(g.resize_timer);if(a)return g.resize_flag=!1;g.resize_timer=setInterval(function(){g.resize_flag||h()},e.timer)};
|
|
c.addWidget({id:"uitheme",priority:10,format:function(b,a,e){var f,d,g,h,m=c.themes,q=a.$table,p=a.$headers,n=a.theme||"jui",l=m[n]||m.jui,v=l.sortNone+" "+l.sortDesc+" "+l.sortAsc;a.debug&&(f= new Date);q.hasClass("tablesorter-"+n)&&a.theme!==n&&b.hasInitialized||(""!==l.even&&(e.zebra[0]+=" "+l.even),""!==l.odd&&(e.zebra[1]+=" "+l.odd),q.find("caption").addClass(l.caption),b=q.removeClass(""===a.theme?"":"tablesorter-"+a.theme).addClass("tablesorter-"+n+" "+l.table).find("tfoot"),b.length&&b.find("tr").addClass(l.footerRow).children("th, td").addClass(l.footerCells),p.addClass(l.header).not(".sorter-false").bind("mouseenter.tsuitheme mouseleave.tsuitheme",function(a){k(this)["mouseenter"=== a.type?"addClass":"removeClass"](l.hover)}),p.find("."+c.css.wrapper).length||p.wrapInner('<div class="'+c.css.wrapper+'" style="position:relative;height:100%;width:100%"></div>'),a.cssIcon&&p.find("."+c.css.icon).addClass(l.icons),q.hasClass("hasFilters")&&p.find("."+c.css.filterRow).addClass(l.filterRow));k.each(p,function(){g=k(this);h=c.css.icon?g.find("."+c.css.icon):g;this.sortDisabled?(g.removeClass(v),h.removeClass(v+" "+l.icons)):(d=g.hasClass(c.css.sortAsc)?l.sortAsc:g.hasClass(c.css.sortDesc)? l.sortDesc:g.hasClass(c.css.header)?l.sortNone:"",g[d===l.sortNone?"removeClass":"addClass"](l.active),h.removeClass(v).addClass(d))});a.debug&&c.benchmark("Applying "+n+" theme",f)},remove:function(b,a,e){b=a.$table;a=a.theme||"jui";e=c.themes[a]||c.themes.jui;var f=b.children("thead").children(),d=e.sortNone+" "+e.sortDesc+" "+e.sortAsc;b.removeClass("tablesorter-"+a+" "+e.table).find(c.css.header).removeClass(e.header);f.unbind("mouseenter.tsuitheme mouseleave.tsuitheme").removeClass(e.hover+" "+ d+" "+e.active).find("."+c.css.filterRow).removeClass(e.filterRow);f.find("."+c.css.icon).removeClass(e.icons)}});
|
|
c.addWidget({id:"columns",priority:30,options:{columns:["primary","secondary","tertiary"]},format:function(b,a,e){var f,d,g,h,m,q,p,n,l=a.$table,v=a.$tbodies,s=a.sortList,u=s.length,w=e&&e.columns||["primary","secondary","tertiary"],x=w.length-1;p=w.join(" ");a.debug&&(f=new Date);for(g=0;g<v.length;g++)d=c.processTbody(b,v.eq(g),!0),h=d.children("tr"),h.each(function(){m=k(this);if("none"!== this.style.display&&(q=m.children().removeClass(p),s&&s[0]&&(q.eq(s[0][0]).addClass(w[0]),1<u)))for(n=1;n<u;n++)q.eq(s[n][0]).addClass(w[n]||w[x])}),c.processTbody(b,d,!1);b=!1!==e.columns_thead?["thead tr"]:[];!1!==e.columns_tfoot&&b.push("tfoot tr");if(b.length&&(h=l.find(b.join(",")).children().removeClass(p),u))for(n=0;n<u;n++)h.filter('[data-column="'+s[n][0]+'"]').addClass(w[n]||w[x]);a.debug&&c.benchmark("Applying Columns widget",f)},remove:function(b,a,e){var f=a.$tbodies,d=(e.columns||["primary", "secondary","tertiary"]).join(" ");a.$headers.removeClass(d);a.$table.children("tfoot").children("tr").children("th, td").removeClass(d);for(a=0;a<f.length;a++)e=c.processTbody(b,f.eq(a),!0),e.children("tr").each(function(){k(this).children().removeClass(d)}),c.processTbody(b,e,!1)}});
|
|
c.addWidget({id:"filter",priority:50,options:{filter_childRows:!1,filter_columnFilters:!0,filter_cssFilter:"",filter_external:"",filter_filteredRow:"filtered",filter_formatter:null,filter_functions:null,filter_hideEmpty:!0, filter_hideFilters:!1,filter_ignoreCase:!0,filter_liveSearch:!0,filter_onlyAvail:"filter-onlyAvail",filter_placeholder:{search:"",select:""},filter_reset:null,filter_saveFilters:!1,filter_searchDelay:300,filter_selectSource:null,filter_startsWith:!1,filter_useParsedData:!1,filter_serversideFiltering:!1,filter_defaultAttrib:"data-value"},format:function(b,a,e){a.$table.hasClass("hasFilters")||c.filter.init(b,a,e)},remove:function(b,a,e){var f,d=a.$tbodies;a.$table.removeClass("hasFilters").unbind("addRows updateCell update updateRows updateComplete appendCache filterReset filterEnd search ".split(" ").join(a.namespace+ "filter ")).find("."+c.css.filterRow).remove();for(a=0;a<d.length;a++)f=c.processTbody(b,d.eq(a),!0),f.children().removeClass(e.filter_filteredRow).show(),c.processTbody(b,f,!1);e.filter_reset&&k(document).undelegate(e.filter_reset,"click.tsfilter")}});
|
|
c.filter={regex:{regex:/^\/((?:\\\/|[^\/])+)\/([mig]{0,3})?$/,child:/tablesorter-childRow/,filtered:/filtered/,type:/undefined|number/,exact:/(^[\"|\'|=]+)|([\"|\'|=]+$)/g,nondigit:/[^\w,. \-()]/g,operators:/[<>=]/g},types:{regex:function(b,a,e,f){if(c.filter.regex.regex.test(a)){var d; b=c.filter.regex.regex.exec(a);try{d=RegExp(b[1],b[2]).test(f)}catch(g){d=!1}return d}return null},operators:function(b,a,e,f,d,g,h,k,q){if(/^[<>]=?/.test(a)){var p,n;p=h.config;b=c.formatFloat(a.replace(c.filter.regex.operators,""),h);e=p.parsers[g];k=b;if(q[g]||"numeric"===e.type)p=e.format(""+a.replace(c.filter.regex.operators,""),h,p.$headers.eq(g),g),b="number"!==typeof b||""===p||isNaN(p)?b:p;p=!q[g]&&"numeric"!==e.type||isNaN(b)||!d?isNaN(f)?c.formatFloat(f.replace(c.filter.regex.nondigit, ""),h):c.formatFloat(f,h):d;/>/.test(a)&&(n=/>=/.test(a)?p>=b:p>b);/</.test(a)&&(n=/<=/.test(a)?p<=b:p<b);n||""!==k||(n=!0);return n}return null},exact:function(b,a,e,f,d,g,h,m,q,p){return c.filter.regex.exact.test(a)?(b=a.replace(c.filter.regex.exact,""),p?0<=k.inArray(b,p):b==f):null},notMatch:function(b,a,e,c,d,g,h,m){return/^\!/.test(a)?(a=a.replace("!",""),b=c.search(k.trim(a)),""===a?!0:!(m.filter_startsWith?0===b:0<=b)):null},and:function(b,a,e,c){if(/\s+(AND|&&)\s+/g.test(b)){b=a.split(/(?:\s+(?:and|&&)\s+)/g); a=0<=c.search(k.trim(b[0]));for(e=b.length-1;a&&e;)a=a&&0<=c.search(k.trim(b[e])),e--;return a}return null},range:function(b,a,e,f,d,g,h,k,q){if(/\s+(-|to)\s+/.test(a)){b=h.config;var p=a.split(/(?: - | to )/);e=c.formatFloat(p[0].replace(c.filter.regex.nondigit,""),h);k=c.formatFloat(p[1].replace(c.filter.regex.nondigit,""),h);if(q[g]||"numeric"===b.parsers[g].type)a=b.parsers[g].format(""+p[0],h,b.$headers.eq(g),g),e=""===a||isNaN(a)?e:a,a=b.parsers[g].format(""+p[1],h,b.$headers.eq(g),g),k=""=== a||isNaN(a)?k:a;a=!q[g]&&"numeric"!==b.parsers[g].type||isNaN(e)||isNaN(k)?isNaN(f)?c.formatFloat(f.replace(c.filter.regex.nondigit,""),h):c.formatFloat(f,h):d;e>k&&(f=e,e=k,k=f);return a>=e&&a<=k||""===e||""===k}return null},wild:function(b,a,c,f,d,g,h,m,q,p){return/[\?|\*]/.test(a)||/\s+OR\s+/i.test(b)?(b=h.config,a=a.replace(/\s+OR\s+/gi,"|"),!b.$headers.filter('[data-column="'+g+'"]:last').hasClass("filter-match")&&/\|/.test(a)&&(a=k.isArray(p)?"("+a+")":"^("+a+")$"),RegExp(a.replace(/\?/g,"\\S{1}").replace(/\*/g, "\\S*")).test(f)):null},fuzzy:function(b,a,c,f){if(/^~/.test(a)){b=0;c=f.length;var d=a.slice(1);for(a=0;a<c;a++)f[a]===d[b]&&(b+=1);return b===d.length?!0:!1}return null}},init:function(b,a,e){var f,d,g,h,m,q;a.debug&&(q=new Date);a.$table.addClass("hasFilters");c.filter.regex.child=RegExp(a.cssChildRow);c.filter.regex.filtered=RegExp(e.filter_filteredRow);!1!==e.filter_columnFilters&&a.$headers.filter(".filter-false").length!==a.$headers.length&&c.filter.buildRow(b,a,e);a.$table.bind("addRows updateCell update updateRows updateComplete appendCache filterReset filterEnd search ".split(" ").join(a.namespace+ "filter "),function(d,g){a.$table.find("."+c.css.filterRow).toggle(!(e.filter_hideEmpty&&k.isEmptyObject(a.cache)));/(search|filter)/.test(d.type)||(d.stopPropagation(),c.filter.buildDefault(b,!0));"filterReset"===d.type?c.filter.searching(b,[]):"filterEnd"===d.type?c.filter.buildDefault(b,!0):(g="search"===d.type?g:"updateComplete"===d.type?a.$table.data("lastSearch"):"",/(update|add)/.test(d.type)&&"updateComplete"!==d.type&&(a.lastCombinedFilter=null),c.filter.searching(b,g,!0));return!1});e.filter_reset&& (e.filter_reset instanceof k?e.filter_reset.click(function(){a.$table.trigger("filterReset")}):k(e.filter_reset).length&&k(document).undelegate(e.filter_reset,"click.tsfilter").delegate(e.filter_reset,"click.tsfilter",function(){a.$table.trigger("filterReset")}));if(e.filter_functions)for(h in e.filter_functions)if(e.filter_functions.hasOwnProperty(h)&&"string"===typeof h)if(g=a.$headers.filter('[data-column="'+h+'"]:last'),f="",!0===e.filter_functions[h]&&!g.hasClass("filter-false"))c.filter.buildSelect(b, h);else if("string"===typeof h&&!g.hasClass("filter-false")){for(d in e.filter_functions[h])"string"===typeof d&&(f+=""===f?'<option value="">'+(g.data("placeholder")||g.attr("data-placeholder")||e.filter_placeholder.select||"")+"</option>":"",f+='<option value="'+d+'">'+d+"</option>");a.$table.find("thead").find("select."+c.css.filter+'[data-column="'+h+'"]').append(f)}c.filter.buildDefault(b,!0);c.filter.bindSearch(b,a.$table.find("."+c.css.filter),!0);e.filter_external&&c.filter.bindSearch(b,e.filter_external); e.filter_hideFilters&&c.filter.hideFilters(b,a);a.showProcessing&&a.$table.bind("filterStart"+a.namespace+"filter filterEnd"+a.namespace+"filter",function(d,e){g=e?a.$table.find("."+c.css.header).filter("[data-column]").filter(function(){return""!==e[k(this).data("column")]}):"";c.isProcessing(b,"filterStart"===d.type,e?g:"")});a.debug&&c.benchmark("Applying Filter widget",q);a.$table.bind("tablesorter-initialized pagerInitialized",function(){m=c.filter.setDefaults(b,a,e)||[];m.length&&c.setFilters(b, m,!0);a.$table.trigger("filterFomatterUpdate");c.filter.checkFilters(b,m)});e.filter_initialized=!0;a.$table.trigger("filterInit")},setDefaults:function(b,a,e){var f,d=c.getFilters(b)||[];e.filter_saveFilters&&c.storage&&(f=c.storage(b,"tablesorter-filters")||[],(b=k.isArray(f))&&""===f.join("")||!b||(d=f));if(""===d.join(""))for(b=0;b<a.columns;b++)d[b]=a.$headers.filter('[data-column="'+b+'"]:last').attr(e.filter_defaultAttrib)||d[b];a.$table.data("lastSearch",d);return d},buildRow:function(b,a, e){var f,d,g,h=a.columns;d='<tr class="'+c.css.filterRow+'">';for(b=0;b<h;b++)d+="<td></td>";a.$filters=k(d+"</tr>").appendTo(a.$table.children("thead").eq(0)).find("td");for(b=0;b<h;b++)f=a.$headers.filter('[data-column="'+b+'"]:last'),d=e.filter_functions&&e.filter_functions[b]&&"function"!==typeof e.filter_functions[b]||f.hasClass("filter-select"),g=c.getData?"false"===c.getData(f[0],a.headers[b],"filter"):a.headers[b]&&a.headers[b].hasOwnProperty("filter")&&!1===a.headers[b].filter||f.hasClass("filter-false"), d?d=k("<select>").appendTo(a.$filters.eq(b)):(e.filter_formatter&&k.isFunction(e.filter_formatter[b])?((d=e.filter_formatter[b](a.$filters.eq(b),b))&&0===d.length&&(d=a.$filters.eq(b).children("input")),d&&(0===d.parent().length||d.parent().length&&d.parent()[0]!==a.$filters[b])&&a.$filters.eq(b).append(d)):d=k('<input type="search">').appendTo(a.$filters.eq(b)),d&&d.attr("placeholder",f.data("placeholder")||f.attr("data-placeholder")||e.filter_placeholder.search||"")),d&&(f=(k.isArray(e.filter_cssFilter)? "undefined"!==typeof e.filter_cssFilter[b]?e.filter_cssFilter[b]||"":"":e.filter_cssFilter)||"",d.addClass(c.css.filter+" "+f).attr("data-column",b),g&&(d.attr("placeholder","").addClass("disabled")[0].disabled=!0))},bindSearch:function(b,a,e){b=k(b)[0];a=k(a);if(a.length){var f=b.config,d=f.widgetOptions,g=d.filter_$externalFilters;!0!==e&&(d.filter_$anyMatch=a.filter('[data-column="all"]'),d.filter_$externalFilters=g&&g.length?d.filter_$externalFilters.add(a):a,c.setFilters(b,f.$table.data("lastSearch")|| [],!1===e));a.attr("data-lastSearchTime",(new Date).getTime()).unbind(["keyup","search","change",""].join(f.namespace+"filter ")).bind(["keyup","search","change",""].join(f.namespace+"filter "),function(a){k(this).attr("data-lastSearchTime",(new Date).getTime());if(27===a.which)this.value="";else if("number"===typeof d.filter_liveSearch&&this.value.length<d.filter_liveSearch&&""!==this.value||"keyup"===a.type&&(32>a.which&&8!==a.which&&!0===d.filter_liveSearch&&13!==a.which||37<=a.which&&40>=a.which|| 13!==a.which&&!1===d.filter_liveSearch))return;c.filter.searching(b,!0,!0)});f.$table.bind("filterReset",function(){a.val("")})}},checkFilters:function(b,a,e){var f=b.config,d=f.widgetOptions,g=k.isArray(a),h=g?a:c.getFilters(b,!0),m=(h||[]).join("");g&&c.setFilters(b,h,!1,!0!==e);d.filter_hideFilters&&f.$table.find("."+c.css.filterRow).trigger(""===m?"mouseleave":"mouseenter");if(f.lastCombinedFilter!==m||!1===a)if(!1===a&&(f.lastCombinedFilter=null),f.$table.trigger("filterStart",[h]),f.showProcessing)setTimeout(function(){c.filter.findRows(b, h,m);return!1},30);else return c.filter.findRows(b,h,m),!1},hideFilters:function(b,a){var e,f,d;a.$table.find("."+c.css.filterRow).addClass("hideme").bind("mouseenter mouseleave",function(b){e=k(this);clearTimeout(d);d=setTimeout(function(){/enter|over/.test(b.type)?e.removeClass("hideme"):k(document.activeElement).closest("tr")[0]!==e[0]&&""===a.lastCombinedFilter&&e.addClass("hideme")},200)}).find("input, select").bind("focus blur",function(a){f=k(this).closest("tr");clearTimeout(d);d=setTimeout(function(){if(""=== c.getFilters(b).join(""))f["focus"===a.type?"removeClass":"addClass"]("hideme")},200)})},findRows:function(b,a,e){if(b.config.lastCombinedFilter!==e){var f,d,g,h,m,q,p,n,l,v,s,u,w,x,A,z,y,D,B,C,L,E,G,H,I,J,M,r=b.config,t=r.widgetOptions,N=r.columns,K=r.$table.children("tbody"),O=["range","notMatch","operators"],F=r.$headers.map(function(a){return r.parsers&&r.parsers[a]&&r.parsers[a].parsed||(c.getData?"parsed"===c.getData(r.$headers.filter('[data-column="'+a+'"]:last'),r.headers[a],"filter"):k(this).hasClass("filter-parsed"))}).get(); r.debug&&(L=new Date);for(q=0;q<K.length;q++)if(!K.eq(q).hasClass(r.cssInfoBlock||c.css.info)){p=c.processTbody(b,K.eq(q),!0);l=r.columns;g=k(k.map(r.cache[q].normalized,function(a){return a[l].$row.get()}));d=g.length;if(""===e||t.filter_serversideFiltering)g.removeClass(t.filter_filteredRow).not("."+r.cssChildRow).show();else{D=!0;A=r.lastSearch||r.$table.data("lastSearch")||[];k.each(a,function(a,b){D=0===(b||"").indexOf(A[a])&&D&&!/(\s+or\s+|\|)/g.test(b||"")});D&&0===g.not("."+t.filter_filteredRow).length&& (D=!1);if(t.filter_$anyMatch&&t.filter_$anyMatch.length||a[r.columns])E=t.filter_$anyMatch&&t.filter_$anyMatch.val()||a[r.columns]||"",r.sortLocaleCompare&&(E=c.replaceAccents(E)),G=E.toLowerCase();for(m=h=0;m<d;m++)if(v=g[m].className,!(c.filter.regex.child.test(v)||D&&c.filter.regex.filtered.test(v))){C=!0;v=g.eq(m).nextUntil("tr:not(."+r.cssChildRow+")");s=v.length&&t.filter_childRows?v.text():"";s=t.filter_ignoreCase?s.toLocaleLowerCase():s;n=g.eq(m).children();E&&(H=n.map(function(a){F[a]?a= r.cache[q].normalized[h][a]:(a=t.filter_ignoreCase?k(this).text().toLowerCase():k(this).text(),r.sortLocaleCompare&&(a=c.replaceAccents(a)));return a}).get(),I=H.join(" "),J=I.toLowerCase(),M=r.cache[q].normalized[h].slice(0,-1).join(" "),B=null,k.each(c.filter.types,function(a,c){if(0>k.inArray(a,O)&&(z=c(E,G,I,J,M,N,b,t,F,H),null!==z))return B=z,!1}),C=null!==B?B:0<=(J+s).indexOf(G));for(l=0;l<N;l++)a[l]&&(f=r.cache[q].normalized[h][l],t.filter_useParsedData||F[l]?u=f:(u=k.trim(n.eq(l).text()), u=r.sortLocaleCompare?c.replaceAccents(u):u),w=!c.filter.regex.type.test(typeof u)&&t.filter_ignoreCase?u.toLocaleLowerCase():u,y=C,a[l]=r.sortLocaleCompare?c.replaceAccents(a[l]):a[l],x=t.filter_ignoreCase?(a[l]||"").toLocaleLowerCase():a[l],t.filter_functions&&t.filter_functions[l]?!0===t.filter_functions[l]?y=r.$headers.filter('[data-column="'+l+'"]:last').hasClass("filter-match")?0<=w.search(x):a[l]===u:"function"===typeof t.filter_functions[l]?y=t.filter_functions[l](u,f,a[l],l,g.eq(m)):"function"=== typeof t.filter_functions[l][a[l]]&&(y=t.filter_functions[l][a[l]](u,f,a[l],l,g.eq(m))):(B=null,k.each(c.filter.types,function(c,d){z=d(a[l],x,u,w,f,l,b,t,F);if(null!==z)return B=z,!1}),null!==B?y=B:(u=(w+s).indexOf(x),y=!t.filter_startsWith&&0<=u||t.filter_startsWith&&0===u)),C=y?C:!1);g.eq(m).toggle(C).toggleClass(t.filter_filteredRow,!C);v.length&&v.toggleClass(t.filter_filteredRow,!C);h++}}c.processTbody(b,p,!1)}r.lastCombinedFilter=e;r.lastSearch=a;r.$table.data("lastSearch",a);t.filter_saveFilters&& c.storage&&c.storage(b,"tablesorter-filters",a);r.debug&&c.benchmark("Completed filter widget search",L);r.$table.trigger("filterEnd");setTimeout(function(){r.$table.trigger("applyWidgets")},0)}},getOptionSource:function(b,a,e){var f=!1,d=b.config.widgetOptions.filter_selectSource;k.isFunction(d)?f=d(b,a,e):"object"===k.type(d)&&d.hasOwnProperty(a)&&(f=d[a](b,a,e));!1===f&&(f=c.filter.getOptions(b,a,e));f=k.grep(f,function(a,b){return k.inArray(a,f)===b});return c.sortNatural?f.sort(function(a,b){return c.sortNatural(a, b)}):f.sort(!0)},getOptions:function(b,a,c){var f,d,g,h,m=b.config,q=m.widgetOptions,p=m.$table.children("tbody"),n=[];for(f=0;f<p.length;f++)if(!p.eq(f).hasClass(m.cssInfoBlock))for(h=m.cache[f],d=m.cache[f].normalized.length,b=0;b<d;b++)g=h.row?h.row[b]:h.normalized[b][m.columns].$row[0],c&&g.className.match(q.filter_filteredRow)||(q.filter_useParsedData?n.push(""+h.normalized[b][a]):(g=g.cells[a])&&n.push(k.trim(g.textContent||g.innerText||k(g).text())));return n},buildSelect:function(b,a,e,f){if(b.config.cache&& !k.isEmptyObject(b.config.cache)){a=parseInt(a,10);var d;d=b.config;var g=d.widgetOptions,h=d.$headers.filter('[data-column="'+a+'"]:last'),h='<option value="">'+(h.data("placeholder")||h.attr("data-placeholder")||g.filter_placeholder.select||"")+"</option>",m=c.filter.getOptionSource(b,a,f),q=d.$table.find("thead").find("select."+c.css.filter+'[data-column="'+a+'"]').val();for(b=0;b<m.length;b++)f=m[b].replace(/\"/g,"""),h+=""!==m[b]?'<option value="'+f+'"'+(q===f?' selected="selected"':"")+ ">"+m[b]+"</option>":"";d=(d.$filters?d.$filters:d.$table.children("thead")).find("."+c.css.filter);g.filter_$externalFilters&&(d=d&&d.length?d.add(g.filter_$externalFilters):g.filter_$externalFilters);d.filter('select[data-column="'+a+'"]')[e?"html":"append"](h)}},buildDefault:function(b,a){var e,f,d=b.config,g=d.widgetOptions,h=d.columns;for(e=0;e<h;e++)f=d.$headers.filter('[data-column="'+e+'"]:last'),(f.hasClass("filter-select")||g.filter_functions&&!0===g.filter_functions[e])&&!f.hasClass("filter-false")&& (g.filter_functions||(g.filter_functions={}),g.filter_functions[e]=!0,c.filter.buildSelect(b,e,a,f.hasClass(g.filter_onlyAvail)))},searching:function(b,a,e){if("undefined"===typeof a||!0===a){var f=b.config.widgetOptions;clearTimeout(f.searchTimer);f.searchTimer=setTimeout(function(){c.filter.checkFilters(b,a,e)},f.filter_liveSearch?f.filter_searchDelay:10)}else c.filter.checkFilters(b,a,e)}};
|
|
c.getFilters=function(b,a,e,f){var d,g=!1,h=b?k(b)[0].config:"",m=h?h.widgetOptions:"";if(!0!==a&&m&&!m.filter_columnFilters)return k(b).data("lastSearch"); if(h&&(h.$filters&&(d=h.$filters.find("."+c.css.filter)),m.filter_$externalFilters&&(d=d&&d.length?d.add(m.filter_$externalFilters):m.filter_$externalFilters),d&&d.length))for(g=e||[],b=0;b<h.columns+1;b++)a=d.filter('[data-column="'+(b===h.columns?"all":b)+'"]'),a.length&&(a=a.sort(function(a,b){return k(b).attr("data-lastSearchTime")-k(a).attr("data-lastSearchTime")}),k.isArray(e)?(f?a.slice(1):a).val(e[b]).trigger("change.tsfilter"):(g[b]=a.val()||"",a.slice(1).val(g[b])),b===h.columns&&a.length&& (m.filter_$anyMatch=a));0===g.length&&(g=!1);return g};
|
|
c.setFilters=function(b,a,e,f){var d=b?k(b)[0].config:"";b=c.getFilters(b,!0,a,f);d&&e&&(d.lastCombinedFilter=null,c.filter.searching(d.$table[0],a,f),d.$table.trigger("filterFomatterUpdate"));return!!b};
|
|
c.addWidget({id:"stickyHeaders",priority:60,options:{stickyHeaders:"",stickyHeaders_attachTo:null,stickyHeaders_offset:0,stickyHeaders_cloneId:"-sticky",stickyHeaders_addResizeEvent:!0,stickyHeaders_includeCaption:!0,stickyHeaders_zIndex:2},format:function(b, a,e){if(!(a.$table.hasClass("hasStickyHeaders")||0<=k.inArray("filter",a.widgets)&&!a.$table.hasClass("hasFilters"))){var f,d=a.$table,g=k(e.stickyHeaders_attachTo),h=d.children("thead:first"),m=g.length?g:k(window),q=h.children("tr").not(".sticky-false").children(),p="."+c.css.headerIn,n=d.find("tfoot"),l=isNaN(e.stickyHeaders_offset)?k(e.stickyHeaders_offset):"",v=g.length?0:l.length?l.height()||0:parseInt(e.stickyHeaders_offset,10)||0,s=e.$sticky=d.clone().addClass("containsStickyHeaders").css({position:g.length? "absolute":"fixed",margin:0,top:v,left:0,visibility:"hidden",zIndex:e.stickyHeaders_zIndex?e.stickyHeaders_zIndex:2}),u=s.children("thead:first").addClass(c.css.sticky+" "+e.stickyHeaders),w,x="",A=0,z="collapse"!==d.css("border-collapse")&&!/(webkit|msie)/i.test(navigator.userAgent),y=function(){v=l.length?l.height()||0:parseInt(e.stickyHeaders_offset,10)||0;A=0;z&&(A=2*parseInt(q.eq(0).css("border-left-width"),10));s.css({left:g.length?(parseInt(g.css("padding-left"),10)||0)+parseInt(a.$table.css("padding-left"), 10)+parseInt(a.$table.css("margin-left"),10)+parseInt(d.css("border-left-width"),10):h.offset().left-m.scrollLeft()-A,width:d.width()});w.filter(":visible").each(function(b){b=q.filter(":visible").eq(b);var c=z&&k(this).attr("data-column")===""+parseInt(a.columns/2,10)?1:0;k(this).css({width:b.width()-A,height:b.height()}).find(p).width(b.find(p).width()-c)})};s.attr("id")&&(s[0].id+=e.stickyHeaders_cloneId);s.find("thead:gt(0), tr.sticky-false").hide();s.find("tbody, tfoot").remove();e.stickyHeaders_includeCaption? s.find("caption").css("margin-left","-1px"):s.find("caption").remove();w=u.children().children();s.css({height:0,width:0,padding:0,margin:0,border:0});w.find("."+c.css.resizer).remove();d.addClass("hasStickyHeaders").bind("sortEnd.tsSticky",function(){q.filter(":visible").each(function(b){f=w.filter(":visible").eq(b).attr("class",k(this).attr("class")).removeClass(c.css.processing+" "+a.cssProcessing);a.cssIcon&&f.find("."+c.css.icon).attr("class",k(this).find("."+c.css.icon).attr("class"))})}).bind("pagerComplete.tsSticky", function(){y()});c.bindEvents(b,u.children().children(".tablesorter-header"));d.after(s);m.bind("scroll.tsSticky resize.tsSticky",function(a){if(d.is(":visible")){var b=d.offset(),c=e.stickyHeaders_includeCaption?0:d.find("caption").outerHeight(!0),c=(g.length?g.offset().top:m.scrollTop())+v-c,f=d.height()-(s.height()+(n.height()||0)),b=c>b.top&&c<b.top+f?"visible":"hidden",c={visibility:b};g.length?c.top=g.scrollTop():c.left=h.offset().left-m.scrollLeft()-A;s.removeClass("tablesorter-sticky-visible tablesorter-sticky-hidden").addClass("tablesorter-sticky-"+ b).css(c);if(b!==x||"resize"===a.type)y(),x=b}});e.stickyHeaders_addResizeEvent&&c.addHeaderResizeEvent(b);d.hasClass("hasFilters")&&(d.bind("filterEnd",function(){var b=k(document.activeElement).closest("td"),b=b.parent().children().index(b);s.hasClass(c.css.stickyVis)&&(window.scrollTo(0,d.position().top),0<=b&&a.$filters.eq(b).find("a, select, input").filter(":visible").focus())}),c.filter.bindSearch(d,w.find("."+c.css.filter)));d.trigger("stickyHeadersInit")}},remove:function(b,a,e){a.$table.removeClass("hasStickyHeaders").unbind("sortEnd.tsSticky pagerComplete.tsSticky").find("."+ c.css.sticky).remove();e.$sticky&&e.$sticky.length&&e.$sticky.remove();k(".hasStickyHeaders").length||k(window).unbind("scroll.tsSticky resize.tsSticky");c.addHeaderResizeEvent(b,!1)}});
|
|
c.addWidget({id:"resizable",priority:40,options:{resizable:!0,resizable_addLastColumn:!1,resizable_widths:[]},format:function(b,a,e){if(!a.$table.hasClass("hasResizable")){a.$table.addClass("hasResizable");c.resizableReset(b,!0);var f,d,g,h,m={},q=a.$table,p=0,n=null,l=null,v=20>Math.abs(q.parent().width()-q.width()), s=function(){c.storage&&n&&l&&(m={},m[n.index()]=n.width(),m[l.index()]=l.width(),n.width(m[n.index()]),l.width(m[l.index()]),!1!==e.resizable&&c.storage(b,"tablesorter-resizable",a.$headers.map(function(){return k(this).width()}).get()));p=0;n=l=null;k(window).trigger("resize")};if(m=c.storage&&!1!==e.resizable?c.storage(b,"tablesorter-resizable"):{})for(h in m)!isNaN(h)&&h<a.$headers.length&&a.$headers.eq(h).width(m[h]);f=q.children("thead:first").children("tr");f.children().each(function(){var b; b=k(this);h=b.attr("data-column");b="false"===c.getData(b,a.headers[h],"resizable");f.children().filter('[data-column="'+h+'"]')[b?"addClass":"removeClass"]("resizable-false")});f.each(function(){g=k(this).children().not(".resizable-false");k(this).find("."+c.css.wrapper).length||g.wrapInner('<div class="'+c.css.wrapper+'" style="position:relative;height:100%;width:100%"></div>');e.resizable_addLastColumn||(g=g.slice(0,-1));d=d?d.add(g):g});d.each(function(){var a=k(this),b=parseInt(a.css("padding-right"), 10)+10;a.find("."+c.css.wrapper).append('<div class="'+c.css.resizer+'" style="cursor:w-resize;position:absolute;z-index:1;right:-'+b+'px;top:0;height:100%;width:20px;"></div>')}).bind("mousemove.tsresize",function(a){if(0!==p&&n){var b=a.pageX-p,c=n.width();n.width(c+b);n.width()!==c&&v&&l.width(l.width()-b);p=a.pageX}}).bind("mouseup.tsresize",function(){s()}).find("."+c.css.resizer+",."+c.css.grip).bind("mousedown",function(b){n=k(b.target).closest("th");var c=a.$headers.filter('[data-column="'+ n.attr("data-column")+'"]');1<c.length&&(n=n.add(c));l=b.shiftKey?n.parent().find("th").not(".resizable-false").filter(":last"):n.nextAll(":not(.resizable-false)").eq(0);p=b.pageX});q.find("thead:first").bind("mouseup.tsresize mouseleave.tsresize",function(){s()}).bind("contextmenu.tsresize",function(){c.resizableReset(b);var a=k.isEmptyObject?k.isEmptyObject(m):!0;m={};return a})}},remove:function(b,a){a.$table.removeClass("hasResizable").children("thead").unbind("mouseup.tsresize mouseleave.tsresize contextmenu.tsresize").children("tr").children().unbind("mousemove.tsresize mouseup.tsresize").find("."+ c.css.resizer+",."+c.css.grip).remove();c.resizableReset(b)}});
|
|
c.resizableReset=function(b,a){k(b).each(function(){var e,f=this.config,d=f&&f.widgetOptions;b&&f&&(f.$headers.each(function(a){e=k(this);d.resizable_widths[a]?e.css("width",d.resizable_widths[a]):e.hasClass("resizable-false")||e.css("width","")}),c.storage&&!a&&c.storage(this,"tablesorter-resizable",{}))})};
|
|
c.addWidget({id:"saveSort",priority:20,options:{saveSort:!0},init:function(b,a,c,f){a.format(b,c,f,!0)},format:function(b,a,e,f){var d, g=a.$table;e=!1!==e.saveSort;var h={sortList:a.sortList};a.debug&&(d=new Date);g.hasClass("hasSaveSort")?e&&b.hasInitialized&&c.storage&&(c.storage(b,"tablesorter-savesort",h),a.debug&&c.benchmark("saveSort widget: Saving last sort: "+a.sortList,d)):(g.addClass("hasSaveSort"),h="",c.storage&&(h=(e=c.storage(b,"tablesorter-savesort"))&&e.hasOwnProperty("sortList")&&k.isArray(e.sortList)?e.sortList:"",a.debug&&c.benchmark('saveSort: Last sort loaded: "'+h+'"',d),g.bind("saveSortReset",function(a){a.stopPropagation(); c.storage(b,"tablesorter-savesort","")})),f&&h&&0<h.length?a.sortList=h:b.hasInitialized&&h&&0<h.length&&g.trigger("sorton",[h]))},remove:function(b){c.storage&&c.storage(b,"tablesorter-savesort","")}})
|
|
})(jQuery);
|