platypush/platypush/backend/http/webapp/dist/static/js/6333.a62ce799.js

2 lines
28 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([[6333],{6333:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return m}});var n=i(6252),s=i(3577),l=i(9963);const a={key:0,class:"children"};function o(e,t,i,o,r,c){const u=(0,n.up)("Entity",!0);return(0,n.wg)(),(0,n.iD)("div",{class:(0,s.C_)(["entity-container-wrapper",{"with-children":c.hasChildren,collapsed:c.isCollapsed,hidden:!e.value?.name?.length}])},[(0,n._)("div",{class:(0,s.C_)(["row item entity-container",{blink:r.justUpdated,"with-children":c.hasChildren,collapsed:c.isCollapsed}])},[(0,n._)("div",{class:(0,s.C_)(["adjuster",{"col-12":!c.hasChildren,"col-11":c.hasChildren}])},[((0,n.wg)(),(0,n.j4)((0,n.LL)(r.component),{value:e.value,loading:e.loading,error:e.error||0==e.value?.reachable,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"]))],2),c.hasChildren?((0,n.wg)(),(0,n.iD)("div",{key:0,class:"col-1 collapse-toggler",onClick:t[2]||(t[2]=(0,l.iM)((e=>r.collapsed=!r.collapsed),["stop"]))},[(0,n._)("i",{class:(0,s.C_)(["fas",{"fa-chevron-down":c.isCollapsed,"fa-chevron-up":!c.isCollapsed}])},null,2)])):(0,n.kq)("",!0)],2),c.isCollapsed?(0,n.kq)("",!0):((0,n.wg)(),(0,n.iD)("div",a,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(c.computedChildren,(t=>((0,n.wg)(),(0,n.iD)("div",{class:"child",key:t.id},[(0,n.Wm)(u,{value:t,loading:e.loading,level:e.level+1,onInput:i=>e.$emit("input",t)},null,8,["value","loading","level","onInput"])])))),128))]))],2)}var r=i(2262),c=i(7909),u={name:"Entity",mixins:[c["default"]],emits:["input","loading"],data(){return{component:null,collapsed:!0,justUpdated:!1}},computed:{computedChildren(){return Object.values(this.children||{}).filter((e=>e))},hasChildren(){return!!this.computedChildren.length},isCollapsed(){return!this.hasChildren||this.collapsed}},methods:{valuesEqual(e,t){e={...e},t={...t};for(const i of["updated_at","data"])delete e[i],delete t[i];return this.objectsEqual(e,t)}},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.justUpdated=!0;const i=this;setTimeout((()=>i.justUpdated=!1),1e3)})),this.component=(0,r.XI)((0,n.RC)((()=>i(7243)(`./${e}`))))}}},d=i(3744);const p=(0,d.Z)(u,[["render",o],["__scopeId","data-v-efd3340c"]]);var m=p},7909:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return a}});var n=i(6813),s={name:"EntityMixin",mixins:[n.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}},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},5587:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return F}});var n=i(6252),s=i(3577);const l=e=>((0,n.dD)("data-v-9cdce626"),e=e(),(0,n.Cn)(),e),a={class:"row plugin entities-container"},o={class:"col-11 left"},r={class:"col-1 right"},c=l((()=>(0,n._)("i",{class:"fa fa-sync-alt"},null,-1))),u=[c],d={class:"groups-canvas"},p=(0,n.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,n._)("i",{class:"fa fa-sync-alt"},null,-1))),C=[b],k={class:"body"},E=["onClick"];function I(e,t,i,l,c,b){const I=(0,n.up)("Loading"),S=(0,n.up)("Selector"),D=(0,n.up)("EntityModal"),x=(0,n.up)("NoItems"),j=(0,n.up)("Icon"),G=(0,n.up)("Entity");return(0,n.wg)(),(0,n.iD)("div",a,[c.loading?((0,n.wg)(),(0,n.j4)(I,{key:0})):(0,n.kq)("",!0),(0,n._)("header",null,[(0,n._)("div",o,[(0,n.Wm)(S,{"entity-groups":b.entityGroups,value:c.selector,onInput:t[0]||(t[0]=e=>c.selector=e)},null,8,["entity-groups","value"])]),(0,n._)("div",r,[(0,n._)("button",{title:"Refresh",onClick:t[1]||(t[1]=(...e)=>b.refresh&&b.refresh(...e))},u)])]),(0,n._)("div",d,[c.modalEntityId&&c.entities[c.modalEntityId]?((0,n.wg)(),(0,n.j4)(D,{key:0,entity:c.entities[c.modalEntityId],visible:c.modalVisible,"config-values":b.configValuesByParentId(c.modalEntityId),onClose:b.onEntityModal},null,8,["entity","visible","config-values","onClose"])):(0,n.kq)("",!0),Object.keys(b.displayGroups||{})?.length?((0,n.wg)(),(0,n.iD)("div",m,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(b.displayGroups,(e=>((0,n.wg)(),(0,n.iD)("div",{class:"group fade-in",key:e.name},[(0,n._)("div",h,[(0,n._)("div",y,[(0,n._)("span",g,["category"===c.selector.grouping&&b.entitiesMeta[b.typesByCategory[e.name]]?((0,n.wg)(),(0,n.j4)(j,(0,s.vs)((0,n.dG)({key:0},b.entitiesMeta[b.typesByCategory[e.name]].icon||{})),null,16)):"plugin"===c.selector.grouping&&b.pluginIcons[e.name]?((0,n.wg)(),(0,n.j4)(j,{key:1,class:(0,s.C_)(b.pluginIcons[e.name]?.class),url:b.pluginIcons[e.name]?.imgUrl},null,8,["class","url"])):(0,n.kq)("",!0)]),(0,n._)("span",f,[(0,n._)("div",{class:"title",textContent:(0,s.zw)(e.name)},null,8,v)]),(0,n._)("span",_,[(0,n._)("button",{title:"Refresh",onClick:t=>b.refresh(e)},C,8,w)])]),(0,n._)("div",k,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(e.entities,(e=>((0,n.wg)(),(0,n.iD)("div",{class:"entity-frame",onClick:t=>b.onEntityModal(e.id),key:e.id},[e.parent_id?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(G,{key:0,value:e,children:b.childrenByParentId(e.id),onInput:t=>b.onEntityInput(e),error:!!c.errorEntities[e.id],loading:!!c.loadingEntities[e.id],onLoading:t=>c.loadingEntities[e.id]=t},null,8,["value","children","onInput","error","loading","onLoading"]))],8,E)))),128))])])])))),128))])):((0,n.wg)(),(0,n.j4)(x,{key:1},{default:(0,n.w5)((()=>[p])),_:1}))])])}var S=i(6813),D=i(1232),x=i(1478);const j={class:"no-items-container"},G={class:"no-items fade-in"};function T(e,t,i,s,l,a){return(0,n.wg)(),(0,n.iD)("div",j,[(0,n._)("div",G,[(0,n.WI)(e.$slots,"default",{},void 0,!0)])])}var q={name:"NoItems"},O=i(3744);const U=(0,O.Z)(q,[["render",T],["__scopeId","data-v-6fec32b5"]]);var $=U,M=i(6333),L=i(6518),N=i(1157),B=i(1359),Z=i(7369),z={name:"Entities",components:{Loading:D.Z,Icon:x.Z,Entity:M["default"],Selector:L["default"],NoItems:$,EntityModal:N["default"]},mixins:[S.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 Z},pluginIcons(){return B},entityTypes(){return this.groupEntities("type")},typesByCategory(){return Object.entries(Z).reduce(((e,[t,i])=>(e[i.name_plural]=t,e)),{})},entityGroups(){return{id:Object.entries(this.groupEntities("id")).reduce(((e,[t,i])=>(e[t]=i[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,i)=>{const n=t[i[e]]||{};return n[i.id]=i,t[i[e]]=Object.values(n).sort(((e,t)=>e.name.localeCompare(t.name))),t}),{})},_shouldSkipLoading(e){const t=Object.values(this.childrenByParentId(e.id)),i=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&&!i},async refresh(e){const t=(e?e.entities:this.entities)||{},i={};e&&(i.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 i=this,n=t.id;return this.entityTimeouts[n]&&clearTimeout(this.entityTimeouts[n]),this.entityTimeouts[n]=setTimeout((()=>{i.loadingEntities[n]&&delete i.loadingEntities[n],i.entityTimeouts[n]&&delete i.entityTimeouts[n],i.errorEntities[n]=t,console.warn(`Scan timeout for ${t.name}`)}),1e3*this.entityScanTimeout),e[n]=!0,e}),{}),await this.request("entities.scan",i)},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=Z[t.type].name_plural,t.meta={...Z[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=Z[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 i={...e.entity};null==e.entity?.state&&(i.state=this.entities[t]?.state),i.meta?.name_override?.length?i.name=i.meta.name_override:this.entities[t]?.meta?.name_override?.length?i.name=this.entities[t].meta.name_override:i.name=e.entity?.name||this.entities[t]?.name,i.category=Z[i.type].name_plural,i.meta={...Z[e.entity.type]||{},...this.entities[t]?.meta||{},...e.entity?.meta||{}},this.entities[t]=i},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()}};const V=(0,O.Z)(z,[["render",I],["__scopeId","data-v-9cdce626"]]);var F=V},1157:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return We}});var n=i(6252),s=i(3577);const l=e=>((0,n.dD)("data-v-b5a4ad10"),e=e(),(0,n.Cn)(),e),a=(0,n.Uk)(" Are you "),o=l((()=>(0,n._)("b",null,"sure",-1))),r=(0,n.Uk)(" that you want to delete this entity? "),c=l((()=>(0,n._)("br",null,null,-1))),u=l((()=>(0,n._)("br",null,null,-1))),d=(0,n.Uk)(" Note: you should only delete an entity if its plugin has been disabled or the entity is no longer reachable."),p=l((()=>(0,n._)("br",null,null,-1))),m=l((()=>(0,n._)("br",null,null,-1))),h=(0,n.Uk)(" Otherwise, the entity will simply be created again upon the next scan. "),y={class:"table-row"},g={class:"title"},f=(0,n.Uk)(" Name "),v={class:"value"},_=["textContent"],w={class:"table-row"},b={class:"title"},C=(0,n.Uk)(" Icon "),k={class:"value icon-canvas"},E={key:0,class:"icon-editor"},I=l((()=>(0,n._)("i",{class:"fas fa-rotate-left"},null,-1))),S=[I],D=l((()=>(0,n._)("span",{class:"help"},[(0,n.Uk)(" Supported: image URLs or "),(0,n._)("a",{href:"https://fontawesome.com/icons",target:"_blank"},"FontAwesome icon classes"),(0,n.Uk)(". ")],-1))),x={class:"table-row"},j=l((()=>(0,n._)("div",{class:"title"}," Icon color ",-1))),G={class:"value icon-color-picker"},T=["value"],q=l((()=>(0,n._)("i",{class:"fas fa-rotate-left"},null,-1))),O=[q],U={class:"table-row"},$=l((()=>(0,n._)("div",{class:"title"},"Plugin",-1))),M=["textContent"],L={class:"table-row"},N=l((()=>(0,n._)("div",{class:"title"},"Internal ID",-1))),B=["textContent"],Z={key:0,class:"table-row"},z=l((()=>(0,n._)("div",{class:"title"},"External ID",-1))),V=["textContent"],F={key:1,class:"table-row"},W=l((()=>(0,n._)("div",{class:"title"},"Description",-1))),P=["textContent"],R={key:0,class:"table-row"},H=["textContent"],K=["textContent"],Y={key:2,class:"table-row"},A=l((()=>(0,n._)("div",{class:"title"},"Created at",-1))),Q=["textContent"],J={key:3,class:"table-row"},X=l((()=>(0,n._)("div",{class:"title"},"Updated at",-1))),ee=["textContent"],te={class:"table-row delete-entity-container"},ie=l((()=>(0,n._)("div",{class:"title"},"Delete Entity",-1))),ne={class:"value"},se=l((()=>(0,n._)("i",{class:"fas fa-trash"},null,-1))),le=[se],ae={key:4,class:"config-container"},oe=l((()=>(0,n._)("div",{class:"col-11"},[(0,n._)("i",{class:"fas fa-screwdriver-wrench"}),(0,n.Uk)("   Configuration ")],-1))),re={class:"col-1 pull-right"},ce={key:0,class:"entities"};function ue(e,t,i,l,I,q){const se=(0,n.up)("ConfirmDialog"),ue=(0,n.up)("EditButton"),de=(0,n.up)("NameEditor"),pe=(0,n.up)("Icon"),me=(0,n.up)("Entity"),he=(0,n.up)("Modal",!0);return i.entity?((0,n.wg)(),(0,n.j4)(he,{key:0,visible:i.visible,class:"entity-modal",title:i.entity.name||i.entity.external_id},{default:(0,n.w5)((()=>[(0,n.Wm)(se,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:q.onDelete},{default:(0,n.w5)((()=>[a,o,r,c,u,d,p,m,h])),_:1},8,["onInput"]),(0,n._)("div",y,[(0,n._)("div",g,[f,I.editName?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(ue,{key:0,onClick:t[0]||(t[0]=e=>I.editName=!0)}))]),(0,n._)("div",v,[I.editName?((0,n.wg)(),(0,n.j4)(de,{key:0,value:i.entity.name,onInput:q.onRename,onCancel:t[1]||(t[1]=e=>I.editName=!1),disabled:I.loading},null,8,["value","onInput","disabled"])):((0,n.wg)(),(0,n.iD)("span",{key:1,textContent:(0,s.zw)(i.entity.name)},null,8,_))])]),(0,n._)("div",w,[(0,n._)("div",b,[C,I.editIcon?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(ue,{key:0,onClick:t[2]||(t[2]=e=>I.editIcon=!0)}))]),(0,n._)("div",k,[I.editIcon?((0,n.wg)(),(0,n.iD)("span",E,[(0,n.Wm)(de,{value:i.entity.meta?.icon?.class||i.entity.meta?.icon?.url,onInput:q.onIconEdit,onCancel:t[5]||(t[5]=e=>I.editIcon=!1),disabled:I.loading},{default:(0,n.w5)((()=>[(0,n._)("button",{type:"button",title:"Reset",onClick:t[3]||(t[3]=e=>q.onIconEdit(null)),onTouch:t[4]||(t[4]=e=>q.onIconEdit(null))},S,32)])),_:1},8,["value","onInput","disabled"]),D])):((0,n.wg)(),(0,n.j4)(pe,(0,s.vs)((0,n.dG)({key:1},i.entity?.meta?.icon||{})),null,16))])]),(0,n._)("div",x,[j,(0,n._)("div",G,[(0,n._)("input",{type:"color",value:i.entity.meta?.icon?.color,onChange:t[6]||(t[6]=(...e)=>q.onIconColorEdit&&q.onIconColorEdit(...e))},null,40,T),(0,n._)("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,n._)("div",U,[$,(0,n._)("div",{class:"value",textContent:(0,s.zw)(i.entity.plugin)},null,8,M)]),(0,n._)("div",L,[N,(0,n._)("div",{class:"value",textContent:(0,s.zw)(i.entity.id)},null,8,B)]),i.entity.external_id?((0,n.wg)(),(0,n.iD)("div",Z,[z,(0,n._)("div",{class:"value",textContent:(0,s.zw)(i.entity.external_id)},null,8,V)])):(0,n.kq)("",!0),i.entity.description?((0,n.wg)(),(0,n.iD)("div",F,[W,(0,n._)("div",{class:"value",textContent:(0,s.zw)(i.entity.description)},null,8,P)])):(0,n.kq)("",!0),((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(i.entity.data||{},((t,i)=>((0,n.wg)(),(0,n.iD)("div",{key:i},[null!=t?((0,n.wg)(),(0,n.iD)("div",R,[(0,n._)("div",{class:"title",textContent:(0,s.zw)(e.prettify(i))},null,8,H),(0,n._)("div",{class:"value",textContent:(0,s.zw)(""+t)},null,8,K)])):(0,n.kq)("",!0)])))),128)),i.entity.created_at?((0,n.wg)(),(0,n.iD)("div",Y,[A,(0,n._)("div",{class:"value",textContent:(0,s.zw)(e.formatDateTime(i.entity.created_at))},null,8,Q)])):(0,n.kq)("",!0),i.entity.updated_at?((0,n.wg)(),(0,n.iD)("div",J,[X,(0,n._)("div",{class:"value",textContent:(0,s.zw)(e.formatDateTime(i.entity.updated_at))},null,8,ee)])):(0,n.kq)("",!0),(0,n._)("div",te,[ie,(0,n._)("div",ne,[(0,n._)("button",{onClick:t[9]||(t[9]=t=>e.$refs.deleteConfirmDiag.show())},le)])]),q.computedConfig.length?((0,n.wg)(),(0,n.iD)("div",ae,[(0,n._)("div",{class:"title",onClick:t[10]||(t[10]=e=>I.configCollapsed=!I.configCollapsed)},[oe,(0,n._)("div",re,[(0,n._)("i",{class:(0,s.C_)(["fas",{"fa-chevron-down":I.configCollapsed,"fa-chevron-up":!I.configCollapsed}])},null,2)])]),I.configCollapsed?(0,n.kq)("",!0):((0,n.wg)(),(0,n.iD)("div",ce,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(q.computedConfig,(t=>((0,n.wg)(),(0,n.j4)(me,{key:t.id,value:t,onInput:i=>e.$emit("input",t)},null,8,["value","onInput"])))),128))]))])):(0,n.kq)("",!0)])),_:1},8,["visible","title"])):(0,n.kq)("",!0)}var de=i(8453),pe=i(1478),me=i(9963);const he=e=>((0,n.dD)("data-v-d543b3e4"),e=e(),(0,n.Cn)(),e),ye={class:"dialog-content"},ge=he((()=>(0,n._)("i",{class:"fas fa-check"},null,-1))),fe=he((()=>(0,n._)("i",{class:"fas fa-xmark"},null,-1)));function ve(e,t,i,l,a,o){const r=(0,n.up)("Modal");return(0,n.wg)(),(0,n.j4)(r,{ref:"modal",title:i.title},{default:(0,n.w5)((()=>[(0,n._)("div",ye,[(0,n.WI)(e.$slots,"default",{},void 0,!0)]),(0,n._)("form",{class:"buttons",onSubmit:t[4]||(t[4]=(0,me.iM)(((...e)=>o.onConfirm&&o.onConfirm(...e)),["prevent"]))},[(0,n._)("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))},[ge,(0,n.Uk)("   "+(0,s.zw)(i.confirmText),1)],32),(0,n._)("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))},[fe,(0,n.Uk)("   "+(0,s.zw)(i.cancelText),1)],32)],32)])),_:3},8,["title"])}var _e={emits:["input","click","touch"],components:{Modal:de.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()}}},we=i(3744);const be=(0,we.Z)(_e,[["render",ve],["__scopeId","data-v-d543b3e4"]]);var Ce=be;const ke=e=>((0,n.dD)("data-v-3344f2bf"),e=e(),(0,n.Cn)(),e),Ee=ke((()=>(0,n._)("i",{class:"fas fa-pen-to-square"},null,-1))),Ie=[Ee];function Se(e,t,i,s,l,a){return(0,n.wg)(),(0,n.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))},Ie,32)}var De={emits:["input","click","touch"],methods:{proxy(e){this.$emit(e.type,e)}}};const xe=(0,we.Z)(De,[["render",Se],["__scopeId","data-v-3344f2bf"]]);var je=xe;const Ge=e=>((0,n.dD)("data-v-1405d90f"),e=e(),(0,n.Cn)(),e),Te=["disabled"],qe=Ge((()=>(0,n._)("button",{type:"submit"},[(0,n._)("i",{class:"fas fa-circle-check"})],-1))),Oe=Ge((()=>(0,n._)("i",{class:"fas fa-ban"},null,-1))),Ue=[Oe];function $e(e,t,i,s,l,a){return(0,n.wg)(),(0,n.iD)("form",{onSubmit:t[3]||(t[3]=(0,me.iM)(((...e)=>a.submit&&a.submit(...e)),["prevent"])),class:"name-editor"},[(0,n.wy)((0,n._)("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>l.text=e),disabled:i.disabled},null,8,Te),[[me.nr,l.text]]),qe,(0,n._)("button",{class:"cancel",onClick:t[1]||(t[1]=t=>e.$emit("cancel")),onTouch:t[2]||(t[2]=t=>e.$emit("cancel"))},Ue,32),(0,n.WI)(e.$slots,"default",{},void 0,!0)],32)}var Me={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 Le=(0,we.Z)(Me,[["render",$e],["__scopeId","data-v-1405d90f"]]);var Ne=Le,Be=i(6813),Ze=i(6333),ze=i(7369),Ve={name:"EntityModal",components:{Entity:Ze["default"],Modal:de.Z,EditButton:je,NameEditor:Ne,Icon:pe.Z,ConfirmDialog:Ce},mixins:[Be.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=(ze[this.entity.type]||{})?.icon?.url,t.class=(ze[this.entity.type]||{})?.icon?.["class"]);const i={};i[this.entity.id]={icon:t},await this.request("entities.set_meta",i)}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 i={};i[this.entity.id]={icon:t},await this.request("entities.set_meta",i)}finally{this.loading=!1,this.editIcon=!1}}}};const Fe=(0,we.Z)(Ve,[["render",ue],["__scopeId","data-v-b5a4ad10"]]);var We=Fe},6518:function(e,t,i){"use strict";i.r(t),i.d(t,{default:function(){return v}});var n=i(6252),s=i(3577),l=i(9963);const a={class:"entities-selectors-container"},o={class:"selector"},r={key:1,class:"selector"};function c(e,t,i,c,u,d){const p=(0,n.up)("DropdownItem"),m=(0,n.up)("Dropdown");return(0,n.wg)(),(0,n.iD)("div",a,[(0,n._)("div",o,[(0,n.Wm)(m,{title:"Group by","icon-class":"fas fa-object-ungroup",ref:"groupingSelector"},{default:(0,n.w5)((()=>[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(d.visibleGroupings,(e=>((0,n.wg)(),(0,n.j4)(p,{key:e,text:d.prettifyGroupingName(e),"item-class":{selected:i.value?.grouping===e},onClick:t=>d.onGroupingChanged(e)},null,8,["text","item-class","onClick"])))),128))])),_:1},512)]),i.value?.grouping?((0,n.wg)(),(0,n.iD)("div",{key:0,class:(0,s.C_)(["selector",{active:d.isGroupFilterActive}])},[(0,n.Wm)(m,{title:"Filter by","icon-class":"fas fa-filter",ref:"groupSelector","keep-open-on-item-click":""},{default:(0,n.w5)((()=>[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)(d.sortedGroups,(e=>((0,n.wg)(),(0,n.j4)(p,(0,n.dG)({key:e,text:e},d.iconForGroup(e),{"item-class":{selected:!!u.selectedGroups[e]},onClick:(0,l.iM)((t=>d.toggleGroup(e)),["stop"])}),null,16,["text","item-class","onClick"])))),128))])),_:1},512)],2)):(0,n.kq)("",!0),Object.keys(i.entityGroups.id||{}).length?((0,n.wg)(),(0,n.iD)("div",r,[(0,n.wy)((0,n._)("input",{ref:"search",type:"text",class:"search-bar",placeholder:"🔎","onUpdate:modelValue":t[0]||(t[0]=e=>u.searchTerm=e)},null,512),[[l.nr,u.searchTerm]])])):(0,n.kq)("",!0)])}var u=i(6813),d=i(5771),p=i(2684),m=i(7369),h=i(1359),y={name:"Selector",emits:["input"],mixins:[u.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=i(3744);const f=(0,g.Z)(y,[["render",c],["__scopeId","data-v-7babaacc"]]);var v=f},7243:function(e,t,i){var n={"./Battery":[8990,9,6869,8990],"./Battery.vue":[8990,9,6869,8990],"./BinarySensor":[9496,9,3490,6869,9496],"./BinarySensor.vue":[9496,9,3490,6869,9496],"./CurrentSensor":[2072,9,6869,2756,2072],"./CurrentSensor.vue":[2072,9,6869,2756,2072],"./Device":[7370,9,6869,7370],"./Device.vue":[7370,9,6869,7370],"./Dimmer":[3315,9,7246,6869,3315],"./Dimmer.vue":[3315,9,7246,6869,3315],"./EnergySensor":[2072,9,6869,2756,2072],"./EnergySensor.vue":[2072,9,6869,2756,2072],"./Entity":[6333,9],"./Entity.vue":[6333,9],"./EntityIcon":[3673,9,6869,3673],"./EntityIcon.vue":[3673,9,6869,3673],"./EntityMixin":[7909,9],"./EntityMixin.vue":[7909,9],"./EnumSensor":[3390,9,6869,2756,3390],"./EnumSensor.vue":[3390,9,6869,2756,3390],"./EnumSwitch":[7524,9,6869,7524],"./EnumSwitch.vue":[7524,9,6869,7524],"./HumiditySensor":[2072,9,6869,2756,2072],"./HumiditySensor.vue":[2072,9,6869,2756,2072],"./IlluminanceSensor":[2072,9,6869,2756,2072],"./IlluminanceSensor.vue":[2072,9,6869,2756,2072],"./Index":[5587,9],"./Index.vue":[5587,9],"./Light":[9659,9,3490,7246,6869,9659],"./Light.vue":[9659,9,3490,7246,6869,9659],"./LinkQuality":[2235,9,6869,2235],"./LinkQuality.vue":[2235,9,6869,2235],"./Modal":[1157,9],"./Modal.vue":[1157,9],"./NumericSensor":[2072,9,6869,2756,2072],"./NumericSensor.vue":[2072,9,6869,2756,2072],"./PowerSensor":[2072,9,6869,2756,2072],"./PowerSensor.vue":[2072,9,6869,2756,2072],"./RawSensor":[2072,9,6869,2756,2072],"./RawSensor.vue":[2072,9,6869,2756,2072],"./Selector":[6518,9],"./Selector.vue":[6518,9],"./Sensor":[2072,9,6869,2756,2072],"./Sensor.vue":[2072,9,6869,2756,2072],"./Switch":[4024,9,3490,6869,4024],"./Switch.vue":[4024,9,3490,6869,4024],"./TemperatureSensor":[2072,9,6869,2756,2072],"./TemperatureSensor.vue":[2072,9,6869,2756,2072],"./VoltageSensor":[2072,9,6869,2756,2072],"./VoltageSensor.vue":[2072,9,6869,2756,2072],"./common.scss":[65,9,4981,65],"./meta":[7369,3],"./meta.json":[7369,3],"./vars.scss":[5207,9,4981,5207]};function s(e){if(!i.o(n,e))return Promise.resolve().then((function(){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=n[e],s=t[0];return Promise.all(t.slice(2).map(i.e)).then((function(){return i.t(s,16|t[1])}))}s.keys=function(){return Object.keys(n)},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"}},"current_sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-bolt"}},"device":{"name":"Device","name_plural":"Devices","icon":{"class":"fas fa-gear"}},"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"}},"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"}},"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"}},"sensor":{"name":"Sensor","name_plural":"Sensors","icon":{"class":"fas fa-thermometer"}}}')}}]);
//# sourceMappingURL=6333.a62ce799.js.map