{"version":3,"file":"zoomv.1085.min.js?t=84a5c0b30e79a1e0180e","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/components/CategoryTabs/CategoryTabs.js"],"sourcesContent":["class CategoryTabs {\r\n constructor(el) {\r\n this.el = el\r\n this.domMap = {\r\n container: el.querySelector('.category-tabs__headline-wrapper'),\r\n $swiper: el.querySelector('.swiper'),\r\n $wrapper: el.querySelector('.swiper-wrapper'),\r\n $tabs: el.querySelectorAll('.category-slider__inner-tabs'),\r\n accordions: el.querySelectorAll(\".accordion__item\"),\r\n content: el.querySelector(\".accordion__item-content\")\r\n }\r\n this.initSwiper()\r\n this.addListeners()\r\n this.deviceSize()\r\n this.initAccordion()\r\n this.setContainerHeight()\r\n this.addSwiperSlideToAccordions()\r\n }\r\n\r\n initSwiper() {\r\n this.swiper = new Swiper(this.domMap.$swiper, {\r\n slidesPerView: 1.05,\r\n breakpoints: {\r\n 768: {\r\n slidesPerView: 1\r\n }\r\n },\r\n fadeEffect: {\r\n crossFade: true,\r\n speed: 200\r\n },\r\n effect: 'fade'\r\n })\r\n\r\n this.swiper.on('slideChange', () => {\r\n const { $tabs } = this.domMap\r\n $tabs.forEach((tab) => tab.setAttribute('aria-selected', 'false'))\r\n $tabs[this.swiper.activeIndex].setAttribute('aria-selected', 'true')\r\n })\r\n }\r\n\r\n addListeners() {\r\n window.addEventListener('resize', this.setContainerHeight)\r\n window.addEventListener('resize', this.deviceSize)\r\n const { $tabs, $wrapper } = this.domMap\r\n\r\n $tabs.forEach((tab, index, arr) => {\r\n tab.addEventListener('click', (e) => {\r\n arr.forEach((tab) => tab.setAttribute('aria-selected', 'false'))\r\n tab.setAttribute('aria-selected', 'true')\r\n this.swiper.slideTo(index)\r\n })\r\n })\r\n }\r\n\r\n setContainerHeight = () => {\r\n if (this.domMap.container) {\r\n this.el.style.setProperty(\r\n '--container-height',\r\n `${this.domMap.container.clientHeight}px`\r\n )\r\n }\r\n }\r\n\r\n deviceSize = () => {\r\n this.el.style.setProperty(\r\n '--device-width',\r\n `${this.el.clientWidth}px`\r\n )\r\n }\r\n\r\n openAccordion(accordion) {\r\n const content = accordion.querySelector(\".accordion__item-content\")\r\n if (!accordion.classList.contains(\"accordion__active\")) {\r\n accordion.classList.add(\"accordion__active\")\r\n content.style.maxHeight = content.scrollHeight + \"px\"\r\n content.setAttribute('aria-hidden', 'false')\r\n }\r\n}\r\n\r\n closeAccordion(accordion) {\r\n const content = accordion.querySelector(\".accordion__item-content\")\r\n if (accordion.classList.contains(\"accordion__active\")) {\r\n accordion.classList.remove(\"accordion__active\")\r\n content.style.maxHeight = null\r\n content.setAttribute('aria-hidden', 'true')\r\n }\r\n }\r\n\r\n initAccordion() {\r\n const categorySliders = this.el.querySelectorAll('.accordion.category-slider')\r\n categorySliders.forEach((slider) => {\r\n const accordions = slider.querySelectorAll('.accordion__item')\r\n if (accordions.length > 0) {\r\n this.openAccordion(accordions[0])\r\n }\r\n })\r\n const { accordions } = this.domMap\r\n accordions.forEach((accordion) => {\r\n accordion.addEventListener(\"click\", (event) => {\r\n event.stopPropagation()\r\n if (!accordion.classList.contains(\"accordion__active\")) {\r\n accordions.forEach((acc) => {\r\n if (acc !== accordion && acc.classList.contains(\"accordion__active\")) {\r\n this.closeAccordion(acc)\r\n }\r\n })\r\n }\r\n this.openAccordion(accordion)\r\n })\r\n })\r\n }\r\n\r\n addSwiperSlideToAccordions() {\r\n const { $wrapper } = this.domMap\r\n\r\n this.domMap.accordions.forEach((accordion) => {\r\n const tabId = accordion.getAttribute('aria-labelledby') || accordion.getAttribute('id')\r\n const slide = $wrapper.querySelector(`.swiper-slide[aria-labelledby=\"${tabId}\"]`)\r\n\r\n if (slide) {\r\n const titleElement = accordion.querySelector('.fdn-copy-block__title')\r\n accordion.insertBefore(slide.cloneNode(true), titleElement)\r\n }\r\n })\r\n }\r\n}\r\n\r\nexport default CategoryTabs"],"names":["CategoryTabs","el","_this","_classCallCheck","_defineProperty","domMap","container","style","setProperty","concat","clientHeight","clientWidth","this","querySelector","$swiper","$wrapper","$tabs","querySelectorAll","accordions","content","initSwiper","addListeners","deviceSize","initAccordion","setContainerHeight","addSwiperSlideToAccordions","key","value","_this2","swiper","Swiper","slidesPerView","breakpoints","fadeEffect","crossFade","speed","effect","on","forEach","tab","setAttribute","activeIndex","_this3","window","addEventListener","_this$domMap","index","arr","e","slideTo","accordion","classList","contains","add","maxHeight","scrollHeight","remove","_this4","slider","length","openAccordion","event","stopPropagation","acc","closeAccordion","tabId","getAttribute","slide","titleElement","insertBefore","cloneNode"],"sourceRoot":""}