platypush/platypush/backend/http/webapp/dist/static/js/7503.c8252b66.js

2 lines
25 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([[7503],{7503:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return c}});var i=n(6252),s=n(3577);function a(e,t,n,a,o,l){return(0,i.wg)(),(0,i.iD)("div",{class:(0,s.C_)(["row item entity-container",{blink:o.justUpdated}])},[((0,i.wg)(),(0,i.j4)((0,i.LL)(o.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)}var o=n(7909),l={name:"Entity",mixins:[o["default"]],emits:["input","loading"],data(){return{component:null,justUpdated:!1}},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)}},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 n=this;setTimeout((()=>n.justUpdated=!1),1e3)})),this.component=(0,i.RC)((()=>n(7243)(`./${e}`)))}}},r=n(3744);const u=(0,r.Z)(l,[["render",a],["__scopeId","data-v-2cf6329b"]]);var c=u},7909:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return o}});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}},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 a=s;var o=a},1040:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return W}});var i=n(6252),s=n(3577);const a=e=>((0,i.dD)("data-v-1b44ed5e"),e=e(),(0,i.Cn)(),e),o={class:"row plugin entities-container"},l={class:"col-11 left"},r={class:"col-1 right"},u=a((()=>(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"},y={class:"frame"},h={class:"header"},g={class:"section left"},f={class:"section center"},v=["textContent"],_={class:"section right"},w=["onClick"],b=a((()=>(0,i._)("i",{class:"fa fa-sync-alt"},null,-1))),E=[b],k={class:"body"},C=["onClick"];function S(e,t,n,a,u,b){const S=(0,i.up)("Loading"),I=(0,i.up)("Selector"),x=(0,i.up)("EntityModal"),D=(0,i.up)("NoItems"),G=(0,i.up)("Icon"),T=(0,i.up)("Entity");return(0,i.wg)(),(0,i.iD)("div",o,[u.loading?((0,i.wg)(),(0,i.j4)(S,{key:0})):(0,i.kq)("",!0),(0,i._)("header",null,[(0,i._)("div",l,[(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(null))},c)])]),(0,i._)("div",d,[u.modalEntityId?((0,i.wg)(),(0,i.j4)(x,{key:0,entity:u.entities[u.modalEntityId],visible:u.modalVisible,onClose:t[2]||(t[2]=e=>b.onEntityModal(null))},null,8,["entity","visible"])):(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",y,[(0,i._)("div",h,[(0,i._)("span",g,["category"===u.selector.grouping&&b.entitiesMeta[b.typesByCategory[e.name]]?((0,i.wg)(),(0,i.j4)(G,(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)(G,{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)},E,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},[(0,i.Wm)(T,{value:e,onInput:b.onEntityInput,error:!!u.errorEntities[e.id],loading:!!u.loadingEntities[e.id],onLoading:t=>u.loadingEntities[e.id]=t},null,8,["value","onInput","error","loading","onLoading"])],8,C)))),128))])])])))),128))])):((0,i.wg)(),(0,i.j4)(D,{key:1},{default:(0,i.w5)((()=>[p])),_:1}))])])}var I=n(6813),x=n(1232),D=n(1478);const G={class:"no-items-container"},T={class:"no-items fade-in"};function j(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("div",G,[(0,i._)("div",T,[(0,i.WI)(e.$slots,"default",{},void 0,!0)])])}var q={name:"NoItems"},O=n(3744);const U=(0,O.Z)(q,[["render",j],["__scopeId","data-v-6fec32b5"]]);var $=U,M=n(7503),N=n(6518),L=n(6243),Z=n(1359),z=n(7369),B={name:"Entities",components:{Loading:x.Z,Icon:D.Z,Entity:M["default"],Selector:N["default"],NoItems:$,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 z},pluginIcons(){return Z},entityTypes(){return this.groupEntities("type")},typesByCategory(){return Object.entries(z).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])).length>0)).sort(((e,t)=>e[0].localeCompare(t[0]))).map((([e,t])=>({name:e,entities:t.filter((e=>e.id in this.selector.selectedEntities))})))}},methods:{groupEntities(e){return Object.values(this.entities).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}),{})},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(t.is_query_disabled||t.is_write_only)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=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}},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 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=z[n.type].name_plural,n.meta={...z[e.entity.type]||{},...this.entities[t]?.meta||{},...e.entity?.meta||{}},this.entities[t]=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()}};const F=(0,O.Z)(B,[["render",S],["__scopeId","data-v-1b44ed5e"]]);var W=F},6243:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return Ze}});var i=n(6252),s=n(3577);const a=e=>((0,i.dD)("data-v-628ff73f"),e=e(),(0,i.Cn)(),e),o=(0,i.Uk)(" Are you "),l=a((()=>(0,i._)("b",null,"sure",-1))),r=(0,i.Uk)(" that you want to delete this entity? "),u=a((()=>(0,i._)("br",null,null,-1))),c=a((()=>(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=a((()=>(0,i._)("br",null,null,-1))),m=a((()=>(0,i._)("br",null,null,-1))),y=(0,i.Uk)(" Otherwise, the entity will simply be created again upon the next scan. "),h={class:"table-row"},g={class:"title"},f=(0,i.Uk)(" Name "),v={class:"value"},_=["textContent"],w={class:"table-row"},b={class:"title"},E=(0,i.Uk)(" Icon "),k={class:"value icon-canvas"},C={key:0,class:"icon-editor"},S=a((()=>(0,i._)("i",{class:"fas fa-rotate-left"},null,-1))),I=[S],x=a((()=>(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))),D={class:"table-row"},G=a((()=>(0,i._)("div",{class:"title"}," Icon color ",-1))),T={class:"value icon-color-picker"},j=["value"],q=a((()=>(0,i._)("i",{class:"fas fa-rotate-left"},null,-1))),O=[q],U={class:"table-row"},$=a((()=>(0,i._)("div",{class:"title"},"Plugin",-1))),M=["textContent"],N={class:"table-row"},L=a((()=>(0,i._)("div",{class:"title"},"Internal ID",-1))),Z=["textContent"],z={key:0,class:"table-row"},B=a((()=>(0,i._)("div",{class:"title"},"External ID",-1))),F=["textContent"],W={key:1,class:"table-row"},R=a((()=>(0,i._)("div",{class:"title"},"Description",-1))),V=["textContent"],H={key:0,class:"table-row"},K=["textContent"],A=["textContent"],P={key:2,class:"table-row"},Y=a((()=>(0,i._)("div",{class:"title"},"Created at",-1))),Q=["textContent"],J={key:3,class:"table-row"},X=a((()=>(0,i._)("div",{class:"title"},"Updated at",-1))),ee=["textContent"],te={class:"table-row delete-entity-container"},ne=a((()=>(0,i._)("div",{class:"title"},"Delete Entity",-1))),ie={class:"value"},se=a((()=>(0,i._)("i",{class:"fas fa-trash"},null,-1))),ae=[se];function oe(e,t,n,a,S,q){const se=(0,i.up)("ConfirmDialog"),oe=(0,i.up)("EditButton"),le=(0,i.up)("NameEditor"),re=(0,i.up)("Icon"),ue=(0,i.up)("Modal",!0);return(0,i.wg)(),(0,i.j4)(ue,{visible:n.visible,class:"entity-modal",title:n.entity.name||n.entity.external_id},{default:(0,i.w5)((()=>[(0,i.Wm)(se,{ref:"deleteConfirmDiag",title:"Confirm entity deletion",onInput:q.onDelete},{default:(0,i.w5)((()=>[o,l,r,u,c,d,p,m,y])),_:1},8,["onInput"]),(0,i._)("div",h,[(0,i._)("div",g,[f,S.editName?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(oe,{key:0,onClick:t[0]||(t[0]=e=>S.editName=!0)}))]),(0,i._)("div",v,[S.editName?((0,i.wg)(),(0,i.j4)(le,{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,[E,S.editIcon?(0,i.kq)("",!0):((0,i.wg)(),(0,i.j4)(oe,{key:0,onClick:t[2]||(t[2]=e=>S.editIcon=!0)}))]),(0,i._)("div",k,[S.editIcon?((0,i.wg)(),(0,i.iD)("span",C,[(0,i.Wm)(le,{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"]),x])):((0,i.wg)(),(0,i.j4)(re,(0,s.vs)((0,i.dG)({key:1},n.entity?.meta?.icon||{})),null,16))])]),(0,i._)("div",D,[G,(0,i._)("div",T,[(0,i._)("input",{type:"color",value:n.entity.meta?.icon?.color,onChange:t[6]||(t[6]=(...e)=>q.onIconColorEdit&&q.onIconColorEdit(...e))},null,40,j),(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,[$,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.plugin)},null,8,M)]),(0,i._)("div",N,[L,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.id)},null,8,Z)]),n.entity.external_id?((0,i.wg)(),(0,i.iD)("div",z,[B,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.external_id)},null,8,F)])):(0,i.kq)("",!0),n.entity.description?((0,i.wg)(),(0,i.iD)("div",W,[R,(0,i._)("div",{class:"value",textContent:(0,s.zw)(n.entity.description)},null,8,V)])):(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",H,[(0,i._)("div",{class:"title",textContent:(0,s.zw)(e.prettify(n))},null,8,K),(0,i._)("div",{class:"value",textContent:(0,s.zw)(""+t)},null,8,A)])):(0,i.kq)("",!0)])))),128)),n.entity.created_at?((0,i.wg)(),(0,i.iD)("div",P,[Y,(0,i._)("div",{class:"value",textContent:(0,s.zw)(e.formatDateTime(n.entity.created_at))},null,8,Q)])):(0,i.kq)("",!0),n.entity.updated_at?((0,i.wg)(),(0,i.iD)("div",J,[X,(0,i._)("div",{class:"value",textContent:(0,s.zw)(e.formatDateTime(n.entity.updated_at))},null,8,ee)])):(0,i.kq)("",!0),(0,i._)("div",te,[ne,(0,i._)("div",ie,[(0,i._)("button",{onClick:t[9]||(t[9]=t=>e.$refs.deleteConfirmDiag.show())},ae)])])])),_:1},8,["visible","title"])}var le=n(8453),re=n(1478),ue=n(9963);const ce=e=>((0,i.dD)("data-v-d543b3e4"),e=e(),(0,i.Cn)(),e),de={class:"dialog-content"},pe=ce((()=>(0,i._)("i",{class:"fas fa-check"},null,-1))),me=ce((()=>(0,i._)("i",{class:"fas fa-xmark"},null,-1)));function ye(e,t,n,a,o,l){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",de,[(0,i.WI)(e.$slots,"default",{},void 0,!0)]),(0,i._)("form",{class:"buttons",onSubmit:t[4]||(t[4]=(0,ue.iM)(((...e)=>l.onConfirm&&l.onConfirm(...e)),["prevent"]))},[(0,i._)("button",{type:"submit",class:"ok-btn",onClick:t[0]||(t[0]=(...e)=>l.onConfirm&&l.onConfirm(...e)),onTouch:t[1]||(t[1]=(...e)=>l.onConfirm&&l.onConfirm(...e))},[pe,(0,i.Uk)("   "+(0,s.zw)(n.confirmText),1)],32),(0,i._)("button",{type:"button",class:"cancel-btn",onClick:t[2]||(t[2]=(...e)=>l.close&&l.close(...e)),onTouch:t[3]||(t[3]=(...e)=>l.close&&l.close(...e))},[me,(0,i.Uk)("   "+(0,s.zw)(n.cancelText),1)],32)],32)])),_:3},8,["title"])}var he={emits:["input","click","touch"],components:{Modal:le.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()}}},ge=n(3744);const fe=(0,ge.Z)(he,[["render",ye],["__scopeId","data-v-d543b3e4"]]);var ve=fe;const _e=e=>((0,i.dD)("data-v-3344f2bf"),e=e(),(0,i.Cn)(),e),we=_e((()=>(0,i._)("i",{class:"fas fa-pen-to-square"},null,-1))),be=[we];function Ee(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("button",{class:"edit-btn",onClick:t[0]||(t[0]=e=>o.proxy(e)),onTouch:t[1]||(t[1]=e=>o.proxy(e)),onInput:t[2]||(t[2]=e=>o.proxy(e))},be,32)}var ke={emits:["input","click","touch"],methods:{proxy(e){this.$emit(e.type,e)}}};const Ce=(0,ge.Z)(ke,[["render",Ee],["__scopeId","data-v-3344f2bf"]]);var Se=Ce;const Ie=e=>((0,i.dD)("data-v-1405d90f"),e=e(),(0,i.Cn)(),e),xe=["disabled"],De=Ie((()=>(0,i._)("button",{type:"submit"},[(0,i._)("i",{class:"fas fa-circle-check"})],-1))),Ge=Ie((()=>(0,i._)("i",{class:"fas fa-ban"},null,-1))),Te=[Ge];function je(e,t,n,s,a,o){return(0,i.wg)(),(0,i.iD)("form",{onSubmit:t[3]||(t[3]=(0,ue.iM)(((...e)=>o.submit&&o.submit(...e)),["prevent"])),class:"name-editor"},[(0,i.wy)((0,i._)("input",{type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>a.text=e),disabled:n.disabled},null,8,xe),[[ue.nr,a.text]]),De,(0,i._)("button",{class:"cancel",onClick:t[1]||(t[1]=t=>e.$emit("cancel")),onTouch:t[2]||(t[2]=t=>e.$emit("cancel"))},Te,32),(0,i.WI)(e.$slots,"default",{},void 0,!0)],32)}var qe={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 Oe=(0,ge.Z)(qe,[["render",je],["__scopeId","data-v-1405d90f"]]);var Ue=Oe,$e=n(6813),Me=n(7369),Ne={name:"Entity",components:{Modal:le.Z,EditButton:Se,NameEditor:Ue,Icon:re.Z,ConfirmDialog:ve},mixins:[$e.Z],emits:["input","loading"],props:{entity:{type:Object,required:!0},visible:{type:Boolean,default:!1}},data(){return{loading:!1,editName:!1,editIcon:!1}},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=(Me[this.entity.type]||{})?.icon?.url,t.class=(Me[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 Le=(0,ge.Z)(Ne,[["render",oe],["__scopeId","data-v-628ff73f"]]);var Ze=Le},6518:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return v}});var i=n(6252),s=n(3577),a=n(9963);const o={class:"entities-selectors-container"},l={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",o,[(0,i._)("div",l,[(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,a.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),[[a.nr,c.searchTerm]])])):(0,i.kq)("",!0)])}var c=n(6813),d=n(5771),p=n(522),m=n(7369),y=n(1359),h={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&&y[e]){const t=y[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)(h,[["render",u],["__scopeId","data-v-7babaacc"]]);var v=f},7243:function(e,t,n){var i={"./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":[6856,9,6869,7009,6856],"./CurrentSensor.vue":[6856,9,6869,7009,6856],"./Dimmer":[5060,9,7246,6869,5060],"./Dimmer.vue":[5060,9,7246,6869,5060],"./EnergySensor":[6856,9,6869,7009,6856],"./EnergySensor.vue":[6856,9,6869,7009,6856],"./Entity":[7503,9],"./Entity.vue":[7503,9],"./EntityIcon":[3673,9,6869,3673],"./EntityIcon.vue":[3673,9,6869,3673],"./EntityMixin":[7909,9],"./EntityMixin.vue":[7909,9],"./EnumSensor":[3390,9,6869,7009,3390],"./EnumSensor.vue":[3390,9,6869,7009,3390],"./EnumSwitch":[818,9,6869,818],"./EnumSwitch.vue":[818,9,6869,818],"./HumiditySensor":[6856,9,6869,7009,6856],"./HumiditySensor.vue":[6856,9,6869,7009,6856],"./Index":[1040,9],"./Index.vue":[1040,9],"./Light":[1155,9,3490,7246,6869,1155],"./Light.vue":[1155,9,3490,7246,6869,1155],"./LinkQuality":[2235,9,6869,2235],"./LinkQuality.vue":[2235,9,6869,2235],"./Modal":[6243,9],"./Modal.vue":[6243,9],"./NumericSensor":[6856,9,6869,7009,6856],"./NumericSensor.vue":[6856,9,6869,7009,6856],"./PowerSensor":[6856,9,6869,7009,6856],"./PowerSensor.vue":[6856,9,6869,7009,6856],"./RawSensor":[6856,9,6869,7009,6856],"./RawSensor.vue":[6856,9,6869,7009,6856],"./Selector":[6518,9],"./Selector.vue":[6518,9],"./Sensor":[6856,9,6869,7009,6856],"./Sensor.vue":[6856,9,6869,7009,6856],"./Switch":[4024,9,3490,6869,4024],"./Switch.vue":[4024,9,3490,6869,4024],"./TemperatureSensor":[6856,9,6869,7009,6856],"./TemperatureSensor.vue":[6856,9,6869,7009,6856],"./VoltageSensor":[6856,9,6869,7009,6856],"./VoltageSensor.vue":[6856,9,6869,7009,6856],"./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"}},"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"}},"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=7503.c8252b66.js.map