/*! maintenance_supporter frontend 2.70.0 */ import{a as I,f as E,h as T}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-UGIIDVTL.js";import{a as P,b as H}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-3L2PFMVS.js";import{a as z}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-J4OBOTUE.js";import{a as c,b as q,c as o,e as b,f as p,g as S,h as A,l as x,m as d,q as s,s as j}from"/maintenance_supporter_panelfiles/panel-chunks/chunk-VSV22GFT.js";var u={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},w=g=>(..._)=>({_$litDirective$:g,values:_}),f=class{constructor(_){}get _$AU(){return this._$AM._$AU}_$AT(_,e,t){this._$Ct=_,this._$AM=e,this._$Ci=t}_$AS(_,e){return this.update(_,e)}update(_,e){return this.render(...e)}};var y=class extends f{constructor(_){if(super(_),this.it=p,_.type!==u.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(_){if(_===p||_==null)return this._t=void 0,this.it=_;if(_===b)return _;if(typeof _!="string")throw Error(this.constructor.directiveName+"() called with a non-string value");if(_===this.it)return this._t;this.it=_;let e=[_];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}};y.directiveName="unsafeHTML",y.resultType=1;var M=w(y);var{I:Y}=S;var C=g=>g.strings===void 0;var R={},O=(g,_=R)=>g._$AH=_;var $=w(class extends f{constructor(g){if(super(g),g.type!==u.PROPERTY&&g.type!==u.ATTRIBUTE&&g.type!==u.BOOLEAN_ATTRIBUTE)throw Error("The `live` directive is not allowed on child or event bindings");if(!C(g))throw Error("`live` bindings can only contain a single expression")}render(g){return g}update(g,[_]){if(_===b||_===p)return _;let e=g.element,t=g.name;if(g.type===u.PROPERTY){if(_===e[t])return b}else if(g.type===u.BOOLEAN_ATTRIBUTE){if(!!_===e.hasAttribute(t))return b}else if(g.type===u.ATTRIBUTE&&e.getAttribute(t)===_+"")return b;return O(g),_}});var B=["EUR","USD","GBP","JPY","CHF","CAD","AUD","NZD","CNY","INR","BRL","CZK","PLN","RUB","SEK","NOK","DKK","UAH"],l=class extends A{constructor(){super(...arguments);this.budget=null;this._settings=null;this._loading=!0;this._importCsv="";this._importLoading=!1;this._includeHistory=!0;this._toast="";this._testingNotification=!1;this._personTargets=[];this._testingUser="";this._users=[];this._savedViews=[];this._vacEnabled=!1;this._vacStart="";this._vacEnd="";this._vacBuffer=3;this._vacExempt=new Set;this._vacIsActive=!1;this._vacWindowEnd=null;this._vacAllTasks=[];this._vacPreview=[];this._vacPreviewLoading=!1;this._vacSaving=!1;this._qrObjects=[];this._qrSelectedEntries=new Set;this._qrActions=new Set(["view"]);this._qrUrlMode="companion";this._qrBatchLoading=!1;this._qrBatchResults=[];this._qrObjectsLoaded=!1;this._exportObjects=[];this._exportSelectedEntries=new Set;this._exportObjectsLoaded=!1;this._docArchiveLoading=!1;this._loaded=!1;this._userService=null;this._sendTestNotification=async e=>{e?this._testingUser=e:this._testingNotification=!0;try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/global/test_notification",...e?{user_id:e}:{}}),a=t.message||(t.success?s("test_notification_success",this._lang):s("test_notification_failed",this._lang));this._showToast(a)}catch{this._showToast(s("test_notification_failed",this._lang))}finally{e?this._testingUser="":this._testingNotification=!1}};this._allTemplates=[];this._templateCategories={};this._tplOpenGroups=new Set;this._templatesRequested=!1}get _lang(){return j(this.hass)}updated(e){super.updated(e),e.has("hass")&&this.hass&&!this._loaded?(this._loaded=!0,this._userService=new z(this.hass),this._loadSettings(),this._loadUsers()):e.has("hass")&&this.hass&&this._userService&&this._userService.updateHass(this.hass)}async _loadUsers(){if(this._userService){try{this._users=await this._userService.getUsers()}catch{this._users=[]}this._loadNotifyTargets()}}async _loadNotifyTargets(){try{let e=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/notify/user_targets"});this._personTargets=e.targets||[]}catch{this._personTargets=[]}}async _loadSettings(){this._loading=!0;try{let e=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/settings"});this._settings=e,this._hydrateVacationFromSettings()}catch{}try{let e=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/views/list"});this._savedViews=e.views||[]}catch{}this._loading=!1}_hydrateVacationFromSettings(){let e=this._settings?.vacation;e&&(this._vacEnabled=e.enabled,this._vacStart=e.start||"",this._vacEnd=e.end||"",this._vacBuffer=e.buffer_days,this._vacExempt=new Set(e.exempt_task_ids||[]),this._vacIsActive=e.is_active,this._vacWindowEnd=e.window_end)}_renderBatteryNotesHint(e){let t=this._settings?.general?.battery_notes;if(!t||!t.devices)return p;let a=this._settings?.general?.battery_low_percent??20,i=t.default>a,n=s("bn_summary",e).replace("{name}","Battery Notes").replace("{pct}",String(t.default)).replace("{n}",String(t.devices)),r=(i?s("bn_above_floor",e).replace("{name}","Battery Notes"):s("bn_floor_decides",e)).replace("{floor}",String(a));return o`
${n.split(":")[0]}${n.slice(n.indexOf(":"))} ${t.overrides.length?o` · ${s("bn_overrides",e).replace("{n}",String(t.overrides.length+t.more))} ${t.overrides.map((h,m)=>o`${m?" \xB7 ":" "}${h.device_id?o`${h.name}`:h.name} (${h.threshold} %)`)} ${t.more?o` ${s("bn_more",e).replace("{n}",String(t.more))}`:p}`:p} ${r}
`}async _updateSetting(e,t){try{let a=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/global/update",settings:{[e]:t}});this._settings=a,this._showToast(s("settings_saved",this._lang)),this.dispatchEvent(new CustomEvent("settings-changed"))}catch{this._showToast(s("action_error",this._lang)),this.requestUpdate()}}_showToast(e){this._toast=e,setTimeout(()=>{this._toast=""},3e3)}_downloadFile(e,t,a){P(e,t,a)}render(){let e=this._lang;return this._loading||!this._settings?o`
Loading…
`:o` ${this._renderFeatures(e)} ${this._renderPanelAccess(e)} ${this._renderGeneral(e)} ${this._renderObjectsColumns(e)} ${this._settings.general.notifications_enabled?this._renderNotifications(e):p} ${this.features.budget?this._renderBudget(e):p} ${this._renderArchive(e)} ${this._renderVacation(e)} ${this._renderPrintQr(e)} ${this._renderImportExport(e)} ${this._renderTemplateToggles(e)} ${this._toast?o`
${this._toast}
`:p} `}scrollToSection(e){requestAnimationFrame(()=>{let t=this.shadowRoot;if(!t)return;let a=t.querySelector(`[data-section="${e}"]`)??t.querySelector(`[data-section-alt="${e}"]`);a&&a.scrollIntoView({behavior:"smooth",block:"start"})})}_renderPanelAccess(e){let t=new Set(this._settings.admin_panel_user_ids||[]),a=this._users.filter(r=>!r.is_admin),i=this._settings.operator_write_enabled??!1,n=(r,h)=>{let m=new Set(t);h?m.add(r):m.delete(r),this._updateSetting("admin_panel_user_ids",[...m])};return o`

${s("settings_panel_access",e)} ${i&&t.size>0?o`${t.size}`:p}

${s("settings_panel_access_desc",e)}

${i?a.length===0?o`
${s("no_non_admin_users",e)}
`:a.map(r=>o` `):p}
`}_renderFeatures(e){let t=this._settings.features,a=[{key:"adaptive",settingKey:"advanced_adaptive_visible",label:s("feat_adaptive",e),desc:s("feat_adaptive_desc",e)},{key:"predictions",settingKey:"advanced_predictions_visible",label:s("feat_predictions",e),desc:s("feat_predictions_desc",e)},{key:"seasonal",settingKey:"advanced_seasonal_visible",label:s("feat_seasonal",e),desc:s("feat_seasonal_desc",e)},{key:"environmental",settingKey:"advanced_environmental_visible",label:s("feat_environmental",e),desc:s("feat_environmental_desc",e)},{key:"budget",settingKey:"advanced_budget_visible",label:s("feat_budget",e),desc:s("feat_budget_desc",e)},{key:"groups",settingKey:"advanced_groups_visible",label:s("feat_groups",e),desc:s("feat_groups_desc",e)},{key:"checklists",settingKey:"advanced_checklists_visible",label:s("feat_checklists",e),desc:s("feat_checklists_desc",e)},{key:"schedule_time",settingKey:"advanced_schedule_time_visible",label:s("feat_schedule_time",e),desc:s("feat_schedule_time_desc",e)},{key:"completion_actions",settingKey:"advanced_completion_actions_visible",label:s("feat_completion_actions",e),desc:s("feat_completion_actions_desc",e)}];return o`

${s("settings_features",e)}

${s("settings_features_desc",e)}

${a.map(i=>o` `)}
`}async _loadTemplates(){if(!this._templatesRequested){this._templatesRequested=!0;try{let e=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/templates",language:this._lang});this._allTemplates=e.templates||[],this._templateCategories=e.categories||{}}catch{}}}_renderTemplateToggles(e){this._loadTemplates();let t=new Set(this._settings.disabled_template_ids||[]),a=new Map;for(let n of Object.keys(this._templateCategories))a.set(n,[]);for(let n of this._allTemplates)a.has(n.category)||a.set(n.category,[]),a.get(n.category).push(n);let i=n=>this._templateCategories[n]?.["name_"+e]||this._templateCategories[n]?.name_en||n;return o`

${s("settings_templates_label",e)}

${s("settings_templates_hint",e)}

${[...a.entries()].filter(([,n])=>n.length>0).map(([n,r])=>{let h=r.filter(v=>!t.has(v.id)).length,m=this._tplOpenGroups.has(n);return o`
this._toggleTplGroupOpen(n)} @keydown=${v=>{(v.key==="Enter"||v.key===" ")&&(v.preventDefault(),this._toggleTplGroupOpen(n))}} > ${i(n)} ${h}/${r.length} v.stopPropagation()} @change=${v=>this._toggleTemplateGroup(r.map(k=>k.id),v.target.checked)} />
${m?r.map(v=>o` `):p}
`})}
`}_toggleTemplate(e,t){let a=new Set(this._settings.disabled_template_ids||[]);t?a.delete(e):a.add(e),this._updateSetting("disabled_template_ids",[...a])}_toggleTplGroupOpen(e){let t=new Set(this._tplOpenGroups);t.has(e)?t.delete(e):t.add(e),this._tplOpenGroups=t}_toggleTemplateGroup(e,t){let a=new Set(this._settings.disabled_template_ids||[]);for(let i of e)t?a.delete(i):a.add(i);this._updateSetting("disabled_template_ids",[...a])}_renderObjectsColumns(e){let t=T(this._settings.objects_table_columns);return o`

${s("objects_table_columns_label",e)}

${s("objects_table_columns_hint",e)}

${E.map(a=>o` `)}
`}_toggleColumn(e,t){let a=new Set(T(this._settings.objects_table_columns));t?a.add(e):a.delete(e);let i=E.filter(n=>n.required||a.has(n.key)).map(n=>n.key);this._updateSetting("objects_table_columns",i)}_renderGeneral(e){let t=this._settings.general,a=t.notify_targets??[],i=this._settings.budget;return o`

${s("settings_general",e)}

${this._renderBatteryNotesHint(e)}
${s("settings_thresholds_hint",e)}
${t.panel_enabled?o` `:""}
${s("settings_install_assist_sentences_hint",e)}
${t.notifications_enabled?o`
${s("test_notification",e)}
${this._personTargets.length?o`
${s("notify_per_person",e)} ${this._personTargets.map(n=>o`
${n.name} ${n.services.length?n.services.join(", "):s("notify_no_own_device",e)}
`)}
`:p} `:p}
`}_todoEntities(e){let t=Object.keys(this.hass?.states||{}).filter(a=>a.startsWith("todo.")).sort();return e&&!t.includes(e)&&t.unshift(e),t}_renderNotifications(e){let t=this._settings.notifications,a=this._settings.actions;return o`

${s("settings_notifications",e)}

${t.due_soon_enabled?o` `:p} ${t.overdue_enabled?o` `:p} ${t.triggered_enabled?o` `:p} ${t.quiet_hours_enabled?o`
${s("settings_quiet_start",e)} this._updateSetting("quiet_hours_start",i.target.value)} />
${s("settings_quiet_end",e)} this._updateSetting("quiet_hours_end",i.target.value)} />
`:p} ${t.bundling_enabled?o` `:p}
${s("settings_reminder_leads_hint",e)}
${s("settings_notify_scope_hint",e)}

${s("settings_actions",e)}

${a.snooze_enabled?o` `:p}
${s("settings_weekly_digest_hint",e)}
${a.warranty_reminder_enabled?o` `:p}
${s("settings_warranty_reminder_hint",e)}
`}_renderBudget(e){let t=this._settings.budget;return o`

${s("settings_budget",e)}

${t.alerts_enabled?o` `:p}
`}_renderArchive(e){let t=this._settings.archive??{oneoff_days:14,delete_archived_oneoff_days:0};return o`

${s("settings_archive",e)}

${s("settings_archive_desc",e)}

`}_renderVacation(e){let t=this._vacEnabled&&!this._vacIsActive&&this._vacWindowEnd&&new Date(this._vacWindowEnd)

${s("vacation_title",e)} ${this._vacIsActive?o`${s("vacation_active",e)}`:p} ${t?o`${s("vacation_ended",e)}`:p}

${s("vacation_desc",e)}

${s("vacation_exempt_title",e)} ${a>0?o`${a}`:p}

${s("vacation_exempt_desc",e)}

${this._vacAllTasks.length===0?o``:o`
${this._renderVacationTaskList(e)}
`}
${this._vacStart&&this._vacEnd?o`
${this._vacPreview.length>0?o`${this._vacPreview.length} ${s("vacation_preview_affected",e)}`:p}
${this._vacPreview.length>0?this._renderVacationPreview(e):p} `:p} ${this._vacIsActive||t?o``:p} `}_renderVacationTaskList(e){let t=new Map;for(let i of this._vacAllTasks){let n=t.get(i.object_name)||[];n.push(i),t.set(i.object_name,n)}return[...t.entries()].sort(([i],[n])=>i.localeCompare(n)).map(([i,n])=>o`
${i||s("no_objects",e)}
${n.sort((r,h)=>r.task_name.localeCompare(h.task_name)).map(r=>o` `)}
`)}_renderVacationPreview(e){return o`
${this._vacPreview.map(t=>{let a=t.events.map(n=>{let r=`vacation_event_${n.status}`;return`${n.date} (${s(r,e)})`}).join(" \xB7 "),i=!t.will_suppress;return o`
${t.object_name} · ${t.task_name} ${t.kind==="sensor_based"?o`${s("vacation_sensor_based",e)}`:p}
${a}
${t.kind==="time_based"?o``:p}
`})}
`}async _loadAllTasksForVacation(){try{let e=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/objects"}),t=[];for(let a of e.objects||[])for(let i of a.tasks||[])t.push({entry_id:a.entry_id,object_name:a.object.name||"",task_id:i.id,task_name:i.name||""});this._vacAllTasks=t}catch{this._showToast(s("action_error",this._lang))}}async _saveVacation(e){if(!this._vacSaving){this._vacSaving=!0;try{let t=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/update",...e});this._vacEnabled=t.enabled,this._vacStart=t.start||"",this._vacEnd=t.end||"",this._vacBuffer=t.buffer_days,this._vacExempt=new Set(t.exempt_task_ids||[]),this._vacIsActive=t.is_active,this._vacWindowEnd=t.window_end,this.dispatchEvent(new CustomEvent("settings-changed"))}catch(t){let a=t?.message||s("action_error",this._lang);this._showToast(a)}finally{this._vacSaving=!1}}}_toggleVacationEnabled(e){this._saveVacation({enabled:e})}_setVacationDate(e,t){let a={};a[e]=t||null,this._saveVacation(a)}_setVacationBuffer(e){e<0||e>14||this._saveVacation({buffer_days:e})}_toggleVacationExempt(e,t){let a=new Set(this._vacExempt);t?a.add(e):a.delete(e),this._saveVacation({exempt_task_ids:[...a]})}async _loadVacationPreview(){this._vacPreviewLoading=!0;try{let e=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/preview"});this._vacPreview=e.rows||[]}catch{this._showToast(s("action_error",this._lang))}finally{this._vacPreviewLoading=!1}}async _previewActionComplete(e){try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/task/complete",entry_id:e.entry_id,task_id:e.task_id}),this._showToast(s("vacation_marked_complete",this._lang)),await this._loadVacationPreview()}catch{this._showToast(s("action_error",this._lang))}}async _previewActionSkip(e){try{await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/task/skip",entry_id:e.entry_id,task_id:e.task_id,reason:"Skipped before vacation"}),this._showToast(s("vacation_marked_skip",this._lang)),await this._loadVacationPreview()}catch{this._showToast(s("action_error",this._lang))}}async _endVacationNow(){try{let e=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/vacation/end_now"});this._vacEnabled=e.enabled,this._vacEnd=e.end||"",this._vacIsActive=e.is_active,this._vacWindowEnd=e.window_end,this.dispatchEvent(new CustomEvent("settings-changed")),this._showToast(s("vacation_ended",this._lang))}catch{this._showToast(s("action_error",this._lang))}}_renderPrintQr(e){let t=this._qrSelectedEntries.size||this._qrObjects.length,a=this._qrActions.size,i=t*a,n=i>200;return o`

${s("qr_print_title",e)}

${s("qr_print_desc",e)}

${this._qrObjectsLoaded?o`
${s("qr_print_filter",e)}
${s("qr_print_objects",e)}
${this._qrObjects.length===0?o`
${s("no_objects",e)}
`:this._qrObjects.map(r=>o` `)}
${s("qr_print_actions",e)}
${["view","complete","skip"].map(r=>o` `)}
${s("qr_print_url_mode",e)}
${s("qr_print_estimate",e)}: ${i} ${n?o` — ${s("qr_print_over_limit",e)}`:p}
${this._qrBatchResults.length>0?o`
${this._qrBatchResults.length} ${s("qr_print_ready",e)}
${this._qrBatchResults.map(r=>o`
${M(r.svg)}
${r.object_name}
${r.task_name}
${s("qr_action_"+r.action,e)}
`)}
`:p} `:o``}
`}async _loadQrObjects(){try{let e=await this.hass.connection.sendMessagePromise({type:"maintenance_supporter/objects"});this._qrObjects=(e.objects||[]).map(t=>({entry_id:t.entry_id,name:t.object.name,task_count:(t.tasks||[]).length})).sort((t,a)=>t.name.localeCompare(a.name)),this._qrObjectsLoaded=!0}catch{this._showToast(s("action_error",this._lang))}}_toggleQrObject(e,t){let a=new Set(this._qrSelectedEntries);if(a.size===0)for(let i of this._qrObjects)a.add(i.entry_id);t?a.add(e):a.delete(e),a.size===this._qrObjects.length&&a.clear(),this._qrSelectedEntries=a}_toggleQrAction(e,t){let a=new Set(this._qrActions);t?a.add(e):a.delete(e),this._qrActions=a}async _generateBatch(){this._qrBatchLoading=!0,this._qrBatchResults=[];try{let e={type:"maintenance_supporter/qr/batch_generate",actions:[...this._qrActions],url_mode:this._qrUrlMode};this._qrSelectedEntries.size>0&&(e.entry_ids=[...this._qrSelectedEntries]);let t=await this.hass.connection.sendMessagePromise(e);this._qrBatchResults=t.qrs||[],this._qrBatchResults.length===0&&this._showToast(s("qr_print_empty",this._lang))}catch(e){let t=e?.message||s("action_error",this._lang);this._showToast(t)}finally{this._qrBatchLoading=!1}}_printQrs(){if(this._qrBatchResults.length===0)return;let e=this._lang,t=this._qrBatchResults.map(r=>{let h=s("qr_action_"+r.action,e);return`
${r.svg}
${this._escapeHtml(r.object_name)}
${this._escapeHtml(r.task_name)}
${this._escapeHtml(h)}
`}).join(""),a=s("qr_print_title",e),i=` ${this._escapeHtml(a)}

${this._escapeHtml(a)} \u2014 ${this._qrBatchResults.length}

${t}