1class i{constructor(){this.modal=null,this.video=null,this.loadedUrl=null,this.isOpen=!1,this.boundClose=this.close.bind(this),this.boundKeydown=this.handleKeydown.bind(this)}buildModal(){this.modal=document.createElement("div"),this.modal.className="production-video-modal",this.modal.setAttribute("role","dialog"),this.modal.setAttribute("aria-modal","true"),this.modal.setAttribute("aria-label","Video"),this.modal.innerHTML=` 2 <div class="production-video-modal__backdrop" data-production-video-close></div> 3 <div class="production-video-modal__dialog"> 4 <video class="production-video-modal__video" controls playsinline preload="none"></video> 5 <button 6 type="button" 7 class="production-video-modal__close" 8 data-production-video-close 9 aria-label="Close video" 10 >×</button> 11 </div> 12 `,this.video=this.modal.querySelector("video"),this.modal.querySelectorAll("[data-production-video-close]").forEach(o=>{o.addEventListener("click",this.boundClose)}),document.body.appendChild(this.modal)}open(o){this.isOpen||(this.modal||this.buildModal(),this.loadedUrl!==o&&(this.video.src=o,this.loadedUrl=o),this.modal.classList.add("is-open"),document.body.style.overflow="hidden",this.isOpen=!0,document.addEventListener("keydown",this.boundKeydown),this.video.play().catch(()=>{}))}handleKeydown(o){o.key==="Escape"&&this.close()}close(){!this.isOpen||!this.modal||(this.video.pause(),this.modal.classList.remove("is-open"),document.body.style.overflow="",this.isOpen=!1,document.removeEventListener("keydown",this.boundKeydown))}}export{i as default};
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.