/*! maintenance_supporter frontend 2.88.0 */ import{a as g,b as y}from"./chunk-CH4XIFVT.js";import"./chunk-KK4NNJHL.js";import{B as o,a as h,b as r,d as c,e as _,f as v,g as n,i as e,j as f,k as m,m as b}from"./chunk-ZBY2DACR.js";import{a as i}from"./chunk-62AO4XFY.js";var s=class extends _{constructor(){super(...arguments);this._config={type:""};this._state=null;this._busy=!1;this._error="";this._localStart="";this._localEnd="";this._localBuffer=7;this._dirty=!1;this._loaded=!1}setConfig(t){this._config=t}getCardSize(){return 2}get _lang(){return m(this.hass)}get _isAdmin(){return this.hass?.user?.is_admin??!0}updated(t){super.updated(t),f(this,t),t.has("hass")&&this.hass&&!this._loaded&&(this._loaded=!0,this._load(),b(this._lang).then(()=>this.requestUpdate()))}async _load(){try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/state"});this._state=t,this._localStart=t.start||"",this._localEnd=t.end||"",this._localBuffer=t.buffer_days??7,this._dirty=!1}catch(t){this._error=o(t,this._lang)}}async _toggleEnabled(t){this._busy=!0,this._error="";try{let a=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/update",enabled:t});this._state=a}catch(a){this._error=o(a,this._lang)}finally{this._busy=!1}}async _save(){if(this._isAdmin){this._busy=!0,this._error="";try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/update",start:this._localStart||null,end:this._localEnd||null,buffer_days:this._localBuffer});this._state=t,this._dirty=!1}catch(t){this._error=o(t,this._lang)}finally{this._busy=!1}}}async _endNow(){if(this._isAdmin&&window.confirm(e("vacation_end_now_confirm",this._lang))){this._busy=!0;try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/end_now"});this._state=t,this._localStart=t.start||"",this._localEnd=t.end||""}catch(t){this._error=o(t,this._lang)}finally{this._busy=!1}}}_onDeepLink(){history.pushState(null,"","/maintenance-supporter?ms_action=open_vacation"),window.dispatchEvent(new CustomEvent("location-changed"))}render(){let t=this._lang,a=this._state;if(!a)return r`
${e("loading",t)}
`;let p=a.is_active===!0,d=a.enabled===!0,u=a.exempt_task_ids?.length??0,$=p?e("vacation_status_active",t):d?e("vacation_status_scheduled",t):e("vacation_status_inactive",t),x=p?"active":d?"scheduled":"inactive";return r`
🏖️ ${this._config.title||e("vacation_mode",t)}
${$}
${this._error?r`
${this._error}
`:c} ${this._isAdmin?r`
this._toggleEnabled(l.target.checked)} >
{this._localStart=l.detail.value,this._dirty=!0}} >
{this._localEnd=l.detail.value,this._dirty=!0}} >
{this._localBuffer=parseInt(l.target.value,10)||0,this._dirty=!0}} />
${p?r``:c} ${u>0?r``:r``}
`:r`
${d&&a.start&&a.end?r`
${a.start} → ${a.end}
`:c}
`}
`}};s.styles=[y,h` .status-pill { font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 999px; text-transform: uppercase; letter-spacing: 0.5px; } .status-pill.active { background: rgba(76, 175, 80, 0.15); color: #4caf50; } .status-pill.scheduled { background: rgba(255, 152, 0, 0.15); color: #ff9800; } .status-pill.inactive { background: rgba(158, 158, 158, 0.15); color: var(--secondary-text-color); } .row.toggle-row { display: flex; align-items: center; justify-content: space-between; } .row.toggle-row label { font-size: 14px; color: var(--primary-text-color); } .dates-row { display: grid; grid-template-columns: 1fr 1fr 100px; gap: 10px; } .date-field.buffer label { white-space: nowrap; } .date-field { display: flex; flex-direction: column; gap: 4px; } .date-field label { font-size: 11px; color: var(--secondary-text-color); text-transform: uppercase; letter-spacing: 0.3px; } .date-field input { padding: 6px 8px; font-size: 13px; background: var(--secondary-background-color, #2c2c2c); color: var(--primary-text-color); border: 1px solid var(--divider-color); border-radius: 6px; font-family: inherit; } .date-field input:disabled { opacity: 0.5; cursor: not-allowed; } .actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .readonly { display: flex; flex-direction: column; gap: 8px; } `],i([v({attribute:!1})],s.prototype,"hass",2),i([n()],s.prototype,"_config",2),i([n()],s.prototype,"_state",2),i([n()],s.prototype,"_busy",2),i([n()],s.prototype,"_error",2),i([n()],s.prototype,"_localStart",2),i([n()],s.prototype,"_localEnd",2),i([n()],s.prototype,"_localBuffer",2),i([n()],s.prototype,"_dirty",2);customElements.get("maintenance-vacation-section-card")||customElements.define("maintenance-vacation-section-card",s);g({type:"maintenance-vacation-section-card",name:"Maintenance Supporter \u2014 Vacation",description:"Inline vacation mode toggle + dates",preview:!1});export{s as MaintenanceVacationSectionCard};