UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

1 lines 27.1 kB
export const __rspack_esm_id=51122;export const __rspack_esm_ids=[51122];export const __webpack_modules__={92020(t,a,e){e.a(t,async function(t,i){try{e.d(a,{d:()=>l});var s=e(83309),r=e(12010),o=e(95747),n=e(30162),c=t([n,o]);[n,o]=c.then?(await c)():c;const l=(t,a,e,i)=>{const c=i??new Date;return(0,s.r)(t,c)?(0,n.fU)(t,a,e):(0,r.s)(t,c)?(0,o.ZS)(t,a,e):(0,o.aQ)(t,a,e)};i()}catch(t){i(t)}})},96986(t,a,e){e.d(a,{LR:()=>o,m9:()=>n});const i={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"},s={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"},r={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"},o=(t,a)=>{const e=Number(t);if(isNaN(e))return"off"===t?"mdi:battery":"on"===t?"mdi:battery-alert":"mdi:battery-unknown";const s=10*Math.round(e/10);return a&&e>=10?r[s]:a?"mdi:battery-charging-outline":e<=5?"mdi:battery-alert-variant-outline":i[s]},n=t=>{const a=Number(t);if(isNaN(a))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(a<=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 e=10*Math.round(a/10);return s[e]}},72945(t,a,e){var i=e(62826),s=e(5124),r=e(22441),o=e(96986);e(47680);class n extends s.WF{render(){return this.batteryStateObj?s.qy` <ha-icon .icon="${(0,o.LR)(this.batteryStateObj.state,"on"===this.batteryChargingStateObj?.state)}"></ha-icon> `:s.s6}}(0,i.Cg)([(0,r.MZ)({attribute:!1})],n.prototype,"batteryStateObj",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],n.prototype,"batteryChargingStateObj",void 0),n=(0,i.Cg)([(0,r.EM)("ha-battery-icon")],n)},70773(t,a,e){e.a(t,async function(t,a){try{var i=e(62826),s=e(92913),r=e(35932),o=e(83339),n=e(5124),c=e(22441),l=e(92020),h=t([l]);l=(h.then?(await h)():h)[0];const u=5e3;class d 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,a=(0,s.f)((0,r.o)(t),1),e=(0,o.b)(a,t)+u;this._timeout=window.setTimeout(()=>{this._updateNextDay(),this._updateAbsolute()},e)}_updateAbsolute(){this.datetime?this.innerHTML=(0,l.d)(new Date(this.datetime),this.hass.locale,this.hass.config):this.innerHTML=this.hass.localize("ui.components.absolute_time.never")}}(0,i.Cg)([(0,c.MZ)({attribute:!1})],d.prototype,"hass",void 0),(0,i.Cg)([(0,c.MZ)({attribute:!1})],d.prototype,"datetime",void 0),d=(0,i.Cg)([(0,c.EM)("ha-absolute-time")],d),a()}catch(t){a(t)}})},3688(t,a,e){var i=e(62826),s=e(5124),r=e(22441),o=e(6412);class n extends s.WF{render(){const t=`items-${this.childElementCount}`;return s.qy` <div class="controls"> <div class="controls-scroll ${(0,o.H)({[t]:!0,multiline:this.childElementCount>=4})}"> <slot></slot> </div> </div> `}}n.styles=s.AH`.controls{display:flex;flex-direction:row;justify-content:center}.controls-scroll{display:flex;flex-direction:row;justify-content:flex-start;gap:var(--ha-space-3);margin:auto;overflow:auto;-ms-overflow-style:none;scrollbar-width:none;margin:-2px calc(var(--ha-space-6) * -1);padding:2px var(--ha-space-6)}.controls-scroll::-webkit-scrollbar{display:none}::slotted(*){min-width:120px;max-width:160px;flex:none}@media all and (hover:hover),all and (min-width:600px) and (min-height:501px){.controls-scroll{justify-content:center;flex-wrap:wrap;width:100%;max-width:450px}.controls-scroll.items-4{max-width:300px}.controls-scroll.items-3 ::slotted(*){max-width:140px}.multiline ::slotted(*){width:140px}}`,n=(0,i.Cg)([(0,r.EM)("ha-more-info-control-select-container")],n)},6531(t,a,e){e.a(t,async function(t,a){try{var i=e(62826),s=e(5124),r=e(22441),o=e(70773),n=e(36158),c=e(22675),l=e(64808),h=e(62688),u=t([o,n,h]);[o,n,h]=u.then?(await u)():u;class d extends s.WF{_localizeState(){return this.stateObj.attributes.device_class===l.Sn&&this.stateObj.state!==c.Hh&&this.stateObj.state!==c.HV?s.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 s.qy` <p class="state">${t}</p> <div class="time-row"> <p class="last-changed" @click="${this._toggleAbsolute}"> ${this._absoluteTime?s.qy` <ha-absolute-time .hass="${this.hass}" .datetime="${this.changedOverride??this.stateObj.last_changed}"></ha-absolute-time> `:s.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}}d.styles=s.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,i.Cg)([(0,r.MZ)({attribute:!1})],d.prototype,"hass",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],d.prototype,"stateObj",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],d.prototype,"stateOverride",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],d.prototype,"changedOverride",void 0),(0,i.Cg)([(0,r.wk)()],d.prototype,"_absoluteTime",void 0),d=(0,i.Cg)([(0,r.EM)("ha-more-info-state-header")],d),a()}catch(t){a(t)}})},37863(t,a,e){e.d(a,{K:()=>i});const i=e(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)}`},25039(t,a,e){e.d(a,{Bb:()=>o});var i=e(1087);const s=()=>e.e(2721).then(e.bind(e,11736)),r=()=>e.e(24068).then(e.bind(e,64847)),o=(t,a,e)=>{(0,i.r)(t,"show-child-view",{viewTag:"ha-more-info-view-vacuum-clean-areas",viewImport:s,viewTitle:a("ui.dialogs.more_info_control.vacuum.clean_areas"),viewParams:{entityId:e},viewHeaderTag:"ha-more-info-view-vacuum-clean-areas-header-action",viewHeaderImport:r})}},11113(t,a,e){e.a(t,async function(t,i){try{e.r(a);e(18111),e(22489),e(61701);var s=e(62826),r=e(5124),o=e(22441),n=e(22786),c=e(69093),l=e(82286),h=e(67258),u=(e(72945),e(48374),e(28624),e(56048)),d=(e(47680),e(67094),e(22675)),p=e(59241),m=e(88360),b=e(24717),g=(e(8907),e(3688),e(6531)),v=e(37863),y=e(25039),f=t([u,g]);[u,g]=f.then?(await f)():f;const x="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",_="M12,11A1,1 0 0,0 11,12A1,1 0 0,0 12,13A1,1 0 0,0 13,12A1,1 0 0,0 12,11M12.5,2C17,2 17.11,5.57 14.75,6.75C13.76,7.24 13.32,8.29 13.13,9.22C13.61,9.42 14.03,9.73 14.35,10.13C18.05,8.13 22.03,8.92 22.03,12.5C22.03,17 18.46,17.1 17.28,14.73C16.78,13.74 15.72,13.3 14.79,13.11C14.59,13.59 14.28,14 13.88,14.34C15.87,18.03 15.08,22 11.5,22C7,22 6.91,18.42 9.27,17.24C10.25,16.75 10.69,15.71 10.89,14.79C10.4,14.59 9.97,14.27 9.65,13.87C5.96,15.85 2,15.07 2,11.5C2,7 5.56,6.89 6.74,9.26C7.24,10.25 8.29,10.68 9.22,10.87C9.41,10.39 9.73,9.97 10.14,9.65C8.15,5.96 8.94,2 12.5,2Z",H="M15 13L11 17V14H2V12H11V9L15 13M5 20V16H7V18H17V10.19L12 5.69L7.21 10H4.22L12 3L22 12H19V20H5Z",V="M12,11.5A2.5,2.5 0 0,1 9.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,11.5M12,2A7,7 0 0,0 5,9C5,14.25 12,22 12,22C12,22 19,14.25 19,9A7,7 0 0,0 12,2Z",w="M14,19H18V5H14M6,19H10V5H6V19Z",k="M8,5.14V19.14L19,12.14L8,5.14Z",C="M3,5V19L11,12M13,19H16V5H13M18,5V19H21V5",$="M18,18H6V6H18V18Z",A="M22.08,11.04H20.08V4H13.05V2H11.04V4H4V11.04H2V13.05H4V20.08H11.04V22.08H13.05V20.08H20.08V13.05H22.08V11.04M18.07,18.07H13.05V16.06H11.04V18.07H6V13.05H8.03V11.04H6V6H11.04V8.03H13.05V6H18.07V11.04H16.06V13.05H18.07V18.07M13.05,12.05A1,1 0 0,1 12.05,13.05C11.5,13.05 11.04,12.6 11.04,12.05C11.04,11.5 11.5,11.04 12.05,11.04C12.6,11.04 13.05,11.5 13.05,12.05Z",M="M20 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V4C22 2.9 21.11 2 20 2M4 6L6 4H10.9L4 10.9V6M4 13.7L13.7 4H18.6L4 18.6V13.7M20 18L18 20H13.1L20 13.1V18M20 10.3L10.3 20H5.4L20 5.4V10.3Z";class j extends r.WF{get _stateOverride(){if(this.stateObj&&this.hass)return(0,l.$)(this.stateObj,b.Ri.STATUS)&&this.stateObj.attributes.status?this.hass.formatEntityAttributeValue(this.stateObj,"status"):void 0}_renderBattery(){if(!this.stateObj||!this.hass)return r.s6;const t=this.hass.entities[this.stateObj.entity_id]?.device_id,a=t?this._deviceEntities(t,this.hass.entities):[],e=(0,p.Er)(this.hass,a),i=e?this.hass.states[e.entity_id]:void 0,s=i?(0,c.t)(i):void 0;if(i&&("binary_sensor"===s||!isNaN(i.state))){const t=(0,p.DW)(this.hass,a),e=t?this.hass.states[t?.entity_id]:void 0;return r.qy` <span class="battery" slot="after-time"> ${"binary_sensor"===s?r.s6:r.qy`<span>${Number(i.state).toFixed()}${(0,h.d)(this.hass.locale)}%</span>`} <ha-battery-icon .hass="${this.hass}" .batteryStateObj="${i}" .batteryChargingStateObj="${e}"></ha-battery-icon> </span> `}return(0,l.$)(this.stateObj,b.Ri.BATTERY)&&this.stateObj.attributes.battery_level?r.qy` <span class="battery" slot="after-time"> <span>${Math.round(this.stateObj.attributes.battery_level)}${(0,h.d)(this.hass.locale)}%</span> <ha-icon .icon="${this.stateObj.attributes.battery_icon}"></ha-icon> </span> `:r.s6}_callVacuumService(t){(0,m.j)(this,"light"),this.hass.callService("vacuum",t,{entity_id:this.stateObj.entity_id})}_handleStartPause(){const t=this.stateObj;(0,l.$)(t,b.Ri.STATE)||(0,l.$)(t,b.Ri.START)||!(0,l.$)(t,b.Ri.PAUSE)?(0,b.Ak)(t)?this._callVacuumService("pause"):this._callVacuumService("start"):this._callVacuumService("start_pause")}_handleStop(){this._callVacuumService("stop")}_handleReturnHome(){this._callVacuumService("return_to_base")}_handleLocate(){this._callVacuumService("locate")}_handleCleanSpot(){this._callVacuumService("clean_spot")}_handleCleanAreas(){(0,y.Bb)(this,this.hass.localize,this.stateObj.entity_id)}_handleFanSpeedChanged(t){const a=t.detail.item.value,e=this.stateObj.attributes.fan_speed;a&&e!==a&&this.hass.callService("vacuum","set_fan_speed",{entity_id:this.stateObj.entity_id,fan_speed:a})}get _supportsStartPause(){return!!this.stateObj&&((0,l.$)(this.stateObj,b.Ri.START)||(0,l.$)(this.stateObj,b.Ri.PAUSE))}get _startPauseIcon(){return this.stateObj?(0,l.$)(this.stateObj,b.Ri.STATE)||(0,l.$)(this.stateObj,b.Ri.START)?(0,b.Ak)(this.stateObj)&&(0,l.$)(this.stateObj,b.Ri.PAUSE)?w:k:C:k}get _startPauseLabel(){return this.stateObj&&this.hass?(0,l.$)(this.stateObj,b.Ri.STATE)||(0,l.$)(this.stateObj,b.Ri.START)?(0,b.Ak)(this.stateObj)&&(0,l.$)(this.stateObj,b.Ri.PAUSE)?this.hass.localize("ui.dialogs.more_info_control.vacuum.pause"):this.hass.localize("ui.dialogs.more_info_control.vacuum.start"):this.hass.localize("ui.dialogs.more_info_control.vacuum.start_pause"):""}get _startPauseDisabled(){return!this.stateObj||(this.stateObj.state===d.Hh||!(!(0,l.$)(this.stateObj,b.Ri.STATE)&&!(0,l.$)(this.stateObj,b.Ri.START))&&(!(0,b.Ak)(this.stateObj)&&!(0,b.Bd)(this.stateObj)))}render(){if(!this.stateObj)return r.s6;const t=this.stateObj,a=t.state===d.Hh,e=(0,l.$)(t,b.Ri.STOP),i=(0,l.$)(t,b.Ri.RETURN_HOME),s=(0,l.$)(t,b.Ri.LOCATE),o=(0,l.$)(t,b.Ri.CLEAN_SPOT),n=(0,l.$)(t,b.Ri.CLEAN_AREA),c=(0,l.$)(t,b.Ri.FAN_SPEED),h=this._supportsStartPause||e||i||s||o||n;return r.qy` <ha-more-info-state-header .hass="${this.hass}" .stateObj="${this.stateObj}" .stateOverride="${this._stateOverride}"> ${this._renderBattery()} </ha-more-info-state-header> <div class="controls"> <ha-state-control-vacuum-status .stateObj="${this.stateObj}" .hass="${this.hass}"></ha-state-control-vacuum-status> ${h?r.qy` <div class="buttons"> <ha-control-button-group> ${this._supportsStartPause?r.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> `:r.s6} ${e?r.qy` <ha-control-button .label="${this.hass.localize("ui.dialogs.more_info_control.vacuum.stop")}" @click="${this._handleStop}" .disabled="${a||!(0,b.lg)(t)}"> <ha-svg-icon .path="${$}"></ha-svg-icon> </ha-control-button> `:r.s6} ${i?r.qy` <ha-control-button .label="${this.hass.localize("ui.dialogs.more_info_control.vacuum.return_home")}" @click="${this._handleReturnHome}" .disabled="${a||!(0,b.uu)(t)}"> <ha-svg-icon .path="${H}"></ha-svg-icon> </ha-control-button> `:r.s6} ${s?r.qy` <ha-control-button .label="${this.hass.localize("ui.dialogs.more_info_control.vacuum.locate")}" @click="${this._handleLocate}" .disabled="${a}"> <ha-svg-icon .path="${V}"></ha-svg-icon> </ha-control-button> `:r.s6} ${o?r.qy` <ha-control-button .label="${this.hass.localize("ui.dialogs.more_info_control.vacuum.clean_spot")}" @click="${this._handleCleanSpot}" .disabled="${a}"> <ha-svg-icon .path="${A}"></ha-svg-icon> </ha-control-button> `:r.s6} </ha-control-button-group> </div> `:r.s6} </div> ${c&&t.attributes.fan_speed_list||n?r.qy` <ha-more-info-control-select-container> ${c&&t.attributes.fan_speed_list?r.qy` <ha-control-select-menu .hass="${this.hass}" .label="${this.hass.formatEntityAttributeName(t,"fan_speed")}" .value="${t.attributes.fan_speed}" .disabled="${a}" @wa-select="${this._handleFanSpeedChanged}" .options="${t.attributes.fan_speed_list.map(a=>({value:a,label:this.hass.formatEntityAttributeValue(t,"fan_speed",a)}))}"> <ha-svg-icon slot="icon" .path="${_}"></ha-svg-icon> </ha-control-select-menu> `:r.s6} ${n?r.qy` <button class="clean-areas-button" ?disabled="${a}" @click="${this._handleCleanAreas}"> <div class="icon"> <ha-svg-icon .path="${M}"></ha-svg-icon> </div> <div class="content"> <p class="label"> ${this.hass.localize("ui.dialogs.more_info_control.vacuum.cleaning")} </p> <p class="value"> ${this.hass.localize("ui.dialogs.more_info_control.vacuum.by_area")} </p> </div> <div class="icon"> <ha-svg-icon .path="${x}"></ha-svg-icon> </div> </button> `:r.s6} </ha-more-info-control-select-container> `:r.s6} `}static get styles(){return[v.K,r.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-vacuum-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)}.clean-areas-button{--mdc-icon-size:20px;position:relative;display:flex;flex-direction:row;align-items:center;gap:10px;width:auto;max-width:100%;height:48px;padding:6px 10px;border:none;border-radius:var(--ha-border-radius-lg);background:0 0;color:var(--primary-text-color);font-family:inherit;font-size:var(--ha-font-size-m);font-weight:var(--ha-font-weight-normal);line-height:1.4;letter-spacing:.25px;text-align:left;cursor:pointer;overflow:hidden;box-sizing:border-box;-webkit-tap-highlight-color:transparent;z-index:0;transition:box-shadow 180ms ease-in-out}.clean-areas-button::before{content:"";position:absolute;inset:0;background-color:var(--disabled-color);opacity:.2;transition:background-color 180ms ease-in-out,opacity 180ms ease-in-out}.clean-areas-button:hover::before{background-color:var(--ha-color-on-neutral-quiet)}.clean-areas-button:focus-visible{outline:0;box-shadow:0 0 0 2px var(--secondary-text-color)}.clean-areas-button[disabled]{cursor:not-allowed;color:var(--disabled-color)}.clean-areas-button .icon{display:flex;--mdc-icon-size:20px}.clean-areas-button .content{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;flex:1;min-width:0;overflow:hidden}.clean-areas-button .content p{margin:0;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.clean-areas-button .label{font-size:var(--ha-font-size-s);letter-spacing:.4px}.clean-areas-button .value{font-size:var(--ha-font-size-m)}`]}constructor(...t){super(...t),this._deviceEntities=(0,n.A)((t,a)=>Object.values(a).filter(a=>a.device_id===t))}}(0,s.Cg)([(0,o.MZ)({attribute:!1})],j.prototype,"hass",void 0),(0,s.Cg)([(0,o.MZ)({attribute:!1})],j.prototype,"stateObj",void 0),j=(0,s.Cg)([(0,o.EM)("more-info-vacuum")],j),i()}catch(t){i(t)}})},8907(t,a,e){var i=e(62826),s=e(5124),r=e(22441),o=e(89784),n=e(52658),c=e(22675),l=e(24717);class h extends s.WF{render(){const t=(a=this.stateObj).state===c.Hh?"idle":"error"===a.state?"error":(0,l.Ak)(a)?"cleaning":"returning"===a.state?"returning":"paused"===a.state?"paused":"docked"===a.state?"docked":"idle";var a;const e={"--vacuum-color":(0,n.Se)(this.stateObj)||"var(--state-inactive-color)"};return s.qy` <div class="container ${t}" style="${(0,o.W)(e)}"> <svg viewBox="0 0 240 240" xmlns="http://www.w3.org/2000/svg" class="vacuum-svg"> <circle cx="120" cy="120" r="110" class="glow" fill="var(--vacuum-color)" opacity="0.06"/> <g class="vacuum-body-rotate"> <g class="vacuum-body"> <g class="brush brush-right"> <g class="brush-spokes"> <line x1="174" y1="76" x2="174" y2="64" stroke="var(--vacuum-color)" stroke-width="1.2" stroke-linecap="round" opacity="0.5"/> <line x1="174" y1="76" x2="174" y2="88" stroke="var(--vacuum-color)" stroke-width="1.2" stroke-linecap="round" opacity="0.5"/> <line x1="174" y1="76" x2="162" y2="76" stroke="var(--vacuum-color)" stroke-width="1.2" stroke-linecap="round" opacity="0.5"/> <line x1="174" y1="76" x2="186" y2="76" stroke="var(--vacuum-color)" stroke-width="1.2" stroke-linecap="round" opacity="0.5"/> </g> <circle cx="174" cy="76" r="2" fill="var(--vacuum-color)" opacity="0.5"/> </g> <circle cx="120" cy="120" r="72" fill="var(--card-background-color, #fff)" stroke="var(--vacuum-color)" stroke-width="2"/> <circle cx="120" cy="120" r="66" fill="none" stroke="var(--vacuum-color)" stroke-width="0.8" opacity="0.2"/> <path d="M 60 94 A 68 68 0 0 1 180 94" fill="none" stroke="var(--vacuum-color)" stroke-width="3" stroke-linecap="round" class="bumper"/> <g class="nav-lines" opacity="0.15"> <line x1="120" y1="56" x2="120" y2="74" stroke="var(--vacuum-color)" stroke-width="1.5"/> <line x1="88" y1="63" x2="96" y2="78" stroke="var(--vacuum-color)" stroke-width="1.5"/> <line x1="152" y1="63" x2="144" y2="78" stroke="var(--vacuum-color)" stroke-width="1.5"/> </g> <circle cx="120" cy="108" r="14" fill="var(--card-background-color, #fff)" stroke="var(--vacuum-color)" stroke-width="2" class="lidar-housing"/> <circle cx="120" cy="108" r="9" fill="none" stroke="var(--vacuum-color)" stroke-width="0.8" opacity="0.25"/> <circle cx="120" cy="140" r="8" fill="var(--vacuum-color)" opacity="0.08" class="power-ring"/> <circle cx="120" cy="140" r="4" fill="var(--vacuum-color)" opacity="0.25" class="power-dot"/> </g> </g> <g class="particles"> <circle class="particle p1" cx="120" cy="120" r="2" fill="var(--vacuum-color)"/> <circle class="particle p2" cx="120" cy="120" r="1.5" fill="var(--vacuum-color)"/> <circle class="particle p3" cx="120" cy="120" r="1.5" fill="var(--vacuum-color)"/> <circle class="particle p4" cx="120" cy="120" r="2" fill="var(--vacuum-color)"/> <circle class="particle p5" cx="120" cy="120" r="1.5" fill="var(--vacuum-color)"/> <circle class="particle p6" cx="120" cy="120" r="1.5" fill="var(--vacuum-color)"/> <circle class="particle p7" cx="120" cy="120" r="1" fill="var(--vacuum-color)"/> <circle class="particle p8" cx="120" cy="120" r="1" fill="var(--vacuum-color)"/> </g> <g class="dock-indicator"> <rect x="76" y="188" width="88" height="28" rx="8" fill="var(--card-background-color, #fff)" stroke="var(--vacuum-color)" stroke-width="2"/> </g> <g class="return-path"> <polygon points="120,220 110,206 130,206" fill="var(--vacuum-color)" stroke="var(--vacuum-color)" stroke-width="2" stroke-linejoin="round" opacity="0.55"/> </g> </svg> </div> `}}h.styles=s.AH`:host{display:flex;align-items:center;justify-content:center}.container{width:200px;height:200px;position:relative}.vacuum-svg{width:100%;height:100%}.dock-indicator,.particles,.return-path{opacity:0;transition:opacity .4s ease}.cleaning .vacuum-body{animation:vacuum-wander 12s ease-in-out infinite;transform-origin:120px 120px}.cleaning .brush-right .brush-spokes{animation:brush-spin .6s linear infinite;transform-origin:174px 76px}.cleaning .particles{opacity:1}.cleaning .particle{animation:particle-suck 2.4s ease-in infinite;transform-origin:120px 120px}.cleaning .p1{animation-delay:0s}.cleaning .p2{animation-delay:-.3s}.cleaning .p3{animation-delay:-.6s}.cleaning .p4{animation-delay:-.9s}.cleaning .p5{animation-delay:-1.2s}.cleaning .p6{animation-delay:-1.5s}.cleaning .p7{animation-delay:-1.8s}.cleaning .p8{animation-delay:-2.1s}.cleaning .p1{--particle-x:-90px;--particle-y:-25px}.cleaning .p2{--particle-x:90px;--particle-y:20px}.cleaning .p3{--particle-x:-85px;--particle-y:40px}.cleaning .p4{--particle-x:85px;--particle-y:-35px}.cleaning .p5{--particle-x:-65px;--particle-y:70px}.cleaning .p6{--particle-x:70px;--particle-y:-65px}.cleaning .p7{--particle-x:-75px;--particle-y:-55px}.cleaning .p8{--particle-x:80px;--particle-y:55px}.cleaning .nav-lines{animation:nav-pulse 2s ease-in-out infinite}.vacuum-body-rotate{transform-origin:120px 120px;transform:rotate(0deg);transition:transform .6s ease-in-out}.returning .vacuum-body-rotate{transform:rotate(180deg)}.returning .vacuum-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 .brush-right{opacity:.4}.docked .dock-indicator{opacity:1}.docked .vacuum-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 .brush-right{opacity:.5}.error .glow{animation:error-glow 1.8s ease-in-out infinite}.idle .vacuum-body{opacity:.65}.idle .brush-right{opacity:.4}@keyframes vacuum-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 brush-spin{to{transform:rotate(360deg)}}@keyframes particle-suck{0%{opacity:0;transform:translate(var(--particle-x),var(--particle-y)) scale(1.2)}25%{opacity:.8}80%{opacity:0;transform:translate(calc(var(--particle-x) * .82),calc(var(--particle-y) * .82)) scale(.6)}100%{opacity:0;transform:translate(calc(var(--particle-x) * .82),calc(var(--particle-y) * .82)) scale(.6)}}@keyframes nav-pulse{0%,100%{opacity:.15}50%{opacity:.35}}@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}}@media (prefers-reduced-motion:reduce){.cleaning .brush-right .brush-spokes,.cleaning .nav-lines,.cleaning .particle,.cleaning .vacuum-body,.docked .glow,.docked .power-ring,.error .glow,.returning .return-path,.returning .vacuum-body{animation:none}.vacuum-body-rotate{transition:none}}`,(0,i.Cg)([(0,r.MZ)({attribute:!1})],h.prototype,"hass",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],h.prototype,"stateObj",void 0),h=(0,i.Cg)([(0,r.EM)("ha-state-control-vacuum-status")],h)},83309(t,a,e){e.d(a,{r:()=>r});var i=e(74816),s=e(35932);function r(t,a,e){const[r,o]=(0,i.x)(e?.in,t,a);return+(0,s.o)(r)===+(0,s.o)(o)}},12010(t,a,e){e.d(a,{s:()=>s});var i=e(74816);function s(t,a,e){const[s,r]=(0,i.x)(e?.in,t,a);return s.getFullYear()===r.getFullYear()}}};