mambax7/alumni-26x

View on GitHub
media/jquery/tablesorter-master/dist/js/widgets/widget-filter.min.js

Summary

Maintainability
A
0 mins
Test Coverage
/*! Widget: filter - updated 12/13/2017 (v2.29.1) */
!function(e){"use strict";var t,r,i=e.tablesorter||{},l=i.css,a=i.keyCodes;e.extend(l,{filterRow:"tablesorter-filter-row",filter:"tablesorter-filter",filterDisabled:"disabled",filterRowHide:"hideme"}),e.extend(a,{backSpace:8,escape:27,space:32,left:37,down:40}),i.addWidget({id:"filter",priority:50,options:{filter_cellFilter:"",filter_childRows:!1,filter_childByColumn:!1,filter_childWithSibs:!0,filter_columnAnyMatch:!0,filter_columnFilters:!0,filter_cssFilter:"",filter_defaultAttrib:"data-value",filter_defaultFilter:{},filter_excludeFilter:{},filter_external:"",filter_filteredRow:"filtered",filter_formatter:null,filter_functions:null,filter_hideEmpty:!0,filter_hideFilters:!1,filter_ignoreCase:!0,filter_liveSearch:!0,filter_matchType:{input:"exact",select:"exact"},filter_onlyAvail:"filter-onlyAvail",filter_placeholder:{search:"",select:""},filter_reset:null,filter_resetOnEsc:!0,filter_saveFilters:!1,filter_searchDelay:300,filter_searchFiltered:!0,filter_selectSource:null,filter_selectSourceSeparator:"|",filter_serversideFiltering:!1,filter_startsWith:!1,filter_useParsedData:!1},format:function(e,r,i){r.$table.hasClass("hasFilters")||t.init(e,r,i)},remove:function(t,r,a,n){var s,o,c=r.$table,f=r.$tbodies,d="addRows updateCell update updateRows updateComplete appendCache filterReset filterAndSortReset filterFomatterUpdate filterEnd search stickyHeadersInit ".split(" ").join(r.namespace+"filter ");if(c.removeClass("hasFilters").unbind(d.replace(i.regex.spaces," ")).find("."+l.filterRow).remove(),a.filter_initialized=!1,!n){for(s=0;s<f.length;s++)(o=i.processTbody(t,f.eq(s),!0)).children().removeClass(a.filter_filteredRow).show(),i.processTbody(t,o,!1);a.filter_reset&&e(document).undelegate(a.filter_reset,"click"+r.namespace+"filter")}}}),t=i.filter={regex:{regex:/^\/((?:\\\/|[^\/])+)\/([migyu]{0,5})?$/,child:/tablesorter-childRow/,filtered:/filtered/,type:/undefined|number/,exact:/(^[\"\'=]+)|([\"\'=]+$)/g,operators:/[<>=]/g,query:"(q|query)",wild01:/\?/g,wild0More:/\*/g,quote:/\"/g,isNeg1:/(>=?\s*-\d)/,isNeg2:/(<=?\s*\d)/},types:{or:function(i,l,a){if((r.orTest.test(l.iFilter)||r.orSplit.test(l.filter))&&!r.regex.test(l.filter)){var n,s,o,c,f=e.extend({},l),d=l.filter.split(r.orSplit),u=l.iFilter.split(r.orSplit),h=d.length;for(n=0;n<h;n++){f.nestedFilters=!0,f.filter=""+(t.parseFilter(i,d[n],l)||""),f.iFilter=""+(t.parseFilter(i,u[n],l)||""),o="("+(t.parseFilter(i,f.filter,l)||"")+")";try{if(c=new RegExp(l.isMatch?o:"^"+o+"$",i.widgetOptions.filter_ignoreCase?"i":""),s=c.test(f.exact)||t.processTypes(i,f,a))return s}catch(e){return null}}return s||!1}return null},and:function(i,l,a){if(r.andTest.test(l.filter)){var n,s,o,c,f=e.extend({},l),d=l.filter.split(r.andSplit),u=l.iFilter.split(r.andSplit),h=d.length;for(n=0;n<h;n++){f.nestedFilters=!0,f.filter=""+(t.parseFilter(i,d[n],l)||""),f.iFilter=""+(t.parseFilter(i,u[n],l)||""),c=("("+(t.parseFilter(i,f.filter,l)||"")+")").replace(r.wild01,"\\S{1}").replace(r.wild0More,"\\S*");try{o=new RegExp(l.isMatch?c:"^"+c+"$",i.widgetOptions.filter_ignoreCase?"i":"").test(f.exact)||t.processTypes(i,f,a),s=0===n?o:s&&o}catch(e){return null}}return s||!1}return null},regex:function(e,t){if(r.regex.test(t.filter)){var i,l=t.filter_regexCache[t.index]||r.regex.exec(t.filter),a=l instanceof RegExp;try{a||(t.filter_regexCache[t.index]=l=new RegExp(l[1],l[2])),i=l.test(t.exact)}catch(e){i=!1}return i}return null},operators:function(l,a){if(r.operTest.test(a.iFilter)&&""!==a.iExact){var n,s,o,c=l.table,f=a.parsed[a.index],d=i.formatFloat(a.iFilter.replace(r.operators,""),c),u=l.parsers[a.index]||{},h=d;return(f||"numeric"===u.type)&&(o=e.trim(""+a.iFilter.replace(r.operators,"")),d="number"!=typeof(s=t.parseFilter(l,o,a,!0))||""===s||isNaN(s)?d:s),!f&&"numeric"!==u.type||isNaN(d)||void 0===a.cache?(o=isNaN(a.iExact)?a.iExact.replace(i.regex.nondigit,""):a.iExact,n=i.formatFloat(o,c)):n=a.cache,r.gtTest.test(a.iFilter)?s=r.gteTest.test(a.iFilter)?n>=d:n>d:r.ltTest.test(a.iFilter)&&(s=r.lteTest.test(a.iFilter)?n<=d:n<d),s||""!==h||(s=!0),s}return null},notMatch:function(i,l){if(r.notTest.test(l.iFilter)){var a,n=l.iFilter.replace("!",""),s=t.parseFilter(i,n,l)||"";return r.exact.test(s)?""===(s=s.replace(r.exact,""))||e.trim(s)!==l.iExact:(a=l.iExact.search(e.trim(s)),""===s||(l.anyMatch?a<0:!(i.widgetOptions.filter_startsWith?0===a:a>=0)))}return null},exact:function(i,l){if(r.exact.test(l.iFilter)){var a=l.iFilter.replace(r.exact,""),n=t.parseFilter(i,a,l)||"";return l.anyMatch?e.inArray(n,l.rowArray)>=0:n==l.iExact}return null},range:function(e,l){if(r.toTest.test(l.iFilter)){var a,n,s,o,c=e.table,f=l.index,d=l.parsed[f],u=l.iFilter.split(r.toSplit);return n=u[0].replace(i.regex.nondigit,"")||"",s=i.formatFloat(t.parseFilter(e,n,l),c),n=u[1].replace(i.regex.nondigit,"")||"",o=i.formatFloat(t.parseFilter(e,n,l),c),(d||"numeric"===e.parsers[f].type)&&(s=""===(a=e.parsers[f].format(""+u[0],c,e.$headers.eq(f),f))||isNaN(a)?s:a,o=""===(a=e.parsers[f].format(""+u[1],c,e.$headers.eq(f),f))||isNaN(a)?o:a),!d&&"numeric"!==e.parsers[f].type||isNaN(s)||isNaN(o)?(n=isNaN(l.iExact)?l.iExact.replace(i.regex.nondigit,""):l.iExact,a=i.formatFloat(n,c)):a=l.cache,s>o&&(n=s,s=o,o=n),a>=s&&a<=o||""===s||""===o}return null},wild:function(e,i){if(r.wildOrTest.test(i.iFilter)){var l=""+(t.parseFilter(e,i.iFilter,i)||"");!r.wildTest.test(l)&&i.nestedFilters&&(l=i.isMatch?l:"^("+l+")$");try{return new RegExp(l.replace(r.wild01,"\\S{1}").replace(r.wild0More,"\\S*"),e.widgetOptions.filter_ignoreCase?"i":"").test(i.exact)}catch(e){return null}}return null},fuzzy:function(e,i){if(r.fuzzyTest.test(i.iFilter)){var l,a=0,n=i.iExact.length,s=i.iFilter.slice(1),o=t.parseFilter(e,s,i)||"";for(l=0;l<n;l++)i.iExact[l]===o[a]&&(a+=1);return a===o.length}return null}},init:function(a){i.language=e.extend(!0,{},{to:"to",or:"or",and:"and"},i.language);var n,s,o,c,f,d,u,h,p=a.config,g=p.widgetOptions;if(p.$table.addClass("hasFilters"),p.lastSearch=[],g.filter_searchTimer=null,g.filter_initTimer=null,g.filter_formatterCount=0,g.filter_formatterInit=[],g.filter_anyColumnSelector='[data-column="all"],[data-column="any"]',g.filter_multipleColumnSelector='[data-column*="-"],[data-column*=","]',d="\\{"+r.query+"\\}",e.extend(r,{child:new RegExp(p.cssChildRow),filtered:new RegExp(g.filter_filteredRow),alreadyFiltered:new RegExp("(\\s+("+i.language.or+"|-|"+i.language.to+")\\s+)","i"),toTest:new RegExp("\\s+(-|"+i.language.to+")\\s+","i"),toSplit:new RegExp("(?:\\s+(?:-|"+i.language.to+")\\s+)","gi"),andTest:new RegExp("\\s+("+i.language.and+"|&&)\\s+","i"),andSplit:new RegExp("(?:\\s+(?:"+i.language.and+"|&&)\\s+)","gi"),orTest:new RegExp("(\\||\\s+"+i.language.or+"\\s+)","i"),orSplit:new RegExp("(?:\\s+(?:"+i.language.or+")\\s+|\\|)","gi"),iQuery:new RegExp(d,"i"),igQuery:new RegExp(d,"ig"),operTest:/^[<>]=?/,gtTest:/>/,gteTest:/>=/,ltTest:/</,lteTest:/<=/,notTest:/^\!/,wildOrTest:/[\?\*\|]/,wildTest:/\?\*/,fuzzyTest:/^~/,exactTest:/[=\"\|!]/}),d=p.$headers.filter(".filter-false, .parser-false").length,!1!==g.filter_columnFilters&&d!==p.$headers.length&&t.buildRow(a,p,g),o="addRows updateCell update updateRows updateComplete appendCache filterReset "+"filterAndSortReset filterResetSaved filterEnd search ".split(" ").join(p.namespace+"filter "),p.$table.bind(o,function(r,n){return d=g.filter_hideEmpty&&e.isEmptyObject(p.cache)&&!(p.delayInit&&"appendCache"===r.type),p.$table.find("."+l.filterRow).toggleClass(g.filter_filteredRow,d),/(search|filter)/.test(r.type)||(r.stopPropagation(),t.buildDefault(a,!0)),"filterReset"===r.type||"filterAndSortReset"===r.type?(p.$table.find("."+l.filter).add(g.filter_$externalFilters).val(""),"filterAndSortReset"===r.type?i.sortReset(this.config,function(){t.searching(a,[])}):t.searching(a,[])):"filterResetSaved"===r.type?i.storage(a,"tablesorter-filters",""):"filterEnd"===r.type?t.buildDefault(a,!0):(n="search"===r.type?n:"updateComplete"===r.type?p.$table.data("lastSearch"):"",/(update|add)/.test(r.type)&&"updateComplete"!==r.type&&(p.lastCombinedFilter=null,p.lastSearch=[],setTimeout(function(){p.$table.triggerHandler("filterFomatterUpdate")},100)),t.searching(a,n,!0)),!1}),g.filter_reset&&(g.filter_reset instanceof e?g.filter_reset.click(function(){p.$table.triggerHandler("filterReset")}):e(g.filter_reset).length&&e(document).undelegate(g.filter_reset,"click"+p.namespace+"filter").delegate(g.filter_reset,"click"+p.namespace+"filter",function(){p.$table.triggerHandler("filterReset")})),g.filter_functions)for(f=0;f<p.columns;f++)if(u=i.getColumnData(a,g.filter_functions,f))if(c=p.$headerIndexed[f].removeClass("filter-select"),h=!(c.hasClass("filter-false")||c.hasClass("parser-false")),n="",!0===u&&h)t.buildSelect(a,f);else if("object"==typeof u&&h){for(s in u)"string"==typeof s&&(n+=""===n?'<option value="">'+(c.data("placeholder")||c.attr("data-placeholder")||g.filter_placeholder.select||"")+"</option>":"",d=s,o=s,s.indexOf(g.filter_selectSourceSeparator)>=0&&(o=(d=s.split(g.filter_selectSourceSeparator))[1],d=d[0]),n+="<option "+(o===d?"":'data-function-name="'+s+'" ')+'value="'+d+'">'+o+"</option>");p.$table.find("thead").find("select."+l.filter+'[data-column="'+f+'"]').append(n),(u="function"==typeof(o=g.filter_selectSource)||i.getColumnData(a,o,f))&&t.buildSelect(p.table,f,"",!0,c.hasClass(g.filter_onlyAvail))}t.buildDefault(a,!0),t.bindSearch(a,p.$table.find("."+l.filter),!0),g.filter_external&&t.bindSearch(a,g.filter_external),g.filter_hideFilters&&t.hideFilters(p),p.showProcessing&&(o="filterStart filterEnd ".split(" ").join(p.namespace+"filter "),p.$table.unbind(o.replace(i.regex.spaces," ")).bind(o,function(t,r){c=r?p.$table.find("."+l.header).filter("[data-column]").filter(function(){return""!==r[e(this).data("column")]}):"",i.isProcessing(a,"filterStart"===t.type,r?c:"")})),p.filteredRows=p.totalRows,o="tablesorter-initialized pagerBeforeInitialized ".split(" ").join(p.namespace+"filter "),p.$table.unbind(o.replace(i.regex.spaces," ")).bind(o,function(){t.completeInit(this)}),p.pager&&p.pager.initialized&&!g.filter_initialized?(p.$table.triggerHandler("filterFomatterUpdate"),setTimeout(function(){t.filterInitComplete(p)},100)):g.filter_initialized||t.completeInit(a)},completeInit:function(e){var r=e.config,l=r.widgetOptions,a=t.setDefaults(e,r,l)||[];a.length&&(r.delayInit&&""===a.join("")||i.setFilters(e,a,!0)),r.$table.triggerHandler("filterFomatterUpdate"),setTimeout(function(){l.filter_initialized||t.filterInitComplete(r)},100)},formatterUpdated:function(e,t){var r=e&&e.closest("table"),i=r.length&&r[0].config,l=i&&i.widgetOptions;l&&!l.filter_initialized&&(l.filter_formatterInit[t]=1)},filterInitComplete:function(r){var i,l,a=r.widgetOptions,n=0,s=function(){a.filter_initialized=!0,r.lastSearch=r.$table.data("lastSearch"),r.$table.triggerHandler("filterInit",r),t.findRows(r.table,r.lastSearch||[])};if(e.isEmptyObject(a.filter_formatter))s();else{for(l=a.filter_formatterInit.length,i=0;i<l;i++)1===a.filter_formatterInit[i]&&n++;clearTimeout(a.filter_initTimer),a.filter_initialized||n!==a.filter_formatterCount?a.filter_initialized||(a.filter_initTimer=setTimeout(function(){s()},500)):s()}},processFilters:function(e,t){var r,i=[],l=t?encodeURIComponent:decodeURIComponent,a=e.length;for(r=0;r<a;r++)e[r]&&(i[r]=l(e[r]));return i},setDefaults:function(r,l,a){var n,s,o,c,f,d=i.getFilters(r)||[];if(a.filter_saveFilters&&i.storage&&(s=i.storage(r,"tablesorter-filters")||[],(n=e.isArray(s))&&""===s.join("")||!n||(d=t.processFilters(s))),""===d.join(""))for(f=l.$headers.add(a.filter_$externalFilters).filter("["+a.filter_defaultAttrib+"]"),o=0;o<=l.columns;o++)c=o===l.columns?"all":o,d[o]=f.filter('[data-column="'+c+'"]').attr(a.filter_defaultAttrib)||d[o]||"";return l.$table.data("lastSearch",d),d},parseFilter:function(e,t,r,i){return i||r.parsed[r.index]?e.parsers[r.index].format(t,e.table,[],r.index):t},buildRow:function(r,a,n){var s,o,c,f,d,u,h,p,g,m=n.filter_cellFilter,_=a.columns,y=e.isArray(m),w='<tr role="row" class="'+l.filterRow+" "+a.cssIgnoreRow+'">';for(c=0;c<_;c++)a.$headerIndexed[c].length&&(w+=(g=a.$headerIndexed[c]&&a.$headerIndexed[c][0].colSpan||0)>1?'<td data-column="'+c+"-"+(c+g-1)+'" colspan="'+g+'"':'<td data-column="'+c+'"',w+=y?m[c]?' class="'+m[c]+'"':"":""!==m?' class="'+m+'"':"",w+="></td>");for(a.$filters=e(w+="</tr>").appendTo(a.$table.children("thead").eq(0)).children("td"),c=0;c<_;c++)u=!1,(f=a.$headerIndexed[c])&&f.length&&(s=t.getColumnElm(a,a.$filters,c),p=i.getColumnData(r,n.filter_functions,c),d=n.filter_functions&&p&&"function"!=typeof p||f.hasClass("filter-select"),o=i.getColumnData(r,a.headers,c),u="false"===i.getData(f[0],o,"filter")||"false"===i.getData(f[0],o,"parser"),d?w=e("<select>").appendTo(s):((p=i.getColumnData(r,n.filter_formatter,c))?(n.filter_formatterCount++,(w=p(s,c))&&0===w.length&&(w=s.children("input")),w&&(0===w.parent().length||w.parent().length&&w.parent()[0]!==s[0])&&s.append(w)):w=e('<input type="search">').appendTo(s),w&&(g=f.data("placeholder")||f.attr("data-placeholder")||n.filter_placeholder.search||"",w.attr("placeholder",g))),w&&(h=(e.isArray(n.filter_cssFilter)?void 0!==n.filter_cssFilter[c]?n.filter_cssFilter[c]||"":"":n.filter_cssFilter)||"",w.addClass(l.filter+" "+h).attr("data-column",s.attr("data-column")),u&&(w.attr("placeholder","").addClass(l.filterDisabled)[0].disabled=!0)))},bindSearch:function(r,l,n){if(r=e(r)[0],(l=e(l)).length){var s,o=r.config,c=o.widgetOptions,f=o.namespace+"filter",d=c.filter_$externalFilters;!0!==n&&(s=c.filter_anyColumnSelector+","+c.filter_multipleColumnSelector,c.filter_$anyMatch=l.filter(s),d&&d.length?c.filter_$externalFilters=c.filter_$externalFilters.add(l):c.filter_$externalFilters=l,i.setFilters(r,o.$table.data("lastSearch")||[],!1===n)),s="keypress keyup keydown search change input ".split(" ").join(f+" "),l.attr("data-lastSearchTime",(new Date).getTime()).unbind(s.replace(i.regex.spaces," ")).bind("keydown"+f,function(e){if(e.which===a.escape&&!r.config.widgetOptions.filter_resetOnEsc)return!1}).bind("keyup"+f,function(l){c=r.config.widgetOptions;var n=parseInt(e(this).attr("data-column"),10),s="boolean"==typeof c.filter_liveSearch?c.filter_liveSearch:i.getColumnData(r,c.filter_liveSearch,n);if(void 0===s&&(s=c.filter_liveSearch.fallback||!1),e(this).attr("data-lastSearchTime",(new Date).getTime()),l.which===a.escape)this.value=c.filter_resetOnEsc?"":o.lastSearch[n];else{if(""!==this.value&&("number"==typeof s&&this.value.length<s||l.which!==a.enter&&l.which!==a.backSpace&&(l.which<a.space||l.which>=a.left&&l.which<=a.down)))return;if(!1===s&&""!==this.value&&l.which!==a.enter)return}t.searching(r,!0,!0,n)}).bind("search change keypress input blur ".split(" ").join(f+" "),function(l){var n=parseInt(e(this).attr("data-column"),10),s=l.type,f="boolean"==typeof c.filter_liveSearch?c.filter_liveSearch:i.getColumnData(r,c.filter_liveSearch,n);!r.config.widgetOptions.filter_initialized||l.which!==a.enter&&"search"!==s&&"blur"!==s&&("change"!==s&&"input"!==s||!0!==f&&(!0===f||"INPUT"===l.target.nodeName)||this.value===o.lastSearch[n])||(l.preventDefault(),e(this).attr("data-lastSearchTime",(new Date).getTime()),t.searching(r,"keypress"!==s,!0,n))})}},searching:function(e,r,l,a){var n,s=e.config.widgetOptions;void 0===a?n=!1:void 0===(n="boolean"==typeof s.filter_liveSearch?s.filter_liveSearch:i.getColumnData(e,s.filter_liveSearch,a))&&(n=s.filter_liveSearch.fallback||!1),clearTimeout(s.filter_searchTimer),void 0===r||!0===r?s.filter_searchTimer=setTimeout(function(){t.checkFilters(e,r,l)},n?s.filter_searchDelay:10):t.checkFilters(e,r,l)},equalFilters:function(t,r,i){var l,a=[],n=[],s=t.columns+1;for(r=e.isArray(r)?r:[],i=e.isArray(i)?i:[],l=0;l<s;l++)a[l]=r[l]||"",n[l]=i[l]||"";return a.join(",")===n.join(",")},checkFilters:function(r,a,n){var s=r.config,o=s.widgetOptions,c=e.isArray(a),f=c?a:i.getFilters(r,!0),d=f||[];if(e.isEmptyObject(s.cache))s.delayInit&&(!s.pager||s.pager&&s.pager.initialized)&&i.updateCache(s,function(){t.checkFilters(r,!1,n)});else if(c&&(i.setFilters(r,f,!1,!0!==n),o.filter_initialized||(s.lastSearch=[],s.lastCombinedFilter="")),o.filter_hideFilters&&s.$table.find("."+l.filterRow).triggerHandler(t.hideFiltersCheck(s)?"mouseleave":"mouseenter"),!t.equalFilters(s,s.lastSearch,d)||!1===a){if(!1===a&&(s.lastCombinedFilter="",s.lastSearch=[]),f=f||[],f=Array.prototype.map?f.map(String):f.join("�").split("�"),o.filter_initialized&&s.$table.triggerHandler("filterStart",[f]),!s.showProcessing)return t.findRows(r,f,d),!1;setTimeout(function(){return t.findRows(r,f,d),!1},30)}},hideFiltersCheck:function(e){if("function"==typeof e.widgetOptions.filter_hideFilters){var t=e.widgetOptions.filter_hideFilters(e);if("boolean"==typeof t)return t}return""===i.getFilters(e.$table).join("")},hideFilters:function(r,i){var a;(i||r.$table).find("."+l.filterRow).addClass(l.filterRowHide).bind("mouseenter mouseleave",function(i){var n=i,s=e(this);clearTimeout(a),a=setTimeout(function(){/enter|over/.test(n.type)?s.removeClass(l.filterRowHide):e(document.activeElement).closest("tr")[0]!==s[0]&&s.toggleClass(l.filterRowHide,t.hideFiltersCheck(r))},200)}).find("input, select").bind("focus blur",function(i){var n=i,s=e(this).closest("tr");clearTimeout(a),a=setTimeout(function(){clearTimeout(a),s.toggleClass(l.filterRowHide,t.hideFiltersCheck(r)&&"focus"!==n.type)},200)})},defaultFilter:function(t,i){if(""===t)return t;var l=r.iQuery,a=i.match(r.igQuery).length,n=a>1?e.trim(t).split(/\s/):[e.trim(t)],s=n.length-1,o=0,c=i;for(s<1&&a>1&&(n[1]=n[0]);l.test(c);)c=c.replace(l,n[o++]||""),l.test(c)&&o<s&&""!==(n[o]||"")&&(c=i.replace(l,c));return c},getLatestSearch:function(t){return t?t.sort(function(t,r){return e(r).attr("data-lastSearchTime")-e(t).attr("data-lastSearchTime")}):t||e()},findRange:function(e,t,r){var i,l,a,n,s,o,c,f,d,u=[];if(/^[0-9]+$/.test(t))return[parseInt(t,10)];if(!r&&/-/.test(t))for(d=(l=t.match(/(\d+)\s*-\s*(\d+)/g))?l.length:0,f=0;f<d;f++){for(a=l[f].split(/\s*-\s*/),(n=parseInt(a[0],10)||0)>(s=parseInt(a[1],10)||e.columns-1)&&(i=n,n=s,s=i),s>=e.columns&&(s=e.columns-1);n<=s;n++)u[u.length]=n;t=t.replace(l[f],"")}if(!r&&/,/.test(t))for(d=(o=t.split(/\s*,\s*/)).length,c=0;c<d;c++)""!==o[c]&&(f=parseInt(o[c],10))<e.columns&&(u[u.length]=f);if(!u.length)for(f=0;f<e.columns;f++)u[u.length]=f;return u},getColumnElm:function(r,i,l){return i.filter(function(){var i=t.findRange(r,e(this).attr("data-column"));return e.inArray(l,i)>-1})},multipleColumns:function(r,i){var l=r.widgetOptions,a=l.filter_initialized||!i.filter(l.filter_anyColumnSelector).length,n=e.trim(t.getLatestSearch(i).attr("data-column")||"");return t.findRange(r,n,!a)},processTypes:function(r,i,l){var a,n=null,s=null;for(a in t.types)e.inArray(a,l.excludeMatch)<0&&null===s&&null!==(s=t.types[a](r,i,l))&&(i.matchedOn=a,n=s);return n},matchType:function(e,t){var r,i=e.widgetOptions,a=e.$headerIndexed[t];return a.hasClass("filter-exact")?r=!1:a.hasClass("filter-match")?r=!0:(i.filter_columnFilters?a=e.$filters.find("."+l.filter).add(i.filter_$externalFilters).filter('[data-column="'+t+'"]'):i.filter_$externalFilters&&(a=i.filter_$externalFilters.filter('[data-column="'+t+'"]')),r=!!a.length&&"match"===e.widgetOptions.filter_matchType[(a[0].nodeName||"").toLowerCase()]),r},processRow:function(l,a,n){var s,o,c,f,d,u=l.widgetOptions,h=!0,p=u.filter_$anyMatch&&u.filter_$anyMatch.length,g=u.filter_$anyMatch&&u.filter_$anyMatch.length?t.multipleColumns(l,u.filter_$anyMatch):[];if(a.$cells=a.$row.children(),a.matchedOn=null,a.anyMatchFlag&&g.length>1||a.anyMatchFilter&&!p){if(a.anyMatch=!0,a.isMatch=!0,a.rowArray=a.$cells.map(function(t){if(e.inArray(t,g)>-1||a.anyMatchFilter&&!p)return a.parsed[t]?d=a.cacheArray[t]:(d=a.rawArray[t],d=e.trim(u.filter_ignoreCase?d.toLowerCase():d),l.sortLocaleCompare&&(d=i.replaceAccents(d))),d}).get(),a.filter=a.anyMatchFilter,a.iFilter=a.iAnyMatchFilter,a.exact=a.rowArray.join(" "),a.iExact=u.filter_ignoreCase?a.exact.toLowerCase():a.exact,a.cache=a.cacheArray.slice(0,-1).join(" "),n.excludeMatch=n.noAnyMatch,null!==(o=t.processTypes(l,a,n)))h=o;else if(u.filter_startsWith)for(h=!1,g=Math.min(l.columns,a.rowArray.length);!h&&g>0;)g--,h=h||0===a.rowArray[g].indexOf(a.iFilter);else h=(a.iExact+a.childRowText).indexOf(a.iFilter)>=0;if(a.anyMatch=!1,a.filters.join("")===a.filter)return h}for(g=0;g<l.columns;g++)a.filter=a.filters[g],a.index=g,n.excludeMatch=n.excludeFilter[g],a.filter&&(a.cache=a.cacheArray[g],s=a.parsed[g]?a.cache:a.rawArray[g]||"",a.exact=l.sortLocaleCompare?i.replaceAccents(s):s,a.iExact=!r.type.test(typeof a.exact)&&u.filter_ignoreCase?a.exact.toLowerCase():a.exact,a.isMatch=t.matchType(l,g),s=h,f=u.filter_columnFilters?l.$filters.add(u.filter_$externalFilters).filter('[data-column="'+g+'"]').find("select option:selected").attr("data-function-name")||"":"",l.sortLocaleCompare&&(a.filter=i.replaceAccents(a.filter)),u.filter_defaultFilter&&r.iQuery.test(n.defaultColFilter[g])&&(a.filter=t.defaultFilter(a.filter,n.defaultColFilter[g])),a.iFilter=u.filter_ignoreCase?(a.filter||"").toLowerCase():a.filter,o=null,(c=n.functions[g])&&("function"==typeof c?o=c(a.exact,a.cache,a.filter,g,a.$row,l,a):"function"==typeof c[f||a.filter]&&(o=c[d=f||a.filter](a.exact,a.cache,a.filter,g,a.$row,l,a))),null===o?(o=t.processTypes(l,a,n),d=!0===c&&("and"===a.matchedOn||"or"===a.matchedOn),null===o||d?!0===c?s=a.isMatch?(""+a.iExact).search(a.iFilter)>=0:a.filter===a.exact:(d=(a.iExact+a.childRowText).indexOf(t.parseFilter(l,a.iFilter,a)),s=!u.filter_startsWith&&d>=0||u.filter_startsWith&&0===d):s=o):s=o,h=!!s&&h);return h},findRows:function(l,a,n){if(!t.equalFilters(l.config,l.config.lastSearch,n)&&l.config.widgetOptions.filter_initialized){var s,o,c,f,d,u,h,p,g,m,_,y,w,F,x,C,b,v,$,S,R,T,A,O=e.extend([],a),E=l.config,M=E.widgetOptions,I={anyMatch:!1,filters:a,filter_regexCache:[]},D={noAnyMatch:["range","operators"],functions:[],excludeFilter:[],defaultColFilter:[],defaultAnyFilter:i.getColumnData(l,M.filter_defaultFilter,E.columns,!0)||""};for(I.parsed=[],g=0;g<E.columns;g++)I.parsed[g]=M.filter_useParsedData||E.parsers&&E.parsers[g]&&E.parsers[g].parsed||i.getData&&"parsed"===i.getData(E.$headerIndexed[g],i.getColumnData(l,E.headers,g),"filter")||E.$headerIndexed[g].hasClass("filter-parsed"),D.functions[g]=i.getColumnData(l,M.filter_functions,g)||E.$headerIndexed[g].hasClass("filter-select"),D.defaultColFilter[g]=i.getColumnData(l,M.filter_defaultFilter,g)||"",D.excludeFilter[g]=(i.getColumnData(l,M.filter_excludeFilter,g,!0)||"").split(/\s+/);for(E.debug&&(console.log("Filter: Starting filter widget search",a),F=new Date),E.filteredRows=0,E.totalRows=0,n=O||[],h=0;h<E.$tbodies.length;h++){if(p=i.processTbody(l,E.$tbodies.eq(h),!0),g=E.columns,o=E.cache[h].normalized,f=e(e.map(o,function(e){return e[g].$row.get()})),""===n.join("")||M.filter_serversideFiltering)f.removeClass(M.filter_filteredRow).not("."+E.cssChildRow).css("display","");else{if(f=f.not("."+E.cssChildRow),s=f.length,(M.filter_$anyMatch&&M.filter_$anyMatch.length||void 0!==a[E.columns])&&(I.anyMatchFlag=!0,I.anyMatchFilter=""+(a[E.columns]||M.filter_$anyMatch&&t.getLatestSearch(M.filter_$anyMatch).val()||""),M.filter_columnAnyMatch)){for($=I.anyMatchFilter.split(r.andSplit),S=!1,C=0;C<$.length;C++)(R=$[C].split(":")).length>1&&(isNaN(R[0])?e.each(E.headerContent,function(e,t){t.toLowerCase().indexOf(R[0])>-1&&(a[T=e]=R[1])}):T=parseInt(R[0],10)-1,T>=0&&T<E.columns&&(a[T]=R[1],$.splice(C,1),C--,S=!0));S&&(I.anyMatchFilter=$.join(" && "))}if(v=M.filter_searchFiltered,_=E.lastSearch||E.$table.data("lastSearch")||[],v)for(C=0;C<g+1;C++)x=a[C]||"",v||(C=g),v=v&&_.length&&0===x.indexOf(_[C]||"")&&!r.alreadyFiltered.test(x)&&!r.exactTest.test(x)&&!(r.isNeg1.test(x)||r.isNeg2.test(x))&&!(""!==x&&E.$filters&&E.$filters.filter('[data-column="'+C+'"]').find("select").length&&!t.matchType(E,C));for(b=f.not("."+M.filter_filteredRow).length,v&&0===b&&(v=!1),E.debug&&console.log("Filter: Searching through "+(v&&b<s?b:"all")+" rows"),I.anyMatchFlag&&(E.sortLocaleCompare&&(I.anyMatchFilter=i.replaceAccents(I.anyMatchFilter)),M.filter_defaultFilter&&r.iQuery.test(D.defaultAnyFilter)&&(I.anyMatchFilter=t.defaultFilter(I.anyMatchFilter,D.defaultAnyFilter),v=!1),I.iAnyMatchFilter=M.filter_ignoreCase&&E.ignoreCase?I.anyMatchFilter.toLowerCase():I.anyMatchFilter),u=0;u<s;u++)if(A=f[u].className,!(u&&r.child.test(A)||v&&r.filtered.test(A))){if(I.$row=f.eq(u),I.rowIndex=u,I.cacheArray=o[u],c=I.cacheArray[E.columns],I.rawArray=c.raw,I.childRowText="",!M.filter_childByColumn){for(A="",m=c.child,C=0;C<m.length;C++)A+=" "+m[C].join(" ")||"";I.childRowText=M.filter_childRows?M.filter_ignoreCase?A.toLowerCase():A:""}if(y=!1,w=t.processRow(E,I,D),d=c.$row,x=!!w,m=c.$row.filter(":gt(0)"),M.filter_childRows&&m.length){if(M.filter_childByColumn)for(M.filter_childWithSibs||(m.addClass(M.filter_filteredRow),d=d.eq(0)),C=0;C<m.length;C++)I.$row=m.eq(C),I.cacheArray=c.child[C],I.rawArray=I.cacheArray,x=t.processRow(E,I,D),y=y||x,!M.filter_childWithSibs&&x&&m.eq(C).removeClass(M.filter_filteredRow);y=y||w}else y=x;d.toggleClass(M.filter_filteredRow,!y)[0].display=y?"":"none"}}E.filteredRows+=f.not("."+M.filter_filteredRow).length,E.totalRows+=f.length,i.processTbody(l,p,!1)}E.lastCombinedFilter=O.join(""),E.lastSearch=O,E.$table.data("lastSearch",O),M.filter_saveFilters&&i.storage&&i.storage(l,"tablesorter-filters",t.processFilters(O,!0)),E.debug&&console.log("Completed filter widget search"+i.benchmark(F)),M.filter_initialized&&(E.$table.triggerHandler("filterBeforeEnd",E),E.$table.triggerHandler("filterEnd",E)),setTimeout(function(){i.applyWidget(E.table)},0)}},getOptionSource:function(r,l,a){var n=(r=e(r)[0]).config,s=!1,o=n.widgetOptions.filter_selectSource,c=n.$table.data("lastSearch")||[],f="function"==typeof o||i.getColumnData(r,o,l);if(a&&""!==c[l]&&(a=!1),!0===f)s=o(r,l,a);else{if(f instanceof e||"string"===e.type(f)&&f.indexOf("</option>")>=0)return f;if(e.isArray(f))s=f;else if("object"===e.type(o)&&f&&null===(s=f(r,l,a)))return null}return!1===s&&(s=t.getOptions(r,l,a)),t.processOptions(r,l,s)},processOptions:function(t,r,l){if(!e.isArray(l))return!1;var a,n,s,o,c,f,d=(t=e(t)[0]).config,u=void 0!==r&&null!==r&&r>=0&&r<d.columns,h=!!u&&d.$headerIndexed[r].hasClass("filter-select-sort-desc"),p=[];if(l=e.grep(l,function(t,r){return!!t.text||e.inArray(t,l)===r}),u&&d.$headerIndexed[r].hasClass("filter-select-nosort"))return l;for(o=l.length,s=0;s<o;s++)f=(n=l[s]).text?n.text:n,c=(u&&d.parsers&&d.parsers.length&&d.parsers[r].format(f,t,[],r)||f).toString(),c=d.widgetOptions.filter_ignoreCase?c.toLowerCase():c,n.text?(n.parsed=c,p[p.length]=n):p[p.length]={text:n,parsed:c};for(a=d.textSorter||"",p.sort(function(e,l){var n=h?l.parsed:e.parsed,s=h?e.parsed:l.parsed;return u&&"function"==typeof a?a(n,s,!0,r,t):u&&"object"==typeof a&&a.hasOwnProperty(r)?a[r](n,s,!0,r,t):!i.sortNatural||i.sortNatural(n,s)}),l=[],o=p.length,s=0;s<o;s++)l[l.length]=p[s];return l},getOptions:function(t,r,l){var a,n,s,o,c,f,d,u,h=(t=e(t)[0]).config,p=h.widgetOptions,g=[];for(n=0;n<h.$tbodies.length;n++)for(c=h.cache[n],s=h.cache[n].normalized.length,a=0;a<s;a++)if(o=c.row?c.row[a]:c.normalized[a][h.columns].$row[0],!l||!o.className.match(p.filter_filteredRow))if(p.filter_useParsedData||h.parsers[r].parsed||h.$headerIndexed[r].hasClass("filter-parsed")){if(g[g.length]=""+c.normalized[a][r],p.filter_childRows&&p.filter_childByColumn)for(u=c.normalized[a][h.columns].$row.length-1,f=0;f<u;f++)g[g.length]=""+c.normalized[a][h.columns].child[f][r]}else if(g[g.length]=c.normalized[a][h.columns].raw[r],p.filter_childRows&&p.filter_childByColumn)for(u=c.normalized[a][h.columns].$row.length,f=1;f<u;f++)d=c.normalized[a][h.columns].$row.eq(f).children().eq(r),g[g.length]=""+i.getElementText(h,d,r);return g},buildSelect:function(i,a,n,s,o){if(i=e(i)[0],a=parseInt(a,10),i.config.cache&&!e.isEmptyObject(i.config.cache)){var c,f,d,u,h,p,g,m=i.config,_=m.widgetOptions,y=m.$headerIndexed[a],w='<option value="">'+(y.data("placeholder")||y.attr("data-placeholder")||_.filter_placeholder.select||"")+"</option>",F=m.$table.find("thead").find("select."+l.filter+'[data-column="'+a+'"]').val();if(void 0!==n&&""!==n||null!==(n=t.getOptionSource(i,a,o))){if(e.isArray(n)){for(c=0;c<n.length;c++)if((g=n[c]).text){g["data-function-name"]=void 0===g.value?g.text:g.value,w+="<option";for(f in g)g.hasOwnProperty(f)&&"text"!==f&&(w+=" "+f+'="'+g[f]+'"');g.value||(w+=' value="'+g.text+'"'),w+=">"+g.text+"</option>"}else""+g!="[object Object]"&&(f=d=g=(""+g).replace(r.quote,"&quot;"),d.indexOf(_.filter_selectSourceSeparator)>=0&&(f=(u=d.split(_.filter_selectSourceSeparator))[0],d=u[1]),w+=""!==g?"<option "+(f===d?"":'data-function-name="'+g+'" ')+'value="'+f+'">'+d+"</option>":"");n=[]}h=(m.$filters?m.$filters:m.$table.children("thead")).find("."+l.filter),_.filter_$externalFilters&&(h=h&&h.length?h.add(_.filter_$externalFilters):_.filter_$externalFilters),(p=h.filter('select[data-column="'+a+'"]')).length&&(p[s?"html":"append"](w),e.isArray(n)||p.append(n).val(F),p.val(F))}}},buildDefault:function(e,r){var l,a,n,s=e.config,o=s.widgetOptions,c=s.columns;for(l=0;l<c;l++)n=!((a=s.$headerIndexed[l]).hasClass("filter-false")||a.hasClass("parser-false")),(a.hasClass("filter-select")||!0===i.getColumnData(e,o.filter_functions,l))&&n&&t.buildSelect(e,l,"",r,a.hasClass(o.filter_onlyAvail))}},r=t.regex,i.getFilters=function(r,i,a,n){var s,o,c,f,d=[],u=r?e(r)[0].config:"",h=u?u.widgetOptions:"";if(!0!==i&&h&&!h.filter_columnFilters||e.isArray(a)&&t.equalFilters(u,a,u.lastSearch))return e(r).data("lastSearch")||[];if(u&&(u.$filters&&(o=u.$filters.find("."+l.filter)),h.filter_$externalFilters&&(o=o&&o.length?o.add(h.filter_$externalFilters):h.filter_$externalFilters),o&&o.length))for(d=a||[],s=0;s<u.columns+1;s++)f=s===u.columns?h.filter_anyColumnSelector+","+h.filter_multipleColumnSelector:'[data-column="'+s+'"]',(c=o.filter(f)).length&&(c=t.getLatestSearch(c),e.isArray(a)?(n&&c.length>1&&(c=c.slice(1)),s===u.columns&&(c=(f=c.filter(h.filter_anyColumnSelector)).length?f:c),c.val(a[s]).trigger("change"+u.namespace)):(d[s]=c.val()||"",s===u.columns?c.slice(1).filter('[data-column*="'+c.attr("data-column")+'"]').val(d[s]):c.slice(1).val(d[s])),s===u.columns&&c.length&&(h.filter_$anyMatch=c));return d},i.setFilters=function(r,l,a,n){var s=r?e(r)[0].config:"",o=i.getFilters(r,!0,l,n);return void 0===a&&(a=!0),s&&a&&(s.lastCombinedFilter=null,s.lastSearch=[],t.searching(s.table,l,n),s.$table.triggerHandler("filterFomatterUpdate")),0!==o.length}}(jQuery);