homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
1 lines • 208 kB
JavaScript
import{a as ut}from"./chunk-TUN7H57E.js";import{a as ft}from"./chunk-LRDLQLG4.js";import{a as ht,b as St}from"./chunk-H3RDASOR.js";import{a as Ct}from"./chunk-KSBQEY44.js";import{c as se}from"./chunk-KZE2OTCD.js";import{a as bt}from"./chunk-LKHNMMNU.js";import{a as xt}from"./chunk-COWEDMDX.js";import{a as gt,b as _t,c as vt}from"./chunk-YEMALHZS.js";import{a as Vt}from"./chunk-M5NPMQ5Y.js";import{a as Ee}from"./chunk-XTCYYJPD.js";import{a as Ce,q as xe,r as Se,s as ye,t as mt}from"./chunk-SMGTZ45N.js";import{a as lt}from"./chunk-GAHGBZ7U.js";import{D as ct,E as pt,r as dt}from"./chunk-NAG4LCT2.js";import{a as Ie}from"./chunk-I45OAEDK.js";import{a as yt}from"./chunk-T7RKA523.js";import{s as U,t as he}from"./chunk-2QHNXSQY.js";import{a as Z}from"./chunk-VYTJCKZA.js";import{a as $}from"./chunk-IL6HHVES.js";import{c as qe}from"./chunk-LKBXKG4K.js";import{A as ot,B as rt,C as ue,D as ae,b as ce,c as pe,e as ne,f as Qe,i as Je,j as B,k as Ye,l as be,m as Xe,n as Ze,o as et,q as me,t as tt,u as it,w as nt,x as at,y as st}from"./chunk-BQZ376DP.js";import{b as q}from"./chunk-RFCSHRPV.js";import{f as J,g as Ke}from"./chunk-3APJQTJL.js";import{$b as X,$c as O,Aa as Pe,Cc as de,Ea as t,Ec as Ue,G as F,Gb as re,Ha as Fe,Hb as le,Jb as De,Kb as C,Lb as Re,Mb as d,Nb as m,Ob as f,Oc as We,Pc as je,Qa as ee,Ra as N,Tb as Ae,Ub as Ve,Vb as Ne,Yc as L,Zc as H,_b as He,aa as I,ab as u,ac as Le,cb as g,cd as Ge,da as fe,db as _,dc as s,dd as z,ea as Me,ec as r,fa as T,fb as j,fc as Q,ga as k,gb as K,hb as G,ib as E,jb as o,kb as l,la as oe,lb as c,lc as Oe,mb as S,nb as x,ob as D,qa as b,qc as ie,sc as ze,vb as P,wb as A,xb as M,yb as R,za as ve,zb as h}from"./chunk-LTGI3NYM.js";import{a as ge,b as _e,g as At,h as y}from"./chunk-B4AJQJMI.js";function Nt(n,p){if(n&1&&c(0,"i",26)(1,"i",27),n&2){let e=h();C("opacity-muted",e._matterOnly),t(),C("opacity-muted",!e._matter)}}function Ht(n,p){n&1&&c(0,"i",19)}function Lt(n,p){if(n&1){let e=P();o(0,"li",9)(1,"div",17)(2,"span",18),g(3,Nt,2,4)(4,Ht,1,0,"i",19),l(),o(5,"div"),d(6),c(7,"br"),o(8,"small",20),c(9,"i",21),s(10,"translate"),d(11," \xB7 "),o(12,"span",22),d(13),l(),d(14," \xB7 Homebridge "),l()()(),o(15,"div",23)(16,"input",24),s(17,"translate"),M("click",function(){let a=T(e),v=h();return k(v.toggleList(a._username))}),l(),c(18,"label",25),l()()}if(n&2){let e=p,i=h();t(3),_(i.isMatterSupported?3:4),t(3),f(" ",e.name),t(3),C("green-text",e._isPaired)("grey-text",!e._isPaired),E("ngbTooltip",r(10,12,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired"))("openDelay",150),t(4),m(e._username),t(3),E("checked",!i.isInList(e._username))("disabled",i.clicked()),u("aria-label",r(17,14,"plugins.manage.hide_updates"))}}function Ot(n,p){if(n&1&&c(0,"i",26)(1,"i",27),n&2){let e=h().$implicit;C("opacity-muted",e._matterOnly),t(),C("opacity-muted",!e._matter)}}function zt(n,p){n&1&&c(0,"i",19)}function Ut(n,p){if(n&1){let e=P();o(0,"li",9)(1,"div",17)(2,"span",18),g(3,Ot,2,4)(4,zt,1,0,"i",19),l(),o(5,"div"),d(6),c(7,"br"),o(8,"small",20),c(9,"i",21),s(10,"translate"),d(11," \xB7 "),o(12,"span",22),d(13),l(),d(14),s(15,"titlecase"),l()()(),o(16,"div",23)(17,"input",28),s(18,"translate"),M("click",function(){let a=T(e).$implicit,v=h();return k(v.toggleList(a._username))}),l(),c(19,"label",29),l()()}if(n&2){let e=p.$implicit,i=h();t(3),_(i.isMatterSupported?3:4),t(3),f(" ",e.name," "),t(3),C("green-text",e._isPaired)("grey-text",!e._isPaired),E("ngbTooltip",r(10,15,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired"))("openDelay",150),t(4),m(e._username),t(),f(" \xB7 ",r(15,17,e._category)," "),t(3),E("id",`hidePluginUpdates_${e._username}`)("checked",!i.isInList(e._username))("disabled",i.clicked()),u("aria-label",`${r(18,19,"form.button_allow")} ${e.name}`),t(2),E("for",`hidePluginUpdates_${e._username}`)}}function Wt(n,p){n&1&&(d(0),s(1,"translate")),n&2&&f(" ",r(1,1,"form.button_save")," ")}function jt(n,p){n&1&&c(0,"i",16)}var Et=(()=>{class n{$activeModal=I(U);$accessoryOverview=I(se);$api=I(z);$errors=I(Z);$settings=I(q);$toastr=I(O);$translate=I(L);modalData=I(Se);clicked=b(!1);mainPairing=b(void 0);pairings=b([]);isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");originalBlacklist=[];updatedBlacklist=[];get blacklistHasUpdated(){return this.updatedBlacklist.join(",")!==this.originalBlacklist.join(",")}ngOnInit(){this.initialize()}initialize(){return y(this,null,function*(){this.updatedBlacklist=this.modalData.existingBlacklist.map(e=>e.trim().toUpperCase()).sort((e,i)=>e.localeCompare(i)),this.originalBlacklist=[...this.updatedBlacklist];try{let{pairings:e}=yield this.$accessoryOverview.get();this.mainPairing.set(e.find(i=>i._main)),this.pairings.set(e.filter(i=>!i._main).sort((i,a)=>i.name.localeCompare(a.name)))}catch(e){console.error(e),this.$toastr.error(this.$errors.toToastMessage(e),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}toggleList(e){this.updatedBlacklist.includes(e)?this.updatedBlacklist=this.updatedBlacklist.filter(i=>i!==e):(this.updatedBlacklist.push(e),this.updatedBlacklist.sort((i,a)=>i.localeCompare(a)))}isInList(e){return this.updatedBlacklist.includes(e)}updateBlacklist(){return y(this,null,function*(){this.clicked.set(!0);try{yield this.$api.put("/config-editor/ui/accessory-control/instance-blacklist",{body:this.updatedBlacklist}),this.$settings.setEnvItem("accessoryControl.instanceBlacklist",this.updatedBlacklist),this.$activeModal.close()}catch(e){this.clicked.set(!1),console.error(e),this.$toastr.error(this.$errors.toToastMessage(e),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=N({type:n,selectors:[["app-accessory-control-lists"]],decls:31,vars:20,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,"text-center","mb-3"],[1,"fas","fa-list-check","primary-text","icon-xl"],[1,"mb-3"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fas","fa-circle-notch","fa-spin"],[1,"d-flex","align-items-center","text-start","flex-grow-1","me-3"],[1,"me-3"],[1,"fas","fa-lg","fa-hap"],[1,"grey-text"],["container","body","triggers","hover","placement","left",1,"fas","fa-link",3,"ngbTooltip","openDelay"],[1,"font-monospace"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","id","controlMainBridge",1,"rendux-input",3,"click","checked","disabled"],["for","controlMainBridge",1,"rendux-label","ms-3"],[1,"fas","fa-lg","fa-hap","me-2"],[1,"fas","fa-lg","fa-matter"],["type","checkbox",1,"rendux-input",3,"click","id","checked","disabled"],[1,"rendux-label","ms-3",3,"for"]],template:function(i,a){if(i&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),d(3),s(4,"translate"),l(),o(5,"button",3),s(6,"translate"),M("click",function(){return a.dismissModal()}),l()(),o(7,"div",4)(8,"div",5),c(9,"i",6),l(),o(10,"ul",7)(11,"li"),d(12),s(13,"translate"),l(),o(14,"li"),d(15),s(16,"translate"),l()(),o(17,"ul",8),g(18,Lt,19,16,"li",9),K(19,Ut,20,21,"li",9,j),l()(),o(21,"div",10)(22,"div",11)(23,"button",12),M("click",function(){return a.dismissModal()}),d(24),s(25,"translate"),l()(),c(26,"div",13),o(27,"div",14)(28,"button",15),M("click",function(){return a.updateBlacklist()}),g(29,Wt,2,3)(30,jt,1,0,"i",16),l()()()()),i&2){let v;t(3),m(r(4,10,"settings.security.ui_control")),t(2),E("disabled",a.clicked()),u("aria-label",r(6,12,"form.button_close")),t(7),m(r(13,14,"settings.security.ui_control_desc")),t(3),m(r(16,16,"settings.security.ui_control_desc_2")),t(3),_((v=a.mainPairing())?18:-1,v),t(),G(a.pairings()),t(4),E("disabled",a.clicked()),t(),f(" ",r(25,18,"form.button_close")," "),t(4),E("disabled",!a.blacklistHasUpdated||a.clicked()),t(),_(a.clicked()?30:29)}},dependencies:[ue,Ie,H,de],encapsulation:2,changeDetection:0})}return n})();var wt=At(Vt(),1);var Kt=n=>({maxBackupSizeText:n});function Gt(n,p){if(n&1&&D(0,"input",10),n&2){let e=h(2);A("value",e.selectedBackup.fileName)}}function qt(n,p){if(n&1){let e=P();S(0,"input",12),R("change",function(a){T(e);let v=h(2);return k(v.handleRestoreFileInput(a))}),x()}}function Qt(n,p){if(n&1&&(S(0,"div",4)(1,"div",7),D(2,"i",8),x(),S(3,"ul",9)(4,"li"),d(5),s(6,"translate"),x(),S(7,"li"),d(8),s(9,"translate"),x(),S(10,"li"),d(11),s(12,"translate"),x(),S(13,"li"),d(14),s(15,"translate"),x()(),g(16,Gt,1,1,"input",10)(17,qt,1,0,"input",11),x()),n&2){let e=h();t(5),m(r(6,5,"backup.restore_help_one")),t(3),m(r(9,7,"backup.restore_help_two")),t(3),m(Q(12,9,"backup.restore_max_size",X(14,Kt,e.maxFileSizeText))),t(3),m(r(15,12,"backup.restore_warning")),t(2),_(e.selectedBackup?16:17)}}function Jt(n,p){if(n&1){let e=P();S(0,"button",18),s(1,"translate"),R("click",function(){T(e);let a=h(2);return k(a.dismissModal())}),d(2),s(3,"translate"),x()}if(n&2){let e=h(2);A("disabled",e.clicked()),u("aria-label",r(1,3,"form.button_close")),t(2),f(" ",r(3,5,"form.button_close")," ")}}function Yt(n,p){if(n&1){let e=P();S(0,"button",18),s(1,"translate"),R("click",function(){T(e);let a=h(2);return k(a.reopenBackupModal())}),d(2),s(3,"translate"),x()}if(n&2){let e=h(2);A("disabled",e.clicked()),u("aria-label",r(1,3,"form.button_back")),t(2),f(" ",r(3,5,"form.button_back")," ")}}function Xt(n,p){n&1&&D(0,"i",19)}function Zt(n,p){if(n&1&&(S(0,"span"),d(1),x()),n&2){let e=h(3);t(),f("",e.uploadPercent(),"% - ")}}function ei(n,p){n&1&&(S(0,"span"),d(1),s(2,"translate"),x()),n&2&&(t(),m(r(2,1,"backup.label_extracting")))}function ti(n,p){n&1&&(S(0,"span"),d(1),s(2,"translate"),x()),n&2&&(t(),m(r(2,1,"backup.label_uploading")))}function ii(n,p){if(n&1&&(S(0,"span"),g(1,Xt,1,0,"i",19),g(2,Zt,2,1,"span"),g(3,ei,3,3,"span")(4,ti,3,3,"span"),x()),n&2){let e=h(2);t(),_(!e.uploadPercent()||e.uploadPercent()===100?1:-1),t(),_(e.uploadPercent()&&e.uploadPercent()!==100?2:-1),t(),_(e.uploadPercent()===100?3:4)}}function ni(n,p){n&1&&(d(0),s(1,"translate")),n&2&&f(" ",r(1,1,"form.button_restore")," ")}function ai(n,p){if(n&1){let e=P();S(0,"div",6)(1,"div",13),g(2,Jt,4,7,"button",14)(3,Yt,4,7,"button",14),x(),D(4,"div",15),S(5,"div",16)(6,"button",17),R("click",function(){T(e);let a=h();return k(a.onRestoreBackupClick())}),g(7,ii,5,3,"span")(8,ni,2,3),x()()()}if(n&2){let e=h();t(2),_(e.setupWizardRestore?2:3),t(4),A("disabled",!e.selectedBackup&&!e.selectedFile()||e.clicked()),t(),_(e.clicked()?7:8)}}function si(n,p){if(n&1){let e=P();S(0,"div",6),D(1,"div",13),S(2,"div",15)(3,"button",20),R("click",function(){T(e);let a=h();return k(a.postBackupRestart())}),d(4),s(5,"translate"),x()(),D(6,"div",16),x()}n&2&&(t(4),f(" ",r(5,1,"menu.hbrestart.title")," "))}var It=(()=>{class n{$activeModal=I(U);$api=I(z);$modal=I(he);$router=I(J);$settings=I(q);$toastr=I(O);$translate=I(L);$ws=I(lt);modalData=I(ye);setupWizardRestore=this.modalData.setupWizardRestore??!1;selectedBackup=this.modalData.selectedBackup??null;clicked=b(!1);selectedFile=b(null);restoreInProgress=b(!1);restoreStarted=b(!1);restoreFailed=b(!1);restoreArchiveType=b("homebridge");uploadPercent=b(0);io;term;termTarget;fitAddon=new gt;webLinksAddon=new _t;xtermA11yDisposer=null;maxFileSizeText=globalThis.backup.maxBackupSizeText;get isLightTerminalTheme(){return this.$settings.getEffectiveTerminalLightingMode()==="light"}ngOnInit(){this.initialize()}initialize(){return y(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term=new vt(this.$settings.getTerminalOptions({disableStdin:!0})),this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon),this.term.open(this.termTarget),this.xtermA11yDisposer=xt(this.termTarget),setTimeout(()=>this.fitAddon.fit(),0),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted.set(!0),this.restoreInProgress.set(!0),this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType()==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType()==="hbfx"&&this.uploadHbfxArchive()}handleRestoreFileInput(e){let i=e.target.files;i?.length?(this.selectedFile.set(i[0]),this.selectedFile()?.name.endsWith(".hbfx")?this.restoreArchiveType.set("hbfx"):this.restoreArchiveType.set("homebridge")):this.selectedFile.set(null)}postBackupRestart(){return y(this,null,function*(){try{yield this.$api.put("/backup/restart",{}),this.$activeModal.close(!0),this.$router.navigate(["/"])}catch(e){}})}reopenBackupModal(){this.$activeModal.dismiss(),this.$modal.open(we,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.io.end(),this.xtermA11yDisposer?.(),this.term?.dispose()}dismissModal(){this.$activeModal.dismiss("Dismiss")}uploadHomebridgeArchive(){return y(this,null,function*(){this.term.reset(),this.clicked.set(!0);let e=new FormData;e.append("restoreArchive",this.selectedFile(),this.selectedFile()?.name);try{yield this.$api.post("/backup/restore",e),this.restoreStarted.set(!0),this.restoreInProgress.set(!0),setTimeout(()=>{this.startRestore()},500)}catch(i){console.error(i),this.$toastr.error(i.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}finally{this.clicked.set(!1)}})}restoreScheduledBackup(){return y(this,null,function*(){this.term.reset(),this.clicked.set(!0);try{yield this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}),this.restoreStarted.set(!0),this.restoreInProgress.set(!0),setTimeout(()=>{this.startRestore()},500)}catch(e){console.error(e),this.$toastr.error(e.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}finally{this.clicked.set(!1)}})}startRestore(){return y(this,null,function*(){this.io.request("do-restore").subscribe({next:()=>{this.restoreInProgress.set(!1),this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success")),this.setupWizardRestore&&this.postBackupRestart()},error:e=>{this.restoreFailed.set(!0),console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){return y(this,null,function*(){this.term.reset(),this.clicked.set(!0);let e=new FormData;e.append("restoreArchive",this.selectedFile(),this.selectedFile()?.name);try{let i=yield this.$api.post("/backup/restore/hbfx",e,{reportProgress:!0,observe:"events"});i.type===We.UploadProgress?this.uploadPercent.set(Math.round(100*i.loaded/i.total)):i instanceof je&&(this.restoreStarted.set(!0),this.restoreInProgress.set(!0),setTimeout(()=>{this.startHbfxRestore()},500))}catch(i){console.error(i),this.$toastr.error(i.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}finally{this.clicked.set(!1)}})}startHbfxRestore(){return y(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress.set(!1),this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed.set(!0),console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=N({type:n,selectors:[["app-restore"]],decls:11,vars:17,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"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-footer","justify-content-between"],[1,"text-center","mb-3"],[1,"fas","fa-hard-drive","primary-text","icon-xl"],[1,"mb-3"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"form-control"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"form-control",3,"change"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"fas","fa-circle-notch","fa-spin"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(i,a){i&1&&(S(0,"div",0)(1,"div",1)(2,"h5",2),d(3),s(4,"translate"),x(),S(5,"button",3),s(6,"translate"),R("click",function(){return a.dismissModal()}),x()(),g(7,Qt,18,16,"div",4),D(8,"div",5),g(9,ai,9,3,"div",6),g(10,si,7,3,"div",6),x()),i&2&&(C("terminal-light-theme",a.isLightTerminalTheme),t(3),m(r(4,13,"backup.title_backup")),t(2),A("disabled",a.restoreInProgress()),u("aria-label",r(6,15,"form.button_close")),t(2),_(!a.restoreStarted()&&!a.setupWizardRestore?7:-1),t(),C("terminal-light-bg",a.isLightTerminalTheme)("terminal-dark-bg",!a.isLightTerminalTheme),A("hidden",!a.restoreStarted()),t(),_(!a.restoreStarted()||a.restoreFailed()===!0?9:-1),t(),_(!a.restoreInProgress()&&a.restoreStarted()?10:-1))},dependencies:[H],encapsulation:2,changeDetection:0})}return n})();var oi=n=>({backupTime:n,dayCount:7}),ri=(n,p)=>({backupSize:n,maxBackupSizeText:p});function li(n,p){if(n&1&&(d(0),s(1,"date"),s(2,"translate")),n&2){let e=h(2);f(" ",Q(2,4,"backup.scheduled_backup_time",X(7,oi,Q(1,1,e.backupTime(),"shortTime")))," ")}}function di(n,p){n&1&&(d(0),s(1,"translate")),n&2&&f(" ",r(1,1,"plugins.settings.restart_required")," ")}function ci(n,p){if(n&1&&g(0,li,3,9)(1,di,2,3),n&2){let e=h();_(e.backupTime()?0:1)}}function pi(n,p){if(n&1&&(d(0),s(1,"translate")),n&2){let e=h();f(" ",r(1,1,e.backupTime()?"plugins.settings.restart_required":"backup.scheduled_backup_disabled")," ")}}function mi(n,p){if(n&1&&(o(0,"span",33),s(1,"translate"),c(2,"i",40),d(3),l()),n&2){let e=h().$implicit,i=h(2);E("ngbTooltip",Q(1,3,"backup.backup_exceeds_max_size",Le(6,ri,`${e.size}MB`,i.maxBackupSizeText)))("openDelay",150),t(3),f(" ",e.size,"MB ")}}function ui(n,p){if(n&1&&(o(0,"span"),d(1),l()),n&2){let e=h().$implicit;t(),f("",e.size,"MB")}}function hi(n,p){if(n&1){let e=P();o(0,"li",22)(1,"span")(2,"span",32),d(3),s(4,"date"),l(),c(5,"br"),o(6,"small",23),d(7),s(8,"date"),g(9,mi,4,9,"span",33)(10,ui,2,1,"span"),l()(),o(11,"span",34),s(12,"translate"),o(13,"button",35),s(14,"translate"),s(15,"translate"),M("click",function(){let a=T(e).$implicit,v=h(2);return k(v.restore(a))}),c(16,"i",36),l(),o(17,"button",37),s(18,"translate"),s(19,"translate"),M("click",function(){let a=T(e).$implicit,v=h(2);return k(v.download(a))}),c(20,"i",38),l(),o(21,"button",39),s(22,"translate"),s(23,"translate"),M("click",function(){let a=T(e).$implicit,v=h(2);return k(v.delete(a))}),c(24,"i",25),l()()()}if(n&2){let e=p.$implicit,i=h(2);t(2),E("ngbTooltip",e.fileName)("openDelay",150),t(),f(" ",Q(4,24,e.timestamp,"mediumDate")," "),t(4),f(" ",Q(8,27,e.timestamp,"shortTime")," \xB7 "),t(2),_(e.size>i.maxBackupSize?9:10),t(2),u("aria-label",r(12,30,"backup.aria_actions")),t(2),E("disabled",i.clicked()||i.deleting()||e.size>i.maxBackupSize)("ngbTooltip",r(14,32,"form.button_restore"))("openDelay",150),u("aria-label",r(15,34,"form.button_restore")),t(4),E("disabled",i.clicked()||i.deleting())("ngbTooltip",r(18,36,"form.button_download"))("openDelay",150),u("aria-label",r(19,38,"form.button_download")),t(4),E("disabled",i.clicked()||i.deleting())("ngbTooltip",r(22,40,"form.button_delete"))("openDelay",150),u("aria-label",r(23,42,"form.button_delete")),t(3),C("fa-trash",e.id!==i.deleting())("fa-circle-notch",e.id===i.deleting())("fa-spin",e.id===i.deleting())}}function gi(n,p){if(n&1&&(o(0,"ul",27)(1,"li",9)(2,"h6",10),d(3),s(4,"translate"),l()(),K(5,hi,25,44,"li",22,j),l()),n&2){let e=h();t(3),m(r(4,1,"backup.files_auto")),t(2),G(e.scheduledBackups())}}var we=(()=>{class n{destroyRef=I(oe);$activeModal=I(U);$api=I(z);$backup=I(St);$errors=I(Z);$modal=I(he);$settings=I(q);$toastr=I(O);$translate=I(L);injector=I(fe);clicked=b(!1);scheduledBackups=b([]);backupTime=b("");deleting=b(null);currentSettingEnabled=b(!1);currentSettingPath=b("");enabledFormControl=new B(!1);pathFormControl=new B("");maxBackupSize=globalThis.backup.maxBackupSize;maxBackupSizeText=globalThis.backup.maxBackupSizeText;ngOnInit(){this.getScheduledBackups(),this.getNextBackup(),this.currentSettingEnabled.set(!this.$settings.env.scheduledBackupDisable),this.currentSettingPath.set(this.$settings.env.scheduledBackupPath),this.enabledFormControl.patchValue(this.currentSettingEnabled()),this.pathFormControl.patchValue(this.currentSettingPath()),this.enabledFormControl.valueChanges.pipe(F(500),$(this.destroyRef)).subscribe(e=>y(this,null,function*(){this.currentSettingEnabled.set(e??!1),yield this.saveUiSettingChange("scheduledBackupDisable",!this.currentSettingEnabled())})),this.pathFormControl.valueChanges.pipe(F(1500),$(this.destroyRef)).subscribe(e=>y(this,null,function*(){this.currentSettingPath.set(e??""),yield this.saveUiSettingChange("scheduledBackupPath",this.currentSettingPath())}))}download(e){return y(this,null,function*(){try{let i=yield this.$api.get(`/backup/scheduled-backups/${e.id}`,{observe:"response",responseType:"blob"}),a=e.fileName||"homebridge-backup.tar.gz",v=i.body.size;if(v>this.maxBackupSize){let V=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:this.maxBackupSizeText,size:`${(v/1048576).toFixed(1)}MB`});this.$toastr.warning(V,this.$translate.instant("toast.title_warning"))}(0,wt.saveAs)(i.body,a)}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})}restore(e){this.$activeModal.close();let i=ee([{provide:ye,useValue:{selectedBackup:e}}],this.injector);this.$modal.open(It,{size:"lg",backdrop:"static",injector:i})}delete(e){return y(this,null,function*(){this.deleting.set(e.id);try{yield this.$api.delete(`/backup/scheduled-backups/${e.id}`),this.getScheduledBackups()}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("backup.backup_delete_failed"),this.$translate.instant("toast.title_error"))}finally{this.deleting.set(null)}})}onDownloadBackupClick(){return y(this,null,function*(){this.clicked.set(!0);try{yield this.$backup.downloadBackup(),this.clicked.set(!1)}catch(e){this.clicked.set(!1),console.error(e),this.$toastr.error(this.$errors.toToastMessage(e),this.$translate.instant("toast.title_error"))}})}onCreateBackupClick(){return y(this,null,function*(){this.clicked.set(!0);try{yield this.$api.post("/backup",{}),this.getScheduledBackups()}catch(e){console.error(e),this.$toastr.error(this.$errors.toToastMessage(e),this.$translate.instant("toast.title_error"))}finally{this.clicked.set(!1)}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}saveUiSettingChange(e,i){return y(this,null,function*(){try{yield this.$api.patch("/config-editor/ui",{[e]:i}),this.$settings.setEnvItem(e,i),this.$settings.showRestartToast()}catch(a){console.error(a),this.$toastr.error(this.$errors.toToastMessage(a),this.$translate.instant("toast.title_error"))}})}getScheduledBackups(){return y(this,null,function*(){try{let e=yield this.$api.get("/backup/scheduled-backups");this.scheduledBackups.set(e)}catch(e){console.error(e)}})}getNextBackup(){return y(this,null,function*(){try{let e=yield this.$api.get("/backup/scheduled-backups/next");this.backupTime.set(e.next)}catch(e){console.error(e)}})}Date=Date;static \u0275fac=function(i){return new(i||n)};static \u0275cmp=N({type:n,selectors:[["app-backup"]],decls:92,vars:84,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,"text-center","mb-3"],["aria-hidden","true",1,"fas","fa-hard-drive","primary-text","icon-xl"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item"],[1,"mb-0","text-center"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"grey-text","small"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","/home/pi/homebridge-backups",1,"form-control","custom-input","font-monospace",3,"formControl"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"small","grey-text"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","id","disableScheduledBackups",1,"rendux-input",3,"formControl"],["for","disableScheduledBackups","aria-hidden","true",1,"rendux-label"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],["type","button",1,"btn","btn-primary","m-0","ms-3","py-1",3,"click","disabled"],["aria-hidden","true",1,"fas"],["aria-hidden","true",1,"fas","fa-arrow-right"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],["container","modal","triggers","hover",3,"ngbTooltip","openDelay"],["container","modal","triggers","hover",1,"red-text",3,"ngbTooltip","openDelay"],["role","group",1,"d-flex","flex-nowrap"],["type","button","placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3","py-1",3,"click","disabled","ngbTooltip","openDelay"],["aria-hidden","true",1,"fas","fa-history"],["type","button","placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],["aria-hidden","true",1,"fas","fa-download"],["type","button","placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],["aria-hidden","true",1,"fas","fa-exclamation-circle"]],template:function(i,a){i&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),d(3),s(4,"translate"),l(),o(5,"button",3),s(6,"translate"),M("click",function(){return a.dismissModal()}),l()(),o(7,"div",4)(8,"div",5),c(9,"i",6),l(),o(10,"ul",7)(11,"li"),d(12),s(13,"translate"),l(),o(14,"li"),d(15),s(16,"translate"),l(),o(17,"li"),d(18),s(19,"translate"),l()(),o(20,"ul",8)(21,"li",9)(22,"h6",10),d(23),s(24,"translate"),l()(),o(25,"li",11)(26,"div",12),d(27),s(28,"translate"),c(29,"br"),o(30,"span",13),d(31),s(32,"translate"),l()(),o(33,"div",14),c(34,"input",15),s(35,"translate"),l()(),o(36,"li",16)(37,"div",17),d(38),s(39,"translate"),c(40,"br"),o(41,"span",18),g(42,ci,2,1)(43,pi,2,3),l()(),o(44,"div",19),c(45,"input",20),s(46,"translate"),c(47,"label",21),l()(),o(48,"li",22)(49,"div")(50,"span"),d(51),s(52,"translate"),l(),c(53,"br"),o(54,"small",23),d(55),s(56,"translate"),l()(),o(57,"button",24),s(58,"translate"),M("click",function(){return a.onDownloadBackupClick()}),c(59,"i",25),l()(),o(60,"li",22)(61,"div")(62,"span"),d(63),s(64,"translate"),l(),c(65,"br"),o(66,"small",23),d(67),s(68,"translate"),l()(),o(69,"button",24),s(70,"translate"),M("click",function(){return a.onCreateBackupClick()}),c(71,"i",25),l()(),o(72,"li",22)(73,"div")(74,"span"),d(75),s(76,"translate"),l(),c(77,"br"),o(78,"small",23),d(79),s(80,"translate"),l()(),o(81,"button",24),s(82,"translate"),M("click",function(){return a.restore(null)}),c(83,"i",26),l()()(),g(84,gi,7,3,"ul",27),l(),o(85,"div",28),c(86,"div",17),o(87,"div",29)(88,"button",30),M("click",function(){return a.dismissModal()}),d(89),s(90,"translate"),l()(),c(91,"div",31),l()()),i&2&&(t(3),m(r(4,42,"backup.title_backup")),t(2),E("disabled",a.clicked()||a.deleting()),u("aria-label",r(6,44,"form.button_close")),t(7),m(r(13,46,"backup.backup_help_one")),t(3),m(r(16,48,"backup.backup_help_two")),t(3),m(r(19,50,"backup.backup_warning")),t(5),m(r(24,52,"backup.settings_title")),t(4),f(" ",r(28,54,"backup.settings_path")),t(4),m(r(32,56,"backup.settings_path_desc")),t(3),E("formControl",a.pathFormControl),u("aria-label",r(35,58,"backup.settings_path")),t(4),f(" ",r(39,60,"backup.settings_enable")),t(4),_(a.enabledFormControl.value?42:43),t(3),E("formControl",a.enabledFormControl),u("aria-label",r(46,62,"backup.settings_enable")),t(6),m(r(52,64,"backup.backup_now")),t(4),m(r(56,66,"backup.backup_now_desc")),t(2),E("disabled",a.clicked()),u("aria-label",r(58,68,"form.button_download")),t(2),C("fa-arrow-right",!a.clicked())("fa-circle-notch",a.clicked())("fa-spin",a.clicked()),t(4),m(r(64,70,"backup.backup_now")),t(4),m(r(68,72,"backup.backup_now_save_desc")),t(2),E("disabled",a.clicked()),u("aria-label",r(70,74,"backup.backup_now")),t(2),C("fa-arrow-right",!a.clicked())("fa-circle-notch",a.clicked())("fa-spin",a.clicked()),t(4),m(r(76,76,"backup.restore_now")),t(4),m(r(80,78,"backup.restore_now_desc")),t(2),E("disabled",a.clicked()),u("aria-label",r(82,80,"backup.restore_now")),t(3),_(a.scheduledBackups().length?84:-1),t(4),E("disabled",a.clicked()||a.deleting()),t(),f(" ",r(90,82,"form.button_close")," "))},dependencies:[Ie,ae,pe,ce,ne,me,Ue,H],encapsulation:2,changeDetection:0})}return n})();function _i(n,p){n&1&&(S(0,"div",5),D(1,"i",8),x())}function vi(n,p){n&1&&(S(0,"div",9),D(1,"i",11),d(2),s(3,"translate"),x()),n&2&&(t(2),f(" ",r(3,1,"settings.ports.conflict_warning")," "))}function fi(n,p){n&1&&D(0,"i",18)}function bi(n,p){n&1&&D(0,"i",19)}function Ci(n,p){n&1&&D(0,"i",18)}function xi(n,p){n&1&&D(0,"i",19)}function Si(n,p){if(n&1&&g(0,Ci,1,0,"i",18)(1,xi,1,0,"i",19),n&2){let e=h().$implicit;_(e.commissioned?0:1)}}function yi(n,p){n&1&&(S(0,"span",21),d(1,"\u2014"),x())}function Ei(n,p){if(n&1&&(S(0,"ul",12)(1,"li",13)(2,"h6",14),d(3),x()(),S(4,"li",15)(5,"span",16),d(6),s(7,"translate"),x(),S(8,"span",17),g(9,fi,1,0,"i",18)(10,bi,1,0,"i",19),x()(),S(11,"li",15)(12,"span",16),d(13),s(14,"translate"),x(),S(15,"span",20),d(16),x()(),S(17,"li",15)(18,"span",16),d(19),s(20,"translate"),x(),S(21,"span",20),d(22),x()(),S(23,"li",15)(24,"span",16),d(25),s(26,"translate"),x(),S(27,"span",17),g(28,Si,2,1)(29,yi,2,0,"span",21),x()()()),n&2){let e=p.$implicit,i=p.$index,a=p.$count,v=h(2);C("mb-3",i!==a-1)("mb-0",i===a-1),t(3),m(v.displayName(e)),t(3),m(r(7,13,"settings.ports.status")),t(3),_(e.status==="ok"?9:10),t(4),m(r(14,15,"settings.ports.hap_port")),t(3),m(e.port),t(3),m(r(20,17,"settings.ports.matter_port")),t(3),m(e.matterPort??"\u2014"),t(3),m(r(26,19,"settings.ports.commissioned")),t(3),_(e.matterPort?28:29)}}function Ii(n,p){if(n&1&&(g(0,vi,4,3,"div",9),K(1,Ei,30,21,"ul",10,j)),n&2){let e=h();_(e.conflicts().length?0:-1),t(),G(e.entries())}}var Tt=(()=>{class n{$activeModal=I(U);$api=I(z);$errors=I(Z);$toastr=I(O);$translate=I(L);loading=b(!0);entries=b([]);conflicts=b([]);ngOnInit(){this.loadData()}loadData(){return y(this,null,function*(){try{let e=yield this.$api.get("/server/network/overview");this.entries.set(this.sortEntries(e.entries)),this.conflicts.set(e.conflicts)}catch(e){console.error(e),this.$toastr.error(this.$errors.toToastMessage(e),this.$translate.instant("toast.title_error"))}finally{this.loading.set(!1)}})}displayName(e){return e.service==="Config UI"?"Homebridge UI":e.bridge}sortEntries(e){return e.sort((i,a)=>i.service==="Homebridge"?-1:a.service==="Homebridge"?1:i.service==="Config UI"?-1:a.service==="Config UI"?1:i.bridge.localeCompare(a.bridge))}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=N({type:n,selectors:[["app-port-overview-modal"]],decls:14,vars:10,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","py-4"],[1,"modal-footer","justify-content-center"],["type","button",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-spinner","fa-spin","fa-2x","primary-text"],[1,"alert","alert-warning","small","py-2","px-3","mb-3"],[1,"list-group","list-group-box",3,"mb-3","mb-0"],[1,"fas","fa-exclamation-triangle","me-1"],[1,"list-group","list-group-box"],[1,"list-group-item"],[1,"mb-0","text-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-column","flex-md-row"],[1,"text-start"],[1,"text-start","text-md-end","grey-text"],["aria-hidden","true",1,"fas","fa-xl","fa-check-circle","primary-text"],["aria-hidden","true",1,"fas","fa-xl","fa-times-circle","red-text"],[1,"text-start","text-md-end","grey-text","font-monospace"],[1,"font-monospace"]],template:function(i,a){i&1&&(S(0,"div",0)(1,"div",1)(2,"h5",2),d(3),s(4,"translate"),x(),S(5,"button",3),s(6,"translate"),R("click",function(){return a.dismissModal()}),x()(),S(7,"div",4),g(8,_i,2,0,"div",5)(9,Ii,3,1),x(),S(10,"div",6)(11,"button",7),R("click",function(){return a.dismissModal()}),d(12),s(13,"translate"),x()()()),i&2&&(t(3),m(r(4,4,"settings.ports.title")),t(2),u("aria-label",r(6,6,"form.button_close")),t(3),_(a.loading()?8:9),t(4),f(" ",r(13,8,"form.button_close")," "))},dependencies:[H],encapsulation:2,changeDetection:0})}return n})();function wi(n,p){n&1&&(o(0,"div",12),c(1,"i",13),l(),o(2,"p",14),d(3),s(4,"translate"),l()),n&2&&(t(3),m(r(4,1,"reset.no_accessories")))}function Ti(n,p){n&1&&(o(0,"div",12),c(1,"i",15),l(),o(2,"ul",16)(3,"li"),d(4),s(5,"translate"),l(),o(6,"li"),d(7),s(8,"translate"),l(),o(9,"li"),d(10),s(11,"translate"),l()(),o(12,"ngb-alert",17)(13,"p",18),d(14),s(15,"translate"),l()()),n&2&&(t(4),m(r(5,5,"reset.accessory_all.list_1")),t(3),m(r(8,7,"reset.accessory_all.list_2")),t(3),m(r(11,9,"reset.accessory_all.list_3")),t(2),E("dismissible",!1),t(2),m(r(15,11,"reset.action_is_irreversible")))}function ki(n,p){if(n&1){let e=P();o(0,"button",19),s(1,"translate"),M("click",function(){T(e);let a=h();return k(a.dismissModal())}),d(2),s(3,"translate"),l()}if(n&2){let e=h();E("disabled",e.clicked()),u("aria-label",r(1,3,"form.button_close")),t(2),f(" ",r(3,5,"form.button_close")," ")}}function $i(n,p){if(n&1){let e=P();o(0,"button",20),s(1,"translate"),M("click",function(){T(e);let a=h();return k(a.dismissModal())}),d(2),s(3,"translate"),l()}n&2&&(u("aria-label",r(1,2,"form.button_close")),t(2),f(" ",r(3,4,"form.button_close")," "))}function Bi(n,p){n&1&&(d(0),s(1,"translate")),n&2&&f(" ",r(1,1,"form.button_remove")," ")}function Mi(n,p){n&1&&c(0,"i",22)}function Pi(n,p){if(n&1){let e=P();o(0,"button",21),M("click",function(){T(e);let a=h();return k(a.onResetCachedAccessoriesClick())}),g(1,Bi,2,3)(2,Mi,1,0,"i",22),l()}if(n&2){let e=h();E("disabled",e.clicked()),t(),_(e.clicked()?2:1)}}var kt=(()=>{class n{$activeModal=I(U);$accessoryOverview=I(se);$api=I(z);$router=I(J);$settings=I(q);$toastr=I(O);$translate=I(L);clicked=b(!1);cachedAccessories=b([]);ngOnInit(){this.loadCachedAccessories()}onResetCachedAccessoriesClick(){return y(this,null,function*(){this.clicked.set(!0);try{yield this.$api.put("/server/reset-cached-accessories",{}),this.$accessoryOverview.invalidate(),this.$toastr.success(this.$translate.instant("reset.delete_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})}catch(e){this.clicked.set(!1),console.error(e),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return y(this,null,function*(){try{let{hapAccessories:e,matterAccessories:i}=yield this.$accessoryOverview.get(),a=this.$settings.isFeatureEnabled("matterSupport");this.cachedAccessories.set([...e,...a?i:[]])}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||n)};static \u0275cmp=N({type:n,selectors:[["app-remove-all-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"],["type","error",1,"mb-0",3,"dismissible"],[1,"text-center","mb-0"],["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,a){i&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),d(3),s(4,"translate"),l(),o(5,"button",3),s(6,"translate"),M("click",function(){return a.dismissModal()}),l()(),o(7,"div",4),g(8,wi,5,3)(9,Ti,16,13),l(),o(10,"div",5)(11,"div",6),g(12,ki,4,7,"button",7),l(),o(13,"div",8),g(14,$i,4,6,"button",9),l(),o(15,"div",10),g(16,Pi,3,2,"button",11),l()()()),i&2&&(t(3),m(r(4,7,"reset.accessory_all.title")),t(2),E("disabled",a.clicked()),u("aria-label",r(6,9,"form.button_close")),t(3),_(a.cachedAccessories().length===0?8:9),t(4),_(a.cachedAccessories().length>0?12:-1),t(2),_(a.cachedAccessories().length===0?14:-1),t(2),_(a.cachedAccessories().length>0?16:-1))},dependencies:[yt,H],encapsulation:2,changeDetection:0})}return n})();function Fi(n,p){n&1&&(S(0,"div",12),D(1,"i",13),x(),S(2,"p",14),d(3),s(4,"translate"),x()),n&2&&(t(3),m(r(4,1,"reset.bridge_accessories.empty")))}function Di(n,p){if(n&1){let e=P();S(0,"li",18)(1,"span",19),D(2,"i",20),x(),S(3,"span",21),d(4),D(5,"br"),S(6,"small",22)(7,"span",23),d(8),x()()(),S(9,"button",24),s(10,"translate"),R("click",function(){let a=T(e).$implicit,v=h(2);return k(v.toggleList(a._id,a._protocol))}),D(11,"i",25),x()()}if(n&2){let e=p.$implicit,i=h(2);t(2),C("fa-matter",e._protocol==="matter")("fa-hap",e._protocol!=="matter"),t(2),f(" ",e.name," "),t(4),m(e._username),t(),C("btn-danger",!i.isInList(e._id,e._protocol))("btn-elegant",i.isInList(e._id,e._protocol)),A("disabled",i.clicked()),u("aria-label",r(10,20,"form.button_delete")),t(2),C("fa-broom",!i.isInList(e._id,e._protocol))("fa-undo",i.isInList(e._id,e._protocol)&&!i.clicked())("fa-circle-notch",i.isInList(e._id,e._protocol)&&i.clicked())("fa-spin",i.isInList(e._id,e._protocol)&&i.clicked())}}function Ri(n,p){if(n&1&&(S(0,"div",12),D(1,"i",15),x(),S(2,"ul",16)(3,"li"),d(4),s(5,"translate"),x(),S(6,"li"),d(7),s(8,"translate"),x(),S(9,"li"),d(10),s(11,"translate"),x()(),S(12,"ul",17),K(13,Di,12,22,"li",18,j),x()),n&2){let e=h();t(4),m(r(5,3,"reset.bridge_accessories.list_1")),t(3),m(r(8,5,"reset.clear_cache_single.list_3")),t(3),m(r(11,7,"reset.bridge_accessories.list_2")),t(3),G(e.pairings())}}function Ai(n,p){if(n&1){let e=P();S(0,"button",26),R("click",function(){T(e);let a=h();return k(a.dismissModal())}),d(1),s(2,"translate"),x()}if(n&2){let e=h();A("disabled",e.clicked()),t(),f(" ",r(2,2,"form.button_close")," ")}}function Vi(n,p){if(n&1){let e=P();S(0,"button",27),R("click",function(){T(e);let a=h();return k(a.dismissModal())}),d(1),s(2,"translate"),x()}n&2&&(t(),f(" ",r(2,1,"form.button_close")," "))}function Ni(n,p){n&1&&D(0,"i",29)}function Hi(n,p){if(n&1&&d(0),n&2){let e=h(3);f(" (",e.toDelete().length,") ")}}function Li(n,p){if(n&1&&(d(0),s(1,"translate"),g(2,Hi,1,1)),n&2){let e=h(2);f(" ",r(1,2,"form.button_remove")," "),t(2),_(e.toDelete().length>0?2:-1)}}function Oi(n,p){if(n&1){let e=P();S(0,"button",28),R("click",function(){T(e);let a=h();return k(a.cleanBridges())}),g(1,Ni,1,0,"i",29)(2,Li,3,4),x()}if(n&2){let e=h();A("disabled",!e.toDelete().length||e.clicked()),t(),_(e.clicked()?1:2)}}var $t=(()=>{class n{$activeModal=I(U);$accessoryOverview=I(se);$api=I(z);$router=I(J);$settings=I(q);$toastr=I(O);$translate=I(L);clicked=b(!1);pairings=b([]);toDelete=b([]);isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");ngOnInit(){this.loadPairings()}cleanBridges(){return y(this,null,function*(){this.clicked.set(!0);try{yield this.$api.delete("/server/pairings/accessories",{body:this.toDelete()}),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(e){this.clicked.set(!1),console.error(e),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}toggleList(e,i){this.toDelete().some(a=>a.id===e&&a.protocol===i)?this.toDelete.set(this.toDelete().filter(a=>a.id!==e||a.protocol!==i)):this.toDelete.update(a=>[...a,{id:e,protocol:i}])}isInList(e,i){return this.toDelete().some(a=>a.id===e&&a.protocol===i)}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadPairings(){return y(this,null,function*(){try{let{pairings:e}=yield this.$accessoryOverview.get(),i=e.filter(v=>v._category==="bridge"&&!v._main).sort((v,V)=>v.name.localeCompare(V.name)),a=[];for(let v of i)a.push(_e(ge({},v),{_protocol:"hap",_displayName:v.name})),this.isMatterSupported&&v._matter&&a.push(_e(ge({},v),{_protocol:"matter",_displayName:v.name}));this.pairings.set(a)}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=N({type:n,selectors:[["app-remove-bridge-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-broom","primary-text","icon-xl"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"me-3"],[1,"fas","fa-lg"],[1,"flex-grow-1"],[1,"grey-text"],[1,"font-monospace"],["type","button",1,"btn","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,a){i&1&&(S(0,"div",0)(1,"div",1)(2,"h5",2),d(3),s(4,"translate"),x(),S(5,"button",3),s(6,"translate"),R("click",function(){return a.dismissModal()}),x()(),S(7,"div",4),g(8,Fi,5,3)(9,Ri,15,9),x(),S(10,"div",5)(11,"div",6),g(12,Ai,3,4,"button",7),x(),S(13,"div",8),g(14,Vi,3,3,"button",9),x(),S(15,"div",10),g(16,Oi,3,2,"button",11),x()()()),i&2&&(t(3),m(r(4,7,"reset.bridge_accessories.title")),t(2),A("disabled",a.clicked()),u("aria-label",r(6,9,"form.button_close")),t(3),_(a.pairings().length===0?8:9),t(4),_(a.pairings().length>0?12:-1),t(2),_(a.pairings().length===0?14:-1),t(2),_(a.pairings().length>0?16:-1))},dependencies:[H],encapsulation:2,changeDetection:0})}return n})();function zi(n,p){n&1&&(S(0,"div",7)(1,"div",11),d(2),s(3,"translate"),x()()),n&2&&(t(2),f(" ",r(3,1,"reset.action_is_irreversible")," "))}function Ui(n,p){n&1&&(d(0),s(1,"translate")),n&2&&f(" ",r(1,1,"form.button_reset")," ")}function Wi(n,p){n&1&&D(0,"i",17)}function ji(n,p){if(n&1){let e=P();S(0,"button",14),R("click",function(a){T(e);let v=h();return k(v.toggleConfirmMode(a))}),D(1,"i",15),x(),S(2,"button",16),R("click",function(){T(e);let a=h();return k(a.onResetHomebridgeAccessoryClick())}),g(3,Ui,2,3)(4,Wi,1,0,"i",17),x()}if(n&2){let e=h();A("disabled",e.clicked()),t(2),A("disabled",e.clicked()),t(),_(e.clicked()?4:3)}}function Ki(n,p){if(n&1){let e=P();S(0,"button",18),R("click",function(a){T(e);let v=h();return k(v.toggleConfirmMode(a))}),d(1),s(2,"translate"),x()}n&2&&(t(),f(" ",r(2,1,"form.button_continue")," "))}var Bt=(()=>{class n{$activeModal=I(U);$api=I(z);$cache=I(bt);$router=I(J);$toastr=I(O);$translate=I(L);clicked=b(!1);confirmMode=b(!1);toggleConfirmMode(e){this.confirmMode.set(!this.confirmMode()),e.target.blur()}onResetHomebridgeAccessoryClick(){return y(this,null,function*(){this.clicked.set(!0);try{yield this.$api.put("/server/reset-homebridge-accessory",{}),this.$cache.invalidateAll(),this.$toastr.success(this.$translate.instant("reset.accessory_reset"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"])}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=N({type:n,selectors:[["app-reset-all-bridges"]],decls:34,vars:34,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,"text-center","mb-4"],[1,"fas","fa-bridge","primary-text","icon-xl"],[1,"alert","alert-warning","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-primary"],["type","button",1,"btn","btn-elegant","me-2",3,"click","disabled"],[1,"fas","fa-undo"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-circle-notch","fa-spin"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(i,a){i&1&&(S(0,"div",0)(1,"div",1)(2,"h5",2),d(3),s(4,"translate"),x(),S(5,"button",3),s(6,"translate"),R("click",function(){return a.dismissModal()}),x()(),S(7,"div",4)(8,"div",5),D(9,"i",6),x(),S(10,"ul")(11,"li"),d(12),s(13,"translate"),x(),S(14,"li"),d(15),s(16,"translate"),x(),S(17,"li"),d(18),s(19,"translate"),x(),S(20,"li"),d(21),s(22,"translate"),x()(),g(23,zi,4,3,"div",7),x(),S(24,"div",8)(25,"div",9)(26,"button",10),s(27,"translate"),R("click",function(){return a.dismissModal()}),d(28),s(29,"translate"),x()(),D(30,"div",11),S(31,"div",12),g(32,ji,5,3)(33,Ki,3,3,"button",13),x()()()),i&2&&(t(3),m(r(4,18,"reset.bridge_all.title")),t(2),A("disabled",a.clicked()),u("aria-label",r(6,20,"form.button_close")),t(5),C("opacity-muted",a.confirmMode())("mb-0",!a.confirmMode())("mb-4",a.confirmMode()),t(2),m(r(13,22,"reset.bridge_all.list_1")),t(3),m(r(16,24,"reset.bridge_all.list_2")),t(3),m(r(19,26,"reset.bridge_all.list_3")),t(3),m(r(22,28,"reset.bridge_all.list_4")),t(2),_(a.confirmMode()?23:-1),t(3),A("disabled",a.clicked()),u("aria-label",r(27,30,"form.button_close")),t(2),f(" ",r(29,32,"form.button_close")," "),t(4),_(a.confirmMode()?32:33))},dependencies:[H],encapsulation:2,changeDetection:0})}return n})();function Gi(n,p){n&1&&(S(0,"div",12),D(1,"i",13),x(),S(2,"p",14),d(3),s(4,"translate"),x()),n&2&&(t(3),m(r(4,1,"reset.bridges.empty")))}function qi(n,p){if(n&1&&D(0,"i",28)(1,"i",29),n&2){let e=h().$implicit;C("opacity-muted",e._matterOnly),t(),C("opacity-muted",!e._matter)}}function Qi(n,p){n&1&&D(0,"i",22)}function Ji(n,p){if(n&1){let e=P();S(0,"li",20)(1,"span",21),g(2,qi,2,4)(3,Qi,1,0,"i",22),x(),S(4,"span",23),d(5),D(6,"br"),S(7,"span",24),d(8),s(9,"titlecase"),x(),D(10,"br"),S(11,"small",25),d(12),x()(),S(13,"button",26),s(14,"translate"),R("click",function(){let a=T(e).$implicit,v=h(3);return k(v.toggleList(a._id,!1))}),D(15,"i",27),x()()}if(n&2){let e=p.$implicit,i=h(3);t(2),_(i.isMatterSupported?2:3),t(3),f(" ",e.name," "),t(3),m(e._main?"Homebridge":r(9,18,e._category)),t(4),m(e._username),t(),C("btn-danger",!i.isInList(e._id))("btn-elegant",i.isInList(e._id)),A("disabled",i.clicked()),u("aria-label",r(14,20,"form.button_unpair")),t(2),C("fa-refresh",!i.isInList(e._id))("fa-undo",i.isInList(e._id)&&!i.clicked())("fa-circle-notch",i.isInList(e._id)&&i.clicked())("fa-spin",i.isInList(e._id)&&i.clicked())}}function Yi(n,p){if(n&1&&(S(0,"ul",16)(1,"li",17)(2,"h6",18),d(3),s(4,"translate"),x(),S(5,"p",19),d(6),s(7,"translate"),x()(),K(8,Ji,16,22,"li",20,j),x()),n&2){let e=h(2);t(3),m(r(4,2,"reset.bridge_ind.head_non_child")),t(3),m(r(7,4,"reset.bridge_ind.desc_non_child")),t(2),G(e.pairingsNonChild())}}function Xi(n,p){if(n&1&&D(0,"i",28)(1,"i",29),n&2){let e=h().$implicit;t(),C("opacity-muted",!e._matter)}}function Zi(n,p){n&1&&D(0,"i",22)}function en(n,p){if(n&1){let e=P();S(0,"li",20)(1,"span",21),g(2,Xi,2,2)(3,Zi,1,0,"i",22),x(),S(4,"span",23),d(5),D(6,"br"),S(7,"small",25),d(8),x()(),S(9,"button",26),s(10,"translate"),R("click",function(){let a=T(e).$implicit,v=h(3);return k(v.toggleList(a._id,!0))}),D(11,"i",27),x()()}if(n&2){let e=p.$implicit,i=h(3);t(2),_(i.isMatterSupported?2:3),t(3),f(" ",e.name," "),t(3),m(e._username),t(),C("btn-danger",!i.isInList(e._id))("btn-elegant",i.isInList(e._id)),A("disabled",i.clicked()),u("aria-label",r(10,17,"form.button_unpair")),t(2),C("fa-refresh",!i.isInLis