UNPKG

iobroker.lovelace

Version:

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

1 lines 23.9 kB
export const __rspack_esm_id=47987;export const __rspack_esm_ids=[47987];export const __webpack_modules__={22130(t,e,a){a.r(e),a.d(e,{fetchAddonInfo:()=>b,fetchHassioAddonChangelog:()=>l,fetchHassioAddonDocumentation:()=>d,fetchHassioAddonInfo:()=>r,fetchHassioAddonLogs:()=>c,fetchHassioAddonsInfo:()=>o,installHassioAddon:()=>m,rebuildLocalAddon:()=>$,reloadHassioAddons:()=>n,restartHassioAddon:()=>_,setHassioAddonOption:()=>h,setHassioAddonSecurity:()=>y,startHassioAddon:()=>u,stopHassioAddon:()=>g,uninstallHassioAddon:()=>v,updateHassioAddon:()=>f,validateHassioAddonOption:()=>p});a(18111),a(20116);var i=a(35541),s=a(47351);const n=async t=>{await t.callWS({type:"supervisor/api",endpoint:"/addons/reload",method:"post"})},o=async t=>t.callWS({type:"supervisor/api",endpoint:"/addons",method:"get"}),r=async(t,e)=>t({type:"supervisor/api",endpoint:`/addons/${e}/info`,method:"get"}),l=async(t,e)=>t.callApi("GET",`hassio/addons/${e}/changelog`),c=async(t,e)=>t.callApi("GET",`hassio/addons/${e}/logs`),d=async(t,e)=>t.callApi("GET",`hassio/addons/${e}/documentation`),h=async(t,e,a)=>{const i=await t({type:"supervisor/api",endpoint:`/addons/${e}/options`,method:"post",data:a});if("error"===i.result)throw Error((0,s.VR)(i));return i},p=async(t,e,a)=>t({type:"supervisor/api",endpoint:`/addons/${e}/options/validate`,method:"post",data:a}),u=async(t,e)=>t({type:"supervisor/api",endpoint:`/addons/${e}/start`,method:"post",timeout:null}),g=async(t,e)=>t({type:"supervisor/api",endpoint:`/addons/${e}/stop`,method:"post",timeout:null}),y=async(t,e,a)=>{await t({type:"supervisor/api",endpoint:`/addons/${e}/security`,method:"post",data:a})},m=async(t,e)=>{await t({type:"supervisor/api",endpoint:`/addons/${e}/install`,method:"post",timeout:null})},f=async(t,e,a)=>{await t.callWS({type:"hassio/update/addon",addon:e,backup:a})},_=async(t,e)=>{await t({type:"supervisor/api",endpoint:`/addons/${e}/restart`,method:"post",timeout:null})},v=async(t,e,a)=>{await t({type:"supervisor/api",endpoint:`/addons/${e}/uninstall`,method:"post",timeout:null,data:{remove_config:a}})},b=(t,e,a)=>(0,i.X)(t,e.addon?.addons.find(t=>t.slug===a)?`/addons/${a}/info`:`/store/addons/${a}`),$=async(t,e)=>t({type:"supervisor/api",endpoint:`/addons/${e}/rebuild`,method:"post",timeout:null})},35541(t,e,a){a.d(e,{X:()=>n});var i=a(62384),s=a(47351);const n=async(t,e,a)=>(0,i.v)(t.config.version,2021,2,4)?t.callWS({type:"supervisor/api",endpoint:e,method:a?.method||"get",timeout:a?.timeout??null,data:a?.data}):(0,s.PS)(await t.callApi((a.method||"get").toUpperCase(),`hassio${e}`,a?.data))},78391(t,e,a){a.a(t,async function(t,e){try{a(18111),a(61701);var i=a(62826),s=a(5124),n=a(22441),o=a(1087),r=a(63004),l=(a(11382),a(606)),c=a(91485),d=(a(28170),a(83892),t([l,c]));[l,c]=d.then?(await d)():d;const h=1,p=9999;const u={copies_3:{copies:3,days:null},forever:{copies:null,days:null},global:null};class g extends s.WF{willUpdate(){this._configLoaded||void 0===this.retention||(this._configLoaded=!0,this.retention?null===this.retention?.days&&null===this.retention?.copies?this._preset="forever":(this._value=this.retention.copies||this.retention.days||3,(this.retention.days||this.locationSpecific||3!==this.retention.copies)&&(this._preset="custom",this._type=this.retention?.copies?"copies":"days")):this._preset="global",this.locationSpecific&&(this.presetOptions=["global","forever","custom"]))}render(){return this._configLoaded?s.qy` <ha-list-item-base> <span slot="headline"> ${this.headline??this.hass.localize("ui.panel.config.backup.schedule.retention")} </span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.backup.schedule.retention_description")} </span> <ha-select slot="end" @selected="${this._retentionPresetChanged}" .value="${this._preset}" .options="${this.presetOptions.map(t=>({value:t,label:this.hass.localize(`ui.panel.config.backup.schedule.retention_presets.${t}`)}))}"></ha-select> </ha-list-item-base> ${"custom"===this._preset?s.qy`<ha-expansion-panel expanded .header="${this.hass.localize("ui.panel.config.backup.schedule.custom_retention")}" outlined> <ha-row-item> <span slot="headline"> ${this.hass.localize("ui.panel.config.backup.schedule.custom_retention_label")} </span> <ha-input slot="end" @change="${this._retentionValueChanged}" .value="${this._value.toString()}" id="value" type="number" .min="${h.toString()}" .max="${p.toString()}" step="1"> </ha-input> <ha-select slot="end" @selected="${this._retentionTypeChanged}" .value="${this._type}" id="type" .options="${[{value:"days",label:this.hass.localize("ui.panel.config.backup.schedule.retention_units.days")},{value:"copies",label:this.hass.localize("ui.panel.config.backup.schedule.retention_units.copies")}]}"></ha-select></ha-row-item></ha-expansion-panel> `:s.s6} `:s.s6}_retentionPresetChanged(t){let e=t.detail.value;if(e&&("custom"!==e||!this.locationSpecific&&"forever"!==this._preset?this._preset=e:(this._preset=e,e="copies_3"),this.locationSpecific||"custom"!==e)){const t=u[e];(0,o.r)(this,"value-changed",{value:t})}}_retentionValueChanged(t){t.stopPropagation();const e=t.currentTarget,a=parseInt(e.value??""),i=(0,r.q)(a,h,p);e.value=i.toString();const s=this._customTypeField?.value;(0,o.r)(this,"value-changed",{value:{copies:"copies"===s?i:null,days:"days"===s?i:null}})}_retentionTypeChanged(t){const e=t.detail.value;if(!e)return;this._type=e;const a=this._customValueField?.value;(0,o.r)(this,"value-changed",{value:{copies:"copies"===e?Number(a):null,days:"days"===e?Number(a):null}})}constructor(...t){super(...t),this.locationSpecific=!1,this._preset="copies_3",this._type="copies",this._value=3,this._configLoaded=!1,this.presetOptions=["copies_3","forever","custom"]}}g.styles=s.AH`ha-list-item-base,ha-row-item{--ha-row-item-padding-inline:0}ha-row-item::part(end){align-items:flex-start}ha-list-item-base::part(headline),ha-list-item-base::part(supporting-text){white-space:wrap}ha-select{min-width:210px}@media all and (max-width:450px){ha-select{min-width:160px;width:160px}}ha-input#value{min-width:70px}ha-select#type{min-width:100px}@media all and (max-width:450px){ha-input#value{min-width:60px;margin:0 -8px}ha-select#type{min-width:120px;width:120px}}ha-expansion-panel{--expansion-panel-summary-padding:0 16px;--expansion-panel-content-padding:0 16px;margin-bottom:16px}`,(0,i.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"retention",void 0),(0,i.Cg)([(0,n.MZ)()],g.prototype,"headline",void 0),(0,i.Cg)([(0,n.MZ)({type:Boolean,attribute:"location-specific"})],g.prototype,"locationSpecific",void 0),(0,i.Cg)([(0,n.wk)()],g.prototype,"_preset",void 0),(0,i.Cg)([(0,n.wk)()],g.prototype,"_type",void 0),(0,i.Cg)([(0,n.wk)()],g.prototype,"_value",void 0),(0,i.Cg)([(0,n.P)("#value")],g.prototype,"_customValueField",void 0),(0,i.Cg)([(0,n.P)("#type")],g.prototype,"_customTypeField",void 0),g=(0,i.Cg)([(0,n.EM)("ha-backup-config-retention")],g),e()}catch(t){e(t)}})},76127(t,e,a){a(74423),a(44114),a(18111),a(22489),a(20116),a(61701);var i=a(62826),s=a(5124),n=a(22441),o=a(22786),r=a(1087),l=a(52220);a(9503),a(27826);class c extends s.WF{render(){return s.qy` <div class="items"> ${this._addons(this.addons).map(t=>s.qy` <ha-checkbox .id="${t.slug}" .checked="${this.value?.includes(t.slug)||!1}" @change="${this._checkboxChanged}" .disabled="${this.disabled}"> <ha-backup-formfield-label .label="${t.name}" .version="${this.hideVersion?void 0:t.version}" .iconPath="${t.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(e=>e.slug===t.slug)?.icon?`/api/hassio/addons/${t.slug}/icon`:void 0}"> </ha-backup-formfield-label> </ha-checkbox> `)} </div> `}_checkboxChanged(t){t.stopPropagation();let e=this.value??[];const a=t.currentTarget;a.checked?e.push(a.id):e=e.filter(t=>t!==a.id),(0,r.r)(this,"value-changed",{value:e})}constructor(...t){super(...t),this.hideVersion=!1,this.disabled=!1,this._addons=(0,o.A)(t=>t.sort((t,e)=>(0,l.xL)(t.name,e.name,this.hass?.locale?.language)))}}c.styles=s.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,i.Cg)([(0,n.MZ)({attribute:!1})],c.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],c.prototype,"addons",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],c.prototype,"value",void 0),(0,i.Cg)([(0,n.MZ)({attribute:"hide-version",type:Boolean})],c.prototype,"hideVersion",void 0),(0,i.Cg)([(0,n.MZ)({type:Boolean})],c.prototype,"disabled",void 0),c=(0,i.Cg)([(0,n.EM)("ha-backup-addons-picker")],c)},70074(t,e,a){a(74423),a(44114),a(18111),a(22489),a(61701),a(18237);var i=a(62826),s=a(5124),n=a(22441),o=a(22786),r=a(36312),l=a(1087),c=a(52943),d=(a(9503),a(22130)),h=a(53580);a(76127),a(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 s.WF{firstUpdated(t){super.firstUpdated(t),this.hass&&(0,r.x)(this.hass.config,"hassio")&&this._fetchAddonInfo()}async _fetchAddonInfo(){const{addons:t}=await(0,d.fetchHassioAddonsInfo)(this.hass);this._addonIcons=t.reduce((t,e)=>({...t,[e.slug]:e.icon}),{})}_localizeFolder(t){const e=this.localize||this.hass.localize;switch(t){case"media":return e(`ui.panel.${this.translationKeyPanel}.data_picker.media`);case"share":return e(`ui.panel.${this.translationKeyPanel}.data_picker.share_folder`);case"ssl":return e(`ui.panel.${this.translationKeyPanel}.data_picker.ssl`);case"addons/local":return e(`ui.panel.${this.translationKeyPanel}.data_picker.local_apps`)}return(0,c.Z)(t)}_homeassistantChanged(t){const e=this._parseValue(this.value),a=t.currentTarget;a.checked?e.homeassistant.push(a.id):e.homeassistant=e.homeassistant.filter(t=>t!==a.id);const i=this._formatValue(e,this.data);(0,l.r)(this,"value-changed",{value:i})}_addonsChanged(t){t.stopPropagation();const e=this._parseValue(this.value),a=t.detail.value;e.addons=a;const i=this._formatValue(e,this.data);(0,l.r)(this,"value-changed",{value:i})}_sectionChanged(t){const e=this._parseValue(this.value),a=this._parseValue(this.data),i=t.currentTarget,s=i.id;i.checked?e[s]=a[s]:e[s]=[];const n=this._formatValue(e,this.data);(0,l.r)(this,"value-changed",{value:n})}render(){const t=this.localize||this.hass.localize,e=this._homeAssistantItems(this.data,t),a=this._addonsItems(this.data,t,this._addonIcons),i=this._parseValue(this.value);return s.qy` ${e.length?s.qy` <div class="section"> <ha-checkbox .id="${"homeassistant"}" .checked="${i.homeassistant.length===e.length}" .indeterminate="${i.homeassistant.length>0&&i.homeassistant.length<e.length}" @change="${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"> ${e.map(t=>s.qy` <ha-checkbox .id="${t.id}" .checked="${i.homeassistant.includes(t.id)}" @change="${this._homeassistantChanged}" .disabled="${this.requiredItems.includes(t.id)}"> <ha-backup-formfield-label .label="${t.label}" .version="${t.version}" .iconPath="${u[t.id]||p}"> </ha-backup-formfield-label> </ha-checkbox> `)} </div> </div> `:s.s6} ${a.length?s.qy` <div class="section"> <ha-checkbox .id="${"addons"}" .checked="${i.addons.length===a.length}" .indeterminate="${i.addons.length>0&&i.addons.length<a.length}" @change="${this._sectionChanged}" .disabled="${this.addonsDisabled}"> <ha-backup-formfield-label .label="${t(`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="${i.addons}" @value-changed="${this._addonsChanged}" .addons="${a}" .disabled="${this.addonsDisabled}"> </ha-backup-addons-picker> </div> `:s.s6} `}constructor(...t){super(...t),this.requiredItems=[],this.translationKeyPanel="config.backup",this.addonsDisabled=!1,this._addonIcons={},this._homeAssistantItems=(0,o.A)((t,e)=>{const a=[];return t.homeassistant_included&&a.push({label:e(`ui.panel.${this.translationKeyPanel}.data_picker.${t.database_included?"settings_and_history":"settings"}`),id:"config",version:t.homeassistant_version}),a.push(...t.folders.map(t=>({label:this._localizeFolder(t),id:t}))),a}),this._addonsItems=(0,o.A)((t,e,a)=>t.addons.map(t=>({name:t.name,slug:t.slug,version:t.version,icon:a[t.slug]}))),this._parseValue=(0,o.A)(t=>{if(!t)return{homeassistant:[],addons:[]};const e=[],a=[];t.homeassistant_included&&e.push("config");const i=t.folders;e.push(...i);const s=t.addons.map(t=>t.slug);return a.push(...s),{homeassistant:e,addons:a}}),this._formatValue=(0,o.A)((t,e)=>({homeassistant_version:e.homeassistant_version,homeassistant_included:t.homeassistant.includes("config"),database_included:e.database_included&&t.homeassistant.includes("config"),addons:e.addons.filter(e=>t.addons.includes(e.slug)),folders:e.folders.filter(e=>t.homeassistant.includes(e))}))}}g.styles=s.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,i.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"hass",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"data",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"value",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"localize",void 0),(0,i.Cg)([(0,n.MZ)({type:Array,attribute:"required-items"})],g.prototype,"requiredItems",void 0),(0,i.Cg)([(0,n.MZ)({attribute:"translation-key-panel"})],g.prototype,"translationKeyPanel",void 0),(0,i.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"addonsDisabled",void 0),(0,i.Cg)([(0,n.wk)()],g.prototype,"_addonIcons",void 0),g=(0,i.Cg)([(0,n.EM)("ha-backup-data-picker")],g)},27826(t,e,a){var i=a(62826),s=a(5124),n=a(22441);a(67094);class o extends s.WF{render(){return s.qy` ${this.imageUrl?s.qy`<img loading="lazy" alt="" src="${this.imageUrl}" class="icon">`:this.iconPath?s.qy` <ha-svg-icon .path="${this.iconPath}" class="icon"></ha-svg-icon> `:s.s6} <span class="label"> ${this.label} ${this.version?s.qy`<span class="version">(${this.version})</span>`:s.s6} </span> `}}o.styles=s.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,i.Cg)([(0,n.MZ)({type:String})],o.prototype,"label",void 0),(0,i.Cg)([(0,n.MZ)({type:String,attribute:"image-url"})],o.prototype,"imageUrl",void 0),(0,i.Cg)([(0,n.MZ)({type:String,attribute:"icon-path"})],o.prototype,"iconPath",void 0),(0,i.Cg)([(0,n.MZ)({type:String})],o.prototype,"version",void 0),o=(0,i.Cg)([(0,n.EM)("ha-backup-formfield-label")],o)},14878(t,e,a){a.a(t,async function(t,i){try{a.r(e);a(18111),a(20116);var s=a(62826),n=a(5124),o=a(22441),r=a(1087),l=(a(3109),a(38962)),c=a(18350),d=(a(76776),a(26300)),h=a(65829),p=a(59646),u=(a(83892),a(31420)),g=a(81310),y=a(33963),m=a(78391),f=(a(70074),t([l,c,d,h,p,g,m,u,y]));[l,c,d,h,p,g,m,u,y]=f.then?(await f)():f;class _ extends n.WF{willUpdate(t){t.has("agentId")&&(this.agentId?this._fetchAgent():this._error="Agent id not defined")}render(){if(!this.hass)return n.s6;const t=this._isEncryptionTurnedOn(),e=this._agent&&(0,u.q7)(this.hass.localize,this.agentId,this.agents)||this.hass.localize("ui.panel.config.backup.location.header");return n.qy` <hass-subpage back-path="/config/backup/settings" .hass="${this.hass}" .narrow="${this.narrow}" .header="${e}"> <div class="content"> ${this._error&&n.qy`<ha-alert alert-type="error">${this._error}</ha-alert>`} ${null===this._agent?n.qy` <ha-alert alert-type="warning" .title="${this.hass.localize("ui.panel.config.backup.location.not_found")}"> ${this.hass.localize("ui.panel.config.backup.location.not_found_description",{agentId:this.agentId})} </ha-alert> `:this.agentId?n.qy` <ha-card> <div class="card-header"> ${this.hass.localize("ui.panel.config.backup.location.configuration.title")} </div> ${u.oJ===this.agentId?n.qy` <div class="card-content"> <p> ${this.hass.localize("ui.panel.config.backup.location.configuration.cloud_description")} </p> </div> `:n.qy`<ha-backup-config-retention location-specific .headline="${this.hass.localize("ui.panel.config.backup.location.retention_for_"+((0,u.Bi)(this.agentId)?"this_system":"location"),{location:e})}" .hass="${this.hass}" .retention="${this.config?this.config.agents[this.agentId]?.retention||null:void 0}" @value-changed="${this._retentionChanged}"></ha-backup-config-retention>`} </ha-card> <ha-card> <div class="card-header"> ${this.hass.localize("ui.panel.config.backup.location.encryption.title")} </div> <div class="card-content"> <p> ${this.hass.localize("ui.panel.config.backup.location.encryption.description")} </p> ${u.oJ===this.agentId?n.qy` <ha-row-item> <span slot="headline"> ${this.hass.localize("ui.panel.config.backup.location.encryption.location_encrypted")} </span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.backup.location.encryption.location_encrypted_cloud_description")} </span> <ha-button href="https://www.nabucasa.com/config/backups/" target="_blank" slot="end" rel="noreferrer noopener" appearance="plain" size="small"> ${this.hass.localize("ui.panel.config.backup.location.encryption.location_encrypted_cloud_learn_more")} </ha-button> </ha-row-item> `:t?n.qy` <ha-row-item> <span slot="headline"> ${this.hass.localize("ui.panel.config.backup.location.encryption.location_encrypted")} </span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.backup.location.encryption.location_encrypted_description")} </span> <ha-button slot="end" @click="${this._turnOffEncryption}" variant="danger"> ${this.hass.localize("ui.panel.config.backup.location.encryption.encryption_turn_off")} </ha-button> </ha-row-item> `:n.qy` <ha-alert alert-type="warning" .title="${this.hass.localize("ui.panel.config.backup.location.encryption.warning_encryption_turn_off")}"> ${this.hass.localize("ui.panel.config.backup.location.encryption.warning_encryption_turn_off_description")} </ha-alert> <ha-row-item> <span slot="headline"> ${this.hass.localize("ui.panel.config.backup.location.encryption.location_unencrypted")} </span> <span slot="supporting-text"> ${this.hass.localize("ui.panel.config.backup.location.encryption.location_unencrypted_description")} </span> <ha-button slot="end" @click="${this._turnOnEncryption}"> ${this.hass.localize("ui.panel.config.backup.location.encryption.encryption_turn_on")} </ha-button> </ha-row-item> `} </div> </ha-card> `:n.qy`<ha-fade-in .delay="${1e3}"><ha-spinner></ha-spinner></ha-fade-in>`} </div> </hass-subpage> `}_isEncryptionTurnedOn(){const t=this.config?.agents[this.agentId];return!t||t.protected}async _fetchAgent(){try{const{agents:t}=await(0,u.P_)(this.hass),e=t.find(t=>t.agent_id===this.agentId);if(!e)throw new Error("Agent not found");this._agent=e}catch(t){this._error=t?.message||this.hass.localize("ui.panel.config.backup.details.error")}}async _updateAgentConfig(t){try{const e=this.config?.agents||{};e[this.agentId]={...e[this.agentId]||{},...t},await(0,u.gb)(this.hass,{agents:e}),(0,r.r)(this,"ha-refresh-backup-config")}catch(t){this._error=this.hass.localize("ui.panel.config.backup.location.save_error",{error:t.message})}}_retentionChanged(t){const e=t.detail.value;this._updateAgentConfig({retention:e})}async _updateAgentEncryption(t){this._updateAgentConfig({protected:t})}_turnOnEncryption(){this._updateAgentEncryption(!0)}async _turnOffEncryption(){await(0,y.showConfirmationDialog)(this,{title:this.hass.localize("ui.panel.config.backup.location.encryption.encryption_turn_off_confirm_title"),text:this.hass.localize("ui.panel.config.backup.location.encryption.encryption_turn_off_confirm_text"),confirmText:this.hass.localize("ui.panel.config.backup.location.encryption.encryption_turn_off_confirm_action"),dismissText:this.hass.localize("ui.common.cancel"),destructive:!0})&&this._updateAgentEncryption(!1)}constructor(...t){super(...t),this.narrow=!1,this.agents=[]}}_.styles=n.AH`.content{padding:28px 20px 0;max-width:690px;margin:0 auto;gap:var(--ha-space-6);display:grid;margin-bottom:24px}.card-content{padding:0 20px}.card-actions{display:flex;justify-content:flex-end}ha-row-item{--ha-row-item-padding-inline:0}ha-row-item img{width:48px}ha-row-item ha-svg-icon[slot=start]{--mdc-icon-size:48px;color:var(--primary-text-color)}.warning{color:var(--error-color)}.warning ha-svg-icon{color:var(--error-color)}ha-button.danger{--mdc-theme-primary:var(--error-color)}ha-backup-data-picker{display:block}ha-row-item::part(supporting-text){white-space:wrap}.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.error{background-color:var(--error-color)}.card-header{padding-bottom:8px}ha-spinner{margin:24px auto}ha-backup-config-retention{display:block;padding:16px}`,(0,s.Cg)([(0,o.MZ)({attribute:!1})],_.prototype,"hass",void 0),(0,s.Cg)([(0,o.MZ)({type:Boolean})],_.prototype,"narrow",void 0),(0,s.Cg)([(0,o.MZ)({attribute:"agent-id"})],_.prototype,"agentId",void 0),(0,s.Cg)([(0,o.MZ)({attribute:!1})],_.prototype,"config",void 0),(0,s.Cg)([(0,o.MZ)({attribute:!1})],_.prototype,"agents",void 0),(0,s.Cg)([(0,o.wk)()],_.prototype,"_agent",void 0),(0,s.Cg)([(0,o.wk)()],_.prototype,"_error",void 0),_=(0,s.Cg)([(0,o.EM)("ha-config-backup-location")],_),i()}catch(t){i(t)}})}};