1window.DreoVideoModal||(window.DreoVideoModal=(function(){"use strict";const FOCUSABLE='button:not([disabled]), [href], video, iframe, video-media, [tabindex]:not([tabindex="-1"])';let lastFocusedTrigger=null,lockedScrollY=null,originalBodyStyles=null;function lockBodyScroll(){lockedScrollY===null&&(lockedScrollY=window.pageYOffset||window.scrollY||0,originalBodyStyles={position:document.body.style.position,top:document.body.style.top,width:document.body.style.width,height:document.body.style.height,overflow:document.body.style.overflow},document.body.style.top=`-${lockedScrollY}px`,document.body.classList.add("modal-open"))}function unlockBodyScroll(){if(document.querySelector(".video-modal.active"))return;const restoreY=lockedScrollY,styles=originalBodyStyles;lockedScrollY=null,originalBodyStyles=null,document.body.classList.remove("modal-open"),styles?(document.body.style.position=styles.position,document.body.style.top=styles.top,document.body.style.width=styles.width,document.body.style.height=styles.height,document.body.style.overflow=styles.overflow):document.body.style.top="",restoreY!==null&&window.scrollTo(0,restoreY)}function bindVideoModalEvents(section){const videoModals=section.querySelectorAll(".video-modal");function isShown(el){return!!(el&&(el.offsetWidth||el.offsetHeight||el.getClientRects().length))}function startMedia(modal){[...modal.querySelectorAll("[data-src]")].forEach(el=>{const viewport=el.closest(".video-modal__viewport");if(viewport&&!isShown(viewport))return;const src=el.getAttribute("data-src");src&&el.getAttribute("src")!==src&&el.setAttribute("src",src)})}function syncViewportMedia(modal){modal.querySelectorAll(".video-modal__viewport").forEach(wrap=>{const media=wrap.querySelector("video, iframe");if(media)if(isShown(wrap)){const src=media.getAttribute("data-src");src&&media.getAttribute("src")!==src&&media.setAttribute("src",src)}else stopMedia(media)})}function focusableItems(modal){return[...modal.querySelectorAll(FOCUSABLE)].filter(el=>!el.hasAttribute("data-focus-guard")&&(el.offsetWidth||el.offsetHeight))}function addFocusGuards(modal){modal.querySelector("[data-focus-guard]")||["start","end"].forEach(pos=>{const guard=document.createElement("span");guard.setAttribute("data-focus-guard",pos),guard.setAttribute("tabindex","0"),guard.setAttribute("aria-hidden","true"),guard.style.cssText="position:absolute;width:1px;height:1px;opacity:0;",guard.addEventListener("focus",()=>{const items=focusableItems(modal);items.length&&items[pos==="start"?items.length-1:0].focus()}),modal[pos==="start"?"prepend":"append"](guard)})}function stopMedia(mediaElement){mediaElement.tagName==="VIDEO"?(mediaElement.pause(),mediaElement.currentTime=0):mediaElement.tagName==="IFRAME"&&mediaElement.hasAttribute("src")&&(mediaElement.setAttribute("data-src",mediaElement.getAttribute("src")),mediaElement.setAttribute("src","about:blank"))}function closeModal(modal){if(!modal)return;modal.classList.remove("active");const modalContent=modal.querySelector(".video-modal__content");modalContent&&[...modalContent.querySelectorAll("video, iframe")].forEach(stopMedia),unlockBodyScroll(),lastFocusedTrigger&&typeof lastFocusedTrigger.focus=="function"&&lastFocusedTrigger.focus({preventScroll:!0}),lastFocusedTrigger=null}function openModal(modalId,trigger){const targetModal=document.getElementById(modalId);if(!targetModal)return;lastFocusedTrigger=trigger||null,targetModal.classList.add("active"),lockBodyScroll(),startMedia(targetModal),section.querySelectorAll("video").forEach(video=>{!targetModal.contains(video)&&!video.paused&&video.pause()});const closeButton=targetModal.querySelector(".video-modal__close");closeButton&&closeButton.focus({preventScroll:!0})}videoModals.forEach(modal=>{const closeButton=modal.querySelector(".video-modal__close");closeButton&&closeButton.addEventListener("click",()=>closeModal(modal)),modal.addEventListener("click",e=>{e.target===modal&&closeModal(modal)}),addFocusGuards(modal)}),document.addEventListener("keydown",e=>{if(e.key==="Escape"){const activeModal=section.querySelector(".video-modal.active");activeModal&&closeModal(activeModal)}}
1),section.querySelectorAll('[data-video-trigger="true"]').forEach(trigger=>{trigger.addEventListener("click",function(e){e.preventDefault(),e.stopPropagation();const modalId=this.getAttribute("data-target");modalId&&openModal(modalId,this)})});let resizeTimer;window.addEventListener("resize",()=>{clearTimeout(resizeTimer),resizeTimer=setTimeout(()=>{const activeModal=section.querySelector(".video-modal.active");activeModal&&activeModal.querySelector(".video-modal__viewport")&&syncViewportMedia(activeModal)},150)})}return{bind:bindVideoModalEvents}})()); 2//# sourceMappingURL=/cdn/shop/t/69/assets/video-modal-init.js.map?v=141861271676732534921788937740
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.