UNPKG

iobroker.lovelace

Version:

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

1 lines 28.2 kB
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[51122],{92020:function(t,a,e){e.a(t,async function(t,i){try{e.d(a,{d:function(){return 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=null!=i?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(l){i(l)}})},96986:function(t,a,e){e.d(a,{LR:function(){return o},m9:function(){return 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:function(t,a,e){var i=e(40445),s=e(5124),r=e(67576),o=e(96986);e(47680);let n,c=t=>t;class l extends s.WF{render(){var t;return this.batteryStateObj?(0,s.qy)(n||(n=c` <ha-icon .icon="${0}"></ha-icon> `),(0,o.LR)(this.batteryStateObj.state,"on"===(null===(t=this.batteryChargingStateObj)||void 0===t?void 0:t.state))):s.s6}}(0,i.Cg)([(0,r.MZ)({attribute:!1})],l.prototype,"batteryStateObj",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],l.prototype,"batteryChargingStateObj",void 0),l=(0,i.Cg)([(0,r.EM)("ha-battery-icon")],l)},70773:function(t,a,e){e.a(t,async function(t,a){try{var i=e(40445),s=e(92913),r=e(35932),o=e(83339),n=e(5124),c=e(67576),l=e(92020),u=t([l]);l=(u.then?(await u)():u)[0];const h=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)+h;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(h){a(h)}})},3688:function(t,a,e){var i=e(40445),s=e(5124),r=e(67576),o=e(6412);let n,c,l=t=>t;class u extends s.WF{render(){const t=`items-${this.childElementCount}`;return(0,s.qy)(n||(n=l` <div class="controls"> <div class="controls-scroll ${0}"> <slot></slot> </div> </div> `),(0,o.H)({[t]:!0,multiline:this.childElementCount>=4}))}}u.styles=(0,s.AH)(c||(c=l`.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}}`)),u=(0,i.Cg)([(0,r.EM)("ha-more-info-control-select-container")],u)},6531:function(t,a,e){e.a(t,async function(t,a){try{e(62953);var i=e(40445),s=e(5124),r=e(67576),o=e(70773),n=e(36158),c=e(22675),l=e(64808),u=e(62688),h=t([o,n,u]);[o,n,u]=h.then?(await h)():h;let d,p,m,v,b,g=t=>t;class y extends s.WF{_localizeState(){return this.stateObj.attributes.device_class===l.Sn&&this.stateObj.state!==c.Hh&&this.stateObj.state!==c.HV?(0,s.qy)(d||(d=g` <hui-timestamp-display .hass="${0}" .ts="${0}" format="relative" capitalize></hui-timestamp-display> `),this.hass,new Date(this.stateObj.state)):this.hass.formatEntityState(this.stateObj)}_toggleAbsolute(){this._absoluteTime=!this._absoluteTime}render(){var t,a,e;const i=null!==(t=this.stateOverride)&&void 0!==t?t:this._localizeState();return(0,s.qy)(p||(p=g` <p class="state">${0}</p> <div class="time-row"> <p class="last-changed" @click="${0}"> ${0} </p> <slot name="after-time"></slot> </div> `),i,this._toggleAbsolute,this._absoluteTime?(0,s.qy)(m||(m=g` <ha-absolute-time .hass="${0}" .datetime="${0}"></ha-absolute-time> `),this.hass,null!==(a=this.changedOverride)&&void 0!==a?a:this.stateObj.last_changed):(0,s.qy)(v||(v=g` <ha-relative-time .hass="${0}" .datetime="${0}" capitalize></ha-relative-time> `),this.hass,null!==(e=this.changedOverride)&&void 0!==e?e:this.stateObj.last_changed))}constructor(...t){super(...t),this._absoluteTime=!1}}y.styles=(0,s.AH)(b||(b=g`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})],y.prototype,"hass",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],y.prototype,"stateObj",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],y.prototype,"stateOverride",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],y.prototype,"changedOverride",void 0),(0,i.Cg)([(0,r.wk)()],y.prototype,"_absoluteTime",void 0),y=(0,i.Cg)([(0,r.EM)("ha-more-info-state-header")],y),a()}catch(d){a(d)}})},37863:function(t,a,e){e.d(a,{K:function(){return s}});let i;const s=(0,e(5124).AH)(i||(i=(t=>t)`: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:function(t,a,e){e.d(a,{Bb:function(){return o}});e(3362),e(62953);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:function(t,a,e){e.a(t,async function(t,i){try{e.r(a);e(18111),e(22489),e(61701),e(62953);var s=e(40445),r=e(5124),o=e(67576),n=e(22786),c=e(69093),l=e(82286),u=e(67258),h=(e(72945),e(48374),e(28624),e(56048)),d=(e(47680),e(67094),e(22675)),p=e(59241),m=e(88360),v=e(24717),b=(e(8907),e(3688),e(6531)),g=e(37863),y=e(25039),f=t([h,b]);[h,b]=f.then?(await f)():f;let x,H,_,V,w,k,C,$,A,M,j,O,S,T,L=t=>t;const R="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z",Z="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",z="M15 13L11 17V14H2V12H11V9L15 13M5 20V16H7V18H17V10.19L12 5.69L7.21 10H4.22L12 3L22 12H19V20H5Z",E="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",q="M14,19H18V5H14M6,19H10V5H6V19Z",P="M8,5.14V19.14L19,12.14L8,5.14Z",N="M3,5V19L11,12M13,19H16V5H13M18,5V19H21V5",D="M18,18H6V6H18V18Z",F="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",U="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 Y extends r.WF{get _stateOverride(){if(this.stateObj&&this.hass)return(0,l.$)(this.stateObj,v.Ri.STATUS)&&this.stateObj.attributes.status?this.hass.formatEntityAttributeValue(this.stateObj,"status"):void 0}_renderBattery(){var t;if(!this.stateObj||!this.hass)return r.s6;const a=null===(t=this.hass.entities[this.stateObj.entity_id])||void 0===t?void 0:t.device_id,e=a?this._deviceEntities(a,this.hass.entities):[],i=(0,p.Er)(this.hass,e),s=i?this.hass.states[i.entity_id]:void 0,o=s?(0,c.t)(s):void 0;if(s&&("binary_sensor"===o||!isNaN(s.state))){const t=(0,p.DW)(this.hass,e),a=t?this.hass.states[null==t?void 0:t.entity_id]:void 0;return(0,r.qy)(x||(x=L` <span class="battery" slot="after-time"> ${0} <ha-battery-icon .hass="${0}" .batteryStateObj="${0}" .batteryChargingStateObj="${0}"></ha-battery-icon> </span> `),"binary_sensor"===o?r.s6:(0,r.qy)(H||(H=L`<span>${0}${0}%</span>`),Number(s.state).toFixed(),(0,u.d)(this.hass.locale)),this.hass,s,a)}return(0,l.$)(this.stateObj,v.Ri.BATTERY)&&this.stateObj.attributes.battery_level?(0,r.qy)(_||(_=L` <span class="battery" slot="after-time"> <span>${0}${0}%</span> <ha-icon .icon="${0}"></ha-icon> </span> `),Math.round(this.stateObj.attributes.battery_level),(0,u.d)(this.hass.locale),this.stateObj.attributes.battery_icon):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,v.Ri.STATE)||(0,l.$)(t,v.Ri.START)||!(0,l.$)(t,v.Ri.PAUSE)?(0,v.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,v.Ri.START)||(0,l.$)(this.stateObj,v.Ri.PAUSE))}get _startPauseIcon(){return this.stateObj?(0,l.$)(this.stateObj,v.Ri.STATE)||(0,l.$)(this.stateObj,v.Ri.START)?(0,v.Ak)(this.stateObj)&&(0,l.$)(this.stateObj,v.Ri.PAUSE)?q:P:N:P}get _startPauseLabel(){return this.stateObj&&this.hass?(0,l.$)(this.stateObj,v.Ri.STATE)||(0,l.$)(this.stateObj,v.Ri.START)?(0,v.Ak)(this.stateObj)&&(0,l.$)(this.stateObj,v.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,v.Ri.STATE)&&!(0,l.$)(this.stateObj,v.Ri.START))&&(!(0,v.Ak)(this.stateObj)&&!(0,v.Bd)(this.stateObj)))}render(){if(!this.stateObj)return r.s6;const t=this.stateObj,a=t.state===d.Hh,e=(0,l.$)(t,v.Ri.STOP),i=(0,l.$)(t,v.Ri.RETURN_HOME),s=(0,l.$)(t,v.Ri.LOCATE),o=(0,l.$)(t,v.Ri.CLEAN_SPOT),n=(0,l.$)(t,v.Ri.CLEAN_AREA),c=(0,l.$)(t,v.Ri.FAN_SPEED),u=this._supportsStartPause||e||i||s||o||n;return(0,r.qy)(V||(V=L` <ha-more-info-state-header .hass="${0}" .stateObj="${0}" .stateOverride="${0}"> ${0} </ha-more-info-state-header> <div class="controls"> <ha-state-control-vacuum-status .stateObj="${0}" .hass="${0}"></ha-state-control-vacuum-status> ${0} </div> ${0} `),this.hass,this.stateObj,this._stateOverride,this._renderBattery(),this.stateObj,this.hass,u?(0,r.qy)(w||(w=L` <div class="buttons"> <ha-control-button-group> ${0} ${0} ${0} ${0} ${0} </ha-control-button-group> </div> `),this._supportsStartPause?(0,r.qy)(k||(k=L` <ha-control-button .label="${0}" @click="${0}" .disabled="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-control-button> `),this._startPauseLabel,this._handleStartPause,this._startPauseDisabled,this._startPauseIcon):r.s6,e?(0,r.qy)(C||(C=L` <ha-control-button .label="${0}" @click="${0}" .disabled="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-control-button> `),this.hass.localize("ui.dialogs.more_info_control.vacuum.stop"),this._handleStop,a||!(0,v.lg)(t),D):r.s6,i?(0,r.qy)($||($=L` <ha-control-button .label="${0}" @click="${0}" .disabled="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-control-button> `),this.hass.localize("ui.dialogs.more_info_control.vacuum.return_home"),this._handleReturnHome,a||!(0,v.uu)(t),z):r.s6,s?(0,r.qy)(A||(A=L` <ha-control-button .label="${0}" @click="${0}" .disabled="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-control-button> `),this.hass.localize("ui.dialogs.more_info_control.vacuum.locate"),this._handleLocate,a,E):r.s6,o?(0,r.qy)(M||(M=L` <ha-control-button .label="${0}" @click="${0}" .disabled="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-control-button> `),this.hass.localize("ui.dialogs.more_info_control.vacuum.clean_spot"),this._handleCleanSpot,a,F):r.s6):r.s6,c&&t.attributes.fan_speed_list||n?(0,r.qy)(j||(j=L` <ha-more-info-control-select-container> ${0} ${0} </ha-more-info-control-select-container> `),c&&t.attributes.fan_speed_list?(0,r.qy)(O||(O=L` <ha-control-select-menu .hass="${0}" .label="${0}" .value="${0}" .disabled="${0}" @wa-select="${0}" .options="${0}"> <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> </ha-control-select-menu> `),this.hass,this.hass.formatEntityAttributeName(t,"fan_speed"),t.attributes.fan_speed,a,this._handleFanSpeedChanged,t.attributes.fan_speed_list.map(a=>({value:a,label:this.hass.formatEntityAttributeValue(t,"fan_speed",a)})),Z):r.s6,n?(0,r.qy)(S||(S=L` <button class="clean-areas-button" ?disabled="${0}" @click="${0}"> <div class="icon"> <ha-svg-icon .path="${0}"></ha-svg-icon> </div> <div class="content"> <p class="label"> ${0} </p> <p class="value"> ${0} </p> </div> <div class="icon"> <ha-svg-icon .path="${0}"></ha-svg-icon> </div> </button> `),a,this._handleCleanAreas,U,this.hass.localize("ui.dialogs.more_info_control.vacuum.cleaning"),this.hass.localize("ui.dialogs.more_info_control.vacuum.by_area"),R):r.s6):r.s6)}static get styles(){return[g.K,(0,r.AH)(T||(T=L`.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})],Y.prototype,"hass",void 0),(0,s.Cg)([(0,o.MZ)({attribute:!1})],Y.prototype,"stateObj",void 0),Y=(0,s.Cg)([(0,o.EM)("more-info-vacuum")],Y),i()}catch(x){i(x)}})},8907:function(t,a,e){var i=e(40445),s=e(5124),r=e(67576),o=e(89784),n=e(52658),c=e(22675),l=e(24717);let u,h,d=t=>t;class p 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(0,s.qy)(u||(u=d` <div class="container ${0}" style="${0}"> <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> `),t,(0,o.W)(e))}}p.styles=(0,s.AH)(h||(h=d`: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})],p.prototype,"hass",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],p.prototype,"stateObj",void 0),p=(0,i.Cg)([(0,r.EM)("ha-state-control-vacuum-status")],p)},83309:function(t,a,e){e.d(a,{r:function(){return r}});e(62953);var i=e(74816),s=e(35932);function r(t,a,e){const[r,o]=(0,i.x)(null==e?void 0:e.in,t,a);return+(0,s.o)(r)===+(0,s.o)(o)}},12010:function(t,a,e){e.d(a,{s:function(){return s}});e(62953);var i=e(74816);function s(t,a,e){const[s,r]=(0,i.x)(null==e?void 0:e.in,t,a);return s.getFullYear()===r.getFullYear()}}}]);