iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 26.3 kB
JavaScript
export const __rspack_esm_id=39236;export const __rspack_esm_ids=[39236];export const __webpack_modules__={22130(a,s,t){t.r(s),t.d(s,{fetchAddonInfo:()=>f,fetchHassioAddonChangelog:()=>l,fetchHassioAddonDocumentation:()=>c,fetchHassioAddonInfo:()=>d,fetchHassioAddonLogs:()=>r,fetchHassioAddonsInfo:()=>n,installHassioAddon:()=>b,rebuildLocalAddon:()=>_,reloadHassioAddons:()=>o,restartHassioAddon:()=>v,setHassioAddonOption:()=>h,setHassioAddonSecurity:()=>m,startHassioAddon:()=>u,stopHassioAddon:()=>g,uninstallHassioAddon:()=>k,updateHassioAddon:()=>y,validateHassioAddonOption:()=>p});t(18111),t(20116);var e=t(35541),i=t(47351);const o=async a=>{await a.callWS({type:"supervisor/api",endpoint:"/addons/reload",method:"post"})},n=async a=>a.callWS({type:"supervisor/api",endpoint:"/addons",method:"get"}),d=async(a,s)=>a({type:"supervisor/api",endpoint:`/addons/${s}/info`,method:"get"}),l=async(a,s)=>a.callApi("GET",`hassio/addons/${s}/changelog`),r=async(a,s)=>a.callApi("GET",`hassio/addons/${s}/logs`),c=async(a,s)=>a.callApi("GET",`hassio/addons/${s}/documentation`),h=async(a,s,t)=>{const e=await a({type:"supervisor/api",endpoint:`/addons/${s}/options`,method:"post",data:t});if("error"===e.result)throw Error((0,i.VR)(e));return e},p=async(a,s,t)=>a({type:"supervisor/api",endpoint:`/addons/${s}/options/validate`,method:"post",data:t}),u=async(a,s)=>a({type:"supervisor/api",endpoint:`/addons/${s}/start`,method:"post",timeout:null}),g=async(a,s)=>a({type:"supervisor/api",endpoint:`/addons/${s}/stop`,method:"post",timeout:null}),m=async(a,s,t)=>{await a({type:"supervisor/api",endpoint:`/addons/${s}/security`,method:"post",data:t})},b=async(a,s)=>{await a({type:"supervisor/api",endpoint:`/addons/${s}/install`,method:"post",timeout:null})},y=async(a,s,t)=>{await a.callWS({type:"hassio/update/addon",addon:s,backup:t})},v=async(a,s)=>{await a({type:"supervisor/api",endpoint:`/addons/${s}/restart`,method:"post",timeout:null})},k=async(a,s,t)=>{await a({type:"supervisor/api",endpoint:`/addons/${s}/uninstall`,method:"post",timeout:null,data:{remove_config:t}})},f=(a,s,t)=>(0,e.X)(a,s.addon?.addons.find(a=>a.slug===t)?`/addons/${t}/info`:`/store/addons/${t}`),_=async(a,s)=>a({type:"supervisor/api",endpoint:`/addons/${s}/rebuild`,method:"post",timeout:null})},35541(a,s,t){t.d(s,{X:()=>o});var e=t(62384),i=t(47351);const o=async(a,s,t)=>(0,e.v)(a.config.version,2021,2,4)?a.callWS({type:"supervisor/api",endpoint:s,method:t?.method||"get",timeout:t?.timeout??null,data:t?.data}):(0,i.PS)(await a.callApi((t.method||"get").toUpperCase(),`hassio${s}`,t?.data))},76127(a,s,t){t(74423),t(44114),t(18111),t(22489),t(20116),t(61701);var e=t(62826),i=t(5124),o=t(22441),n=t(22786),d=t(1087),l=t(52220);t(9503),t(27826);class r extends i.WF{render(){return i.qy` <div class="items"> ${this._addons(this.addons).map(a=>i.qy` <ha-checkbox .id="${a.slug}" .checked="${this.value?.includes(a.slug)||!1}" ="${this._checkboxChanged}" .disabled="${this.disabled}"> <ha-backup-formfield-label .label="${a.name}" .version="${this.hideVersion?void 0:a.version}" .iconPath="${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"}" .imageUrl="${this.addons?.find(s=>s.slug===a.slug)?.icon?`/api/hassio/addons/${a.slug}/icon`:void 0}"> </ha-backup-formfield-label> </ha-checkbox> `)} </div> `}_checkboxChanged(a){a.stopPropagation();let s=this.value??[];const t=a.currentTarget;t.checked?s.push(t.id):s=s.filter(a=>a!==t.id),(0,d.r)(this,"value-changed",{value:s})}constructor(...a){super(...a),this.hideVersion=!1,this.disabled=!1,this._addons=(0,n.A)(a=>a.sort((a,s)=>(0,l.xL)(a.name,s.name,this.hass?.locale?.language)))}}r.styles=i.AH`.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,e.Cg)([(0,o.MZ)({attribute:!1})],r.prototype,"hass",void 0),(0,e.Cg)([(0,o.MZ)({attribute:!1})],r.prototype,"addons",void 0),(0,e.Cg)([(0,o.MZ)({attribute:!1})],r.prototype,"value",void 0),(0,e.Cg)([(0,o.MZ)({attribute:"hide-version",type:Boolean})],r.prototype,"hideVersion",void 0),(0,e.Cg)([(0,o.MZ)({type:Boolean})],r.prototype,"disabled",void 0),r=(0,e.Cg)([(0,o.EM)("ha-backup-addons-picker")],r)},70074(a,s,t){t(74423),t(44114),t(18111),t(22489),t(61701),t(18237);var e=t(62826),i=t(5124),o=t(22441),n=t(22786),d=t(36312),l=t(1087),r=t(52943),c=(t(9503),t(22130)),h=t(53580);t(76127),t(27826);const p="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",u={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:p,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 g 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,s)=>({...a,[s.slug]:s.icon}),{})}_localizeFolder(a){const s=this.localize||this.hass.localize;switch(a){case"media":return s(`ui.panel.${this.translationKeyPanel}.data_picker.media`);case"share":return s(`ui.panel.${this.translationKeyPanel}.data_picker.share_folder`);case"ssl":return s(`ui.panel.${this.translationKeyPanel}.data_picker.ssl`);case"addons/local":return s(`ui.panel.${this.translationKeyPanel}.data_picker.local_apps`)}return(0,r.Z)(a)}_homeassistantChanged(a){const s=this._parseValue(this.value),t=a.currentTarget;t.checked?s.homeassistant.push(t.id):s.homeassistant=s.homeassistant.filter(a=>a!==t.id);const e=this._formatValue(s,this.data);(0,l.r)(this,"value-changed",{value:e})}_addonsChanged(a){a.stopPropagation();const s=this._parseValue(this.value),t=a.detail.value;s.addons=t;const e=this._formatValue(s,this.data);(0,l.r)(this,"value-changed",{value:e})}_sectionChanged(a){const s=this._parseValue(this.value),t=this._parseValue(this.data),e=a.currentTarget,i=e.id;e.checked?s[i]=t[i]:s[i]=[];const o=this._formatValue(s,this.data);(0,l.r)(this,"value-changed",{value:o})}render(){const a=this.localize||this.hass.localize,s=this._homeAssistantItems(this.data,a),t=this._addonsItems(this.data,a,this._addonIcons),e=this._parseValue(this.value);return i.qy` ${s.length?i.qy` <div class="section"> <ha-checkbox .id="${"homeassistant"}" .checked="${e.homeassistant.length===s.length}" .indeterminate="${e.homeassistant.length>0&&e.homeassistant.length<s.length}" ="${this._sectionChanged}" ?disabled="${this.requiredItems.length>0}"> <ha-backup-formfield-label label="ioBroker" .iconPath="${h.mdiHomeAssistant}"> </ha-backup-formfield-label> </ha-checkbox> <div class="items"> ${s.map(a=>i.qy` <ha-checkbox .id="${a.id}" .checked="${e.homeassistant.includes(a.id)}" ="${this._homeassistantChanged}" .disabled="${this.requiredItems.includes(a.id)}"> <ha-backup-formfield-label .label="${a.label}" .version="${a.version}" .iconPath="${u[a.id]||p}"> </ha-backup-formfield-label> </ha-checkbox> `)} </div> </div> `:i.s6} ${t.length?i.qy` <div class="section"> <ha-checkbox .id="${"addons"}" .checked="${e.addons.length===t.length}" .indeterminate="${e.addons.length>0&&e.addons.length<t.length}" ="${this._sectionChanged}" .disabled="${this.addonsDisabled}"> <ha-backup-formfield-label .label="${a(`ui.panel.${this.translationKeyPanel}.data_picker.apps`)}" .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"}"> </ha-backup-formfield-label> </ha-checkbox> <ha-backup-addons-picker .hass="${this.hass}" .value="${e.addons}" -changed="${this._addonsChanged}" .addons="${t}" .disabled="${this.addonsDisabled}"> </ha-backup-addons-picker> </div> `:i.s6} `}constructor(...a){super(...a),this.requiredItems=[],this.translationKeyPanel="config.backup",this.addonsDisabled=!1,this._addonIcons={},this._homeAssistantItems=(0,n.A)((a,s)=>{const t=[];return a.homeassistant_included&&t.push({label:s(`ui.panel.${this.translationKeyPanel}.data_picker.${a.database_included?"settings_and_history":"settings"}`),id:"config",version:a.homeassistant_version}),t.push(...a.folders.map(a=>({label:this._localizeFolder(a),id:a}))),t}),this._addonsItems=(0,n.A)((a,s,t)=>a.addons.map(a=>({name:a.name,slug:a.slug,version:a.version,icon:t[a.slug]}))),this._parseValue=(0,n.A)(a=>{if(!a)return{homeassistant:[],addons:[]};const s=[],t=[];a.homeassistant_included&&s.push("config");const e=a.folders;s.push(...e);const i=a.addons.map(a=>a.slug);return t.push(...i),{homeassistant:s,addons:t}}),this._formatValue=(0,n.A)((a,s)=>({homeassistant_version:s.homeassistant_version,homeassistant_included:a.homeassistant.includes("config"),database_included:s.database_included&&a.homeassistant.includes("config"),addons:s.addons.filter(s=>a.addons.includes(s.slug)),folders:s.folders.filter(s=>a.homeassistant.includes(s))}))}}g.styles=i.AH`.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,e.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"hass",void 0),(0,e.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"data",void 0),(0,e.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"value",void 0),(0,e.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"localize",void 0),(0,e.Cg)([(0,o.MZ)({type:Array,attribute:"required-items"})],g.prototype,"requiredItems",void 0),(0,e.Cg)([(0,o.MZ)({attribute:"translation-key-panel"})],g.prototype,"translationKeyPanel",void 0),(0,e.Cg)([(0,o.MZ)({attribute:!1})],g.prototype,"addonsDisabled",void 0),(0,e.Cg)([(0,o.wk)()],g.prototype,"_addonIcons",void 0),g=(0,e.Cg)([(0,o.EM)("ha-backup-data-picker")],g)},58826(a,s,t){t.a(a,async function(a,s){try{var e=t(62826),i=t(22786),o=t(5124),n=t(22441),d=(t(76776),t(18350)),l=(t(70074),t(1087)),r=a([d]);d=(r.then?(await r)():r)[0];class c extends o.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 o.qy` <ha-card> <div class="card-header"> ${this.localize(`ui.panel.${this.translationKeyPanel}.details.restore.title`)} </div> <div class="card-content"> <ha-backup-data-picker .translationKeyPanel="${this.translationKeyPanel}" .localize="${this.localize}" .hass="${this.hass}" .data="${this.backup}" .value="${this._selectedData}" -changed="${this._selectedBackupChanged}" .requiredItems="${this._isHomeAssistantRequired(this.haRequired)}"> </ha-backup-data-picker> </div> <div class="card-actions"> <ha-button ="${this._restore}" .disabled="${this._isRestoreDisabled}" variant="danger" appearance="plain"> ${this.localize(`ui.panel.${this.translationKeyPanel}.details.restore.action`)} </ha-button> </div> </ha-card> `}_restore(){(0,l.r)(this,"backup-restore",{selectedData:this._selectedData})}_selectedBackupChanged(a){a.stopPropagation(),this._selectedData=a.detail.value}get _isRestoreDisabled(){return!this._selectedData||this.haRequired&&!this._selectedData.homeassistant_included||!(this._selectedData?.database_included||this._selectedData?.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"]:[])}}c.styles=o.AH`: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,e.Cg)([(0,n.MZ)({attribute:!1})],c.prototype,"hass",void 0),(0,e.Cg)([(0,n.MZ)({attribute:!1})],c.prototype,"localize",void 0),(0,e.Cg)([(0,n.MZ)({type:Object})],c.prototype,"backup",void 0),(0,e.Cg)([(0,n.MZ)({type:Boolean,attribute:"ha-required"})],c.prototype,"haRequired",void 0),(0,e.Cg)([(0,n.MZ)({attribute:"translation-key-panel"})],c.prototype,"translationKeyPanel",void 0),(0,e.Cg)([(0,n.wk)()],c.prototype,"_selectedData",void 0),c=(0,e.Cg)([(0,n.EM)("ha-backup-details-restore")],c),s()}catch(a){s(a)}})},69268(a,s,t){t.a(a,async function(a,s){try{t(44114),t(18111),t(61701);var e=t(62826),i=t(5124),o=t(22441),n=t(95747),d=t(52943),l=t(38962),r=(t(76776),t(28170),t(50723),t(31420)),c=t(46187),h=a([l,n,r]);[l,n,r]=h.then?(await h)():h;class p extends i.WF{render(){const a=new Date(this.backup.date),s=(0,n.r6)(a,this.hass.locale,this.hass.config),t=[];return this.backup.failed_addons?.length&&t.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})`)}),this.backup.failed_folders?.length&&t.push({title:this.hass.localize("ui.panel.config.backup.details.summary.error.failed_folders"),items:this.backup.failed_folders.map(a=>this._localizeFolder(a))}),i.qy` <ha-card> <div class="card-header"> ${this.hass.localize("ui.panel.config.backup.details.summary.title")} </div> <div class="card-content"> ${t.length?this._renderErrorSummary(t):i.s6} <ha-list-base class="summary"> <ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.backup.backup_type")} </span> <span slot="supporting-text"> ${this.hass.localize(`ui.panel.config.backup.type.${(0,r.sp)(this.backup,this.isHassio)}`)} </span> </ha-list-item-base> <ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.backup.details.summary.size")} </span> <span slot="supporting-text"> ${(0,c.A)((0,r.v3)(this.backup))} </span> </ha-list-item-base> <ha-list-item-base> <span slot="headline"> ${this.hass.localize("ui.panel.config.backup.details.summary.created")} </span> <span slot="supporting-text">${s}</span> </ha-list-item-base> </ha-list-base> </div> </ha-card> `}_renderErrorSummary(a){return i.qy` <ha-alert alert-type="error" .title="${this.hass.localize("ui.panel.config.backup.details.summary.error.title")}"> ${a.map(({title:a,items:s})=>i.qy` <br> <b>${a}:</b> <ul> ${s.map(a=>i.qy`<li>${a}</li>`)} </ul> `)} </ha-alert> `}_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}}p.styles=i.AH`: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,e.Cg)([(0,o.MZ)({attribute:!1})],p.prototype,"hass",void 0),(0,e.Cg)([(0,o.MZ)({type:Object})],p.prototype,"backup",void 0),(0,e.Cg)([(0,o.MZ)({type:Boolean,attribute:"hassio"})],p.prototype,"isHassio",void 0),p=(0,e.Cg)([(0,o.EM)("ha-backup-details-summary")],p),s()}catch(a){s(a)}})},27826(a,s,t){var e=t(62826),i=t(5124),o=t(22441);t(67094);class n extends i.WF{render(){return i.qy` ${this.imageUrl?i.qy`<img loading="lazy" alt="" src="${this.imageUrl}" class="icon">`:this.iconPath?i.qy` <ha-svg-icon .path="${this.iconPath}" class="icon"></ha-svg-icon> `:i.s6} <span class="label"> ${this.label} ${this.version?i.qy`<span class="version">(${this.version})</span>`:i.s6} </span> `}}n.styles=i.AH`: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,e.Cg)([(0,o.MZ)({type:String})],n.prototype,"label",void 0),(0,e.Cg)([(0,o.MZ)({type:String,attribute:"image-url"})],n.prototype,"imageUrl",void 0),(0,e.Cg)([(0,o.MZ)({type:String,attribute:"icon-path"})],n.prototype,"iconPath",void 0),(0,e.Cg)([(0,o.MZ)({type:String})],n.prototype,"version",void 0),n=(0,e.Cg)([(0,o.EM)("ha-backup-formfield-label")],n)},54627(a,s,t){t.d(s,{Y:()=>o});var e=t(1087);const i=()=>t.e(72556).then(t.bind(t,12615)),o=(a,s)=>{(0,e.r)(a,"show-dialog",{dialogTag:"ha-dialog-restore-backup",dialogImport:i,dialogParams:s})}},96303(a,s,t){t.a(a,async function(a,e){try{t.r(s);t(74423),t(18111),t(22489),t(61701);var i=t(62826),o=t(5124),n=t(22441),d=t(36312),l=t(1087),r=t(71727),c=t(91926),h=(t(3109),t(38962)),p=t(18350),u=(t(76776),t(29823)),g=(t(70947),t(26300)),m=t(65829),b=(t(28170),t(50723),t(31420)),y=t(65063),v=t(81310),k=t(44144),f=t(58826),_=t(69268),$=t(54627),A=t(63993),C=a([h,p,u,g,m,v,f,_,A,b]);[h,p,u,g,m,v,f,_,A,b]=C.then?(await C)():C;const H="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z",x="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",w="M5,20H19V18H5M19,9H15V3H9V9H5L12,16L19,9Z",M="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",V="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",z=a=>{const s=Object.keys(a.agents),t=a.failed_agent_ids??[];return[...s.filter(a=>!t.includes(a)),...t].map(s=>({...a.agents[s]??{protected:!1,size:0},id:s,success:!t.includes(s)})).sort((a,s)=>(0,b.yj)(a.id,s.id))};class Z extends o.WF{firstUpdated(a){super.firstUpdated(a),this.backupId?this._fetchBackup():this._error="Backup id not defined"}render(){if(!this.hass)return o.s6;const a=(0,d.x)(this.hass.config,"hassio");return o.qy` <hass-subpage back-path="/config/backup/backups" .hass="${this.hass}" .narrow="${this.narrow}" .header="${this._backup?.name||this.hass.localize("ui.panel.config.backup.details.header")}"> <ha-dropdown slot="toolbar-icon" -select="${this._handleAction}"> <ha-icon-button slot="trigger" .label="${this.hass.localize("ui.common.menu")}" .path="${x}"></ha-icon-button> <ha-dropdown-item value="download"> <ha-svg-icon slot="icon" .path="${w}"></ha-svg-icon> ${this.hass.localize("ui.common.download")} </ha-dropdown-item> <ha-dropdown-item value="delete" variant="danger"> <ha-svg-icon slot="icon" .path="${H}"></ha-svg-icon> ${this.hass.localize("ui.common.delete")} </ha-dropdown-item> </ha-dropdown> <div class="content"> ${this._error&&o.qy`<ha-alert alert-type="error">${this._error}</ha-alert>`} ${null===this._backup?o.qy` <ha-alert alert-type="warning" .title="${this.hass.localize("ui.panel.config.backup.details.not_found")}"> ${this.hass.localize("ui.panel.config.backup.details.not_found_description",{backupId:this.backupId})} </ha-alert> `:this._backup?o.qy` <ha-backup-details-summary .backup="${this._backup}" .hass="${this.hass}" .localize="${this.hass.localize}" .isHassio="${a}"></ha-backup-details-summary> <ha-backup-details-restore .backup="${this._backup}" -restore="${this._restore}" .hass="${this.hass}" .localize="${this.hass.localize}"></ha-backup-details-restore> <ha-card> <div class="card-header"> ${this.hass.localize("ui.panel.config.backup.details.locations.title")} </div> <div class="card-content"> <ha-list-base> ${this._agents.map(a=>{const s=a.id,t=(0,r.m)(s),e=(0,b.q7)(this.hass.localize,s,this.agents),i=a.success,n=!a.success,d=!a.protected;return o.qy` <ha-list-item-base> ${(0,b.Bi)(s)?o.qy` <ha-svg-icon .path="${M}" slot="start"> </ha-svg-icon> `:(0,b.jU)(s)?o.qy` <ha-svg-icon .path="${V}" slot="start"></ha-svg-icon> `:o.qy` <img .src="${(0,k.MR)({domain:t,type:"icon",darkOptimized:this.hass.themes?.darkMode},this.hass.auth.data.hassUrl)}" crossorigin="anonymous" referrerpolicy="no-referrer" alt="${`${t} logo`}" slot="start"> `} <div slot="headline">${e}</div> <div slot="supporting-text"> ${n?o.qy` <span class="dot error"></span> <span> ${this.hass.localize("ui.panel.config.backup.details.locations.backup_failed")} </span> `:d?o.qy` <span class="dot warning"></span> <span> ${this.hass.localize("ui.panel.config.backup.details.locations.unencrypted")}</span> `:o.qy` <span class="dot success"></span> <span>${this.hass.localize("ui.panel.config.backup.details.locations.encrypted")}</span> `} </div> ${i?o.qy` <ha-dropdown slot="end" -select="${this._handleAgentAction}" .agent="${s}" fixed> <ha-icon-button slot="trigger" .label="${this.hass.localize("ui.common.menu")}" .path="${x}"></ha-icon-button> <ha-dropdown-item value="download"> <ha-svg-icon slot="icon" .path="${w}"></ha-svg-icon> ${this.hass.localize("ui.panel.config.backup.details.locations.download")} </ha-dropdown-item> </ha-dropdown> `:o.s6} </ha-list-item-base> `})} </ha-list-base> </div> </ha-card> `:o.qy`<ha-fade-in .delay="${1e3}"><ha-spinner></ha-spinner></ha-fade-in>`} </div> </hass-subpage> `}_restore(a){this._backup&&a.detail.selectedData&&(0,$.Y)(this,{backup:this._backup,selectedData:a.detail.selectedData})}async _fetchBackup(){try{const a=await(0,b.zZ)(this.hass,this.backupId);this._backup=a.backup,this._agents=z(a.backup)}catch(a){this._error=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 s=a.currentTarget.agent;this._downloadBackup(s)}async _downloadBackup(a){await(0,A.$)(this.hass,this,this._backup,this.config,a)}async _deleteBackup(){await(0,y.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,b.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=[]}}Z.styles=o.AH`.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,n.MZ)({attribute:!1})],Z.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({type:Boolean})],Z.prototype,"narrow",void 0),(0,i.Cg)([(0,n.MZ)({attribute:"backup-id"})],Z.prototype,"backupId",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],Z.prototype,"config",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],Z.prototype,"agents",void 0),(0,i.Cg)([(0,n.wk)()],Z.prototype,"_backup",void 0),(0,i.Cg)([(0,n.wk)()],Z.prototype,"_agents",void 0),(0,i.Cg)([(0,n.wk)()],Z.prototype,"_error",void 0),Z=(0,i.Cg)([(0,n.EM)("ha-config-backup-details")],Z),e()}catch(a){e(a)}})}};