homebridge-config-ui-x 5.0.0-beta.2 → 5.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +75 -5
- package/README.md +6 -8
- package/dist/bin/fork.js +17 -7
- package/dist/bin/fork.js.map +1 -1
- package/dist/bin/hb-service.js +18 -8
- package/dist/bin/hb-service.js.map +1 -1
- package/dist/bin/standalone.js +17 -7
- package/dist/bin/standalone.js.map +1 -1
- package/dist/core/auth/auth.module.js +1 -1
- package/dist/core/auth/auth.module.js.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/modules/config-editor/config-editor.controller.d.ts +1 -1
- package/dist/modules/config-editor/config-editor.service.d.ts +1 -1
- package/dist/modules/plugins/plugins.service.js +2 -2
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/package.json +25 -21
- package/public/3rdpartylicenses.txt +632 -606
- package/public/assets/hap-icons/valve-generic.svg +2 -2
- package/public/assets/hap-icons/valve-irrigation.svg +4 -4
- package/public/assets/hap-icons/valve-showerhead.svg +13 -0
- package/public/assets/hap-icons/valve-waterfaucet.svg +7 -0
- package/public/assets/plugin-ui-utils/ui.js +38 -19
- package/public/assets/plugin-ui-utils/ui.js.map +1 -1
- package/public/chunk-36FQKUVO.js +1 -0
- package/public/chunk-3JSZEZ3P.js +1 -0
- package/public/chunk-3ZNB4KKY.js +1 -0
- package/public/chunk-44XAYR34.js +1 -0
- package/public/chunk-5VRFWVIF.js +1 -0
- package/public/chunk-5YTQFCTZ.js +1 -0
- package/public/chunk-66LHN73V.js +23 -0
- package/public/{chunk-6QEO3BTW.js → chunk-6MDI4RNQ.js} +14 -14
- package/public/chunk-6NCLI3EG.js +1 -0
- package/public/chunk-6W3XOJBR.js +1 -0
- package/public/chunk-7TSUSJHK.js +6 -0
- package/public/chunk-B7ASQGIT.js +1 -0
- package/public/chunk-BCTZLT7T.js +1 -0
- package/public/chunk-BJW3EYCN.js +4 -0
- package/public/chunk-BWVQQ7XD.js +8 -0
- package/public/chunk-BZVO3JIQ.js +1 -0
- package/public/chunk-CK234OHO.js +1 -0
- package/public/chunk-DTITJSDU.js +1 -0
- package/public/chunk-EFBNPDVN.js +1 -0
- package/public/chunk-EIKIGJGT.js +1 -0
- package/public/chunk-EXPDB5CJ.js +1 -0
- package/public/chunk-EXVHFPLG.js +1 -0
- package/public/chunk-F46ML4GE.js +1 -0
- package/public/{chunk-THFLPY67.js → chunk-F4QKTMKG.js} +1 -1
- package/public/chunk-F5SS6TN7.js +5 -0
- package/public/chunk-F7BNBUEW.js +1 -0
- package/public/chunk-G3NT5LV6.js +1 -0
- package/public/chunk-GGHFQZAJ.js +1 -0
- package/public/chunk-GJHKJW7G.js +1 -0
- package/public/chunk-GMP35WWF.js +1 -0
- package/public/chunk-GMZ6O3I5.js +1 -0
- package/public/chunk-H3E4T6KH.js +1 -0
- package/public/chunk-HBGENGOA.js +1 -0
- package/public/chunk-HMOW3VNR.js +1 -0
- package/public/chunk-IAJBS4F3.js +20 -0
- package/public/chunk-IJSNG5L7.js +1 -0
- package/public/chunk-IUHGKF4I.js +1 -0
- package/public/chunk-IUUJYZCY.js +14 -0
- package/public/chunk-JPYKH7ON.js +1 -0
- package/public/chunk-JTNCJAJL.js +1 -0
- package/public/chunk-JXHVIG4U.js +1 -0
- package/public/chunk-JY3ZZB5T.js +1 -0
- package/public/chunk-KDJPDALB.js +7 -0
- package/public/chunk-KE67UEME.js +1 -0
- package/public/chunk-KFM3IHPE.js +1 -0
- package/public/chunk-KKE3XVCS.js +1 -0
- package/public/chunk-KPI7JWRK.js +1 -0
- package/public/chunk-KY3LSONF.js +1 -0
- package/public/chunk-M43OLMXJ.js +1 -0
- package/public/chunk-MDS6CJQC.js +1 -0
- package/public/chunk-MMPQXC6H.js +2 -0
- package/public/chunk-NBLWBPNU.js +1 -0
- package/public/chunk-NIGZKKLM.js +1 -0
- package/public/chunk-NZEAIDME.js +1 -0
- package/public/chunk-OJZZVAQX.js +1 -0
- package/public/chunk-OZTQT47N.js +1 -0
- package/public/chunk-P5WCYSBI.js +8 -0
- package/public/chunk-QHHRJOCD.js +2 -0
- package/public/chunk-QIUCYAO6.js +1 -0
- package/public/chunk-R2GI3M3R.js +1 -0
- package/public/chunk-RKAF37ZJ.js +1 -0
- package/public/chunk-RMFHCCDM.js +32 -0
- package/public/chunk-RXIWNBGC.js +5 -0
- package/public/chunk-S7XHKMB6.js +1 -0
- package/public/chunk-SEKLEPJD.js +1 -0
- package/public/chunk-SPCVBENU.js +1 -0
- package/public/chunk-SU7PCFCE.js +1 -0
- package/public/chunk-SZQRABYM.js +1 -0
- package/public/{chunk-GNQUXZMN.js → chunk-T6FYP7FJ.js} +1 -1
- package/public/chunk-TKD3NDAB.js +1 -0
- package/public/chunk-UFSVM3Q4.js +1 -0
- package/public/chunk-UTT43ABZ.js +1 -0
- package/public/chunk-WBM3J7G6.js +1 -0
- package/public/chunk-WNRNIYIE.js +1 -0
- package/public/chunk-WX6C5G2Y.js +1 -0
- package/public/chunk-X2J4XMUB.js +1 -0
- package/public/chunk-XH4UDTMW.js +1 -0
- package/public/chunk-XKW7UNZ7.js +1 -0
- package/public/chunk-XMJ3TLM7.js +1 -0
- package/public/chunk-Z4CHNCHA.js +1 -0
- package/public/chunk-ZRYCN4PM.js +1 -0
- package/public/index.html +2 -2
- package/public/main-FN3FPYBU.js +1 -0
- package/public/media/fa-brands-400-6PJPV6JM.woff2 +0 -0
- package/public/media/{fa-brands-400-CNBICIQT.ttf → fa-brands-400-KOKGDU7E.ttf} +0 -0
- package/public/media/{fa-regular-400-2FI4ICQD.ttf → fa-regular-400-IPMAEX5Y.ttf} +0 -0
- package/public/media/fa-regular-400-OHB6J4OK.woff2 +0 -0
- package/public/media/fa-solid-900-ABTK6BNK.woff2 +0 -0
- package/public/media/{fa-solid-900-XVWCCN5V.ttf → fa-solid-900-SRFFQLRM.ttf} +0 -0
- package/public/{polyfills-CE2SNIQF.js → polyfills-C6JHVXJJ.js} +2 -2
- package/public/prerendered-routes.json +3 -0
- package/public/styles-EG5MFQEM.css +1 -0
- package/public/chunk-2ZL77L5V.js +0 -5
- package/public/chunk-36QI2JZZ.js +0 -1
- package/public/chunk-4R6MSI5I.js +0 -14
- package/public/chunk-54RIF7BL.js +0 -1
- package/public/chunk-6PFEOQAC.js +0 -1
- package/public/chunk-AA4ALV5Q.js +0 -23
- package/public/chunk-B6C32ZRK.js +0 -1
- package/public/chunk-BROUJ7PT.js +0 -1
- package/public/chunk-C4DMFK2F.js +0 -1
- package/public/chunk-CMASH2I6.js +0 -20
- package/public/chunk-D63P2BMG.js +0 -4
- package/public/chunk-E6TKCZQK.js +0 -1
- package/public/chunk-EEAGROCO.js +0 -8
- package/public/chunk-EXLYVJ3I.js +0 -1
- package/public/chunk-F22FMU37.js +0 -1
- package/public/chunk-H7H7YVXE.js +0 -1
- package/public/chunk-IGUSDGD6.js +0 -8
- package/public/chunk-JM7QCDMZ.js +0 -1
- package/public/chunk-LL4U2S7T.js +0 -20
- package/public/chunk-MMU5EB5I.js +0 -1
- package/public/chunk-MQHO5ODL.js +0 -1
- package/public/chunk-MQOC5AAT.js +0 -1
- package/public/chunk-NJRXPLIM.js +0 -1
- package/public/chunk-NLHSKWUN.js +0 -1
- package/public/chunk-PCHM6ESV.js +0 -1
- package/public/chunk-PREOLVG7.js +0 -1
- package/public/chunk-RYWTZYEC.js +0 -1
- package/public/chunk-SJTXTMYT.js +0 -2
- package/public/chunk-TBJQ2Y3M.js +0 -1
- package/public/chunk-TCMARCBB.js +0 -1
- package/public/chunk-UBGLUD5C.js +0 -20
- package/public/chunk-V7NUKNPP.js +0 -1
- package/public/chunk-W5QNZH4U.js +0 -1
- package/public/chunk-WCDFKYP6.js +0 -5
- package/public/chunk-YXVNS6GA.js +0 -1
- package/public/main-EIMWK4RL.js +0 -6
- package/public/media/fa-brands-400-MDS4TU4L.woff2 +0 -0
- package/public/media/fa-regular-400-N56QV3DR.woff2 +0 -0
- package/public/media/fa-solid-900-Z3HFQTXF.woff2 +0 -0
- package/public/styles-7ETWN6DQ.css +0 -1
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{a as b}from"./chunk-T6FYP7FJ.js";import{a as p,b as w}from"./chunk-F4QKTMKG.js";import{a as d}from"./chunk-OJZZVAQX.js";import{M as i,g as o,ha as m,n,na as h}from"./chunk-KDJPDALB.js";var c=o(p(),1),a=o(w(),1),l=o(b(),1);var v=(()=>{class t{$ws=h(d);term;io;fitAddon;webLinksAddon;resize;elementResize;destroyTerminal(){this.io.end(),this.term.dispose(),this.resize.complete(),this.elementResize&&this.elementResize.complete()}startTerminal(r,s={},f){this.elementResize=f,this.io=this.$ws.connectToNamespace("platform-tools/terminal"),this.term=new c.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new a.FitAddon,this.webLinksAddon=new l.WebLinksAddon,this.resize=new n,this.term.open(r.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.pipe(i(200)).subscribe(()=>{this.startSession()}),this.io.socket.on("disconnect",()=>{this.term.write(`
|
|
2
|
+
\r
|
|
3
|
+
\rTerminal disconnected. Is the server running?
|
|
4
|
+
\r
|
|
5
|
+
\r`)}),this.io.socket.on("process-exit",()=>{this.io.socket.emit("end"),this.startSession()}),this.resize.pipe(i(500)).subscribe(e=>{this.io.socket.emit("resize",e)}),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.term.onData(e=>{this.io.socket.emit("stdin",e)}),this.term.onResize(e=>{this.resize.next(e)}),this.elementResize&&this.elementResize.pipe(i(100)).subscribe({next:()=>{this.fitAddon.fit()}})}startSession(){this.term.reset(),this.io.socket.emit("start-session",{cols:this.term.cols,rows:this.term.rows}),this.resize.next({cols:this.term.cols,rows:this.term.rows})}static \u0275fac=function(s){return new(s||t)};static \u0275prov=m({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();export{v as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-3ZNB4KKY.js";import"./chunk-BWVQQ7XD.js";import"./chunk-T6FYP7FJ.js";import"./chunk-F4QKTMKG.js";import"./chunk-EFBNPDVN.js";import{q as s}from"./chunk-F5SS6TN7.js";import"./chunk-Z4CHNCHA.js";import"./chunk-OJZZVAQX.js";import{g as i}from"./chunk-HMOW3VNR.js";import"./chunk-F46ML4GE.js";import"./chunk-EIKIGJGT.js";import"./chunk-G3NT5LV6.js";import"./chunk-QHHRJOCD.js";import{c as n}from"./chunk-H3E4T6KH.js";import{ia as t,md as m,vb as r}from"./chunk-KDJPDALB.js";var f=[{path:"",loadComponent:()=>import("./chunk-NZEAIDME.js").then(o=>o.LogsComponent)}],p=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i.forChild(f),i]})}return o})();var h=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[m,p,s,n.forChild()]})}return o})();export{h as LogsModule};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as N,b as U}from"./chunk-F4QKTMKG.js";import{m as H}from"./chunk-F5SS6TN7.js";import{a as D}from"./chunk-OJZZVAQX.js";import{d as V}from"./chunk-HMOW3VNR.js";import{b as E,j as z}from"./chunk-G3NT5LV6.js";import{c as I,d as w}from"./chunk-QHHRJOCD.js";import{a as P,b as A}from"./chunk-H3E4T6KH.js";import{$b as R,Bb as f,Bc as l,Cc as d,Dc as F,Lb as S,Mb as b,Rb as c,Wb as a,Xb as o,Yb as u,cc as x,dc as p,g as $,h as k,ib as i,na as _,nc as s,oc as h,pc as v,ub as y,xa as C,xc as B,ya as g}from"./chunk-KDJPDALB.js";var M=$(N(),1),W=$(U(),1);var j=t=>({maxBackupSizeText:t});function q(t,m){if(t&1&&(a(0,"div"),u(1,"input",11),o()),t&2){let e=p(2);i(),b("value",e.selectedBackup.fileName)}}function O(t,m){if(t&1){let e=R();a(0,"div",10)(1,"input",12),x("change",function(n){C(e);let T=p(2);return g(T.handleRestoreFileInput(n.target.files))}),o(),a(2,"label",13),s(3),l(4,"translate"),o()()}if(t&2){let e=p(2);i(3),v(" ",d(4,1,(e.selectedFile==null?null:e.selectedFile.name)||"backup.label_choose_backup_file_to_restore")," ")}}function G(t,m){if(t&1&&(a(0,"div",5)(1,"div",8),u(2,"i",9),o(),a(3,"p"),s(4),l(5,"translate"),o(),a(6,"ul")(7,"li"),s(8),l(9,"translate"),o(),a(10,"li"),s(11),l(12,"translate"),o(),a(13,"li"),s(14),l(15,"translate"),o()(),f(16,q,2,1,"div")(17,O,5,3,"div",10),o()),t&2){let e=p();i(4),h(d(5,6,"backup.restore_help_one")),i(4),h(d(9,8,"backup.restore_help_two")),i(3),h(F(12,10,"backup.restore_max_size",B(15,j,e.maxFileSizeText))),i(3),h(d(15,13,"backup.restore_warning")),i(2),c(e.selectedBackup?16:-1),i(),c(e.selectedBackup?-1:17)}}function J(t,m){t&1&&u(0,"i",19)}function K(t,m){if(t&1&&(a(0,"span"),s(1),o()),t&2){let e=p(3);i(),v("",e.uploadPercent,"% - ")}}function L(t,m){t&1&&(a(0,"span"),s(1," Extracting Archive"),o())}function Q(t,m){t&1&&(a(0,"span"),s(1),l(2,"translate"),o()),t&2&&(i(),v(" ",d(2,1,"backup.label_uploading"),""))}function X(t,m){if(t&1&&(a(0,"span"),f(1,J,1,0,"i",19)(2,K,2,1,"span")(3,L,2,0,"span")(4,Q,3,3,"span"),o()),t&2){let e=p(2);i(),c(!e.uploadPercent||e.uploadPercent===100?1:-1),i(),c(e.uploadPercent&&e.uploadPercent!==100?2:-1),i(),c(e.uploadPercent===100?3:-1),i(),c(e.uploadPercent!==100?4:-1)}}function Y(t,m){t&1&&(a(0,"span"),s(1),l(2,"translate"),o()),t&2&&(i(),h(d(2,1,"form.button_restore")))}function Z(t,m){if(t&1){let e=R();a(0,"div",7)(1,"div",14)(2,"button",15),l(3,"translate"),x("click",function(){C(e);let n=p();return g(n.$activeModal.dismiss("Dismiss"))}),s(4),l(5,"translate"),o()(),u(6,"div",16),a(7,"div",17)(8,"button",18),x("click",function(){C(e);let n=p();return g(n.onRestoreBackupClick())}),f(9,X,5,4,"span")(10,Y,3,3,"span"),o()()()}if(t&2){let e=p();i(2),b("disabled",e.clicked),S("aria-label",d(3,6,"form.button_close")),i(2),v(" ",d(5,8,"form.button_close")," "),i(4),b("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),i(),c(e.clicked?9:-1),i(),c(e.clicked?-1:10)}}function ee(t,m){if(t&1){let e=R();a(0,"div",7),u(1,"div",14),a(2,"div",16)(3,"button",20),x("click",function(){C(e);let n=p();return g(n.postBackupRestart())}),s(4),l(5,"translate"),o()(),u(6,"div",17),o()}t&2&&(i(4),v(" ",d(5,1,"menu.hbrestart.title")," "))}var me=(()=>{class t{$activeModal=_(H);$api=_(E);$route=_(V);$toastr=_(z);$translate=_(P);$ws=_(D);setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;term=new M.Terminal;termTarget;fitAddon=new W.FitAddon;io;ngOnInit(){return k(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted=!0,this.restoreInProgress=!0,this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType==="hbfx"&&this.uploadHbfxArchive()}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",e).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:r=>{var n;console.error(r),this.$toastr.error(((n=r.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return k(this,null,function*(){this.term.reset(),this.clicked=!0,this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:e=>{var r;console.error(e),this.$toastr.error(((r=e.error)==null?void 0:r.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return k(this,null,function*(){this.io.request("do-restore").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success")),this.setupWizardRestore&&this.postBackupRestart()},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore/hbfx",e,{reportProgress:!0,observe:"events"}).subscribe({next:r=>{r.type===I.UploadProgress?this.uploadPercent=Math.round(100*r.loaded/r.total):r instanceof w&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:r=>{var n;this.clicked=!1,console.error(r),this.$toastr.error(((n=r.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return k(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.selectedFile.name.endsWith(".hbfx")?this.restoreArchiveType="hbfx":this.restoreArchiveType="homebridge"):delete this.selectedFile}postBackupRestart(){this.$api.put("/backup/restart",{}).subscribe({next:()=>{this.$activeModal.close(!0),this.$route.navigate(["/"])},error:()=>{}})}ngOnDestroy(){this.io.end()}static \u0275fac=function(r){return new(r||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],inputs:{setupWizardRestore:"setupWizardRestore",selectedBackup:"selectedBackup"},decls:13,vars:11,consts:[[1,"modal-content","hb-backup-modal"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-footer","justify-content-between"],[1,"text-center","mt-2","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"custom-file"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"custom-file-input",3,"change"],["for","restoreFileUpload",1,"custom-file-label"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fa","fa-fw","fa-circle-notch","fa-spin"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(r,n){r&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),s(3),l(4,"translate"),o(),a(5,"button",3),l(6,"translate"),x("click",function(){return n.$activeModal.dismiss("Dismiss")}),a(7,"span",4),s(8,"\xD7"),o()()(),f(9,G,18,17,"div",5),u(10,"div",6),f(11,Z,11,10,"div",7)(12,ee,7,3,"div",7),o()),r&2&&(i(3),h(d(4,7,"form.button_restore")),i(2),b("disabled",n.restoreInProgress),S("aria-label",d(6,9,"form.button_close")),i(4),c(!n.restoreStarted&&!n.setupWizardRestore?9:-1),i(),b("hidden",!n.restoreStarted),i(),c(!n.restoreStarted||n.restoreFailed===!0?11:-1),i(),c(!n.restoreInProgress&&n.restoreStarted?12:-1))},dependencies:[A],encapsulation:2})}return t})();export{me as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as h}from"./chunk-RXIWNBGC.js";import{b}from"./chunk-H3E4T6KH.js";import{Bc as y,Cc as T,Wb as r,Xb as o,Yb as p,cc as u,gb as l,ib as s,kc as f,lc as v,n as m,na as a,nc as g,oc as w,rb as d,ub as c}from"./chunk-KDJPDALB.js";var C=["terminaloutput"],k=(()=>{class t{$terminal=a(h);termTarget=d("terminaloutput");resizeEvent=new m;onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$terminal.startTerminal(this.termTarget(),{},this.resizeEvent),this.$terminal.term.focus()}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$terminal.destroyTerminal()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=c({type:t,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&f(n.termTarget,C,5),e&2&&v()},hostBindings:function(e,n){e&1&&u("resize",function(x){return n.onWindowResize(x)},!1,l)},decls:8,vars:3,consts:[["terminaloutput",""],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","docker-terminal",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,n){e&1&&(r(0,"div",1)(1,"div",2)(2,"h3",3),g(3),y(4,"translate"),o()()(),r(5,"div",4),p(6,"div",5,0),o()),e&2&&(s(3),w(T(4,1,"menu.linux.label_terminal")))},dependencies:[b],encapsulation:2})}return t})();export{k as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{A as N,B as x,C as D,D as W,E as I,F as j,G as O,H as V,I as q,J as B,K as G,L as R,M as U,N as z,O as E,P as J,Q as K,R as P,S as Q,T as X,b as f,c as a,g as C,h as s,i as d,j as c,k as u,l,m as g,n as M,o as y,p as h,q as v,r as S,s as b,t as w,u as A,v as F,w as k,x as T,y as H,z as L}from"./chunk-ZRYCN4PM.js";import{b as Y}from"./chunk-6MDI4RNQ.js";import{q as p}from"./chunk-F5SS6TN7.js";import{y as t,z as i}from"./chunk-Z4CHNCHA.js";import{c as n}from"./chunk-H3E4T6KH.js";import{ia as m,md as e,vb as r}from"./chunk-KDJPDALB.js";var Cm=(()=>{class o{static \u0275fac=function(Z){return new(Z||o)};static \u0275mod=r({type:o});static \u0275inj=m({providers:[a],imports:[e,t,i,n.forChild(),C,p,Y,X,f,B,q,R,D,h,v,U,T,k,H,L,S,N,x,c,Q,P,K,J,y,M,G,g,V,O,I,W,F,j,E,z,A,d,s,b,w,l,u]})}return o})();export{Cm as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-EXVHFPLG.js";import"./chunk-H3E4T6KH.js";import"./chunk-KDJPDALB.js";export{a as SupportComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as I}from"./chunk-
|
|
1
|
+
import{e as I}from"./chunk-KDJPDALB.js";var j=I((k,m)=>{(function(g,l){typeof k=="object"&&typeof m=="object"?m.exports=l():typeof define=="function"&&define.amd?define([],l):typeof k=="object"?k.WebLinksAddon=l():g.WebLinksAddon=l()})(self,function(){return(()=>{"use strict";var g={6:(a,r)=>{Object.defineProperty(r,"__esModule",{value:!0}),r.LinkComputer=r.WebLinkProvider=void 0;var s=function(){function o(n,i,e,t){t===void 0&&(t={}),this._terminal=n,this._regex=i,this._handler=e,this._options=t}return o.prototype.provideLinks=function(n,i){var e=p.computeLink(n,this._regex,this._terminal,this._handler);i(this._addCallbacks(e))},o.prototype._addCallbacks=function(n){var i=this;return n.map(function(e){return e.leave=i._options.leave,e.hover=function(t,u){if(i._options.hover){var c=e.range;i._options.hover(t,u,c)}},e})},o}();r.WebLinkProvider=s;var p=function(){function o(){}return o.computeLink=function(n,i,e,t){for(var u,c=new RegExp(i.source,(i.flags||"")+"g"),_=o._translateBufferLineToStringWithWrap(n-1,!1,e),d=_[0],f=_[1],v=-1,w=[];(u=c.exec(d))!==null;){var h=u[1];if(!h){console.log("match found without corresponding matchIndex");break}if(v=d.indexOf(h,v+1),c.lastIndex=v+h.length,v<0)break;for(var b=v+h.length,y=f+1;b>e.cols;)b-=e.cols,y++;for(var L=v+1,P=f+1;L>e.cols;)L-=e.cols,P++;var M={start:{x:L,y:P},end:{x:b,y}};w.push({range:M,text:h,activate:t})}return w},o._translateBufferLineToStringWithWrap=function(n,i,e){var t,u,c="";do{if(!(d=e.buffer.active.getLine(n)))break;d.isWrapped&&n--,u=d.isWrapped}while(u);var _=n;do{var d,f=e.buffer.active.getLine(n+1);if(t=!!f&&f.isWrapped,!(d=e.buffer.active.getLine(n)))break;c+=d.translateToString(!t&&i).substring(0,e.cols),n++}while(t);return[c,_]},o}();r.LinkComputer=p}},l={};function x(a){var r=l[a];if(r!==void 0)return r.exports;var s=l[a]={exports:{}};return g[a](s,s.exports,x),s.exports}var W={};return(()=>{var a=W;Object.defineProperty(a,"__esModule",{value:!0}),a.WebLinksAddon=void 0;var r=x(6),s=new RegExp(`(?:^|[^\\da-z\\.-]+)((https?:\\/\\/)((([\\da-z\\.-]+)\\.([a-z\\.]{2,18}))|((\\d{1,3}\\.){3}\\d{1,3})|(localhost))(:\\d{1,5})?((\\/[\\/\\w\\.\\-%~:+@]*)*([^:"'\\s]))?(\\?[0-9\\w\\[\\]\\(\\)\\/\\?\\!#@$%&'*+,:;~\\=\\.\\-]*)?(#[0-9\\w\\[\\]\\(\\)\\/\\?\\!#@$%&'*+,:;~\\=\\.\\-]*)?)($|[^\\/\\w\\.\\-%]+)`);function p(n,i){var e=window.open();if(e){try{e.opener=null}catch{}e.location.href=i}else console.warn("Opening link blocked as opener could not be cleared")}var o=function(){function n(i,e,t){i===void 0&&(i=p),e===void 0&&(e={}),t===void 0&&(t=!1),this._handler=i,this._options=e,this._useLinkProvider=t}return n.prototype.activate=function(i){if(this._terminal=i,this._useLinkProvider&&"registerLinkProvider"in this._terminal){var e=(t=this._options).urlRegex||s;this._linkProvider=this._terminal.registerLinkProvider(new r.WebLinkProvider(this._terminal,e,this._handler,t))}else{var t;(t=this._options).matchIndex=1,this._linkMatcherId=this._terminal.registerLinkMatcher(s,this._handler,t)}},n.prototype.dispose=function(){var i;this._linkMatcherId!==void 0&&this._terminal!==void 0&&this._terminal.deregisterLinkMatcher(this._linkMatcherId),(i=this._linkProvider)===null||i===void 0||i.dispose()},n}();a.WebLinksAddon=o})(),W})()})});export{j as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-KE67UEME.js";import"./chunk-Z4CHNCHA.js";import"./chunk-HMOW3VNR.js";import"./chunk-F46ML4GE.js";import"./chunk-EIKIGJGT.js";import"./chunk-G3NT5LV6.js";import"./chunk-QHHRJOCD.js";import"./chunk-H3E4T6KH.js";import"./chunk-KDJPDALB.js";export{a as LoginComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as D}from"./chunk-OJZZVAQX.js";import{d as B}from"./chunk-HMOW3VNR.js";import{b as R}from"./chunk-EIKIGJGT.js";import{b as k,j as O}from"./chunk-G3NT5LV6.js";import{a as I,b as E}from"./chunk-H3E4T6KH.js";import{$b as $,Bb as h,Bc as s,Cc as o,Mb as f,Rb as d,Wb as r,Xb as n,Yb as v,ad as T,cc as S,dc as _,ib as i,na as c,nc as a,oc as p,pc as x,ub as w,xa as C,xc as b,ya as y,yc as g}from"./chunk-KDJPDALB.js";var F=(t,l)=>({"fas fa-fw fa-spinner fa-spin":t,"far fa-fw fa-check-circle":l}),j=t=>({"grey-text":t}),M=(t,l)=>({"far fa-fw fa-circle":t,"fas fa-fw fa-spinner fa-spin":l});function P(t,l){t&1&&(r(0,"p",7),a(1),s(2,"translate"),n()),t&2&&(i(),p(o(2,1,"restart.please_wait_while_server_restarts")))}function U(t,l){if(t&1&&(r(0,"div",8),a(1),n()),t&2){let e=_();i(),p(e.error)}}function V(t,l){if(t&1&&(r(0,"div",9)(1,"div",10)(2,"span"),v(3,"i",11),a(4),s(5,"translate"),n()(),r(6,"div",10)(7,"span",11),v(8,"i",11),a(9),s(10,"translate"),n()()()),t&2){let e=_();i(3),f("ngClass",g(9,F,!e.uiOnline,e.uiOnline)),i(),x(" ",o(5,5,"restart.ui_online")," "),i(3),f("ngClass",b(12,j,!e.uiOnline)),i(),f("ngClass",g(14,M,!e.uiOnline,e.uiOnline)),i(),x(" ",o(10,7,"restart.service_ready")," ")}}function z(t,l){if(t&1){let e=$();r(0,"p",14)(1,"button",15),S("click",function(){C(e);let m=_(2);return y(m.viewLogs())}),a(2),s(3,"translate"),n()()}t&2&&(i(2),p(o(3,1,"menu.tooltip_view_logs")))}function A(t,l){if(t&1&&(r(0,"div")(1,"div",12)(2,"p"),a(3),s(4,"translate"),n(),r(5,"p",13),a(6),s(7,"translate"),r(8,"code"),a(9),n()(),h(10,z,4,3,"p",14),n()()),t&2){let e=_();i(3),p(o(4,4,"restart.server_is_taking_long_time_to_restart")),i(3),x(" ",o(7,6,"restart.label_restart_command_executed"),": "),i(3),p(e.resp.command||"End Process"),i(),d(e.uiOnline?10:-1)}}var Y=(()=>{class t{$api=c(k);$router=c(B);$settings=c(R);$toastr=c(O);$translate=c(I);$ws=c(D);checkTimeout;checkDelay;resp={};timeout=!1;error=!1;uiOnline=!1;io;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch()}),this.$api.put("/server/restart",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp(),e.restartingUI||(this.uiOnline=!0)},error:e=>{console.error(e),this.error=this.$translate.instant("restart.toast_server_restart_error"),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}})}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{this.uiOnline=!0,(e.status==="up"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("restart.toast_server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},7e3),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},4e4)}viewLogs(){this.$router.navigate(["/logs"])}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}static \u0275fac=function(u){return new(u||t)};static \u0275cmp=w({type:t,selectors:[["ng-component"]],decls:15,vars:10,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-fw","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"grey-text"],[1,"alert","alert-error","my-4"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[3,"ngClass"],[1,"alert","alert-warning","my-4"],[1,"grey-text","mb-0"],[1,"mt-2","mb-0"],[1,"btn","btn-primary","mb-0",3,"click"]],template:function(u,m){u&1&&(r(0,"div",0)(1,"h3",1),a(2),s(3,"translate"),n()(),r(4,"div",2)(5,"div",3),v(6,"i",4),n(),r(7,"div",5)(8,"h4",6),a(9),s(10,"translate"),n(),h(11,P,3,3,"p",7)(12,U,2,1,"div",8)(13,V,11,17,"div",9)(14,A,11,8,"div"),n()()),u&2&&(i(2),p(o(3,6,"menu.restart.title")),i(7),p(o(10,8,"restart.title_restart")),i(2),d(m.error?-1:11),i(),d(m.error?12:-1),i(),d(m.error?-1:13),i(),d(m.timeout?14:-1))},dependencies:[T,E],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;margin-top:15px}"]})}return t})();export{Y as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Ce,b as be}from"./chunk-NIGZKKLM.js";import{a as _e}from"./chunk-44XAYR34.js";import{o as he,w as j}from"./chunk-RMFHCCDM.js";import{a as R}from"./chunk-IUUJYZCY.js";import{a as A}from"./chunk-OZTQT47N.js";import{a as fe}from"./chunk-BZVO3JIQ.js";import{a as me}from"./chunk-EFBNPDVN.js";import{h as le,i as re,j as se,k as de,l as pe,m as ce,n as ue,o as ge}from"./chunk-F5SS6TN7.js";import{c as K,d as Q,e as X,f as Y,g as Z,j as ee,m as ie,p as te,q as ne,y as ae,z as oe}from"./chunk-Z4CHNCHA.js";import{a as H}from"./chunk-OJZZVAQX.js";import{a as W,d as J}from"./chunk-HMOW3VNR.js";import{b as N}from"./chunk-EIKIGJGT.js";import{b as E,j as D}from"./chunk-G3NT5LV6.js";import{a as M,b as T}from"./chunk-H3E4T6KH.js";import{$b as C,Bb as v,Bc as c,Cc as u,Dc as O,Lb as B,Mb as x,Rb as p,Tb as U,Ub as z,Vb as F,Wb as o,Xb as l,Yb as r,ad as L,cc as m,dc as s,eb as I,h as S,ib as a,kd as G,na as w,nc as g,oc as k,pc as b,ub as V,w as y,xa as _,ya as h,yc as q}from"./chunk-KDJPDALB.js";function ke(t,d){if(t&1){let e=C();o(0,"button",15),m("click",function(){_(e);let i=s();return h(i.$activeModal.dismiss("Dismiss"))}),g(1),c(2,"translate"),l()}t&2&&(a(),b(" ",u(2,1,"form.button_close")," "))}function Se(t,d){if(t&1){let e=C();o(0,"button",15),m("click",function(){_(e);let i=s();return h(i.$activeModal.dismiss("Dismiss"))}),g(1),c(2,"translate"),l()}t&2&&(a(),b(" ",u(2,1,"form.button_close")," "))}function Be(t,d){if(t&1&&(o(0,"a",14),g(1),c(2,"translate"),r(3,"i",16),l()),t&2){let e=s();x("href",e.plugin.links.homepage||e.plugin.links.npm,I),a(),b(" ",u(2,2,"plugins.button_homepage")," ")}}var xe=(()=>{class t{$activeModal=w(ce);plugin;defaultIcon="assets/hb-icon.png";ngOnInit(){this.plugin.icon||(this.plugin.icon=this.defaultIcon)}handleIconError(){this.plugin.icon=this.defaultIcon}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],inputs:{plugin:"plugin"},decls:26,vars:14,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body","w-100","text-center"],["alt","Plugin Icon",1,"mb-3","plugin-icon",3,"error","src"],[1,"my-3"],[1,"m-0","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-right"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-fw","fa-external-link-alt"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),g(3),c(4,"translate"),l(),o(5,"button",3),c(6,"translate"),m("click",function(){return i.$activeModal.dismiss("Dismiss")}),o(7,"span",4),g(8,"\xD7"),l()()(),o(9,"div",5)(10,"img",6),m("error",function(){return i.handleIconError()}),l(),o(11,"h4"),g(12),l(),o(13,"p",7),g(14),l(),o(15,"p",8),g(16),l(),o(17,"p",8),g(18),l()(),o(19,"div",9)(20,"div",10),v(21,ke,3,3,"button",11),l(),o(22,"div",12),v(23,Se,3,3,"button",11),l(),o(24,"div",13),v(25,Be,4,4,"a",14),l()()()),n&2&&(a(3),k(u(4,10,"plugins.manage.information")),a(2),B("aria-label",u(6,12,"form.button_close")),a(5),x("src",i.plugin.icon,I),a(2),k(i.plugin.displayName||i.plugin.name),a(2),k(i.plugin.description),a(2),k(i.plugin.name),a(2),b("@",i.plugin.author,""),a(3),p(i.plugin.links.homepage||i.plugin.links.npm?21:-1),a(2),p(!i.plugin.links.homepage&&!i.plugin.links.npm?23:-1),a(2),p(i.plugin.links.homepage||i.plugin.links.npm?25:-1))},dependencies:[T],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]})}return t})();var ye=(t,d)=>({"fa-bridge-circle-exclamation orange-text":t,"fa-bridge-circle-xmark red-text":d});function Ie(t,d){t&1&&r(0,"i",25)}function Ve(t,d){t&1&&r(0,"i",26)}function Te(t,d){if(t&1){let e=C();o(0,"a",24),m("click",function(){_(e);let i=s();return h(i.openHb2InfoModal())}),v(1,Ie,1,0,"i",25)(2,Ve,1,0,"i",26),l()}if(t&2){let e=s();x("ngbTooltip","Homebridge v2.0 Readiness")("placement","right"),a(),p(e.hb2Status==="supported"?1:-1),a(),p(e.hb2Status==="unknown"?2:-1)}}function $e(t,d){if(t&1){let e=C();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=s();return h(i.$plugin.checkAndUpdatePlugin(i.plugin,i.plugin.updateTag||"latest"))}),r(3,"i",28),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.button_update")),B("aria-label",u(2,4,"plugins.button_update")))}function Ee(t,d){if(t&1){let e=C();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=s();return h(i.$plugin.switchToScoped(i.plugin))}),r(3,"i",29),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.manage.scoped.switch")),B("aria-label",u(2,4,"plugins.manage.scoped.switch")))}function Me(t,d){if(t&1){let e=C();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=s();return h(i.$plugin.settings(i.plugin))}),r(3,"i",30),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.button_set_up")),B("aria-label",u(2,4,"plugins.button_set_up")))}function De(t,d){if(t&1){let e=C();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=s();return h(i.$plugin.bridgeSettings(i.plugin))}),r(3,"i",31),l()}t&2&&(x("ngbTooltip",u(1,2,"child_bridge.setup")),B("aria-label",u(2,4,"child_bridge.setup")))}function Ne(t,d){if(t&1){let e=C();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=s();return h(i.$plugin.bridgeSettings(i.plugin))}),r(3,"i",32),l()}t&2&&(x("ngbTooltip",u(1,2,"child_bridge.bridge_connect")),B("aria-label",u(2,4,"child_bridge.bridge_connect")))}function He(t,d){if(t&1&&r(0,"i",13),t&2){let e=s();x("ngClass",q(1,ye,e.childBridgeStatus==="pending",e.childBridgeStatus==="down"))}}function je(t,d){if(t&1){let e=C();o(0,"p",18)(1,"a",33),m("click",function(){_(e);let i=s();return h(i.openVerifiedModal())}),r(2,"i",34),o(3,"span",17),g(4),c(5,"translate"),l()()()}t&2&&(a(4),k(u(5,1,"plugins.donate.button_verified")))}function Ae(t,d){if(t&1){let e=C();o(0,"p",18)(1,"a",35),m("click",function(){_(e);let i=s();return h(i.openVerifiedModal())}),r(2,"i",36),o(3,"span",17),g(4),c(5,"translate"),l()()()}t&2&&(a(4),k(u(5,1,"plugins.donate.button_not_verified")))}function Re(t,d){if(t&1){let e=C();o(0,"a",37),m("click",function(){_(e);let i=s();return h(i.openFundingModal(i.plugin))}),r(1,"i",38),o(2,"span",17),g(3),l()()}if(t&2){let e=s();a(3),b("@",e.plugin.author,"")}}function Ue(t,d){if(t&1&&(o(0,"span",17),r(1,"i",39),g(2),l()),t&2){let e=s();a(2),b("@",e.plugin.author," ")}}function ze(t,d){if(t&1&&(o(0,"span"),g(1),c(2,"date"),l()),t&2){let e=s(2);a(),b("(",O(2,1,e.plugin.lastUpdated,"yyyy-MM-dd"),")")}}function Fe(t,d){if(t&1&&(o(0,"span"),r(1,"i",40),o(2,"span",17),g(3),v(4,ze,3,4,"span"),l()()),t&2){let e=s();a(3),b("v",e.plugin.latestVersion," "),a(),p(e.plugin.lastUpdated?4:-1)}}function qe(t,d){if(t&1&&(o(0,"span"),r(1,"i",41),g(2),l()),t&2){let e=s();a(2),b("v",e.plugin.installedVersion," ")}}function Oe(t,d){if(t&1){let e=C();o(0,"a",27),c(1,"translate"),m("click",function(){_(e);let i=s();return h(i.doChildBridgeAction("restart"))}),r(2,"i",42),l()}if(t&2){let e=s();x("ngbTooltip",u(1,1,e.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function Le(t,d){if(t&1){let e=C();o(0,"a",43),m("click",function(){_(e);let i=s();return h(i.enablePlugin(i.plugin))}),r(1,"i",44),c(2,"translate"),l()}t&2&&(a(),x("ngbTooltip",u(2,1,"plugins.status_disabled")))}function Ge(t,d){if(t&1){let e=C();o(0,"a",45),m("click",function(){_(e);let i=s();return h(i.$plugin.installAlternateVersion(i.plugin))}),r(1,"i",46),l()}}function We(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.viewPluginLog(i.plugin))}),r(1,"i",55),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"plugins.manage.plugin_logs")," "))}function Je(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.$plugin.installAlternateVersion(i.plugin))}),r(1,"i",56),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"plugins.manage.manage_version")," "))}function Ke(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.$plugin.jsonEditor(i.plugin))}),r(1,"i",57),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"plugins.manage.json_config")," "))}function Qe(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.disablePlugin(i.plugin))}),r(1,"i",58),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"plugins.manage.disable")," "))}function Xe(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.enablePlugin(i.plugin))}),r(1,"i",59),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"plugins.manage.enable")," "))}function Ye(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.$plugin.uninstallPlugin(i.plugin,i.setChildBridges))}),r(1,"i",60),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"plugins.button_uninstall")," "))}function Ze(t,d){t&1&&r(0,"div",53)}function ei(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(3);return h(i.doChildBridgeAction("restart"))}),r(1,"i",62),g(2),c(3,"translate"),l()}if(t&2){let e=s(3);a(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function ii(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(3);return h(i.doChildBridgeAction("stop"))}),r(1,"i",63),g(2),c(3,"translate"),l()}if(t&2){let e=s(3);a(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function ti(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(3);return h(i.doChildBridgeAction("start"))}),r(1,"i",64),g(2),c(3,"translate"),l()}if(t&2){let e=s(3);a(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function ni(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(3);return h(i.$plugin.resetChildBridges(i.setChildBridges))}),r(1,"i",65),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"child_bridge.reset_accessories")," "))}function ai(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",61),g(2),c(3,"translate"),l(),v(4,ei,4,3,"button",52)(5,ii,4,3,"button",52)(6,ti,4,3,"button",52)(7,ni,4,3,"button",52)}if(t&2){let e=s(2);a(2),b(" ",u(3,5,"child_bridge.bridge_settings")," "),a(2),p(e.childBridgeRestartInProgress?-1:4),a(),p(e.allChildBridgesStopped?-1:5),a(),p(e.allChildBridgesStopped?6:-1),a(),p(e.$settings.env.serviceMode?7:-1)}}function oi(t,d){t&1&&r(0,"div",53)}function li(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",66),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"child_bridge.setup")," "))}function ri(t,d){t&1&&r(0,"div",53)}function si(t,d){if(t&1){let e=C();o(0,"button",50),m("click",function(){_(e);let i=s(2);return h(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",66),g(2),c(3,"translate"),l()}t&2&&(a(2),b(" ",u(3,1,"child_bridge.setup")," "))}function di(t,d){t&1&&r(0,"div",53)}function pi(t,d){if(t&1&&(o(0,"a",54),r(1,"i",67),g(2),c(3,"translate"),l()),t&2){let e=s(2);x("href",e.plugin.links.bugs,I),a(2),b(" ",u(3,2,"support.links.issue")," ")}}function ci(t,d){if(t&1){let e=C();o(0,"span",23)(1,"a",47),r(2,"i",48),l(),o(3,"div",49)(4,"button",50),m("click",function(){_(e);let i=s();return h(i.$plugin.settings(i.plugin))}),r(5,"i",51),g(6),c(7,"translate"),l(),v(8,We,4,3,"button",52)(9,Je,4,3,"button",52)(10,Ke,4,3,"button",52)(11,Qe,4,3,"button",52)(12,Xe,4,3,"button",52)(13,Ye,4,3,"button",52)(14,Ze,1,0,"div",53)(15,ai,8,7)(16,oi,1,0,"div",53)(17,li,4,3,"button",52)(18,ri,1,0,"div",53)(19,si,4,3,"button",52)(20,di,1,0,"div",53)(21,pi,4,4,"a",54),l()()}if(t&2){let e=s();a(),B("aria-label","Plugin Actions Dropdown"),a(5),b(" ",u(7,16,"plugins.button_settings")," "),a(2),p(e.plugin.isConfigured&&!e.plugin.disabled?8:-1),a(),p(e.plugin.publicPackage?9:-1),a(),p(!e.isMobile&&e.plugin.name!=="homebridge-config-ui-x"?10:-1),a(),p(e.plugin.name!=="homebridge-config-ui-x"&&!e.plugin.disabled?11:-1),a(),p(e.plugin.name!=="homebridge-config-ui-x"&&e.plugin.disabled?12:-1),a(),p(e.plugin.name!=="homebridge-config-ui-x"?13:-1),a(),p(!e.plugin.disabled&&e.plugin.isConfigured&&e.plugin.hasChildBridges&&e.plugin.installedVersion&&e.plugin.name!=="homebridge-config-ui-x"?14:-1),a(),p(e.plugin.hasChildBridges&&!e.plugin.disabled?15:-1),a(),p(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&!e.plugin.recommendChildBridge?16:-1),a(),p(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&!e.plugin.recommendChildBridge?17:-1),a(),p(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&e.plugin.recommendChildBridge&&e.plugin.updateAvailable?18:-1),a(),p(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&e.plugin.recommendChildBridge&&e.plugin.updateAvailable?19:-1),a(),p(e.plugin.links!=null&&e.plugin.links.bugs?20:-1),a(),p(e.plugin.links!=null&&e.plugin.links.bugs?21:-1)}}var we=(()=>{class t{$api=w(E);$md=w(fe);$modal=w(ue);$plugin=w(j);$settings=w(N);$toastr=w(D);$translate=w(M);$ws=w(H);plugin;hasChildBridges=!1;hasUnpairedChildBridges=!1;allChildBridgesStopped=!1;childBridgeStatus="pending";childBridgeRestartInProgress=!1;defaultIcon="assets/hb-icon.png";isMobile;setChildBridges=[];prettyDisplayName="";hb2Status="unknown";io;set childBridges(e){var f,$;this.hasChildBridges=e.length>0,this.hasUnpairedChildBridges=e.filter(P=>P.paired===!1).length>0,this.allChildBridgesStopped=e.filter(P=>P.manuallyStopped===!0).length===e.length,this.hasChildBridges&&(e.some(P=>P.status==="down")?this.childBridgeStatus="down":e.some(P=>P.status==="pending")?this.childBridgeStatus="pending":e.some(P=>P.status==="ok")&&(this.childBridgeStatus="ok")),this.setChildBridges=e;let n=this.$settings.env.homebridgeVersion.split(".")[0],i=(($=(f=this.plugin.engines)==null?void 0:f.homebridge)==null?void 0:$.split("||").map(P=>P.trim()))||[];this.hb2Status=n==="2"?"hide":i.some(P=>P.startsWith("^2")||P.startsWith(">=2"))?"supported":this.hb2Status}ngOnInit(){this.isMobile=this.$md.detect.mobile(),this.prettyDisplayName=this.prettifyName(),this.io=this.$ws.getExistingNamespace("child-bridges"),this.plugin.icon||(this.plugin.icon=this.defaultIcon)}openFundingModal(e){let n=this.$modal.open(be,{size:"lg",backdrop:"static"});n.componentInstance.plugin=e}openVerifiedModal(){let e=this.$modal.open(A,{size:"lg",backdrop:"static"});this.plugin.verifiedPlugin||this.plugin.verifiedPlusPlugin?(e.componentInstance.title=this.$translate.instant("plugins.manage.verified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.verified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.verified_message"),e.componentInstance.faIconClass="fa-shield-alt green-text"):(e.componentInstance.title=this.$translate.instant("plugins.manage.unverified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.unverified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.unverified_message"),e.componentInstance.faIconClass="fa-shield-alt grey-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/verified-Plugins"}pluginInfoModal(e){let n=this.$modal.open(xe,{size:"lg",backdrop:"static"});n.componentInstance.plugin=e}disablePlugin(e){let n=this.$modal.open(Ce,{size:"lg",backdrop:"static"});n.componentInstance.pluginName=e.name,n.componentInstance.isConfigured=e.isConfigured,n.componentInstance.isConfiguredDynamicPlatform=e.isConfiguredDynamicPlatform,n.result.then(()=>S(this,null,function*(){try{yield y(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{})),e.disabled=!0,this.hasChildBridges&&this.doChildBridgeAction("stop"),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}))}enablePlugin(e){let n=this.$modal.open(me,{size:"lg",backdrop:"static"});n.componentInstance.title=`${this.$translate.instant("plugins.manage.enable")}: ${e.name}`,n.componentInstance.message=this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.name}),n.componentInstance.confirmButtonLabel=this.$translate.instant("plugins.manage.enable"),n.componentInstance.faIconClass="fa-circle-play primary-text",n.result.then(()=>S(this,null,function*(){try{yield y(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{})),e.disabled=!1,this.hasChildBridges&&(yield this.doChildBridgeAction("start")),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}))}viewPluginLog(e){let n=this.$modal.open(he,{size:"xl",backdrop:"static"});n.componentInstance.plugin=e}doChildBridgeAction(e){return S(this,null,function*(){this.childBridgeRestartInProgress=!0;try{for(let n of this.setChildBridges)yield y(this.io.request(`${e}-child-bridge`,n.username))}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress=!1}finally{setTimeout(()=>{this.childBridgeRestartInProgress=!1},e==="restart"?12e3:e==="stop"?6e3:1e3)}})}handleIconError(){this.plugin.icon=this.defaultIcon}prettifyName(){let e=this.plugin.displayName||(this.plugin.name.charAt(0)==="@"?this.plugin.name.split("/")[1]:this.plugin.name);return e=e.replace(/-/g," "),this.isMobile&&e.toLowerCase().startsWith("homebridge ")&&(e=e.replace(/^homebridge /i,"")),this.plugin.displayName||(e=e.replace(/\w\S*/g,n=>n.charAt(0).toUpperCase()+n.substring(1).toLowerCase())),e}openHb2InfoModal(){let e=this.$modal.open(A,{size:"lg",backdrop:"static"});e.componentInstance.title="Plugin Readiness",this.hb2Status==="supported"?(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} is ready for Homebridge v2.0`,e.componentInstance.message="The developer has specifically marked your installed version of the plugin as compatible with Homebridge v2.0.",e.componentInstance.faIconClass="fa-check-circle green-text"):(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} might not be ready for Homebridge v2.0`,e.componentInstance.message="The developer has not specifically marked your installed version of the plugin as compatible with Homebridge v2.0, but it may still work.",e.componentInstance.faIconClass="fa-question-circle orange-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0"}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=V({type:t,selectors:[["app-plugin-card"]],inputs:{plugin:"plugin",childBridges:"childBridges"},decls:38,vars:21,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,"d-flex","flex-column","mr-3","align-items-center","justify-content-between"],["alt","Plugin Icon",1,"plugin-icon-card","mb-3",3,"error","src"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"ngbTooltip","placement"],[1,"d-flex","flex-column","justify-content-between",2,"min-width","calc(100% - 80px)"],[1,"d-flex","flex-row","align-items-end"],[1,"d-flex","flex-column","w-100"],[1,"d-flex","flex-row"],[1,"card-title","mb-2","text-truncate"],[1,"ml-auto"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover",1,"card-link",3,"ngbTooltip"],[1,"fas","fa-fw","fa-spinner","fa-pulse","fa-lg","grey-text","ml-3",3,"hidden"],[1,"fas","fa-fw","fa-lg","ml-3",3,"ngClass"],[1,"card-text","mb-2","text-truncate"],["href","javascript:void(0)",1,"card-link","grey-text",3,"click"],[1,"fas","fa-fw","fa-info-circle","fa-lg","mr-1"],[1,"grey-text"],[1,"card-text","mb-2"],["href","javascript:void(0)",1,"card-link","pink-text"],[1,"card-text","mb-0","grey-text"],["href","javascript:void(0)",1,"card-link","red-text"],["href","javascript:void(0)"],["ngbDropdown","","placement","left",1,"d-inline-block","ml-3","mt-auto"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"click","ngbTooltip","placement"],["aria-label","The developer has specifically marked this plugin as compatible with Homebridge v2.0",1,"fas","fa-check-circle","green-text","fa-xl"],["aria-label","The developer has not specifically marked this plugin as compatible with Homebridge v2.0, but it may still work.",1,"fas","fa-question-circle","orange-text","fa-xl"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover",1,"card-link",3,"click","ngbTooltip"],[1,"far","fa-fw","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-arrow-right-arrow-left","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-sliders","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-fw","fa-bridge","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-fw","fa-qrcode","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],["href","javascript:void(0)",1,"card-link","green-text",3,"click"],[1,"fas","fa-fw","fa-shield-alt","fa-lg","mr-1"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-fw","fa-shield-alt","fa-lg","mr-1",2,"opacity","0.25"],["href","javascript:void(0)",1,"card-link","pink-text",3,"click"],[1,"fas","fa-fw","fa-heart","fa-lg","mr-1"],[1,"fas","fa-fw","fa-heart","fa-lg","mr-1",2,"opacity","0.5"],[1,"far","fa-fw","fa-circle-dot","fa-lg","mr-1"],[1,"far","fa-fw","fa-circle-check","fa-lg","mr-1"],[1,"fas","fa-fw","fa-lg","fa-power-off","ml-3"],["href","javascript:void(0)",1,"card-link","red-text",3,"click"],["container","body","openDelay","150","triggers","hover",1,"far","fa-fw","fa-pause-circle","fa-lg",3,"ngbTooltip"],["href","javascript:void(0)",3,"click"],[1,"far","fa-fw","fa-arrow-alt-circle-down","fa-lg"],["href","javascript:void(0)","ngbDropdownToggle","",1,"card-link","text-decoration-none","mt-auto",2,"outline","none"],[1,"fa-solid","fa-fw","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu","","aria-labelledby","Plugin Actions Dropdown"],["ngbDropdownItem","",3,"click"],[1,"fas","fa-fw","fa-sliders"],["ngbDropdownItem",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[1,"fas","fa-fw","fa-wave-square"],[1,"fas","fa-fw","fa-code-compare"],[1,"fas","fa-fw","fa-code"],[1,"far","fa-fw","fa-circle-pause"],[1,"far","fa-fw","fa-circle-play"],[1,"fas","fa-fw","fa-trash"],[1,"fas","fa-fw","fa-bridge"],[1,"fa-fw","icon-button","fas","fa-fw","fa-power-off"],[1,"fas","fa-fw","fa-stop"],[1,"fas","fa-fw","fa-play"],[1,"fas","fa-fw","fa-broom"],[1,"icon-button","fas","fa-fw","fa-bridge"],[1,"icon-button","fa","fa-fw","fa-question-circle-o"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),m("error",function(){return i.handleIconError()}),l(),v(4,Te,3,4,"a",4),l(),o(5,"div",5)(6,"div",6)(7,"div",7)(8,"div",8)(9,"h5",9),g(10),l(),o(11,"div",10),v(12,$e,4,6,"a",11)(13,Ee,4,6,"a",11)(14,Me,4,6,"a",11)(15,De,4,6,"a",11)(16,Ne,4,6,"a",11),r(17,"i",12),v(18,He,1,4,"i",13),l()(),o(19,"p",14)(20,"a",15),m("click",function(){return i.pluginInfoModal(i.plugin)}),r(21,"i",16),o(22,"span",17),g(23),l()()(),v(24,je,6,3,"p",18)(25,Ae,6,3,"p",18),o(26,"p",18),v(27,Re,4,1,"a",19)(28,Ue,3,1,"span",17),l(),o(29,"div",8)(30,"p",20),v(31,Fe,5,2,"span")(32,qe,3,1,"span"),l(),o(33,"div",10),v(34,Oe,3,3,"a",11)(35,Le,3,3,"a",21)(36,Ge,2,0,"a",22)(37,ci,22,18,"span",23),l()()()()()()()),n&2&&(a(3),x("src",i.plugin.icon,I),a(),p(i.plugin.installedVersion&&i.hb2Status!=="hide"?4:-1),a(6),k(i.prettyDisplayName),a(2),p(i.plugin.installedVersion&&i.plugin.updateAvailable&&!i.childBridgeRestartInProgress?12:-1),a(),p(i.plugin.installedVersion&&(i.plugin.newHbScope==null?null:i.plugin.newHbScope.switch)===i.plugin.installedVersion&&!i.childBridgeRestartInProgress?13:-1),a(),p(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&!i.plugin.isConfigured&&!i.childBridgeRestartInProgress?14:-1),a(),p(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&!i.plugin.hasChildBridges&&!i.plugin.disabled&&i.plugin.recommendChildBridge&&!i.childBridgeRestartInProgress?15:-1),a(),p(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&i.plugin.hasChildBridges&&!i.childBridgeRestartInProgress&&i.hasUnpairedChildBridges&&i.childBridgeStatus==="ok"&&!i.plugin.disabled?16:-1),a(),x("hidden",!i.childBridgeRestartInProgress),a(),p(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&i.plugin.hasChildBridges&&!i.childBridgeRestartInProgress&&!i.hasUnpairedChildBridges&&i.childBridgeStatus!=="ok"&&!i.plugin.disabled?18:-1),a(5),k(i.plugin.name),a(),p(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin?24:-1),a(),p(!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?25:-1),a(2),p((i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)&&i.plugin.funding?27:-1),a(),p((i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)&&i.plugin.funding?-1:28),a(3),p(i.plugin.publicPackage&&!i.plugin.installedVersion?31:-1),a(),p(i.plugin.installedVersion?32:-1),a(2),p(!i.plugin.disabled&&i.plugin.hasChildBridges&&i.childBridgeStatus==="ok"?34:-1),a(),p(i.plugin.installedVersion&&i.plugin.disabled?35:-1),a(),p(i.plugin.publicPackage&&!i.plugin.installedVersion?36:-1),a(),p(i.plugin.installedVersion?37:-1))},dependencies:[ge,L,pe,de,se,re,le,G,T],encapsulation:2})}return t})();function ui(t,d){t&1&&r(0,"app-spinner")}function gi(t,d){if(t&1){let e=C();o(0,"a",11),m("click",function(){_(e);let i=s();return h(i.onClearSearch())}),r(1,"i",12),l()}}function mi(t,d){if(t&1&&(o(0,"div",9),r(1,"app-plugin-card",13),l()),t&2){let e=d.$implicit,n=s();a(),x("plugin",e)("childBridges",n.getPluginChildBridges(e))}}function fi(t,d){t&1&&(o(0,"div",10),r(1,"i",14),o(2,"p"),g(3),c(4,"translate"),l()()),t&2&&(a(3),k(u(4,1,"plugins.placeholder_search_first")))}var at=(()=>{class t{$api=w(E);$plugin=w(j);$router=w(J);$settings=w(N);$toastr=w(D);$translate=w(M);$ws=w(H);loading=!0;installedPlugins=[];childBridges=[];showExitButton=!1;form=new Z({query:new ee("",[Q.required])});io;navigationSubscription;ngOnInit(){return S(this,null,function*(){this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>S(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins();let e=this.$router.parseUrl(this.$router.url).queryParams.installed;if(e){let n=this.installedPlugins.find(i=>i.name===e);n&&!n.isConfigured&&this.$plugin.settings(n),this.$router.navigate(["/plugins"])}})),this.io.socket.on("child-bridge-status-update",e=>{let n=this.childBridges.find(i=>i.username===e.username);n?Object.assign(n,e):this.childBridges.push(e)}),this.navigationSubscription=this.$router.events.subscribe(e=>{e instanceof W&&this.loadInstalledPlugins()})})}loadInstalledPlugins(){return S(this,null,function*(){this.form.setValue({query:""}),this.showExitButton=!1,this.installedPlugins=[],this.loading=!0;try{let e=yield y(this.$api.get("/plugins"));this.installedPlugins=e.filter(i=>i.name!=="homebridge-config-ui-x"),yield this.appendMetaInfo();let n=this.installedPlugins.sort((i,f)=>i.updateAvailable!==f.updateAvailable?i.updateAvailable?-1:1:i.newHbScope&&!f.newHbScope?-1:i.disabled!==f.disabled?i.disabled?1:-1:i.isConfigured!==f.isConfigured?i.isConfigured?1:-1:i.hasChildBridgesUnpaired!==f.hasChildBridgesUnpaired?i.hasChildBridgesUnpaired?-1:1:i.hasChildBridges!==f.hasChildBridges&&this.$settings.env.recommendChildBridges?i.hasChildBridges?1:-1:i.name.localeCompare(f.name));return this.loading=!1,n}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("plugins.toast_failed_to_load_plugins"),this.$translate.instant("toast.title_error"))}})}appendMetaInfo(){return S(this,null,function*(){yield Promise.all(this.installedPlugins.filter(e=>e.installedVersion).map(e=>S(this,null,function*(){try{let n=yield y(this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`));e.isConfigured=n.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.prototype.hasOwnProperty.call(n[0],"platform"),e.recommendChildBridge=e.isConfiguredDynamicPlatform&&this.$settings.env.recommendChildBridges&&this.$settings.env.serviceMode&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&n.some(f=>f._bridge&&f._bridge.username);let i=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=i.some(f=>!f.paired)}catch{e.isConfigured=!0,e.hasChildBridges=!0}})))})}search(){this.installedPlugins=[],this.loading=!0,this.showExitButton=!0,this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`).subscribe({next:e=>{let n=new Set;this.installedPlugins=e.sort((i,f)=>i.newHbScope&&!f.newHbScope?-1:!i.newHbScope&&f.newHbScope?1:0).reduce((i,f)=>{if(f.name==="homebridge-config-ui-x"||n.has(f.name))return i;if(f.newHbScope){let $=f.newHbScope.to,P=e.some(Pe=>Pe.name===$);(f.installedVersion||!P)&&(n.add($),i.push(f))}else i.push(f);return i},[]).sort((i,f)=>i.installedVersion!==f.installedVersion?i.installedVersion?-1:1:0),this.appendMetaInfo(),this.loading=!1},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}})}onClearSearch(){this.loadInstalledPlugins()}onSubmit({value:e}){e.query.length?this.search():this.loadInstalledPlugins()}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges=e})}getPluginChildBridges(e){return this.childBridges.filter(n=>n.plugin===e.name)}ngOnDestroy(){this.navigationSubscription&&this.navigationSubscription.unsubscribe(),this.io.end()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],decls:16,vars:10,consts:[[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"row"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"hb-npm-search",3,"placeholder"],["href","javascript:void(0)",1,"hb-npm-search-clear"],[1,"d-flex","flex-wrap","justify-content-between"],[1,"hb-plugin-space-between"],[1,"alert","alert-info","mt-4","text-center","w-100"],["href","javascript:void(0)",1,"hb-npm-search-clear",3,"click"],[1,"far","fa-fw","fa-times-circle"],[3,"plugin","childBridges"],[1,"fas","fa-fw","fa-magnifying-glass","primary-text","my-3",2,"font-size","75px"]],template:function(n,i){n&1&&(v(0,ui,1,0,"app-spinner"),o(1,"div",0)(2,"div",1)(3,"h3",2),g(4),c(5,"translate"),l()()(),o(6,"div",3)(7,"div",4)(8,"form",5),m("ngSubmit",function(){return i.onSubmit(i.form)}),r(9,"input",6),c(10,"translate"),v(11,gi,2,0,"a",7),l()()(),o(12,"div",8),z(13,mi,2,2,"div",9,U),v(15,fi,5,3,"div",10),l()),n&2&&(p(i.loading?0:-1),a(4),k(u(5,6,"menu.label_plugins")),a(4),x("formGroup",i.form),a(),x("placeholder",u(10,8,"plugins.placeholder_search_plugin")),a(2),p(i.showExitButton?11:-1),a(2),F(i.installedPlugins),a(2),p(i.installedPlugins.length===0&&!i.loading?15:-1))},dependencies:[_e,ae,ie,K,X,Y,oe,te,ne,we,T],styles:[".hb-npm-search[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px;margin-bottom:15px}@media (hover: hover){.hb-npm-search[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.hb-npm-search[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.hb-npm-search-clear[_ngcontent-%COMP%]{position:absolute;right:25px;font-size:35px;color:#d0d0d0;line-height:50px;cursor:pointer}.hb-plugin-space-between[_ngcontent-%COMP%]{box-sizing:border-box;width:calc(50% - 6.6666666667px)}@media only screen and (max-width: 991px){.hb-plugin-space-between[_ngcontent-%COMP%]{width:100%}}"]})}return t})();export{at as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{f as a}from"./chunk-7TSUSJHK.js";import"./chunk-RXIWNBGC.js";import"./chunk-ZRYCN4PM.js";import"./chunk-HBGENGOA.js";import"./chunk-44XAYR34.js";import"./chunk-RMFHCCDM.js";import"./chunk-IUUJYZCY.js";import"./chunk-MMPQXC6H.js";import"./chunk-6MDI4RNQ.js";import"./chunk-BWVQQ7XD.js";import"./chunk-T6FYP7FJ.js";import"./chunk-P5WCYSBI.js";import"./chunk-F4QKTMKG.js";import"./chunk-OZTQT47N.js";import"./chunk-CK234OHO.js";import"./chunk-BZVO3JIQ.js";import"./chunk-EFBNPDVN.js";import"./chunk-F5SS6TN7.js";import"./chunk-Z4CHNCHA.js";import"./chunk-OJZZVAQX.js";import"./chunk-HMOW3VNR.js";import"./chunk-F46ML4GE.js";import"./chunk-EIKIGJGT.js";import"./chunk-G3NT5LV6.js";import"./chunk-QHHRJOCD.js";import"./chunk-H3E4T6KH.js";import"./chunk-KDJPDALB.js";export{a as StatusComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as se}from"./chunk-P5WCYSBI.js";import{g as re,m as A,n as ae}from"./chunk-F5SS6TN7.js";import{b as P,c as T,d as C,e as D,f as z,g as F,j as x,m as R,o as Q,p as L,q as O,w as ne,y as I,z as M}from"./chunk-Z4CHNCHA.js";import{b as ie}from"./chunk-HMOW3VNR.js";import{c as j}from"./chunk-F46ML4GE.js";import{a as ve}from"./chunk-EIKIGJGT.js";import{b as S,j as U}from"./chunk-G3NT5LV6.js";import{a as $,b as E}from"./chunk-H3E4T6KH.js";import{$b as G,Bb as B,Bc as s,Cc as o,Dc as te,Lb as f,Mb as u,Rb as g,Tb as W,Ub as X,Vb as Y,Wb as i,Xb as l,Yb as m,ad as q,cc as _,dc as h,g as be,ib as e,kc as Z,lc as ee,na as d,nc as p,oc as v,pc as c,rb as K,ub as y,xa as N,xc as w,ya as V}from"./chunk-KDJPDALB.js";function Ce(r,k){r&1&&(i(0,"p",8)(1,"small"),p(2),s(3,"translate"),l()()),r&2&&(e(2),v(o(3,1,"login.invalid_credentials")))}var oe=(()=>{class r{$activeModal=d(A);$api=d(S);$toastr=d(U);$translate=d($);formGroup=new F({password:new x("",[C.required])});invalidCredentials=!1;disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))},error:()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0}})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:28,vars:24,consts:[[1,"modal-content",2,"min-height","300px"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"form-group"],["type","password","autocomplete","current-password",1,"form-control",3,"formControl","placeholder"],[1,"red-text"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),p(3),s(4,"translate"),l(),i(5,"button",3),s(6,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),i(7,"span",4),p(8,"\xD7"),l()()(),i(9,"div",5)(10,"p"),p(11),s(12,"translate"),l(),i(13,"div",6),m(14,"input",7),s(15,"translate"),l(),B(16,Ce,4,3,"p",8),l(),i(17,"div",9)(18,"div",10)(19,"button",11),s(20,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(21),s(22,"translate"),l()(),m(23,"div",12),i(24,"div",13)(25,"button",14),_("click",function(){return n.disable2fa()}),p(26),s(27,"translate"),l()()()()),a&2&&(e(3),v(o(4,10,"users.setup_2fa_disable")),e(2),f("aria-label",o(6,12,"form.button_close")),e(6),v(o(12,14,"users.setup_2fa_disable_current_password")),e(3),u("formControl",n.formGroup.controls.password)("placeholder",o(15,16,"users.label_password")),e(2),g(n.invalidCredentials?16:-1),e(3),f("aria-label",o(20,18,"form.button_close")),e(2),c(" ",o(22,20,"form.button_close")," "),e(4),u("disabled",n.formGroup.invalid),e(),c(" ",o(27,22,"form.button_disable")," "))},dependencies:[I,T,D,M,Q,E],encapsulation:2})}return r})();var le=be(ve(),1);var xe=["qrcode"],he=r=>({timeDiffError:r});function we(r,k){if(r&1&&(i(0,"div",6)(1,"h3"),p(2),s(3,"translate"),l(),i(4,"p"),p(5),s(6,"translate"),l()()),r&2){let t=h();e(2),v(o(3,2,"users.setup_2fa_cannot_setup_2fa")),e(3),v(te(6,4,"users.setup_2fa_server_time_out",w(7,he,t.timeDiffError)))}}function ge(r,k){r&1&&(i(0,"div")(1,"p"),p(2),s(3,"translate"),l()()),r&2&&(e(2),v(o(3,1,"users.setup_2fa_scan_qr_code")))}function ye(r,k){if(r&1&&(i(0,"div",10)(1,"p"),p(2),s(3,"translate"),l(),i(4,"div",16),m(5,"input",17),l()()),r&2){let t=h();e(2),v(o(3,2,"users.setup_2fa_enter_code")),e(3),u("formControl",t.formGroup.controls.code)}}function Se(r,k){if(r&1){let t=G();i(0,"button",18),_("click",function(){N(t);let n=h();return V(n.enable2fa())}),p(1),s(2,"translate"),l()}if(r&2){let t=h();u("disabled",t.formGroup.invalid),e(),c(" ",o(2,2,"form.button_enable")," ")}}var pe=(()=>{class r{$activeModal=d(A);$api=d(S);$toastr=d(U);$translate=d($);user;qrcodeElement=K("qrcode");timeDiffError=null;otpString;formGroup=new F({code:new x("",[C.required,C.minLength(6),C.maxLength(6)])});ngOnInit(){this.$api.post("/users/otp/setup",{}).subscribe({next:t=>{this.checkTimeDiff(t.timestamp),this.timeDiffError||(this.otpString=t.otpauth)},error:t=>{this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}checkTimeDiff(t){let a=(0,le.default)(t).diff(new Date,"millisecond");if(a<-5e3||a>5e3){this.timeDiffError=a;return}this.timeDiffError=null}enable2fa(){this.$api.post("/users/otp/activate",this.formGroup.value).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()},error:t=>{console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],viewQuery:function(a,n){a&1&&Z(n.qrcodeElement,xe,5),a&2&&ee()},inputs:{user:"user"},decls:27,vars:21,consts:[[1,"modal-content","setup2fa"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center"],["type","warning",3,"dismissible"],[1,"text-center","w-100","d-flex","justify-content-center"],[1,"mx-auto","my-2",2,"width","180px","height","180px",3,"data"],[1,"mt-4"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"form-group"],["type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control",3,"formControl"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),p(3),s(4,"translate"),l(),i(5,"button",3),s(6,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),i(7,"span",4),p(8,"\xD7"),l()()(),i(9,"div",5),B(10,we,7,9,"div",6),i(11,"ngb-alert",7),p(12),s(13,"translate"),l(),B(14,ge,4,3,"div"),i(15,"div",8),m(16,"app-qrcode",9),l(),B(17,ye,6,4,"div",10),l(),i(18,"div",11)(19,"div",12)(20,"button",13),s(21,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(22),s(23,"translate"),l()(),m(24,"div",6),i(25,"div",14),B(26,Se,3,4,"button",15),l()()()),a&2&&(e(3),v(o(4,11,"users.setup_2fa")),e(2),f("aria-label",o(6,13,"form.button_close")),e(5),g(n.timeDiffError?10:-1),e(),u("dismissible",!1),e(),c(" ",o(13,15,"users.setup_2fa_warning")," "),e(2),g(n.timeDiffError?-1:14),e(2),u("data",n.otpString),e(),g(n.timeDiffError?-1:17),e(3),f("aria-label",o(21,17,"form.button_close")),e(2),c(" ",o(23,19,"form.button_close")," "),e(4),g(n.timeDiffError?-1:26))},dependencies:[re,se,I,T,D,ne,M,Q,E],encapsulation:2})}return r})();var me=r=>({active:r}),de=r=>({"is-invalid":r}),ce=(()=>{class r{$activeModal=d(A);$api=d(S);$toastr=d(U);$translate=d($);form=new F({username:new x("",[C.required]),name:new x("",[C.required]),password:new x("",[C.compose([C.required,C.minLength(4)])]),passwordConfirm:new x("",[C.required]),admin:new x(!0)},this.matchPassword);page={title:"users.title_add_user",save:"users.button_add_new_user",password:"users.label_password"};matchPassword(t){let a=t.get("password").value,n=t.get("passwordConfirm").value;if(a!==n)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}onSubmit({value:t}){this.$api.post("/users",t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_added_new_user"),this.$translate.instant("toast.title_success"))},error:a=>{this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:59,vars:57,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"container","px-1"],[1,"md-form"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none",1,"form-control","px-0"],["for","form-username",3,"ngClass"],[1,"fas","fa-fw","fa-user-shield"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","px-0"],["for","form-name",3,"ngClass"],[1,"fas","fa-fw","fa-user"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","px-0",3,"ngClass"],["for","form-pass"],[1,"fas","fa-fw","fa-lock"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","px-0",3,"ngClass"],["for","form-pass-confirm"],[1,"form-group","row","align-items-center"],[1,"col-6","col-form-label","grey-text"],[1,"fas","fa-fw","fa-user-secret"],[1,"col-6","text-right"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ml-3",2,"min-width","50px"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"form",1),_("ngSubmit",function(){return n.onSubmit(n.form)}),i(2,"div",2)(3,"h5",3),p(4),s(5,"translate"),l(),i(6,"button",4),s(7,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),i(8,"span",5),p(9,"\xD7"),l()()(),i(10,"div",6)(11,"div",7)(12,"div",8),m(13,"input",9),s(14,"translate"),i(15,"label",10),m(16,"i",11),p(17),s(18,"translate"),l()(),i(19,"div",8),m(20,"input",12),s(21,"translate"),i(22,"label",13),m(23,"i",14),p(24),s(25,"translate"),l()(),i(26,"div",8),m(27,"input",15),s(28,"translate"),i(29,"label",16),m(30,"i",17),p(31),s(32,"translate"),l()(),i(33,"div",8),m(34,"input",18),s(35,"translate"),i(36,"label",19),m(37,"i",17),p(38),s(39,"translate"),l()(),i(40,"div",20)(41,"label",21),m(42,"i",22),p(43),s(44,"translate"),l(),i(45,"div",23),m(46,"input",24),s(47,"translate"),m(48,"label",25),l()()()(),i(49,"div",26)(50,"div",27)(51,"button",28),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(52),s(53,"translate"),l()(),m(54,"div",29),i(55,"div",30)(56,"button",31),p(57),s(58,"translate"),l()()()()()),a&2&&(e(),u("formGroup",n.form),e(3),v(o(5,21,"users.title_add_user")),e(2),f("aria-label",o(7,23,"form.button_close")),e(7),f("disabled",n.page.title==="users.title_edit_user"?!0:null)("aria-label",o(14,25,"users.label_username")),e(2),u("ngClass",w(49,me,n.page.title==="users.title_edit_user")),e(2),c(" ",o(18,27,"users.label_username")," "),e(3),f("aria-label",o(21,29,"users.label_full_name")),e(2),u("ngClass",w(51,me,n.page.title==="users.title_edit_user")),e(2),c(" ",o(25,31,"users.label_full_name")," "),e(3),u("ngClass",w(53,de,n.form.controls.password.dirty&&n.form.controls.password.errors)),f("aria-label",o(28,33,n.page.password)),e(4),c(" ",o(32,35,n.page.password)," "),e(3),u("ngClass",w(55,de,n.form.controls.passwordConfirm.dirty&&n.form.controls.passwordConfirm.errors)),f("aria-label",o(35,37,"users.label_confirm_password")),e(4),c(" ",o(39,39,"users.label_confirm_password")," "),e(5),c(" ",o(44,41,"users.label_admin_user")," "),e(3),f("aria-label",o(47,43,"users.label_admin_user")),e(6),c(" ",o(53,45,"form.button_close")," "),e(4),u("disabled",!n.form.valid),e(),c(" ",o(58,47,"form.button_save")," "))},dependencies:[I,R,T,P,D,z,M,L,O,q,E],encapsulation:2})}return r})();var ue=r=>({active:r}),fe=r=>({"is-invalid":r}),_e=(()=>{class r{$activeModal=d(A);$api=d(S);$auth=d(j);$toastr=d(U);$translate=d($);user;form=new F({username:new x("",[C.required]),name:new x("",[C.required]),password:new x(""),passwordConfirm:new x(""),admin:new x(!0)},this.matchPassword);page={title:"users.title_edit_user",save:"form.button_save",password:"users.label_new_password"};isCurrentUser=!1;ngOnInit(){this.isCurrentUser=this.$auth.user.username===this.user.username,this.form.patchValue(this.user)}matchPassword(t){let a=t.get("password").value,n=t.get("passwordConfirm").value;if(a!==n)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}onSubmit({value:t}){this.$api.patch(`/users/${this.user.id}`,t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_updated_user"),this.$translate.instant("toast.title_success")),this.isCurrentUser&&t.username!==this.$auth.user.username&&this.$auth.logout()},error:a=>{console.error(a),this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],inputs:{user:"user"},decls:59,vars:56,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"container","px-1"],[1,"md-form"],["formControlName","username","type","text","id","form-username","autocomplete","off","autocapitalize","none",1,"form-control","px-0"],["for","form-username",3,"ngClass"],[1,"fas","fa-fw","fa-user-shield"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","px-0"],["for","form-name",3,"ngClass"],[1,"fas","fa-fw","fa-user"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","px-0",3,"ngClass"],["for","form-pass"],[1,"fas","fa-fw","fa-lock"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","px-0",3,"ngClass"],["for","form-pass-confirm"],[1,"form-group","row","align-items-center"],[1,"col-6","col-form-label","grey-text"],[1,"fas","fa-fw","fa-user-secret"],[1,"col-6","text-right"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ml-3",2,"min-width","50px"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"form",1),_("ngSubmit",function(){return n.onSubmit(n.form)}),i(2,"div",2)(3,"h5",3),p(4),s(5,"translate"),l(),i(6,"button",4),s(7,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),i(8,"span",5),p(9,"\xD7"),l()()(),i(10,"div",6)(11,"div",7)(12,"div",8),m(13,"input",9),s(14,"translate"),i(15,"label",10),m(16,"i",11),p(17),s(18,"translate"),l()(),i(19,"div",8),m(20,"input",12),s(21,"translate"),i(22,"label",13),m(23,"i",14),p(24),s(25,"translate"),l()(),i(26,"div",8),m(27,"input",15),s(28,"translate"),i(29,"label",16),m(30,"i",17),p(31),s(32,"translate"),l()(),i(33,"div",8),m(34,"input",18),s(35,"translate"),i(36,"label",19),m(37,"i",17),p(38),s(39,"translate"),l()(),i(40,"div",20)(41,"label",21),m(42,"i",22),p(43),s(44,"translate"),l(),i(45,"div",23),m(46,"input",24),s(47,"translate"),m(48,"label",25),l()()()(),i(49,"div",26)(50,"div",27)(51,"button",28),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(52),s(53,"translate"),l()(),m(54,"div",29),i(55,"div",30)(56,"button",31),p(57),s(58,"translate"),l()()()()()),a&2&&(e(),u("formGroup",n.form),e(3),v(o(5,20,"users.title_edit_user")),e(2),f("aria-label",o(7,22,"form.button_close")),e(7),f("aria-label",o(14,24,"users.label_username")),e(2),u("ngClass",w(48,ue,n.page.title==="users.title_edit_user")),e(2),c(" ",o(18,26,"users.label_username")," "),e(3),f("aria-label",o(21,28,"users.label_full_name")),e(2),u("ngClass",w(50,ue,n.page.title==="users.title_edit_user")),e(2),c(" ",o(25,30,"users.label_full_name")," "),e(3),u("ngClass",w(52,fe,n.form.controls.password.dirty&&n.form.controls.password.errors)),f("aria-label",o(28,32,n.page.password)),e(4),c(" ",o(32,34,n.page.password)," "),e(3),u("ngClass",w(54,fe,n.form.controls.passwordConfirm.dirty&&n.form.controls.passwordConfirm.errors)),f("aria-label",o(35,36,"users.label_confirm_password")),e(4),c(" ",o(39,38,"users.label_confirm_password")," "),e(5),c(" ",o(44,40,"users.label_admin_user")," "),e(3),f("aria-label",o(47,42,"users.label_admin_user")),e(6),c(" ",o(53,44,"form.button_close")," "),e(4),u("disabled",!n.form.valid),e(),c(" ",o(58,46,"form.button_save")," "))},dependencies:[I,R,T,P,D,z,M,L,O,q,E],encapsulation:2})}return r})();function $e(r,k){if(r&1){let t=G();i(0,"button",19),_("click",function(){N(t);let n=h().$implicit,b=h();return V(b.deleteUser(n.id))}),p(1),s(2,"translate"),l()}r&2&&(e(),c(" ",o(2,1,"form.button_delete")," "))}function Ee(r,k){if(r&1){let t=G();i(0,"button",20),_("click",function(){N(t);let n=h().$implicit,b=h();return V(b.setup2fa(n))}),p(1),s(2,"translate"),l()}r&2&&(e(),v(o(2,1,"users.setup_2fa")))}function Ue(r,k){if(r&1){let t=G();i(0,"button",18),_("click",function(){N(t);let n=h().$implicit,b=h();return V(b.disable2fa(n))}),p(1),s(2,"translate"),l()}r&2&&(e(),c(" ",o(2,1,"users.setup_2fa_disable")," "))}function ke(r,k){if(r&1){let t=G();i(0,"div",7)(1,"div",8)(2,"div",9)(3,"div",10)(4,"span",11),m(5,"h4",12)(6,"h5",13),l()(),i(7,"div",14),B(8,$e,3,3,"button",15)(9,Ee,3,3,"button",16)(10,Ue,3,3,"button",17),i(11,"button",18),_("click",function(){let n=N(t).$implicit,b=h();return V(b.openEditUser(n))}),p(12),s(13,"translate"),l()()()()()}if(r&2){let t=k.$implicit,a=h();e(5),u("innerText",t.name),e(),u("innerText",t.username),e(2),g(a.$auth.user.username!==t.username?8:-1),e(),g(a.$auth.user.username===t.username&&!t.otpActive?9:-1),e(),g(a.$auth.user.username===t.username&&t.otpActive?10:-1),e(2),v(o(13,6,"form.button_edit"))}}var $t=(()=>{class r{$api=d(S);$auth=d(j);$modal=d(ae);$route=d(ie);$toastr=d(U);$translate=d($);homebridgeUsers;ngOnInit(){this.$route.data.subscribe(t=>{this.homebridgeUsers=t.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").subscribe(t=>{this.homebridgeUsers=t})}openAddNewUser(){this.$modal.open(ce,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(t){let a=this.$modal.open(_e,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.result.finally(()=>{this.reloadUsers()})}deleteUser(t){this.$api.delete(`/users/${t}`).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.toast_user_deleted"),this.$translate.instant("toast.title_success")),this.reloadUsers()},error:a=>{console.error(a),this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))}})}setup2fa(t){let a=this.$modal.open(pe,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.result.finally(()=>{this.reloadUsers()})}disable2fa(t){let a=this.$modal.open(oe,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.result.finally(()=>{this.reloadUsers()})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["app-users"]],decls:12,vars:6,consts:[[1,"row","mb-3"],[1,"col-9"],[1,"primary-text","m-0"],[1,"col-3","text-right"],[1,"btn","btn-elegant","waves-effect","m-0",3,"click"],[1,"fas","fa-fw","fa-plus"],[1,"row"],[1,"col-md-6","mb-4"],[1,"card","card-body"],[1,"d-flex","flex-column"],[1,"d-flex","flex-row","mb-3"],[1,"me-auto","my-0"],[3,"innerText"],[1,"small","text-truncate","primary-text",3,"innerText"],[1,"d-flex","flex-row","justify-content-between",2,"gap","10px"],[1,"btn","btn-elegant","btn-sml","m-0"],[1,"btn","btn-primary","mt-0","m-0"],[1,"btn","btn-primary","m-0"],[1,"btn","btn-primary","m-0",3,"click"],[1,"btn","btn-elegant","btn-sml","m-0",3,"click"],[1,"btn","btn-primary","mt-0","m-0",3,"click"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"div",1)(2,"h3",2),p(3),s(4,"translate"),l()(),i(5,"div",3)(6,"button",4),s(7,"translate"),_("click",function(){return n.openAddNewUser()}),m(8,"i",5),l()()(),i(9,"div",6),X(10,ke,14,8,"div",7,W),l()),a&2&&(e(3),v(o(4,2,"users.title_users")),e(3),f("aria-label",o(7,4,"users.button_add_user")),e(4),Y(n.homebridgeUsers))},dependencies:[E],encapsulation:2})}return r})();export{oe as a,pe as b,ce as c,_e as d,$t as e};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-GJHKJW7G.js";import"./chunk-G3NT5LV6.js";import"./chunk-QHHRJOCD.js";import"./chunk-H3E4T6KH.js";import"./chunk-KDJPDALB.js";export{a as ShutdownLinuxComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as X}from"./chunk-SEKLEPJD.js";import{b as we,w as Be}from"./chunk-RMFHCCDM.js";import{a as ye}from"./chunk-IUUJYZCY.js";import{b as De}from"./chunk-BWVQQ7XD.js";import{g as U,m as N,n as j,o as ke}from"./chunk-F5SS6TN7.js";import{b as K,c as pe,e as q,f as de,g as Z,j as O,k as ce,l as J,m as me,n as ue,o as ge,p as _e,q as be,r as ve,s as fe,t as he,u as xe,v as Se,y as Q,z as Ce}from"./chunk-Z4CHNCHA.js";import{d as oe,e as se}from"./chunk-HMOW3VNR.js";import{b as le}from"./chunk-EIKIGJGT.js";import{b as T,j as M}from"./chunk-G3NT5LV6.js";import{a as A,b as E}from"./chunk-H3E4T6KH.js";import{$b as w,Bb as k,Bc as l,Cc as o,Dc as H,Lb as b,M as Y,Mb as u,Rb as h,Tb as F,Ub as V,Vb as D,Wb as i,Xb as n,Yb as d,ad as R,cc as v,db as te,dc as f,g as Ve,h as y,ib as e,id as W,kd as re,na as x,nc as r,oc as c,pc as g,qc as P,sc as ie,tc as ne,ub as B,uc as ae,w as I,xa as S,xc as L,ya as C,yc as $}from"./chunk-KDJPDALB.js";var ee=Ve(De(),1);var Pe=(a,m)=>({"fa-download":a,"fa-cog fa-spin":m}),Re=a=>({backupTime:a,dayCount:7}),Ue=(a,m)=>({"fa-trash":a,"fa-cog fa-spin":m}),ze=(a,m)=>({backupSize:a,maxBackupSizeText:m});function He(a,m){if(a&1&&(i(0,"li"),r(1),l(2,"date"),l(3,"translate"),n()),a&2){let t=f();e(),g(" ",H(3,4,"backup.scheduled_backup_time",L(7,Re,H(2,1,t.backupTime,"shortTime")))," ")}}function Oe(a,m){if(a&1&&(i(0,"span",24),l(1,"translate"),d(2,"i",28),r(3),n()),a&2){let t=f().$implicit;u("ngbTooltip",H(1,2,"backup.backup_exceeds_max_size",$(5,ze,t.size+"MB",t.maxBackupSizeText))),e(3),g(" ",t.size,"MB ")}}function je(a,m){if(a&1&&(i(0,"span"),r(1),n()),a&2){let t=f().$implicit;e(),g(" ",t.size,"MB ")}}function Ge(a,m){if(a&1){let t=w();i(0,"li",9)(1,"span")(2,"span",23),r(3),l(4,"date"),n(),d(5,"br"),i(6,"small",10),r(7),l(8,"date"),k(9,Oe,4,8,"span",24)(10,je,2,1,"span"),n()(),i(11,"span",11)(12,"button",25),l(13,"translate"),l(14,"translate"),v("click",function(){let s=S(t).$implicit,_=f();return C(_.restore(s))}),d(15,"i",13),n(),i(16,"button",14),l(17,"translate"),l(18,"translate"),v("click",function(){let s=S(t).$implicit,_=f();return C(_.download(s))}),d(19,"i",26),n(),i(20,"button",27),l(21,"translate"),l(22,"translate"),v("click",function(){let s=S(t).$implicit,_=f();return C(_.delete(s))}),d(23,"i",15),n()()()}if(a&2){let t=m.$implicit,p=f();e(2),u("ngbTooltip",t.fileName),e(),g(" ",H(4,15,t.timestamp,"mediumDate")," "),e(4),g(" ",H(8,18,t.timestamp,"shortTime")," \xB7 "),e(2),h(t.size>t.maxBackupSize?9:-1),e(),h(t.size<=t.maxBackupSize?10:-1),e(2),u("disabled",p.clicked||p.deleting||t.size>t.maxBackupSize)("ngbTooltip",o(13,21,"form.button_restore")),b("aria-label",o(14,23,"form.button_restore")),e(4),u("disabled",p.clicked||p.deleting)("ngbTooltip",o(17,25,"form.button_download")),b("aria-label",o(18,27,"form.button_download")),e(4),u("disabled",p.clicked||p.deleting)("ngbTooltip",o(21,29,"form.button_delete")),b("aria-label",o(22,31,"form.button_delete")),e(3),u("ngClass",$(33,Ue,t.id!==p.deleting,t.id===p.deleting))}}function Le(a,m){if(a&1&&(i(0,"div")(1,"div",29)(2,"h4",30),r(3),l(4,"translate"),n(),i(5,"p"),r(6),n()()()),a&2){let t=f();e(3),c(o(4,2,"toast.title_error")),e(3),c(t.errorMessage)}}var Ee=(()=>{class a{$activeModal=x(N);$api=x(T);$modal=x(j);$toastr=x(M);$translate=x(A);clicked=!1;scheduledBackups=[];backupTime;errorMessage="";deleting=null;ngOnInit(){this.getScheduledBackups(),this.getNextBackup()}getScheduledBackups(){this.$api.get("/backup/scheduled-backups").subscribe({next:t=>{this.scheduledBackups=t},error:t=>{this.errorMessage=t.error.message||t.message}})}getNextBackup(){this.$api.get("/backup/scheduled-backups/next").subscribe({next:t=>{this.backupTime=t.next},error:t=>{console.error(t)}})}download(t){this.$api.get(`/backup/scheduled-backups/${t.id}`,{observe:"response",responseType:"blob"}).subscribe({next:p=>{let s=t.fileName||"homebridge-backup.tar.gz",_=p.body.size;if(_>globalThis.backup.maxBackupSize){let z=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(_/1048576).toFixed(1)}MB`});this.$toastr.warning(z,this.$translate.instant("toast.title_warning"))}(0,ee.saveAs)(p.body,s)},error:p=>{console.error(p),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})}restore(t){this.$activeModal.close();let p=this.$modal.open(X,{size:"lg",backdrop:"static"});p.componentInstance.selectedBackup=t}delete(t){this.deleting=t.id,this.$api.delete(`/backup/scheduled-backups/${t.id}`).subscribe({next:()=>{this.getScheduledBackups(),this.deleting=null},error:p=>{this.deleting=null,console.error(p),this.$toastr.error(this.$translate.instant("backup.backup_delete_failed"),this.$translate.instant("toast.title_error"))}})}onDownloadBackupClick(){return y(this,null,function*(){this.clicked=!0,this.$api.get("/backup/download",{observe:"response",responseType:"blob"}).subscribe({next:t=>{let p=t.headers.get("File-Name")||"homebridge-backup.tar.gz";this.clicked=!1;let s=t.body.size;if(s>globalThis.backup.maxBackupSize){let _=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(s/1048576).toFixed(1)}MB`});this.$toastr.warning(_,this.$translate.instant("toast.title_warning"))}(0,ee.saveAs)(t.body,p)},error:t=>{this.clicked=!1,console.error(t),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})})}Date=Date;static \u0275fac=function(p){return new(p||a)};static \u0275cmp=B({type:a,selectors:[["ng-component"]],decls:55,vars:50,consts:[[1,"modal-content","hb-backup-modal"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mt-2","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mt-2"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[2,"display","flex","flex-wrap","nowrap"],["disabled","",1,"btn","btn-primary","ml-3"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","ml-1",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw",3,"ngClass"],["disabled","",1,"btn","btn-danger","ml-1"],[1,"fas","fa-fw","fa-trash"],[1,"modal-footer","justify-content-between"],[1,"text-left"],[1,"text-center"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-right"],["container","modal","openDelay","150","triggers","hover",3,"ngbTooltip"],["container","modal","openDelay","150","triggers","hover",1,"red-text",3,"ngbTooltip"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","ml-3",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-danger","ml-1",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-exclamation-circle"],["role","alert",1,"alert","alert-error"],[1,"alert-heading"]],template:function(p,s){p&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),l(4,"translate"),n(),i(5,"button",3),l(6,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),i(7,"span",4),r(8,"\xD7"),n()()(),i(9,"div",5)(10,"div",6),d(11,"i",7),n(),i(12,"ul")(13,"li"),r(14),l(15,"translate"),n(),i(16,"li"),r(17),l(18,"translate"),n(),i(19,"li"),r(20),l(21,"translate"),n(),k(22,He,4,9,"li"),n(),i(23,"ul",8)(24,"li",9)(25,"span")(26,"span"),r(27),l(28,"date"),n(),d(29,"br"),i(30,"small",10),r(31),l(32,"date"),l(33,"translate"),n()(),i(34,"span",11)(35,"button",12),l(36,"translate"),d(37,"i",13),n(),i(38,"button",14),l(39,"translate"),l(40,"translate"),v("click",function(){return s.onDownloadBackupClick()}),d(41,"i",15),n(),i(42,"button",16),l(43,"translate"),d(44,"i",17),n()()(),V(45,Ge,24,36,"li",9,F),n(),k(47,Le,7,4,"div"),n(),i(48,"div",18),d(49,"div",19),i(50,"div",20)(51,"button",21),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),r(52),l(53,"translate"),n()(),d(54,"div",22),n()()),p&2&&(e(3),c(o(4,19,"backup.title_backup")),e(2),u("disabled",s.clicked||s.deleting),b("aria-label",o(6,21,"form.button_close")),e(9),c(o(15,23,"backup.backup_help_one")),e(3),c(o(18,25,"backup.backup_help_two")),e(3),c(o(21,27,"backup.backup_warning")),e(2),h(s.backupTime?22:-1),e(5),g(" ",H(28,29,s.Date.now(),"mediumDate")," "),e(4),P("",H(32,32,s.Date.now(),"shortTime")," \xB7 ",o(33,35,"backup.now"),""),e(4),b("aria-label",o(36,37,"form.button_restore")),e(3),u("disabled",s.clicked)("ngbTooltip",o(39,39,"form.button_download")),b("aria-label",o(40,41,"form.button_download")),e(3),u("ngClass",$(47,Pe,!s.clicked,s.clicked)),e(),b("aria-label",o(43,43,"form.button_delete")),e(3),D(s.scheduledBackups),e(2),h(s.errorMessage?47:-1),e(4),u("disabled",s.clicked||s.deleting),e(),g(" ",o(53,45,"form.button_close")," "))},dependencies:[ke,R,re,E],encapsulation:2})}return a})();function We(a,m){a&1&&(i(0,"div",6),d(1,"i",13),i(2,"p",14),r(3),l(4,"translate"),n()()),a&2&&(e(3),c(o(4,1,"reset.remove_cached_accessories_single_empty")))}function Ke(a,m){a&1&&(i(0,"div")(1,"div",15),d(2,"i",16),n(),i(3,"ngb-alert",17)(4,"p",18),r(5),l(6,"translate"),n(),i(7,"ul",19)(8,"li"),r(9),l(10,"translate"),n(),i(11,"li"),r(12),l(13,"translate"),n(),i(14,"li",14),r(15),l(16,"translate"),n()()()()),a&2&&(e(3),u("dismissible",!1),e(2),c(o(6,5,"reset.action_is_irreversible")),e(4),c(o(10,7,"reset.clear_cache_all.list_1")),e(3),c(o(13,9,"reset.clear_cache_all.list_2")),e(3),c(o(16,11,"reset.clear_cache_all.list_3")))}function qe(a,m){if(a&1){let t=w();i(0,"button",20),l(1,"translate"),v("click",function(){S(t);let s=f();return C(s.$activeModal.dismiss("Dismiss"))}),r(2),l(3,"translate"),n()}if(a&2){let t=f();u("disabled",t.clicked),b("aria-label",o(1,3,"form.button_close")),e(2),g(" ",o(3,5,"form.button_close")," ")}}function Je(a,m){if(a&1){let t=w();i(0,"button",21),l(1,"translate"),v("click",function(){S(t);let s=f();return C(s.$activeModal.dismiss("Dismiss"))}),r(2),l(3,"translate"),n()}a&2&&(b("aria-label",o(1,2,"form.button_close")),e(2),g(" ",o(3,4,"form.button_close")," "))}function Qe(a,m){a&1&&(i(0,"span"),r(1),l(2,"translate"),n()),a&2&&(e(),c(o(2,1,"form.button_remove")))}function Xe(a,m){a&1&&d(0,"i",23)}function Ye(a,m){if(a&1){let t=w();i(0,"button",22),v("click",function(){S(t);let s=f();return C(s.onResetCachedAccessoriesClick())}),k(1,Qe,3,3,"span")(2,Xe,1,0,"i",23),n()}if(a&2){let t=f();u("disabled",t.clicked),e(),h(t.clicked?-1:1),e(),h(t.clicked?2:-1)}}var Ie=(()=>{class a{$activeModal=x(N);$api=x(T);$toastr=x(M);$translate=x(A);clicked;cachedAccessories=[];ngOnInit(){this.loadCachedAccessories()}loadCachedAccessories(){return y(this,null,function*(){try{this.cachedAccessories=yield I(this.$api.get("/server/cached-accessories"))}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}onResetCachedAccessoriesClick(){return this.clicked=!0,this.$api.put("/server/reset-cached-accessories",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.delete_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()},error:t=>{this.clicked=!1,console.error(t),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(p){return new(p||a)};static \u0275cmp=B({type:a,selectors:[["ng-component"]],decls:19,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],["type","button","data-dismiss","modal",1,"btn","btn-elegant"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"fas","fa-fw","fa-circle-check","mb-4","primary-text",2,"font-size","75px"],[1,"mb-0"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-network-wired","mb-4","primary-text",2,"font-size","75px"],["type","error",2,"margin-bottom","0",3,"dismissible"],[1,"font-weight-bold"],[1,"mb-0","text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(p,s){p&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),l(4,"translate"),n(),i(5,"button",3),l(6,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),i(7,"span",4),r(8,"\xD7"),n()()(),i(9,"div",5),k(10,We,5,3,"div",6)(11,Ke,17,13,"div"),n(),i(12,"div",7)(13,"div",8),k(14,qe,4,7,"button",9),n(),i(15,"div",6),k(16,Je,4,6,"button",10),n(),i(17,"div",11),k(18,Ye,3,3,"button",12),n()()()),p&2&&(e(3),c(o(4,8,"reset.clear_cache_all.title")),e(2),u("disabled",s.clicked),b("aria-label",o(6,10,"form.button_close")),e(5),h(s.cachedAccessories.length===0?10:-1),e(),h(s.cachedAccessories.length>0?11:-1),e(3),h(s.cachedAccessories.length>0?14:-1),e(2),h(s.cachedAccessories.length===0?16:-1),e(2),h(s.cachedAccessories.length>0?18:-1))},dependencies:[U,E],encapsulation:2})}return a})();var Ze=(a,m)=>({"green-text":a,"red-text":m}),et=(a,m)=>({"fa-trash":a,"fa-cog fa-spin":m});function tt(a,m){a&1&&(i(0,"div",6),d(1,"i",11),i(2,"p",12),r(3),l(4,"translate"),n()()),a&2&&(e(3),c(o(4,1,"reset.clear_cache_bridge.empty")))}function it(a,m){if(a&1){let t=w();i(0,"li",18)(1,"span"),r(2),l(3,"titlecase"),d(4,"br"),i(5,"small",19),d(6,"i",20),r(7),l(8,"translate"),n()(),i(9,"button",21),l(10,"translate"),v("click",function(){let s=S(t).$implicit,_=f(2);return C(_.removeAccessories(s._id))}),d(11,"i",22),n()()}if(a&2){let t=m.$implicit,p=f(2);e(2),P(" ",t.displayName," (",t._main?"Homebridge":o(3,8,t._category),") "),e(4),u("ngClass",$(14,Ze,t._isPaired,!t._isPaired)),e(),P(" ",o(8,10,t._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 ",t._username," "),e(2),u("disabled",p.deleting||p.deleted.includes(t._id)),b("aria-label",o(10,12,"form.button_delete")),e(2),u("ngClass",$(17,et,t._id!==p.deleting,t._id===p.deleting))}}function nt(a,m){if(a&1&&(i(0,"div")(1,"div",13),d(2,"i",14),n(),i(3,"ngb-alert",15)(4,"ul",16)(5,"li"),r(6),l(7,"translate"),n(),i(8,"li"),r(9),l(10,"translate"),n(),i(11,"li"),r(12),l(13,"translate"),n()()(),i(14,"ul",17),V(15,it,12,20,"li",18,F),n()()),a&2){let t=f();e(3),u("dismissible",!1),e(3),c(o(7,4,"reset.clear_cache_bridge.list_1")),e(3),c(o(10,6,"reset.clear_cache_single.list_3")),e(3),c(o(13,8,"reset.clear_cache_bridge.list_2")),e(3),D(t.pairings)}}var $e=(()=>{class a{$activeModal=x(N);$api=x(T);$modal=x(j);$toastr=x(M);$translate=x(A);pairings=[];deleting=null;deleted=[];ngOnInit(){this.loadPairings()}loadPairings(){return y(this,null,function*(){try{this.pairings=(yield I(this.$api.get("/server/pairings"))).filter(t=>t._category==="bridge"&&!t._main).sort((t,p)=>p._main?1:-1)}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}removeAccessories(t){this.deleting=t,this.$api.delete(`/server/pairings/${t}/accessories`).subscribe({next:()=>y(this,null,function*(){yield this.loadPairings(),this.deleting=null,this.deleted.push(t),this.$toastr.success("",this.$translate.instant("toast.title_success"))}),error:p=>{this.deleting=null,console.error(p),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.unpair_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){if(this.deleted.length){let t=this.$modal.open(we,{size:"lg",backdrop:"static"});t.componentInstance.bridges=this.deleted.map(p=>{let{_username:s,displayName:_}=this.pairings.find(z=>z._id===p);return{displayName:_,username:s}})}}static \u0275fac=function(p){return new(p||a)};static \u0275cmp=B({type:a,selectors:[["ng-component"]],decls:19,vars:13,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-right"],[1,"fas","fa-fw","fa-circle-check","mb-4","primary-text",2,"font-size","75px"],[1,"mb-0"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-network-wired","primary-text",2,"font-size","75px"],["type","warning",3,"dismissible"],[1,"mb-0","text-left"],[1,"list-group","list-group-box","mt-2"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"fas","fa-fw","fa-link",3,"ngClass"],[1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw",3,"ngClass"]],template:function(p,s){p&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),l(4,"translate"),n(),i(5,"button",3),l(6,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),i(7,"span",4),r(8,"\xD7"),n()()(),i(9,"div",5),k(10,tt,5,3,"div",6)(11,nt,17,10,"div"),n(),i(12,"div",7),d(13,"div",8),i(14,"div",6)(15,"button",9),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),r(16),l(17,"translate"),n()(),d(18,"div",10),n()()),p&2&&(e(3),c(o(4,7,"reset.clear_cache_bridge.title")),e(2),u("disabled",s.deleting),b("aria-label",o(6,9,"form.button_close")),e(5),h(s.pairings.length===0?10:-1),e(),h(s.pairings.length>0?11:-1),e(4),u("disabled",s.deleting),e(),g(" ",o(17,11,"form.button_close")," "))},dependencies:[U,R,W,E],encapsulation:2})}return a})();var at=(a,m)=>({"fa-trash":a,"fa-cog fa-spin":m});function rt(a,m){a&1&&(i(0,"div",6),d(1,"i",11),i(2,"p",12),r(3),l(4,"translate"),n()()),a&2&&(e(3),c(o(4,1,"reset.remove_cached_accessories_single_empty")))}function lt(a,m){if(a&1){let t=w();i(0,"li",18)(1,"span"),r(2),d(3,"br"),i(4,"small",19),r(5),n()(),i(6,"button",20),l(7,"translate"),v("click",function(){let s=S(t).$implicit,_=f(2);return C(_.removeAccessory(s))}),d(8,"i",21),n()()}if(a&2){let t=m.$implicit,p=f(2);e(2),P(" ",t.displayName," (",t.plugin,") "),e(3),c(t.UUID),e(),u("disabled",p.deleting),b("aria-label",o(7,6,"form.button_delete")),e(2),u("ngClass",$(8,at,t.UUID!==p.deleting,t.UUID===p.deleting))}}function ot(a,m){if(a&1&&(i(0,"div")(1,"div",13),d(2,"i",14),n(),i(3,"ngb-alert",15)(4,"ul",16)(5,"li"),r(6),l(7,"translate"),n(),i(8,"li"),r(9),l(10,"translate"),n(),i(11,"li"),r(12),l(13,"translate"),n(),i(14,"li",12),r(15),l(16,"translate"),n()()(),i(17,"ul",17),V(18,lt,9,11,"li",18,F),n()()),a&2){let t=f();e(3),u("dismissible",!1),e(3),c(o(7,5,"reset.clear_cache_single.list_1")),e(3),c(o(10,7,"reset.clear_cache_single.list_2")),e(3),c(o(13,9,"reset.clear_cache_single.list_3")),e(3),c(o(16,11,"reset.clear_cache_single.list_4")),e(3),D(t.cachedAccessories)}}var Te=(()=>{class a{$activeModal=x(N);$api=x(T);$toastr=x(M);$translate=x(A);cachedAccessories=[];deleting=null;ngOnInit(){this.loadCachedAccessories()}loadCachedAccessories(){return y(this,null,function*(){try{this.cachedAccessories=yield I(this.$api.get("/server/cached-accessories"))}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}removeAccessory(t){this.deleting=t.UUID,this.$toastr.info(this.$translate.instant("reset.removing_cached_accessory_please_wait")),this.$api.delete(`/server/cached-accessories/${t.UUID}`,{params:{cacheFile:t.$cacheFile}}).subscribe({next:()=>y(this,null,function*(){yield this.loadCachedAccessories(),this.deleting=null,this.cachedAccessories.length||this.$activeModal.close(),this.$toastr.success(this.$translate.instant("reset.cached_accessory_removed"),this.$translate.instant("toast.title_success"))}),error:p=>{this.deleting=null,console.error(p),this.$toastr.error(this.$translate.instant("reset.delete_failed"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(p){return new(p||a)};static \u0275cmp=B({type:a,selectors:[["ng-component"]],decls:19,vars:13,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-right"],[1,"fas","fa-fw","fa-circle-check","mb-4","primary-text",2,"font-size","75px"],[1,"mb-0"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-network-wired","mb-4","primary-text",2,"font-size","75px"],["type","warning",3,"dismissible"],[1,"mb-0","text-left"],[1,"list-group","list-group-box","mt-2"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-danger","ml-3",3,"click","disabled"],[1,"fas","fa-fw",3,"ngClass"]],template:function(p,s){p&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),l(4,"translate"),n(),i(5,"button",3),l(6,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),i(7,"span",4),r(8,"\xD7"),n()()(),i(9,"div",5),k(10,rt,5,3,"div",6)(11,ot,20,13,"div"),n(),i(12,"div",7),d(13,"div",8),i(14,"div",6)(15,"button",9),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),r(16),l(17,"translate"),n()(),d(18,"div",10),n()()),p&2&&(e(3),c(o(4,7,"reset.clear_cache_single.title")),e(2),u("disabled",s.deleting),b("aria-label",o(6,9,"form.button_close")),e(5),h(s.cachedAccessories.length===0?10:-1),e(),h(s.cachedAccessories.length>0?11:-1),e(4),u("disabled",s.deleting),e(),g(" ",o(17,11,"form.button_close")," "))},dependencies:[U,R,E],encapsulation:2})}return a})();function pt(a,m){if(a&1){let t=w();i(0,"li",11)(1,"span")(2,"label",18)(3,"input",19),ae("ngModelChange",function(s){let _=S(t).$implicit;return ne(_.selected,s)||(_.selected=s),C(s)}),n(),i(4,"span"),r(5),n(),d(6,"span",20),n()(),i(7,"span"),r(8),n()()}if(a&2){let t=m.$implicit;e(2),u("for","adapter"+t.iface),e(),u("id","adapter"+t.iface),ie("ngModel",t.selected),e(2),c(t.iface),e(3),g(" ",t.ip4||t.ip6," ")}}var Ae=(()=>{class a{$activeModal=x(N);availableNetworkAdapters=[];bridgeNetworkAdapters=[];submit(){this.$activeModal.close(this.availableNetworkAdapters.filter(t=>t.selected).map(t=>t.iface))}static \u0275fac=function(p){return new(p||a)};static \u0275cmp=B({type:a,selectors:[["ng-component"]],inputs:{availableNetworkAdapters:"availableNetworkAdapters",bridgeNetworkAdapters:"bridgeNetworkAdapters"},decls:38,vars:24,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-ethernet","mb-4","primary-text",2,"font-size","75px"],[1,"alert"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","flex-row","justify-content-between"],[1,"list-group-item","d-flex","flex-row","flex-wrap","justify-content-between"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click"],[1,"hb-uix-switch","d-inline","pr-3",3,"for"],["type","checkbox",3,"ngModelChange","id","ngModel"],[1,"hb-uix-slider","hb-uix-round"]],template:function(p,s){p&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),l(4,"translate"),n(),i(5,"button",3),l(6,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),i(7,"span",4),r(8,"\xD7"),n()()(),i(9,"div",5)(10,"div",6),d(11,"i",7),n(),i(12,"div",8),r(13),l(14,"translate"),n(),i(15,"ul",9)(16,"li",10)(17,"span")(18,"strong"),r(19),l(20,"translate"),n()(),i(21,"span")(22,"strong"),r(23),l(24,"translate"),n()()(),V(25,pt,9,5,"li",11,F),n()(),i(27,"div",12)(28,"div",13)(29,"button",14),l(30,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),r(31),l(32,"translate"),n()(),d(33,"div",15),i(34,"div",16)(35,"button",17),v("click",function(){return s.submit()}),r(36),l(37,"translate"),n()()()()),p&2&&(e(3),c(o(4,8,"settings.network.title_network_interfaces")),e(2),b("aria-label",o(6,10,"form.button_close")),e(8),c(o(14,12,"settings.network.message_network_interface")),e(6),c(o(20,14,"settings.network.label_interface_name")),e(4),c(o(24,16,"settings.network.label_ip_address")),e(2),D(s.availableNetworkAdapters),e(4),b("aria-label",o(30,18,"form.button_close")),e(2),g(" ",o(32,20,"form.button_close")," "),e(5),g(" ",o(37,22,"form.button_save")," "))},dependencies:[Q,K,q,J,E],encapsulation:2})}return a})();function dt(a,m){a&1&&(i(0,"span"),r(1),l(2,"translate"),n()),a&2&&(e(),c(o(2,1,"form.button_reset")))}function ct(a,m){a&1&&d(0,"i",18)}var Me=(()=>{class a{$activeModal=x(N);$api=x(T);$route=x(oe);$toastr=x(M);$translate=x(A);clicked;onResetHomebridgeAccessoryClick(){return this.clicked=!0,this.$api.put("/server/reset-homebridge-accessory",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_reset"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$route.navigate(["/restart"])},error:t=>{console.error(t),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(p){return new(p||a)};static \u0275cmp=B({type:a,selectors:[["ng-component"]],decls:40,vars:33,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],["type","error",2,"margin-bottom","0",3,"dismissible"],[1,"font-weight-bold"],[1,"mb-0","text-left"],[1,"mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(p,s){p&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),l(4,"translate"),n(),i(5,"button",3),l(6,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),i(7,"span",4),r(8,"\xD7"),n()()(),i(9,"div",5)(10,"div",6),d(11,"i",7),n(),i(12,"ngb-alert",8)(13,"p",9),r(14),l(15,"translate"),n(),i(16,"ul",10)(17,"li"),r(18),l(19,"translate"),n(),i(20,"li"),r(21),l(22,"translate"),n(),i(23,"li"),r(24),l(25,"translate"),n(),i(26,"li",11),r(27),l(28,"translate"),n()()()(),i(29,"div",12)(30,"div",13)(31,"button",14),l(32,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),r(33),l(34,"translate"),n()(),d(35,"div",15),i(36,"div",16)(37,"button",17),v("click",function(){return s.onResetHomebridgeAccessoryClick()}),k(38,dt,3,3,"span")(39,ct,1,0,"i",18),n()()()()),p&2&&(e(3),c(o(4,15,"reset.bridges_all.title")),e(2),u("disabled",s.clicked),b("aria-label",o(6,17,"form.button_close")),e(7),u("dismissible",!1),e(2),c(o(15,19,"reset.action_is_irreversible")),e(4),c(o(19,21,"reset.bridges_all.list_1")),e(3),c(o(22,23,"reset.bridges_all.list_2")),e(3),c(o(25,25,"reset.bridges_all.list_3")),e(3),c(o(28,27,"reset.bridges_all.list_4")),e(4),u("disabled",s.clicked),b("aria-label",o(32,29,"form.button_close")),e(2),g(" ",o(34,31,"form.button_close")," "),e(4),u("disabled",s.clicked),e(),h(s.clicked?-1:38),e(),h(s.clicked?39:-1))},dependencies:[U,E],encapsulation:2})}return a})();var mt=(a,m)=>({"green-text":a,"red-text":m}),ut=(a,m)=>({"fa-link-slash":a,"fa-cog fa-spin":m});function gt(a,m){a&1&&(i(0,"div",6),d(1,"i",11),i(2,"p",12),r(3),l(4,"translate"),n()()),a&2&&(e(3),c(o(4,1,"reset.bridges.empty")))}function _t(a,m){if(a&1){let t=w();i(0,"li",18)(1,"span"),r(2),l(3,"titlecase"),d(4,"br"),i(5,"small",19),d(6,"i",20),r(7),l(8,"translate"),n()(),i(9,"button",21),l(10,"translate"),v("click",function(){let s=S(t).$implicit,_=f(2);return C(_.removeAccessory(s._id))}),d(11,"i",22),n()()}if(a&2){let t=m.$implicit,p=f(2);e(2),P(" ",t.displayName," (",t._main?"Homebridge":o(3,8,t._category),") "),e(4),u("ngClass",$(14,mt,t._isPaired,!t._isPaired)),e(),P(" ",o(8,10,t._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 ",t._username," "),e(2),u("disabled",p.deleting),b("aria-label",o(10,12,"form.button_unpair")),e(2),u("ngClass",$(17,ut,t._id!==p.deleting,t._id===p.deleting))}}function bt(a,m){if(a&1&&(i(0,"div")(1,"div",13),d(2,"i",14),n(),i(3,"ngb-alert",15)(4,"ul",16)(5,"li"),r(6),l(7,"translate"),n(),i(8,"li"),r(9),l(10,"translate"),n(),i(11,"li",12),r(12),l(13,"translate"),n()()(),i(14,"ul",17),V(15,_t,12,20,"li",18,F),n()()),a&2){let t=f();e(3),u("dismissible",!1),e(3),c(o(7,4,"reset.bridges_single.list_1")),e(3),c(o(10,6,"reset.bridges_single.list_2")),e(3),c(o(13,8,"reset.bridges_single.list_3")),e(3),D(t.pairings)}}var Ne=(()=>{class a{$activeModal=x(N);$api=x(T);$modal=x(j);$toastr=x(M);$translate=x(A);pairings=[];deleting=null;unpaired=!1;ngOnInit(){this.loadPairings()}loadPairings(){return y(this,null,function*(){try{this.pairings=(yield I(this.$api.get("/server/pairings"))).sort((t,p)=>p._main?1:-1)}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}removeAccessory(t){this.deleting=t,this.$api.delete(`/server/pairings/${t}`).subscribe({next:()=>y(this,null,function*(){yield this.loadPairings(),this.pairings.length||this.$activeModal.close(),this.deleting=null,this.unpaired=!0,this.$toastr.success(this.$translate.instant("plugins.settings.restart_required"),this.$translate.instant("toast.title_success"))}),error:p=>{this.deleting=null,console.error(p),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.unpair_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.unpaired&&this.$modal.open(ye,{size:"lg",backdrop:"static"})}static \u0275fac=function(p){return new(p||a)};static \u0275cmp=B({type:a,selectors:[["ng-component"]],decls:19,vars:13,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-right"],[1,"fas","fa-fw","fa-circle-check","mb-4","primary-text",2,"font-size","75px"],[1,"mb-0"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],["type","warning",3,"dismissible"],[1,"mb-0","text-left"],[1,"list-group","list-group-box","mt-2"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"fas","fa-fw","fa-link",3,"ngClass"],[1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw",3,"ngClass"]],template:function(p,s){p&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),l(4,"translate"),n(),i(5,"button",3),l(6,"translate"),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),i(7,"span",4),r(8,"\xD7"),n()()(),i(9,"div",5),k(10,gt,5,3,"div",6)(11,bt,17,10,"div"),n(),i(12,"div",7),d(13,"div",8),i(14,"div",6)(15,"button",9),v("click",function(){return s.$activeModal.dismiss("Dismiss")}),r(16),l(17,"translate"),n()(),d(18,"div",10),n()()),p&2&&(e(3),c(o(4,7,"reset.bridges_single.title")),e(2),u("disabled",s.deleting),b("aria-label",o(6,9,"form.button_close")),e(5),h(s.pairings.length===0?10:-1),e(),h(s.pairings.length>0?11:-1),e(4),u("disabled",s.deleting),e(),g(" ",o(17,11,"form.button_close")," "))},dependencies:[U,R,W,E],encapsulation:2})}return a})();var vt=a=>({"fa-pulse":a}),Fe=a=>({"is-invalid":a}),ft=(a,m)=>({"badge-danger":a,"badge-info":m});function ht(a,m){if(a&1){let t=w();i(0,"ul",5)(1,"li",12)(2,"span",13),r(3),l(4,"translate"),n(),i(5,"button",14),l(6,"translate"),v("click",function(){S(t);let s=f();return C(s.openBackupModal())}),d(7,"i",15),n()(),i(8,"li",12)(9,"span",13),r(10),l(11,"translate"),n(),i(12,"button",14),l(13,"translate"),v("click",function(){S(t);let s=f();return C(s.openRestoreModal())}),d(14,"i",15),n()(),i(15,"li",12)(16,"span",13),r(17),l(18,"translate"),n(),i(19,"a",16),l(20,"translate"),d(21,"i",15),n()(),i(22,"li",12)(23,"span",13),r(24),l(25,"translate"),n(),i(26,"button",14),l(27,"translate"),v("click",function(){S(t);let s=f();return C(s.openUiSettings())}),d(28,"i",17),n()()()}a&2&&(e(3),g(" ",o(4,8,"backup.title_backup")," "),e(2),b("aria-label",o(6,10,"backup.title_backup")),e(5),g(" ",o(11,12,"form.button_restore")," "),e(2),b("aria-label",o(13,14,"form.button_restore")),e(5),g(" ",o(18,16,"menu.tooltip_user_accounts")," "),e(2),b("aria-label",o(20,18,"menu.tooltip_user_accounts")),e(5),g(" ",o(25,20,"menu.label_settings_advanced")," "),e(2),b("aria-label",o(27,22,"menu.label_settings_advanced")))}function xt(a,m){a&1&&(i(0,"li",69)(1,"small",70),r(2),l(3,"translate"),n(),i(4,"button",71),l(5,"translate"),r(6),l(7,"translate"),n()()),a&2&&(e(2),c(o(3,3,"settings.changes.saved")),e(2),b("aria-label",o(5,5,"menu.tooltip_restart")),e(2),g(" ",o(7,7,"menu.tooltip_restart")," "))}function St(a,m){if(a&1){let t=w();i(0,"ul",6)(1,"li",18)(2,"span"),r(3),l(4,"translate"),n(),i(5,"div",19)(6,"select",20),v("ngModelChange",function(s){S(t);let _=f();return C(_.saveUiSettingChange("lang",s))}),i(7,"option",21),r(8),l(9,"translate"),n(),i(10,"option",22),r(11,"Bulgarian (bg)"),n(),i(12,"option",23),r(13,"Catalan (ca)"),n(),i(14,"option",24),r(15,"Chinese - Simplified (zh-CN)"),n(),i(16,"option",25),r(17,"Chinese - Traditional (zh-TW)"),n(),i(18,"option",26),r(19,"Czech (cs)"),n(),i(20,"option",27),r(21,"Dutch (nl)"),n(),i(22,"option",28),r(23,"English (en)"),n(),i(24,"option",29),r(25,"Finnish (fi)"),n(),i(26,"option",30),r(27,"French (fr)"),n(),i(28,"option",31),r(29,"German (de)"),n(),i(30,"option",32),r(31,"Hebrew (he)"),n(),i(32,"option",33),r(33,"Hungarian (hu)"),n(),i(34,"option",34),r(35,"Indonesian (id)"),n(),i(36,"option",35),r(37,"Italian (it)"),n(),i(38,"option",36),r(39,"Japanese (ja)"),n(),i(40,"option",37),r(41,"Korean (ko)"),n(),i(42,"option",38),r(43,"Macedonian (mk)"),n(),i(44,"option",39),r(45,"Norwegian (no)"),n(),i(46,"option",40),r(47,"Polish (pl)"),n(),i(48,"option",41),r(49,"Portuguese (Brazil)"),n(),i(50,"option",42),r(51,"Portuguese (Portugal)"),n(),i(52,"option",43),r(53,"Russian (ru)"),n(),i(54,"option",44),r(55,"Slovenian (sl)"),n(),i(56,"option",45),r(57,"Spanish (es)"),n(),i(58,"option",46),r(59,"Swedish (sv)"),n(),i(60,"option",47),r(61,"Thai (th)"),n(),i(62,"option",48),r(63,"Turkish (tr)"),n(),i(64,"option",49),r(65,"Ukrainian (uk)"),n()()()(),i(66,"li",18)(67,"span"),r(68),l(69,"translate"),n(),i(70,"div",19)(71,"select",20),v("ngModelChange",function(s){S(t);let _=f();return C(_.saveUiSettingChange("theme",s))}),i(72,"option",50),r(73),l(74,"translate"),n(),i(75,"option",51),r(76),l(77,"translate"),n(),i(78,"option",52),r(79),l(80,"translate"),n(),i(81,"option",53),r(82),l(83,"translate"),n(),i(84,"option",54),r(85),l(86,"translate"),n(),i(87,"option",55),r(88),l(89,"translate"),n(),i(90,"option",56),r(91),l(92,"translate"),n(),i(93,"option",57),r(94),l(95,"translate"),n(),i(96,"option",58),r(97),l(98,"translate"),n(),i(99,"option",59),r(100),l(101,"translate"),n(),i(102,"option",60),r(103),l(104,"translate"),n(),i(105,"option",61),r(106),l(107,"translate"),n(),i(108,"option",62),r(109),l(110,"translate"),n()()()(),i(111,"li",18)(112,"span"),r(113),l(114,"translate"),n(),i(115,"div",19)(116,"select",20),v("ngModelChange",function(s){S(t);let _=f();return C(_.saveUiSettingChange("lightingMode",s))}),i(117,"option",21),r(118),l(119,"translate"),n(),i(120,"option",63),r(121),l(122,"translate"),n(),i(123,"option",64),r(124),l(125,"translate"),n()()()(),i(126,"li",18)(127,"span"),r(128),l(129,"translate"),d(130,"br")(131,"small",65),l(132,"translate"),n(),i(133,"div",19)(134,"input",66),v("ngModelChange",function(s){S(t);let _=f();return C(_.saveUiSettingChange("loginWallpaper",s))}),n()()(),i(135,"li",18)(136,"span"),r(137),l(138,"translate"),n(),i(139,"div",19)(140,"select",20),v("ngModelChange",function(s){S(t);let _=f();return C(_.saveUiSettingChange("tempUnits",s))}),i(141,"option",67),r(142),l(143,"translate"),n(),i(144,"option",68),r(145),l(146,"translate"),n()()()(),k(147,xt,8,9,"li",69),n()}if(a&2){let t=f();e(3),c(o(4,31,"settings.display.lang")),e(3),u("ngModel",t.$settings.env.lang),e(2),c(o(9,33,"form.select.auto")),e(60),c(o(69,35,"settings.display.theme")),e(3),u("ngModel",t.$settings.theme),e(2),c(o(74,37,"settings.display.orange")),e(3),c(o(77,39,"settings.display.red")),e(3),c(o(80,41,"settings.display.pink")),e(3),c(o(83,43,"settings.display.purple")),e(3),c(o(86,45,"settings.display.deep_purple")),e(3),c(o(89,47,"settings.display.indigo")),e(3),c(o(92,49,"settings.display.blue")),e(3),c(o(95,51,"settings.display.bluegrey")),e(3),c(o(98,53,"settings.display.cyan")),e(3),c(o(101,55,"settings.display.green")),e(3),c(o(104,57,"settings.display.teal")),e(3),c(o(107,59,"settings.display.grey")),e(3),c(o(110,61,"settings.display.brown")),e(4),c(o(114,63,"settings.display.lighting_mode")),e(3),u("ngModel",t.$settings.lightingMode),e(2),c(o(119,65,"form.select.auto")),e(3),c(o(122,67,"settings.display.light")),e(3),c(o(125,69,"settings.display.dark")),e(4),g(" ",o(129,71,"settings.display.login_wallpaper"),""),e(3),u("innerHTML",o(132,73,"settings.display.login_wallpaper_desc"),te),e(3),u("ngModel",t.$settings.loginWallpaper),e(3),c(o(138,75,"settings.display.temp_units")),e(3),u("ngModel",t.$settings.env.temperatureUnits),e(2),c(o(143,77,"settings.display.temp_units.c")),e(3),c(o(146,79,"settings.display.temp_units.f")),e(2),h(t.hasChangedLoginWallpaper?147:-1)}}function Ct(a,m){if(a&1&&(i(0,"li",12)(1,"span"),r(2),l(3,"translate"),i(4,"code"),r(5,"-D"),n(),d(6,"br"),i(7,"small",73),r(8),l(9,"translate"),n()(),d(10,"input",74),l(11,"translate"),d(12,"label",75),n()),a&2){let t=f(3);e(2),g(" ",o(3,3,"settings.startup.debug")," "),e(6),g(" ",o(9,5,t.isHbV2?"settings.startup.debug_desc_v2":"settings.startup.debug_desc_v1")," "),e(2),b("aria-label",o(11,7,"settings.startup.debug"))}}function kt(a,m){a&1&&(i(0,"li",12)(1,"span"),r(2),l(3,"translate"),i(4,"code"),r(5,"-I"),n(),d(6,"br"),i(7,"small",73),r(8),l(9,"translate"),n()(),d(10,"input",76),l(11,"translate"),d(12,"label",77),n()),a&2&&(e(2),g(" ",o(3,3,"settings.startup.insecure")," "),e(6),c(o(9,5,"settings.startup.insecure_desc")),e(2),b("aria-label",o(11,7,"settings.startup.insecure")))}function wt(a,m){a&1&&(i(0,"li",12)(1,"span"),r(2),l(3,"translate"),i(4,"code"),r(5,"-K"),n(),d(6,"br"),i(7,"small",73),r(8),l(9,"translate"),n()(),d(10,"input",78),l(11,"translate"),d(12,"label",79),n()),a&2&&(e(2),g(" ",o(3,3,"settings.startup.keep_accessories")," "),e(6),c(o(9,5,"settings.startup.keep_accessories_desc")),e(2),b("aria-label",o(11,7,"settings.startup.keep_accessories")))}function yt(a,m){a&1&&(i(0,"li",18)(1,"span")(2,"span",80),r(3,"DEBUG"),n(),d(4,"br"),i(5,"small",73),r(6),l(7,"translate"),i(8,"a",81),r(9),l(10,"translate"),d(11,"i",82),n()()(),i(12,"div",19),d(13,"input",83),n()()),a&2&&(e(6),g(" ",o(7,2,"settings.service.debug_tooltip")," "),e(3),g(" ",o(10,4,"form.button_more_info")," "))}function Bt(a,m){a&1&&(i(0,"li",18)(1,"span")(2,"span",80),r(3,"NODE_OPTIONS"),n(),d(4,"br"),i(5,"small",73),r(6),l(7,"translate"),n()(),i(8,"div",19),d(9,"input",84),n()()),a&2&&(e(6),c(o(7,1,"settings.service.node_tooltip")))}function Et(a,m){a&1&&(i(0,"li",12)(1,"span"),r(2),l(3,"translate"),d(4,"br"),i(5,"small",73),r(6),l(7,"translate"),n()(),i(8,"a",85),l(9,"translate"),d(10,"i",15),n()()),a&2&&(e(2),g(" ",o(3,3,"menu.docker.startup_script"),""),e(4),c(o(7,5,"platform.docker.script_help")),e(2),b("aria-label",o(9,7,"menu.docker.startup_script")))}function It(a,m){a&1&&(i(0,"li",69)(1,"small",70),r(2),l(3,"translate"),n(),i(4,"button",71),l(5,"translate"),r(6),l(7,"translate"),n()()),a&2&&(e(2),c(o(3,3,"settings.changes.saved")),e(2),b("aria-label",o(5,5,"menu.tooltip_restart")),e(2),g(" ",o(7,7,"menu.tooltip_restart")," "))}function $t(a,m){if(a&1&&(i(0,"ul",72),k(1,Ct,13,9,"li",12)(2,kt,13,9,"li",12)(3,wt,13,9,"li",12)(4,yt,14,6,"li",18)(5,Bt,10,3,"li",18)(6,Et,11,9,"li",12)(7,It,8,9,"li",69),n()),a&2){let t=f(2);e(),h(t.$settings.env.serviceMode?1:-1),e(),h(t.$settings.env.serviceMode?2:-1),e(),h(t.$settings.env.serviceMode?3:-1),e(),h(t.$settings.env.serviceMode?4:-1),e(),h(t.$settings.env.serviceMode?5:-1),e(),h(t.$settings.env.runningInDocker?6:-1),e(),h(t.hasChangedService?7:-1)}}function Tt(a,m){if(a&1){let t=w();i(0,"form",7)(1,"div",2),v("click",function(){S(t);let s=f();return C(s.toggleSection("startup"))}),i(2,"h5",3),d(3,"i",4),r(4),l(5,"translate"),n()(),k(6,$t,8,7,"ul",72),n()}if(a&2){let t=f();u("formGroup",t.serviceForm),e(),b("aria-expanded",t.showFields.startup?"true":"false")("aria-controls","fieldsStartup"),e(2),u("ngClass",t.showFields.startup?"fa-chevron-down":"fa-chevron-right"),e(),g(" ",o(5,6,"settings.title_startup_options")," "),e(2),h(t.showFields.startup?6:-1)}}function At(a,m){a&1&&d(0,"i",96)}function Mt(a,m){if(a&1&&(i(0,"span")(1,"span",95),k(2,At,1,0,"i",96),r(3),i(4,"span",97),r(5),l(6,"translate"),n()()()),a&2){let t=m.$implicit;e(),u("ngClass",$(6,ft,t.missing,!t.missing)),e(),h(t.missing?2:-1),e(),g(" ",t.iface,": "),e(2),c(t.missing?o(6,4,"settings.mdns_advertiser_not_connected"):t.ip4||t.ip6)}}function Nt(a,m){a&1&&(i(0,"option",89),r(1),l(2,"translate"),n()),a&2&&(e(),g("Avahi (",o(2,1,"settings.mdns_advertiser_rec"),")"))}function Ft(a,m){a&1&&(i(0,"option",92),r(1),l(2,"translate"),n()),a&2&&(e(),g("systemd-resolved (",o(2,1,"settings.mdns_advertiser_exp"),")"))}function Vt(a,m){a&1&&(i(0,"li",69)(1,"small",70),r(2),l(3,"translate"),n(),i(4,"button",71),l(5,"translate"),r(6),l(7,"translate"),n()()),a&2&&(e(2),c(o(3,3,"settings.changes.saved")),e(2),b("aria-label",o(5,5,"menu.tooltip_restart")),e(2),g(" ",o(7,7,"menu.tooltip_restart")," "))}function Dt(a,m){if(a&1){let t=w();i(0,"ul",8)(1,"li",12)(2,"span",13)(3,"div"),r(4),l(5,"translate"),d(6,"br"),i(7,"small",73),r(8),l(9,"translate"),n()(),V(10,Mt,7,9,"span",null,F),n(),i(12,"button",86),l(13,"translate"),v("click",function(){S(t);let s=f();return C(s.selectNetworkInterfaces())}),d(14,"i",87),n()(),i(15,"li",18)(16,"span"),r(17),l(18,"translate"),d(19,"br"),i(20,"small",73),r(21),l(22,"translate"),n()(),i(23,"div",19)(24,"select",88),l(25,"translate"),k(26,Nt,3,3,"option",89),i(27,"option",90),r(28),l(29,"translate"),n(),i(30,"option",91),r(31,"Bonjour HAP"),n(),k(32,Ft,3,3,"option",92),n()()(),i(33,"li",18)(34,"span"),r(35),l(36,"translate"),d(37,"br"),i(38,"small",73),r(39),l(40,"translate"),n()(),i(41,"div",19),d(42,"input",93),l(43,"translate"),n()(),i(44,"li",18)(45,"span"),r(46),l(47,"translate"),d(48,"br"),i(49,"small",73),r(50),l(51,"translate"),n()(),i(52,"div",19),d(53,"input",94),l(54,"translate"),n()(),k(55,Vt,8,9,"li",69),n()}if(a&2){let t=f();e(4),g(" ",o(5,22,"settings.network.title_network_interfaces"),""),e(4),c(o(9,24,"settings.network.message_network_interface")),e(2),D(t.bridgeNetworkAdapters),e(2),u("disabled",!t.availableNetworkAdapters.length),b("aria-label",o(13,26,"settings.network.title_network_interfaces")),e(2),u("ngClass",L(48,vt,!t.availableNetworkAdapters.length)),e(3),g(" ",o(18,28,"settings.mdns_advertiser"),""),e(4),c(o(22,30,"settings.mdns_advertiser_help")),e(3),u("formControl",t.legacyMdnsFormControl),b("aria-label",o(25,32,"settings.mdns_advertiser")),e(2),h(t.showAvahiMdnsOption?26:-1),e(2),g(" Ciao ",t.showAvahiMdnsOption?"":"("+o(29,34,"settings.mdns_advertiser_rec")+")"," "),e(4),h(t.showResolvedMdnsOption?32:-1),e(3),g(" ",o(36,36,"settings.network.port_hb"),""),e(4),c(o(40,38,"settings.network.port_hb_desc")),e(3),u("formControl",t.hbPortFormControl)("ngClass",L(50,Fe,t.isInvalidHbPort)),b("aria-label",o(43,40,"settings.network.port_ui")),e(4),g(" ",o(47,42,"settings.network.port_ui"),""),e(4),c(o(51,44,"settings.network.port_ui_desc")),e(3),u("ngClass",L(52,Fe,t.isInvalidHbUiPort)),b("aria-label",o(54,46,"settings.network.port_ui")),e(2),h(t.hasChangedHbPort||t.hasChangedUiSettings||t.hasChangedMdns||t.hasChangedBridgeNetworkAdapters?55:-1)}}function Pt(a,m){a&1&&(i(0,"p",9),r(1),l(2,"translate"),n()),a&2&&(e(),c(o(2,1,"settings.cache.desc")))}function Rt(a,m){if(a&1){let t=w();i(0,"ul",98)(1,"li",12)(2,"span",13),r(3),l(4,"translate"),d(5,"br"),i(6,"small",73),r(7),l(8,"translate"),n()(),i(9,"button",14),l(10,"translate"),v("click",function(){S(t);let s=f(2);return C(s.removeSingleCachedAccessories())}),d(11,"i",15),n()(),i(12,"li",12)(13,"span",13),r(14),l(15,"translate"),d(16,"br"),i(17,"small",73),r(18),l(19,"translate"),n()(),i(20,"button",14),l(21,"translate"),v("click",function(){S(t);let s=f(2);return C(s.removeBridgeAccessories())}),d(22,"i",15),n()(),i(23,"li",12)(24,"span",13),r(25),l(26,"translate"),d(27,"br"),i(28,"small",73),r(29),l(30,"translate"),n()(),i(31,"button",14),l(32,"translate"),v("click",function(){S(t);let s=f(2);return C(s.removeAllCachedAccessories())}),d(33,"i",15),n()()()}a&2&&(e(3),g(" ",o(4,9,"reset.clear_cache_single.title"),""),e(4),c(o(8,11,"reset.clear_cache_single.desc")),e(2),b("aria-label",o(10,13,"reset.clear_cache_single.title")),e(5),g(" ",o(15,15,"reset.clear_cache_bridge.title"),""),e(4),c(o(19,17,"reset.clear_cache_bridge.desc")),e(2),b("aria-label",o(21,19,"reset.clear_cache_all.title")),e(5),g(" ",o(26,21,"reset.clear_cache_all.title"),""),e(4),c(o(30,23,"reset.clear_cache_all.desc")),e(2),b("aria-label",o(32,25,"reset.clear_cache_all.title")))}function Ut(a,m){if(a&1){let t=w();i(0,"div",1)(1,"div",2),v("click",function(){S(t);let s=f();return C(s.toggleSection("cache"))}),i(2,"h5",3),d(3,"i",4),r(4),l(5,"translate"),n()(),k(6,Pt,3,3,"p",9)(7,Rt,34,27,"ul",98),n()}if(a&2){let t=f();e(),b("aria-expanded",t.showFields.cache?"true":"false")("aria-controls","fieldsCache"),e(2),u("ngClass",t.showFields.cache?"fa-chevron-down":"fa-chevron-right"),e(),g(" ",o(5,6,"settings.cache.title")," "),e(2),h(t.showFields.cache?6:-1),e(),h(t.showFields.cache?7:-1)}}function zt(a,m){a&1&&(i(0,"p",9),r(1),l(2,"translate"),n()),a&2&&(e(),c(o(2,1,"reset.bridges.desc")))}function Ht(a,m){if(a&1){let t=w();i(0,"ul",10)(1,"li",12)(2,"span",13),r(3),l(4,"translate"),d(5,"br"),i(6,"small",73),r(7),l(8,"translate"),n()(),i(9,"button",14),l(10,"translate"),v("click",function(){S(t);let s=f();return C(s.unpairAccessory())}),d(11,"i",15),n()(),i(12,"li",12)(13,"span",13),r(14),l(15,"translate"),l(16,"titlecase"),d(17,"br"),i(18,"small",73),r(19),l(20,"translate"),n()(),i(21,"button",14),l(22,"translate"),v("click",function(){S(t);let s=f();return C(s.resetHomebridgeState())}),d(23,"i",15),n()()()}a&2&&(e(3),g(" ",o(4,6,"reset.bridges_single.title"),""),e(4),c(o(8,8,"reset.bridges_single.desc")),e(2),b("aria-label",o(10,10,"reset.bridges_single.title")),e(5),g(" ",o(16,14,o(15,12,"reset.bridges_all.title")),""),e(5),c(o(20,16,"reset.bridges_all.desc")),e(2),b("aria-label",o(22,18,"reset.bridges_all.title")))}var Cn=(()=>{class a{$api=x(T);$modal=x(j);$plugin=x(Be);$settings=x(le);$toastr=x(M);$translate=x(A);originalServiceForm={HOMEBRIDGE_DEBUG:!1,HOMEBRIDGE_KEEP_ORPHANS:!1,HOMEBRIDGE_INSECURE:!0,ENV_DEBUG:"",ENV_NODE_OPTIONS:""};originalUiSettingsForm={port:0};originalLoginWallpaper="";originalMdnsSetting="";originalBridgeNetworkAdapters=[];originalHbPort=0;hasChangedService=!1;hasChangedUiSettings=!1;hasChangedMdns=!1;hasChangedBridgeNetworkAdapters=!1;hasChangedHbPort=!1;hasChangedLoginWallpaper=!1;isInvalidHbPort=!1;isInvalidHbUiPort=!1;serviceForm=new Z({HOMEBRIDGE_DEBUG:new O(!1),HOMEBRIDGE_KEEP_ORPHANS:new O(!1),HOMEBRIDGE_INSECURE:new O(!0),ENV_DEBUG:new O(""),ENV_NODE_OPTIONS:new O("")});uiSettingsForm=new Z({port:new O(0)});loginWallpaper="";legacyMdnsFormControl=new ce(!1);showAvahiMdnsOption=!1;showResolvedMdnsOption=!1;availableNetworkAdapters=[];bridgeNetworkAdapters=[];hbPortFormControl=new O(0);isHbV2=!1;showFields={general:!0,display:!0,startup:!0,network:!0,reset:!0,cache:!0};ngOnInit(){this.isHbV2=this.$settings.env.homebridgeVersion.startsWith("2"),this.initUiSettingsForm(),this.initDisplaySettingsForm(),this.initNetworkingOptions(),this.$settings.env.serviceMode&&this.initServiceModeForm()}initUiSettingsForm(){this.originalUiSettingsForm={port:this.$settings.env.port},this.uiSettingsForm.patchValue({port:this.$settings.env.port}),this.uiSettingsForm.valueChanges.pipe(Y(500)).subscribe(t=>{let p=!1;Object.keys(t).forEach(s=>{this.originalUiSettingsForm[s]!==t[s]&&(this.saveUiSettingChange(s,t[s]),p=!0)}),this.hasChangedUiSettings=p})}initServiceModeForm(){this.$api.get("/platform-tools/hb-service/homebridge-startup-settings").subscribe({next:t=>{Object.keys(t).forEach(p=>{this.originalServiceForm[p]=t[p]}),this.serviceForm.patchValue(t),this.serviceForm.valueChanges.pipe(Y(500)).subscribe(this.saveServiceModeSettings.bind(this))},error:t=>{console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}initDisplaySettingsForm(){this.originalLoginWallpaper=this.$settings.loginWallpaper,this.loginWallpaper=this.$settings.loginWallpaper}saveUiSettingChange(t,p){switch(t){case"lang":this.$settings.setLang(p);break;case"lightingMode":this.$settings.setLightingMode(p,"user");break;case"theme":this.$settings.setTheme(p);break;case"tempUnits":this.$settings.setEnvItem("temperatureUnits",p);break;case"loginWallpaper":this.$settings.setEnvItem("loginWallpaper",p),this.hasChangedLoginWallpaper=p!==this.originalLoginWallpaper;break;case"port":if(!p||typeof p!="number"||p<1025||p>65533||Number.isInteger(p)===!1||p===this.hbPortFormControl.value){this.isInvalidHbUiPort=!0;return}this.$settings.setEnvItem("port",p),this.isInvalidHbUiPort=!1;break}I(this.$api.put("/config-editor/ui",{key:t,value:p})).catch(s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))})}openUiSettings(){this.$plugin.settings({name:"homebridge-config-ui-x",displayName:"Homebridge UI",settingsSchema:!0,links:{}})}openRestoreModal(){this.$modal.open(X,{size:"lg",backdrop:"static"})}openBackupModal(){this.$modal.open(Ee,{size:"lg",backdrop:"static"})}saveServiceModeSettings(t=this.serviceForm.value){this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",t).subscribe({next:()=>{this.hasChangedService=JSON.stringify(t)!==JSON.stringify(this.originalServiceForm)},error:p=>{console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}resetHomebridgeState(){this.$modal.open(Me,{size:"lg",backdrop:"static"})}unpairAccessory(){this.$modal.open(Ne,{size:"lg",backdrop:"static"})}removeAllCachedAccessories(){this.$modal.open(Ie,{size:"lg",backdrop:"static"})}removeSingleCachedAccessories(){this.$modal.open(Te,{size:"lg",backdrop:"static"})}removeBridgeAccessories(){this.$modal.open($e,{size:"lg",backdrop:"static"})}initNetworkingOptions(){return y(this,null,function*(){try{this.getNetworkSettings(),(this.$settings.env.runningInLinux||this.$settings.env.runningInDocker||this.$settings.env.runningInSynologyPackage||this.$settings.env.runningInPackageMode)&&(this.showAvahiMdnsOption=!0,this.showResolvedMdnsOption=!0)}catch{}})}getNetworkSettings(){return y(this,null,function*(){return Promise.all([I(this.$api.get("/server/network-interfaces/system")),I(this.$api.get("/server/network-interfaces/bridge")),I(this.$api.get("/server/mdns-advertiser")),I(this.$api.get("/server/port"))]).then(([t,p,s,_])=>{this.availableNetworkAdapters=t,this.buildBridgeNetworkAdapterList(p),this.legacyMdnsFormControl.patchValue(s.advertiser),this.originalMdnsSetting=s.advertiser,this.originalBridgeNetworkAdapters=this.bridgeNetworkAdapters.map(z=>z.iface),this.legacyMdnsFormControl.valueChanges.subscribe(z=>{this.setHomebridgeMdnsSetting(z)}),this.hbPortFormControl.patchValue(_.port),this.hbPortFormControl.valueChanges.subscribe(z=>this.setHomebridgePort(z)),this.originalHbPort=_.port})})}setHomebridgeMdnsSetting(t){return y(this,null,function*(){this.$api.put("/server/mdns-advertiser",{advertiser:t}).subscribe({next:()=>{this.hasChangedMdns=t!==this.originalMdnsSetting},error:p=>{console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})})}setNetworkInterfaces(t){return y(this,null,function*(){this.$api.put("/server/network-interfaces/bridge",{adapters:t}).subscribe({next:()=>{this.hasChangedBridgeNetworkAdapters=this.originalBridgeNetworkAdapters.join(",")!==t.join(",")},error:p=>{console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})})}setHomebridgePort(t){return y(this,null,function*(){if(t===this.uiSettingsForm.get("port").value){this.isInvalidHbPort=!0;return}this.$api.put("/server/port",{port:t}).subscribe({next:()=>{this.hasChangedHbPort=this.originalHbPort!==t,this.isInvalidHbPort=!1},error:()=>{this.isInvalidHbPort=!0}})})}buildBridgeNetworkAdapterList(t){if(!t.length){this.bridgeNetworkAdapters=[];return}this.bridgeNetworkAdapters=t.map(p=>{let s=this.availableNetworkAdapters.find(_=>_.iface===p);return s?(s.selected=!0,s.missing=!1,s):{iface:p,missing:!0}})}selectNetworkInterfaces(){let t=this.$modal.open(Ae,{size:"lg",backdrop:"static"});t.componentInstance.availableNetworkAdapters=this.availableNetworkAdapters,t.componentInstance.bridgeNetworkAdapters=this.bridgeNetworkAdapters,t.result.then(p=>{this.buildBridgeNetworkAdapterList(p),this.setNetworkInterfaces(p)}).catch(()=>{})}toggleSection(t){this.showFields[t]=!this.showFields[t]}static \u0275fac=function(p){return new(p||a)};static \u0275cmp=B({type:a,selectors:[["ng-component"]],decls:35,vars:35,consts:[[1,"primary-text","m-0"],[1,"my-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa","fa-fw",3,"ngClass"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsDisplay",1,"list-group","list-group-box","mt-2","mx-0"],["novalidate","",1,"my-4",3,"formGroup"],["id","fieldsNetwork",1,"list-group","list-group-box","mt-2","mx-0"],[1,"small","grey-text","mb-2","mx-0"],["id","fieldsReset",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pr-2"],[1,"btn","btn-primary","waves-effect","m-0","ml-3",2,"min-width","50px",3,"click"],[1,"fas","fa-fw","fa-chevron-right"],["routerLink","/users",1,"btn","btn-primary","waves-effect","m-0","ml-3",2,"min-width","50px"],[1,"fas","fa-fw","fa-sliders"],[1,"list-group-item","d-block","d-md-flex","justify-content-between","align-items-center"],[1,"my-3","my-md-0","pl-0","pl-md-5","w-auto"],[1,"custom-select","resp-select",3,"ngModelChange","ngModel"],["value","auto"],["value","bg"],["value","ca"],["value","zh-CN"],["value","zh-TW"],["value","cs"],["value","nl"],["value","en"],["value","fi"],["value","fr"],["value","de"],["value","he"],["value","hu"],["value","id"],["value","it"],["value","ja"],["value","ko"],["value","mk"],["value","no"],["value","pl"],["value","pt-BR"],["value","pt"],["value","ru"],["value","sl"],["value","es"],["value","sv"],["value","th"],["value","tr"],["value","uk"],["value","orange"],["value","red"],["value","pink"],["value","purple"],["value","deep-purple"],["value","indigo"],["value","blue"],["value","blue-grey"],["value","cyan"],["value","green"],["value","teal"],["value","grey"],["value","brown"],["value","light"],["value","dark"],[1,"grey-text","pr-2",3,"innerHTML"],["name","search_wallpaper","autocomplete","off","type","text","placeholder","/path-to/image.png",1,"form-control","custom-input","form-control-sm","resp-input",3,"ngModelChange","ngModel"],["value","c"],["value","f"],[1,"list-group-item","d-flex","flex-column","align-items-center"],[1,"grey-text","my-2"],["routerLink","/restart",1,"btn","btn-primary","waves-effect","my-2"],["id","fieldsStartup",1,"list-group","list-group-box","mb-4","mx-0"],[1,"grey-text","pr-2"],["type","checkbox","id","homebridgeDebugMode","formControlName","HOMEBRIDGE_DEBUG",1,"rendux-input"],["for","homebridgeDebugMode",1,"rendux-label","ml-3",2,"min-width","50px"],["type","checkbox","id","homebridgeInsecureMode","formControlName","HOMEBRIDGE_INSECURE",1,"rendux-input"],["for","homebridgeInsecureMode",1,"rendux-label","ml-3",2,"min-width","50px"],["type","checkbox","id","homebridgeKeepOrphans","formControlName","HOMEBRIDGE_KEEP_ORPHANS",1,"rendux-input"],["for","homebridgeKeepOrphans",1,"rendux-label","ml-3",2,"min-width","50px"],[1,"text-monospace"],["href","https://github.com/homebridge/homebridge-config-ui-x/wiki/Debug-Common-Values","target","_blank"],[1,"fa","fa/fw","fas","fa-fw","fa-external-link-alt"],["formControlName","ENV_DEBUG","type","text","placeholder","HAP-NodeJS:Advertiser,HAP-NodeJS:Service",1,"form-control","custom-input","form-control-sm","resp-input"],["formControlName","ENV_NODE_OPTIONS","type","text","placeholder","--max-old-space-size=512 --max-http-header-size=8192",1,"form-control","custom-input","form-control-sm","resp-input"],["routerLink","/platform-tools/docker/startup-script",1,"btn","btn-primary","waves-effect","m-0","ml-3",2,"min-width","50px"],[1,"btn","btn-primary","waves-effect","m-0","ml-3",2,"min-width","50px",3,"click","disabled"],[1,"fas","fa-fw","fa-chevron-right",3,"ngClass"],[1,"custom-select","resp-select",3,"formControl"],["value","avahi"],["value","ciao"],["value","bonjour-hap"],["value","resolved"],["type","number","min","1025","max","65533",1,"form-control","custom-input","form-control-sm","resp-input",3,"formControl","ngClass"],["type","number","min","1025","max","65533","placeholder","8581","formControlName","port",1,"form-control","custom-input","form-control-sm","resp-input",3,"ngClass"],[1,"badge","badge-pill","mr-1",3,"ngClass"],[1,"fas","fa-fw","fa-exclamation-triangle"],[1,"font-weight-normal"],["id","fieldsCache",1,"list-group","list-group-box","mb-4","mx-0"]],template:function(p,s){p&1&&(i(0,"h3",0),r(1),l(2,"translate"),n(),i(3,"div",1)(4,"div",2),v("click",function(){return s.toggleSection("general")}),i(5,"h5",3),d(6,"i",4),r(7),l(8,"translate"),n()(),k(9,ht,29,24,"ul",5),n(),i(10,"div",1)(11,"div",2),v("click",function(){return s.toggleSection("display")}),i(12,"h5",3),d(13,"i",4),r(14),l(15,"translate"),n()(),k(16,St,148,81,"ul",6),n(),k(17,Tt,7,8,"form",7),i(18,"form",7)(19,"div",2),v("click",function(){return s.toggleSection("network")}),i(20,"h5",3),d(21,"i",4),r(22),l(23,"translate"),n()(),k(24,Dt,56,54,"ul",8),n(),k(25,Ut,8,8,"div",1),i(26,"div",1)(27,"div",2),v("click",function(){return s.toggleSection("reset")}),i(28,"h5",3),d(29,"i",4),r(30),l(31,"translate"),n()(),k(32,zt,3,3,"p",9)(33,Ht,24,20,"ul",10),n(),d(34,"div",11)),p&2&&(e(),c(o(2,25,"menu.settings.title")),e(3),b("aria-expanded",s.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),e(2),u("ngClass",s.showFields.general?"fa-chevron-down":"fa-chevron-right"),e(),g(" ",o(8,27,"settings.general.title_general")," "),e(2),h(s.showFields.general?9:-1),e(2),b("aria-expanded",s.showFields.display?"true":"false")("aria-controls","fieldsDisplay"),e(2),u("ngClass",s.showFields.display?"fa-chevron-down":"fa-chevron-right"),e(),g(" ",o(15,29,"settings.general.title_display")," "),e(2),h(s.showFields.display?16:-1),e(),h(s.$settings.env.serviceMode||s.$settings.env.runningInDocker?17:-1),e(),u("formGroup",s.uiSettingsForm),e(),b("aria-expanded",s.showFields.network?"true":"false")("aria-controls","fieldsNetwork"),e(2),u("ngClass",s.showFields.network?"fa-chevron-down":"fa-chevron-right"),e(),g(" ",o(23,31,"settings.network.title_network")," "),e(2),h(s.showFields.network?24:-1),e(),h(s.$settings.env.serviceMode?25:-1),e(2),b("aria-expanded",s.showFields.reset?"true":"false")("aria-controls","fieldsReset"),e(2),u("ngClass",s.showFields.reset?"fa-chevron-down":"fa-chevron-right"),e(),g(" ",o(31,33,"reset.bridges.title")," "),e(2),h(s.showFields.reset?32:-1),e(),h(s.showFields.reset?33:-1))},dependencies:[R,se,Q,me,fe,he,pe,ue,K,ve,q,de,Se,xe,J,Ce,ge,_e,be,W,E],encapsulation:2})}return a})();export{Ie as a,$e as b,Te as c,Ae as d,Me as e,Ne as f,Cn as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as l,b as a,c as d,d as u,e as g,f as C,g as M}from"./chunk-X2J4XMUB.js";import{a as p}from"./chunk-BCTZLT7T.js";import"./chunk-SEKLEPJD.js";import"./chunk-RMFHCCDM.js";import"./chunk-IUUJYZCY.js";import"./chunk-MMPQXC6H.js";import"./chunk-6MDI4RNQ.js";import"./chunk-BWVQQ7XD.js";import"./chunk-T6FYP7FJ.js";import"./chunk-P5WCYSBI.js";import"./chunk-F4QKTMKG.js";import"./chunk-CK234OHO.js";import"./chunk-BZVO3JIQ.js";import"./chunk-EFBNPDVN.js";import{q as c}from"./chunk-F5SS6TN7.js";import{y as s,z as f}from"./chunk-Z4CHNCHA.js";import"./chunk-OJZZVAQX.js";import{g as m}from"./chunk-HMOW3VNR.js";import"./chunk-F46ML4GE.js";import"./chunk-EIKIGJGT.js";import"./chunk-G3NT5LV6.js";import"./chunk-QHHRJOCD.js";import{c as n}from"./chunk-H3E4T6KH.js";import{ia as t,md as i,vb as e}from"./chunk-KDJPDALB.js";var N=[{path:"",loadComponent:()=>import("./chunk-JXHVIG4U.js").then(o=>o.SettingsComponent),canActivate:[p]}],R=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[m.forChild(N),m]})}return o})();var J=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i,s,f,n,c,R,M,g,C,l,d,a,u]})}return o})();export{J as SettingsModule};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as w}from"./chunk-OJZZVAQX.js";import{d as T}from"./chunk-HMOW3VNR.js";import{b as S}from"./chunk-EIKIGJGT.js";import{b as _,j as y}from"./chunk-G3NT5LV6.js";import{a as g,b as $}from"./chunk-H3E4T6KH.js";import{Bb as h,Bc as m,Cc as p,Rb as l,Wb as r,Xb as n,Yb as f,dc as v,ib as i,na as a,nc as s,oc as o,ub as x}from"./chunk-KDJPDALB.js";function C(t,u){t&1&&(r(0,"p",7),s(1),m(2,"translate"),n()),t&2&&(i(),o(p(2,1,"restart.please_wait_while_server_restarts")))}function k(t,u){if(t&1&&(r(0,"div",8),s(1),n()),t&2){let e=v();i(),o(e.error)}}function b(t,u){t&1&&(r(0,"div",9)(1,"div",10),f(2,"i",11),n()())}function E(t,u){t&1&&(r(0,"div")(1,"div",12),s(2),m(3,"translate"),n()()),t&2&&(i(2),o(p(3,1,"platform.linux.long_time")))}var A=(()=>{class t{$api=a(_);$router=a(T);$settings=a(S);$toastr=a(y);$translate=a(g);$ws=a(w);checkTimeout;checkDelay;resp={};timeout=!1;error=!1;io;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch()}),this.$api.put("/platform-tools/linux/restart-host",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp()},error:e=>{console.error(e),this.error=this.$translate.instant("platform.linux.server_restart_error"),this.$toastr.error(this.$translate.instant("platform.linux.server_restart_error"),this.$translate.instant("toast.title_error"))}})}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="up"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.linux.server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},3e4),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("platform.linux.server_taking_long_time"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},12e4)}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}static \u0275fac=function(c){return new(c||t)};static \u0275cmp=x({type:t,selectors:[["ng-component"]],decls:15,vars:10,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-fw","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"grey-text"],[1,"alert","alert-error","my-4"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-fw","fa-spinner","fa-spin"],[1,"alert","alert-warning","my-4"]],template:function(c,d){c&1&&(r(0,"div",0)(1,"h3",1),s(2),m(3,"translate"),n()(),r(4,"div",2)(5,"div",3),f(6,"i",4),n(),r(7,"div",5)(8,"h4",6),s(9),m(10,"translate"),n(),h(11,C,3,3,"p",7)(12,k,2,1,"div",8)(13,b,3,0,"div",9)(14,E,4,3,"div"),n()()),c&2&&(i(2),o(p(3,6,"menu.restart.title")),i(7),o(p(10,8,"platform.linux.restarting_server")),i(2),l(d.error?-1:11),i(),l(d.error?12:-1),i(),l(d.error?-1:13),i(),l(d.timeout?14:-1))},dependencies:[$],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;margin-top:15px}"]})}return t})();export{A as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a}from"./chunk-IAJBS4F3.js";import"./chunk-KFM3IHPE.js";import"./chunk-IUUJYZCY.js";import"./chunk-MMPQXC6H.js";import"./chunk-BZVO3JIQ.js";import"./chunk-F5SS6TN7.js";import"./chunk-Z4CHNCHA.js";import"./chunk-HMOW3VNR.js";import"./chunk-EIKIGJGT.js";import"./chunk-G3NT5LV6.js";import"./chunk-QHHRJOCD.js";import"./chunk-H3E4T6KH.js";import"./chunk-KDJPDALB.js";export{a as ConfigEditorComponent};
|