{"version":3,"file":"zoom.v1.6624.min.js?t=c151e9a3ce014644ab80","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/product-hub-components/CustomerStoriesExpandedCards/CustomerStoriesExpandedCards.js"],"sourcesContent":["class CustomerStoriesExpandedCardsHover {\r\n constructor(el) {\r\n this.el = el\r\n this.domMap = {\r\n $swiper: el,\r\n $slides: el.querySelectorAll('.swiper-slide'),\r\n $nextBtn: el.querySelector('.swiper-button-next'),\r\n $prevBtn: el.querySelector('.swiper-button-prev')\r\n }\r\n\r\n if (!this.domMap.$slides.length) {\r\n return\r\n }\r\n\r\n this.activeIndex = 0\r\n this.swiper = null\r\n this.isTransitioning = false\r\n this.hoverTimeout = null\r\n this.isHovering = false\r\n this.isMobile = false\r\n\r\n this.config = {\r\n expandedWidthRatio: 0.7334,\r\n spacing: 16,\r\n transitionDuration: 800,\r\n transitionEasing: 'cubic-bezier(0.4, 0, 0.2, 1)',\r\n hoverDelay: 200\r\n }\r\n\r\n this.init()\r\n }\r\n\r\n init() {\r\n try {\r\n this.checkDevice()\r\n this.initSwiper()\r\n this.initInteractionHandlers()\r\n this.initCustomNavigation()\r\n this.initKeyboardNavigation()\r\n this.initResizeObserver()\r\n this.updateThumbnailImagePosition()\r\n } catch (error) {}\r\n }\r\n\r\n updateThumbnailImagePosition() {\r\n // Loop through each slide element\r\n this.domMap.$slides.forEach(slide => {\r\n // Get the data-image-position value\r\n const position = slide.getAttribute('data-image-position');\r\n\r\n // Find the image inside this slide\r\n const img = slide.querySelector('img.zdcm-cs-expanded-card__background-image');\r\n\r\n // If both exist and position has a value, apply it\r\n if (img && position) {\r\n img.style.objectPosition = position;\r\n }\r\n });\r\n }\r\n\r\n checkDevice() {\r\n this.isMobile = window.innerWidth <= 1024\r\n }\r\n\r\n initSwiper() {\r\n const { $swiper, $nextBtn, $prevBtn } = this.domMap\r\n\r\n this.swiper = new Swiper($swiper, {\r\n slidesPerView: 'auto',\r\n spaceBetween: 0,\r\n centeredSlides: false,\r\n watchSlidesProgress: true,\r\n allowTouchMove: true,\r\n navigation: {\r\n nextEl: $nextBtn,\r\n prevEl: $prevBtn,\r\n disabledClass: 'swiper-button-disabled'\r\n },\r\n on: {\r\n init: (swiper) => {\r\n this.setEqualWidths()\r\n requestAnimationFrame(() => {\r\n this.expandSlide(0)\r\n })\r\n },\r\n transitionEnd: (swiper) => {\r\n this.isTransitioning = false\r\n },\r\n transitionStart: (swiper) => {\r\n this.isTransitioning = true\r\n }\r\n }\r\n })\r\n }\r\n\r\n initInteractionHandlers() {\r\n const { $slides } = this.domMap\r\n\r\n $slides.forEach((slide, index) => {\r\n slide.addEventListener('mouseenter', () => {\r\n if (this.isMobile) return\r\n\r\n const isExpanded = slide.classList.contains('expanded')\r\n\r\n if (!isExpanded) {\r\n if (this.hoverTimeout) {\r\n clearTimeout(this.hoverTimeout)\r\n }\r\n\r\n this.hoverTimeout = setTimeout(() => {\r\n this.expandSlide(index)\r\n }, this.config.hoverDelay)\r\n }\r\n\r\n this.isHovering = true\r\n })\r\n\r\n slide.addEventListener('mouseleave', () => {\r\n if (this.isMobile) return\r\n\r\n if (this.hoverTimeout) {\r\n clearTimeout(this.hoverTimeout)\r\n this.hoverTimeout = null\r\n }\r\n\r\n this.isHovering = false\r\n })\r\n\r\n slide.addEventListener('click', () => {\r\n if (this.isMobile) {\r\n this.expandSlide(index)\r\n }\r\n })\r\n\r\n slide.addEventListener('touchstart', () => {\r\n this.expandSlide(index)\r\n })\r\n })\r\n }\r\n\r\n initCustomNavigation() {\r\n const prevBtn = document.getElementById('customPrev')\r\n const nextBtn = document.getElementById('customNext')\r\n\r\n if (prevBtn && nextBtn) {\r\n this.customNavHandlers = {\r\n prev: () => this.navigatePrev(),\r\n next: () => this.navigateNext()\r\n }\r\n\r\n prevBtn.addEventListener('click', this.customNavHandlers.prev)\r\n nextBtn.addEventListener('click', this.customNavHandlers.next)\r\n\r\n this.updateNavButtons()\r\n }\r\n }\r\n\r\n initKeyboardNavigation() {\r\n document.addEventListener('keydown', (e) => {\r\n if (e.key === 'ArrowLeft') {\r\n this.navigatePrev()\r\n } else if (e.key === 'ArrowRight') {\r\n this.navigateNext()\r\n }\r\n })\r\n }\r\n\r\n initResizeObserver() {\r\n if ('ResizeObserver' in window) {\r\n this.resizeObserver = new ResizeObserver(() => {\r\n this.handleResize()\r\n })\r\n this.resizeObserver.observe(this.el)\r\n } else {\r\n window.addEventListener('resize', this.handleResize.bind(this))\r\n }\r\n }\r\n\r\n handleResize = debounce(() => {\r\n this.checkDevice()\r\n this.updateSlideWidths()\r\n }, 150)\r\n\r\n navigatePrev() {\r\n if (this.isTransitioning) return\r\n\r\n const { $slides } = this.domMap\r\n const slideCount = $slides.length\r\n\r\n if (slideCount === 0) return\r\n\r\n const targetIndex = (this.activeIndex - 1 + slideCount) % slideCount\r\n this.expandSlide(targetIndex)\r\n this.swiper?.slideTo(targetIndex)\r\n }\r\n\r\n navigateNext() {\r\n if (this.isTransitioning) return\r\n\r\n const { $slides } = this.domMap\r\n const slideCount = $slides.length\r\n\r\n if (slideCount === 0) return\r\n\r\n const targetIndex = (this.activeIndex + 1) % slideCount\r\n this.expandSlide(targetIndex)\r\n this.swiper?.slideTo(targetIndex)\r\n }\r\n\r\n updateNavButtons() {\r\n const prevBtn = document.getElementById('customPrev')\r\n const nextBtn = document.getElementById('customNext')\r\n\r\n if (!prevBtn || !nextBtn) return\r\n }\r\n\r\n calculateDimensions() {\r\n const { $slides } = this.domMap\r\n const slideCount = $slides.length\r\n const containerWidth = this.el.offsetWidth\r\n const totalSpacing = this.config.spacing * (slideCount - 1)\r\n const availableWidth = containerWidth - totalSpacing\r\n\r\n return {\r\n slideCount,\r\n containerWidth,\r\n totalSpacing,\r\n availableWidth\r\n }\r\n }\r\n\r\n setEqualWidths() {\r\n const { $slides } = this.domMap\r\n const { availableWidth, slideCount } = this.calculateDimensions()\r\n\r\n if (slideCount === 0) return\r\n\r\n const slideWidth = availableWidth / slideCount\r\n\r\n $slides.forEach((slide) => {\r\n slide.style.width = `${slideWidth}px`\r\n slide.style.transition = `width ${this.config.transitionDuration}ms ${this.config.transitionEasing}`\r\n })\r\n }\r\n\r\n expandSlide(hoveredIndex) {\r\n if (this.isTransitioning) return\r\n\r\n const { $slides } = this.domMap\r\n const { availableWidth, slideCount } = this.calculateDimensions()\r\n\r\n if (slideCount === 0 || hoveredIndex < 0 || hoveredIndex >= slideCount)\r\n return\r\n\r\n if (this.hoverTimeout) {\r\n clearTimeout(this.hoverTimeout)\r\n this.hoverTimeout = null\r\n }\r\n\r\n const expandedWidth = availableWidth * this.config.expandedWidthRatio\r\n const remainingWidth = availableWidth * (1 - this.config.expandedWidthRatio)\r\n const collapsedWidth = remainingWidth / Math.max(1, slideCount - 1)\r\n\r\n $slides.forEach((slide, index) => {\r\n // Ensure Safari uses hardware acceleration\r\n slide.style.transform = 'translateZ(0)'\r\n slide.style.webkitTransform = 'translateZ(0)'\r\n\r\n // Set consistent transitions\r\n slide.style.transition = `width ${this.config.transitionDuration}ms ${this.config.transitionEasing}, transform ${this.config.transitionDuration}ms ${this.config.transitionEasing}`\r\n slide.style.webkitTransition = `width ${this.config.transitionDuration}ms ${this.config.transitionEasing}, -webkit-transform ${this.config.transitionDuration}ms ${this.config.transitionEasing}`\r\n\r\n if (index === hoveredIndex) {\r\n slide.style.width = `${expandedWidth}px`\r\n slide.classList.add('expanded')\r\n slide.classList.remove('collapsed')\r\n slide.setAttribute('aria-expanded', 'true')\r\n } else {\r\n slide.style.width = `${collapsedWidth}px`\r\n slide.classList.add('collapsed')\r\n slide.classList.remove('expanded')\r\n slide.setAttribute('aria-expanded', 'false')\r\n }\r\n })\r\n\r\n this.activeIndex = hoveredIndex\r\n this.swiper?.update()\r\n this.updateNavButtons()\r\n\r\n this.el.dispatchEvent(\r\n new CustomEvent('slideExpanded', {\r\n detail: { index: hoveredIndex }\r\n })\r\n )\r\n }\r\n\r\n updateSlideWidths() {\r\n if (this.activeIndex !== null) {\r\n const tempIndex = this.activeIndex\r\n this.activeIndex = null\r\n this.expandSlide(tempIndex)\r\n } else {\r\n this.setEqualWidths()\r\n }\r\n }\r\n\r\n destroy() {\r\n if (this.hoverTimeout) {\r\n clearTimeout(this.hoverTimeout)\r\n this.hoverTimeout = null\r\n }\r\n\r\n if (this.customNavHandlers) {\r\n const prevBtn = document.getElementById('customPrev')\r\n const nextBtn = document.getElementById('customNext')\r\n\r\n if (prevBtn)\r\n prevBtn.removeEventListener('click', this.customNavHandlers.prev)\r\n if (nextBtn)\r\n nextBtn.removeEventListener('click', this.customNavHandlers.next)\r\n }\r\n\r\n if (this.resizeObserver) {\r\n this.resizeObserver.disconnect()\r\n this.resizeObserver = null\r\n }\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 { $slides } = this.domMap\r\n $slides.forEach((slide) => {\r\n slide.style.width = ''\r\n slide.style.transition = ''\r\n slide.classList.remove('expanded', 'collapsed')\r\n slide.removeAttribute('aria-expanded')\r\n })\r\n\r\n this.el = null\r\n this.domMap = null\r\n this.activeIndex = null\r\n }\r\n}\r\n\r\nfunction debounce(func, wait) {\r\n let timeout\r\n return function executedFunction(...args) {\r\n const later = () => {\r\n clearTimeout(timeout)\r\n func(...args)\r\n }\r\n clearTimeout(timeout)\r\n timeout = setTimeout(later, wait)\r\n }\r\n}\r\n\r\nexport default CustomerStoriesExpandedCardsHover\r\n"],"names":["CustomerStoriesExpandedCardsHover","el","func","timeout","_this","_classCallCheck","checkDevice","updateSlideWidths","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","this","domMap","$swiper","$slides","querySelectorAll","$nextBtn","querySelector","$prevBtn","activeIndex","swiper","isTransitioning","hoverTimeout","isHovering","isMobile","config","expandedWidthRatio","spacing","transitionDuration","transitionEasing","hoverDelay","init","key","value","initSwiper","initInteractionHandlers","initCustomNavigation","initKeyboardNavigation","initResizeObserver","updateThumbnailImagePosition","error","forEach","slide","position","getAttribute","img","style","objectPosition","window","innerWidth","_this2","_this$domMap","Swiper","slidesPerView","spaceBetween","centeredSlides","watchSlidesProgress","allowTouchMove","navigation","nextEl","prevEl","disabledClass","on","setEqualWidths","requestAnimationFrame","expandSlide","transitionEnd","transitionStart","_this3","index","addEventListener","classList","contains","_this4","prevBtn","document","getElementById","nextBtn","customNavHandlers","prev","navigatePrev","next","navigateNext","updateNavButtons","_this5","e","_this6","resizeObserver","ResizeObserver","handleResize","observe","bind","_this$swiper","slideCount","targetIndex","slideTo","_this$swiper2","containerWidth","offsetWidth","totalSpacing","availableWidth","_this7","_this$calculateDimens","calculateDimensions","slideWidth","width","concat","transition","hoveredIndex","_this$swiper3","_this8","_this$calculateDimens2","expandedWidth","collapsedWidth","Math","max","transform","webkitTransform","webkitTransition","add","remove","setAttribute","update","dispatchEvent","CustomEvent","detail","tempIndex","removeEventListener","disconnect","destroy","removeAttribute"],"sourceRoot":""}