PageSourceSearch

https://budeg.de/wp-content/plugins/tablepress-premium/modules/js/…tatables.columnfilterwidgets.min.js?ver=3.4

js budeg.de collected 2026-10-04 22:49:36 UTC 5,135 bytes, 1 lines download raw bytes

1!function(e){const t=function(t){const o=this;let i=Object.keys(t.aoColumns);return i=i.map(e=>parseInt(e,10)),o.$WidgetContainer=e('<div class="column-filter-widgets"></div>'),o.$MenuContainer=o.$WidgetContainer,o.$TermContainer=null,o.aoWidgets=[],o.sSeparator="","oColumnFilterWidgets"in t.oInit&&("columns"in t.oInit.oColumnFilterWidgets&&(i=t.oInit.oColumnFilterWidgets.columns),"aiExclude"in t.oInit.oColumnFilterWidgets&&(i=i.filter(e=>!t.oInit.oColumnFilterWidgets.aiExclude.includes(e))),t.oInit.oColumnFilterWidgets.bGroupTerms&&(o.$MenuContainer=e('<div class="column-filter-widget-menus"></div>'),o.$TermContainer=e('<div class="column-filter-widget-selected-terms"></div>').hide())),i.forEach(i=>{const s=e('<div class="column-filter-widget"></div>');o.aoWidgets.push(new n(s,t,i,o)),o.$MenuContainer.append(s)}),o.$TermContainer&&(o.$WidgetContainer.append(o.$MenuContainer),o.$WidgetContainer.append(o.$TermContainer)),t.oInstance.api().on("draw",()=>{o.aoWidgets.forEach(e=>e.fnDraw())}),t.oInit.oColumnFilterWidgets?.resetButton&&i.length>0&&(o.$ResetButton=e('<button type="button" class="column-filter-widgets-reset"></button>').text(t.oInstance.api().i18n("columnfilterwidgets.resetButton","Reset")).prop("disabled",!0).on("click",()=>{o.aoWidgets.forEach(e=>{e.asFilters.length>0&&(e.asFilters=[],e.fnFilter())}),o.$WidgetContainer.find(".filter-term").remove(),o.$TermContainer?.hide(),o.$ResetButton.prop("disabled",!0)}),o.ResetButtonDisabledCheck=()=>{const e=o.aoWidgets.some(e=>e.asFilters.length>0);o.$ResetButton.prop("disabled",!e)},o.$ResetButton.wrap('<div class="column-filter-widget-reset-container"></div>'),o.$MenuContainer.append(o.$ResetButton.parent())),o};t.prototype.getContainer=function(){return this.$WidgetContainer.get(0)};const n=function(t,n,o,i){const s=this;s.iColumn=o,s.oColumn=n.aoColumns[o],s.$Container=t,s.oDataTable=n.oInstance.api(),s.asFilters=[],s.sSeparator=n?.oInit?.oColumnFilterWidgets?.sSeparator??"",s.bSort=!0,s.iMaxSelections=n?.oInit?.oColumnFilterWidgets?.iMaxSelections??-1,n?.oInit?.oColumnFilterWidgets?.aoColumnDefs?.forEach(t=>{t.aiTargets.includes(o)&&e.each(t,(e,t)=>s[e]=t)}),s.$Select=e("<select></select>").addClass("widget-"+s.iColumn).on("change",function(){const t=s.$Select.val();if(1===s.iMaxSelections)""===t?(s.asFilters=[],i.ResetButtonDisabledCheck?.()):(s.asFilters=[t],i.$ResetButton?.prop("disabled",!1));else{if(""===t)return;const n=e("<div>"+t+"</div>").text(),o=e('<a class="filter-term" href="#"></a>').addClass("filter-term-"+n.toLowerCase().replace(/\W/g,"")).text(n).on("click",function(){return s.asFilters=s.asFilters.filter(e=>e!==t),o.remove(),i.$TermContainer&&0===i.$TermContainer.find(".filter-term").length&&i.$TermContainer.hide(),s.$Select.append(e("<option></option>").val(t).text(n)),s.iMaxSelections>1&&s.iMaxSelections>s.asFilters.length&&s.$Select.prop("disabled",!1),s.bSort&&s.fnSortOptions(),s.fnFilter(),i.ResetButtonDisabledCheck?.(),!1});s.asFilters.push(t),i.$ResetButton?.prop("disabled",!1),i.$TermContainer?(i.$TermContainer.show(),i.$TermContainer.prepend(o)):s.$Select.after(o);const r=s.$Select.children("option:selected");s.$Select.val(""),r.remove(),s.iMaxSelections>1&&s.iMaxSelections<=s.asFilters.length&&s.$Select.prop("disabled",!0)}s.fnFilter()}),s.$Container.append(s.$Select),s.fnDraw()};n.prototype.fnFilter=function(){const e=this;if(e.asFilters.length>0){const t=[];e.asFilters.forEach(e=>{t.push(e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"))});const n=e.sSeparator?"(^|\\s*"+e.sSeparator+")(\\s*":"^(\\s*",o=e.sSeparator?"\\s*)("+e.sSeparator+"\\s*|$)":"\\s*)$";e.oDataTable.column(e.iColumn).search(n+t.join("\\s*|\\s*")+o,!0,!1).draw()}else e.oDataTable.column(e.iColumn).search("").draw()},n.prototype.fnSortOptions=function(){const t=this,n=t.$Select.find("option").slice(1);let o=(t,n)=>e(t).text().localeCompare(e(n).text(),void 0,{numeric:!0,sensitivity:"base"});t.hasOwnProperty("fnSort")&&(o=(n,o)=>t.fnSort(e(n).text(),e(o).text())),n.sort(o),t.$Select.append(n)},n.prototype.fnDraw=function(){const t=this;if(0===t.asFilters.length){t.columnFilters=t.columnFilters??t.oDataTable?.ajax?.json()?.columnFilters?.[t.iColumn];const n=[];(t.columnFilters??t.oDataTable.column(t.iColumn,{search:"applied"}
1).data().sort().unique().toArray()).forEach(o=>{o=e("<div>"+o+"</div>").text().replace(/\n/g," ").trim(),(t.sSeparator?o.split(new RegExp("\\s*"+t.sSeparator+"\\s*")):[o]).forEach(e=>{""===e||n.some(t=>t===e)||n.push(e)})});const o=e("<div>"+t.oColumn.sTitle+"</div>").text();t.$Select.attr("aria-label",t.oDataTable.i18n("columnfilterwidgets.filterBy","Filter by column “%s”").replace("%s",o)).empty().append(e(`<option selected${t.iMaxSelections>1?" disabled":""}></option>`).val("").text(o)),n.forEach(n=>{t.$Select.append(e("<option></option>").val(n).text(n))}),n.length>0?(t.bSort&&t.fnSortOptions(),t.$Select.prop("disabled",!1)):t.$Select.prop("disabled",!0)}},DataTable.ext.feature.push({fnInit:e=>new t(e).getContainer(),cFeature:"W",sFeature:"ColumnFilterWidgets"}),DataTable.feature.register("columnFilterWidgets",function(e){return new t(e).getContainer()})}(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.