PageSourceSearch

https://lybrae.nl/wp-content/cache/min/1/wp-content/themes/lybrae/…/script.js?ver=1788429633

js lybrae.nl collected 2026-10-06 13:18:22 UTC 4,893 bytes, 9 lines download raw bytes

1window.addEventListener('DOMContentLoaded',()=>{const vacatureOverzichten=document.querySelectorAll('.vacature-overzicht');vacatureOverzichten.forEach(element=>{initVacatureOverzicht(element)})});function initVacatureOverzicht(element){const results=element.querySelector('.vacatures__results');const count=element.querySelector('#vacature-count');const form=element.querySelector('form');const loadFormdataFromUrl=function(){const url=new URL(window.location.href);const params=url.searchParams;if(params.size===0){const defaultVakgebied=params.has('vakgebied')?null:(element.dataset.defaultVakgebied||'');const defaultRegio=params.has('regio')?null:(element.dataset.defaultRegio||'');const defaultZoekterm=params.has('zoekterm')?null:(element.dataset.defaultZoekterm||'');if(defaultVakgebied){const vakgebiedValues=defaultVakgebied.split(',').map(v=>v.trim());const select=form.querySelector('select[name="vakgebied[]"]');if(select&&select.multiple){Array.from(select.options).forEach(option=>{option.selected=vakgebiedValues.includes(option.value)})}}
2if(defaultRegio){const regioValues=defaultRegio.split(',').map(r=>r.trim());const select=form.querySelector('select[name="regio[]"]');if(select&&select.multiple){Array.from(select.options).forEach(option=>{option.selected=regioValues.includes(option.value)})}}
3if(defaultZoekterm){const zoektermInput=form.querySelector('#filterSearch');if(zoektermInput){zoektermInput.value=defaultZoekterm}}}
4form.querySelectorAll('input, select').forEach(input=>{const name=input.name;if(params.has(name)){const values=params.get(name).split(',');if(input.type==='checkbox'||input.type==='radio'){input.checked=values.includes(input.value)}else if(input.tagName.toLowerCase()==='select'&&input.multiple){Array.from(input.options).forEach(option=>{option.selected=values.includes(option.value)})}else if(input.tagName.toLowerCase()==='select'){input.value=values[0]}else{input.value=values.join(', ')}}})}
5const filter=function(changeUrl=!0){element.classList.add('loading');const formData=new FormData(form);formData.append('action','lybrae_get_vacatures');if(changeUrl){const url=new URL(window.location.href);const keys=new Set([...url.searchParams.keys(),...Array.from(formData.keys())].filter(key=>key!=='action'));keys.forEach(key=>
5{const values=formData.getAll(key).filter(value=>value);if(values.length>0){url.searchParams.set(key,values.join(','))}else{url.searchParams.delete(key)}});window.history.pushState({},'',url.toString())}
6formData.append('is_compact',element.dataset.isCompact);fetch(vars.ajaxurl,{method:'POST',body:formData}).then(response=>{return response.json()}).then(json=>{results.innerHTML=json.html;count.textContent=json.count;initPagination();element.classList.remove('loading')})};const initTomselect=function(){const selectElements=element.querySelectorAll('select');selectElements.forEach(select=>{if(select.classList.contains('jsinit-tom-select')){return}
7select.classList.add('jsinit-tom-select');const tom=new TomSelect(select,{plugins:['clear_button','checkbox_options','input_autogrow','no_active_items'],multiple:!0,onInitialize:function(){const self=this;self.control.addEventListener('click',(e)=>{const target=e.target;if(target&&target.classList.contains('item')&&target.hasAttribute('data-ts-item')){self.open();e.preventDefault()}});const updateItemDisplay=()=>{const items=self.control.querySelectorAll('.item[data-ts-item]');const visibleCount=3;items.forEach(item=>item.style.display='');items.forEach((item,index)=>{if(index>=visibleCount){item.style.display='none'}});const existing=self.control.querySelector('.item-summary');if(existing)existing.remove();if(items.length>visibleCount){const summary=document.createElement('div');summary.className='item item-summary disabled';summary.textContent=`+ ${items.length - visibleCount}`;const input=self.control.querySelector('input');if(input){self.control.insertBefore(summary,input)}else{self.control.appendChild(summary)}}};self.on('change',updateItemDisplay);self.on('item_add',updateItemDisplay);self.on('item_remove',updateItemDisplay);updateItemDisplay()}})})};const initPagination=function(){const paginationLinks=element.querySelectorAll('.pagination a');paginationLinks.forEach(link=>{link.addEventListener('click',(event)=>{event.preventDefault();const pageInput=form.querySelector('input[name="pagina"]');const page=link.getAttribute('data-page-nr');if(pageInput){pageInput.value=page}
8filter();const offset=200;const top=results.getBoundingClientRect().top+window.pageYOffset-offset;window.scrollTo({top,behavior:'smooth'})})})};const searchInput=form.querySelector('#filterSearch');if(searchInput){let debounceTimer;searchInput.addEventListener('input',(event)=>{clearTimeout(debounceTimer);debounceTimer=setTimeout(()=>{filter()},500)})}
9form.addEventListener('change',(event)=>{filter()});loadFormdataFromUrl();filter(!1);initTomselect()}

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.