{"version":3,"file":"zoom.v1.1760.min.js?t=73cfb0500e30bd8a7b6d","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/product-hub-components/DiscoverProducts/DiscoverProducts.js"],"sourcesContent":["class DiscoverProducts {\r\n constructor(el) {\r\n this.el = el;\r\n this.domMap = {\r\n $swiperContainer: el.querySelector('.add-swiper-mobile'),\r\n $slideWrapper: el.querySelector('.zdcm-discover-products__items'),\r\n $slideItems: el.querySelectorAll('.zdcm-discover-products__items-item')\r\n };\r\n\r\n this.swiper = null;\r\n this.resizeTimeout = null;\r\n this.heightCalculationTimeout = null;\r\n this.initializeComponent();\r\n }\r\n\r\n initializeComponent() {\r\n this.handleResize();\r\n \r\n window.addEventListener('resize', () => {\r\n clearTimeout(this.resizeTimeout);\r\n this.resizeTimeout = setTimeout(() => {\r\n this.handleResize();\r\n }, 250);\r\n });\r\n }\r\n\r\n handleResize() {\r\n const isMobile = window.innerWidth <= 1024;\r\n \r\n if (isMobile && !this.swiper) {\r\n this.setupMobileLayout();\r\n } else if (!isMobile && this.swiper) {\r\n this.setupDesktopLayout();\r\n } else if (!isMobile) {\r\n this.adjustDesktopLayout();\r\n }\r\n }\r\n adjustDesktopLayout() {\r\n const { $slideWrapper } = this.domMap;\r\n let maxHeight = 0;\r\n const items = this.el.querySelectorAll('.zdcm-discover-products__items-item');\r\n \r\n if (items.length > 0) {\r\n items.forEach(item => {\r\n item.style.height = 'auto';\r\n item.style.minHeight = 'auto';\r\n });\r\n items.forEach(item => {\r\n const itemHeight = item.offsetHeight;\r\n maxHeight = Math.max(maxHeight, itemHeight);\r\n });\r\n if (maxHeight > 0) {\r\n $slideWrapper.style.marginBottom = '60px';\r\n }\r\n }\r\n }\r\n calculateMaxItemHeight() {\r\n const { $slideItems } = this.domMap;\r\n if (!$slideItems || $slideItems.length === 0) return 0;\r\n\r\n let maxHeight = 0;\r\n $slideItems.forEach(item => {\r\n item.style.height = 'auto';\r\n item.style.minHeight = 'auto';\r\n });\r\n const container = this.domMap.$swiperContainer;\r\n container.offsetHeight;\r\n $slideItems.forEach((item, index) => {\r\n const rect = item.getBoundingClientRect();\r\n const itemHeight = Math.max(item.offsetHeight, rect.height);\r\n maxHeight = Math.max(maxHeight, itemHeight);\r\n });\r\n return maxHeight;\r\n }\r\n applyDynamicHeight() {\r\n clearTimeout(this.heightCalculationTimeout);\r\n \r\n this.heightCalculationTimeout = setTimeout(() => {\r\n const { $swiperContainer, $slideItems } = this.domMap;\r\n \r\n if (!$slideItems || $slideItems.length === 0) return;\r\n const maxHeight = this.calculateMaxItemHeight();\r\n\r\n if (maxHeight > 0) {\r\n $slideItems.forEach((item, index) => {\r\n item.style.height = maxHeight + 'px';\r\n item.style.minHeight = maxHeight + 'px';\r\n const link = item.querySelector('a');\r\n if (link) {\r\n link.style.height = '100%';\r\n }\r\n });\r\n const containerHeight = maxHeight + 80; \r\n $swiperContainer.style.height = containerHeight + 'px';\r\n $swiperContainer.style.minHeight = containerHeight + 'px';\r\n\r\n if (this.swiper) {\r\n setTimeout(() => {\r\n this.swiper.update();\r\n }, 50);\r\n }\r\n } else {\r\n console.warn('Max height calculation returned 0');\r\n }\r\n }, 150);\r\n }\r\n\r\n setupMobileLayout() {\r\n const { $swiperContainer, $slideWrapper, $slideItems } = this.domMap;\r\n \r\n $swiperContainer.classList.add('swiper');\r\n $slideWrapper.classList.add('swiper-wrapper');\r\n $slideWrapper.classList.remove('zdcm-discover-products__items');\r\n $slideWrapper.style.position = 'relative';\r\n $slideWrapper.style.top = '0';\r\n $slideWrapper.style.height = 'auto';\r\n $slideWrapper.style.marginBottom = '';\r\n \r\n const pagination = this.el.querySelector('.swiper-pagination');\r\n if (pagination) {\r\n pagination.style.display = 'block';\r\n }\r\n \r\n $slideItems.forEach(item => {\r\n item.classList.add('swiper-slide');\r\n });\r\n requestAnimationFrame(() => {\r\n this.initSwiper();\r\n });\r\n }\r\n\r\n setupDesktopLayout() {\r\n clearTimeout(this.heightCalculationTimeout);\r\n \r\n if (this.swiper) {\r\n this.swiper.destroy(true, true);\r\n this.swiper = null;\r\n }\r\n \r\n const { $swiperContainer, $slideWrapper, $slideItems } = this.domMap;\r\n $swiperContainer.classList.remove('swiper');\r\n $slideWrapper.classList.remove('swiper-wrapper');\r\n $slideWrapper.classList.add('zdcm-discover-products__items');\r\n $slideWrapper.style.position = '';\r\n $slideWrapper.style.top = '';\r\n $slideWrapper.style.height = '';\r\n $slideWrapper.style.transform = '';\r\n $swiperContainer.style.height = '';\r\n $swiperContainer.style.minHeight = '';\r\n \r\n const pagination = this.el.querySelector('.swiper-pagination');\r\n if (pagination) {\r\n pagination.style.display = 'none';\r\n }\r\n $slideItems.forEach(item => {\r\n item.classList.remove('swiper-slide');\r\n item.style.transform = '';\r\n item.style.transitionDuration = '';\r\n item.style.height = '';\r\n item.style.minHeight = '';\r\n const link = item.querySelector('a');\r\n if (link) {\r\n link.style.height = '';\r\n }\r\n });\r\n setTimeout(() => {\r\n this.adjustDesktopLayout();\r\n }, 100);\r\n }\r\n\r\n initSwiper() {\r\n const { $swiperContainer } = this.domMap;\r\n \r\n if (!$swiperContainer) return;\r\n\r\n this.swiper = new Swiper($swiperContainer, {\r\n slidesPerView: 'auto',\r\n spaceBetween: 10,\r\n centeredSlides: false,\r\n autoHeight: false,\r\n watchOverflow: true,\r\n pagination: {\r\n el: '.swiper-pagination',\r\n clickable: true,\r\n },\r\n breakpoints: {\r\n 320: {\r\n slidesPerView: 1,\r\n spaceBetween: 10,\r\n },\r\n 480: {\r\n slidesPerView: 2,\r\n spaceBetween: 10,\r\n },\r\n 844: {\r\n slidesPerView: 2,\r\n spaceBetween: 15,\r\n },\r\n 768: {\r\n slidesPerView: 2.8,\r\n spaceBetween: 15,\r\n },\r\n 1024: {\r\n slidesPerView: 3,\r\n spaceBetween: 20,\r\n }\r\n },\r\n on: {\r\n init: (swiper) => {\r\n setTimeout(() => {\r\n this.applyDynamicHeight();\r\n }, 300);\r\n },\r\n resize: () => {\r\n setTimeout(() => {\r\n this.applyDynamicHeight();\r\n }, 200);\r\n },\r\n update: () => {\r\n }\r\n }\r\n });\r\n }\r\n recalculateHeight() {\r\n if (window.innerWidth <= 1024 && this.swiper) {\r\n this.applyDynamicHeight();\r\n } else if (window.innerWidth > 1024) {\r\n this.adjustDesktopLayout();\r\n }\r\n }\r\n\r\n setEqualHeights() {\r\n const { $slideItems } = this.domMap;\r\n if (!$slideItems || $slideItems.length === 0) return;\r\n\r\n let heights = [];\r\n $slideItems.forEach(item => {\r\n item.style.height = 'auto';\r\n item.style.minHeight = 'auto';\r\n });\r\n $slideItems.forEach(item => {\r\n heights.push(item.offsetHeight);\r\n });\r\n const maxHeight = Math.max.apply(Math, heights);\r\n \r\n if (maxHeight > 0) {\r\n $slideItems.forEach(item => {\r\n item.style.height = maxHeight + 'px';\r\n });\r\n }\r\n }\r\n\r\n refresh() {\r\n this.handleResize();\r\n if (window.innerWidth <= 1024) {\r\n setTimeout(() => {\r\n this.applyDynamicHeight();\r\n }, 200);\r\n } else {\r\n setTimeout(() => {\r\n this.adjustDesktopLayout();\r\n }, 200);\r\n }\r\n }\r\n\r\n destroy() {\r\n clearTimeout(this.heightCalculationTimeout);\r\n \r\n if (this.swiper) {\r\n this.swiper.destroy(true, true);\r\n this.swiper = null;\r\n }\r\n \r\n if (this.resizeTimeout) {\r\n clearTimeout(this.resizeTimeout);\r\n }\r\n \r\n window.removeEventListener('resize', this.handleResize);\r\n \r\n }\r\n}\r\n\r\nexport default DiscoverProducts;\r\n"],"names":["DiscoverProducts","el","_classCallCheck","this","domMap","$swiperContainer","querySelector","$slideWrapper","$slideItems","querySelectorAll","swiper","resizeTimeout","heightCalculationTimeout","initializeComponent","key","value","_this","handleResize","window","addEventListener","clearTimeout","setTimeout","isMobile","innerWidth","setupMobileLayout","setupDesktopLayout","adjustDesktopLayout","maxHeight","items","length","forEach","item","style","height","minHeight","itemHeight","offsetHeight","Math","max","marginBottom","index","rect","getBoundingClientRect","_this2","_this2$domMap","calculateMaxItemHeight","link","containerHeight","update","console","warn","_this3","_this$domMap","classList","add","remove","position","top","pagination","display","requestAnimationFrame","initSwiper","_this4","destroy","_this$domMap2","transform","transitionDuration","_this5","Swiper","slidesPerView","spaceBetween","centeredSlides","autoHeight","watchOverflow","clickable","breakpoints","on","init","applyDynamicHeight","resize","heights","push","apply","_this6","removeEventListener"],"sourceRoot":""}