(function(factory){if (typeof define === 'function' && define.amd){define(['jquery'], factory);} else if (typeof module === 'object' && typeof module.exports === 'object'){module.exports = factory(require('jquery'));} else {factory(jQuery);}}(function(jQuery){

/*! Widget: filter, select2 formatter function - updated 12/1/2019 (v2.31.2) */
!function(g){"use strict";var h=g.tablesorter||{};h.filterFormatter=h.filterFormatter||{},h.filterFormatter.select2=function(i,c,e){function t(){a=[],l=h.filter.getOptionSource(s.$table[0],c,f)||[],g.each(l,function(e,t){a.push({id:""+t.parsed,text:t.text})}),n.data=a}var l,a,n=g.extend({cellText:"",match:!0,value:"",multiple:!0,width:"100%"},e),s=i.addClass("select2col"+c).closest("table")[0].config,d=s.widgetOptions,r=g('<input class="filter" type="hidden">').appendTo(i).bind("change"+s.namespace+"filter",function(){var e=v(this.value);s.$table.find(".select2col"+c+" .select2").select2("val",e),$()}),o=s.$headerIndexed[c],f=o.hasClass(d.filter_onlyAvail),p=n.match?"":"^",u=n.match?"":"$",b=d.filter_ignoreCase?"i":"",v=function(e){return e.replace(/^\/\(\^?/,"").replace(/\$\|\^/g,"|").replace(/\$?\)\/i?$/g,"").replace(/\\/g,"").split("|")},$=function(){var e=!1,t=s.$table.find(".select2col"+c+" .select2").select2("val")||n.value||"";g.isArray(t)&&(e=!0,t=t.join("\0"));var l=t.replace(/[-[\]{}()*+?.,/\\^$|#]/g,"\\$&");e&&(t=t.split("\0"),l=l.split("\0")),h.isEmptyObject(i.find(".select2").data())||(r.val(g.isArray(l)&&l.length&&""!==l.join("")?"/("+p+(l||[]).join(u+"|"+p)+u+")/"+b:"").trigger("search"),i.find(".select2").select2("val",t),s.widgetOptions.$sticky&&s.widgetOptions.$sticky.find(".select2col"+c+" .select2").select2("val",t))};return o.toggleClass("filter-match",n.match),n.cellText&&i.prepend("<label>"+n.cellText+"</label>"),n.ajax&&!g.isEmptyObject(n.ajax)||n.data||(t(),s.$table.bind("filterEnd",function(){t(),s.$table.find(".select2col"+c).add(s.widgetOptions.$sticky&&s.widgetOptions.$sticky.find(".select2col"+c)).find(".select2").select2(n)})),g('<input class="select2 select2-'+c+'" type="hidden" />').val(n.value).appendTo(i).select2(n).bind("change",function(){$()}),s.$table.bind("filterFomatterUpdate",function(){var e=v(s.$table.data("lastSearch")[c]||"");(i=s.$table.find(".select2col"+c)).find(".select2").select2("val",e),$(),h.filter.formatterUpdated(i,c)}),s.$table.bind("stickyHeadersInit",function(){var e=s.widgetOptions.$sticky.find(".select2col"+c).empty();g('<input class="select2 select2-'+c+'" type="hidden">').val(n.value).appendTo(e).select2(n).bind("change",function(){s.$table.find(".select2col"+c).find(".select2").select2("val",s.widgetOptions.$sticky.find(".select2col"+c+" .select2").select2("val")),$()}),n.cellText&&e.prepend("<label>"+n.cellText+"</label>")}),s.$table.bind("filterReset",function(){s.$table.find(".select2col"+c).find(".select2").select2("val",n.value||""),setTimeout(function(){$()},0)}),$(),r}}(jQuery);return jQuery;}));
