{"version":3,"file":"zoomv.9050.min.js?t=54ff76e15ec2054df4e6","mappings":"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","sources":["webpack://@hero-digital/zoom/./src/components/foundation/AutosizedVideo/AutosizedVideo.js","webpack://@hero-digital/zoom/./src/components/product-hub-components/feature-tab-accordion/feature-tab-accordion.js","webpack://@hero-digital/zoom/./src/js/utilities/accordion.js"],"sourcesContent":["class AutosizedVideo {\r\n constructor(el) {\r\n this.el = el\r\n this.domMap = {\r\n $video: el.querySelector('video'),\r\n controls: {\r\n $pause: el.querySelector('.fdn-autoVideo__video-control--pause'),\r\n $play: el.querySelector('.fdn-autoVideo__video-control--play'),\r\n $restart: el.querySelector('.fdn-autoVideo__video-control--restart')\r\n }\r\n }\r\n\r\n this.addListeners()\r\n }\r\n\r\n addListeners() {\r\n const { $video, controls } = this.domMap\r\n\r\n controls.$pause.addEventListener('click', () => {\r\n $video.pause()\r\n controls.$pause.hidden = true\r\n controls.$play.hidden = false\r\n })\r\n controls.$play.addEventListener('click', () => {\r\n $video.play()\r\n controls.$play.hidden = true\r\n controls.$pause.hidden = false\r\n })\r\n controls.$restart.addEventListener('click', () => {\r\n $video.currentTime = 0; \r\n $video.play()\r\n controls.$restart.hidden = true\r\n controls.$play.hidden = true\r\n controls.$pause.hidden = false\r\n })\r\n // Check if the loop attribute is present\r\n if (!$video.hasAttribute('loop')) {\r\n // Add an event listener for the 'ended' event\r\n $video.addEventListener('ended', function () {\r\n // Code to run when the video ends\r\n controls.$pause.hidden = true\r\n controls.$play.hidden = true\r\n controls.$restart.hidden = false\r\n })\r\n }\r\n }\r\n}\r\n\r\nexport default AutosizedVideo\r\n","import { AccordionWidget } from '../../../js/utilities/accordion'\r\nimport AutosizedVideo from '../../foundation/AutosizedVideo/AutosizedVideo'\r\n\r\nclass FeatureTabAccordion {\r\n constructor(el) {\r\n this.el = el\r\n this.tabs = Array.from(\r\n el.querySelectorAll('.fdn-zdcm-feature-accordion__tab')\r\n )\r\n this.tabPanels = el.querySelectorAll('.fdn-tabs__tabpanel')\r\n this.accordionWidget = null\r\n this.videoInstances = new Map()\r\n this.intersectionObserver = null\r\n this.autoSwitchInterval = null\r\n this.currentTabIndex = Math.max(\r\n 0,\r\n this.tabs.findIndex((tab) =>\r\n tab.classList.contains('fdn-zdcm-feature-accordion__tab-active')\r\n )\r\n )\r\n this.currentAccordionIndex = 0\r\n this.isPaused = false\r\n this.userInteracted = false\r\n const durationAttr = this.el.getAttribute('data-auto-switch-duration')\r\n this.AUTO_SWITCH_DURATION = parseInt(durationAttr, 10) || 6000\r\n\r\n this.el.style.setProperty(\r\n '--auto-switch-duration',\r\n `${this.AUTO_SWITCH_DURATION / 1000}s`\r\n )\r\n\r\n this.TRANSITION_DELAY = 200\r\n this.preloadedImages = new Map()\r\n this.preloadedVideos = new Map()\r\n this.isIntersecting = false\r\n this.isDestroyed = false\r\n\r\n this.PLACEHOLDER_HTML = `\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n `\r\n\r\n this.boundClickHandler = this.handleClick.bind(this)\r\n this.boundIntersectionHandler = this.handleIntersection.bind(this)\r\n this.init()\r\n }\r\n\r\n init() {\r\n this.setupInitialState()\r\n this.accordionWidget = new AccordionWidget(this.el, { preventClose: true })\r\n this.createPlaceholderContent()\r\n this.initAllVideoInstances()\r\n this.preloadContent()\r\n this.bindEvents()\r\n this.updateContent()\r\n this.setupIntersectionObserver()\r\n }\r\n\r\n preloadContent() {\r\n this.tabPanels.forEach((panel) => {\r\n const accordionItems = panel.querySelectorAll(\r\n '.fdn-zdcm-feature-accordion__accordion-item'\r\n )\r\n accordionItems.forEach((item) => {\r\n const img = item.querySelector('.accordion-image img')\r\n if (img && img.src && !this.preloadedImages.has(img.src)) {\r\n const preloadImg = new Image()\r\n preloadImg.onload = () =>\r\n this.preloadedImages.set(img.src, preloadImg)\r\n preloadImg.src = img.src\r\n }\r\n\r\n const videoUrl = item.getAttribute('data-video-url')\r\n const isVideo =\r\n (videoUrl && videoUrl.includes('.mp4')) ||\r\n item.getAttribute('data-content-type') === 'video'\r\n\r\n if (isVideo && videoUrl && !this.preloadedVideos.has(videoUrl)) {\r\n const preloadVideo = document.createElement('video')\r\n preloadVideo.muted = true\r\n preloadVideo.preload = 'metadata'\r\n preloadVideo.src = videoUrl\r\n preloadVideo.onloadedmetadata = () =>\r\n this.preloadedVideos.set(videoUrl, preloadVideo)\r\n }\r\n })\r\n })\r\n }\r\n\r\n createPlaceholderContent() {\r\n this.tabPanels.forEach((panel) => {\r\n const placeholder = panel.querySelector(\r\n '.fdn-zdcm-feature-accordion__placeholder'\r\n )\r\n if (placeholder) {\r\n this.ensureImageContainer(placeholder)\r\n this.ensureVideoContainer(placeholder)\r\n if (!placeholder.style.transition) {\r\n placeholder.style.transition = `opacity ${\r\n this.TRANSITION_DELAY * 2\r\n }ms ease`\r\n }\r\n }\r\n })\r\n }\r\n\r\n ensureImageContainer(placeholder) {\r\n let imageContainer = placeholder.querySelector('.fdn-autoImage')\r\n if (!imageContainer) {\r\n imageContainer = document.createElement('div')\r\n imageContainer.className = 'fdn-autoImage'\r\n imageContainer.style.display = 'none'\r\n\r\n const imageContainerDiv = document.createElement('div')\r\n imageContainerDiv.className = 'fdn-autoImage--container aspect-ratio-4-3'\r\n\r\n const img = document.createElement('img')\r\n img.setAttribute('fetchpriority', 'auto')\r\n img.style.display = 'none'\r\n\r\n imageContainerDiv.appendChild(img)\r\n imageContainer.appendChild(imageContainerDiv)\r\n placeholder.appendChild(imageContainer)\r\n } else {\r\n const imageContainerDiv = imageContainer.querySelector(\r\n '.fdn-autoImage--container'\r\n )\r\n if (imageContainerDiv && !imageContainerDiv.querySelector('img')) {\r\n const img = document.createElement('img')\r\n img.setAttribute('fetchpriority', 'auto')\r\n img.style.display = 'none'\r\n imageContainerDiv.appendChild(img)\r\n }\r\n }\r\n }\r\n\r\n ensureVideoContainer(placeholder) {\r\n let videoContainer = placeholder.querySelector(\r\n '.tab-content-two-column-video-block'\r\n )\r\n if (!videoContainer) {\r\n videoContainer = document.createElement('div')\r\n videoContainer.className =\r\n 'tab-content-two-column tab-content-two-column-video-block'\r\n videoContainer.style.display = 'none'\r\n\r\n const autoVideo = document.createElement('div')\r\n autoVideo.className = 'fdn-autoVideo bg-white'\r\n autoVideo.setAttribute('data-cmp-is', 'autosized-video')\r\n\r\n const autoVideoContainer = document.createElement('div')\r\n autoVideoContainer.className = 'fdn-autoVideo--container'\r\n\r\n const video = document.createElement('video')\r\n video.className = 'video-horizontal'\r\n video.setAttribute('autoplay', '')\r\n video.setAttribute('muted', '')\r\n video.setAttribute('playsinline', '')\r\n\r\n const source = document.createElement('source')\r\n source.setAttribute('type', 'video/mp4')\r\n source.src = ''\r\n\r\n video.appendChild(source)\r\n video.appendChild(\r\n document.createTextNode('Your browser does not support the video tag.')\r\n )\r\n autoVideoContainer.appendChild(video)\r\n autoVideo.appendChild(autoVideoContainer)\r\n videoContainer.appendChild(autoVideo)\r\n placeholder.appendChild(videoContainer)\r\n\r\n if (!this.videoInstances.has(autoVideo)) {\r\n this.videoInstances.set(autoVideo, new AutosizedVideo(autoVideo))\r\n }\r\n }\r\n }\r\n\r\n initAllVideoInstances() {\r\n this.el\r\n .querySelectorAll('[data-cmp-is=\"autosized-video\"]')\r\n .forEach((container) => {\r\n if (!this.videoInstances.has(container)) {\r\n this.videoInstances.set(container, new AutosizedVideo(container))\r\n }\r\n })\r\n }\r\n\r\n updateContent() {\r\n const activePanel = this.tabPanels[this.currentTabIndex]\r\n if (!activePanel) return\r\n\r\n const accordionItems = activePanel.querySelectorAll(\r\n '.fdn-zdcm-feature-accordion__accordion-item'\r\n )\r\n const activeItem = accordionItems[this.currentAccordionIndex]\r\n if (!activeItem) return\r\n\r\n const placeholder = activePanel.querySelector(\r\n '.fdn-zdcm-feature-accordion__placeholder'\r\n )\r\n if (!placeholder) return\r\n\r\n const videoUrl = activeItem.getAttribute('data-video-url')\r\n const isVideo =\r\n (videoUrl && videoUrl.includes('.mp4')) ||\r\n activeItem.getAttribute('data-content-type') === 'video'\r\n\r\n this.ensureImageContainer(placeholder)\r\n this.ensureVideoContainer(placeholder)\r\n\r\n const imageContainer = placeholder.querySelector('.fdn-autoImage')\r\n const videoContainer = placeholder.querySelector(\r\n '.tab-content-two-column-video-block'\r\n )\r\n\r\n if (!imageContainer || !videoContainer) {\r\n console.warn('Could not create required containers')\r\n return\r\n }\r\n\r\n placeholder.style.opacity = '0'\r\n\r\n setTimeout(() => {\r\n if (isVideo && videoUrl) {\r\n this.showVideoContent(videoContainer, imageContainer, videoUrl)\r\n } else {\r\n this.showImageContent(activeItem, imageContainer, videoContainer)\r\n }\r\n placeholder.style.opacity = '1'\r\n }, this.TRANSITION_DELAY)\r\n }\r\n\r\n showVideoContent(videoContainer, imageContainer, videoUrl) {\r\n imageContainer.style.display = 'none'\r\n videoContainer.style.display = 'block'\r\n\r\n const video = videoContainer.querySelector('video')\r\n const source = video.querySelector('source')\r\n const autoVideoContainer = videoContainer.querySelector('.fdn-autoVideo')\r\n\r\n if (source && source.src !== videoUrl) {\r\n source.src = videoUrl\r\n video.load()\r\n }\r\n\r\n const videoInstance = this.videoInstances.get(autoVideoContainer)\r\n if (videoInstance && typeof videoInstance.play === 'function') {\r\n videoInstance.play()\r\n } else {\r\n video.currentTime = 0\r\n const playPromise = video.play()\r\n if (playPromise !== undefined) {\r\n playPromise.catch(() =>\r\n console.warn('Video autoplay failed:', videoUrl)\r\n )\r\n }\r\n }\r\n }\r\n\r\n showImageContent(activeItem, imageContainer, videoContainer) {\r\n const autoVideoContainer = videoContainer.querySelector('.fdn-autoVideo')\r\n const videoInstance = this.videoInstances.get(autoVideoContainer)\r\n\r\n if (videoInstance && typeof videoInstance.pause === 'function') {\r\n videoInstance.pause()\r\n } else {\r\n const video = videoContainer.querySelector('video')\r\n if (video) {\r\n video.pause()\r\n video.currentTime = 0\r\n }\r\n }\r\n\r\n videoContainer.style.display = 'none'\r\n\r\n const sourceImg = activeItem.querySelector('.accordion-image img')\r\n const targetImg = imageContainer.querySelector('img')\r\n\r\n if (sourceImg && targetImg) {\r\n const preloadedImg = this.preloadedImages.get(sourceImg.src)\r\n if (preloadedImg) {\r\n this.copyImageAttributes(sourceImg, targetImg)\r\n targetImg.style.display = 'block'\r\n imageContainer.style.display = 'block'\r\n } else if (targetImg.src !== sourceImg.src) {\r\n const tempImg = new Image()\r\n tempImg.onload = () => {\r\n this.copyImageAttributes(sourceImg, targetImg)\r\n targetImg.style.display = 'block'\r\n imageContainer.style.display = 'block'\r\n }\r\n tempImg.onerror = () => {\r\n console.warn('Failed to load image:', sourceImg.src)\r\n imageContainer.style.display = 'none'\r\n }\r\n tempImg.src = sourceImg.src\r\n } else {\r\n targetImg.style.display = 'block'\r\n imageContainer.style.display = 'block'\r\n }\r\n } else {\r\n imageContainer.style.display = 'none'\r\n }\r\n }\r\n\r\n copyImageAttributes(sourceImg, targetImg) {\r\n const attrs = [\r\n 'src',\r\n 'alt',\r\n 'title',\r\n 'srcset',\r\n 'className',\r\n 'width',\r\n 'height'\r\n ]\r\n attrs.forEach((attr) => {\r\n if (sourceImg[attr]) targetImg[attr] = sourceImg[attr]\r\n })\r\n }\r\n\r\n updateAccordionItemState(item, isActive) {\r\n const button = item.querySelector('.fdn-zdcm-feature-accordion__menu-item')\r\n const content = item.querySelector(\r\n '.fdn-zdcm-feature-accordion__accordion-content'\r\n )\r\n\r\n item.classList.toggle('is-active', isActive)\r\n\r\n if (button) {\r\n button.classList.toggle('is-selected', isActive)\r\n button.classList.toggle('is-expanded', isActive)\r\n button.setAttribute('aria-expanded', String(isActive))\r\n }\r\n\r\n if (content) {\r\n content.classList.toggle('is-open', isActive)\r\n content.setAttribute('aria-hidden', String(!isActive))\r\n content.style.height = isActive ? 'auto' : '0px'\r\n if (isActive) {\r\n content.removeAttribute('hidden')\r\n } else {\r\n content.setAttribute('hidden', '')\r\n }\r\n }\r\n\r\n if (isActive) {\r\n setTimeout(() => this.updateContent(), 50)\r\n }\r\n }\r\n\r\n startAutoSwitch() {\r\n if (\r\n this.isDestroyed ||\r\n this.isPaused ||\r\n this.userInteracted ||\r\n !this.isIntersecting\r\n )\r\n return\r\n\r\n this.pauseAutoSwitch()\r\n\r\n this.autoSwitchInterval = setInterval(() => {\r\n if (this.isDestroyed) {\r\n this.pauseAutoSwitch()\r\n return\r\n }\r\n\r\n if (!this.isPaused && !this.userInteracted && this.isIntersecting) {\r\n try {\r\n this.switchToNext()\r\n } catch (error) {\r\n console.warn('Error in auto-switch:', error)\r\n this.pauseAutoSwitch()\r\n }\r\n }\r\n }, this.AUTO_SWITCH_DURATION)\r\n\r\n setTimeout(() => {\r\n if (!this.isDestroyed) {\r\n this.updateBorderAnimation()\r\n }\r\n }, 100)\r\n }\r\n\r\n updateBorderAnimation() {\r\n if (\r\n this.isDestroyed ||\r\n this.isPaused ||\r\n this.userInteracted ||\r\n !this.isIntersecting\r\n )\r\n return\r\n\r\n const activePanel = this.tabPanels[this.currentTabIndex]\r\n if (!activePanel) return\r\n\r\n const items = activePanel.querySelectorAll(\r\n '.fdn-zdcm-feature-accordion__accordion-item'\r\n )\r\n\r\n try {\r\n items.forEach((item) => {\r\n if (item.classList) {\r\n item.classList.remove('border-animating')\r\n }\r\n })\r\n\r\n if (\r\n items[this.currentAccordionIndex] &&\r\n items[this.currentAccordionIndex].classList\r\n ) {\r\n items[this.currentAccordionIndex].classList.add('border-animating')\r\n }\r\n } catch (error) {\r\n console.warn('Error updating border animation:', error)\r\n }\r\n }\r\n\r\n switchToNext() {\r\n if (this.isDestroyed) return\r\n\r\n const activePanel = this.tabPanels[this.currentTabIndex]\r\n if (!activePanel) return\r\n\r\n const items = activePanel.querySelectorAll(\r\n '.fdn-zdcm-feature-accordion__accordion-item'\r\n )\r\n if (items.length === 0) return\r\n\r\n this.updateAccordionItemState(items[this.currentAccordionIndex], false)\r\n\r\n this.currentAccordionIndex = (this.currentAccordionIndex + 1) % items.length\r\n\r\n if (this.currentAccordionIndex === 0) {\r\n this.currentTabIndex = (this.currentTabIndex + 1) % this.tabs.length\r\n this.switchToTab(this.currentTabIndex)\r\n return\r\n }\r\n\r\n this.updateAccordionItemState(items[this.currentAccordionIndex], true)\r\n\r\n setTimeout(() => {\r\n if (!this.isDestroyed) {\r\n this.updateBorderAnimation()\r\n }\r\n }, 100)\r\n }\r\n\r\n switchToTab(index) {\r\n if (this.isDestroyed) return\r\n\r\n this.tabs.forEach((tab, i) => {\r\n const isActive = i === index\r\n tab.classList.toggle('fdn-zdcm-feature-accordion__tab-active', isActive)\r\n tab.classList.toggle(\r\n 'fdn-zdcm-feature-accordion__tab-inactive',\r\n !isActive\r\n )\r\n tab.setAttribute('aria-selected', String(isActive))\r\n tab.setAttribute('tabindex', isActive ? '0' : '-1')\r\n })\r\n\r\n this.tabPanels.forEach((panel, i) => {\r\n const isActive = i === index\r\n panel.setAttribute('aria-hidden', String(!isActive))\r\n if (isActive) {\r\n panel.removeAttribute('hidden')\r\n } else {\r\n panel.setAttribute('hidden', '')\r\n }\r\n panel.setAttribute('tabindex', isActive ? '0' : '-1')\r\n })\r\n\r\n this.currentTabIndex = index\r\n this.currentAccordionIndex = 0\r\n this.ensureFirstAccordionOpen()\r\n\r\n if (this.userInteracted) {\r\n const activePanel = this.tabPanels[this.currentTabIndex]\r\n const firstItem = activePanel.querySelector(\r\n '.fdn-zdcm-feature-accordion__accordion-item'\r\n )\r\n if (firstItem) {\r\n activePanel\r\n .querySelectorAll('.fdn-zdcm-feature-accordion__accordion-item')\r\n .forEach((item) =>\r\n item.classList.remove('border-static', 'border-animating')\r\n )\r\n firstItem.classList.add('border-static')\r\n }\r\n } else {\r\n setTimeout(() => {\r\n if (!this.isDestroyed) {\r\n this.updateBorderAnimation()\r\n }\r\n }, 100)\r\n }\r\n }\r\n\r\n ensureFirstAccordionOpen() {\r\n if (this.isDestroyed) return\r\n\r\n const activePanel = this.tabPanels[this.currentTabIndex]\r\n if (!activePanel) return\r\n\r\n const accordionItems = activePanel.querySelectorAll(\r\n '.fdn-zdcm-feature-accordion__accordion-item'\r\n )\r\n accordionItems.forEach((item, index) =>\r\n this.updateAccordionItemState(item, index === 0)\r\n )\r\n }\r\n\r\n setupInitialState() {\r\n this.tabPanels.forEach((panel, tabIndex) => {\r\n const accordionItems = panel.querySelectorAll(\r\n '.fdn-zdcm-feature-accordion__accordion-item'\r\n )\r\n accordionItems.forEach((item, index) => {\r\n const shouldBeOpen = tabIndex === this.currentTabIndex && index === 0\r\n this.updateAccordionItemState(item, shouldBeOpen)\r\n })\r\n })\r\n }\r\n\r\n setupIntersectionObserver() {\r\n if (!window.IntersectionObserver) {\r\n this.isIntersecting = true\r\n this.startAutoSwitch()\r\n return\r\n }\r\n\r\n try {\r\n this.intersectionObserver = new IntersectionObserver(\r\n this.boundIntersectionHandler,\r\n {\r\n threshold: 0.1,\r\n rootMargin: '0px 0px -10% 0px'\r\n }\r\n )\r\n this.intersectionObserver.observe(this.el)\r\n } catch (error) {\r\n console.warn('IntersectionObserver failed, falling back:', error)\r\n this.isIntersecting = true\r\n this.startAutoSwitch()\r\n }\r\n }\r\n\r\n handleIntersection(entries) {\r\n if (this.isDestroyed) return\r\n\r\n try {\r\n entries.forEach((entry) => {\r\n this.isIntersecting = entry.isIntersecting\r\n\r\n if (entry.isIntersecting && !this.userInteracted) {\r\n this.isPaused = false\r\n setTimeout(() => {\r\n if (\r\n !this.isDestroyed &&\r\n this.isIntersecting &&\r\n !this.userInteracted\r\n ) {\r\n this.startAutoSwitch()\r\n }\r\n }, 100)\r\n } else {\r\n this.pauseAutoSwitch()\r\n }\r\n })\r\n } catch (error) {\r\n console.warn('Error in intersection handler:', error)\r\n }\r\n }\r\n\r\n bindEvents() {\r\n this.el.addEventListener('click', this.boundClickHandler)\r\n }\r\n\r\n handleClick(e) {\r\n if (this.isDestroyed) return\r\n const tab = e.target.closest('.fdn-zdcm-feature-accordion__tab')\r\n if (tab) {\r\n this.userInteracted = true\r\n this.stopAutoSwitch()\r\n this.switchToTab(this.tabs.indexOf(tab))\r\n return\r\n }\r\n\r\n const accordionTrigger = e.target.closest('.js-accordion-trigger')\r\n if (accordionTrigger) {\r\n this.userInteracted = true\r\n this.stopAutoSwitch()\r\n\r\n const item = accordionTrigger.closest(\r\n '.fdn-zdcm-feature-accordion__accordion-item'\r\n )\r\n const panel = item.closest('.fdn-tabs__tabpanel')\r\n const items = Array.from(\r\n panel.querySelectorAll('.fdn-zdcm-feature-accordion__accordion-item')\r\n )\r\n\r\n this.currentAccordionIndex = items.indexOf(item)\r\n items.forEach((i) =>\r\n i.classList.remove('border-animating', 'border-static')\r\n )\r\n item.classList.add('border-static')\r\n\r\n setTimeout(() => {\r\n if (!this.isDestroyed) {\r\n this.updateContent()\r\n }\r\n }, 50)\r\n }\r\n }\r\n\r\n pauseAutoSwitch() {\r\n if (this.autoSwitchInterval) {\r\n clearInterval(this.autoSwitchInterval)\r\n this.autoSwitchInterval = null\r\n }\r\n }\r\n\r\n stopAutoSwitch() {\r\n this.isPaused = true\r\n this.userInteracted = true\r\n this.pauseAutoSwitch()\r\n\r\n try {\r\n this.el\r\n .querySelectorAll('.fdn-zdcm-feature-accordion__accordion-item')\r\n .forEach((item) => {\r\n if (item.classList) {\r\n item.classList.remove('border-animating', 'border-static')\r\n }\r\n })\r\n } catch (error) {\r\n console.warn('Error clearing border animations:', error)\r\n }\r\n }\r\n\r\n destroy() {\r\n this.isDestroyed = true\r\n this.stopAutoSwitch()\r\n\r\n if (this.intersectionObserver) {\r\n this.intersectionObserver.disconnect()\r\n this.intersectionObserver = null\r\n }\r\n\r\n this.el.removeEventListener('click', this.boundClickHandler)\r\n\r\n this.videoInstances.forEach((instance) => {\r\n if (instance && typeof instance.destroy === 'function') {\r\n instance.destroy()\r\n }\r\n })\r\n this.videoInstances.clear()\r\n this.preloadedImages.clear()\r\n this.preloadedVideos.clear()\r\n\r\n if (\r\n this.accordionWidget &&\r\n typeof this.accordionWidget.destroy === 'function'\r\n ) {\r\n this.accordionWidget.destroy()\r\n }\r\n }\r\n}\r\n\r\nexport default FeatureTabAccordion\r\n","/* ACCESSIBLE ACCORDION COMPONENT\r\n Code modified taken from here: https://codepen.io/stowball/pen/eZKwRv\r\n Options (add to parent element that has class \"accordion-interface\"):\r\n Multiselect: aria-multiselectable=\"true\"\r\n Always expand first item: data-firstexpanded=\"true\"\r\n To have selected panel(s) expanded at start use data-open-panels attribute with panel numbers separated by commas.\r\n Example: data-open-panels=\"1,2\"\r\n To keep panels always open at tablet breakpoints and above add to class list: accordion-interface__open-panels__md\r\n and for desktop only: accordion-interface__open-panels__lg\r\n*/\r\nimport gsap from 'gsap'\r\n\r\nfunction AccordionWidget(el, props = {}) {\r\n if (!el) return\r\n this.el = el\r\n this.props = props || {}\r\n this.preventClose = props.preventClose === true\r\n\r\n let triggerClass = 'js-accordion-trigger'\r\n let panelClass = 'js-accordion-panel'\r\n if (props.id) {\r\n triggerClass += props.id\r\n panelClass += props.id\r\n }\r\n const expandFirst = el.dataset.firstexpanded === 'true'\r\n this.multiSelectable = this.el.hasAttribute('aria-multiselectable')\r\n\r\n let selectedIndex\r\n if (Number.isInteger(props.selectedIndex)) selectedIndex = props.selectedIndex\r\n else if (expandFirst) selectedIndex = 0\r\n\r\n this.accordionTriggers = this.el.getElementsByClassName(triggerClass)\r\n this.accordionPanels = this.el.getElementsByClassName(panelClass)\r\n\r\n if (\r\n this.accordionTriggers.length === 0 ||\r\n this.accordionTriggers.length !== this.accordionPanels.length\r\n ) {\r\n return\r\n }\r\n\r\n // if we do not already have a selected index see if we have the open panels attribute\r\n if (selectedIndex === undefined && el.dataset.openPanels) {\r\n let openPanels = el.dataset.openPanels\r\n openPanels = openPanels.split(',')\r\n const panelArr = []\r\n for (const panel of openPanels) {\r\n const n = parseInt(panel)\r\n // quick test to make sure we have a positive value\r\n if ((n | 0) > 0 && n % 1 === 0 && n <= this.accordionTriggers.length) {\r\n panelArr.push(n - 1)\r\n // if this is not multiselectable then stop after first validated value\r\n if (!this.multiSelectable) break\r\n }\r\n }\r\n if (panelArr.length) selectedIndex = panelArr\r\n }\r\n\r\n this._init(selectedIndex)\r\n}\r\n\r\nAccordionWidget.prototype._init = function (selectedIndex) {\r\n this.accordionTriggersLength = this.accordionTriggers.length\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.clickListener = this._clickEvent.bind(this)\r\n this.keydownListener = this._keydownEvent.bind(this)\r\n this.focusListener = this._focusEvent.bind(this)\r\n this.keys = {\r\n prev: 38,\r\n next: 40,\r\n space: 32\r\n }\r\n\r\n let initialSelectedIndex\r\n\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n this.accordionTriggers[i].index = i\r\n this.accordionTriggers[i].addEventListener(\r\n 'click',\r\n this.clickListener,\r\n false\r\n )\r\n this.accordionTriggers[i].addEventListener(\r\n 'keydown',\r\n this.keydownListener,\r\n false\r\n )\r\n this.accordionTriggers[i].addEventListener(\r\n 'focus',\r\n this.focusListener,\r\n false\r\n )\r\n this.accordionTriggers[i].classList.add('is-accordion-trigger')\r\n\r\n if (this.accordionTriggers[i].classList.contains('is-selected')) {\r\n this.expandedAccordions[i] = true\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.accordionPanels.length; i++) {\r\n this.accordionPanels[i].classList.add('is-accordion-panel')\r\n }\r\n\r\n // determine which panels need to be open\r\n if (!isNaN(selectedIndex)) {\r\n initialSelectedIndex = selectedIndex\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.expandedAccordions[initialSelectedIndex] = true\r\n } else if (Array.isArray(selectedIndex)) {\r\n initialSelectedIndex = selectedIndex\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n if (selectedIndex.includes(i)) this.expandedAccordions[i] = true\r\n }\r\n } else {\r\n initialSelectedIndex = this.expandedAccordions.lastIndexOf(true)\r\n\r\n if (!this.multiSelectable) {\r\n this.expandedAccordions = new Array(this.accordionTriggersLength)\r\n this.expandedAccordions[initialSelectedIndex] = true\r\n }\r\n }\r\n\r\n this.initialSetIndex = selectedIndex\r\n this.setSelected(initialSelectedIndex)\r\n this.setExpanded()\r\n this.setAPI()\r\n this.el.classList.add('is-accordion')\r\n this.el.classList.add('is-initialized')\r\n}\r\n\r\nAccordionWidget.prototype._clickEvent = function (e) {\r\n e.preventDefault()\r\n const index = e.target.index\r\n\r\n if (this.preventClose && this.expandedAccordions[index]) {\r\n return\r\n }\r\n\r\n this.setSelected(index, true)\r\n this.setExpanded(index, true)\r\n}\r\n\r\nAccordionWidget.prototype._keydownEvent = function (e) {\r\n let targetIndex\r\n\r\n switch (e.keyCode) {\r\n case this.keys.space:\r\n case this.keys.prev:\r\n case this.keys.next:\r\n e.preventDefault()\r\n break\r\n default:\r\n return\r\n }\r\n\r\n if (e.keyCode === this.keys.space) {\r\n // this.setExpanded(e.target.index, true);\r\n e.target.click()\r\n\r\n return\r\n } else if (e.keyCode === this.keys.prev && e.target.index > 0) {\r\n targetIndex = e.target.index - 1\r\n } else if (\r\n e.keyCode === this.keys.next &&\r\n e.target.index < this.accordionTriggersLength - 1\r\n ) {\r\n targetIndex = e.target.index + 1\r\n } else {\r\n return\r\n }\r\n\r\n this.setSelected(targetIndex, true)\r\n}\r\n\r\nAccordionWidget.prototype._focusEvent = function () {\r\n if (this.accordionTriggersLength === 1) {\r\n this.setSelected(0)\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.setSelected = function (index, userInvoked) {\r\n if (index === -1) {\r\n this.accordionTriggers[0].setAttribute('tabindex', 0)\r\n\r\n return\r\n }\r\n\r\n if (Array.isArray(index)) index = index[0]\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n if (i === index) {\r\n this.accordionTriggers[i].classList.add('is-selected')\r\n // this.accordionTriggers[i].setAttribute('tabindex', 0);\r\n\r\n if (userInvoked) {\r\n this.accordionTriggers[i].focus()\r\n }\r\n } else {\r\n this.accordionTriggers[i].classList.remove('is-selected')\r\n\r\n // this.accordionTriggers[i].setAttribute('tabindex', -1);\r\n }\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.setExpanded = function (index, userInvoked) {\r\n let i\r\n\r\n // special case to close all\r\n if (index === -1) this.expandedAccordions = []\r\n\r\n if (userInvoked) {\r\n if (this.multiSelectable) {\r\n this.expandedAccordions[index] = !this.expandedAccordions[index]\r\n } else {\r\n for (i = 0; i < this.accordionTriggersLength; i++) {\r\n if (i === index) {\r\n this.expandedAccordions[i] = !this.expandedAccordions[i]\r\n } else {\r\n this.expandedAccordions[i] = false\r\n }\r\n }\r\n }\r\n }\r\n\r\n AccordionWidget.prototype.hidePanelContent = function (item) {\r\n //allows animation to finish before hiding inner content from assistive technology\r\n setTimeout(() => {\r\n item.setAttribute('aria-hidden', true)\r\n item.setAttribute('hidden', true)\r\n }, 325)\r\n }\r\n\r\n let hasExpanded = false\r\n for (i = 0; i < this.accordionTriggersLength; i++) {\r\n if (this.expandedAccordions[i]) {\r\n this.accordionPanels[i].setAttribute('aria-hidden', false)\r\n this.accordionPanels[i].removeAttribute('hidden')\r\n\r\n this.accordionTriggers[i].setAttribute('aria-expanded', true)\r\n this.accordionTriggers[i].classList.add('is-expanded')\r\n\r\n this.accordionPanels[i].classList.add('is-open')\r\n gsap.to(this.accordionPanels[i], { height: 'auto', duration: 0.3 })\r\n\r\n this.accordionTriggers[i].parentElement.classList.add('is-active')\r\n\r\n hasExpanded = true\r\n } else {\r\n this.accordionTriggers[i].setAttribute('aria-expanded', false)\r\n this.accordionTriggers[i].classList.remove('is-expanded')\r\n\r\n this.accordionPanels[i].classList.remove('is-open')\r\n gsap.to(this.accordionPanels[i], { height: 0, duration: 0.3 })\r\n\r\n this.accordionTriggers[i].parentElement.classList.remove('is-active')\r\n this.hidePanelContent(this.accordionPanels[i])\r\n }\r\n }\r\n\r\n // add close to parent to indicate there is an open element\r\n if (hasExpanded) this.el.classList.add('has-expanded-el')\r\n else this.el.classList.remove('has-expanded-el')\r\n this.hasExpanded = hasExpanded\r\n}\r\n\r\nAccordionWidget.prototype.setAPI = function () {\r\n // add API functionality here\r\n this.close = function () {\r\n this.setSelected(-1)\r\n this.setExpanded(-1)\r\n }\r\n // open initial index\r\n this.openInit = function () {\r\n const index = this.initialSetIndex\r\n if (Number.isInteger(index)) {\r\n this.setSelected(index, true)\r\n this.setExpanded(index, true)\r\n }\r\n }\r\n}\r\n\r\nAccordionWidget.prototype.destroy = function () {\r\n this.el.classList.remove('is-initialized')\r\n\r\n for (let i = 0; i < this.accordionTriggersLength; i++) {\r\n this.accordionTriggers[i].removeAttribute('aria-expanded')\r\n this.accordionTriggers[i].classList.remove('is-expanded')\r\n\r\n this.accordionPanels[i].removeAttribute('aria-hidden')\r\n this.accordionPanels[i].classList.remove('is-open')\r\n this.accordionPanels[i].removeAttribute('tabindex')\r\n\r\n this.accordionTriggers[i].removeEventListener(\r\n 'click',\r\n this.clickListener,\r\n false\r\n )\r\n this.accordionTriggers[i].removeEventListener(\r\n 'keydown',\r\n this.keydownListener,\r\n false\r\n )\r\n this.accordionTriggers[i].removeEventListener(\r\n 'focus',\r\n this.focusListener,\r\n false\r\n )\r\n\r\n delete this.accordionTriggers[i].index\r\n }\r\n}\r\n\r\nexport { AccordionWidget }\r\n"],"names":["AutosizedVideo","el","_classCallCheck","this","domMap","$video","querySelector","controls","$pause","$play","$restart","addListeners","key","value","_this$domMap","addEventListener","pause","hidden","play","currentTime","hasAttribute","FeatureTabAccordion","tabs","Array","from","querySelectorAll","tabPanels","accordionWidget","videoInstances","Map","intersectionObserver","autoSwitchInterval","currentTabIndex","Math","max","findIndex","tab","classList","contains","currentAccordionIndex","isPaused","userInteracted","durationAttr","getAttribute","AUTO_SWITCH_DURATION","parseInt","style","setProperty","concat","TRANSITION_DELAY","preloadedImages","preloadedVideos","isIntersecting","isDestroyed","PLACEHOLDER_HTML","boundClickHandler","handleClick","bind","boundIntersectionHandler","handleIntersection","init","setupInitialState","AccordionWidget","preventClose","createPlaceholderContent","initAllVideoInstances","preloadContent","bindEvents","updateContent","setupIntersectionObserver","_this","forEach","panel","item","img","src","has","preloadImg","Image","onload","set","videoUrl","includes","preloadVideo","document","createElement","muted","preload","onloadedmetadata","_this2","placeholder","ensureImageContainer","ensureVideoContainer","transition","imageContainer","imageContainerDiv","setAttribute","display","appendChild","className","videoContainer","autoVideo","autoVideoContainer","video","source","createTextNode","_this3","container","_this4","activePanel","activeItem","isVideo","opacity","setTimeout","showVideoContent","showImageContent","console","warn","load","videoInstance","get","playPromise","undefined","_this5","sourceImg","targetImg","copyImageAttributes","tempImg","onerror","attr","isActive","_this6","button","content","toggle","String","height","removeAttribute","_this7","pauseAutoSwitch","setInterval","switchToNext","error","updateBorderAnimation","items","remove","add","_this8","length","updateAccordionItemState","switchToTab","index","_this9","i","ensureFirstAccordionOpen","firstItem","_this10","_this11","tabIndex","shouldBeOpen","window","IntersectionObserver","startAutoSwitch","threshold","rootMargin","observe","entries","_this12","entry","e","_this13","target","closest","stopAutoSwitch","indexOf","accordionTrigger","clearInterval","disconnect","removeEventListener","instance","destroy","clear","props","arguments","triggerClass","panelClass","id","selectedIndex","expandFirst","dataset","firstexpanded","multiSelectable","Number","isInteger","accordionTriggers","getElementsByClassName","accordionPanels","openPanels","_step","panelArr","_iterator","_createForOfIteratorHelper","split","s","n","done","push","err","f","_init","prototype","initialSelectedIndex","accordionTriggersLength","expandedAccordions","clickListener","_clickEvent","keydownListener","_keydownEvent","focusListener","_focusEvent","keys","prev","next","space","isNaN","isArray","lastIndexOf","initialSetIndex","setSelected","setExpanded","setAPI","preventDefault","targetIndex","keyCode","click","userInvoked","focus","hidePanelContent","hasExpanded","gsap","to","duration","parentElement","close","openInit"],"sourceRoot":""}