1(()=>{"use strict";if(customElements.get("bm-cavendish"))return;class BMCavendish extends HTMLElement{connectedCallback(){if(this.abortController||(this.ambient=this.querySelector("[data-ambient]"),this.film=this.querySelector("[data-film]"),this.panel=this.querySelector("[data-film-panel]"),!this.ambient||!this.film||!this.panel))return;this.abortController=new AbortController,this.operation=(this.operation||0)+1,this.active=!1,this.visible=this.getBoundingClientRect().bottom>0&&this.getBoundingClientRect().top<window.innerHeight,this.motion=matchMedia("(prefers-reduced-motion: reduce)"),this.mobile=matchMedia("(max-width: 749px)"),this.connection=navigator.connection||navigator.mozConnection||navigator.webkitConnection,this.ambientWanted=!this.motion.matches&&!this.connection?.saveData,this.homeContent=[...this.querySelectorAll("[data-home-content]")],this.ambientButton=this.querySelector("[data-ambient-toggle]"),this.playButton=this.querySelector("[data-film-play]"),this.soundButton=this.querySelector("[data-film-sound]"),this.fullscreenButton=this.querySelector("[data-film-fullscreen]"),this.progress=this.querySelector("[data-film-progress]"),this.time=this.querySelector("[data-film-time]"),this.status=this.querySelector("[data-film-status]");const on=(node,event,callback)=>node?.addEventListener(event,callback,{signal:this.abortController.signal});this.querySelectorAll("[data-start-film]").forEach(button=>on(button,"click",()=>this.start(button))),on(this.querySelector("[data-film-close]"),"click",()=>this.close()),on(this.ambientButton,"click",()=>{this.ambientWanted=this.ambient.paused,this.syncAmbient()}),on(this.playButton,"click",()=>{this.film.paused?this.playFilm():this.film.pause()}),on(this.soundButton,"click",()=>{this.film.muted=!this.film.muted,!this.film.muted&&this.film.volume===0&&(this.film.volume=1),this.syncFilm()}),on(this.progress,"input",()=>{Number.isFinite(this.film.duration)&&(this.film.currentTime=Number(this.progress.value)),this.syncProgress()}),["play","pause"].forEach(event=>on(this.ambient,event,()=>this.syncAmbientButton())),on(this.ambient,"playing",()=>this.setAttribute("data-ambient-loaded","")),on(this.ambient,"error",()=>{this.ambientWanted=!1,this.removeAttribute("data-ambient-loaded"),this.syncAmbientButton()}),["play","pause","volumechange"].forEach(event=>on(this.film,event,()=>this.syncFilm())),["timeupdate","loadedmetadata","durationchange"].forEach(event=>on(this.film,event,()=>this.syncProgress())),on(this.film,"waiting",()=>{this.active&&!this.film.paused&&this.message(this.label("loading"))}),on(this.film,"playing",()=>this.message("")),on(this.film,"ended",()=>{this.message(""),this.syncFilm()}),on(this.film,"error",()=>{this.active&&this.message(this.label("error"))}),on(this,"keydown",event=>{this.active&&event.key==="Escape"&&!document.fullscreenElement&&(event.preventDefault(),this.close())}),on(document,"visibilitychange",()=>{document.hidden&&this.active&&this.film.pause(),this.syncAmbient()}),on(this.motion,"change",()=>{this.ambientWanted=!this.motion.matches&&!this.connection?.saveData,this.syncAmbient()}),on(this.connection,"change",()=>{this.connection.saveData&&(this.ambientWanted=!1,this.syncAmbient())}),on(this.mobile,"change",()=>this.syncAmbient()),this.fullscreenButton.hidden=!this.panel.requestFullscreen,on(this.fullscreenButton,"click",async()=>{try{this.message(""),document.fullscreenElement===this.panel?await document.exitFullscreen():await this.panel.requestFullscreen()}catch{this.active&&this.message(this.label("fullScreenError"))}}),on(document,"fullscreenchange",()=>{this.fullscreenButton.textContent=this.label(document.fullscreenElement===this.panel?"exitFullScreen":"fullScreen")}),"IntersectionObserver"in window&&(this.observer=new IntersectionObserver(entries=>{this.visible=entries[0].isIntersecting,!this.visible&&this.active&&this.film.pause(),this.syncAmbient()},{threshold:.08}),this.observer.observe(this)),this.setAttribute("data-ready",""),this.syncFilm(),this.syncAmbient()}disconnectedCallback(){this.operation++,this.abortController?.abort(),this.abortController=null,this.observer?.disconnect(),this.ambient?.pause(),this.film?.pause(),this.film&&(this.film.muted=!0),this.active=!1,this.panel?.setAttribute("hidden",""),this.homeContent?.forEach(node=>{node.inert=!1}),this.removeAttribute("data-film-active"),this.removeAttribute("data-ready")}label(key){return this.dataset[`label${key[0].toUpperCase()}${key.slice(1)}`]||""}syncAmbient(){if(!this.isConnected)return;if(!(this.ambientWanted&&this.visible&&!document.hidden&&!this.active)){this.ambient.pause(),this.syncAmbientButton();return}const source=this.mobile.matches&&this.dataset.ambientMobileUrl?this.dataset.ambientMobileUrl:this.dataset.ambientUrl;source&&(this.ambient.getAttribute("src")!==source&&(this.removeAttribute("data-ambient-loaded"),this.ambient.src=source),this.ambient.muted=!0,this.ambient.play().catch(error=>{error.name!=="AbortError"&&this.isConnected&&!this.active&&(this.ambientWanted=!1,this.syncAmbientButton())}))}syncAmbientButton(){const playing=!this.ambient.paused;this.ambientButton.textContent=this.label(playing?"pause":"play"),this.ambientButton.setAttribute("aria-label",this.label(playing?"pause":"play")),this.ambientButton.setAttribute("aria-pressed",String(playing))}
1start(opener){this.dataset.filmUrl&&(this.opener=opener,this.restoreScroll={left:window.scrollX,top:window.scrollY},this.operation++,this.active=!0,this.ambient.pause(),this.panel.hidden=!1,this.setAttribute("data-film-active",""),this.homeContent.forEach(node=>{node.inert=!0}),this.scrollIntoView({block:"start",behavior:"instant"}),this.film.getAttribute("src")!==this.dataset.filmUrl&&(this.film.src=this.dataset.filmUrl),this.film.currentTime=0,this.film.muted=!1,this.film.volume=1,this.syncFilm(),this.syncProgress(),this.playFilm(),this.querySelector("[data-film-close]").focus({preventScroll:!0}))}playFilm(){if(!this.active)return;this.film.error&&(this.film.load(),this.film.currentTime=0);const operation=this.operation;this.message(this.label("loading")),this.film.play().then(()=>{this.active&&operation===this.operation&&this.isConnected&&this.message("")}).catch(error=>{this.active&&operation===this.operation&&this.isConnected&&(error.name!=="AbortError"?this.message(this.label("retry")):this.message(""),this.syncFilm())})}close(){this.active&&(this.operation++,this.film.pause(),this.film.muted=!0,this.active=!1,document.fullscreenElement===this.panel&&document.exitFullscreen().catch(()=>{}),this.panel.hidden=!0,this.removeAttribute("data-film-active"),this.homeContent.forEach(node=>{node.inert=!1}),this.message(""),this.syncAmbient(),this.restoreScroll&&window.scrollTo({...this.restoreScroll,behavior:"instant"}),this.opener?.focus({preventScroll:!0}))}syncFilm(){this.playButton.textContent=this.label(this.film.paused?"play":"pause"),this.playButton.setAttribute("aria-pressed",String(!this.film.paused));const audible=!this.film.muted&&this.film.volume>0;this.soundButton.textContent=this.label(audible?"soundOn":"soundOff"),this.soundButton.setAttribute("aria-pressed",String(audible))}syncProgress(){const duration=Number.isFinite(this.film.duration)&&this.film.duration>0?this.film.duration:73,clock=value=>`${Math.floor(value/60)}:${String(Math.floor(value%60)).padStart(2,"0")}`;this.time.textContent=`${clock(this.film.currentTime)} / ${clock(duration)}`,this.progress.disabled=!Number.isFinite(this.film.duration)||this.film.duration<=0,this.progress.max=String(duration),this.progress.value=String(this.film.currentTime),this.progress.setAttribute("aria-valuetext",this.time.textContent)}message(text){this.status.textContent=text,this.status.hidden=!text}}customElements.define("bm-cavendish",BMCavendish)})(); 2//# sourceMappingURL=/cdn/shop/t/49/assets/bm-cavendish-home.js.map?v=67197295495235625241789288222
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.