platypush/platypush/backend/http/webapp/dist/static/js/3053.c3f120c4.js

2 lines
31 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(self["webpackChunkplatypush"]=self["webpackChunkplatypush"]||[]).push([[3053],{3053:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return h}});var i=n(6252),s=n(3577),l=n(9963);const a={key:0,class:"children fade-in"};function o(e,t,n,o,r,u){const c=(0,i.up)("Entity",!0);return(0,i.wg)(),(0,i.iD)("div",{class:(0,s.C_)(["entity-container-wrapper",{"with-children":u.hasChildren,collapsed:u.isCollapsed,hidden:!e.value?.name?.length}])},[(0,i._)("div",{class:(0,s.C_)(["row item entity-container",{"with-children":u.hasChildren,collapsed:u.isCollapsed,blink:r.justUpdated}])},[(0,i._)("div",{class:(0,s.C_)(["adjuster",{"col-12":!u.hasChildren,"col-11":u.hasChildren}])},[((0,i.wg)(),(0,i.j4)((0,i.LL)(r.component),{value:e.value,loading:e.loading,ref:"instance",error:e.error||0==e.value?.reachable,onClick:u.onClick,onInput:t[0]||(t[0]=t=>e.$emit("input",t)),onLoading:t[1]||(t[1]=t=>e.$emit("loading",t))},null,8,["value","loading","error","onClick"]))],2),u.hasChildren?((0,i.wg)(),(0,i.iD)("div",{key:0,class:"col-1 collapse-toggler",onClick:t[2]||(t[2]=(0,l.iM)(((...e)=>u.toggleCollapsed&&u.toggleCollapsed(...e)),["stop"]))},[(0,i._)("i",{class:(0,s.C_)(["fas",{"fa-chevron-down":u.isCollapsed,"fa-chevron-up":!u.isCollapsed}])},null,2)])):(0,i.kq)("",!0)],2),u.isCollapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("div",a,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(u.computedChildren,(t=>((0,i.wg)(),(0,i.iD)("div",{class:"child",key:t.id},[(0,i.Wm)(c,{value:t,loading:e.loading,level:e.level+1,onInput:n=>e.$emit("input",t)},null,8,["value","loading","level","onInput"])])))),128))]))],2)}var r=n(2262),u=n(7909),c=n(5250),d={name:"Entity",mixins:[u["default"]],emits:["input","loading","update"],data(){return{component:null,justUpdated:!1}},computed:{computedChildren(){return Object.values(this.children||{}).filter((e=>e))},hasChildren(){return!!this.computedChildren.length},isCollapsed(){return!this.hasChildren||this.collapsed},instance(){return this.$refs.instance}},methods:{valuesEqual(e,t){e={...e},t={...t};for(const n of["updated_at","data"])delete e[n],delete t[n];return this.objectsEqual(e,t)},onClick(e){(e.target.classList.contains("label")||e.target.classList.contains("head"))&&(e.stopPropagation(),this.toggleCollapsed())},onEntityUpdate(e){const t=e?.id,n=null!=t&&this.children&&t in this.children;n&&this.setJustUpdated()},toggleCollapsed(){this.collapsed=!this.collapsed,this.instance&&(this.instance.collapsed=!this.instance.collapsed)},setJustUpdated(){this.justUpdated=!0;const e=this;setTimeout((()=>e.justUpdated=!1),1e3)}},mounted(){if("Entity"!==this.type){const e=this.type.split("_").map((e=>e[0].toUpperCase()+e.slice(1))).join("");this.$watch((()=>this.value),((e,t)=>{if(this.valuesEqual(t,e))return!1;this.setJustUpdated(),this.$emit("update",{value:e})})),this.component=(0,r.XI)((0,i.RC)((()=>n(7243)(`./${e}`))))}c.$.onEntity(this.onEntityUpdate)}},p=n(3744);const m=(0,p.Z)(d,[["render",o],["__scopeId","data-v-70080e98"]]);var h=m},7909:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return a}});var i=n(6813),s={name:"EntityMixin",mixins:[i.Z],emits:["input"],props:{loading:{type:Boolean,default:!1},error:{type:Boolean,default:!1},value:{type:Object,required:!0},children:{type:Object,default:()=>{}},level:{type:Number,default:0}},data(){return{modalVisible:!1,collapsed:!0}},computed:{type(){let e=this.value.type||"";return e.split("_").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join("")}}};const l=s;var a=l},9688:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return P}});var i=n(6252),s=n(3577);const l=e=>((0,i.dD)("data-v-51aa9db3"),e=e(),(0,i.Cn)(),e),a={class:"row plugin entities-container"},o={class:"col-11 left"},r={class:"col-1 right"},u=l((()=>(0,i._)("i",{class:"fa fa-sync-alt"},null,-1))),c=[u],d={class:"groups-canvas"},p=(0,i.Uk)("No entities found"),m={key:2,class:"groups-container"},h={class:"frame"},y={class:"header"},g={class:"section left"},f={class:"section center"},v=["textContent"],_={class:"section right"},w=["onClick"],b=l((()=>(0,i._)("i",{class:"fa fa-sync-alt"},null,-1))),C=[b],k={class:"body"},E=["onClick"];function S(e,t,n,l,u,b){const S=(0,i.up)("Loading"),I=(0,i.up)("Selector"),D=(0,i.up)("EntityModal"),x=(0,i.up)("NoItems"),j=(0,i.up)("Icon"),G=(0,i.up)("Entity");return(0,i.wg)(),(0,i.iD)("div",a,[u.loading?((0,i.wg)(),(0,i.j4)(S,{key:0})):(0,i.kq)("",!0),(0,i._)("header",null,[(0,i._)("div",o,[(0,i.Wm)(I,{"entity-groups":b.entityGroups,value:u.selector,onInput:t[0]||(t[0]=e=>u.selector=e)},null,8,["entity-groups","value"])]),(0,i._)("div",r,[(0,i._)("button",{title:"Refresh",onClick:t[1]||(t[1]=(...e)=>b.refresh&&b.refresh(...e))},c)])]),(0,i._)("div",d,[u.modalEntityId&&u.entities[u.modalEntityId]?((0,i.wg)(),(0,i.j4)(D,{key:0,entity:u.entities[u.modalEntityId],visible:u.modalVisible,"config-values":b.configValuesByParentId(u.modalEntityId),onClose:b.onEntityModal},null,8,["entity","visible","config-values","onClose"])):(0,i.kq)("",!0),Object.keys(b.displayGroups||{})?.length?((0,i.wg)(),(0,i.iD)("div",m,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(b.displayGroups,(e=>((0,i.wg)(),(0,i.iD)("div",{class:"group fade-in",key:e.name},[(0,i._)("div",h,[(0,i._)("div",y,[(0,i._)("span",g,["category"===u.selector.grouping&&b.entitiesMeta[b.typesByCategory[e.name]]?((0,i.wg)(),(0,i.j4)(j,(0,s.vs)((0,i.dG)({key:0},b.entitiesMeta[b.typesByCategory[e.name]].icon||{})),null,16)):"plugin"===u.selector.grouping&&b.pluginIcons[e.name]?((0,i.wg)(),(0,i.j4)(j,{key:1,class:(0,s.C_)(b.pluginIcons[e.name]?.class),url:b.pluginIcons[e.name]?.imgUrl},null,8,["class","url"])):(0,i.kq)("",!0)]),(0,i._)("span",f,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(e.name)},null,8,v)]),(0,i._)("span",_,[(0,i._)("button",{title:"Refresh",onClick:t=>b.refresh(e)},C,8,w)])]),(0,i._)("div",k,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(e.entities,(e=>((0,i.wg)(),(0,i.iD)("div",{class:"entity-frame",onClick:t=>b.onEntityModal(e.id),key:e.id},[e.parent_id?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(G,{key:0,value:e,children:b.childrenByParentId(e.id),onInput:t=>b.onEntityInput(e),error:!!u.errorEntities[e.id],loading:!!u.loadingEntities[e.id],onLoading:t=>u.loadingEntities[e.id]=t},null,8,["value","children","onInput","error","loading","onLoading"]))],8,E)))),128))])])])))),128))])):((0,i.wg)(),(0,i.j4)(x,{key:1},{default:(0,i.w5)((()=>[p])),_:1}))])])}var I=n(6813),D=n(1232),x=n(1478);const j={class:"no-items-container"},G={class:"no-items fade-in"};function T(e,t,n,s,l,a){return(0,i.wg)(),(0,i.iD)("div",j,[(0,i._)("div",G,[(0,i.WI)(e.$slots,"default",{},void 0,!0)])])}var q={name:"NoItems"},O=n(3744);const U=(0,O.Z)(q,[["render",T],["__scopeId","data-v-6fec32b5"]]);var M=U,$=n(3053),B=n(6518),L=n(8472),N=n(5250),Z=n(1359),V=n(7369),z={name:"Entities",components:{Loading:D.Z,Icon:x.Z,Entity:$["default"],Selector:B["default"],NoItems:M,EntityModal:L["default"]},mixins:[I.Z],props:{entityScanTimeout:{type:Number,default:30}},data(){return{loading:!1,loadingEntities:{},errorEntities:{},entityTimeouts:{},entities:{},modalEntityId:null,modalVisible:!1,selector:{grouping:"category",selectedEntities:{}}}},computed:{entitiesMeta(){return V},pluginIcons(){return Z},entityTypes(){return this.groupEntities("type")},typesByCategory(){return Object.entries(V).reduce(((e,[t,n])=>(e[n.name_plural]=t,e)),{})},entityGroups(){return{id:Object.entries(this.groupEntities("id")).reduce(((e,[t,n])=>(e[t]=n[0],e)),{}),category:this.groupEntities("category"),plugin:this.groupEntities("plugin")}},displayGroups(){return Object.entries(this.entityGroups[this.selector.grouping]).filter((e=>e[1].filter((e=>!!this.selector.selectedEntities[e.id]&&null==e.parent_id)).length>0)).map((([e,t])=>({name:e,entities:t.filter((e=>e.id in this.selector.selectedEntities))}))).sort(((e,t)=>e.name.localeCompare(t.name)))}},methods:{groupEntities(e){return Object.values(this.entities).filter((e=>null==e.parent_id)).reduce(((t,n)=>{const i=t[n[e]]||{};return i[n.id]=n,t[n[e]]=Object.values(i).sort(((e,t)=>e.name.localeCompare(t.name))),t}),{})},_shouldSkipLoading(e){const t=Object.values(this.childrenByParentId(e.id)),n=t.filter((e=>!e.is_configuration&&!e.is_write_only&&!e.is_query_disabled)).length>0;return e.is_query_disabled||e.is_write_only||t.length&&!n},async refresh(e){const t=(e?e.entities:this.entities)||{},n={};e&&(n.plugins=Object.keys(t.reduce(((e,t)=>(e[t.plugin]=!0,e)),{}))),this.loadingEntities=Object.values(t).reduce(((e,t)=>{if(this._shouldSkipLoading(t))return e;const n=this,i=t.id;return this.entityTimeouts[i]&&clearTimeout(this.entityTimeouts[i]),this.entityTimeouts[i]=setTimeout((()=>{n.loadingEntities[i]&&delete n.loadingEntities[i],n.entityTimeouts[i]&&delete n.entityTimeouts[i],n.errorEntities[i]=t,console.warn(`Scan timeout for ${t.name}`)}),1e3*this.entityScanTimeout),e[i]=!0,e}),{}),await this.request("entities.scan",n)},async sync(){this.loading=!0;try{this.entities=(await this.request("entities.get")).reduce(((e,t)=>(t.name=t?.meta?.name_override||t.name,t.category=V[t.type].name_plural,t.meta={...V[t.type]||{},...t.meta||{}},e[t.id]=t,e)),{}),this.selector.selectedEntities=this.entityGroups.id}finally{this.loading=!1}},childrenByParentId(e){return Object.values(this.entities).filter((t=>t&&t.parent_id===e&&!t.is_configuration)).reduce(((e,t)=>(e[t.id]=t,e)),{})},configValuesByParentId(e){return Object.values(this.entities).filter((t=>t&&t.parent_id===e&&t.is_configuration)).reduce(((e,t)=>(e[t.id]=t,e)),{})},clearEntityTimeouts(e){this.errorEntities[e]&&delete this.errorEntities[e],this.loadingEntities[e]&&delete this.loadingEntities[e],this.entityTimeouts[e]&&(clearTimeout(this.entityTimeouts[e]),delete this.entityTimeouts[e])},onEntityInput(e){e.category=V[e.type].name_plural,this.entities[e.id]=e,this.clearEntityTimeouts(e.id),this.loadingEntities[e.id]&&delete this.loadingEntities[e.id]},onEntityUpdate(e){const t=e.entity.id;if(null==t)return;this.clearEntityTimeouts(t);const n={...e.entity};null==e.entity?.state&&(n.state=this.entities[t]?.state),n.meta?.name_override?.length?n.name=n.meta.name_override:this.entities[t]?.meta?.name_override?.length?n.name=this.entities[t].meta.name_override:n.name=e.entity?.name||this.entities[t]?.name,n.category=V[n.type].name_plural,n.meta={...V[e.entity.type]||{},...this.entities[t]?.meta||{},...e.entity?.meta||{}},this.entities[t]=n,N.$.publishEntity(n)},onEntityDelete(e){const t=e.entity?.id;null!=t&&(t===this.modalEntityId&&(this.modalEntityId=null),this.entities[t]&&delete this.entities[t])},onEntityModal(e){e?(this.modalEntityId=e,this.modalVisible=!0):(this.modalEntityId=null,this.modalVisible=!1)}},async mounted(){this.subscribe(this.onEntityUpdate,"on-entity-update","platypush.message.event.entities.EntityUpdateEvent"),this.subscribe(this.onEntityDelete,"on-entity-delete","platypush.message.event.entities.EntityDeleteEvent"),await this.sync(),await this.refresh()},unmounted(){this.unsubscribe("on-entity-update")}};const F=(0,O.Z)(z,[["render",S],["__scopeId","data-v-51aa9db3"]]);var P=F},8472:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Qe}});var i=n(6252),s=n(3577);const l=e=>((0,i.dD)("data-v-48d9692c"),e=e(),(0,i.Cn)(),e),a=(0,i.Uk)(" Are you "),o=l((()=>(0,i._)("b",null,"sure",-1))),r=(0,i.Uk)(" that you want to delete this entity? "),u=l((()=>(0,i._)("br",null,null,-1))),c=l((()=>(0,i._)("br",null,null,-1))),d=(0,i.Uk)(" Note: you should only delete an entity if its plugin has been disabled or the entity is no longer reachable."),p=l((()=>(0,i._)("br",null,null,-1))),m=l((()=>(0,i._)("br",null,null,-1))),h=(0,i.Uk)(" Otherwise, the entity will simply be created again upon the next scan. "),y={class:"table-row"},g={class:"title"},f=(0,i.Uk)(" Name "),v={class:"value"},_=["textContent"],w={class:"table-row"},b={class:"title"},C=(0,i.Uk)(" Icon "),k={class:"value icon-canvas"},E={key:0,class:"icon-editor"},S=l((()=>(0,i._)("i",{class:"fas fa-rotate-left"},null,-1))),I=[S],D=l((()=>(0,i._)("span",{class:"help"},[(0,i.Uk)(" Supported: image URLs or "),(0,i._)("a",{href:"https://fontawesome.com/icons",target:"_blank"},"FontAwesome icon classes"),(0,i.Uk)(". ")],-1))),x={class:"table-row"},j=l((()=>(0,i._)("div",{class:"title"}," Icon color ",-1))),G={class:"value icon-color-picker"},T=["value"],q=l((()=>(0,i._)("i",{class:"fas fa-rotate-left"},null,-1))),O=[q],U={class:"table-row"},M=l((()=>(0,i._)("div",{class:"title"},"Plugin",-1))),$=["textContent"],B={class:"table-row"},L=l((()=>(0,i._)("div",{class:"title"},"Internal ID",-1))),N=["textContent"],Z={key:0,class:"table-row"},V=l((()=>(0,i._)("div",{class:"title"},"External ID",-1))),z=["textContent"],F={key:1,class:"table-row"},P=l((()=>(0,i._)("div",{class:"title"},"Description",-1))),R=["textContent"],W={key:2,class:"table-row"},H=l((()=>(0,i._)("div",{class:"title"},"External URL",-1))),K={class:"value url"},Y=["href","text"],A={key:3,class:"table-row"},J=l((()=>(0,i._)("div",{class:"title"},"Image",-1))),Q={class:"value"},X=["src"],ee={key:0,class:"table-row"},te=["textContent"],ne=["textContent"],ie={key:4,class:"table-row"},se=l((()=>(0,i._)("div",{class:"title"},"Created at",-1))),le=["textContent"],ae={key:5,class:"table-row"},oe=l((()=>(0,i._)("div",{class:"title"},"Updated at",-1))),re=["textContent"],ue={class:"table-row delete-entity-container"},ce=l((()=>(0,i._)("div",{class:"title"},"Delete Entity",-1))),de={class:"value"},pe=l((()=>(0,i._)("i",{class:"fas fa-trash"},null,-1))),me=[pe],he={key:6,class:"config-container"},ye=l((()=>(0,i._)("div",{class:"col-11"},[(0,i._)("i",{class:"fas fa-screwdriver-wrench"}),(0,i.Uk)("   Configuration ")],-1))),ge={class:"col-1 pull-right"},fe={key:0,class:"entities"};function ve(e,t,n,l,S,q){const pe=(0,i.up)("ConfirmDialog"),ve=(0,i.up)("EditButton"),_e=(0,i.up)("NameEditor"),we=(0,i.up)("Icon"),be=(0,i.up)("Entity"),Ce=(0,i.up)("Modal",!0);return n.entity?((0,i.wg)(),(0,i.j4)(Ce,{key:0,visible:n.visible,class:"entity-modal",title:n.entity.name||n.entity.external_id},{default:(0,i.w5)((()=>[(0,i.Wm)(pe,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:q.onDelete},{default:(0,i.w5)((()=>[a,o,r,u,c,d,p,m,h])),_:1},8,["onInput"]),(0,i._)("div",y,[(0,i._)("div",g,[f,S.editName?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(ve,{key:0,onClick:t[0]||(t[0]=e=>S.editName=!0)}))]),(0,i._)("div",v,[S.editName?((0,i.wg)(),(0,i.j4)(_e,{key:0,value:n.entity.name,onInput:q.onRename,onCancel:t[1]||(t[1]=e=>S.editName=!1),disabled:S.loading},null,8,["value","onInput","disabled"])):((0,i.wg)(),(0,i.iD)("span",{key:1,textContent:(0,s.zw)(n.entity.name)},null,8,_))])]),(0,i._)("div",w,[(0,i._)("div",b,[C,S.editIcon?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(ve,{key:0,onClick:t[2]||(t[2]=e=>S.editIcon=!0)}))]),(0,i._)("div",k,[S.editIcon?((0,i.wg)(),(0,i.iD)("span",E,[(0,i.Wm)(_e,{value:n.entity.meta?.icon?.class||n.entity.meta?.icon?.url,onInput:q.onIconEdit,onCancel:t[5]||(t[5]=e=>S.editIcon=!1),disabled:S.loading},{default:(0,i.w5)((()=>[(0,i._)("button",{type:"button",title:"Reset",onClick:t[3]||(t[3]=e=>q.onIconEdit(null)),onTouch:t[4]||(t[4]=e=>q.onIconEdit(null))},I,32)])),_:1},8,["value","onInput","disabled"]),D])):((0,i.wg)(),(0,i.j4)(we,(0,s.vs)((0,i.dG)({key:1},n.entity?.meta?.icon||{})),null,16))])]),(0,i._)("div",x,[j,(0,i._)("div",G,[(0,i._)("input",{type:"color",value:n.entity.meta?.icon?.color,onChange:t[6]||(t[6]=(...e)=>q.onIconColorEdit&&q.onIconColorEdit(...e))},null,40,T),(0,i._)("button",{type:"button",title:"Reset",onClick:t[7]||(t[7]=e=>q.onIconColorEdit(null)),onTouch:t[8]||(t[8]=e=>q.onIconColorEdit(null))},O,32)])]),(0,i._)("div",U,[M,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.plugin)},null,8,$)]),(0,i._)("div",B,[L,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.id)},null,8,N)]),n.entity.external_id?((0,i.wg)(),(0,i.iD)("div",Z,[V,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.external_id)},null,8,z)])):(0,i.kq)("",!0),n.entity.description?((0,i.wg)(),(0,i.iD)("div",F,[P,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.description)},null,8,R)])):(0,i.kq)("",!0),n.entity.external_url?((0,i.wg)(),(0,i.iD)("div",W,[H,(0,i._)("div",K,[(0,i._)("a",{href:n.entity.external_url,target:"_blank",text:n.entity.external_url},null,8,Y)])])):(0,i.kq)("",!0),n.entity.image_url?((0,i.wg)(),(0,i.iD)("div",A,[J,(0,i._)("div",Q,[(0,i._)("img",{class:"entity-image",src:n.entity.image_url},null,8,X)])])):(0,i.kq)("",!0),((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(n.entity.data||{},((t,n)=>((0,i.wg)(),(0,i.iD)("div",{key:n},[null!=t?((0,i.wg)(),(0,i.iD)("div",ee,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(e.prettify(n))},null,8,te),(0,i._)("div",{class:"value",textContent:(0,s.zw)(""+t)},null,8,ne)])):(0,i.kq)("",!0)])))),128)),n.entity.created_at?((0,i.wg)(),(0,i.iD)("div",ie,[se,(0,i._)("div",{class:"value",textContent:(0,s.zw)(e.formatDateTime(n.entity.created_at))},null,8,le)])):(0,i.kq)("",!0),n.entity.updated_at?((0,i.wg)(),(0,i.iD)("div",ae,[oe,(0,i._)("div",{class:"value",textContent:(0,s.zw)(e.formatDateTime(n.entity.updated_at))},null,8,re)])):(0,i.kq)("",!0),(0,i._)("div",ue,[ce,(0,i._)("div",de,[(0,i._)("button",{onClick:t[9]||(t[9]=t=>e.$refs.deleteConfirmDiag.show())},me)])]),q.computedConfig.length?((0,i.wg)(),(0,i.iD)("div",he,[(0,i._)("div",{class:"title",onClick:t[10]||(t[10]=e=>S.configCollapsed=!S.configCollapsed)},[ye,(0,i._)("div",ge,[(0,i._)("i",{class:(0,s.C_)(["fas",{"fa-chevron-down":S.configCollapsed,"fa-chevron-up":!S.configCollapsed}])},null,2)])]),S.configCollapsed?(0,i.kq)("",!0):((0,i.wg)(),(0,i.iD)("div",fe,[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(q.computedConfig,(t=>((0,i.wg)(),(0,i.j4)(be,{key:t.id,value:t,onInput:n=>e.$emit("input",t)},null,8,["value","onInput"])))),128))]))])):(0,i.kq)("",!0)])),_:1},8,["visible","title"])):(0,i.kq)("",!0)}var _e=n(8453),we=n(1478),be=n(9963);const Ce=e=>((0,i.dD)("data-v-d543b3e4"),e=e(),(0,i.Cn)(),e),ke={class:"dialog-content"},Ee=Ce((()=>(0,i._)("i",{class:"fas fa-check"},null,-1))),Se=Ce((()=>(0,i._)("i",{class:"fas fa-xmark"},null,-1)));function Ie(e,t,n,l,a,o){const r=(0,i.up)("Modal");return(0,i.wg)(),(0,i.j4)(r,{ref:"modal",title:n.title},{default:(0,i.w5)((()=>[(0,i._)("div",ke,[(0,i.WI)(e.$slots,"default",{},void 0,!0)]),(0,i._)("form",{class:"buttons",onSubmit:t[4]||(t[4]=(0,be.iM)(((...e)=>o.onConfirm&&o.onConfirm(...e)),["prevent"]))},[(0,i._)("button",{type:"submit",class:"ok-btn",onClick:t[0]||(t[0]=(...e)=>o.onConfirm&&o.onConfirm(...e)),onTouch:t[1]||(t[1]=(...e)=>o.onConfirm&&o.onConfirm(...e))},[Ee,(0,i.Uk)("   "+(0,s.zw)(n.confirmText),1)],32),(0,i._)("button",{type:"button",class:"cancel-btn",onClick:t[2]||(t[2]=(...e)=>o.close&&o.close(...e)),onTouch:t[3]||(t[3]=(...e)=>o.close&&o.close(...e))},[Se,(0,i.Uk)("   "+(0,s.zw)(n.cancelText),1)],32)],32)])),_:3},8,["title"])}var De={emits:["input","click","touch"],components:{Modal:_e.Z},props:{title:{type:String},confirmText:{type:String,default:"OK"},cancelText:{type:String,default:"Cancel"}},methods:{onConfirm(){this.$emit("input"),this.close()},show(){this.$refs.modal.show()},close(){this.$refs.modal.hide()}}},xe=n(3744);const je=(0,xe.Z)(De,[["render",Ie],["__scopeId","data-v-d543b3e4"]]);var Ge=je;const Te=e=>((0,i.dD)("data-v-3344f2bf"),e=e(),(0,i.Cn)(),e),qe=Te((()=>(0,i._)("i",{class:"fas fa-pen-to-square"},null,-1))),Oe=[qe];function Ue(e,t,n,s,l,a){return(0,i.wg)(),(0,i.iD)("button",{class:"edit-btn",onClick:t[0]||(t[0]=e=>a.proxy(e)),onTouch:t[1]||(t[1]=e=>a.proxy(e)),onInput:t[2]||(t[2]=e=>a.proxy(e))},Oe,32)}var Me={emits:["input","click","touch"],methods:{proxy(e){this.$emit(e.type,e)}}};const $e=(0,xe.Z)(Me,[["render",Ue],["__scopeId","data-v-3344f2bf"]]);var Be=$e;const Le=e=>((0,i.dD)("data-v-1405d90f"),e=e(),(0,i.Cn)(),e),Ne=["disabled"],Ze=Le((()=>(0,i._)("button",{type:"submit"},[(0,i._)("i",{class:"fas fa-circle-check"})],-1))),Ve=Le((()=>(0,i._)("i",{class:"fas fa-ban"},null,-1))),ze=[Ve];function Fe(e,t,n,s,l,a){return(0,i.wg)(),(0,i.iD)("form",{onSubmit:t[3]||(t[3]=(0,be.iM)(((...e)=>a.submit&&a.submit(...e)),["prevent"])),class:"name-editor"},[(0,i.wy)((0,i._)("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>l.text=e),disabled:n.disabled},null,8,Ne),[[be.nr,l.text]]),Ze,(0,i._)("button",{class:"cancel",onClick:t[1]||(t[1]=t=>e.$emit("cancel")),onTouch:t[2]||(t[2]=t=>e.$emit("cancel"))},ze,32),(0,i.WI)(e.$slots,"default",{},void 0,!0)],32)}var Pe={emits:["input","cancel"],props:{value:{type:String},disabled:{type:Boolean,deafult:!1}},data(){return{text:null}},methods:{proxy(e){this.$emit(e.type,e)},submit(){return this.$emit("input",this.text),!1}},mounted(){this.text=this.value}};const Re=(0,xe.Z)(Pe,[["render",Fe],["__scopeId","data-v-1405d90f"]]);var We=Re,He=n(6813),Ke=n(3053),Ye=n(7369),Ae={name:"EntityModal",components:{Entity:Ke["default"],Modal:_e.Z,EditButton:Be,NameEditor:We,Icon:we.Z,ConfirmDialog:Ge},mixins:[He.Z],emits:["input","loading"],props:{entity:{type:Object,required:!0},visible:{type:Boolean,default:!1},configValues:{type:Object,default:()=>{}}},computed:{computedConfig(){return Object.values(this.configValues).sort(((e,t)=>(e.name||"").localeCompare(t.name||"")))}},data(){return{loading:!1,editName:!1,editIcon:!1,configCollapsed:!0}},methods:{async onRename(e){this.loading=!0;try{const t={};t[this.entity.id]=e,await this.request("entities.rename",t)}finally{this.loading=!1,this.editName=!1}},async onDelete(){this.loading=!0;try{await this.request("entities.delete",[this.entity.id])}finally{this.loading=!1}},async onIconEdit(e){this.loading=!0;try{const t={url:null,class:null};e?.length?e.startsWith("http")?t.url=e:t.class=e:(t.url=(Ye[this.entity.type]||{})?.icon?.url,t.class=(Ye[this.entity.type]||{})?.icon?.["class"]);const n={};n[this.entity.id]={icon:t},await this.request("entities.set_meta",n)}finally{this.loading=!1,this.editIcon=!1}},async onIconColorEdit(e){this.loading=!0;try{const t=this.entity.meta?.icon||{};t.color=e?e.target.value:null;const n={};n[this.entity.id]={icon:t},await this.request("entities.set_meta",n)}finally{this.loading=!1,this.editIcon=!1}}}};const Je=(0,xe.Z)(Ae,[["render",ve],["__scopeId","data-v-48d9692c"]]);var Qe=Je},6518:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return v}});var i=n(6252),s=n(3577),l=n(9963);const a={class:"entities-selectors-container"},o={class:"selector"},r={key:1,class:"selector"};function u(e,t,n,u,c,d){const p=(0,i.up)("DropdownItem"),m=(0,i.up)("Dropdown");return(0,i.wg)(),(0,i.iD)("div",a,[(0,i._)("div",o,[(0,i.Wm)(m,{title:"Group by","icon-class":"fas fa-object-ungroup",ref:"groupingSelector"},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.visibleGroupings,(e=>((0,i.wg)(),(0,i.j4)(p,{key:e,text:d.prettifyGroupingName(e),"item-class":{selected:n.value?.grouping===e},onClick:t=>d.onGroupingChanged(e)},null,8,["text","item-class","onClick"])))),128))])),_:1},512)]),n.value?.grouping?((0,i.wg)(),(0,i.iD)("div",{key:0,class:(0,s.C_)(["selector",{active:d.isGroupFilterActive}])},[(0,i.Wm)(m,{title:"Filter by","icon-class":"fas fa-filter",ref:"groupSelector","keep-open-on-item-click":""},{default:(0,i.w5)((()=>[((0,i.wg)(!0),(0,i.iD)(i.HY,null,(0,i.Ko)(d.sortedGroups,(e=>((0,i.wg)(),(0,i.j4)(p,(0,i.dG)({key:e,text:e},d.iconForGroup(e),{"item-class":{selected:!!c.selectedGroups[e]},onClick:(0,l.iM)((t=>d.toggleGroup(e)),["stop"])}),null,16,["text","item-class","onClick"])))),128))])),_:1},512)],2)):(0,i.kq)("",!0),Object.keys(n.entityGroups.id||{}).length?((0,i.wg)(),(0,i.iD)("div",r,[(0,i.wy)((0,i._)("input",{ref:"search",type:"text",class:"search-bar",placeholder:"🔎","onUpdate:modelValue":t[0]||(t[0]=e=>c.searchTerm=e)},null,512),[[l.nr,c.searchTerm]])])):(0,i.kq)("",!0)])}var c=n(6813),d=n(5771),p=n(2684),m=n(7369),h=n(1359),y={name:"Selector",emits:["input"],mixins:[c.Z],components:{Dropdown:d.Z,DropdownItem:p.Z},props:{entityGroups:{type:Object,required:!0},value:{type:Object,required:!0}},data(){return{selectedGroups:{},searchTerm:""}},computed:{visibleGroupings(){return Object.keys(this.entityGroups).filter((e=>"id"!==e))},sortedGroups(){return Object.keys(this.entityGroups[this.value?.grouping]||{}).sort()},typesMeta(){return m},isGroupFilterActive(){return Object.keys(this.selectedGroups).length!==this.sortedGroups.length},selectedEntities(){return Object.values(this.entityGroups.id).filter((e=>{if(!this.selectedGroups[e[this.value?.grouping]])return!1;if(this.searchTerm?.length){const t=this.searchTerm.toLowerCase();return(e.name||"").toLowerCase().indexOf(t)>=0||(e.plugin||"").toLowerCase().indexOf(t)>=0||(e.external_id||"").toLowerCase().indexOf(t)>=0||(e.id||0).toString()==t}return!0})).reduce(((e,t)=>(e[t.id]=t,e)),{})}},methods:{prettifyGroupingName(e){return e?(e=this.prettify(e),e.endsWith("y")&&(e=e.slice(0,e.length-1)+"ie"),e+="s",e):""},iconForGroup(e){if("plugin"===this.value.grouping&&h[e]){const t=h[e];return{"icon-class":t["class"]?.length||!t.imgUrl?.length?t["class"]:"fas fa-gears","icon-url":t.imgUrl}}return{}},synchronizeSelectedEntities(){const e={...this.value};e.selectedEntities=this.selectedEntities,this.$emit("input",e)},updateSearchTerm(){const e={...this.value};e.searchTerm=this.searchTerm,e.selectedEntities=this.selectedEntities,this.$emit("input",e)},refreshGroupFilter(e){if(e)this.selectedGroups=Object.keys(this.entityGroups[this.value?.grouping]||{}).reduce(((e,t)=>(e[t]=!0,e)),{});else for(const t of Object.keys(this.entityGroups[this.value?.grouping]))null==this.selectedGroups[t]&&(this.selectedGroups[t]=!0);this.synchronizeSelectedEntities()},toggleGroup(e){this.selectedGroups[e]=!this.selectedGroups[e],this.synchronizeSelectedEntities()},onGroupingChanged(e){if(!this.entityGroups[e]||e===this.value?.grouping)return!1;const t={...this.value};t.grouping=e,this.$emit("input",t)}},mounted(){this.refreshGroupFilter(!0),this.$watch((()=>this.value?.grouping),(()=>{this.refreshGroupFilter(!0)})),this.$watch((()=>this.searchTerm),this.updateSearchTerm),this.$watch((()=>this.entityGroups),(()=>{this.refreshGroupFilter(!1)}))}},g=n(3744);const f=(0,g.Z)(y,[["render",u],["__scopeId","data-v-7babaacc"]]);var v=f},7243:function(e,t,n){var i={"./Battery":[9651,9,218,9651],"./Battery.vue":[9651,9,218,9651],"./BinarySensor":[7549,9,218,3490,7549],"./BinarySensor.vue":[7549,9,218,3490,7549],"./BluetoothDevice":[4435,9,218,4435],"./BluetoothDevice.vue":[4435,9,218,4435],"./Button":[8625,9,218,5006,8625],"./Button.vue":[8625,9,218,5006,8625],"./CurrentSensor":[1399,9,218,5006,1399],"./CurrentSensor.vue":[1399,9,218,5006,1399],"./Device":[4435,9,218,4435],"./Device.vue":[4435,9,218,4435],"./Dimmer":[3593,9,7246,218,3593],"./Dimmer.vue":[3593,9,7246,218,3593],"./EnergySensor":[1399,9,218,5006,1399],"./EnergySensor.vue":[1399,9,218,5006,1399],"./Entity":[3053,9],"./Entity.vue":[3053,9],"./EntityIcon":[3459,9,218,3459],"./EntityIcon.vue":[3459,9,218,3459],"./EntityMixin":[7909,9],"./EntityMixin.vue":[7909,9],"./EnumSensor":[8625,9,218,5006,8625],"./EnumSensor.vue":[8625,9,218,5006,8625],"./EnumSwitch":[3398,9,218,3398],"./EnumSwitch.vue":[3398,9,218,3398],"./HumiditySensor":[1399,9,218,5006,1399],"./HumiditySensor.vue":[1399,9,218,5006,1399],"./IlluminanceSensor":[1399,9,218,5006,1399],"./IlluminanceSensor.vue":[1399,9,218,5006,1399],"./Index":[9688,9],"./Index.vue":[9688,9],"./Light":[2315,9,7246,218,3490,2315],"./Light.vue":[2315,9,7246,218,3490,2315],"./LinkQuality":[8126,9,218,8126],"./LinkQuality.vue":[8126,9,218,8126],"./Modal":[8472,9],"./Modal.vue":[8472,9],"./MotionSensor":[1399,9,218,5006,1399],"./MotionSensor.vue":[1399,9,218,5006,1399],"./MultiValueSensor":[1399,9,218,5006,1399],"./MultiValueSensor.vue":[1399,9,218,5006,1399],"./Muted":[3303,9,218,3490,3303],"./Muted.vue":[3303,9,218,3490,3303],"./NumericSensor":[1399,9,218,5006,1399],"./NumericSensor.vue":[1399,9,218,5006,1399],"./PowerSensor":[1399,9,218,5006,1399],"./PowerSensor.vue":[1399,9,218,5006,1399],"./RawSensor":[1399,9,218,5006,1399],"./RawSensor.vue":[1399,9,218,5006,1399],"./Selector":[6518,9],"./Selector.vue":[6518,9],"./Sensor":[1399,9,218,5006,1399],"./Sensor.vue":[1399,9,218,5006,1399],"./Switch":[3303,9,218,3490,3303],"./Switch.vue":[3303,9,218,3490,3303],"./TemperatureSensor":[1399,9,218,5006,1399],"./TemperatureSensor.vue":[1399,9,218,5006,1399],"./VoltageSensor":[1399,9,218,5006,1399],"./VoltageSensor.vue":[1399,9,218,5006,1399],"./Volume":[3593,9,7246,218,3593],"./Volume.vue":[3593,9,7246,218,3593],"./common.scss":[65,9,4981,65],"./meta":[7369,3],"./meta.json":[7369,3],"./vars.scss":[5207,9,4981,5207]};function s(e){if(!n.o(i,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=i[e],s=t[0];return Promise.all(t.slice(2).map(n.e)).then((function(){return n.t(s,16|t[1])}))}s.keys=function(){return Object.keys(i)},s.id=7243,e.exports=s},7369:function(e){"use strict";e.exports=JSON.parse('{"battery":{"name":"Battery","name_plural":"Batteries","icon":{"class":"fas fa-battery-full"}},"button":{"name":"Button","name_plural":"Buttons","icon":{"class":"fas fa-circle-dot"}},"current_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-bolt"}},"motion_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-person-running"}},"bluetooth_device":{"name":"Device","name_plural":"Devices","icon":{"class":"fab fa-bluetooth-b"}},"device":{"name":"Device","name_plural":"Devices","icon":{"class":"fas fa-gear"}},"volume":{"name":"Dimmer","name_plural":"Dimmers","icon":{"class":"fas fa-volume-high"}},"dimmer":{"name":"Dimmer","name_plural":"Dimmers","icon":{"class":"fas fa-gauge"}},"energy_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-plug"}},"entity":{"name":"Entity","name_plural":"Entities","icon":{"class":"fas fa-circle-question"}},"humidity_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-droplet"}},"illuminance_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-sun"}},"light":{"name":"Light","name_plural":"Lights","icon":{"class":"fas fa-lightbulb"}},"link_quality":{"name":"Link Quality","name_plural":"Link Qualities","icon":{"class":"fas fa-tower-broadcast"}},"power_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-plug"}},"temperature_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-temperature-half"}},"muted":{"name":"Switch","name_plural":"Switches","icon":{"class":"fas fa-volume-xmark"}},"enum_switch":{"name":"Switch","name_plural":"Switches","icon":{"class":"fas fa-gauge"}},"switch":{"name":"Switch","name_plural":"Switches","icon":{"class":"fas fa-toggle-on"}},"voltage_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-car-battery"}},"multi_value_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"binary_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"numeric_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"enum_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"raw_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}},"sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}}}')}}]);
//# sourceMappingURL=3053.c3f120c4.js.map