import{_ as e,n as a,t as i,a as t,d7 as r,x as s,d9 as o,dn as n,dp as d,dq as l,dr as c,df as h,r as g,b as m,ds as u,di as v,dt as C,du as p,dv as w,dw as M,dx as y,dj as I,db as _,dy as f,dz as b,dA as A,d5 as j,dB as D,s as x,dc as T,dd as $,a4 as E,l as k,dg as L}from"./card-b98d578d.js";import"./image-player-46de9efa.js";import{i as N}from"./media-dimensions-container-677d7a50.js";import{L as z,M as S,a as P,A as Z}from"./dispatch-live-error-5bb8d032.js";import{V as O,h as V,m as G,M as R}from"./audio-13475a81.js";let W=class extends t{constructor(){super(...arguments),this.controls=!1,this._refVideo=r(),this._mediaPlayerController=new O(this,(()=>this._refVideo.value??null),(()=>this.controls))}async getMediaPlayerController(){return this._mediaPlayerController}render(){return s` `}static get styles(){return g(":host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\nvideo {\n width: 100%;\n height: 100%;\n display: block;\n object-fit: var(--advanced-camera-card-media-layout-fit, contain);\n object-position: var(--advanced-camera-card-media-layout-position-x, 50%) var(--advanced-camera-card-media-layout-position-y, 50%);\n object-view-box: inset(var(--advanced-camera-card-media-layout-view-box-top, 0%) var(--advanced-camera-card-media-layout-view-box-right, 0%) var(--advanced-camera-card-media-layout-view-box-bottom, 0%) var(--advanced-camera-card-media-layout-view-box-left, 0%));\n}")}};e([a()],W.prototype,"url",void 0),e([a({type:Boolean})],W.prototype,"controls",void 0),W=e([i("advanced-camera-card-video-player")],W);let Y=class extends t{constructor(){super(),this._refProvider=r(),this._refContainer=r(),this._lazyLoadController=new z(this),this._url=null,this._lazyLoadController.addListener((e=>e&&this._setURL()))}async getMediaPlayerController(){return await this.updateComplete,await(this._refProvider.value?.getMediaPlayerController())??null}async _switchToRelatedClipView(){const e=this.viewManagerEpoch?.manager.getView();if(!(this.hass&&e&&this.cameraManager&&this.media&&u.isEvent(this.media)&&v.isEventQuery(e.query)))return;const a=e.query.clone();a.convertToClipsQueries();a.getQuery()&&await(this.viewManagerEpoch?.manager.setViewByParametersWithExistingQuery({params:{view:"media",query:a},queryExecutorOptions:{selectResult:{id:this.media.getID()??void 0},rejectResults:e=>!e.hasSelectedResult()}}))}async _setURL(){const e=this.media?.getContentID();if(!(this.media&&e&&this.hass&&this._lazyLoadController?.isLoaded()))return;let a=this.resolvedMediaCache?.get(e)??null;if(a||(a=await C(this.hass,e,this.resolvedMediaCache)),!a)return;const i=a.url;if(p(i))return void(this._url=w(this.hass,i));const t=this.media.getCameraID(),r=t?this.cameraManager?.getStore().getCamera(t):null,s=r?.getProxyConfig();if(s)try{const e={endpoint:i,sign:!1},a=await M(this.hass,e,s,{context:"media",openLimit:0});a.sign?this._url=await y(this.hass,a.endpoint):this._url=a.endpoint}catch(e){I(e)}else this._url=i}willUpdate(e){(e.has("viewerConfig")||!this._lazyLoadController&&this.viewerConfig)&&this._lazyLoadController.setConfiguration(this.viewerConfig?.lazy_load),(e.has("media")||e.has("viewerConfig")||e.has("resolvedMediaCache")||e.has("hass"))&&this._setURL(),e.has("viewerConfig")&&this.viewerConfig?.zoomable&&import("./zoomer-c5c2e275.js")}_getRelevantCameraConfig(){const e=this.media?.getCameraID();return e?this.cameraManager?.getStore().getCameraConfig(e)??null:null}_renderContainer(e){if(!this.media)return e;const a=this.media.getCameraID(),i=this.media.getID()??void 0,t=a?this.cameraManager?.getStore().getCameraConfig(a)??null:null,r=this.viewManagerEpoch?.manager.getView(),o=s` ${e} `;return s` ${this.viewerConfig?.zoomable?s`t?.dimensions?.layout?{pan:t.dimensions.layout.pan,zoom:t.dimensions.layout.zoom}:void 0))} .settings=${i?r?.context?.zoom?.[i]?.requested:void 0} @advanced-camera-card:zoom:zoomed=${async()=>(await this.getMediaPlayerController())?.setControls(!1)} @advanced-camera-card:zoom:unzoomed=${async()=>(await this.getMediaPlayerController())?.setControls()} @advanced-camera-card:zoom:change=${e=>_(e,this.viewManagerEpoch?.manager,i)} > ${o} `:o} `}render(){if(this._lazyLoadController?.isLoaded()&&this.media&&this.hass&&this.viewerConfig)return this._url?this._renderContainer(s` ${u.isVideo(this.media)?this.media.getVideoContentType()===b.HLS?s` `:s` `:s`{this.viewerConfig?.snapshot_click_plays_clip&&this._switchToRelatedClipView()}} >`} `):f({cardWideConfig:this.cardWideConfig})}static get styles(){return g(':host {\n background-color: var(--advanced-camera-card-background);\n background-position: center;\n background-repeat: no-repeat;\n background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgaW5rc2NhcGU6dmVyc2lvbj0iMS4yLjIgKGIwYTg0ODY1NDEsIDIwMjItMTItMDEpIgogICBzb2RpcG9kaTpkb2NuYW1lPSJpcmlzLW91dGxpbmUuc3ZnIgogICBpZD0ic3ZnNCIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMjQgMjQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPGRlZnMKICAgICBpZD0iZGVmczgiIC8+CiAgPHNvZGlwb2RpOm5hbWVkdmlldwogICAgIGlkPSJuYW1lZHZpZXc2IgogICAgIHBhZ2Vjb2xvcj0iI2I5M2UzZSIKICAgICBib3JkZXJjb2xvcj0iIzAwMDAwMCIKICAgICBib3JkZXJvcGFjaXR5PSIwLjI1IgogICAgIGlua3NjYXBlOnNob3dwYWdlc2hhZG93PSIyIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjYwNzg0MzE0IgogICAgIGlua3NjYXBlOnBhZ2VjaGVja2VyYm9hcmQ9ImZhbHNlIgogICAgIGlua3NjYXBlOmRlc2tjb2xvcj0iI2QxZDFkMSIKICAgICBzaG93Z3JpZD0iZmFsc2UiCiAgICAgaW5rc2NhcGU6em9vbT0iMTkuMzc4NTc4IgogICAgIGlua3NjYXBlOmN4PSI4LjI4MjM0MTUiCiAgICAgaW5rc2NhcGU6Y3k9IjEyLjM1OTAwOCIKICAgICBpbmtzY2FwZTp3aW5kb3ctd2lkdGg9IjM4NDAiCiAgICAgaW5rc2NhcGU6d2luZG93LWhlaWdodD0iMTUyNyIKICAgICBpbmtzY2FwZTp3aW5kb3cteD0iMTA4MCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iMjI3IgogICAgIGlua3NjYXBlOndpbmRvdy1tYXhpbWl6ZWQ9IjEiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ic3ZnNCIgLz4KICA8ZwogICAgIGlkPSJnMTExOSIKICAgICBzdHlsZT0iZmlsbC1vcGFjaXR5OjAuMDU7ZmlsbDojZmZmZmZmIj4KICAgIDxjaXJjbGUKICAgICAgIHN0eWxlPSJkaXNwbGF5OmlubGluZTtmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjAuNDk3ODI4MjU7c3Ryb2tlLXdpZHRoOjEuMzk3Mjk7b3BhY2l0eTowLjUiCiAgICAgICBpZD0icGF0aDE3MCIKICAgICAgIGN4PSIxMiIKICAgICAgIGN5PSIxMiIKICAgICAgIGlua3NjYXBlOmxhYmVsPSJCYWNrZ3JvdW5kIgogICAgICAgcj0iMTEuMjUiIC8+CiAgICA8cGF0aAogICAgICAgZD0iTSAxMy43MzAwMDEsMTUgOS44MzAwMDAzLDIxLjc2IEMgMTAuNTMsMjEuOTEgMTEuMjUsMjIgMTIsMjIgYyAyLjQwMDAwMSwwIDQuNiwtMC44NSA2LjMyLC0yLjI1IEwgMTQuNjYwMDAxLDEzLjQgTSAyLjQ2MDAwMDMsMTUgYyAwLjkyLDIuOTIgMy4xNSw1LjI2IDUuOTksNi4zNCBMIDEyLjEyLDE1IG0gLTMuNTc5OTk5NywtMyAtMy45LC02Ljc0OTk5OTYgYyAtMS42NCwxLjc0OTk5OSAtMi42NCw0LjEzOTk5OTMgLTIuNjQsNi43NDk5OTk2IDAsMC42OCAwLjA3LDEuMzUgMC4yLDIgaCA3LjQ5IE0gMjEuOCw5Ljk5OTk5OTcgSCAxNC4zMTAwMDEgTCAxNC42MDAwMDEsMTAuNSAxOS4zNiwxOC43NSBDIDIxLDE2Ljk3IDIyLDE0LjYgMjIsMTIgMjIsMTEuMzEgMjEuOTMsMTAuNjQgMjEuOCw5Ljk5OTk5OTcgbSAtMC4yNiwtMSBDIDIwLjYyLDYuMDcwMDAwNSAxOC4zOSwzLjc0MDAwMDIgMTUuNTUwMDAxLDIuNjYwMDAwMiBMIDExLjg4LDguOTk5OTk5NyBNIDkuNDAwMDAwMywxMC41IDE0LjE3MDAwMSwyLjI0MDAwMDIgYyAtMC43LC0wLjE1IC0xLjQyMDAwMSwtMC4yNCAtMi4xNzAwMDEsLTAuMjQgLTIuMzk5OTk5NywwIC00LjU5OTk5OTcsMC44NCAtNi4zMTk5OTk3LDIuMjUwMDAwMyBsIDMuNjYsNi4zNDk5OTk1IHoiCiAgICAgICBpZD0icGF0aDIiCiAgICAgICBpbmtzY2FwZTpsYWJlbD0iSXJpcyIKICAgICAgIHN0eWxlPSJmaWxsLW9wYWNpdHk6MC41MDIyMTAwMjtmaWxsOiNmZmZmZmY7b3BhY2l0eTowLjc1IiAvPgogIDwvZz4KPC9zdmc+Cg==");\n background-size: 10%;\n background-position: center;\n}\n\n:host {\n width: 100%;\n height: 100%;\n display: block;\n}\n\n.zoom-wrapper {\n display: block;\n width: 100%;\n height: 100%;\n}\n\nadvanced-camera-card-progress-indicator {\n padding: 30px;\n box-sizing: border-box;\n}')}};e([a({attribute:!1})],Y.prototype,"hass",void 0),e([a({attribute:!1})],Y.prototype,"viewManagerEpoch",void 0),e([a({attribute:!1})],Y.prototype,"media",void 0),e([a({attribute:!1})],Y.prototype,"viewerConfig",void 0),e([a({attribute:!1})],Y.prototype,"resolvedMediaCache",void 0),e([a({attribute:!1})],Y.prototype,"cameraManager",void 0),e([a({attribute:!1})],Y.prototype,"cardWideConfig",void 0),e([m()],Y.prototype,"_url",void 0),Y=e([i("advanced-camera-card-viewer-provider")],Y);let B=class extends t{constructor(){super(...arguments),this.showControls=!0,this._selected=null,this._media=null,this._mediaActionsController=new S,this._mediaHeightController=new P(this,".embla__slide"),this._loadedMediaPlayerController=null,this._refCarousel=r()}connectedCallback(){super.connectedCallback(),this._mediaHeightController.setRoot(this.renderRoot),this.requestUpdate()}disconnectedCallback(){this._mediaActionsController.destroy(),this._mediaHeightController.destroy(),super.disconnectedCallback()}_getTransitionEffect(){return this.viewerConfig?.transition_effect??j.media_viewer.transition_effect}_getPlugins(){return[Z()]}_getMediaNeighbors(){const e=this._media?.length??0;if(!this._media||null===this._selected)return null;const a=this._selected>0?this._selected-1:null,i=this._selected+1a===this._media?.[e]),{main:!0,cameraID:this.viewFilterCameraID});if(!i)return;const t=i.getSelectedResult(this.viewFilterCameraID),r=u.isMedia(t)?t.getCameraID():null;this.viewManagerEpoch?.manager.setViewByParameters({params:{queryResults:i,...r&&{camera:r}},modifiers:[new D("mediaViewer","seek")]})}_getSlides(){if(!this._media)return[];const e=[];for(let a=0;au.isMedia(e)))??null,r=!0);const s=a?.queryResults?.getSelectedResult(this.viewFilterCameraID),o=e?.queryResults?.getSelectedResult(this.viewFilterCameraID);if(s!==o||r){const e=this._media?.findIndex((e=>e===o))??null;this._selected=e??(this._media&&this._media.length?this._media.length-1:null)}}}_renderNextPrevious(e,a){const i=e=>{if(!a||!this._media)return;const i=("previous"===e?a.previous?.index:a.next?.index)??null;null!==i&&this._setViewSelectedIndex(i)},t=T(this),r="ltr"===t&&"left"===e||"rtl"===t&&"right"===e?"previous":"next";return s` {i(r),$(e)}} >`}render(){const e=this._media?.length??0;if(!this._media||!e)return E({message:k("common.no_media"),type:"info",icon:"mdi:multimedia",...this.viewFilterCameraID&&{context:{camera_id:this.viewFilterCameraID}}});if(!this.hass||!this.cameraManager||null===this._selected)return;const a=this._getMediaNeighbors(),i=this.viewManagerEpoch?.manager.getView();return s` {this._setViewSelectedIndex(e.detail.index)}} @advanced-camera-card:media:loaded=${e=>{this._loadedMediaPlayerController=e.detail.mediaPlayerController??null,this._seekHandler()}} @advanced-camera-card:media:unloaded=${()=>{this._loadedMediaPlayerController=null}} > ${this.showControls?this._renderNextPrevious("left",a):""} ${N([this._media,i],(()=>this._getSlides()))} ${this.showControls?this._renderNextPrevious("right",a):""} ${i?s` `:""}
`}updated(e){super.updated(e);(!!this._refCarousel.value&&this._mediaActionsController.setRoot(this._refCarousel.value)||e.has("viewManagerEpoch"))&&this._setMediaTarget(),e.has("viewManagerEpoch")&&this.viewManagerEpoch?.manager.getView()?.context?.mediaViewer!==this.viewManagerEpoch?.oldView?.context?.mediaViewer&&this._seekHandler()}_setMediaTarget(){this._media?.length&&null!==this._selected?(this._mediaActionsController.setTarget(this._selected,!this.viewFilterCameraID||this.viewManagerEpoch?.manager.getView()?.camera===this.viewFilterCameraID),this._mediaHeightController.setSelected(this._selected)):this._mediaActionsController.unsetTarget()}async _seekHandler(){const e=this.viewManagerEpoch?.manager.getView(),a=e?.context?.mediaViewer?.seek;if(!(this.hass&&a&&this._media&&this._loadedMediaPlayerController&&null!==this._selected))return;const i=this._media[this._selected];if(!i)return;const t=i.includesTime(a);x(this,!t,"unseekable"),t||this._loadedMediaPlayerController.isPaused()?t&&this._loadedMediaPlayerController.isPaused()&&this._loadedMediaPlayerController.play():this._loadedMediaPlayerController.pause();const r=await(this.cameraManager?.getMediaSeekTime(i,a))??null;null!==r&&this._loadedMediaPlayerController.seek(r)}_renderMediaItem(e){const a=this.viewManagerEpoch?.manager.getView();return this.hass&&a&&this.viewerConfig?s`
`:null}static get styles(){return g(":host {\n display: block;\n --video-max-height: none;\n transition: max-height 0.1s ease-in-out;\n position: relative;\n border-radius: var(--advanced-camera-card-border-radius-final);\n overflow: hidden;\n}\n\n:host(:not([grid-id])) {\n height: 100%;\n}\n\n:host([unselected]) advanced-camera-card-carousel,\n:host([unselected]) .seek-warning {\n pointer-events: none;\n}\n\n:host([unseekable]) advanced-camera-card-carousel {\n filter: brightness(50%);\n}\n\n:host([unseekable]) .seek-warning {\n display: block;\n}\n\n.seek-warning {\n display: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n color: white;\n}\n\n.embla__slide {\n display: flex;\n height: 100%;\n width: 100%;\n flex: 0 0 100%;\n}")}};e([a({attribute:!1})],B.prototype,"hass",void 0),e([a({attribute:!1})],B.prototype,"viewManagerEpoch",void 0),e([a({attribute:!1})],B.prototype,"viewFilterCameraID",void 0),e([a({attribute:!1,hasChanged:A})],B.prototype,"viewerConfig",void 0),e([a({attribute:!1})],B.prototype,"resolvedMediaCache",void 0),e([a({attribute:!1})],B.prototype,"cardWideConfig",void 0),e([a({attribute:!1})],B.prototype,"cameraManager",void 0),e([a({attribute:!1})],B.prototype,"showControls",void 0),e([m()],B.prototype,"_selected",void 0),B=e([i("advanced-camera-card-viewer-carousel")],B);let U=class extends t{_renderCarousel(e){const a=this.viewManagerEpoch?.manager.getView()?.camera,i=e?this.cameraManager?.getStore().getCameraConfig(e)?.dimensions?.grid?.width_factor:void 0;return s` `}willUpdate(e){e.has("viewManagerEpoch")&&this._needsGrid()&&import("./media-grid-f0fe4ffd.js")}_needsGrid(){const e=this.viewManagerEpoch?.manager.getView(),a=e?.queryResults?.getCameraIDs();return!!e?.isGrid()&&!!e?.supportsMultipleDisplayModes()&&(a?.size??0)>1}_gridSelectCamera(e){const a=this.viewManagerEpoch?.manager.getView();this.viewManagerEpoch?.manager.setViewByParameters({params:{camera:e,queryResults:a?.queryResults?.clone().promoteCameraSelectionToMainSelection(e)}})}render(){const e=this.viewManagerEpoch?.manager.getView(),a=e?.queryResults?.getCameraIDs();return a&&this._needsGrid()?s` this._gridSelectCamera(e.detail.selected)} > ${[...a].map((e=>this._renderCarousel(e)))} `:this._renderCarousel()}static get styles(){return g(L)}};e([a({attribute:!1})],U.prototype,"hass",void 0),e([a({attribute:!1})],U.prototype,"viewManagerEpoch",void 0),e([a({attribute:!1})],U.prototype,"viewerConfig",void 0),e([a({attribute:!1})],U.prototype,"resolvedMediaCache",void 0),e([a({attribute:!1})],U.prototype,"cardWideConfig",void 0),e([a({attribute:!1})],U.prototype,"cameraManager",void 0),U=e([i("advanced-camera-card-viewer-grid")],U);let F=class extends t{constructor(){super(...arguments),this.isEmpty=!1}willUpdate(e){if(e.has("viewManagerEpoch")){const e=this.viewManagerEpoch?.manager.getView();this.isEmpty=!e?.queryResults?.getResults()?.filter((e=>u.isMedia(e))).length}}render(){if(this.hass&&this.viewManagerEpoch&&this.viewerConfig&&this.cameraManager&&this.cardWideConfig){if(this.isEmpty){const e=!!this.viewManagerEpoch.manager.getView()?.context?.loading?.query;return E({type:"info",message:k(e?"error.awaiting_media":"common.no_media"),icon:"mdi:multimedia",dotdotdot:e})}return s` `}}static get styles(){return g(":host {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n gap: 5px;\n}\n\n:host([empty]) {\n aspect-ratio: 16/9;\n}\n\nadvanced-camera-card-viewer-carousel {\n flex: 1;\n min-height: 0;\n}")}};e([a({attribute:!1})],F.prototype,"hass",void 0),e([a({attribute:!1})],F.prototype,"viewManagerEpoch",void 0),e([a({attribute:!1})],F.prototype,"viewerConfig",void 0),e([a({attribute:!1})],F.prototype,"resolvedMediaCache",void 0),e([a({attribute:!1})],F.prototype,"cameraManager",void 0),e([a({attribute:!1})],F.prototype,"cardWideConfig",void 0),e([a({attribute:"empty",reflect:!0,type:Boolean})],F.prototype,"isEmpty",void 0),F=e([i("advanced-camera-card-viewer")],F);export{F as AdvancedCameraCardViewer};