UNPKG

iobroker.lovelace

Version:

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

1 lines 16 kB
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[55076],{34470:function(t,e,i){i.d(e,{E:function(){return s}});let a;const s=(0,i(5124).AH)(a||(a=(t=>t)`ha-state-icon[data-domain=alarm_control_panel][data-state=arming],ha-state-icon[data-domain=alarm_control_panel][data-state=pending],ha-state-icon[data-domain=alarm_control_panel][data-state=triggered],ha-state-icon[data-domain=lock][data-state=jammed]{animation:pulse 1s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:0}100%{opacity:1}}ha-state-icon[data-state=unavailable]{color:var(--state-unavailable-color)}`))},3931:function(t,e,i){i.d(e,{U:function(){return a}});i(3362),i(62953);const a=async(t,e,i,a,s,...n)=>{let o=a[t];o||(o=a[t]={});const r=o[s];if(r)return r;const c=i(a,s,...n);return o[s]=c,c.then(()=>setTimeout(()=>{o[s]=void 0},e),()=>{o[s]=void 0}),c}},86836:function(t,e,i){function a(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function s(){return a()+a()+a()+a()+a()}i.d(e,{L:function(){return s}})},74281:function(t,e,i){i.a(t,async function(t,e){try{i(18111),i(7588),i(45367),i(92731),i(62953);var a=i(40445),s=i(5124),n=i(67576),o=i(63672),r=i(89784),c=i(71727),d=i(69093),l=i(52658),h=i(34470),u=i(10897),p=i(38279),g=i(93367),v=t([g]);g=(v.then?(await v)():v)[0];let m,f,y,b=t=>t;const _="M13 14H11V9H13M13 18H11V16H13M1 21H23L12 2L1 21Z";class $ extends s.WF{connectedCallback(){var t,e;super.connectedCallback(),this.hasUpdated&&void 0===this.overrideImage&&(null!==(t=this.stateObj)&&void 0!==t&&t.attributes.entity_picture||null!==(e=this.stateObj)&&void 0!==e&&e.attributes.entity_picture_local)&&this.requestUpdate("stateObj")}disconnectedCallback(){var t,e;super.disconnectedCallback(),void 0===this.overrideImage&&(null!==(t=this.stateObj)&&void 0!==t&&t.attributes.entity_picture||null!==(e=this.stateObj)&&void 0!==e&&e.attributes.entity_picture_local)&&(this.style.backgroundImage="")}get _stateColor(){var t;const e=this.stateObj?(0,d.t)(this.stateObj):void 0;return null!==(t=this.stateColor)&&void 0!==t?t:"light"===e}render(){const t=this.stateObj;if(!t&&!this.overrideIcon&&!this.overrideImage)return(0,s.qy)(m||(m=b`<div class="missing"> <ha-svg-icon .path="${0}"></ha-svg-icon> </div>`),_);const e=this.getClass();if(e&&e.forEach((t,e)=>{t?this.classList.add(e):this.classList.remove(e)}),!this.icon)return s.s6;const i=t?(0,d.t)(t):void 0;return(0,s.qy)(f||(f=b`<ha-state-icon style="${0}" data-domain="${0}" data-state="${0}" .icon="${0}" .stateObj="${0}"></ha-state-icon>`),(0,r.W)(this._iconStyle),(0,o.J)(i),(0,o.J)(null==t?void 0:t.state),this.overrideIcon,t)}willUpdate(t){if(super.willUpdate(t),!(t.has("stateObj")||t.has("overrideImage")||t.has("overrideIcon")||t.has("stateColor")||t.has("color")))return;const e=this.stateObj,i={};let a="";if(this.icon=!0,e){const t=(0,c.m)(e.entity_id);if(void 0===this.overrideImage)if(!e.attributes.entity_picture_local&&!e.attributes.entity_picture||this.overrideIcon){if(this.color)i.color=this.color;else if(this._stateColor){const t=(0,l.Se)(e);if(t&&(i.color=t),e.attributes.rgb_color&&(i.color=`rgb(${e.attributes.rgb_color.join(",")})`),e.attributes.brightness){const t=e.attributes.brightness;if("number"!=typeof t){const i=`Type error: state-badge expected number, but type of ${e.entity_id}.attributes.brightness is ${typeof t} (${t})`;console.warn(i)}i.filter=(0,l.mT)(e)}if(e.attributes.hvac_action){const t=e.attributes.hvac_action;t in p.sx?i.color=(0,l.Se)(e,p.sx[t]):delete i.color}}}else{let i=e.attributes.entity_picture_local||e.attributes.entity_picture;this.hass&&(i=this.hass.hassUrl(i)),"camera"===t&&(i=(0,u.su)(i,80,80)),a=`url(${i})`,this.icon=!1}else if(this.overrideImage){let t=this.overrideImage;this.hass&&(t=this.hass.hassUrl(t)),a=`url(${t})`,this.icon=!1}}this._iconStyle=i,this.style.backgroundImage=a}getClass(){const t=new Map(["has-no-radius","has-media-image","has-image"].map(t=>[t,!1]));if(this.stateObj){const e=(0,c.m)(this.stateObj.entity_id);"update"===e?t.set("has-no-radius",!0):"media_player"===e||"camera"===e?t.set("has-media-image",!0):""!==this.style.backgroundImage&&t.set("has-image",!0)}return t}static get styles(){return[h.E,(0,s.AH)(y||(y=b`:host{position:relative;display:inline-flex;width:40px;color:var(--state-icon-color);border-radius:var(--state-badge-border-radius,50%);height:40px;background-size:cover;box-sizing:border-box;--state-inactive-color:initial;align-items:center;justify-content:center}:host(.has-image){border-radius:var(--state-badge-with-image-border-radius,50%)}:host(.has-media-image){border-radius:var(--state-badge-with-media-image-border-radius,8%)}:host(.has-no-radius){border-radius:var(--ha-border-radius-square)}:host(:focus){outline:0}:host(:not([icon]):focus){border:2px solid var(--divider-color)}:host([icon]:focus){background:var(--divider-color)}ha-state-icon{transition:color .3s ease-in-out,filter .3s ease-in-out}.missing{color:#fce588}`))]}constructor(...t){super(...t),this.icon=!0,this._iconStyle={}}}(0,a.Cg)([(0,n.MZ)({attribute:!1})],$.prototype,"stateObj",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],$.prototype,"overrideIcon",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],$.prototype,"overrideImage",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],$.prototype,"stateColor",void 0),(0,a.Cg)([(0,n.MZ)()],$.prototype,"color",void 0),(0,a.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],$.prototype,"icon",void 0),(0,a.Cg)([(0,n.wk)()],$.prototype,"_iconStyle",void 0),$=(0,a.Cg)([(0,n.EM)("state-badge")],$),e()}catch(m){e(m)}})},36158:function(t,e,i){i.a(t,async function(t,e){try{i(62953);var a=i(40445),s=i(25625),n=i(5124),o=i(67576),r=i(98975),c=i(52943),d=t([r]);r=(d.then?(await d)():d)[0];class l extends n.mN{disconnectedCallback(){super.disconnectedCallback(),this._clearInterval()}connectedCallback(){super.connectedCallback(),this.datetime&&this._startInterval()}createRenderRoot(){return this}firstUpdated(t){super.firstUpdated(t),this._updateRelative()}update(t){super.update(t),this._updateRelative()}_clearInterval(){this._interval&&(window.clearInterval(this._interval),this._interval=void 0)}_startInterval(){this._clearInterval(),this._interval=window.setInterval(()=>this._updateRelative(),6e4)}_updateRelative(){if(this.datetime){const t="string"==typeof this.datetime?(0,s.H)(this.datetime):this.datetime,e=(0,r.K)(t,this.hass.locale);this.innerHTML=this.capitalize?(0,c.Z)(e):e}else this.innerHTML=this.hass.localize("ui.components.relative_time.never")}constructor(...t){super(...t),this.capitalize=!1}}(0,a.Cg)([(0,o.MZ)({attribute:!1})],l.prototype,"hass",void 0),(0,a.Cg)([(0,o.MZ)({attribute:!1})],l.prototype,"datetime",void 0),(0,a.Cg)([(0,o.MZ)({type:Boolean})],l.prototype,"capitalize",void 0),l=(0,a.Cg)([(0,o.EM)("ha-relative-time")],l),e()}catch(l){e(l)}})},19037:function(t,e,i){i.d(e,{T:function(){return u}});i(74423),i(62953);var a=i(40445),s=i(5124),n=i(67576),o=i(54495),r=i(1087),c=i(19459),d=i(88438);class l extends HTMLElement{connectedCallback(){Object.assign(this.style,{position:"fixed",width:d.C?"100px":"50px",height:d.C?"100px":"50px",transform:"translate(-50%, -50%) scale(0)",pointerEvents:"none",zIndex:"999",background:"var(--primary-color)",display:null,opacity:"0.2",borderRadius:"50%",transition:"transform 180ms ease-in-out"}),["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach(t=>{document.addEventListener(t,()=>{this.cancelled=!0,this.timer&&(this._stopAnimation(),clearTimeout(this.timer),this.timer=void 0)},{passive:!0})})}bind(t,e={}){t.actionHandler&&(0,c.b)(e,t.actionHandler.options)||(t.actionHandler?(t.removeEventListener("touchstart",t.actionHandler.start),t.removeEventListener("touchend",t.actionHandler.end),t.removeEventListener("touchcancel",t.actionHandler.end),t.removeEventListener("mousedown",t.actionHandler.start),t.removeEventListener("click",t.actionHandler.end),t.removeEventListener("keydown",t.actionHandler.handleKeyDown)):t.addEventListener("contextmenu",t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1}),t.actionHandler={options:e},e.disabled||(t.actionHandler.start=t=>{let i,a;this.cancelled=!1,t.touches?(i=t.touches[0].clientX,a=t.touches[0].clientY):(i=t.clientX,a=t.clientY),e.hasHold&&(this.held=!1,this.timer=window.setTimeout(()=>{this._startAnimation(i,a),this.held=!0},this.holdTime))},t.actionHandler.end=t=>{if("touchcancel"===t.type||"touchend"===t.type&&this.cancelled)return;const i=t.target;t.cancelable&&t.preventDefault(),e.hasHold&&(clearTimeout(this.timer),this._stopAnimation(),this.timer=void 0),e.hasHold&&this.held?(0,r.r)(i,"action",{action:"hold"}):e.hasDoubleClick?"click"===t.type&&t.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout(()=>{this.dblClickTimeout=void 0,!1!==e.hasTap&&(0,r.r)(i,"action",{action:"tap"})},250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,(0,r.r)(i,"action",{action:"double_tap"})):!1!==e.hasTap&&(0,r.r)(i,"action",{action:"tap"})},t.actionHandler.handleKeyDown=t=>{["Enter"," "].includes(t.key)&&t.currentTarget.actionHandler.end(t)},t.addEventListener("touchstart",t.actionHandler.start,{passive:!0}),t.addEventListener("touchend",t.actionHandler.end),t.addEventListener("touchcancel",t.actionHandler.end),t.addEventListener("mousedown",t.actionHandler.start,{passive:!0}),t.addEventListener("click",t.actionHandler.end),t.addEventListener("keydown",t.actionHandler.handleKeyDown)))}_startAnimation(t,e){Object.assign(this.style,{left:`${t}px`,top:`${e}px`,transform:"translate(-50%, -50%) scale(1)"})}_stopAnimation(){Object.assign(this.style,{left:null,top:null,transform:"translate(-50%, -50%) scale(0)"})}constructor(...t){super(...t),this.holdTime=500,this.held=!1,this.cancelled=!1}}l=(0,a.Cg)([(0,n.EM)("action-handler")],l);const h=(t,e)=>{const i=(()=>{const t=document.body;if(t.querySelector("action-handler"))return t.querySelector("action-handler");const e=document.createElement("action-handler");return t.appendChild(e),e})();i&&i.bind(t,e)},u=(0,o.u$)(class extends o.WL{update(t,[e]){return h(t.element,e),s.c0}render(t){}})},97176:function(t,e,i){function a(t){return void 0!==t&&"none"!==t.action}function s(t){return!t.tap_action||a(t.tap_action)||a(t.hold_action)||a(t.double_tap_action)}i.d(e,{A:function(){return s},h:function(){return a}})},79757:function(t,e,i){i.a(t,async function(t,e){try{i(74423),i(62953);var a=i(40445),s=i(5124),n=i(67576),o=i(6412),r=i(63672),c=i(46190),d=i(86836),l=i(57237),h=i(17451),u=i(71727),p=i(65522),g=i(28455),v=i(95747),m=i(74281),f=i(36158),y=i(34127),b=i(19037),_=i(22064),$=i(97176),w=i(85979),x=t([m,f,y,w,v]);[m,f,y,w,v]=x.then?(await x)():x;let C,I,k,H,E,M,T,L,j,O,q,Z,A=t=>t;class z extends s.WF{render(){var t,e;if(!this.hass||!this.config)return s.s6;const i=this.config.entity?this.hass.states[this.config.entity]:void 0;if(!i)return(0,s.qy)(C||(C=A` <hui-warning .hass="${0}"> ${0} </hui-warning> `),this.hass,(0,w.j)(this.hass,this.config.entity));const a=(0,u.m)(this.config.entity),n=(0,$.A)(this.config),d=this.secondaryText||this.config.secondary_info,h=this.hass.formatEntityName(i,this.config.name);return(0,s.qy)(I||(I=A` <div class="row ${0}" @action="${0}" .actionHandler="${0}" tabindex="${0}"> <state-badge .hass="${0}" .stateObj="${0}" .overrideIcon="${0}" .overrideImage="${0}" .stateColor="${0}"></state-badge> ${0} ${0} </div> `),(0,o.H)({pointer:n}),this._handleAction,(0,b.T)({hasHold:(0,$.h)(this.config.hold_action),hasDoubleClick:(0,$.h)(this.config.double_tap_action)}),(0,r.J)(!this.config.tap_action||(0,$.h)(this.config.tap_action)?"0":void 0),this.hass,i,this.config.icon,this.config.image,this.config.state_color,this.hideName?s.s6:(0,s.qy)(k||(k=A`<div class="info ${0}" .title="${0}"> ${0} ${0} </div>`),(0,o.H)({"text-content":!d}),h,h,d?(0,s.qy)(H||(H=A` <div class="secondary"> ${0} </div> `),this.secondaryText||("entity-id"===this.config.secondary_info?i.entity_id:"last-changed"===this.config.secondary_info?(0,s.qy)(E||(E=A` <ha-tooltip for="last-changed${0}" placement="right"> ${0} </ha-tooltip> <ha-relative-time id="last-changed${0}" .hass="${0}" .datetime="${0}" capitalize></ha-relative-time> `),this._secondaryInfoElementId,(0,v.yg)(new Date(i.last_changed),this.hass.locale,this.hass.config),this._secondaryInfoElementId,this.hass,i.last_changed):"last-updated"===this.config.secondary_info?(0,s.qy)(M||(M=A` <ha-tooltip for="last-updated${0}" placement="right"> ${0} </ha-tooltip> <ha-relative-time id="last-updated${0}" .hass="${0}" .datetime="${0}" capitalize></ha-relative-time> `),this._secondaryInfoElementId,(0,v.yg)(new Date(i.last_updated),this.hass.locale,this.hass.config),this._secondaryInfoElementId,this.hass,i.last_updated):"last-triggered"===this.config.secondary_info?i.attributes.last_triggered?(0,s.qy)(T||(T=A` <ha-tooltip for="last-triggered${0}" placement="right"> ${0} </ha-tooltip> <ha-relative-time id="last-triggered${0}" .hass="${0}" .datetime="${0}" capitalize></ha-relative-time> `),this._secondaryInfoElementId,(0,v.yg)(new Date(i.attributes.last_triggered),this.hass.locale,this.hass.config),this._secondaryInfoElementId,this.hass,i.attributes.last_triggered):this.hass.localize("ui.panel.lovelace.cards.entities.never_triggered"):"position"===this.config.secondary_info&&void 0!==i.attributes.current_position?`${this.hass.localize("ui.card.cover.position")}: ${i.attributes.current_position}`:"tilt-position"===this.config.secondary_info&&void 0!==i.attributes.current_tilt_position?`${this.hass.localize("ui.card.cover.tilt_position")}: ${i.attributes.current_tilt_position}`:"brightness"===this.config.secondary_info&&i.attributes.brightness?(0,s.qy)(L||(L=A`${0} %`),Math.round(i.attributes.brightness/255*100)):"state"===this.config.secondary_info?(0,s.qy)(j||(j=A`${0}`),this.hass.formatEntityState(i)):"area"===this.config.secondary_info&&null!==(t=this._getArea(i))&&void 0!==t?t:s.s6)):s.s6),(null!==(e=this.catchInteraction)&&void 0!==e?e:!c.yd.includes(a))?(0,s.qy)(O||(O=A` <div class="text-content value"> <div class="state"><slot></slot></div> </div> `)):(0,s.qy)(q||(q=A`<slot @touchcancel="${0}" @touchend="${0}" @keydown="${0}" @click="${0}" @action="${0}"></slot>`),l.d,l.d,l.d,l.d,l.d))}updated(t){var e;super.updated(t),(0,h.j)(this,"no-secondary",!(this.secondaryText||null!==(e=this.config)&&void 0!==e&&e.secondary_info))}_handleAction(t){(0,_.$)(this,this.hass,this.config,t.detail.action)}_getArea(t){const e=(0,g.ln)(t,this.hass.entities,this.hass.devices,this.hass.areas,this.hass.floors);return e.area?(0,p.A)(e.area):void 0}constructor(...t){super(...t),this.hideName=!1,this._secondaryInfoElementId="-"+(0,d.L)()}}z.styles=(0,s.AH)(Z||(Z=A`:host{display:flex;align-items:center;flex-direction:row}.row{display:flex;align-items:center;flex-direction:row;width:100%;outline:0;transition:background-color 180ms ease-in-out}.row:focus-visible{background-color:var(--primary-background-color)}.info{padding-left:16px;padding-right:8px;padding-inline-start:16px;padding-inline-end:8px;flex:1 1 30%}.info,.info>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flex ::slotted(*){margin-left:8px;margin-inline-start:8px;margin-inline-end:initial;min-width:0}.flex ::slotted([slot=secondary]){margin-left:0;margin-inline-start:0;margin-inline-end:initial}.secondary,ha-relative-time{color:var(--secondary-text-color)}state-badge{flex:0 0 40px}.pointer{cursor:pointer}.state{text-align:var(--float-end)}.value{direction:ltr}`)),(0,a.Cg)([(0,n.MZ)({attribute:!1})],z.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],z.prototype,"config",void 0),(0,a.Cg)([(0,n.MZ)({attribute:"secondary-text"})],z.prototype,"secondaryText",void 0),(0,a.Cg)([(0,n.MZ)({attribute:"hide-name",type:Boolean})],z.prototype,"hideName",void 0),(0,a.Cg)([(0,n.MZ)({attribute:"catch-interaction",type:Boolean})],z.prototype,"catchInteraction",void 0),z=(0,a.Cg)([(0,n.EM)("hui-generic-entity-row")],z),e()}catch(C){e(C)}})}}]);