UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

1 lines 28.3 kB
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[39236],{22130:function(a,t,e){e.r(t),e.d(t,{fetchAddonInfo:function(){return k},fetchHassioAddonChangelog:function(){return l},fetchHassioAddonDocumentation:function(){return c},fetchHassioAddonInfo:function(){return d},fetchHassioAddonLogs:function(){return r},fetchHassioAddonsInfo:function(){return o},installHassioAddon:function(){return m},rebuildLocalAddon:function(){return $},reloadHassioAddons:function(){return n},restartHassioAddon:function(){return y},setHassioAddonOption:function(){return h},setHassioAddonSecurity:function(){return b},startHassioAddon:function(){return u},stopHassioAddon:function(){return g},uninstallHassioAddon:function(){return f},updateHassioAddon:function(){return v},validateHassioAddonOption:function(){return p}});e(16280),e(18111),e(20116),e(3362);var s=e(35541),i=e(47351);const n=async a=>{await a.callWS({type:"supervisor/api",endpoint:"/addons/reload",method:"post"})},o=async a=>a.callWS({type:"supervisor/api",endpoint:"/addons",method:"get"}),d=async(a,t)=>a({type:"supervisor/api",endpoint:`/addons/${t}/info`,method:"get"}),l=async(a,t)=>a.callApi("GET",`hassio/addons/${t}/changelog`),r=async(a,t)=>a.callApi("GET",`hassio/addons/${t}/logs`),c=async(a,t)=>a.callApi("GET",`hassio/addons/${t}/documentation`),h=async(a,t,e)=>{const s=await a({type:"supervisor/api",endpoint:`/addons/${t}/options`,method:"post",data:e});if("error"===s.result)throw Error((0,i.VR)(s));return s},p=async(a,t,e)=>a({type:"supervisor/api",endpoint:`/addons/${t}/options/validate`,method:"post",data:e}),u=async(a,t)=>a({type:"supervisor/api",endpoint:`/addons/${t}/start`,method:"post",timeout:null}),g=async(a,t)=>a({type:"supervisor/api",endpoint:`/addons/${t}/stop`,method:"post",timeout:null}),b=async(a,t,e)=>{await a({type:"supervisor/api",endpoint:`/addons/${t}/security`,method:"post",data:e})},m=async(a,t)=>{await a({type:"supervisor/api",endpoint:`/addons/${t}/install`,method:"post",timeout:null})},v=async(a,t,e)=>{await a.callWS({type:"hassio/update/addon",addon:t,backup:e})},y=async(a,t)=>{await a({type:"supervisor/api",endpoint:`/addons/${t}/restart`,method:"post",timeout:null})},f=async(a,t,e)=>{await a({type:"supervisor/api",endpoint:`/addons/${t}/uninstall`,method:"post",timeout:null,data:{remove_config:e}})},k=(a,t,e)=>{var i;return(0,s.X)(a,null!==(i=t.addon)&&void 0!==i&&i.addons.find(a=>a.slug===e)?`/addons/${e}/info`:`/store/addons/${e}`)},$=async(a,t)=>a({type:"supervisor/api",endpoint:`/addons/${t}/rebuild`,method:"post",timeout:null})},35541:function(a,t,e){e.d(t,{X:function(){return n}});e(3362);var s=e(62384),i=e(47351);const n=async(a,t,e)=>{var n;return(0,s.v)(a.config.version,2021,2,4)?a.callWS({type:"supervisor/api",endpoint:t,method:(null==e?void 0:e.method)||"get",timeout:null!==(n=null==e?void 0:e.timeout)&&void 0!==n?n:null,data:null==e?void 0:e.data}):(0,i.PS)(await a.callApi((e.method||"get").toUpperCase(),`hassio${t}`,null==e?void 0:e.data))}},76127:function(a,t,e){e(74423),e(44114),e(26910),e(18111),e(22489),e(20116),e(61701),e(62953);var s=e(40445),i=e(5124),n=e(67576),o=e(22786),d=e(1087),l=e(52220);e(9503),e(27826);let r,c,h,p=a=>a;class u extends i.WF{render(){return(0,i.qy)(r||(r=p` <div class="items"> ${0} </div> `),this._addons(this.addons).map(a=>{var t,e;return(0,i.qy)(c||(c=p` <ha-checkbox .id="${0}" .checked="${0}" @change="${0}" .disabled="${0}"> <ha-backup-formfield-label .label="${0}" .version="${0}" .iconPath="${0}" .imageUrl="${0}"> </ha-backup-formfield-label> </ha-checkbox> `),a.slug,(null===(t=this.value)||void 0===t?void 0:t.includes(a.slug))||!1,this._checkboxChanged,this.disabled,a.name,this.hideVersion?void 0:a.version,a.iconPath||"M20.5,11H19V7C19,5.89 18.1,5 17,5H13V3.5A2.5,2.5 0 0,0 10.5,1A2.5,2.5 0 0,0 8,3.5V5H4A2,2 0 0,0 2,7V10.8H3.5C5,10.8 6.2,12 6.2,13.5C6.2,15 5,16.2 3.5,16.2H2V20A2,2 0 0,0 4,22H7.8V20.5C7.8,19 9,17.8 10.5,17.8C12,17.8 13.2,19 13.2,20.5V22H17A2,2 0 0,0 19,20V16H20.5A2.5,2.5 0 0,0 23,13.5A2.5,2.5 0 0,0 20.5,11Z",null!==(e=this.addons)&&void 0!==e&&null!==(e=e.find(t=>t.slug===a.slug))&&void 0!==e&&e.icon?`/api/hassio/addons/${a.slug}/icon`:void 0)}))}_checkboxChanged(a){var t;a.stopPropagation();let e=null!==(t=this.value)&&void 0!==t?t:[];const s=a.currentTarget;s.checked?e.push(s.id):e=e.filter(a=>a!==s.id),(0,d.r)(this,"value-changed",{value:e})}constructor(...a){super(...a),this.hideVersion=!1,this.disabled=!1,this._addons=(0,o.A)(a=>a.sort((a,t)=>{var e;return(0,l.xL)(a.name,t.name,null===(e=this.hass)||void 0===e||null===(e=e.locale)||void 0===e?void 0:e.language)}))}}u.styles=(0,i.AH)(h||(h=p`.items{display:flex;flex-direction:column;gap:var(--ha-space-2);padding-inline-start:var(--ha-space-2);padding-bottom:var(--ha-space-3)}`)),(0,s.Cg)([(0,n.MZ)({attribute:!1})],u.prototype,"hass",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],u.prototype,"addons",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],u.prototype,"value",void 0),(0,s.Cg)([(0,n.MZ)({attribute:"hide-version",type:Boolean})],u.prototype,"hideVersion",void 0),(0,s.Cg)([(0,n.MZ)({type:Boolean})],u.prototype,"disabled",void 0),u=(0,s.Cg)([(0,n.EM)("ha-backup-addons-picker")],u)},70074:function(a,t,e){e(74423),e(44114),e(72712),e(18111),e(22489),e(61701),e(18237),e(3362),e(62953);var s=e(40445),i=e(5124),n=e(67576),o=e(22786),d=e(36312),l=e(1087),r=e(52943),c=(e(9503),e(22130)),h=e(53580);e(76127),e(27826);let p,u,g,b,m,v=a=>a;const y="M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z",f={config:"M12,15.5A3.5,3.5 0 0,1 8.5,12A3.5,3.5 0 0,1 12,8.5A3.5,3.5 0 0,1 15.5,12A3.5,3.5 0 0,1 12,15.5M19.43,12.97C19.47,12.65 19.5,12.33 19.5,12C19.5,11.67 19.47,11.34 19.43,11L21.54,9.37C21.73,9.22 21.78,8.95 21.66,8.73L19.66,5.27C19.54,5.05 19.27,4.96 19.05,5.05L16.56,6.05C16.04,5.66 15.5,5.32 14.87,5.07L14.5,2.42C14.46,2.18 14.25,2 14,2H10C9.75,2 9.54,2.18 9.5,2.42L9.13,5.07C8.5,5.32 7.96,5.66 7.44,6.05L4.95,5.05C4.73,4.96 4.46,5.05 4.34,5.27L2.34,8.73C2.21,8.95 2.27,9.22 2.46,9.37L4.57,11C4.53,11.34 4.5,11.67 4.5,12C4.5,12.33 4.53,12.65 4.57,12.97L2.46,14.63C2.27,14.78 2.21,15.05 2.34,15.27L4.34,18.73C4.46,18.95 4.73,19.03 4.95,18.95L7.44,17.94C7.96,18.34 8.5,18.68 9.13,18.93L9.5,21.58C9.54,21.82 9.75,22 10,22H14C14.25,22 14.46,21.82 14.5,21.58L14.87,18.93C15.5,18.67 16.04,18.34 16.56,17.94L19.05,18.95C19.27,19.03 19.54,18.95 19.66,18.73L21.66,15.27C21.78,15.05 21.73,14.78 21.54,14.63L19.43,12.97Z",database:"M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M9 17H7V10H9V17M13 17H11V7H13V17M17 17H15V13H17V17Z",media:"M4,6H2V20A2,2 0 0,0 4,22H18V20H4V6M20,2H8A2,2 0 0,0 6,4V16A2,2 0 0,0 8,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2M12,14.5V5.5L18,10L12,14.5Z",share:y,ssl:"M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1Z"};class k extends i.WF{firstUpdated(a){super.firstUpdated(a),this.hass&&(0,d.x)(this.hass.config,"hassio")&&this._fetchAddonInfo()}async _fetchAddonInfo(){const{addons:a}=await(0,c.fetchHassioAddonsInfo)(this.hass);this._addonIcons=a.reduce((a,t)=>Object.assign(Object.assign({},a),{},{[t.slug]:t.icon}),{})}_localizeFolder(a){const t=this.localize||this.hass.localize;switch(a){case"media":return t(`ui.panel.${this.translationKeyPanel}.data_picker.media`);case"share":return t(`ui.panel.${this.translationKeyPanel}.data_picker.share_folder`);case"ssl":return t(`ui.panel.${this.translationKeyPanel}.data_picker.ssl`);case"addons/local":return t(`ui.panel.${this.translationKeyPanel}.data_picker.local_apps`)}return(0,r.Z)(a)}_homeassistantChanged(a){const t=this._parseValue(this.value),e=a.currentTarget;e.checked?t.homeassistant.push(e.id):t.homeassistant=t.homeassistant.filter(a=>a!==e.id);const s=this._formatValue(t,this.data);(0,l.r)(this,"value-changed",{value:s})}_addonsChanged(a){a.stopPropagation();const t=this._parseValue(this.value),e=a.detail.value;t.addons=e;const s=this._formatValue(t,this.data);(0,l.r)(this,"value-changed",{value:s})}_sectionChanged(a){const t=this._parseValue(this.value),e=this._parseValue(this.data),s=a.currentTarget,i=s.id;s.checked?t[i]=e[i]:t[i]=[];const n=this._formatValue(t,this.data);(0,l.r)(this,"value-changed",{value:n})}render(){const a=this.localize||this.hass.localize,t=this._homeAssistantItems(this.data,a),e=this._addonsItems(this.data,a,this._addonIcons),s=this._parseValue(this.value);return(0,i.qy)(p||(p=v` ${0} ${0} `),t.length?(0,i.qy)(u||(u=v` <div class="section"> <ha-checkbox .id="${0}" .checked="${0}" .indeterminate="${0}" @change="${0}" ?disabled="${0}"> <ha-backup-formfield-label label="ioBroker" .iconPath="${0}"> </ha-backup-formfield-label> </ha-checkbox> <div class="items"> ${0} </div> </div> `),"homeassistant",s.homeassistant.length===t.length,s.homeassistant.length>0&&s.homeassistant.length<t.length,this._sectionChanged,this.requiredItems.length>0,h.mdiHomeAssistant,t.map(a=>(0,i.qy)(g||(g=v` <ha-checkbox .id="${0}" .checked="${0}" @change="${0}" .disabled="${0}"> <ha-backup-formfield-label .label="${0}" .version="${0}" .iconPath="${0}"> </ha-backup-formfield-label> </ha-checkbox> `),a.id,s.homeassistant.includes(a.id),this._homeassistantChanged,this.requiredItems.includes(a.id),a.label,a.version,f[a.id]||y))):i.s6,e.length?(0,i.qy)(b||(b=v` <div class="section"> <ha-checkbox .id="${0}" .checked="${0}" .indeterminate="${0}" @change="${0}" .disabled="${0}"> <ha-backup-formfield-label .label="${0}" .iconPath="${0}"> </ha-backup-formfield-label> </ha-checkbox> <ha-backup-addons-picker .hass="${0}" .value="${0}" @value-changed="${0}" .addons="${0}" .disabled="${0}"> </ha-backup-addons-picker> </div> `),"addons",s.addons.length===e.length,s.addons.length>0&&s.addons.length<e.length,this._sectionChanged,this.addonsDisabled,a(`ui.panel.${this.translationKeyPanel}.data_picker.apps`),"M20.5,11H19V7C19,5.89 18.1,5 17,5H13V3.5A2.5,2.5 0 0,0 10.5,1A2.5,2.5 0 0,0 8,3.5V5H4A2,2 0 0,0 2,7V10.8H3.5C5,10.8 6.2,12 6.2,13.5C6.2,15 5,16.2 3.5,16.2H2V20A2,2 0 0,0 4,22H7.8V20.5C7.8,19 9,17.8 10.5,17.8C12,17.8 13.2,19 13.2,20.5V22H17A2,2 0 0,0 19,20V16H20.5A2.5,2.5 0 0,0 23,13.5A2.5,2.5 0 0,0 20.5,11Z",this.hass,s.addons,this._addonsChanged,e,this.addonsDisabled):i.s6)}constructor(...a){super(...a),this.requiredItems=[],this.translationKeyPanel="config.backup",this.addonsDisabled=!1,this._addonIcons={},this._homeAssistantItems=(0,o.A)((a,t)=>{const e=[];return a.homeassistant_included&&e.push({label:t(`ui.panel.${this.translationKeyPanel}.data_picker.${a.database_included?"settings_and_history":"settings"}`),id:"config",version:a.homeassistant_version}),e.push(...a.folders.map(a=>({label:this._localizeFolder(a),id:a}))),e}),this._addonsItems=(0,o.A)((a,t,e)=>a.addons.map(a=>({name:a.name,slug:a.slug,version:a.version,icon:e[a.slug]}))),this._parseValue=(0,o.A)(a=>{if(!a)return{homeassistant:[],addons:[]};const t=[],e=[];a.homeassistant_included&&t.push("config");const s=a.folders;t.push(...s);const i=a.addons.map(a=>a.slug);return e.push(...i),{homeassistant:t,addons:e}}),this._formatValue=(0,o.A)((a,t)=>({homeassistant_version:t.homeassistant_version,homeassistant_included:a.homeassistant.includes("config"),database_included:t.database_included&&a.homeassistant.includes("config"),addons:t.addons.filter(t=>a.addons.includes(t.slug)),folders:t.folders.filter(t=>a.homeassistant.includes(t))}))}}k.styles=(0,i.AH)(m||(m=v`.section{margin-left:-16px;margin-inline-start:-16px;margin-inline-end:initial}.items{padding-inline-start:52px;padding-inline-end:initial;display:flex;flex-direction:column;gap:var(--ha-space-2);margin-bottom:var(--ha-space-3)}ha-backup-addons-picker{display:block;padding-inline-start:42px;padding-inline-end:initial}ha-checkbox{justify-content:center}.section>ha-checkbox{min-height:40px;padding-inline-start:var(--ha-space-5)}`)),(0,s.Cg)([(0,n.MZ)({attribute:!1})],k.prototype,"hass",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],k.prototype,"data",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],k.prototype,"value",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],k.prototype,"localize",void 0),(0,s.Cg)([(0,n.MZ)({type:Array,attribute:"required-items"})],k.prototype,"requiredItems",void 0),(0,s.Cg)([(0,n.MZ)({attribute:"translation-key-panel"})],k.prototype,"translationKeyPanel",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],k.prototype,"addonsDisabled",void 0),(0,s.Cg)([(0,n.wk)()],k.prototype,"_addonIcons",void 0),k=(0,s.Cg)([(0,n.EM)("ha-backup-data-picker")],k)},58826:function(a,t,e){e.a(a,async function(a,t){try{e(62953);var s=e(40445),i=e(22786),n=e(5124),o=e(67576),d=(e(76776),e(18350)),l=(e(70074),e(1087)),r=a([d]);d=(r.then?(await r)():r)[0];let c,h,p=a=>a;class u extends n.WF{willUpdate(){!this.hasUpdated&&this.haRequired&&(this._selectedData={homeassistant_included:!0,folders:[],addons:[],homeassistant_version:this.backup.homeassistant_version,database_included:this.backup.database_included})}render(){return(0,n.qy)(c||(c=p` <ha-card> <div class="card-header"> ${0} </div> <div class="card-content"> <ha-backup-data-picker .translationKeyPanel="${0}" .localize="${0}" .hass="${0}" .data="${0}" .value="${0}" @value-changed="${0}" .requiredItems="${0}"> </ha-backup-data-picker> </div> <div class="card-actions"> <ha-button @click="${0}" .disabled="${0}" variant="danger" appearance="plain"> ${0} </ha-button> </div> </ha-card> `),this.localize(`ui.panel.${this.translationKeyPanel}.details.restore.title`),this.translationKeyPanel,this.localize,this.hass,this.backup,this._selectedData,this._selectedBackupChanged,this._isHomeAssistantRequired(this.haRequired),this._restore,this._isRestoreDisabled,this.localize(`ui.panel.${this.translationKeyPanel}.details.restore.action`))}_restore(){(0,l.r)(this,"backup-restore",{selectedData:this._selectedData})}_selectedBackupChanged(a){a.stopPropagation(),this._selectedData=a.detail.value}get _isRestoreDisabled(){var a,t;return!this._selectedData||this.haRequired&&!this._selectedData.homeassistant_included||!(null!==(a=this._selectedData)&&void 0!==a&&a.database_included||null!==(t=this._selectedData)&&void 0!==t&&t.homeassistant_included||this._selectedData.addons.length||this._selectedData.folders.length)}constructor(...a){super(...a),this.haRequired=!1,this.translationKeyPanel="config.backup",this._isHomeAssistantRequired=(0,i.A)(a=>a?["config"]:[])}}u.styles=(0,n.AH)(h||(h=p`:host{max-width:690px;width:100%;margin:0 auto;gap:var(--ha-space-6);display:grid}.card-content{padding:0 20px}.card-actions{display:flex;justify-content:flex-end}`)),(0,s.Cg)([(0,o.MZ)({attribute:!1})],u.prototype,"hass",void 0),(0,s.Cg)([(0,o.MZ)({attribute:!1})],u.prototype,"localize",void 0),(0,s.Cg)([(0,o.MZ)({type:Object})],u.prototype,"backup",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean,attribute:"ha-required"})],u.prototype,"haRequired",void 0),(0,s.Cg)([(0,o.MZ)({attribute:"translation-key-panel"})],u.prototype,"translationKeyPanel",void 0),(0,s.Cg)([(0,o.wk)()],u.prototype,"_selectedData",void 0),u=(0,s.Cg)([(0,o.EM)("ha-backup-details-restore")],u),t()}catch(c){t(c)}})},69268:function(a,t,e){e.a(a,async function(a,t){try{e(44114),e(18111),e(61701),e(62953);var s=e(40445),i=e(5124),n=e(67576),o=e(95747),d=e(52943),l=e(38962),r=(e(76776),e(28170),e(50723),e(31420)),c=e(46187),h=a([l,o,r]);[l,o,r]=h.then?(await h)():h;let p,u,g,b,m,v=a=>a;class y extends i.WF{render(){var a,t;const e=new Date(this.backup.date),s=(0,o.r6)(e,this.hass.locale,this.hass.config),n=[];return null!==(a=this.backup.failed_addons)&&void 0!==a&&a.length&&n.push({title:this.hass.localize("ui.panel.config.backup.details.summary.error.failed_apps"),items:this.backup.failed_addons.map(a=>`${a.name||a.slug} (${a.version})`)}),null!==(t=this.backup.failed_folders)&&void 0!==t&&t.length&&n.push({title:this.hass.localize("ui.panel.config.backup.details.summary.error.failed_folders"),items:this.backup.failed_folders.map(a=>this._localizeFolder(a))}),(0,i.qy)(p||(p=v` <ha-card> <div class="card-header"> ${0} </div> <div class="card-content"> ${0} <ha-list-base class="summary"> <ha-list-item-base> <span slot="headline"> ${0} </span> <span slot="supporting-text"> ${0} </span> </ha-list-item-base> <ha-list-item-base> <span slot="headline"> ${0} </span> <span slot="supporting-text"> ${0} </span> </ha-list-item-base> <ha-list-item-base> <span slot="headline"> ${0} </span> <span slot="supporting-text">${0}</span> </ha-list-item-base> </ha-list-base> </div> </ha-card> `),this.hass.localize("ui.panel.config.backup.details.summary.title"),n.length?this._renderErrorSummary(n):i.s6,this.hass.localize("ui.panel.config.backup.backup_type"),this.hass.localize(`ui.panel.config.backup.type.${(0,r.sp)(this.backup,this.isHassio)}`),this.hass.localize("ui.panel.config.backup.details.summary.size"),(0,c.A)((0,r.v3)(this.backup)),this.hass.localize("ui.panel.config.backup.details.summary.created"),s)}_renderErrorSummary(a){return(0,i.qy)(u||(u=v` <ha-alert alert-type="error" .title="${0}"> ${0} </ha-alert> `),this.hass.localize("ui.panel.config.backup.details.summary.error.title"),a.map(({title:a,items:t})=>(0,i.qy)(g||(g=v` <br> <b>${0}:</b> <ul> ${0} </ul> `),a,t.map(a=>(0,i.qy)(b||(b=v`<li>${0}</li>`),a)))))}_localizeFolder(a){switch(a){case"media":return this.hass.localize("ui.panel.config.backup.data_picker.media");case"share":return this.hass.localize("ui.panel.config.backup.data_picker.share_folder");case"ssl":return this.hass.localize("ui.panel.config.backup.data_picker.ssl");case"addons/local":return this.hass.localize("ui.panel.config.backup.data_picker.local_apps")}return(0,d.Z)(a)}constructor(...a){super(...a),this.isHassio=!1}}y.styles=(0,i.AH)(m||(m=v`:host{max-width:690px;width:100%;margin:0 auto;gap:var(--ha-space-6);display:grid}.card-content{padding:0 20px}.card-actions{display:flex;justify-content:flex-end}ha-list-base{--ha-row-item-padding-inline:0;padding-bottom:var(--ha-space-3)}ha-list-base.summary ha-list-item-base::part(headline){font-size:var(--ha-font-size-s);color:var(--ha-color-text-secondary)}ha-list-item-base [slot=supporting-text]{font-size:var(--ha-font-size-m);color:var(--ha-color-text-primary);display:flex;align-items:center;flex-direction:row;gap:var(--ha-space-2);line-height:var(--ha-line-height-condensed)}`)),(0,s.Cg)([(0,n.MZ)({attribute:!1})],y.prototype,"hass",void 0),(0,s.Cg)([(0,n.MZ)({type:Object})],y.prototype,"backup",void 0),(0,s.Cg)([(0,n.MZ)({type:Boolean,attribute:"hassio"})],y.prototype,"isHassio",void 0),y=(0,s.Cg)([(0,n.EM)("ha-backup-details-summary")],y),t()}catch(p){t(p)}})},27826:function(a,t,e){var s=e(40445),i=e(5124),n=e(67576);e(67094);let o,d,l,r,c,h=a=>a;class p extends i.WF{render(){return(0,i.qy)(o||(o=h` ${0} <span class="label"> ${0} ${0} </span> `),this.imageUrl?(0,i.qy)(d||(d=h`<img loading="lazy" alt="" src="${0}" class="icon">`),this.imageUrl):this.iconPath?(0,i.qy)(l||(l=h` <ha-svg-icon .path="${0}" class="icon"></ha-svg-icon> `),this.iconPath):i.s6,this.label,this.version?(0,i.qy)(r||(r=h`<span class="version">(${0})</span>`),this.version):i.s6)}}p.styles=(0,i.AH)(c||(c=h`:host{display:flex;flex-direction:row;gap:var(--ha-space-1);align-items:center}.label{margin-right:4px;margin-inline-end:4px;margin-inline-start:initial;font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-normal);letter-spacing:.5px}.version{color:var(--secondary-text-color)}.icon{--mdi-icon-size:24px;width:24px;height:24px}`)),(0,s.Cg)([(0,n.MZ)({type:String})],p.prototype,"label",void 0),(0,s.Cg)([(0,n.MZ)({type:String,attribute:"image-url"})],p.prototype,"imageUrl",void 0),(0,s.Cg)([(0,n.MZ)({type:String,attribute:"icon-path"})],p.prototype,"iconPath",void 0),(0,s.Cg)([(0,n.MZ)({type:String})],p.prototype,"version",void 0),p=(0,s.Cg)([(0,n.EM)("ha-backup-formfield-label")],p)},54627:function(a,t,e){e.d(t,{Y:function(){return n}});e(3362),e(62953);var s=e(1087);const i=()=>e.e(72556).then(e.bind(e,12615)),n=(a,t)=>{(0,s.r)(a,"show-dialog",{dialogTag:"ha-dialog-restore-backup",dialogImport:i,dialogParams:t})}},96303:function(a,t,e){e.a(a,async function(a,s){try{e.r(t);e(74423),e(26910),e(18111),e(22489),e(61701),e(3362),e(62953);var i=e(40445),n=e(5124),o=e(67576),d=e(36312),l=e(1087),r=e(71727),c=e(91926),h=(e(3109),e(38962)),p=e(18350),u=(e(76776),e(29823)),g=(e(70947),e(26300)),b=e(65829),m=(e(28170),e(50723),e(31420)),v=e(65063),y=e(81310),f=e(44144),k=e(58826),$=e(69268),_=e(54627),A=e(63993),C=a([h,p,u,g,b,y,k,$,A,m]);[h,p,u,g,b,y,k,$,A,m]=C.then?(await C)():C;let H,x,M,V,w,z,Z,q,L,P,I,D,B,K,j=a=>a;const U="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z",E="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",S="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z",R="M6,2H18A2,2 0 0,1 20,4V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V4A2,2 0 0,1 6,2M12,4A6,6 0 0,0 6,10C6,13.31 8.69,16 12.1,16L11.22,13.77C10.95,13.29 11.11,12.68 11.59,12.4L12.45,11.9C12.93,11.63 13.54,11.79 13.82,12.27L15.74,14.69C17.12,13.59 18,11.9 18,10A6,6 0 0,0 12,4M12,9A1,1 0 0,1 13,10A1,1 0 0,1 12,11A1,1 0 0,1 11,10A1,1 0 0,1 12,9M7,18A1,1 0 0,0 6,19A1,1 0 0,0 7,20A1,1 0 0,0 8,19A1,1 0 0,0 7,18M12.09,13.27L14.58,19.58L17.17,18.08L12.95,12.77L12.09,13.27Z",F="M4,5C2.89,5 2,5.89 2,7V17C2,18.11 2.89,19 4,19H20C21.11,19 22,18.11 22,17V7C22,5.89 21.11,5 20,5H4M4.5,7A1,1 0 0,1 5.5,8A1,1 0 0,1 4.5,9A1,1 0 0,1 3.5,8A1,1 0 0,1 4.5,7M7,7H20V17H7V7M8,8V16H11V8H8M12,8V16H15V8H12M16,8V16H19V8H16M9,9H10V10H9V9M13,9H14V10H13V9M17,9H18V10H17V9Z",O=a=>{var t;const e=Object.keys(a.agents),s=null!==(t=a.failed_agent_ids)&&void 0!==t?t:[];return[...e.filter(a=>!s.includes(a)),...s].map(t=>{var e;const i=null!==(e=a.agents[t])&&void 0!==e?e:{protected:!1,size:0};return Object.assign(Object.assign({},i),{},{id:t,success:!s.includes(t)})}).sort((a,t)=>(0,m.yj)(a.id,t.id))};class W extends n.WF{firstUpdated(a){super.firstUpdated(a),this.backupId?this._fetchBackup():this._error="Backup id not defined"}render(){var a;if(!this.hass)return n.s6;const t=(0,d.x)(this.hass.config,"hassio");return(0,n.qy)(H||(H=j` <hass-subpage back-path="/config/backup/backups" .hass="${0}" .narrow="${0}" .header="${0}"> <ha-dropdown slot="toolbar-icon" @wa-select="${0}"> <ha-icon-button slot="trigger" .label="${0}" .path="${0}"></ha-icon-button> <ha-dropdown-item value="download"> <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> ${0} </ha-dropdown-item> <ha-dropdown-item value="delete" variant="danger"> <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> ${0} </ha-dropdown-item> </ha-dropdown> <div class="content"> ${0} ${0} </div> </hass-subpage> `),this.hass,this.narrow,(null===(a=this._backup)||void 0===a?void 0:a.name)||this.hass.localize("ui.panel.config.backup.details.header"),this._handleAction,this.hass.localize("ui.common.menu"),E,S,this.hass.localize("ui.common.download"),U,this.hass.localize("ui.common.delete"),this._error&&(0,n.qy)(x||(x=j`<ha-alert alert-type="error">${0}</ha-alert>`),this._error),null===this._backup?(0,n.qy)(M||(M=j` <ha-alert alert-type="warning" .title="${0}"> ${0} </ha-alert> `),this.hass.localize("ui.panel.config.backup.details.not_found"),this.hass.localize("ui.panel.config.backup.details.not_found_description",{backupId:this.backupId})):this._backup?(0,n.qy)(w||(w=j` <ha-backup-details-summary .backup="${0}" .hass="${0}" .localize="${0}" .isHassio="${0}"></ha-backup-details-summary> <ha-backup-details-restore .backup="${0}" @backup-restore="${0}" .hass="${0}" .localize="${0}"></ha-backup-details-restore> <ha-card> <div class="card-header"> ${0} </div> <div class="card-content"> <ha-list-base> ${0} </ha-list-base> </div> </ha-card> `),this._backup,this.hass,this.hass.localize,t,this._backup,this._restore,this.hass,this.hass.localize,this.hass.localize("ui.panel.config.backup.details.locations.title"),this._agents.map(a=>{var t;const e=a.id,s=(0,r.m)(e),i=(0,m.q7)(this.hass.localize,e,this.agents),o=a.success,d=!a.success,l=!a.protected;return(0,n.qy)(z||(z=j` <ha-list-item-base> ${0} <div slot="headline">${0}</div> <div slot="supporting-text"> ${0} </div> ${0} </ha-list-item-base> `),(0,m.Bi)(e)?(0,n.qy)(Z||(Z=j` <ha-svg-icon .path="${0}" slot="start"> </ha-svg-icon> `),R):(0,m.jU)(e)?(0,n.qy)(q||(q=j` <ha-svg-icon .path="${0}" slot="start"></ha-svg-icon> `),F):(0,n.qy)(L||(L=j` <img .src="${0}" crossorigin="anonymous" referrerpolicy="no-referrer" alt="${0}" slot="start"> `),(0,f.MR)({domain:s,type:"icon",darkOptimized:null===(t=this.hass.themes)||void 0===t?void 0:t.darkMode},this.hass.auth.data.hassUrl),`${s} logo`),i,d?(0,n.qy)(P||(P=j` <span class="dot error"></span> <span> ${0} </span> `),this.hass.localize("ui.panel.config.backup.details.locations.backup_failed")):l?(0,n.qy)(I||(I=j` <span class="dot warning"></span> <span> ${0}</span> `),this.hass.localize("ui.panel.config.backup.details.locations.unencrypted")):(0,n.qy)(D||(D=j` <span class="dot success"></span> <span>${0}</span> `),this.hass.localize("ui.panel.config.backup.details.locations.encrypted")),o?(0,n.qy)(B||(B=j` <ha-dropdown slot="end" @wa-select="${0}" .agent="${0}" fixed> <ha-icon-button slot="trigger" .label="${0}" .path="${0}"></ha-icon-button> <ha-dropdown-item value="download"> <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> ${0} </ha-dropdown-item> </ha-dropdown> `),this._handleAgentAction,e,this.hass.localize("ui.common.menu"),E,S,this.hass.localize("ui.panel.config.backup.details.locations.download")):n.s6)})):(0,n.qy)(V||(V=j`<ha-fade-in .delay="${0}"><ha-spinner></ha-spinner></ha-fade-in>`),1e3))}_restore(a){this._backup&&a.detail.selectedData&&(0,_.Y)(this,{backup:this._backup,selectedData:a.detail.selectedData})}async _fetchBackup(){try{const a=await(0,m.zZ)(this.hass,this.backupId);this._backup=a.backup,this._agents=O(a.backup)}catch(a){this._error=(null==a?void 0:a.message)||this.hass.localize("ui.panel.config.backup.details.error")}}_handleAction(a){switch(a.detail.item.value){case"download":this._downloadBackup();break;case"delete":this._deleteBackup()}}_handleAgentAction(a){const t=a.currentTarget.agent;this._downloadBackup(t)}async _downloadBackup(a){await(0,A.$)(this.hass,this,this._backup,this.config,a)}async _deleteBackup(){await(0,v.dk)(this,{title:this.hass.localize("ui.panel.config.backup.dialogs.delete.title"),text:this.hass.localize("ui.panel.config.backup.dialogs.delete.text"),confirmText:this.hass.localize("ui.common.delete"),destructive:!0})&&(await(0,m.mu)(this.hass,this._backup.backup_id),(0,l.r)(this,"ha-refresh-backup-info"),(0,c.oo)("/config/backup"))}constructor(...a){super(...a),this.narrow=!1,this.agents=[],this._agents=[]}}W.styles=(0,n.AH)(K||(K=j`.content{padding:28px 20px 0;max-width:690px;margin:0 auto;gap:var(--ha-space-6);display:grid;margin-bottom:24px}ha-spinner{margin:24px auto}.card-content{padding:0 20px}.card-actions{display:flex;justify-content:flex-end}ha-list-item-base{--ha-row-item-padding-inline:0}ha-list-item-base img{width:48px}ha-list-item-base ha-svg-icon[slot=start]{--mdc-icon-size:48px;color:var(--primary-text-color)}ha-button.danger{--mdc-theme-primary:var(--error-color)}ha-list-item-base [slot=supporting-text]{display:flex;align-items:center;flex-direction:row;gap:var(--ha-space-2);line-height:var(--ha-line-height-condensed)}.dot{display:block;position:relative;width:8px;height:8px;background-color:var(--disabled-color);border-radius:var(--ha-border-radius-circle);flex:none}.dot.success{background-color:var(--success-color)}.dot.warning{background-color:var(--warning-color)}.dot.error{background-color:var(--error-color)}.card-header{padding-bottom:8px}`)),(0,i.Cg)([(0,o.MZ)({attribute:!1})],W.prototype,"hass",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],W.prototype,"narrow",void 0),(0,i.Cg)([(0,o.MZ)({attribute:"backup-id"})],W.prototype,"backupId",void 0),(0,i.Cg)([(0,o.MZ)({attribute:!1})],W.prototype,"config",void 0),(0,i.Cg)([(0,o.MZ)({attribute:!1})],W.prototype,"agents",void 0),(0,i.Cg)([(0,o.wk)()],W.prototype,"_backup",void 0),(0,i.Cg)([(0,o.wk)()],W.prototype,"_agents",void 0),(0,i.Cg)([(0,o.wk)()],W.prototype,"_error",void 0),W=(0,i.Cg)([(0,o.EM)("ha-config-backup-details")],W),s()}catch(H){s(H)}})}}]);