iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
5 lines • 19.6 kB
JavaScript
"use strict";(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([["27232"],{61791:function(e,t,a){a.a(e,(async function(e,n){try{a.d(t,{K:()=>d,s:()=>s});a(92745);var r=a(16485),i=a(27486),o=e([r]);r=(o.then?(await o)():o)[0];const d=(0,i.Z)(((e,t)=>{const a=[],n=new Intl.DateTimeFormat(e,{weekday:t?"short":"long",timeZone:"UTC"});for(let r=0;r<7;r++){const e=new Date(Date.UTC(1970,0,4+r));a.push(n.format(e))}return a})),s=(0,i.Z)(((e,t)=>{const a=[],n=new Intl.DateTimeFormat(e,{month:t?"short":"long",timeZone:"UTC"});for(let r=0;r<12;r++){const e=new Date(Date.UTC(1970,0+r,1));a.push(n.format(e))}return a}));n()}catch(d){n(d)}}))},6231:function(e,t,a){a.a(e,(async function(e,t){try{var n=a(61701),r=a(41565),i=a(50778),o=a(47990),d=a(8191),s=a.n(d),l=a(11132),c=a(36522),h=a(61791),p=a(5111),u=e([h]);h=(u.then?(await u)():u)[0];const g=o.ZP.extend({mixins:[s()],methods:{selectMonthDate(){const e=this.end||new Date;this.changeLeftMonth({year:e.getFullYear(),month:e.getMonth()+1})},hoverDate(e){if(!this.readonly){if(this.in_selection){const t=this.in_selection,a=e;this.start=this.normalizeDatetime(Math.min(t.valueOf(),a.valueOf()),this.start),this.end=this.normalizeDatetime(Math.max(t.valueOf(),a.valueOf()),this.end)}this.$emit("hover-date",e)}}}}),k=o.ZP.extend({props:{timePicker:{type:Boolean,default:!0},twentyfourHours:{type:Boolean,default:!0},openingDirection:{type:String,default:"right"},disabled:{type:Boolean,default:!1},ranges:{type:Boolean,default:!0},startDate:{type:[String,Date],default(){return new Date}},endDate:{type:[String,Date],default(){return new Date}},firstDay:{type:Number,default:1},autoApply:{type:Boolean,default:!1},language:{type:String,default:"en"}},render(e){return e(g,{props:{"time-picker":this.timePicker,"auto-apply":this.autoApply,opens:this.openingDirection,"show-dropdowns":!1,"time-picker24-hour":this.twentyfourHours,disabled:this.disabled,ranges:!!this.ranges&&{},"locale-data":{firstDay:this.firstDay,daysOfWeek:(0,h.K)(this.language,!0),monthNames:(0,h.s)(this.language,!1)}},model:{value:{startDate:this.startDate,endDate:this.endDate},callback:e=>{(0,c.B)(this.$el,"change",e)},expression:"dateRange"},scopedSlots:{input(){return e("slot",{domProps:{name:"input"}})},header(){return e("slot",{domProps:{name:"header"}})},ranges(){return e("slot",{domProps:{name:"ranges"}})},footer(){return e("slot",{domProps:{name:"footer"}})}}})}}),m=(0,r.Z)(o.ZP,k);(0,n.Z)([(0,i.Mo)("date-range-picker")],(function(e,t){return{F:class extends t{constructor(){super(),e(this);const t=document.createElement("style");t.innerHTML=`\n ${l}\n .calendars {\n display: flex;\n flex-wrap: nowrap !important;\n }\n .daterangepicker {\n top: auto;\n box-shadow: var(--ha-card-box-shadow, none);\n background-color: var(--card-background-color);\n border-radius: var(--ha-card-border-radius, 12px);\n border-width: var(--ha-card-border-width, 1px);\n border-style: solid;\n border-color: var(\n --ha-card-border-color,\n var(--divider-color, #e0e0e0)\n );\n color: var(--primary-text-color);\n min-width: initial !important;\n max-height: var(--date-range-picker-max-height);\n overflow-y: auto;\n }\n .daterangepicker:before {\n display: none;\n }\n .daterangepicker:after {\n border-bottom: 6px solid var(--card-background-color);\n }\n .daterangepicker .calendar-table {\n background-color: var(--card-background-color);\n border: none;\n }\n .daterangepicker .calendar-table td,\n .daterangepicker .calendar-table th {\n background-color: transparent;\n color: var(--secondary-text-color);\n border-radius: 0;\n outline: none;\n min-width: 32px;\n height: 32px;\n }\n .daterangepicker td.off,\n .daterangepicker td.off.end-date,\n .daterangepicker td.off.in-range,\n .daterangepicker td.off.start-date {\n background-color: var(--secondary-background-color);\n color: var(--disabled-text-color);\n }\n .daterangepicker td.in-range {\n background-color: var(--light-primary-color);\n color: var(--text-light-primary-color, var(--primary-text-color));\n }\n .daterangepicker td.active,\n .daterangepicker td.active:hover {\n background-color: var(--primary-color);\n color: var(--text-primary-color);\n }\n .daterangepicker td.start-date.end-date {\n border-radius: 50%;\n }\n .daterangepicker td.start-date {\n border-radius: 50% 0 0 50%;\n }\n .daterangepicker td.end-date {\n border-radius: 0 50% 50% 0;\n }\n .reportrange-text {\n background: none !important;\n padding: 0 !important;\n border: none !important;\n }\n .daterangepicker .calendar-table .next span,\n .daterangepicker .calendar-table .prev span {\n border: solid var(--primary-text-color);\n border-width: 0 2px 2px 0;\n }\n .daterangepicker .ranges li {\n outline: none;\n }\n .daterangepicker .ranges li:hover {\n background-color: var(--secondary-background-color);\n }\n .daterangepicker .ranges li.active {\n background-color: var(--primary-color);\n color: var(--text-primary-color);\n }\n .daterangepicker select.ampmselect,\n .daterangepicker select.hourselect,\n .daterangepicker select.minuteselect,\n .daterangepicker select.secondselect {\n background: var(--card-background-color);\n border: 1px solid var(--divider-color);\n color: var(--primary-color);\n }\n .daterangepicker .drp-buttons .btn {\n border: 1px solid var(--primary-color);\n background-color: transparent;\n color: var(--primary-color);\n border-radius: 4px;\n padding: 8px;\n cursor: pointer;\n }\n .calendars-container {\n flex-direction: column;\n align-items: center;\n }\n .drp-calendar.col.right .calendar-table {\n display: none;\n }\n .daterangepicker.show-ranges .drp-calendar.left {\n border-left: 0px;\n }\n .daterangepicker .drp-calendar.left {\n padding: 8px;\n width: unset;\n max-width: unset;\n min-width: 270px;\n }\n .daterangepicker.show-calendar .ranges {\n margin-top: 0;\n padding-top: 8px;\n border-right: 1px solid var(--divider-color);\n }\n only screen and (max-width: 800px) {\n .calendars {\n flex-direction: column;\n }\n }\n .calendar-table {\n padding: 0 !important;\n }\n .calendar-time {\n direction: ltr;\n }\n .daterangepicker.ltr {\n direction: var(--direction);\n text-align: var(--float-start);\n }\n .vue-daterange-picker{\n min-width: unset !important;\n display: block !important;\n }\n `,"rtl"===p.E.document.dir&&(t.innerHTML+="\n .daterangepicker .calendar-table .next span {\n transform: rotate(135deg);\n -webkit-transform: rotate(135deg);\n }\n .daterangepicker .calendar-table .prev span {\n transform: rotate(-45deg);\n -webkit-transform: rotate(-45deg);\n }\n .daterangepicker td.start-date {\n border-radius: 0 50% 50% 0;\n }\n .daterangepicker td.end-date {\n border-radius: 50% 0 0 50%;\n }\n ");const a=this.shadowRoot;a.appendChild(t),a.addEventListener("click",(e=>e.stopPropagation()))}},d:[]}}),m);t()}catch(g){t(g)}}))},12667:function(e,t,a){a.a(e,(async function(e,t){try{var n=a(61701),r=(a(71695),a(9359),a(31526),a(70104),a(47021),a(31622),a(2060),a(87319),a(86921)),i=a(35895),o=a(57243),d=a(50778),s=a(20552),l=a(97674),c=a(19631),h=a(64214),p=a(16922),u=a(36522),g=a(20382),k=a(6231),m=(a(23334),a(4635),a(5828),a(40917),a(48719)),v=e([k,m,c,h,l,i]);[k,m,c,h,l,i]=v.then?(await v)():v;let f,b,y,x,w,_,D=e=>e;const $="M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1M17,12H12V17H17V12Z",C=["today","yesterday","this_week"],P=["this_month","this_year","now-1h","now-12h","now-24h","now-7d","now-30d"];(0,n.Z)([(0,d.Mo)("ha-date-range-picker")],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"startDate",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"endDate",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"ranges",value:void 0},{kind:"field",decorators:[(0,d.SB)()],key:"_ranges",value:void 0},{kind:"field",decorators:[(0,d.Cb)({attribute:"auto-apply",type:Boolean})],key:"autoApply",value(){return!1}},{kind:"field",decorators:[(0,d.Cb)({attribute:"time-picker",type:Boolean})],key:"timePicker",value(){return!1}},{kind:"field",decorators:[(0,d.Cb)({type:Boolean})],key:"disabled",value(){return!1}},{kind:"field",decorators:[(0,d.Cb)({type:Boolean})],key:"minimal",value(){return!1}},{kind:"field",decorators:[(0,d.SB)()],key:"_hour24format",value(){return!1}},{kind:"field",decorators:[(0,d.Cb)({attribute:"extended-presets",type:Boolean})],key:"extendedPresets",value(){return!1}},{kind:"field",decorators:[(0,d.Cb)({attribute:!1})],key:"openingDirection",value:void 0},{kind:"field",decorators:[(0,d.SB)()],key:"_calcedOpeningDirection",value:void 0},{kind:"method",key:"willUpdate",value:function(e){var t,a;if(!this.hasUpdated&&void 0===this.ranges||e.has("hass")&&(null===(t=this.hass)||void 0===t?void 0:t.localize)!==(null===(a=e.get("hass"))||void 0===a?void 0:a.localize)){const e=this.extendedPresets?[...C,...P]:C;this._ranges={},e.forEach((e=>{this._ranges[this.hass.localize(`ui.components.date-range-picker.ranges.${e}`)]=(0,m.p)(this.hass,e)}))}}},{kind:"method",key:"updated",value:function(e){if(e.has("hass")){const t=e.get("hass");t&&t.locale===this.hass.locale||(this._hour24format=!(0,p.y)(this.hass.locale))}}},{kind:"method",key:"render",value:function(){return(0,o.dy)(f||(f=D` <date-range-picker ?disabled="${0}" ?auto-apply="${0}" time-picker="${0}" twentyfour-hours="${0}" start-date="${0}" end-date="${0}" ?ranges="${0}" opening-direction="${0}" first-day="${0}" language="${0}" ="${0}"> <div slot="input" class="date-range-inputs" ="${0}"> ${0} </div> ${0} <div slot="footer" class="date-range-footer"> <mwc-button ="${0}">${0}</mwc-button> <mwc-button ="${0}">${0}</mwc-button> </div> </date-range-picker> `),this.disabled,this.autoApply,this.timePicker,this._hour24format,this._formatDate(this.startDate),this._formatDate(this.endDate),!1!==this.ranges,(0,s.o)(this.openingDirection||this._calcedOpeningDirection),(0,c.Bt)(this.hass.locale),this.hass.locale.language,this._handleChange,this._handleClick,this.minimal?(0,o.dy)(y||(y=D`<ha-icon-button .label="${0}" .path="${0}"></ha-icon-button>`),this.hass.localize("ui.components.date-range-picker.select_date_range"),$):(0,o.dy)(b||(b=D`<ha-textarea mobile-multiline .value="${0}" .label="${0}" .disabled="${0}" ="${0}" readonly="readonly"></ha-textarea> <ha-icon-button-prev .label="${0}" ="${0}"> </ha-icon-button-prev> <ha-icon-button-next .label="${0}" ="${0}"> </ha-icon-button-next>`),((0,r.X)(this.startDate)?(0,h.yD)(this.startDate,this.hass.locale,this.hass.config):(0,h.DG)(this.startDate,this.hass.locale,this.hass.config))+(window.innerWidth>=459?" - ":" - \n")+((0,r.X)(this.endDate)?(0,h.yD)(this.endDate,this.hass.locale,this.hass.config):(0,h.DG)(this.endDate,this.hass.locale,this.hass.config)),this.hass.localize("ui.components.date-range-picker.start_date")+" - "+this.hass.localize("ui.components.date-range-picker.end_date"),this.disabled,this._handleInputClick,this.hass.localize("ui.common.previous"),this._handlePrev,this.hass.localize("ui.common.next"),this._handleNext),!1!==this.ranges&&(this.ranges||this._ranges)?(0,o.dy)(x||(x=D`<div slot="ranges" class="date-range-ranges"> <mwc-list ="${0}" activatable> ${0} </mwc-list> </div>`),this._setDateRange,Object.keys(this.ranges||this._ranges).map((e=>(0,o.dy)(w||(w=D`<mwc-list-item>${0}</mwc-list-item>`),e)))):o.Ld,this._cancelDateRange,this.hass.localize("ui.common.cancel"),this._applyDateRange,this.hass.localize("ui.components.date-range-picker.select"))}},{kind:"method",key:"_handleNext",value:function(e){e&&e.stopPropagation&&e.stopPropagation(),this._shift(!0)}},{kind:"method",key:"_handlePrev",value:function(e){e&&e.stopPropagation&&e.stopPropagation(),this._shift(!1)}},{kind:"method",key:"_shift",value:function(e){if(!this.startDate)return;const{start:t,end:a}=(0,l.Al)(this.startDate,this.endDate,e,this.hass.locale,this.hass.config);this.startDate=t,this.endDate=a;const n=[t,a],r=this._dateRangePicker;r.clickRange(n),r.clickedApply()}},{kind:"method",key:"_setDateRange",value:function(e){const t=Object.values(this.ranges||this._ranges)[e.detail.index];(0,u.B)(this,"preset-selected",{index:e.detail.index});const a=this._dateRangePicker;a.clickRange(t),a.clickedApply()}},{kind:"method",key:"_cancelDateRange",value:function(){this._dateRangePicker.clickCancel()}},{kind:"method",key:"_applyDateRange",value:function(){if(this.hass.locale.time_zone===g.c_.server){const e=this._dateRangePicker,t=(0,i.Nm)(e.start,this.hass.config.time_zone),a=(0,i.Nm)(e.end,this.hass.config.time_zone);e.clickRange([t,a])}this._dateRangePicker.clickedApply()}},{kind:"method",key:"_formatDate",value:function(e){return this.hass.locale.time_zone===g.c_.server?(0,i.zW)(e,this.hass.config.time_zone).toISOString():e.toISOString()}},{kind:"get",key:"_dateRangePicker",value:function(){return this.shadowRoot.querySelector("date-range-picker").vueComponent.$children[0]}},{kind:"method",key:"_handleInputClick",value:function(){this._dateRangePicker.open&&(this._dateRangePicker.open=!1)}},{kind:"method",key:"_handleClick",value:function(){if(!this._dateRangePicker.open&&!this.openingDirection){const e=this.getBoundingClientRect().x;let t;t=e>2*window.innerWidth/3?"left":e<window.innerWidth/3?"right":"center",this._calcedOpeningDirection=t}}},{kind:"method",key:"_handleChange",value:function(e){e.stopPropagation();const t=e.detail.startDate,a=e.detail.endDate;(0,u.B)(this,"value-changed",{value:{startDate:t,endDate:a}})}},{kind:"field",static:!0,key:"styles",value(){return(0,o.iv)(_||(_=D`ha-icon-button{direction:var(--direction)}.date-range-inputs{display:flex;align-items:center;gap:8px}.date-range-ranges{border-right:1px solid var(--divider-color)}.date-range-footer{display:flex;justify-content:flex-end;padding:8px;border-top:1px solid var(--divider-color)}ha-textarea{display:inline-block;width:340px} only screen and (max-width:460px){ha-textarea{width:100%}} only screen and (max-width:800px){.date-range-ranges{border-right:none;border-bottom:1px solid var(--divider-color)}} only screen and (max-height:940px) and (max-width:800px){.date-range-ranges{overflow:auto;max-height:calc(70vh - 330px);min-height:160px}:host([header-position]) .date-range-ranges{max-height:calc(90vh - 430px)}}`))}}]}}),o.oi);t()}catch(f){t(f)}}))},4635:function(e,t,a){a.r(t),a.d(t,{HaIconButtonNext:()=>l});var n=a(61701),r=(a(71695),a(47021),a(57243)),i=a(50778),o=a(5111);a(23334);let d,s=e=>e;let l=(0,n.Z)([(0,i.Mo)("ha-icon-button-next")],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[(0,i.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,i.Cb)({type:Boolean})],key:"disabled",value(){return!1}},{kind:"field",decorators:[(0,i.Cb)()],key:"label",value:void 0},{kind:"field",decorators:[(0,i.SB)()],key:"_icon",value(){return"rtl"===o.E.document.dir?"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z":"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"}},{kind:"method",key:"render",value:function(){var e;return(0,r.dy)(d||(d=s` <ha-icon-button .disabled="${0}" .label="${0}" .path="${0}"></ha-icon-button> `),this.disabled,this.label||(null===(e=this.hass)||void 0===e?void 0:e.localize("ui.common.next"))||"Next",this._icon)}}]}}),r.oi)},5828:function(e,t,a){a.r(t),a.d(t,{HaIconButtonPrev:()=>l});var n=a(61701),r=(a(71695),a(47021),a(57243)),i=a(50778),o=a(5111);a(23334);let d,s=e=>e;let l=(0,n.Z)([(0,i.Mo)("ha-icon-button-prev")],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[(0,i.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,i.Cb)({type:Boolean})],key:"disabled",value(){return!1}},{kind:"field",decorators:[(0,i.Cb)()],key:"label",value:void 0},{kind:"field",decorators:[(0,i.SB)()],key:"_icon",value(){return"rtl"===o.E.document.dir?"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z":"M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"}},{kind:"method",key:"render",value:function(){var e;return(0,r.dy)(d||(d=s` <ha-icon-button .disabled="${0}" .label="${0}" .path="${0}"></ha-icon-button> `),this.disabled,this.label||(null===(e=this.hass)||void 0===e?void 0:e.localize("ui.common.back"))||"Back",this._icon)}}]}}),r.oi)},40917:function(e,t,a){var n=a(61701),r=a(72621),i=(a(71695),a(47021),a(27323)),o=a(33990),d=a(88540),s=a(57243),l=a(50778);let c,h=e=>e;(0,n.Z)([(0,l.Mo)("ha-textarea")],(function(e,t){class a extends t{constructor(...t){super(...t),e(this)}}return{F:a,d:[{kind:"field",decorators:[(0,l.Cb)({type:Boolean,reflect:!0})],key:"autogrow",value(){return!1}},{kind:"method",key:"updated",value:function(e){(0,r.Z)(a,"updated",this,3)([e]),this.autogrow&&e.has("value")&&(this.mdcRoot.dataset.value=this.value+'="')}},{kind:"field",static:!0,key:"styles",value(){return[o.W,d.W,(0,s.iv)(c||(c=h`:host([autogrow]) .mdc-text-field{position:relative;min-height:74px;min-width:178px;max-height:200px}:host([autogrow]) .mdc-text-field:after{content:attr(data-value);margin-top:23px;margin-bottom:9px;line-height:1.5rem;min-height:42px;padding:0px 32px 0 16px;letter-spacing:var(
--mdc-typography-subtitle1-letter-spacing,
.009375em
);visibility:hidden;white-space:pre-wrap}:host([autogrow]) .mdc-text-field__input{position:absolute;height:calc(100% - 32px)}:host([autogrow]) .mdc-text-field.mdc-text-field--no-label:after{margin-top:16px;margin-bottom:16px}.mdc-floating-label{inset-inline-start:16px!important;inset-inline-end:initial!important;transform-origin:var(--float-start) top} only screen and (min-width:459px){:host([mobile-multiline]) .mdc-text-field__input{white-space:nowrap;max-height:16px}}`))]}}]}}),i.O)}}]);
//# sourceMappingURL=27232.2a1dc13c37c3f752.js.map