homebridge-config-ui-x 4.73.1-beta.4 → 4.73.1-beta.6

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.
Files changed (124) hide show
  1. package/CHANGELOG.md +3 -0
  2. package/dist/modules/config-editor/config-editor.controller.d.ts +1 -1
  3. package/dist/modules/config-editor/config-editor.service.d.ts +1 -1
  4. package/package.json +10 -10
  5. package/public/{chunk-Q2I5NG5P.js → chunk-2EQ7X5TK.js} +1 -1
  6. package/public/chunk-3UDSYA3I.js +1 -0
  7. package/public/chunk-4QFZLHI3.js +1 -0
  8. package/public/chunk-4T2QSCYW.js +1 -0
  9. package/public/{chunk-DA72WFK5.js → chunk-4THAASBB.js} +1 -1
  10. package/public/chunk-4YNBXVWO.js +1 -0
  11. package/public/{chunk-745K3TLS.js → chunk-5FC5GQ62.js} +1 -1
  12. package/public/chunk-5Q4UET5F.js +1 -0
  13. package/public/{chunk-X5ZHUTVR.js → chunk-6BSXLKFT.js} +1 -1
  14. package/public/chunk-6CIQNF5H.js +1 -0
  15. package/public/{chunk-LO3AXXIA.js → chunk-7KVKZWHM.js} +1 -1
  16. package/public/{chunk-WSB4RGEM.js → chunk-7VV6FQMB.js} +1 -1
  17. package/public/{chunk-H2H4EXTV.js → chunk-ACZLPZJM.js} +1 -1
  18. package/public/chunk-AD2WJOR3.js +1 -0
  19. package/public/chunk-AM2SWIQP.js +1 -0
  20. package/public/chunk-AOL4I7SF.js +1 -0
  21. package/public/{chunk-5EB4YSUP.js → chunk-AT2FVBH6.js} +1 -1
  22. package/public/{chunk-PJTXEQVR.js → chunk-ATDDEQTI.js} +1 -1
  23. package/public/chunk-BMXFQN5S.js +1 -0
  24. package/public/{chunk-C5MHGBQM.js → chunk-BWMPOTTX.js} +1 -1
  25. package/public/{chunk-3HJVGO7C.js → chunk-CKMDSZFJ.js} +1 -1
  26. package/public/{chunk-KDK7I6PB.js → chunk-CMCSOAXY.js} +1 -1
  27. package/public/{chunk-UNIFJYIN.js → chunk-CUTDOURK.js} +15 -15
  28. package/public/{chunk-DNAYDMPX.js → chunk-D7R5JMQM.js} +1 -1
  29. package/public/chunk-DO4ZGTU6.js +1 -0
  30. package/public/{chunk-RWQCH5Y2.js → chunk-DWUJUZ6J.js} +1 -1
  31. package/public/chunk-DXIITWXF.js +1 -0
  32. package/public/{chunk-SVYVXXDC.js → chunk-ENRL5IRP.js} +1 -1
  33. package/public/{chunk-FHM3CWFK.js → chunk-ER76XVWX.js} +1 -1
  34. package/public/chunk-EUGNK7Z6.js +1 -0
  35. package/public/chunk-F2I242G2.js +1 -0
  36. package/public/chunk-FDZYH7P2.js +1 -0
  37. package/public/chunk-FW7WTYIT.js +1 -0
  38. package/public/{chunk-NZ6DQTNO.js → chunk-GQZ6ONHA.js} +1 -1
  39. package/public/{chunk-YN5HBL57.js → chunk-GZS22B5R.js} +1 -1
  40. package/public/{chunk-F3QNPU7Y.js → chunk-H6Y3GP7S.js} +1 -1
  41. package/public/{chunk-SZMEXLU6.js → chunk-HKLJJXUX.js} +1 -1
  42. package/public/chunk-HOOQ4UQP.js +1 -0
  43. package/public/chunk-I2GVL7LC.js +1 -0
  44. package/public/chunk-ISMLO7UG.js +1 -0
  45. package/public/{chunk-CVESQXZG.js → chunk-IXPB55LL.js} +1 -1
  46. package/public/chunk-JJUGQBVZ.js +1 -0
  47. package/public/{chunk-POTURHGX.js → chunk-JUAHATIH.js} +1 -1
  48. package/public/{chunk-V5T5GLM2.js → chunk-KBN3M4ZL.js} +1 -1
  49. package/public/{chunk-NWRKVNNJ.js → chunk-KDREFWFV.js} +1 -1
  50. package/public/chunk-L6QFBAQD.js +1 -0
  51. package/public/{chunk-PNBEHJTI.js → chunk-LAIV47S5.js} +1 -1
  52. package/public/{chunk-RUZ6UV76.js → chunk-LCXKXRE4.js} +1 -1
  53. package/public/{chunk-CHHMRVT5.js → chunk-LT7BXDSP.js} +1 -1
  54. package/public/{chunk-22HOIXSL.js → chunk-MPF3KEL5.js} +1 -1
  55. package/public/{chunk-OHEYB7TK.js → chunk-NBLQRK5L.js} +1 -1
  56. package/public/{chunk-XXAA2OT4.js → chunk-NPM35RAR.js} +1 -1
  57. package/public/{chunk-JOD2NM4J.js → chunk-NWR5YEU4.js} +1 -1
  58. package/public/{chunk-V7NF6QJQ.js → chunk-O4EUMYGD.js} +2 -2
  59. package/public/{chunk-EJSEDN33.js → chunk-OCLCXMFW.js} +1 -1
  60. package/public/chunk-OIDPHCAP.js +1 -0
  61. package/public/{chunk-NB3DWSCV.js → chunk-OIONECW5.js} +1 -1
  62. package/public/chunk-OP4QOFUX.js +1 -0
  63. package/public/{chunk-43PBCDFI.js → chunk-PODI7IMY.js} +1 -1
  64. package/public/{chunk-WEEPZ4M3.js → chunk-PWKJ7T7X.js} +1 -1
  65. package/public/chunk-PZN45ZZ5.js +1 -0
  66. package/public/{chunk-74XFBBRX.js → chunk-QUDSNEEH.js} +1 -1
  67. package/public/{chunk-5NSIQFRI.js → chunk-RP4KPBJI.js} +1 -1
  68. package/public/chunk-RYGD5FQE.js +1 -0
  69. package/public/{chunk-5QC2DE7R.js → chunk-TPT7MSVS.js} +1 -1
  70. package/public/chunk-TV6QVQQL.js +1 -0
  71. package/public/chunk-U5IBXXN3.js +1 -0
  72. package/public/{chunk-HQXXTLFT.js → chunk-UQVMWA67.js} +1 -1
  73. package/public/{chunk-SYFI7K5P.js → chunk-VNJJI7TG.js} +1 -1
  74. package/public/chunk-W4T367PM.js +1 -0
  75. package/public/chunk-WUTZSOAY.js +1 -0
  76. package/public/{chunk-MD7UMU26.js → chunk-X7XHTZ56.js} +1 -1
  77. package/public/{chunk-X5XMOYJS.js → chunk-XHBLMBBY.js} +1 -1
  78. package/public/{chunk-KJNMRIA6.js → chunk-XTQDZLWU.js} +1 -1
  79. package/public/chunk-XU7AKJJP.js +1 -0
  80. package/public/{chunk-3D2KYU3I.js → chunk-Y4XF7KF6.js} +1 -1
  81. package/public/chunk-YGL3GU3P.js +1 -0
  82. package/public/{chunk-YBHLMKMJ.js → chunk-YRKK76EB.js} +1 -1
  83. package/public/chunk-YSEOPOHR.js +7 -0
  84. package/public/{chunk-MGE6Z54W.js → chunk-ZAHNXF6D.js} +1 -1
  85. package/public/{chunk-W7HYSXJA.js → chunk-ZC5PN6KE.js} +1 -1
  86. package/public/{chunk-IF7R3UUQ.js → chunk-ZIEZJHQ3.js} +1 -1
  87. package/public/chunk-ZZ5DUZ3T.js +2 -0
  88. package/public/index.html +2 -2
  89. package/public/main-24IQPTSY.js +1 -0
  90. package/public/{styles-EYD3YW3P.css → styles-6IKEC5B4.css} +1 -1
  91. package/public/chunk-2YXYKYSP.js +0 -1
  92. package/public/chunk-32XT6BFV.js +0 -1
  93. package/public/chunk-3COF2Y7K.js +0 -1
  94. package/public/chunk-44HUCOQS.js +0 -1
  95. package/public/chunk-5KS6RWU5.js +0 -1
  96. package/public/chunk-77O23BZM.js +0 -1
  97. package/public/chunk-7OGYGO66.js +0 -1
  98. package/public/chunk-AM5YLFHT.js +0 -1
  99. package/public/chunk-BBWXRGJ7.js +0 -1
  100. package/public/chunk-C2R7BKLL.js +0 -1
  101. package/public/chunk-CKBOMFRN.js +0 -1
  102. package/public/chunk-DVZK325Y.js +0 -1
  103. package/public/chunk-FEDSI4MK.js +0 -1
  104. package/public/chunk-HMMRZ6BH.js +0 -1
  105. package/public/chunk-I4OOVPU2.js +0 -1
  106. package/public/chunk-JFLCLYHE.js +0 -2
  107. package/public/chunk-JQBOO7XC.js +0 -1
  108. package/public/chunk-KHE5GBJI.js +0 -7
  109. package/public/chunk-L7CBL7DJ.js +0 -1
  110. package/public/chunk-Q3ZXQXH2.js +0 -1
  111. package/public/chunk-RMS67SCK.js +0 -1
  112. package/public/chunk-SBHD2AU5.js +0 -1
  113. package/public/chunk-T27YIUDT.js +0 -1
  114. package/public/chunk-U4JTM5DJ.js +0 -1
  115. package/public/chunk-UI7HMAPR.js +0 -1
  116. package/public/chunk-V27HTRZL.js +0 -1
  117. package/public/chunk-VJ3MLX2E.js +0 -1
  118. package/public/chunk-VP2TM7PV.js +0 -1
  119. package/public/chunk-VRQWU4GV.js +0 -1
  120. package/public/chunk-XPGW7GAF.js +0 -1
  121. package/public/chunk-Y2VMDOOC.js +0 -1
  122. package/public/chunk-YAZX4HUY.js +0 -1
  123. package/public/chunk-ZSNM6JUG.js +0 -1
  124. package/public/main-D5QH5AOX.js +0 -1
@@ -1,4 +1,4 @@
1
- import{a as ee}from"./chunk-PNBEHJTI.js";import{a as Z,b as ne}from"./chunk-3D2KYU3I.js";import{a as W,b as Y}from"./chunk-KDK7I6PB.js";import{a as X}from"./chunk-YN5HBL57.js";import{m as J,n as K,o as U}from"./chunk-H2H4EXTV.js";import{c as N,e as F,l as q,y as z}from"./chunk-SYFI7K5P.js";import{b as G}from"./chunk-DVZK325Y.js";import{b as Q}from"./chunk-EJSEDN33.js";import{h as M,k as V}from"./chunk-JQBOO7XC.js";import{a as k,b as T}from"./chunk-745K3TLS.js";import{Cc as s,Dc as d,Ec as O,Jb as b,Kb as v,Pb as m,Rb as I,Sb as j,Tb as H,Ub as r,Vb as a,Wb as w,_b as _,bc as h,cc as l,g as oe,gb as n,gd as L,h as S,lb as D,ma as u,mc as C,nc as x,oc as E,tb as $,tc as R,ua as f,uc as P,va as g,vc as B,w as A,zb as y}from"./chunk-KHE5GBJI.js";var ie=oe(ne(),1);function ae(o,p){o&1&&(r(0,"div",5),w(1,"i",12),a())}function se(o,p){if(o&1){let e=_();r(0,"li",17),C(1),s(2,"date"),r(3,"button",18),s(4,"translate"),h("click",function(){let t=f(e).$implicit,c=l(3);return g(c.restore(t.id))}),w(5,"i",19),a()()}if(o&2){let e=p.$implicit;n(),E(" ",O(2,2,e.timestamp,"medium")," "),n(2),b("aria-label",d(4,5,"config.restore.copy_to_editor"))}}function le(o,p){if(o&1&&(r(0,"ul",15),j(1,se,6,7,"li",17,I),a()),o&2){let e=l(2);n(),H(e.backupList)}}function de(o,p){o&1&&(r(0,"p",16),C(1),s(2,"translate"),a()),o&2&&(n(),x(d(2,1,"config.restore.no_backups")))}function ce(o,p){if(o&1&&(r(0,"div",13),w(1,"i",14),a(),r(2,"p",13),C(3),s(4,"translate"),a(),y(5,le,3,0,"ul",15)(6,de,3,3,"p",16)),o&2){let e=l();n(3),x(d(4,3,"config.restore.title_restore_homebridge_backup")),n(2),m(e.backupList&&e.backupList.length?5:-1),n(),m(!e.backupList||!e.backupList.length?6:-1)}}function me(o,p){if(o&1){let e=_();r(0,"button",20),s(1,"translate"),h("click",function(){f(e);let t=l();return g(t.$activeModal.dismiss("Dismiss"))}),C(2),s(3,"translate"),a()}o&2&&(b("aria-label",d(1,2,"form.button_close")),n(2),E(" ",d(3,4,"form.button_close")," "))}function pe(o,p){if(o&1){let e=_();r(0,"button",20),s(1,"translate"),h("click",function(){f(e);let t=l();return g(t.$activeModal.dismiss("Dismiss"))}),C(2),s(3,"translate"),a()}o&2&&(b("aria-label",d(1,2,"form.button_close")),n(2),E(" ",d(3,4,"form.button_close")," "))}function fe(o,p){if(o&1){let e=_();r(0,"button",21),s(1,"translate"),h("click",function(){f(e);let t=l();return g(t.deleteAllBackups())}),C(2),s(3,"translate"),a()}o&2&&(b("aria-label",d(1,2,"form.button_remove")),n(2),E(" ",d(3,4,"form.button_remove")," "))}var te=(()=>{class o{$activeModal=u(J);$api=u(V);$toastr=u(M);$translate=u(k);loading=!0;backupList=[];constructor(){}ngOnInit(){this.$api.get("/config-editor/backups").subscribe({next:e=>{this.loading=!1,this.backupList=e},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}restore(e){return this.$activeModal.close(e)}deleteAllBackups(){return this.$api.delete("/config-editor/backups").subscribe({next:()=>{this.$activeModal.dismiss(),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success"))},error:e=>{console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=$({type:o,selectors:[["ng-component"]],decls:17,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","primary-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-danger","me-auto"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-history","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box"],[1,"text-center","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"btn","btn-primary","m-0","ms-3",3,"click"],[1,"fas","fa-fw","fa-arrow-right"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button",1,"btn","btn-danger","me-auto",3,"click"]],template:function(i,t){i&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),C(3),s(4,"translate"),a(),r(5,"button",3),s(6,"translate"),h("click",function(){return t.$activeModal.dismiss("Dismiss")}),a()(),r(7,"div",4),y(8,ae,2,0,"div",5)(9,ce,7,5),a(),r(10,"div",6)(11,"div",7),y(12,me,4,6,"button",8),a(),r(13,"div",9),y(14,pe,4,6,"button",8),a(),r(15,"div",10),y(16,fe,4,6,"button",11),a()()()),i&2&&(n(3),x(d(4,7,"form.button_restore")),n(2),b("aria-label",d(6,9,"form.button_close")),n(3),m(t.loading?8:-1),n(),m(t.loading?-1:9),n(3),m(!t.loading&&t.backupList.length?12:-1),n(2),m(t.loading||!t.loading&&!t.backupList.length?14:-1),n(2),m(!t.loading&&t.backupList.length?16:-1))},dependencies:[L,T],encapsulation:2})}return o})();function ge(o,p){if(o&1){let e=_();r(0,"button",13),s(1,"translate"),s(2,"translate"),h("click",function(){f(e);let t=l();return g(t.onExportConfig())}),w(3,"i",14),a()}o&2&&(v("ngbTooltip",d(1,2,"form.button_download")),b("aria-label",d(2,4,"form.button_download")))}function ue(o,p){if(o&1){let e=_();r(0,"button",15),s(1,"translate"),s(2,"translate"),h("click",function(){f(e);let t=l();return g(t.onCancelRestore())}),w(3,"i",16),a()}if(o&2){let e=l();v("disabled",e.saveInProgress)("ngbTooltip",d(1,3,"form.button_cancel")),b("aria-label",d(2,5,"form.button_cancel"))}}function he(o,p){if(o&1){let e=_();r(0,"button",13),s(1,"translate"),s(2,"translate"),h("click",function(){f(e);let t=l();return g(t.onRestore())}),w(3,"i",17),a()}o&2&&(v("ngbTooltip",d(1,2,"form.button_restore")),b("aria-label",d(2,4,"form.button_restore")))}function _e(o,p){o&1&&w(0,"i",8)}function be(o,p){o&1&&w(0,"i",9)}function Ce(o,p){if(o&1){let e=_();r(0,"ngx-monaco-editor",18),h("onInit",function(t){f(e);let c=l();return g(c.onEditorInit(t))})("keydown.control.s",function(t){f(e);let c=l();return t.preventDefault(),g(c.onSave())})("keydown.meta.s",function(t){f(e);let c=l();return t.preventDefault(),g(c.onSave())}),a()}if(o&2){let e=l();v("options",e.editorOptions)("model",e.monacoEditorModel)}}function ye(o,p){if(o&1){let e=_();r(0,"ngx-monaco-diff-editor",19),h("onInit",function(t){f(e);let c=l();return g(c.onInitDiffEditor(t))})("keydown.control.s",function(t){f(e);let c=l();return t.preventDefault(),g(c.onSave())})("keydown.meta.s",function(t){f(e);let c=l();return t.preventDefault(),g(c.onSave())}),a()}if(o&2){let e=l();v("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function we(o,p){if(o&1){let e=_();r(0,"textarea",20),B("ngModelChange",function(t){f(e);let c=l();return P(c.homebridgeConfig,t)||(c.homebridgeConfig=t),g(t)}),C(1," "),a()}if(o&2){let e=l();R("ngModel",e.homebridgeConfig)}}var Ke=(()=>{class o{$api=u(V);$md=u(X);$modal=u(K);$monacoEditor=u(ee);$route=u(G);$renderer=u(D);$settings=u(Q);$toastr=u(M);$translate=u(k);homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;editorDecorations=[];lastHeight;visualViewPortEventCallback;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.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()}})}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 S(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 i=window.monaco.editor.getModelMarkers({owner:"json"});for(let t of i)if(t.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}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch{let i=ie.default.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(i,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),i}}saveConfig(e){return S(this,null,function*(){try{let i=yield A(this.$api.post("/config-editor",e));this.homebridgeConfig=JSON.stringify(i,null,4),this.$modal.open(Z,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error"))}})}onRestore(){this.$modal.open(te,{size:"lg",backdrop:"static"}).result.then(e=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${e}`).subscribe({next:i=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(i,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:i=>{console.error(i),this.$toastr.error(i.error.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onExportConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.homebridgeConfig)}`,i=document.createElement("a");i.setAttribute("href",e),i.setAttribute("download","config.json"),document.body.appendChild(i),i.click(),i.remove()}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig=""}validateSection(e,i){for(let t of e){if(typeof t!="object"||Array.isArray(t))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(!t[i])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(typeof t[i]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1}return!0}validatePlugins(e,i){for(let t of e)if(typeof t!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:i}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
1
+ import{a as ee}from"./chunk-LAIV47S5.js";import{a as Z,b as ne}from"./chunk-Y4XF7KF6.js";import{a as W,b as Y}from"./chunk-CMCSOAXY.js";import{a as X}from"./chunk-GZS22B5R.js";import{m as J,n as K,o as U}from"./chunk-ACZLPZJM.js";import{c as N,e as F,l as q,y as z}from"./chunk-VNJJI7TG.js";import{b as G}from"./chunk-4T2QSCYW.js";import{b as Q}from"./chunk-OCLCXMFW.js";import{h as M,k as V}from"./chunk-HOOQ4UQP.js";import{a as k,b as T}from"./chunk-5FC5GQ62.js";import{Cc as s,Dc as d,Ec as O,Jb as b,Kb as v,Pb as m,Rb as I,Sb as j,Tb as H,Ub as r,Vb as a,Wb as w,_b as _,bc as h,cc as l,g as oe,gb as n,gd as L,h as S,lb as D,ma as u,mc as C,nc as x,oc as E,tb as $,tc as R,ua as f,uc as P,va as g,vc as B,w as A,zb as y}from"./chunk-YSEOPOHR.js";var ie=oe(ne(),1);function ae(o,p){o&1&&(r(0,"div",5),w(1,"i",12),a())}function se(o,p){if(o&1){let e=_();r(0,"li",17),C(1),s(2,"date"),r(3,"button",18),s(4,"translate"),h("click",function(){let t=f(e).$implicit,c=l(3);return g(c.restore(t.id))}),w(5,"i",19),a()()}if(o&2){let e=p.$implicit;n(),E(" ",O(2,2,e.timestamp,"medium")," "),n(2),b("aria-label",d(4,5,"config.restore.copy_to_editor"))}}function le(o,p){if(o&1&&(r(0,"ul",15),j(1,se,6,7,"li",17,I),a()),o&2){let e=l(2);n(),H(e.backupList)}}function de(o,p){o&1&&(r(0,"p",16),C(1),s(2,"translate"),a()),o&2&&(n(),x(d(2,1,"config.restore.no_backups")))}function ce(o,p){if(o&1&&(r(0,"div",13),w(1,"i",14),a(),r(2,"p",13),C(3),s(4,"translate"),a(),y(5,le,3,0,"ul",15)(6,de,3,3,"p",16)),o&2){let e=l();n(3),x(d(4,3,"config.restore.title_restore_homebridge_backup")),n(2),m(e.backupList&&e.backupList.length?5:-1),n(),m(!e.backupList||!e.backupList.length?6:-1)}}function me(o,p){if(o&1){let e=_();r(0,"button",20),s(1,"translate"),h("click",function(){f(e);let t=l();return g(t.$activeModal.dismiss("Dismiss"))}),C(2),s(3,"translate"),a()}o&2&&(b("aria-label",d(1,2,"form.button_close")),n(2),E(" ",d(3,4,"form.button_close")," "))}function pe(o,p){if(o&1){let e=_();r(0,"button",20),s(1,"translate"),h("click",function(){f(e);let t=l();return g(t.$activeModal.dismiss("Dismiss"))}),C(2),s(3,"translate"),a()}o&2&&(b("aria-label",d(1,2,"form.button_close")),n(2),E(" ",d(3,4,"form.button_close")," "))}function fe(o,p){if(o&1){let e=_();r(0,"button",21),s(1,"translate"),h("click",function(){f(e);let t=l();return g(t.deleteAllBackups())}),C(2),s(3,"translate"),a()}o&2&&(b("aria-label",d(1,2,"form.button_remove")),n(2),E(" ",d(3,4,"form.button_remove")," "))}var te=(()=>{class o{$activeModal=u(J);$api=u(V);$toastr=u(M);$translate=u(k);loading=!0;backupList=[];constructor(){}ngOnInit(){this.$api.get("/config-editor/backups").subscribe({next:e=>{this.loading=!1,this.backupList=e},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}restore(e){return this.$activeModal.close(e)}deleteAllBackups(){return this.$api.delete("/config-editor/backups").subscribe({next:()=>{this.$activeModal.dismiss(),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success"))},error:e=>{console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=$({type:o,selectors:[["ng-component"]],decls:17,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","primary-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-danger","me-auto"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-history","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box"],[1,"text-center","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"btn","btn-primary","m-0","ms-3",3,"click"],[1,"fas","fa-fw","fa-arrow-right"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button",1,"btn","btn-danger","me-auto",3,"click"]],template:function(i,t){i&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),C(3),s(4,"translate"),a(),r(5,"button",3),s(6,"translate"),h("click",function(){return t.$activeModal.dismiss("Dismiss")}),a()(),r(7,"div",4),y(8,ae,2,0,"div",5)(9,ce,7,5),a(),r(10,"div",6)(11,"div",7),y(12,me,4,6,"button",8),a(),r(13,"div",9),y(14,pe,4,6,"button",8),a(),r(15,"div",10),y(16,fe,4,6,"button",11),a()()()),i&2&&(n(3),x(d(4,7,"form.button_restore")),n(2),b("aria-label",d(6,9,"form.button_close")),n(3),m(t.loading?8:-1),n(),m(t.loading?-1:9),n(3),m(!t.loading&&t.backupList.length?12:-1),n(2),m(t.loading||!t.loading&&!t.backupList.length?14:-1),n(2),m(!t.loading&&t.backupList.length?16:-1))},dependencies:[L,T],encapsulation:2})}return o})();function ge(o,p){if(o&1){let e=_();r(0,"button",13),s(1,"translate"),s(2,"translate"),h("click",function(){f(e);let t=l();return g(t.onExportConfig())}),w(3,"i",14),a()}o&2&&(v("ngbTooltip",d(1,2,"form.button_download")),b("aria-label",d(2,4,"form.button_download")))}function ue(o,p){if(o&1){let e=_();r(0,"button",15),s(1,"translate"),s(2,"translate"),h("click",function(){f(e);let t=l();return g(t.onCancelRestore())}),w(3,"i",16),a()}if(o&2){let e=l();v("disabled",e.saveInProgress)("ngbTooltip",d(1,3,"form.button_cancel")),b("aria-label",d(2,5,"form.button_cancel"))}}function he(o,p){if(o&1){let e=_();r(0,"button",13),s(1,"translate"),s(2,"translate"),h("click",function(){f(e);let t=l();return g(t.onRestore())}),w(3,"i",17),a()}o&2&&(v("ngbTooltip",d(1,2,"form.button_restore")),b("aria-label",d(2,4,"form.button_restore")))}function _e(o,p){o&1&&w(0,"i",8)}function be(o,p){o&1&&w(0,"i",9)}function Ce(o,p){if(o&1){let e=_();r(0,"ngx-monaco-editor",18),h("onInit",function(t){f(e);let c=l();return g(c.onEditorInit(t))})("keydown.control.s",function(t){f(e);let c=l();return t.preventDefault(),g(c.onSave())})("keydown.meta.s",function(t){f(e);let c=l();return t.preventDefault(),g(c.onSave())}),a()}if(o&2){let e=l();v("options",e.editorOptions)("model",e.monacoEditorModel)}}function ye(o,p){if(o&1){let e=_();r(0,"ngx-monaco-diff-editor",19),h("onInit",function(t){f(e);let c=l();return g(c.onInitDiffEditor(t))})("keydown.control.s",function(t){f(e);let c=l();return t.preventDefault(),g(c.onSave())})("keydown.meta.s",function(t){f(e);let c=l();return t.preventDefault(),g(c.onSave())}),a()}if(o&2){let e=l();v("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function we(o,p){if(o&1){let e=_();r(0,"textarea",20),B("ngModelChange",function(t){f(e);let c=l();return P(c.homebridgeConfig,t)||(c.homebridgeConfig=t),g(t)}),C(1," "),a()}if(o&2){let e=l();R("ngModel",e.homebridgeConfig)}}var Ke=(()=>{class o{$api=u(V);$md=u(X);$modal=u(K);$monacoEditor=u(ee);$route=u(G);$renderer=u(D);$settings=u(Q);$toastr=u(M);$translate=u(k);homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;editorDecorations=[];lastHeight;visualViewPortEventCallback;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.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()}})}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 S(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 i=window.monaco.editor.getModelMarkers({owner:"json"});for(let t of i)if(t.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}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch{let i=ie.default.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(i,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),i}}saveConfig(e){return S(this,null,function*(){try{let i=yield A(this.$api.post("/config-editor",e));this.homebridgeConfig=JSON.stringify(i,null,4),this.$modal.open(Z,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error"))}})}onRestore(){this.$modal.open(te,{size:"lg",backdrop:"static"}).result.then(e=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${e}`).subscribe({next:i=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(i,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:i=>{console.error(i),this.$toastr.error(i.error.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onExportConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.homebridgeConfig)}`,i=document.createElement("a");i.setAttribute("href",e),i.setAttribute("download","config.json"),document.body.appendChild(i),i.click(),i.remove()}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig=""}validateSection(e,i){for(let t of e){if(typeof t!="object"||Array.isArray(t))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(!t[i])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(typeof t[i]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1}return!0}validatePlugins(e,i){for(let t of e)if(typeof t!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:i}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
2
2
  `).map(i=>` ${i}`).join(`
3
3
  `),setTimeout(()=>{let i=this.monacoEditor.getModel().findMatches(e);if(i.length){let t=i[0].range,c=new monaco.Range(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn);this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[{range:c,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}},200))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(i=>i.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
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).
@@ -0,0 +1 @@
1
+ import{a as l,b as u,c as a,d as g}from"./chunk-7VV6FQMB.js";import{a as f}from"./chunk-LCXKXRE4.js";import"./chunk-7KVKZWHM.js";import{a as c}from"./chunk-H6Y3GP7S.js";import"./chunk-CUTDOURK.js";import"./chunk-Y4XF7KF6.js";import"./chunk-CMCSOAXY.js";import"./chunk-AT2FVBH6.js";import"./chunk-GZS22B5R.js";import"./chunk-2EQ7X5TK.js";import"./chunk-HKLJJXUX.js";import"./chunk-ZC5PN6KE.js";import"./chunk-OIONECW5.js";import"./chunk-ZIEZJHQ3.js";import"./chunk-L6QFBAQD.js";import"./chunk-YRKK76EB.js";import{q as s}from"./chunk-ACZLPZJM.js";import{y as n,z as p}from"./chunk-VNJJI7TG.js";import"./chunk-NBLQRK5L.js";import{g as i}from"./chunk-4T2QSCYW.js";import"./chunk-PWKJ7T7X.js";import"./chunk-OCLCXMFW.js";import"./chunk-HOOQ4UQP.js";import"./chunk-ZZ5DUZ3T.js";import{c as d}from"./chunk-5FC5GQ62.js";import{ha as t,id as m,ub as e}from"./chunk-YSEOPOHR.js";var v=[{path:"",loadComponent:()=>import("./chunk-JJUGQBVZ.js").then(o=>o.SettingsComponent),canActivate:[f]}],C=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i.forChild(v),i]})}return o})();var K=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[m,n,p,d,s,C,g,u,l,c,a]})}return o})();export{K as SettingsModule};
@@ -1 +1 @@
1
- import{a as te}from"./chunk-NB3DWSCV.js";import{a as Z,b as ee}from"./chunk-IF7R3UUQ.js";import{m as E,n as I,o as q}from"./chunk-H2H4EXTV.js";import{a as J}from"./chunk-OHEYB7TK.js";import{d as G}from"./chunk-DVZK325Y.js";import{h as M,k as D}from"./chunk-JQBOO7XC.js";import{c as O,d as U}from"./chunk-JFLCLYHE.js";import{a as R,b as F}from"./chunk-745K3TLS.js";import{$c as H,Cc as s,Dc as l,Ec as y,Jb as v,Kb as _,Pb as u,Rb as A,Sb as N,Tb as W,Ub as r,Vb as o,Wb as m,_b as T,bc as f,cc as d,g as P,gb as i,gd as j,h as $,ma as x,mc as c,nc as k,oc as h,tb as S,ua as C,va as B,yc as w,zb as g,zc as z}from"./chunk-KHE5GBJI.js";var V=P(te(),1);var L=P(Z(),1),Q=P(ee(),1);var ne=t=>({maxBackupSizeText:t});function ae(t,p){if(t&1&&m(0,"input",10),t&2){let e=d(2);_("value",e.selectedBackup.fileName)}}function oe(t,p){if(t&1){let e=T();r(0,"input",12),f("change",function(a){C(e);let b=d(2);return B(b.handleRestoreFileInput(a.target.files))}),o()}}function re(t,p){if(t&1&&(r(0,"div",4)(1,"div",7),m(2,"i",8),o(),r(3,"ul",9)(4,"li"),c(5),s(6,"translate"),o(),r(7,"li"),c(8),s(9,"translate"),o(),r(10,"li"),c(11),s(12,"translate"),o(),r(13,"li"),c(14),s(15,"translate"),o()(),g(16,ae,1,1,"input",10)(17,oe,1,0,"input",11),o()),t&2){let e=d();i(5),k(l(6,6,"backup.restore_help_one")),i(3),k(l(9,8,"backup.restore_help_two")),i(3),k(y(12,10,"backup.restore_max_size",w(15,ne,e.maxFileSizeText))),i(3),k(l(15,13,"backup.restore_warning")),i(2),u(e.selectedBackup?16:-1),i(),u(e.selectedBackup?-1:17)}}function se(t,p){if(t&1){let e=T();r(0,"button",18),s(1,"translate"),f("click",function(){C(e);let a=d(2);return B(a.$activeModal.dismiss("Dismiss"))}),c(2),s(3,"translate"),o()}if(t&2){let e=d(2);_("disabled",e.clicked),v("aria-label",l(1,3,"form.button_close")),i(2),h(" ",l(3,5,"form.button_close")," ")}}function le(t,p){if(t&1){let e=T();r(0,"button",18),s(1,"translate"),f("click",function(){C(e);let a=d(2);return B(a.reopenBackupModal())}),c(2),s(3,"translate"),o()}if(t&2){let e=d(2);_("disabled",e.clicked),v("aria-label",l(1,3,"form.button_back")),i(2),h(" ",l(3,5,"form.button_back")," ")}}function ce(t,p){t&1&&m(0,"i",19)}function pe(t,p){if(t&1&&(r(0,"span"),c(1),o()),t&2){let e=d(3);i(),h("",e.uploadPercent,"% - ")}}function de(t,p){t&1&&(r(0,"span"),c(1," Extracting Archive"),o())}function me(t,p){t&1&&(r(0,"span"),c(1),s(2,"translate"),o()),t&2&&(i(),h(" ",l(2,1,"backup.label_uploading"),""))}function ue(t,p){if(t&1&&(r(0,"span"),g(1,ce,1,0,"i",19)(2,pe,2,1,"span")(3,de,2,0,"span")(4,me,3,3,"span"),o()),t&2){let e=d(2);i(),u(!e.uploadPercent||e.uploadPercent===100?1:-1),i(),u(e.uploadPercent&&e.uploadPercent!==100?2:-1),i(),u(e.uploadPercent===100?3:-1),i(),u(e.uploadPercent!==100?4:-1)}}function _e(t,p){t&1&&(c(0),s(1,"translate")),t&2&&h(" ",l(1,1,"form.button_restore")," ")}function be(t,p){if(t&1){let e=T();r(0,"div",6)(1,"div",13),g(2,se,4,7,"button",14)(3,le,4,7,"button",14),o(),m(4,"div",15),r(5,"div",16)(6,"button",17),f("click",function(){C(e);let a=d();return B(a.onRestoreBackupClick())}),g(7,ue,5,4,"span")(8,_e,2,3),o()()()}if(t&2){let e=d();i(2),u(e.setupWizardRestore?2:-1),i(),u(e.setupWizardRestore?-1:3),i(3),_("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),i(),u(e.clicked?7:-1),i(),u(e.clicked?-1:8)}}function ke(t,p){if(t&1){let e=T();r(0,"div",6),m(1,"div",13),r(2,"div",15)(3,"button",20),f("click",function(){C(e);let a=d();return B(a.postBackupRestart())}),c(4),s(5,"translate"),o()(),m(6,"div",16),o()}t&2&&(i(4),h(" ",l(5,1,"menu.hbrestart.title")," "))}var X=(()=>{class t{$activeModal=x(E);$api=x(D);$modal=x(I);$route=x(G);$toastr=x(M);$translate=x(R);$ws=x(J);setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;term=new L.Terminal;termTarget;fitAddon=new Q.FitAddon;io;constructor(){}ngOnInit(){return $(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted=!0,this.restoreInProgress=!0,this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType==="hbfx"&&this.uploadHbfxArchive()}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",e).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:n=>{var a;console.error(n),this.$toastr.error(((a=n.error)==null?void 0:a.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return $(this,null,function*(){this.term.reset(),this.clicked=!0,this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:e=>{var n;console.error(e),this.$toastr.error(((n=e.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return $(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===O.UploadProgress?this.uploadPercent=Math.round(100*n.loaded/n.total):n instanceof U&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:n=>{var a;this.clicked=!1,console.error(n),this.$toastr.error(((a=n.error)==null?void 0:a.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return $(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.selectedFile.name.endsWith(".hbfx")?this.restoreArchiveType="hbfx":this.restoreArchiveType="homebridge"):delete this.selectedFile}postBackupRestart(){this.$api.put("/backup/restart",{}).subscribe({next:()=>{this.$activeModal.close(!0),this.$route.navigate(["/"])},error:()=>{}})}reopenBackupModal(){this.$activeModal.dismiss(),this.$modal.open(K,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.io.end()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,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,a){n&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),c(3),s(4,"translate"),o(),r(5,"button",3),s(6,"translate"),f("click",function(){return a.$activeModal.dismiss("Dismiss")}),o()(),g(7,re,18,17,"div",4),m(8,"div",5),g(9,be,9,5,"div",6)(10,ke,7,3,"div",6),o()),n&2&&(i(3),k(l(4,7,"backup.title_backup")),i(2),_("disabled",a.restoreInProgress),v("aria-label",l(6,9,"form.button_close")),i(2),u(!a.restoreStarted&&!a.setupWizardRestore?7:-1),i(),_("hidden",!a.restoreStarted),i(),u(!a.restoreStarted||a.restoreFailed===!0?9:-1),i(),u(!a.restoreInProgress&&a.restoreStarted?10:-1))},dependencies:[F],encapsulation:2})}return t})();var fe=(t,p)=>({"fa-arrow-right":t,"fa-cog fa-spin":p}),he=t=>({backupTime:t,dayCount:7}),xe=(t,p)=>({"fa-trash":t,"fa-cog fa-spin":p}),ge=(t,p)=>({backupSize:t,maxBackupSizeText:p});function ve(t,p){if(t&1&&(c(0),s(1,"date"),s(2,"translate")),t&2){let e=d(2);h(" ",y(2,4,"backup.scheduled_backup_time",w(7,he,y(1,1,e.backupTime,"shortTime")))," ")}}function Ce(t,p){t&1&&(c(0),s(1,"translate")),t&2&&h(" ",l(1,1,"backup.scheduled_backup_disabled")," ")}function Be(t,p){if(t&1&&(r(0,"span",24),s(1,"translate"),m(2,"i",31),c(3),o()),t&2){let e=d().$implicit;_("ngbTooltip",y(1,2,"backup.backup_exceeds_max_size",z(5,ge,e.size+"MB",e.maxBackupSizeText))),i(3),h(" ",e.size,"MB ")}}function Te(t,p){if(t&1&&(r(0,"span"),c(1),o()),t&2){let e=d().$implicit;i(),h(" ",e.size,"MB ")}}function ye(t,p){if(t&1){let e=T();r(0,"li",9)(1,"span")(2,"span",23),c(3),s(4,"date"),o(),m(5,"br"),r(6,"small",10),c(7),s(8,"date"),g(9,Be,4,8,"span",24)(10,Te,2,1,"span"),o()(),r(11,"span",25)(12,"button",26),s(13,"translate"),s(14,"translate"),f("click",function(){let a=C(e).$implicit,b=d(2);return B(b.restore(a))}),m(15,"i",27),o(),r(16,"button",28),s(17,"translate"),s(18,"translate"),f("click",function(){let a=C(e).$implicit,b=d(2);return B(b.download(a))}),m(19,"i",29),o(),r(20,"button",30),s(21,"translate"),s(22,"translate"),f("click",function(){let a=C(e).$implicit,b=d(2);return B(b.delete(a))}),m(23,"i",12),o()()()}if(t&2){let e=p.$implicit,n=d(2);i(2),_("ngbTooltip",e.fileName),i(),h(" ",y(4,15,e.timestamp,"mediumDate")," "),i(4),h(" ",y(8,18,e.timestamp,"shortTime")," \xB7 "),i(2),u(e.size>e.maxBackupSize?9:-1),i(),u(e.size<=e.maxBackupSize?10:-1),i(2),_("disabled",n.clicked||n.deleting||e.size>e.maxBackupSize)("ngbTooltip",l(13,21,"form.button_restore")),v("aria-label",l(14,23,"form.button_restore")),i(4),_("disabled",n.clicked||n.deleting)("ngbTooltip",l(17,25,"form.button_download")),v("aria-label",l(18,27,"form.button_download")),i(4),_("disabled",n.clicked||n.deleting)("ngbTooltip",l(21,29,"form.button_delete")),v("aria-label",l(22,31,"form.button_delete")),i(3),_("ngClass",z(33,xe,e.id!==n.deleting,e.id===n.deleting))}}function $e(t,p){if(t&1&&(r(0,"ul",14)(1,"li",20)(2,"h6",21),c(3),s(4,"translate"),o(),r(5,"p",22),g(6,ve,3,9)(7,Ce,2,3),o()(),N(8,ye,24,36,"li",9,A),o()),t&2){let e=d();i(3),k(l(4,3,"backup.files_auto")),i(3),u(e.backupTime?6:-1),i(),u(e.backupTime?-1:7),i(),W(e.scheduledBackups)}}var K=(()=>{class t{$activeModal=x(E);$api=x(D);$modal=x(I);$toastr=x(M);$translate=x(R);clicked=!1;scheduledBackups=[];backupTime;deleting=null;constructor(){}ngOnInit(){this.getScheduledBackups(),this.getNextBackup()}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)}})}download(e){this.$api.get(`/backup/scheduled-backups/${e.id}`,{observe:"response",responseType:"blob"}).subscribe({next:n=>{let a=e.fileName||"homebridge-backup.tar.gz",b=n.body.size;if(b>globalThis.backup.maxBackupSize){let Y=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(b/1048576).toFixed(1)}MB`});this.$toastr.warning(Y,this.$translate.instant("toast.title_warning"))}(0,V.saveAs)(n.body,a)},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(X,{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 $(this,null,function*(){this.clicked=!0,this.$api.get("/backup/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{let n=e.headers.get("File-Name")||"homebridge-backup.tar.gz";this.clicked=!1;let a=e.body.size;if(a>globalThis.backup.maxBackupSize){let b=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(a/1048576).toFixed(1)}MB`});this.$toastr.warning(b,this.$translate.instant("toast.title_warning"))}(0,V.saveAs)(e.body,n)},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})})}Date=Date;static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["ng-component"]],decls:53,vars:45,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","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-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[1,"list-group-item"],[1,"mb-1","text-center"],[1,"small","grey-text","mb-0","text-center"],["container","modal","openDelay","150","triggers","hover",3,"ngbTooltip"],["container","modal","openDelay","150","triggers","hover",1,"red-text",3,"ngbTooltip"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-exclamation-circle"]],template:function(n,a){n&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),c(3),s(4,"translate"),o(),r(5,"button",3),s(6,"translate"),f("click",function(){return a.$activeModal.dismiss("Dismiss")}),o()(),r(7,"div",4)(8,"div",5),m(9,"i",6),o(),r(10,"ul",7)(11,"li"),c(12),s(13,"translate"),o(),r(14,"li"),c(15),s(16,"translate"),o(),r(17,"li"),c(18),s(19,"translate"),o()(),r(20,"ul",8)(21,"li",9)(22,"div")(23,"span"),c(24),s(25,"translate"),o(),m(26,"br"),r(27,"small",10),c(28),s(29,"translate"),o()(),r(30,"button",11),s(31,"translate"),f("click",function(){return a.onDownloadBackupClick()}),m(32,"i",12),o()(),r(33,"li",9)(34,"div")(35,"span"),c(36),s(37,"translate"),o(),m(38,"br"),r(39,"small",10),c(40),s(41,"translate"),o()(),r(42,"button",11),s(43,"translate"),f("click",function(){return a.restore(null)}),m(44,"i",13),o()()(),g(45,$e,10,5,"ul",14),o(),r(46,"div",15),m(47,"div",16),r(48,"div",17)(49,"button",18),f("click",function(){return a.$activeModal.dismiss("Dismiss")}),c(50),s(51,"translate"),o()(),m(52,"div",19),o()()),n&2&&(i(3),k(l(4,18,"backup.title_backup")),i(2),_("disabled",a.clicked||a.deleting),v("aria-label",l(6,20,"form.button_close")),i(7),k(l(13,22,"backup.backup_help_one")),i(3),k(l(16,24,"backup.backup_help_two")),i(3),k(l(19,26,"backup.backup_warning")),i(6),k(l(25,28,"backup.backup_now")),i(4),k(l(29,30,"backup.backup_now_desc")),i(2),_("disabled",a.clicked),v("aria-label",l(31,32,"backup.backup_now")),i(2),_("ngClass",z(42,fe,!a.clicked,a.clicked)),i(4),k(l(37,34,"backup.restore_now")),i(4),k(l(41,36,"backup.restore_now_desc")),i(2),_("disabled",a.clicked),v("aria-label",l(43,38,"backup.restore_now")),i(3),u(a.scheduledBackups.length?45:-1),i(4),_("disabled",a.clicked||a.deleting),i(),h(" ",l(51,40,"form.button_close")," "))},dependencies:[q,H,j,F],encapsulation:2})}return t})();export{K as a,X as b};
1
+ import{a as te}from"./chunk-OIONECW5.js";import{a as Z,b as ee}from"./chunk-ZIEZJHQ3.js";import{m as E,n as I,o as q}from"./chunk-ACZLPZJM.js";import{a as J}from"./chunk-NBLQRK5L.js";import{d as G}from"./chunk-4T2QSCYW.js";import{h as M,k as D}from"./chunk-HOOQ4UQP.js";import{c as O,d as U}from"./chunk-ZZ5DUZ3T.js";import{a as R,b as F}from"./chunk-5FC5GQ62.js";import{$c as H,Cc as s,Dc as l,Ec as y,Jb as v,Kb as _,Pb as u,Rb as A,Sb as N,Tb as W,Ub as r,Vb as o,Wb as m,_b as T,bc as f,cc as d,g as P,gb as i,gd as j,h as $,ma as x,mc as c,nc as k,oc as h,tb as S,ua as C,va as B,yc as w,zb as g,zc as z}from"./chunk-YSEOPOHR.js";var V=P(te(),1);var L=P(Z(),1),Q=P(ee(),1);var ne=t=>({maxBackupSizeText:t});function ae(t,p){if(t&1&&m(0,"input",10),t&2){let e=d(2);_("value",e.selectedBackup.fileName)}}function oe(t,p){if(t&1){let e=T();r(0,"input",12),f("change",function(a){C(e);let b=d(2);return B(b.handleRestoreFileInput(a.target.files))}),o()}}function re(t,p){if(t&1&&(r(0,"div",4)(1,"div",7),m(2,"i",8),o(),r(3,"ul",9)(4,"li"),c(5),s(6,"translate"),o(),r(7,"li"),c(8),s(9,"translate"),o(),r(10,"li"),c(11),s(12,"translate"),o(),r(13,"li"),c(14),s(15,"translate"),o()(),g(16,ae,1,1,"input",10)(17,oe,1,0,"input",11),o()),t&2){let e=d();i(5),k(l(6,6,"backup.restore_help_one")),i(3),k(l(9,8,"backup.restore_help_two")),i(3),k(y(12,10,"backup.restore_max_size",w(15,ne,e.maxFileSizeText))),i(3),k(l(15,13,"backup.restore_warning")),i(2),u(e.selectedBackup?16:-1),i(),u(e.selectedBackup?-1:17)}}function se(t,p){if(t&1){let e=T();r(0,"button",18),s(1,"translate"),f("click",function(){C(e);let a=d(2);return B(a.$activeModal.dismiss("Dismiss"))}),c(2),s(3,"translate"),o()}if(t&2){let e=d(2);_("disabled",e.clicked),v("aria-label",l(1,3,"form.button_close")),i(2),h(" ",l(3,5,"form.button_close")," ")}}function le(t,p){if(t&1){let e=T();r(0,"button",18),s(1,"translate"),f("click",function(){C(e);let a=d(2);return B(a.reopenBackupModal())}),c(2),s(3,"translate"),o()}if(t&2){let e=d(2);_("disabled",e.clicked),v("aria-label",l(1,3,"form.button_back")),i(2),h(" ",l(3,5,"form.button_back")," ")}}function ce(t,p){t&1&&m(0,"i",19)}function pe(t,p){if(t&1&&(r(0,"span"),c(1),o()),t&2){let e=d(3);i(),h("",e.uploadPercent,"% - ")}}function de(t,p){t&1&&(r(0,"span"),c(1," Extracting Archive"),o())}function me(t,p){t&1&&(r(0,"span"),c(1),s(2,"translate"),o()),t&2&&(i(),h(" ",l(2,1,"backup.label_uploading"),""))}function ue(t,p){if(t&1&&(r(0,"span"),g(1,ce,1,0,"i",19)(2,pe,2,1,"span")(3,de,2,0,"span")(4,me,3,3,"span"),o()),t&2){let e=d(2);i(),u(!e.uploadPercent||e.uploadPercent===100?1:-1),i(),u(e.uploadPercent&&e.uploadPercent!==100?2:-1),i(),u(e.uploadPercent===100?3:-1),i(),u(e.uploadPercent!==100?4:-1)}}function _e(t,p){t&1&&(c(0),s(1,"translate")),t&2&&h(" ",l(1,1,"form.button_restore")," ")}function be(t,p){if(t&1){let e=T();r(0,"div",6)(1,"div",13),g(2,se,4,7,"button",14)(3,le,4,7,"button",14),o(),m(4,"div",15),r(5,"div",16)(6,"button",17),f("click",function(){C(e);let a=d();return B(a.onRestoreBackupClick())}),g(7,ue,5,4,"span")(8,_e,2,3),o()()()}if(t&2){let e=d();i(2),u(e.setupWizardRestore?2:-1),i(),u(e.setupWizardRestore?-1:3),i(3),_("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),i(),u(e.clicked?7:-1),i(),u(e.clicked?-1:8)}}function ke(t,p){if(t&1){let e=T();r(0,"div",6),m(1,"div",13),r(2,"div",15)(3,"button",20),f("click",function(){C(e);let a=d();return B(a.postBackupRestart())}),c(4),s(5,"translate"),o()(),m(6,"div",16),o()}t&2&&(i(4),h(" ",l(5,1,"menu.hbrestart.title")," "))}var X=(()=>{class t{$activeModal=x(E);$api=x(D);$modal=x(I);$route=x(G);$toastr=x(M);$translate=x(R);$ws=x(J);setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;term=new L.Terminal;termTarget;fitAddon=new Q.FitAddon;io;constructor(){}ngOnInit(){return $(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted=!0,this.restoreInProgress=!0,this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType==="hbfx"&&this.uploadHbfxArchive()}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",e).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:n=>{var a;console.error(n),this.$toastr.error(((a=n.error)==null?void 0:a.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return $(this,null,function*(){this.term.reset(),this.clicked=!0,this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:e=>{var n;console.error(e),this.$toastr.error(((n=e.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return $(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===O.UploadProgress?this.uploadPercent=Math.round(100*n.loaded/n.total):n instanceof U&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:n=>{var a;this.clicked=!1,console.error(n),this.$toastr.error(((a=n.error)==null?void 0:a.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return $(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.selectedFile.name.endsWith(".hbfx")?this.restoreArchiveType="hbfx":this.restoreArchiveType="homebridge"):delete this.selectedFile}postBackupRestart(){this.$api.put("/backup/restart",{}).subscribe({next:()=>{this.$activeModal.close(!0),this.$route.navigate(["/"])},error:()=>{}})}reopenBackupModal(){this.$activeModal.dismiss(),this.$modal.open(K,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.io.end()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,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,a){n&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),c(3),s(4,"translate"),o(),r(5,"button",3),s(6,"translate"),f("click",function(){return a.$activeModal.dismiss("Dismiss")}),o()(),g(7,re,18,17,"div",4),m(8,"div",5),g(9,be,9,5,"div",6)(10,ke,7,3,"div",6),o()),n&2&&(i(3),k(l(4,7,"backup.title_backup")),i(2),_("disabled",a.restoreInProgress),v("aria-label",l(6,9,"form.button_close")),i(2),u(!a.restoreStarted&&!a.setupWizardRestore?7:-1),i(),_("hidden",!a.restoreStarted),i(),u(!a.restoreStarted||a.restoreFailed===!0?9:-1),i(),u(!a.restoreInProgress&&a.restoreStarted?10:-1))},dependencies:[F],encapsulation:2})}return t})();var fe=(t,p)=>({"fa-arrow-right":t,"fa-cog fa-spin":p}),he=t=>({backupTime:t,dayCount:7}),xe=(t,p)=>({"fa-trash":t,"fa-cog fa-spin":p}),ge=(t,p)=>({backupSize:t,maxBackupSizeText:p});function ve(t,p){if(t&1&&(c(0),s(1,"date"),s(2,"translate")),t&2){let e=d(2);h(" ",y(2,4,"backup.scheduled_backup_time",w(7,he,y(1,1,e.backupTime,"shortTime")))," ")}}function Ce(t,p){t&1&&(c(0),s(1,"translate")),t&2&&h(" ",l(1,1,"backup.scheduled_backup_disabled")," ")}function Be(t,p){if(t&1&&(r(0,"span",24),s(1,"translate"),m(2,"i",31),c(3),o()),t&2){let e=d().$implicit;_("ngbTooltip",y(1,2,"backup.backup_exceeds_max_size",z(5,ge,e.size+"MB",e.maxBackupSizeText))),i(3),h(" ",e.size,"MB ")}}function Te(t,p){if(t&1&&(r(0,"span"),c(1),o()),t&2){let e=d().$implicit;i(),h(" ",e.size,"MB ")}}function ye(t,p){if(t&1){let e=T();r(0,"li",9)(1,"span")(2,"span",23),c(3),s(4,"date"),o(),m(5,"br"),r(6,"small",10),c(7),s(8,"date"),g(9,Be,4,8,"span",24)(10,Te,2,1,"span"),o()(),r(11,"span",25)(12,"button",26),s(13,"translate"),s(14,"translate"),f("click",function(){let a=C(e).$implicit,b=d(2);return B(b.restore(a))}),m(15,"i",27),o(),r(16,"button",28),s(17,"translate"),s(18,"translate"),f("click",function(){let a=C(e).$implicit,b=d(2);return B(b.download(a))}),m(19,"i",29),o(),r(20,"button",30),s(21,"translate"),s(22,"translate"),f("click",function(){let a=C(e).$implicit,b=d(2);return B(b.delete(a))}),m(23,"i",12),o()()()}if(t&2){let e=p.$implicit,n=d(2);i(2),_("ngbTooltip",e.fileName),i(),h(" ",y(4,15,e.timestamp,"mediumDate")," "),i(4),h(" ",y(8,18,e.timestamp,"shortTime")," \xB7 "),i(2),u(e.size>e.maxBackupSize?9:-1),i(),u(e.size<=e.maxBackupSize?10:-1),i(2),_("disabled",n.clicked||n.deleting||e.size>e.maxBackupSize)("ngbTooltip",l(13,21,"form.button_restore")),v("aria-label",l(14,23,"form.button_restore")),i(4),_("disabled",n.clicked||n.deleting)("ngbTooltip",l(17,25,"form.button_download")),v("aria-label",l(18,27,"form.button_download")),i(4),_("disabled",n.clicked||n.deleting)("ngbTooltip",l(21,29,"form.button_delete")),v("aria-label",l(22,31,"form.button_delete")),i(3),_("ngClass",z(33,xe,e.id!==n.deleting,e.id===n.deleting))}}function $e(t,p){if(t&1&&(r(0,"ul",14)(1,"li",20)(2,"h6",21),c(3),s(4,"translate"),o(),r(5,"p",22),g(6,ve,3,9)(7,Ce,2,3),o()(),N(8,ye,24,36,"li",9,A),o()),t&2){let e=d();i(3),k(l(4,3,"backup.files_auto")),i(3),u(e.backupTime?6:-1),i(),u(e.backupTime?-1:7),i(),W(e.scheduledBackups)}}var K=(()=>{class t{$activeModal=x(E);$api=x(D);$modal=x(I);$toastr=x(M);$translate=x(R);clicked=!1;scheduledBackups=[];backupTime;deleting=null;constructor(){}ngOnInit(){this.getScheduledBackups(),this.getNextBackup()}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)}})}download(e){this.$api.get(`/backup/scheduled-backups/${e.id}`,{observe:"response",responseType:"blob"}).subscribe({next:n=>{let a=e.fileName||"homebridge-backup.tar.gz",b=n.body.size;if(b>globalThis.backup.maxBackupSize){let Y=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(b/1048576).toFixed(1)}MB`});this.$toastr.warning(Y,this.$translate.instant("toast.title_warning"))}(0,V.saveAs)(n.body,a)},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(X,{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 $(this,null,function*(){this.clicked=!0,this.$api.get("/backup/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{let n=e.headers.get("File-Name")||"homebridge-backup.tar.gz";this.clicked=!1;let a=e.body.size;if(a>globalThis.backup.maxBackupSize){let b=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(a/1048576).toFixed(1)}MB`});this.$toastr.warning(b,this.$translate.instant("toast.title_warning"))}(0,V.saveAs)(e.body,n)},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})})}Date=Date;static \u0275fac=function(n){return new(n||t)};static \u0275cmp=S({type:t,selectors:[["ng-component"]],decls:53,vars:45,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","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-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[1,"list-group-item"],[1,"mb-1","text-center"],[1,"small","grey-text","mb-0","text-center"],["container","modal","openDelay","150","triggers","hover",3,"ngbTooltip"],["container","modal","openDelay","150","triggers","hover",1,"red-text",3,"ngbTooltip"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-exclamation-circle"]],template:function(n,a){n&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),c(3),s(4,"translate"),o(),r(5,"button",3),s(6,"translate"),f("click",function(){return a.$activeModal.dismiss("Dismiss")}),o()(),r(7,"div",4)(8,"div",5),m(9,"i",6),o(),r(10,"ul",7)(11,"li"),c(12),s(13,"translate"),o(),r(14,"li"),c(15),s(16,"translate"),o(),r(17,"li"),c(18),s(19,"translate"),o()(),r(20,"ul",8)(21,"li",9)(22,"div")(23,"span"),c(24),s(25,"translate"),o(),m(26,"br"),r(27,"small",10),c(28),s(29,"translate"),o()(),r(30,"button",11),s(31,"translate"),f("click",function(){return a.onDownloadBackupClick()}),m(32,"i",12),o()(),r(33,"li",9)(34,"div")(35,"span"),c(36),s(37,"translate"),o(),m(38,"br"),r(39,"small",10),c(40),s(41,"translate"),o()(),r(42,"button",11),s(43,"translate"),f("click",function(){return a.restore(null)}),m(44,"i",13),o()()(),g(45,$e,10,5,"ul",14),o(),r(46,"div",15),m(47,"div",16),r(48,"div",17)(49,"button",18),f("click",function(){return a.$activeModal.dismiss("Dismiss")}),c(50),s(51,"translate"),o()(),m(52,"div",19),o()()),n&2&&(i(3),k(l(4,18,"backup.title_backup")),i(2),_("disabled",a.clicked||a.deleting),v("aria-label",l(6,20,"form.button_close")),i(7),k(l(13,22,"backup.backup_help_one")),i(3),k(l(16,24,"backup.backup_help_two")),i(3),k(l(19,26,"backup.backup_warning")),i(6),k(l(25,28,"backup.backup_now")),i(4),k(l(29,30,"backup.backup_now_desc")),i(2),_("disabled",a.clicked),v("aria-label",l(31,32,"backup.backup_now")),i(2),_("ngClass",z(42,fe,!a.clicked,a.clicked)),i(4),k(l(37,34,"backup.restore_now")),i(4),k(l(41,36,"backup.restore_now_desc")),i(2),_("disabled",a.clicked),v("aria-label",l(43,38,"backup.restore_now")),i(3),u(a.scheduledBackups.length?45:-1),i(4),_("disabled",a.clicked||a.deleting),i(),h(" ",l(51,40,"form.button_close")," "))},dependencies:[q,H,j,F],encapsulation:2})}return t})();export{K as a,X as b};
@@ -1 +1 @@
1
- import{a as we}from"./chunk-LO3AXXIA.js";import{a as ke}from"./chunk-F3QNPU7Y.js";import{v as ye}from"./chunk-UNIFJYIN.js";import{g as J,m as N,n as he}from"./chunk-H2H4EXTV.js";import{b as G,c as oe,e as W,f as le,g as Z,j as D,k as se,l as q,m as de,n as pe,o as ce,p as me,q as _e,r as ue,s as ge,t as ve,u as be,v as xe,y as K,z as fe}from"./chunk-SYFI7K5P.js";import{d as P,e as Ce}from"./chunk-DVZK325Y.js";import{b as Se}from"./chunk-EJSEDN33.js";import{h as V,k as R}from"./chunk-JQBOO7XC.js";import{a as F,b as $}from"./chunk-745K3TLS.js";import{$c as O,Ac as L,Cc as o,Dc as l,Ec as Y,Jb as x,Kb as g,M as Q,Pb as v,Rb as A,Sb as T,Tb as M,Ub as i,Vb as a,Wb as m,_b as k,bc as b,cb as X,cc as u,ed as j,gb as t,h as y,ma as w,mc as r,nc as p,oc as _,tb as B,tc as ne,ua as C,uc as ae,va as S,vc as re,w as E,yc as H,zb as h,zc as I}from"./chunk-KHE5GBJI.js";function Me(n,c){n&1&&(i(0,"div",12),m(1,"i",13),a(),i(2,"p",14),r(3),o(4,"translate"),a()),n&2&&(t(3),p(l(4,1,"reset.no_accessories")))}function Ne(n,c){n&1&&(i(0,"div",12),m(1,"i",15),a(),i(2,"ul",16)(3,"li"),r(4),o(5,"translate"),a(),i(6,"li"),r(7),o(8,"translate"),a(),i(9,"li"),r(10),o(11,"translate"),a()(),i(12,"ngb-alert",17)(13,"p",18),r(14),o(15,"translate"),a()()),n&2&&(t(4),p(l(5,5,"reset.accessory_all.list_1")),t(3),p(l(8,7,"reset.accessory_all.list_2")),t(3),p(l(11,9,"reset.accessory_all.list_3")),t(2),g("dismissible",!1),t(2),p(l(15,11,"reset.action_is_irreversible")))}function Fe(n,c){if(n&1){let e=k();i(0,"button",19),o(1,"translate"),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(2),o(3,"translate"),a()}if(n&2){let e=u();g("disabled",e.clicked),x("aria-label",l(1,3,"form.button_close")),t(2),_(" ",l(3,5,"form.button_close")," ")}}function Ve(n,c){if(n&1){let e=k();i(0,"button",20),o(1,"translate"),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(2),o(3,"translate"),a()}n&2&&(x("aria-label",l(1,2,"form.button_close")),t(2),_(" ",l(3,4,"form.button_close")," "))}function Re(n,c){n&1&&(r(0),o(1,"translate")),n&2&&_(" ",l(1,1,"form.button_remove")," ")}function De(n,c){n&1&&m(0,"i",22)}function Pe(n,c){if(n&1){let e=k();i(0,"button",21),b("click",function(){C(e);let d=u();return S(d.onResetCachedAccessoriesClick())}),h(1,Re,2,3)(2,De,1,0,"i",22),a()}if(n&2){let e=u();g("disabled",e.clicked),t(),v(e.clicked?-1:1),t(),v(e.clicked?2:-1)}}var Ee=(()=>{class n{$activeModal=w(N);$api=w(R);$router=w(P);$toastr=w(V);$translate=w(F);clicked=!1;cachedAccessories=[];constructor(){}ngOnInit(){this.loadCachedAccessories()}loadCachedAccessories(){return y(this,null,function*(){try{this.cachedAccessories=yield E(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()}})}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"))}})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,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(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4),h(8,Me,5,3)(9,Ne,16,13),a(),i(10,"div",5)(11,"div",6),h(12,Fe,4,7,"button",7),a(),i(13,"div",8),h(14,Ve,4,6,"button",9),a(),i(15,"div",10),h(16,Pe,3,3,"button",11),a()()()),s&2&&(t(3),p(l(4,8,"reset.accessory_all.title")),t(2),g("disabled",d.clicked),x("aria-label",l(6,10,"form.button_close")),t(3),v(d.cachedAccessories.length===0?8:-1),t(),v(d.cachedAccessories.length>0?9:-1),t(3),v(d.cachedAccessories.length>0?12:-1),t(2),v(d.cachedAccessories.length===0?14:-1),t(2),v(d.cachedAccessories.length>0?16:-1))},dependencies:[J,$],encapsulation:2})}return n})();var He=(n,c)=>({"green-text":n,"grey-text":c}),Le=(n,c)=>({"btn-danger":n,"btn-elegant":c}),Oe=(n,c,e)=>({"fa-broom":n,"fa-undo":c,"fa-spinner fa-pulse":e});function Ue(n,c){n&1&&(i(0,"div",12),m(1,"i",13),a(),i(2,"p",14),r(3),o(4,"translate"),a()),n&2&&(t(3),p(l(4,1,"reset.bridge_accessories.empty")))}function ze(n,c){if(n&1){let e=k();i(0,"li",18)(1,"span"),r(2),m(3,"br"),i(4,"small",19),m(5,"i",20),r(6),o(7,"translate"),i(8,"span",21),r(9),a()()(),i(10,"button",22),o(11,"translate"),b("click",function(){let d=C(e).$implicit,f=u(2);return S(f.toggleList(d._id))}),m(12,"i",23),a()()}if(n&2){let e=c.$implicit,s=u(2);t(2),_(" ",e.name," "),t(3),g("ngClass",I(12,He,e._isPaired,!e._isPaired)),t(),_(" ",l(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),p(e._username),t(),g("disabled",s.clicked)("ngClass",I(15,Le,!s.toDelete.includes(e._id),s.toDelete.includes(e._id))),x("aria-label",l(11,10,"form.button_delete")),t(2),g("ngClass",L(18,Oe,!s.toDelete.includes(e._id),s.toDelete.includes(e._id)&&!s.clicked,s.toDelete.includes(e._id)&&s.clicked))}}function je(n,c){if(n&1&&(i(0,"div",12),m(1,"i",15),a(),i(2,"ul",16)(3,"li"),r(4),o(5,"translate"),a(),i(6,"li"),r(7),o(8,"translate"),a(),i(9,"li"),r(10),o(11,"translate"),a()(),i(12,"ul",17),T(13,ze,13,22,"li",18,A),a()),n&2){let e=u();t(4),p(l(5,3,"reset.bridge_accessories.list_1")),t(3),p(l(8,5,"reset.clear_cache_single.list_3")),t(3),p(l(11,7,"reset.bridge_accessories.list_2")),t(3),M(e.pairings)}}function Ge(n,c){if(n&1){let e=k();i(0,"button",24),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(1),o(2,"translate"),a()}if(n&2){let e=u();g("disabled",e.clicked),t(),_(" ",l(2,2,"form.button_close")," ")}}function We(n,c){if(n&1){let e=k();i(0,"button",25),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(1),o(2,"translate"),a()}n&2&&(t(),_(" ",l(2,1,"form.button_close")," "))}function qe(n,c){if(n&1&&r(0),n&2){let e=u(3);_(" (",e.toDelete.length,") ")}}function Ke(n,c){if(n&1&&(r(0),o(1,"translate"),h(2,qe,1,1)),n&2){let e=u(2);_(" ",l(1,2,"form.button_remove")," "),t(2),v(e.toDelete.length>0?2:-1)}}function Je(n,c){n&1&&m(0,"i",27)}function Qe(n,c){if(n&1){let e=k();i(0,"button",26),b("click",function(){C(e);let d=u();return S(d.cleanBridges())}),h(1,Ke,3,4)(2,Je,1,0,"i",27),a()}if(n&2){let e=u();g("disabled",!e.toDelete.length||e.clicked),t(),v(e.clicked?-1:1),t(),v(e.clicked?2:-1)}}var Be=(()=>{class n{$activeModal=w(N);$api=w(R);$router=w(P);$toastr=w(V);$translate=w(F);clicked=!1;pairings=[];toDelete=[];constructor(){}ngOnInit(){this.loadPairings()}loadPairings(){return y(this,null,function*(){try{this.pairings=(yield E(this.$api.get("/server/pairings"))).filter(e=>e._category==="bridge"&&!e._main).sort((e,s)=>e.name.localeCompare(s.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()}})}toggleList(e){this.toDelete.includes(e)?this.toDelete=this.toDelete.filter(s=>s!==e):this.toDelete.push(e)}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"))}})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,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(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4),h(8,Ue,5,3)(9,je,15,9),a(),i(10,"div",5)(11,"div",6),h(12,Ge,3,4,"button",7),a(),i(13,"div",8),h(14,We,3,3,"button",9),a(),i(15,"div",10),h(16,Qe,3,3,"button",11),a()()()),s&2&&(t(3),p(l(4,8,"reset.bridge_accessories.title")),t(2),g("disabled",d.clicked),x("aria-label",l(6,10,"form.button_close")),t(3),v(d.pairings.length===0?8:-1),t(),v(d.pairings.length>0?9:-1),t(3),v(d.pairings.length>0?12:-1),t(2),v(d.pairings.length===0?14:-1),t(2),v(d.pairings.length>0?16:-1))},dependencies:[O,$],encapsulation:2})}return n})();function Xe(n,c){n&1&&(r(0),o(1,"translate")),n&2&&_(" ",l(1,1,"form.button_reset")," ")}function Ye(n,c){n&1&&m(0,"i",16)}var Ie=(()=>{class n{$activeModal=w(N);$api=w(R);$route=w(P);$toastr=w(V);$translate=w(F);clicked;constructor(){}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"))}})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,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(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4)(8,"div",5),m(9,"i",6),a(),i(10,"ul",7)(11,"li"),r(12),o(13,"translate"),a(),i(14,"li"),r(15),o(16,"translate"),a(),i(17,"li"),r(18),o(19,"translate"),a(),i(20,"li"),r(21),o(22,"translate"),a()(),i(23,"ngb-alert",8)(24,"p",9),r(25),o(26,"translate"),a()()(),i(27,"div",10)(28,"div",11)(29,"button",12),o(30,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),r(31),o(32,"translate"),a()(),m(33,"div",13),i(34,"div",14)(35,"button",15),b("click",function(){return d.onResetHomebridgeAccessoryClick()}),h(36,Xe,2,3)(37,Ye,1,0,"i",16),a()()()()),s&2&&(t(3),p(l(4,15,"reset.bridge_all.title")),t(2),g("disabled",d.clicked),x("aria-label",l(6,17,"form.button_close")),t(7),p(l(13,19,"reset.bridge_all.list_1")),t(3),p(l(16,21,"reset.bridge_all.list_2")),t(3),p(l(19,23,"reset.bridge_all.list_3")),t(3),p(l(22,25,"reset.bridge_all.list_4")),t(2),g("dismissible",!1),t(2),p(l(26,27,"reset.action_is_irreversible")),t(4),g("disabled",d.clicked),x("aria-label",l(30,29,"form.button_close")),t(2),_(" ",l(32,31,"form.button_close")," "),t(4),g("disabled",d.clicked),t(),v(d.clicked?-1:36),t(),v(d.clicked?37:-1))},dependencies:[J,$],encapsulation:2})}return n})();var ee=(n,c)=>({"green-text":n,"grey-text":c}),te=(n,c)=>({"btn-danger":n,"btn-elegant":c}),$e=(n,c,e)=>({"fa-refresh":n,"fa-undo":c,"fa-spinner fa-pulse":e}),Ze=(n,c,e)=>({"fa-trash":n,"fa-undo":c,"fa-spinner fa-pulse":e});function et(n,c){n&1&&(i(0,"div",12),m(1,"i",13),a(),i(2,"p",14),r(3),o(4,"translate"),a()),n&2&&(t(3),p(l(4,1,"reset.bridges.empty")))}function tt(n,c){if(n&1){let e=k();i(0,"li",20)(1,"span"),r(2),m(3,"br"),i(4,"small",21),m(5,"i",22),r(6),o(7,"translate"),i(8,"span",23),r(9),a(),r(10),o(11,"titlecase"),a()(),i(12,"button",24),o(13,"translate"),b("click",function(){let d=C(e).$implicit,f=u(3);return S(f.toggleList(d._id,!1))}),m(14,"i",25),a()()}if(n&2){let e=c.$implicit,s=u(3);t(2),_(" ",e.name," "),t(3),g("ngClass",I(15,ee,e._isPaired,!e._isPaired)),t(),_(" ",l(7,9,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),p(e._username),t(),_(" \xB7 ",e._main?"Homebridge":l(11,11,e._category)," "),t(2),g("disabled",s.clicked)("ngClass",I(18,te,!s.isInList(e._id),s.isInList(e._id))),x("aria-label",l(13,13,"form.button_unpair")),t(2),g("ngClass",L(21,$e,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function it(n,c){if(n&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),r(3),o(4,"translate"),a(),i(5,"p",19),r(6),o(7,"translate"),a()(),T(8,tt,15,25,"li",20,A),a()),n&2){let e=u(2);t(3),p(l(4,2,"reset.bridge_ind.head_non_child")),t(3),p(l(7,4,"reset.bridge_ind.desc_non_child")),t(2),M(e.pairingsNonChild)}}function nt(n,c){if(n&1){let e=k();i(0,"li",20)(1,"span"),r(2),m(3,"br"),i(4,"small",21),m(5,"i",22),r(6),o(7,"translate"),i(8,"span",23),r(9),a()()(),i(10,"button",24),o(11,"translate"),b("click",function(){let d=C(e).$implicit,f=u(3);return S(f.toggleList(d._id,!0))}),m(12,"i",25),a()()}if(n&2){let e=c.$implicit,s=u(3);t(2),_(" ",e.name," "),t(3),g("ngClass",I(12,ee,e._isPaired,!e._isPaired)),t(),_(" ",l(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),p(e._username),t(),g("disabled",s.clicked)("ngClass",I(15,te,!s.isInList(e._id),s.isInList(e._id))),x("aria-label",l(11,10,"form.button_unpair")),t(2),g("ngClass",L(18,$e,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function at(n,c){if(n&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),r(3),o(4,"translate"),a(),i(5,"p",19),r(6),o(7,"translate"),a()(),T(8,nt,13,22,"li",20,A),a()),n&2){let e=u(2);t(3),p(l(4,2,"reset.bridge_ind.head_child_active")),t(3),p(l(7,4,"reset.bridge_ind.desc_child_active")),t(2),M(e.pairingsChildActive)}}function rt(n,c){if(n&1){let e=k();i(0,"li",20)(1,"span"),r(2),m(3,"br"),i(4,"small",21),m(5,"i",22),r(6),o(7,"translate"),i(8,"span",23),r(9),a()()(),i(10,"button",24),o(11,"translate"),b("click",function(){let d=C(e).$implicit,f=u(3);return S(f.toggleList(d._id,!1))}),m(12,"i",25),a()()}if(n&2){let e=c.$implicit,s=u(3);t(2),_(" ",e.name," "),t(3),g("ngClass",I(12,ee,e._isPaired,!e._isPaired)),t(),_(" ",l(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),p(e._username),t(),g("disabled",s.clicked)("ngClass",I(15,te,!s.isInList(e._id),s.isInList(e._id))),x("aria-label",l(11,10,"form.button_unpair")),t(2),g("ngClass",L(18,Ze,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function ot(n,c){if(n&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),r(3),o(4,"translate"),a(),i(5,"p",19),r(6),o(7,"translate"),a()(),T(8,rt,13,22,"li",20,A),a()),n&2){let e=u(2);t(3),p(l(4,2,"reset.bridge_ind.head_child_stale")),t(3),p(l(7,4,"reset.bridge_ind.desc_child_stale")),t(2),M(e.pairingsChildStale)}}function lt(n,c){if(n&1&&(i(0,"div",12),m(1,"i",15),a(),h(2,it,10,6,"ul",16)(3,at,10,6,"ul",16)(4,ot,10,6,"ul",16)),n&2){let e=u();t(2),v(e.pairingsNonChild.length>0?2:-1),t(),v(e.pairingsChildActive.length>0?3:-1),t(),v(e.pairingsChildStale.length>0?4:-1)}}function st(n,c){if(n&1){let e=k();i(0,"button",26),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(1),o(2,"translate"),a()}if(n&2){let e=u();g("disabled",e.clicked),t(),_(" ",l(2,2,"form.button_close")," ")}}function dt(n,c){if(n&1){let e=k();i(0,"button",27),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(1),o(2,"translate"),a()}n&2&&(t(),_(" ",l(2,1,"form.button_close")," "))}function pt(n,c){if(n&1&&r(0),n&2){let e=u(3);_(" (",e.toDelete.length,") ")}}function ct(n,c){if(n&1&&(r(0),o(1,"translate"),h(2,pt,1,1)),n&2){let e=u(2);_(" ",l(1,2,"form.button_reset")," "),t(2),v(e.toDelete.length>0?2:-1)}}function mt(n,c){n&1&&m(0,"i",29)}function _t(n,c){if(n&1){let e=k();i(0,"button",28),b("click",function(){C(e);let d=u();return S(d.removeBridges())}),h(1,ct,3,4)(2,mt,1,0,"i",29),a()}if(n&2){let e=u();g("disabled",!e.toDelete.length||e.clicked),t(),v(e.clicked?-1:1),t(),v(e.clicked?2:-1)}}var Ae=(()=>{class n{$activeModal=w(N);$api=w(R);$router=w(P);$toastr=w(V);$translate=w(F);clicked=!1;pairingsNonChild=[];pairingsChildActive=[];pairingsChildStale=[];toDelete=[];constructor(){}ngOnInit(){this.loadPairings()}loadPairings(){return y(this,null,function*(){try{let e=(yield E(this.$api.get("/server/pairings"))).filter(s=>!s._main).sort((s,d)=>s.name.localeCompare(d.name));this.pairingsChildActive=e.filter(s=>s._category==="bridge"&&!s._couldBeStale),this.pairingsNonChild=e.filter(s=>s._category!=="bridge"),this.pairingsChildStale=e.filter(s=>s._category==="bridge"&&s._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()}})}toggleList(e,s=!1){this.toDelete.some(d=>d.id===e)?this.toDelete=this.toDelete.filter(d=>d.id!==e):this.toDelete.push({id:e,resetPairingInfo:s})}isInList(e){return this.toDelete.some(s=>s.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"))}})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,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(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4),h(8,et,5,3)(9,lt,5,3),a(),i(10,"div",5)(11,"div",6),h(12,st,3,4,"button",7),a(),i(13,"div",8),h(14,dt,3,3,"button",9),a(),i(15,"div",10),h(16,_t,3,3,"button",11),a()()()),s&2&&(t(3),p(l(4,8,"reset.bridge_ind.title")),t(2),g("disabled",d.clicked),x("aria-label",l(6,10,"form.button_close")),t(3),v(d.pairingsChildActive.length===0&&d.pairingsChildStale.length===0&&d.pairingsNonChild.length===0?8:-1),t(),v(d.pairingsChildActive.length>0||d.pairingsChildStale.length>0||d.pairingsNonChild.length>0?9:-1),t(3),v(d.pairingsChildActive.length>0||d.pairingsChildStale.length>0||d.pairingsNonChild.length>0?12:-1),t(2),v(d.pairingsChildActive.length===0&&d.pairingsChildStale.length===0&&d.pairingsNonChild.length===0?14:-1),t(2),v(d.pairingsChildActive.length>0||d.pairingsChildStale.length>0||d.pairingsNonChild.length>0?16:-1))},dependencies:[O,j,$],encapsulation:2})}return n})();function gt(n,c){if(n&1){let e=k();i(0,"li",10)(1,"span")(2,"label",17)(3,"input",18),re("ngModelChange",function(d){let f=C(e).$implicit;return ae(f.selected,d)||(f.selected=d),S(d)}),a(),i(4,"span"),r(5),a(),m(6,"span",19),a()(),i(7,"span",20),r(8),a()()}if(n&2){let e=c.$implicit;t(2),g("for","adapter"+e.iface),t(),g("id","adapter"+e.iface),ne("ngModel",e.selected),t(2),p(e.iface),t(3),p(e.ip4||e.ip6)}}var Te=(()=>{class n{$activeModal=w(N);availableNetworkAdapters=[];bridgeNetworkAdapters=[];constructor(){}submit(){this.$activeModal.close(this.availableNetworkAdapters.filter(e=>e.selected).map(e=>e.iface))}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,selectors:[["ng-component"]],inputs:{availableNetworkAdapters:"availableNetworkAdapters",bridgeNetworkAdapters:"bridgeNetworkAdapters"},decls:35,vars:24,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","flex-row","justify-content-between"],[1,"list-group-item","d-flex","flex-row","flex-wrap","justify-content-between"],[1,"modal-footer","justify-content-between"],[1,"text-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"],[1,"hb-uix-switch","d-inline","pe-3",3,"for"],["type","checkbox",3,"ngModelChange","id","ngModel"],[1,"hb-uix-slider","hb-uix-round"],[1,"font-monospace"]],template:function(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4)(8,"div",5),m(9,"i",6),a(),i(10,"ul",7)(11,"li"),r(12),o(13,"translate"),a()(),i(14,"ul",8)(15,"li",9)(16,"strong"),r(17),o(18,"translate"),a(),i(19,"strong"),r(20),o(21,"translate"),a()(),T(22,gt,9,5,"li",10,A),a()(),i(24,"div",11)(25,"div",12)(26,"button",13),o(27,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),r(28),o(29,"translate"),a()(),m(30,"div",14),i(31,"div",15)(32,"button",16),b("click",function(){return d.submit()}),r(33),o(34,"translate"),a()()()()),s&2&&(t(3),p(l(4,8,"settings.network.title_network_interfaces")),t(2),x("aria-label",l(6,10,"form.button_close")),t(7),p(l(13,12,"settings.network.message_network_interface")),t(5),p(l(18,14,"settings.network.label_interface_name")),t(3),p(l(21,16,"settings.network.label_ip_address")),t(2),M(d.availableNetworkAdapters),t(4),x("aria-label",l(27,18,"form.button_close")),t(2),_(" ",l(29,20,"form.button_close")," "),t(5),_(" ",l(34,22,"form.button_save")," "))},dependencies:[K,G,W,q,$],encapsulation:2})}return n})();var ie=n=>({"is-invalid":n}),vt=n=>({file:n}),bt=n=>({link:n}),xt=n=>({"fa-pulse":n}),ft=(n,c)=>({"badge-danger":n,"badge-info":c});function ht(n,c){n&1&&(i(0,"li",20)(1,"small",21),r(2),o(3,"translate"),a(),i(4,"button",22),o(5,"translate"),r(6),o(7,"translate"),a()()),n&2&&(t(2),p(l(3,3,"settings.changes.saved")),t(2),x("aria-label",l(5,5,"menu.tooltip_restart")),t(2),_(" ",l(7,7,"menu.tooltip_restart")," "))}function Ct(n,c){if(n&1){let e=k();i(0,"ul",5)(1,"li",12)(2,"span"),r(3," Homebridge Name "),a(),i(4,"div",13),m(5,"input",14),o(6,"translate"),a()(),i(7,"li",15)(8,"span",16),r(9),o(10,"translate"),a(),i(11,"button",17),o(12,"translate"),b("click",function(){C(e);let d=u();return S(d.openUiSettings())}),m(13,"i",18),a()(),i(14,"li",15)(15,"span",16),r(16),o(17,"translate"),a(),i(18,"button",17),o(19,"translate"),b("click",function(){C(e);let d=u();return S(d.openBackupModal())}),m(20,"i",18),a()(),i(21,"li",15)(22,"span",16),r(23),o(24,"translate"),a(),i(25,"a",19),o(26,"translate"),m(27,"i",18),a()(),h(28,ht,8,9,"li",20),a()}if(n&2){let e=u();t(5),g("formControl",e.hbNameFormControl)("ngClass",H(24,ie,e.isInvalidHbName)),x("aria-label",l(6,10,"settings.network.port_ui")),t(4),_(" ",l(10,12,"menu.label_settings_advanced")," "),t(2),x("aria-label",l(12,14,"menu.label_settings_advanced")),t(5),_(" ",l(17,16,"backup.title_backup")," "),t(2),x("aria-label",l(19,18,"backup.title_backup")),t(5),_(" ",l(24,20,"menu.tooltip_user_accounts")," "),t(2),x("aria-label",l(26,22,"menu.tooltip_user_accounts")),t(3),v(e.hasChangedHbName&&!e.isInvalidHbName?28:-1)}}function St(n,c){n&1&&(i(0,"li",20)(1,"small",21),r(2),o(3,"translate"),a(),i(4,"button",22),o(5,"translate"),r(6),o(7,"translate"),a()()),n&2&&(t(2),p(l(3,3,"settings.changes.saved")),t(2),x("aria-label",l(5,5,"menu.tooltip_restart")),t(2),_(" ",l(7,7,"menu.tooltip_restart")," "))}function wt(n,c){if(n&1){let e=k();i(0,"ul",6)(1,"li",12),r(2),o(3,"translate"),i(4,"div",23)(5,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("lang",d))}),i(6,"option",25),r(7),o(8,"translate"),a(),i(9,"option",26),r(10,"Bulgarian (bg)"),a(),i(11,"option",27),r(12,"Catalan (ca)"),a(),i(13,"option",28),r(14,"Chinese - Simplified (zh-CN)"),a(),i(15,"option",29),r(16,"Chinese - Traditional (zh-TW)"),a(),i(17,"option",30),r(18,"Czech (cs)"),a(),i(19,"option",31),r(20,"Dutch (nl)"),a(),i(21,"option",32),r(22,"English (en)"),a(),i(23,"option",33),r(24,"Finnish (fi)"),a(),i(25,"option",34),r(26,"French (fr)"),a(),i(27,"option",35),r(28,"German (de)"),a(),i(29,"option",36),r(30,"Hebrew (he)"),a(),i(31,"option",37),r(32,"Hungarian (hu)"),a(),i(33,"option",38),r(34,"Indonesian (id)"),a(),i(35,"option",39),r(36,"Italian (it)"),a(),i(37,"option",40),r(38,"Japanese (ja)"),a(),i(39,"option",41),r(40,"Korean (ko)"),a(),i(41,"option",42),r(42,"Macedonian (mk)"),a(),i(43,"option",43),r(44,"Norwegian (no)"),a(),i(45,"option",44),r(46,"Polish (pl)"),a(),i(47,"option",45),r(48,"Portuguese (Brazil)"),a(),i(49,"option",46),r(50,"Portuguese (Portugal)"),a(),i(51,"option",47),r(52,"Russian (ru)"),a(),i(53,"option",48),r(54,"Slovenian (sl)"),a(),i(55,"option",49),r(56,"Spanish (es)"),a(),i(57,"option",50),r(58,"Swedish (sv)"),a(),i(59,"option",51),r(60,"Thai (th)"),a(),i(61,"option",52),r(62,"Turkish (tr)"),a(),i(63,"option",53),r(64,"Ukrainian (uk)"),a()()()(),i(65,"li",12),r(66),o(67,"translate"),i(68,"div",23)(69,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("theme",d))}),i(70,"option",54),r(71),o(72,"translate"),a(),i(73,"option",55),r(74),o(75,"translate"),a(),i(76,"option",56),r(77),o(78,"translate"),a(),i(79,"option",57),r(80),o(81,"translate"),a(),i(82,"option",58),r(83),o(84,"translate"),a(),i(85,"option",59),r(86),o(87,"translate"),a(),i(88,"option",60),r(89),o(90,"translate"),a(),i(91,"option",61),r(92),o(93,"translate"),a(),i(94,"option",62),r(95),o(96,"translate"),a(),i(97,"option",63),r(98),o(99,"translate"),a(),i(100,"option",64),r(101),o(102,"translate"),a(),i(103,"option",65),r(104),o(105,"translate"),a(),i(106,"option",66),r(107),o(108,"translate"),a()()()(),i(109,"li",12),r(110),o(111,"translate"),i(112,"div",23)(113,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("lightingMode",d))}),i(114,"option",25),r(115),o(116,"translate"),a(),i(117,"option",67),r(118),o(119,"translate"),a(),i(120,"option",68),r(121),o(122,"translate"),a()()()(),i(123,"li",12),r(124),o(125,"translate"),i(126,"div",23)(127,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("menuMode",d))}),i(128,"option",69),r(129),o(130,"translate"),a(),i(131,"option",70),r(132),o(133,"translate"),a()()()(),i(134,"li",12)(135,"span"),r(136),o(137,"translate"),m(138,"br")(139,"small",71),o(140,"translate"),a(),i(141,"div",23)(142,"input",72),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("loginWallpaper",d))}),a()()(),i(143,"li",12),r(144),o(145,"translate"),i(146,"div",23)(147,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("tempUnits",d))}),i(148,"option",73),r(149),o(150,"translate"),a(),i(151,"option",74),r(152),o(153,"translate"),a()()()(),h(154,St,8,9,"li",20),a()}if(n&2){let e=u();t(2),_(" ",l(3,35,"settings.display.lang")," "),t(3),g("ngModel",e.$settings.env.lang),t(2),p(l(8,37,"form.select.auto")),t(59),_(" ",l(67,39,"settings.display.theme")," "),t(3),g("ngModel",e.$settings.theme),t(2),p(l(72,41,"settings.display.orange")),t(3),p(l(75,43,"settings.display.red")),t(3),p(l(78,45,"settings.display.pink")),t(3),p(l(81,47,"settings.display.purple")),t(3),p(l(84,49,"settings.display.deep_purple")),t(3),p(l(87,51,"settings.display.indigo")),t(3),p(l(90,53,"settings.display.blue")),t(3),p(l(93,55,"settings.display.bluegrey")),t(3),p(l(96,57,"settings.display.cyan")),t(3),p(l(99,59,"settings.display.green")),t(3),p(l(102,61,"settings.display.teal")),t(3),p(l(105,63,"settings.display.grey")),t(3),p(l(108,65,"settings.display.brown")),t(3),_(" ",l(111,67,"settings.display.lighting_mode")," "),t(3),g("ngModel",e.$settings.lightingMode),t(2),p(l(116,69,"form.select.auto")),t(3),p(l(119,71,"settings.display.light")),t(3),p(l(122,73,"settings.display.dark")),t(3),_(" ",l(125,75,"settings.display.menu_mode")," "),t(3),g("ngModel",e.$settings.menuMode),t(2),p(l(130,77,"settings.display.menu_default")),t(3),p(l(133,79,"settings.display.menu_freeze")),t(4),_(" ",l(137,81,"settings.display.login_wallpaper"),""),t(3),g("innerHTML",Y(140,83,"settings.display.login_wallpaper_desc",H(92,vt,e.file)),X),t(3),g("ngModel",e.$settings.loginWallpaper),t(2),_(" ",l(145,86,"settings.display.temp_units")," "),t(3),g("ngModel",e.$settings.env.temperatureUnits),t(2),p(l(150,88,"settings.display.temp_units.c")),t(3),p(l(153,90,"settings.display.temp_units.f")),t(2),v(e.hasChangedLoginWallpaper?154:-1)}}function kt(n,c){if(n&1&&(i(0,"li",15)(1,"span"),r(2),o(3,"translate"),i(4,"code"),r(5,"-D"),a(),m(6,"br"),i(7,"small",76),r(8),o(9,"translate"),a()(),m(10,"input",77),o(11,"translate"),m(12,"label",78),a()),n&2){let e=u(3);t(2),_(" ",l(3,3,"settings.startup.debug")," "),t(6),_(" ",l(9,5,e.isHbV2?"settings.startup.debug_desc_v2":"settings.startup.debug_desc_v1")," "),t(2),x("aria-label",l(11,7,"settings.startup.debug"))}}function yt(n,c){n&1&&(i(0,"li",15)(1,"span"),r(2),o(3,"translate"),i(4,"code"),r(5,"-I"),a(),m(6,"br"),i(7,"small",76),r(8),o(9,"translate"),a()(),m(10,"input",79),o(11,"translate"),m(12,"label",80),a()),n&2&&(t(2),_(" ",l(3,3,"settings.startup.insecure")," "),t(6),p(l(9,5,"settings.startup.insecure_desc")),t(2),x("aria-label",l(11,7,"settings.startup.insecure")))}function Et(n,c){n&1&&(i(0,"li",15)(1,"span"),r(2),o(3,"translate"),i(4,"code"),r(5,"-K"),a(),m(6,"br"),i(7,"small",76),r(8),o(9,"translate"),a()(),m(10,"input",81),o(11,"translate"),m(12,"label",82),a()),n&2&&(t(2),_(" ",l(3,3,"settings.startup.keep_accessories")," "),t(6),p(l(9,5,"settings.startup.keep_accessories_desc")),t(2),x("aria-label",l(11,7,"settings.startup.keep_accessories")))}function Bt(n,c){if(n&1&&(i(0,"li",12)(1,"span")(2,"span",83),r(3,"DEBUG"),a(),m(4,"br")(5,"small",71),o(6,"translate"),a(),i(7,"div",23),m(8,"input",84),a()()),n&2){let e=u(3);t(5),g("innerHTML",Y(6,1,"settings.service.debug_tooltip",H(4,bt,e.linkDebug)),X)}}function It(n,c){n&1&&(i(0,"li",12)(1,"span")(2,"span",83),r(3,"NODE_OPTIONS"),a(),m(4,"br"),i(5,"small",76),r(6),o(7,"translate"),a()(),i(8,"div",23),m(9,"input",85),a()()),n&2&&(t(6),p(l(7,1,"settings.service.node_tooltip")))}function $t(n,c){n&1&&(i(0,"li",15)(1,"span"),r(2),o(3,"translate"),m(4,"br"),i(5,"small",76),r(6),o(7,"translate"),a()(),i(8,"a",86),o(9,"translate"),m(10,"i",18),a()()),n&2&&(t(2),_(" ",l(3,3,"menu.docker.startup_script"),""),t(4),p(l(7,5,"platform.docker.script_help")),t(2),x("aria-label",l(9,7,"menu.docker.startup_script")))}function At(n,c){n&1&&(i(0,"li",20)(1,"small",21),r(2),o(3,"translate"),a(),i(4,"button",22),o(5,"translate"),r(6),o(7,"translate"),a()()),n&2&&(t(2),p(l(3,3,"settings.changes.saved")),t(2),x("aria-label",l(5,5,"menu.tooltip_restart")),t(2),_(" ",l(7,7,"menu.tooltip_restart")," "))}function Tt(n,c){if(n&1&&(i(0,"ul",75),h(1,kt,13,9,"li",15)(2,yt,13,9,"li",15)(3,Et,13,9,"li",15)(4,Bt,9,6,"li",12)(5,It,10,3,"li",12)(6,$t,11,9,"li",15)(7,At,8,9,"li",20),a()),n&2){let e=u(2);t(),v(e.$settings.env.serviceMode?1:-1),t(),v(e.$settings.env.serviceMode?2:-1),t(),v(e.$settings.env.serviceMode?3:-1),t(),v(e.$settings.env.serviceMode?4:-1),t(),v(e.$settings.env.serviceMode?5:-1),t(),v(e.$settings.env.runningInDocker?6:-1),t(),v(e.hasChangedService?7:-1)}}function Mt(n,c){if(n&1){let e=k();i(0,"form",7)(1,"div",2),b("click",function(){C(e);let d=u();return S(d.toggleSection("startup"))}),i(2,"h5",3),m(3,"i",4),r(4),o(5,"translate"),a()(),h(6,Tt,8,7,"ul",75),a()}if(n&2){let e=u();g("formGroup",e.serviceForm),t(),x("aria-expanded",e.showFields.startup?"true":"false")("aria-controls","fieldsStartup"),t(2),g("ngClass",e.showFields.startup?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(5,6,"settings.title_startup_options")," "),t(2),v(e.showFields.startup?6:-1)}}function Nt(n,c){n&1&&m(0,"i",98)}function Ft(n,c){if(n&1&&(i(0,"span",88),h(1,Nt,1,0,"i",98),r(2),i(3,"span",99),r(4),o(5,"translate"),a()()),n&2){let e=c.$implicit;g("ngClass",I(6,ft,e.missing,!e.missing)),t(),v(e.missing?1:-1),t(),_(" ",e.iface,": "),t(2),p(e.missing?l(5,4,"settings.mdns_advertiser_not_connected"):e.ip4||e.ip6)}}function Vt(n,c){n&1&&(i(0,"option",92),r(1),o(2,"translate"),a()),n&2&&(t(),_("Avahi (",l(2,1,"settings.mdns_advertiser_rec"),")"))}function Rt(n,c){n&1&&(i(0,"option",95),r(1),o(2,"translate"),a()),n&2&&(t(),_("systemd-resolved (",l(2,1,"settings.mdns_advertiser_exp"),")"))}function Dt(n,c){n&1&&(i(0,"li",20)(1,"small",21),r(2),o(3,"translate"),a(),i(4,"button",22),o(5,"translate"),r(6),o(7,"translate"),a()()),n&2&&(t(2),p(l(3,3,"settings.changes.saved")),t(2),x("aria-label",l(5,5,"menu.tooltip_restart")),t(2),_(" ",l(7,7,"menu.tooltip_restart")," "))}function Pt(n,c){if(n&1){let e=k();i(0,"ul",8)(1,"li",15)(2,"span",16),r(3),o(4,"translate"),m(5,"br"),i(6,"div",87),r(7),o(8,"translate"),a(),T(9,Ft,6,9,"span",88,A),a(),i(11,"button",89),o(12,"translate"),b("click",function(){C(e);let d=u();return S(d.selectNetworkInterfaces())}),m(13,"i",90),a()(),i(14,"li",12)(15,"span"),r(16),o(17,"translate"),m(18,"br"),i(19,"small",76),r(20),o(21,"translate"),a()(),i(22,"div",23)(23,"select",91),o(24,"translate"),h(25,Vt,3,3,"option",92),i(26,"option",93),r(27),o(28,"translate"),a(),i(29,"option",94),r(30,"Bonjour HAP"),a(),h(31,Rt,3,3,"option",95),a()()(),i(32,"li",12)(33,"span"),r(34),o(35,"translate"),m(36,"br"),i(37,"small",76),r(38),o(39,"translate"),a()(),i(40,"div",23),m(41,"input",96),o(42,"translate"),a()(),i(43,"li",12)(44,"span"),r(45),o(46,"translate"),m(47,"br"),i(48,"small",76),r(49),o(50,"translate"),a()(),i(51,"div",23),m(52,"input",97),o(53,"translate"),a()(),h(54,Dt,8,9,"li",20),a()}if(n&2){let e=u();t(3),_(" ",l(4,22,"settings.network.title_network_interfaces"),""),t(4),p(l(8,24,"settings.network.message_network_interface")),t(2),M(e.bridgeNetworkAdapters),t(2),g("disabled",!e.availableNetworkAdapters.length),x("aria-label",l(12,26,"settings.network.title_network_interfaces")),t(2),g("ngClass",H(48,xt,!e.availableNetworkAdapters.length)),t(3),_(" ",l(17,28,"settings.mdns_advertiser"),""),t(4),p(l(21,30,"settings.mdns_advertiser_help")),t(3),g("formControl",e.legacyMdnsFormControl),x("aria-label",l(24,32,"settings.mdns_advertiser")),t(2),v(e.showAvahiMdnsOption?25:-1),t(2),_(" Ciao ",e.showAvahiMdnsOption?"":"("+l(28,34,"settings.mdns_advertiser_rec")+")"," "),t(4),v(e.showResolvedMdnsOption?31:-1),t(3),_(" ",l(35,36,"settings.network.port_hb"),""),t(4),p(l(39,38,"settings.network.port_hb_desc")),t(3),g("formControl",e.hbPortFormControl)("ngClass",H(50,ie,e.isInvalidHbPort)),x("aria-label",l(42,40,"settings.network.port_ui")),t(4),_(" ",l(46,42,"settings.network.port_ui"),""),t(4),p(l(50,44,"settings.network.port_ui_desc")),t(3),g("ngClass",H(52,ie,e.isInvalidHbUiPort)),x("aria-label",l(53,46,"settings.network.port_ui")),t(2),v(e.hasChangedHbPort&&!e.isInvalidHbPort||e.hasChangedUiSettings||e.hasChangedMdns||e.hasChangedBridgeNetworkAdapters?54:-1)}}function Ht(n,c){n&1&&(i(0,"p",9),r(1),o(2,"translate"),a()),n&2&&(t(),p(l(2,1,"settings.cache.desc")))}function Lt(n,c){if(n&1){let e=k();i(0,"ul",100)(1,"li",15)(2,"span",16),r(3),o(4,"translate"),m(5,"br"),i(6,"small",76),r(7),o(8,"translate"),a()(),i(9,"button",17),o(10,"translate"),b("click",function(){C(e);let d=u(2);return S(d.removeSingleCachedAccessories())}),m(11,"i",18),a()(),i(12,"li",15)(13,"span",16),r(14),o(15,"translate"),m(16,"br"),i(17,"small",76),r(18),o(19,"translate"),a()(),i(20,"button",17),o(21,"translate"),b("click",function(){C(e);let d=u(2);return S(d.removeBridgeAccessories())}),m(22,"i",18),a()(),i(23,"li",15)(24,"span",16),r(25),o(26,"translate"),m(27,"br"),i(28,"small",76),r(29),o(30,"translate"),a()(),i(31,"button",17),o(32,"translate"),b("click",function(){C(e);let d=u(2);return S(d.removeAllCachedAccessories())}),m(33,"i",18),a()()()}n&2&&(t(3),_(" ",l(4,9,"reset.accessory_ind.title"),""),t(4),p(l(8,11,"reset.accessory_ind.desc")),t(2),x("aria-label",l(10,13,"reset.accessory_ind.title")),t(5),_(" ",l(15,15,"reset.bridge_accessories.title"),""),t(4),p(l(19,17,"reset.bridge_accessories.desc")),t(2),x("aria-label",l(21,19,"reset.accessory_all.title")),t(5),_(" ",l(26,21,"reset.accessory_all.title"),""),t(4),p(l(30,23,"reset.accessory_all.desc")),t(2),x("aria-label",l(32,25,"reset.accessory_all.title")))}function Ot(n,c){if(n&1){let e=k();i(0,"div",1)(1,"div",2),b("click",function(){C(e);let d=u();return S(d.toggleSection("cache"))}),i(2,"h5",3),m(3,"i",4),r(4),o(5,"translate"),a()(),h(6,Ht,3,3,"p",9)(7,Lt,34,27,"ul",100),a()}if(n&2){let e=u();t(),x("aria-expanded",e.showFields.cache?"true":"false")("aria-controls","fieldsCache"),t(2),g("ngClass",e.showFields.cache?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(5,6,"settings.cache.title")," "),t(2),v(e.showFields.cache?6:-1),t(),v(e.showFields.cache?7:-1)}}function Ut(n,c){n&1&&(i(0,"p",9),r(1),o(2,"translate"),a()),n&2&&(t(),p(l(2,1,"reset.bridges.desc")))}function zt(n,c){if(n&1){let e=k();i(0,"li",15)(1,"span",16),r(2),o(3,"translate"),m(4,"br"),i(5,"small",76),r(6),o(7,"translate"),a()(),i(8,"button",17),o(9,"translate"),b("click",function(){C(e);let d=u(2);return S(d.unpairAccessory())}),m(10,"i",18),a()()}n&2&&(t(2),_(" ",l(3,3,"reset.bridge_ind.title"),""),t(4),p(l(7,5,"reset.bridge_ind.desc")),t(2),x("aria-label",l(9,7,"reset.bridge_ind.title")))}function jt(n,c){if(n&1){let e=k();i(0,"ul",10),h(1,zt,11,9,"li",15),i(2,"li",15)(3,"span",16),r(4),o(5,"translate"),o(6,"titlecase"),m(7,"br"),i(8,"small",76),r(9),o(10,"translate"),a()(),i(11,"button",17),o(12,"translate"),b("click",function(){C(e);let d=u();return S(d.resetHomebridgeState())}),m(13,"i",18),a()()()}if(n&2){let e=u();t(),v(e.$settings.env.serviceMode?1:-1),t(3),_(" ",l(6,6,l(5,4,"reset.bridge_all.title")),""),t(5),p(l(10,8,"reset.bridge_all.desc")),t(2),x("aria-label",l(12,10,"reset.bridge_all.title"))}}var rn=(()=>{class n{$api=w(R);$modal=w(he);$plugin=w(ye);$settings=w(Se);$toastr=w(V);$translate=w(F);originalServiceForm={HOMEBRIDGE_DEBUG:!1,HOMEBRIDGE_KEEP_ORPHANS:!1,HOMEBRIDGE_INSECURE:!0,ENV_DEBUG:"",ENV_NODE_OPTIONS:""};originalUiSettingsForm={port:0};originalLoginWallpaper="";originalMdnsSetting="";originalBridgeNetworkAdapters=[];originalHbPort=0;originalHbName="";hasChangedService=!1;hasChangedUiSettings=!1;hasChangedMdns=!1;hasChangedBridgeNetworkAdapters=!1;hasChangedHbPort=!1;hasChangedHbName=!1;hasChangedLoginWallpaper=!1;isInvalidHbPort=!1;isInvalidHbName=!1;isInvalidHbUiPort=!1;serviceForm=new Z({HOMEBRIDGE_DEBUG:new D(!1),HOMEBRIDGE_KEEP_ORPHANS:new D(!1),HOMEBRIDGE_INSECURE:new D(!0),ENV_DEBUG:new D(""),ENV_NODE_OPTIONS:new D("")});uiSettingsForm=new Z({port:new D(0)});loginWallpaper="";legacyMdnsFormControl=new se(!1);showAvahiMdnsOption=!1;showResolvedMdnsOption=!1;availableNetworkAdapters=[];bridgeNetworkAdapters=[];hbPortFormControl=new D(0);hbNameFormControl=new D("");isHbV2=!1;showFields={general:!0,display:!0,startup:!0,network:!0,reset:!0,cache:!0};file='<span class="font-monospace">ui-wallpaper.jpg</span>';linkDebug='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Debug-Common-Values" target="_blank"><i class="fa fa-fw fa-external-link-alt primary-text"></i></a>';constructor(){}ngOnInit(){this.isHbV2=this.$settings.env.homebridgeVersion.startsWith("2"),this.hbNameFormControl.patchValue(this.$settings.env.homebridgeInstanceName),this.hbNameFormControl.valueChanges.subscribe(e=>this.setHomebridgeName(e)),this.originalHbName=this.$settings.env.homebridgeInstanceName,this.initUiSettingsForm(),this.initDisplaySettingsForm(),this.initNetworkingOptions(),this.$settings.env.serviceMode&&this.initServiceModeForm()}initUiSettingsForm(){this.originalUiSettingsForm={port:this.$settings.env.port},this.uiSettingsForm.patchValue({port:this.$settings.env.port}),this.uiSettingsForm.valueChanges.pipe(Q(500)).subscribe(e=>{let s=!1;Object.keys(e).forEach(d=>{this.originalUiSettingsForm[d]!==e[d]&&(this.saveUiSettingChange(d,e[d]),s=!0)}),this.hasChangedUiSettings=s})}initServiceModeForm(){this.$api.get("/platform-tools/hb-service/homebridge-startup-settings").subscribe({next:e=>{Object.keys(e).forEach(s=>{this.originalServiceForm[s]=e[s]}),this.serviceForm.patchValue(e),this.serviceForm.valueChanges.pipe(Q(500)).subscribe(this.saveServiceModeSettings.bind(this))},error:e=>{console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}initDisplaySettingsForm(){this.originalLoginWallpaper=this.$settings.loginWallpaper,this.loginWallpaper=this.$settings.loginWallpaper}saveUiSettingChange(e,s){switch(e){case"lang":this.$settings.setLang(s);break;case"lightingMode":this.$settings.setLightingMode(s,"user");break;case"menuMode":this.$settings.setMenuMode(s),window.location.reload();break;case"theme":this.$settings.setTheme(s);break;case"tempUnits":this.$settings.setEnvItem("temperatureUnits",s);break;case"loginWallpaper":this.$settings.setEnvItem("loginWallpaper",s),this.hasChangedLoginWallpaper=s!==this.originalLoginWallpaper;break;case"port":if(!s||typeof s!="number"||s<1025||s>65533||Number.isInteger(s)===!1||s===this.hbPortFormControl.value){this.isInvalidHbUiPort=!0;return}this.$settings.setEnvItem("port",s),this.isInvalidHbUiPort=!1;break}E(this.$api.put("/config-editor/ui",{key:e,value:s})).catch(d=>{console.error(d),this.$toastr.error(d.message,this.$translate.instant("toast.title_error"))})}openUiSettings(){this.$plugin.settings({name:"homebridge-config-ui-x",displayName:"Homebridge UI",settingsSchema:!0,links:{}})}openBackupModal(){this.$modal.open(we,{size:"lg",backdrop:"static"})}saveServiceModeSettings(e=this.serviceForm.value){this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",e).subscribe({next:()=>{this.hasChangedService=JSON.stringify(e)!==JSON.stringify(this.originalServiceForm)},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})}resetHomebridgeState(){this.$modal.open(Ie,{size:"lg",backdrop:"static"})}unpairAccessory(){this.$modal.open(Ae,{size:"lg",backdrop:"static"})}removeAllCachedAccessories(){this.$modal.open(Ee,{size:"lg",backdrop:"static"})}removeSingleCachedAccessories(){this.$modal.open(ke,{size:"lg",backdrop:"static"})}removeBridgeAccessories(){this.$modal.open(Be,{size:"lg",backdrop:"static"})}initNetworkingOptions(){return y(this,null,function*(){try{this.getNetworkSettings(),(this.$settings.env.runningInLinux||this.$settings.env.runningInDocker||this.$settings.env.runningInSynologyPackage||this.$settings.env.runningInPackageMode)&&(this.showAvahiMdnsOption=!0,this.showResolvedMdnsOption=!0)}catch{}})}getNetworkSettings(){return y(this,null,function*(){return Promise.all([E(this.$api.get("/server/network-interfaces/system")),E(this.$api.get("/server/network-interfaces/bridge")),E(this.$api.get("/server/mdns-advertiser")),E(this.$api.get("/server/port"))]).then(([e,s,d,f])=>{this.availableNetworkAdapters=e,this.buildBridgeNetworkAdapterList(s),this.legacyMdnsFormControl.patchValue(d.advertiser),this.originalMdnsSetting=d.advertiser,this.originalBridgeNetworkAdapters=this.bridgeNetworkAdapters.map(U=>U.iface),this.legacyMdnsFormControl.valueChanges.subscribe(U=>{this.setHomebridgeMdnsSetting(U)}),this.hbPortFormControl.patchValue(f.port),this.hbPortFormControl.valueChanges.subscribe(U=>this.setHomebridgePort(U)),this.originalHbPort=f.port})})}setHomebridgeMdnsSetting(e){return y(this,null,function*(){this.$api.put("/server/mdns-advertiser",{advertiser:e}).subscribe({next:()=>{this.hasChangedMdns=e!==this.originalMdnsSetting},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})})}setNetworkInterfaces(e){return y(this,null,function*(){this.$api.put("/server/network-interfaces/bridge",{adapters:e}).subscribe({next:()=>{this.hasChangedBridgeNetworkAdapters=this.originalBridgeNetworkAdapters.join(",")!==e.join(",")},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})})}setHomebridgeName(e){return y(this,null,function*(){if(!e||!/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(e)){this.isInvalidHbName=!0;return}this.$api.put("/server/name",{name:e}).subscribe({next:()=>{this.hasChangedHbName=this.originalHbName!==e,this.$settings.setEnvItem("homebridgeInstanceName",e),this.isInvalidHbName=!1},error:()=>{this.isInvalidHbName=!0}})})}setHomebridgePort(e){return y(this,null,function*(){if(e===this.uiSettingsForm.get("port").value){this.isInvalidHbPort=!0;return}this.$api.put("/server/port",{port:e}).subscribe({next:()=>{this.hasChangedHbPort=this.originalHbPort!==e,this.isInvalidHbPort=!1},error:()=>{this.isInvalidHbPort=!0}})})}buildBridgeNetworkAdapterList(e){if(!e.length){this.bridgeNetworkAdapters=[];return}this.bridgeNetworkAdapters=e.map(s=>{let d=this.availableNetworkAdapters.find(f=>f.iface===s);return d?(d.selected=!0,d.missing=!1,d):{iface:s,missing:!0}})}selectNetworkInterfaces(){let e=this.$modal.open(Te,{size:"lg",backdrop:"static"});e.componentInstance.availableNetworkAdapters=this.availableNetworkAdapters,e.componentInstance.bridgeNetworkAdapters=this.bridgeNetworkAdapters,e.result.then(s=>{this.buildBridgeNetworkAdapterList(s),this.setNetworkInterfaces(s)}).catch(()=>{})}toggleSection(e){this.showFields[e]=!this.showFields[e]}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,selectors:[["ng-component"]],decls:35,vars:35,consts:[[1,"primary-text","m-0"],[1,"my-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa","fa-fw",3,"ngClass"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsDisplay",1,"list-group","list-group-box","mt-2","mx-0"],["novalidate","",1,"my-4",3,"formGroup"],["id","fieldsNetwork",1,"list-group","list-group-box","mt-2","mx-0"],[1,"small","grey-text","mb-2","mx-0"],["id","fieldsReset",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],[1,"list-group-item","d-block","d-md-flex","justify-content-between","align-items-center"],[1,"my-3","my-md-0","pl-0","pl-md-5","w-auto"],["type","text",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],[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,"list-group-item","d-flex","flex-column","align-items-center"],[1,"grey-text","my-2"],["routerLink","/restart",1,"btn","btn-primary","waves-effect","my-2"],[1,"my-3","my-md-0","ps-0","ps-md-5","w-auto"],[1,"custom-select","resp-select",3,"ngModelChange","ngModel"],["value","auto"],["value","bg"],["value","ca"],["value","zh-CN"],["value","zh-TW"],["value","cs"],["value","nl"],["value","en"],["value","fi"],["value","fr"],["value","de"],["value","he"],["value","hu"],["value","id"],["value","it"],["value","ja"],["value","ko"],["value","mk"],["value","no"],["value","pl"],["value","pt-BR"],["value","pt"],["value","ru"],["value","sl"],["value","es"],["value","sv"],["value","th"],["value","tr"],["value","uk"],["value","orange"],["value","red"],["value","pink"],["value","purple"],["value","deep-purple"],["value","indigo"],["value","blue"],["value","blue-grey"],["value","cyan"],["value","green"],["value","teal"],["value","grey"],["value","brown"],["value","light"],["value","dark"],["value","default"],["value","freeze"],[1,"grey-text","pe-2",3,"innerHTML"],["name","search_wallpaper","autocomplete","off","type","text","placeholder","/path-to/image.png",1,"form-control","custom-input","resp-input",3,"ngModelChange","ngModel"],["value","c"],["value","f"],["id","fieldsStartup",1,"list-group","list-group-box","mb-4","mx-0"],[1,"grey-text","pe-2"],["type","checkbox","id","homebridgeDebugMode","formControlName","HOMEBRIDGE_DEBUG",1,"rendux-input"],["for","homebridgeDebugMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeInsecureMode","formControlName","HOMEBRIDGE_INSECURE",1,"rendux-input"],["for","homebridgeInsecureMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeKeepOrphans","formControlName","HOMEBRIDGE_KEEP_ORPHANS",1,"rendux-input"],["for","homebridgeKeepOrphans",1,"rendux-label","ms-3",2,"min-width","50px"],[1,"font-monospace"],["formControlName","ENV_DEBUG","type","text","placeholder","HAP-NodeJS:Advertiser,HAP-NodeJS:Service",1,"form-control","custom-input","resp-input"],["formControlName","ENV_NODE_OPTIONS","type","text","placeholder","--max-old-space-size=512 --max-http-header-size=8192",1,"form-control","custom-input","resp-input"],["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"],[1,"fas","fa-fw","fa-arrow-right",3,"ngClass"],[1,"custom-select","resp-select",3,"formControl"],["value","avahi"],["value","ciao"],["value","bonjour-hap"],["value","resolved"],["type","number","min","1025","max","65533",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],["type","number","min","1025","max","65533","placeholder","8581","formControlName","port",1,"form-control","custom-input","resp-input",3,"ngClass"],[1,"fas","fa-fw","fa-exclamation-triangle"],[1,"fw-normal"],["id","fieldsCache",1,"list-group","list-group-box","mb-4","mx-0"]],template:function(s,d){s&1&&(i(0,"h3",0),r(1),o(2,"translate"),a(),i(3,"div",1)(4,"div",2),b("click",function(){return d.toggleSection("general")}),i(5,"h5",3),m(6,"i",4),r(7),o(8,"translate"),a()(),h(9,Ct,29,26,"ul",5),a(),i(10,"div",1)(11,"div",2),b("click",function(){return d.toggleSection("display")}),i(12,"h5",3),m(13,"i",4),r(14),o(15,"translate"),a()(),h(16,wt,155,94,"ul",6),a(),h(17,Mt,7,8,"form",7),i(18,"form",7)(19,"div",2),b("click",function(){return d.toggleSection("network")}),i(20,"h5",3),m(21,"i",4),r(22),o(23,"translate"),a()(),h(24,Pt,55,54,"ul",8),a(),h(25,Ot,8,8,"div",1),i(26,"div",1)(27,"div",2),b("click",function(){return d.toggleSection("reset")}),i(28,"h5",3),m(29,"i",4),r(30),o(31,"translate"),a()(),h(32,Ut,3,3,"p",9)(33,jt,14,12,"ul",10),a(),m(34,"div",11)),s&2&&(t(),p(l(2,25,"menu.settings.title")),t(3),x("aria-expanded",d.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),t(2),g("ngClass",d.showFields.general?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(8,27,"settings.general.title_general")," "),t(2),v(d.showFields.general?9:-1),t(2),x("aria-expanded",d.showFields.display?"true":"false")("aria-controls","fieldsDisplay"),t(2),g("ngClass",d.showFields.display?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(15,29,"settings.general.title_display")," "),t(2),v(d.showFields.display?16:-1),t(),v(d.$settings.env.serviceMode||d.$settings.env.runningInDocker?17:-1),t(),g("formGroup",d.uiSettingsForm),t(),x("aria-expanded",d.showFields.network?"true":"false")("aria-controls","fieldsNetwork"),t(2),g("ngClass",d.showFields.network?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(23,31,"settings.network.title_network")," "),t(2),v(d.showFields.network?24:-1),t(),v(d.$settings.env.serviceMode?25:-1),t(2),x("aria-expanded",d.showFields.reset?"true":"false")("aria-controls","fieldsReset"),t(2),g("ngClass",d.showFields.reset?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(31,33,"reset.bridges.title")," "),t(2),v(d.showFields.reset?32:-1),t(),v(d.showFields.reset?33:-1))},dependencies:[O,Ce,K,de,ge,ve,oe,pe,G,ue,W,le,xe,be,q,fe,ce,me,_e,j,$],encapsulation:2})}return n})();export{Ee as a,Ie as b,Te as c,rn as d};
1
+ import{a as we}from"./chunk-7KVKZWHM.js";import{a as ke}from"./chunk-H6Y3GP7S.js";import{v as ye}from"./chunk-CUTDOURK.js";import{g as J,m as N,n as he}from"./chunk-ACZLPZJM.js";import{b as G,c as oe,e as W,f as le,g as Z,j as D,k as se,l as q,m as de,n as pe,o as ce,p as me,q as _e,r as ue,s as ge,t as ve,u as be,v as xe,y as K,z as fe}from"./chunk-VNJJI7TG.js";import{d as P,e as Ce}from"./chunk-4T2QSCYW.js";import{b as Se}from"./chunk-OCLCXMFW.js";import{h as V,k as R}from"./chunk-HOOQ4UQP.js";import{a as F,b as $}from"./chunk-5FC5GQ62.js";import{$c as O,Ac as L,Cc as o,Dc as l,Ec as Y,Jb as x,Kb as g,M as Q,Pb as v,Rb as A,Sb as T,Tb as M,Ub as i,Vb as a,Wb as m,_b as k,bc as b,cb as X,cc as u,ed as j,gb as t,h as y,ma as w,mc as r,nc as p,oc as _,tb as B,tc as ne,ua as C,uc as ae,va as S,vc as re,w as E,yc as H,zb as h,zc as I}from"./chunk-YSEOPOHR.js";function Me(n,c){n&1&&(i(0,"div",12),m(1,"i",13),a(),i(2,"p",14),r(3),o(4,"translate"),a()),n&2&&(t(3),p(l(4,1,"reset.no_accessories")))}function Ne(n,c){n&1&&(i(0,"div",12),m(1,"i",15),a(),i(2,"ul",16)(3,"li"),r(4),o(5,"translate"),a(),i(6,"li"),r(7),o(8,"translate"),a(),i(9,"li"),r(10),o(11,"translate"),a()(),i(12,"ngb-alert",17)(13,"p",18),r(14),o(15,"translate"),a()()),n&2&&(t(4),p(l(5,5,"reset.accessory_all.list_1")),t(3),p(l(8,7,"reset.accessory_all.list_2")),t(3),p(l(11,9,"reset.accessory_all.list_3")),t(2),g("dismissible",!1),t(2),p(l(15,11,"reset.action_is_irreversible")))}function Fe(n,c){if(n&1){let e=k();i(0,"button",19),o(1,"translate"),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(2),o(3,"translate"),a()}if(n&2){let e=u();g("disabled",e.clicked),x("aria-label",l(1,3,"form.button_close")),t(2),_(" ",l(3,5,"form.button_close")," ")}}function Ve(n,c){if(n&1){let e=k();i(0,"button",20),o(1,"translate"),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(2),o(3,"translate"),a()}n&2&&(x("aria-label",l(1,2,"form.button_close")),t(2),_(" ",l(3,4,"form.button_close")," "))}function Re(n,c){n&1&&(r(0),o(1,"translate")),n&2&&_(" ",l(1,1,"form.button_remove")," ")}function De(n,c){n&1&&m(0,"i",22)}function Pe(n,c){if(n&1){let e=k();i(0,"button",21),b("click",function(){C(e);let d=u();return S(d.onResetCachedAccessoriesClick())}),h(1,Re,2,3)(2,De,1,0,"i",22),a()}if(n&2){let e=u();g("disabled",e.clicked),t(),v(e.clicked?-1:1),t(),v(e.clicked?2:-1)}}var Ee=(()=>{class n{$activeModal=w(N);$api=w(R);$router=w(P);$toastr=w(V);$translate=w(F);clicked=!1;cachedAccessories=[];constructor(){}ngOnInit(){this.loadCachedAccessories()}loadCachedAccessories(){return y(this,null,function*(){try{this.cachedAccessories=yield E(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()}})}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"))}})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,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(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4),h(8,Me,5,3)(9,Ne,16,13),a(),i(10,"div",5)(11,"div",6),h(12,Fe,4,7,"button",7),a(),i(13,"div",8),h(14,Ve,4,6,"button",9),a(),i(15,"div",10),h(16,Pe,3,3,"button",11),a()()()),s&2&&(t(3),p(l(4,8,"reset.accessory_all.title")),t(2),g("disabled",d.clicked),x("aria-label",l(6,10,"form.button_close")),t(3),v(d.cachedAccessories.length===0?8:-1),t(),v(d.cachedAccessories.length>0?9:-1),t(3),v(d.cachedAccessories.length>0?12:-1),t(2),v(d.cachedAccessories.length===0?14:-1),t(2),v(d.cachedAccessories.length>0?16:-1))},dependencies:[J,$],encapsulation:2})}return n})();var He=(n,c)=>({"green-text":n,"grey-text":c}),Le=(n,c)=>({"btn-danger":n,"btn-elegant":c}),Oe=(n,c,e)=>({"fa-broom":n,"fa-undo":c,"fa-spinner fa-pulse":e});function Ue(n,c){n&1&&(i(0,"div",12),m(1,"i",13),a(),i(2,"p",14),r(3),o(4,"translate"),a()),n&2&&(t(3),p(l(4,1,"reset.bridge_accessories.empty")))}function ze(n,c){if(n&1){let e=k();i(0,"li",18)(1,"span"),r(2),m(3,"br"),i(4,"small",19),m(5,"i",20),r(6),o(7,"translate"),i(8,"span",21),r(9),a()()(),i(10,"button",22),o(11,"translate"),b("click",function(){let d=C(e).$implicit,f=u(2);return S(f.toggleList(d._id))}),m(12,"i",23),a()()}if(n&2){let e=c.$implicit,s=u(2);t(2),_(" ",e.name," "),t(3),g("ngClass",I(12,He,e._isPaired,!e._isPaired)),t(),_(" ",l(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),p(e._username),t(),g("disabled",s.clicked)("ngClass",I(15,Le,!s.toDelete.includes(e._id),s.toDelete.includes(e._id))),x("aria-label",l(11,10,"form.button_delete")),t(2),g("ngClass",L(18,Oe,!s.toDelete.includes(e._id),s.toDelete.includes(e._id)&&!s.clicked,s.toDelete.includes(e._id)&&s.clicked))}}function je(n,c){if(n&1&&(i(0,"div",12),m(1,"i",15),a(),i(2,"ul",16)(3,"li"),r(4),o(5,"translate"),a(),i(6,"li"),r(7),o(8,"translate"),a(),i(9,"li"),r(10),o(11,"translate"),a()(),i(12,"ul",17),T(13,ze,13,22,"li",18,A),a()),n&2){let e=u();t(4),p(l(5,3,"reset.bridge_accessories.list_1")),t(3),p(l(8,5,"reset.clear_cache_single.list_3")),t(3),p(l(11,7,"reset.bridge_accessories.list_2")),t(3),M(e.pairings)}}function Ge(n,c){if(n&1){let e=k();i(0,"button",24),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(1),o(2,"translate"),a()}if(n&2){let e=u();g("disabled",e.clicked),t(),_(" ",l(2,2,"form.button_close")," ")}}function We(n,c){if(n&1){let e=k();i(0,"button",25),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(1),o(2,"translate"),a()}n&2&&(t(),_(" ",l(2,1,"form.button_close")," "))}function qe(n,c){if(n&1&&r(0),n&2){let e=u(3);_(" (",e.toDelete.length,") ")}}function Ke(n,c){if(n&1&&(r(0),o(1,"translate"),h(2,qe,1,1)),n&2){let e=u(2);_(" ",l(1,2,"form.button_remove")," "),t(2),v(e.toDelete.length>0?2:-1)}}function Je(n,c){n&1&&m(0,"i",27)}function Qe(n,c){if(n&1){let e=k();i(0,"button",26),b("click",function(){C(e);let d=u();return S(d.cleanBridges())}),h(1,Ke,3,4)(2,Je,1,0,"i",27),a()}if(n&2){let e=u();g("disabled",!e.toDelete.length||e.clicked),t(),v(e.clicked?-1:1),t(),v(e.clicked?2:-1)}}var Be=(()=>{class n{$activeModal=w(N);$api=w(R);$router=w(P);$toastr=w(V);$translate=w(F);clicked=!1;pairings=[];toDelete=[];constructor(){}ngOnInit(){this.loadPairings()}loadPairings(){return y(this,null,function*(){try{this.pairings=(yield E(this.$api.get("/server/pairings"))).filter(e=>e._category==="bridge"&&!e._main).sort((e,s)=>e.name.localeCompare(s.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()}})}toggleList(e){this.toDelete.includes(e)?this.toDelete=this.toDelete.filter(s=>s!==e):this.toDelete.push(e)}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"))}})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,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(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4),h(8,Ue,5,3)(9,je,15,9),a(),i(10,"div",5)(11,"div",6),h(12,Ge,3,4,"button",7),a(),i(13,"div",8),h(14,We,3,3,"button",9),a(),i(15,"div",10),h(16,Qe,3,3,"button",11),a()()()),s&2&&(t(3),p(l(4,8,"reset.bridge_accessories.title")),t(2),g("disabled",d.clicked),x("aria-label",l(6,10,"form.button_close")),t(3),v(d.pairings.length===0?8:-1),t(),v(d.pairings.length>0?9:-1),t(3),v(d.pairings.length>0?12:-1),t(2),v(d.pairings.length===0?14:-1),t(2),v(d.pairings.length>0?16:-1))},dependencies:[O,$],encapsulation:2})}return n})();function Xe(n,c){n&1&&(r(0),o(1,"translate")),n&2&&_(" ",l(1,1,"form.button_reset")," ")}function Ye(n,c){n&1&&m(0,"i",16)}var Ie=(()=>{class n{$activeModal=w(N);$api=w(R);$route=w(P);$toastr=w(V);$translate=w(F);clicked;constructor(){}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"))}})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,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(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4)(8,"div",5),m(9,"i",6),a(),i(10,"ul",7)(11,"li"),r(12),o(13,"translate"),a(),i(14,"li"),r(15),o(16,"translate"),a(),i(17,"li"),r(18),o(19,"translate"),a(),i(20,"li"),r(21),o(22,"translate"),a()(),i(23,"ngb-alert",8)(24,"p",9),r(25),o(26,"translate"),a()()(),i(27,"div",10)(28,"div",11)(29,"button",12),o(30,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),r(31),o(32,"translate"),a()(),m(33,"div",13),i(34,"div",14)(35,"button",15),b("click",function(){return d.onResetHomebridgeAccessoryClick()}),h(36,Xe,2,3)(37,Ye,1,0,"i",16),a()()()()),s&2&&(t(3),p(l(4,15,"reset.bridge_all.title")),t(2),g("disabled",d.clicked),x("aria-label",l(6,17,"form.button_close")),t(7),p(l(13,19,"reset.bridge_all.list_1")),t(3),p(l(16,21,"reset.bridge_all.list_2")),t(3),p(l(19,23,"reset.bridge_all.list_3")),t(3),p(l(22,25,"reset.bridge_all.list_4")),t(2),g("dismissible",!1),t(2),p(l(26,27,"reset.action_is_irreversible")),t(4),g("disabled",d.clicked),x("aria-label",l(30,29,"form.button_close")),t(2),_(" ",l(32,31,"form.button_close")," "),t(4),g("disabled",d.clicked),t(),v(d.clicked?-1:36),t(),v(d.clicked?37:-1))},dependencies:[J,$],encapsulation:2})}return n})();var ee=(n,c)=>({"green-text":n,"grey-text":c}),te=(n,c)=>({"btn-danger":n,"btn-elegant":c}),$e=(n,c,e)=>({"fa-refresh":n,"fa-undo":c,"fa-spinner fa-pulse":e}),Ze=(n,c,e)=>({"fa-trash":n,"fa-undo":c,"fa-spinner fa-pulse":e});function et(n,c){n&1&&(i(0,"div",12),m(1,"i",13),a(),i(2,"p",14),r(3),o(4,"translate"),a()),n&2&&(t(3),p(l(4,1,"reset.bridges.empty")))}function tt(n,c){if(n&1){let e=k();i(0,"li",20)(1,"span"),r(2),m(3,"br"),i(4,"small",21),m(5,"i",22),r(6),o(7,"translate"),i(8,"span",23),r(9),a(),r(10),o(11,"titlecase"),a()(),i(12,"button",24),o(13,"translate"),b("click",function(){let d=C(e).$implicit,f=u(3);return S(f.toggleList(d._id,!1))}),m(14,"i",25),a()()}if(n&2){let e=c.$implicit,s=u(3);t(2),_(" ",e.name," "),t(3),g("ngClass",I(15,ee,e._isPaired,!e._isPaired)),t(),_(" ",l(7,9,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),p(e._username),t(),_(" \xB7 ",e._main?"Homebridge":l(11,11,e._category)," "),t(2),g("disabled",s.clicked)("ngClass",I(18,te,!s.isInList(e._id),s.isInList(e._id))),x("aria-label",l(13,13,"form.button_unpair")),t(2),g("ngClass",L(21,$e,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function it(n,c){if(n&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),r(3),o(4,"translate"),a(),i(5,"p",19),r(6),o(7,"translate"),a()(),T(8,tt,15,25,"li",20,A),a()),n&2){let e=u(2);t(3),p(l(4,2,"reset.bridge_ind.head_non_child")),t(3),p(l(7,4,"reset.bridge_ind.desc_non_child")),t(2),M(e.pairingsNonChild)}}function nt(n,c){if(n&1){let e=k();i(0,"li",20)(1,"span"),r(2),m(3,"br"),i(4,"small",21),m(5,"i",22),r(6),o(7,"translate"),i(8,"span",23),r(9),a()()(),i(10,"button",24),o(11,"translate"),b("click",function(){let d=C(e).$implicit,f=u(3);return S(f.toggleList(d._id,!0))}),m(12,"i",25),a()()}if(n&2){let e=c.$implicit,s=u(3);t(2),_(" ",e.name," "),t(3),g("ngClass",I(12,ee,e._isPaired,!e._isPaired)),t(),_(" ",l(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),p(e._username),t(),g("disabled",s.clicked)("ngClass",I(15,te,!s.isInList(e._id),s.isInList(e._id))),x("aria-label",l(11,10,"form.button_unpair")),t(2),g("ngClass",L(18,$e,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function at(n,c){if(n&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),r(3),o(4,"translate"),a(),i(5,"p",19),r(6),o(7,"translate"),a()(),T(8,nt,13,22,"li",20,A),a()),n&2){let e=u(2);t(3),p(l(4,2,"reset.bridge_ind.head_child_active")),t(3),p(l(7,4,"reset.bridge_ind.desc_child_active")),t(2),M(e.pairingsChildActive)}}function rt(n,c){if(n&1){let e=k();i(0,"li",20)(1,"span"),r(2),m(3,"br"),i(4,"small",21),m(5,"i",22),r(6),o(7,"translate"),i(8,"span",23),r(9),a()()(),i(10,"button",24),o(11,"translate"),b("click",function(){let d=C(e).$implicit,f=u(3);return S(f.toggleList(d._id,!1))}),m(12,"i",25),a()()}if(n&2){let e=c.$implicit,s=u(3);t(2),_(" ",e.name," "),t(3),g("ngClass",I(12,ee,e._isPaired,!e._isPaired)),t(),_(" ",l(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),p(e._username),t(),g("disabled",s.clicked)("ngClass",I(15,te,!s.isInList(e._id),s.isInList(e._id))),x("aria-label",l(11,10,"form.button_unpair")),t(2),g("ngClass",L(18,Ze,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function ot(n,c){if(n&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),r(3),o(4,"translate"),a(),i(5,"p",19),r(6),o(7,"translate"),a()(),T(8,rt,13,22,"li",20,A),a()),n&2){let e=u(2);t(3),p(l(4,2,"reset.bridge_ind.head_child_stale")),t(3),p(l(7,4,"reset.bridge_ind.desc_child_stale")),t(2),M(e.pairingsChildStale)}}function lt(n,c){if(n&1&&(i(0,"div",12),m(1,"i",15),a(),h(2,it,10,6,"ul",16)(3,at,10,6,"ul",16)(4,ot,10,6,"ul",16)),n&2){let e=u();t(2),v(e.pairingsNonChild.length>0?2:-1),t(),v(e.pairingsChildActive.length>0?3:-1),t(),v(e.pairingsChildStale.length>0?4:-1)}}function st(n,c){if(n&1){let e=k();i(0,"button",26),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(1),o(2,"translate"),a()}if(n&2){let e=u();g("disabled",e.clicked),t(),_(" ",l(2,2,"form.button_close")," ")}}function dt(n,c){if(n&1){let e=k();i(0,"button",27),b("click",function(){C(e);let d=u();return S(d.$activeModal.dismiss("Dismiss"))}),r(1),o(2,"translate"),a()}n&2&&(t(),_(" ",l(2,1,"form.button_close")," "))}function pt(n,c){if(n&1&&r(0),n&2){let e=u(3);_(" (",e.toDelete.length,") ")}}function ct(n,c){if(n&1&&(r(0),o(1,"translate"),h(2,pt,1,1)),n&2){let e=u(2);_(" ",l(1,2,"form.button_reset")," "),t(2),v(e.toDelete.length>0?2:-1)}}function mt(n,c){n&1&&m(0,"i",29)}function _t(n,c){if(n&1){let e=k();i(0,"button",28),b("click",function(){C(e);let d=u();return S(d.removeBridges())}),h(1,ct,3,4)(2,mt,1,0,"i",29),a()}if(n&2){let e=u();g("disabled",!e.toDelete.length||e.clicked),t(),v(e.clicked?-1:1),t(),v(e.clicked?2:-1)}}var Ae=(()=>{class n{$activeModal=w(N);$api=w(R);$router=w(P);$toastr=w(V);$translate=w(F);clicked=!1;pairingsNonChild=[];pairingsChildActive=[];pairingsChildStale=[];toDelete=[];constructor(){}ngOnInit(){this.loadPairings()}loadPairings(){return y(this,null,function*(){try{let e=(yield E(this.$api.get("/server/pairings"))).filter(s=>!s._main).sort((s,d)=>s.name.localeCompare(d.name));this.pairingsChildActive=e.filter(s=>s._category==="bridge"&&!s._couldBeStale),this.pairingsNonChild=e.filter(s=>s._category!=="bridge"),this.pairingsChildStale=e.filter(s=>s._category==="bridge"&&s._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()}})}toggleList(e,s=!1){this.toDelete.some(d=>d.id===e)?this.toDelete=this.toDelete.filter(d=>d.id!==e):this.toDelete.push({id:e,resetPairingInfo:s})}isInList(e){return this.toDelete.some(s=>s.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"))}})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,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(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4),h(8,et,5,3)(9,lt,5,3),a(),i(10,"div",5)(11,"div",6),h(12,st,3,4,"button",7),a(),i(13,"div",8),h(14,dt,3,3,"button",9),a(),i(15,"div",10),h(16,_t,3,3,"button",11),a()()()),s&2&&(t(3),p(l(4,8,"reset.bridge_ind.title")),t(2),g("disabled",d.clicked),x("aria-label",l(6,10,"form.button_close")),t(3),v(d.pairingsChildActive.length===0&&d.pairingsChildStale.length===0&&d.pairingsNonChild.length===0?8:-1),t(),v(d.pairingsChildActive.length>0||d.pairingsChildStale.length>0||d.pairingsNonChild.length>0?9:-1),t(3),v(d.pairingsChildActive.length>0||d.pairingsChildStale.length>0||d.pairingsNonChild.length>0?12:-1),t(2),v(d.pairingsChildActive.length===0&&d.pairingsChildStale.length===0&&d.pairingsNonChild.length===0?14:-1),t(2),v(d.pairingsChildActive.length>0||d.pairingsChildStale.length>0||d.pairingsNonChild.length>0?16:-1))},dependencies:[O,j,$],encapsulation:2})}return n})();function gt(n,c){if(n&1){let e=k();i(0,"li",10)(1,"span")(2,"label",17)(3,"input",18),re("ngModelChange",function(d){let f=C(e).$implicit;return ae(f.selected,d)||(f.selected=d),S(d)}),a(),i(4,"span"),r(5),a(),m(6,"span",19),a()(),i(7,"span",20),r(8),a()()}if(n&2){let e=c.$implicit;t(2),g("for","adapter"+e.iface),t(),g("id","adapter"+e.iface),ne("ngModel",e.selected),t(2),p(e.iface),t(3),p(e.ip4||e.ip6)}}var Te=(()=>{class n{$activeModal=w(N);availableNetworkAdapters=[];bridgeNetworkAdapters=[];constructor(){}submit(){this.$activeModal.close(this.availableNetworkAdapters.filter(e=>e.selected).map(e=>e.iface))}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,selectors:[["ng-component"]],inputs:{availableNetworkAdapters:"availableNetworkAdapters",bridgeNetworkAdapters:"bridgeNetworkAdapters"},decls:35,vars:24,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","flex-row","justify-content-between"],[1,"list-group-item","d-flex","flex-row","flex-wrap","justify-content-between"],[1,"modal-footer","justify-content-between"],[1,"text-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"],[1,"hb-uix-switch","d-inline","pe-3",3,"for"],["type","checkbox",3,"ngModelChange","id","ngModel"],[1,"hb-uix-slider","hb-uix-round"],[1,"font-monospace"]],template:function(s,d){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),r(3),o(4,"translate"),a(),i(5,"button",3),o(6,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),a()(),i(7,"div",4)(8,"div",5),m(9,"i",6),a(),i(10,"ul",7)(11,"li"),r(12),o(13,"translate"),a()(),i(14,"ul",8)(15,"li",9)(16,"strong"),r(17),o(18,"translate"),a(),i(19,"strong"),r(20),o(21,"translate"),a()(),T(22,gt,9,5,"li",10,A),a()(),i(24,"div",11)(25,"div",12)(26,"button",13),o(27,"translate"),b("click",function(){return d.$activeModal.dismiss("Dismiss")}),r(28),o(29,"translate"),a()(),m(30,"div",14),i(31,"div",15)(32,"button",16),b("click",function(){return d.submit()}),r(33),o(34,"translate"),a()()()()),s&2&&(t(3),p(l(4,8,"settings.network.title_network_interfaces")),t(2),x("aria-label",l(6,10,"form.button_close")),t(7),p(l(13,12,"settings.network.message_network_interface")),t(5),p(l(18,14,"settings.network.label_interface_name")),t(3),p(l(21,16,"settings.network.label_ip_address")),t(2),M(d.availableNetworkAdapters),t(4),x("aria-label",l(27,18,"form.button_close")),t(2),_(" ",l(29,20,"form.button_close")," "),t(5),_(" ",l(34,22,"form.button_save")," "))},dependencies:[K,G,W,q,$],encapsulation:2})}return n})();var ie=n=>({"is-invalid":n}),vt=n=>({file:n}),bt=n=>({link:n}),xt=n=>({"fa-pulse":n}),ft=(n,c)=>({"badge-danger":n,"badge-info":c});function ht(n,c){n&1&&(i(0,"li",20)(1,"small",21),r(2),o(3,"translate"),a(),i(4,"button",22),o(5,"translate"),r(6),o(7,"translate"),a()()),n&2&&(t(2),p(l(3,3,"settings.changes.saved")),t(2),x("aria-label",l(5,5,"menu.tooltip_restart")),t(2),_(" ",l(7,7,"menu.tooltip_restart")," "))}function Ct(n,c){if(n&1){let e=k();i(0,"ul",5)(1,"li",12)(2,"span"),r(3," Homebridge Name "),a(),i(4,"div",13),m(5,"input",14),o(6,"translate"),a()(),i(7,"li",15)(8,"span",16),r(9),o(10,"translate"),a(),i(11,"button",17),o(12,"translate"),b("click",function(){C(e);let d=u();return S(d.openUiSettings())}),m(13,"i",18),a()(),i(14,"li",15)(15,"span",16),r(16),o(17,"translate"),a(),i(18,"button",17),o(19,"translate"),b("click",function(){C(e);let d=u();return S(d.openBackupModal())}),m(20,"i",18),a()(),i(21,"li",15)(22,"span",16),r(23),o(24,"translate"),a(),i(25,"a",19),o(26,"translate"),m(27,"i",18),a()(),h(28,ht,8,9,"li",20),a()}if(n&2){let e=u();t(5),g("formControl",e.hbNameFormControl)("ngClass",H(24,ie,e.isInvalidHbName)),x("aria-label",l(6,10,"settings.network.port_ui")),t(4),_(" ",l(10,12,"menu.label_settings_advanced")," "),t(2),x("aria-label",l(12,14,"menu.label_settings_advanced")),t(5),_(" ",l(17,16,"backup.title_backup")," "),t(2),x("aria-label",l(19,18,"backup.title_backup")),t(5),_(" ",l(24,20,"menu.tooltip_user_accounts")," "),t(2),x("aria-label",l(26,22,"menu.tooltip_user_accounts")),t(3),v(e.hasChangedHbName&&!e.isInvalidHbName?28:-1)}}function St(n,c){n&1&&(i(0,"li",20)(1,"small",21),r(2),o(3,"translate"),a(),i(4,"button",22),o(5,"translate"),r(6),o(7,"translate"),a()()),n&2&&(t(2),p(l(3,3,"settings.changes.saved")),t(2),x("aria-label",l(5,5,"menu.tooltip_restart")),t(2),_(" ",l(7,7,"menu.tooltip_restart")," "))}function wt(n,c){if(n&1){let e=k();i(0,"ul",6)(1,"li",12),r(2),o(3,"translate"),i(4,"div",23)(5,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("lang",d))}),i(6,"option",25),r(7),o(8,"translate"),a(),i(9,"option",26),r(10,"Bulgarian (bg)"),a(),i(11,"option",27),r(12,"Catalan (ca)"),a(),i(13,"option",28),r(14,"Chinese - Simplified (zh-CN)"),a(),i(15,"option",29),r(16,"Chinese - Traditional (zh-TW)"),a(),i(17,"option",30),r(18,"Czech (cs)"),a(),i(19,"option",31),r(20,"Dutch (nl)"),a(),i(21,"option",32),r(22,"English (en)"),a(),i(23,"option",33),r(24,"Finnish (fi)"),a(),i(25,"option",34),r(26,"French (fr)"),a(),i(27,"option",35),r(28,"German (de)"),a(),i(29,"option",36),r(30,"Hebrew (he)"),a(),i(31,"option",37),r(32,"Hungarian (hu)"),a(),i(33,"option",38),r(34,"Indonesian (id)"),a(),i(35,"option",39),r(36,"Italian (it)"),a(),i(37,"option",40),r(38,"Japanese (ja)"),a(),i(39,"option",41),r(40,"Korean (ko)"),a(),i(41,"option",42),r(42,"Macedonian (mk)"),a(),i(43,"option",43),r(44,"Norwegian (no)"),a(),i(45,"option",44),r(46,"Polish (pl)"),a(),i(47,"option",45),r(48,"Portuguese (Brazil)"),a(),i(49,"option",46),r(50,"Portuguese (Portugal)"),a(),i(51,"option",47),r(52,"Russian (ru)"),a(),i(53,"option",48),r(54,"Slovenian (sl)"),a(),i(55,"option",49),r(56,"Spanish (es)"),a(),i(57,"option",50),r(58,"Swedish (sv)"),a(),i(59,"option",51),r(60,"Thai (th)"),a(),i(61,"option",52),r(62,"Turkish (tr)"),a(),i(63,"option",53),r(64,"Ukrainian (uk)"),a()()()(),i(65,"li",12),r(66),o(67,"translate"),i(68,"div",23)(69,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("theme",d))}),i(70,"option",54),r(71),o(72,"translate"),a(),i(73,"option",55),r(74),o(75,"translate"),a(),i(76,"option",56),r(77),o(78,"translate"),a(),i(79,"option",57),r(80),o(81,"translate"),a(),i(82,"option",58),r(83),o(84,"translate"),a(),i(85,"option",59),r(86),o(87,"translate"),a(),i(88,"option",60),r(89),o(90,"translate"),a(),i(91,"option",61),r(92),o(93,"translate"),a(),i(94,"option",62),r(95),o(96,"translate"),a(),i(97,"option",63),r(98),o(99,"translate"),a(),i(100,"option",64),r(101),o(102,"translate"),a(),i(103,"option",65),r(104),o(105,"translate"),a(),i(106,"option",66),r(107),o(108,"translate"),a()()()(),i(109,"li",12),r(110),o(111,"translate"),i(112,"div",23)(113,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("lightingMode",d))}),i(114,"option",25),r(115),o(116,"translate"),a(),i(117,"option",67),r(118),o(119,"translate"),a(),i(120,"option",68),r(121),o(122,"translate"),a()()()(),i(123,"li",12),r(124),o(125,"translate"),i(126,"div",23)(127,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("menuMode",d))}),i(128,"option",69),r(129),o(130,"translate"),a(),i(131,"option",70),r(132),o(133,"translate"),a()()()(),i(134,"li",12)(135,"span"),r(136),o(137,"translate"),m(138,"br")(139,"small",71),o(140,"translate"),a(),i(141,"div",23)(142,"input",72),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("loginWallpaper",d))}),a()()(),i(143,"li",12),r(144),o(145,"translate"),i(146,"div",23)(147,"select",24),b("ngModelChange",function(d){C(e);let f=u();return S(f.saveUiSettingChange("tempUnits",d))}),i(148,"option",73),r(149),o(150,"translate"),a(),i(151,"option",74),r(152),o(153,"translate"),a()()()(),h(154,St,8,9,"li",20),a()}if(n&2){let e=u();t(2),_(" ",l(3,35,"settings.display.lang")," "),t(3),g("ngModel",e.$settings.env.lang),t(2),p(l(8,37,"form.select.auto")),t(59),_(" ",l(67,39,"settings.display.theme")," "),t(3),g("ngModel",e.$settings.theme),t(2),p(l(72,41,"settings.display.orange")),t(3),p(l(75,43,"settings.display.red")),t(3),p(l(78,45,"settings.display.pink")),t(3),p(l(81,47,"settings.display.purple")),t(3),p(l(84,49,"settings.display.deep_purple")),t(3),p(l(87,51,"settings.display.indigo")),t(3),p(l(90,53,"settings.display.blue")),t(3),p(l(93,55,"settings.display.bluegrey")),t(3),p(l(96,57,"settings.display.cyan")),t(3),p(l(99,59,"settings.display.green")),t(3),p(l(102,61,"settings.display.teal")),t(3),p(l(105,63,"settings.display.grey")),t(3),p(l(108,65,"settings.display.brown")),t(3),_(" ",l(111,67,"settings.display.lighting_mode")," "),t(3),g("ngModel",e.$settings.lightingMode),t(2),p(l(116,69,"form.select.auto")),t(3),p(l(119,71,"settings.display.light")),t(3),p(l(122,73,"settings.display.dark")),t(3),_(" ",l(125,75,"settings.display.menu_mode")," "),t(3),g("ngModel",e.$settings.menuMode),t(2),p(l(130,77,"settings.display.menu_default")),t(3),p(l(133,79,"settings.display.menu_freeze")),t(4),_(" ",l(137,81,"settings.display.login_wallpaper"),""),t(3),g("innerHTML",Y(140,83,"settings.display.login_wallpaper_desc",H(92,vt,e.file)),X),t(3),g("ngModel",e.$settings.loginWallpaper),t(2),_(" ",l(145,86,"settings.display.temp_units")," "),t(3),g("ngModel",e.$settings.env.temperatureUnits),t(2),p(l(150,88,"settings.display.temp_units.c")),t(3),p(l(153,90,"settings.display.temp_units.f")),t(2),v(e.hasChangedLoginWallpaper?154:-1)}}function kt(n,c){if(n&1&&(i(0,"li",15)(1,"span"),r(2),o(3,"translate"),i(4,"code"),r(5,"-D"),a(),m(6,"br"),i(7,"small",76),r(8),o(9,"translate"),a()(),m(10,"input",77),o(11,"translate"),m(12,"label",78),a()),n&2){let e=u(3);t(2),_(" ",l(3,3,"settings.startup.debug")," "),t(6),_(" ",l(9,5,e.isHbV2?"settings.startup.debug_desc_v2":"settings.startup.debug_desc_v1")," "),t(2),x("aria-label",l(11,7,"settings.startup.debug"))}}function yt(n,c){n&1&&(i(0,"li",15)(1,"span"),r(2),o(3,"translate"),i(4,"code"),r(5,"-I"),a(),m(6,"br"),i(7,"small",76),r(8),o(9,"translate"),a()(),m(10,"input",79),o(11,"translate"),m(12,"label",80),a()),n&2&&(t(2),_(" ",l(3,3,"settings.startup.insecure")," "),t(6),p(l(9,5,"settings.startup.insecure_desc")),t(2),x("aria-label",l(11,7,"settings.startup.insecure")))}function Et(n,c){n&1&&(i(0,"li",15)(1,"span"),r(2),o(3,"translate"),i(4,"code"),r(5,"-K"),a(),m(6,"br"),i(7,"small",76),r(8),o(9,"translate"),a()(),m(10,"input",81),o(11,"translate"),m(12,"label",82),a()),n&2&&(t(2),_(" ",l(3,3,"settings.startup.keep_accessories")," "),t(6),p(l(9,5,"settings.startup.keep_accessories_desc")),t(2),x("aria-label",l(11,7,"settings.startup.keep_accessories")))}function Bt(n,c){if(n&1&&(i(0,"li",12)(1,"span")(2,"span",83),r(3,"DEBUG"),a(),m(4,"br")(5,"small",71),o(6,"translate"),a(),i(7,"div",23),m(8,"input",84),a()()),n&2){let e=u(3);t(5),g("innerHTML",Y(6,1,"settings.service.debug_tooltip",H(4,bt,e.linkDebug)),X)}}function It(n,c){n&1&&(i(0,"li",12)(1,"span")(2,"span",83),r(3,"NODE_OPTIONS"),a(),m(4,"br"),i(5,"small",76),r(6),o(7,"translate"),a()(),i(8,"div",23),m(9,"input",85),a()()),n&2&&(t(6),p(l(7,1,"settings.service.node_tooltip")))}function $t(n,c){n&1&&(i(0,"li",15)(1,"span"),r(2),o(3,"translate"),m(4,"br"),i(5,"small",76),r(6),o(7,"translate"),a()(),i(8,"a",86),o(9,"translate"),m(10,"i",18),a()()),n&2&&(t(2),_(" ",l(3,3,"menu.docker.startup_script"),""),t(4),p(l(7,5,"platform.docker.script_help")),t(2),x("aria-label",l(9,7,"menu.docker.startup_script")))}function At(n,c){n&1&&(i(0,"li",20)(1,"small",21),r(2),o(3,"translate"),a(),i(4,"button",22),o(5,"translate"),r(6),o(7,"translate"),a()()),n&2&&(t(2),p(l(3,3,"settings.changes.saved")),t(2),x("aria-label",l(5,5,"menu.tooltip_restart")),t(2),_(" ",l(7,7,"menu.tooltip_restart")," "))}function Tt(n,c){if(n&1&&(i(0,"ul",75),h(1,kt,13,9,"li",15)(2,yt,13,9,"li",15)(3,Et,13,9,"li",15)(4,Bt,9,6,"li",12)(5,It,10,3,"li",12)(6,$t,11,9,"li",15)(7,At,8,9,"li",20),a()),n&2){let e=u(2);t(),v(e.$settings.env.serviceMode?1:-1),t(),v(e.$settings.env.serviceMode?2:-1),t(),v(e.$settings.env.serviceMode?3:-1),t(),v(e.$settings.env.serviceMode?4:-1),t(),v(e.$settings.env.serviceMode?5:-1),t(),v(e.$settings.env.runningInDocker?6:-1),t(),v(e.hasChangedService?7:-1)}}function Mt(n,c){if(n&1){let e=k();i(0,"form",7)(1,"div",2),b("click",function(){C(e);let d=u();return S(d.toggleSection("startup"))}),i(2,"h5",3),m(3,"i",4),r(4),o(5,"translate"),a()(),h(6,Tt,8,7,"ul",75),a()}if(n&2){let e=u();g("formGroup",e.serviceForm),t(),x("aria-expanded",e.showFields.startup?"true":"false")("aria-controls","fieldsStartup"),t(2),g("ngClass",e.showFields.startup?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(5,6,"settings.title_startup_options")," "),t(2),v(e.showFields.startup?6:-1)}}function Nt(n,c){n&1&&m(0,"i",98)}function Ft(n,c){if(n&1&&(i(0,"span",88),h(1,Nt,1,0,"i",98),r(2),i(3,"span",99),r(4),o(5,"translate"),a()()),n&2){let e=c.$implicit;g("ngClass",I(6,ft,e.missing,!e.missing)),t(),v(e.missing?1:-1),t(),_(" ",e.iface,": "),t(2),p(e.missing?l(5,4,"settings.mdns_advertiser_not_connected"):e.ip4||e.ip6)}}function Vt(n,c){n&1&&(i(0,"option",92),r(1),o(2,"translate"),a()),n&2&&(t(),_("Avahi (",l(2,1,"settings.mdns_advertiser_rec"),")"))}function Rt(n,c){n&1&&(i(0,"option",95),r(1),o(2,"translate"),a()),n&2&&(t(),_("systemd-resolved (",l(2,1,"settings.mdns_advertiser_exp"),")"))}function Dt(n,c){n&1&&(i(0,"li",20)(1,"small",21),r(2),o(3,"translate"),a(),i(4,"button",22),o(5,"translate"),r(6),o(7,"translate"),a()()),n&2&&(t(2),p(l(3,3,"settings.changes.saved")),t(2),x("aria-label",l(5,5,"menu.tooltip_restart")),t(2),_(" ",l(7,7,"menu.tooltip_restart")," "))}function Pt(n,c){if(n&1){let e=k();i(0,"ul",8)(1,"li",15)(2,"span",16),r(3),o(4,"translate"),m(5,"br"),i(6,"div",87),r(7),o(8,"translate"),a(),T(9,Ft,6,9,"span",88,A),a(),i(11,"button",89),o(12,"translate"),b("click",function(){C(e);let d=u();return S(d.selectNetworkInterfaces())}),m(13,"i",90),a()(),i(14,"li",12)(15,"span"),r(16),o(17,"translate"),m(18,"br"),i(19,"small",76),r(20),o(21,"translate"),a()(),i(22,"div",23)(23,"select",91),o(24,"translate"),h(25,Vt,3,3,"option",92),i(26,"option",93),r(27),o(28,"translate"),a(),i(29,"option",94),r(30,"Bonjour HAP"),a(),h(31,Rt,3,3,"option",95),a()()(),i(32,"li",12)(33,"span"),r(34),o(35,"translate"),m(36,"br"),i(37,"small",76),r(38),o(39,"translate"),a()(),i(40,"div",23),m(41,"input",96),o(42,"translate"),a()(),i(43,"li",12)(44,"span"),r(45),o(46,"translate"),m(47,"br"),i(48,"small",76),r(49),o(50,"translate"),a()(),i(51,"div",23),m(52,"input",97),o(53,"translate"),a()(),h(54,Dt,8,9,"li",20),a()}if(n&2){let e=u();t(3),_(" ",l(4,22,"settings.network.title_network_interfaces"),""),t(4),p(l(8,24,"settings.network.message_network_interface")),t(2),M(e.bridgeNetworkAdapters),t(2),g("disabled",!e.availableNetworkAdapters.length),x("aria-label",l(12,26,"settings.network.title_network_interfaces")),t(2),g("ngClass",H(48,xt,!e.availableNetworkAdapters.length)),t(3),_(" ",l(17,28,"settings.mdns_advertiser"),""),t(4),p(l(21,30,"settings.mdns_advertiser_help")),t(3),g("formControl",e.legacyMdnsFormControl),x("aria-label",l(24,32,"settings.mdns_advertiser")),t(2),v(e.showAvahiMdnsOption?25:-1),t(2),_(" Ciao ",e.showAvahiMdnsOption?"":"("+l(28,34,"settings.mdns_advertiser_rec")+")"," "),t(4),v(e.showResolvedMdnsOption?31:-1),t(3),_(" ",l(35,36,"settings.network.port_hb"),""),t(4),p(l(39,38,"settings.network.port_hb_desc")),t(3),g("formControl",e.hbPortFormControl)("ngClass",H(50,ie,e.isInvalidHbPort)),x("aria-label",l(42,40,"settings.network.port_ui")),t(4),_(" ",l(46,42,"settings.network.port_ui"),""),t(4),p(l(50,44,"settings.network.port_ui_desc")),t(3),g("ngClass",H(52,ie,e.isInvalidHbUiPort)),x("aria-label",l(53,46,"settings.network.port_ui")),t(2),v(e.hasChangedHbPort&&!e.isInvalidHbPort||e.hasChangedUiSettings||e.hasChangedMdns||e.hasChangedBridgeNetworkAdapters?54:-1)}}function Ht(n,c){n&1&&(i(0,"p",9),r(1),o(2,"translate"),a()),n&2&&(t(),p(l(2,1,"settings.cache.desc")))}function Lt(n,c){if(n&1){let e=k();i(0,"ul",100)(1,"li",15)(2,"span",16),r(3),o(4,"translate"),m(5,"br"),i(6,"small",76),r(7),o(8,"translate"),a()(),i(9,"button",17),o(10,"translate"),b("click",function(){C(e);let d=u(2);return S(d.removeSingleCachedAccessories())}),m(11,"i",18),a()(),i(12,"li",15)(13,"span",16),r(14),o(15,"translate"),m(16,"br"),i(17,"small",76),r(18),o(19,"translate"),a()(),i(20,"button",17),o(21,"translate"),b("click",function(){C(e);let d=u(2);return S(d.removeBridgeAccessories())}),m(22,"i",18),a()(),i(23,"li",15)(24,"span",16),r(25),o(26,"translate"),m(27,"br"),i(28,"small",76),r(29),o(30,"translate"),a()(),i(31,"button",17),o(32,"translate"),b("click",function(){C(e);let d=u(2);return S(d.removeAllCachedAccessories())}),m(33,"i",18),a()()()}n&2&&(t(3),_(" ",l(4,9,"reset.accessory_ind.title"),""),t(4),p(l(8,11,"reset.accessory_ind.desc")),t(2),x("aria-label",l(10,13,"reset.accessory_ind.title")),t(5),_(" ",l(15,15,"reset.bridge_accessories.title"),""),t(4),p(l(19,17,"reset.bridge_accessories.desc")),t(2),x("aria-label",l(21,19,"reset.accessory_all.title")),t(5),_(" ",l(26,21,"reset.accessory_all.title"),""),t(4),p(l(30,23,"reset.accessory_all.desc")),t(2),x("aria-label",l(32,25,"reset.accessory_all.title")))}function Ot(n,c){if(n&1){let e=k();i(0,"div",1)(1,"div",2),b("click",function(){C(e);let d=u();return S(d.toggleSection("cache"))}),i(2,"h5",3),m(3,"i",4),r(4),o(5,"translate"),a()(),h(6,Ht,3,3,"p",9)(7,Lt,34,27,"ul",100),a()}if(n&2){let e=u();t(),x("aria-expanded",e.showFields.cache?"true":"false")("aria-controls","fieldsCache"),t(2),g("ngClass",e.showFields.cache?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(5,6,"settings.cache.title")," "),t(2),v(e.showFields.cache?6:-1),t(),v(e.showFields.cache?7:-1)}}function Ut(n,c){n&1&&(i(0,"p",9),r(1),o(2,"translate"),a()),n&2&&(t(),p(l(2,1,"reset.bridges.desc")))}function zt(n,c){if(n&1){let e=k();i(0,"li",15)(1,"span",16),r(2),o(3,"translate"),m(4,"br"),i(5,"small",76),r(6),o(7,"translate"),a()(),i(8,"button",17),o(9,"translate"),b("click",function(){C(e);let d=u(2);return S(d.unpairAccessory())}),m(10,"i",18),a()()}n&2&&(t(2),_(" ",l(3,3,"reset.bridge_ind.title"),""),t(4),p(l(7,5,"reset.bridge_ind.desc")),t(2),x("aria-label",l(9,7,"reset.bridge_ind.title")))}function jt(n,c){if(n&1){let e=k();i(0,"ul",10),h(1,zt,11,9,"li",15),i(2,"li",15)(3,"span",16),r(4),o(5,"translate"),o(6,"titlecase"),m(7,"br"),i(8,"small",76),r(9),o(10,"translate"),a()(),i(11,"button",17),o(12,"translate"),b("click",function(){C(e);let d=u();return S(d.resetHomebridgeState())}),m(13,"i",18),a()()()}if(n&2){let e=u();t(),v(e.$settings.env.serviceMode?1:-1),t(3),_(" ",l(6,6,l(5,4,"reset.bridge_all.title")),""),t(5),p(l(10,8,"reset.bridge_all.desc")),t(2),x("aria-label",l(12,10,"reset.bridge_all.title"))}}var rn=(()=>{class n{$api=w(R);$modal=w(he);$plugin=w(ye);$settings=w(Se);$toastr=w(V);$translate=w(F);originalServiceForm={HOMEBRIDGE_DEBUG:!1,HOMEBRIDGE_KEEP_ORPHANS:!1,HOMEBRIDGE_INSECURE:!0,ENV_DEBUG:"",ENV_NODE_OPTIONS:""};originalUiSettingsForm={port:0};originalLoginWallpaper="";originalMdnsSetting="";originalBridgeNetworkAdapters=[];originalHbPort=0;originalHbName="";hasChangedService=!1;hasChangedUiSettings=!1;hasChangedMdns=!1;hasChangedBridgeNetworkAdapters=!1;hasChangedHbPort=!1;hasChangedHbName=!1;hasChangedLoginWallpaper=!1;isInvalidHbPort=!1;isInvalidHbName=!1;isInvalidHbUiPort=!1;serviceForm=new Z({HOMEBRIDGE_DEBUG:new D(!1),HOMEBRIDGE_KEEP_ORPHANS:new D(!1),HOMEBRIDGE_INSECURE:new D(!0),ENV_DEBUG:new D(""),ENV_NODE_OPTIONS:new D("")});uiSettingsForm=new Z({port:new D(0)});loginWallpaper="";legacyMdnsFormControl=new se(!1);showAvahiMdnsOption=!1;showResolvedMdnsOption=!1;availableNetworkAdapters=[];bridgeNetworkAdapters=[];hbPortFormControl=new D(0);hbNameFormControl=new D("");isHbV2=!1;showFields={general:!0,display:!0,startup:!0,network:!0,reset:!0,cache:!0};file='<span class="font-monospace">ui-wallpaper.jpg</span>';linkDebug='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Debug-Common-Values" target="_blank"><i class="fa fa-fw fa-external-link-alt primary-text"></i></a>';constructor(){}ngOnInit(){this.isHbV2=this.$settings.env.homebridgeVersion.startsWith("2"),this.hbNameFormControl.patchValue(this.$settings.env.homebridgeInstanceName),this.hbNameFormControl.valueChanges.subscribe(e=>this.setHomebridgeName(e)),this.originalHbName=this.$settings.env.homebridgeInstanceName,this.initUiSettingsForm(),this.initDisplaySettingsForm(),this.initNetworkingOptions(),this.$settings.env.serviceMode&&this.initServiceModeForm()}initUiSettingsForm(){this.originalUiSettingsForm={port:this.$settings.env.port},this.uiSettingsForm.patchValue({port:this.$settings.env.port}),this.uiSettingsForm.valueChanges.pipe(Q(500)).subscribe(e=>{let s=!1;Object.keys(e).forEach(d=>{this.originalUiSettingsForm[d]!==e[d]&&(this.saveUiSettingChange(d,e[d]),s=!0)}),this.hasChangedUiSettings=s})}initServiceModeForm(){this.$api.get("/platform-tools/hb-service/homebridge-startup-settings").subscribe({next:e=>{Object.keys(e).forEach(s=>{this.originalServiceForm[s]=e[s]}),this.serviceForm.patchValue(e),this.serviceForm.valueChanges.pipe(Q(500)).subscribe(this.saveServiceModeSettings.bind(this))},error:e=>{console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}initDisplaySettingsForm(){this.originalLoginWallpaper=this.$settings.loginWallpaper,this.loginWallpaper=this.$settings.loginWallpaper}saveUiSettingChange(e,s){switch(e){case"lang":this.$settings.setLang(s);break;case"lightingMode":this.$settings.setLightingMode(s,"user");break;case"menuMode":this.$settings.setMenuMode(s),window.location.reload();break;case"theme":this.$settings.setTheme(s);break;case"tempUnits":this.$settings.setEnvItem("temperatureUnits",s);break;case"loginWallpaper":this.$settings.setEnvItem("loginWallpaper",s),this.hasChangedLoginWallpaper=s!==this.originalLoginWallpaper;break;case"port":if(!s||typeof s!="number"||s<1025||s>65533||Number.isInteger(s)===!1||s===this.hbPortFormControl.value){this.isInvalidHbUiPort=!0;return}this.$settings.setEnvItem("port",s),this.isInvalidHbUiPort=!1;break}E(this.$api.put("/config-editor/ui",{key:e,value:s})).catch(d=>{console.error(d),this.$toastr.error(d.message,this.$translate.instant("toast.title_error"))})}openUiSettings(){this.$plugin.settings({name:"homebridge-config-ui-x",displayName:"Homebridge UI",settingsSchema:!0,links:{}})}openBackupModal(){this.$modal.open(we,{size:"lg",backdrop:"static"})}saveServiceModeSettings(e=this.serviceForm.value){this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",e).subscribe({next:()=>{this.hasChangedService=JSON.stringify(e)!==JSON.stringify(this.originalServiceForm)},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})}resetHomebridgeState(){this.$modal.open(Ie,{size:"lg",backdrop:"static"})}unpairAccessory(){this.$modal.open(Ae,{size:"lg",backdrop:"static"})}removeAllCachedAccessories(){this.$modal.open(Ee,{size:"lg",backdrop:"static"})}removeSingleCachedAccessories(){this.$modal.open(ke,{size:"lg",backdrop:"static"})}removeBridgeAccessories(){this.$modal.open(Be,{size:"lg",backdrop:"static"})}initNetworkingOptions(){return y(this,null,function*(){try{this.getNetworkSettings(),(this.$settings.env.runningInLinux||this.$settings.env.runningInDocker||this.$settings.env.runningInSynologyPackage||this.$settings.env.runningInPackageMode)&&(this.showAvahiMdnsOption=!0,this.showResolvedMdnsOption=!0)}catch{}})}getNetworkSettings(){return y(this,null,function*(){return Promise.all([E(this.$api.get("/server/network-interfaces/system")),E(this.$api.get("/server/network-interfaces/bridge")),E(this.$api.get("/server/mdns-advertiser")),E(this.$api.get("/server/port"))]).then(([e,s,d,f])=>{this.availableNetworkAdapters=e,this.buildBridgeNetworkAdapterList(s),this.legacyMdnsFormControl.patchValue(d.advertiser),this.originalMdnsSetting=d.advertiser,this.originalBridgeNetworkAdapters=this.bridgeNetworkAdapters.map(U=>U.iface),this.legacyMdnsFormControl.valueChanges.subscribe(U=>{this.setHomebridgeMdnsSetting(U)}),this.hbPortFormControl.patchValue(f.port),this.hbPortFormControl.valueChanges.subscribe(U=>this.setHomebridgePort(U)),this.originalHbPort=f.port})})}setHomebridgeMdnsSetting(e){return y(this,null,function*(){this.$api.put("/server/mdns-advertiser",{advertiser:e}).subscribe({next:()=>{this.hasChangedMdns=e!==this.originalMdnsSetting},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})})}setNetworkInterfaces(e){return y(this,null,function*(){this.$api.put("/server/network-interfaces/bridge",{adapters:e}).subscribe({next:()=>{this.hasChangedBridgeNetworkAdapters=this.originalBridgeNetworkAdapters.join(",")!==e.join(",")},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})})}setHomebridgeName(e){return y(this,null,function*(){if(!e||!/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(e)){this.isInvalidHbName=!0;return}this.$api.put("/server/name",{name:e}).subscribe({next:()=>{this.hasChangedHbName=this.originalHbName!==e,this.$settings.setEnvItem("homebridgeInstanceName",e),this.isInvalidHbName=!1},error:()=>{this.isInvalidHbName=!0}})})}setHomebridgePort(e){return y(this,null,function*(){if(e===this.uiSettingsForm.get("port").value){this.isInvalidHbPort=!0;return}this.$api.put("/server/port",{port:e}).subscribe({next:()=>{this.hasChangedHbPort=this.originalHbPort!==e,this.isInvalidHbPort=!1},error:()=>{this.isInvalidHbPort=!0}})})}buildBridgeNetworkAdapterList(e){if(!e.length){this.bridgeNetworkAdapters=[];return}this.bridgeNetworkAdapters=e.map(s=>{let d=this.availableNetworkAdapters.find(f=>f.iface===s);return d?(d.selected=!0,d.missing=!1,d):{iface:s,missing:!0}})}selectNetworkInterfaces(){let e=this.$modal.open(Te,{size:"lg",backdrop:"static"});e.componentInstance.availableNetworkAdapters=this.availableNetworkAdapters,e.componentInstance.bridgeNetworkAdapters=this.bridgeNetworkAdapters,e.result.then(s=>{this.buildBridgeNetworkAdapterList(s),this.setNetworkInterfaces(s)}).catch(()=>{})}toggleSection(e){this.showFields[e]=!this.showFields[e]}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=B({type:n,selectors:[["ng-component"]],decls:35,vars:35,consts:[[1,"primary-text","m-0"],[1,"my-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa","fa-fw",3,"ngClass"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsDisplay",1,"list-group","list-group-box","mt-2","mx-0"],["novalidate","",1,"my-4",3,"formGroup"],["id","fieldsNetwork",1,"list-group","list-group-box","mt-2","mx-0"],[1,"small","grey-text","mb-2","mx-0"],["id","fieldsReset",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],[1,"list-group-item","d-block","d-md-flex","justify-content-between","align-items-center"],[1,"my-3","my-md-0","pl-0","pl-md-5","w-auto"],["type","text",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],[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,"list-group-item","d-flex","flex-column","align-items-center"],[1,"grey-text","my-2"],["routerLink","/restart",1,"btn","btn-primary","waves-effect","my-2"],[1,"my-3","my-md-0","ps-0","ps-md-5","w-auto"],[1,"custom-select","resp-select",3,"ngModelChange","ngModel"],["value","auto"],["value","bg"],["value","ca"],["value","zh-CN"],["value","zh-TW"],["value","cs"],["value","nl"],["value","en"],["value","fi"],["value","fr"],["value","de"],["value","he"],["value","hu"],["value","id"],["value","it"],["value","ja"],["value","ko"],["value","mk"],["value","no"],["value","pl"],["value","pt-BR"],["value","pt"],["value","ru"],["value","sl"],["value","es"],["value","sv"],["value","th"],["value","tr"],["value","uk"],["value","orange"],["value","red"],["value","pink"],["value","purple"],["value","deep-purple"],["value","indigo"],["value","blue"],["value","blue-grey"],["value","cyan"],["value","green"],["value","teal"],["value","grey"],["value","brown"],["value","light"],["value","dark"],["value","default"],["value","freeze"],[1,"grey-text","pe-2",3,"innerHTML"],["name","search_wallpaper","autocomplete","off","type","text","placeholder","/path-to/image.png",1,"form-control","custom-input","resp-input",3,"ngModelChange","ngModel"],["value","c"],["value","f"],["id","fieldsStartup",1,"list-group","list-group-box","mb-4","mx-0"],[1,"grey-text","pe-2"],["type","checkbox","id","homebridgeDebugMode","formControlName","HOMEBRIDGE_DEBUG",1,"rendux-input"],["for","homebridgeDebugMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeInsecureMode","formControlName","HOMEBRIDGE_INSECURE",1,"rendux-input"],["for","homebridgeInsecureMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeKeepOrphans","formControlName","HOMEBRIDGE_KEEP_ORPHANS",1,"rendux-input"],["for","homebridgeKeepOrphans",1,"rendux-label","ms-3",2,"min-width","50px"],[1,"font-monospace"],["formControlName","ENV_DEBUG","type","text","placeholder","HAP-NodeJS:Advertiser,HAP-NodeJS:Service",1,"form-control","custom-input","resp-input"],["formControlName","ENV_NODE_OPTIONS","type","text","placeholder","--max-old-space-size=512 --max-http-header-size=8192",1,"form-control","custom-input","resp-input"],["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"],[1,"fas","fa-fw","fa-arrow-right",3,"ngClass"],[1,"custom-select","resp-select",3,"formControl"],["value","avahi"],["value","ciao"],["value","bonjour-hap"],["value","resolved"],["type","number","min","1025","max","65533",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],["type","number","min","1025","max","65533","placeholder","8581","formControlName","port",1,"form-control","custom-input","resp-input",3,"ngClass"],[1,"fas","fa-fw","fa-exclamation-triangle"],[1,"fw-normal"],["id","fieldsCache",1,"list-group","list-group-box","mb-4","mx-0"]],template:function(s,d){s&1&&(i(0,"h3",0),r(1),o(2,"translate"),a(),i(3,"div",1)(4,"div",2),b("click",function(){return d.toggleSection("general")}),i(5,"h5",3),m(6,"i",4),r(7),o(8,"translate"),a()(),h(9,Ct,29,26,"ul",5),a(),i(10,"div",1)(11,"div",2),b("click",function(){return d.toggleSection("display")}),i(12,"h5",3),m(13,"i",4),r(14),o(15,"translate"),a()(),h(16,wt,155,94,"ul",6),a(),h(17,Mt,7,8,"form",7),i(18,"form",7)(19,"div",2),b("click",function(){return d.toggleSection("network")}),i(20,"h5",3),m(21,"i",4),r(22),o(23,"translate"),a()(),h(24,Pt,55,54,"ul",8),a(),h(25,Ot,8,8,"div",1),i(26,"div",1)(27,"div",2),b("click",function(){return d.toggleSection("reset")}),i(28,"h5",3),m(29,"i",4),r(30),o(31,"translate"),a()(),h(32,Ut,3,3,"p",9)(33,jt,14,12,"ul",10),a(),m(34,"div",11)),s&2&&(t(),p(l(2,25,"menu.settings.title")),t(3),x("aria-expanded",d.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),t(2),g("ngClass",d.showFields.general?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(8,27,"settings.general.title_general")," "),t(2),v(d.showFields.general?9:-1),t(2),x("aria-expanded",d.showFields.display?"true":"false")("aria-controls","fieldsDisplay"),t(2),g("ngClass",d.showFields.display?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(15,29,"settings.general.title_display")," "),t(2),v(d.showFields.display?16:-1),t(),v(d.$settings.env.serviceMode||d.$settings.env.runningInDocker?17:-1),t(),g("formGroup",d.uiSettingsForm),t(),x("aria-expanded",d.showFields.network?"true":"false")("aria-controls","fieldsNetwork"),t(2),g("ngClass",d.showFields.network?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(23,31,"settings.network.title_network")," "),t(2),v(d.showFields.network?24:-1),t(),v(d.$settings.env.serviceMode?25:-1),t(2),x("aria-expanded",d.showFields.reset?"true":"false")("aria-controls","fieldsReset"),t(2),g("ngClass",d.showFields.reset?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",l(31,33,"reset.bridges.title")," "),t(2),v(d.showFields.reset?32:-1),t(),v(d.showFields.reset?33:-1))},dependencies:[O,Ce,K,de,ge,ve,oe,pe,G,ue,W,le,xe,be,q,fe,ce,me,_e,j,$],encapsulation:2})}return n})();export{Ee as a,Ie as b,Te as c,rn as d};