/*! maintenance_supporter frontend 2.90.0 */ import{b as ft,g as $t,j as Y,k as wt}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-C7OGYVZI.js";import{e as Z,g as xt,h as kt}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-PDDZINC4.js";import{b as gt,c as yt,e as G,f as vt,h as bt}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-5XRT3AM7.js";import{a as $}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-WQXORDNI.js";import{A as z,B as pt,D as ut,E as B,J as X,K as ht,L as _t,O as mt,a as h,b as M,c as l,d as C,f as d,h as D,l as L,m as _,n as W,o as st,p as j,q as s,s as T,t as at,u as ot,v as lt,w as dt,x as y,y as U,z as ct}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-RAW6RFRE.js";var P=class extends D{constructor(){super(...arguments);this.docId="";this._url="";this._failed=!1;this._signedFor=""}updated(){this.hass&&this.docId&&this._signedFor!==this.docId&&(this._signedFor=this.docId,this._url="",this._failed=!1,this._sign())}async _sign(){try{this._url=await ft(this.hass,this.docId)}catch{this._failed=!0}}render(){return this._failed||!this.docId?d:this._url?l` this._failed=!0} /> `:l`
`}};P.styles=M` .wrap { display: inline-block; margin-top: 4px; } /* #161: uniform 96px tiles — several photos sit in a strip, so a tiny or portrait shot must not collapse its slot. */ img { width: 96px; height: 96px; object-fit: cover; border-radius: 6px; display: block; border: 1px solid var(--divider-color); box-sizing: border-box; } .ph { width: 96px; height: 96px; border-radius: 6px; background: var(--secondary-background-color, rgba(0,0,0,0.06)); margin-top: 4px; } `,h([L({attribute:!1})],P.prototype,"hass",2),h([L()],P.prototype,"docId",2),h([_()],P.prototype,"_url",2),h([_()],P.prototype,"_failed",2);customElements.get("maintenance-history-photo")||customElements.define("maintenance-history-photo",P);var v=class extends D{constructor(){super(...arguments);this._open=!1;this._saving=!1;this._error="";this._draft=null;this._originalSnapshot=null;this._partOptions=null;this._partQty={};this._partQtyOriginal="";this._photos=new kt(this,{entryId:()=>this._draft?.entry_id??"",hass:()=>this.hass});this._photosOriginal="";this._readingRows=[];this._readingText={};this._readingsOriginal=""}get _lang(){return T(this.hass)}openEdit(t){this._draft={...t},this._originalSnapshot={...t},this._error="",this._open=!0,this._partOptions=null,this._partQty={},this._partQtyOriginal="",this._photos.reset(t.photo_doc_ids??[]),this._photosOriginal=JSON.stringify(this._photos.ids),this._seedReadings(t),this._loadPartOptions()}_seedReadings(t){let n=[],r=new Set;for(let o of t.readings??[])r.has(o.id)||(r.add(o.id),n.push({id:o.id,name:o.name,unit:o.unit??null}));for(let o of t.reading_values??[])r.has(o.id)||(r.add(o.id),n.push({id:o.id,name:o.name,unit:o.unit??null}));this._readingRows=n;let a={};for(let o of t.reading_values??[])a[o.id]=String(o.value);this._readingText=a,this._readingsOriginal=JSON.stringify(this._readingNumbers())}_readingNumbers(){let t={};for(let n of this._readingRows){let r=(this._readingText[n.id]??"").trim();if(r==="")continue;let a=parseFloat(r.replace(",","."));isNaN(a)||(t[n.id]=a)}return t}async _loadPartOptions(){let t=this._draft;if(t)try{let n=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/parts/overview"}),r=[];for(let o of n.parts||[]){let c=o.entry_id===t.entry_id,u=o.consumers.some(p=>p.entry_id===t.entry_id&&p.task_id===t.task_id);!c&&!u||r.push({part_id:o.part_id,name:o.name,entry_id:o.entry_id,foreign:!c,object_name:o.object_name})}for(let o of t.used_parts||[]){let c=o.entry_id||t.entry_id;r.some(u=>u.part_id===o.part_id&&u.entry_id===c)||r.push({part_id:o.part_id,name:o.name||o.part_id,entry_id:c,foreign:c!==t.entry_id,object_name:null})}let a={};for(let o of t.used_parts||[])a[`${o.entry_id||t.entry_id}:${o.part_id}`]=o.quantity??1;this._partOptions=r,this._partQty=a,this._partQtyOriginal=this._partSelectionKey()}catch{this._partOptions=[]}}_partSelectionKey(){return JSON.stringify(Object.entries(this._partQty).filter(([,t])=>t>0).sort(([t],[n])=>t.localeCompare(n)))}close(){this._open=!1,this._error="",this._draft=null,this._originalSnapshot=null,this._photos.discardOrphans()}_set(t,n){this._draft&&(this._draft={...this._draft,[t]:n})}async _delete(){if(!this._draft||!this._originalSnapshot)return;let t=this._lang;if(window.confirm(s("history_delete_confirm",t))){this._saving=!0,this._error="";try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/task/history/delete",entry_id:this._draft.entry_id,task_id:this._draft.task_id,timestamp:this._originalSnapshot.original_timestamp}),this.dispatchEvent(new CustomEvent("history-entry-saved",{detail:{entry_id:this._draft.entry_id,task_id:this._draft.task_id,deleted:!0},bubbles:!0,composed:!0})),this.close()}catch(n){this._error=$(n,t)}finally{this._saving=!1}}}async _save(){if(!(!this._draft||!this._originalSnapshot)){this._saving=!0,this._error="",this._photos.clearError();try{let t={type:"maintenance_supporter/task/history/update",entry_id:this._draft.entry_id,task_id:this._draft.task_id,original_timestamp:this._originalSnapshot.original_timestamp};if(this._draft.timestamp!==this._originalSnapshot.timestamp&&(t.timestamp=this._draft.timestamp),this._draft.notes!==this._originalSnapshot.notes&&(t.notes=this._draft.notes),this._draft.cost!==this._originalSnapshot.cost&&(t.cost=this._draft.cost),this._draft.duration!==this._originalSnapshot.duration&&(t.duration=this._draft.duration),this._draft.completed_by!==this._originalSnapshot.completed_by&&(t.completed_by=this._draft.completed_by),this._partOptions!==null&&this._partSelectionKey()!==this._partQtyOriginal&&(t.used_parts=(this._partOptions||[]).filter(r=>(this._partQty[`${r.entry_id}:${r.part_id}`]||0)>0).map(r=>({part_id:r.part_id,quantity:this._partQty[`${r.entry_id}:${r.part_id}`],...r.foreign?{entry_id:r.entry_id}:{}}))),this._draft.reading_value!==this._originalSnapshot.reading_value&&(t.reading_value=this._draft.reading_value??null),this._readingRows.length>0&&JSON.stringify(this._readingNumbers())!==this._readingsOriginal){let r=this._readingNumbers(),a={};for(let o of this._readingRows)a[o.id]=r[o.id]??null;t.reading_values=a}if(JSON.stringify(this._photos.ids)!==this._photosOriginal&&(t.photo_doc_ids=this._photos.ids),Object.keys(t).filter(r=>!["type","entry_id","task_id","original_timestamp"].includes(r)).length===0){this.close();return}await this.hass.connection.sendMessagePromise(t),this._photos.markAttached(),this.dispatchEvent(new CustomEvent("history-entry-saved",{detail:{entry_id:this._draft.entry_id,task_id:this._draft.task_id,new_timestamp:this._draft.timestamp},bubbles:!0,composed:!0})),this.close()}catch(t){this._error=$(t,this._lang)}finally{this._saving=!1}}}render(){if(!this._open||!this._draft)return d;let t=this._lang,n=this._draft,r=this._error||this._photos.errorText(t);return l`
`}_renderReadings(t,n){return this._readingRows.length>0?l`
${s("readings_section",n)} ${this._readingRows.map(r=>l` `)}
`:t.reading_value==null&&t.task_type!=="reading"?d:l` `}};v.styles=[xt,M` :host { display: contents; } .backdrop { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 100; } .dialog { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 95vw; max-width: 480px; background: var(--card-background-color, var(--ha-card-background, #1c1c1c)); color: var(--primary-text-color); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.4); padding: 20px; display: flex; flex-direction: column; gap: 12px; z-index: 101; max-height: 90vh; overflow: auto; } h2 { margin: 0; font-size: 18px; } .entry-type { display: flex; align-items: center; gap: 6px; color: var(--secondary-text-color); font-size: 13px; } label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; } label span { color: var(--secondary-text-color); } .row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } input, textarea { padding: 8px; font-size: 14px; background: var(--secondary-background-color, #2c2c2c); color: var(--primary-text-color); border: 1px solid var(--divider-color, #444); border-radius: 6px; width: 100%; box-sizing: border-box; font-family: inherit; } .delete-entry { margin-right: auto; color: var(--error-color, #d32f2f); background: transparent; border: 1px solid var(--error-color, #d32f2f); border-radius: 6px; padding: 6px 10px; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; } .delete-entry ha-icon { --mdc-icon-size: 18px; } .actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; } button { padding: 8px 16px; font-size: 14px; border-radius: 6px; cursor: pointer; border: none; font-weight: 500; } button.cancel { background: transparent; color: var(--primary-text-color); border: 1px solid var(--divider-color); } button.save { background: var(--primary-color); color: var(--text-primary-color, white); } button[disabled] { opacity: 0.5; cursor: wait; } .error { color: var(--error-color, #d32f2f); font-size: 13px; padding: 8px; background: rgba(211,47,47,0.1); border-radius: 6px; } /* #130: parts on the entry */ .parts-block { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--divider-color, #444); border-radius: 6px; padding: 8px; } .parts-title { color: var(--secondary-text-color); font-size: 13px; } .part-row-edit { display: flex; flex-direction: row; align-items: center; gap: 8px; font-size: 14px; } .part-row-edit input[type="checkbox"] { width: auto; } .part-label { flex: 1; color: var(--primary-text-color); } .part-qty { width: 76px; } /* #161 phase 2: readings on the entry */ .readings-block { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--divider-color, #444); border-radius: 6px; padding: 8px; } .reading-row-edit { display: flex; flex-direction: row; align-items: center; gap: 8px; font-size: 14px; } .reading-row-name { flex: 1; color: var(--primary-text-color); min-width: 0; } .reading-row-input { width: 140px; font-variant-numeric: tabular-nums; } /* #161: photos on the entry */ .photos-block { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--divider-color, #444); border-radius: 6px; padding: 8px; } .photo-strip { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 6px; } .photo-tile { position: relative; width: fit-content; } .photo-remove { position: absolute; top: -4px; right: -8px; width: 22px; height: 22px; border-radius: 50%; border: none; background: var(--error-color, #db4437); color: #fff; cursor: pointer; font-size: 11px; line-height: 1; padding: 0; } /* the camera / gallery pickers come from photoPickerStyles (ms-photo-picker) */ .photos-hint { font-size: 12px; color: var(--secondary-text-color); } `],h([L({attribute:!1})],v.prototype,"hass",2),h([_()],v.prototype,"_open",2),h([_()],v.prototype,"_saving",2),h([_()],v.prototype,"_error",2),h([_()],v.prototype,"_draft",2),h([_()],v.prototype,"_partOptions",2),h([_()],v.prototype,"_partQty",2),h([_()],v.prototype,"_readingRows",2),h([_()],v.prototype,"_readingText",2);customElements.get("maintenance-history-edit-dialog")||customElements.define("maintenance-history-edit-dialog",v);function Qt(e,i){if(i<=0)return 0;let t=typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):0;return t<0?0:t%i}function Xt(e){return!!(e?.phases&&e.phase_sequence&&e.phase_sequence.length>0)}function tt(e){if(!e||!Xt(e))return null;let i=e.phase_sequence,t=Qt(e.phase_cursor,i.length),n=i[t],r=e.phases?.[n];return r?{id:n,name:r.name,index:t,count:i.length,notes:r.notes,checklist:r.checklist!==void 0?r.checklist:e.checklist??[],consumesParts:r.consumes_parts!==void 0?r.consumes_parts:e.consumes_parts??[],requiredFields:r.required_completion_fields!==void 0?r.required_completion_fields:e.required_completion_fields??[]}:null}function N(e){let i=tt(e);return i?`${i.index+1}/${i.count} \xB7 ${i.name}`:""}function At(e){let i=e.task??null,t=i?tt(i):null,n=t?t.consumesParts:i?.consumes_parts||[],r=!!i?.part_ref,a=e.objects.find(u=>u.entry_id===e.entryId)?.parts||[],o=r?a.find(u=>u.id===i.part_ref.part_id):void 0,c=e.checklistsEnabled??!0;return{entry_id:e.entryId,task_id:e.taskId,task_name:e.taskName,checklist:t?c?t.checklist:[]:e.checklist??[],adaptive_enabled:!!e.adaptiveEnabled,required_completion_fields:t?t.requiredFields:i?.required_completion_fields||[],task_type:i?.type||"",reading_unit:i?.reading_unit||"",readings:i?.readings||[],reading_history:vt(i?.history),parts:r?[]:yt({consumes_parts:n},e.entryId,e.objects,e.lang),consumes_parts:r?[]:n,phase_label:t?N(i):"",require_tag_scan:!!i?.require_tag_scan,restock_default:r?o?.restock_quantity??1:null,restock_unit_cost:r?o?.cost??null:null,currency_symbol:j({currency_symbol:e.currencySymbol}),consumes_info:n.map(u=>gt(u,e.entryId,e.objects,e.lang)),checklist_prefill:i?.checklist_progress||{},via_tag_scan:!!e.viaTagScan}}function Et(e,i,t){e.entryId=i.entry_id,e.taskId=i.task_id,e.taskName=i.task_name,e.lang=t,e.checklist=i.checklist??[],e.adaptiveEnabled=!!i.adaptive_enabled,e.requiredFields=i.required_completion_fields??[],e.taskType=i.task_type??"",e.readingUnit=i.reading_unit??"",e.readings=i.readings??[],e.readingHistory=i.reading_history??[],e.parts=i.parts??[],e.consumesParts=i.consumes_parts??[],e.phaseLabel=i.phase_label??"",e.requireTagScan=!!i.require_tag_scan,e.restockDefault=i.restock_default??null,e.restockUnitCost=i.restock_unit_cost??null,e.currencySymbol=j(i),e.consumesInfo=i.consumes_info??[],e.checklistPrefill=i.checklist_prefill??{},e.viaTagScan=!!i.via_tag_scan,e.open({viaTagScan:!!i.via_tag_scan})}function et(e,i,t,n){let r=t,a=u=>typeof u=="string"?u:null,o=u=>typeof u=="number"?u:null,c=a(r.timestamp)??"";return{entry_id:e,task_id:i,original_timestamp:c,type:a(r.type)||"completed",timestamp:c,notes:a(r.notes),cost:o(r.cost),duration:o(r.duration),completed_by:a(r.completed_by),used_parts:Array.isArray(r.used_parts)?r.used_parts:null,photo_doc_ids:Z(r),reading_value:o(r.reading_value),reading_values:G(r),readings:n?.readings??[],task_type:n?.type??null,reading_unit:n?.reading_unit??null}}async function Je(e,i,t,n){let a=(await e.connection.sendMessagePromise({type:"maintenance_supporter/object",entry_id:i})).tasks?.find(c=>c.id===t),o=a?.history?.find(c=>c.timestamp===n);return!a||!o?null:et(i,t,o,a)}var Lt=e=>typeof e=="number"&&Number.isInteger(e)&&e>0;function te(e){return e&&Lt(e.ref_no)?String(e.ref_no):null}function Tt(e,i){let t=te(e);return t&&i&&Lt(i.ref_no)?`${t}.${i.ref_no}`:null}function ti(e){let i=/^(\d+)(?:\.(\d+)(?:-(\d+))?)?$/.exec(e.trim());return i?{object:Number(i[1]),task:i[2]?Number(i[2]):null,entry:i[3]?Number(i[3]):null}:null}function Ht(e,i){return e?l`#${e}`:d}var ee={\u00DF:"s","\u1E9E":"s",\u00E6:"a",\u0153:"o",\u00F8:"o",\u0111:"d",\u00F0:"d",\u00FE:"t",\u0142:"l",\u0131:"i"},Dt=10,ie=7,it=4,It=2,ne=5,Pt=3,re=/[a-z0-9]+/g;function K(e){let i="";for(let t of e.toLowerCase()){if(t.charCodeAt(0)<128&&t.length===1){i+=t;continue}let n=ee[t];if(n){i+=n;continue}let r=t.normalize("NFKD")[0]||t;i+=r.charCodeAt(0)<128?r:t}return i}function St(e){return K(e).match(re)||[]}function se(e){return K(e).replace(/[^a-z0-9]+/g,"")}function ae(e){return e.replace(/ue/g,"u").replace(/oe/g,"o").replace(/ae/g,"a").replace(/ss/g,"s")}function oe(e){let i=[];for(let t of St(e)){let n=[t],r=ae(t);r&&r!==t&&n.push(r),i.push(n)}return i}function Mt(e,i){if(e===i)return!0;let t=e.length,n=i.length;if(Math.abs(t-n)>1)return!1;if(t===n){let p=[];for(let f=0;fn?[e,i]:[i,e],o=0,c=0,u=!1;for(;o=Pt&&i.includes(n)){t=Math.max(t,it);continue}n.length>=ne&&tn.length&&Mt(n,i.slice(0,n.length)))&&(t=It)}return t}function de(e,i){let t=0;for(let n of St(i))if(t=Math.max(t,le(e,n)),t===Dt)return t;if(t=Pt&&n.includes(r))return it}return t}function Rt(e,i){if(!e)return!1;let t=oe(i);if(!t.length){let n=K(i.trim());return n.length>0&&K(e).includes(n)}return ce(t,[{text:e,weight:1}])>0}function ce(e,i){if(!e.length)return 0;let t=i.filter(r=>r.text),n=0;for(let r of e){let a=0;for(let o of t){let c=de(r,o.text)*o.weight;c>a&&(a=c)}if(a===0)return 0;n+=a}return n}var pe=["completed","reset","skipped"],ue=["completed","skipped","missed","reset","triggered","trigger_replaced","trigger_removed"];function ci(e,i){let t=i.lang;return l`
${ue.map(n=>{let r=e.history.filter(a=>a.type===n).length;return r===0?d:l` i.setFilter(i.filter===n?null:n)}> ${s(n,t)} (${r}) `})} ${i.filter?l`i.setFilter(null)}>${s("show_all",t)}`:d}
i.setSearch(n.target.value)} />
`}function pi(e,i){let t=i.lang,n=i.filter?e.history.filter(r=>r.type===i.filter):e.history;if(i.search){let r=i.search.toLowerCase();n=n.filter(a=>Rt(a.notes,i.search)||(Ct(i,a)??"").toLowerCase().endsWith(r))}return n.length===0?l`

${s("no_history",t)}

`:l`
${[...n].reverse().map(r=>nt(r,i))}
`}function Ct(e,i){return e.taskRef&&i.ref_no?`${e.taskRef}-${i.ref_no}`:null}function he(e,i){let t=Z(i);return t.length>0?l`
${t.map(n=>l``)}
`:d}function _e(e,i){let t=i.lang,n=o=>y(o,t,{maximumFractionDigits:3}),r=o=>o==null?"":` (${o>=0?"+":""}${n(o)})`,a=G(e);return a.length>0?l`
${a.map(o=>l` ${o.name} ${n(o.value)}${o.unit?` ${o.unit}`:""}${r(i.readingSlotDelta?.(e,o.id))} `)}
`:e.reading_value!=null?l`
${s("reading_label",t)} ${n(e.reading_value)}${i.readingUnit?` ${i.readingUnit}`:""}${r(i.readingDelta?.(e))}
`:d}function nt(e,i,t={}){let n=i.lang,{compact:r=!1,showRef:a=!0,showBadges:o=!0,showEdit:c=!0}=t,u=c&&pe.includes(e.type);return l`
${r?d:l`
`}
${s(e.type,n)} ${a?Ht(Ct(i,e),s("ref_number",n)):d} ${o&&e.phase_id?l`${i.phaseNames?.[e.phase_id]||e.phase_id}`:d} ${o&&e.auto?l`${s("history_auto",n)}`:d} ${u?l``:d}
${pt(e.timestamp,n)}
${e.notes?l`
${e.notes}
`:d} ${he(i.hass,e)} ${_e(e,i)} ${e.cost!=null||e.duration!=null||e.trigger_value!=null?l`
${e.cost!=null?l`${s("cost",n)}: ${U(e.cost,i.currencySymbol,n)}`:d} ${e.duration!=null?l`${s("duration",n)}: ${B(e.duration,n)}`:d} ${e.trigger_value!=null?l`${s("trigger_val",n)}: ${e.trigger_value}`:d}
`:d}
`}function m(e){return e.toFixed(1)}function _i(e,i,t=4){if(!isFinite(e)||!isFinite(i))return{ticks:[],niceMin:0,niceMax:1};if(e===i){let p=Math.abs(e)*.1||1;e-=p,i+=p}let n=i-e,r=Math.pow(10,Math.floor(Math.log10(n/Math.max(1,t)))),a=r;for(let p of[1,2,5,10])if(a=r*p,n/a<=t+.5)break;let o=Math.floor(e/a)*a,c=Math.ceil(i/a)*a,u=[];for(let p=o;p<=c+a*1e-6;p+=a)u.push(Math.abs(p)({maximumFractionDigits:r});return t>=1e6?y(e/1e6,i,n(t>=1e7?0:1))+"M":t>=1e4?y(e/1e3,i,n(0))+"k":t>=1e3?y(e/1e3,i,n(1))+"k":t>=100?y(e,i,n(0)):t>=1?y(e,i,n(1)):t===0?"0":y(e,i,n(2))}function fi(e,i,t){let n=y(e,t,{maximumFractionDigits:Math.abs(e)>=100?0:1});return i?`${n} ${i}`:n}function gi(e,i,t){return X(new Date(e),i,t)}function yi(e,i){let t=new Date(e);return`${X(t,i)}, ${ct(t,i)}`}function vi(e,i){return new Date(e).getFullYear()!==new Date(i).getFullYear()}function bi(e,i,t){if(t<2||i<=e)return[e,i];let n=[];for(let r=0;r
${s("weibull_reliability_curve",i)} ${me(n,i)}
${fe(n,r,a,o,i)} ${ge(t,i)} ${t?.confidence_interval_low!=null?ye(t,e,i):d} `}function me(e,i){let t,n,r;return e<.8?(t="early_failures",n="M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z",r="beta_early_failures"):e<=1.2?(t="random_failures",n="M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M13,17H11V15H13V17M13,13H11V7H13V13Z",r="beta_random_failures"):e<=3.5?(t="wear_out",n="M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4M12,6A6,6 0 0,1 18,12H12V6Z",r="beta_wear_out"):(t="highly_predictable",n="M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22A10,10 0 0,1 2,12A10,10 0 0,1 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z",r="beta_highly_predictable"),l` ${s(r,i)} (\u03B2=${y(e,i,2)}) `}function fe(e,i,t,n,r){let b=Math.max(t,n,i,1)*1.3,A=50,E=[];for(let x=0;x<=A;x++){let k=x/A*b,Yt=1-Math.exp(-Math.pow(k/i,e)),Kt=32+k/b*260,Jt=136-Yt*128;E.push([Kt,Jt])}let q=E.map(([x,k])=>`${m(x)},${m(k)}`).join(" "),Q="M32,136 "+E.map(([x,k])=>`L${m(x)},${m(k)}`).join(" ")+` L${m(E[A][0])},136 Z`,R=32+t/b*260,F=1-Math.exp(-Math.pow(t/i,e)),V=136-F*128,Gt=y((1-F)*100,r,0),rt=32+n/b*260,Zt=[0,.25,.5,.75,1];return l`
${Zt.map(x=>{let k=136-x*128;return C` ${y(x*100,r,0)}% `})} 0 ${Math.round(b/2)} ${Math.round(b)} ${t>0?C` R=${Gt}% `:d} ${n>0&&n!==t?C` `:d}
${s("weibull_failure_probability",r)} ${t>0?l` ${s("current_interval_marker",r)}`:d} ${n>0&&n!==t?l` ${s("recommended_marker",r)}`:d}
`}function ge(e,i){return l`
${s("characteristic_life",i)} ${Math.round(e.weibull_eta)} ${s("days",i)}
${e.weibull_r_squared!=null?l`
${s("weibull_r_squared",i)} ${y(e.weibull_r_squared,i,3)}
`:d}
`}function ye(e,i,t){let n=e.confidence_interval_low,r=e.confidence_interval_high,a=i.suggested_interval??i.interval_days??0,o=i.interval_days??0,c=Math.max(0,n-5),p=r+5-c,f=(n-c)/p*100,S=(r-n)/p*100,O=(a-c)/p*100,b=o>0?(o-c)/p*100:-1;return l`
${s("confidence_interval",t)}: ${a} ${s("days",t)} (${n}\u2013${r})
${b>=0?l`
`:d}
${s("confidence_conservative",t)} (${n}${s("days",t).charAt(0)}) ${s("confidence_aggressive",t)} (${r}${s("days",t).charAt(0)})
`}function jt(e,i,t){let n=e.degradation_trend!=null&&e.degradation_trend!=="insufficient_data",r=e.days_until_threshold!=null,a=e.environmental_factor!=null&&e.environmental_factor!==1;if(!n&&!r&&!a)return d;let o=e.degradation_trend==="rising"?"M16,6L18.29,8.29L13.41,13.17L9.41,9.17L2,16.59L3.41,18L9.41,12L13.41,16L19.71,9.71L22,12V6H16Z":e.degradation_trend==="falling"?"M16,18L18.29,15.71L13.41,10.83L9.41,14.83L2,7.41L3.41,6L9.41,12L13.41,8L19.71,14.29L22,12V18H16Z":"M22,12L18,8V11H3V13H18V16L22,12Z";return l`
${e.sensor_prediction_urgency?l`
${s("sensor_prediction_urgency",i).replace("{days}",String(Math.round(e.days_until_threshold||0)))}
`:d}
${s("sensor_prediction",i)}
${n?l`
${s("degradation_trend",i)} ${s("trend_"+e.degradation_trend,i)} ${e.degradation_rate!=null?l`${e.degradation_rate>0?"+":""}${y(e.degradation_rate,i,Math.abs(e.degradation_rate)>=10?0:1)} ${e.trigger_entity_info?.unit_of_measurement||""}/${s("day_short",i)}`:d}
`:d} ${r?l`
${s("days_until_threshold",i)} ${e.days_until_threshold===0?s("threshold_exceeded",i):"~"+Math.round(e.days_until_threshold)+" "+s("days",i)} ${e.threshold_prediction_date?l`${z(e.threshold_prediction_date,i)}`:d} ${e.threshold_prediction_confidence?l``:d} ${(e.prediction_cycles??0)>0?l`${s("prediction_cycles",i)}: ${e.prediction_cycles}`:d}
`:d} ${a&&t.environmental?l`
${s("environmental_adjustment",i)} ${y(e.environmental_factor,i,2)}x ${e.environmental_entity?l`_t(c,e.environmental_entity)}>${e.environmental_entity}`:d}
`:d}
`}function zt(e,i,t,n){let r=Math.max(e||1,i);return l`
${s("current",n)}: ${e??"\u2014"} ${e!=null?s("days",n):""}
${s("recommended",n)}: ${i} ${s("days",n)} ${s(`confidence_${t}`,n)}
`}var Nt=["month_jan","month_feb","month_mar","month_apr","month_may","month_jun","month_jul","month_aug","month_sep","month_oct","month_nov","month_dec"];function qt(e,i,t){if(!t.seasonal||!e.seasonal_factor||e.seasonal_factor===1)return d;let n=Nt.map(c=>s(c,i)),r=new Date().getMonth(),a=e.seasonal_factors||e.interval_analysis?.seasonal_factors||null,o=a&&a.length===12?a:n.map((c,u)=>{let p=e.seasonal_factor||1,f=Math.sin((u-6)*Math.PI/6)*.3;return Math.max(.7,Math.min(1.3,p+f))});return l`

${s("seasonal_awareness",i)}

${o.map((c,u)=>{let p=c*40,f=c<.9?"low":c>1.1?"high":"normal";return l`
`})}
${s("shorter",i)} ${s("normal",i)} ${s("longer",i)}
`}function Ft(e,i){return ve(e,i)}function ve(e,i){let t=e.seasonal_factors??e.interval_analysis?.seasonal_factors;if(!t||t.length!==12)return d;let n=e.interval_analysis?.seasonal_reason,r=new Date().getMonth(),a=300,o=100,c=8,p=o-c-4,f=Math.max(...t,1.5),S=a/12,O=S*.65,b=c+p-1/f*p;return l`
${s("seasonal_chart_title",i)} ${n?l`${n==="learned"?s("seasonal_learned",i):s("seasonal_manual",i)}`:d}
${t.map((A,E)=>{let q=A/f*p,Q=E*S+(S-O)/2,R=c+p-q,F=E===r,V=A<1?"var(--success-color, #4caf50)":A>1?"var(--warning-color, #ff9800)":"var(--secondary-text-color)";return C` `})}
${Nt.map((A,E)=>l`${s(A,i)}`)}
`}var g=class extends D{constructor(){super(...arguments);this._open=!1;this._entryId=null;this._taskId=null;this._task=null;this._objectName="";this._taskRef=null;this._busy=!1;this._error="";this._showSkip=!1;this._showReset=!1;this._showDetails=!1;this._showAdaptive=!1;this._skipReason="";this._resetDate="";this._features={adaptive:!1,predictions:!1,seasonal:!1,environmental:!1,budget:!1,groups:!1,checklists:!1,schedule_time:!1,completion_actions:!1};this._toast="";this._featuresLoaded=!1;this._currencySymbol=""}get _lang(){return T(this.hass)}async openFor(t,n){this._entryId=t,this._taskId=n,this._error="",this._showSkip=!1,this._showReset=!1,this._showAdaptive=!1,this._skipReason="",this._resetDate=$t(new Date),this._open=!0,await Promise.all([this._loadTask(),this._loadFeatures()])}async _loadFeatures(){if(!this._featuresLoaded)try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/settings"});t?.features&&(this._features={...this._features,...t.features}),this._currencySymbol=j(t?.budget),lt(t?.budget),this._featuresLoaded=!0}catch{}}close(){this._open=!1,this._task=null,this._error=""}async _loadTask(){if(!(!this._entryId||!this._taskId))try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/object",entry_id:this._entryId});this._objectName=t.object?.name||"";let n=(t.tasks||[]).find(r=>r.id===this._taskId);this._task=n??null,this._taskRef=Tt(t.object,n)}catch(t){this._error=$(t,this._lang)}}async _runWs(t){this._busy=!0,this._error="";try{return await this.hass.connection.sendMessagePromise(t),this._busy=!1,!0}catch(n){return this._error=$(n,this._lang),this._busy=!1,!1}}_notifyChanged(t){this.dispatchEvent(new CustomEvent("task-action-fired",{detail:{entry_id:this._entryId,task_id:this._taskId,action:t},bubbles:!0,composed:!0}))}_onComplete(){!this._entryId||!this._taskId||!this._task||import("/maintenance_supporter_panelfiles/panel-chunks/dialog-mount-UGGXUPH3.js").then(async({openCompleteDialog:t})=>{let n=this._task,r=[];try{r=(await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/objects",compact:!0})).objects||[]}catch{}t(At({entryId:this._entryId,taskId:this._taskId,taskName:n.name,task:n,objects:r,lang:this._lang,checklist:n.checklist||[],adaptiveEnabled:!!n.adaptive_config?.enabled,currencySymbol:this._currencySymbol}))&&(this._notifyChanged("complete"),this.close())})}async _onSkipConfirm(){if(!this._entryId||!this._taskId)return;await this._runWs({type:"maintenance_supporter/task/skip",entry_id:this._entryId,task_id:this._taskId,reason:this._skipReason.trim()||null})&&(this._notifyChanged("skip"),this.close())}async _onResetConfirm(){if(!this._entryId||!this._taskId)return;await this._runWs({type:"maintenance_supporter/task/reset",entry_id:this._entryId,task_id:this._taskId,date:this._resetDate||void 0})&&(this._notifyChanged("reset"),this.close())}_onEdit(){!this._entryId||!this._taskId||import("/maintenance_supporter_panelfiles/panel-chunks/dialog-mount-UGGXUPH3.js").then(({openEditTaskDialog:t})=>{t(this._entryId,this._taskId),this.close()})}_onQr(){!this._entryId||!this._taskId||!this._task||import("/maintenance_supporter_panelfiles/panel-chunks/dialog-mount-UGGXUPH3.js").then(({openQrDialog:t})=>{t({entry_id:this._entryId,task_id:this._taskId,task_name:this._task.name,object_name:this._objectName}),this.close()})}async _onDelete(){if(!this._entryId||!this._taskId)return;let t=s("delete_task_confirm",this._lang)||`Delete "${this._task?.name}"?`;if(!window.confirm(t))return;await this._runWs({type:"maintenance_supporter/task/delete",entry_id:this._entryId,task_id:this._taskId})&&(this._notifyChanged("delete"),this.close())}async _onArchive(){if(!this._entryId||!this._taskId)return;await this._runWs({type:"maintenance_supporter/task/archive",entry_id:this._entryId,task_id:this._taskId})&&(this._notifyChanged("archive"),this.close())}async _onUnarchive(){if(!this._entryId||!this._taskId)return;await this._runWs({type:"maintenance_supporter/task/unarchive",entry_id:this._entryId,task_id:this._taskId})&&(this._notifyChanged("unarchive"),this.close())}_onOpenInPanel(){if(!this._entryId||!this._taskId)return;let t=`/maintenance-supporter?entry_id=${encodeURIComponent(this._entryId)}&task_id=${encodeURIComponent(this._taskId)}`;history.pushState(null,"",t),window.dispatchEvent(new CustomEvent("location-changed")),this.close()}async _applySuggestion(){if(!this._entryId||!this._taskId||!this._task?.suggested_interval)return;await this._runWs({type:"maintenance_supporter/task/apply_suggestion",entry_id:this._entryId,task_id:this._taskId,interval:this._task.suggested_interval})&&(this._toast=s("suggestion_applied",this._lang),this._notifyChanged("apply_suggestion"),await this._loadTask(),setTimeout(()=>{this._toast=""},2500))}async _reanalyzeInterval(){if(!(!this._entryId||!this._taskId)){this._busy=!0,this._error="";try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/task/analyze_interval",entry_id:this._entryId,task_id:this._taskId});this._toast=t.recommended_interval?`${s("reanalyze_result",this._lang)}: ${ut(t.recommended_interval,"days",this._lang)} (${t.data_points} pts)`:s("reanalyze_insufficient_data",this._lang),await this._loadTask(),setTimeout(()=>{this._toast=""},3500)}catch(t){this._error=$(t,this._lang)}finally{this._busy=!1}}}_onEditHistoryEntry(t){if(!this._entryId||!this._taskId)return;let n=et(this._entryId,this._taskId,t,this._task);import("/maintenance_supporter_panelfiles/panel-chunks/dialog-mount-UGGXUPH3.js").then(({openHistoryEditDialog:r})=>r(n))}_renderRecommendation(t){if(!this._features.adaptive||!t.suggested_interval||t.suggested_interval===t.interval_days)return d;let n=this._lang;return l`

${s("suggested_interval",n)}

${zt(t.interval_days,t.suggested_interval,t.interval_confidence||"medium",n)}
`}_renderAdaptive(t){let n=this._lang,r=this._features.adaptive&&t.suggested_interval&&t.suggested_interval!==t.interval_days,a=t.degradation_trend!=null&&t.degradation_trend!=="insufficient_data"||t.days_until_threshold!=null||t.environmental_factor!=null&&t.environmental_factor!==1,o=this._features.adaptive&&t.interval_analysis?.weibull_beta!=null&&t.interval_analysis?.weibull_eta!=null,c=this._features.seasonal&&t.seasonal_factor&&t.seasonal_factor!==1;return!r&&!a&&!o&&!c?l`
${s("adaptive_no_data",n)}
`:l`
${this._toast?l`
${this._toast}
`:d} ${r?this._renderRecommendation(t):d} ${a?jt(t,n,this._features):d} ${o?Ot(t,n):d} ${c?l` ${qt(t,n,this._features)} ${t.seasonal_factors?.length===12||t.interval_analysis?.seasonal_factors?.length===12?Ft(t,n):d} `:d}
`}_renderDetails(t){let n=this._lang,r=t.history||[],a=r.filter(u=>u.type==="completed"),o=a.reduce((u,p)=>u+(typeof p.cost=="number"?p.cost:0),0),c=(()=>{let u=a.map(p=>typeof p.duration=="number"?p.duration:null).filter(p=>p!=null);return u.length?Math.round(u.reduce((p,f)=>p+f,0)/u.length):null})();return l`
${s("times_performed",n)} ${a.length}
${s("total_cost",n)} ${U(o,this._currencySymbol,n)}
${s("avg_duration",n)} ${B(c,n)}
${s("history",n)} ${r.length}
${r.length===0?l`
${s("history_empty",n)}
`:l`
${[...r].reverse().slice(0,20).map(u=>nt(u,{lang:n,hass:this.hass,currencySymbol:this._currencySymbol,openEdit:p=>this._onEditHistoryEntry(p),readingUnit:t.reading_unit,readingSlotDelta:(p,f)=>bt(r,p,f),taskRef:this._taskRef},{compact:!0}))} ${r.length>20?l`
… +${r.length-20} ${s("older_entries",n)}
`:d}
`}
`}render(){if(!this._open)return d;let t=this._lang,n=this._task,r=this.hass?.user?.is_admin??!0;return l`
`}};g.styles=[mt,M` :host { display: contents; } .backdrop { position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,0.5); } .dialog { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 95vw; max-width: 460px; max-height: 92vh; overflow: auto; background: var(--card-background-color, var(--ha-card-background, #1c1c1c)); color: var(--primary-text-color); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.4); padding: 20px; display: flex; flex-direction: column; gap: 14px; z-index: 101; } .header { display: flex; flex-direction: column; gap: 6px; } .title { display: flex; align-items: center; gap: 10px; } .status-dot { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; } .task-name { font-size: 18px; font-weight: 600; } .object { font-size: 13px; color: var(--secondary-text-color); } .link-inline { background: transparent; border: none; padding: 0; cursor: pointer; color: var(--primary-color); font-size: inherit; font-family: inherit; } .link-inline:hover { text-decoration: underline; } .quick-info { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; color: var(--secondary-text-color); padding-top: 4px; border-top: 1px solid var(--divider-color); } .quick-info strong { color: var(--primary-text-color); font-weight: 500; } .actions { display: flex; gap: 8px; } .actions.primary-row { gap: 6px; } .actions.primary-row .btn { flex: 1; } .actions.primary-row ha-button { flex: 1; } /* Edit + QR are admin-tools — left-align as a group; Delete is destructive so it gets pushed to the far right with margin-left:auto for visual separation. Earlier this row was flex-end which left a strange empty gap on the left (user feedback). */ .actions.secondary-row { padding-top: 8px; border-top: 1px solid var(--divider-color); justify-content: flex-start; } .actions.secondary-row .btn.danger, .actions.secondary-row ha-button.danger { margin-left: auto; } .actions.secondary-row ha-button { --ha-button-font-size: 13px; } .btn { padding: 8px 12px; font-size: 14px; border-radius: 6px; cursor: pointer; border: 1px solid var(--divider-color); background: var(--secondary-background-color, transparent); color: var(--primary-text-color); font-weight: 500; display: inline-flex; align-items: center; gap: 6px; transition: background 0.12s; } .btn:hover { background: var(--state-icon-color, rgba(255,255,255,0.06)); } .btn[disabled] { opacity: 0.5; cursor: wait; } .btn.primary { background: var(--primary-color); color: var(--text-primary-color, white); border-color: var(--primary-color); } .btn.cancel { background: transparent; } .btn.ghost { padding: 6px 10px; font-size: 13px; } .btn.danger { color: var(--error-color); } .btn ha-icon { --mdc-icon-size: 18px; } .inline-form { display: flex; flex-direction: column; gap: 8px; } .inline-form label { font-size: 13px; color: var(--secondary-text-color); } .inline-form input { padding: 8px; font-size: 14px; background: var(--secondary-background-color, #2c2c2c); color: var(--primary-text-color); border: 1px solid var(--divider-color, #444); border-radius: 6px; } .inline-actions { display: flex; gap: 8px; justify-content: flex-end; } .footer { display: flex; justify-content: center; padding-top: 4px; } .link { background: transparent; border: none; cursor: pointer; color: var(--primary-color); font-size: 13px; display: inline-flex; align-items: center; gap: 4px; } .link:hover { text-decoration: underline; } .link ha-icon { --mdc-icon-size: 14px; } .loading { padding: 24px; text-align: center; color: var(--secondary-text-color); } .error { padding: 8px; border-radius: 6px; background: rgba(211,47,47,0.1); color: var(--error-color, #d32f2f); font-size: 13px; } /* Details (expandable Show details section) */ .details-toggle { display: flex; justify-content: center; margin-top: 4px; } .details { display: flex; flex-direction: column; gap: 12px; border-top: 1px solid var(--divider-color); padding-top: 12px; } .stats-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; } .stat { display: flex; flex-direction: column; gap: 2px; background: var(--secondary-background-color, rgba(255,255,255,0.04)); padding: 8px; border-radius: 6px; align-items: center; } .stat-label { font-size: 11px; color: var(--secondary-text-color); text-transform: uppercase; letter-spacing: 0.5px; } .stat-value { font-size: 16px; font-weight: 600; } .history-header { display: flex; align-items: baseline; gap: 8px; font-size: 14px; } .history-count { font-size: 12px; color: var(--secondary-text-color); background: var(--secondary-background-color); padding: 2px 8px; border-radius: 999px; } .history-empty { color: var(--secondary-text-color); font-style: italic; font-size: 13px; } /* The rows themselves are the shared renderer's (.history-entry.compact + the history-* classes from sharedStyles); only the list chrome is local. */ .history-list { display: flex; flex-direction: column; max-height: 280px; overflow: auto; } .history-list .history-entry { padding: 6px 8px; border-radius: 6px; border-bottom: none; margin-bottom: 6px; background: var(--secondary-background-color, rgba(255,255,255,0.03)); } .history-list .history-date { font-size: 11px; } .history-list .history-details { font-size: 11px; } .history-more { padding: 8px; text-align: center; font-size: 12px; color: var(--secondary-text-color); font-style: italic; } /* Adaptive section — wraps the panel renderers (which assume sharedStyles are present) and adds dialog-specific layout. */ .adaptive-stack { display: flex; flex-direction: column; gap: 12px; border-top: 1px solid var(--divider-color); padding-top: 12px; } .adaptive-empty { padding: 16px; text-align: center; color: var(--secondary-text-color); font-style: italic; font-size: 13px; border-top: 1px solid var(--divider-color); } .toast { padding: 8px 12px; border-radius: 6px; background: rgba(76, 175, 80, 0.15); color: #4caf50; font-size: 13px; font-weight: 500; } /* The panel's recommendation-card uses ha-button. We use plain `:d} `:l`
${s("loading",t)}
`} `}_renderMetaRow(t){let n=this._lang,r=[];return t.area_id&&r.push([s("area",n),t.area_id]),t.manufacturer&&r.push([s("manufacturer",n),t.manufacturer]),t.model&&r.push([s("model",n),t.model]),t.serial_number&&r.push([s("serial_number_label",n),t.serial_number]),t.installation_date&&r.push([s("installed",n),t.installation_date]),t.warranty_expiry&&r.push([s("warranty",n),t.warranty_expiry]),t.documentation_url&&r.push([s("documentation_url_label",n),t.documentation_url]),r.length===0?d:l`
${r.map(([a,o])=>l`
${a} ${Vt(o)?l`${o}`:o}
`)}
`}};w.styles=M` :host { display: contents; } .backdrop { position: fixed; inset: 0; z-index: 100; background: rgba(0,0,0,0.5); } .dialog { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 95vw; max-width: 480px; max-height: 92vh; overflow: auto; background: var(--card-background-color, var(--ha-card-background, #1c1c1c)); color: var(--primary-text-color); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.4); padding: 20px; z-index: 101; display: flex; flex-direction: column; gap: 14px; } .header { display: flex; flex-direction: column; gap: 6px; } .title { font-size: 20px; font-weight: 600; } .meta { display: flex; flex-direction: column; gap: 4px; padding-top: 4px; border-top: 1px solid var(--divider-color); } .meta-item { display: flex; gap: 8px; font-size: 12px; } .meta-label { color: var(--secondary-text-color); min-width: 100px; } .meta-value { color: var(--primary-text-color); flex: 1; word-break: break-word; } .meta-value a { color: var(--primary-color); } .tasks-section, .notes-section { display: flex; flex-direction: column; gap: 6px; } .section-header { display: flex; align-items: baseline; gap: 8px; } .count { font-size: 11px; color: var(--secondary-text-color); background: var(--secondary-background-color); padding: 2px 8px; border-radius: 999px; } .empty { color: var(--secondary-text-color); font-style: italic; font-size: 13px; padding: 8px 0; } .task-list { display: flex; flex-direction: column; gap: 4px; max-height: 200px; overflow: auto; } .task-row { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: 6px; cursor: pointer; background: var(--secondary-background-color, rgba(255,255,255,0.03)); transition: background 0.12s; } .task-row:hover { background: var(--state-icon-color, rgba(255,255,255,0.06)); } .status-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; } .task-name { flex: 1; font-size: 14px; } .task-status { font-size: 11px; color: var(--secondary-text-color); text-transform: uppercase; } .notes-body { white-space: pre-wrap; font-size: 13px; padding: 8px; background: var(--secondary-background-color); border-radius: 6px; } .notes-body ha-markdown { white-space: normal; } .actions { display: flex; gap: 8px; padding-top: 8px; border-top: 1px solid var(--divider-color); } .actions .btn { flex: 1; } .btn { padding: 8px; font-size: 13px; border-radius: 6px; cursor: pointer; border: 1px solid var(--divider-color); background: var(--secondary-background-color, transparent); color: var(--primary-text-color); font-weight: 500; display: inline-flex; align-items: center; justify-content: center; gap: 6px; } .btn:hover { background: var(--state-icon-color, rgba(255,255,255,0.06)); } .btn[disabled] { opacity: 0.5; cursor: wait; } .btn.primary { background: var(--primary-color); color: var(--text-primary-color, white); border-color: var(--primary-color); } .btn.danger { color: var(--error-color); } .btn ha-icon { --mdc-icon-size: 16px; } .loading { padding: 24px; text-align: center; color: var(--secondary-text-color); } .error { padding: 8px; border-radius: 6px; background: rgba(211,47,47,0.1); color: var(--error-color); font-size: 13px; } `,h([L({attribute:!1})],w.prototype,"hass",2),h([_()],w.prototype,"_open",2),h([_()],w.prototype,"_entryId",2),h([_()],w.prototype,"_data",2),h([_()],w.prototype,"_busy",2),h([_()],w.prototype,"_error",2);customElements.get("maintenance-object-quick-actions-dialog")||customElements.define("maintenance-object-quick-actions-dialog",w);var Ut="maintenance-object-dialog",Bt="maintenance-task-dialog",be="maintenance-history-edit-dialog",xe="maintenance-complete-dialog",$e="maintenance-qr-dialog",ke="maintenance-task-quick-actions-dialog",we="maintenance-object-quick-actions-dialog";function J(){return document.querySelector("home-assistant")?.hass}function Ae(){return document.querySelector("home-assistant")?.shadowRoot??document.body}function H(e){let i=Ae(),t=i.querySelector(e)??document.body.querySelector(e);return t?t.parentNode!==i&&i.appendChild(t):(t=document.createElement(e),i.appendChild(t)),t}function I(e){let i=J();if(!i)return!1;e.hass=i;let t=T(i);return at(t)||ot(t).then(()=>{e.requestUpdate?.()}),dt(i.locale,i.config?.country),!0}function $n(e){return Y(e).then(i=>i.rowActionStyle)}function kn(){wt()}function wn(){let e=H(Ut);return I(e)?(e.openCreate(),!0):!1}function An(e,i){let t=H(Ut);return I(t)?(t.openEdit(e,i),!0):!1}function En(e="",i){let t=H(Bt);if(!I(t))return!1;let n=J();return n?((async()=>{let r=await Y(n),a=t;a.checklistsEnabled=r.features.checklists,a.scheduleTimeEnabled=r.features.schedule_time,a.completionActionsEnabled=r.features.completion_actions,a.defaultWarningDays=r.defaultWarningDays,a.openCreate(e,i)})(),!0):!1}function Ln(e,i){let t=H(Bt);if(!I(t))return!1;let n=J();return n?((async()=>{try{let[r,a]=await Promise.all([n.connection.sendMessagePromise({type:"maintenance_supporter/object",entry_id:e}),Y(n)]),o=(r.tasks||[]).find(u=>u.id===i);if(!o){console.warn(`openEditTaskDialog: task ${i} not found in entry ${e}`);return}let c=t;c.checklistsEnabled=a.features.checklists,c.scheduleTimeEnabled=a.features.schedule_time,c.completionActionsEnabled=a.features.completion_actions,c.defaultWarningDays=a.defaultWarningDays,await c.openEdit(e,o)}catch(r){console.warn("openEditTaskDialog: failed to load task/features",r)}})(),!0):!1}function Tn(e){let i=H(be);return I(i)?(i.openEdit(e),!0):!1}function Hn(e){let i=H(xe);return I(i)?(Et(i,e,T(J())),!0):!1}function In(e){let i=H($e);return I(i)?(i.openForTask(e.entry_id,e.task_id,e.object_name,e.task_name),!0):!1}function Mn(e,i){let t=H(ke);return I(t)?(t.openFor(e,i),!0):!1}function Dn(e){let i=H(we);return I(i)?(i.openFor(e),!0):!1}export{Vt as a,oe as b,ce as c,te as d,Tt as e,ti as f,Ht as g,Wt as h,Qt as i,Xt as j,tt as k,At as l,Et as m,m as n,_i as o,mi as p,fi as q,gi as r,yi as s,vi as t,bi as u,et as v,Je as w,ci as x,pi as y,nt as z,Ot as A,jt as B,zt as C,qt as D,Ft as E,$n as F,kn as G,wn as H,An as I,En as J,Ln as K,Tn as L,Hn as M,In as N,Mn as O,Dn as P};