tablesorter/dist/js/widgets/widget-mark.min.js
2016-07-31 21:08:05 -05:00

2 lines
1.8 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*! Widget: mark.js - updated 7/31/2016 (v2.27.0) */
!function(a){"use strict";var b=a.tablesorter;b.mark={init:function(c){if("function"==typeof a.fn.mark){var d,e=c.widgetOptions.mark_tsUpdate;c.$table.on("filterEnd.tsmark"+(e?" "+e:""),function(a,d){b.mark.update(c,"filterEnd"===a.type?"":d)}),d="(?:<|=|>|\\||\"|\\'|\\s+(?:&&|-|"+(b.language.and||"and")+"|"+(b.language.or||"or")+"|"+(b.language.to||"to")+")\\s+)",b.mark.regex.filter=new RegExp(d,"gim")}else console.warn('Widget-mark not initialized: missing "jquery.mark.js"')},regex:{mark:/^mark_(.+)$/,pure:/^\/((?:\\\/|[^\/])+)\/([mig]{0,3})?$/},checkRegex:function(a){if(a instanceof RegExp){var b="".match(a);return null===b||b.length<5}return!1},cleanMatches:function(a){for(var b=[],c=a&&a.length||0;c--;)""!==a[c]&&(b[b.length]=a[c]);return b},update:function(c,d){var e={},f=b.mark.regex,g=c.$table.find("tbody tr").unmark().not("."+(c.widgetOptions.filter_filteredRow||"filtered"));d=d||a.tablesorter.getFilters(c.$table),a.each(d,function(a,d){if(d){var h=null,i=d,j=!1,k=a===c.columns?"":":nth-child("+(a+1)+")";if(f.pure.test(d)){i=f.pure.exec(d),".*"===i[1]&&(i[1]="");try{h=new RegExp(i[1],"gim"),i=new RegExp(i[1],i[2])}catch(a){i=null}return void(b.mark.checkRegex(h)&&g.children(k).markRegExp(i,e))}0===d.indexOf("~")?(j=!0,i=d.replace(/~/g,"").split("")):(d.indexOf("?")>-1&&(j=!0,d=d.replace(/\?/g,"\\S{1}")),d.indexOf("*")>-1&&(j=!0,d=d.replace(/\*/g,"\\S*")),i=d.split(f.filter)),j&&i&&i.length?(i=new RegExp(b.mark.cleanMatches(i).join(".*"),"gim"),b.mark.checkRegex(i)&&g.children(k).markRegExp(i,e)):g.children(k).mark(b.mark.cleanMatches(i),e)}})}},b.addWidget({id:"mark",options:{mark_tsUpdate:"markUpdate"},init:function(a,c,d,e){b.mark.init(d,e)},remove:function(a,b){var c=b.widgetOptions.mark_tsUpdate;b.$table.off("filterEnd.tsmark"+(c?" "+c:""))}})}(jQuery);