(window.webpackJsonp=window.webpackJsonp||[]).push([[145],{747:function(t,e,s){"use strict";s.r(e);var n=s(89);let a;var i=s(446),r=s(445);let o;s.d(e,"CastManager",function(){return c}),s.d(e,"getCastManager",function(){return h});class c{constructor(t){this.auth=void 0,this.status=void 0,this._eventListeners={},this.auth=t;const e=this.castContext;e.setOptions({receiverApplicationId:i.a,autoJoinPolicy:chrome.cast.AutoJoinPolicy.ORIGIN_SCOPED}),e.addEventListener(cast.framework.CastContextEventType.SESSION_STATE_CHANGED,t=>this._sessionStateChanged(t)),e.addEventListener(cast.framework.CastContextEventType.CAST_STATE_CHANGED,t=>this._castStateChanged(t))}addEventListener(t,e){return t in this._eventListeners||(this._eventListeners[t]=[]),this._eventListeners[t].push(e),()=>{this._eventListeners[t].splice(this._eventListeners[t].indexOf(e))}}get castConnectedToOurHass(){return void 0!==this.status&&void 0!==this.auth&&this.status.connected&&(this.status.hassUrl===this.auth.data.hassUrl||i.b&&this.status.hassUrl===i.c)}sendMessage(t){this.castSession.sendMessage(i.d,t)}get castState(){return this.castContext.getCastState()}get castContext(){return cast.framework.CastContext.getInstance()}get castSession(){return this.castContext.getCurrentSession()}requestSession(){return this.castContext.requestSession()}_fireEvent(t){for(const e of this._eventListeners[t]||[])e()}_receiveMessage(t){"receiver_status"===t.type&&(this.status=t,this._fireEvent("connection-changed"))}_sessionStateChanged(t){"SESSION_STARTED"===t.sessionState||"SESSION_RESUMED"===t.sessionState?(this.auth?Object(r.a)(this,this.auth):this.sendMessage({type:"get_status"}),this._attachMessageListener()):"SESSION_ENDED"===t.sessionState&&(this.status=void 0,this._fireEvent("connection-changed"))}_castStateChanged(t){this._fireEvent("state-changed")}_attachMessageListener(){this.castSession.addMessageListener(i.d,(t,e)=>this._receiveMessage(JSON.parse(e)))}}const h=t=>(o||(o=(()=>{if(a)return a;a=new Promise(t=>{window.__onGCastApiAvailable=t});const t=document.createElement("div");return t.id="cast",document.body.append(t),Object(n.b)("https://www.gstatic.com/cv/js/sender/v1/cast_sender.js?loadCastFramework=1"),a})().then(e=>{if(!e)throw new Error("No Cast API available");return new c(t)})),o)}}]);
//# sourceMappingURL=chunk.c99dbe9e8808f31f7655.js.map