{"version":3,"file":"zoomv.9050.min.js?t=11d54a2fb94166a84600","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 this.AUTO_SWITCH_DURATION = 6000\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\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 this.setSelected(e.target.index, true)\r\n this.setExpanded(e.target.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 if (!this.expandedAccordions[index]) {\r\n this.expandedAccordions[index] = true\r\n } else if (!this.preventClose) {\r\n this.expandedAccordions[index] = false\r\n }\r\n } else {\r\n const isAlreadyOpen = this.expandedAccordions[index]\r\n if (isAlreadyOpen && this.preventClose) {\r\n return\r\n }\r\n for (i = 0; i < this.accordionTriggersLength; i++) {\r\n this.expandedAccordions[i] = i === index\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","AUTO_SWITCH_DURATION","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","getAttribute","includes","preloadVideo","document","createElement","muted","preload","onloadedmetadata","_this2","placeholder","ensureImageContainer","ensureVideoContainer","style","transition","concat","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","parseInt","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":""}