UNPKG

homebridge-config-ui-x

Version:

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

2 lines (1 loc) • 10.9 kB
import{c as se}from"./chunk-KZE2OTCD.js";import{t as ne}from"./chunk-SMGTZ45N.js";import{f as F}from"./chunk-NAG4LCT2.js";import{s as ie}from"./chunk-2QHNXSQY.js";import{C as te,e as Q,l as X,t as Y,u as Z,w as ee}from"./chunk-BQZ376DP.js";import{b as K}from"./chunk-RFCSHRPV.js";import{f as H}from"./chunk-3APJQTJL.js";import{$c as G,Ea as s,Kb as D,Mb as m,Nb as h,Ob as $,Pb as O,Ra as L,Tb as P,Ub as j,Vb as q,Yc as W,Zc as z,aa as v,ab as M,cb as f,db as x,dc as u,dd as J,ec as _,fa as C,fb as R,ga as b,gb as T,hb as U,ib as w,jb as a,kb as r,lb as S,qa as I,vb as B,xb as y,zb as p}from"./chunk-LTGI3NYM.js";import{a as V,b as N,h as k}from"./chunk-B4AJQJMI.js";function re(i,g){i&1&&(a(0,"div",12),S(1,"i",13),r(),a(2,"p",14),m(3),u(4,"translate"),r()),i&2&&(s(3),h(_(4,1,"reset.no_accessories")))}function ce(i,g){if(i&1&&(a(0,"option",24),m(1),r()),i&2){let e=g.$implicit;w("value",e._id),s(),O("",e.name," (",e._username,")")}}function le(i,g){if(i&1){let e=B();a(0,"li",20),m(1),u(2,"translate"),r(),a(3,"li",18)(4,"label",21),m(5),u(6,"translate"),r(),a(7,"div",22)(8,"select",23),q("ngModelChange",function(t){C(e);let o=p(2);return j(o.selectedBridge,t)||(o.selectedBridge=t),b(t)}),y("change",function(t){C(e);let o=p(2);return b(o.onBridgeChange(t))}),T(9,ce,2,3,"option",24,R),r()()()}if(i&2){let e=p(2);s(),h(_(2,3,"form.label.changes_kept")),s(4),h(_(6,5,"reset.accessory_ind.bridge")),s(3),P("ngModel",e.selectedBridge),s(),U(e.pairings())}}function de(i,g){if(i&1&&(a(0,"li",18)(1,"span",25),m(2),u(3,"translate"),r(),a(4,"div",26),m(5),r()()),i&2){let e=p(2);s(2),h(_(3,2,"reset.accessory_ind.bridge")),s(3),$(" ",e.getCurrentlySelectedBridge()," ")}}function me(i,g){if(i&1){let e=B();a(0,"li",27)(1,"span",28),S(2,"i",29),r(),a(3,"span",30),m(4),S(5,"br"),a(6,"small")(7,"span",31),m(8),r()()(),a(9,"button",32),u(10,"translate"),y("click",function(){let t=C(e).$implicit,o=p(2);return b(o.toggleList(t.UUID||t.uuid,t.$cacheFile,t.$protocol,t.$deviceId))}),S(11,"i",33),r()()}if(i&2){let e=g.$implicit,n=p(2);D("list-group-item-highlight",n.shouldHighlight(e.UUID||e.uuid,e.$cacheFile)),s(2),D("fa-matter",e.$protocol==="matter")("fa-hap",e.$protocol!=="matter"),s(2),$(" ",e.displayName," "),s(4),h(e.UUID||e.uuid),s(),D("btn-danger",!n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol))("btn-elegant",n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)),w("disabled",n.clicked()),M("aria-label",_(10,22,"form.button_delete")),s(2),D("fa-trash",!n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol))("fa-undo",n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&!n.clicked())("fa-circle-notch",n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&n.clicked())("fa-spin",n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&n.clicked())}}function pe(i,g){if(i&1&&(a(0,"div",12),S(1,"i",15),r(),a(2,"ul",16)(3,"li"),m(4),u(5,"translate"),r(),a(6,"li"),m(7),u(8,"translate"),r(),a(9,"li"),m(10),u(11,"translate"),r()(),a(12,"ul",17),f(13,le,11,7),f(14,de,6,4,"li",18),T(15,me,12,24,"li",19,R),r()),i&2){let e=p();s(4),h(_(5,5,"reset.accessory_ind.list_1")),s(3),h(_(8,7,"reset.accessory_ind.list_2")),s(3),h(_(11,9,"reset.accessory_ind.list_3")),s(3),x(e.pairings().length>1?13:-1),s(),x(e.pairings().length===1?14:-1),s(),U(e.selectedBridgeAccessories())}}function ue(i,g){if(i&1){let e=B();a(0,"button",34),y("click",function(){C(e);let t=p();return b(t.dismissModal())}),m(1),u(2,"translate"),r()}if(i&2){let e=p();w("disabled",e.clicked()),s(),$(" ",_(2,2,"form.button_close")," ")}}function _e(i,g){if(i&1){let e=B();a(0,"button",35),y("click",function(){C(e);let t=p();return b(t.dismissModal())}),m(1),u(2,"translate"),r()}i&2&&(s(),$(" ",_(2,1,"form.button_close")," "))}function ge(i,g){if(i&1&&m(0),i&2){let e=p(3);$(" (",e.toDelete().length,") ")}}function he(i,g){if(i&1&&(m(0),u(1,"translate"),f(2,ge,1,1)),i&2){let e=p(2);$(" ",_(1,2,"form.button_remove")," "),s(2),x(e.toDelete().length>0?2:-1)}}function ve(i,g){i&1&&S(0,"i",37)}function fe(i,g){if(i&1){let e=B();a(0,"button",36),y("click",function(){C(e);let t=p();return b(t.removeAccessories())}),f(1,he,3,4)(2,ve,1,0,"i",37),r()}if(i&2){let e=p();w("disabled",!e.toDelete().length||e.clicked()),s(),x(e.clicked()?2:1)}}var Te=(()=>{class i{$activeModal=v(ie);$accessoryOverview=v(se);$api=v(J);$router=v(H);$settings=v(K);$toastr=v(G);$translate=v(W);modalData=v(ne);selectedBridge=this.modalData.selectedBridge;highlightUuid=this.modalData.highlightUuid;highlightCacheFile=this.modalData.highlightCacheFile;pairings=I([]);clicked=I(!1);currentSelectedBridge=I("");selectedBridgeAccessories=I([]);accessoriesExist=I(!1);toDelete=I([]);isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");ngOnInit(){this.currentSelectedBridge.set(this.selectedBridge),this.loadCachedAccessories()}onBridgeChange(e){let n=e.target.value;this.currentSelectedBridge.set(n),this.selectedBridgeAccessories.set(this.pairings().find(t=>t._id===this.currentSelectedBridge())?.accessories||[])}getCurrentlySelectedBridge(){let e=this.pairings().find(n=>n._id===this.currentSelectedBridge());return e?`${e.name} - ${e._username}`:""}toggleList(e,n,t,o){this.toDelete().some(l=>l.uuid===e&&l.cacheFile===n&&l.protocol===t)?this.toDelete.set(this.toDelete().filter(l=>l.uuid!==e||l.cacheFile!==n||l.protocol!==t)):this.toDelete.update(l=>[...l,{cacheFile:n,uuid:e,protocol:t,deviceId:o}])}isInList(e,n,t){return this.toDelete().some(o=>o.uuid===e&&o.cacheFile===n&&o.protocol===t)}shouldHighlight(e,n){return!!this.highlightUuid&&this.selectedBridgeAccessories().length>1&&e===this.highlightUuid&&n===this.highlightCacheFile}removeAccessories(){return k(this,null,function*(){this.clicked.set(!0);let e=this.toDelete().filter(o=>o.protocol==="hap").map(o=>({uuid:o.uuid,cacheFile:o.cacheFile})),n=this.toDelete().filter(o=>o.protocol==="matter").map(o=>({uuid:o.uuid,deviceId:o.deviceId})),t=[];if(e.length>0&&t.push(this.$api.delete("/server/cached-accessories",{body:e})),this.isMatterSupported&&n.length>0&&t.push(this.$api.delete("/server/matter-accessories",{body:n})),t.length===0){this.clicked.set(!1);return}try{yield Promise.all(t),this.$accessoryOverview.invalidate(),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 k(this,null,function*(){try{let{hapAccessories:e,matterAccessories:n,pairings:t}=yield this.$accessoryOverview.get(),o=this.isMatterSupported?n:[],l=new Map(t.map(c=>[c._id,N(V({},c),{accessories:[]})]));e.sort((c,d)=>c.displayName.localeCompare(d.displayName)).forEach(c=>{let d=t.find(ae=>ae._main),A=c.$cacheFile?.split(".")?.[1]||d._id;(!this.selectedBridge||this.selectedBridge===A)&&(l.has(A)||l.set(A,{_id:A,_username:A.match(F).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),c.$protocol="hap",l.get(A).accessories.push(c))}),this.isMatterSupported&&o.sort((c,d)=>c.displayName.localeCompare(d.displayName)).forEach(c=>{let d=c.$deviceId;(!this.selectedBridge||this.selectedBridge===d)&&(l.has(d)||l.set(d,{_id:d,_username:d.match(F).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),c.$protocol="matter",c.$cacheFile=d,l.get(d).accessories.push(c))});let oe=[...l.values()].filter(c=>c.accessories.length>0).sort((c,d)=>c._main&&!d._main?-1:!c._main&&d._main?1:c.name.localeCompare(d.name));this.pairings.set(oe);let E=this.selectedBridge||this.pairings()[0]?._id;E&&(this.selectedBridge=E,this.currentSelectedBridge.set(E),this.accessoriesExist.set(!0),this.selectedBridgeAccessories.set(this.pairings().find(c=>c._id===E)?.accessories||[]),this.highlightUuid&&this.selectedBridgeAccessories().length>1&&setTimeout(()=>document.querySelector(".list-group-item-highlight")?.scrollIntoView({block:"center",behavior:"smooth"}),250))}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(n){return new(n||i)};static \u0275cmp=L({type:i,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",3,"list-group-item-highlight"],[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,"list-group-item","d-flex","justify-content-between","align-items-center"],[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(n,t){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),m(3),u(4,"translate"),r(),a(5,"button",3),u(6,"translate"),y("click",function(){return t.dismissModal()}),r()(),a(7,"div",4),f(8,re,5,3)(9,pe,17,11),r(),a(10,"div",5)(11,"div",6),f(12,ue,3,4,"button",7),r(),a(13,"div",8),f(14,_e,3,3,"button",9),r(),a(15,"div",10),f(16,fe,3,2,"button",11),r()()()),n&2&&(s(3),h(_(4,7,"reset.accessory_ind.title")),s(2),w("disabled",t.clicked()),M("aria-label",_(6,9,"form.button_close")),s(3),x(t.accessoriesExist()?9:8),s(4),x(t.accessoriesExist()?12:-1),s(2),x(t.accessoriesExist()?-1:14),s(2),x(t.accessoriesExist()?16:-1))},dependencies:[te,Z,ee,Y,Q,X,z],encapsulation:2,changeDetection:0})}return i})();export{Te as a};