{"mappings":"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","sources":["src/ts/career/latest-vacancies-slider.ts"],"sourcesContent":["import 'keen-slider/keen-slider.min.css';\nimport KeenSlider from 'keen-slider';\n\nfunction navigation(slider: any) {\n let wrapper: HTMLElement, dots: HTMLElement, arrowLeft: HTMLElement, arrowRight: HTMLElement;\n\n function markup(remove: boolean) {\n wrapperMarkup(remove);\n dotMarkup(remove);\n arrowMarkup(remove);\n }\n\n function removeElement(element: HTMLElement) {\n if (element.parentNode) {\n element.parentNode.removeChild(element);\n }\n }\n\n function createDiv(className: string): HTMLElement {\n const div = document.createElement('div');\n const classNames = className.split(' ');\n classNames.forEach((name) => div.classList.add(name));\n return div;\n }\n\n function arrowMarkup(remove: boolean) {\n if (remove) {\n removeElement(arrowLeft);\n removeElement(arrowRight);\n\n return;\n }\n\n arrowLeft = createDiv('arrow arrow--left');\n arrowLeft.addEventListener('click', () => slider.prev());\n arrowRight = createDiv('arrow arrow--right');\n arrowRight.addEventListener('click', () => slider.next());\n const arrowContainer = createDiv('arrow-container');\n arrowContainer.appendChild(arrowLeft);\n arrowContainer.appendChild(arrowRight);\n wrapper.appendChild(arrowContainer);\n if (slider.track.details.slides.length <= 1) {\n arrowContainer.classList.add('arrow-d-none');\n }\n }\n\n function wrapperMarkup(remove: boolean) {\n if (remove) {\n const parent = wrapper.parentNode;\n while (wrapper.firstChild) {\n if (parent) {\n parent.insertBefore(wrapper.firstChild, wrapper);\n }\n }\n removeElement(wrapper);\n return;\n }\n\n wrapper = createDiv('navigation-wrapper');\n if (slider.container.parentNode) {\n slider.container.parentNode.appendChild(wrapper);\n }\n wrapper.appendChild(slider.container);\n }\n\n function dotMarkup(remove: boolean) {\n if (remove) {\n removeElement(dots);\n return;\n }\n\n dots = createDiv('dots');\n slider.track.details.slides.forEach((_e: any, idx: any) => {\n const dot = createDiv('dot');\n dot.addEventListener('click', () => slider.moveToIdx(idx));\n dots.appendChild(dot);\n });\n wrapper.appendChild(dots);\n if (slider.track.details.slides.length <= 1) {\n dots.classList.add('dots-d-none');\n }\n }\n\n function updateClasses() {\n const slide = slider.track.details.rel;\n slide === 0 ? arrowLeft.classList.add('arrow--disabled') : arrowLeft.classList.remove('arrow--disabled');\n slide === slider.track.details.slides.length - 1\n ? arrowRight.classList.add('arrow--disabled')\n : arrowRight.classList.remove('arrow--disabled');\n\n Array.from(dots.children).forEach(function (dot, idx) {\n idx === slide ? dot.classList.add('dot--active') : dot.classList.remove('dot--active');\n });\n }\n\n slider.on('created', () => {\n markup(false);\n updateClasses();\n });\n\n slider.on('optionsChanged', () => {\n markup(true);\n markup(false);\n updateClasses();\n });\n\n slider.on('slideChanged', () => {\n updateClasses();\n });\n\n slider.on('destroyed', () => {\n markup(true);\n });\n}\n\nconst slider = new KeenSlider(\n '#latest-vacancies-slider',\n {\n loop: true,\n slides: {\n perView: 1,\n spacing: 15,\n },\n },\n [navigation],\n);\n\n// Add left and right arrows for the main slider\nconst mainPrevButton = document.getElementById('main-prev');\nconst mainNextButton = document.getElementById('main-next');\n\nif (mainPrevButton && mainNextButton) {\n mainPrevButton.addEventListener('click', () => {\n slider.prev();\n });\n\n mainNextButton.addEventListener('click', () => {\n slider.next();\n });\n}\n// Function to check if there are fewer than 4 slides\nfunction shouldAddPlaceholderSlide() {\n const slidesCount = document.querySelectorAll('.latest-vacancies__slide-item').length;\n return slidesCount < 4;\n}\n\nfunction addPlaceholderSlide() {\n const slideContainer = document.querySelector('.latest-vacancies__slide');\n const placeholderSlide = document.createElement('div');\n placeholderSlide.classList.add('latest-vacancies__slide-item');\n placeholderSlide.innerHTML = `\n
Check back soon for more vacancies
\n