iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 5.48 kB
JavaScript
export const __rspack_esm_id=51277;export const __rspack_esm_ids=[51277];export const __webpack_modules__={16988(e,t,i){i.a(e,async function(e,n){try{i.r(t),i.d(t,{HuiPictureElementsCardEditor:()=>y});var o=i(62826),a=i(22786),s=i(5124),l=i(22441),c=i(63533),r=i(1087),d=i(38962),m=(i(76776),i(52763)),h=(i(47680),i(59646)),_=i(55810),g=i(81287),p=i(84698),u=i(7382),f=i(37258),C=e([d,m,h,g,f]);[d,m,h,g,f]=C.then?(await C)():C;const b=(0,c.NW)({type:(0,c.Yj)()}),E=(0,c.kp)(p.H,(0,c.Ik)({image:(0,c.lq)((0,c.KC)([(0,c.Yj)(),(0,c.Ik)()])),camera_image:(0,c.lq)((0,c.Yj)()),camera_view:(0,c.lq)((0,c.Yj)()),elements:(0,c.YO)(b),title:(0,c.lq)((0,c.Yj)()),state_filter:(0,c.lq)((0,c.bz)()),theme:(0,c.lq)((0,c.Yj)()),dark_mode_image:(0,c.lq)((0,c.KC)([(0,c.Yj)(),(0,c.Ik)()])),dark_mode_filter:(0,c.lq)((0,c.bz)())}));class y extends s.WF{setConfig(e){(0,c.vA)(e,E),this._config=e}_handlePositionClick(e,t){if(!this._subElementEditorConfig?.elementConfig||"element"!==this._subElementEditorConfig.type||"conditional"===this._subElementEditorConfig.elementConfig.type)return;const i=this._subElementEditorConfig.elementConfig,n=i.style?.position;if(n&&"absolute"!==n)return;const o={...i,style:{...i.style||{},left:`${Math.round(e)}%`,top:`${Math.round(t)}%`}},a=new CustomEvent("config-changed",{detail:{config:o}});this._handleSubElementChanged(a)}render(){return this.hass&&this._config?this._subElementEditorConfig?s.qy` ${"element"===this._subElementEditorConfig.type&&"conditional"!==this._subElementEditorConfig.elementConfig?.type?s.qy` <ha-alert alert-type="info"> ${this.hass.localize("ui.panel.lovelace.editor.card.picture-elements.position_hint")} </ha-alert> `:s.s6} <hui-sub-element-editor .hass="${this.hass}" .config="${this._subElementEditorConfig}" -back="${this._goBack}" -changed="${this._handleSubElementChanged}"> </hui-sub-element-editor> `:s.qy` <ha-form .hass="${this.hass}" .data="${this._processData(this._config)}" .schema="${this._schema(this.hass.localize)}" .computeLabel="${this._computeLabelCallback}" -changed="${this._formChanged}"></ha-form> <hui-picture-elements-card-row-editor .hass="${this.hass}" .elements="${this._config.elements}" -changed="${this._elementsChanged}" -detail-element="${this._editDetailElement}"></hui-picture-elements-card-row-editor> `:s.s6}_formChanged(e){e.stopPropagation(),this._config&&this.hass&&(0,r.r)(this,"config-changed",{config:e.detail.value})}_elementsChanged(e){e.stopPropagation();const t=this._config?.elements?.length||0,i={...this._config,elements:e.detail.elements,[_.c]:this._onPreviewClick};(0,r.r)(this,"config-changed",{config:i});const n=e.detail.elements?.length||0;if(n===t+1){const t=n-1;this._subElementEditorConfig={index:t,type:"element",elementConfig:{...e.detail.elements[t]}}}}_handleSubElementChanged(e){if(e.stopPropagation(),!this._config||!this.hass)return;const t=this._subElementEditorConfig?.type,i=e.detail.config;if("element"===t){const e=this._config.elements.concat();i?e[this._subElementEditorConfig.index]=i:(e.splice(this._subElementEditorConfig.index,1),this._goBack()),this._config={...this._config,elements:e}}this._subElementEditorConfig={...this._subElementEditorConfig,elementConfig:i},(0,r.r)(this,"config-changed",{config:{...this._config,[_.c]:this._onPreviewClick}})}_editDetailElement(e){this._subElementEditorConfig=e.detail.subElementConfig}_goBack(){this._subElementEditorConfig=void 0}static get styles(){return[u.U]}constructor(...e){super(...e),this._onPreviewClick=(e,t)=>{"element"===this._subElementEditorConfig?.type&&this._handlePositionClick(e,t)},this._schema=(0,a.A)(e=>[{name:"",type:"expandable",title:e("ui.panel.lovelace.editor.card.picture-elements.card_options"),schema:[{name:"title",selector:{text:{}}},{name:"image",selector:{media:{accept:["image/*"],clearable:!0,image_upload:!0,hide_content_type:!0,content_id_helper:e("ui.panel.lovelace.editor.card.picture.content_id_helper")}}},{name:"dark_mode_image",selector:{media:{accept:["image/*"],clearable:!0,image_upload:!0,hide_content_type:!0,content_id_helper:e("ui.panel.lovelace.editor.card.picture.content_id_helper")}}},{name:"camera_image",selector:{entity:{domain:"camera"}}},{name:"camera_view",selector:{select:{options:["auto","live"].map(t=>({value:t,label:e(`ui.panel.lovelace.editor.card.generic.camera_view_options.${t}`)})),mode:"dropdown"}}},{name:"theme",selector:{theme:{}}},{name:"state_filter",selector:{object:{}}},{name:"dark_mode_filter",selector:{object:{}}}]}]),this._processData=(0,a.A)(e=>({...e,..."string"==typeof e.image?{image:{media_content_id:e.image}}:{},..."string"==typeof e.dark_mode_image?{dark_mode_image:{media_content_id:e.dark_mode_image}}:{}})),this._computeLabelCallback=e=>{switch(e.name){case"dark_mode_image":case"state_filter":case"dark_mode_filter":return this.hass.localize(`ui.panel.lovelace.editor.card.picture-elements.${e.name}`)||e.name;default:return this.hass.localize(`ui.panel.lovelace.editor.card.generic.${e.name}`)||e.name}}}}(0,o.Cg)([(0,l.MZ)({attribute:!1})],y.prototype,"hass",void 0),(0,o.Cg)([(0,l.wk)()],y.prototype,"_config",void 0),(0,o.Cg)([(0,l.wk)()],y.prototype,"_subElementEditorConfig",void 0),y=(0,o.Cg)([(0,l.EM)("hui-picture-elements-card-editor")],y),n()}catch(e){n(e)}})},84698(e,t,i){i.d(t,{H:()=>o});var n=i(63533);const o=(0,n.Ik)({type:(0,n.Yj)(),view_layout:(0,n.bz)(),layout_options:(0,n.bz)(),grid_options:(0,n.bz)(),visibility:(0,n.bz)(),disabled:(0,n.lq)((0,n.zM)())})}};