1import{$ as r}from"./main-D9p2ehdz.js";const e=class e{constructor(t,s){this.component=t,this.consentService=s,this.playerReady=null,this.playerContainer=this.component.getElementsByClassName("player-container")[0],this.playButton=this.component.getElementsByClassName("play-button")[0],this.playerOverlay=this.component.getElementsByClassName("video-player__overlay")[0],this.youtubeId=this.component.getAttribute("data-video-youtube"),this.consentService.consent.subscribe(a=>{a.includes(r.Marketing)?(this.playerOverlay.classList.contains("--has-cover")?this.playButton.addEventListener("click",async()=>{await this.play(),this.component.classList.add("--is-activated")}):this.playerOverlay.classList.add("d-none"),this.component.classList.add("--has-consent"),this.preparePlayer()):this.component.classList.remove("--has-consent")});const i=t.querySelector(".video-player__consent-toggle-btn");i&&i.addEventListener("click",a=>{a.preventDefault(),this.consentService.openConsentPopup()})}static appendScript(){if(typeof YT<"u"){e.apiReady=new Promise(s=>{s()}),console.log("YOUTUBE already added");return}e.apiReady=new Promise(s=>{window.onYouTubeIframeAPIReady=()=>{s()}});const t=document.createElement("script");t.src="https://www.youtube.com/iframe_api",document.body.appendChild(t)}async play(){await this.playerReady,this.player.playVideo()}async preparePlayer(){e.apiReady===null&&e.appendScript(),await e.apiReady,this.playerReady===null&&this.createPlayer(this.playerContainer,this.youtubeId)}createPlayer(t,s){this.playerReady=new Promise((i,a)=>{this.player=new YT.Player(t,{videoId:s,host:"https://www.youtube-nocookie.com",playerVars:{modestbranding:1,playsinline:1,rel:0},events:{onReady:()=>{this.component.classList.add("--is-ready"),i()},onError:n=>{a(n)},onStateChange:n=>{switch(this.component.classList.remove("--is-cued"),this.component.classList.remove("--is-buffering"),this.component.classList.remove("--is-playing"),this.component.classList.remove("--is-paused"),this.component.classList.remove("--is-ended"),n.data){case YT.PlayerState.UNSTARTED:this.component.classList.add("--is-unstarted");break;case YT.PlayerState.CUED:this.component.classList.add("--is-cued");break;case YT.PlayerState.BUFFERING:this.component.classList.add("--is-buffering");break;case YT.PlayerState.PLAYING:this.component.classList.add("--is-playing");break;case YT.PlayerState.PAUSED:this.component.classList.add("--is-paused");break;case YT.PlayerState.ENDED:this.component.classList.add("--is-ended");break;default:console.log(`Unknown YouTube Event: ${n.data}`);break}}}})})}};e.apiReady=null;let o=e;export{o as YouTubeEmbed};
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.