iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
14 lines • 9.67 kB
JavaScript
export const __webpack_ids__=["82794"];export const __webpack_modules__={50875:function(e,t,a){a.d(t,{Eu:()=>r,hZ:()=>d,o9:()=>h});var i=a(27486),s=a(11259);const n=["#4269d0","#f4bd4a","#ff725c","#6cc5b0","#a463f2","#ff8ab7","#9c6b4e","#97bbf5","#01ab63","#9498a0","#094bad","#c99000","#d84f3e","#49a28f","#048732","#d96895","#8043ce","#7599d1","#7a4c31","#74787f","#6989f4","#ffd444","#ff957c","#8fe9d3","#62cc71","#ffadda","#c884ff","#badeff","#bf8b6d","#b6bac2","#927acc","#97ee3f","#bf3947","#9f5b00","#f48758","#8caed6","#f2b94f","#eff26e","#e43872","#d9b100","#9d7a00","#698cff","#d9d9d9","#00d27e","#d06800","#009f82","#c49200","#cbe8ff","#fecddf","#c27eb6","#8cd2ce","#c4b8d9","#f883b0","#a49100","#f48800","#27d0df","#a04a9b"];function r(e){return n[e%n.length]}function d(e,t){const a=t.getPropertyValue(`--graph-color-${e+1}`)||r(e);return(0,s.Rq)(a)}const h=(0,i.Z)((e=>n.map(((t,a)=>d(a,e)))),((e,t)=>e[0].getPropertyValue("--graph-color-1")===t[0].getPropertyValue("--graph-color-1")))},48103:function(e,t,a){var i=a(44249),s=a(72621),n=a(57243),r=a(93958),d=a(97536),h=a(46289),c=a(15093),l=a(36522);(0,i.Z)([(0,c.Mo)("ha-check-list-item")],(function(e,t){class a extends t{constructor(...t){super(...t),e(this)}}return{F:a,d:[{kind:"method",key:"onChange",value:async function(e){(0,s.Z)(a,"onChange",this,3)([e]),(0,l.B)(this,e.type)}},{kind:"field",static:!0,key:"styles",value:()=>[h.W,d.W,n.iv`:host{--mdc-theme-secondary:var(--primary-color)}:host([graphic=avatar]) .mdc-deprecated-list-item__graphic,:host([graphic=control]) .mdc-deprecated-list-item__graphic,:host([graphic=large]) .mdc-deprecated-list-item__graphic,:host([graphic=medium]) .mdc-deprecated-list-item__graphic{margin-inline-end:var(--mdc-list-item-graphic-margin,16px);margin-inline-start:0px;direction:var(--direction)}.mdc-deprecated-list-item__meta{flex-shrink:0;direction:var(--direction);margin-inline-start:auto;margin-inline-end:0}.mdc-deprecated-list-item__graphic{margin-top:var(--check-list-item-graphic-margin-top)}:host([graphic=icon]) .mdc-deprecated-list-item__graphic{margin-inline-start:0;margin-inline-end:var(--mdc-list-item-graphic-margin,32px)}`]}]}}),r.F)},59822:function(e,t,a){a.a(e,(async function(e,i){try{a.r(t);var s=a(44249),n=a(72621),r=(a(9359),a(56475),a(1331),a(70104),a(18672)),d=(a(2060),a(57243)),h=a(15093),c=a(69634),l=a(68958),o=a(47194),m=(a(59826),a(34273),a(54977),a(48103),a(23334),a(43344),a(51223)),u=(a(37583),a(47593),a(91106)),p=a(57816),f=a(38572),_=a(28008),v=a(22289),g=e([m,v]);[m,v]=g.then?(await g)():g;const y="M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",k="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",b="M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z";(0,s.Z)([(0,h.Mo)("ha-panel-calendar")],(function(e,t){class a extends t{constructor(...t){super(...t),e(this)}}return{F:a,d:[{kind:"field",decorators:[(0,h.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,h.Cb)({type:Boolean,reflect:!0})],key:"narrow",value:()=>!1},{kind:"field",decorators:[(0,h.Cb)({type:Boolean,reflect:!0})],key:"mobile",value:()=>!1},{kind:"field",decorators:[(0,h.SB)()],key:"_calendars",value:()=>[]},{kind:"field",decorators:[(0,h.SB)()],key:"_events",value:()=>[]},{kind:"field",decorators:[(0,h.SB)()],key:"_error",value(){}},{kind:"field",decorators:[(0,l.t)({key:"deSelectedCalendars",state:!0})],key:"_deSelectedCalendars",value:()=>[]},{kind:"field",key:"_start",value:void 0},{kind:"field",key:"_end",value:void 0},{kind:"field",key:"_showPaneController",value(){return new r.Z(this,{callback:e=>e[0]?.contentRect.width>750})}},{kind:"field",key:"_mql",value:void 0},{kind:"field",key:"_headerHeight",value:()=>56},{kind:"method",key:"connectedCallback",value:function(){(0,n.Z)(a,"connectedCallback",this,3)([]),this._mql=window.matchMedia("(max-width: 450px), all and (max-height: 500px)"),this._mql.addListener(this._setIsMobile),this.mobile=this._mql.matches;const e=getComputedStyle(this);this._headerHeight=Number(e.getPropertyValue("--header-height").replace("px",""))}},{kind:"method",key:"disconnectedCallback",value:function(){(0,n.Z)(a,"disconnectedCallback",this,3)([]),this._mql?.removeListener(this._setIsMobile),this._mql=void 0}},{kind:"field",key:"_setIsMobile",value(){return e=>{this.mobile=e.matches}}},{kind:"method",key:"willUpdate",value:function(e){(0,n.Z)(a,"willUpdate",this,3)([e]),this.hasUpdated||(this._calendars=(0,u.tT)(this.hass))}},{kind:"method",key:"render",value:function(){const e=this._calendars.map((e=>d.dy` <ha-check-list-item -selected="${this._requestSelected}" graphic="icon" style="${(0,c.V)({"--mdc-theme-secondary":e.backgroundColor})}" .value="${e.entity_id}" .selected="${!this._deSelectedCalendars.includes(e.entity_id)}"> <ha-state-icon slot="graphic" .hass="${this.hass}" .stateObj="${e}"></ha-state-icon> ${e.name} </ha-check-list-item> `)),t=this._showPaneController.value??!this.narrow;return d.dy` <ha-two-pane-top-app-bar-fixed .pane="${t}" footer> <ha-menu-button slot="navigationIcon" .hass="${this.hass}" .narrow="${this.narrow}"></ha-menu-button> ${t?d.dy`<div slot="title"> ${this.hass.localize("ui.components.calendar.my_calendars")} </div>`:d.dy`<ha-button-menu slot="title" class="lists" multi fixed .noAnchor="${this.mobile}" .y="${this.mobile?this._headerHeight/2:this._headerHeight/4}" .x="${this.mobile?0:void 0}"> <ha-button slot="trigger"> ${this.hass.localize("ui.components.calendar.my_calendars")} <ha-svg-icon slot="trailingIcon" .path="${y}"></ha-svg-icon> </ha-button> ${e} ${this.hass.user?.is_admin?d.dy` <li divider role="separator"></li> <ha-list-item graphic="icon" ="${this._addCalendar}"> <ha-svg-icon .path="${k}" slot="graphic"></ha-svg-icon> ${this.hass.localize("ui.components.calendar.create_calendar")} </ha-list-item>`:d.Ld} </ha-button-menu>`} <ha-icon-button slot="actionItems" .path="${b}" .label="${this.hass.localize("ui.common.refresh")}" ="${this._handleRefresh}"></ha-icon-button> ${t&&this.hass.user?.is_admin?d.dy`<mwc-list slot="pane" multi}>${e}</mwc-list> <ha-list-item graphic="icon" slot="pane-footer" ="${this._addCalendar}"> <ha-svg-icon .path="${k}" slot="graphic"></ha-svg-icon> ${this.hass.localize("ui.components.calendar.create_calendar")} </ha-list-item>`:d.Ld} <ha-full-calendar .events="${this._events}" .calendars="${this._calendars}" .narrow="${this.narrow}" .initialView="${this.narrow?"listWeek":"dayGridMonth"}" .hass="${this.hass}" .error="${this._error}" -changed="${this._handleViewChanged}"></ha-full-calendar> </ha-two-pane-top-app-bar-fixed> `}},{kind:"get",key:"_selectedCalendars",value:function(){return this._calendars.filter((e=>!this._deSelectedCalendars.includes(e.entity_id))).map((e=>e))}},{kind:"method",key:"_fetchEvents",value:async function(e,t,a){return a.length&&e&&t?(0,u.GL)(this.hass,e,t,a):{events:[],errors:[]}}},{kind:"method",key:"_requestSelected",value:async function(e){e.stopPropagation();const t=e.target.value;if(e.detail.selected){if(this._deSelectedCalendars=this._deSelectedCalendars.filter((e=>e!==t)),"interaction"===e.detail.source)return;const a=this._calendars.find((e=>e.entity_id===t));if(!a)return;const i=await this._fetchEvents(this._start,this._end,[a]);this._events=[...this._events,...i.events],this._handleErrors(i.errors)}else this._deSelectedCalendars=[...this._deSelectedCalendars,t],this._events=this._events.filter((e=>e.calendar!==t))}},{kind:"method",key:"_addCalendar",value:async function(){(0,f.t)(this,{startFlowHandler:"local_calendar",showAdvanced:this.hass.userData?.showAdvanced,manifest:await(0,p.t4)(this.hass,"local_calendar"),dialogClosedCallback:({flowFinished:e})=>{e&&(this._calendars=(0,u.tT)(this.hass))}})}},{kind:"method",key:"_handleViewChanged",value:async function(e){this._start=e.detail.start,this._end=e.detail.end;const t=await this._fetchEvents(this._start,this._end,this._selectedCalendars);this._events=t.events,this._handleErrors(t.errors)}},{kind:"method",key:"_handleRefresh",value:async function(){const e=await this._fetchEvents(this._start,this._end,this._selectedCalendars);this._events=e.events,this._handleErrors(e.errors)}},{kind:"method",key:"_handleErrors",value:function(e){if(this._error=void 0,e.length>0){const t=e.map((e=>this.hass.states[e]?(0,o.C)(this.hass.states[e]):e)).join(", ");this._error=`${this.hass.localize("ui.components.calendar.event_retrieval_error")} ${t}`}}},{kind:"get",static:!0,key:"styles",value:function(){return[_.Qx,d.iv`:host{display:block}ha-full-calendar{height:calc(100vh - var(--header-height));--calendar-header-padding:12px;--calendar-border-radius:0;--calendar-border-width:1px 0}ha-button-menu ha-button{--mdc-theme-primary:currentColor;--mdc-typography-button-text-transform:none;--mdc-typography-button-font-size:var(
--mdc-typography-headline6-font-size,
1.25rem
);--mdc-typography-button-font-weight:var(
--mdc-typography-headline6-font-weight,
500
);--mdc-typography-button-letter-spacing:var(
--mdc-typography-headline6-letter-spacing,
0.0125em
);--mdc-typography-button-line-height:var(
--mdc-typography-headline6-line-height,
2rem
);--button-height:40px}:host([mobile]) .lists{--mdc-menu-min-width:100vw}:host([mobile]) ha-button-menu{--mdc-shape-medium:0 0 var(--mdc-shape-medium) var(--mdc-shape-medium)}`]}}]}}),d.oi);i()}catch(e){i(e)}}))}};
//# sourceMappingURL=82794.03580ad285b77a72.js.map