\n ${t.name} (${t.count||0})\n `,e.appendChild(n)})),e.dataset.loaded="true"}catch(e){console.error("Błąd podczas pobierania krajów dla mobilnego menu:",e)}}function filterCountries(e){const t=document.querySelectorAll("#countryMenu a, #countryListContainer a");e=e.toLowerCase(),t.forEach((t=>{t.textContent.toLowerCase().includes(e)?t.style.display="":t.style.display="none"}))}function toggleCountryMenu(){const e=document.getElementById("countryMenu"),t=document.getElementById("languageOptions");t&&!t.classList.contains("hidden")&&t.classList.add("hidden"),"true"!==e.dataset.loaded&&loadCountries(),e.classList.toggle("hidden")}async function loadCountries(){const e=document.getElementById("countryMenu"),t=document.getElementById("countryLoader"),n=document.getElementById("countryListContainer");try{const o="en",i=await fetch(`/api/countries?lang=${o}`),s=await i.json();if(t&&t.remove(),0===s.length)return n.innerHTML='\n
\n No country for this language version has any job offers yet.\n
\n ',void(e.dataset.loaded="true");n.innerHTML="",s.forEach((e=>{const t=document.createElement("a"),o=`/jobs/${e.slug}`;t.href=o,t.className="flex items-center justify-between text-sm text-gray-700 hover:bg-gray-100 rounded px-4 py-2",t.innerHTML=`\n \n \n ${e.name} (${e.count||0})\n `,n.appendChild(t)})),e.dataset.loaded="true"}catch(e){console.error("Błąd podczas pobierania krajów:",e)}}function toggleLanguageDropdown(){document.getElementById("languageDropdown").classList.toggle("hidden")}function selectLanguage(e,t){document.getElementById("languageDropdown").classList.add("hidden"),document.querySelector('[onclick="toggleLanguageDropdown()"] span').textContent=t}function toggleMobileMenu(){const e=document.getElementById("mobileMenu"),t=document.getElementById("menuIcon");document.body.classList.toggle("overflow-hidden"),e.classList.toggle("hidden"),e.classList.contains("hidden")||"true"===e.dataset.loaded||loadMobileCountries(),e.classList.contains("hidden")?t.innerHTML='\n ':t.innerHTML='\n '}function filterMobileCountries(e){const t=document.querySelectorAll("#mobileCountryListContainer a");e=e.toLowerCase(),t.forEach((t=>{t.textContent.toLowerCase().includes(e)?t.style.display="":t.style.display="none"}))}const primaryText="Crawling the web for your ",highlightText="perfect job",typingSpeed=30,resetDelay=3e4;let typingIndex=0,isResetting=!1;const typingEffect=document.getElementById("typingEffect"),typingEffectHighlight=document.getElementById("typingEffectHighlight");function typeText(){typingIndex<26?(typingEffect.textContent+=primaryText.charAt(typingIndex),typingEffect.classList.remove("opacity-0")):typingIndex-26<11&&(typingEffectHighlight.textContent+="perfect job".charAt(typingIndex-26),typingEffectHighlight.classList.remove("opacity-0")),typingIndex++,typingIndex<37?setTimeout(typeText,30):isResetting||(isResetting=!0,setTimeout(resetTypingEffect,3e4))}function resetTypingEffect(){typingEffect.textContent="",typingEffectHighlight.textContent="",typingIndex=0,isResetting=!1,typeText()}typeText()
Bridge351
Job Offers
FrontEnd Developer
Location
Portugal , Lisbon
Salary
Not provided
Expiration Date
Until further notice
Read More
Senior Fullstack Outsystems Developer
Location
Portugal , Lisbon
Salary
Not provided
Expiration Date
Until further notice
Read More
We use cookies to enhance your experience, analyze traffic, and serve personalized content. By clicking “Accept”, you agree to the use of cookies.