iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
18 lines • 23.4 kB
JavaScript
export const __rspack_esm_id=2302;export const __rspack_esm_ids=[2302];export const __webpack_modules__={92020(t,e,r){r.a(t,async function(t,a){try{r.d(e,{d:()=>c});var o=r(83309),s=r(12010),i=r(95747),n=r(30162),l=t([n,i]);[n,i]=l.then?(await l)():l;const c=(t,e,r,a)=>{const l=a??new Date;return(0,o.r)(t,l)?(0,n.fU)(t,e,r):(0,s.s)(t,l)?(0,i.ZS)(t,e,r):(0,i.aQ)(t,e,r)};a()}catch(t){a(t)}})},96986(t,e,r){r.d(e,{LR:()=>i,m9:()=>n});const a={10:"mdi:battery-10",20:"mdi:battery-20",30:"mdi:battery-30",40:"mdi:battery-40",50:"mdi:battery-50",60:"mdi:battery-60",70:"mdi:battery-70",80:"mdi:battery-80",90:"mdi:battery-90",100:"mdi:battery"},o={10:"M16,18H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",20:"M16,17H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",30:"M16,15H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",40:"M16,14H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",50:"M16,13H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",60:"M16,12H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",70:"M16,10H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",80:"M16,9H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",90:"M16,8H8V6H16M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z",100:"M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.67C6,21.4 6.6,22 7.33,22H16.67A1.33,1.33 0 0,0 18,20.67V5.33C18,4.6 17.4,4 16.67,4Z"},s={10:"mdi:battery-charging-10",20:"mdi:battery-charging-20",30:"mdi:battery-charging-30",40:"mdi:battery-charging-40",50:"mdi:battery-charging-50",60:"mdi:battery-charging-60",70:"mdi:battery-charging-70",80:"mdi:battery-charging-80",90:"mdi:battery-charging-90",100:"mdi:battery-charging"},i=(t,e)=>{const r=Number(t);if(isNaN(r))return"off"===t?"mdi:battery":"on"===t?"mdi:battery-alert":"mdi:battery-unknown";const o=10*Math.round(r/10);return e&&r>=10?s[o]:e?"mdi:battery-charging-outline":r<=5?"mdi:battery-alert-variant-outline":a[o]},n=t=>{const e=Number(t);if(isNaN(e))return"M15.07,12.25L14.17,13.17C13.63,13.71 13.25,14.18 13.09,15H11.05C11.16,14.1 11.56,13.28 12.17,12.67L13.41,11.41C13.78,11.05 14,10.55 14,10C14,8.89 13.1,8 12,8A2,2 0 0,0 10,10H8A4,4 0 0,1 12,6A4,4 0 0,1 16,10C16,10.88 15.64,11.68 15.07,12.25M13,19H11V17H13M16.67,4H15V2H9V4H7.33A1.33,1.33 0 0,0 6,5.33V20.66C6,21.4 6.6,22 7.33,22H16.67C17.4,22 18,21.4 18,20.66V5.33C18,4.59 17.4,4 16.67,4Z";if(e<=5)return"M14 20H6V6H14M14.67 4H13V2H7V4H5.33C4.6 4 4 4.6 4 5.33V20.67C4 21.4 4.6 22 5.33 22H14.67C15.4 22 16 21.4 16 20.67V5.33C16 4.6 15.4 4 14.67 4M21 7H19V13H21V8M21 15H19V17H21V15Z";const r=10*Math.round(e/10);return o[r]}},72945(t,e,r){var a=r(62826),o=r(5124),s=r(22441),i=r(96986);r(47680);class n extends o.WF{render(){return this.batteryStateObj?o.qy` <ha-icon .icon="${(0,i.LR)(this.batteryStateObj.state,"on"===this.batteryChargingStateObj?.state)}"></ha-icon> `:o.s6}}(0,a.Cg)([(0,s.MZ)({attribute:!1})],n.prototype,"batteryStateObj",void 0),(0,a.Cg)([(0,s.MZ)({attribute:!1})],n.prototype,"batteryChargingStateObj",void 0),n=(0,a.Cg)([(0,s.EM)("ha-battery-icon")],n)},70773(t,e,r){r.a(t,async function(t,e){try{var a=r(62826),o=r(92913),s=r(35932),i=r(83339),n=r(5124),l=r(22441),c=r(92020),d=t([c]);c=(d.then?(await d)():d)[0];const g=5e3;class h extends n.mN{disconnectedCallback(){super.disconnectedCallback(),this._clearTimeout()}connectedCallback(){super.connectedCallback(),this.datetime&&this._updateNextDay()}createRenderRoot(){return this}firstUpdated(t){super.firstUpdated(t),this._updateAbsolute()}update(t){super.update(t),this._updateAbsolute()}_clearTimeout(){this._timeout&&(window.clearTimeout(this._timeout),this._timeout=void 0)}_updateNextDay(){this._clearTimeout();const t=new Date,e=(0,o.f)((0,s.o)(t),1),r=(0,i.b)(e,t)+g;this._timeout=window.setTimeout(()=>{this._updateNextDay(),this._updateAbsolute()},r)}_updateAbsolute(){this.datetime?this.innerHTML=(0,c.d)(new Date(this.datetime),this.hass.locale,this.hass.config):this.innerHTML=this.hass.localize("ui.components.absolute_time.never")}}(0,a.Cg)([(0,l.MZ)({attribute:!1})],h.prototype,"hass",void 0),(0,a.Cg)([(0,l.MZ)({attribute:!1})],h.prototype,"datetime",void 0),h=(0,a.Cg)([(0,l.EM)("ha-absolute-time")],h),e()}catch(t){e(t)}})},6531(t,e,r){r.a(t,async function(t,e){try{var a=r(62826),o=r(5124),s=r(22441),i=r(70773),n=r(36158),l=r(22675),c=r(64808),d=r(62688),g=t([i,n,d]);[i,n,d]=g.then?(await g)():g;class h extends o.WF{_localizeState(){return this.stateObj.attributes.device_class===c.Sn&&this.stateObj.state!==l.Hh&&this.stateObj.state!==l.HV?o.qy` <hui-timestamp-display .hass="${this.hass}" .ts="${new Date(this.stateObj.state)}" format="relative" capitalize></hui-timestamp-display> `:this.hass.formatEntityState(this.stateObj)}_toggleAbsolute(){this._absoluteTime=!this._absoluteTime}render(){const t=this.stateOverride??this._localizeState();return o.qy` <p class="state">${t}</p> <div class="time-row"> <p class="last-changed" @click="${this._toggleAbsolute}"> ${this._absoluteTime?o.qy` <ha-absolute-time .hass="${this.hass}" .datetime="${this.changedOverride??this.stateObj.last_changed}"></ha-absolute-time> `:o.qy` <ha-relative-time .hass="${this.hass}" .datetime="${this.changedOverride??this.stateObj.last_changed}" capitalize></ha-relative-time> `} </p> <slot name="after-time"></slot> </div> `}constructor(...t){super(...t),this._absoluteTime=!1}}h.styles=o.AH`p{text-align:center;margin:0}.state{font-style:normal;font-weight:var(--ha-font-weight-normal);font-size:36px;line-height:var(--ha-line-height-condensed)}.time-row{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:var(--ha-space-5)}::slotted([slot=after-time]){position:absolute;inset-inline-end:0;top:50%;transform:translateY(-50%)}.last-changed{font-style:normal;font-size:var(--ha-font-size-l);font-weight:var(--ha-font-weight-medium);line-height:var(--ha-line-height-normal);letter-spacing:.1px;padding:var(--ha-space-1) 0;cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}`,(0,a.Cg)([(0,s.MZ)({attribute:!1})],h.prototype,"hass",void 0),(0,a.Cg)([(0,s.MZ)({attribute:!1})],h.prototype,"stateObj",void 0),(0,a.Cg)([(0,s.MZ)({attribute:!1})],h.prototype,"stateOverride",void 0),(0,a.Cg)([(0,s.MZ)({attribute:!1})],h.prototype,"changedOverride",void 0),(0,a.Cg)([(0,s.wk)()],h.prototype,"_absoluteTime",void 0),h=(0,a.Cg)([(0,s.EM)("ha-more-info-state-header")],h),e()}catch(t){e(t)}})},37863(t,e,r){r.d(e,{K:()=>a});const a=r(5124).AH`:host{display:flex;flex-direction:column;flex:1;justify-content:space-between}.controls{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1}.controls:not(:last-child){margin-bottom:var(--ha-space-6)}.controls>:not(:last-child){margin-bottom:var(--ha-space-6)}.buttons{display:flex;align-items:center;justify-content:center;margin-bottom:var(--ha-space-3)}.buttons>*{margin:var(--ha-space-2)}ha-attributes{display:block;width:100%}ha-more-info-control-select-container+ha-attributes:not([empty]){margin-top:var(--ha-space-4)}`},69389(t,e,r){r.a(t,async function(t,a){try{r.r(e);r(18111),r(22489);var o=r(62826),s=r(5124),i=r(22441),n=r(22786),l=r(69093),c=r(82286),d=r(67258),g=(r(72945),r(48374),r(28624),r(67094),r(22675)),h=r(59241),p=r(88360),m=r(22865),u=(r(87507),r(6531)),y=r(37863),w=t([u]);u=(w.then?(await w)():w)[0];const b="M15 13L11 17V14H2V12H11V9L15 13M5 20V16H7V18H17V10.19L12 5.69L7.21 10H4.22L12 3L22 12H19V20H5Z",f="M14,19H18V5H14M6,19H10V5H6V19Z",k="M8,5.14V19.14L19,12.14L8,5.14Z";class v extends s.WF{get _supportsStartPause(){return!!this.stateObj&&((0,c.$)(this.stateObj,m.mB.START_MOWING)||(0,c.$)(this.stateObj,m.mB.PAUSE))}get _startPauseIcon(){return this.stateObj&&(0,m.IQ)(this.stateObj)&&(0,c.$)(this.stateObj,m.mB.PAUSE)?f:k}get _startPauseLabel(){return this.stateObj&&this.hass?(0,m.IQ)(this.stateObj)&&(0,c.$)(this.stateObj,m.mB.PAUSE)?this.hass.localize("ui.dialogs.more_info_control.lawn_mower.pause"):this.hass.localize("ui.dialogs.more_info_control.lawn_mower.start_mowing"):""}get _startPauseDisabled(){return!this.stateObj||(this.stateObj.state===g.Hh||!(0,m.IQ)(this.stateObj)&&!(0,m.yU)(this.stateObj))}_renderBattery(){if(!this.stateObj||!this.hass)return s.s6;const t=this.hass.entities[this.stateObj.entity_id]?.device_id,e=t?this._deviceEntities(t,this.hass.entities):[],r=(0,h.Er)(this.hass,e),a=r?this.hass.states[r.entity_id]:void 0,o=a?(0,l.t)(a):void 0;if(a&&("binary_sensor"===o||!isNaN(a.state))){const t=(0,h.DW)(this.hass,e),r=t?this.hass.states[t?.entity_id]:void 0;return s.qy` <span class="battery" slot="after-time"> ${"binary_sensor"===o?s.s6:s.qy`<span>${Number(a.state).toFixed()}${(0,d.d)(this.hass.locale)}%</span>`} <ha-battery-icon .hass="${this.hass}" .batteryStateObj="${a}" .batteryChargingStateObj="${r}"></ha-battery-icon> </span> `}return s.s6}_handleStartPause(){this.stateObj&&((0,p.j)(this,"light"),(0,m.IQ)(this.stateObj)?this.hass.callService("lawn_mower","pause",{entity_id:this.stateObj.entity_id}):this.hass.callService("lawn_mower","start_mowing",{entity_id:this.stateObj.entity_id}))}_handleDock(){this.stateObj&&((0,p.j)(this,"light"),this.hass.callService("lawn_mower","dock",{entity_id:this.stateObj.entity_id}))}render(){if(!this.stateObj)return s.s6;const t=this.stateObj,e=t.state===g.Hh,r=(0,c.$)(t,m.mB.DOCK),a=this._supportsStartPause||r;return s.qy` <ha-more-info-state-header .hass="${this.hass}" .stateObj="${this.stateObj}"> ${this._renderBattery()} </ha-more-info-state-header> <div class="controls"> <ha-state-control-lawn_mower-status .stateObj="${this.stateObj}" .hass="${this.hass}"></ha-state-control-lawn_mower-status> ${a?s.qy` <div class="buttons"> <ha-control-button-group> ${this._supportsStartPause?s.qy` <ha-control-button .label="${this._startPauseLabel}" @click="${this._handleStartPause}" .disabled="${this._startPauseDisabled}"> <ha-svg-icon .path="${this._startPauseIcon}"></ha-svg-icon> </ha-control-button> `:s.s6} ${r?s.qy` <ha-control-button .label="${this.hass.localize("ui.dialogs.more_info_control.lawn_mower.dock")}" @click="${this._handleDock}" .disabled="${e||!(0,m.gK)(t)}"> <ha-svg-icon .path="${b}"></ha-svg-icon> </ha-control-button> `:s.s6} </ha-control-button-group> </div> `:s.s6} </div> `}static get styles(){return[y.K,s.AH`.battery{display:inline-flex;align-items:center;gap:var(--ha-space-1);font-size:var(--ha-font-size-m);color:var(--secondary-text-color);--mdc-icon-size:18px}.battery span{height:var(--mdc-icon-size);line-height:var(--mdc-icon-size)}ha-state-control-lawn_mower-status{margin-bottom:var(--ha-space-4)}ha-control-button-group{--control-button-group-thickness:48px;justify-content:center}ha-control-button-group ha-control-button{flex:0 0 auto;width:var(--control-button-group-thickness);--control-button-border-radius:var(--ha-border-radius-lg)}`]}constructor(...t){super(...t),this._deviceEntities=(0,n.A)((t,e)=>Object.values(e).filter(e=>e.device_id===t))}}(0,o.Cg)([(0,i.MZ)({attribute:!1})],v.prototype,"hass",void 0),(0,o.Cg)([(0,i.MZ)({attribute:!1})],v.prototype,"stateObj",void 0),v=(0,o.Cg)([(0,i.EM)("more-info-lawn_mower")],v),a()}catch(t){a(t)}})},87507(t,e,r){var a=r(62826),o=r(5124),s=r(22441),i=r(89784),n=r(52658),l=r(22675),c=r(22865);class d extends o.WF{render(){const t=(e=this.stateObj).state===l.Hh?"idle":"error"===e.state?"error":(0,c.IQ)(e)?"mowing":"returning"===e.state?"returning":"paused"===e.state?"paused":"docked"===e.state?"docked":"idle";var e;const r={"--mower-color":(0,n.Se)(this.stateObj)||"var(--state-inactive-color)"};return o.qy` <div class="container ${t}" style="${(0,i.W)(r)}"> <svg viewBox="0 0 240 240" xmlns="http://www.w3.org/2000/svg" class="mower-svg"> <circle cx="120" cy="120" r="110" class="glow" fill="var(--mower-color)" opacity="0.06"/> <g class="dock-indicator"> <rect x="80" y="188" width="80" height="24" rx="7" fill="var(--card-background-color, #fff)" stroke="var(--mower-color)" stroke-width="2"/> </g> <g class="return-path"> <polygon points="120,220 110,208 130,208" fill="var(--mower-color)" stroke="var(--mower-color)" stroke-width="2" stroke-linejoin="round" opacity="0.55"/> </g> <g class="mower-body-rotate"> <g class="mower-body"> <g class="blade-disc"> <circle cx="120" cy="130" r="46" fill="none" stroke="var(--mower-color)" stroke-width="1.5" stroke-dasharray="8 6"/> <circle cx="120" cy="130" r="6" fill="var(--mower-color)"/> <line x1="120" y1="130" x2="120" y2="88" stroke="var(--mower-color)" stroke-width="2" stroke-linecap="round"/> <line x1="120" y1="130" x2="156" y2="151" stroke="var(--mower-color)" stroke-width="2" stroke-linecap="round"/> <line x1="120" y1="130" x2="84" y2="151" stroke="var(--mower-color)" stroke-width="2" stroke-linecap="round"/> </g> <g class="wheel wheel-left"> <rect x="50" y="144" width="12" height="40" rx="5" fill="var(--card-background-color, #fff)" stroke="var(--mower-color)" stroke-width="1.5" opacity="0.7"/> <line class="tread" x1="56" y1="148" x2="56" y2="180" stroke="var(--mower-color)" stroke-width="6" stroke-dasharray="3 3" stroke-linecap="butt" opacity="0.12"/> </g> <g class="wheel wheel-right"> <rect x="178" y="144" width="12" height="40" rx="5" fill="var(--card-background-color, #fff)" stroke="var(--mower-color)" stroke-width="1.5" opacity="0.7"/> <line class="tread" x1="184" y1="148" x2="184" y2="180" stroke="var(--mower-color)" stroke-width="6" stroke-dasharray="3 3" stroke-linecap="butt" opacity="0.12"/> </g> <path d="M 64,98
C 64,50 176,50 176,98
L 176,168
C 176,180 168,186 158,186
L 82,186
C 72,186 64,180 64,168 Z" fill="var(--card-background-color, #fff)" stroke="var(--mower-color)" stroke-width="2" class="body-shell"/> <path d="M 74,102
C 74,60 166,60 166,102
L 166,162
C 166,172 160,176 152,176
L 88,176
C 80,176 74,172 74,162 Z" fill="none" stroke="var(--mower-color)" stroke-width="0.8" opacity="0.2"/> <path d="M 64,102
C 64,52 176,52 176,102" fill="none" stroke="var(--mower-color)" stroke-width="4" stroke-linecap="round" class="bumper"/> <path d="M 72,100
C 72,58 168,58 168,100" fill="none" stroke="var(--mower-color)" stroke-width="1" stroke-linecap="round" opacity="0.15"/> <circle cx="92" cy="68" r="1.5" fill="var(--mower-color)" opacity="0.15"/> <circle cx="120" cy="60" r="1.5" fill="var(--mower-color)" opacity="0.15"/> <circle cx="148" cy="68" r="1.5" fill="var(--mower-color)" opacity="0.15"/> <circle cx="120" cy="78" r="4" fill="var(--mower-color)" opacity="0.08" class="led-ring"/> <circle cx="120" cy="78" r="2.5" fill="var(--mower-color)" opacity="0.5" class="led-dot"/> <circle cx="120" cy="148" r="8" fill="var(--mower-color)" opacity="0.06" class="power-ring"/> <circle cx="120" cy="148" r="4" fill="var(--mower-color)" opacity="0.2" class="power-dot"/> <mask id="outside-body"> <rect width="240" height="240" fill="white"/> <path d="M 60,98
C 60,46 180,46 180,98
L 180,170
C 180,182 172,190 160,190
L 80,190
C 68,190 60,182 60,170 Z" fill="black"/> </mask> <g class="particles" mask="url(#outside-body)"> <path class="grass g1" d="M64,110 q-3,4 -1,8" fill="none" stroke="var(--mower-color)" stroke-width="1.4" stroke-linecap="round"/> <path class="grass g2" d="M63,126 q-4,3 -2,8" fill="none" stroke="var(--mower-color)" stroke-width="1.2" stroke-linecap="round"/> <path class="grass g3" d="M64,140 q-4,3 -2,8" fill="none" stroke="var(--mower-color)" stroke-width="1.5" stroke-linecap="round"/> <path class="grass g4" d="M64,154 q-3,4 -1,8" fill="none" stroke="var(--mower-color)" stroke-width="1.1" stroke-linecap="round"/> <path class="grass g5" d="M66,168 q-3,3 -1,8" fill="none" stroke="var(--mower-color)" stroke-width="1.3" stroke-linecap="round"/> <path class="grass g6" d="M176,110 q3,4 1,8" fill="none" stroke="var(--mower-color)" stroke-width="1.4" stroke-linecap="round"/> <path class="grass g7" d="M177,126 q4,3 2,8" fill="none" stroke="var(--mower-color)" stroke-width="1.2" stroke-linecap="round"/> <path class="grass g8" d="M176,140 q4,3 2,8" fill="none" stroke="var(--mower-color)" stroke-width="1.5" stroke-linecap="round"/> <path class="grass g9" d="M176,154 q3,4 1,8" fill="none" stroke="var(--mower-color)" stroke-width="1.1" stroke-linecap="round"/> <path class="grass g10" d="M174,168 q3,3 1,8" fill="none" stroke="var(--mower-color)" stroke-width="1.3" stroke-linecap="round"/> <path class="grass g11" d="M90,68 q-3,-4 -1,-8" fill="none" stroke="var(--mower-color)" stroke-width="1.3" stroke-linecap="round"/> <path class="grass g12" d="M120,54 q1,-4 -1,-8" fill="none" stroke="var(--mower-color)" stroke-width="1.2" stroke-linecap="round"/> <path class="grass g13" d="M150,68 q3,-4 1,-8" fill="none" stroke="var(--mower-color)" stroke-width="1.3" stroke-linecap="round"/> <path class="grass g14" d="M92,186 q-3,4 -1,8" fill="none" stroke="var(--mower-color)" stroke-width="1.3" stroke-linecap="round"/> <path class="grass g15" d="M120,186 q2,4 0,9" fill="none" stroke="var(--mower-color)" stroke-width="1.1" stroke-linecap="round"/> <path class="grass g16" d="M148,186 q3,4 1,8" fill="none" stroke="var(--mower-color)" stroke-width="1.3" stroke-linecap="round"/> </g> </g> </g> </svg> </div> `}}d.styles=o.AH`:host{display:flex;align-items:center;justify-content:center}.container{width:200px;height:200px;position:relative}.mower-svg{width:100%;height:100%}.dock-indicator,.particles,.return-path{opacity:0;transition:opacity .4s ease}.blade-disc{opacity:0;transition:opacity .4s ease}.mowing .mower-body{animation:mower-wander 12s ease-in-out infinite;transform-origin:120px 120px}.mowing .blade-disc{opacity:.15;animation:blade-spin .8s linear infinite;transform-origin:120px 130px}.mowing .particles{opacity:1}.mowing .grass{animation:grass-eject var(--g-dur,2s) ease-out infinite;animation-delay:var(--g-delay, 0s)}.mowing .g1{--g-x:-36px;--g-y:-14px;--g-rot:-25deg;--g-dur:1.8s;--g-delay:0s}.mowing .g2{--g-x:-40px;--g-y:6px;--g-rot:18deg;--g-dur:2.1s;--g-delay:-0.7s}.mowing .g3{--g-x:-34px;--g-y:16px;--g-rot:32deg;--g-dur:1.9s;--g-delay:-1.3s}.mowing .g4{--g-x:-30px;--g-y:22px;--g-rot:-15deg;--g-dur:2.3s;--g-delay:-1.8s}.mowing .g5{--g-x:36px;--g-y:-14px;--g-rot:25deg;--g-dur:1.8s;--g-delay:-0.3s}.mowing .g6{--g-x:40px;--g-y:6px;--g-rot:-18deg;--g-dur:2.1s;--g-delay:-1s}.mowing .g7{--g-x:34px;--g-y:16px;--g-rot:-32deg;--g-dur:1.9s;--g-delay:-1.6s}.mowing .g8{--g-x:30px;--g-y:22px;--g-rot:15deg;--g-dur:2.3s;--g-delay:-0.5s}.mowing .g9{--g-x:-28px;--g-y:-30px;--g-rot:-40deg;--g-dur:2s;--g-delay:-0.4s}.mowing .g10{--g-x:-12px;--g-y:-34px;--g-rot:-20deg;--g-dur:1.8s;--g-delay:-1.1s}.mowing .g11{--g-x:3px;--g-y:-36px;--g-rot:8deg;--g-dur:1.7s;--g-delay:-1.7s}.mowing .g12{--g-x:14px;--g-y:-34px;--g-rot:20deg;--g-dur:1.8s;--g-delay:-0.2s}.mowing .g13{--g-x:28px;--g-y:-30px;--g-rot:40deg;--g-dur:2s;--g-delay:-0.9s}.mowing .g14{--g-x:-16px;--g-y:28px;--g-rot:22deg;--g-dur:2.2s;--g-delay:-0.8s}.mowing .g15{--g-x:5px;--g-y:30px;--g-rot:-8deg;--g-dur:1.6s;--g-delay:-1.5s}.mowing .g16{--g-x:16px;--g-y:28px;--g-rot:-22deg;--g-dur:2.2s;--g-delay:-0.4s}.mowing .tread{animation:tread-scroll .4s linear infinite}.mowing .led-dot{animation:led-pulse 2s ease-in-out infinite}.mower-body-rotate{transform-origin:120px 120px;transform:rotate(0deg);transition:transform .6s ease-in-out}.returning .mower-body-rotate{transform:rotate(180deg)}.returning .mower-body{animation:returning-drift 3s ease-in-out infinite}.returning .return-path{opacity:1;animation:return-arrow 1.6s ease-in-out infinite;transform-origin:120px 210px}.returning .blade-disc{opacity:.06}.returning .tread{animation:tread-scroll-reverse .6s linear infinite}.docked .dock-indicator{opacity:1}.docked .mower-body{opacity:.75}.docked .glow{animation:docked-glow 4s ease-in-out infinite}.docked .power-ring{animation:charge-pulse 2.5s ease-in-out infinite}.docked .led-dot{animation:charge-pulse 2.5s ease-in-out infinite}.paused .mower-body{opacity:.7}.paused .blade-disc{opacity:.04}.error .glow{animation:error-glow 1.8s ease-in-out infinite}.error .led-dot{animation:error-led .8s ease-in-out infinite}.idle .mower-body{opacity:.65}@keyframes mower-wander{0%{transform:rotate(0deg) translate(0,0)}15%{transform:rotate(0deg) translate(0,-30px)}25%{transform:rotate(0deg) translate(0,0)}32%{transform:rotate(-18deg) translate(0,0)}47%{transform:rotate(-18deg) translate(0,-28px)}57%{transform:rotate(-18deg) translate(0,0)}63%{transform:rotate(12deg) translate(0,0)}78%{transform:rotate(12deg) translate(0,-25px)}88%{transform:rotate(12deg) translate(0,0)}95%{transform:rotate(0deg) translate(0,0)}100%{transform:rotate(0deg) translate(0,0)}}@keyframes blade-spin{to{transform:rotate(360deg)}}@keyframes tread-scroll{to{stroke-dashoffset:-6}}@keyframes tread-scroll-reverse{to{stroke-dashoffset:6}}@keyframes grass-eject{0%{opacity:0;transform:translate(0,0) rotate(0deg) scale(.7)}12%{opacity:.65;transform:translate(calc(var(--g-x) * .12),calc(var(--g-y) * .12)) rotate(calc(var(--g-rot) * .1)) scale(1)}55%{opacity:.35;transform:translate(calc(var(--g-x) * .7),calc(var(--g-y) * .7)) rotate(calc(var(--g-rot) * .7)) scale(.8)}100%{opacity:0;transform:translate(var(--g-x),var(--g-y)) rotate(var(--g-rot)) scale(.4)}}@keyframes led-pulse{0%,100%{opacity:.3}50%{opacity:.8}}@keyframes returning-drift{0%,100%{transform:translateY(-6px)}50%{transform:translateY(4px)}}@keyframes return-arrow{0%,100%{transform:translateY(-6px);opacity:.3}50%{transform:translateY(4px);opacity:.85}}@keyframes docked-glow{0%,100%{opacity:.06}50%{opacity:.14}}@keyframes charge-pulse{0%,100%{opacity:.08}50%{opacity:.25}}@keyframes error-glow{0%,100%{opacity:.08}50%{opacity:.35}}@keyframes error-led{0%,100%{opacity:.2}50%{opacity:.9}}@media (prefers-reduced-motion:reduce){.docked .glow,.docked .led-dot,.docked .power-ring,.error .glow,.error .led-dot,.mowing .blade-disc,.mowing .grass,.mowing .led-dot,.mowing .mower-body,.mowing .tread,.returning .mower-body,.returning .return-path,.returning .tread{animation:none}.mower-body-rotate{transition:none}}`,(0,a.Cg)([(0,s.MZ)({attribute:!1})],d.prototype,"hass",void 0),(0,a.Cg)([(0,s.MZ)({attribute:!1})],d.prototype,"stateObj",void 0),d=(0,a.Cg)([(0,s.EM)("ha-state-control-lawn_mower-status")],d)},83309(t,e,r){r.d(e,{r:()=>s});var a=r(74816),o=r(35932);function s(t,e,r){const[s,i]=(0,a.x)(r?.in,t,e);return+(0,o.o)(s)===+(0,o.o)(i)}},12010(t,e,r){r.d(e,{s:()=>o});var a=r(74816);function o(t,e,r){const[o,s]=(0,a.x)(r?.in,t,e);return o.getFullYear()===s.getFullYear()}}};