`}):Z,v=r&&i&&r[o[0].index]?(()=>{const e=r[o[0].index];return void 0===e.start||void 0===e.end?Z:R`
`})():W,y=mr(e.raw)?gr(e,t.range,a.map(e=>e.points.filter(e=>!e.carried))):void 0;return Z`
`})():Z,y=qs(e.raw)?Vs(e,t.range,o.map(e=>e.points.filter(e=>!e.carried))):void 0;return R`
- ${An(d,h,u)} ${i?function(e,t,a){const o=e.length,n=e.flatMap(({series:e,y:n},r)=>{const i=Math.min(gn,Math.max(0,n(0)));return e.points.filter(e=>null!==e.v&&!e.carried&&void 0!==e.start&&void 0!==e.end).map(s=>{const l=t(s.start)/fn,c=(t(s.end)-t(s.start))/fn,d=Math.min(gn,Math.max(0,n(s.v))),u=d>i,h=e.color??Ce(Te(s.v,e.entity.bands).color),p=`(${Wy(c)} - ${a}px) / ${o}`;return Z`
{const i=Math.min(Gr,Math.max(0,r(0)));return e.points.filter(e=>null!==e.v&&!e.carried&&void 0!==e.start&&void 0!==e.end).map(s=>{const l=t(s.start)/Yr,c=(t(s.end)-t(s.start))/Yr,d=Math.min(Gr,Math.max(0,r(s.v))),u=d>i,h=e.color??je(Te(s.v,e.entity.bands).color),p=`(${pM(c)} - ${o}px) / ${n}`;return R`
`})});return Z`
${n}
`}(c,l,o.barSpacing):W} ${m} ${v}
- ${f} ${"never"===o.points?W:g}
-
`}(e,o,s,t,l);return Z`
+ style="left:calc(${pM(l)} + ${o/2}px + ${a} * ${p});width:max(1px, calc(${p}));
+ top:${pM(Math.min(d,i)/Gr)};height:${pM(Math.abs(i-d)/Gr)};background:${h}"
+ >
`})});return R`
${r}
`}(c,l,n.barSpacing):Z} ${m} ${v}
+ ${f} ${"never"===n.points?Z:g}
+
`}(e,n,s,t,l);return R`
- ${u} ${b===W?W:Z`
${b}
`} ${g}
- ${Jy(r,t,e,"history"===o.source&&!o.group&&0===t.pointsPerHour)}
+ ${u} ${b===Z?Z:R`
${b}
`} ${g}
+ ${yM(a,t,e,"history"===n.source&&!n.group&&0===t.pointsPerHour)}
${y}
${_}
-
`}},Qy=["bars","gauges","history","totals","compare","distribution"];function eb(e){return"chart"===e.layout}const tb={bar:hs,thin:cu,segmented:su,tank:lu,ring:Kd,needle:gd,arc:Qd,line:pc,column:Ol,area:ts,combined:wc,pie:qd,rings:nu,pictograph:Pd,waffle:gu,histogram:od,scatter:ru,bubble:hl,heatmap:qc,box:Hs,funnel:Mu,radar:eh,polar_area:rh,treemap:zh,sunburst:qh,icicle:Rh,grouped_bars:rp,bullet:dp,lollipop:fp,waterfall:kp,slope:Op,dumbbell:Jp,range_area:om,sparkline:um,streamgraph:zm,candlestick:Fm,violin:Mf,beeswarm:Df,sankey:ag,timeline:Mg,climate:Vg,wind_rose:yv,day_clock:yy,trend:Ky},ab="important",ob=" !"+ab,nb=me(class extends fe{constructor(e){if(super(e),e.type!==de||"style"!==e.name||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,a)=>{const o=e[a];return null==o?t:t+`${a=a.includes("-")?a:a.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,"-$&").toLowerCase()}:${o};`},"")}update(e,[t]){const{style:a}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(t)),this.render(t);for(const o of this.ft)null==t[o]&&(this.ft.delete(o),o.includes("-")?a.removeProperty(o):a[o]=null);for(const o in t){const e=t[o];if(null!=e){this.ft.add(o);const t="string"==typeof e&&e.endsWith(ob);o.includes("-")||t?a.setProperty(o,t?e.slice(0,-11):e,t?ab:""):a[o]=e}}return R}});
-/**
- * @license
- * Copyright 2018 Google LLC
- * SPDX-License-Identifier: BSD-3-Clause
- */class rb{constructor(e){this.host=e,e.addController(this)}hostConnected(){var e;this.stop=(e=()=>this.host.requestUpdate(),"undefined"==typeof window?()=>{}:(window.addEventListener(wt,e),()=>window.removeEventListener(wt,e)))}hostDisconnected(){this.stop?.(),this.stop=void 0}}const ib=Object.keys(Fe),sb=Object.keys(Ee),lb="custom",cb={text:{}},db={entity:{domain:["sensor","input_number","number"]}};function ub(e){return"string"==typeof e&&""!==e.trim()&&!Number.isFinite(Number(e))}const hb={icon:{}};function pb(e){return void 0===e?"none":ib.find(t=>Fe[t]&&ga(Fe[t],e))??"custom"}function mb(e){return sb.includes(e)}class fb extends le{constructor(){super(),this.languageController=new rb(this),this._customOpen=new Set,this._entityOpen=new Set}willUpdate(e){e.has("bands")&&(this._customOpen.size&&(this._customOpen=new Set),this._entityOpen.size&&(this._entityOpen=new Set))}_entityValue(e){const t=this.hass?.states[e]?.state,a=void 0===t||""===t.trim()?NaN:Number(t);return Number.isFinite(a)?a:void 0}_t(e){return zt(this.hass,e)}_getSelectors(){const e=`${Mt(this.hass)}|${this.unit??""}`;if(this._selectors?.key===e)return this._selectors;const t=ib.map(e=>({value:e,label:this._t(`editor_preset_${e}`)})),a=e=>({select:{mode:"dropdown",options:e}});return this._selectors={key:e,preset:a(t),presetCustom:a([...t,{value:lb,label:this._t("editor_preset_custom")}]),color:a([...sb,lb].map(e=>({value:e,label:this._t(`editor_color_${e}`)}))),from:{number:{mode:"box",step:"any",...this.unit?{unit_of_measurement:this.unit}:{}}}},this._selectors}_emit(e){this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:e&&e.length?e:void 0}}))}_presetChanged(e){e.stopPropagation();const t=e.detail?.value;if(!t||t===lb||!ib.includes(t))return;if(t===pb(this.bands))return;const a=Fe[t];this._emit(a?structuredClone(a):void 0)}_updateBand(e,t,a){const o=[...this.bands??[]],n={...o[e]};null==a||""===a?delete n[t]:n[t]=a,o[e]=n,this._emit(o)}_fromChanged(e,t){t.stopPropagation();const a=Number(t.detail?.value);""!==t.detail?.value&&null!=t.detail?.value&&Number.isFinite(a)&&this._updateBand(e,"from",a)}_fromEntityChanged(e,t){t.stopPropagation();const a=t.detail?.value;"string"==typeof a&&""!==a&&this._updateBand(e,"from",a)}_toggleFromMode(e){const t=this.bands?.[e]?.from,a=new Set(this._entityOpen);ub(t)?this._updateBand(e,"from",this._entityValue(t)??0):a.delete(e)||a.add(e),this._entityOpen=a}_colorChanged(e,t){t.stopPropagation();const a=t.detail?.value,o=this.bands?.[e]?.color??"primary";if(!a)return;const n=new Set(this._customOpen);a!==lb?(n.delete(e),this._customOpen=n,a!==o&&this._updateBand(e,"color",a)):mb(o)&&(this._customOpen=n.add(e))}_customColorChanged(e,t){t.stopPropagation();const a="string"==typeof t.detail?.value?t.detail.value.trim():"";if(!a)return;const o=new Set(this._customOpen);o.delete(e),this._customOpen=o,this._updateBand(e,"color",a)}_iconChanged(e,t){t.stopPropagation(),this._updateBand(e,"icon",t.detail?.value)}_labelChanged(e,t){t.stopPropagation(),this._updateBand(e,"label",t.detail?.value)}_removeBand(e){const t=[...this.bands??[]];t.splice(e,1),this._emit(t)}_addBand(){const e=[...this.bands??[]],t=e[e.length-1]?.from,a="number"==typeof t?t:ub(t)?this._entityValue(t)??NaN:"string"==typeof t&&""!==t.trim()?Number(t):NaN;e.push({from:Number.isFinite(a)?a+10:0,color:"primary"}),this._emit(e)}_renderBand(e,t,a){const o=!mb(e.color)||this._customOpen.has(t),n=ub(e.from)?e.from:void 0,r=void 0!==n||this._entityOpen.has(t);return Z`
-
- this._fromChanged(t,e)}
- >
- this._colorChanged(t,e)}
- >
- this._labelChanged(t,e)}
- >
- this._iconChanged(t,e)}
- >
- this._toggleFromMode(t)}
- >
- this._removeBand(t)}
- >
- ${r?Z`this._fromEntityChanged(t,e)}
- > `:W}
- ${o?Z`this._customColorChanged(t,e)}
- > `:W}
-
`}render(){const e=this._getSelectors(),t=pb(this.bands);return Z`
- ${(this.bands??[]).map((t,a)=>this._renderBand(t,a,e))}
-
${this._t("editor_add_band")} `}}fb.properties={hass:{attribute:!1},bands:{attribute:!1},unit:{attribute:!1},_customOpen:{state:!0},_entityOpen:{state:!0}},fb.styles=r`
- :host {
- display: block;
- }
- /* Two lines per band: where it starts and its colour, then its label and icon. */
- .band {
- display: grid;
- grid-template-columns: 20px minmax(0, 1fr) minmax(0, 1fr) auto auto;
- grid-template-areas:
- 'swatch from color mode remove'
- '. label icon icon icon';
- gap: 8px;
- align-items: center;
- margin-top: 12px;
- }
- .band + .band {
- padding-top: 12px;
- border-top: 1px solid var(--divider-color, rgba(127, 127, 127, 0.3));
- }
- .swatch {
- grid-area: swatch;
- }
- [data-role='from'] {
- grid-area: from;
- }
- [data-role='color'] {
- grid-area: color;
- }
- [data-role='label'] {
- grid-area: label;
- }
- [data-role='icon'] {
- grid-area: icon;
- }
- .from-mode {
- grid-area: mode;
- }
- .remove {
- grid-area: remove;
- }
- .swatch {
- width: 20px;
- height: 20px;
- border-radius: 50%;
- background: var(--swatch);
- border: 1px solid var(--divider-color, rgba(127, 127, 127, 0.3));
- box-sizing: border-box;
- }
- /* Optional extra lines go below the two named ones, so a band without them has no gap. */
- .custom,
- .from-entity {
- grid-column: 2 / -1;
- }
- .add-band {
- margin-top: 8px;
- padding: 6px 12px;
- border: 1px solid var(--divider-color, rgba(127, 127, 127, 0.3));
- border-radius: 8px;
- background: none;
- color: var(--primary-color);
- font: inherit;
- cursor: pointer;
- }
- .add-band:focus-visible {
- outline: 2px solid var(--primary-color, #03a9f4);
- outline-offset: 2px;
- }
- `,customElements.get("cd-bands-editor")||customElements.define("cd-bands-editor",fb);const gb={number:{mode:"box",step:"any"}},vb={entity:{domain:["sensor","input_number","number"]}};function yb(e){return null==e||""===e?"default":"number"==typeof e||""!==e.trim()&&Number.isFinite(Number(e))?"number":"entity"}class bb extends le{constructor(){super(...arguments),this.languageController=new rb(this)}willUpdate(e){e.has("value")&&"default"!==yb(this.value)&&(this._mode=void 0)}_modeSelectorFor(){const e=(e,t)=>zt(this.hass,e,t),t=[{value:"default",label:e("editor_limit_default",{value:this.defaultLabel??""})},{value:"number",label:e("editor_limit_number")},{value:"entity",label:e("editor_limit_entity")}],a=t.map(e=>e.label).join("|");return this._modeSelector?.key!==a&&(this._modeSelector={key:a,selector:{select:{mode:"dropdown",options:t}}}),this._modeSelector.selector}get _currentMode(){return this._mode??yb(this.value)}_emit(e){this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:e}}))}_modeChanged(e){e.stopPropagation();const t=e.detail?.value;t&&t!==this._currentMode&&(this._mode=t,void 0!==this.value&&this._emit(void 0))}_numberChanged(e){e.stopPropagation();const t=e.detail?.value,a="number"==typeof t?t:""===t||null==t?NaN:Number(t);this._mode="number",this._emit(Number.isFinite(a)?a:void 0)}_entityChanged(e){e.stopPropagation();const t=e.detail?.value;this._mode="entity",this._emit("string"==typeof t&&""!==t?t:void 0)}render(){const e=e=>zt(this.hass,e),t=this._currentMode;return Z`
`}},_M=["bars","gauges","history","totals","compare","distribution"];function xM(e){return"chart"===e.layout}const wM={bar:hh,thin:Jg,segmented:Zg,tank:Vg,battery:Xg,ring:Dg,needle:tg,arc:Pg,line:ym,column:Wp,area:uh,combined:Sm,pie:Ag,rings:Rg,pictograph:wg,waffle:rv,histogram:Ff,scatter:Bg,bubble:hp,heatmap:Jm,spiral:wf,box:Ih,funnel:pv,radar:Wv,polar_area:Vv,treemap:fy,marimekko:Cy,sunburst:Gy,icicle:Xy,grouped_bars:db,bullet:fb,lollipop:_b,waterfall:Ab,slope:Ib,dumbbell:o_,range_area:l_,sparkline:g_,streamgraph:C_,candlestick:H_,violin:jx,beeswarm:Rx,strip_plot:Jx,sankey:cw,chord:_w,timeline:Rw,climate:u$,wind_rose:O$,day_clock:mk,cycle_plot:Uk,trend:bM},$M={number:{mode:"box",step:"any"}},kM={entity:{domain:["sensor","input_number","number"]}};function MM(e){return null==e||""===e?"default":"number"==typeof e||""!==e.trim()&&Number.isFinite(Number(e))?"number":"entity"}class zM extends le{constructor(){super(...arguments),this.languageController=new Fd(this)}willUpdate(e){e.has("value")&&"default"!==MM(this.value)&&(this._mode=void 0)}_modeSelectorFor(){const e=(e,t)=>Ze(this.hass,e,t),t=[{value:"default",label:e("editor_limit_default",{value:this.defaultLabel??""})},{value:"number",label:e("editor_limit_number")},{value:"entity",label:e("editor_limit_entity")}],o=t.map(e=>e.label).join("|");return this._modeSelector?.key!==o&&(this._modeSelector={key:o,selector:{select:{mode:"dropdown",options:t}}}),this._modeSelector.selector}get _currentMode(){return this._mode??MM(this.value)}_emit(e){this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:e}}))}_modeChanged(e){e.stopPropagation();const t=e.detail?.value;t&&t!==this._currentMode&&(this._mode=t,void 0!==this.value&&this._emit(void 0))}_numberChanged(e){e.stopPropagation();const t=e.detail?.value,o="number"==typeof t?t:""===t||null==t?NaN:Number(t);this._mode="number",this._emit(Number.isFinite(o)?o:void 0)}_entityChanged(e){e.stopPropagation();const t=e.detail?.value;this._mode="entity",this._emit("string"==typeof t&&""!==t?t:void 0)}render(){const e=e=>Ze(this.hass,e),t=this._currentMode;return R`
- ${"number"===t?Z` `:"entity"===t?Z` `:"entity"===t?R` `:W}`}}bb.properties={hass:{attribute:!1},label:{attribute:!1},value:{attribute:!1},defaultLabel:{attribute:!1},_mode:{state:!0}},bb.styles=r`
+ > `:Z}`}}zM.properties={hass:{attribute:!1},label:{attribute:!1},value:{attribute:!1},defaultLabel:{attribute:!1},_mode:{state:!0}},zM.styles=a`
:host {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
gap: 8px;
align-items: start;
}
- `,customElements.get("cd-limit-field")||customElements.define("cd-limit-field",bb);const _b=["min","max","target"];function xb(e,t,a){const o=t&&!a?e?.states[t]?.attributes?.unit_of_measurement:void 0;return"string"==typeof o&&o?o:void 0}class wb extends le{constructor(){super(),this.languageController=new rb(this),this._computeLabel=e=>this._t(`editor_${e.name}`),this._expanded=new Set}_t(e,t){return zt(this.hass,e,t)}get _asConfig(){return{type:"",entities:this.entities??[]}}_emit(e){e.entities!==this.entities&&this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:e.entities??[]}}))}_set(e,t,a){this._emit(Nt(this._asConfig,e,t,a))}_move(e,t){const a=new Set;for(const o of this._expanded)a.add(o===e?t:o===t?e:o);this._expanded=a,this._emit(function(e,t,a){const o=[...e.entities??[]];if(t<0||t>=o.length||t===a)return e;const[n]=o.splice(t,1);return o.splice(Math.max(0,Math.min(a,o.length)),0,n),{...e,entities:o}}(this._asConfig,e,t))}_remove(e){const t=new Set;for(const a of this._expanded)a!==e&&t.add(a>e?a-1:a);this._expanded=t,this._emit(function(e,t){const a=[...e.entities??[]];return t<0||t>=a.length?e:(a.splice(t,1),{...e,entities:a})}(this._asConfig,e))}_toggle(e){const t=new Set(this._expanded);t.delete(e)||t.add(e),this._expanded=t}_add(e){e.stopPropagation();const t=e.detail?.value;"string"==typeof t&&""!==t&&(e.target.value="",this._emit(function(e,t){return{...e,entities:[...e.entities??[],t]}}(this._asConfig,t)))}_formChanged(e,t,a){a.stopPropagation();const o=this.entities?.[e];if(void 0===o)return;const n="string"==typeof o?{entity:o}:o,r=ya(n,t,a.detail?.value??{});if(r===n)return;const i=[...this.entities??[]],s=Object.keys(r);i[e]=1===s.length&&"entity"===s[0]?r.entity:r,this._emit({type:"",entities:i})}_rowLabel(e){const t=this.hass?.states[e];return t?{text:t.attributes.friendly_name||e,missing:!1}:this.hass?{text:this._t("editor_not_found",{entity:e}),missing:!0}:{text:e,missing:!1}}_form(e,t,a,o,n){return Z`
this._t(`editor_${e.name}`),this._expanded=new Set}_t(e,t){return Ze(this.hass,e,t)}get _asConfig(){return{type:"",entities:this.entities??[]}}_emit(e){e.entities!==this.entities&&this.dispatchEvent(new CustomEvent("value-changed",{detail:{value:e.entities??[]}}))}_set(e,t,o){this._emit(_a(this._asConfig,e,t,o))}_move(e,t){const o=new Set;for(const n of this._expanded)o.add(n===e?t:n===t?e:n);this._expanded=o,this._emit(function(e,t,o){const n=[...e.entities??[]];if(t<0||t>=n.length||t===o)return e;const[r]=n.splice(t,1);return n.splice(Math.max(0,Math.min(o,n.length)),0,r),{...e,entities:n}}(this._asConfig,e,t))}_remove(e){const t=new Set;for(const o of this._expanded)o!==e&&t.add(o>e?o-1:o);this._expanded=t,this._emit(function(e,t){const o=[...e.entities??[]];return t<0||t>=o.length?e:(o.splice(t,1),{...e,entities:o})}(this._asConfig,e))}_toggle(e){const t=new Set(this._expanded);t.delete(e)||t.add(e),this._expanded=t}_add(e){e.stopPropagation();const t=e.detail?.value;"string"==typeof t&&""!==t&&(e.target.value="",this._emit(function(e,t){return{...e,entities:[...e.entities??[],t]}}(this._asConfig,t)))}_formChanged(e,t,o){o.stopPropagation();const n=this.entities?.[e];if(void 0===n)return;const r="string"==typeof n?{entity:n}:n,a=li(r,t,o.detail?.value??{});if(a===r)return;const i=[...this.entities??[]],s=Object.keys(a);i[e]=1===s.length&&"entity"===s[0]?a.entity:a,this._emit({type:"",entities:i})}_rowLabel(e){const t=this.hass?.states[e];return t?{text:t.attributes.friendly_name||e,missing:!1}:this.hass?{text:this._t("editor_not_found",{entity:e}),missing:!0}:{text:e,missing:!1}}_form(e,t,o,n,r){return R`this._formChanged(t,n,e)}
- > `}_renderOverrides(e,t){const a=e=>t=>{t.stopPropagation(),e(t.detail?.value)};return Z`
- ${this._form("entity-attribute",t,e,function(e){let t=ia.get(e);return t||(t=[{name:"attribute",selector:{attribute:{entity_id:e}}}],ia.set(e,t)),t}(e.entity),Jt)}
- ${this._form("entity-text",t,e,ra,Xt)}
- ${this.chartFields?this._form("entity-chart",t,e,this.chartFields.schema,this.chartFields.fields):W}
+ @value-changed=${e=>this._formChanged(t,r,e)}
+ >`}_renderOverrides(e,t){const o=e=>t=>{t.stopPropagation(),e(t.detail?.value)};return R`
+ ${this._form("entity-attribute",t,e,function(e){let t=Ya.get(e);return t||(t=[{name:"attribute",selector:{attribute:{entity_id:e}}}],Ya.set(e,t)),t}(e.entity),Ua)}
+ ${this._form("entity-text",t,e,Ka(EM(this.hass,e.entity,e.attribute)),Pa)}
+ ${this.chartFields?this._form("entity-chart",t,e,this.chartFields.schema,this.chartFields.fields):Z}
+ ${this.transformFields?this._form("entity-transform",t,e,this.transformFields.schema,this.transformFields.fields):Z}
+ ${this.conditionFields?this._form("entity-condition",t,e,this.conditionFields.schema,this.conditionFields.fields):Z}
this._set(t,"icon",e))}
+ @value-changed=${o(e=>this._set(t,"icon",e))}
>
- ${_b.map(o=>Z`R`this._set(t,o,e))}
+ @value-changed=${o(e=>this._set(t,n,e))}
> `)}
this._set(t,"severity",e))}
+ .unit=${e.unit??this.unit??EM(this.hass,e.entity,e.attribute)}
+ @value-changed=${o(e=>this._set(t,"severity",e))}
>
- ${this._form("entity-actions",t,e,na,aa)}
-
`}_renderRow(e,t,a){const o=jt(e),n="string"==typeof e?{entity:e}:e,r=this._rowLabel(o),i=this._expanded.has(t);return Z`
- ${r.text}
+ ${this._form("entity-actions",t,e,Za,Ba)}
+
`}_renderRow(e,t,o){const n=ba(e),r="string"==typeof e?{entity:e}:e,a=this._rowLabel(n),i=this._expanded.has(t);return R`
+ ${a.text}
- ${i?this._renderOverrides(n,t):W}
-
`}render(){const e=this.entities??[];return Z`${e.map((t,a)=>this._renderRow(t,a,e.length))}
+ ${i?this._renderOverrides(r,t):Z}
+
`}render(){const e=this.entities??[];return R`${e.map((t,o)=>this._renderRow(t,o,e.length))}
`}}wb.properties={hass:{attribute:!1},entities:{attribute:!1},unit:{attribute:!1},chartFields:{attribute:!1},_expanded:{state:!0}},wb.styles=r`
+ >`}}AM.properties={hass:{attribute:!1},entities:{attribute:!1},unit:{attribute:!1},chartFields:{attribute:!1},transformFields:{attribute:!1},conditionFields:{attribute:!1},_expanded:{state:!0}},AM.styles=a`
:host {
display: block;
}
@@ -7044,74 +8353,77 @@ const gt=me(class extends fe{constructor(e){if(super(e),e.type!==he&&e.type!==de
display: block;
margin-top: 8px;
}
- `,customElements.get("cd-entities-editor")||customElements.define("cd-entities-editor",wb);const $b=["treemap","sunburst","icicle","radar"],kb=["ring","arc","needle"];class Mb extends le{constructor(){super(...arguments),this.languageController=new rb(this),this._label=e=>zt(this.hass,e),this._computeLabel=e=>zt(this.hass,`editor_${e.name}`),this._computeRuleLabel=e=>zt(this.hass,`editor_rule_${e.name.slice(e.name.indexOf("_")+1)}`)}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),async function(){if(!customElements.get("ha-entity-picker")&&"function"==typeof window.loadCardHelpers)try{const e=await window.loadCardHelpers(),t=await e.createCardElement({type:"entities",entities:[]}),a=t?.constructor;await(a?.getConfigElement?.())}catch{}}()}_commit(e){this._config=e,function(e,t){e.dispatchEvent(new CustomEvent("config-changed",{bubbles:!0,composed:!0,detail:{config:t}}))}(this,e)}_formChanged(e,t){if(t.stopPropagation(),!this._config)return;const a=t.detail?.value??{};this._commit(ya(this._config,e,a))}_form(e,t,a){return Z`Ze(this.hass,e),this._computeLabel=e=>Ze(this.hass,`editor_${e.name}`),this._computeRuleLabel=e=>Ze(this.hass,`editor_rule_${e.name.slice(e.name.indexOf("_")+1)}`)}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),NM()}_commit(e){this._config=e,function(e,t){e.dispatchEvent(new CustomEvent("config-changed",{bubbles:!0,composed:!0,detail:{config:t}}))}(this,e)}_formChanged(e,t){if(t.stopPropagation(),!this._config)return;const o=t.detail?.value??{};this._commit(li(this._config,e,o))}_form(e,t,o){return R`this._formChanged(a,e)}
- > `}_panel(e,t){return Z`
+ @value-changed=${e=>this._formChanged(o,e)}
+ > `}_panel(e,t){return R`
${t}
- `}_subChanged(e,t){t.stopPropagation(),this._config&&this._commit(Ct(this._config,e,t.detail?.value))}_chartFields(){const e=tb[this._config?.style??"bar"];return e&&eb(e)&&this._config?e.entityFields?.(this.hass,this._config):void 0}renderEntities(){return Z``}_subChanged(e,t){t.stopPropagation(),this._config&&this._commit(ya(this._config,e,t.detail?.value))}_chartFields(){const e=wM[this._config?.style??"bar"];return e&&xM(e)&&this._config?e.entityFields?.(this.hass,this._config):void 0}_transformFields(){if(!this._config)return;const e=this._config.style??"bar";return function(e,t,o,n){if(!nr.includes(e))return n;const r=n??pr,a=function(e){return(e.entities??[]).some(e=>"object"==typeof e&&"derivative"===e.transform)}(o),i=`${qe(t)}|${a}`;let s=hr.get(r.schema);s||(s=new WeakMap,hr.set(r.schema,s));let l=s.get(r.fields);l||(l=new Map,s.set(r.fields,l));const c=l.get(i);if(c)return c;const d=e=>Ze(t,e),u={value:"derivative",label:d("editor_derivative_transform_derivative")},h=r.fields.find(ur);let p,m=r.fields;if(h)p=r.schema.map(e=>{const t=e;return t.name!==h.name?e:{...t,selector:{select:{...t.selector.select,options:[...t.selector.select.options,u]}}}});else{const e={name:"derivative_transform",selector:{select:{mode:"dropdown",options:[{value:"none",label:d("editor_derivative_transform_none")},u]}}};p=[...r.schema,e],m=[...m,{name:"derivative_transform",path:["transform"],default:"none"}]}a&&(p=[...p,{type:"grid",name:"",schema:[{name:"derivative_unit_time",selector:{select:{mode:"dropdown",options:tr.map(e=>({value:e,label:d(`editor_derivative_unit_time_${e}`)}))}}},{name:"derivative_smoothing",selector:{number:{min:1,max:100,step:1,mode:"box"}}}]},{name:"derivative_smoothing_time",selector:{text:{}}}],m=[...m,{name:"derivative_unit_time",path:["transform_unit_time"],default:"h"},{name:"derivative_smoothing",path:["transform_smoothing"],default:1},{name:"derivative_smoothing_time",path:["transform_smoothing_time"]}]);const f={schema:p,fields:m};return l.set(i,f),f}(e,this.hass,this._config,function(e,t,o,n){if(!Zn.includes(e))return n;const r=n??Qn,a=function(e){return(e.entities??[]).some(e=>"object"==typeof e&&"cumulative"===e.transform)}(o),i=a&&function(e){return(e.entities??[]).some(e=>"object"==typeof e&&"cumulative"===e.transform&&"billing"===e.transform_reset)}(o),s=`${qe(t)}|${a}|${i}`;let l=Kn.get(r.schema);l||(l=new WeakMap,Kn.set(r.schema,l));let c=l.get(r.fields);c||(c=new Map,l.set(r.fields,c));const d=c.get(s);if(d)return d;const u=e=>Ze(t,e),h={value:"cumulative",label:u("editor_cumulative_transform_cumulative")},p=r.fields.find(Jn);let m,f=r.fields;if(p)m=r.schema.map(e=>{const t=e;return t.name!==p.name?e:{...t,selector:{select:{...t.selector.select,options:[...t.selector.select.options,h]}}}});else{const e={name:"cumulative_transform",selector:{select:{mode:"dropdown",options:[{value:"none",label:u("editor_cumulative_transform_none")},h]}}};m=[...r.schema,e],f=[...f,{name:"cumulative_transform",path:["transform"],default:"none"}]}a&&(m=[...m,{name:"cumulative_reset",selector:{select:{mode:"dropdown",options:qn.map(e=>({value:e,label:u(`editor_cumulative_reset_${e}`)}))}}}],f=[...f,{name:"cumulative_reset",path:["transform_reset"],default:"none"}]),i&&(m=[...m,{name:"cumulative_billing_day",selector:{number:{min:1,max:28,step:1,mode:"box"}}}],f=[...f,{name:"cumulative_billing_day",path:["transform_reset_day"],default:1}]);const g={schema:m,fields:f};return c.set(s,g),g}(e,this.hass,this._config,void 0))}renderEntities(){return R`this._subChanged(["entities"],e)}
>
- ${this._ruleForm("include")} ${this._ruleForm("exclude")}`}_ruleData(e){const t=this._config?.[e],a={};if(!t||"object"!=typeof t)return a;for(const[o,n]of Object.entries(t))a[`${e}_${o}`]=Array.isArray(n)?n:[n];return a}_ruleChanged(e,t){if(t.stopPropagation(),!this._config)return;const a=t.detail?.value??{},o=this._ruleData(e);let n=this._config;for(const r of da[e]){const t=`${e}_${r}`,i=Array.isArray(a[t])?a[t]:[];ga(o[t]??[],i)||(n=Ct(n,[e,r],i.length?i:void 0))}n!==this._config&&this._commit(n)}_ruleForm(e){return Z`${this._label(`editor_${e}_heading`)}
+ ${this._ruleForm("include")} ${this._ruleForm("exclude")}`;var e}_ruleData(e){const t=this._config?.[e],o={};if(!t||"object"!=typeof t)return o;for(const[n,r]of Object.entries(t))o[`${e}_${n}`]=Array.isArray(r)?r:[r];return o}_ruleChanged(e,t){if(t.stopPropagation(),!this._config)return;const o=t.detail?.value??{},n=this._ruleData(e);let r=this._config;for(const a of ei[e]){const t=`${e}_${a}`,i=Array.isArray(o[t])?o[t]:[];ii(n[t]??[],i)||(r=ya(r,[e,a],i.length?i:void 0))}r!==this._config&&this._commit(r)}_ruleForm(e){return R`${this._label(`editor_${e}_heading`)}
${this._label(`editor_${e}_help`)}
this._ruleChanged(e,t)}
- > `}renderLimits(){return[["min","0"],["max","100"],["target",this._label("editor_none")]].map(([e,t])=>Z` `}renderLimits(){return[["min","0"],["max","100"],["target",this._label("editor_none")]].map(([e,t])=>R`
this._subChanged([e],t)}
- > `)}renderColours(){return Z`${this._toggles(Rt)}
`)}renderColours(){return R`${this._toggles(Na)}this._subChanged(["severity"],e)}
- > `}_firstEntityUnit(){const e=this._config?.entities?.[0];return"string"==typeof e?xb(this.hass,e):e?.unit??xb(this.hass,e?.entity,e?.attribute)}_selectStyle(e){if(!this._config)return;let t=Ct(this._config,["style"],"bar"===e?void 0:e);const a=[].concat(t.group_by??[]),o=a.length>0&&a.every(e=>zu.includes(e));a.length>0&&o!==$b.includes(e)&&(t=Ct(t,["group_by"],void 0)),this._commit(t)}renderStyle(){const e=this._config?.style??"bar";return Z`${Qy.map(t=>{const a=it.filter(e=>tb[e].group===t);return a.length?Z`${this._label(`editor_group_${t}`)}
+ > `}_firstEntityUnit(){const e=this._config?.entities?.[0];return"string"==typeof e?EM(this.hass,e):e?.unit??EM(this.hass,e?.entity,e?.attribute)}_selectStyle(e){if(!this._config)return;let t=ya(this._config,["style"],"bar"===e?void 0:e);const o=[].concat(t.group_by??[]),n=o.length>0&&o.every(e=>mv.includes(e));o.length>0&&n!==CM.includes(e)&&(t=ya(t,["group_by"],void 0)),"battery"===e&&void 0===t.sort&&(t=ya(t,["sort"],"ascending")),this._commit(t)}renderStyle(){const e=this._config?.style??"bar";return R`${_M.map(t=>{const o=vt.filter(e=>wM[e].group===t);return o.length?R`
${this._label(`editor_group_${t}`)}
- ${a.map(t=>{const a=tb[t],o=eb(a)?Z`
- ${a.thumbnail()}
- `:Ma(t);return Z`{const o=wM[t],n=xM(o)?R`
+ ${o.thumbnail()}
+ `:fi(t);return R`this._selectStyle(t)}
>
- ${o}${this._label(`editor_style_${t}`)}
+ ${n}${this._label(`editor_style_${t}`)}
`})}
-
`:W})}
- ${kb.includes(e)?Z`
${this._label("editor_gauge_help")}
- ${this._form("gauge",function(e,t,a){const o="text"===a,n=`${Mt(e)}|${t}|${o}`;let r=Gt.get(n);if(!r){const a={number:{min:-360,max:360,step:1,mode:"box",unit_of_measurement:"°"}};r=[{type:"grid",name:"",schema:[{name:"start_angle",selector:a},{name:"end_angle",selector:a}]},{name:"center",selector:{select:{mode:"dropdown",options:["value","band","name","text","none"].map(t=>({value:t,label:zt(e,`editor_center_mode_${t}`)}))}}},...o?[{name:"center_text",selector:{text:{}}}]:[],..."needle"===t?[{name:"tick_labels",selector:{boolean:{}}}]:[]],Gt.set(n,r)}return r}(this.hass,e,this._config?.center),Yt)}`:W}`}renderChart(){const e=tb[this._config?.style??"bar"];return e&&eb(e)&&e.editor&&this._config?this._panel("chart",e.editor({hass:this.hass,config:this._config,commit:e=>this._commit(e)})):W}renderDisplay(){return Z`${this._toggles(qt)}
- ${this._form("display",function(e){const t=Mt(e);return ma?.language!==t&&(ma={language:t,schema:ca(e)}),ma.schema}(this.hass),Wt)}`}_toggles(e){const t=va(this._config,e);return Z`
- ${e.map(({name:a})=>{const o=this._label(`editor_${a}`),n=!0===t[a];return Z`
-
this._toggle(e,a,!n)}>${o} `:Z})}
+ ${LM.includes(e)?R`
${this._label("editor_gauge_help")}
+ ${this._form("gauge",function(e,t,o){const n="text"===o,r=`${qe(e)}|${t}|${n}`;let a=Da.get(r);if(!a){const o={number:{min:-360,max:360,step:1,mode:"box",unit_of_measurement:"°"}};a=[{type:"grid",name:"",schema:[{name:"start_angle",selector:o},{name:"end_angle",selector:o}]},{name:"center",selector:{select:{mode:"dropdown",options:["value","band","name","text","none"].map(t=>({value:t,label:Ze(e,`editor_center_mode_${t}`)}))}}},...n?[{name:"center_text",selector:{text:{}}}]:[],..."needle"===t?[{name:"tick_labels",selector:{boolean:{}}}]:[],{name:"ghost",selector:{select:{mode:"dropdown",options:at.map(t=>({value:t,label:Ze(e,`editor_ghost_${t}`)}))}}}],Da.set(r,a)}return a}(this.hass,e,this._config?.center),Oa)}`:Z}`}renderChart(){const e=wM[this._config?.style??"bar"];if(!(e&&xM(e)&&e.editor&&this._config))return Z;const t=function(e){if(void 0!==e&&gi.includes(e))return vi.includes(e)?$i:wi}(this._config.style);return this._panel("chart",R`${e.editor({hass:this.hass,config:this._config,commit:e=>this._commit(e)})}
+ ${t?this._form("card-condition",t.schema,t.fields):Z}`)}renderDisplay(){const e=xM(wM[this._config?.style??"bar"]??wM.bar);return R`${this._toggles(e?[...La,...jM]:La)}
+ ${this._form("display",function(e){const t=qe(e);return ri?.language!==t&&(ri={language:t,schema:Qa(e)}),ri.schema}(this.hass),Ta)}`}_toggles(e){const t=si(this._config,e);return R`
+ ${e.map(({name:o})=>{const n=this._label(`editor_${o}`),r=!0===t[o];return R`
+ this._toggle(e,o,!r)}>${n} this._toggle(e,a,t.target.checked)}
+ data-name=${o}
+ aria-label=${n}
+ .checked=${ma(r)}
+ @change=${t=>this._toggle(e,o,t.target.checked)}
>
`})}
-
`}_toggle(e,t,a){if(!this._config)return;const o=va(this._config,e);this._commit(ya(this._config,e,{...o,[t]:a}))}renderActions(){return this._form("actions",na,Vt)}render(){return this._config?Z`
${this._form("title",oa,Zt)}
+
`}_toggle(e,t,o){if(!this._config)return;const n=si(this._config,e);this._commit(li(this._config,e,{...n,[t]:o}))}renderActions(){return this._form("actions",Za,Fa)}render(){return this._config?R`
${this._form("title",qa,Ca)}
${this._panel("entities",this.renderEntities())} ${this._panel("style",this.renderStyle())}
${this.renderChart()} ${this._panel("limits",this.renderLimits())}
${this._panel("colours",this.renderColours())} ${this._panel("display",this.renderDisplay())}
- ${this._panel("actions",this.renderActions())}`:W}}Mb.properties={hass:{attribute:!1},_config:{state:!0}},Mb.styles=r`
+ ${this._panel("actions",this.renderActions())}`:Z}}TM.properties={hass:{attribute:!1},_config:{state:!0}},TM.styles=a`
:host {
display: block;
}
@@ -7192,7 +8504,7 @@ const gt=me(class extends fe{constructor(e){if(super(e),e.type!==he&&e.type!==de
outline-offset: -1px;
border-color: transparent;
}
- `,customElements.get("chartdeck-card-editor")||customElements.define("chartdeck-card-editor",Mb);const zb=r`
+ `,customElements.get("chartdeck-card-editor")||customElements.define("chartdeck-card-editor",TM);const FM=a`
:host {
display: block;
--cd-duration: 900ms;
@@ -7295,36 +8607,237 @@ const gt=me(class extends fe{constructor(e){if(super(e),e.type!==he&&e.type!==de
border-radius: 50%;
flex: none;
}
-`;console.info("%c CHARTDECK %c 2.1.0 ","color:#fff;background:#3b8bff;font-weight:700","color:#3b8bff");const Sb={rows:16,tiles:8};function Ab(e){const t=Sb[e.layout];return Math.max(1,Math.floor((368+t)/((e.minColumnWidth??0)+t)))}class Eb extends le{constructor(){super(...arguments),this.languageController=new rb(this),this._watched=new Set,this._matched=[],this._items=[],this._detachers=new Map,this._readyScheduled=!1,this._readyAt=-1/0}static getStubConfig(e){const t=Object.values(e?.states??{}).filter(e=>e.entity_id.startsWith("sensor.")&&""!==e.state.trim()&&Number.isFinite(Number(e.state))),a=e=>"battery"===e.attributes?.device_class;return t.sort((e,t)=>a(e)!==a(t)?a(e)?-1:1:e.entity_id
t.entity_id?1:0),{type:"custom:chartdeck-card",style:"bar",entities:t.slice(0,3).map(e=>e.entity_id)}}static getConfigElement(){return document.createElement("chartdeck-card-editor")}setConfig(e){const t=function(e){if(!e||"object"!=typeof e)throw new Error("Invalid configuration");const t=e.style??"bar";if(!it.includes(t))throw new Error(`Unknown style "${String(t)}". Use one of: ${it.join(", ")}`);const a=e.sort??"none";if(!lt.includes(a))throw new Error(`Unknown sort "${String(a)}". Use one of: ${lt.join(", ")}`);if(void 0!==e.entities&&!Array.isArray(e.entities))throw new Error('"entities" must be a list');const o=(e.entities??[]).map((t,a)=>ft(t,e,a)),n={name:!0,value:!0,icon:!0,target:!0,legend:!1,...e.show},r=ut(e.columns,"columns",1),i=ut(e.limit,"limit",1),s=De(e.include,"include"),l=De(e.exclude,"exclude");s&&ft("sensor.chartdeck_check",e,0);const c={style:t,entities:o,hideUnavailable:!0===e.hide_unavailable,cardOptions:e,show:n,sort:a,animate:!1!==e.animate,colorIcon:!0===e.color_icon,legendBands:ht(e.severity)??st};return void 0!==e.title&&(c.title=e.title),void 0!==r&&(c.columns=r),void 0!==i&&(c.limit=i),s&&(c.include=s),l&&(c.exclude=l),c}(e),a=tb[t.style];if(eb(a)&&a.validate?.(e),this._watched=function(e){const t=new Set;for(const a of e.entities){t.add(a.entity);for(const e of[a.min,a.max,a.target,...a.severity.map(e=>e.from)])"string"==typeof e&&""!==e&&t.add(e)}for(const a of e.legendBands)"string"==typeof a.from&&t.add(a.from);return t}(t),eb(a))for(const o of a.watch?.(e)??[])this._watched.add(o);this._config&&this._config.style!==t.style&&this._disconnectStyle(),this._config=t}get _styleName(){return this._config?.style??"bar"}get _style(){return tb[this._styleName]}_legend(e){const t=this._config;if(!t?.show.legend||0===this._count())return[];const a=e?.decimals??1;return Oe(cs(t.legendBands,this.hass),e=>Cn(e,a,this.hass),e?.unit??"")}_count(){return this.hasUpdated&&this.hass?this._items.length:this._config?.entities.length??0}_contentHeight(){const e=this._config;if(!e)return 0;const t=this._style,a=16+(e.title?73:0)+(this._legend().length>0?32:0);if(eb(t))return a+t.height;const o=this._count(),n=void 0!==e.columns?Math.min(e.columns,Ab(t)):"rows"===t.layout?1:Math.min(o,t.tilesPerRow??3,Ab(t));return a+(0===o?0:Math.ceil(o/Math.max(1,n)))*t.height}getCardSize(){return Math.max(1,Math.ceil(this._contentHeight()/50))}getGridOptions(){const e=this._count();if(eb(this._style))return{columns:12,min_columns:6,min_rows:2,...this._style.gridOptions,rows:"auto"};const t="rows"===this._style.layout;return{columns:t||e<=1?6:12,rows:"auto",min_columns:t?6:3,min_rows:1}}shouldUpdate(e){if(0===e.size)return!0;if([...e.keys()].some(e=>"hass"!==e))return!0;if(!e.has("hass"))return!1;const t=e.get("hass"),a=this.hass;if(!t||!a)return!0;for(const o of this._watched)if(t.states[o]!==a.states[o])return!0;if(this._config?.include){const e=us(this._config,a);if(e.length!==this._matched.length||e.some((e,t)=>e!==this._matched[t]))return!0;for(const o of e)if(t.states[o]!==a.states[o])return!0}return t.themes?.darkMode!==a.themes?.darkMode||t.themes?.theme!==a.themes?.theme||t.locale!==a.locale}willUpdate(){const e=!1===this._config?.animate||"function"==typeof window.matchMedia&&!!window.matchMedia("(prefers-reduced-motion: reduce)")?.matches;this.toggleAttribute("static",e),(e||this.preview)&&this.setAttribute("ready","")}_scheduleReady(){if(this._readyScheduled||this.hasAttribute("ready")||0===this._items.length)return;this._readyScheduled=!0;const e=()=>{this.shadowRoot?.querySelector(".entity")?.getBoundingClientRect(),this.setAttribute("ready",""),this._readyAt=performance.now()};"function"==typeof requestAnimationFrame?requestAnimationFrame(e):setTimeout(e,16)}updated(){this._scheduleReady(),this._syncActions()}connectedCallback(){if(super.connectedCallback(),!this.hasUpdated)return;const e=this._config?tb[this._config.style]:void 0;e&&eb(e)&&this.requestUpdate(),this._syncActions(),this.hasAttribute("ready")&&!this.hasAttribute("static")&&performance.now()-this._readyAt<1e3&&(this.removeAttribute("ready"),this._readyScheduled=!1,this._scheduleReady())}_disconnectStyle(){const e=this._config?tb[this._config.style]:void 0;e&&eb(e)&&e.disconnect?.(this)}disconnectedCallback(){super.disconnectedCallback(),this._disconnectStyle();for(const e of this._detachers.values())e();this._detachers.clear()}_syncActions(){const e=this.shadowRoot;if(!e)return;const t=new Set(e.querySelectorAll(".entity"));for(const[a,o]of this._detachers)t.has(a)||(o(),this._detachers.delete(a));for(const a of t)this._detachers.has(a)||this._detachers.set(a,Ae(a,()=>this._items[Number(a.dataset.index)].config))}_renderEntity(e,t,a,o){const n=this._config,r=Se(e.config),i=je(e.band.color),s=`--start:${e.span[0]};--end:${e.span[1]};--pos:${e.position};--target:${e.targetPosition??0};--c-start:${i.start};--c-end:${i.end}`;return Z`({name:e,selector:{ui_action:{}}}));class WM extends le{constructor(){super(...arguments),this.languageController=new Fd(this),this._label=e=>Ze(this.hass,`editor_badge_${e.name}`)}setConfig(e){this._config=e}connectedCallback(){super.connectedCallback(),NM()}_commit(e){this._config=e,this.dispatchEvent(new CustomEvent("config-changed",{bubbles:!0,composed:!0,detail:{config:e}}))}_formChanged(e,t){t.stopPropagation(),this._config&&this._commit(li(this._config,e,t.detail.value))}_optionChanged(e,t){t.stopPropagation(),this._config&&this._commit(ya(this._config,[e],t.detail.value))}_form(e,t,o){return R`
this._formChanged(o,e)}
+ > `}render(){if(!this._config)return Z;const e="string"==typeof this._config.entity?this._config.entity:void 0,t=this._config.unit??this.hass?.states[e??""]?.attributes?.unit_of_measurement;return R`${this._form("badge",function(e,t){const o=t.style??"value",n="string"==typeof t.entity?t.entity:"",r="value"===o&&!1!==t.show_icon,a=`${qe(e)}|${o}|${n}|${r}`;let i=UM.get(a);return i||(i=[{name:"entity",required:!0,selector:{entity:{}}},{name:"style",selector:{select:{mode:"dropdown",options:OM.map(t=>({value:t,label:Ze(e,`editor_badge_style_${t}`)}))}}},...n?[{name:"attribute",selector:{attribute:{entity_id:n}}}]:[],{type:"grid",name:"",schema:[{name:"name",selector:{text:{}}},..."sparkline"===o?[{name:"hours",selector:{number:{min:1,max:168,mode:"box",unit_of_measurement:"h"}}}]:[]]},{type:"grid",name:"",schema:[{name:"show_name",selector:{boolean:{}}},..."value"===o?[{name:"show_icon",selector:{boolean:{}}}]:[]]},...r?[{name:"icon",selector:{icon:{}},context:{icon_entity:"entity"}}]:[],{type:"grid",name:"",schema:[{name:"unit",selector:{text:{}}},{name:"decimals",selector:{number:{min:0,max:20,mode:"box"}}}]},{name:"color",selector:{text:{}}}],UM.set(a,i)),i}(this.hass,this._config),DM)}
+
+ ${IM.map(([e,t])=>R`this._optionChanged(e,t)}
+ > `)}
+
+
${Ze(this.hass,"editor_badge_bands")}
+
${Ze(this.hass,"editor_badge_bands_help")}
+
this._optionChanged("severity",e)}
+ >
+
${Ze(this.hass,"editor_badge_actions")}
+ ${this._form("actions",HM,PM)}`}}WM.properties={hass:{attribute:!1},_config:{state:!0}},WM.styles=a`
+ :host {
+ display: block;
+ }
+ .limits {
+ display: grid;
+ gap: 8px;
+ margin-top: 16px;
+ }
+ .heading {
+ margin-top: 24px;
+ font-weight: 500;
+ }
+ .help {
+ margin: 4px 0 0;
+ font-size: 12px;
+ color: var(--secondary-text-color);
+ }
+ `,customElements.get("chartdeck-badge-editor")||customElements.define("chartdeck-badge-editor",WM);const RM=["value","sparkline","ring","thin"];class BM extends le{constructor(){super(...arguments),this.languageController=new Fd(this),this._style="value",this._hours=24,this._watched=new Set}static getConfigElement(){return document.createElement("chartdeck-badge-editor")}static getStubConfig(e){const t=Object.values(e?.states??{}).filter(e=>e.entity_id.startsWith("sensor.")&&""!==e.state.trim()&&Number.isFinite(Number(e.state)));t.sort((e,t)=>e.entity_id.localeCompare(t.entity_id));const o=t.find(e=>"battery"===e.attributes?.device_class);return{type:"custom:chartdeck-badge",entity:(o??t[0])?.entity_id??"sensor.example",style:"ring"}}setConfig(e){const{config:t,style:o,hours:n}=function(e){if(!e||"object"!=typeof e)throw new Error("Invalid configuration");if("string"!=typeof e.entity||!e.entity)throw new Error('"entity" is required');const t=e.style??"value";if(!RM.includes(t))throw new Error(`"style" must be one of: ${RM.join(", ")}`);const o=e.hours??24;if("number"!=typeof o||!Number.isFinite(o)||o<=0||o>168)throw new Error('"hours" must be a number of hours from 1 to 168');for(const u of["show_name","show_icon"])if(void 0!==e[u]&&"boolean"!=typeof e[u])throw new Error(`"${u}" must be true or false`);if(void 0!==e.color&&"string"!=typeof e.color)throw new Error('"color" must be a colour');const{type:n,entity:r,attribute:a,style:i,hours:s,show_name:l,show_icon:c,...d}=e;return{config:St({...d,type:"custom:chartdeck-card",entities:[a?{entity:r,attribute:a}:r],show:{name:!1!==l,icon:!1!==c,value:!0,target:!1,legend:!1}}),style:t,hours:o}}(e);this._config=t,this._style=o,this._hours=n,this._watched=Qc(t),this._raw=e}shouldUpdate(e){if(0===e.size||!e.has("hass")||e.size>1)return!0;const t=e.get("hass"),o=this.hass;if(!t||!o)return!0;for(const n of this._watched)if(t.states[n]!==o.states[n])return!0;return t.themes?.darkMode!==o.themes?.darkMode||t.locale!==o.locale}connectedCallback(){super.connectedCallback(),this.hasUpdated&&this.requestUpdate()}disconnectedCallback(){super.disconnectedCallback(),Rn(this),this._detach?.(),this._detach=void 0}updated(){const e=this.shadowRoot?.querySelector(".badge");e&&!this._detach&&(this._detach=Ee(e,()=>this._item.config))}_spark(e,t){const o=Date.now(),n={start:o-36e5*this._hours,end:o},r={entity:e.entityId,attribute:e.config.attribute};let a=Wn(this,()=>this.requestUpdate()).get(this.hass,[r],n,"history").data.get(Sn(r))??[];const i=a[a.length-1];i&&null!==i.v&&i.t
Zr(e.map(e=>[i(e.t),s(e.v)]),"smooth")).join(" ")}(a,n);return R`
+ ${s?B` `:B` `}
+ `}_visual(e,t){const o=e.available?e.position:0;switch(this._style){case"sparkline":return this._spark(e,t);case"ring":return R`
+
+ ${o>0?B` `:Z}
+ `;case"thin":return R``;default:return R`
+ ${this._config.show.icon?R` `:R` `}
+
`}}render(){const e=this._config,t=this.hass;if(!e||!t||!this._raw)return Z;const o=Kc(e,t)[0];this._item=o;const n=o.available?function(e,t){return Array.isArray(t.severity)&&t.severity.length?je(e.band.color):je(t.color??"primary")}(o,this._raw):"var(--disabled-text-color, var(--secondary-text-color))",r=Se(o.config);return R`
+ ${this._visual(o,n)}
+
+ ${o.display}
+ ${e.show.name?R`${o.name} `:Z}
+
+
`}}BM.properties={hass:{attribute:!1},_raw:{state:!0}},BM.styles=a`
+ :host {
+ display: inline-block;
+ --cd-badge-track: color-mix(in srgb, var(--primary-text-color, #212121) 12%, transparent);
+ }
+ @supports not (color: color-mix(in srgb, red 50%, white)) {
+ :host {
+ --cd-badge-track: var(--divider-color, rgba(127, 127, 127, 0.2));
+ }
+ }
+ /* The look of Home Assistant's own badges: a 36 px pill on the card background. */
+ .badge {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ box-sizing: border-box;
+ height: var(--ha-badge-size, 36px);
+ min-width: var(--ha-badge-size, 36px);
+ padding: 0 12px 0 6px;
+ border-radius: var(--ha-badge-border-radius, 18px);
+ background: var(--ha-card-background, var(--card-background-color, #fff));
+ border: var(--ha-card-border-width, 1px) solid var(--ha-card-border-color, var(--divider-color, #e0e0e0));
+ box-shadow: var(--ha-card-box-shadow, none);
+ color: var(--primary-text-color);
+ -webkit-tap-highlight-color: transparent;
+ user-select: none;
+ }
+ .badge.style-sparkline,
+ .badge.style-thin {
+ padding-left: 10px;
+ }
+ .badge.interactive {
+ cursor: pointer;
+ }
+ .badge:focus-visible {
+ outline: 2px solid var(--primary-color, #03a9f4);
+ outline-offset: 2px;
+ }
+ .info {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ min-width: 0;
+ line-height: 1.2;
+ }
+ .value {
+ font-size: 12px;
+ font-weight: 500;
+ white-space: nowrap;
+ }
+ .name {
+ font-size: 10px;
+ color: var(--secondary-text-color);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 120px;
+ }
+ .unavailable .value {
+ color: var(--secondary-text-color);
+ font-weight: 400;
+ }
+ .icon-wrap {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex: none;
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ background: color-mix(in srgb, var(--badge-color) 20%, transparent);
+ color: var(--badge-color);
+ }
+ .icon {
+ --mdc-icon-size: 16px;
+ display: flex;
+ }
+ .dot {
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background: var(--badge-color);
+ }
+ .ring {
+ flex: none;
+ width: 24px;
+ height: 24px;
+ transform: rotate(-90deg);
+ }
+ .ring circle {
+ fill: none;
+ stroke-width: 3px;
+ }
+ .ring .track {
+ stroke: var(--cd-badge-track);
+ }
+ .ring .fill {
+ stroke-linecap: round;
+ }
+ .thin {
+ flex: none;
+ width: 32px;
+ height: 4px;
+ border-radius: 2px;
+ overflow: hidden;
+ background: var(--cd-badge-track);
+ }
+ .thin-fill {
+ height: 100%;
+ border-radius: 2px;
+ }
+ .spark {
+ flex: none;
+ width: 44px;
+ height: 20px;
+ overflow: visible;
+ }
+ .spark path {
+ fill: none;
+ stroke-width: 1.5px;
+ stroke-linejoin: round;
+ stroke-linecap: round;
+ }
+ .spark-empty {
+ stroke: var(--cd-badge-track);
+ stroke-width: 1.5px;
+ stroke-dasharray: 2 3;
+ }
+ `,customElements.get("chartdeck-badge")||customElements.define("chartdeck-badge",BM);const qM=window.customBadges??=[];qM.some(e=>"chartdeck-badge"===e.type)||qM.push({type:"chartdeck-badge",name:"Chartdeck badge",description:"A value, sparkline, ring or thin bar in the badge row, with the card’s colour bands.",preview:!0,documentationURL:"https://tempus2016.github.io/chartdeck/"}),console.info("%c CHARTDECK %c 2.1.0 ","color:#fff;background:#3b8bff;font-weight:700","color:#3b8bff");const ZM={rows:16,tiles:8};function VM(e){const t=ZM[e.layout];return Math.max(1,Math.floor((368+t)/((e.minColumnWidth??0)+t)))}class YM extends le{constructor(){super(...arguments),this.languageController=new Fd(this),this._watched=new Set,this._matched=[],this._items=[],this._detachers=new Map,this._readyScheduled=!1,this._readyAt=-1/0,this._redraw=()=>this.requestUpdate()}static getStubConfig(e){const t=Object.values(e?.states??{}).filter(e=>e.entity_id.startsWith("sensor.")&&""!==e.state.trim()&&Number.isFinite(Number(e.state))),o=e=>"battery"===e.attributes?.device_class;return t.sort((e,t)=>o(e)!==o(t)?o(e)?-1:1:e.entity_idt.entity_id?1:0),{type:"custom:chartdeck-card",style:"bar",entities:t.slice(0,3).map(e=>e.entity_id)}}static getConfigElement(){return document.createElement("chartdeck-card-editor")}setConfig(e){const t=St(e);!function(e){if(void 0!==e.export&&"boolean"!=typeof e.export)throw new Error('"export" must be true or false')}(e),ho(this);const o=wM[t.style],n=Ht(e);if(xM(o)&&o.validate?.(n),this._watched=Qc(t),xM(o))for(const r of o.watch?.(e)??[])this._watched.add(r);this._config&&this._config.style!==t.style&&this._disconnectStyle(),this._config=t}get _styleName(){return this._config?.style??"bar"}get _style(){return wM[this._styleName]}_legend(e){const t=this._config;if(!t?.show.legend||0===this._count())return[];const o=e?.decimals??1;return Fe(Gc(t.legendBands,this.hass,e?.unit),e=>Et(e,o,this.hass),e?.unit??"")}_count(){return this.hasUpdated&&this.hass?this._items.length:this._config?.entities.length??0}_contentHeight(){const e=this._config;if(!e)return 0;const t=this._style,o=16+(e.title?73:0)+(this._legend().length>0?32:0);if(xM(t))return o+t.height;const n=this._count(),r=void 0!==e.columns?Math.min(e.columns,VM(t)):"rows"===t.layout?1:Math.min(n,t.tilesPerRow??3,VM(t));return o+(0===n?0:Math.ceil(n/Math.max(1,r)))*t.height}getCardSize(){return Math.max(1,Math.ceil(this._contentHeight()/50))}getGridOptions(){const e=this._count();if(xM(this._style))return{columns:12,min_columns:6,min_rows:2,...this._style.gridOptions,rows:"auto"};const t="rows"===this._style.layout;return{columns:t||e<=1?6:12,rows:"auto",min_columns:t?6:3,min_rows:1}}shouldUpdate(e){if(0===e.size)return!0;if([...e.keys()].some(e=>"hass"!==e))return!0;if(!e.has("hass"))return!1;const t=e.get("hass"),o=this.hass;if(!t||!o)return!0;for(const n of this._watched)if(t.states[n]!==o.states[n])return!0;if(this._config?.include){const e=Jc(this._config,o);if(e.length!==this._matched.length||e.some((e,t)=>e!==this._matched[t]))return!0;for(const n of e)if(t.states[n]!==o.states[n])return!0}return t.themes?.darkMode!==o.themes?.darkMode||t.themes?.theme!==o.themes?.theme||t.locale!==o.locale}willUpdate(){const e=!1===this._config?.animate||"function"==typeof window.matchMedia&&!!window.matchMedia("(prefers-reduced-motion: reduce)")?.matches;this.toggleAttribute("static",e),(e||this.preview)&&this.setAttribute("ready","")}_scheduleReady(){if(this._readyScheduled||this.hasAttribute("ready")||0===this._items.length)return;this._readyScheduled=!0;const e=()=>{this.shadowRoot?.querySelector(".entity")?.getBoundingClientRect(),this.setAttribute("ready",""),this._readyAt=performance.now()};"function"==typeof requestAnimationFrame?requestAnimationFrame(e):setTimeout(e,16)}updated(){this._scheduleReady(),this._syncActions(),function(e){const t=e.shadowRoot?.querySelector(".export.titled"),o=e.shadowRoot?.querySelector("ha-card");if(!t||!o)return;const n=()=>{const e=o.shadowRoot?.querySelector(".card-header")??[...o.children].find(e=>e.classList.contains("card-header"));if(!e?.offsetHeight)return;const n=getComputedStyle(e),r=parseFloat(n.paddingTop)||0,a=e.offsetHeight-r-(parseFloat(n.paddingBottom)||0),i=t.offsetHeight||32,s=e.offsetTop+r+a/2-i/2,l=Math.max(4,Math.round(Math.min(s,e.offsetTop+e.offsetHeight-i)));t.style.top=`${l}px`};n(),o.updateComplete?.then(n)}(this)}connectedCallback(){if(super.connectedCallback(),!this.hasUpdated)return;const e=this._config?wM[this._config.style]:void 0;e&&xM(e)&&this.requestUpdate(),this._syncActions(),this.hasAttribute("ready")&&!this.hasAttribute("static")&&performance.now()-this._readyAt<1e3&&(this.removeAttribute("ready"),this._readyScheduled=!1,this._scheduleReady())}_disconnectStyle(){const e=this._config?wM[this._config.style]:void 0;e&&xM(e)&&e.disconnect?.(this),Rn(this)}disconnectedCallback(){super.disconnectedCallback(),this._disconnectStyle(),function(e){const t=Ao.get(e);t&&(t.outside&&window.removeEventListener("pointerdown",t.outside,!0),void 0!==t.statusTimer&&clearTimeout(t.statusTimer),Ao.delete(e))}(this);for(const e of this._detachers.values())e();this._detachers.clear()}_syncActions(){const e=this.shadowRoot;if(!e)return;const t=new Set(e.querySelectorAll(".entity"));for(const[o,n]of this._detachers)t.has(o)||(n(),this._detachers.delete(o));for(const o of t)this._detachers.has(o)||this._detachers.set(o,Ee(o,()=>this._items[Number(o.dataset.index)].config))}_renderEntity(e,t,o,n){const r=this._config,a=Se(e.config),i=Ce(e.band.color),s=`--start:${e.span[0]};--end:${e.span[1]};--pos:${e.position};--target:${e.targetPosition??0};--c-start:${i.start};--c-end:${i.end}`;return R`
- ${a.render(e,{show:n.show,hass:o})}
-
`}render(){const e=this._config;if(!e)return W;const t=this.hass,a=this._style;let o,n,r;const i=t?function(e,t){const a=us(e,t).map((t,a)=>ft(t,e.cardOptions,a)),o=[...e.entities,...a].map(e=>ds(e,t));return e.hideUnavailable?o.filter(e=>e.available):o}(e,t):[];if(this._matched=t?us(e,t):[],0!==e.entities.length||e.include)if(t)if(0===i.length)this._items=[],o=Z`${zt(t,e.include?"no_matches":"none_available")}
`;else{n=i[0];const s=new Map,l=new Set;i.forEach((e,t)=>{s.set(e,l.has(e.entityId)?`${e.entityId}#${t}`:e.entityId),l.add(e.entityId)}),this._items=function(e,t){if("none"===t)return[...e];const a="ascending"===t?1:-1;return e.map((e,t)=>({item:e,index:t})).sort((e,t)=>{if(e.item.available!==t.item.available)return e.item.available?-1:1;if(e.item.available){const o=(e.item.position-t.item.position)*a;if(0!==o)return o}return e.index-t.index}).map(e=>e.item)}(i,e.sort).slice(0,e.limit);const c=this._items.filter(e=>e.available).map(e=>e.display.length);if(r=c.length?Math.max(...c):void 0,eb(a))o=Z`
- ${a.render({items:this._items,config:e,raw:e.cardOptions,hass:t,requestUpdate:()=>this.requestUpdate(),host:this})}
-
`;else{const n="tiles"===a.layout,r=function(e,t){if(void 0===t)return"rows"===e.layout?"grid-template-columns: repeat(1, minmax(0, 1fr))":"";const a=(t-1)*Sb[e.layout];return`grid-template-columns: repeat(auto-fill, minmax(max(min(${e.minColumnWidth??0}px, 100%), calc((100% - ${a}px) / ${t} - 0.5px)), 1fr))`}(a,e.columns);o=Z``}render(){if(!this._config)return Z;const e=this.hass,t=function(e,t,o){const n=e.cardOptions;if("energy"!==n.source||!t)return{config:e};const r=eo(t,o);if("loading"===r.status)return{config:e,message:Ze(t,"energy_loading")};if("error"===r.status)return{config:e,message:Ze(t,"energy_error",{error:r.error})};const a=St(qt(n,r.prefs,t,r.meta));return 0===a.entities.length?{config:e,message:Ze(t,"energy_none")}:Nt.includes(a.style)?{config:a,totals:!0}:{config:a}}(this._config,e,()=>this.requestUpdate()),o=t.config,n=this._style;let r,a,i;const s=e?Kc(o,e):[];if(this._matched=e?Jc(o,e):[],t.message)this._items=[],r=R`
${t.message}
`;else if(0!==o.entities.length||o.include)if(e)if(0===s.length)this._items=[],r=R`
${Ze(e,o.include?"no_matches":"none_available")}
`;else{a=s[0];const l=new Map,c=new Set;s.forEach((e,t)=>{l.set(e,c.has(e.entityId)?`${e.entityId}#${t}`:e.entityId),c.add(e.entityId)}),this._items=function(e,t){if("none"===t)return[...e];const o="ascending"===t?1:-1;return e.map((e,t)=>({item:e,index:t})).sort((e,t)=>{if(e.item.available!==t.item.available)return e.item.available?-1:1;if(e.item.available){const n=(e.item.position-t.item.position)*o;if(0!==n)return n}return e.index-t.index}).map(e=>e.item)}(s,o.sort).slice(0,o.limit);const d=this._items.filter(e=>e.available).map(e=>e.display.length);if(i=d.length?Math.max(...d):void 0,xM(n)){const a={items:this._items,config:o,raw:o.cardOptions,hass:e,requestUpdate:()=>this.requestUpdate(),host:this},i=t.totals?pa(a):void 0;void 0!==i?.message?r=R`
`:(i&&(this._items=i.items),r=R`
${n.render({...a,items:this._items})}
`)}else{const t="tiles"===n.layout,a=function(e,t){if(void 0===t)return"rows"===e.layout?"grid-template-columns: repeat(1, minmax(0, 1fr))":"";const o=(t-1)*ZM[e.layout];return`grid-template-columns: repeat(auto-fill, minmax(max(min(${e.minColumnWidth??0}px, 100%), calc((100% - ${o}px) / ${t} - 0.5px)), 1fr))`}(n,o.columns);r=R`
- ${Me(this._items,e=>s.get(e),(e,o)=>this._renderEntity(e,o,a,t))}
-
`}}else this._items=[],o=W;else this._items=[],o=Z`
${zt(t,"no_entities")}
`;const s=this._legend(n);return Z`
+ ${Me(this._items,e=>l.get(e),(t,o)=>this._renderEntity(t,o,n,e))}
+ `}}else this._items=[],r=Z;else this._items=[],r=R`${Ze(e,"no_entities")}
`;const l=this._legend(a),c=xM(n)&&e?Fo({host:this,hass:e,raw:o.cardOptions,items:this._items,content:()=>this.shadowRoot?.querySelector(".content")??null,requestUpdate:()=>this.requestUpdate()}):Z;return R`
+ ${c}
- ${o}
+ ${r}
- ${s.length?Z`
- ${s.map(e=>Z`
+ ${l.map(e=>R` ${e.text} `)}
-
`:W}
- `}}Eb.properties={hass:{attribute:!1},preview:{type:Boolean},_config:{state:!0}},Eb.styles=[zb,...Object.values(tb).map(e=>e.styles)],customElements.get("chartdeck-card")||customElements.define("chartdeck-card",Eb);const Cb=window.customCards??=[];Cb.some(e=>"chartdeck-card"===e.type)||Cb.push({type:"chartdeck-card",name:"Chartdeck",description:"Bars, gauges and charts, set up entirely from the visual editor.",preview:!0,documentationURL:"https://tempus2016.github.io/chartdeck/"});export{Eb as ChartdeckCard};
+ `:Z}
+ `}}YM.properties={hass:{attribute:!1},preview:{type:Boolean},_config:{state:!0}},YM.styles=[FM,Oo,...Object.values(wM).map(e=>e.styles)],customElements.get("chartdeck-card")||customElements.define("chartdeck-card",YM);const GM=window.customCards??=[];GM.some(e=>"chartdeck-card"===e.type)||GM.push({type:"chartdeck-card",name:"Chartdeck",description:"Bars, gauges and charts, set up entirely from the visual editor.",preview:!0,documentationURL:"https://tempus2016.github.io/chartdeck/"});export{YM as ChartdeckCard};
//# sourceMappingURL=chartdeck-card.js.map
diff --git a/dist/chartdeck-card.js.map b/dist/chartdeck-card.js.map
index 61a4b3a..b797896 100644
--- a/dist/chartdeck-card.js.map
+++ b/dist/chartdeck-card.js.map
@@ -1 +1 @@
-{"version":3,"file":"chartdeck-card.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","../node_modules/lit-html/directive.js","../node_modules/lit-html/directive-helpers.js","../node_modules/lit-html/directives/repeat.js","../src/actions.ts","../src/bands.ts","../src/fill.ts","../src/geometry.ts","../src/gauge.ts","../src/types.ts","../src/config.ts","../node_modules/lit-html/directives/live.js","../src/localize.ts","../src/editor/edit.ts","../src/chart/series-style.ts","../src/editor/schemas.ts","../src/editor/thumbnails.ts","../src/chart/scale.ts","../src/chart/axes.ts","../src/chart/downsample.ts","../src/history/timezone.ts","../src/history/period.ts","../src/history/bearing.ts","../src/history/fetch.ts","../src/history/group.ts","../src/history/store.ts","../src/chart/paths.ts","../src/chart/frame.ts","../src/format.ts","../src/chart/log-scale.ts","../src/chart/grid.ts","../src/chart/layout.ts","../src/chart/stack.ts","../src/chart/tooltip.ts","../src/chart/data-labels.ts","../src/chart/extremes.ts","../src/chart/multiples.ts","../src/chart/annotations.ts","../src/editor/annotations-editor.ts","../src/editor/chart-editors.ts","../src/styles/area.ts","../src/scale.ts","../src/resolve.ts","../src/styles/bar.ts","../src/chart/box.ts","../src/chart/xy.ts","../src/styles/box-plot.ts","../src/chart/scatter-plot.ts","../src/styles/bubble.ts","../src/chart/columns.ts","../src/styles/column.ts","../src/chart/zoom.ts","../src/chart/sync.ts","../src/styles/line.ts","../src/styles/combined.ts","../src/chart/heatmap-grid.ts","../src/styles/heatmap.ts","../src/chart/histogram.ts","../src/styles/histogram.ts","../src/status-text.ts","../src/styles/needle.ts","../src/chart/parts.ts","../src/styles/pictograph.ts","../src/styles/pie.ts","../src/styles/radial.ts","../src/styles/rings.ts","../src/styles/scatter.ts","../src/styles/segmented.ts","../src/styles/tank.ts","../src/styles/thin.ts","../src/styles/waffle.ts","../src/chart/colors.ts","../src/styles/funnel.ts","../src/chart/hierarchy.ts","../src/chart/polar.ts","../src/editor/entity-options.ts","../src/editor/group-fields.ts","../src/styles/radar.ts","../src/styles/polar-area.ts","../src/chart/drill.ts","../src/chart/treemap-layout.ts","../src/styles/treemap.ts","../src/styles/sunburst.ts","../src/chart/compare.ts","../src/styles/grouped-bars.ts","../src/chart/marks.ts","../src/styles/bullet.ts","../src/styles/lollipop.ts","../src/styles/waterfall.ts","../src/styles/slope.ts","../src/styles/dumbbell.ts","../src/styles/range-area.ts","../src/styles/sparkline.ts","../src/chart/stream.ts","../src/styles/streamgraph.ts","../src/styles/candlestick.ts","../src/chart/candles.ts","../src/chart/category-plot.ts","../src/chart/density.ts","../src/styles/violin.ts","../src/chart/swarm.ts","../src/styles/beeswarm.ts","../src/chart/sankey.ts","../src/styles/sankey.ts","../src/chart/timeline.ts","../src/editor/timeline-editor.ts","../src/styles/timeline.ts","../src/chart/climate-data.ts","../src/editor/climate-editor.ts","../src/styles/climate.ts","../src/chart/wind.ts","../src/editor/wind-rose-editor.ts","../src/styles/wind-rose.ts","../src/chart/day-clock.ts","../src/editor/day-clock-editor.ts","../src/styles/day-clock.ts","../src/chart/trend-data.ts","../src/editor/trend-editor.ts","../src/styles/trend.ts","../src/styles/index.ts","../node_modules/lit-html/directives/style-map.js","../src/language-controller.ts","../src/editor/bands-editor.ts","../src/editor/limit-field.ts","../src/editor/entities-editor.ts","../src/editor/chartdeck-card-editor.ts","../src/styles/shared.ts","../src/chartdeck-card.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","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n",null,null,null,null,null,null,null,"import{noChange as r,nothing as e}from\"../lit-html.js\";import{directive as i,Directive as t,PartType as n}from\"../directive.js\";import{isSingleExpression as o,setCommittedValue as s}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=i(class extends t{constructor(r){if(super(r),r.type!==n.PROPERTY&&r.type!==n.ATTRIBUTE&&r.type!==n.BOOLEAN_ATTRIBUTE)throw Error(\"The `live` directive is not allowed on child or event bindings\");if(!o(r))throw Error(\"`live` bindings can only contain a single expression\")}render(r){return r}update(i,[t]){if(t===r||t===e)return t;const o=i.element,l=i.name;if(i.type===n.PROPERTY){if(t===o[l])return r}else if(i.type===n.BOOLEAN_ATTRIBUTE){if(!!t===o.hasAttribute(l))return r}else if(i.type===n.ATTRIBUTE&&o.getAttribute(l)===t+\"\")return r;return s(i),t}});export{l as live};\n//# sourceMappingURL=live.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`},\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n",null,null,null,null,null,null,null],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$3","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","n","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y$1","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","y","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","v","_","m","RegExp","g","$","x","_$litType$","strings","values","w","E","for","A","P","createTreeWalker","V","S","parts","lastIndex","exec","test","startsWith","N","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","I","L","z","H","tagName","append","data","indexOf","innerHTML","M","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","R$3","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","k","nextSibling","Z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","T","iterator","O","insertBefore","createTextNode","_$AC","R","_$AP","remove","setConnected","H$1","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","B","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","i$2","_$Ct","_$Ci","_$AQ","dt","ut","isSet","action","isInteractive","cfg","tap_action","hold_action","double_tap_action","attachActions","getConfig","holdTimer","tapTimer","startX","startY","active","held","fire","config","dispatchEvent","CustomEvent","bubbles","composed","detail","clearHold","undefined","clearTimeout","onDown","ev","button","clientX","clientY","setTimeout","onMove","hypot","onCancel","onUp","wasActive","onKey","repeat","key","preventDefault","onContextMenu","PALETTE","primary","variable","fallback","green","amber","red","blue","purple","grey","baseColor","color","colorStops","start","end","LIGHT_PALETTE","onFillText","rgba","trim","hex","join","parseInt","fn","min","parseRgba","lin","luminance","bandFor","value","bands","found","band","from","legendItems","format","unit","items","next","label","text","isFinite","BAND_PRESETS","battery","usage","temperature","none","RULE_KEYS","normalizeRule","raw","field","allowed","filter","rule","entries","includes","list","some","hasNumber","factsFor","hass","id","entity_id","entry","entities","device","device_id","devices","area","area_id","deviceClass","attributes","device_class","labels","floor","areas","floor_id","domain","entity","hits","facts","wanted","have","included","every","excluded","memos","fmt","abs","polar","cx","cy","deg","rad","PI","sin","cos","arcPath","startDeg","endDeg","rr","sweep","sx","sy","mx","my","ex","ey","large","CENTER_MODES","DEFAULT_ANGLES","ring","arc","needle","angle","gaugeAngles","defaults","startAngle","endAngle","customAngles","angleAt","a0","a1","union","boxes","x0","y0","x1","max","y1","arcBox","pad","angles","ceil","points","box","tickStep","span","count","power","log10","tickDecimals","step","places","toPrecision","labelPlacement","anchor","dy","centerContent","center","kind","centerText","STYLE_NAMES","DEFAULT_BANDS","Infinity","SORT_MODES","toNumber","toLimit","toInteger","isInteger","normalizeBands","sort","normalizeAction","pick","own","card","mergeEntity","merged","severity","icon","target","decimals","style","gauge","start_angle","end_angle","center_text","tick_labels","tickLabels","parseGaugeOptions","FALLBACK","LANGUAGES","en","LOADERS","de","es","fr","nl","pt","loading","LANGUAGE_LOADED_EVENT","candidatesFor","language","candidates","ensureLanguage","find","candidate","resolve","pending","then","module","registerLanguage","code","default","window","Event","catch","languageOf","requested","locale","requestedLanguage","here","localize","vars","template","replace","querySelector","live","stored","localStorage","getItem","pageLanguage","isEmptyValue","isPlainObject","setIn","node","path","rest","nextKey","clone","slot","child","emptied","splice","setOption","current","getIn","entityId","item","setEntityOption","obj","DEFAULT_LINE_WIDTH","MIN_LINE_WIDTH","MAX_LINE_WIDTH","seriesStyle","width","line_width","dots","onTop","on_top","drawOrder","series","dotsPath","pts","round","dotSize","checkWidth","where","checkBool","validateSeriesStyle","TITLE_FIELDS","DISPLAY_TOGGLE_FIELDS","COLOUR_TOGGLE_FIELDS","DISPLAY_FIELDS","ACTION_FIELDS","GAUGE_FIELDS","gaugeSchemas","ENTITY_TEXT_FIELDS","ENTITY_ATTRIBUTE_FIELDS","ENTITY_SERIES_FIELDS","LINE_WIDTH_SELECTOR","number","unit_of_measurement","seriesFields","entitySeriesFields","cardDots","fields","ENTITY_ACTION_FIELDS","TITLE_SCHEMA","selector","ACTIONS_SCHEMA","ui_action","ENTITY_TEXT_SCHEMA","schema","attributeSchemas","seriesCache","entitySeriesSchema","select","boolean","buildDisplaySchema","RULE_FIELDS","include","exclude","ruleSelector","multiple","custom_value","deviceClasses","domains","ruleCache","ruleSchema","states","dc","ruleOptions","cached","displayCache","deepEqual","ka","kb","formData","applyFormData","before","TRACK","FILL","TEXT","point","to","thumbnail","html","svg","row","tipX","tipY","drawing","extent","lo","hi","padDomain","fraction","linear","range","d0","d1","r0","r1","Y_SCALES","AXIS_LABELS","DEFAULT_AXES","isNumber","validateAxisOptions","axis_labels","gridlines","y_min","y_max","y_scale","axisOptions","grid","x_axis","y_axis","horizontal","vertical","scale","niceStep","mag","stepDecimals","tidy","valueAxis","fixed","ticks","MINUTE","HOUR","DAY","INTERVALS","ms","localOffset","Date","getTimezoneOffset","zoneOffset","timeZone","Intl","DateTimeFormat","hourCycle","year","month","day","hour","minute","second","part","formatToParts","UTC","fromWall","wall","offset","collect","first","out","endWall","guard","timeTicks","timeInterval","startWall","getUTCFullYear","getUTCMonth","timeZoneOf","time_zone","hour12Of","time_format","formatters","formatter","opts","formatTime","seconds","hour12","formatDateTime","weekday","timeLabel","zone","at","midnight","downsample","runs","run","total","flatMap","nextFrom","nextTo","avgT","avgV","best","bestArea","pa","lttb","WEEKDAYS","DAY_NAMES","wallTime","offsetAt","zonedTime","guess","after","matches","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","mid","jumpBetween","civil","startOf","back","firstDay","addUnits","boundaries","languageFirstDay","Locale","getWeekInfo","weekInfo","zoneFor","server","isTimeZone","resolvedOptions","chosen","first_weekday","PERIOD_UNITS","CALENDAR_SPANS","PERIOD_UNTIL","DEFAULT_PERIOD","last","navigate","until","UNIT_MS","week","wholeNumber","message","oneOf","parsePeriod","period","calendar","rollingRange","now","setMonth","getMonth","getTime","periodRange","steps","stepsFor","kept","setSteps","COMPASS_POINTS","BY_NAME","WORDS","normalizeDegrees","parseBearing","word","letter","toUpperCase","toReading","readerFor","bearing","toText","toPoint","read","parseHistory","rows","time","lu","lc","finite","parseStatistics","change","mean","statisticsPeriod","days","defaultStatisticsQuery","types","base","GROUP_UNITS","AGGREGATES","parseGrouping","aggregate","group_by","groupHistory","bounds","ups","up","increments","stop","group","firstAt","reading","carried","known","taken","groupStatistics","lows","highs","prior","PERIOD_MS","COLUMNS","sum","STATISTICS_REFRESH_MS","HistoryStore","onChange","shape","loadedFrom","loadedTo","status","seen","generation","source","query","statistics","away","pausedAt","PAUSE_RELOAD_MS","resumedStatistics","margin","outside","load","appendLive","error","pause","timer","dispose","request","async","callWS","ids","result","start_time","toISOString","end_time","statistic_ids","loadStatistics","significant_changes_only","plain","withAttributes","calls","entity_ids","minimal_response","no_attributes","all","loadHistory","clear","err","last_updated","last_changed","inside","stores","storeFor","store","CURVES","straight","runPath","curve","dx","slope","sqrt","smooth","VIEW_W","VIEW_H","SERIES_COLORS","SOURCES","validateHistoryOptions","curves","historyFrame","ctx","requests","grouping","serverTimeZone","sameCalendar","statisticsQueryFor","loaded","cardCurve","dash","plural","one","many","periodLabel","sameYear","assign","formatRange","periodNav","frame","nothing","go","stopPropagation","home","periodNavStyles","css","disconnectHistory","pauseStore","seriesHeader","show","display","frameMessage","plot","defs","background","frameStyles","formatNumber","number_format","localeOptions","NumberFormat","minimumFractionDigits","maximumFractionDigits","useGrouping","withUnit","MANTISSAS","DECADE_STEPS","pow","decadeOf","positivePoints","bad","mantissas","snap","down","around","fit","logScale","l0","l1","NaN","sizes","chartWidth","clientWidth","ResizeObserver","observer","records","contentRect","observe","stopChartWidth","disconnect","plotWidth","plotAxes","gaps","log","fixMin","fixMax","budget","choices","choice","minorSet","minor","logAxis","times","scales","pct","tickText","notation","logTickText","chartArea","axes","overlay","hover","right","xLabel","yLabel","gestures","classes","below","yTicks","top","valueLabels","yLabels","xLabels","left","timeLabels","sizer","rSizer","rLabels","rightLabels","wrap","move","leave","cancel","wheel","dblclick","gridLines","gridStyles","HEADER_PLACES","validateLayout","compact","header","chartLayout","chartFrame","layout","body","headerOver","layoutStyles","STACK_MODES","validateStack","stack","valueAt","stackValues","totals","stackExtent","layers","tooltipSide","TOUCH_LINGER_MS","nearestIndex","hoverTime","stopHover","tooltipEnabled","tooltip","validateTooltipOptions","hoverHandlers","stateOf","cancelTimer","rect","currentTarget","getBoundingClientRect","frac","snapTime","pointerType","sharedUnit","units","totalRow","tooltipLayer","side","dotY","heading","valueText","footer","tooltipStyles","LABEL_SHOW","LABEL_POSITIONS","labelOptions","labels_show","position","labels_position","hideOverlap","labels_overlap","pickPoints","real","picked","autoSide","boxFor","LABEL_H","overlaps","labelWidth","dataLabels","skip","rank","fx","fy","preferred","other","height","sides","placed","hide","placeLabels","shown","edge","dataLabelStyles","AVERAGE_MODES","DEFAULT_EXTREMES","extremesOptions","extremes","average","extremesOn","obstacles","dot","px","py","align","tier","gap","prefer","spots","spot","extremeTime","extremesLayer","input","lines","marks","extremePoints","timeWeighted","averageOf","inPlot","spec","figures","across","extremesStyles","LABEL_GAP","EXTREMES_FIELDS","ENTITY_EXTREMES_FIELD","entitySchemas","withEntityExtremes","entityFieldLists","withEntityExtremesFields","MULTIPLES_SCALES","multiplesGrid","draw","cols","columns","fits","multiplesColumns","panel","panelWidth","shared","title","titleValue","multiplesStyles","ANNOTATION_TYPES","POINT_AT","DEFAULT_COLOR","line","isEntityId","checkValue","DAILY","LOCAL","timeList","validateAnnotations","annotations","zones","daily","isTimeText","annotationsOf","resolveValue","markTimes","local","stateSpans","changes","caches","seriesFor","pointFor","grouped","annotationLayers","y2","zoneRects","behind","front","cache","stateHistory","bottom","spans","shade","order","ends","findIndex","placeMarkLabels","flip","annotationStyles","FIELDS","DEFAULTS","prefix","schemas","withAnnotations","fresh","annotationsEditor","commit","annotationData","selectors","include_entities","annotationSchema","names","annotationFromData","HISTORY_FIELDS","historyVariant","historySchema","ROLLING_HISTORY_FIELDS","rollingHistorySchema","LAYOUT_FIELDS","layoutSchema","AXES_FIELDS","axesSchema","ZOOM_SCHEMA","ANNOTATION_SCHEMA","labelSchema","SYNC_SCHEMA","multiplesSchema","multiples","cachedSchema","build","chartForm","section","LINE_FIELDS","zeroFloor","stepCorners","areaPath","edgePath","drawArea","zeroY","negative_color","belowColor","fillId","lineId","twoTone","strong","faint","fillGradient","stacked","lineGradient","fills","edges","flush","lineWidth","stroke","AREA_FIELDS","NEGATIVE_FIELD","entityFieldCache","areaStyles","validate","validateNegativeColor","editor","entityFields","nav","thinned","drawn","tip","ordered","aligned","sums","layer","share","fillSpan","zero","warned","iconOverride","available","stateObj","isUnset","parseNumber","resolveLimit","limit","what","console","warn","resolveBands","resolveOne","friendly_name","rawValue","toValue","reportedDecimals","precision","display_precision","defaultDecimals","formatEntityAttributeValue","formatEntityState","statusText","targetPosition","matchedIds","listed","memo","hidden","localeCompare","matchEntities","bar","minColumnWidth","weightedQuantile","sorted","q","prev","WHISKERS","spread","validateXRange","x_min","x_max","X_RANGE_FIELDS","X_RANGE_SCHEMA","xRange","valueAxes","xData","yData","yFloor","xDecimals","picks","pickedIndex","stopPick","pickHandlers","pickState","pickTooltip","pickStyles","ORIENTATIONS","SLOT","boxesOf","whiskers","samples","rowSamples","heldSamples","stats","q1","median","q3","low","high","outliers","reach","boxStats","category","readings","categories","slots","categoryTicks","room","boxPlace","maxHalf","centre","half","drawBox","place","showReadings","cls","jitter","BOX_FIELDS","ENTITY_SCHEMA","ENTITY_FIELDS","orientation","ungrouped","boxFrame","categoryName","groupLabel","shorten","longest","labelPx","sidePx","cat","boxAxes","cs","vs","alongPx","groupTitle","along","within","pickBox","AGAINST","SIZE_LIMITS","DOT_LIMITS","JITTER_LIMITS","pairReadings","ok","thin","seed","imul","bubbleDiameter","minPx","maxPx","num","checkRange","xyOptions","against","dot_size","minSize","min_size","maxSize","max_size","validateXY","seriesColor","renderXY","byTime","colors","role","roleHeader","above","needed","groups","ys","xs","jx","jy","sizeRange","mark","markTooltip","bestD","nearestPoint","sizeLegend","xyStyles","disconnectXY","XY_AXES_FIELDS","scatter","bubble","xyEditor","COLOR_FIELDS","COLOR_SCHEMA","xyEntityFields","COLUMN_GROUPS","COLUMN_AGGREGATES","COLUMN_PERIOD","PERIOD_DAYS","autoGroupUnit","isMeter","stateClass","state_class","columnRaw","columnTable","exact","groupEnd","table","slotEnd","columnBox","each","GROUP_LABEL_PX","LABEL_UNIT","groupHeading","of","clampY","column","cap","valueLabel","targetMark","COLUMN_HISTORY_FIELDS","COLUMN_FIELDS","columnStyles","columnChart","isColumnGroup","color_by","fullPeriod","ctx0","targets","zeroBased","centres","slotOf","byBands","showLabels","showTargets","baseline","colorOf","drawColumns","hovered","highlight","radius","rounded","FULL","clamp","clampWindow","minSpan","isZoomed","zoomAt","factor","pivot","panBy","delta","selectWindow","windowRange","visiblePoints","view","zoomView","zoom","overview","minZoomMs","pointers","zoomed","reset","fracOf","setPointerCapture","pointerId","hideHover","zoomGestures","gesture","w0","moved","span0","ta","tb","pinchWindow","tapped","timeStamp","lastTap","ctrlKey","metaKey","deltaMode","deltaY","exp","sideways","shiftKey","deltaX","zoomLayer","sel","ZOOM_OUT","overviewLines","OVERVIEW_H","overviewStrip","pos","valuetext","tol","f0","act","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Escape","zoomStyles","SYNC_EVENT","syncSend","stopSync","listener","syncChart","sync","handlers","remote","receive","sent","periodKey","COLOR_BY","bandGradient","stops","seriesPath","pointLabels","plotHeight","overHeaderBox","chars","validateZoomOptions","validateLabelOptions","validateExtremes","validateSyncOptions","multiples_scale","multiples_columns","validateMultiples","multiplesVariant","watch","stopZoom","stopAnnotations","multiplesOptions","panels","over","linePlot","thresholds","empty","zoomBusy","notes","SERIES_TYPES","Y_AXES","seriesType","combinedRaw","sideExtent","COMBINED_FIELDS","combined","seriesAggregate","axisSides","lastEnd","on","typesOn","leftData","leftRaw","rightSeries","rightData","rightFixed","rightAxis","scalesOf","columnSeries","sc","HEX_ROW","HEATMAP_GRIDS","HEATMAP_COLORS","CELL_SHAPES","CELL","PER_GRID","hours","gridOf","heatmapRaw","formats","dateFormat","weekdayName","hourName","minutes","cellMark","cell","col","hexPath","hoursGrid","wide","cells","counts","weekCells","rowLabels","colLabels","calendarGrid","cal","weeks","months","dayNumber","firstWeek","lastMonth","shift","calendarCells","drawGrid","multi","cell_shape","built","pitch","geometry","cellPx","rowStep","colorExtent","color_min","color_max","fillOf","mine","byPos","pickedCell","head","legend","fieldCache","heatmap","period_last","period_unit","heatmapFields","COUNT_MODES","MAX_BINS","SHOW_AS","BARS","binned","showAs","show_as","bars","bins","bin_width","weights","edgeCopy","pointWeights","start0","end0","binEdges","binIndex","binTotals","whole","heights","amountText","formatDuration","histogram","HISTOGRAM_FIELDS","overlap","si","edgeDecimals","pw","HIST_AXES_FIELDS","ch","codePointAt","fitStatusText","splitAbove","CX","CY","statusLines","lastBaseline","segs","bandSegments","arcs","tickmark","x2","inner","scaleTicks","hasTarget","labelR","fitted","valueY","tx","ty","lx","ly","rx","ry","drawingBox","baseHalfWidth","statusInDial","statusBelow","partValues","apportion","degreesFor","len","segStyle","partColor","colorBy","shadeColor","ownColor","summary","counted","tabFor","partsLegend","percentText","partsLabel","styleKey","centreText","caption","checkChoice","checkNumber","checkBoolean","checkText","partsStyles","PICTO_COLOR_BY","perIcon","per","iconScale","partial","filled","iconFills","unitIcon","groupSize","pictograph","per_icon","group_size","unit_icon","SHAPES","PIE_CENTER","PIE_COLOR_BY","OUTER","sliceArcs","fractions","shares","cut","shrink","pie","shade_color","gradient","percent","show_percent","centerLabel","center_label","sliceAt","donut","slices","paint","separators","track","percents","counter","valueFontSize","radialStyle","sweepAngles","defaultTrack","defaultCropped","owner","gradientId","custom","trackD","STROKE","cropped","solid","CSS","supports","canPaint","tick","RINGS_CENTER","RINGS_COLOR_BY","rounded_ends","rings","radii","ringLayout","ringArc","stat","lowest","dialBottom","litCells","segmented","lit","CELLS","tank","tilesPerRow","WAFFLES","WAFFLE_COLOR_BY","waffleCounts","square","cellAt","waffle","waffles","headline","lead","FUNNEL_SHAPES","PERCENT_OF","FUNNEL_COLOR_BY","trapezoid","check","funnel","widths","stageWidths","stageEdges","stagePercents","percent_of","stages","stageColor","textTone","interactive","GROUP_LEVELS","parseGroupBy","validateGroups","splitGroup","fromId","charAt","groupPath","levels","level","reg","areaId","floorId","floors","name_by_user","levelName","buildTree","paths","rootName","root","depth","children","leafValue","findNode","treeHeight","partition","walk","TAU","sectorPath","ox0","oy0","ox1","oy1","outer","ix1","iy1","ix0","iy0","axisAngle","polygonPoints","labelAnchor","entityOptionsForm","GROUP_FIELDS","groupBySchema","withGroupList","entityGroupsForm","HIERARCHY_LABELS","RADAR_SCALES","DEVICE_CLASS_NAMES","aqi","carbon_dioxide","carbon_monoxide","pm1","pm10","pm25","volatile_organic_compounds","volatile_organic_compounds_parts","largest","radarModel","ownAxis","axis","axisName","deviceClassName","radar","model","single","HALF_W","HALF_H","showValue","RADIUS","axisLabels","plotted","xy","POLAR_SCALES","POLAR_COLOR_BY","PALETTE_NAMES","polarArea","sliceLength","sliceAngles","sliceColor","ringLabels","drillEnabled","drill_down","validateDrill","drillTo","drillView","tree","drilledRoot","drillTarget","click","keydown","drillBar","parent","drillStyles","worst","s2","inset","TREEMAP_COLOR_BY","HEIGHT","treemapLayout","family","leaves","rects","it","cw","rh","rw","squarify","HEAD","totalText","observers","leaf","leafColor","big","treemap","measure","treeFor","noReading","SUNBURST_SHAPES","HIERARCHY_COLOR_BY","levelStrength","hierarchyTree","paintSpans","painted","strength","nodeLabel","SUNBURST_FIELDS","shapes","drawSunburst","geo","viewBox","sunburstGeometry","groupArc","sunburstLegend","swatch","legendGroup","drawIcicle","icicleGroup","sharedStyles","sunburst","icicle","niceTicks","extentOf","readingAt","MODES","BAR_COLORS","layoutBars","inputs","segments","absolute","withZero","dir","rowHeight","STACK_H","BAR_FIELDS","groupedBars","configOrder","inputsFor","showLegend","valueTexts","valueCh","valuePx","nameCh","negatives","negative","segment","onLeft","textOut","rowTotal","placedSegment","entityMark","extra","markVars","markStyles","RANGE_MODES","bulletRow","rangeSegments","sub","targetText","rangeFill","bullet","ranges","stick","withValue","verticalItem","horizontalItem","lollipop","STEP_MODES","firstReading","HEADROOM","placeBars","fromFirst","start_from_first","stepValue","invert","inverted","missing","waterfallBars","signed","c0","c1","aria","entityAttrs","waterfall","MEASURES","SLOPE_COLOR_BY","INCREASE","STATISTICS_MS","directionColor","increase","way","epsilon","direction","periodText","changeText","rel","relativeChange","rowsFor","slack","byGroup","groupColors","middle","slopeEnds","groupOf","fromText","ext","positions","spreadLabels","leftY","rightY","ENDS","rowMarks","showNow","lh","lowHigh","labelledMarks","dumbbellRows","pointsFor","labelled","agoText","MARK_COLORS","hollow","markColor","optionsOf","show_now","describe","dumbbell","nameW","renderRow","nowFill","rangeRaw","corners","bandPath","RANGE_FIELDS","rangeArea","bandRuns","drawSeries","SPARK_KINDS","sparkKind","spark","columnUnit","sparkRaw","kinds","sparkline","sparkDomain","pieces","SPARK_FIELDS","sparklineStyle","withBar","showTarget","BASELINES","STREAM_ORDERS","stackable","toShares","lower","s1","s3","upper","widest","thickness","streamSamples","keep","sampleBounds","binSeries","baselineOf","streamLabels","plotPx","plotW","texts","amount","hit","colorName","streamTooltip","STREAM_FIELDS","FLOATING_HIDDEN","withoutFloating","streamgraph","stream_order","variant","streamVariant","floating","peaks","tops","bottoms","insideOut","layersExtent","axisRaw","edgeX","streams","layerPath","edged","hoverPoints","UNDERNEATH","BODY","candlePeriod","unitOf","candleFrame","candleQuery","candles","candle","close","open","statisticsCandles","historyCandles","underValues","candleTooltip","mids","date","periodTitle","CANDLE_FIELDS","candlestick","underneath","candleExtent","strip","up_color","down_color","under","VALUE_LEN","BAND","CATEGORY_FIELDS","categorySchema","validateCategoryOptions","value_min","value_max","categoryOptions","value_axis","value_grid","labelColumn","categoryGeometry","rowPx","bandPx","labelCount","numberScale","clockScale","niceHours","hoveredBand","stopCategoryHover","bandTooltip","categoryPlot","dense","categoryStyles","readingsOf","weighted","byValue","quantile","prevAt","prevV","summarize","bandwidth","sd","iqr","squares","effective","densityCurve","clip","ds","kde","peak","sampleReadings","SPLITS","HALF","violinOptions","split_by","dateName","groupsOf","ser","splitReadings","shapePath","outline","drawGroup","rain","boxAt","rectBetween","hx","hy","raincloud","dotOffset","densityAt","pctRow","VIOLIN_FIELDS_BASE","fieldsByShape","violin","bw","violinFields","probe","GAP","swarm","maxR","near","fitSwarm","minR","offsets","reachAt","swarmReach","smallest","tries","furthest","PLACE_BY","swarmOptions","placeBy","place_by","sized","size_by_value","ON_OFF","rowsOf","events","onEvents","hourOfDay","drawRow","sizeFor","bySize","tooltipRows","clock","SWARM_FIELDS","withoutValueRange","beeswarm","reaches","pop","acceptFlows","flows","flowValue","sankeyLayout","accepted","columnOf","pass","changed","nodeColumns","byName","in","links","flow","nodes","used","stacks","nodeWidth","outs","ins","textWidth","fontSize","fitText","trimEnd","idx","LINK_COLORS","NODE_W","nodeName","isMiddle","sits","sankey","link_color","pairs","loop","visit","findCycle","flowsOf","font","words","gutter","anyAbove","spacing","PAD","drawSankey","receives","by","link","sankeyColors","dark","themes","darkMode","linkPath","two","labelText","GAP_STATES","isGap","DEFAULT_STATE_COLORS","opening","closing","playing","charging","auto","heat_cool","heat","heating","preheating","cool","cooling","dry","drying","fan_only","fan","paused","buffering","detected","problem","triggered","unlocked","jammed","locked","armed_home","armed_away","armed_night","armed_vacation","armed_custom_bypass","arming","cleaning","returning","QUIET_STATES","WORD_COLORS","padStart","isMeasurement","NOT_FOR_TIMELINE","TIMELINE_FIELDS","colorsOf","state_colors","suggestState","stateColorsEditor","fromEntries","withStateColors","BAR_LABELS","ROW_PX","normal","HEADING_PX","stateText","quiet","charCodeAt","wordHash","stateColor","ownColors","bar_labels","spanBox","duration","barLabel","timeline","checkColors","measurement","frameBox","showNames","namesPx","timeAxis","xAxis","byIndex","done","timelineRows","HOVER_STEPS","spanAt","hoverLayer","CLIMATE_ATTRIBUTES","PARTS","ACTION_KINDS","KIND_OF","defrosting","actionKind","NOT_FOR_CLIMATE","CLIMATE_FIELDS","climateHistorySchema","ACTION_COLORS","BOOLEANS","COLORS","actionLabel","setPointText","setPoint","climate","validateClimateOptions","set_point","shading","shadeFan","shade_fan","climateOptions","system","unit_system","temps","thermostat","attrs","climateRequests","climateData","actionSpans","numbers","range2","highAt","rangePoints","rangeBandPath","holdRuns","setPointPath","SECTOR_COUNTS","sectorOf","degrees","sectorName","heldAt","maxHold","bandIndex","speed","polarPoint","PERIOD_FIELDS","WIND_FIELDS","entityName","DEFAULT_WIND_PERIOD","windPeriod","windSectors","sectors","calmOption","calm","RAMP","numberText","rangeLabel","shareText","fine","setHover","sector","BOX","roseSvg","rose","petals","acc","petalPath","ringAngle","bestLength","ringLabelAngle","compass","R0","readout","roles","prevailing","speedText","meanSpeed","strongest","windRoseStyle","sectorsAsNumber","note","windRoles","statisticsQuery","rowMs","dirPoints","speedPoints","loadWind","noData","speedRole","speedDefaults","speedBands","pairWind","calmMs","speedMs","speedSum","sample","windRose","ringSteps","speedInfo","speedUnit","roseTooltip","DAY_MINUTES","DEFAULT_ACTIVE","intervals","iv","switchOns","wallMinute","dayStart","wallSpans","oa","ob","jump","minuteAngle","BUCKETS","bucketBounds","ADDITIVE","combine","isAdditive","formatClockDuration","DAY_CLOCK_FIELDS","CENTER","STATE_DOMAINS","domainOf","ringKind","numeric","attributeOf","aggregateOf","stateWord","formatted","toLocaleLowerCase","minuteLabel","dayClock","bucket","clockPeriod","clockDays","daysSoFar","hasData","totalMs","activeSet","stateIntervals","Uint16Array","Uint8Array","averageDay","timesText","perSlot","today","foldSlots","additive","barHeights","hovers","hoverOf","tickNextMinute","wait","visibilityState","VIEW","running","tipText","stateLabel","nowText","firstFound","hole","maxBig","maxSmall","small","labelY","dial","minHole","want","tz","opacity","stateMarks","barMarks","focusable","twelve","dialLabels","tickMarks","major","dialText","LABEL_R","hand","day_clock","bucketAsNumber","stopTick","parseBound","soft","trendDomain","fromZero","minRange","padLo","padHi","placeBuckets","buckets","checkAggregate","TREND_FIELDS","bool","bound","stringBounds","GRAPH_KINDS","FILL_KINDS","SHOW_MODES","HEADER_ALIGN","ICON_ALIGN","STATE_ALIGN","TRANSITIONS","showMode","fillKind","trendOptions","graph","pointsPerHour","points_per_hour","barSpacing","bar_spacing","transition","color_transition","extrema","value_factor","alignHeader","align_header","alignIcon","align_icon","alignState","align_state","font_size","fontSizeHeader","font_size_header","color_name","colorValue","color_value","colorIcon","color_icon","iconImage","icon_image","min_range","secondary","y_min_secondary","y_max_secondary","min_range_secondary","integer","trendSeries","perHour","cardAggregate","fixed_value","bucketSeries","banded","hasBands","graphed","show_graph","dataExtent","gradientDefs","scaled","bandStops","whenText","infoRow","weight","chip","trend","gridOptions","min_columns","min_rows","trendSchema","form","numericBounds","entitySchema","graphedSeries","nameStyle","headerIcon","valueParts","when","showPrimary","secondaries","show_state","show_indicator","st","show_legend","cardName","seriesName","show_legend_state","ratio","show_line","show_fill","show_points","lineSeries","guide","marker","graphArea","STYLE_GROUPS","isChart","STYLES","polar_area","grouped_bars","range_area","wind_rose","ft","removeProperty","setProperty","LanguageController","PRESET_NAMES","COLOR_NAMES","CUSTOM","TEXT_SELECTOR","ENTITY_SELECTOR","isEntityStart","ICON_SELECTOR","presetFor","isPaletteColor","CdBandsEditor","languageController","_customOpen","_entityOpen","_entityValue","_t","_getSelectors","_selectors","presetOptions","preset","presetCustom","_emit","_presetChanged","structuredClone","_updateBand","_fromChanged","_fromEntityChanged","_toggleFromMode","_colorChanged","_customColorChanged","_iconChanged","_labelChanged","_removeBand","_addBand","_renderBand","entityMode","styleMap","customElements","define","NUMBER_SELECTOR","limitMode","CdLimitField","_mode","_modeSelectorFor","defaultLabel","_modeSelector","_currentMode","_modeChanged","_numberChanged","_entityChanged","LIMITS","sensorUnit","CdEntitiesEditor","_computeLabel","_expanded","_asConfig","_set","_move","expanded","moveEntity","_remove","removeEntity","_toggle","_add","addEntity","_formChanged","_rowLabel","_form","_renderOverrides","entityAttributeSchema","chartFields","_renderRow","HIERARCHY_STYLES","GAUGE_STYLES","ChartdeckCardEditor","_label","_computeRuleLabel","setConfig","_config","loadCardHelpers","helpers","createCardElement","getConfigElement","loadHaComponents","_commit","fireConfigChanged","_panel","_subChanged","_chartFields","renderEntities","_ruleForm","_ruleData","_ruleChanged","renderLimits","renderColours","_toggles","_firstEntityUnit","_selectStyle","concat","renderStyle","picture","gaugeSchema","renderChart","renderDisplay","displaySchema","checked","renderActions","info","COLUMN_GAP","tiles","columnsThatFit","ChartdeckCard","_watched","_matched","_items","_detachers","_readyScheduled","_readyAt","getStubConfig","isBattery","normalized","hideUnavailable","hide_unavailable","cardOptions","animate","legendBands","normalizeConfig","watchedEntityIds","_disconnectStyle","_styleName","_style","_legend","_count","_contentHeight","chrome","perRow","getCardSize","getGridOptions","matched","theme","isStatic","matchMedia","preview","_scheduleReady","markReady","performance","requestAnimationFrame","_syncActions","detach","querySelectorAll","dataset","_renderEntity","resolved","resolveEntities","diff","sortEntities","columnsTemplate","registry","customCards","description","documentationURL"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,14,123]}
\ No newline at end of file
+{"version":3,"file":"chartdeck-card.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","../node_modules/lit-html/directive.js","../node_modules/lit-html/directive-helpers.js","../node_modules/lit-html/directives/repeat.js","../src/actions.ts","../src/bands.ts","../src/localize.ts","../src/fill.ts","../src/geometry.ts","../src/gauge.ts","../src/types.ts","../src/config.ts","../src/format.ts","../src/history/energy.ts","../src/chart/export-fonts.ts","../src/chart/export.ts","../src/history/timezone.ts","../src/history/period.ts","../src/history/bearing.ts","../src/history/fetch.ts","../src/history/group.ts","../src/history/store.ts","../src/history/transform-cumulative.ts","../src/history/transform-derivative.ts","../src/history/condition.ts","../src/units.ts","../src/chart/legend-toggle.ts","../src/chart/paths.ts","../src/chart/frame.ts","../src/history/energy-totals.ts","../node_modules/lit-html/directives/live.js","../src/editor/edit.ts","../src/chart/series-style.ts","../src/editor/schemas.ts","../src/editor/thumbnails.ts","../src/editor/condition-fields.ts","../src/chart/scale.ts","../src/chart/axes.ts","../src/chart/downsample.ts","../src/chart/log-scale.ts","../src/chart/grid.ts","../src/chart/layout.ts","../src/chart/condition-strip.ts","../src/chart/stack.ts","../src/chart/tooltip.ts","../src/chart/data-labels.ts","../src/chart/extremes.ts","../src/chart/forecast.ts","../src/chart/anomaly.ts","../src/chart/compare-ghost.ts","../src/chart/multiples.ts","../src/scale.ts","../src/resolve.ts","../src/chart/threshold-history.ts","../src/chart/annotations.ts","../node_modules/lit-html/directives/style-map.js","../src/language-controller.ts","../src/editor/bands-editor.ts","../src/editor/annotations-editor.ts","../src/chart/day-clock.ts","../src/chart/now-marker.ts","../src/editor/now-marker-editor.ts","../src/editor/chart-editors.ts","../src/styles/area.ts","../src/styles/bar.ts","../src/chart/box.ts","../src/chart/xy.ts","../src/styles/box-plot.ts","../src/chart/scatter-plot.ts","../src/styles/bubble.ts","../src/chart/columns.ts","../src/chart/error-bars.ts","../src/styles/column.ts","../src/chart/zoom.ts","../src/chart/sync.ts","../src/styles/line.ts","../src/styles/combined.ts","../src/chart/heatmap-grid.ts","../src/styles/heatmap.ts","../src/chart/spiral.ts","../src/styles/spiral.ts","../src/chart/histogram.ts","../src/styles/histogram.ts","../src/gauge-ghost.ts","../src/status-text.ts","../src/styles/needle.ts","../src/chart/parts.ts","../src/styles/pictograph.ts","../src/styles/pie.ts","../src/styles/radial.ts","../src/styles/rings.ts","../src/styles/scatter.ts","../src/styles/segmented.ts","../src/styles/tank.ts","../src/styles/battery.ts","../src/styles/thin.ts","../src/styles/waffle.ts","../src/chart/colors.ts","../src/styles/funnel.ts","../src/chart/hierarchy.ts","../src/chart/polar.ts","../src/editor/entity-options.ts","../src/editor/group-fields.ts","../src/styles/radar.ts","../src/styles/polar-area.ts","../src/chart/drill.ts","../src/chart/treemap-layout.ts","../src/styles/treemap.ts","../src/chart/marimekko.ts","../src/chart/sankey.ts","../src/styles/marimekko.ts","../src/styles/sunburst.ts","../src/chart/compare.ts","../src/styles/grouped-bars.ts","../src/chart/marks.ts","../src/styles/bullet.ts","../src/styles/lollipop.ts","../src/styles/waterfall.ts","../src/styles/slope.ts","../src/styles/dumbbell.ts","../src/styles/range-area.ts","../src/styles/sparkline.ts","../src/chart/stream.ts","../src/styles/streamgraph.ts","../src/styles/candlestick.ts","../src/chart/candles.ts","../src/chart/category-plot.ts","../src/chart/density.ts","../src/styles/violin.ts","../src/chart/swarm.ts","../src/styles/beeswarm.ts","../src/styles/strip-plot.ts","../src/styles/sankey.ts","../src/chart/chord.ts","../src/styles/chord.ts","../src/chart/timeline.ts","../src/editor/timeline-editor.ts","../src/styles/timeline.ts","../src/chart/climate-data.ts","../src/editor/climate-editor.ts","../src/styles/climate.ts","../src/chart/wind.ts","../src/editor/wind-rose-editor.ts","../src/styles/wind-rose.ts","../src/editor/day-clock-editor.ts","../src/styles/day-clock.ts","../src/chart/cycle.ts","../src/styles/cycle-plot.ts","../src/chart/trend-data.ts","../src/editor/trend-editor.ts","../src/styles/trend.ts","../src/styles/index.ts","../src/editor/limit-field.ts","../src/editor/entities-editor.ts","../src/editor/chartdeck-card-editor.ts","../src/styles/shared.ts","../src/editor/badge-editor.ts","../src/badge.ts","../src/chartdeck-card.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","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>o,n=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,e={HTML:1,SVG:2,MATHML:3},l=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,d=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,f=o=>o?._$litDirective$,r=o=>void 0===o.strings,s=()=>document.createComment(\"\"),v=(o,n,e)=>{const l=o._$AA.parentNode,d=void 0===n?o._$AB:n._$AA;if(void 0===e){const i=l.insertBefore(s(),d),n=l.insertBefore(s(),d);e=new t(i,n,o,o.options)}else{const t=e._$AB.nextSibling,n=e._$AM,c=n!==o;if(c){let t;e._$AQ?.(o),e._$AM=o,void 0!==e._$AP&&(t=o._$AU)!==n._$AU&&e._$AP(t)}if(t!==d||c){let o=e._$AA;for(;o!==t;){const t=i(o).nextSibling;i(l).insertBefore(o,d),o=t}}}return e},u=(o,t,i=o)=>(o._$AI(t,i),o),m={},p=(o,t=m)=>o._$AH=t,M=o=>o._$AH,h=o=>{o._$AR(),o._$AA.remove()},j=o=>{o._$AR()};export{e as TemplateResultType,j as clearPart,M as getCommittedValue,f as getDirectiveClass,v as insertPart,d as isCompiledTemplateResult,c as isDirectiveResult,n as isPrimitive,r as isSingleExpression,l as isTemplateResult,h as removePart,u as setChildPartValue,p as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){const d=l(s),{values:p,keys:a}=this.dt(t,r,c);if(!Array.isArray(d))return this.ut=a,p;const h=this.ut??=[],v=[];let m,y,x=0,j=d.length-1,k=0,w=p.length-1;for(;x<=j&&k<=w;)if(null===d[x])x++;else if(null===d[j])j--;else if(h[x]===a[k])v[k]=o(d[x],p[k]),x++,k++;else if(h[j]===a[w])v[w]=o(d[j],p[w]),j--,w--;else if(h[x]===a[w])v[w]=o(d[x],p[w]),i(s,v[w+1],d[x]),x++,w--;else if(h[j]===a[k])v[k]=o(d[j],p[k]),i(s,d[x],d[j]),j--,k++;else if(void 0===m&&(m=u(a,k,w),y=u(h,x,j)),m.has(h[x]))if(m.has(h[j])){const e=y.get(a[k]),t=void 0!==e?d[e]:null;if(null===t){const e=i(s,d[x]);o(e,p[k]),v[k]=e}else v[k]=o(t,p[k]),i(s,d[x],t),d[e]=null;k++}else n(d[j]),j--;else n(d[x]),x++;for(;k<=w;){const e=i(s,v[w+1]);o(e,p[k]),v[k++]=e}for(;x<=j;){const e=d[x++];null!==e&&n(e)}return this.ut=a,f(s,v),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import{noChange as r,nothing as e}from\"../lit-html.js\";import{directive as i,Directive as t,PartType as n}from\"../directive.js\";import{isSingleExpression as o,setCommittedValue as s}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=i(class extends t{constructor(r){if(super(r),r.type!==n.PROPERTY&&r.type!==n.ATTRIBUTE&&r.type!==n.BOOLEAN_ATTRIBUTE)throw Error(\"The `live` directive is not allowed on child or event bindings\");if(!o(r))throw Error(\"`live` bindings can only contain a single expression\")}render(r){return r}update(i,[t]){if(t===r||t===e)return t;const o=i.element,l=i.name;if(i.type===n.PROPERTY){if(t===o[l])return r}else if(i.type===n.BOOLEAN_ATTRIBUTE){if(!!t===o.hasAttribute(l))return r}else if(i.type===n.ATTRIBUTE&&o.getAttribute(l)===t+\"\")return r;return s(i),t}});export{l as live};\n//# sourceMappingURL=live.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const n=\"important\",i=\" !\"+n,o=e(class extends r{constructor(t){if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||t.strings?.length>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`},\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ft)return this.ft=new Set(Object.keys(r)),this.render(r);for(const t of this.ft)null==r[t]&&(this.ft.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=null);for(const t in r){const e=r[t];if(null!=e){this.ft.add(t);const r=\"string\"==typeof e&&e.endsWith(i);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?n:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$3","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","n","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y$1","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","y","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","v","_","m","RegExp","g","$","x","_$litType$","strings","values","w","E","for","A","P","createTreeWalker","V","S","parts","lastIndex","exec","test","startsWith","N","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","I","L","z","H","tagName","append","data","indexOf","innerHTML","M","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","R$3","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","k","nextSibling","Z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","T","iterator","O","insertBefore","createTextNode","_$AC","R","_$AP","remove","setConnected","H$1","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","B","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","i$2","_$Ct","_$Ci","_$AQ","dt","ut","isSet","action","isInteractive","cfg","tap_action","hold_action","double_tap_action","attachActions","getConfig","holdTimer","tapTimer","startX","startY","active","held","fire","config","dispatchEvent","CustomEvent","bubbles","composed","detail","clearHold","undefined","clearTimeout","onDown","ev","button","clientX","clientY","setTimeout","onMove","hypot","onCancel","onUp","wasActive","onKey","repeat","key","preventDefault","onContextMenu","PALETTE","primary","variable","fallback","green","amber","red","blue","purple","grey","baseColor","color","colorStops","start","end","LIGHT_PALETTE","onFillText","rgba","trim","hex","join","parseInt","fn","min","parseRgba","lin","luminance","bandFor","value","bands","found","band","from","legendItems","format","unit","items","next","label","text","isFinite","BAND_PRESETS","battery","usage","temperature","none","FALLBACK","LANGUAGES","en","LOADERS","de","es","fr","nl","pt","loading","LANGUAGE_LOADED_EVENT","candidatesFor","language","candidates","includes","ensureLanguage","wanted","find","candidate","resolve","pending","then","module","registerLanguage","code","default","window","Event","catch","languageOf","hass","requested","locale","requestedLanguage","here","localize","vars","template","replace","querySelector","live","stored","localStorage","getItem","pageLanguage","RULE_KEYS","normalizeRule","raw","field","allowed","filter","rule","entries","list","some","hasNumber","factsFor","id","entity_id","entry","entities","device","device_id","devices","area","area_id","deviceClass","attributes","device_class","labels","floor","areas","floor_id","domain","entity","hits","facts","have","included","every","excluded","memos","fmt","abs","polar","cx","cy","deg","rad","PI","sin","cos","arcPath","startDeg","endDeg","rr","sweep","sx","sy","mx","my","ex","ey","large","CENTER_MODES","GHOST_SPANS","DEFAULT_ANGLES","ring","arc","needle","angle","gaugeAngles","defaults","startAngle","endAngle","customAngles","angleAt","a0","a1","union","boxes","x0","y0","x1","max","y1","arcBox","pad","angles","ceil","points","box","tickStep","span","count","power","log10","tickDecimals","step","places","toPrecision","labelPlacement","anchor","dy","centerContent","center","kind","centerText","STYLE_NAMES","DEFAULT_BANDS","Infinity","SORT_MODES","toNumber","toLimit","toInteger","isInteger","normalizeBands","sort","normalizeAction","pick","own","card","mergeEntity","merged","severity","icon","target","decimals","style","gauge","start_angle","end_angle","center_text","tick_labels","ghost","tickLabels","parseGaugeOptions","normalizeConfig","show","legend","columns","limit","include","exclude","hideUnavailable","hide_unavailable","cardOptions","animate","colorIcon","color_icon","legendBands","title","formatNumber","grouping","number_format","localeOptions","formatter","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","useGrouping","withUnit","ENERGY_FLOWS","DEFAULT_ENERGY_FLOWS","ENERGY_TIME_STYLES","ENERGY_TOTAL_STYLES","ENERGY_STYLES","ENERGY_SPLIT_STYLES","OUT_FLOWS","ELECTRIC_FLOWS","SANKEY_FLOWS","marks","FLOW_COLORS","grid_import","grid_export","solar","battery_out","battery_in","gas","water","energyChecked","source","energy_split","flows","energy_flows","validateEnergy","energyStatistics","prefs","flow","energy_sources","flow_from","stat_energy_from","flow_to","stat_energy_to","device_consumption","stat_consumption","seen","flatMap","NO_ACTION","energyEntities","stats","meta","below","per","states","info","friendly_name","flowName","energy_flow","statistic","energy_below","energyCardRaw","defaultFlows","out","group_by","aggregate","belowAxis","shownValue","isEnergyTotals","isStatistic","energyValueText","group","total","periodTotal","sum","prefsCache","waiting","energyPrefs","onChange","now","Date","callWS","status","error","cached","listeners","stale","at","promise","async","loaded","ids","rows","statistic_ids","row","statistic_id","statistics_unit_of_measurement","loadMeta","err","message","clear","GENERIC","fontFamilies","stack","matchAll","withGeneric","families","generic","names","closestGeneric","faceKey","family","weight","range","normal","bold","toUpperCase","firstUrl","src","url","readable","sheet","fontSources","sheets","origin","base","face","unicodeRange","href","visit","rules","depth","trimStart","fontFaceRules","getPropertyValue","URL","protocol","MIME","woff2","woff","truetype","ttf","opentype","otf","faceRule","budget","response","fetch","credentials","ok","bytes","Uint8Array","arrayBuffer","left","ext","pathname","fromCharCode","subarray","btoa","base64","plotted","forgetPlotted","csvField","plottedCsv","series","carried","toISOString","entityId","toCsv","PLAIN","RESERVED","yamlScalar","yamlKey","isObject","toYaml","indent","item","inner","scalar","exportFileName","normalize","SVG_PROPS","esc","px","round","visibleColor","parseFloat","snapshotSvg","root","getBoundingClientRect","top","width","height","background","getComputedStyle","fontFamily","walk","skip","display","visibility","opacity","SVGSVGElement","copy","cloneNode","querySelectorAll","to","props","XMLSerializer","serializeToString","inlineSvg","alpha","backgroundColor","rx","borderTopLeftRadius","sides","side","x2","y2","dash","node","ownText","createRange","selectNodeContents","fontSize","deco","textDecorationLine","fontWeight","child","children","svg","saveFile","blob","createObjectURL","link","download","rel","body","click","revokeObjectURL","EXPORT_ACTIONS","menus","menuState","open","setOpen","ctx","outside","composedPath","Element","classList","contains","report","statusTimer","copyOrSave","clipboard","navigator","writeText","copyText","Blob","runExport","theme","cardBg","themeColors","picture","doc","fonts","location","faces","styleSheets","baseURI","all","embedFonts","png","svgText","scale","Image","canvas","context","getContext","toBlob","img","encodeURIComponent","decode","onload","onerror","drawImage","svgToPng","exportMenu","export","nothing","html","stopPropagation","focus","activeElement","choose","exportStyles","css","HOUR","WEEKDAYS","DAY_NAMES","formatters","timeZone","DateTimeFormat","hourCycle","year","month","day","hour","minute","second","weekday","wallTime","part","formatToParts","offsetAt","UTC","zonedTime","guess","before","after","matches","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","lo","hi","mid","jumpBetween","civil","startOf","zone","back","firstDay","addUnits","first","boundaries","languageFirstDay","Locale","getWeekInfo","weekInfo","zoneFor","server","time_zone","isTimeZone","resolvedOptions","chosen","first_weekday","PERIOD_UNITS","CALENDAR_SPANS","PERIOD_UNTIL","DEFAULT_PERIOD","last","offset","navigate","until","UNIT_MS","week","wholeNumber","oneOf","parsePeriod","period","calendar","rollingRange","setMonth","getMonth","getTime","periodRange","steps","stepsFor","kept","setSteps","COMPASS_POINTS","BY_NAME","WORDS","normalizeDegrees","parseBearing","number","word","letter","toReading","readerFor","bearing","toText","toPoint","read","parseHistory","time","lu","lc","finite","parseStatistics","change","mean","statisticsPeriod","days","defaultStatisticsQuery","types","loadHistory","start_time","end_time","significant_changes_only","plain","withAttributes","calls","entity_ids","minimal_response","no_attributes","result","loadStatistics","query","GROUP_UNITS","AGGREGATES","parseGrouping","increments","up","groupHistory","bounds","ups","stop","firstAt","reading","known","taken","groupStatistics","lows","highs","prior","PERIOD_MS","COLUMNS","statisticsQueryFor","serverTimeZone","sameCalendar","STATISTICS_REFRESH_MS","HistoryStore","shape","loadedFrom","loadedTo","generation","statistics","away","pausedAt","PAUSE_RELOAD_MS","resumedStatistics","margin","refresh","load","appendLive","pause","timer","dispose","refreshLater","last_updated","last_changed","inside","stores","storeFor","store","pauseStore","TRANSFORMS","CUMULATIVE_RESETS","CUMULATIVE_STYLES","POWER","W","kW","MW","ENERGY","Wh","kWh","MWh","withLatest","latest","valueText","cumulativeSeries","transform","reset","transform_reset","transform_reset_day","resets","times","resetTimes","cls","stateObj","state_class","meterKind","prev","changes","meterTotal","sensorUnit","unit_of_measurement","factor","sensor","accrue","reach","integral","isTransform","path","fieldCache","EMPTY","schema","fields","DERIVATIVE_UNIT_TIMES","DERIVATIVE_STYLES","DURATION","parseWindow","ms","windowMean","windowMs","shift","covered","ENERGY_PER_HOUR","rateUnit","derivativeSeries","transform_unit_time","increasing","smoothing","transform_smoothing","unitMs","run","rate","rates","transform_smoothing_time","steady","heldValue","isEntityId","validateWhen","when","where","validateConditions","parseWhen","above","conditionOf","sameCondition","meets","flips","loadConditions","configs","requests","chartConditions","conditionStatus","conditions","conditionalPoints","cur","flip","maskPoints","ghostOn","when_ghost","FAMILIES","energy","GWh","K","speed","mph","kn","pressure","Pa","hPa","mbar","kPa","bar","inHg","mmHg","psi","mm","cm","in","ft","FAMILY_OF","units","conversion","fs","fo","ts","to0","slope","apply","convertPoints","LEGEND_TOGGLE_SCHEMA","selector","boolean","seriesKey","cards","storage","storageKey","stateFor","charCodeAt","imul","configHash","hidden","withLegend","frame","locked","legend_toggle","header","multiples","legendToggleActive","hiddenSeries","lockedSet","removeItem","setItem","save","legendToggleHeader","isolate","others","alone","isolated","hint","off","shiftKey","toggled","legendToggleStyles","CURVES","straight","pts","runPath","curve","dx","sqrt","smooth","runs","VIEW_W","VIEW_H","SERIES_COLORS","SOURCES","validateHistoryOptions","validateCumulative","validateDerivative","curves","seriesTransform","historyFrame","hourly","cardCurve","prepare","loadedEntity","readings","rememberPlotted","plural","one","many","periodLabel","sameYear","assign","formatRange","periodNav","go","home","periodNavStyles","disconnectHistory","pauseConditions","seriesHeader","acts","frameMessage","allHiddenMessage","plot","defs","frameStyles","SOURCE_FLOWS","withTotal","available","totalsGrouping","energyTotals","dir","into","placed","ends","rest","sankeyItems","isEmptyValue","isPlainObject","setIn","nextKey","clone","slot","emptied","splice","setOption","current","getIn","setEntityOption","obj","DEFAULT_LINE_WIDTH","MIN_LINE_WIDTH","MAX_LINE_WIDTH","seriesStyle","line_width","dots","onTop","on_top","drawOrder","dotsPath","dotSize","checkWidth","checkBool","validateSeriesStyle","TITLE_FIELDS","DISPLAY_TOGGLE_FIELDS","COLOUR_TOGGLE_FIELDS","DISPLAY_FIELDS","ACTION_FIELDS","GAUGE_FIELDS","gaugeSchemas","ENTITY_TEXT_FIELDS","ENTITY_ATTRIBUTE_FIELDS","ENTITY_SERIES_FIELDS","LINE_WIDTH_SELECTOR","seriesFields","entitySeriesFields","cardDots","ENTITY_ACTION_FIELDS","TITLE_SCHEMA","ACTIONS_SCHEMA","ui_action","ENTITY_TEXT_SCHEMA","attributeSchemas","seriesCache","entitySeriesSchema","select","unitSchemas","entityTextSchema","convertibleUnits","grid","custom_value","buildDisplaySchema","RULE_FIELDS","ruleSelector","multiple","deviceClasses","domains","ruleCache","ruleSchema","dc","ruleOptions","displayCache","deepEqual","ka","kb","formData","applyFormData","TRACK","FILL","TEXT","point","thumbnail","tipX","tipY","drawing","CONDITION_STYLES","STRIP_STYLES","NUMBER","CONDITION","CARD_CONDITION_FIELDS","CARD_SCHEMA","CARD","CARD_DRAWN","extent","padDomain","fraction","linear","d0","d1","r0","r1","Y_SCALES","AXIS_LABELS","DEFAULT_AXES","isNumber","validateAxisOptions","axis_labels","gridlines","y_min","y_max","y_scale","axisOptions","x_axis","y_axis","horizontal","vertical","niceStep","mag","stepDecimals","tidy","valueAxis","fixed","ticks","MINUTE","DAY","INTERVALS","localOffset","getTimezoneOffset","zoneOffset","fromWall","wall","collect","endWall","guard","timeTicks","timeInterval","startWall","timeZoneOf","hour12Of","time_format","opts","formatTime","seconds","hour12","formatDateTime","timeLabel","midnight","downsample","nextFrom","nextTo","avgT","avgV","best","bestArea","pa","lttb","MANTISSAS","DECADE_STEPS","pow","decadeOf","positivePoints","bad","mantissas","snap","down","around","fit","logScale","l0","l1","NaN","sizes","chartWidth","clientWidth","ResizeObserver","observer","records","contentRect","observe","stopChartWidth","disconnect","plotWidth","plotAxes","gaps","log","fixMin","fixMax","choices","choice","minorSet","minor","logAxis","scales","pct","tickText","notation","logTickText","chartArea","axes","overlay","hover","right","xLabel","yLabel","gestures","classes","wrapClasses","wrapStyle","yTicks","valueLabels","yLabels","xLabels","timeLabels","sizer","rSizer","rLabels","rightLabels","wrap","move","leave","cancel","wheel","dblclick","gridLines","gridStyles","HEADER_PLACES","validateLayout","compact","validateLegendToggle","chartLayout","chartFrame","layout","headerOver","layoutStyles","ghostLines","paths","conditionText","num","decimalsOf","words","formatEntityState","conditionStrip","view","overview","when_strip","drawn","spans","heldSpans","rects","condition","conditionStyles","STACK_MODES","validateStack","valueAt","stackValues","totals","stackExtent","layers","tooltipSide","TOUCH_LINGER_MS","nearestIndex","hoverTime","stopHover","tooltipEnabled","tooltip","validateTooltipOptions","hoverHandlers","stateOf","cancelTimer","rect","currentTarget","frac","snapTime","pointerType","sharedUnit","totalRow","tooltipLayer","dotY","heading","footer","tooltipStyles","LABEL_SHOW","LABEL_POSITIONS","labelOptions","labels_show","position","labels_position","hideOverlap","labels_overlap","pickPoints","real","picked","autoSide","boxFor","LABEL_H","overlaps","labelWidth","dataLabels","rank","fx","fy","preferred","other","hide","placeLabels","shown","edge","dataLabelStyles","AVERAGE_MODES","DEFAULT_EXTREMES","extremesOptions","extremes","average","extremesOn","labelBox","py","align","gap","tier","obstacles","dot","prefer","spots","spot","extremeTime","extremesLayer","input","lines","extremePoints","timeWeighted","averageOf","inPlot","spec","figures","across","extremesStyles","LABEL_GAP","EXTREMES_FIELDS","ENTITY_EXTREMES_FIELD","entitySchemas","withEntityExtremes","entityFieldLists","withEntityExtremesFields","FORECAST_TYPES","TIME_KEYS","VALUE_KEYS","forecastOf","forecast","forecastEntities","toTime","firstKey","parseForecast","valueKey","timeKey","multiply","tk","vk","aheadOf","ahead","atNow","feeds","closeFeeds","keep","subs","sub","closed","unsubscribe","forecastItems","old","connection","made","subscribeMessage","forecast_type","weatherForecast","forecastLayer","parsed","value_key","time_key","extendedEnd","hours","forecast_hours","forecastReach","forecastLines","forecastTooltipSeries","forecastLabel","forecastStyles","FORECAST_ENTITY_FIELDS","FORECAST_FIELDS","FORECAST_SCHEMA","forecastVariant","forecastSchema","AUTO_WINDOW","MAD_TO_SD","median","sorted","rollingStats","slots","offs","SQRT2","noiseFloor","half","local","sd","dev","sign","anomaliesOf","sigma","zText","bandPath","close","bottom","thin","anomalyLayer","anomalies","anomalies_window","anomalies_sigma","anomalies_color","anomalies_band","anomalyOptions","behind","q","texts","order","leaders","near","pickLabels","describe","anomalyStyles","ANOMALY_FIELDS","anomalyVariant","anomalySchema","COMPARE_STYLES","COMPARE_PRESETS","UNITS","mo","OFFSET","parseOffset","offsetList","compare","shiftBack","offsetLabel","forwardMapper","delta","later","laterEnd","exact","shiftForward","compareGhosts","offsets","compareOffsets","compare_style","ghosts","DASHES","compareStyles","compareVariant","compareSchema","MULTIPLES_SCALES","multiplesGrid","draw","cols","fits","multiplesColumns","panel","panelWidth","share","lists","shared","titleValue","multiplesStyles","fillSpan","zero","warned","iconOverride","isUnset","parseNumber","resolveLimit","what","console","warn","resolveBands","resolveOne","converted","rawValue","toValue","reportedDecimals","display_precision","convertedDecimals","precision","defaultDecimals","formatEntityAttributeValue","statusText","targetPosition","matchedIds","listed","memo","localeCompare","matchEntities","resolveEntities","matched","resolved","watchedEntityIds","conditionEntities","THRESHOLD_ZONES","zoneBands","typed","historyEntity","history","thresholdSteps","annotations","thresholdHistoryEntities","pair","storesFor","holdTo","thresholdQuery","stepValues","steppedThreshold","dashed","stepRuns","line","colorOf","shapes","zoneShapes","shade","lastRun","ANNOTATION_TYPES","POINT_AT","DEFAULT_COLOR","checkValue","DAILY","LOCAL","timeList","validateAnnotations","zones","daily","isTimeText","checkThresholdHistory","annotationsOf","annotationEntities","resolveValue","annotationUnit","markTimes","stateSpans","caches","stopAnnotations","stopThresholdHistory","seriesFor","pointFor","grouped","annotationLayers","zoneRects","front","cache","stateHistory","stepped","findIndex","placeMarkLabels","annotationStyles","removeProperty","setProperty","LanguageController","listener","PRESET_NAMES","COLOR_NAMES","CUSTOM","TEXT_SELECTOR","ENTITY_SELECTOR","isEntityStart","ICON_SELECTOR","presetFor","isPaletteColor","CdBandsEditor","languageController","_customOpen","_entityOpen","changed","_entityValue","_t","_getSelectors","_selectors","presetOptions","preset","presetCustom","_emit","_presetChanged","structuredClone","_updateBand","_fromChanged","_fromEntityChanged","_toggleFromMode","_colorChanged","_customColorChanged","_iconChanged","_labelChanged","_removeBand","_addBand","_renderBand","selectors","custom","entityMode","styleMap","customElements","define","FIELDS","DEFAULTS","prefix","schemas","withAnnotations","fresh","annotationsEditor","commit","annotationData","include_entities","annotationSchema","annotationFromData","withSeverity","TAU","DAY_MINUTES","DEFAULT_ACTIVE","GAP_STATES","isGap","clip","intervals","iv","switchOns","wallMinute","dayStart","wallSpans","oa","ob","clamp","jump","minuteAngle","mark","BUCKETS","bucketBounds","minutes","ADDITIVE","combine","isAdditive","formatClockDuration","sectorPath","ox0","oy0","ox1","oy1","outer","ix1","iy1","ix0","iy0","NOW_MARKER","validateNowMarker","now_marker","nowLabel","nextMark","duration","tickNowMarker","wait","visibilityState","stopNowMarker","nowMarkerLayer","nowInView","markLabelBoxes","labelWidthPx","fitsRight","fitsLeft","labelSide","labelPx","nowMarkerStyles","NOW_MARKER_FIELDS","nowMarkerSchema","HISTORY_FIELDS","ENERGY_SPLIT_FIELD","historyVariant","historySchema","flags","sources","energyFlowsField","ENERGY_TOTALS_FIELDS","energyTotalsVariant","energyTotalsSchema","variant","ROLLING_HISTORY_FIELDS","rollingHistorySchema","LAYOUT_FIELDS","layoutSchema","toggles","AXES_FIELDS","axesSchema","ZOOM_SCHEMA","ANNOTATION_SCHEMA","labelSchema","SYNC_SCHEMA","multiplesSchema","cachedSchema","build","chartForm","section","previous","withEnergyDefaults","LINE_FIELDS","zeroFloor","stepCorners","areaPath","edgePath","drawArea","zeroY","negative_color","belowColor","fillId","lineId","twoTone","strong","faint","fillGradient","stacked","lineGradient","fills","edges","flush","lineWidth","stroke","AREA_FIELDS","NEGATIVE_FIELD","entityFieldCache","areaStyles","validate","validateNegativeColor","editor","entityFields","nav","thinned","tip","ordered","aligned","sums","layer","minColumnWidth","weightedQuantile","WHISKERS","spread","validateXRange","x_min","x_max","X_RANGE_FIELDS","X_RANGE_SCHEMA","xRange","valueAxes","xData","yData","yFloor","xDecimals","picks","pickedIndex","stopPick","pickHandlers","pickState","pickTooltip","pickStyles","ORIENTATIONS","SLOT","boxesOf","whiskers","samples","rowSamples","heldSamples","q1","q3","low","high","outliers","boxStats","category","categories","categoryTicks","room","boxPlace","maxHalf","centre","drawBox","place","showReadings","jitter","BOX_FIELDS","ENTITY_SCHEMA","ENTITY_FIELDS","orientation","ungrouped","boxFrame","categoryName","groupLabel","shorten","longest","sidePx","cat","boxAxes","cs","vs","alongPx","groupTitle","along","within","pickBox","AGAINST","SIZE_LIMITS","DOT_LIMITS","JITTER_LIMITS","pairReadings","seed","bubbleDiameter","minPx","maxPx","checkRange","xyOptions","against","dot_size","minSize","min_size","maxSize","max_size","validateXY","seriesColor","renderXY","byTime","colors","role","roleHeader","needed","groups","ys","xs","jx","jy","sizeRange","markTooltip","bestD","nearestPoint","sizeLegend","xyStyles","disconnectXY","XY_AXES_FIELDS","scatter","bubble","xyEditor","COLOR_FIELDS","COLOR_SCHEMA","xyEntityFields","COLUMN_GROUPS","COLUMN_AGGREGATES","COLUMN_PERIOD","PERIOD_DAYS","autoGroupUnit","isMeter","stateClass","columnRaw","columnTable","groupEnd","table","slotEnd","columnBox","each","ERROR_BARS","FITS","std","ci95","min_max","whiskersFor","whiskerOf","heldInHistory","of","clampY","errorBarStyles","GROUP_LABEL_PX","LABEL_UNIT","groupHeading","column","cap","valueLabel","targetMark","drawColumns","byBands","color_by","showLabels","showTargets","baseline","targets","whisker","whiskerMark","COLUMN_HISTORY_FIELDS","COLUMN_FIELDS","columnStyles","columnChart","isColumnGroup","error_bars","validateErrorBars","fullPeriod","ctx0","errorMode","errorBarsOf","errorBars","fitsAggregate","zeroBased","centres","slotOf","whiskersOf","hovered","highlight","radius","rounded","FULL","clampWindow","minSpan","isZoomed","zoomAt","pivot","panBy","selectWindow","windowRange","visiblePoints","zoomView","zoom","minZoomMs","pointers","zoomed","fracOf","setPointerCapture","pointerId","hideHover","zoomGestures","gesture","w0","moved","span0","ta","tb","pinchWindow","tapped","timeStamp","lastTap","ctrlKey","metaKey","deltaMode","deltaY","exp","sideways","deltaX","zoomLayer","sel","ZOOM_OUT","zoomStyles","SYNC_EVENT","syncSend","stopSync","syncChart","sync","handlers","remote","receive","sent","periodKey","COLOR_BY","bandGradient","stops","seriesPath","pointLabels","plotHeight","overHeaderBox","chars","validateZoomOptions","validateLabelOptions","validateExtremes","validateSyncOptions","multiples_scale","multiples_columns","validateMultiples","validateForecast","validateAnomalies","validateCompare","multiplesVariant","flatten","withForecastFields","watch","stopZoom","stopForecast","stopCompare","compareKey","multiplesOptions","panels","over","linePlot","forecasts","thresholds","annotationValues","empty","zoomBusy","notes","strip","pos","valuetext","tol","f0","act","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End","Escape","overviewStrip","OVERVIEW_H","overviewLines","compareLines","SERIES_TYPES","Y_AXES","seriesType","combinedRaw","sideExtent","COMBINED_FIELDS","combined","seriesAggregate","axisSides","lastEnd","on","typesOn","leftData","leftRaw","rightSeries","rightData","rightFixed","rightAxis","scalesOf","columnSeries","sc","weekCells","counts","colorExtent","HEX_ROW","HEATMAP_GRIDS","HEATMAP_COLORS","CELL_SHAPES","CELL","PER_GRID","gridOf","heatmapRaw","formats","dateFormat","weekdayName","hourName","cellMark","cell","col","hexPath","calendarGrid","cal","cells","weeks","months","dayNumber","firstWeek","lastMonth","calendarCells","rowLabels","colLabels","drawGrid","multi","cell_shape","built","wide","hoursGrid","pitch","geometry","cellPx","rowStep","color_min","color_max","fillOf","mine","byPos","pickedCell","head","heatmap","period_last","period_unit","heatmapFields","SPIRAL_TURNS","turnsAt","turn","spiralGeometry","turns","phase","ringWidth","hole","ringRadius","turnAngle","spiralPoint","stretchPath","u0","u1","ox","oy","ix","iy","spokes","everyHours","DEFAULT_TURNS","MAX_TURNS","SPIRAL_COLORS","VIEW","PER_SPIRAL","spiralOptions","ring_width","spiralRaw","drawSpiral","pieces","piecesOf","MAX_PX","spiralLayout","unitPx","pickedPiece","slack","atan2","turnUnder","stretches","stretchAt","spokeLabels","font","track","nowMark","turnCount","SPIRAL_FIELDS","spiral","placeholder","COUNT_MODES","MAX_BINS","SHOW_AS","BARS","binned","showAs","show_as","bars","bins","bin_width","weights","edgeCopy","pointWeights","start0","end0","binEdges","binIndex","binTotals","whole","heights","amountText","formatDuration","histogram","HISTOGRAM_FIELDS","overlap","si","edgeDecimals","pw","HIST_AXES_FIELDS","GHOST_MS","REFRESH_MS","loadGhost","statisticsGhost","historyGhost","ghostFor","redraw","done","ghostMarks","ghostPositions","tick","ghostTitle","ghostStyles","ch","codePointAt","fitStatusText","splitAbove","CX","CY","statusLines","lastBaseline","segs","bandSegments","arcs","tickmark","scaleTicks","hasTarget","labelR","fitted","valueY","tx","ty","lx","ly","ry","drawingBox","baseHalfWidth","statusInDial","statusBelow","partValues","apportion","degreesFor","len","segStyle","partColor","colorBy","shadeColor","ownColor","summary","counted","tabFor","partsLegend","percentText","partsLabel","styleKey","centreText","caption","checkChoice","checkNumber","checkBoolean","checkText","partsStyles","PICTO_COLOR_BY","perIcon","iconScale","partial","filled","iconFills","unitIcon","groupSize","pictograph","per_icon","group_size","unit_icon","SHAPES","PIE_CENTER","PIE_COLOR_BY","OUTER","sliceArcs","fractions","shares","cut","shrink","pie","shade_color","gradient","percent","show_percent","centerLabel","center_label","sliceAt","donut","slices","paint","separators","percents","counter","valueFontSize","radialStyle","sweepAngles","defaultTrack","defaultCropped","owner","gradientId","trackD","STROKE","cropped","solid","CSS","supports","canPaint","RINGS_CENTER","RINGS_COLOR_BY","rounded_ends","rings","radii","ringLayout","ringArc","stat","lowest","dialBottom","litCells","segmented","lit","CELLS","tank","tilesPerRow","BATTERY_BANDS","tile","batteryColor","level","BODY_W","BODY_H","glyph","levels","batteryColumns","WAFFLES","WAFFLE_COLOR_BY","waffleCounts","square","cellAt","waffle","waffles","headline","lead","FUNNEL_SHAPES","PERCENT_OF","FUNNEL_COLOR_BY","trapezoid","check","funnel","widths","stageWidths","stageEdges","stagePercents","percent_of","stages","stageColor","textTone","interactive","GROUP_LEVELS","parseGroupBy","validateGroups","splitGroup","fromId","charAt","groupPath","reg","areaId","floorId","floors","name_by_user","levelName","buildTree","rootName","leafValue","findNode","treeHeight","partition","axisAngle","polygonPoints","labelAnchor","entityOptionsForm","GROUP_FIELDS","groupBySchema","withGroupList","entityGroupsForm","HIERARCHY_LABELS","RADAR_SCALES","DEVICE_CLASS_NAMES","aqi","carbon_dioxide","carbon_monoxide","pm1","pm10","pm25","volatile_organic_compounds","volatile_organic_compounds_parts","largest","radarModel","ownAxis","axis","axisName","deviceClassName","radar","model","single","HALF_W","HALF_H","showValue","RADIUS","axisLabels","xy","POLAR_SCALES","POLAR_COLOR_BY","PALETTE_NAMES","polarArea","sliceLength","sliceAngles","sliceColor","ringLabels","drillEnabled","drill_down","validateDrill","drillTo","drillView","tree","drilledRoot","drillTarget","keydown","drillBar","parent","drillStyles","worst","s2","inset","TREEMAP_COLOR_BY","HEIGHT","treemapLayout","leaves","it","cw","rh","rw","squarify","HEAD","totalText","observers","leaf","leafColor","big","treemap","measure","treeFor","noReading","cellValue","reaches","pop","acceptFlows","flowValue","sankeyLayout","accepted","columnOf","pass","nodeColumns","byName","links","nodes","used","stacks","nodeWidth","outs","ins","textWidth","fitText","trimEnd","spreadLabels","idx","MEKKO_LABELS","segment","both","segmentText","marimekko","segment_labels","cellsOf","segments","marimekkoLayout","missing","categoryColors","SUNBURST_SHAPES","HIERARCHY_COLOR_BY","levelStrength","hierarchyTree","paintSpans","painted","strength","nodeLabel","SUNBURST_FIELDS","drawSunburst","geo","viewBox","sunburstGeometry","groupArc","sunburstLegend","swatch","legendGroup","drawIcicle","icicleGroup","sharedStyles","sunburst","icicle","niceTicks","extentOf","readingAt","MODES","BAR_COLORS","layoutBars","inputs","absolute","withZero","rowHeight","STACK_H","BAR_FIELDS","groupedBars","configOrder","inputsFor","showLegend","valueTexts","valueCh","valuePx","nameCh","negatives","negative","onLeft","textOut","rowTotal","placedSegment","entityMark","extra","markVars","markStyles","RANGE_MODES","bulletRow","rangeSegments","targetText","rangeFill","bullet","ranges","stick","withValue","verticalItem","horizontalItem","lollipop","STEP_MODES","firstReading","HEADROOM","placeBars","fromFirst","start_from_first","stepValue","invert","inverted","waterfallBars","signed","c0","c1","aria","entityAttrs","waterfall","MEASURES","SLOPE_COLOR_BY","INCREASE","STATISTICS_MS","directionColor","increase","way","epsilon","direction","periodText","changeText","relativeChange","rowsFor","byGroup","groupColors","middle","slopeEnds","groupOf","fromText","positions","leftY","rightY","ENDS","rowMarks","showNow","lh","lowHigh","labelledMarks","dumbbellRows","pointsFor","labelled","agoText","MARK_COLORS","hollow","markColor","optionsOf","show_now","dumbbell","nameW","renderRow","nowFill","rangeRaw","corners","RANGE_FIELDS","rangeArea","bandRuns","drawSeries","SPARK_KINDS","sparkKind","spark","columnUnit","sparkRaw","kinds","sparkline","sparkDomain","SPARK_FIELDS","sparklineStyle","withBar","showTarget","BASELINES","STREAM_ORDERS","stackable","toShares","lower","s1","s3","upper","widest","thickness","streamSamples","sampleBounds","binSeries","baselineOf","streamLabels","plotPx","plotW","amount","hit","colorName","streamTooltip","STREAM_FIELDS","FLOATING_HIDDEN","withoutFloating","streamgraph","stream_order","streamVariant","floating","peaks","tops","bottoms","insideOut","layersExtent","axisRaw","edgeX","streams","layerPath","edged","hoverPoints","UNDERNEATH","BODY","candlePeriod","unitOf","candleFrame","candleQuery","candles","candle","statisticsCandles","historyCandles","underValues","candleTooltip","mids","date","periodTitle","CANDLE_FIELDS","candlestick","underneath","candleExtent","up_color","down_color","under","VALUE_LEN","BAND","CATEGORY_FIELDS","categorySchema","validateCategoryOptions","value_min","value_max","categoryOptions","value_axis","value_grid","labelColumn","categoryGeometry","rowPx","bandPx","labelCount","numberScale","clockScale","niceHours","hoveredBand","stopCategoryHover","bandTooltip","categoryPlot","dense","categoryStyles","readingsOf","weighted","dotReadings","byValue","quantile","prevAt","prevV","summarize","bandwidth","iqr","squares","effective","densityCurve","ds","kde","peak","sampleReadings","SPLITS","HALF","violinOptions","split_by","dateName","groupsOf","ser","splitReadings","shapePath","outline","drawGroup","rain","boxAt","rectBetween","hx","hy","raincloud","dotOffset","densityAt","pctRow","VIOLIN_FIELDS_BASE","fieldsByShape","violin","bw","violinFields","probe","GAP","swarm","maxR","fitSwarm","minR","reachAt","swarmReach","smallest","tries","furthest","PLACE_BY","swarmOptions","placeBy","place_by","sized","size_by_value","ON_OFF","rowsOf","events","onEvents","hourOfDay","drawRow","sizeFor","bySize","tooltipRows","clock","SWARM_FIELDS","withoutValueRange","beeswarm","STRIP_MARKERS","markerValue","marker","dotPx","stripOffsets","STRIP_FIELDS","stripPlot","LINK_COLORS","NODE_W","nodeName","flowsOf","isMiddle","sits","sankey","link_color","pairs","loop","findCycle","gutter","anyAbove","spacing","PAD","drawSankey","receives","by","sankeyColors","dark","themes","darkMode","linkPath","two","labelText","chordLayout","chordFlows","ribbons","send","f2","arcTo","FONT","chord","ribbon_opacity","space","block","drawChord","ribbon","chordColors","ribbonPath","ax","ay","bx","ringPath","hovering","DEFAULT_STATE_COLORS","opening","closing","playing","charging","auto","heat_cool","heat","heating","preheating","cool","cooling","dry","drying","fan_only","fan","paused","buffering","detected","problem","triggered","unlocked","jammed","armed_home","armed_away","armed_night","armed_vacation","armed_custom_bypass","arming","cleaning","returning","QUIET_STATES","WORD_COLORS","padStart","isMeasurement","NOT_FOR_TIMELINE","TIMELINE_FIELDS","colorsOf","state_colors","suggestState","stateColorsEditor","fromEntries","withStateColors","BAR_LABELS","ROW_PX","HEADING_PX","stateText","quiet","wordHash","stateColor","ownColors","bar_labels","spanBox","barLabel","timeline","checkColors","measurement","frameBox","showNames","namesPx","timeAxis","xAxis","byIndex","timelineRows","HOVER_STEPS","spanAt","hoverLayer","CLIMATE_ATTRIBUTES","PARTS","ACTION_KINDS","KIND_OF","defrosting","actionKind","NOT_FOR_CLIMATE","CLIMATE_FIELDS","climateHistorySchema","ACTION_COLORS","BOOLEANS","COLORS","actionLabel","setPointText","setPoint","climate","validateClimateOptions","set_point","shading","shadeFan","shade_fan","climateOptions","system","unit_system","convert","temps","thermostat","attrs","climateRequests","climateData","temp","actionSpans","numbers","range2","highAt","rangePoints","rangeBandPath","holdRuns","setPointPath","SECTOR_COUNTS","sectorOf","degrees","sectorName","heldAt","maxHold","bandIndex","polarPoint","PERIOD_FIELDS","WIND_FIELDS","entityName","DEFAULT_WIND_PERIOD","windPeriod","windSectors","sectors","calmOption","calm","RAMP","numberText","rangeLabel","shareText","fine","setHover","sector","BOX","roseSvg","rose","petals","acc","petalPath","ringAngle","bestLength","ringLabelAngle","compass","R0","readout","roles","prevailing","speedText","meanSpeed","strongest","windRoseStyle","sectorsAsNumber","note","windRoles","statisticsQuery","rowMs","dirPoints","speedPoints","loadWind","noData","speedRole","speedUnit","speedDefaults","speedBands","pairWind","calmMs","speedMs","speedSum","sample","windRose","ringSteps","speedInfo","roseTooltip","DAY_CLOCK_FIELDS","CENTER","STATE_DOMAINS","domainOf","ringKind","numeric","attributeOf","aggregateOf","stateWord","formatted","toLocaleLowerCase","minuteLabel","dayClock","bucket","clockPeriod","clockDays","daysSoFar","hasData","totalMs","activeSet","stateIntervals","Uint16Array","averageDay","timesText","perSlot","today","foldSlots","additive","barHeights","hovers","hoverOf","tickNextMinute","running","tipText","stateLabel","nowText","firstFound","maxBig","maxSmall","small","labelY","dial","minHole","want","tz","stateMarks","barMarks","focusable","twelve","dialLabels","tickMarks","major","dialText","LABEL_R","hand","day_clock","bucketAsNumber","stopTick","CYCLES","monthNumber","fold","cycleData","cycle","panelMean","DEFAULT_WEEKS","day_of_week","hour_of_day","day_of_month","MAX_WEEKS","DEFAULT_SOURCE","PW","PH","PER_PANEL","cycleOptions","cycleRaw","hourOf","hourMinute","weekdayOf","long","panelName","pointName","lineNote","drawCycle","cycleColumns","panelPx","pickedPanel","pickedSlot","spanName","panelLines","CYCLE_FIELDS","cyclePlot","parseBound","soft","trendDomain","fromZero","minRange","padLo","padHi","placeBuckets","buckets","checkAggregate","TREND_FIELDS","bool","bound","stringBounds","GRAPH_KINDS","FILL_KINDS","SHOW_MODES","HEADER_ALIGN","ICON_ALIGN","STATE_ALIGN","TRANSITIONS","showMode","fillKind","trendOptions","graph","pointsPerHour","points_per_hour","barSpacing","bar_spacing","transition","color_transition","extrema","value_factor","alignHeader","align_header","alignIcon","align_icon","alignState","align_state","font_size","fontSizeHeader","font_size_header","color_name","colorValue","color_value","iconImage","icon_image","min_range","secondary","y_min_secondary","y_max_secondary","min_range_secondary","integer","trendSeries","perHour","cardAggregate","fixed_value","bucketSeries","banded","hasBands","graphed","show_graph","dataExtent","gradientDefs","scaled","bandStops","whenText","infoRow","chip","trend","gridOptions","min_columns","min_rows","trendSchema","form","numericBounds","entitySchema","graphedSeries","nameStyle","headerIcon","valueParts","showPrimary","secondaries","show_state","show_indicator","st","show_legend","cardName","seriesName","show_legend_state","ratio","show_line","show_fill","show_points","lineSeries","guide","graphArea","STYLE_GROUPS","isChart","STYLES","polar_area","grouped_bars","range_area","strip_plot","wind_rose","cycle_plot","NUMBER_SELECTOR","limitMode","CdLimitField","_mode","_modeSelectorFor","defaultLabel","_modeSelector","_currentMode","_modeChanged","_numberChanged","_entityChanged","LIMITS","CdEntitiesEditor","_computeLabel","_expanded","_asConfig","_set","_move","expanded","moveEntity","_remove","removeEntity","_toggle","_add","addEntity","_formChanged","_rowLabel","_form","_renderOverrides","entityAttributeSchema","chartFields","transformFields","conditionFields","_renderRow","EXPORT_FIELDS","HIERARCHY_STYLES","GAUGE_STYLES","loadHaComponents","loadCardHelpers","helpers","createCardElement","getConfigElement","ChartdeckCardEditor","_label","_computeRuleLabel","setConfig","_config","_commit","fireConfigChanged","_panel","_subChanged","_chartFields","_transformFields","anyDerivative","bySchema","byKey","option","existing","withDerivativeFields","anyCumulative","billing","anyBilling","withCumulativeFields","renderEntities","_ruleForm","_ruleData","_ruleChanged","renderLimits","renderColours","_toggles","_firstEntityUnit","_selectStyle","concat","renderStyle","gaugeSchema","renderChart","cardConditionFields","renderDisplay","chart","displaySchema","checked","renderActions","BADGE_FIELDS","BADGE_ACTION_FIELDS","BADGE_LIMITS","ChartdeckBadgeEditor","_optionChanged","show_icon","cacheKey","required","icon_entity","badgeSchema","BADGE_STYLES","ChartdeckBadge","_style","_hours","_watched","getStubConfig","_type","show_name","normalizeBadge","_raw","_detach","_item","_spark","request","sparkPath","SPARK_W","SPARK_H","_visual","badgeColor","badges","customBadges","description","preview","documentationURL","COLUMN_GAP","tiles","columnsThatFit","ChartdeckCard","_matched","_items","_detachers","_readyScheduled","_readyAt","_redraw","isBattery","normalized","validateExport","_disconnectStyle","_styleName","_legend","_count","_contentHeight","chrome","perRow","getCardSize","getGridOptions","isStatic","matchMedia","_scheduleReady","markReady","performance","requestAnimationFrame","_syncActions","menu","offsetHeight","padTop","paddingTop","paddingBottom","centred","offsetTop","placeExport","stopExport","detach","dataset","_renderEntity","energyConfig","diff","sortEntities","columnsTemplate","registry","customCards"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,33,58]}
\ No newline at end of file
diff --git a/dist/chartdeck-card.nl-BQI5YeYB.js b/dist/chartdeck-card.nl-BQI5YeYB.js
new file mode 100644
index 0000000..2bcce94
--- /dev/null
+++ b/dist/chartdeck-card.nl-BQI5YeYB.js
@@ -0,0 +1,2 @@
+const e="Entiteit niet gevonden",t="Niet beschikbaar",r="Voeg in de editor een entiteit toe om te beginnen.",o="Er komen nu geen entiteiten overeen.",i="Geen van deze entiteiten is beschikbaar.",a="Entiteiten",n="Stijl",_="Grafiek",d="Balken",l="Meters",s="Geschiedenisgrafieken",g="Delen van een totaal",m="Vergelijkingen",u="Verdelingen",c="Toon de laatste",p="Eenheid",h="Uren",k="Dagen",b="Weken",v="Maanden",y="Metingen uit",w="Geschiedenis (elke wijziging)",f="Langetermijnstatistieken",j="Omrekening",x="Geen (metingen zoals ze zijn)",z="Veranderingssnelheid",G="Snelheid per",E="Seconde",V="Minuut",L="Uur",A="Dag",S="Afvlakken over metingen",N="Afvlakken over tijd (bijv. 15min; in plaats van metingen)",T="Huidige waarden",K="Energiedashboard",D="Energiestromen (niets aangevinkt: net, zon en batterij)",W="Teruglevering en batterij laden onder de as",B="Lijnvorm",H="Vloeiend",P="Recht",R="Trappen",M="Kleur",O="Eén kleur per entiteit",U="Per kleurband",C="Waarden bij de punten tonen",I="Lijnkleur",Z="Gestreept",q="Grenzen",F="Kleuren",J="Weergave",Y="Acties",Q="Titel",X="Balk",$="Dun",ee="Gesegmenteerd",te="Tank",re="Batterijraster",oe="Batterijniveaus: {levels}",ie="Ring",ae="Naald",ne="Boog",_e="Hoeken zijn in graden, met de klok mee vanaf boven: -90 is links, 90 rechts. Laat ze leeg voor de gebruikelijke vorm van de stijl.",de="Beginhoek",le="Eindhoek",se="In het midden",ge="De waarde",me="Het label van de kleurband",ue="De naam",ce="Eigen tekst",pe="Niets",he="Tekst",ke="Getallen op de schaal",be="Recent bereik achter de meter",ve="Uit",ye="Afgelopen 24 uur",we="Afgelopen 7 dagen",fe="Afgelopen 24 uur: {min} tot {max}, gemiddeld {mean}",je="Afgelopen 7 dagen: {min} tot {max}, gemiddeld {mean}",xe="Naam tonen",ze="Waarde tonen",Ge="Pictogram tonen",Ee="Doel tonen",Ve="Legenda tonen",Le="Kolommen",Ae="Sorteren",Se="Zoals opgegeven",Ne="Laagste eerst",Te="Hoogste eerst",Ke="Decimalen",De="Eenheid",We="Animeren",Be="Niet-beschikbare entiteiten verbergen",He="Exportmenu",Pe="Toon maximaal",Re="Toon ook elke entiteit die overeenkomt",Me="Nieuwe apparaten verschijnen zonder de kaart te bewerken. Kies er meerdere van één soort om op een van hen te matchen; verschillende soorten moeten allemaal overeenkomen.",Oe="Weglaten",Ue="Gevonden entiteiten worden weggelaten als ze met een van deze overeenkomen.",Ce="Apparaatklasse",Ie="Ruimtes",Ze="Verdiepingen",qe="Labels",Fe="Domeinen",Je="Entiteiten",Ye="Tikactie",Qe="Vasthoudactie",Xe="Dubbeltikactie",$e="Entiteit",et="Weergave",tt="Waarde met pictogram",rt="Minigrafiek",ot="Ring",it="Smalle balk",at="Attribuut (in plaats van de status)",nt="Naam",_t="Uren geschiedenis",dt="Naam tonen",lt="Pictogram tonen",st="Pictogram",gt="Minimum",mt="Maximum",ut="Eenheid",ct="Decimalen",pt="Kleur zonder banden",ht="Kleurbanden",kt="De badge krijgt de kleur van de band waarin de waarde valt, net als op de kaart.",bt="Acties",vt="Tikactie",yt="Vasthoudactie",wt="Dubbeltikactie",ft="Attribuut (in plaats van de status)",jt="Naam",xt="Pictogram",zt="Minimum",Gt="Maximum",Et="Doel",Vt="Geen",Lt="kaartinstelling",At="Standaard ({value})",St="Getal",Nt="Entiteit",Tt="Voorinstelling",Kt="Batterij (laag is slecht)",Dt="Verbruik (hoog is slecht)",Wt="Temperatuur",Bt="Geen",Ht="Aangepast",Pt="Vanaf",Rt="Beginnen bij een entiteit",Mt="Beginnen bij een getal",Ot="Begint bij deze entiteit",Ut="Kleur",Ct="CSS-kleur",It="Label",Zt="Pictogram",qt="Pictogrammen kleuren naar hun band",Ft="Primair",Jt="Groen",Yt="Oranje",Qt="Rood",Xt="Blauw",$t="Paars",er="Grijs",tr="Aangepast…",rr="Band toevoegen",or="Band verwijderen",ir="Entiteit toevoegen",ar="Omhoog",nr="Omlaag",_r="Entiteit verwijderen",dr="Opties tonen",lr="Opties verbergen",sr="{entity} (niet gevonden)",gr="Kleuren",mr="{label} om {time}",ur="Richting",cr="Horizontaal",pr="Verticaal",hr="Waardelabels",kr="Lijnen bij elk waardelabel",br="Laagste getoonde waarde",vr="Hoogste getoonde waarde",yr="Mediaan",wr="Middelste helft",fr="Laagste – hoogste",jr="Metingen",xr="Tik op een groep om te zien waaruit die bestaat",zr="{label}. Toon waaruit dit bestaat",Gr="Terug naar {name}",Er="Alle",Vr="Hoog",Lr="Laag",Ar="Gem.",Sr="Hoogste meting markeren",Nr="Laagste meting markeren",Tr="Gemiddelde",Kr="Niet tonen",Dr="Lijn over de grafiek",Wr="Alleen het getal",Br="Hoogste, laagste en gemiddelde markeren",Hr="{name}: {value}, {sigma} van normaal",Pr="boven {limit}",Rr="onder {limit}",Mr="Waarden ver van normaal markeren",Or="Venster (30min, 2h, 1d; auto: een twaalfde van de periode)",Ur="Vanaf hoe ver markeren, in standaardafwijkingen",Cr="Kleur van de markeringen",Ir="Normale band arceren",Zr="Vorige periode",qr="Volgende periode",Fr="Terug naar {label}",Jr="Vandaag",Yr="Gisteren",Qr="Deze week",Xr="Vorige week",$r="Deze maand",eo="Vorige maand",to="Dit jaar",ro="Vorig jaar",oo="Afgelopen uur",io="Afgelopen {n} uur",ao="Afgelopen dag",no="Afgelopen {n} dagen",_o="Afgelopen 7 dagen",lo="Afgelopen {n} weken",so="Afgelopen maand",go="Afgelopen {n} maanden",mo="Tinten van één kleur",uo="Tintkleur (paletnaam of CSS-kleur)",co="Elk aandeel als percentage tonen",po="Totaal",ho="Gemiddelde",ko="Niets",bo="Totaal",vo="Gemiddelde",yo="{style} van {names}",wo="Spreiding",fo="Bellen",jo="Langs de onderkant",xo="De eerste entiteit",zo="Tijd",Go="Puntgrootte (px)",Eo="Spreiding (px)",Vo="Kleinste bel (px)",Lo="Grootste bel (px)",Ao="Puntkleur",So="Labels langs de onderkant",No="Voeg een tweede entiteit toe. De eerste komt langs de onderkant, de andere langs de zijkant.",To="Voeg drie entiteiten toe: één langs de onderkant, één langs de zijkant en één voor de grootte van elke bel.",Ko="Horizontaal",Do="Grootte",Wo="Totaal",Bo="Laagste horizontale waarde",Ho="Hoogste horizontale waarde",Po="Zoom herstellen",Ro="Getoond: {from} tot {to}",Mo="Getoond deel van de grafiek",Oo="Zoomen en verschuiven (knijpen, Ctrl + scrollen of slepen)",Uo="Overzichtsstrook onder de grafiek",Co="Annotaties",Io="Soort",Zo="Lijn bij een waarde",qo="Gearceerde band van waarden",Fo="Markeringen op vaste tijden",Jo="Markeringen bij statuswijziging van een entiteit",Yo="Label bij een meting",Qo="Lijn",Xo="Band",$o="Tijden",ei="Statuswijzigingen",ti="Puntlabel",ri="Annotatie toevoegen:",oi="Waarde (een getal of een entiteit)",ii="Vanaf (een getal of een entiteit; leeg voor de onderkant)",ai="Tot (een getal of een entiteit; leeg voor de bovenkant)",ni="Tijden: 07:00 voor elke dag, of 2026-10-28 07:00 (gescheiden door komma's)",_i="Entiteit",di="Reeks (leeg voor de eerste)",li="Status (leeg voor elke wijziging)",si="Arceren zolang in deze status",gi="Meting",mi="Hoogste",ui="Laagste",ci="Laatste",pi="Eerste",hi="Label",ki="Kleur",bi="Gestreept",vi="De geschiedenis van de entiteit volgen (getrapt)",yi="Arceren",wi="Niets",fi="Boven de lijn",ji="Onder de lijn",xi="Arceerkleuren volgens de waarde van de lijn (optionele banden)",zi="Annotatie verwijderen",Gi="Ernstbanden achter de grafiek arceren",Ei="Periode",Vi="De afgelopen…",Li="Vandaag",Ai="Deze week",Si="Deze maand",Ni="Dit jaar",Ti="Perioden terug (0 is de huidige)",Ki="Tekenen tot",Di="Nu",Wi="Het einde van de periode",Bi="Knoppen voor vorige en volgende tonen",Hi="Metingen groeperen per",Pi="Niet groeperen",Ri="Uur",Mi="Dag",Oi="Week",Ui="Maand",Ci="Combineren met",Ii="{name}, {offset}",Zi="{n} u eerder",qi="{n} dagen eerder",Fi="{n} weken eerder",Ji="{n} maanden eerder",Yi="{n} jaar eerder",Qi="Vergelijken met eerdere periodes (vaag erachter getekend)",Xi="Kleur van de eerdere periodes",$i="Grijs",ea="Vervaagde reekskleur",ta="Gemiddelde",ra="Som",oa="Laagste",ia="Hoogste",aa="Eerste",na="Laatste",_a="Verandering (oplopende meters)",da="Omrekening",la="Geen (metingen zoals ze zijn)",sa="Lopend totaal",ga="Lopend totaal begint opnieuw",ma="Nooit (vanaf de linkerrand)",ua="Elke dag",ca="Elke week",pa="Elke maand",ha="Elke maand op de factuurdag",ka="Factuurdag van de maand (1–28)",ba="Tijdlabels",va="Waardelabels",ya="Aslabels",wa="Naast de grafiek",fa="Over de grafiek",ja="Horizontale lijnen",xa="Verticale lijnen",za="Laagste getoonde waarde",Ga="Hoogste getoonde waarde",Ea="Waardeschaal",Va="Gelijke stappen",La="Logaritmisch (machten van tien)",Aa="Waarden tonen bij aanwijzen of aanraken",Sa="Lijndikte (px)",Na="Punt bij elke meting",Ta="Boven de andere lijnen tekenen",Ka="Alleen tonen zolang deze entiteit",Da="…in status is (gescheiden door komma's)",Wa="…boven is",Ba="…onder is",Ha="Alle reeksen alleen tonen zolang deze entiteit",Pa="…in status is (gescheiden door komma's)",Ra="…boven is",Ma="…onder is",Oa="Vage lijn van de verborgen metingen",Ua="Strook die toont wanneer het gold",Ca="Getoond zolang {condition}",Ia="Nu-lijn",Za="Uit",qa="Alleen de lijn",Fa="Lijn en de tijd",Ja="Lijn en aftellen tot de volgende vaste tijd",Ya="{label} over {duration}",Qa="Volgende over {duration}",Xa="Compact",$a="Namen en waarden",en="Boven de grafiek",tn="Over de grafiek",rn="Verborgen",on="Tik op een naam om die te verbergen of te tonen",an="Welke metingen",nn="Alle (zoveel als passen)",_n="De laatste",dn="Hoogste en laagste",ln="Eerste en laatste",sn="Labelpositie",gn="Boven pieken, onder dalen",mn="Boven",un="Onder",cn="Op het punt",pn="Labels laten overlappen",hn="Synchronisatiegroep (grafieken met dezelfde naam delen de aanwijzer en periodestappen)",kn="Een kleine grafiek per entiteit",bn="Waardeschaal",vn="Gelijk als de eenheden overeenkomen",yn="Gelijk voor elke grafiek",wn="Elke grafiek een eigen schaal",fn="Kolommen (leeg past op de kaart)",jn="Verwachting",xn="{name} verwachting",zn="Verwachting",Gn="Verwachtingsentiteit (tekent de verwachting gestippeld vanaf nu)",En='Attribuut (leeg: weersverwachting of "forecast")',Vn="Sleutel van de waarde (leeg: automatisch)",Ln="Sleutel van de tijd (leeg: automatisch)",An="Weersverwachting (leeg: per uur)",Sn="Per uur",Nn="Per dag",Tn="Twee keer per dag",Kn="Waarden vermenigvuldigen met (leeg: 1)",Dn="Verwachtingen zo ver vooruit tonen",Wn="Instelpunt tonen",Bn="Arceren tijdens verwarmen of koelen",Hn="Arceren als alleen de ventilator draait",Pn="Temperatuurkleur",Rn="Kleur instelpunt",Mn="Kleur verwarmen",On="Kleur koelen",Un="Dagen (meer dan 1 toont de gemiddelde dag)",Cn="Tijd aan",In="De huidige tijd",Zn="Niets",qn="Eén balk per",Fn="15 minuten",Jn="30 minuten",Yn="Uur",Qn="Automatisch (verandering voor meters, anders gemiddelde)",Xn="Kleur",$n="Telt als aan (leeg: on, open, heating, home…)",e_="Voeg eerst hierboven een entiteit toe.",t_="Groeperen per",r_="Verdieping",o_="Ruimte",i_="Apparaat",a_="Label",n_='Eigen groep (gaat voor "Groeperen per"; "Begane grond / Keuken" voor twee niveaus)',__="Tekst op de balken",d_="Status",l_="Duur",s_="Status en duur",g_="Geen",m_="Legenda van statussen",u_="Boven de grafiek",c_="Verborgen",p_="Statuskleuren",h_="Een paletnaam (amber, green, blue, red, purple, grey, primary) of een willekeurige CSS-kleur.",k_="Status",b_="Kleur",v_="Statuskleur toevoegen",y_="Verwijderen",w_="Groep (rijen met dezelfde groep delen een kop)",f_="Punten per uur (0 tekent elke meting)",j_="Grafiek",x_="Lijn",z_="Balken",G_="Geen (alleen waarde)",E_="Vulling onder de lijn",V_="Massief",L_="Vervagend",A_="Geen",S_="Punten op de lijn",N_="Bij aanwijzen",T_="Altijd",K_="Nooit",D_="Labels voor hoogste en laagste",W_="Bij aanwijzen",B_="Altijd",H_="Nooit",P_="Grafiekhoogte (per 500 px breedte)",R_="Ruimte tussen balken (px)",M_="Bandkleuren",O_="Overvloeien",U_="Wisselen bij elke band",C_="Laagste en hoogste tonen",I_="Gemiddelde tonen",Z_="Legenda (twee of meer entiteiten)",q_="Laagste waarde (~ voor zacht)",F_="Hoogste waarde (~ voor zacht)",J_="Kleinste getoonde bereik",Y_="Rechteras laagste (~ voor zacht)",Q_="Rechteras hoogste (~ voor zacht)",X_="Rechteras kleinste bereik",$_="Schalen met 10 tot de macht",ed="Naam en pictogram",td="Verspreid",rd="Links",od="Rechts",id="Midden",ad="Pictogram",nd="Rechts van de naam",_d="Links van de naam",dd="Naast de waarde",ld="Waarde",sd="Links",gd="Rechts",md="Midden",ud="Grootte waarde (%)",cd="Grootte naam (px)",pd="Naam kleuren",hd="Waarde kleuren",kd="Pictogram kleuren",bd="Geen achtergrond (binnen een andere kaart)",vd="Afbeelding in plaats van het pictogram (URL)",yd="Waarde onder de aanwijzer tonen",wd="As",fd="Links",jd="Rechts (eigen schaal)",xd="Combineren met",zd="Huidige waarde als vlakke lijn tekenen",Gd="Waarde naast de hoofdwaarde tonen",Ed="Gekleurde stip op basis van de waarde",Vd="In de grafiek",Ld="Lijn",Ad="Vulling",Sd="Punten",Nd="In de legenda",Td="Waarde in de legenda",Kd="Richtingen",Dd="4 (N, E, S, W)",Wd="8 (N, NE, E…)",Bd="16 (N, NNE, NE…)",Hd="Windstil onder (leeg: 0,5 m/s, of hetzelfde in km/h, mph of knopen)",Pd="De eerste entiteit is de windrichting, in graden of windstreken zoals SW. De tweede is de windsnelheid: zonder die tonen de bladen alleen hoe vaak de wind uit elke richting kwam.",Rd="Richting: {direction}. Snelheid: {speed}.",Md="geen",Od="Langetermijnstatistieken geven per uur de gemiddelde richting. Dat klopt rond het noorden alleen als de sensor de richting als hoek vastlegt (statusklasse measurement_angle); anders wordt een uur dat tussen NNW en NNO schommelt gemiddeld zuid. Geschiedenis is exact.",Ud="Vlak",Cd="Stapelen",Id="Niet stapelen",Zd="Op elkaar",qd="Tot 100 %",Fd="Kleur onder nul",Jd="Bijenzwerm",Yd="Plaats elk punt op",Qd="Zijn waarde",Xd="Het tijdstip waarop het gebeurde",$d="Grotere punten voor grotere waarden",el="{n} metingen",tl="{n} keer aan",rl="Getoonde punten",ol="Geen metingen",il="Geen verandering: {value}",al="De hele periode gelijk",nl="Vroegste – laatste",_l="Laagste – hoogste",dl="Stripdiagram",ll="Mediaan {value}",sl="Gemiddelde {value}",gl="Gemiddelde",ml="Lijn in elke rij op",ul="De mediaan",cl="Het gemiddelde",pl="Geen lijn",hl="Spreiding over de rij",kl="Kleur",bl="Boxplot",vl="Boxplot van {names}",yl="Hoogste",wl="Bovenste kwartiel",fl="Mediaan",jl="Onderste kwartiel",xl="Laagste",zl="Gemiddelde",Gl="Metingen",El="Uitschieters",Vl="Snorharen reiken tot",Ll="1,5 × boxhoogte (uitschieters als punten)",Al="De laagste en hoogste",Sl="Elke meting als punt tonen",Nl="Boxkleur",Tl="Bullet",Kl="Bereiken achter de balk",Dl="Grijstinten",Wl="Kleuren van de kleurbanden",Bl="doel {target}",Hl="{style}-grafiek van {names}",Pl="Candlestick",Rl="Eén kaars per",Ml="Entiteiten eronder: metingen combineren met",Ol="Kleur bij stijging",Ul="Kleur bij daling",Cl="Andere entiteiten eronder tekenen als",Il="Kolommen",Zl="Een lijn",ql="Open",Fl="Hoog",Jl="Laag",Yl="Slot",Ql="Week van {date}",Xl="Klimaat",$l="Instelpunt",es="{low} – {high}",ts="{name} is geen thermostaat. Kies een klimaatentiteit.",rs="Verwarmen",os="Voorverwarmen",is="Koelen",as="Ontdooien",ns="Drogen",_s="Ventilator",ds="Inactief",ls="Uit",ss="Kolom",gs="Automatisch",ms="Laagste tot hoogste per kolom",us="Afgeronde uiteinden",cs="Waarden op de kolommen tonen",ps="Foutbalken (spreiding per kolom)",hs="Geen",ks="Gemiddelde ± één standaardafwijking",bs="Laagste en hoogste",vs="95%-betrouwbaarheidsinterval van het gemiddelde",ys="{value} ({low} – {high})",ws="Kleur",fs="Gecombineerd",js="Tekenen als",xs="Lijn",zs="Kolommen",Gs="Vlak",Es="Waardeas",Vs="Automatisch (per eenheid)",Ls="Links",As="Rechts",Ss="Combineren met",Ns="Zoals de kaart",Ts="Gemiddelde",Ks="Som",Ds="Laagste",Ws="Hoogste",Bs="Eerste",Hs="Laatste",Ps="Verandering (oplopende meters)",Rs="24-uursklok",Ms="één keer",Os="{n} keer",Us="{text} per dag",Cs="{total} · drukst {time}",Is="piek {value} om {time}",Zs="{name} {state}",qs="{label} per dag",Fs="Niets vastgelegd",Js="Nu",Ys="aan",Qs="Gemiddelde dag · afgelopen {n} dagen",Xs="op {on} van {of} dagen",$s="{duration} tot nu toe",eg="{from} – {to}",tg="gemiddeld {value}",rg="Cyclusdiagram",og="Gemiddelde van elk uur over {n} weken",ig="Elk uur, dag na dag, over {n} weken",ag="Elke dag van de maand, maand na maand, over {n} weken",ng="Gemiddelde van het paneel",_g="Gemiddelde {name}",dg="Eén paneel per",lg="Dag van de week (de uren)",sg="Uur van de dag (dag na dag)",gg="Dag van de maand (maand na maand)",mg="Weken",ug="Halter",cg="Vergelijken",pg="Laagste en hoogste in de periode",hg="Begin van de periode en nu",kg="Doel en nu",bg="Huidige waarde markeren",vg="Laag",yg="Hoog",wg="Nu",fg="Doel",jg="Een uur geleden",xg="{n} uur geleden",zg="Een dag geleden",Gg="{n} dagen geleden",Eg="Een week geleden",Vg="{n} weken geleden",Lg="Een maand geleden",Ag="{n} maanden geleden",Sg="Geen waarde",Ng="Trechter",Tg="Vorm",Kg="Trechter (eerste fase bovenaan)",Dg="Piramide (eerste fase onderaan)",Wg="Percentages",Bg="Aandeel van de eerste fase",Hg="Aandeel van de vorige fase",Pg="Niet tonen",Rg="Kleur",Mg="Eén kleur per entiteit",Og="Per kleurband",Ug="{style} van {names}",Cg="Gegroepeerde balken",Ig="Balken",Zg="Naast elkaar",qg="Gestapeld",Fg="Gestapeld tot 100 %",Jg="Kleur",Yg="Eén kleur per reeks",Qg="Per kleurband",Xg="Rij",$g="Reeks",em="Balkkleur",tm="Staafdiagram van {names}",rm="Heatmap",om="Heatmap van {name}",im="Gemiddelde over dagen",am="Geen metingen",nm="Indeling",_m="Uur per weekdag",dm="Kalender (een dag per cel)",lm="Vloeiende schaal",sm="Cellen",gm="Vierkant",mm="Afgerond",um="Zeshoek",cm="Laagste kleur bij",pm="Hoogste kleur bij",hm="Legenda",km="Spiraal",bm="Spiraal van {name}, {n} slagen",vm="{n} dagen, één slag per dag",ym="{n} weken, één slag per week",wm="Oudste in het midden, nieuwste buiten",fm="Eén slag per",jm="Dag",xm="Week",zm="Slagen",Gm="Ringbreedte",Em="Histogram",Vm="Tellen",Lm="Tijd in elk bereik",Am="Metingen in elk bereik",Sm="Tonen als",Nm="Aandeel van het geheel (%)",Tm="Uren of metingen",Km="Aantal klassen (leeg: automatisch)",Dm="Klassebreedte (gaat voor het aantal)",Wm="Twee of meer entiteiten",Bm="Balken naast elkaar",Hm="Balken over elkaar",Pm="Waardelabels langs de onderkant",Rm="{n} metingen",Mm="1 meting",Om="Lijn",Um="Geschiedenis laden…",Cm="Kan geschiedenis niet laden: {error}",Im="Instellingen van het energiedashboard laden…",Zm="Kan de instellingen van het energiedashboard niet lezen: {error}",qm="In het energiedashboard is nog geen van deze stromen ingesteld.",Fm="Netafname",Jm="Netteruglevering",Ym="Zon",Qm="Batterij ontladen",Xm="Batterij laden",$m="Gas",eu="Water",tu="Apparaten",ru="Huis",ou="Niet gemeten verbruik",iu="Thuis verbruikt",au="Geen metingen in deze periode.",nu="Tik om te verbergen of te tonen. Houd vast om alleen deze te tonen.",_u="Alle reeksen zijn verborgen. Tik op een naam om die weer te tonen.",du="Exporteren",lu="Opslaan als PNG",su="afbeelding, 2×",gu="Opslaan als SVG",mu="vector",uu="CSV kopiëren",cu="getekende waarden",pu="YAML kopiëren",hu="configuratie van deze kaart",ku="Gekopieerd",bu="Opgeslagen",vu="Als bestand opgeslagen: het klembord is hier niet beschikbaar",yu="Exporteren lukt niet in deze browser",wu="Niets boven nul om op een logaritmische schaal te tekenen.",fu="Lolly",ju="Pictogrammen",xu="Pictogram (elke entiteit kan een eigen hebben)",zu="Elk pictogram staat voor (leeg: automatisch)",Gu="Pictogrammen per groep (0: geen groepen)",Eu="Pictogram deels vullen voor breuken",Vu="Taart / donut",Lu="Vorm",Au="Donut",Su="Taart",Nu="Regel onder het totaal",Tu="Ruimte tussen segmenten",Ku="Kleurverloop",Du="Polair vlak",Wu="Schaal",Bu="Eén schaal voor alle, van 0 tot de grootste waarde",Hu="Elk segment van het minimum tot het maximum van zijn entiteit",Pu="Kleur",Ru="Eén kleur per entiteit",Mu="Tinten van één kleur, donkerder voor meer",Ou="Per kleurband",Uu="Kleur voor tinten",Cu="Polair vlakdiagram van {names}",Iu="Radar",Zu="Schaal",qu="Elke as van het minimum tot het maximum van zijn entiteit",Fu="Eén schaal voor alle, van 0 tot de grootste waarde",Ju="Vormen vullen",Yu="Asnaam (entiteiten met dezelfde asnaam liggen in alle groepen op één lijn)",Qu="Radardiagram van {names}",Xu="Overig",$u="Bereikvlak",ec="Gemiddelde als lijn tekenen",tc="Kleur",rc="Ringen",oc="Beginhoek (0 is boven)",ic="Afgeronde uiteinden",ac="Sankey (stroom)",nc="Stromen kleuren naar",_c="Waar ze vandaan komen, of waar ze heen gaan na een middelste knooppunt",dc="Waar ze vandaan komen",lc="Waar ze heen gaan",sc="Stroomt van",gc="Stroomt naar",mc="Stroomkleur",uc="Stroomdiagram: {flows}",cc="{from} naar {to} {value}",pc='Geef elke entiteit in de opties een "Stroomt van" en een "Stroomt naar".',hc="Er stroomt nu niets.",kc="Er stroomde niets in deze periode.",bc="Koorden (stromen in een cirkel)",vc="Ruimte tussen knooppunten",yc="Dekking van de linten",wc="Koordendiagram: {flows}",fc="Helling",jc="Vergelijken",xc="De meting toen en nu",zc="Hoeveel het per periode steeg (meters)",Gc="Omhoog of omlaag",Ec="Per groep",Vc="Een stijging is",Lc="Slecht (rood)",Ac="Goed (groen)",Sc="Groep",Nc="Nu",Tc="{n} {unit} geleden",Kc="Een {unit} geleden",Dc="Vorige {n} {unit}",Wc="Vorige {unit}",Bc="Afgelopen {n} {unit}",Hc="Afgelopen {unit}",Pc="uur",Rc="uur",Mc="dag",Oc="dagen",Uc="week",Cc="weken",Ic="maand",Zc="maanden",qc="{name}, {from} tot {to}",Fc="geen meting",Jc="Sparklines",Yc="Sparkline",Qc="Lijn",Xc="Vlak",$c="Kolommen",ep="Balk onder de naam en waarde",tp="Kleur",rp="Trend van {name}",op="Streamgraph",ip="Vorm",ap="Streamgraph (golvend)",np="Gecentreerd",_p="Aandeel van het totaal (100 %)",dp="Gestapeld vanaf nul",lp="Volgorde",sp="Grootste in het midden",gp="Zoals opgegeven, eerste onderaan",mp="Namen op de stromen",up="Randen",cp="Totaal",pp="Sunburst",hp="IJspegel",kp="Vorm",bp="Volle cirkel",vp="Halve cirkel",yp="Kleur",wp="Eén kleur per groep",fp="Per kleurband",jp="Totaal",xp="Overig",zp="Niets te tonen: geen entiteit heeft een waarde boven nul.",Gp="Geen meting:",Ep="Sunburst van {names}",Vp="IJspegeldiagram van {names}",Lp="Statustijdlijn",Ap="Geen statussen vastgelegd in deze periode.",Sp="gedurende {duration}",Np="Nu",Tp="Metingen, geen statussen: een lijngrafiek past hier beter",Kp="Treemap",Dp="Kleur",Wp="Eén kleur per groep",Bp="Per kleurband",Hp="Treemap van {names}",Pp="{value} in totaal",Rp="Niets te tonen: geen entiteit heeft een waarde boven nul.",Mp="Geen meting:",Op="Overig",Up="Marimekko",Cp="Tekst op elk deel",Ip="Aandeel in de kolom",Zp="Waarde",qp="Aandeel en waarde",Fp="Geen",Jp="Kolom (groep)",Yp="Categorie",Qp="Kleur van de categorie",Xp="Marimekko-grafiek, kolommen: {columns}",$p="Trend",eh="Laag",th="Gemiddelde",rh="Hoog",oh="Viool",ih="Viool",ah="Regenwolk (halve viool, box en metingen)",nh="Box met de mediaan en middelste helft",_h="Afvlakking (in de eenheid van de entiteit, leeg voor automatisch)",dh="Eén vorm per",lh="Entiteit",sh="Entiteit en dag",gh="Entiteit en week",mh="Entiteit en maand",uh="mediaan {value}",ch="Geen metingen",ph="Regenwolk",hh="Wafel",kh="Wafels",bh="Eén, verdeeld over de entiteiten",vh="Eén per entiteit, naast elkaar",yh="Eerste aandeel in grote letters tonen",wh="Waterval",fh="Elke stap is",jh="Hoeveel het in de periode veranderde",xh="De huidige waarde",zh="Beginnen bij de meting van de eerste entiteit aan het begin van de periode",Gh="Totaal aan het einde tonen",Eh="Telt af (een stijging hiervan is een daling van het totaal)",Vh="Begin",Lh="Einde",Ah="Totaal",Sh="Geen metingen",Nh="Watervaldiagram: {bars}",Th="Windroos",Kh="Overheersend",Dh="Gemiddelde snelheid",Wh="Sterkst",Bh="Windstil",Hh="Snelheid",Ph="Snelheid ({unit})",Rh="Van de tijd",Mh="Windroos, overheersend {direction} {share}",Oh="Windroos, overheersend {direction} {share}, windstil {calm}",Uh="Windroos, windstil {calm}";var Ch={entity_not_found:e,unavailable:t,no_entities:r,no_matches:o,none_available:i,editor_section_entities:a,editor_section_style:n,editor_section_chart:_,editor_group_bars:d,editor_group_gauges:l,editor_group_history:s,editor_group_totals:g,editor_group_compare:m,editor_group_distribution:u,editor_period_last:c,editor_period_unit:p,editor_period_unit_hour:h,editor_period_unit_day:k,editor_period_unit_week:b,editor_period_unit_month:v,editor_source:y,editor_source_history:w,editor_source_statistics:f,editor_derivative_transform:j,editor_derivative_transform_none:x,editor_derivative_transform_derivative:z,editor_derivative_unit_time:G,editor_derivative_unit_time_s:E,editor_derivative_unit_time_min:V,editor_derivative_unit_time_h:"Uur",editor_derivative_unit_time_d:"Dag",editor_derivative_smoothing:S,editor_derivative_smoothing_time:N,editor_source_current:T,editor_source_energy:K,editor_energy_flows:D,editor_energy_split:W,editor_curve:B,editor_curve_smooth:H,editor_curve_straight:P,editor_curve_step:R,editor_color_by:M,editor_color_by_series:O,editor_color_by_bands:U,editor_labels:C,editor_series_color:I,editor_dash:Z,editor_section_limits:q,editor_section_colours:F,editor_section_display:J,editor_section_actions:Y,editor_title:Q,editor_style_bar:X,editor_style_thin:"Dun",editor_style_segmented:ee,editor_style_tank:te,editor_style_battery:re,battery_aria:oe,editor_style_ring:ie,editor_style_needle:ae,editor_style_arc:ne,editor_gauge_help:_e,editor_start_angle:de,editor_end_angle:le,editor_center:se,editor_center_mode_value:ge,editor_center_mode_band:me,editor_center_mode_name:ue,editor_center_mode_text:ce,editor_center_mode_none:pe,editor_center_text:he,editor_tick_labels:ke,editor_ghost:be,editor_ghost_off:"Uit",editor_ghost_24h:ye,editor_ghost_7d:we,ghost_title_24h:fe,ghost_title_7d:je,editor_show_name:xe,editor_show_value:ze,editor_show_icon:Ge,editor_show_target:Ee,editor_show_legend:Ve,editor_columns:Le,editor_sort:Ae,editor_sort_none:Se,editor_sort_ascending:Ne,editor_sort_descending:Te,editor_decimals:Ke,editor_unit:De,editor_animate:We,editor_hide_unavailable:Be,editor_export:He,editor_limit:Pe,editor_include_heading:Re,editor_include_help:Me,editor_exclude_heading:Oe,editor_exclude_help:Ue,editor_rule_device_class:Ce,editor_rule_area:Ie,editor_rule_floor:Ze,editor_rule_label:qe,editor_rule_domain:Fe,editor_rule_entity:Je,editor_tap_action:Ye,editor_hold_action:Qe,editor_double_tap_action:Xe,editor_badge_entity:$e,editor_badge_style:et,editor_badge_style_value:tt,editor_badge_style_sparkline:rt,editor_badge_style_ring:ot,editor_badge_style_thin:it,editor_badge_attribute:at,editor_badge_name:nt,editor_badge_hours:_t,editor_badge_show_name:dt,editor_badge_show_icon:lt,editor_badge_icon:st,editor_badge_min:gt,editor_badge_max:mt,editor_badge_unit:ut,editor_badge_decimals:ct,editor_badge_color:pt,editor_badge_bands:ht,editor_badge_bands_help:kt,editor_badge_actions:bt,editor_badge_tap_action:vt,editor_badge_hold_action:yt,editor_badge_double_tap_action:wt,editor_attribute:ft,editor_name:jt,editor_icon:xt,editor_min:zt,editor_max:Gt,editor_target:Et,editor_none:Vt,editor_card_setting:Lt,editor_limit_default:At,editor_limit_number:St,editor_limit_entity:Nt,editor_preset:Tt,editor_preset_battery:Kt,editor_preset_usage:Dt,editor_preset_temperature:Wt,editor_preset_none:Bt,editor_preset_custom:Ht,editor_band_from:Pt,editor_band_from_entity:Rt,editor_band_from_number:Mt,editor_band_from_entity_label:Ot,editor_band_color:Ut,editor_band_custom_color:Ct,editor_band_label:It,editor_band_icon:Zt,editor_color_icon:qt,editor_color_primary:Ft,editor_color_green:Jt,editor_color_amber:Yt,editor_color_red:Qt,editor_color_blue:Xt,editor_color_purple:$t,editor_color_grey:er,editor_color_custom:tr,editor_add_band:rr,editor_remove_band:or,editor_add_entity:ir,editor_move_up:ar,editor_move_down:nr,editor_remove_entity:_r,editor_show_options:dr,editor_hide_options:lr,editor_not_found:sr,editor_severity:gr,annotation_at:mr,editor_orientation:ur,editor_orientation_horizontal:cr,editor_orientation_vertical:pr,editor_value_axis:hr,editor_value_grid:kr,editor_value_min:br,editor_value_max:vr,dist_median:yr,dist_middle:wr,dist_range:fr,dist_count:jr,editor_drill_down:xr,drill_into:zr,drill_back:Gr,drill_top:Er,extremes_high:Vr,extremes_low:Lr,extremes_average:Ar,editor_extremes_max:Sr,editor_extremes_min:Nr,editor_extremes_average:Tr,editor_extremes_average_none:Kr,editor_extremes_average_line:Dr,editor_extremes_average_figure:Wr,editor_extremes:Br,anomaly_title:Hr,anomaly_beyond_high:Pr,anomaly_beyond_low:Rr,editor_anomalies:Mr,editor_anomalies_window:Or,editor_anomalies_sigma:Ur,editor_anomalies_color:Cr,editor_anomalies_band:Ir,period_previous:Zr,period_next:qr,period_return:Fr,period_today:Jr,period_yesterday:Yr,period_this_week:Qr,period_last_week:Xr,period_this_month:$r,period_last_month:eo,period_this_year:to,period_last_year:ro,period_last_hour:oo,period_last_hours:io,period_last_day:ao,period_last_days:no,period_last_week_rolling:_o,period_last_weeks:lo,period_last_month_rolling:so,period_last_months:go,editor_color_by_shades:mo,editor_shade_color:uo,editor_show_percent:co,editor_center_total:po,editor_center_average:ho,editor_center_none:ko,parts_total:bo,parts_average:vo,parts_aria:yo,editor_style_scatter:wo,editor_style_bubble:fo,editor_against:jo,editor_against_entity:xo,editor_against_time:zo,editor_dot_size:Go,editor_jitter:Eo,editor_min_size:Vo,editor_max_size:Lo,editor_dot_color:Ao,editor_xy_x_axis:So,scatter_needs_two:No,bubble_needs_three:To,scatter_role_x:Ko,bubble_role_size:Do,chart_total:Wo,editor_x_min:Bo,editor_x_max:Ho,zoom_reset:Po,zoom_window:Ro,zoom_window_label:Mo,editor_zoom:Oo,editor_overview:Uo,editor_annotations:Co,editor_annotation_type:Io,editor_annotation_type_line:Zo,editor_annotation_type_band:qo,editor_annotation_type_time:Fo,editor_annotation_type_state:Jo,editor_annotation_type_point:Yo,editor_annotation_add_line:Qo,editor_annotation_add_band:Xo,editor_annotation_add_time:$o,editor_annotation_add_state:ei,editor_annotation_add_point:ti,editor_annotation_add:ri,editor_annotation_value:oi,editor_annotation_from:ii,editor_annotation_to:ai,editor_annotation_times:ni,editor_annotation_entity:_i,editor_annotation_series:di,editor_annotation_state:li,editor_annotation_shade:si,editor_annotation_at:gi,editor_annotation_at_max:mi,editor_annotation_at_min:ui,editor_annotation_at_last:ci,editor_annotation_at_first:pi,editor_annotation_label:hi,editor_annotation_color:ki,editor_annotation_dash:bi,editor_annotation_history:vi,editor_annotation_zone:yi,editor_annotation_zone_none:wi,editor_annotation_zone_above:fi,editor_annotation_zone_below:ji,editor_annotation_severity:xi,editor_annotation_remove:zi,editor_zones:Gi,editor_period_calendar:Ei,editor_period_calendar_rolling:Vi,editor_period_calendar_day:Li,editor_period_calendar_week:Ai,editor_period_calendar_month:Si,editor_period_calendar_year:Ni,editor_period_offset:Ti,editor_period_until:Ki,editor_period_until_now:"Nu",editor_period_until_end:Wi,editor_period_navigate:Bi,editor_group_by:Hi,editor_group_by_none:Pi,editor_group_by_hour:"Uur",editor_group_by_day:"Dag",editor_group_by_week:Oi,editor_group_by_month:Ui,editor_aggregate:Ci,compare_series:Ii,compare_hours_earlier:Zi,compare_days_earlier:qi,compare_weeks_earlier:Fi,compare_months_earlier:Ji,compare_years_earlier:Yi,editor_compare:Qi,editor_compare_style:Xi,editor_compare_style_grey:$i,editor_compare_style_series:ea,editor_aggregate_mean:ta,editor_aggregate_sum:"Som",editor_aggregate_min:oa,editor_aggregate_max:ia,editor_aggregate_first:aa,editor_aggregate_last:na,editor_aggregate_change:_a,editor_cumulative_transform:da,editor_cumulative_transform_none:la,editor_cumulative_transform_cumulative:sa,editor_cumulative_reset:ga,editor_cumulative_reset_none:ma,editor_cumulative_reset_day:ua,editor_cumulative_reset_week:ca,editor_cumulative_reset_month:pa,editor_cumulative_reset_billing:ha,editor_cumulative_billing_day:ka,editor_x_axis:ba,editor_y_axis:va,editor_axis_labels:ya,editor_axis_labels_outside:wa,editor_axis_labels_inside:fa,editor_grid_horizontal:ja,editor_grid_vertical:xa,editor_y_min:za,editor_y_max:Ga,editor_y_scale:Ea,editor_y_scale_linear:Va,editor_y_scale_log:La,editor_tooltip:Aa,editor_line_width:Sa,editor_dots:Na,editor_on_top:Ta,editor_when_entity:Ka,editor_when_state:Da,editor_when_above:Wa,editor_when_below:Ba,editor_when_card_entity:Ha,editor_when_card_state:Pa,editor_when_card_above:Ra,editor_when_card_below:Ma,editor_when_ghost:Oa,editor_when_strip:Ua,when_strip_label:Ca,editor_now_marker:Ia,editor_now_marker_off:"Uit",editor_now_marker_line:qa,editor_now_marker_time:Fa,editor_now_marker_countdown:Ja,now_marker_countdown:Ya,now_marker_next:Qa,editor_compact:Xa,editor_header:$a,editor_header_above:en,editor_header_over:tn,editor_header_hidden:rn,editor_legend_toggle:on,editor_labels_show:an,editor_labels_show_all:nn,editor_labels_show_last:_n,editor_labels_show_minmax:dn,editor_labels_show_ends:ln,editor_labels_position:sn,editor_labels_position_auto:gn,editor_labels_position_above:mn,editor_labels_position_below:un,editor_labels_position_center:cn,editor_labels_overlap:pn,editor_sync:hn,editor_multiples:kn,editor_multiples_scale:bn,editor_multiples_scale_auto:vn,editor_multiples_scale_shared:yn,editor_multiples_scale_independent:wn,editor_multiples_columns:fn,forecast_label:jn,forecast_series:xn,editor_forecast_title:zn,editor_forecast_entity:Gn,editor_forecast_attribute:En,editor_forecast_value_key:Vn,editor_forecast_time_key:Ln,editor_forecast_type:An,editor_forecast_type_hourly:Sn,editor_forecast_type_daily:Nn,editor_forecast_type_twice_daily:Tn,editor_forecast_multiply:Kn,editor_forecast_hours:Dn,editor_set_point:Wn,editor_shading:Bn,editor_shade_fan:Hn,editor_current_color:Pn,editor_set_point_color:Rn,editor_heating_color:Mn,editor_cooling_color:On,editor_days:Un,editor_day_clock_center_total:Cn,editor_day_clock_center_now:In,editor_day_clock_center_none:Zn,editor_bucket:qn,editor_bucket_15:Fn,editor_bucket_30:Jn,editor_bucket_60:"Uur",editor_aggregate_auto:Qn,editor_ring_color:Xn,editor_active:$n,editor_entity_options_none:e_,editor_hierarchy_group_by:t_,editor_group_by_floor:r_,editor_group_by_area:o_,editor_group_by_device:i_,editor_group_by_label:a_,editor_entity_groups:n_,editor_bar_labels:__,editor_bar_labels_state:d_,editor_bar_labels_duration:l_,editor_bar_labels_both:s_,editor_bar_labels_none:g_,editor_timeline_legend:m_,editor_timeline_legend_above:u_,editor_timeline_legend_hidden:c_,editor_state_colors:p_,editor_state_colors_help:h_,editor_state_colors_state:k_,editor_state_colors_color:b_,editor_state_colors_add:v_,editor_state_colors_remove:y_,editor_timeline_group:w_,editor_points_per_hour:f_,editor_graph:j_,editor_graph_line:x_,editor_graph_bar:z_,editor_graph_none:G_,editor_fill:E_,editor_fill_solid:V_,editor_fill_fade:L_,editor_fill_none:A_,editor_points:S_,editor_points_hover:N_,editor_points_always:T_,editor_points_never:K_,editor_trend_labels:D_,editor_labels_hover:W_,editor_labels_always:B_,editor_labels_never:H_,editor_height:P_,editor_bar_spacing:R_,editor_color_transition:M_,editor_color_transition_smooth:O_,editor_color_transition_hard:U_,editor_extrema:C_,editor_average:I_,editor_trend_legend:Z_,editor_trend_y_min:q_,editor_trend_y_max:F_,editor_min_range:J_,editor_y_min_secondary:Y_,editor_y_max_secondary:Q_,editor_min_range_secondary:X_,editor_value_factor:$_,editor_align_header:ed,editor_align_header_default:td,editor_align_header_left:rd,editor_align_header_right:od,editor_align_header_center:id,editor_align_icon:ad,editor_align_icon_right:nd,editor_align_icon_left:_d,editor_align_icon_state:dd,editor_align_state:ld,editor_align_state_left:sd,editor_align_state_right:gd,editor_align_state_center:md,editor_font_size:ud,editor_font_size_header:cd,editor_color_name:pd,editor_color_value:hd,editor_trend_color_icon:kd,editor_trend_group:bd,editor_icon_image:vd,editor_trend_tooltip:yd,editor_y_axis_side:"As",editor_y_axis_side_primary:fd,editor_y_axis_side_secondary:jd,editor_entity_aggregate:xd,editor_fixed_value:zd,editor_show_state:Gd,editor_show_indicator:Ed,editor_show_graph:Vd,editor_show_line:Ld,editor_show_fill:Ad,editor_show_points:Sd,editor_show_legend_entity:Nd,editor_show_legend_state:Td,editor_sectors:Kd,editor_sectors_4:Dd,editor_sectors_8:Wd,editor_sectors_16:Bd,editor_calm:Hd,editor_wind_roles:Pd,editor_wind_now:Rd,editor_wind_none:Md,editor_wind_statistics:Od,editor_style_area:Ud,editor_stack:Cd,editor_stack_none:Id,editor_stack_normal:Zd,editor_stack_percent:qd,editor_negative_color:Fd,editor_style_beeswarm:Jd,editor_place_by:Yd,editor_place_by_value:Qd,editor_place_by_time_of_day:Xd,editor_size_by_value:$d,swarm_readings:el,swarm_events:tl,swarm_shown:rl,swarm_none:ol,swarm_no_change:il,swarm_held:al,swarm_earliest_latest:nl,swarm_lowest_highest:_l,editor_style_strip_plot:dl,strip_median_value:ll,strip_mean_value:sl,strip_mean:gl,editor_strip_marker:ml,editor_strip_marker_median:ul,editor_strip_marker_mean:cl,editor_strip_marker_none:pl,editor_strip_jitter:hl,editor_fill_color:kl,editor_style_box:bl,box_aria:vl,box_highest:yl,box_upper_quartile:wl,box_median:fl,box_lower_quartile:jl,box_lowest:xl,box_mean:zl,box_count:Gl,box_outliers:El,editor_whiskers:Vl,editor_whiskers_tukey:Ll,editor_whiskers_range:Al,editor_readings:Sl,editor_box_color:Nl,editor_style_bullet:Tl,editor_ranges:Kl,editor_ranges_shades:Dl,editor_ranges_colours:Wl,compare_target:Bl,chart_aria:Hl,editor_style_candlestick:Pl,editor_candle_by:Rl,editor_under_aggregate:Ml,editor_up_color:Ol,editor_down_color:Ul,editor_underneath:Cl,editor_underneath_columns:Il,editor_underneath_line:Zl,candle_open:ql,candle_high:Fl,candle_low:Jl,candle_close:Yl,candle_week_of:Ql,editor_style_climate:Xl,climate_set_point:$l,climate_range:es,climate_not_thermostat:ts,climate_action_heating:rs,climate_action_preheating:os,climate_action_cooling:is,climate_action_defrosting:as,climate_action_drying:ns,climate_action_fan:_s,climate_action_idle:ds,climate_action_off:"Uit",editor_style_column:ss,editor_group_by_auto:gs,editor_range:ms,editor_rounded:us,editor_column_labels:cs,editor_error_bars:ps,editor_error_bars_none:hs,editor_error_bars_std:ks,editor_error_bars_min_max:bs,editor_error_bars_ci95:vs,error_bars_tooltip:ys,editor_column_color:ws,editor_style_combined:fs,editor_series_type:js,editor_series_type_line:xs,editor_series_type_column:zs,editor_series_type_area:Gs,editor_series_axis:Es,editor_series_axis_auto:Vs,editor_series_axis_left:Ls,editor_series_axis_right:As,editor_series_aggregate:Ss,editor_series_aggregate_auto:Ns,editor_series_aggregate_mean:Ts,editor_series_aggregate_sum:"Som",editor_series_aggregate_min:Ds,editor_series_aggregate_max:Ws,editor_series_aggregate_first:Bs,editor_series_aggregate_last:Hs,editor_series_aggregate_change:Ps,editor_style_day_clock:Rs,day_clock_times_one:Ms,day_clock_times:Os,day_clock_a_day:Us,day_clock_busiest:Cs,day_clock_peak:Is,day_clock_state:Zs,day_clock_per_day:qs,day_clock_no_data:Fs,day_clock_now:"Nu",day_clock_on:"aan",day_clock_average:Qs,day_clock_on_days:Xs,day_clock_so_far:$s,day_clock_range:eg,day_clock_average_value:tg,editor_style_cycle_plot:rg,cycle_note_week:og,cycle_note_hour:ig,cycle_note_month:ag,cycle_mean_legend:ng,cycle_panel_average:_g,editor_cycle_plot_cycle:dg,editor_cycle_plot_cycle_day_of_week:lg,editor_cycle_plot_cycle_hour_of_day:sg,editor_cycle_plot_cycle_day_of_month:gg,editor_cycle_plot_weeks:mg,editor_style_dumbbell:ug,editor_ends:cg,editor_ends_range:pg,editor_ends_then:hg,editor_ends_target:kg,editor_show_now:bg,dumbbell_low:vg,dumbbell_high:yg,dumbbell_now:"Nu",dumbbell_target:fg,dumbbell_ago_hour_one:jg,dumbbell_ago_hour:xg,dumbbell_ago_day_one:zg,dumbbell_ago_day:Gg,dumbbell_ago_week_one:Eg,dumbbell_ago_week:Vg,dumbbell_ago_month_one:Lg,dumbbell_ago_month:Ag,dumbbell_no_value:Sg,editor_style_funnel:Ng,editor_funnel_shape:Tg,editor_funnel_shape_funnel:Kg,editor_funnel_shape_pyramid:Dg,editor_funnel_percent_of:Wg,editor_funnel_percent_of_first:Bg,editor_funnel_percent_of_previous:Hg,editor_funnel_percent_of_none:Pg,editor_funnel_color_by:Rg,editor_funnel_color_by_series:Mg,editor_funnel_color_by_bands:Og,funnel_aria:Ug,editor_style_grouped_bars:Cg,editor_mode:Ig,editor_mode_grouped:Zg,editor_mode_stacked:qg,editor_mode_percent:Fg,editor_bars_color_by:Jg,editor_bars_color_by_series:Yg,editor_bars_color_by_bands:Qg,editor_bar_group:"Rij",editor_bar_series:$g,editor_bar_color:em,grouped_bars_aria:tm,editor_style_heatmap:rm,heatmap_aria:om,heatmap_hours:im,heatmap_empty:am,editor_grid:nm,editor_grid_hours:_m,editor_grid_calendar:dm,editor_color_by_scale:lm,editor_cell_shape:sm,editor_cell_shape_square:gm,editor_cell_shape_rounded:mm,editor_cell_shape_hexagon:um,editor_color_min:cm,editor_color_max:pm,editor_legend:hm,editor_style_spiral:km,spiral_aria:bm,spiral_turn_day_note:vm,spiral_turn_week_note:ym,spiral_inner_oldest:wm,editor_spiral_turn:fm,editor_spiral_turn_day:"Dag",editor_spiral_turn_week:xm,editor_spiral_turns:zm,editor_spiral_ring_width:Gm,editor_style_histogram:Em,editor_count:Vm,editor_count_time:Lm,editor_count_readings:Am,editor_show_as:Sm,editor_show_as_percent:Nm,editor_show_as_total:Tm,editor_bins:Km,editor_bin_width:Dm,editor_bars:Wm,editor_bars_side:Bm,editor_bars_overlap:Hm,editor_hist_x_axis:Pm,histogram_readings:Rm,histogram_reading:Mm,editor_style_line:Om,chart_loading:Um,chart_error:Cm,energy_loading:Im,energy_error:Zm,energy_none:qm,energy_flow_grid_import:Fm,energy_flow_grid_export:Jm,energy_flow_solar:"Zon",energy_flow_battery_out:Qm,energy_flow_battery_in:Xm,energy_flow_gas:"Gas",energy_flow_water:eu,energy_flow_devices:tu,energy_node_home:ru,energy_node_untracked:ou,energy_node_home_use:iu,chart_no_data:au,legend_toggle_hint:nu,legend_toggle_all_hidden:_u,export_menu:du,export_png:lu,export_png_hint:su,export_svg:gu,export_svg_hint:mu,export_csv:uu,export_csv_hint:cu,export_yaml:pu,export_yaml_hint:hu,export_copied:ku,export_saved:bu,export_saved_file:vu,export_failed:yu,chart_log_nothing:wu,editor_style_lollipop:fu,editor_style_pictograph:ju,editor_unit_icon:xu,editor_per_icon:zu,editor_group_size:Gu,editor_partial:Eu,editor_style_pie:Vu,editor_shape:Lu,editor_shape_donut:Au,editor_shape_pie:Su,editor_center_label:Nu,editor_gap:Tu,editor_gradient:Ku,editor_style_polar_area:Du,editor_polar_scale:Wu,editor_polar_scale_shared:Bu,editor_polar_scale_limits:Hu,editor_polar_color_by:Pu,editor_polar_color_by_series:Ru,editor_polar_color_by_shades:Mu,editor_polar_color_by_bands:Ou,editor_polar_color:Uu,polar_area_aria:Cu,editor_style_radar:Iu,editor_radar_scale:Zu,editor_radar_scale_limits:qu,editor_radar_scale_shared:Fu,editor_radar_fill:Ju,editor_radar_axis:Yu,radar_aria:Qu,radar_other:Xu,editor_style_range_area:$u,editor_mean:ec,editor_range_color:tc,editor_style_rings:rc,editor_rings_start_angle:oc,editor_rounded_ends:ic,editor_style_sankey:ac,editor_link_color:nc,editor_link_color_auto:_c,editor_link_color_source:dc,editor_link_color_target:lc,editor_from:sc,editor_to:gc,editor_flow_color:mc,sankey_aria:uc,sankey_flow:cc,sankey_no_flows:pc,sankey_nothing:hc,energy_nothing_flowed:kc,editor_style_chord:bc,editor_chord_pad:vc,editor_chord_ribbon_opacity:yc,chord_aria:wc,editor_style_slope:fc,editor_measure:jc,editor_measure_value:xc,editor_measure_change:zc,editor_color_by_direction:Gc,editor_color_by_group:Ec,editor_increase:Vc,editor_increase_bad:Lc,editor_increase_good:Ac,editor_group:Sc,slope_now:"Nu",slope_ago:Tc,slope_ago_one:Kc,slope_previous:Dc,slope_previous_one:Wc,slope_last:Bc,slope_last_one:Hc,slope_unit_hour:"uur",slope_unit_hour_other:"uur",slope_unit_day:"dag",slope_unit_day_other:Oc,slope_unit_week:Uc,slope_unit_week_other:Cc,slope_unit_month:Ic,slope_unit_month_other:Zc,slope_entity_aria:qc,slope_no_reading:Fc,editor_style_sparkline:Jc,editor_spark:Yc,editor_spark_line:Qc,editor_spark_area:Xc,editor_spark_column:$c,editor_spark_bar:ep,editor_spark_color:tp,spark_aria:rp,editor_style_streamgraph:op,editor_baseline:ip,editor_baseline_wiggle:ap,editor_baseline_centre:np,editor_baseline_share:_p,editor_baseline_zero:dp,editor_stream_order:lp,editor_stream_order_inside_out:sp,editor_stream_order_listed:gp,editor_stream_labels:mp,editor_stream_curve:up,stream_total:cp,editor_style_sunburst:pp,editor_style_icicle:hp,editor_sunburst_shape:kp,editor_sunburst_shape_full:bp,editor_sunburst_shape_half:vp,editor_hierarchy_color_by:yp,editor_hierarchy_color_by_group:wp,editor_hierarchy_color_by_bands:fp,hierarchy_total:jp,hierarchy_other:xp,hierarchy_empty:zp,hierarchy_no_reading:Gp,sunburst_aria:Ep,icicle_aria:Vp,editor_style_timeline:Lp,timeline_no_states:Ap,timeline_for:Sp,timeline_now:"Nu",timeline_measurement:Tp,editor_style_treemap:Kp,editor_treemap_color_by:Dp,editor_treemap_color_by_group:Wp,editor_treemap_color_by_bands:Bp,treemap_aria:Hp,treemap_total:Pp,treemap_empty:Rp,treemap_no_reading:Mp,treemap_other:Op,editor_style_marimekko:Up,editor_marimekko_segment_labels:Cp,editor_marimekko_segment_labels_percent:Ip,editor_marimekko_segment_labels_value:Zp,editor_marimekko_segment_labels_both:qp,editor_marimekko_segment_labels_none:Fp,editor_marimekko_group:Jp,editor_marimekko_category:Yp,editor_marimekko_color:Qp,marimekko_aria:Xp,editor_style_trend:$p,trend_min:eh,trend_avg:th,trend_max:rh,editor_style_violin:oh,editor_shape_violin:ih,editor_shape_raincloud:ah,editor_box:nh,editor_bandwidth:_h,editor_split_by:dh,editor_split_by_none:lh,editor_split_by_day:sh,editor_split_by_week:gh,editor_split_by_month:mh,violin_median:uh,violin_none:ch,violin_raincloud:ph,editor_style_waffle:hh,editor_waffles:kh,editor_waffles_one:bh,editor_waffles_each:vh,editor_headline:yh,editor_style_waterfall:wh,editor_steps:fh,editor_steps_change:jh,editor_steps_current:xh,editor_start_from_first:zh,editor_total:Gh,editor_waterfall_invert:Eh,waterfall_start:Vh,waterfall_end:Lh,waterfall_total:Ah,waterfall_no_readings:Sh,waterfall_aria:Nh,editor_style_wind_rose:Th,wind_prevailing:Kh,wind_mean_speed:Dh,wind_strongest:Wh,wind_calm:Bh,wind_speed:Hh,wind_speed_unit:Ph,wind_share:Rh,wind_aria:Mh,wind_aria_calm:Oh,wind_aria_still:Uh};export{mr as annotation_at,Pr as anomaly_beyond_high,Rr as anomaly_beyond_low,Hr as anomaly_title,oe as battery_aria,vl as box_aria,Gl as box_count,yl as box_highest,jl as box_lower_quartile,xl as box_lowest,zl as box_mean,fl as box_median,El as box_outliers,wl as box_upper_quartile,To as bubble_needs_three,Do as bubble_role_size,Yl as candle_close,Fl as candle_high,Jl as candle_low,ql as candle_open,Ql as candle_week_of,Hl as chart_aria,Cm as chart_error,Um as chart_loading,wu as chart_log_nothing,au as chart_no_data,Wo as chart_total,wc as chord_aria,is as climate_action_cooling,as as climate_action_defrosting,ns as climate_action_drying,_s as climate_action_fan,rs as climate_action_heating,ds as climate_action_idle,ls as climate_action_off,os as climate_action_preheating,ts as climate_not_thermostat,es as climate_range,$l as climate_set_point,qi as compare_days_earlier,Zi as compare_hours_earlier,Ji as compare_months_earlier,Ii as compare_series,Bl as compare_target,Fi as compare_weeks_earlier,Yi as compare_years_earlier,ng as cycle_mean_legend,ig as cycle_note_hour,ag as cycle_note_month,og as cycle_note_week,_g as cycle_panel_average,Us as day_clock_a_day,Qs as day_clock_average,tg as day_clock_average_value,Cs as day_clock_busiest,Fs as day_clock_no_data,Js as day_clock_now,Ys as day_clock_on,Xs as day_clock_on_days,Is as day_clock_peak,qs as day_clock_per_day,eg as day_clock_range,$s as day_clock_so_far,Zs as day_clock_state,Os as day_clock_times,Ms as day_clock_times_one,Ch as default,jr as dist_count,yr as dist_median,wr as dist_middle,fr as dist_range,Gr as drill_back,zr as drill_into,Er as drill_top,Gg as dumbbell_ago_day,zg as dumbbell_ago_day_one,xg as dumbbell_ago_hour,jg as dumbbell_ago_hour_one,Ag as dumbbell_ago_month,Lg as dumbbell_ago_month_one,Vg as dumbbell_ago_week,Eg as dumbbell_ago_week_one,yg as dumbbell_high,vg as dumbbell_low,Sg as dumbbell_no_value,wg as dumbbell_now,fg as dumbbell_target,$n as editor_active,rr as editor_add_band,ir as editor_add_entity,jo as editor_against,xo as editor_against_entity,zo as editor_against_time,Ci as editor_aggregate,Qn as editor_aggregate_auto,_a as editor_aggregate_change,aa as editor_aggregate_first,na as editor_aggregate_last,ia as editor_aggregate_max,ta as editor_aggregate_mean,oa as editor_aggregate_min,ra as editor_aggregate_sum,ed as editor_align_header,id as editor_align_header_center,td as editor_align_header_default,rd as editor_align_header_left,od as editor_align_header_right,ad as editor_align_icon,_d as editor_align_icon_left,nd as editor_align_icon_right,dd as editor_align_icon_state,ld as editor_align_state,md as editor_align_state_center,sd as editor_align_state_left,gd as editor_align_state_right,We as editor_animate,ri as editor_annotation_add,Xo as editor_annotation_add_band,Qo as editor_annotation_add_line,ti as editor_annotation_add_point,ei as editor_annotation_add_state,$o as editor_annotation_add_time,gi as editor_annotation_at,pi as editor_annotation_at_first,ci as editor_annotation_at_last,mi as editor_annotation_at_max,ui as editor_annotation_at_min,ki as editor_annotation_color,bi as editor_annotation_dash,_i as editor_annotation_entity,ii as editor_annotation_from,vi as editor_annotation_history,hi as editor_annotation_label,zi as editor_annotation_remove,di as editor_annotation_series,xi as editor_annotation_severity,si as editor_annotation_shade,li as editor_annotation_state,ni as editor_annotation_times,ai as editor_annotation_to,Io as editor_annotation_type,qo as editor_annotation_type_band,Zo as editor_annotation_type_line,Yo as editor_annotation_type_point,Jo as editor_annotation_type_state,Fo as editor_annotation_type_time,oi as editor_annotation_value,yi as editor_annotation_zone,fi as editor_annotation_zone_above,ji as editor_annotation_zone_below,wi as editor_annotation_zone_none,Co as editor_annotations,Mr as editor_anomalies,Ir as editor_anomalies_band,Cr as editor_anomalies_color,Ur as editor_anomalies_sigma,Or as editor_anomalies_window,ft as editor_attribute,I_ as editor_average,ya as editor_axis_labels,fa as editor_axis_labels_inside,wa as editor_axis_labels_outside,bt as editor_badge_actions,at as editor_badge_attribute,ht as editor_badge_bands,kt as editor_badge_bands_help,pt as editor_badge_color,ct as editor_badge_decimals,wt as editor_badge_double_tap_action,$e as editor_badge_entity,yt as editor_badge_hold_action,_t as editor_badge_hours,st as editor_badge_icon,mt as editor_badge_max,gt as editor_badge_min,nt as editor_badge_name,lt as editor_badge_show_icon,dt as editor_badge_show_name,et as editor_badge_style,ot as editor_badge_style_ring,rt as editor_badge_style_sparkline,it as editor_badge_style_thin,tt as editor_badge_style_value,vt as editor_badge_tap_action,ut as editor_badge_unit,Ut as editor_band_color,Ct as editor_band_custom_color,Pt as editor_band_from,Rt as editor_band_from_entity,Ot as editor_band_from_entity_label,Mt as editor_band_from_number,Zt as editor_band_icon,It as editor_band_label,_h as editor_bandwidth,em as editor_bar_color,Xg as editor_bar_group,__ as editor_bar_labels,s_ as editor_bar_labels_both,l_ as editor_bar_labels_duration,g_ as editor_bar_labels_none,d_ as editor_bar_labels_state,$g as editor_bar_series,R_ as editor_bar_spacing,Wm as editor_bars,Jg as editor_bars_color_by,Qg as editor_bars_color_by_bands,Yg as editor_bars_color_by_series,Hm as editor_bars_overlap,Bm as editor_bars_side,ip as editor_baseline,np as editor_baseline_centre,_p as editor_baseline_share,ap as editor_baseline_wiggle,dp as editor_baseline_zero,Dm as editor_bin_width,Km as editor_bins,nh as editor_box,Nl as editor_box_color,qn as editor_bucket,Fn as editor_bucket_15,Jn as editor_bucket_30,Yn as editor_bucket_60,Hd as editor_calm,Rl as editor_candle_by,Lt as editor_card_setting,sm as editor_cell_shape,um as editor_cell_shape_hexagon,mm as editor_cell_shape_rounded,gm as editor_cell_shape_square,se as editor_center,ho as editor_center_average,Nu as editor_center_label,me as editor_center_mode_band,ue as editor_center_mode_name,pe as editor_center_mode_none,ce as editor_center_mode_text,ge as editor_center_mode_value,ko as editor_center_none,he as editor_center_text,po as editor_center_total,vc as editor_chord_pad,yc as editor_chord_ribbon_opacity,Yt as editor_color_amber,Xt as editor_color_blue,M as editor_color_by,U as editor_color_by_bands,Gc as editor_color_by_direction,Ec as editor_color_by_group,lm as editor_color_by_scale,O as editor_color_by_series,mo as editor_color_by_shades,tr as editor_color_custom,Jt as editor_color_green,er as editor_color_grey,qt as editor_color_icon,pm as editor_color_max,cm as editor_color_min,pd as editor_color_name,Ft as editor_color_primary,$t as editor_color_purple,Qt as editor_color_red,M_ as editor_color_transition,U_ as editor_color_transition_hard,O_ as editor_color_transition_smooth,hd as editor_color_value,ws as editor_column_color,cs as editor_column_labels,Le as editor_columns,Xa as editor_compact,Qi as editor_compare,Xi as editor_compare_style,$i as editor_compare_style_grey,ea as editor_compare_style_series,On as editor_cooling_color,Vm as editor_count,Am as editor_count_readings,Lm as editor_count_time,ka as editor_cumulative_billing_day,ga as editor_cumulative_reset,ha as editor_cumulative_reset_billing,ua as editor_cumulative_reset_day,pa as editor_cumulative_reset_month,ma as editor_cumulative_reset_none,ca as editor_cumulative_reset_week,da as editor_cumulative_transform,sa as editor_cumulative_transform_cumulative,la as editor_cumulative_transform_none,Pn as editor_current_color,B as editor_curve,H as editor_curve_smooth,R as editor_curve_step,P as editor_curve_straight,dg as editor_cycle_plot_cycle,gg as editor_cycle_plot_cycle_day_of_month,lg as editor_cycle_plot_cycle_day_of_week,sg as editor_cycle_plot_cycle_hour_of_day,mg as editor_cycle_plot_weeks,Z as editor_dash,Zn as editor_day_clock_center_none,In as editor_day_clock_center_now,Cn as editor_day_clock_center_total,Un as editor_days,Ke as editor_decimals,S as editor_derivative_smoothing,N as editor_derivative_smoothing_time,j as editor_derivative_transform,z as editor_derivative_transform_derivative,x as editor_derivative_transform_none,G as editor_derivative_unit_time,A as editor_derivative_unit_time_d,L as editor_derivative_unit_time_h,V as editor_derivative_unit_time_min,E as editor_derivative_unit_time_s,Ao as editor_dot_color,Go as editor_dot_size,Na as editor_dots,Xe as editor_double_tap_action,Ul as editor_down_color,xr as editor_drill_down,le as editor_end_angle,cg as editor_ends,pg as editor_ends_range,kg as editor_ends_target,hg as editor_ends_then,D as editor_energy_flows,W as editor_energy_split,xd as editor_entity_aggregate,n_ as editor_entity_groups,e_ as editor_entity_options_none,ps as editor_error_bars,vs as editor_error_bars_ci95,bs as editor_error_bars_min_max,hs as editor_error_bars_none,ks as editor_error_bars_std,Oe as editor_exclude_heading,Ue as editor_exclude_help,He as editor_export,C_ as editor_extrema,Br as editor_extremes,Tr as editor_extremes_average,Wr as editor_extremes_average_figure,Dr as editor_extremes_average_line,Kr as editor_extremes_average_none,Sr as editor_extremes_max,Nr as editor_extremes_min,E_ as editor_fill,kl as editor_fill_color,L_ as editor_fill_fade,A_ as editor_fill_none,V_ as editor_fill_solid,zd as editor_fixed_value,mc as editor_flow_color,ud as editor_font_size,cd as editor_font_size_header,En as editor_forecast_attribute,Gn as editor_forecast_entity,Dn as editor_forecast_hours,Kn as editor_forecast_multiply,Ln as editor_forecast_time_key,zn as editor_forecast_title,An as editor_forecast_type,Nn as editor_forecast_type_daily,Sn as editor_forecast_type_hourly,Tn as editor_forecast_type_twice_daily,Vn as editor_forecast_value_key,sc as editor_from,Rg as editor_funnel_color_by,Og as editor_funnel_color_by_bands,Mg as editor_funnel_color_by_series,Wg as editor_funnel_percent_of,Bg as editor_funnel_percent_of_first,Pg as editor_funnel_percent_of_none,Hg as editor_funnel_percent_of_previous,Tg as editor_funnel_shape,Kg as editor_funnel_shape_funnel,Dg as editor_funnel_shape_pyramid,Tu as editor_gap,_e as editor_gauge_help,be as editor_ghost,ye as editor_ghost_24h,we as editor_ghost_7d,ve as editor_ghost_off,Ku as editor_gradient,j_ as editor_graph,z_ as editor_graph_bar,x_ as editor_graph_line,G_ as editor_graph_none,nm as editor_grid,dm as editor_grid_calendar,ja as editor_grid_horizontal,_m as editor_grid_hours,xa as editor_grid_vertical,Sc as editor_group,d as editor_group_bars,Hi as editor_group_by,o_ as editor_group_by_area,gs as editor_group_by_auto,Mi as editor_group_by_day,i_ as editor_group_by_device,r_ as editor_group_by_floor,Ri as editor_group_by_hour,a_ as editor_group_by_label,Ui as editor_group_by_month,Pi as editor_group_by_none,Oi as editor_group_by_week,m as editor_group_compare,u as editor_group_distribution,l as editor_group_gauges,s as editor_group_history,Gu as editor_group_size,g as editor_group_totals,$a as editor_header,en as editor_header_above,rn as editor_header_hidden,tn as editor_header_over,yh as editor_headline,Mn as editor_heating_color,P_ as editor_height,lr as editor_hide_options,Be as editor_hide_unavailable,yp as editor_hierarchy_color_by,fp as editor_hierarchy_color_by_bands,wp as editor_hierarchy_color_by_group,t_ as editor_hierarchy_group_by,Pm as editor_hist_x_axis,Qe as editor_hold_action,xt as editor_icon,vd as editor_icon_image,Re as editor_include_heading,Me as editor_include_help,Vc as editor_increase,Lc as editor_increase_bad,Ac as editor_increase_good,Eo as editor_jitter,C as editor_labels,B_ as editor_labels_always,W_ as editor_labels_hover,H_ as editor_labels_never,pn as editor_labels_overlap,sn as editor_labels_position,mn as editor_labels_position_above,gn as editor_labels_position_auto,un as editor_labels_position_below,cn as editor_labels_position_center,an as editor_labels_show,nn as editor_labels_show_all,ln as editor_labels_show_ends,_n as editor_labels_show_last,dn as editor_labels_show_minmax,hm as editor_legend,on as editor_legend_toggle,Pe as editor_limit,At as editor_limit_default,Nt as editor_limit_entity,St as editor_limit_number,Sa as editor_line_width,nc as editor_link_color,_c as editor_link_color_auto,dc as editor_link_color_source,lc as editor_link_color_target,Yp as editor_marimekko_category,Qp as editor_marimekko_color,Jp as editor_marimekko_group,Cp as editor_marimekko_segment_labels,qp as editor_marimekko_segment_labels_both,Fp as editor_marimekko_segment_labels_none,Ip as editor_marimekko_segment_labels_percent,Zp as editor_marimekko_segment_labels_value,Gt as editor_max,Lo as editor_max_size,ec as editor_mean,jc as editor_measure,zc as editor_measure_change,xc as editor_measure_value,zt as editor_min,J_ as editor_min_range,X_ as editor_min_range_secondary,Vo as editor_min_size,Ig as editor_mode,Zg as editor_mode_grouped,Fg as editor_mode_percent,qg as editor_mode_stacked,nr as editor_move_down,ar as editor_move_up,kn as editor_multiples,fn as editor_multiples_columns,bn as editor_multiples_scale,vn as editor_multiples_scale_auto,wn as editor_multiples_scale_independent,yn as editor_multiples_scale_shared,jt as editor_name,Fd as editor_negative_color,Vt as editor_none,sr as editor_not_found,Ia as editor_now_marker,Ja as editor_now_marker_countdown,qa as editor_now_marker_line,Za as editor_now_marker_off,Fa as editor_now_marker_time,Ta as editor_on_top,ur as editor_orientation,cr as editor_orientation_horizontal,pr as editor_orientation_vertical,Uo as editor_overview,Eu as editor_partial,zu as editor_per_icon,Ei as editor_period_calendar,Li as editor_period_calendar_day,Si as editor_period_calendar_month,Vi as editor_period_calendar_rolling,Ai as editor_period_calendar_week,Ni as editor_period_calendar_year,c as editor_period_last,Bi as editor_period_navigate,Ti as editor_period_offset,p as editor_period_unit,k as editor_period_unit_day,h as editor_period_unit_hour,v as editor_period_unit_month,b as editor_period_unit_week,Ki as editor_period_until,Wi as editor_period_until_end,Di as editor_period_until_now,Yd as editor_place_by,Xd as editor_place_by_time_of_day,Qd as editor_place_by_value,S_ as editor_points,T_ as editor_points_always,N_ as editor_points_hover,K_ as editor_points_never,f_ as editor_points_per_hour,Uu as editor_polar_color,Pu as editor_polar_color_by,Ou as editor_polar_color_by_bands,Ru as editor_polar_color_by_series,Mu as editor_polar_color_by_shades,Wu as editor_polar_scale,Hu as editor_polar_scale_limits,Bu as editor_polar_scale_shared,Tt as editor_preset,Kt as editor_preset_battery,Ht as editor_preset_custom,Bt as editor_preset_none,Wt as editor_preset_temperature,Dt as editor_preset_usage,Yu as editor_radar_axis,Ju as editor_radar_fill,Zu as editor_radar_scale,qu as editor_radar_scale_limits,Fu as editor_radar_scale_shared,ms as editor_range,tc as editor_range_color,Kl as editor_ranges,Wl as editor_ranges_colours,Dl as editor_ranges_shades,Sl as editor_readings,or as editor_remove_band,_r as editor_remove_entity,Xn as editor_ring_color,oc as editor_rings_start_angle,us as editor_rounded,ic as editor_rounded_ends,Ie as editor_rule_area,Ce as editor_rule_device_class,Fe as editor_rule_domain,Je as editor_rule_entity,Ze as editor_rule_floor,qe as editor_rule_label,Y as editor_section_actions,_ as editor_section_chart,F as editor_section_colours,J as editor_section_display,a as editor_section_entities,q as editor_section_limits,n as editor_section_style,Kd as editor_sectors,Bd as editor_sectors_16,Dd as editor_sectors_4,Wd as editor_sectors_8,Ss as editor_series_aggregate,Ns as editor_series_aggregate_auto,Ps as editor_series_aggregate_change,Bs as editor_series_aggregate_first,Hs as editor_series_aggregate_last,Ws as editor_series_aggregate_max,Ts as editor_series_aggregate_mean,Ds as editor_series_aggregate_min,Ks as editor_series_aggregate_sum,Es as editor_series_axis,Vs as editor_series_axis_auto,Ls as editor_series_axis_left,As as editor_series_axis_right,I as editor_series_color,js as editor_series_type,Gs as editor_series_type_area,zs as editor_series_type_column,xs as editor_series_type_line,Wn as editor_set_point,Rn as editor_set_point_color,gr as editor_severity,uo as editor_shade_color,Hn as editor_shade_fan,Bn as editor_shading,Lu as editor_shape,Au as editor_shape_donut,Su as editor_shape_pie,ah as editor_shape_raincloud,ih as editor_shape_violin,Sm as editor_show_as,Nm as editor_show_as_percent,Tm as editor_show_as_total,Ad as editor_show_fill,Vd as editor_show_graph,Ge as editor_show_icon,Ed as editor_show_indicator,Ve as editor_show_legend,Nd as editor_show_legend_entity,Td as editor_show_legend_state,Ld as editor_show_line,xe as editor_show_name,bg as editor_show_now,dr as editor_show_options,co as editor_show_percent,Sd as editor_show_points,Gd as editor_show_state,Ee as editor_show_target,ze as editor_show_value,$d as editor_size_by_value,Ae as editor_sort,Ne as editor_sort_ascending,Te as editor_sort_descending,Se as editor_sort_none,y as editor_source,T as editor_source_current,K as editor_source_energy,w as editor_source_history,f as editor_source_statistics,Yc as editor_spark,Xc as editor_spark_area,ep as editor_spark_bar,tp as editor_spark_color,$c as editor_spark_column,Qc as editor_spark_line,Gm as editor_spiral_ring_width,fm as editor_spiral_turn,jm as editor_spiral_turn_day,xm as editor_spiral_turn_week,zm as editor_spiral_turns,dh as editor_split_by,sh as editor_split_by_day,mh as editor_split_by_month,lh as editor_split_by_none,gh as editor_split_by_week,Cd as editor_stack,Id as editor_stack_none,Zd as editor_stack_normal,qd as editor_stack_percent,de as editor_start_angle,zh as editor_start_from_first,p_ as editor_state_colors,v_ as editor_state_colors_add,b_ as editor_state_colors_color,h_ as editor_state_colors_help,y_ as editor_state_colors_remove,k_ as editor_state_colors_state,fh as editor_steps,jh as editor_steps_change,xh as editor_steps_current,up as editor_stream_curve,mp as editor_stream_labels,lp as editor_stream_order,sp as editor_stream_order_inside_out,gp as editor_stream_order_listed,hl as editor_strip_jitter,ml as editor_strip_marker,cl as editor_strip_marker_mean,ul as editor_strip_marker_median,pl as editor_strip_marker_none,ne as editor_style_arc,Ud as editor_style_area,X as editor_style_bar,re as editor_style_battery,Jd as editor_style_beeswarm,bl as editor_style_box,fo as editor_style_bubble,Tl as editor_style_bullet,Pl as editor_style_candlestick,bc as editor_style_chord,Xl as editor_style_climate,ss as editor_style_column,fs as editor_style_combined,rg as editor_style_cycle_plot,Rs as editor_style_day_clock,ug as editor_style_dumbbell,Ng as editor_style_funnel,Cg as editor_style_grouped_bars,rm as editor_style_heatmap,Em as editor_style_histogram,hp as editor_style_icicle,Om as editor_style_line,fu as editor_style_lollipop,Up as editor_style_marimekko,ae as editor_style_needle,ju as editor_style_pictograph,Vu as editor_style_pie,Du as editor_style_polar_area,Iu as editor_style_radar,$u as editor_style_range_area,ie as editor_style_ring,rc as editor_style_rings,ac as editor_style_sankey,wo as editor_style_scatter,ee as editor_style_segmented,fc as editor_style_slope,Jc as editor_style_sparkline,km as editor_style_spiral,op as editor_style_streamgraph,dl as editor_style_strip_plot,pp as editor_style_sunburst,te as editor_style_tank,$ as editor_style_thin,Lp as editor_style_timeline,Kp as editor_style_treemap,$p as editor_style_trend,oh as editor_style_violin,hh as editor_style_waffle,wh as editor_style_waterfall,Th as editor_style_wind_rose,kp as editor_sunburst_shape,bp as editor_sunburst_shape_full,vp as editor_sunburst_shape_half,hn as editor_sync,Ye as editor_tap_action,Et as editor_target,ke as editor_tick_labels,w_ as editor_timeline_group,m_ as editor_timeline_legend,u_ as editor_timeline_legend_above,c_ as editor_timeline_legend_hidden,Q as editor_title,gc as editor_to,Aa as editor_tooltip,Gh as editor_total,Dp as editor_treemap_color_by,Bp as editor_treemap_color_by_bands,Wp as editor_treemap_color_by_group,kd as editor_trend_color_icon,bd as editor_trend_group,D_ as editor_trend_labels,Z_ as editor_trend_legend,yd as editor_trend_tooltip,F_ as editor_trend_y_max,q_ as editor_trend_y_min,Ml as editor_under_aggregate,Cl as editor_underneath,Il as editor_underneath_columns,Zl as editor_underneath_line,De as editor_unit,xu as editor_unit_icon,Ol as editor_up_color,hr as editor_value_axis,$_ as editor_value_factor,kr as editor_value_grid,vr as editor_value_max,br as editor_value_min,kh as editor_waffles,vh as editor_waffles_each,bh as editor_waffles_one,Eh as editor_waterfall_invert,Wa as editor_when_above,Ba as editor_when_below,Ra as editor_when_card_above,Ma as editor_when_card_below,Ha as editor_when_card_entity,Pa as editor_when_card_state,Ka as editor_when_entity,Oa as editor_when_ghost,Da as editor_when_state,Ua as editor_when_strip,Vl as editor_whiskers,Al as editor_whiskers_range,Ll as editor_whiskers_tukey,Md as editor_wind_none,Rd as editor_wind_now,Pd as editor_wind_roles,Od as editor_wind_statistics,ba as editor_x_axis,Ho as editor_x_max,Bo as editor_x_min,So as editor_xy_x_axis,va as editor_y_axis,wd as editor_y_axis_side,fd as editor_y_axis_side_primary,jd as editor_y_axis_side_secondary,Ga as editor_y_max,Q_ as editor_y_max_secondary,za as editor_y_min,Y_ as editor_y_min_secondary,Ea as editor_y_scale,Va as editor_y_scale_linear,La as editor_y_scale_log,Gi as editor_zones,Oo as editor_zoom,Zm as energy_error,Xm as energy_flow_battery_in,Qm as energy_flow_battery_out,tu as energy_flow_devices,$m as energy_flow_gas,Jm as energy_flow_grid_export,Fm as energy_flow_grid_import,Ym as energy_flow_solar,eu as energy_flow_water,Im as energy_loading,ru as energy_node_home,iu as energy_node_home_use,ou as energy_node_untracked,qm as energy_none,kc as energy_nothing_flowed,e as entity_not_found,ys as error_bars_tooltip,ku as export_copied,uu as export_csv,cu as export_csv_hint,yu as export_failed,du as export_menu,lu as export_png,su as export_png_hint,bu as export_saved,vu as export_saved_file,gu as export_svg,mu as export_svg_hint,pu as export_yaml,hu as export_yaml_hint,Ar as extremes_average,Vr as extremes_high,Lr as extremes_low,jn as forecast_label,xn as forecast_series,Ug as funnel_aria,fe as ghost_title_24h,je as ghost_title_7d,tm as grouped_bars_aria,om as heatmap_aria,am as heatmap_empty,im as heatmap_hours,zp as hierarchy_empty,Gp as hierarchy_no_reading,xp as hierarchy_other,jp as hierarchy_total,Mm as histogram_reading,Rm as histogram_readings,Vp as icicle_aria,_u as legend_toggle_all_hidden,nu as legend_toggle_hint,Xp as marimekko_aria,r as no_entities,o as no_matches,i as none_available,Ya as now_marker_countdown,Qa as now_marker_next,yo as parts_aria,vo as parts_average,bo as parts_total,ao as period_last_day,no as period_last_days,oo as period_last_hour,io as period_last_hours,eo as period_last_month,so as period_last_month_rolling,go as period_last_months,Xr as period_last_week,_o as period_last_week_rolling,lo as period_last_weeks,ro as period_last_year,qr as period_next,Zr as period_previous,Fr as period_return,$r as period_this_month,Qr as period_this_week,to as period_this_year,Jr as period_today,Yr as period_yesterday,Cu as polar_area_aria,Qu as radar_aria,Xu as radar_other,uc as sankey_aria,cc as sankey_flow,pc as sankey_no_flows,hc as sankey_nothing,No as scatter_needs_two,Ko as scatter_role_x,Tc as slope_ago,Kc as slope_ago_one,qc as slope_entity_aria,Bc as slope_last,Hc as slope_last_one,Fc as slope_no_reading,Nc as slope_now,Dc as slope_previous,Wc as slope_previous_one,Mc as slope_unit_day,Oc as slope_unit_day_other,Pc as slope_unit_hour,Rc as slope_unit_hour_other,Ic as slope_unit_month,Zc as slope_unit_month_other,Uc as slope_unit_week,Cc as slope_unit_week_other,rp as spark_aria,bm as spiral_aria,wm as spiral_inner_oldest,vm as spiral_turn_day_note,ym as spiral_turn_week_note,cp as stream_total,gl as strip_mean,sl as strip_mean_value,ll as strip_median_value,Ep as sunburst_aria,nl as swarm_earliest_latest,tl as swarm_events,al as swarm_held,_l as swarm_lowest_highest,il as swarm_no_change,ol as swarm_none,el as swarm_readings,rl as swarm_shown,Sp as timeline_for,Tp as timeline_measurement,Ap as timeline_no_states,Np as timeline_now,Hp as treemap_aria,Rp as treemap_empty,Mp as treemap_no_reading,Op as treemap_other,Pp as treemap_total,th as trend_avg,rh as trend_max,eh as trend_min,t as unavailable,uh as violin_median,ch as violin_none,ph as violin_raincloud,Nh as waterfall_aria,Lh as waterfall_end,Sh as waterfall_no_readings,Vh as waterfall_start,Ah as waterfall_total,Ca as when_strip_label,Mh as wind_aria,Oh as wind_aria_calm,Uh as wind_aria_still,Bh as wind_calm,Dh as wind_mean_speed,Kh as wind_prevailing,Rh as wind_share,Hh as wind_speed,Ph as wind_speed_unit,Wh as wind_strongest,Po as zoom_reset,Ro as zoom_window,Mo as zoom_window_label};
+//# sourceMappingURL=chartdeck-card.nl-BQI5YeYB.js.map
diff --git a/dist/chartdeck-card.nl-BQI5YeYB.js.map b/dist/chartdeck-card.nl-BQI5YeYB.js.map
new file mode 100644
index 0000000..f90ba3e
--- /dev/null
+++ b/dist/chartdeck-card.nl-BQI5YeYB.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"chartdeck-card.nl-BQI5YeYB.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dist/chartdeck-card.nl-DvVzFIch.js b/dist/chartdeck-card.nl-DvVzFIch.js
deleted file mode 100644
index f984731..0000000
--- a/dist/chartdeck-card.nl-DvVzFIch.js
+++ /dev/null
@@ -1,2 +0,0 @@
-const e="Entiteit niet gevonden",t="Niet beschikbaar",o="Voeg in de editor een entiteit toe om te beginnen.",r="Er komen nu geen entiteiten overeen.",i="Geen van deze entiteiten is beschikbaar.",a="Entiteiten",n="Stijl",_="Grafiek",d="Balken",l="Meters",s="Geschiedenisgrafieken",g="Delen van een totaal",m="Vergelijkingen",u="Verdelingen",c="Toon de laatste",p="Eenheid",h="Uren",k="Dagen",b="Weken",v="Maanden",y="Metingen uit",w="Geschiedenis (elke wijziging)",f="Langetermijnstatistieken",j="Lijnvorm",x="Vloeiend",G="Recht",z="Trappen",E="Kleur",L="Eén kleur per entiteit",V="Per kleurband",S="Waarden bij de punten tonen",T="Lijnkleur",N="Gestreept",A="Grenzen",K="Kleuren",B="Weergave",W="Acties",D="Titel",H="Balk",P="Dun",R="Gesegmenteerd",O="Tank",M="Ring",U="Naald",C="Boog",I="Hoeken zijn in graden, met de klok mee vanaf boven: -90 is links, 90 rechts. Laat ze leeg voor de gebruikelijke vorm van de stijl.",Z="Beginhoek",q="Eindhoek",J="In het midden",F="De waarde",Q="Het label van de kleurband",X="De naam",Y="Eigen tekst",$="Niets",ee="Tekst",te="Getallen op de schaal",oe="Naam tonen",re="Waarde tonen",ie="Pictogram tonen",ae="Doel tonen",ne="Legenda tonen",_e="Kolommen",de="Sorteren",le="Zoals opgegeven",se="Laagste eerst",ge="Hoogste eerst",me="Decimalen",ue="Eenheid",ce="Animeren",pe="Niet-beschikbare entiteiten verbergen",he="Toon maximaal",ke="Toon ook elke entiteit die overeenkomt",be="Nieuwe apparaten verschijnen zonder de kaart te bewerken. Kies er meerdere van één soort om op een van hen te matchen; verschillende soorten moeten allemaal overeenkomen.",ve="Weglaten",ye="Gevonden entiteiten worden weggelaten als ze met een van deze overeenkomen.",we="Apparaatklasse",fe="Ruimtes",je="Verdiepingen",xe="Labels",Ge="Domeinen",ze="Entiteiten",Ee="Tikactie",Le="Vasthoudactie",Ve="Dubbeltikactie",Se="Attribuut (in plaats van de status)",Te="Naam",Ne="Pictogram",Ae="Minimum",Ke="Maximum",Be="Doel",We="Geen",De="kaartinstelling",He="Standaard ({value})",Pe="Getal",Re="Entiteit",Oe="Voorinstelling",Me="Batterij (laag is slecht)",Ue="Verbruik (hoog is slecht)",Ce="Temperatuur",Ie="Geen",Ze="Aangepast",qe="Vanaf",Je="Beginnen bij een entiteit",Fe="Beginnen bij een getal",Qe="Begint bij deze entiteit",Xe="Kleur",Ye="CSS-kleur",$e="Label",et="Pictogram",tt="Pictogrammen kleuren naar hun band",ot="Primair",rt="Groen",it="Oranje",at="Rood",nt="Blauw",_t="Paars",dt="Grijs",lt="Aangepast…",st="Band toevoegen",gt="Band verwijderen",mt="Entiteit toevoegen",ut="Omhoog",ct="Omlaag",pt="Entiteit verwijderen",ht="Opties tonen",kt="Opties verbergen",bt="{entity} (niet gevonden)",vt="Kleuren",yt="{label} om {time}",wt="Richting",ft="Horizontaal",jt="Verticaal",xt="Waardelabels",Gt="Lijnen bij elk waardelabel",zt="Laagste getoonde waarde",Et="Hoogste getoonde waarde",Lt="Mediaan",Vt="Middelste helft",St="Laagste – hoogste",Tt="Metingen",Nt="Tik op een groep om te zien waaruit die bestaat",At="{label}. Toon waaruit dit bestaat",Kt="Terug naar {name}",Bt="Alle",Wt="Hoog",Dt="Laag",Ht="Gem.",Pt="Hoogste meting markeren",Rt="Laagste meting markeren",Ot="Gemiddelde",Mt="Niet tonen",Ut="Lijn over de grafiek",Ct="Alleen het getal",It="Hoogste, laagste en gemiddelde markeren",Zt="Vorige periode",qt="Volgende periode",Jt="Terug naar {label}",Ft="Vandaag",Qt="Gisteren",Xt="Deze week",Yt="Vorige week",$t="Deze maand",eo="Vorige maand",to="Dit jaar",oo="Vorig jaar",ro="Afgelopen uur",io="Afgelopen {n} uur",ao="Afgelopen dag",no="Afgelopen {n} dagen",_o="Afgelopen 7 dagen",lo="Afgelopen {n} weken",so="Afgelopen maand",go="Afgelopen {n} maanden",mo="Tinten van één kleur",uo="Tintkleur (paletnaam of CSS-kleur)",co="Elk aandeel als percentage tonen",po="Totaal",ho="Gemiddelde",ko="Niets",bo="Totaal",vo="Gemiddelde",yo="{style} van {names}",wo="Spreiding",fo="Bellen",jo="Langs de onderkant",xo="De eerste entiteit",Go="Tijd",zo="Puntgrootte (px)",Eo="Spreiding (px)",Lo="Kleinste bel (px)",Vo="Grootste bel (px)",So="Puntkleur",To="Labels langs de onderkant",No="Voeg een tweede entiteit toe. De eerste komt langs de onderkant, de andere langs de zijkant.",Ao="Voeg drie entiteiten toe: één langs de onderkant, één langs de zijkant en één voor de grootte van elke bel.",Ko="Horizontaal",Bo="Grootte",Wo="Totaal",Do="Laagste horizontale waarde",Ho="Hoogste horizontale waarde",Po="Zoom herstellen",Ro="Getoond: {from} tot {to}",Oo="Getoond deel van de grafiek",Mo="Zoomen en verschuiven (knijpen, Ctrl + scrollen of slepen)",Uo="Overzichtsstrook onder de grafiek",Co="Annotaties",Io="Soort",Zo="Lijn bij een waarde",qo="Gearceerde band van waarden",Jo="Markeringen op vaste tijden",Fo="Markeringen bij statuswijziging van een entiteit",Qo="Label bij een meting",Xo="Lijn",Yo="Band",$o="Tijden",er="Statuswijzigingen",tr="Puntlabel",or="Annotatie toevoegen:",rr="Waarde (een getal of een entiteit)",ir="Vanaf (een getal of een entiteit; leeg voor de onderkant)",ar="Tot (een getal of een entiteit; leeg voor de bovenkant)",nr="Tijden: 07:00 voor elke dag, of 2026-10-28 07:00 (gescheiden door komma's)",_r="Entiteit",dr="Reeks (leeg voor de eerste)",lr="Status (leeg voor elke wijziging)",sr="Arceren zolang in deze status",gr="Meting",mr="Hoogste",ur="Laagste",cr="Laatste",pr="Eerste",hr="Label",kr="Kleur",br="Gestreept",vr="Annotatie verwijderen",yr="Ernstbanden achter de grafiek arceren",wr="Periode",fr="De afgelopen…",jr="Vandaag",xr="Deze week",Gr="Deze maand",zr="Dit jaar",Er="Perioden terug (0 is de huidige)",Lr="Tekenen tot",Vr="Nu",Sr="Het einde van de periode",Tr="Knoppen voor vorige en volgende tonen",Nr="Metingen groeperen per",Ar="Niet groeperen",Kr="Uur",Br="Dag",Wr="Week",Dr="Maand",Hr="Combineren met",Pr="Gemiddelde",Rr="Som",Or="Laagste",Mr="Hoogste",Ur="Eerste",Cr="Laatste",Ir="Verandering (oplopende meters)",Zr="Tijdlabels",qr="Waardelabels",Jr="Aslabels",Fr="Naast de grafiek",Qr="Over de grafiek",Xr="Horizontale lijnen",Yr="Verticale lijnen",$r="Laagste getoonde waarde",ei="Hoogste getoonde waarde",ti="Waardeschaal",oi="Gelijke stappen",ri="Logaritmisch (machten van tien)",ii="Waarden tonen bij aanwijzen of aanraken",ai="Lijndikte (px)",ni="Punt bij elke meting",_i="Boven de andere lijnen tekenen",di="Compact",li="Namen en waarden",si="Boven de grafiek",gi="Over de grafiek",mi="Verborgen",ui="Welke metingen",ci="Alle (zoveel als passen)",pi="De laatste",hi="Hoogste en laagste",ki="Eerste en laatste",bi="Labelpositie",vi="Boven pieken, onder dalen",yi="Boven",wi="Onder",fi="Op het punt",ji="Labels laten overlappen",xi="Synchronisatiegroep (grafieken met dezelfde naam delen de aanwijzer en periodestappen)",Gi="Een kleine grafiek per entiteit",zi="Waardeschaal",Ei="Gelijk als de eenheden overeenkomen",Li="Gelijk voor elke grafiek",Vi="Elke grafiek een eigen schaal",Si="Kolommen (leeg past op de kaart)",Ti="Instelpunt tonen",Ni="Arceren tijdens verwarmen of koelen",Ai="Arceren als alleen de ventilator draait",Ki="Temperatuurkleur",Bi="Kleur instelpunt",Wi="Kleur verwarmen",Di="Kleur koelen",Hi="Dagen (meer dan 1 toont de gemiddelde dag)",Pi="Tijd aan",Ri="De huidige tijd",Oi="Niets",Mi="Eén balk per",Ui="15 minuten",Ci="30 minuten",Ii="Uur",Zi="Automatisch (verandering voor meters, anders gemiddelde)",qi="Kleur",Ji="Telt als aan (leeg: on, open, heating, home…)",Fi="Voeg eerst hierboven een entiteit toe.",Qi="Groeperen per",Xi="Verdieping",Yi="Ruimte",$i="Apparaat",ea="Label",ta='Eigen groep (gaat voor "Groeperen per"; "Begane grond / Keuken" voor twee niveaus)',oa="Tekst op de balken",ra="Status",ia="Duur",aa="Status en duur",na="Geen",_a="Legenda van statussen",da="Boven de grafiek",la="Verborgen",sa="Statuskleuren",ga="Een paletnaam (amber, green, blue, red, purple, grey, primary) of een willekeurige CSS-kleur.",ma="Status",ua="Kleur",ca="Statuskleur toevoegen",pa="Verwijderen",ha="Groep (rijen met dezelfde groep delen een kop)",ka="Punten per uur (0 tekent elke meting)",ba="Grafiek",va="Lijn",ya="Balken",wa="Geen (alleen waarde)",fa="Vulling onder de lijn",ja="Massief",xa="Vervagend",Ga="Geen",za="Punten op de lijn",Ea="Bij aanwijzen",La="Altijd",Va="Nooit",Sa="Labels voor hoogste en laagste",Ta="Bij aanwijzen",Na="Altijd",Aa="Nooit",Ka="Grafiekhoogte (per 500 px breedte)",Ba="Ruimte tussen balken (px)",Wa="Bandkleuren",Da="Overvloeien",Ha="Wisselen bij elke band",Pa="Laagste en hoogste tonen",Ra="Gemiddelde tonen",Oa="Legenda (twee of meer entiteiten)",Ma="Laagste waarde (~ voor zacht)",Ua="Hoogste waarde (~ voor zacht)",Ca="Kleinste getoonde bereik",Ia="Rechteras laagste (~ voor zacht)",Za="Rechteras hoogste (~ voor zacht)",qa="Rechteras kleinste bereik",Ja="Schalen met 10 tot de macht",Fa="Naam en pictogram",Qa="Verspreid",Xa="Links",Ya="Rechts",$a="Midden",en="Pictogram",tn="Rechts van de naam",on="Links van de naam",rn="Naast de waarde",an="Waarde",nn="Links",_n="Rechts",dn="Midden",ln="Grootte waarde (%)",sn="Grootte naam (px)",gn="Naam kleuren",mn="Waarde kleuren",un="Pictogram kleuren",cn="Geen achtergrond (binnen een andere kaart)",pn="Afbeelding in plaats van het pictogram (URL)",hn="Waarde onder de aanwijzer tonen",kn="As",bn="Links",vn="Rechts (eigen schaal)",yn="Combineren met",wn="Huidige waarde als vlakke lijn tekenen",fn="Waarde naast de hoofdwaarde tonen",jn="Gekleurde stip op basis van de waarde",xn="In de grafiek",Gn="Lijn",zn="Vulling",En="Punten",Ln="In de legenda",Vn="Waarde in de legenda",Sn="Richtingen",Tn="4 (N, E, S, W)",Nn="8 (N, NE, E…)",An="16 (N, NNE, NE…)",Kn="Windstil onder (leeg: 0,5 m/s, of hetzelfde in km/h, mph of knopen)",Bn="De eerste entiteit is de windrichting, in graden of windstreken zoals SW. De tweede is de windsnelheid: zonder die tonen de bladen alleen hoe vaak de wind uit elke richting kwam.",Wn="Richting: {direction}. Snelheid: {speed}.",Dn="geen",Hn="Langetermijnstatistieken geven per uur de gemiddelde richting. Dat klopt rond het noorden alleen als de sensor de richting als hoek vastlegt (statusklasse measurement_angle); anders wordt een uur dat tussen NNW en NNO schommelt gemiddeld zuid. Geschiedenis is exact.",Pn="Vlak",Rn="Stapelen",On="Niet stapelen",Mn="Op elkaar",Un="Tot 100 %",Cn="Kleur onder nul",In="Bijenzwerm",Zn="Plaats elk punt op",qn="Zijn waarde",Jn="Het tijdstip waarop het gebeurde",Fn="Grotere punten voor grotere waarden",Qn="{n} metingen",Xn="{n} keer aan",Yn="Getoonde punten",$n="Geen metingen",e_="Vroegste – laatste",t_="Laagste – hoogste",o_="Kleur",r_="Boxplot",i_="Boxplot van {names}",a_="Hoogste",n_="Bovenste kwartiel",__="Mediaan",d_="Onderste kwartiel",l_="Laagste",s_="Gemiddelde",g_="Metingen",m_="Uitschieters",u_="Snorharen reiken tot",c_="1,5 × boxhoogte (uitschieters als punten)",p_="De laagste en hoogste",h_="Elke meting als punt tonen",k_="Boxkleur",b_="Bullet",v_="Bereiken achter de balk",y_="Grijstinten",w_="Kleuren van de kleurbanden",f_="doel {target}",j_="{style}-grafiek van {names}",x_="Candlestick",G_="Eén kaars per",z_="Entiteiten eronder: metingen combineren met",E_="Kleur bij stijging",L_="Kleur bij daling",V_="Andere entiteiten eronder tekenen als",S_="Kolommen",T_="Een lijn",N_="Open",A_="Hoog",K_="Laag",B_="Slot",W_="Week van {date}",D_="Klimaat",H_="Instelpunt",P_="{low} – {high}",R_="{name} is geen thermostaat. Kies een klimaatentiteit.",O_="Verwarmen",M_="Voorverwarmen",U_="Koelen",C_="Ontdooien",I_="Drogen",Z_="Ventilator",q_="Inactief",J_="Uit",F_="Kolom",Q_="Automatisch",X_="Laagste tot hoogste per kolom",Y_="Afgeronde uiteinden",$_="Waarden op de kolommen tonen",ed="Kleur",td="Gecombineerd",od="Tekenen als",rd="Lijn",id="Kolommen",ad="Vlak",nd="Waardeas",_d="Automatisch (per eenheid)",dd="Links",ld="Rechts",sd="Combineren met",gd="Zoals de kaart",md="Gemiddelde",ud="Som",cd="Laagste",pd="Hoogste",hd="Eerste",kd="Laatste",bd="Verandering (oplopende meters)",vd="24-uursklok",yd="één keer",wd="{n} keer",fd="{text} per dag",jd="{total} · drukst {time}",xd="piek {value} om {time}",Gd="{name} {state}",zd="{label} per dag",Ed="Niets vastgelegd",Ld="Nu",Vd="aan",Sd="Gemiddelde dag · afgelopen {n} dagen",Td="op {on} van {of} dagen",Nd="{duration} tot nu toe",Ad="{from} – {to}",Kd="gemiddeld {value}",Bd="Halter",Wd="Vergelijken",Dd="Laagste en hoogste in de periode",Hd="Begin van de periode en nu",Pd="Doel en nu",Rd="Huidige waarde markeren",Od="Laag",Md="Hoog",Ud="Nu",Cd="Doel",Id="Een uur geleden",Zd="{n} uur geleden",qd="Een dag geleden",Jd="{n} dagen geleden",Fd="Een week geleden",Qd="{n} weken geleden",Xd="Een maand geleden",Yd="{n} maanden geleden",$d="Geen waarde",el="Trechter",tl="Vorm",ol="Trechter (eerste fase bovenaan)",rl="Piramide (eerste fase onderaan)",il="Percentages",al="Aandeel van de eerste fase",nl="Aandeel van de vorige fase",_l="Niet tonen",dl="Kleur",ll="Eén kleur per entiteit",sl="Per kleurband",gl="{style} van {names}",ml="Gegroepeerde balken",ul="Balken",cl="Naast elkaar",pl="Gestapeld",hl="Gestapeld tot 100 %",kl="Kleur",bl="Eén kleur per reeks",vl="Per kleurband",yl="Rij",wl="Reeks",fl="Balkkleur",jl="Staafdiagram van {names}",xl="Heatmap",Gl="Heatmap van {name}",zl="Gemiddelde over dagen",El="Geen metingen",Ll="Indeling",Vl="Uur per weekdag",Sl="Kalender (een dag per cel)",Tl="Vloeiende schaal",Nl="Cellen",Al="Vierkant",Kl="Afgerond",Bl="Zeshoek",Wl="Laagste kleur bij",Dl="Hoogste kleur bij",Hl="Legenda",Pl="Histogram",Rl="Tellen",Ol="Tijd in elk bereik",Ml="Metingen in elk bereik",Ul="Tonen als",Cl="Aandeel van het geheel (%)",Il="Uren of metingen",Zl="Aantal klassen (leeg: automatisch)",ql="Klassebreedte (gaat voor het aantal)",Jl="Twee of meer entiteiten",Fl="Balken naast elkaar",Ql="Balken over elkaar",Xl="Waardelabels langs de onderkant",Yl="{n} metingen",$l="1 meting",es="Lijn",ts="Geschiedenis laden…",os="Kan geschiedenis niet laden: {error}",rs="Geen metingen in deze periode.",is="Niets boven nul om op een logaritmische schaal te tekenen.",as="Lolly",ns="Pictogrammen",_s="Pictogram (elke entiteit kan een eigen hebben)",ds="Elk pictogram staat voor (leeg: automatisch)",ls="Pictogrammen per groep (0: geen groepen)",ss="Pictogram deels vullen voor breuken",gs="Taart / donut",ms="Vorm",us="Donut",cs="Taart",ps="Regel onder het totaal",hs="Ruimte tussen segmenten",ks="Kleurverloop",bs="Polair vlak",vs="Schaal",ys="Eén schaal voor alle, van 0 tot de grootste waarde",ws="Elk segment van het minimum tot het maximum van zijn entiteit",fs="Kleur",js="Eén kleur per entiteit",xs="Tinten van één kleur, donkerder voor meer",Gs="Per kleurband",zs="Kleur voor tinten",Es="Polair vlakdiagram van {names}",Ls="Radar",Vs="Schaal",Ss="Elke as van het minimum tot het maximum van zijn entiteit",Ts="Eén schaal voor alle, van 0 tot de grootste waarde",Ns="Vormen vullen",As="Asnaam (entiteiten met dezelfde asnaam liggen in alle groepen op één lijn)",Ks="Radardiagram van {names}",Bs="Overig",Ws="Bereikvlak",Ds="Gemiddelde als lijn tekenen",Hs="Kleur",Ps="Ringen",Rs="Beginhoek (0 is boven)",Os="Afgeronde uiteinden",Ms="Sankey (stroom)",Us="Stromen kleuren naar",Cs="Waar ze vandaan komen, of waar ze heen gaan na een middelste knooppunt",Is="Waar ze vandaan komen",Zs="Waar ze heen gaan",qs="Stroomt van",Js="Stroomt naar",Fs="Stroomkleur",Qs="Stroomdiagram: {flows}",Xs="{from} naar {to} {value}",Ys='Geef elke entiteit in de opties een "Stroomt van" en een "Stroomt naar".',$s="Er stroomt nu niets.",eg="Helling",tg="Vergelijken",og="De meting toen en nu",rg="Hoeveel het per periode steeg (meters)",ig="Omhoog of omlaag",ag="Per groep",ng="Een stijging is",_g="Slecht (rood)",dg="Goed (groen)",lg="Groep",sg="Nu",gg="{n} {unit} geleden",mg="Een {unit} geleden",ug="Vorige {n} {unit}",cg="Vorige {unit}",pg="Afgelopen {n} {unit}",hg="Afgelopen {unit}",kg="uur",bg="uur",vg="dag",yg="dagen",wg="week",fg="weken",jg="maand",xg="maanden",Gg="{name}, {from} tot {to}",zg="geen meting",Eg="Sparklines",Lg="Sparkline",Vg="Lijn",Sg="Vlak",Tg="Kolommen",Ng="Balk onder de naam en waarde",Ag="Kleur",Kg="Trend van {name}",Bg="Streamgraph",Wg="Vorm",Dg="Streamgraph (golvend)",Hg="Gecentreerd",Pg="Aandeel van het totaal (100 %)",Rg="Gestapeld vanaf nul",Og="Volgorde",Mg="Grootste in het midden",Ug="Zoals opgegeven, eerste onderaan",Cg="Namen op de stromen",Ig="Randen",Zg="Totaal",qg="Sunburst",Jg="IJspegel",Fg="Vorm",Qg="Volle cirkel",Xg="Halve cirkel",Yg="Kleur",$g="Eén kleur per groep",em="Per kleurband",tm="Totaal",om="Overig",rm="Niets te tonen: geen entiteit heeft een waarde boven nul.",im="Geen meting:",am="Sunburst van {names}",nm="IJspegeldiagram van {names}",_m="Statustijdlijn",dm="Geen statussen vastgelegd in deze periode.",lm="gedurende {duration}",sm="Nu",gm="Metingen, geen statussen: een lijngrafiek past hier beter",mm="Treemap",um="Kleur",cm="Eén kleur per groep",pm="Per kleurband",hm="Treemap van {names}",km="{value} in totaal",bm="Niets te tonen: geen entiteit heeft een waarde boven nul.",vm="Geen meting:",ym="Overig",wm="Trend",fm="Laag",jm="Gemiddelde",xm="Hoog",Gm="Viool",zm="Viool",Em="Regenwolk (halve viool, box en metingen)",Lm="Box met de mediaan en middelste helft",Vm="Afvlakking (in de eenheid van de entiteit, leeg voor automatisch)",Sm="Eén vorm per",Tm="Entiteit",Nm="Entiteit en dag",Am="Entiteit en week",Km="Entiteit en maand",Bm="mediaan {value}",Wm="Geen metingen",Dm="Regenwolk",Hm="Wafel",Pm="Wafels",Rm="Eén, verdeeld over de entiteiten",Om="Eén per entiteit, naast elkaar",Mm="Eerste aandeel in grote letters tonen",Um="Waterval",Cm="Elke stap is",Im="Hoeveel het in de periode veranderde",Zm="De huidige waarde",qm="Beginnen bij de meting van de eerste entiteit aan het begin van de periode",Jm="Totaal aan het einde tonen",Fm="Telt af (een stijging hiervan is een daling van het totaal)",Qm="Begin",Xm="Einde",Ym="Totaal",$m="Geen metingen",eu="Watervaldiagram: {bars}",tu="Windroos",ou="Overheersend",ru="Gemiddelde snelheid",iu="Sterkst",au="Windstil",nu="Snelheid",_u="Snelheid ({unit})",du="Van de tijd",lu="Windroos, overheersend {direction} {share}",su="Windroos, overheersend {direction} {share}, windstil {calm}",gu="Windroos, windstil {calm}";var mu={entity_not_found:e,unavailable:t,no_entities:o,no_matches:r,none_available:i,editor_section_entities:a,editor_section_style:n,editor_section_chart:_,editor_group_bars:d,editor_group_gauges:l,editor_group_history:s,editor_group_totals:g,editor_group_compare:m,editor_group_distribution:u,editor_period_last:c,editor_period_unit:p,editor_period_unit_hour:h,editor_period_unit_day:k,editor_period_unit_week:b,editor_period_unit_month:v,editor_source:y,editor_source_history:w,editor_source_statistics:f,editor_curve:j,editor_curve_smooth:x,editor_curve_straight:G,editor_curve_step:z,editor_color_by:E,editor_color_by_series:L,editor_color_by_bands:V,editor_labels:S,editor_series_color:T,editor_dash:N,editor_section_limits:A,editor_section_colours:K,editor_section_display:B,editor_section_actions:W,editor_title:D,editor_style_bar:H,editor_style_thin:"Dun",editor_style_segmented:R,editor_style_tank:O,editor_style_ring:M,editor_style_needle:U,editor_style_arc:C,editor_gauge_help:I,editor_start_angle:Z,editor_end_angle:q,editor_center:J,editor_center_mode_value:F,editor_center_mode_band:Q,editor_center_mode_name:X,editor_center_mode_text:Y,editor_center_mode_none:$,editor_center_text:ee,editor_tick_labels:te,editor_show_name:oe,editor_show_value:re,editor_show_icon:ie,editor_show_target:ae,editor_show_legend:ne,editor_columns:_e,editor_sort:de,editor_sort_none:le,editor_sort_ascending:se,editor_sort_descending:ge,editor_decimals:me,editor_unit:ue,editor_animate:ce,editor_hide_unavailable:pe,editor_limit:he,editor_include_heading:ke,editor_include_help:be,editor_exclude_heading:ve,editor_exclude_help:ye,editor_rule_device_class:we,editor_rule_area:fe,editor_rule_floor:je,editor_rule_label:xe,editor_rule_domain:Ge,editor_rule_entity:ze,editor_tap_action:Ee,editor_hold_action:Le,editor_double_tap_action:Ve,editor_attribute:Se,editor_name:Te,editor_icon:Ne,editor_min:Ae,editor_max:Ke,editor_target:Be,editor_none:We,editor_card_setting:De,editor_limit_default:He,editor_limit_number:Pe,editor_limit_entity:Re,editor_preset:Oe,editor_preset_battery:Me,editor_preset_usage:Ue,editor_preset_temperature:Ce,editor_preset_none:Ie,editor_preset_custom:Ze,editor_band_from:qe,editor_band_from_entity:Je,editor_band_from_number:Fe,editor_band_from_entity_label:Qe,editor_band_color:Xe,editor_band_custom_color:Ye,editor_band_label:$e,editor_band_icon:et,editor_color_icon:tt,editor_color_primary:ot,editor_color_green:rt,editor_color_amber:it,editor_color_red:at,editor_color_blue:nt,editor_color_purple:_t,editor_color_grey:dt,editor_color_custom:lt,editor_add_band:st,editor_remove_band:gt,editor_add_entity:mt,editor_move_up:ut,editor_move_down:ct,editor_remove_entity:pt,editor_show_options:ht,editor_hide_options:kt,editor_not_found:bt,editor_severity:vt,annotation_at:yt,editor_orientation:wt,editor_orientation_horizontal:ft,editor_orientation_vertical:jt,editor_value_axis:xt,editor_value_grid:Gt,editor_value_min:zt,editor_value_max:Et,dist_median:Lt,dist_middle:Vt,dist_range:St,dist_count:Tt,editor_drill_down:Nt,drill_into:At,drill_back:Kt,drill_top:Bt,extremes_high:Wt,extremes_low:Dt,extremes_average:Ht,editor_extremes_max:Pt,editor_extremes_min:Rt,editor_extremes_average:Ot,editor_extremes_average_none:Mt,editor_extremes_average_line:Ut,editor_extremes_average_figure:Ct,editor_extremes:It,period_previous:Zt,period_next:qt,period_return:Jt,period_today:Ft,period_yesterday:Qt,period_this_week:Xt,period_last_week:Yt,period_this_month:$t,period_last_month:eo,period_this_year:to,period_last_year:oo,period_last_hour:ro,period_last_hours:io,period_last_day:ao,period_last_days:no,period_last_week_rolling:_o,period_last_weeks:lo,period_last_month_rolling:so,period_last_months:go,editor_color_by_shades:mo,editor_shade_color:uo,editor_show_percent:co,editor_center_total:po,editor_center_average:ho,editor_center_none:ko,parts_total:bo,parts_average:vo,parts_aria:yo,editor_style_scatter:wo,editor_style_bubble:fo,editor_against:jo,editor_against_entity:xo,editor_against_time:Go,editor_dot_size:zo,editor_jitter:Eo,editor_min_size:Lo,editor_max_size:Vo,editor_dot_color:So,editor_xy_x_axis:To,scatter_needs_two:No,bubble_needs_three:Ao,scatter_role_x:Ko,bubble_role_size:Bo,chart_total:Wo,editor_x_min:Do,editor_x_max:Ho,zoom_reset:Po,zoom_window:Ro,zoom_window_label:Oo,editor_zoom:Mo,editor_overview:Uo,editor_annotations:Co,editor_annotation_type:Io,editor_annotation_type_line:Zo,editor_annotation_type_band:qo,editor_annotation_type_time:Jo,editor_annotation_type_state:Fo,editor_annotation_type_point:Qo,editor_annotation_add_line:Xo,editor_annotation_add_band:Yo,editor_annotation_add_time:$o,editor_annotation_add_state:er,editor_annotation_add_point:tr,editor_annotation_add:or,editor_annotation_value:rr,editor_annotation_from:ir,editor_annotation_to:ar,editor_annotation_times:nr,editor_annotation_entity:_r,editor_annotation_series:dr,editor_annotation_state:lr,editor_annotation_shade:sr,editor_annotation_at:gr,editor_annotation_at_max:mr,editor_annotation_at_min:ur,editor_annotation_at_last:cr,editor_annotation_at_first:pr,editor_annotation_label:hr,editor_annotation_color:kr,editor_annotation_dash:br,editor_annotation_remove:vr,editor_zones:yr,editor_period_calendar:wr,editor_period_calendar_rolling:fr,editor_period_calendar_day:jr,editor_period_calendar_week:xr,editor_period_calendar_month:Gr,editor_period_calendar_year:zr,editor_period_offset:Er,editor_period_until:Lr,editor_period_until_now:"Nu",editor_period_until_end:Sr,editor_period_navigate:Tr,editor_group_by:Nr,editor_group_by_none:Ar,editor_group_by_hour:"Uur",editor_group_by_day:"Dag",editor_group_by_week:Wr,editor_group_by_month:Dr,editor_aggregate:Hr,editor_aggregate_mean:Pr,editor_aggregate_sum:"Som",editor_aggregate_min:Or,editor_aggregate_max:Mr,editor_aggregate_first:Ur,editor_aggregate_last:Cr,editor_aggregate_change:Ir,editor_x_axis:Zr,editor_y_axis:qr,editor_axis_labels:Jr,editor_axis_labels_outside:Fr,editor_axis_labels_inside:Qr,editor_grid_horizontal:Xr,editor_grid_vertical:Yr,editor_y_min:$r,editor_y_max:ei,editor_y_scale:ti,editor_y_scale_linear:oi,editor_y_scale_log:ri,editor_tooltip:ii,editor_line_width:ai,editor_dots:ni,editor_on_top:_i,editor_compact:di,editor_header:li,editor_header_above:si,editor_header_over:gi,editor_header_hidden:mi,editor_labels_show:ui,editor_labels_show_all:ci,editor_labels_show_last:pi,editor_labels_show_minmax:hi,editor_labels_show_ends:ki,editor_labels_position:bi,editor_labels_position_auto:vi,editor_labels_position_above:yi,editor_labels_position_below:wi,editor_labels_position_center:fi,editor_labels_overlap:ji,editor_sync:xi,editor_multiples:Gi,editor_multiples_scale:zi,editor_multiples_scale_auto:Ei,editor_multiples_scale_shared:Li,editor_multiples_scale_independent:Vi,editor_multiples_columns:Si,editor_set_point:Ti,editor_shading:Ni,editor_shade_fan:Ai,editor_current_color:Ki,editor_set_point_color:Bi,editor_heating_color:Wi,editor_cooling_color:Di,editor_days:Hi,editor_day_clock_center_total:Pi,editor_day_clock_center_now:Ri,editor_day_clock_center_none:Oi,editor_bucket:Mi,editor_bucket_15:Ui,editor_bucket_30:Ci,editor_bucket_60:"Uur",editor_aggregate_auto:Zi,editor_ring_color:qi,editor_active:Ji,editor_entity_options_none:Fi,editor_hierarchy_group_by:Qi,editor_group_by_floor:Xi,editor_group_by_area:Yi,editor_group_by_device:$i,editor_group_by_label:ea,editor_entity_groups:ta,editor_bar_labels:oa,editor_bar_labels_state:ra,editor_bar_labels_duration:ia,editor_bar_labels_both:aa,editor_bar_labels_none:na,editor_timeline_legend:_a,editor_timeline_legend_above:da,editor_timeline_legend_hidden:la,editor_state_colors:sa,editor_state_colors_help:ga,editor_state_colors_state:ma,editor_state_colors_color:ua,editor_state_colors_add:ca,editor_state_colors_remove:pa,editor_timeline_group:ha,editor_points_per_hour:ka,editor_graph:ba,editor_graph_line:va,editor_graph_bar:ya,editor_graph_none:wa,editor_fill:fa,editor_fill_solid:ja,editor_fill_fade:xa,editor_fill_none:Ga,editor_points:za,editor_points_hover:Ea,editor_points_always:La,editor_points_never:Va,editor_trend_labels:Sa,editor_labels_hover:Ta,editor_labels_always:Na,editor_labels_never:Aa,editor_height:Ka,editor_bar_spacing:Ba,editor_color_transition:Wa,editor_color_transition_smooth:Da,editor_color_transition_hard:Ha,editor_extrema:Pa,editor_average:Ra,editor_trend_legend:Oa,editor_trend_y_min:Ma,editor_trend_y_max:Ua,editor_min_range:Ca,editor_y_min_secondary:Ia,editor_y_max_secondary:Za,editor_min_range_secondary:qa,editor_value_factor:Ja,editor_align_header:Fa,editor_align_header_default:Qa,editor_align_header_left:Xa,editor_align_header_right:Ya,editor_align_header_center:$a,editor_align_icon:en,editor_align_icon_right:tn,editor_align_icon_left:on,editor_align_icon_state:rn,editor_align_state:an,editor_align_state_left:nn,editor_align_state_right:_n,editor_align_state_center:dn,editor_font_size:ln,editor_font_size_header:sn,editor_color_name:gn,editor_color_value:mn,editor_trend_color_icon:un,editor_trend_group:cn,editor_icon_image:pn,editor_trend_tooltip:hn,editor_y_axis_side:"As",editor_y_axis_side_primary:bn,editor_y_axis_side_secondary:vn,editor_entity_aggregate:yn,editor_fixed_value:wn,editor_show_state:fn,editor_show_indicator:jn,editor_show_graph:xn,editor_show_line:Gn,editor_show_fill:zn,editor_show_points:En,editor_show_legend_entity:Ln,editor_show_legend_state:Vn,editor_sectors:Sn,editor_sectors_4:Tn,editor_sectors_8:Nn,editor_sectors_16:An,editor_calm:Kn,editor_wind_roles:Bn,editor_wind_now:Wn,editor_wind_none:Dn,editor_wind_statistics:Hn,editor_style_area:Pn,editor_stack:Rn,editor_stack_none:On,editor_stack_normal:Mn,editor_stack_percent:Un,editor_negative_color:Cn,editor_style_beeswarm:In,editor_place_by:Zn,editor_place_by_value:qn,editor_place_by_time_of_day:Jn,editor_size_by_value:Fn,swarm_readings:Qn,swarm_events:Xn,swarm_shown:Yn,swarm_none:$n,swarm_earliest_latest:e_,swarm_lowest_highest:t_,editor_fill_color:o_,editor_style_box:r_,box_aria:i_,box_highest:a_,box_upper_quartile:n_,box_median:__,box_lower_quartile:d_,box_lowest:l_,box_mean:s_,box_count:g_,box_outliers:m_,editor_whiskers:u_,editor_whiskers_tukey:c_,editor_whiskers_range:p_,editor_readings:h_,editor_box_color:k_,editor_style_bullet:b_,editor_ranges:v_,editor_ranges_shades:y_,editor_ranges_colours:w_,compare_target:f_,chart_aria:j_,editor_style_candlestick:x_,editor_candle_by:G_,editor_under_aggregate:z_,editor_up_color:E_,editor_down_color:L_,editor_underneath:V_,editor_underneath_columns:S_,editor_underneath_line:T_,candle_open:N_,candle_high:A_,candle_low:K_,candle_close:B_,candle_week_of:W_,editor_style_climate:D_,climate_set_point:H_,climate_range:P_,climate_not_thermostat:R_,climate_action_heating:O_,climate_action_preheating:M_,climate_action_cooling:U_,climate_action_defrosting:C_,climate_action_drying:I_,climate_action_fan:Z_,climate_action_idle:q_,climate_action_off:"Uit",editor_style_column:F_,editor_group_by_auto:Q_,editor_range:X_,editor_rounded:Y_,editor_column_labels:$_,editor_column_color:ed,editor_style_combined:td,editor_series_type:od,editor_series_type_line:rd,editor_series_type_column:id,editor_series_type_area:ad,editor_series_axis:nd,editor_series_axis_auto:_d,editor_series_axis_left:dd,editor_series_axis_right:ld,editor_series_aggregate:sd,editor_series_aggregate_auto:gd,editor_series_aggregate_mean:md,editor_series_aggregate_sum:"Som",editor_series_aggregate_min:cd,editor_series_aggregate_max:pd,editor_series_aggregate_first:hd,editor_series_aggregate_last:kd,editor_series_aggregate_change:bd,editor_style_day_clock:vd,day_clock_times_one:yd,day_clock_times:wd,day_clock_a_day:fd,day_clock_busiest:jd,day_clock_peak:xd,day_clock_state:Gd,day_clock_per_day:zd,day_clock_no_data:Ed,day_clock_now:"Nu",day_clock_on:"aan",day_clock_average:Sd,day_clock_on_days:Td,day_clock_so_far:Nd,day_clock_range:Ad,day_clock_average_value:Kd,editor_style_dumbbell:Bd,editor_ends:Wd,editor_ends_range:Dd,editor_ends_then:Hd,editor_ends_target:Pd,editor_show_now:Rd,dumbbell_low:Od,dumbbell_high:Md,dumbbell_now:"Nu",dumbbell_target:Cd,dumbbell_ago_hour_one:Id,dumbbell_ago_hour:Zd,dumbbell_ago_day_one:qd,dumbbell_ago_day:Jd,dumbbell_ago_week_one:Fd,dumbbell_ago_week:Qd,dumbbell_ago_month_one:Xd,dumbbell_ago_month:Yd,dumbbell_no_value:$d,editor_style_funnel:el,editor_funnel_shape:tl,editor_funnel_shape_funnel:ol,editor_funnel_shape_pyramid:rl,editor_funnel_percent_of:il,editor_funnel_percent_of_first:al,editor_funnel_percent_of_previous:nl,editor_funnel_percent_of_none:_l,editor_funnel_color_by:dl,editor_funnel_color_by_series:ll,editor_funnel_color_by_bands:sl,funnel_aria:gl,editor_style_grouped_bars:ml,editor_mode:ul,editor_mode_grouped:cl,editor_mode_stacked:pl,editor_mode_percent:hl,editor_bars_color_by:kl,editor_bars_color_by_series:bl,editor_bars_color_by_bands:vl,editor_bar_group:"Rij",editor_bar_series:wl,editor_bar_color:fl,grouped_bars_aria:jl,editor_style_heatmap:xl,heatmap_aria:Gl,heatmap_hours:zl,heatmap_empty:El,editor_grid:Ll,editor_grid_hours:Vl,editor_grid_calendar:Sl,editor_color_by_scale:Tl,editor_cell_shape:Nl,editor_cell_shape_square:Al,editor_cell_shape_rounded:Kl,editor_cell_shape_hexagon:Bl,editor_color_min:Wl,editor_color_max:Dl,editor_legend:Hl,editor_style_histogram:Pl,editor_count:Rl,editor_count_time:Ol,editor_count_readings:Ml,editor_show_as:Ul,editor_show_as_percent:Cl,editor_show_as_total:Il,editor_bins:Zl,editor_bin_width:ql,editor_bars:Jl,editor_bars_side:Fl,editor_bars_overlap:Ql,editor_hist_x_axis:Xl,histogram_readings:Yl,histogram_reading:$l,editor_style_line:es,chart_loading:ts,chart_error:os,chart_no_data:rs,chart_log_nothing:is,editor_style_lollipop:as,editor_style_pictograph:ns,editor_unit_icon:_s,editor_per_icon:ds,editor_group_size:ls,editor_partial:ss,editor_style_pie:gs,editor_shape:ms,editor_shape_donut:us,editor_shape_pie:cs,editor_center_label:ps,editor_gap:hs,editor_gradient:ks,editor_style_polar_area:bs,editor_polar_scale:vs,editor_polar_scale_shared:ys,editor_polar_scale_limits:ws,editor_polar_color_by:fs,editor_polar_color_by_series:js,editor_polar_color_by_shades:xs,editor_polar_color_by_bands:Gs,editor_polar_color:zs,polar_area_aria:Es,editor_style_radar:Ls,editor_radar_scale:Vs,editor_radar_scale_limits:Ss,editor_radar_scale_shared:Ts,editor_radar_fill:Ns,editor_radar_axis:As,radar_aria:Ks,radar_other:Bs,editor_style_range_area:Ws,editor_mean:Ds,editor_range_color:Hs,editor_style_rings:Ps,editor_rings_start_angle:Rs,editor_rounded_ends:Os,editor_style_sankey:Ms,editor_link_color:Us,editor_link_color_auto:Cs,editor_link_color_source:Is,editor_link_color_target:Zs,editor_from:qs,editor_to:Js,editor_flow_color:Fs,sankey_aria:Qs,sankey_flow:Xs,sankey_no_flows:Ys,sankey_nothing:$s,editor_style_slope:eg,editor_measure:tg,editor_measure_value:og,editor_measure_change:rg,editor_color_by_direction:ig,editor_color_by_group:ag,editor_increase:ng,editor_increase_bad:_g,editor_increase_good:dg,editor_group:lg,slope_now:"Nu",slope_ago:gg,slope_ago_one:mg,slope_previous:ug,slope_previous_one:cg,slope_last:pg,slope_last_one:hg,slope_unit_hour:"uur",slope_unit_hour_other:"uur",slope_unit_day:"dag",slope_unit_day_other:yg,slope_unit_week:wg,slope_unit_week_other:fg,slope_unit_month:jg,slope_unit_month_other:xg,slope_entity_aria:Gg,slope_no_reading:zg,editor_style_sparkline:Eg,editor_spark:Lg,editor_spark_line:Vg,editor_spark_area:Sg,editor_spark_column:Tg,editor_spark_bar:Ng,editor_spark_color:Ag,spark_aria:Kg,editor_style_streamgraph:Bg,editor_baseline:Wg,editor_baseline_wiggle:Dg,editor_baseline_centre:Hg,editor_baseline_share:Pg,editor_baseline_zero:Rg,editor_stream_order:Og,editor_stream_order_inside_out:Mg,editor_stream_order_listed:Ug,editor_stream_labels:Cg,editor_stream_curve:Ig,stream_total:Zg,editor_style_sunburst:qg,editor_style_icicle:Jg,editor_sunburst_shape:Fg,editor_sunburst_shape_full:Qg,editor_sunburst_shape_half:Xg,editor_hierarchy_color_by:Yg,editor_hierarchy_color_by_group:$g,editor_hierarchy_color_by_bands:em,hierarchy_total:tm,hierarchy_other:om,hierarchy_empty:rm,hierarchy_no_reading:im,sunburst_aria:am,icicle_aria:nm,editor_style_timeline:_m,timeline_no_states:dm,timeline_for:lm,timeline_now:"Nu",timeline_measurement:gm,editor_style_treemap:mm,editor_treemap_color_by:um,editor_treemap_color_by_group:cm,editor_treemap_color_by_bands:pm,treemap_aria:hm,treemap_total:km,treemap_empty:bm,treemap_no_reading:vm,treemap_other:ym,editor_style_trend:wm,trend_min:fm,trend_avg:jm,trend_max:xm,editor_style_violin:Gm,editor_shape_violin:zm,editor_shape_raincloud:Em,editor_box:Lm,editor_bandwidth:Vm,editor_split_by:Sm,editor_split_by_none:Tm,editor_split_by_day:Nm,editor_split_by_week:Am,editor_split_by_month:Km,violin_median:Bm,violin_none:Wm,violin_raincloud:Dm,editor_style_waffle:Hm,editor_waffles:Pm,editor_waffles_one:Rm,editor_waffles_each:Om,editor_headline:Mm,editor_style_waterfall:Um,editor_steps:Cm,editor_steps_change:Im,editor_steps_current:Zm,editor_start_from_first:qm,editor_total:Jm,editor_waterfall_invert:Fm,waterfall_start:Qm,waterfall_end:Xm,waterfall_total:Ym,waterfall_no_readings:$m,waterfall_aria:eu,editor_style_wind_rose:tu,wind_prevailing:ou,wind_mean_speed:ru,wind_strongest:iu,wind_calm:au,wind_speed:nu,wind_speed_unit:_u,wind_share:du,wind_aria:lu,wind_aria_calm:su,wind_aria_still:gu};export{yt as annotation_at,i_ as box_aria,g_ as box_count,a_ as box_highest,d_ as box_lower_quartile,l_ as box_lowest,s_ as box_mean,__ as box_median,m_ as box_outliers,n_ as box_upper_quartile,Ao as bubble_needs_three,Bo as bubble_role_size,B_ as candle_close,A_ as candle_high,K_ as candle_low,N_ as candle_open,W_ as candle_week_of,j_ as chart_aria,os as chart_error,ts as chart_loading,is as chart_log_nothing,rs as chart_no_data,Wo as chart_total,U_ as climate_action_cooling,C_ as climate_action_defrosting,I_ as climate_action_drying,Z_ as climate_action_fan,O_ as climate_action_heating,q_ as climate_action_idle,J_ as climate_action_off,M_ as climate_action_preheating,R_ as climate_not_thermostat,P_ as climate_range,H_ as climate_set_point,f_ as compare_target,fd as day_clock_a_day,Sd as day_clock_average,Kd as day_clock_average_value,jd as day_clock_busiest,Ed as day_clock_no_data,Ld as day_clock_now,Vd as day_clock_on,Td as day_clock_on_days,xd as day_clock_peak,zd as day_clock_per_day,Ad as day_clock_range,Nd as day_clock_so_far,Gd as day_clock_state,wd as day_clock_times,yd as day_clock_times_one,mu as default,Tt as dist_count,Lt as dist_median,Vt as dist_middle,St as dist_range,Kt as drill_back,At as drill_into,Bt as drill_top,Jd as dumbbell_ago_day,qd as dumbbell_ago_day_one,Zd as dumbbell_ago_hour,Id as dumbbell_ago_hour_one,Yd as dumbbell_ago_month,Xd as dumbbell_ago_month_one,Qd as dumbbell_ago_week,Fd as dumbbell_ago_week_one,Md as dumbbell_high,Od as dumbbell_low,$d as dumbbell_no_value,Ud as dumbbell_now,Cd as dumbbell_target,Ji as editor_active,st as editor_add_band,mt as editor_add_entity,jo as editor_against,xo as editor_against_entity,Go as editor_against_time,Hr as editor_aggregate,Zi as editor_aggregate_auto,Ir as editor_aggregate_change,Ur as editor_aggregate_first,Cr as editor_aggregate_last,Mr as editor_aggregate_max,Pr as editor_aggregate_mean,Or as editor_aggregate_min,Rr as editor_aggregate_sum,Fa as editor_align_header,$a as editor_align_header_center,Qa as editor_align_header_default,Xa as editor_align_header_left,Ya as editor_align_header_right,en as editor_align_icon,on as editor_align_icon_left,tn as editor_align_icon_right,rn as editor_align_icon_state,an as editor_align_state,dn as editor_align_state_center,nn as editor_align_state_left,_n as editor_align_state_right,ce as editor_animate,or as editor_annotation_add,Yo as editor_annotation_add_band,Xo as editor_annotation_add_line,tr as editor_annotation_add_point,er as editor_annotation_add_state,$o as editor_annotation_add_time,gr as editor_annotation_at,pr as editor_annotation_at_first,cr as editor_annotation_at_last,mr as editor_annotation_at_max,ur as editor_annotation_at_min,kr as editor_annotation_color,br as editor_annotation_dash,_r as editor_annotation_entity,ir as editor_annotation_from,hr as editor_annotation_label,vr as editor_annotation_remove,dr as editor_annotation_series,sr as editor_annotation_shade,lr as editor_annotation_state,nr as editor_annotation_times,ar as editor_annotation_to,Io as editor_annotation_type,qo as editor_annotation_type_band,Zo as editor_annotation_type_line,Qo as editor_annotation_type_point,Fo as editor_annotation_type_state,Jo as editor_annotation_type_time,rr as editor_annotation_value,Co as editor_annotations,Se as editor_attribute,Ra as editor_average,Jr as editor_axis_labels,Qr as editor_axis_labels_inside,Fr as editor_axis_labels_outside,Xe as editor_band_color,Ye as editor_band_custom_color,qe as editor_band_from,Je as editor_band_from_entity,Qe as editor_band_from_entity_label,Fe as editor_band_from_number,et as editor_band_icon,$e as editor_band_label,Vm as editor_bandwidth,fl as editor_bar_color,yl as editor_bar_group,oa as editor_bar_labels,aa as editor_bar_labels_both,ia as editor_bar_labels_duration,na as editor_bar_labels_none,ra as editor_bar_labels_state,wl as editor_bar_series,Ba as editor_bar_spacing,Jl as editor_bars,kl as editor_bars_color_by,vl as editor_bars_color_by_bands,bl as editor_bars_color_by_series,Ql as editor_bars_overlap,Fl as editor_bars_side,Wg as editor_baseline,Hg as editor_baseline_centre,Pg as editor_baseline_share,Dg as editor_baseline_wiggle,Rg as editor_baseline_zero,ql as editor_bin_width,Zl as editor_bins,Lm as editor_box,k_ as editor_box_color,Mi as editor_bucket,Ui as editor_bucket_15,Ci as editor_bucket_30,Ii as editor_bucket_60,Kn as editor_calm,G_ as editor_candle_by,De as editor_card_setting,Nl as editor_cell_shape,Bl as editor_cell_shape_hexagon,Kl as editor_cell_shape_rounded,Al as editor_cell_shape_square,J as editor_center,ho as editor_center_average,ps as editor_center_label,Q as editor_center_mode_band,X as editor_center_mode_name,$ as editor_center_mode_none,Y as editor_center_mode_text,F as editor_center_mode_value,ko as editor_center_none,ee as editor_center_text,po as editor_center_total,it as editor_color_amber,nt as editor_color_blue,E as editor_color_by,V as editor_color_by_bands,ig as editor_color_by_direction,ag as editor_color_by_group,Tl as editor_color_by_scale,L as editor_color_by_series,mo as editor_color_by_shades,lt as editor_color_custom,rt as editor_color_green,dt as editor_color_grey,tt as editor_color_icon,Dl as editor_color_max,Wl as editor_color_min,gn as editor_color_name,ot as editor_color_primary,_t as editor_color_purple,at as editor_color_red,Wa as editor_color_transition,Ha as editor_color_transition_hard,Da as editor_color_transition_smooth,mn as editor_color_value,ed as editor_column_color,$_ as editor_column_labels,_e as editor_columns,di as editor_compact,Di as editor_cooling_color,Rl as editor_count,Ml as editor_count_readings,Ol as editor_count_time,Ki as editor_current_color,j as editor_curve,x as editor_curve_smooth,z as editor_curve_step,G as editor_curve_straight,N as editor_dash,Oi as editor_day_clock_center_none,Ri as editor_day_clock_center_now,Pi as editor_day_clock_center_total,Hi as editor_days,me as editor_decimals,So as editor_dot_color,zo as editor_dot_size,ni as editor_dots,Ve as editor_double_tap_action,L_ as editor_down_color,Nt as editor_drill_down,q as editor_end_angle,Wd as editor_ends,Dd as editor_ends_range,Pd as editor_ends_target,Hd as editor_ends_then,yn as editor_entity_aggregate,ta as editor_entity_groups,Fi as editor_entity_options_none,ve as editor_exclude_heading,ye as editor_exclude_help,Pa as editor_extrema,It as editor_extremes,Ot as editor_extremes_average,Ct as editor_extremes_average_figure,Ut as editor_extremes_average_line,Mt as editor_extremes_average_none,Pt as editor_extremes_max,Rt as editor_extremes_min,fa as editor_fill,o_ as editor_fill_color,xa as editor_fill_fade,Ga as editor_fill_none,ja as editor_fill_solid,wn as editor_fixed_value,Fs as editor_flow_color,ln as editor_font_size,sn as editor_font_size_header,qs as editor_from,dl as editor_funnel_color_by,sl as editor_funnel_color_by_bands,ll as editor_funnel_color_by_series,il as editor_funnel_percent_of,al as editor_funnel_percent_of_first,_l as editor_funnel_percent_of_none,nl as editor_funnel_percent_of_previous,tl as editor_funnel_shape,ol as editor_funnel_shape_funnel,rl as editor_funnel_shape_pyramid,hs as editor_gap,I as editor_gauge_help,ks as editor_gradient,ba as editor_graph,ya as editor_graph_bar,va as editor_graph_line,wa as editor_graph_none,Ll as editor_grid,Sl as editor_grid_calendar,Xr as editor_grid_horizontal,Vl as editor_grid_hours,Yr as editor_grid_vertical,lg as editor_group,d as editor_group_bars,Nr as editor_group_by,Yi as editor_group_by_area,Q_ as editor_group_by_auto,Br as editor_group_by_day,$i as editor_group_by_device,Xi as editor_group_by_floor,Kr as editor_group_by_hour,ea as editor_group_by_label,Dr as editor_group_by_month,Ar as editor_group_by_none,Wr as editor_group_by_week,m as editor_group_compare,u as editor_group_distribution,l as editor_group_gauges,s as editor_group_history,ls as editor_group_size,g as editor_group_totals,li as editor_header,si as editor_header_above,mi as editor_header_hidden,gi as editor_header_over,Mm as editor_headline,Wi as editor_heating_color,Ka as editor_height,kt as editor_hide_options,pe as editor_hide_unavailable,Yg as editor_hierarchy_color_by,em as editor_hierarchy_color_by_bands,$g as editor_hierarchy_color_by_group,Qi as editor_hierarchy_group_by,Xl as editor_hist_x_axis,Le as editor_hold_action,Ne as editor_icon,pn as editor_icon_image,ke as editor_include_heading,be as editor_include_help,ng as editor_increase,_g as editor_increase_bad,dg as editor_increase_good,Eo as editor_jitter,S as editor_labels,Na as editor_labels_always,Ta as editor_labels_hover,Aa as editor_labels_never,ji as editor_labels_overlap,bi as editor_labels_position,yi as editor_labels_position_above,vi as editor_labels_position_auto,wi as editor_labels_position_below,fi as editor_labels_position_center,ui as editor_labels_show,ci as editor_labels_show_all,ki as editor_labels_show_ends,pi as editor_labels_show_last,hi as editor_labels_show_minmax,Hl as editor_legend,he as editor_limit,He as editor_limit_default,Re as editor_limit_entity,Pe as editor_limit_number,ai as editor_line_width,Us as editor_link_color,Cs as editor_link_color_auto,Is as editor_link_color_source,Zs as editor_link_color_target,Ke as editor_max,Vo as editor_max_size,Ds as editor_mean,tg as editor_measure,rg as editor_measure_change,og as editor_measure_value,Ae as editor_min,Ca as editor_min_range,qa as editor_min_range_secondary,Lo as editor_min_size,ul as editor_mode,cl as editor_mode_grouped,hl as editor_mode_percent,pl as editor_mode_stacked,ct as editor_move_down,ut as editor_move_up,Gi as editor_multiples,Si as editor_multiples_columns,zi as editor_multiples_scale,Ei as editor_multiples_scale_auto,Vi as editor_multiples_scale_independent,Li as editor_multiples_scale_shared,Te as editor_name,Cn as editor_negative_color,We as editor_none,bt as editor_not_found,_i as editor_on_top,wt as editor_orientation,ft as editor_orientation_horizontal,jt as editor_orientation_vertical,Uo as editor_overview,ss as editor_partial,ds as editor_per_icon,wr as editor_period_calendar,jr as editor_period_calendar_day,Gr as editor_period_calendar_month,fr as editor_period_calendar_rolling,xr as editor_period_calendar_week,zr as editor_period_calendar_year,c as editor_period_last,Tr as editor_period_navigate,Er as editor_period_offset,p as editor_period_unit,k as editor_period_unit_day,h as editor_period_unit_hour,v as editor_period_unit_month,b as editor_period_unit_week,Lr as editor_period_until,Sr as editor_period_until_end,Vr as editor_period_until_now,Zn as editor_place_by,Jn as editor_place_by_time_of_day,qn as editor_place_by_value,za as editor_points,La as editor_points_always,Ea as editor_points_hover,Va as editor_points_never,ka as editor_points_per_hour,zs as editor_polar_color,fs as editor_polar_color_by,Gs as editor_polar_color_by_bands,js as editor_polar_color_by_series,xs as editor_polar_color_by_shades,vs as editor_polar_scale,ws as editor_polar_scale_limits,ys as editor_polar_scale_shared,Oe as editor_preset,Me as editor_preset_battery,Ze as editor_preset_custom,Ie as editor_preset_none,Ce as editor_preset_temperature,Ue as editor_preset_usage,As as editor_radar_axis,Ns as editor_radar_fill,Vs as editor_radar_scale,Ss as editor_radar_scale_limits,Ts as editor_radar_scale_shared,X_ as editor_range,Hs as editor_range_color,v_ as editor_ranges,w_ as editor_ranges_colours,y_ as editor_ranges_shades,h_ as editor_readings,gt as editor_remove_band,pt as editor_remove_entity,qi as editor_ring_color,Rs as editor_rings_start_angle,Y_ as editor_rounded,Os as editor_rounded_ends,fe as editor_rule_area,we as editor_rule_device_class,Ge as editor_rule_domain,ze as editor_rule_entity,je as editor_rule_floor,xe as editor_rule_label,W as editor_section_actions,_ as editor_section_chart,K as editor_section_colours,B as editor_section_display,a as editor_section_entities,A as editor_section_limits,n as editor_section_style,Sn as editor_sectors,An as editor_sectors_16,Tn as editor_sectors_4,Nn as editor_sectors_8,sd as editor_series_aggregate,gd as editor_series_aggregate_auto,bd as editor_series_aggregate_change,hd as editor_series_aggregate_first,kd as editor_series_aggregate_last,pd as editor_series_aggregate_max,md as editor_series_aggregate_mean,cd as editor_series_aggregate_min,ud as editor_series_aggregate_sum,nd as editor_series_axis,_d as editor_series_axis_auto,dd as editor_series_axis_left,ld as editor_series_axis_right,T as editor_series_color,od as editor_series_type,ad as editor_series_type_area,id as editor_series_type_column,rd as editor_series_type_line,Ti as editor_set_point,Bi as editor_set_point_color,vt as editor_severity,uo as editor_shade_color,Ai as editor_shade_fan,Ni as editor_shading,ms as editor_shape,us as editor_shape_donut,cs as editor_shape_pie,Em as editor_shape_raincloud,zm as editor_shape_violin,Ul as editor_show_as,Cl as editor_show_as_percent,Il as editor_show_as_total,zn as editor_show_fill,xn as editor_show_graph,ie as editor_show_icon,jn as editor_show_indicator,ne as editor_show_legend,Ln as editor_show_legend_entity,Vn as editor_show_legend_state,Gn as editor_show_line,oe as editor_show_name,Rd as editor_show_now,ht as editor_show_options,co as editor_show_percent,En as editor_show_points,fn as editor_show_state,ae as editor_show_target,re as editor_show_value,Fn as editor_size_by_value,de as editor_sort,se as editor_sort_ascending,ge as editor_sort_descending,le as editor_sort_none,y as editor_source,w as editor_source_history,f as editor_source_statistics,Lg as editor_spark,Sg as editor_spark_area,Ng as editor_spark_bar,Ag as editor_spark_color,Tg as editor_spark_column,Vg as editor_spark_line,Sm as editor_split_by,Nm as editor_split_by_day,Km as editor_split_by_month,Tm as editor_split_by_none,Am as editor_split_by_week,Rn as editor_stack,On as editor_stack_none,Mn as editor_stack_normal,Un as editor_stack_percent,Z as editor_start_angle,qm as editor_start_from_first,sa as editor_state_colors,ca as editor_state_colors_add,ua as editor_state_colors_color,ga as editor_state_colors_help,pa as editor_state_colors_remove,ma as editor_state_colors_state,Cm as editor_steps,Im as editor_steps_change,Zm as editor_steps_current,Ig as editor_stream_curve,Cg as editor_stream_labels,Og as editor_stream_order,Mg as editor_stream_order_inside_out,Ug as editor_stream_order_listed,C as editor_style_arc,Pn as editor_style_area,H as editor_style_bar,In as editor_style_beeswarm,r_ as editor_style_box,fo as editor_style_bubble,b_ as editor_style_bullet,x_ as editor_style_candlestick,D_ as editor_style_climate,F_ as editor_style_column,td as editor_style_combined,vd as editor_style_day_clock,Bd as editor_style_dumbbell,el as editor_style_funnel,ml as editor_style_grouped_bars,xl as editor_style_heatmap,Pl as editor_style_histogram,Jg as editor_style_icicle,es as editor_style_line,as as editor_style_lollipop,U as editor_style_needle,ns as editor_style_pictograph,gs as editor_style_pie,bs as editor_style_polar_area,Ls as editor_style_radar,Ws as editor_style_range_area,M as editor_style_ring,Ps as editor_style_rings,Ms as editor_style_sankey,wo as editor_style_scatter,R as editor_style_segmented,eg as editor_style_slope,Eg as editor_style_sparkline,Bg as editor_style_streamgraph,qg as editor_style_sunburst,O as editor_style_tank,P as editor_style_thin,_m as editor_style_timeline,mm as editor_style_treemap,wm as editor_style_trend,Gm as editor_style_violin,Hm as editor_style_waffle,Um as editor_style_waterfall,tu as editor_style_wind_rose,Fg as editor_sunburst_shape,Qg as editor_sunburst_shape_full,Xg as editor_sunburst_shape_half,xi as editor_sync,Ee as editor_tap_action,Be as editor_target,te as editor_tick_labels,ha as editor_timeline_group,_a as editor_timeline_legend,da as editor_timeline_legend_above,la as editor_timeline_legend_hidden,D as editor_title,Js as editor_to,ii as editor_tooltip,Jm as editor_total,um as editor_treemap_color_by,pm as editor_treemap_color_by_bands,cm as editor_treemap_color_by_group,un as editor_trend_color_icon,cn as editor_trend_group,Sa as editor_trend_labels,Oa as editor_trend_legend,hn as editor_trend_tooltip,Ua as editor_trend_y_max,Ma as editor_trend_y_min,z_ as editor_under_aggregate,V_ as editor_underneath,S_ as editor_underneath_columns,T_ as editor_underneath_line,ue as editor_unit,_s as editor_unit_icon,E_ as editor_up_color,xt as editor_value_axis,Ja as editor_value_factor,Gt as editor_value_grid,Et as editor_value_max,zt as editor_value_min,Pm as editor_waffles,Om as editor_waffles_each,Rm as editor_waffles_one,Fm as editor_waterfall_invert,u_ as editor_whiskers,p_ as editor_whiskers_range,c_ as editor_whiskers_tukey,Dn as editor_wind_none,Wn as editor_wind_now,Bn as editor_wind_roles,Hn as editor_wind_statistics,Zr as editor_x_axis,Ho as editor_x_max,Do as editor_x_min,To as editor_xy_x_axis,qr as editor_y_axis,kn as editor_y_axis_side,bn as editor_y_axis_side_primary,vn as editor_y_axis_side_secondary,ei as editor_y_max,Za as editor_y_max_secondary,$r as editor_y_min,Ia as editor_y_min_secondary,ti as editor_y_scale,oi as editor_y_scale_linear,ri as editor_y_scale_log,yr as editor_zones,Mo as editor_zoom,e as entity_not_found,Ht as extremes_average,Wt as extremes_high,Dt as extremes_low,gl as funnel_aria,jl as grouped_bars_aria,Gl as heatmap_aria,El as heatmap_empty,zl as heatmap_hours,rm as hierarchy_empty,im as hierarchy_no_reading,om as hierarchy_other,tm as hierarchy_total,$l as histogram_reading,Yl as histogram_readings,nm as icicle_aria,o as no_entities,r as no_matches,i as none_available,yo as parts_aria,vo as parts_average,bo as parts_total,ao as period_last_day,no as period_last_days,ro as period_last_hour,io as period_last_hours,eo as period_last_month,so as period_last_month_rolling,go as period_last_months,Yt as period_last_week,_o as period_last_week_rolling,lo as period_last_weeks,oo as period_last_year,qt as period_next,Zt as period_previous,Jt as period_return,$t as period_this_month,Xt as period_this_week,to as period_this_year,Ft as period_today,Qt as period_yesterday,Es as polar_area_aria,Ks as radar_aria,Bs as radar_other,Qs as sankey_aria,Xs as sankey_flow,Ys as sankey_no_flows,$s as sankey_nothing,No as scatter_needs_two,Ko as scatter_role_x,gg as slope_ago,mg as slope_ago_one,Gg as slope_entity_aria,pg as slope_last,hg as slope_last_one,zg as slope_no_reading,sg as slope_now,ug as slope_previous,cg as slope_previous_one,vg as slope_unit_day,yg as slope_unit_day_other,kg as slope_unit_hour,bg as slope_unit_hour_other,jg as slope_unit_month,xg as slope_unit_month_other,wg as slope_unit_week,fg as slope_unit_week_other,Kg as spark_aria,Zg as stream_total,am as sunburst_aria,e_ as swarm_earliest_latest,Xn as swarm_events,t_ as swarm_lowest_highest,$n as swarm_none,Qn as swarm_readings,Yn as swarm_shown,lm as timeline_for,gm as timeline_measurement,dm as timeline_no_states,sm as timeline_now,hm as treemap_aria,bm as treemap_empty,vm as treemap_no_reading,ym as treemap_other,km as treemap_total,jm as trend_avg,xm as trend_max,fm as trend_min,t as unavailable,Bm as violin_median,Wm as violin_none,Dm as violin_raincloud,eu as waterfall_aria,Xm as waterfall_end,$m as waterfall_no_readings,Qm as waterfall_start,Ym as waterfall_total,lu as wind_aria,su as wind_aria_calm,gu as wind_aria_still,au as wind_calm,ru as wind_mean_speed,ou as wind_prevailing,du as wind_share,nu as wind_speed,_u as wind_speed_unit,iu as wind_strongest,Po as zoom_reset,Ro as zoom_window,Oo as zoom_window_label};
-//# sourceMappingURL=chartdeck-card.nl-DvVzFIch.js.map
diff --git a/dist/chartdeck-card.nl-DvVzFIch.js.map b/dist/chartdeck-card.nl-DvVzFIch.js.map
deleted file mode 100644
index 0d64fdd..0000000
--- a/dist/chartdeck-card.nl-DvVzFIch.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"chartdeck-card.nl-DvVzFIch.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dist/chartdeck-card.pt-D8OdPLlD.js b/dist/chartdeck-card.pt-D8OdPLlD.js
deleted file mode 100644
index 951935a..0000000
--- a/dist/chartdeck-card.pt-D8OdPLlD.js
+++ /dev/null
@@ -1,2 +0,0 @@
-const e="Entidade não encontrada",o="Indisponível",a="Adicione uma entidade no editor para começar.",r="Nenhuma entidade corresponde neste momento.",i="Nenhuma destas entidades está disponível.",t="Entidades",_="Estilo",d="Gráfico",s="Barras",n="Medidores",l="Gráficos de histórico",m="Partes de um total",c="Comparações",u="Distribuições",p="Mostrar os últimos",g="Unidade",h="Horas",b="Dias",y="Semanas",v="Meses",f="Leituras de",x="Histórico (cada alteração)",w="Estatísticas de longo prazo",C="Forma da linha",M="Suave",k="Reta",A="Degraus",E="Cor",z="Uma cor por entidade",q="Por faixa de cor",P="Mostrar valores nos pontos",N="Cor da linha",S="Tracejado",D="Limites",T="Cores",L="Apresentação",O="Ações",V="Título",H="Barra",U="Fina",F="Segmentada",G="Depósito",R="Anel",B="Ponteiro",j="Arco",I="Os ângulos são em graus, no sentido dos ponteiros do relógio a partir do topo: -90 é a esquerda, 90 a direita. Deixe-os vazios para a forma habitual do estilo.",Q="Ângulo inicial",W="Ângulo final",Z="Ao centro",J="O valor",K="A etiqueta da faixa de cor",X="O nome",Y="Texto próprio",$="Nada",ee="Texto",oe="Números na escala",ae="Mostrar nome",re="Mostrar valor",ie="Mostrar ícone",te="Mostrar objetivo",_e="Mostrar legenda",de="Colunas",se="Ordenar",ne="Pela ordem da lista",le="Menor primeiro",me="Maior primeiro",ce="Casas decimais",ue="Unidade",pe="Animar",ge="Ocultar entidades indisponíveis",he="Mostrar no máximo",be="Mostrar também todas as entidades que correspondam",ye="Os novos dispositivos aparecem sem editar o cartão. Escolha vários do mesmo tipo para corresponder a qualquer um; tipos diferentes têm de corresponder todos.",ve="Excluir",fe="As entidades correspondentes são excluídas se corresponderem a qualquer um destes.",xe="Classe de dispositivo",we="Áreas",Ce="Pisos",Me="Etiquetas",ke="Domínios",Ae="Entidades",Ee="Ação ao tocar",ze="Ação ao manter premido",qe="Ação ao tocar duas vezes",Pe="Atributo (em vez do estado)",Ne="Nome",Se="Ícone",De="Mínimo",Te="Máximo",Le="Objetivo",Oe="Nenhum",Ve="definição do cartão",He="Predefinição ({value})",Ue="Número",Fe="Entidade",Ge="Predefinição",Re="Bateria (baixo é mau)",Be="Consumo (alto é mau)",je="Temperatura",Ie="Nenhuma",Qe="Personalizada",We="A partir de",Ze="Começar numa entidade",Je="Começar num número",Ke="Começa nesta entidade",Xe="Cor",Ye="Cor CSS",$e="Etiqueta",eo="Ícone",oo="Colorir os ícones conforme a sua faixa",ao="Primária",ro="Verde",io="Âmbar",to="Vermelho",_o="Azul",so="Roxo",no="Cinzento",lo="Personalizada…",mo="Adicionar faixa",co="Remover faixa",uo="Adicionar entidade",po="Mover para cima",go="Mover para baixo",ho="Remover entidade",bo="Mostrar opções",yo="Ocultar opções",vo="{entity} (não encontrada)",fo="Cores",xo="{label} às {time}",wo="Direção",Co="Horizontal",Mo="Vertical",ko="Etiquetas de valor",Ao="Linhas em cada etiqueta de valor",Eo="Valor mais baixo mostrado",zo="Valor mais alto mostrado",qo="Mediana",Po="Metade central",No="Mínimo – máximo",So="Leituras",Do="Toque num grupo para ver a sua composição",To="{label}. Mostrar a composição",Lo="Voltar a {name}",Oo="Tudo",Vo="Máx.",Ho="Mín.",Uo="Méd.",Fo="Marcar a leitura mais alta",Go="Marcar a leitura mais baixa",Ro="Média",Bo="Não mostrar",jo="Linha ao longo do gráfico",Io="Apenas o valor",Qo="Marcar máximo, mínimo e média",Wo="Período anterior",Zo="Período seguinte",Jo="Voltar a {label}",Ko="Hoje",Xo="Ontem",Yo="Esta semana",$o="Semana passada",ea="Este mês",oa="Mês passado",aa="Este ano",ra="Ano passado",ia="Última hora",ta="Últimas {n} horas",_a="Último dia",da="Últimos {n} dias",sa="Últimos 7 dias",na="Últimas {n} semanas",la="Último mês",ma="Últimos {n} meses",ca="Tons de uma cor",ua="Cor dos tons (nome da paleta ou cor CSS)",pa="Mostrar cada parte em percentagem",ga="Total",ha="Média",ba="Nada",ya="Total",va="Média",fa="{style} de {names}",xa="Dispersão",wa="Bolhas",Ca="No eixo horizontal",Ma="A primeira entidade",ka="Tempo",Aa="Tamanho do ponto (px)",Ea="Dispersão aleatória (px)",za="Bolha mais pequena (px)",qa="Bolha maior (px)",Pa="Cor do ponto",Na="Etiquetas no eixo horizontal",Sa="Adicione uma segunda entidade. A primeira fica no eixo horizontal, as outras no eixo vertical.",Da="Adicione três entidades: uma para o eixo horizontal, uma para o vertical e uma para o tamanho de cada bolha.",Ta="Horizontal",La="Tamanho",Oa="Total",Va="Valor horizontal mais baixo",Ha="Valor horizontal mais alto",Ua="Repor zoom",Fa="Mostrado: {from} a {to}",Ga="Parte do gráfico mostrada",Ra="Zoom e deslocação (pinçar, Ctrl + roda ou arrastar)",Ba="Faixa de visão geral sob o gráfico",ja="Anotações",Ia="Tipo",Qa="Linha num valor",Wa="Faixa sombreada de valores",Za="Marcas a horas definidas",Ja="Marcas quando uma entidade muda",Ka="Etiqueta numa leitura",Xa="Linha",Ya="Faixa",$a="Horas",er="Mudanças de estado",or="Etiqueta de ponto",ar="Adicionar uma anotação:",rr="Valor (um número ou uma entidade)",ir="De (um número ou uma entidade; vazio para o fundo)",tr="Até (um número ou uma entidade; vazio para o topo)",_r="Horas: 07:00 para todos os dias, ou 2026-10-28 07:00 (separadas por vírgulas)",dr="Entidade",sr="Série (vazio para a primeira)",nr="Estado (vazio para todas as mudanças)",lr="Sombrear enquanto neste estado",mr="Leitura",cr="Mais alta",ur="Mais baixa",pr="Mais recente",gr="Primeira",hr="Etiqueta",br="Cor",yr="Tracejado",vr="Remover anotação",fr="Sombrear as faixas de gravidade atrás do gráfico",xr="Período",wr="Os últimos…",Cr="Hoje",Mr="Esta semana",kr="Este mês",Ar="Este ano",Er="Períodos para trás (0 é o atual)",zr="Desenhar até",qr="Agora",Pr="O fim do período",Nr="Mostrar botões anterior e seguinte",Sr="Agrupar leituras por",Dr="Não agrupar",Tr="Hora",Lr="Dia",Or="Semana",Vr="Mês",Hr="Combinar com",Ur="Média",Fr="Soma",Gr="Mínimo",Rr="Máximo",Br="Primeiro",jr="Último",Ir="Variação (contadores que aumentam)",Qr="Etiquetas de tempo",Wr="Etiquetas de valor",Zr="Etiquetas dos eixos",Jr="Ao lado do gráfico",Kr="Sobre o gráfico",Xr="Linhas horizontais",Yr="Linhas verticais",$r="Valor mais baixo mostrado",ei="Valor mais alto mostrado",oi="Escala de valores",ai="Passos iguais",ri="Logarítmica (potências de dez)",ii="Mostrar valores ao passar o rato ou tocar",ti="Largura da linha (px)",_i="Ponto em cada leitura",di="Desenhar por cima das outras linhas",si="Compacto",ni="Nomes e valores",li="Acima do gráfico",mi="Sobre o gráfico",ci="Ocultos",ui="Que leituras",pi="Todas (as que couberem)",gi="A mais recente",hi="Mais alta e mais baixa",bi="Primeira e mais recente",yi="Posição da etiqueta",vi="Acima dos picos, abaixo das quedas",fi="Acima",xi="Abaixo",wi="No ponto",Ci="Permitir sobreposição de etiquetas",Mi="Grupo de sincronização (gráficos com o mesmo nome partilham o ponteiro e os passos de período)",ki="Um pequeno gráfico por entidade",Ai="Escala de valores",Ei="A mesma quando as unidades coincidem",zi="A mesma para todos os gráficos",qi="Cada gráfico com a sua",Pi="Colunas (vazio ajusta ao cartão)",Ni="Mostrar a temperatura definida",Si="Sombrear durante aquecimento ou arrefecimento",Di="Sombrear quando só a ventoinha funciona",Ti="Cor da temperatura",Li="Cor da temperatura definida",Oi="Cor de aquecimento",Vi="Cor de arrefecimento",Hi="Dias (mais de 1 mostra o dia médio)",Ui="Tempo ligado",Fi="A hora atual",Gi="Nada",Ri="Uma barra a cada",Bi="15 minutos",ji="30 minutos",Ii="Hora",Qi="Automático (variação para contadores, senão média)",Wi="Cor",Zi="Conta como ligado (vazio: on, open, heating, home…)",Ji="Adicione primeiro uma entidade acima.",Ki="Agrupar por",Xi="Piso",Yi="Área",$i="Dispositivo",et="Etiqueta",ot='Grupo próprio (prevalece sobre "Agrupar por"; "Rés-do-chão / Cozinha" para dois níveis)',at="Texto nas barras",rt="Estado",it="Duração",tt="Estado e duração",_t="Nenhum",dt="Legenda dos estados",st="Acima do gráfico",nt="Oculta",lt="Cores dos estados",mt="Um nome da paleta (amber, green, blue, red, purple, grey, primary) ou qualquer cor CSS.",ct="Estado",ut="Cor",pt="Adicionar uma cor de estado",gt="Remover",ht="Grupo (linhas do mesmo grupo partilham um título)",bt="Pontos por hora (0 desenha todas as leituras)",yt="Gráfico",vt="Linha",ft="Barras",xt="Nenhum (só o valor)",wt="Preencher sob a linha",Ct="Sólido",Mt="Esbatido",kt="Nenhum",At="Pontos na linha",Et="Ao passar o rato",zt="Sempre",qt="Nunca",Pt="Etiquetas de máximo e mínimo",Nt="Ao passar o rato",St="Sempre",Dt="Nunca",Tt="Altura do gráfico (por cada 500 px de largura)",Lt="Espaço entre barras (px)",Ot="Cores das faixas",Vt="Misturar",Ht="Mudar em cada faixa",Ut="Mostrar mínimo e máximo",Ft="Mostrar média",Gt="Legenda (duas ou mais entidades)",Rt="Valor mais baixo (~ para flexível)",Bt="Valor mais alto (~ para flexível)",jt="Menor intervalo mostrado",It="Mínimo do eixo direito (~ para flexível)",Qt="Máximo do eixo direito (~ para flexível)",Wt="Menor intervalo do eixo direito",Zt="Multiplicar por 10 elevado a",Jt="Nome e ícone",Kt="Distribuídos",Xt="Esquerda",Yt="Direita",$t="Centro",e_="Ícone",o_="À direita do nome",a_="À esquerda do nome",r_="Ao lado do valor",i_="Valor",t_="Esquerda",__="Direita",d_="Centro",s_="Tamanho do valor (%)",n_="Tamanho do nome (px)",l_="Colorir o nome",m_="Colorir o valor",c_="Colorir o ícone",u_="Sem fundo (dentro de outro cartão)",p_="Imagem em vez do ícone (URL)",g_="Mostrar o valor sob o ponteiro",h_="Eixo",b_="Esquerdo",y_="Direito (escala própria)",v_="Combinar com",f_="Desenhar o valor atual como linha horizontal",x_="Mostrar o seu valor ao lado do principal",w_="Ponto colorido conforme o valor",C_="No gráfico",M_="Linha",k_="Preenchimento",A_="Pontos",E_="Na legenda",z_="Valor na legenda",q_="Direções",P_="4 (N, E, S, W)",N_="8 (N, NE, E…)",S_="16 (N, NNE, NE…)",D_="Calmaria abaixo de (vazio: 0,5 m/s, ou o equivalente em km/h, mph ou nós)",T_="A primeira entidade é a direção do vento, em graus ou pontos cardeais como SO. A segunda é a velocidade do vento: sem ela, as pétalas mostram apenas com que frequência o vento soprou de cada direção.",L_="Direção: {direction}. Velocidade: {speed}.",O_="nenhuma",V_="As estatísticas de longo prazo dão a direção média de cada hora. Isso só está correto em torno do norte quando o sensor regista a direção como ângulo (classe de estado measurement_angle); caso contrário, uma hora a oscilar entre NNO e NNE dá uma média de sul. O histórico é exato.",H_="Área",U_="Empilhar",F_="Não empilhar",G_="Uns sobre os outros",R_="Até 100 %",B_="Cor abaixo de zero",j_="Enxame",I_="Posicionar cada ponto por",Q_="O seu valor",W_="A hora do dia em que ocorreu",Z_="Pontos maiores para valores maiores",J_="{n} leituras",K_="{n} vezes ligado",X_="Pontos mostrados",Y_="Sem leituras",$_="Mais antiga – mais recente",ed="Mínimo – máximo",od="Cor",ad="Diagrama de caixa",rd="Diagrama de caixa de {names}",id="Máximo",td="Quartil superior",_d="Mediana",dd="Quartil inferior",sd="Mínimo",nd="Média",ld="Leituras",md="Valores atípicos",cd="Os bigodes vão até",ud="1,5 × a altura da caixa (valores atípicos como pontos)",pd="O mínimo e o máximo",gd="Mostrar cada leitura como um ponto",hd="Cor da caixa",bd="Bala",yd="Intervalos atrás da barra",vd="Tons de cinzento",fd="Cores das faixas de cor",xd="objetivo {target}",wd="Gráfico {style} de {names}",Cd="Velas",Md="Uma vela por",kd="Entidades por baixo: combinar leituras com",Ad="Cor quando subiu",Ed="Cor quando desceu",zd="Desenhar as outras entidades por baixo como",qd="Colunas",Pd="Uma linha",Nd="Abertura",Sd="Máximo",Dd="Mínimo",Td="Fecho",Ld="Semana de {date}",Od="Climatização",Vd="Temperatura definida",Hd="{low} – {high}",Ud="{name} não é um termóstato. Escolha uma entidade de climatização.",Fd="A aquecer",Gd="A pré-aquecer",Rd="A arrefecer",Bd="A descongelar",jd="A desumidificar",Id="Ventoinha",Qd="Inativo",Wd="Desligado",Zd="Colunas",Jd="Automático",Kd="Mínimo a máximo em cada coluna",Xd="Extremidades arredondadas",Yd="Mostrar valores nas colunas",$d="Cor",es="Combinado",os="Desenhar como",as="Linha",rs="Colunas",is="Área",ts="Eixo de valores",_s="Automático (por unidade)",ds="Esquerdo",ss="Direito",ns="Combinar com",ls="Como o cartão",ms="Média",cs="Soma",us="Mínimo",ps="Máximo",gs="Primeiro",hs="Último",bs="Variação (contadores que aumentam)",ys="Relógio de 24 horas",vs="uma vez",fs="{n} vezes",xs="{text} por dia",ws="{total} · mais ativo {time}",Cs="pico de {value} às {time}",Ms="{name} {state}",ks="{label} por dia",As="Nada registado",Es="Agora",zs="ligado",qs="Dia médio · últimos {n} dias",Ps="em {on} de {of} dias",Ns="{duration} até agora",Ss="{from} – {to}",Ds="{value} em média",Ts="Halteres",Ls="Comparar",Os="Mínimo e máximo no período",Vs="Início do período e agora",Hs="Objetivo e agora",Us="Marcar o valor atual",Fs="Mín.",Gs="Máx.",Rs="Agora",Bs="Objetivo",js="Há uma hora",Is="Há {n} horas",Qs="Há um dia",Ws="Há {n} dias",Zs="Há uma semana",Js="Há {n} semanas",Ks="Há um mês",Xs="Há {n} meses",Ys="Sem valor",$s="Funil",en="Forma",on="Funil (primeira etapa no topo)",an="Pirâmide (primeira etapa na base)",rn="Percentagens",tn="Parte da primeira etapa",_n="Parte da etapa anterior",dn="Não mostrar",sn="Cor",nn="Uma cor por entidade",ln="Por faixa de cor",mn="{style} de {names}",cn="Barras agrupadas",un="Barras",pn="Lado a lado",gn="Empilhadas",hn="Empilhadas até 100 %",bn="Cor",yn="Uma cor por série",vn="Por faixa de cor",fn="Linha",xn="Série",wn="Cor da barra",Cn="Gráfico de barras de {names}",Mn="Mapa de calor",kn="Mapa de calor de {name}",An="Dias em média",En="Sem leituras",zn="Disposição",qn="Hora por dia da semana",Pn="Calendário (um dia por célula)",Nn="Escala contínua",Sn="Células",Dn="Quadradas",Tn="Arredondadas",Ln="Hexagonais",On="Cor mais baixa em",Vn="Cor mais alta em",Hn="Legenda",Un="Histograma",Fn="Contar",Gn="Tempo passado em cada intervalo",Rn="Leituras em cada intervalo",Bn="Mostrar como",jn="Parte do total (%)",In="Horas ou leituras",Qn="Número de classes (vazio: automático)",Wn="Largura da classe (prevalece sobre o número)",Zn="Duas ou mais entidades",Jn="Barras lado a lado",Kn="Barras sobrepostas",Xn="Etiquetas de valor no eixo horizontal",Yn="{n} leituras",$n="1 leitura",el="Linha",ol="A carregar o histórico…",al="Não foi possível carregar o histórico: {error}",rl="Sem leituras neste período.",il="Nada acima de zero para desenhar numa escala logarítmica.",tl="Chupa-chupa",_l="Pictograma",dl="Ícone (cada entidade pode ter o seu)",sl="Cada ícone representa (vazio: automático)",nl="Ícones por grupo (0: sem grupos)",ll="Preencher parcialmente um ícone para frações",ml="Circular / anel",cl="Forma",ul="Anel",pl="Circular",gl="Linha sob o total",hl="Espaço entre fatias",bl="Preenchimentos em gradiente",yl="Área polar",vl="Escala",fl="Uma escala para todas, de 0 ao maior valor",xl="Cada fatia do mínimo ao máximo da sua entidade",wl="Cor",Cl="Uma cor por entidade",Ml="Tons de uma cor, mais escuro para mais",kl="Por faixa de cor",Al="Cor dos tons",El="Gráfico de área polar de {names}",zl="Radar",ql="Escala",Pl="Cada eixo do mínimo ao máximo da sua entidade",Nl="Uma escala para todos, de 0 ao maior valor",Sl="Preencher as formas",Dl="Nome do eixo (entidades com o mesmo nome de eixo alinham-se entre grupos)",Tl="Gráfico de radar de {names}",Ll="Outros",Ol="Área de intervalo",Vl="Desenhar a média como uma linha",Hl="Cor",Ul="Anéis",Fl="Ângulo inicial (0 é o topo)",Gl="Extremidades arredondadas",Rl="Sankey (fluxo)",Bl="Colorir fluxos por",jl="Origem, ou destino após um nó intermédio",Il="Origem",Ql="Destino",Wl="Flui de",Zl="Flui para",Jl="Cor do fluxo",Kl="Gráfico de fluxo: {flows}",Xl="{from} para {to} {value}",Yl='Defina para cada entidade um "Flui de" e um "Flui para" nas suas opções.',$l="Nada está a fluir neste momento.",em="Declive",om="Comparar",am="A leitura antes e agora",rm="Quanto subiu em cada período (contadores)",im="Subida ou descida",tm="Por grupo",_m="Uma subida é",dm="Má (vermelho)",sm="Boa (verde)",nm="Grupo",lm="Agora",mm="Há {n} {unit}",cm="Há 1 {unit}",um="{n} {unit} anteriores",pm="{unit} anterior",gm="{n} {unit} mais recentes",hm="{unit} mais recente",bm="hora",ym="horas",vm="dia",fm="dias",xm="semana",wm="semanas",Cm="mês",Mm="meses",km="{name}, {from} a {to}",Am="sem leitura",Em="Minigráficos",zm="Minigráfico",qm="Linha",Pm="Área",Nm="Colunas",Sm="Barra sob o nome e o valor",Dm="Cor",Tm="Tendência de {name}",Lm="Gráfico de correntes",Om="Forma",Vm="Gráfico de fluxo (ondulado)",Hm="Centrado",Um="Parte do total (100 %)",Fm="Empilhado a partir de zero",Gm="Ordem",Rm="Maior ao centro",Bm="Pela ordem da lista, a primeira em baixo",jm="Nomes nos fluxos",Im="Contornos",Qm="Total",Wm="Explosão solar",Zm="Pingente",Jm="Forma",Km="Círculo completo",Xm="Semicírculo",Ym="Cor",$m="Uma cor por grupo",ec="Por faixa de cor",oc="Total",ac="Outros",rc="Nada a mostrar: nenhuma entidade tem um valor acima de zero.",ic="Sem leitura:",tc="Explosão solar de {names}",_c="Gráfico de pingente de {names}",dc="Cronologia de estados",sc="Nenhum estado registado neste período.",nc="durante {duration}",lc="Agora",mc="Leituras, não estados: um gráfico de linhas adequa-se melhor",cc="Mapa de árvore",uc="Cor",pc="Uma cor por grupo",gc="Por faixa de cor",hc="Mapa de árvore de {names}",bc="{value} no total",yc="Nada a mostrar: nenhuma entidade tem um valor acima de zero.",vc="Sem leitura:",fc="Outros",xc="Tendência",wc="Mín.",Cc="Média",Mc="Máx.",kc="Violino",Ac="Violino",Ec="Nuvem de chuva (meio violino, caixa e leituras)",zc="Caixa com a mediana e a metade central",qc="Suavização (na unidade da entidade, vazio para automático)",Pc="Uma forma por",Nc="Entidade",Sc="Entidade e dia",Dc="Entidade e semana",Tc="Entidade e mês",Lc="mediana {value}",Oc="Sem leituras",Vc="Nuvem de chuva",Hc="Waffle",Uc="Waffles",Fc="Um, dividido entre as entidades",Gc="Um por entidade, lado a lado",Rc="Mostrar a primeira parte em letra grande",Bc="Cascata",jc="Cada degrau é",Ic="Quanto variou no período",Qc="O seu valor atual",Wc="Começar na leitura da primeira entidade no início do período",Zc="Mostrar o total no fim",Jc="Conta para baixo (uma subida nestas é uma descida no total)",Kc="Início",Xc="Fim",Yc="Total",$c="Sem leituras",eu="Gráfico em cascata: {bars}",ou="Rosa dos ventos",au="Predominante",ru="Velocidade média",iu="Mais forte",tu="Calmaria",_u="Velocidade",du="Velocidade ({unit})",su="Do tempo",nu="Rosa dos ventos, predominante {direction} {share}",lu="Rosa dos ventos, predominante {direction} {share}, calmaria {calm}",mu="Rosa dos ventos, calmaria {calm}";var cu={entity_not_found:e,unavailable:o,no_entities:a,no_matches:r,none_available:i,editor_section_entities:t,editor_section_style:_,editor_section_chart:d,editor_group_bars:s,editor_group_gauges:n,editor_group_history:l,editor_group_totals:m,editor_group_compare:c,editor_group_distribution:u,editor_period_last:p,editor_period_unit:g,editor_period_unit_hour:h,editor_period_unit_day:b,editor_period_unit_week:y,editor_period_unit_month:v,editor_source:f,editor_source_history:x,editor_source_statistics:w,editor_curve:C,editor_curve_smooth:M,editor_curve_straight:k,editor_curve_step:A,editor_color_by:"Cor",editor_color_by_series:z,editor_color_by_bands:q,editor_labels:P,editor_series_color:N,editor_dash:S,editor_section_limits:D,editor_section_colours:T,editor_section_display:L,editor_section_actions:O,editor_title:V,editor_style_bar:H,editor_style_thin:U,editor_style_segmented:F,editor_style_tank:G,editor_style_ring:R,editor_style_needle:B,editor_style_arc:j,editor_gauge_help:I,editor_start_angle:Q,editor_end_angle:W,editor_center:Z,editor_center_mode_value:J,editor_center_mode_band:K,editor_center_mode_name:X,editor_center_mode_text:Y,editor_center_mode_none:$,editor_center_text:ee,editor_tick_labels:oe,editor_show_name:ae,editor_show_value:re,editor_show_icon:ie,editor_show_target:te,editor_show_legend:_e,editor_columns:de,editor_sort:se,editor_sort_none:ne,editor_sort_ascending:le,editor_sort_descending:me,editor_decimals:ce,editor_unit:ue,editor_animate:pe,editor_hide_unavailable:ge,editor_limit:he,editor_include_heading:be,editor_include_help:ye,editor_exclude_heading:ve,editor_exclude_help:fe,editor_rule_device_class:xe,editor_rule_area:we,editor_rule_floor:Ce,editor_rule_label:Me,editor_rule_domain:ke,editor_rule_entity:Ae,editor_tap_action:Ee,editor_hold_action:ze,editor_double_tap_action:qe,editor_attribute:Pe,editor_name:Ne,editor_icon:Se,editor_min:De,editor_max:Te,editor_target:Le,editor_none:Oe,editor_card_setting:Ve,editor_limit_default:He,editor_limit_number:Ue,editor_limit_entity:Fe,editor_preset:Ge,editor_preset_battery:Re,editor_preset_usage:Be,editor_preset_temperature:je,editor_preset_none:Ie,editor_preset_custom:Qe,editor_band_from:We,editor_band_from_entity:Ze,editor_band_from_number:Je,editor_band_from_entity_label:Ke,editor_band_color:"Cor",editor_band_custom_color:Ye,editor_band_label:$e,editor_band_icon:eo,editor_color_icon:oo,editor_color_primary:ao,editor_color_green:ro,editor_color_amber:io,editor_color_red:to,editor_color_blue:_o,editor_color_purple:so,editor_color_grey:no,editor_color_custom:lo,editor_add_band:mo,editor_remove_band:co,editor_add_entity:uo,editor_move_up:po,editor_move_down:go,editor_remove_entity:ho,editor_show_options:bo,editor_hide_options:yo,editor_not_found:vo,editor_severity:fo,annotation_at:xo,editor_orientation:wo,editor_orientation_horizontal:Co,editor_orientation_vertical:Mo,editor_value_axis:ko,editor_value_grid:Ao,editor_value_min:Eo,editor_value_max:zo,dist_median:qo,dist_middle:Po,dist_range:No,dist_count:So,editor_drill_down:Do,drill_into:To,drill_back:Lo,drill_top:Oo,extremes_high:Vo,extremes_low:Ho,extremes_average:Uo,editor_extremes_max:Fo,editor_extremes_min:Go,editor_extremes_average:Ro,editor_extremes_average_none:Bo,editor_extremes_average_line:jo,editor_extremes_average_figure:Io,editor_extremes:Qo,period_previous:Wo,period_next:Zo,period_return:Jo,period_today:Ko,period_yesterday:Xo,period_this_week:Yo,period_last_week:$o,period_this_month:ea,period_last_month:oa,period_this_year:aa,period_last_year:ra,period_last_hour:ia,period_last_hours:ta,period_last_day:_a,period_last_days:da,period_last_week_rolling:sa,period_last_weeks:na,period_last_month_rolling:la,period_last_months:ma,editor_color_by_shades:ca,editor_shade_color:ua,editor_show_percent:pa,editor_center_total:ga,editor_center_average:ha,editor_center_none:ba,parts_total:ya,parts_average:va,parts_aria:fa,editor_style_scatter:xa,editor_style_bubble:wa,editor_against:Ca,editor_against_entity:Ma,editor_against_time:ka,editor_dot_size:Aa,editor_jitter:Ea,editor_min_size:za,editor_max_size:qa,editor_dot_color:Pa,editor_xy_x_axis:Na,scatter_needs_two:Sa,bubble_needs_three:Da,scatter_role_x:Ta,bubble_role_size:La,chart_total:Oa,editor_x_min:Va,editor_x_max:Ha,zoom_reset:Ua,zoom_window:Fa,zoom_window_label:Ga,editor_zoom:Ra,editor_overview:Ba,editor_annotations:ja,editor_annotation_type:Ia,editor_annotation_type_line:Qa,editor_annotation_type_band:Wa,editor_annotation_type_time:Za,editor_annotation_type_state:Ja,editor_annotation_type_point:Ka,editor_annotation_add_line:Xa,editor_annotation_add_band:Ya,editor_annotation_add_time:$a,editor_annotation_add_state:er,editor_annotation_add_point:or,editor_annotation_add:ar,editor_annotation_value:rr,editor_annotation_from:ir,editor_annotation_to:tr,editor_annotation_times:_r,editor_annotation_entity:dr,editor_annotation_series:sr,editor_annotation_state:nr,editor_annotation_shade:lr,editor_annotation_at:mr,editor_annotation_at_max:cr,editor_annotation_at_min:ur,editor_annotation_at_last:pr,editor_annotation_at_first:gr,editor_annotation_label:hr,editor_annotation_color:"Cor",editor_annotation_dash:yr,editor_annotation_remove:vr,editor_zones:fr,editor_period_calendar:xr,editor_period_calendar_rolling:wr,editor_period_calendar_day:Cr,editor_period_calendar_week:Mr,editor_period_calendar_month:kr,editor_period_calendar_year:Ar,editor_period_offset:Er,editor_period_until:zr,editor_period_until_now:qr,editor_period_until_end:Pr,editor_period_navigate:Nr,editor_group_by:Sr,editor_group_by_none:Dr,editor_group_by_hour:Tr,editor_group_by_day:"Dia",editor_group_by_week:Or,editor_group_by_month:"Mês",editor_aggregate:Hr,editor_aggregate_mean:Ur,editor_aggregate_sum:Fr,editor_aggregate_min:Gr,editor_aggregate_max:Rr,editor_aggregate_first:Br,editor_aggregate_last:jr,editor_aggregate_change:Ir,editor_x_axis:Qr,editor_y_axis:Wr,editor_axis_labels:Zr,editor_axis_labels_outside:Jr,editor_axis_labels_inside:Kr,editor_grid_horizontal:Xr,editor_grid_vertical:Yr,editor_y_min:$r,editor_y_max:ei,editor_y_scale:oi,editor_y_scale_linear:ai,editor_y_scale_log:ri,editor_tooltip:ii,editor_line_width:ti,editor_dots:_i,editor_on_top:di,editor_compact:si,editor_header:ni,editor_header_above:li,editor_header_over:mi,editor_header_hidden:ci,editor_labels_show:ui,editor_labels_show_all:pi,editor_labels_show_last:gi,editor_labels_show_minmax:hi,editor_labels_show_ends:bi,editor_labels_position:yi,editor_labels_position_auto:vi,editor_labels_position_above:fi,editor_labels_position_below:xi,editor_labels_position_center:wi,editor_labels_overlap:Ci,editor_sync:Mi,editor_multiples:ki,editor_multiples_scale:Ai,editor_multiples_scale_auto:Ei,editor_multiples_scale_shared:zi,editor_multiples_scale_independent:qi,editor_multiples_columns:Pi,editor_set_point:Ni,editor_shading:Si,editor_shade_fan:Di,editor_current_color:Ti,editor_set_point_color:Li,editor_heating_color:Oi,editor_cooling_color:Vi,editor_days:Hi,editor_day_clock_center_total:Ui,editor_day_clock_center_now:Fi,editor_day_clock_center_none:Gi,editor_bucket:Ri,editor_bucket_15:Bi,editor_bucket_30:ji,editor_bucket_60:Ii,editor_aggregate_auto:Qi,editor_ring_color:"Cor",editor_active:Zi,editor_entity_options_none:Ji,editor_hierarchy_group_by:Ki,editor_group_by_floor:Xi,editor_group_by_area:Yi,editor_group_by_device:$i,editor_group_by_label:et,editor_entity_groups:ot,editor_bar_labels:at,editor_bar_labels_state:rt,editor_bar_labels_duration:it,editor_bar_labels_both:tt,editor_bar_labels_none:_t,editor_timeline_legend:dt,editor_timeline_legend_above:st,editor_timeline_legend_hidden:nt,editor_state_colors:lt,editor_state_colors_help:mt,editor_state_colors_state:ct,editor_state_colors_color:"Cor",editor_state_colors_add:pt,editor_state_colors_remove:gt,editor_timeline_group:ht,editor_points_per_hour:bt,editor_graph:yt,editor_graph_line:vt,editor_graph_bar:ft,editor_graph_none:xt,editor_fill:wt,editor_fill_solid:Ct,editor_fill_fade:Mt,editor_fill_none:kt,editor_points:At,editor_points_hover:Et,editor_points_always:zt,editor_points_never:qt,editor_trend_labels:Pt,editor_labels_hover:Nt,editor_labels_always:St,editor_labels_never:Dt,editor_height:Tt,editor_bar_spacing:Lt,editor_color_transition:Ot,editor_color_transition_smooth:Vt,editor_color_transition_hard:Ht,editor_extrema:Ut,editor_average:Ft,editor_trend_legend:Gt,editor_trend_y_min:Rt,editor_trend_y_max:Bt,editor_min_range:jt,editor_y_min_secondary:It,editor_y_max_secondary:Qt,editor_min_range_secondary:Wt,editor_value_factor:Zt,editor_align_header:Jt,editor_align_header_default:Kt,editor_align_header_left:Xt,editor_align_header_right:Yt,editor_align_header_center:$t,editor_align_icon:e_,editor_align_icon_right:o_,editor_align_icon_left:a_,editor_align_icon_state:r_,editor_align_state:i_,editor_align_state_left:t_,editor_align_state_right:__,editor_align_state_center:d_,editor_font_size:s_,editor_font_size_header:n_,editor_color_name:l_,editor_color_value:m_,editor_trend_color_icon:c_,editor_trend_group:u_,editor_icon_image:p_,editor_trend_tooltip:g_,editor_y_axis_side:h_,editor_y_axis_side_primary:b_,editor_y_axis_side_secondary:y_,editor_entity_aggregate:v_,editor_fixed_value:f_,editor_show_state:x_,editor_show_indicator:w_,editor_show_graph:C_,editor_show_line:M_,editor_show_fill:k_,editor_show_points:A_,editor_show_legend_entity:E_,editor_show_legend_state:z_,editor_sectors:q_,editor_sectors_4:P_,editor_sectors_8:N_,editor_sectors_16:S_,editor_calm:D_,editor_wind_roles:T_,editor_wind_now:L_,editor_wind_none:O_,editor_wind_statistics:V_,editor_style_area:H_,editor_stack:U_,editor_stack_none:F_,editor_stack_normal:G_,editor_stack_percent:R_,editor_negative_color:B_,editor_style_beeswarm:j_,editor_place_by:I_,editor_place_by_value:Q_,editor_place_by_time_of_day:W_,editor_size_by_value:Z_,swarm_readings:J_,swarm_events:K_,swarm_shown:X_,swarm_none:Y_,swarm_earliest_latest:$_,swarm_lowest_highest:ed,editor_fill_color:"Cor",editor_style_box:ad,box_aria:rd,box_highest:id,box_upper_quartile:td,box_median:_d,box_lower_quartile:dd,box_lowest:sd,box_mean:nd,box_count:ld,box_outliers:md,editor_whiskers:cd,editor_whiskers_tukey:ud,editor_whiskers_range:pd,editor_readings:gd,editor_box_color:hd,editor_style_bullet:bd,editor_ranges:yd,editor_ranges_shades:vd,editor_ranges_colours:fd,compare_target:xd,chart_aria:wd,editor_style_candlestick:Cd,editor_candle_by:Md,editor_under_aggregate:kd,editor_up_color:Ad,editor_down_color:Ed,editor_underneath:zd,editor_underneath_columns:qd,editor_underneath_line:Pd,candle_open:Nd,candle_high:Sd,candle_low:Dd,candle_close:Td,candle_week_of:Ld,editor_style_climate:Od,climate_set_point:Vd,climate_range:Hd,climate_not_thermostat:Ud,climate_action_heating:Fd,climate_action_preheating:Gd,climate_action_cooling:Rd,climate_action_defrosting:Bd,climate_action_drying:jd,climate_action_fan:Id,climate_action_idle:Qd,climate_action_off:Wd,editor_style_column:Zd,editor_group_by_auto:Jd,editor_range:Kd,editor_rounded:Xd,editor_column_labels:Yd,editor_column_color:"Cor",editor_style_combined:es,editor_series_type:os,editor_series_type_line:as,editor_series_type_column:rs,editor_series_type_area:is,editor_series_axis:ts,editor_series_axis_auto:_s,editor_series_axis_left:ds,editor_series_axis_right:ss,editor_series_aggregate:ns,editor_series_aggregate_auto:ls,editor_series_aggregate_mean:ms,editor_series_aggregate_sum:cs,editor_series_aggregate_min:us,editor_series_aggregate_max:ps,editor_series_aggregate_first:gs,editor_series_aggregate_last:hs,editor_series_aggregate_change:bs,editor_style_day_clock:ys,day_clock_times_one:vs,day_clock_times:fs,day_clock_a_day:xs,day_clock_busiest:ws,day_clock_peak:Cs,day_clock_state:Ms,day_clock_per_day:ks,day_clock_no_data:As,day_clock_now:Es,day_clock_on:zs,day_clock_average:qs,day_clock_on_days:Ps,day_clock_so_far:Ns,day_clock_range:Ss,day_clock_average_value:Ds,editor_style_dumbbell:Ts,editor_ends:Ls,editor_ends_range:Os,editor_ends_then:Vs,editor_ends_target:Hs,editor_show_now:Us,dumbbell_low:Fs,dumbbell_high:Gs,dumbbell_now:Rs,dumbbell_target:Bs,dumbbell_ago_hour_one:js,dumbbell_ago_hour:Is,dumbbell_ago_day_one:Qs,dumbbell_ago_day:Ws,dumbbell_ago_week_one:Zs,dumbbell_ago_week:Js,dumbbell_ago_month_one:Ks,dumbbell_ago_month:Xs,dumbbell_no_value:Ys,editor_style_funnel:$s,editor_funnel_shape:en,editor_funnel_shape_funnel:on,editor_funnel_shape_pyramid:an,editor_funnel_percent_of:rn,editor_funnel_percent_of_first:tn,editor_funnel_percent_of_previous:_n,editor_funnel_percent_of_none:dn,editor_funnel_color_by:"Cor",editor_funnel_color_by_series:nn,editor_funnel_color_by_bands:ln,funnel_aria:mn,editor_style_grouped_bars:cn,editor_mode:un,editor_mode_grouped:pn,editor_mode_stacked:gn,editor_mode_percent:hn,editor_bars_color_by:"Cor",editor_bars_color_by_series:yn,editor_bars_color_by_bands:vn,editor_bar_group:fn,editor_bar_series:xn,editor_bar_color:wn,grouped_bars_aria:Cn,editor_style_heatmap:Mn,heatmap_aria:kn,heatmap_hours:An,heatmap_empty:En,editor_grid:zn,editor_grid_hours:qn,editor_grid_calendar:Pn,editor_color_by_scale:Nn,editor_cell_shape:Sn,editor_cell_shape_square:Dn,editor_cell_shape_rounded:Tn,editor_cell_shape_hexagon:Ln,editor_color_min:On,editor_color_max:Vn,editor_legend:Hn,editor_style_histogram:Un,editor_count:Fn,editor_count_time:Gn,editor_count_readings:Rn,editor_show_as:Bn,editor_show_as_percent:jn,editor_show_as_total:In,editor_bins:Qn,editor_bin_width:Wn,editor_bars:Zn,editor_bars_side:Jn,editor_bars_overlap:Kn,editor_hist_x_axis:Xn,histogram_readings:Yn,histogram_reading:$n,editor_style_line:el,chart_loading:ol,chart_error:al,chart_no_data:rl,chart_log_nothing:il,editor_style_lollipop:tl,editor_style_pictograph:_l,editor_unit_icon:dl,editor_per_icon:sl,editor_group_size:nl,editor_partial:ll,editor_style_pie:ml,editor_shape:cl,editor_shape_donut:ul,editor_shape_pie:pl,editor_center_label:gl,editor_gap:hl,editor_gradient:bl,editor_style_polar_area:yl,editor_polar_scale:vl,editor_polar_scale_shared:fl,editor_polar_scale_limits:xl,editor_polar_color_by:"Cor",editor_polar_color_by_series:Cl,editor_polar_color_by_shades:Ml,editor_polar_color_by_bands:kl,editor_polar_color:Al,polar_area_aria:El,editor_style_radar:zl,editor_radar_scale:ql,editor_radar_scale_limits:Pl,editor_radar_scale_shared:Nl,editor_radar_fill:Sl,editor_radar_axis:Dl,radar_aria:Tl,radar_other:Ll,editor_style_range_area:Ol,editor_mean:Vl,editor_range_color:"Cor",editor_style_rings:Ul,editor_rings_start_angle:Fl,editor_rounded_ends:Gl,editor_style_sankey:Rl,editor_link_color:Bl,editor_link_color_auto:jl,editor_link_color_source:Il,editor_link_color_target:Ql,editor_from:Wl,editor_to:Zl,editor_flow_color:Jl,sankey_aria:Kl,sankey_flow:Xl,sankey_no_flows:Yl,sankey_nothing:$l,editor_style_slope:em,editor_measure:om,editor_measure_value:am,editor_measure_change:rm,editor_color_by_direction:im,editor_color_by_group:tm,editor_increase:_m,editor_increase_bad:dm,editor_increase_good:sm,editor_group:nm,slope_now:lm,slope_ago:mm,slope_ago_one:cm,slope_previous:um,slope_previous_one:pm,slope_last:gm,slope_last_one:hm,slope_unit_hour:bm,slope_unit_hour_other:ym,slope_unit_day:"dia",slope_unit_day_other:fm,slope_unit_week:xm,slope_unit_week_other:wm,slope_unit_month:"mês",slope_unit_month_other:Mm,slope_entity_aria:km,slope_no_reading:Am,editor_style_sparkline:Em,editor_spark:zm,editor_spark_line:qm,editor_spark_area:Pm,editor_spark_column:Nm,editor_spark_bar:Sm,editor_spark_color:"Cor",spark_aria:Tm,editor_style_streamgraph:Lm,editor_baseline:Om,editor_baseline_wiggle:Vm,editor_baseline_centre:Hm,editor_baseline_share:Um,editor_baseline_zero:Fm,editor_stream_order:Gm,editor_stream_order_inside_out:Rm,editor_stream_order_listed:Bm,editor_stream_labels:jm,editor_stream_curve:Im,stream_total:Qm,editor_style_sunburst:Wm,editor_style_icicle:Zm,editor_sunburst_shape:Jm,editor_sunburst_shape_full:Km,editor_sunburst_shape_half:Xm,editor_hierarchy_color_by:"Cor",editor_hierarchy_color_by_group:$m,editor_hierarchy_color_by_bands:ec,hierarchy_total:oc,hierarchy_other:ac,hierarchy_empty:rc,hierarchy_no_reading:ic,sunburst_aria:tc,icicle_aria:_c,editor_style_timeline:dc,timeline_no_states:sc,timeline_for:nc,timeline_now:lc,timeline_measurement:mc,editor_style_treemap:cc,editor_treemap_color_by:"Cor",editor_treemap_color_by_group:pc,editor_treemap_color_by_bands:gc,treemap_aria:hc,treemap_total:bc,treemap_empty:yc,treemap_no_reading:vc,treemap_other:fc,editor_style_trend:xc,trend_min:wc,trend_avg:Cc,trend_max:Mc,editor_style_violin:kc,editor_shape_violin:Ac,editor_shape_raincloud:Ec,editor_box:zc,editor_bandwidth:qc,editor_split_by:Pc,editor_split_by_none:Nc,editor_split_by_day:Sc,editor_split_by_week:Dc,editor_split_by_month:Tc,violin_median:Lc,violin_none:Oc,violin_raincloud:Vc,editor_style_waffle:Hc,editor_waffles:Uc,editor_waffles_one:Fc,editor_waffles_each:Gc,editor_headline:Rc,editor_style_waterfall:Bc,editor_steps:jc,editor_steps_change:Ic,editor_steps_current:Qc,editor_start_from_first:Wc,editor_total:Zc,editor_waterfall_invert:Jc,waterfall_start:Kc,waterfall_end:"Fim",waterfall_total:Yc,waterfall_no_readings:$c,waterfall_aria:eu,editor_style_wind_rose:ou,wind_prevailing:au,wind_mean_speed:ru,wind_strongest:iu,wind_calm:tu,wind_speed:_u,wind_speed_unit:du,wind_share:su,wind_aria:nu,wind_aria_calm:lu,wind_aria_still:mu};export{xo as annotation_at,rd as box_aria,ld as box_count,id as box_highest,dd as box_lower_quartile,sd as box_lowest,nd as box_mean,_d as box_median,md as box_outliers,td as box_upper_quartile,Da as bubble_needs_three,La as bubble_role_size,Td as candle_close,Sd as candle_high,Dd as candle_low,Nd as candle_open,Ld as candle_week_of,wd as chart_aria,al as chart_error,ol as chart_loading,il as chart_log_nothing,rl as chart_no_data,Oa as chart_total,Rd as climate_action_cooling,Bd as climate_action_defrosting,jd as climate_action_drying,Id as climate_action_fan,Fd as climate_action_heating,Qd as climate_action_idle,Wd as climate_action_off,Gd as climate_action_preheating,Ud as climate_not_thermostat,Hd as climate_range,Vd as climate_set_point,xd as compare_target,xs as day_clock_a_day,qs as day_clock_average,Ds as day_clock_average_value,ws as day_clock_busiest,As as day_clock_no_data,Es as day_clock_now,zs as day_clock_on,Ps as day_clock_on_days,Cs as day_clock_peak,ks as day_clock_per_day,Ss as day_clock_range,Ns as day_clock_so_far,Ms as day_clock_state,fs as day_clock_times,vs as day_clock_times_one,cu as default,So as dist_count,qo as dist_median,Po as dist_middle,No as dist_range,Lo as drill_back,To as drill_into,Oo as drill_top,Ws as dumbbell_ago_day,Qs as dumbbell_ago_day_one,Is as dumbbell_ago_hour,js as dumbbell_ago_hour_one,Xs as dumbbell_ago_month,Ks as dumbbell_ago_month_one,Js as dumbbell_ago_week,Zs as dumbbell_ago_week_one,Gs as dumbbell_high,Fs as dumbbell_low,Ys as dumbbell_no_value,Rs as dumbbell_now,Bs as dumbbell_target,Zi as editor_active,mo as editor_add_band,uo as editor_add_entity,Ca as editor_against,Ma as editor_against_entity,ka as editor_against_time,Hr as editor_aggregate,Qi as editor_aggregate_auto,Ir as editor_aggregate_change,Br as editor_aggregate_first,jr as editor_aggregate_last,Rr as editor_aggregate_max,Ur as editor_aggregate_mean,Gr as editor_aggregate_min,Fr as editor_aggregate_sum,Jt as editor_align_header,$t as editor_align_header_center,Kt as editor_align_header_default,Xt as editor_align_header_left,Yt as editor_align_header_right,e_ as editor_align_icon,a_ as editor_align_icon_left,o_ as editor_align_icon_right,r_ as editor_align_icon_state,i_ as editor_align_state,d_ as editor_align_state_center,t_ as editor_align_state_left,__ as editor_align_state_right,pe as editor_animate,ar as editor_annotation_add,Ya as editor_annotation_add_band,Xa as editor_annotation_add_line,or as editor_annotation_add_point,er as editor_annotation_add_state,$a as editor_annotation_add_time,mr as editor_annotation_at,gr as editor_annotation_at_first,pr as editor_annotation_at_last,cr as editor_annotation_at_max,ur as editor_annotation_at_min,br as editor_annotation_color,yr as editor_annotation_dash,dr as editor_annotation_entity,ir as editor_annotation_from,hr as editor_annotation_label,vr as editor_annotation_remove,sr as editor_annotation_series,lr as editor_annotation_shade,nr as editor_annotation_state,_r as editor_annotation_times,tr as editor_annotation_to,Ia as editor_annotation_type,Wa as editor_annotation_type_band,Qa as editor_annotation_type_line,Ka as editor_annotation_type_point,Ja as editor_annotation_type_state,Za as editor_annotation_type_time,rr as editor_annotation_value,ja as editor_annotations,Pe as editor_attribute,Ft as editor_average,Zr as editor_axis_labels,Kr as editor_axis_labels_inside,Jr as editor_axis_labels_outside,Xe as editor_band_color,Ye as editor_band_custom_color,We as editor_band_from,Ze as editor_band_from_entity,Ke as editor_band_from_entity_label,Je as editor_band_from_number,eo as editor_band_icon,$e as editor_band_label,qc as editor_bandwidth,wn as editor_bar_color,fn as editor_bar_group,at as editor_bar_labels,tt as editor_bar_labels_both,it as editor_bar_labels_duration,_t as editor_bar_labels_none,rt as editor_bar_labels_state,xn as editor_bar_series,Lt as editor_bar_spacing,Zn as editor_bars,bn as editor_bars_color_by,vn as editor_bars_color_by_bands,yn as editor_bars_color_by_series,Kn as editor_bars_overlap,Jn as editor_bars_side,Om as editor_baseline,Hm as editor_baseline_centre,Um as editor_baseline_share,Vm as editor_baseline_wiggle,Fm as editor_baseline_zero,Wn as editor_bin_width,Qn as editor_bins,zc as editor_box,hd as editor_box_color,Ri as editor_bucket,Bi as editor_bucket_15,ji as editor_bucket_30,Ii as editor_bucket_60,D_ as editor_calm,Md as editor_candle_by,Ve as editor_card_setting,Sn as editor_cell_shape,Ln as editor_cell_shape_hexagon,Tn as editor_cell_shape_rounded,Dn as editor_cell_shape_square,Z as editor_center,ha as editor_center_average,gl as editor_center_label,K as editor_center_mode_band,X as editor_center_mode_name,$ as editor_center_mode_none,Y as editor_center_mode_text,J as editor_center_mode_value,ba as editor_center_none,ee as editor_center_text,ga as editor_center_total,io as editor_color_amber,_o as editor_color_blue,E as editor_color_by,q as editor_color_by_bands,im as editor_color_by_direction,tm as editor_color_by_group,Nn as editor_color_by_scale,z as editor_color_by_series,ca as editor_color_by_shades,lo as editor_color_custom,ro as editor_color_green,no as editor_color_grey,oo as editor_color_icon,Vn as editor_color_max,On as editor_color_min,l_ as editor_color_name,ao as editor_color_primary,so as editor_color_purple,to as editor_color_red,Ot as editor_color_transition,Ht as editor_color_transition_hard,Vt as editor_color_transition_smooth,m_ as editor_color_value,$d as editor_column_color,Yd as editor_column_labels,de as editor_columns,si as editor_compact,Vi as editor_cooling_color,Fn as editor_count,Rn as editor_count_readings,Gn as editor_count_time,Ti as editor_current_color,C as editor_curve,M as editor_curve_smooth,A as editor_curve_step,k as editor_curve_straight,S as editor_dash,Gi as editor_day_clock_center_none,Fi as editor_day_clock_center_now,Ui as editor_day_clock_center_total,Hi as editor_days,ce as editor_decimals,Pa as editor_dot_color,Aa as editor_dot_size,_i as editor_dots,qe as editor_double_tap_action,Ed as editor_down_color,Do as editor_drill_down,W as editor_end_angle,Ls as editor_ends,Os as editor_ends_range,Hs as editor_ends_target,Vs as editor_ends_then,v_ as editor_entity_aggregate,ot as editor_entity_groups,Ji as editor_entity_options_none,ve as editor_exclude_heading,fe as editor_exclude_help,Ut as editor_extrema,Qo as editor_extremes,Ro as editor_extremes_average,Io as editor_extremes_average_figure,jo as editor_extremes_average_line,Bo as editor_extremes_average_none,Fo as editor_extremes_max,Go as editor_extremes_min,wt as editor_fill,od as editor_fill_color,Mt as editor_fill_fade,kt as editor_fill_none,Ct as editor_fill_solid,f_ as editor_fixed_value,Jl as editor_flow_color,s_ as editor_font_size,n_ as editor_font_size_header,Wl as editor_from,sn as editor_funnel_color_by,ln as editor_funnel_color_by_bands,nn as editor_funnel_color_by_series,rn as editor_funnel_percent_of,tn as editor_funnel_percent_of_first,dn as editor_funnel_percent_of_none,_n as editor_funnel_percent_of_previous,en as editor_funnel_shape,on as editor_funnel_shape_funnel,an as editor_funnel_shape_pyramid,hl as editor_gap,I as editor_gauge_help,bl as editor_gradient,yt as editor_graph,ft as editor_graph_bar,vt as editor_graph_line,xt as editor_graph_none,zn as editor_grid,Pn as editor_grid_calendar,Xr as editor_grid_horizontal,qn as editor_grid_hours,Yr as editor_grid_vertical,nm as editor_group,s as editor_group_bars,Sr as editor_group_by,Yi as editor_group_by_area,Jd as editor_group_by_auto,Lr as editor_group_by_day,$i as editor_group_by_device,Xi as editor_group_by_floor,Tr as editor_group_by_hour,et as editor_group_by_label,Vr as editor_group_by_month,Dr as editor_group_by_none,Or as editor_group_by_week,c as editor_group_compare,u as editor_group_distribution,n as editor_group_gauges,l as editor_group_history,nl as editor_group_size,m as editor_group_totals,ni as editor_header,li as editor_header_above,ci as editor_header_hidden,mi as editor_header_over,Rc as editor_headline,Oi as editor_heating_color,Tt as editor_height,yo as editor_hide_options,ge as editor_hide_unavailable,Ym as editor_hierarchy_color_by,ec as editor_hierarchy_color_by_bands,$m as editor_hierarchy_color_by_group,Ki as editor_hierarchy_group_by,Xn as editor_hist_x_axis,ze as editor_hold_action,Se as editor_icon,p_ as editor_icon_image,be as editor_include_heading,ye as editor_include_help,_m as editor_increase,dm as editor_increase_bad,sm as editor_increase_good,Ea as editor_jitter,P as editor_labels,St as editor_labels_always,Nt as editor_labels_hover,Dt as editor_labels_never,Ci as editor_labels_overlap,yi as editor_labels_position,fi as editor_labels_position_above,vi as editor_labels_position_auto,xi as editor_labels_position_below,wi as editor_labels_position_center,ui as editor_labels_show,pi as editor_labels_show_all,bi as editor_labels_show_ends,gi as editor_labels_show_last,hi as editor_labels_show_minmax,Hn as editor_legend,he as editor_limit,He as editor_limit_default,Fe as editor_limit_entity,Ue as editor_limit_number,ti as editor_line_width,Bl as editor_link_color,jl as editor_link_color_auto,Il as editor_link_color_source,Ql as editor_link_color_target,Te as editor_max,qa as editor_max_size,Vl as editor_mean,om as editor_measure,rm as editor_measure_change,am as editor_measure_value,De as editor_min,jt as editor_min_range,Wt as editor_min_range_secondary,za as editor_min_size,un as editor_mode,pn as editor_mode_grouped,hn as editor_mode_percent,gn as editor_mode_stacked,go as editor_move_down,po as editor_move_up,ki as editor_multiples,Pi as editor_multiples_columns,Ai as editor_multiples_scale,Ei as editor_multiples_scale_auto,qi as editor_multiples_scale_independent,zi as editor_multiples_scale_shared,Ne as editor_name,B_ as editor_negative_color,Oe as editor_none,vo as editor_not_found,di as editor_on_top,wo as editor_orientation,Co as editor_orientation_horizontal,Mo as editor_orientation_vertical,Ba as editor_overview,ll as editor_partial,sl as editor_per_icon,xr as editor_period_calendar,Cr as editor_period_calendar_day,kr as editor_period_calendar_month,wr as editor_period_calendar_rolling,Mr as editor_period_calendar_week,Ar as editor_period_calendar_year,p as editor_period_last,Nr as editor_period_navigate,Er as editor_period_offset,g as editor_period_unit,b as editor_period_unit_day,h as editor_period_unit_hour,v as editor_period_unit_month,y as editor_period_unit_week,zr as editor_period_until,Pr as editor_period_until_end,qr as editor_period_until_now,I_ as editor_place_by,W_ as editor_place_by_time_of_day,Q_ as editor_place_by_value,At as editor_points,zt as editor_points_always,Et as editor_points_hover,qt as editor_points_never,bt as editor_points_per_hour,Al as editor_polar_color,wl as editor_polar_color_by,kl as editor_polar_color_by_bands,Cl as editor_polar_color_by_series,Ml as editor_polar_color_by_shades,vl as editor_polar_scale,xl as editor_polar_scale_limits,fl as editor_polar_scale_shared,Ge as editor_preset,Re as editor_preset_battery,Qe as editor_preset_custom,Ie as editor_preset_none,je as editor_preset_temperature,Be as editor_preset_usage,Dl as editor_radar_axis,Sl as editor_radar_fill,ql as editor_radar_scale,Pl as editor_radar_scale_limits,Nl as editor_radar_scale_shared,Kd as editor_range,Hl as editor_range_color,yd as editor_ranges,fd as editor_ranges_colours,vd as editor_ranges_shades,gd as editor_readings,co as editor_remove_band,ho as editor_remove_entity,Wi as editor_ring_color,Fl as editor_rings_start_angle,Xd as editor_rounded,Gl as editor_rounded_ends,we as editor_rule_area,xe as editor_rule_device_class,ke as editor_rule_domain,Ae as editor_rule_entity,Ce as editor_rule_floor,Me as editor_rule_label,O as editor_section_actions,d as editor_section_chart,T as editor_section_colours,L as editor_section_display,t as editor_section_entities,D as editor_section_limits,_ as editor_section_style,q_ as editor_sectors,S_ as editor_sectors_16,P_ as editor_sectors_4,N_ as editor_sectors_8,ns as editor_series_aggregate,ls as editor_series_aggregate_auto,bs as editor_series_aggregate_change,gs as editor_series_aggregate_first,hs as editor_series_aggregate_last,ps as editor_series_aggregate_max,ms as editor_series_aggregate_mean,us as editor_series_aggregate_min,cs as editor_series_aggregate_sum,ts as editor_series_axis,_s as editor_series_axis_auto,ds as editor_series_axis_left,ss as editor_series_axis_right,N as editor_series_color,os as editor_series_type,is as editor_series_type_area,rs as editor_series_type_column,as as editor_series_type_line,Ni as editor_set_point,Li as editor_set_point_color,fo as editor_severity,ua as editor_shade_color,Di as editor_shade_fan,Si as editor_shading,cl as editor_shape,ul as editor_shape_donut,pl as editor_shape_pie,Ec as editor_shape_raincloud,Ac as editor_shape_violin,Bn as editor_show_as,jn as editor_show_as_percent,In as editor_show_as_total,k_ as editor_show_fill,C_ as editor_show_graph,ie as editor_show_icon,w_ as editor_show_indicator,_e as editor_show_legend,E_ as editor_show_legend_entity,z_ as editor_show_legend_state,M_ as editor_show_line,ae as editor_show_name,Us as editor_show_now,bo as editor_show_options,pa as editor_show_percent,A_ as editor_show_points,x_ as editor_show_state,te as editor_show_target,re as editor_show_value,Z_ as editor_size_by_value,se as editor_sort,le as editor_sort_ascending,me as editor_sort_descending,ne as editor_sort_none,f as editor_source,x as editor_source_history,w as editor_source_statistics,zm as editor_spark,Pm as editor_spark_area,Sm as editor_spark_bar,Dm as editor_spark_color,Nm as editor_spark_column,qm as editor_spark_line,Pc as editor_split_by,Sc as editor_split_by_day,Tc as editor_split_by_month,Nc as editor_split_by_none,Dc as editor_split_by_week,U_ as editor_stack,F_ as editor_stack_none,G_ as editor_stack_normal,R_ as editor_stack_percent,Q as editor_start_angle,Wc as editor_start_from_first,lt as editor_state_colors,pt as editor_state_colors_add,ut as editor_state_colors_color,mt as editor_state_colors_help,gt as editor_state_colors_remove,ct as editor_state_colors_state,jc as editor_steps,Ic as editor_steps_change,Qc as editor_steps_current,Im as editor_stream_curve,jm as editor_stream_labels,Gm as editor_stream_order,Rm as editor_stream_order_inside_out,Bm as editor_stream_order_listed,j as editor_style_arc,H_ as editor_style_area,H as editor_style_bar,j_ as editor_style_beeswarm,ad as editor_style_box,wa as editor_style_bubble,bd as editor_style_bullet,Cd as editor_style_candlestick,Od as editor_style_climate,Zd as editor_style_column,es as editor_style_combined,ys as editor_style_day_clock,Ts as editor_style_dumbbell,$s as editor_style_funnel,cn as editor_style_grouped_bars,Mn as editor_style_heatmap,Un as editor_style_histogram,Zm as editor_style_icicle,el as editor_style_line,tl as editor_style_lollipop,B as editor_style_needle,_l as editor_style_pictograph,ml as editor_style_pie,yl as editor_style_polar_area,zl as editor_style_radar,Ol as editor_style_range_area,R as editor_style_ring,Ul as editor_style_rings,Rl as editor_style_sankey,xa as editor_style_scatter,F as editor_style_segmented,em as editor_style_slope,Em as editor_style_sparkline,Lm as editor_style_streamgraph,Wm as editor_style_sunburst,G as editor_style_tank,U as editor_style_thin,dc as editor_style_timeline,cc as editor_style_treemap,xc as editor_style_trend,kc as editor_style_violin,Hc as editor_style_waffle,Bc as editor_style_waterfall,ou as editor_style_wind_rose,Jm as editor_sunburst_shape,Km as editor_sunburst_shape_full,Xm as editor_sunburst_shape_half,Mi as editor_sync,Ee as editor_tap_action,Le as editor_target,oe as editor_tick_labels,ht as editor_timeline_group,dt as editor_timeline_legend,st as editor_timeline_legend_above,nt as editor_timeline_legend_hidden,V as editor_title,Zl as editor_to,ii as editor_tooltip,Zc as editor_total,uc as editor_treemap_color_by,gc as editor_treemap_color_by_bands,pc as editor_treemap_color_by_group,c_ as editor_trend_color_icon,u_ as editor_trend_group,Pt as editor_trend_labels,Gt as editor_trend_legend,g_ as editor_trend_tooltip,Bt as editor_trend_y_max,Rt as editor_trend_y_min,kd as editor_under_aggregate,zd as editor_underneath,qd as editor_underneath_columns,Pd as editor_underneath_line,ue as editor_unit,dl as editor_unit_icon,Ad as editor_up_color,ko as editor_value_axis,Zt as editor_value_factor,Ao as editor_value_grid,zo as editor_value_max,Eo as editor_value_min,Uc as editor_waffles,Gc as editor_waffles_each,Fc as editor_waffles_one,Jc as editor_waterfall_invert,cd as editor_whiskers,pd as editor_whiskers_range,ud as editor_whiskers_tukey,O_ as editor_wind_none,L_ as editor_wind_now,T_ as editor_wind_roles,V_ as editor_wind_statistics,Qr as editor_x_axis,Ha as editor_x_max,Va as editor_x_min,Na as editor_xy_x_axis,Wr as editor_y_axis,h_ as editor_y_axis_side,b_ as editor_y_axis_side_primary,y_ as editor_y_axis_side_secondary,ei as editor_y_max,Qt as editor_y_max_secondary,$r as editor_y_min,It as editor_y_min_secondary,oi as editor_y_scale,ai as editor_y_scale_linear,ri as editor_y_scale_log,fr as editor_zones,Ra as editor_zoom,e as entity_not_found,Uo as extremes_average,Vo as extremes_high,Ho as extremes_low,mn as funnel_aria,Cn as grouped_bars_aria,kn as heatmap_aria,En as heatmap_empty,An as heatmap_hours,rc as hierarchy_empty,ic as hierarchy_no_reading,ac as hierarchy_other,oc as hierarchy_total,$n as histogram_reading,Yn as histogram_readings,_c as icicle_aria,a as no_entities,r as no_matches,i as none_available,fa as parts_aria,va as parts_average,ya as parts_total,_a as period_last_day,da as period_last_days,ia as period_last_hour,ta as period_last_hours,oa as period_last_month,la as period_last_month_rolling,ma as period_last_months,$o as period_last_week,sa as period_last_week_rolling,na as period_last_weeks,ra as period_last_year,Zo as period_next,Wo as period_previous,Jo as period_return,ea as period_this_month,Yo as period_this_week,aa as period_this_year,Ko as period_today,Xo as period_yesterday,El as polar_area_aria,Tl as radar_aria,Ll as radar_other,Kl as sankey_aria,Xl as sankey_flow,Yl as sankey_no_flows,$l as sankey_nothing,Sa as scatter_needs_two,Ta as scatter_role_x,mm as slope_ago,cm as slope_ago_one,km as slope_entity_aria,gm as slope_last,hm as slope_last_one,Am as slope_no_reading,lm as slope_now,um as slope_previous,pm as slope_previous_one,vm as slope_unit_day,fm as slope_unit_day_other,bm as slope_unit_hour,ym as slope_unit_hour_other,Cm as slope_unit_month,Mm as slope_unit_month_other,xm as slope_unit_week,wm as slope_unit_week_other,Tm as spark_aria,Qm as stream_total,tc as sunburst_aria,$_ as swarm_earliest_latest,K_ as swarm_events,ed as swarm_lowest_highest,Y_ as swarm_none,J_ as swarm_readings,X_ as swarm_shown,nc as timeline_for,mc as timeline_measurement,sc as timeline_no_states,lc as timeline_now,hc as treemap_aria,yc as treemap_empty,vc as treemap_no_reading,fc as treemap_other,bc as treemap_total,Cc as trend_avg,Mc as trend_max,wc as trend_min,o as unavailable,Lc as violin_median,Oc as violin_none,Vc as violin_raincloud,eu as waterfall_aria,Xc as waterfall_end,$c as waterfall_no_readings,Kc as waterfall_start,Yc as waterfall_total,nu as wind_aria,lu as wind_aria_calm,mu as wind_aria_still,tu as wind_calm,ru as wind_mean_speed,au as wind_prevailing,su as wind_share,_u as wind_speed,du as wind_speed_unit,iu as wind_strongest,Ua as zoom_reset,Fa as zoom_window,Ga as zoom_window_label};
-//# sourceMappingURL=chartdeck-card.pt-D8OdPLlD.js.map
diff --git a/dist/chartdeck-card.pt-D8OdPLlD.js.map b/dist/chartdeck-card.pt-D8OdPLlD.js.map
deleted file mode 100644
index 6576e41..0000000
--- a/dist/chartdeck-card.pt-D8OdPLlD.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"chartdeck-card.pt-D8OdPLlD.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/dist/chartdeck-card.pt-DlX1t9a_.js b/dist/chartdeck-card.pt-DlX1t9a_.js
new file mode 100644
index 0000000..610954e
--- /dev/null
+++ b/dist/chartdeck-card.pt-DlX1t9a_.js
@@ -0,0 +1,2 @@
+const e="Entidade não encontrada",o="Indisponível",a="Adicione uma entidade no editor para começar.",r="Nenhuma entidade corresponde neste momento.",i="Nenhuma destas entidades está disponível.",t="Entidades",_="Estilo",d="Gráfico",s="Barras",n="Medidores",l="Gráficos de histórico",m="Partes de um total",c="Comparações",u="Distribuições",p="Mostrar os últimos",g="Unidade",h="Horas",b="Dias",v="Semanas",y="Meses",f="Leituras de",x="Histórico (cada alteração)",w="Estatísticas de longo prazo",C="Transformação",M="Nenhuma (leituras como estão)",k="Taxa de variação",A="Taxa por",z="Segundo",E="Minuto",q="Hora",P="Dia",N="Suavizar ao longo de leituras",D="Suavizar por tempo (ex. 15min; em vez de leituras)",S="Valores atuais",T="Painel de energia",L="Fluxos de energia (nada marcado: rede, solar e bateria)",O="Exportação e carga da bateria abaixo do eixo",V="Forma da linha",G="Suave",H="Reta",U="Degraus",F="Cor",B="Uma cor por entidade",R="Por faixa de cor",j="Mostrar valores nos pontos",I="Cor da linha",Q="Tracejado",W="Limites",J="Cores",Y="Apresentação",Z="Ações",K="Título",X="Barra",$="Fina",ee="Segmentada",oe="Depósito",ae="Grelha de baterias",re="Níveis de bateria: {levels}",ie="Anel",te="Ponteiro",_e="Arco",de="Os ângulos são em graus, no sentido dos ponteiros do relógio a partir do topo: -90 é a esquerda, 90 a direita. Deixe-os vazios para a forma habitual do estilo.",se="Ângulo inicial",ne="Ângulo final",le="Ao centro",me="O valor",ce="A etiqueta da faixa de cor",ue="O nome",pe="Texto próprio",ge="Nada",he="Texto",be="Números na escala",ve="Intervalo recente atrás do indicador",ye="Desligado",fe="Últimas 24 horas",xe="Últimos 7 dias",we="Últimas 24 horas: de {min} a {max}, média {mean}",Ce="Últimos 7 dias: de {min} a {max}, média {mean}",Me="Mostrar nome",ke="Mostrar valor",Ae="Mostrar ícone",ze="Mostrar objetivo",Ee="Mostrar legenda",qe="Colunas",Pe="Ordenar",Ne="Pela ordem da lista",De="Menor primeiro",Se="Maior primeiro",Te="Casas decimais",Le="Unidade",Oe="Animar",Ve="Ocultar entidades indisponíveis",Ge="Menu de exportação",He="Mostrar no máximo",Ue="Mostrar também todas as entidades que correspondam",Fe="Os novos dispositivos aparecem sem editar o cartão. Escolha vários do mesmo tipo para corresponder a qualquer um; tipos diferentes têm de corresponder todos.",Be="Excluir",Re="As entidades correspondentes são excluídas se corresponderem a qualquer um destes.",je="Classe de dispositivo",Ie="Áreas",Qe="Pisos",We="Etiquetas",Je="Domínios",Ye="Entidades",Ze="Ação ao tocar",Ke="Ação ao manter premido",Xe="Ação ao tocar duas vezes",$e="Entidade",eo="Aspeto",oo="Valor com ícone",ao="Minigráfico",ro="Anel",io="Barra fina",to="Atributo (em vez do estado)",_o="Nome",so="Horas de histórico",no="Mostrar nome",lo="Mostrar ícone",mo="Ícone",co="Mínimo",uo="Máximo",po="Unidade",go="Casas decimais",ho="Cor sem faixas",bo="Faixas de cor",vo="O emblema assume a cor da faixa em que está o seu valor, como no cartão.",yo="Ações",fo="Ação ao tocar",xo="Ação ao manter premido",wo="Ação ao tocar duas vezes",Co="Atributo (em vez do estado)",Mo="Nome",ko="Ícone",Ao="Mínimo",zo="Máximo",Eo="Objetivo",qo="Nenhum",Po="definição do cartão",No="Predefinição ({value})",Do="Número",So="Entidade",To="Predefinição",Lo="Bateria (baixo é mau)",Oo="Consumo (alto é mau)",Vo="Temperatura",Go="Nenhuma",Ho="Personalizada",Uo="A partir de",Fo="Começar numa entidade",Bo="Começar num número",Ro="Começa nesta entidade",jo="Cor",Io="Cor CSS",Qo="Etiqueta",Wo="Ícone",Jo="Colorir os ícones conforme a sua faixa",Yo="Primária",Zo="Verde",Ko="Âmbar",Xo="Vermelho",$o="Azul",ea="Roxo",oa="Cinzento",aa="Personalizada…",ra="Adicionar faixa",ia="Remover faixa",ta="Adicionar entidade",_a="Mover para cima",da="Mover para baixo",sa="Remover entidade",na="Mostrar opções",la="Ocultar opções",ma="{entity} (não encontrada)",ca="Cores",ua="{label} às {time}",pa="Direção",ga="Horizontal",ha="Vertical",ba="Etiquetas de valor",va="Linhas em cada etiqueta de valor",ya="Valor mais baixo mostrado",fa="Valor mais alto mostrado",xa="Mediana",wa="Metade central",Ca="Mínimo – máximo",Ma="Leituras",ka="Toque num grupo para ver a sua composição",Aa="{label}. Mostrar a composição",za="Voltar a {name}",Ea="Tudo",qa="Máx.",Pa="Mín.",Na="Méd.",Da="Marcar a leitura mais alta",Sa="Marcar a leitura mais baixa",Ta="Média",La="Não mostrar",Oa="Linha ao longo do gráfico",Va="Apenas o valor",Ga="Marcar máximo, mínimo e média",Ha="{name}: {value}, {sigma} fora do normal",Ua="acima de {limit}",Fa="abaixo de {limit}",Ba="Marcar leituras longe do normal",Ra="Janela (30min, 2h, 1d; auto: um doze avos do período)",ja="A que distância marcar, em desvios padrão",Ia="Cor das marcas",Qa="Sombrear a faixa normal",Wa="Período anterior",Ja="Período seguinte",Ya="Voltar a {label}",Za="Hoje",Ka="Ontem",Xa="Esta semana",$a="Semana passada",er="Este mês",or="Mês passado",ar="Este ano",rr="Ano passado",ir="Última hora",tr="Últimas {n} horas",_r="Último dia",dr="Últimos {n} dias",sr="Últimos 7 dias",nr="Últimas {n} semanas",lr="Último mês",mr="Últimos {n} meses",cr="Tons de uma cor",ur="Cor dos tons (nome da paleta ou cor CSS)",pr="Mostrar cada parte em percentagem",gr="Total",hr="Média",br="Nada",vr="Total",yr="Média",fr="{style} de {names}",xr="Dispersão",wr="Bolhas",Cr="No eixo horizontal",Mr="A primeira entidade",kr="Tempo",Ar="Tamanho do ponto (px)",zr="Dispersão aleatória (px)",Er="Bolha mais pequena (px)",qr="Bolha maior (px)",Pr="Cor do ponto",Nr="Etiquetas no eixo horizontal",Dr="Adicione uma segunda entidade. A primeira fica no eixo horizontal, as outras no eixo vertical.",Sr="Adicione três entidades: uma para o eixo horizontal, uma para o vertical e uma para o tamanho de cada bolha.",Tr="Horizontal",Lr="Tamanho",Or="Total",Vr="Valor horizontal mais baixo",Gr="Valor horizontal mais alto",Hr="Repor zoom",Ur="Mostrado: {from} a {to}",Fr="Parte do gráfico mostrada",Br="Zoom e deslocação (pinçar, Ctrl + roda ou arrastar)",Rr="Faixa de visão geral sob o gráfico",jr="Anotações",Ir="Tipo",Qr="Linha num valor",Wr="Faixa sombreada de valores",Jr="Marcas a horas definidas",Yr="Marcas quando uma entidade muda",Zr="Etiqueta numa leitura",Kr="Linha",Xr="Faixa",$r="Horas",ei="Mudanças de estado",oi="Etiqueta de ponto",ai="Adicionar uma anotação:",ri="Valor (um número ou uma entidade)",ii="De (um número ou uma entidade; vazio para o fundo)",ti="Até (um número ou uma entidade; vazio para o topo)",_i="Horas: 07:00 para todos os dias, ou 2026-10-28 07:00 (separadas por vírgulas)",di="Entidade",si="Série (vazio para a primeira)",ni="Estado (vazio para todas as mudanças)",li="Sombrear enquanto neste estado",mi="Leitura",ci="Mais alta",ui="Mais baixa",pi="Mais recente",gi="Primeira",hi="Etiqueta",bi="Cor",vi="Tracejado",yi="Seguir o histórico da entidade (em degraus)",fi="Sombrear",xi="Nada",wi="Acima da linha",Ci="Abaixo da linha",Mi="Cores do sombreado conforme o valor da linha (faixas opcionais)",ki="Remover anotação",Ai="Sombrear as faixas de gravidade atrás do gráfico",zi="Período",Ei="Os últimos…",qi="Hoje",Pi="Esta semana",Ni="Este mês",Di="Este ano",Si="Períodos para trás (0 é o atual)",Ti="Desenhar até",Li="Agora",Oi="O fim do período",Vi="Mostrar botões anterior e seguinte",Gi="Agrupar leituras por",Hi="Não agrupar",Ui="Hora",Fi="Dia",Bi="Semana",Ri="Mês",ji="Combinar com",Ii="{name}, {offset}",Qi="{n} h antes",Wi="{n} dias antes",Ji="{n} semanas antes",Yi="{n} meses antes",Zi="{n} anos antes",Ki="Comparar com períodos anteriores (desenhados esbatidos atrás)",Xi="Cor dos períodos anteriores",$i="Cinzento",et="Cor da série esbatida",ot="Média",at="Soma",rt="Mínimo",it="Máximo",tt="Primeiro",_t="Último",dt="Variação (contadores que aumentam)",st="Transformação",nt="Nenhuma (leituras como estão)",lt="Total acumulado",mt="O total acumulado recomeça",ct="Nunca (a partir da margem esquerda)",ut="Todos os dias",pt="Todas as semanas",gt="Todos os meses",ht="Todos os meses no dia de faturação",bt="Dia de faturação do mês (1–28)",vt="Etiquetas de tempo",yt="Etiquetas de valor",ft="Etiquetas dos eixos",xt="Ao lado do gráfico",wt="Sobre o gráfico",Ct="Linhas horizontais",Mt="Linhas verticais",kt="Valor mais baixo mostrado",At="Valor mais alto mostrado",zt="Escala de valores",Et="Passos iguais",qt="Logarítmica (potências de dez)",Pt="Mostrar valores ao passar o rato ou tocar",Nt="Largura da linha (px)",Dt="Ponto em cada leitura",St="Desenhar por cima das outras linhas",Tt="Mostrar só enquanto esta entidade",Lt="…estiver no estado (separados por vírgulas)",Ot="…estiver acima de",Vt="…estiver abaixo de",Gt="Mostrar todas as séries só enquanto esta entidade",Ht="…estiver no estado (separados por vírgulas)",Ut="…estiver acima de",Ft="…estiver abaixo de",Bt="Linha ténue das leituras ocultas",Rt="Faixa que mostra quando se verificou",jt="Mostrado enquanto {condition}",It="Linha de agora",Qt="Desligada",Wt="Só a linha",Jt="Linha e a hora",Yt="Linha e contagem até à próxima hora definida",Zt="{label} em {duration}",Kt="Próxima em {duration}",Xt="Compacto",$t="Nomes e valores",e_="Acima do gráfico",o_="Sobre o gráfico",a_="Ocultos",r_="Toque num nome para o ocultar ou mostrar",i_="Que leituras",t_="Todas (as que couberem)",__="A mais recente",d_="Mais alta e mais baixa",s_="Primeira e mais recente",n_="Posição da etiqueta",l_="Acima dos picos, abaixo das quedas",m_="Acima",c_="Abaixo",u_="No ponto",p_="Permitir sobreposição de etiquetas",g_="Grupo de sincronização (gráficos com o mesmo nome partilham o ponteiro e os passos de período)",h_="Um pequeno gráfico por entidade",b_="Escala de valores",v_="A mesma quando as unidades coincidem",y_="A mesma para todos os gráficos",f_="Cada gráfico com a sua",x_="Colunas (vazio ajusta ao cartão)",w_="Previsão",C_="Previsão de {name}",M_="Previsão",k_="Entidade de previsão (desenha a previsão tracejada a partir de agora)",A_='Atributo (vazio: previsão do tempo ou "forecast")',z_="Chave do valor (vazio: automática)",E_="Chave da hora (vazio: automática)",q_="Previsão do tempo (vazio: por hora)",P_="Por hora",N_="Diária",D_="Duas vezes por dia",S_="Multiplicar os valores por (vazio: 1)",T_="Mostrar previsões até este prazo",L_="Mostrar a temperatura definida",O_="Sombrear durante aquecimento ou arrefecimento",V_="Sombrear quando só a ventoinha funciona",G_="Cor da temperatura",H_="Cor da temperatura definida",U_="Cor de aquecimento",F_="Cor de arrefecimento",B_="Dias (mais de 1 mostra o dia médio)",R_="Tempo ligado",j_="A hora atual",I_="Nada",Q_="Uma barra a cada",W_="15 minutos",J_="30 minutos",Y_="Hora",Z_="Automático (variação para contadores, senão média)",K_="Cor",X_="Conta como ligado (vazio: on, open, heating, home…)",$_="Adicione primeiro uma entidade acima.",ed="Agrupar por",od="Piso",ad="Área",rd="Dispositivo",id="Etiqueta",td='Grupo próprio (prevalece sobre "Agrupar por"; "Rés-do-chão / Cozinha" para dois níveis)',_d="Texto nas barras",dd="Estado",sd="Duração",nd="Estado e duração",ld="Nenhum",md="Legenda dos estados",cd="Acima do gráfico",ud="Oculta",pd="Cores dos estados",gd="Um nome da paleta (amber, green, blue, red, purple, grey, primary) ou qualquer cor CSS.",hd="Estado",bd="Cor",vd="Adicionar uma cor de estado",yd="Remover",fd="Grupo (linhas do mesmo grupo partilham um título)",xd="Pontos por hora (0 desenha todas as leituras)",wd="Gráfico",Cd="Linha",Md="Barras",kd="Nenhum (só o valor)",Ad="Preencher sob a linha",zd="Sólido",Ed="Esbatido",qd="Nenhum",Pd="Pontos na linha",Nd="Ao passar o rato",Dd="Sempre",Sd="Nunca",Td="Etiquetas de máximo e mínimo",Ld="Ao passar o rato",Od="Sempre",Vd="Nunca",Gd="Altura do gráfico (por cada 500 px de largura)",Hd="Espaço entre barras (px)",Ud="Cores das faixas",Fd="Misturar",Bd="Mudar em cada faixa",Rd="Mostrar mínimo e máximo",jd="Mostrar média",Id="Legenda (duas ou mais entidades)",Qd="Valor mais baixo (~ para flexível)",Wd="Valor mais alto (~ para flexível)",Jd="Menor intervalo mostrado",Yd="Mínimo do eixo direito (~ para flexível)",Zd="Máximo do eixo direito (~ para flexível)",Kd="Menor intervalo do eixo direito",Xd="Multiplicar por 10 elevado a",$d="Nome e ícone",es="Distribuídos",os="Esquerda",as="Direita",rs="Centro",is="Ícone",ts="À direita do nome",_s="À esquerda do nome",ds="Ao lado do valor",ss="Valor",ns="Esquerda",ls="Direita",ms="Centro",cs="Tamanho do valor (%)",us="Tamanho do nome (px)",ps="Colorir o nome",gs="Colorir o valor",hs="Colorir o ícone",bs="Sem fundo (dentro de outro cartão)",vs="Imagem em vez do ícone (URL)",ys="Mostrar o valor sob o ponteiro",fs="Eixo",xs="Esquerdo",ws="Direito (escala própria)",Cs="Combinar com",Ms="Desenhar o valor atual como linha horizontal",ks="Mostrar o seu valor ao lado do principal",As="Ponto colorido conforme o valor",zs="No gráfico",Es="Linha",qs="Preenchimento",Ps="Pontos",Ns="Na legenda",Ds="Valor na legenda",Ss="Direções",Ts="4 (N, E, S, W)",Ls="8 (N, NE, E…)",Os="16 (N, NNE, NE…)",Vs="Calmaria abaixo de (vazio: 0,5 m/s, ou o equivalente em km/h, mph ou nós)",Gs="A primeira entidade é a direção do vento, em graus ou pontos cardeais como SO. A segunda é a velocidade do vento: sem ela, as pétalas mostram apenas com que frequência o vento soprou de cada direção.",Hs="Direção: {direction}. Velocidade: {speed}.",Us="nenhuma",Fs="As estatísticas de longo prazo dão a direção média de cada hora. Isso só está correto em torno do norte quando o sensor regista a direção como ângulo (classe de estado measurement_angle); caso contrário, uma hora a oscilar entre NNO e NNE dá uma média de sul. O histórico é exato.",Bs="Área",Rs="Empilhar",js="Não empilhar",Is="Uns sobre os outros",Qs="Até 100 %",Ws="Cor abaixo de zero",Js="Enxame",Ys="Posicionar cada ponto por",Zs="O seu valor",Ks="A hora do dia em que ocorreu",Xs="Pontos maiores para valores maiores",$s="{n} leituras",en="{n} vezes ligado",on="Pontos mostrados",an="Sem leituras",rn="Sem alterações: {value}",tn="Igual todo o período",_n="Mais antiga – mais recente",dn="Mínimo – máximo",sn="Gráfico de faixas",nn="Mediana {value}",ln="Média {value}",mn="Média",cn="Linha em cada fila em",un="A mediana",pn="A média",gn="Sem linha",hn="Dispersão na fila",bn="Cor",vn="Diagrama de caixa",yn="Diagrama de caixa de {names}",fn="Máximo",xn="Quartil superior",wn="Mediana",Cn="Quartil inferior",Mn="Mínimo",kn="Média",An="Leituras",zn="Valores atípicos",En="Os bigodes vão até",qn="1,5 × a altura da caixa (valores atípicos como pontos)",Pn="O mínimo e o máximo",Nn="Mostrar cada leitura como um ponto",Dn="Cor da caixa",Sn="Bala",Tn="Intervalos atrás da barra",Ln="Tons de cinzento",On="Cores das faixas de cor",Vn="objetivo {target}",Gn="Gráfico {style} de {names}",Hn="Velas",Un="Uma vela por",Fn="Entidades por baixo: combinar leituras com",Bn="Cor quando subiu",Rn="Cor quando desceu",jn="Desenhar as outras entidades por baixo como",In="Colunas",Qn="Uma linha",Wn="Abertura",Jn="Máximo",Yn="Mínimo",Zn="Fecho",Kn="Semana de {date}",Xn="Climatização",$n="Temperatura definida",el="{low} – {high}",ol="{name} não é um termóstato. Escolha uma entidade de climatização.",al="A aquecer",rl="A pré-aquecer",il="A arrefecer",tl="A descongelar",_l="A desumidificar",dl="Ventoinha",sl="Inativo",nl="Desligado",ll="Colunas",ml="Automático",cl="Mínimo a máximo em cada coluna",ul="Extremidades arredondadas",pl="Mostrar valores nas colunas",gl="Barras de erro (dispersão em cada coluna)",hl="Nenhuma",bl="Média ± um desvio padrão",vl="O mínimo e o máximo",yl="Intervalo de confiança de 95 % da média",fl="{value} ({low} – {high})",xl="Cor",wl="Combinado",Cl="Desenhar como",Ml="Linha",kl="Colunas",Al="Área",zl="Eixo de valores",El="Automático (por unidade)",ql="Esquerdo",Pl="Direito",Nl="Combinar com",Dl="Como o cartão",Sl="Média",Tl="Soma",Ll="Mínimo",Ol="Máximo",Vl="Primeiro",Gl="Último",Hl="Variação (contadores que aumentam)",Ul="Relógio de 24 horas",Fl="uma vez",Bl="{n} vezes",Rl="{text} por dia",jl="{total} · mais ativo {time}",Il="pico de {value} às {time}",Ql="{name} {state}",Wl="{label} por dia",Jl="Nada registado",Yl="Agora",Zl="ligado",Kl="Dia médio · últimos {n} dias",Xl="em {on} de {of} dias",$l="{duration} até agora",em="{from} – {to}",om="{value} em média",am="Gráfico de ciclos",rm="Média de cada hora em {n} semanas",im="Cada hora, dia a dia, em {n} semanas",tm="Cada dia do mês, mês a mês, em {n} semanas",_m="Média do painel",dm="Média de {name}",sm="Um painel por",nm="Dia da semana (as suas horas)",lm="Hora do dia (dia a dia)",mm="Dia do mês (mês a mês)",cm="Semanas",um="Halteres",pm="Comparar",gm="Mínimo e máximo no período",hm="Início do período e agora",bm="Objetivo e agora",vm="Marcar o valor atual",ym="Mín.",fm="Máx.",xm="Agora",wm="Objetivo",Cm="Há uma hora",Mm="Há {n} horas",km="Há um dia",Am="Há {n} dias",zm="Há uma semana",Em="Há {n} semanas",qm="Há um mês",Pm="Há {n} meses",Nm="Sem valor",Dm="Funil",Sm="Forma",Tm="Funil (primeira etapa no topo)",Lm="Pirâmide (primeira etapa na base)",Om="Percentagens",Vm="Parte da primeira etapa",Gm="Parte da etapa anterior",Hm="Não mostrar",Um="Cor",Fm="Uma cor por entidade",Bm="Por faixa de cor",Rm="{style} de {names}",jm="Barras agrupadas",Im="Barras",Qm="Lado a lado",Wm="Empilhadas",Jm="Empilhadas até 100 %",Ym="Cor",Zm="Uma cor por série",Km="Por faixa de cor",Xm="Linha",$m="Série",ec="Cor da barra",oc="Gráfico de barras de {names}",ac="Mapa de calor",rc="Mapa de calor de {name}",ic="Dias em média",tc="Sem leituras",_c="Disposição",dc="Hora por dia da semana",sc="Calendário (um dia por célula)",nc="Escala contínua",lc="Células",mc="Quadradas",cc="Arredondadas",uc="Hexagonais",pc="Cor mais baixa em",gc="Cor mais alta em",hc="Legenda",bc="Espiral",vc="Espiral de {name}, {n} voltas",yc="{n} dias, uma volta por dia",fc="{n} semanas, uma volta por semana",xc="O mais antigo no centro, o mais recente por fora",wc="Uma volta por",Cc="Dia",Mc="Semana",kc="Voltas",Ac="Largura do anel",zc="Histograma",Ec="Contar",qc="Tempo passado em cada intervalo",Pc="Leituras em cada intervalo",Nc="Mostrar como",Dc="Parte do total (%)",Sc="Horas ou leituras",Tc="Número de classes (vazio: automático)",Lc="Largura da classe (prevalece sobre o número)",Oc="Duas ou mais entidades",Vc="Barras lado a lado",Gc="Barras sobrepostas",Hc="Etiquetas de valor no eixo horizontal",Uc="{n} leituras",Fc="1 leitura",Bc="Linha",Rc="A carregar o histórico…",jc="Não foi possível carregar o histórico: {error}",Ic="A carregar as definições do painel de energia…",Qc="Não foi possível ler as definições do painel de energia: {error}",Wc="O painel de energia ainda não tem nenhum destes fluxos configurado.",Jc="Importação da rede",Yc="Exportação para a rede",Zc="Solar",Kc="Descarga da bateria",Xc="Carga da bateria",$c="Gás",eu="Água",ou="Dispositivos",au="Casa",ru="Consumo não medido",iu="Consumido em casa",tu="Sem leituras neste período.",_u="Toque para ocultar ou mostrar. Mantenha premido para mostrar só esta.",du="Todas as séries estão ocultas. Toque num nome para a mostrar de novo.",su="Exportar",nu="Guardar como PNG",lu="imagem, 2×",mu="Guardar como SVG",cu="vetorial",uu="Copiar CSV",pu="valores desenhados",gu="Copiar YAML",hu="configuração deste cartão",bu="Copiado",vu="Guardado",yu="Guardado como ficheiro: a área de transferência não está disponível aqui",fu="Não foi possível exportar neste navegador",xu="Nada acima de zero para desenhar numa escala logarítmica.",wu="Chupa-chupa",Cu="Pictograma",Mu="Ícone (cada entidade pode ter o seu)",ku="Cada ícone representa (vazio: automático)",Au="Ícones por grupo (0: sem grupos)",zu="Preencher parcialmente um ícone para frações",Eu="Circular / anel",qu="Forma",Pu="Anel",Nu="Circular",Du="Linha sob o total",Su="Espaço entre fatias",Tu="Preenchimentos em gradiente",Lu="Área polar",Ou="Escala",Vu="Uma escala para todas, de 0 ao maior valor",Gu="Cada fatia do mínimo ao máximo da sua entidade",Hu="Cor",Uu="Uma cor por entidade",Fu="Tons de uma cor, mais escuro para mais",Bu="Por faixa de cor",Ru="Cor dos tons",ju="Gráfico de área polar de {names}",Iu="Radar",Qu="Escala",Wu="Cada eixo do mínimo ao máximo da sua entidade",Ju="Uma escala para todos, de 0 ao maior valor",Yu="Preencher as formas",Zu="Nome do eixo (entidades com o mesmo nome de eixo alinham-se entre grupos)",Ku="Gráfico de radar de {names}",Xu="Outros",$u="Área de intervalo",ep="Desenhar a média como uma linha",op="Cor",ap="Anéis",rp="Ângulo inicial (0 é o topo)",ip="Extremidades arredondadas",tp="Sankey (fluxo)",_p="Colorir fluxos por",dp="Origem, ou destino após um nó intermédio",sp="Origem",np="Destino",lp="Flui de",mp="Flui para",cp="Cor do fluxo",up="Gráfico de fluxo: {flows}",pp="{from} para {to} {value}",gp='Defina para cada entidade um "Flui de" e um "Flui para" nas suas opções.',hp="Nada está a fluir neste momento.",bp="Nada fluiu neste período.",vp="Cordas (fluxos em círculo)",yp="Espaço entre nós",fp="Opacidade das fitas",xp="Diagrama de cordas: {flows}",wp="Declive",Cp="Comparar",Mp="A leitura antes e agora",kp="Quanto subiu em cada período (contadores)",Ap="Subida ou descida",zp="Por grupo",Ep="Uma subida é",qp="Má (vermelho)",Pp="Boa (verde)",Np="Grupo",Dp="Agora",Sp="Há {n} {unit}",Tp="Há 1 {unit}",Lp="{n} {unit} anteriores",Op="{unit} anterior",Vp="{n} {unit} mais recentes",Gp="{unit} mais recente",Hp="hora",Up="horas",Fp="dia",Bp="dias",Rp="semana",jp="semanas",Ip="mês",Qp="meses",Wp="{name}, {from} a {to}",Jp="sem leitura",Yp="Minigráficos",Zp="Minigráfico",Kp="Linha",Xp="Área",$p="Colunas",eg="Barra sob o nome e o valor",og="Cor",ag="Tendência de {name}",rg="Gráfico de correntes",ig="Forma",tg="Gráfico de fluxo (ondulado)",_g="Centrado",dg="Parte do total (100 %)",sg="Empilhado a partir de zero",ng="Ordem",lg="Maior ao centro",mg="Pela ordem da lista, a primeira em baixo",cg="Nomes nos fluxos",ug="Contornos",pg="Total",gg="Explosão solar",hg="Pingente",bg="Forma",vg="Círculo completo",yg="Semicírculo",fg="Cor",xg="Uma cor por grupo",wg="Por faixa de cor",Cg="Total",Mg="Outros",kg="Nada a mostrar: nenhuma entidade tem um valor acima de zero.",Ag="Sem leitura:",zg="Explosão solar de {names}",Eg="Gráfico de pingente de {names}",qg="Cronologia de estados",Pg="Nenhum estado registado neste período.",Ng="durante {duration}",Dg="Agora",Sg="Leituras, não estados: um gráfico de linhas adequa-se melhor",Tg="Mapa de árvore",Lg="Cor",Og="Uma cor por grupo",Vg="Por faixa de cor",Gg="Mapa de árvore de {names}",Hg="{value} no total",Ug="Nada a mostrar: nenhuma entidade tem um valor acima de zero.",Fg="Sem leitura:",Bg="Outros",Rg="Marimekko",jg="Texto em cada parte",Ig="Parte da sua coluna",Qg="Valor",Wg="Parte e valor",Jg="Nenhum",Yg="Coluna (grupo)",Zg="Categoria",Kg="Cor da categoria",Xg="Gráfico Marimekko, colunas: {columns}",$g="Tendência",eh="Mín.",oh="Média",ah="Máx.",rh="Violino",ih="Violino",th="Nuvem de chuva (meio violino, caixa e leituras)",_h="Caixa com a mediana e a metade central",dh="Suavização (na unidade da entidade, vazio para automático)",sh="Uma forma por",nh="Entidade",lh="Entidade e dia",mh="Entidade e semana",ch="Entidade e mês",uh="mediana {value}",ph="Sem leituras",gh="Nuvem de chuva",hh="Waffle",bh="Waffles",vh="Um, dividido entre as entidades",yh="Um por entidade, lado a lado",fh="Mostrar a primeira parte em letra grande",xh="Cascata",wh="Cada degrau é",Ch="Quanto variou no período",Mh="O seu valor atual",kh="Começar na leitura da primeira entidade no início do período",Ah="Mostrar o total no fim",zh="Conta para baixo (uma subida nestas é uma descida no total)",Eh="Início",qh="Fim",Ph="Total",Nh="Sem leituras",Dh="Gráfico em cascata: {bars}",Sh="Rosa dos ventos",Th="Predominante",Lh="Velocidade média",Oh="Mais forte",Vh="Calmaria",Gh="Velocidade",Hh="Velocidade ({unit})",Uh="Do tempo",Fh="Rosa dos ventos, predominante {direction} {share}",Bh="Rosa dos ventos, predominante {direction} {share}, calmaria {calm}",Rh="Rosa dos ventos, calmaria {calm}";var jh={entity_not_found:e,unavailable:o,no_entities:a,no_matches:r,none_available:i,editor_section_entities:t,editor_section_style:_,editor_section_chart:d,editor_group_bars:s,editor_group_gauges:n,editor_group_history:l,editor_group_totals:m,editor_group_compare:c,editor_group_distribution:u,editor_period_last:p,editor_period_unit:g,editor_period_unit_hour:h,editor_period_unit_day:b,editor_period_unit_week:v,editor_period_unit_month:y,editor_source:f,editor_source_history:x,editor_source_statistics:w,editor_derivative_transform:C,editor_derivative_transform_none:M,editor_derivative_transform_derivative:k,editor_derivative_unit_time:A,editor_derivative_unit_time_s:z,editor_derivative_unit_time_min:E,editor_derivative_unit_time_h:q,editor_derivative_unit_time_d:"Dia",editor_derivative_smoothing:N,editor_derivative_smoothing_time:D,editor_source_current:S,editor_source_energy:T,editor_energy_flows:L,editor_energy_split:O,editor_curve:V,editor_curve_smooth:G,editor_curve_straight:H,editor_curve_step:U,editor_color_by:"Cor",editor_color_by_series:B,editor_color_by_bands:R,editor_labels:j,editor_series_color:I,editor_dash:Q,editor_section_limits:W,editor_section_colours:J,editor_section_display:Y,editor_section_actions:Z,editor_title:K,editor_style_bar:X,editor_style_thin:$,editor_style_segmented:ee,editor_style_tank:oe,editor_style_battery:ae,battery_aria:re,editor_style_ring:ie,editor_style_needle:te,editor_style_arc:_e,editor_gauge_help:de,editor_start_angle:se,editor_end_angle:ne,editor_center:le,editor_center_mode_value:me,editor_center_mode_band:ce,editor_center_mode_name:ue,editor_center_mode_text:pe,editor_center_mode_none:ge,editor_center_text:he,editor_tick_labels:be,editor_ghost:ve,editor_ghost_off:ye,editor_ghost_24h:fe,editor_ghost_7d:xe,ghost_title_24h:we,ghost_title_7d:Ce,editor_show_name:Me,editor_show_value:ke,editor_show_icon:Ae,editor_show_target:ze,editor_show_legend:Ee,editor_columns:qe,editor_sort:Pe,editor_sort_none:Ne,editor_sort_ascending:De,editor_sort_descending:Se,editor_decimals:Te,editor_unit:Le,editor_animate:Oe,editor_hide_unavailable:Ve,editor_export:Ge,editor_limit:He,editor_include_heading:Ue,editor_include_help:Fe,editor_exclude_heading:Be,editor_exclude_help:Re,editor_rule_device_class:je,editor_rule_area:Ie,editor_rule_floor:Qe,editor_rule_label:We,editor_rule_domain:Je,editor_rule_entity:Ye,editor_tap_action:Ze,editor_hold_action:Ke,editor_double_tap_action:Xe,editor_badge_entity:$e,editor_badge_style:eo,editor_badge_style_value:oo,editor_badge_style_sparkline:ao,editor_badge_style_ring:ro,editor_badge_style_thin:io,editor_badge_attribute:to,editor_badge_name:_o,editor_badge_hours:so,editor_badge_show_name:no,editor_badge_show_icon:lo,editor_badge_icon:mo,editor_badge_min:co,editor_badge_max:uo,editor_badge_unit:po,editor_badge_decimals:go,editor_badge_color:ho,editor_badge_bands:bo,editor_badge_bands_help:vo,editor_badge_actions:yo,editor_badge_tap_action:fo,editor_badge_hold_action:xo,editor_badge_double_tap_action:wo,editor_attribute:Co,editor_name:Mo,editor_icon:ko,editor_min:Ao,editor_max:zo,editor_target:Eo,editor_none:qo,editor_card_setting:Po,editor_limit_default:No,editor_limit_number:Do,editor_limit_entity:So,editor_preset:To,editor_preset_battery:Lo,editor_preset_usage:Oo,editor_preset_temperature:Vo,editor_preset_none:Go,editor_preset_custom:Ho,editor_band_from:Uo,editor_band_from_entity:Fo,editor_band_from_number:Bo,editor_band_from_entity_label:Ro,editor_band_color:"Cor",editor_band_custom_color:Io,editor_band_label:Qo,editor_band_icon:Wo,editor_color_icon:Jo,editor_color_primary:Yo,editor_color_green:Zo,editor_color_amber:Ko,editor_color_red:Xo,editor_color_blue:$o,editor_color_purple:ea,editor_color_grey:oa,editor_color_custom:aa,editor_add_band:ra,editor_remove_band:ia,editor_add_entity:ta,editor_move_up:_a,editor_move_down:da,editor_remove_entity:sa,editor_show_options:na,editor_hide_options:la,editor_not_found:ma,editor_severity:ca,annotation_at:ua,editor_orientation:pa,editor_orientation_horizontal:ga,editor_orientation_vertical:ha,editor_value_axis:ba,editor_value_grid:va,editor_value_min:ya,editor_value_max:fa,dist_median:xa,dist_middle:wa,dist_range:Ca,dist_count:Ma,editor_drill_down:ka,drill_into:Aa,drill_back:za,drill_top:Ea,extremes_high:qa,extremes_low:Pa,extremes_average:Na,editor_extremes_max:Da,editor_extremes_min:Sa,editor_extremes_average:Ta,editor_extremes_average_none:La,editor_extremes_average_line:Oa,editor_extremes_average_figure:Va,editor_extremes:Ga,anomaly_title:Ha,anomaly_beyond_high:Ua,anomaly_beyond_low:Fa,editor_anomalies:Ba,editor_anomalies_window:Ra,editor_anomalies_sigma:ja,editor_anomalies_color:Ia,editor_anomalies_band:Qa,period_previous:Wa,period_next:Ja,period_return:Ya,period_today:Za,period_yesterday:Ka,period_this_week:Xa,period_last_week:$a,period_this_month:er,period_last_month:or,period_this_year:ar,period_last_year:rr,period_last_hour:ir,period_last_hours:tr,period_last_day:_r,period_last_days:dr,period_last_week_rolling:sr,period_last_weeks:nr,period_last_month_rolling:lr,period_last_months:mr,editor_color_by_shades:cr,editor_shade_color:ur,editor_show_percent:pr,editor_center_total:gr,editor_center_average:hr,editor_center_none:br,parts_total:vr,parts_average:yr,parts_aria:fr,editor_style_scatter:xr,editor_style_bubble:wr,editor_against:Cr,editor_against_entity:Mr,editor_against_time:kr,editor_dot_size:Ar,editor_jitter:zr,editor_min_size:Er,editor_max_size:qr,editor_dot_color:Pr,editor_xy_x_axis:Nr,scatter_needs_two:Dr,bubble_needs_three:Sr,scatter_role_x:Tr,bubble_role_size:Lr,chart_total:Or,editor_x_min:Vr,editor_x_max:Gr,zoom_reset:Hr,zoom_window:Ur,zoom_window_label:Fr,editor_zoom:Br,editor_overview:Rr,editor_annotations:jr,editor_annotation_type:Ir,editor_annotation_type_line:Qr,editor_annotation_type_band:Wr,editor_annotation_type_time:Jr,editor_annotation_type_state:Yr,editor_annotation_type_point:Zr,editor_annotation_add_line:Kr,editor_annotation_add_band:Xr,editor_annotation_add_time:$r,editor_annotation_add_state:ei,editor_annotation_add_point:oi,editor_annotation_add:ai,editor_annotation_value:ri,editor_annotation_from:ii,editor_annotation_to:ti,editor_annotation_times:_i,editor_annotation_entity:di,editor_annotation_series:si,editor_annotation_state:ni,editor_annotation_shade:li,editor_annotation_at:mi,editor_annotation_at_max:ci,editor_annotation_at_min:ui,editor_annotation_at_last:pi,editor_annotation_at_first:gi,editor_annotation_label:hi,editor_annotation_color:"Cor",editor_annotation_dash:vi,editor_annotation_history:yi,editor_annotation_zone:fi,editor_annotation_zone_none:xi,editor_annotation_zone_above:wi,editor_annotation_zone_below:Ci,editor_annotation_severity:Mi,editor_annotation_remove:ki,editor_zones:Ai,editor_period_calendar:zi,editor_period_calendar_rolling:Ei,editor_period_calendar_day:qi,editor_period_calendar_week:Pi,editor_period_calendar_month:Ni,editor_period_calendar_year:Di,editor_period_offset:Si,editor_period_until:Ti,editor_period_until_now:Li,editor_period_until_end:Oi,editor_period_navigate:Vi,editor_group_by:Gi,editor_group_by_none:Hi,editor_group_by_hour:Ui,editor_group_by_day:"Dia",editor_group_by_week:Bi,editor_group_by_month:"Mês",editor_aggregate:ji,compare_series:Ii,compare_hours_earlier:Qi,compare_days_earlier:Wi,compare_weeks_earlier:Ji,compare_months_earlier:Yi,compare_years_earlier:Zi,editor_compare:Ki,editor_compare_style:Xi,editor_compare_style_grey:$i,editor_compare_style_series:et,editor_aggregate_mean:ot,editor_aggregate_sum:at,editor_aggregate_min:rt,editor_aggregate_max:it,editor_aggregate_first:tt,editor_aggregate_last:_t,editor_aggregate_change:dt,editor_cumulative_transform:st,editor_cumulative_transform_none:nt,editor_cumulative_transform_cumulative:lt,editor_cumulative_reset:mt,editor_cumulative_reset_none:ct,editor_cumulative_reset_day:ut,editor_cumulative_reset_week:pt,editor_cumulative_reset_month:gt,editor_cumulative_reset_billing:ht,editor_cumulative_billing_day:bt,editor_x_axis:vt,editor_y_axis:yt,editor_axis_labels:ft,editor_axis_labels_outside:xt,editor_axis_labels_inside:wt,editor_grid_horizontal:Ct,editor_grid_vertical:Mt,editor_y_min:kt,editor_y_max:At,editor_y_scale:zt,editor_y_scale_linear:Et,editor_y_scale_log:qt,editor_tooltip:Pt,editor_line_width:Nt,editor_dots:Dt,editor_on_top:St,editor_when_entity:Tt,editor_when_state:Lt,editor_when_above:Ot,editor_when_below:Vt,editor_when_card_entity:Gt,editor_when_card_state:Ht,editor_when_card_above:Ut,editor_when_card_below:Ft,editor_when_ghost:Bt,editor_when_strip:Rt,when_strip_label:jt,editor_now_marker:It,editor_now_marker_off:Qt,editor_now_marker_line:Wt,editor_now_marker_time:Jt,editor_now_marker_countdown:Yt,now_marker_countdown:Zt,now_marker_next:Kt,editor_compact:Xt,editor_header:$t,editor_header_above:e_,editor_header_over:o_,editor_header_hidden:a_,editor_legend_toggle:r_,editor_labels_show:i_,editor_labels_show_all:t_,editor_labels_show_last:__,editor_labels_show_minmax:d_,editor_labels_show_ends:s_,editor_labels_position:n_,editor_labels_position_auto:l_,editor_labels_position_above:m_,editor_labels_position_below:c_,editor_labels_position_center:u_,editor_labels_overlap:p_,editor_sync:g_,editor_multiples:h_,editor_multiples_scale:b_,editor_multiples_scale_auto:v_,editor_multiples_scale_shared:y_,editor_multiples_scale_independent:f_,editor_multiples_columns:x_,forecast_label:w_,forecast_series:C_,editor_forecast_title:M_,editor_forecast_entity:k_,editor_forecast_attribute:A_,editor_forecast_value_key:z_,editor_forecast_time_key:E_,editor_forecast_type:q_,editor_forecast_type_hourly:P_,editor_forecast_type_daily:N_,editor_forecast_type_twice_daily:D_,editor_forecast_multiply:S_,editor_forecast_hours:T_,editor_set_point:L_,editor_shading:O_,editor_shade_fan:V_,editor_current_color:G_,editor_set_point_color:H_,editor_heating_color:U_,editor_cooling_color:F_,editor_days:B_,editor_day_clock_center_total:R_,editor_day_clock_center_now:j_,editor_day_clock_center_none:I_,editor_bucket:Q_,editor_bucket_15:W_,editor_bucket_30:J_,editor_bucket_60:Y_,editor_aggregate_auto:Z_,editor_ring_color:"Cor",editor_active:X_,editor_entity_options_none:$_,editor_hierarchy_group_by:ed,editor_group_by_floor:od,editor_group_by_area:ad,editor_group_by_device:rd,editor_group_by_label:id,editor_entity_groups:td,editor_bar_labels:_d,editor_bar_labels_state:dd,editor_bar_labels_duration:sd,editor_bar_labels_both:nd,editor_bar_labels_none:ld,editor_timeline_legend:md,editor_timeline_legend_above:cd,editor_timeline_legend_hidden:ud,editor_state_colors:pd,editor_state_colors_help:gd,editor_state_colors_state:hd,editor_state_colors_color:"Cor",editor_state_colors_add:vd,editor_state_colors_remove:yd,editor_timeline_group:fd,editor_points_per_hour:xd,editor_graph:wd,editor_graph_line:Cd,editor_graph_bar:Md,editor_graph_none:kd,editor_fill:Ad,editor_fill_solid:zd,editor_fill_fade:Ed,editor_fill_none:qd,editor_points:Pd,editor_points_hover:Nd,editor_points_always:Dd,editor_points_never:Sd,editor_trend_labels:Td,editor_labels_hover:Ld,editor_labels_always:Od,editor_labels_never:Vd,editor_height:Gd,editor_bar_spacing:Hd,editor_color_transition:Ud,editor_color_transition_smooth:Fd,editor_color_transition_hard:Bd,editor_extrema:Rd,editor_average:jd,editor_trend_legend:Id,editor_trend_y_min:Qd,editor_trend_y_max:Wd,editor_min_range:Jd,editor_y_min_secondary:Yd,editor_y_max_secondary:Zd,editor_min_range_secondary:Kd,editor_value_factor:Xd,editor_align_header:$d,editor_align_header_default:es,editor_align_header_left:os,editor_align_header_right:as,editor_align_header_center:rs,editor_align_icon:is,editor_align_icon_right:ts,editor_align_icon_left:_s,editor_align_icon_state:ds,editor_align_state:ss,editor_align_state_left:ns,editor_align_state_right:ls,editor_align_state_center:ms,editor_font_size:cs,editor_font_size_header:us,editor_color_name:ps,editor_color_value:gs,editor_trend_color_icon:hs,editor_trend_group:bs,editor_icon_image:vs,editor_trend_tooltip:ys,editor_y_axis_side:fs,editor_y_axis_side_primary:xs,editor_y_axis_side_secondary:ws,editor_entity_aggregate:Cs,editor_fixed_value:Ms,editor_show_state:ks,editor_show_indicator:As,editor_show_graph:zs,editor_show_line:Es,editor_show_fill:qs,editor_show_points:Ps,editor_show_legend_entity:Ns,editor_show_legend_state:Ds,editor_sectors:Ss,editor_sectors_4:Ts,editor_sectors_8:Ls,editor_sectors_16:Os,editor_calm:Vs,editor_wind_roles:Gs,editor_wind_now:Hs,editor_wind_none:Us,editor_wind_statistics:Fs,editor_style_area:Bs,editor_stack:Rs,editor_stack_none:js,editor_stack_normal:Is,editor_stack_percent:Qs,editor_negative_color:Ws,editor_style_beeswarm:Js,editor_place_by:Ys,editor_place_by_value:Zs,editor_place_by_time_of_day:Ks,editor_size_by_value:Xs,swarm_readings:$s,swarm_events:en,swarm_shown:on,swarm_none:an,swarm_no_change:rn,swarm_held:tn,swarm_earliest_latest:_n,swarm_lowest_highest:dn,editor_style_strip_plot:sn,strip_median_value:nn,strip_mean_value:ln,strip_mean:mn,editor_strip_marker:cn,editor_strip_marker_median:un,editor_strip_marker_mean:pn,editor_strip_marker_none:gn,editor_strip_jitter:hn,editor_fill_color:"Cor",editor_style_box:vn,box_aria:yn,box_highest:fn,box_upper_quartile:xn,box_median:wn,box_lower_quartile:Cn,box_lowest:Mn,box_mean:kn,box_count:An,box_outliers:zn,editor_whiskers:En,editor_whiskers_tukey:qn,editor_whiskers_range:Pn,editor_readings:Nn,editor_box_color:Dn,editor_style_bullet:Sn,editor_ranges:Tn,editor_ranges_shades:Ln,editor_ranges_colours:On,compare_target:Vn,chart_aria:Gn,editor_style_candlestick:Hn,editor_candle_by:Un,editor_under_aggregate:Fn,editor_up_color:Bn,editor_down_color:Rn,editor_underneath:jn,editor_underneath_columns:In,editor_underneath_line:Qn,candle_open:Wn,candle_high:Jn,candle_low:Yn,candle_close:Zn,candle_week_of:Kn,editor_style_climate:Xn,climate_set_point:$n,climate_range:el,climate_not_thermostat:ol,climate_action_heating:al,climate_action_preheating:rl,climate_action_cooling:il,climate_action_defrosting:tl,climate_action_drying:_l,climate_action_fan:dl,climate_action_idle:sl,climate_action_off:nl,editor_style_column:ll,editor_group_by_auto:ml,editor_range:cl,editor_rounded:ul,editor_column_labels:pl,editor_error_bars:gl,editor_error_bars_none:hl,editor_error_bars_std:bl,editor_error_bars_min_max:vl,editor_error_bars_ci95:yl,error_bars_tooltip:fl,editor_column_color:"Cor",editor_style_combined:wl,editor_series_type:Cl,editor_series_type_line:Ml,editor_series_type_column:kl,editor_series_type_area:Al,editor_series_axis:zl,editor_series_axis_auto:El,editor_series_axis_left:ql,editor_series_axis_right:Pl,editor_series_aggregate:Nl,editor_series_aggregate_auto:Dl,editor_series_aggregate_mean:Sl,editor_series_aggregate_sum:Tl,editor_series_aggregate_min:Ll,editor_series_aggregate_max:Ol,editor_series_aggregate_first:Vl,editor_series_aggregate_last:Gl,editor_series_aggregate_change:Hl,editor_style_day_clock:Ul,day_clock_times_one:Fl,day_clock_times:Bl,day_clock_a_day:Rl,day_clock_busiest:jl,day_clock_peak:Il,day_clock_state:Ql,day_clock_per_day:Wl,day_clock_no_data:Jl,day_clock_now:Yl,day_clock_on:Zl,day_clock_average:Kl,day_clock_on_days:Xl,day_clock_so_far:$l,day_clock_range:em,day_clock_average_value:om,editor_style_cycle_plot:am,cycle_note_week:rm,cycle_note_hour:im,cycle_note_month:tm,cycle_mean_legend:_m,cycle_panel_average:dm,editor_cycle_plot_cycle:sm,editor_cycle_plot_cycle_day_of_week:nm,editor_cycle_plot_cycle_hour_of_day:lm,editor_cycle_plot_cycle_day_of_month:mm,editor_cycle_plot_weeks:cm,editor_style_dumbbell:um,editor_ends:pm,editor_ends_range:gm,editor_ends_then:hm,editor_ends_target:bm,editor_show_now:vm,dumbbell_low:ym,dumbbell_high:fm,dumbbell_now:xm,dumbbell_target:wm,dumbbell_ago_hour_one:Cm,dumbbell_ago_hour:Mm,dumbbell_ago_day_one:km,dumbbell_ago_day:Am,dumbbell_ago_week_one:zm,dumbbell_ago_week:Em,dumbbell_ago_month_one:qm,dumbbell_ago_month:Pm,dumbbell_no_value:Nm,editor_style_funnel:Dm,editor_funnel_shape:Sm,editor_funnel_shape_funnel:Tm,editor_funnel_shape_pyramid:Lm,editor_funnel_percent_of:Om,editor_funnel_percent_of_first:Vm,editor_funnel_percent_of_previous:Gm,editor_funnel_percent_of_none:Hm,editor_funnel_color_by:"Cor",editor_funnel_color_by_series:Fm,editor_funnel_color_by_bands:Bm,funnel_aria:Rm,editor_style_grouped_bars:jm,editor_mode:Im,editor_mode_grouped:Qm,editor_mode_stacked:Wm,editor_mode_percent:Jm,editor_bars_color_by:"Cor",editor_bars_color_by_series:Zm,editor_bars_color_by_bands:Km,editor_bar_group:Xm,editor_bar_series:$m,editor_bar_color:ec,grouped_bars_aria:oc,editor_style_heatmap:ac,heatmap_aria:rc,heatmap_hours:ic,heatmap_empty:tc,editor_grid:_c,editor_grid_hours:dc,editor_grid_calendar:sc,editor_color_by_scale:nc,editor_cell_shape:lc,editor_cell_shape_square:mc,editor_cell_shape_rounded:cc,editor_cell_shape_hexagon:uc,editor_color_min:pc,editor_color_max:gc,editor_legend:hc,editor_style_spiral:bc,spiral_aria:vc,spiral_turn_day_note:yc,spiral_turn_week_note:fc,spiral_inner_oldest:xc,editor_spiral_turn:wc,editor_spiral_turn_day:"Dia",editor_spiral_turn_week:Mc,editor_spiral_turns:kc,editor_spiral_ring_width:Ac,editor_style_histogram:zc,editor_count:Ec,editor_count_time:qc,editor_count_readings:Pc,editor_show_as:Nc,editor_show_as_percent:Dc,editor_show_as_total:Sc,editor_bins:Tc,editor_bin_width:Lc,editor_bars:Oc,editor_bars_side:Vc,editor_bars_overlap:Gc,editor_hist_x_axis:Hc,histogram_readings:Uc,histogram_reading:Fc,editor_style_line:Bc,chart_loading:Rc,chart_error:jc,energy_loading:Ic,energy_error:Qc,energy_none:Wc,energy_flow_grid_import:Jc,energy_flow_grid_export:Yc,energy_flow_solar:Zc,energy_flow_battery_out:Kc,energy_flow_battery_in:Xc,energy_flow_gas:"Gás",energy_flow_water:eu,energy_flow_devices:ou,energy_node_home:au,energy_node_untracked:ru,energy_node_home_use:iu,chart_no_data:tu,legend_toggle_hint:_u,legend_toggle_all_hidden:du,export_menu:su,export_png:nu,export_png_hint:lu,export_svg:mu,export_svg_hint:cu,export_csv:uu,export_csv_hint:pu,export_yaml:gu,export_yaml_hint:hu,export_copied:bu,export_saved:vu,export_saved_file:yu,export_failed:fu,chart_log_nothing:xu,editor_style_lollipop:wu,editor_style_pictograph:Cu,editor_unit_icon:Mu,editor_per_icon:ku,editor_group_size:Au,editor_partial:zu,editor_style_pie:Eu,editor_shape:qu,editor_shape_donut:Pu,editor_shape_pie:Nu,editor_center_label:Du,editor_gap:Su,editor_gradient:Tu,editor_style_polar_area:Lu,editor_polar_scale:Ou,editor_polar_scale_shared:Vu,editor_polar_scale_limits:Gu,editor_polar_color_by:"Cor",editor_polar_color_by_series:Uu,editor_polar_color_by_shades:Fu,editor_polar_color_by_bands:Bu,editor_polar_color:Ru,polar_area_aria:ju,editor_style_radar:Iu,editor_radar_scale:Qu,editor_radar_scale_limits:Wu,editor_radar_scale_shared:Ju,editor_radar_fill:Yu,editor_radar_axis:Zu,radar_aria:Ku,radar_other:Xu,editor_style_range_area:$u,editor_mean:ep,editor_range_color:"Cor",editor_style_rings:ap,editor_rings_start_angle:rp,editor_rounded_ends:ip,editor_style_sankey:tp,editor_link_color:_p,editor_link_color_auto:dp,editor_link_color_source:sp,editor_link_color_target:np,editor_from:lp,editor_to:mp,editor_flow_color:cp,sankey_aria:up,sankey_flow:pp,sankey_no_flows:gp,sankey_nothing:hp,energy_nothing_flowed:bp,editor_style_chord:vp,editor_chord_pad:yp,editor_chord_ribbon_opacity:fp,chord_aria:xp,editor_style_slope:wp,editor_measure:Cp,editor_measure_value:Mp,editor_measure_change:kp,editor_color_by_direction:Ap,editor_color_by_group:zp,editor_increase:Ep,editor_increase_bad:qp,editor_increase_good:Pp,editor_group:Np,slope_now:Dp,slope_ago:Sp,slope_ago_one:Tp,slope_previous:Lp,slope_previous_one:Op,slope_last:Vp,slope_last_one:Gp,slope_unit_hour:Hp,slope_unit_hour_other:Up,slope_unit_day:"dia",slope_unit_day_other:Bp,slope_unit_week:Rp,slope_unit_week_other:jp,slope_unit_month:"mês",slope_unit_month_other:Qp,slope_entity_aria:Wp,slope_no_reading:Jp,editor_style_sparkline:Yp,editor_spark:Zp,editor_spark_line:Kp,editor_spark_area:Xp,editor_spark_column:$p,editor_spark_bar:eg,editor_spark_color:"Cor",spark_aria:ag,editor_style_streamgraph:rg,editor_baseline:ig,editor_baseline_wiggle:tg,editor_baseline_centre:_g,editor_baseline_share:dg,editor_baseline_zero:sg,editor_stream_order:ng,editor_stream_order_inside_out:lg,editor_stream_order_listed:mg,editor_stream_labels:cg,editor_stream_curve:ug,stream_total:pg,editor_style_sunburst:gg,editor_style_icicle:hg,editor_sunburst_shape:bg,editor_sunburst_shape_full:vg,editor_sunburst_shape_half:yg,editor_hierarchy_color_by:"Cor",editor_hierarchy_color_by_group:xg,editor_hierarchy_color_by_bands:wg,hierarchy_total:Cg,hierarchy_other:Mg,hierarchy_empty:kg,hierarchy_no_reading:Ag,sunburst_aria:zg,icicle_aria:Eg,editor_style_timeline:qg,timeline_no_states:Pg,timeline_for:Ng,timeline_now:Dg,timeline_measurement:Sg,editor_style_treemap:Tg,editor_treemap_color_by:"Cor",editor_treemap_color_by_group:Og,editor_treemap_color_by_bands:Vg,treemap_aria:Gg,treemap_total:Hg,treemap_empty:Ug,treemap_no_reading:Fg,treemap_other:Bg,editor_style_marimekko:Rg,editor_marimekko_segment_labels:jg,editor_marimekko_segment_labels_percent:Ig,editor_marimekko_segment_labels_value:Qg,editor_marimekko_segment_labels_both:Wg,editor_marimekko_segment_labels_none:Jg,editor_marimekko_group:Yg,editor_marimekko_category:Zg,editor_marimekko_color:Kg,marimekko_aria:Xg,editor_style_trend:$g,trend_min:eh,trend_avg:oh,trend_max:ah,editor_style_violin:rh,editor_shape_violin:ih,editor_shape_raincloud:th,editor_box:_h,editor_bandwidth:dh,editor_split_by:sh,editor_split_by_none:nh,editor_split_by_day:lh,editor_split_by_week:mh,editor_split_by_month:ch,violin_median:uh,violin_none:ph,violin_raincloud:gh,editor_style_waffle:hh,editor_waffles:bh,editor_waffles_one:vh,editor_waffles_each:yh,editor_headline:fh,editor_style_waterfall:xh,editor_steps:wh,editor_steps_change:Ch,editor_steps_current:Mh,editor_start_from_first:kh,editor_total:Ah,editor_waterfall_invert:zh,waterfall_start:Eh,waterfall_end:"Fim",waterfall_total:Ph,waterfall_no_readings:Nh,waterfall_aria:Dh,editor_style_wind_rose:Sh,wind_prevailing:Th,wind_mean_speed:Lh,wind_strongest:Oh,wind_calm:Vh,wind_speed:Gh,wind_speed_unit:Hh,wind_share:Uh,wind_aria:Fh,wind_aria_calm:Bh,wind_aria_still:Rh};export{ua as annotation_at,Ua as anomaly_beyond_high,Fa as anomaly_beyond_low,Ha as anomaly_title,re as battery_aria,yn as box_aria,An as box_count,fn as box_highest,Cn as box_lower_quartile,Mn as box_lowest,kn as box_mean,wn as box_median,zn as box_outliers,xn as box_upper_quartile,Sr as bubble_needs_three,Lr as bubble_role_size,Zn as candle_close,Jn as candle_high,Yn as candle_low,Wn as candle_open,Kn as candle_week_of,Gn as chart_aria,jc as chart_error,Rc as chart_loading,xu as chart_log_nothing,tu as chart_no_data,Or as chart_total,xp as chord_aria,il as climate_action_cooling,tl as climate_action_defrosting,_l as climate_action_drying,dl as climate_action_fan,al as climate_action_heating,sl as climate_action_idle,nl as climate_action_off,rl as climate_action_preheating,ol as climate_not_thermostat,el as climate_range,$n as climate_set_point,Wi as compare_days_earlier,Qi as compare_hours_earlier,Yi as compare_months_earlier,Ii as compare_series,Vn as compare_target,Ji as compare_weeks_earlier,Zi as compare_years_earlier,_m as cycle_mean_legend,im as cycle_note_hour,tm as cycle_note_month,rm as cycle_note_week,dm as cycle_panel_average,Rl as day_clock_a_day,Kl as day_clock_average,om as day_clock_average_value,jl as day_clock_busiest,Jl as day_clock_no_data,Yl as day_clock_now,Zl as day_clock_on,Xl as day_clock_on_days,Il as day_clock_peak,Wl as day_clock_per_day,em as day_clock_range,$l as day_clock_so_far,Ql as day_clock_state,Bl as day_clock_times,Fl as day_clock_times_one,jh as default,Ma as dist_count,xa as dist_median,wa as dist_middle,Ca as dist_range,za as drill_back,Aa as drill_into,Ea as drill_top,Am as dumbbell_ago_day,km as dumbbell_ago_day_one,Mm as dumbbell_ago_hour,Cm as dumbbell_ago_hour_one,Pm as dumbbell_ago_month,qm as dumbbell_ago_month_one,Em as dumbbell_ago_week,zm as dumbbell_ago_week_one,fm as dumbbell_high,ym as dumbbell_low,Nm as dumbbell_no_value,xm as dumbbell_now,wm as dumbbell_target,X_ as editor_active,ra as editor_add_band,ta as editor_add_entity,Cr as editor_against,Mr as editor_against_entity,kr as editor_against_time,ji as editor_aggregate,Z_ as editor_aggregate_auto,dt as editor_aggregate_change,tt as editor_aggregate_first,_t as editor_aggregate_last,it as editor_aggregate_max,ot as editor_aggregate_mean,rt as editor_aggregate_min,at as editor_aggregate_sum,$d as editor_align_header,rs as editor_align_header_center,es as editor_align_header_default,os as editor_align_header_left,as as editor_align_header_right,is as editor_align_icon,_s as editor_align_icon_left,ts as editor_align_icon_right,ds as editor_align_icon_state,ss as editor_align_state,ms as editor_align_state_center,ns as editor_align_state_left,ls as editor_align_state_right,Oe as editor_animate,ai as editor_annotation_add,Xr as editor_annotation_add_band,Kr as editor_annotation_add_line,oi as editor_annotation_add_point,ei as editor_annotation_add_state,$r as editor_annotation_add_time,mi as editor_annotation_at,gi as editor_annotation_at_first,pi as editor_annotation_at_last,ci as editor_annotation_at_max,ui as editor_annotation_at_min,bi as editor_annotation_color,vi as editor_annotation_dash,di as editor_annotation_entity,ii as editor_annotation_from,yi as editor_annotation_history,hi as editor_annotation_label,ki as editor_annotation_remove,si as editor_annotation_series,Mi as editor_annotation_severity,li as editor_annotation_shade,ni as editor_annotation_state,_i as editor_annotation_times,ti as editor_annotation_to,Ir as editor_annotation_type,Wr as editor_annotation_type_band,Qr as editor_annotation_type_line,Zr as editor_annotation_type_point,Yr as editor_annotation_type_state,Jr as editor_annotation_type_time,ri as editor_annotation_value,fi as editor_annotation_zone,wi as editor_annotation_zone_above,Ci as editor_annotation_zone_below,xi as editor_annotation_zone_none,jr as editor_annotations,Ba as editor_anomalies,Qa as editor_anomalies_band,Ia as editor_anomalies_color,ja as editor_anomalies_sigma,Ra as editor_anomalies_window,Co as editor_attribute,jd as editor_average,ft as editor_axis_labels,wt as editor_axis_labels_inside,xt as editor_axis_labels_outside,yo as editor_badge_actions,to as editor_badge_attribute,bo as editor_badge_bands,vo as editor_badge_bands_help,ho as editor_badge_color,go as editor_badge_decimals,wo as editor_badge_double_tap_action,$e as editor_badge_entity,xo as editor_badge_hold_action,so as editor_badge_hours,mo as editor_badge_icon,uo as editor_badge_max,co as editor_badge_min,_o as editor_badge_name,lo as editor_badge_show_icon,no as editor_badge_show_name,eo as editor_badge_style,ro as editor_badge_style_ring,ao as editor_badge_style_sparkline,io as editor_badge_style_thin,oo as editor_badge_style_value,fo as editor_badge_tap_action,po as editor_badge_unit,jo as editor_band_color,Io as editor_band_custom_color,Uo as editor_band_from,Fo as editor_band_from_entity,Ro as editor_band_from_entity_label,Bo as editor_band_from_number,Wo as editor_band_icon,Qo as editor_band_label,dh as editor_bandwidth,ec as editor_bar_color,Xm as editor_bar_group,_d as editor_bar_labels,nd as editor_bar_labels_both,sd as editor_bar_labels_duration,ld as editor_bar_labels_none,dd as editor_bar_labels_state,$m as editor_bar_series,Hd as editor_bar_spacing,Oc as editor_bars,Ym as editor_bars_color_by,Km as editor_bars_color_by_bands,Zm as editor_bars_color_by_series,Gc as editor_bars_overlap,Vc as editor_bars_side,ig as editor_baseline,_g as editor_baseline_centre,dg as editor_baseline_share,tg as editor_baseline_wiggle,sg as editor_baseline_zero,Lc as editor_bin_width,Tc as editor_bins,_h as editor_box,Dn as editor_box_color,Q_ as editor_bucket,W_ as editor_bucket_15,J_ as editor_bucket_30,Y_ as editor_bucket_60,Vs as editor_calm,Un as editor_candle_by,Po as editor_card_setting,lc as editor_cell_shape,uc as editor_cell_shape_hexagon,cc as editor_cell_shape_rounded,mc as editor_cell_shape_square,le as editor_center,hr as editor_center_average,Du as editor_center_label,ce as editor_center_mode_band,ue as editor_center_mode_name,ge as editor_center_mode_none,pe as editor_center_mode_text,me as editor_center_mode_value,br as editor_center_none,he as editor_center_text,gr as editor_center_total,yp as editor_chord_pad,fp as editor_chord_ribbon_opacity,Ko as editor_color_amber,$o as editor_color_blue,F as editor_color_by,R as editor_color_by_bands,Ap as editor_color_by_direction,zp as editor_color_by_group,nc as editor_color_by_scale,B as editor_color_by_series,cr as editor_color_by_shades,aa as editor_color_custom,Zo as editor_color_green,oa as editor_color_grey,Jo as editor_color_icon,gc as editor_color_max,pc as editor_color_min,ps as editor_color_name,Yo as editor_color_primary,ea as editor_color_purple,Xo as editor_color_red,Ud as editor_color_transition,Bd as editor_color_transition_hard,Fd as editor_color_transition_smooth,gs as editor_color_value,xl as editor_column_color,pl as editor_column_labels,qe as editor_columns,Xt as editor_compact,Ki as editor_compare,Xi as editor_compare_style,$i as editor_compare_style_grey,et as editor_compare_style_series,F_ as editor_cooling_color,Ec as editor_count,Pc as editor_count_readings,qc as editor_count_time,bt as editor_cumulative_billing_day,mt as editor_cumulative_reset,ht as editor_cumulative_reset_billing,ut as editor_cumulative_reset_day,gt as editor_cumulative_reset_month,ct as editor_cumulative_reset_none,pt as editor_cumulative_reset_week,st as editor_cumulative_transform,lt as editor_cumulative_transform_cumulative,nt as editor_cumulative_transform_none,G_ as editor_current_color,V as editor_curve,G as editor_curve_smooth,U as editor_curve_step,H as editor_curve_straight,sm as editor_cycle_plot_cycle,mm as editor_cycle_plot_cycle_day_of_month,nm as editor_cycle_plot_cycle_day_of_week,lm as editor_cycle_plot_cycle_hour_of_day,cm as editor_cycle_plot_weeks,Q as editor_dash,I_ as editor_day_clock_center_none,j_ as editor_day_clock_center_now,R_ as editor_day_clock_center_total,B_ as editor_days,Te as editor_decimals,N as editor_derivative_smoothing,D as editor_derivative_smoothing_time,C as editor_derivative_transform,k as editor_derivative_transform_derivative,M as editor_derivative_transform_none,A as editor_derivative_unit_time,P as editor_derivative_unit_time_d,q as editor_derivative_unit_time_h,E as editor_derivative_unit_time_min,z as editor_derivative_unit_time_s,Pr as editor_dot_color,Ar as editor_dot_size,Dt as editor_dots,Xe as editor_double_tap_action,Rn as editor_down_color,ka as editor_drill_down,ne as editor_end_angle,pm as editor_ends,gm as editor_ends_range,bm as editor_ends_target,hm as editor_ends_then,L as editor_energy_flows,O as editor_energy_split,Cs as editor_entity_aggregate,td as editor_entity_groups,$_ as editor_entity_options_none,gl as editor_error_bars,yl as editor_error_bars_ci95,vl as editor_error_bars_min_max,hl as editor_error_bars_none,bl as editor_error_bars_std,Be as editor_exclude_heading,Re as editor_exclude_help,Ge as editor_export,Rd as editor_extrema,Ga as editor_extremes,Ta as editor_extremes_average,Va as editor_extremes_average_figure,Oa as editor_extremes_average_line,La as editor_extremes_average_none,Da as editor_extremes_max,Sa as editor_extremes_min,Ad as editor_fill,bn as editor_fill_color,Ed as editor_fill_fade,qd as editor_fill_none,zd as editor_fill_solid,Ms as editor_fixed_value,cp as editor_flow_color,cs as editor_font_size,us as editor_font_size_header,A_ as editor_forecast_attribute,k_ as editor_forecast_entity,T_ as editor_forecast_hours,S_ as editor_forecast_multiply,E_ as editor_forecast_time_key,M_ as editor_forecast_title,q_ as editor_forecast_type,N_ as editor_forecast_type_daily,P_ as editor_forecast_type_hourly,D_ as editor_forecast_type_twice_daily,z_ as editor_forecast_value_key,lp as editor_from,Um as editor_funnel_color_by,Bm as editor_funnel_color_by_bands,Fm as editor_funnel_color_by_series,Om as editor_funnel_percent_of,Vm as editor_funnel_percent_of_first,Hm as editor_funnel_percent_of_none,Gm as editor_funnel_percent_of_previous,Sm as editor_funnel_shape,Tm as editor_funnel_shape_funnel,Lm as editor_funnel_shape_pyramid,Su as editor_gap,de as editor_gauge_help,ve as editor_ghost,fe as editor_ghost_24h,xe as editor_ghost_7d,ye as editor_ghost_off,Tu as editor_gradient,wd as editor_graph,Md as editor_graph_bar,Cd as editor_graph_line,kd as editor_graph_none,_c as editor_grid,sc as editor_grid_calendar,Ct as editor_grid_horizontal,dc as editor_grid_hours,Mt as editor_grid_vertical,Np as editor_group,s as editor_group_bars,Gi as editor_group_by,ad as editor_group_by_area,ml as editor_group_by_auto,Fi as editor_group_by_day,rd as editor_group_by_device,od as editor_group_by_floor,Ui as editor_group_by_hour,id as editor_group_by_label,Ri as editor_group_by_month,Hi as editor_group_by_none,Bi as editor_group_by_week,c as editor_group_compare,u as editor_group_distribution,n as editor_group_gauges,l as editor_group_history,Au as editor_group_size,m as editor_group_totals,$t as editor_header,e_ as editor_header_above,a_ as editor_header_hidden,o_ as editor_header_over,fh as editor_headline,U_ as editor_heating_color,Gd as editor_height,la as editor_hide_options,Ve as editor_hide_unavailable,fg as editor_hierarchy_color_by,wg as editor_hierarchy_color_by_bands,xg as editor_hierarchy_color_by_group,ed as editor_hierarchy_group_by,Hc as editor_hist_x_axis,Ke as editor_hold_action,ko as editor_icon,vs as editor_icon_image,Ue as editor_include_heading,Fe as editor_include_help,Ep as editor_increase,qp as editor_increase_bad,Pp as editor_increase_good,zr as editor_jitter,j as editor_labels,Od as editor_labels_always,Ld as editor_labels_hover,Vd as editor_labels_never,p_ as editor_labels_overlap,n_ as editor_labels_position,m_ as editor_labels_position_above,l_ as editor_labels_position_auto,c_ as editor_labels_position_below,u_ as editor_labels_position_center,i_ as editor_labels_show,t_ as editor_labels_show_all,s_ as editor_labels_show_ends,__ as editor_labels_show_last,d_ as editor_labels_show_minmax,hc as editor_legend,r_ as editor_legend_toggle,He as editor_limit,No as editor_limit_default,So as editor_limit_entity,Do as editor_limit_number,Nt as editor_line_width,_p as editor_link_color,dp as editor_link_color_auto,sp as editor_link_color_source,np as editor_link_color_target,Zg as editor_marimekko_category,Kg as editor_marimekko_color,Yg as editor_marimekko_group,jg as editor_marimekko_segment_labels,Wg as editor_marimekko_segment_labels_both,Jg as editor_marimekko_segment_labels_none,Ig as editor_marimekko_segment_labels_percent,Qg as editor_marimekko_segment_labels_value,zo as editor_max,qr as editor_max_size,ep as editor_mean,Cp as editor_measure,kp as editor_measure_change,Mp as editor_measure_value,Ao as editor_min,Jd as editor_min_range,Kd as editor_min_range_secondary,Er as editor_min_size,Im as editor_mode,Qm as editor_mode_grouped,Jm as editor_mode_percent,Wm as editor_mode_stacked,da as editor_move_down,_a as editor_move_up,h_ as editor_multiples,x_ as editor_multiples_columns,b_ as editor_multiples_scale,v_ as editor_multiples_scale_auto,f_ as editor_multiples_scale_independent,y_ as editor_multiples_scale_shared,Mo as editor_name,Ws as editor_negative_color,qo as editor_none,ma as editor_not_found,It as editor_now_marker,Yt as editor_now_marker_countdown,Wt as editor_now_marker_line,Qt as editor_now_marker_off,Jt as editor_now_marker_time,St as editor_on_top,pa as editor_orientation,ga as editor_orientation_horizontal,ha as editor_orientation_vertical,Rr as editor_overview,zu as editor_partial,ku as editor_per_icon,zi as editor_period_calendar,qi as editor_period_calendar_day,Ni as editor_period_calendar_month,Ei as editor_period_calendar_rolling,Pi as editor_period_calendar_week,Di as editor_period_calendar_year,p as editor_period_last,Vi as editor_period_navigate,Si as editor_period_offset,g as editor_period_unit,b as editor_period_unit_day,h as editor_period_unit_hour,y as editor_period_unit_month,v as editor_period_unit_week,Ti as editor_period_until,Oi as editor_period_until_end,Li as editor_period_until_now,Ys as editor_place_by,Ks as editor_place_by_time_of_day,Zs as editor_place_by_value,Pd as editor_points,Dd as editor_points_always,Nd as editor_points_hover,Sd as editor_points_never,xd as editor_points_per_hour,Ru as editor_polar_color,Hu as editor_polar_color_by,Bu as editor_polar_color_by_bands,Uu as editor_polar_color_by_series,Fu as editor_polar_color_by_shades,Ou as editor_polar_scale,Gu as editor_polar_scale_limits,Vu as editor_polar_scale_shared,To as editor_preset,Lo as editor_preset_battery,Ho as editor_preset_custom,Go as editor_preset_none,Vo as editor_preset_temperature,Oo as editor_preset_usage,Zu as editor_radar_axis,Yu as editor_radar_fill,Qu as editor_radar_scale,Wu as editor_radar_scale_limits,Ju as editor_radar_scale_shared,cl as editor_range,op as editor_range_color,Tn as editor_ranges,On as editor_ranges_colours,Ln as editor_ranges_shades,Nn as editor_readings,ia as editor_remove_band,sa as editor_remove_entity,K_ as editor_ring_color,rp as editor_rings_start_angle,ul as editor_rounded,ip as editor_rounded_ends,Ie as editor_rule_area,je as editor_rule_device_class,Je as editor_rule_domain,Ye as editor_rule_entity,Qe as editor_rule_floor,We as editor_rule_label,Z as editor_section_actions,d as editor_section_chart,J as editor_section_colours,Y as editor_section_display,t as editor_section_entities,W as editor_section_limits,_ as editor_section_style,Ss as editor_sectors,Os as editor_sectors_16,Ts as editor_sectors_4,Ls as editor_sectors_8,Nl as editor_series_aggregate,Dl as editor_series_aggregate_auto,Hl as editor_series_aggregate_change,Vl as editor_series_aggregate_first,Gl as editor_series_aggregate_last,Ol as editor_series_aggregate_max,Sl as editor_series_aggregate_mean,Ll as editor_series_aggregate_min,Tl as editor_series_aggregate_sum,zl as editor_series_axis,El as editor_series_axis_auto,ql as editor_series_axis_left,Pl as editor_series_axis_right,I as editor_series_color,Cl as editor_series_type,Al as editor_series_type_area,kl as editor_series_type_column,Ml as editor_series_type_line,L_ as editor_set_point,H_ as editor_set_point_color,ca as editor_severity,ur as editor_shade_color,V_ as editor_shade_fan,O_ as editor_shading,qu as editor_shape,Pu as editor_shape_donut,Nu as editor_shape_pie,th as editor_shape_raincloud,ih as editor_shape_violin,Nc as editor_show_as,Dc as editor_show_as_percent,Sc as editor_show_as_total,qs as editor_show_fill,zs as editor_show_graph,Ae as editor_show_icon,As as editor_show_indicator,Ee as editor_show_legend,Ns as editor_show_legend_entity,Ds as editor_show_legend_state,Es as editor_show_line,Me as editor_show_name,vm as editor_show_now,na as editor_show_options,pr as editor_show_percent,Ps as editor_show_points,ks as editor_show_state,ze as editor_show_target,ke as editor_show_value,Xs as editor_size_by_value,Pe as editor_sort,De as editor_sort_ascending,Se as editor_sort_descending,Ne as editor_sort_none,f as editor_source,S as editor_source_current,T as editor_source_energy,x as editor_source_history,w as editor_source_statistics,Zp as editor_spark,Xp as editor_spark_area,eg as editor_spark_bar,og as editor_spark_color,$p as editor_spark_column,Kp as editor_spark_line,Ac as editor_spiral_ring_width,wc as editor_spiral_turn,Cc as editor_spiral_turn_day,Mc as editor_spiral_turn_week,kc as editor_spiral_turns,sh as editor_split_by,lh as editor_split_by_day,ch as editor_split_by_month,nh as editor_split_by_none,mh as editor_split_by_week,Rs as editor_stack,js as editor_stack_none,Is as editor_stack_normal,Qs as editor_stack_percent,se as editor_start_angle,kh as editor_start_from_first,pd as editor_state_colors,vd as editor_state_colors_add,bd as editor_state_colors_color,gd as editor_state_colors_help,yd as editor_state_colors_remove,hd as editor_state_colors_state,wh as editor_steps,Ch as editor_steps_change,Mh as editor_steps_current,ug as editor_stream_curve,cg as editor_stream_labels,ng as editor_stream_order,lg as editor_stream_order_inside_out,mg as editor_stream_order_listed,hn as editor_strip_jitter,cn as editor_strip_marker,pn as editor_strip_marker_mean,un as editor_strip_marker_median,gn as editor_strip_marker_none,_e as editor_style_arc,Bs as editor_style_area,X as editor_style_bar,ae as editor_style_battery,Js as editor_style_beeswarm,vn as editor_style_box,wr as editor_style_bubble,Sn as editor_style_bullet,Hn as editor_style_candlestick,vp as editor_style_chord,Xn as editor_style_climate,ll as editor_style_column,wl as editor_style_combined,am as editor_style_cycle_plot,Ul as editor_style_day_clock,um as editor_style_dumbbell,Dm as editor_style_funnel,jm as editor_style_grouped_bars,ac as editor_style_heatmap,zc as editor_style_histogram,hg as editor_style_icicle,Bc as editor_style_line,wu as editor_style_lollipop,Rg as editor_style_marimekko,te as editor_style_needle,Cu as editor_style_pictograph,Eu as editor_style_pie,Lu as editor_style_polar_area,Iu as editor_style_radar,$u as editor_style_range_area,ie as editor_style_ring,ap as editor_style_rings,tp as editor_style_sankey,xr as editor_style_scatter,ee as editor_style_segmented,wp as editor_style_slope,Yp as editor_style_sparkline,bc as editor_style_spiral,rg as editor_style_streamgraph,sn as editor_style_strip_plot,gg as editor_style_sunburst,oe as editor_style_tank,$ as editor_style_thin,qg as editor_style_timeline,Tg as editor_style_treemap,$g as editor_style_trend,rh as editor_style_violin,hh as editor_style_waffle,xh as editor_style_waterfall,Sh as editor_style_wind_rose,bg as editor_sunburst_shape,vg as editor_sunburst_shape_full,yg as editor_sunburst_shape_half,g_ as editor_sync,Ze as editor_tap_action,Eo as editor_target,be as editor_tick_labels,fd as editor_timeline_group,md as editor_timeline_legend,cd as editor_timeline_legend_above,ud as editor_timeline_legend_hidden,K as editor_title,mp as editor_to,Pt as editor_tooltip,Ah as editor_total,Lg as editor_treemap_color_by,Vg as editor_treemap_color_by_bands,Og as editor_treemap_color_by_group,hs as editor_trend_color_icon,bs as editor_trend_group,Td as editor_trend_labels,Id as editor_trend_legend,ys as editor_trend_tooltip,Wd as editor_trend_y_max,Qd as editor_trend_y_min,Fn as editor_under_aggregate,jn as editor_underneath,In as editor_underneath_columns,Qn as editor_underneath_line,Le as editor_unit,Mu as editor_unit_icon,Bn as editor_up_color,ba as editor_value_axis,Xd as editor_value_factor,va as editor_value_grid,fa as editor_value_max,ya as editor_value_min,bh as editor_waffles,yh as editor_waffles_each,vh as editor_waffles_one,zh as editor_waterfall_invert,Ot as editor_when_above,Vt as editor_when_below,Ut as editor_when_card_above,Ft as editor_when_card_below,Gt as editor_when_card_entity,Ht as editor_when_card_state,Tt as editor_when_entity,Bt as editor_when_ghost,Lt as editor_when_state,Rt as editor_when_strip,En as editor_whiskers,Pn as editor_whiskers_range,qn as editor_whiskers_tukey,Us as editor_wind_none,Hs as editor_wind_now,Gs as editor_wind_roles,Fs as editor_wind_statistics,vt as editor_x_axis,Gr as editor_x_max,Vr as editor_x_min,Nr as editor_xy_x_axis,yt as editor_y_axis,fs as editor_y_axis_side,xs as editor_y_axis_side_primary,ws as editor_y_axis_side_secondary,At as editor_y_max,Zd as editor_y_max_secondary,kt as editor_y_min,Yd as editor_y_min_secondary,zt as editor_y_scale,Et as editor_y_scale_linear,qt as editor_y_scale_log,Ai as editor_zones,Br as editor_zoom,Qc as energy_error,Xc as energy_flow_battery_in,Kc as energy_flow_battery_out,ou as energy_flow_devices,$c as energy_flow_gas,Yc as energy_flow_grid_export,Jc as energy_flow_grid_import,Zc as energy_flow_solar,eu as energy_flow_water,Ic as energy_loading,au as energy_node_home,iu as energy_node_home_use,ru as energy_node_untracked,Wc as energy_none,bp as energy_nothing_flowed,e as entity_not_found,fl as error_bars_tooltip,bu as export_copied,uu as export_csv,pu as export_csv_hint,fu as export_failed,su as export_menu,nu as export_png,lu as export_png_hint,vu as export_saved,yu as export_saved_file,mu as export_svg,cu as export_svg_hint,gu as export_yaml,hu as export_yaml_hint,Na as extremes_average,qa as extremes_high,Pa as extremes_low,w_ as forecast_label,C_ as forecast_series,Rm as funnel_aria,we as ghost_title_24h,Ce as ghost_title_7d,oc as grouped_bars_aria,rc as heatmap_aria,tc as heatmap_empty,ic as heatmap_hours,kg as hierarchy_empty,Ag as hierarchy_no_reading,Mg as hierarchy_other,Cg as hierarchy_total,Fc as histogram_reading,Uc as histogram_readings,Eg as icicle_aria,du as legend_toggle_all_hidden,_u as legend_toggle_hint,Xg as marimekko_aria,a as no_entities,r as no_matches,i as none_available,Zt as now_marker_countdown,Kt as now_marker_next,fr as parts_aria,yr as parts_average,vr as parts_total,_r as period_last_day,dr as period_last_days,ir as period_last_hour,tr as period_last_hours,or as period_last_month,lr as period_last_month_rolling,mr as period_last_months,$a as period_last_week,sr as period_last_week_rolling,nr as period_last_weeks,rr as period_last_year,Ja as period_next,Wa as period_previous,Ya as period_return,er as period_this_month,Xa as period_this_week,ar as period_this_year,Za as period_today,Ka as period_yesterday,ju as polar_area_aria,Ku as radar_aria,Xu as radar_other,up as sankey_aria,pp as sankey_flow,gp as sankey_no_flows,hp as sankey_nothing,Dr as scatter_needs_two,Tr as scatter_role_x,Sp as slope_ago,Tp as slope_ago_one,Wp as slope_entity_aria,Vp as slope_last,Gp as slope_last_one,Jp as slope_no_reading,Dp as slope_now,Lp as slope_previous,Op as slope_previous_one,Fp as slope_unit_day,Bp as slope_unit_day_other,Hp as slope_unit_hour,Up as slope_unit_hour_other,Ip as slope_unit_month,Qp as slope_unit_month_other,Rp as slope_unit_week,jp as slope_unit_week_other,ag as spark_aria,vc as spiral_aria,xc as spiral_inner_oldest,yc as spiral_turn_day_note,fc as spiral_turn_week_note,pg as stream_total,mn as strip_mean,ln as strip_mean_value,nn as strip_median_value,zg as sunburst_aria,_n as swarm_earliest_latest,en as swarm_events,tn as swarm_held,dn as swarm_lowest_highest,rn as swarm_no_change,an as swarm_none,$s as swarm_readings,on as swarm_shown,Ng as timeline_for,Sg as timeline_measurement,Pg as timeline_no_states,Dg as timeline_now,Gg as treemap_aria,Ug as treemap_empty,Fg as treemap_no_reading,Bg as treemap_other,Hg as treemap_total,oh as trend_avg,ah as trend_max,eh as trend_min,o as unavailable,uh as violin_median,ph as violin_none,gh as violin_raincloud,Dh as waterfall_aria,qh as waterfall_end,Nh as waterfall_no_readings,Eh as waterfall_start,Ph as waterfall_total,jt as when_strip_label,Fh as wind_aria,Bh as wind_aria_calm,Rh as wind_aria_still,Vh as wind_calm,Lh as wind_mean_speed,Th as wind_prevailing,Uh as wind_share,Gh as wind_speed,Hh as wind_speed_unit,Oh as wind_strongest,Hr as zoom_reset,Ur as zoom_window,Fr as zoom_window_label};
+//# sourceMappingURL=chartdeck-card.pt-DlX1t9a_.js.map
diff --git a/dist/chartdeck-card.pt-DlX1t9a_.js.map b/dist/chartdeck-card.pt-DlX1t9a_.js.map
new file mode 100644
index 0000000..cca9745
--- /dev/null
+++ b/dist/chartdeck-card.pt-DlX1t9a_.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"chartdeck-card.pt-DlX1t9a_.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/src/badge.ts b/src/badge.ts
new file mode 100644
index 0000000..0bafab4
--- /dev/null
+++ b/src/badge.ts
@@ -0,0 +1,400 @@
+import { LitElement, css, html, nothing, svg } from 'lit';
+import type { PropertyValues, TemplateResult } from 'lit';
+import { attachActions, isInteractive } from './actions';
+import { baseColor } from './bands';
+import { downsample } from './chart/downsample';
+import { runPath, runs } from './chart/paths';
+import type { XY } from './chart/paths';
+import { extent, linear, padDomain } from './chart/scale';
+import { normalizeConfig } from './config';
+import './editor/badge-editor';
+import { key } from './history/fetch';
+import { pauseStore, storeFor } from './history/store';
+import type { Point } from './history/types';
+import { LanguageController } from './language-controller';
+import { iconOverride, resolveEntities, watchedEntityIds } from './resolve';
+import type { ResolvedEntity } from './resolve';
+import type { CardConfig, EntityConfig, HomeAssistant, NormalizedConfig } from './types';
+
+/*
+ * A Chartdeck badge for the Sections view's badge row (Home Assistant 2024.8 and later):
+ * `type: custom:chartdeck-badge`, one entity, drawn as a pill like Home Assistant's own badges.
+ * It reads the same options as the card (min, max, severity bands, unit, decimals, name,
+ * attribute, actions) through the card's own config code, so a band or limit means the same in
+ * both. Four looks:
+ *
+ * - value: the value and name beside the entity's icon, tinted with the band colour.
+ * - sparkline: a small line of the last `hours` (24) of history, then the value.
+ * - ring: a small ring filled to the value's place between min and max.
+ * - thin: a short bar filled the same way.
+ */
+
+export const BADGE_STYLES = ['value', 'sparkline', 'ring', 'thin'] as const;
+export type BadgeStyle = (typeof BADGE_STYLES)[number];
+
+export interface BadgeConfig extends Partial {
+ type: string;
+ entity?: string;
+ style?: BadgeStyle;
+ /** A colour for the badge when it has no severity bands (palette name or CSS colour). */
+ color?: string;
+ show_name?: boolean;
+ show_icon?: boolean;
+ /** Sparkline: hours of history drawn (default 24, at most a week). */
+ hours?: number;
+}
+
+const DEFAULT_HOURS = 24;
+const MAX_HOURS = 168;
+const HOUR = 3_600_000;
+/** The sparkline's drawing box (px). */
+const SPARK_W = 44;
+const SPARK_H = 20;
+/** Points kept in a sparkline: it is only 44 px wide. */
+const SPARK_POINTS = 60;
+
+/** Check a badge config and turn it into the card's normalised form (one entity). Throws a readable Error. */
+export function normalizeBadge(raw: BadgeConfig): { config: NormalizedConfig; style: BadgeStyle; hours: number } {
+ if (!raw || typeof raw !== 'object') throw new Error('Invalid configuration');
+ if (typeof raw.entity !== 'string' || !raw.entity) throw new Error('"entity" is required');
+ const style = raw.style ?? 'value';
+ if (!BADGE_STYLES.includes(style)) throw new Error(`"style" must be one of: ${BADGE_STYLES.join(', ')}`);
+ const hours = raw.hours ?? DEFAULT_HOURS;
+ if (typeof hours !== 'number' || !Number.isFinite(hours) || hours <= 0 || hours > MAX_HOURS) {
+ throw new Error(`"hours" must be a number of hours from 1 to ${MAX_HOURS}`);
+ }
+ for (const k of ['show_name', 'show_icon'] as const) {
+ if (raw[k] !== undefined && typeof raw[k] !== 'boolean') throw new Error(`"${k}" must be true or false`);
+ }
+ if (raw.color !== undefined && typeof raw.color !== 'string') throw new Error('"color" must be a colour');
+ // The card's own checks and merging: the badge is a card of one entity with the badge's options.
+ const { type: _type, entity, attribute, style: _style, hours: _hours, show_name, show_icon, ...rest } = raw;
+ void _type;
+ void _style;
+ void _hours;
+ const card: CardConfig = {
+ ...rest,
+ type: 'custom:chartdeck-card',
+ entities: [attribute ? { entity, attribute } : entity],
+ show: { name: show_name !== false, icon: show_icon !== false, value: true, target: false, legend: false },
+ };
+ return { config: normalizeConfig(card), style, hours };
+}
+
+/** The badge's colour: its band's when it has bands, else its own `color`, else the theme's primary. */
+export function badgeColor(e: ResolvedEntity, raw: BadgeConfig): string {
+ if (Array.isArray(raw.severity) && raw.severity.length) return baseColor(e.band.color);
+ return baseColor(raw.color ?? 'primary');
+}
+
+/** The sparkline's path(s) in a w × h box, one per unbroken run; '' with nothing to draw. */
+export function sparkPath(points: Point[], range: { start: number; end: number }, w = SPARK_W, h = SPARK_H): string {
+ const thin = downsample(points, SPARK_POINTS);
+ const domain = extent([thin]);
+ if (!domain || range.end <= range.start) return '';
+ const x = linear([range.start, range.end], [1, w - 1]);
+ const y = linear(padDomain(domain, 0.1), [h - 2, 2]);
+ return runs(thin)
+ .map((run) =>
+ runPath(
+ run.map((p): XY => [x(p.t), y(p.v as number)]),
+ 'smooth',
+ ),
+ )
+ .join(' ');
+}
+
+export class ChartdeckBadge extends LitElement {
+ protected readonly languageController = new LanguageController(this);
+
+ static properties = {
+ hass: { attribute: false },
+ _raw: { state: true },
+ };
+
+ declare hass?: HomeAssistant;
+ declare _raw?: BadgeConfig;
+ private _config?: NormalizedConfig;
+ private _style: BadgeStyle = 'value';
+ private _hours = DEFAULT_HOURS;
+ private _watched = new Set();
+ private _item?: ResolvedEntity;
+ private _detach?: () => void;
+
+ static getConfigElement(): HTMLElement {
+ return document.createElement('chartdeck-badge-editor');
+ }
+
+ /** A numeric sensor, batteries first (they read well as a badge), as the card's stub does. */
+ static getStubConfig(hass: HomeAssistant): BadgeConfig {
+ const numeric = Object.values(hass?.states ?? {}).filter(
+ (s) => s.entity_id.startsWith('sensor.') && s.state.trim() !== '' && Number.isFinite(Number(s.state)),
+ );
+ numeric.sort((a, b) => a.entity_id.localeCompare(b.entity_id));
+ const battery = numeric.find((s) => s.attributes?.device_class === 'battery');
+ const entity = (battery ?? numeric[0])?.entity_id ?? 'sensor.example';
+ return { type: 'custom:chartdeck-badge', entity, style: 'ring' };
+ }
+
+ setConfig(raw: BadgeConfig): void {
+ const { config, style, hours } = normalizeBadge(raw);
+ this._config = config;
+ this._style = style;
+ this._hours = hours;
+ this._watched = watchedEntityIds(config);
+ this._raw = raw;
+ }
+
+ protected shouldUpdate(changed: PropertyValues): boolean {
+ if (changed.size === 0 || !changed.has('hass') || changed.size > 1) return true;
+ const prev = changed.get('hass') as HomeAssistant | undefined;
+ const next = this.hass;
+ if (!prev || !next) return true;
+ for (const id of this._watched) if (prev.states[id] !== next.states[id]) return true;
+ return prev.themes?.darkMode !== next.themes?.darkMode || prev.locale !== next.locale;
+ }
+
+ connectedCallback(): void {
+ super.connectedCallback();
+ if (this.hasUpdated) this.requestUpdate();
+ }
+
+ disconnectedCallback(): void {
+ super.disconnectedCallback();
+ pauseStore(this);
+ this._detach?.();
+ this._detach = undefined;
+ }
+
+ protected updated(): void {
+ const el = this.shadowRoot?.querySelector('.badge');
+ if (el && !this._detach) this._detach = attachActions(el, () => this._item!.config);
+ }
+
+ private _spark(e: ResolvedEntity, color: string): TemplateResult {
+ const now = Date.now();
+ const range = { start: now - this._hours * HOUR, end: now };
+ const request = { entity: e.entityId, attribute: e.config.attribute };
+ const loaded = storeFor(this, () => this.requestUpdate()).get(this.hass!, [request], range, 'history');
+ let points = loaded.data.get(key(request)) ?? [];
+ // A sensor holds its last reading until it changes: carry it on to now.
+ const last = points[points.length - 1];
+ if (last && last.v !== null && last.t < now) points = [...points, { t: now, v: last.v }];
+ const d = sparkPath(points, range);
+ return html`
+ ${d ? svg` ` : svg` `}
+ `;
+ }
+
+ private _visual(e: ResolvedEntity, color: string): TemplateResult | typeof nothing {
+ const fill = e.available ? e.position : 0;
+ switch (this._style) {
+ case 'sparkline':
+ return this._spark(e, color);
+ case 'ring': {
+ // pathLength 100 from 12 o'clock, clockwise.
+ return html`
+
+ ${
+ fill > 0
+ ? svg` `
+ : nothing
+ }
+ `;
+ }
+ case 'thin':
+ return html``;
+ default:
+ return html`
+ ${
+ this._config!.show.icon
+ ? html` `
+ : html` `
+ }
+
`;
+ }
+ }
+
+ render() {
+ const config = this._config;
+ const hass = this.hass;
+ if (!config || !hass || !this._raw) return nothing;
+ const e = resolveEntities(config, hass)[0];
+ this._item = e;
+ const color = e.available ? badgeColor(e, this._raw) : 'var(--disabled-text-color, var(--secondary-text-color))';
+ const interactive = isInteractive(e.config);
+ return html`
+ ${this._visual(e, color)}
+
+ ${e.display}
+ ${config.show.name ? html`${e.name} ` : nothing}
+
+
`;
+ }
+
+ static styles = css`
+ :host {
+ display: inline-block;
+ --cd-badge-track: color-mix(in srgb, var(--primary-text-color, #212121) 12%, transparent);
+ }
+ @supports not (color: color-mix(in srgb, red 50%, white)) {
+ :host {
+ --cd-badge-track: var(--divider-color, rgba(127, 127, 127, 0.2));
+ }
+ }
+ /* The look of Home Assistant's own badges: a 36 px pill on the card background. */
+ .badge {
+ display: flex;
+ align-items: center;
+ gap: 8px;
+ box-sizing: border-box;
+ height: var(--ha-badge-size, 36px);
+ min-width: var(--ha-badge-size, 36px);
+ padding: 0 12px 0 6px;
+ border-radius: var(--ha-badge-border-radius, 18px);
+ background: var(--ha-card-background, var(--card-background-color, #fff));
+ border: var(--ha-card-border-width, 1px) solid var(--ha-card-border-color, var(--divider-color, #e0e0e0));
+ box-shadow: var(--ha-card-box-shadow, none);
+ color: var(--primary-text-color);
+ -webkit-tap-highlight-color: transparent;
+ user-select: none;
+ }
+ .badge.style-sparkline,
+ .badge.style-thin {
+ padding-left: 10px;
+ }
+ .badge.interactive {
+ cursor: pointer;
+ }
+ .badge:focus-visible {
+ outline: 2px solid var(--primary-color, #03a9f4);
+ outline-offset: 2px;
+ }
+ .info {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ min-width: 0;
+ line-height: 1.2;
+ }
+ .value {
+ font-size: 12px;
+ font-weight: 500;
+ white-space: nowrap;
+ }
+ .name {
+ font-size: 10px;
+ color: var(--secondary-text-color);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ max-width: 120px;
+ }
+ .unavailable .value {
+ color: var(--secondary-text-color);
+ font-weight: 400;
+ }
+ .icon-wrap {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex: none;
+ width: 24px;
+ height: 24px;
+ border-radius: 50%;
+ background: color-mix(in srgb, var(--badge-color) 20%, transparent);
+ color: var(--badge-color);
+ }
+ .icon {
+ --mdc-icon-size: 16px;
+ display: flex;
+ }
+ .dot {
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background: var(--badge-color);
+ }
+ .ring {
+ flex: none;
+ width: 24px;
+ height: 24px;
+ transform: rotate(-90deg);
+ }
+ .ring circle {
+ fill: none;
+ stroke-width: 3px;
+ }
+ .ring .track {
+ stroke: var(--cd-badge-track);
+ }
+ .ring .fill {
+ stroke-linecap: round;
+ }
+ .thin {
+ flex: none;
+ width: 32px;
+ height: 4px;
+ border-radius: 2px;
+ overflow: hidden;
+ background: var(--cd-badge-track);
+ }
+ .thin-fill {
+ height: 100%;
+ border-radius: 2px;
+ }
+ .spark {
+ flex: none;
+ width: 44px;
+ height: 20px;
+ overflow: visible;
+ }
+ .spark path {
+ fill: none;
+ stroke-width: 1.5px;
+ stroke-linejoin: round;
+ stroke-linecap: round;
+ }
+ .spark-empty {
+ stroke: var(--cd-badge-track);
+ stroke-width: 1.5px;
+ stroke-dasharray: 2 3;
+ }
+ `;
+}
+
+if (!customElements.get('chartdeck-badge')) {
+ customElements.define('chartdeck-badge', ChartdeckBadge);
+}
+
+interface CustomBadgeEntry {
+ type: string;
+ name: string;
+ description: string;
+ preview?: boolean;
+ documentationURL?: string;
+}
+const badges = ((window as unknown as { customBadges?: CustomBadgeEntry[] }).customBadges ??= []);
+if (!badges.some((b) => b.type === 'chartdeck-badge')) {
+ badges.push({
+ type: 'chartdeck-badge',
+ name: 'Chartdeck badge',
+ description: 'A value, sparkline, ring or thin bar in the badge row, with the card’s colour bands.',
+ preview: true,
+ documentationURL: 'https://tempus2016.github.io/chartdeck/',
+ });
+}
diff --git a/src/chart/annotations.ts b/src/chart/annotations.ts
index dc4051d..959adfc 100644
--- a/src/chart/annotations.ts
+++ b/src/chart/annotations.ts
@@ -8,11 +8,22 @@ import type { Zone } from '../history/timezone';
import type { Range } from '../history/types';
import { localize } from '../localize';
import type { ChartContext } from '../styles/index';
-import type { CardConfig, HomeAssistant, ResolvedBand } from '../types';
+import type { Band, CardConfig, HomeAssistant, ResolvedBand } from '../types';
+import { conversion } from '../units';
import { formatDateTime } from './axes';
import { VIEW_H, VIEW_W } from './frame';
import type { ChartSeries, HistoryFrame } from './frame';
import type { PlotScales } from './grid';
+import {
+ checkThresholdHistory,
+ historyEntity,
+ stepValues,
+ steppedThreshold,
+ stopThresholdHistory,
+ thresholdSteps,
+ zoneBands,
+} from './threshold-history';
+import type { ThresholdZone } from './threshold-history';
/** What an annotation marks. */
export const ANNOTATION_TYPES = ['line', 'band', 'time', 'state', 'point'] as const;
@@ -34,6 +45,12 @@ export interface Annotation {
value?: number | string;
/** line: dashed (the default) or solid. */
dash?: boolean;
+ /** line: follow the value entity's history as a stepped line, not just its current state. */
+ history?: boolean;
+ /** line: shade the side above or below the line (see threshold-history.ts). */
+ zone?: ThresholdZone;
+ /** line with a zone: colour the zone by the line's value at each step, from these bands. */
+ severity?: Band[];
/** band: its bottom and top; either may be left out to run to the chart's edge. */
from?: number | string;
to?: number | string;
@@ -129,6 +146,7 @@ export function validateAnnotations(raw: CardConfig): void {
}
if (a.type === 'state' && a.entity === undefined)
throw new Error(`"${where('entity')}" is needed for a state mark`);
+ checkThresholdHistory(a, where);
if (a.at !== undefined && !POINT_AT.includes(a.at as PointAt)) {
throw new Error(`"${where('at')}" must be one of: ${POINT_AT.join(', ')}`);
}
@@ -151,22 +169,47 @@ export function annotationEntities(raw: CardConfig): string[] {
return [...ids];
}
-/** A number, or an entity's state as one; undefined while it has none (unavailable, missing). */
-export function resolveValue(v: number | string | undefined, hass: HomeAssistant): number | undefined {
+/**
+ * A number, or an entity's state as one; undefined while it has none (unavailable, missing). An
+ * entity's state is converted from its own unit to `unit` (the chart's, from its first series)
+ * when the card knows the pair, so a °F input_number marks the right place on a °C chart. A
+ * number written in the config is taken to be in the chart's unit already.
+ */
+export function resolveValue(v: number | string | undefined, hass: HomeAssistant, unit?: string): number | undefined {
if (v === undefined) return undefined;
if (isNumber(v)) return v;
const own = toReading(v);
if (own !== null) return own;
- const reading = toReading(hass.states[v.trim()]?.state);
- return reading ?? undefined;
+ const state = hass.states[v.trim()];
+ const reading = toReading(state?.state);
+ if (reading === null) return undefined;
+ const from = state?.attributes?.unit_of_measurement;
+ const c = conversion(typeof from === 'string' ? from : undefined, unit);
+ return c ? c.apply(reading) : reading;
+}
+
+/** The unit an annotation's value is in: the first series' shown unit. */
+export function annotationUnit(frame: Pick): string | undefined {
+ return frame.series[0]?.entity.unit || undefined;
}
-/** Values the value axis should reach, so a threshold line is always on show. */
-export function annotationValues(raw: CardConfig, hass: HomeAssistant): number[] {
- return annotationsOf(raw)
+/**
+ * Values the value axis should reach, so a threshold line is always on show (in `unit`, see
+ * `resolveValue`). Given the chart and its frame, a line that follows its entity's history reaches
+ * every value it stepped through.
+ */
+export function annotationValues(
+ raw: CardConfig,
+ hass: HomeAssistant,
+ unit?: string,
+ ctx?: ChartContext,
+ frame?: HistoryFrame,
+): number[] {
+ const values = annotationsOf(raw)
.filter((a) => a.type === 'line')
- .map((a) => resolveValue(a.value, hass))
+ .map((a) => resolveValue(a.value, hass, unit))
.filter(isNumber);
+ return ctx && frame ? [...values, ...stepValues(thresholdSteps(ctx, frame), frame.range)] : values;
}
/**
@@ -279,6 +322,7 @@ export function stopAnnotations(host: HTMLElement): void {
const c = caches.get(host);
if (c) c.generation++;
caches.delete(host);
+ stopThresholdHistory(host);
}
/**
@@ -425,7 +469,9 @@ export function annotationLayers(
const x = (t: number) => scales.x(t);
const [lo, hi] = scales.domain;
const states = stateHistory(ctx, range, frame.live);
+ const steps = thresholdSteps(ctx, frame);
const until = Math.min(range.end, Date.now());
+ const unit = annotationUnit(frame);
const pending: { t: number; label: string; color: string }[] = [];
const marks = (a: Annotation, color: string, times: number[], kind: string) => {
@@ -440,8 +486,24 @@ export function annotationLayers(
for (const a of list) {
const color = baseColor(a.color ?? DEFAULT_COLOR[a.type]);
- if (a.type === 'line') {
- const v = resolveValue(a.value, ctx.hass);
+ const stepped = a.type === 'line' ? steps.get(historyEntity(a) ?? '') : undefined;
+ const step =
+ stepped && steppedThreshold(stepped, scales, color, a.dash !== false, a.zone, zoneBands(a, ctx.hass, unit));
+ if (step) {
+ // A line through the entity's history: stepped, with its label where it ends.
+ if (step.zone) behind.push(step.zone);
+ front.push(step.line);
+ if (a.label) {
+ labels.push(
+ html`${a.label} `,
+ );
+ }
+ } else if (a.type === 'line') {
+ const v = resolveValue(a.value, ctx.hass, unit);
if (v === undefined || v < lo || v > hi) continue;
const y = scales.y(v);
front.push(
@@ -458,8 +520,8 @@ export function annotationLayers(
);
}
} else if (a.type === 'band') {
- const from = a.from === undefined ? lo : resolveValue(a.from, ctx.hass);
- const to = a.to === undefined ? hi : resolveValue(a.to, ctx.hass);
+ const from = a.from === undefined ? lo : resolveValue(a.from, ctx.hass, unit);
+ const to = a.to === undefined ? hi : resolveValue(a.to, ctx.hass, unit);
if (from === undefined || to === undefined) continue;
const bottom = Math.max(lo, Math.min(from, to));
const top = Math.min(hi, Math.max(from, to));
@@ -552,6 +614,12 @@ export const annotationStyles = css`
.plot .threshold.dashed {
stroke-dasharray: 6 4;
}
+ .plot .threshold.stepped {
+ stroke-linejoin: round;
+ }
+ .plot .threshold-zone {
+ opacity: 0.1;
+ }
.plot .mark-line {
stroke-width: 1;
stroke-dasharray: 3 3;
diff --git a/src/chart/anomaly.ts b/src/chart/anomaly.ts
new file mode 100644
index 0000000..bff782e
--- /dev/null
+++ b/src/chart/anomaly.ts
@@ -0,0 +1,490 @@
+import { css, html, nothing, svg } from 'lit';
+import type { SVGTemplateResult, TemplateResult } from 'lit';
+import { baseColor } from '../bands';
+import type { FieldBinding } from '../editor/schemas';
+import { formatNumber, withUnit } from '../format';
+import type { Point, Range } from '../history/types';
+import { localize } from '../localize';
+import type { ChartContext } from '../styles/index';
+import type { CardConfig, HomeAssistant } from '../types';
+import { LABEL_H, labelBox, overlaps, placeLabels } from './extremes';
+import type { Box, LabelSpec, PlacedLabel } from './extremes';
+import { VIEW_H, VIEW_W } from './frame';
+import type { ChartSeries } from './frame';
+import type { PlotScales } from './grid';
+
+/*
+ * Anomaly markers: around each reading, the typical value and spread of the other readings within
+ * a time window centred on it. A reading more than `sigma` deviations from that typical value is
+ * marked, and the band of typical ± sigma deviations is shaded behind the line, so what counts as
+ * normal is visible.
+ *
+ * "Typical" and "spread" are the robust forms of the mean and standard deviation: the median, and
+ * the median absolute deviation scaled by 1.4826 (which equals the standard deviation for normally
+ * distributed readings). The plain mean and deviation let a spike hide itself: a spike a few
+ * readings wide sits in its neighbours' windows, pulls their mean towards it and widens their
+ * deviation until nothing looks unusual. The median ignores a few wild readings.
+ */
+
+/** Fewer neighbours than this in a reading's window, and it is not judged (too little to go on). */
+export const MIN_NEIGHBOURS = 5;
+/**
+ * Fewer than this on either side, and it is not judged either: against neighbours on one side
+ * only, any reading on a slope looks out of line (the first of a rise sits below everything after it).
+ */
+export const MIN_SIDE = 2;
+/** At most this many markers are drawn per series, the furthest out first. */
+const MAX_MARKERS = 200;
+/** At most this many markers get a "+3.4σ" label, the furthest out first (nearby marks share one). */
+const MAX_LABELS = 3;
+/** By default the window is this fraction of the chart's span. */
+const AUTO_WINDOW = 1 / 12;
+
+export const DEFAULT_SIGMA = 3;
+export const DEFAULT_ANOMALY_COLOR = 'red';
+
+export interface AnomalyOptions {
+ /** The whole window, centred on each reading, in ms; undefined: a twelfth of the span. */
+ window?: number;
+ sigma: number;
+ color: string;
+ band: boolean;
+}
+
+type Raw = CardConfig & {
+ anomalies?: unknown;
+ anomalies_window?: unknown;
+ anomalies_sigma?: unknown;
+ anomalies_color?: unknown;
+ anomalies_band?: unknown;
+};
+
+const UNIT_MS: Record = { s: 1000, min: 60_000, h: 3_600_000, d: 86_400_000, w: 7 * 86_400_000 };
+const DURATION = /^(\d+(?:\.\d+)?)\s*(s|min|h|d|w)$/;
+
+/** A window as written ("30min", "2h", "1d"; a bare number is minutes) in ms; undefined if unreadable. */
+export function parseWindow(raw: unknown): number | undefined {
+ if (typeof raw === 'number') return Number.isFinite(raw) && raw > 0 ? raw * 60_000 : undefined;
+ if (typeof raw !== 'string') return undefined;
+ const m = DURATION.exec(raw.trim());
+ if (!m) return undefined;
+ const ms = Number(m[1]) * UNIT_MS[m[2]];
+ return ms > 0 ? ms : undefined;
+}
+
+/** Throw a readable error for bad anomaly options. */
+export function validateAnomalies(config: CardConfig): void {
+ const raw = config as Raw;
+ for (const k of ['anomalies', 'anomalies_band'] as const) {
+ if (raw[k] !== undefined && typeof raw[k] !== 'boolean') throw new Error(`"${k}" must be true or false`);
+ }
+ if (
+ raw.anomalies_window !== undefined &&
+ raw.anomalies_window !== 'auto' &&
+ parseWindow(raw.anomalies_window) === undefined
+ ) {
+ throw new Error('"anomalies_window" must be a time such as 30min, 2h or 1d (or auto)');
+ }
+ const sigma = raw.anomalies_sigma;
+ if (sigma !== undefined && !(typeof sigma === 'number' && Number.isFinite(sigma) && sigma > 0)) {
+ throw new Error('"anomalies_sigma" must be a number above 0');
+ }
+ if (raw.anomalies_color !== undefined && typeof raw.anomalies_color !== 'string') {
+ throw new Error('"anomalies_color" must be text');
+ }
+}
+
+/** The card's anomaly options, or undefined when it doesn't mark anomalies. Call after validating. */
+export function anomalyOptions(config: CardConfig): AnomalyOptions | undefined {
+ const raw = config as Raw;
+ if (raw.anomalies !== true) return undefined;
+ return {
+ window: parseWindow(raw.anomalies_window),
+ sigma: (raw.anomalies_sigma as number | undefined) ?? DEFAULT_SIGMA,
+ color: (raw.anomalies_color as string | undefined) ?? DEFAULT_ANOMALY_COLOR,
+ band: raw.anomalies_band !== false,
+ };
+}
+
+/* ------------------------------------------------------------------ maths ------------------------------------------------------------------ */
+
+/** One reading's neighbourhood: its typical value and spread, and how far out the reading is. */
+export interface RollingStat {
+ t: number;
+ v: number;
+ /** The neighbours' median. */
+ mid: number;
+ /** Their spread, as a standard deviation (1.4826 × the median absolute deviation). */
+ sd: number;
+ /** Deviations out: (v - mid) / sd. Infinite when the neighbours never vary but it does. */
+ z: number;
+}
+
+/** Scales a median absolute deviation to a standard deviation for normally distributed readings. */
+const MAD_TO_SD = 1.4826;
+/** Scales a mean absolute deviation to a standard deviation, likewise. */
+const MEAN_AD_TO_SD = 1.2533;
+/** A window holding more readings than this is sampled evenly, to keep the sorting cheap. */
+const MAX_WINDOW_READINGS = 401;
+
+function median(sorted: readonly number[]): number {
+ const m = sorted.length >> 1;
+ return sorted.length % 2 ? sorted[m] : (sorted[m - 1] + sorted[m]) / 2;
+}
+
+/**
+ * The series' reading-to-reading noise, as a deviation: the robust spread of the steps between
+ * neighbouring readings, over √2 (a step is the difference of two noisy readings). A steady slope
+ * is a constant step and adds nothing; spikes are a few steps among many and are ignored.
+ */
+export function noiseFloor(pts: readonly { v: number }[]): number {
+ if (pts.length < 3) return 0;
+ const steps = pts.slice(1).map((p, i) => p.v - pts[i].v);
+ steps.sort((a, b) => a - b);
+ const mid = median(steps);
+ const offs = steps.map((d) => Math.abs(d - mid)).sort((a, b) => a - b);
+ return (MAD_TO_SD * median(offs)) / Math.SQRT2;
+}
+
+/**
+ * For each reading, the median and robust deviation (see above) of the other readings within
+ * `window / 2` either side of it, and its z-score. Gaps and the value carried in at the start get
+ * null (so a band drawn from these breaks at gaps), as do readings with fewer than
+ * `MIN_NEIGHBOURS` neighbours or fewer than `MIN_SIDE` on either side.
+ */
+export function rollingStats(points: readonly Point[], window: number): (RollingStat | null)[] {
+ const slots: (RollingStat | null)[] = points.map(() => null);
+ const at: number[] = [];
+ const pts: { t: number; v: number }[] = [];
+ points.forEach((p, i) => {
+ if (p.v === null || p.carried) return;
+ at.push(i);
+ pts.push(p as { t: number; v: number });
+ });
+ const floor = noiseFloor(pts);
+ const half = window / 2;
+ let lo = 0;
+ let hi = 0;
+ pts.forEach((p, i) => {
+ while (hi < pts.length && pts[hi].t <= p.t + half) hi++;
+ while (pts[lo].t < p.t - half) lo++;
+ const n = hi - lo - 1;
+ if (n < MIN_NEIGHBOURS || i - lo < MIN_SIDE || hi - 1 - i < MIN_SIDE) return;
+ const step = Math.max(1, Math.ceil(n / MAX_WINDOW_READINGS));
+ const values: number[] = [];
+ for (let k = lo; k < hi; k += step) if (k !== i) values.push(pts[k].v);
+ values.sort((a, b) => a - b);
+ const mid = median(values);
+ const offs = values.map((v) => Math.abs(v - mid)).sort((a, b) => a - b);
+ // Over half the neighbours on one value (a sensor that mostly reads 0) leaves no median
+ // deviation: the mean absolute deviation, scaled the same way, still sees the rest.
+ const local = MAD_TO_SD * median(offs) || MEAN_AD_TO_SD * (offs.reduce((sum, d) => sum + d, 0) / offs.length);
+ // A handful of neighbours can agree by chance and give a tiny spread: never below the noise.
+ const sd = Math.max(local, floor);
+ const dev = p.v - mid;
+ // A tolerance for rounding: a flat neighbourhood has no spread, not a tiny one.
+ const flat = sd < 1e-9 * Math.max(1, Math.abs(mid));
+ const z = flat ? (Math.abs(dev) < 1e-9 * Math.max(1, Math.abs(mid)) ? 0 : Math.sign(dev) * Infinity) : dev / sd;
+ slots[at[i]] = { t: p.t, v: p.v, mid, sd: flat ? 0 : sd, z };
+ });
+ return slots;
+}
+
+/** The readings more than `sigma` deviations out, furthest out first. */
+export function anomaliesOf(stats: readonly (RollingStat | null)[], sigma: number): RollingStat[] {
+ return stats
+ .filter((s): s is RollingStat => s !== null && Math.abs(s.z) > sigma)
+ .sort((a, b) => Math.abs(b.z) - Math.abs(a.z));
+}
+
+/** Past this many deviations a label stops counting: "> +10σ". */
+export const Z_CAP = 10;
+
+/** A z-score as a label: "+3.4σ", "−2.1σ", or past ten "> +10σ" / "< −10σ" (localised). */
+export function zText(z: number, hass?: HomeAssistant): string {
+ const sign = z < 0 ? '−' : '+';
+ if (Math.abs(z) > Z_CAP) {
+ const limit = `${sign}${formatNumber(Z_CAP, 0, hass)}σ`;
+ return localize(hass, z < 0 ? 'anomaly_beyond_low' : 'anomaly_beyond_high', { limit });
+ }
+ return `${sign}${formatNumber(Math.abs(z), 1, hass)}σ`;
+}
+
+/** A marker to label: where its dot is (fractions of the plot) and how far out it is. */
+export interface MarkSpot {
+ x: number;
+ y: number;
+ z: number;
+}
+
+/** Marks closer than this to a labelled one, in px across, share its label... */
+const NEAR_X = 48;
+/** ...and in px up or down. */
+const NEAR_Y = LABEL_H * 3;
+/** A dot's half-size in px, kept clear by labels. */
+const DOT_HALF = 6;
+
+/**
+ * Which marks get a label, and where. Marks go furthest out first; a mark near one already
+ * labelled (within `NEAR_X` across and `NEAR_Y` up or down, a spike a few readings wide or two
+ * series spiking together) shares that label and keeps only its dot. A label must sit inside the
+ * plot clear of every dot, every earlier label and the `obstacles`; one that can't is left out
+ * (the dot still names its value for screen readers and on hover). At most `max` labels.
+ * Returns the index into `marks` and the placement of each label, in order.
+ */
+export function pickLabels(
+ marks: readonly MarkSpot[],
+ texts: readonly string[],
+ width: number,
+ height: number,
+ obstacles: readonly Box[] = [],
+ max = MAX_LABELS,
+): { index: number; spec: LabelSpec; placed: PlacedLabel }[] {
+ const order = marks.map((_, i) => i).sort((a, b) => Math.abs(marks[b].z) - Math.abs(marks[a].z));
+ const dots: Box[] = marks.map((m) => ({
+ l: m.x * width - DOT_HALF,
+ r: m.x * width + DOT_HALF,
+ t: m.y * height - DOT_HALF,
+ b: m.y * height + DOT_HALF,
+ }));
+ const leaders: number[] = [];
+ const taken: Box[] = [...obstacles];
+ const out: { index: number; spec: LabelSpec; placed: PlacedLabel }[] = [];
+ for (const i of order) {
+ if (out.length >= max) break;
+ const m = marks[i];
+ const near = leaders.some(
+ (j) => Math.abs((marks[j].x - m.x) * width) < NEAR_X && Math.abs((marks[j].y - m.y) * height) < NEAR_Y,
+ );
+ if (near) continue;
+ leaders.push(i);
+ const spec: LabelSpec = { x: m.x, y: m.y, text: texts[i], prefer: m.z > 0 ? 'above' : 'below', dot: true };
+ const others = dots.filter((_, k) => k !== i);
+ const [placed] = placeLabels([spec], width, height, [...taken, ...others]);
+ const box = labelBox(spec, placed, width, height);
+ const inside = box.t >= 0 && box.b <= height && box.l >= 0 && box.r <= width;
+ if (!inside || taken.some((b) => overlaps(b, box)) || others.some((b) => overlaps(b, box))) continue;
+ taken.push(box);
+ out.push({ index: i, spec, placed });
+ }
+ return out;
+}
+
+/**
+ * The band of median ± `sigma` deviations as SVG path data: one closed shape per unbroken stretch
+ * of judged readings, the top edge left to right and the bottom back.
+ */
+export function bandPath(
+ stats: readonly (RollingStat | null)[],
+ sigma: number,
+ x: (t: number) => number,
+ y: (v: number) => number,
+): string {
+ const f = (n: number) => Math.round(n * 10) / 10;
+ let d = '';
+ let run: RollingStat[] = [];
+ const close = () => {
+ if (run.length >= 2) {
+ const top = run.map((s, i) => `${i ? 'L' : 'M'}${f(x(s.t))},${f(y(s.mid + sigma * s.sd))}`).join('');
+ const bottom = [...run]
+ .reverse()
+ .map((s) => `L${f(x(s.t))},${f(y(s.mid - sigma * s.sd))}`)
+ .join('');
+ d += `${top}${bottom}Z`;
+ }
+ run = [];
+ };
+ for (const s of stats) {
+ if (s === null) close();
+ else run.push(s);
+ }
+ close();
+ return d;
+}
+
+/** Every `step`-th stat, so a band over thousands of readings stays a few hundred points. */
+function thin(stats: (RollingStat | null)[], max: number): (RollingStat | null)[] {
+ if (stats.length <= max) return stats;
+ const step = Math.ceil(stats.length / max);
+ return stats.filter((_, i) => i % step === 0 || i === stats.length - 1);
+}
+
+/* ---------------------------------------------------------------- drawing ---------------------------------------------------------------- */
+
+export interface AnomalyInput {
+ ctx: ChartContext;
+ series: readonly ChartSeries[];
+ scales: PlotScales;
+ range: Range;
+ /** The plot's size in px, for keeping labels inside it. */
+ width: number;
+ height: number;
+ /** Parts of the plot labels keep clear of, in px (a header laid over it). */
+ obstacles?: Box[];
+}
+
+export interface AnomalyLayer {
+ /** The shaded bands, for the plot's SVG behind the lines. */
+ behind: SVGTemplateResult | typeof nothing;
+ /** The markers and labels, in HTML over the plot. */
+ overlay: TemplateResult | typeof nothing;
+}
+
+const pct = (n: number) => `${Math.round(n * 10000) / 100}%`;
+
+/**
+ * Anomaly bands and markers for each series of a history chart, when the card asks for them
+ * (`anomalies: true`). The window is the card's, or a twelfth of the span drawn.
+ */
+export function anomalyLayer(input: AnomalyInput): AnomalyLayer {
+ const { ctx, scales } = input;
+ const options = anomalyOptions(ctx.raw);
+ if (!options) return { behind: nothing, overlay: nothing };
+ const window = options.window ?? Math.max(60_000, (input.range.end - input.range.start) * AUTO_WINDOW);
+ const color = baseColor(options.color);
+ const bands: SVGTemplateResult[] = [];
+ const marks: { s: ChartSeries; a: RollingStat; x: number; y: number }[] = [];
+ for (const s of input.series) {
+ const stats = rollingStats(s.points, window);
+ if (options.band) {
+ const d = bandPath(thin(stats, 600), options.sigma, scales.x, scales.y);
+ if (d) bands.push(svg` `);
+ }
+ for (const a of anomaliesOf(stats, options.sigma).slice(0, MAX_MARKERS)) {
+ const x = scales.x(a.t) / VIEW_W;
+ const y = scales.y(a.v) / VIEW_H;
+ if (x >= 0 && x <= 1 && y >= 0 && y <= 1) marks.push({ s, a, x, y });
+ }
+ }
+ if (bands.length === 0 && marks.length === 0) return { behind: nothing, overlay: nothing };
+ marks.sort((p, q) => Math.abs(q.a.z) - Math.abs(p.a.z));
+ const texts = marks.map((m) => zText(m.a.z, ctx.hass));
+ const labels = pickLabels(
+ marks.map((m) => ({ x: m.x, y: m.y, z: m.a.z })),
+ texts,
+ input.width,
+ input.height,
+ input.obstacles,
+ );
+ const describe = (m: (typeof marks)[number]) =>
+ localize(ctx.hass, 'anomaly_title', {
+ name: m.s.entity.name,
+ value: withUnit(formatNumber(m.a.v, m.s.entity.decimals, ctx.hass), m.s.entity.unit),
+ sigma: zText(m.a.z, ctx.hass),
+ });
+ const overlay =
+ marks.length === 0
+ ? nothing
+ : html`
+ ${labels.map(({ index, placed }) => {
+ const m = marks[index];
+ const { side, align, tier } = placed;
+ const across = align === 'start' ? 'left:0' : align === 'end' ? 'right:0' : `left:${pct(m.x)}`;
+ return html`${texts[index]} `;
+ })}
+ ${marks.map(
+ (m) =>
+ html` `,
+ )}
+
`;
+ return {
+ behind: bands.length ? svg`${bands} ` : nothing,
+ overlay,
+ };
+}
+
+export const anomalyStyles = css`
+ .plot .anomaly-band {
+ opacity: 0.13;
+ stroke: none;
+ }
+ .anomaly-layer {
+ position: absolute;
+ inset: 0;
+ pointer-events: none;
+ }
+ .anomaly-dot {
+ position: absolute;
+ width: 9px;
+ height: 9px;
+ border-radius: 50%;
+ background: var(--cd-anomaly);
+ border: 1.5px solid var(--card-background-color, #fff);
+ transform: translate(-50%, -50%);
+ }
+ .anomaly-label {
+ position: absolute;
+ height: ${LABEL_H}px;
+ line-height: ${LABEL_H}px;
+ padding: 0 5px;
+ box-sizing: border-box;
+ border-radius: 9px;
+ font-size: 11px;
+ font-weight: 500;
+ white-space: nowrap;
+ font-variant-numeric: tabular-nums;
+ color: color-mix(in srgb, var(--cd-anomaly) 70%, var(--primary-text-color));
+ background: color-mix(in srgb, var(--card-background-color, #fff) 85%, transparent);
+ transform: translateY(var(--dy));
+ }
+ .anomaly-label.above {
+ --dy: calc(-100% - 8px);
+ }
+ .anomaly-label.below {
+ --dy: 8px;
+ }
+ .anomaly-label.above.far {
+ --dy: calc(-200% - 10px);
+ }
+ .anomaly-label.below.far {
+ --dy: calc(100% + 10px);
+ }
+ .anomaly-label.center {
+ transform: translate(-50%, var(--dy));
+ }
+`;
+
+/* ---------------------------------------------------------------- editor ---------------------------------------------------------------- */
+
+export const ANOMALY_FIELDS: FieldBinding[] = [
+ { name: 'anomalies', path: ['anomalies'], default: false },
+ { name: 'anomalies_window', path: ['anomalies_window'], default: 'auto' },
+ { name: 'anomalies_sigma', path: ['anomalies_sigma'], default: DEFAULT_SIGMA },
+ { name: 'anomalies_color', path: ['anomalies_color'], default: DEFAULT_ANOMALY_COLOR },
+ { name: 'anomalies_band', path: ['anomalies_band'], default: true },
+];
+
+/** Part of the Chart section's cache key: whether anomalies are on. */
+export const anomalyVariant = (config: CardConfig | undefined) =>
+ (config as Raw | undefined)?.anomalies === true ? 'anomalies' : '';
+
+/** The switch, then the window, sigma, colour and band once it is on (cache under `anomalyVariant`). */
+export function anomalySchema(config: CardConfig | undefined) {
+ return [
+ { name: 'anomalies', selector: { boolean: {} } },
+ ...(anomalyVariant(config)
+ ? [
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'anomalies_window', selector: { text: {} } },
+ { name: 'anomalies_sigma', selector: { number: { min: 0.5, max: 6, step: 0.1, mode: 'box' } } },
+ { name: 'anomalies_color', selector: { text: {} } },
+ { name: 'anomalies_band', selector: { boolean: {} } },
+ ],
+ },
+ ]
+ : []),
+ ];
+}
diff --git a/src/chart/chord.ts b/src/chart/chord.ts
new file mode 100644
index 0000000..f2779ad
--- /dev/null
+++ b/src/chart/chord.ts
@@ -0,0 +1,158 @@
+/**
+ * Chord diagram maths: nodes round a circle, each arc as long as everything flowing in and out of
+ * it, and a ribbon per flow joining the two ends. Angles are degrees clockwise from 12 o'clock, as
+ * in `polar` and `arcPath`. Pure functions, so the style only has to draw what comes back.
+ */
+import { polar } from '../geometry';
+import { flowValue } from './sankey';
+import type { Flow } from './sankey';
+
+export type ChordSort = 'none' | 'ascending' | 'descending';
+
+export interface ChordNode {
+ name: string;
+ /** Order of first appearance in the flows, for its colour. */
+ order: number;
+ in: number;
+ out: number;
+ /** Everything flowing in and out: the arc's length. */
+ total: number;
+ start: number;
+ end: number;
+}
+
+/** Where one end of a ribbon sits on its node's arc. */
+export interface ChordEnd {
+ start: number;
+ end: number;
+}
+
+export interface ChordRibbon {
+ flow: Flow;
+ value: number;
+ source: ChordNode;
+ target: ChordNode;
+ s: ChordEnd;
+ t: ChordEnd;
+}
+
+export interface ChordLayout {
+ nodes: ChordNode[];
+ ribbons: ChordRibbon[];
+ /** The sum of every flow drawn. */
+ total: number;
+}
+
+/**
+ * Flows with both ends, two different nodes and something flowing. Unlike a Sankey, a chord can
+ * go both ways between two nodes and round in a loop, so nothing else is turned away.
+ */
+export function chordFlows(flows: Flow[]): Flow[] {
+ return flows.filter((f) => f.from && f.to && f.from !== f.to && flowValue(f.value) > 0);
+}
+
+/**
+ * Lay the flows out round a circle with `pad` degrees between nodes. Nodes come in the order they
+ * first appear (or by total when sorted). On each node the ribbon ends are stacked so the one to
+ * the nearest node clockwise is at the clockwise end, which keeps ribbons from crossing where
+ * they need not; where a node sends and receives to the same node, what it sends comes first.
+ */
+export function chordLayout(flows: Flow[], pad: number, sort: ChordSort = 'none'): ChordLayout {
+ const kept = chordFlows(flows);
+ const byName = new Map();
+ const node = (name: string) => {
+ let n = byName.get(name);
+ if (!n) {
+ n = { name, order: byName.size, in: 0, out: 0, total: 0, start: 0, end: 0 };
+ byName.set(name, n);
+ }
+ return n;
+ };
+ for (const f of kept) {
+ const v = flowValue(f.value);
+ node(f.from).out += v;
+ node(f.to).in += v;
+ }
+ const nodes = [...byName.values()];
+ for (const n of nodes) n.total = n.in + n.out;
+ if (sort !== 'none') {
+ const dir = sort === 'ascending' ? 1 : -1;
+ nodes.sort((a, b) => dir * (a.total - b.total) || a.order - b.order);
+ }
+ const total = kept.reduce((s, f) => s + flowValue(f.value), 0);
+ if (!nodes.length) return { nodes, ribbons: [], total };
+ // Gaps may take at most half the circle, so a long list of nodes still has arcs to show.
+ const gap = Math.min(Math.max(0, pad), 180 / nodes.length);
+ const room = 360 - gap * nodes.length;
+ const sum = total * 2;
+ let at = gap / 2;
+ for (const n of nodes) {
+ n.start = at;
+ n.end = at + (n.total / sum) * room;
+ at = n.end + gap;
+ }
+ const place = new Map(nodes.map((n, i) => [n, i]));
+ const ribbons: ChordRibbon[] = kept.map((flow) => ({
+ flow,
+ value: flowValue(flow.value),
+ source: byName.get(flow.from)!,
+ target: byName.get(flow.to)!,
+ s: { start: 0, end: 0 },
+ t: { start: 0, end: 0 },
+ }));
+ for (const n of nodes) {
+ const here = place.get(n)!;
+ const ends = ribbons.flatMap((r, i) => {
+ const out: { r: ChordRibbon; i: number; send: boolean; other: ChordNode }[] = [];
+ if (r.source === n) out.push({ r, i, send: true, other: r.target });
+ if (r.target === n) out.push({ r, i, send: false, other: r.source });
+ return out;
+ });
+ const steps = (o: ChordNode) => (place.get(o)! - here + nodes.length) % nodes.length;
+ ends.sort((a, b) => steps(b.other) - steps(a.other) || Number(b.send) - Number(a.send) || a.i - b.i);
+ const scale = n.total > 0 ? (n.end - n.start) / n.total : 0;
+ let a = n.start;
+ for (const e of ends) {
+ const end = { start: a, end: a + e.r.value * scale };
+ if (e.send) e.r.s = end;
+ else e.r.t = end;
+ a = end.end;
+ }
+ }
+ return { nodes, ribbons, total };
+}
+
+const f2 = (n: number) => (Math.abs(n) < 0.005 ? 0 : n).toFixed(2);
+
+/** An arc's point list helper: `A` command to the point at `deg`. */
+function arcTo(cx: number, cy: number, r: number, from: number, to: number): string {
+ const [x, y] = polar(cx, cy, r, to);
+ return `A${f2(r)} ${f2(r)} 0 ${to - from > 180 ? 1 : 0} 1 ${f2(x)} ${f2(y)}`;
+}
+
+/**
+ * A ribbon's outline at radius `r`: along the source end, curving through the middle to the target
+ * end, along it, and back through the middle to where it began.
+ */
+export function ribbonPath(cx: number, cy: number, r: number, s: ChordEnd, t: ChordEnd): string {
+ const [sx, sy] = polar(cx, cy, r, s.start);
+ const [tx, ty] = polar(cx, cy, r, t.start);
+ return (
+ `M${f2(sx)} ${f2(sy)} ${arcTo(cx, cy, r, s.start, s.end)} ` +
+ `Q${f2(cx)} ${f2(cy)} ${f2(tx)} ${f2(ty)} ${arcTo(cx, cy, r, t.start, t.end)} ` +
+ `Q${f2(cx)} ${f2(cy)} ${f2(sx)} ${f2(sy)}Z`
+ );
+}
+
+/** A filled ring segment from radius `r0` out to `r1`, between two angles. */
+export function ringPath(cx: number, cy: number, r0: number, r1: number, start: number, end: number): string {
+ const [ax, ay] = polar(cx, cy, r1, start);
+ const [bx, by] = polar(cx, cy, r0, end);
+ const large = end - start > 180 ? 1 : 0;
+ const [ex, ey] = polar(cx, cy, r1, end);
+ const [sx, sy] = polar(cx, cy, r0, start);
+ return (
+ `M${f2(ax)} ${f2(ay)} A${f2(r1)} ${f2(r1)} 0 ${large} 1 ${f2(ex)} ${f2(ey)} ` +
+ `L${f2(bx)} ${f2(by)} A${f2(r0)} ${f2(r0)} 0 ${large} 0 ${f2(sx)} ${f2(sy)}Z`
+ );
+}
diff --git a/src/chart/columns.ts b/src/chart/columns.ts
index afa0aba..1f4eaa1 100644
--- a/src/chart/columns.ts
+++ b/src/chart/columns.ts
@@ -37,6 +37,8 @@ export function autoGroupUnit(period: Period): GroupUnit {
/** A meter that counts up (energy, water, gas): its columns should show how much it went up. */
export function isMeter(e: ResolvedEntity): boolean {
if (e.config.attribute) return false;
+ // Drawn as its rate of change, a meter reads like any measurement.
+ if ((e.config as { transform?: string }).transform === 'derivative') return false;
const stateClass = e.stateObj?.attributes?.state_class;
return stateClass === 'total_increasing' || stateClass === 'total';
}
diff --git a/src/chart/compare-ghost.ts b/src/chart/compare-ghost.ts
new file mode 100644
index 0000000..95de0ee
--- /dev/null
+++ b/src/chart/compare-ghost.ts
@@ -0,0 +1,375 @@
+import { css, html, nothing, svg } from 'lit';
+import type { SVGTemplateResult, TemplateResult } from 'lit';
+import type { FieldBinding } from '../editor/schemas';
+import { key } from '../history/fetch';
+import { PERIOD_MS, groupHistory, groupStatistics, statisticsQueryFor } from '../history/group';
+import { HistoryStore } from '../history/store';
+import { addUnits, boundaries, startOf } from '../history/timezone';
+import type { CalendarUnit, Zone } from '../history/timezone';
+import type { Point } from '../history/types';
+import { localize } from '../localize';
+import type { ChartContext } from '../styles/index';
+import type { CardConfig, HomeAssistant } from '../types';
+import { convertPoints } from '../units';
+import { downsample } from './downsample';
+import { seriesTransform } from './frame';
+import type { ChartSeries, HistoryFrame } from './frame';
+import type { PlotScales } from './grid';
+import { runPath, runs } from './paths';
+
+/*
+ * Compare-period ghosts: the same entities over an earlier span (yesterday, a week ago, a year
+ * ago) drawn faintly behind the current lines, moved forward so each earlier moment sits over the
+ * same time of day (or week, or year) now. Unlike `period.offset` or the previous / next buttons,
+ * which show an earlier span instead, the chart still shows now; the ghosts are an overlay.
+ */
+
+/** How the ghosts are coloured: grey, or a faded copy of each series' own colour. */
+export const COMPARE_STYLES = ['grey', 'series'] as const;
+export type CompareStyle = (typeof COMPARE_STYLES)[number];
+
+/** Offsets the editor offers; any `h`, `d`, `w`, `mo` or `y` can be typed. */
+export const COMPARE_PRESETS = ['1d', '7d', '28d', '1y'];
+/** At most this many offsets: more would be a smear. */
+export const MAX_COMPARE = 4;
+
+const UNITS: Record = { h: 'hour', d: 'day', w: 'week', mo: 'month', y: 'year' };
+const OFFSET = /^(\d+)\s*(h|d|w|mo|y)$/;
+
+/** One earlier span: how far back, by the clock or the calendar. */
+export interface CompareOffset {
+ text: string;
+ n: number;
+ unit: CalendarUnit;
+}
+
+/** An offset as written ("1d", "7d", "1y", "3mo", "12h"), or undefined if unreadable or zero. */
+export function parseOffset(raw: unknown): CompareOffset | undefined {
+ if (typeof raw !== 'string') return undefined;
+ const text = raw.trim();
+ const m = OFFSET.exec(text);
+ if (!m || Number(m[1]) <= 0) return undefined;
+ return { text, n: Number(m[1]), unit: UNITS[m[2]] };
+}
+
+type Raw = CardConfig & { compare?: unknown; compare_style?: unknown };
+
+/** The offsets as a list (one may be written alone). */
+function offsetList(raw: CardConfig): unknown[] {
+ const c = (raw as Raw).compare;
+ return c === undefined ? [] : Array.isArray(c) ? c : [c];
+}
+
+/** Throw a readable error for bad compare options. */
+export function validateCompare(raw: CardConfig): void {
+ const list = offsetList(raw);
+ const bad = list.find((o) => parseOffset(o) === undefined);
+ if (bad !== undefined) throw new Error(`"compare" has "${String(bad)}": use 1d, 7d, 1y, 3mo or 12h`);
+ if (list.length > MAX_COMPARE) throw new Error(`"compare" can have at most ${MAX_COMPARE} offsets`);
+ const style = (raw as Raw).compare_style;
+ if (style !== undefined && !COMPARE_STYLES.includes(style as CompareStyle)) {
+ throw new Error(`"compare_style" must be one of: ${COMPARE_STYLES.join(', ')}`);
+ }
+}
+
+/** The card's offsets, in order, without repeats. Call after validating. */
+export function compareOffsets(raw: CardConfig): CompareOffset[] {
+ const seen = new Set();
+ return offsetList(raw)
+ .map(parseOffset)
+ .filter(
+ (o): o is CompareOffset => o !== undefined && !seen.has(`${o.n}${o.unit}`) && !!seen.add(`${o.n}${o.unit}`),
+ );
+}
+
+/** `t` moved back by an offset, keeping the wall-clock time for days and longer. */
+export function shiftBack(t: number, offset: CompareOffset, zone: Zone): number {
+ return addUnits(offset.unit, t, -offset.n, zone);
+}
+
+/** What an offset is called: "Yesterday", "Last week", "Last year", or "3 days earlier". */
+export function offsetLabel(offset: CompareOffset, hass?: HomeAssistant): string {
+ const { n, unit } = offset;
+ if (unit === 'day' && n === 1) return localize(hass, 'period_yesterday');
+ if ((unit === 'day' && n === 7) || (unit === 'week' && n === 1)) return localize(hass, 'period_last_week');
+ if (unit === 'month' && n === 1) return localize(hass, 'period_last_month');
+ if ((unit === 'year' && n === 1) || (unit === 'month' && n === 12)) return localize(hass, 'period_last_year');
+ return localize(hass, `compare_${unit}s_earlier`, { n });
+}
+
+/* ------------------------------------------------------------------ loading ------------------------------------------------------------------ */
+
+const stores = new WeakMap>();
+
+function storeFor(ctx: ChartContext, k: string): HistoryStore {
+ let map = stores.get(ctx.host);
+ if (!map) {
+ map = new Map();
+ stores.set(ctx.host, map);
+ }
+ let store = map.get(k);
+ if (!store) {
+ store = new HistoryStore(ctx.requestUpdate);
+ map.set(k, store);
+ }
+ return store;
+}
+
+/** Pause a card's ghost history when it leaves the page; it is kept for when it comes back. */
+export function stopCompare(host: HTMLElement): void {
+ for (const store of stores.get(host)?.values() ?? []) store.pause();
+}
+
+const HOUR = 3_600_000;
+const DAY = 24 * HOUR;
+
+/**
+ * A function moving an instant of the earlier span forward by `offset` to the same wall-clock time
+ * in `zone` (the inverse of `shiftBack`). By the clock (hours) it is one fixed amount. By the
+ * calendar it is worked out per day: a day of 24 hours whose counterpart is also 24 hours moves
+ * by one amount, found once; where either day has a clock change each instant is moved by its
+ * own wall-clock time. A time that never happens on the later day (the clocks went forward)
+ * lands on the moment they jumped; one that happens twice lands on the first.
+ */
+export function forwardMapper(offset: CompareOffset, zone: Zone): (t: number) => number {
+ if (offset.unit === 'hour') return (t) => t + offset.n * HOUR;
+ const exact = (t: number) => addUnits(offset.unit, t, offset.n, zone) + (((t % 1000) + 1000) % 1000);
+ // The day of the earlier span last asked about, and the one amount its instants move by (null:
+ // each on its own). Points come in time order, so the day is nearly always the last one.
+ let lo = Infinity;
+ let hi = -Infinity;
+ let delta: number | null = null;
+ return (t) => {
+ if (t < lo || t >= hi) {
+ lo = startOf('day', t, zone);
+ hi = addUnits('day', lo, 1, zone);
+ const later = addUnits(offset.unit, lo, offset.n, zone);
+ const laterEnd = addUnits('day', later, 1, zone);
+ // Both days 24 hours long: no clock change on either, so every instant moves alike.
+ delta = hi - lo === DAY && laterEnd - later === DAY ? later - lo : null;
+ }
+ return delta === null ? exact(t) : t + delta;
+ };
+}
+
+/**
+ * Move an earlier span's points forward over the current one, each to the same wall-clock time
+ * (see `forwardMapper`); grouped points move their ends too. A point landing on or before the
+ * one drawn before it is left out, so the line never runs backwards: the second run of the hour
+ * that happens twice when the clocks go back, and the hour the clocks skip folded onto one moment.
+ */
+export function shiftForward(points: readonly Point[], offset: CompareOffset, zone: Zone): Point[] {
+ const move = forwardMapper(offset, zone);
+ const out: Point[] = [];
+ let last = -Infinity;
+ for (const p of points) {
+ const t = move(p.t);
+ if (t <= last) continue;
+ last = t;
+ out.push({ ...p, t, ...(p.end !== undefined ? { end: Math.max(t, move(p.end)) } : {}) });
+ }
+ return out;
+}
+
+/** One ghost: a series' readings over an earlier span, moved over the current one. */
+export interface Ghost extends ChartSeries {
+ /** Which offset (0 is the first listed), for its dash pattern. */
+ ghost: number;
+ offset: CompareOffset;
+}
+
+/**
+ * The card's ghosts for a history frame: each offset's span loaded (once, then kept; a past span
+ * reloads only when the chart's own span has moved on), grouped as the frame is, and moved
+ * forward over the frame's range. Empty while loading or after a failure: the chart draws without
+ * them rather than not at all.
+ */
+export function compareGhosts(ctx: ChartContext, frame: HistoryFrame, now = Date.now()): Ghost[] {
+ const offsets = compareOffsets(ctx.raw);
+ if (offsets.length === 0) return [];
+ const style = ((ctx.raw as Raw).compare_style as CompareStyle | undefined) ?? 'grey';
+ const requests = ctx.items.map((e) => ({ entity: e.entityId, attribute: e.config.attribute }));
+ const { group, zone, source } = frame;
+ const ghosts: Ghost[] = [];
+ offsets.forEach((offset, o) => {
+ const start = shiftBack(frame.range.start, offset, zone);
+ const end = shiftBack(frame.range.end, offset, zone);
+ // Readings stop at the present, which a short offset's span may reach.
+ const until = Math.min(end, now);
+ if (start >= now) return;
+ const statistics =
+ group && source === 'statistics' ? statisticsQueryFor(group, zone, ctx.hass.config?.time_zone) : undefined;
+ const load = statistics ? { start: start - PERIOD_MS[statistics.period], end } : { start, end };
+ const loaded = storeFor(ctx, offset.text).get(ctx.hass, requests, load, source, { live: false, statistics });
+ if (loaded.status !== 'ready') return;
+ const bounds = group ? boundaries(group.unit, start, end, zone) : [];
+ // `s.index` is the series' place among the card's entities; the frame may leave some out
+ // (names that toggle series hide them), so its position in `frame.series` is not.
+ frame.series.forEach((s) => {
+ // As the series itself: in the shown unit, then its transform (a running total starts at
+ // the earlier span's own start). The entity as configured, not the series' transformed copy.
+ const item = ctx.items[s.index];
+ let points = convertPoints(loaded.data.get(key(requests[s.index])) ?? [], item.conversion);
+ points = seriesTransform(item, points, { start, end }, until, zone, ctx.hass).points;
+ const last = points[points.length - 1];
+ if (group) {
+ points =
+ source === 'statistics'
+ ? groupStatistics(points, bounds, group.aggregate, until)
+ : groupHistory(points, bounds, group.aggregate, until);
+ } else if (source === 'history' && last && last.v !== null && last.t < until) {
+ points = [...points, { t: until, v: last.v }];
+ }
+ if (!points.some((p) => p.v !== null)) return;
+ const label = offsetLabel(offset, ctx.hass);
+ ghosts.push({
+ ...s,
+ points: shiftForward(points, offset, zone),
+ color: style === 'grey' ? 'var(--secondary-text-color)' : s.color,
+ entity: {
+ ...s.entity,
+ name:
+ frame.series.length > 1
+ ? localize(ctx.hass, 'compare_series', { name: s.entity.name, offset: label })
+ : label,
+ },
+ dash: o > 0,
+ ghost: o,
+ offset,
+ });
+ });
+ });
+ return ghosts;
+}
+
+/* ---------------------------------------------------------------- drawing ---------------------------------------------------------------- */
+
+/** Dash patterns, one per offset: solid, dashed, dotted, dash-dot. */
+const DASHES = ['', '6 4', '1.5 3.5', '8 3 1.5 3'];
+
+/** The ghost lines, faint and thin, for the plot's SVG behind the current lines. */
+export function ghostLines(ghosts: readonly Ghost[], scales: PlotScales): SVGTemplateResult | typeof nothing {
+ if (ghosts.length === 0) return nothing;
+ return svg`${ghosts.map((g) => {
+ const d = runs(downsample(g.points, 500))
+ .map((run) =>
+ runPath(
+ run.map((p) => [scales.x(p.t), scales.y(p.v as number)]),
+ g.curve,
+ ),
+ )
+ .join('');
+ return svg` `;
+ })} `;
+}
+
+/** A key naming each offset beside a sample of its line, for the header. */
+export function compareKey(ctx: ChartContext, ghosts: readonly Ghost[]): TemplateResult | typeof nothing {
+ if (ghosts.length === 0) return nothing;
+ const style = ((ctx.raw as Raw).compare_style as CompareStyle | undefined) ?? 'grey';
+ const seen = new Set();
+ const offsets = ghosts.filter((g) => !seen.has(g.ghost) && !!seen.add(g.ghost));
+ return html`
+ ${offsets.map(
+ (g) =>
+ html`
+ ${offsetLabel(g.offset, ctx.hass)} `,
+ )}
+
`;
+}
+
+export const compareStyles = css`
+ .plot .ghost-line {
+ stroke-width: 1.5;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ opacity: 0.55;
+ }
+ .compare-key {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 2px 12px;
+ padding: 0 0 6px;
+ font-size: 0.75em;
+ color: var(--secondary-text-color);
+ }
+ .compare-item {
+ display: inline-flex;
+ align-items: center;
+ gap: 4px;
+ white-space: nowrap;
+ }
+ .compare-item svg {
+ width: 18px;
+ height: 6px;
+ overflow: visible;
+ }
+ .compare-item line {
+ stroke-width: 1.5;
+ stroke-linecap: round;
+ opacity: 0.8;
+ }
+`;
+
+/* ---------------------------------------------------------------- editor ---------------------------------------------------------------- */
+
+export const COMPARE_FIELDS: FieldBinding[] = [
+ { name: 'compare', path: ['compare'], default: [] },
+ { name: 'compare_style', path: ['compare_style'], default: 'grey' },
+];
+
+/** Part of the Chart section's cache key: whether any offset is set. */
+export const compareVariant = (config: CardConfig | undefined) =>
+ config && offsetList(config).length > 0 ? 'compare' : '';
+
+/** The offsets to draw, then their colouring once there are any (cache under `compareVariant`). */
+export function compareSchema(hass: HomeAssistant | undefined, config: CardConfig | undefined) {
+ const label = (text: string) => offsetLabel(parseOffset(text)!, hass);
+ return [
+ {
+ name: 'compare',
+ selector: {
+ select: {
+ multiple: true,
+ custom_value: true,
+ mode: 'dropdown',
+ options: COMPARE_PRESETS.map((value) => ({ value, label: label(value) })),
+ },
+ },
+ },
+ ...(compareVariant(config)
+ ? [
+ {
+ name: 'compare_style',
+ selector: {
+ select: {
+ mode: 'dropdown',
+ options: COMPARE_STYLES.map((value) => ({
+ value,
+ label: localize(hass, `editor_compare_style_${value}`),
+ })),
+ },
+ },
+ },
+ ]
+ : []),
+ ];
+}
diff --git a/src/chart/condition-strip.ts b/src/chart/condition-strip.ts
new file mode 100644
index 0000000..8107166
--- /dev/null
+++ b/src/chart/condition-strip.ts
@@ -0,0 +1,186 @@
+import { css, html, nothing, svg } from 'lit';
+import type { SVGTemplateResult, TemplateResult } from 'lit';
+import { conditionOf, flips, heldSpans, sameCondition, stripOn } from '../history/condition';
+import type { Condition } from '../history/condition';
+import type { Range } from '../history/types';
+import { formatNumber } from '../format';
+import { localize } from '../localize';
+import type { ChartContext } from '../styles/index';
+import type { HomeAssistant } from '../types';
+import { downsample } from './downsample';
+import { VIEW_W } from './frame';
+import type { ChartSeries, HistoryFrame } from './frame';
+import type { PlotScales } from './grid';
+import { runPath, runs } from './paths';
+
+/** Points kept per faint line after thinning, as for the line itself. */
+const MAX_POINTS = 500;
+/** One strip row's height and the space between rows and above them, px (keep in step with the CSS). */
+const ROW_H = 12;
+const ROW_GAP = 3;
+const STRIP_TOP = 6;
+
+/**
+ * The faint line of every reading behind each conditional series (`ChartSeries.hidden`), so
+ * what the condition hides still shows as a trace. Series without a condition draw nothing.
+ */
+export function ghostLines(series: readonly ChartSeries[], scales: PlotScales): SVGTemplateResult | typeof nothing {
+ const paths = series
+ .filter((s) => s.hidden && s.hidden.length > 0)
+ .map((s) => {
+ const d = runs(downsample(s.hidden!, MAX_POINTS))
+ .map((run) =>
+ runPath(
+ run.map((p) => [scales.x(p.t), scales.y(p.v as number)]),
+ s.curve,
+ ),
+ )
+ .join('');
+ return svg` `;
+ });
+ return paths.length ? svg`${paths} ` : nothing;
+}
+
+const decimalsOf = (n: number) => Math.min(3, (String(n).split('.')[1] ?? '').length);
+
+/** A condition in words: "John: Home", "Heat pump power > 50", "18 < Flow temperature < 22". */
+export function conditionText(c: Condition, hass: HomeAssistant): string {
+ const stateObj = hass.states[c.entity];
+ const name = String(stateObj?.attributes?.friendly_name ?? c.entity);
+ const num = (n: number) => formatNumber(n, decimalsOf(n), hass);
+ const parts: string[] = [];
+ if (c.state) {
+ const words = [c.state]
+ .flat()
+ .map((s) => (stateObj ? (hass.formatEntityState?.({ ...stateObj, state: s }, s) ?? s) : s));
+ parts.push(`${name}: ${words.join(' / ')}`);
+ }
+ if (c.above !== undefined && c.below !== undefined) parts.push(`${num(c.above)} < ${name} < ${num(c.below)}`);
+ else if (c.above !== undefined) parts.push(`${name} > ${num(c.above)}`);
+ else if (c.below !== undefined) parts.push(`${name} < ${num(c.below)}`);
+ return parts.join(', ');
+}
+
+/** What a chart passes to `chartArea` for the strip: the rows under the plot, and the frame's class and height. */
+export interface StripParts {
+ below: TemplateResult | typeof nothing;
+ wrapClasses: string;
+ wrapStyle: string;
+}
+
+/**
+ * The strip under the plot (`when_strip: true`): one row per distinct condition, filled where
+ * it held across `view`, in the colour of the first series it governs. With an `overview` strip,
+ * both stack under the plot. Without the option or any condition it is just the overview.
+ */
+export function conditionStrip(
+ ctx: ChartContext,
+ frame: HistoryFrame,
+ view: Range,
+ scales: PlotScales,
+ overview: TemplateResult | typeof nothing = nothing,
+ now = Date.now(),
+): StripParts {
+ const plain: StripParts = { below: overview, wrapClasses: '', wrapStyle: '' };
+ if (!stripOn(ctx.raw) || !frame.conditions) return plain;
+ const rows: { c: Condition; color: string }[] = [];
+ for (const s of frame.series) {
+ const c = conditionOf(s.entity.config, ctx.raw);
+ if (c && !rows.some((r) => sameCondition(r.c, c))) rows.push({ c, color: s.color });
+ }
+ if (rows.length === 0) return plain;
+ const drawn = rows.map(({ c, color }) => {
+ const spans = heldSpans(flips(c, frame.conditions!.states.get(c.entity) ?? []), view, now);
+ const text = conditionText(c, ctx.hass);
+ const rects = spans.map(([a, b]) => {
+ const x = scales.x(a);
+ return svg` `;
+ });
+ return html`
+ ${rects}
+ ${text}
+
`;
+ });
+ const height = STRIP_TOP + rows.length * ROW_H + (rows.length - 1) * ROW_GAP;
+ return {
+ below: html`
+
${drawn}
+ ${overview}
+
`,
+ wrapClasses: `has-strip ${overview === nothing ? '' : 'strip-overview'}`,
+ wrapStyle: `--cd-strip:${height}px`,
+ };
+}
+
+export const conditionStyles = css`
+ .plot .ghost {
+ stroke: var(--secondary-text-color, #727272);
+ stroke-width: 1px;
+ stroke-opacity: 0.45;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ }
+ .plot-wrap.has-strip {
+ grid-template-rows: minmax(0, 1fr) auto auto;
+ }
+ /* The strip adds its own height, so the plot keeps its size. */
+ .frame .plot-wrap.has-strip.has-overview {
+ height: calc(180px + var(--cd-strip));
+ }
+ .frame.compact .plot-wrap.has-strip.has-overview {
+ height: calc(110px + var(--cd-strip));
+ }
+ .frame .plot-wrap.has-strip.strip-overview.has-overview {
+ height: calc(220px + var(--cd-strip));
+ }
+ .frame.compact .plot-wrap.has-strip.strip-overview.has-overview {
+ height: calc(140px + var(--cd-strip));
+ }
+ .cond-below {
+ grid-column: 2;
+ grid-row: 3;
+ min-width: 0;
+ }
+ .cond-strip {
+ display: flex;
+ flex-direction: column;
+ gap: 3px;
+ margin-top: 6px;
+ }
+ .cond-row {
+ position: relative;
+ height: 12px;
+ border-radius: 3px;
+ overflow: hidden;
+ background: color-mix(in srgb, var(--primary-text-color, #212121) 6%, transparent);
+ }
+ .cond-row svg {
+ position: absolute;
+ inset: 0;
+ width: 100%;
+ height: 100%;
+ }
+ .cond-row rect {
+ opacity: 0.5;
+ }
+ .cond-label {
+ position: absolute;
+ left: 4px;
+ top: 0;
+ max-width: calc(100% - 8px);
+ overflow: hidden;
+ text-overflow: ellipsis;
+ font-size: 9px;
+ line-height: 12px;
+ color: var(--primary-text-color, #212121);
+ white-space: nowrap;
+ pointer-events: none;
+ text-shadow:
+ 0 0 2px var(--card-background-color, #fff),
+ 0 0 2px var(--card-background-color, #fff);
+ }
+`;
diff --git a/src/chart/cycle.ts b/src/chart/cycle.ts
new file mode 100644
index 0000000..3caa434
--- /dev/null
+++ b/src/chart/cycle.ts
@@ -0,0 +1,132 @@
+import { wallTime } from '../history/timezone';
+import type { Zone } from '../history/timezone';
+import type { Point } from '../history/types';
+import { weekCells } from './heatmap-grid';
+
+/**
+ * The maths behind the cycle plot: readings folded into one small panel per part of a cycle
+ * (each weekday, each hour of the day, each day of the month), each panel a short line of values.
+ * No drawing here.
+ *
+ * - day_of_week: a panel per weekday, its line the average of each hour of that day over the
+ * span (every Monday 8:00 averaged into one point). Reads one-hour groups.
+ * - hour_of_day: a panel per hour of the day, its line that hour on each day of the span in turn
+ * (Cleveland's cycle plot): how 7:00 drifts through the weeks. Reads one-hour groups.
+ * - day_of_month: a panel per day of the month, its line that day in each month of the span.
+ * Reads one-day groups.
+ *
+ * All by the wall clock in the card's time zone.
+ */
+
+export const CYCLES = ['day_of_week', 'hour_of_day', 'day_of_month'] as const;
+export type Cycle = (typeof CYCLES)[number];
+
+/** One panel: a value per slot (null where nothing was read), in order. */
+export interface CyclePanel {
+ /** The panel's part of the cycle: weekday row (0 is the zone's first day), hour (0–23), or day of month (1–31). */
+ key: number;
+ values: (number | null)[];
+}
+
+export interface CycleData {
+ panels: CyclePanel[];
+ /** Slots along each panel: 24 hours, or the days (months) in the span. */
+ slots: number;
+ /**
+ * Hour of day / day number / month number of slot 0, so a slot can be named: for hour_of_day
+ * the first day (days since 1 Jan 1970), for day_of_month the first month (year × 12 + month − 1).
+ */
+ first: number;
+}
+
+const DAY_MS = 86_400_000;
+
+function dayNumber(t: number, timeZone: string): number {
+ const w = wallTime(t, timeZone);
+ return Math.round(Date.UTC(w.year, w.month - 1, w.day) / DAY_MS);
+}
+
+function monthNumber(t: number, timeZone: string): number {
+ const w = wallTime(t, timeZone);
+ return w.year * 12 + w.month - 1;
+}
+
+/** Fold the slot values of each panel, averaging two readings that land in one slot. */
+function fold(cells: { panel: number; slot: number; v: number }[], keys: number[], slots: number): CyclePanel[] {
+ const sums = keys.map(() => new Array(slots).fill(0));
+ const counts = keys.map(() => new Array(slots).fill(0));
+ for (const c of cells) {
+ if (c.slot < 0 || c.slot >= slots) continue;
+ sums[c.panel][c.slot] += c.v;
+ counts[c.panel][c.slot] += 1;
+ }
+ return keys.map((key, i) => ({
+ key,
+ values: sums[i].map((s, k) => (counts[i][k] ? s / counts[i][k] : null)),
+ }));
+}
+
+/**
+ * Grouped readings (`points`, one per hour or per day, gaps as null) folded into the cycle's
+ * panels. `range` is the span drawn: it sets how many days (months) the panels run across.
+ */
+export function cycleData(points: Point[], cycle: Cycle, zone: Zone, range: { start: number; end: number }): CycleData {
+ const tz = zone.timeZone;
+ if (cycle === 'day_of_week') {
+ const cells = weekCells(points, zone);
+ return {
+ panels: [0, 1, 2, 3, 4, 5, 6].map((row) => ({
+ key: row,
+ values: cells.slice(row * 24, row * 24 + 24).map((c) => c.v),
+ })),
+ slots: 24,
+ first: 0,
+ };
+ }
+ const known = points.filter((p): p is Point & { v: number } => p.v !== null);
+ // The span's last instant, not its end: a span ending at midnight doesn't reach the next day.
+ const last = Math.max(range.start, range.end - 1);
+ if (cycle === 'hour_of_day') {
+ const first = dayNumber(range.start, tz);
+ const slots = dayNumber(last, tz) - first + 1;
+ const cells = known.map((p) => ({ panel: wallTime(p.t, tz).hour, slot: dayNumber(p.t, tz) - first, v: p.v }));
+ return {
+ panels: fold(
+ cells,
+ Array.from({ length: 24 }, (_, h) => h),
+ slots,
+ ),
+ slots,
+ first,
+ };
+ }
+ const first = monthNumber(range.start, tz);
+ const slots = monthNumber(last, tz) - first + 1;
+ const cells = known.map((p) => ({ panel: wallTime(p.t, tz).day - 1, slot: monthNumber(p.t, tz) - first, v: p.v }));
+ return {
+ panels: fold(
+ cells,
+ Array.from({ length: 31 }, (_, d) => d + 1),
+ slots,
+ ),
+ slots,
+ first,
+ };
+}
+
+/** The plain average of a panel's known values, or undefined when it has none. */
+export function panelMean(values: (number | null)[]): number | undefined {
+ const known = values.filter((v): v is number => v !== null);
+ return known.length ? known.reduce((a, v) => a + v, 0) / known.length : undefined;
+}
+
+/**
+ * Columns for `count` panels on a card `width` px wide, each at least `minPx`: every panel in a
+ * row when they fit, else the most that fit, evened out so the last row isn't a lone panel.
+ */
+export function cycleColumns(count: number, width: number, minPx: number, gap = 4): number {
+ const fit = Math.max(1, Math.floor((width + gap) / (minPx + gap)));
+ if (fit >= count) return count;
+ const rows = Math.ceil(count / fit);
+ return Math.ceil(count / rows);
+}
diff --git a/src/chart/density.ts b/src/chart/density.ts
index 8e7daf0..68cac87 100644
--- a/src/chart/density.ts
+++ b/src/chart/density.ts
@@ -38,6 +38,23 @@ export function readingsOf(points: Point[], weighted: boolean, until: number): R
return out;
}
+/**
+ * The readings a strip plot or beeswarm draws as dots: one per reading taken in the period (not
+ * the value carried in, nor the copy at the right edge). A sensor that held one value for the
+ * whole span has none: Home Assistant's history then holds only the state it started the span
+ * with, carried in to its start. That sensor still read that value the whole time, as the line
+ * chart's flat line shows, so with `history` set its row gets that one reading, and `held` is
+ * its value, rather than reading as "No readings". Statistics always have a row per period, so
+ * a carried-in row there is the period before and is never held.
+ */
+export function dotReadings(points: Point[], history: boolean, until: number): { readings: Reading[]; held?: number } {
+ const all = readingsOf(points, history, until);
+ const readings = all.filter((r) => r.real).map((r) => ({ ...r, w: 1 }));
+ if (readings.length || !history) return { readings };
+ const carried = all.find((r) => !r.real);
+ return carried ? { readings: [{ ...carried, w: 1, real: true }], held: carried.v } : { readings };
+}
+
/** Readings sorted by value. */
export function byValue(readings: Reading[]): Reading[] {
return [...readings].sort((a, b) => a.v - b.v);
diff --git a/src/chart/error-bars.ts b/src/chart/error-bars.ts
new file mode 100644
index 0000000..31af91e
--- /dev/null
+++ b/src/chart/error-bars.ts
@@ -0,0 +1,174 @@
+import { css, html } from 'lit';
+import type { TemplateResult } from 'lit';
+import type { Aggregate } from '../history/group';
+import type { Point } from '../history/types';
+import type { CardConfig } from '../types';
+import { VIEW_H, VIEW_W } from './frame';
+import type { PlotScales } from './grid';
+
+/*
+ * Error bars on grouped columns: a whisker over each column showing how much the readings inside
+ * its group spread.
+ *
+ * - std: the mean ± one standard deviation of the readings that held in the group, each weighted
+ * by how long it held (the same weighting as the column's mean, so the whisker is centred on it).
+ * - ci95: the mean ± 1.96 × std / √n, n the readings in the group: a rough 95 % confidence
+ * interval for the mean. Sensor readings follow on from each other, so it is narrower than an
+ * honest one; it is there to compare groups, not for statistics homework.
+ * - min_max: the lowest and highest value that held in the group.
+ *
+ * Long-term statistics: each hourly row counts as one reading (its mean), so the chart loads
+ * hourly rows and groups them itself; min_max uses the rows' own lows and highs. A whisker never
+ * reaches past the lowest or highest reading, so a spread can't push a positive column below zero.
+ *
+ * Whiskers belong to a group's spread around its mean, so std and ci95 draw only on mean columns,
+ * min_max on mean, min, max, first and last ones; columns that add up (sum, change) get none.
+ */
+
+export const ERROR_BARS = ['none', 'std', 'min_max', 'ci95'] as const;
+export type ErrorBars = (typeof ERROR_BARS)[number];
+
+/** Aggregates each kind of whisker makes sense on. */
+const FITS: Record, readonly Aggregate[]> = {
+ std: ['mean'],
+ ci95: ['mean'],
+ min_max: ['mean', 'min', 'max', 'first', 'last'],
+};
+
+export interface Whisker {
+ lo: number;
+ hi: number;
+}
+
+/** A value that held in a group, and for how long (ms; statistics rows count 1 each). */
+export interface Held {
+ v: number;
+ dt: number;
+ min?: number;
+ max?: number;
+}
+
+/** Check `error_bars`. Throws a readable error. */
+export function validateErrorBars(raw: CardConfig): void {
+ if (raw.error_bars !== undefined && !ERROR_BARS.includes(raw.error_bars as ErrorBars)) {
+ throw new Error(`"error_bars" must be one of: ${ERROR_BARS.join(', ')}`);
+ }
+}
+
+/** The card's error bars, or undefined when off. */
+export function errorBarsOf(raw: CardConfig): Exclude | undefined {
+ const mode = raw.error_bars as ErrorBars | undefined;
+ return mode && mode !== 'none' ? mode : undefined;
+}
+
+/** Whether whiskers of this kind fit a column of this aggregate. */
+export function fitsAggregate(mode: Exclude, aggregate: Aggregate): boolean {
+ return FITS[mode].includes(aggregate);
+}
+
+/**
+ * The values that held from `start` to `end` in history (a reading holds until the next one):
+ * the one carried in from before, then each reading taken, nothing past `until` (now). Gaps
+ * count for nothing.
+ */
+export function heldInHistory(points: readonly Point[], start: number, end: number, until: number): Held[] {
+ const stop = Math.min(end, until);
+ if (!(stop > start)) return [];
+ let j = 0;
+ while (j < points.length && points[j].t < start) j++;
+ const out: Held[] = [];
+ const before = points[j - 1];
+ const firstAt = j < points.length && points[j].t < stop ? points[j].t : stop;
+ if (before && before.v !== null && firstAt > start) out.push({ v: before.v, dt: firstAt - start });
+ for (let k = j; k < points.length && points[k].t < stop; k++) {
+ const next = k + 1 < points.length && points[k + 1].t < stop ? points[k + 1].t : stop;
+ const v = points[k].v;
+ if (v !== null) out.push({ v, dt: next - points[k].t });
+ }
+ return out;
+}
+
+/** Statistics rows starting from `start` to `end`, each one reading. A row moved to the start is the one before. */
+export function heldInStatistics(rows: readonly Point[], start: number, end: number): Held[] {
+ return rows
+ .filter((r) => r.t >= start && r.t < end && r.v !== null && !r.carried)
+ .map((r) => ({ v: r.v!, dt: 1, min: r.min ?? undefined, max: r.max ?? undefined }));
+}
+
+/** The whisker for what held in a group; null with nothing in it (or one reading, for std and ci95). */
+export function whiskerOf(held: readonly Held[], mode: Exclude): Whisker | null {
+ if (!held.length) return null;
+ const low = Math.min(...held.map((h) => h.min ?? h.v));
+ const high = Math.max(...held.map((h) => h.max ?? h.v));
+ if (mode === 'min_max') return { lo: low, hi: high };
+ if (held.length < 2) return null;
+ const time = held.reduce((a, h) => a + h.dt, 0);
+ const weight = (h: Held) => (time > 0 ? h.dt / time : 1 / held.length);
+ const mean = held.reduce((a, h) => a + h.v * weight(h), 0);
+ const sd = Math.sqrt(held.reduce((a, h) => a + (h.v - mean) ** 2 * weight(h), 0));
+ const half = mode === 'std' ? sd : (1.96 * sd) / Math.sqrt(held.length);
+ return { lo: Math.max(low, mean - half), hi: Math.min(high, mean + half) };
+}
+
+/**
+ * Each slot's whisker for one series: `times` and `ends` are the groups, `readings` the series'
+ * readings as loaded. History groups stop at `until` (now).
+ */
+export function whiskersFor(
+ readings: readonly Point[],
+ times: readonly number[],
+ ends: readonly number[],
+ mode: Exclude,
+ statistics: boolean,
+ until: number,
+): (Whisker | null)[] {
+ return times.map((t, i) =>
+ whiskerOf(statistics ? heldInStatistics(readings, t, ends[i]) : heldInHistory(readings, t, ends[i], until), mode),
+ );
+}
+
+const pct = (n: number, of: number) => `${Math.round((n / of) * 10000) / 100}%`;
+const clampY = (y: number) => Math.min(VIEW_H, Math.max(0, y));
+
+/** A whisker over a column whose middle is at `x` (plot units), its caps `width` plot units wide. */
+export function whiskerMark(scales: PlotScales, x: number, width: number, w: Whisker): TemplateResult {
+ const top = clampY(scales.y(w.hi));
+ const bottom = clampY(scales.y(w.lo));
+ return html`
`;
+}
+
+export const errorBarStyles = css`
+ /* Caps top and bottom, the stem down the middle; caps at most 14 px wide. */
+ .whisker-bar {
+ position: absolute;
+ box-sizing: border-box;
+ max-width: 14px;
+ transform: translateX(-50%);
+ border-top: 1.5px solid var(--primary-text-color);
+ border-bottom: 1.5px solid var(--primary-text-color);
+ opacity: 0.8;
+ animation: cd-whisker-in var(--cd-duration) var(--cd-easing);
+ }
+ .whisker-bar::before {
+ content: '';
+ position: absolute;
+ left: calc(50% - 0.75px);
+ top: 0;
+ bottom: 0;
+ border-left: 1.5px solid var(--primary-text-color);
+ }
+ :host([static]) .whisker-bar {
+ animation: none;
+ }
+ @keyframes cd-whisker-in {
+ from {
+ opacity: 0;
+ }
+ }
+`;
diff --git a/src/chart/export-fonts.ts b/src/chart/export-fonts.ts
new file mode 100644
index 0000000..5ad013d
--- /dev/null
+++ b/src/chart/export-fonts.ts
@@ -0,0 +1,241 @@
+/*
+ * Fonts for an exported picture. An SVG drawn into a canvas (the PNG) is an image, and an image
+ * can't load fonts from the page: its text would fall back to whatever the system has. So before
+ * drawing, the card's own font is written into the SVG as base64 `@font-face` rules, when that is
+ * possible without asking anyone else for anything:
+ *
+ * - the font family is the card's computed one (Home Assistant's theme font, Roboto by default);
+ * - only faces the page has already loaded (`document.fonts`, status "loaded") are taken, so a
+ * picture carries the one or two weights the card shows, not every subset a sheet lists;
+ * - their files come from the page's own `@font-face` rules, and only from the same origin as the
+ * page (or a `data:` URL already in the rule). Sheets from other hosts can't be read and are
+ * skipped; a third-party URL is never fetched.
+ *
+ * When a face can't be found that way (a font added only through the FontFace API, a sheet from a
+ * CDN, a browser without `document.fonts`), the picture keeps the card's font list ending in its
+ * closest generic family (`sans-serif`, `serif` or `monospace`), so it falls back to a font of the
+ * same kind.
+ */
+
+const GENERIC = new Set([
+ 'serif',
+ 'sans-serif',
+ 'monospace',
+ 'cursive',
+ 'fantasy',
+ 'system-ui',
+ 'ui-serif',
+ 'ui-sans-serif',
+ 'ui-monospace',
+ 'ui-rounded',
+ 'math',
+ 'emoji',
+ 'fangsong',
+]);
+
+/** At most this much font data (bytes, before base64) goes into one picture. */
+const MAX_FONT_BYTES = 2_000_000;
+
+/** The families in a CSS font-family list, unquoted: `"Roboto", Noto, sans-serif` → three. */
+export function fontFamilies(stack: string): string[] {
+ const out: string[] = [];
+ for (const m of stack.matchAll(/\s*(?:"([^"]*)"|'([^']*)'|([^,]+))\s*(?:,|$)/g)) {
+ const name = (m[1] ?? m[2] ?? m[3] ?? '').trim();
+ if (name) out.push(name);
+ }
+ return out;
+}
+
+/** The generic family closest to a font list's own: monospace, serif or sans-serif. */
+export function closestGeneric(stack: string): string {
+ const families = fontFamilies(stack);
+ const own = families.find((f) => GENERIC.has(f.toLowerCase()));
+ if (own) return own.toLowerCase();
+ const names = families.join(' ').toLowerCase();
+ if (/mono|code|courier|consol/.test(names)) return 'monospace';
+ if (/serif|times|georgia|garamond|slab/.test(names) && !/sans/.test(names)) return 'serif';
+ return 'sans-serif';
+}
+
+/** A font list that ends in a generic family, adding the closest one if it has none. */
+export function withGeneric(stack: string): string {
+ const families = fontFamilies(stack);
+ if (families.some((f) => GENERIC.has(f.toLowerCase()))) return stack;
+ const generic = closestGeneric(stack);
+ return families.length ? `${stack}, ${generic}` : generic;
+}
+
+/** One @font-face to embed: which face it is and where its file is. */
+export interface FaceSource {
+ family: string;
+ weight: string;
+ style: string;
+ unicodeRange: string;
+ url: string;
+ format?: string;
+}
+
+/** The face's identity as `document.fonts` and a CSS rule both spell it. */
+const faceKey = (family: string, weight: string, style: string, range: string) =>
+ [
+ family.replace(/^["']|["']$/g, '').toLowerCase(),
+ ({ normal: '400', bold: '700' } as Record)[weight || 'normal'] ?? weight,
+ style || 'normal',
+ (range || 'U+0-10FFFF').toUpperCase().replace(/\s+/g, ''),
+ ].join('|');
+
+/** The first `url(...)` in an @font-face src, with its format if given. */
+function firstUrl(src: string): { url: string; format?: string } | undefined {
+ const m = /url\(\s*(?:"([^"]*)"|'([^']*)'|([^)\s]*))\s*\)(?:\s*format\(\s*["']?([^"')]*)["']?\s*\))?/.exec(src);
+ const url = m && (m[1] ?? m[2] ?? m[3]);
+ return url ? { url, format: m[4] || undefined } : undefined;
+}
+
+interface RuleLike {
+ cssRules?: ArrayLike;
+ styleSheet?: SheetLike | null;
+ style?: CSSStyleDeclaration;
+ cssText?: string;
+}
+interface SheetLike {
+ href?: string | null;
+ cssRules: ArrayLike;
+}
+
+/** Every @font-face rule in the sheets, inside @import, @media and @supports too, with the URL its src is relative to. */
+function fontFaceRules(sheets: ArrayLike, base: string): { rule: RuleLike; base: string }[] {
+ const out: { rule: RuleLike; base: string }[] = [];
+ const visit = (rules: ArrayLike | undefined, href: string, depth: number) => {
+ if (!rules || depth > 4) return;
+ for (const rule of Array.from(rules)) {
+ if (rule.styleSheet) visit(readable(rule.styleSheet), rule.styleSheet.href ?? href, depth + 1);
+ else if (rule.cssRules) visit(rule.cssRules, href, depth + 1);
+ else if (rule.style && rule.cssText?.trimStart().toLowerCase().startsWith('@font-face'))
+ out.push({ rule, base: href });
+ }
+ };
+ for (const sheet of Array.from(sheets)) visit(readable(sheet), sheet.href ?? base, 0);
+ return out;
+}
+
+/** A sheet's rules, or nothing for one from another origin (reading those throws). */
+function readable(sheet: SheetLike): ArrayLike | undefined {
+ try {
+ return sheet.cssRules;
+ } catch {
+ return undefined;
+ }
+}
+
+/**
+ * The faces to embed for a font list: loaded faces (`loaded`, from `document.fonts`) of its
+ * families, matched to @font-face rules whose file is on `origin` or already a data: URL.
+ */
+export function fontSources(
+ stack: string,
+ loaded: Iterable>,
+ sheets: ArrayLike,
+ origin: string,
+ base: string,
+): FaceSource[] {
+ const families = new Set(
+ fontFamilies(stack)
+ .filter((f) => !GENERIC.has(f.toLowerCase()))
+ .map((f) => f.toLowerCase()),
+ );
+ const wanted = new Set();
+ for (const face of loaded) {
+ const family = face.family.replace(/^["']|["']$/g, '').toLowerCase();
+ if (face.status === 'loaded' && families.has(family)) {
+ wanted.add(faceKey(face.family, face.weight, face.style, face.unicodeRange));
+ }
+ }
+ if (!wanted.size) return [];
+ const out: FaceSource[] = [];
+ const seen = new Set();
+ for (const { rule, base: href } of fontFaceRules(sheets, base)) {
+ const s = rule.style!;
+ const family = s
+ .getPropertyValue('font-family')
+ .trim()
+ .replace(/^["']|["']$/g, '');
+ const weight = s.getPropertyValue('font-weight').trim();
+ const style = s.getPropertyValue('font-style').trim();
+ const range = s.getPropertyValue('unicode-range').trim();
+ const key = faceKey(family, weight, style, range);
+ if (!wanted.has(key) || seen.has(key)) continue;
+ const src = firstUrl(s.getPropertyValue('src'));
+ if (!src) continue;
+ let url: URL;
+ try {
+ url = new URL(src.url, href);
+ } catch {
+ continue;
+ }
+ if (url.protocol !== 'data:' && url.origin !== origin) continue;
+ seen.add(key);
+ out.push({
+ family,
+ weight: weight || 'normal',
+ style: style || 'normal',
+ unicodeRange: range,
+ url: url.href,
+ format: src.format,
+ });
+ }
+ return out;
+}
+
+const MIME: Record = {
+ woff2: 'font/woff2',
+ woff: 'font/woff',
+ truetype: 'font/ttf',
+ ttf: 'font/ttf',
+ opentype: 'font/otf',
+ otf: 'font/otf',
+};
+
+function base64(bytes: Uint8Array): string {
+ let text = '';
+ for (let i = 0; i < bytes.length; i += 0x8000) text += String.fromCharCode(...bytes.subarray(i, i + 0x8000));
+ return btoa(text);
+}
+
+/** One face as a self-contained @font-face rule, or '' if its file can't be had. */
+async function faceRule(face: FaceSource, budget: { left: number }): Promise {
+ let data = face.url;
+ if (!data.startsWith('data:')) {
+ const response = await fetch(face.url, { credentials: 'same-origin' });
+ if (!response.ok) return '';
+ const bytes = new Uint8Array(await response.arrayBuffer());
+ if (bytes.length > budget.left) return '';
+ budget.left -= bytes.length;
+ const ext = /\.(\w+)(?:[?#]|$)/.exec(new URL(face.url).pathname)?.[1]?.toLowerCase() ?? '';
+ const mime = MIME[face.format?.toLowerCase() ?? ''] ?? MIME[ext] ?? 'font/woff2';
+ data = `data:${mime};base64,${base64(bytes)}`;
+ }
+ const format = face.format ? ` format("${face.format}")` : '';
+ const range = face.unicodeRange ? `;unicode-range:${face.unicodeRange}` : '';
+ return `@font-face{font-family:"${face.family.replace(/["<>&]/g, '')}";font-weight:${face.weight};font-style:${face.style}${range};src:url("${data}")${format}}`;
+}
+
+/**
+ * The SVG with the card's loaded same-origin font faces written in as data URLs, so a canvas
+ * draws its text in the card's font. Unchanged when there is nothing to embed or anything fails.
+ */
+export async function embedFonts(svg: string, stack: string, doc: Document = document): Promise {
+ try {
+ const fonts = (doc as Document & { fonts?: FontFaceSet }).fonts;
+ if (!fonts || typeof fetch !== 'function' || typeof btoa !== 'function') return svg;
+ const origin = doc.location?.origin ?? '';
+ const faces = fontSources(stack, fonts as unknown as Iterable, doc.styleSheets, origin, doc.baseURI);
+ if (!faces.length) return svg;
+ const budget = { left: MAX_FONT_BYTES };
+ const rules = (await Promise.all(faces.map((f) => faceRule(f, budget).catch(() => '')))).filter(Boolean);
+ if (!rules.length) return svg;
+ const at = svg.indexOf('>') + 1;
+ return `${svg.slice(0, at)} ${svg.slice(at)}`;
+ } catch {
+ return svg;
+ }
+}
diff --git a/src/chart/export.ts b/src/chart/export.ts
new file mode 100644
index 0000000..4ebbd19
--- /dev/null
+++ b/src/chart/export.ts
@@ -0,0 +1,689 @@
+import { css, html, nothing } from 'lit';
+import type { TemplateResult } from 'lit';
+import { localize } from '../localize';
+import type { ResolvedEntity } from '../resolve';
+import type { CardConfig, HomeAssistant } from '../types';
+import { shownValue } from '../history/energy';
+import type { Point } from '../history/types';
+import { embedFonts, withGeneric } from './export-fonts';
+
+/*
+ * The export menu (`export: true`): save the chart as a PNG or SVG, copy the plotted values as
+ * CSV, or copy the card's YAML. Everything happens in the browser with its own APIs (Blob, a
+ * canvas, the clipboard, a download link); nothing is sent anywhere. Each API is checked before
+ * use, and copying falls back to saving a file where the clipboard isn't allowed (a dashboard
+ * served over plain http).
+ */
+
+export function validateExport(raw: CardConfig): void {
+ if (raw.export !== undefined && typeof raw.export !== 'boolean') throw new Error('"export" must be true or false');
+}
+
+// ---------------------------------------------------------------------------------------------
+// Plotted values, kept per card by the history frame, for the CSV.
+
+/** One series as last drawn: whose it is and its points. */
+export interface PlottedSeries {
+ entity: Pick & { config?: unknown };
+ points: Point[];
+}
+
+const plotted = new WeakMap();
+
+/** Remember what a history chart drew, so the CSV can list it. */
+export function rememberPlotted(host: HTMLElement, series: PlottedSeries[]): void {
+ plotted.set(host, series);
+}
+
+/**
+ * Forget what was drawn, so the CSV lists the card's current values: a new config (the style may
+ * no longer draw history), or a chart of totals that read history only to add it up.
+ */
+export function forgetPlotted(host: HTMLElement): void {
+ plotted.delete(host);
+}
+
+/** One CSV field: quoted when it holds a comma, quote or line break. */
+export function csvField(value: string | number): string {
+ const text = String(value);
+ return /[",\r\n]/.test(text) ? `"${text.replace(/"/g, '""')}"` : text;
+}
+
+export function toCsv(rows: (string | number)[][]): string {
+ return rows.map((row) => row.map(csvField).join(',')).join('\r\n') + '\r\n';
+}
+
+/**
+ * The values a chart drew as CSV (timestamp, entity, value, unit): every reading of a history
+ * chart, or each entity's current value for a chart of current values. Gaps are left out.
+ */
+export function plottedCsv(
+ series: PlottedSeries[] | undefined,
+ items: Pick[],
+ now = Date.now(),
+): string {
+ const rows: (string | number)[][] = [['timestamp', 'entity', 'value', 'unit']];
+ if (series) {
+ for (const s of series) {
+ for (const p of s.points) {
+ if (p.v === null || p.carried) continue;
+ // Energy drawn below the axis (grid export, battery charging) reads positive, as in the tooltip.
+ const v = s.entity.config ? shownValue({ config: s.entity.config }, p.v) : p.v;
+ rows.push([new Date(p.t).toISOString(), s.entity.entityId, v, s.entity.unit]);
+ }
+ }
+ } else {
+ const at = new Date(now).toISOString();
+ for (const e of items) if (e.value !== null) rows.push([at, e.entityId, e.value, e.unit]);
+ }
+ return toCsv(rows);
+}
+
+// ---------------------------------------------------------------------------------------------
+// YAML of the card's config.
+
+const PLAIN = /^[A-Za-z_][A-Za-z0-9_.\-/ ]*$/;
+const RESERVED = /^(true|false|yes|no|on|off|null|~|y|n)$/i;
+
+function yamlScalar(value: unknown): string {
+ if (value === null || value === undefined) return 'null';
+ if (typeof value === 'number') return Number.isFinite(value) ? String(value) : 'null';
+ if (typeof value === 'boolean') return String(value);
+ const text = String(value);
+ if (text !== '' && PLAIN.test(text) && !RESERVED.test(text) && !text.endsWith(' ')) return text;
+ return JSON.stringify(text);
+}
+
+function yamlKey(key: string): string {
+ return PLAIN.test(key) && !RESERVED.test(key) && !key.includes(' ') ? key : JSON.stringify(key);
+}
+
+const isObject = (v: unknown): v is Record => typeof v === 'object' && v !== null && !Array.isArray(v);
+
+/** A JSON-like value as block YAML, the way Home Assistant's code editor shows a card. */
+export function toYaml(value: unknown, indent = ''): string {
+ if (Array.isArray(value)) {
+ if (value.length === 0) return `${indent}[]\n`;
+ return value
+ .map((item) => {
+ if (isObject(item) && Object.keys(item).length > 0) {
+ const inner = toYaml(item, `${indent} `);
+ return `${indent}- ${inner.slice(indent.length + 2)}`;
+ }
+ if (Array.isArray(item) && item.length > 0) return `${indent}-\n${toYaml(item, `${indent} `)}`;
+ return `${indent}- ${isObject(item) ? '{}' : Array.isArray(item) ? '[]' : yamlScalar(item)}\n`;
+ })
+ .join('');
+ }
+ if (isObject(value)) {
+ const entries = Object.entries(value).filter(([, v]) => v !== undefined);
+ if (entries.length === 0) return `${indent}{}\n`;
+ return entries
+ .map(([k, v]) => {
+ if ((isObject(v) && Object.keys(v).length > 0) || (Array.isArray(v) && v.length > 0)) {
+ return `${indent}${yamlKey(k)}:\n${toYaml(v, `${indent} `)}`;
+ }
+ const scalar = isObject(v) ? '{}' : Array.isArray(v) ? '[]' : yamlScalar(v);
+ return `${indent}${yamlKey(k)}: ${scalar}\n`;
+ })
+ .join('');
+ }
+ return `${indent}${yamlScalar(value)}\n`;
+}
+
+/** A file name from the card's title and the date: "living-room-2026-11-08.png". */
+export function exportFileName(title: string | undefined, ext: string, now = Date.now()): string {
+ const slug = (title ?? '')
+ .normalize('NFKD')
+ .replace(/[̀-ͯ]/g, '')
+ .toLowerCase()
+ .replace(/[^a-z0-9]+/g, '-')
+ .replace(/^-+|-+$/g, '')
+ .slice(0, 60);
+ const day = new Date(now).toISOString().slice(0, 10);
+ return `${slug || 'chartdeck'}-${day}.${ext}`;
+}
+
+// ---------------------------------------------------------------------------------------------
+// A picture of the chart: its SVG drawings and HTML parts (labels, columns, swatches) redrawn as
+// one SVG, with the theme's colours written in so it looks the same outside the page.
+
+const SVG_NS = 'http://www.w3.org/2000/svg';
+/** Computed properties written onto each SVG element, so it draws the same without the card's CSS. */
+const SVG_PROPS = [
+ 'fill',
+ 'fill-opacity',
+ 'stroke',
+ 'stroke-width',
+ 'stroke-opacity',
+ 'stroke-dasharray',
+ 'stroke-dashoffset',
+ 'stroke-linecap',
+ 'stroke-linejoin',
+ 'stop-color',
+ 'stop-opacity',
+ 'opacity',
+ 'visibility',
+ 'display',
+ 'transform',
+ 'transform-origin',
+ 'transform-box',
+ 'vector-effect',
+ 'font-family',
+ 'font-size',
+ 'font-weight',
+ 'text-anchor',
+ 'dominant-baseline',
+];
+
+const esc = (text: string) =>
+ text.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"');
+const px = (n: number) => Math.round(n * 100) / 100;
+
+function visibleColor(color: string): boolean {
+ if (!color || color === 'transparent') return false;
+ // rgba(r, g, b, a) or rgb(r g b / a): only a fourth part is the alpha.
+ const parts = /^rgba?\(([^)]*)\)$/
+ .exec(color.trim())?.[1]
+ .split(/[\s,/]+/)
+ .filter(Boolean);
+ return !parts || parts.length < 4 || parseFloat(parts[3]) > 0;
+}
+
+/** An inline SVG copied with every element's computed look written on it as a style attribute. */
+function inlineSvg(source: SVGSVGElement, x: number, y: number, w: number, h: number): string {
+ const copy = source.cloneNode(true) as SVGSVGElement;
+ const from = [source, ...source.querySelectorAll('*')];
+ const to = [copy, ...copy.querySelectorAll('*')];
+ from.forEach((el, i) => {
+ const style = getComputedStyle(el);
+ const props = SVG_PROPS.map((p) => [p, style.getPropertyValue(p)] as const).filter(([, v]) => v !== '');
+ const target = to[i] as Element;
+ target.removeAttribute('class');
+ if (props.length) target.setAttribute('style', props.map(([p, v]) => `${p}:${v}`).join(';'));
+ });
+ copy.setAttribute('x', String(px(x)));
+ copy.setAttribute('y', String(px(y)));
+ copy.setAttribute('width', String(px(w)));
+ copy.setAttribute('height', String(px(h)));
+ copy.removeAttribute('role');
+ return new XMLSerializer().serializeToString(copy);
+}
+
+function ownText(el: Element): Text[] {
+ return [...el.childNodes].filter((n): n is Text => n.nodeType === 3 && (n.textContent ?? '').trim() !== '');
+}
+
+/**
+ * The chart in `root` (the card's content) as a standalone SVG: the card's background, its
+ * title, each drawing, and the HTML around them (backgrounds, borders and text) as shapes and text
+ * at the same places. `skip` leaves elements out (the export menu itself).
+ */
+export function snapshotSvg(
+ root: HTMLElement,
+ options: { title?: string; background: string; color: string; skip?: (el: Element) => boolean },
+): { svg: string; width: number; height: number } {
+ const box = root.getBoundingClientRect();
+ const top = options.title ? 44 : 0;
+ const width = Math.max(1, Math.ceil(box.width));
+ const height = Math.max(1, Math.ceil(box.height + top));
+ const parts: string[] = [` `];
+ if (options.title) {
+ const family = withGeneric(getComputedStyle(root).fontFamily || 'Roboto, Noto');
+ parts.push(
+ `${esc(options.title)} `,
+ );
+ }
+ const at = (r: DOMRect) => ({ x: r.left - box.left, y: r.top - box.top + top, w: r.width, h: r.height });
+ const walk = (el: Element) => {
+ if (options.skip?.(el)) return;
+ const style = getComputedStyle(el);
+ if (style.display === 'none' || style.visibility === 'hidden' || Number(style.opacity) === 0) return;
+ const r = at(el.getBoundingClientRect());
+ if (el instanceof SVGSVGElement) {
+ if (r.w > 0 && r.h > 0) parts.push(inlineSvg(el, r.x, r.y, r.w, r.h));
+ return;
+ }
+ const opacity = Number(style.opacity);
+ const alpha = opacity < 1 ? ` opacity="${opacity}"` : '';
+ if (r.w > 0 && r.h > 0 && visibleColor(style.backgroundColor)) {
+ const rx = Math.min(parseFloat(style.borderTopLeftRadius) || 0, r.w / 2, r.h / 2);
+ parts.push(
+ ` `,
+ );
+ }
+ const sides: [string, number, number, number, number][] = [
+ ['Top', r.x, r.y, r.x + r.w, r.y],
+ ['Bottom', r.x, r.y + r.h, r.x + r.w, r.y + r.h],
+ ['Left', r.x, r.y, r.x, r.y + r.h],
+ ['Right', r.x + r.w, r.y, r.x + r.w, r.y + r.h],
+ ];
+ for (const [side, x1, y1, x2, y2] of sides) {
+ const w = parseFloat(style.getPropertyValue(`border-${side.toLowerCase()}-width`)) || 0;
+ const kind = style.getPropertyValue(`border-${side.toLowerCase()}-style`);
+ const color = style.getPropertyValue(`border-${side.toLowerCase()}-color`);
+ if (w > 0 && kind !== 'none' && kind !== 'hidden' && visibleColor(color)) {
+ const dash =
+ kind === 'dashed'
+ ? ` stroke-dasharray="${w * 3} ${w * 2}"`
+ : kind === 'dotted'
+ ? ` stroke-dasharray="${w} ${w}"`
+ : '';
+ parts.push(
+ ` `,
+ );
+ }
+ }
+ for (const node of ownText(el)) {
+ const range = document.createRange();
+ range.selectNodeContents(node);
+ // The text's own box; the element's where the browser can't measure a range.
+ const t = at(
+ typeof range.getBoundingClientRect === 'function' ? range.getBoundingClientRect() : el.getBoundingClientRect(),
+ );
+ const size = parseFloat(style.fontSize) || 14;
+ const deco =
+ style.textDecorationLine && style.textDecorationLine !== 'none'
+ ? ` text-decoration="${esc(style.textDecorationLine)}"`
+ : '';
+ parts.push(
+ `${esc((node.textContent ?? '').replace(/\s+/g, ' ').trim())} `,
+ );
+ }
+ for (const child of el.children) walk(child);
+ };
+ for (const child of root.children) walk(child);
+ const svg = `${parts.join('')} `;
+ return { svg, width, height };
+}
+
+/** Draw an SVG onto a canvas at `scale` and return it as a PNG, or null where the browser can't. */
+export async function svgToPng(svgText: string, width: number, height: number, scale = 2): Promise {
+ if (typeof Image === 'undefined' || typeof document === 'undefined') return null;
+ const canvas = document.createElement('canvas');
+ canvas.width = Math.round(width * scale);
+ canvas.height = Math.round(height * scale);
+ let context: CanvasRenderingContext2D | null = null;
+ try {
+ context = canvas.getContext('2d');
+ } catch {
+ context = null;
+ }
+ if (!context || typeof canvas.toBlob !== 'function') return null;
+ const img = new Image();
+ img.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgText)}`;
+ await (typeof img.decode === 'function'
+ ? img.decode()
+ : new Promise((resolve, reject) => {
+ img.onload = () => resolve();
+ img.onerror = () => reject(new Error('image'));
+ }));
+ context.scale(scale, scale);
+ context.drawImage(img, 0, 0, width, height);
+ return new Promise((resolve) => {
+ try {
+ canvas.toBlob((blob) => resolve(blob), 'image/png');
+ } catch {
+ resolve(null);
+ }
+ });
+}
+
+/** Offer a file to save, through a temporary download link. False where the browser can't. */
+export function saveFile(blob: Blob, name: string): boolean {
+ if (typeof URL === 'undefined' || typeof URL.createObjectURL !== 'function' || typeof document === 'undefined') {
+ return false;
+ }
+ try {
+ const url = URL.createObjectURL(blob);
+ const link = document.createElement('a');
+ link.href = url;
+ link.download = name;
+ link.rel = 'noopener';
+ link.style.display = 'none';
+ document.body.appendChild(link);
+ link.click();
+ link.remove();
+ setTimeout(() => URL.revokeObjectURL(url), 1000);
+ return true;
+ } catch {
+ return false;
+ }
+}
+
+/** Put text on the clipboard. False where the page may not (plain http, a refused permission). */
+export async function copyText(text: string): Promise {
+ try {
+ const clipboard = globalThis.navigator?.clipboard;
+ if (!clipboard || typeof clipboard.writeText !== 'function') return false;
+ await clipboard.writeText(text);
+ return true;
+ } catch {
+ return false;
+ }
+}
+
+// ---------------------------------------------------------------------------------------------
+// The menu.
+
+export type ExportAction = 'png' | 'svg' | 'csv' | 'yaml';
+export const EXPORT_ACTIONS: ExportAction[] = ['png', 'svg', 'csv', 'yaml'];
+
+/** What the menu works from: the card, its config and entities, and where its drawing is. */
+export interface ExportContext {
+ host: HTMLElement;
+ hass: HomeAssistant | undefined;
+ raw: CardConfig;
+ items: ResolvedEntity[];
+ /** The card's content box, to picture. */
+ content(): HTMLElement | null;
+ requestUpdate(): void;
+}
+
+interface MenuState {
+ open: boolean;
+ status?: string;
+ statusTimer?: ReturnType;
+ outside?: (ev: Event) => void;
+}
+
+const menus = new WeakMap();
+
+function menuState(host: HTMLElement): MenuState {
+ let state = menus.get(host);
+ if (!state) {
+ state = { open: false };
+ menus.set(host, state);
+ }
+ return state;
+}
+
+function setOpen(ctx: ExportContext, open: boolean): void {
+ const state = menuState(ctx.host);
+ if (state.open === open) return;
+ state.open = open;
+ if (state.outside) {
+ window.removeEventListener('pointerdown', state.outside, true);
+ state.outside = undefined;
+ }
+ if (open) {
+ // A press anywhere outside the menu closes it.
+ state.outside = (ev: Event) => {
+ const inside = ev.composedPath().some((el) => el instanceof Element && el.classList.contains('export'));
+ if (!inside) setOpen(ctx, false);
+ };
+ window.addEventListener('pointerdown', state.outside, true);
+ }
+ ctx.requestUpdate();
+}
+
+function report(ctx: ExportContext, key: string, vars?: Record): void {
+ const state = menuState(ctx.host);
+ state.status = localize(ctx.hass, key, vars);
+ if (state.statusTimer !== undefined) clearTimeout(state.statusTimer);
+ state.statusTimer = setTimeout(() => {
+ state.status = undefined;
+ state.statusTimer = undefined;
+ ctx.requestUpdate();
+ }, 2500);
+ ctx.requestUpdate();
+}
+
+/** Stop listening for outside presses and the status timer: the card left the page. */
+export function stopExport(host: HTMLElement): void {
+ const state = menus.get(host);
+ if (!state) return;
+ if (state.outside) window.removeEventListener('pointerdown', state.outside, true);
+ if (state.statusTimer !== undefined) clearTimeout(state.statusTimer);
+ menus.delete(host);
+}
+
+function themeColors(host: HTMLElement): { background: string; color: string } {
+ const style = getComputedStyle(host);
+ const card = host.shadowRoot?.querySelector('ha-card');
+ const cardBg = card ? getComputedStyle(card).backgroundColor : '';
+ const background = visibleColor(cardBg)
+ ? cardBg
+ : style.getPropertyValue('--card-background-color').trim() ||
+ style.getPropertyValue('--ha-card-background').trim() ||
+ '#ffffff';
+ const color = style.color || style.getPropertyValue('--primary-text-color').trim() || '#212121';
+ return { background, color };
+}
+
+/** Text to copy, or a file of it where the clipboard is out of reach. */
+async function copyOrSave(ctx: ExportContext, text: string, type: string, ext: string): Promise {
+ if (await copyText(text)) return report(ctx, 'export_copied');
+ if (saveFile(new Blob([text], { type }), exportFileName(ctx.raw.title, ext))) return report(ctx, 'export_saved_file');
+ report(ctx, 'export_failed');
+}
+
+/** Run one of the menu's actions. */
+export async function runExport(ctx: ExportContext, action: ExportAction): Promise {
+ try {
+ if (action === 'csv') {
+ return await copyOrSave(ctx, plottedCsv(plotted.get(ctx.host), ctx.items), 'text/csv', 'csv');
+ }
+ if (action === 'yaml') {
+ return await copyOrSave(ctx, toYaml(ctx.raw), 'text/yaml', 'yaml');
+ }
+ const root = ctx.content();
+ if (!root) return report(ctx, 'export_failed');
+ const theme = themeColors(ctx.host);
+ const picture = snapshotSvg(root, {
+ title: ctx.raw.title,
+ ...theme,
+ skip: (el) => el.classList.contains('export'),
+ });
+ // The card's font goes into the picture when the page can hand it over (see export-fonts.ts).
+ const svg = await embedFonts(picture.svg, getComputedStyle(root).fontFamily);
+ if (action === 'svg') {
+ const ok = saveFile(new Blob([svg], { type: 'image/svg+xml' }), exportFileName(ctx.raw.title, 'svg'));
+ return report(ctx, ok ? 'export_saved' : 'export_failed');
+ }
+ const png = await svgToPng(svg, picture.width, picture.height, 2);
+ const ok = png !== null && saveFile(png, exportFileName(ctx.raw.title, 'png'));
+ report(ctx, ok ? 'export_saved' : 'export_failed');
+ } catch {
+ report(ctx, 'export_failed');
+ }
+}
+
+const DOTS =
+ 'M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z';
+
+/**
+ * With a title, centre the ⋮ button on the title's text line, inside the title row. The row's
+ * height depends on the theme (Home Assistant draws it inside ha-card), so it is measured once
+ * ha-card has drawn.
+ */
+export function placeExport(host: HTMLElement): void {
+ const menu = host.shadowRoot?.querySelector('.export.titled');
+ const card = host.shadowRoot?.querySelector }>('ha-card');
+ if (!menu || !card) return;
+ const place = () => {
+ const header =
+ card.shadowRoot?.querySelector('.card-header') ??
+ ([...card.children].find((c) => c.classList.contains('card-header')) as HTMLElement | undefined);
+ if (!header?.offsetHeight) return;
+ const style = getComputedStyle(header);
+ const padTop = parseFloat(style.paddingTop) || 0;
+ const line = header.offsetHeight - padTop - (parseFloat(style.paddingBottom) || 0);
+ const size = menu.offsetHeight || 32;
+ // Centred on the text, but never lower than the title row's bottom (the chart starts there).
+ const centred = header.offsetTop + padTop + line / 2 - size / 2;
+ const top = Math.max(4, Math.round(Math.min(centred, header.offsetTop + header.offsetHeight - size)));
+ menu.style.top = `${top}px`;
+ };
+ place();
+ void card.updateComplete?.then(place);
+}
+
+/** The ⋮ button and, while open, its menu. Only for chart styles with `export: true`. */
+export function exportMenu(ctx: ExportContext): TemplateResult | typeof nothing {
+ if (ctx.raw.export !== true) return nothing;
+ const state = menuState(ctx.host);
+ const t = (k: string) => localize(ctx.hass, k);
+ const choose = (action: ExportAction) => (ev: Event) => {
+ ev.stopPropagation();
+ setOpen(ctx, false);
+ void runExport(ctx, action);
+ };
+ const keys = (ev: KeyboardEvent) => {
+ if (ev.key === 'Escape' && state.open) {
+ ev.stopPropagation();
+ setOpen(ctx, false);
+ (ctx.host.shadowRoot?.querySelector('.export-button') as HTMLElement | null)?.focus();
+ return;
+ }
+ if (!state.open || (ev.key !== 'ArrowDown' && ev.key !== 'ArrowUp')) return;
+ ev.preventDefault();
+ const items = [...(ctx.host.shadowRoot?.querySelectorAll('.export-item') ?? [])];
+ const at = items.indexOf(ctx.host.shadowRoot?.activeElement as HTMLElement);
+ const next = ev.key === 'ArrowDown' ? (at + 1) % items.length : (at - 1 + items.length) % items.length;
+ items[next]?.focus();
+ };
+ // With a title the button sits in the title row. Without one it gets a row of its own above the
+ // chart, so it never covers period buttons, header values or the plot.
+ return html`
+ ${state.status ? html`
${state.status} ` : nothing}
+
{
+ ev.stopPropagation();
+ setOpen(ctx, !state.open);
+ }}
+ >
+
+
+ ${
+ state.open
+ ? html``
+ : nothing
+ }
+
`;
+}
+
+export const exportStyles = css`
+ ha-card:has(> .export) {
+ position: relative;
+ }
+ .export {
+ z-index: 5;
+ display: flex;
+ align-items: center;
+ gap: 4px;
+ }
+ /* Titled: in the title row's right-hand end, clear of the chart. */
+ .export.titled {
+ position: absolute;
+ top: 12px;
+ right: 8px;
+ }
+ /* Untitled: a short row of its own, right-aligned; the chart starts just under it. */
+ .export.inline {
+ position: relative;
+ justify-content: flex-end;
+ padding: 4px 4px 0;
+ }
+ .export.inline + .content,
+ .export.inline + .content:has(> .chart > .frame.compact) {
+ padding-top: 0;
+ }
+ ha-card:has(.frame.compact) > .export.inline {
+ padding: 2px 2px 0;
+ }
+ ha-card:has(.frame.compact) > .export .export-button {
+ width: 28px;
+ height: 28px;
+ }
+ .export-button {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ width: 32px;
+ height: 32px;
+ padding: 0;
+ border: none;
+ border-radius: 50%;
+ color: var(--secondary-text-color);
+ background: color-mix(in srgb, var(--card-background-color, #fff) 70%, transparent);
+ cursor: pointer;
+ }
+ .export-button svg {
+ width: 20px;
+ height: 20px;
+ fill: currentColor;
+ }
+ .export-button:hover,
+ .export-button[aria-expanded='true'] {
+ background: color-mix(in srgb, var(--primary-text-color) 10%, var(--card-background-color, #fff));
+ }
+ .export-button:focus-visible,
+ .export-item:focus-visible {
+ outline: 2px solid var(--primary-color);
+ outline-offset: 1px;
+ }
+ .export-menu {
+ position: absolute;
+ top: calc(100% + 4px);
+ right: 0;
+ min-width: 200px;
+ max-width: calc(100vw - 32px);
+ padding: 4px;
+ border-radius: 8px;
+ background: var(--card-background-color, #fff);
+ border: 1px solid var(--divider-color, rgba(0, 0, 0, 0.12));
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
+ display: flex;
+ flex-direction: column;
+ }
+ .export-item {
+ display: flex;
+ align-items: baseline;
+ justify-content: space-between;
+ gap: 16px;
+ padding: 8px 10px;
+ border: none;
+ border-radius: 4px;
+ font: inherit;
+ font-size: 0.875em;
+ text-align: start;
+ color: var(--primary-text-color);
+ background: none;
+ cursor: pointer;
+ white-space: nowrap;
+ }
+ .export-item:hover {
+ background: color-mix(in srgb, var(--primary-text-color) 8%, transparent);
+ }
+ .export-hint {
+ font-size: 0.85em;
+ color: var(--secondary-text-color);
+ }
+ .export-status {
+ font-size: 0.75em;
+ padding: 2px 8px;
+ border-radius: 10px;
+ color: var(--primary-text-color);
+ background: color-mix(in srgb, var(--primary-text-color) 10%, var(--card-background-color, #fff));
+ white-space: nowrap;
+ }
+`;
diff --git a/src/chart/extremes.ts b/src/chart/extremes.ts
index 7fe7e5c..0c8cf9c 100644
--- a/src/chart/extremes.ts
+++ b/src/chart/extremes.ts
@@ -149,7 +149,18 @@ const LABEL_GAP = 8;
const DOT_R = 6;
export const labelWidth = (text: string) => Math.ceil(text.length * 6.2) + 12;
-const overlaps = (a: Box, b: Box) => a.l < b.r && b.l < a.r && a.t < b.b && b.t < a.b;
+export const overlaps = (a: Box, b: Box) => a.l < b.r && b.l < a.r && a.t < b.b && b.t < a.b;
+
+/** The box a label placed by `placeLabels` covers, in px on a plot `width` × `height`. */
+export function labelBox(label: LabelSpec, placed: PlacedLabel, width: number, height: number): Box {
+ const w = labelWidth(label.text);
+ const px = label.x * width;
+ const py = label.y * height;
+ const left = placed.align === 'start' ? 0 : placed.align === 'end' ? width - w : px - w / 2;
+ const gap = LABEL_GAP + placed.tier * (LABEL_H + 2);
+ const t = placed.side === 'above' ? py - gap - LABEL_H : py + gap;
+ return { l: left, r: left + w, t, b: t + LABEL_H };
+}
/**
* Where each label goes on a plot `width` × `height` px. Each is centred over its dot, or held
@@ -175,15 +186,9 @@ export function placeLabels(
return labels.map((label) => {
const w = labelWidth(label.text);
const px = label.x * width;
- const py = label.y * height;
const align = px - w / 2 < 0 ? 'start' : px + w / 2 > width ? 'end' : 'center';
- const left = align === 'start' ? 0 : align === 'end' ? width - w : px - w / 2;
// Each side has a near spot and, on a crowded plot, one a label's height further out.
- const box = (side: 'above' | 'below', tier = 0): Box => {
- const gap = LABEL_GAP + tier * (LABEL_H + 2);
- const t = side === 'above' ? py - gap - LABEL_H : py + gap;
- return { l: left, r: left + w, t, b: t + LABEL_H };
- };
+ const box = (side: 'above' | 'below', tier = 0): Box => labelBox(label, { side, align, tier }, width, height);
const inside = (b: Box) => b.t >= 0 && b.b <= height;
const clear = (b: Box) => inside(b) && !taken.some((p) => overlaps(p, b));
const other: 'above' | 'below' = label.prefer === 'above' ? 'below' : 'above';
diff --git a/src/chart/forecast.ts b/src/chart/forecast.ts
new file mode 100644
index 0000000..e4389f1
--- /dev/null
+++ b/src/chart/forecast.ts
@@ -0,0 +1,490 @@
+import { css, html, nothing, svg } from 'lit';
+import type { SVGTemplateResult, TemplateResult } from 'lit';
+import { toReading } from '../history/fetch';
+import type { Point, Range } from '../history/types';
+import { languageOf, localize } from '../localize';
+import type { ChartContext } from '../styles/index';
+import type { CardConfig, HomeAssistant } from '../types';
+import type { FieldBinding } from '../editor/schemas';
+import { convertPoints } from '../units';
+import { downsample } from './downsample';
+import { VIEW_W } from './frame';
+import type { ChartSeries, HistoryFrame } from './frame';
+import type { PlotScales } from './grid';
+import { runPath, runs } from './paths';
+
+/*
+ * A forecast drawn on after a series' history: Solcast's or Forecast.Solar's estimate after a
+ * solar sensor, a price list after a tariff sensor, a weather entity's hourly temperatures after a
+ * thermometer. Each entity may name a `forecast`; the line chart draws it dashed in the series'
+ * colour from now on, and stretches its time axis past now to show it when its span ends now.
+ *
+ * Where the forecast comes from:
+ * - an attribute holding a list of objects (`detailedForecast` on Solcast: `period_start`,
+ * `pv_estimate`), a list of [time, value] pairs, or an object of time: value (`watts`);
+ * - a weather entity with no attribute named: Home Assistant's `weather/subscribe_forecast`
+ * websocket subscription (hourly by default), or its old `forecast` attribute if it still has one.
+ */
+
+/** Weather forecasts Home Assistant can send. */
+export const FORECAST_TYPES = ['hourly', 'daily', 'twice_daily'] as const;
+export type ForecastType = (typeof FORECAST_TYPES)[number];
+
+/** How far past now the time axis reaches for a forecast, by default. */
+export const DEFAULT_FORECAST_HOURS = 24;
+
+/** One entity's `forecast` option. */
+export interface ForecastConfig {
+ entity: string;
+ /** The attribute holding the forecast; absent: the weather subscription, else `forecast`. */
+ attribute?: string;
+ /** Each item's value; absent: the first of `VALUE_KEYS` it has. */
+ value_key?: string;
+ /** Each item's time; absent: the first of `TIME_KEYS` it has. */
+ time_key?: string;
+ /** Weather only: which forecast to subscribe to. */
+ type?: ForecastType;
+ /** Scale every value (1000 turns Solcast's kW into W). */
+ multiply?: number;
+}
+
+/** Keys forecast items commonly give their time in, tried in order. */
+export const TIME_KEYS = ['datetime', 'period_start', 'start', 'starts_at', 'startsAt', 'time', 'from', 'date'];
+/** Keys forecast items commonly give their value in, tried in order. */
+export const VALUE_KEYS = ['value', 'pv_estimate', 'watts', 'price', 'total', 'temperature', 'native_temperature'];
+
+const isEntityId = (v: unknown): v is string => typeof v === 'string' && /^[a-z_]+\.[a-z0-9_]+$/.test(v.trim());
+const text = (v: unknown) => v === undefined || typeof v === 'string';
+
+/** Throw a readable error for a bad `forecast` on an entity, or a bad `forecast_hours`. */
+export function validateForecast(raw: CardConfig): void {
+ const hours = (raw as { forecast_hours?: unknown }).forecast_hours;
+ if (hours !== undefined && !(typeof hours === 'number' && Number.isFinite(hours) && hours > 0)) {
+ throw new Error('"forecast_hours" must be a number above 0');
+ }
+ for (const item of raw.entities ?? []) {
+ if (typeof item !== 'object') continue;
+ const f = (item as { forecast?: unknown }).forecast;
+ if (f === undefined) continue;
+ const where = `"forecast" of ${item.entity}`;
+ if (typeof f !== 'object' || f === null || Array.isArray(f)) throw new Error(`${where} must have an "entity"`);
+ const o = f as Record;
+ // Left without an entity (half filled in the editor) it is ignored; a wrong one is an error.
+ if (o.entity !== undefined && !isEntityId(o.entity))
+ throw new Error(`"forecast.entity" of ${item.entity} must be an entity id`);
+ for (const k of ['attribute', 'value_key', 'time_key']) {
+ if (!text(o[k])) throw new Error(`"forecast.${k}" of ${item.entity} must be text`);
+ }
+ if (o.type !== undefined && !FORECAST_TYPES.includes(o.type as ForecastType)) {
+ throw new Error(`"forecast.type" of ${item.entity} must be one of: ${FORECAST_TYPES.join(', ')}`);
+ }
+ if (o.multiply !== undefined && !(typeof o.multiply === 'number' && Number.isFinite(o.multiply))) {
+ throw new Error(`"forecast.multiply" of ${item.entity} must be a number`);
+ }
+ }
+}
+
+/** One entity's forecast option, or undefined when it has none (or only a half-filled one). */
+export function forecastOf(entity: object): ForecastConfig | undefined {
+ const f = (entity as { forecast?: unknown }).forecast;
+ if (typeof f !== 'object' || f === null || !isEntityId((f as ForecastConfig).entity)) return undefined;
+ return { ...(f as ForecastConfig), entity: (f as ForecastConfig).entity.trim() };
+}
+
+/** How far past now the axis may reach for a forecast, in ms. */
+export function forecastReach(raw: CardConfig): number {
+ const hours = (raw as { forecast_hours?: unknown }).forecast_hours;
+ return (typeof hours === 'number' && hours > 0 ? hours : DEFAULT_FORECAST_HOURS) * 3_600_000;
+}
+
+/** Entities the card's forecasts read, so their changes redraw it. */
+export function forecastEntities(raw: CardConfig): string[] {
+ const ids = new Set();
+ for (const item of raw.entities ?? []) {
+ if (typeof item !== 'object') continue;
+ const f = forecastOf(item);
+ if (f) ids.add(f.entity);
+ }
+ return [...ids];
+}
+
+/* ------------------------------------------------------------------ maths ------------------------------------------------------------------ */
+
+/** A time as ms: ISO text, or a number in seconds (below 1e11) or ms. NaN when unreadable. */
+export function toTime(raw: unknown): number {
+ if (typeof raw === 'number') return raw < 1e11 ? raw * 1000 : raw;
+ if (typeof raw === 'string') {
+ const s = raw.trim();
+ if (/^\d+(\.\d+)?$/.test(s)) return toTime(Number(s));
+ return Date.parse(s);
+ }
+ if (raw instanceof Date) return raw.getTime();
+ return NaN;
+}
+
+const firstKey = (item: Record, keys: string[]) => keys.find((k) => item[k] !== undefined);
+
+/**
+ * A forecast as points, oldest first: from a list of objects (time and value read from
+ * `timeKey` / `valueKey`, or the first common key each has), a list of [time, value] pairs, or an
+ * object of time: value. Items with no readable time are dropped; a value that isn't a number is
+ * a gap. Values are multiplied by `multiply`.
+ */
+export function parseForecast(raw: unknown, valueKey?: string, timeKey?: string, multiply = 1): Point[] {
+ const out: Point[] = [];
+ const push = (t: number, v: unknown) => {
+ if (!Number.isFinite(t)) return;
+ const n = toReading(v);
+ out.push({ t, v: n === null ? null : n * multiply });
+ };
+ if (Array.isArray(raw)) {
+ for (const item of raw) {
+ if (Array.isArray(item)) {
+ push(toTime(item[0]), item[1]);
+ } else if (typeof item === 'object' && item !== null) {
+ const o = item as Record;
+ const tk = timeKey ?? firstKey(o, TIME_KEYS);
+ const vk = valueKey ?? firstKey(o, VALUE_KEYS);
+ if (tk === undefined) continue;
+ push(toTime(o[tk]), vk === undefined ? undefined : o[vk]);
+ }
+ }
+ } else if (typeof raw === 'object' && raw !== null) {
+ for (const [t, v] of Object.entries(raw as Record)) push(toTime(t), v);
+ }
+ out.sort((a, b) => a.t - b.t);
+ // One value per moment: the last given wins.
+ return out.filter((p, i) => i + 1 >= out.length || out[i + 1].t !== p.t);
+}
+
+/** The value a forecast gives at `t`, read along the straight line between its points. */
+export function valueAt(points: readonly Point[], t: number): number | null {
+ for (let i = 1; i < points.length; i++) {
+ const a = points[i - 1];
+ const b = points[i];
+ if (b.t < t) continue;
+ if (a.t > t || a.v === null || b.v === null) return null;
+ return b.t === a.t ? b.v : a.v + ((b.v - a.v) * (t - a.t)) / (b.t - a.t);
+ }
+ return null;
+}
+
+/**
+ * The part of a forecast to draw: from `now` (its value there read between the points either
+ * side) to the first point at or past `end`. Points before now are left out: history covers them.
+ */
+export function aheadOf(points: readonly Point[], now: number, end: number): Point[] {
+ const ahead: Point[] = [];
+ const atNow = valueAt(points, now);
+ if (atNow !== null) ahead.push({ t: now, v: atNow });
+ for (const p of points) {
+ if (p.t < now || (p.t === now && atNow !== null)) continue;
+ ahead.push(p);
+ if (p.t >= end) break;
+ }
+ return ahead;
+}
+
+/**
+ * Where the chart's span ends once forecasts are drawn: a span ending now reaches on to the last
+ * forecast reading, at most `reach` ms past now. A span that already runs past now (to the end of
+ * today) or ended in the past is left alone.
+ */
+export function extendedEnd(range: Range, live: boolean, now: number, last: number | undefined, reach: number): number {
+ if (!live || last === undefined || range.end < now - 1000 || range.end > now + 1000) return range.end;
+ return Math.max(range.end, Math.min(last, now + reach));
+}
+
+/* ------------------------------------------------------------- weather feed ------------------------------------------------------------- */
+
+/** The bit of Home Assistant's websocket connection the weather forecast needs. */
+interface Connection {
+ subscribeMessage?(callback: (message: T) => void, message: Record): Promise<() => void>;
+}
+
+interface Subscription {
+ /** What happens when it is no longer wanted. */
+ unsubscribe?: Promise<(() => void) | undefined>;
+ items?: unknown[];
+ closed: boolean;
+}
+
+const feeds = new WeakMap>();
+
+/**
+ * A weather entity's forecast items, from a subscription kept per card. The first call subscribes
+ * (redrawing the card through `onChange` as forecasts arrive); later calls return the latest.
+ * Undefined until the first one arrives, or when the connection can't subscribe.
+ */
+export function weatherForecast(
+ host: HTMLElement,
+ hass: HomeAssistant,
+ entity: string,
+ type: ForecastType,
+ onChange: () => void,
+): unknown[] | undefined {
+ let subs = feeds.get(host);
+ if (!subs) {
+ subs = new Map();
+ feeds.set(host, subs);
+ }
+ const k = `${entity}|${type}`;
+ let sub = subs.get(k);
+ if (!sub) {
+ const connection = (hass as { connection?: Connection }).connection;
+ const made: Subscription = { closed: false };
+ sub = made;
+ subs.set(k, made);
+ const call = connection?.subscribeMessage?.<{ forecast?: unknown[] | null }>(
+ (message) => {
+ if (made.closed) return;
+ made.items = Array.isArray(message?.forecast) ? message.forecast : [];
+ onChange();
+ },
+ { type: 'weather/subscribe_forecast', entity_id: entity, forecast_type: type },
+ );
+ // A failed subscription (the entity has no such forecast) leaves the chart without it.
+ made.unsubscribe = call?.then(
+ (stop) => stop,
+ () => undefined,
+ );
+ }
+ return sub.items;
+}
+
+/** Drop a card's weather subscriptions except those in `keep` (entity|type). */
+function closeFeeds(host: HTMLElement, keep: Set): void {
+ const subs = feeds.get(host);
+ if (!subs) return;
+ for (const [k, sub] of subs) {
+ if (keep.has(k)) continue;
+ sub.closed = true;
+ void sub.unsubscribe?.then((stop) => stop?.());
+ subs.delete(k);
+ }
+}
+
+/** Stop a card's weather subscriptions (it leaves the page). */
+export function stopForecast(host: HTMLElement): void {
+ closeFeeds(host, new Set());
+ feeds.delete(host);
+}
+
+/**
+ * One forecast's items: its attribute when it names one; for a weather entity without one, the
+ * old `forecast` attribute if present, else the subscription; for anything else, `forecast`.
+ */
+export function forecastItems(ctx: ChartContext, f: ForecastConfig): unknown {
+ const state = ctx.hass.states[f.entity];
+ if (f.attribute) return state?.attributes?.[f.attribute];
+ if (f.entity.startsWith('weather.')) {
+ const old = state?.attributes?.forecast;
+ if (Array.isArray(old)) return old;
+ return weatherForecast(ctx.host, ctx.hass, f.entity, f.type ?? 'hourly', ctx.requestUpdate);
+ }
+ return state?.attributes?.forecast;
+}
+
+/* ---------------------------------------------------------------- the layer ---------------------------------------------------------------- */
+
+export interface ForecastLayer {
+ /** The frame with its range stretched to show the forecasts (the same frame when there are none). */
+ frame: HistoryFrame;
+ /** One series per forecast, dashed in its series' colour, its points from now on. */
+ series: ChartSeries[];
+}
+
+/**
+ * The card's forecasts for a history frame: each entity's forecast read and cut to what lies
+ * ahead, and the frame's range stretched past now to show them (see `extendedEnd`).
+ */
+export function forecastLayer(ctx: ChartContext, frame: HistoryFrame, now = Date.now()): ForecastLayer {
+ const wanted = new Set();
+ const parsed: { s: ChartSeries; points: Point[] }[] = [];
+ for (const s of frame.series) {
+ const f = forecastOf(s.entity.config);
+ if (!f) continue;
+ if (!f.attribute && f.entity.startsWith('weather.')) wanted.add(`${f.entity}|${f.type ?? 'hourly'}`);
+ // Weather temperatures come under `temperature`, so that is the first guess for them.
+ const valueKey = f.value_key ?? (f.entity.startsWith('weather.') ? 'temperature' : undefined);
+ // A forecast (after `multiply`) is in the sensor's own unit, like the line it carries on; a
+ // series shown in another unit (W shown as kW) converts its forecast the same way.
+ const points = convertPoints(
+ parseForecast(forecastItems(ctx, f), valueKey, f.time_key, f.multiply ?? 1),
+ s.entity.conversion,
+ );
+ if (points.length > 0) parsed.push({ s, points });
+ }
+ closeFeeds(ctx.host, wanted);
+ if (parsed.length === 0) return { frame, series: [] };
+ const last = Math.max(...parsed.map((p) => p.points[p.points.length - 1].t));
+ const end = extendedEnd(frame.range, frame.live, now, last, forecastReach(ctx.raw));
+ const range = end === frame.range.end ? frame.range : { ...frame.range, end };
+ const series = parsed
+ .map(({ s, points }) => ({ ...s, points: aheadOf(points, now, range.end), dash: true }))
+ .filter((s) => s.points.some((p) => p.v !== null));
+ return { frame: range === frame.range ? frame : { ...frame, range }, series };
+}
+
+/** The forecast lines, dashed in their series' colours, for the plot's SVG. */
+export function forecastLines(series: readonly ChartSeries[], scales: PlotScales): SVGTemplateResult | typeof nothing {
+ if (series.length === 0) return nothing;
+ return svg`${series.map((s) => {
+ const d = runs(downsample(s.points, 500))
+ .map((run) =>
+ runPath(
+ run.map((p) => [scales.x(p.t), scales.y(p.v as number)]),
+ s.curve,
+ ),
+ )
+ .join('');
+ return svg` `;
+ })} `;
+}
+
+/**
+ * The forecasts as the tooltip should list them: named "… forecast", with a gap at the chart's
+ * start so a time before the forecast begins reads as none rather than its first value.
+ */
+export function forecastTooltipSeries(ctx: ChartContext, series: readonly ChartSeries[], start: number): ChartSeries[] {
+ return series.map((s) => ({
+ ...s,
+ entity: { ...s.entity, name: localize(ctx.hass, 'forecast_series', { name: s.entity.name }) },
+ points: s.points[0] && s.points[0].t > start ? [{ t: start, v: null }, ...s.points] : s.points,
+ }));
+}
+
+const pct = (n: number) => `${Math.round(n * 10000) / 100}%`;
+
+/** A small "Forecast" label where the forecasts begin, at the top of the plot. */
+export function forecastLabel(
+ ctx: ChartContext,
+ series: readonly ChartSeries[],
+ scales: PlotScales,
+): TemplateResult | typeof nothing {
+ const start = Math.min(...series.map((s) => s.points[0]?.t ?? Infinity));
+ if (!Number.isFinite(start)) return nothing;
+ const left = scales.x(start) / VIEW_W;
+ if (!(left >= 0 && left < 0.97)) return nothing;
+ return html`${localize(ctx.hass, 'forecast_label')} `;
+}
+
+export const forecastStyles = css`
+ .plot .forecast-line {
+ stroke-width: 2;
+ stroke-dasharray: 6 5;
+ stroke-linecap: round;
+ stroke-linejoin: round;
+ opacity: 0.85;
+ }
+ .forecast-label {
+ position: absolute;
+ top: 0;
+ transform: translateX(4px);
+ font-size: 10px;
+ line-height: 1.2;
+ padding: 1px 4px;
+ border-radius: 3px;
+ pointer-events: none;
+ white-space: nowrap;
+ color: var(--secondary-text-color);
+ background: color-mix(in srgb, var(--card-background-color, #fff) 82%, transparent);
+ border-left: 1px dashed var(--secondary-text-color);
+ }
+ .forecast-label.end {
+ transform: translateX(calc(-100% - 4px));
+ border-left: none;
+ border-right: 1px dashed var(--secondary-text-color);
+ }
+`;
+
+/* ---------------------------------------------------------------- editor ---------------------------------------------------------------- */
+
+/** Each series' forecast, in its options. */
+export const FORECAST_ENTITY_FIELDS: FieldBinding[] = [
+ { name: 'forecast_entity', path: ['forecast', 'entity'] },
+ { name: 'forecast_attribute', path: ['forecast', 'attribute'] },
+ { name: 'forecast_value_key', path: ['forecast', 'value_key'] },
+ { name: 'forecast_time_key', path: ['forecast', 'time_key'] },
+ { name: 'forecast_type', path: ['forecast', 'type'] },
+ { name: 'forecast_multiply', path: ['forecast', 'multiply'] },
+];
+
+/** The card's reach past now, in its Chart section. */
+export const FORECAST_FIELDS: FieldBinding[] = [
+ { name: 'forecast_hours', path: ['forecast_hours'], default: DEFAULT_FORECAST_HOURS },
+];
+
+const FORECAST_SCHEMA = [
+ { name: 'forecast_hours', selector: { number: { min: 1, max: 336, mode: 'box', unit_of_measurement: 'h' } } },
+];
+
+/** Part of the Chart section's cache key: whether any entity has a forecast. */
+export const forecastVariant = (config: CardConfig | undefined) =>
+ config && forecastEntities(config).length > 0 ? 'forecast' : '';
+
+/** The reach past now, shown once an entity has a forecast (cache under `forecastVariant`). */
+export function forecastSchema(config: CardConfig | undefined): unknown[] {
+ return forecastVariant(config) ? FORECAST_SCHEMA : [];
+}
+
+const entitySchemas = new Map();
+const entityFieldLists = new WeakMap();
+
+/**
+ * A series' options with its forecast added in a folding section after `base` (built once per
+ * language and base, so ha-form keeps the same schema).
+ */
+export function withForecastFields(
+ hass: HomeAssistant | undefined,
+ base: { schema: unknown[]; fields: FieldBinding[] },
+): { schema: unknown[]; fields: FieldBinding[] } {
+ const k = languageOf(hass);
+ let cached = entitySchemas.get(k);
+ if (!cached || cached.base !== base.schema) {
+ const t = (key: string) => localize(hass, key);
+ cached = {
+ base: base.schema,
+ schema: [
+ ...base.schema,
+ {
+ type: 'expandable',
+ name: '',
+ flatten: true,
+ title: t('editor_forecast_title'),
+ schema: [
+ { name: 'forecast_entity', selector: { entity: {} } },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'forecast_attribute', selector: { text: {} } },
+ {
+ name: 'forecast_type',
+ selector: {
+ select: {
+ mode: 'dropdown',
+ options: FORECAST_TYPES.map((value) => ({ value, label: t(`editor_forecast_type_${value}`) })),
+ },
+ },
+ },
+ { name: 'forecast_value_key', selector: { text: {} } },
+ { name: 'forecast_time_key', selector: { text: {} } },
+ { name: 'forecast_multiply', selector: { number: { mode: 'box', step: 'any' } } },
+ ],
+ },
+ ],
+ },
+ ],
+ };
+ entitySchemas.set(k, cached);
+ }
+ let fields = entityFieldLists.get(base.fields);
+ if (!fields) {
+ fields = [...base.fields, ...FORECAST_ENTITY_FIELDS];
+ entityFieldLists.set(base.fields, fields);
+ }
+ return { schema: cached.schema, fields };
+}
diff --git a/src/chart/frame.ts b/src/chart/frame.ts
index 6e2396a..2024750 100644
--- a/src/chart/frame.ts
+++ b/src/chart/frame.ts
@@ -1,12 +1,26 @@
import { css, html, nothing, svg } from 'lit';
import type { SVGTemplateResult, TemplateResult } from 'lit';
+import { isInteractive } from '../actions';
import { baseColor } from '../bands';
import { parsePeriod, periodRange, setSteps, stepsFor } from '../history/period';
import type { Period } from '../history/period';
+import { belowAxis, energyValueText } from '../history/energy';
+import type { EnergyMarks } from '../history/energy';
import { key } from '../history/fetch';
import { PERIOD_MS, groupHistory, groupStatistics, parseGrouping, statisticsQueryFor } from '../history/group';
import type { Aggregate, Grouping } from '../history/group';
import { pauseStore, storeFor } from '../history/store';
+import { cumulativeSeries, validateCumulative } from '../history/transform-cumulative';
+import { derivativeSeries, validateDerivative } from '../history/transform-derivative';
+import {
+ conditionOf,
+ conditionStatus,
+ conditionalPoints,
+ loadConditions,
+ pauseConditions,
+ validateConditions,
+} from '../history/condition';
+import type { Conditions } from '../history/condition';
import { boundaries, startOf, wallTime, zoneFor } from '../history/timezone';
import type { Zone } from '../history/timezone';
import type { Point, Range, Source } from '../history/types';
@@ -14,6 +28,10 @@ import { localize } from '../localize';
import type { ResolvedEntity } from '../resolve';
import type { ChartContext } from '../styles/index';
import type { CardConfig } from '../types';
+import { convertPoints } from '../units';
+import { allHiddenMessage, legendToggleHeader, legendToggleStyles, withLegend } from './legend-toggle';
+import type { LegendItems } from './legend-toggle';
+import { rememberPlotted } from './export';
import { CURVES } from './paths';
import type { Curve } from './paths';
@@ -34,6 +52,13 @@ export interface ChartSeries {
color: string;
curve: Curve;
dash: boolean;
+ /** The readings as loaded, before grouping (trimmed to the range), for spreads within a group. */
+ readings?: Point[];
+ /**
+ * A series with a `when`, when the chart asks for it (`FrameOptions.ghost`): every reading,
+ * kept or not, prepared like `points`, for the faint line behind it.
+ */
+ hidden?: Point[];
}
export interface HistoryFrame {
@@ -51,12 +76,19 @@ export interface HistoryFrame {
zone: Zone;
/** Set when readings are grouped: each point is then one group, from `t` to `end`. */
group?: Grouping;
+ /** The conditions' states (the card or a series has a `when`), for the strip under the plot. */
+ conditions?: Conditions;
+ /** Set while the header's names toggle series (`legend_toggle`): every series, hidden ones too. */
+ legend?: LegendItems;
}
/** Checks for the options every history chart shares. */
export function validateHistoryOptions(raw: CardConfig): void {
parsePeriod(raw.period as CardConfig['period']);
parseGrouping(raw);
+ validateCumulative(raw);
+ validateDerivative(raw);
+ validateConditions(raw);
if (raw.source !== undefined && !SOURCES.includes(raw.source as Source)) {
throw new Error(`"source" must be one of: ${SOURCES.join(', ')}`);
}
@@ -80,6 +112,30 @@ export interface FrameOptions {
aggregate?: (entity: ResolvedEntity) => Aggregate | undefined;
/** Keep each state's words (`Point.s`) instead of reading numbers, for charts of states like "on" or "heat". */
text?: boolean;
+ /** Grouped statistics: load hourly rows and group them here, so each group keeps its rows. */
+ hourly?: boolean;
+ /** Also keep every reading of a series with a `when` (`ChartSeries.hidden`), for the faint line behind it. */
+ ghost?: boolean;
+}
+
+/**
+ * One series' readings with its entity's history transform applied (`transform: cumulative`, a
+ * running total; `transform: derivative`, a rate of change), and the entity with its value and
+ * unit to match. Readings that are already in the shown unit go in (unit conversion comes first);
+ * an entity without a transform comes back as it was. Every chart that draws history as numbers
+ * calls this: the frame here, and box plot, candlestick and the 24-hour clock, which load their own.
+ */
+export function seriesTransform(
+ entity: ResolvedEntity,
+ points: Point[],
+ range: Range,
+ until: number,
+ zone: Zone,
+ hass: ChartContext['hass'],
+): { entity: ResolvedEntity; points: Point[] } {
+ ({ entity, points } = cumulativeSeries(entity, points, range, until, zone, hass));
+ ({ entity, points } = derivativeSeries(entity, points, hass, until));
+ return { entity, points };
}
/** Load (or reuse) the card's history and pair it with its entities. */
@@ -97,51 +153,85 @@ export function historyFrame(ctx: ChartContext, now = Date.now(), options: Frame
...(options.text ? { text: true } : {}),
}));
const store = storeFor(ctx.host, ctx.requestUpdate);
- const statistics =
+ let statistics =
group && source === 'statistics'
? statisticsQueryFor(group, zone, ctx.hass.config?.time_zone, options.range === true)
: undefined;
+ if (statistics && options.hourly) statistics = { ...statistics, period: 'hour' };
// Statistics groups load from one row early: the row before a group gives its `first`.
const load = statistics ? { start: range.start - PERIOD_MS[statistics.period], end: range.end } : range;
const loaded = store.get(ctx.hass, requests, load, source, { live: span.live, statistics });
+ // Series with a `when` keep only the readings taken while their condition held.
+ const conditions = loadConditions(
+ ctx.host,
+ ctx.hass,
+ ctx.items.map((e) => e.config),
+ load,
+ span.live,
+ ctx.requestUpdate,
+ ctx.raw,
+ );
const bounds = group ? boundaries(group.unit, range.start, range.end, zone) : [];
const cardCurve = (ctx.raw.curve as Curve | undefined) ?? 'smooth';
// Readings stop at the present, even when the span runs on to the end of today.
const until = Math.min(range.end, now);
- const series = ctx.items.map((entity, index): ChartSeries => {
- const own = entity.config as typeof entity.config & { color?: string; curve?: Curve; dash?: boolean };
- let points = loaded.data.get(key(requests[index])) ?? [];
+ // Grouped, or carried on to the right edge: a sensor holds its last reading until it changes.
+ const prepare = (entity: ResolvedEntity, points: Point[]): Point[] => {
const last = points[points.length - 1];
if (group) {
- points =
- source === 'statistics'
- ? groupStatistics(points, bounds, group.aggregate, until, options.range === true)
- : groupHistory(points, bounds, options.aggregate?.(entity) ?? group.aggregate, until, options.range === true);
- } else if (source === 'history' && last && last.v !== null && last.t < until) {
- // A sensor holds its last reading until it changes, so carry it on to the right edge.
- points = [...points, { t: until, v: last.v }];
+ return source === 'statistics'
+ ? groupStatistics(points, bounds, group.aggregate, until, options.range === true)
+ : groupHistory(points, bounds, options.aggregate?.(entity) ?? group.aggregate, until, options.range === true);
}
- return {
+ if (source === 'history' && last && last.v !== null && last.t < until) return [...points, { t: until, v: last.v }];
+ return points;
+ };
+ // Per series, in this order: readings in the shown unit (unit conversion), then only those taken
+ // while its condition held (`when`), then its transform (running total, rate of change).
+ const transform = (entity: ResolvedEntity, points: Point[]) =>
+ options.text ? { entity, points } : seriesTransform(entity, points, range, until, zone, ctx.hass);
+ const series = ctx.items.map((loadedEntity, index): ChartSeries => {
+ const own = loadedEntity.config as typeof loadedEntity.config & { color?: string; curve?: Curve; dash?: boolean };
+ const all = convertPoints(loaded.data.get(key(requests[index])) ?? [], loadedEntity.conversion);
+ const { entity, points: readings } = transform(
+ loadedEntity,
+ conditionalPoints(loadedEntity.config, all, conditions),
+ );
+ // Energy leaving the house (source: energy, split) is drawn below the axis.
+ const below = (entity.config as EnergyMarks).energy_below ? belowAxis : (points: Point[]) => points;
+ const out: ChartSeries = {
index,
entity,
- points,
+ points: below(prepare(entity, readings)),
color: baseColor(own.color ?? SERIES_COLORS[index % SERIES_COLORS.length]),
curve: own.curve ?? cardCurve,
dash: own.dash === true,
+ readings,
};
+ if (options.ghost && conditions && conditionOf(loadedEntity.config, ctx.raw)) {
+ out.hidden = below(prepare(entity, transform(loadedEntity, all).points));
+ }
+ return out;
});
- return {
- status: loaded.status,
- error: loaded.error,
- range,
- period,
- source,
- series,
- live: span.live,
- back: span.back,
- zone,
- group,
- };
+ const frame = withLegend(
+ {
+ status: conditionStatus(loaded.status, conditions),
+ error: loaded.error,
+ range,
+ period,
+ source,
+ series,
+ live: span.live,
+ back: span.back,
+ zone,
+ group,
+ ...(conditions ? { conditions } : {}),
+ },
+ ctx,
+ );
+ // What was drawn, for the export menu's CSV: the series on show (names can hide some).
+ rememberPlotted(ctx.host, frame.series);
+ return frame;
}
const plural = (n: number, one: string, many: string) => (n === 1 ? one : many);
@@ -314,21 +404,35 @@ const periodNavStyles = css`
/** Pause a card's history when it leaves the page; it carries on (or reloads) when it returns. */
export function disconnectHistory(host: HTMLElement): void {
pauseStore(host);
+ pauseConditions(host);
}
-/** The row above the chart: each series' colour, name and current value; tapping one opens it. */
+/**
+ * The row above the chart: each series' colour, name and current value; tapping one opens it,
+ * or hides and shows it when the card's names toggle series. An Energy dashboard series shows
+ * its total over the span instead (see `energyValueText`).
+ */
export function seriesHeader(frame: HistoryFrame, ctx: ChartContext): TemplateResult | typeof nothing {
const { show } = ctx.config;
if (!show.name && !show.value) return nothing;
+ if (frame.legend) return legendToggleHeader(frame.legend, ctx, frame.group);
return html``;
}
@@ -340,6 +444,7 @@ export function frameMessage(frame: HistoryFrame, ctx: ChartContext): TemplateRe
${localize(ctx.hass, 'chart_error', { error: frame.error ?? '' })}
`;
}
+ if (frame.legend && frame.series.length === 0) return allHiddenMessage(ctx);
if (frame.series.every((s) => s.points.every((p) => p.v === null))) {
return html`
${localize(ctx.hass, 'chart_no_data')}
`;
}
@@ -378,6 +483,7 @@ export function plot(
/** Shared look for every history chart. */
export const frameStyles = css`
${periodNavStyles}
+ ${legendToggleStyles}
.series-header {
display: flex;
flex-wrap: wrap;
@@ -392,6 +498,9 @@ export const frameStyles = css`
cursor: pointer;
border-radius: 4px;
}
+ .series-item.inert {
+ cursor: default;
+ }
.series-item:focus-visible {
outline: 2px solid var(--primary-color);
outline-offset: 2px;
diff --git a/src/chart/grid.ts b/src/chart/grid.ts
index 6e1d1a6..1314b77 100644
--- a/src/chart/grid.ts
+++ b/src/chart/grid.ts
@@ -193,6 +193,9 @@ export interface ChartAreaOptions {
classes?: string;
/** Under the plot and its time labels, lined up with the plot (an overview strip). */
below?: TemplateResult | typeof nothing;
+ /** Extra classes and inline style on the whole frame, for what `below` needs (its height). */
+ wrapClasses?: string;
+ wrapStyle?: string;
}
/** Every pointer handler the plot area can take. */
@@ -225,6 +228,8 @@ export function chartArea({
gestures,
classes = '',
below = nothing,
+ wrapClasses = '',
+ wrapStyle = '',
}: ChartAreaOptions) {
const { options } = axes;
const outside = options.labels === 'outside';
@@ -251,8 +256,8 @@ export function chartArea({
const rLabels = r
? html`
${outside ? rSizer : nothing}${rightLabels(r, ctx)}
`
: nothing;
- const wrap = `plot-wrap axes-${options.labels} ${y ? 'has-y' : ''} ${x ? 'has-x' : ''} ${r ? 'has-right' : ''} ${below === nothing ? '' : 'has-overview'}`;
- return html`
+ const wrap = `plot-wrap axes-${options.labels} ${y ? 'has-y' : ''} ${x ? 'has-x' : ''} ${r ? 'has-right' : ''} ${below === nothing ? '' : 'has-overview'} ${wrapClasses}`;
+ return html`
${outside && y ? html`
${sizer}${yTicks}
` : nothing}
;
+}
+
+/**
+ * Toggling is on, and its header can be reached: the header is drawn (not hidden, not split into
+ * small multiples, and showing a name or a value). Otherwise nothing is hidden, so a series can
+ * never be left out with no way to bring it back.
+ */
+export function legendToggleActive(ctx: Pick
): boolean {
+ const { raw } = ctx;
+ if (raw.legend_toggle !== true || raw.header === 'hidden' || raw.multiples === true) return false;
+ return ctx.config.show.name || ctx.config.show.value;
+}
+
+/** One series' name in the hidden set: its entity, and the attribute when it plots one. */
+export function seriesKey(entity: Pick): string {
+ const attribute = entity.config.attribute;
+ return attribute ? `${entity.entityId}|${attribute}` : entity.entityId;
+}
+
+/** A short, stable fingerprint of the card's config (FNV-1a), naming its stored hidden set. */
+export function configHash(raw: unknown): string {
+ const text = JSON.stringify(raw) ?? '';
+ let h = 0x811c9dc5;
+ for (let i = 0; i < text.length; i++) {
+ h ^= text.charCodeAt(i);
+ h = Math.imul(h, 0x01000193);
+ }
+ return (h >>> 0).toString(36);
+}
+
+/** `key` hidden if it was shown, shown if it was hidden. */
+export function toggled(hidden: ReadonlySet, key: string): Set {
+ const next = new Set(hidden);
+ if (next.has(key)) next.delete(key);
+ else next.add(key);
+ return next;
+}
+
+/**
+ * Only `key` shown, every other series hidden. Asked again when that is already so, everything
+ * comes back.
+ */
+export function isolated(hidden: ReadonlySet, keys: string[], key: string): Set {
+ const others = keys.filter((k) => k !== key);
+ const alone = !hidden.has(key) && others.every((k) => hidden.has(k));
+ return alone ? new Set() : new Set(others);
+}
+
+interface CardLegend {
+ storageKey: string;
+ hidden: Set;
+ /** A press in progress on a name: its hold timer, and whether it already fired. */
+ timer?: ReturnType;
+ held: boolean;
+}
+
+const cards = new WeakMap();
+
+function storage(): Storage | undefined {
+ try {
+ return globalThis.localStorage ?? undefined;
+ } catch {
+ return undefined;
+ }
+}
+
+function load(storageKey: string): Set {
+ try {
+ const stored = JSON.parse(storage()?.getItem(storageKey) ?? '[]');
+ return new Set(Array.isArray(stored) ? stored.filter((k): k is string => typeof k === 'string') : []);
+ } catch {
+ return new Set();
+ }
+}
+
+function save(state: CardLegend): void {
+ try {
+ const store = storage();
+ if (!store) return;
+ if (state.hidden.size === 0) store.removeItem(state.storageKey);
+ else store.setItem(state.storageKey, JSON.stringify([...state.hidden]));
+ } catch {
+ // Private windows and full storage: the set still holds on the card until the page reloads.
+ }
+}
+
+function stateFor(ctx: Pick): CardLegend {
+ const storageKey = STORAGE_PREFIX + configHash(ctx.raw);
+ let state = cards.get(ctx.host);
+ if (!state || state.storageKey !== storageKey) {
+ state = { storageKey, hidden: load(storageKey), held: false };
+ cards.set(ctx.host, state);
+ }
+ return state;
+}
+
+/** The series this card has hidden (keys from `seriesKey`). */
+export function hiddenSeries(ctx: Pick): ReadonlySet {
+ return stateFor(ctx).hidden;
+}
+
+/**
+ * The frame with hidden series left out of `series` (and so out of the drawing, the axis, the
+ * tooltip) and every series kept in `legend` for the header. `locked` series are always drawn.
+ * Each series keeps its `index` and colour, so nothing else shifts when one is hidden.
+ */
+export function withLegend(
+ frame: F,
+ ctx: ChartContext,
+ locked: (s: ChartSeries) => boolean = () => false,
+): F & { legend?: LegendItems } {
+ if (!legendToggleActive(ctx)) return frame;
+ const hidden = hiddenSeries(ctx);
+ const lockedSet = new Set(frame.series.filter(locked).map((s) => s.index));
+ return {
+ ...frame,
+ legend: { all: frame.series, locked: lockedSet },
+ series: frame.series.filter((s) => lockedSet.has(s.index) || !hidden.has(seriesKey(s.entity))),
+ };
+}
+
+function update(ctx: ChartContext, next: Set): void {
+ const state = stateFor(ctx);
+ state.hidden = next;
+ save(state);
+ ctx.requestUpdate();
+}
+
+/** The header's names as toggles: tap hides or shows, hold (or shift-click) shows only that one. */
+export function legendToggleHeader(legend: LegendItems, ctx: ChartContext, group?: Grouping): TemplateResult {
+ const { show } = ctx.config;
+ const state = stateFor(ctx);
+ const keys = legend.all.filter((s) => !legend.locked.has(s.index)).map((s) => seriesKey(s.entity));
+ const clear = () => {
+ if (state.timer !== undefined) clearTimeout(state.timer);
+ state.timer = undefined;
+ };
+ const isolate = (key: string) => update(ctx, isolated(stateFor(ctx).hidden, keys, key));
+ const hint = localize(ctx.hass, 'legend_toggle_hint');
+ return html``;
+}
+
+/** Shown in place of the plot while every series is hidden. */
+export function allHiddenMessage(ctx: ChartContext): TemplateResult {
+ return html`${localize(ctx.hass, 'legend_toggle_all_hidden')}
`;
+}
+
+export const legendToggleStyles = css`
+ .series-toggle {
+ font: inherit;
+ color: inherit;
+ background: none;
+ border: none;
+ padding: 2px 6px;
+ margin: -2px -6px;
+ border-radius: 12px;
+ text-align: start;
+ -webkit-tap-highlight-color: transparent;
+ touch-action: manipulation;
+ user-select: none;
+ -webkit-user-select: none;
+ }
+ .series-toggle:hover {
+ background: color-mix(in srgb, var(--primary-text-color) 8%, transparent);
+ }
+ .series-toggle.off .swatch {
+ opacity: 0.35;
+ }
+ .series-toggle.off .series-name,
+ .series-toggle.off .series-value {
+ opacity: 0.6;
+ text-decoration: line-through;
+ }
+`;
diff --git a/src/chart/marimekko.ts b/src/chart/marimekko.ts
new file mode 100644
index 0000000..b9a55a8
--- /dev/null
+++ b/src/chart/marimekko.ts
@@ -0,0 +1,108 @@
+/**
+ * Marimekko (mosaic) maths: one column per group, as wide as the group's share of the whole, cut
+ * into one segment per entity, as tall as its share of the column. Pure functions in pixel units.
+ */
+
+/** One entity as a part of the chart. */
+export interface MekkoCell {
+ /** Index into the card's items, for tap actions. */
+ index: number;
+ /** The column it goes in. */
+ group: string;
+ /** What it is a share of the column for: the colour and the legend. */
+ category: string;
+ /** Its size; anything not a positive number counts as nothing. */
+ value: number | null;
+}
+
+export interface MekkoSegment {
+ cell: MekkoCell;
+ value: number;
+ /** Share of its column, 0–1. */
+ share: number;
+ /** Where the category sits in the legend (and so its colour). */
+ category: number;
+ y: number;
+ h: number;
+}
+
+export interface MekkoColumn {
+ name: string;
+ total: number;
+ /** Share of the whole chart, 0–1. */
+ share: number;
+ x: number;
+ w: number;
+ segments: MekkoSegment[];
+}
+
+export interface MekkoLayout {
+ columns: MekkoColumn[];
+ /** Categories in legend order. */
+ categories: string[];
+ total: number;
+}
+
+export type MekkoSort = 'none' | 'ascending' | 'descending';
+
+/** A cell's size: its value when that is a positive number, else 0. */
+export function cellValue(v: number | null): number {
+ return v !== null && Number.isFinite(v) && v > 0 ? v : 0;
+}
+
+/**
+ * Lay the cells out in a `width` × `height` box with `gap` px between columns. Columns come in the
+ * order their group first appears, or by total when sorted. Categories keep the order they first
+ * appear in, and every column stacks them the same way from the bottom up, so a colour sits at
+ * the same place in each. Columns and cells with nothing to show are left out.
+ */
+export function marimekkoLayout(
+ cells: MekkoCell[],
+ width: number,
+ height: number,
+ gap: number,
+ sort: MekkoSort = 'none',
+): MekkoLayout {
+ const shown = cells.filter((c) => cellValue(c.value) > 0);
+ const categories: string[] = [];
+ for (const c of shown) if (!categories.includes(c.category)) categories.push(c.category);
+ const groups: { name: string; cells: MekkoCell[]; total: number }[] = [];
+ for (const c of shown) {
+ let g = groups.find((x) => x.name === c.group);
+ if (!g) {
+ g = { name: c.group, cells: [], total: 0 };
+ groups.push(g);
+ }
+ g.cells.push(c);
+ g.total += cellValue(c.value);
+ }
+ if (sort !== 'none') {
+ const order = new Map(groups.map((g, i) => [g, i]));
+ const dir = sort === 'ascending' ? 1 : -1;
+ groups.sort((a, b) => dir * (a.total - b.total) || order.get(a)! - order.get(b)!);
+ }
+ const total = groups.reduce((s, g) => s + g.total, 0);
+ const room = Math.max(0, width - gap * Math.max(0, groups.length - 1));
+ let x = 0;
+ const columns = groups.map((g) => {
+ const share = total > 0 ? g.total / total : 0;
+ const w = share * room;
+ const cat = (c: MekkoCell) => categories.indexOf(c.category);
+ const ordered = g.cells
+ .map((c, i) => ({ c, i }))
+ .sort((a, b) => cat(a.c) - cat(b.c) || a.i - b.i)
+ .map(({ c }) => c);
+ let y = height;
+ const segments = ordered.map((cell) => {
+ const value = cellValue(cell.value);
+ const s = value / g.total;
+ const h = s * height;
+ y -= h;
+ return { cell, value, share: s, category: cat(cell), y, h };
+ });
+ const column = { name: g.name, total: g.total, share, x, w, segments };
+ x += w + gap;
+ return column;
+ });
+ return { columns, categories, total };
+}
diff --git a/src/chart/multiples.ts b/src/chart/multiples.ts
index 611fd93..e4347c7 100644
--- a/src/chart/multiples.ts
+++ b/src/chart/multiples.ts
@@ -98,12 +98,14 @@ export function multiplesGrid(
// (temperatures on a power scale would be flat lines).
const units = new Set(frame.series.map((s) => s.entity.unit).filter((u) => u !== ''));
const share = options.scale === 'shared' || (options.scale === 'auto' && units.size <= 1);
- const shared = share ? extent(frame.series.map((s) => s.points)) : undefined;
+ // A series' faint line of hidden readings (`hidden`) fits on its axis too.
+ const lists = (s: ChartSeries) => (s.hidden ? [s.points, s.hidden] : [s.points]);
+ const shared = share ? extent(frame.series.flatMap(lists)) : undefined;
const { show } = ctx.config;
const grid = `grid-template-columns:repeat(${cols}, minmax(0, 1fr))`;
return html`
${frame.series.map((s) => {
- const axes = plotAxes(ctx, frame.range, shared ?? extent([s.points]), panel, PANEL_GAPS);
+ const axes = plotAxes(ctx, frame.range, shared ?? extent(lists(s)), panel, PANEL_GAPS);
const title =
show.name || show.value
? html`
diff --git a/src/chart/now-marker.ts b/src/chart/now-marker.ts
new file mode 100644
index 0000000..c872d87
--- /dev/null
+++ b/src/chart/now-marker.ts
@@ -0,0 +1,234 @@
+import { css, html, nothing } from 'lit';
+import type { TemplateResult } from 'lit';
+import type { Range } from '../history/types';
+import { localize } from '../localize';
+import type { ChartContext } from '../styles/index';
+import type { CardConfig, HomeAssistant } from '../types';
+import { annotationsOf, labelWidth, markTimes, timeList } from './annotations';
+import { formatTime } from './axes';
+import { formatClockDuration } from './day-clock';
+import { VIEW_W } from './frame';
+import type { HistoryFrame } from './frame';
+import type { PlotScales } from './grid';
+
+/**
+ * A "now" line on a history chart whose span runs past the present (today, this week, a span
+ * that ends later): a vertical line at the current time that moves once a minute, with an
+ * optional label giving the time, or counting down to the next set time an annotation marks
+ * ("Peak rate in 1 h 12 m").
+ *
+ * now_marker: countdown # off (default) | line | time | countdown
+ */
+export const NOW_MARKER = ['off', 'line', 'time', 'countdown'] as const;
+export type NowMarker = (typeof NOW_MARKER)[number];
+
+const MINUTE = 60_000;
+/** How far ahead a countdown looks for the next mark. */
+const LOOK_AHEAD = 2 * 86_400_000;
+
+export function validateNowMarker(raw: CardConfig): void {
+ const v = raw.now_marker;
+ if (v !== undefined && !NOW_MARKER.includes(v as NowMarker)) {
+ throw new Error(`"now_marker" must be one of: ${NOW_MARKER.join(', ')}`);
+ }
+}
+
+export function nowMarkerOf(raw: CardConfig): NowMarker {
+ return NOW_MARKER.includes(raw.now_marker as NowMarker) ? (raw.now_marker as NowMarker) : 'off';
+}
+
+/**
+ * Whether the present falls inside `view` with room to show: a rolling span ends at the present,
+ * so its line would sit on the right edge and is left out.
+ */
+export function nowInView(view: Range, now: number): boolean {
+ const margin = (view.end - view.start) / 200;
+ return now > view.start && now < view.end - margin;
+}
+
+/** The next moment, after `now`, that one of the card's time annotations marks, and its label. */
+export function nextMark(
+ raw: CardConfig,
+ now: number,
+ zone: HistoryFrame['zone'],
+): { t: number; label?: string } | undefined {
+ let best: { t: number; label?: string } | undefined;
+ for (const a of annotationsOf(raw)) {
+ if (a.type !== 'time') continue;
+ const t = markTimes(timeList(a.times), { start: now + 1, end: now + LOOK_AHEAD }, zone)[0];
+ if (t !== undefined && (!best || t < best.t)) best = { t, label: a.label };
+ }
+ return best;
+}
+
+/** The label's text for the chosen mode; empty for a bare line. */
+export function nowLabel(
+ mode: NowMarker,
+ raw: CardConfig,
+ now: number,
+ zone: HistoryFrame['zone'],
+ hass: HomeAssistant | undefined,
+): string {
+ if (mode === 'countdown') {
+ const next = nextMark(raw, now, zone);
+ if (next) {
+ // Rounded up to the minute, so the count never reads "0 m" before the moment comes.
+ const left = formatClockDuration(Math.ceil((next.t - now) / MINUTE) * MINUTE);
+ return next.label
+ ? localize(hass, 'now_marker_countdown', { label: next.label, duration: left })
+ : localize(hass, 'now_marker_next', { duration: left });
+ }
+ }
+ if (mode === 'time' || mode === 'countdown') return formatTime(now, hass);
+ return '';
+}
+
+const ticks = new WeakMap
>();
+
+/**
+ * Redraw the card at the start of the next minute: one timer per card, set again by that redraw
+ * while the marker is still on show. A hidden tab skips the redraw and waits for the next minute.
+ */
+export function tickNowMarker(ctx: ChartContext, now: number): void {
+ if (ticks.has(ctx.host)) return;
+ const wait = MINUTE - (now % MINUTE) + 50;
+ ticks.set(
+ ctx.host,
+ setTimeout(() => {
+ ticks.delete(ctx.host);
+ if (typeof document !== 'undefined' && document.visibilityState === 'hidden') tickNowMarker(ctx, Date.now());
+ else ctx.requestUpdate();
+ }, wait),
+ );
+}
+
+/** Stop a card's minute timer (it leaves the page). */
+export function stopNowMarker(host: HTMLElement): void {
+ const t = ticks.get(host);
+ if (t !== undefined) clearTimeout(t);
+ ticks.delete(host);
+}
+
+/** Rough width of the label in px (11 px text with its padding). */
+const labelPx = (text: string) => Math.ceil(text.length * 6.2) + 18;
+
+/** Room kept between the label and a time annotation's label, in px. */
+const LABEL_GAP = 4;
+
+/**
+ * Where the time annotations' labels sit along the top of the plot, in px from its left: each
+ * starts just right of its line, or ends just left of it when it would run off the right edge
+ * (as annotations.ts draws them).
+ */
+export function markLabelBoxes(
+ raw: CardConfig,
+ view: Range,
+ zone: HistoryFrame['zone'],
+ x: (t: number) => number,
+ width: number,
+): [number, number][] {
+ const boxes: [number, number][] = [];
+ for (const a of annotationsOf(raw)) {
+ if (a.type !== 'time' || !a.label) continue;
+ const w = labelWidth(a.label);
+ for (const t of markTimes(timeList(a.times), view, zone)) {
+ const at = (x(t) / VIEW_W) * width;
+ boxes.push(at + 2 + w > width ? [at - 2 - w, at - 2] : [at + 2, at + 2 + w]);
+ }
+ }
+ return boxes;
+}
+
+/**
+ * Which side of the line the label goes: right of it, unless it would run off the plot or touch
+ * a time annotation's label (a countdown's own target is one, right where the count ends), then
+ * left of it. When neither side is clear, it keeps to the side it fits on.
+ */
+export function labelSide(at: number, labelWidthPx: number, width: number, boxes: [number, number][]): 'start' | 'end' {
+ const right: [number, number] = [at + 8, at + 8 + labelWidthPx];
+ const left: [number, number] = [at - 8 - labelWidthPx, at - 8];
+ const clear = ([a, b]: [number, number]) => boxes.every(([c, d]) => b + LABEL_GAP <= c || a >= d + LABEL_GAP);
+ const fitsRight = right[1] <= width;
+ const fitsLeft = left[0] >= 0;
+ if (fitsRight && clear(right)) return 'start';
+ if (fitsLeft && clear(left)) return 'end';
+ return fitsRight ? 'start' : 'end';
+}
+
+/**
+ * The marker over a history chart's plot, in HTML so its label keeps its size: nothing unless
+ * the card asks for it and the present is in view. Starts the minute timer while it is shown.
+ */
+export function nowMarkerLayer(
+ ctx: ChartContext,
+ frame: HistoryFrame,
+ view: Range,
+ scales: PlotScales,
+ width: number,
+ now = Date.now(),
+): TemplateResult | typeof nothing {
+ const mode = nowMarkerOf(ctx.raw);
+ if (mode === 'off' || !frame.live || !nowInView(view, now)) return nothing;
+ tickNowMarker(ctx, now);
+ const left = scales.x(now) / VIEW_W;
+ if (!(left >= 0 && left <= 1)) return nothing;
+ const text = nowLabel(mode, ctx.raw, now, frame.zone, ctx.hass);
+ const boxes = text ? markLabelBoxes(ctx.raw, view, frame.zone, scales.x, width) : [];
+ const flip = labelSide(left * width, labelPx(text), width, boxes) === 'end';
+ const at = `${Math.round(left * 10000) / 100}%`;
+ return html`
+
+
+ ${text ? html`${text} ` : nothing}
+
`;
+}
+
+export const nowMarkerStyles = css`
+ .now-marker {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ width: 0;
+ pointer-events: none;
+ transition: left 0.6s ease-out;
+ z-index: 1;
+ }
+ :host([static]) .now-marker {
+ transition: none;
+ }
+ .now-line {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: -1px;
+ width: 2px;
+ background: var(--primary-text-color);
+ opacity: 0.85;
+ }
+ .now-dot {
+ position: absolute;
+ top: -3px;
+ left: -4px;
+ width: 8px;
+ height: 8px;
+ border-radius: 50%;
+ background: var(--primary-text-color);
+ }
+ .now-label {
+ position: absolute;
+ top: -2px;
+ left: 8px;
+ font-size: 11px;
+ font-weight: 500;
+ line-height: 16px;
+ padding: 0 8px;
+ border-radius: 8px;
+ white-space: nowrap;
+ color: var(--card-background-color, #fff);
+ background: var(--primary-text-color);
+ }
+ .now-label.end {
+ left: auto;
+ right: 8px;
+ }
+`;
diff --git a/src/chart/scatter-plot.ts b/src/chart/scatter-plot.ts
index 07d34c6..441685d 100644
--- a/src/chart/scatter-plot.ts
+++ b/src/chart/scatter-plot.ts
@@ -567,7 +567,7 @@ export function xyEditor(kind: XYKind) {
]),
...(byTime ? [] : X_RANGE_SCHEMA),
...xyAxesSchema(ctx.hass),
- ...layoutSchema(ctx.hass),
+ ...layoutSchema(ctx.hass, false),
]);
return chartForm(ctx, 'chart', schema, FIELDS[kind]);
};
diff --git a/src/chart/spiral.ts b/src/chart/spiral.ts
new file mode 100644
index 0000000..4509e0c
--- /dev/null
+++ b/src/chart/spiral.ts
@@ -0,0 +1,163 @@
+import { wallTime } from '../history/timezone';
+import type { Zone } from '../history/timezone';
+
+/**
+ * The maths behind the spiral chart: where an instant sits along a spiral of one turn per day (or
+ * week), the turns' radii, the outline of a stretch of the spiral, and which stretch a point on
+ * the drawing is over. No drawing here.
+ *
+ * Position along the spiral is counted in turns. The whole part is calendar days (or weeks) on the
+ * wall clock in the card's time zone; the fraction is how far through the day (week) the wall
+ * clock is. So midnight is always at the top and 6:00 always to the right, whatever the turn, and
+ * a day across a clock change still takes exactly one turn.
+ */
+
+export const SPIRAL_TURNS = ['day', 'week'] as const;
+export type SpiralTurn = (typeof SPIRAL_TURNS)[number];
+
+const DAY_MS = 86_400_000;
+const TAU = Math.PI * 2;
+
+/** Whole calendar days from 1 Jan 1970 to the wall-clock date of `t` in the zone. */
+function dayNumber(t: number, timeZone: string): { day: number; fraction: number } {
+ const w = wallTime(t, timeZone);
+ return {
+ day: Math.round(Date.UTC(w.year, w.month - 1, w.day) / DAY_MS),
+ fraction: (w.hour * 3600 + w.minute * 60 + w.second) / 86_400,
+ };
+}
+
+/**
+ * Turns from the epoch to `t`: days (and the time through the day), or weeks from the zone's
+ * first weekday. Day 0 (1 Jan 1970) was a Thursday, weekday 4.
+ */
+export function turnsAt(t: number, turn: SpiralTurn, zone: Zone): number {
+ const { day, fraction } = dayNumber(t, zone.timeZone);
+ if (turn === 'day') return day + fraction;
+ const shift = (zone.firstDay - 4 + 7) % 7;
+ return (day - shift + fraction) / 7;
+}
+
+/** The part of a number after its whole turns, 0 ≤ f < 1, negative numbers included. */
+const frac = (n: number) => n - Math.floor(n);
+
+/** A spiral of `turns` turns in a square `size` across, its innermost turn starting at `phase`. */
+export interface SpiralGeometry {
+ size: number;
+ /** Centre, both ways. */
+ centre: number;
+ /** Turns from the start to the end of the span. */
+ turns: number;
+ /** Where the span starts in its first turn, 0–1 (0 is the top, a quarter is the right). */
+ phase: number;
+ /** Radius of the empty middle. */
+ hole: number;
+ /** Radius added per turn. */
+ pitch: number;
+ /** Width of the ring, across. */
+ width: number;
+}
+
+/**
+ * Lay out `turns` turns in a circle of `radius`: the oldest innermost round an empty middle, each
+ * turn `ringWidth` (0–1) of the space between one turn and the next.
+ */
+export function spiralGeometry(
+ size: number,
+ turns: number,
+ phase: number,
+ ringWidth: number,
+ radius = size / 2,
+): SpiralGeometry {
+ const hole = radius * 0.16;
+ const n = Math.max(turns, 0.25);
+ const pitch = (radius - hole) / (n + ringWidth);
+ return { size, centre: size / 2, turns: n, phase: frac(phase), hole, pitch, width: pitch * ringWidth };
+}
+
+/** Radius of the middle of the ring `u` turns from the start. */
+export function ringRadius(g: SpiralGeometry, u: number): number {
+ return g.hole + g.width / 2 + u * g.pitch;
+}
+
+/** The angle (radians, 0 at the top, clockwise) of the spot `u` turns from the start. */
+export function turnAngle(g: SpiralGeometry, u: number): number {
+ return TAU * (u + g.phase);
+}
+
+/** The point at radius `r` and angle `a` (0 at the top, clockwise). */
+export function spiralPoint(g: SpiralGeometry, r: number, a: number): [number, number] {
+ return [g.centre + r * Math.sin(a), g.centre - r * Math.cos(a)];
+}
+
+const round = (n: number) => Math.round(n * 100) / 100;
+
+/**
+ * The outline of the ring from `u0` to `u1` turns: along its outer edge, then back along its
+ * inner edge. Curved edges are drawn as short straight steps, at least one every 4°.
+ */
+export function stretchPath(g: SpiralGeometry, u0: number, u1: number): string {
+ if (!(u1 > u0)) return '';
+ const steps = Math.max(1, Math.ceil((u1 - u0) * 90));
+ const outer: string[] = [];
+ const inner: string[] = [];
+ for (let k = 0; k <= steps; k++) {
+ const u = u0 + ((u1 - u0) * k) / steps;
+ const r = ringRadius(g, u);
+ const a = turnAngle(g, u);
+ const [ox, oy] = spiralPoint(g, r + g.width / 2, a);
+ const [ix, iy] = spiralPoint(g, Math.max(0, r - g.width / 2), a);
+ outer.push(`${round(ox)},${round(oy)}`);
+ inner.unshift(`${round(ix)},${round(iy)}`);
+ }
+ return `M${outer.join('L')}L${inner.join('L')}Z`;
+}
+
+/**
+ * How many turns from the start the spot at (`x`, `y`) is, if it is on the ring: of the turns
+ * passing that angle, the one whose ring it is inside (with a little slack, for fingers).
+ * Undefined in the middle, between turns, or past either end.
+ */
+export function turnUnder(g: SpiralGeometry, x: number, y: number, slack = 0): number | undefined {
+ const dx = x - g.centre;
+ const dy = y - g.centre;
+ const r = Math.hypot(dx, dy);
+ const a = frac(Math.atan2(dx, -dy) / TAU);
+ // The spot at this angle on the turn through radius r: k whole turns past the first.
+ const base = a - g.phase;
+ const k = Math.round((r - ringRadius(g, base)) / g.pitch);
+ const u = base + k;
+ if (u < 0 || u > g.turns) return undefined;
+ return Math.abs(r - ringRadius(g, u)) <= g.width / 2 + slack ? u : undefined;
+}
+
+/** One coloured stretch: a group of readings, from `u0` to `u1` turns. */
+export interface Stretch {
+ u0: number;
+ u1: number;
+}
+
+/** The stretch under `u` turns, or undefined. Stretches must be in order. */
+export function stretchAt(stretches: readonly Stretch[], u: number): number | undefined {
+ let lo = 0;
+ let hi = stretches.length - 1;
+ while (lo <= hi) {
+ const mid = (lo + hi) >> 1;
+ const s = stretches[mid];
+ if (u < s.u0) hi = mid - 1;
+ else if (u >= s.u1) lo = mid + 1;
+ else return mid;
+ }
+ return undefined;
+}
+
+/**
+ * Where the hour (or weekday) labels go round the outside: the turn fraction of each one. A day
+ * turn is labelled every `everyHours` hours from midnight; a week turn at the start of each day.
+ */
+export function spokes(turn: SpiralTurn, everyHours = 6): number[] {
+ if (turn === 'week') return [0, 1, 2, 3, 4, 5, 6].map((d) => d / 7);
+ const out: number[] = [];
+ for (let h = 0; h < 24; h += everyHours) out.push(h / 24);
+ return out;
+}
diff --git a/src/chart/threshold-history.ts b/src/chart/threshold-history.ts
new file mode 100644
index 0000000..c79cbf2
--- /dev/null
+++ b/src/chart/threshold-history.ts
@@ -0,0 +1,307 @@
+import { svg } from 'lit';
+import type { SVGTemplateResult } from 'lit';
+import { bandFor, baseColor } from '../bands';
+import { statisticsPeriod } from '../history/fetch';
+import type { StatisticsQuery } from '../history/fetch';
+import { PERIOD_MS, statisticsQueryFor } from '../history/group';
+import { HistoryStore, trim } from '../history/store';
+import type { Point, Range } from '../history/types';
+import { resolveBands } from '../resolve';
+import type { ChartContext } from '../styles/index';
+import type { Band, CardConfig, HomeAssistant, ResolvedBand } from '../types';
+import { conversion, convertPoints } from '../units';
+import { VIEW_H } from './frame';
+import type { HistoryFrame } from './frame';
+import type { PlotScales } from './grid';
+import { runPath } from './paths';
+
+/**
+ * Threshold lines that follow an entity's history. A line annotation whose `value` is an entity
+ * normally sits at that entity's current state; with `history: true` it is drawn as a stepped
+ * line through every state the entity had over the chart's span (a tariff, a set point, a
+ * schedule), with an optional shaded zone above or below it, in the line's colour or, given
+ * severity bands of its own, in the colour of each step's band (a tariff's cheap, normal and peak
+ * rates in green, amber and red).
+ */
+
+/** Which side of a stepped threshold is shaded. */
+export const THRESHOLD_ZONES = ['above', 'below'] as const;
+export type ThresholdZone = (typeof THRESHOLD_ZONES)[number];
+
+/** The keys a line annotation takes for this, as written in YAML. */
+export interface ThresholdHistoryOptions {
+ type?: string;
+ value?: number | string;
+ history?: boolean;
+ zone?: ThresholdZone;
+ /** Colours the zone by the entity's value at each step, as severity bands do elsewhere. */
+ severity?: Band[];
+}
+
+const isEntityId = (v: unknown): v is string => typeof v === 'string' && /^[a-z_]+\.[a-z0-9_]+$/.test(v.trim());
+
+/** Throw a readable error for a bad `history` or `zone` on annotation `where`. */
+export function checkThresholdHistory(a: Record, where: (k: string) => string): void {
+ if (a.history !== undefined && typeof a.history !== 'boolean') {
+ throw new Error(`"${where('history')}" must be true or false`);
+ }
+ if (a.zone !== undefined && !THRESHOLD_ZONES.includes(a.zone as ThresholdZone)) {
+ throw new Error(`"${where('zone')}" must be one of: ${THRESHOLD_ZONES.join(', ')}`);
+ }
+ if ((a.history === true || a.zone !== undefined) && a.type !== 'line') {
+ throw new Error(`"${where('history')}" and "${where('zone')}" are for a line`);
+ }
+ if (a.severity !== undefined) {
+ if (a.type !== 'line') throw new Error(`"${where('severity')}" is for a line`);
+ if (!Array.isArray(a.severity)) throw new Error(`"${where('severity')}" must be a list of bands`);
+ a.severity.forEach((b: unknown, i: number) => {
+ const band = b as Record | null;
+ const from = band?.from;
+ const readable =
+ (typeof from === 'number' && Number.isFinite(from)) ||
+ (typeof from === 'string' && (Number.isFinite(Number(from)) || isEntityId(from)));
+ if (!readable || from === '') {
+ throw new Error(`"${where(`severity[${i}].from`)}" must be a number or an entity id`);
+ }
+ if (typeof band?.color !== 'string' || band.color === '') {
+ throw new Error(`"${where(`severity[${i}].color`)}" is required`);
+ }
+ });
+ }
+}
+
+/**
+ * A line's own severity bands, read and sorted (a start may be an entity), or undefined when it
+ * has none: its zone is then one colour. Bands whose start can't be read are left out. A start
+ * read from an entity converts to `unit` (the chart's shown unit) when the pair is known; typed
+ * numbers are already in it.
+ */
+export function zoneBands(
+ a: ThresholdHistoryOptions,
+ hass: HomeAssistant | undefined,
+ unit?: string,
+): ResolvedBand[] | undefined {
+ if (!Array.isArray(a.severity) || a.severity.length === 0) return undefined;
+ const typed = a.severity.map((b) => ({
+ ...b,
+ from: typeof b.from === 'string' && Number.isFinite(Number(b.from)) ? Number(b.from) : b.from,
+ }));
+ const read = resolveBands(typed, hass, unit).filter((b) => Number.isFinite(b.from));
+ return read.length ? [...read].sort((x, y) => x.from - y.from) : undefined;
+}
+
+/** The entity a line follows through its history, or undefined when it is a fixed line. */
+export function historyEntity(a: ThresholdHistoryOptions): string | undefined {
+ return a.type === 'line' && a.history === true && isEntityId(a.value) ? a.value.trim() : undefined;
+}
+
+/** Every entity the card's threshold lines follow through their history. */
+export function thresholdHistoryEntities(raw: CardConfig): string[] {
+ const list = Array.isArray(raw.annotations) ? (raw.annotations as ThresholdHistoryOptions[]) : [];
+ return [...new Set(list.map(historyEntity).filter((id): id is string => id !== undefined))];
+}
+
+/** A span longer than this loads statistics even on a card that reads history. */
+export const LONG_SPAN = 7 * 86_400_000;
+
+/** Each card's stores: statistics, and history (for a history card, or entities without statistics). */
+const stores = new WeakMap();
+
+function storesFor(ctx: ChartContext) {
+ let pair = stores.get(ctx.host);
+ if (!pair) {
+ pair = { statistics: new HistoryStore(ctx.requestUpdate), history: new HistoryStore(ctx.requestUpdate) };
+ stores.set(ctx.host, pair);
+ }
+ return pair;
+}
+
+/**
+ * Where a threshold's readings come from: long-term statistics when the card reads statistics or
+ * the span is longer than `LONG_SPAN` (a year of a chatty entity's raw history is a huge request),
+ * otherwise the recorder's history. Statistics rows are as long as the card's own when it groups
+ * statistics, else as `statisticsPeriod` picks for the span; the value is each row's mean (a meter's
+ * state when it has no mean).
+ */
+export function thresholdQuery(frame: HistoryFrame, serverTimeZone?: string): StatisticsQuery | undefined {
+ const { range, group, source, zone } = frame;
+ if (source !== 'statistics' && range.end - range.start <= LONG_SPAN) return undefined;
+ const period =
+ group && source === 'statistics' ? statisticsQueryFor(group, zone, serverTimeZone).period : statisticsPeriod(range);
+ return { period, types: ['mean', 'state'], value: 'mean' };
+}
+
+/**
+ * The readings of each entity the card's threshold lines follow, over the frame's span, loaded as
+ * the card loads its own series (see `thresholdQuery`). An entity with no statistics (a set point
+ * or tariff without a state class) falls back to its history, as do all of them when the
+ * statistics fail. History is kept up to date from `hass` while the span reaches the present, so
+ * a rolling chart never refetches; statistics reload once a period. Each list runs on to the
+ * present (or the span's end) with its last value, as a sensor holds its state until it changes.
+ * Empty while loading or after a failure: the line then sits at the entity's current state.
+ */
+export function thresholdSteps(ctx: ChartContext, frame: HistoryFrame, now = Date.now()): Map {
+ const ids = thresholdHistoryEntities(ctx.raw);
+ const out = new Map();
+ if (ids.length === 0) return out;
+ const pair = storesFor(ctx);
+ const until = Math.min(frame.range.end, now);
+ // Steps share the value axis, so they are drawn in the chart's shown unit (its first series',
+ // as `annotationUnit` reads it): an entity reporting a unit the card converts from moves to it.
+ const unit = frame.series[0]?.entity.unit || undefined;
+ const keep = (id: string, points: Point[]) => {
+ const from = ctx.hass.states[id]?.attributes?.unit_of_measurement;
+ const shown = convertPoints(points, conversion(typeof from === 'string' ? from : undefined, unit));
+ if (shown.some((p) => p.v !== null)) out.set(id, holdTo(shown, until));
+ };
+ let rest = ids;
+ const query = thresholdQuery(frame, ctx.hass.config?.time_zone);
+ if (query) {
+ // From one row early, so the step at the span's start has a value.
+ const load = { start: frame.range.start - PERIOD_MS[query.period], end: frame.range.end };
+ const stats = pair.statistics.get(
+ ctx.hass,
+ ids.map((entity) => ({ entity })),
+ load,
+ 'statistics',
+ { live: frame.live, statistics: query },
+ );
+ if (stats.status === 'loading') return out;
+ if (stats.status === 'ready') {
+ for (const id of ids) keep(id, trim(stats.data.get(id) ?? [], frame.range));
+ rest = ids.filter((id) => !out.has(id));
+ }
+ }
+ if (rest.length === 0) return out;
+ const history = pair.history.get(
+ ctx.hass,
+ rest.map((entity) => ({ entity })),
+ frame.range,
+ 'history',
+ { live: frame.live },
+ );
+ if (history.status === 'ready') for (const id of rest) keep(id, history.data.get(id) ?? []);
+ return out;
+}
+
+/** Stop a card's threshold history when it leaves the page; it carries on when it returns. */
+export function stopThresholdHistory(host: HTMLElement): void {
+ const pair = stores.get(host);
+ pair?.statistics.pause();
+ pair?.history.pause();
+}
+
+/** The readings with the last value carried on to `until`, so the step reaches the present. */
+export function holdTo(points: Point[], until: number): Point[] {
+ const last = points[points.length - 1];
+ return last && last.v !== null && last.t < until ? [...points, { t: until, v: last.v }] : points;
+}
+
+/**
+ * Unbroken runs of a stepped line: each value is held until the next reading, including up to
+ * the moment a gap (unavailable, unknown) begins, so the step does not stop short of it.
+ */
+export function stepRuns(points: Point[]): Point[][] {
+ const out: Point[][] = [];
+ let run: Point[] = [];
+ for (const p of points) {
+ if (p.v === null) {
+ const last = run[run.length - 1];
+ if (last && p.t > last.t) run.push({ t: p.t, v: last.v });
+ if (run.length) out.push(run);
+ run = [];
+ } else run.push(p);
+ }
+ if (run.length) out.push(run);
+ return out;
+}
+
+/** Every value the stepped lines reach within `range`, so the value axis can show them all. */
+export function stepValues(steps: Map, range: Range): number[] {
+ const out: number[] = [];
+ for (const points of steps.values()) {
+ for (const p of points) if (p.v !== null && p.t >= range.start && p.t <= range.end) out.push(p.v);
+ }
+ return out;
+}
+
+export interface SteppedThreshold {
+ /** The stepped line, drawn with the threshold's class and colour. */
+ line: SVGTemplateResult;
+ /** The shaded side, drawn behind the data; undefined without a zone. */
+ zone?: SVGTemplateResult;
+ /** Where the line ends, as a fraction of the plot's height, for its label. */
+ top: number;
+}
+
+/**
+ * The zone under (or over) a stepped run, one closed shape per stretch of steps that share a
+ * colour: each step reaches from its value to `edge` (the plot's top or bottom) for as long as it
+ * is held. Without bands the whole run is one colour.
+ */
+export function zoneShapes(
+ run: Point[],
+ scales: PlotScales,
+ edge: number,
+ colorOf: (v: number) => string,
+): { color: string; d: string }[] {
+ const f = (n: number) => Math.round(n * 100) / 100;
+ const out: { color: string; d: string }[] = [];
+ for (let i = 0; i + 1 < run.length; i++) {
+ const v = run[i].v as number;
+ const x0 = f(scales.x(run[i].t));
+ const x1 = f(scales.x(run[i + 1].t));
+ if (!(x1 > x0)) continue;
+ const y = f(scales.y(v));
+ const color = colorOf(v);
+ const d = `M${x0},${y}H${x1}V${edge}H${x0}Z`;
+ const last = out[out.length - 1];
+ if (last && last.color === color) last.d += d;
+ else out.push({ color, d });
+ }
+ return out;
+}
+
+/**
+ * A stepped threshold through `points`, with its zone shaded when one is asked for: in `color`,
+ * or with `bands`, each step in the colour of the band its value falls in.
+ */
+export function steppedThreshold(
+ points: Point[],
+ scales: PlotScales,
+ color: string,
+ dashed: boolean,
+ zone: ThresholdZone | undefined,
+ bands?: ResolvedBand[],
+): SteppedThreshold | undefined {
+ const parts = stepRuns(points);
+ if (parts.length === 0) return undefined;
+ const d = parts
+ .map((run) =>
+ runPath(
+ run.map((p) => [scales.x(p.t), scales.y(p.v as number)]),
+ 'step',
+ ),
+ )
+ .join('');
+ const line = svg` `;
+ const edge = zone === 'above' ? 0 : VIEW_H;
+ const colorOf = bands ? (v: number) => baseColor(bandFor(v, bands).color) : () => color;
+ const shapes = zone ? parts.flatMap((run) => zoneShapes(run, scales, edge, colorOf)) : [];
+ // Shapes of one colour from several runs share a path.
+ const merged = new Map();
+ for (const s of shapes) merged.set(s.color, (merged.get(s.color) ?? '') + s.d);
+ const shade = zone
+ ? svg`${[...merged].map(
+ ([fill, path]) => svg` `,
+ )} `
+ : undefined;
+ const lastRun = parts[parts.length - 1];
+ const last = lastRun[lastRun.length - 1];
+ return { line, zone: shade, top: scales.y(last.v as number) / VIEW_H };
+}
diff --git a/src/chart/tooltip.ts b/src/chart/tooltip.ts
index 25467f8..646055b 100644
--- a/src/chart/tooltip.ts
+++ b/src/chart/tooltip.ts
@@ -1,6 +1,7 @@
import { css, html, nothing } from 'lit';
import type { TemplateResult } from 'lit';
import { formatNumber, withUnit } from '../format';
+import { shownValue } from '../history/energy';
import { localize } from '../localize';
import type { Point, Range } from '../history/types';
import type { ChartContext } from '../styles/index';
@@ -135,10 +136,10 @@ export function hoverHandlers(ctx: ChartContext, range: Range, series: readonly
const pct = (n: number) => `${Math.round(n * 10000) / 100}%`;
-/** One series' line in the tooltip: its value at the guide, formatted as the entity is. */
+/** One series' line in the tooltip: its value at the guide, formatted as the entity is (energy out reads positive). */
function valueText(p: Point | undefined, s: ChartSeries, ctx: ChartContext): string {
if (!p || p.v === null) return '—';
- return withUnit(formatNumber(p.v, s.entity.decimals, ctx.hass), s.entity.unit);
+ return withUnit(formatNumber(shownValue(s.entity, p.v), s.entity.decimals, ctx.hass), s.entity.unit);
}
/** The units every series shares, or '' when they differ. */
diff --git a/src/chartdeck-card.ts b/src/chartdeck-card.ts
index ce66d06..36884d0 100644
--- a/src/chartdeck-card.ts
+++ b/src/chartdeck-card.ts
@@ -3,7 +3,11 @@ import type { PropertyValues } from 'lit';
import { repeat } from 'lit/directives/repeat.js';
import { attachActions, isInteractive } from './actions';
import { colorStops, legendItems } from './bands';
+import { exportMenu, exportStyles, forgetPlotted, placeExport, stopExport, validateExport } from './chart/export';
import { normalizeConfig } from './config';
+import { energyChecked, energyConfig } from './history/energy';
+import { energyTotals } from './history/energy-totals';
+import { pauseStore } from './history/store';
import './editor/chartdeck-card-editor';
import { formatNumber } from './format';
import { localize } from './localize';
@@ -15,6 +19,8 @@ import { shared } from './styles/shared';
import type { CardConfig, HomeAssistant, NormalizedConfig, StyleName } from './types';
import { VERSION } from './version';
import { LanguageController } from './language-controller';
+// The badge (custom:chartdeck-badge) ships in the same file and registers itself.
+import './badge';
console.info(`%c CHARTDECK %c ${VERSION} `, 'color:#fff;background:#3b8bff;font-weight:700', 'color:#3b8bff');
@@ -63,7 +69,7 @@ export class ChartdeckCard extends LitElement {
_config: { state: true },
};
- static styles = [shared, ...Object.values(STYLES).map((s) => s.styles)];
+ static styles = [shared, exportStyles, ...Object.values(STYLES).map((s) => s.styles)];
declare hass?: HomeAssistant;
/** Set by Home Assistant on the editor's preview card, which it rebuilds on every change. */
@@ -102,8 +108,13 @@ export class ChartdeckCard extends LitElement {
setConfig(config: CardConfig): void {
const normalized = normalizeConfig(config);
+ validateExport(config);
+ // What an earlier config drew is not this one's to export.
+ forgetPlotted(this);
const style = STYLES[normalized.style];
- if (isChart(style)) style.validate?.(config);
+ // The Energy dashboard source is checked here, then the chart checks it as the statistics it draws.
+ const checked = energyChecked(config);
+ if (isChart(style)) style.validate?.(checked);
this._watched = watchedEntityIds(normalized);
if (isChart(style)) for (const id of style.watch?.(config) ?? []) this._watched.add(id);
// A different chart style may hold subscriptions the new one doesn't know about.
@@ -125,7 +136,7 @@ export class ChartdeckCard extends LitElement {
if (!config?.show.legend || this._count() === 0) return [];
const decimals = first?.decimals ?? 1;
return legendItems(
- resolveBands(config.legendBands, this.hass),
+ resolveBands(config.legendBands, this.hass, first?.unit),
(n) => formatNumber(n, decimals, this.hass),
first?.unit ?? '',
);
@@ -228,6 +239,7 @@ export class ChartdeckCard extends LitElement {
protected updated(): void {
this._scheduleReady();
this._syncActions();
+ placeExport(this);
}
connectedCallback(): void {
@@ -250,11 +262,14 @@ export class ChartdeckCard extends LitElement {
private _disconnectStyle(): void {
const style = this._config ? STYLES[this._config.style] : undefined;
if (style && isChart(style)) style.disconnect?.(this);
+ // A pie or Sankey of energy totals loads statistics too (no-op for any other card).
+ pauseStore(this);
}
disconnectedCallback(): void {
super.disconnectedCallback();
this._disconnectStyle();
+ stopExport(this);
for (const detach of this._detachers.values()) detach();
this._detachers.clear();
}
@@ -279,6 +294,9 @@ export class ChartdeckCard extends LitElement {
}
}
+ /** A value style's data arrived: draw again. */
+ private _redraw = (): void => this.requestUpdate();
+
private _renderEntity(e: ResolvedEntity, index: number, style: ValueStyleModule, hass: HomeAssistant) {
const config = this._config!;
const interactive = isInteractive(e.config);
@@ -299,14 +317,16 @@ export class ChartdeckCard extends LitElement {
tabindex=${interactive ? 0 : nothing}
style=${vars}
>
- ${style.render(e, { show: config.show, hass })}
+ ${style.render(e, { show: config.show, hass, requestUpdate: this._redraw })}
`;
}
render() {
- const config = this._config;
- if (!config) return nothing;
+ if (!this._config) return nothing;
const hass = this.hass;
+ // `source: energy`: the entities come from the Energy dashboard's settings, once they load.
+ const energy = energyConfig(this._config, hass, () => this.requestUpdate());
+ const config = energy.config;
const style = this._style;
let body;
let first: ResolvedEntity | undefined;
@@ -314,7 +334,10 @@ export class ChartdeckCard extends LitElement {
let valueCh: number | undefined;
const resolved = hass ? resolveEntities(config, hass) : [];
this._matched = hass ? matchedIds(config, hass) : [];
- if (config.entities.length === 0 && !config.include) {
+ if (energy.message) {
+ this._items = [];
+ body = html`
${energy.message}
`;
+ } else if (config.entities.length === 0 && !config.include) {
this._items = [];
body = html`
${localize(hass, 'no_entities')}
`;
} else if (!hass) {
@@ -339,16 +362,24 @@ export class ChartdeckCard extends LitElement {
const values = this._items.filter((e) => e.available).map((e) => e.display.length);
valueCh = values.length ? Math.max(...values) : undefined;
if (isChart(style)) {
- body = html`
- ${style.render({
- items: this._items,
- config,
- raw: config.cardOptions as CardConfig,
- hass,
- requestUpdate: () => this.requestUpdate(),
- host: this,
- })}
-
`;
+ const ctx = {
+ items: this._items,
+ config,
+ raw: config.cardOptions as CardConfig,
+ hass,
+ requestUpdate: () => this.requestUpdate(),
+ host: this,
+ };
+ // A pie or Sankey of the Energy dashboard draws each flow's total over its period.
+ const totals = energy.totals ? energyTotals(ctx) : undefined;
+ if (totals?.message !== undefined) {
+ body = html`
`;
+ } else {
+ if (totals) this._items = totals.items;
+ body = html`
${style.render({ ...ctx, items: this._items })}
`;
+ }
} else {
const tiles = style.layout === 'tiles';
const grid = columnsTemplate(style, config.columns);
@@ -365,7 +396,19 @@ export class ChartdeckCard extends LitElement {
}
}
const legend = this._legend(first);
+ const menu =
+ isChart(style) && hass
+ ? exportMenu({
+ host: this,
+ hass,
+ raw: config.cardOptions as CardConfig,
+ items: this._items,
+ content: () => this.shadowRoot?.querySelector
('.content') ?? null,
+ requestUpdate: () => this.requestUpdate(),
+ })
+ : nothing;
return html`
+ ${menu}
= {
- line: ['value', 'dash'],
+ line: ['value', 'dash', 'history', 'zone'],
band: ['from', 'to'],
time: ['times'],
state: ['entity', 'state', 'shade'],
@@ -18,7 +20,7 @@ const FIELDS: Record
= {
};
/** A field's default: setting it back removes the key. */
-const DEFAULTS: Record = { dash: true, shade: false, at: 'max' };
+const DEFAULTS: Record = { dash: true, shade: false, at: 'max', history: false, zone: 'none' };
function select(hass: HomeAssistant | undefined, prefix: string, values: readonly string[]) {
return {
@@ -47,6 +49,8 @@ export function annotationSchema(type: AnnotationType, hass: HomeAssistant | und
shade: { boolean: {} },
dash: { boolean: {} },
at: select(hass, 'at', POINT_AT),
+ history: { boolean: {} },
+ zone: select(hass, 'zone', ['none', ...THRESHOLD_ZONES]),
};
schema = [
{ name: 'type', selector: select(hass, 'type', ANNOTATION_TYPES) },
@@ -93,9 +97,19 @@ export function annotationFromData(data: Record, before: Annota
if (name === 'times') v = timeList(v as string);
out[name === 'series' ? 'entity' : name] = v;
}
+ // The zone's bands have their own editor under the form: keep them while the kind stays.
+ if (type === before.type && before.severity !== undefined) out.severity = before.severity;
return out as unknown as Annotation;
}
+/** A line with its zone's bands set, or removed when there are none. */
+export function withSeverity(a: Annotation, bands: Band[] | undefined): Annotation {
+ const next = { ...a };
+ if (bands && bands.length) next.severity = bands;
+ else delete next.severity;
+ return next;
+}
+
/** The card config with its annotation list replaced (and the key gone once it is empty). */
export function withAnnotations(config: CardConfig, list: Annotation[]): CardConfig {
const next = { ...config };
@@ -143,6 +157,10 @@ export function annotationsEditor(ctx: ChartEditorContext): TemplateResult {
padding: 8px 0;
border-top: 1px solid var(--divider-color, rgba(127, 127, 127, 0.3));
}
+ .annotation-bands-title {
+ margin: 8px 0 0;
+ color: var(--secondary-text-color);
+ }
.annotation-add {
display: flex;
flex-wrap: wrap;
@@ -170,17 +188,34 @@ export function annotationsEditor(ctx: ChartEditorContext): TemplateResult {
${list.map(
(a, i) =>
html`
-
t(`editor_annotation_${s.name}`)}
- @value-changed=${(ev: CustomEvent) => {
- ev.stopPropagation();
- replace(i, annotationFromData((ev.detail?.value ?? {}) as Record, a));
- }}
- >
+
+
t(`editor_annotation_${s.name}`)}
+ @value-changed=${(ev: CustomEvent) => {
+ ev.stopPropagation();
+ replace(i, annotationFromData((ev.detail?.value ?? {}) as Record, a));
+ }}
+ >
+ ${
+ a.type === 'line' && a.zone !== undefined
+ ? html`
+
${t('editor_annotation_severity')}
+
{
+ ev.stopPropagation();
+ replace(i, withSeverity(a, ev.detail?.value as Band[] | undefined));
+ }}
+ >
+
`
+ : nothing
+ }
+
`, so they never clash with the card editor's.
+ */
+
+const STYLES = ['value', 'sparkline', 'ring', 'thin'] as const;
+
+export const BADGE_FIELDS: FieldBinding[] = [
+ { name: 'entity', path: ['entity'] },
+ { name: 'style', path: ['style'], default: 'value' },
+ { name: 'attribute', path: ['attribute'] },
+ { name: 'name', path: ['name'] },
+ { name: 'show_name', path: ['show_name'], default: true },
+ { name: 'show_icon', path: ['show_icon'], default: true },
+ { name: 'hours', path: ['hours'], default: 24 },
+ { name: 'icon', path: ['icon'] },
+ { name: 'unit', path: ['unit'] },
+ { name: 'decimals', path: ['decimals'] },
+ { name: 'color', path: ['color'] },
+];
+
+export const BADGE_ACTION_FIELDS: FieldBinding[] = [
+ { name: 'tap_action', path: ['tap_action'], default: { action: 'more-info' } },
+ { name: 'hold_action', path: ['hold_action'], default: { action: 'none' } },
+ { name: 'double_tap_action', path: ['double_tap_action'], default: { action: 'none' } },
+];
+
+const schemas = new Map();
+
+/** Min and max with the card's defaults (`normalizeConfig`), edited with the card's limit field. */
+export const BADGE_LIMITS: ['min' | 'max', string][] = [
+ ['min', '0'],
+ ['max', '100'],
+];
+
+/**
+ * The form for a badge: the icon switch and icon picker only on the value look (the picker only
+ * while the icon shows), hours only on the sparkline. Min and max are limit fields below it.
+ */
+export function badgeSchema(hass: HomeAssistant | undefined, config: CardConfig): unknown[] {
+ const style = (config.style as string | undefined) ?? 'value';
+ const entity = typeof config.entity === 'string' ? config.entity : '';
+ const icon = style === 'value' && config.show_icon !== false;
+ const cacheKey = `${languageOf(hass)}|${style}|${entity}|${icon}`;
+ let schema = schemas.get(cacheKey);
+ if (!schema) {
+ schema = [
+ { name: 'entity', required: true, selector: { entity: {} } },
+ {
+ name: 'style',
+ selector: {
+ select: {
+ mode: 'dropdown',
+ options: STYLES.map((value) => ({ value, label: localize(hass, `editor_badge_style_${value}`) })),
+ },
+ },
+ },
+ ...(entity ? [{ name: 'attribute', selector: { attribute: { entity_id: entity } } }] : []),
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'name', selector: { text: {} } },
+ ...(style === 'sparkline'
+ ? [{ name: 'hours', selector: { number: { min: 1, max: 168, mode: 'box', unit_of_measurement: 'h' } } }]
+ : []),
+ ],
+ },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'show_name', selector: { boolean: {} } },
+ ...(style === 'value' ? [{ name: 'show_icon', selector: { boolean: {} } }] : []),
+ ],
+ },
+ ...(icon ? [{ name: 'icon', selector: { icon: {} }, context: { icon_entity: 'entity' } }] : []),
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'unit', selector: { text: {} } },
+ { name: 'decimals', selector: { number: { min: 0, max: 20, mode: 'box' } } },
+ ],
+ },
+ { name: 'color', selector: { text: {} } },
+ ];
+ schemas.set(cacheKey, schema);
+ }
+ return schema;
+}
+
+const ACTIONS_SCHEMA = ['tap_action', 'hold_action', 'double_tap_action'].map((name) => ({
+ name,
+ selector: { ui_action: {} },
+}));
+
+export class ChartdeckBadgeEditor extends LitElement {
+ protected readonly languageController = new LanguageController(this);
+
+ static properties = {
+ hass: { attribute: false },
+ _config: { state: true },
+ };
+
+ declare hass?: HomeAssistant;
+ declare _config?: CardConfig;
+
+ setConfig(config: CardConfig): void {
+ this._config = config;
+ }
+
+ connectedCallback(): void {
+ super.connectedCallback();
+ void loadHaComponents();
+ }
+
+ private _label = (schema: { name: string }): string => localize(this.hass, `editor_badge_${schema.name}`);
+
+ private _commit(config: CardConfig): void {
+ this._config = config;
+ this.dispatchEvent(new CustomEvent('config-changed', { bubbles: true, composed: true, detail: { config } }));
+ }
+
+ private _formChanged(fields: FieldBinding[], ev: CustomEvent): void {
+ ev.stopPropagation();
+ if (!this._config) return;
+ this._commit(applyFormData(this._config, fields, ev.detail.value as Record));
+ }
+
+ /** Bands and limits come from the card's own elements, each writing one key. */
+ private _optionChanged(key: string, ev: CustomEvent): void {
+ ev.stopPropagation();
+ if (!this._config) return;
+ this._commit(setOption(this._config, [key], ev.detail.value));
+ }
+
+ private _form(section: string, schema: unknown[], fields: FieldBinding[]): TemplateResult {
+ return html` this._formChanged(fields, ev)}
+ > `;
+ }
+
+ render() {
+ if (!this._config) return nothing;
+ const entity = typeof this._config.entity === 'string' ? this._config.entity : undefined;
+ const unit =
+ (this._config.unit as string | undefined) ?? this.hass?.states[entity ?? '']?.attributes?.unit_of_measurement;
+ return html`${this._form('badge', badgeSchema(this.hass, this._config), BADGE_FIELDS)}
+
+ ${BADGE_LIMITS.map(
+ ([key, defaultLabel]) =>
+ html` this._optionChanged(key, ev)}
+ > `,
+ )}
+
+ ${localize(this.hass, 'editor_badge_bands')}
+ ${localize(this.hass, 'editor_badge_bands_help')}
+ this._optionChanged('severity', ev)}
+ >
+ ${localize(this.hass, 'editor_badge_actions')}
+ ${this._form('actions', ACTIONS_SCHEMA, BADGE_ACTION_FIELDS)}`;
+ }
+
+ static styles = css`
+ :host {
+ display: block;
+ }
+ .limits {
+ display: grid;
+ gap: 8px;
+ margin-top: 16px;
+ }
+ .heading {
+ margin-top: 24px;
+ font-weight: 500;
+ }
+ .help {
+ margin: 4px 0 0;
+ font-size: 12px;
+ color: var(--secondary-text-color);
+ }
+ `;
+}
+
+if (!customElements.get('chartdeck-badge-editor')) {
+ customElements.define('chartdeck-badge-editor', ChartdeckBadgeEditor);
+}
diff --git a/src/editor/chart-editors.ts b/src/editor/chart-editors.ts
index 7efc81d..ea64fa4 100644
--- a/src/editor/chart-editors.ts
+++ b/src/editor/chart-editors.ts
@@ -2,18 +2,30 @@ import { html } from 'lit';
import type { TemplateResult } from 'lit';
import { AXIS_LABELS, DEFAULT_AXES, Y_SCALES } from '../chart/axes';
import { HEADER_PLACES } from '../chart/layout';
+import { LEGEND_TOGGLE_FIELDS, LEGEND_TOGGLE_SCHEMA } from '../chart/legend-toggle';
import { CURVES } from '../chart/paths';
import { LABEL_POSITIONS, LABEL_SHOW } from '../chart/data-labels';
import { EXTREMES_FIELDS, extremesSchema } from '../chart/extremes';
+import { FORECAST_FIELDS, forecastSchema, forecastVariant } from '../chart/forecast';
+import { ANOMALY_FIELDS, anomalySchema, anomalyVariant } from '../chart/anomaly';
+import { COMPARE_FIELDS, compareSchema, compareVariant } from '../chart/compare-ghost';
import { MAX_MULTIPLES_COLUMNS, MULTIPLES_SCALES } from '../chart/multiples';
import { DEFAULT_LINE_WIDTH } from '../chart/series-style';
import { SOURCES } from '../chart/frame';
+import {
+ ENERGY_FLOWS,
+ ENERGY_SPLIT_STYLES,
+ ENERGY_TIME_STYLES,
+ SANKEY_FLOWS,
+ withEnergyDefaults,
+} from '../history/energy';
import { AGGREGATES, GROUP_UNITS } from '../history/group';
import { CALENDAR_SPANS, PERIOD_UNITS, PERIOD_UNTIL } from '../history/period';
import { languageOf, localize } from '../localize';
import type { ChartEditorContext } from '../styles/index';
import type { CardConfig, HomeAssistant } from '../types';
import { annotationsEditor } from './annotations-editor';
+import { NOW_MARKER_FIELDS, nowMarkerSchema } from './now-marker-editor';
import { LINE_WIDTH_SELECTOR, applyFormData, formData } from './schemas';
import type { FieldBinding } from './schemas';
@@ -36,14 +48,23 @@ export const HISTORY_FIELDS: FieldBinding[] = [
{ name: 'period_until', path: ['period', 'until'], default: 'now' },
{ name: 'period_navigate', path: ['period', 'navigate'], default: false },
{ name: 'source', path: ['source'], default: 'history' },
+ { name: 'energy_flows', path: ['energy_flows'] },
{ name: 'group_by', path: ['group_by'], default: 'none' },
{ name: 'aggregate', path: ['aggregate'], default: 'mean' },
];
+/** Column and area only (listed after their history fields): energy leaving the house below the axis. */
+export const ENERGY_SPLIT_FIELD: FieldBinding = { name: 'energy_split', path: ['energy_split'], default: true };
+
/** Which history fields apply to this config; part of a chart editor's schema cache key. */
export function historyVariant(config: CardConfig | undefined): string {
const period = config?.period as { calendar?: unknown } | undefined;
- return `${period?.calendar ? 'calendar' : 'rolling'}${config?.group_by ? '|grouped' : ''}`;
+ // Styles that can draw the Energy dashboard offer it as a source, and its flows once chosen
+ // (and, on column and area, whether export and charging go below the axis).
+ const style = config?.style as never;
+ const chosen = config?.source === 'energy' ? `|energy${ENERGY_SPLIT_STYLES.includes(style) ? '|split' : ''}` : '';
+ const energy = ENERGY_TIME_STYLES.includes(style) ? chosen || '|energy-able' : '';
+ return `${period?.calendar ? 'calendar' : 'rolling'}${config?.group_by ? '|grouped' : ''}${energy}`;
}
/**
@@ -52,8 +73,10 @@ export function historyVariant(config: CardConfig | undefined): string {
* `historyVariant(config)`.
*/
export function historySchema(hass?: HomeAssistant, config?: CardConfig) {
- const [span, grouped] = historyVariant(config).split('|');
+ const [span, ...flags] = historyVariant(config).split('|');
const calendar = span === 'calendar';
+ const grouped = flags.includes('grouped');
+ const sources = flags.includes('energy') || flags.includes('energy-able') ? [...SOURCES, 'energy'] : SOURCES;
return [
{
type: 'grid',
@@ -70,7 +93,9 @@ export function historySchema(hass?: HomeAssistant, config?: CardConfig) {
],
},
{ name: 'period_navigate', selector: { boolean: {} } },
- { name: 'source', selector: choice(hass, 'source', SOURCES) },
+ { name: 'source', selector: choice(hass, 'source', sources) },
+ ...(flags.includes('energy') ? [energyFlowsField(hass, ENERGY_FLOWS)] : []),
+ ...(flags.includes('split') ? [{ name: 'energy_split', selector: { boolean: {} } }] : []),
{
type: 'grid',
name: '',
@@ -82,6 +107,46 @@ export function historySchema(hass?: HomeAssistant, config?: CardConfig) {
];
}
+/** The multi-select of Energy dashboard flows. */
+function energyFlowsField(hass: HomeAssistant | undefined, flows: readonly string[]) {
+ return {
+ name: 'energy_flows',
+ selector: {
+ select: {
+ multiple: true,
+ mode: 'list',
+ options: flows.map((value) => ({ value, label: localize(hass, `energy_flow_${value}`) })),
+ },
+ },
+ };
+}
+
+/**
+ * Pie and Sankey: where the values come from (the entities' current values, or the Energy
+ * dashboard's totals), and for the Energy dashboard, over what span and which flows.
+ */
+export const ENERGY_TOTALS_FIELDS: FieldBinding[] = [
+ { name: 'source', path: ['source'], default: 'current' },
+ ...HISTORY_FIELDS.filter((f) => f.name.startsWith('period_') && f.name !== 'period_navigate'),
+ { name: 'energy_flows', path: ['energy_flows'] },
+];
+
+/** Which totals fields apply; part of the pie's and Sankey's schema cache key. */
+export function energyTotalsVariant(config: CardConfig | undefined): string {
+ if (config?.source !== 'energy') return 'current';
+ return (config.period as { calendar?: unknown } | undefined)?.calendar ? 'calendar' : 'rolling';
+}
+
+export function energyTotalsSchema(hass: HomeAssistant | undefined, config: CardConfig | undefined) {
+ const variant = energyTotalsVariant(config);
+ const source = { name: 'source', selector: choice(hass, 'source', ['current', 'energy']) };
+ if (variant === 'current') return [source];
+ // The span's fields, as every history chart has them, less the previous / next buttons.
+ const span = historySchema(hass, { ...config, source: 'history' } as CardConfig)[0];
+ const flows = config?.style === 'sankey' ? SANKEY_FLOWS : ENERGY_FLOWS;
+ return [source, span, energyFlowsField(hass, flows)];
+}
+
/** History fields for charts that only read a rolling span (how far back, and from where). */
export const ROLLING_HISTORY_FIELDS: FieldBinding[] = HISTORY_FIELDS.filter((f) =>
['period_last', 'period_unit', 'source'].includes(f.name),
@@ -106,9 +171,11 @@ export function rollingHistorySchema(hass?: HomeAssistant) {
export const LAYOUT_FIELDS: FieldBinding[] = [
{ name: 'header', path: ['header'], default: 'above' },
{ name: 'compact', path: ['compact'], default: false },
+ ...LEGEND_TOGGLE_FIELDS,
];
-export function layoutSchema(hass?: HomeAssistant) {
+/** `toggles`: the chart's header names can hide and show series (charts drawn with `seriesHeader`). */
+export function layoutSchema(hass?: HomeAssistant, toggles = true) {
return [
{
type: 'grid',
@@ -118,6 +185,7 @@ export function layoutSchema(hass?: HomeAssistant) {
{ name: 'compact', selector: { boolean: {} } },
],
},
+ ...(toggles ? LEGEND_TOGGLE_SCHEMA : []),
];
}
@@ -271,7 +339,10 @@ export function chartForm(
.computeLabel=${(s: { name: string }) => localize(ctx.hass, labels[s.name] ?? `editor_${s.name}`)}
@value-changed=${(ev: CustomEvent) => {
ev.stopPropagation();
- const next = applyFormData(ctx.config, fields, (ev.detail?.value ?? {}) as Record);
+ const next = withEnergyDefaults(
+ ctx.config,
+ applyFormData(ctx.config, fields, (ev.detail?.value ?? {}) as Record),
+ );
if (next !== ctx.config) ctx.commit(next);
}}
>`;
@@ -279,6 +350,7 @@ export function chartForm(
const LINE_FIELDS: FieldBinding[] = [
...HISTORY_FIELDS,
+ ...COMPARE_FIELDS,
{ name: 'curve', path: ['curve'], default: 'smooth' },
{ name: 'color_by', path: ['color_by'], default: 'series' },
...LABEL_FIELDS,
@@ -287,8 +359,11 @@ const LINE_FIELDS: FieldBinding[] = [
...AXES_FIELDS,
{ name: 'y_scale', path: ['y_scale'], default: DEFAULT_AXES.scale },
...ZOOM_FIELDS,
+ ...FORECAST_FIELDS,
...ANNOTATION_FIELDS,
+ ...NOW_MARKER_FIELDS,
...EXTREMES_FIELDS,
+ ...ANOMALY_FIELDS,
...SYNC_FIELDS,
...LAYOUT_FIELDS,
...MULTIPLES_FIELDS,
@@ -296,10 +371,11 @@ const LINE_FIELDS: FieldBinding[] = [
export function lineEditor(ctx: ChartEditorContext): TemplateResult {
const schema = cachedSchema(
- `line|${historyVariant(ctx.config)}|${labelsVariant(ctx.config)}|${multiplesVariant(ctx.config)}`,
+ `line|${historyVariant(ctx.config)}|${labelsVariant(ctx.config)}|${multiplesVariant(ctx.config)}|${forecastVariant(ctx.config)}|${anomalyVariant(ctx.config)}|${compareVariant(ctx.config)}`,
ctx.hass,
() => [
...historySchema(ctx.hass, ctx.config),
+ ...compareSchema(ctx.hass, ctx.config),
{
type: 'grid',
name: '',
@@ -321,8 +397,11 @@ export function lineEditor(ctx: ChartEditorContext): TemplateResult {
// Only the line chart draws on a log scale: columns and stacked areas stand on zero.
{ name: 'y_scale', selector: choice(ctx.hass, 'y_scale', Y_SCALES) },
...ZOOM_SCHEMA,
+ ...forecastSchema(ctx.config),
...ANNOTATION_SCHEMA,
+ ...nowMarkerSchema(ctx.hass),
...extremesSchema(ctx.hass),
+ ...anomalySchema(ctx.config),
...SYNC_SCHEMA,
...layoutSchema(ctx.hass),
...multiplesSchema(ctx.hass, ctx.config),
diff --git a/src/editor/chartdeck-card-editor.ts b/src/editor/chartdeck-card-editor.ts
index 2531fc6..bbcdb3a 100644
--- a/src/editor/chartdeck-card-editor.ts
+++ b/src/editor/chartdeck-card-editor.ts
@@ -24,7 +24,11 @@ import {
} from './schemas';
import type { FieldBinding } from './schemas';
+/** The export menu's switch, in the Display section of chart styles. */
+const EXPORT_FIELDS: FieldBinding[] = [{ name: 'export', path: ['export'], default: false }];
+
import { thumbnail } from './thumbnails';
+import { cardConditionFields, conditionFields } from './condition-fields';
import { STYLES, STYLE_GROUPS, isChart } from '../styles/index';
import { sensorUnit } from './entities-editor';
import './bands-editor';
@@ -32,9 +36,11 @@ import './entities-editor';
import './limit-field';
import { GROUP_LEVELS } from '../chart/hierarchy';
import { LanguageController } from '../language-controller';
+import { withCumulativeFields } from '../history/transform-cumulative';
+import { withDerivativeFields } from '../history/transform-derivative';
/** Styles whose `group_by` groups entities by place rather than readings by time. */
-const HIERARCHY_STYLES: StyleName[] = ['treemap', 'sunburst', 'icicle', 'radar'];
+const HIERARCHY_STYLES: StyleName[] = ['treemap', 'sunburst', 'icicle', 'radar', 'marimekko'];
/** Styles with the gauge options (angles, centre text, tick labels). */
const GAUGE_STYLES: StyleName[] = ['ring', 'arc', 'needle'];
@@ -213,6 +219,18 @@ export class ChartdeckCardEditor extends LitElement {
return module && isChart(module) && this._config ? module.entityFields?.(this.hass, this._config) : undefined;
}
+ /** The history transforms each entity can take, on charts that draw history as numbers. */
+ private _transformFields() {
+ if (!this._config) return undefined;
+ const style = this._config.style ?? 'bar';
+ return withDerivativeFields(
+ style,
+ this.hass,
+ this._config,
+ withCumulativeFields(style, this.hass, this._config, undefined),
+ );
+ }
+
/** Entity list, pickers and per-entity overrides, then the rules that add more. */
protected renderEntities(): unknown {
return html` this._subChanged(['entities'], ev)}
>
${this._ruleForm('include')} ${this._ruleForm('exclude')}`;
@@ -314,6 +334,9 @@ export class ChartdeckCardEditor extends LitElement {
const places = levels.length > 0 && levels.every((l) => (GROUP_LEVELS as readonly unknown[]).includes(l));
if (levels.length > 0 && places !== HIERARCHY_STYLES.includes(style))
next = setOption(next, ['group_by'], undefined);
+ // The battery grid reads best with the emptiest first, so picking it sorts lowest first
+ // unless a sort is already set (YAML without one keeps the order listed, like every style).
+ if (style === 'battery' && next.sort === undefined) next = setOption(next, ['sort'], 'ascending');
this._commit(next);
}
@@ -356,14 +379,19 @@ export class ChartdeckCardEditor extends LitElement {
protected renderChart(): TemplateResult | typeof nothing {
const module = STYLES[(this._config?.style ?? 'bar') as StyleName];
if (!module || !isChart(module) || !module.editor || !this._config) return nothing;
+ // History charts: the card's `when`, for every series without its own, in a form of its own.
+ const when = cardConditionFields(this._config.style);
return this._panel(
'chart',
- module.editor({ hass: this.hass, config: this._config, commit: (config) => this._commit(config) }),
+ html`${module.editor({ hass: this.hass, config: this._config, commit: (config) => this._commit(config) })}
+ ${when ? this._form('card-condition', when.schema, when.fields) : nothing}`,
);
}
protected renderDisplay(): TemplateResult {
- return html`${this._toggles(DISPLAY_TOGGLE_FIELDS)}
+ // Charts can carry the export menu (save a picture, copy the values or the YAML).
+ const chart = isChart(STYLES[(this._config?.style ?? 'bar') as StyleName] ?? STYLES.bar);
+ return html`${this._toggles(chart ? [...DISPLAY_TOGGLE_FIELDS, ...EXPORT_FIELDS] : DISPLAY_TOGGLE_FIELDS)}
${this._form('display', displaySchema(this.hass), DISPLAY_FIELDS)}`;
}
diff --git a/src/editor/climate-editor.ts b/src/editor/climate-editor.ts
index 664d835..8703b0f 100644
--- a/src/editor/climate-editor.ts
+++ b/src/editor/climate-editor.ts
@@ -75,7 +75,7 @@ export function climateEditor(ctx: ChartEditorContext): TemplateResult {
],
},
...axesSchema(ctx.hass),
- ...layoutSchema(ctx.hass),
+ ...layoutSchema(ctx.hass, false),
]);
return chartForm(ctx, 'chart', schema, CLIMATE_FIELDS);
}
diff --git a/src/editor/condition-fields.ts b/src/editor/condition-fields.ts
new file mode 100644
index 0000000..fcd10d8
--- /dev/null
+++ b/src/editor/condition-fields.ts
@@ -0,0 +1,121 @@
+import type { EntityFields } from '../styles/index';
+import type { FieldBinding } from './schemas';
+
+/**
+ * History charts a series' `when` applies to: those that load through the shared frame, and the
+ * box plot, candlestick, day clock and wind rose, which load their own. Not the climate chart:
+ * it is one thermostat's own record, whose heating band already says when it ran.
+ */
+export const CONDITION_STYLES = [
+ 'line',
+ 'area',
+ 'column',
+ 'combined',
+ 'range_area',
+ 'sparkline',
+ 'streamgraph',
+ 'beeswarm',
+ 'violin',
+ 'histogram',
+ 'heatmap',
+ 'dumbbell',
+ 'slope',
+ 'trend',
+ 'waterfall',
+ 'timeline',
+ 'box',
+ 'candlestick',
+ 'day_clock',
+ 'wind_rose',
+ 'spiral',
+ 'strip_plot',
+ 'cycle_plot',
+];
+
+/** Charts that can also draw the hidden readings faintly and the strip under the plot. */
+export const STRIP_STYLES = ['line', 'area'];
+
+/** Each series' condition: the entity, and the state it must be in or the values it must be between. */
+export const CONDITION_FIELDS: FieldBinding[] = [
+ { name: 'when_entity', path: ['when', 'entity'] },
+ { name: 'when_state', path: ['when', 'state'] },
+ { name: 'when_above', path: ['when', 'above'] },
+ { name: 'when_below', path: ['when', 'below'] },
+];
+
+const NUMBER = { number: { mode: 'box', step: 'any' } };
+
+const CONDITION: EntityFields = {
+ schema: [
+ { name: 'when_entity', selector: { entity: {} } },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'when_state', selector: { text: {} } },
+ { name: 'when_above', selector: NUMBER },
+ { name: 'when_below', selector: NUMBER },
+ ],
+ },
+ ],
+ fields: CONDITION_FIELDS,
+};
+
+/** The card's `when`, for every series without its own. */
+export const CARD_CONDITION_FIELDS: FieldBinding[] = [
+ { name: 'when_card_entity', path: ['when', 'entity'] },
+ { name: 'when_card_state', path: ['when', 'state'] },
+ { name: 'when_card_above', path: ['when', 'above'] },
+ { name: 'when_card_below', path: ['when', 'below'] },
+];
+
+const DRAWING_FIELDS: FieldBinding[] = [
+ { name: 'when_ghost', path: ['when_ghost'], default: false },
+ { name: 'when_strip', path: ['when_strip'], default: false },
+];
+
+const CARD_SCHEMA = [
+ { name: 'when_card_entity', selector: { entity: {} } },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'when_card_state', selector: { text: {} } },
+ { name: 'when_card_above', selector: NUMBER },
+ { name: 'when_card_below', selector: NUMBER },
+ ],
+ },
+];
+
+const CARD: EntityFields = { schema: CARD_SCHEMA, fields: CARD_CONDITION_FIELDS };
+const CARD_DRAWN: EntityFields = {
+ schema: [
+ ...CARD_SCHEMA,
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'when_ghost', selector: { boolean: {} } },
+ { name: 'when_strip', selector: { boolean: {} } },
+ ],
+ },
+ ],
+ fields: [...CARD_CONDITION_FIELDS, ...DRAWING_FIELDS],
+};
+
+/**
+ * The card's condition form, in the Chart section under the style's own options, for the styles
+ * in `CONDITION_STYLES` (with the faint line and strip switches on line and area charts).
+ */
+export function cardConditionFields(style: string | undefined): EntityFields | undefined {
+ if (style === undefined || !CONDITION_STYLES.includes(style)) return undefined;
+ return STRIP_STYLES.includes(style) ? CARD_DRAWN : CARD;
+}
+
+/**
+ * The per-entity condition form, for the styles in `CONDITION_STYLES` (undefined for others). Its
+ * own form beside the style's per-entity fields, so styles' field lists stay as they are.
+ */
+export function conditionFields(style: string | undefined): EntityFields | undefined {
+ return style !== undefined && CONDITION_STYLES.includes(style) ? CONDITION : undefined;
+}
diff --git a/src/editor/entities-editor.ts b/src/editor/entities-editor.ts
index 7a30cef..01c45f5 100644
--- a/src/editor/entities-editor.ts
+++ b/src/editor/entities-editor.ts
@@ -50,6 +50,8 @@ export class CdEntitiesEditor extends LitElement {
entities: { attribute: false },
unit: { attribute: false },
chartFields: { attribute: false },
+ transformFields: { attribute: false },
+ conditionFields: { attribute: false },
_expanded: { state: true },
};
@@ -113,6 +115,10 @@ export class CdEntitiesEditor extends LitElement {
declare unit?: string;
/** The chart style's own per-entity options, when the card is a chart that has any. */
declare chartFields?: EntityFields;
+ /** History charts: the per-entity transforms (running total, rate of change), in a form of their own. */
+ declare transformFields?: EntityFields;
+ /** History charts: when each series is shown (its `when`), in a form of its own. */
+ declare conditionFields?: EntityFields;
/** Indexes of rows whose overrides are open. */
declare _expanded: Set;
@@ -208,12 +214,28 @@ export class CdEntitiesEditor extends LitElement {
};
return html`
${this._form('entity-attribute', index, own, entityAttributeSchema(own.entity), ENTITY_ATTRIBUTE_FIELDS)}
- ${this._form('entity-text', index, own, entityTextSchema(), ENTITY_TEXT_FIELDS)}
+ ${this._form(
+ 'entity-text',
+ index,
+ own,
+ entityTextSchema(sensorUnit(this.hass, own.entity, own.attribute)),
+ ENTITY_TEXT_FIELDS,
+ )}
${
this.chartFields
? this._form('entity-chart', index, own, this.chartFields.schema, this.chartFields.fields)
: nothing
}
+ ${
+ this.transformFields
+ ? this._form('entity-transform', index, own, this.transformFields.schema, this.transformFields.fields)
+ : nothing
+ }
+ ${
+ this.conditionFields
+ ? this._form('entity-condition', index, own, this.conditionFields.schema, this.conditionFields.fields)
+ : nothing
+ }
({ value, label: localize(hass, `editor_now_marker_${value}`) })),
+ },
+ },
+ },
+ ];
+}
diff --git a/src/editor/schemas.ts b/src/editor/schemas.ts
index aface3c..8068165 100644
--- a/src/editor/schemas.ts
+++ b/src/editor/schemas.ts
@@ -2,6 +2,8 @@ import { languageOf, localize } from '../localize';
import type { CardConfig, HomeAssistant } from '../types';
import { setOption } from './edit';
import { MAX_LINE_WIDTH, MIN_LINE_WIDTH } from '../chart/series-style';
+import { GHOST_SPANS } from '../gauge';
+import { convertibleUnits } from '../units';
/** One ha-form field and where it lives in the card config. */
export interface FieldBinding {
@@ -49,6 +51,7 @@ export const GAUGE_FIELDS: FieldBinding[] = [
{ name: 'center', path: ['center'], default: 'value' },
{ name: 'center_text', path: ['center_text'] },
{ name: 'tick_labels', path: ['tick_labels'], default: false },
+ { name: 'ghost', path: ['ghost'], default: 'off' },
];
const gaugeSchemas = new Map();
@@ -86,6 +89,15 @@ export function gaugeSchema(hass: HomeAssistant | undefined, style: string, cent
},
...(text ? [{ name: 'center_text', selector: { text: {} } }] : []),
...(style === 'needle' ? [{ name: 'tick_labels', selector: { boolean: {} } }] : []),
+ {
+ name: 'ghost',
+ selector: {
+ select: {
+ mode: 'dropdown',
+ options: GHOST_SPANS.map((value) => ({ value, label: localize(hass, `editor_ghost_${value}`) })),
+ },
+ },
+ },
];
gaugeSchemas.set(key, schema);
}
@@ -213,8 +225,32 @@ export function actionsSchema() {
return ACTIONS_SCHEMA;
}
-export function entityTextSchema() {
- return ENTITY_TEXT_SCHEMA;
+const unitSchemas = new Map();
+
+/**
+ * Name, unit and decimals. When the sensor's unit is one the card converts (W, °F, m/s…), the unit
+ * offers the units it converts to; any other text can still be typed and is shown as written.
+ */
+export function entityTextSchema(sensorUnit?: string) {
+ const units = convertibleUnits(sensorUnit);
+ if (units.length === 0) return ENTITY_TEXT_SCHEMA;
+ const key = units[0];
+ let schema = unitSchemas.get(key);
+ if (!schema) {
+ const grid = ENTITY_TEXT_SCHEMA[0];
+ schema = [
+ {
+ ...grid,
+ schema: grid.schema.map((field) =>
+ field.name === 'unit'
+ ? { name: 'unit', selector: { select: { mode: 'dropdown', custom_value: true, options: units } } }
+ : field,
+ ),
+ },
+ ];
+ unitSchemas.set(key, schema);
+ }
+ return schema;
}
export function entityActionsSchema() {
diff --git a/src/gauge-ghost.ts b/src/gauge-ghost.ts
new file mode 100644
index 0000000..15aa236
--- /dev/null
+++ b/src/gauge-ghost.ts
@@ -0,0 +1,236 @@
+import { css, nothing, svg } from 'lit';
+import type { SVGTemplateResult } from 'lit';
+import { formatNumber, withUnit } from './format';
+import type { GhostSpan } from './gauge';
+import { polar, arcPath } from './geometry';
+import { loadHistory, loadStatistics } from './history/fetch';
+import type { Point, Range } from './history/types';
+import { localize } from './localize';
+import type { HomeAssistant } from './types';
+
+/*
+ * The history ghost on the needle, arc and ring gauges: a faint band from the lowest to the
+ * highest reading of the last 24 hours (or 7 days) and a tick at its mean, so a glance tells
+ * whether now is usual. The last 24 hours come from the recorder's history (every change, mean
+ * weighted by how long each reading held). Seven days come from the hourly long-term statistics
+ * (lowest of the hourly lows, highest of the highs, mean of the means), which is far less to
+ * load; a sensor without statistics (no state_class) falls back to its history.
+ *
+ * What is loaded is kept per entity and span for every card on the page, and loaded again once
+ * it is older than a few minutes (an hour for 7 days), on the next draw. A gauge draws whenever
+ * its entity changes, so the ghost keeps up without a timer of its own.
+ */
+
+/** Milliseconds each ghost span covers. */
+export const GHOST_MS: Record, number> = {
+ '24h': 86_400_000,
+ '7d': 7 * 86_400_000,
+};
+
+/** How old a loaded ghost may get before the next draw loads it again. */
+const REFRESH_MS: Record, number> = {
+ '24h': 5 * 60_000,
+ '7d': 3_600_000,
+};
+
+export interface Ghost {
+ min: number;
+ max: number;
+ mean: number;
+}
+
+/**
+ * Lowest, highest and time-weighted mean of history readings over a range. Each reading holds
+ * until the next one (the last until the range ends); gaps (`v: null`) count for nothing. Null
+ * when there is no reading at all.
+ */
+export function historyGhost(points: Point[], range: Range): Ghost | null {
+ let min = Infinity;
+ let max = -Infinity;
+ let area = 0;
+ let time = 0;
+ let sum = 0;
+ let count = 0;
+ points.forEach((p, i) => {
+ if (p.v === null) return;
+ min = Math.min(min, p.v);
+ max = Math.max(max, p.v);
+ sum += p.v;
+ count++;
+ const from = Math.max(p.t, range.start);
+ const to = Math.min(i + 1 < points.length ? points[i + 1].t : range.end, range.end);
+ if (to > from) {
+ area += p.v * (to - from);
+ time += to - from;
+ }
+ });
+ if (count === 0) return null;
+ // Every reading at the very end of the range (no time held): a plain mean.
+ return { min, max, mean: time > 0 ? area / time : sum / count };
+}
+
+/** Lowest low, highest high and mean of the means of statistics rows; null without a mean. */
+export function statisticsGhost(points: Point[]): Ghost | null {
+ const rows = points.filter((p) => p.v !== null);
+ if (!rows.length) return null;
+ const lows = rows.map((p) => p.min ?? p.v!).filter((v): v is number => v !== null);
+ const highs = rows.map((p) => p.max ?? p.v!).filter((v): v is number => v !== null);
+ return {
+ min: Math.min(...lows),
+ max: Math.max(...highs),
+ mean: rows.reduce((a, p) => a + p.v!, 0) / rows.length,
+ };
+}
+
+/** Load one entity's ghost for a span ending now. */
+export async function loadGhost(
+ hass: HomeAssistant,
+ entity: string,
+ attribute: string | undefined,
+ span: Exclude,
+ now = Date.now(),
+): Promise {
+ const range = { start: now - GHOST_MS[span], end: now };
+ const series = [{ entity, attribute }];
+ if (span === '7d' && !attribute) {
+ const data = await loadStatistics(hass, series, range, {
+ period: 'hour',
+ types: ['mean', 'min', 'max'],
+ value: 'mean',
+ });
+ const ghost = statisticsGhost(data.get(entity) ?? []);
+ if (ghost) return ghost;
+ }
+ const data = await loadHistory(hass, series, range);
+ const key = attribute ? `${entity}|${attribute}` : entity;
+ return historyGhost(data.get(key) ?? [], range);
+}
+
+interface Entry {
+ ghost: Ghost | null;
+ /** When it was loaded (or asked for, while loading). */
+ at: number;
+ loading: boolean;
+ /** Redraws waiting for it to arrive. */
+ waiting: Set<() => void>;
+}
+
+const cache = new Map();
+
+/** Forget every loaded ghost (tests). */
+export function clearGhosts(): void {
+ cache.clear();
+}
+
+/**
+ * The ghost for an entity as loaded so far, asking for it (or for a fresh copy) when it is
+ * missing or stale; `redraw` is called once it arrives. Null until then, and when the recorder
+ * has nothing or the call fails.
+ */
+export function ghostFor(
+ hass: HomeAssistant,
+ entity: string,
+ attribute: string | undefined,
+ span: GhostSpan | undefined,
+ redraw: (() => void) | undefined,
+ now = Date.now(),
+): Ghost | null {
+ if (!span || span === 'off' || !hass.callWS || !hass.states[entity]) return null;
+ const key = `${entity}|${attribute ?? ''}|${span}`;
+ let entry = cache.get(key);
+ if (!entry) {
+ entry = { ghost: null, at: -Infinity, loading: false, waiting: new Set() };
+ cache.set(key, entry);
+ }
+ if (!entry.loading && now - entry.at > REFRESH_MS[span]) {
+ const current = entry;
+ current.loading = true;
+ current.at = now;
+ const done = (ghost: Ghost | null) => {
+ current.ghost = ghost;
+ current.loading = false;
+ const waiting = [...current.waiting];
+ current.waiting.clear();
+ for (const fn of waiting) fn();
+ };
+ loadGhost(hass, entity, attribute, span, now).then(done, () => done(current.ghost));
+ }
+ if (entry.loading && redraw) entry.waiting.add(redraw);
+ return entry.ghost;
+}
+
+/** Where a ghost sits along a gauge from `min` to `max`, each end clamped to 0..1. */
+export function ghostPositions(ghost: Ghost, min: number, max: number): { from: number; to: number; mean: number } {
+ const range = max - min;
+ const at = (v: number) => (range > 0 ? Math.min(1, Math.max(0, (v - min) / range)) : 0);
+ return { from: at(ghost.min), to: at(ghost.max), mean: at(ghost.mean) };
+}
+
+/** The ghost's hover text: "Last 24 hours: 22 – 68 %, mean 46 %". */
+export function ghostTitle(
+ ghost: Ghost,
+ span: Exclude,
+ decimals: number,
+ unit: string,
+ hass: HomeAssistant | undefined,
+): string {
+ const f = (v: number) => withUnit(formatNumber(v, decimals, hass), unit);
+ return localize(hass, `ghost_title_${span}`, { min: f(ghost.min), max: f(ghost.max), mean: f(ghost.mean) });
+}
+
+export interface GhostGeometry {
+ cx: number;
+ cy: number;
+ /** Radius of the band's centre line. */
+ r: number;
+ /** Band width. */
+ width: number;
+ /** The mean tick runs from `tick[0]` to `tick[1]` from the centre. */
+ tick: [number, number];
+ /** Degrees for a 0..1 position along the gauge. */
+ at(t: number): number;
+}
+
+/** The ghost band and mean tick for a gauge, or nothing without a ghost. */
+export function ghostMarks(
+ ghost: Ghost | null,
+ e: { min: number; max: number; decimals: number; unit: string },
+ span: GhostSpan | undefined,
+ g: GhostGeometry,
+ hass: HomeAssistant | undefined,
+): SVGTemplateResult | typeof nothing {
+ if (!ghost || !span || span === 'off') return nothing;
+ const pos = ghostPositions(ghost, e.min, e.max);
+ let a0 = g.at(pos.from);
+ let a1 = g.at(pos.to);
+ // A steady reading still shows: at least two degrees of band, centred on it.
+ if (a1 - a0 < 2) {
+ const mid = (a0 + a1) / 2;
+ a0 = mid - 1;
+ a1 = mid + 1;
+ }
+ const m = g.at(pos.mean);
+ const [x1, y1] = polar(g.cx, g.cy, g.tick[0], m);
+ const [x2, y2] = polar(g.cx, g.cy, g.tick[1], m);
+ return svg`
+ ${ghostTitle(ghost, span, e.decimals, e.unit, hass)}
+
+
+ `;
+}
+
+/** Ghost colours: the text colour, faint for the band and stronger for the mean. */
+export const ghostStyles = css`
+ .ghost-band {
+ fill: none;
+ stroke: var(--primary-text-color);
+ stroke-opacity: 0.2;
+ stroke-linecap: butt;
+ }
+ .ghost-mean {
+ stroke: var(--primary-text-color);
+ stroke-opacity: 0.75;
+ stroke-width: 2px;
+ stroke-linecap: round;
+ }
+`;
diff --git a/src/gauge.ts b/src/gauge.ts
index 6b3dad4..0365cd3 100644
--- a/src/gauge.ts
+++ b/src/gauge.ts
@@ -8,6 +8,10 @@ import type { CardConfig, StyleName } from './types';
export const CENTER_MODES = ['value', 'band', 'name', 'text', 'none'] as const;
export type CenterMode = (typeof CENTER_MODES)[number];
+/** The history ghost's span (see gauge-ghost.ts). */
+export const GHOST_SPANS = ['off', '24h', '7d'] as const;
+export type GhostSpan = (typeof GHOST_SPANS)[number];
+
export interface GaugeOptions {
/** Set only when the card sets it; otherwise the style's own default angle. */
startAngle?: number;
@@ -15,6 +19,8 @@ export interface GaugeOptions {
center: CenterMode;
centerText: string;
tickLabels: boolean;
+ /** The history ghost's span; set only when the card turns it on. */
+ ghost?: GhostSpan;
}
/** Each gauge style's sweep when no angle is set. */
@@ -53,6 +59,9 @@ export function parseGaugeOptions(raw: CardConfig, style: StyleName = raw.style
if (raw.tick_labels !== undefined && typeof raw.tick_labels !== 'boolean') {
throw new Error('"tick_labels" must be true or false');
}
+ if (raw.ghost !== undefined && raw.ghost !== null && !GHOST_SPANS.includes(raw.ghost as GhostSpan)) {
+ throw new Error(`"ghost" must be one of: ${GHOST_SPANS.join(', ')}`);
+ }
const options: GaugeOptions = {
center: center as CenterMode,
centerText: (raw.center_text as string | undefined) ?? '',
@@ -60,6 +69,7 @@ export function parseGaugeOptions(raw: CardConfig, style: StyleName = raw.style
};
if (startAngle !== undefined) options.startAngle = startAngle;
if (endAngle !== undefined) options.endAngle = endAngle;
+ if (raw.ghost && raw.ghost !== 'off') options.ghost = raw.ghost as GhostSpan;
return options;
}
diff --git a/src/history/condition.ts b/src/history/condition.ts
new file mode 100644
index 0000000..b9b1daa
--- /dev/null
+++ b/src/history/condition.ts
@@ -0,0 +1,271 @@
+import type { CardConfig, EntityConfig, HomeAssistant } from '../types';
+import { key, toReading } from './fetch';
+import { HistoryStore } from './store';
+import type { Point, Range } from './types';
+
+/**
+ * Conditional series: an entity's `when` keeps only the readings taken while another entity is
+ * in a state (or above / below a value). Readings outside are gaps, so the line, its groups, the
+ * highs and lows and the tooltip all see the kept readings only. A `when` on the card applies to
+ * every series without its own.
+ *
+ * when: { entity: person.john, state: home } # every series...
+ * entities:
+ * - entity: sensor.living_room_power
+ * - entity: sensor.flow_temp
+ * when: { entity: sensor.heat_pump_power, above: 50 } # ...but this one
+ */
+export interface Condition {
+ entity: string;
+ /** The state (or one of the states) that counts. */
+ state?: string | string[];
+ /** The condition entity's value must be above this (and below `below`, when both are set). */
+ above?: number;
+ below?: number;
+}
+
+/** When the condition held: from each `t` on, until the next. */
+export interface Flip {
+ t: number;
+ ok: boolean;
+}
+
+const isEntityId = (v: unknown): v is string => typeof v === 'string' && /^[a-z_]+\.[a-z0-9_]+$/.test(v.trim());
+
+/** Throw a readable error for a bad `when` (`where` names it in the message). */
+function validateWhen(when: unknown, where: (k: string) => string): void {
+ if (when === undefined) return;
+ if (typeof when !== 'object' || when === null || Array.isArray(when)) {
+ throw new Error(`"${where('')}" must have an "entity"`);
+ }
+ const w = when as Record;
+ // Left blank (the editor fills the fields in one at a time), the condition is ignored.
+ if (w.entity !== undefined && !isEntityId(w.entity)) throw new Error(`"${where('entity')}" must be an entity id`);
+ const states = Array.isArray(w.state) ? w.state : w.state === undefined ? [] : [w.state];
+ if (states.some((s) => typeof s !== 'string' && typeof s !== 'number')) {
+ throw new Error(`"${where('state')}" must be a state or a list of states`);
+ }
+ for (const k of ['above', 'below']) {
+ if (w[k] !== undefined && (typeof w[k] !== 'number' || !Number.isFinite(w[k]))) {
+ throw new Error(`"${where(k)}" must be a number`);
+ }
+ }
+}
+
+/** Throw a readable error for a bad `when` on the card or any of its entities, or a bad drawing option. */
+export function validateConditions(raw: CardConfig): void {
+ validateWhen(raw.when, (k) => `when${k ? `.${k}` : ''}`);
+ (raw.entities ?? []).forEach((e, i) => {
+ if (typeof e !== 'object' || e === null) return;
+ validateWhen((e as EntityConfig & { when?: unknown }).when, (k) => `entities[${i}].when${k ? `.${k}` : ''}`);
+ });
+ for (const k of ['when_ghost', 'when_strip']) {
+ if (raw[k] !== undefined && typeof raw[k] !== 'boolean') throw new Error(`"${k}" must be true or false`);
+ }
+}
+
+/** A `when` as a condition, or undefined when it is unusable (no entity, or nothing to test). */
+function parseWhen(w: Partial | undefined): Condition | undefined {
+ if (!w || typeof w !== 'object' || !isEntityId(w.entity)) return undefined;
+ // A list, or text with commas between ("home, work"), as the editor writes it.
+ const list = Array.isArray(w.state) ? w.state : typeof w.state === 'string' ? w.state.split(',') : [w.state];
+ const states = list
+ .filter((s) => s !== undefined && s !== null)
+ .map((s) => String(s).trim())
+ .filter(Boolean);
+ const out: Condition = { entity: w.entity.trim() };
+ if (states.length) out.state = states;
+ if (typeof w.above === 'number') out.above = w.above;
+ if (typeof w.below === 'number') out.below = w.below;
+ return out.state || out.above !== undefined || out.below !== undefined ? out : undefined;
+}
+
+/**
+ * One entity's condition: its own `when`, else the card's (`card`), else undefined. A half-filled
+ * own `when` does not hide the card's.
+ */
+export function conditionOf(config: EntityConfig, card?: CardConfig): Condition | undefined {
+ return (
+ parseWhen((config as EntityConfig & { when?: Partial }).when) ??
+ parseWhen(card?.when as Partial | undefined)
+ );
+}
+
+/** The entities the card's conditions read (its own `when` and its entities'), so their changes redraw it. */
+export function conditionEntities(entities: readonly (string | EntityConfig)[], card?: CardConfig): string[] {
+ const ids = new Set();
+ for (const e of entities) {
+ const c = typeof e === 'object' && e !== null ? conditionOf(e) : undefined;
+ if (c) ids.add(c.entity);
+ }
+ // Matched (include) entities have no `when` of their own: the card's applies to them.
+ const own = parseWhen(card?.when as Partial | undefined);
+ if (own) ids.add(own.entity);
+ return [...ids];
+}
+
+/** Two conditions test the same thing (so they share one strip). */
+export const sameCondition = (a: Condition, b: Condition) => JSON.stringify(a) === JSON.stringify(b);
+
+/** Whether one state of the condition entity meets the condition. */
+export function meets(c: Condition, state: string | undefined): boolean {
+ if (state === undefined) return false;
+ if (c.state && !c.state.includes(state.trim())) return false;
+ if (c.above !== undefined || c.below !== undefined) {
+ const v = toReading(state);
+ if (v === null) return false;
+ if (c.above !== undefined && !(v > c.above)) return false;
+ if (c.below !== undefined && !(v < c.below)) return false;
+ }
+ return true;
+}
+
+/** The condition entity's states (text points) as the moments the condition began and stopped holding. */
+export function flips(c: Condition, states: readonly Point[]): Flip[] {
+ const out: Flip[] = [];
+ for (const p of states) {
+ const ok = meets(c, p.s);
+ if (out.length === 0 || out[out.length - 1].ok !== ok) out.push({ t: p.t, ok });
+ }
+ return out;
+}
+
+/** The stretches the condition held within `range`, as [start, end] pairs, up to `until`. */
+export function heldSpans(changes: readonly Flip[], range: Range, until: number): [number, number][] {
+ const out: [number, number][] = [];
+ const stop = Math.min(range.end, until);
+ changes.forEach((f, i) => {
+ if (!f.ok) return;
+ const start = Math.max(range.start, f.t);
+ const end = Math.min(stop, i + 1 < changes.length ? changes[i + 1].t : stop);
+ if (end > start) out.push([start, end]);
+ });
+ return out;
+}
+
+const known = (p: Point | undefined) => p !== undefined && (p.v !== null || p.s !== undefined);
+
+/**
+ * Keep the readings taken while the condition held; the rest become gaps. Where it starts to
+ * hold, the value then in force is repeated (marked `carried`, as it is no new reading), and where
+ * it stops, the line is carried on to that moment and broken, so a kept stretch is drawn edge to
+ * edge. Before the condition's first known state nothing is kept.
+ */
+export function maskPoints(points: readonly Point[], changes: readonly Flip[]): Point[] {
+ const out: Point[] = [];
+ let ok = false;
+ let cur: Point | undefined;
+ let f = 0;
+ const flip = ({ t, ok: next }: Flip) => {
+ if (next === ok) return;
+ ok = next;
+ if (ok) {
+ if (known(cur)) out.push({ ...cur!, t, carried: true });
+ return;
+ }
+ if (known(out[out.length - 1])) {
+ if (known(cur) && t > out[out.length - 1].t) out.push({ ...cur!, t, carried: true });
+ out.push({ t, v: null });
+ }
+ };
+ for (const p of points) {
+ while (f < changes.length && changes[f].t <= p.t) flip(changes[f++]);
+ if (ok) out.push(p);
+ else if (known(out[out.length - 1])) out.push({ t: p.t, v: null });
+ cur = p;
+ }
+ while (f < changes.length) flip(changes[f++]);
+ return out;
+}
+
+export interface Conditions {
+ /** The condition entities' history is still loading. */
+ pending: boolean;
+ /** Each condition entity's states over the range (text points), by entity id. */
+ states: Map;
+ /** The card, whose own `when` applies to series without one. */
+ card?: CardConfig;
+}
+
+const stores = new WeakMap();
+
+/**
+ * Load (or reuse) the history of every entity the series' conditions read, over `range`: one
+ * extra store per card, kept up to date from `hass` while the range is live. Undefined when no
+ * series has a condition. A failed load keeps nothing (every conditional series is a gap) rather
+ * than showing readings it should hide.
+ */
+export function loadConditions(
+ host: HTMLElement,
+ hass: HomeAssistant,
+ configs: readonly EntityConfig[],
+ range: Range,
+ live: boolean,
+ onChange: () => void,
+ card?: CardConfig,
+): Conditions | undefined {
+ // Only the entities a drawn series reads: the card's `when` counts once a series has none of its own.
+ const ids = [...new Set(configs.map((c) => conditionOf(c, card)?.entity).filter((id): id is string => !!id))];
+ if (ids.length === 0) return undefined;
+ let store = stores.get(host);
+ if (!store) {
+ store = new HistoryStore(onChange);
+ stores.set(host, store);
+ }
+ const requests = ids.map((entity) => ({ entity, text: true }));
+ const loaded = store.get(hass, requests, range, 'history', { live });
+ const states = new Map();
+ requests.forEach((r) => states.set(r.entity, loaded.data.get(key(r)) ?? []));
+ return { pending: loaded.status === 'loading', states, ...(card ? { card } : {}) };
+}
+
+/**
+ * A chart that loads its own history (box plot, candlestick, day clock, wind rose): the
+ * conditions of `ctx`'s series over `range`, and a status that stays `loading` until they are in.
+ */
+export function chartConditions(
+ ctx: {
+ host: HTMLElement;
+ hass: HomeAssistant;
+ items: readonly { config: EntityConfig }[];
+ raw: CardConfig;
+ requestUpdate(): void;
+ },
+ range: Range,
+ live: boolean,
+): Conditions | undefined {
+ return loadConditions(
+ ctx.host,
+ ctx.hass,
+ ctx.items.map((e) => e.config),
+ range,
+ live,
+ ctx.requestUpdate,
+ ctx.raw,
+ );
+}
+
+/** A history status, held at `loading` while the conditions' history loads. */
+export function conditionStatus(status: S, conditions: Conditions | undefined): S | 'loading' {
+ return conditions?.pending && status === 'ready' ? 'loading' : status;
+}
+
+/**
+ * One series' points with its condition applied (unchanged when it has none). While the
+ * condition's history loads, nothing is kept: the frame shows "Loading" meanwhile.
+ */
+export function conditionalPoints(config: EntityConfig, points: Point[], conditions: Conditions | undefined): Point[] {
+ const c = conditionOf(config, conditions?.card);
+ if (!c || !conditions) return points;
+ return maskPoints(points, flips(c, conditions.states.get(c.entity) ?? []));
+}
+
+/** The card draws the faint full series behind conditional ones (line and area charts). */
+export const ghostOn = (raw: CardConfig) => raw.when_ghost === true;
+/** The card draws a strip under the plot showing when each condition held (line and area charts). */
+export const stripOn = (raw: CardConfig) => raw.when_strip === true;
+
+/** Pause a card's condition history when it leaves the page. */
+export function pauseConditions(host: HTMLElement): void {
+ stores.get(host)?.pause();
+}
diff --git a/src/history/energy-totals.ts b/src/history/energy-totals.ts
new file mode 100644
index 0000000..d5dbfe4
--- /dev/null
+++ b/src/history/energy-totals.ts
@@ -0,0 +1,123 @@
+import { forgetPlotted } from '../chart/export';
+import { historyFrame } from '../chart/frame';
+import { formatNumber, withUnit } from '../format';
+import { localize } from '../localize';
+import type { ResolvedEntity } from '../resolve';
+import type { ChartContext } from '../styles/index';
+import type { CardConfig, HomeAssistant } from '../types';
+import { OUT_FLOWS, periodTotal } from './energy';
+import type { EnergyFlow, EnergyMarks } from './energy';
+import { parsePeriod, periodRange } from './period';
+import { zoneFor } from './timezone';
+
+/*
+ * A pie or Sankey of the Energy dashboard draws each flow's total over the card's period: the
+ * long-term statistics' change, read by the hour (by the day past a month) and added up. Each
+ * entity then carries its total as its value, so the pie and Sankey draw it as they would a
+ * current reading. A Sankey's flows run from the sources (grid import, solar, battery out) into
+ * the house, then out to the grid, the battery and each device; what the devices don't account
+ * for is drawn as one more flow.
+ */
+
+const DAY_MS = 86_400_000;
+/** Spans longer than this are read by the day rather than the hour. */
+const HOURLY_UP_TO_MS = 32 * DAY_MS;
+
+const SOURCE_FLOWS: EnergyFlow[] = ['grid_import', 'solar', 'battery_out'];
+
+/** An entity carrying a total as its value, formatted as the entity is; '' with no readings. */
+export function withTotal(e: ResolvedEntity, total: number | null, hass: HomeAssistant | undefined): ResolvedEntity {
+ const available = total !== null;
+ const valueText = available ? formatNumber(total, e.decimals, hass) : '';
+ const display = available ? withUnit(valueText, e.unit) : '';
+ return { ...e, available, value: total, valueText, display, label: display ? `${e.name}, ${display}` : e.name };
+}
+
+/**
+ * Where each energy entity runs in a Sankey: sources into the house, the rest out of it. An
+ * entity the card lists itself keeps its own `from` and `to`. The energy that comes in and isn't
+ * accounted for going out becomes one more flow (untracked use, or simply "used at home" when
+ * the card draws no devices), so the house node balances.
+ */
+export function sankeyItems(items: ResolvedEntity[], hass: HomeAssistant | undefined): ResolvedEntity[] {
+ const home = localize(hass, 'energy_node_home');
+ let into = 0;
+ let out = 0;
+ let devices = false;
+ const placed = items.map((e) => {
+ const flow = (e.config as EnergyMarks).energy_flow;
+ if (!flow) return e;
+ const v = e.value ?? 0;
+ const flowName = localize(hass, `energy_flow_${flow}`);
+ let ends: { from: string; to: string };
+ if (SOURCE_FLOWS.includes(flow)) {
+ into += v;
+ ends = { from: flowName, to: home };
+ } else {
+ out += v;
+ if (flow === 'devices') devices = true;
+ ends = { from: home, to: OUT_FLOWS.includes(flow) ? flowName : e.name };
+ }
+ return { ...e, config: { ...e.config, ...ends } };
+ });
+ const rest = into - out;
+ const first = placed.find((e) => (e.config as EnergyMarks).energy_flow);
+ // Less than a thousandth of what came in is rounding, not use.
+ if (!first || !(rest > into * 0.001)) return placed;
+ const name = localize(hass, devices ? 'energy_node_untracked' : 'energy_node_home_use');
+ const none = { action: 'none' };
+ const config = {
+ ...first.config,
+ entity: '',
+ name,
+ from: home,
+ to: name,
+ color: 'grey',
+ statistic: true,
+ energy_flow: undefined,
+ tap_action: none,
+ hold_action: none,
+ double_tap_action: none,
+ };
+ return [...placed, { ...withTotal({ ...first, name }, rest, hass), entityId: '', stateObj: undefined, config }];
+}
+
+/** The grouping a span's totals are read with: hours, or days past a month. */
+export function totalsGrouping(raw: CardConfig, hass: HomeAssistant | undefined, now = Date.now()): 'hour' | 'day' {
+ const span = periodRange(parsePeriod(raw.period as CardConfig['period']), now, zoneFor(hass));
+ return span.end - span.start > HOURLY_UP_TO_MS ? 'day' : 'hour';
+}
+
+/**
+ * The pie's or Sankey's entities with their totals over the card's period, or a message while
+ * the statistics load (or when they can't).
+ */
+export function energyTotals(
+ ctx: ChartContext,
+ now = Date.now(),
+): { items: ResolvedEntity[]; message?: undefined } | { message: string; error?: boolean } {
+ const raw: CardConfig = {
+ ...ctx.raw,
+ source: 'statistics',
+ group_by: totalsGrouping(ctx.raw, ctx.hass, now),
+ aggregate: 'change',
+ };
+ const frame = historyFrame({ ...ctx, raw }, now);
+ // The chart draws the totals, not these readings: its CSV lists the totals (the card's items).
+ forgetPlotted(ctx.host);
+ if (frame.status === 'loading') return { message: localize(ctx.hass, 'chart_loading') };
+ if (frame.status === 'error') {
+ return { message: localize(ctx.hass, 'chart_error', { error: frame.error ?? '' }), error: true };
+ }
+ let items = frame.series.map((s) => withTotal(s.entity, periodTotal(s.points), ctx.hass));
+ const sort = ctx.config.sort;
+ if (sort !== 'none') {
+ const dir = sort === 'ascending' ? 1 : -1;
+ items = [...items].sort((a, b) => {
+ if (a.available !== b.available) return a.available ? -1 : 1;
+ return ((a.value ?? 0) - (b.value ?? 0)) * dir;
+ });
+ }
+ if (ctx.config.style === 'sankey') items = sankeyItems(items, ctx.hass);
+ return { items };
+}
diff --git a/src/history/energy.ts b/src/history/energy.ts
new file mode 100644
index 0000000..11190bd
--- /dev/null
+++ b/src/history/energy.ts
@@ -0,0 +1,452 @@
+import { normalizeConfig } from '../config';
+import { formatNumber, withUnit } from '../format';
+import { localize } from '../localize';
+import type { ResolvedEntity } from '../resolve';
+import type { ActionConfig, CardConfig, EntityConfig, HomeAssistant, NormalizedConfig, StyleName } from '../types';
+import type { Grouping } from './group';
+import type { Point } from './types';
+
+/*
+ * `source: energy` draws what Home Assistant's Energy dashboard is set up with, without listing
+ * entities. The card asks once for the dashboard's settings (`energy/get_prefs`), picks the
+ * statistic of each flow it wants (grid import and export, solar, battery out and in, gas, water,
+ * each device), and draws those as long-term statistics: by default the hourly change, which is
+ * what the Energy dashboard's own charts show. Statistic ids that aren't entities (an
+ * integration's external statistics, or a meter whose entity is gone) still load; they take their
+ * name and unit from the statistic's metadata and are never shown as a missing entity.
+ *
+ * Column and area charts draw the energy that leaves the house (grid export, battery charging)
+ * below the axis unless `energy_split: false`. Pie and Sankey draw each flow's total over the
+ * card's period (see energy-totals.ts).
+ */
+
+export const ENERGY_FLOWS = [
+ 'grid_import',
+ 'grid_export',
+ 'solar',
+ 'battery_out',
+ 'battery_in',
+ 'gas',
+ 'water',
+ 'devices',
+] as const;
+export type EnergyFlow = (typeof ENERGY_FLOWS)[number];
+
+/** Flows drawn when the card doesn't list its own: the electricity ones, which share a unit. */
+export const DEFAULT_ENERGY_FLOWS: EnergyFlow[] = ['grid_import', 'grid_export', 'solar', 'battery_out', 'battery_in'];
+
+/** Styles that draw the Energy dashboard over time, as long-term statistics. */
+export const ENERGY_TIME_STYLES: StyleName[] = ['line', 'column', 'area'];
+/** Styles that draw each flow's total over the card's period. */
+export const ENERGY_TOTAL_STYLES: StyleName[] = ['pie', 'sankey'];
+/** Styles that can draw the Energy dashboard. */
+export const ENERGY_STYLES: StyleName[] = [...ENERGY_TIME_STYLES, ...ENERGY_TOTAL_STYLES];
+/** Styles that draw energy leaving the house below the axis (`energy_split`). */
+export const ENERGY_SPLIT_STYLES: StyleName[] = ['column', 'area'];
+
+/** Energy that leaves the house: drawn below the axis on a split chart. */
+export const OUT_FLOWS: EnergyFlow[] = ['grid_export', 'battery_in'];
+/** Flows measured in electricity, so in kWh when the statistic doesn't say. */
+const ELECTRIC_FLOWS: EnergyFlow[] = ['grid_import', 'grid_export', 'solar', 'battery_out', 'battery_in', 'devices'];
+/** A Sankey runs through the house's electricity: gas and water have no place in it. */
+export const SANKEY_FLOWS: EnergyFlow[] = ELECTRIC_FLOWS;
+
+/** The flows a style draws when the card lists none. */
+export function defaultFlows(style: StyleName | undefined): EnergyFlow[] {
+ // A pie shares out where the energy came from; a Sankey follows it to the devices.
+ if (style === 'pie') return ['grid_import', 'solar', 'battery_out'];
+ if (style === 'sankey') return [...DEFAULT_ENERGY_FLOWS, 'devices'];
+ return DEFAULT_ENERGY_FLOWS;
+}
+
+/** What the card adds to each entity it makes from the Energy dashboard. */
+export interface EnergyMarks {
+ /** The flow this series is. */
+ energy_flow?: EnergyFlow;
+ /** A long-term statistic with no entity: no state, no more-info. */
+ statistic?: boolean;
+ /** Draw this series below the axis (energy leaving the house on a split chart). */
+ energy_below?: boolean;
+}
+
+const marks = (e: { config: unknown }) => e.config as EnergyMarks;
+
+/** Home Assistant's own colours for each flow (its theme can change them), with its defaults. */
+const FLOW_COLORS: Record = {
+ grid_import: 'var(--energy-grid-consumption-color, #488fc2)',
+ grid_export: 'var(--energy-grid-return-color, #8353d1)',
+ solar: 'var(--energy-solar-color, #ff9800)',
+ battery_out: 'var(--energy-battery-out-color, #4db6ac)',
+ battery_in: 'var(--energy-battery-in-color, #f06292)',
+ gas: 'var(--energy-gas-color, #8e021b)',
+ water: 'var(--energy-water-color, #00bcd4)',
+ devices: '',
+};
+
+/** The parts of the Energy dashboard's settings this reads (older and newer grid layouts both). */
+interface GridFlow {
+ stat_energy_from?: string | null;
+ stat_energy_to?: string | null;
+}
+interface EnergySource extends GridFlow {
+ type?: string;
+ flow_from?: GridFlow[];
+ flow_to?: GridFlow[];
+}
+export interface EnergyPrefs {
+ energy_sources?: EnergySource[];
+ device_consumption?: { stat_consumption?: string | null; name?: string | null }[];
+}
+
+/** What `recorder/get_statistics_metadata` says of a statistic: its name and unit. */
+export interface StatisticMeta {
+ name?: string | null;
+ unit?: string | null;
+}
+export type StatisticsMeta = Record;
+
+/** One statistic to draw: its id, which flow it is, and a name when the settings give one. */
+export interface EnergyStatistic {
+ id: string;
+ flow: EnergyFlow;
+ name?: string;
+}
+
+export function validateEnergy(raw: CardConfig): void {
+ if (raw.source !== 'energy') {
+ for (const key of ['energy_flows', 'energy_split']) {
+ if (raw[key] !== undefined) throw new Error(`"${key}" needs "source: energy"`);
+ }
+ return;
+ }
+ const style = (raw.style ?? 'bar') as StyleName;
+ if (!ENERGY_STYLES.includes(style)) {
+ throw new Error(`"source: energy" works with these styles: ${ENERGY_STYLES.join(', ')}`);
+ }
+ if (raw.energy_split !== undefined && typeof raw.energy_split !== 'boolean') {
+ throw new Error('"energy_split" must be true or false');
+ }
+ const flows = raw.energy_flows;
+ if (flows === undefined) return;
+ if (!Array.isArray(flows) || flows.some((f) => !ENERGY_FLOWS.includes(f as EnergyFlow))) {
+ throw new Error(`"energy_flows" must be a list of: ${ENERGY_FLOWS.join(', ')}`);
+ }
+ if (style === 'sankey' && flows.some((f) => !SANKEY_FLOWS.includes(f as EnergyFlow))) {
+ throw new Error(`"energy_flows" on a Sankey must be a list of: ${SANKEY_FLOWS.join(', ')}`);
+ }
+}
+
+/** The config a chart style checks: the Energy dashboard read as long-term statistics. */
+export function energyChecked(raw: CardConfig): CardConfig {
+ validateEnergy(raw);
+ return raw.source === 'energy' ? { ...raw, source: 'statistics' } : raw;
+}
+
+/** Every statistic of the wanted flows, in the order of `flows`, each id once. */
+export function energyStatistics(prefs: EnergyPrefs, flows: readonly EnergyFlow[]): EnergyStatistic[] {
+ const found: Record = {
+ grid_import: [],
+ grid_export: [],
+ solar: [],
+ battery_out: [],
+ battery_in: [],
+ gas: [],
+ water: [],
+ devices: [],
+ };
+ const add = (flow: EnergyFlow, id: string | null | undefined, name?: string | null) => {
+ if (typeof id === 'string' && id !== '') found[flow].push({ id, flow, ...(name ? { name } : {}) });
+ };
+ for (const source of prefs.energy_sources ?? []) {
+ switch (source.type) {
+ case 'grid':
+ for (const f of source.flow_from ?? []) add('grid_import', f.stat_energy_from);
+ for (const f of source.flow_to ?? []) add('grid_export', f.stat_energy_to);
+ add('grid_import', source.stat_energy_from);
+ add('grid_export', source.stat_energy_to);
+ break;
+ case 'solar':
+ add('solar', source.stat_energy_from);
+ break;
+ case 'battery':
+ add('battery_out', source.stat_energy_from);
+ add('battery_in', source.stat_energy_to);
+ break;
+ case 'gas':
+ add('gas', source.stat_energy_from);
+ break;
+ case 'water':
+ add('water', source.stat_energy_from);
+ break;
+ }
+ }
+ for (const d of prefs.device_consumption ?? []) add('devices', d.stat_consumption, d.name);
+ const seen = new Set();
+ return flows
+ .flatMap((flow) => found[flow])
+ .filter((s) => {
+ if (seen.has(s.id)) return false;
+ seen.add(s.id);
+ return true;
+ });
+}
+
+const NO_ACTION: ActionConfig = { action: 'none' };
+
+/**
+ * The card's entities for these statistics. A flow with one statistic is named after the flow
+ * ("Solar"); several (two arrays, two tariffs) and devices keep their own names: the Energy
+ * settings' device name, the entity's, else the statistic's. A statistic that is no entity takes
+ * its unit from its metadata (electricity flows read kWh when that says nothing) and does nothing
+ * when tapped, since there is no entity to open. `below` marks energy leaving the house.
+ */
+export function energyEntities(
+ stats: EnergyStatistic[],
+ hass: HomeAssistant | undefined,
+ meta: StatisticsMeta = {},
+ below = false,
+): EntityConfig[] {
+ const per = new Map();
+ for (const s of stats) per.set(s.flow, (per.get(s.flow) ?? 0) + 1);
+ return stats.map((s) => {
+ const state = hass?.states[s.id];
+ const info = meta[s.id];
+ const own = s.name ?? (state?.attributes?.friendly_name as string | undefined) ?? (info?.name || undefined);
+ const flowName = localize(hass, `energy_flow_${s.flow}`);
+ const name = s.flow === 'devices' || (per.get(s.flow) ?? 0) > 1 ? (own ?? flowName) : flowName;
+ const entity: EntityConfig & EnergyMarks = { entity: s.id, name, energy_flow: s.flow };
+ if (FLOW_COLORS[s.flow]) entity.color = FLOW_COLORS[s.flow];
+ if (!state) {
+ entity.statistic = true;
+ const unit = info?.unit || (ELECTRIC_FLOWS.includes(s.flow) ? 'kWh' : undefined);
+ if (unit) entity.unit = unit;
+ entity.tap_action = NO_ACTION;
+ entity.hold_action = NO_ACTION;
+ entity.double_tap_action = NO_ACTION;
+ }
+ if (below && OUT_FLOWS.includes(s.flow)) entity.energy_below = true;
+ return entity;
+ });
+}
+
+/**
+ * The card config to draw from: the dashboard's statistics first, then any entities the card
+ * lists itself. Over time, unless the card says otherwise, it reads each hour's change (as the
+ * Energy dashboard does); a column or area chart puts export and charging below the axis.
+ */
+export function energyCardRaw(
+ raw: CardConfig,
+ prefs: EnergyPrefs,
+ hass: HomeAssistant | undefined,
+ meta: StatisticsMeta = {},
+): CardConfig {
+ const style = raw.style as StyleName | undefined;
+ const flows = (raw.energy_flows as EnergyFlow[] | undefined) ?? defaultFlows(style);
+ const below = ENERGY_SPLIT_STYLES.includes(style as StyleName) && raw.energy_split !== false;
+ const entities = [...energyEntities(energyStatistics(prefs, flows), hass, meta, below), ...(raw.entities ?? [])];
+ const out: CardConfig = { ...raw, entities, source: 'statistics' };
+ // Totals are read by the pie and Sankey themselves (energy-totals.ts).
+ if (ENERGY_TOTAL_STYLES.includes(style as StyleName)) return out;
+ // The column chart picks its own grouping for the span; the others read hours.
+ out.group_by = raw.group_by ?? (style === 'column' ? undefined : 'hour');
+ out.aggregate = raw.aggregate === undefined || raw.aggregate === 'auto' ? 'change' : raw.aggregate;
+ if (out.group_by === undefined) delete out.group_by;
+ return out;
+}
+
+/** Points turned over, for a series drawn below the axis (its lowest becomes its highest). */
+export function belowAxis(points: Point[]): Point[] {
+ return points.map((p) => {
+ const out: Point = { ...p, v: p.v === null ? null : -p.v };
+ if (p.min !== undefined) out.max = p.min === null ? null : -p.min;
+ if (p.max !== undefined) out.min = p.max === null ? null : -p.max;
+ return out;
+ });
+}
+
+/** A value as it reads in a tooltip or label: energy drawn below the axis still reads positive. */
+export function shownValue(entity: { config: unknown }, v: number): number {
+ return marks(entity).energy_below ? -v : v;
+}
+
+/**
+ * Whether a pie's or Sankey's entities are Energy dashboard totals over the card's period, so an
+ * empty chart says nothing flowed in that period rather than "right now".
+ */
+export function isEnergyTotals(items: readonly { config: unknown }[]): boolean {
+ return items.some((e) => marks(e).energy_flow !== undefined);
+}
+
+/** Whether this entity is a long-term statistic with no entity behind it (never "not found"). */
+export function isStatistic(entity: { config: unknown }): boolean {
+ return marks(entity).statistic === true;
+}
+
+/**
+ * The header value of an energy series: its total over the span when the chart reads each
+ * group's change (or sum), positive even when drawn below the axis; '' with no readings. A
+ * statistic that is no entity shows nothing otherwise (it has no current value). Undefined for
+ * any other series, which shows its current value as usual.
+ */
+export function energyValueText(
+ entity: ResolvedEntity,
+ points: readonly Point[],
+ group: Grouping | undefined,
+ hass: HomeAssistant | undefined,
+): string | undefined {
+ if (!marks(entity).energy_flow) return undefined;
+ if (group?.aggregate !== 'change' && group?.aggregate !== 'sum') return isStatistic(entity) ? '' : undefined;
+ const total = periodTotal(points);
+ if (total === null) return '';
+ return withUnit(formatNumber(shownValue(entity, total), entity.decimals, hass), entity.unit);
+}
+
+/** The sum of the readings, or null when there are none. */
+export function periodTotal(points: readonly Point[]): number | null {
+ let sum: number | null = null;
+ for (const p of points) if (p.v !== null) sum = (sum ?? 0) + p.v;
+ return sum;
+}
+
+/**
+ * Options the editor sets alongside choosing the Energy dashboard, so what it shows is what
+ * draws: over time, grouped by hour, each hour's change; a pie or Sankey, today. Switching away
+ * drops the energy options. Returns `next` unchanged otherwise.
+ */
+export function withEnergyDefaults(previous: CardConfig, next: CardConfig): CardConfig {
+ if (next.source !== 'energy') {
+ // Leaving the Energy dashboard: its own options would only make the card refuse the config.
+ if (previous.source !== 'energy' || (next.energy_flows === undefined && next.energy_split === undefined)) {
+ return next;
+ }
+ const out = { ...next };
+ delete out.energy_flows;
+ delete out.energy_split;
+ return out;
+ }
+ if (previous.source === 'energy') return next;
+ // A pie or Sankey of today's totals, as the Energy dashboard opens on.
+ if (ENERGY_TOTAL_STYLES.includes(next.style as StyleName)) {
+ return next.period === undefined ? { ...next, period: { calendar: 'day' } } : next;
+ }
+ const out: CardConfig = { ...next, aggregate: 'change' };
+ if (next.style !== 'column' && (next.group_by === undefined || next.group_by === 'none')) out.group_by = 'hour';
+ return out;
+}
+
+type PrefsState =
+ | { status: 'loading'; promise: Promise }
+ | { status: 'ready'; prefs: EnergyPrefs; meta: StatisticsMeta; at: number }
+ | { status: 'error'; error: string; at: number };
+
+/** Read again after this long, so a change on the Energy settings page shows without a reload. */
+export const PREFS_REFRESH_MS = 30 * 60_000;
+/** After a failure, try again this soon. */
+const PREFS_RETRY_MS = 60_000;
+
+/** One read of the settings for the page, keyed by the connection's `callWS`. */
+const prefsCache = new WeakMap();
+const waiting = new WeakMap void>>();
+
+/** Forget every loaded setting (tests). */
+export function resetEnergyPrefs(hass: HomeAssistant): void {
+ if (hass.callWS) prefsCache.delete(hass.callWS);
+}
+
+export type PrefsResult =
+ | { status: 'loading' }
+ | { status: 'ready'; prefs: EnergyPrefs; meta: StatisticsMeta }
+ | { status: 'error'; error: string };
+
+interface MetadataRow {
+ statistic_id: string;
+ name?: string | null;
+ statistics_unit_of_measurement?: string | null;
+}
+
+/**
+ * Every statistic's name and unit, for those that are no entity. Missing metadata is no error:
+ * the flow's own name and unit stand in.
+ */
+async function loadMeta(callWS: NonNullable, prefs: EnergyPrefs): Promise {
+ const ids = energyStatistics(prefs, ENERGY_FLOWS).map((s) => s.id);
+ if (!ids.length) return {};
+ try {
+ const rows = await callWS({ type: 'recorder/get_statistics_metadata', statistic_ids: ids });
+ const meta: StatisticsMeta = {};
+ for (const row of Array.isArray(rows) ? rows : []) {
+ if (row?.statistic_id) meta[row.statistic_id] = { name: row.name, unit: row.statistics_unit_of_measurement };
+ }
+ return meta;
+ } catch {
+ return {};
+ }
+}
+
+/**
+ * The Energy dashboard's settings and its statistics' metadata: as loaded, or loading (and
+ * `onChange` is called once they arrive). Every card on the page shares one request.
+ */
+export function energyPrefs(hass: HomeAssistant, onChange: () => void, now = Date.now()): PrefsResult {
+ const callWS = hass.callWS;
+ if (!callWS) return { status: 'error', error: 'no connection' };
+ const cached = prefsCache.get(callWS);
+ const listeners = waiting.get(callWS) ?? new Set();
+ waiting.set(callWS, listeners);
+ const stale =
+ cached &&
+ ((cached.status === 'ready' && now - cached.at > PREFS_REFRESH_MS) ||
+ (cached.status === 'error' && now - cached.at > PREFS_RETRY_MS));
+ if (!cached || stale) {
+ listeners.add(onChange);
+ const promise = callWS({ type: 'energy/get_prefs' })
+ .then(async (loaded) => {
+ const prefs = loaded ?? {};
+ const meta = await loadMeta(callWS, prefs);
+ prefsCache.set(callWS, { status: 'ready', prefs, meta, at: Date.now() });
+ })
+ .catch((err: unknown) => {
+ const error = (err as { message?: string })?.message ?? String(err);
+ prefsCache.set(callWS, { status: 'error', error, at: Date.now() });
+ })
+ .then(() => {
+ const call = [...listeners];
+ listeners.clear();
+ for (const fn of call) fn();
+ });
+ // A stale read keeps drawing what it had while the new one loads.
+ if (cached?.status === 'ready') {
+ prefsCache.set(callWS, { ...cached, at: now });
+ return { status: 'ready', prefs: cached.prefs, meta: cached.meta };
+ }
+ prefsCache.set(callWS, { status: 'loading', promise });
+ return { status: 'loading' };
+ }
+ if (cached.status === 'loading') {
+ listeners.add(onChange);
+ return { status: 'loading' };
+ }
+ return cached.status === 'ready'
+ ? { status: 'ready', prefs: cached.prefs, meta: cached.meta }
+ : { status: 'error', error: cached.error };
+}
+
+/**
+ * The normalized config a card with `source: energy` draws from, or a message to show instead
+ * (still loading, couldn't load, nothing set up). Any other card's config comes back as it was.
+ * `totals` says the chart draws each flow's total over the period (pie, Sankey).
+ */
+export function energyConfig(
+ config: NormalizedConfig,
+ hass: HomeAssistant | undefined,
+ onChange: () => void,
+): { config: NormalizedConfig; message?: string; totals?: boolean } {
+ const raw = config.cardOptions as CardConfig;
+ if (raw.source !== 'energy' || !hass) return { config };
+ const loaded = energyPrefs(hass, onChange);
+ if (loaded.status === 'loading') return { config, message: localize(hass, 'energy_loading') };
+ if (loaded.status === 'error') return { config, message: localize(hass, 'energy_error', { error: loaded.error }) };
+ const drawn = normalizeConfig(energyCardRaw(raw, loaded.prefs, hass, loaded.meta));
+ if (drawn.entities.length === 0) return { config, message: localize(hass, 'energy_none') };
+ return ENERGY_TOTAL_STYLES.includes(drawn.style) ? { config: drawn, totals: true } : { config: drawn };
+}
diff --git a/src/history/store.ts b/src/history/store.ts
index 15ca7c3..3a73750 100644
--- a/src/history/store.ts
+++ b/src/history/store.ts
@@ -35,7 +35,8 @@ export interface GetOptions {
* statistics columns), or reaches outside what it has (a start earlier than it loaded from, or a
* past span it loaded being left for a later one). A live range keeps up by itself: new states
* from `hass` are appended and points older than the range are dropped, so a rolling chart never
- * refetches. Statistics have no live feed, so a live range reloads them once a period, on a timer.
+ * refetches. Statistics have no live feed, so a live range reloads them once a period, on a timer,
+ * and when the card comes back to the page; it keeps drawing the rows it has while they reload.
* A past range gets neither: nothing new can happen in it.
*/
export class HistoryStore {
@@ -52,6 +53,8 @@ export class HistoryStore {
private generation = 0;
/** When the card left the page; a long absence means missed states, so reload. */
private pausedAt?: number;
+ /** Live statistics due a reload: the next period has been written. */
+ private stale = false;
constructor(private readonly onChange: () => void) {}
@@ -67,9 +70,15 @@ export class HistoryStore {
const margin = Math.max(60_000, (range.end - range.start) / 100);
const outside =
range.start < this.loadedFrom || (live ? this.loadedTo !== Infinity : range.end > this.loadedTo + margin);
- if (shape !== this.shape || outside || (away && live) || resumedStatistics) {
+ if (shape !== this.shape || outside || (away && live) || resumedStatistics || this.stale) {
+ // Statistics read again for the same span (the card came back to the page, which a masonry
+ // view does whenever it re-lays out its columns, or the next period was written) keep
+ // drawing what they have until the new rows land: blanking to "Loading" would rebuild the
+ // chart and replay its draw-in every time.
+ const refresh = shape === this.shape && !outside && source === 'statistics' && this.status === 'ready';
this.shape = shape;
- this.load(hass, series, range, live, query);
+ this.stale = false;
+ this.load(hass, series, range, live, query, refresh);
}
if (this.status === 'ready' && source === 'history' && this.loadedTo === Infinity) this.appendLive(hass, series);
const data = new Map();
@@ -92,6 +101,7 @@ export class HistoryStore {
clearTimeout(this.timer);
this.timer = undefined;
this.shape = '';
+ this.stale = false;
this.loadedFrom = Infinity;
this.loadedTo = -Infinity;
this.generation++;
@@ -103,9 +113,10 @@ export class HistoryStore {
range: Range,
live: boolean,
query: StatisticsQuery | undefined,
+ refresh = false,
): void {
const generation = ++this.generation;
- this.status = 'loading';
+ if (!refresh) this.status = 'loading';
// Count the span as covered from the moment it is asked for, so redraws while it loads (or
// after it fails) don't ask again.
this.loadedFrom = range.start;
@@ -120,17 +131,16 @@ export class HistoryStore {
this.error = undefined;
this.seen.clear();
for (const s of series) this.seen.set(key(s), hass.states[s.entity]);
- if (query && live) {
- // Reload when the next statistics period has been written.
- this.timer = setTimeout(() => {
- this.shape = '';
- this.onChange();
- }, STATISTICS_REFRESH_MS[query.period]);
- }
+ if (query && live) this.refreshLater(query);
this.onChange();
},
(err: unknown) => {
if (generation !== this.generation) return;
+ if (refresh) {
+ // A refresh that fails keeps the rows it had, and tries again a period later.
+ if (query && live) this.refreshLater(query);
+ return;
+ }
this.status = 'error';
this.error = err instanceof Error ? err.message : String((err as { message?: string })?.message ?? err);
this.onChange();
@@ -138,6 +148,14 @@ export class HistoryStore {
);
}
+ /** Reload live statistics once the next period has been written. */
+ private refreshLater(query: StatisticsQuery): void {
+ this.timer = setTimeout(() => {
+ this.stale = true;
+ this.onChange();
+ }, STATISTICS_REFRESH_MS[query.period]);
+ }
+
private appendLive(hass: HomeAssistant, series: SeriesRequest[]): void {
for (const s of series) {
const k = key(s);
diff --git a/src/history/transform-cumulative.ts b/src/history/transform-cumulative.ts
new file mode 100644
index 0000000..00fbc00
--- /dev/null
+++ b/src/history/transform-cumulative.ts
@@ -0,0 +1,363 @@
+import { formatNumber, withUnit } from '../format';
+import { languageOf, localize } from '../localize';
+import type { ResolvedEntity } from '../resolve';
+import type { EntityFields } from '../styles/index';
+import type { CardConfig, HomeAssistant } from '../types';
+import { increments } from './group';
+import { addUnits, boundaries } from './timezone';
+import type { Zone } from './timezone';
+import type { Point, Range } from './types';
+
+/*
+ * Cumulative series (`transform: cumulative` on an entity): a history chart draws the running
+ * total of the entity instead of its readings.
+ *
+ * - A meter (state_class total_increasing) adds up how much it went up, resets of the meter
+ * itself handled as in grouping's `change` (see `increments`). A `total` meter adds up its
+ * changes, falls included: a net meter can go down.
+ * - Anything else (a power sensor, a flow rate) is integrated over time: value × hours. History
+ * records changes and a reading holds until the next one, so each reading counts for as long as
+ * it held (the left Riemann sum), the same weighting grouping's time-weighted mean uses. A
+ * power sensor in W gives Wh (kW gives kWh); set `unit: kWh` on a W sensor and the total is
+ * scaled to match.
+ *
+ * The total starts at zero at the chart's left edge and again at each `transform_reset`
+ * boundary (day, week or month, in the card's time zone, or `billing`: midnight on day
+ * `transform_reset_day` (1–28) of every month, for a supplier's billing period). A gap in the
+ * readings is a gap in the line; a meter's total carries on across it.
+ *
+ * Charts that load history themselves get the same transform through `seriesTransform` in
+ * chart/frame.ts: box plot, candlestick and the 24-hour clock's number rings. The climate chart
+ * (a thermostat's attributes, drawn against its set point) and the wind rose (speeds sorted into
+ * bands by direction) have no use for a running total and ignore it.
+ */
+
+/** Every per-entity transform. Both transform files list them all, so neither rejects the other's. */
+export const TRANSFORMS = ['cumulative', 'derivative'] as const;
+export const CUMULATIVE_RESETS = ['none', 'day', 'week', 'month', 'billing'] as const;
+/** Billing days stop at 28, so every month has one. */
+export const MAX_BILLING_DAY = 28;
+export type CumulativeReset = (typeof CUMULATIVE_RESETS)[number];
+
+/** Styles that read history through `historyFrame` as numbers, where a transform applies. */
+export const CUMULATIVE_STYLES = [
+ 'line',
+ 'column',
+ 'area',
+ 'combined',
+ 'range_area',
+ 'sparkline',
+ 'trend',
+ 'streamgraph',
+ 'histogram',
+ 'violin',
+ 'beeswarm',
+ 'heatmap',
+ 'slope',
+ 'dumbbell',
+ 'waterfall',
+ 'scatter',
+ 'bubble',
+ 'box',
+ 'candlestick',
+ 'day_clock',
+ 'spiral',
+ 'strip_plot',
+ 'cycle_plot',
+];
+
+interface CumulativeConfig {
+ transform?: string;
+ transform_reset?: string;
+ transform_reset_day?: unknown;
+}
+
+/** Check each entity's `transform` and `transform_reset`. Throws a readable error. */
+export function validateCumulative(raw: CardConfig): void {
+ for (const e of raw.entities ?? []) {
+ if (typeof e !== 'object' || e === null) continue;
+ const own = e as CumulativeConfig;
+ if (own.transform !== undefined && !(TRANSFORMS as readonly string[]).includes(own.transform)) {
+ throw new Error(`"transform" must be one of: ${TRANSFORMS.join(', ')}`);
+ }
+ if (own.transform_reset !== undefined && !(CUMULATIVE_RESETS as readonly string[]).includes(own.transform_reset)) {
+ throw new Error(`"transform_reset" must be one of: ${CUMULATIVE_RESETS.join(', ')}`);
+ }
+ const day = own.transform_reset_day;
+ if (day !== undefined && (typeof day !== 'number' || !Number.isInteger(day) || day < 1 || day > MAX_BILLING_DAY)) {
+ throw new Error(`"transform_reset_day" must be a whole number from 1 to ${MAX_BILLING_DAY}`);
+ }
+ }
+}
+
+/** How a meter adds up: by its rises (resets handled), by every change, or not a meter. */
+export type MeterKind = 'increasing' | 'total' | undefined;
+
+export function meterKind(entity: ResolvedEntity): MeterKind {
+ if (entity.config.attribute) return undefined;
+ const cls = entity.stateObj?.attributes?.state_class;
+ return cls === 'total_increasing' ? 'increasing' : cls === 'total' ? 'total' : undefined;
+}
+
+/** Each reading's change from the one before (null at a gap, 0 for the first after one). */
+function changes(points: Point[]): (number | null)[] {
+ let prev: number | null = null;
+ return points.map((p) => {
+ if (p.v === null) return null;
+ const step = prev === null ? 0 : p.v - prev;
+ prev = p.v;
+ return step;
+ });
+}
+
+/**
+ * Reset boundaries strictly inside the readings, ascending. `billing` is midnight on `day` of each
+ * month (day 1 is the same as `month`), in the card's time zone.
+ */
+export function resetTimes(reset: CumulativeReset, first: number, until: number, zone: Zone, day = 1): number[] {
+ if (reset === 'none' || until <= first) return [];
+ const times =
+ reset === 'billing'
+ ? boundaries('month', first, until, zone).map((m) => (day > 1 ? addUnits('day', m, day - 1, zone) : m))
+ : boundaries(reset, first, until, zone);
+ return times.filter((b) => b > first && b <= until);
+}
+
+/**
+ * A meter's running total: what it added since the first reading, back to zero at each of
+ * `resets`. A rise is counted at the reading that shows it, as grouping's `change` does.
+ * What a meter rose across a gap counts (it kept counting while unavailable), except when the
+ * reading after the gap is `carried`: a series shown only while a condition holds (`when`)
+ * restarts with the value in force at that moment, and what the meter added while the condition
+ * didn't hold is not part of its total.
+ */
+export function meterTotal(points: Point[], resets: number[], kind: 'increasing' | 'total'): Point[] {
+ const steps = kind === 'increasing' ? increments(points) : changes(points);
+ const out: Point[] = [];
+ let total = 0;
+ let r = 0;
+ points.forEach((p, i) => {
+ while (r < resets.length && resets[r] <= p.t) {
+ out.push({ t: resets[r], v: total }, { t: resets[r], v: 0 });
+ total = 0;
+ r++;
+ }
+ const restart = p.carried === true && i > 0 && points[i - 1].v === null;
+ const step = restart && steps[i] !== null ? 0 : steps[i];
+ if (step === null) {
+ out.push({ t: p.t, v: null });
+ return;
+ }
+ total += step;
+ out.push({ t: p.t, v: total });
+ });
+ return out;
+}
+
+const HOUR = 3_600_000;
+
+/**
+ * The time integral of readings in value × hours, from the first reading. Each reading holds
+ * until the next (the left Riemann sum); a gap adds nothing. `end` is where the last reading
+ * stops counting (now, for a sensor still holding it). Back to zero at each of `resets`.
+ */
+export function integral(points: Point[], resets: number[], end: number): Point[] {
+ const out: Point[] = [];
+ let total = 0;
+ let r = 0;
+ let held: number | null = null;
+ let from = points[0]?.t ?? end;
+ const accrue = (to: number) => {
+ if (held !== null && to > from) total += (held * (to - from)) / HOUR;
+ from = Math.max(from, to);
+ };
+ const reach = (t: number) => {
+ while (r < resets.length && resets[r] <= t) {
+ accrue(resets[r]);
+ out.push({ t: resets[r], v: held === null ? null : total }, { t: resets[r], v: held === null ? null : 0 });
+ total = 0;
+ r++;
+ }
+ accrue(t);
+ };
+ for (const p of points) {
+ reach(p.t);
+ held = p.v;
+ out.push({ t: p.t, v: p.v === null ? null : total });
+ }
+ const last = points[points.length - 1];
+ if (last && end > last.t) {
+ reach(end);
+ if (held !== null) out.push({ t: end, v: total });
+ }
+ return out;
+}
+
+const POWER: Record = { W: 1, kW: 1e3, MW: 1e6 };
+const ENERGY: Record = { Wh: 1, kWh: 1e3, MWh: 1e6 };
+
+/**
+ * The unit of a time integral, and the factor its numbers need. A power in W, kW or MW gives
+ * Wh, kWh or MWh. When the card's `unit` already names an energy unit and the sensor reports a
+ * power, the total is scaled to it (a W sensor with `unit: kWh` divides by 1000). Any other unit
+ * gets "·h"; none stays none.
+ */
+export function integralUnit(display: string, sensor: string | undefined): { unit: string; factor: number } {
+ if (POWER[display] !== undefined) return { unit: `${display}h`, factor: 1 };
+ if (ENERGY[display] !== undefined && sensor !== undefined && POWER[sensor] !== undefined) {
+ return { unit: display, factor: POWER[sensor] / ENERGY[display] };
+ }
+ return { unit: display ? `${display}·h` : '', factor: 1 };
+}
+
+/** The entity with its value, text and unit read from the last number of a transformed series. */
+export function withLatest(entity: ResolvedEntity, points: Point[], unit: string, hass: HomeAssistant): ResolvedEntity {
+ let latest: number | null = null;
+ for (let i = points.length - 1; i >= 0 && latest === null; i--) latest = points[i].v;
+ if (latest === null) return { ...entity, unit };
+ const valueText = formatNumber(latest, entity.decimals, hass);
+ const display = withUnit(valueText, unit);
+ return { ...entity, unit, value: latest, valueText, display, label: `${entity.name}, ${display}` };
+}
+
+/**
+ * A history series as its running total, when its entity asks for one (`transform: cumulative`);
+ * any other series comes back as it was. `until` is now (or the span's end, if earlier): a sensor
+ * still holding its last reading keeps adding up to it.
+ */
+export function cumulativeSeries(
+ entity: ResolvedEntity,
+ points: Point[],
+ range: Range,
+ until: number,
+ zone: Zone,
+ hass: HomeAssistant,
+): { entity: ResolvedEntity; points: Point[] } {
+ const own = entity.config as CumulativeConfig;
+ if (own.transform !== 'cumulative' || points.length === 0) return { entity, points };
+ const reset = (own.transform_reset as CumulativeReset | undefined) ?? 'none';
+ const day = typeof own.transform_reset_day === 'number' ? own.transform_reset_day : 1;
+ const plain = points.map((p): Point => (p.carried ? { t: p.t, v: p.v, carried: true } : { t: p.t, v: p.v }));
+ const resets = resetTimes(reset, plain[0].t, until, zone, day);
+ const kind = meterKind(entity);
+ if (kind) {
+ const total = meterTotal(plain, resets, kind);
+ return { entity: withLatest(entity, total, entity.unit, hass), points: total };
+ }
+ const sensorUnit = entity.stateObj?.attributes?.unit_of_measurement;
+ const { unit, factor } = integralUnit(entity.unit, typeof sensorUnit === 'string' ? sensorUnit : undefined);
+ let total = integral(plain, resets, Math.max(until, range.start));
+ if (factor !== 1) total = total.map((p) => (p.v === null ? p : { t: p.t, v: p.v * factor }));
+ return { entity: withLatest(entity, total, unit, hass), points: total };
+}
+
+/** Any entity in the card asks for a running total, so its reset field is worth showing. */
+function anyCumulative(config: CardConfig): boolean {
+ return (config.entities ?? []).some(
+ (e) => typeof e === 'object' && (e as CumulativeConfig).transform === 'cumulative',
+ );
+}
+
+/** Any running total starts again on a billing day, so the day field is worth showing. */
+function anyBilling(config: CardConfig): boolean {
+ return (config.entities ?? []).some(
+ (e) =>
+ typeof e === 'object' &&
+ (e as CumulativeConfig).transform === 'cumulative' &&
+ (e as CumulativeConfig).transform_reset === 'billing',
+ );
+}
+
+/** The `transform` dropdown's field, found by where it writes, whichever transform added it. */
+const isTransform = (f: { path: string[] }) => f.path.length === 1 && f.path[0] === 'transform';
+
+interface SelectField {
+ name: string;
+ selector: { select: { mode: string; options: { value: string; label: string }[] } };
+}
+
+/** Built once per base schema, base fields, language and switches, so ha-form keeps its schema. */
+const fieldCache = new WeakMap>>();
+const EMPTY: EntityFields = { schema: [], fields: [] };
+
+/**
+ * A history chart's per-entity fields with the running-total ones added: "Running total" in the
+ * transform dropdown (made here if no other transform made it first), and the reset dropdown
+ * while any entity uses it. Other styles' fields come back as they were.
+ */
+export function withCumulativeFields(
+ style: string,
+ hass: HomeAssistant | undefined,
+ config: CardConfig,
+ base: EntityFields | undefined,
+): EntityFields | undefined {
+ if (!CUMULATIVE_STYLES.includes(style)) return base;
+ const from = base ?? EMPTY;
+ const shown = anyCumulative(config);
+ const billing = shown && anyBilling(config);
+ const key = `${languageOf(hass)}|${shown}|${billing}`;
+ let bySchema = fieldCache.get(from.schema);
+ if (!bySchema) {
+ bySchema = new WeakMap();
+ fieldCache.set(from.schema, bySchema);
+ }
+ let byKey = bySchema.get(from.fields);
+ if (!byKey) {
+ byKey = new Map();
+ bySchema.set(from.fields, byKey);
+ }
+ const cached = byKey.get(key);
+ if (cached) return cached;
+ const t = (k: string) => localize(hass, k);
+ const option = { value: 'cumulative', label: t('editor_cumulative_transform_cumulative') };
+ const existing = from.fields.find(isTransform);
+ let schema: unknown[];
+ let fields = from.fields;
+ if (existing) {
+ schema = from.schema.map((s) => {
+ const field = s as SelectField;
+ if (field.name !== existing.name) return s;
+ return {
+ ...field,
+ selector: { select: { ...field.selector.select, options: [...field.selector.select.options, option] } },
+ };
+ });
+ } else {
+ const select: SelectField = {
+ name: 'cumulative_transform',
+ selector: {
+ select: {
+ mode: 'dropdown',
+ options: [{ value: 'none', label: t('editor_cumulative_transform_none') }, option],
+ },
+ },
+ };
+ schema = [...from.schema, select];
+ fields = [...fields, { name: 'cumulative_transform', path: ['transform'], default: 'none' }];
+ }
+ if (shown) {
+ schema = [
+ ...schema,
+ {
+ name: 'cumulative_reset',
+ selector: {
+ select: {
+ mode: 'dropdown',
+ options: CUMULATIVE_RESETS.map((value) => ({ value, label: t(`editor_cumulative_reset_${value}`) })),
+ },
+ },
+ },
+ ];
+ fields = [...fields, { name: 'cumulative_reset', path: ['transform_reset'], default: 'none' }];
+ }
+ if (billing) {
+ schema = [
+ ...schema,
+ { name: 'cumulative_billing_day', selector: { number: { min: 1, max: MAX_BILLING_DAY, step: 1, mode: 'box' } } },
+ ];
+ fields = [...fields, { name: 'cumulative_billing_day', path: ['transform_reset_day'], default: 1 }];
+ }
+ const out = { schema, fields };
+ byKey.set(key, out);
+ return out;
+}
diff --git a/src/history/transform-derivative.ts b/src/history/transform-derivative.ts
new file mode 100644
index 0000000..1f5a609
--- /dev/null
+++ b/src/history/transform-derivative.ts
@@ -0,0 +1,348 @@
+import { formatNumber, withUnit } from '../format';
+import { languageOf, localize } from '../localize';
+import type { ResolvedEntity } from '../resolve';
+import type { EntityFields } from '../styles/index';
+import type { CardConfig, HomeAssistant } from '../types';
+import type { Point } from './types';
+
+/*
+ * Derivative series (`transform: derivative` on an entity): a history chart draws how fast the
+ * entity changes instead of its readings. Watts from an energy meter, °C per hour from a
+ * thermometer, litres per minute from a water meter.
+ *
+ * Each reading after the first gives the rate over the time since the one before:
+ * (v₁ − v₀) ÷ (t₁ − t₀), in the entity's unit per `transform_unit_time` (s, min, h or d; h by
+ * default), drawn at the later reading as Home Assistant's derivative helper does. Then:
+ *
+ * - A meter that only counts up (state_class total_increasing) falling is a reset, not a negative
+ * rate: that step is dropped and the next one is measured from the new reading.
+ * - The first reading after a gap, and the reading carried in from before the span (its real time
+ * is earlier than the left edge, so the time since it is unknown), start a new run: no rate.
+ * - A series that held one value all span (history then has only the reading carried in to its
+ * start, so no step to measure) changed at a rate of 0: it is drawn at 0 from that reading to
+ * now. A series with no reading at all stays empty ("No readings").
+ * - `transform_smoothing: n` averages each rate with the n − 1 before it in the same run.
+ * - `transform_smoothing_time: 15min` (a number and s, min, h or d) averages over a trailing time
+ * window instead, each rate weighted by how much of the window it covers: for a meter that is
+ * how much it went up in the last 15 minutes, per unit time. It suits sensors that report at
+ * uneven intervals, where a count of readings is a different stretch of time each time. When
+ * both are set, the time window is used.
+ *
+ * Energy over time reads as power: Wh/h is W, kWh/h kW, MWh/h MW.
+ *
+ * Charts that load history themselves get the same transform through `seriesTransform` in
+ * chart/frame.ts: box plot, candlestick and the 24-hour clock's number rings. The climate chart
+ * (a thermostat's attributes, drawn against its set point) and the wind rose (speeds sorted into
+ * bands by direction) have no use for a rate of change and ignore it.
+ */
+
+/** Every per-entity transform. Both transform files list them all, so neither rejects the other's. */
+export const TRANSFORMS = ['cumulative', 'derivative'] as const;
+export const DERIVATIVE_UNIT_TIMES = ['s', 'min', 'h', 'd'] as const;
+export type DerivativeUnitTime = (typeof DERIVATIVE_UNIT_TIMES)[number];
+const UNIT_MS: Record = { s: 1000, min: 60_000, h: 3_600_000, d: 86_400_000 };
+export const MAX_SMOOTHING = 100;
+/** The longest smoothing window: a week. */
+const MAX_SMOOTHING_MS = 7 * 86_400_000;
+
+/** Styles that read history through `historyFrame` as numbers, where a transform applies. */
+export const DERIVATIVE_STYLES = [
+ 'line',
+ 'column',
+ 'area',
+ 'combined',
+ 'range_area',
+ 'sparkline',
+ 'trend',
+ 'streamgraph',
+ 'histogram',
+ 'violin',
+ 'beeswarm',
+ 'heatmap',
+ 'slope',
+ 'dumbbell',
+ 'waterfall',
+ 'scatter',
+ 'bubble',
+ 'box',
+ 'candlestick',
+ 'day_clock',
+ 'spiral',
+ 'strip_plot',
+ 'cycle_plot',
+];
+
+interface DerivativeConfig {
+ transform?: string;
+ transform_unit_time?: string;
+ transform_smoothing?: unknown;
+ transform_smoothing_time?: unknown;
+}
+
+const DURATION = /^\s*(\d+(?:\.\d+)?)\s*(s|min|h|d)\s*$/;
+
+/** A smoothing window as written ("15min", "1h", "90s", "1d") in ms; undefined when it isn't one. */
+export function parseWindow(v: unknown): number | undefined {
+ if (typeof v !== 'string') return undefined;
+ const m = DURATION.exec(v);
+ if (!m) return undefined;
+ const ms = Number(m[1]) * UNIT_MS[m[2] as DerivativeUnitTime];
+ return ms > 0 && ms <= MAX_SMOOTHING_MS ? ms : undefined;
+}
+
+/** Check each entity's `transform`, `transform_unit_time` and `transform_smoothing`. Throws a readable error. */
+export function validateDerivative(raw: CardConfig): void {
+ for (const e of raw.entities ?? []) {
+ if (typeof e !== 'object' || e === null) continue;
+ const own = e as DerivativeConfig;
+ if (own.transform !== undefined && !(TRANSFORMS as readonly string[]).includes(own.transform)) {
+ throw new Error(`"transform" must be one of: ${TRANSFORMS.join(', ')}`);
+ }
+ if (
+ own.transform_unit_time !== undefined &&
+ !(DERIVATIVE_UNIT_TIMES as readonly string[]).includes(own.transform_unit_time)
+ ) {
+ throw new Error(`"transform_unit_time" must be one of: ${DERIVATIVE_UNIT_TIMES.join(', ')}`);
+ }
+ const n = own.transform_smoothing;
+ if (n !== undefined && (typeof n !== 'number' || !Number.isInteger(n) || n < 1 || n > MAX_SMOOTHING)) {
+ throw new Error(`"transform_smoothing" must be a whole number from 1 to ${MAX_SMOOTHING}`);
+ }
+ const w = own.transform_smoothing_time;
+ if (w !== undefined && w !== '' && parseWindow(w) === undefined) {
+ throw new Error('"transform_smoothing_time" must be a time up to 7 days, like 90s, 15min, 1h or 1d');
+ }
+ }
+}
+
+/** One measured step: the rate `r` held from `a` to `b`. */
+interface Step {
+ a: number;
+ b: number;
+ r: number;
+}
+
+/** The time-weighted mean rate over the `windowMs` before `t`, from the run's steps (oldest dropped as they leave). */
+function windowMean(steps: Step[], t: number, windowMs: number): number {
+ const from = t - windowMs;
+ while (steps.length > 1 && steps[0].b <= from) steps.shift();
+ let sum = 0;
+ let span = 0;
+ for (const s of steps) {
+ const covered = s.b - Math.max(s.a, from);
+ if (covered <= 0) continue;
+ sum += s.r * covered;
+ span += covered;
+ }
+ return span > 0 ? sum / span : steps[steps.length - 1].r;
+}
+
+/**
+ * The rate of change between readings, per `unitMs`, at the later reading. `increasing` drops a
+ * fall (a meter reset). A gap stays a gap; the reading after it, and one carried in from before
+ * the span, only start a new run. `smoothing` averages each rate with those before it in its run;
+ * `windowMs`, when set, averages over that much time instead (each rate weighted by the time it
+ * covers in the window).
+ */
+export function rates(points: Point[], unitMs: number, increasing = false, smoothing = 1, windowMs = 0): Point[] {
+ const out: Point[] = [];
+ let prev: Point | undefined;
+ let run: number[] = [];
+ let steps: Step[] = [];
+ for (const p of points) {
+ if (p.v === null) {
+ if (out.length && out[out.length - 1].v !== null) out.push({ t: p.t, v: null });
+ prev = undefined;
+ run = [];
+ steps = [];
+ continue;
+ }
+ if (prev === undefined || prev.carried || p.t <= prev.t) {
+ prev = p;
+ continue;
+ }
+ if (increasing && p.v < (prev.v as number)) {
+ prev = p;
+ continue;
+ }
+ const rate = ((p.v - (prev.v as number)) * unitMs) / (p.t - prev.t);
+ if (windowMs > 0) {
+ steps.push({ a: prev.t, b: p.t, r: rate });
+ out.push({ t: p.t, v: windowMean(steps, p.t, windowMs) });
+ } else {
+ run.push(rate);
+ if (run.length > smoothing) run.shift();
+ out.push({ t: p.t, v: run.reduce((a, b) => a + b, 0) / run.length });
+ }
+ prev = p;
+ }
+ return out;
+}
+
+/**
+ * When every reading in a series is the same value (most often the one reading carried in to
+ * the span's start, from a sensor that hasn't changed since), the time of the first of them;
+ * undefined when there is none, or the value changed (its rate is then measured, or unknown).
+ */
+export function heldValue(points: Point[]): number | undefined {
+ const known = points.filter((p) => p.v !== null);
+ if (!known.length || known.some((p) => p.v !== known[0].v)) return undefined;
+ return known[0].t;
+}
+
+const ENERGY_PER_HOUR: Record = { 'Wh/h': 'W', 'kWh/h': 'kW', 'MWh/h': 'MW' };
+
+/** The unit of a rate: "°C/h", "L/min"; energy per hour as power (kWh/h is kW); none as "/h". */
+export function rateUnit(unit: string, time: DerivativeUnitTime): string {
+ const plain = `${unit}/${time}`;
+ return ENERGY_PER_HOUR[plain] ?? plain;
+}
+
+/** The entity with its value, text and unit read from the last number of a transformed series. */
+function withLatest(entity: ResolvedEntity, points: Point[], unit: string, hass: HomeAssistant): ResolvedEntity {
+ let latest: number | null = null;
+ for (let i = points.length - 1; i >= 0 && latest === null; i--) latest = points[i].v;
+ if (latest === null) return { ...entity, unit };
+ const valueText = formatNumber(latest, entity.decimals, hass);
+ const display = withUnit(valueText, unit);
+ return { ...entity, unit, value: latest, valueText, display, label: `${entity.name}, ${display}` };
+}
+
+/**
+ * A history series as its rate of change, when its entity asks for one (`transform: derivative`);
+ * any other series comes back as it was.
+ */
+export function derivativeSeries(
+ entity: ResolvedEntity,
+ points: Point[],
+ hass: HomeAssistant,
+ until = Date.now(),
+): { entity: ResolvedEntity; points: Point[] } {
+ const own = entity.config as DerivativeConfig;
+ if (own.transform !== 'derivative') return { entity, points };
+ const time = (own.transform_unit_time as DerivativeUnitTime | undefined) ?? 'h';
+ const increasing = !entity.config.attribute && entity.stateObj?.attributes?.state_class === 'total_increasing';
+ const smoothing = typeof own.transform_smoothing === 'number' ? own.transform_smoothing : 1;
+ let out = rates(points, UNIT_MS[time], increasing, smoothing, parseWindow(own.transform_smoothing_time) ?? 0);
+ const steady = out.every((p) => p.v === null) ? heldValue(points) : undefined;
+ // Held at one value all span (history then has only the reading carried in to its start): it
+ // changed at a rate of 0, from that reading to now, as a line chart of it draws it flat.
+ if (steady !== undefined && steady < until)
+ out = [
+ { t: steady, v: 0 },
+ { t: until, v: 0 },
+ ];
+ return { entity: withLatest(entity, out, rateUnit(entity.unit, time), hass), points: out };
+}
+
+/** Any entity in the card asks for a rate of change, so its own fields are worth showing. */
+function anyDerivative(config: CardConfig): boolean {
+ return (config.entities ?? []).some(
+ (e) => typeof e === 'object' && (e as DerivativeConfig).transform === 'derivative',
+ );
+}
+
+/** The `transform` dropdown's field, found by where it writes, whichever transform added it. */
+const isTransform = (f: { path: string[] }) => f.path.length === 1 && f.path[0] === 'transform';
+
+interface SelectField {
+ name: string;
+ selector: { select: { mode: string; options: { value: string; label: string }[] } };
+}
+
+/** Built once per base schema, base fields, language and switch, so ha-form keeps its schema. */
+const fieldCache = new WeakMap>>();
+const EMPTY: EntityFields = { schema: [], fields: [] };
+
+/**
+ * A history chart's per-entity transform fields with the rate-of-change ones added: "Rate of
+ * change" in the transform dropdown (made here if no other transform made it first), and the time
+ * unit and smoothing while any entity uses it. Other styles' fields come back as they were.
+ */
+export function withDerivativeFields(
+ style: string,
+ hass: HomeAssistant | undefined,
+ config: CardConfig,
+ base: EntityFields | undefined,
+): EntityFields | undefined {
+ if (!DERIVATIVE_STYLES.includes(style)) return base;
+ const from = base ?? EMPTY;
+ const shown = anyDerivative(config);
+ const key = `${languageOf(hass)}|${shown}`;
+ let bySchema = fieldCache.get(from.schema);
+ if (!bySchema) {
+ bySchema = new WeakMap();
+ fieldCache.set(from.schema, bySchema);
+ }
+ let byKey = bySchema.get(from.fields);
+ if (!byKey) {
+ byKey = new Map();
+ bySchema.set(from.fields, byKey);
+ }
+ const cached = byKey.get(key);
+ if (cached) return cached;
+ const t = (k: string) => localize(hass, k);
+ const option = { value: 'derivative', label: t('editor_derivative_transform_derivative') };
+ const existing = from.fields.find(isTransform);
+ let schema: unknown[];
+ let fields = from.fields;
+ if (existing) {
+ schema = from.schema.map((s) => {
+ const field = s as SelectField;
+ if (field.name !== existing.name) return s;
+ return {
+ ...field,
+ selector: { select: { ...field.selector.select, options: [...field.selector.select.options, option] } },
+ };
+ });
+ } else {
+ const select: SelectField = {
+ name: 'derivative_transform',
+ selector: {
+ select: {
+ mode: 'dropdown',
+ options: [{ value: 'none', label: t('editor_derivative_transform_none') }, option],
+ },
+ },
+ };
+ schema = [...from.schema, select];
+ fields = [...fields, { name: 'derivative_transform', path: ['transform'], default: 'none' }];
+ }
+ if (shown) {
+ schema = [
+ ...schema,
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ {
+ name: 'derivative_unit_time',
+ selector: {
+ select: {
+ mode: 'dropdown',
+ options: DERIVATIVE_UNIT_TIMES.map((value) => ({
+ value,
+ label: t(`editor_derivative_unit_time_${value}`),
+ })),
+ },
+ },
+ },
+ {
+ name: 'derivative_smoothing',
+ selector: { number: { min: 1, max: MAX_SMOOTHING, step: 1, mode: 'box' } },
+ },
+ ],
+ },
+ { name: 'derivative_smoothing_time', selector: { text: {} } },
+ ];
+ fields = [
+ ...fields,
+ { name: 'derivative_unit_time', path: ['transform_unit_time'], default: 'h' },
+ { name: 'derivative_smoothing', path: ['transform_smoothing'], default: 1 },
+ { name: 'derivative_smoothing_time', path: ['transform_smoothing_time'] },
+ ];
+ }
+ const out = { schema, fields };
+ byKey.set(key, out);
+ return out;
+}
diff --git a/src/locales/de.json b/src/locales/de.json
index e9ce224..6ab9d9e 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -22,6 +22,20 @@
"editor_source": "Messwerte aus",
"editor_source_history": "Verlauf (jede Änderung)",
"editor_source_statistics": "Langzeitstatistiken",
+ "editor_derivative_transform": "Umrechnung",
+ "editor_derivative_transform_none": "Keine (Messwerte wie sie sind)",
+ "editor_derivative_transform_derivative": "Änderungsrate",
+ "editor_derivative_unit_time": "Rate pro",
+ "editor_derivative_unit_time_s": "Sekunde",
+ "editor_derivative_unit_time_min": "Minute",
+ "editor_derivative_unit_time_h": "Stunde",
+ "editor_derivative_unit_time_d": "Tag",
+ "editor_derivative_smoothing": "Glätten über Messwerte",
+ "editor_derivative_smoothing_time": "Über Zeit glätten (z. B. 15min; statt Messwerten)",
+ "editor_source_current": "Aktuelle Werte",
+ "editor_source_energy": "Energie-Dashboard",
+ "editor_energy_flows": "Energieflüsse (nichts gewählt: Netz, Solar und Batterie)",
+ "editor_energy_split": "Einspeisung und Batterieladung unter der Achse",
"editor_curve": "Linienform",
"editor_curve_smooth": "Glatt",
"editor_curve_straight": "Gerade",
@@ -41,6 +55,8 @@
"editor_style_thin": "Schmal",
"editor_style_segmented": "Segmentiert",
"editor_style_tank": "Tank",
+ "editor_style_battery": "Batterieraster",
+ "battery_aria": "Batteriestände: {levels}",
"editor_style_ring": "Ring",
"editor_style_needle": "Nadel",
"editor_style_arc": "Bogen",
@@ -55,6 +71,12 @@
"editor_center_mode_none": "Nichts",
"editor_center_text": "Text",
"editor_tick_labels": "Zahlen an der Skala",
+ "editor_ghost": "Bisheriger Bereich hinter der Anzeige",
+ "editor_ghost_off": "Aus",
+ "editor_ghost_24h": "Letzte 24 Stunden",
+ "editor_ghost_7d": "Letzte 7 Tage",
+ "ghost_title_24h": "Letzte 24 Stunden: {min} bis {max}, Mittel {mean}",
+ "ghost_title_7d": "Letzte 7 Tage: {min} bis {max}, Mittel {mean}",
"editor_show_name": "Name anzeigen",
"editor_show_value": "Wert anzeigen",
"editor_show_icon": "Symbol anzeigen",
@@ -69,6 +91,7 @@
"editor_unit": "Einheit",
"editor_animate": "Animieren",
"editor_hide_unavailable": "Nicht verfügbare Entitäten ausblenden",
+ "editor_export": "Exportmenü",
"editor_limit": "Höchstens anzeigen",
"editor_include_heading": "Außerdem jede passende Entität anzeigen",
"editor_include_help": "Neue Geräte erscheinen, ohne die Karte zu bearbeiten. Wähle mehrere einer Art, damit eine davon passen muss; verschiedene Arten müssen alle passen.",
@@ -83,6 +106,29 @@
"editor_tap_action": "Tippen-Aktion",
"editor_hold_action": "Halten-Aktion",
"editor_double_tap_action": "Doppeltippen-Aktion",
+ "editor_badge_entity": "Entität",
+ "editor_badge_style": "Darstellung",
+ "editor_badge_style_value": "Wert mit Symbol",
+ "editor_badge_style_sparkline": "Mini-Verlauf",
+ "editor_badge_style_ring": "Ring",
+ "editor_badge_style_thin": "Schmaler Balken",
+ "editor_badge_attribute": "Attribut (statt des Zustands)",
+ "editor_badge_name": "Name",
+ "editor_badge_hours": "Stunden Verlauf",
+ "editor_badge_show_name": "Name anzeigen",
+ "editor_badge_show_icon": "Symbol anzeigen",
+ "editor_badge_icon": "Symbol",
+ "editor_badge_min": "Minimum",
+ "editor_badge_max": "Maximum",
+ "editor_badge_unit": "Einheit",
+ "editor_badge_decimals": "Nachkommastellen",
+ "editor_badge_color": "Farbe ohne Farbbereiche",
+ "editor_badge_bands": "Farbbereiche",
+ "editor_badge_bands_help": "Das Abzeichen nimmt die Farbe des Bereichs an, in dem sein Wert liegt, wie auf der Karte.",
+ "editor_badge_actions": "Aktionen",
+ "editor_badge_tap_action": "Tippen-Aktion",
+ "editor_badge_hold_action": "Halten-Aktion",
+ "editor_badge_double_tap_action": "Doppeltippen-Aktion",
"editor_attribute": "Attribut (statt des Zustands)",
"editor_name": "Name",
"editor_icon": "Symbol",
@@ -153,6 +199,14 @@
"editor_extremes_average_line": "Linie über das Diagramm",
"editor_extremes_average_figure": "Nur als Zahl",
"editor_extremes": "Höchsten, niedrigsten und Durchschnitt markieren",
+ "anomaly_title": "{name}: {value}, {sigma} vom Normalwert",
+ "anomaly_beyond_high": "über {limit}",
+ "anomaly_beyond_low": "unter {limit}",
+ "editor_anomalies": "Werte weit vom Normalwert markieren",
+ "editor_anomalies_window": "Fenster (30min, 2h, 1d; auto: ein Zwölftel des Zeitraums)",
+ "editor_anomalies_sigma": "Ab wie weit markieren, in Standardabweichungen",
+ "editor_anomalies_color": "Markierungsfarbe",
+ "editor_anomalies_band": "Normalbereich schattieren",
"period_previous": "Vorheriger Zeitraum",
"period_next": "Nächster Zeitraum",
"period_return": "Zurück zu {label}",
@@ -233,6 +287,12 @@
"editor_annotation_label": "Beschriftung",
"editor_annotation_color": "Farbe",
"editor_annotation_dash": "Gestrichelt",
+ "editor_annotation_history": "Dem Verlauf der Entität folgen (gestuft)",
+ "editor_annotation_zone": "Schattieren",
+ "editor_annotation_zone_none": "Nichts",
+ "editor_annotation_zone_above": "Über der Linie",
+ "editor_annotation_zone_below": "Unter der Linie",
+ "editor_annotation_severity": "Schattierungsfarben nach dem Wert der Linie (optionale Bereiche)",
"editor_annotation_remove": "Anmerkung entfernen",
"editor_zones": "Schweregrad-Bereiche hinter dem Diagramm schattieren",
"editor_period_calendar": "Zeitraum",
@@ -253,6 +313,16 @@
"editor_group_by_week": "Woche",
"editor_group_by_month": "Monat",
"editor_aggregate": "Zusammenfassen mit",
+ "compare_series": "{name}, {offset}",
+ "compare_hours_earlier": "{n} h früher",
+ "compare_days_earlier": "{n} Tage früher",
+ "compare_weeks_earlier": "{n} Wochen früher",
+ "compare_months_earlier": "{n} Monate früher",
+ "compare_years_earlier": "{n} Jahre früher",
+ "editor_compare": "Mit früheren Zeiträumen vergleichen (blass dahinter gezeichnet)",
+ "editor_compare_style": "Farbe der früheren Zeiträume",
+ "editor_compare_style_grey": "Grau",
+ "editor_compare_style_series": "Blasse Serienfarbe",
"editor_aggregate_mean": "Durchschnitt",
"editor_aggregate_sum": "Summe",
"editor_aggregate_min": "Niedrigster",
@@ -260,6 +330,16 @@
"editor_aggregate_first": "Erster",
"editor_aggregate_last": "Letzter",
"editor_aggregate_change": "Änderung (hochzählende Zähler)",
+ "editor_cumulative_transform": "Umrechnung",
+ "editor_cumulative_transform_none": "Keine (Messwerte wie sie sind)",
+ "editor_cumulative_transform_cumulative": "Laufende Summe",
+ "editor_cumulative_reset": "Laufende Summe beginnt neu",
+ "editor_cumulative_reset_none": "Nie (ab dem linken Rand)",
+ "editor_cumulative_reset_day": "Jeden Tag",
+ "editor_cumulative_reset_week": "Jede Woche",
+ "editor_cumulative_reset_month": "Jeden Monat",
+ "editor_cumulative_reset_billing": "Jeden Monat am Abrechnungstag",
+ "editor_cumulative_billing_day": "Abrechnungstag im Monat (1–28)",
"editor_x_axis": "Zeitbeschriftung",
"editor_y_axis": "Wertebeschriftung",
"editor_axis_labels": "Achsenbeschriftung",
@@ -276,11 +356,30 @@
"editor_line_width": "Linienstärke (px)",
"editor_dots": "Punkt an jedem Messwert",
"editor_on_top": "Über den anderen Linien zeichnen",
+ "editor_when_entity": "Nur zeigen, solange diese Entität",
+ "editor_when_state": "…im Zustand ist (durch Kommas getrennt)",
+ "editor_when_above": "…über",
+ "editor_when_below": "…unter",
+ "editor_when_card_entity": "Alle Reihen nur zeigen, solange diese Entität",
+ "editor_when_card_state": "…im Zustand ist (durch Kommas getrennt)",
+ "editor_when_card_above": "…über",
+ "editor_when_card_below": "…unter",
+ "editor_when_ghost": "Ausgeblendete Werte als blasse Linie",
+ "editor_when_strip": "Leiste, die zeigt, wann es zutraf",
+ "when_strip_label": "Gezeigt, solange {condition}",
+ "editor_now_marker": "Jetzt-Linie",
+ "editor_now_marker_off": "Aus",
+ "editor_now_marker_line": "Nur Linie",
+ "editor_now_marker_time": "Linie und Uhrzeit",
+ "editor_now_marker_countdown": "Linie und Countdown bis zur nächsten festen Zeit",
+ "now_marker_countdown": "{label} in {duration}",
+ "now_marker_next": "Nächste in {duration}",
"editor_compact": "Kompakt",
"editor_header": "Namen und Werte",
"editor_header_above": "Über dem Diagramm",
"editor_header_over": "Auf dem Diagramm",
"editor_header_hidden": "Ausgeblendet",
+ "editor_legend_toggle": "Namen antippen, um ihn aus- oder einzublenden",
"editor_labels_show": "Welche Messwerte",
"editor_labels_show_all": "Alle (so viele wie passen)",
"editor_labels_show_last": "Den neuesten",
@@ -299,6 +398,19 @@
"editor_multiples_scale_shared": "Gleich für alle Diagramme",
"editor_multiples_scale_independent": "Jedes Diagramm eigene",
"editor_multiples_columns": "Spalten (leer passt sich der Karte an)",
+ "forecast_label": "Prognose",
+ "forecast_series": "{name} Prognose",
+ "editor_forecast_title": "Prognose",
+ "editor_forecast_entity": "Prognose-Entität (ihre Prognose wird ab jetzt gestrichelt gezeichnet)",
+ "editor_forecast_attribute": "Attribut (leer: Wetterprognose oder \"forecast\")",
+ "editor_forecast_value_key": "Wert-Schlüssel (leer: automatisch)",
+ "editor_forecast_time_key": "Zeit-Schlüssel (leer: automatisch)",
+ "editor_forecast_type": "Wetterprognose (leer: stündlich)",
+ "editor_forecast_type_hourly": "Stündlich",
+ "editor_forecast_type_daily": "Täglich",
+ "editor_forecast_type_twice_daily": "Zweimal täglich",
+ "editor_forecast_multiply": "Werte multiplizieren mit (leer: 1)",
+ "editor_forecast_hours": "Prognosen so weit voraus zeigen",
"editor_set_point": "Sollwert anzeigen",
"editor_shading": "Beim Heizen oder Kühlen schattieren",
"editor_shade_fan": "Schattieren, wenn nur der Lüfter läuft",
@@ -429,8 +541,19 @@
"swarm_events": "{n}-mal an",
"swarm_shown": "Angezeigte Punkte",
"swarm_none": "Keine Messwerte",
+ "swarm_no_change": "Keine Änderung: {value}",
+ "swarm_held": "Im ganzen Zeitraum gleich",
"swarm_earliest_latest": "Frühester – spätester",
"swarm_lowest_highest": "Niedrigster – höchster",
+ "editor_style_strip_plot": "Streudiagramm in Reihen",
+ "strip_median_value": "Median {value}",
+ "strip_mean_value": "Mittelwert {value}",
+ "strip_mean": "Mittelwert",
+ "editor_strip_marker": "Linie in jeder Reihe bei",
+ "editor_strip_marker_median": "Dem Median",
+ "editor_strip_marker_mean": "Dem Mittelwert",
+ "editor_strip_marker_none": "Keine Linie",
+ "editor_strip_jitter": "Streuung in der Reihe",
"editor_fill_color": "Farbe",
"editor_style_box": "Boxplot",
"box_aria": "Boxplot von {names}",
@@ -483,6 +606,12 @@
"editor_range": "Niedrigster bis höchster Wert je Säule",
"editor_rounded": "Abgerundete Enden",
"editor_column_labels": "Werte auf den Säulen anzeigen",
+ "editor_error_bars": "Fehlerbalken (Streuung je Säule)",
+ "editor_error_bars_none": "Keine",
+ "editor_error_bars_std": "Mittel ± eine Standardabweichung",
+ "editor_error_bars_min_max": "Niedrigster und höchster Wert",
+ "editor_error_bars_ci95": "95-%-Konfidenzintervall des Mittels",
+ "error_bars_tooltip": "{value} ({low} – {high})",
"editor_column_color": "Farbe",
"editor_style_combined": "Kombiniert",
"editor_series_type": "Zeichnen als",
@@ -518,6 +647,17 @@
"day_clock_so_far": "bisher {duration}",
"day_clock_range": "{from} – {to}",
"day_clock_average_value": "{value} im Schnitt",
+ "editor_style_cycle_plot": "Zyklusdiagramm",
+ "cycle_note_week": "Mittel jeder Stunde über {n} Wochen",
+ "cycle_note_hour": "Jede Stunde, Tag für Tag, über {n} Wochen",
+ "cycle_note_month": "Jeder Tag des Monats, Monat für Monat, über {n} Wochen",
+ "cycle_mean_legend": "Mittel des Felds",
+ "cycle_panel_average": "Mittel {name}",
+ "editor_cycle_plot_cycle": "Ein Feld pro",
+ "editor_cycle_plot_cycle_day_of_week": "Wochentag (seine Stunden)",
+ "editor_cycle_plot_cycle_hour_of_day": "Stunde des Tages (Tag für Tag)",
+ "editor_cycle_plot_cycle_day_of_month": "Tag des Monats (Monat für Monat)",
+ "editor_cycle_plot_weeks": "Wochen",
"editor_style_dumbbell": "Hantel",
"editor_ends": "Vergleichen",
"editor_ends_range": "Niedrigster und höchster Wert im Zeitraum",
@@ -576,6 +716,16 @@
"editor_color_min": "Niedrigste Farbe bei",
"editor_color_max": "Höchste Farbe bei",
"editor_legend": "Legende",
+ "editor_style_spiral": "Spirale",
+ "spiral_aria": "Spirale von {name}, {n} Umdrehungen",
+ "spiral_turn_day_note": "{n} Tage, eine Umdrehung pro Tag",
+ "spiral_turn_week_note": "{n} Wochen, eine Umdrehung pro Woche",
+ "spiral_inner_oldest": "Älteste innen, neueste außen",
+ "editor_spiral_turn": "Eine Umdrehung pro",
+ "editor_spiral_turn_day": "Tag",
+ "editor_spiral_turn_week": "Woche",
+ "editor_spiral_turns": "Umdrehungen",
+ "editor_spiral_ring_width": "Ringbreite",
"editor_style_histogram": "Histogramm",
"editor_count": "Zählen",
"editor_count_time": "Zeit in jedem Bereich",
@@ -594,7 +744,36 @@
"editor_style_line": "Linie",
"chart_loading": "Verlauf wird geladen…",
"chart_error": "Verlauf konnte nicht geladen werden: {error}",
+ "energy_loading": "Einstellungen des Energie-Dashboards werden geladen…",
+ "energy_error": "Einstellungen des Energie-Dashboards konnten nicht gelesen werden: {error}",
+ "energy_none": "Im Energie-Dashboard ist noch keiner dieser Flüsse eingerichtet.",
+ "energy_flow_grid_import": "Netzbezug",
+ "energy_flow_grid_export": "Netzeinspeisung",
+ "energy_flow_solar": "Solar",
+ "energy_flow_battery_out": "Batterie-Entladung",
+ "energy_flow_battery_in": "Batterie-Ladung",
+ "energy_flow_gas": "Gas",
+ "energy_flow_water": "Wasser",
+ "energy_flow_devices": "Geräte",
+ "energy_node_home": "Haus",
+ "energy_node_untracked": "Nicht erfasster Verbrauch",
+ "energy_node_home_use": "Im Haus verbraucht",
"chart_no_data": "Keine Messwerte in diesem Zeitraum.",
+ "legend_toggle_hint": "Antippen zum Aus- oder Einblenden. Gedrückt halten, um nur diese anzuzeigen.",
+ "legend_toggle_all_hidden": "Alle Reihen sind ausgeblendet. Tippe auf einen Namen, um sie wieder anzuzeigen.",
+ "export_menu": "Exportieren",
+ "export_png": "Als PNG speichern",
+ "export_png_hint": "Bild, 2×",
+ "export_svg": "Als SVG speichern",
+ "export_svg_hint": "Vektor",
+ "export_csv": "CSV kopieren",
+ "export_csv_hint": "gezeichnete Werte",
+ "export_yaml": "YAML kopieren",
+ "export_yaml_hint": "Konfiguration dieser Karte",
+ "export_copied": "Kopiert",
+ "export_saved": "Gespeichert",
+ "export_saved_file": "Als Datei gespeichert: Die Zwischenablage ist hier nicht verfügbar",
+ "export_failed": "Export in diesem Browser nicht möglich",
"chart_log_nothing": "Nichts über null, das sich logarithmisch darstellen lässt.",
"editor_style_lollipop": "Lollipop",
"editor_style_pictograph": "Piktogramm",
@@ -645,6 +824,11 @@
"sankey_flow": "{from} zu {to} {value}",
"sankey_no_flows": "Gib jeder Entität in ihren Optionen ein „Fließt von“ und ein „Fließt zu“.",
"sankey_nothing": "Derzeit fließt nichts.",
+ "energy_nothing_flowed": "In diesem Zeitraum ist nichts geflossen.",
+ "editor_style_chord": "Sehnendiagramm (Flüsse im Kreis)",
+ "editor_chord_pad": "Abstand zwischen Knoten",
+ "editor_chord_ribbon_opacity": "Deckkraft der Bänder",
+ "chord_aria": "Sehnendiagramm: {flows}",
"editor_style_slope": "Steigung",
"editor_measure": "Vergleichen",
"editor_measure_value": "Den Messwert damals und jetzt",
@@ -720,6 +904,16 @@
"treemap_empty": "Nichts anzuzeigen: Keine Entität hat einen Wert über null.",
"treemap_no_reading": "Kein Messwert:",
"treemap_other": "Sonstige",
+ "editor_style_marimekko": "Marimekko",
+ "editor_marimekko_segment_labels": "Text auf jedem Teil",
+ "editor_marimekko_segment_labels_percent": "Anteil an der Spalte",
+ "editor_marimekko_segment_labels_value": "Wert",
+ "editor_marimekko_segment_labels_both": "Anteil und Wert",
+ "editor_marimekko_segment_labels_none": "Keiner",
+ "editor_marimekko_group": "Spalte (Gruppe)",
+ "editor_marimekko_category": "Kategorie",
+ "editor_marimekko_color": "Farbe der Kategorie",
+ "marimekko_aria": "Marimekko-Diagramm, Spalten: {columns}",
"editor_style_trend": "Trend",
"trend_min": "Tief",
"trend_avg": "Durchschnitt",
diff --git a/src/locales/en.json b/src/locales/en.json
index 5025acf..f624786 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -22,6 +22,20 @@
"editor_source": "Readings from",
"editor_source_history": "History (every change)",
"editor_source_statistics": "Long-term statistics",
+ "editor_derivative_transform": "Transform",
+ "editor_derivative_transform_none": "None (readings as they are)",
+ "editor_derivative_transform_derivative": "Rate of change",
+ "editor_derivative_unit_time": "Rate per",
+ "editor_derivative_unit_time_s": "Second",
+ "editor_derivative_unit_time_min": "Minute",
+ "editor_derivative_unit_time_h": "Hour",
+ "editor_derivative_unit_time_d": "Day",
+ "editor_derivative_smoothing": "Smooth over readings",
+ "editor_derivative_smoothing_time": "Smooth over time (like 15min; used instead of readings)",
+ "editor_source_current": "Current values",
+ "editor_source_energy": "Energy dashboard",
+ "editor_energy_flows": "Energy flows (none ticked: grid, solar and battery)",
+ "editor_energy_split": "Export and battery charging below the axis",
"editor_curve": "Line shape",
"editor_curve_smooth": "Smooth",
"editor_curve_straight": "Straight",
@@ -41,6 +55,8 @@
"editor_style_thin": "Thin",
"editor_style_segmented": "Segmented",
"editor_style_tank": "Tank",
+ "editor_style_battery": "Battery grid",
+ "battery_aria": "Battery levels: {levels}",
"editor_style_ring": "Ring",
"editor_style_needle": "Needle",
"editor_style_arc": "Arc",
@@ -55,6 +71,12 @@
"editor_center_mode_none": "Nothing",
"editor_center_text": "Text",
"editor_tick_labels": "Numbers on the scale",
+ "editor_ghost": "Recent range behind the gauge",
+ "editor_ghost_off": "Off",
+ "editor_ghost_24h": "Last 24 hours",
+ "editor_ghost_7d": "Last 7 days",
+ "ghost_title_24h": "Last 24 hours: {min} to {max}, mean {mean}",
+ "ghost_title_7d": "Last 7 days: {min} to {max}, mean {mean}",
"editor_show_name": "Show name",
"editor_show_value": "Show value",
"editor_show_icon": "Show icon",
@@ -69,6 +91,7 @@
"editor_unit": "Unit",
"editor_animate": "Animate",
"editor_hide_unavailable": "Hide unavailable entities",
+ "editor_export": "Export menu",
"editor_limit": "Show at most",
"editor_include_heading": "Also show every entity that matches",
"editor_include_help": "New devices appear without editing the card. Pick several of one kind to match any of them; different kinds must all match.",
@@ -83,6 +106,29 @@
"editor_tap_action": "Tap action",
"editor_hold_action": "Hold action",
"editor_double_tap_action": "Double tap action",
+ "editor_badge_entity": "Entity",
+ "editor_badge_style": "Look",
+ "editor_badge_style_value": "Value with icon",
+ "editor_badge_style_sparkline": "Sparkline",
+ "editor_badge_style_ring": "Ring",
+ "editor_badge_style_thin": "Thin bar",
+ "editor_badge_attribute": "Attribute (instead of the state)",
+ "editor_badge_name": "Name",
+ "editor_badge_hours": "Hours of history",
+ "editor_badge_show_name": "Show name",
+ "editor_badge_show_icon": "Show icon",
+ "editor_badge_icon": "Icon",
+ "editor_badge_min": "Minimum",
+ "editor_badge_max": "Maximum",
+ "editor_badge_unit": "Unit",
+ "editor_badge_decimals": "Decimals",
+ "editor_badge_color": "Colour without bands",
+ "editor_badge_bands": "Colour bands",
+ "editor_badge_bands_help": "The badge takes the colour of the band its value is in, as on the card.",
+ "editor_badge_actions": "Actions",
+ "editor_badge_tap_action": "Tap action",
+ "editor_badge_hold_action": "Hold action",
+ "editor_badge_double_tap_action": "Double tap action",
"editor_attribute": "Attribute (instead of the state)",
"editor_name": "Name",
"editor_icon": "Icon",
@@ -153,6 +199,14 @@
"editor_extremes_average_line": "Line across the chart",
"editor_extremes_average_figure": "Figure only",
"editor_extremes": "Mark highest, lowest and average",
+ "anomaly_title": "{name}: {value}, {sigma} from normal",
+ "anomaly_beyond_high": "over {limit}",
+ "anomaly_beyond_low": "under {limit}",
+ "editor_anomalies": "Mark readings far from normal",
+ "editor_anomalies_window": "Window (30min, 2h, 1d; auto: a twelfth of the span)",
+ "editor_anomalies_sigma": "How far out to mark, in standard deviations",
+ "editor_anomalies_color": "Marker colour",
+ "editor_anomalies_band": "Shade the normal band",
"period_previous": "Previous period",
"period_next": "Next period",
"period_return": "Back to {label}",
@@ -233,6 +287,12 @@
"editor_annotation_label": "Label",
"editor_annotation_color": "Colour",
"editor_annotation_dash": "Dashed",
+ "editor_annotation_history": "Follow the entity's history (stepped)",
+ "editor_annotation_zone": "Shade",
+ "editor_annotation_zone_none": "Nothing",
+ "editor_annotation_zone_above": "Above the line",
+ "editor_annotation_zone_below": "Below the line",
+ "editor_annotation_severity": "Shade colours by the line's value (optional bands)",
"editor_annotation_remove": "Remove annotation",
"editor_zones": "Shade the severity bands behind the chart",
"editor_period_calendar": "Period",
@@ -253,6 +313,16 @@
"editor_group_by_week": "Week",
"editor_group_by_month": "Month",
"editor_aggregate": "Combine with",
+ "compare_series": "{name}, {offset}",
+ "compare_hours_earlier": "{n} h earlier",
+ "compare_days_earlier": "{n} days earlier",
+ "compare_weeks_earlier": "{n} weeks earlier",
+ "compare_months_earlier": "{n} months earlier",
+ "compare_years_earlier": "{n} years earlier",
+ "editor_compare": "Compare with earlier spans (drawn faintly behind)",
+ "editor_compare_style": "Colour of the earlier spans",
+ "editor_compare_style_grey": "Grey",
+ "editor_compare_style_series": "Faded series colour",
"editor_aggregate_mean": "Average",
"editor_aggregate_sum": "Sum",
"editor_aggregate_min": "Lowest",
@@ -260,6 +330,16 @@
"editor_aggregate_first": "First",
"editor_aggregate_last": "Last",
"editor_aggregate_change": "Change (meters that count up)",
+ "editor_cumulative_transform": "Transform",
+ "editor_cumulative_transform_none": "None (readings as they are)",
+ "editor_cumulative_transform_cumulative": "Running total",
+ "editor_cumulative_reset": "Running total starts again",
+ "editor_cumulative_reset_none": "Never (from the left edge)",
+ "editor_cumulative_reset_day": "Every day",
+ "editor_cumulative_reset_week": "Every week",
+ "editor_cumulative_reset_month": "Every month",
+ "editor_cumulative_reset_billing": "Every month on a billing day",
+ "editor_cumulative_billing_day": "Billing day of the month (1–28)",
"editor_x_axis": "Time labels",
"editor_y_axis": "Value labels",
"editor_axis_labels": "Axis labels",
@@ -276,11 +356,30 @@
"editor_line_width": "Line width (px)",
"editor_dots": "Dot at each reading",
"editor_on_top": "Draw above the other lines",
+ "editor_when_entity": "Show only while this entity",
+ "editor_when_state": "…is in state (commas between)",
+ "editor_when_above": "…is above",
+ "editor_when_below": "…is below",
+ "editor_when_card_entity": "Show every series only while this entity",
+ "editor_when_card_state": "…is in state (commas between)",
+ "editor_when_card_above": "…is above",
+ "editor_when_card_below": "…is below",
+ "editor_when_ghost": "Faint line of the hidden readings",
+ "editor_when_strip": "Strip showing when it held",
+ "when_strip_label": "Shown while {condition}",
+ "editor_now_marker": "Now line",
+ "editor_now_marker_off": "Off",
+ "editor_now_marker_line": "Line only",
+ "editor_now_marker_time": "Line and the time",
+ "editor_now_marker_countdown": "Line and a countdown to the next set time",
+ "now_marker_countdown": "{label} in {duration}",
+ "now_marker_next": "Next in {duration}",
"editor_compact": "Compact",
"editor_header": "Names and values",
"editor_header_above": "Above the chart",
"editor_header_over": "Over the chart",
"editor_header_hidden": "Hidden",
+ "editor_legend_toggle": "Tap a name to hide or show it",
"editor_labels_show": "Which readings",
"editor_labels_show_all": "All (as many as fit)",
"editor_labels_show_last": "The latest",
@@ -299,6 +398,19 @@
"editor_multiples_scale_shared": "The same for every chart",
"editor_multiples_scale_independent": "Each chart its own",
"editor_multiples_columns": "Columns (empty fits the card)",
+ "forecast_label": "Forecast",
+ "forecast_series": "{name} forecast",
+ "editor_forecast_title": "Forecast",
+ "editor_forecast_entity": "Forecast entity (draws its forecast dashed after now)",
+ "editor_forecast_attribute": "Attribute (empty: weather forecast or \"forecast\")",
+ "editor_forecast_value_key": "Value key (empty: guess)",
+ "editor_forecast_time_key": "Time key (empty: guess)",
+ "editor_forecast_type": "Weather forecast (empty: hourly)",
+ "editor_forecast_type_hourly": "Hourly",
+ "editor_forecast_type_daily": "Daily",
+ "editor_forecast_type_twice_daily": "Twice daily",
+ "editor_forecast_multiply": "Multiply values by (empty: 1)",
+ "editor_forecast_hours": "Show forecasts this far ahead",
"editor_set_point": "Show the set point",
"editor_shading": "Shade while heating or cooling",
"editor_shade_fan": "Shade while only the fan runs",
@@ -429,8 +541,19 @@
"swarm_events": "{n} times on",
"swarm_shown": "Dots shown",
"swarm_none": "No readings",
+ "swarm_no_change": "No change: {value}",
+ "swarm_held": "Held all period",
"swarm_earliest_latest": "Earliest – latest",
"swarm_lowest_highest": "Lowest – highest",
+ "editor_style_strip_plot": "Strip plot",
+ "strip_median_value": "Median {value}",
+ "strip_mean_value": "Average {value}",
+ "strip_mean": "Average",
+ "editor_strip_marker": "Line across each row at",
+ "editor_strip_marker_median": "The median",
+ "editor_strip_marker_mean": "The average",
+ "editor_strip_marker_none": "No line",
+ "editor_strip_jitter": "Spread across the row",
"editor_fill_color": "Colour",
"editor_style_box": "Box plot",
"box_aria": "Box plot of {names}",
@@ -483,6 +606,12 @@
"editor_range": "Lowest to highest in each column",
"editor_rounded": "Rounded ends",
"editor_column_labels": "Show values on the columns",
+ "editor_error_bars": "Error bars (spread in each column)",
+ "editor_error_bars_none": "None",
+ "editor_error_bars_std": "Mean ± one standard deviation",
+ "editor_error_bars_min_max": "The lowest and highest",
+ "editor_error_bars_ci95": "95 % confidence interval of the mean",
+ "error_bars_tooltip": "{value} ({low} – {high})",
"editor_column_color": "Colour",
"editor_style_combined": "Combined",
"editor_series_type": "Draw as",
@@ -518,6 +647,17 @@
"day_clock_so_far": "{duration} so far",
"day_clock_range": "{from} – {to}",
"day_clock_average_value": "{value} on average",
+ "editor_style_cycle_plot": "Cycle plot",
+ "cycle_note_week": "Average of each hour over {n} weeks",
+ "cycle_note_hour": "Each hour, day by day, over {n} weeks",
+ "cycle_note_month": "Each day of the month, month by month, over {n} weeks",
+ "cycle_mean_legend": "Panel average",
+ "cycle_panel_average": "{name} average",
+ "editor_cycle_plot_cycle": "One panel per",
+ "editor_cycle_plot_cycle_day_of_week": "Day of the week (its hours)",
+ "editor_cycle_plot_cycle_hour_of_day": "Hour of the day (day by day)",
+ "editor_cycle_plot_cycle_day_of_month": "Day of the month (month by month)",
+ "editor_cycle_plot_weeks": "Weeks",
"editor_style_dumbbell": "Dumbbell",
"editor_ends": "Compare",
"editor_ends_range": "Lowest and highest in the period",
@@ -576,6 +716,16 @@
"editor_color_min": "Lowest colour at",
"editor_color_max": "Highest colour at",
"editor_legend": "Legend",
+ "editor_style_spiral": "Spiral",
+ "spiral_aria": "Spiral of {name}, {n} turns",
+ "spiral_turn_day_note": "{n} days, one turn a day",
+ "spiral_turn_week_note": "{n} weeks, one turn a week",
+ "spiral_inner_oldest": "Oldest in the middle, newest outside",
+ "editor_spiral_turn": "One turn per",
+ "editor_spiral_turn_day": "Day",
+ "editor_spiral_turn_week": "Week",
+ "editor_spiral_turns": "Turns",
+ "editor_spiral_ring_width": "Ring width",
"editor_style_histogram": "Histogram",
"editor_count": "Count",
"editor_count_time": "Time spent in each range",
@@ -594,7 +744,36 @@
"editor_style_line": "Line",
"chart_loading": "Loading history…",
"chart_error": "Couldn't load history: {error}",
+ "energy_loading": "Loading the Energy dashboard settings…",
+ "energy_error": "Couldn't read the Energy dashboard settings: {error}",
+ "energy_none": "The Energy dashboard has none of these flows set up yet.",
+ "energy_flow_grid_import": "Grid import",
+ "energy_flow_grid_export": "Grid export",
+ "energy_flow_solar": "Solar",
+ "energy_flow_battery_out": "Battery out",
+ "energy_flow_battery_in": "Battery in",
+ "energy_flow_gas": "Gas",
+ "energy_flow_water": "Water",
+ "energy_flow_devices": "Devices",
+ "energy_node_home": "Home",
+ "energy_node_untracked": "Untracked use",
+ "energy_node_home_use": "Used at home",
"chart_no_data": "No readings in this period.",
+ "legend_toggle_hint": "Tap to hide or show. Hold to show only this one.",
+ "legend_toggle_all_hidden": "Every series is hidden. Tap a name to show it again.",
+ "export_menu": "Export",
+ "export_png": "Save as PNG",
+ "export_png_hint": "picture, 2×",
+ "export_svg": "Save as SVG",
+ "export_svg_hint": "vector",
+ "export_csv": "Copy CSV",
+ "export_csv_hint": "plotted values",
+ "export_yaml": "Copy YAML",
+ "export_yaml_hint": "this card's config",
+ "export_copied": "Copied",
+ "export_saved": "Saved",
+ "export_saved_file": "Saved as a file: the clipboard isn't available here",
+ "export_failed": "Couldn't export from this browser",
"chart_log_nothing": "Nothing above zero to draw on a log scale.",
"editor_style_lollipop": "Lollipop",
"editor_style_pictograph": "Pictograph",
@@ -645,6 +824,11 @@
"sankey_flow": "{from} to {to} {value}",
"sankey_no_flows": "Give each entity a \"Flows from\" and a \"Flows to\" in its options.",
"sankey_nothing": "Nothing is flowing right now.",
+ "energy_nothing_flowed": "Nothing flowed in this period.",
+ "editor_style_chord": "Chord (flows round a circle)",
+ "editor_chord_pad": "Gap between nodes",
+ "editor_chord_ribbon_opacity": "Ribbon opacity",
+ "chord_aria": "Chord diagram: {flows}",
"editor_style_slope": "Slope",
"editor_measure": "Compare",
"editor_measure_value": "The reading then and now",
@@ -720,6 +904,16 @@
"treemap_empty": "Nothing to show: no entity has a value above zero.",
"treemap_no_reading": "No reading:",
"treemap_other": "Other",
+ "editor_style_marimekko": "Marimekko",
+ "editor_marimekko_segment_labels": "Text on each part",
+ "editor_marimekko_segment_labels_percent": "Share of its column",
+ "editor_marimekko_segment_labels_value": "Value",
+ "editor_marimekko_segment_labels_both": "Share and value",
+ "editor_marimekko_segment_labels_none": "None",
+ "editor_marimekko_group": "Column (group)",
+ "editor_marimekko_category": "Category",
+ "editor_marimekko_color": "Category colour",
+ "marimekko_aria": "Marimekko chart, columns: {columns}",
"editor_style_trend": "Trend",
"trend_min": "Low",
"trend_avg": "Average",
diff --git a/src/locales/es.json b/src/locales/es.json
index 64c8822..c918c12 100644
--- a/src/locales/es.json
+++ b/src/locales/es.json
@@ -22,6 +22,20 @@
"editor_source": "Lecturas de",
"editor_source_history": "Historial (cada cambio)",
"editor_source_statistics": "Estadísticas a largo plazo",
+ "editor_derivative_transform": "Transformación",
+ "editor_derivative_transform_none": "Ninguna (lecturas tal cual)",
+ "editor_derivative_transform_derivative": "Tasa de cambio",
+ "editor_derivative_unit_time": "Tasa por",
+ "editor_derivative_unit_time_s": "Segundo",
+ "editor_derivative_unit_time_min": "Minuto",
+ "editor_derivative_unit_time_h": "Hora",
+ "editor_derivative_unit_time_d": "Día",
+ "editor_derivative_smoothing": "Suavizar sobre lecturas",
+ "editor_derivative_smoothing_time": "Suavizar por tiempo (p. ej. 15min; en lugar de lecturas)",
+ "editor_source_current": "Valores actuales",
+ "editor_source_energy": "Panel de energía",
+ "editor_energy_flows": "Flujos de energía (sin marcar: red, solar y batería)",
+ "editor_energy_split": "Vertido y carga de batería bajo el eje",
"editor_curve": "Forma de la línea",
"editor_curve_smooth": "Suave",
"editor_curve_straight": "Recta",
@@ -41,6 +55,8 @@
"editor_style_thin": "Fina",
"editor_style_segmented": "Segmentada",
"editor_style_tank": "Depósito",
+ "editor_style_battery": "Cuadrícula de baterías",
+ "battery_aria": "Niveles de batería: {levels}",
"editor_style_ring": "Anillo",
"editor_style_needle": "Aguja",
"editor_style_arc": "Arco",
@@ -55,6 +71,12 @@
"editor_center_mode_none": "Nada",
"editor_center_text": "Texto",
"editor_tick_labels": "Números en la escala",
+ "editor_ghost": "Rango reciente detrás del indicador",
+ "editor_ghost_off": "Desactivado",
+ "editor_ghost_24h": "Últimas 24 horas",
+ "editor_ghost_7d": "Últimos 7 días",
+ "ghost_title_24h": "Últimas 24 horas: de {min} a {max}, media {mean}",
+ "ghost_title_7d": "Últimos 7 días: de {min} a {max}, media {mean}",
"editor_show_name": "Mostrar nombre",
"editor_show_value": "Mostrar valor",
"editor_show_icon": "Mostrar icono",
@@ -69,6 +91,7 @@
"editor_unit": "Unidad",
"editor_animate": "Animar",
"editor_hide_unavailable": "Ocultar entidades no disponibles",
+ "editor_export": "Menú de exportación",
"editor_limit": "Mostrar como máximo",
"editor_include_heading": "Mostrar también todas las entidades que coincidan",
"editor_include_help": "Los dispositivos nuevos aparecen sin editar la tarjeta. Elige varios de un mismo tipo para que coincida cualquiera de ellos; los de tipos distintos deben coincidir todos.",
@@ -83,6 +106,29 @@
"editor_tap_action": "Acción al tocar",
"editor_hold_action": "Acción al mantener pulsado",
"editor_double_tap_action": "Acción al tocar dos veces",
+ "editor_badge_entity": "Entidad",
+ "editor_badge_style": "Aspecto",
+ "editor_badge_style_value": "Valor con icono",
+ "editor_badge_style_sparkline": "Minigráfico",
+ "editor_badge_style_ring": "Anillo",
+ "editor_badge_style_thin": "Barra fina",
+ "editor_badge_attribute": "Atributo (en lugar del estado)",
+ "editor_badge_name": "Nombre",
+ "editor_badge_hours": "Horas de historial",
+ "editor_badge_show_name": "Mostrar nombre",
+ "editor_badge_show_icon": "Mostrar icono",
+ "editor_badge_icon": "Icono",
+ "editor_badge_min": "Mínimo",
+ "editor_badge_max": "Máximo",
+ "editor_badge_unit": "Unidad",
+ "editor_badge_decimals": "Decimales",
+ "editor_badge_color": "Color sin franjas",
+ "editor_badge_bands": "Franjas de color",
+ "editor_badge_bands_help": "La insignia toma el color de la franja en la que está su valor, como en la tarjeta.",
+ "editor_badge_actions": "Acciones",
+ "editor_badge_tap_action": "Acción al tocar",
+ "editor_badge_hold_action": "Acción al mantener pulsado",
+ "editor_badge_double_tap_action": "Acción al tocar dos veces",
"editor_attribute": "Atributo (en lugar del estado)",
"editor_name": "Nombre",
"editor_icon": "Icono",
@@ -153,6 +199,14 @@
"editor_extremes_average_line": "Línea a lo ancho del gráfico",
"editor_extremes_average_figure": "Solo la cifra",
"editor_extremes": "Marcar máximo, mínimo y media",
+ "anomaly_title": "{name}: {value}, {sigma} fuera de lo normal",
+ "anomaly_beyond_high": "más de {limit}",
+ "anomaly_beyond_low": "menos de {limit}",
+ "editor_anomalies": "Marcar lecturas lejos de lo normal",
+ "editor_anomalies_window": "Ventana (30min, 2h, 1d; auto: una doceava parte del periodo)",
+ "editor_anomalies_sigma": "A qué distancia marcar, en desviaciones típicas",
+ "editor_anomalies_color": "Color de las marcas",
+ "editor_anomalies_band": "Sombrear la banda normal",
"period_previous": "Periodo anterior",
"period_next": "Periodo siguiente",
"period_return": "Volver a {label}",
@@ -233,6 +287,12 @@
"editor_annotation_label": "Etiqueta",
"editor_annotation_color": "Color",
"editor_annotation_dash": "Discontinua",
+ "editor_annotation_history": "Seguir el historial de la entidad (escalonado)",
+ "editor_annotation_zone": "Sombrear",
+ "editor_annotation_zone_none": "Nada",
+ "editor_annotation_zone_above": "Por encima de la línea",
+ "editor_annotation_zone_below": "Por debajo de la línea",
+ "editor_annotation_severity": "Colores del sombreado según el valor de la línea (bandas opcionales)",
"editor_annotation_remove": "Eliminar anotación",
"editor_zones": "Sombrear las bandas de gravedad detrás del gráfico",
"editor_period_calendar": "Periodo",
@@ -253,6 +313,16 @@
"editor_group_by_week": "Semana",
"editor_group_by_month": "Mes",
"editor_aggregate": "Combinar con",
+ "compare_series": "{name}, {offset}",
+ "compare_hours_earlier": "{n} h antes",
+ "compare_days_earlier": "{n} días antes",
+ "compare_weeks_earlier": "{n} semanas antes",
+ "compare_months_earlier": "{n} meses antes",
+ "compare_years_earlier": "{n} años antes",
+ "editor_compare": "Comparar con periodos anteriores (dibujados tenues detrás)",
+ "editor_compare_style": "Color de los periodos anteriores",
+ "editor_compare_style_grey": "Gris",
+ "editor_compare_style_series": "Color de la serie atenuado",
"editor_aggregate_mean": "Media",
"editor_aggregate_sum": "Suma",
"editor_aggregate_min": "Mínimo",
@@ -260,6 +330,16 @@
"editor_aggregate_first": "Primero",
"editor_aggregate_last": "Último",
"editor_aggregate_change": "Cambio (contadores que suben)",
+ "editor_cumulative_transform": "Transformación",
+ "editor_cumulative_transform_none": "Ninguna (lecturas tal cual)",
+ "editor_cumulative_transform_cumulative": "Total acumulado",
+ "editor_cumulative_reset": "El total acumulado vuelve a empezar",
+ "editor_cumulative_reset_none": "Nunca (desde el borde izquierdo)",
+ "editor_cumulative_reset_day": "Cada día",
+ "editor_cumulative_reset_week": "Cada semana",
+ "editor_cumulative_reset_month": "Cada mes",
+ "editor_cumulative_reset_billing": "Cada mes en el día de facturación",
+ "editor_cumulative_billing_day": "Día de facturación del mes (1–28)",
"editor_x_axis": "Etiquetas de tiempo",
"editor_y_axis": "Etiquetas de valor",
"editor_axis_labels": "Etiquetas de los ejes",
@@ -276,11 +356,30 @@
"editor_line_width": "Grosor de línea (px)",
"editor_dots": "Punto en cada lectura",
"editor_on_top": "Dibujar sobre las demás líneas",
+ "editor_when_entity": "Mostrar solo mientras esta entidad",
+ "editor_when_state": "…esté en el estado (separados por comas)",
+ "editor_when_above": "…esté por encima de",
+ "editor_when_below": "…esté por debajo de",
+ "editor_when_card_entity": "Mostrar todas las series solo mientras esta entidad",
+ "editor_when_card_state": "…esté en el estado (separados por comas)",
+ "editor_when_card_above": "…esté por encima de",
+ "editor_when_card_below": "…esté por debajo de",
+ "editor_when_ghost": "Línea tenue de las lecturas ocultas",
+ "editor_when_strip": "Franja que muestra cuándo se cumplió",
+ "when_strip_label": "Se muestra mientras {condition}",
+ "editor_now_marker": "Línea de ahora",
+ "editor_now_marker_off": "Desactivada",
+ "editor_now_marker_line": "Solo la línea",
+ "editor_now_marker_time": "Línea y la hora",
+ "editor_now_marker_countdown": "Línea y cuenta atrás hasta la próxima hora fijada",
+ "now_marker_countdown": "{label} en {duration}",
+ "now_marker_next": "Siguiente en {duration}",
"editor_compact": "Compacto",
"editor_header": "Nombres y valores",
"editor_header_above": "Encima del gráfico",
"editor_header_over": "Sobre el gráfico",
"editor_header_hidden": "Ocultos",
+ "editor_legend_toggle": "Toca un nombre para ocultarlo o mostrarlo",
"editor_labels_show": "Qué lecturas",
"editor_labels_show_all": "Todas (las que quepan)",
"editor_labels_show_last": "La más reciente",
@@ -299,6 +398,19 @@
"editor_multiples_scale_shared": "La misma para todos los gráficos",
"editor_multiples_scale_independent": "Cada gráfico la suya",
"editor_multiples_columns": "Columnas (vacío se ajusta a la tarjeta)",
+ "forecast_label": "Previsión",
+ "forecast_series": "Previsión de {name}",
+ "editor_forecast_title": "Previsión",
+ "editor_forecast_entity": "Entidad de previsión (dibuja su previsión discontinua a partir de ahora)",
+ "editor_forecast_attribute": "Atributo (vacío: previsión meteorológica o \"forecast\")",
+ "editor_forecast_value_key": "Clave del valor (vacío: automática)",
+ "editor_forecast_time_key": "Clave de la hora (vacío: automática)",
+ "editor_forecast_type": "Previsión meteorológica (vacío: por horas)",
+ "editor_forecast_type_hourly": "Por horas",
+ "editor_forecast_type_daily": "Diaria",
+ "editor_forecast_type_twice_daily": "Dos veces al día",
+ "editor_forecast_multiply": "Multiplicar los valores por (vacío: 1)",
+ "editor_forecast_hours": "Mostrar previsiones hasta este plazo",
"editor_set_point": "Mostrar la consigna",
"editor_shading": "Sombrear mientras calienta o enfría",
"editor_shade_fan": "Sombrear mientras solo funciona el ventilador",
@@ -429,8 +541,19 @@
"swarm_events": "{n} veces encendido",
"swarm_shown": "Puntos mostrados",
"swarm_none": "Sin lecturas",
+ "swarm_no_change": "Sin cambios: {value}",
+ "swarm_held": "Igual todo el periodo",
"swarm_earliest_latest": "Más antigua – más reciente",
"swarm_lowest_highest": "Mínimo – máximo",
+ "editor_style_strip_plot": "Gráfico de franjas",
+ "strip_median_value": "Mediana {value}",
+ "strip_mean_value": "Media {value}",
+ "strip_mean": "Media",
+ "editor_strip_marker": "Línea en cada fila en",
+ "editor_strip_marker_median": "La mediana",
+ "editor_strip_marker_mean": "La media",
+ "editor_strip_marker_none": "Sin línea",
+ "editor_strip_jitter": "Dispersión en la fila",
"editor_fill_color": "Color",
"editor_style_box": "Diagrama de caja",
"box_aria": "Diagrama de caja de {names}",
@@ -483,6 +606,12 @@
"editor_range": "Mínimo a máximo en cada columna",
"editor_rounded": "Extremos redondeados",
"editor_column_labels": "Mostrar valores en las columnas",
+ "editor_error_bars": "Barras de error (dispersión en cada columna)",
+ "editor_error_bars_none": "Ninguna",
+ "editor_error_bars_std": "Media ± una desviación estándar",
+ "editor_error_bars_min_max": "El mínimo y el máximo",
+ "editor_error_bars_ci95": "Intervalo de confianza del 95 % de la media",
+ "error_bars_tooltip": "{value} ({low} – {high})",
"editor_column_color": "Color",
"editor_style_combined": "Combinado",
"editor_series_type": "Dibujar como",
@@ -518,6 +647,17 @@
"day_clock_so_far": "{duration} hasta ahora",
"day_clock_range": "{from} – {to}",
"day_clock_average_value": "{value} de media",
+ "editor_style_cycle_plot": "Gráfico de ciclos",
+ "cycle_note_week": "Media de cada hora en {n} semanas",
+ "cycle_note_hour": "Cada hora, día a día, en {n} semanas",
+ "cycle_note_month": "Cada día del mes, mes a mes, en {n} semanas",
+ "cycle_mean_legend": "Media del panel",
+ "cycle_panel_average": "Media de {name}",
+ "editor_cycle_plot_cycle": "Un panel por",
+ "editor_cycle_plot_cycle_day_of_week": "Día de la semana (sus horas)",
+ "editor_cycle_plot_cycle_hour_of_day": "Hora del día (día a día)",
+ "editor_cycle_plot_cycle_day_of_month": "Día del mes (mes a mes)",
+ "editor_cycle_plot_weeks": "Semanas",
"editor_style_dumbbell": "Mancuerna",
"editor_ends": "Comparar",
"editor_ends_range": "Mínimo y máximo del periodo",
@@ -576,6 +716,16 @@
"editor_color_min": "Color más bajo en",
"editor_color_max": "Color más alto en",
"editor_legend": "Leyenda",
+ "editor_style_spiral": "Espiral",
+ "spiral_aria": "Espiral de {name}, {n} vueltas",
+ "spiral_turn_day_note": "{n} días, una vuelta por día",
+ "spiral_turn_week_note": "{n} semanas, una vuelta por semana",
+ "spiral_inner_oldest": "Lo más antiguo en el centro, lo más reciente fuera",
+ "editor_spiral_turn": "Una vuelta por",
+ "editor_spiral_turn_day": "Día",
+ "editor_spiral_turn_week": "Semana",
+ "editor_spiral_turns": "Vueltas",
+ "editor_spiral_ring_width": "Ancho del anillo",
"editor_style_histogram": "Histograma",
"editor_count": "Contar",
"editor_count_time": "Tiempo en cada rango",
@@ -594,7 +744,36 @@
"editor_style_line": "Línea",
"chart_loading": "Cargando historial…",
"chart_error": "No se pudo cargar el historial: {error}",
+ "energy_loading": "Cargando la configuración del panel de energía…",
+ "energy_error": "No se pudo leer la configuración del panel de energía: {error}",
+ "energy_none": "El panel de energía aún no tiene configurado ninguno de estos flujos.",
+ "energy_flow_grid_import": "Consumo de red",
+ "energy_flow_grid_export": "Vertido a red",
+ "energy_flow_solar": "Solar",
+ "energy_flow_battery_out": "Descarga de batería",
+ "energy_flow_battery_in": "Carga de batería",
+ "energy_flow_gas": "Gas",
+ "energy_flow_water": "Agua",
+ "energy_flow_devices": "Dispositivos",
+ "energy_node_home": "Casa",
+ "energy_node_untracked": "Consumo no registrado",
+ "energy_node_home_use": "Consumido en casa",
"chart_no_data": "No hay lecturas en este periodo.",
+ "legend_toggle_hint": "Toca para ocultar o mostrar. Mantén pulsado para mostrar solo esta.",
+ "legend_toggle_all_hidden": "Todas las series están ocultas. Toca un nombre para volver a mostrarla.",
+ "export_menu": "Exportar",
+ "export_png": "Guardar como PNG",
+ "export_png_hint": "imagen, 2×",
+ "export_svg": "Guardar como SVG",
+ "export_svg_hint": "vectorial",
+ "export_csv": "Copiar CSV",
+ "export_csv_hint": "valores dibujados",
+ "export_yaml": "Copiar YAML",
+ "export_yaml_hint": "configuración de esta tarjeta",
+ "export_copied": "Copiado",
+ "export_saved": "Guardado",
+ "export_saved_file": "Guardado como archivo: el portapapeles no está disponible aquí",
+ "export_failed": "No se pudo exportar desde este navegador",
"chart_log_nothing": "No hay nada por encima de cero que dibujar en escala logarítmica.",
"editor_style_lollipop": "Piruleta",
"editor_style_pictograph": "Pictograma",
@@ -645,6 +824,11 @@
"sankey_flow": "{from} a {to} {value}",
"sankey_no_flows": "Da a cada entidad un \"Fluye desde\" y un \"Fluye hacia\" en sus opciones.",
"sankey_nothing": "No fluye nada en este momento.",
+ "energy_nothing_flowed": "No fluyó nada en este periodo.",
+ "editor_style_chord": "Cuerdas (flujos en círculo)",
+ "editor_chord_pad": "Espacio entre nodos",
+ "editor_chord_ribbon_opacity": "Opacidad de las cintas",
+ "chord_aria": "Diagrama de cuerdas: {flows}",
"editor_style_slope": "Pendiente",
"editor_measure": "Comparar",
"editor_measure_value": "La lectura entonces y ahora",
@@ -720,6 +904,16 @@
"treemap_empty": "Nada que mostrar: ninguna entidad tiene un valor mayor que cero.",
"treemap_no_reading": "Sin lectura:",
"treemap_other": "Otros",
+ "editor_style_marimekko": "Marimekko",
+ "editor_marimekko_segment_labels": "Texto en cada parte",
+ "editor_marimekko_segment_labels_percent": "Parte de su columna",
+ "editor_marimekko_segment_labels_value": "Valor",
+ "editor_marimekko_segment_labels_both": "Parte y valor",
+ "editor_marimekko_segment_labels_none": "Ninguno",
+ "editor_marimekko_group": "Columna (grupo)",
+ "editor_marimekko_category": "Categoría",
+ "editor_marimekko_color": "Color de la categoría",
+ "marimekko_aria": "Gráfico Marimekko, columnas: {columns}",
"editor_style_trend": "Tendencia",
"trend_min": "Mín.",
"trend_avg": "Media",
diff --git a/src/locales/fr.json b/src/locales/fr.json
index 5901a76..819d3fe 100644
--- a/src/locales/fr.json
+++ b/src/locales/fr.json
@@ -22,6 +22,20 @@
"editor_source": "Relevés depuis",
"editor_source_history": "Historique (chaque changement)",
"editor_source_statistics": "Statistiques à long terme",
+ "editor_derivative_transform": "Transformation",
+ "editor_derivative_transform_none": "Aucune (relevés tels quels)",
+ "editor_derivative_transform_derivative": "Taux de variation",
+ "editor_derivative_unit_time": "Taux par",
+ "editor_derivative_unit_time_s": "Seconde",
+ "editor_derivative_unit_time_min": "Minute",
+ "editor_derivative_unit_time_h": "Heure",
+ "editor_derivative_unit_time_d": "Jour",
+ "editor_derivative_smoothing": "Lisser sur relevés",
+ "editor_derivative_smoothing_time": "Lisser sur une durée (ex. 15min ; à la place des relevés)",
+ "editor_source_current": "Valeurs actuelles",
+ "editor_source_energy": "Tableau de bord Énergie",
+ "editor_energy_flows": "Flux d’énergie (rien de coché : réseau, solaire et batterie)",
+ "editor_energy_split": "Export et charge batterie sous l'axe",
"editor_curve": "Forme de la ligne",
"editor_curve_smooth": "Lissée",
"editor_curve_straight": "Droite",
@@ -41,6 +55,8 @@
"editor_style_thin": "Fine",
"editor_style_segmented": "Segmentée",
"editor_style_tank": "Réservoir",
+ "editor_style_battery": "Grille de batteries",
+ "battery_aria": "Niveaux de batterie : {levels}",
"editor_style_ring": "Anneau",
"editor_style_needle": "Aiguille",
"editor_style_arc": "Arc",
@@ -55,6 +71,12 @@
"editor_center_mode_none": "Rien",
"editor_center_text": "Texte",
"editor_tick_labels": "Graduations chiffrées",
+ "editor_ghost": "Plage récente derrière la jauge",
+ "editor_ghost_off": "Désactivé",
+ "editor_ghost_24h": "Dernières 24 heures",
+ "editor_ghost_7d": "7 derniers jours",
+ "ghost_title_24h": "Dernières 24 heures : de {min} à {max}, moyenne {mean}",
+ "ghost_title_7d": "7 derniers jours : de {min} à {max}, moyenne {mean}",
"editor_show_name": "Afficher le nom",
"editor_show_value": "Afficher la valeur",
"editor_show_icon": "Afficher l'icône",
@@ -69,6 +91,7 @@
"editor_unit": "Unité",
"editor_animate": "Animer",
"editor_hide_unavailable": "Masquer les entités indisponibles",
+ "editor_export": "Menu d’export",
"editor_limit": "Afficher au maximum",
"editor_include_heading": "Afficher aussi toutes les entités correspondantes",
"editor_include_help": "Les nouveaux appareils apparaissent sans modifier la carte. Choisissez-en plusieurs d'un même type pour correspondre à l'un d'eux ; les types différents doivent tous correspondre.",
@@ -83,6 +106,29 @@
"editor_tap_action": "Action d'appui",
"editor_hold_action": "Action d'appui long",
"editor_double_tap_action": "Action de double appui",
+ "editor_badge_entity": "Entité",
+ "editor_badge_style": "Apparence",
+ "editor_badge_style_value": "Valeur avec icône",
+ "editor_badge_style_sparkline": "Mini-courbe",
+ "editor_badge_style_ring": "Anneau",
+ "editor_badge_style_thin": "Barre fine",
+ "editor_badge_attribute": "Attribut (au lieu de l'état)",
+ "editor_badge_name": "Nom",
+ "editor_badge_hours": "Heures d'historique",
+ "editor_badge_show_name": "Afficher le nom",
+ "editor_badge_show_icon": "Afficher l'icône",
+ "editor_badge_icon": "Icône",
+ "editor_badge_min": "Minimum",
+ "editor_badge_max": "Maximum",
+ "editor_badge_unit": "Unité",
+ "editor_badge_decimals": "Décimales",
+ "editor_badge_color": "Couleur sans plages",
+ "editor_badge_bands": "Plages de couleur",
+ "editor_badge_bands_help": "Le badge prend la couleur de la plage où se trouve sa valeur, comme sur la carte.",
+ "editor_badge_actions": "Actions",
+ "editor_badge_tap_action": "Action d'appui",
+ "editor_badge_hold_action": "Action d'appui long",
+ "editor_badge_double_tap_action": "Action de double appui",
"editor_attribute": "Attribut (au lieu de l'état)",
"editor_name": "Nom",
"editor_icon": "Icône",
@@ -153,6 +199,14 @@
"editor_extremes_average_line": "Ligne sur le graphique",
"editor_extremes_average_figure": "Valeur seule",
"editor_extremes": "Marquer le plus haut, le plus bas et la moyenne",
+ "anomaly_title": "{name} : {value}, {sigma} par rapport à la normale",
+ "anomaly_beyond_high": "plus de {limit}",
+ "anomaly_beyond_low": "moins de {limit}",
+ "editor_anomalies": "Marquer les valeurs éloignées de la normale",
+ "editor_anomalies_window": "Fenêtre (30min, 2h, 1d ; auto : un douzième de la période)",
+ "editor_anomalies_sigma": "Écart à partir duquel marquer, en écarts types",
+ "editor_anomalies_color": "Couleur des repères",
+ "editor_anomalies_band": "Ombrer la bande normale",
"period_previous": "Période précédente",
"period_next": "Période suivante",
"period_return": "Retour à {label}",
@@ -233,6 +287,12 @@
"editor_annotation_label": "Libellé",
"editor_annotation_color": "Couleur",
"editor_annotation_dash": "Pointillés",
+ "editor_annotation_history": "Suivre l'historique de l'entité (en escalier)",
+ "editor_annotation_zone": "Ombrer",
+ "editor_annotation_zone_none": "Rien",
+ "editor_annotation_zone_above": "Au-dessus de la ligne",
+ "editor_annotation_zone_below": "Sous la ligne",
+ "editor_annotation_severity": "Couleurs de l'ombrage selon la valeur de la ligne (plages facultatives)",
"editor_annotation_remove": "Supprimer l'annotation",
"editor_zones": "Ombrer les plages de gravité derrière le graphique",
"editor_period_calendar": "Période",
@@ -253,6 +313,16 @@
"editor_group_by_week": "Semaine",
"editor_group_by_month": "Mois",
"editor_aggregate": "Combiner par",
+ "compare_series": "{name}, {offset}",
+ "compare_hours_earlier": "{n} h plus tôt",
+ "compare_days_earlier": "{n} jours plus tôt",
+ "compare_weeks_earlier": "{n} semaines plus tôt",
+ "compare_months_earlier": "{n} mois plus tôt",
+ "compare_years_earlier": "{n} ans plus tôt",
+ "editor_compare": "Comparer avec des périodes antérieures (tracées en filigrane)",
+ "editor_compare_style": "Couleur des périodes antérieures",
+ "editor_compare_style_grey": "Gris",
+ "editor_compare_style_series": "Couleur de la série estompée",
"editor_aggregate_mean": "Moyenne",
"editor_aggregate_sum": "Somme",
"editor_aggregate_min": "Minimum",
@@ -260,6 +330,16 @@
"editor_aggregate_first": "Premier",
"editor_aggregate_last": "Dernier",
"editor_aggregate_change": "Variation (compteurs croissants)",
+ "editor_cumulative_transform": "Transformation",
+ "editor_cumulative_transform_none": "Aucune (relevés tels quels)",
+ "editor_cumulative_transform_cumulative": "Total cumulé",
+ "editor_cumulative_reset": "Le total cumulé repart de zéro",
+ "editor_cumulative_reset_none": "Jamais (depuis le bord gauche)",
+ "editor_cumulative_reset_day": "Chaque jour",
+ "editor_cumulative_reset_week": "Chaque semaine",
+ "editor_cumulative_reset_month": "Chaque mois",
+ "editor_cumulative_reset_billing": "Chaque mois au jour de facturation",
+ "editor_cumulative_billing_day": "Jour de facturation du mois (1–28)",
"editor_x_axis": "Libellés de temps",
"editor_y_axis": "Libellés des valeurs",
"editor_axis_labels": "Libellés des axes",
@@ -276,11 +356,30 @@
"editor_line_width": "Épaisseur de ligne (px)",
"editor_dots": "Point à chaque relevé",
"editor_on_top": "Tracer au-dessus des autres lignes",
+ "editor_when_entity": "Afficher seulement tant que cette entité",
+ "editor_when_state": "…est dans l'état (séparés par des virgules)",
+ "editor_when_above": "…est au-dessus de",
+ "editor_when_below": "…est en dessous de",
+ "editor_when_card_entity": "Afficher toutes les séries seulement tant que cette entité",
+ "editor_when_card_state": "…est dans l'état (séparés par des virgules)",
+ "editor_when_card_above": "…est au-dessus de",
+ "editor_when_card_below": "…est en dessous de",
+ "editor_when_ghost": "Ligne pâle des relevés masqués",
+ "editor_when_strip": "Bande montrant quand c'était le cas",
+ "when_strip_label": "Affiché tant que {condition}",
+ "editor_now_marker": "Ligne « maintenant »",
+ "editor_now_marker_off": "Désactivée",
+ "editor_now_marker_line": "Ligne seule",
+ "editor_now_marker_time": "Ligne et l'heure",
+ "editor_now_marker_countdown": "Ligne et compte à rebours jusqu'à la prochaine heure fixée",
+ "now_marker_countdown": "{label} dans {duration}",
+ "now_marker_next": "Suivant dans {duration}",
"editor_compact": "Compact",
"editor_header": "Noms et valeurs",
"editor_header_above": "Au-dessus du graphique",
"editor_header_over": "Sur le graphique",
"editor_header_hidden": "Masqués",
+ "editor_legend_toggle": "Toucher un nom pour le masquer ou l’afficher",
"editor_labels_show": "Quels relevés",
"editor_labels_show_all": "Tous (autant que possible)",
"editor_labels_show_last": "Le plus récent",
@@ -299,6 +398,19 @@
"editor_multiples_scale_shared": "Identique pour tous les graphiques",
"editor_multiples_scale_independent": "Propre à chaque graphique",
"editor_multiples_columns": "Colonnes (vide pour s'adapter à la carte)",
+ "forecast_label": "Prévision",
+ "forecast_series": "Prévision {name}",
+ "editor_forecast_title": "Prévision",
+ "editor_forecast_entity": "Entité de prévision (sa prévision est tracée en pointillés après maintenant)",
+ "editor_forecast_attribute": "Attribut (vide : prévision météo ou \"forecast\")",
+ "editor_forecast_value_key": "Clé de la valeur (vide : automatique)",
+ "editor_forecast_time_key": "Clé de l'heure (vide : automatique)",
+ "editor_forecast_type": "Prévision météo (vide : horaire)",
+ "editor_forecast_type_hourly": "Horaire",
+ "editor_forecast_type_daily": "Quotidienne",
+ "editor_forecast_type_twice_daily": "Deux fois par jour",
+ "editor_forecast_multiply": "Multiplier les valeurs par (vide : 1)",
+ "editor_forecast_hours": "Afficher les prévisions jusqu'à",
"editor_set_point": "Afficher la consigne",
"editor_shading": "Ombrer pendant le chauffage ou la climatisation",
"editor_shade_fan": "Ombrer quand seul le ventilateur tourne",
@@ -429,8 +541,19 @@
"swarm_events": "{n} fois actif",
"swarm_shown": "Points affichés",
"swarm_none": "Aucun relevé",
+ "swarm_no_change": "Aucun changement : {value}",
+ "swarm_held": "Stable sur toute la période",
"swarm_earliest_latest": "Plus ancien – plus récent",
"swarm_lowest_highest": "Plus bas – plus haut",
+ "editor_style_strip_plot": "Nuage de points en bandes",
+ "strip_median_value": "Médiane {value}",
+ "strip_mean_value": "Moyenne {value}",
+ "strip_mean": "Moyenne",
+ "editor_strip_marker": "Trait sur chaque rangée à",
+ "editor_strip_marker_median": "La médiane",
+ "editor_strip_marker_mean": "La moyenne",
+ "editor_strip_marker_none": "Aucun trait",
+ "editor_strip_jitter": "Étalement dans la rangée",
"editor_fill_color": "Couleur",
"editor_style_box": "Boîte à moustaches",
"box_aria": "Boîte à moustaches de {names}",
@@ -483,6 +606,12 @@
"editor_range": "Du plus bas au plus haut dans chaque colonne",
"editor_rounded": "Extrémités arrondies",
"editor_column_labels": "Afficher les valeurs sur les colonnes",
+ "editor_error_bars": "Barres d'erreur (dispersion dans chaque colonne)",
+ "editor_error_bars_none": "Aucune",
+ "editor_error_bars_std": "Moyenne ± un écart type",
+ "editor_error_bars_min_max": "Le plus bas et le plus haut",
+ "editor_error_bars_ci95": "Intervalle de confiance à 95 % de la moyenne",
+ "error_bars_tooltip": "{value} ({low} – {high})",
"editor_column_color": "Couleur",
"editor_style_combined": "Combiné",
"editor_series_type": "Tracer en",
@@ -518,6 +647,17 @@
"day_clock_so_far": "{duration} jusqu'ici",
"day_clock_range": "{from} – {to}",
"day_clock_average_value": "{value} en moyenne",
+ "editor_style_cycle_plot": "Graphique de cycles",
+ "cycle_note_week": "Moyenne de chaque heure sur {n} semaines",
+ "cycle_note_hour": "Chaque heure, jour après jour, sur {n} semaines",
+ "cycle_note_month": "Chaque jour du mois, mois après mois, sur {n} semaines",
+ "cycle_mean_legend": "Moyenne du panneau",
+ "cycle_panel_average": "Moyenne {name}",
+ "editor_cycle_plot_cycle": "Un panneau par",
+ "editor_cycle_plot_cycle_day_of_week": "Jour de la semaine (ses heures)",
+ "editor_cycle_plot_cycle_hour_of_day": "Heure de la journée (jour après jour)",
+ "editor_cycle_plot_cycle_day_of_month": "Jour du mois (mois après mois)",
+ "editor_cycle_plot_weeks": "Semaines",
"editor_style_dumbbell": "Haltères",
"editor_ends": "Comparer",
"editor_ends_range": "Le plus bas et le plus haut de la période",
@@ -576,6 +716,16 @@
"editor_color_min": "Couleur la plus basse à",
"editor_color_max": "Couleur la plus haute à",
"editor_legend": "Légende",
+ "editor_style_spiral": "Spirale",
+ "spiral_aria": "Spirale de {name}, {n} tours",
+ "spiral_turn_day_note": "{n} jours, un tour par jour",
+ "spiral_turn_week_note": "{n} semaines, un tour par semaine",
+ "spiral_inner_oldest": "Le plus ancien au centre, le plus récent à l'extérieur",
+ "editor_spiral_turn": "Un tour par",
+ "editor_spiral_turn_day": "Jour",
+ "editor_spiral_turn_week": "Semaine",
+ "editor_spiral_turns": "Tours",
+ "editor_spiral_ring_width": "Largeur de l'anneau",
"editor_style_histogram": "Histogramme",
"editor_count": "Compter",
"editor_count_time": "Le temps passé dans chaque intervalle",
@@ -594,7 +744,36 @@
"editor_style_line": "Ligne",
"chart_loading": "Chargement de l'historique…",
"chart_error": "Impossible de charger l'historique : {error}",
+ "energy_loading": "Chargement des réglages du tableau de bord Énergie…",
+ "energy_error": "Impossible de lire les réglages du tableau de bord Énergie : {error}",
+ "energy_none": "Aucun de ces flux n’est encore configuré dans le tableau de bord Énergie.",
+ "energy_flow_grid_import": "Import réseau",
+ "energy_flow_grid_export": "Export réseau",
+ "energy_flow_solar": "Solaire",
+ "energy_flow_battery_out": "Décharge batterie",
+ "energy_flow_battery_in": "Charge batterie",
+ "energy_flow_gas": "Gaz",
+ "energy_flow_water": "Eau",
+ "energy_flow_devices": "Appareils",
+ "energy_node_home": "Maison",
+ "energy_node_untracked": "Consommation non suivie",
+ "energy_node_home_use": "Consommé à la maison",
"chart_no_data": "Aucun relevé sur cette période.",
+ "legend_toggle_hint": "Toucher pour masquer ou afficher. Maintenir pour n’afficher que celle-ci.",
+ "legend_toggle_all_hidden": "Toutes les séries sont masquées. Touchez un nom pour l’afficher à nouveau.",
+ "export_menu": "Exporter",
+ "export_png": "Enregistrer en PNG",
+ "export_png_hint": "image, 2×",
+ "export_svg": "Enregistrer en SVG",
+ "export_svg_hint": "vectoriel",
+ "export_csv": "Copier le CSV",
+ "export_csv_hint": "valeurs tracées",
+ "export_yaml": "Copier le YAML",
+ "export_yaml_hint": "configuration de cette carte",
+ "export_copied": "Copié",
+ "export_saved": "Enregistré",
+ "export_saved_file": "Enregistré dans un fichier : le presse-papiers n’est pas disponible ici",
+ "export_failed": "Impossible d’exporter depuis ce navigateur",
"chart_log_nothing": "Rien au-dessus de zéro à tracer sur une échelle logarithmique.",
"editor_style_lollipop": "Sucettes",
"editor_style_pictograph": "Pictogramme",
@@ -645,6 +824,11 @@
"sankey_flow": "{from} vers {to} {value}",
"sankey_no_flows": "Indiquez pour chaque entité un « Flux depuis » et un « Flux vers » dans ses options.",
"sankey_nothing": "Aucun flux pour le moment.",
+ "energy_nothing_flowed": "Rien n’a circulé sur cette période.",
+ "editor_style_chord": "Cordes (flux en cercle)",
+ "editor_chord_pad": "Espace entre les nœuds",
+ "editor_chord_ribbon_opacity": "Opacité des rubans",
+ "chord_aria": "Diagramme de cordes : {flows}",
"editor_style_slope": "Pente",
"editor_measure": "Comparer",
"editor_measure_value": "Le relevé d'alors et d'aujourd'hui",
@@ -720,6 +904,16 @@
"treemap_empty": "Rien à afficher : aucune entité n'a de valeur supérieure à zéro.",
"treemap_no_reading": "Aucun relevé :",
"treemap_other": "Autre",
+ "editor_style_marimekko": "Marimekko",
+ "editor_marimekko_segment_labels": "Texte sur chaque partie",
+ "editor_marimekko_segment_labels_percent": "Part de sa colonne",
+ "editor_marimekko_segment_labels_value": "Valeur",
+ "editor_marimekko_segment_labels_both": "Part et valeur",
+ "editor_marimekko_segment_labels_none": "Aucun",
+ "editor_marimekko_group": "Colonne (groupe)",
+ "editor_marimekko_category": "Catégorie",
+ "editor_marimekko_color": "Couleur de la catégorie",
+ "marimekko_aria": "Graphique Marimekko, colonnes : {columns}",
"editor_style_trend": "Tendance",
"trend_min": "Min",
"trend_avg": "Moyenne",
diff --git a/src/locales/nl.json b/src/locales/nl.json
index 60a6f47..d808587 100644
--- a/src/locales/nl.json
+++ b/src/locales/nl.json
@@ -22,6 +22,20 @@
"editor_source": "Metingen uit",
"editor_source_history": "Geschiedenis (elke wijziging)",
"editor_source_statistics": "Langetermijnstatistieken",
+ "editor_derivative_transform": "Omrekening",
+ "editor_derivative_transform_none": "Geen (metingen zoals ze zijn)",
+ "editor_derivative_transform_derivative": "Veranderingssnelheid",
+ "editor_derivative_unit_time": "Snelheid per",
+ "editor_derivative_unit_time_s": "Seconde",
+ "editor_derivative_unit_time_min": "Minuut",
+ "editor_derivative_unit_time_h": "Uur",
+ "editor_derivative_unit_time_d": "Dag",
+ "editor_derivative_smoothing": "Afvlakken over metingen",
+ "editor_derivative_smoothing_time": "Afvlakken over tijd (bijv. 15min; in plaats van metingen)",
+ "editor_source_current": "Huidige waarden",
+ "editor_source_energy": "Energiedashboard",
+ "editor_energy_flows": "Energiestromen (niets aangevinkt: net, zon en batterij)",
+ "editor_energy_split": "Teruglevering en batterij laden onder de as",
"editor_curve": "Lijnvorm",
"editor_curve_smooth": "Vloeiend",
"editor_curve_straight": "Recht",
@@ -41,6 +55,8 @@
"editor_style_thin": "Dun",
"editor_style_segmented": "Gesegmenteerd",
"editor_style_tank": "Tank",
+ "editor_style_battery": "Batterijraster",
+ "battery_aria": "Batterijniveaus: {levels}",
"editor_style_ring": "Ring",
"editor_style_needle": "Naald",
"editor_style_arc": "Boog",
@@ -55,6 +71,12 @@
"editor_center_mode_none": "Niets",
"editor_center_text": "Tekst",
"editor_tick_labels": "Getallen op de schaal",
+ "editor_ghost": "Recent bereik achter de meter",
+ "editor_ghost_off": "Uit",
+ "editor_ghost_24h": "Afgelopen 24 uur",
+ "editor_ghost_7d": "Afgelopen 7 dagen",
+ "ghost_title_24h": "Afgelopen 24 uur: {min} tot {max}, gemiddeld {mean}",
+ "ghost_title_7d": "Afgelopen 7 dagen: {min} tot {max}, gemiddeld {mean}",
"editor_show_name": "Naam tonen",
"editor_show_value": "Waarde tonen",
"editor_show_icon": "Pictogram tonen",
@@ -69,6 +91,7 @@
"editor_unit": "Eenheid",
"editor_animate": "Animeren",
"editor_hide_unavailable": "Niet-beschikbare entiteiten verbergen",
+ "editor_export": "Exportmenu",
"editor_limit": "Toon maximaal",
"editor_include_heading": "Toon ook elke entiteit die overeenkomt",
"editor_include_help": "Nieuwe apparaten verschijnen zonder de kaart te bewerken. Kies er meerdere van één soort om op een van hen te matchen; verschillende soorten moeten allemaal overeenkomen.",
@@ -83,6 +106,29 @@
"editor_tap_action": "Tikactie",
"editor_hold_action": "Vasthoudactie",
"editor_double_tap_action": "Dubbeltikactie",
+ "editor_badge_entity": "Entiteit",
+ "editor_badge_style": "Weergave",
+ "editor_badge_style_value": "Waarde met pictogram",
+ "editor_badge_style_sparkline": "Minigrafiek",
+ "editor_badge_style_ring": "Ring",
+ "editor_badge_style_thin": "Smalle balk",
+ "editor_badge_attribute": "Attribuut (in plaats van de status)",
+ "editor_badge_name": "Naam",
+ "editor_badge_hours": "Uren geschiedenis",
+ "editor_badge_show_name": "Naam tonen",
+ "editor_badge_show_icon": "Pictogram tonen",
+ "editor_badge_icon": "Pictogram",
+ "editor_badge_min": "Minimum",
+ "editor_badge_max": "Maximum",
+ "editor_badge_unit": "Eenheid",
+ "editor_badge_decimals": "Decimalen",
+ "editor_badge_color": "Kleur zonder banden",
+ "editor_badge_bands": "Kleurbanden",
+ "editor_badge_bands_help": "De badge krijgt de kleur van de band waarin de waarde valt, net als op de kaart.",
+ "editor_badge_actions": "Acties",
+ "editor_badge_tap_action": "Tikactie",
+ "editor_badge_hold_action": "Vasthoudactie",
+ "editor_badge_double_tap_action": "Dubbeltikactie",
"editor_attribute": "Attribuut (in plaats van de status)",
"editor_name": "Naam",
"editor_icon": "Pictogram",
@@ -153,6 +199,14 @@
"editor_extremes_average_line": "Lijn over de grafiek",
"editor_extremes_average_figure": "Alleen het getal",
"editor_extremes": "Hoogste, laagste en gemiddelde markeren",
+ "anomaly_title": "{name}: {value}, {sigma} van normaal",
+ "anomaly_beyond_high": "boven {limit}",
+ "anomaly_beyond_low": "onder {limit}",
+ "editor_anomalies": "Waarden ver van normaal markeren",
+ "editor_anomalies_window": "Venster (30min, 2h, 1d; auto: een twaalfde van de periode)",
+ "editor_anomalies_sigma": "Vanaf hoe ver markeren, in standaardafwijkingen",
+ "editor_anomalies_color": "Kleur van de markeringen",
+ "editor_anomalies_band": "Normale band arceren",
"period_previous": "Vorige periode",
"period_next": "Volgende periode",
"period_return": "Terug naar {label}",
@@ -233,6 +287,12 @@
"editor_annotation_label": "Label",
"editor_annotation_color": "Kleur",
"editor_annotation_dash": "Gestreept",
+ "editor_annotation_history": "De geschiedenis van de entiteit volgen (getrapt)",
+ "editor_annotation_zone": "Arceren",
+ "editor_annotation_zone_none": "Niets",
+ "editor_annotation_zone_above": "Boven de lijn",
+ "editor_annotation_zone_below": "Onder de lijn",
+ "editor_annotation_severity": "Arceerkleuren volgens de waarde van de lijn (optionele banden)",
"editor_annotation_remove": "Annotatie verwijderen",
"editor_zones": "Ernstbanden achter de grafiek arceren",
"editor_period_calendar": "Periode",
@@ -253,6 +313,16 @@
"editor_group_by_week": "Week",
"editor_group_by_month": "Maand",
"editor_aggregate": "Combineren met",
+ "compare_series": "{name}, {offset}",
+ "compare_hours_earlier": "{n} u eerder",
+ "compare_days_earlier": "{n} dagen eerder",
+ "compare_weeks_earlier": "{n} weken eerder",
+ "compare_months_earlier": "{n} maanden eerder",
+ "compare_years_earlier": "{n} jaar eerder",
+ "editor_compare": "Vergelijken met eerdere periodes (vaag erachter getekend)",
+ "editor_compare_style": "Kleur van de eerdere periodes",
+ "editor_compare_style_grey": "Grijs",
+ "editor_compare_style_series": "Vervaagde reekskleur",
"editor_aggregate_mean": "Gemiddelde",
"editor_aggregate_sum": "Som",
"editor_aggregate_min": "Laagste",
@@ -260,6 +330,16 @@
"editor_aggregate_first": "Eerste",
"editor_aggregate_last": "Laatste",
"editor_aggregate_change": "Verandering (oplopende meters)",
+ "editor_cumulative_transform": "Omrekening",
+ "editor_cumulative_transform_none": "Geen (metingen zoals ze zijn)",
+ "editor_cumulative_transform_cumulative": "Lopend totaal",
+ "editor_cumulative_reset": "Lopend totaal begint opnieuw",
+ "editor_cumulative_reset_none": "Nooit (vanaf de linkerrand)",
+ "editor_cumulative_reset_day": "Elke dag",
+ "editor_cumulative_reset_week": "Elke week",
+ "editor_cumulative_reset_month": "Elke maand",
+ "editor_cumulative_reset_billing": "Elke maand op de factuurdag",
+ "editor_cumulative_billing_day": "Factuurdag van de maand (1–28)",
"editor_x_axis": "Tijdlabels",
"editor_y_axis": "Waardelabels",
"editor_axis_labels": "Aslabels",
@@ -276,11 +356,30 @@
"editor_line_width": "Lijndikte (px)",
"editor_dots": "Punt bij elke meting",
"editor_on_top": "Boven de andere lijnen tekenen",
+ "editor_when_entity": "Alleen tonen zolang deze entiteit",
+ "editor_when_state": "…in status is (gescheiden door komma's)",
+ "editor_when_above": "…boven is",
+ "editor_when_below": "…onder is",
+ "editor_when_card_entity": "Alle reeksen alleen tonen zolang deze entiteit",
+ "editor_when_card_state": "…in status is (gescheiden door komma's)",
+ "editor_when_card_above": "…boven is",
+ "editor_when_card_below": "…onder is",
+ "editor_when_ghost": "Vage lijn van de verborgen metingen",
+ "editor_when_strip": "Strook die toont wanneer het gold",
+ "when_strip_label": "Getoond zolang {condition}",
+ "editor_now_marker": "Nu-lijn",
+ "editor_now_marker_off": "Uit",
+ "editor_now_marker_line": "Alleen de lijn",
+ "editor_now_marker_time": "Lijn en de tijd",
+ "editor_now_marker_countdown": "Lijn en aftellen tot de volgende vaste tijd",
+ "now_marker_countdown": "{label} over {duration}",
+ "now_marker_next": "Volgende over {duration}",
"editor_compact": "Compact",
"editor_header": "Namen en waarden",
"editor_header_above": "Boven de grafiek",
"editor_header_over": "Over de grafiek",
"editor_header_hidden": "Verborgen",
+ "editor_legend_toggle": "Tik op een naam om die te verbergen of te tonen",
"editor_labels_show": "Welke metingen",
"editor_labels_show_all": "Alle (zoveel als passen)",
"editor_labels_show_last": "De laatste",
@@ -299,6 +398,19 @@
"editor_multiples_scale_shared": "Gelijk voor elke grafiek",
"editor_multiples_scale_independent": "Elke grafiek een eigen schaal",
"editor_multiples_columns": "Kolommen (leeg past op de kaart)",
+ "forecast_label": "Verwachting",
+ "forecast_series": "{name} verwachting",
+ "editor_forecast_title": "Verwachting",
+ "editor_forecast_entity": "Verwachtingsentiteit (tekent de verwachting gestippeld vanaf nu)",
+ "editor_forecast_attribute": "Attribuut (leeg: weersverwachting of \"forecast\")",
+ "editor_forecast_value_key": "Sleutel van de waarde (leeg: automatisch)",
+ "editor_forecast_time_key": "Sleutel van de tijd (leeg: automatisch)",
+ "editor_forecast_type": "Weersverwachting (leeg: per uur)",
+ "editor_forecast_type_hourly": "Per uur",
+ "editor_forecast_type_daily": "Per dag",
+ "editor_forecast_type_twice_daily": "Twee keer per dag",
+ "editor_forecast_multiply": "Waarden vermenigvuldigen met (leeg: 1)",
+ "editor_forecast_hours": "Verwachtingen zo ver vooruit tonen",
"editor_set_point": "Instelpunt tonen",
"editor_shading": "Arceren tijdens verwarmen of koelen",
"editor_shade_fan": "Arceren als alleen de ventilator draait",
@@ -429,8 +541,19 @@
"swarm_events": "{n} keer aan",
"swarm_shown": "Getoonde punten",
"swarm_none": "Geen metingen",
+ "swarm_no_change": "Geen verandering: {value}",
+ "swarm_held": "De hele periode gelijk",
"swarm_earliest_latest": "Vroegste – laatste",
"swarm_lowest_highest": "Laagste – hoogste",
+ "editor_style_strip_plot": "Stripdiagram",
+ "strip_median_value": "Mediaan {value}",
+ "strip_mean_value": "Gemiddelde {value}",
+ "strip_mean": "Gemiddelde",
+ "editor_strip_marker": "Lijn in elke rij op",
+ "editor_strip_marker_median": "De mediaan",
+ "editor_strip_marker_mean": "Het gemiddelde",
+ "editor_strip_marker_none": "Geen lijn",
+ "editor_strip_jitter": "Spreiding over de rij",
"editor_fill_color": "Kleur",
"editor_style_box": "Boxplot",
"box_aria": "Boxplot van {names}",
@@ -483,6 +606,12 @@
"editor_range": "Laagste tot hoogste per kolom",
"editor_rounded": "Afgeronde uiteinden",
"editor_column_labels": "Waarden op de kolommen tonen",
+ "editor_error_bars": "Foutbalken (spreiding per kolom)",
+ "editor_error_bars_none": "Geen",
+ "editor_error_bars_std": "Gemiddelde ± één standaardafwijking",
+ "editor_error_bars_min_max": "Laagste en hoogste",
+ "editor_error_bars_ci95": "95%-betrouwbaarheidsinterval van het gemiddelde",
+ "error_bars_tooltip": "{value} ({low} – {high})",
"editor_column_color": "Kleur",
"editor_style_combined": "Gecombineerd",
"editor_series_type": "Tekenen als",
@@ -518,6 +647,17 @@
"day_clock_so_far": "{duration} tot nu toe",
"day_clock_range": "{from} – {to}",
"day_clock_average_value": "gemiddeld {value}",
+ "editor_style_cycle_plot": "Cyclusdiagram",
+ "cycle_note_week": "Gemiddelde van elk uur over {n} weken",
+ "cycle_note_hour": "Elk uur, dag na dag, over {n} weken",
+ "cycle_note_month": "Elke dag van de maand, maand na maand, over {n} weken",
+ "cycle_mean_legend": "Gemiddelde van het paneel",
+ "cycle_panel_average": "Gemiddelde {name}",
+ "editor_cycle_plot_cycle": "Eén paneel per",
+ "editor_cycle_plot_cycle_day_of_week": "Dag van de week (de uren)",
+ "editor_cycle_plot_cycle_hour_of_day": "Uur van de dag (dag na dag)",
+ "editor_cycle_plot_cycle_day_of_month": "Dag van de maand (maand na maand)",
+ "editor_cycle_plot_weeks": "Weken",
"editor_style_dumbbell": "Halter",
"editor_ends": "Vergelijken",
"editor_ends_range": "Laagste en hoogste in de periode",
@@ -576,6 +716,16 @@
"editor_color_min": "Laagste kleur bij",
"editor_color_max": "Hoogste kleur bij",
"editor_legend": "Legenda",
+ "editor_style_spiral": "Spiraal",
+ "spiral_aria": "Spiraal van {name}, {n} slagen",
+ "spiral_turn_day_note": "{n} dagen, één slag per dag",
+ "spiral_turn_week_note": "{n} weken, één slag per week",
+ "spiral_inner_oldest": "Oudste in het midden, nieuwste buiten",
+ "editor_spiral_turn": "Eén slag per",
+ "editor_spiral_turn_day": "Dag",
+ "editor_spiral_turn_week": "Week",
+ "editor_spiral_turns": "Slagen",
+ "editor_spiral_ring_width": "Ringbreedte",
"editor_style_histogram": "Histogram",
"editor_count": "Tellen",
"editor_count_time": "Tijd in elk bereik",
@@ -594,7 +744,36 @@
"editor_style_line": "Lijn",
"chart_loading": "Geschiedenis laden…",
"chart_error": "Kan geschiedenis niet laden: {error}",
+ "energy_loading": "Instellingen van het energiedashboard laden…",
+ "energy_error": "Kan de instellingen van het energiedashboard niet lezen: {error}",
+ "energy_none": "In het energiedashboard is nog geen van deze stromen ingesteld.",
+ "energy_flow_grid_import": "Netafname",
+ "energy_flow_grid_export": "Netteruglevering",
+ "energy_flow_solar": "Zon",
+ "energy_flow_battery_out": "Batterij ontladen",
+ "energy_flow_battery_in": "Batterij laden",
+ "energy_flow_gas": "Gas",
+ "energy_flow_water": "Water",
+ "energy_flow_devices": "Apparaten",
+ "energy_node_home": "Huis",
+ "energy_node_untracked": "Niet gemeten verbruik",
+ "energy_node_home_use": "Thuis verbruikt",
"chart_no_data": "Geen metingen in deze periode.",
+ "legend_toggle_hint": "Tik om te verbergen of te tonen. Houd vast om alleen deze te tonen.",
+ "legend_toggle_all_hidden": "Alle reeksen zijn verborgen. Tik op een naam om die weer te tonen.",
+ "export_menu": "Exporteren",
+ "export_png": "Opslaan als PNG",
+ "export_png_hint": "afbeelding, 2×",
+ "export_svg": "Opslaan als SVG",
+ "export_svg_hint": "vector",
+ "export_csv": "CSV kopiëren",
+ "export_csv_hint": "getekende waarden",
+ "export_yaml": "YAML kopiëren",
+ "export_yaml_hint": "configuratie van deze kaart",
+ "export_copied": "Gekopieerd",
+ "export_saved": "Opgeslagen",
+ "export_saved_file": "Als bestand opgeslagen: het klembord is hier niet beschikbaar",
+ "export_failed": "Exporteren lukt niet in deze browser",
"chart_log_nothing": "Niets boven nul om op een logaritmische schaal te tekenen.",
"editor_style_lollipop": "Lolly",
"editor_style_pictograph": "Pictogrammen",
@@ -645,6 +824,11 @@
"sankey_flow": "{from} naar {to} {value}",
"sankey_no_flows": "Geef elke entiteit in de opties een \"Stroomt van\" en een \"Stroomt naar\".",
"sankey_nothing": "Er stroomt nu niets.",
+ "energy_nothing_flowed": "Er stroomde niets in deze periode.",
+ "editor_style_chord": "Koorden (stromen in een cirkel)",
+ "editor_chord_pad": "Ruimte tussen knooppunten",
+ "editor_chord_ribbon_opacity": "Dekking van de linten",
+ "chord_aria": "Koordendiagram: {flows}",
"editor_style_slope": "Helling",
"editor_measure": "Vergelijken",
"editor_measure_value": "De meting toen en nu",
@@ -720,6 +904,16 @@
"treemap_empty": "Niets te tonen: geen entiteit heeft een waarde boven nul.",
"treemap_no_reading": "Geen meting:",
"treemap_other": "Overig",
+ "editor_style_marimekko": "Marimekko",
+ "editor_marimekko_segment_labels": "Tekst op elk deel",
+ "editor_marimekko_segment_labels_percent": "Aandeel in de kolom",
+ "editor_marimekko_segment_labels_value": "Waarde",
+ "editor_marimekko_segment_labels_both": "Aandeel en waarde",
+ "editor_marimekko_segment_labels_none": "Geen",
+ "editor_marimekko_group": "Kolom (groep)",
+ "editor_marimekko_category": "Categorie",
+ "editor_marimekko_color": "Kleur van de categorie",
+ "marimekko_aria": "Marimekko-grafiek, kolommen: {columns}",
"editor_style_trend": "Trend",
"trend_min": "Laag",
"trend_avg": "Gemiddelde",
diff --git a/src/locales/pt.json b/src/locales/pt.json
index e4ffc2d..609bf90 100644
--- a/src/locales/pt.json
+++ b/src/locales/pt.json
@@ -22,6 +22,20 @@
"editor_source": "Leituras de",
"editor_source_history": "Histórico (cada alteração)",
"editor_source_statistics": "Estatísticas de longo prazo",
+ "editor_derivative_transform": "Transformação",
+ "editor_derivative_transform_none": "Nenhuma (leituras como estão)",
+ "editor_derivative_transform_derivative": "Taxa de variação",
+ "editor_derivative_unit_time": "Taxa por",
+ "editor_derivative_unit_time_s": "Segundo",
+ "editor_derivative_unit_time_min": "Minuto",
+ "editor_derivative_unit_time_h": "Hora",
+ "editor_derivative_unit_time_d": "Dia",
+ "editor_derivative_smoothing": "Suavizar ao longo de leituras",
+ "editor_derivative_smoothing_time": "Suavizar por tempo (ex. 15min; em vez de leituras)",
+ "editor_source_current": "Valores atuais",
+ "editor_source_energy": "Painel de energia",
+ "editor_energy_flows": "Fluxos de energia (nada marcado: rede, solar e bateria)",
+ "editor_energy_split": "Exportação e carga da bateria abaixo do eixo",
"editor_curve": "Forma da linha",
"editor_curve_smooth": "Suave",
"editor_curve_straight": "Reta",
@@ -41,6 +55,8 @@
"editor_style_thin": "Fina",
"editor_style_segmented": "Segmentada",
"editor_style_tank": "Depósito",
+ "editor_style_battery": "Grelha de baterias",
+ "battery_aria": "Níveis de bateria: {levels}",
"editor_style_ring": "Anel",
"editor_style_needle": "Ponteiro",
"editor_style_arc": "Arco",
@@ -55,6 +71,12 @@
"editor_center_mode_none": "Nada",
"editor_center_text": "Texto",
"editor_tick_labels": "Números na escala",
+ "editor_ghost": "Intervalo recente atrás do indicador",
+ "editor_ghost_off": "Desligado",
+ "editor_ghost_24h": "Últimas 24 horas",
+ "editor_ghost_7d": "Últimos 7 dias",
+ "ghost_title_24h": "Últimas 24 horas: de {min} a {max}, média {mean}",
+ "ghost_title_7d": "Últimos 7 dias: de {min} a {max}, média {mean}",
"editor_show_name": "Mostrar nome",
"editor_show_value": "Mostrar valor",
"editor_show_icon": "Mostrar ícone",
@@ -69,6 +91,7 @@
"editor_unit": "Unidade",
"editor_animate": "Animar",
"editor_hide_unavailable": "Ocultar entidades indisponíveis",
+ "editor_export": "Menu de exportação",
"editor_limit": "Mostrar no máximo",
"editor_include_heading": "Mostrar também todas as entidades que correspondam",
"editor_include_help": "Os novos dispositivos aparecem sem editar o cartão. Escolha vários do mesmo tipo para corresponder a qualquer um; tipos diferentes têm de corresponder todos.",
@@ -83,6 +106,29 @@
"editor_tap_action": "Ação ao tocar",
"editor_hold_action": "Ação ao manter premido",
"editor_double_tap_action": "Ação ao tocar duas vezes",
+ "editor_badge_entity": "Entidade",
+ "editor_badge_style": "Aspeto",
+ "editor_badge_style_value": "Valor com ícone",
+ "editor_badge_style_sparkline": "Minigráfico",
+ "editor_badge_style_ring": "Anel",
+ "editor_badge_style_thin": "Barra fina",
+ "editor_badge_attribute": "Atributo (em vez do estado)",
+ "editor_badge_name": "Nome",
+ "editor_badge_hours": "Horas de histórico",
+ "editor_badge_show_name": "Mostrar nome",
+ "editor_badge_show_icon": "Mostrar ícone",
+ "editor_badge_icon": "Ícone",
+ "editor_badge_min": "Mínimo",
+ "editor_badge_max": "Máximo",
+ "editor_badge_unit": "Unidade",
+ "editor_badge_decimals": "Casas decimais",
+ "editor_badge_color": "Cor sem faixas",
+ "editor_badge_bands": "Faixas de cor",
+ "editor_badge_bands_help": "O emblema assume a cor da faixa em que está o seu valor, como no cartão.",
+ "editor_badge_actions": "Ações",
+ "editor_badge_tap_action": "Ação ao tocar",
+ "editor_badge_hold_action": "Ação ao manter premido",
+ "editor_badge_double_tap_action": "Ação ao tocar duas vezes",
"editor_attribute": "Atributo (em vez do estado)",
"editor_name": "Nome",
"editor_icon": "Ícone",
@@ -153,6 +199,14 @@
"editor_extremes_average_line": "Linha ao longo do gráfico",
"editor_extremes_average_figure": "Apenas o valor",
"editor_extremes": "Marcar máximo, mínimo e média",
+ "anomaly_title": "{name}: {value}, {sigma} fora do normal",
+ "anomaly_beyond_high": "acima de {limit}",
+ "anomaly_beyond_low": "abaixo de {limit}",
+ "editor_anomalies": "Marcar leituras longe do normal",
+ "editor_anomalies_window": "Janela (30min, 2h, 1d; auto: um doze avos do período)",
+ "editor_anomalies_sigma": "A que distância marcar, em desvios padrão",
+ "editor_anomalies_color": "Cor das marcas",
+ "editor_anomalies_band": "Sombrear a faixa normal",
"period_previous": "Período anterior",
"period_next": "Período seguinte",
"period_return": "Voltar a {label}",
@@ -233,6 +287,12 @@
"editor_annotation_label": "Etiqueta",
"editor_annotation_color": "Cor",
"editor_annotation_dash": "Tracejado",
+ "editor_annotation_history": "Seguir o histórico da entidade (em degraus)",
+ "editor_annotation_zone": "Sombrear",
+ "editor_annotation_zone_none": "Nada",
+ "editor_annotation_zone_above": "Acima da linha",
+ "editor_annotation_zone_below": "Abaixo da linha",
+ "editor_annotation_severity": "Cores do sombreado conforme o valor da linha (faixas opcionais)",
"editor_annotation_remove": "Remover anotação",
"editor_zones": "Sombrear as faixas de gravidade atrás do gráfico",
"editor_period_calendar": "Período",
@@ -253,6 +313,16 @@
"editor_group_by_week": "Semana",
"editor_group_by_month": "Mês",
"editor_aggregate": "Combinar com",
+ "compare_series": "{name}, {offset}",
+ "compare_hours_earlier": "{n} h antes",
+ "compare_days_earlier": "{n} dias antes",
+ "compare_weeks_earlier": "{n} semanas antes",
+ "compare_months_earlier": "{n} meses antes",
+ "compare_years_earlier": "{n} anos antes",
+ "editor_compare": "Comparar com períodos anteriores (desenhados esbatidos atrás)",
+ "editor_compare_style": "Cor dos períodos anteriores",
+ "editor_compare_style_grey": "Cinzento",
+ "editor_compare_style_series": "Cor da série esbatida",
"editor_aggregate_mean": "Média",
"editor_aggregate_sum": "Soma",
"editor_aggregate_min": "Mínimo",
@@ -260,6 +330,16 @@
"editor_aggregate_first": "Primeiro",
"editor_aggregate_last": "Último",
"editor_aggregate_change": "Variação (contadores que aumentam)",
+ "editor_cumulative_transform": "Transformação",
+ "editor_cumulative_transform_none": "Nenhuma (leituras como estão)",
+ "editor_cumulative_transform_cumulative": "Total acumulado",
+ "editor_cumulative_reset": "O total acumulado recomeça",
+ "editor_cumulative_reset_none": "Nunca (a partir da margem esquerda)",
+ "editor_cumulative_reset_day": "Todos os dias",
+ "editor_cumulative_reset_week": "Todas as semanas",
+ "editor_cumulative_reset_month": "Todos os meses",
+ "editor_cumulative_reset_billing": "Todos os meses no dia de faturação",
+ "editor_cumulative_billing_day": "Dia de faturação do mês (1–28)",
"editor_x_axis": "Etiquetas de tempo",
"editor_y_axis": "Etiquetas de valor",
"editor_axis_labels": "Etiquetas dos eixos",
@@ -276,11 +356,30 @@
"editor_line_width": "Largura da linha (px)",
"editor_dots": "Ponto em cada leitura",
"editor_on_top": "Desenhar por cima das outras linhas",
+ "editor_when_entity": "Mostrar só enquanto esta entidade",
+ "editor_when_state": "…estiver no estado (separados por vírgulas)",
+ "editor_when_above": "…estiver acima de",
+ "editor_when_below": "…estiver abaixo de",
+ "editor_when_card_entity": "Mostrar todas as séries só enquanto esta entidade",
+ "editor_when_card_state": "…estiver no estado (separados por vírgulas)",
+ "editor_when_card_above": "…estiver acima de",
+ "editor_when_card_below": "…estiver abaixo de",
+ "editor_when_ghost": "Linha ténue das leituras ocultas",
+ "editor_when_strip": "Faixa que mostra quando se verificou",
+ "when_strip_label": "Mostrado enquanto {condition}",
+ "editor_now_marker": "Linha de agora",
+ "editor_now_marker_off": "Desligada",
+ "editor_now_marker_line": "Só a linha",
+ "editor_now_marker_time": "Linha e a hora",
+ "editor_now_marker_countdown": "Linha e contagem até à próxima hora definida",
+ "now_marker_countdown": "{label} em {duration}",
+ "now_marker_next": "Próxima em {duration}",
"editor_compact": "Compacto",
"editor_header": "Nomes e valores",
"editor_header_above": "Acima do gráfico",
"editor_header_over": "Sobre o gráfico",
"editor_header_hidden": "Ocultos",
+ "editor_legend_toggle": "Toque num nome para o ocultar ou mostrar",
"editor_labels_show": "Que leituras",
"editor_labels_show_all": "Todas (as que couberem)",
"editor_labels_show_last": "A mais recente",
@@ -299,6 +398,19 @@
"editor_multiples_scale_shared": "A mesma para todos os gráficos",
"editor_multiples_scale_independent": "Cada gráfico com a sua",
"editor_multiples_columns": "Colunas (vazio ajusta ao cartão)",
+ "forecast_label": "Previsão",
+ "forecast_series": "Previsão de {name}",
+ "editor_forecast_title": "Previsão",
+ "editor_forecast_entity": "Entidade de previsão (desenha a previsão tracejada a partir de agora)",
+ "editor_forecast_attribute": "Atributo (vazio: previsão do tempo ou \"forecast\")",
+ "editor_forecast_value_key": "Chave do valor (vazio: automática)",
+ "editor_forecast_time_key": "Chave da hora (vazio: automática)",
+ "editor_forecast_type": "Previsão do tempo (vazio: por hora)",
+ "editor_forecast_type_hourly": "Por hora",
+ "editor_forecast_type_daily": "Diária",
+ "editor_forecast_type_twice_daily": "Duas vezes por dia",
+ "editor_forecast_multiply": "Multiplicar os valores por (vazio: 1)",
+ "editor_forecast_hours": "Mostrar previsões até este prazo",
"editor_set_point": "Mostrar a temperatura definida",
"editor_shading": "Sombrear durante aquecimento ou arrefecimento",
"editor_shade_fan": "Sombrear quando só a ventoinha funciona",
@@ -429,8 +541,19 @@
"swarm_events": "{n} vezes ligado",
"swarm_shown": "Pontos mostrados",
"swarm_none": "Sem leituras",
+ "swarm_no_change": "Sem alterações: {value}",
+ "swarm_held": "Igual todo o período",
"swarm_earliest_latest": "Mais antiga – mais recente",
"swarm_lowest_highest": "Mínimo – máximo",
+ "editor_style_strip_plot": "Gráfico de faixas",
+ "strip_median_value": "Mediana {value}",
+ "strip_mean_value": "Média {value}",
+ "strip_mean": "Média",
+ "editor_strip_marker": "Linha em cada fila em",
+ "editor_strip_marker_median": "A mediana",
+ "editor_strip_marker_mean": "A média",
+ "editor_strip_marker_none": "Sem linha",
+ "editor_strip_jitter": "Dispersão na fila",
"editor_fill_color": "Cor",
"editor_style_box": "Diagrama de caixa",
"box_aria": "Diagrama de caixa de {names}",
@@ -483,6 +606,12 @@
"editor_range": "Mínimo a máximo em cada coluna",
"editor_rounded": "Extremidades arredondadas",
"editor_column_labels": "Mostrar valores nas colunas",
+ "editor_error_bars": "Barras de erro (dispersão em cada coluna)",
+ "editor_error_bars_none": "Nenhuma",
+ "editor_error_bars_std": "Média ± um desvio padrão",
+ "editor_error_bars_min_max": "O mínimo e o máximo",
+ "editor_error_bars_ci95": "Intervalo de confiança de 95 % da média",
+ "error_bars_tooltip": "{value} ({low} – {high})",
"editor_column_color": "Cor",
"editor_style_combined": "Combinado",
"editor_series_type": "Desenhar como",
@@ -518,6 +647,17 @@
"day_clock_so_far": "{duration} até agora",
"day_clock_range": "{from} – {to}",
"day_clock_average_value": "{value} em média",
+ "editor_style_cycle_plot": "Gráfico de ciclos",
+ "cycle_note_week": "Média de cada hora em {n} semanas",
+ "cycle_note_hour": "Cada hora, dia a dia, em {n} semanas",
+ "cycle_note_month": "Cada dia do mês, mês a mês, em {n} semanas",
+ "cycle_mean_legend": "Média do painel",
+ "cycle_panel_average": "Média de {name}",
+ "editor_cycle_plot_cycle": "Um painel por",
+ "editor_cycle_plot_cycle_day_of_week": "Dia da semana (as suas horas)",
+ "editor_cycle_plot_cycle_hour_of_day": "Hora do dia (dia a dia)",
+ "editor_cycle_plot_cycle_day_of_month": "Dia do mês (mês a mês)",
+ "editor_cycle_plot_weeks": "Semanas",
"editor_style_dumbbell": "Halteres",
"editor_ends": "Comparar",
"editor_ends_range": "Mínimo e máximo no período",
@@ -576,6 +716,16 @@
"editor_color_min": "Cor mais baixa em",
"editor_color_max": "Cor mais alta em",
"editor_legend": "Legenda",
+ "editor_style_spiral": "Espiral",
+ "spiral_aria": "Espiral de {name}, {n} voltas",
+ "spiral_turn_day_note": "{n} dias, uma volta por dia",
+ "spiral_turn_week_note": "{n} semanas, uma volta por semana",
+ "spiral_inner_oldest": "O mais antigo no centro, o mais recente por fora",
+ "editor_spiral_turn": "Uma volta por",
+ "editor_spiral_turn_day": "Dia",
+ "editor_spiral_turn_week": "Semana",
+ "editor_spiral_turns": "Voltas",
+ "editor_spiral_ring_width": "Largura do anel",
"editor_style_histogram": "Histograma",
"editor_count": "Contar",
"editor_count_time": "Tempo passado em cada intervalo",
@@ -594,7 +744,36 @@
"editor_style_line": "Linha",
"chart_loading": "A carregar o histórico…",
"chart_error": "Não foi possível carregar o histórico: {error}",
+ "energy_loading": "A carregar as definições do painel de energia…",
+ "energy_error": "Não foi possível ler as definições do painel de energia: {error}",
+ "energy_none": "O painel de energia ainda não tem nenhum destes fluxos configurado.",
+ "energy_flow_grid_import": "Importação da rede",
+ "energy_flow_grid_export": "Exportação para a rede",
+ "energy_flow_solar": "Solar",
+ "energy_flow_battery_out": "Descarga da bateria",
+ "energy_flow_battery_in": "Carga da bateria",
+ "energy_flow_gas": "Gás",
+ "energy_flow_water": "Água",
+ "energy_flow_devices": "Dispositivos",
+ "energy_node_home": "Casa",
+ "energy_node_untracked": "Consumo não medido",
+ "energy_node_home_use": "Consumido em casa",
"chart_no_data": "Sem leituras neste período.",
+ "legend_toggle_hint": "Toque para ocultar ou mostrar. Mantenha premido para mostrar só esta.",
+ "legend_toggle_all_hidden": "Todas as séries estão ocultas. Toque num nome para a mostrar de novo.",
+ "export_menu": "Exportar",
+ "export_png": "Guardar como PNG",
+ "export_png_hint": "imagem, 2×",
+ "export_svg": "Guardar como SVG",
+ "export_svg_hint": "vetorial",
+ "export_csv": "Copiar CSV",
+ "export_csv_hint": "valores desenhados",
+ "export_yaml": "Copiar YAML",
+ "export_yaml_hint": "configuração deste cartão",
+ "export_copied": "Copiado",
+ "export_saved": "Guardado",
+ "export_saved_file": "Guardado como ficheiro: a área de transferência não está disponível aqui",
+ "export_failed": "Não foi possível exportar neste navegador",
"chart_log_nothing": "Nada acima de zero para desenhar numa escala logarítmica.",
"editor_style_lollipop": "Chupa-chupa",
"editor_style_pictograph": "Pictograma",
@@ -645,6 +824,11 @@
"sankey_flow": "{from} para {to} {value}",
"sankey_no_flows": "Defina para cada entidade um \"Flui de\" e um \"Flui para\" nas suas opções.",
"sankey_nothing": "Nada está a fluir neste momento.",
+ "energy_nothing_flowed": "Nada fluiu neste período.",
+ "editor_style_chord": "Cordas (fluxos em círculo)",
+ "editor_chord_pad": "Espaço entre nós",
+ "editor_chord_ribbon_opacity": "Opacidade das fitas",
+ "chord_aria": "Diagrama de cordas: {flows}",
"editor_style_slope": "Declive",
"editor_measure": "Comparar",
"editor_measure_value": "A leitura antes e agora",
@@ -720,6 +904,16 @@
"treemap_empty": "Nada a mostrar: nenhuma entidade tem um valor acima de zero.",
"treemap_no_reading": "Sem leitura:",
"treemap_other": "Outros",
+ "editor_style_marimekko": "Marimekko",
+ "editor_marimekko_segment_labels": "Texto em cada parte",
+ "editor_marimekko_segment_labels_percent": "Parte da sua coluna",
+ "editor_marimekko_segment_labels_value": "Valor",
+ "editor_marimekko_segment_labels_both": "Parte e valor",
+ "editor_marimekko_segment_labels_none": "Nenhum",
+ "editor_marimekko_group": "Coluna (grupo)",
+ "editor_marimekko_category": "Categoria",
+ "editor_marimekko_color": "Cor da categoria",
+ "marimekko_aria": "Gráfico Marimekko, colunas: {columns}",
"editor_style_trend": "Tendência",
"trend_min": "Mín.",
"trend_avg": "Média",
diff --git a/src/resolve.ts b/src/resolve.ts
index b1d73af..ef0749f 100644
--- a/src/resolve.ts
+++ b/src/resolve.ts
@@ -1,11 +1,24 @@
import { bandFor } from './bands';
import { mergeEntity } from './config';
import { matchEntities } from './fill';
+import { conditionEntities } from './history/condition';
import { defaultDecimals, formatNumber, withUnit } from './format';
+import { isStatistic } from './history/energy';
import { localize } from './localize';
import { fillSpan, position } from './scale';
+import { conversion, convertedDecimals } from './units';
+import type { Conversion } from './units';
import { DEFAULT_BANDS } from './config';
-import type { Band, HassEntity, HomeAssistant, MergedEntity, NormalizedConfig, ResolvedBand, SortMode } from './types';
+import type {
+ Band,
+ CardConfig,
+ HassEntity,
+ HomeAssistant,
+ MergedEntity,
+ NormalizedConfig,
+ ResolvedBand,
+ SortMode,
+} from './types';
export interface ResolvedEntity {
entityId: string;
@@ -19,6 +32,8 @@ export interface ResolvedEntity {
target: number | null;
name: string;
unit: string;
+ /** Set when `unit` converts the sensor's own unit (W to kW): history is converted with it too. */
+ conversion?: Conversion;
decimals: number;
position: number;
span: [number, number];
@@ -28,7 +43,7 @@ export interface ResolvedEntity {
bands: ResolvedBand[];
/** Number only, no unit; '' when unavailable. */
valueText: string;
- /** Number with unit, or the localised state / "Entity not found". */
+ /** Number with unit, or the localised state / "Entity not found" ('' for a statistic with no entity). */
display: string;
/** Aria label: ", ". */
label: string;
@@ -42,7 +57,7 @@ const warned = new Set();
*/
export function iconOverride(e: ResolvedEntity): string | undefined {
const band = e.available ? e.band.icon : undefined;
- return band ?? e.config.icon ?? (e.stateObj ? undefined : 'mdi:help-circle-outline');
+ return band ?? e.config.icon ?? (e.stateObj || isStatistic(e) ? undefined : 'mdi:help-circle-outline');
}
export function resetLimitWarnings(): void {
@@ -86,11 +101,18 @@ function statusText(entity: MergedEntity, stateObj: HassEntity, raw: unknown, ha
return hass.formatEntityState?.(stateObj) ?? localize(hass, 'unavailable');
}
-function resolveLimit(limit: unknown, hass: HomeAssistant, what = 'limit'): number | null {
+/**
+ * A limit or band start: a number as written (in the unit the card shows), or an entity's state,
+ * converted from that entity's unit to `unit` when the card knows the pair.
+ */
+function resolveLimit(limit: unknown, hass: HomeAssistant, what = 'limit', unit?: string): number | null {
if (isUnset(limit)) return null;
if (typeof limit === 'number') return Number.isFinite(limit) ? limit : null;
const id = String(limit);
- const n = parseNumber(hass.states[id]?.state);
+ const read = parseNumber(hass.states[id]?.state);
+ const from = hass.states[id]?.attributes?.unit_of_measurement;
+ const c = read === null ? undefined : conversion(typeof from === 'string' ? from : undefined, unit);
+ const n = c && read !== null ? c.apply(read) : read;
if (n === null && !warned.has(id)) {
warned.add(id);
const fallback = what === 'limit' ? 'using the default' : 'leaving that colour band out';
@@ -104,11 +126,11 @@ function resolveLimit(limit: unknown, hass: HomeAssistant, what = 'limit'): numb
* numeric is left out (with one warning), so the band below it carries on; with none left, the
* default colour.
*/
-export function resolveBands(bands: Band[], hass: HomeAssistant | undefined): ResolvedBand[] {
+export function resolveBands(bands: Band[], hass: HomeAssistant | undefined, unit?: string): ResolvedBand[] {
if (bands.every((b) => typeof b.from === 'number')) return bands as ResolvedBand[];
const read: ResolvedBand[] = [];
for (const band of bands) {
- const from = hass ? resolveLimit(band.from, hass, 'band start') : null;
+ const from = hass ? resolveLimit(band.from, hass, 'band start', unit) : null;
if (from !== null) read.push({ ...band, from });
}
return read.length ? read.sort((a, b) => a.from - b.from) : DEFAULT_BANDS;
@@ -119,18 +141,25 @@ function resolveOne(entity: MergedEntity, hass: HomeAssistant): ResolvedEntity {
const stateObj = hass.states[entityId];
const name = entity.name ?? stateObj?.attributes?.friendly_name ?? entityId;
// The sensor's unit and display precision describe its state, not its attributes.
- const unit = entity.unit ?? (entity.attribute ? '' : (stateObj?.attributes?.unit_of_measurement ?? ''));
+ const own = entity.attribute ? '' : String(stateObj?.attributes?.unit_of_measurement ?? '');
+ const unit = entity.unit ?? own;
+ // A unit the card can convert to (W to kW) converts; any other is only shown (see units.ts).
+ const converted = entity.unit === undefined ? undefined : conversion(own || undefined, entity.unit);
const raw = rawValue(entity, stateObj);
- const value = toValue(raw);
+ const read = toValue(raw);
+ const value = converted && read !== null ? converted.apply(read) : read;
const available = value !== null;
let decimals: number;
if (!isUnset(entity.decimals)) decimals = entity.decimals as number;
else if (entity.attribute) decimals = available ? reportedDecimals(raw) : 0;
- else decimals = defaultDecimals(hass, entityId, unit);
- const min = resolveLimit(entity.min, hass) ?? 0;
- const max = resolveLimit(entity.max, hass) ?? 100;
- const target = resolveLimit(entity.target, hass);
- const bands = resolveBands(entity.severity, hass);
+ else if (converted && typeof hass.entities?.[entityId]?.display_precision === 'number') {
+ // The sensor's own precision, moved for the new unit's size (W at 0 is kW at 3).
+ decimals = convertedDecimals(hass.entities[entityId].display_precision as number, converted.slope);
+ } else decimals = defaultDecimals(hass, entityId, unit);
+ const min = resolveLimit(entity.min, hass, 'limit', unit) ?? 0;
+ const max = resolveLimit(entity.max, hass, 'limit', unit) ?? 100;
+ const target = resolveLimit(entity.target, hass, 'limit', unit);
+ const bands = resolveBands(entity.severity, hass, unit);
let valueText = '';
let display: string;
@@ -138,7 +167,8 @@ function resolveOne(entity: MergedEntity, hass: HomeAssistant): ResolvedEntity {
valueText = formatNumber(value, decimals, hass);
display = withUnit(valueText, unit);
} else if (!stateObj) {
- display = localize(hass, 'entity_not_found');
+ // A long-term statistic with no entity (source: energy) has no current value, but isn't missing.
+ display = isStatistic({ config: entity }) ? '' : localize(hass, 'entity_not_found');
} else {
display = statusText(entity, stateObj, raw, hass);
}
@@ -154,6 +184,7 @@ function resolveOne(entity: MergedEntity, hass: HomeAssistant): ResolvedEntity {
target,
name,
unit,
+ ...(converted ? { conversion: converted } : {}),
decimals,
position: available ? position(value, min, max) : 0,
span: available ? fillSpan(value, min, max) : [0, 0],
@@ -162,7 +193,7 @@ function resolveOne(entity: MergedEntity, hass: HomeAssistant): ResolvedEntity {
bands,
valueText,
display,
- label: `${name}, ${display}`,
+ label: display ? `${name}, ${display}` : name,
};
}
@@ -177,7 +208,7 @@ export function matchedIds(config: NormalizedConfig, hass: HomeAssistant): strin
export function resolveEntities(config: NormalizedConfig, hass: HomeAssistant): ResolvedEntity[] {
const matched = matchedIds(config, hass).map((id, i) => mergeEntity(id, config.cardOptions, i));
const resolved = [...config.entities, ...matched].map((e) => resolveOne(e, hass));
- return config.hideUnavailable ? resolved.filter((e) => e.available) : resolved;
+ return config.hideUnavailable ? resolved.filter((e) => e.available || isStatistic(e)) : resolved;
}
export function sortEntities(list: ResolvedEntity[], mode: SortMode): ResolvedEntity[] {
@@ -205,5 +236,6 @@ export function watchedEntityIds(config: NormalizedConfig): Set {
}
}
for (const band of config.legendBands) if (typeof band.from === 'string') ids.add(band.from);
+ for (const id of conditionEntities(config.entities, config.cardOptions as CardConfig)) ids.add(id);
return ids;
}
diff --git a/src/styles/area.ts b/src/styles/area.ts
index 7a3ccf4..622119f 100644
--- a/src/styles/area.ts
+++ b/src/styles/area.ts
@@ -20,6 +20,8 @@ import { chartFrame, chartLayout, headerOver, layoutStyles, validateLayout } fro
import { runPath, runs } from '../chart/paths';
import type { Curve, XY } from '../chart/paths';
import { extent } from '../chart/scale';
+import { conditionStrip, conditionStyles, ghostLines } from '../chart/condition-strip';
+import { ghostOn } from '../history/condition';
import { MAX_DOTS, dotSize, dotsPath, drawOrder, seriesStyle, validateSeriesStyle } from '../chart/series-style';
import { STACK_MODES, align, stackExtent, stackValues, totals, validateStack } from '../chart/stack';
import type { Layer, StackMode } from '../chart/stack';
@@ -37,6 +39,7 @@ import {
import type { TooltipOptions } from '../chart/tooltip';
import {
AXES_FIELDS,
+ ENERGY_SPLIT_FIELD,
HISTORY_FIELDS,
LAYOUT_FIELDS,
axesSchema,
@@ -52,6 +55,7 @@ import type { FieldBinding } from '../editor/schemas';
import { formatNumber, withUnit } from '../format';
import { CURVES } from '../chart/paths';
import { localize } from '../localize';
+import { shownValue } from '../history/energy';
import type { Point } from '../history/types';
import type { ChartContext, ChartEditorContext, ChartStyleModule } from './index';
import type { CardConfig, HomeAssistant } from '../types';
@@ -215,26 +219,29 @@ export function drawArea(
}
function render(ctx: ChartContext): TemplateResult {
- const frame: HistoryFrame = historyFrame(ctx);
+ const mode = (ctx.raw.stack as StackMode | undefined) ?? 'none';
+ // The faint line of hidden readings: unstacked only (a hidden reading has no place in a pile).
+ const frame: HistoryFrame = historyFrame(ctx, Date.now(), { ghost: mode === 'none' && ghostOn(ctx.raw) });
const nav = periodNav(frame, ctx);
const names = seriesHeader(frame, ctx);
const header = nav === nothing && names === nothing ? nothing : html`${nav}${names}`;
const message = frameMessage(frame, ctx);
const layout = chartLayout(ctx.raw);
if (message) return chartFrame(layout.header === 'over' ? { ...layout, header: 'above' } : layout, header, message);
- const mode = (ctx.raw.stack as StackMode | undefined) ?? 'none';
const thinned = frame.series.map((s) => ({ ...s, points: downsample(s.points, MAX_POINTS) }));
let shown: ChartSeries[] = thinned;
let drawn: AreaDrawing[];
let axes;
const tip: TooltipOptions = {};
+ let ghosts: SVGTemplateResult | typeof nothing = nothing;
if (mode === 'none') {
- const data = extent(thinned.map((s) => s.points));
+ const data = extent([...thinned.map((s) => s.points), ...thinned.flatMap((s) => (s.hidden ? [s.hidden] : []))]);
axes = plotAxes({ ...ctx, raw: zeroFloor(data, ctx.raw) }, frame.range, data);
const scales = axes.scales;
// Listed order, last on top, with any series marked "on top" drawn after the rest.
const ordered = drawOrder(thinned, (s) => seriesStyle(s.entity.config, ctx.raw).onTop);
drawn = ordered.map((s) => drawArea(s, s.points, scales, ctx.raw, { range: frame.range }));
+ ghosts = ghostLines(thinned, scales);
} else {
// Every series read at every moment any of them changed, then piled up.
const aligned = align(thinned.map((s) => s.points));
@@ -266,7 +273,7 @@ function render(ctx: ChartContext): TemplateResult {
const layer = p ? layers[s.index][index.get(p) ?? -1] : null;
if (!p || p.v === null || !layer) return '—';
const share = Math.round(Math.abs(layer[1] - layer[0]));
- return `${withUnit(formatNumber(p.v, s.entity.decimals, ctx.hass), s.entity.unit)} · ${share} %`;
+ return `${withUnit(formatNumber(shownValue(s.entity, p.v), s.entity.decimals, ctx.hass), s.entity.unit)} · ${share} %`;
};
}
}
@@ -281,7 +288,7 @@ function render(ctx: ChartContext): TemplateResult {
chartArea({
axes,
ctx,
- content: svg`${drawn.map((d) => d.body)}`,
+ content: svg`${ghosts}${drawn.map((d) => d.body)}`,
defs: svg`${drawn.map((d) => d.defs)}`,
label,
overlay: html`${layout.header === 'over' ? headerOver(header) : nothing}
@@ -293,12 +300,14 @@ function render(ctx: ChartContext): TemplateResult {
shown.map((s) => s.points),
)
: undefined,
+ ...conditionStrip(ctx, frame, frame.range, axes.scales),
}),
);
}
const AREA_FIELDS: FieldBinding[] = [
...HISTORY_FIELDS,
+ ENERGY_SPLIT_FIELD,
{ name: 'curve', path: ['curve'], default: 'smooth' },
{ name: 'stack', path: ['stack'], default: 'none' },
{ name: 'line_width', path: ['line_width'], default: AREA_LINE_WIDTH },
@@ -388,6 +397,7 @@ export const area: ChartStyleModule = {
${tooltipStyles}
${layoutStyles}
${areaStyles}
+ ${conditionStyles}
`,
thumbnail: () => svg`
diff --git a/src/styles/battery.ts b/src/styles/battery.ts
new file mode 100644
index 0000000..e6ce5ed
--- /dev/null
+++ b/src/styles/battery.ts
@@ -0,0 +1,163 @@
+import { css, html, nothing, svg } from 'lit';
+import type { TemplateResult } from 'lit';
+import { baseColor, bandFor } from '../bands';
+import { DEFAULT_BANDS } from '../config';
+import { localize } from '../localize';
+import type { ResolvedEntity } from '../resolve';
+import type { ResolvedBand } from '../types';
+import type { ChartContext, ChartStyleModule } from './index';
+
+/** Colours when the card sets no bands of its own: red below 20 %, amber below 40 %, green above. */
+export const BATTERY_BANDS: ResolvedBand[] = [
+ { from: -Infinity, color: 'red' },
+ { from: 20, color: 'amber' },
+ { from: 40, color: 'green' },
+];
+
+/** Narrowest a tile may get, px, before a set `columns` drops to fewer. */
+const MIN_TILE = 76;
+/** Space between tiles across, px. */
+const GAP = 8;
+/** The battery body and its terminal, px. */
+const BODY_W = 44;
+const BODY_H = 22;
+const INNER = 3;
+
+/** The colour for an entity: its own (or the card's) bands when set, else the battery defaults. */
+export function batteryColor(e: ResolvedEntity): string {
+ if (!e.available || e.value === null) return 'grey';
+ if (e.config.severity === DEFAULT_BANDS) return bandFor(e.value, BATTERY_BANDS).color;
+ return e.band.color;
+}
+
+/** The grid's columns: a set count is a maximum (tiles keep a minimum width), else as many as fit. */
+export function batteryColumns(columns: number | undefined): string {
+ if (columns === undefined) return `grid-template-columns: repeat(auto-fill, minmax(88px, 1fr))`;
+ const gaps = (columns - 1) * GAP;
+ return `grid-template-columns: repeat(auto-fill, minmax(max(min(${MIN_TILE}px, 100%), calc((100% - ${gaps}px) / ${columns} - 0.5px)), 1fr))`;
+}
+
+/** The battery glyph, filled from the left to `level` (0–1). */
+function glyph(level: number, color: string | undefined) {
+ const w = (BODY_W - INNER * 2) * Math.min(1, Math.max(0, level));
+ return svg`
+
+
+ ${
+ color && w > 0
+ ? svg` `
+ : nothing
+ }
+ `;
+}
+
+function tile(e: ResolvedEntity, index: number, ctx: ChartContext): TemplateResult {
+ const { show } = ctx.config;
+ const color = e.available ? batteryColor(e) : undefined;
+ return html`
+ ${glyph(e.available ? e.position : 0, color)}
+ ${show.value || !e.available ? html`${e.display} ` : nothing}
+ ${show.name ? html`${e.name} ` : nothing}
+
`;
+}
+
+export const battery: ChartStyleModule = {
+ layout: 'chart',
+ group: 'bars',
+ height: 230,
+ styles: css`
+ .battery-grid {
+ display: grid;
+ gap: 14px ${GAP}px;
+ padding: 4px 0;
+ }
+ .battery-grid .battery {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 3px;
+ min-width: 0;
+ padding: 4px 2px;
+ cursor: pointer;
+ }
+ .battery .glyph {
+ display: block;
+ margin-bottom: 4px;
+ overflow: visible;
+ }
+ .battery .body {
+ fill: none;
+ stroke: var(--secondary-text-color);
+ stroke-width: 1.5;
+ }
+ .battery .body.empty {
+ stroke-dasharray: 3 2;
+ opacity: 0.6;
+ }
+ .battery .cap {
+ fill: var(--secondary-text-color);
+ }
+ .battery .level {
+ transition: width var(--cd-duration) var(--cd-easing);
+ }
+ :host(:not([ready])) .battery .level {
+ width: 0;
+ }
+ :host([static]) .battery .level {
+ transition: none;
+ }
+ .battery-value {
+ font-size: 14px;
+ font-weight: 500;
+ color: var(--primary-text-color);
+ white-space: nowrap;
+ }
+ .battery.unavailable .battery-value {
+ font-weight: 400;
+ font-size: 12px;
+ color: var(--secondary-text-color);
+ }
+ .battery-name {
+ max-width: 100%;
+ font-size: 12px;
+ color: var(--secondary-text-color);
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+ `,
+ thumbnail: () => svg`
+ ${[
+ [4, 4, 0.9, 'var(--success-color, #43a047)'],
+ [34, 4, 0.55, 'var(--success-color, #43a047)'],
+ [4, 23, 0.3, 'var(--warning-color, #f59e0b)'],
+ [34, 23, 0.12, 'var(--error-color, #db4437)'],
+ ].map(
+ ([x, y, f, c]) => svg`
+
+
+ `,
+ )}`,
+ render(ctx) {
+ const levels = ctx.items.map((e) => e.label).join(', ');
+ return html`
+ ${ctx.items.map((e, i) => tile(e, i, ctx))}
+
`;
+ },
+};
diff --git a/src/styles/beeswarm.ts b/src/styles/beeswarm.ts
index f8b5add..19c07b9 100644
--- a/src/styles/beeswarm.ts
+++ b/src/styles/beeswarm.ts
@@ -16,7 +16,7 @@ import {
validateCategoryOptions,
} from '../chart/category-plot';
import type { Category, CategoryGeometry, ValueScale } from '../chart/category-plot';
-import { readingsOf, sampleReadings, summarize } from '../chart/density';
+import { dotReadings, sampleReadings, summarize } from '../chart/density';
import type { Reading } from '../chart/density';
import {
disconnectHistory,
@@ -109,6 +109,8 @@ interface Row {
values: number[];
total: number;
events: boolean;
+ /** The value the sensor held all period, when it took no reading in it (see `dotReadings`). */
+ held?: number;
}
function rowsOf(frame: ReturnType, o: SwarmOptions, now: number): Row[] {
@@ -116,24 +118,32 @@ function rowsOf(frame: ReturnType, o: SwarmOptions, now: nu
return frame.series.map((series) => {
const events = o.placeBy === 'time_of_day' && ON_OFF.test(series.entity.entityId);
let readings: Reading[];
+ let held: number | undefined;
if (events) {
readings = onEvents(series.points).map((p) => ({ t: p.t, v: 1, w: 1, real: true }));
} else {
- // Dots are readings taken in the period: not the value carried in, nor the edge copy.
- readings = readingsOf(series.points, frame.source === 'history' && !frame.group, until).filter((r) => r.real);
+ // Dots are readings taken in the period, or the one value a sensor held all period.
+ ({ readings, held } = dotReadings(series.points, frame.source === 'history' && !frame.group, until));
+ // Held all period, it was read at no time of day: no dot on a clock axis.
+ if (held !== undefined && o.placeBy === 'time_of_day') readings = [];
}
const shown = sampleReadings(readings, MAX_DOTS);
return {
series,
positions: shown.map((r) => (o.placeBy === 'time_of_day' ? hourOfDay(r.t, frame.zone.timeZone) : r.v)),
values: shown.map((r) => r.v),
- total: readings.length,
+ total: held === undefined ? readings.length : 0,
events,
+ ...(held === undefined ? {} : { held }),
};
});
}
function detail(row: Row, hass: HomeAssistant | undefined): string {
+ if (row.held !== undefined) {
+ const value = withUnit(formatNumber(row.held, row.series.entity.decimals, hass), row.series.entity.unit);
+ return localize(hass, 'swarm_no_change', { value });
+ }
if (row.total === 0) return localize(hass, 'swarm_none');
const n = formatNumber(row.total, 0, hass);
const count = localize(hass, row.events ? 'swarm_events' : 'swarm_readings', { n });
@@ -172,6 +182,7 @@ function tooltipRows(row: Row, scale: ValueScale, clock: boolean, hass: HomeAssi
if (!s) return [];
const f = (v: number) =>
clock ? scale.format(v) : withUnit(formatNumber(v, row.series.entity.decimals, hass), row.series.entity.unit);
+ if (row.held !== undefined) return [[localize(hass, 'swarm_held'), f(row.held)]];
return [
[localize(hass, 'dist_count'), formatNumber(row.total, 0, hass)],
...(row.positions.length < row.total
@@ -323,7 +334,7 @@ export const beeswarm: ChartStyleModule = {
label,
hover: tooltip,
overlay:
- hovered && hovered.total > 0 && at !== undefined
+ hovered && hovered.positions.length > 0 && at !== undefined
? bandTooltip(
geometry,
at,
diff --git a/src/styles/box-plot.ts b/src/styles/box-plot.ts
index 5b510c1..4eb1ed0 100644
--- a/src/styles/box-plot.ts
+++ b/src/styles/box-plot.ts
@@ -13,12 +13,14 @@ import {
frameStyles,
periodNav,
seriesHeader,
+ seriesTransform,
validateHistoryOptions,
} from '../chart/frame';
import type { ChartSeries, HistoryFrame } from '../chart/frame';
import { chartArea, chartWidth, gridStyles, plotWidth, stopChartWidth } from '../chart/grid';
import type { PlotAxes } from '../chart/grid';
import { chartFrame, chartLayout, headerOver, layoutStyles, validateLayout } from '../chart/layout';
+import { withLegend } from '../chart/legend-toggle';
import { linear } from '../chart/scale';
import { dotsPath } from '../chart/series-style';
import { tooltipEnabled, tooltipStyles, validateTooltipOptions } from '../chart/tooltip';
@@ -45,6 +47,8 @@ import { parseGrouping } from '../history/group';
import type { GroupUnit } from '../history/group';
import { parsePeriod, periodRange, stepsFor } from '../history/period';
import { storeFor } from '../history/store';
+import { convertPoints } from '../units';
+import { chartConditions, conditionStatus, conditionalPoints } from '../history/condition';
import { boundaries, startOf, zoneFor } from '../history/timezone';
import type { Range, Source } from '../history/types';
import { localize } from '../localize';
@@ -105,19 +109,28 @@ export function boxFrame(ctx: ChartContext, now = Date.now()): BoxFrame {
live: span.live,
statistics,
});
+ // Series with a `when` (their own or the card's) keep only the readings taken while it held.
+ const conditions = chartConditions(ctx, range, span.live);
const series = ctx.items.map((entity, index): ChartSeries => {
const own = entity.config as typeof entity.config & { color?: string };
return {
index,
entity,
- points: loaded.data.get(key(requests[index])) ?? [],
+ points: conditionalPoints(
+ entity.config,
+ convertPoints(loaded.data.get(key(requests[index])) ?? [], entity.conversion),
+ conditions,
+ ),
color: baseColor(own.color ?? SERIES_COLORS[index % SERIES_COLORS.length]),
curve: 'straight',
dash: false,
};
});
+ // Each entity's history transform (running total, rate of change), on its readings before boxing.
+ const until = Math.min(range.end, now);
+ for (const s of series) Object.assign(s, seriesTransform(s.entity, s.points, range, until, zone, ctx.hass));
return {
- status: loaded.status,
+ status: conditionStatus(loaded.status, conditions),
error: loaded.error,
range,
period,
@@ -128,7 +141,7 @@ export function boxFrame(ctx: ChartContext, now = Date.now()): BoxFrame {
zone,
bounds: group ? boundaries(group.unit, range.start, range.end, zone) : [],
unit: group?.unit,
- until: Math.min(range.end, now),
+ until,
};
}
@@ -417,7 +430,7 @@ export const box: ChartStyleModule = {
stopPick(host);
},
render(ctx) {
- const frame = boxFrame(ctx);
+ const frame = withLegend(boxFrame(ctx), ctx);
const nav = periodNav(frame, ctx);
const names = seriesHeader(frame, ctx);
const header = nav === nothing && names === nothing ? nothing : html`${nav}${names}`;
diff --git a/src/styles/candlestick.ts b/src/styles/candlestick.ts
index 0365512..1708094 100644
--- a/src/styles/candlestick.ts
+++ b/src/styles/candlestick.ts
@@ -13,11 +13,13 @@ import {
frameStyles,
periodNav,
seriesHeader,
+ seriesTransform,
validateHistoryOptions,
} from '../chart/frame';
import type { ChartSeries, HistoryFrame } from '../chart/frame';
import { chartArea, gridStyles, plotAxes, plotWidth, stopChartWidth } from '../chart/grid';
import { chartFrame, chartLayout, headerOver, layoutStyles, validateLayout } from '../chart/layout';
+import { withLegend } from '../chart/legend-toggle';
import { runPath, runs } from '../chart/paths';
import { linear } from '../chart/scale';
import {
@@ -48,6 +50,8 @@ import { AGGREGATES, GROUP_UNITS } from '../history/group';
import type { Aggregate, GroupUnit } from '../history/group';
import { parsePeriod, periodRange, stepsFor } from '../history/period';
import { storeFor } from '../history/store';
+import { convertPoints } from '../units';
+import { chartConditions, conditionStatus, conditionalPoints } from '../history/condition';
import { boundaries, startOf, zoneFor } from '../history/timezone';
import type { Zone } from '../history/timezone';
import type { Point, Range, Source } from '../history/types';
@@ -121,21 +125,31 @@ function candleFrame(ctx: ChartContext, now = Date.now()): CandleFrame {
const store = storeFor(ctx.host, ctx.requestUpdate);
const statistics = source === 'statistics' ? candleQuery(unit, zone, ctx.hass.config?.time_zone) : undefined;
const loaded = store.get(ctx.hass, requests, { start, end: span.end }, source, { live: span.live, statistics });
+ // Series with a `when` (their own or the card's) keep only the readings taken while it held.
+ const conditions = chartConditions(ctx, { start, end: span.end }, span.live);
let candles: (Candle | null)[] = [];
const series = ctx.items.map((entity, index): ChartSeries => {
const own = entity.config as typeof entity.config & { color?: string };
- const points = loaded.data.get(key(requests[index])) ?? [];
+ const points = conditionalPoints(
+ entity.config,
+ convertPoints(loaded.data.get(key(requests[index])) ?? [], entity.conversion),
+ conditions,
+ );
let grouped: Point[];
+ // The entity's history transform (running total, rate of change), before the readings are grouped.
+ const shown = seriesTransform(entity, points, range, until, zone, ctx.hass);
if (index === 0) {
candles =
- source === 'statistics' ? statisticsCandles(points, bounds, until) : historyCandles(points, bounds, until);
+ source === 'statistics'
+ ? statisticsCandles(shown.points, bounds, until)
+ : historyCandles(shown.points, bounds, until);
grouped = candles.map((c, i) => ({ t: bounds[i], end: bounds[i + 1], v: c ? c.close : null }));
} else {
- grouped = underValues(points, bounds, aggregate, source, until);
+ grouped = underValues(shown.points, bounds, aggregate, source, until);
}
return {
index,
- entity,
+ entity: shown.entity,
points: grouped,
color: baseColor(own.color ?? (index === 0 ? SERIES_COLORS[0] : 'grey')),
curve: 'smooth',
@@ -143,7 +157,7 @@ function candleFrame(ctx: ChartContext, now = Date.now()): CandleFrame {
};
});
return {
- status: loaded.status,
+ status: conditionStatus(loaded.status, conditions),
error: loaded.error,
range,
period,
@@ -362,7 +376,8 @@ export const candlestick: ChartStyleModule = {
stopHover(host);
},
render(ctx) {
- const frame = candleFrame(ctx);
+ // The candles' own entity is always drawn: hiding it would leave nothing to read the rest against.
+ const frame = withLegend(candleFrame(ctx), ctx, (s) => s.index === 0);
const nav = periodNav(frame, ctx);
const names = seriesHeader(frame, ctx);
const header = nav === nothing && names === nothing ? nothing : html`${nav}${names}`;
diff --git a/src/styles/chord.ts b/src/styles/chord.ts
new file mode 100644
index 0000000..bd711cb
--- /dev/null
+++ b/src/styles/chord.ts
@@ -0,0 +1,388 @@
+import { css, html, nothing, svg } from 'lit';
+import type { SVGTemplateResult, TemplateResult } from 'lit';
+import { isInteractive } from '../actions';
+import { baseColor } from '../bands';
+import { chordLayout, ribbonPath, ringPath } from '../chart/chord';
+import type { ChordLayout, ChordNode, ChordRibbon, ChordSort } from '../chart/chord';
+import { SERIES_COLORS, frameStyles } from '../chart/frame';
+import { chartWidth, stopChartWidth } from '../chart/grid';
+import { fitText, textWidth } from '../chart/sankey';
+import { tooltipStyles } from '../chart/tooltip';
+import { cachedSchema, chartForm } from '../editor/chart-editors';
+import type { FieldBinding } from '../editor/schemas';
+import { formatNumber, withUnit } from '../format';
+import { polar } from '../geometry';
+import { localize } from '../localize';
+import type { CardConfig, EntityConfig, HomeAssistant } from '../types';
+import type { ChartContext, ChartEditorContext, ChartStyleModule } from './index';
+import { flowsOf } from './sankey';
+
+/** Degrees between neighbouring nodes, unless `pad` says otherwise. */
+export const DEFAULT_PAD = 3;
+/** The node ring's thickness, and the space between it and the ribbons, px. */
+const RING = 10;
+const INSET = 2;
+/** Space between the ring and its labels, px. */
+const LABEL_GAP = 8;
+const FONT = 12;
+const LINE = FONT + 3;
+const MIN_R = 50;
+const MAX_R = 120;
+
+type FlowEntity = EntityConfig & { color?: unknown };
+
+/** Which ribbon (by item index) or node (by name) the pointer or focus is on, per card. */
+const hovered = new WeakMap();
+
+/** Nodes take the series colours in order of first appearance; a ribbon its own `color`, else its source's. */
+export function chordColors(
+ layout: ChordLayout,
+ own: (index: number) => string | undefined,
+): { node: Map; ribbon: Map } {
+ const node = new Map();
+ for (const n of [...layout.nodes].sort((a, b) => a.order - b.order)) {
+ node.set(n.name, baseColor(SERIES_COLORS[n.order % SERIES_COLORS.length]));
+ }
+ const ribbon = new Map();
+ for (const r of layout.ribbons) {
+ const c = own(r.flow.index);
+ ribbon.set(r.flow.index, c ? baseColor(c) : node.get(r.source.name)!);
+ }
+ return { node, ribbon };
+}
+
+export interface ChordLabel {
+ node: ChordNode;
+ x: number;
+ y: number;
+ anchor: 'start' | 'middle' | 'end';
+ name: string;
+ value: string;
+}
+
+export interface ChordDrawing {
+ width: number;
+ height: number;
+ cx: number;
+ cy: number;
+ r: number;
+ labels: ChordLabel[];
+}
+
+/**
+ * Size the circle to the card: as big as fits with the labels beside it (each at most a quarter
+ * of the width; longer names are cut short), and a label outside each arc's middle.
+ */
+export function drawChord(
+ layout: ChordLayout,
+ width: number,
+ text: { name: boolean; value: boolean; format(v: number): string },
+): ChordDrawing {
+ const words = (n: ChordNode) => ({ name: text.name ? n.name : '', value: text.value ? text.format(n.total) : '' });
+ const room = width / 4;
+ const wanted = Math.max(
+ 0,
+ ...layout.nodes.map((n) => Math.max(textWidth(words(n).name, FONT), textWidth(words(n).value, FONT))),
+ );
+ const side = text.name || text.value ? Math.min(room, wanted) + LABEL_GAP : 4;
+ const r = Math.max(MIN_R, Math.min(MAX_R, width / 2 - side));
+ const lines = (text.name ? 1 : 0) + (text.value ? 1 : 0);
+ const above = lines ? LABEL_GAP + lines * LINE : 4;
+ const height = Math.round(2 * (r + above));
+ const cx = width / 2;
+ const cy = height / 2;
+ const labels: ChordLabel[] = [];
+ if (lines) {
+ for (const n of layout.nodes) {
+ const mid = (n.start + n.end) / 2;
+ const [x, y] = polar(cx, cy, r + LABEL_GAP, mid);
+ const sin = Math.sin((mid * Math.PI) / 180);
+ const cos = Math.cos((mid * Math.PI) / 180);
+ const anchor = sin > 0.3 ? 'start' : sin < -0.3 ? 'end' : 'middle';
+ const space =
+ anchor === 'middle' ? Math.min(width, 2 * Math.min(x, width - x)) : anchor === 'start' ? width - x : x;
+ const w = words(n);
+ // Top labels sit above their point, bottom ones below, side ones centred on it.
+ const block = lines * LINE;
+ const top = cos > 0.3 ? y - block : cos < -0.3 ? y : y - block / 2;
+ labels.push({
+ node: n,
+ x,
+ y: top + FONT,
+ anchor,
+ name: fitText(w.name, space - 2, FONT),
+ value: textWidth(w.value, FONT) <= space ? w.value : '',
+ });
+ }
+ }
+ return { width, height, cx, cy, r, labels };
+}
+
+function labelText(l: ChordLabel): SVGTemplateResult {
+ return svg`
+ ${l.name ? svg`${l.name} ` : nothing}
+ ${
+ l.value
+ ? svg`${l.value} `
+ : nothing
+ }
+ `;
+}
+
+function tooltip(r: ChordRibbon | undefined, d: ChordDrawing, color: string, value: string) {
+ if (!r) return nothing;
+ const inner = d.r - RING - INSET;
+ const [ax, ay] = polar(d.cx, d.cy, inner, (r.s.start + r.s.end) / 2);
+ const [bx, by] = polar(d.cx, d.cy, inner, (r.t.start + r.t.end) / 2);
+ // Halfway along the ribbon's curve: a quarter of each end plus half the centre.
+ const x = (ax + bx) / 4 + d.cx / 2;
+ const y = (ay + by) / 4 + d.cy / 2;
+ const left = Math.min(Math.max(x, 70), d.width - 70);
+ return html``;
+}
+
+function message(key: string, hass: HomeAssistant) {
+ return html`${localize(hass, key)}
`;
+}
+
+function render(ctx: ChartContext): TemplateResult {
+ const flows = flowsOf(ctx);
+ if (!flows.length) return message('sankey_no_flows', ctx.hass);
+ const pad = typeof ctx.raw.pad === 'number' ? ctx.raw.pad : DEFAULT_PAD;
+ const layout = chordLayout(flows, pad, ctx.config.sort as ChordSort);
+ if (!layout.ribbons.length) return message('sankey_nothing', ctx.hass);
+ // Unit and decimals come from the first flow, like a total's.
+ const first = ctx.items[flows[0].index];
+ const format = (v: number) => withUnit(formatNumber(v, first.decimals, ctx.hass), first.unit);
+ const width = Math.max(200, chartWidth(ctx) - 32);
+ const { show } = ctx.config;
+ const d = drawChord(layout, width, { name: show.name, value: show.value, format });
+ const colors = chordColors(layout, (i) => {
+ const c = (ctx.items[i].config as FlowEntity).color;
+ return typeof c === 'string' && c ? c : undefined;
+ });
+ const state = hovered.get(ctx.host) ?? {};
+ const set = (next: { ribbon?: number; node?: string } | undefined) => () => {
+ if (next) hovered.set(ctx.host, next);
+ else hovered.delete(ctx.host);
+ ctx.requestUpdate();
+ };
+ const shown = layout.ribbons.find((r) => r.flow.index === state.ribbon);
+ const lit = (r: ChordRibbon) =>
+ r === shown || (state.node !== undefined && (r.source.name === state.node || r.target.name === state.node));
+ const dark = ctx.hass.themes?.darkMode === true;
+ const describe = (r: ChordRibbon) =>
+ localize(ctx.hass, 'sankey_flow', { from: r.flow.from, to: r.flow.to, value: format(r.value) });
+ const label = localize(ctx.hass, 'chord_aria', { flows: layout.ribbons.map(describe).join(', ') });
+ const opacity = typeof ctx.raw.ribbon_opacity === 'number' ? ctx.raw.ribbon_opacity : undefined;
+ const inner = d.r - RING - INSET;
+
+ const ribbons = layout.ribbons.map((r) => {
+ const e = ctx.items[r.flow.index];
+ const interactive = isInteractive(e.config);
+ return svg`
+ ${describe(r)}
+
+ `;
+ });
+ const nodes = layout.nodes.map(
+ (n) =>
+ svg`${n.name} ${format(n.total)} `,
+ );
+ const hovering = shown !== undefined || state.node !== undefined;
+ return html`
+
+ ${ribbons}
+ ${nodes}
+ ${d.labels.map(labelText)}
+
+ ${tooltip(shown, d, shown ? colors.ribbon.get(shown.flow.index)! : '', shown ? format(shown.value) : '')}
+
`;
+}
+
+const FIELDS: FieldBinding[] = [
+ { name: 'chord_pad', path: ['pad'], default: DEFAULT_PAD },
+ { name: 'chord_ribbon_opacity', path: ['ribbon_opacity'] },
+];
+
+export function chordEditor(ctx: ChartEditorContext): TemplateResult {
+ const schema = cachedSchema('chord', ctx.hass, () => [
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ {
+ name: 'chord_pad',
+ selector: { number: { min: 0, max: 20, step: 1, mode: 'box', unit_of_measurement: '°' } },
+ },
+ { name: 'chord_ribbon_opacity', selector: { number: { min: 0.05, max: 1, step: 0.05, mode: 'slider' } } },
+ ],
+ },
+ ]);
+ return chartForm(ctx, 'chart', schema, FIELDS);
+}
+
+/** Same per-entity fields as the Sankey, so a card can switch between the two and keep its flows. */
+const ENTITY_FIELDS: FieldBinding[] = [
+ { name: 'from', path: ['from'], default: '' },
+ { name: 'to', path: ['to'], default: '' },
+ { name: 'flow_color', path: ['color'] },
+];
+const ENTITY_SCHEMA = [
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'from', selector: { text: {} } },
+ { name: 'to', selector: { text: {} } },
+ ],
+ },
+ { name: 'flow_color', selector: { text: {} } },
+];
+
+/** Readable errors for the options this style reads. Flows may go both ways and round in loops. */
+export function validateChord(raw: CardConfig): void {
+ if (raw.pad !== undefined && (typeof raw.pad !== 'number' || !(raw.pad >= 0 && raw.pad <= 20))) {
+ throw new Error('"pad" must be a number of degrees from 0 to 20');
+ }
+ if (
+ raw.ribbon_opacity !== undefined &&
+ (typeof raw.ribbon_opacity !== 'number' || !(raw.ribbon_opacity > 0 && raw.ribbon_opacity <= 1))
+ ) {
+ throw new Error('"ribbon_opacity" must be a number above 0, up to 1');
+ }
+ (raw.entities ?? []).forEach((e, i) => {
+ if (typeof e !== 'object' || e === null) return;
+ const own = e as { from?: unknown; to?: unknown };
+ for (const key of ['from', 'to'] as const) {
+ if (own[key] !== undefined && typeof own[key] !== 'string') {
+ throw new Error(`Entity ${i + 1}: "${key}" must be a node name`);
+ }
+ }
+ const from = typeof own.from === 'string' ? own.from.trim() : '';
+ const to = typeof own.to === 'string' ? own.to.trim() : '';
+ if (from && to && from === to) throw new Error(`Entity ${i + 1}: "from" and "to" must be different nodes`);
+ });
+}
+
+export const chord: ChartStyleModule = {
+ layout: 'chart',
+ group: 'totals',
+ height: 300,
+ styles: css`
+ ${frameStyles}
+ ${tooltipStyles}
+ .chord-wrap {
+ position: relative;
+ }
+ .chord {
+ display: block;
+ width: 100%;
+ height: auto;
+ overflow: visible;
+ --cd-ribbon-opacity: 0.35;
+ }
+ .chord.dark {
+ --cd-ribbon-opacity: 0.45;
+ }
+ .chord .ribbon path {
+ fill-opacity: var(--cd-ribbon-opacity);
+ transition:
+ fill-opacity 0.15s ease,
+ opacity var(--cd-duration) var(--cd-easing);
+ }
+ .chord.hovering .ribbon path {
+ fill-opacity: calc(var(--cd-ribbon-opacity) * 0.4);
+ }
+ .chord .ribbon:hover path,
+ .chord .ribbon:focus-visible path,
+ .chord .ribbon.active path {
+ fill-opacity: 0.8;
+ }
+ .chord .ribbon {
+ cursor: pointer;
+ outline: none;
+ }
+ .chord .ribbon:focus-visible {
+ box-shadow: none;
+ }
+ .chord .node {
+ transition: opacity var(--cd-duration) var(--cd-easing);
+ }
+ :host(:not([ready])) .chord .ribbon path,
+ :host(:not([ready])) .chord .node {
+ opacity: 0;
+ }
+ :host([static]) .chord .ribbon path,
+ :host([static]) .chord .node {
+ transition: none;
+ }
+ .chord .label {
+ pointer-events: none;
+ }
+ .chord .name {
+ fill: var(--primary-text-color);
+ }
+ .chord .value {
+ fill: var(--secondary-text-color);
+ }
+ .chord-tip {
+ pointer-events: none;
+ white-space: nowrap;
+ max-width: none;
+ transform: translate(-50%, calc(-100% - 6px));
+ }
+ `,
+ thumbnail: () => svg`
+
+
+
+
+
+
+
+
+
+
+ `,
+ validate: validateChord,
+ editor: chordEditor,
+ entityFields: () => ({ schema: ENTITY_SCHEMA, fields: ENTITY_FIELDS }),
+ disconnect(host) {
+ stopChartWidth(host);
+ hovered.delete(host);
+ },
+ render,
+};
diff --git a/src/styles/climate.ts b/src/styles/climate.ts
index c9401b8..c3c54df 100644
--- a/src/styles/climate.ts
+++ b/src/styles/climate.ts
@@ -43,6 +43,8 @@ import type { Point, Range } from '../history/types';
import { localize } from '../localize';
import type { ResolvedEntity } from '../resolve';
import type { CardConfig, HomeAssistant } from '../types';
+import { conversion, convertPoints } from '../units';
+import type { Conversion } from '../units';
import type { ChartContext, ChartStyleModule } from './index';
/** Room-temperature points kept after thinning: about two per pixel on a wide card. */
@@ -110,20 +112,33 @@ export function actionLabel(hass: HomeAssistant | undefined, entity: ResolvedEnt
return own === `climate_action_${action}` ? action : own;
}
-interface Temps {
+export interface Temps {
unit: string;
decimals: number;
+ /** Set when the card's `unit` converts Home Assistant's temperature unit (°F to °C). */
+ conversion?: Conversion;
+ /** A temperature attribute (in Home Assistant's unit) in the shown unit; anything else as it was. */
+ convert(v: unknown): unknown;
+ /** A temperature already in the shown unit as text, or a dash. */
text(v: unknown): string;
}
-/** How this thermostat's temperatures are written: the card's unit and decimals, else HA's unit and one decimal. */
-function temps(entity: ResolvedEntity, hass: HomeAssistant): Temps {
+/**
+ * How this thermostat's temperatures are written: the card's unit and decimals, else HA's unit and
+ * one decimal. A thermostat reports its temperatures in Home Assistant's unit system, so a `unit`
+ * in the same family converts them (°F to °C, as `unit` does on a sensor); any other is only shown.
+ */
+export function temps(entity: ResolvedEntity, hass: HomeAssistant): Temps {
const system = (hass.config as { unit_system?: { temperature?: string } } | undefined)?.unit_system;
- const unit = entity.config.unit ?? system?.temperature ?? '°C';
+ const own = system?.temperature ?? '°C';
+ const unit = entity.config.unit ?? own;
const decimals = entity.config.decimals ?? 1;
+ const c = conversion(own, entity.config.unit);
return {
unit,
decimals,
+ ...(c ? { conversion: c } : {}),
+ convert: (v) => (c && typeof v === 'number' && Number.isFinite(v) ? c.apply(v) : v),
text: (v) => (typeof v === 'number' && Number.isFinite(v) ? withUnit(formatNumber(v, decimals, hass), unit) : '—'),
};
}
@@ -159,7 +174,7 @@ function header(ctx: ChartContext, entity: ResolvedEntity, options: ClimateOptio
${item(
html` `,
entity.name,
- live ? t.text(attrs[CLIMATE_ATTRIBUTES.current]) : entity.display,
+ live ? t.text(t.convert(attrs[CLIMATE_ATTRIBUTES.current])) : entity.display,
)}
${
options.setPoint && live
@@ -168,9 +183,9 @@ function header(ctx: ChartContext, entity: ResolvedEntity, options: ClimateOptio
localize(ctx.hass, 'climate_set_point'),
setPointText(
t,
- attrs[CLIMATE_ATTRIBUTES.target],
- attrs[CLIMATE_ATTRIBUTES.low],
- attrs[CLIMATE_ATTRIBUTES.high],
+ t.convert(attrs[CLIMATE_ATTRIBUTES.target]),
+ t.convert(attrs[CLIMATE_ATTRIBUTES.low]),
+ t.convert(attrs[CLIMATE_ATTRIBUTES.high]),
ctx.hass,
),
)
@@ -355,7 +370,12 @@ export const climate: ChartStyleModule = {
const loaded = storeFor(ctx.host, ctx.requestUpdate).get(ctx.hass, Object.values(requests), range, 'history', {
live: span.live,
});
- const data = climateData(loaded.data, requests, Math.min(range.end, now), key);
+ const read = climateData(loaded.data, requests, Math.min(range.end, now), key);
+ // The temperatures' history in the shown unit too; the action is words.
+ const temp = (points: Point[]) => convertPoints(points, t.conversion);
+ const data: ClimateData = t.conversion
+ ? { ...read, current: temp(read.current), target: temp(read.target), low: temp(read.low), high: temp(read.high) }
+ : read;
const frame: HistoryFrame = {
status: loaded.status,
error: loaded.error,
diff --git a/src/styles/column.ts b/src/styles/column.ts
index 4998760..fe9ed9a 100644
--- a/src/styles/column.ts
+++ b/src/styles/column.ts
@@ -1,4 +1,6 @@
import { css, html, nothing, svg } from 'lit';
+import { nowMarkerLayer, nowMarkerStyles, stopNowMarker, validateNowMarker } from '../chart/now-marker';
+import { NOW_MARKER_FIELDS, nowMarkerSchema } from '../editor/now-marker-editor';
import type { TemplateResult } from 'lit';
import { baseColor, bandFor } from '../bands';
import { formatDateTime, formatTime, timeLabel, timeZoneOf, validateAxisOptions } from '../chart/axes';
@@ -15,6 +17,16 @@ import {
zeroBased,
} from '../chart/columns';
import type { ColumnTable } from '../chart/columns';
+import {
+ ERROR_BARS,
+ errorBarStyles,
+ errorBarsOf,
+ fitsAggregate,
+ validateErrorBars,
+ whiskerMark,
+ whiskersFor,
+} from '../chart/error-bars';
+import type { Whisker } from '../chart/error-bars';
import {
VIEW_H,
VIEW_W,
@@ -46,6 +58,7 @@ import {
import type { TooltipOptions } from '../chart/tooltip';
import {
AXES_FIELDS,
+ ENERGY_SPLIT_FIELD,
HISTORY_FIELDS,
LAYOUT_FIELDS,
axesSchema,
@@ -58,7 +71,8 @@ import {
} from '../editor/chart-editors';
import type { FieldBinding } from '../editor/schemas';
import { formatNumber, withUnit } from '../format';
-import type { GroupUnit } from '../history/group';
+import { shownValue } from '../history/energy';
+import type { Aggregate, GroupUnit } from '../history/group';
import type { Point } from '../history/types';
import { localize } from '../localize';
import type { CardConfig, HomeAssistant } from '../types';
@@ -77,6 +91,7 @@ const isColumnGroup = (v: unknown) => COLUMN_GROUPS.includes(v as (typeof COLUMN
/** Check the column chart's options, with its own grouping choices taken out first. */
function validate(raw: CardConfig): void {
+ validateNowMarker(raw);
if (raw.group_by !== undefined && !isColumnGroup(raw.group_by)) {
throw new Error(`"group_by" must be one of: ${COLUMN_GROUPS.join(', ')}`);
}
@@ -91,6 +106,7 @@ function validate(raw: CardConfig): void {
validateTooltipOptions(raw);
validateLayout(raw);
validateStack(raw);
+ validateErrorBars(raw);
for (const k of ['range', 'rounded', 'labels']) {
if (raw[k] !== undefined && typeof raw[k] !== 'boolean') throw new Error(`"${k}" must be true or false`);
}
@@ -177,6 +193,7 @@ function drawColumns(
scales: PlotScales,
mode: StackMode,
layers: Layer[][] | undefined,
+ whiskers?: (Whisker | null)[][],
): Drawn {
const raw = ctx.raw;
const series = frame.series;
@@ -253,8 +270,11 @@ function drawColumns(
),
);
if (showLabels && width * px >= LABEL_PX) {
- out.labels.push(valueLabel(ctx, left + width / 2, scales.y(v), v, s.entity.decimals, v < baseline));
+ const shown = shownValue(s.entity, v);
+ out.labels.push(valueLabel(ctx, left + width / 2, scales.y(v), shown, s.entity.decimals, v < baseline));
}
+ const whisker = whiskers?.[k][i];
+ if (whisker) out.columns.push(whiskerMark(scales, left + width / 2, width * 0.4, whisker));
}
if (showTargets && s.entity.target !== null) out.targets.push(targetMark(scales, left, width, s.entity.target));
});
@@ -267,7 +287,22 @@ function render(ctx0: ChartContext): TemplateResult {
const ctx = { ...ctx0, raw: columnRaw(ctx0.raw, ctx0.items) };
const raw = ctx.raw;
const range = raw.range === true;
- const frame = historyFrame(ctx, Date.now(), { range });
+ // Error bars: on side-by-side grouped columns whose aggregate they fit (see error-bars.ts).
+ const errorMode = errorBarsOf(raw);
+ const errorBars =
+ errorMode &&
+ !range &&
+ (raw.stack ?? 'none') === 'none' &&
+ raw.group_by !== undefined &&
+ fitsAggregate(errorMode, raw.aggregate as Aggregate)
+ ? errorMode
+ : undefined;
+ const now = Date.now();
+ const frame = historyFrame(ctx, now, {
+ // Statistics only give a group's lows and highs, and keep its hourly rows, when asked.
+ range: range || errorBars === 'min_max',
+ hourly: errorBars !== undefined && raw.source === 'statistics',
+ });
const nav = periodNav(frame, ctx);
const names = seriesHeader(frame, ctx);
const header = nav === nothing && names === nothing ? nothing : html`${nav}${names}`;
@@ -285,12 +320,26 @@ function render(ctx0: ChartContext): TemplateResult {
const xRange =
group && table.ends.length ? { ...frame.range, end: Math.max(frame.range.end, ...table.ends) } : frame.range;
const layers = mode === 'none' ? undefined : stackValues(table.values, mode);
+ const whiskers =
+ errorBars && group
+ ? frame.series.map((s) =>
+ whiskersFor(
+ s.readings ?? [],
+ table.times,
+ table.ends,
+ errorBars,
+ frame.source === 'statistics',
+ Math.min(frame.range.end, now),
+ ),
+ )
+ : undefined;
+ const reach = (whiskers ?? []).flat().flatMap((w) => (w ? [w.lo, w.hi] : []));
const targets = frame.series.map((s) => s.entity.target).filter((t): t is number => t !== null);
let data: [number, number] | undefined;
if (layers) data = stackExtent(layers);
else if (range)
data = spread([...table.lows.flat(), ...table.highs.flat(), ...table.values.flat(), ...targets], false);
- else data = spread([...table.values.flat(), ...(ctx.config.show.target ? targets : [])]);
+ else data = spread([...table.values.flat(), ...reach, ...(ctx.config.show.target ? targets : [])]);
let fixed = raw;
if (mode === 'percent') fixed = { y_min: data![0] < 0 ? -100 : 0, y_max: data![1] > 0 ? 100 : 0, ...raw };
else if (!range && data) fixed = zeroBased(data, raw);
@@ -311,7 +360,7 @@ function render(ctx0: ChartContext): TemplateResult {
label: (c) => timeLabel(table.times[slotOf.get(c)!], unit, span, ctx.hass),
};
}
- const drawn = drawColumns(ctx, frame, table, scales, mode, layers);
+ const drawn = drawColumns(ctx, frame, table, scales, mode, layers, whiskers);
// The tooltip reads each series at the middle of each slot.
const shown: ChartSeries[] = frame.series.map((s, k) => ({
...s,
@@ -336,6 +385,18 @@ function render(ctx0: ChartContext): TemplateResult {
return withUnit(`${fmt(lo, s)} – ${fmt(hi, s)}`, s.entity.unit);
};
}
+ if (whiskers) {
+ // Whiskers follow the drawn series' order; a series' index is its place among the card's
+ // entities, which differs once names hide some (legend_toggle).
+ const whiskersOf = new Map(frame.series.map((s, k) => [s.index, whiskers[k]]));
+ tip.text = (s, p) => {
+ if (!p || p.v === null) return '—';
+ const w = whiskersOf.get(s.index)?.[slotOf.get(p.t) ?? -1];
+ const value = withUnit(fmt(p.v, s), s.entity.unit);
+ if (!w) return value;
+ return localize(ctx.hass, 'error_bars_tooltip', { value, low: fmt(w.lo, s), high: fmt(w.hi, s) });
+ };
+ }
if (layers) {
const sums = totals(table.values);
const unit = sharedUnit(shown);
@@ -345,7 +406,7 @@ function render(ctx0: ChartContext): TemplateResult {
tip.text = (s, p) => {
const layer = p ? layers[s.index][slotOf.get(p.t) ?? -1] : null;
if (!p || p.v === null || !layer) return '—';
- return `${withUnit(fmt(p.v, s), s.entity.unit)} · ${Math.round(Math.abs(layer[1] - layer[0]))} %`;
+ return `${withUnit(fmt(shownValue(s.entity, p.v), s), s.entity.unit)} · ${Math.round(Math.abs(layer[1] - layer[0]))} %`;
};
}
}
@@ -378,6 +439,7 @@ function render(ctx0: ChartContext): TemplateResult {
overlay: html`${highlight}${drawn.columns}${drawn.targets}
${drawn.labels}
${layout.header === 'over' ? headerOver(header) : nothing}
+ ${nowMarkerLayer(ctx, frame, xRange, scales, plotWidth(ctx))}
${tooltip ? tooltipLayer(ctx, shown, scales, hovered, plotWidth(ctx), tip) : nothing}`,
hover: tooltip
? hoverHandlers(
@@ -400,12 +462,15 @@ const COLUMN_HISTORY_FIELDS: FieldBinding[] = HISTORY_FIELDS.map((f) => {
const COLUMN_FIELDS: FieldBinding[] = [
...COLUMN_HISTORY_FIELDS,
+ ENERGY_SPLIT_FIELD,
{ name: 'stack', path: ['stack'], default: 'none' },
{ name: 'color_by', path: ['color_by'], default: 'series' },
{ name: 'range', path: ['range'], default: false },
{ name: 'column_labels', path: ['labels'], default: false },
{ name: 'rounded', path: ['rounded'], default: true },
+ { name: 'error_bars', path: ['error_bars'], default: 'none' },
...AXES_FIELDS,
+ ...NOW_MARKER_FIELDS,
...LAYOUT_FIELDS,
];
@@ -451,7 +516,10 @@ export function columnEditor(ctx: ChartEditorContext): TemplateResult {
{ name: 'rounded', selector: { boolean: {} } },
],
},
+ // Whiskers need groups to spread within.
+ ...(ungrouped ? [] : [{ name: 'error_bars', selector: choice(ctx.hass, 'error_bars', ERROR_BARS) }]),
...axesSchema(ctx.hass),
+ ...nowMarkerSchema(ctx.hass),
...layoutSchema(ctx.hass),
]);
return chartForm({ ...ctx, commit: (c) => ctx.commit(fullPeriod(c)) }, 'chart', schema, COLUMN_FIELDS);
@@ -531,6 +599,8 @@ export const columnChart: ChartStyleModule = {
${tooltipStyles}
${layoutStyles}
${columnStyles}
+ ${errorBarStyles}
+ ${nowMarkerStyles}
`,
thumbnail: () => svg`
@@ -549,6 +619,7 @@ export const columnChart: ChartStyleModule = {
disconnectHistory(host);
stopChartWidth(host);
stopHover(host);
+ stopNowMarker(host);
},
render,
};
diff --git a/src/styles/cycle-plot.ts b/src/styles/cycle-plot.ts
new file mode 100644
index 0000000..935e559
--- /dev/null
+++ b/src/styles/cycle-plot.ts
@@ -0,0 +1,604 @@
+import { css, html, nothing, svg } from 'lit';
+import type { TemplateResult } from 'lit';
+import { hour12Of, valueAxis } from '../chart/axes';
+import { CYCLES, cycleColumns, cycleData, panelMean } from '../chart/cycle';
+import type { Cycle, CycleData } from '../chart/cycle';
+import {
+ SOURCES,
+ disconnectHistory,
+ frameMessage,
+ frameStyles,
+ historyFrame,
+ periodNav,
+ seriesHeader,
+ validateHistoryOptions,
+} from '../chart/frame';
+import type { ChartSeries, HistoryFrame } from '../chart/frame';
+import { chartWidth, stopChartWidth } from '../chart/grid';
+import { runPath, runs } from '../chart/paths';
+import { tooltipEnabled, tooltipStyles, validateTooltipOptions } from '../chart/tooltip';
+import { pickHandlers, pickTooltip, pickedIndex, stopPick } from '../chart/xy';
+import { HISTORY_FIELDS, cachedSchema, chartForm, choice } from '../editor/chart-editors';
+import type { FieldBinding } from '../editor/schemas';
+import { formatNumber, withUnit } from '../format';
+import { AGGREGATES } from '../history/group';
+import { localize } from '../localize';
+import type { CardConfig, HomeAssistant } from '../types';
+import type { ChartContext, ChartEditorContext, ChartStyleModule } from './index';
+
+/** Weeks of history each cycle reads when `weeks` isn't set. */
+export const DEFAULT_WEEKS: Record = { day_of_week: 8, hour_of_day: 2, day_of_month: 26 };
+/** The most weeks each cycle reads (hour by hour gets heavy past a quarter). */
+export const MAX_WEEKS: Record = { day_of_week: 26, hour_of_day: 13, day_of_month: 104 };
+/** Day of the month reads a day at a time over months, which history rarely keeps: statistics by default. */
+const DEFAULT_SOURCE: Record = {
+ day_of_week: 'history',
+ hour_of_day: 'history',
+ day_of_month: 'statistics',
+};
+
+/** Panel drawing box; the SVG stretches, strokes don't. */
+const PW = 100;
+const PH = 100;
+/** Narrowest a panel gets before the panels wrap onto another row, px. */
+const MIN_PANEL_PX = 30;
+const GAP_PX = 4;
+/** Height of one row of panels, px: taller when they all fit in one row. */
+const ROW_PX = 120;
+const ROWS_PX = 86;
+/** Room for a panel's name above its line when the panels wrap onto rows, px. */
+const TITLE_PX = 14;
+/** Panel, slot: one number for the picked point (the pointer state holds a single index). */
+const PER_PANEL = 1000;
+
+type Raw = CardConfig & { cycle?: unknown; weeks?: unknown };
+
+export interface CycleOptions {
+ cycle: Cycle;
+ weeks: number;
+}
+
+export function cycleOptions(raw: CardConfig): CycleOptions {
+ const r = raw as Raw;
+ const cycle = (r.cycle as Cycle | undefined) ?? 'day_of_week';
+ return { cycle, weeks: typeof r.weeks === 'number' ? r.weeks : DEFAULT_WEEKS[cycle] };
+}
+
+/**
+ * The card's options as the history frame reads them: `weeks` back from now, grouped by the hour
+ * (by the day for day of the month). The period's offset and buttons stay the card's.
+ */
+export function cycleRaw(raw: CardConfig): CardConfig {
+ const o = cycleOptions(raw);
+ const period = (raw.period ?? {}) as Record;
+ const kept: Record = {};
+ for (const k of ['offset', 'navigate']) if (period[k] !== undefined) kept[k] = period[k];
+ return {
+ ...raw,
+ source: raw.source ?? DEFAULT_SOURCE[o.cycle],
+ group_by: o.cycle === 'day_of_month' ? 'day' : 'hour',
+ period: { ...kept, last: o.weeks, unit: 'week' },
+ };
+}
+
+function validate(raw: CardConfig): void {
+ const r = raw as Raw;
+ if (r.cycle !== undefined && !CYCLES.includes(r.cycle as Cycle)) {
+ throw new Error(`"cycle" must be one of: ${CYCLES.join(', ')}`);
+ }
+ const max = MAX_WEEKS[(r.cycle as Cycle | undefined) ?? 'day_of_week'];
+ if (r.weeks !== undefined && !(Number.isInteger(r.weeks) && (r.weeks as number) >= 1 && (r.weeks as number) <= max)) {
+ throw new Error(`"weeks" must be a whole number from 1 to ${max}`);
+ }
+ validateHistoryOptions(cycleRaw(raw));
+ validateTooltipOptions(raw);
+}
+
+/* -------------------------------------------------------------- labels -------------------------------------------------------------- */
+
+const formats = new Map();
+
+function dateFormat(hass: HomeAssistant | undefined, opts: Intl.DateTimeFormatOptions) {
+ const language = hass?.locale?.language ?? hass?.language ?? 'en';
+ const k = `${language}|${JSON.stringify(opts)}`;
+ let f = formats.get(k);
+ if (!f) {
+ try {
+ f = new Intl.DateTimeFormat(language, { ...opts, timeZone: 'UTC' });
+ } catch {
+ f = new Intl.DateTimeFormat('en', { ...opts, timeZone: 'UTC' });
+ }
+ formats.set(k, f);
+ }
+ return f;
+}
+
+const hourOf = (h: number, hass: HomeAssistant | undefined) =>
+ dateFormat(hass, { hour: 'numeric', hour12: hour12Of(hass) }).format(Date.UTC(2024, 0, 1, h));
+const hourMinute = (h: number, hass: HomeAssistant | undefined) =>
+ dateFormat(hass, { hour: 'numeric', minute: '2-digit', hour12: hour12Of(hass) }).format(Date.UTC(2024, 0, 1, h));
+/** 1 Jan 2024 was a Monday: weekday n (1 = Monday) is 2024-01-n. */
+const weekdayOf = (row: number, firstDay: number, hass: HomeAssistant | undefined, long = false) =>
+ dateFormat(hass, { weekday: long ? 'long' : 'short' }).format(Date.UTC(2024, 0, ((firstDay - 1 + row) % 7) + 1));
+
+/** A panel's title. */
+function panelName(key: number, cycle: Cycle, firstDay: number, hass: HomeAssistant | undefined) {
+ if (cycle === 'day_of_week') return weekdayOf(key, firstDay, hass);
+ if (cycle === 'hour_of_day') return hourOf(key, hass);
+ return String(key);
+}
+
+/** What one point of a panel stands for, for the tooltip. */
+function pointName(
+ data: CycleData,
+ key: number,
+ slot: number,
+ cycle: Cycle,
+ firstDay: number,
+ hass: HomeAssistant | undefined,
+): string {
+ if (cycle === 'day_of_week') {
+ return `${weekdayOf(key, firstDay, hass, true)} ${hourMinute(slot, hass)} – ${hourMinute((slot + 1) % 24, hass)}`;
+ }
+ if (cycle === 'hour_of_day') {
+ const day = dateFormat(hass, { weekday: 'short', day: 'numeric', month: 'short' }).format(
+ (data.first + slot) * 86_400_000,
+ );
+ return `${day} ${hourMinute(key, hass)}`;
+ }
+ const month = data.first + slot;
+ return dateFormat(hass, { day: 'numeric', month: 'long', year: 'numeric' }).format(
+ Date.UTC(Math.floor(month / 12), month % 12, key),
+ );
+}
+
+/** The days (months) each panel runs across, under the first one: "25 Oct – 8 Nov". */
+function spanName(data: CycleData, cycle: Cycle, hass: HomeAssistant | undefined): string {
+ const last = data.slots - 1;
+ if (cycle === 'hour_of_day') {
+ const f = dateFormat(hass, { day: 'numeric', month: 'short' });
+ return `${f.format(data.first * 86_400_000)} – ${f.format((data.first + last) * 86_400_000)}`;
+ }
+ const f = dateFormat(hass, { month: 'short', year: 'numeric' });
+ const at = (m: number) => Date.UTC(Math.floor(m / 12), m % 12, 1);
+ return `${f.format(at(data.first))} – ${f.format(at(data.first + last))}`;
+}
+
+/** What each panel's line is, for the legend. */
+function lineNote(cycle: Cycle, weeks: number, hass: HomeAssistant | undefined): string {
+ const key = { day_of_week: 'cycle_note_week', hour_of_day: 'cycle_note_hour', day_of_month: 'cycle_note_month' }[
+ cycle
+ ];
+ return localize(hass, key, { n: weeks });
+}
+
+/* -------------------------------------------------------------- drawing -------------------------------------------------------------- */
+
+interface Built {
+ series: ChartSeries;
+ data: CycleData;
+}
+
+/** A panel's line for one series, and its dashed average. */
+function panelLines(b: Built, p: number, y: (v: number) => number, multi: boolean) {
+ const { values } = b.data.panels[p];
+ const slots = b.data.slots;
+ const x = (k: number) => (slots <= 1 ? PW / 2 : (k / (slots - 1)) * PW);
+ const pts = values.map((v, k) => ({ k, v }));
+ const d = runs(pts)
+ .map((run) =>
+ run.length === 1
+ ? `M${x(run[0].k)},${y(run[0].v as number)}h0.01`
+ : runPath(
+ run.map((q) => [x(q.k), y(q.v as number)]),
+ 'straight',
+ ),
+ )
+ .join('');
+ const mean = panelMean(values);
+ return svg`
+ ${
+ mean === undefined
+ ? nothing
+ : svg` `
+ }
+
+ `;
+}
+
+function drawCycle(frame: HistoryFrame, ctx: ChartContext, o: CycleOptions): TemplateResult {
+ const built: Built[] = frame.series.map((series) => ({
+ series,
+ data: cycleData(series.points, o.cycle, frame.zone, frame.range),
+ }));
+ const panels = built[0].data.panels;
+ const all = built.flatMap((b) => b.data.panels.flatMap((p) => p.values)).filter((v): v is number => v !== null);
+ const axis = valueAxis(all.length ? [Math.min(...all), Math.max(...all)] : undefined, {}, 3);
+ const [lo, hi] = axis.domain;
+ // A little room top and bottom so a line along an end isn't cut by the panel's edge.
+ const y = (v: number) => PH - 4 - ((v - lo) / (hi - lo || 1)) * (PH - 8);
+ const width = Math.max(0, chartWidth(ctx) - 32 - 36);
+ const cols = cycleColumns(panels.length, width, MIN_PANEL_PX, GAP_PX);
+ const rows = Math.ceil(panels.length / cols);
+ const rowPx = rows === 1 ? ROW_PX : ROWS_PX;
+ const panelPx = (width - (cols - 1) * GAP_PX) / cols;
+ const multi = built.length > 1;
+ const hass = ctx.hass;
+ const first = frame.zone.firstDay;
+ const tooltip = tooltipEnabled(ctx.raw);
+ const slots = built[0].data.slots;
+ const picked = pickedIndex(ctx.host);
+ const pickedPanel = picked === undefined ? undefined : Math.floor(picked / PER_PANEL);
+ const pickedSlot = picked === undefined ? undefined : picked % PER_PANEL;
+ const hover = tooltip
+ ? pickHandlers(ctx, (fx, fy, w) => {
+ // Which panel, by the grid's columns and rows (gaps go to the panel on their left / above).
+ const col = Math.min(cols - 1, Math.floor(fx * cols));
+ const row = Math.min(rows - 1, Math.floor(fy * rows));
+ const p = row * cols + col;
+ if (p >= panels.length) return undefined;
+ const step = (w + GAP_PX) / cols;
+ const inside = Math.min(1, Math.max(0, (fx * w - col * step) / Math.max(1, step - GAP_PX)));
+ return p * PER_PANEL + Math.round(inside * Math.max(0, slots - 1));
+ })
+ : undefined;
+ const fmt = (b: Built, v: number) => withUnit(formatNumber(v, b.series.entity.decimals, hass), b.series.entity.unit);
+ let overlay: TemplateResult | typeof nothing = nothing;
+ if (pickedPanel !== undefined && pickedSlot !== undefined && pickedPanel < panels.length) {
+ const col = pickedPanel % cols;
+ const row = Math.floor(pickedPanel / cols);
+ const step = (width + GAP_PX) / cols;
+ const at = col * step + (slots <= 1 ? 0.5 : pickedSlot / (slots - 1)) * panelPx;
+ const key = panels[pickedPanel].key;
+ overlay = pickTooltip({
+ x: width > 0 ? at / width : 0,
+ y: (row + 0.5) / rows,
+ plotWidth: width,
+ title: pointName(built[0].data, key, pickedSlot, o.cycle, first, hass),
+ rows: built.flatMap((b) => {
+ const v = b.data.panels[pickedPanel].values[pickedSlot];
+ const mean = panelMean(b.data.panels[pickedPanel].values);
+ return [
+ { color: b.series.color, name: b.series.entity.name, value: v === null ? '—' : fmt(b, v) },
+ ...(mean === undefined
+ ? []
+ : [
+ {
+ name: localize(hass, 'cycle_panel_average', { name: panelName(key, o.cycle, first, hass) }),
+ value: fmt(b, mean),
+ },
+ ]),
+ ];
+ }),
+ });
+ }
+ const grid = `grid-template-columns:repeat(${cols}, minmax(0, 1fr));grid-auto-rows:${rowPx}px`;
+ const ticks = axis.ticks.filter((v) => v >= lo && v <= hi);
+ const unit = frame.series[0].entity.unit;
+ const label = localize(hass, 'chart_aria', {
+ style: localize(hass, 'editor_style_cycle_plot'),
+ names: frame.series.map((s) => s.entity.name).join(', '),
+ });
+ // Under the first panel: what each panel's line runs across.
+ const across =
+ o.cycle === 'day_of_week' ? `${hourOf(0, hass)} – ${hourOf(23, hass)}` : spanName(built[0].data, o.cycle, hass);
+ // Wrapped onto rows, each panel's name sits in a strip at its top, kept clear of its line.
+ const top = rows > 1 ? TITLE_PX : 0;
+ return html`
+ ${
+ rows === 1
+ ? html`
+ ${unit ? html`${unit} ` : nothing}
+ ${panels.map((p) => html`${panelName(p.key, o.cycle, first, hass)} `)}
+
`
+ : nothing
+ }
+
+
+ ${Array.from(
+ { length: rows },
+ (_, r) =>
+ html`
+ ${ticks.map(
+ (v) =>
+ html`${formatNumber(v, axis.decimals, hass)} `,
+ )}
+ ${r === 0 && top > 0 && unit ? html`${unit} ` : nothing}
+
`,
+ )}
+
+
+ ${panels.map(
+ (p, i) =>
+ html`
+
+
+ ${built.map((b) => panelLines(b, i, y, multi))}
+ ${
+ pickedPanel === i && pickedSlot !== undefined
+ ? svg` `
+ : nothing
+ }
+
+ ${rows > 1 ? html`${panelName(p.key, o.cycle, first, hass)} ` : nothing}
+
`,
+ )}
+ ${overlay}
+
+
+
${across}
+
+ ${built.map(
+ (b) =>
+ html`
+ ${
+ multi ? b.series.entity.name : lineNote(o.cycle, o.weeks, hass)
+ }
+ `,
+ )}
+ ${multi ? html`${lineNote(o.cycle, o.weeks, hass)} ` : nothing}
+ ${localize(hass, 'cycle_mean_legend')}
+
+
`;
+}
+
+/* -------------------------------------------------------------- editor -------------------------------------------------------------- */
+
+const CYCLE_FIELDS: FieldBinding[] = [
+ { name: 'cycle_plot_cycle', path: ['cycle'], default: 'day_of_week' },
+ { name: 'cycle_plot_weeks', path: ['weeks'] },
+ ...HISTORY_FIELDS.filter((f) => ['period_offset', 'period_navigate', 'source', 'aggregate'].includes(f.name)),
+ { name: 'tooltip', path: ['tooltip'], default: true },
+];
+
+function cycleEditor(ctx: ChartEditorContext): TemplateResult {
+ const o = cycleOptions(ctx.config);
+ const schema = cachedSchema(`cycle_plot|${o.cycle}`, ctx.hass, () => [
+ { name: 'cycle_plot_cycle', selector: choice(ctx.hass, 'cycle_plot_cycle', CYCLES) },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ {
+ name: 'cycle_plot_weeks',
+ selector: { number: { min: 1, max: MAX_WEEKS[o.cycle], mode: 'box', placeholder: DEFAULT_WEEKS[o.cycle] } },
+ },
+ { name: 'period_offset', selector: { number: { min: 0, mode: 'box' } } },
+ ],
+ },
+ { name: 'period_navigate', selector: { boolean: {} } },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'source', selector: choice(ctx.hass, 'source', SOURCES) },
+ { name: 'aggregate', selector: choice(ctx.hass, 'aggregate', AGGREGATES) },
+ ],
+ },
+ { name: 'tooltip', selector: { boolean: {} } },
+ ]);
+ // The source's default follows the cycle, so the form shows what the chart reads.
+ const fields = CYCLE_FIELDS.map((f) => (f.name === 'source' ? { ...f, default: DEFAULT_SOURCE[o.cycle] } : f));
+ return chartForm(ctx, 'chart', schema, fields);
+}
+
+/* -------------------------------------------------------------- module -------------------------------------------------------------- */
+
+export const cyclePlot: ChartStyleModule = {
+ layout: 'chart',
+ group: 'history',
+ height: 230,
+ styles: css`
+ ${frameStyles}
+ ${tooltipStyles}
+ .cy {
+ --cd-cycle-mean: var(--error-color, #db4437);
+ }
+ .cy-titles,
+ .cy-grid {
+ display: grid;
+ gap: ${GAP_PX}px;
+ }
+ .cy-titles {
+ position: relative;
+ margin-left: 36px;
+ padding-bottom: 4px;
+ }
+ .cy-title,
+ .cy-inline-title {
+ font-size: 11px;
+ color: var(--secondary-text-color);
+ text-align: center;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ .cy-body {
+ display: flex;
+ gap: 0;
+ }
+ .cy-axis {
+ flex: none;
+ width: 32px;
+ margin-right: 4px;
+ display: flex;
+ flex-direction: column;
+ gap: ${GAP_PX}px;
+ }
+ .cy-axis-row {
+ position: relative;
+ }
+ .cy-tick {
+ position: absolute;
+ right: 0;
+ transform: translateY(-50%);
+ font-size: 10px;
+ line-height: 1;
+ color: var(--secondary-text-color);
+ font-variant-numeric: tabular-nums;
+ white-space: nowrap;
+ }
+ .cy-unit {
+ position: absolute;
+ right: 0;
+ top: -1px;
+ font-size: 10px;
+ line-height: 1;
+ color: var(--secondary-text-color);
+ white-space: nowrap;
+ }
+ .cy-titles .cy-unit {
+ left: -36px;
+ width: 32px;
+ top: 1px;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ .cy-grid {
+ position: relative;
+ flex: 1 1 auto;
+ min-width: 0;
+ }
+ .cy-grid.hoverable {
+ cursor: crosshair;
+ }
+ .cy-panel {
+ position: relative;
+ min-width: 0;
+ box-sizing: border-box;
+ }
+ .cy-inline-title {
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ font-size: 10px;
+ pointer-events: none;
+ }
+ .cy-svg {
+ display: block;
+ width: 100%;
+ height: 100%;
+ overflow: visible;
+ }
+ .cy-svg path,
+ .cy-svg line {
+ vector-effect: non-scaling-stroke;
+ }
+ .cy-bg {
+ fill: color-mix(in srgb, var(--primary-text-color) 5%, transparent);
+ }
+ .cy-line {
+ fill: none;
+ stroke-width: 1.75px;
+ stroke-linejoin: round;
+ stroke-linecap: round;
+ opacity: 0;
+ transition: opacity var(--cd-duration) var(--cd-easing);
+ }
+ :host([ready]) .cy-line {
+ opacity: 1;
+ }
+ :host([static]) .cy-line {
+ transition: none;
+ }
+ .cy-mean {
+ stroke-width: 1.25px;
+ stroke-dasharray: 3 2;
+ }
+ .cy-mean.multi {
+ opacity: 0.7;
+ }
+ .cy-guide {
+ stroke: var(--secondary-text-color);
+ stroke-width: 1px;
+ }
+ .cy-ends {
+ margin-left: 36px;
+ padding-top: 3px;
+ font-size: 10px;
+ color: var(--secondary-text-color);
+ white-space: nowrap;
+ min-width: 0;
+ }
+ .cy-legend {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 4px 14px;
+ padding-top: 8px;
+ font-size: 0.8125em;
+ color: var(--secondary-text-color);
+ }
+ .cy-key {
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ min-width: 0;
+ border-radius: 4px;
+ }
+ .cy-key.entity {
+ cursor: pointer;
+ }
+ .cy-key.entity:focus-visible {
+ outline: 2px solid var(--primary-color);
+ outline-offset: 2px;
+ }
+ .cy-swatch {
+ flex: none;
+ width: 10px;
+ height: 10px;
+ border-radius: 2px;
+ }
+ .cy-dash {
+ flex: none;
+ width: 14px;
+ border-top: 2px dashed var(--cd-cycle-mean);
+ }
+ `,
+ thumbnail: () => svg`
+ ${[0, 1, 2, 3, 4].map(
+ (i) => svg`
+
+
+
+ `,
+ )}`,
+ validate,
+ editor: cycleEditor,
+ entityFields: () => ({
+ schema: [{ name: 'series_color', selector: { text: {} } }],
+ fields: [{ name: 'series_color', path: ['color'] }],
+ }),
+ disconnect(host) {
+ disconnectHistory(host);
+ stopChartWidth(host);
+ stopPick(host);
+ },
+ render(ctx) {
+ const o = cycleOptions(ctx.raw);
+ const frame = historyFrame({ ...ctx, raw: cycleRaw(ctx.raw) });
+ const nav = periodNav(frame, ctx);
+ const names = seriesHeader(frame, ctx);
+ const message = frameMessage(frame, ctx);
+ if (message) return html`${nav}${names}${message}
`;
+ return html`${nav}${names}${drawCycle(frame, ctx, o)}
`;
+ },
+};
diff --git a/src/styles/day-clock.ts b/src/styles/day-clock.ts
index 094cfdd..f402427 100644
--- a/src/styles/day-clock.ts
+++ b/src/styles/day-clock.ts
@@ -25,7 +25,7 @@ import {
wallSpans,
} from '../chart/day-clock';
import type { AverageRun, Bucket, Interval, Slot } from '../chart/day-clock';
-import { SERIES_COLORS, disconnectHistory, frameStyles, periodNav } from '../chart/frame';
+import { SERIES_COLORS, disconnectHistory, frameStyles, periodNav, seriesTransform } from '../chart/frame';
import type { HistoryFrame } from '../chart/frame';
import { TOUCH_LINGER_MS, tooltipEnabled, tooltipStyles, validateTooltipOptions } from '../chart/tooltip';
import { dayClockEditor, dayClockEntityFields } from '../editor/day-clock-editor';
@@ -36,6 +36,8 @@ import type { Aggregate } from '../history/group';
import { parsePeriod, stepsFor } from '../history/period';
import type { Period } from '../history/period';
import { storeFor } from '../history/store';
+import { convertPoints } from '../units';
+import { chartConditions, conditionStatus, conditionalPoints, validateConditions } from '../history/condition';
import { zoneFor } from '../history/timezone';
import type { Point, SeriesRequest } from '../history/types';
import { localize } from '../localize';
@@ -113,12 +115,15 @@ function attributeOf(e: ResolvedEntity, kind: 'state' | 'numeric'): string | und
/** The bars' aggregate: the card's, else change for meters, else a time-weighted mean. */
function aggregateOf(e: ResolvedEntity, raw: CardConfig): Aggregate {
if (raw.aggregate !== undefined) return raw.aggregate as Aggregate;
+ // A transformed series (running total, rate of change) is a level to average, not a meter.
+ if ((e.config as { transform?: string }).transform !== undefined) return 'mean';
const sc = e.stateObj?.attributes?.state_class;
return sc === 'total_increasing' || sc === 'total' ? 'change' : 'mean';
}
export function validateDayClock(raw: CardConfig): void {
validateTooltipOptions(raw);
+ validateConditions(raw);
parsePeriod(raw.period as CardConfig['period']);
const days = raw.days;
if (days !== undefined && (typeof days !== 'number' || !Number.isInteger(days) || days < 1 || days > MAX_DAYS)) {
@@ -266,13 +271,18 @@ export function dayClock(ctx: ChartContext, now = Date.now()): Clock {
const store = storeFor(ctx.host, ctx.requestUpdate);
const loaded = store.get(hass, requests, { start: bounds[0], end: live ? now : end }, 'history', { live });
const range = { start: bounds[0], end: until };
+ // Rings with a `when` (their own or the card's) count only the time while it held.
+ const conditions = chartConditions(ctx, { start: bounds[0], end: live ? now : end }, live);
+ const status = conditionStatus(loaded.status, conditions);
// Days that have begun: the average is per day of those, today counting as one once it starts.
const daysSoFar = Math.max(1, bounds.slice(0, -1).filter((b) => b < until).length);
const rings = ctx.items.map((entity, index): Ring => {
const kind = kinds[index];
const own = entity.config as typeof entity.config & Own;
// A missing entity has no history worth drawing: an empty ring and "Entity not found".
- const points = entity.stateObj ? (loaded.data.get(key(requests[index])) ?? []) : [];
+ const points = entity.stateObj
+ ? conditionalPoints(entity.config, loaded.data.get(key(requests[index])) ?? [], conditions)
+ : [];
const ring: Ring = {
index,
entity,
@@ -309,8 +319,15 @@ export function dayClock(ctx: ChartContext, now = Date.now()): Clock {
if (ring.count > 0) parts.push(daily(timesText(hass, ring.count)));
ring.stat = parts.join(' · ');
} else {
- const numbers: Point[] = points.map((p) => ({ ...p, v: toReading(p.s), s: undefined }));
- ring.slots = foldSlots(numbers, bounds, bucket, ring.aggregate, until, zone.timeZone);
+ // Loaded as words (a ring may be a state ring), read as numbers here, then in the shown unit.
+ const numbers: Point[] = convertPoints(
+ points.map((p) => ({ ...p, v: toReading(p.s), s: undefined })),
+ entity.conversion,
+ );
+ // The entity's history transform (running total, rate of change), before folding into the day.
+ const shown = seriesTransform(entity, numbers, range, until, zone, hass);
+ ring.entity = shown.entity;
+ ring.slots = foldSlots(shown.points, bounds, bucket, ring.aggregate, until, zone.timeZone);
const additive = isAdditive(ring.aggregate);
ring.heights = barHeights(ring.slots, additive);
ring.hasData = ring.slots.length > 0;
@@ -320,7 +337,7 @@ export function dayClock(ctx: ChartContext, now = Date.now()): Clock {
if (additive) {
const total = valueText(
ring.slots.reduce((a, s) => a + s.v, 0),
- entity,
+ ring.entity,
hass,
);
ring.stat = localize(hass, 'day_clock_busiest', {
@@ -328,16 +345,16 @@ export function dayClock(ctx: ChartContext, now = Date.now()): Clock {
time,
});
} else {
- ring.stat = localize(hass, 'day_clock_peak', { value: valueText(top.v, entity, hass), time });
+ ring.stat = localize(hass, 'day_clock_peak', { value: valueText(top.v, ring.entity, hass), time });
}
}
}
if (ring.missing) ring.stat = localize(hass, 'entity_not_found');
- else if (!ring.hasData && loaded.status === 'ready') ring.stat = localize(hass, 'day_clock_no_data');
+ else if (!ring.hasData && status === 'ready') ring.stat = localize(hass, 'day_clock_no_data');
return ring;
});
return {
- status: loaded.status,
+ status,
error: loaded.error,
rings,
bounds,
diff --git a/src/styles/index.ts b/src/styles/index.ts
index eb7ee5f..a633aec 100644
--- a/src/styles/index.ts
+++ b/src/styles/index.ts
@@ -9,6 +9,7 @@ import { bubble } from './bubble';
import { columnChart } from './column';
import { combined } from './combined';
import { heatmap } from './heatmap';
+import { spiral } from './spiral';
import { histogram } from './histogram';
import { line } from './line';
import { needle } from './needle';
@@ -19,12 +20,14 @@ import { rings } from './rings';
import { scatter } from './scatter';
import { segmented } from './segmented';
import { tank } from './tank';
+import { battery } from './battery';
import { thin } from './thin';
import { waffle } from './waffle';
import { funnel } from './funnel';
import { radar } from './radar';
import { polarArea } from './polar-area';
import { treemap } from './treemap';
+import { marimekko } from './marimekko';
import { icicle, sunburst } from './sunburst';
import { groupedBars } from './grouped-bars';
import { bullet } from './bullet';
@@ -38,16 +41,21 @@ import { streamgraph } from './streamgraph';
import { candlestick } from './candlestick';
import { violin } from './violin';
import { beeswarm } from './beeswarm';
+import { stripPlot } from './strip-plot';
import { sankey } from './sankey';
+import { chord } from './chord';
import { timeline } from './timeline';
import { climate } from './climate';
import { windRoseStyle } from './wind-rose';
import { day_clock } from './day-clock';
+import { cyclePlot } from './cycle-plot';
import { trend } from './trend';
export interface RenderContext {
show: ShowOptions;
hass: HomeAssistant;
+ /** Ask the card to draw again, for a value style that loads something (the gauges' ghost). */
+ requestUpdate?(): void;
}
/** Where a style sits in the editor's style picker. */
@@ -139,6 +147,7 @@ export const STYLES: Record = {
thin,
segmented,
tank,
+ battery,
ring,
needle,
arc,
@@ -154,11 +163,13 @@ export const STYLES: Record = {
scatter,
bubble,
heatmap,
+ spiral,
box,
funnel,
radar,
polar_area: polarArea,
treemap,
+ marimekko,
sunburst,
icicle,
grouped_bars: groupedBars,
@@ -173,10 +184,13 @@ export const STYLES: Record = {
candlestick,
violin,
beeswarm,
+ strip_plot: stripPlot,
sankey,
+ chord,
timeline,
climate,
wind_rose: windRoseStyle,
day_clock,
+ cycle_plot: cyclePlot,
trend,
};
diff --git a/src/styles/line.ts b/src/styles/line.ts
index 762a9ea..97ce5e3 100644
--- a/src/styles/line.ts
+++ b/src/styles/line.ts
@@ -45,6 +45,7 @@ import {
import {
annotationEntities,
annotationLayers,
+ annotationUnit,
annotationStyles,
annotationValues,
stopAnnotations,
@@ -61,8 +62,31 @@ import {
} from '../chart/extremes';
import { dataLabelStyles, dataLabels, labelOptions, validateLabelOptions } from '../chart/data-labels';
import { stopSync, syncChart, validateSyncOptions } from '../chart/sync';
+import { nowMarkerLayer, nowMarkerStyles, stopNowMarker, validateNowMarker } from '../chart/now-marker';
import { multiplesGrid, multiplesOptions, multiplesStyles, validateMultiples } from '../chart/multiples';
import { positivePoints } from '../chart/log-scale';
+import { conditionStrip, conditionStyles, ghostLines } from '../chart/condition-strip';
+import { ghostOn } from '../history/condition';
+import {
+ forecastEntities,
+ forecastLabel,
+ forecastLayer,
+ forecastLines,
+ forecastStyles,
+ forecastTooltipSeries,
+ stopForecast,
+ validateForecast,
+ withForecastFields,
+} from '../chart/forecast';
+import { anomalyLayer, anomalyStyles, validateAnomalies } from '../chart/anomaly';
+import {
+ compareGhosts,
+ compareKey,
+ compareStyles,
+ ghostLines as compareLines,
+ stopCompare,
+ validateCompare,
+} from '../chart/compare-ghost';
import { lineEditor } from '../editor/chart-editors';
import { entitySeriesFields, entitySeriesSchema } from '../editor/schemas';
import { localize } from '../localize';
@@ -208,7 +232,7 @@ function linePlot(
return chartArea({
axes,
ctx,
- content: lines,
+ content: svg`${ghostLines(series, scales)}${lines}`,
label,
defs,
overlay: html`${over} ${labels ? pointLabels(frame, series, frame.range, scales, labels, true, ctx) : nothing}
@@ -237,6 +261,11 @@ export const line: ChartStyleModule = {
${dataLabelStyles}
${extremesStyles}
${multiplesStyles}
+ ${conditionStyles}
+ ${forecastStyles}
+ ${anomalyStyles}
+ ${compareStyles}
+ ${nowMarkerStyles}
.style-line .line {
stroke-linecap: round;
stroke-linejoin: round;
@@ -265,6 +294,10 @@ export const line: ChartStyleModule = {
validateExtremes(raw);
validateSyncOptions(raw);
validateMultiples(raw);
+ validateForecast(raw);
+ validateAnomalies(raw);
+ validateCompare(raw);
+ validateNowMarker(raw);
if (raw.color_by !== undefined && !COLOR_BY.includes(raw.color_by as (typeof COLOR_BY)[number])) {
throw new Error(`"color_by" must be one of: ${COLOR_BY.join(', ')}`);
}
@@ -274,11 +307,12 @@ export const line: ChartStyleModule = {
const schema = entitySeriesSchema(hass);
const fields = entitySeriesFields(config.dots === true);
// While the card marks highs, lows or averages, each series can opt out.
- return extremesOn(extremesOptions(config))
+ const own = extremesOn(extremesOptions(config))
? { schema: withEntityExtremes(schema, hass), fields: withEntityExtremesFields(fields) }
: { schema, fields };
+ return withForecastFields(hass, own);
},
- watch: annotationEntities,
+ watch: (raw) => [...annotationEntities(raw), ...forecastEntities(raw)],
disconnect(host) {
disconnectHistory(host);
stopChartWidth(host);
@@ -286,15 +320,23 @@ export const line: ChartStyleModule = {
stopZoom(host);
stopAnnotations(host);
stopSync(host);
+ stopForecast(host);
+ stopCompare(host);
+ stopNowMarker(host);
},
render(ctx) {
- const frame = historyFrame(ctx);
+ // Forecasts carry series on past now, stretching the span to show them.
+ const ahead = forecastLayer(ctx, historyFrame(ctx, Date.now(), { ghost: ghostOn(ctx.raw) }));
+ const frame = ahead.frame;
// Charts in a sync group share the pointer's time: another chart's shows here too.
const own = hoverTime(ctx.host);
const shared = syncChart(ctx, frame, own);
const nav = periodNav(frame, ctx);
const names = seriesHeader(frame, ctx);
- const header = nav === nothing && names === nothing ? nothing : html`${nav}${names}`;
+ // Earlier spans drawn faintly behind, moved over this one, named in a key under the header.
+ const ghosts = compareGhosts(ctx, frame);
+ const key = ctx.config.show.name ? compareKey(ctx, ghosts) : nothing;
+ const header = nav === nothing && names === nothing ? nothing : html`${nav}${names}${key}`;
const message = frameMessage(frame, ctx);
const layout = chartLayout(ctx.raw);
if (message) return chartFrame(layout.header === 'over' ? { ...layout, header: 'above' } : layout, header, message);
@@ -303,7 +345,14 @@ export const line: ChartStyleModule = {
// A log axis has no place for zero or below: each small chart draws only the readings above it.
const panels =
ctx.raw.y_scale === 'log'
- ? { ...frame, series: frame.series.map((s) => ({ ...s, points: positivePoints(s.points) })) }
+ ? {
+ ...frame,
+ series: frame.series.map((s) => ({
+ ...s,
+ points: positivePoints(s.points),
+ ...(s.hidden ? { hidden: positivePoints(s.hidden) } : {}),
+ })),
+ }
: frame;
// One small chart per series: the period buttons stay above, each chart has its own title.
return chartFrame(
@@ -317,17 +366,45 @@ export const line: ChartStyleModule = {
// Zoomed, the chart draws the readings in its window (and one either side), fitted to them.
const zoom = zoomView(ctx, frame);
const view = zoom.range;
+ const log = ctx.raw.y_scale === 'log';
const shown = zoom.zoomed
- ? frame.series.map((s) => ({ ...s, points: visiblePoints(s.points, view) }))
+ ? frame.series.map((s) => ({
+ ...s,
+ points: visiblePoints(s.points, view),
+ ...(s.hidden ? { hidden: visiblePoints(s.hidden, view) } : {}),
+ }))
: frame.series;
+ const forecasts = ahead.series.map((s) => ({
+ ...s,
+ points: (log ? positivePoints : (p: typeof s.points) => p)(
+ zoom.zoomed ? visiblePoints(s.points, view) : s.points,
+ ),
+ }));
// A log axis has no place for zero or below: those readings are gaps in the drawing (the tooltip still reads them).
- const log = ctx.raw.y_scale === 'log';
- const drawn = log ? shown.map((s) => ({ ...s, points: positivePoints(s.points) })) : shown;
+ const drawn = log
+ ? shown.map((s) => ({
+ ...s,
+ points: positivePoints(s.points),
+ ...(s.hidden ? { hidden: positivePoints(s.hidden) } : {}),
+ }))
+ : shown;
+ const behind = ghosts.map((g) => {
+ const points = zoom.zoomed ? visiblePoints(g.points, view) : g.points;
+ return { ...g, points: log ? positivePoints(points) : points };
+ });
// Threshold lines widen the value axis, so a target off the readings' range still shows.
- const thresholds = annotationValues(ctx.raw, ctx.hass)
+ const thresholds = annotationValues(ctx.raw, ctx.hass, annotationUnit(frame), ctx, frame)
.filter((v) => !log || v > 0)
.map((v) => ({ t: view.start, v }));
- const data = extent([...drawn.map((s) => s.points), thresholds]);
+ // The faint line of hidden readings fits on the axis too, so it never runs off the plot.
+ const hidden = drawn.flatMap((s) => (s.hidden ? [s.hidden] : []));
+ const data = extent([
+ ...drawn.map((s) => s.points),
+ ...hidden,
+ ...behind.map((s) => s.points),
+ ...forecasts.map((s) => s.points),
+ thresholds,
+ ]);
if (log && !data) {
const empty = html`${localize(ctx.hass, 'chart_log_nothing')}
`;
return chartFrame(layout.header === 'over' ? { ...layout, header: 'above' } : layout, header, empty);
@@ -348,7 +425,7 @@ export const line: ChartStyleModule = {
? hoverHandlers(
ctx,
view,
- shown.map((s) => s.points),
+ [...shown, ...forecasts].map((s) => s.points),
)
: undefined;
const notes = annotationLayers(ctx, frame, scales, plotWidth(ctx));
@@ -366,29 +443,56 @@ export const line: ChartStyleModule = {
until: Math.min(view.end, Date.now()),
obstacles: layout.header === 'over' ? [overHeaderBox(frame, layout.compact, width)] : [],
});
+ // Readings far from their neighbours' mean, with the band of normal behind the lines.
+ const anomalies = anomalyLayer({
+ ctx,
+ series: drawn,
+ scales,
+ range: view,
+ width,
+ height: plotHeight(layout.compact, axes.options),
+ obstacles: layout.header === 'over' ? [overHeaderBox(frame, layout.compact, width)] : [],
+ });
const label = localize(ctx.hass, 'chart_aria', {
style: localize(ctx.hass, 'editor_style_line'),
names: frame.series.map((s) => s.entity.name).join(', '),
});
+ const strip = conditionStrip(
+ ctx,
+ frame,
+ view,
+ scales,
+ zoom.options.overview ? overviewStrip(ctx, zoom, frame.range, overviewLines(frame.series, frame.range)) : nothing,
+ );
return chartFrame(
layout,
header,
chartArea({
axes,
ctx,
- content: svg`${notes.behind}${marks.lines}${lines}${notes.front}`,
+ content: svg`${notes.behind}${compareLines(behind, scales)}${ghostLines(drawn, scales)}${anomalies.behind}${marks.lines}${forecastLines(forecasts, scales)}${lines}${notes.front}`,
label,
defs,
overlay: html`${layout.header === 'over' ? headerOver(header) : nothing}
${labels ? pointLabels(frame, drawn, view, scales, labels, layout.compact, ctx) : nothing}
- ${zoomLayer(ctx, zoom)} ${notes.overlay} ${marks.overlay}
- ${tooltip ? tooltipLayer(ctx, shown, scales, own ?? shared, plotWidth(ctx)) : nothing}`,
+ ${zoomLayer(ctx, zoom)} ${notes.overlay} ${marks.overlay} ${anomalies.overlay}
+ ${nowMarkerLayer(ctx, frame, view, scales, width)}
+ ${forecasts.length ? forecastLabel(ctx, forecasts, scales) : nothing}
+ ${
+ tooltip
+ ? tooltipLayer(
+ ctx,
+ [...shown, ...behind, ...forecastTooltipSeries(ctx, forecasts, view.start)],
+ scales,
+ own ?? shared,
+ plotWidth(ctx),
+ )
+ : nothing
+ }`,
hover,
gestures: zoom.options.zoom ? zoomGestures(ctx, zoom, hover) : undefined,
classes: zoom.options.zoom ? `zoomable ${zoom.zoomed ? 'zoomed' : ''}` : '',
- below: zoom.options.overview
- ? overviewStrip(ctx, zoom, frame.range, overviewLines(frame.series, frame.range))
- : nothing,
+ ...strip,
}),
);
},
diff --git a/src/styles/marimekko.ts b/src/styles/marimekko.ts
new file mode 100644
index 0000000..0d076d2
--- /dev/null
+++ b/src/styles/marimekko.ts
@@ -0,0 +1,348 @@
+import { css, html, nothing, svg } from 'lit';
+import type { TemplateResult } from 'lit';
+import { baseColor, onFillText } from '../bands';
+import { SERIES_COLORS } from '../chart/colors';
+import { chartWidth, stopChartWidth } from '../chart/grid';
+import { groupPath, parseGroupBy, validateGroups } from '../chart/hierarchy';
+import { marimekkoLayout } from '../chart/marimekko';
+import type { MekkoCell, MekkoColumn, MekkoLayout, MekkoSegment, MekkoSort } from '../chart/marimekko';
+import { textWidth } from '../chart/sankey';
+import { cachedSchema, chartForm, choice } from '../editor/chart-editors';
+import { GROUP_FIELDS, HIERARCHY_LABELS, groupBySchema, withGroupList } from '../editor/group-fields';
+import type { FieldBinding } from '../editor/schemas';
+import { formatNumber } from '../format';
+import { localize } from '../localize';
+import type { CardConfig } from '../types';
+import type { ChartContext, ChartEditorContext, ChartStyleModule } from './index';
+import { sharedUnit, totalText } from './treemap';
+
+/** What each segment says when there is room: its share of the column, its value, both or nothing. */
+export const MEKKO_LABELS = ['percent', 'value', 'both', 'none'] as const;
+export type MekkoLabels = (typeof MEKKO_LABELS)[number];
+
+/** The plot's height in px; its width follows the card. */
+const HEIGHT = 200;
+/** Space between columns, in px. */
+const GAP = 3;
+/** Label font size, px. */
+const FONT = 11;
+/** Smallest segment that gets a label, px. */
+const LABEL_H = 18;
+
+type MekkoEntity = { group?: unknown; category?: unknown; color?: unknown };
+
+/**
+ * The card's entities as cells: their column from `group` or `group_by`, their colour from
+ * `category`. Cells come in the order the entities are listed (matched ones last) even when the
+ * card sorts them, so categories stack the same way however the values move.
+ */
+export function cellsOf(ctx: ChartContext): MekkoCell[] {
+ const levels = parseGroupBy(ctx.raw.group_by);
+ const other = localize(ctx.hass, 'treemap_other');
+ const listed = (i: number) => {
+ const at = ctx.config.entities.indexOf(ctx.items[i].config);
+ return at < 0 ? Infinity : at;
+ };
+ const cells = ctx.items.map((e, index) => {
+ const own = e.config as MekkoEntity;
+ const path = groupPath(e, levels, ctx.hass, other);
+ const category = typeof own.category === 'string' && own.category.trim() ? own.category.trim() : e.name;
+ return { index, group: path.length ? path.join(' / ') : other, category, value: e.available ? e.value : null };
+ });
+ return cells.sort((a, b) => listed(a.index) - listed(b.index) || a.index - b.index);
+}
+
+/** Each category's colour: the first own `color` among its entities, else the next series colour. */
+export function categoryColors(layout: MekkoLayout, own: (index: number) => string | undefined): string[] {
+ return layout.categories.map((name, i) => {
+ for (const col of layout.columns) {
+ for (const s of col.segments) {
+ const c = s.cell.category === name ? own(s.cell.index) : undefined;
+ if (c) return c;
+ }
+ }
+ return SERIES_COLORS[i % SERIES_COLORS.length];
+ });
+}
+
+/** The text inside a segment, or '' when it would not fit. */
+export function segmentText(s: MekkoSegment, width: number, mode: MekkoLabels, percent: string, value: string): string {
+ if (mode === 'none' || s.h < LABEL_H) return '';
+ const fits = (t: string) => textWidth(t, FONT) <= width - 6;
+ if (mode === 'percent') return fits(percent) ? percent : '';
+ if (mode === 'value') return fits(value) ? value : '';
+ const both = `${percent} · ${value}`;
+ if (fits(both)) return both;
+ return fits(percent) ? percent : '';
+}
+
+const pct = (v: number, of: number) => `${of > 0 ? (v / of) * 100 : 0}%`;
+
+function segment(
+ s: MekkoSegment,
+ col: MekkoColumn,
+ ctx: ChartContext,
+ width: number,
+ colors: string[],
+ mode: MekkoLabels,
+): TemplateResult {
+ const e = ctx.items[s.cell.index];
+ const name = colors[s.category];
+ const percent = `${formatNumber(s.share * 100, s.share > 0 && s.share < 0.01 ? 1 : 0, ctx.hass)}%`;
+ const text = segmentText(s, col.w, mode, percent, e.display);
+ const label = `${e.label} (${percent}, ${col.name})`;
+ return html`
+ ${text ? html`${text} ` : nothing}
+
`;
+}
+
+const FIELDS: FieldBinding[] = [
+ { name: 'marimekko_segment_labels', path: ['segment_labels'], default: 'percent' },
+ ...GROUP_FIELDS,
+];
+
+export function marimekkoEditor(ctx: ChartEditorContext): TemplateResult {
+ const schema = cachedSchema('marimekko', ctx.hass, () => [
+ { name: 'marimekko_segment_labels', selector: choice(ctx.hass, 'marimekko_segment_labels', MEKKO_LABELS) },
+ groupBySchema(ctx.hass),
+ ]);
+ return chartForm(withGroupList(ctx), 'chart', schema, FIELDS, HIERARCHY_LABELS);
+}
+
+const ENTITY_FIELDS: FieldBinding[] = [
+ { name: 'marimekko_group', path: ['group'], default: '' },
+ { name: 'marimekko_category', path: ['category'], default: '' },
+ { name: 'marimekko_color', path: ['color'] },
+];
+const ENTITY_SCHEMA = [
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'marimekko_group', selector: { text: {} } },
+ { name: 'marimekko_category', selector: { text: {} } },
+ ],
+ },
+ { name: 'marimekko_color', selector: { text: {} } },
+];
+
+export function validateMarimekko(raw: CardConfig): void {
+ validateGroups(raw);
+ if (raw.segment_labels !== undefined && !MEKKO_LABELS.includes(raw.segment_labels as MekkoLabels)) {
+ throw new Error(`"segment_labels" must be one of: ${MEKKO_LABELS.join(', ')}`);
+ }
+ (raw.entities ?? []).forEach((e, i) => {
+ const category = typeof e === 'object' && e ? (e as MekkoEntity).category : undefined;
+ if (category !== undefined && category !== null && typeof category !== 'string') {
+ throw new Error(`Entity ${i + 1}: "category" must be text, such as "Heating"`);
+ }
+ });
+}
+
+function render(ctx: ChartContext): TemplateResult {
+ const width = Math.max(120, chartWidth(ctx) - 32);
+ const cells = cellsOf(ctx);
+ const layout = marimekkoLayout(cells, width, HEIGHT, GAP, ctx.config.sort as MekkoSort);
+ const mode = (ctx.raw.segment_labels as MekkoLabels | undefined) ?? 'percent';
+ const { show } = ctx.config;
+ const unit = sharedUnit(ctx.items);
+ const noReading = ctx.items.map((e, index) => ({ e, index })).filter(({ e }) => !e.available);
+ const missing = noReading.length
+ ? html`
+ ${localize(ctx.hass, 'treemap_no_reading')}
+ ${noReading.map(
+ ({ e, index }) =>
+ html`${e.name} (${e.display}) `,
+ )}
+
`
+ : nothing;
+ if (!layout.columns.length) {
+ return html`${localize(ctx.hass, 'treemap_empty')}
+ ${missing}`;
+ }
+ const colors = categoryColors(layout, (i) => {
+ const c = (ctx.items[i].config as MekkoEntity).color;
+ return typeof c === 'string' && c ? c : undefined;
+ });
+ const total = (col: MekkoColumn) => (unit === undefined ? '' : totalText(col.total, ctx, unit));
+ const fit = (text: string, col: MekkoColumn) => textWidth(text, FONT) <= col.w + GAP;
+ const describe = layout.columns.map((col) => (total(col) ? `${col.name} ${total(col)}` : col.name)).join(', ');
+ const label = localize(ctx.hass, 'marimekko_aria', { columns: describe });
+ const totals = show.value && unit !== undefined;
+ return html`
+ ${
+ totals
+ ? html`
+ ${layout.columns.map((col) =>
+ fit(total(col), col)
+ ? html`${total(col)} `
+ : nothing,
+ )}
+
`
+ : nothing
+ }
+
+ ${layout.columns.map((col) => col.segments.map((s) => segment(s, col, ctx, width, colors, mode)))}
+
+ ${
+ show.name
+ ? html`
+ ${layout.columns.map((col) =>
+ col.w >= 14
+ ? html`${col.name} `
+ : nothing,
+ )}
+
`
+ : nothing
+ }
+ ${
+ layout.categories.length > 1
+ ? html`
+ ${layout.categories.map(
+ (c, i) =>
+ html` ${c} `,
+ )}
+
`
+ : nothing
+ }
+ ${missing}
+
`;
+}
+
+export const marimekko: ChartStyleModule = {
+ layout: 'chart',
+ group: 'totals',
+ height: 290,
+ styles: css`
+ .mekko-wrap {
+ position: relative;
+ }
+ .mekko {
+ position: relative;
+ height: ${HEIGHT}px;
+ }
+ .mekko .segment {
+ position: absolute;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ border-radius: 0;
+ border-bottom: 1.5px solid var(--card-background-color, var(--ha-card-background, #fff));
+ cursor: pointer;
+ outline: none;
+ opacity: 0;
+ transition: opacity var(--cd-duration) var(--cd-easing);
+ }
+ :host([ready]) .mekko .segment {
+ opacity: 1;
+ }
+ :host([static]) .mekko .segment {
+ transition: none;
+ }
+ .mekko .segment:hover {
+ filter: brightness(1.08);
+ }
+ .mekko .segment:focus-visible {
+ box-shadow: inset 0 0 0 2px var(--primary-text-color);
+ }
+ .mekko .segment.text-light {
+ color: #fff;
+ }
+ .mekko .segment.text-dark {
+ color: rgba(0, 0, 0, 0.87);
+ }
+ .mekko .segment.text-theme {
+ color: var(--primary-text-color);
+ }
+ .mekko .segment-text {
+ font-size: ${FONT}px;
+ white-space: nowrap;
+ pointer-events: none;
+ }
+ .mekko-row {
+ position: relative;
+ height: 18px;
+ font-size: 11px;
+ }
+ .mekko-row span {
+ position: absolute;
+ top: 0;
+ overflow: hidden;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ line-height: 18px;
+ }
+ .mekko-totals {
+ color: var(--secondary-text-color);
+ }
+ .mekko-names {
+ margin-top: 2px;
+ color: var(--primary-text-color);
+ font-size: 12px;
+ }
+ .mekko-legend {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 4px 14px;
+ padding-top: 10px;
+ font-size: 12px;
+ color: var(--secondary-text-color);
+ }
+ .mekko-key {
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ }
+ .mekko-key .dot {
+ width: 10px;
+ height: 10px;
+ border-radius: 2px;
+ }
+ .mekko-missing {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 4px 12px;
+ padding-top: 8px;
+ font-size: 0.875em;
+ color: var(--secondary-text-color);
+ }
+ .mekko-missing .entity {
+ cursor: pointer;
+ border-radius: 4px;
+ }
+ .mekko-missing .entity:focus-visible {
+ outline: 2px solid var(--primary-color);
+ }
+ `,
+ thumbnail: () => svg`
+
+
+
+
+
+
+
+ `,
+ validate: validateMarimekko,
+ editor: marimekkoEditor,
+ entityFields: () => ({ schema: ENTITY_SCHEMA, fields: ENTITY_FIELDS }),
+ disconnect: stopChartWidth,
+ render,
+};
diff --git a/src/styles/needle.ts b/src/styles/needle.ts
index 5702767..f8f5ae5 100644
--- a/src/styles/needle.ts
+++ b/src/styles/needle.ts
@@ -15,6 +15,7 @@ import {
} from '../gauge';
import type { Box } from '../gauge';
import { arcPath, needlePath, polar } from '../geometry';
+import { ghostFor, ghostMarks, ghostStyles } from '../gauge-ghost';
import { fitStatusText } from '../status-text';
import type { ResolvedBand } from '../types';
import type { ValueStyleModule } from './index';
@@ -85,6 +86,7 @@ export const needle: ValueStyleModule = {
height: 140,
minColumnWidth: 134,
styles: css`
+ ${ghostStyles}
/* A definite width that shrinks with a narrow tile (the svg inside is sized in %). */
.needle-gauge {
display: flex;
@@ -173,7 +175,7 @@ export const needle: ValueStyleModule = {
white-space: nowrap;
}
`,
- render(e, { show, hass }) {
+ render(e, { show, hass, requestUpdate }) {
const options = e.config.gauge;
const angles = gaugeAngles(DEFAULT_ANGLES, options);
const at = (t: number) => angleAt(angles, t);
@@ -196,6 +198,14 @@ export const needle: ValueStyleModule = {
? values.map((v) => tickmark(at((v - e.min) / range)))
: Array.from({ length: 11 }, (_, i) => tickmark(at(i / 10)));
const step = tickStep(range);
+ // The last day's (or week's) range inside the band arc, under the ticks.
+ const ghost = ghostMarks(
+ ghostFor(hass, e.entityId, e.config.attribute, options?.ghost, requestUpdate),
+ e,
+ options?.ghost,
+ { cx: CX, cy: CY, r: 40.5, width: 6, tick: [36, 44], at },
+ hass,
+ );
const hasTarget = show.target && e.targetPosition !== null;
const labelR = hasTarget ? LABEL_R_TARGET : LABEL_R;
const fitted = customAngles(options) || values.length > 0;
@@ -237,7 +247,7 @@ export const needle: ValueStyleModule = {
style=${style ?? nothing}
aria-hidden="true"
>
- ${arcs} ${ticks} ${labels} ${mark}
+ ${arcs} ${ghost} ${ticks} ${labels} ${mark}
${
e.available
? svg` `
diff --git a/src/styles/pie.ts b/src/styles/pie.ts
index 7039893..f1bc8ad 100644
--- a/src/styles/pie.ts
+++ b/src/styles/pie.ts
@@ -26,9 +26,12 @@ import {
} from '../chart/parts';
import type { Arc, ColorBy, LegendRow } from '../chart/parts';
import { isInteractive } from '../actions';
+import { ENERGY_TOTALS_FIELDS, energyTotalsSchema, energyTotalsVariant } from '../editor/chart-editors';
import type { FieldBinding } from '../editor/schemas';
import type { ChartContext, ChartEditorContext, ChartStyleModule } from './index';
import type { CardConfig } from '../types';
+import { isEnergyTotals } from '../history/energy';
+import { localize } from '../localize';
export const SHAPES = ['donut', 'pie'] as const;
export const PIE_CENTER = ['total', 'none'] as const;
@@ -88,6 +91,10 @@ function render(ctx: ChartContext) {
const width = donut ? THICKNESS : OUTER;
const inner = donut ? (OUTER - THICKNESS) / OUTER : 0;
const drawn = sliceAt.filter(Boolean).length;
+ // Energy dashboard totals with nothing in them: an empty ring would read as no data at all.
+ if (drawn === 0 && isEnergyTotals(items)) {
+ return html`${localize(ctx.hass, 'energy_nothing_flowed')}
`;
+ }
const defs = o.gradient
? svg`${items.map((_, i) => (sliceAt[i] ? gradient(`cd-pie-${i}`, colors[i], inner) : nothing))} `
@@ -164,7 +171,8 @@ const FIELDS: FieldBinding[] = [
];
export function pieEditor(ctx: ChartEditorContext) {
- const schema = cachedSchema('pie', ctx.hass, () => [
+ const schema = cachedSchema(`pie|${energyTotalsVariant(ctx.config)}`, ctx.hass, () => [
+ ...energyTotalsSchema(ctx.hass, ctx.config),
{
type: 'grid',
name: '',
@@ -181,7 +189,7 @@ export function pieEditor(ctx: ChartEditorContext) {
{ name: 'gradient', selector: { boolean: {} } },
{ name: 'show_percent', selector: { boolean: {} } },
]);
- return chartForm(ctx, 'chart', schema, FIELDS);
+ return chartForm(ctx, 'chart', schema, [...ENERGY_TOTALS_FIELDS, ...FIELDS]);
}
export const pie: ChartStyleModule = {
diff --git a/src/styles/radial.ts b/src/styles/radial.ts
index 5c3354e..eb3fb4e 100644
--- a/src/styles/radial.ts
+++ b/src/styles/radial.ts
@@ -4,6 +4,7 @@ import { centerContent, customAngles, gaugeAngles, angleAt, arcBox, union } from
import { arcPath, polar, sweepAngles } from '../geometry';
import { iconOverride } from '../resolve';
import { fitStatusText } from '../status-text';
+import { ghostFor, ghostMarks, ghostStyles } from '../gauge-ghost';
import type { ValueStyleModule } from './index';
let counter = 0;
@@ -62,6 +63,7 @@ export function radialStyle(sweep: 360 | 270): ValueStyleModule {
height: defaultCropped ? 135 : 155,
minColumnWidth: 128,
styles: css`
+ ${ghostStyles}
/* A definite width: the dial is a size container and can't size the tile itself. */
.radial {
display: flex;
@@ -173,7 +175,7 @@ export function radialStyle(sweep: 360 | 270): ValueStyleModule {
white-space: nowrap;
}
`,
- render(e, { show, hass }) {
+ render(e, { show, hass, requestUpdate }) {
const id = gradientId(e.config);
const options = e.config.gauge;
const angles = gaugeAngles(defaults, options);
@@ -206,6 +208,14 @@ export function radialStyle(sweep: 360 | 270): ValueStyleModule {
const [x2, y2] = polar(CX, CY, R + STROKE / 2 + 1, deg);
tick = svg` `;
}
+ // The last day's (or week's) range just inside the track, between it and the centre disc.
+ const ghost = ghostMarks(
+ ghostFor(hass, e.entityId, e.config.attribute, options?.ghost, requestUpdate),
+ e,
+ options?.ghost,
+ { cx: CX, cy: CY, r: 37.5, width: 4, tick: [35, 40.5], at: (t) => angleAt(angles, t) },
+ hass,
+ );
return html`
@@ -217,6 +227,7 @@ export function radialStyle(sweep: 360 | 270): ValueStyleModule {
+ ${ghost}
${
e.available
? svg` {
const c = (ctx.items[i].config as FlowEntity).color;
return typeof c === 'string' && c ? c : undefined;
@@ -294,10 +304,11 @@ function render(ctx: ChartContext): TemplateResult {
const FIELDS: FieldBinding[] = [{ name: 'link_color', path: ['link_color'], default: 'auto' }];
export function sankeyEditor(ctx: ChartEditorContext): TemplateResult {
- const schema = cachedSchema('sankey', ctx.hass, () => [
+ const schema = cachedSchema(`sankey|${energyTotalsVariant(ctx.config)}`, ctx.hass, () => [
+ ...energyTotalsSchema(ctx.hass, ctx.config),
{ name: 'link_color', selector: choice(ctx.hass, 'link_color', LINK_COLORS) },
]);
- return chartForm(ctx, 'chart', schema, FIELDS);
+ return chartForm(ctx, 'chart', schema, [...ENERGY_TOTALS_FIELDS, ...FIELDS]);
}
const ENTITY_FIELDS: FieldBinding[] = [
diff --git a/src/styles/spiral.ts b/src/styles/spiral.ts
new file mode 100644
index 0000000..3b9beb6
--- /dev/null
+++ b/src/styles/spiral.ts
@@ -0,0 +1,551 @@
+import { css, html, nothing, svg } from 'lit';
+import type { TemplateResult } from 'lit';
+import { bandFor, baseColor, legendItems } from '../bands';
+import { hour12Of } from '../chart/axes';
+import {
+ disconnectHistory,
+ frameMessage,
+ frameStyles,
+ historyFrame,
+ periodNav,
+ validateHistoryOptions,
+} from '../chart/frame';
+import type { ChartSeries, HistoryFrame } from '../chart/frame';
+import { chartWidth, stopChartWidth } from '../chart/grid';
+import { colorExtent, fraction, shade } from '../chart/heatmap-grid';
+import {
+ SPIRAL_TURNS,
+ ringRadius,
+ spiralGeometry,
+ spiralPoint,
+ spokes,
+ stretchAt,
+ stretchPath,
+ turnAngle,
+ turnUnder,
+ turnsAt,
+} from '../chart/spiral';
+import type { SpiralGeometry, SpiralTurn, Stretch } from '../chart/spiral';
+import { tooltipEnabled, tooltipStyles, validateTooltipOptions } from '../chart/tooltip';
+import { pickHandlers, pickTooltip, pickedIndex, stopPick } from '../chart/xy';
+import { HISTORY_FIELDS, cachedSchema, chartForm, choice } from '../editor/chart-editors';
+import type { FieldBinding } from '../editor/schemas';
+import { formatNumber, withUnit } from '../format';
+import { AGGREGATES } from '../history/group';
+import { SOURCES } from '../chart/frame';
+import { localize } from '../localize';
+import type { CardConfig, HomeAssistant } from '../types';
+import type { ChartContext, ChartEditorContext, ChartStyleModule } from './index';
+
+/** Turns a spiral draws when `turns` isn't set: a week of days, or four weeks. */
+export const DEFAULT_TURNS: Record = { day: 7, week: 4 };
+/** The most turns: a month of days, or a quarter of weeks. Thinner rings stop being readable. */
+export const MAX_TURNS: Record = { day: 31, week: 13 };
+/** How much of the space between turns each ring fills, in percent. */
+export const DEFAULT_RING = 80;
+export const MIN_RING = 20;
+export const MAX_RING = 100;
+export const SPIRAL_COLORS = ['scale', 'bands'] as const;
+
+/** The drawing's coordinate box, square. */
+const VIEW = 200;
+/** Room round the spiral for the hour labels, in the drawing's units. */
+const MARGIN = 16;
+/** Grid, stretch: one number for the picked stretch (the pointer state holds a single index). */
+const PER_SPIRAL = 100_000;
+/** Largest a spiral is drawn, px; the legend sits beside it on a card wide enough. */
+const MAX_PX = 300;
+const SIDE_PX = 150;
+
+type Raw = CardConfig & {
+ turn?: unknown;
+ turns?: unknown;
+ ring_width?: unknown;
+ color_min?: unknown;
+ color_max?: unknown;
+};
+
+const isNumber = (v: unknown): v is number => typeof v === 'number' && Number.isFinite(v);
+
+export interface SpiralOptions {
+ turn: SpiralTurn;
+ turns: number;
+ /** 0–1 of the space between turns. */
+ ring: number;
+}
+
+export function spiralOptions(raw: CardConfig): SpiralOptions {
+ const r = raw as Raw;
+ const turn = (r.turn as SpiralTurn | undefined) ?? 'day';
+ return {
+ turn,
+ turns: isNumber(r.turns) ? r.turns : DEFAULT_TURNS[turn],
+ ring: (isNumber(r.ring_width) ? r.ring_width : DEFAULT_RING) / 100,
+ };
+}
+
+/**
+ * The card's options as the history frame reads them: the span is `turns` days (or weeks) back
+ * from now, read an hour at a time. The period's offset and buttons stay the card's; its length
+ * and any calendar span are the spiral's.
+ */
+export function spiralRaw(raw: CardConfig): CardConfig {
+ const o = spiralOptions(raw);
+ const period = (raw.period ?? {}) as Record;
+ const kept: Record = {};
+ for (const k of ['offset', 'navigate']) if (period[k] !== undefined) kept[k] = period[k];
+ return { ...raw, group_by: 'hour', period: { ...kept, last: o.turns, unit: o.turn } };
+}
+
+function validate(raw: CardConfig): void {
+ const r = raw as Raw;
+ if (r.turn !== undefined && !SPIRAL_TURNS.includes(r.turn as SpiralTurn)) {
+ throw new Error(`"turn" must be one of: ${SPIRAL_TURNS.join(', ')}`);
+ }
+ const turn = (r.turn as SpiralTurn | undefined) ?? 'day';
+ const max = MAX_TURNS[turn];
+ if (r.turns !== undefined && !(Number.isInteger(r.turns) && (r.turns as number) >= 1 && (r.turns as number) <= max)) {
+ throw new Error(`"turns" must be a whole number from 1 to ${max}`);
+ }
+ if (r.ring_width !== undefined && !(isNumber(r.ring_width) && r.ring_width >= MIN_RING && r.ring_width <= MAX_RING)) {
+ throw new Error(`"ring_width" must be a number from ${MIN_RING} to ${MAX_RING}`);
+ }
+ if (r.color_by !== undefined && !SPIRAL_COLORS.includes(r.color_by as (typeof SPIRAL_COLORS)[number])) {
+ throw new Error(`"color_by" must be one of: ${SPIRAL_COLORS.join(', ')}`);
+ }
+ for (const k of ['color_min', 'color_max'] as const) {
+ if (r[k] !== undefined && !isNumber(r[k])) throw new Error(`"${k}" must be a number`);
+ }
+ if (isNumber(r.color_min) && isNumber(r.color_max) && r.color_min >= r.color_max) {
+ throw new Error('"color_min" must be below "color_max"');
+ }
+ if (r.legend !== undefined && typeof r.legend !== 'boolean') throw new Error('"legend" must be true or false');
+ validateHistoryOptions(spiralRaw(raw));
+ validateTooltipOptions(raw);
+}
+
+/* -------------------------------------------------------------- labels -------------------------------------------------------------- */
+
+const formats = new Map();
+
+function dateFormat(hass: HomeAssistant | undefined, timeZone: string, opts: Intl.DateTimeFormatOptions) {
+ const language = hass?.locale?.language ?? hass?.language ?? 'en';
+ const k = `${language}|${timeZone}|${JSON.stringify(opts)}`;
+ let f = formats.get(k);
+ if (!f) {
+ try {
+ f = new Intl.DateTimeFormat(language, { ...opts, timeZone });
+ } catch {
+ f = new Intl.DateTimeFormat('en', { ...opts, timeZone: 'UTC' });
+ }
+ formats.set(k, f);
+ }
+ return f;
+}
+
+/** The labels round the outside: hours of the day, or the weekdays from the zone's first. */
+function spokeLabels(turn: SpiralTurn, frame: HistoryFrame, hass: HomeAssistant | undefined, wide: boolean) {
+ if (turn === 'week') {
+ const day = dateFormat(hass, 'UTC', { weekday: 'short' });
+ // 1 Jan 2024 was a Monday: weekday n (1 = Monday) is 2024-01-n.
+ return spokes('week').map((f, i) => ({
+ f,
+ text: day.format(Date.UTC(2024, 0, ((frame.zone.firstDay - 1 + i) % 7) + 1)),
+ }));
+ }
+ const hour = dateFormat(hass, 'UTC', { hour: 'numeric', hour12: hour12Of(hass) });
+ return spokes('day', wide ? 3 : 6).map((f) => ({ f, text: hour.format(Date.UTC(2024, 0, 1, Math.round(f * 24))) }));
+}
+
+/* -------------------------------------------------------------- drawing -------------------------------------------------------------- */
+
+/** One group of readings placed on the spiral. */
+interface Piece extends Stretch {
+ t: number;
+ end: number;
+ v: number;
+}
+
+/** The spiral's groups, as stretches of turns from the start of the span; gaps are left out. */
+export function piecesOf(
+ points: { t: number; v: number | null; end?: number }[],
+ start: number,
+ until: number,
+ turn: SpiralTurn,
+ zone: HistoryFrame['zone'],
+): Piece[] {
+ const origin = turnsAt(start, turn, zone);
+ const out: Piece[] = [];
+ for (const p of points) {
+ if (p.v === null || p.t >= until) continue;
+ const end = Math.min(p.end ?? p.t + 3_600_000, until);
+ const u0 = turnsAt(p.t, turn, zone) - origin;
+ const u1 = turnsAt(end, turn, zone) - origin;
+ // The hour the clocks go back happens twice on the wall clock: both draw over the same stretch.
+ if (u1 > u0) out.push({ t: p.t, end, v: p.v, u0, u1 });
+ }
+ return out.sort((a, b) => a.u0 - b.u0);
+}
+
+function legend(s: ChartSeries, extent: [number, number] | undefined, byBands: boolean, ctx: ChartContext) {
+ const e = s.entity;
+ const fmt = (v: number) => formatNumber(v, e.decimals, ctx.hass);
+ if (byBands) {
+ return html`
+ ${legendItems(e.bands, fmt, e.unit).map(
+ (item) =>
+ html` ${item.text} `,
+ )}
+
`;
+ }
+ if (!extent) return nothing;
+ return html`
+ ${fmt(extent[0])}
+
+ ${withUnit(fmt(extent[1]), e.unit)}
+
`;
+}
+
+/** The spiral's size on screen, and whether its legend fits beside it. */
+export function spiralLayout(width: number): { px: number; side: boolean } {
+ const inner = Math.max(120, width - 32);
+ const side = inner >= MAX_PX * 0.8 + SIDE_PX + 16;
+ return { px: Math.round(Math.min(MAX_PX, side ? inner - SIDE_PX - 16 : inner)), side };
+}
+
+function drawSpiral(s: ChartSeries, frame: HistoryFrame, ctx: ChartContext, now: number): TemplateResult {
+ const raw = ctx.raw as Raw;
+ const o = spiralOptions(ctx.raw);
+ const byBands = raw.color_by === 'bands';
+ const { range, zone } = frame;
+ const until = Math.min(range.end, now);
+ const pieces = piecesOf(s.points, range.start, until, o.turn, zone);
+ const turns = turnsAt(range.end, o.turn, zone) - turnsAt(range.start, o.turn, zone);
+ const g: SpiralGeometry = spiralGeometry(VIEW, turns, turnsAt(range.start, o.turn, zone), o.ring, VIEW / 2 - MARGIN);
+ const width = chartWidth(ctx);
+ const layout = spiralLayout(width);
+ const unitPx = VIEW / layout.px;
+ const extent = colorExtent(
+ pieces.map((p) => p.v),
+ {
+ min: isNumber(raw.color_min) ? raw.color_min : undefined,
+ max: isNumber(raw.color_max) ? raw.color_max : undefined,
+ },
+ );
+ const fillOf = (v: number) => {
+ if (byBands) return baseColor(bandFor(v, s.entity.bands).color);
+ return extent ? shade(s.color, fraction(v, extent)) : s.color;
+ };
+ const picked = pickedIndex(ctx.host);
+ const mine = picked !== undefined && Math.floor(picked / PER_SPIRAL) === s.index ? picked % PER_SPIRAL : undefined;
+ const pickedPiece = mine === undefined ? undefined : pieces[mine];
+ const tooltip = tooltipEnabled(ctx.raw);
+ const hover = tooltip
+ ? pickHandlers(ctx, (fx, fy, w) => {
+ const u = turnUnder(g, fx * VIEW, fy * VIEW, (6 * VIEW) / Math.max(1, w));
+ const i = u === undefined ? undefined : stretchAt(pieces, u);
+ return i === undefined ? undefined : s.index * PER_SPIRAL + i;
+ })
+ : undefined;
+ let overlay: TemplateResult | typeof nothing = nothing;
+ if (pickedPiece) {
+ const mid = (pickedPiece.u0 + pickedPiece.u1) / 2;
+ const [x, y] = spiralPoint(g, ringRadius(g, mid), turnAngle(g, mid));
+ const day = dateFormat(ctx.hass, zone.timeZone, { weekday: 'short', day: 'numeric', month: 'short' });
+ const time = dateFormat(ctx.hass, zone.timeZone, {
+ hour: 'numeric',
+ minute: '2-digit',
+ hour12: hour12Of(ctx.hass),
+ });
+ overlay = pickTooltip({
+ x: x / VIEW,
+ y: y / VIEW,
+ plotWidth: layout.px,
+ title: `${day.format(pickedPiece.t)} ${time.format(pickedPiece.t)} – ${time.format(pickedPiece.end)}`,
+ rows: [
+ {
+ color: fillOf(pickedPiece.v),
+ name: s.entity.name,
+ value: withUnit(formatNumber(pickedPiece.v, s.entity.decimals, ctx.hass), s.entity.unit),
+ },
+ ],
+ });
+ }
+ const labels = spokeLabels(o.turn, frame, ctx.hass, layout.px >= 220);
+ const labelR = VIEW / 2 - MARGIN / 2;
+ const font = 11 * unitPx;
+ // Faint guide behind the whole span, so hours with no readings still show where they would be.
+ const track = stretchPath(g, 0, g.turns);
+ const nowMark =
+ frame.live && pieces.length
+ ? (() => {
+ const [x, y] = spiralPoint(g, ringRadius(g, g.turns), turnAngle(g, g.turns));
+ return svg` `;
+ })()
+ : nothing;
+ const turnCount = Math.round(turns);
+ const label = localize(ctx.hass, 'spiral_aria', { name: s.entity.name, n: turnCount });
+ const { show } = ctx.config;
+ const multi = frame.series.length > 1;
+ const describe = localize(ctx.hass, o.turn === 'week' ? 'spiral_turn_week_note' : 'spiral_turn_day_note', {
+ n: turnCount,
+ });
+ return html`
+
+
+
+
+ ${pieces.map((p) => svg` `)}
+
+ ${pickedPiece ? svg` ` : nothing}
+ ${nowMark}
+
+ ${labels.map(({ f, text }) => {
+ const [x, y] = spiralPoint(g, labelR, f * Math.PI * 2);
+ return svg`${text} `;
+ })}
+
+
+ ${overlay}
+
+
+ ${
+ show.name || show.value || multi
+ ? html`
+ ${byBands ? nothing : html` `}
+ ${show.name || multi ? html`${s.entity.name} ` : nothing}
+ ${show.value ? html`${s.entity.display} ` : nothing}
+
`
+ : nothing
+ }
+
${describe}
+
${localize(ctx.hass, 'spiral_inner_oldest')}
+ ${raw.legend === false ? nothing : legend(s, extent, byBands, ctx)}
+
+
`;
+}
+
+/* -------------------------------------------------------------- editor -------------------------------------------------------------- */
+
+const SPIRAL_FIELDS: FieldBinding[] = [
+ { name: 'spiral_turn', path: ['turn'], default: 'day' },
+ { name: 'spiral_turns', path: ['turns'] },
+ ...HISTORY_FIELDS.filter((f) => ['period_offset', 'period_navigate', 'source', 'aggregate'].includes(f.name)),
+ { name: 'color_by', path: ['color_by'], default: 'scale' },
+ { name: 'spiral_ring_width', path: ['ring_width'], default: DEFAULT_RING },
+ { name: 'color_min', path: ['color_min'] },
+ { name: 'color_max', path: ['color_max'] },
+ { name: 'legend', path: ['legend'], default: true },
+ { name: 'tooltip', path: ['tooltip'], default: true },
+];
+
+function spiralEditor(ctx: ChartEditorContext): TemplateResult {
+ const o = spiralOptions(ctx.config);
+ const schema = cachedSchema(`spiral|${o.turn}`, ctx.hass, () => [
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'spiral_turn', selector: choice(ctx.hass, 'spiral_turn', SPIRAL_TURNS) },
+ {
+ name: 'spiral_turns',
+ selector: { number: { min: 1, max: MAX_TURNS[o.turn], mode: 'box', placeholder: DEFAULT_TURNS[o.turn] } },
+ },
+ { name: 'period_offset', selector: { number: { min: 0, mode: 'box' } } },
+ ],
+ },
+ { name: 'period_navigate', selector: { boolean: {} } },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'source', selector: choice(ctx.hass, 'source', SOURCES) },
+ { name: 'aggregate', selector: choice(ctx.hass, 'aggregate', AGGREGATES) },
+ ],
+ },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'color_by', selector: choice(ctx.hass, 'color_by', SPIRAL_COLORS) },
+ {
+ name: 'spiral_ring_width',
+ selector: { number: { min: MIN_RING, max: MAX_RING, step: 5, mode: 'slider', unit_of_measurement: '%' } },
+ },
+ ],
+ },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'color_min', selector: { number: { mode: 'box', step: 'any' } } },
+ { name: 'color_max', selector: { number: { mode: 'box', step: 'any' } } },
+ ],
+ },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ { name: 'legend', selector: { boolean: {} } },
+ { name: 'tooltip', selector: { boolean: {} } },
+ ],
+ },
+ ]);
+ return chartForm(ctx, 'chart', schema, SPIRAL_FIELDS);
+}
+
+/* -------------------------------------------------------------- module -------------------------------------------------------------- */
+
+export const spiral: ChartStyleModule = {
+ layout: 'chart',
+ group: 'history',
+ height: 340,
+ styles: css`
+ ${frameStyles}
+ ${tooltipStyles}
+ .sp {
+ display: flex;
+ align-items: center;
+ gap: 8px 16px;
+ }
+ .sp.stacked {
+ flex-direction: column;
+ align-items: stretch;
+ }
+ .sp + .sp {
+ margin-top: 12px;
+ }
+ .sp-plot {
+ position: relative;
+ flex: none;
+ max-width: 100%;
+ }
+ .sp.stacked .sp-plot {
+ align-self: center;
+ }
+ .sp-plot.hoverable {
+ cursor: crosshair;
+ }
+ .sp-svg {
+ display: block;
+ width: 100%;
+ height: 100%;
+ overflow: visible;
+ opacity: 0;
+ transition: opacity var(--cd-duration) var(--cd-easing);
+ }
+ :host([ready]) .sp-svg {
+ opacity: 1;
+ }
+ :host([static]) .sp-svg {
+ transition: none;
+ }
+ .sp-track {
+ fill: var(--cd-track);
+ }
+ .sp-piece {
+ /* Drawn in its own colour, so neighbouring hours meet without a hairline seam. */
+ stroke-width: 0.3px;
+ }
+ .sp-picked {
+ fill: none;
+ stroke: var(--primary-text-color);
+ stroke-width: 1px;
+ vector-effect: non-scaling-stroke;
+ }
+ .sp-now {
+ fill: var(--primary-text-color);
+ stroke: var(--card-background-color, #fff);
+ stroke-width: 1px;
+ vector-effect: non-scaling-stroke;
+ }
+ .sp-labels text {
+ fill: var(--secondary-text-color);
+ text-anchor: middle;
+ dominant-baseline: central;
+ pointer-events: none;
+ }
+ .sp-side {
+ display: flex;
+ flex-direction: column;
+ gap: 4px;
+ min-width: 0;
+ flex: 1 1 0;
+ }
+ .sp-side .series-item {
+ padding-bottom: 2px;
+ }
+ .sp-note {
+ font-size: 0.8125em;
+ color: var(--secondary-text-color);
+ }
+ .sp-legend {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 4px 10px;
+ padding-top: 6px;
+ font-size: 11px;
+ color: var(--secondary-text-color);
+ font-variant-numeric: tabular-nums;
+ }
+ .sp-legend.scale {
+ gap: 6px;
+ flex-wrap: nowrap;
+ }
+ .sp-gradient {
+ flex: 1 1 auto;
+ min-width: 40px;
+ max-width: 160px;
+ height: 8px;
+ border-radius: 4px;
+ }
+ .sp-key {
+ display: inline-flex;
+ align-items: center;
+ gap: 4px;
+ }
+ .sp-swatch {
+ width: 10px;
+ height: 10px;
+ border-radius: 2px;
+ }
+ `,
+ thumbnail: () => {
+ const g = spiralGeometry(40, 3, 0, 0.7, 19);
+ return svg`
+ ${[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(
+ (k) => svg` `,
+ )}
+ `;
+ },
+ validate,
+ editor: spiralEditor,
+ entityFields: () => ({
+ schema: [{ name: 'series_color', selector: { text: {} } }],
+ fields: [{ name: 'series_color', path: ['color'] }],
+ }),
+ disconnect(host) {
+ disconnectHistory(host);
+ stopChartWidth(host);
+ stopPick(host);
+ },
+ render(ctx) {
+ const now = Date.now();
+ const frame = historyFrame({ ...ctx, raw: spiralRaw(ctx.raw) }, now);
+ const nav = periodNav(frame, ctx);
+ const message = frameMessage(frame, ctx);
+ if (message) return html`${nav}${message}
`;
+ return html`${nav}${frame.series.map((s) => drawSpiral(s, frame, ctx, now))}
`;
+ },
+};
diff --git a/src/styles/streamgraph.ts b/src/styles/streamgraph.ts
index cc86eaf..ed5b45d 100644
--- a/src/styles/streamgraph.ts
+++ b/src/styles/streamgraph.ts
@@ -144,11 +144,12 @@ function streamLabels(
const px = (v: number) => (v / (hi - lo)) * plotPx;
const texts = new Map();
const spots: LabelSpot[] = [];
- for (const s of frame.series) {
- const layer = layers[s.index];
+ // Layers and values follow the drawn series' order; `s.index` names the entity (one may be hidden).
+ for (const [pos, s] of frame.series.entries()) {
+ const layer = layers[pos];
const { at, thickness } = widest(layer);
if (px(thickness) < LABEL_MIN_PX) continue;
- const v = values[s.index][at];
+ const v = values[pos][at];
const amount = share
? `${formatNumber(layer.upper[at] - layer.lower[at], 0, ctx.hass)} %`
: v === null
@@ -169,7 +170,7 @@ function streamLabels(
${spots.map((spot) => {
const left = placed.get(spot.key);
if (left === undefined) return nothing;
- const s = frame.series[spot.key];
+ const s = frame.series.find((x) => x.index === spot.key)!;
return html` (jitter(t, row) * room) / 2);
+}
+
+/** One row: the dots shown, and what the summary is worked out from (every reading, not the sample). */
+interface Row {
+ series: ChartSeries;
+ shown: Reading[];
+ summary?: Summary;
+ total: number;
+ /** The value the sensor held all period, when it took no reading in it (see `dotReadings`). */
+ held?: number;
+}
+
+function rowsOf(frame: HistoryFrame, now: number): Row[] {
+ const until = Math.min(frame.range.end, now);
+ return frame.series.map((series) => {
+ // One dot per reading taken in the period, or the one value a sensor held all period.
+ const { readings, held } = dotReadings(series.points, frame.source === 'history' && !frame.group, until);
+ return {
+ series,
+ shown: sampleReadings(readings, MAX_STRIP_DOTS),
+ // Each reading counts once, as each is one dot: the marker sits among the dots it sums up.
+ summary: summarize(readings),
+ total: held === undefined ? readings.length : 0,
+ ...(held === undefined ? {} : { held }),
+ };
+ });
+}
+
+function markerValue(row: Row, marker: StripMarker): number | undefined {
+ if (!row.summary || marker === 'none') return undefined;
+ return marker === 'mean' ? row.summary.mean : row.summary.median;
+}
+
+function fmt(row: Row, v: number, hass: HomeAssistant | undefined): string {
+ return withUnit(formatNumber(v, row.series.entity.decimals, hass), row.series.entity.unit);
+}
+
+/** The line under a row's name: its marker's value, or how many readings it has. */
+function detail(row: Row, marker: StripMarker, hass: HomeAssistant | undefined): string {
+ if (row.held !== undefined) return localize(hass, 'swarm_no_change', { value: fmt(row, row.held, hass) });
+ if (row.total === 0) return localize(hass, 'swarm_none');
+ const v = markerValue(row, marker);
+ if (v === undefined) return localize(hass, 'swarm_readings', { n: formatNumber(row.total, 0, hass) });
+ return localize(hass, marker === 'mean' ? 'strip_mean_value' : 'strip_median_value', { value: fmt(row, v, hass) });
+}
+
+function drawRow(row: Row, i: number, g: CategoryGeometry, o: StripOptions): SVGTemplateResult {
+ if (row.shown.length === 0) return svg``;
+ const offsets = stripOffsets(
+ row.shown.map((r) => r.t),
+ row.series.index,
+ o.jitter,
+ o.dot,
+ g.bandPx,
+ );
+ const pts = row.shown.map((r, k) => g.at(r.v, i, offsets[k]));
+ // A value held all period is its own median and mean: a line there would only hide its dot.
+ const v = row.held === undefined ? markerValue(row, o.marker) : undefined;
+ const half = Math.max(o.jitter, 0.3) / 2 + 0.06;
+ const marker =
+ v === undefined
+ ? nothing
+ : (() => {
+ const [x1, y1] = g.at(v, i, -half);
+ const [x2, y2] = g.at(v, i, half);
+ // A halo in the card's colour underneath keeps the line clear of the dots it sits among.
+ return svg`
+ `;
+ })();
+ return svg`
+
+ ${marker}
+ `;
+}
+
+function tooltipRows(row: Row, hass: HomeAssistant | undefined): [string, string][] {
+ const s = row.summary;
+ if (!s) return [];
+ const f = (v: number) => fmt(row, v, hass);
+ if (row.held !== undefined) return [[localize(hass, 'swarm_held'), f(row.held)]];
+ return [
+ [localize(hass, 'dist_count'), formatNumber(row.total, 0, hass)],
+ ...(row.shown.length < row.total
+ ? ([[localize(hass, 'swarm_shown'), formatNumber(row.shown.length, 0, hass)]] as [string, string][])
+ : []),
+ [localize(hass, 'dist_median'), f(s.median)],
+ [localize(hass, 'strip_mean'), f(s.mean)],
+ [localize(hass, 'dist_middle'), `${f(s.q1)} – ${f(s.q3)}`],
+ [localize(hass, 'dist_range'), `${f(s.min)} – ${f(s.max)}`],
+ ];
+}
+
+const STRIP_FIELDS: FieldBinding[] = [
+ ...HISTORY_FIELDS,
+ { name: 'strip_marker', path: ['marker'], default: 'median' },
+ { name: 'strip_jitter', path: ['jitter'], default: DEFAULT_JITTER },
+ { name: 'dot_size', path: ['dot_size'], default: DEFAULT_STRIP_DOT },
+ ...CATEGORY_FIELDS,
+];
+
+function stripEditor(ctx: ChartEditorContext): TemplateResult {
+ const schema = cachedSchema(`strip_plot|${historyVariant(ctx.config)}`, ctx.hass, () => [
+ ...historySchema(ctx.hass, ctx.config),
+ { name: 'strip_marker', selector: choice(ctx.hass, 'strip_marker', STRIP_MARKERS) },
+ {
+ type: 'grid',
+ name: '',
+ schema: [
+ {
+ name: 'strip_jitter',
+ selector: { number: { min: 0, max: MAX_JITTER, step: 5, mode: 'slider', unit_of_measurement: '%' } },
+ },
+ {
+ name: 'dot_size',
+ selector: {
+ number: { min: MIN_STRIP_DOT, max: MAX_STRIP_DOT, step: 1, mode: 'box', unit_of_measurement: 'px' },
+ },
+ },
+ ],
+ },
+ ...categorySchema(ctx.hass),
+ ]);
+ return chartForm(ctx, 'chart', schema, STRIP_FIELDS);
+}
+
+const ENTITY_FIELDS = {
+ schema: [{ name: 'fill_color', selector: { text: {} } }],
+ fields: [{ name: 'fill_color', path: ['color'] }],
+};
+
+export const stripPlot: ChartStyleModule = {
+ layout: 'chart',
+ group: 'distribution',
+ height: 240,
+ styles: css`
+ ${frameStyles}
+ ${tooltipStyles}
+ ${layoutStyles}
+ ${categoryStyles}
+ .strip .dots {
+ fill: none;
+ stroke-linecap: round;
+ stroke-opacity: 0.7;
+ }
+ .strip .strip-halo {
+ stroke: var(--card-background-color, #fff);
+ stroke-width: 5px;
+ stroke-linecap: round;
+ }
+ .strip .strip-marker {
+ stroke: var(--primary-text-color);
+ stroke-width: 2px;
+ stroke-linecap: round;
+ }
+ `,
+ thumbnail: () => svg`
+
+ ${[8, 12, 15, 17, 19, 20, 22, 24, 27, 31, 36].map(
+ (x, k) => svg` `,
+ )}
+
+
+ ${[24, 29, 32, 35, 37, 39, 41, 44, 48, 53].map(
+ (x, k) => svg` `,
+ )}
+
+ `,
+ validate(raw: CardConfig) {
+ validateHistoryOptions(raw);
+ validateCategoryOptions(raw);
+ if (raw.marker !== undefined && !STRIP_MARKERS.includes(raw.marker as StripMarker)) {
+ throw new Error(`"marker" must be one of: ${STRIP_MARKERS.join(', ')}`);
+ }
+ const j = raw.jitter;
+ if (j !== undefined && !(typeof j === 'number' && j >= 0 && j <= MAX_JITTER)) {
+ throw new Error(`"jitter" must be a number from 0 to ${MAX_JITTER}`);
+ }
+ const dot = raw.dot_size;
+ if (dot !== undefined && !(typeof dot === 'number' && dot >= MIN_STRIP_DOT && dot <= MAX_STRIP_DOT)) {
+ throw new Error(`"dot_size" must be a number from ${MIN_STRIP_DOT} to ${MAX_STRIP_DOT}`);
+ }
+ },
+ editor: stripEditor,
+ entityFields: () => ENTITY_FIELDS,
+ disconnect(host) {
+ disconnectHistory(host);
+ stopChartWidth(host);
+ stopCategoryHover(host);
+ },
+ render(ctx: ChartContext) {
+ const now = Date.now();
+ const frame = historyFrame(ctx, now);
+ const nav = periodNav(frame, ctx);
+ const layout = { ...chartLayout(ctx.raw), header: 'above' as const };
+ const message = frameMessage(frame, ctx);
+ if (message) return chartFrame(layout, nav, message);
+ const o = stripOptions(ctx.raw);
+ const rows = rowsOf(frame, now);
+ const options = categoryOptions(ctx.raw);
+ const probe = categoryGeometry(ctx, rows.length, { domain: [0, 1] }, ROW_PX);
+ const count = labelCount(probe.valuePx, options.orientation);
+ const all = rows.flatMap((r) => (r.summary ? [r.summary.min, r.summary.max] : []));
+ const scale: ValueScale = numberScale(
+ all.length ? [Math.min(...all), Math.max(...all)] : undefined,
+ ctx.raw,
+ count,
+ ctx.hass,
+ );
+ const geometry = categoryGeometry(ctx, rows.length, scale, ROW_PX);
+ const content = svg`${rows.map((row, i) => drawRow(row, i, geometry, o))}`;
+ const categories: Category[] = rows.map((row) => {
+ const d = detail(row, o.marker, ctx.hass);
+ return {
+ index: row.series.index,
+ name: row.series.entity.name,
+ detail: d,
+ color: row.series.color,
+ label: `${row.series.entity.name}, ${d}`,
+ };
+ });
+ const tooltip = tooltipEnabled(ctx.raw);
+ const at = tooltip ? hoveredBand(ctx.host) : undefined;
+ const hovered = at === undefined ? undefined : rows[at];
+ const label = localize(ctx.hass, 'chart_aria', {
+ style: localize(ctx.hass, 'editor_style_strip_plot'),
+ names: frame.series.map((s) => s.entity.name).join(', '),
+ });
+ return chartFrame(
+ layout,
+ nav,
+ categoryPlot({
+ ctx,
+ geometry,
+ categories,
+ scale,
+ content,
+ label,
+ hover: tooltip,
+ overlay:
+ hovered && hovered.summary && at !== undefined
+ ? bandTooltip(
+ geometry,
+ at,
+ hovered.series.entity.name,
+ tooltipRows(hovered, ctx.hass),
+ hovered.series.color,
+ )
+ : nothing,
+ }),
+ );
+ },
+};
diff --git a/src/styles/wind-rose.ts b/src/styles/wind-rose.ts
index 86b576e..9daefc0 100644
--- a/src/styles/wind-rose.ts
+++ b/src/styles/wind-rose.ts
@@ -25,12 +25,15 @@ import { PERIOD_MS } from '../history/group';
import { parsePeriod, periodRange, stepsFor } from '../history/period';
import type { Period } from '../history/period';
import { storeFor } from '../history/store';
+import { conditionStatus, conditionalPoints, loadConditions } from '../history/condition';
import { zoneFor } from '../history/timezone';
import type { Point, Range, SeriesRequest, Source } from '../history/types';
import { formatNumber, withUnit } from '../format';
import { localize } from '../localize';
import { resolveBands } from '../resolve';
import type { CardConfig, MergedEntity, ResolvedBand } from '../types';
+import { conversion, convertPoints } from '../units';
+import type { Conversion } from '../units';
import type { ChartContext, ChartStyleModule } from './index';
/** A rolling month: long enough for the pattern to show, short enough to load quickly. */
@@ -83,6 +86,18 @@ export function windRoles(ctx: Pick): { direct
return { direction: role(listed[0]), speed: role(listed[1]) };
}
+/**
+ * The unit speeds are shown in, and how to get there: the speed entity's `unit` converts from its
+ * sensor's unit when the card knows the pair (m/s to km/h), as on every other chart; otherwise the
+ * unit is only shown. An attribute has no unit of its own, so it is never converted.
+ */
+export function speedUnit(role: Role, ctx: Pick): { unit: string; conversion?: Conversion } {
+ const own = role.entity.attribute ? '' : String(ctx.hass.states[role.id]?.attributes?.unit_of_measurement ?? '');
+ const unit = role.entity.unit ?? own;
+ const c = role.entity.unit === undefined ? undefined : conversion(own || undefined, role.entity.unit);
+ return c ? { unit, conversion: c } : { unit };
+}
+
/** Everything the rose is drawn from. */
interface WindFrame {
frame: HistoryFrame;
@@ -115,11 +130,16 @@ function loadWind(ctx: ChartContext, direction: Role, speed: Role | undefined, n
live: span.live,
statistics,
});
- const points = (r: SeriesRequest) => loaded.data.get(key(r)) ?? [];
- const dirPoints = points(requests[0]);
- const speedPoints = speed ? points(requests[1]) : undefined;
+ // Each sensor with a `when` (its own or the card's) keeps only the readings taken while it held;
+ // a gap in either drops that stretch from the rose.
+ const roles = speed ? [direction.entity, speed.entity] : [direction.entity];
+ const conditions = loadConditions(ctx.host, ctx.hass, roles, load, span.live, ctx.requestUpdate, ctx.raw);
+ const points = (r: SeriesRequest, role: Role) =>
+ conditionalPoints(role.entity, loaded.data.get(key(r)) ?? [], conditions);
+ const dirPoints = points(requests[0], direction);
+ const speedPoints = speed ? points(requests[1], speed) : undefined;
const frame: HistoryFrame = {
- status: loaded.status,
+ status: conditionStatus(loaded.status, conditions),
error: loaded.error,
range,
period,
@@ -576,18 +596,16 @@ export const windRoseStyle: ChartStyleModule = {
const n = windSectors(ctx.raw);
const speedRole = loaded.speed ? roles.speed : undefined;
- const unit = speedRole
- ? (speedRole.entity.unit ??
- (speedRole.entity.attribute
- ? ''
- : String(ctx.hass.states[speedRole.id]?.attributes?.unit_of_measurement ?? '')))
- : undefined;
+ const speed = speedRole ? speedUnit(speedRole, ctx) : undefined;
+ const unit = speed?.unit;
+ // Speeds, the default bands (picked for the shown unit) and the calm limit all in the shown unit.
+ const speedPoints = loaded.speed && convertPoints(loaded.speed, speed?.conversion);
const defaults = speedDefaults(unit);
const bands: SpeedBand[] = speedRole
- ? speedBands(resolveBands(speedRole.entity.severity, ctx.hass), defaults.from, ctx)
+ ? speedBands(resolveBands(speedRole.entity.severity, ctx.hass, unit), defaults.from, ctx)
: [{ from: 0, color: 'var(--primary-color, #2f6fe4)', label: '' }];
const calm = speedRole ? (calmOption(ctx.raw) ?? defaults.calm) : 0;
- const samples = pairWind(loaded.direction, loaded.speed, loaded.until, loaded.maxHold);
+ const samples = pairWind(loaded.direction, speedPoints, loaded.until, loaded.maxHold);
const rose = windRose(
samples,
n,
@@ -615,7 +633,7 @@ export const windRoseStyle: ChartStyleModule = {
? {
unit: unit ?? '',
decimals: speedRole.index >= 0 ? ctx.items[speedRole.index].decimals : 1,
- points: loaded.speed ?? [],
+ points: speedPoints ?? [],
}
: undefined;
return chartFrame(
diff --git a/src/types.ts b/src/types.ts
index 6b41d11..f593900 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -5,6 +5,7 @@ export type StyleName =
| 'thin'
| 'segmented'
| 'tank'
+ | 'battery'
| 'ring'
| 'needle'
| 'arc'
@@ -20,11 +21,13 @@ export type StyleName =
| 'scatter'
| 'bubble'
| 'heatmap'
+ | 'spiral'
| 'box'
| 'funnel'
| 'radar'
| 'polar_area'
| 'treemap'
+ | 'marimekko'
| 'sunburst'
| 'icicle'
| 'grouped_bars'
@@ -39,17 +42,21 @@ export type StyleName =
| 'candlestick'
| 'violin'
| 'beeswarm'
+ | 'strip_plot'
| 'sankey'
+ | 'chord'
| 'timeline'
| 'climate'
| 'wind_rose'
| 'day_clock'
+ | 'cycle_plot'
| 'trend';
export const STYLE_NAMES: StyleName[] = [
'bar',
'thin',
'segmented',
'tank',
+ 'battery',
'ring',
'needle',
'arc',
@@ -65,11 +72,13 @@ export const STYLE_NAMES: StyleName[] = [
'scatter',
'bubble',
'heatmap',
+ 'spiral',
'box',
'funnel',
'radar',
'polar_area',
'treemap',
+ 'marimekko',
'sunburst',
'icicle',
'grouped_bars',
@@ -84,11 +93,14 @@ export const STYLE_NAMES: StyleName[] = [
'candlestick',
'violin',
'beeswarm',
+ 'strip_plot',
'sankey',
+ 'chord',
'timeline',
'climate',
'wind_rose',
'day_clock',
+ 'cycle_plot',
'trend',
];
export type SortMode = 'none' | 'ascending' | 'descending';
diff --git a/src/units.ts b/src/units.ts
new file mode 100644
index 0000000..d5d9e56
--- /dev/null
+++ b/src/units.ts
@@ -0,0 +1,83 @@
+import type { Point } from './history/types';
+
+/*
+ * Unit conversion. An entity's `unit` (or the card's) used to be display text only: set `unit: kW`
+ * on a sensor reporting W and the card wrote "1500 kW". Now, when the sensor's own unit and the
+ * one asked for are both in one of the families below, the card converts: the value, its
+ * history, and any limit or colour band start read from another entity (from that entity's own
+ * unit). Numbers typed into the config (min: 5, a band from 20) are taken to be in the unit the
+ * card shows, so they are never converted.
+ *
+ * A pair the card doesn't know (different families, a unit it has never heard of, an attribute,
+ * which has no unit) stays display text, as before.
+ */
+
+/** Each unit as [scale, offset] onto its family's base unit: base = value × scale + offset. */
+const FAMILIES: Record> = {
+ energy: { Wh: [1, 0], kWh: [1e3, 0], MWh: [1e6, 0], GWh: [1e9, 0] },
+ power: { W: [1, 0], kW: [1e3, 0], MW: [1e6, 0] },
+ temperature: { '°C': [1, 0], '°F': [5 / 9, (-32 * 5) / 9], K: [1, -273.15] },
+ speed: { 'm/s': [1, 0], 'km/h': [1 / 3.6, 0], mph: [0.44704, 0], kn: [1852 / 3600, 0], 'ft/s': [0.3048, 0] },
+ pressure: {
+ Pa: [1, 0],
+ hPa: [100, 0],
+ mbar: [100, 0],
+ kPa: [1e3, 0],
+ bar: [1e5, 0],
+ inHg: [3386.389, 0],
+ mmHg: [133.322387415, 0],
+ psi: [6894.757293168, 0],
+ },
+ length: { mm: [1, 0], cm: [10, 0], m: [1e3, 0], in: [25.4, 0], ft: [304.8, 0] },
+};
+
+const FAMILY_OF = new Map();
+for (const [family, units] of Object.entries(FAMILIES))
+ for (const unit of Object.keys(units)) FAMILY_OF.set(unit, family);
+
+/** The units a value in `unit` can be converted to, itself first; none for a unit the card doesn't know. */
+export function convertibleUnits(unit: string | undefined): string[] {
+ const family = unit === undefined ? undefined : FAMILY_OF.get(unit);
+ if (!family) return [];
+ return [unit as string, ...Object.keys(FAMILIES[family]).filter((u) => u !== unit)];
+}
+
+/** How a value in one unit becomes another. */
+export interface Conversion {
+ from: string;
+ to: string;
+ /** How much one step of `from` is in `to` (1000 W → 1 kW: 0.001), for choosing decimals. */
+ slope: number;
+ apply(v: number): number;
+}
+
+/** The conversion from `from` to `to`, or undefined when they are the same or not a known pair. */
+export function conversion(from: string | undefined, to: string | undefined): Conversion | undefined {
+ if (from === undefined || to === undefined || from === to) return undefined;
+ const family = FAMILY_OF.get(from);
+ if (!family || FAMILY_OF.get(to) !== family) return undefined;
+ const [fs, fo] = FAMILIES[family][from];
+ const [ts, to0] = FAMILIES[family][to];
+ return { from, to, slope: fs / ts, apply: (v) => (v * fs + fo - to0) / ts };
+}
+
+/**
+ * Decimals for a converted value when none are set: as many as the source had, plus the places a
+ * smaller unit needs (W at 0 shows kW at 3) or less the ones a bigger one doesn't (m/s at 1 shows
+ * km/h at 0). Never below 0 or above 6.
+ */
+export function convertedDecimals(decimals: number, slope: number): number {
+ return Math.min(6, Math.max(0, decimals + Math.round(-Math.log10(slope))));
+}
+
+/** History points in the converted unit: the value, and a statistic's lowest and highest. */
+export function convertPoints(points: Point[], c: Conversion | undefined): Point[] {
+ if (!c) return points;
+ const f = (v: number | null | undefined) => (typeof v === 'number' ? c.apply(v) : v);
+ return points.map((p) => {
+ const out: Point = { ...p, v: p.v === null ? null : c.apply(p.v) };
+ if (p.min !== undefined) out.min = f(p.min);
+ if (p.max !== undefined) out.max = f(p.max);
+ return out;
+ });
+}
diff --git a/test/annotations.test.ts b/test/annotations.test.ts
index 1b347bb..fd7d739 100644
--- a/test/annotations.test.ts
+++ b/test/annotations.test.ts
@@ -349,6 +349,8 @@ describe('annotations in the editor', () => {
type: 'line',
value: '21',
dash: true,
+ history: false,
+ zone: 'none',
label: undefined,
color: undefined,
});
diff --git a/test/anomaly.test.ts b/test/anomaly.test.ts
new file mode 100644
index 0000000..1505b94
--- /dev/null
+++ b/test/anomaly.test.ts
@@ -0,0 +1,322 @@
+import { afterEach, describe, expect, it, vi } from 'vitest';
+import '../src/chartdeck-card';
+import {
+ MIN_NEIGHBOURS,
+ noiseFloor,
+ anomaliesOf,
+ anomalyOptions,
+ bandPath,
+ parseWindow,
+ pickLabels,
+ rollingStats,
+ validateAnomalies,
+ zText,
+} from '../src/chart/anomaly';
+import type { CardConfig, HomeAssistant } from '../src/types';
+import { makeHass } from './helpers/hass';
+
+class Stub extends HTMLElement {
+ [key: string]: unknown;
+}
+for (const tag of ['ha-form', 'ha-expansion-panel', 'ha-selector', 'ha-entity-picker', 'ha-icon-picker', 'ha-switch']) {
+ if (!customElements.get(tag)) customElements.define(tag, class extends Stub {});
+}
+await import('../src/editor/chartdeck-card-editor');
+
+type Card = HTMLElement & { setConfig(c: CardConfig): void; hass?: HomeAssistant; updateComplete: Promise };
+
+const M = 60_000;
+const H = 3_600_000;
+const cfg = (raw: Record) => ({ type: 'custom:chartdeck-card', style: 'line', ...raw }) as CardConfig;
+
+/** A steady wobble around 50 every 10 minutes, with a spike and a dip. */
+function series(n = 60, spikes: Record = { 20: 90, 40: 10 }) {
+ return Array.from({ length: n }, (_, i) => ({ t: i * 10 * M, v: spikes[i] ?? 50 + (i % 2 ? 1 : -1) }));
+}
+
+describe('anomaly maths', () => {
+ it('reads windows as times, or minutes for a bare number', () => {
+ expect(parseWindow('30min')).toBe(30 * M);
+ expect(parseWindow(' 2h ')).toBe(2 * H);
+ expect(parseWindow('1.5d')).toBe(36 * H);
+ expect(parseWindow('1w')).toBe(7 * 24 * H);
+ expect(parseWindow('45s')).toBe(45_000);
+ expect(parseWindow(90)).toBe(90 * M);
+ expect(parseWindow(0)).toBeUndefined();
+ expect(parseWindow('0h')).toBeUndefined();
+ expect(parseWindow('2 hours')).toBeUndefined();
+ expect(parseWindow(true)).toBeUndefined();
+ });
+
+ it('works out each reading against its neighbours, leaving itself out', () => {
+ const stats = rollingStats(series(), 2 * H);
+ expect(stats).toHaveLength(60);
+ // 2 h window: six neighbours either side, twelve in all (fewer at the edges).
+ const spike = stats[20]!;
+ expect(spike.mid).toBeCloseTo(50, 5);
+ // Every neighbour is 1 from the median (a deviation of 1.4826); the series' step noise is a
+ // floor under that, and the larger counts.
+ const sd = Math.max(1.4826, noiseFloor(series()));
+ expect(noiseFloor(series())).toBeGreaterThan(0);
+ expect(spike.sd).toBeCloseTo(sd, 5);
+ expect(spike.z).toBeCloseTo(40 / sd, 5);
+ expect(stats[40]!.z).toBeCloseTo(-40 / sd, 5);
+ // A steady slope has no noise; nor have two readings.
+ expect(noiseFloor([0, 1, 2, 3, 4].map((v) => ({ v })))).toBe(0);
+ expect(noiseFloor([{ v: 1 }, { v: 2 }])).toBe(0);
+ const calm = stats[30]!;
+ expect(Math.abs(calm.z)).toBeLessThan(2);
+ const found = anomaliesOf(stats, 2);
+ expect(found.map((a) => a.t)).toEqual([20 * 10 * M, 40 * 10 * M]);
+ });
+
+ it('still finds a spike several readings wide (the neighbours it sits among do not hide it)', () => {
+ const stats = rollingStats(series(60, { 20: 90, 21: 92, 22: 91 }), 2 * H);
+ const found = anomaliesOf(stats, 3).map((a) => a.t / (10 * M));
+ expect(found.sort((a, b) => a - b)).toEqual([20, 21, 22]);
+ });
+
+ it('falls back to the mean deviation when most neighbours share one value', () => {
+ const mostlyZero = Array.from({ length: 13 }, (_, i) => ({ t: i * M, v: i === 6 ? 50 : i % 4 === 0 ? 1 : 0 }));
+ const s6 = rollingStats(mostlyZero, H)[6]!;
+ expect(s6.mid).toBe(0);
+ expect(s6.sd).toBeGreaterThan(0);
+ expect(Number.isFinite(s6.z)).toBe(true);
+ expect(s6.z).toBeGreaterThan(10);
+ });
+
+ it('skips gaps and carried values, and readings with too few neighbours', () => {
+ const pts = [
+ { t: 0, v: 5, carried: true },
+ { t: M, v: null },
+ ...Array.from({ length: MIN_NEIGHBOURS + 1 }, (_, i) => ({ t: (i + 2) * M, v: i })),
+ ];
+ const stats = rollingStats(pts, 3 * M);
+ expect(stats).toHaveLength(pts.length);
+ expect(stats.every((s) => s === null)).toBe(true);
+ // With room: the gap and carried value stay empty, as do the two readings at either end.
+ const wide = rollingStats(pts, H);
+ expect(wide.map((s) => s !== null)).toEqual([false, false, false, false, true, true, false, false]);
+ expect(rollingStats([], H)).toEqual([]);
+ });
+
+ it('marks any change in a flat stretch as infinitely far out, and none for no change', () => {
+ const flat = Array.from({ length: 10 }, (_, i) => ({ t: i * M, v: i === 5 ? 3 : 2 }));
+ const stats = rollingStats(flat, H);
+ expect(stats[5]!.z).toBe(Infinity);
+ expect(stats[5]!.sd).toBe(0);
+ expect(Math.abs(stats[2]!.z)).toBeLessThan(1);
+ const still = rollingStats(
+ flat.map((p) => ({ ...p, v: 2 })),
+ H,
+ );
+ expect(still[4]!.z).toBe(0);
+ const big = Array.from({ length: 10 }, (_, i) => ({ t: i * M, v: 1e9 + (i === 4 ? -10 : 0) }));
+ expect(rollingStats(big, H)[4]!.z).toBe(-Infinity);
+ });
+
+ it('labels z-scores with a sign, one decimal and a ceiling', () => {
+ expect(zText(3.44)).toBe('+3.4σ');
+ expect(zText(-2.06)).toBe('−2.1σ');
+ expect(zText(10)).toBe('+10.0σ');
+ expect(zText(Infinity)).toBe('over +10σ');
+ expect(zText(-12)).toBe('under −10σ');
+ });
+
+ describe('picking labels', () => {
+ const W = 400;
+ const Hp = 200;
+ const texts = (n: number) => Array.from({ length: n }, () => 'over +10σ');
+
+ it('gives a spike a few readings wide one label, on its furthest-out mark', () => {
+ const marks = [
+ { x: 0.5, y: 0.5, z: 11 },
+ { x: 0.505, y: 0.48, z: 14 },
+ { x: 0.51, y: 0.52, z: 12 },
+ ];
+ const picked = pickLabels(marks, texts(3), W, Hp);
+ expect(picked.map((p) => p.index)).toEqual([1]);
+ });
+
+ it('labels marks far apart, the furthest out first, at most three', () => {
+ const marks = [0.1, 0.3, 0.5, 0.7, 0.9].map((x, i) => ({ x, y: 0.5, z: 4 + i }));
+ const picked = pickLabels(marks, texts(5), W, Hp);
+ expect(picked.map((p) => p.index)).toEqual([4, 3, 2]);
+ // Two series spiking at the same time but far apart up and down each get one.
+ const stacked = pickLabels(
+ [
+ { x: 0.5, y: 0.2, z: 5 },
+ { x: 0.5, y: 0.8, z: -6 },
+ ],
+ texts(2),
+ W,
+ Hp,
+ );
+ expect(stacked.map((p) => p.index)).toEqual([1, 0]);
+ });
+
+ it('keeps every label inside the plot and off dots and obstacles, or leaves it out', () => {
+ // At the top-right corner the label goes below and is held against the right edge.
+ const [corner] = pickLabels([{ x: 0.99, y: 0.01, z: 5 }], texts(1), W, Hp);
+ expect(corner.placed).toEqual({ side: 'below', align: 'end', tier: 0 });
+ // A plot too short for a label: none, though the mark is still there to draw.
+ expect(pickLabels([{ x: 0.5, y: 0.5, z: 5 }], texts(1), W, 20)).toEqual([]);
+ // Header over the whole top half, mark just under it: below, never into the header.
+ const [under] = pickLabels([{ x: 0.5, y: 0.55, z: 5 }], texts(1), W, Hp, [{ l: 0, r: W, t: 0, b: 100 }]);
+ expect(under.placed.side).toBe('below');
+ // Covered everywhere: left out.
+ expect(pickLabels([{ x: 0.5, y: 0.5, z: 5 }], texts(1), W, Hp, [{ l: 0, r: W, t: 0, b: Hp }])).toEqual([]);
+ });
+ });
+
+ it('draws one closed band per unbroken stretch', () => {
+ const s = (t: number) => ({ t, v: 0, mid: 10, sd: 1, z: 0 });
+ const d = bandPath(
+ [s(0), s(1), null, s(3), null, s(5), s(6)],
+ 2,
+ (t) => t * 10,
+ (v) => v,
+ );
+ expect(d).toBe('M0,12L10,12L10,8L0,8ZM50,12L60,12L60,8L50,8Z');
+ expect(
+ bandPath(
+ [],
+ 2,
+ (t) => t,
+ (v) => v,
+ ),
+ ).toBe('');
+ });
+
+ it('checks its options and fills defaults', () => {
+ const v = (raw: Record) => () => validateAnomalies(cfg(raw));
+ expect(v({ anomalies: 'yes' })).toThrow('"anomalies" must be true or false');
+ expect(v({ anomalies_band: 1 })).toThrow('"anomalies_band" must be true or false');
+ expect(v({ anomalies_window: 'soon' })).toThrow(
+ '"anomalies_window" must be a time such as 30min, 2h or 1d (or auto)',
+ );
+ expect(v({ anomalies_sigma: 0 })).toThrow('"anomalies_sigma" must be a number above 0');
+ expect(v({ anomalies_color: 3 })).toThrow('"anomalies_color" must be text');
+ expect(
+ v({ anomalies: true, anomalies_window: 'auto', anomalies_sigma: 3, anomalies_color: 'amber' }),
+ ).not.toThrow();
+ expect(anomalyOptions(cfg({}))).toBeUndefined();
+ expect(anomalyOptions(cfg({ anomalies: true }))).toEqual({ window: undefined, sigma: 3, color: 'red', band: true });
+ expect(
+ anomalyOptions(
+ cfg({
+ anomalies: true,
+ anomalies_window: '3h',
+ anomalies_sigma: 3,
+ anomalies_band: false,
+ anomalies_color: 'blue',
+ }),
+ ),
+ ).toEqual({ window: 3 * H, sigma: 3, color: 'blue', band: false });
+ });
+});
+
+const now = Date.now();
+
+function hassFor() {
+ const rows = Array.from({ length: 145 }, (_, i) => {
+ const t = now - (144 - i) * 10 * M;
+ const v = i === 60 ? 95 : i === 100 ? 5 : 50 + 2 * Math.sin(i / 3);
+ return { s: String(v), lu: t / 1000 };
+ });
+ const hass = makeHass({
+ 'sensor.humidity': ['51', { friendly_name: 'Humidity', unit_of_measurement: '%' }],
+ 'sensor.flat': ['20', { friendly_name: 'Flat', unit_of_measurement: '°C' }],
+ });
+ hass.callWS = vi.fn(async () => ({
+ 'sensor.humidity': rows,
+ 'sensor.flat': [{ s: '20', lu: (now - 23 * H) / 1000 }],
+ })) as HomeAssistant['callWS'];
+ return hass;
+}
+
+async function mount(config: Record) {
+ const card = document.createElement('chartdeck-card') as Card;
+ card.setConfig(cfg({ entities: ['sensor.humidity', 'sensor.flat'], ...config }));
+ card.hass = hassFor();
+ document.body.appendChild(card);
+ await card.updateComplete;
+ await new Promise((r) => setTimeout(r, 0));
+ await card.updateComplete;
+ return card;
+}
+
+const qa = (card: Card, sel: string) => [...card.shadowRoot!.querySelectorAll(sel)];
+
+afterEach(() => {
+ document.body.innerHTML = '';
+});
+
+describe('anomalies on the line chart', () => {
+ it('draws nothing extra until asked', async () => {
+ const card = await mount({});
+ expect(qa(card, '.anomaly-band')).toHaveLength(0);
+ expect(qa(card, '.anomaly-dot')).toHaveLength(0);
+ });
+
+ it('shades the normal band and marks the spike and the dip, labelled with how far out they are', async () => {
+ const card = await mount({ anomalies: true, anomalies_window: '2h', anomalies_color: 'amber' });
+ // The flat series has too few readings to judge: only the humidity gets a band.
+ const bands = qa(card, 'path.anomaly-band');
+ expect(bands).toHaveLength(1);
+ expect(bands[0].getAttribute('fill')).toContain('--primary-color');
+ const dots = qa(card, '.anomaly-dot');
+ expect(dots).toHaveLength(2);
+ const said = dots.map((d) => d.getAttribute('aria-label')).sort();
+ expect(said).toEqual(['Humidity: 5 %, under −10σ from normal', 'Humidity: 95 %, over +10σ from normal']);
+ const layer = card.shadowRoot!.querySelector('.anomaly-layer') as HTMLElement;
+ expect(layer.getAttribute('style')).toContain('--warning-color');
+ const labels = qa(card, '.anomaly-label').map((l) => l.textContent!.trim());
+ expect(labels).toHaveLength(2);
+ expect(labels.some((l) => l.includes('+'))).toBe(true);
+ expect(labels.some((l) => l.includes('−'))).toBe(true);
+ });
+
+ it('leaves out the band when asked, and finds less at a higher sigma with the automatic window', async () => {
+ const card = await mount({ anomalies: true, anomalies_band: false, anomalies_sigma: 6 });
+ expect(qa(card, '.anomaly-band')).toHaveLength(0);
+ expect(qa(card, '.anomaly-dot').length).toBeGreaterThan(0);
+ const strict = await mount({ anomalies: true, anomalies_sigma: 6, anomalies_window: '20min' });
+ expect(qa(strict, '.anomaly-dot')).toHaveLength(0);
+ });
+});
+
+describe('anomaly editor', () => {
+ it('shows a switch, then its options once on, and writes them', async () => {
+ const ed = document.createElement('chartdeck-card-editor') as HTMLElement & {
+ setConfig(c: CardConfig): void;
+ hass?: unknown;
+ updateComplete: Promise;
+ };
+ const events: CardConfig[] = [];
+ ed.addEventListener('config-changed', (e) => events.push((e as CustomEvent).detail.config));
+ ed.hass = makeHass({});
+ const raw = cfg({ entities: ['sensor.a'] });
+ ed.setConfig(raw);
+ document.body.appendChild(ed);
+ await ed.updateComplete;
+ let form = ed.shadowRoot!.querySelector('.section-chart ha-form') as Stub;
+ const names = (form.schema as { name: string }[]).map((f) => f.name);
+ expect(names).toContain('anomalies');
+ expect(JSON.stringify(form.schema)).not.toContain('anomalies_sigma');
+ form.dispatchEvent(
+ new CustomEvent('value-changed', { detail: { value: { ...(form.data as object), anomalies: true } } }),
+ );
+ expect(events.at(-1)).toEqual({ ...raw, anomalies: true });
+ ed.setConfig(events.at(-1)!);
+ await ed.updateComplete;
+ form = ed.shadowRoot!.querySelector('.section-chart ha-form') as Stub;
+ expect(JSON.stringify(form.schema)).toContain('anomalies_sigma');
+ form.dispatchEvent(
+ new CustomEvent('value-changed', {
+ detail: { value: { ...(form.data as object), anomalies_sigma: 4, anomalies_window: '2h' } },
+ }),
+ );
+ expect(events.at(-1)).toEqual({ ...raw, anomalies: true, anomalies_sigma: 4, anomalies_window: '2h' });
+ });
+});
diff --git a/test/badge.test.ts b/test/badge.test.ts
new file mode 100644
index 0000000..182ae87
--- /dev/null
+++ b/test/badge.test.ts
@@ -0,0 +1,299 @@
+import { afterEach, describe, expect, it, vi } from 'vitest';
+import { BADGE_FIELDS, BADGE_ACTION_FIELDS, badgeSchema } from '../src/editor/badge-editor';
+import type { CardConfig, HomeAssistant } from '../src/types';
+import { makeHass } from './helpers/hass';
+import { H, stubEditorElements } from './helpers/chart';
+
+stubEditorElements();
+const { ChartdeckBadge, badgeColor, normalizeBadge, sparkPath } = await import('../src/badge');
+await import('../src/chartdeck-card');
+
+type Badge = HTMLElement & {
+ setConfig(c: Record): void;
+ hass?: HomeAssistant;
+ updateComplete: Promise;
+};
+
+const now = Date.now();
+const states = {
+ 'sensor.grid': ['1.84', { unit_of_measurement: 'kW', friendly_name: 'Grid' }],
+ 'sensor.battery': ['58', { unit_of_measurement: '%', friendly_name: 'Phone', device_class: 'battery' }],
+ 'sensor.off': ['unavailable', { friendly_name: 'Off' }],
+ 'sensor.text': ['hello', {}],
+} as const;
+
+function hassWithHistory(rows: Record = {}) {
+ const hass = makeHass(states as never);
+ hass.callWS = vi.fn(async () => rows) as HomeAssistant['callWS'];
+ return hass;
+}
+
+async function mount(config: Record, hass = hassWithHistory()): Promise {
+ const badge = document.createElement('chartdeck-badge') as Badge;
+ badge.setConfig({ type: 'custom:chartdeck-badge', ...config });
+ badge.hass = hass;
+ document.body.appendChild(badge);
+ await badge.updateComplete;
+ return badge;
+}
+
+const q = (el: Element, sel: string) => el.shadowRoot!.querySelector(sel);
+
+afterEach(() => {
+ document.body.innerHTML = '';
+});
+
+describe('badge config', () => {
+ it('reads the card’s options through the card’s own checks', () => {
+ const { config, style, hours } = normalizeBadge({
+ type: 'custom:chartdeck-badge',
+ entity: 'sensor.grid',
+ style: 'ring',
+ max: 5,
+ severity: [{ from: 0, color: 'green' }],
+ });
+ expect(style).toBe('ring');
+ expect(hours).toBe(24);
+ expect(config.entities[0]).toMatchObject({ entity: 'sensor.grid', max: 5 });
+ expect(config.show).toMatchObject({ name: true, icon: true });
+ expect(
+ normalizeBadge({ type: 'x', entity: 'sensor.a', attribute: 'speed', show_name: false }).config.entities[0],
+ ).toMatchObject({ entity: 'sensor.a', attribute: 'speed' });
+ });
+
+ it('rejects bad options with readable errors', () => {
+ const bad = (c: Record) => () => normalizeBadge({ type: 'x', entity: 'sensor.a', ...c });
+ expect(() => normalizeBadge({ type: 'x' })).toThrow('"entity" is required');
+ expect(bad({ style: 'gauge' })).toThrow('"style" must be one of: value, sparkline, ring, thin');
+ expect(bad({ hours: 0 })).toThrow(/"hours"/);
+ expect(bad({ hours: 500 })).toThrow(/"hours"/);
+ expect(bad({ show_name: 'yes' })).toThrow('"show_name" must be true or false');
+ expect(bad({ color: 3 })).toThrow(/"color"/);
+ expect(bad({ min: 10, max: 5 })).toThrow(/"max"/);
+ expect(() => normalizeBadge(null as never)).toThrow('Invalid configuration');
+ });
+
+ it('picks a battery for its stub, then any number', () => {
+ expect(ChartdeckBadge.getStubConfig(makeHass(states as never))).toEqual({
+ type: 'custom:chartdeck-badge',
+ entity: 'sensor.battery',
+ style: 'ring',
+ });
+ expect(ChartdeckBadge.getStubConfig(makeHass({ 'sensor.b': '2', 'sensor.a': '1' })).entity).toBe('sensor.a');
+ expect(ChartdeckBadge.getStubConfig(makeHass({})).entity).toBe('sensor.example');
+ expect(ChartdeckBadge.getConfigElement().tagName.toLowerCase()).toBe('chartdeck-badge-editor');
+ });
+
+ it('is registered as a custom badge', () => {
+ const list = (window as unknown as { customBadges: { type: string }[] }).customBadges;
+ expect(list.filter((b) => b.type === 'chartdeck-badge')).toHaveLength(1);
+ expect(customElements.get('chartdeck-badge')).toBe(ChartdeckBadge);
+ });
+});
+
+describe('badge maths', () => {
+ it('takes the band colour with bands, else its own, else primary', () => {
+ const e = { band: { color: 'red' } } as never;
+ expect(badgeColor(e, { type: 'x', severity: [{ from: 0, color: 'red' }] })).toBe('var(--error-color, #ef3b5a)');
+ expect(badgeColor(e, { type: 'x', color: '#123456' })).toBe('#123456');
+ expect(badgeColor(e, { type: 'x' })).toBe('var(--primary-color, #2f6fe4)');
+ });
+
+ it('draws a sparkline across the box, broken at gaps, and nothing without readings', () => {
+ const range = { start: 0, end: 100 };
+ const d = sparkPath(
+ [
+ { t: 0, v: 1 },
+ { t: 40, v: 3 },
+ { t: 50, v: null },
+ { t: 60, v: 2 },
+ { t: 100, v: 2 },
+ ],
+ range,
+ );
+ expect(d.match(/M/g)).toHaveLength(2);
+ expect(d.startsWith('M1,')).toBe(true);
+ expect(sparkPath([], range)).toBe('');
+ expect(sparkPath([{ t: 1, v: 1 }], { start: 5, end: 5 })).toBe('');
+ });
+});
+
+describe('badge', () => {
+ it('shows the value, name and a tinted icon, and opens more-info on tap', async () => {
+ const badge = await mount({ entity: 'sensor.grid', severity: [{ from: 0, color: 'green' }] });
+ expect(q(badge, '.value')!.textContent).toBe('1.8 kW');
+ expect(q(badge, '.name')!.textContent).toBe('Grid');
+ expect(q(badge, 'ha-state-icon')).not.toBeNull();
+ expect(q(badge, '.icon-wrap')!.getAttribute('style')).toContain('--success-color');
+ const el = q(badge, '.badge') as HTMLElement;
+ expect(el.getAttribute('role')).toBe('button');
+ expect(el.getAttribute('aria-label')).toBe('Grid, 1.8 kW');
+ const heard = vi.fn();
+ badge.addEventListener('hass-action', heard);
+ el.dispatchEvent(new MouseEvent('pointerdown', { bubbles: true }));
+ el.dispatchEvent(new MouseEvent('pointerup', { bubbles: true }));
+ el.dispatchEvent(new MouseEvent('click', { bubbles: true }));
+ await vi.waitFor(() => expect(heard).toHaveBeenCalled());
+ });
+
+ it('swaps the icon for a dot, hides the name, and is an image without actions', async () => {
+ const badge = await mount({
+ entity: 'sensor.grid',
+ show_icon: false,
+ show_name: false,
+ tap_action: { action: 'none' },
+ });
+ expect(q(badge, '.dot')).not.toBeNull();
+ expect(q(badge, '.name')).toBeNull();
+ expect(q(badge, '.badge')!.getAttribute('role')).toBe('img');
+ expect(q(badge, '.badge')!.hasAttribute('tabindex')).toBe(false);
+ });
+
+ it('fills a ring and a thin bar to the value’s place', async () => {
+ const ring = await mount({ entity: 'sensor.battery', style: 'ring' });
+ expect(q(ring, '.ring .fill')!.getAttribute('style')).toContain('stroke-dasharray: 58 100');
+ const thin = await mount({ entity: 'sensor.grid', style: 'thin', max: 4 });
+ expect(q(thin, '.thin-fill')!.getAttribute('style')).toContain('width: 46%');
+ // A limit can be an entity, as on the card: 1.84 of sensor.battery's 58.
+ const byEntity = await mount({ entity: 'sensor.grid', style: 'thin', max: 'sensor.battery' });
+ expect(q(byEntity, '.thin-fill')!.getAttribute('style')).toContain('width: 3.2%');
+ });
+
+ it('uses its own icon on the value look', async () => {
+ const badge = await mount({ entity: 'sensor.grid', icon: 'mdi:flash' });
+ expect((q(badge, '.icon') as HTMLElement & { icon?: string }).icon).toBe('mdi:flash');
+ });
+
+ it('greys out an unavailable or missing entity without breaking', async () => {
+ const off = await mount({ entity: 'sensor.off', style: 'ring' });
+ expect(q(off, '.badge')!.classList.contains('unavailable')).toBe(true);
+ expect(q(off, '.ring .fill')).toBeNull();
+ expect(q(off, '.value')!.textContent).toBe('Unavailable');
+ const gone = await mount({ entity: 'sensor.gone', style: 'thin' });
+ expect(q(gone, '.value')!.textContent).toBe('Entity not found');
+ const text = await mount({ entity: 'sensor.text' });
+ expect(q(text, '.value')!.textContent).toBe('hello');
+ });
+
+ it('draws a sparkline of the last hours, carrying the last reading to now', async () => {
+ const rows = {
+ 'sensor.grid': [
+ { s: '1', lu: (now - 20 * H) / 1000 },
+ { s: '3', lu: (now - 10 * H) / 1000 },
+ { s: '2', lu: (now - 2 * H) / 1000 },
+ ],
+ };
+ const hass = hassWithHistory(rows);
+ const badge = await mount({ entity: 'sensor.grid', style: 'sparkline', hours: 12 }, hass);
+ expect(q(badge, '.spark-empty')).not.toBeNull();
+ await vi.waitFor(() => expect(q(badge, '.spark path')).not.toBeNull());
+ const call = (hass.callWS as ReturnType).mock.calls[0][0];
+ expect(Date.parse(call.start_time)).toBeGreaterThanOrEqual(now - 12 * H - 1000);
+ expect(q(badge, '.spark path')!.getAttribute('d')).toMatch(/^M1,/);
+ });
+
+ it('redraws only for its own entity, and stops on leaving the page', async () => {
+ const hass = hassWithHistory();
+ const badge = await mount({ entity: 'sensor.grid' }, hass);
+ const update = badge as unknown as { shouldUpdate(c: Map): boolean };
+ const other = { ...hass, states: { ...hass.states, 'sensor.battery': { ...hass.states['sensor.battery'] } } };
+ const mine = { ...hass, states: { ...hass.states, 'sensor.grid': { ...hass.states['sensor.grid'], state: '2' } } };
+ badge.hass = other;
+ expect(update.shouldUpdate(new Map([['hass', hass]]))).toBe(false);
+ badge.hass = mine;
+ expect(update.shouldUpdate(new Map([['hass', hass]]))).toBe(true);
+ expect(update.shouldUpdate(new Map())).toBe(true);
+ badge.remove();
+ document.body.appendChild(badge);
+ await badge.updateComplete;
+ expect(q(badge, '.value')!.textContent).toBe('2.0 kW');
+ });
+});
+
+describe('badge editor', () => {
+ type Editor = HTMLElement & { setConfig(c: CardConfig): void; hass?: unknown; updateComplete: Promise };
+
+ async function editor(config: Record) {
+ const ed = document.createElement('chartdeck-badge-editor') as Editor;
+ ed.hass = makeHass(states as never);
+ ed.setConfig({ type: 'custom:chartdeck-badge', ...config } as CardConfig);
+ const events: CardConfig[] = [];
+ ed.addEventListener('config-changed', (e) => events.push((e as CustomEvent).detail.config));
+ document.body.appendChild(ed);
+ await ed.updateComplete;
+ return { ed, events };
+ }
+ const names = (schema: unknown[]) =>
+ (schema as { name: string; schema?: { name: string }[] }[]).flatMap((f) =>
+ f.schema ? f.schema.map((x) => x.name) : [f.name],
+ );
+
+ it('shows hours only for the sparkline and the icon switch only for the value look', () => {
+ const value = names(badgeSchema(undefined, { type: 'x', entity: 'sensor.grid' }));
+ expect(value).toContain('show_icon');
+ expect(value).toContain('icon');
+ expect(value).toContain('attribute');
+ expect(value).not.toContain('hours');
+ const spark = names(badgeSchema(undefined, { type: 'x', style: 'sparkline' }));
+ expect(spark).toContain('hours');
+ expect(spark).not.toContain('show_icon');
+ expect(spark).not.toContain('icon');
+ expect(spark).not.toContain('attribute');
+ expect(names(badgeSchema(undefined, { type: 'x', show_icon: false }))).not.toContain('icon');
+ // Min and max are limit fields, not plain number boxes in the form.
+ expect(value).not.toContain('min');
+ expect(value).not.toContain('max');
+ // Every option the form shows is one it writes.
+ for (const name of [...value, ...spark]) expect(BADGE_FIELDS.some((f) => f.name === name)).toBe(true);
+ });
+
+ it('writes the form, bands and actions, dropping defaults', async () => {
+ const { ed, events } = await editor({ entity: 'sensor.grid' });
+ const form = ed.shadowRoot!.querySelector('ha-form[data-section="badge"]') as HTMLElement & {
+ data: Record;
+ computeLabel(s: { name: string }): string;
+ };
+ expect(form.data).toMatchObject({ entity: 'sensor.grid', style: 'value', show_name: true, hours: 24 });
+ expect(form.computeLabel({ name: 'style' })).toBe('Look');
+ form.dispatchEvent(
+ new CustomEvent('value-changed', { detail: { value: { ...form.data, style: 'ring', show_name: true } } }),
+ );
+ expect(events.at(-1)).toEqual({ type: 'custom:chartdeck-badge', entity: 'sensor.grid', style: 'ring' });
+ await ed.updateComplete;
+ const limits = [...ed.shadowRoot!.querySelectorAll('cd-limit-field')] as (HTMLElement & {
+ value?: unknown;
+ label?: string;
+ defaultLabel?: string;
+ })[];
+ expect(limits.map((l) => [l.dataset.limit, l.label, l.defaultLabel])).toEqual([
+ ['min', 'Minimum', '0'],
+ ['max', 'Maximum', '100'],
+ ]);
+ limits[1].dispatchEvent(new CustomEvent('value-changed', { detail: { value: 5 } }));
+ expect(events.at(-1)).toMatchObject({ style: 'ring', max: 5 });
+ limits[0].dispatchEvent(new CustomEvent('value-changed', { detail: { value: 'sensor.battery' } }));
+ expect(events.at(-1)).toMatchObject({ min: 'sensor.battery', max: 5 });
+ await ed.updateComplete;
+ expect(limits[0].value).toBe('sensor.battery');
+ limits[0].dispatchEvent(new CustomEvent('value-changed', { detail: { value: undefined } }));
+ expect(events.at(-1)).not.toHaveProperty('min');
+ const bands = ed.shadowRoot!.querySelector('cd-bands-editor')!;
+ bands.dispatchEvent(new CustomEvent('value-changed', { detail: { value: [{ from: 0, color: 'red' }] } }));
+ expect(events.at(-1)!.severity).toEqual([{ from: 0, color: 'red' }]);
+ const actions = ed.shadowRoot!.querySelector('ha-form[data-section="actions"]') as HTMLElement & {
+ data: Record;
+ };
+ expect(Object.keys(actions.data)).toEqual(BADGE_ACTION_FIELDS.map((f) => f.name));
+ actions.dispatchEvent(
+ new CustomEvent('value-changed', { detail: { value: { ...actions.data, hold_action: { action: 'toggle' } } } }),
+ );
+ expect(events.at(-1)).toMatchObject({ style: 'ring', max: 5, hold_action: { action: 'toggle' } });
+ });
+
+ it('draws nothing before it has a config', async () => {
+ const ed = document.createElement('chartdeck-badge-editor') as Editor;
+ document.body.appendChild(ed);
+ await ed.updateComplete;
+ expect(ed.shadowRoot!.querySelector('ha-form')).toBeNull();
+ });
+});
diff --git a/test/battery.test.ts b/test/battery.test.ts
new file mode 100644
index 0000000..2658bff
--- /dev/null
+++ b/test/battery.test.ts
@@ -0,0 +1,168 @@
+import { afterEach, describe, expect, it } from 'vitest';
+import '../src/chartdeck-card';
+import { DEFAULT_BANDS } from '../src/config';
+import type { ResolvedEntity } from '../src/resolve';
+import { batteryColor, batteryColumns } from '../src/styles/battery';
+import { STYLES, isChart } from '../src/styles/index';
+import type { CardConfig } from '../src/types';
+import { makeHass } from './helpers/hass';
+import { stubEditorElements } from './helpers/chart';
+import type { Card, Editor } from './helpers/chart';
+
+stubEditorElements();
+await import('../src/editor/chartdeck-card-editor');
+
+const entity = (value: number | null, own?: Partial) =>
+ ({
+ available: value !== null,
+ value,
+ config: { severity: DEFAULT_BANDS },
+ band: { from: 0, color: 'purple' },
+ ...own,
+ }) as unknown as ResolvedEntity;
+
+describe('battery maths', () => {
+ it('colours red below 20, amber below 40 and green above when no bands are set', () => {
+ expect([5, 19.9, 20, 39, 40, 100].map((v) => batteryColor(entity(v)))).toEqual([
+ 'red',
+ 'red',
+ 'amber',
+ 'amber',
+ 'green',
+ 'green',
+ ]);
+ expect(batteryColor(entity(-3))).toBe('red');
+ expect(batteryColor(entity(null))).toBe('grey');
+ });
+
+ it("uses the card's or the entity's own bands when they are set", () => {
+ expect(batteryColor(entity(5, { config: { severity: [] } } as unknown as Partial