UNPKG

iobroker.lovelace

Version:

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

1 lines 12.1 kB
export const __rspack_esm_id=82333;export const __rspack_esm_ids=[82333];export const __webpack_modules__={22547(t,e,i){i.d(e,{t:()=>n});const n=(t,e)=>t.substring(0,e.length)===e},72190(t,e,i){i.d(e,{c:()=>v});i(74423),i(45367),i(92731);var n=i(90433),s=i(79468),o=i(39274),r=i(71727),a=i(69093),c=i(15090),l=i(52658),d=i(80880),h=i(22675),_=i(86030);const g={media_player:{paused:.5,idle:1},vacuum:{returning:.5}};let u=0;const y=new Map;function v(t,e,i){return function(t,e,i){if(!i||t===h.Hh)return(0,_.a)("--history-unavailable-color",e);if(t===h.HV)return(0,_.a)("--history-unknown-color",e);const n=(0,r.m)(i.entity_id);if(("person"===n||"device_tracker"===n)&&!(c.vB[n]||[]).includes(t))return(0,_.a)(`--state-${n}-${(0,d.Y)(t,"_")}-color`,e);const a=(0,l.mg)(i,t);if(!a)return;const u=(0,_.a)(a,e);if(!u)return;const y=g[n]?.[t];return y?(0,s.zm)((0,o.T)((0,s.Nc)((0,s.xp)(u)),y)):u}(t,e,i)||function(t,e,i){if(!i)return;const s=(0,a.t)(i),o=(c.vB[s]||"sensor"===s&&"enum"===i.attributes.device_class&&i.attributes.options||[]).indexOf(t);return-1!==o?(0,n.fI)(o,e):void 0}(t,e,i)||function(t,e){if(y.has(t))return y.get(t);const i=(0,n.fI)(u,e);return u++,y.set(t,i),i}(t,e)}},61165(t,e,i){i.d(e,{AB:()=>l,Ci:()=>c,E4:()=>o,d1:()=>r,gq:()=>a});i(18111),i(20116);if(66649!=i.j)var n=i(22547);var s=i(88249);const o=(t,e,i,n)=>t.callWS({type:"trace/get",domain:e,item_id:i,run_id:n}),r=(t,e,i)=>t.callWS({type:"trace/list",domain:e,item_id:i}),a=(t,e,i)=>t.callWS({type:"trace/contexts",domain:e,item_id:i}),c=(t,e)=>{const i=e.split("/").reverse();let n=t;for(;i.length;){const t=i.pop(),e=Number(t);if(isNaN(e)){let e=n[t];if(!e&&"sequence"===t)continue;e||"trigger"!==t||(e=n.triggers),e||"condition"!==t||(e=n.conditions),e||"action"!==t||(e=n.actions),n="trigger"===t?(0,s.aI)(e):e;continue}if(Array.isArray(n))n=n[e];else if(0!==e)throw new Error("If config is not an array, can only return index 0")}return n},l=t=>"trigger"===t||(0,n.t)(t,"trigger/")},11184(t,e,i){i.a(t,async function(t,e){try{i(74423),i(44114),i(18111),i(61701);var n=i(62826),s=i(5124),o=i(22441),r=i(6412),a=i(89784),c=i(36312),l=i(72487),d=i(30162),h=i(26218),_=i(1087),g=i(71727),u=i(91926),y=i(72190),v=i(74281),m=(i(43661),i(36158)),p=i(95350),x=i(86531),b=i(14503),f=i(85614),$=i(44144),k=t([v,m,x,l,d]);[v,m,x,l,d]=k.then?(await k)():k;const w=["script","automation"],C=t=>t.context_event_type||t.context_state||t.context_message,z=(t,e)=>e?t.replace(e," "):t;class I extends s.WF{willUpdate(t){(!this.hasUpdated&&this.virtualize||t.has("virtualize")&&this.virtualize)&&(this.hass.loadBackendTranslation("services"),this.hass.loadBackendTranslation("title"),(0,f.i)())}shouldUpdate(t){const e=t.get("hass"),i=void 0===e||e.locale!==this.hass.locale;return t.has("entries")||t.has("traceContexts")||i}render(){return this.entries?.length?s.qy` <div class="container ha-scrollbar ${(0,r.H)({narrow:this.narrow,"no-name":this.noName,"no-icon":this.noIcon})}" @scroll="${this._saveScrollPos}"> ${this.virtualize?s.qy`<lit-virtualizer @visibilityChanged="${this._visibilityChanged}" scroller class="ha-scrollbar" .items="${this.entries}" .renderItem="${this._renderLogbookItem}"> </lit-virtualizer>`:this.entries.map((t,e)=>this._renderLogbookItem(t,e))} </div> `:s.qy` <div class="container no-entries"> ${this.hass.localize("ui.components.logbook.entries_not_found")} </div> `}_saveScrollPos(t){this._savedScrollPos=t.target.scrollTop}_visibilityChanged(t){(0,_.r)(this,"hass-logbook-live",{enable:0===t.first})}_renderIndicator(t){const e=this.hass.states[t.entity_id],i=getComputedStyle(this),n={backgroundColor:void 0!==t.state?(0,y.c)(t.state,i,e):void 0};return s.qy` <div class="indicator" style="${(0,a.W)(n)}"></div> `}_renderMessage(t,e,i,n,s){if(t.entity_id&&t.state)return n?(0,x.a$)(this.hass,this.hass.localize,t.state,n,i):t.state;const o=C(t);let r=t.message;if(w.includes(i)&&t.source){if(o)return"";r=(0,x.$O)(this.hass.localize,t.source)}return r?this._formatMessageWithPossibleEntity(o?z(r,t.context_entity_id):r,e,void 0,s):""}_renderUser(t){const e=t.context_user_id&&this.userIdToName[t.context_user_id];return e?`- ${e}`:""}_renderUnseenContextSourceEntity(t,e,i){return!t.context_entity_id||e.includes(t.context_entity_id)?"":s.qy` (${this._renderEntity(t.context_entity_id,t.context_entity_id_name,i)})`}_renderContextMessage(t,e,i){if(t.context_state){const e=t.context_entity_id&&t.context_entity_id in this.hass.states?(0,x.dG)(this.hass.states[t.context_entity_id],t.context_state):void 0;return s.qy`${this.hass.localize("ui.components.logbook.triggered_by_state_of")} ${this._renderEntity(t.context_entity_id,t.context_entity_id_name,i)} ${e?(0,x.a$)(this.hass,this.hass.localize,t.context_state,e,(0,g.m)(t.context_entity_id)):t.context_state}`}if("call_service"===t.context_event_type)return s.qy`${this.hass.localize("ui.components.logbook.triggered_by_action")} ${t.context_domain&&t.context_service?`${(0,p.p$)(this.hass.localize,t.context_domain)}:\n ${this.hass.localize(`component.${t.context_domain}.services.${t.context_service}.name`,this.hass.services[t.context_domain][t.context_service].description_placeholders)||this.hass.services[t.context_domain]?.[t.context_service]?.name||t.context_service}`:""}`;if(!t.context_message||e.includes(t.context_entity_id))return"";if("automation_triggered"===t.context_event_type||"script_started"===t.context_event_type){const n=t.context_source?t.context_source:t.context_message.replace("triggered by ",""),o=(0,x.$O)(this.hass.localize,n);return s.qy`${this.hass.localize("automation_triggered"===t.context_event_type?"ui.components.logbook.triggered_by_automation":"ui.components.logbook.triggered_by_script")} ${this._renderEntity(t.context_entity_id,t.context_entity_id_name,i)} ${t.context_message?this._formatMessageWithPossibleEntity(o,e,void 0,i):""}`}return s.qy` ${this.hass.localize("ui.components.logbook.triggered_by")} ${t.context_name} ${this._formatMessageWithPossibleEntity(t.context_message,e,t.context_entity_id,i)} ${this._renderUnseenContextSourceEntity(t,e,i)}`}_renderEntity(t,e,i){const n=t&&t in this.hass.states,o=e||n&&this.hass.states[t].attributes.friendly_name||t;return n?i?o:s.qy`<button class="link" @click="${this._entityClicked}" .entityId="${t}"> ${o} </button>`:o}_formatMessageWithPossibleEntity(t,e,i,n){if(-1!==t.indexOf(".")){const i=t.split(" ");for(let t=0,o=i.length;t<o;t++)if(i[t]in this.hass.states){const o=i[t];if(e.includes(o))return"";e.push(o);const r=i.splice(t);return r.shift(),s.qy`${i.join(" ")} ${this._renderEntity(o,this.hass.states[o].attributes.friendly_name,n)} ${r.join(" ")}`}}if(i&&i in this.hass.states){const o=this.hass.states[i].attributes.friendly_name;if(o&&t.endsWith(o))return e.includes(i)?"":(e.push(i),t=t.substring(0,t.length-o.length),s.qy`${t} ${this._renderEntity(i,o,n)}`)}return t}_entityClicked(t){const e=t.currentTarget.entityId;e&&(t.preventDefault(),t.stopPropagation(),(0,_.r)(this,"hass-more-info",{entityId:e}))}_handleClick(t){const e=t.currentTarget;e.traceLink&&((0,u.oo)(e.traceLink),(0,_.r)(this,"closed"))}static get styles(){return[b.RF,b.dp,b.og,s.AH`:host([virtualize]){display:block;height:100%}.entry-container{width:100%}.entry{position:relative;display:flex;width:100%;line-height:var(--ha-line-height-expanded);padding:8px 16px;box-sizing:border-box;border-top:1px solid var(--divider-color);justify-content:space-between;align-items:center}.indicator{background-color:var(--disabled-color);height:8px;width:8px;border-radius:var(--ha-border-radius-sm);flex-shrink:0;margin-right:12px;margin-inline-start:initial;margin-inline-end:12px;direction:var(--direction)}ha-icon-next{color:var(--secondary-text-color)}.clickable{cursor:pointer}:not(.clickable) .entry.no-entity,:not(.clickable) .no-name .entry{cursor:default}.entry:hover{background-color:rgba(var(--rgb-primary-text-color),.04)}.narrow:not(.no-icon) .time{margin-left:32px;margin-inline-start:32px;margin-inline-end:initial;direction:var(--direction)}.message-relative_time{display:flex;flex-direction:column}.secondary{font-size:var(--ha-font-size-s);line-height:var(--ha-line-height-normal)}.secondary a{color:var(--secondary-text-color)}.date{margin:8px 0;padding:0 16px}.icon-message{display:flex;align-items:center}.no-entries{text-align:center;color:var(--secondary-text-color)}state-badge{margin-right:16px;margin-inline-start:initial;flex-shrink:0;color:var(--state-icon-color);margin-inline-end:16px;direction:var(--direction)}.message{color:var(--primary-text-color)}.no-name .message:first-letter{text-transform:capitalize}a{color:var(--primary-color);text-decoration:none}button.link{color:var(--state-icon-color);text-decoration:none}.container{max-height:var(--logbook-max-height)}.container,lit-virtualizer{height:100%}lit-virtualizer{contain:size layout!important}.narrow .entry{line-height:var(--ha-line-height-normal)}.narrow .icon-message state-badge{margin-left:0;margin-inline-start:0;margin-right:8px;margin-inline-end:8px;direction:var(--direction)}`]}constructor(...t){super(...t),this.userIdToName={},this.traceContexts={},this.entries=[],this.narrow=!1,this.virtualize=!1,this.showIndicator=!1,this.noIcon=!1,this.noName=!1,this.relativeTime=!1,this._renderLogbookItem=(t,e)=>{if(!t||void 0===e)return s.s6;const i=this.entries[e-1],n=[],o=t.entity_id?this.hass.states[t.entity_id]:void 0,a=o?(0,x.dG)(o,t.state):void 0,h=t.entity_id?(0,g.m)(t.entity_id):t.domain,_=a||t.icon||t.state||!h||!(0,c.x)(this.hass.config,h)?void 0:(0,$.MR)({domain:h,type:"icon",darkOptimized:this.hass.themes?.darkMode},this.hass.auth.data.hassUrl),u=w.includes(t.domain)&&t.context_id&&t.context_id in this.traceContexts?this.traceContexts[t.context_id]:void 0,y=void 0!==u;return s.qy` <div class="entry-container ${(0,r.H)({clickable:y})}" .traceLink="${u?`/config/${u.domain}/trace/${u.item_id}?run_id=${u.run_id}`:void 0}" @click="${this._handleClick}"> ${0===e||t?.when&&i?.when&&new Date(1e3*t.when).toDateString()!==new Date(1e3*i.when).toDateString()?s.qy` <h4 class="date"> ${(0,l.Yq)(new Date(1e3*t.when),this.hass.locale,this.hass.config)} </h4> `:s.s6} <div class="entry ${(0,r.H)({"no-entity":!t.entity_id})}"> <div class="icon-message"> ${this.noIcon?"":s.qy` <state-badge .hass="${this.hass}" .overrideIcon="${t.icon}" .overrideImage="${_}" .stateObj="${t.icon?void 0:a}" .stateColor="${!1}"></state-badge> `} ${this.showIndicator?this._renderIndicator(t):""} <div class="message-relative_time"> <div class="message"> ${this.noName?"":this._renderEntity(t.entity_id,t.name,y)} ${this._renderMessage(t,n,h,a,y)} ${this._renderContextMessage(t,n,y)} </div> <div class="secondary"> <span>${(0,d.ie)(new Date(1e3*t.when),this.hass.locale,this.hass.config)}</span> - <ha-relative-time .hass="${this.hass}" .datetime="${1e3*t.when}" capitalize></ha-relative-time> ${t.context_user_id?s.qy`${this._renderUser(t)}`:""} ${y?`- ${this.hass.localize("ui.components.logbook.show_trace")}`:""} </div> </div> </div> ${y?s.qy`<ha-icon-next></ha-icon-next>`:""} </div> </div> `}}}(0,n.Cg)([(0,o.MZ)({attribute:!1})],I.prototype,"hass",void 0),(0,n.Cg)([(0,o.MZ)({attribute:!1})],I.prototype,"userIdToName",void 0),(0,n.Cg)([(0,o.MZ)({attribute:!1})],I.prototype,"traceContexts",void 0),(0,n.Cg)([(0,o.MZ)({attribute:!1})],I.prototype,"entries",void 0),(0,n.Cg)([(0,o.MZ)({type:Boolean,attribute:"narrow"})],I.prototype,"narrow",void 0),(0,n.Cg)([(0,o.MZ)({type:Boolean,attribute:"virtualize",reflect:!0})],I.prototype,"virtualize",void 0),(0,n.Cg)([(0,o.MZ)({type:Boolean,attribute:"show-indicator"})],I.prototype,"showIndicator",void 0),(0,n.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-icon"})],I.prototype,"noIcon",void 0),(0,n.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-name"})],I.prototype,"noName",void 0),(0,n.Cg)([(0,o.MZ)({type:Boolean,attribute:"relative-time"})],I.prototype,"relativeTime",void 0),(0,n.Cg)([(0,h.a)(".container")],I.prototype,"_savedScrollPos",void 0),(0,n.Cg)([(0,o.Ls)({passive:!0})],I.prototype,"_saveScrollPos",null),(0,n.Cg)([(0,o.Ls)({passive:!0})],I.prototype,"_visibilityChanged",null),I=(0,n.Cg)([(0,o.EM)("ha-logbook-renderer")],I),e()}catch(t){e(t)}})}};