PageSourceSearch

https://www.jobhaus.de/wp-content/cache/min/1/widget/tts-search.min.js?ver=1781281637

js jobhaus.de collected 2026-10-04 09:31:42 UTC 13,933 bytes, 1 lines download raw bytes

1const ttsSearch=function(){const resultJobAdTitle="JOBADTITLE",resultJobAdCity="JOBADCITY",resultContractType="CONTRACTTYPE",resultStartOfActivity="STARTOFACTIVITY",resultIndustry="INDUSTRY",resultShiftwork="SHIFTWORK",resultBenefits="BENEFITS",resultSalary="SALARY",resultFieldOfActivity="FIELDOFACTIVITY",resultHidden="HIDDEN";let _settings={containerId:"",accountId:"",officeId:"",categoryId:"",preventPreload:!1,redirectUrl:"",onlySearchBar:!1,colors:{searchBarFont:"#333",searchBarBackground:"#fff",searchBarBorder:"#dbdbdb",highlightFont:"#a5cada",highlightBackground:"#1c313a",resultFont:"#000",resultBackground:"#fff",resultBorder:"#dbdbdb"},borderRadius:"0px",hardShadow:"2px",text:{placeholderSearchJobTitle:"Was ist dein Talent?",placeholderSearchCity:"Wo",searchButton:"Suchen",areaSearch:"Umkreis",emptySearchResult:"Keine passenden Stellenanzeigen gefunden",searchError:"Es konnten keine Stellenanzeigen geladen werden",searching:"Laden..."},result:{lineOneLeft:resultJobAdTitle,lineOneRight:resultJobAdCity,lineTwoLeft:resultContractType,lineTwoRight:resultStartOfActivity,lineThreeLeft:resultHidden,lineThreeRight:resultHidden}},_storageItemName="tts-search-request",_searchActivated=!1,_loading=!1,_baseUrlUI="https://bewerbung.jobs/";const _lastSearchRequest={skip:0,take:25,jobTitle:"",city:"",maxDistance:0,geoLat:0,geoLon:0,count:0,accountId:null,officeId:null,categoryId:null},_templates={jobTemplate:"",messageTemplate:""};function isObject(value){return"object"==typeof value}function mergeObjects(target,source){return Object.keys(source).forEach((key=>{const sourceValue=source[key];let targetValue=target[key];isObject(sourceValue)?(null==targetValue&&(targetValue={}),target[key]=mergeObjects(targetValue,sourceValue)):null==targetValue&&(target[key]=sourceValue)})),target}function shouldLoadFurtherData(resultBox){if(!_searchActivated)return!1;return resultBox.scrollHeight-resultBox.clientHeight-resultBox.scrollTop<300}function loadSearchTemplate(callback){const widget=document.getElementById(_settings.containerId),xhrTemplate=new XMLHttpRequest;xhrTemplate.onreadystatechange=function(e){if(4==xhrTemplate.readyState&&200==xhrTemplate.status){widget.innerHTML=xhrTemplate.responseText;document.getElementById("ttsJobTitle").placeholder=_settings.text.placeholderSearchJobTitle;document.getElementById("ttsCity").placeholder=_settings.text.placeholderSearchCity;document.getElementById("ttsSearch").innerHTML=_settings.text.searchButton;if(document.getElementById("ttsSearchAreaSearch").innerHTML=_settings.text.areaSearch,widget.className+=" tts-search-widget",_settings.onlySearchBar)widget.className+=" only-search-bar",widget.removeChild(widget.getElementsByClassName("tts-result-box")[0]);else{const resultBox=widget.getElementsByClassName("tts-result-box")[0];resultBox.onscroll=function(event){shouldLoadFurtherData(resultBox)&&searchJobs(!1)},callback()}validateActionButton()}},xhrTemplate.open("GET",_baseUrlUI+"widget/tts-search",!0),xhrTemplate.send()}function loadResultItemTemplate(filename,callback){const xhrTemplate=new XMLHttpRequest;xhrTemplate.onreadystatechange=function(e){4==xhrTemplate.readyState&&200==xhrTemplate.status&&callback(xhrTemplate.responseText)},xhrTemplate.open("GET",_baseUrlUI+"widget/"+filename,!0),xhrTemplate.send()}function injectCssCode(){const head=document.getElementsByTagName("head"),linkCss=document.createElement("link");linkCss.rel="stylesheet",linkCss.href=_baseUrlUI+"widget/tts-search.css",head[0].prepend(linkCss),setTheme()}function setTheme(){let highlightDisabledColor=_settings.colors.highlightBackgroun
1d;4===highlightDisabledColor.length?highlightDisabledColor+="c":9===highlightDisabledColor.length?highlightDisabledColor=highlightDisabledColor.substring(0,7)+"cc":highlightDisabledColor+="cc",document.documentElement.style.setProperty("--tts-search-bar-font-color",_settings.colors.searchBarFont),document.documentElement.style.setProperty("--tts-search-bar-background-color",_settings.colors.searchBarBackground),document.documentElement.style.setProperty("--tts-search-bar-border-color",_settings.colors.searchBarBorder),document.documentElement.style.setProperty("--tts-search-highlight-font-color",_settings.colors.highlightFont),document.documentElement.style.setProperty("--tts-search-highlight-background-color",_settings.colors.highlightBackground),document.documentElement.style.setProperty("--tts-search-highlight-background-disabled-color",highlightDisabledColor),document.documentElement.style.setProperty("--tts-search-result-font-color",_settings.colors.resultFont),document.documentElement.style.setProperty("--tts-search-result-background-color",_settings.colors.resultBackground),document.documentElement.style.setProperty("--tts-search-result-border-color",_settings.colors.resultBorder),document.documentElement.style.setProperty("--tts-search-border-radius",_settings.borderRadius),document.documentElement.style.setProperty("--tts-search-shadow",_settings.hardShadow)}function formatResultItem(resultItem){let htmlItem=document.createElement("div");htmlItem.innerHTML=_templates.jobTemplate.replace("ttsEntryPoint","ttsSearch"),htmlItem=htmlItem.getElementsByClassName("tts-result-item")[0],htmlItem.id=resultItem.id;const lineOneLeft=htmlItem.getElementsByClassName("tts-result-item-line-one")[0].getElementsByClassName("tts-result-item-left")[0],lineOneRight=htmlItem.getElementsByClassName("tts-result-item-line-one")[0].getElementsByClassName("tts-result-item-right")[0],lineTwoLeft=htmlItem.getElementsByClassName("tts-result-item-line-two")[0].getElementsByClassName("tts-result-item-left")[0],lineTwoRight=htmlItem.getElementsByClassName("tts-result-item-line-two")[0].getElementsByClassName("tts-result-item-right")[0],lineThreeLeft=htmlItem.getElementsByClassName("tts-result-item-line-three")[0].getElementsByClassName("tts-result-item-left")[0],lineThreeRight=htmlItem.getElementsByClassName("tts-result-item-line-three")[0].getElementsByClassName("tts-result-item-right")[0];setResultItemContact(lineOneLeft,_settings.result.lineOneLeft,resultItem,htmlItem),setResultItemContact(lineOneRight,_settings.result.lineOneRight,resultItem,htmlItem),setResultItemContact(lineTwoLeft,_settings.result.lineTwoLeft,resultItem,htmlItem),setResultItemContact(lineTwoRight,_settings.result.lineTwoRight,resultItem,htmlItem),setResultItemContact(lineThreeLeft,_settings.result.lineThreeLeft,resultItem,htmlItem),setResultItemContact(lineThreeRight,_settings.result.lineThreeRight,resultItem,htmlItem);let logoUrl=_baseUrlUI+"assets/search/Bewerbung-Jobs-Logo.svg";const companyLogo=htmlItem.getElementsByClassName("tts-result-item-company-logo")[0];return resultItem.companyLogoUrl&&(logoUrl=resultItem.companyLogoUrl),companyLogo.src=logoUrl,htmlItem}function setResultItemContact(htmlElement,setting,resultItem,htmlItem){switch(setting){case resultJobAdTitle:htmlElement.innerHTML=resultItem.jobTitle||"&nbsp;";break;case resultJobAdCity:if(resultItem.jobLocations){const location=htmlItem.getElementsByClassName("tts-result-location-svg")[0];htmlElement.innerHTML=`${location.outerHTML.replace('style="display:none"',"")}<div>${resultItem.jobLocations}</div>`}else htmlElement.innerHTML="&nbsp;";break;case resultContractType:htmlElement.innerHTML=resultItem.contractType||"&nbsp;";break;case resultStartOfActivity:htmlElement.innerHTML=resultItem.earliestStartOfActivityFormatted||"&nbsp;";break;case resultIndustry:htmlElement.innerHTML=resultItem.industry||"&nbsp;";break;case resultShiftwork:htmlElement.innerHTML=resultItem.shiftWork?"Schichtarbeit":"&nbsp;";break;case resultBenefits:resultItem.benefits?htmlElement.innerHTML=`Zulagen: ${resultItem.benefits}`:htmlElement.innerHTML="&nbsp;";break;case resultSalary:var rangeStart=parseFloat(resultItem.salaryRangeStart),rangeEnd=parseFloat(resultItem.salaryRangeEnd),currency=resultItem.salaryCurrency,period=(resultItem.salaryPeriod||"").replace("HOUR","Stunde").replace("MONTH","Monat").replace("YEAR","Jahr"),salary="";!isNaN(rangeStart)&&!isNaN(rangeEnd)&&rangeStart>0&&rangeEnd>
10?salary=`${rangeStart.toLocaleString("de-DE")} - ${rangeEnd.toLocaleString("de-DE")}`:!isNaN(rangeStart)&&rangeStart>0?salary=`ab ${rangeStart.toLocaleString("de-DE")}`:!isNaN(rangeEnd)&&rangeEnd>0&&(salary=`bis ${rangeEnd.toLocaleString("de-DE")}`),salary&&(currency&&(salary+=` ${currency}`),period&&(salary+=` / ${period}`)),htmlElement.innerHTML=salary||"&nbsp;";break;case resultFieldOfActivity:htmlElement.innerHTML=resultItem.fieldOfActivity||"&nbsp;";break;case resultHidden:htmlElement.style.display="none"}"&nbsp;"===htmlElement.innerHTML&&(htmlElement.className+=" hidden-on-mobile")}function openUrl(id){const url=_baseUrlUI+id+"?source=widget";window.open(url,"_blank")}function validateActionButton(){const button=document.getElementById("ttsSearch"),jobTitle=document.getElementById("ttsJobTitle"),city=document.getElementById("ttsCity"),maxDistance=document.getElementById("ttsMaxDistance");button.disabled=!jobTitle.value&&!city.value||parseInt(maxDistance.value)>0&&!city.value||_loading}function showMessage(message){let resultBox=document.getElementById(_settings.containerId).getElementsByClassName("tts-result-box")[0];resultBox.innerHTML=_templates.messageTemplate,messageTag=resultBox.getElementsByClassName("tts-result-item-message")[0],messageTag.innerText=message}function searchJobs(resetResultContainer){if(_loading||_lastSearchRequest.count>0&&_lastSearchRequest.count<_lastSearchRequest.skip||_lastSearchRequest.count>0&&0===_lastSearchRequest.skip&&_lastSearchRequest.count<_lastSearchRequest.take)return;_loading=!0,validateActionButton(),resetResultContainer?showMessage(_settings.text.searching):_lastSearchRequest.skip+=_lastSearchRequest.take;const xhr=new XMLHttpRequest;xhr.addEventListener("error",(function(e){showMessage(_settings.text.searchError),_loading=!1})),xhr.onreadystatechange=function(e){if(4==xhr.readyState&&200==xhr.status){const result=processSearchResult(xhr,resetResultContainer);_lastSearchRequest.geoLat=result.geoLat,_lastSearchRequest.geoLon=result.geoLon,_lastSearchRequest.count=result.count;const resultBox=document.getElementById(_settings.containerId).getElementsByClassName("tts-result-box")[0];result.items.length>0&&shouldLoadFurtherData(resultBox)&&searchJobs(!1),validateActionButton()}else 4==xhr.readyState&&(showMessage(_settings.text.searchError),_loading=!1)},xhr.open("POST",_baseUrlUI+"widget/search",!0),xhr.setRequestHeader("Content-type","application/json"),xhr.send(JSON.stringify(_lastSearchRequest))}function processSearchResult(xhr,resetResultContainer){const resultBox=document.getElementById(_settings.containerId).getElementsByClassName("tts-result-box")[0],result=JSON.parse(xhr.responseText);if(resetResultContainer){if(0===result.items.length)return showMessage(_settings.text.emptySearchResult),_loading=!1,result;resultBox.innerHTML=""}for(let index=0;index<result.items.length;index++)resultBox.appendChild(formatResultItem(result.items[index]));return _loading=!1,result}function setDistanceDisplay(){const maxDistance=parseInt(document.getElementById("ttsMaxDistance").value),distanceDisplay=document.getElementById("ttsDistanceDisplay");isNaN(maxDistance)||!maxDistance?distanceDisplay.innerText="":distanceDisplay.innerText=maxDistance+" km",validateActionButton()}function executeJobAdSearch(){const jobTitle=document.getElementById("ttsJobTitle"),city=document.getElementById("ttsCity"),maxDistance=document.getElementById("ttsMaxDistance");_searchActivated=!0;const storageSearchRequest=window.localStorage.getItem(_storageItemName);if(storageSearchRequest){window.localStorage.removeItem(_storageItemName);const lastSearchRequest=JSON.parse(storageSearchRequest);_lastSearchRequest.jobTitle=lastSearchRequest.jobTitle,_lastSearchRequest.city=lastSearchRequest.city,_lastSearchRequest.maxDistance=lastSearchRequest.maxDistance,jobTitle.value=_lastSearchRequest.jobTitle,city.value=_lastSearchRequest.city,maxDistance.value=(_lastSearchRequest.maxDistance||0).toString(10),setDistanceDisplay()}else _lastSearchRequest.jobTitle=jobTitle.value,_lastSearchRequest.city!==city.value&&(_lastSearchRequest.geoLat=null,_lastSearchRequest.geoLon=null),_lastSearchRequest.city=city.value,_lastSearchRequest.maxDistance=parseInt(maxDistance.value),_lastSearchRequest.maxDistance<=0&&(_lastSearchRequest.maxDistance=null);_lastSearchRequest.count=0,_lastSearchRequest.skip=0,_settings.onlySearchBar&&!storageSearchRequest?_settings.redirectUrl&&(window.localStorage.setItem(_storageItemName,JSON.stringify(_lastSearchRequest)),window.location.href=_settings.redirectUrl||"/"):_settings.onlySearchBar||searchJobs(!0)}return{create:function(container,accountId,preventPreload){isObject(container)?(_settings=mergeObjects(container,_settings),container.placeholderSearchJobTitle&&(_settings.text.placeholderSearchJobTitle=container.placeholderSearchJobTitle),container.placeholderSearchCity&&(_settings.text.placeholderSearchCity=container.placeholderSearchCity)):(_settings.containerId=container,_settings.accountId=accountId,_settings.preventPreload=preventPreload),_lastSearchRequest.accountId=_settings.accountId,_lastSearchRequest.officeId=_settings.officeId,_lastSearchRequest.categoryId=_settings.categoryId,injectCssCode(),loadSearchTemplate((()=>{_settings.onlySearchBar||(loadResultItemTemplate("tts-job-template",(template=>{_templates.jobTemplate=template,_templates.messageTemplate&&_templates.jobTemplate&&!_settings.preventPreload&&executeJobAdSearch()})),loadResultItemTemplate("tts-message-template",(template=>{_templates.messageTemplate=template,showMessage(_settings.text.emptySearchResult),_templates.messageTemplate&&_templates.jobTemplate&&!_settings.preventPreload&&executeJobAdSearch()})))}))},search:function(){executeJobAdSearch()},setDistance:function(){setDistanceDisplay()},validate:function(){validateActionButton()},openUrl:function(id){openUrl(id)}}}()

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.