1import{A as s}from"./array.prototypes-D9kiwZdD.js";s.activateFrom();class l{constructor(o){this.triggerSelector="",this.options={},this.cssClasses={videoStyle:"modal__video w-screen max-w-[calc(100vw-6rem)] aspect-video",videoCaptionStyle:"modal__caption p-2 bg-black text-sm text-white"},this.triggerSelector=o}getPluginName(){return"video"}getTriggerSelector(){return this.triggerSelector}getOptions(){return this.options}openModalClick(o){this.modalComponent=o;const t=this.modalComponent.trigger,e=(t&&t.getAttribute("data-modal-video"))??this.modalComponent.options.src,i=(t&&t.getAttribute("data-caption"))??this.modalComponent.options.caption,a=(t&&t.getAttribute("data-group"))??this.modalComponent.options.group;if(a){const n=document.querySelector(`dialog#${a}`);n&&(this.modalComponent.dialog=n,this.changeGroupIndex())}this.modalComponent.dialog||(this.modalComponent.dialog=document.createElement("dialog"),this.modalComponent.dialog.onclose=()=>{this.modalComponent.hideNavigation(),this.iframe.src=""},a&&this.modalComponent.dialog.setAttribute("id",a),document.body.appendChild(this.modalComponent.dialog),this.modalComponent.addCloseButton(),this.modalComponent.modalCloseBtn.classList.add("hidden"),this.caption=document.createElement("div"),this.caption.classList.add("hidden"),this.caption.classList.add(...this.cssClasses.videoCaptionStyle.split(" ")),this.caption.innerText=i,this.modalComponent.dialog.appendChild(this.caption)),e?this.openPluginModal(e):console.log("No modal src is provided on the trigger")}gotoNextAction(){this.changeGroupIndex()}gotoPrevAction(){this.changeGroupIndex()}changeGroupIndex(){this.caption.classList.add("hidden"),this.modalLoader.classList.remove("hidden"),this.captionGroup[this.modalComponent.currentGroupIndex]?this.caption.innerText=this.captionGroup[this.modalComponent.currentGroupIndex]:this.caption.innerText="",this.iframe.setAttribute("src",this.modalComponent.galleryGroup[this.modalComponent.currentGroupIndex])}openPluginModal(o){this.modalComponent.galleryGroup=[],this.captionGroup=[];const t=this.modalComponent.trigger&&this.modalComponent.trigger.getAttribute("data-group");t&&(this.modalComponent.galleryGroup=Array.from(document.querySelectorAll(`[data-group=${t}]`)).map(i=>`https://www.youtube.com/embed/${this.getYoutubeId(i.getAttribute("data-modal-video"))}`),document.querySelectorAll(`[data-group=${t}][data-caption]`).length>0&&(this.captionGroup=Array.from(document.querySelectorAll(`[data-group=${t}]`)).map(i=>i.getAttribute("data-caption"))),this.modalComponent.currentGroupIndex=this.modalComponent.galleryGroup.indexOf(`https://www.youtube.com/embed/${this.getYoutubeId(o)}`)),this.modalLoader||(this.modalLoader=document.createElement("div"),this.modalLoader.classList.add(...this.modalComponent.cssClasses.loaderStyle.split(" ")),this.modalLoader.insertAdjacentHTML("afterbegin",'<div class="loader"></div>'),this.modalComponent.dialog.insertAdjacentElement("afterbegin",this.modalLoader)),this.iframe?(this.iframe.src=`https://www.youtube.com/embed/${this.getYoutubeId(o)}`,t&&(this.changeGroupIndex(),this.modalComponent.showNavigation())):(this.modalComponent.modalCloseBtn.classList.remove("hidden"),t&&(this.modalComponent.addNavigation(),this.modalComponent.showNavigation()),this.iframe=document.createElement("iframe"),this.iframe.classList.add(...this.cssClasses.videoStyle.split(" ")),this.iframe.setAttribute("allow","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"),this.iframe.setAttribute("allowfullscreen","true"),this.iframe.addEventListener("load",()=>{this.modalLoader.classList.add("hidden"),this.caption.innerText.length>0&&this.caption.classList.remove("hidden")}),this.iframe.src=`https://www.youtube.com/embed/${this.getYoutubeId(o)}`,this.modalLoader.classList.add("hidden"),this.modalComponent.dialog.insertAdjacentElement("afterbegin",this.iframe),this.modalComponent.onDialogCreation()),this.modalComponent.dialog.showModal()}getYoutubeId(o){var t=/^.*((youtu.be\/)|(v\/)|(\/u\/\w\/)|(embed\/)|(watch\?))\??v?=?([^#&?]*).*/,e=o.match(t);return e&&e[7].length==11?e[7]:!1}}export{l as VideoModalPlugin};
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.