1"use strict";(self.webpackChunkgcom_rhythm=self.webpackChunkgcom_rhythm||[]).push([[3281,4935],{6266(e,t,i){i(9952)},9952(e,t,i){i.r(t),i.d(t,{VideoPlayerButton:()=>s,default:()=>a});class s extends HTMLElement{constructor(){super(),this.timeout=null,this.selectors={video:""},this.urlChanged=!1,this.prevUrlChanged=!1,this.handleClickState=this.handleClickState.bind(this),this.handleResize=this.handleResize.bind(this),this.handleMouseOn=this.handleMouseOn.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseOut=this.handleMouseOut.bind(this),this.handleVideoPlayPause=this.handleVideoPlayPause.bind(this),this.handleVideoEnd=this.handleVideoEnd.bind(this),this.init()}init(){this.nativeVideo=!0,this.selectors.video="video"}connectedCallback(){this.video=this.parentElement.querySelector(this.selectors.video),this.video&&this.buttonMountedCallback()}buttonMountedCallback(){this.updateButtonState(),this.addEventListeners()}addEventListeners(){this.addEventListener("click",this.handleClickState),this.addEventListener("mouseover",this.handleMouseOn),this.nextElementSibling.addEventListener("mousemove",this.handleMouseMove),this.video.addEventListener("mouseout",this.handleMouseOut),window.addEventListener("resize",this.handleResize),this.nextElementSibling.addEventListener("touchstart",this.handleMouseMove,{passive:!0}),this.nativeVideo&&(this.video.addEventListener("play",this.handleVideoPlayPause),this.video.addEventListener("pause",this.handleVideoPlayPause),this.video.addEventListener("ended",this.handleVideoEnd))}removeEventListeners(){this.removeEventListener("click",this.handleClickState),this.removeEventListener("mouseover",this.handleMouseOn),this.nextElementSibling.removeEventListener("mousemove",this.handleMouseMove),this.video.removeEventListener("mouseout",this.handleMouseOut),window.removeEventListener("resize",this.handleResize),this.nextElementSibling.removeEventListener("touchstart",this.handleMouseMove),this.nativeVideo&&(this.video.removeEventListener("play",this.handleVideoPlayPause),this.video.removeEventListener("pause",this.handleVideoPlayPause),this.video.removeEventListener("ended",this.handleVideoEnd))}handleVideoPlayPause(){this.updateButtonState(),this.disappearButton()}handleVideoEnd(){this.showButton(),this.updateButtonState(!0)}handleMouseMove(){this.disappearButton(),this.updateButtonState()}handleMouseOn(){this.showButton()}handleResize(){const e=!!this.video?.dataset?.urlChanged;e!==this.prevUrlChanged?(this.urlChanged=!0,this.prevUrlChanged=e):this.urlChanged=!1,this.urlChanged&&this.video?.dataset?.playPress&&("pause"===this.dataset.state?this.playVideo():"play"===this.dataset.state&&(this.loadVideo(),this.updateButtonState(!0)))}handleMouseOut(){this.disappearButton(),this.updateButtonState()}getVideoDuration(){return this.video.duration}getVideoState(){let e="playing";return this.video.paused&&(e="paused"),e}updateButtonState(e=!1){const t=this.getVideoDuration();if(0!==t&&t<5)return void this.removeThis();const i=this.getVideoState();e||"paused"===i||"videoCued"===i?(this.setAttribute("aria-label",window.videoButtonStates.playButton),this.setAttribute("aria-pressed","false"),this.setAttribute("data-state","play")):"playing"!==i&&"buffering"!==i||(this.setAttribute("aria-label",window.videoButtonStates.pauseButton),this.setAttribute("aria-pressed","true"),this.setAttribute("data-state","pause"))}showButton(){this.classList.remove("sr-only"),this.setAttribute("aria-expanded","true"),clearTimeout(this.timeout)}disappearButton(){this.classList.remove("sr-only"),this.setAttribute("aria-expanded","true"),clearTimeout(this.timeout);"paused"!==this.getVideoState()&&(this.timeout=setTimeout(()=>{this.classList.add("sr-only"),this.setAttribute("aria-expanded","false")},2500))}loadVideo(){this.video.load()}playVideo(){this.video.play()}pauseVideo(){this.video.pause()}handleClickState(){const e=this.getVideoState();"playing"!==e&&"buffering"!==e?(this.playVideo(),this.setAttribute("aria-label",window.videoButtonStates.pauseButton),this.setAttribute("aria-pressed","true"),this.setAttribute("data-state","pause")):(this.pauseVideo(),this.setAttribute("aria-label",window.videoButtonStates.playButton),this.setAttribute("aria-pressed","fal
1se"),this.setAttribute("data-state","play"))}disconnectedCallback(){this.removeEventListeners()}static get observedAttributes(){return["data-play"]}attributeChangedCallback(e,t,i){"data-play"===e&&"true"===i&&this.playVideo()}removeThis(){this.remove()}}customElements.define("video-player-button",s);const a=s}},e=>{var t;t=6266,e(e.s=t)}]);
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.