Files
home-assistant/custom_components/hacs/hacs_frontend/c.d3537c2e.js
2022-05-04 10:50:54 -07:00

181 lines
9.1 KiB
JavaScript

import{a as e,f as a,e as s,i,$ as t,at as o,o as n,j as r,r as l,n as c,H as d,m as h,P as p,Q as m,au as u,av as v,aj as g,ak as y,ae as f,s as _,d as x}from"./main-f3e781b1.js";import{a as b}from"./c.0a038163.js";import"./c.c4dc5ba3.js";import{n as k}from"./c.5c703026.js";import{s as $}from"./c.ecc9713e.js";import{m as w}from"./c.ac33c45a.js";import{u as z}from"./c.69bec4b9.js";import"./c.b85cccfb.js";import"./c.f41a074f.js";import"./c.3f18632e.js";import"./c.fb46b4a0.js";import"./c.9f27b448.js";e([c("ha-expansion-panel")],(function(e,a){return{F:class extends a{constructor(...a){super(...a),e(this)}},d:[{kind:"field",decorators:[s({type:Boolean,reflect:!0})],key:"expanded",value:()=>!1},{kind:"field",decorators:[s({type:Boolean,reflect:!0})],key:"outlined",value:()=>!1},{kind:"field",decorators:[s()],key:"header",value:void 0},{kind:"field",decorators:[s()],key:"secondary",value:void 0},{kind:"field",decorators:[i(".container")],key:"_container",value:void 0},{kind:"method",key:"render",value:function(){return t`
<div class="summary" @click=${this._toggleContainer}>
<slot class="header" name="header">
${this.header}
<slot class="secondary" name="secondary">${this.secondary}</slot>
</slot>
<ha-svg-icon
.path=${o}
class="summary-icon ${n({expanded:this.expanded})}"
></ha-svg-icon>
</div>
<div
class="container ${n({expanded:this.expanded})}"
@transitionend=${this._handleTransitionEnd}
>
<slot></slot>
</div>
`}},{kind:"method",key:"_handleTransitionEnd",value:function(){this._container.style.removeProperty("height")}},{kind:"method",key:"_toggleContainer",value:async function(){const e=!this.expanded;r(this,"expanded-will-change",{expanded:e}),e&&await k();const a=this._container.scrollHeight;this._container.style.height=`${a}px`,e||setTimeout((()=>{this._container.style.height="0px"}),0),this.expanded=e,r(this,"expanded-changed",{expanded:this.expanded})}},{kind:"get",static:!0,key:"styles",value:function(){return l`
:host {
display: block;
}
:host([outlined]) {
box-shadow: none;
border-width: 1px;
border-style: solid;
border-color: var(
--ha-card-border-color,
var(--divider-color, #e0e0e0)
);
border-radius: var(--ha-card-border-radius, 4px);
padding: 0 8px;
}
.summary {
display: flex;
padding: var(--expansion-panel-summary-padding, 0);
min-height: 48px;
align-items: center;
cursor: pointer;
overflow: hidden;
font-weight: 500;
}
.summary-icon {
transition: transform 150ms cubic-bezier(0.4, 0, 0.2, 1);
margin-left: auto;
}
.summary-icon.expanded {
transform: rotate(180deg);
}
.container {
overflow: hidden;
transition: height 300ms cubic-bezier(0.4, 0, 0.2, 1);
height: 0px;
}
.container.expanded {
height: auto;
}
.header {
display: block;
}
.secondary {
display: block;
color: var(--secondary-text-color);
font-size: 12px;
}
`}}]}}),a);let j=e([c("hacs-update-dialog")],(function(e,a){class i extends a{constructor(...a){super(...a),e(this)}}return{F:i,d:[{kind:"field",decorators:[s()],key:"repository",value:void 0},{kind:"field",decorators:[s({type:Boolean})],key:"_updating",value:()=>!1},{kind:"field",decorators:[s()],key:"_error",value:void 0},{kind:"field",decorators:[s({attribute:!1})],key:"_releaseNotes",value:()=>[]},{kind:"field",key:"_getRepository",value:()=>h(((e,a)=>e.find((e=>e.id===a))))},{kind:"method",key:"firstUpdated",value:async function(e){p(m(i.prototype),"firstUpdated",this).call(this,e);const a=this._getRepository(this.hacs.repositories,this.repository);a&&("commit"!==a.version_or_commit&&(this._releaseNotes=await u(this.hass,a.id),this._releaseNotes=this._releaseNotes.filter((e=>e.tag>a.installed_version))),this.hass.connection.subscribeEvents((e=>this._error=e.data),"hacs/error"))}},{kind:"method",key:"render",value:function(){var e;if(!this.active)return t``;const a=this._getRepository(this.hacs.repositories,this.repository);return a?t`
<hacs-dialog
.active=${this.active}
.title=${this.hacs.localize("dialog_update.title")}
.hass=${this.hass}
>
<div class=${n({content:!0,narrow:this.narrow})}>
<p class="message">
${this.hacs.localize("dialog_update.message",{name:a.name})}
</p>
<div class="version-container">
<div class="version-element">
<span class="version-number">${a.installed_version}</span>
<small class="version-text">${this.hacs.localize("dialog_update.downloaded_version")}</small>
</div>
<span class="version-separator">
<ha-svg-icon
.path=${v}
></ha-svg-icon>
</span>
<div class="version-element">
<span class="version-number">${a.available_version}</span>
<small class="version-text">${this.hacs.localize("dialog_update.available_version")}</small>
</div>
</div>
</div>
${this._releaseNotes.length>0?this._releaseNotes.map((e=>t`
<ha-expansion-panel
.header=${e.name&&e.name!==e.tag?`${e.tag}: ${e.name}`:e.tag}
outlined
?expanded=${1===this._releaseNotes.length}
>
${e.body?w.html(e.body,a):this.hacs.localize("dialog_update.no_info")}
</ha-expansion-panel>
`)):""}
${a.can_install?"":t`<ha-alert alert-type="error" .rtl=${b(this.hass)}>
${this.hacs.localize("confirm.home_assistant_version_not_correct",{haversion:this.hass.config.version,minversion:a.homeassistant})}
</ha-alert>`}
${"integration"===a.category?t`<p>${this.hacs.localize("dialog_download.restart")}</p>`:""}
${null!==(e=this._error)&&void 0!==e&&e.message?t`<ha-alert alert-type="error" .rtl=${b(this.hass)}>
${this._error.message}
</ha-alert>`:""}
</div>
<mwc-button
slot="primaryaction"
?disabled=${!a.can_install}
@click=${this._updateRepository}
raised
>
${this._updating?t`<ha-circular-progress active size="small"></ha-circular-progress>`:this.hacs.localize("common.update")}
</mwc-button
>
<div class="secondary" slot="secondaryaction">
<hacs-link .url=${this._getChanglogURL()||""}>
<mwc-button>${this.hacs.localize("dialog_update.changelog")}
</mwc-button>
</hacs-link>
<hacs-link .url="https://github.com/${a.full_name}">
<mwc-button>${this.hacs.localize("common.repository")}
</mwc-button>
</hacs-link>
</div>
</hacs-dialog>
`:t``}},{kind:"method",key:"_updateRepository",value:async function(){this._updating=!0;const e=this._getRepository(this.hacs.repositories,this.repository);e&&("commit"!==e.version_or_commit?await g(this.hass,e.id,e.available_version):await y(this.hass,e.id),"plugin"===e.category&&"storage"===this.hacs.status.lovelace_mode&&await z(this.hass,e,e.available_version),this._updating=!1,this.dispatchEvent(new Event("hacs-dialog-closed",{bubbles:!0,composed:!0})),"plugin"===e.category&&$(this,{title:this.hacs.localize("common.reload"),text:t`${this.hacs.localize("dialog.reload.description")}<br />${this.hacs.localize("dialog.reload.confirm")}`,dismissText:this.hacs.localize("common.cancel"),confirmText:this.hacs.localize("common.reload"),confirm:()=>{f.location.href=f.location.href}}))}},{kind:"method",key:"_getChanglogURL",value:function(){const e=this._getRepository(this.hacs.repositories,this.repository);if(e)return"commit"===e.version_or_commit?`https://github.com/${e.full_name}/compare/${e.installed_version}...${e.available_version}`:`https://github.com/${e.full_name}/releases`}},{kind:"get",static:!0,key:"styles",value:function(){return[_,x,l`
.content {
width: 360px;
display: contents;
}
ha-expansion-panel {
margin: 8px 0;
}
ha-expansion-panel[expanded] {
padding-bottom: 16px;
}
.secondary {
display: flex;
}
.message {
text-align: center;
margin: 0;
}
.version-container {
margin: 24px 0 12px 0;
width: 360px;
min-width: 100%;
max-width: 100%;
display: flex;
flex-direction: row;
}
.version-element {
display: flex;
flex-direction: column;
flex: 1;
padding: 0 12px;
text-align: center;
}
.version-text {
color: var(--secondary-text-color);
}
.version-number {
font-size: 1.5rem;
margin-bottom: 4px;
}
`]}}]}}),d);export{j as HacsUpdateDialog};