diff --git a/custom_components/simple_irrigation/frontend/dist/simple-irrigation-panel.js b/custom_components/simple_irrigation/frontend/dist/simple-irrigation-panel.js index f3c249a..948b2e5 100644 --- a/custom_components/simple_irrigation/frontend/dist/simple-irrigation-panel.js +++ b/custom_components/simple_irrigation/frontend/dist/simple-irrigation-panel.js @@ -138,7 +138,7 @@ async function loadHaPanelElements() { "ha-tab-group-tab", "ha-card", "ha-dialog", - "ha-textfield", + "ha-input", "ha-icon", "ha-switch", ]; @@ -452,7 +452,7 @@ const formLayoutStyles = i$3 ` max-width: 100%; box-sizing: border-box; } - .field-row ha-textfield { + .field-row ha-input { width: 100%; display: block; } @@ -544,7 +544,7 @@ const formLayoutStyles = i$3 ` gap: 12px; width: 100%; } - .duration-row ha-textfield { + .duration-row ha-input { width: 100%; display: block; } @@ -1422,13 +1422,13 @@ class ViewGeneral extends i { ${t(this.hass, "config_panel.general_installation_name")}

${t(this.hass, "config_panel.general_installation_name_desc")}

- { this._name = e.target.value; }} - > + >
@@ -1482,7 +1482,7 @@ class ViewGeneral extends i { ${t(this.hass, "config_panel.general_pre_start_delay_title")}

${t(this.hass, "config_panel.general_pre_start_delay_desc")}

- { this._preStartDelaySec = Math.max(1, Math.min(3600, parseInt(e.target.value, 10) || 1)); }} - > + >
@@ -1520,7 +1520,7 @@ class ViewGeneral extends i { ${t(this.hass, "config_panel.general_max_parallel")}

${t(this.hass, "config_panel.general_max_parallel_desc")}

- { this._maxParallel = Math.max(1, Math.min(16, parseInt(e.target.value, 10) || 1)); }} - > + >
@@ -2087,13 +2087,13 @@ class ViewSchedule extends i { ${t(this.hass, "config_panel.schedule_name_optional_title")}

${t(this.hass, "config_panel.schedule_name_optional_desc")}

- { this._newSlotName = e.target.value; }} - > + >
@@ -2114,13 +2114,13 @@ class ViewSchedule extends i { ${t(this.hass, "config_panel.schedule_local_time_title")}

${t(this.hass, "config_panel.schedule_local_time_desc")}

- { this._newTime = e.target.value; }} - > + >
@@ -2188,13 +2188,13 @@ class ViewSchedule extends i {
${t(this.hass, "config_panel.schedule_name_optional_title")}
- { draft.name = e.target.value; }} - > + >
@@ -2215,13 +2215,13 @@ class ViewSchedule extends i {
${t(this.hass, "config_panel.schedule_start_time_title")}
- { draft.time_local = e.target.value; }} - > + >
@@ -3522,14 +3522,14 @@ class ViewZones extends i { ${t(this.hass, "config_panel.zones_field_name_title")}

${t(this.hass, "config_panel.zones_field_name_desc")}

- { z.name = e.target.value; this.requestUpdate(); }} - > + >
@@ -3583,7 +3583,7 @@ class ViewZones extends i { ${t(this.hass, "config_panel.zones_runtime_title")}

${t(this.hass, "config_panel.zones_runtime_desc")}

- { z.duration_eco_min = parseInt(e.target.value, 10) || 0; }} - > - + { z.duration_normal_min = parseInt(e.target.value, 10) || 0; }} - > - + { z.duration_extra_min = parseInt(e.target.value, 10) || 0; }} - > + >
diff --git a/custom_components/simple_irrigation/frontend/dist/simple-irrigation-panel.js.map b/custom_components/simple_irrigation/frontend/dist/simple-irrigation-panel.js.map index e002c3b..3582db4 100644 --- a/custom_components/simple_irrigation/frontend/dist/simple-irrigation-panel.js.map +++ b/custom_components/simple_irrigation/frontend/dist/simple-irrigation-panel.js.map @@ -1 +1 @@ -{"version":3,"file":"simple-irrigation-panel.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../src/data/api.ts","../src/fire-event.ts","../src/i18n.ts","../src/helpers.ts","../src/load-ha-elements.ts","../src/navigation.ts","../src/styles.ts","../node_modules/tslib/tslib.es6.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../src/entity-input.ts","../src/form-layout-styles.ts","../src/profile-datetime.ts","../src/date-format.ts","../src/views/view-general.ts","../src/schedule-phases.ts","../src/views/view-schedule.ts","../src/views/view-status.ts","../src/timetable-model.ts","../src/views/view-timetable.ts","../src/views/view-zones.ts","../src/simple-irrigation-panel.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"\":3===i?\"\":\"\",c=v;for(let i=0;i\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"\")+(2===i?\"\":3===i?\"\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import type { HomeAssistant, PanelStateResult } from \"../types\";\n\nexport const fetchPanelState = (\n hass: HomeAssistant,\n entryId: string\n): Promise =>\n hass.callWS({\n type: \"simple_irrigation/panel/state\",\n entry_id: entryId,\n });\n\nexport const saveGlobal = (\n hass: HomeAssistant,\n entryId: string,\n body: Record\n): Promise<{ success: boolean; error?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/global\", { entry_id: entryId, ...body });\n\nexport const saveZone = (\n hass: HomeAssistant,\n entryId: string,\n body: Record\n): Promise<{ success: boolean; error?: string; zone_id?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/zone\", { entry_id: entryId, ...body });\n\nexport const saveSlot = (\n hass: HomeAssistant,\n entryId: string,\n body: Record\n): Promise<{ success: boolean; error?: string; slot_id?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/slot\", { entry_id: entryId, ...body });\n\nexport const runSlotNow = (\n hass: HomeAssistant,\n entryId: string,\n slotId: string\n): Promise<{ success: boolean; error?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/run_slot\", {\n entry_id: entryId,\n slot_id: slotId,\n });\n\nexport const runZoneNow = (\n hass: HomeAssistant,\n entryId: string,\n zoneId: string\n): Promise<{ success: boolean; error?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/run_zone\", {\n entry_id: entryId,\n zone_id: zoneId,\n });\n\nexport const skipIrrigationToday = (\n hass: HomeAssistant,\n entryId: string\n): Promise<{ success: boolean; error?: string; pause_until?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/skip_today\", { entry_id: entryId });\n\nexport const panelControl = (\n hass: HomeAssistant,\n entryId: string,\n action: \"stop\" | \"skip_phase\" | \"clear_error\"\n): Promise<{ success: boolean; error?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/control\", {\n entry_id: entryId,\n action,\n });\n\nexport interface ConfigEntryRow {\n entry_id: string;\n title: string;\n domain: string;\n /** Set when the integration is disabled in HA (Settings → Devices). */\n disabled_by?: string | null;\n}\n\nexport const listSimpleIrrigationEntries = (\n hass: HomeAssistant\n): Promise =>\n hass.callWS({\n type: \"config_entries/get\",\n domain: \"simple_irrigation\",\n });\n","export function fireEvent(\n node: HTMLElement | Window,\n type: string,\n detail?: Record\n): void {\n const event = new CustomEvent(type, {\n bubbles: true,\n composed: true,\n detail: detail ?? {},\n });\n node.dispatchEvent(event);\n}\n","import type { HomeAssistant } from \"./types\";\n\n/** Must match `DOMAIN` in the Python integration. */\nexport const TRANSLATION_DOMAIN = \"simple_irrigation\";\n\n/** Flat key under `component.simple_irrigation.*` (e.g. `config_panel.tab_general`). */\nexport function t(\n hass: HomeAssistant | undefined,\n path: string,\n placeholders?: Record\n): string {\n if (!hass?.localize) {\n return path;\n }\n const fullKey = `component.${TRANSLATION_DOMAIN}.${path}`;\n const hasValues = Boolean(placeholders && Object.keys(placeholders).length);\n // HA uses IntlMessageFormat; placeholders must be passed here, not substituted afterward.\n let s = hasValues\n ? hass.localize(fullKey, placeholders)\n : hass.localize(fullKey);\n if (!s || s === fullKey) {\n s = path;\n if (placeholders) {\n for (const [k, v] of Object.entries(placeholders)) {\n s = s.split(`{${k}}`).join(String(v));\n }\n }\n }\n return s;\n}\n","import { fireEvent } from \"./fire-event\";\nimport { t } from \"./i18n\";\nimport type { HomeAssistant } from \"./types\";\n\n/** Home Assistant callApi may put a string or structured object in `error`. */\nexport function formatApiError(value: unknown, hass?: HomeAssistant): string {\n const fallback =\n hass?.localize != null\n ? t(hass, \"config_panel.errors_request_failed\")\n : \"Request failed\";\n if (value == null || value === \"\") {\n return fallback;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if (value instanceof Error) {\n return value.message;\n }\n if (typeof value === \"object\") {\n const o = value as Record;\n if (typeof o.message === \"string\") {\n return o.message;\n }\n if (typeof o.error === \"string\") {\n return o.error;\n }\n try {\n return JSON.stringify(value);\n } catch {\n return fallback;\n }\n }\n return String(value);\n}\n\n/** Safe when the panel bundle runs twice (navigation, scoped custom element registry). */\nexport function defineCustomElementOnce(\n name: string,\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions\n): void {\n if (customElements.get(name) !== undefined) {\n return;\n }\n customElements.define(name, constructor, options);\n}\n\nexport const navigate = (_node: unknown, path: string, replace = false): void => {\n if (replace) {\n history.replaceState(null, \"\", path);\n } else {\n history.pushState(null, \"\", path);\n }\n fireEvent(window, \"location-changed\", { replace });\n};\n","/** Wait until core HA custom elements used by the panel are defined. */\nexport async function loadHaPanelElements(): Promise {\n const tags = [\n \"ha-menu-button\",\n \"ha-tab-group\",\n \"ha-tab-group-tab\",\n \"ha-card\",\n \"ha-dialog\",\n \"ha-textfield\",\n \"ha-icon\",\n \"ha-switch\",\n ];\n await Promise.all(tags.map((t) => customElements.whenDefined(t).catch(() => undefined)));\n}\n","const BASE = \"simple-irrigation\";\n\nexport interface PanelPath {\n entryId: string | null;\n page: string;\n}\n\nexport const getPath = (): PanelPath => {\n const parts = window.location.pathname.split(\"/\").filter(Boolean);\n if (parts[0] !== BASE) {\n return { entryId: null, page: \"general\" };\n }\n if (parts.length < 2) {\n return { entryId: null, page: \"general\" };\n }\n const entryId = parts[1];\n const page = parts[2] || \"general\";\n return { entryId, page };\n};\n\nexport const exportPath = (entryId: string, page: string): string => {\n return `/${BASE}/${entryId}/${page}`;\n};\n\n/**\n * Remove `editSlot` from the current URL without dispatching `location-changed`.\n * Using `navigate()` would trigger a full panel reload and unmount the schedule view,\n * which closes the slot edit dialog immediately after opening it.\n */\nexport function stripEditSlotQueryFromUrl(): void {\n try {\n const url = new URL(window.location.href);\n if (!url.searchParams.has(\"editSlot\")) return;\n url.searchParams.delete(\"editSlot\");\n const qs = url.searchParams.toString();\n history.replaceState(null, \"\", url.pathname + (qs ? `?${qs}` : \"\") + url.hash);\n } catch {\n /* ignore */\n }\n}\n","import { css } from \"lit\";\n\nexport const panelStyles = css`\n :host {\n display: block;\n color: var(--primary-text-color);\n }\n .header {\n background-color: var(--app-header-background-color);\n color: var(--app-header-text-color, white);\n border-bottom: var(--app-header-border-bottom, none);\n }\n .toolbar {\n height: var(--header-height);\n display: flex;\n align-items: center;\n font-size: 20px;\n padding: 0 16px;\n font-weight: 400;\n box-sizing: border-box;\n }\n .main-title {\n margin: 0 0 0 24px;\n line-height: 20px;\n flex-grow: 1;\n }\n .version {\n font-size: 14px;\n opacity: 0.85;\n }\n ha-tab-group {\n margin-left: max(env(safe-area-inset-left), 24px);\n margin-right: max(env(safe-area-inset-right), 24px);\n --ha-tab-active-text-color: var(--app-header-text-color, white);\n --ha-tab-indicator-color: var(--app-header-text-color, white);\n --ha-tab-track-color: transparent;\n }\n .view {\n min-height: calc(100vh - 112px);\n display: flex;\n justify-content: center;\n padding: 16px;\n box-sizing: border-box;\n }\n .view-inner {\n width: 100%;\n max-width: 840px;\n }\n .entry-picker {\n padding: 24px;\n max-width: 560px;\n margin: 0 auto;\n }\n .entry-picker h2 {\n margin: 0 0 8px;\n font-size: 1.5rem;\n font-weight: 600;\n }\n .entry-picker .lead {\n margin: 0 0 20px;\n color: var(--secondary-text-color);\n line-height: 1.5;\n font-size: 0.95rem;\n }\n .entry-cards {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n .entry-card {\n display: block;\n width: 100%;\n text-align: left;\n padding: 16px 18px;\n border-radius: 12px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font: inherit;\n box-sizing: border-box;\n transition:\n border-color 0.15s ease,\n box-shadow 0.15s ease;\n }\n .entry-card:hover {\n border-color: var(--primary-color);\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);\n }\n .entry-card:focus-visible {\n outline: 2px solid var(--primary-color);\n outline-offset: 2px;\n }\n .entry-card-head {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px 12px;\n margin-bottom: 6px;\n }\n .entry-card-title {\n font-size: 1.1rem;\n font-weight: 600;\n margin: 0;\n flex: 1;\n min-width: 0;\n }\n .entry-badge {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n padding: 4px 8px;\n border-radius: 6px;\n flex-shrink: 0;\n }\n .entry-badge-on {\n color: var(--primary-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.06));\n }\n .entry-badge-off {\n color: var(--warning-color, #b85c00);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.06));\n }\n .entry-badge-ha {\n color: var(--error-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.06));\n }\n .entry-card-desc {\n margin: 0;\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n }\n .howto-add {\n margin-top: 28px;\n padding: 16px;\n border-radius: 8px;\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.04));\n font-size: 0.9rem;\n line-height: 1.5;\n color: var(--secondary-text-color);\n }\n .entry-picker a {\n color: var(--primary-color);\n }\n ha-card {\n margin-bottom: 16px;\n }\n .row {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n align-items: flex-end;\n margin-bottom: 12px;\n }\n .grow {\n flex: 1;\n min-width: 160px;\n }\n .error {\n color: var(--error-color);\n margin: 8px 0;\n }\n .muted {\n opacity: 0.8;\n font-size: 0.9rem;\n }\n .error {\n color: var(--error-color);\n }\n`;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import { html, type TemplateResult } from \"lit\";\nimport { t } from \"./i18n\";\nimport type { HomeAssistant } from \"./types\";\n\n/** Entity IDs for allowed output domains (same rule set as the backend). */\nexport function entityIdsForDomains(hass: HomeAssistant, domains: string[]): string[] {\n return Object.keys(hass.states)\n .filter((eid) => domains.includes(eid.split(\".\", 1)[0]))\n .sort((a, b) => a.localeCompare(b));\n}\n\n/** One shared `` per form (by stable `listId`). */\nexport function renderEntityDatalist(\n hass: HomeAssistant,\n listId: string,\n domains: string[]\n): TemplateResult {\n const ids = entityIdsForDomains(hass, domains);\n return html`\n \n ${ids.map((id) => html``)}\n \n `;\n}\n\n/**\n * Browser autocomplete for entity_id — works inside panel_custom scoped registries where\n * `ha-entity-picker` is not registered.\n */\nexport function renderNativeEntityField(\n hass: HomeAssistant,\n listId: string,\n label: string,\n value: string,\n onValue: (v: string) => void\n): TemplateResult {\n return html`\n
\n \n onValue((e.target as HTMLInputElement).value)}\n />\n
\n `;\n}\n","import { css } from \"lit\";\n\n/** Shared stacked form layout: titles, helper text, full-width controls. */\nexport const formLayoutStyles = css`\n .field-block {\n margin-bottom: 20px;\n }\n .field-title {\n display: block;\n font-weight: 500;\n margin-bottom: 4px;\n color: var(--primary-text-color);\n font-size: 1rem;\n }\n .field-desc {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n margin-bottom: 10px;\n line-height: 1.45;\n }\n .field-row {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n .field-row ha-textfield {\n width: 100%;\n display: block;\n }\n .entity-picker-rows {\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 100%;\n }\n .entity-picker-row {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n width: 100%;\n }\n .entity-picker-row .native-entity-field {\n flex: 1;\n min-width: 0;\n }\n .native-entity-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n .native-entity-label {\n font-size: 0.75rem;\n color: var(--secondary-text-color);\n }\n .entity-id-input {\n width: 100%;\n box-sizing: border-box;\n padding: 12px 16px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n font-size: 1rem;\n font-family: inherit;\n min-height: 48px;\n }\n .entity-id-input:focus {\n outline: none;\n border-color: var(--primary-color);\n }\n button.row-remove {\n flex-shrink: 0;\n padding: 8px 12px;\n font-size: 0.875rem;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-family: inherit;\n }\n button.row-remove:hover {\n border-color: var(--primary-color);\n color: var(--primary-color);\n }\n button.btn-outline {\n align-self: center;\n margin-top: 0;\n padding: 10px 18px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 1rem;\n font-family: inherit;\n }\n .entity-picker-rows > button.btn-outline {\n align-self: flex-start;\n }\n button.btn-outline:hover {\n border-color: var(--primary-color);\n color: var(--primary-color);\n }\n button.add-row {\n align-self: flex-start;\n margin-top: 4px;\n padding: 8px 14px;\n font-size: 0.9rem;\n }\n .duration-row {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n gap: 12px;\n width: 100%;\n }\n .duration-row ha-textfield {\n width: 100%;\n display: block;\n }\n select.field-select {\n width: 100%;\n max-width: 100%;\n padding: 10px 12px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n font-size: 1rem;\n min-height: 48px;\n box-sizing: border-box;\n }\n .checkboxes {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .checkboxes label {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 1rem;\n }\n .switch-rows {\n display: flex;\n flex-direction: column;\n gap: 14px;\n }\n .switch-row {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n .switch-row ha-switch {\n flex-shrink: 0;\n }\n .switch-row .switch-row-label {\n font-size: 1rem;\n color: var(--primary-text-color);\n line-height: 1.3;\n }\n .action-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n margin-top: 8px;\n }\n .dialog-footer {\n display: flex;\n flex-direction: column;\n gap: 0;\n width: 100%;\n box-sizing: border-box;\n }\n .dialog-footer-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 12px;\n width: 100%;\n }\n .dialog-footer-lead {\n flex: 0 0 auto;\n }\n .dialog-footer-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n margin-left: auto;\n }\n`;\n","import type { HomeAssistant } from \"./types\";\n\n/** Subset of HA frontend `FrontendLocaleData` (user profile → Language & region). */\nexport interface HassUserLocale {\n language: string;\n time_format: string;\n date_format: string;\n time_zone?: string;\n}\n\nconst LOCAL_TZ = Intl.DateTimeFormat?.().resolvedOptions?.().timeZone ?? \"UTC\";\n\nfunction resolveTimeZonePref(localeTz: string | undefined, serverTimeZone: string): string {\n if (localeTz === \"local\" && LOCAL_TZ) return LOCAL_TZ;\n return serverTimeZone;\n}\n\nexport function useAmPmFromLocale(locale: HassUserLocale): boolean {\n const tf = locale.time_format;\n if (tf === \"language\" || tf === \"system\") {\n const testLang = tf === \"language\" ? locale.language : undefined;\n const test = new Date(\"January 1, 2023 22:00:00\").toLocaleString(testLang);\n return test.includes(\"10\");\n }\n return tf === \"12\";\n}\n\nfunction formatDateNumericPart(date: Date, locale: HassUserLocale, serverTz: string): string {\n const tz = resolveTimeZonePref(locale.time_zone, serverTz);\n const df = locale.date_format;\n if (df === \"language\" || df === \"system\") {\n return new Intl.DateTimeFormat(df === \"system\" ? undefined : locale.language, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n timeZone: tz,\n }).format(date);\n }\n const formatter = new Intl.DateTimeFormat(locale.language, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n timeZone: tz,\n });\n const parts = formatter.formatToParts(date);\n const literal = parts.find((p) => p.type === \"literal\")?.value ?? \"/\";\n const day = parts.find((p) => p.type === \"day\")?.value ?? \"\";\n const month = parts.find((p) => p.type === \"month\")?.value ?? \"\";\n const year = parts.find((p) => p.type === \"year\")?.value ?? \"\";\n const lastPart = parts[parts.length - 1];\n const lastLiteral = lastPart?.type === \"literal\" ? lastPart.value : \"\";\n if (df === \"DMY\") return `${day}${literal}${month}${literal}${year}${lastLiteral}`;\n if (df === \"MDY\") return `${month}${literal}${day}${literal}${year}${lastLiteral}`;\n if (df === \"YMD\") return `${year}${literal}${month}${literal}${day}${lastLiteral}`;\n return formatter.format(date);\n}\n\nfunction formatTimePart(date: Date, locale: HassUserLocale, serverTz: string): string {\n const tz = resolveTimeZonePref(locale.time_zone, serverTz);\n const ampm = useAmPmFromLocale(locale);\n return new Intl.DateTimeFormat(locale.language, {\n hour: ampm ? \"numeric\" : \"2-digit\",\n minute: \"2-digit\",\n hourCycle: ampm ? \"h12\" : \"h23\",\n timeZone: tz,\n }).format(date);\n}\n\n/**\n * Absolute instant (e.g. next run, pause until): weekday + profile date + profile time + TZ preference.\n */\nexport function formatDateTimeForProfile(\n hass: HomeAssistant | undefined,\n date: Date\n): string {\n if (!hass) return date.toLocaleString();\n const loc = hass.locale;\n const serverTz = hass.config?.time_zone ?? LOCAL_TZ;\n const lang = (loc?.language ?? hass.language)?.replace(/_/g, \"-\");\n const locComplete =\n loc &&\n typeof loc.language === \"string\" &&\n typeof loc.time_format === \"string\" &&\n typeof loc.date_format === \"string\";\n if (!locComplete) {\n return new Intl.DateTimeFormat(lang, {\n weekday: \"long\",\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(date);\n }\n const tz = resolveTimeZonePref(loc!.time_zone, serverTz);\n const weekday = new Intl.DateTimeFormat(loc!.language, {\n weekday: \"long\",\n timeZone: tz,\n }).format(date);\n const datePart = formatDateNumericPart(date, loc!, serverTz);\n const timePart = formatTimePart(date, loc!, serverTz);\n return `${weekday}, ${datePart}, ${timePart}`;\n}\n\n/**\n * Schedule slot wall time (stored as HH:MM): same clock face, 12h/24h and spacing from profile.\n */\nexport function formatSlotTimeForProfile(hass: HomeAssistant | undefined, timeLocal: string): string {\n const m = /^(\\d{1,2}):(\\d{2})$/.exec(String(timeLocal).trim());\n if (!m) return timeLocal;\n const h = Math.min(23, Math.max(0, parseInt(m[1], 10)));\n const min = Math.min(59, Math.max(0, parseInt(m[2], 10)));\n const d = new Date(2000, 0, 1, h, min, 0, 0);\n const loc = hass?.locale;\n const lang = (loc?.language ?? hass?.language)?.replace(/_/g, \"-\") ?? undefined;\n if (!loc?.language || !loc.time_format) {\n return new Intl.DateTimeFormat(lang, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(d);\n }\n const ampm = useAmPmFromLocale(loc);\n return new Intl.DateTimeFormat(loc.language, {\n hour: ampm ? \"numeric\" : \"2-digit\",\n minute: \"2-digit\",\n hourCycle: ampm ? \"h12\" : \"h23\",\n }).format(d);\n}\n","import { formatDateTimeForProfile, formatSlotTimeForProfile } from \"./profile-datetime\";\nimport type { HomeAssistant } from \"./types\";\n\nfunction locale(hass: HomeAssistant | undefined): string | undefined {\n const lang = hass?.locale?.language ?? hass?.language;\n if (!lang) return undefined;\n return lang.replace(/_/g, \"-\");\n}\n\n/**\n * Schedule slots use weekday 0 = Monday … 6 = Sunday (same as the Python model).\n * Uses the user's HA language for localized weekday names.\n */\nexport function weekdayLong(hass: HomeAssistant | undefined, mondayBasedIndex: number): string {\n const i = Math.max(0, Math.min(6, mondayBasedIndex));\n // 2024-01-01 is a Monday in local calendar semantics for display.\n const d = new Date(2024, 0, 1 + i);\n return new Intl.DateTimeFormat(locale(hass), { weekday: \"long\" }).format(d);\n}\n\n/**\n * Absolute instant: weekday + date + time using the user’s profile (12h/24h, DMY/MDY/YMD, server vs local TZ).\n */\nexport function formatDateTimeForDisplay(hass: HomeAssistant | undefined, date: Date): string {\n return formatDateTimeForProfile(hass, date);\n}\n\n/** Slot wall time HH:MM with profile 12h/24h (same numbers as stored; presentation only). */\nexport function formatTimeLocalForDisplay(hass: HomeAssistant | undefined, timeLocal: string): string {\n return formatSlotTimeForProfile(hass, timeLocal);\n}\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { panelControl, saveGlobal, skipIrrigationToday } from \"../data/api\";\nimport { renderEntityDatalist, renderNativeEntityField } from \"../entity-input\";\nimport { defineCustomElementOnce, formatApiError } from \"../helpers\";\nimport { t } from \"../i18n\";\nimport { formLayoutStyles } from \"../form-layout-styles\";\nimport { formatDateTimeForDisplay, formatTimeLocalForDisplay, weekdayLong } from \"../date-format\";\nimport type { HomeAssistant, ScheduleNext } from \"../types\";\n\nexport class ViewGeneral extends LitElement {\n static properties = {\n hass: { attribute: false },\n entryId: { type: String },\n installation: { type: Object },\n scheduleNext: { type: Object },\n runState: { type: Object },\n onSaved: { attribute: false },\n };\n\n hass!: HomeAssistant;\n entryId!: string;\n installation!: Record;\n scheduleNext?: ScheduleNext;\n runState?: Record;\n onSaved?: () => void;\n\n static styles = [\n formLayoutStyles,\n css`\n ha-card {\n margin-bottom: 16px;\n }\n .card-content {\n padding: 0 8px 16px;\n }\n .error {\n color: var(--error-color);\n margin-bottom: 8px;\n }\n button.save {\n padding: 10px 20px;\n border-radius: 4px;\n border: none;\n background: var(--primary-color);\n color: var(--text-primary-color);\n cursor: pointer;\n font-size: 1rem;\n }\n button.save:disabled {\n opacity: 0.5;\n cursor: default;\n }\n .schedule-overview-inner {\n margin-top: 4px;\n }\n .schedule-hero {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 18px 18px 20px;\n border-radius: 12px;\n border: 1px solid var(--divider-color);\n background: linear-gradient(\n 145deg,\n rgba(var(--rgb-primary-color, 33, 150, 243), 0.12) 0%,\n transparent 55%\n );\n margin-bottom: 16px;\n }\n .schedule-hero-icon {\n flex-shrink: 0;\n --mdc-icon-size: 36px;\n color: var(--primary-color);\n opacity: 0.9;\n margin-top: 2px;\n }\n .schedule-hero-text {\n flex: 1;\n min-width: 0;\n }\n .schedule-hero-label {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--secondary-text-color);\n margin: 0 0 6px;\n }\n .schedule-next-big {\n font-size: 1.35rem;\n font-weight: 600;\n margin: 0;\n line-height: 1.25;\n letter-spacing: -0.02em;\n color: var(--primary-text-color);\n }\n .schedule-slot-pills {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .schedule-slot-pill {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 12px 14px;\n border-radius: 10px;\n border: 1px solid var(--divider-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.03));\n line-height: 1.45;\n font-size: 0.9375rem;\n }\n .schedule-slot-pill ha-icon {\n flex-shrink: 0;\n --mdc-icon-size: 22px;\n color: var(--primary-color);\n opacity: 0.85;\n margin-top: 1px;\n }\n .schedule-slot-pill-main {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .schedule-slot-name {\n font-weight: 600;\n font-size: 0.8125rem;\n color: var(--primary-color);\n }\n .schedule-slot-time {\n font-weight: 600;\n color: var(--primary-text-color);\n }\n .schedule-slot-zones {\n display: block;\n margin-top: 4px;\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n }\n .plan-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 12px 20px;\n margin-bottom: 16px;\n }\n .plan-row ha-switch {\n margin-right: 8px;\n }\n .plan-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 1rem;\n }\n .muted-box {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 12px;\n }\n .run-hero {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 18px 18px 20px;\n border-radius: 12px;\n border: 1px solid var(--divider-color);\n background: linear-gradient(\n 145deg,\n rgba(var(--rgb-primary-color, 33, 150, 243), 0.1) 0%,\n transparent 50%\n );\n margin-bottom: 14px;\n }\n .run-hero-icon {\n flex-shrink: 0;\n --mdc-icon-size: 38px;\n color: var(--primary-color);\n opacity: 0.92;\n margin-top: 2px;\n }\n .run-hero-body {\n flex: 1;\n min-width: 0;\n }\n .run-hero-label {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--secondary-text-color);\n margin: 0 0 6px;\n }\n .run-hero-state {\n font-size: 1.35rem;\n font-weight: 600;\n margin: 0 0 10px;\n line-height: 1.25;\n letter-spacing: -0.02em;\n color: var(--primary-text-color);\n }\n .run-detail-pills {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .run-detail-pill {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 10px;\n border: 1px solid var(--divider-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.03));\n font-size: 0.9rem;\n line-height: 1.45;\n }\n .run-detail-pill ha-icon {\n flex-shrink: 0;\n --mdc-icon-size: 20px;\n color: var(--primary-color);\n opacity: 0.85;\n margin-top: 2px;\n }\n .run-detail-pill strong {\n font-weight: 600;\n color: var(--primary-text-color);\n }\n button.ctrl {\n padding: 10px 16px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 0.95rem;\n }\n button.ctrl.danger {\n border-color: var(--error-color);\n color: var(--error-color);\n }\n button.ctrl:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `,\n ];\n\n private _busy = false;\n private _msg?: string;\n @state() private _runCtrlBusy = false;\n\n private _name = \"\";\n private _mode = \"normal\";\n private _maxParallel = 2;\n private _preStart: string[] = [];\n private _preStartDelaySec = 10;\n private _planEnabled = true;\n\n protected willUpdate(changed: Map): void {\n if (changed.has(\"installation\") && this.installation) {\n const inst = this.installation;\n this._name = String(inst.name ?? \"\");\n this._mode = String(inst.mode ?? \"normal\");\n this._maxParallel = Number(inst.max_parallel_zones ?? 2);\n this._planEnabled = Boolean(inst.enabled ?? true);\n const ps = Array.isArray(inst.pre_start_switches)\n ? (inst.pre_start_switches as string[]).filter(Boolean)\n : [];\n this._preStart = ps.length ? [...ps] : [\"\"];\n const d = Number(inst.pre_start_delay_sec ?? 10);\n this._preStartDelaySec = Number.isFinite(d)\n ? Math.max(1, Math.min(3600, Math.round(d)))\n : 10;\n }\n }\n\n private _pauseIsActive(): boolean {\n const raw = this.installation?.pause_until;\n if (!raw || typeof raw !== \"string\") return false;\n const t = Date.parse(raw);\n return !Number.isNaN(t) && t > Date.now();\n }\n\n private _fmtWhen(iso: string | null | undefined): string {\n if (!iso) return t(this.hass, \"config_panel.general_none_scheduled\");\n try {\n const d = new Date(iso);\n return formatDateTimeForDisplay(this.hass, d);\n } catch {\n return String(iso);\n }\n }\n\n private _wd(i: number): string {\n return weekdayLong(this.hass, i);\n }\n\n private _fmtPauseUntil(): string {\n const raw = this.installation?.pause_until;\n if (!raw || typeof raw !== \"string\") return \"\";\n return this._fmtWhen(raw);\n }\n\n private async _save(): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await saveGlobal(this.hass, this.entryId, {\n name: this._name,\n pre_start_switches: this._preStart.filter(Boolean),\n pre_start_delay_sec: this._preStartDelaySec,\n mode: this._mode,\n max_parallel_zones: this._maxParallel,\n });\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private async _setPlanEnabled(enabled: boolean): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await saveGlobal(this.hass, this.entryId, { enabled });\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this._planEnabled = enabled;\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private async _clearPause(): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await saveGlobal(this.hass, this.entryId, { pause_until: null });\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private async _skipToday(): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await skipIrrigationToday(this.hass, this.entryId);\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private _generalEntityListId(): string {\n return `si-ent-g-${this.entryId}`;\n }\n\n private _zoneName(zoneId: string): string {\n const zones = this.installation?.zones as Record> | undefined;\n const z = zones?.[zoneId];\n return z ? String(z.name ?? zoneId) : zoneId;\n }\n\n private _runStateBusy(rs: Record): boolean {\n const s = String(rs.run_state ?? \"idle\");\n return [\"preparing\", \"running\", \"stopping\"].includes(s);\n }\n\n private _formatUpcomingPhases(rs: Record): string {\n const up = rs.upcoming_phases;\n if (!Array.isArray(up) || up.length === 0) return \"\";\n const parts: string[] = [];\n for (const grp of up) {\n if (!Array.isArray(grp) || grp.length === 0) continue;\n parts.push(grp.map((id) => this._zoneName(String(id))).join(\", \"));\n }\n return parts.join(\" → \");\n }\n\n private async _panelControlAction(\n action: \"stop\" | \"skip_phase\" | \"clear_error\"\n ): Promise {\n this._runCtrlBusy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await panelControl(this.hass, this.entryId, action);\n if (!res.success) {\n const err = res.error ?? \"request_failed\";\n this._msg =\n err === \"not_running\" && action === \"skip_phase\"\n ? t(this.hass, \"config_panel.errors_not_running_skip\")\n : String(err);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._runCtrlBusy = false;\n this.requestUpdate();\n }\n }\n\n protected render() {\n const domains = [\"switch\", \"input_boolean\", \"group\"];\n const sn = this.scheduleNext ?? { fire_at: null, slots: [] };\n const nextGlobal =\n sn.fire_at || (this.runState?.next_run_global as string | undefined) || null;\n const pauseOn = this._pauseIsActive();\n const rs = (this.runState ?? {}) as Record;\n const runBusy = this._runStateBusy(rs);\n const runStateStr = String(rs.run_state ?? \"idle\");\n const activeIds = Array.isArray(rs.active_zone_ids)\n ? (rs.active_zone_ids as string[])\n : [];\n const lastErr = rs.last_error ? String(rs.last_error) : \"\";\n const showStop = [\"preparing\", \"running\", \"stopping\"].includes(runStateStr);\n const upcomingLen = Array.isArray(rs.upcoming_phases) ? rs.upcoming_phases.length : 0;\n const showSkip =\n showStop &&\n runStateStr !== \"stopping\" &&\n (runStateStr === \"preparing\" || upcomingLen > 0);\n const showClearErr = Boolean(lastErr);\n const nextZonesLine = this._formatUpcomingPhases(rs);\n\n return html`\n ${renderEntityDatalist(this.hass, this._generalEntityListId(), domains)}\n \n
\n
\n \n
\n

${t(this.hass, \"config_panel.general_label_irrigation_state\")}

\n

\n ${runBusy\n ? runStateStr === \"preparing\"\n ? t(this.hass, \"config_panel.general_state_preparing\")\n : runStateStr === \"stopping\"\n ? t(this.hass, \"config_panel.general_state_stopping\")\n : t(this.hass, \"config_panel.general_state_running\")\n : runStateStr === \"error\"\n ? t(this.hass, \"config_panel.general_state_error_idle\")\n : t(this.hass, \"config_panel.general_state_idle\")}\n

\n ${runBusy && runStateStr === \"preparing\"\n ? html`

\n ${t(this.hass, \"config_panel.general_preparing_hint\")}\n

`\n : nothing}\n
\n
\n ${activeIds.length || nextZonesLine || lastErr\n ? html`\n
    \n ${activeIds.length\n ? html`\n
  • \n \n ${t(this.hass, \"config_panel.general_active_zones\")}\n ${activeIds.map((id) => this._zoneName(id)).join(\", \")}\n
  • \n `\n : nothing}\n ${nextZonesLine\n ? html`\n
  • \n \n ${t(this.hass, \"config_panel.general_next_zones\")}\n ${nextZonesLine}\n
  • \n `\n : nothing}\n ${lastErr\n ? html`\n
  • \n \n ${t(this.hass, \"config_panel.general_last_error\")}\n ${lastErr}\n
  • \n `\n : nothing}\n
\n `\n : nothing}\n ${showStop\n ? html`

\n ${t(this.hass, \"config_panel.general_scheduled_pause_hint\")}\n

`\n : nothing}\n ${showStop || showSkip || showClearErr\n ? html`
\n ${showStop\n ? html`\n this._panelControlAction(\"stop\")}\n >\n ${t(this.hass, \"config_panel.general_stop_irrigation\")}\n \n `\n : nothing}\n ${showSkip\n ? html`\n this._panelControlAction(\"skip_phase\")}\n >\n ${t(this.hass, \"config_panel.general_skip_phase\")}\n \n `\n : nothing}\n ${showClearErr\n ? html`\n this._panelControlAction(\"clear_error\")}\n >\n ${t(this.hass, \"config_panel.general_clear_error\")}\n \n `\n : nothing}\n
`\n : nothing}\n
\n
\n\n \n
\n ${!this._planEnabled\n ? html`

${t(this.hass, \"config_panel.general_plan_off_hint\")}

`\n : nothing}\n
\n
\n \n
\n

${t(this.hass, \"config_panel.general_next_scheduled_run\")}

\n

${this._fmtWhen(nextGlobal)}

\n
\n
\n ${sn.slots?.length\n ? html`\n
    \n ${sn.slots.map(\n (s) => html`\n
  • \n \n
    \n ${s.name?.trim()\n ? html`${s.name.trim()}`\n : nothing}\n ${this._wd(s.weekday)} ${formatTimeLocalForDisplay(\n this.hass,\n s.time_local\n )}\n ${s.zone_names?.length\n ? html`${s.zone_names.join(\", \")}`\n : nothing}\n
    \n
  • \n `\n )}\n
\n `\n : html`

${t(this.hass, \"config_panel.general_no_slots\")}

`}\n
\n
\n
\n\n \n
\n ${this._msg ? html`
${this._msg}
` : nothing}\n
\n \n
\n ${pauseOn\n ? html`

\n ${t(this.hass, \"config_panel.general_pause_active_hint\", {\n when: this._fmtPauseUntil(),\n })}\n

`\n : nothing}\n
\n this._skipToday()}\n >\n ${t(this.hass, \"config_panel.general_skip_today\")}\n \n this._clearPause()}\n >\n ${t(this.hass, \"config_panel.general_clear_pause\")}\n \n
\n
\n
\n\n \n
\n
\n ${t(this.hass, \"config_panel.general_installation_name\")}\n

${t(this.hass, \"config_panel.general_installation_name_desc\")}

\n
\n {\n this._name = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.general_pre_start_title\")}\n

${t(this.hass, \"config_panel.general_pre_start_desc\")}

\n
\n
\n ${this._preStart.map(\n (eid, i) => html`\n
\n ${renderNativeEntityField(\n this.hass,\n this._generalEntityListId(),\n i === 0\n ? t(this.hass, \"config_panel.general_pre_start_output_n\")\n : t(this.hass, \"config_panel.general_pre_start_output_i\", { n: i + 1 }),\n eid,\n (v) => {\n const next = [...this._preStart];\n next[i] = v;\n this._preStart = next;\n this.requestUpdate();\n }\n )}\n ${this._preStart.length > 1\n ? html`\n {\n this._preStart.splice(i, 1);\n if (this._preStart.length === 0) {\n this._preStart = [\"\"];\n }\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.general_remove\")}\n \n `\n : nothing}\n
\n `\n )}\n {\n this._preStart = [...this._preStart, \"\"];\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.general_add_pre_start\")}\n \n
\n
\n
\n
\n ${t(this.hass, \"config_panel.general_pre_start_delay_title\")}\n

${t(this.hass, \"config_panel.general_pre_start_delay_desc\")}

\n
\n {\n this._preStartDelaySec = Math.max(\n 1,\n Math.min(3600, parseInt((e.target as HTMLInputElement).value, 10) || 1)\n );\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.general_watering_mode\")}\n

${t(this.hass, \"config_panel.general_watering_mode_desc\")}

\n
\n {\n this._mode = (e.target as HTMLSelectElement).value;\n }}\n >\n \n \n \n \n
\n
\n
\n ${t(this.hass, \"config_panel.general_max_parallel\")}\n

${t(this.hass, \"config_panel.general_max_parallel_desc\")}

\n
\n {\n this._maxParallel = Math.max(\n 1,\n Math.min(16, parseInt((e.target as HTMLInputElement).value, 10) || 1)\n );\n }}\n >\n
\n
\n
\n \n
\n
\n
\n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-general\", ViewGeneral);\n","/** Mirrors `grouping.compute_phases` for schedule slot preview in the panel. */\n\nexport interface ZonePhaseInput {\n enabled?: boolean;\n exclusive?: boolean;\n}\n\nexport function computePhases(\n orderedZoneIds: string[],\n zonesById: Record,\n maxParallelZones: number,\n skipDisabled = true\n): string[][] {\n const mp = Math.max(1, maxParallelZones);\n const phases: string[][] = [];\n let current: string[] = [];\n\n for (const zid of orderedZoneIds) {\n const zone = zonesById[zid];\n if (!zone) continue;\n if (skipDisabled && !zone.enabled) continue;\n\n if (zone.exclusive) {\n if (current.length) {\n phases.push(current);\n current = [];\n }\n phases.push([zid]);\n continue;\n }\n\n if (!current.length) {\n current = [zid];\n continue;\n }\n\n if (current.length >= mp) {\n phases.push(current);\n current = [zid];\n continue;\n }\n\n current.push(zid);\n }\n\n if (current.length) phases.push(current);\n return phases;\n}\n\n/** First occurrence of each zone id → 1-based phase index (same as `phase_index_per_zone`). */\nexport function phaseIndexByZoneId(\n orderedZoneIds: string[],\n zonesById: Record,\n maxParallelZones: number\n): Map {\n const phases = computePhases(orderedZoneIds, zonesById, maxParallelZones, true);\n const m = new Map();\n for (let i = 0; i < phases.length; i++) {\n const n = i + 1;\n for (const zid of phases[i]) {\n if (!m.has(zid)) m.set(zid, n);\n }\n }\n return m;\n}\n","import { LitElement, html, css, nothing, type PropertyValues } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { runSlotNow, saveSlot } from \"../data/api\";\nimport { defineCustomElementOnce, formatApiError } from \"../helpers\";\nimport { stripEditSlotQueryFromUrl } from \"../navigation\";\nimport { t } from \"../i18n\";\nimport { formLayoutStyles } from \"../form-layout-styles\";\nimport { formatTimeLocalForDisplay, weekdayLong } from \"../date-format\";\nimport { phaseIndexByZoneId, type ZonePhaseInput } from \"../schedule-phases\";\nimport type { HomeAssistant } from \"../types\";\n\ninterface SlotRow {\n slot_id: string;\n weekday: number;\n time_local: string;\n enabled: boolean;\n zone_ids_ordered: string[];\n name: string;\n}\n\nexport class ViewSchedule extends LitElement {\n static properties = {\n hass: { attribute: false },\n entryId: { type: String },\n installation: { type: Object },\n runState: { type: Object },\n onSaved: { attribute: false },\n };\n\n hass!: HomeAssistant;\n entryId!: string;\n installation!: Record;\n runState?: Record;\n onSaved?: () => void;\n\n static styles = [\n formLayoutStyles,\n css`\n ha-card {\n margin-bottom: 16px;\n }\n .card-content {\n padding: 0 8px 16px;\n }\n .error {\n color: var(--error-color);\n margin: 8px 0;\n }\n .intro {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 16px;\n }\n .slot-row-wrap {\n display: flex;\n align-items: stretch;\n margin-bottom: 12px;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--divider-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.02));\n }\n .slot-row-accent {\n width: 8px;\n flex-shrink: 0;\n background: var(--primary-color);\n transition: background 0.15s ease;\n }\n .slot-row-accent.inactive {\n background: var(--disabled-text-color, rgba(158, 158, 158, 0.45));\n }\n .slot-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px 12px;\n flex: 1;\n min-width: 0;\n padding: 14px 16px;\n }\n .slot-row-toggle {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n .slot-row-toggle ha-switch {\n --switch-padding: 4px;\n }\n .slot-row-summary {\n flex: 1;\n min-width: 160px;\n }\n .slot-row-title {\n font-size: 1.1rem;\n font-weight: 600;\n margin: 0 0 4px;\n }\n .slot-row-title .slot-name {\n font-weight: 700;\n }\n .slot-row-meta {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n margin: 0;\n }\n .slot-row-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n }\n /* Override form-layout-styles .btn-outline (align-self + margin-top) so row actions line up */\n .slot-row-actions button {\n align-self: center;\n margin-top: 0;\n }\n .toolbar {\n margin-bottom: 16px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n }\n button {\n padding: 10px 16px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 1rem;\n }\n button.primary {\n background: var(--primary-color);\n color: var(--text-primary-color);\n border: none;\n }\n button.danger {\n border-color: var(--error-color);\n color: var(--error-color);\n }\n .zones {\n list-style: none;\n padding: 0;\n margin: 12px 0;\n }\n .zones li {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n margin-bottom: 10px;\n padding: 8px 0;\n border-bottom: 1px solid var(--divider-color);\n }\n .zones li:last-child {\n border-bottom: none;\n }\n .zones li.phase-sep {\n display: block;\n margin: 14px 0 6px;\n padding: 0;\n border-bottom: none;\n }\n .zones li.phase-sep span {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--secondary-text-color);\n }\n .zones li.phase-sep:first-child {\n margin-top: 0;\n }\n .zone-actions button {\n padding: 6px 12px;\n font-size: 0.875rem;\n }\n .zone-actions .btn-outline {\n padding: 6px 12px;\n font-size: 0.875rem;\n margin-top: 0;\n }\n .toolbar .btn-outline {\n margin-top: 0;\n }\n `,\n ];\n\n @state() private _busy = false;\n @state() private _msg?: string;\n private _newWeekday = 0;\n private _newTime = \"06:00\";\n private _newEnabled = true;\n private _newSlotName = \"\";\n\n @state() private _slotEditDraft: SlotRow | null = null;\n @state() private _addSlotDialogOpen = false;\n @state() private _addZonePick = \"\";\n /** Cleared when URL has no `editSlot` query; avoids reopening the same deep link repeatedly. */\n private _consumedEditSlotKey: string | null = null;\n\n private _wd(i: number): string {\n return weekdayLong(this.hass, i);\n }\n\n private _fmtSlotTime(timeLocal: string): string {\n return formatTimeLocalForDisplay(this.hass, timeLocal);\n }\n\n private _slots(): SlotRow[] {\n const s = this.installation?.schedule_slots as unknown[] | undefined;\n if (!Array.isArray(s)) return [];\n return s.map((raw) => {\n const o = raw as Record;\n return {\n slot_id: String(o.slot_id ?? \"\"),\n weekday: Number(o.weekday ?? 0),\n time_local: String(o.time_local ?? \"06:00\"),\n enabled: Boolean(o.enabled ?? true),\n zone_ids_ordered: Array.isArray(o.zone_ids_ordered)\n ? [...(o.zone_ids_ordered as string[])]\n : [],\n name: String(o.name ?? \"\").trim(),\n };\n });\n }\n\n private _cloneSlot(s: SlotRow): SlotRow {\n return {\n ...s,\n zone_ids_ordered: [...s.zone_ids_ordered],\n };\n }\n\n private _zoneName(zid: string): string {\n const zones = this.installation?.zones as Record> | undefined;\n const z = zones?.[zid];\n return z ? String(z.name ?? zid) : zid;\n }\n\n private async _call(body: Record): Promise {\n this._busy = true;\n this._msg = undefined;\n try {\n const res = await saveSlot(this.hass, this.entryId, body);\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n return false;\n }\n this.onSaved?.();\n return true;\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n return false;\n } finally {\n this._busy = false;\n }\n }\n\n private _runtimeBusy(): boolean {\n const rs = this.runState ?? {};\n const s = String(rs.run_state ?? \"idle\");\n return [\"preparing\", \"running\", \"stopping\"].includes(s);\n }\n\n private async _runSlotNow(slotId: string): Promise {\n if (this._runtimeBusy()) return;\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = (await runSlotNow(this.hass, this.entryId, slotId)) as {\n success: boolean;\n error?: string;\n };\n if (!res.success) {\n const err = res.error ?? \"run_failed\";\n this._msg =\n err === \"busy\"\n ? t(this.hass, \"config_panel.schedule_err_busy\")\n : err === \"empty_slot\"\n ? t(this.hass, \"config_panel.schedule_err_empty_slot\")\n : err === \"no_runnable_zones\"\n ? t(this.hass, \"config_panel.schedule_err_no_runnable\")\n : err === \"unknown_slot\"\n ? t(this.hass, \"config_panel.schedule_err_unknown_slot\")\n : String(err);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private _closeEditDialog(): void {\n this._slotEditDraft = null;\n }\n\n private _consumeEditSlotQueryFromUrl(): void {\n const slotId = new URLSearchParams(window.location.search).get(\"editSlot\");\n if (!slotId) {\n this._consumedEditSlotKey = null;\n return;\n }\n if (!this.entryId) return;\n const key = `${this.entryId}:${slotId}`;\n if (this._consumedEditSlotKey === key) return;\n\n const slot = this._slots().find((s) => s.slot_id === slotId);\n const scheduleKnown = Array.isArray(this.installation?.schedule_slots);\n\n if (slot) {\n this._consumedEditSlotKey = key;\n this._msg = undefined;\n this._addZonePick = \"\";\n this._slotEditDraft = this._cloneSlot(slot);\n stripEditSlotQueryFromUrl();\n return;\n }\n\n if (scheduleKnown) {\n this._consumedEditSlotKey = key;\n stripEditSlotQueryFromUrl();\n }\n }\n\n private _resetNewSlotForm(): void {\n this._newWeekday = 0;\n this._newTime = \"06:00\";\n this._newEnabled = true;\n this._newSlotName = \"\";\n }\n\n private _closeAddSlotDialog(): void {\n this._addSlotDialogOpen = false;\n this._resetNewSlotForm();\n }\n\n private _zonesMap(): Record | undefined {\n return this.installation?.zones as Record | undefined;\n }\n\n private _maxParallelZones(): number {\n const n = Number(this.installation?.max_parallel_zones ?? 2);\n return Number.isFinite(n) && n >= 1 ? n : 2;\n }\n\n private _zonesPhaseInput(): Record {\n const zones = this.installation?.zones as\n | Record>\n | undefined;\n if (!zones) return {};\n const out: Record = {};\n for (const [id, z] of Object.entries(zones)) {\n out[id] = {\n enabled: Boolean(z?.enabled ?? true),\n exclusive: Boolean(z?.exclusive ?? false),\n };\n }\n return out;\n }\n\n private _addZoneOptionsForDraft(draft: SlotRow): string[] {\n const zones = this._zonesMap();\n if (!zones) return [];\n return Object.keys(zones).filter((id) => !draft.zone_ids_ordered.includes(id));\n }\n\n private async _saveSlotDraft(): Promise {\n const d = this._slotEditDraft;\n if (!d) return;\n const ok = await this._call({\n action: \"update\",\n slot_id: d.slot_id,\n weekday: d.weekday,\n time_local: d.time_local,\n enabled: d.enabled,\n zone_ids_ordered: d.zone_ids_ordered,\n name: d.name.trim(),\n });\n if (ok) {\n this._closeEditDialog();\n }\n }\n\n private async _deleteSlotDraft(): Promise {\n const d = this._slotEditDraft;\n if (!d) return;\n if (!confirm(t(this.hass, \"config_panel.schedule_confirm_delete_slot\"))) return;\n const ok = await this._call({ action: \"delete\", slot_id: d.slot_id });\n if (ok) {\n this._closeEditDialog();\n }\n }\n\n private async _toggleSlotEnabled(slot: SlotRow, enabled: boolean): Promise {\n if (this._busy) return;\n const ok = await this._call({\n action: \"update\",\n slot_id: slot.slot_id,\n weekday: slot.weekday,\n time_local: slot.time_local,\n enabled,\n zone_ids_ordered: slot.zone_ids_ordered,\n name: slot.name.trim(),\n });\n if (!ok) {\n this.requestUpdate();\n }\n }\n\n override updated(changed: PropertyValues): void {\n super.updated(changed);\n this._consumeEditSlotQueryFromUrl();\n }\n\n protected render() {\n const slots = this._slots();\n const zones = this._zonesMap();\n const draft = this._slotEditDraft;\n const addZoneOpts = draft ? this._addZoneOptionsForDraft(draft) : [];\n const editSlotTitle =\n draft != null\n ? t(this.hass, \"config_panel.schedule_edit_dialog_title\", {\n summary: draft.name.trim()\n ? `${draft.name.trim()} · ${this._wd(draft.weekday)} ${this._fmtSlotTime(\n draft.time_local\n )}`\n : `${this._wd(draft.weekday)} ${this._fmtSlotTime(draft.time_local)}`,\n })\n : \"\";\n\n return html`\n \n
\n ${this._msg ? html`
${this._msg}
` : nothing}\n

${t(this.hass, \"config_panel.schedule_intro\")}

\n
\n {\n this._msg = undefined;\n this._addSlotDialogOpen = true;\n }}\n >\n ${t(this.hass, \"config_panel.schedule_add_slot\")}\n \n
\n ${slots.map((slot) => {\n const n = slot.zone_ids_ordered.length;\n return html`\n
\n
\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n void this._toggleSlotEnabled(slot, Boolean(tgt.checked));\n }}\n >\n
\n
\n

\n ${slot.name\n ? html`${slot.name} · ${this._wd(\n slot.weekday\n )}\n ${this._fmtSlotTime(slot.time_local)}`\n : html`${this._wd(slot.weekday)} ${this._fmtSlotTime(slot.time_local)}`}\n

\n

\n ${(() => {\n const parts: string[] = [];\n if (!slot.enabled) {\n parts.push(t(this.hass, \"config_panel.zones_detail_disabled\"));\n }\n parts.push(\n n === 1\n ? t(this.hass, \"config_panel.schedule_zones_in_order_one\")\n : t(this.hass, \"config_panel.schedule_zones_in_order_many\", { n })\n );\n return parts.join(\" · \");\n })()}\n

\n
\n
\n this._runSlotNow(slot.slot_id)}\n >\n ${t(this.hass, \"config_panel.schedule_run_slot_now\")}\n \n {\n this._msg = undefined;\n this._addZonePick = \"\";\n this._slotEditDraft = this._cloneSlot(slot);\n }}\n >\n ${t(this.hass, \"config_panel.schedule_edit\")}\n \n
\n
\n
\n `;\n })}\n
\n \n\n this._closeAddSlotDialog()}\n >\n

${t(this.hass, \"config_panel.schedule_dialog_new_hint\")}

\n
\n ${t(this.hass, \"config_panel.schedule_name_optional_title\")}\n

${t(this.hass, \"config_panel.schedule_name_optional_desc\")}

\n
\n {\n this._newSlotName = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.schedule_weekday_title\")}\n

${t(this.hass, \"config_panel.schedule_weekday_desc\")}

\n {\n this._newWeekday = parseInt((e.target as HTMLSelectElement).value, 10);\n }}\n >\n ${[0, 1, 2, 3, 4, 5, 6].map(\n (i) =>\n html``\n )}\n \n
\n
\n ${t(this.hass, \"config_panel.schedule_local_time_title\")}\n

${t(this.hass, \"config_panel.schedule_local_time_desc\")}

\n
\n {\n this._newTime = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n this._newEnabled = Boolean(tgt.checked);\n }}\n >\n ${t(this.hass, \"config_panel.schedule_slot_enabled\")}\n
\n
\n
\n
\n \n
\n \n\n this._closeEditDialog()}\n >\n ${draft\n ? html`\n
\n ${t(this.hass, \"config_panel.schedule_name_optional_title\")}\n
\n {\n draft.name = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.schedule_weekday_title\")}\n {\n draft.weekday = parseInt((e.target as HTMLSelectElement).value, 10);\n this.requestUpdate();\n }}\n >\n ${[0, 1, 2, 3, 4, 5, 6].map(\n (i) =>\n html``\n )}\n \n
\n
\n ${t(this.hass, \"config_panel.schedule_start_time_title\")}\n
\n {\n draft.time_local = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n draft.enabled = Boolean(tgt.checked);\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.schedule_slot_enabled\")}\n
\n
\n
\n
\n ${t(this.hass, \"config_panel.schedule_run_order_title\")}\n

${t(this.hass, \"config_panel.schedule_run_order_desc\")}

\n
    \n ${(() => {\n const pmap = phaseIndexByZoneId(\n draft.zone_ids_ordered,\n this._zonesPhaseInput(),\n this._maxParallelZones()\n );\n return draft.zone_ids_ordered.map((zid, idx) => {\n const pnum = pmap.get(zid);\n const prevZid = idx > 0 ? draft.zone_ids_ordered[idx - 1] : undefined;\n const prevP = prevZid !== undefined ? pmap.get(prevZid) : undefined;\n const showPhase = pnum !== undefined && pnum !== prevP;\n return html`\n ${showPhase\n ? html`
  • ${t(\n this.hass,\n \"config_panel.schedule_phase_n\",\n { n: pnum ?? 0 }\n )}
  • `\n : nothing}\n
  • \n ${idx + 1}. ${this._zoneName(zid)}\n \n {\n if (idx > 0) {\n const a = draft.zone_ids_ordered;\n [a[idx - 1], a[idx]] = [a[idx], a[idx - 1]];\n this.requestUpdate();\n }\n }}\n >\n ${t(this.hass, \"config_panel.schedule_up\")}\n \n {\n const a = draft.zone_ids_ordered;\n if (idx < a.length - 1) {\n [a[idx + 1], a[idx]] = [a[idx], a[idx + 1]];\n this.requestUpdate();\n }\n }}\n >\n ${t(this.hass, \"config_panel.schedule_down\")}\n \n {\n draft.zone_ids_ordered = draft.zone_ids_ordered.filter(\n (x) => x !== zid\n );\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.schedule_remove\")}\n \n \n
  • \n `;\n });\n })()}\n
\n ${addZoneOpts.length\n ? html`\n
\n ${t(this.hass, \"config_panel.schedule_add_zone_title\")}\n {\n this._addZonePick = (e.target as HTMLSelectElement).value;\n }}\n >\n \n ${addZoneOpts.map(\n (id) => html``\n )}\n \n
\n {\n if (\n this._addZonePick &&\n !draft.zone_ids_ordered.includes(this._addZonePick)\n ) {\n draft.zone_ids_ordered = [\n ...draft.zone_ids_ordered,\n this._addZonePick,\n ];\n this._addZonePick = \"\";\n this.requestUpdate();\n }\n }}\n >\n ${t(this.hass, \"config_panel.schedule_add_to_list\")}\n \n
\n
\n `\n : zones && Object.keys(zones).length > 0\n ? html`

${t(\n this.hass,\n \"config_panel.schedule_all_zones_in_slot\"\n )}

`\n : html`

${t(\n this.hass,\n \"config_panel.schedule_create_zones_first\"\n )}

`}\n
\n `\n : nothing}\n
\n \n
\n \n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-schedule\", ViewSchedule);\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { defineCustomElementOnce } from \"../helpers\";\nimport { t } from \"../i18n\";\nimport type { HomeAssistant } from \"../types\";\n\nconst BUSY_STATES = new Set([\"preparing\", \"running\", \"stopping\"]);\n\nexport class ViewStatus extends LitElement {\n static properties = {\n hass: { attribute: false },\n runState: { type: Object },\n installation: { type: Object },\n };\n\n hass!: HomeAssistant;\n runState!: Record;\n installation?: Record;\n\n @state() private _showRaw = false;\n\n static styles = css`\n ha-card {\n margin-bottom: 16px;\n }\n .muted {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 12px;\n }\n .summary {\n margin: 0 0 12px;\n line-height: 1.5;\n }\n .summary strong {\n font-weight: 600;\n }\n ul.inline {\n margin: 8px 0 0;\n padding-left: 1.25rem;\n }\n pre {\n overflow: auto;\n font-size: 12px;\n margin: 0;\n white-space: pre-wrap;\n }\n button.toggle-raw {\n margin-top: 12px;\n padding: 8px 14px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 0.9rem;\n }\n `;\n\n private _zoneName(zoneId: string): string {\n const zones = this.installation?.zones as Record> | undefined;\n const z = zones?.[zoneId];\n return z ? String(z.name ?? zoneId) : zoneId;\n }\n\n private _zoneList(ids: string[]): string {\n return ids.map((id) => this._zoneName(id)).join(\", \");\n }\n\n protected render() {\n const rs = this.runState ?? {};\n const stateStr = String(rs.run_state ?? \"idle\");\n const busy = BUSY_STATES.has(stateStr);\n const manual = Boolean(rs.manual_run);\n const active = Array.isArray(rs.active_zone_ids)\n ? (rs.active_zone_ids as string[])\n : [];\n const queued = Array.isArray(rs.queued_zone_ids)\n ? (rs.queued_zone_ids as string[])\n : [];\n const lastErr = rs.last_error ? String(rs.last_error) : \"\";\n\n return html`\n \n
\n

${t(this.hass, \"config_panel.status_intro\")}

\n
\n

\n ${t(this.hass, \"config_panel.status_state_label\")}\n ${busy\n ? t(this.hass, \"config_panel.status_state_run_in_progress\")\n : stateStr === \"error\"\n ? t(this.hass, \"config_panel.status_state_error\")\n : t(this.hass, \"config_panel.status_state_idle\")}\n

\n ${busy && manual\n ? html`

\n ${t(this.hass, \"config_panel.status_manual_label\")}\n ${t(this.hass, \"config_panel.status_manual_text\")}\n

`\n : busy && !manual\n ? html`

\n ${t(this.hass, \"config_panel.status_scheduled_label\")}\n ${t(this.hass, \"config_panel.status_scheduled_text\")}\n

`\n : html`

${t(this.hass, \"config_panel.status_idle_hint\")}

`}\n ${active.length\n ? html`

\n ${t(this.hass, \"config_panel.status_active_zones\")}\n ${this._zoneList(active)}\n

`\n : nothing}\n ${queued.length\n ? html`

\n ${t(this.hass, \"config_panel.status_queued_zones\")}\n ${this._zoneList(queued)}\n

`\n : nothing}\n ${lastErr\n ? html`

\n ${t(this.hass, \"config_panel.status_last_error\")}\n ${lastErr}\n

`\n : nothing}\n

\n ${t(this.hass, \"config_panel.status_error_clear_hint\")}\n

\n
\n {\n this._showRaw = !this._showRaw;\n }}\n >\n ${this._showRaw\n ? t(this.hass, \"config_panel.status_hide_raw\")\n : t(this.hass, \"config_panel.status_show_raw\")}\n \n ${this._showRaw\n ? html`
${JSON.stringify(this.runState, null, 2)}
`\n : nothing}\n
\n
\n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-status\", ViewStatus);\n","/** Weekly timetable entries from schedule slots (local wall clock, Mon=0 … Sun=6). */\n\nimport { computePhases, type ZonePhaseInput } from \"./schedule-phases\";\n\n/** 0 = 00:00–08:00, 1 = 08:00–16:00, 2 = 16:00–24:00 (by segment start time). */\nexport type TimetableBucket = 0 | 1 | 2;\n\nexport interface TimetableEntry {\n zoneId: string;\n weekday: number;\n startMin: number;\n endMin: number;\n bucket: TimetableBucket;\n /** Plan, slot, and zone all on — theme “active” styling. */\n enabled: boolean;\n mode: string;\n slotId: string;\n}\n\nexport function parseTimeLocalToMinutes(timeLocal: string): number {\n const m = /^(\\d{1,2}):(\\d{2})$/.exec(timeLocal.trim());\n if (!m) return 0;\n const h = Math.min(23, Math.max(0, parseInt(m[1], 10)));\n const min = Math.min(59, Math.max(0, parseInt(m[2], 10)));\n return h * 60 + min;\n}\n\nexport function durationForMode(\n zone: Record | undefined,\n mode: string\n): number {\n if (!zone) return 0;\n if (mode === \"eco\") return Math.max(0, Number(zone.duration_eco_min ?? 0));\n if (mode === \"extra\") return Math.max(0, Number(zone.duration_extra_min ?? 0));\n return Math.max(0, Number(zone.duration_normal_min ?? 0));\n}\n\n/** Bucket by wall-clock hour of segment start ([0,8), [8,16), [16,24)). */\nexport function bucketFromStartMin(startMin: number): TimetableBucket {\n const h = Math.floor(Math.max(0, startMin) / 60);\n if (h < 8) return 0;\n if (h < 16) return 1;\n return 2;\n}\n\n/**\n * Weekday column order: values are internal indices 0=Monday … 6=Sunday.\n */\nexport function weekdayIndicesForDisplay(\n firstWeekday: string | undefined,\n language: string | undefined\n): number[] {\n const monFirst = [0, 1, 2, 3, 4, 5, 6];\n const sunFirst = [6, 0, 1, 2, 3, 4, 5];\n const fw = (firstWeekday || \"monday\").toLowerCase();\n if (fw === \"sunday\") return sunFirst;\n if (fw === \"monday\") return monFirst;\n if (fw === \"language\" && language) {\n try {\n const loc = new Intl.Locale(language.replace(/_/g, \"-\")) as Intl.Locale & {\n weekInfo?: { firstDay?: number };\n };\n const fd = loc.weekInfo?.firstDay;\n if (fd === 7) return sunFirst;\n return monFirst;\n } catch {\n return monFirst;\n }\n }\n return monFirst;\n}\n\nfunction zonesPhaseInputFromInstallation(\n zones: Record> | undefined\n): Record {\n const out: Record = {};\n if (!zones) return out;\n for (const [id, z] of Object.entries(zones)) {\n out[id] = {\n enabled: Boolean(z.enabled ?? true),\n exclusive: Boolean(z.exclusive),\n };\n }\n return out;\n}\n\n/**\n * Phase grouping includes disabled zones (they render gray) but phase advance\n * uses max duration among enabled zones only (matches runtime).\n */\nexport function buildTimetableEntries(installation: Record): TimetableEntry[] {\n const planEnabled = Boolean(installation?.enabled ?? true);\n const preStartSec = Math.max(0, Number(installation?.pre_start_delay_sec ?? 10));\n const mode = String(installation?.mode ?? \"normal\");\n const maxParallel = Math.max(1, Number(installation?.max_parallel_zones ?? 2));\n const zones = installation?.zones as Record> | undefined;\n const slots = installation?.schedule_slots as\n | Array>\n | undefined;\n\n const zonesById = zonesPhaseInputFromInstallation(zones);\n const entries: TimetableEntry[] = [];\n\n if (!slots?.length || !zones) {\n return entries;\n }\n\n for (const slot of slots) {\n const slotId = String(slot.slot_id ?? \"\");\n const slotEnabled = Boolean(slot.enabled ?? true);\n const weekday = Math.max(0, Math.min(6, Number(slot.weekday ?? 0)));\n const timeLocal = String(slot.time_local ?? \"00:00\");\n const ordered = Array.isArray(slot.zone_ids_ordered)\n ? (slot.zone_ids_ordered as string[])\n : [];\n\n const slotStartMin = parseTimeLocalToMinutes(timeLocal);\n let cursor = slotStartMin + preStartSec / 60;\n\n const phases = computePhases(ordered, zonesById, maxParallel, false);\n\n for (const phase of phases) {\n const phaseStart = cursor;\n let phaseLenMin = 0;\n for (const zid of phase) {\n const z = zones[zid];\n if (!z) continue;\n if (Boolean(z.enabled ?? true)) {\n const d = durationForMode(z, mode);\n phaseLenMin = Math.max(phaseLenMin, d);\n }\n }\n\n for (const zid of phase) {\n const z = zones[zid];\n if (!z) continue;\n const zoneEnabled = Boolean(z.enabled ?? true);\n const dur = durationForMode(z, mode);\n const startMin = phaseStart;\n const endMin = phaseStart + dur;\n entries.push({\n zoneId: zid,\n weekday,\n startMin,\n endMin,\n bucket: bucketFromStartMin(startMin),\n enabled: planEnabled && slotEnabled && zoneEnabled,\n mode,\n slotId,\n });\n }\n\n cursor = phaseStart + phaseLenMin;\n }\n }\n\n return entries;\n}\n\nexport function zoneRowOrder(installation: Record): string[] {\n const zones = installation?.zones as Record | undefined;\n if (!zones) return [];\n return Object.keys(zones);\n}\n\nexport function zoneDisplayName(\n installation: Record,\n zoneId: string\n): string {\n const zones = installation?.zones as Record> | undefined;\n const z = zones?.[zoneId];\n const name = z?.name != null ? String(z.name) : \"\";\n return name.trim() || zoneId.slice(0, 8);\n}\n\n/** HH:MM for profile time formatting (minutes may be fractional from pre-start seconds). */\nexport function minutesToTimeLocal(totalMin: number): string {\n const t = Math.max(0, totalMin);\n const m = Math.floor(t);\n const h = Math.min(23, Math.floor(m / 60));\n const mm = m % 60;\n return `${h}:${String(mm).padStart(2, \"0\")}`;\n}\n\n/** Rounded duration in minutes for UI labels. */\nexport function entryDurationMinutesRounded(entry: TimetableEntry): number {\n return Math.max(0, Math.round(entry.endMin - entry.startMin));\n}\n\nconst BUCKET_KEYS: TimetableBucket[] = [0, 1, 2];\n\n/** Horizontal stacking when multiple entries share the same zone, weekday, and bucket. */\nexport function assignEntryLanes(\n entries: TimetableEntry[]\n): Map {\n const byCell = new Map();\n for (const e of entries) {\n const k = `${e.weekday}:${e.zoneId}:${e.bucket}`;\n if (!byCell.has(k)) byCell.set(k, []);\n byCell.get(k)!.push(e);\n }\n const out = new Map();\n for (const list of byCell.values()) {\n list.sort((a, b) => a.startMin - b.startMin || a.endMin - b.endMin);\n const ends: number[] = [];\n for (const e of list) {\n let lane = 0;\n while (lane < ends.length && ends[lane] > e.startMin + 1e-3) {\n lane++;\n }\n if (lane === ends.length) {\n ends.push(e.endMin);\n } else {\n ends[lane] = Math.max(ends[lane], e.endMin);\n }\n out.set(e, { lane, maxLanes: 0 });\n }\n const maxLanes = Math.max(1, ends.length);\n for (const e of list) {\n out.get(e)!.maxLanes = maxLanes;\n }\n }\n return out;\n}\n\nexport const TIMETABLE_BUCKET_INDICES: readonly TimetableBucket[] = BUCKET_KEYS;\n\n/**\n * How many schedule slots include `zone_id` in `zone_ids_ordered` (distinct slots;\n * each slot counts at most once per zone).\n */\nexport function slotInclusionCountPerZone(installation: Record): Record {\n const slots = installation?.schedule_slots as Array> | undefined;\n const counts: Record = {};\n if (!Array.isArray(slots)) return counts;\n for (const slot of slots) {\n const ordered = Array.isArray(slot.zone_ids_ordered)\n ? (slot.zone_ids_ordered as string[])\n : [];\n const seen = new Set();\n for (const zid of ordered) {\n if (seen.has(zid)) continue;\n seen.add(zid);\n counts[zid] = (counts[zid] ?? 0) + 1;\n }\n }\n return counts;\n}\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { defineCustomElementOnce, navigate } from \"../helpers\";\nimport { exportPath } from \"../navigation\";\nimport { t } from \"../i18n\";\nimport { weekdayLong } from \"../date-format\";\nimport { formatSlotTimeForProfile } from \"../profile-datetime\";\nimport {\n assignEntryLanes,\n buildTimetableEntries,\n entryDurationMinutesRounded,\n minutesToTimeLocal,\n TIMETABLE_BUCKET_INDICES,\n weekdayIndicesForDisplay,\n zoneDisplayName,\n zoneRowOrder,\n type TimetableBucket,\n type TimetableEntry,\n} from \"../timetable-model\";\nimport type { HomeAssistant } from \"../types\";\n\nexport class ViewTimetable extends LitElement {\n static properties = {\n hass: { attribute: false },\n entryId: { type: String },\n installation: { type: Object },\n };\n\n hass!: HomeAssistant;\n entryId!: string;\n installation!: Record;\n\n static styles = css`\n ha-card {\n margin-bottom: 16px;\n }\n .card-content {\n padding: 0 8px 16px;\n }\n .intro {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 12px;\n }\n .table-wrap {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n margin: 0 -4px;\n }\n .tt-table {\n width: 100%;\n min-width: 520px;\n border-collapse: collapse;\n table-layout: fixed;\n font-size: 0.8125rem;\n background: var(--card-background-color, var(--ha-card-background));\n border: 1px solid var(--divider-color);\n border-radius: 8px;\n overflow: hidden;\n }\n .tt-table th,\n .tt-table td {\n border: 1px solid var(--divider-color);\n vertical-align: top;\n padding: 6px 8px;\n }\n .tt-th-zone {\n width: 12%;\n max-width: 96px;\n text-align: left;\n font-weight: 600;\n font-size: 0.7rem;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--secondary-text-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.04));\n }\n .tt-th-bucket {\n width: 1.75rem;\n min-width: 1.75rem;\n max-width: 1.75rem;\n padding: 6px 2px;\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.04));\n }\n .tt-th-day {\n text-align: center;\n font-weight: 600;\n font-size: 0.78rem;\n color: var(--primary-text-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.04));\n }\n .tt-zone-name {\n text-align: left;\n font-weight: 600;\n font-size: 0.8125rem;\n line-height: 1.3;\n color: var(--primary-text-color);\n background: var(--card-background-color, var(--ha-card-background));\n word-break: break-word;\n hyphens: auto;\n padding: 6px 6px;\n vertical-align: middle;\n }\n .tt-bucket-icon {\n text-align: center;\n vertical-align: middle;\n padding: 4px 2px;\n width: 1.75rem;\n min-width: 1.75rem;\n max-width: 1.75rem;\n background: var(--card-background-color, var(--ha-card-background));\n }\n .tt-bucket-icon ha-icon {\n display: block;\n margin: 0 auto;\n color: var(--secondary-text-color);\n --mdc-icon-size: 18px;\n width: 18px;\n height: 18px;\n }\n .tt-bucket-cell {\n background: var(--card-background-color, var(--ha-card-background));\n padding: 4px 4px 6px;\n min-height: 52px;\n }\n .tt-blocks {\n display: flex;\n flex-direction: column;\n gap: 4px;\n align-items: stretch;\n }\n .tt-blocks--lanes {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 3px;\n }\n .tt-block {\n box-sizing: border-box;\n border-radius: 6px;\n padding: 5px 6px;\n font-size: 0.68rem;\n line-height: 1.25;\n min-height: 2.5rem;\n flex: 1 1 auto;\n min-width: 0;\n color: var(--text-primary-color, var(--primary-text-color));\n border: 1px solid transparent;\n }\n .tt-blocks--lanes .tt-block {\n flex: 1 1 calc(50% - 2px);\n min-width: calc(50% - 2px);\n }\n .tt-block--active {\n background: color-mix(in srgb, var(--primary-color) 78%, var(--card-background-color));\n border-color: color-mix(in srgb, var(--primary-color) 42%, transparent);\n color: var(--text-primary-color, var(--primary-text-color));\n }\n .tt-block--disabled {\n background: color-mix(in srgb, var(--disabled-color, #9e9e9e) 38%, var(--card-background-color));\n border-color: var(--divider-color);\n color: var(--secondary-text-color);\n }\n .tt-block:hover {\n filter: brightness(1.05);\n }\n .tt-block--clickable {\n cursor: pointer;\n }\n .tt-block--clickable:focus-visible {\n outline: 2px solid var(--primary-color);\n outline-offset: 2px;\n }\n .tt-block-time {\n font-weight: 600;\n display: block;\n }\n .tt-block-dur {\n font-size: 0.62rem;\n opacity: 0.92;\n }\n .foot {\n margin-top: 14px;\n padding-top: 10px;\n border-top: 1px solid var(--divider-color);\n font-size: 0.75rem;\n color: var(--secondary-text-color);\n }\n .legend {\n display: flex;\n flex-wrap: wrap;\n gap: 10px 14px;\n align-items: center;\n }\n .legend-sep {\n flex-shrink: 0;\n width: 1px;\n align-self: stretch;\n min-height: 1rem;\n margin: 2px 2px 2px 4px;\n background: var(--divider-color);\n }\n .legend-period {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n line-height: 1.35;\n }\n .legend-period ha-icon {\n flex-shrink: 0;\n color: var(--secondary-text-color);\n --mdc-icon-size: 18px;\n width: 18px;\n height: 18px;\n }\n .legend-item {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .swatch {\n width: 14px;\n height: 14px;\n border-radius: 3px;\n flex-shrink: 0;\n border: 1px solid var(--divider-color);\n }\n .swatch--active {\n background: color-mix(in srgb, var(--primary-color) 78%, var(--card-background-color));\n border-color: color-mix(in srgb, var(--primary-color) 35%, transparent);\n }\n .swatch--disabled {\n background: color-mix(in srgb, var(--disabled-color, #9e9e9e) 38%, var(--card-background-color));\n }\n .empty {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n margin: 0;\n padding: 8px 0;\n }\n @media (max-width: 600px) {\n .intro {\n font-size: 0.8rem;\n margin-bottom: 8px;\n }\n .tt-table {\n min-width: 480px;\n font-size: 0.72rem;\n }\n .tt-table th,\n .tt-table td {\n padding: 4px 5px;\n }\n .tt-th-zone {\n font-size: 0.62rem;\n max-width: 80px;\n }\n .tt-th-bucket {\n width: 1.5rem;\n min-width: 1.5rem;\n max-width: 1.5rem;\n }\n .tt-th-day {\n font-size: 0.68rem;\n }\n .tt-zone-name {\n font-size: 0.72rem;\n }\n .tt-bucket-icon {\n padding: 3px 1px;\n width: 1.5rem;\n min-width: 1.5rem;\n max-width: 1.5rem;\n }\n .tt-bucket-icon ha-icon {\n --mdc-icon-size: 16px;\n width: 16px;\n height: 16px;\n }\n .tt-bucket-cell {\n min-height: 44px;\n padding: 3px 2px 4px;\n }\n .tt-block {\n font-size: 0.6rem;\n padding: 3px 4px;\n min-height: 2.1rem;\n border-radius: 4px;\n }\n .tt-block-dur {\n font-size: 0.55rem;\n }\n .foot {\n font-size: 0.68rem;\n }\n .legend-period ha-icon {\n --mdc-icon-size: 16px;\n width: 16px;\n height: 16px;\n }\n }\n `;\n\n private _bucketIcon(bucket: TimetableBucket): string {\n if (bucket === 0) return \"mdi:weather-sunset-up\";\n if (bucket === 1) return \"mdi:white-balance-sunny\";\n return \"mdi:weather-sunset\";\n }\n\n private _bucketAriaLabel(bucket: TimetableBucket): string {\n if (bucket === 0) return t(this.hass, \"config_panel.timetable_bucket_aria_morning\");\n if (bucket === 1) return t(this.hass, \"config_panel.timetable_bucket_aria_day\");\n return t(this.hass, \"config_panel.timetable_bucket_aria_evening\");\n }\n\n private _bucketLegendCaption(bucket: TimetableBucket): string {\n if (bucket === 0) return t(this.hass, \"config_panel.timetable_legend_bucket_morning\");\n if (bucket === 1) return t(this.hass, \"config_panel.timetable_legend_bucket_day\");\n return t(this.hass, \"config_panel.timetable_legend_bucket_evening\");\n }\n\n private _entryTooltip(e: TimetableEntry): string {\n const start = formatSlotTimeForProfile(this.hass, minutesToTimeLocal(e.startMin));\n const end = formatSlotTimeForProfile(this.hass, minutesToTimeLocal(e.endMin));\n const modeKey =\n e.mode === \"eco\"\n ? \"config_panel.timetable_mode_eco\"\n : e.mode === \"extra\"\n ? \"config_panel.timetable_mode_extra\"\n : \"config_panel.timetable_mode_normal\";\n const modeLabel = t(this.hass, modeKey);\n return t(this.hass, \"config_panel.timetable_bar_tooltip\", {\n start,\n end,\n mode: modeLabel,\n });\n }\n\n private _entriesForCell(\n map: Map,\n weekday: number,\n zoneId: string,\n bucket: TimetableBucket\n ): TimetableEntry[] {\n return map.get(`${weekday}\\t${zoneId}\\t${bucket}`) ?? [];\n }\n\n private _openSlotEditor(slotId: string): void {\n if (!slotId || !this.entryId) return;\n const q = new URLSearchParams({ editSlot: slotId });\n navigate(this, `${exportPath(this.entryId, \"schedule\")}?${q.toString()}`);\n }\n\n private _blockKeydown(ev: KeyboardEvent, slotId: string): void {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.preventDefault();\n this._openSlotEditor(slotId);\n }\n }\n\n protected render() {\n const inst = this.installation ?? {};\n const zones = inst.zones as Record | undefined;\n const slots = inst.schedule_slots as unknown[] | undefined;\n const zoneIds = zoneRowOrder(inst);\n const entries = buildTimetableEntries(inst);\n const laneInfo = assignEntryLanes(entries);\n\n const colOrder = weekdayIndicesForDisplay(\n this.hass?.locale?.first_weekday,\n this.hass?.locale?.language ?? this.hass?.language\n );\n\n if (!zones || zoneIds.length === 0) {\n return html`\n \n
\n

${t(this.hass, \"config_panel.timetable_intro\")}

\n

${t(this.hass, \"config_panel.timetable_empty_no_zones\")}

\n
\n
\n `;\n }\n\n if (!slots?.length) {\n return html`\n \n
\n

${t(this.hass, \"config_panel.timetable_intro\")}

\n

${t(this.hass, \"config_panel.timetable_empty_no_slots\")}

\n
\n
\n `;\n }\n\n const byCell = new Map();\n for (const e of entries) {\n const k = `${e.weekday}\\t${e.zoneId}\\t${e.bucket}`;\n if (!byCell.has(k)) byCell.set(k, []);\n byCell.get(k)!.push(e);\n }\n\n return html`\n \n
\n

${t(this.hass, \"config_panel.timetable_intro\")}

\n
\n \n \n \n \n \n ${colOrder.map(\n (wd) =>\n html``\n )}\n \n \n \n ${zoneIds.flatMap((zid) => {\n const name = zoneDisplayName(inst, zid);\n return TIMETABLE_BUCKET_INDICES.map((bucket, bi) => {\n return html`\n \n ${bi === 0\n ? html``\n : nothing}\n \n \n \n ${colOrder.map((wd) => {\n const cellEntries = [...this._entriesForCell(byCell, wd, zid, bucket)].sort(\n (a, b) => a.startMin - b.startMin\n );\n const multiLane = cellEntries.some((e) => {\n const info = laneInfo.get(e);\n return info && info.maxLanes > 1;\n });\n return html`\n \n `;\n })}\n \n `;\n });\n })}\n \n
${t(this.hass, \"config_panel.timetable_col_zone\")}${weekdayLong(this.hass, wd)}
${name}\n ${cellEntries.length\n ? html`\n
\n ${cellEntries.map((e) => {\n const start = formatSlotTimeForProfile(\n this.hass,\n minutesToTimeLocal(e.startMin)\n );\n const end = formatSlotTimeForProfile(\n this.hass,\n minutesToTimeLocal(e.endMin)\n );\n const dur = entryDurationMinutesRounded(e);\n const durLabel = t(this.hass, \"config_panel.timetable_duration_min\", {\n n: dur,\n });\n return html`\n this._openSlotEditor(e.slotId)}\n @keydown=${(ev: KeyboardEvent) =>\n this._blockKeydown(ev, e.slotId)}\n >\n ${start} – ${end}\n ${durLabel}\n
\n `;\n })}\n \n `\n : nothing}\n
\n
\n
\n
\n \n \n ${t(this.hass, \"config_panel.timetable_legend_active\")}\n \n \n \n ${t(this.hass, \"config_panel.timetable_legend_disabled\")}\n \n \n ${TIMETABLE_BUCKET_INDICES.map(\n (b) => html`\n \n \n ${this._bucketLegendCaption(b)}\n \n `\n )}\n
\n
\n
\n
\n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-timetable\", ViewTimetable);\n","import { LitElement, html, css, nothing, type TemplateResult } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { runZoneNow, saveZone } from \"../data/api\";\nimport { renderEntityDatalist, renderNativeEntityField } from \"../entity-input\";\nimport { defineCustomElementOnce, formatApiError } from \"../helpers\";\nimport { t } from \"../i18n\";\nimport { formLayoutStyles } from \"../form-layout-styles\";\nimport { slotInclusionCountPerZone } from \"../timetable-model\";\nimport type { HomeAssistant } from \"../types\";\n\nconst domains = [\"switch\", \"input_boolean\", \"group\"];\n\ninterface ZoneRow {\n zone_id: string;\n name: string;\n switch_entity_ids: string[];\n enabled: boolean;\n duration_eco_min: number;\n duration_normal_min: number;\n duration_extra_min: number;\n exclusive: boolean;\n}\n\nexport class ViewZones extends LitElement {\n static properties = {\n hass: { attribute: false },\n entryId: { type: String },\n installation: { type: Object },\n runState: { type: Object },\n onSaved: { attribute: false },\n };\n\n hass!: HomeAssistant;\n entryId!: string;\n installation!: Record;\n runState?: Record;\n onSaved?: () => void;\n\n static styles = [\n formLayoutStyles,\n css`\n ha-card {\n margin-bottom: 16px;\n }\n .card-content {\n padding: 0 8px 16px;\n }\n .error {\n color: var(--error-color);\n margin: 8px 0;\n }\n .intro {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 16px;\n }\n .toolbar {\n margin-bottom: 16px;\n }\n .zone-list-row-wrap {\n display: flex;\n align-items: stretch;\n margin-bottom: 12px;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--divider-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.02));\n }\n .zone-list-row-accent {\n width: 8px;\n flex-shrink: 0;\n background: var(--primary-color);\n transition: background 0.15s ease;\n }\n .zone-list-row-accent.inactive {\n background: var(--disabled-text-color, rgba(158, 158, 158, 0.45));\n }\n .zone-list-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px 16px;\n flex: 1;\n min-width: 0;\n padding: 14px 16px;\n }\n .zone-list-row-toggle {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n .zone-list-row-toggle ha-switch {\n --switch-padding: 4px;\n }\n .zone-list-main {\n flex: 1;\n min-width: 160px;\n }\n .zone-list-name {\n font-size: 1.1rem;\n font-weight: 600;\n margin: 0 0 4px;\n }\n .zone-list-detail {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n margin: 0;\n line-height: 1.4;\n }\n .zone-list-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n }\n .zone-list-actions .btn-outline {\n margin-top: 0;\n }\n .zone-list-actions button {\n align-self: center;\n margin-top: 0;\n }\n button {\n padding: 10px 18px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 1rem;\n }\n button.danger {\n border-color: var(--error-color);\n color: var(--error-color);\n }\n button.primary {\n background: var(--primary-color);\n color: var(--text-primary-color);\n border: none;\n }\n button.primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `,\n ];\n\n @state() private _busy = false;\n @state() private _msg?: string;\n @state() private _addDialogOpen = false;\n @state() private _editDraft: ZoneRow | null = null;\n private _new: ZoneRow = {\n zone_id: \"\",\n name: \"\",\n switch_entity_ids: [\"\"],\n enabled: true,\n duration_eco_min: 10,\n duration_normal_min: 15,\n duration_extra_min: 20,\n exclusive: false,\n };\n\n private _cloneZone(z: ZoneRow): ZoneRow {\n return {\n ...z,\n switch_entity_ids: [...z.switch_entity_ids],\n };\n }\n\n private _zonesFromInstallation(): ZoneRow[] {\n const z = this.installation?.zones as Record> | undefined;\n if (!z) return [];\n return Object.entries(z).map(([zone_id, o]) => {\n const raw = (o as Record).switch_entity_ids;\n let switch_entity_ids: string[] = [];\n if (Array.isArray(raw)) {\n switch_entity_ids = raw.map((x) => String(x)).filter(Boolean);\n } else if (o.switch_entity_id) {\n switch_entity_ids = [String(o.switch_entity_id)];\n }\n if (switch_entity_ids.length === 0) {\n switch_entity_ids = [\"\"];\n }\n return {\n zone_id,\n name: String(o.name ?? \"\"),\n switch_entity_ids,\n enabled: Boolean(o.enabled ?? true),\n duration_eco_min: Number(o.duration_eco_min ?? 10),\n duration_normal_min: Number(o.duration_normal_min ?? 15),\n duration_extra_min: Number(o.duration_extra_min ?? 20),\n exclusive: Boolean(o.exclusive ?? false),\n };\n });\n }\n\n private _resetNewZone(): void {\n this._new = {\n zone_id: \"\",\n name: \"\",\n switch_entity_ids: [\"\"],\n enabled: true,\n duration_eco_min: 10,\n duration_normal_min: 15,\n duration_extra_min: 20,\n exclusive: false,\n };\n }\n\n private _closeAddDialog(): void {\n this._addDialogOpen = false;\n this._resetNewZone();\n }\n\n private _closeEditDialog(): void {\n this._editDraft = null;\n }\n\n private _canSaveZone(zone: ZoneRow): boolean {\n return Boolean(zone.name.trim() && zone.switch_entity_ids.some((id) => id.trim()));\n }\n\n private async _runZoneNow(zoneId: string): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = (await runZoneNow(this.hass, this.entryId, zoneId)) as {\n success: boolean;\n error?: string;\n };\n if (!res.success) {\n const err = res.error ?? \"run_failed\";\n this._msg =\n err === \"busy\"\n ? t(this.hass, \"config_panel.zones_err_busy\")\n : err === \"zone_already_queued\"\n ? t(this.hass, \"config_panel.zones_err_zone_already_queued\")\n : err === \"unknown_zone\"\n ? t(this.hass, \"config_panel.zones_err_unknown_zone\")\n : err === \"zone_disabled\"\n ? t(this.hass, \"config_panel.zones_err_zone_disabled\")\n : err === \"zone_no_outputs\"\n ? t(this.hass, \"config_panel.zones_err_zone_no_outputs\")\n : String(err);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private _zonesEntityListId(): string {\n return `si-ent-z-${this.entryId}`;\n }\n\n private async _toggleZoneEnabled(z: ZoneRow, enabled: boolean): Promise {\n if (this._busy) return;\n this._busy = true;\n this._msg = undefined;\n try {\n const body: Record = {\n action: \"update\",\n zone_id: z.zone_id,\n zone: {\n name: z.name,\n switch_entity_ids: z.switch_entity_ids.filter(Boolean),\n enabled,\n duration_eco_min: z.duration_eco_min,\n duration_normal_min: z.duration_normal_min,\n duration_extra_min: z.duration_extra_min,\n exclusive: z.exclusive,\n },\n };\n const res = await saveZone(this.hass, this.entryId, body);\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private async _saveZone(\n action: \"add\" | \"update\" | \"delete\",\n zoneId: string | undefined,\n zone?: ZoneRow\n ): Promise {\n this._busy = true;\n this._msg = undefined;\n try {\n const body: Record = { action };\n if (zoneId) body.zone_id = zoneId;\n if (zone && action !== \"delete\") {\n body.zone = {\n name: zone.name,\n switch_entity_ids: zone.switch_entity_ids.filter(Boolean),\n enabled: zone.enabled,\n duration_eco_min: zone.duration_eco_min,\n duration_normal_min: zone.duration_normal_min,\n duration_extra_min: zone.duration_extra_min,\n exclusive: zone.exclusive,\n };\n }\n const res = await saveZone(this.hass, this.entryId, body);\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n if (action === \"update\" || action === \"delete\") {\n this._closeEditDialog();\n }\n if (action === \"add\") {\n this._closeAddDialog();\n }\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n }\n }\n\n private _renderZoneFields(z: ZoneRow): TemplateResult {\n return html`\n
\n ${t(this.hass, \"config_panel.zones_field_name_title\")}\n

${t(this.hass, \"config_panel.zones_field_name_desc\")}

\n
\n {\n z.name = (e.target as HTMLInputElement).value;\n this.requestUpdate();\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.zones_outputs_title\")}\n

${t(this.hass, \"config_panel.zones_outputs_desc\")}

\n
\n
\n ${z.switch_entity_ids.map(\n (eid, i) => html`\n
\n ${renderNativeEntityField(\n this.hass,\n this._zonesEntityListId(),\n i === 0\n ? t(this.hass, \"config_panel.zones_output_first\")\n : t(this.hass, \"config_panel.zones_output_n\", { n: i + 1 }),\n eid,\n (v) => {\n const next = [...z.switch_entity_ids];\n next[i] = v;\n z.switch_entity_ids = next;\n this.requestUpdate();\n }\n )}\n ${z.switch_entity_ids.length > 1\n ? html`\n {\n z.switch_entity_ids.splice(i, 1);\n if (z.switch_entity_ids.length === 0) {\n z.switch_entity_ids = [\"\"];\n }\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.general_remove\")}\n \n `\n : nothing}\n
\n `\n )}\n {\n z.switch_entity_ids = [...z.switch_entity_ids, \"\"];\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.zones_add_output\")}\n \n
\n
\n
\n
\n ${t(this.hass, \"config_panel.zones_runtime_title\")}\n

${t(this.hass, \"config_panel.zones_runtime_desc\")}

\n
\n {\n z.duration_eco_min = parseInt((e.target as HTMLInputElement).value, 10) || 0;\n }}\n >\n {\n z.duration_normal_min = parseInt((e.target as HTMLInputElement).value, 10) || 0;\n }}\n >\n {\n z.duration_extra_min = parseInt((e.target as HTMLInputElement).value, 10) || 0;\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.zones_behavior_title\")}\n

${t(this.hass, \"config_panel.zones_behavior_desc\")}

\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n z.enabled = Boolean(tgt.checked);\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.zones_enabled\")}\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n z.exclusive = Boolean(tgt.checked);\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.zones_exclusive\")}\n
\n
\n
\n `;\n }\n\n protected render() {\n const zones = this._zonesFromInstallation();\n const edit = this._editDraft;\n const slotsPerZone = slotInclusionCountPerZone(this.installation ?? {});\n\n return html`\n ${renderEntityDatalist(this.hass, this._zonesEntityListId(), domains)}\n \n
\n ${this._msg ? html`
${this._msg}
` : nothing}\n

${t(this.hass, \"config_panel.zones_intro\")}

\n

${t(this.hass, \"config_panel.zones_intro_automation\")}

\n
\n {\n this._addDialogOpen = true;\n }}\n >\n ${t(this.hass, \"config_panel.zones_add_zone\")}\n \n
\n ${zones.map((z) => {\n const outs = z.switch_entity_ids.filter(Boolean).length;\n const runDisabled = this._busy || !z.enabled || outs === 0;\n return html`\n
\n
\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n void this._toggleZoneEnabled(z, Boolean(tgt.checked));\n }}\n >\n
\n
\n

${z.name || z.zone_id.slice(0, 8)}

\n

\n ${(() => {\n const parts: string[] = [];\n if (!z.enabled) {\n parts.push(t(this.hass, \"config_panel.zones_detail_disabled\"));\n }\n if (z.exclusive) {\n parts.push(t(this.hass, \"config_panel.zones_detail_exclusive\"));\n }\n parts.push(\n t(this.hass, \"config_panel.zones_detail_durations\", {\n eco: z.duration_eco_min,\n normal: z.duration_normal_min,\n extra: z.duration_extra_min,\n })\n );\n const slotN = slotsPerZone[z.zone_id] ?? 0;\n if (slotN === 1) {\n parts.push(t(this.hass, \"config_panel.zones_detail_added_slots_one\"));\n } else if (slotN > 1) {\n parts.push(\n t(this.hass, \"config_panel.zones_detail_added_slots_many\", { n: slotN })\n );\n }\n if (outs === 1) {\n parts.push(t(this.hass, \"config_panel.zones_detail_outputs_one\"));\n } else if (outs > 1) {\n parts.push(\n t(this.hass, \"config_panel.zones_detail_outputs_many\", { n: outs })\n );\n }\n return parts.join(\" · \");\n })()}\n

\n
\n
\n this._runZoneNow(z.zone_id)}\n >\n ${t(this.hass, \"config_panel.zones_run_zone_now\")}\n \n {\n this._msg = undefined;\n this._editDraft = this._cloneZone(z);\n }}\n >\n ${t(this.hass, \"config_panel.zones_edit\")}\n \n
\n
\n
\n `;\n })}\n
\n \n\n this._closeAddDialog()}\n >\n ${this._renderZoneFields(this._new)}\n
\n \n
\n \n\n this._closeEditDialog()}\n >\n ${edit ? this._renderZoneFields(edit) : nothing}\n
\n \n
\n \n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-zones\", ViewZones);\n","import { LitElement, html, css, nothing } from \"lit\";\nimport {\n fetchPanelState,\n listSimpleIrrigationEntries,\n type ConfigEntryRow,\n} from \"./data/api\";\nimport { defineCustomElementOnce, navigate } from \"./helpers\";\nimport { t, TRANSLATION_DOMAIN } from \"./i18n\";\nimport { loadHaPanelElements } from \"./load-ha-elements\";\nimport { exportPath, getPath } from \"./navigation\";\nimport { panelStyles } from \"./styles\";\nimport type { HomeAssistant, PanelStateResult } from \"./types\";\nimport \"./views/view-general\";\nimport \"./views/view-schedule\";\nimport \"./views/view-status\";\nimport \"./views/view-timetable\";\nimport \"./views/view-zones\";\n\nconst VERSION = \"0.2.0\";\n\nconst PANEL_PAGES = [\"general\", \"zones\", \"schedule\", \"timetable\", \"status\"] as const;\ntype PanelPage = (typeof PANEL_PAGES)[number];\n\nconst TAB_LABEL_KEYS: Record = {\n general: \"config_panel.tab_general\",\n zones: \"config_panel.tab_zones\",\n schedule: \"config_panel.tab_schedule\",\n timetable: \"config_panel.tab_timetable\",\n status: \"config_panel.tab_status\",\n};\n\nfunction normalizePanelPage(raw: string | undefined): PanelPage {\n const p = raw || \"general\";\n return (PANEL_PAGES as readonly string[]).includes(p) ? (p as PanelPage) : \"general\";\n}\n\nexport class SimpleIrrigationPanel extends LitElement {\n static properties = {\n hass: { attribute: false },\n narrow: { type: Boolean, reflect: true },\n route: { attribute: false },\n panel: { attribute: false },\n };\n\n hass?: HomeAssistant;\n narrow = false;\n route?: unknown;\n panel?: unknown;\n\n static styles = panelStyles;\n\n private _state: PanelStateResult | null = null;\n private _loading = true;\n private _error?: string;\n private _entries: Array = [];\n private _entriesLoading = false;\n\n private _runStateUnsub?: () => Promise;\n private _runStateDebounceTimer?: number;\n private _runStatePollTimer?: number;\n private _watchedRunningEntity?: string;\n private _watchedEntryId?: string;\n\n /** Language we last loaded `config_panel` category for (HA does not auto-load it for `panel_custom`). */\n private _panelI18nLang?: string;\n /** After first successful panel translation fetch (or no loader API). */\n private _initialPanelI18nDone = false;\n\n /** Serializes panel fetches so overlapping requests cannot clear `_state` out of order. */\n private _loadTail: Promise = Promise.resolve();\n\n setProperties(props: Record): void {\n if (props.hass !== undefined) {\n const next = props.hass as HomeAssistant;\n if (this.hass?.language !== next?.language) {\n this._panelI18nLang = undefined;\n }\n this.hass = next;\n void this._ensurePanelI18n();\n }\n if (props.narrow !== undefined) this.narrow = Boolean(props.narrow);\n if (props.route !== undefined) this.route = props.route;\n if (props.panel !== undefined) this.panel = props.panel;\n this.requestUpdate();\n }\n\n private async _ensurePanelI18n(): Promise {\n if (!this.hass) {\n return;\n }\n if (!this.hass.loadBackendTranslation) {\n if (!this._initialPanelI18nDone) {\n this._initialPanelI18nDone = true;\n this.requestUpdate();\n }\n return;\n }\n const lang = this.hass.language ?? \"en\";\n if (this._panelI18nLang === lang) {\n if (!this._initialPanelI18nDone) {\n this._initialPanelI18nDone = true;\n this.requestUpdate();\n }\n return;\n }\n try {\n await this.hass.loadBackendTranslation(\"config_panel\", TRANSLATION_DOMAIN);\n } catch {\n /* localize may keep returning missing keys */\n }\n this._panelI18nLang = lang;\n if (!this._initialPanelI18nDone) {\n this._initialPanelI18nDone = true;\n }\n this.requestUpdate();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n window.addEventListener(\"location-changed\", this._locChanged);\n document.addEventListener(\"visibilitychange\", this._onVisibility);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\"location-changed\", this._locChanged);\n document.removeEventListener(\"visibilitychange\", this._onVisibility);\n void this._teardownRunStateListeners();\n }\n\n private _onVisibility = (): void => {\n if (document.visibilityState !== \"visible\") return;\n if (!window.location.pathname.includes(\"simple-irrigation\")) return;\n if (!this.hass) return;\n const { entryId } = getPath();\n if (!entryId) return;\n if (this._state) {\n void this._loadState(entryId, { silent: true });\n } else {\n void this._reloadPath();\n }\n };\n\n private _locChanged = (): void => {\n if (!window.location.pathname.includes(\"simple-irrigation\")) return;\n this._reloadPath();\n };\n\n private _clearRunStateDebounce(): void {\n if (this._runStateDebounceTimer !== undefined) {\n window.clearTimeout(this._runStateDebounceTimer);\n this._runStateDebounceTimer = undefined;\n }\n }\n\n private async _teardownRunStateListeners(): Promise {\n this._clearRunStateDebounce();\n if (this._runStatePollTimer !== undefined) {\n window.clearInterval(this._runStatePollTimer);\n this._runStatePollTimer = undefined;\n }\n if (this._runStateUnsub) {\n try {\n await this._runStateUnsub();\n } catch {\n /* ignore */\n }\n this._runStateUnsub = undefined;\n }\n this._watchedRunningEntity = undefined;\n this._watchedEntryId = undefined;\n }\n\n private _scheduleSilentRefresh(entryId: string): void {\n this._clearRunStateDebounce();\n this._runStateDebounceTimer = window.setTimeout(() => {\n this._runStateDebounceTimer = undefined;\n void this._loadState(entryId, { silent: true });\n }, 200);\n }\n\n private async _syncRunStateListeners(entryId: string): Promise {\n if (!this.hass || !this._state) {\n await this._teardownRunStateListeners();\n return;\n }\n const runningId = this._state.panel_entity_ids?.running ?? undefined;\n if (!runningId || !this.hass.connection) {\n await this._teardownRunStateListeners();\n return;\n }\n\n const subChanged =\n this._watchedEntryId !== entryId || this._watchedRunningEntity !== runningId;\n\n if (subChanged && this._runStateUnsub) {\n try {\n await this._runStateUnsub();\n } catch {\n /* ignore */\n }\n this._runStateUnsub = undefined;\n }\n\n this._watchedEntryId = entryId;\n this._watchedRunningEntity = runningId;\n\n if (!this._runStateUnsub) {\n this._runStateUnsub = await this.hass.connection.subscribeEvents(\n (ev: { data?: { entity_id?: string } }) => {\n if (ev.data?.entity_id !== runningId) return;\n this._scheduleSilentRefresh(entryId);\n },\n \"state_changed\"\n );\n }\n\n if (this._runStatePollTimer === undefined) {\n this._runStatePollTimer = window.setInterval(() => {\n if (!window.location.pathname.includes(\"simple-irrigation\")) return;\n const { entryId: eid } = getPath();\n if (!eid || eid !== this._watchedEntryId || !this.hass || !this._state) return;\n const rid = this._state.panel_entity_ids?.running;\n if (!rid || this.hass.states?.[rid]?.state !== \"on\") return;\n void this._loadState(eid, { silent: true });\n }, 1000);\n }\n }\n\n private async _reloadPath(): Promise {\n const { entryId, page } = getPath();\n if (!entryId) {\n await this._teardownRunStateListeners();\n await this._loadEntryList();\n /* Another `_reloadPath` may have navigated to an entry while we awaited the list. */\n if (getPath().entryId) {\n this.requestUpdate();\n return;\n }\n this._loading = false;\n this._state = null;\n this.requestUpdate();\n return;\n }\n await this._loadState(entryId);\n if (page && !(PANEL_PAGES as readonly string[]).includes(page)) {\n navigate(this, exportPath(entryId, \"general\"));\n }\n }\n\n private async _loadEntryList(): Promise {\n if (!this.hass) return;\n this._entriesLoading = true;\n this.requestUpdate();\n try {\n const entries = await listSimpleIrrigationEntries(this.hass);\n const hass = this.hass;\n this._entries = await Promise.all(\n entries.map(async (e) => {\n let plan_enabled = true;\n try {\n const st = await fetchPanelState(hass, e.entry_id);\n const inst = st.installation as Record;\n plan_enabled = Boolean(inst.enabled ?? true);\n } catch {\n /* ignore; show as active */\n }\n return { ...e, plan_enabled };\n })\n );\n } catch (e) {\n this._error = String(e);\n this._entries = [];\n } finally {\n this._entriesLoading = false;\n }\n }\n\n /** Enqueue a panel state fetch so concurrent calls cannot apply in the wrong order. */\n private _loadState(entryId: string, opts?: { silent?: boolean }): Promise {\n const run = this._loadTail.then(() => this._executeLoadState(entryId, opts));\n this._loadTail = run.then(\n () => undefined,\n () => undefined\n );\n return run;\n }\n\n private async _executeLoadState(\n entryId: string,\n opts?: { silent?: boolean }\n ): Promise {\n if (!this.hass) return;\n const silent = Boolean(opts?.silent);\n if (!silent) {\n this._loading = true;\n this._error = undefined;\n this.requestUpdate();\n }\n try {\n this._state = await fetchPanelState(this.hass, entryId);\n if (silent) {\n this._error = undefined;\n }\n } catch (e) {\n this._error = String(e);\n if (!silent) {\n this._state = null;\n }\n } finally {\n if (!silent) {\n this._loading = false;\n }\n if (!this._state) {\n void this._teardownRunStateListeners();\n } else {\n void this._syncRunStateListeners(entryId);\n }\n this.requestUpdate();\n }\n }\n\n async firstUpdated(): Promise {\n await loadHaPanelElements();\n await this._ensurePanelI18n();\n if (this.hass) {\n await this._reloadPath();\n }\n }\n\n updated(changed: Map): void {\n if (!changed.has(\"hass\") || !this.hass) {\n return;\n }\n const prev = changed.get(\"hass\") as HomeAssistant | undefined;\n if (prev === undefined) {\n void this._reloadPath();\n return;\n }\n if (prev.connection !== this.hass.connection) {\n void this._reloadPath();\n }\n }\n\n private _onTab(ev: CustomEvent): void {\n const name = (ev.detail as { name?: string })?.name;\n const { entryId } = getPath();\n if (!name || !entryId) return;\n const cur = getPath().page;\n if (name !== cur) {\n navigate(this, exportPath(entryId, name));\n this.requestUpdate();\n }\n }\n\n private _pickEntry(entryId: string): void {\n navigate(this, exportPath(entryId, \"general\"));\n /* `location-changed` runs `_reloadPath` → `_loadState`; avoid a second concurrent fetch. */\n }\n\n protected render() {\n if (!this.hass) {\n return html`
Loading…
`;\n }\n if (!this._initialPanelI18nDone) {\n return html`
Loading…
`;\n }\n\n const path = getPath();\n const page = normalizePanelPage(path.page);\n\n if (!path.entryId) {\n return html`\n
\n

${t(this.hass, \"config_panel.entry_picker_title\")}

\n

${t(this.hass, \"config_panel.entry_picker_lead\")}

\n ${this._error ? html`

${this._error}

` : nothing}\n ${this._entriesLoading\n ? html`

${t(this.hass, \"config_panel.entry_picker_loading\")}

`\n : nothing}\n
\n ${this._entries.map(\n (e) =>\n html`\n this._pickEntry(e.entry_id)}\n >\n
\n
${e.title}
\n ${e.disabled_by\n ? html`${t(\n this.hass,\n \"config_panel.entry_badge_ha\"\n )}`\n : !e.plan_enabled\n ? html`${t(\n this.hass,\n \"config_panel.entry_badge_plan_off\"\n )}`\n : html`${t(\n this.hass,\n \"config_panel.entry_badge_active\"\n )}`}\n
\n

${t(this.hass, \"config_panel.entry_card_desc\")}

\n \n `\n )}\n
\n ${!this._entries.length && !this._entriesLoading\n ? html`

${t(this.hass, \"config_panel.entry_picker_empty\")}

`\n : nothing}\n
${t(this.hass, \"config_panel.entry_picker_howto\")}
\n
\n `;\n }\n\n if (this._loading || !this._state) {\n return html`
${this._error ||\n t(this.hass, \"config_panel.loading\")}
`;\n }\n\n const inst = this._state.installation as Record;\n const rs = this._state.run_state as Record;\n const scheduleNext = this._state.schedule_next ?? { fire_at: null, slots: [] };\n\n return html`\n
\n
\n \n
${t(this.hass, \"config_panel.main_title\")}
\n
v${VERSION}
\n
\n \n ${PANEL_PAGES.map(\n (p) => html`\n \n ${t(this.hass, TAB_LABEL_KEYS[p])}\n \n `\n )}\n \n
\n
\n
\n ${page === \"general\"\n ? html` this._loadState(path.entryId!, { silent: true })}\n >`\n : nothing}\n ${page === \"zones\"\n ? html` this._loadState(path.entryId!, { silent: true })}\n >`\n : nothing}\n ${page === \"schedule\"\n ? html` this._loadState(path.entryId!, { silent: true })}\n >`\n : nothing}\n ${page === \"timetable\"\n ? html``\n : nothing}\n ${page === \"status\"\n ? html``\n : nothing}\n
\n
\n `;\n }\n}\n\ndefineCustomElementOnce(\"simple-irrigation-panel\", SimpleIrrigationPanel);\n"],"names":["t","e","s","o","r","n","i","S","c","h","a","l","p","d","u","f","b","y","css","html","LitElement","nothing","state"],"mappings":"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","x_google_ignoreList":[0,1,2,3,11,12,13]} \ No newline at end of file +{"version":3,"file":"simple-irrigation-panel.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../src/data/api.ts","../src/fire-event.ts","../src/i18n.ts","../src/helpers.ts","../src/load-ha-elements.ts","../src/navigation.ts","../src/styles.ts","../node_modules/tslib/tslib.es6.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../src/entity-input.ts","../src/form-layout-styles.ts","../src/profile-datetime.ts","../src/date-format.ts","../src/views/view-general.ts","../src/schedule-phases.ts","../src/views/view-schedule.ts","../src/views/view-status.ts","../src/timetable-model.ts","../src/views/view-timetable.ts","../src/views/view-zones.ts","../src/simple-irrigation-panel.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.2\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t=>t,s=t.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,h=\"$lit$\",o=`lit$${Math.random().toFixed(9).slice(2)}$`,n=\"?\"+o,r=`<${n}>`,l=document,c=()=>l.createComment(\"\"),a=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,u=Array.isArray,d=t=>u(t)||\"function\"==typeof t?.[Symbol.iterator],f=\"[ \\t\\n\\f\\r]\",v=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${f}(?:([^\\\\s\"'>=/]+)(${f}*=${f}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b=x(1),w=x(2),T=x(3),E=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),C=new WeakMap,P=l.createTreeWalker(l,129);function V(t,i){if(!u(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==e?e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?\"\":3===i?\"\":\"\",c=v;for(let i=0;i\"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p:'\"'===u[3]?$:g):c===$||c===g?c=p:c===_||c===m?c=v:(c=p,n=void 0);const x=c===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===v?s+r:d>=0?(e.push(a),s.slice(0,d)+h+s.slice(d)+o+x):s+o+(-2===d?i:x)}return[V(t,l+(t[s]||\"\")+(2===i?\"\":3===i?\"\":\"\")),e]};class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length0){r.textContent=s?s.emptyScript:\"\";for(let s=0;s2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c(),t),t,void 0,s??{})}return h._$AI(t),h};export{j as _$LH,b as html,T as mathml,E as noChange,A as nothing,D as render,w as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.2\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import type { HomeAssistant, PanelStateResult } from \"../types\";\n\nexport const fetchPanelState = (\n hass: HomeAssistant,\n entryId: string\n): Promise =>\n hass.callWS({\n type: \"simple_irrigation/panel/state\",\n entry_id: entryId,\n });\n\nexport const saveGlobal = (\n hass: HomeAssistant,\n entryId: string,\n body: Record\n): Promise<{ success: boolean; error?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/global\", { entry_id: entryId, ...body });\n\nexport const saveZone = (\n hass: HomeAssistant,\n entryId: string,\n body: Record\n): Promise<{ success: boolean; error?: string; zone_id?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/zone\", { entry_id: entryId, ...body });\n\nexport const saveSlot = (\n hass: HomeAssistant,\n entryId: string,\n body: Record\n): Promise<{ success: boolean; error?: string; slot_id?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/slot\", { entry_id: entryId, ...body });\n\nexport const runSlotNow = (\n hass: HomeAssistant,\n entryId: string,\n slotId: string\n): Promise<{ success: boolean; error?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/run_slot\", {\n entry_id: entryId,\n slot_id: slotId,\n });\n\nexport const runZoneNow = (\n hass: HomeAssistant,\n entryId: string,\n zoneId: string\n): Promise<{ success: boolean; error?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/run_zone\", {\n entry_id: entryId,\n zone_id: zoneId,\n });\n\nexport const skipIrrigationToday = (\n hass: HomeAssistant,\n entryId: string\n): Promise<{ success: boolean; error?: string; pause_until?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/skip_today\", { entry_id: entryId });\n\nexport const panelControl = (\n hass: HomeAssistant,\n entryId: string,\n action: \"stop\" | \"skip_phase\" | \"clear_error\"\n): Promise<{ success: boolean; error?: string }> =>\n hass.callApi(\"POST\", \"simple_irrigation/panel/control\", {\n entry_id: entryId,\n action,\n });\n\nexport interface ConfigEntryRow {\n entry_id: string;\n title: string;\n domain: string;\n /** Set when the integration is disabled in HA (Settings → Devices). */\n disabled_by?: string | null;\n}\n\nexport const listSimpleIrrigationEntries = (\n hass: HomeAssistant\n): Promise =>\n hass.callWS({\n type: \"config_entries/get\",\n domain: \"simple_irrigation\",\n });\n","export function fireEvent(\n node: HTMLElement | Window,\n type: string,\n detail?: Record\n): void {\n const event = new CustomEvent(type, {\n bubbles: true,\n composed: true,\n detail: detail ?? {},\n });\n node.dispatchEvent(event);\n}\n","import type { HomeAssistant } from \"./types\";\n\n/** Must match `DOMAIN` in the Python integration. */\nexport const TRANSLATION_DOMAIN = \"simple_irrigation\";\n\n/** Flat key under `component.simple_irrigation.*` (e.g. `config_panel.tab_general`). */\nexport function t(\n hass: HomeAssistant | undefined,\n path: string,\n placeholders?: Record\n): string {\n if (!hass?.localize) {\n return path;\n }\n const fullKey = `component.${TRANSLATION_DOMAIN}.${path}`;\n const hasValues = Boolean(placeholders && Object.keys(placeholders).length);\n // HA uses IntlMessageFormat; placeholders must be passed here, not substituted afterward.\n let s = hasValues\n ? hass.localize(fullKey, placeholders)\n : hass.localize(fullKey);\n if (!s || s === fullKey) {\n s = path;\n if (placeholders) {\n for (const [k, v] of Object.entries(placeholders)) {\n s = s.split(`{${k}}`).join(String(v));\n }\n }\n }\n return s;\n}\n","import { fireEvent } from \"./fire-event\";\nimport { t } from \"./i18n\";\nimport type { HomeAssistant } from \"./types\";\n\n/** Home Assistant callApi may put a string or structured object in `error`. */\nexport function formatApiError(value: unknown, hass?: HomeAssistant): string {\n const fallback =\n hass?.localize != null\n ? t(hass, \"config_panel.errors_request_failed\")\n : \"Request failed\";\n if (value == null || value === \"\") {\n return fallback;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if (value instanceof Error) {\n return value.message;\n }\n if (typeof value === \"object\") {\n const o = value as Record;\n if (typeof o.message === \"string\") {\n return o.message;\n }\n if (typeof o.error === \"string\") {\n return o.error;\n }\n try {\n return JSON.stringify(value);\n } catch {\n return fallback;\n }\n }\n return String(value);\n}\n\n/** Safe when the panel bundle runs twice (navigation, scoped custom element registry). */\nexport function defineCustomElementOnce(\n name: string,\n constructor: CustomElementConstructor,\n options?: ElementDefinitionOptions\n): void {\n if (customElements.get(name) !== undefined) {\n return;\n }\n customElements.define(name, constructor, options);\n}\n\nexport const navigate = (_node: unknown, path: string, replace = false): void => {\n if (replace) {\n history.replaceState(null, \"\", path);\n } else {\n history.pushState(null, \"\", path);\n }\n fireEvent(window, \"location-changed\", { replace });\n};\n","/** Wait until core HA custom elements used by the panel are defined. */\nexport async function loadHaPanelElements(): Promise {\n const tags = [\n \"ha-menu-button\",\n \"ha-tab-group\",\n \"ha-tab-group-tab\",\n \"ha-card\",\n \"ha-dialog\",\n \"ha-input\",\n \"ha-icon\",\n \"ha-switch\",\n ];\n await Promise.all(tags.map((t) => customElements.whenDefined(t).catch(() => undefined)));\n}\n","const BASE = \"simple-irrigation\";\n\nexport interface PanelPath {\n entryId: string | null;\n page: string;\n}\n\nexport const getPath = (): PanelPath => {\n const parts = window.location.pathname.split(\"/\").filter(Boolean);\n if (parts[0] !== BASE) {\n return { entryId: null, page: \"general\" };\n }\n if (parts.length < 2) {\n return { entryId: null, page: \"general\" };\n }\n const entryId = parts[1];\n const page = parts[2] || \"general\";\n return { entryId, page };\n};\n\nexport const exportPath = (entryId: string, page: string): string => {\n return `/${BASE}/${entryId}/${page}`;\n};\n\n/**\n * Remove `editSlot` from the current URL without dispatching `location-changed`.\n * Using `navigate()` would trigger a full panel reload and unmount the schedule view,\n * which closes the slot edit dialog immediately after opening it.\n */\nexport function stripEditSlotQueryFromUrl(): void {\n try {\n const url = new URL(window.location.href);\n if (!url.searchParams.has(\"editSlot\")) return;\n url.searchParams.delete(\"editSlot\");\n const qs = url.searchParams.toString();\n history.replaceState(null, \"\", url.pathname + (qs ? `?${qs}` : \"\") + url.hash);\n } catch {\n /* ignore */\n }\n}\n","import { css } from \"lit\";\n\nexport const panelStyles = css`\n :host {\n display: block;\n color: var(--primary-text-color);\n }\n .header {\n background-color: var(--app-header-background-color);\n color: var(--app-header-text-color, white);\n border-bottom: var(--app-header-border-bottom, none);\n }\n .toolbar {\n height: var(--header-height);\n display: flex;\n align-items: center;\n font-size: 20px;\n padding: 0 16px;\n font-weight: 400;\n box-sizing: border-box;\n }\n .main-title {\n margin: 0 0 0 24px;\n line-height: 20px;\n flex-grow: 1;\n }\n .version {\n font-size: 14px;\n opacity: 0.85;\n }\n ha-tab-group {\n margin-left: max(env(safe-area-inset-left), 24px);\n margin-right: max(env(safe-area-inset-right), 24px);\n --ha-tab-active-text-color: var(--app-header-text-color, white);\n --ha-tab-indicator-color: var(--app-header-text-color, white);\n --ha-tab-track-color: transparent;\n }\n .view {\n min-height: calc(100vh - 112px);\n display: flex;\n justify-content: center;\n padding: 16px;\n box-sizing: border-box;\n }\n .view-inner {\n width: 100%;\n max-width: 840px;\n }\n .entry-picker {\n padding: 24px;\n max-width: 560px;\n margin: 0 auto;\n }\n .entry-picker h2 {\n margin: 0 0 8px;\n font-size: 1.5rem;\n font-weight: 600;\n }\n .entry-picker .lead {\n margin: 0 0 20px;\n color: var(--secondary-text-color);\n line-height: 1.5;\n font-size: 0.95rem;\n }\n .entry-cards {\n display: flex;\n flex-direction: column;\n gap: 12px;\n }\n .entry-card {\n display: block;\n width: 100%;\n text-align: left;\n padding: 16px 18px;\n border-radius: 12px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font: inherit;\n box-sizing: border-box;\n transition:\n border-color 0.15s ease,\n box-shadow 0.15s ease;\n }\n .entry-card:hover {\n border-color: var(--primary-color);\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);\n }\n .entry-card:focus-visible {\n outline: 2px solid var(--primary-color);\n outline-offset: 2px;\n }\n .entry-card-head {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px 12px;\n margin-bottom: 6px;\n }\n .entry-card-title {\n font-size: 1.1rem;\n font-weight: 600;\n margin: 0;\n flex: 1;\n min-width: 0;\n }\n .entry-badge {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n padding: 4px 8px;\n border-radius: 6px;\n flex-shrink: 0;\n }\n .entry-badge-on {\n color: var(--primary-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.06));\n }\n .entry-badge-off {\n color: var(--warning-color, #b85c00);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.06));\n }\n .entry-badge-ha {\n color: var(--error-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.06));\n }\n .entry-card-desc {\n margin: 0;\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n }\n .howto-add {\n margin-top: 28px;\n padding: 16px;\n border-radius: 8px;\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.04));\n font-size: 0.9rem;\n line-height: 1.5;\n color: var(--secondary-text-color);\n }\n .entry-picker a {\n color: var(--primary-color);\n }\n ha-card {\n margin-bottom: 16px;\n }\n .row {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n align-items: flex-end;\n margin-bottom: 12px;\n }\n .grow {\n flex: 1;\n min-width: 160px;\n }\n .error {\n color: var(--error-color);\n margin: 8px 0;\n }\n .muted {\n opacity: 0.8;\n font-size: 0.9rem;\n }\n .error {\n color: var(--error-color);\n }\n`;\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import{notEqual as t,defaultConverter as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t,!0,r)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t,!0,r)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import { html, type TemplateResult } from \"lit\";\nimport { t } from \"./i18n\";\nimport type { HomeAssistant } from \"./types\";\n\n/** Entity IDs for allowed output domains (same rule set as the backend). */\nexport function entityIdsForDomains(hass: HomeAssistant, domains: string[]): string[] {\n return Object.keys(hass.states)\n .filter((eid) => domains.includes(eid.split(\".\", 1)[0]))\n .sort((a, b) => a.localeCompare(b));\n}\n\n/** One shared `` per form (by stable `listId`). */\nexport function renderEntityDatalist(\n hass: HomeAssistant,\n listId: string,\n domains: string[]\n): TemplateResult {\n const ids = entityIdsForDomains(hass, domains);\n return html`\n \n ${ids.map((id) => html``)}\n \n `;\n}\n\n/**\n * Browser autocomplete for entity_id — works inside panel_custom scoped registries where\n * `ha-entity-picker` is not registered.\n */\nexport function renderNativeEntityField(\n hass: HomeAssistant,\n listId: string,\n label: string,\n value: string,\n onValue: (v: string) => void\n): TemplateResult {\n return html`\n
\n \n onValue((e.target as HTMLInputElement).value)}\n />\n
\n `;\n}\n","import { css } from \"lit\";\n\n/** Shared stacked form layout: titles, helper text, full-width controls. */\nexport const formLayoutStyles = css`\n .field-block {\n margin-bottom: 20px;\n }\n .field-title {\n display: block;\n font-weight: 500;\n margin-bottom: 4px;\n color: var(--primary-text-color);\n font-size: 1rem;\n }\n .field-desc {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n margin-bottom: 10px;\n line-height: 1.45;\n }\n .field-row {\n width: 100%;\n max-width: 100%;\n box-sizing: border-box;\n }\n .field-row ha-input {\n width: 100%;\n display: block;\n }\n .entity-picker-rows {\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 100%;\n }\n .entity-picker-row {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n width: 100%;\n }\n .entity-picker-row .native-entity-field {\n flex: 1;\n min-width: 0;\n }\n .native-entity-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n }\n .native-entity-label {\n font-size: 0.75rem;\n color: var(--secondary-text-color);\n }\n .entity-id-input {\n width: 100%;\n box-sizing: border-box;\n padding: 12px 16px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n font-size: 1rem;\n font-family: inherit;\n min-height: 48px;\n }\n .entity-id-input:focus {\n outline: none;\n border-color: var(--primary-color);\n }\n button.row-remove {\n flex-shrink: 0;\n padding: 8px 12px;\n font-size: 0.875rem;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-family: inherit;\n }\n button.row-remove:hover {\n border-color: var(--primary-color);\n color: var(--primary-color);\n }\n button.btn-outline {\n align-self: center;\n margin-top: 0;\n padding: 10px 18px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 1rem;\n font-family: inherit;\n }\n .entity-picker-rows > button.btn-outline {\n align-self: flex-start;\n }\n button.btn-outline:hover {\n border-color: var(--primary-color);\n color: var(--primary-color);\n }\n button.add-row {\n align-self: flex-start;\n margin-top: 4px;\n padding: 8px 14px;\n font-size: 0.9rem;\n }\n .duration-row {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));\n gap: 12px;\n width: 100%;\n }\n .duration-row ha-input {\n width: 100%;\n display: block;\n }\n select.field-select {\n width: 100%;\n max-width: 100%;\n padding: 10px 12px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n font-size: 1rem;\n min-height: 48px;\n box-sizing: border-box;\n }\n .checkboxes {\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .checkboxes label {\n display: flex;\n align-items: center;\n gap: 8px;\n cursor: pointer;\n font-size: 1rem;\n }\n .switch-rows {\n display: flex;\n flex-direction: column;\n gap: 14px;\n }\n .switch-row {\n display: flex;\n align-items: center;\n gap: 12px;\n }\n .switch-row ha-switch {\n flex-shrink: 0;\n }\n .switch-row .switch-row-label {\n font-size: 1rem;\n color: var(--primary-text-color);\n line-height: 1.3;\n }\n .action-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n margin-top: 8px;\n }\n .dialog-footer {\n display: flex;\n flex-direction: column;\n gap: 0;\n width: 100%;\n box-sizing: border-box;\n }\n .dialog-footer-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 12px;\n width: 100%;\n }\n .dialog-footer-lead {\n flex: 0 0 auto;\n }\n .dialog-footer-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n margin-left: auto;\n }\n`;\n","import type { HomeAssistant } from \"./types\";\n\n/** Subset of HA frontend `FrontendLocaleData` (user profile → Language & region). */\nexport interface HassUserLocale {\n language: string;\n time_format: string;\n date_format: string;\n time_zone?: string;\n}\n\nconst LOCAL_TZ = Intl.DateTimeFormat?.().resolvedOptions?.().timeZone ?? \"UTC\";\n\nfunction resolveTimeZonePref(localeTz: string | undefined, serverTimeZone: string): string {\n if (localeTz === \"local\" && LOCAL_TZ) return LOCAL_TZ;\n return serverTimeZone;\n}\n\nexport function useAmPmFromLocale(locale: HassUserLocale): boolean {\n const tf = locale.time_format;\n if (tf === \"language\" || tf === \"system\") {\n const testLang = tf === \"language\" ? locale.language : undefined;\n const test = new Date(\"January 1, 2023 22:00:00\").toLocaleString(testLang);\n return test.includes(\"10\");\n }\n return tf === \"12\";\n}\n\nfunction formatDateNumericPart(date: Date, locale: HassUserLocale, serverTz: string): string {\n const tz = resolveTimeZonePref(locale.time_zone, serverTz);\n const df = locale.date_format;\n if (df === \"language\" || df === \"system\") {\n return new Intl.DateTimeFormat(df === \"system\" ? undefined : locale.language, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n timeZone: tz,\n }).format(date);\n }\n const formatter = new Intl.DateTimeFormat(locale.language, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n timeZone: tz,\n });\n const parts = formatter.formatToParts(date);\n const literal = parts.find((p) => p.type === \"literal\")?.value ?? \"/\";\n const day = parts.find((p) => p.type === \"day\")?.value ?? \"\";\n const month = parts.find((p) => p.type === \"month\")?.value ?? \"\";\n const year = parts.find((p) => p.type === \"year\")?.value ?? \"\";\n const lastPart = parts[parts.length - 1];\n const lastLiteral = lastPart?.type === \"literal\" ? lastPart.value : \"\";\n if (df === \"DMY\") return `${day}${literal}${month}${literal}${year}${lastLiteral}`;\n if (df === \"MDY\") return `${month}${literal}${day}${literal}${year}${lastLiteral}`;\n if (df === \"YMD\") return `${year}${literal}${month}${literal}${day}${lastLiteral}`;\n return formatter.format(date);\n}\n\nfunction formatTimePart(date: Date, locale: HassUserLocale, serverTz: string): string {\n const tz = resolveTimeZonePref(locale.time_zone, serverTz);\n const ampm = useAmPmFromLocale(locale);\n return new Intl.DateTimeFormat(locale.language, {\n hour: ampm ? \"numeric\" : \"2-digit\",\n minute: \"2-digit\",\n hourCycle: ampm ? \"h12\" : \"h23\",\n timeZone: tz,\n }).format(date);\n}\n\n/**\n * Absolute instant (e.g. next run, pause until): weekday + profile date + profile time + TZ preference.\n */\nexport function formatDateTimeForProfile(\n hass: HomeAssistant | undefined,\n date: Date\n): string {\n if (!hass) return date.toLocaleString();\n const loc = hass.locale;\n const serverTz = hass.config?.time_zone ?? LOCAL_TZ;\n const lang = (loc?.language ?? hass.language)?.replace(/_/g, \"-\");\n const locComplete =\n loc &&\n typeof loc.language === \"string\" &&\n typeof loc.time_format === \"string\" &&\n typeof loc.date_format === \"string\";\n if (!locComplete) {\n return new Intl.DateTimeFormat(lang, {\n weekday: \"long\",\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(date);\n }\n const tz = resolveTimeZonePref(loc!.time_zone, serverTz);\n const weekday = new Intl.DateTimeFormat(loc!.language, {\n weekday: \"long\",\n timeZone: tz,\n }).format(date);\n const datePart = formatDateNumericPart(date, loc!, serverTz);\n const timePart = formatTimePart(date, loc!, serverTz);\n return `${weekday}, ${datePart}, ${timePart}`;\n}\n\n/**\n * Schedule slot wall time (stored as HH:MM): same clock face, 12h/24h and spacing from profile.\n */\nexport function formatSlotTimeForProfile(hass: HomeAssistant | undefined, timeLocal: string): string {\n const m = /^(\\d{1,2}):(\\d{2})$/.exec(String(timeLocal).trim());\n if (!m) return timeLocal;\n const h = Math.min(23, Math.max(0, parseInt(m[1], 10)));\n const min = Math.min(59, Math.max(0, parseInt(m[2], 10)));\n const d = new Date(2000, 0, 1, h, min, 0, 0);\n const loc = hass?.locale;\n const lang = (loc?.language ?? hass?.language)?.replace(/_/g, \"-\") ?? undefined;\n if (!loc?.language || !loc.time_format) {\n return new Intl.DateTimeFormat(lang, {\n hour: \"2-digit\",\n minute: \"2-digit\",\n }).format(d);\n }\n const ampm = useAmPmFromLocale(loc);\n return new Intl.DateTimeFormat(loc.language, {\n hour: ampm ? \"numeric\" : \"2-digit\",\n minute: \"2-digit\",\n hourCycle: ampm ? \"h12\" : \"h23\",\n }).format(d);\n}\n","import { formatDateTimeForProfile, formatSlotTimeForProfile } from \"./profile-datetime\";\nimport type { HomeAssistant } from \"./types\";\n\nfunction locale(hass: HomeAssistant | undefined): string | undefined {\n const lang = hass?.locale?.language ?? hass?.language;\n if (!lang) return undefined;\n return lang.replace(/_/g, \"-\");\n}\n\n/**\n * Schedule slots use weekday 0 = Monday … 6 = Sunday (same as the Python model).\n * Uses the user's HA language for localized weekday names.\n */\nexport function weekdayLong(hass: HomeAssistant | undefined, mondayBasedIndex: number): string {\n const i = Math.max(0, Math.min(6, mondayBasedIndex));\n // 2024-01-01 is a Monday in local calendar semantics for display.\n const d = new Date(2024, 0, 1 + i);\n return new Intl.DateTimeFormat(locale(hass), { weekday: \"long\" }).format(d);\n}\n\n/**\n * Absolute instant: weekday + date + time using the user’s profile (12h/24h, DMY/MDY/YMD, server vs local TZ).\n */\nexport function formatDateTimeForDisplay(hass: HomeAssistant | undefined, date: Date): string {\n return formatDateTimeForProfile(hass, date);\n}\n\n/** Slot wall time HH:MM with profile 12h/24h (same numbers as stored; presentation only). */\nexport function formatTimeLocalForDisplay(hass: HomeAssistant | undefined, timeLocal: string): string {\n return formatSlotTimeForProfile(hass, timeLocal);\n}\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { panelControl, saveGlobal, skipIrrigationToday } from \"../data/api\";\nimport { renderEntityDatalist, renderNativeEntityField } from \"../entity-input\";\nimport { defineCustomElementOnce, formatApiError } from \"../helpers\";\nimport { t } from \"../i18n\";\nimport { formLayoutStyles } from \"../form-layout-styles\";\nimport { formatDateTimeForDisplay, formatTimeLocalForDisplay, weekdayLong } from \"../date-format\";\nimport type { HomeAssistant, ScheduleNext } from \"../types\";\n\nexport class ViewGeneral extends LitElement {\n static properties = {\n hass: { attribute: false },\n entryId: { type: String },\n installation: { type: Object },\n scheduleNext: { type: Object },\n runState: { type: Object },\n onSaved: { attribute: false },\n };\n\n hass!: HomeAssistant;\n entryId!: string;\n installation!: Record;\n scheduleNext?: ScheduleNext;\n runState?: Record;\n onSaved?: () => void;\n\n static styles = [\n formLayoutStyles,\n css`\n ha-card {\n margin-bottom: 16px;\n }\n .card-content {\n padding: 0 8px 16px;\n }\n .error {\n color: var(--error-color);\n margin-bottom: 8px;\n }\n button.save {\n padding: 10px 20px;\n border-radius: 4px;\n border: none;\n background: var(--primary-color);\n color: var(--text-primary-color);\n cursor: pointer;\n font-size: 1rem;\n }\n button.save:disabled {\n opacity: 0.5;\n cursor: default;\n }\n .schedule-overview-inner {\n margin-top: 4px;\n }\n .schedule-hero {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 18px 18px 20px;\n border-radius: 12px;\n border: 1px solid var(--divider-color);\n background: linear-gradient(\n 145deg,\n rgba(var(--rgb-primary-color, 33, 150, 243), 0.12) 0%,\n transparent 55%\n );\n margin-bottom: 16px;\n }\n .schedule-hero-icon {\n flex-shrink: 0;\n --mdc-icon-size: 36px;\n color: var(--primary-color);\n opacity: 0.9;\n margin-top: 2px;\n }\n .schedule-hero-text {\n flex: 1;\n min-width: 0;\n }\n .schedule-hero-label {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--secondary-text-color);\n margin: 0 0 6px;\n }\n .schedule-next-big {\n font-size: 1.35rem;\n font-weight: 600;\n margin: 0;\n line-height: 1.25;\n letter-spacing: -0.02em;\n color: var(--primary-text-color);\n }\n .schedule-slot-pills {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n .schedule-slot-pill {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 12px 14px;\n border-radius: 10px;\n border: 1px solid var(--divider-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.03));\n line-height: 1.45;\n font-size: 0.9375rem;\n }\n .schedule-slot-pill ha-icon {\n flex-shrink: 0;\n --mdc-icon-size: 22px;\n color: var(--primary-color);\n opacity: 0.85;\n margin-top: 1px;\n }\n .schedule-slot-pill-main {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .schedule-slot-name {\n font-weight: 600;\n font-size: 0.8125rem;\n color: var(--primary-color);\n }\n .schedule-slot-time {\n font-weight: 600;\n color: var(--primary-text-color);\n }\n .schedule-slot-zones {\n display: block;\n margin-top: 4px;\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n }\n .plan-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 12px 20px;\n margin-bottom: 16px;\n }\n .plan-row ha-switch {\n margin-right: 8px;\n }\n .plan-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 1rem;\n }\n .muted-box {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 12px;\n }\n .run-hero {\n display: flex;\n align-items: flex-start;\n gap: 16px;\n padding: 18px 18px 20px;\n border-radius: 12px;\n border: 1px solid var(--divider-color);\n background: linear-gradient(\n 145deg,\n rgba(var(--rgb-primary-color, 33, 150, 243), 0.1) 0%,\n transparent 50%\n );\n margin-bottom: 14px;\n }\n .run-hero-icon {\n flex-shrink: 0;\n --mdc-icon-size: 38px;\n color: var(--primary-color);\n opacity: 0.92;\n margin-top: 2px;\n }\n .run-hero-body {\n flex: 1;\n min-width: 0;\n }\n .run-hero-label {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: var(--secondary-text-color);\n margin: 0 0 6px;\n }\n .run-hero-state {\n font-size: 1.35rem;\n font-weight: 600;\n margin: 0 0 10px;\n line-height: 1.25;\n letter-spacing: -0.02em;\n color: var(--primary-text-color);\n }\n .run-detail-pills {\n list-style: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n .run-detail-pill {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n padding: 10px 12px;\n border-radius: 10px;\n border: 1px solid var(--divider-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.03));\n font-size: 0.9rem;\n line-height: 1.45;\n }\n .run-detail-pill ha-icon {\n flex-shrink: 0;\n --mdc-icon-size: 20px;\n color: var(--primary-color);\n opacity: 0.85;\n margin-top: 2px;\n }\n .run-detail-pill strong {\n font-weight: 600;\n color: var(--primary-text-color);\n }\n button.ctrl {\n padding: 10px 16px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 0.95rem;\n }\n button.ctrl.danger {\n border-color: var(--error-color);\n color: var(--error-color);\n }\n button.ctrl:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `,\n ];\n\n private _busy = false;\n private _msg?: string;\n @state() private _runCtrlBusy = false;\n\n private _name = \"\";\n private _mode = \"normal\";\n private _maxParallel = 2;\n private _preStart: string[] = [];\n private _preStartDelaySec = 10;\n private _planEnabled = true;\n\n protected willUpdate(changed: Map): void {\n if (changed.has(\"installation\") && this.installation) {\n const inst = this.installation;\n this._name = String(inst.name ?? \"\");\n this._mode = String(inst.mode ?? \"normal\");\n this._maxParallel = Number(inst.max_parallel_zones ?? 2);\n this._planEnabled = Boolean(inst.enabled ?? true);\n const ps = Array.isArray(inst.pre_start_switches)\n ? (inst.pre_start_switches as string[]).filter(Boolean)\n : [];\n this._preStart = ps.length ? [...ps] : [\"\"];\n const d = Number(inst.pre_start_delay_sec ?? 10);\n this._preStartDelaySec = Number.isFinite(d)\n ? Math.max(1, Math.min(3600, Math.round(d)))\n : 10;\n }\n }\n\n private _pauseIsActive(): boolean {\n const raw = this.installation?.pause_until;\n if (!raw || typeof raw !== \"string\") return false;\n const t = Date.parse(raw);\n return !Number.isNaN(t) && t > Date.now();\n }\n\n private _fmtWhen(iso: string | null | undefined): string {\n if (!iso) return t(this.hass, \"config_panel.general_none_scheduled\");\n try {\n const d = new Date(iso);\n return formatDateTimeForDisplay(this.hass, d);\n } catch {\n return String(iso);\n }\n }\n\n private _wd(i: number): string {\n return weekdayLong(this.hass, i);\n }\n\n private _fmtPauseUntil(): string {\n const raw = this.installation?.pause_until;\n if (!raw || typeof raw !== \"string\") return \"\";\n return this._fmtWhen(raw);\n }\n\n private async _save(): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await saveGlobal(this.hass, this.entryId, {\n name: this._name,\n pre_start_switches: this._preStart.filter(Boolean),\n pre_start_delay_sec: this._preStartDelaySec,\n mode: this._mode,\n max_parallel_zones: this._maxParallel,\n });\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private async _setPlanEnabled(enabled: boolean): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await saveGlobal(this.hass, this.entryId, { enabled });\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this._planEnabled = enabled;\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private async _clearPause(): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await saveGlobal(this.hass, this.entryId, { pause_until: null });\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private async _skipToday(): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await skipIrrigationToday(this.hass, this.entryId);\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private _generalEntityListId(): string {\n return `si-ent-g-${this.entryId}`;\n }\n\n private _zoneName(zoneId: string): string {\n const zones = this.installation?.zones as Record> | undefined;\n const z = zones?.[zoneId];\n return z ? String(z.name ?? zoneId) : zoneId;\n }\n\n private _runStateBusy(rs: Record): boolean {\n const s = String(rs.run_state ?? \"idle\");\n return [\"preparing\", \"running\", \"stopping\"].includes(s);\n }\n\n private _formatUpcomingPhases(rs: Record): string {\n const up = rs.upcoming_phases;\n if (!Array.isArray(up) || up.length === 0) return \"\";\n const parts: string[] = [];\n for (const grp of up) {\n if (!Array.isArray(grp) || grp.length === 0) continue;\n parts.push(grp.map((id) => this._zoneName(String(id))).join(\", \"));\n }\n return parts.join(\" → \");\n }\n\n private async _panelControlAction(\n action: \"stop\" | \"skip_phase\" | \"clear_error\"\n ): Promise {\n this._runCtrlBusy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = await panelControl(this.hass, this.entryId, action);\n if (!res.success) {\n const err = res.error ?? \"request_failed\";\n this._msg =\n err === \"not_running\" && action === \"skip_phase\"\n ? t(this.hass, \"config_panel.errors_not_running_skip\")\n : String(err);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._runCtrlBusy = false;\n this.requestUpdate();\n }\n }\n\n protected render() {\n const domains = [\"switch\", \"input_boolean\", \"group\"];\n const sn = this.scheduleNext ?? { fire_at: null, slots: [] };\n const nextGlobal =\n sn.fire_at || (this.runState?.next_run_global as string | undefined) || null;\n const pauseOn = this._pauseIsActive();\n const rs = (this.runState ?? {}) as Record;\n const runBusy = this._runStateBusy(rs);\n const runStateStr = String(rs.run_state ?? \"idle\");\n const activeIds = Array.isArray(rs.active_zone_ids)\n ? (rs.active_zone_ids as string[])\n : [];\n const lastErr = rs.last_error ? String(rs.last_error) : \"\";\n const showStop = [\"preparing\", \"running\", \"stopping\"].includes(runStateStr);\n const upcomingLen = Array.isArray(rs.upcoming_phases) ? rs.upcoming_phases.length : 0;\n const showSkip =\n showStop &&\n runStateStr !== \"stopping\" &&\n (runStateStr === \"preparing\" || upcomingLen > 0);\n const showClearErr = Boolean(lastErr);\n const nextZonesLine = this._formatUpcomingPhases(rs);\n\n return html`\n ${renderEntityDatalist(this.hass, this._generalEntityListId(), domains)}\n \n
\n
\n \n
\n

${t(this.hass, \"config_panel.general_label_irrigation_state\")}

\n

\n ${runBusy\n ? runStateStr === \"preparing\"\n ? t(this.hass, \"config_panel.general_state_preparing\")\n : runStateStr === \"stopping\"\n ? t(this.hass, \"config_panel.general_state_stopping\")\n : t(this.hass, \"config_panel.general_state_running\")\n : runStateStr === \"error\"\n ? t(this.hass, \"config_panel.general_state_error_idle\")\n : t(this.hass, \"config_panel.general_state_idle\")}\n

\n ${runBusy && runStateStr === \"preparing\"\n ? html`

\n ${t(this.hass, \"config_panel.general_preparing_hint\")}\n

`\n : nothing}\n
\n
\n ${activeIds.length || nextZonesLine || lastErr\n ? html`\n
    \n ${activeIds.length\n ? html`\n
  • \n \n ${t(this.hass, \"config_panel.general_active_zones\")}\n ${activeIds.map((id) => this._zoneName(id)).join(\", \")}\n
  • \n `\n : nothing}\n ${nextZonesLine\n ? html`\n
  • \n \n ${t(this.hass, \"config_panel.general_next_zones\")}\n ${nextZonesLine}\n
  • \n `\n : nothing}\n ${lastErr\n ? html`\n
  • \n \n ${t(this.hass, \"config_panel.general_last_error\")}\n ${lastErr}\n
  • \n `\n : nothing}\n
\n `\n : nothing}\n ${showStop\n ? html`

\n ${t(this.hass, \"config_panel.general_scheduled_pause_hint\")}\n

`\n : nothing}\n ${showStop || showSkip || showClearErr\n ? html`
\n ${showStop\n ? html`\n this._panelControlAction(\"stop\")}\n >\n ${t(this.hass, \"config_panel.general_stop_irrigation\")}\n \n `\n : nothing}\n ${showSkip\n ? html`\n this._panelControlAction(\"skip_phase\")}\n >\n ${t(this.hass, \"config_panel.general_skip_phase\")}\n \n `\n : nothing}\n ${showClearErr\n ? html`\n this._panelControlAction(\"clear_error\")}\n >\n ${t(this.hass, \"config_panel.general_clear_error\")}\n \n `\n : nothing}\n
`\n : nothing}\n
\n
\n\n \n
\n ${!this._planEnabled\n ? html`

${t(this.hass, \"config_panel.general_plan_off_hint\")}

`\n : nothing}\n
\n
\n \n
\n

${t(this.hass, \"config_panel.general_next_scheduled_run\")}

\n

${this._fmtWhen(nextGlobal)}

\n
\n
\n ${sn.slots?.length\n ? html`\n
    \n ${sn.slots.map(\n (s) => html`\n
  • \n \n
    \n ${s.name?.trim()\n ? html`${s.name.trim()}`\n : nothing}\n ${this._wd(s.weekday)} ${formatTimeLocalForDisplay(\n this.hass,\n s.time_local\n )}\n ${s.zone_names?.length\n ? html`${s.zone_names.join(\", \")}`\n : nothing}\n
    \n
  • \n `\n )}\n
\n `\n : html`

${t(this.hass, \"config_panel.general_no_slots\")}

`}\n
\n
\n
\n\n \n
\n ${this._msg ? html`
${this._msg}
` : nothing}\n
\n \n
\n ${pauseOn\n ? html`

\n ${t(this.hass, \"config_panel.general_pause_active_hint\", {\n when: this._fmtPauseUntil(),\n })}\n

`\n : nothing}\n
\n this._skipToday()}\n >\n ${t(this.hass, \"config_panel.general_skip_today\")}\n \n this._clearPause()}\n >\n ${t(this.hass, \"config_panel.general_clear_pause\")}\n \n
\n
\n
\n\n \n
\n
\n ${t(this.hass, \"config_panel.general_installation_name\")}\n

${t(this.hass, \"config_panel.general_installation_name_desc\")}

\n
\n {\n this._name = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.general_pre_start_title\")}\n

${t(this.hass, \"config_panel.general_pre_start_desc\")}

\n
\n
\n ${this._preStart.map(\n (eid, i) => html`\n
\n ${renderNativeEntityField(\n this.hass,\n this._generalEntityListId(),\n i === 0\n ? t(this.hass, \"config_panel.general_pre_start_output_n\")\n : t(this.hass, \"config_panel.general_pre_start_output_i\", { n: i + 1 }),\n eid,\n (v) => {\n const next = [...this._preStart];\n next[i] = v;\n this._preStart = next;\n this.requestUpdate();\n }\n )}\n ${this._preStart.length > 1\n ? html`\n {\n this._preStart.splice(i, 1);\n if (this._preStart.length === 0) {\n this._preStart = [\"\"];\n }\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.general_remove\")}\n \n `\n : nothing}\n
\n `\n )}\n {\n this._preStart = [...this._preStart, \"\"];\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.general_add_pre_start\")}\n \n
\n
\n
\n
\n ${t(this.hass, \"config_panel.general_pre_start_delay_title\")}\n

${t(this.hass, \"config_panel.general_pre_start_delay_desc\")}

\n
\n {\n this._preStartDelaySec = Math.max(\n 1,\n Math.min(3600, parseInt((e.target as HTMLInputElement).value, 10) || 1)\n );\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.general_watering_mode\")}\n

${t(this.hass, \"config_panel.general_watering_mode_desc\")}

\n
\n {\n this._mode = (e.target as HTMLSelectElement).value;\n }}\n >\n \n \n \n \n
\n
\n
\n ${t(this.hass, \"config_panel.general_max_parallel\")}\n

${t(this.hass, \"config_panel.general_max_parallel_desc\")}

\n
\n {\n this._maxParallel = Math.max(\n 1,\n Math.min(16, parseInt((e.target as HTMLInputElement).value, 10) || 1)\n );\n }}\n >\n
\n
\n
\n \n
\n
\n
\n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-general\", ViewGeneral);\n","/** Mirrors `grouping.compute_phases` for schedule slot preview in the panel. */\n\nexport interface ZonePhaseInput {\n enabled?: boolean;\n exclusive?: boolean;\n}\n\nexport function computePhases(\n orderedZoneIds: string[],\n zonesById: Record,\n maxParallelZones: number,\n skipDisabled = true\n): string[][] {\n const mp = Math.max(1, maxParallelZones);\n const phases: string[][] = [];\n let current: string[] = [];\n\n for (const zid of orderedZoneIds) {\n const zone = zonesById[zid];\n if (!zone) continue;\n if (skipDisabled && !zone.enabled) continue;\n\n if (zone.exclusive) {\n if (current.length) {\n phases.push(current);\n current = [];\n }\n phases.push([zid]);\n continue;\n }\n\n if (!current.length) {\n current = [zid];\n continue;\n }\n\n if (current.length >= mp) {\n phases.push(current);\n current = [zid];\n continue;\n }\n\n current.push(zid);\n }\n\n if (current.length) phases.push(current);\n return phases;\n}\n\n/** First occurrence of each zone id → 1-based phase index (same as `phase_index_per_zone`). */\nexport function phaseIndexByZoneId(\n orderedZoneIds: string[],\n zonesById: Record,\n maxParallelZones: number\n): Map {\n const phases = computePhases(orderedZoneIds, zonesById, maxParallelZones, true);\n const m = new Map();\n for (let i = 0; i < phases.length; i++) {\n const n = i + 1;\n for (const zid of phases[i]) {\n if (!m.has(zid)) m.set(zid, n);\n }\n }\n return m;\n}\n","import { LitElement, html, css, nothing, type PropertyValues } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { runSlotNow, saveSlot } from \"../data/api\";\nimport { defineCustomElementOnce, formatApiError } from \"../helpers\";\nimport { stripEditSlotQueryFromUrl } from \"../navigation\";\nimport { t } from \"../i18n\";\nimport { formLayoutStyles } from \"../form-layout-styles\";\nimport { formatTimeLocalForDisplay, weekdayLong } from \"../date-format\";\nimport { phaseIndexByZoneId, type ZonePhaseInput } from \"../schedule-phases\";\nimport type { HomeAssistant } from \"../types\";\n\ninterface SlotRow {\n slot_id: string;\n weekday: number;\n time_local: string;\n enabled: boolean;\n zone_ids_ordered: string[];\n name: string;\n}\n\nexport class ViewSchedule extends LitElement {\n static properties = {\n hass: { attribute: false },\n entryId: { type: String },\n installation: { type: Object },\n runState: { type: Object },\n onSaved: { attribute: false },\n };\n\n hass!: HomeAssistant;\n entryId!: string;\n installation!: Record;\n runState?: Record;\n onSaved?: () => void;\n\n static styles = [\n formLayoutStyles,\n css`\n ha-card {\n margin-bottom: 16px;\n }\n .card-content {\n padding: 0 8px 16px;\n }\n .error {\n color: var(--error-color);\n margin: 8px 0;\n }\n .intro {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 16px;\n }\n .slot-row-wrap {\n display: flex;\n align-items: stretch;\n margin-bottom: 12px;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--divider-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.02));\n }\n .slot-row-accent {\n width: 8px;\n flex-shrink: 0;\n background: var(--primary-color);\n transition: background 0.15s ease;\n }\n .slot-row-accent.inactive {\n background: var(--disabled-text-color, rgba(158, 158, 158, 0.45));\n }\n .slot-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px 12px;\n flex: 1;\n min-width: 0;\n padding: 14px 16px;\n }\n .slot-row-toggle {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n .slot-row-toggle ha-switch {\n --switch-padding: 4px;\n }\n .slot-row-summary {\n flex: 1;\n min-width: 160px;\n }\n .slot-row-title {\n font-size: 1.1rem;\n font-weight: 600;\n margin: 0 0 4px;\n }\n .slot-row-title .slot-name {\n font-weight: 700;\n }\n .slot-row-meta {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n margin: 0;\n }\n .slot-row-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n }\n /* Override form-layout-styles .btn-outline (align-self + margin-top) so row actions line up */\n .slot-row-actions button {\n align-self: center;\n margin-top: 0;\n }\n .toolbar {\n margin-bottom: 16px;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px;\n }\n button {\n padding: 10px 16px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 1rem;\n }\n button.primary {\n background: var(--primary-color);\n color: var(--text-primary-color);\n border: none;\n }\n button.danger {\n border-color: var(--error-color);\n color: var(--error-color);\n }\n .zones {\n list-style: none;\n padding: 0;\n margin: 12px 0;\n }\n .zones li {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n margin-bottom: 10px;\n padding: 8px 0;\n border-bottom: 1px solid var(--divider-color);\n }\n .zones li:last-child {\n border-bottom: none;\n }\n .zones li.phase-sep {\n display: block;\n margin: 14px 0 6px;\n padding: 0;\n border-bottom: none;\n }\n .zones li.phase-sep span {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--secondary-text-color);\n }\n .zones li.phase-sep:first-child {\n margin-top: 0;\n }\n .zone-actions button {\n padding: 6px 12px;\n font-size: 0.875rem;\n }\n .zone-actions .btn-outline {\n padding: 6px 12px;\n font-size: 0.875rem;\n margin-top: 0;\n }\n .toolbar .btn-outline {\n margin-top: 0;\n }\n `,\n ];\n\n @state() private _busy = false;\n @state() private _msg?: string;\n private _newWeekday = 0;\n private _newTime = \"06:00\";\n private _newEnabled = true;\n private _newSlotName = \"\";\n\n @state() private _slotEditDraft: SlotRow | null = null;\n @state() private _addSlotDialogOpen = false;\n @state() private _addZonePick = \"\";\n /** Cleared when URL has no `editSlot` query; avoids reopening the same deep link repeatedly. */\n private _consumedEditSlotKey: string | null = null;\n\n private _wd(i: number): string {\n return weekdayLong(this.hass, i);\n }\n\n private _fmtSlotTime(timeLocal: string): string {\n return formatTimeLocalForDisplay(this.hass, timeLocal);\n }\n\n private _slots(): SlotRow[] {\n const s = this.installation?.schedule_slots as unknown[] | undefined;\n if (!Array.isArray(s)) return [];\n return s.map((raw) => {\n const o = raw as Record;\n return {\n slot_id: String(o.slot_id ?? \"\"),\n weekday: Number(o.weekday ?? 0),\n time_local: String(o.time_local ?? \"06:00\"),\n enabled: Boolean(o.enabled ?? true),\n zone_ids_ordered: Array.isArray(o.zone_ids_ordered)\n ? [...(o.zone_ids_ordered as string[])]\n : [],\n name: String(o.name ?? \"\").trim(),\n };\n });\n }\n\n private _cloneSlot(s: SlotRow): SlotRow {\n return {\n ...s,\n zone_ids_ordered: [...s.zone_ids_ordered],\n };\n }\n\n private _zoneName(zid: string): string {\n const zones = this.installation?.zones as Record> | undefined;\n const z = zones?.[zid];\n return z ? String(z.name ?? zid) : zid;\n }\n\n private async _call(body: Record): Promise {\n this._busy = true;\n this._msg = undefined;\n try {\n const res = await saveSlot(this.hass, this.entryId, body);\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n return false;\n }\n this.onSaved?.();\n return true;\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n return false;\n } finally {\n this._busy = false;\n }\n }\n\n private _runtimeBusy(): boolean {\n const rs = this.runState ?? {};\n const s = String(rs.run_state ?? \"idle\");\n return [\"preparing\", \"running\", \"stopping\"].includes(s);\n }\n\n private async _runSlotNow(slotId: string): Promise {\n if (this._runtimeBusy()) return;\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = (await runSlotNow(this.hass, this.entryId, slotId)) as {\n success: boolean;\n error?: string;\n };\n if (!res.success) {\n const err = res.error ?? \"run_failed\";\n this._msg =\n err === \"busy\"\n ? t(this.hass, \"config_panel.schedule_err_busy\")\n : err === \"empty_slot\"\n ? t(this.hass, \"config_panel.schedule_err_empty_slot\")\n : err === \"no_runnable_zones\"\n ? t(this.hass, \"config_panel.schedule_err_no_runnable\")\n : err === \"unknown_slot\"\n ? t(this.hass, \"config_panel.schedule_err_unknown_slot\")\n : String(err);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private _closeEditDialog(): void {\n this._slotEditDraft = null;\n }\n\n private _consumeEditSlotQueryFromUrl(): void {\n const slotId = new URLSearchParams(window.location.search).get(\"editSlot\");\n if (!slotId) {\n this._consumedEditSlotKey = null;\n return;\n }\n if (!this.entryId) return;\n const key = `${this.entryId}:${slotId}`;\n if (this._consumedEditSlotKey === key) return;\n\n const slot = this._slots().find((s) => s.slot_id === slotId);\n const scheduleKnown = Array.isArray(this.installation?.schedule_slots);\n\n if (slot) {\n this._consumedEditSlotKey = key;\n this._msg = undefined;\n this._addZonePick = \"\";\n this._slotEditDraft = this._cloneSlot(slot);\n stripEditSlotQueryFromUrl();\n return;\n }\n\n if (scheduleKnown) {\n this._consumedEditSlotKey = key;\n stripEditSlotQueryFromUrl();\n }\n }\n\n private _resetNewSlotForm(): void {\n this._newWeekday = 0;\n this._newTime = \"06:00\";\n this._newEnabled = true;\n this._newSlotName = \"\";\n }\n\n private _closeAddSlotDialog(): void {\n this._addSlotDialogOpen = false;\n this._resetNewSlotForm();\n }\n\n private _zonesMap(): Record | undefined {\n return this.installation?.zones as Record | undefined;\n }\n\n private _maxParallelZones(): number {\n const n = Number(this.installation?.max_parallel_zones ?? 2);\n return Number.isFinite(n) && n >= 1 ? n : 2;\n }\n\n private _zonesPhaseInput(): Record {\n const zones = this.installation?.zones as\n | Record>\n | undefined;\n if (!zones) return {};\n const out: Record = {};\n for (const [id, z] of Object.entries(zones)) {\n out[id] = {\n enabled: Boolean(z?.enabled ?? true),\n exclusive: Boolean(z?.exclusive ?? false),\n };\n }\n return out;\n }\n\n private _addZoneOptionsForDraft(draft: SlotRow): string[] {\n const zones = this._zonesMap();\n if (!zones) return [];\n return Object.keys(zones).filter((id) => !draft.zone_ids_ordered.includes(id));\n }\n\n private async _saveSlotDraft(): Promise {\n const d = this._slotEditDraft;\n if (!d) return;\n const ok = await this._call({\n action: \"update\",\n slot_id: d.slot_id,\n weekday: d.weekday,\n time_local: d.time_local,\n enabled: d.enabled,\n zone_ids_ordered: d.zone_ids_ordered,\n name: d.name.trim(),\n });\n if (ok) {\n this._closeEditDialog();\n }\n }\n\n private async _deleteSlotDraft(): Promise {\n const d = this._slotEditDraft;\n if (!d) return;\n if (!confirm(t(this.hass, \"config_panel.schedule_confirm_delete_slot\"))) return;\n const ok = await this._call({ action: \"delete\", slot_id: d.slot_id });\n if (ok) {\n this._closeEditDialog();\n }\n }\n\n private async _toggleSlotEnabled(slot: SlotRow, enabled: boolean): Promise {\n if (this._busy) return;\n const ok = await this._call({\n action: \"update\",\n slot_id: slot.slot_id,\n weekday: slot.weekday,\n time_local: slot.time_local,\n enabled,\n zone_ids_ordered: slot.zone_ids_ordered,\n name: slot.name.trim(),\n });\n if (!ok) {\n this.requestUpdate();\n }\n }\n\n override updated(changed: PropertyValues): void {\n super.updated(changed);\n this._consumeEditSlotQueryFromUrl();\n }\n\n protected render() {\n const slots = this._slots();\n const zones = this._zonesMap();\n const draft = this._slotEditDraft;\n const addZoneOpts = draft ? this._addZoneOptionsForDraft(draft) : [];\n const editSlotTitle =\n draft != null\n ? t(this.hass, \"config_panel.schedule_edit_dialog_title\", {\n summary: draft.name.trim()\n ? `${draft.name.trim()} · ${this._wd(draft.weekday)} ${this._fmtSlotTime(\n draft.time_local\n )}`\n : `${this._wd(draft.weekday)} ${this._fmtSlotTime(draft.time_local)}`,\n })\n : \"\";\n\n return html`\n \n
\n ${this._msg ? html`
${this._msg}
` : nothing}\n

${t(this.hass, \"config_panel.schedule_intro\")}

\n
\n {\n this._msg = undefined;\n this._addSlotDialogOpen = true;\n }}\n >\n ${t(this.hass, \"config_panel.schedule_add_slot\")}\n \n
\n ${slots.map((slot) => {\n const n = slot.zone_ids_ordered.length;\n return html`\n
\n
\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n void this._toggleSlotEnabled(slot, Boolean(tgt.checked));\n }}\n >\n
\n
\n

\n ${slot.name\n ? html`${slot.name} · ${this._wd(\n slot.weekday\n )}\n ${this._fmtSlotTime(slot.time_local)}`\n : html`${this._wd(slot.weekday)} ${this._fmtSlotTime(slot.time_local)}`}\n

\n

\n ${(() => {\n const parts: string[] = [];\n if (!slot.enabled) {\n parts.push(t(this.hass, \"config_panel.zones_detail_disabled\"));\n }\n parts.push(\n n === 1\n ? t(this.hass, \"config_panel.schedule_zones_in_order_one\")\n : t(this.hass, \"config_panel.schedule_zones_in_order_many\", { n })\n );\n return parts.join(\" · \");\n })()}\n

\n
\n
\n this._runSlotNow(slot.slot_id)}\n >\n ${t(this.hass, \"config_panel.schedule_run_slot_now\")}\n \n {\n this._msg = undefined;\n this._addZonePick = \"\";\n this._slotEditDraft = this._cloneSlot(slot);\n }}\n >\n ${t(this.hass, \"config_panel.schedule_edit\")}\n \n
\n
\n
\n `;\n })}\n
\n \n\n this._closeAddSlotDialog()}\n >\n

${t(this.hass, \"config_panel.schedule_dialog_new_hint\")}

\n
\n ${t(this.hass, \"config_panel.schedule_name_optional_title\")}\n

${t(this.hass, \"config_panel.schedule_name_optional_desc\")}

\n
\n {\n this._newSlotName = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.schedule_weekday_title\")}\n

${t(this.hass, \"config_panel.schedule_weekday_desc\")}

\n {\n this._newWeekday = parseInt((e.target as HTMLSelectElement).value, 10);\n }}\n >\n ${[0, 1, 2, 3, 4, 5, 6].map(\n (i) =>\n html``\n )}\n \n
\n
\n ${t(this.hass, \"config_panel.schedule_local_time_title\")}\n

${t(this.hass, \"config_panel.schedule_local_time_desc\")}

\n
\n {\n this._newTime = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n this._newEnabled = Boolean(tgt.checked);\n }}\n >\n ${t(this.hass, \"config_panel.schedule_slot_enabled\")}\n
\n
\n
\n
\n \n
\n \n\n this._closeEditDialog()}\n >\n ${draft\n ? html`\n
\n ${t(this.hass, \"config_panel.schedule_name_optional_title\")}\n
\n {\n draft.name = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.schedule_weekday_title\")}\n {\n draft.weekday = parseInt((e.target as HTMLSelectElement).value, 10);\n this.requestUpdate();\n }}\n >\n ${[0, 1, 2, 3, 4, 5, 6].map(\n (i) =>\n html``\n )}\n \n
\n
\n ${t(this.hass, \"config_panel.schedule_start_time_title\")}\n
\n {\n draft.time_local = (e.target as HTMLInputElement).value;\n }}\n >\n
\n
\n
\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n draft.enabled = Boolean(tgt.checked);\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.schedule_slot_enabled\")}\n
\n
\n
\n
\n ${t(this.hass, \"config_panel.schedule_run_order_title\")}\n

${t(this.hass, \"config_panel.schedule_run_order_desc\")}

\n
    \n ${(() => {\n const pmap = phaseIndexByZoneId(\n draft.zone_ids_ordered,\n this._zonesPhaseInput(),\n this._maxParallelZones()\n );\n return draft.zone_ids_ordered.map((zid, idx) => {\n const pnum = pmap.get(zid);\n const prevZid = idx > 0 ? draft.zone_ids_ordered[idx - 1] : undefined;\n const prevP = prevZid !== undefined ? pmap.get(prevZid) : undefined;\n const showPhase = pnum !== undefined && pnum !== prevP;\n return html`\n ${showPhase\n ? html`
  • ${t(\n this.hass,\n \"config_panel.schedule_phase_n\",\n { n: pnum ?? 0 }\n )}
  • `\n : nothing}\n
  • \n ${idx + 1}. ${this._zoneName(zid)}\n \n {\n if (idx > 0) {\n const a = draft.zone_ids_ordered;\n [a[idx - 1], a[idx]] = [a[idx], a[idx - 1]];\n this.requestUpdate();\n }\n }}\n >\n ${t(this.hass, \"config_panel.schedule_up\")}\n \n {\n const a = draft.zone_ids_ordered;\n if (idx < a.length - 1) {\n [a[idx + 1], a[idx]] = [a[idx], a[idx + 1]];\n this.requestUpdate();\n }\n }}\n >\n ${t(this.hass, \"config_panel.schedule_down\")}\n \n {\n draft.zone_ids_ordered = draft.zone_ids_ordered.filter(\n (x) => x !== zid\n );\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.schedule_remove\")}\n \n \n
  • \n `;\n });\n })()}\n
\n ${addZoneOpts.length\n ? html`\n
\n ${t(this.hass, \"config_panel.schedule_add_zone_title\")}\n {\n this._addZonePick = (e.target as HTMLSelectElement).value;\n }}\n >\n \n ${addZoneOpts.map(\n (id) => html``\n )}\n \n
\n {\n if (\n this._addZonePick &&\n !draft.zone_ids_ordered.includes(this._addZonePick)\n ) {\n draft.zone_ids_ordered = [\n ...draft.zone_ids_ordered,\n this._addZonePick,\n ];\n this._addZonePick = \"\";\n this.requestUpdate();\n }\n }}\n >\n ${t(this.hass, \"config_panel.schedule_add_to_list\")}\n \n
\n
\n `\n : zones && Object.keys(zones).length > 0\n ? html`

${t(\n this.hass,\n \"config_panel.schedule_all_zones_in_slot\"\n )}

`\n : html`

${t(\n this.hass,\n \"config_panel.schedule_create_zones_first\"\n )}

`}\n
\n `\n : nothing}\n
\n \n
\n \n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-schedule\", ViewSchedule);\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { defineCustomElementOnce } from \"../helpers\";\nimport { t } from \"../i18n\";\nimport type { HomeAssistant } from \"../types\";\n\nconst BUSY_STATES = new Set([\"preparing\", \"running\", \"stopping\"]);\n\nexport class ViewStatus extends LitElement {\n static properties = {\n hass: { attribute: false },\n runState: { type: Object },\n installation: { type: Object },\n };\n\n hass!: HomeAssistant;\n runState!: Record;\n installation?: Record;\n\n @state() private _showRaw = false;\n\n static styles = css`\n ha-card {\n margin-bottom: 16px;\n }\n .muted {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 12px;\n }\n .summary {\n margin: 0 0 12px;\n line-height: 1.5;\n }\n .summary strong {\n font-weight: 600;\n }\n ul.inline {\n margin: 8px 0 0;\n padding-left: 1.25rem;\n }\n pre {\n overflow: auto;\n font-size: 12px;\n margin: 0;\n white-space: pre-wrap;\n }\n button.toggle-raw {\n margin-top: 12px;\n padding: 8px 14px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 0.9rem;\n }\n `;\n\n private _zoneName(zoneId: string): string {\n const zones = this.installation?.zones as Record> | undefined;\n const z = zones?.[zoneId];\n return z ? String(z.name ?? zoneId) : zoneId;\n }\n\n private _zoneList(ids: string[]): string {\n return ids.map((id) => this._zoneName(id)).join(\", \");\n }\n\n protected render() {\n const rs = this.runState ?? {};\n const stateStr = String(rs.run_state ?? \"idle\");\n const busy = BUSY_STATES.has(stateStr);\n const manual = Boolean(rs.manual_run);\n const active = Array.isArray(rs.active_zone_ids)\n ? (rs.active_zone_ids as string[])\n : [];\n const queued = Array.isArray(rs.queued_zone_ids)\n ? (rs.queued_zone_ids as string[])\n : [];\n const lastErr = rs.last_error ? String(rs.last_error) : \"\";\n\n return html`\n \n
\n

${t(this.hass, \"config_panel.status_intro\")}

\n
\n

\n ${t(this.hass, \"config_panel.status_state_label\")}\n ${busy\n ? t(this.hass, \"config_panel.status_state_run_in_progress\")\n : stateStr === \"error\"\n ? t(this.hass, \"config_panel.status_state_error\")\n : t(this.hass, \"config_panel.status_state_idle\")}\n

\n ${busy && manual\n ? html`

\n ${t(this.hass, \"config_panel.status_manual_label\")}\n ${t(this.hass, \"config_panel.status_manual_text\")}\n

`\n : busy && !manual\n ? html`

\n ${t(this.hass, \"config_panel.status_scheduled_label\")}\n ${t(this.hass, \"config_panel.status_scheduled_text\")}\n

`\n : html`

${t(this.hass, \"config_panel.status_idle_hint\")}

`}\n ${active.length\n ? html`

\n ${t(this.hass, \"config_panel.status_active_zones\")}\n ${this._zoneList(active)}\n

`\n : nothing}\n ${queued.length\n ? html`

\n ${t(this.hass, \"config_panel.status_queued_zones\")}\n ${this._zoneList(queued)}\n

`\n : nothing}\n ${lastErr\n ? html`

\n ${t(this.hass, \"config_panel.status_last_error\")}\n ${lastErr}\n

`\n : nothing}\n

\n ${t(this.hass, \"config_panel.status_error_clear_hint\")}\n

\n
\n {\n this._showRaw = !this._showRaw;\n }}\n >\n ${this._showRaw\n ? t(this.hass, \"config_panel.status_hide_raw\")\n : t(this.hass, \"config_panel.status_show_raw\")}\n \n ${this._showRaw\n ? html`
${JSON.stringify(this.runState, null, 2)}
`\n : nothing}\n
\n
\n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-status\", ViewStatus);\n","/** Weekly timetable entries from schedule slots (local wall clock, Mon=0 … Sun=6). */\n\nimport { computePhases, type ZonePhaseInput } from \"./schedule-phases\";\n\n/** 0 = 00:00–08:00, 1 = 08:00–16:00, 2 = 16:00–24:00 (by segment start time). */\nexport type TimetableBucket = 0 | 1 | 2;\n\nexport interface TimetableEntry {\n zoneId: string;\n weekday: number;\n startMin: number;\n endMin: number;\n bucket: TimetableBucket;\n /** Plan, slot, and zone all on — theme “active” styling. */\n enabled: boolean;\n mode: string;\n slotId: string;\n}\n\nexport function parseTimeLocalToMinutes(timeLocal: string): number {\n const m = /^(\\d{1,2}):(\\d{2})$/.exec(timeLocal.trim());\n if (!m) return 0;\n const h = Math.min(23, Math.max(0, parseInt(m[1], 10)));\n const min = Math.min(59, Math.max(0, parseInt(m[2], 10)));\n return h * 60 + min;\n}\n\nexport function durationForMode(\n zone: Record | undefined,\n mode: string\n): number {\n if (!zone) return 0;\n if (mode === \"eco\") return Math.max(0, Number(zone.duration_eco_min ?? 0));\n if (mode === \"extra\") return Math.max(0, Number(zone.duration_extra_min ?? 0));\n return Math.max(0, Number(zone.duration_normal_min ?? 0));\n}\n\n/** Bucket by wall-clock hour of segment start ([0,8), [8,16), [16,24)). */\nexport function bucketFromStartMin(startMin: number): TimetableBucket {\n const h = Math.floor(Math.max(0, startMin) / 60);\n if (h < 8) return 0;\n if (h < 16) return 1;\n return 2;\n}\n\n/**\n * Weekday column order: values are internal indices 0=Monday … 6=Sunday.\n */\nexport function weekdayIndicesForDisplay(\n firstWeekday: string | undefined,\n language: string | undefined\n): number[] {\n const monFirst = [0, 1, 2, 3, 4, 5, 6];\n const sunFirst = [6, 0, 1, 2, 3, 4, 5];\n const fw = (firstWeekday || \"monday\").toLowerCase();\n if (fw === \"sunday\") return sunFirst;\n if (fw === \"monday\") return monFirst;\n if (fw === \"language\" && language) {\n try {\n const loc = new Intl.Locale(language.replace(/_/g, \"-\")) as Intl.Locale & {\n weekInfo?: { firstDay?: number };\n };\n const fd = loc.weekInfo?.firstDay;\n if (fd === 7) return sunFirst;\n return monFirst;\n } catch {\n return monFirst;\n }\n }\n return monFirst;\n}\n\nfunction zonesPhaseInputFromInstallation(\n zones: Record> | undefined\n): Record {\n const out: Record = {};\n if (!zones) return out;\n for (const [id, z] of Object.entries(zones)) {\n out[id] = {\n enabled: Boolean(z.enabled ?? true),\n exclusive: Boolean(z.exclusive),\n };\n }\n return out;\n}\n\n/**\n * Phase grouping includes disabled zones (they render gray) but phase advance\n * uses max duration among enabled zones only (matches runtime).\n */\nexport function buildTimetableEntries(installation: Record): TimetableEntry[] {\n const planEnabled = Boolean(installation?.enabled ?? true);\n const preStartSec = Math.max(0, Number(installation?.pre_start_delay_sec ?? 10));\n const mode = String(installation?.mode ?? \"normal\");\n const maxParallel = Math.max(1, Number(installation?.max_parallel_zones ?? 2));\n const zones = installation?.zones as Record> | undefined;\n const slots = installation?.schedule_slots as\n | Array>\n | undefined;\n\n const zonesById = zonesPhaseInputFromInstallation(zones);\n const entries: TimetableEntry[] = [];\n\n if (!slots?.length || !zones) {\n return entries;\n }\n\n for (const slot of slots) {\n const slotId = String(slot.slot_id ?? \"\");\n const slotEnabled = Boolean(slot.enabled ?? true);\n const weekday = Math.max(0, Math.min(6, Number(slot.weekday ?? 0)));\n const timeLocal = String(slot.time_local ?? \"00:00\");\n const ordered = Array.isArray(slot.zone_ids_ordered)\n ? (slot.zone_ids_ordered as string[])\n : [];\n\n const slotStartMin = parseTimeLocalToMinutes(timeLocal);\n let cursor = slotStartMin + preStartSec / 60;\n\n const phases = computePhases(ordered, zonesById, maxParallel, false);\n\n for (const phase of phases) {\n const phaseStart = cursor;\n let phaseLenMin = 0;\n for (const zid of phase) {\n const z = zones[zid];\n if (!z) continue;\n if (Boolean(z.enabled ?? true)) {\n const d = durationForMode(z, mode);\n phaseLenMin = Math.max(phaseLenMin, d);\n }\n }\n\n for (const zid of phase) {\n const z = zones[zid];\n if (!z) continue;\n const zoneEnabled = Boolean(z.enabled ?? true);\n const dur = durationForMode(z, mode);\n const startMin = phaseStart;\n const endMin = phaseStart + dur;\n entries.push({\n zoneId: zid,\n weekday,\n startMin,\n endMin,\n bucket: bucketFromStartMin(startMin),\n enabled: planEnabled && slotEnabled && zoneEnabled,\n mode,\n slotId,\n });\n }\n\n cursor = phaseStart + phaseLenMin;\n }\n }\n\n return entries;\n}\n\nexport function zoneRowOrder(installation: Record): string[] {\n const zones = installation?.zones as Record | undefined;\n if (!zones) return [];\n return Object.keys(zones);\n}\n\nexport function zoneDisplayName(\n installation: Record,\n zoneId: string\n): string {\n const zones = installation?.zones as Record> | undefined;\n const z = zones?.[zoneId];\n const name = z?.name != null ? String(z.name) : \"\";\n return name.trim() || zoneId.slice(0, 8);\n}\n\n/** HH:MM for profile time formatting (minutes may be fractional from pre-start seconds). */\nexport function minutesToTimeLocal(totalMin: number): string {\n const t = Math.max(0, totalMin);\n const m = Math.floor(t);\n const h = Math.min(23, Math.floor(m / 60));\n const mm = m % 60;\n return `${h}:${String(mm).padStart(2, \"0\")}`;\n}\n\n/** Rounded duration in minutes for UI labels. */\nexport function entryDurationMinutesRounded(entry: TimetableEntry): number {\n return Math.max(0, Math.round(entry.endMin - entry.startMin));\n}\n\nconst BUCKET_KEYS: TimetableBucket[] = [0, 1, 2];\n\n/** Horizontal stacking when multiple entries share the same zone, weekday, and bucket. */\nexport function assignEntryLanes(\n entries: TimetableEntry[]\n): Map {\n const byCell = new Map();\n for (const e of entries) {\n const k = `${e.weekday}:${e.zoneId}:${e.bucket}`;\n if (!byCell.has(k)) byCell.set(k, []);\n byCell.get(k)!.push(e);\n }\n const out = new Map();\n for (const list of byCell.values()) {\n list.sort((a, b) => a.startMin - b.startMin || a.endMin - b.endMin);\n const ends: number[] = [];\n for (const e of list) {\n let lane = 0;\n while (lane < ends.length && ends[lane] > e.startMin + 1e-3) {\n lane++;\n }\n if (lane === ends.length) {\n ends.push(e.endMin);\n } else {\n ends[lane] = Math.max(ends[lane], e.endMin);\n }\n out.set(e, { lane, maxLanes: 0 });\n }\n const maxLanes = Math.max(1, ends.length);\n for (const e of list) {\n out.get(e)!.maxLanes = maxLanes;\n }\n }\n return out;\n}\n\nexport const TIMETABLE_BUCKET_INDICES: readonly TimetableBucket[] = BUCKET_KEYS;\n\n/**\n * How many schedule slots include `zone_id` in `zone_ids_ordered` (distinct slots;\n * each slot counts at most once per zone).\n */\nexport function slotInclusionCountPerZone(installation: Record): Record {\n const slots = installation?.schedule_slots as Array> | undefined;\n const counts: Record = {};\n if (!Array.isArray(slots)) return counts;\n for (const slot of slots) {\n const ordered = Array.isArray(slot.zone_ids_ordered)\n ? (slot.zone_ids_ordered as string[])\n : [];\n const seen = new Set();\n for (const zid of ordered) {\n if (seen.has(zid)) continue;\n seen.add(zid);\n counts[zid] = (counts[zid] ?? 0) + 1;\n }\n }\n return counts;\n}\n","import { LitElement, html, css, nothing } from \"lit\";\nimport { defineCustomElementOnce, navigate } from \"../helpers\";\nimport { exportPath } from \"../navigation\";\nimport { t } from \"../i18n\";\nimport { weekdayLong } from \"../date-format\";\nimport { formatSlotTimeForProfile } from \"../profile-datetime\";\nimport {\n assignEntryLanes,\n buildTimetableEntries,\n entryDurationMinutesRounded,\n minutesToTimeLocal,\n TIMETABLE_BUCKET_INDICES,\n weekdayIndicesForDisplay,\n zoneDisplayName,\n zoneRowOrder,\n type TimetableBucket,\n type TimetableEntry,\n} from \"../timetable-model\";\nimport type { HomeAssistant } from \"../types\";\n\nexport class ViewTimetable extends LitElement {\n static properties = {\n hass: { attribute: false },\n entryId: { type: String },\n installation: { type: Object },\n };\n\n hass!: HomeAssistant;\n entryId!: string;\n installation!: Record;\n\n static styles = css`\n ha-card {\n margin-bottom: 16px;\n }\n .card-content {\n padding: 0 8px 16px;\n }\n .intro {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 12px;\n }\n .table-wrap {\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n margin: 0 -4px;\n }\n .tt-table {\n width: 100%;\n min-width: 520px;\n border-collapse: collapse;\n table-layout: fixed;\n font-size: 0.8125rem;\n background: var(--card-background-color, var(--ha-card-background));\n border: 1px solid var(--divider-color);\n border-radius: 8px;\n overflow: hidden;\n }\n .tt-table th,\n .tt-table td {\n border: 1px solid var(--divider-color);\n vertical-align: top;\n padding: 6px 8px;\n }\n .tt-th-zone {\n width: 12%;\n max-width: 96px;\n text-align: left;\n font-weight: 600;\n font-size: 0.7rem;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--secondary-text-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.04));\n }\n .tt-th-bucket {\n width: 1.75rem;\n min-width: 1.75rem;\n max-width: 1.75rem;\n padding: 6px 2px;\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.04));\n }\n .tt-th-day {\n text-align: center;\n font-weight: 600;\n font-size: 0.78rem;\n color: var(--primary-text-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.04));\n }\n .tt-zone-name {\n text-align: left;\n font-weight: 600;\n font-size: 0.8125rem;\n line-height: 1.3;\n color: var(--primary-text-color);\n background: var(--card-background-color, var(--ha-card-background));\n word-break: break-word;\n hyphens: auto;\n padding: 6px 6px;\n vertical-align: middle;\n }\n .tt-bucket-icon {\n text-align: center;\n vertical-align: middle;\n padding: 4px 2px;\n width: 1.75rem;\n min-width: 1.75rem;\n max-width: 1.75rem;\n background: var(--card-background-color, var(--ha-card-background));\n }\n .tt-bucket-icon ha-icon {\n display: block;\n margin: 0 auto;\n color: var(--secondary-text-color);\n --mdc-icon-size: 18px;\n width: 18px;\n height: 18px;\n }\n .tt-bucket-cell {\n background: var(--card-background-color, var(--ha-card-background));\n padding: 4px 4px 6px;\n min-height: 52px;\n }\n .tt-blocks {\n display: flex;\n flex-direction: column;\n gap: 4px;\n align-items: stretch;\n }\n .tt-blocks--lanes {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 3px;\n }\n .tt-block {\n box-sizing: border-box;\n border-radius: 6px;\n padding: 5px 6px;\n font-size: 0.68rem;\n line-height: 1.25;\n min-height: 2.5rem;\n flex: 1 1 auto;\n min-width: 0;\n color: var(--text-primary-color, var(--primary-text-color));\n border: 1px solid transparent;\n }\n .tt-blocks--lanes .tt-block {\n flex: 1 1 calc(50% - 2px);\n min-width: calc(50% - 2px);\n }\n .tt-block--active {\n background: color-mix(in srgb, var(--primary-color) 78%, var(--card-background-color));\n border-color: color-mix(in srgb, var(--primary-color) 42%, transparent);\n color: var(--text-primary-color, var(--primary-text-color));\n }\n .tt-block--disabled {\n background: color-mix(in srgb, var(--disabled-color, #9e9e9e) 38%, var(--card-background-color));\n border-color: var(--divider-color);\n color: var(--secondary-text-color);\n }\n .tt-block:hover {\n filter: brightness(1.05);\n }\n .tt-block--clickable {\n cursor: pointer;\n }\n .tt-block--clickable:focus-visible {\n outline: 2px solid var(--primary-color);\n outline-offset: 2px;\n }\n .tt-block-time {\n font-weight: 600;\n display: block;\n }\n .tt-block-dur {\n font-size: 0.62rem;\n opacity: 0.92;\n }\n .foot {\n margin-top: 14px;\n padding-top: 10px;\n border-top: 1px solid var(--divider-color);\n font-size: 0.75rem;\n color: var(--secondary-text-color);\n }\n .legend {\n display: flex;\n flex-wrap: wrap;\n gap: 10px 14px;\n align-items: center;\n }\n .legend-sep {\n flex-shrink: 0;\n width: 1px;\n align-self: stretch;\n min-height: 1rem;\n margin: 2px 2px 2px 4px;\n background: var(--divider-color);\n }\n .legend-period {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n line-height: 1.35;\n }\n .legend-period ha-icon {\n flex-shrink: 0;\n color: var(--secondary-text-color);\n --mdc-icon-size: 18px;\n width: 18px;\n height: 18px;\n }\n .legend-item {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .swatch {\n width: 14px;\n height: 14px;\n border-radius: 3px;\n flex-shrink: 0;\n border: 1px solid var(--divider-color);\n }\n .swatch--active {\n background: color-mix(in srgb, var(--primary-color) 78%, var(--card-background-color));\n border-color: color-mix(in srgb, var(--primary-color) 35%, transparent);\n }\n .swatch--disabled {\n background: color-mix(in srgb, var(--disabled-color, #9e9e9e) 38%, var(--card-background-color));\n }\n .empty {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n margin: 0;\n padding: 8px 0;\n }\n @media (max-width: 600px) {\n .intro {\n font-size: 0.8rem;\n margin-bottom: 8px;\n }\n .tt-table {\n min-width: 480px;\n font-size: 0.72rem;\n }\n .tt-table th,\n .tt-table td {\n padding: 4px 5px;\n }\n .tt-th-zone {\n font-size: 0.62rem;\n max-width: 80px;\n }\n .tt-th-bucket {\n width: 1.5rem;\n min-width: 1.5rem;\n max-width: 1.5rem;\n }\n .tt-th-day {\n font-size: 0.68rem;\n }\n .tt-zone-name {\n font-size: 0.72rem;\n }\n .tt-bucket-icon {\n padding: 3px 1px;\n width: 1.5rem;\n min-width: 1.5rem;\n max-width: 1.5rem;\n }\n .tt-bucket-icon ha-icon {\n --mdc-icon-size: 16px;\n width: 16px;\n height: 16px;\n }\n .tt-bucket-cell {\n min-height: 44px;\n padding: 3px 2px 4px;\n }\n .tt-block {\n font-size: 0.6rem;\n padding: 3px 4px;\n min-height: 2.1rem;\n border-radius: 4px;\n }\n .tt-block-dur {\n font-size: 0.55rem;\n }\n .foot {\n font-size: 0.68rem;\n }\n .legend-period ha-icon {\n --mdc-icon-size: 16px;\n width: 16px;\n height: 16px;\n }\n }\n `;\n\n private _bucketIcon(bucket: TimetableBucket): string {\n if (bucket === 0) return \"mdi:weather-sunset-up\";\n if (bucket === 1) return \"mdi:white-balance-sunny\";\n return \"mdi:weather-sunset\";\n }\n\n private _bucketAriaLabel(bucket: TimetableBucket): string {\n if (bucket === 0) return t(this.hass, \"config_panel.timetable_bucket_aria_morning\");\n if (bucket === 1) return t(this.hass, \"config_panel.timetable_bucket_aria_day\");\n return t(this.hass, \"config_panel.timetable_bucket_aria_evening\");\n }\n\n private _bucketLegendCaption(bucket: TimetableBucket): string {\n if (bucket === 0) return t(this.hass, \"config_panel.timetable_legend_bucket_morning\");\n if (bucket === 1) return t(this.hass, \"config_panel.timetable_legend_bucket_day\");\n return t(this.hass, \"config_panel.timetable_legend_bucket_evening\");\n }\n\n private _entryTooltip(e: TimetableEntry): string {\n const start = formatSlotTimeForProfile(this.hass, minutesToTimeLocal(e.startMin));\n const end = formatSlotTimeForProfile(this.hass, minutesToTimeLocal(e.endMin));\n const modeKey =\n e.mode === \"eco\"\n ? \"config_panel.timetable_mode_eco\"\n : e.mode === \"extra\"\n ? \"config_panel.timetable_mode_extra\"\n : \"config_panel.timetable_mode_normal\";\n const modeLabel = t(this.hass, modeKey);\n return t(this.hass, \"config_panel.timetable_bar_tooltip\", {\n start,\n end,\n mode: modeLabel,\n });\n }\n\n private _entriesForCell(\n map: Map,\n weekday: number,\n zoneId: string,\n bucket: TimetableBucket\n ): TimetableEntry[] {\n return map.get(`${weekday}\\t${zoneId}\\t${bucket}`) ?? [];\n }\n\n private _openSlotEditor(slotId: string): void {\n if (!slotId || !this.entryId) return;\n const q = new URLSearchParams({ editSlot: slotId });\n navigate(this, `${exportPath(this.entryId, \"schedule\")}?${q.toString()}`);\n }\n\n private _blockKeydown(ev: KeyboardEvent, slotId: string): void {\n if (ev.key === \"Enter\" || ev.key === \" \") {\n ev.preventDefault();\n this._openSlotEditor(slotId);\n }\n }\n\n protected render() {\n const inst = this.installation ?? {};\n const zones = inst.zones as Record | undefined;\n const slots = inst.schedule_slots as unknown[] | undefined;\n const zoneIds = zoneRowOrder(inst);\n const entries = buildTimetableEntries(inst);\n const laneInfo = assignEntryLanes(entries);\n\n const colOrder = weekdayIndicesForDisplay(\n this.hass?.locale?.first_weekday,\n this.hass?.locale?.language ?? this.hass?.language\n );\n\n if (!zones || zoneIds.length === 0) {\n return html`\n \n
\n

${t(this.hass, \"config_panel.timetable_intro\")}

\n

${t(this.hass, \"config_panel.timetable_empty_no_zones\")}

\n
\n
\n `;\n }\n\n if (!slots?.length) {\n return html`\n \n
\n

${t(this.hass, \"config_panel.timetable_intro\")}

\n

${t(this.hass, \"config_panel.timetable_empty_no_slots\")}

\n
\n
\n `;\n }\n\n const byCell = new Map();\n for (const e of entries) {\n const k = `${e.weekday}\\t${e.zoneId}\\t${e.bucket}`;\n if (!byCell.has(k)) byCell.set(k, []);\n byCell.get(k)!.push(e);\n }\n\n return html`\n \n
\n

${t(this.hass, \"config_panel.timetable_intro\")}

\n
\n \n \n \n \n \n ${colOrder.map(\n (wd) =>\n html``\n )}\n \n \n \n ${zoneIds.flatMap((zid) => {\n const name = zoneDisplayName(inst, zid);\n return TIMETABLE_BUCKET_INDICES.map((bucket, bi) => {\n return html`\n \n ${bi === 0\n ? html``\n : nothing}\n \n \n \n ${colOrder.map((wd) => {\n const cellEntries = [...this._entriesForCell(byCell, wd, zid, bucket)].sort(\n (a, b) => a.startMin - b.startMin\n );\n const multiLane = cellEntries.some((e) => {\n const info = laneInfo.get(e);\n return info && info.maxLanes > 1;\n });\n return html`\n \n `;\n })}\n \n `;\n });\n })}\n \n
${t(this.hass, \"config_panel.timetable_col_zone\")}${weekdayLong(this.hass, wd)}
${name}\n ${cellEntries.length\n ? html`\n
\n ${cellEntries.map((e) => {\n const start = formatSlotTimeForProfile(\n this.hass,\n minutesToTimeLocal(e.startMin)\n );\n const end = formatSlotTimeForProfile(\n this.hass,\n minutesToTimeLocal(e.endMin)\n );\n const dur = entryDurationMinutesRounded(e);\n const durLabel = t(this.hass, \"config_panel.timetable_duration_min\", {\n n: dur,\n });\n return html`\n this._openSlotEditor(e.slotId)}\n @keydown=${(ev: KeyboardEvent) =>\n this._blockKeydown(ev, e.slotId)}\n >\n ${start} – ${end}\n ${durLabel}\n
\n `;\n })}\n \n `\n : nothing}\n
\n
\n
\n
\n \n \n ${t(this.hass, \"config_panel.timetable_legend_active\")}\n \n \n \n ${t(this.hass, \"config_panel.timetable_legend_disabled\")}\n \n \n ${TIMETABLE_BUCKET_INDICES.map(\n (b) => html`\n \n \n ${this._bucketLegendCaption(b)}\n \n `\n )}\n
\n
\n
\n
\n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-timetable\", ViewTimetable);\n","import { LitElement, html, css, nothing, type TemplateResult } from \"lit\";\nimport { state } from \"lit/decorators.js\";\nimport { runZoneNow, saveZone } from \"../data/api\";\nimport { renderEntityDatalist, renderNativeEntityField } from \"../entity-input\";\nimport { defineCustomElementOnce, formatApiError } from \"../helpers\";\nimport { t } from \"../i18n\";\nimport { formLayoutStyles } from \"../form-layout-styles\";\nimport { slotInclusionCountPerZone } from \"../timetable-model\";\nimport type { HomeAssistant } from \"../types\";\n\nconst domains = [\"switch\", \"input_boolean\", \"group\"];\n\ninterface ZoneRow {\n zone_id: string;\n name: string;\n switch_entity_ids: string[];\n enabled: boolean;\n duration_eco_min: number;\n duration_normal_min: number;\n duration_extra_min: number;\n exclusive: boolean;\n}\n\nexport class ViewZones extends LitElement {\n static properties = {\n hass: { attribute: false },\n entryId: { type: String },\n installation: { type: Object },\n runState: { type: Object },\n onSaved: { attribute: false },\n };\n\n hass!: HomeAssistant;\n entryId!: string;\n installation!: Record;\n runState?: Record;\n onSaved?: () => void;\n\n static styles = [\n formLayoutStyles,\n css`\n ha-card {\n margin-bottom: 16px;\n }\n .card-content {\n padding: 0 8px 16px;\n }\n .error {\n color: var(--error-color);\n margin: 8px 0;\n }\n .intro {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n line-height: 1.45;\n margin: 0 0 16px;\n }\n .toolbar {\n margin-bottom: 16px;\n }\n .zone-list-row-wrap {\n display: flex;\n align-items: stretch;\n margin-bottom: 12px;\n border-radius: 8px;\n overflow: hidden;\n border: 1px solid var(--divider-color);\n background: var(--secondary-background-color, rgba(0, 0, 0, 0.02));\n }\n .zone-list-row-accent {\n width: 8px;\n flex-shrink: 0;\n background: var(--primary-color);\n transition: background 0.15s ease;\n }\n .zone-list-row-accent.inactive {\n background: var(--disabled-text-color, rgba(158, 158, 158, 0.45));\n }\n .zone-list-row {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 10px 16px;\n flex: 1;\n min-width: 0;\n padding: 14px 16px;\n }\n .zone-list-row-toggle {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n }\n .zone-list-row-toggle ha-switch {\n --switch-padding: 4px;\n }\n .zone-list-main {\n flex: 1;\n min-width: 160px;\n }\n .zone-list-name {\n font-size: 1.1rem;\n font-weight: 600;\n margin: 0 0 4px;\n }\n .zone-list-detail {\n font-size: 0.875rem;\n color: var(--secondary-text-color);\n margin: 0;\n line-height: 1.4;\n }\n .zone-list-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n }\n .zone-list-actions .btn-outline {\n margin-top: 0;\n }\n .zone-list-actions button {\n align-self: center;\n margin-top: 0;\n }\n button {\n padding: 10px 18px;\n border-radius: 4px;\n border: 1px solid var(--divider-color);\n background: var(--card-background-color);\n color: var(--primary-text-color);\n cursor: pointer;\n font-size: 1rem;\n }\n button.danger {\n border-color: var(--error-color);\n color: var(--error-color);\n }\n button.primary {\n background: var(--primary-color);\n color: var(--text-primary-color);\n border: none;\n }\n button.primary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n `,\n ];\n\n @state() private _busy = false;\n @state() private _msg?: string;\n @state() private _addDialogOpen = false;\n @state() private _editDraft: ZoneRow | null = null;\n private _new: ZoneRow = {\n zone_id: \"\",\n name: \"\",\n switch_entity_ids: [\"\"],\n enabled: true,\n duration_eco_min: 10,\n duration_normal_min: 15,\n duration_extra_min: 20,\n exclusive: false,\n };\n\n private _cloneZone(z: ZoneRow): ZoneRow {\n return {\n ...z,\n switch_entity_ids: [...z.switch_entity_ids],\n };\n }\n\n private _zonesFromInstallation(): ZoneRow[] {\n const z = this.installation?.zones as Record> | undefined;\n if (!z) return [];\n return Object.entries(z).map(([zone_id, o]) => {\n const raw = (o as Record).switch_entity_ids;\n let switch_entity_ids: string[] = [];\n if (Array.isArray(raw)) {\n switch_entity_ids = raw.map((x) => String(x)).filter(Boolean);\n } else if (o.switch_entity_id) {\n switch_entity_ids = [String(o.switch_entity_id)];\n }\n if (switch_entity_ids.length === 0) {\n switch_entity_ids = [\"\"];\n }\n return {\n zone_id,\n name: String(o.name ?? \"\"),\n switch_entity_ids,\n enabled: Boolean(o.enabled ?? true),\n duration_eco_min: Number(o.duration_eco_min ?? 10),\n duration_normal_min: Number(o.duration_normal_min ?? 15),\n duration_extra_min: Number(o.duration_extra_min ?? 20),\n exclusive: Boolean(o.exclusive ?? false),\n };\n });\n }\n\n private _resetNewZone(): void {\n this._new = {\n zone_id: \"\",\n name: \"\",\n switch_entity_ids: [\"\"],\n enabled: true,\n duration_eco_min: 10,\n duration_normal_min: 15,\n duration_extra_min: 20,\n exclusive: false,\n };\n }\n\n private _closeAddDialog(): void {\n this._addDialogOpen = false;\n this._resetNewZone();\n }\n\n private _closeEditDialog(): void {\n this._editDraft = null;\n }\n\n private _canSaveZone(zone: ZoneRow): boolean {\n return Boolean(zone.name.trim() && zone.switch_entity_ids.some((id) => id.trim()));\n }\n\n private async _runZoneNow(zoneId: string): Promise {\n this._busy = true;\n this._msg = undefined;\n this.requestUpdate();\n try {\n const res = (await runZoneNow(this.hass, this.entryId, zoneId)) as {\n success: boolean;\n error?: string;\n };\n if (!res.success) {\n const err = res.error ?? \"run_failed\";\n this._msg =\n err === \"busy\"\n ? t(this.hass, \"config_panel.zones_err_busy\")\n : err === \"zone_already_queued\"\n ? t(this.hass, \"config_panel.zones_err_zone_already_queued\")\n : err === \"unknown_zone\"\n ? t(this.hass, \"config_panel.zones_err_unknown_zone\")\n : err === \"zone_disabled\"\n ? t(this.hass, \"config_panel.zones_err_zone_disabled\")\n : err === \"zone_no_outputs\"\n ? t(this.hass, \"config_panel.zones_err_zone_no_outputs\")\n : String(err);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private _zonesEntityListId(): string {\n return `si-ent-z-${this.entryId}`;\n }\n\n private async _toggleZoneEnabled(z: ZoneRow, enabled: boolean): Promise {\n if (this._busy) return;\n this._busy = true;\n this._msg = undefined;\n try {\n const body: Record = {\n action: \"update\",\n zone_id: z.zone_id,\n zone: {\n name: z.name,\n switch_entity_ids: z.switch_entity_ids.filter(Boolean),\n enabled,\n duration_eco_min: z.duration_eco_min,\n duration_normal_min: z.duration_normal_min,\n duration_extra_min: z.duration_extra_min,\n exclusive: z.exclusive,\n },\n };\n const res = await saveZone(this.hass, this.entryId, body);\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n this.requestUpdate();\n }\n }\n\n private async _saveZone(\n action: \"add\" | \"update\" | \"delete\",\n zoneId: string | undefined,\n zone?: ZoneRow\n ): Promise {\n this._busy = true;\n this._msg = undefined;\n try {\n const body: Record = { action };\n if (zoneId) body.zone_id = zoneId;\n if (zone && action !== \"delete\") {\n body.zone = {\n name: zone.name,\n switch_entity_ids: zone.switch_entity_ids.filter(Boolean),\n enabled: zone.enabled,\n duration_eco_min: zone.duration_eco_min,\n duration_normal_min: zone.duration_normal_min,\n duration_extra_min: zone.duration_extra_min,\n exclusive: zone.exclusive,\n };\n }\n const res = await saveZone(this.hass, this.entryId, body);\n if (!res.success) {\n this._msg = formatApiError(res.error, this.hass);\n } else {\n if (action === \"update\" || action === \"delete\") {\n this._closeEditDialog();\n }\n if (action === \"add\") {\n this._closeAddDialog();\n }\n this.onSaved?.();\n }\n } catch (e) {\n this._msg = formatApiError(e, this.hass);\n } finally {\n this._busy = false;\n }\n }\n\n private _renderZoneFields(z: ZoneRow): TemplateResult {\n return html`\n
\n ${t(this.hass, \"config_panel.zones_field_name_title\")}\n

${t(this.hass, \"config_panel.zones_field_name_desc\")}

\n
\n {\n z.name = (e.target as HTMLInputElement).value;\n this.requestUpdate();\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.zones_outputs_title\")}\n

${t(this.hass, \"config_panel.zones_outputs_desc\")}

\n
\n
\n ${z.switch_entity_ids.map(\n (eid, i) => html`\n
\n ${renderNativeEntityField(\n this.hass,\n this._zonesEntityListId(),\n i === 0\n ? t(this.hass, \"config_panel.zones_output_first\")\n : t(this.hass, \"config_panel.zones_output_n\", { n: i + 1 }),\n eid,\n (v) => {\n const next = [...z.switch_entity_ids];\n next[i] = v;\n z.switch_entity_ids = next;\n this.requestUpdate();\n }\n )}\n ${z.switch_entity_ids.length > 1\n ? html`\n {\n z.switch_entity_ids.splice(i, 1);\n if (z.switch_entity_ids.length === 0) {\n z.switch_entity_ids = [\"\"];\n }\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.general_remove\")}\n \n `\n : nothing}\n
\n `\n )}\n {\n z.switch_entity_ids = [...z.switch_entity_ids, \"\"];\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.zones_add_output\")}\n \n
\n
\n
\n
\n ${t(this.hass, \"config_panel.zones_runtime_title\")}\n

${t(this.hass, \"config_panel.zones_runtime_desc\")}

\n
\n {\n z.duration_eco_min = parseInt((e.target as HTMLInputElement).value, 10) || 0;\n }}\n >\n {\n z.duration_normal_min = parseInt((e.target as HTMLInputElement).value, 10) || 0;\n }}\n >\n {\n z.duration_extra_min = parseInt((e.target as HTMLInputElement).value, 10) || 0;\n }}\n >\n
\n
\n
\n ${t(this.hass, \"config_panel.zones_behavior_title\")}\n

${t(this.hass, \"config_panel.zones_behavior_desc\")}

\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n z.enabled = Boolean(tgt.checked);\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.zones_enabled\")}\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n z.exclusive = Boolean(tgt.checked);\n this.requestUpdate();\n }}\n >\n ${t(this.hass, \"config_panel.zones_exclusive\")}\n
\n
\n
\n `;\n }\n\n protected render() {\n const zones = this._zonesFromInstallation();\n const edit = this._editDraft;\n const slotsPerZone = slotInclusionCountPerZone(this.installation ?? {});\n\n return html`\n ${renderEntityDatalist(this.hass, this._zonesEntityListId(), domains)}\n \n
\n ${this._msg ? html`
${this._msg}
` : nothing}\n

${t(this.hass, \"config_panel.zones_intro\")}

\n

${t(this.hass, \"config_panel.zones_intro_automation\")}

\n
\n {\n this._addDialogOpen = true;\n }}\n >\n ${t(this.hass, \"config_panel.zones_add_zone\")}\n \n
\n ${zones.map((z) => {\n const outs = z.switch_entity_ids.filter(Boolean).length;\n const runDisabled = this._busy || !z.enabled || outs === 0;\n return html`\n
\n
\n
\n
\n {\n const tgt = e.target as HTMLInputElement & { checked: boolean };\n void this._toggleZoneEnabled(z, Boolean(tgt.checked));\n }}\n >\n
\n
\n

${z.name || z.zone_id.slice(0, 8)}

\n

\n ${(() => {\n const parts: string[] = [];\n if (!z.enabled) {\n parts.push(t(this.hass, \"config_panel.zones_detail_disabled\"));\n }\n if (z.exclusive) {\n parts.push(t(this.hass, \"config_panel.zones_detail_exclusive\"));\n }\n parts.push(\n t(this.hass, \"config_panel.zones_detail_durations\", {\n eco: z.duration_eco_min,\n normal: z.duration_normal_min,\n extra: z.duration_extra_min,\n })\n );\n const slotN = slotsPerZone[z.zone_id] ?? 0;\n if (slotN === 1) {\n parts.push(t(this.hass, \"config_panel.zones_detail_added_slots_one\"));\n } else if (slotN > 1) {\n parts.push(\n t(this.hass, \"config_panel.zones_detail_added_slots_many\", { n: slotN })\n );\n }\n if (outs === 1) {\n parts.push(t(this.hass, \"config_panel.zones_detail_outputs_one\"));\n } else if (outs > 1) {\n parts.push(\n t(this.hass, \"config_panel.zones_detail_outputs_many\", { n: outs })\n );\n }\n return parts.join(\" · \");\n })()}\n

\n
\n
\n this._runZoneNow(z.zone_id)}\n >\n ${t(this.hass, \"config_panel.zones_run_zone_now\")}\n \n {\n this._msg = undefined;\n this._editDraft = this._cloneZone(z);\n }}\n >\n ${t(this.hass, \"config_panel.zones_edit\")}\n \n
\n
\n
\n `;\n })}\n \n
\n\n this._closeAddDialog()}\n >\n ${this._renderZoneFields(this._new)}\n
\n \n
\n \n\n this._closeEditDialog()}\n >\n ${edit ? this._renderZoneFields(edit) : nothing}\n
\n \n
\n \n `;\n }\n}\n\ndefineCustomElementOnce(\"si-view-zones\", ViewZones);\n","import { LitElement, html, css, nothing } from \"lit\";\nimport {\n fetchPanelState,\n listSimpleIrrigationEntries,\n type ConfigEntryRow,\n} from \"./data/api\";\nimport { defineCustomElementOnce, navigate } from \"./helpers\";\nimport { t, TRANSLATION_DOMAIN } from \"./i18n\";\nimport { loadHaPanelElements } from \"./load-ha-elements\";\nimport { exportPath, getPath } from \"./navigation\";\nimport { panelStyles } from \"./styles\";\nimport type { HomeAssistant, PanelStateResult } from \"./types\";\nimport \"./views/view-general\";\nimport \"./views/view-schedule\";\nimport \"./views/view-status\";\nimport \"./views/view-timetable\";\nimport \"./views/view-zones\";\n\nconst VERSION = \"0.2.0\";\n\nconst PANEL_PAGES = [\"general\", \"zones\", \"schedule\", \"timetable\", \"status\"] as const;\ntype PanelPage = (typeof PANEL_PAGES)[number];\n\nconst TAB_LABEL_KEYS: Record = {\n general: \"config_panel.tab_general\",\n zones: \"config_panel.tab_zones\",\n schedule: \"config_panel.tab_schedule\",\n timetable: \"config_panel.tab_timetable\",\n status: \"config_panel.tab_status\",\n};\n\nfunction normalizePanelPage(raw: string | undefined): PanelPage {\n const p = raw || \"general\";\n return (PANEL_PAGES as readonly string[]).includes(p) ? (p as PanelPage) : \"general\";\n}\n\nexport class SimpleIrrigationPanel extends LitElement {\n static properties = {\n hass: { attribute: false },\n narrow: { type: Boolean, reflect: true },\n route: { attribute: false },\n panel: { attribute: false },\n };\n\n hass?: HomeAssistant;\n narrow = false;\n route?: unknown;\n panel?: unknown;\n\n static styles = panelStyles;\n\n private _state: PanelStateResult | null = null;\n private _loading = true;\n private _error?: string;\n private _entries: Array = [];\n private _entriesLoading = false;\n\n private _runStateUnsub?: () => Promise;\n private _runStateDebounceTimer?: number;\n private _runStatePollTimer?: number;\n private _watchedRunningEntity?: string;\n private _watchedEntryId?: string;\n\n /** Language we last loaded `config_panel` category for (HA does not auto-load it for `panel_custom`). */\n private _panelI18nLang?: string;\n /** After first successful panel translation fetch (or no loader API). */\n private _initialPanelI18nDone = false;\n\n /** Serializes panel fetches so overlapping requests cannot clear `_state` out of order. */\n private _loadTail: Promise = Promise.resolve();\n\n setProperties(props: Record): void {\n if (props.hass !== undefined) {\n const next = props.hass as HomeAssistant;\n if (this.hass?.language !== next?.language) {\n this._panelI18nLang = undefined;\n }\n this.hass = next;\n void this._ensurePanelI18n();\n }\n if (props.narrow !== undefined) this.narrow = Boolean(props.narrow);\n if (props.route !== undefined) this.route = props.route;\n if (props.panel !== undefined) this.panel = props.panel;\n this.requestUpdate();\n }\n\n private async _ensurePanelI18n(): Promise {\n if (!this.hass) {\n return;\n }\n if (!this.hass.loadBackendTranslation) {\n if (!this._initialPanelI18nDone) {\n this._initialPanelI18nDone = true;\n this.requestUpdate();\n }\n return;\n }\n const lang = this.hass.language ?? \"en\";\n if (this._panelI18nLang === lang) {\n if (!this._initialPanelI18nDone) {\n this._initialPanelI18nDone = true;\n this.requestUpdate();\n }\n return;\n }\n try {\n await this.hass.loadBackendTranslation(\"config_panel\", TRANSLATION_DOMAIN);\n } catch {\n /* localize may keep returning missing keys */\n }\n this._panelI18nLang = lang;\n if (!this._initialPanelI18nDone) {\n this._initialPanelI18nDone = true;\n }\n this.requestUpdate();\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n window.addEventListener(\"location-changed\", this._locChanged);\n document.addEventListener(\"visibilitychange\", this._onVisibility);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener(\"location-changed\", this._locChanged);\n document.removeEventListener(\"visibilitychange\", this._onVisibility);\n void this._teardownRunStateListeners();\n }\n\n private _onVisibility = (): void => {\n if (document.visibilityState !== \"visible\") return;\n if (!window.location.pathname.includes(\"simple-irrigation\")) return;\n if (!this.hass) return;\n const { entryId } = getPath();\n if (!entryId) return;\n if (this._state) {\n void this._loadState(entryId, { silent: true });\n } else {\n void this._reloadPath();\n }\n };\n\n private _locChanged = (): void => {\n if (!window.location.pathname.includes(\"simple-irrigation\")) return;\n this._reloadPath();\n };\n\n private _clearRunStateDebounce(): void {\n if (this._runStateDebounceTimer !== undefined) {\n window.clearTimeout(this._runStateDebounceTimer);\n this._runStateDebounceTimer = undefined;\n }\n }\n\n private async _teardownRunStateListeners(): Promise {\n this._clearRunStateDebounce();\n if (this._runStatePollTimer !== undefined) {\n window.clearInterval(this._runStatePollTimer);\n this._runStatePollTimer = undefined;\n }\n if (this._runStateUnsub) {\n try {\n await this._runStateUnsub();\n } catch {\n /* ignore */\n }\n this._runStateUnsub = undefined;\n }\n this._watchedRunningEntity = undefined;\n this._watchedEntryId = undefined;\n }\n\n private _scheduleSilentRefresh(entryId: string): void {\n this._clearRunStateDebounce();\n this._runStateDebounceTimer = window.setTimeout(() => {\n this._runStateDebounceTimer = undefined;\n void this._loadState(entryId, { silent: true });\n }, 200);\n }\n\n private async _syncRunStateListeners(entryId: string): Promise {\n if (!this.hass || !this._state) {\n await this._teardownRunStateListeners();\n return;\n }\n const runningId = this._state.panel_entity_ids?.running ?? undefined;\n if (!runningId || !this.hass.connection) {\n await this._teardownRunStateListeners();\n return;\n }\n\n const subChanged =\n this._watchedEntryId !== entryId || this._watchedRunningEntity !== runningId;\n\n if (subChanged && this._runStateUnsub) {\n try {\n await this._runStateUnsub();\n } catch {\n /* ignore */\n }\n this._runStateUnsub = undefined;\n }\n\n this._watchedEntryId = entryId;\n this._watchedRunningEntity = runningId;\n\n if (!this._runStateUnsub) {\n this._runStateUnsub = await this.hass.connection.subscribeEvents(\n (ev: { data?: { entity_id?: string } }) => {\n if (ev.data?.entity_id !== runningId) return;\n this._scheduleSilentRefresh(entryId);\n },\n \"state_changed\"\n );\n }\n\n if (this._runStatePollTimer === undefined) {\n this._runStatePollTimer = window.setInterval(() => {\n if (!window.location.pathname.includes(\"simple-irrigation\")) return;\n const { entryId: eid } = getPath();\n if (!eid || eid !== this._watchedEntryId || !this.hass || !this._state) return;\n const rid = this._state.panel_entity_ids?.running;\n if (!rid || this.hass.states?.[rid]?.state !== \"on\") return;\n void this._loadState(eid, { silent: true });\n }, 1000);\n }\n }\n\n private async _reloadPath(): Promise {\n const { entryId, page } = getPath();\n if (!entryId) {\n await this._teardownRunStateListeners();\n await this._loadEntryList();\n /* Another `_reloadPath` may have navigated to an entry while we awaited the list. */\n if (getPath().entryId) {\n this.requestUpdate();\n return;\n }\n this._loading = false;\n this._state = null;\n this.requestUpdate();\n return;\n }\n await this._loadState(entryId);\n if (page && !(PANEL_PAGES as readonly string[]).includes(page)) {\n navigate(this, exportPath(entryId, \"general\"));\n }\n }\n\n private async _loadEntryList(): Promise {\n if (!this.hass) return;\n this._entriesLoading = true;\n this.requestUpdate();\n try {\n const entries = await listSimpleIrrigationEntries(this.hass);\n const hass = this.hass;\n this._entries = await Promise.all(\n entries.map(async (e) => {\n let plan_enabled = true;\n try {\n const st = await fetchPanelState(hass, e.entry_id);\n const inst = st.installation as Record;\n plan_enabled = Boolean(inst.enabled ?? true);\n } catch {\n /* ignore; show as active */\n }\n return { ...e, plan_enabled };\n })\n );\n } catch (e) {\n this._error = String(e);\n this._entries = [];\n } finally {\n this._entriesLoading = false;\n }\n }\n\n /** Enqueue a panel state fetch so concurrent calls cannot apply in the wrong order. */\n private _loadState(entryId: string, opts?: { silent?: boolean }): Promise {\n const run = this._loadTail.then(() => this._executeLoadState(entryId, opts));\n this._loadTail = run.then(\n () => undefined,\n () => undefined\n );\n return run;\n }\n\n private async _executeLoadState(\n entryId: string,\n opts?: { silent?: boolean }\n ): Promise {\n if (!this.hass) return;\n const silent = Boolean(opts?.silent);\n if (!silent) {\n this._loading = true;\n this._error = undefined;\n this.requestUpdate();\n }\n try {\n this._state = await fetchPanelState(this.hass, entryId);\n if (silent) {\n this._error = undefined;\n }\n } catch (e) {\n this._error = String(e);\n if (!silent) {\n this._state = null;\n }\n } finally {\n if (!silent) {\n this._loading = false;\n }\n if (!this._state) {\n void this._teardownRunStateListeners();\n } else {\n void this._syncRunStateListeners(entryId);\n }\n this.requestUpdate();\n }\n }\n\n async firstUpdated(): Promise {\n await loadHaPanelElements();\n await this._ensurePanelI18n();\n if (this.hass) {\n await this._reloadPath();\n }\n }\n\n updated(changed: Map): void {\n if (!changed.has(\"hass\") || !this.hass) {\n return;\n }\n const prev = changed.get(\"hass\") as HomeAssistant | undefined;\n if (prev === undefined) {\n void this._reloadPath();\n return;\n }\n if (prev.connection !== this.hass.connection) {\n void this._reloadPath();\n }\n }\n\n private _onTab(ev: CustomEvent): void {\n const name = (ev.detail as { name?: string })?.name;\n const { entryId } = getPath();\n if (!name || !entryId) return;\n const cur = getPath().page;\n if (name !== cur) {\n navigate(this, exportPath(entryId, name));\n this.requestUpdate();\n }\n }\n\n private _pickEntry(entryId: string): void {\n navigate(this, exportPath(entryId, \"general\"));\n /* `location-changed` runs `_reloadPath` → `_loadState`; avoid a second concurrent fetch. */\n }\n\n protected render() {\n if (!this.hass) {\n return html`
Loading…
`;\n }\n if (!this._initialPanelI18nDone) {\n return html`
Loading…
`;\n }\n\n const path = getPath();\n const page = normalizePanelPage(path.page);\n\n if (!path.entryId) {\n return html`\n
\n

${t(this.hass, \"config_panel.entry_picker_title\")}

\n

${t(this.hass, \"config_panel.entry_picker_lead\")}

\n ${this._error ? html`

${this._error}

` : nothing}\n ${this._entriesLoading\n ? html`

${t(this.hass, \"config_panel.entry_picker_loading\")}

`\n : nothing}\n
\n ${this._entries.map(\n (e) =>\n html`\n this._pickEntry(e.entry_id)}\n >\n
\n
${e.title}
\n ${e.disabled_by\n ? html`${t(\n this.hass,\n \"config_panel.entry_badge_ha\"\n )}`\n : !e.plan_enabled\n ? html`${t(\n this.hass,\n \"config_panel.entry_badge_plan_off\"\n )}`\n : html`${t(\n this.hass,\n \"config_panel.entry_badge_active\"\n )}`}\n
\n

${t(this.hass, \"config_panel.entry_card_desc\")}

\n \n `\n )}\n
\n ${!this._entries.length && !this._entriesLoading\n ? html`

${t(this.hass, \"config_panel.entry_picker_empty\")}

`\n : nothing}\n
${t(this.hass, \"config_panel.entry_picker_howto\")}
\n
\n `;\n }\n\n if (this._loading || !this._state) {\n return html`
${this._error ||\n t(this.hass, \"config_panel.loading\")}
`;\n }\n\n const inst = this._state.installation as Record;\n const rs = this._state.run_state as Record;\n const scheduleNext = this._state.schedule_next ?? { fire_at: null, slots: [] };\n\n return html`\n
\n
\n \n
${t(this.hass, \"config_panel.main_title\")}
\n
v${VERSION}
\n
\n \n ${PANEL_PAGES.map(\n (p) => html`\n \n ${t(this.hass, TAB_LABEL_KEYS[p])}\n \n `\n )}\n \n
\n
\n
\n ${page === \"general\"\n ? html` this._loadState(path.entryId!, { silent: true })}\n >`\n : nothing}\n ${page === \"zones\"\n ? html` this._loadState(path.entryId!, { silent: true })}\n >`\n : nothing}\n ${page === \"schedule\"\n ? html` this._loadState(path.entryId!, { silent: true })}\n >`\n : nothing}\n ${page === \"timetable\"\n ? html``\n : nothing}\n ${page === \"status\"\n ? html``\n : nothing}\n
\n
\n `;\n }\n}\n\ndefineCustomElementOnce(\"simple-irrigation-panel\", SimpleIrrigationPanel);\n"],"names":["t","e","s","o","r","n","i","S","c","h","a","l","p","d","u","f","b","y","css","html","LitElement","nothing","state"],"mappings":"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","x_google_ignoreList":[0,1,2,3,11,12,13]} \ No newline at end of file diff --git a/custom_components/simple_irrigation/frontend/src/form-layout-styles.ts b/custom_components/simple_irrigation/frontend/src/form-layout-styles.ts index 973086d..cc60762 100644 --- a/custom_components/simple_irrigation/frontend/src/form-layout-styles.ts +++ b/custom_components/simple_irrigation/frontend/src/form-layout-styles.ts @@ -23,7 +23,7 @@ export const formLayoutStyles = css` max-width: 100%; box-sizing: border-box; } - .field-row ha-textfield { + .field-row ha-input { width: 100%; display: block; } @@ -115,7 +115,7 @@ export const formLayoutStyles = css` gap: 12px; width: 100%; } - .duration-row ha-textfield { + .duration-row ha-input { width: 100%; display: block; } diff --git a/custom_components/simple_irrigation/frontend/src/load-ha-elements.ts b/custom_components/simple_irrigation/frontend/src/load-ha-elements.ts index bcd8a77..b429ba8 100644 --- a/custom_components/simple_irrigation/frontend/src/load-ha-elements.ts +++ b/custom_components/simple_irrigation/frontend/src/load-ha-elements.ts @@ -6,7 +6,7 @@ export async function loadHaPanelElements(): Promise { "ha-tab-group-tab", "ha-card", "ha-dialog", - "ha-textfield", + "ha-input", "ha-icon", "ha-switch", ]; diff --git a/custom_components/simple_irrigation/frontend/src/views/view-general.ts b/custom_components/simple_irrigation/frontend/src/views/view-general.ts index 048cffd..bb81968 100644 --- a/custom_components/simple_irrigation/frontend/src/views/view-general.ts +++ b/custom_components/simple_irrigation/frontend/src/views/view-general.ts @@ -677,13 +677,13 @@ export class ViewGeneral extends LitElement { ${t(this.hass, "config_panel.general_installation_name")}

${t(this.hass, "config_panel.general_installation_name_desc")}

- { this._name = (e.target as HTMLInputElement).value; }} - > + >
@@ -745,7 +745,7 @@ export class ViewGeneral extends LitElement { ${t(this.hass, "config_panel.general_pre_start_delay_title")}

${t(this.hass, "config_panel.general_pre_start_delay_desc")}

- + >
@@ -786,7 +786,7 @@ export class ViewGeneral extends LitElement { ${t(this.hass, "config_panel.general_max_parallel")}

${t(this.hass, "config_panel.general_max_parallel_desc")}

- + >
diff --git a/custom_components/simple_irrigation/frontend/src/views/view-schedule.ts b/custom_components/simple_irrigation/frontend/src/views/view-schedule.ts index f4ca1e1..e3e4708 100644 --- a/custom_components/simple_irrigation/frontend/src/views/view-schedule.ts +++ b/custom_components/simple_irrigation/frontend/src/views/view-schedule.ts @@ -537,13 +537,13 @@ export class ViewSchedule extends LitElement { ${t(this.hass, "config_panel.schedule_name_optional_title")}

${t(this.hass, "config_panel.schedule_name_optional_desc")}

- { this._newSlotName = (e.target as HTMLInputElement).value; }} - > + >
@@ -567,13 +567,13 @@ export class ViewSchedule extends LitElement { ${t(this.hass, "config_panel.schedule_local_time_title")}

${t(this.hass, "config_panel.schedule_local_time_desc")}

- { this._newTime = (e.target as HTMLInputElement).value; }} - > + >
@@ -641,13 +641,13 @@ export class ViewSchedule extends LitElement {
${t(this.hass, "config_panel.schedule_name_optional_title")}
- { draft.name = (e.target as HTMLInputElement).value; }} - > + >
@@ -671,13 +671,13 @@ export class ViewSchedule extends LitElement {
${t(this.hass, "config_panel.schedule_start_time_title")}
- { draft.time_local = (e.target as HTMLInputElement).value; }} - > + >
diff --git a/custom_components/simple_irrigation/frontend/src/views/view-zones.ts b/custom_components/simple_irrigation/frontend/src/views/view-zones.ts index 6765c91..f5f19cf 100644 --- a/custom_components/simple_irrigation/frontend/src/views/view-zones.ts +++ b/custom_components/simple_irrigation/frontend/src/views/view-zones.ts @@ -337,14 +337,14 @@ export class ViewZones extends LitElement { ${t(this.hass, "config_panel.zones_field_name_title")}

${t(this.hass, "config_panel.zones_field_name_desc")}

- { z.name = (e.target as HTMLInputElement).value; this.requestUpdate(); }} - > + >
@@ -406,7 +406,7 @@ export class ViewZones extends LitElement { ${t(this.hass, "config_panel.zones_runtime_title")}

${t(this.hass, "config_panel.zones_runtime_desc")}

- { z.duration_eco_min = parseInt((e.target as HTMLInputElement).value, 10) || 0; }} - > - + { z.duration_normal_min = parseInt((e.target as HTMLInputElement).value, 10) || 0; }} - > - + { z.duration_extra_min = parseInt((e.target as HTMLInputElement).value, 10) || 0; }} - > + >