PageSourceSearch

https://haus-saron.de/wp-content/cache/min/1/wp-content/themes/kre…/assets/multifilter.js?ver=1790831897

js haus-saron.de collected 2026-10-08 13:50:45 UTC 13,960 bytes, 24 lines download raw bytes

1(function($){'use strict';function debounce(fn,delay){var timer;return function(){var ctx=this,args=arguments;clearTimeout(timer);timer=setTimeout(function(){fn.apply(ctx,args)},delay)}}
2function KreMultifilter(el){this.el=el;this.panel=el.querySelector('.kre-mf-panel');this.gridId=el.dataset.gridId;this.layout=el.dataset.layout;this.filters={};this.search='';this.page=1;this.loading=!1;this.currentPostId=parseInt(kreMF.postId)||((typeof wyldinsights_var!=='undefined'&&wyldinsights_var.post_id)?parseInt(wyldinsights_var.post_id):0);this.scrollTop=el.dataset.scrollTop==='1';this.findGridContainer();this.bindEvents();this.readUrlState()}
3KreMultifilter.prototype.findGridContainer=function(){var parent=this.el.parentElement;this.gridWrapper=this.el.closest('.ntc, .customgrid');this.gridContainer=parent.querySelector('.customgridnoajax, .customgridajax');console.log('[MF] findGridContainer: parent=',parent?parent.className:'null','gridWrapper=',this.gridWrapper?this.gridWrapper.className:'null','gridContainer=',this.gridContainer?this.gridContainer.className:'null')};KreMultifilter.prototype.bindEvents=function(){var self=this;var p=this.panel;p.querySelectorAll('input[type="checkbox"], input[type="radio"]').forEach(function(input){input.addEventListener('change',function(){self.onFilterChange()})});p.querySelectorAll('select').forEach(function(sel){sel.addEventListener('change',function(){self.onFilterChange()})});p.querySelectorAll('.kre-mf-range input').forEach(function(input){input.addEventListener('input',debounce(function(){self.onFilterChange()},500))});var searchInput=p.querySelector('.kre-mf-search input');if(searchInput){searchInput.addEventListener('input',debounce(function(){self.search=searchInput.value;self.page=1;self.doFilter()},400))}
4var resetBtn=p.querySelector('.kre-mf-reset');if(resetBtn){resetBtn.addEventListener('click',function(){self.resetAll()})}
5var toggleBtn=this.el.querySelector('.kre-mf-toggle');
5if(toggleBtn){toggleBtn.addEventListener('click',function(){self.togglePanel()})}
6var mobileResetBtn=this.el.querySelector('.kre-mf-toggle-reset');if(mobileResetBtn){mobileResetBtn.addEventListener('click',function(){self.resetAll()})}
7var closeBtn=p.querySelector('.kre-mf-close');if(closeBtn){closeBtn.addEventListener('click',function(){self.closePanel()})}
8var applyBtn=p.querySelector('.kre-mf-apply');if(applyBtn){applyBtn.addEventListener('click',function(){self.closePanel();self.doFilter()})}
9if(this.gridWrapper){this.gridWrapper.addEventListener('click',function(e){var pageLink=e.target.closest('.kre-mf-pagination a');if(pageLink){e.preventDefault();self.page=parseInt(pageLink.dataset.page)||1;self.doFilter()}})}
10if(this.layout==='top'){p.querySelectorAll('.kre-mf-group-header').forEach(function(h){h.addEventListener('click',function(e){e.stopPropagation();var group=h.parentElement;var wasOpen=group.classList.contains('open');p.querySelectorAll('.kre-mf-group.open').forEach(function(g){g.classList.remove('open')});if(!wasOpen){group.classList.remove('collapsed');group.classList.add('open')}})});p.querySelectorAll('.kre-mf-group-body').forEach(function(body){body.addEventListener('click',function(e){e.stopPropagation()})});document.addEventListener('click',function(){self.panel.querySelectorAll('.kre-mf-group.open').forEach(function(g){g.classList.remove('open')})})}else{p.querySelectorAll('.kre-mf-group-header').forEach(function(h){h.addEventListener('click',function(){h.parentElement.classList.toggle('collapsed')})})}};KreMultifilter.prototype.onFilterChange=function(){this.collectFilters();this.updateActiveState();this.updateMobileBar();this.page=1;this.doFilter()};KreMultifilter.prototype.updateActiveState=function(){if(this.layout!=='top')return;var filters=this.filters;this.panel.querySelectorAll('.kre-mf-group').forEach(function(group){var key=group.dataset.filterKey;if(filters[key]){group.classList.add('has-active')}else{group.classList.remove('has-active')}})};KreMultifilter.prototype.collectFilters=function(){this.filters={};var self=this;this.panel.querySelectorAll('.kre-mf-group').forEach(function(group){var key=group.dataset.filterKey;var source=group.dataset.filterSource;var type=group.dataset.filterType;var values=[];if(type==='checkbox'){group.querySelectorAll('input:checked').forEach(function(cb){values.push(cb.value)})}else if(type==='radio'){var checked=group.querySelector('input:checked');if(checked&&checked.value!==''){values.push(checked.value)}}else if(type==='select'){var val=group.querySelector('select').value;if(val)values.push(val)}else if(type==='toggle'){var checked=group.querySelector('input:checked');if(checked&&checked.value!==''){values.push(checked.value)}}else if(type==='range'){var minInput=group.querySelector('.mf-range-min');var maxInput=group.querySelector('.mf-range-max');var minVal=minInput?minInput.value:'';var maxVal=maxInput?maxInput.value:'';if(minVal||maxVal){values={min:minVal,max:maxVal}}}
11if((Array.isArray(values)&&values.length)||(!Array.isArray(values)&&(values.min||values.max))){self.filters[key]={source:source,values:values}}})};KreMultifilter.prototype.doFilter=function(){if(this.loading)return;this.loading=!0;this.showLoading();this.updateUrl();var self=this;$.ajax({url:kreMF.ajaxurl,type:'POST',dataType:'json',data:{action:'kre_mf_filter',nonce:kreMF.nonce,grid_id:this.gridId,current_post_id:this.currentPostId,filters:JSON.stringify(this.filters),search:this.search,page:this.page},success:function(res){console.log('[MF] AJAX success:',res);try{if(res&&res.success&&res.data){self.updateGrid(res.data.html||'');self.updateCount(res.data.count);self.updatePagination(res.data.pagination||'');if(res.data.filter_counts){self.updateFilterCounts(res.data.filter_counts)}
12self.updateMobileBar();if(self.scrollTop&&window.innerWidth>1240){var scrollTarget=self.el.closest('.kre-mf-sidebar-wrap')||self.el;var off=$(scrollTarget).offset();if(off){$('html, body').animate({scrollTop:off.top-100},300)}}}else{console.warn('[MF] Response not success:',res)}}catch(e){console.error('[MF] Error in success handler:',e)}},error:function(xhr,status,err){console.error('[MF] AJAX error:',status,err,'Re
12sponse:',xhr.responseText&&xhr.responseText.substring(0,500))},complete:function(){self.loading=!1;self.hideLoading()}})};KreMultifilter.prototype.updateGrid=function(html){if(!this.gridContainer){console.warn('[MF] gridContainer not found!');return}
13console.log('[MF] updateGrid: container=',this.gridContainer.className,'html length=',html.length);console.log('[MF] html preview:',html.substring(0,300));try{$(this.gridContainer).find('.customgridiso.isinitialized').each(function(){$(this).isotope('destroy');$(this).removeClass('isinitialized isprefiltered')})}catch(e){}
14this.gridContainer.innerHTML=html;console.log('[MF] innerHTML set, items count:',this.gridContainer.querySelectorAll('.cg').length);try{$(document).trigger('reinitjs')}catch(e){console.warn('[MF] reinitjs error:',e)}
15var $isoGrid=$(this.gridContainer).find('.customgridiso');if($isoGrid.length){$isoGrid.imagesLoaded(function(){try{if($isoGrid.data('isotope')){$isoGrid.isotope('layout')}}catch(e){console.warn('[MF] layout fallback error:',e)}})}
16if(this.page>1&&this.gridWrapper){var offset=$(this.gridWrapper).offset();if(offset){$('html, body').animate({scrollTop:offset.top-100},300)}}};KreMultifilter.prototype.updateCount=function(count){var countEl=this.panel.querySelector('.kre-mf-count');if(countEl){countEl.textContent=count+' Ergebnisse'}};KreMultifilter.prototype.updatePagination=function(paginationHtml){if(this.gridWrapper){var existing=this.gridWrapper.querySelector('.kre-mf-pagination');if(existing)existing.remove()}
17if(!paginationHtml||!this.gridContainer)return;var sidebarWrap=this.gridContainer.closest('.kre-mf-sidebar-wrap');if(sidebarWrap){sidebarWrap.insertAdjacentHTML('afterend',paginationHtml)}else{this.gridContainer.insertAdjacentHTML('afterend',paginationHtml)}};KreMultifilter.prototype.updateFilterCounts=function(filterCounts){var self=this;this.panel.querySelectorAll('.kre-mf-group').forEach(function(group){var key=group.dataset.filterKey;var type=group.dataset.filterType;if(type==='range'||!filterCounts.hasOwnProperty(key))return;var counts=filterCounts[key];if(type==='checkbox'||type==='radio'){group.querySelectorAll('.kre-mf-option').forEach(function(option){var input=option.querySelector('input');if(!input||input.value==='')return;var count=counts[input.value]||0;var badge=option.querySelector('.kre-mf-count-badge');if(badge){badge.textContent='('+count+')'}
18if(count===0&&!input.checked){option.classList.add('is-disabled');input.disabled=!0}else{option.classList.remove('is-disabled');input.disabled=!1}})}else if(type==='toggle'){group.querySelectorAll('.kre-mf-pill').forEach(function(pill){var input=pill.querySelector('input');if(!input||input.value==='')return;var count=counts[input.value]||0;if(count===0&&!input.checked){pill.classList.add('is-disabled');input.disabled=!0}else{pill.classList.remove('is-disabled');input.disabled=!1}})}else if(type==='select'){var select=group.querySelector('select');if(!select)return;Array.prototype.forEach.call(select.options,function(opt){if(opt.value==='')return;var count=counts[opt.value]||0;var label=opt.textContent.replace(/\s*\(\d+\)\s*$/,'');opt.textContent=label+' ('+count+')';if(count===0&&!opt.selected){opt.disabled=!0}else{opt.disabled=!1}})}})};KreMultifilter.prototype.showLoading=function(){if(!this.gridContainer)return;this.gridContainer.classList.add('kre-mf-loading')};KreMultifilter.prototype.hideLoading=function(){if(!this.gridContainer)return;this.gridContainer.classList.remove('kre-mf-loading')};KreMultifilter.prototype.updateUrl=function(){var params=new URLSearchParams();Object.keys(this.filters).forEach(function(key){var data=this.filters[key];if(Array.isArray(data.values)){params.set('mf_'+key,data.values.join(','))}else{if(data.values.min)params.set('mf_'+key+'_min',data.values.min);if(data.values.max)params.set('mf_'+key+'_max',data.values.max)}}.bind(this));if(this.search)params.set('mf_s',this.search);if(this.page>1)params.set('mf_page',this.page);var qs=params.toString();var url=window.location.pathname+(qs?'?'+qs:'');history.replaceState(null,'',url)};KreMultifilter.prototype.readUrlState=function(){var params=new URLSearchParams(window.location.search);var hasFilters=!1;var self=this;var searchParam=params.get('mf_s');if(searchParam){this.search=searchParam;var searchInput=this.panel.querySelector('.kre-mf-search input');if(searchInput)searchInput.value=searchParam;hasFilters=!0}
19var pageParam=params.get('mf_page');
19if(pageParam){this.page=parseInt(pageParam)||1;hasFilters=!0}
20this.panel.querySelectorAll('.kre-mf-group').forEach(function(group){var key=group.dataset.filterKey;var source=group.dataset.filterSource;var type=group.dataset.filterType;if(type==='range'){var minVal=params.get('mf_'+key+'_min')||'';var maxVal=params.get('mf_'+key+'_max')||'';if(minVal||maxVal){var minInput=group.querySelector('.mf-range-min');var maxInput=group.querySelector('.mf-range-max');if(minInput)minInput.value=minVal;if(maxInput)maxInput.value=maxVal;self.filters[key]={source:source,values:{min:minVal,max:maxVal}};hasFilters=!0}}else{var paramVal=params.get('mf_'+key);if(paramVal){var values=paramVal.split(',');hasFilters=!0;if(type==='checkbox'){group.querySelectorAll('input[type="checkbox"]').forEach(function(cb){if(values.indexOf(cb.value)!==-1)cb.checked=!0})}else if(type==='radio'||type==='toggle'){group.querySelectorAll('input[type="radio"]').forEach(function(r){if(values.indexOf(r.value)!==-1)r.checked=!0})}else if(type==='select'){var sel=group.querySelector('select');if(sel)sel.value=values[0]}
21self.filters[key]={source:source,values:values}}}});if(hasFilters){this.updateActiveState();this.doFilter()}};KreMultifilter.prototype.resetAll=function(){this.filters={};this.search='';this.page=1;this.panel.querySelectorAll('input[type="checkbox"], input[type="radio"]').forEach(function(i){i.checked=i.value==='';i.disabled=!1});this.panel.querySelectorAll('.kre-mf-option, .kre-mf-pill').forEach(function(opt){opt.classList.remove('is-disabled')});this.panel.querySelectorAll('.kre-mf-group').forEach(function(g){g.classList.remove('has-active','open')});this.panel.querySelectorAll('select').forEach(function(s){s.selectedIndex=0;Array.prototype.forEach.call(s.options,function(o){o.disabled=!1})});this.panel.querySelectorAll('.kre-mf-range input').forEach(function(i){i.value=''});var searchInput=this.panel.querySelector('.kre-mf-search input');if(searchInput)searchInput.value='';this.updateMobileBar();this.doFilter()};KreMultifilter.prototype.updateMobileBar=function(){var count=Object.keys(this.filters).length;if(this.search)count++;if(count>0){this.el.classList.add('has-filters')}else{this.el.classList.remove('has-filters')}
22var badge=this.el.querySelector('.kre-mf-toggle-count');if(badge){badge.textContent=count>0?count:''}};KreMultifilter.prototype.togglePanel=function(){if(this.el.classList.contains('panel-open')){this.closePanel()}else{this.openPanel()}};KreMultifilter.prototype.openPanel=function(){var panel=this.panel;if(!panel)return;this._panelParent=panel.parentElement;this._panelNext=panel.nextSibling;document.body.appendChild(panel);panel.classList.add('is-open');this.el.classList.add('panel-open');document.body.classList.add('kre-mf-overlay-open')};KreMultifilter.prototype.closePanel=function(){var panel=this.panel;if(panel){panel.classList.remove('is-open');if(this._panelParent){if(this._panelNext){this._panelParent.insertBefore(panel,this._panelNext)}else{this._panelParent.appendChild(panel)}}}
23this.el.classList.remove('panel-open');document.body.classList.remove('kre-mf-overlay-open')};function initMultifilters(){document.querySelectorAll('.kre-mf').forEach(function(mf){if(mf.dataset.initialized)return;mf.dataset.initialized='1';new KreMultifilter(mf)})}
24$(document).ready(initMultifilters)})(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.