iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
2 lines • 53.7 kB
JavaScript
/*! For license information please see 26019.5476e432a7db5225.js.LICENSE.txt */
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[26019],{27734:function(t,e,o){o.d(e,{S:function(){return n}});o(27495);var i=o(1375),a=o(62009);function n(t){return function(t,e,o){if(t){var i,a=t.toLowerCase().split(/[-_]/),n=a[0],s=n;if(a[1]&&4===a[1].length?(s+="_"+a[1],i=a[2]):i=a[1],i||(i=e[s]||e[n]),i)return function(t,e){var o=e["string"==typeof t?t.toUpperCase():t];return"number"==typeof o?o:1}(i.match(/^\d+$/)?Number(i):i,o)}return 1}(t,i.A,a.A)}},95747:function(t,e,o){o.a(t,async function(t,i){try{o.d(e,{CL:function(){return y},GH:function(){return $},Rl:function(){return p},ZS:function(){return _},aQ:function(){return f},r6:function(){return d},yg:function(){return w}});var a=o(74487),n=o(22786),s=o(72487),r=o(30162),l=o(8480),c=o(69543),h=t([a,l,s,r]);[a,l,s,r]=h.then?(await h)():h;const d=(t,e,o)=>u(e,o.time_zone).format(t),u=(0,n.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"long",day:"numeric",hour:(0,c.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,c.J)(t)?"h12":"h23",timeZone:(0,l.wj)(t.time_zone,e)})),p=t=>g().format(t),g=(0,n.A)(()=>new Intl.DateTimeFormat(void 0,{year:"numeric",month:"long",day:"numeric",hour:"2-digit",minute:"2-digit"})),f=(t,e,o)=>m(e,o.time_zone).format(t),m=(0,n.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"short",day:"numeric",hour:(0,c.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,c.J)(t)?"h12":"h23",timeZone:(0,l.wj)(t.time_zone,e)})),_=(t,e,o)=>v(e,o.time_zone).format(t),v=(0,n.A)((t,e)=>new Intl.DateTimeFormat(t.language,{month:"short",day:"numeric",hour:(0,c.J)(t)?"numeric":"2-digit",minute:"2-digit",hourCycle:(0,c.J)(t)?"h12":"h23",timeZone:(0,l.wj)(t.time_zone,e)})),y=(t,e,o)=>(new Date).getFullYear()===t.getFullYear()?_(t,e,o):f(t,e,o),w=(t,e,o)=>b(e,o.time_zone).format(t),b=(0,n.A)((t,e)=>new Intl.DateTimeFormat(t.language,{year:"numeric",month:"long",day:"numeric",hour:(0,c.J)(t)?"numeric":"2-digit",minute:"2-digit",second:"2-digit",hourCycle:(0,c.J)(t)?"h12":"h23",timeZone:(0,l.wj)(t.time_zone,e)})),$=(t,e,o)=>`${(0,s.zB)(t,e,o)}, ${(0,r.fU)(t,e,o)}`;i()}catch(d){i(d)}})},8480:function(t,e,o){o.a(t,async function(t,i){try{o.d(e,{fL:function(){return p},n2:function(){return g},wj:function(){return f}});var a,n,s,r=o(74487),l=o(29079),c=o(46927),h=t([r]);r=(h.then?(await h)():h)[0];const d=null===(a=Intl.DateTimeFormat)||void 0===a||null===(n=(s=a.call(Intl)).resolvedOptions)||void 0===n?void 0:n.call(s).timeZone,u=d&&("UTC"===d||"Etc/UTC"===d||d in l)?d:void 0,p=14881==o.j?void 0!==u:null,g=null!=u?u:"UTC",f=(t,e)=>t===c.Wj.local&&u?g:e;i()}catch(d){i(d)}})},93905:function(t,e,o){o.d(e,{I:function(){return n}});o(16280),o(44114),o(18111),o(7588),o(69112),o(33110);class i{addFromStorage(t){if(!this._storage[t]){const e=this.storage.getItem(t);e&&(this._storage[t]=JSON.parse(e))}}subscribeChanges(t,e){return this._listeners[t]?this._listeners[t].push(e):this._listeners[t]=[e],()=>{this.unsubscribeChanges(t,e)}}unsubscribeChanges(t,e){if(!(t in this._listeners))return;const o=this._listeners[t].indexOf(e);-1!==o&&this._listeners[t].splice(o,1)}hasKey(t){return t in this._storage}getValue(t){return this._storage[t]}setValue(t,e){const o=this._storage[t];this._storage[t]=e;try{void 0===e?this.storage.removeItem(t):this.storage.setItem(t,JSON.stringify(e))}catch(i){}finally{this._listeners[t]&&this._listeners[t].forEach(t=>t(o,e))}}constructor(t=window.localStorage){this._storage={},this._listeners={},this.storage=t,this.storage===window.localStorage&&window.addEventListener("storage",t=>{t.key&&this.hasKey(t.key)&&(this._storage[t.key]=t.newValue?JSON.parse(t.newValue):t.newValue,this._listeners[t.key]&&this._listeners[t.key].forEach(e=>e(t.oldValue?JSON.parse(t.oldValue):t.oldValue,this._storage[t.key])))})}}const a={};function n(t){return(e,o)=>{if("object"==typeof o)throw new Error("This decorator does not support this compilation type.");const n=t.storage||"localStorage";let s;n&&n in a?s=a[n]:(s=new i(window[n]),a[n]=s);const r=t.key||String(o);s.addFromStorage(r);const l=!1!==t.subscribe?t=>s.subscribeChanges(r,(e,i)=>{t.requestUpdate(o,e)}):void 0,c=()=>s.hasKey(r)?t.deserializer?t.deserializer(s.getValue(r)):s.getValue(r):void 0,h=(e,i)=>{let a;t.state&&(a=c()),s.setValue(r,t.serializer?t.serializer(i):i),t.state&&e.requestUpdate(o,a)},d=e.performUpdate;if(e.performUpdate=function(){this.__initialized=!0,d.call(this)},t.subscribe){const t=e.connectedCallback,o=e.disconnectedCallback;e.connectedCallback=function(){t.call(this);const e=this;e.__unbsubLocalStorage||(e.__unbsubLocalStorage=null==l?void 0:l(this))},e.disconnectedCallback=function(){var t;o.call(this);const e=this;null===(t=e.__unbsubLocalStorage)||void 0===t||t.call(e),e.__unbsubLocalStorage=void 0}}const u=Object.getOwnPropertyDescriptor(e,o);let p;if(void 0===u)p={get(){return c()},set(t){(this.__initialized||void 0===c())&&h(this,t)},configurable:!0,enumerable:!0};else{const t=u.set;p=Object.assign(Object.assign({},u),{},{get(){return c()},set(e){(this.__initialized||void 0===c())&&h(this,e),null==t||t.call(this,e)}})}Object.defineProperty(e,o,p)}}},52943:function(t,e,o){o.d(e,{Z:function(){return i}});const i=t=>t.charAt(0).toUpperCase()+t.slice(1)},14927:function(t,e,o){o.a(t,async function(t,i){try{o.r(e),o.d(e,{HaLanguagePicker:function(){return z},getLanguageOptions:function(){return C}});var a=o(74487),n=(o(26910),o(18111),o(20116),o(61701),o(62953),o(40445)),s=o(5124),r=o(67576),l=o(22786),c=o(1087),h=o(86198),d=o(52220),u=o(28684),p=o(18350),g=o(38508),f=t([a,p,g,h]);[a,p,g,h]=f.then?(await f)():f;let m,_,v,y,w,b,$=t=>t;const k="M7,10L12,15L17,10H7Z",x=[{name:"primary",weight:10},{name:"secondary",weight:8},{name:"search_labels.english",weight:5}],C=(t,e,o,i)=>{let a=[];const n={language:"en"};if(e){const e=u.P.translations;a=t.map(t=>{var o;let a=null===(o=e[t])||void 0===o?void 0:o.nativeName;if(!a)try{a=new Intl.DisplayNames(t,{type:"language",fallback:"code"}).of(t)}catch(l){a=t}const s=(0,h.T)(t,i||{language:navigator.language}),r=(0,h.T)(t,n);return{id:t,primary:a,secondary:s!==a?s:void 0,search_labels:{english:r!==a?r:null}}})}else i&&(a=t.map(t=>{const e=(0,h.T)(t,i),o=(0,h.T)(t,n);return{id:t,primary:e,search_labels:{english:o!==e?o:null}}}));return!o&&i&&a.sort((t,e)=>(0,d.SH)(t.primary,e.primary,i.language)),a};class z extends s.WF{firstUpdated(t){super.firstUpdated(t),this._computeDefaultLanguageOptions()}_computeDefaultLanguageOptions(){this._defaultLanguages=Object.keys(u.P.translations)}render(){var t,e,o,i;const a=null!==(t=this.label)&&void 0!==t?t:(null===(e=this.hass)||void 0===e?void 0:e.localize("ui.components.language-picker.language"))||"Language",n=null!==(o=this.value)&&void 0!==o?o:this.required&&!this.disabled?this._getItems()[0].id:this.value;return(0,s.qy)(m||(m=$` <ha-generic-picker .hass="${0}" .autofocus="${0}" .notFoundLabel="${0}" .emptyLabel="${0}" .label="${0}" .value="${0}" .valueRenderer="${0}" .disabled="${0}" .helper="${0}" .getItems="${0}" .searchKeys="${0}" @value-changed="${0}" hide-clear-icon> ${0} </ha-generic-picker> `),this.hass,this.autofocus,this._notFoundLabel,(null===(i=this.hass)||void 0===i?void 0:i.localize("ui.components.language-picker.no_languages"))||"No languages available",a,n,this._valueRenderer,this.disabled,this.helper,this._getItems,x,this._changed,this.buttonStyle?(0,s.qy)(_||(_=$`<ha-button slot="field" .disabled="${0}" @click="${0}" appearance="plain" variant="neutral"> ${0} <ha-svg-icon slot="end" .path="${0}"></ha-svg-icon> </ha-button>`),this.disabled,this._openPicker,this._getLanguageName(n),k):s.s6)}_openPicker(t){t.stopPropagation(),this.genericPicker.open()}_changed(t){t.stopPropagation(),this.value=t.detail.value,(0,c.r)(this,"value-changed",{value:this.value})}constructor(...t){super(...t),this.disabled=!1,this.required=!1,this.nativeName=!1,this.buttonStyle=!1,this.noSort=!1,this._defaultLanguages=[],this._getLanguagesOptions=(0,l.A)(C),this._getItems=()=>{var t,e;return this._getLanguagesOptions(null!==(t=this.languages)&&void 0!==t?t:this._defaultLanguages,this.nativeName,this.noSort,null===(e=this.hass)||void 0===e?void 0:e.locale)},this._getLanguageName=t=>{var e;return null===(e=this._getItems().find(e=>e.id===t))||void 0===e?void 0:e.primary},this._valueRenderer=t=>{var e;return(0,s.qy)(v||(v=$`<span slot="headline">${0}</span> `),null!==(e=this._getLanguageName(t))&&void 0!==e?e:t)},this._notFoundLabel=t=>{const e=(0,s.qy)(y||(y=$`<b>‘${0}’</b>`),t);return this.hass?this.hass.localize("ui.components.language-picker.no_match",{term:e}):(0,s.qy)(w||(w=$`No languages found for ${0}`),e)}}}z.styles=(0,s.AH)(b||(b=$`ha-generic-picker{width:100%;display:block}`)),(0,n.Cg)([(0,r.MZ)()],z.prototype,"value",void 0),(0,n.Cg)([(0,r.MZ)()],z.prototype,"label",void 0),(0,n.Cg)([(0,r.MZ)({type:Array})],z.prototype,"languages",void 0),(0,n.Cg)([(0,r.MZ)({attribute:!1})],z.prototype,"hass",void 0),(0,n.Cg)([(0,r.MZ)({type:Boolean,reflect:!0})],z.prototype,"disabled",void 0),(0,n.Cg)([(0,r.MZ)({type:Boolean})],z.prototype,"required",void 0),(0,n.Cg)([(0,r.MZ)()],z.prototype,"helper",void 0),(0,n.Cg)([(0,r.MZ)({attribute:"native-name",type:Boolean})],z.prototype,"nativeName",void 0),(0,n.Cg)([(0,r.MZ)({type:Boolean,attribute:"button-style"})],z.prototype,"buttonStyle",void 0),(0,n.Cg)([(0,r.MZ)({attribute:"no-sort",type:Boolean})],z.prototype,"noSort",void 0),(0,n.Cg)([(0,r.wk)()],z.prototype,"_defaultLanguages",void 0),(0,n.Cg)([(0,r.P)("ha-generic-picker",!0)],z.prototype,"genericPicker",void 0),z=(0,n.Cg)([(0,r.EM)("ha-language-picker")],z),i()}catch(m){i(m)}})},67505:function(t,e,o){var i=o(40445),a=o(5124),n=o(67576),s=o(93421);o(67094);let r,l,c=t=>t;class h extends a.WF{render(){return this._localize?(0,a.qy)(r||(r=c` <ha-svg-icon .path="${0}"></ha-svg-icon> <span class="prefix">${0}</span> <span class="text"><slot></slot></span> `),"M12,2A7,7 0 0,1 19,9C19,11.38 17.81,13.47 16,14.74V17A1,1 0 0,1 15,18H9A1,1 0 0,1 8,17V14.74C6.19,13.47 5,11.38 5,9A7,7 0 0,1 12,2M9,21V20H15V21A1,1 0 0,1 14,22H10A1,1 0 0,1 9,21M12,4A5,5 0 0,0 7,9C7,11.05 8.23,12.81 10,13.58V16H14V13.58C15.77,12.81 17,11.05 17,9A5,5 0 0,0 12,4Z",this._localize("ui.panel.config.tips.tip")):a.s6}}h.styles=(0,a.AH)(l||(l=c`:host{display:block;text-align:center}.text{direction:var(--direction);margin-left:2px;margin-inline-start:2px;margin-inline-end:initial;color:var(--secondary-text-color)}.prefix{font-weight:var(--ha-font-weight-medium)}`)),(0,i.Cg)([(0,n.wk)(),(0,s.IW)()],h.prototype,"_localize",void 0),h=(0,i.Cg)([(0,n.EM)("ha-tip")],h)},83892:function(t,e,o){o.d(e,{x:function(){return f}});o(18111),o(13579),o(27495),o(42762),o(62953);var i=o(40445),a=o(92070),n=o(5124),s=o(67576);let r,l,c,h,d,u,p,g=t=>t;class f extends n.WF{_onSlotChange(t){return e=>{const o=e.target.assignedNodes({flatten:!0}).some(t=>{var e;return t.nodeType===Node.ELEMENT_NODE||t.nodeType===Node.TEXT_NODE&&""!==(null===(e=t.textContent)||void 0===e?void 0:e.trim())});"start"===t?this._hasStart=o:this._hasEnd=o}}render(){return this._renderBase(this._renderInner())}_renderBase(t){return(0,n.qy)(r||(r=g`<div part="base" class="base" id="item">${0}</div>`),t)}_renderInner(){const t=this._slotController.test("content");return(0,n.qy)(l||(l=g` <div part="start" class="start" ?hidden="${0}"> <slot name="start" @slotchange="${0}"></slot> </div> <div part="content" class="content"> ${0} </div> <div part="end" class="end" ?hidden="${0}"> <slot name="end" @slotchange="${0}"></slot> </div> `),!this._hasStart,this._onSlotChange("start"),t?(0,n.qy)(c||(c=g`<slot name="content"></slot>`)):this._renderDefaultContent(),!this._hasEnd,this._onSlotChange("end"))}_renderDefaultContent(){var t,e;const o=this._slotController.test("headline"),i=this._slotController.test("supporting-text"),a=o||void 0!==this.headline,s=i||void 0!==this.supportingText;return(0,n.qy)(h||(h=g` ${0} ${0} `),a?(0,n.qy)(d||(d=g`<div part="headline" class="headline"> <slot name="headline">${0}</slot> </div>`),null!==(t=this.headline)&&void 0!==t?t:n.s6):n.s6,s?(0,n.qy)(u||(u=g`<div part="supporting-text" class="supporting"> <slot name="supporting-text">${0}</slot> </div>`),null!==(e=this.supportingText)&&void 0!==e?e:n.s6):n.s6)}constructor(...t){super(...t),this.disabled=!1,this._slotController=new a.X(this,"headline","supporting-text","content"),this._hasStart=!1,this._hasEnd=!1}}f.styles=(0,n.AH)(p||(p=g`:host{display:block;color:var(--primary-text-color);font-size:var(--ha-font-size-m);line-height:var(--ha-line-height-normal)}:host([disabled]){color:var(--disabled-text-color);pointer-events:none}.base{position:relative;display:flex;flex-direction:row;align-items:center;gap:var(--ha-row-item-gap,var(--ha-space-4));padding-block:var(--ha-row-item-padding-block,var(--ha-space-3));padding-inline:var(--ha-row-item-padding-inline,var(--ha-space-4));min-height:var(--ha-row-item-min-height,48px);box-sizing:border-box}.content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center}.end,.start{display:flex;align-items:center;flex:0 0 auto}.end[hidden],.start[hidden]{display:none}.headline{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supporting{color:var(--secondary-text-color);font-size:var(--ha-font-size-s);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}`)),(0,i.Cg)([(0,s.MZ)({type:String})],f.prototype,"headline",void 0),(0,i.Cg)([(0,s.MZ)({type:String,attribute:"supporting-text"})],f.prototype,"supportingText",void 0),(0,i.Cg)([(0,s.MZ)({type:Boolean,reflect:!0})],f.prototype,"disabled",void 0),(0,i.Cg)([(0,s.wk)()],f.prototype,"_hasStart",void 0),(0,i.Cg)([(0,s.wk)()],f.prototype,"_hasEnd",void 0),f=(0,i.Cg)([(0,s.EM)("ha-row-item")],f)},82e3:function(t,e,o){o.d(e,{D5:function(){return i},Fy:function(){return s},Gk:function(){return c},Hg:function(){return a},Y_:function(){return h},ds:function(){return l},e0:function(){return n},ec:function(){return r}});o(74423),o(18111),o(61701),o(33110),o(3362);const i=14881==o.j?`${location.protocol}//${location.host}`:null,a=t=>t.map(t=>{if("string"!==t.type)return t;switch(t.name){case"username":return Object.assign(Object.assign({},t),{},{autocomplete:"username",autofocus:!0});case"password":return Object.assign(Object.assign({},t),{},{autocomplete:"current-password"});case"code":return Object.assign(Object.assign({},t),{},{autocomplete:"one-time-code",autofocus:!0});default:return t}}),n=(t,e)=>t.callWS({type:"auth/sign_path",path:e}),s=async(t,e,o,i)=>t.callWS({type:"config/auth_provider/homeassistant/create",user_id:e,username:o,password:i}),r=(t,e,o)=>t.callWS({type:"config/auth_provider/homeassistant/change_password",current_password:e,new_password:o}),l=(t,e,o)=>t.callWS({type:"config/auth_provider/homeassistant/admin_change_password",user_id:e,password:o}),c=(t,e,o)=>t.callWS({type:"config/auth_provider/homeassistant/admin_change_username",user_id:e,username:o}),h=(t,e,o)=>t.callWS({type:"auth/delete_all_refresh_tokens",token_type:e,delete_current_token:o})},88151:function(t,e,o){o.d(e,{$:function(){return i},Q:function(){return a}});o(44114),o(17642),o(58004),o(33853),o(45876),o(32475),o(15024),o(31698),o(62953);const i=t=>t.callWS({type:"cloud/tts/info"}),a=t=>{const e=[];if(!t)return e;const o=new Set;for(const[i]of t.languages)o.has(i)||(o.add(i),e.push(i));return e}},79007:function(t,e,o){o.d(e,{AC:function(){return h},C_:function(){return l},HQ:function(){return g},Tg:function(){return c},Xo:function(){return s},Zr:function(){return d},_x:function(){return r},mQ:function(){return u},vT:function(){return n},xU:function(){return a},zN:function(){return p}});o(16280),o(33110),o(3362);var i=o(39889);const a=()=>fetch(`${location.protocol}//${location.host}/api/onboarding`,{credentials:"same-origin"}),n=t=>(0,i.QE)(fetch(`${location.protocol}//${location.host}/api/onboarding/users`,{method:"POST",credentials:"same-origin",body:JSON.stringify(t)})),s=t=>t.callApi("POST","onboarding/core_config"),r=t=>t.callApi("POST","onboarding/analytics"),l=(t,e)=>t.callApi("POST","onboarding/integration",e),c=async()=>{const t=await fetch(`${location.protocol}//${location.host}/api/onboarding/installation_type`,{method:"GET"});if(401===t.status)throw Error("unauthorized");if(404===t.status)throw Error("not_found");return t.json()},h=async t=>(0,i.QE)(fetch("/api/onboarding/cloud/login",{method:"POST",body:JSON.stringify(t)})),d=async()=>(0,i.QE)(fetch("/api/onboarding/cloud/status")),u=async()=>(0,i.QE)(fetch("/api/onboarding/cloud/logout",{method:"POST"})),p=async t=>(0,i.QE)(fetch("/api/onboarding/cloud/forgot_password",{method:"POST",body:JSON.stringify({email:t})})),g=t=>(0,i.QE)(fetch("/api/onboarding/integration/wait",{method:"POST",body:JSON.stringify({domain:t})}))},60761:function(t,e,o){o.d(e,{H:function(){return i}});const i=t=>t.callWS({type:"webhook/list"})},72247:function(t,e,o){o.a(t,async function(t,e){try{o(3362),o(27495),o(25440),o(62953);var i=o(40445),a=o(5124),n=o(67576),s=o(95747),r=o(1087),l=o(9899),c=o(38962),h=o(18350),d=(o(76776),o(29823)),u=(o(70947),o(28732),o(67094),o(67505),o(71117)),p=o(65063),g=o(81310),f=o(54706),m=o(14503),_=(o(20820),o(37802)),v=o(96872),y=o(63523),w=o(46100),b=o(7183),$=t([c,h,d,g,_,v,y,w,s]);[c,h,d,g,_,v,y,w,s]=$.then?(await $)():$;let k,x,C,z=t=>t;const S="M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19M8.46,11.88L9.87,10.47L12,12.59L14.12,10.47L15.53,11.88L13.41,14L15.53,16.12L14.12,17.53L12,15.41L9.88,17.53L8.47,16.12L10.59,14L8.46,11.88M15.5,4L14.5,3H9.5L8.5,4H5V6H19V4H15.5Z",A="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z",M="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z";class H extends((0,f.E)(a.WF)){render(){return(0,a.qy)(k||(k=z` <hass-subpage .hass="${0}" .narrow="${0}" header="ioBroker Cloud"> <ha-dropdown slot="toolbar-icon" @wa-select="${0}"> <ha-icon-button slot="trigger" .label="${0}" .path="${0}"></ha-icon-button> <ha-dropdown-item value="reset"> ${0} <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> </ha-dropdown-item> <ha-dropdown-item value="download"> ${0} <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> </ha-dropdown-item> </ha-dropdown> <div class="content"> <ha-config-section .isWide="${0}"> <span slot="header">ioBroker Cloud</span> <div slot="introduction"> <p> ${0} </p> </div> <ha-card outlined .header="${0}"> <div class="account-row"> <ha-list-item noninteractive twoline> ${0} <span slot="secondary" class="wrap"> ${0} </span> </ha-list-item> </div> ${0} <div class="account-row"> <ha-list-item noninteractive> ${0}: ${0} </ha-list-item> </div> <div class="card-actions"> <ha-button appearance="filled" href="https://account.nabucasa.com" target="_blank" rel="noreferrer"> ${0} </ha-button> <ha-button @click="${0}" variant="danger" appearance="plain"> ${0} </ha-button> </div> </ha-card> </ha-config-section> <ha-config-section .isWide="${0}"> <span slot="header">${0}</span> <div slot="introduction"> <p> ${0} </p> <p> ${0} <a href="https://www.nabucasa.com" target="_blank" rel="noreferrer"> ${0}</a>. </p> </div> <cloud-remote-pref .hass="${0}" .cloudStatus="${0}"></cloud-remote-pref> <cloud-tts-pref .hass="${0}" .narrow="${0}" .cloudStatus="${0}"></cloud-tts-pref> <cloud-ice-servers-pref .hass="${0}" .cloudStatus="${0}"></cloud-ice-servers-pref> <ha-tip> <a href="/config/voice-assistants"> ${0} </a> </ha-tip> <cloud-webhooks .hass="${0}" .cloudStatus="${0}"></cloud-webhooks> </ha-config-section> </div> </hass-subpage> `),this.hass,this.narrow,this._handleMenuAction,this.hass.localize("ui.common.menu"),A,this.hass.localize("ui.panel.config.cloud.account.reset_cloud_data"),S,this.hass.localize("ui.panel.config.cloud.account.download_support_package"),M,this.isWide,this.hass.localize("ui.panel.config.cloud.account.thank_you_note"),this.hass.localize("ui.panel.config.cloud.account.nabu_casa_account"),this.cloudStatus.email.replace(/(\w{3})[\w.-]+@([\w.]+\w)/,"$1***@$2"),this._subscription?this._subscription.human_description.replace("{periodEnd}",this._subscription.plan_renewal_date?(0,s.r6)(new Date(1e3*this._subscription.plan_renewal_date),this.hass.locale,this.hass.config):""):this.hass.localize("ui.panel.config.cloud.account.fetching_subscription"),"connecting"===this.cloudStatus.cloud&&this.cloudStatus.cloud_last_disconnect_reason?(0,a.qy)(x||(x=z` <ha-alert alert-type="warning" .title="${0}"></ha-alert> `),this.cloudStatus.cloud_last_disconnect_reason.reason):"",this.hass.localize("ui.panel.config.cloud.account.connection_status"),"connected"===this.cloudStatus.cloud?this.hass.localize("ui.panel.config.cloud.account.connected"):"disconnected"===this.cloudStatus.cloud?this.hass.localize("ui.panel.config.cloud.account.not_connected"):this.hass.localize("ui.panel.config.cloud.account.connecting"),this.hass.localize("ui.panel.config.cloud.account.manage_account"),this._signOut,this.hass.localize("ui.panel.config.cloud.account.sign_out"),this.isWide,this.hass.localize("ui.panel.config.cloud.account.integrations"),this.hass.localize("ui.panel.config.cloud.account.integrations_introduction"),this.hass.localize("ui.panel.config.cloud.account.integrations_introduction2"),this.hass.localize("ui.panel.config.cloud.account.integrations_link_all_features"),this.hass,this.cloudStatus,this.hass,this.narrow,this.cloudStatus,this.hass,this.cloudStatus,this.hass.localize("ui.panel.config.cloud.account.tip_moved_voice_assistants"),this.hass,this.cloudStatus)}firstUpdated(){this._fetchSubscriptionInfo()}hassSubscribe(){const t=(0,l.s)(()=>{this.cloudStatus&&!this.cloudStatus.google_registered&&(0,r.r)(this,"ha-refresh-cloud-status")},1e4,!0);return[this.hass.connection.subscribeEvents(()=>{var t;null!==(t=this.cloudStatus)&&void 0!==t&&t.alexa_registered||(0,r.r)(this,"ha-refresh-cloud-status")},"alexa_smart_home"),this.hass.connection.subscribeEvents(t,"google_assistant_command"),this.hass.connection.subscribeEvents(t,"google_assistant_query"),this.hass.connection.subscribeEvents(t,"google_assistant_sync")]}async _fetchSubscriptionInfo(){this._subscription=await(0,u.Pd)(this.hass),this._subscription.provider&&this.cloudStatus&&"connected"!==this.cloudStatus.cloud&&(0,r.r)(this,"ha-refresh-cloud-status")}async _signOut(){(0,p.dk)(this,{text:this.hass.localize("ui.panel.config.cloud.account.sign_out_confirm"),confirmText:this.hass.localize("ui.common.yes"),dismissText:this.hass.localize("ui.common.no"),confirm:()=>this._logoutFromCloud()})}async _logoutFromCloud(){await(0,u.Gu)(this.hass),(0,r.r)(this,"ha-refresh-cloud-status")}_handleMenuAction(t){switch(t.detail.item.value){case"reset":this._deleteCloudData();break;case"download":this._downloadSupportPackage()}}async _deleteCloudData(){if(await(0,p.dk)(this,{title:this.hass.localize("ui.panel.config.cloud.account.reset_data_confirm_title"),text:this.hass.localize("ui.panel.config.cloud.account.reset_data_confirm_text"),confirmText:this.hass.localize("ui.panel.config.cloud.account.reset"),destructive:!0}))try{await(0,u.Gu)(this.hass),await(0,u.Sb)(this.hass)}catch(t){return void(0,p.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.cloud.account.reset_data_failed"),text:null==t?void 0:t.message})}finally{(0,r.r)(this,"ha-refresh-cloud-status")}}async _downloadSupportPackage(){(0,b.Z)(this)}static get styles(){return[m.RF,(0,a.AH)(C||(C=z`[slot=introduction]{margin:-1em 0}[slot=introduction] a{color:var(--primary-color)}.content{padding-bottom:24px}.account-row{display:flex;padding:0 16px}.card-actions{display:flex;flex-direction:row-reverse;justify-content:space-between}ha-button{align-self:center}.wrap{white-space:normal}.status{text-transform:capitalize;padding:16px}`))]}constructor(...t){super(...t),this.isWide=!1,this.narrow=!1}}(0,i.Cg)([(0,n.MZ)({attribute:!1})],H.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({attribute:"is-wide",type:Boolean})],H.prototype,"isWide",void 0),(0,i.Cg)([(0,n.MZ)({type:Boolean})],H.prototype,"narrow",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],H.prototype,"cloudStatus",void 0),(0,i.Cg)([(0,n.wk)()],H.prototype,"_subscription",void 0),H=(0,i.Cg)([(0,n.EM)("cloud-account")],H),e()}catch(k){e(k)}})},37802:function(t,e,o){o.a(t,async function(t,e){try{o(3362);var i=o(40445),a=o(5124),n=o(67576),s=o(1087),r=(o(76776),o(26300)),l=o(59646),c=o(71117),h=o(81619),d=t([r,l]);[r,l]=d.then?(await d)():d;let u,p,g=t=>t;const f="M11,18H13V16H11V18M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6Z";class m extends a.WF{render(){if(!this.cloudStatus)return a.s6;const{cloud_ice_servers_enabled:t}=this.cloudStatus.prefs;return(0,a.qy)(u||(u=g` <ha-card outlined header="${0}"> <div class="header-actions"> <ha-icon-button .label="${0}" .path="${0}" href="https://www.nabucasa.com/config/webrtc/" target="_blank" rel="noreferrer" class="icon-link"></ha-icon-button> <ha-switch .checked="${0}" @change="${0}"></ha-switch> </div> <div class="card-content"> <p> ${0} </p> </div> </ha-card> `),this.hass.localize("ui.panel.config.cloud.account.ice_servers.title"),this.hass.localize("ui.panel.config.cloud.account.ice_servers.link_learn_how_it_works"),f,t,this._toggleCloudICEServersEnabledChanged,this.hass.localize("ui.panel.config.cloud.account.ice_servers.info"))}async _toggleCloudICEServersEnabledChanged(t){const e=t.target;try{await(0,c.Up)(this.hass,{cloud_ice_servers_enabled:e.checked}),(0,s.r)(this,"ha-refresh-cloud-status")}catch(o){(0,h.P)(this,{message:o.message}),e.checked=!e.checked}}}m.styles=(0,a.AH)(p||(p=g`.header-actions{position:absolute;right:16px;inset-inline-end:16px;inset-inline-start:initial;top:24px;display:flex;flex-direction:row}.header-actions .icon-link{margin-top:-16px;margin-right:8px;margin-inline-end:8px;margin-inline-start:initial;direction:var(--direction);color:var(--secondary-text-color)}`)),(0,i.Cg)([(0,n.MZ)({attribute:!1})],m.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],m.prototype,"cloudStatus",void 0),m=(0,i.Cg)([(0,n.EM)("cloud-ice-servers-pref")],m),e()}catch(u){e(u)}})},96872:function(t,e,o){o.a(t,async function(t,e){try{o(3362);var i=o(40445),a=o(5124),n=o(67576),s=o(1087),r=o(38962),l=o(18350),c=(o(76776),o(11382),o(59646)),h=(o(83892),o(72487)),d=o(43603),u=o(71117),p=o(81619),g=o(31381),f=o(20633),m=t([r,l,c,d,h]);[r,l,c,d,h]=m.then?(await m)():m;let _,v,y,w,b,$,k=t=>t;const x="M11,18H13V16H11V18M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6Z";class C extends a.WF{render(){if(!this.cloudStatus)return a.s6;const{remote_enabled:t,remote_allow_remote_enable:e,strict_connection:o}=this.cloudStatus.prefs,{remote_connected:i,remote_domain:n,remote_certificate:s,remote_certificate_status:r}=this.cloudStatus;return s&&"ready"===r?(0,a.qy)(v||(v=k` <ha-card outlined header="${0}"> <div class="header-actions"> <ha-icon-button .label="${0}" .path="${0}" href="https://www.nabucasa.com/config/remote/" target="_blank" rel="noreferrer" class="icon-link"></ha-icon-button> <ha-switch .checked="${0}" @change="${0}"></ha-switch> </div> <div class="card-content"> ${0} <p> ${0} </p> ${0} <ha-input-copy readonly="readonly" .value="${0}" .maskedValue="${0}" .label="${0}"></ha-input-copy> <ha-expansion-panel outlined .header="${0}"> <ha-row-item> <span slot="headline">${0}</span> <span slot="supporting-text">${0}</span> <ha-switch slot="end" .checked="${0}" @change="${0}"> </ha-switch> </ha-row-item> <hr> <ha-row-item> <span slot="headline">${0}</span> <span slot="supporting-text">${0}</span> <ha-button slot="end" appearance="plain" size="small" @click="${0}"> ${0} </ha-button> </ha-row-item> </ha-expansion-panel> </div> </ha-card> `),this.hass.localize("ui.panel.config.cloud.account.remote.title"),this.hass.localize("ui.panel.config.cloud.account.remote.link_learn_how_it_works"),x,t,this._toggleChanged,!i&&t?(0,a.qy)(y||(y=k` <ha-alert .title="${0}"></ha-alert> `),this.hass.localize("ui.panel.config.cloud.account.remote.reconnecting")):"drop_connection"===o?(0,a.qy)(w||(w=k`<ha-alert alert-type="warning" .title="${0}">${0}</ha-alert>`),this.hass.localize("ui.panel.config.cloud.account.remote.drop_connection_warning_title"),this.hass.localize("ui.panel.config.cloud.account.remote.drop_connection_warning")):a.s6,this.hass.localize("ui.panel.config.cloud.account.remote.info"),i?a.s6:(0,a.qy)(b||(b=k` <p> ${0} </p> `),this.hass.localize("ui.panel.config.cloud.account.remote.info_instance_will_be_available")),`https://${n}`,(0,g.w)(`https://${n}`),this.hass.localize("ui.panel.config.common.copy_link"),this.hass.localize("ui.panel.config.cloud.account.remote.security_options"),this.hass.localize("ui.panel.config.cloud.account.remote.external_activation"),this.hass.localize("ui.panel.config.cloud.account.remote.external_activation_secondary"),e,this._toggleAllowRemoteEnabledChanged,this.hass.localize("ui.panel.config.cloud.account.remote.certificate_info"),this.cloudStatus.remote_certificate?this.hass.localize("ui.panel.config.cloud.account.remote.certificate_expire",{date:(0,h.Yq)(new Date(this.cloudStatus.remote_certificate.expire_date),this.hass.locale,this.hass.config)}):a.s6,this._openCertInfo,this.hass.localize("ui.panel.config.cloud.account.remote.more_info")):(0,a.qy)(_||(_=k` <ha-card outlined header="${0}"> <div class="preparing"> ${0} </div> </ha-card> `),this.hass.localize("ui.panel.config.cloud.account.remote.title"),"error"===r?this.hass.localize("ui.panel.config.cloud.account.remote.cerificate_error"):"loading"===r?this.hass.localize("ui.panel.config.cloud.account.remote.cerificate_loading"):"loaded"===r?this.hass.localize("ui.panel.config.cloud.account.remote.cerificate_loaded"):this.hass.localize("ui.panel.config.cloud.account.remote.access_is_being_prepared"))}_openCertInfo(){(0,f.Q)(this,{certificateInfo:this.cloudStatus.remote_certificate})}async _toggleChanged(t){const e=t.target;try{e.checked?await(0,u.cn)(this.hass):await(0,u.ql)(this.hass),(0,s.r)(this,"ha-refresh-cloud-status")}catch(o){(0,p.P)(this,{message:o.message}),e.checked=!e.checked}}async _toggleAllowRemoteEnabledChanged(t){const e=t.target;try{await(0,u.Up)(this.hass,{remote_allow_remote_enable:e.checked}),(0,s.r)(this,"ha-refresh-cloud-status")}catch(o){(0,p.P)(this,{message:o.message}),e.checked=!e.checked}}}C.styles=(0,a.AH)($||($=k`.preparing{padding:0 16px 16px}.header-actions{position:absolute;right:16px;inset-inline-end:16px;inset-inline-start:initial;top:24px;display:flex;flex-direction:row}.header-actions .icon-link{margin-top:-16px;margin-right:8px;margin-inline-end:8px;margin-inline-start:initial;direction:var(--direction);color:var(--secondary-text-color)}.warning{font-weight:var(--ha-font-weight-bold);margin-bottom:1em}.break-word{overflow-wrap:break-word}.connection-status{position:absolute;right:24px;top:24px;inset-inline-end:24px;inset-inline-start:initial}.card-actions{display:flex}.card-actions a{text-decoration:none}ha-expansion-panel{margin-top:16px}ha-row-item{--ha-row-item-padding-inline:0}ha-row-item::part(headline),ha-row-item::part(supporting-text){white-space:wrap}ha-expansion-panel{--expansion-panel-content-padding:0 16px;--expansion-panel-summary-padding:0 16px}ha-alert{display:block;margin-bottom:16px}hr{border:none;height:1px;background-color:var(--divider-color);margin:8px 0}`)),(0,i.Cg)([(0,n.MZ)({attribute:!1})],C.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],C.prototype,"cloudStatus",void 0),C=(0,i.Cg)([(0,n.EM)("cloud-remote-pref")],C),e()}catch(_){e(_)}})},63523:function(t,e,o){o.a(t,async function(t,e){try{o(44114),o(18111),o(20116),o(61701),o(3362),o(62953);var i=o(40445),a=o(5124),n=o(67576),s=o(22786),r=o(1087),l=o(63130),c=o(18350),h=(o(76776),o(14927)),d=o(606),u=(o(67094),o(59646)),p=o(71117),g=o(88151),f=o(65063),m=o(81619),_=o(73436),v=t([c,h,d,u]);[c,h,d,u]=v.then?(await v)():v;let y,w,b,$=t=>t;const k="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z",x=(t,e)=>{const o=[];if(!e)return o;for(const[i,a,n]of e.languages)i===t&&o.push({voiceId:a,voiceName:n});return o};class C extends a.WF{render(){if(!this.cloudStatus||!this.ttsInfo)return a.s6;const t=this.getLanguages(this.ttsInfo),e=this.cloudStatus.prefs.tts_default_voice,o=this.getSupportedVoices(e[0],this.ttsInfo);return(0,a.qy)(y||(y=$` <ha-card outlined header="${0}"> <div class="card-content"> ${0} <br><br> <div class="row"> <ha-language-picker .hass="${0}" .label="${0}" .disabled="${0}" .value="${0}" .languages="${0}" @value-changed="${0}"> </ha-language-picker> <ha-select .label="${0}" .disabled="${0}" .value="${0}" @selected="${0}" .options="${0}"> </ha-select> </div> </div> <div class="card-actions"> <div class="voice-id" @click="${0}"> <div class="label"> ${0} </div> <code>${0}</code> ${0} </div> <div class="flex"></div> <ha-button appearance="plain" @click="${0}"> ${0} </ha-button> </div> </ha-card> `),this.hass.localize("ui.panel.config.cloud.account.tts.title"),this.hass.localize("ui.panel.config.cloud.account.tts.description",{service:'"tts.cloud_say"'}),this.hass,this.hass.localize("ui.panel.config.cloud.account.tts.default_language"),this.savingPreferences,e[0],t,this._handleLanguageChange,this.hass.localize("ui.panel.config.cloud.account.tts.default_voice"),this.savingPreferences,e[1],this._handleVoiceChange,o.map(t=>({value:t.voiceId,label:t.voiceName})),this._copyVoiceId,this.hass.localize("ui.components.media-browser.tts.selected_voice_id"),e[1],this.narrow?a.s6:(0,a.qy)(w||(w=$` <ha-icon-button .path="${0}" title="${0}"></ha-icon-button> `),k,this.hass.localize("ui.components.media-browser.tts.copy_voice_id")),this._openTryDialog,this.hass.localize("ui.panel.config.cloud.account.tts.try"))}willUpdate(t){super.willUpdate(t),this.hasUpdated||(0,g.$)(this.hass).then(t=>{this.ttsInfo=t}),t.has("cloudStatus")&&(this.savingPreferences=!1)}_openTryDialog(){(0,_.W)(this,{defaultVoice:this.cloudStatus.prefs.tts_default_voice})}async _handleLanguageChange(t){if(t.detail.value===this.cloudStatus.prefs.tts_default_voice[0])return;this.savingPreferences=!0;const e=t.detail.value,o=this.cloudStatus.prefs.tts_default_voice[1],i=this.getSupportedVoices(e,this.ttsInfo),a=i.find(t=>t.voiceId===o)?o:i[0].voiceId;try{await(0,p.Up)(this.hass,{tts_default_voice:[e,a]}),(0,r.r)(this,"ha-refresh-cloud-status")}catch(n){this.savingPreferences=!1,console.error(n),(0,f.showAlertDialog)(this,{text:`Unable to save default language. ${n}`,warning:!0})}}async _handleVoiceChange(t){const e=t.detail.value;if(!e||e===this.cloudStatus.prefs.tts_default_voice[1])return;this.savingPreferences=!0;const o=this.cloudStatus.prefs.tts_default_voice[0];try{await(0,p.Up)(this.hass,{tts_default_voice:[o,e]}),(0,r.r)(this,"ha-refresh-cloud-status")}catch(i){this.savingPreferences=!1,console.error(i),(0,f.showAlertDialog)(this,{text:`Unable to save default voice. ${i}`,warning:!0})}}async _copyVoiceId(t){t.preventDefault(),await(0,l.l)(this.cloudStatus.prefs.tts_default_voice[1]),(0,m.P)(this,{message:this.hass.localize("ui.common.copied_clipboard")})}constructor(...t){super(...t),this.narrow=!1,this.savingPreferences=!1,this.getLanguages=(0,s.A)(g.Q),this.getSupportedVoices=(0,s.A)(x)}}C.styles=(0,a.AH)(b||(b=$`.example{position:absolute;right:16px;inset-inline-end:16px;inset-inline-start:initial;top:16px}.row{display:flex;gap:var(--ha-space-2)}.row>*{flex:1;width:0}.card-actions{display:flex;align-items:center}code{margin-left:6px;font-weight:var(--ha-font-weight-bold)}.voice-id{display:flex;align-items:center;font-size:var(--ha-font-size-s);color:var(--secondary-text-color);--mdc-icon-size:14px;--ha-icon-button-size:24px}:host([narrow]) .voice-id{flex-direction:column;font-size:var(--ha-font-size-xs);align-items:start;align-items:left}:host([narrow]) .label{text-transform:uppercase}:host([narrow]) code{margin-left:0}.flex{flex:1}`)),(0,i.Cg)([(0,n.MZ)({attribute:!1})],C.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],C.prototype,"cloudStatus",void 0),(0,i.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],C.prototype,"narrow",void 0),(0,i.Cg)([(0,n.wk)()],C.prototype,"savingPreferences",void 0),(0,i.Cg)([(0,n.wk)()],C.prototype,"ttsInfo",void 0),C=(0,i.Cg)([(0,n.EM)("cloud-tts-pref")],C),e()}catch(y){e(y)}})},46100:function(t,e,o){o.a(t,async function(t,e){try{var i=o(86518),a=o(40770),n=(o(74423),o(18111),o(22489),o(20116),o(61701),o(3362),o(62953),o(40445)),s=o(5124),r=o(67576),l=o(36312),c=o(18350),h=(o(76776),o(65829)),d=o(59646),u=(o(83892),o(71117)),p=o(60761),g=o(14503),f=o(20705),m=t([c,h,d]);[c,h,d]=m.then?(await m)():m;let _,v,y,w,b,$,k,x,C=t=>t;class z extends s.WF{connectedCallback(){super.connectedCallback(),this._fetchData()}render(){return(0,s.qy)(_||(_=C` <ha-card outlined header="${0}"> <div class="card-content"> ${0} ${0} <div class="footer"> <a href="https://www.nabucasa.com/config/webhooks" target="_blank" rel="noreferrer"> ${0} </a> </div> </div> </ha-card> `),this.hass.localize("ui.panel.config.cloud.account.webhooks.title"),this.hass.localize("ui.panel.config.cloud.account.webhooks.info"),this.cloudStatus&&this._localHooks&&this._cloudHooks&&this.hass?0===this._localHooks.length?(0,s.qy)(y||(y=C` <div class="body-text"> ${0} <a href="/config/integrations">${0} </a> ${0} <a href="/config/automation/edit/new">${0}</a>. </div> `),this.hass.localize("ui.panel.config.cloud.account.webhooks.no_hooks_yet"),this.hass.localize("ui.panel.config.cloud.account.webhooks.no_hooks_yet_link_integration"),this.hass.localize("ui.panel.config.cloud.account.webhooks.no_hooks_yet2"),this.hass.localize("ui.panel.config.cloud.account.webhooks.no_hooks_yet_link_automation")):this._localHooks.map(t=>(0,s.qy)(w||(w=C` <ha-row-item .entry="${0}"> <span slot="headline">${0} ${0}</span> <span slot="supporting-text">${0}</span> ${0} </ha-row-item> `),t,t.name,t.domain!==t.name.toLowerCase()?` (${t.domain})`:"",t.webhook_id,this._progress.includes(t.webhook_id)?(0,s.qy)(b||(b=C` <div class="progress" slot="end"> <ha-spinner></ha-spinner> </div> `)):this._cloudHooks[t.webhook_id]?(0,s.qy)($||($=C` <ha-button slot="end" appearance="plain" size="small" @click="${0}"> ${0} </ha-button> `),this._handleManageButton,this.hass.localize("ui.panel.config.cloud.account.webhooks.manage")):(0,s.qy)(k||(k=C`<ha-switch slot="end" @click="${0}"> </ha-switch>`),this._enableWebhook))):(0,s.qy)(v||(v=C` <div class="body-text"> ${0} </div> `),this.hass.localize("ui.panel.config.cloud.account.webhooks.loading")),this.hass.localize("ui.panel.config.cloud.account.webhooks.link_learn_more"))}updated(t){super.updated(t),t.has("cloudStatus")&&this.cloudStatus&&(this._cloudHooks=this.cloudStatus.prefs.cloudhooks||{})}_showDialog(t){const e=this._localHooks.find(e=>e.webhook_id===t),o=this._cloudHooks[t];(0,f.z)(this,{webhook:e,cloudhook:o,disableHook:()=>this._disableWebhook(t)})}_handleManageButton(t){const e=t.currentTarget.parentElement.entry;this._showDialog(e.webhook_id)}async _enableWebhook(t){const e=t.currentTarget.parentElement.entry;let o;this._progress=[...this._progress,e.webhook_id];try{o=await(0,u.dq)(this.hass,e.webhook_id)}catch(i){return void alert(i.message)}finally{this._progress=this._progress.filter(t=>t!==e.webhook_id)}this._cloudHooks=Object.assign(Object.assign({},this._cloudHooks),{},{[e.webhook_id]:o}),0===this._progress.length&&this._showDialog(e.webhook_id)}async _disableWebhook(t){this._progress=[...this._progress,t];try{await(0,u.yG)(this.hass,t)}catch(s){return void alert(`${this.hass.localize("ui.panel.config.cloud.account.webhooks.disable_hook_error_msg")} ${s.message}`)}finally{this._progress=this._progress.filter(e=>e!==t)}const e=this._cloudHooks,{[t]:o}=e,n=(0,i.A)(e,[t].map(a.A));this._cloudHooks=n}async _fetchData(){if(!(0,l.x)(this.hass.config,"webhook"))return void(this._localHooks=[]);const t=await(0,p.H)(this.hass);this._localHooks=t.filter(t=>!t.local_only&&("mobile_app"!==t.domain||"Deleted Webhook"!==t.name))}static get styles(){return[g.RF,(0,s.AH)(x||(x=C`.body-text{padding:8px 0}.webhook{display:flex;padding:4px 0}.progress{margin-right:16px;margin-inline-end:16px;margin-inline-start:initial;display:flex;flex-direction:column;justify-content:center}.footer{padding-top:16px}.body-text a,.footer a{color:var(--primary-color)}ha-row-item{--ha-row-item-padding-inline:0}ha-row-item::part(headline),ha-row-item::part(supporting-text){white-space:wrap;word-break:break-all}`))]}constructor(...t){super(...t),this._progress=[]}}(0,n.Cg)([(0,r.MZ)({attribute:!1})],z.prototype,"hass",void 0),(0,n.Cg)([(0,r.MZ)({attribute:!1})],z.prototype,"cloudStatus",void 0),(0,n.Cg)([(0,r.wk)()],z.prototype,"_cloudHooks",void 0),(0,n.Cg)([(0,r.wk)()],z.prototype,"_localHooks",void 0),(0,n.Cg)([(0,r.wk)()],z.prototype,"_progress",void 0),z=(0,n.Cg)([(0,r.EM)("cloud-webhooks")],z),e()}catch(_){e(_)}})},7183:function(t,e,o){o.d(e,{Z:function(){return n}});o(3362),o(62953);var i=o(1087);const a=()=>o.e(33970).then(o.bind(o,40169)),n=t=>{(0,i.r)(t,"show-dialog",{dialogTag:"dialog-cloud-support-package",dialogImport:a,dialogParams:{}})}},73436:function(t,e,o){o.d(e,{W:function(){return n}});o(3362),o(62953);var i=o(1087);const a=()=>o.e(58011).then(o.bind(o,8694)),n=(t,e)=>{(0,i.r)(t,"show-dialog",{dialogTag:"dialog-cloud-try-tts",dialogImport:a,dialogParams:e})}},20633:function(t,e,o){o.d(e,{Q:function(){return a}});o(3362),o(62953);var i=o(1087);const a=(t,e)=>{(0,i.r)(t,"show-dialog",{dialogTag:"dialog-cloud-certificate",dialogImport:()=>o.e(26166).then(o.bind(o,34037)),dialogParams:e})}},20705:function(t,e,o){o.d(e,{z:function(){return a}});o(3362),o(62953);var i=o(1087);const a=(t,e)=>{(0,i.r)(t,"show-dialog",{dialogTag:"dialog-manage-cloudhook",dialogImport:()=>o.e(21832).then(o.bind(o,83387)),dialogParams:e})}},91436:function(t,e,o){o.a(t,async function(t,i){try{o.r(e);o(74423),o(3362),o(62953);var a=o(40445),n=o(67576),s=o(91926),r=o(324),l=o(72247),c=o(38020),h=t([l,c]);[l,c]=h.then?(await h)():h;const d=["account","google-assistant","alexa"],u=["login","register","forgot-password"];class p extends r.a{firstUpdated(t){super.firstUpdated(t),this.addEventListener("cloud-done",t=>{this._flashMessage=t.detail.flashMessage,(0,s.oo)("/config/cloud/login")})}updated(t){if(super.updated(t),t.has("cloudStatus")){const e=t.get("cloudStatus");void 0===e?this._resolveCloudStatusLoaded():e.logged_in!==this.cloudStatus.logged_in&&(0,s.oo)(this.route.prefix,{replace:!0})}}createElement(t){const e=super.createElement(t);return e.addEventListener("cloud-email-changed",t=>{this._loginEmail=t.detail.value}),e.addEventListener("flash-message-changed",t=>{this._flashMessage=t.detail.value}),e}updatePageEl(t){this.cloudStatus&&!this.cloudStatus.logged_in&&d.includes(this._currentPage)||(t.hass=this.hass,t.email=this._loginEmail,t.isWide=this.isWide,t.narrow=this.narrow,t.cloudStatus=this.cloudStatus,t.flashMessage=this._flashMessage)}constructor(...t){super(...t),this.isWide=!1,this.narrow=!1,this.routerOptions={defaultPage:"login",showLoading:!0,initialLoad:()=>this._cloudStatusLoaded,beforeRender:t=>{if(this.cloudStatus.logged_in){if(!d.includes(t))return"account"}else if(!u.includes(t))return"login"},routes:{login:{tag:"cloud-login-panel"},register:{tag:"cloud-register",load:()=>o.e(86292).then(o.bind(o,58527))},"forgot-password":{tag:"cloud-forgot-password",load:()=>o.e(11844).then(o.bind(o,92949))},account:{tag:"cloud-account"}}},this._flashMessage="",this._loginEmail="",this._cloudStatusLoaded=new Promise(t=>{this._resolveCloudStatusLoaded=t})}}(0,a.Cg)([(0,n.MZ)({attribute:!1})],p.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:"is-wide",type:Boolean})],p.prototype,"isWide",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean})],p.prototype,"narrow",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],p.prototype,"route",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],p.prototype,"cloudStatus",void 0),(0,a.Cg)([(0,n.wk)()],p.prototype,"_flashMessage",void 0),(0,a.Cg)([(0,n.wk)()],p.prototype,"_loginEmail",void 0),p=(0,a.Cg)([(0,n.EM)("ha-config-cloud")],p),i()}catch(d){i(d)}})},38020:function(t,e,o){o.a(t,async function(t,e){try{o(3362),o(62953);var i=o(40445),a=o(5124),n=o(67576),s=o(1087),r=o(91926),l=o(38962),c=(o(76776),o(29823)),h=(o(70947),o(43661),o(8630),o(28732),o(67094),o(71117)),d=o(65063),u=o(81310),p=o(14503),g=(o(20820),o(7183)),f=o(50587),m=t([l,c,u,f]);[l,c,u,f]=m.then?(await m)():m;let _,v,y,w=t=>t;const b="M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19M8.46,11.88L9.87,10.47L12,12.59L14.12,10.47L15.53,11.88L13.41,14L15.53,16.12L14.12,17.53L12,15.41L9.88,17.53L8.47,16.12L10.59,14L8.46,11.88M15.5,4L14.5,3H9.5L8.5,4H5V6H19V4H15.5Z",$="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z",k="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z";class x extends a.WF{render(){return(0,a.qy)(_||(_=w` <hass-subpage .hass="${0}" .narrow="${0}" header="ioBroker Cloud"> <ha-dropdown slot="toolbar-icon" @wa-select="${0}"> <ha-icon-button slot="trigger" .label="${0}" .path="${0}"></ha-icon-button> <ha-dropdown-item value="reset"> ${0} <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> </ha-dropdown-item> <ha-dropdown-item value="download"> ${0} <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> </ha-dropdown-item> </ha-dropdown> <div class="content"> <ha-config-section .isWide="${0}"> <span slot="header">ioBroker Cloud</span> <div slot="introduction"> <p> ${0} </p> <p> ${0} <a href="https://www.nabucasa.com" target="_blank" rel="noreferrer"> Nabu Casa, Inc</a>${0} </p> <p> ${0} </p> <p> <a href="https://www.nabucasa.com" target="_blank" rel="noreferrer"> ${0} </a> </p> </div> ${0} <cloud-login .hass="${0}" .email="${0}" .localize="${0}" @cloud-forgot-password="${0}" check-connection></cloud-login> <ha-card outlined> <ha-list> <ha-list-item @click="${0}" twoline hasMeta> ${0} <span slot="secondary"> ${0} </span> <ha-icon-next slot="meta"></ha-icon-next> </ha-list-item> </ha-list> </ha-card> </ha-config-section> </div> </hass-subpage> `),this.hass,this.narrow,this._handleMenuAction,this.hass.localize("ui.common.menu"),$,this.hass.localize("ui.panel.config.cloud.account.reset_cloud_data"),b,this.hass.localize("ui.panel.config.cloud.account.download_support_package"),k,this.isWide,this.hass.localize("ui.panel.config.cloud.login.introduction"),this.hass.localize("ui.panel.config.cloud.login.introduction2"),this.hass.localize("ui.panel.config.cloud.login.introduction2a"),this.hass.localize("ui.panel.config.cloud.login.introduction3"),this.hass.localize("ui.panel.config.cloud.login.learn_more_link"),this.flashMessage?(0,a.qy)(v||(v=w`<ha-alert dismissable @alert-dismissed-clicked="${0}"> ${0} </ha-alert>`),this._dismissFlash,this.flashMessage):"",this.hass,this.email,this.hass.localize,this._handleForgotPassword,this._handleRegister,this.hass.localize("ui.panel.config.cloud.login.start_trial"),this.hass.localize("ui.panel.config.cloud.login.trial_info"))}_handleForgotPassword(){var t;this._dismissFlash(),(0,s.r)(this,"cloud-email-changed",{value:null!==(t=this._cloudLoginElement.emailField.value)&&void 0!==t?t:""}),(0,r.oo)("/config/cloud/forgot-password")}_handleRegister(){var t;this._dismissFlash(),(0,s.r)(this,"cloud-email-changed",{value:null!==(t=this._cloudLoginElement.emailField.value)&&void 0!==t?t:""}),(0,r.oo)("/config/cloud/register")}_dismissFlash(){(0,s.r)(this,"flash-message-changed",{value:""})}_handleMenuAction(t){switch(t.detail.item.value){case"reset":this._deleteCloudData();break;case"download":this._downloadSupportPackage()}}async _deleteCloudData(){if(await(0,d.dk)(this,{title:this.hass.localize("ui.panel.config.cloud.account.reset_data_confirm_title"),text:this.hass.localize("ui.panel.config.cloud.account.reset_data_confirm_text"),confirmText:this.hass.localize("ui.panel.config.cloud.account.reset"),destructive:!0}))try{await(0,h.Sb)(this.hass)}catch(t){return void(0,d.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.cloud.account.reset_data_failed"),text:null==t?void 0:t.message})}finally{(0,s.r)(this,"ha-refresh-cloud-status")}}async _downloadSupportPackage(){(0,g.Z)(this)}static get styles(){return[p.RF,(0,a.AH)(y||(y=w`.content{padding-bottom:24px}[slot=introduction]{margin:-1em 0}[slot=introduction] a{color:var(--primary-color)}ha-card{overflow:hidden}ha-card .card-header{margin-bottom:-8px}h1{margin:0}`))]}constructor(...t){super(...t),this.isWide=!1,this.narrow=!1}}(0,i.Cg)([(0,n.MZ)({attribute:!1})],x.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({attribute:"is-wide",type:Boolean})],x.prototype,"isWide",void 0),(0,i.Cg)([(0,n.MZ)({type:Boolean})],x.prototype,"narrow",void 0),(0,i.Cg)([(0,n.MZ)()],x.prototype,"email",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],x.prototype,"flashMessage",void 0),(0,i.Cg)([(0,n.P)("cloud-login")],x.prototype,"_cloudLoginElement",void 0),x=(0,i.Cg)([(0,n.EM)("cloud-login-panel")],x),e()}catch(_){e(_)}})},20820:function(t,e,o){o(62953);var i=o(40445),a=o(5124),n=o(67576),s=o(6412);let r,l,c=t=>t;class h extends a.WF{render(){return(0,a.qy)(r||(r=c` <div class="content ${0}"> <div class="header"><slot name="header"></slot></div> <div class="together layout ${0}"> <div class="intro"><slot name="introduction"></slot></div> <div class="panel flex-auto"><slot></slot></div> </div> </div> `),(0,s.H)({narrow:!this.isWide,"full-width":this.fullWidth}),(0,s.H)({narrow:!this.isWide,vertical:this.vertical||!this.isWide,horizontal:!this.vertical&&this.isWide}))}constructor(...t){super(...t),this.isWide=!1,this.vertical=!1,this.fullWidth=!1}}h.styles=(0,a.AH)(l||(l=c`:host{display:block}.content{padding:28px 20px 0;max-width:1040px;margin:0 auto}.layout{display:flex}.horizontal{flex-direction:row}.vertical{flex-direction:column}.flex-auto{flex:1 1 auto}.header{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-2xl);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-condensed);opacity:var(--dark-primary-opacity)}.together{margin-top:var(--config-section-content-together-margin-top,32px)}.intro{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-normal);width:100%;opacity:var(--dark-primary-opacity);font-size:var(--ha-font-size-m);padding-bottom:20px}.horizontal .intro{max-width:400px;margin-right:40px;margin-inline-end:40px;margin-inline-start:initial}.panel{margin-top:-24px}.panel ::slotted(*){margin-top:24px;display:block}.narrow.content{max-width:640px}.narrow .together{margin-top:var(--config-section-narrow-content-together-margin-top,var(--config-section-content-together-margin-top,20px))}.narrow .intro{padding-bottom:20px;margin-right:0;margin-inline-end:0;margin-inline-start:initial;max-width:500px}.full-width{padding:0}.full-width .layout{flex-direction:column}`)),(0,i.Cg)([(0,n.MZ)({attribute:"is-wide",type:Boolean})],h.prototype,"isWide",void 0),(0,i.Cg)([(0,n.MZ)({type:Boolean})],h.prototype,"vertical",void 0),(0,i.Cg)([(0,n.MZ)({type:Boolean,attribute:"full-width"})],h.prototype,"fullWidth",void 0),h=(0,i.Cg)([(0,n.EM)("ha-config-section")],h)},13611:function(t,e,o){var i=o(46518),a=o(44576),n=o(62106),s=o(43724),r=TypeError,l=Object.defineProperty,c=a.self!==a;try{if(s){var h=Object.getOwnPropertyDescriptor(a,"self");!c&&h&&h.get&&h.enumerable||n(a,"self",{get:function(){return a},set:function(t){if(this!==a)throw new r("Illegal invocation");l(a,"self",{value:t,writable:!0,configurable:!0,enumerable:!0})},configurable:!0,enumerable:!0})}else i({global:!0,simple:!0,forced:c},{self:a})}catch(d){}},40770:function(t,e,o){o.d(e,{A:function(){return a}});var i=o(47075);o(16280);function a(t){var e=function(t,e){if("object"!=(0,i.A)(t)||!t)return t;var o=t[Symbol.toPrimitive];if(void 0!==o){var a=o.call(t,e||"default");if("object"!=(0,i.A)(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==(0,i.A)(e)?e:e+""}},31886:function(t,e,o){o.a(t,async function(t,i){try{o.d(e,{BB:function(){return a.B}});o(38744);var a=o(88775),n=o(49232),s=o(78713),r=o(53834),l=o(35204),c=o(5806),h=t([a,n,s,r,l,c]);[a,n,s,r,l,c]=h.then?(await h)():h,i()}catch(d){i(d)}})},31247:function(t,e,o){o.d(e,{v:function(){return i}});o(18111),o(22489),o(61701),o(42762);function i(t){return t.split(" ").map(t=>t.trim()).filter(t=>""!==t)}},9160:function(t,e,o){o.d(e,{_P:function(){return s},my:function(){return i},s0:function(){return n},w4:function(){return a}});Math.pow(10,8);const i=6048e5,a=864e5,n=36e5,s=Symbol.for("constructDateFrom")},73420:function(t,e,o){o.d(e,{w:function(){return a}});var i=o(9160);function a(t,e){return"function"==typeof t?t(e):t&&"object"==typeof t&&i._P in t?t[i._P](e):t instanceof Date?new t.constructor(e):new Date(e)}},83504:function(t,e,o){o.d(e,{a:function(){return a}});var i=o(73420);function a(t,e){return(0,i.w)(e||t,t)}}}]);