homebridge-config-ui-x 5.4.2-beta.2 → 5.4.2-beta.21
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 +25 -5
- package/dist/core/auth/auth.controller.d.ts +1 -0
- package/dist/core/config/config.service.d.ts +3 -1
- package/dist/core/config/config.service.js +3 -2
- package/dist/core/config/config.service.js.map +1 -1
- package/dist/core/config/config.startup.d.ts +1 -0
- package/dist/core/config/config.startup.js +13 -3
- package/dist/core/config/config.startup.js.map +1 -1
- package/dist/core/spa/spa-html.service.d.ts +5 -0
- package/dist/core/spa/spa-html.service.js +39 -0
- package/dist/core/spa/spa-html.service.js.map +1 -0
- package/dist/core/spa/spa.filter.d.ts +2 -0
- package/dist/core/spa/spa.filter.js +17 -2
- package/dist/core/spa/spa.filter.js.map +1 -1
- package/dist/main.js +8 -3
- package/dist/main.js.map +1 -1
- package/dist/modules/accessories/accessories.service.js +5 -1
- package/dist/modules/accessories/accessories.service.js.map +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
- package/dist/modules/plugins/plugins.service.d.ts +1 -0
- package/dist/modules/plugins/plugins.service.js +27 -15
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/package.json +18 -13
- package/public/3rdpartylicenses.txt +91 -91
- package/public/assets/monaco/ThirdPartyNotices.txt +448 -0
- package/public/assets/monaco/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/public/assets/monaco/min/vs/base/worker/workerMain.js +31 -0
- package/public/assets/monaco/min/vs/basic-languages/shell/shell.js +10 -0
- package/public/assets/monaco/min/vs/editor/editor.main.css +8 -0
- package/public/assets/monaco/min/vs/editor/editor.main.js +798 -0
- package/public/assets/monaco/min/vs/language/json/jsonMode.js +19 -0
- package/public/assets/monaco/min/vs/language/json/jsonWorker.js +42 -0
- package/public/assets/monaco/min/vs/loader.js +11 -0
- package/public/chunk-24MFIAJC.js +1 -0
- package/public/chunk-2GPXWXUT.js +1 -0
- package/public/chunk-3LEW5FOJ.js +5 -0
- package/public/chunk-5RI5TLFW.js +1 -0
- package/public/{chunk-QX6BFGHZ.js → chunk-5WYRGCHF.js} +1 -1
- package/public/chunk-5YEBXXYW.js +1 -0
- package/public/{chunk-ZUTM7S4U.js → chunk-7FVJXUCR.js} +1 -1
- package/public/chunk-AEEAPTXE.js +1 -0
- package/public/chunk-AM53KSWA.js +1 -0
- package/public/chunk-ANRLCCQG.js +1 -0
- package/public/chunk-BH4JDZF4.js +1 -0
- package/public/chunk-BHMKIJVI.js +1 -0
- package/public/{chunk-IWFKJHPR.js → chunk-BQMDK4YS.js} +2 -2
- package/public/{chunk-3POLSI6J.js → chunk-C64P3A75.js} +1 -1
- package/public/{chunk-WCOLHYTR.js → chunk-CCHRGHTT.js} +1 -1
- package/public/chunk-CDS2MSIW.js +1 -0
- package/public/{chunk-J6CJ26QN.js → chunk-CIVLN3HQ.js} +1 -1
- package/public/{chunk-CMOVUX6R.js → chunk-CTYK4ZDT.js} +1 -1
- package/public/chunk-DOOSRLOB.js +1 -0
- package/public/{chunk-OYULLXTP.js → chunk-E6AE64XW.js} +1 -1
- package/public/chunk-EKP4IO3L.js +4 -0
- package/public/{chunk-H45DK7IX.js → chunk-EWO5Q2EI.js} +2 -2
- package/public/{chunk-FXJWZ2UF.js → chunk-F3ULAZ4E.js} +1 -1
- package/public/chunk-F6VJ3EFY.js +1 -0
- package/public/chunk-FB6OF4XR.js +1 -0
- package/public/chunk-G5PK6IZW.js +2 -0
- package/public/chunk-GFPRNM6N.js +1 -0
- package/public/chunk-GTGO4A2X.js +1 -0
- package/public/chunk-IJXZNORX.js +1 -0
- package/public/chunk-KCX2WQ7I.js +20 -0
- package/public/{chunk-D7VCPH6W.js → chunk-KNZTEJFP.js} +1 -1
- package/public/{chunk-H5WTK5UT.js → chunk-KXMDG63G.js} +1 -1
- package/public/chunk-L432DR6J.js +1 -0
- package/public/chunk-LNGNBQBM.js +1 -0
- package/public/{chunk-2C3X2ESN.js → chunk-M7Q6VBJE.js} +1 -1
- package/public/chunk-MCMJ5GFL.js +1 -0
- package/public/chunk-MDV2S56W.js +1 -0
- package/public/chunk-MIOXSBCB.js +1 -0
- package/public/{chunk-TWIBESLE.js → chunk-MKVX26LQ.js} +1 -1
- package/public/chunk-MODJOHCZ.js +1 -0
- package/public/chunk-MVMZJM7B.js +9 -0
- package/public/chunk-NMHMMKMV.js +1 -0
- package/public/chunk-NVX4KPO6.js +1 -0
- package/public/chunk-OLGI5A27.js +1 -0
- package/public/chunk-P6VGWWMV.js +1 -0
- package/public/chunk-PCCN3UQI.js +49 -0
- package/public/chunk-POHAQOWN.js +1 -0
- package/public/chunk-PVFUJ4PR.js +4 -0
- package/public/chunk-QZJJX4BS.js +1 -0
- package/public/{chunk-WTDK2HE6.js → chunk-RH474C2P.js} +1 -1
- package/public/chunk-RN2CW4V7.js +4 -0
- package/public/chunk-SEYIRMYP.js +40 -0
- package/public/{chunk-6E4QOLAB.js → chunk-SJP6OUG5.js} +1 -1
- package/public/chunk-TXNEVPOK.js +14 -0
- package/public/chunk-UFFCOH7L.js +1 -0
- package/public/chunk-UO7UMJN3.js +1 -0
- package/public/{chunk-5E4D6S2D.js → chunk-UUM2722D.js} +1 -1
- package/public/chunk-VNH6VAIL.js +1 -0
- package/public/chunk-VSICB3TW.js +1 -0
- package/public/chunk-W5UULTHE.js +1 -0
- package/public/chunk-XBQ6GTWH.js +3 -0
- package/public/chunk-XHOBTVZN.js +1 -0
- package/public/chunk-XSTH4HOH.js +1 -0
- package/public/chunk-YBETHBKT.js +1 -0
- package/public/chunk-YGABEALD.js +1 -0
- package/public/chunk-YWY6NRRB.js +1 -0
- package/public/chunk-ZUW7E67I.js +1 -0
- package/public/index.html +2 -2
- package/public/main-CVBTY5OH.js +1 -0
- package/public/polyfills-5KWHJ7II.js +2 -0
- package/public/{styles-LKRXKJ7O.css → styles-AUT3PDLG.css} +1 -1
- package/public/assets/hap-icons/light-bulb.svg +0 -25
- package/public/assets/hap-icons/outlet.svg +0 -25
- package/public/assets/hap-icons/switch.svg +0 -25
- package/public/assets/hap-icons/unknown.svg +0 -25
- package/public/assets/monaco-0.21.3/README.md +0 -96
- package/public/assets/monaco-0.21.3/ThirdPartyNotices.txt +0 -283
- package/public/assets/monaco-0.21.3/min/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
- package/public/assets/monaco-0.21.3/min/vs/base/worker/workerMain.js +0 -160
- package/public/assets/monaco-0.21.3/min/vs/basic-languages/shell/shell.js +0 -7
- package/public/assets/monaco-0.21.3/min/vs/editor/editor.main.css +0 -6
- package/public/assets/monaco-0.21.3/min/vs/editor/editor.main.js +0 -2368
- package/public/assets/monaco-0.21.3/min/vs/editor/editor.main.nls.js +0 -39
- package/public/assets/monaco-0.21.3/min/vs/language/json/jsonMode.js +0 -7
- package/public/assets/monaco-0.21.3/min/vs/language/json/jsonWorker.js +0 -7
- package/public/assets/monaco-0.21.3/min/vs/loader.js +0 -38
- package/public/assets/monaco-0.21.3/package.json +0 -38
- package/public/assets/service-icons/air-purifier.svg +0 -50
- package/public/assets/service-icons/air-quality-sensor.svg +0 -30
- package/public/assets/service-icons/carbon-dioxide-sensor.svg +0 -53
- package/public/assets/service-icons/carbon-monoxide-sensor.svg +0 -53
- package/public/assets/service-icons/contact-sensor.svg +0 -45
- package/public/assets/service-icons/door.svg +0 -49
- package/public/assets/service-icons/doorbell.svg +0 -7
- package/public/assets/service-icons/fan.svg +0 -15
- package/public/assets/service-icons/filter-maintenance.svg +0 -54
- package/public/assets/service-icons/garage-door.svg +0 -120
- package/public/assets/service-icons/irrigation-system.svg +0 -34
- package/public/assets/service-icons/leak-sensor.svg +0 -42
- package/public/assets/service-icons/light-sensor.svg +0 -34
- package/public/assets/service-icons/lock-mechanism.svg +0 -39
- package/public/assets/service-icons/microphone.svg +0 -12
- package/public/assets/service-icons/motion-sensor.svg +0 -84
- package/public/assets/service-icons/occupancy-sensor.svg +0 -49
- package/public/assets/service-icons/robot-vacuum.svg +0 -76
- package/public/assets/service-icons/security-system.svg +0 -19
- package/public/assets/service-icons/smoke-sensor.svg +0 -38
- package/public/assets/service-icons/speaker.svg +0 -28
- package/public/assets/service-icons/stateless-programmable-switch.svg +0 -18
- package/public/assets/service-icons/television.svg +0 -17
- package/public/assets/service-icons/valve-faucet.svg +0 -22
- package/public/assets/service-icons/valve-generic.svg +0 -25
- package/public/assets/service-icons/valve-irrigation.svg +0 -34
- package/public/assets/service-icons/valve-shower-head.svg +0 -32
- package/public/assets/service-icons/washing-machine.svg +0 -34
- package/public/assets/service-icons/window-covering.svg +0 -44
- package/public/assets/service-icons/window.svg +0 -71
- package/public/chunk-2H6KO42L.js +0 -1
- package/public/chunk-3M6IUC74.js +0 -1
- package/public/chunk-5PN3M3TS.js +0 -1
- package/public/chunk-5VJLO72Y.js +0 -1
- package/public/chunk-6CQ7JJUY.js +0 -1
- package/public/chunk-7EQFLCW4.js +0 -1
- package/public/chunk-7ZUAPFH6.js +0 -1
- package/public/chunk-A5YMO7NI.js +0 -1
- package/public/chunk-BEPC7IPQ.js +0 -23
- package/public/chunk-BG7RRQGG.js +0 -1
- package/public/chunk-BO3HTTPA.js +0 -1
- package/public/chunk-CN4SGKOR.js +0 -1
- package/public/chunk-DFFTJVRY.js +0 -1
- package/public/chunk-FCJZJIQL.js +0 -1
- package/public/chunk-FG5GS755.js +0 -1
- package/public/chunk-FMHXNJHJ.js +0 -1
- package/public/chunk-FSWVJTPN.js +0 -1
- package/public/chunk-FUTRU3DJ.js +0 -4
- package/public/chunk-FVKMBZOU.js +0 -9
- package/public/chunk-G3JSRG2Q.js +0 -2
- package/public/chunk-GHMFFLJG.js +0 -1
- package/public/chunk-HT7KLIKB.js +0 -1
- package/public/chunk-HWAWBYVQ.js +0 -1
- package/public/chunk-IOKYXV5M.js +0 -4
- package/public/chunk-JFPT3QXX.js +0 -30
- package/public/chunk-JL4UQXPL.js +0 -1
- package/public/chunk-KZKL7DGI.js +0 -1
- package/public/chunk-LDCR6K2U.js +0 -12
- package/public/chunk-LXAXEGMX.js +0 -1
- package/public/chunk-MHTCWHP3.js +0 -1
- package/public/chunk-NDBMU5RD.js +0 -14
- package/public/chunk-NHNGZ4PI.js +0 -1
- package/public/chunk-NORBG6QU.js +0 -1
- package/public/chunk-OA7Y3E5A.js +0 -2
- package/public/chunk-PA5E2G2J.js +0 -4
- package/public/chunk-Q3EG5UQP.js +0 -1
- package/public/chunk-QE27FJRU.js +0 -1
- package/public/chunk-QVCO7S7N.js +0 -20
- package/public/chunk-R3KUMAWN.js +0 -1
- package/public/chunk-RHZTPEXE.js +0 -1
- package/public/chunk-RZXCKXEZ.js +0 -1
- package/public/chunk-SL5FI37R.js +0 -1
- package/public/chunk-SULJOYSB.js +0 -3
- package/public/chunk-TR3AIWBS.js +0 -1
- package/public/chunk-V6JVOQNN.js +0 -1
- package/public/chunk-WX32WZFA.js +0 -1
- package/public/chunk-WYMH5QZG.js +0 -1
- package/public/chunk-X5YIKTO6.js +0 -1
- package/public/chunk-Z2T4OZ7I.js +0 -1
- package/public/chunk-ZAIVLZNZ.js +0 -1
- package/public/chunk-ZKQAULZM.js +0 -1
- package/public/chunk-ZLYGOSRJ.js +0 -1
- package/public/main-ILQAVUPM.js +0 -1
- package/public/polyfills-WE4HA5DL.js +0 -2
- /package/public/assets/{monaco-0.21.3 → monaco}/LICENSE +0 -0
package/public/chunk-QE27FJRU.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as Ke}from"./chunk-TWIBESLE.js";import{a as Ge}from"./chunk-FCJZJIQL.js";import{a as Ue}from"./chunk-FXJWZ2UF.js";import{a as We}from"./chunk-CMOVUX6R.js";import{a as je}from"./chunk-RHZTPEXE.js";import{a as pt,c as dt}from"./chunk-FVKMBZOU.js";import{a as ct}from"./chunk-H5WTK5UT.js";import{a as He}from"./chunk-ZUTM7S4U.js";import{g as de,m as A,n as re,t as ce}from"./chunk-IWFKJHPR.js";import{A as oe,b as ie,c as le,e as ne,j as w,k as $e,l as Fe,n as Pe,o as pe,r as Re,s as Ae,t as Ve,u as Me,v as De,x as Ne,z as ae}from"./chunk-7EQFLCW4.js";import{a as Oe}from"./chunk-GHMFFLJG.js";import"./chunk-BO3HTTPA.js";import{d as U,e as Le}from"./chunk-DFFTJVRY.js";import{b as Y}from"./chunk-HT7KLIKB.js";import{c as Te,d as _e,f as se,g as ge,k as M,m as ze,n as D}from"./chunk-5PN3M3TS.js";import{a as V,b as R}from"./chunk-KZKL7DGI.js";import{c as we,d as Be}from"./chunk-OA7Y3E5A.js";import{$b as K,Dc as N,Ec as F,Fc as ee,Hb as f,Ib as h,Jb as _,Jc as r,Kc as s,Lb as L,Lc as G,M as k,Mb as z,Nb as O,Ob as m,Pb as a,Qb as o,Rb as d,Sb as T,Tb as B,Ub as H,Xa as he,Ya as ve,_b as E,ab as t,bc as x,cc as W,dc as b,g as ue,h as v,hc as Ce,ic as xe,jc as Se,kd as j,la as C,mb as P,pd as te,qc as l,ra as S,rc as u,rd as Ee,sa as I,sc as g,w as $,xc as Ie,yc as ye,zc as ke}from"./chunk-IOKYXV5M.js";var qe=(i,c)=>({"green-text":i,"grey-text":c});function mt(i,c){if(i&1){let e=E();a(0,"li",9)(1,"div",10),l(2),d(3,"br"),a(4,"small",11),d(5,"i",12),r(6,"translate"),l(7," \xB7 "),a(8,"span",13),l(9),o(),l(10),r(11,"titlecase"),o()(),a(12,"div",14)(13,"input",23),r(14,"translate"),x("click",function(){let p=S(e).$implicit,y=b();return I(y.toggleList(p._username))}),o(),d(15,"label",24),o()()}if(i&2){let e=c.$implicit,n=b();t(2),g(" ",e.name," "),t(3),m("ngbTooltip",s(6,11,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired"))("openDelay",150)("ngClass",F(17,qe,e._isPaired,!e._isPaired)),t(4),u(e._username),t(),g(" \xB7 ",s(11,13,e._category)," "),t(3),m("id","hidePluginUpdates_"+e._username)("checked",!n.isInList(e._username))("disabled",n.clicked),f("aria-label",s(14,15,"form.button_allow")+" "+e.name),t(2),m("for","hidePluginUpdates_"+e._username)}}function ut(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"form.button_save")," ")}function ht(i,c){i&1&&d(0,"i",22)}var Qe=(()=>{class i{$activeModal=C(A);$api=C(D);$settings=C(Y);$toastr=C(M);$translate=C(V);originalBlacklist=[];updatedBlacklist=[];existingBlacklist=[];clicked=!1;mainPairing={};pairings=[];get blacklistHasUpdated(){return this.updatedBlacklist.join(",")!==this.originalBlacklist.join(",")}ngOnInit(){return v(this,null,function*(){this.updatedBlacklist=this.existingBlacklist.map(e=>e.trim().toUpperCase()).sort((e,n)=>e.localeCompare(n)),this.originalBlacklist=[...this.updatedBlacklist];try{let e=yield $(this.$api.get("/server/pairings"));this.mainPairing=e.find(n=>n._main),this.pairings=e.filter(n=>!n._main).sort((n,p)=>n.name.localeCompare(p.name))}catch(e){console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}toggleList(e){this.updatedBlacklist.includes(e)?this.updatedBlacklist=this.updatedBlacklist.filter(n=>n!==e):(this.updatedBlacklist.push(e),this.updatedBlacklist.sort((n,p)=>n.localeCompare(p)))}isInList(e){return this.updatedBlacklist.includes(e)}updateBlacklist(){return v(this,null,function*(){this.clicked=!0;try{yield $(this.$api.put("/config-editor/ui/accessory-control/instance-blacklist",{body:this.updatedBlacklist})),this.$settings.setEnvItem("accessoryControl.instanceBlacklist",this.updatedBlacklist),this.$activeModal.close()}catch(e){this.clicked=!1,console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],inputs:{existingBlacklist:"existingBlacklist"},decls:45,vars:35,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-list-check","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"grey-text"],["container","body","triggers","hover","placement","left",1,"fas","fa-fw","fa-link",3,"ngbTooltip","openDelay","ngClass"],[1,"font-monospace"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","id","controlMainBridge",1,"rendux-input",3,"click","checked","disabled"],["for","controlMainBridge",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],["type","checkbox",1,"rendux-input",3,"click","id","checked","disabled"],[1,"rendux-label","ms-3",3,"for"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),d(9,"i",6),o(),a(10,"ul",7)(11,"li"),l(12),r(13,"translate"),o(),a(14,"li"),l(15),r(16,"translate"),o()(),a(17,"ul",8)(18,"li",9)(19,"div",10),l(20),d(21,"br"),a(22,"small",11),d(23,"i",12),r(24,"translate"),l(25," \xB7 "),a(26,"span",13),l(27),o(),l(28," \xB7 Homebridge "),o()(),a(29,"div",14)(30,"input",15),r(31,"translate"),x("click",function(){return p.toggleList(p.mainPairing._username)}),o(),d(32,"label",16),o()(),z(33,mt,16,20,"li",9,L),o()(),a(35,"div",17)(36,"div",10)(37,"button",18),x("click",function(){return p.dismissModal()}),l(38),r(39,"translate"),o()(),d(40,"div",19),a(41,"div",20)(42,"button",21),x("click",function(){return p.updateBlacklist()}),h(43,ut,2,3),h(44,ht,1,0,"i",22),o()()()()),n&2&&(t(3),u(s(4,18,"settings.security.ui_control")),t(2),m("disabled",p.clicked),f("aria-label",s(6,20,"form.button_close")),t(7),u(s(13,22,"settings.security.ui_control_desc")),t(3),u(s(16,24,"settings.security.ui_control_desc_2")),t(5),g(" ",p.mainPairing.name),t(3),m("ngbTooltip",s(24,26,p.mainPairing._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired"))("openDelay",150)("ngClass",F(32,qe,p.mainPairing._isPaired,!p.mainPairing._isPaired)),t(4),u(p.mainPairing._username),t(3),m("checked",!p.isInList(p.mainPairing._username))("disabled",p.clicked),f("aria-label",s(31,28,"plugins.manage.hide_updates")),t(3),O(p.pairings),t(4),m("disabled",p.clicked),t(),g(" ",s(39,30,"form.button_close")," "),t(4),m("disabled",!p.blacklistHasUpdated||p.clicked),t(),_(p.clicked?-1:43),t(),_(p.clicked?44:-1))},dependencies:[j,ae,ce,R,te],encapsulation:2})}return i})();var tt=ue(ct(),1);var Je=ue(pt(),1),Xe=ue(dt(),1);var _t=i=>({maxBackupSizeText:i});function gt(i,c){if(i&1&&H(0,"input",10),i&2){let e=b(2);K("value",e.selectedBackup.fileName)}}function bt(i,c){if(i&1){let e=E();T(0,"input",12),W("change",function(p){S(e);let y=b(2);return I(y.handleRestoreFileInput(p.target.files))}),B()}}function ft(i,c){if(i&1&&(T(0,"div",4)(1,"div",7),H(2,"i",8),B(),T(3,"ul",9)(4,"li"),l(5),r(6,"translate"),B(),T(7,"li"),l(8),r(9,"translate"),B(),T(10,"li"),l(11),r(12,"translate"),B(),T(13,"li"),l(14),r(15,"translate"),B()(),h(16,gt,1,1,"input",10),h(17,bt,1,0,"input",11),B()),i&2){let e=b();t(5),u(s(6,6,"backup.restore_help_one")),t(3),u(s(9,8,"backup.restore_help_two")),t(3),u(G(12,10,"backup.restore_max_size",N(15,_t,e.maxFileSizeText))),t(3),u(s(15,13,"backup.restore_warning")),t(2),_(e.selectedBackup?16:-1),t(),_(e.selectedBackup?-1:17)}}function vt(i,c){if(i&1){let e=E();T(0,"button",18),r(1,"translate"),W("click",function(){S(e);let p=b(2);return I(p.dismissModal())}),l(2),r(3,"translate"),B()}if(i&2){let e=b(2);K("disabled",e.clicked),f("aria-label",s(1,3,"form.button_close")),t(2),g(" ",s(3,5,"form.button_close")," ")}}function Ct(i,c){if(i&1){let e=E();T(0,"button",18),r(1,"translate"),W("click",function(){S(e);let p=b(2);return I(p.reopenBackupModal())}),l(2),r(3,"translate"),B()}if(i&2){let e=b(2);K("disabled",e.clicked),f("aria-label",s(1,3,"form.button_back")),t(2),g(" ",s(3,5,"form.button_back")," ")}}function xt(i,c){i&1&&H(0,"i",19)}function St(i,c){if(i&1&&(T(0,"span"),l(1),B()),i&2){let e=b(3);t(),g("",e.uploadPercent,"% - ")}}function It(i,c){i&1&&(T(0,"span"),l(1," Extracting Archive"),B())}function yt(i,c){i&1&&(T(0,"span"),l(1),r(2,"translate"),B()),i&2&&(t(),g(" ",s(2,1,"backup.label_uploading")))}function kt(i,c){if(i&1&&(T(0,"span"),h(1,xt,1,0,"i",19),h(2,St,2,1,"span"),h(3,It,2,0,"span"),h(4,yt,3,3,"span"),B()),i&2){let e=b(2);t(),_(!e.uploadPercent||e.uploadPercent===100?1:-1),t(),_(e.uploadPercent&&e.uploadPercent!==100?2:-1),t(),_(e.uploadPercent===100?3:-1),t(),_(e.uploadPercent!==100?4:-1)}}function Et(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"form.button_restore")," ")}function wt(i,c){if(i&1){let e=E();T(0,"div",6)(1,"div",13),h(2,vt,4,7,"button",14),h(3,Ct,4,7,"button",14),B(),H(4,"div",15),T(5,"div",16)(6,"button",17),W("click",function(){S(e);let p=b();return I(p.onRestoreBackupClick())}),h(7,kt,5,4,"span"),h(8,Et,2,3),B()()()}if(i&2){let e=b();t(2),_(e.setupWizardRestore?2:-1),t(),_(e.setupWizardRestore?-1:3),t(3),K("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),t(),_(e.clicked?7:-1),t(),_(e.clicked?-1:8)}}function Bt(i,c){if(i&1){let e=E();T(0,"div",6),H(1,"div",13),T(2,"div",15)(3,"button",20),W("click",function(){S(e);let p=b();return I(p.postBackupRestart())}),l(4),r(5,"translate"),B()(),H(6,"div",16),B()}i&2&&(t(4),g(" ",s(5,1,"menu.hbrestart.title")," "))}var Ye=(()=>{class i{$activeModal=C(A);$api=C(D);$modal=C(re);$route=C(U);$toastr=C(M);$translate=C(V);$ws=C(Oe);io;term=new Xe.Terminal;termTarget;fitAddon=new Je.FitAddon;setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;ngOnInit(){return v(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()}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:()=>{}})}reopenBackupModal(){this.$activeModal.dismiss(),this.$modal.open(me,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.io.end()}dismissModal(){this.$activeModal.dismiss("Dismiss")}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:n=>{console.error(n),this.$toastr.error(n.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return v(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=>{console.error(e),this.$toastr.error(e.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return v(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:n=>{n.type===we.UploadProgress?this.uploadPercent=Math.round(100*n.loaded/n.total):n instanceof Be&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:n=>{this.clicked=!1,console.error(n),this.$toastr.error(n.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return v(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"))}})})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],inputs:{setupWizardRestore:"setupWizardRestore",selectedBackup:"selectedBackup"},decls:11,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-footer","justify-content-between"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"form-control"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"form-control",3,"change"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"fa","fa-fw","fa-circle-notch","fa-spin"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(n,p){n&1&&(T(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),B(),T(5,"button",3),r(6,"translate"),W("click",function(){return p.dismissModal()}),B()(),h(7,ft,18,17,"div",4),H(8,"div",5),h(9,wt,9,5,"div",6),h(10,Bt,7,3,"div",6),B()),n&2&&(t(3),u(s(4,7,"backup.title_backup")),t(2),K("disabled",p.restoreInProgress),f("aria-label",s(6,9,"form.button_close")),t(2),_(!p.restoreStarted&&!p.setupWizardRestore?7:-1),t(),K("hidden",!p.restoreStarted),t(),_(!p.restoreStarted||p.restoreFailed===!0?9:-1),t(),_(!p.restoreInProgress&&p.restoreStarted?10:-1))},dependencies:[R],encapsulation:2})}return i})();var Ze=(i,c)=>({"fa-arrow-right":i,"fa-cog fa-spin":c}),Tt=i=>({backupTime:i,dayCount:7}),$t=(i,c)=>({"fa-trash":i,"fa-cog fa-spin":c}),Ft=(i,c)=>({backupSize:i,maxBackupSizeText:c});function Pt(i,c){if(i&1&&(l(0),r(1,"date"),r(2,"translate")),i&2){let e=b(2);g(" ",G(2,4,"backup.scheduled_backup_time",N(7,Tt,G(1,1,e.backupTime,"shortTime")))," ")}}function Rt(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"plugins.settings.restart_required")," ")}function At(i,c){if(i&1&&h(0,Pt,3,9)(1,Rt,2,3),i&2){let e=b();_(e.backupTime?0:1)}}function Vt(i,c){if(i&1&&(l(0),r(1,"translate")),i&2){let e=b();g(" ",s(1,1,e.backupTime?"plugins.settings.restart_required":"backup.scheduled_backup_disabled")," ")}}function Mt(i,c){if(i&1&&(a(0,"span",33),r(1,"translate"),d(2,"i",40),l(3),o()),i&2){let e=b().$implicit;m("ngbTooltip",G(1,3,"backup.backup_exceeds_max_size",F(6,Ft,e.size+"MB",e.maxBackupSizeText)))("openDelay",150),t(3),g(" ",e.size,"MB ")}}function Dt(i,c){if(i&1&&(a(0,"span"),l(1),o()),i&2){let e=b().$implicit;t(),g(" ",e.size,"MB ")}}function Nt(i,c){if(i&1){let e=E();a(0,"li",22)(1,"span")(2,"span",32),l(3),r(4,"date"),o(),d(5,"br"),a(6,"small",23),l(7),r(8,"date"),h(9,Mt,4,9,"span",33),h(10,Dt,2,1,"span"),o()(),a(11,"span",34)(12,"button",35),r(13,"translate"),r(14,"translate"),x("click",function(){let p=S(e).$implicit,y=b(2);return I(y.restore(p))}),d(15,"i",36),o(),a(16,"button",37),r(17,"translate"),r(18,"translate"),x("click",function(){let p=S(e).$implicit,y=b(2);return I(y.download(p))}),d(19,"i",38),o(),a(20,"button",39),r(21,"translate"),r(22,"translate"),x("click",function(){let p=S(e).$implicit,y=b(2);return I(y.delete(p))}),d(23,"i",25),o()()()}if(i&2){let e=c.$implicit,n=b(2);t(2),m("ngbTooltip",e.fileName)("openDelay",150),t(),g(" ",G(4,19,e.timestamp,"mediumDate")," "),t(4),g(" ",G(8,22,e.timestamp,"shortTime")," \xB7 "),t(2),_(e.size>e.maxBackupSize?9:-1),t(),_(e.size<=e.maxBackupSize?10:-1),t(2),m("disabled",n.clicked||n.deleting||e.size>e.maxBackupSize)("ngbTooltip",s(13,25,"form.button_restore"))("openDelay",150),f("aria-label",s(14,27,"form.button_restore")),t(4),m("disabled",n.clicked||n.deleting)("ngbTooltip",s(17,29,"form.button_download"))("openDelay",150),f("aria-label",s(18,31,"form.button_download")),t(4),m("disabled",n.clicked||n.deleting)("ngbTooltip",s(21,33,"form.button_delete"))("openDelay",150),f("aria-label",s(22,35,"form.button_delete")),t(3),m("ngClass",F(37,$t,e.id!==n.deleting,e.id===n.deleting))}}function Lt(i,c){if(i&1&&(a(0,"ul",27)(1,"li",9)(2,"h6",10),l(3),r(4,"translate"),o()(),z(5,Nt,24,40,"li",22,L),o()),i&2){let e=b();t(3),u(s(4,1,"backup.files_auto")),t(2),O(e.scheduledBackups)}}var me=(()=>{class i{$activeModal=C(A);$api=C(D);$backup=C(je);$modal=C(re);$router=C(U);$settings=C(Y);$toastr=C(M);$translate=C(V);restartToastIsShown=!1;Date=Date;clicked=!1;scheduledBackups=[];backupTime;deleting=null;currentSettingEnabled=!1;currentSettingPath="";enabledFormControl=new w(!1);pathFormControl=new w("");ngOnInit(){this.getScheduledBackups(),this.getNextBackup(),this.currentSettingEnabled=!this.$settings.env.scheduledBackupDisable,this.currentSettingPath=this.$settings.env.scheduledBackupPath,this.enabledFormControl.patchValue(this.currentSettingEnabled),this.pathFormControl.patchValue(this.currentSettingPath),this.enabledFormControl.valueChanges.pipe(k(750)).subscribe(e=>v(this,null,function*(){this.currentSettingEnabled=e,yield this.saveUiSettingChange("scheduledBackupDisable",!this.currentSettingEnabled)})),this.pathFormControl.valueChanges.pipe(k(1500)).subscribe(e=>v(this,null,function*(){this.currentSettingPath=e,yield this.saveUiSettingChange("scheduledBackupPath",this.currentSettingPath)}))}download(e){this.$api.get(`/backup/scheduled-backups/${e.id}`,{observe:"response",responseType:"blob"}).subscribe({next:n=>{let p=e.fileName||"homebridge-backup.tar.gz",y=n.body.size;if(y>globalThis.backup.maxBackupSize){let X=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(y/1048576).toFixed(1)}MB`});this.$toastr.warning(X,this.$translate.instant("toast.title_warning"))}(0,tt.saveAs)(n.body,p)},error:n=>{console.error(n),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})}restore(e){this.$activeModal.close();let n=this.$modal.open(Ye,{size:"lg",backdrop:"static"});n.componentInstance.selectedBackup=e}delete(e){this.deleting=e.id,this.$api.delete(`/backup/scheduled-backups/${e.id}`).subscribe({next:()=>{this.getScheduledBackups(),this.deleting=null},error:n=>{this.deleting=null,console.error(n),this.$toastr.error(this.$translate.instant("backup.backup_delete_failed"),this.$translate.instant("toast.title_error"))}})}onDownloadBackupClick(){return v(this,null,function*(){this.clicked=!0;try{yield this.$backup.downloadBackup(),this.clicked=!1}catch(e){this.clicked=!1,console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}onCreateBackupClick(){return v(this,null,function*(){this.clicked=!0;try{yield $(this.$api.post("/backup",{})),this.clicked=!1,this.getScheduledBackups()}catch(e){this.clicked=!1,console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}saveUiSettingChange(e,n){return v(this,null,function*(){try{yield $(this.$api.put("/config-editor/ui",{key:e,value:n})),this.$settings.setEnvItem(e,n),this.showRestartToast()}catch(p){console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}getScheduledBackups(){this.$api.get("/backup/scheduled-backups").subscribe({next:e=>{this.scheduledBackups=e},error:e=>console.error(e)})}getNextBackup(){this.$api.get("/backup/scheduled-backups/next").subscribe({next:e=>{this.backupTime=e.next},error:e=>{console.error(e)}})}showRestartToast(){if(!this.restartToastIsShown){this.restartToastIsShown=!0;let e=this.$toastr.info(this.$translate.instant("settings.changes.saved"),this.$translate.instant("menu.hbrestart.title"),{timeOut:0,tapToDismiss:!0,disableTimeOut:!0,positionClass:"toast-bottom-right",enableHtml:!0});e&&e.onTap&&e.onTap.subscribe(()=>{this.$router.navigate(["/restart"])})}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:92,vars:80,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item"],[1,"mb-0","text-center"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"grey-text","small"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","/home/pi/homebridge-backups",1,"form-control","custom-input",3,"formControl"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"small","grey-text"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","id","disableScheduledBackups",1,"rendux-input",3,"formControl"],["for","disableScheduledBackups",1,"rendux-label"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3",3,"click","disabled"],[1,"fas","fa-fw",3,"ngClass"],[1,"fas","fa-fw","fa-arrow-right"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],["container","modal","triggers","hover",3,"ngbTooltip","openDelay"],["container","modal","triggers","hover",1,"red-text",3,"ngbTooltip","openDelay"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-download"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-exclamation-circle"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),d(9,"i",6),o(),a(10,"ul",7)(11,"li"),l(12),r(13,"translate"),o(),a(14,"li"),l(15),r(16,"translate"),o(),a(17,"li"),l(18),r(19,"translate"),o()(),a(20,"ul",8)(21,"li",9)(22,"h6",10),l(23),r(24,"translate"),o()(),a(25,"li",11)(26,"div",12),l(27),r(28,"translate"),d(29,"br"),a(30,"span",13),l(31),r(32,"translate"),o()(),a(33,"div",14),d(34,"input",15),r(35,"translate"),o()(),a(36,"li",16)(37,"div",17),l(38),r(39,"translate"),d(40,"br"),a(41,"span",18),h(42,At,2,1)(43,Vt,2,3),o()(),a(44,"div",19),d(45,"input",20),r(46,"translate"),d(47,"label",21),o()(),a(48,"li",22)(49,"div")(50,"span"),l(51),r(52,"translate"),o(),d(53,"br"),a(54,"small",23),l(55),r(56,"translate"),o()(),a(57,"button",24),r(58,"translate"),x("click",function(){return p.onDownloadBackupClick()}),d(59,"i",25),o()(),a(60,"li",22)(61,"div")(62,"span"),l(63),r(64,"translate"),o(),d(65,"br"),a(66,"small",23),l(67),r(68,"translate"),o()(),a(69,"button",24),r(70,"translate"),x("click",function(){return p.onCreateBackupClick()}),d(71,"i",25),o()(),a(72,"li",22)(73,"div")(74,"span"),l(75),r(76,"translate"),o(),d(77,"br"),a(78,"small",23),l(79),r(80,"translate"),o()(),a(81,"button",24),r(82,"translate"),x("click",function(){return p.restore(null)}),d(83,"i",26),o()()(),h(84,Lt,7,3,"ul",27),o(),a(85,"div",28),d(86,"div",17),a(87,"div",29)(88,"button",30),x("click",function(){return p.dismissModal()}),l(89),r(90,"translate"),o()(),d(91,"div",31),o()()),n&2&&(t(3),u(s(4,32,"backup.title_backup")),t(2),m("disabled",p.clicked||p.deleting),f("aria-label",s(6,34,"form.button_close")),t(7),u(s(13,36,"backup.backup_help_one")),t(3),u(s(16,38,"backup.backup_help_two")),t(3),u(s(19,40,"backup.backup_warning")),t(5),u(s(24,42,"backup.settings_title")),t(4),g(" ",s(28,44,"backup.settings_path")),t(4),u(s(32,46,"backup.settings_path_desc")),t(3),m("formControl",p.pathFormControl),f("aria-label",s(35,48,"backup.settings_path")),t(4),g(" ",s(39,50,"backup.settings_enable")),t(4),_(p.enabledFormControl.value?42:43),t(3),m("formControl",p.enabledFormControl),f("aria-label",s(46,52,"backup.settings_enable")),t(6),u(s(52,54,"backup.backup_now")),t(4),u(s(56,56,"backup.backup_now_desc")),t(2),m("disabled",p.clicked),f("aria-label",s(58,58,"backup.backup_now")),t(2),m("ngClass",F(74,Ze,!p.clicked,p.clicked)),t(4),u(s(64,60,"backup.backup_now")),t(4),u(s(68,62,"backup.backup_now_save_desc")),t(2),m("disabled",p.clicked),f("aria-label",s(70,64,"backup.backup_now")),t(2),m("ngClass",F(77,Ze,!p.clicked,p.clicked)),t(4),u(s(76,66,"backup.restore_now")),t(4),u(s(80,68,"backup.restore_now_desc")),t(2),m("disabled",p.clicked),f("aria-label",s(82,70,"backup.restore_now")),t(3),_(p.scheduledBackups.length?84:-1),t(4),m("disabled",p.clicked||p.deleting),t(),g(" ",s(90,72,"form.button_close")," "))},dependencies:[ce,j,oe,le,ie,ne,pe,Ee,R],encapsulation:2})}return i})();function zt(i,c){i&1&&(a(0,"div",12),d(1,"i",13),o(),a(2,"p",14),l(3),r(4,"translate"),o()),i&2&&(t(3),u(s(4,1,"reset.no_accessories")))}function Ot(i,c){i&1&&(a(0,"div",12),d(1,"i",15),o(),a(2,"ul",16)(3,"li"),l(4),r(5,"translate"),o(),a(6,"li"),l(7),r(8,"translate"),o(),a(9,"li"),l(10),r(11,"translate"),o()(),a(12,"ngb-alert",17)(13,"p",18),l(14),r(15,"translate"),o()()),i&2&&(t(4),u(s(5,5,"reset.accessory_all.list_1")),t(3),u(s(8,7,"reset.accessory_all.list_2")),t(3),u(s(11,9,"reset.accessory_all.list_3")),t(2),m("dismissible",!1),t(2),u(s(15,11,"reset.action_is_irreversible")))}function Ht(i,c){if(i&1){let e=E();a(0,"button",19),r(1,"translate"),x("click",function(){S(e);let p=b();return I(p.dismissModal())}),l(2),r(3,"translate"),o()}if(i&2){let e=b();m("disabled",e.clicked),f("aria-label",s(1,3,"form.button_close")),t(2),g(" ",s(3,5,"form.button_close")," ")}}function Ut(i,c){if(i&1){let e=E();a(0,"button",20),r(1,"translate"),x("click",function(){S(e);let p=b();return I(p.dismissModal())}),l(2),r(3,"translate"),o()}i&2&&(f("aria-label",s(1,2,"form.button_close")),t(2),g(" ",s(3,4,"form.button_close")," "))}function Wt(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"form.button_remove")," ")}function Kt(i,c){i&1&&d(0,"i",22)}function Gt(i,c){if(i&1){let e=E();a(0,"button",21),x("click",function(){S(e);let p=b();return I(p.onResetCachedAccessoriesClick())}),h(1,Wt,2,3),h(2,Kt,1,0,"i",22),o()}if(i&2){let e=b();m("disabled",e.clicked),t(),_(e.clicked?-1:1),t(),_(e.clicked?2:-1)}}var it=(()=>{class i{$activeModal=C(A);$api=C(D);$router=C(U);$toastr=C(M);$translate=C(V);clicked=!1;cachedAccessories=[];ngOnInit(){this.loadCachedAccessories()}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(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return v(this,null,function*(){try{this.cachedAccessories=yield $(this.$api.get("/server/cached-accessories"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-fw","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"text-center","mb-0"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4),h(8,zt,5,3),h(9,Ot,16,13),o(),a(10,"div",5)(11,"div",6),h(12,Ht,4,7,"button",7),o(),a(13,"div",8),h(14,Ut,4,6,"button",9),o(),a(15,"div",10),h(16,Gt,3,3,"button",11),o()()()),n&2&&(t(3),u(s(4,8,"reset.accessory_all.title")),t(2),m("disabled",p.clicked),f("aria-label",s(6,10,"form.button_close")),t(3),_(p.cachedAccessories.length===0?8:-1),t(),_(p.cachedAccessories.length>0?9:-1),t(3),_(p.cachedAccessories.length>0?12:-1),t(2),_(p.cachedAccessories.length===0?14:-1),t(2),_(p.cachedAccessories.length>0?16:-1))},dependencies:[de,R],encapsulation:2})}return i})();var jt=(i,c)=>({"green-text":i,"grey-text":c}),qt=(i,c)=>({"btn-danger":i,"btn-elegant":c}),Qt=(i,c,e)=>({"fa-broom":i,"fa-undo":c,"fa-spinner fa-pulse":e});function Jt(i,c){i&1&&(a(0,"div",12),d(1,"i",13),o(),a(2,"p",14),l(3),r(4,"translate"),o()),i&2&&(t(3),u(s(4,1,"reset.bridge_accessories.empty")))}function Xt(i,c){if(i&1){let e=E();a(0,"li",18)(1,"span"),l(2),d(3,"br"),a(4,"small",19),d(5,"i",20),l(6),r(7,"translate"),a(8,"span",21),l(9),o()()(),a(10,"button",22),r(11,"translate"),x("click",function(){let p=S(e).$implicit,y=b(2);return I(y.toggleList(p._id))}),d(12,"i",23),o()()}if(i&2){let e=c.$implicit,n=b(2);t(2),g(" ",e.name," "),t(3),m("ngClass",F(12,jt,e._isPaired,!e._isPaired)),t(),g(" ",s(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),u(e._username),t(),m("disabled",n.clicked)("ngClass",F(15,qt,!n.toDelete.includes(e._id),n.toDelete.includes(e._id))),f("aria-label",s(11,10,"form.button_delete")),t(2),m("ngClass",ee(18,Qt,!n.toDelete.includes(e._id),n.toDelete.includes(e._id)&&!n.clicked,n.toDelete.includes(e._id)&&n.clicked))}}function Yt(i,c){if(i&1&&(a(0,"div",12),d(1,"i",15),o(),a(2,"ul",16)(3,"li"),l(4),r(5,"translate"),o(),a(6,"li"),l(7),r(8,"translate"),o(),a(9,"li"),l(10),r(11,"translate"),o()(),a(12,"ul",17),z(13,Xt,13,22,"li",18,L),o()),i&2){let e=b();t(4),u(s(5,3,"reset.bridge_accessories.list_1")),t(3),u(s(8,5,"reset.clear_cache_single.list_3")),t(3),u(s(11,7,"reset.bridge_accessories.list_2")),t(3),O(e.pairings)}}function Zt(i,c){if(i&1){let e=E();a(0,"button",24),x("click",function(){S(e);let p=b();return I(p.dismissModal())}),l(1),r(2,"translate"),o()}if(i&2){let e=b();m("disabled",e.clicked),t(),g(" ",s(2,2,"form.button_close")," ")}}function ei(i,c){if(i&1){let e=E();a(0,"button",25),x("click",function(){S(e);let p=b();return I(p.dismissModal())}),l(1),r(2,"translate"),o()}i&2&&(t(),g(" ",s(2,1,"form.button_close")," "))}function ti(i,c){i&1&&d(0,"i",27)}function ii(i,c){if(i&1&&l(0),i&2){let e=b(3);g(" (",e.toDelete.length,") ")}}function ni(i,c){if(i&1&&(l(0),r(1,"translate"),h(2,ii,1,1)),i&2){let e=b(2);g(" ",s(1,2,"form.button_remove")," "),t(2),_(e.toDelete.length>0?2:-1)}}function ai(i,c){if(i&1){let e=E();a(0,"button",26),x("click",function(){S(e);let p=b();return I(p.cleanBridges())}),h(1,ti,1,0,"i",27)(2,ni,3,4),o()}if(i&2){let e=b();m("disabled",!e.toDelete.length||e.clicked),t(),_(e.clicked?1:2)}}var nt=(()=>{class i{$activeModal=C(A);$api=C(D);$router=C(U);$toastr=C(M);$translate=C(V);clicked=!1;pairings=[];toDelete=[];ngOnInit(){this.loadPairings()}cleanBridges(){return this.clicked=!0,this.$api.delete("/server/pairings/accessories",{body:this.toDelete.map(e=>({id:e}))}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}toggleList(e){this.toDelete.includes(e)?this.toDelete=this.toDelete.filter(n=>n!==e):this.toDelete.push(e)}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadPairings(){return v(this,null,function*(){try{this.pairings=(yield $(this.$api.get("/server/pairings"))).filter(e=>e._category==="bridge"&&!e._main).sort((e,n)=>e.name.localeCompare(n.name))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-fw","fa-broom","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"fas","fa-fw","fa-link",3,"ngClass"],[1,"font-monospace"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas","fa-fw",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4),h(8,Jt,5,3),h(9,Yt,15,9),o(),a(10,"div",5)(11,"div",6),h(12,Zt,3,4,"button",7),o(),a(13,"div",8),h(14,ei,3,3,"button",9),o(),a(15,"div",10),h(16,ai,3,2,"button",11),o()()()),n&2&&(t(3),u(s(4,8,"reset.bridge_accessories.title")),t(2),m("disabled",p.clicked),f("aria-label",s(6,10,"form.button_close")),t(3),_(p.pairings.length===0?8:-1),t(),_(p.pairings.length>0?9:-1),t(3),_(p.pairings.length>0?12:-1),t(2),_(p.pairings.length===0?14:-1),t(2),_(p.pairings.length>0?16:-1))},dependencies:[j,R],encapsulation:2})}return i})();function oi(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"form.button_reset")," ")}function ri(i,c){i&1&&d(0,"i",16)}var at=(()=>{class i{$activeModal=C(A);$api=C(D);$route=C(U);$toastr=C(M);$translate=C(V);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:e=>{console.error(e),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:38,vars:33,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"text-center","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),d(9,"i",6),o(),a(10,"ul",7)(11,"li"),l(12),r(13,"translate"),o(),a(14,"li"),l(15),r(16,"translate"),o(),a(17,"li"),l(18),r(19,"translate"),o(),a(20,"li"),l(21),r(22,"translate"),o()(),a(23,"ngb-alert",8)(24,"p",9),l(25),r(26,"translate"),o()()(),a(27,"div",10)(28,"div",11)(29,"button",12),r(30,"translate"),x("click",function(){return p.dismissModal()}),l(31),r(32,"translate"),o()(),d(33,"div",13),a(34,"div",14)(35,"button",15),x("click",function(){return p.onResetHomebridgeAccessoryClick()}),h(36,oi,2,3),h(37,ri,1,0,"i",16),o()()()()),n&2&&(t(3),u(s(4,15,"reset.bridge_all.title")),t(2),m("disabled",p.clicked),f("aria-label",s(6,17,"form.button_close")),t(7),u(s(13,19,"reset.bridge_all.list_1")),t(3),u(s(16,21,"reset.bridge_all.list_2")),t(3),u(s(19,23,"reset.bridge_all.list_3")),t(3),u(s(22,25,"reset.bridge_all.list_4")),t(2),m("dismissible",!1),t(2),u(s(26,27,"reset.action_is_irreversible")),t(4),m("disabled",p.clicked),f("aria-label",s(30,29,"form.button_close")),t(2),g(" ",s(32,31,"form.button_close")," "),t(4),m("disabled",p.clicked),t(),_(p.clicked?-1:36),t(),_(p.clicked?37:-1))},dependencies:[de,R],encapsulation:2})}return i})();var be=(i,c)=>({"green-text":i,"grey-text":c}),fe=(i,c)=>({"btn-danger":i,"btn-elegant":c}),ot=(i,c,e)=>({"fa-refresh":i,"fa-undo":c,"fa-spinner fa-pulse":e}),si=(i,c,e)=>({"fa-trash":i,"fa-undo":c,"fa-spinner fa-pulse":e});function li(i,c){i&1&&(a(0,"div",12),d(1,"i",13),o(),a(2,"p",14),l(3),r(4,"translate"),o()),i&2&&(t(3),u(s(4,1,"reset.bridges.empty")))}function pi(i,c){if(i&1){let e=E();a(0,"li",20)(1,"span"),l(2),d(3,"br"),a(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),a(8,"span",23),l(9),o(),l(10),r(11,"titlecase"),o()(),a(12,"button",24),r(13,"translate"),x("click",function(){let p=S(e).$implicit,y=b(3);return I(y.toggleList(p._id,!1))}),d(14,"i",25),o()()}if(i&2){let e=c.$implicit,n=b(3);t(2),g(" ",e.name," "),t(3),m("ngClass",F(15,be,e._isPaired,!e._isPaired)),t(),g(" ",s(7,9,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),u(e._username),t(),g(" \xB7 ",e._main?"Homebridge":s(11,11,e._category)," "),t(2),m("disabled",n.clicked)("ngClass",F(18,fe,!n.isInList(e._id),n.isInList(e._id))),f("aria-label",s(13,13,"form.button_unpair")),t(2),m("ngClass",ee(21,ot,!n.isInList(e._id),n.isInList(e._id)&&!n.clicked,n.isInList(e._id)&&n.clicked))}}function di(i,c){if(i&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),o(),a(5,"p",19),l(6),r(7,"translate"),o()(),z(8,pi,15,25,"li",20,L),o()),i&2){let e=b(2);t(3),u(s(4,2,"reset.bridge_ind.head_non_child")),t(3),u(s(7,4,"reset.bridge_ind.desc_non_child")),t(2),O(e.pairingsNonChild)}}function ci(i,c){if(i&1){let e=E();a(0,"li",20)(1,"span"),l(2),d(3,"br"),a(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),a(8,"span",23),l(9),o()()(),a(10,"button",24),r(11,"translate"),x("click",function(){let p=S(e).$implicit,y=b(3);return I(y.toggleList(p._id,!0))}),d(12,"i",25),o()()}if(i&2){let e=c.$implicit,n=b(3);t(2),g(" ",e.name," "),t(3),m("ngClass",F(12,be,e._isPaired,!e._isPaired)),t(),g(" ",s(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),u(e._username),t(),m("disabled",n.clicked)("ngClass",F(15,fe,!n.isInList(e._id),n.isInList(e._id))),f("aria-label",s(11,10,"form.button_unpair")),t(2),m("ngClass",ee(18,ot,!n.isInList(e._id),n.isInList(e._id)&&!n.clicked,n.isInList(e._id)&&n.clicked))}}function mi(i,c){if(i&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),o(),a(5,"p",19),l(6),r(7,"translate"),o()(),z(8,ci,13,22,"li",20,L),o()),i&2){let e=b(2);t(3),u(s(4,2,"reset.bridge_ind.head_child_active")),t(3),u(s(7,4,"reset.bridge_ind.desc_child_active")),t(2),O(e.pairingsChildActive)}}function ui(i,c){if(i&1){let e=E();a(0,"li",20)(1,"span"),l(2),d(3,"br"),a(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),a(8,"span",23),l(9),o()()(),a(10,"button",24),r(11,"translate"),x("click",function(){let p=S(e).$implicit,y=b(3);return I(y.toggleList(p._id,!1))}),d(12,"i",25),o()()}if(i&2){let e=c.$implicit,n=b(3);t(2),g(" ",e.name," "),t(3),m("ngClass",F(12,be,e._isPaired,!e._isPaired)),t(),g(" ",s(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),u(e._username),t(),m("disabled",n.clicked)("ngClass",F(15,fe,!n.isInList(e._id),n.isInList(e._id))),f("aria-label",s(11,10,"form.button_unpair")),t(2),m("ngClass",ee(18,si,!n.isInList(e._id),n.isInList(e._id)&&!n.clicked,n.isInList(e._id)&&n.clicked))}}function hi(i,c){if(i&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),o(),a(5,"p",19),l(6),r(7,"translate"),o()(),z(8,ui,13,22,"li",20,L),o()),i&2){let e=b(2);t(3),u(s(4,2,"reset.bridge_ind.head_child_stale")),t(3),u(s(7,4,"reset.bridge_ind.desc_child_stale")),t(2),O(e.pairingsChildStale)}}function _i(i,c){if(i&1&&(a(0,"div",12),d(1,"i",15),o(),h(2,di,10,6,"ul",16),h(3,mi,10,6,"ul",16),h(4,hi,10,6,"ul",16)),i&2){let e=b();t(2),_(e.pairingsNonChild.length>0?2:-1),t(),_(e.pairingsChildActive.length>0?3:-1),t(),_(e.pairingsChildStale.length>0?4:-1)}}function gi(i,c){if(i&1){let e=E();a(0,"button",26),x("click",function(){S(e);let p=b();return I(p.dismissModal())}),l(1),r(2,"translate"),o()}if(i&2){let e=b();m("disabled",e.clicked),t(),g(" ",s(2,2,"form.button_close")," ")}}function bi(i,c){if(i&1){let e=E();a(0,"button",27),x("click",function(){S(e);let p=b();return I(p.dismissModal())}),l(1),r(2,"translate"),o()}i&2&&(t(),g(" ",s(2,1,"form.button_close")," "))}function fi(i,c){if(i&1&&l(0),i&2){let e=b(3);g(" (",e.toDelete.length,") ")}}function vi(i,c){if(i&1&&(l(0),r(1,"translate"),h(2,fi,1,1)),i&2){let e=b(2);g(" ",s(1,2,"form.button_reset")," "),t(2),_(e.toDelete.length>0?2:-1)}}function Ci(i,c){i&1&&d(0,"i",29)}function xi(i,c){if(i&1){let e=E();a(0,"button",28),x("click",function(){S(e);let p=b();return I(p.removeBridges())}),h(1,vi,3,4),h(2,Ci,1,0,"i",29),o()}if(i&2){let e=b();m("disabled",!e.toDelete.length||e.clicked),t(),_(e.clicked?-1:1),t(),_(e.clicked?2:-1)}}var rt=(()=>{class i{$activeModal=C(A);$api=C(D);$router=C(U);$toastr=C(M);$translate=C(V);clicked=!1;pairingsNonChild=[];pairingsChildActive=[];pairingsChildStale=[];toDelete=[];ngOnInit(){this.loadPairings()}toggleList(e,n=!1){this.toDelete.some(p=>p.id===e)?this.toDelete=this.toDelete.filter(p=>p.id!==e):this.toDelete.push({id:e,resetPairingInfo:n})}isInList(e){return this.toDelete.some(n=>n.id===e)}removeBridges(){return this.clicked=!0,this.$api.delete("/server/pairings",{body:this.toDelete}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.bridge_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.bridge_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadPairings(){return v(this,null,function*(){try{let e=(yield $(this.$api.get("/server/pairings"))).filter(n=>!n._main).sort((n,p)=>n.name.localeCompare(p.name));this.pairingsChildActive=e.filter(n=>n._category==="bridge"&&!n._couldBeStale),this.pairingsNonChild=e.filter(n=>n._category!=="bridge"),this.pairingsChildStale=e.filter(n=>n._category==="bridge"&&n._couldBeStale)}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"text-center","mb-0"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"list-group-item"],[1,"mb-1","text-center"],[1,"mb-0","small","grey-text","text-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"fas","fa-fw","fa-link",3,"ngClass"],[1,"font-monospace"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas","fa-fw",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4),h(8,li,5,3),h(9,_i,5,3),o(),a(10,"div",5)(11,"div",6),h(12,gi,3,4,"button",7),o(),a(13,"div",8),h(14,bi,3,3,"button",9),o(),a(15,"div",10),h(16,xi,3,3,"button",11),o()()()),n&2&&(t(3),u(s(4,8,"reset.bridge_ind.title")),t(2),m("disabled",p.clicked),f("aria-label",s(6,10,"form.button_close")),t(3),_(p.pairingsChildActive.length===0&&p.pairingsChildStale.length===0&&p.pairingsNonChild.length===0?8:-1),t(),_(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?9:-1),t(3),_(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?12:-1),t(2),_(p.pairingsChildActive.length===0&&p.pairingsChildStale.length===0&&p.pairingsNonChild.length===0?14:-1),t(2),_(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?16:-1))},dependencies:[j,te,R],encapsulation:2})}return i})();function Si(i,c){if(i&1){let e=E();a(0,"li",9)(1,"div")(2,"span",16),l(3),o(),d(4,"br"),a(5,"span",17),l(6),o()(),a(7,"span")(8,"input",18),ke("ngModelChange",function(p){let y=S(e).$implicit;return ye(y.selected,p)||(y.selected=p),I(p)}),x("ngModelChange",function(){S(e);let p=b();return I(p.onAdapterSelectionChange())}),o(),d(9,"label",19),o()()}if(i&2){let e=c.$implicit;t(3),u(e.ip4||e.ip6),t(3),u(e.iface),t(2),m("id","adapter"+e.iface),Ie("ngModel",e.selected),t(),m("for","adapter"+e.iface)}}var st=(()=>{class i{$activeModal=C(A);adaptersOriginal=[];adaptersAvailable=[];adaptersSelected=[];isUnchanged=!0;ngOnInit(){this.adaptersAvailable.forEach(e=>{e.selected=this.adaptersSelected.some(n=>n.iface===e.iface)}),this.adaptersOriginal=this.adaptersSelected.map(e=>e.iface)}onAdapterSelectionChange(){this.isUnchanged=this.adaptersOriginal.length===this.adaptersAvailable.filter(e=>e.selected).length&&this.adaptersOriginal.every(e=>this.adaptersAvailable.some(n=>n.iface===e&&n.selected))}submit(){this.$activeModal.close(this.adaptersAvailable.filter(e=>e.selected).map(e=>e.iface))}closeAndReset(){this.adaptersAvailable.forEach(e=>{e.selected=this.adaptersOriginal.includes(e.iface)}),this.isUnchanged=!0,this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],inputs:{adaptersAvailable:"adaptersAvailable",adaptersSelected:"adaptersSelected"},decls:28,vars:19,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-ethernet","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"font-monospace"],[1,"font-monospace","grey-text"],["type","checkbox",1,"rendux-input",3,"ngModelChange","id","ngModel"],[1,"rendux-label","ms-3",3,"for"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.closeAndReset()}),o()(),a(7,"div",4)(8,"div",5),d(9,"i",6),o(),a(10,"ul",7)(11,"li"),l(12),r(13,"translate"),o()(),a(14,"ul",8),z(15,Si,10,5,"li",9,L),o()(),a(17,"div",10)(18,"div",11)(19,"button",12),r(20,"translate"),x("click",function(){return p.closeAndReset()}),l(21),r(22,"translate"),o()(),d(23,"div",13),a(24,"div",14)(25,"button",15),x("click",function(){return p.submit()}),l(26),r(27,"translate"),o()()()()),n&2&&(t(3),u(s(4,7,"settings.network.title_network_interfaces")),t(2),f("aria-label",s(6,9,"form.button_close")),t(7),u(s(13,11,"settings.network.message_network_interface")),t(3),O(p.adaptersAvailable),t(4),f("aria-label",s(20,13,"form.button_close")),t(2),g(" ",s(22,15,"form.button_close")," "),t(4),m("disabled",p.isUnchanged),t(),g(" ",s(27,17,"form.button_save")," "))},dependencies:[ae,ie,ne,Fe,R],encapsulation:2})}return i})();var Ii=["wallpaperInput"],yi=i=>({maxFileSizeText:i});function ki(i,c){if(i&1){let e=E();T(0,"div",10),H(1,"img",20),T(2,"button",21),r(3,"translate"),W("click",function(){S(e);let p=b();return I(p.clearWallpaper())}),H(4,"i",22),B()()}if(i&2){let e=b();t(),K("src",e.wallpaperUrl,ve),t(),f("aria-label",s(3,2,"form.button_delete"))}}function Ei(i,c){i&1&&H(0,"div",11)}var lt=(()=>{class i{$activeModal=C(A);$api=C(D);$settings=C(Y);$toastr=C(M);$translate=C(V);clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;wallpaperUrl=null;originalWallpaperUrl=null;wallpaperInput;ngOnInit(){this.$settings.env.customWallpaperHash&&(this.wallpaperUrl=`${ze.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`,this.originalWallpaperUrl=this.wallpaperUrl)}onFileChange(e){if(e.length){this.selectedFile=e[0];let n=new FileReader;n.onload=p=>{this.wallpaperUrl=p.target.result},n.readAsDataURL(this.selectedFile)}else delete this.selectedFile,this.wallpaperUrl=this.originalWallpaperUrl}saveWallpaper(){if(this.clicked=!0,this.selectedFile){let e=new FormData;e.append("wallpaper",this.selectedFile,this.selectedFile.name),this.$api.post("/server/wallpaper",e).subscribe({next:()=>{this.$settings.setItem("wallpaper",`ui-wallpaper.${this.selectedFile.name.split(".").pop()}`),this.$activeModal.close(),this.$toastr.success(this.$translate.instant("settings.display.wallpaper_success"),this.$translate.instant("toast.title_success"))},error:n=>{console.error(n),this.$toastr.error(n.error?.message,this.$translate.instant("toast.title_error")),this.clicked=!1}})}else this.$api.delete("/server/wallpaper").subscribe({next:()=>{this.$activeModal.close()},error:e=>{console.error(e),this.$toastr.error(e.error?.message,this.$translate.instant("toast.title_error")),this.clicked=!1}})}clearWallpaper(){this.selectedFile=null,this.wallpaperUrl=this.wallpaperUrl===this.originalWallpaperUrl?null:this.originalWallpaperUrl,this.wallpaperInput.nativeElement.value=""}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],viewQuery:function(n,p){if(n&1&&Ce(Ii,5),n&2){let y;xe(y=Se())&&(p.wallpaperInput=y.first)}},decls:36,vars:28,consts:[["wallpaperInput",""],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-image","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"mb-3","text-center"],[1,"position-relative","d-inline-block"],[1,"gradient","anim","rounded",2,"height","200px","width","350px","margin","0 auto"],[1,"mb-0"],["type","file","id","wallpaper","accept","image/*",1,"form-control",3,"change"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],["alt","Current Wallpaper",1,"img-fluid","rounded","mx-auto","d-block",2,"height","200px",3,"src"],[1,"btn","btn-danger","position-absolute",2,"top","10px","right","10px",3,"click"],[1,"fas","fa-fw","fa-trash"]],template:function(n,p){if(n&1){let y=E();T(0,"div",1)(1,"div",2)(2,"h5",3),l(3),r(4,"translate"),B(),T(5,"button",4),r(6,"translate"),W("click",function(){return S(y),I(p.dismissModal())}),B()(),T(7,"div",5)(8,"div",6),H(9,"i",7),B(),T(10,"ul",8)(11,"li"),l(12),r(13,"translate"),B(),T(14,"li"),l(15),r(16,"translate"),B(),T(17,"li"),l(18),r(19,"translate"),B()(),T(20,"div",9),h(21,ki,5,4,"div",10)(22,Ei,1,0,"div",11),B(),T(23,"div",12)(24,"input",13,0),W("change",function(q){return S(y),I(p.onFileChange(q.target.files))}),B()()(),T(26,"div",14)(27,"div",15)(28,"button",16),W("click",function(){return S(y),I(p.dismissModal())}),l(29),r(30,"translate"),B()(),H(31,"div",17),T(32,"div",18)(33,"button",19),W("click",function(){return S(y),I(p.saveWallpaper())}),l(34),r(35,"translate"),B()()()()}n&2&&(t(3),u(s(4,11,"settings.display.wallpaper")),t(2),K("disabled",p.clicked),f("aria-label",s(6,13,"form.button_close")),t(7),u(s(13,15,"settings.display.wallpaper_intro")),t(3),u(G(16,17,"settings.display.wallpaper_rule",N(26,yi,p.maxFileSizeText))),t(3),u(s(19,20,"settings.display.wallpaper_rule2")),t(3),_(p.wallpaperUrl?21:22),t(7),K("disabled",p.clicked),t(),g(" ",s(30,22,"form.button_close")," "),t(4),K("disabled",p.wallpaperUrl===p.originalWallpaperUrl||p.clicked),t(),g(" ",s(35,24,"form.button_save")," "))},dependencies:[oe,R],styles:[".anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}"]})}return i})();var Z=(i,c)=>({"fa-chevron-down":i,"fa-chevron-right":c}),J=i=>({"is-invalid":i}),wi=i=>({link:i}),Bi=(i,c)=>({"badge-danger":i,"badge-info":c});function Ti(i,c){i&1&&d(0,"app-spinner")}function $i(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Fi(i,c){if(i&1){let e=E();a(0,"ul",8)(1,"li",18)(2,"span"),l(3),r(4,"translate"),o(),a(5,"div",19),d(6,"input",20),r(7,"translate"),h(8,$i,1,1,"i",21),o()(),a(9,"li",22)(10,"span",23),l(11),r(12,"translate"),o(),a(13,"button",24),r(14,"translate"),x("click",function(){S(e);let p=b(2);return I(p.openBackupModal())}),d(15,"i",25),o()(),a(16,"li",22)(17,"span",23),l(18),r(19,"translate"),o(),a(20,"button",24),r(21,"translate"),x("click",function(){S(e);let p=b(2);return I(p.openConfigBackup())}),d(22,"i",25),o()(),a(23,"li",22)(24,"span",23),l(25),r(26,"translate"),o(),a(27,"a",26),r(28,"translate"),d(29,"i",25),o()()()}if(i&2){let e=b(2);t(3),u(s(4,11,"settings.name")),t(3),m("formControl",e.hbNameFormControl)("ngClass",N(27,J,e.hbNameIsInvalid)),f("aria-label",s(7,13,"settings.name")),t(2),_(e.hbNameIsSaving?8:-1),t(3),g(" ",s(12,15,"backup.title_backup")," "),t(2),f("aria-label",s(14,17,"backup.title_backup")),t(5),g(" ",s(19,19,"config.restore.title")," "),t(2),f("aria-label",s(21,21,"config.restore.title")),t(5),g(" ",s(26,23,"menu.tooltip_user_accounts")," "),t(2),f("aria-label",s(28,25,"menu.tooltip_user_accounts"))}}function Pi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ri(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ai(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Vi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Mi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Di(i,c){if(i&1){let e=E();a(0,"ul",9)(1,"li",18),l(2),r(3,"translate"),a(4,"div",19)(5,"select",27)(6,"option",28),l(7),r(8,"translate"),o(),a(9,"option",29),l(10,"Bulgarian (bg)"),o(),a(11,"option",30),l(12,"Catalan (ca)"),o(),a(13,"option",31),l(14,"Chinese - Simplified (zh-CN)"),o(),a(15,"option",32),l(16,"Chinese - Traditional (zh-TW)"),o(),a(17,"option",33),l(18,"Czech (cs)"),o(),a(19,"option",34),l(20,"Dutch (nl)"),o(),a(21,"option",35),l(22,"English (en)"),o(),a(23,"option",36),l(24,"Finnish (fi)"),o(),a(25,"option",37),l(26,"French (fr)"),o(),a(27,"option",38),l(28,"German (de)"),o(),a(29,"option",39),l(30,"Hebrew (he)"),o(),a(31,"option",40),l(32,"Hungarian (hu)"),o(),a(33,"option",41),l(34,"Indonesian (id)"),o(),a(35,"option",42),l(36,"Italian (it)"),o(),a(37,"option",43),l(38,"Japanese (ja)"),o(),a(39,"option",44),l(40,"Korean (ko)"),o(),a(41,"option",45),l(42,"Macedonian (mk)"),o(),a(43,"option",46),l(44,"Norwegian (no)"),o(),a(45,"option",47),l(46,"Polish (pl)"),o(),a(47,"option",48),l(48,"Portuguese (Brazil)"),o(),a(49,"option",49),l(50,"Portuguese (Portugal)"),o(),a(51,"option",50),l(52,"Russian (ru)"),o(),a(53,"option",51),l(54,"Slovenian (sl)"),o(),a(55,"option",52),l(56,"Spanish (es)"),o(),a(57,"option",53),l(58,"Swedish (sv)"),o(),a(59,"option",54),l(60,"Thai (th)"),o(),a(61,"option",55),l(62,"Turkish (tr)"),o(),a(63,"option",56),l(64,"Ukrainian (uk)"),o()(),h(65,Pi,1,1,"i",21),o()(),a(66,"li",18),l(67),r(68,"translate"),a(69,"div",19)(70,"select",27)(71,"option",57),l(72),r(73,"translate"),o(),a(74,"option",58),l(75),r(76,"translate"),o(),a(77,"option",59),l(78),r(79,"translate"),o(),a(80,"option",60),l(81),r(82,"translate"),o(),a(83,"option",61),l(84),r(85,"translate"),o(),a(86,"option",62),l(87),r(88,"translate"),o(),a(89,"option",63),l(90),r(91,"translate"),o(),a(92,"option",64),l(93),r(94,"translate"),o(),a(95,"option",65),l(96),r(97,"translate"),o(),a(98,"option",66),l(99),r(100,"translate"),o(),a(101,"option",67),l(102),r(103,"translate"),o(),a(104,"option",68),l(105),r(106,"translate"),o(),a(107,"option",69),l(108),r(109,"translate"),o()(),h(110,Ri,1,1,"i",21),o()(),a(111,"li",18),l(112),r(113,"translate"),a(114,"div",19)(115,"select",27)(116,"option",28),l(117),r(118,"translate"),o(),a(119,"option",70),l(120),r(121,"translate"),o(),a(122,"option",71),l(123),r(124,"translate"),o()(),h(125,Ai,1,1,"i",21),o()(),a(126,"li",18),l(127),r(128,"translate"),a(129,"div",19)(130,"select",27)(131,"option",72),l(132),r(133,"translate"),o(),a(134,"option",73),l(135),r(136,"translate"),o()(),h(137,Vi,1,1,"i",21),o()(),a(138,"li",18),l(139),r(140,"translate"),a(141,"div",19)(142,"select",27)(143,"option",74),l(144),r(145,"translate"),o(),a(146,"option",75),l(147),r(148,"translate"),o()(),h(149,Mi,1,1,"i",21),o()(),a(150,"li",22)(151,"span",23),l(152),r(153,"translate"),o(),a(154,"button",24),r(155,"translate"),x("click",function(){S(e);let p=b(2);return I(p.openWallpaperModal())}),d(156,"i",25),o()()()}if(i&2){let e=b(2);t(2),g(" ",s(3,38,"settings.display.lang")," "),t(3),m("formControl",e.uiLangFormControl),t(2),u(s(8,40,"form.select.auto")),t(58),_(e.uiLangIsSaving?65:-1),t(2),g(" ",s(68,42,"settings.display.theme")," "),t(3),m("formControl",e.uiThemeFormControl),t(2),u(s(73,44,"settings.display.orange")),t(3),u(s(76,46,"settings.display.red")),t(3),u(s(79,48,"settings.display.pink")),t(3),u(s(82,50,"settings.display.purple")),t(3),u(s(85,52,"settings.display.deep_purple")),t(3),u(s(88,54,"settings.display.indigo")),t(3),u(s(91,56,"settings.display.blue")),t(3),u(s(94,58,"settings.display.bluegrey")),t(3),u(s(97,60,"settings.display.cyan")),t(3),u(s(100,62,"settings.display.green")),t(3),u(s(103,64,"settings.display.teal")),t(3),u(s(106,66,"settings.display.grey")),t(3),u(s(109,68,"settings.display.brown")),t(2),_(e.uiThemeIsSaving?110:-1),t(2),g(" ",s(113,70,"settings.display.lighting_mode")," "),t(3),m("formControl",e.uiLightFormControl),t(2),u(s(118,72,"form.select.auto")),t(3),u(s(121,74,"settings.display.light")),t(3),u(s(124,76,"settings.display.dark")),t(2),_(e.uiLightIsSaving?125:-1),t(2),g(" ",s(128,78,"settings.display.menu_mode")," "),t(3),m("formControl",e.uiMenuFormControl),t(2),u(s(133,80,"settings.display.menu_default")),t(3),u(s(136,82,"settings.display.menu_freeze")),t(2),_(e.uiMenuIsSaving?137:-1),t(2),g(" ",s(140,84,"settings.display.temp_units")," "),t(3),m("formControl",e.uiTempFormControl),t(2),u(s(145,86,"settings.display.temp_units.c")),t(3),u(s(148,88,"settings.display.temp_units.f")),t(2),_(e.uiTempIsSaving?149:-1),t(3),u(s(153,90,"settings.display.wallpaper")),t(2),f("aria-label",s(155,92,"settings.display.wallpaper"))}}function Ni(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Li(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function zi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Oi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Hi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ui(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Wi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ki(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Gi(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",76),l(6),r(7,"translate"),o()(),a(8,"div",19),d(9,"input",94),r(10,"translate"),h(11,Ki,1,1,"i",21),o()()),i&2){let e=b(4);t(2),g(" ",s(3,5,"settings.linux.temp")),t(4),u(s(7,7,"settings.linux.temp_desc")),t(3),m("formControl",e.uiTempFileFormControl),f("aria-label",s(10,9,"settings.linux.temp")),t(2),_(e.uiTempFileIsSaving?11:-1)}}function ji(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",76),l(6),r(7,"translate"),o()(),a(8,"div",19),d(9,"input",92),r(10,"translate"),h(11,Ui,1,1,"i",21),o()(),a(12,"li",18)(13,"span"),l(14),r(15,"translate"),d(16,"br"),a(17,"small",76),l(18),r(19,"translate"),o()(),a(20,"div",19),d(21,"input",93),r(22,"translate"),h(23,Wi,1,1,"i",21),o()(),h(24,Gi,12,11,"li",18)),i&2){let e=b(3);t(2),g(" ",s(3,11,"settings.linux.shutdown")),t(4),u(s(7,13,"settings.linux.shutdown_desc")),t(3),m("formControl",e.hbLinuxShutdownFormControl),f("aria-label",s(10,15,"settings.linux.shutdown")),t(2),_(e.hbLinuxShutdownIsSaving?11:-1),t(3),g(" ",s(15,17,"settings.linux.restart")),t(4),u(s(19,19,"settings.linux.restart_desc")),t(3),m("formControl",e.hbLinuxRestartFormControl),f("aria-label",s(22,21,"settings.linux.restart")),t(2),_(e.hbLinuxRestartIsSaving?23:-1),t(),_(e.runningOnRaspberryPi?24:-1)}}function qi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Qi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ji(i,c){i&1&&(a(0,"li",22)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",76),l(6),r(7,"translate"),o()(),a(8,"a",95),r(9,"translate"),d(10,"i",25),o()()),i&2&&(t(2),g(" ",s(3,3,"menu.docker.startup_script")),t(4),u(s(7,5,"platform.docker.script_help")),t(2),f("aria-label",s(9,7,"menu.docker.startup_script")))}function Xi(i,c){if(i&1&&(a(0,"ul",10)(1,"li",22)(2,"span"),l(3),r(4,"translate"),a(5,"code"),l(6,"-D"),o(),d(7,"br"),a(8,"small",76),l(9),r(10,"translate"),o()(),a(11,"div",77)(12,"div",78),d(13,"input",79),r(14,"translate"),d(15,"label",80),o(),h(16,Ni,1,1,"i",21),o()(),a(17,"li",22)(18,"span"),l(19),r(20,"translate"),a(21,"code"),l(22,"-I"),o(),d(23,"br"),a(24,"small",76),l(25),r(26,"translate"),o()(),a(27,"div",77)(28,"div",78),d(29,"input",81),r(30,"translate"),d(31,"label",82),o(),h(32,Li,1,1,"i",21),o()(),a(33,"li",22)(34,"span"),l(35),r(36,"translate"),a(37,"code"),l(38,"-K"),o(),d(39,"br"),a(40,"small",76),l(41),r(42,"translate"),o()(),a(43,"div",77)(44,"div",78),d(45,"input",83),r(46,"translate"),d(47,"label",84),o(),h(48,zi,1,1,"i",21),o()(),a(49,"li",22)(50,"span"),l(51),r(52,"translate"),d(53,"br"),a(54,"small",76),l(55),r(56,"translate"),o()(),a(57,"div",77)(58,"div",78),d(59,"input",85),r(60,"translate"),d(61,"label",86),o(),h(62,Oi,1,1,"i",21),o()(),a(63,"li",18)(64,"span"),l(65),r(66,"translate"),d(67,"br"),a(68,"small",76),l(69),r(70,"translate"),o()(),a(71,"div",19),d(72,"input",87),r(73,"translate"),h(74,Hi,1,1,"i",21),o()(),h(75,ji,25,23),a(76,"li",18)(77,"span")(78,"span",88),l(79,"DEBUG"),o(),d(80,"br")(81,"small",89),r(82,"translate"),o(),a(83,"div",19),d(84,"input",90),h(85,qi,1,1,"i",21),o()(),a(86,"li",18)(87,"span")(88,"span",88),l(89,"NODE_OPTIONS"),o(),d(90,"br"),a(91,"small",76),l(92),r(93,"translate"),o()(),a(94,"div",19),d(95,"input",91),h(96,Qi,1,1,"i",21),o()(),h(97,Ji,11,9,"li",22),o()),i&2){let e=b(2);t(3),g(" ",s(4,33,"settings.startup.debug")," "),t(6),g(" ",s(10,35,e.isHbV2?"settings.startup.debug_desc_v2":"settings.startup.debug_desc_v1")," "),t(4),m("formControl",e.hbDebugFormControl),f("aria-label",s(14,37,"settings.startup.debug")),t(3),_(e.hbDebugIsSaving?16:-1),t(3),g(" ",s(20,39,"settings.startup.insecure")," "),t(6),u(s(26,41,"settings.startup.insecure_desc")),t(4),m("formControl",e.hbInsecureFormControl),f("aria-label",s(30,43,"settings.startup.insecure")),t(3),_(e.hbInsecureIsSaving?32:-1),t(3),g(" ",s(36,45,"settings.startup.keep_accessories")," "),t(6),u(s(42,47,"settings.startup.keep_accessories_desc")),t(4),m("formControl",e.hbKeepFormControl),f("aria-label",s(46,49,"settings.startup.keep_accessories")),t(3),_(e.hbKeepIsSaving?48:-1),t(3),g(" ",s(52,51,"settings.startup.metrics")),t(4),u(s(56,53,"settings.startup.metrics_desc")),t(4),m("formControl",e.uiMetricsFormControl),f("aria-label",s(60,55,"settings.startup.metrics")),t(3),_(e.uiMetricsIsSaving?62:-1),t(3),g(" ",s(66,57,"settings.network.hb_package")),t(4),u(s(70,59,"settings.network.hb_package_desc")),t(3),m("formControl",e.hbPackageFormControl),f("aria-label",s(73,61,"settings.network.hb_package")),t(2),_(e.hbPackageIsSaving?74:-1),t(),_(e.platform==="linux"?75:-1),t(6),m("innerHTML",G(82,63,"settings.service.debug_tooltip",N(68,wi,e.linkDebug)),he),t(3),m("formControl",e.hbEnvDebugFormControl),t(),_(e.hbEnvDebugIsSaving?85:-1),t(7),u(s(93,66,"settings.service.node_tooltip")),t(3),m("formControl",e.hbEnvNodeFormControl),t(),_(e.hbEnvNodeIsSaving?96:-1),t(),_(e.runningInDocker?97:-1)}}function Yi(i,c){i&1&&d(0,"i",108)}function Zi(i,c){if(i&1&&(a(0,"span",97),h(1,Yi,1,0,"i",108),l(2),a(3,"span",109),l(4),r(5,"translate"),o()()),i&2){let e=c.$implicit;m("ngClass",F(6,Bi,e.missing,!e.missing)),t(),_(e.missing?1:-1),t(),g(" ",e.iface,": "),t(2),u(e.missing?s(5,4,"settings.mdns_advertiser_not_connected"):e.ip4||e.ip6)}}function en(i,c){i&1&&(a(0,"option",99),l(1),r(2,"translate"),o()),i&2&&(t(),g("Avahi (",s(2,1,"settings.mdns_advertiser_rec"),")"))}function tn(i,c){i&1&&(a(0,"option",102),l(1),r(2,"translate"),o()),i&2&&(t(),g("systemd-resolved (",s(2,1,"settings.mdns_advertiser_exp"),")"))}function nn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function an(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function on(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function rn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function sn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function ln(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function pn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function dn(i,c){if(i&1){let e=E();a(0,"ul",11)(1,"li",22)(2,"span",23),l(3),r(4,"translate"),d(5,"br"),a(6,"div",96),l(7),r(8,"translate"),o(),z(9,Zi,6,9,"span",97,L),o(),a(11,"button",98),r(12,"translate"),x("click",function(){S(e);let p=b(2);return I(p.selectNetworkInterfaces())}),d(13,"i",25),o()(),a(14,"li",18)(15,"span"),l(16),r(17,"translate"),d(18,"br"),a(19,"small",76),l(20),r(21,"translate"),o()(),a(22,"div",19)(23,"select",27),r(24,"translate"),h(25,en,3,3,"option",99),a(26,"option",100),l(27),r(28,"translate"),o(),a(29,"option",101),l(30,"Bonjour HAP"),o(),h(31,tn,3,3,"option",102),o(),h(32,nn,1,1,"i",21),o()(),a(33,"li",18)(34,"span"),l(35),r(36,"translate"),d(37,"br"),a(38,"small",76),l(39),r(40,"translate"),o()(),a(41,"div",19),d(42,"input",103),r(43,"translate"),h(44,an,1,1,"i",21),o()(),a(45,"li",18)(46,"span"),l(47),r(48,"translate"),d(49,"br"),a(50,"small",76),l(51),r(52,"translate"),o()(),a(53,"div",19),d(54,"input",104),r(55,"translate"),h(56,on,1,1,"i",21),o()(),a(57,"li",18)(58,"span"),l(59),r(60,"translate"),d(61,"br"),a(62,"small",76),l(63),r(64,"translate"),o()(),a(65,"div",19),d(66,"input",103),r(67,"translate"),h(68,rn,1,1,"i",21),o()(),a(69,"li",18)(70,"span"),l(71),r(72,"translate"),d(73,"br"),a(74,"small",76),l(75),r(76,"translate"),o()(),a(77,"div",19),d(78,"input",103),r(79,"translate"),h(80,sn,1,1,"i",21),o()(),a(81,"li",18)(82,"span"),l(83),r(84,"translate"),d(85,"br")(86,"small",105),r(87,"translate"),o(),a(88,"div",19),d(89,"input",106),r(90,"translate"),h(91,ln,1,1,"i",21),o()(),a(92,"li",18)(93,"span"),l(94),r(95,"translate"),d(96,"br"),a(97,"small",76),l(98),r(99,"translate"),o()(),a(100,"div",19),d(101,"input",107),r(102,"translate"),h(103,pn,1,1,"i",21),o()()()}if(i&2){let e=b(2);t(3),g(" ",s(4,46,"settings.network.title_network_interfaces")),t(4),u(s(8,48,"settings.network.message_network_interface")),t(2),O(e.adaptersSelected),t(2),m("disabled",!e.adaptersAvailable.length),f("aria-label",s(12,50,"settings.network.title_network_interfaces")),t(5),g(" ",s(17,52,"settings.mdns_advertiser")),t(4),u(s(21,54,"settings.mdns_advertiser_help")),t(3),m("formControl",e.hbMDnsFormControl),f("aria-label",s(24,56,"settings.mdns_advertiser")),t(2),_(e.showAvahiMdnsOption?25:-1),t(2),g(" Ciao ",e.showAvahiMdnsOption?"":"("+s(28,58,"settings.mdns_advertiser_rec")+")"," "),t(4),_(e.showResolvedMdnsOption?31:-1),t(),_(e.hbMDnsIsSaving?32:-1),t(3),g(" ",s(36,60,"settings.network.port_hb")),t(4),u(s(40,62,"settings.network.port_hb_desc")),t(3),m("formControl",e.hbPortFormControl)("ngClass",N(96,J,e.hbPortIsInvalid)),f("aria-label",s(43,64,"settings.network.port_hb")),t(2),_(e.hbPortIsSaving?44:-1),t(3),g(" ",s(48,66,"settings.network.port_ui")),t(4),u(s(52,68,"settings.network.port_ui_desc")),t(3),m("formControl",e.uiPortFormControl)("ngClass",N(98,J,e.uiPortIsInvalid)),f("aria-label",s(55,70,"settings.network.port_ui")),t(2),_(e.uiPortIsSaving?56:-1),t(3),g(" ",s(60,72,"settings.network.port_start")),t(4),u(s(64,74,"settings.network.port_start_desc")),t(3),m("formControl",e.hbStartPortFormControl)("ngClass",N(100,J,e.hbStartPortIsInvalid)),f("aria-label",s(67,76,"settings.network.port_start")),t(2),_(e.hbStartPortIsSaving?68:-1),t(3),g(" ",s(72,78,"settings.network.port_end")),t(4),u(s(76,80,"settings.network.port_end_desc")),t(3),m("formControl",e.hbEndPortFormControl)("ngClass",N(102,J,e.hbEndPortIsInvalid)),f("aria-label",s(79,82,"settings.network.port_end")),t(2),_(e.hbEndPortIsSaving?80:-1),t(3),g(" ",s(84,84,"settings.network.host")),t(3),m("innerHtml",s(87,86,"settings.network.host_desc"),he),t(3),m("formControl",e.uiHostFormControl),f("aria-label",s(90,88,"settings.network.host")),t(2),_(e.uiHostIsSaving?91:-1),t(3),g(" ",s(95,90,"settings.network.proxy")),t(4),u(s(99,92,"settings.network.proxy_desc")),t(3),m("formControl",e.uiProxyHostFormControl),f("aria-label",s(102,94,"settings.network.proxy")),t(2),_(e.uiProxyHostIsSaving?103:-1)}}function cn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function mn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function un(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",76),l(6),r(7,"translate"),o()(),a(8,"div",19),d(9,"input",111),r(10,"translate"),h(11,mn,1,1,"i",21),o()()),i&2){let e=b(3);t(2),g(" ",s(3,6,"settings.terminal.log_truncate")),t(4),u(s(7,8,"settings.terminal.log_truncate_desc")),t(3),m("formControl",e.hbLogTruncateFormControl)("ngClass",N(12,J,e.hbLogTruncateIsInvalid)),f("aria-label",s(10,10,"settings.terminal.log_truncate")),t(2),_(e.hbLogTruncateIsSaving?11:-1)}}function hn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function _n(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function gn(i,c){if(i&1&&(a(0,"li",22)(1,"span"),l(2),r(3,"translate"),a(4,"span",112),l(5),r(6,"translate"),o(),d(7,"br"),a(8,"small",76),l(9),r(10,"translate"),o()(),a(11,"div",77)(12,"div",78),d(13,"input",115),r(14,"translate"),d(15,"label",116),o(),h(16,_n,1,1,"i",21),o()()),i&2){let e=b(4);t(2),g(" ",s(3,6,"settings.terminal.warning")," "),t(3),u(s(6,8,"common.labels.beta")),t(4),u(s(10,10,"settings.terminal.warning_help")),t(4),m("formControl",e.uiTerminalHideWarningFormControl),f("aria-label",s(14,12,"settings.terminal.warning")),t(3),_(e.uiTerminalHideWarningIsSaving?16:-1)}}function bn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function fn(i,c){if(i&1&&(a(0,"li",18)(1,"div",117)(2,"span"),l(3),r(4,"translate"),a(5,"span",112),l(6),r(7,"translate"),o()(),a(8,"div",118),l(9),r(10,"translate"),o()(),a(11,"div",19),d(12,"input",119),r(13,"translate"),h(14,bn,1,1,"i",21),o()()),i&2){let e=b(4);t(3),g(" ",s(4,7,"settings.terminal.buffer_size")," "),t(3),u(s(7,9,"common.labels.beta")),t(3),u(s(10,11,"settings.terminal.buffer_size_help")),t(3),m("formControl",e.uiTerminalBufferSizeFormControl)("ngClass",N(15,J,e.uiTerminalBufferSizeIsInvalid)),f("aria-label",s(13,13,"settings.terminal.buffer_size")),t(2),_(e.uiTerminalBufferSizeIsSaving?14:-1)}}function vn(i,c){if(i&1&&(a(0,"li",22)(1,"span"),l(2),r(3,"translate"),a(4,"span",112),l(5),r(6,"translate"),o(),d(7,"br"),a(8,"small",76),l(9),r(10,"translate"),o()(),a(11,"div",77)(12,"div",78),d(13,"input",113),r(14,"translate"),d(15,"label",114),o(),h(16,hn,1,1,"i",21),o()(),h(17,gn,17,14,"li",22),h(18,fn,15,17,"li",18)),i&2){let e=b(3);t(2),g(" ",s(3,8,"settings.terminal.persistence")," "),t(3),u(s(6,10,"common.labels.beta")),t(4),u(s(10,12,"settings.terminal.persistence_help")),t(4),m("formControl",e.uiTerminalPersistenceFormControl),f("aria-label",s(14,14,"settings.terminal.persistence")),t(3),_(e.uiTerminalPersistenceIsSaving?16:-1),t(),_(e.uiTerminalPersistenceFormControl.value?-1:17),t(),_(e.uiTerminalPersistenceFormControl.value?18:-1)}}function Cn(i,c){if(i&1&&(a(0,"ul",12)(1,"li",18)(2,"span"),l(3),r(4,"translate"),d(5,"br"),a(6,"small",76),l(7),r(8,"translate"),o()(),a(9,"div",19),d(10,"input",110),r(11,"translate"),h(12,cn,1,1,"i",21),o()(),h(13,un,12,14,"li",18),h(14,vn,19,16),o()),i&2){let e=b(2);t(3),g(" ",s(4,8,"settings.terminal.log_max")),t(4),u(s(8,10,"settings.terminal.log_max_desc")),t(3),m("formControl",e.hbLogSizeFormControl)("ngClass",N(14,J,e.hbLogSizeIsInvalid)),f("aria-label",s(11,12,"settings.terminal.log_max")),t(2),_(e.hbLogSizeIsSaving?12:-1),t(),_(e.hbLogSizeFormControl.value>0?13:-1),t(),_(e.enableTerminalAccess?14:-1)}}function xn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Sn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function In(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",76),l(6),r(7,"translate"),o()(),a(8,"div",19),d(9,"input",125),r(10,"translate"),h(11,Sn,1,1,"i",21),o()()),i&2){let e=b(3);t(2),g(" ",s(3,6,"settings.startup.session")),t(4),u(s(7,8,"settings.startup.session_desc")),t(3),m("formControl",e.uiSessionTimeoutFormControl)("ngClass",N(12,J,e.uiSessionTimeoutIsInvalid)),f("aria-label",s(10,10,"settings.startup.session")),t(2),_(e.uiSessionTimeoutIsSaving?11:-1)}}function yn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function kn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function En(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),o(),a(4,"div",19),d(5,"input",126),r(6,"translate"),h(7,yn,1,1,"i",21),o()(),a(8,"li",18)(9,"span"),l(10),r(11,"translate"),o(),a(12,"div",19),d(13,"input",127),r(14,"translate"),h(15,kn,1,1,"i",21),o()()),i&2){let e=b(3);t(2),u(s(3,8,"settings.security.key")),t(3),m("formControl",e.uiSslKeyFormControl),f("aria-label",s(6,10,"settings.security.key")),t(2),_(e.uiSslKeyIsSaving?7:-1),t(3),u(s(11,12,"settings.security.cert")),t(3),m("formControl",e.uiSslCertFormControl),f("aria-label",s(14,14,"settings.security.cert")),t(2),_(e.uiSslCertIsSaving?15:-1)}}function wn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Bn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Tn(i,c){if(i&1){let e=E();a(0,"li",18)(1,"span"),l(2),r(3,"translate"),o(),a(4,"div",19),d(5,"input",128),r(6,"translate"),h(7,wn,1,1,"i",21),o()(),a(8,"li",18)(9,"span"),l(10),r(11,"translate"),o(),a(12,"div",19)(13,"input",129),r(14,"translate"),x("focus",function(){S(e);let p=b(3);return I(p.showPfxPassphrase=!0)})("blur",function(){S(e);let p=b(3);return I(p.showPfxPassphrase=!1)}),o(),h(15,Bn,1,1,"i",21),o()()}if(i&2){let e=b(3);t(2),u(s(3,9,"settings.security.pfx")),t(3),m("formControl",e.uiSslPfxFormControl),f("aria-label",s(6,11,"settings.security.pfx")),t(2),_(e.uiSslPfxIsSaving?7:-1),t(3),u(s(11,13,"settings.security.pass")),t(3),m("type",e.showPfxPassphrase?"text":"password")("formControl",e.uiSslPassphraseFormControl),f("aria-label",s(14,15,"settings.security.pass")),t(2),_(e.uiSslPassphraseIsSaving?15:-1)}}function $n(i,c){if(i&1){let e=E();a(0,"ul",13)(1,"li",22)(2,"span"),l(3),r(4,"translate"),d(5,"br"),a(6,"small",76),l(7),r(8,"translate"),o()(),a(9,"div",77)(10,"div",78),d(11,"input",120),r(12,"translate"),d(13,"label",121),o(),h(14,xn,1,1,"i",21),o()(),h(15,In,12,14,"li",18),a(16,"li",18)(17,"span"),l(18),r(19,"translate"),d(20,"br"),a(21,"small",76),l(22),r(23,"translate"),o()(),a(24,"div",19)(25,"select",27),r(26,"translate"),a(27,"option",122),l(28),r(29,"translate"),o(),a(30,"option",123),l(31),r(32,"translate"),o(),a(33,"option",124),l(34),r(35,"translate"),o()()()(),h(36,En,16,16),h(37,Tn,16,17),a(38,"li",22)(39,"span",23),l(40),r(41,"translate"),d(42,"br"),a(43,"small",76),l(44),r(45,"translate"),o()(),a(46,"button",24),r(47,"translate"),x("click",function(){S(e);let p=b(2);return I(p.accessoryUiControl())}),d(48,"i",25),o()()()}if(i&2){let e=b(2);t(3),g(" ",s(4,18,"settings.security.auth")),t(4),g(" ",s(8,20,"settings.security.auth_desc")," "),t(4),m("formControl",e.uiAuthFormControl),f("aria-label",s(12,22,"settings.security.auth")),t(3),_(e.uiAuthIsSaving?14:-1),t(),_(e.uiAuthFormControl.value?15:-1),t(3),g(" ",s(19,24,"settings.security.https")),t(4),u(s(23,26,"settings.security.https_desc")),t(3),m("formControl",e.uiSslTypeFormControl),f("aria-label",s(26,28,"settings.security.https")),t(3),u(s(29,30,"accessories.control.off")),t(3),u(s(32,32,"settings.security.https_keycert")),t(3),u(s(35,34,"settings.security.https_pfx")),t(2),_(e.uiSslTypeFormControl.value==="keycert"?36:-1),t(),_(e.uiSslTypeFormControl.value==="pfx"?37:-1),t(3),g(" ",s(41,36,"settings.security.ui_control")),t(4),u(s(45,38,"settings.security.ui_control_desc")),t(2),f("aria-label",s(47,40,"settings.security.ui_control"))}}function Fn(i,c){i&1&&(a(0,"p",14),l(1),r(2,"translate"),o()),i&2&&(t(),u(s(2,1,"settings.cache.desc")))}function Pn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Rn(i,c){if(i&1){let e=E();a(0,"ul",15)(1,"li",22)(2,"span"),l(3),r(4,"translate"),d(5,"br"),a(6,"small",76),l(7),r(8,"translate"),o()(),a(9,"div",77)(10,"div",78),d(11,"input",130),r(12,"translate"),d(13,"label",131),o(),h(14,Pn,1,1,"i",21),o()(),a(15,"li",22)(16,"span",23),l(17),r(18,"translate"),d(19,"br"),a(20,"small",76),l(21),r(22,"translate"),o()(),a(23,"button",24),r(24,"translate"),x("click",function(){S(e);let p=b(2);return I(p.removeSingleCachedAccessories())}),d(25,"i",25),o()(),a(26,"li",22)(27,"span",23),l(28),r(29,"translate"),d(30,"br"),a(31,"small",76),l(32),r(33,"translate"),o()(),a(34,"button",24),r(35,"translate"),x("click",function(){S(e);let p=b(2);return I(p.removeBridgeAccessories())}),d(36,"i",25),o()(),a(37,"li",22)(38,"span",23),l(39),r(40,"translate"),d(41,"br"),a(42,"small",76),l(43),r(44,"translate"),o()(),a(45,"button",24),r(46,"translate"),x("click",function(){S(e);let p=b(2);return I(p.removeAllCachedAccessories())}),d(47,"i",25),o()()()}if(i&2){let e=b(2);t(3),g(" ",s(4,14,"settings.accessory.debug")),t(4),u(s(8,16,"settings.accessory.debug_desc")),t(4),m("formControl",e.uiAccDebugFormControl),f("aria-label",s(12,18,"settings.accessory.debug")),t(3),_(e.uiAccDebugIsSaving?14:-1),t(3),g(" ",s(18,20,"reset.accessory_ind.title")),t(4),u(s(22,22,"reset.accessory_ind.desc")),t(2),f("aria-label",s(24,24,"reset.accessory_ind.title")),t(5),g(" ",s(29,26,"reset.bridge_accessories.title")),t(4),u(s(33,28,"reset.bridge_accessories.desc")),t(2),f("aria-label",s(35,30,"reset.accessory_all.title")),t(5),g(" ",s(40,32,"reset.accessory_all.title")),t(4),u(s(44,34,"reset.accessory_all.desc")),t(2),f("aria-label",s(46,36,"reset.accessory_all.title"))}}function An(i,c){i&1&&(a(0,"p",14),l(1),r(2,"translate"),o()),i&2&&(t(),u(s(2,1,"reset.bridges.desc")))}function Vn(i,c){if(i&1){let e=E();a(0,"ul",16)(1,"li",22)(2,"span",23),l(3),r(4,"translate"),d(5,"br"),a(6,"small",76),l(7),r(8,"translate"),o()(),a(9,"button",24),r(10,"translate"),x("click",function(){S(e);let p=b(2);return I(p.unpairAccessory())}),d(11,"i",25),o()(),a(12,"li",22)(13,"span",23),l(14),r(15,"translate"),r(16,"titlecase"),d(17,"br"),a(18,"small",76),l(19),r(20,"translate"),o()(),a(21,"button",24),r(22,"translate"),x("click",function(){S(e);let p=b(2);return I(p.resetHomebridgeState())}),d(23,"i",25),o()()()}i&2&&(t(3),g(" ",s(4,6,"reset.bridge_ind.title")),t(4),u(s(8,8,"reset.bridge_ind.desc")),t(2),f("aria-label",s(10,10,"reset.bridge_ind.title")),t(5),g(" ",s(16,14,s(15,12,"reset.bridge_all.title"))),t(5),u(s(20,16,"reset.bridge_all.desc")),t(2),f("aria-label",s(22,18,"reset.bridge_all.title")))}function Mn(i,c){if(i&1){let e=E();a(0,"div",4)(1,"div",5),x("click",function(){S(e);let p=b();return I(p.toggleSection("general"))}),a(2,"h5",6),d(3,"i",7),l(4),r(5,"translate"),o()(),h(6,Fi,30,29,"ul",8),o(),a(7,"div",4)(8,"div",5),x("click",function(){S(e);let p=b();return I(p.toggleSection("display"))}),a(9,"h5",6),d(10,"i",7),l(11),r(12,"translate"),o()(),h(13,Di,157,94,"ul",9),o(),a(14,"div",4)(15,"div",5),x("click",function(){S(e);let p=b();return I(p.toggleSection("startup"))}),a(16,"h5",6),d(17,"i",7),l(18),r(19,"translate"),o()(),h(20,Xi,98,70,"ul",10),o(),a(21,"div",4)(22,"div",5),x("click",function(){S(e);let p=b();return I(p.toggleSection("network"))}),a(23,"h5",6),d(24,"i",7),l(25),r(26,"translate"),o()(),h(27,dn,104,104,"ul",11),o(),a(28,"div",4)(29,"div",5),x("click",function(){S(e);let p=b();return I(p.toggleSection("terminal"))}),a(30,"h5",6),d(31,"i",7),l(32),r(33,"translate"),o()(),h(34,Cn,15,16,"ul",12),o(),a(35,"div",4)(36,"div",5),x("click",function(){S(e);let p=b();return I(p.toggleSection("security"))}),a(37,"h5",6),d(38,"i",7),l(39),r(40,"translate"),o()(),h(41,$n,49,42,"ul",13),o(),a(42,"div",4)(43,"div",5),x("click",function(){S(e);let p=b();return I(p.toggleSection("cache"))}),a(44,"h5",6),d(45,"i",7),l(46),r(47,"translate"),o()(),h(48,Fn,3,3,"p",14),h(49,Rn,48,38,"ul",15),o(),a(50,"div",4)(51,"div",5),x("click",function(){S(e);let p=b();return I(p.toggleSection("reset"))}),a(52,"h5",6),d(53,"i",7),l(54),r(55,"translate"),o()(),h(56,An,3,3,"p",14),h(57,Vn,24,20,"ul",16),o(),d(58,"div",17)}if(i&2){let e=b();t(),f("aria-expanded",e.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),t(2),m("ngClass",F(58,Z,e.showFields.general,!e.showFields.general)),t(),g(" ",s(5,42,"settings.general.title_general")," "),t(2),_(e.showFields.general?6:-1),t(2),f("aria-expanded",e.showFields.display?"true":"false")("aria-controls","fieldsDisplay"),t(2),m("ngClass",F(61,Z,e.showFields.display,!e.showFields.display)),t(),g(" ",s(12,44,"settings.general.title_display")," "),t(2),_(e.showFields.display?13:-1),t(2),f("aria-expanded",e.showFields.startup?"true":"false")("aria-controls","fieldsStartup"),t(2),m("ngClass",F(64,Z,e.showFields.startup,!e.showFields.startup)),t(),g(" ",s(19,46,"settings.title_startup_options")," "),t(2),_(e.showFields.startup?20:-1),t(2),f("aria-expanded",e.showFields.network?"true":"false")("aria-controls","fieldsNetwork"),t(2),m("ngClass",F(67,Z,e.showFields.network,!e.showFields.network)),t(),g(" ",s(26,48,"settings.network.title_network")," "),t(2),_(e.showFields.network?27:-1),t(2),f("aria-expanded",e.showFields.terminal?"true":"false")("aria-controls","fieldsTerminal"),t(2),m("ngClass",F(70,Z,e.showFields.terminal,!e.showFields.terminal)),t(),g(" ",s(33,50,"settings.network.title_terminal")," "),t(2),_(e.showFields.terminal?34:-1),t(2),f("aria-expanded",e.showFields.security?"true":"false")("aria-controls","fieldsSecurity"),t(2),m("ngClass",F(73,Z,e.showFields.security,!e.showFields.security)),t(),g(" ",s(40,52,"settings.network.title_security")," "),t(2),_(e.showFields.security?41:-1),t(2),f("aria-expanded",e.showFields.cache?"true":"false")("aria-controls","fieldsCache"),t(2),m("ngClass",F(76,Z,e.showFields.cache,!e.showFields.cache)),t(),g(" ",s(47,54,"menu.label_accessories")," "),t(2),_(e.showFields.cache?48:-1),t(),_(e.showFields.cache?49:-1),t(2),f("aria-expanded",e.showFields.reset?"true":"false")("aria-controls","fieldsReset"),t(2),m("ngClass",F(79,Z,e.showFields.reset,!e.showFields.reset)),t(),g(" ",s(55,56,"reset.bridges.title")," "),t(2),_(e.showFields.reset?56:-1),t(),_(e.showFields.reset?57:-1)}}var ir=(()=>{class i{$api=C(D);$modal=C(re);$notification=C(Ue);$router=C(U);$settings=C(Y);$terminal=C(Ke);$toastr=C(M);$translate=C(V);restartToastIsShown=!1;showFields={general:!0,display:!0,startup:!0,network:!0,security:!0,terminal:!0,reset:!0,cache:!0};loading=!0;isHbV2=!1;showAvahiMdnsOption=!1;showResolvedMdnsOption=!1;adaptersAvailable=[];adaptersSelected=[];showPfxPassphrase=!1;runningInDocker=this.$settings.env.runningInDocker;runningOnRaspberryPi=this.$settings.env.runningOnRaspberryPi;platform=this.$settings.env.platform;enableTerminalAccess=this.$settings.env.enableTerminalAccess;hbNameIsInvalid=!1;hbNameIsSaving=!1;hbNameFormControl=new w("");uiLangIsSaving=!1;uiLangFormControl=new w("");uiThemeIsSaving=!1;uiThemeFormControl=new w("");uiLightIsSaving=!1;uiLightFormControl=new w("");uiMenuIsSaving=!1;uiMenuFormControl=new w("");uiTempIsSaving=!1;uiTempFormControl=new w("");uiTerminalPersistenceIsSaving=!1;uiTerminalPersistenceFormControl=new w(!1);uiTerminalHideWarningIsSaving=!1;uiTerminalHideWarningFormControl=new w(!1);uiTerminalBufferSizeIsSaving=!1;uiTerminalBufferSizeIsInvalid=!1;uiTerminalBufferSizeFormControl=new w(globalThis.terminal.bufferSize);hbDebugIsSaving=!1;hbDebugFormControl=new w(!1);hbInsecureIsSaving=!1;hbInsecureFormControl=new w(!1);hbKeepIsSaving=!1;hbKeepFormControl=new w(!1);hbEnvDebugIsSaving=!1;hbEnvDebugFormControl=new w("");hbEnvNodeIsSaving=!1;hbEnvNodeFormControl=new w("");hbLogSizeIsInvalid=!1;hbLogSizeIsSaving=!1;hbLogSizeFormControl=new w(-1);hbLogTruncateIsInvalid=!1;hbLogTruncateIsSaving=!1;hbLogTruncateFormControl=new w(0);hbMDnsIsSaving=!1;hbMDnsFormControl=new w("");hbPortIsInvalid=!1;hbPortIsSaving=!1;hbPortFormControl=new w(0);hbStartPortIsInvalid=!1;hbStartPortIsSaving=!1;hbStartPortFormControl=new w(0);hbEndPortIsInvalid=!1;hbEndPortIsSaving=!1;hbEndPortFormControl=new w(0);uiPortIsInvalid=!1;uiPortIsSaving=!1;uiPortFormControl=new w(0);uiAuthIsSaving=!1;uiAuthFormControl=new $e(!0);uiSessionTimeoutIsInvalid=!1;uiSessionTimeoutIsSaving=!1;uiSessionTimeoutFormControl=new w(0);uiSslTypeFormControl=new w("off");uiSslKeyIsSaving=!1;uiSslKeyFormControl=new w("");uiSslCertIsSaving=!1;uiSslCertFormControl=new w("");uiSslPfxIsSaving=!1;uiSslPfxFormControl=new w("");uiSslPassphraseIsSaving=!1;uiSslPassphraseFormControl=new w("");uiHostIsSaving=!1;uiHostFormControl=new w("");uiProxyHostIsSaving=!1;uiProxyHostFormControl=new w("");hbPackageIsSaving=!1;hbPackageFormControl=new w("");uiMetricsIsSaving=!1;uiMetricsFormControl=new w(!0);uiAccDebugIsSaving=!1;uiAccDebugFormControl=new w(!1);uiTempFileIsSaving=!1;uiTempFileFormControl=new w("");hbLinuxShutdownIsSaving=!1;hbLinuxShutdownFormControl=new w("");hbLinuxRestartIsSaving=!1;hbLinuxRestartFormControl=new w("");linkDebug='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Debug-Common-Values" target="_blank" rel="noopener noreferrer"><i class="fa fa-fw fa-external-link-alt primary-text"></i></a>';ngOnInit(){return v(this,null,function*(){this.isHbV2=this.$settings.env.homebridgeVersion.startsWith("2"),yield this.initNetworkingOptions(),yield this.initStartupSettings(),this.hbNameFormControl.patchValue(this.$settings.env.homebridgeInstanceName),this.hbNameFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbNameSave(e)),this.uiLangFormControl.patchValue(this.$settings.env.lang),this.uiLangFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiLangSave(e)),this.uiThemeFormControl.patchValue(this.$settings.theme),this.uiThemeFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiThemeSave(e)),this.uiLightFormControl.patchValue(this.$settings.lightingMode),this.uiLightFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiLightSave(e)),this.uiMenuFormControl.patchValue(this.$settings.menuMode),this.uiMenuFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiMenuSave(e)),this.uiTempFormControl.patchValue(this.$settings.env.temperatureUnits),this.uiTempFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiTempSave(e)),this.uiTerminalPersistenceFormControl.patchValue(this.$settings.env.terminal?.persistence),this.uiTerminalPersistenceFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiTerminalPersistenceSave(e)),this.uiTerminalHideWarningFormControl.patchValue(this.$settings.env.terminal?.hideWarning),this.uiTerminalHideWarningFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiTerminalHideWarningSave(e)),this.uiTerminalBufferSizeFormControl.patchValue(this.$settings.env.terminal?.bufferSize),this.uiTerminalBufferSizeFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiTerminalBufferSizeSave(e)),this.hbLogSizeFormControl.patchValue(this.$settings.env.log?.maxSize),this.hbLogSizeFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbLogSizeSave(e)),this.hbLogTruncateFormControl.patchValue(this.$settings.env.log?.truncateSize),this.hbLogTruncateFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbLogTruncateSave(e)),this.uiPortFormControl.patchValue(this.$settings.env.port),this.uiPortFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiPortSave(e)),this.uiAuthFormControl.patchValue(this.$settings.formAuth),this.uiAuthFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiAuthSave(e)),this.uiSessionTimeoutFormControl.patchValue(this.$settings.sessionTimeout),this.uiSessionTimeoutFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiSessionTimeoutSave(e)),this.uiSslKeyFormControl.patchValue(this.$settings.env.ssl?.key||""),this.uiSslKeyFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiSslKeySave(e)),this.uiSslCertFormControl.patchValue(this.$settings.env.ssl?.cert||""),this.uiSslCertFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiSslCertSave(e)),this.uiSslPfxFormControl.patchValue(this.$settings.env.ssl?.pfx||""),this.uiSslPfxFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiSslPfxSave(e)),this.uiSslPassphraseFormControl.patchValue(this.$settings.env.ssl?.passphrase||""),this.uiSslPassphraseFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiSslPassphraseSave(e)),this.uiSslTypeFormControl.patchValue(this.uiSslKeyFormControl.value||this.uiSslCertFormControl.value?"keycert":this.uiSslPfxFormControl.value||this.uiSslPassphraseFormControl.value?"pfx":"off"),this.uiSslTypeFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiSslTypeSave(e)),this.uiHostFormControl.patchValue(this.$settings.env.host||""),this.uiHostFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiHostSave(e)),this.uiProxyHostFormControl.patchValue(this.$settings.env.proxyHost||""),this.uiProxyHostFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiProxyHostSave(e)),this.hbPackageFormControl.patchValue(this.$settings.env.homebridgePackagePath||""),this.hbPackageFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbPackageSave(e)),this.uiMetricsFormControl.patchValue(!this.$settings.env.disableServerMetricsMonitoring),this.uiMetricsFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiMetricsSave(e)),this.uiAccDebugFormControl.patchValue(this.$settings.env.accessoryControl?.debug),this.uiAccDebugFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiAccDebugSave(e)),this.uiTempFileFormControl.patchValue(this.$settings.env.temp),this.uiTempFileFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiTempFileSave(e)),this.hbLinuxShutdownFormControl.patchValue(this.$settings.env.linux?.shutdown),this.hbLinuxShutdownFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbLinuxShutdownSave(e)),this.hbLinuxRestartFormControl.patchValue(this.$settings.env.linux?.restart),this.hbLinuxRestartFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbLinuxRestartSave(e)),this.loading=!1})}openBackupModal(){this.$modal.open(me,{size:"lg",backdrop:"static"})}openConfigBackup(){this.$router.navigate(["/config"],{queryParams:{action:"restore"}})}openWallpaperModal(){this.$modal.open(lt,{size:"lg",backdrop:"static"})}resetHomebridgeState(){this.$modal.open(at,{size:"lg",backdrop:"static"})}unpairAccessory(){this.$modal.open(rt,{size:"lg",backdrop:"static"})}removeAllCachedAccessories(){this.$modal.open(it,{size:"lg",backdrop:"static"})}accessoryUiControl(){return v(this,null,function*(){try{let e=this.$modal.open(Qe,{size:"lg",backdrop:"static"});e.componentInstance.existingBlacklist=this.$settings.env.accessoryControl?.instanceBlacklist||[],yield e.result,this.showRestartToast()}catch(e){e!=="Dismiss"&&(console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error")))}})}removeSingleCachedAccessories(){this.$modal.open(Ge,{size:"lg",backdrop:"static"})}removeBridgeAccessories(){this.$modal.open(nt,{size:"lg",backdrop:"static"})}selectNetworkInterfaces(){return v(this,null,function*(){let e=this.$modal.open(st,{size:"lg",backdrop:"static"});e.componentInstance.adaptersAvailable=this.adaptersAvailable,e.componentInstance.adaptersSelected=this.adaptersSelected;try{let n=yield e.result;this.buildBridgeNetworkAdapterList(n),yield $(this.$api.put("/server/network-interfaces/bridge",{adapters:n})),this.showRestartToast()}catch(n){n!=="Dismiss"&&(console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")))}})}toggleSection(e){this.showFields[e]=!this.showFields[e]}initStartupSettings(){return v(this,null,function*(){try{let e=yield $(this.$api.get("/platform-tools/hb-service/homebridge-startup-settings"));this.hbDebugFormControl.patchValue(e.HOMEBRIDGE_DEBUG),this.hbDebugFormControl.valueChanges.pipe(k(750)).subscribe(n=>this.hbDebugSave(n)),this.hbInsecureFormControl.patchValue(e.HOMEBRIDGE_INSECURE),this.hbInsecureFormControl.valueChanges.pipe(k(750)).subscribe(n=>this.hbInsecureSave(n)),this.hbKeepFormControl.patchValue(e.HOMEBRIDGE_KEEP_ORPHANS),this.hbKeepFormControl.valueChanges.pipe(k(750)).subscribe(n=>this.hbKeepSave(n)),this.hbEnvDebugFormControl.patchValue(e.ENV_DEBUG),this.hbEnvDebugFormControl.valueChanges.pipe(k(1500)).subscribe(n=>this.hbEnvDebugSave(n)),this.hbEnvNodeFormControl.patchValue(e.ENV_NODE_OPTIONS),this.hbEnvNodeFormControl.valueChanges.pipe(k(1500)).subscribe(n=>this.hbEnvNodeSave(n))}catch(e){console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}initNetworkingOptions(){return v(this,null,function*(){try{yield 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(e){console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}getNetworkSettings(){return v(this,null,function*(){return Promise.all([$(this.$api.get("/server/network-interfaces/system")),$(this.$api.get("/server/network-interfaces/bridge")),$(this.$api.get("/server/mdns-advertiser")),$(this.$api.get("/server/port")),$(this.$api.get("/server/ports"))]).then(([e,n,p,y,X])=>{this.adaptersAvailable=e,this.buildBridgeNetworkAdapterList(n),this.hbMDnsFormControl.patchValue(p.advertiser),this.hbMDnsFormControl.valueChanges.pipe(k(750)).subscribe(q=>this.hbMDnsSave(q)),this.hbPortFormControl.patchValue(y.port),this.hbPortFormControl.valueChanges.pipe(k(1500)).subscribe(q=>this.hbPortSave(q)),this.hbStartPortFormControl.patchValue(X.start),this.hbStartPortFormControl.valueChanges.pipe(k(1500)).subscribe(q=>this.hbStartPortSave(q)),this.hbEndPortFormControl.patchValue(X.end),this.hbEndPortFormControl.valueChanges.pipe(k(1500)).subscribe(q=>this.hbEndPortSave(q))})})}saveUiSettingChange(e,n){return v(this,null,function*(){try{yield $(this.$api.put("/config-editor/ui",{key:e,value:n}))}catch(p){console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}hbNameSave(e){return v(this,null,function*(){if(!e||!/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(e)){this.hbNameIsInvalid=!0;return}try{this.hbNameIsSaving=!0,yield $(this.$api.put("/server/name",{name:e})),this.$settings.setEnvItem("homebridgeInstanceName",e),this.hbNameIsInvalid=!1,setTimeout(()=>{this.hbNameIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbNameIsSaving=!1}})}uiLangSave(e){return v(this,null,function*(){try{this.uiLangIsSaving=!0,this.$settings.setLang(e),yield this.saveUiSettingChange("lang",e),setTimeout(()=>{this.uiLangIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiLangIsSaving=!1}})}uiThemeSave(e){return v(this,null,function*(){try{this.uiThemeIsSaving=!0,this.$settings.setTheme(e),yield this.saveUiSettingChange("theme",e),setTimeout(()=>{this.uiThemeIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiThemeIsSaving=!1}})}uiLightSave(e){return v(this,null,function*(){try{this.uiLightIsSaving=!0,this.$settings.setLightingMode(e,"user"),yield this.saveUiSettingChange("lightingMode",e),setTimeout(()=>{this.uiLightIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiLightIsSaving=!1}})}uiMenuSave(e){return v(this,null,function*(){try{this.uiMenuIsSaving=!0,this.$settings.setMenuMode(e),yield this.saveUiSettingChange("menuMode",e),window.location.reload()}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiMenuIsSaving=!1}})}uiTempSave(e){return v(this,null,function*(){try{this.uiTempIsSaving=!0,this.$settings.setEnvItem("temperatureUnits",e),yield this.saveUiSettingChange("tempUnits",e),setTimeout(()=>{this.uiTempIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTempIsSaving=!1}})}uiTerminalPersistenceSave(e){return v(this,null,function*(){if(!e&&this.$terminal.hasActiveSession()){let n=this.$modal.open(He,{size:"lg",backdrop:"static"});n.componentInstance.title=this.$translate.instant("settings.terminal.persistence_confirm_title"),n.componentInstance.message=this.$translate.instant("settings.terminal.persistence_confirm_message"),n.componentInstance.message2=this.$translate.instant("common.phrases.are_you_sure"),n.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_continue"),n.componentInstance.confirmButtonClass="btn-primary",n.componentInstance.faIconClass="fas fa-exclamation-triangle text-warning";try{yield n.result}catch{this.uiTerminalPersistenceFormControl.patchValue(!0,{emitEvent:!1});return}}try{this.uiTerminalPersistenceIsSaving=!0,e||this.$terminal.destroyPersistentSession(),this.$settings.setEnvItem("terminal.persistence",e),yield this.saveUiSettingChange("terminal.persistence",e),setTimeout(()=>{this.uiTerminalPersistenceIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalPersistenceIsSaving=!1}})}uiTerminalHideWarningSave(e){return v(this,null,function*(){try{this.uiTerminalHideWarningIsSaving=!0,this.$settings.setEnvItem("terminal.hideWarning",e),yield this.saveUiSettingChange("terminal.hideWarning",e),setTimeout(()=>{this.uiTerminalHideWarningIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalHideWarningIsSaving=!1}})}uiTerminalBufferSizeSave(e){return v(this,null,function*(){if(e&&(typeof e!="number"||e<0||Number.isInteger(e)===!1)){this.uiTerminalBufferSizeIsInvalid=!0;return}try{this.uiTerminalBufferSizeIsSaving=!0,this.$settings.setEnvItem("terminal.bufferSize",e),yield this.saveUiSettingChange("terminal.bufferSize",e),this.uiTerminalBufferSizeIsInvalid=!1,setTimeout(()=>{this.uiTerminalBufferSizeIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalBufferSizeIsSaving=!1}})}hbDebugSave(e){return v(this,null,function*(){try{this.hbDebugIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:e,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),setTimeout(()=>{this.hbDebugIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbDebugIsSaving=!1}})}hbInsecureSave(e){return v(this,null,function*(){try{this.hbInsecureIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:e,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),setTimeout(()=>{this.hbInsecureIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbInsecureIsSaving=!1}})}hbKeepSave(e){return v(this,null,function*(){try{this.hbKeepIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:e,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),this.$settings.setKeepOrphans(e),setTimeout(()=>{this.hbKeepIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbKeepIsSaving=!1}})}hbEnvDebugSave(e){return v(this,null,function*(){try{this.hbEnvDebugIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:e,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),setTimeout(()=>{this.hbEnvDebugIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbEnvDebugIsSaving=!1}})}hbEnvNodeSave(e){return v(this,null,function*(){try{this.hbEnvNodeIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:e})),setTimeout(()=>{this.hbEnvNodeIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbEnvNodeIsSaving=!1}})}hbLogSizeSave(e){return v(this,null,function*(){if(e&&(typeof e!="number"||e<-1||Number.isInteger(e)===!1)){this.hbLogSizeIsInvalid=!0;return}try{this.hbLogSizeIsSaving=!0,this.$settings.setEnvItem("log.maxSize",e),(!e||e===-1)&&(yield this.saveUiSettingChange("log.truncateSize",null),this.hbLogTruncateIsInvalid=!1),yield this.saveUiSettingChange("log.maxSize",e),this.hbLogSizeIsInvalid=!1,setTimeout(()=>{this.hbLogSizeIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLogSizeIsSaving=!1}})}hbLogTruncateSave(e){return v(this,null,function*(){if(e&&(typeof e!="number"||e<0||Number.isInteger(e)===!1)){this.hbLogTruncateIsInvalid=!0;return}try{this.hbLogTruncateIsSaving=!0,this.$settings.setEnvItem("log.truncateSize",e),yield this.saveUiSettingChange("log.truncateSize",e),this.hbLogTruncateIsInvalid=!1,setTimeout(()=>{this.hbLogTruncateIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLogTruncateIsSaving=!1}})}hbMDnsSave(e){return v(this,null,function*(){try{this.hbMDnsIsSaving=!0,yield $(this.$api.put("/server/mdns-advertiser",{advertiser:e})),setTimeout(()=>{this.hbMDnsIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbMDnsIsSaving=!1}})}hbPortSave(e){return v(this,null,function*(){if(e===this.uiPortFormControl.value){this.hbPortIsInvalid=!0;return}try{this.hbPortIsSaving=!0,yield $(this.$api.put("/server/port",{port:e})),this.hbPortIsInvalid=!1,setTimeout(()=>{this.hbPortIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbPortIsSaving=!1}})}hbStartPortSave(e){return v(this,null,function*(){try{this.hbStartPortIsSaving=!0,yield $(this.$api.put("/server/ports",{start:e,end:this.hbEndPortFormControl.value})),this.hbStartPortIsInvalid=!1,setTimeout(()=>{this.hbStartPortIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbStartPortIsSaving=!1}})}hbEndPortSave(e){return v(this,null,function*(){try{this.hbEndPortIsSaving=!0,yield $(this.$api.put("/server/ports",{start:this.hbStartPortFormControl.value,end:e})),this.hbEndPortIsInvalid=!1,setTimeout(()=>{this.hbEndPortIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbEndPortIsSaving=!1}})}uiPortSave(e){return v(this,null,function*(){if(!e||typeof e!="number"||e<1025||e>65533||Number.isInteger(e)===!1||e===this.hbPortFormControl.value){this.uiPortIsInvalid=!0;return}try{this.uiPortIsSaving=!0,this.$settings.setEnvItem("port",e),yield this.saveUiSettingChange("port",e),this.uiPortIsInvalid=!1,setTimeout(()=>{this.uiPortIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiPortIsSaving=!1}})}uiAuthSave(e){return v(this,null,function*(){try{this.uiAuthIsSaving=!0,this.$settings.setItem("formAuth",e),yield this.saveUiSettingChange("auth",e?"form":"none"),this.$notification.formAuthEnabled.next(e),setTimeout(()=>{this.uiAuthIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiAuthIsSaving=!1}})}uiSessionTimeoutSave(e){return v(this,null,function*(){if(e&&(typeof e!="number"||e<600||e>864e5||Number.isInteger(e)===!1)){this.uiSessionTimeoutIsInvalid=!0;return}try{this.uiSessionTimeoutIsSaving=!0,this.$settings.setItem("sessionTimeout",e),yield this.saveUiSettingChange("sessionTimeout",e),this.uiSessionTimeoutIsInvalid=!1,setTimeout(()=>{this.uiSessionTimeoutIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSessionTimeoutIsSaving=!1}})}uiSslKeySave(e){return v(this,null,function*(){try{this.uiSslKeyIsSaving=!0,this.$settings.setEnvItem("ssl.key",e),yield this.saveUiSettingChange("ssl.key",e),setTimeout(()=>{this.uiSslKeyIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslKeyIsSaving=!1}})}uiSslCertSave(e){return v(this,null,function*(){try{this.uiSslCertIsSaving=!0,this.$settings.setEnvItem("ssl.cert",e),yield this.saveUiSettingChange("ssl.cert",e),setTimeout(()=>{this.uiSslCertIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslCertIsSaving=!1}})}uiSslPfxSave(e){return v(this,null,function*(){try{this.uiSslPfxIsSaving=!0,this.$settings.setEnvItem("ssl.pfx",e),yield this.saveUiSettingChange("ssl.pfx",e),setTimeout(()=>{this.uiSslPfxIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslPfxIsSaving=!1}})}uiSslPassphraseSave(e){return v(this,null,function*(){try{this.uiSslPassphraseIsSaving=!0,this.$settings.setEnvItem("ssl.passphrase",e),yield this.saveUiSettingChange("ssl.passphrase",e),setTimeout(()=>{this.uiSslPassphraseIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslPassphraseIsSaving=!1}})}uiSslTypeSave(e){return v(this,null,function*(){switch(e){case"keycert":this.uiSslPfxFormControl.patchValue("",{emitEvent:!1}),this.uiSslPassphraseFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.pfx",""),this.$settings.setEnvItem("ssl.passphrase","");break;case"pfx":this.uiSslKeyFormControl.patchValue("",{emitEvent:!1}),this.uiSslCertFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.key",""),this.$settings.setEnvItem("ssl.cert","");break;default:this.uiSslKeyFormControl.patchValue("",{emitEvent:!1}),this.uiSslCertFormControl.patchValue("",{emitEvent:!1}),this.uiSslPfxFormControl.patchValue("",{emitEvent:!1}),this.uiSslPassphraseFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.key",""),this.$settings.setEnvItem("ssl.cert",""),this.$settings.setEnvItem("ssl.pfx",""),this.$settings.setEnvItem("ssl.passphrase",""),yield this.saveUiSettingChange("ssl",""),this.showRestartToast()}})}uiHostSave(e){return v(this,null,function*(){try{this.uiHostIsSaving=!0,this.$settings.setEnvItem("host",e),yield this.saveUiSettingChange("host",e),setTimeout(()=>{this.uiHostIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiHostIsSaving=!1}})}uiProxyHostSave(e){return v(this,null,function*(){try{this.uiProxyHostIsSaving=!0,this.$settings.setEnvItem("proxyHost",e),yield this.saveUiSettingChange("proxyHost",e),setTimeout(()=>{this.uiProxyHostIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiProxyHostIsSaving=!1}})}hbPackageSave(e){return v(this,null,function*(){try{this.hbPackageIsSaving=!0,this.$settings.setEnvItem("homebridgePackagePath",e),yield this.saveUiSettingChange("homebridgePackagePath",e),setTimeout(()=>{this.hbPackageIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbPackageIsSaving=!1}})}uiMetricsSave(e){return v(this,null,function*(){try{this.uiMetricsIsSaving=!0,this.$settings.setEnvItem("disableServerMetricsMonitoring",!e),yield this.saveUiSettingChange("disableServerMetricsMonitoring",!e),setTimeout(()=>{this.uiMetricsIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiMetricsIsSaving=!1}})}uiAccDebugSave(e){return v(this,null,function*(){try{this.uiAccDebugIsSaving=!0,this.$settings.setEnvItem("accessoryControl.debug",e),yield this.saveUiSettingChange("accessoryControl.debug",e),setTimeout(()=>{this.uiAccDebugIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiAccDebugIsSaving=!1}})}uiTempFileSave(e){return v(this,null,function*(){try{this.uiTempFileIsSaving=!0,this.$settings.setEnvItem("temp",e),yield this.saveUiSettingChange("temp",e),setTimeout(()=>{this.uiTempFileIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTempFileIsSaving=!1}})}hbLinuxShutdownSave(e){return v(this,null,function*(){try{this.hbLinuxShutdownIsSaving=!0,this.$settings.setEnvItem("linux.shutdown",e),yield this.saveUiSettingChange("linux.shutdown",e),setTimeout(()=>{this.hbLinuxShutdownIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLinuxShutdownIsSaving=!1}})}hbLinuxRestartSave(e){return v(this,null,function*(){try{this.hbLinuxRestartIsSaving=!0,this.$settings.setEnvItem("linux.restart",e),yield this.saveUiSettingChange("linux.restart",e),setTimeout(()=>{this.hbLinuxRestartIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLinuxRestartIsSaving=!1}})}buildBridgeNetworkAdapterList(e){if(!e.length){this.adaptersSelected=[];return}this.adaptersSelected=e.map(n=>{let p=this.adaptersAvailable.find(y=>y.iface===n);return p?{iface:p.iface,selected:!0,missing:!1,ip4:p.ip4,ip6:p.ip6}:{iface:n,selected:!0,missing:!0}})}showRestartToast(){if(!this.restartToastIsShown){this.restartToastIsShown=!0;let e=this.$toastr.info(this.$translate.instant("settings.changes.saved"),this.$translate.instant("menu.hbrestart.title"),{timeOut:0,tapToDismiss:!0,disableTimeOut:!0,positionClass:"toast-bottom-right",enableHtml:!0});e&&e.onTap&&e.onTap.subscribe(()=>{this.$router.navigate(["/restart"])})}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:8,vars:4,consts:[[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[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"],["id","fieldsStartup",1,"list-group","list-group-box","mb-4","mx-0"],["id","fieldsNetwork",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsTerminal",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsSecurity",1,"list-group","list-group-box","mt-2","mx-0"],[1,"small","grey-text","mb-2","mx-0"],["id","fieldsCache",1,"list-group","list-group-box","mb-4","mx-0"],["id","fieldsReset",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],[1,"list-group-item","d-block","d-md-flex","justify-content-between","align-items-center"],[1,"my-3","my-md-0","ps-0","ps-md-5","w-auto","d-flex","align-items-center"],["type","text",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],[1,"fas","fa-fw","fa-floppy-disk","primary-text","fa-xl","me-0","me-md-2","ms-2","ms-md-0","order-2","order-md-1"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px",3,"click"],[1,"fas","fa-fw","fa-arrow-right"],["routerLink","/users",1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px"],[1,"custom-select","resp-select","order-1","order-md-2",3,"formControl"],["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"],["value","default"],["value","freeze"],["value","c"],["value","f"],[1,"grey-text","pe-2"],[1,"d-flex","align-items-center"],[1,"order-1","order-md-2"],["type","checkbox","id","homebridgeDebugMode",1,"rendux-input",3,"formControl"],["for","homebridgeDebugMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeInsecureMode",1,"rendux-input",3,"formControl"],["for","homebridgeInsecureMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeKeepOrphans",1,"rendux-input",3,"formControl"],["for","homebridgeKeepOrphans",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeMetrics",1,"rendux-input",3,"formControl"],["for","homebridgeMetrics",1,"rendux-label","ms-3",2,"min-width","50px"],["type","text","placeholder","/usr/local/lib/node_modules/homebridge",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],[1,"font-monospace"],[1,"grey-text","pe-2",3,"innerHTML"],["type","text","placeholder","HAP-NodeJS:Advertiser,HAP-NodeJS:Service",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","--max-old-space-size=512 --max-http-header-size=8192",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","shutdown",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","reboot",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","/sys/class/thermal/thermal_zone0/temp",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["routerLink","/platform-tools/docker/startup-script",1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px"],[1,"small","grey-text","pe-2"],[1,"badge","badge-primary","me-1",3,"ngClass"],[1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px",3,"click","disabled"],["value","avahi"],["value","ciao"],["value","bonjour-hap"],["value","resolved"],["type","number","min","1025","max","65533",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],["type","number","min","1025","max","65533","placeholder","8581",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],[1,"grey-text","pe-2",3,"innerHtml"],["type","text","pattern","^[^{}/ :\\\\]+(?::\\d+)?$","placeholder","0.0.0.0",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","pattern","^[^{}/ :\\\\]+(?::\\d+)?$","placeholder","example.com:8443",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],[1,"fas","fa-fw","fa-exclamation-triangle"],[1,"fw-normal"],["type","number","min","-1","placeholder","1000000",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],["type","number","min","0","placeholder","200000",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],[1,"badge","badge-primary","ms-1"],["type","checkbox","id","terminalPersistence",1,"rendux-input",3,"formControl"],["for","terminalPersistence",1,"rendux-label","ms-3"],["type","checkbox","id","terminalHideWarning",1,"rendux-input",3,"formControl"],["for","terminalHideWarning",1,"rendux-label","ms-3"],[1,"d-flex","flex-column"],[1,"small","grey-text"],["type","number","min","10000","max","100000","step","10000",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],["type","checkbox","id","uiAuthForm",1,"rendux-input",3,"formControl"],["for","uiAuthForm",1,"rendux-label","ms-3",2,"min-width","50px"],["value","off"],["value","keycert"],["value","pfx"],["type","number","min","600","max","86400000","placeholder","28800",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],["type","text","placeholder","/Users/.../certs/server.key",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","/Users/.../certs/server.crt",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","/Users/.../certs/server.pfx",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["placeholder","mypassphrase",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"focus","blur","type","formControl"],["type","checkbox","id","accessoryDebug",1,"rendux-input",3,"formControl"],["for","accessoryDebug",1,"rendux-label","ms-3",2,"min-width","50px"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h3",2),l(3),r(4,"translate"),o()(),d(5,"div",3),o(),h(6,Ti,1,0,"app-spinner")(7,Mn,59,82)),n&2&&(t(3),u(s(4,2,"menu.settings.title")),t(3),_(p.loading?6:7))},dependencies:[j,Le,ae,Ae,Ve,le,Pe,ie,Re,ne,Ne,De,Me,oe,pe,We,te,R],encapsulation:2,data:{animation:[Te("fadeInOut",[ge(":enter",[se({opacity:0}),_e("750ms",se({opacity:1}))]),ge(":leave",[_e("750ms",se({opacity:0}))])])]}})}return i})();export{ir as SettingsComponent};
|
package/public/chunk-QVCO7S7N.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{a as we}from"./chunk-QX6BFGHZ.js";import{b as A,e as ye,f as Ce,g as Re}from"./chunk-NDBMU5RD.js";import{a as fe,b as he}from"./chunk-2C3X2ESN.js";import{a as _e}from"./chunk-D7VCPH6W.js";import{a as De}from"./chunk-H5WTK5UT.js";import{m as pe,n as ge,t as D}from"./chunk-IWFKJHPR.js";import{A as me,c as se,e as le,l as de,z as ce}from"./chunk-7EQFLCW4.js";import{b as ue,d as j}from"./chunk-DFFTJVRY.js";import{b as be}from"./chunk-HT7KLIKB.js";import{k as I,n as H}from"./chunk-5PN3M3TS.js";import{a as R,b as P}from"./chunk-KZKL7DGI.js";import"./chunk-OA7Y3E5A.js";import{Ec as z,Hb as C,Ib as w,Jb as v,Jc as s,Kc as d,Lb as Z,Lc as K,Mb as ee,Nb as te,Ob as f,Pb as a,Qb as l,Rb as p,_b as x,ab as r,bc as b,d as G,dc as m,fb as X,g as Q,h as E,kd as re,la as g,mb as B,qc as _,ra as h,rc as k,rd as ae,sa as u,sc as M,w as $,xc as ie,yc as oe,zc as ne}from"./chunk-IOKYXV5M.js";var ke=Q(Re(),1);var ve=Q(De(),1);var Ee=(n,y)=>({"fa-trash":n,"fa-cog fa-spin":y});function Ie(n,y){n&1&&(a(0,"div",13),p(1,"i",20),l())}function je(n,y){if(n&1){let e=x();a(0,"li",9)(1,"span"),_(2),s(3,"date"),p(4,"br"),a(5,"span",21),_(6),s(7,"date"),l()(),a(8,"span",22)(9,"button",25),s(10,"translate"),s(11,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.restore(i.id))}),p(12,"i",26),l(),a(13,"button",27),s(14,"translate"),s(15,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.download(i.id))}),p(16,"i",28),l(),a(17,"button",23),s(18,"translate"),s(19,"translate"),b("click",function(){let i=h(e).$implicit,o=m(2);return u(o.delete(i.id))}),p(20,"i",24),l()()()}if(n&2){let e=y.$implicit,t=m(2);r(2),M(" ",K(3,15,e.timestamp,"mediumDate")),r(4),k(K(7,18,e.timestamp,"shortTime")),r(3),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(10,21,"config.restore.copy_to_editor"))("openDelay",150),C("aria-label",d(11,23,"config.restore.copy_to_editor")),r(4),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(14,25,"form.button_download"))("openDelay",150),C("aria-label",d(15,27,"form.button_download")),r(4),f("disabled",t.clicked||t.deleting)("ngbTooltip",d(18,29,"form.button_delete"))("openDelay",150),C("aria-label",d(19,31,"form.button_delete")),r(3),f("ngClass",z(33,Ee,e.id!==t.deleting,e.id===t.deleting))}}function He(n,y){if(n&1){let e=x();a(0,"ul",14),ee(1,je,21,36,"li",9,Z),a(3,"li",9)(4,"span"),_(5),s(6,"translate"),p(7,"br"),a(8,"span",21),_(9),s(10,"translate"),l()(),a(11,"span",22)(12,"button",23),s(13,"translate"),s(14,"translate"),b("click",function(){h(e);let i=m();return u(i.deleteAllBackups())}),p(15,"i",24),l()()()()}if(n&2){let e=m();r(),te(e.backupList),r(4),M(" ",d(6,7,"form.button_delete_all")),r(4),M(" ",d(10,9,"common.labels.no_confirmation")," "),r(3),f("disabled",e.clicked||e.deleting)("ngbTooltip",d(13,11,"form.button_delete_all"))("openDelay",150),C("aria-label",d(14,13,"form.button_delete")),r(3),f("ngClass",z(15,Ee,e.deleting!=="all",e.deleting==="all"))}}var xe=(()=>{class n{$activeModal=g(pe);$api=g(H);$router=g(j);$toastr=g(I);$translate=g(R);currentConfig;fromSettings=!1;loading=!0;backupList=[];clicked=!1;deleting=null;ngOnInit(){this.getConfigBackups()}getConfigBackups(){return E(this,null,function*(){try{let e=yield $(this.$api.get("/config-editor/backups"));this.loading=!1,this.backupList=e}catch(e){this.loading=!1,console.error(e),this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),this.dismissModal()}})}restore(e){return this.$activeModal.close(e)}download(e){return E(this,null,function*(){this.clicked=!0;try{let t=yield $(this.$api.get(`/config-editor/backups/${e}`)),i=JSON.stringify(t,null,4),o=new Blob([i],{type:"application/json"}),T=`config-backup-${e}.json`;(0,ve.saveAs)(o,T),this.clicked=!1}catch(t){this.clicked=!1,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}downloadCurrentConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.currentConfig)}`,t=document.createElement("a");t.setAttribute("href",e),t.setAttribute("download","config.json"),document.body.appendChild(t),t.click(),t.remove()}delete(e){return E(this,null,function*(){this.deleting=e;try{yield $(this.$api.delete(`/config-editor/backups/${e}`)),yield this.getConfigBackups(),this.deleting=null}catch(t){this.deleting=null,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}deleteAllBackups(){return E(this,null,function*(){this.deleting="all";try{yield $(this.$api.delete("/config-editor/backups")),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success")),this.backupList=[],this.deleting=null}catch(e){this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e),this.deleting=null}})}dismissModal(){this.fromSettings&&this.$router.navigate(["/settings"]),this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=B({type:n,selectors:[["ng-component"]],inputs:{currentConfig:"currentConfig",fromSettings:"fromSettings"},decls:40,vars:31,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-history","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3",3,"click","disabled"],[1,"fas","fa-fw","fa-arrow-right"],[1,"text-center","primary-text"],[1,"list-group","list-group-box","mt-3"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[1,"fa","fa-fw","fa-cog","fa-spin","mt-3",2,"font-size","75px"],[1,"grey-text","small"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw",3,"ngClass"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-download"]],template:function(t,i){t&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),_(3),s(4,"translate"),l(),a(5,"button",3),s(6,"translate"),b("click",function(){return i.dismissModal()}),l()(),a(7,"div",4)(8,"div",5),p(9,"i",6),l(),a(10,"ul",7)(11,"li"),_(12),s(13,"translate"),l(),a(14,"li"),_(15),s(16,"translate"),l()(),a(17,"ul",8)(18,"li",9)(19,"div")(20,"span"),_(21),s(22,"translate"),l(),p(23,"br"),a(24,"small",10),_(25),s(26,"translate"),l()(),a(27,"button",11),s(28,"translate"),b("click",function(){return i.downloadCurrentConfig()}),p(29,"i",12),l()()(),w(30,Ie,2,0,"div",13)(31,He,16,18,"ul",14),l(),a(32,"div",15),p(33,"div",16),a(34,"div",17)(35,"button",18),s(36,"translate"),b("click",function(){return i.dismissModal()}),_(37),s(38,"translate"),l()(),p(39,"div",19),l()()),t&2&&(r(3),k(d(4,13,"config.restore.title")),r(2),f("disabled",i.clicked||i.deleting),C("aria-label",d(6,15,"form.button_close")),r(7),k(d(13,17,"config.restore.help_1")),r(3),k(d(16,19,"config.restore.help_2")),r(6),k(d(22,21,"form.button_download")),r(4),k(d(26,23,"config.restore.download")),r(2),f("disabled",i.clicked||i.deleting),C("aria-label",d(28,25,"backup.backup_now")),r(3),v(i.loading?30:i.backupList.length?31:-1),r(5),f("disabled",i.clicked||i.deleting),C("aria-label",d(36,27,"form.button_close")),r(2),M(" ",d(38,29,"form.button_close")," "))},dependencies:[D,re,me,ae,P],encapsulation:2})}return n})();function Oe(n,y){if(n&1){let e=x();a(0,"button",13),s(1,"translate"),s(2,"translate"),b("click",function(){h(e);let i=m();return u(i.onCancelRestore())}),p(3,"i",14),l()}if(n&2){let e=m();f("disabled",e.saveInProgress)("openDelay",150)("ngbTooltip",d(1,4,"form.button_cancel")),C("aria-label",d(2,6,"form.button_cancel"))}}function Ne(n,y){if(n&1){let e=x();a(0,"button",15),s(1,"translate"),s(2,"translate"),b("click",function(){h(e);let i=m();return u(i.onRestore())}),p(3,"i",16),l()}n&2&&(f("openDelay",150)("ngbTooltip",d(1,3,"form.button_restore")),C("aria-label",d(2,5,"form.button_restore")))}function qe(n,y){n&1&&p(0,"i",8)}function Fe(n,y){n&1&&p(0,"i",9)}function Le(n,y){if(n&1){let e=x();a(0,"ngx-monaco-editor",17),b("onInit",function(i){h(e);let o=m();return u(o.onEditorInit(i))})("keydown.control.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())})("keydown.meta.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())}),l()}if(n&2){let e=m();f("options",e.editorOptions)("model",e.monacoEditorModel)}}function Je(n,y){if(n&1){let e=x();a(0,"ngx-monaco-diff-editor",18),b("onInit",function(i){h(e);let o=m();return u(o.onInitDiffEditor(i))})("keydown.control.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())})("keydown.meta.s",function(i){h(e);let o=m();return i.preventDefault(),u(o.onSave())}),l()}if(n&2){let e=m();f("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function ze(n,y){if(n&1){let e=x();a(0,"textarea",19),ne("ngModelChange",function(i){h(e);let o=m();return oe(o.homebridgeConfig,i)||(o.homebridgeConfig=i),u(i)}),_(1," "),l()}if(n&2){let e=m();ie("ngModel",e.homebridgeConfig)}}var xt=(()=>{class n{$api=g(H);$md=g(_e);$modal=g(ge);$monacoEditor=g(we);$route=g(ue);$renderer=g(X);$router=g(j);$settings=g(be);$toastr=g(I);$translate=g(R);editorDecorations=[];lastHeight;visualViewPortEventCallback;latestSavedConfig;childBridgesToRestart=[];hbPendingRestart=!1;homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0};let e=document.querySelector(".content");this.$renderer.setStyle(e,"height","100%"),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(i=>{this.homebridgeConfig=i.config,this.latestSavedConfig=JSON.parse(i.config)}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.subscribe({next:()=>{this.setMonacoEditorModel()}});let{action:t}=this.$router.parseUrl(this.$router.url).queryParams;if(t){switch(t){case"restore":{this.onRestore(!0);break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}}onEditorInit(e){window.editor=e,this.monacoEditor=e,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(e){this.monacoEditor=e.modifiedEditor,e.getModel().original.setValue(this.originalConfig),e.getModel().modified.setValue(this.homebridgeConfig),window.editor=e}onSave(){return E(this,null,function*(){if(!this.saveInProgress){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress=!0;try{if(!this.isMobile){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let t=window.monaco.editor.getModelMarkers({owner:"json"});for(let i of t)if(i.message==="Duplicate object key"){this.saveInProgress=!1,this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig=this.monacoEditor.getModel().getValue()}let e=this.parseConfigFromEditor();this.homebridgeConfig=JSON.stringify(e,null,4),typeof e.bridge!="object"?this.$toastr.error(this.$translate.instant("config.config_bridge_missing"),this.$translate.instant("toast.title_error")):/^(?:[0-9A-F]{2}:){5}[0-9A-F]{2}$/i.test(e.bridge.username)?e.accessories&&!Array.isArray(e.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&!Array.isArray(e.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&Array.isArray(e.platforms)&&!this.validateSection(e.platforms,"platform")||e.accessories&&Array.isArray(e.accessories)&&!this.validateSection(e.accessories,"accessory")||e.plugins&&Array.isArray(e.plugins)&&!this.validatePlugins(e.plugins,"plugins")||e.disabledPlugins&&Array.isArray(e.disabledPlugins)&&!this.validatePlugins(e.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(e),this.originalConfig=""):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}onRestore(e=!1){let t=this.$modal.open(xe,{size:"lg",backdrop:"static"});t.componentInstance.currentConfig=this.homebridgeConfig,t.componentInstance.fromSettings=e,t.result.then(i=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${i}`).subscribe({next:o=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(o,null,4),this.monacoEditor&&window.editor.modifiedEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[]),this.monacoEditor.executeEdits("beautifier",[{identifier:"delete",range:new monaco.Range(1,1,this.monacoEditor.getModel().getLineCount()+10,1),text:"",forceMoveMarkers:!0}]),this.monacoEditor.executeEdits("beautifier",[{identifier:"insert",range:new monaco.Range(1,1,1,1),text:this.homebridgeConfig,forceMoveMarkers:!0}]))},error:o=>{console.error(o),this.$toastr.error(o.error?.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig="",this.onRestore()}ngOnDestroy(){let e=document.querySelector(".content");this.$renderer.removeStyle(e,"height"),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}validateSection(e,t){for(let i of e){if(typeof i!="object"||Array.isArray(i))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(!i[t])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(typeof i[t]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(e,t){for(let i of e)if(typeof i!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:t}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
|
|
2
|
-
`).map(t=>` ${t}`).join(`
|
|
3
|
-
`),setTimeout(()=>{let t=this.monacoEditor.getModel().findMatches(e);if(t.length){let i=t[0].range,o=new monaco.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn);this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[{range:o,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}},200))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(t=>t.uri==="http://homebridge/config.json"))return;let e=monaco.Uri.parse("a://homebridge/config.json");window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({allowComments:!1,validate:!0,schemas:[{uri:"http://homebridge/config.json",fileMatch:[e.toString()],schema:{type:"object",required:["bridge"],properties:{bridge:{type:"object",required:["name","username","port","pin"],properties:{name:{type:"string",description:`The Homebridge instance name.
|
|
4
|
-
This should be unique if you are running multiple instances of Homebridge.`,default:"Homebridge"},username:{type:"string",description:`Homebridge username must be 6 pairs of colon-separated hexadecimal characters (A-F 0-9).
|
|
5
|
-
You should change this pin if you need to re-pair your instance with HomeKit.
|
|
6
|
-
Example: 0E:89:49:64:91:86`,default:"0E:89:49:64:91:86",pattern:"^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$"},port:{type:"number",description:`The port Homebridge listens on.
|
|
7
|
-
If running more than one instance of Homebridge on the same server make sure each instance is given a unique port.`,default:51173,minimum:1025,maximum:65534},pin:{type:"string",description:`The Homebridge instance pin.
|
|
8
|
-
This is used when pairing Homebridge to HomeKit.
|
|
9
|
-
Example: 630-27-655`,default:"630-27-655",pattern:"^([0-9]{3}-[0-9]{2}-[0-9]{3})$"},manufacturer:{type:"string",description:"The bridge manufacturer to be displayed in HomeKit"},firmwareRevision:{type:"string",description:"The bridge firmware version to be displayed in HomeKit"},model:{type:"string",description:"The bridge model to be displayed in HomeKit"},bind:{description:`A string or an array of strings with the name(s) of the network interface(s) Homebridge should bind to.
|
|
10
|
-
|
|
11
|
-
Requires Homebridge v1.3 or later.`,type:["string","array"],items:{type:"string",description:"Network Interface name that Homebridge should bind to."}}},default:{name:"Homebridge",username:"0E:89:49:64:91:86",port:51173,pin:"6302-7655"}},mdns:{type:"object",properties:{interface:{type:"string",description:`The interface or IP address of the interface you want Homebridge to listen on. This is useful if your server has multiple interfaces.
|
|
12
|
-
|
|
13
|
-
Deprecated as of Homebridge v1.3.0 - use bridge.bind instead.`},legacyAdvertiser:{type:"boolean",description:"Set to `false` to use the new mdns library, ciao."}},default:{legacyAdvertiser:!1}},plugins:{type:"array",description:"An array of plugins that should be selectively enabled. Remove this array to enable all plugins.",items:{type:"string",description:`The full plugin npm package name.
|
|
14
|
-
Example: homebridge-dummy`},default:["homebridge-config-ui-x"]},disabledPlugins:{type:"array",description:`An array of plugins that should be disabled.
|
|
15
|
-
|
|
16
|
-
Requires Homebridge v1.3 or later.`,items:{type:"string",description:`The full plugin npm package name.
|
|
17
|
-
Example: homebridge-dummy`},default:[]},ports:{type:"object",description:"The range of ports that should be used for certain accessories like cameras and TVs",required:["start","end"],properties:{start:{type:"number",default:52100,minimum:1025,maximum:65534},end:{type:"number",default:52150,minimum:1025,maximum:65534}},default:{start:52100,end:52150}},platforms:{type:"array",description:`Any plugin that exposes a platform should have its config entered in this array.
|
|
18
|
-
Separate each plugin config block using a comma.`,items:{type:"object",required:["platform"],anyOf:[{type:"object",required:["platform"],properties:{platform:{type:"string",description:"This is used by Homebridge to identify which plugin this platform belongs to.",not:{enum:["config"]}},name:{type:"string",description:"The name of the platform."}}},{type:"object",properties:{platform:{type:"string",description:`Homebridge UI platform name must be set to "config".
|
|
19
|
-
Do Not Change!`,oneOf:[{enum:"config"}]},name:{type:"string",description:"The name used in the Homebridge log."}}}]}},accessories:{type:"array",description:`Any plugin that exposes an accessory should have its config entered in this array.
|
|
20
|
-
Separate each plugin config block using a comma.`,items:{type:"object",required:["accessory","name"],properties:{accessory:{type:"string",description:"This is used by Homebridge to identify which plugin this accessory belongs to."},name:{type:"string",description:"The name of the accessory."}}}}}}}]}),this.monacoEditorModel.uri=monaco.Uri.parse("a://homebridge/config.json")}visualViewPortChanged(){this.lastHeight<window.visualViewport.height&&document.activeElement.blur(),window.visualViewport.height<window.innerHeight?(this.$md.enableTouchMove(),this.lastHeight=window.visualViewport.height):window.visualViewport.height===window.innerHeight&&(this.$md.disableTouchMove(),this.lastHeight=window.visualViewport.height)}saveConfig(e){return E(this,null,function*(){try{let t=yield $(this.$api.post("/config-editor",e));this.homebridgeConfig=JSON.stringify(t,null,4),yield this.detectSavesChangesForRestart()}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error"))}})}validateArraysEqual(e,t){if(e.length!==t.length)return!1;let i=[...e].sort(),o=[...t].sort();return i.every((T,O)=>T===o[O])}removePlatformsAndAccessories(e){let T=e,{accessories:t,platforms:i}=T;return G(T,["accessories","platforms"])}removeEmptyBridges(e){return e.filter(t=>t._bridge&&Object.keys(t._bridge).length>0).map(t=>t._bridge)}validateBridgesEqual(e,t){return e.length!==t.length?!1:e.every(i=>t.some(o=>A(i,o)))}detectSavesChangesForRestart(){return E(this,null,function*(){try{if(this.hbPendingRestart)throw new Error("homebridge already pending a restart");let e=this.latestSavedConfig,t=JSON.stringify(e,null,4),i=JSON.parse(this.homebridgeConfig),o=this.homebridgeConfig;if(t===o&&!this.childBridgesToRestart.length)this.$toastr.info(this.$translate.instant("config.no_restart"),this.$translate.instant("config.config_saved"));else{if(!this.validateArraysEqual(Object.keys(e),Object.keys(i)))throw new Error("top level keys have changed");if([...i.platforms||[],...i.accessories||[]].every(c=>!c._bridge||!Object.keys(c._bridge).length))throw new Error("All platforms and accessories are missing a valid _bridge property.");let O=this.removePlatformsAndAccessories(e),$e=this.removePlatformsAndAccessories(i);if(!A(O,$e))throw new Error("top level properties have changed (except accessories and platforms)");let N=e.platforms||[],q=i.platforms||[],Te=N.map(c=>c.platform),Se=q.map(c=>c.platform);if(!this.validateArraysEqual(Te,Se))throw new Error("platform keys have changed");let F=e.accessories||[],L=i.accessories||[],Me=F.map(c=>c.accessory),Ae=L.map(c=>c.accessory);if(!this.validateArraysEqual(Me,Ae))throw new Error("accessory keys have changed");if(!this.validateBridgesEqual(this.removeEmptyBridges(N),this.removeEmptyBridges(q)))throw new Error("platform bridges have changed");if(!this.validateBridgesEqual(this.removeEmptyBridges(F),this.removeEmptyBridges(L)))throw new Error("accessory bridges have changed");let U=N.filter(c=>!A(c,q.find(S=>S.platform===c.platform))),Ve=F.filter(c=>!A(c,L.find(S=>S.accessory===c.accessory))),W=[...U,...Ve];if(U.some(c=>c.platform==="config"))throw new Error("homebridge ui config has changed");if(W.some(c=>c.platform==="config"?!1:!c._bridge||Object.keys(c._bridge).length===0))throw new Error("some changed entry does not have a _bridge key");let Be=yield $(this.$api.get("/status/homebridge/child-bridges"));W.forEach(c=>{let S=c._bridge.username.toUpperCase(),V=Be.find(({username:J})=>J===S);if(V)this.childBridgesToRestart.some(J=>J.username===V.username)||this.childBridgesToRestart.push({name:V.name,username:V.username});else throw new Error(`no child bridge found for username: ${S}`)});let Y=this.$modal.open(ye,{size:"lg",backdrop:"static"});Y.componentInstance.bridges=this.childBridgesToRestart;try{yield Y.result,this.childBridgesToRestart=[]}catch{}}}catch(e){console.error(e);let t=this.$modal.open(Ce,{size:"lg",backdrop:"static"});try{yield t.result,this.hbPendingRestart=!1,this.childBridgesToRestart=[]}catch{this.hbPendingRestart=!0}}finally{this.latestSavedConfig=JSON.parse(this.homebridgeConfig)}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch{let t=ke.default.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(t,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),t}}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=B({type:n,selectors:[["ng-component"]],decls:17,vars:18,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-danger","waves-effect","my-0","me-2",3,"disabled","openDelay","ngbTooltip"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2",3,"openDelay","ngbTooltip"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-0",3,"click","disabled","openDelay","ngbTooltip"],[1,"fas","fa-fw","fa-floppy-disk"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"options","model"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"options","originalModel","modifiedModel"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-3",3,"ngModel"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-danger","waves-effect","my-0","me-2",3,"click","disabled","openDelay","ngbTooltip"],[1,"fas","fa-fw","fa-times"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-fw","fa-history"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"onInit","keydown.control.s","keydown.meta.s","options","originalModel","modifiedModel"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-3",3,"ngModelChange","ngModel"]],template:function(t,i){t&1&&(a(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),_(4),s(5,"translate"),l()(),a(6,"div",4),w(7,Oe,4,8,"button",5),w(8,Ne,4,7,"button",6),a(9,"button",7),s(10,"translate"),s(11,"translate"),b("click",function(){return i.onSave()}),w(12,qe,1,0,"i",8),w(13,Fe,1,0,"i",9),l()()(),w(14,Le,1,2,"ngx-monaco-editor",10),w(15,Je,1,3,"ngx-monaco-diff-editor",11),w(16,ze,2,1,"textarea",12),l()),t&2&&(r(4),k(d(5,12,"menu.config_json_editor")),r(3),v(i.originalConfig?7:-1),r(),v(i.originalConfig?-1:8),r(),f("disabled",i.saveInProgress)("openDelay",150)("ngbTooltip",d(10,14,"form.button_save")),C("aria-label",d(11,16,"form.button_save")),r(3),v(i.saveInProgress?-1:12),r(),v(i.saveInProgress?13:-1),r(),v(!i.isMobile&&!i.originalConfig?14:-1),r(),v(!i.isMobile&&i.originalConfig?15:-1),r(),v(i.isMobile?16:-1))},dependencies:[D,fe,he,ce,se,le,de,P],encapsulation:2})}return n})();export{xt as ConfigEditorComponent};
|
package/public/chunk-R3KUMAWN.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as i}from"./chunk-DFFTJVRY.js";import"./chunk-OA7Y3E5A.js";import{ha as t,nb as e}from"./chunk-IOKYXV5M.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",loadChildren:()=>import("./chunk-LXAXEGMX.js").then(o=>o.DockerModule)},{path:"linux",loadChildren:()=>import("./chunk-CN4SGKOR.js").then(o=>o.LinuxModule)},{path:"terminal",loadChildren:()=>import("./chunk-X5YIKTO6.js").then(o=>o.TerminalModule)}],l=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i.forChild(d),i]})}return o})();var p=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[l]})}return o})();export{p as PlatformToolsModule};
|
package/public/chunk-RHZTPEXE.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as u}from"./chunk-H5WTK5UT.js";import{k as p,n as m}from"./chunk-5PN3M3TS.js";import{a as c}from"./chunk-KZKL7DGI.js";import{g as f,ga as n,h as r,la as a,w as s}from"./chunk-IOKYXV5M.js";var l=f(u(),1);var $=(()=>{class e{$api=a(m);$toastr=a(p);$translate=a(c);downloadBackup(){return r(this,null,function*(){let t=yield s(this.$api.get("/backup/download",{observe:"response",responseType:"blob"})),i=t.headers.get("File-Name")||"homebridge-backup.tar.gz",o=t.body.size;if(o>globalThis.backup.maxBackupSize){let b=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(o/1048576).toFixed(1)}MB`});this.$toastr.warning(b,this.$translate.instant("toast.title_warning"))}(0,l.saveAs)(t.body,i)})}static \u0275fac=function(i){return new(i||e)};static \u0275prov=n({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{$ as a};
|
package/public/chunk-RZXCKXEZ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{d as u,g as s}from"./chunk-DFFTJVRY.js";import{k as l,n as d}from"./chunk-5PN3M3TS.js";import{a as p}from"./chunk-KZKL7DGI.js";import"./chunk-OA7Y3E5A.js";import{ga as c,h as f,ha as i,la as e,nb as n,w as m}from"./chunk-IOKYXV5M.js";var a=(()=>{class t{$api=e(d);$router=e(u);$toastr=e(l);$translate=e(p);resolve(){return f(this,null,function*(){try{let o=yield m(this.$api.get("/config-editor"));return JSON.stringify(o,null,4)}catch(o){console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error")),this.$router.navigate(["/"])}})}static \u0275fac=function(r){return new(r||t)};static \u0275prov=c({token:t,factory:t.\u0275fac})}return t})();var y=[{path:"",loadComponent:()=>import("./chunk-QVCO7S7N.js").then(t=>t.ConfigEditorComponent),resolve:{config:a}}],v=(()=>{class t{static \u0275fac=function(r){return new(r||t)};static \u0275mod=n({type:t});static \u0275inj=i({imports:[s.forChild(y),s]})}return t})();var T=(()=>{class t{static \u0275fac=function(r){return new(r||t)};static \u0275mod=n({type:t});static \u0275inj=i({providers:[a],imports:[v]})}return t})();export{T as ConfigEditorModule};
|
package/public/chunk-SL5FI37R.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as r}from"./chunk-DFFTJVRY.js";import"./chunk-OA7Y3E5A.js";import{ha as t,nb as e}from"./chunk-IOKYXV5M.js";var u=[{path:"",loadComponent:()=>import("./chunk-FSWVJTPN.js").then(o=>o.LogsComponent)}],n=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[r.forChild(u),r]})}return o})();var p=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[n]})}return o})();export{p as LogsModule};
|