1import{LitElement,html,css}from"lit-all";class NovaCardVideo extends LitElement{static properties={videoObject:{type:Object,attribute:"video-object"},autoplay:{type:Boolean},loop:{type:Boolean},description:{type:String}};get videoElement(){return this.renderRoot?.querySelector("video")??null}constructor(){super(),this._handleMouseover=this._handleMouseover.bind(this),this._handleMouseout=this._handleMouseout.bind(this)}connectedCallback(){super.connectedCallback(),this.style.setProperty("--nova-aspect-ratio",this.videoObject?.aspect_ratio),this.autoplay||(this.addEventListener("mouseover",this._handleMouseover),this.addEventListener("mouseout",this._handleMouseout))}_handleMouseover(){this.videoElement.play()}_handleMouseout(){this.videoElement.pause()}disconnectedCallback(){this.autoplay||(this.removeEventListener("mouseover",this._handleMouseover),this.removeEventListener("mouseout",this._handleMouseout))}render(){return html` 2 <div class="test"></div> 3 <video 4 playsinline="playsinline" 5 ?autoplay="${this.autoplay}" 6 ?loop="${this.loop}" 7 ${this.posterImage?`poster="${this.posterImage}"`:html``} 8 preload="none" 9 muted="muted" 10 aria-label="${this.description}" 11 poster="${this.videoObject.poster_image}" 12 > 13 ${this.videoObject.sources.map(source=>html`<source src="${source.url}" type="${source.mime_type}"></source>`)} 14 </video> 15 `}static styles=css` 16 :host { 17 aspect-ratio: var(--nova-aspect-ratio, 16 / 9); 18 display: block; 19 position: relative; 20 } 21 video { 22 background: black; 23 position: absolute; 24 top: 0; 25 left: 0; 26 right: 0; 27 bottom: 0; 28 width: 100%; 29 height: 100%; 30 } 31 `}window.customElements.define("nova-card-video",NovaCardVideo); 32//# sourceMappingURL=/cdn/shop/t/358/assets/component-card-video.js.map?v=1978292409290992521749788089
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.