UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge.

2 lines (1 loc) • 10.5 kB
import{f as N}from"./chunk-NAG4LCT2.js";import{s as se}from"./chunk-CG4JSQF7.js";import{s as ne}from"./chunk-YATM6BZO.js";import{e as H}from"./chunk-ODMFCOQJ.js";import{C as ie,e as X,l as Y,t as Z,u as ee,w as te}from"./chunk-ORSKS7BY.js";import{b as Q}from"./chunk-4NRNA47I.js";import{C as z,D as G,F as J,I as K}from"./chunk-QCMOCU6Q.js";import{Ab as f,Cb as T,Db as V,Dc as p,Eb as F,Ec as u,Fb as w,Gb as a,Hb as r,Ib as $,Sb as E,Xb as y,Ya as s,Zb as m,aa as x,ga as b,ha as I,ic as k,kc as d,lc as v,mb as P,mc as B,nc as O,rc as j,sa as S,sc as q,tc as W,xb as R,zb as h}from"./chunk-ZMC752RO.js";import{a as U,b as L,h as M}from"./chunk-B4AJQJMI.js";function re(t,_){t&1&&(a(0,"div",12),$(1,"i",13),r(),a(2,"p",14),d(3),p(4,"translate"),r()),t&2&&(s(3),v(u(4,1,"reset.no_accessories")))}function ce(t,_){if(t&1&&(a(0,"option",24),d(1),r()),t&2){let e=_.$implicit;w("value",e._id),s(),O("",e.name," (",e._username,")")}}function le(t,_){if(t&1){let e=E();a(0,"li",20),d(1),p(2,"translate"),r(),a(3,"li",18)(4,"label",21),d(5),p(6,"translate"),r(),a(7,"div",22)(8,"select",23),W("ngModelChange",function(n){b(e);let o=m(2);return q(o.selectedBridge,n)||(o.selectedBridge=n),I(n)}),y("change",function(n){b(e);let o=m(2);return I(o.onBridgeChange(n))}),V(9,ce,2,3,"option",24,T),r()()()}if(t&2){let e=m(2);s(),v(u(2,3,"form.label.changes_kept")),s(4),v(u(6,5,"reset.accessory_ind.bridge")),s(3),j("ngModel",e.selectedBridge),s(),F(e.pairings())}}function de(t,_){if(t&1&&(a(0,"li",18)(1,"span",25),d(2),p(3,"translate"),r(),a(4,"div",26),d(5),r()()),t&2){let e=m(2);s(2),v(u(3,2,"reset.accessory_ind.bridge")),s(3),B(" ",e.getCurrentlySelectedBridge()," ")}}function me(t,_){if(t&1){let e=E();a(0,"li",19)(1,"span",27),$(2,"i",28),r(),a(3,"span",29),d(4),$(5,"br"),a(6,"small")(7,"span",30),d(8),r()()(),a(9,"button",31),p(10,"translate"),y("click",function(){let n=b(e).$implicit,o=m(2);return I(o.toggleList(n.UUID||n.uuid,n.$cacheFile,n.$protocol,n.$deviceId))}),$(11,"i",32),r()()}if(t&2){let e=_.$implicit,i=m(2);s(2),k("fa-matter",e.$protocol==="matter")("fa-hap",e.$protocol!=="matter"),s(2),B(" ",e.displayName," "),s(4),v(e.UUID||e.uuid),s(),k("btn-danger",!i.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol))("btn-elegant",i.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)),w("disabled",i.clicked()),R("aria-label",u(10,20,"form.button_delete")),s(2),k("fa-trash",!i.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol))("fa-undo",i.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&!i.clicked())("fa-circle-notch",i.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&i.clicked())("fa-spin",i.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&i.clicked())}}function pe(t,_){if(t&1&&(a(0,"div",12),$(1,"i",15),r(),a(2,"ul",16)(3,"li"),d(4),p(5,"translate"),r(),a(6,"li"),d(7),p(8,"translate"),r(),a(9,"li"),d(10),p(11,"translate"),r()(),a(12,"ul",17),h(13,le,11,7),h(14,de,6,4,"li",18),V(15,me,12,22,"li",19,T),r()),t&2){let e=m();s(4),v(u(5,5,"reset.accessory_ind.list_1")),s(3),v(u(8,7,"reset.accessory_ind.list_2")),s(3),v(u(11,9,"reset.accessory_ind.list_3")),s(3),f(e.pairings().length>1?13:-1),s(),f(e.pairings().length===1?14:-1),s(),F(e.selectedBridgeAccessories())}}function ue(t,_){if(t&1){let e=E();a(0,"button",33),y("click",function(){b(e);let n=m();return I(n.dismissModal())}),d(1),p(2,"translate"),r()}if(t&2){let e=m();w("disabled",e.clicked()),s(),B(" ",u(2,2,"form.button_close")," ")}}function _e(t,_){if(t&1){let e=E();a(0,"button",34),y("click",function(){b(e);let n=m();return I(n.dismissModal())}),d(1),p(2,"translate"),r()}t&2&&(s(),B(" ",u(2,1,"form.button_close")," "))}function ge(t,_){if(t&1&&d(0),t&2){let e=m(3);B(" (",e.toDelete().length,") ")}}function ve(t,_){if(t&1&&(d(0),p(1,"translate"),h(2,ge,1,1)),t&2){let e=m(2);B(" ",u(1,2,"form.button_remove")," "),s(2),f(e.toDelete().length>0?2:-1)}}function he(t,_){t&1&&$(0,"i",36)}function fe(t,_){if(t&1){let e=E();a(0,"button",35),y("click",function(){b(e);let n=m();return I(n.removeAccessories())}),h(1,ve,3,4)(2,he,1,0,"i",36),r()}if(t&2){let e=m();w("disabled",!e.toDelete().length||e.clicked()),s(),f(e.clicked()?2:1)}}var Re=(()=>{class t{$activeModal=x(ne);$api=x(K);$router=x(H);$settings=x(Q);$toastr=x(J);$translate=x(z);modalData=x(se);selectedBridge=this.modalData.selectedBridge;pairings=S([]);clicked=S(!1);currentSelectedBridge=S("");selectedBridgeAccessories=S([]);accessoriesExist=S(!1);toDelete=S([]);isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");ngOnInit(){this.currentSelectedBridge.set(this.selectedBridge),this.loadCachedAccessories()}onBridgeChange(e){let i=e.target.value;this.currentSelectedBridge.set(i),this.selectedBridgeAccessories.set(this.pairings().find(n=>n._id===this.currentSelectedBridge())?.accessories||[])}getCurrentlySelectedBridge(){let e=this.pairings().find(i=>i._id===this.currentSelectedBridge());return e?`${e.name} - ${e._username}`:""}toggleList(e,i,n,o){this.toDelete().some(g=>g.uuid===e&&g.cacheFile===i&&g.protocol===n)?this.toDelete.set(this.toDelete().filter(g=>g.uuid!==e||g.cacheFile!==i||g.protocol!==n)):this.toDelete.update(g=>[...g,{cacheFile:i,uuid:e,protocol:n,deviceId:o}])}isInList(e,i,n){return this.toDelete().some(o=>o.uuid===e&&o.cacheFile===i&&o.protocol===n)}removeAccessories(){return M(this,null,function*(){this.clicked.set(!0);let e=this.toDelete().filter(o=>o.protocol==="hap").map(o=>({uuid:o.uuid,cacheFile:o.cacheFile})),i=this.toDelete().filter(o=>o.protocol==="matter").map(o=>({uuid:o.uuid,deviceId:o.deviceId})),n=[];if(e.length>0&&n.push(this.$api.delete("/server/cached-accessories",{body:e})),this.isMatterSupported&&i.length>0&&n.push(this.$api.delete("/server/matter-accessories",{body:i})),n.length===0){this.clicked.set(!1);return}try{yield Promise.all(n),this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})}catch(o){this.clicked.set(!1),console.error(o),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return M(this,null,function*(){try{let e=this.isMatterSupported?[this.$api.get("/server/cached-accessories"),this.$api.get("/server/matter-accessories"),this.$api.get("/server/pairings")]:[this.$api.get("/server/cached-accessories"),this.$api.get("/server/pairings")],i=yield Promise.all(e),n=i[0],o=this.isMatterSupported?i[1]:[],g=this.isMatterSupported?i[2]:i[1],C=new Map(g.map(c=>[c._id,L(U({},c),{accessories:[]})]));n.sort((c,l)=>c.displayName.localeCompare(l.displayName)).forEach(c=>{let l=g.find(ae=>ae._main),A=c.$cacheFile?.split(".")?.[1]||l._id;(!this.selectedBridge||this.selectedBridge===A)&&(C.has(A)||C.set(A,{_id:A,_username:A.match(N).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),c.$protocol="hap",C.get(A).accessories.push(c))}),this.isMatterSupported&&o.sort((c,l)=>c.displayName.localeCompare(l.displayName)).forEach(c=>{let l=c.$deviceId;(!this.selectedBridge||this.selectedBridge===l)&&(C.has(l)||C.set(l,{_id:l,_username:l.match(N).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),c.$protocol="matter",c.$cacheFile=l,C.get(l).accessories.push(c))});let oe=[...C.values()].filter(c=>c.accessories.length>0).sort((c,l)=>c._main&&!l._main?-1:!c._main&&l._main?1:c.name.localeCompare(l.name));this.pairings.set(oe);let D=this.selectedBridge||this.pairings()[0]?._id;D&&(this.selectedBridge=D,this.currentSelectedBridge.set(D),this.accessoriesExist.set(!0),this.selectedBridgeAccessories.set(this.pairings().find(c=>c._id===D)?.accessories||[]))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(i){return new(i||t)};static \u0275cmp=P({type:t,selectors:[["app-remove-individual-accessories"]],decls:17,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-circle-check","primary-text","icon-xl"],[1,"mb-0","text-center"],[1,"fas","fa-network-wired","primary-text","icon-xl"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"list-group-item","text-center","grey-text","small"],["for","bridgeSelect",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["id","bridgeSelect",1,"custom-select",3,"ngModelChange","change","ngModel"],[3,"value"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],[1,"me-3"],[1,"fas","fa-lg"],[1,"flex-grow-1"],[1,"font-monospace","grey-text"],["type","button",1,"btn","btn-danger","m-0","ms-3",3,"click","disabled"],[1,"fas"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-circle-notch","fa-spin"]],template:function(i,n){i&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),d(3),p(4,"translate"),r(),a(5,"button",3),p(6,"translate"),y("click",function(){return n.dismissModal()}),r()(),a(7,"div",4),h(8,re,5,3)(9,pe,17,11),r(),a(10,"div",5)(11,"div",6),h(12,ue,3,4,"button",7),r(),a(13,"div",8),h(14,_e,3,3,"button",9),r(),a(15,"div",10),h(16,fe,3,2,"button",11),r()()()),i&2&&(s(3),v(u(4,7,"reset.accessory_ind.title")),s(2),w("disabled",n.clicked()),R("aria-label",u(6,9,"form.button_close")),s(3),f(n.accessoriesExist()?9:8),s(4),f(n.accessoriesExist()?12:-1),s(2),f(n.accessoriesExist()?-1:14),s(2),f(n.accessoriesExist()?16:-1))},dependencies:[ie,ee,te,Z,X,Y,G],encapsulation:2,changeDetection:0})}return t})();export{Re as a};