iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
11 lines • 15.5 kB
JavaScript
/*! For license information please see 24901.27b7be8d254d7d67.js.LICENSE.txt */
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[24901],{41060:function(a,e,t){t.a(a,async function(a,e){try{t(18111),t(61701),t(62953);var i=t(40445),o=t(5124),r=t(67576),s=t(6412),l=t(44537),n=t(1087),d=t(67258),c=t(46187),p=t(18350),h=t(26300),u=t(94355),g=a([p,h,u]);[p,h,u]=g.then?(await g)():g;let v,b,f,m,y,_,k,$,w=a=>a;const x="M19,4H15.5L14.5,3H9.5L8.5,4H5V6H19M6,19A2,2 0 0,0 8,21H16A2,2 0 0,0 18,19V7H6V19Z",C="M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z";class D extends o.WF{firstUpdated(a){super.firstUpdated(a),this.autoOpenFileDialog&&this._openFilePicker()}get _name(){if(void 0===this.value)return"";if("string"==typeof this.value)return this.value;return(this.value instanceof FileList?Array.from(this.value):(0,l.e)(this.value)).map(a=>a.name).join(", ")}render(){const a=this.localize||this.hass.localize;return(0,o.qy)(v||(v=w` ${0} `),this.uploading?(0,o.qy)(b||(b=w`<div class="container"> <div class="uploading"> <span class="header">${0}</span> ${0} </div> <ha-progress-bar .indeterminate="${0}" .value="${0}" loading></ha-progress-bar> </div>`),this.uploadingLabel||(this.value?a("ui.components.file-upload.uploading_name",{name:this._name}):a("ui.components.file-upload.uploading")),this.progress?(0,o.qy)(f||(f=w`<div class="progress"> ${0}${0}% </div>`),this.progress,this.hass&&(0,d.d)(this.hass.locale)):o.s6,!this.progress,this.progress):(0,o.qy)(m||(m=w`<label for="${0}" class="container ${0}" ="${0}" ="${0}" ="${0}" ="${0}" ="${0}">${0} <input id="input" type="file" class="file" .accept="${0}" .multiple="${0}" ="${0}"></label>`),this.value?"":"input",(0,s.H)({dragged:this._drag,multiple:this.multiple,value:Boolean(this.value)}),this._handleDrop,this._handleDragStart,this._handleDragStart,this._handleDragEnd,this._handleDragEnd,this.value?"string"==typeof this.value?(0,o.qy)(_||(_=w`<div class="row"> <div class="value" ="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </div> <ha-icon-button ="${0}" .label="${0}" .path="${0}"></ha-icon-button> </div>`),this._openFilePicker,this.icon||C,this.value,this._clearValue,this.deleteLabel||a("ui.common.delete"),x):(this.value instanceof FileList?Array.from(this.value):(0,l.e)(this.value)).map(e=>(0,o.qy)(k||(k=w`<div class="row"> <div class="value" ="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} - ${0} </div> <ha-icon-button ="${0}" .label="${0}" .path="${0}"></ha-icon-button> </div>`),this._openFilePicker,this.icon||C,e.name,(0,c.A)(e.size),this._clearValue,this.deleteLabel||a("ui.common.delete"),x)):(0,o.qy)(y||(y=w`<ha-button size="small" appearance="filled" ="${0}"> <ha-svg-icon slot="start" .path="${0}"></ha-svg-icon> ${0} </ha-button> <span class="secondary">${0}</span> <span class="supports">${0}</span>`),this._openFilePicker,this.icon||C,this.label||a("ui.components.file-upload.label"),this.secondary||a("ui.components.file-upload.secondary"),this.supports),this.accept,this.multiple,this._handleFilePicked))}_openFilePicker(){var a;null===(a=this._input)||void 0===a||a.click()}_handleDrop(a){var e;a.preventDefault(),a.stopPropagation(),null!==(e=a.dataTransfer)&&void 0!==e&&e.files&&(0,n.r)(this,"file-picked",{files:this.multiple||1===a.dataTransfer.files.length?Array.from(a.dataTransfer.files):[a.dataTransfer.files[0]]}),this._drag=!1}_handleDragStart(a){a.preventDefault(),a.stopPropagation(),this._drag=!0}_handleDragEnd(a){a.preventDefault(),a.stopPropagation(),this._drag=!1}_handleFilePicked(a){0!==a.target.files.length&&(this.value=a.target.files,(0,n.r)(this,"file-picked",{files:a.target.files}))}_clearValue(a){a.preventDefault(),this._input.value="",this.value=void 0,(0,n.r)(this,"change"),(0,n.r)(this,"files-cleared")}constructor(...a){super(...a),this.multiple=!1,this.disabled=!1,this.uploading=!1,this.autoOpenFileDialog=!1,this._drag=!1}}D.styles=(0,o.AH)($||($=w`:host{display:block;height:240px}:host([disabled]){pointer-events:none;color:var(--disabled-text-color)}.container{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;border:solid 1px var(--mdc-text-field-idle-line-color,rgba(0,0,0,.42));border-radius:var(--mdc-shape-small,var(--ha-border-radius-sm));height:100%}.row{display:flex;align-items:center}label.container{border:dashed 1px var(--mdc-text-field-idle-line-color,rgba(0,0,0,.42));cursor:pointer}.container .uploading{display:flex;flex-direction:column;width:100%;align-items:flex-start;padding:0 32px;box-sizing:border-box}:host([disabled]) .container{border-color:var(--disabled-color)}label.dragged,label:hover{border-style:solid}label.dragged{border-color:var(--primary-color)}.dragged:before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:var(--primary-color);content:"";opacity:var(--dark-divider-opacity);pointer-events:none;border-radius:var(--mdc-shape-small,4px)}label.value{cursor:default}label.value.multiple{justify-content:unset;overflow:auto}.highlight{color:var(--primary-color)}ha-button{margin-bottom:8px}.supports{color:var(--secondary-text-color);font-size:var(--ha-font-size-s)}:host([disabled]) .secondary{color:var(--disabled-text-color)}input.file{display:none}.value{cursor:pointer}.value ha-svg-icon{margin-right:8px;margin-inline-end:8px;margin-inline-start:initial}ha-button{--mdc-button-outline-color:var(--primary-color);--ha-icon-button-size:24px}ha-progress-bar{width:100%;padding:8px 32px;box-sizing:border-box}.header{font-weight:var(--ha-font-weight-medium)}.progress{color:var(--secondary-text-color)}button.link{background:0 0;border:none;padding:0;font-size:var(--ha-font-size-m);color:var(--primary-color);text-decoration:underline;cursor:pointer}`)),(0,i.Cg)([(0,r.MZ)({attribute:!1})],D.prototype,"hass",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],D.prototype,"localize",void 0),(0,i.Cg)([(0,r.MZ)()],D.prototype,"accept",void 0),(0,i.Cg)([(0,r.MZ)()],D.prototype,"icon",void 0),(0,i.Cg)([(0,r.MZ)()],D.prototype,"label",void 0),(0,i.Cg)([(0,r.MZ)()],D.prototype,"secondary",void 0),(0,i.Cg)([(0,r.MZ)({attribute:"uploading-label"})],D.prototype,"uploadingLabel",void 0),(0,i.Cg)([(0,r.MZ)({attribute:"delete-label"})],D.prototype,"deleteLabel",void 0),(0,i.Cg)([(0,r.MZ)()],D.prototype,"supports",void 0),(0,i.Cg)([(0,r.MZ)({type:Object})],D.prototype,"value",void 0),(0,i.Cg)([(0,r.MZ)({type:Boolean})],D.prototype,"multiple",void 0),(0,i.Cg)([(0,r.MZ)({type:Boolean,reflect:!0})],D.prototype,"disabled",void 0),(0,i.Cg)([(0,r.MZ)({type:Boolean})],D.prototype,"uploading",void 0),(0,i.Cg)([(0,r.MZ)({type:Number})],D.prototype,"progress",void 0),(0,i.Cg)([(0,r.MZ)({type:Boolean,attribute:"auto-open-file-dialog"})],D.prototype,"autoOpenFileDialog",void 0),(0,i.Cg)([(0,r.wk)()],D.prototype,"_drag",void 0),(0,i.Cg)([(0,r.P)("#input")],D.prototype,"_input",void 0),D=(0,i.Cg)([(0,r.EM)("ha-file-upload")],D),e()}catch(v){e(v)}})},94355:function(a,e,t){t.a(a,async function(a,e){try{t(62953);var i=t(40445),o=t(88590),r=t(5124),s=t(67576),l=a([o]);o=(l.then?(await l)():l)[0];let n,d=a=>a;class c extends o.A{static get styles(){return[o.A.styles,(0,r.AH)(n||(n=d`:host{--indicator-color:var(
--ha-progress-bar-indicator-color,
var(--ha-color-on-primary-normal)
);--track-color:var(
--ha-progress-bar-track-color,
var(--ha-color-fill-neutral-normal-hover)
);--track-height:var(--ha-progress-bar-track-height, 12px);--wa-transition-slow:var(--ha-animation-duration-slow);position:relative}.progress-bar{border-radius:var(--ha-progress-bar-border-radius,var(--ha-border-radius-pill))}.indicator{background:var(--ha-progress-bar-indicator-background,var(--indicator-color))}:host([indeterminate]) .indicator{animation:wa-progress-indeterminate var(--ha-progress-bar-animation-duration,2.5s) infinite cubic-bezier(.37,0,.63,1)} slide-highlight{0%{transform:translateX(-200%)}100%{transform:translateX(200%)}}:host([loading]:not([indeterminate])) .progress-bar::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,oklch(from var(--indicator-color) 85% c h) 50%,transparent 100%);opacity:.5;animation:slide-highlight var(--ha-progress-bar-animation-duration,2.5s) infinite cubic-bezier(.37,0,.63,1);width:50%}:host::after{--width:var(
--ha-progress-bar-indicator-highlight-width,
calc(var(--track-height) * 2)
);width:var(--width);height:var(--ha-progress-bar-indicator-highlight-height,calc(var(--track-height) * 2));content:"";position:absolute;inset-inline-start:clamp(var(--width)/ 2,var(--percentage,0%),calc(100% - var(--width)/ 2));top:50%;transform:translate(-50%,-50%);background-image:var(--ha-progress-bar-indicator-highlight-image);background-size:contain;background-repeat:no-repeat;background-position:center;pointer-events:none;transition:inset-inline-start var(--wa-transition-slow, 200ms) var(--wa-transition-easing, ease)}:host([indeterminate])::after{display:none}`))]}constructor(...a){super(...a),this.loading=!1}}(0,i.Cg)([(0,s.MZ)({type:Boolean,reflect:!0})],c.prototype,"loading",void 0),c=(0,i.Cg)([(0,s.EM)("ha-progress-bar")],c),e()}catch(n){e(n)}})},62468:function(a,e,t){t.a(a,async function(a,i){try{t.r(e),t.d(e,{DialogUploadBackup:function(){return $}});t(3362),t(62953);var o=t(40445),r=t(5124),s=t(67576),l=t(36312),n=t(1087),d=t(38962),c=t(18350),p=t(72554),h=(t(93444),t(41060)),u=t(31420),g=t(14503),v=t(33963),b=a([d,c,p,h,v,u]);[d,c,p,h,v,u]=b.then?(await b)():b;let f,m,y,_=a=>a;const k="M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75";class $ extends r.WF{async showDialog(a){this._params=a,this._formData=u.Dt,this._open=!0}_dialogClosed(){this._params.cancel&&this._params.cancel(),this._formData=void 0,this._params=void 0,this._open=!1,(0,n.r)(this,"dialog-closed",{dialog:this.localName})}closeDialog(){return this._open=!1,!0}_formValid(){var a;return void 0!==(null===(a=this._formData)||void 0===a?void 0:a.file)}render(){return this._params&&this._formData?(0,r.qy)(f||(f=_` <ha-dialog .open="${0}" header-title="${0}" ?prevent-scrim-close="${0}" ="${0}"> ${0} <ha-file-upload .hass="${0}" .uploading="${0}" .icon="${0}" .accept="${0}" .localize="${0}" .label="${0}" .supports="${0}" -picked="${0}" -cleared="${0}"></ha-file-upload> <ha-dialog-footer slot="footer"> <ha-button slot="secondaryAction" appearance="plain" ="${0}" .disabled="${0}"> ${0} </ha-button> <ha-button slot="primaryAction" ="${0}" .disabled="${0}"> ${0} </ha-button> </ha-dialog-footer> </ha-dialog> `),this._open,this.hass.localize("ui.panel.config.backup.dialogs.upload.title"),this._uploading,this._dialogClosed,this._error?(0,r.qy)(m||(m=_`<ha-alert alert-type="error">${0}</ha-alert>`),this._error):r.s6,this.hass,this._uploading,k,u.xN,this.hass.localize,this.hass.localize("ui.panel.config.backup.dialogs.upload.input_label"),this.hass.localize("ui.panel.config.backup.dialogs.upload.supports_tar"),this._filePicked,this._filesCleared,this.closeDialog,this._uploading,this.hass.localize("ui.common.cancel"),this._upload,!this._formValid()||this._uploading,this.hass.localize("ui.panel.config.backup.dialogs.upload.action")):r.s6}_filePicked(a){this._error=void 0;const e=a.detail.files[0];this._formData=Object.assign(Object.assign({},this._formData),{},{file:e})}_filesCleared(){this._error=void 0,this._formData=u.Dt}async _upload(){const{file:a}=this._formData;if(!a||a.type!==u.xN)return void(0,v.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.backup.dialogs.upload.unsupported.title"),text:this.hass.localize("ui.panel.config.backup.dialogs.upload.unsupported.text"),confirmText:this.hass.localize("ui.common.ok")});const e=(0,l.x)(this.hass.config,"hassio")?[u.mF]:[u.gv];this._uploading=!0;try{var t,i;await(0,u.kI)(this.hass,a,e),null===(t=(i=this._params).submit)||void 0===t||t.call(i),this.closeDialog()}catch(o){this._error=o.message}finally{this._uploading=!1}}static get styles(){return[g.RF,g.nA,(0,r.AH)(y||(y=_`ha-alert{display:block;margin-bottom:var(--ha-space-4)}`))]}constructor(...a){super(...a),this._uploading=!1,this._open=!1}}(0,o.Cg)([(0,s.MZ)({attribute:!1})],$.prototype,"hass",void 0),(0,o.Cg)([(0,s.wk)()],$.prototype,"_params",void 0),(0,o.Cg)([(0,s.wk)()],$.prototype,"_uploading",void 0),(0,o.Cg)([(0,s.wk)()],$.prototype,"_error",void 0),(0,o.Cg)([(0,s.wk)()],$.prototype,"_formData",void 0),(0,o.Cg)([(0,s.wk)()],$.prototype,"_open",void 0),$=(0,o.Cg)([(0,s.EM)("ha-dialog-upload-backup")],$),i()}catch(f){i(f)}})},88590:function(a,e,t){t.a(a,async function(a,i){try{t.d(e,{A:function(){return m}});t(62953);var o=t(5124),r=t(67576),s=t(63672),l=t(95010),n=t(717),d=t(17060),c=t(4168),p=a([d]);d=(p.then?(await p)():p)[0];let v,b,f=a=>a;var h=Object.defineProperty,u=Object.getOwnPropertyDescriptor,g=(a,e,t,i)=>{for(var o,r=i>1?void 0:i?u(e,t):e,s=a.length-1;s>=0;s--)(o=a[s])&&(r=(i?o(e,t,r):o(r))||r);return i&&r&&h(e,t,r),r};let m=class extends n.A{updated(a){a.has("value")&&requestAnimationFrame(()=>{this.style.setProperty("--percentage",`${(0,l.q)(this.value,0,100)}%`)})}render(){return(0,o.qy)(v||(v=f` <div part="base" class="progress-bar" role="progressbar" title="${0}" aria-label="${0}" aria-valuemin="0" aria-valuemax="100" aria-valuenow="${0}"> <div part="indicator" class="indicator"> ${0} </div> </div> `),(0,s.J)(this.title),this.label.length>0?this.label:this.localize.term("progress"),this.indeterminate?"0":this.value,this.indeterminate?"":(0,o.qy)(b||(b=f` <slot part="label" class="label"></slot> `)))}constructor(){super(...arguments),this.localize=new d.c(this),this.value=0,this.indeterminate=!1,this.label=""}};m.css=c.A,g([(0,r.MZ)({type:Number,reflect:!0})],m.prototype,"value",2),g([(0,r.MZ)({type:Boolean,reflect:!0})],m.prototype,"indeterminate",2),g([(0,r.MZ)()],m.prototype,"label",2),m=g([(0,r.EM)("wa-progress-bar")],m),i()}catch(v){i(v)}})},4168:function(a,e,t){t.d(e,{A:function(){return o}});let i;var o=(0,t(5124).AH)(i||(i=(a=>a)`:host{--track-height:1rem;--track-color:var(--wa-color-neutral-fill-normal);--indicator-color:var(--wa-color-brand-fill-loud);display:flex}.progress-bar{flex:1 1 auto;display:flex;position:relative;overflow:hidden;height:var(--track-height);border-radius:var(--wa-border-radius-pill);background-color:var(--track-color);color:var(--wa-color-brand-on-loud);font-size:var(--wa-font-size-s)}.indicator{width:var(--percentage);display:flex;align-items:center;justify-content:center;background-color:var(--indicator-color);text-align:center;white-space:nowrap;overflow:hidden;line-height:1;font-weight:var(--wa-font-weight-semibold);transition:all var(--wa-transition-slow, 200ms) var(--wa-transition-easing, ease);user-select:none;-webkit-user-select:none}:host([indeterminate]) .indicator{position:absolute;inset-block:0;inline-size:50%;animation:wa-progress-indeterminate 2.5s infinite cubic-bezier(.37,0,.63,1)} (forced-colors:active){.progress-bar{outline:solid 1px SelectedItem;background-color:var(--wa-color-surface-default)}.indicator{outline:solid 1px SelectedItem;background-color:SelectedItem}} wa-progress-indeterminate{0%{inset-inline-start:-50%}100%,75%{inset-inline-start:100%}}`))}}]);