homebridge-config-ui-x 4.62.1-beta.9 → 5.0.0-beta.0

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 (67) hide show
  1. package/CHANGELOG.md +43 -6
  2. package/README.md +4 -58
  3. package/config.schema.json +1 -0
  4. package/dist/bin/platforms/darwin.js +2 -0
  5. package/dist/bin/platforms/darwin.js.map +1 -1
  6. package/dist/modules/server/server.service.d.ts +1 -0
  7. package/dist/modules/server/server.service.js +1 -0
  8. package/dist/modules/server/server.service.js.map +1 -1
  9. package/dist/modules/status/status.gateway.d.ts +3 -5
  10. package/dist/modules/status/status.gateway.js +2 -28
  11. package/dist/modules/status/status.gateway.js.map +1 -1
  12. package/dist/modules/status/status.service.d.ts +2 -0
  13. package/dist/modules/status/status.service.js +8 -7
  14. package/dist/modules/status/status.service.js.map +1 -1
  15. package/package.json +19 -24
  16. package/public/3rdpartylicenses.txt +9 -1
  17. package/public/assets/hap-icons/smokesensor.svg +1 -1
  18. package/public/{chunk-TOPONS2G.js → chunk-2PWJQ3JG.js} +1 -1
  19. package/public/{chunk-SDRXNK54.js → chunk-2XSSTW65.js} +1 -1
  20. package/public/chunk-3MMTBP3D.js +1 -0
  21. package/public/{chunk-3TR6KNS2.js → chunk-3PUISAM4.js} +1 -1
  22. package/public/{chunk-3OURKZJE.js → chunk-3SUL4N2K.js} +1 -1
  23. package/public/{chunk-3DLNWL2R.js → chunk-47MGIKRX.js} +1 -1
  24. package/public/{chunk-BUGNOBXC.js → chunk-4R6MSI5I.js} +1 -1
  25. package/public/{chunk-YAU2KWBZ.js → chunk-6QEO3BTW.js} +1 -1
  26. package/public/chunk-6SZTMLNK.js +1 -0
  27. package/public/{chunk-IIFIWJYC.js → chunk-6T267MJT.js} +1 -1
  28. package/public/{chunk-D6UUGEUB.js → chunk-B6C32ZRK.js} +1 -1
  29. package/public/{chunk-RPL6HWN2.js → chunk-BROUJ7PT.js} +1 -1
  30. package/public/{chunk-S5FRWQPT.js → chunk-C4VKSYGU.js} +1 -1
  31. package/public/chunk-CKS7IGEQ.js +1 -0
  32. package/public/chunk-CTWXFHBK.js +20 -0
  33. package/public/{chunk-CU3OXDK7.js → chunk-DLVT4K74.js} +1 -1
  34. package/public/{chunk-KO2RPNXD.js → chunk-DPQR4EUP.js} +1 -1
  35. package/public/chunk-F22FMU37.js +1 -0
  36. package/public/{chunk-RF5R32OJ.js → chunk-GNQUXZMN.js} +1 -1
  37. package/public/{chunk-VNQPH3K2.js → chunk-GUXB6V7U.js} +1 -1
  38. package/public/{chunk-ZRQZU5HN.js → chunk-HPRZRVV7.js} +1 -1
  39. package/public/{chunk-RTI2NE3Q.js → chunk-HXKR7RPF.js} +1 -1
  40. package/public/chunk-IGUSDGD6.js +8 -0
  41. package/public/{chunk-EX6EQLNK.js → chunk-JM7QCDMZ.js} +1 -1
  42. package/public/{chunk-UEPF2U5Q.js → chunk-JQO6VAZ5.js} +1 -1
  43. package/public/{chunk-BGBOW4TZ.js → chunk-K5UREZLG.js} +4 -4
  44. package/public/{chunk-W7JQ7WHZ.js → chunk-LM3J4EYP.js} +1 -1
  45. package/public/chunk-NTTD35IF.js +1 -0
  46. package/public/chunk-PSLVYKAC.js +1 -0
  47. package/public/{chunk-BROJRIZL.js → chunk-Q7MYZYMQ.js} +1 -1
  48. package/public/{chunk-AM3VWXMR.js → chunk-SI3MSSTT.js} +1 -1
  49. package/public/{chunk-WOJ7C5HX.js → chunk-SJTXTMYT.js} +1 -1
  50. package/public/{chunk-VZFXQGAN.js → chunk-TBJQ2Y3M.js} +1 -1
  51. package/public/{chunk-VYUN5WLM.js → chunk-THFLPY67.js} +1 -1
  52. package/public/{chunk-QOPI77FO.js → chunk-TTLBPD7L.js} +1 -1
  53. package/public/{chunk-RDIMXMJ5.js → chunk-UEBRERJ6.js} +1 -1
  54. package/public/{chunk-FBJAWKJ3.js → chunk-WCDFKYP6.js} +1 -1
  55. package/public/{chunk-WD7T2C7Z.js → chunk-XLAWLJES.js} +1 -1
  56. package/public/index.html +2 -2
  57. package/public/main-DTWXJAMM.js +6 -0
  58. package/public/{styles-RKZUK2BG.css → styles-7ETWN6DQ.css} +1 -1
  59. package/public/chunk-4GFUJV7Q.js +0 -1
  60. package/public/chunk-7SIWB246.js +0 -1
  61. package/public/chunk-ATNSCCKX.js +0 -1
  62. package/public/chunk-BZRYP3UV.js +0 -1
  63. package/public/chunk-FJK4IAO5.js +0 -1
  64. package/public/chunk-IKFLHM2X.js +0 -8
  65. package/public/chunk-J6XB3JBO.js +0 -1
  66. package/public/chunk-LKWF73XA.js +0 -20
  67. package/public/main-VFMNBLEO.js +0 -6
@@ -1 +0,0 @@
1
- import{a as Ve,b as Te,c as $e}from"./chunk-RDIMXMJ5.js";import{a as ye,d as G,f as Se}from"./chunk-ZRQZU5HN.js";import{a as Be,d as q}from"./chunk-LKWF73XA.js";import"./chunk-BUGNOBXC.js";import"./chunk-WOJ7C5HX.js";import"./chunk-YAU2KWBZ.js";import{a as Pe}from"./chunk-D6UUGEUB.js";import"./chunk-IIFIWJYC.js";import"./chunk-RF5R32OJ.js";import"./chunk-VYUN5WLM.js";import{a as F}from"./chunk-S5FRWQPT.js";import"./chunk-3DLNWL2R.js";import{a as L}from"./chunk-7SIWB246.js";import{a as ke}from"./chunk-EX6EQLNK.js";import"./chunk-QOPI77FO.js";import{H as fe,I as _e,J as he,K as be,L as Ce,M as ve,N as xe,O as we,Q as Ie,c as ae,d as re,e as oe,f as le,g as se,j as pe,m as de,p as ce,q as ge,y as ue,z as me}from"./chunk-FBJAWKJ3.js";import{c as H,k as R,m as U}from"./chunk-FJK4IAO5.js";import{a as A,b as M,c as ne}from"./chunk-J6XB3JBO.js";import{$ as T,$b as ee,Ab as Q,Ga as I,Ka as S,La as s,Pb as X,Qb as Y,Rb as E,Ua as l,Va as p,Wa as c,X as D,Xa as W,Ya as J,Za as v,Zb as Z,aa as N,ab as h,bb as g,h as d,ha as b,i as k,ia as C,jb as f,kb as P,lb as x,pc as ie,sc as te,t as V,ua as $,vb as K,vc as O,wa as r,xa as y,yb as u,zb as _}from"./chunk-IKFLHM2X.js";function Ue(i,o){if(i&1){let n=v();l(0,"button",15),h("click",function(){b(n);let t=g();return C(t.$activeModal.dismiss("Dismiss"))}),f(1),u(2,"translate"),p()}i&2&&(r(),x(" ",_(2,1,"form.button_close")," "))}function Fe(i,o){if(i&1){let n=v();l(0,"button",15),h("click",function(){b(n);let t=g();return C(t.$activeModal.dismiss("Dismiss"))}),f(1),u(2,"translate"),p()}i&2&&(r(),x(" ",_(2,1,"form.button_close")," "))}function qe(i,o){if(i&1&&(l(0,"a",16),f(1),u(2,"translate"),c(3,"i",17),p()),i&2){let n=g();s("href",n.plugin.links.homepage||n.plugin.links.npm,$),r(),x(" ",_(2,2,"plugins.button_homepage")," ")}}var je=(()=>{let o=class o{constructor(e){d(this,"$activeModal");d(this,"plugin");d(this,"defaultIcon","assets/hb-icon.png");this.$activeModal=e}ngOnInit(){this.plugin.icon||(this.plugin.icon=this.defaultIcon)}handleIconError(){this.plugin.icon=this.defaultIcon}};d(o,"\u0275fac",function(t){return new(t||o)(y(ve))}),d(o,"\u0275cmp",T({type:o,selectors:[["ng-component"]],inputs:{plugin:"plugin"},decls:26,vars:14,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body","w-100","text-center"],["alt","Plugin Icon",1,"mb-3","plugin-icon",3,"error","src"],[1,"my-3"],[1,"m-0","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","class","btn btn-elegant","data-dismiss","modal",3,"click",4,"ngIf"],[1,"text-center"],[1,"text-right"],["class","btn btn-primary text-decoration-none","target","_blank","rel","noopener noreferrer",3,"href",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[1,"fas","fa-fw","fa-external-link-alt"]],template:function(t,a){t&1&&(l(0,"div",0)(1,"div",1)(2,"h5",2),f(3),u(4,"translate"),p(),l(5,"button",3),u(6,"translate"),h("click",function(){return a.$activeModal.dismiss("Dismiss")}),l(7,"span",4),f(8,"\xD7"),p()()(),l(9,"div",5)(10,"img",6),h("error",function(){return a.handleIconError()}),p(),l(11,"h4"),f(12),p(),l(13,"p",7),f(14),p(),l(15,"p",8),f(16),p(),l(17,"p",8),f(18),p()(),l(19,"div",9)(20,"div",10),I(21,Ue,3,3,"button",11),p(),l(22,"div",12),I(23,Fe,3,3,"button",11),p(),l(24,"div",13),I(25,qe,4,4,"a",14),p()()()),t&2&&(r(3),P(_(4,10,"plugins.manage.information")),r(2),S("aria-label",_(6,12,"form.button_close")),r(5),s("src",a.plugin.icon,$),r(2),P(a.plugin.displayName||a.plugin.name),r(2),P(a.plugin.description),r(2),P(a.plugin.name),r(2),x("@",a.plugin.author,""),r(3),s("ngIf",a.plugin.links.homepage||a.plugin.links.npm),r(2),s("ngIf",!a.plugin.links.homepage&&!a.plugin.links.npm),r(2),s("ngIf",a.plugin.links.homepage||a.plugin.links.npm))},dependencies:[E,M],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]}));let i=o;return i})();var Je=(i,o)=>({"fa-bridge-circle-exclamation orange-text":i,"fa-bridge-circle-xmark red-text":o});function Ke(i,o){i&1&&c(0,"i",30)}function Qe(i,o){i&1&&c(0,"i",31)}function Xe(i,o){if(i&1){let n=v();l(0,"a",27),h("click",function(){b(n);let t=g();return C(t.openHb2InfoModal())}),I(1,Ke,1,0,"i",28)(2,Qe,1,0,"i",29),p()}if(i&2){let n=g();s("ngbTooltip","Homebridge v2.0 Readiness")("placement","right"),r(),s("ngIf",n.hb2Status==="supported"),r(),s("ngIf",n.hb2Status==="unknown")}}function Ye(i,o){if(i&1){let n=v();l(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(n);let t=g();return C(t.$plugin.checkAndUpdatePlugin(t.plugin,t.plugin.updateTag||"latest"))}),c(3,"i",33),p()}i&2&&(s("ngbTooltip",_(1,2,"plugins.button_update")),S("aria-label",_(2,4,"plugins.button_update")))}function Ze(i,o){if(i&1){let n=v();l(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(n);let t=g();return C(t.$plugin.settings(t.plugin))}),c(3,"i",34),p()}i&2&&(s("ngbTooltip",_(1,2,"plugins.button_set_up")),S("aria-label",_(2,4,"plugins.button_set_up")))}function ei(i,o){if(i&1){let n=v();l(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(n);let t=g();return C(t.$plugin.bridgeSettings(t.plugin))}),c(3,"i",35),p()}i&2&&(s("ngbTooltip",_(1,2,"child_bridge.setup")),S("aria-label",_(2,4,"child_bridge.setup")))}function ii(i,o){if(i&1){let n=v();l(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(n);let t=g();return C(t.$plugin.bridgeSettings(t.plugin))}),c(3,"i",36),p()}i&2&&(s("ngbTooltip",_(1,2,"child_bridge.bridge_connect")),S("aria-label",_(2,4,"child_bridge.bridge_connect")))}function ti(i,o){if(i&1&&c(0,"i",37),i&2){let n=g();s("ngClass",K(1,Je,n.childBridgeStatus==="pending",n.childBridgeStatus==="down"))}}function ni(i,o){if(i&1){let n=v();l(0,"p",19)(1,"a",38),h("click",function(){b(n);let t=g();return C(t.openVerifiedModal())}),c(2,"i",39),l(3,"span",17),f(4),u(5,"translate"),p()()()}i&2&&(r(4),P(_(5,1,"plugins.donate.button_verified")))}function ai(i,o){if(i&1){let n=v();l(0,"p",19)(1,"a",40),h("click",function(){b(n);let t=g();return C(t.openVerifiedModal())}),c(2,"i",41),l(3,"span",17),f(4),u(5,"translate"),p()()()}i&2&&(r(4),P(_(5,1,"plugins.donate.button_not_verified")))}function ri(i,o){if(i&1){let n=v();l(0,"a",42),h("click",function(){b(n);let t=g();return C(t.openFundingModal(t.plugin))}),c(1,"i",43),l(2,"span",17),f(3),p()()}if(i&2){let n=g();r(3),x("@",n.plugin.author,"")}}function oi(i,o){if(i&1&&(l(0,"span",17),c(1,"i",44),f(2),p()),i&2){let n=g();r(2),x("@",n.plugin.author," ")}}function li(i,o){if(i&1&&(l(0,"span"),f(1),u(2,"date"),p()),i&2){let n=g(2);r(),x("(",Q(2,1,n.plugin.lastUpdated,"yyyy-MM-dd"),")")}}function si(i,o){if(i&1&&(l(0,"span"),c(1,"i",45),l(2,"span",17),f(3),I(4,li,3,4,"span",23),p()()),i&2){let n=g();r(3),x("v",n.plugin.latestVersion," "),r(),s("ngIf",n.plugin.lastUpdated)}}function pi(i,o){if(i&1&&(l(0,"span"),c(1,"i",46),f(2),p()),i&2){let n=g();r(2),x("v",n.plugin.installedVersion," ")}}function di(i,o){if(i&1){let n=v();l(0,"a",32),u(1,"translate"),h("click",function(){b(n);let t=g();return C(t.doChildBridgeAction("restart"))}),c(2,"i",47),p()}if(i&2){let n=g();s("ngbTooltip",_(1,1,n.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function ci(i,o){if(i&1){let n=v();l(0,"a",48),h("click",function(){b(n);let t=g();return C(t.enablePlugin(t.plugin))}),c(1,"i",49),u(2,"translate"),p()}i&2&&(r(),s("ngbTooltip",_(2,1,"plugins.status_disabled")))}function gi(i,o){if(i&1){let n=v();l(0,"a",50),h("click",function(){b(n);let t=g();return C(t.$plugin.installAlternateVersion(t.plugin))}),c(1,"i",51),p()}}function ui(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(2);return C(t.viewPluginLog(t.plugin))}),c(1,"i",61),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"plugins.manage.plugin_logs")," "))}function mi(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(2);return C(t.$plugin.installAlternateVersion(t.plugin))}),c(1,"i",62),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"plugins.manage.manage_version")," "))}function fi(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(2);return C(t.$plugin.jsonEditor(t.plugin))}),c(1,"i",63),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"plugins.manage.json_config")," "))}function _i(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(2);return C(t.disablePlugin(t.plugin))}),c(1,"i",64),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"plugins.manage.disable")," "))}function hi(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(2);return C(t.enablePlugin(t.plugin))}),c(1,"i",65),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"plugins.manage.enable")," "))}function bi(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(2);return C(t.$plugin.uninstallPlugin(t.plugin,t.setChildBridges))}),c(1,"i",66),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"plugins.button_uninstall")," "))}function Ci(i,o){i&1&&c(0,"div",67)}function vi(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(3);return C(t.doChildBridgeAction("restart"))}),c(1,"i",69),f(2),u(3,"translate"),p()}if(i&2){let n=g(3);r(2),x(" ",_(3,1,n.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function xi(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(3);return C(t.doChildBridgeAction("stop"))}),c(1,"i",70),f(2),u(3,"translate"),p()}if(i&2){let n=g(3);r(2),x(" ",_(3,1,n.setChildBridges.length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function wi(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(3);return C(t.doChildBridgeAction("start"))}),c(1,"i",71),f(2),u(3,"translate"),p()}if(i&2){let n=g(3);r(2),x(" ",_(3,1,n.setChildBridges.length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function Ii(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(3);return C(t.$plugin.resetChildBridges(t.setChildBridges))}),c(1,"i",72),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"child_bridge.reset_accessories")," "))}function yi(i,o){if(i&1){let n=v();W(0),l(1,"button",56),h("click",function(){b(n);let t=g(2);return C(t.$plugin.bridgeSettings(t.plugin))}),c(2,"i",68),f(3),u(4,"translate"),p(),I(5,vi,4,3,"button",58)(6,xi,4,3,"button",58)(7,wi,4,3,"button",58)(8,Ii,4,3,"button",58),J()}if(i&2){let n=g(2);r(3),x(" ",_(4,5,"child_bridge.bridge_settings")," "),r(2),s("ngIf",!n.childBridgeRestartInProgress),r(),s("ngIf",!n.allChildBridgesStopped),r(),s("ngIf",n.allChildBridgesStopped),r(),s("ngIf",n.$settings.env.serviceMode)}}function Pi(i,o){i&1&&c(0,"div",67)}function ki(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(2);return C(t.$plugin.bridgeSettings(t.plugin))}),c(1,"i",73),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"child_bridge.setup")," "))}function Bi(i,o){i&1&&c(0,"div",67)}function Si(i,o){if(i&1){let n=v();l(0,"button",56),h("click",function(){b(n);let t=g(2);return C(t.$plugin.bridgeSettings(t.plugin))}),c(1,"i",73),f(2),u(3,"translate"),p()}i&2&&(r(2),x(" ",_(3,1,"child_bridge.setup")," "))}function Vi(i,o){i&1&&c(0,"div",67)}function Ti(i,o){if(i&1&&(l(0,"a",74),c(1,"i",75),f(2),u(3,"translate"),p()),i&2){let n=g(2);s("href",n.plugin.links.bugs,$),r(2),x(" ",_(3,2,"support.links.issue")," ")}}function $i(i,o){if(i&1){let n=v();l(0,"span",52)(1,"a",53),c(2,"i",54),p(),l(3,"div",55)(4,"button",56),h("click",function(){b(n);let t=g();return C(t.$plugin.settings(t.plugin))}),c(5,"i",57),f(6),u(7,"translate"),p(),I(8,ui,4,3,"button",58)(9,mi,4,3,"button",58)(10,fi,4,3,"button",58)(11,_i,4,3,"button",58)(12,hi,4,3,"button",58)(13,bi,4,3,"button",58)(14,Ci,1,0,"div",59)(15,yi,9,7,"ng-container",23)(16,Pi,1,0,"div",59)(17,ki,4,3,"button",58)(18,Bi,1,0,"div",59)(19,Si,4,3,"button",58)(20,Vi,1,0,"div",59)(21,Ti,4,4,"a",60),p()()}if(i&2){let n=g();r(),S("aria-label","Plugin Actions Dropdown"),r(5),x(" ",_(7,16,"plugins.button_settings")," "),r(2),s("ngIf",n.plugin.isConfigured&&!n.plugin.disabled),r(),s("ngIf",n.plugin.publicPackage),r(),s("ngIf",!n.isMobile&&n.plugin.name!=="homebridge-config-ui-x"),r(),s("ngIf",n.plugin.name!=="homebridge-config-ui-x"&&!n.plugin.disabled),r(),s("ngIf",n.plugin.name!=="homebridge-config-ui-x"&&n.plugin.disabled),r(),s("ngIf",n.plugin.name!=="homebridge-config-ui-x"),r(),s("ngIf",!n.plugin.disabled&&n.plugin.isConfigured&&n.plugin.hasChildBridges&&n.plugin.installedVersion&&n.plugin.name!=="homebridge-config-ui-x"),r(),s("ngIf",n.plugin.hasChildBridges&&!n.plugin.disabled),r(),s("ngIf",n.plugin.isConfigured&&!n.plugin.hasChildBridges&&!n.plugin.disabled&&!n.plugin.recommendChildBridge),r(),s("ngIf",n.plugin.isConfigured&&!n.plugin.hasChildBridges&&!n.plugin.disabled&&!n.plugin.recommendChildBridge),r(),s("ngIf",n.plugin.isConfigured&&!n.plugin.hasChildBridges&&!n.plugin.disabled&&n.plugin.recommendChildBridge&&n.plugin.updateAvailable),r(),s("ngIf",n.plugin.isConfigured&&!n.plugin.hasChildBridges&&!n.plugin.disabled&&n.plugin.recommendChildBridge&&n.plugin.updateAvailable),r(),s("ngIf",n.plugin.links==null?null:n.plugin.links.bugs),r(),s("ngIf",n.plugin.links==null?null:n.plugin.links.bugs)}}var De=(()=>{let o=class o{constructor(e,t,a,m,B,w,j,He){d(this,"$api");d(this,"$md");d(this,"$modal");d(this,"$plugin");d(this,"$settings");d(this,"$toastr");d(this,"$translate");d(this,"$ws");d(this,"plugin");d(this,"hasChildBridges",!1);d(this,"hasUnpairedChildBridges",!1);d(this,"allChildBridgesStopped",!1);d(this,"childBridgeStatus","pending");d(this,"childBridgeRestartInProgress",!1);d(this,"defaultIcon","assets/hb-icon.png");d(this,"isMobile");d(this,"setChildBridges",[]);d(this,"prettyDisplayName","");d(this,"hb2Status","unknown");d(this,"io");this.$api=e,this.$md=t,this.$modal=a,this.$plugin=m,this.$settings=B,this.$toastr=w,this.$translate=j,this.$ws=He}set childBridges(e){var m,B;this.hasChildBridges=e.length>0,this.hasUnpairedChildBridges=e.filter(w=>w.paired===!1).length>0,this.allChildBridgesStopped=e.filter(w=>w.manuallyStopped===!0).length===e.length,this.hasChildBridges&&(e.some(w=>w.status==="down")?this.childBridgeStatus="down":e.some(w=>w.status==="pending")?this.childBridgeStatus="pending":e.some(w=>w.status==="ok")&&(this.childBridgeStatus="ok")),this.setChildBridges=e;let t=this.$settings.env.homebridgeVersion.split(".")[0],a=((B=(m=this.plugin.engines)==null?void 0:m.homebridge)==null?void 0:B.split("||").map(w=>w.trim()))||[];this.hb2Status=t==="2"?"hide":a.some(w=>w.startsWith("^2")||w.startsWith(">=2"))?"supported":this.hb2Status}ngOnInit(){this.isMobile=this.$md.detect.mobile(),this.prettyDisplayName=this.prettifyName(),this.io=this.$ws.getExistingNamespace("child-bridges"),this.plugin.icon||(this.plugin.icon=this.defaultIcon)}openFundingModal(e){let t=this.$modal.open(Te,{size:"lg",backdrop:"static"});t.componentInstance.plugin=e}openVerifiedModal(){let e=this.$modal.open(G,{size:"lg",backdrop:"static"});this.plugin.verifiedPlugin||this.plugin.verifiedPlusPlugin?(e.componentInstance.title=this.$translate.instant("plugins.manage.verified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.verified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.verified_message"),e.componentInstance.faIconClass="fa-shield-alt green-text"):(e.componentInstance.title=this.$translate.instant("plugins.manage.unverified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.unverified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.unverified_message"),e.componentInstance.faIconClass="fa-shield-alt grey-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/verified-Plugins"}pluginInfoModal(e){let t=this.$modal.open(je,{size:"lg",backdrop:"static"});t.componentInstance.plugin=e}disablePlugin(e){let t=this.$modal.open(Ve,{size:"lg",backdrop:"static"});t.componentInstance.pluginName=e.name,t.componentInstance.isConfigured=e.isConfigured,t.componentInstance.isConfiguredDynamicPlatform=e.isConfiguredDynamicPlatform,t.result.then(()=>k(this,null,function*(){try{yield V(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{})),e.disabled=!0,this.hasChildBridges&&this.doChildBridgeAction("stop"),this.$modal.open(L,{size:"lg",backdrop:"static"})}catch(a){console.error(a),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}))}enablePlugin(e){let t=this.$modal.open(ke,{size:"lg",backdrop:"static"});t.componentInstance.title=`${this.$translate.instant("plugins.manage.enable")}: ${e.name}`,t.componentInstance.message=this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.name}),t.componentInstance.confirmButtonLabel=this.$translate.instant("plugins.manage.enable"),t.componentInstance.faIconClass="fa-circle-play primary-text",t.result.then(()=>k(this,null,function*(){try{yield V(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{})),e.disabled=!1,this.hasChildBridges&&(yield this.doChildBridgeAction("start")),this.$modal.open(L,{size:"lg",backdrop:"static"})}catch(a){console.error(a),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}))}viewPluginLog(e){let t=this.$modal.open(Be,{size:"xl",backdrop:"static"});t.componentInstance.plugin=e}doChildBridgeAction(e){return k(this,null,function*(){this.childBridgeRestartInProgress=!0;try{for(let t of this.setChildBridges)yield V(this.io.request(`${e}-child-bridge`,t.username))}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress=!1}finally{setTimeout(()=>{this.childBridgeRestartInProgress=!1},e==="restart"?12e3:e==="stop"?6e3:1e3)}})}handleIconError(){this.plugin.icon=this.defaultIcon}prettifyName(){let e=this.plugin.displayName||(this.plugin.name.charAt(0)==="@"?this.plugin.name.split("/")[1]:this.plugin.name);return e=e.replace(/-/g," "),this.isMobile&&e.toLowerCase().startsWith("homebridge ")&&(e=e.replace(/^homebridge /i,"")),this.plugin.displayName||(e=e.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),e}openHb2InfoModal(){let e=this.$modal.open(G,{size:"lg",backdrop:"static"});e.componentInstance.title="Plugin Readiness",this.hb2Status==="supported"?(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} is ready for Homebridge v2.0`,e.componentInstance.message="The developer has specifically marked your installed version of the plugin as compatible with Homebridge v2.0.",e.componentInstance.faIconClass="fa-check-circle green-text"):(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} might not be ready for Homebridge v2.0`,e.componentInstance.message="The developer has not specifically marked your installed version of the plugin as compatible with Homebridge v2.0, but it may still work.",e.componentInstance.faIconClass="fa-question-circle orange-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0"}};d(o,"\u0275fac",function(t){return new(t||o)(y(H),y(Pe),y(xe),y(q),y(U),y(R),y(A),y(F))}),d(o,"\u0275cmp",T({type:o,selectors:[["app-plugin-card"]],inputs:{plugin:"plugin",childBridges:"childBridges"},decls:37,vars:20,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,"d-flex","flex-column","mr-3","align-items-center","justify-content-between"],["alt","Plugin Icon",1,"plugin-icon-card","mb-3",3,"error","src"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"ngbTooltip","placement","click",4,"ngIf"],[1,"d-flex","flex-column","justify-content-between",2,"min-width","calc(100% - 80px)"],[1,"d-flex","flex-row","align-items-end"],[1,"d-flex","flex-column","w-100"],[1,"d-flex","flex-row"],[1,"card-title","mb-2","text-truncate"],[1,"ml-auto"],["href","javascript:void(0)","class","card-link","container","body","openDelay","150","triggers","hover",3,"ngbTooltip","click",4,"ngIf"],[1,"fas","fa-fw","fa-spinner","fa-pulse","fa-lg","grey-text","ml-3",3,"hidden"],["class","fas fa-fw fa-lg ml-3",3,"ngClass",4,"ngIf"],[1,"card-text","mb-2","text-truncate"],["href","javascript:void(0)",1,"card-link","grey-text",3,"click"],[1,"fas","fa-fw","fa-info-circle","fa-lg","mr-1"],[1,"grey-text"],["class","card-text mb-2",4,"ngIf"],[1,"card-text","mb-2"],["href","javascript:void(0)","class","card-link pink-text",3,"click",4,"ngIf"],["class","grey-text",4,"ngIf"],[1,"card-text","mb-0","grey-text"],[4,"ngIf"],["href","javascript:void(0)","class","card-link red-text",3,"click",4,"ngIf"],["href","javascript:void(0)",3,"click",4,"ngIf"],["ngbDropdown","","placement","left","class","d-inline-block ml-3 mt-auto",4,"ngIf"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"click","ngbTooltip","placement"],["class","fas fa-check-circle green-text fa-xl","aria-label","The developer has specifically marked this plugin as compatible with Homebridge v2.0",4,"ngIf"],["class","fas fa-question-circle orange-text fa-xl","aria-label","The developer has not specifically marked this plugin as compatible with Homebridge v2.0, but it may still work.",4,"ngIf"],["aria-label","The developer has specifically marked this plugin as compatible with Homebridge v2.0",1,"fas","fa-check-circle","green-text","fa-xl"],["aria-label","The developer has not specifically marked this plugin as compatible with Homebridge v2.0, but it may still work.",1,"fas","fa-question-circle","orange-text","fa-xl"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover",1,"card-link",3,"click","ngbTooltip"],[1,"far","fa-fw","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-sliders","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-fw","fa-bridge","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-fw","fa-qrcode","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-lg","ml-3",3,"ngClass"],["href","javascript:void(0)",1,"card-link","green-text",3,"click"],[1,"fas","fa-fw","fa-shield-alt","fa-lg","mr-1"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-fw","fa-shield-alt","fa-lg","mr-1",2,"opacity","0.25"],["href","javascript:void(0)",1,"card-link","pink-text",3,"click"],[1,"fas","fa-fw","fa-heart","fa-lg","mr-1"],[1,"fas","fa-fw","fa-heart","fa-lg","mr-1",2,"opacity","0.5"],[1,"far","fa-fw","fa-circle-dot","fa-lg","mr-1"],[1,"far","fa-fw","fa-circle-check","fa-lg","mr-1"],[1,"fas","fa-fw","fa-lg","fa-power-off","ml-3"],["href","javascript:void(0)",1,"card-link","red-text",3,"click"],["container","body","openDelay","150","triggers","hover",1,"far","fa-fw","fa-pause-circle","fa-lg",3,"ngbTooltip"],["href","javascript:void(0)",3,"click"],[1,"far","fa-fw","fa-arrow-alt-circle-down","fa-lg"],["ngbDropdown","","placement","left",1,"d-inline-block","ml-3","mt-auto"],["href","javascript:void(0)","ngbDropdownToggle","",1,"card-link","text-decoration-none","mt-auto",2,"outline","none"],[1,"fa-solid","fa-fw","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu","","aria-labelledby","Plugin Actions Dropdown"],["ngbDropdownItem","",3,"click"],[1,"fas","fa-fw","fa-sliders"],["ngbDropdownItem","",3,"click",4,"ngIf"],["class","dropdown-divider",4,"ngIf"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href",4,"ngIf"],[1,"fas","fa-fw","fa-wave-square"],[1,"fas","fa-fw","fa-code-compare"],[1,"fas","fa-fw","fa-code"],[1,"far","fa-fw","fa-circle-pause"],[1,"far","fa-fw","fa-circle-play"],[1,"fas","fa-fw","fa-trash"],[1,"dropdown-divider"],[1,"fas","fa-fw","fa-bridge"],[1,"fa-fw","icon-button","fas","fa-fw","fa-power-off"],[1,"fas","fa-fw","fa-stop"],[1,"fas","fa-fw","fa-play"],[1,"fas","fa-fw","fa-broom"],[1,"icon-button","fas","fa-fw","fa-bridge"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[1,"icon-button","fa","fa-fw","fa-question-circle-o"]],template:function(t,a){t&1&&(l(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),h("error",function(){return a.handleIconError()}),p(),I(4,Xe,3,4,"a",4),p(),l(5,"div",5)(6,"div",6)(7,"div",7)(8,"div",8)(9,"h5",9),f(10),p(),l(11,"div",10),I(12,Ye,4,6,"a",11)(13,Ze,4,6,"a",11)(14,ei,4,6,"a",11)(15,ii,4,6,"a",11),c(16,"i",12),I(17,ti,1,4,"i",13),p()(),l(18,"p",14)(19,"a",15),h("click",function(){return a.pluginInfoModal(a.plugin)}),c(20,"i",16),l(21,"span",17),f(22),p()()(),I(23,ni,6,3,"p",18)(24,ai,6,3,"p",18),l(25,"p",19),I(26,ri,4,1,"a",20)(27,oi,3,1,"span",21),p(),l(28,"div",8)(29,"p",22),I(30,si,5,2,"span",23)(31,pi,3,1,"span",23),p(),l(32,"div",10),I(33,di,3,3,"a",11)(34,ci,3,3,"a",24)(35,gi,2,0,"a",25)(36,$i,22,18,"span",26),p()()()()()()()),t&2&&(r(3),s("src",a.plugin.icon,$),r(),s("ngIf",a.plugin.installedVersion&&a.hb2Status!=="hide"),r(6),P(a.prettyDisplayName),r(2),s("ngIf",a.plugin.installedVersion&&a.plugin.updateAvailable&&!a.childBridgeRestartInProgress),r(),s("ngIf",a.plugin.installedVersion&&!a.plugin.updateAvailable&&!a.plugin.isConfigured&&!a.childBridgeRestartInProgress),r(),s("ngIf",a.plugin.installedVersion&&!a.plugin.updateAvailable&&a.plugin.isConfigured&&!a.plugin.hasChildBridges&&!a.plugin.disabled&&a.plugin.recommendChildBridge&&!a.childBridgeRestartInProgress),r(),s("ngIf",a.plugin.installedVersion&&!a.plugin.updateAvailable&&a.plugin.isConfigured&&a.plugin.hasChildBridges&&!a.childBridgeRestartInProgress&&a.hasUnpairedChildBridges&&a.childBridgeStatus==="ok"&&!a.plugin.disabled),r(),s("hidden",!a.childBridgeRestartInProgress),r(),s("ngIf",a.plugin.installedVersion&&!a.plugin.updateAvailable&&a.plugin.isConfigured&&a.plugin.hasChildBridges&&!a.childBridgeRestartInProgress&&!a.hasUnpairedChildBridges&&a.childBridgeStatus!=="ok"&&!a.plugin.disabled),r(5),P(a.plugin.name),r(),s("ngIf",a.plugin.verifiedPlugin||a.plugin.verifiedPlusPlugin),r(),s("ngIf",!a.plugin.verifiedPlugin&&!a.plugin.verifiedPlusPlugin),r(2),s("ngIf",(a.plugin.verifiedPlugin||a.plugin.verifiedPlusPlugin)&&a.plugin.funding),r(),s("ngIf",!((a.plugin.verifiedPlugin||a.plugin.verifiedPlusPlugin)&&a.plugin.funding)),r(3),s("ngIf",a.plugin.publicPackage&&!a.plugin.installedVersion),r(),s("ngIf",a.plugin.installedVersion),r(2),s("ngIf",!a.plugin.disabled&&a.plugin.hasChildBridges&&a.childBridgeStatus==="ok"),r(),s("ngIf",a.plugin.installedVersion&&a.plugin.disabled),r(),s("ngIf",a.plugin.publicPackage&&!a.plugin.installedVersion),r(),s("ngIf",a.plugin.installedVersion))},dependencies:[X,E,Ce,be,he,fe,_e,we,Z,M],encapsulation:2}));let i=o;return i})();function Mi(i,o){i&1&&c(0,"app-spinner")}function ji(i,o){i&1&&c(0,"i",13)}function Di(i,o){if(i&1&&(l(0,"div",14),c(1,"app-plugin-card",15),p()),i&2){let n=o.$implicit,e=g();r(),s("plugin",n)("childBridges",e.getPluginChildBridges(n))}}function Ni(i,o){i&1&&(l(0,"div",16),c(1,"i",17),l(2,"p"),f(3),u(4,"translate"),p()()),i&2&&(r(3),P(_(4,1,"plugins.placeholder_search_first")))}var Ne=(()=>{let o=class o{constructor(e,t,a,m,B,w,j){d(this,"$api");d(this,"$plugin");d(this,"$router");d(this,"$settings");d(this,"$toastr");d(this,"$translate");d(this,"$ws");d(this,"loading",!0);d(this,"installedPlugins",[]);d(this,"childBridges",[]);d(this,"form",new se({query:new pe("",[re.required])}));d(this,"io");d(this,"navigationSubscription");this.$api=e,this.$plugin=t,this.$router=a,this.$settings=m,this.$toastr=B,this.$translate=w,this.$ws=j}ngOnInit(){return k(this,null,function*(){this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>k(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins();let e=this.$router.parseUrl(this.$router.url).queryParams.installed;if(e){let t=this.installedPlugins.find(a=>a.name===e);t&&!t.isConfigured&&this.$plugin.settings(t),this.$router.navigate(["/plugins"])}})),this.io.socket.on("child-bridge-status-update",e=>{let t=this.childBridges.find(a=>a.username===e.username);t?Object.assign(t,e):this.childBridges.push(e)}),this.navigationSubscription=this.$router.events.subscribe(e=>{e instanceof ie&&this.loadInstalledPlugins()})})}loadInstalledPlugins(){return k(this,null,function*(){this.form.setValue({query:""}),this.installedPlugins=[],this.loading=!0;try{let e=yield V(this.$api.get("/plugins"));this.installedPlugins=e.filter(a=>a.name!=="homebridge-config-ui-x"),yield this.appendMetaInfo();let t=this.installedPlugins.sort((a,m)=>a.updateAvailable!==m.updateAvailable?a.updateAvailable?-1:1:a.newHbScope&&!m.newHbScope?-1:a.disabled!==m.disabled?a.disabled?1:-1:a.isConfigured!==m.isConfigured?a.isConfigured?1:-1:a.hasChildBridgesUnpaired!==m.hasChildBridgesUnpaired?a.hasChildBridgesUnpaired?-1:1:a.hasChildBridges!==m.hasChildBridges&&this.$settings.env.recommendChildBridges?a.hasChildBridges?1:-1:a.name.localeCompare(m.name));return this.loading=!1,t}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("plugins.toast_failed_to_load_plugins"),this.$translate.instant("toast.title_error"))}})}appendMetaInfo(){return k(this,null,function*(){yield Promise.all(this.installedPlugins.filter(e=>e.installedVersion).map(e=>k(this,null,function*(){try{let t=yield V(this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`));e.isConfigured=t.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.prototype.hasOwnProperty.call(t[0],"platform"),e.recommendChildBridge=e.isConfiguredDynamicPlatform&&this.$settings.env.recommendChildBridges&&this.$settings.env.serviceMode&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&t.some(m=>m._bridge&&m._bridge.username);let a=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=a.some(m=>!m.paired)}catch{e.isConfigured=!0,e.hasChildBridges=!0}})))})}search(){this.installedPlugins=[],this.loading=!0,this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`).subscribe({next:e=>{let t=new Set;this.installedPlugins=e.sort((a,m)=>a.newHbScope&&!m.newHbScope?-1:!a.newHbScope&&m.newHbScope?1:0).reduce((a,m)=>{if(m.name==="homebridge-config-ui-x"||t.has(m.name))return a;if(m.newHbScope){let B=m.newHbScope.to,w=e.some(j=>j.name===B);(m.installedVersion||!w)&&(t.add(B),a.push(m))}else a.push(m);return a},[]).sort((a,m)=>a.installedVersion!==m.installedVersion?a.installedVersion?-1:1:0),this.appendMetaInfo(),this.loading=!1},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}})}onClearSearch(){this.form.setValue({query:""}),this.loadInstalledPlugins()}onSubmit({value:e}){e.query.length?this.search():this.loadInstalledPlugins()}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges=e})}getPluginChildBridges(e){return this.childBridges.filter(t=>t.plugin===e.name)}ngOnDestroy(){this.navigationSubscription&&this.navigationSubscription.unsubscribe(),this.io.end()}};d(o,"\u0275fac",function(t){return new(t||o)(y(H),y(q),y(te),y(U),y(R),y(A),y(F))}),d(o,"\u0275cmp",T({type:o,selectors:[["ng-component"]],decls:16,vars:11,consts:[[4,"ngIf"],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"row"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"hb-npm-search",3,"placeholder"],["href","javascript:void(0)",1,"hb-npm-search-clear",3,"click"],["class","far fa-fw fa-times-circle",4,"ngIf"],[1,"d-flex","flex-wrap","justify-content-between"],["class","hb-plugin-space-between",4,"ngFor","ngForOf"],["class","alert alert-info mt-4 text-center w-100",4,"ngIf"],[1,"far","fa-fw","fa-times-circle"],[1,"hb-plugin-space-between"],[3,"plugin","childBridges"],[1,"alert","alert-info","mt-4","text-center","w-100"],[1,"fas","fa-fw","fa-magnifying-glass","primary-text","my-3",2,"font-size","75px"]],template:function(t,a){t&1&&(I(0,Mi,1,0,"app-spinner",0),l(1,"div",1)(2,"div",2)(3,"h3",3),f(4),u(5,"translate"),p()()(),l(6,"div",4)(7,"div",5)(8,"form",6),h("ngSubmit",function(){return a.onSubmit(a.form)}),c(9,"input",7),u(10,"translate"),l(11,"a",8),h("click",function(){return a.onClearSearch()}),I(12,ji,1,0,"i",9),p()()()(),l(13,"div",10),I(14,Di,2,2,"div",11)(15,Ni,5,3,"div",12),p()),t&2&&(s("ngIf",a.loading),r(4),P(_(5,7,"menu.label_plugins")),r(4),s("formGroup",a.form),r(),s("placeholder",_(10,9,"plugins.placeholder_search_plugin")),r(3),s("ngIf",a.form.controls.query.value),r(2),s("ngForOf",a.installedPlugins),r(),s("ngIf",a.installedPlugins.length===0&&!a.loading))},dependencies:[Y,E,de,ae,oe,le,ce,ge,ye,De,M],styles:[".hb-npm-search[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px;margin-bottom:15px}@media (hover: hover){.hb-npm-search[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.hb-npm-search[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.hb-npm-search-clear[_ngcontent-%COMP%]{position:absolute;right:25px;font-size:35px;color:#d0d0d0;line-height:50px;cursor:pointer}.hb-plugin-space-between[_ngcontent-%COMP%]{box-sizing:border-box;width:calc(50% - 6.6666666667px)}@media only screen and (max-width: 991px){.hb-plugin-space-between[_ngcontent-%COMP%]{width:100%}}"]}));let i=o;return i})();var Ai=[{path:"",component:Ne}],Ae=(()=>{let o=class o{};d(o,"\u0275fac",function(t){return new(t||o)}),d(o,"\u0275mod",N({type:o})),d(o,"\u0275inj",D({imports:[O.forChild(Ai),O]}));let i=o;return i})();var xt=(()=>{let o=class o{};d(o,"\u0275fac",function(t){return new(t||o)}),d(o,"\u0275mod",N({type:o})),d(o,"\u0275inj",D({imports:[ee,ue,me,ne.forChild(),Ie,Se,$e,Ae]}));let i=o;return i})();export{xt as PluginsModule};
@@ -1 +0,0 @@
1
- import{M as h}from"./chunk-FBJAWKJ3.js";import{b as y}from"./chunk-J6XB3JBO.js";import{$ as g,Ka as b,Ua as e,Va as o,Wa as f,ab as d,h as s,jb as l,kb as v,lb as _,sc as k,wa as t,xa as u,yb as i,zb as n}from"./chunk-IKFLHM2X.js";var w=(()=>{let a=class a{constructor(m,r){s(this,"$activeModal");s(this,"$router");this.$activeModal=m,this.$router=r}onRestartHomebridgeClick(){this.$router.navigate(["/restart"]),this.$activeModal.close()}};s(a,"\u0275fac",function(r){return new(r||a)(u(h),u(k))}),s(a,"\u0275cmp",g({type:a,selectors:[["ng-component"]],decls:25,vars:18,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body","w-100","text-center"],[1,"fas","fa-fw","fa-power-off","primary-text","mb-4",2,"font-size","75px"],[1,"w-100"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(r,p){r&1&&(e(0,"div",0)(1,"div",1)(2,"h5",2),l(3),i(4,"translate"),o(),e(5,"button",3),i(6,"translate"),d("click",function(){return p.$activeModal.dismiss("Dismiss")}),e(7,"span",4),l(8,"\xD7"),o()()(),e(9,"div",5),f(10,"i",6),e(11,"p",7),l(12),i(13,"translate"),o()(),e(14,"div",8)(15,"div",9)(16,"button",10),i(17,"translate"),d("click",function(){return p.$activeModal.dismiss("Dismiss")}),l(18),i(19,"translate"),o()(),f(20,"div",11),e(21,"div",12)(22,"button",13),d("click",function(){return p.onRestartHomebridgeClick()}),l(23),i(24,"translate"),o()()()()),r&2&&(t(3),v(n(4,6,"platform.version.service_restart_required")),t(2),b("aria-label",n(6,8,"form.button_close")),t(7),v(n(13,10,"restart.homebridge")),t(4),b("aria-label",n(17,12,"form.button_close")),t(2),_(" ",n(19,14,"form.button_close")," "),t(5),_(" ",n(24,16,"menu.tooltip_restart")," "))},dependencies:[y],encapsulation:2}));let c=a;return c})();export{w as a};
@@ -1 +0,0 @@
1
- import{a as be}from"./chunk-W7JQ7WHZ.js";import{a as ne}from"./chunk-BROJRIZL.js";import{d as Oe}from"./chunk-LKWF73XA.js";import"./chunk-BUGNOBXC.js";import"./chunk-WOJ7C5HX.js";import"./chunk-YAU2KWBZ.js";import"./chunk-D6UUGEUB.js";import{b as Xe}from"./chunk-IIFIWJYC.js";import"./chunk-RF5R32OJ.js";import"./chunk-VYUN5WLM.js";import"./chunk-S5FRWQPT.js";import{d as je}from"./chunk-3DLNWL2R.js";import{a as Ve}from"./chunk-7SIWB246.js";import"./chunk-EX6EQLNK.js";import"./chunk-QOPI77FO.js";import{G as R,M as D,N as G,O as Fe,Q as De,b as ee,c as he,e as te,f as xe,g as se,j as H,k as Se,l as ie,m as ke,n as ye,o as Ce,p as we,q as Ie,r as Ee,s as Be,t as $e,u as Te,v as Me,y as Ae,z as Ne}from"./chunk-FBJAWKJ3.js";import{c as N,k as F,m as ve}from"./chunk-FJK4IAO5.js";import{a as A,b as $,c as fe}from"./chunk-J6XB3JBO.js";import{$ as B,$b as ue,Ab as z,Ga as k,H as ae,Ka as v,La as u,Pb as O,Qb as j,Rb as M,Ua as t,Va as i,Wa as _,X as Y,Xb as q,Za as w,Zb as me,aa as Z,ab as b,bb as h,g as Qe,h as m,ha as y,i as E,ia as C,jb as a,kb as g,lb as f,mb as P,ob as pe,pb as ce,qb as de,sc as ge,t as T,ta as oe,tc as _e,ub as J,vb as V,vc as re,wa as e,xa as S,yb as r,zb as s}from"./chunk-IKFLHM2X.js";var le=Qe(Xe(),1);var Ye=(n,d)=>({"fa-download":n,"fa-cog fa-spin":d}),Ze=n=>({backupTime:n,dayCount:7}),et=(n,d)=>({"fa-trash":n,"fa-cog fa-spin":d}),tt=(n,d)=>({backupSize:n,maxBackupSizeText:d});function it(n,d){if(n&1&&(t(0,"li"),a(1),r(2,"date"),r(3,"translate"),i()),n&2){let p=h();e(),f(" ",z(3,4,"backup.scheduled_backup_time",J(7,Ze,z(2,1,p.backupTime,"shortTime")))," ")}}function nt(n,d){if(n&1&&(t(0,"span",30),r(1,"translate"),_(2,"i",31),a(3),i()),n&2){let p=h().$implicit;u("ngbTooltip",z(1,2,"backup.backup_exceeds_max_size",V(5,tt,p.size+"MB",p.maxBackupSizeText))),e(3),f(" ",p.size,"MB ")}}function at(n,d){if(n&1&&(t(0,"span"),a(1),i()),n&2){let p=h().$implicit;e(),f(" ",p.size,"MB ")}}function rt(n,d){if(n&1){let p=w();t(0,"li",10)(1,"span")(2,"span",25),a(3),r(4,"date"),i(),_(5,"br"),t(6,"small",11),a(7),r(8,"date"),k(9,nt,4,8,"span",26)(10,at,2,1,"span",8),i()(),t(11,"span",12)(12,"button",27),r(13,"translate"),r(14,"translate"),b("click",function(){let o=y(p).$implicit,c=h();return C(c.restore(o))}),_(15,"i",14),i(),t(16,"button",15),r(17,"translate"),r(18,"translate"),b("click",function(){let o=y(p).$implicit,c=h();return C(c.download(o))}),_(19,"i",28),i(),t(20,"button",29),r(21,"translate"),r(22,"translate"),b("click",function(){let o=y(p).$implicit,c=h();return C(c.delete(o))}),_(23,"i",16),i()()()}if(n&2){let p=d.$implicit,l=h();e(2),u("ngbTooltip",p.fileName),e(),f(" ",z(4,15,p.timestamp,"mediumDate")," "),e(4),f(" ",z(8,18,p.timestamp,"shortTime")," \xB7 "),e(2),u("ngIf",p.size>p.maxBackupSize),e(),u("ngIf",p.size<=p.maxBackupSize),e(2),u("disabled",l.clicked||l.deleting||p.size>p.maxBackupSize)("ngbTooltip",s(13,21,"form.button_restore")),v("aria-label",s(14,23,"form.button_restore")),e(4),u("disabled",l.clicked||l.deleting)("ngbTooltip",s(17,25,"form.button_download")),v("aria-label",s(18,27,"form.button_download")),e(4),u("disabled",l.clicked||l.deleting)("ngbTooltip",s(21,29,"form.button_delete")),v("aria-label",s(22,31,"form.button_delete")),e(3),u("ngClass",V(33,et,p.id!==l.deleting,p.id===l.deleting))}}function st(n,d){if(n&1&&(t(0,"div")(1,"div",32)(2,"h4",33),a(3),r(4,"translate"),i(),t(5,"p"),a(6),i()()()),n&2){let p=h();e(3),g(s(4,2,"toast.title_error")),e(3),g(p.errorMessage)}}var Re=(()=>{let d=class d{constructor(l,o,c,x,I){m(this,"$activeModal");m(this,"$api");m(this,"$modal");m(this,"$toastr");m(this,"$translate");m(this,"clicked",!1);m(this,"scheduledBackups",[]);m(this,"backupTime");m(this,"errorMessage","");m(this,"deleting",null);m(this,"Date",Date);this.$activeModal=l,this.$api=o,this.$modal=c,this.$toastr=x,this.$translate=I}ngOnInit(){this.getScheduledBackups(),this.getNextBackup()}getScheduledBackups(){this.$api.get("/backup/scheduled-backups").subscribe({next:l=>{this.scheduledBackups=l},error:l=>{this.errorMessage=l.error.message||l.message}})}getNextBackup(){this.$api.get("/backup/scheduled-backups/next").subscribe({next:l=>{this.backupTime=l.next},error:l=>{console.error(l)}})}download(l){this.$api.get(`/backup/scheduled-backups/${l.id}`,{observe:"response",responseType:"blob"}).subscribe({next:o=>{let c=l.fileName||"homebridge-backup.tar.gz",x=o.body.size;if(x>globalThis.backup.maxBackupSize){let I=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(x/1048576).toFixed(1)}MB`});this.$toastr.warning(I,this.$translate.instant("toast.title_warning"))}(0,le.saveAs)(o.body,c)},error:o=>{console.error(o),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})}restore(l){this.$activeModal.close();let o=this.$modal.open(ne,{size:"lg",backdrop:"static"});o.componentInstance.selectedBackup=l}delete(l){this.deleting=l.id,this.$api.delete(`/backup/scheduled-backups/${l.id}`).subscribe({next:()=>{this.getScheduledBackups(),this.deleting=null},error:o=>{this.deleting=null,console.error(o),this.$toastr.error(this.$translate.instant("backup.backup_delete_failed"),this.$translate.instant("toast.title_error"))}})}onDownloadBackupClick(){return E(this,null,function*(){this.clicked=!0,this.$api.get("/backup/download",{observe:"response",responseType:"blob"}).subscribe({next:l=>{let o=l.headers.get("File-Name")||"homebridge-backup.tar.gz";this.clicked=!1;let c=l.body.size;if(c>globalThis.backup.maxBackupSize){let x=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(c/1048576).toFixed(1)}MB`});this.$toastr.warning(x,this.$translate.instant("toast.title_warning"))}(0,le.saveAs)(l.body,o)},error:l=>{this.clicked=!1,console.error(l),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})})}};m(d,"\u0275fac",function(o){return new(o||d)(S(D),S(N),S(G),S(F),S(A))}),m(d,"\u0275cmp",B({type:d,selectors:[["ng-component"]],decls:54,vars:51,consts:[[1,"modal-content","hb-backup-modal"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mt-2","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[4,"ngIf"],[1,"list-group","list-group-box","mt-2"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[2,"display","flex","flex-wrap","nowrap"],["disabled","",1,"btn","btn-primary","ml-3"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","ml-1",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw",3,"ngClass"],["disabled","",1,"btn","btn-danger","ml-1"],[1,"fas","fa-fw","fa-trash"],["class","list-group-item d-flex justify-content-between align-items-center",4,"ngFor","ngForOf"],[1,"modal-footer","justify-content-between"],[1,"text-left"],[1,"text-center"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-right"],["container","modal","openDelay","150","triggers","hover",3,"ngbTooltip"],["container","modal","openDelay","150","triggers","hover","class","red-text",3,"ngbTooltip",4,"ngIf"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","ml-3",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-danger","ml-1",3,"click","disabled","ngbTooltip"],["container","modal","openDelay","150","triggers","hover",1,"red-text",3,"ngbTooltip"],[1,"fas","fa-fw","fa-exclamation-circle"],["role","alert",1,"alert","alert-error"],[1,"alert-heading"]],template:function(o,c){o&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),a(3),r(4,"translate"),i(),t(5,"button",3),r(6,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),t(7,"span",4),a(8,"\xD7"),i()()(),t(9,"div",5)(10,"div",6),_(11,"i",7),i(),t(12,"ul")(13,"li"),a(14),r(15,"translate"),i(),t(16,"li"),a(17),r(18,"translate"),i(),t(19,"li"),a(20),r(21,"translate"),i(),k(22,it,4,9,"li",8),i(),t(23,"ul",9)(24,"li",10)(25,"span")(26,"span"),a(27),r(28,"date"),i(),_(29,"br"),t(30,"small",11),a(31),r(32,"date"),r(33,"translate"),i()(),t(34,"span",12)(35,"button",13),r(36,"translate"),_(37,"i",14),i(),t(38,"button",15),r(39,"translate"),r(40,"translate"),b("click",function(){return c.onDownloadBackupClick()}),_(41,"i",16),i(),t(42,"button",17),r(43,"translate"),_(44,"i",18),i()()(),k(45,rt,24,36,"li",19),i(),k(46,st,7,4,"div",8),i(),t(47,"div",20),_(48,"div",21),t(49,"div",22)(50,"button",23),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),a(51),r(52,"translate"),i()(),_(53,"div",24),i()()),o&2&&(e(3),g(s(4,20,"backup.title_backup")),e(2),u("disabled",c.clicked||c.deleting),v("aria-label",s(6,22,"form.button_close")),e(9),g(s(15,24,"backup.backup_help_one")),e(3),g(s(18,26,"backup.backup_help_two")),e(3),g(s(21,28,"backup.backup_warning")),e(2),u("ngIf",c.backupTime),e(5),f(" ",z(28,30,c.Date.now(),"mediumDate")," "),e(4),P("",z(32,33,c.Date.now(),"shortTime")," \xB7 ",s(33,36,"backup.now"),""),e(4),v("aria-label",s(36,38,"form.button_restore")),e(3),u("disabled",c.clicked)("ngbTooltip",s(39,40,"form.button_download")),v("aria-label",s(40,42,"form.button_download")),e(3),u("ngClass",V(48,Ye,!c.clicked,c.clicked)),e(),v("aria-label",s(43,44,"form.button_delete")),e(3),u("ngForOf",c.scheduledBackups),e(),u("ngIf",c.errorMessage),e(4),u("disabled",c.clicked||c.deleting),e(),f(" ",s(52,46,"form.button_close")," "))},dependencies:[O,j,M,Fe,me,$],encapsulation:2}));let n=d;return n})();function lt(n,d){n&1&&(t(0,"div",11),_(1,"i",15),t(2,"p",16),a(3),r(4,"translate"),i()()),n&2&&(e(3),g(s(4,1,"reset.remove_cached_accessories_single_empty")))}function ot(n,d){n&1&&(t(0,"div")(1,"div",17),_(2,"i",18),i(),t(3,"ngb-alert",19)(4,"p",20),a(5),r(6,"translate"),i(),t(7,"ul",21)(8,"li"),a(9),r(10,"translate"),i(),t(11,"li"),a(12),r(13,"translate"),i(),t(14,"li",16),a(15),r(16,"translate"),i()()()()),n&2&&(e(3),u("dismissible",!1),e(2),g(s(6,5,"reset.action_is_irreversible")),e(4),g(s(10,7,"reset.clear_cache_all.list_1")),e(3),g(s(13,9,"reset.clear_cache_all.list_2")),e(3),g(s(16,11,"reset.clear_cache_all.list_3")))}function pt(n,d){if(n&1){let p=w();t(0,"button",22),r(1,"translate"),b("click",function(){y(p);let o=h();return C(o.$activeModal.dismiss("Dismiss"))}),a(2),r(3,"translate"),i()}if(n&2){let p=h();u("disabled",p.clicked),v("aria-label",s(1,3,"form.button_close")),e(2),f(" ",s(3,5,"form.button_close")," ")}}function ct(n,d){if(n&1){let p=w();t(0,"button",23),r(1,"translate"),b("click",function(){y(p);let o=h();return C(o.$activeModal.dismiss("Dismiss"))}),a(2),r(3,"translate"),i()}n&2&&(v("aria-label",s(1,2,"form.button_close")),e(2),f(" ",s(3,4,"form.button_close")," "))}function dt(n,d){n&1&&(t(0,"span"),a(1),r(2,"translate"),i()),n&2&&(e(),g(s(2,1,"form.button_remove")))}function mt(n,d){n&1&&_(0,"i",26)}function ut(n,d){if(n&1){let p=w();t(0,"button",24),b("click",function(){y(p);let o=h();return C(o.onResetCachedAccessoriesClick())}),k(1,dt,3,3,"span",7)(2,mt,1,0,"i",25),i()}if(n&2){let p=h();u("disabled",p.clicked),e(),u("ngIf",!p.clicked),e(),u("ngIf",p.clicked)}}var Ue=(()=>{let d=class d{constructor(l,o,c,x){m(this,"$activeModal");m(this,"$api");m(this,"$toastr");m(this,"$translate");m(this,"clicked");m(this,"cachedAccessories",[]);this.$activeModal=l,this.$api=o,this.$toastr=c,this.$translate=x}ngOnInit(){this.loadCachedAccessories()}loadCachedAccessories(){return E(this,null,function*(){try{this.cachedAccessories=yield T(this.$api.get("/server/cached-accessories"))}catch(l){console.error(l),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}onResetCachedAccessoriesClick(){return this.clicked=!0,this.$api.put("/server/reset-cached-accessories",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.delete_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()},error:l=>{this.clicked=!1,console.error(l),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}};m(d,"\u0275fac",function(o){return new(o||d)(S(D),S(N),S(F),S(A))}),m(d,"\u0275cmp",B({type:d,selectors:[["ng-component"]],decls:19,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],["class","text-center",4,"ngIf"],[4,"ngIf"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","class","btn btn-elegant","data-dismiss","modal",3,"disabled","click",4,"ngIf"],[1,"text-center"],["type","button","class","btn btn-elegant","data-dismiss","modal",3,"click",4,"ngIf"],[1,"text-right"],["type","button","class","btn btn-danger","data-dismiss","modal",3,"disabled","click",4,"ngIf"],[1,"fas","fa-fw","fa-circle-check","mb-4","primary-text",2,"font-size","75px"],[1,"mb-0"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-network-wired","mb-4","primary-text",2,"font-size","75px"],["type","error",2,"margin-bottom","0",3,"dismissible"],[1,"font-weight-bold"],[1,"mb-0","text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],["class","fas fa-fw fa-spinner fa-pulse",4,"ngIf"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(o,c){o&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),a(3),r(4,"translate"),i(),t(5,"button",3),r(6,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),t(7,"span",4),a(8,"\xD7"),i()()(),t(9,"div",5),k(10,lt,5,3,"div",6)(11,ot,17,13,"div",7),i(),t(12,"div",8)(13,"div",9),k(14,pt,4,7,"button",10),i(),t(15,"div",11),k(16,ct,4,6,"button",12),i(),t(17,"div",13),k(18,ut,3,3,"button",14),i()()()),o&2&&(e(3),g(s(4,8,"reset.clear_cache_all.title")),e(2),u("disabled",c.clicked),v("aria-label",s(6,10,"form.button_close")),e(5),u("ngIf",c.cachedAccessories.length===0),e(),u("ngIf",c.cachedAccessories.length>0),e(3),u("ngIf",c.cachedAccessories.length>0),e(2),u("ngIf",c.cachedAccessories.length===0),e(2),u("ngIf",c.cachedAccessories.length>0))},dependencies:[M,R,$],encapsulation:2}));let n=d;return n})();var gt=(n,d)=>({"fa-trash":n,"fa-cog fa-spin":d});function _t(n,d){n&1&&(t(0,"div",10),_(1,"i",13),t(2,"p",14),a(3),r(4,"translate"),i()()),n&2&&(e(3),g(s(4,1,"reset.clear_cache_bridge.empty")))}function ft(n,d){if(n&1){let p=w();t(0,"li",21)(1,"span"),a(2),r(3,"titlecase"),_(4,"br"),t(5,"small",22),a(6),i()(),t(7,"button",23),r(8,"translate"),b("click",function(){let o=y(p).$implicit,c=h(2);return C(c.removeAccessories(o._id))}),_(9,"i",24),i()()}if(n&2){let p=d.$implicit,l=h(2);e(2),P(" ",p.displayName," (",p._main?"Homebridge":s(3,6,p._category),") "),e(4),g(p._username),e(),u("disabled",l.deleting||l.deleted.includes(p._id)),v("aria-label",s(8,8,"form.button_delete")),e(2),u("ngClass",V(10,gt,p._id!==l.deleting,p._id===l.deleting))}}function vt(n,d){if(n&1&&(t(0,"div")(1,"div",15),_(2,"i",16),i(),t(3,"ngb-alert",17)(4,"ul",18)(5,"li"),a(6),r(7,"translate"),i(),t(8,"li"),a(9),r(10,"translate"),i(),t(11,"li"),a(12),r(13,"translate"),i()()(),t(14,"ul",19),k(15,ft,10,13,"li",20),i()()),n&2){let p=h();e(3),u("dismissible",!1),e(3),g(s(7,5,"reset.clear_cache_bridge.list_1")),e(3),g(s(10,7,"reset.clear_cache_single.list_3")),e(3),g(s(13,9,"reset.clear_cache_bridge.list_2")),e(3),u("ngForOf",p.pairings)}}var Pe=(()=>{let d=class d{constructor(l,o,c,x,I){m(this,"$activeModal");m(this,"$api");m(this,"$modal");m(this,"$toastr");m(this,"$translate");m(this,"pairings",[]);m(this,"deleting",null);m(this,"deleted",[]);this.$activeModal=l,this.$api=o,this.$modal=c,this.$toastr=x,this.$translate=I}ngOnInit(){this.loadPairings()}loadPairings(){return E(this,null,function*(){try{this.pairings=(yield T(this.$api.get("/server/pairings"))).filter(l=>l._category==="bridge"&&!l._main).sort((l,o)=>o._main?1:-1)}catch(l){console.error(l),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}removeAccessories(l){this.deleting=l,this.$api.delete(`/server/pairings/${l}/accessories`).subscribe({next:()=>E(this,null,function*(){yield this.loadPairings(),this.deleting=null,this.deleted.push(l),this.$toastr.success("",this.$translate.instant("toast.title_success"))}),error:o=>{this.deleting=null,console.error(o),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.unpair_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){if(this.deleted.length){let l=this.$modal.open(je,{size:"lg",backdrop:"static"});l.componentInstance.bridges=this.deleted.map(o=>{let{_username:c,displayName:x}=this.pairings.find(I=>I._id===o);return{displayName:x,username:c}})}}};m(d,"\u0275fac",function(o){return new(o||d)(S(D),S(N),S(G),S(F),S(A))}),m(d,"\u0275cmp",B({type:d,selectors:[["ng-component"]],decls:19,vars:13,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],["class","text-center",4,"ngIf"],[4,"ngIf"],[1,"modal-footer","justify-content-between"],[1,"text-left"],[1,"text-center"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-right"],[1,"fas","fa-fw","fa-circle-check","mb-4","primary-text",2,"font-size","75px"],[1,"mb-0"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-network-wired","primary-text",2,"font-size","75px"],["type","warning",3,"dismissible"],[1,"mb-0","text-left"],[1,"list-group","list-group-box","mt-2"],["class","list-group-item d-flex justify-content-between align-items-center",4,"ngFor","ngForOf"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw",3,"ngClass"]],template:function(o,c){o&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),a(3),r(4,"translate"),i(),t(5,"button",3),r(6,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),t(7,"span",4),a(8,"\xD7"),i()()(),t(9,"div",5),k(10,_t,5,3,"div",6)(11,vt,16,11,"div",7),i(),t(12,"div",8),_(13,"div",9),t(14,"div",10)(15,"button",11),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),a(16),r(17,"translate"),i()(),_(18,"div",12),i()()),o&2&&(e(3),g(s(4,7,"reset.clear_cache_bridge.title")),e(2),u("disabled",c.deleting),v("aria-label",s(6,9,"form.button_close")),e(5),u("ngIf",c.pairings.length===0),e(),u("ngIf",c.pairings.length>0),e(4),u("disabled",c.deleting),e(),f(" ",s(17,11,"form.button_close")," "))},dependencies:[O,j,M,R,q,$],encapsulation:2}));let n=d;return n})();var bt=(n,d)=>({"fa-trash":n,"fa-cog fa-spin":d});function ht(n,d){n&1&&(t(0,"div",10),_(1,"i",13),t(2,"p",14),a(3),r(4,"translate"),i()()),n&2&&(e(3),g(s(4,1,"reset.remove_cached_accessories_single_empty")))}function xt(n,d){if(n&1){let p=w();t(0,"li",21)(1,"span"),a(2),_(3,"br"),t(4,"small",22),a(5),i()(),t(6,"button",23),r(7,"translate"),b("click",function(){let o=y(p).$implicit,c=h(2);return C(c.removeAccessory(o))}),_(8,"i",24),i()()}if(n&2){let p=d.$implicit,l=h(2);e(2),P(" ",p.displayName," (",p.plugin,") "),e(3),g(p.UUID),e(),u("disabled",l.deleting),v("aria-label",s(7,6,"form.button_delete")),e(2),u("ngClass",V(8,bt,p.UUID!==l.deleting,p.UUID===l.deleting))}}function St(n,d){if(n&1&&(t(0,"div")(1,"div",15),_(2,"i",16),i(),t(3,"ngb-alert",17)(4,"ul",18)(5,"li"),a(6),r(7,"translate"),i(),t(8,"li"),a(9),r(10,"translate"),i(),t(11,"li"),a(12),r(13,"translate"),i(),t(14,"li",14),a(15),r(16,"translate"),i()()(),t(17,"ul",19),k(18,xt,9,11,"li",20),i()()),n&2){let p=h();e(3),u("dismissible",!1),e(3),g(s(7,6,"reset.clear_cache_single.list_1")),e(3),g(s(10,8,"reset.clear_cache_single.list_2")),e(3),g(s(13,10,"reset.clear_cache_single.list_3")),e(3),g(s(16,12,"reset.clear_cache_single.list_4")),e(3),u("ngForOf",p.cachedAccessories)}}var ze=(()=>{let d=class d{constructor(l,o,c,x){m(this,"$activeModal");m(this,"$api");m(this,"$toastr");m(this,"$translate");m(this,"cachedAccessories",[]);m(this,"deleting",null);this.$activeModal=l,this.$api=o,this.$toastr=c,this.$translate=x}ngOnInit(){this.loadCachedAccessories()}loadCachedAccessories(){return E(this,null,function*(){try{this.cachedAccessories=yield T(this.$api.get("/server/cached-accessories"))}catch(l){console.error(l),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}removeAccessory(l){this.deleting=l.UUID,this.$toastr.info(this.$translate.instant("reset.removing_cached_accessory_please_wait")),this.$api.delete(`/server/cached-accessories/${l.UUID}`,{params:{cacheFile:l.$cacheFile}}).subscribe({next:()=>E(this,null,function*(){yield this.loadCachedAccessories(),this.deleting=null,this.cachedAccessories.length||this.$activeModal.close(),this.$toastr.success(this.$translate.instant("reset.cached_accessory_removed"),this.$translate.instant("toast.title_success"))}),error:o=>{this.deleting=null,console.error(o),this.$toastr.error(this.$translate.instant("reset.delete_failed"),this.$translate.instant("toast.title_error"))}})}};m(d,"\u0275fac",function(o){return new(o||d)(S(D),S(N),S(F),S(A))}),m(d,"\u0275cmp",B({type:d,selectors:[["ng-component"]],decls:19,vars:13,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],["class","text-center",4,"ngIf"],[4,"ngIf"],[1,"modal-footer","justify-content-between"],[1,"text-left"],[1,"text-center"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-right"],[1,"fas","fa-fw","fa-circle-check","mb-4","primary-text",2,"font-size","75px"],[1,"mb-0"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-network-wired","mb-4","primary-text",2,"font-size","75px"],["type","warning",3,"dismissible"],[1,"mb-0","text-left"],[1,"list-group","list-group-box","mt-2"],["class","list-group-item d-flex justify-content-between align-items-center",4,"ngFor","ngForOf"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-danger","ml-3",3,"click","disabled"],[1,"fas","fa-fw",3,"ngClass"]],template:function(o,c){o&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),a(3),r(4,"translate"),i(),t(5,"button",3),r(6,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),t(7,"span",4),a(8,"\xD7"),i()()(),t(9,"div",5),k(10,ht,5,3,"div",6)(11,St,19,14,"div",7),i(),t(12,"div",8),_(13,"div",9),t(14,"div",10)(15,"button",11),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),a(16),r(17,"translate"),i()(),_(18,"div",12),i()()),o&2&&(e(3),g(s(4,7,"reset.clear_cache_single.title")),e(2),u("disabled",c.deleting),v("aria-label",s(6,9,"form.button_close")),e(5),u("ngIf",c.cachedAccessories.length===0),e(),u("ngIf",c.cachedAccessories.length>0),e(4),u("disabled",c.deleting),e(),f(" ",s(17,11,"form.button_close")," "))},dependencies:[O,j,M,R,$],encapsulation:2}));let n=d;return n})();function yt(n,d){if(n&1){let p=w();t(0,"li",18)(1,"span")(2,"label",19)(3,"input",20),de("ngModelChange",function(o){let c=y(p).$implicit;return ce(c.selected,o)||(c.selected=o),C(o)}),i(),t(4,"span"),a(5),i(),_(6,"span",21),i()(),t(7,"span"),a(8),i()()}if(n&2){let p=d.$implicit;e(2),u("for","adapter"+p.iface),e(),u("id","adapter"+p.iface),pe("ngModel",p.selected),e(2),g(p.iface),e(3),f(" ",p.ip4||p.ip6," ")}}var He=(()=>{let d=class d{constructor(l){m(this,"$activeModal");m(this,"availableNetworkAdapters");m(this,"bridgeNetworkAdapters");this.$activeModal=l}submit(){this.$activeModal.close(this.availableNetworkAdapters.filter(l=>l.selected).map(l=>l.iface))}};m(d,"\u0275fac",function(o){return new(o||d)(S(D))}),m(d,"\u0275cmp",B({type:d,selectors:[["ng-component"]],inputs:{availableNetworkAdapters:"availableNetworkAdapters",bridgeNetworkAdapters:"bridgeNetworkAdapters"},decls:37,vars:25,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-ethernet","mb-4","primary-text",2,"font-size","75px"],[1,"alert"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","flex-row","justify-content-between"],["class","list-group-item d-flex flex-row flex-wrap justify-content-between",4,"ngFor","ngForOf"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click"],[1,"list-group-item","d-flex","flex-row","flex-wrap","justify-content-between"],[1,"hb-uix-switch","d-inline","pr-3",3,"for"],["type","checkbox",3,"ngModelChange","id","ngModel"],[1,"hb-uix-slider","hb-uix-round"]],template:function(o,c){o&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),a(3),r(4,"translate"),i(),t(5,"button",3),r(6,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),t(7,"span",4),a(8,"\xD7"),i()()(),t(9,"div",5)(10,"div",6),_(11,"i",7),i(),t(12,"div",8),a(13),r(14,"translate"),i(),t(15,"ul",9)(16,"li",10)(17,"span")(18,"strong"),a(19),r(20,"translate"),i()(),t(21,"span")(22,"strong"),a(23),r(24,"translate"),i()()(),k(25,yt,9,5,"li",11),i()(),t(26,"div",12)(27,"div",13)(28,"button",14),r(29,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),a(30),r(31,"translate"),i()(),_(32,"div",15),t(33,"div",16)(34,"button",17),b("click",function(){return c.submit()}),a(35),r(36,"translate"),i()()()()),o&2&&(e(3),g(s(4,9,"settings.network.title_network_interfaces")),e(2),v("aria-label",s(6,11,"form.button_close")),e(8),g(s(14,13,"settings.network.message_network_interface")),e(6),g(s(20,15,"settings.network.label_interface_name")),e(4),g(s(24,17,"settings.network.label_ip_address")),e(2),u("ngForOf",c.availableNetworkAdapters),e(3),v("aria-label",s(29,19,"form.button_close")),e(2),f(" ",s(31,21,"form.button_close")," "),e(5),f(" ",s(36,23,"form.button_save")," "))},dependencies:[j,ee,te,ie,$],encapsulation:2}));let n=d;return n})();function wt(n,d){n&1&&(t(0,"span"),a(1),r(2,"translate"),i()),n&2&&(e(),g(s(2,1,"form.button_reset")))}function It(n,d){n&1&&_(0,"i",20)}var Ge=(()=>{let d=class d{constructor(l,o,c,x,I){m(this,"$activeModal");m(this,"$api");m(this,"$route");m(this,"$toastr");m(this,"$translate");m(this,"clicked");this.$activeModal=l,this.$api=o,this.$route=c,this.$toastr=x,this.$translate=I}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:l=>{console.error(l),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}};m(d,"\u0275fac",function(o){return new(o||d)(S(D),S(N),S(ge),S(F),S(A))}),m(d,"\u0275cmp",B({type:d,selectors:[["ng-component"]],decls:40,vars:33,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],["type","error",2,"margin-bottom","0",3,"dismissible"],[1,"font-weight-bold"],[1,"mb-0","text-left"],[1,"mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[4,"ngIf"],["class","fas fa-fw fa-spinner fa-pulse",4,"ngIf"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(o,c){o&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),a(3),r(4,"translate"),i(),t(5,"button",3),r(6,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),t(7,"span",4),a(8,"\xD7"),i()()(),t(9,"div",5)(10,"div",6),_(11,"i",7),i(),t(12,"ngb-alert",8)(13,"p",9),a(14),r(15,"translate"),i(),t(16,"ul",10)(17,"li"),a(18),r(19,"translate"),i(),t(20,"li"),a(21),r(22,"translate"),i(),t(23,"li"),a(24),r(25,"translate"),i(),t(26,"li",11),a(27),r(28,"translate"),i()()()(),t(29,"div",12)(30,"div",13)(31,"button",14),r(32,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),a(33),r(34,"translate"),i()(),_(35,"div",15),t(36,"div",16)(37,"button",17),b("click",function(){return c.onResetHomebridgeAccessoryClick()}),k(38,wt,3,3,"span",18)(39,It,1,0,"i",19),i()()()()),o&2&&(e(3),g(s(4,15,"reset.bridges_all.title")),e(2),u("disabled",c.clicked),v("aria-label",s(6,17,"form.button_close")),e(7),u("dismissible",!1),e(2),g(s(15,19,"reset.action_is_irreversible")),e(4),g(s(19,21,"reset.bridges_all.list_1")),e(3),g(s(22,23,"reset.bridges_all.list_2")),e(3),g(s(25,25,"reset.bridges_all.list_3")),e(3),g(s(28,27,"reset.bridges_all.list_4")),e(4),u("disabled",c.clicked),v("aria-label",s(32,29,"form.button_close")),e(2),f(" ",s(34,31,"form.button_close")," "),e(4),u("disabled",c.clicked),e(),u("ngIf",!c.clicked),e(),u("ngIf",c.clicked))},dependencies:[M,R,$],encapsulation:2}));let n=d;return n})();var Et=(n,d)=>({"fa-link-slash":n,"fa-cog fa-spin":d});function Bt(n,d){n&1&&(t(0,"div",10),_(1,"i",13),t(2,"p",14),a(3),r(4,"translate"),i()()),n&2&&(e(3),g(s(4,1,"reset.bridges.empty")))}function $t(n,d){if(n&1){let p=w();t(0,"li",21)(1,"span"),a(2),r(3,"titlecase"),_(4,"br"),t(5,"small",22),a(6),i()(),t(7,"button",23),r(8,"translate"),b("click",function(){let o=y(p).$implicit,c=h(2);return C(c.removeAccessory(o._id))}),_(9,"i",24),i()()}if(n&2){let p=d.$implicit,l=h(2);e(2),P(" ",p.displayName," (",p._main?"Homebridge":s(3,6,p._category),") "),e(4),g(p._username),e(),u("disabled",l.deleting),v("aria-label",s(8,8,"form.button_unpair")),e(2),u("ngClass",V(10,Et,p._id!==l.deleting,p._id===l.deleting))}}function Tt(n,d){if(n&1&&(t(0,"div")(1,"div",15),_(2,"i",16),i(),t(3,"ngb-alert",17)(4,"ul",18)(5,"li"),a(6),r(7,"translate"),i(),t(8,"li"),a(9),r(10,"translate"),i(),t(11,"li",14),a(12),r(13,"translate"),i()()(),t(14,"ul",19),k(15,$t,10,13,"li",20),i()()),n&2){let p=h();e(3),u("dismissible",!1),e(3),g(s(7,5,"reset.bridges_single.list_1")),e(3),g(s(10,7,"reset.bridges_single.list_2")),e(3),g(s(13,9,"reset.bridges_single.list_3")),e(3),u("ngForOf",p.pairings)}}var Le=(()=>{let d=class d{constructor(l,o,c,x,I){m(this,"$activeModal");m(this,"$api");m(this,"$modal");m(this,"$toastr");m(this,"$translate");m(this,"pairings",[]);m(this,"deleting",null);m(this,"unpaired",!1);this.$activeModal=l,this.$api=o,this.$modal=c,this.$toastr=x,this.$translate=I}ngOnInit(){this.loadPairings()}loadPairings(){return E(this,null,function*(){try{this.pairings=(yield T(this.$api.get("/server/pairings"))).sort((l,o)=>o._main?1:-1)}catch(l){console.error(l),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}removeAccessory(l){this.deleting=l,this.$api.delete(`/server/pairings/${l}`).subscribe({next:()=>E(this,null,function*(){yield this.loadPairings(),this.pairings.length||this.$activeModal.close(),this.deleting=null,this.unpaired=!0,this.$toastr.success(this.$translate.instant("plugins.settings.restart_required"),this.$translate.instant("toast.title_success"))}),error:o=>{this.deleting=null,console.error(o),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.unpair_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.unpaired&&this.$modal.open(Ve,{size:"lg",backdrop:"static"})}};m(d,"\u0275fac",function(o){return new(o||d)(S(D),S(N),S(G),S(F),S(A))}),m(d,"\u0275cmp",B({type:d,selectors:[["ng-component"]],decls:19,vars:13,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],["class","text-center",4,"ngIf"],[4,"ngIf"],[1,"modal-footer","justify-content-between"],[1,"text-left"],[1,"text-center"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-right"],[1,"fas","fa-fw","fa-circle-check","mb-4","primary-text",2,"font-size","75px"],[1,"mb-0"],[1,"text-center","mb-4"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],["type","warning",3,"dismissible"],[1,"mb-0","text-left"],[1,"list-group","list-group-box","mt-2"],["class","list-group-item d-flex justify-content-between align-items-center",4,"ngFor","ngForOf"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw",3,"ngClass"]],template:function(o,c){o&1&&(t(0,"div",0)(1,"div",1)(2,"h5",2),a(3),r(4,"translate"),i(),t(5,"button",3),r(6,"translate"),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),t(7,"span",4),a(8,"\xD7"),i()()(),t(9,"div",5),k(10,Bt,5,3,"div",6)(11,Tt,16,11,"div",7),i(),t(12,"div",8),_(13,"div",9),t(14,"div",10)(15,"button",11),b("click",function(){return c.$activeModal.dismiss("Dismiss")}),a(16),r(17,"translate"),i()(),_(18,"div",12),i()()),o&2&&(e(3),g(s(4,7,"reset.bridges_single.title")),e(2),u("disabled",c.deleting),v("aria-label",s(6,9,"form.button_close")),e(5),u("ngIf",c.pairings.length===0),e(),u("ngIf",c.pairings.length>0),e(4),u("disabled",c.deleting),e(),f(" ",s(17,11,"form.button_close")," "))},dependencies:[O,j,M,R,q,$],encapsulation:2}));let n=d;return n})();var Mt=n=>({"fa-pulse":n}),We=n=>({"is-invalid":n}),At=(n,d)=>({"badge-danger":n,"badge-info":d});function Nt(n,d){if(n&1){let p=w();t(0,"ul",14)(1,"li",15)(2,"span",16),a(3),r(4,"translate"),i(),t(5,"button",17),r(6,"translate"),b("click",function(){y(p);let o=h();return C(o.openBackupModal())}),_(7,"i",18),i()(),t(8,"li",15)(9,"span",16),a(10),r(11,"translate"),i(),t(12,"button",17),r(13,"translate"),b("click",function(){y(p);let o=h();return C(o.openRestoreModal())}),_(14,"i",18),i()(),t(15,"li",15)(16,"span",16),a(17),r(18,"translate"),i(),t(19,"a",19),r(20,"translate"),_(21,"i",18),i()(),t(22,"li",15)(23,"span",16),a(24),r(25,"translate"),i(),t(26,"button",17),r(27,"translate"),b("click",function(){y(p);let o=h();return C(o.openUiSettings())}),_(28,"i",20),i()()()}n&2&&(e(3),f(" ",s(4,8,"backup.title_backup")," "),e(2),v("aria-label",s(6,10,"backup.title_backup")),e(5),f(" ",s(11,12,"form.button_restore")," "),e(2),v("aria-label",s(13,14,"form.button_restore")),e(5),f(" ",s(18,16,"menu.tooltip_user_accounts")," "),e(2),v("aria-label",s(20,18,"menu.tooltip_user_accounts")),e(5),f(" ",s(25,20,"menu.label_settings_advanced")," "),e(2),v("aria-label",s(27,22,"menu.label_settings_advanced")))}function Ft(n,d){n&1&&(t(0,"li",74)(1,"small",75),a(2),r(3,"translate"),i(),t(4,"button",76),r(5,"translate"),a(6),r(7,"translate"),i()()),n&2&&(e(2),g(s(3,3,"settings.changes.saved")),e(2),v("aria-label",s(5,5,"menu.tooltip_restart")),e(2),f(" ",s(7,7,"menu.tooltip_restart")," "))}function Dt(n,d){if(n&1){let p=w();t(0,"ul",21)(1,"li",22)(2,"span"),a(3),r(4,"translate"),i(),t(5,"div",23)(6,"select",24),b("ngModelChange",function(o){y(p);let c=h();return C(c.saveUiSettingChange("lang",o))}),t(7,"option",25),a(8),r(9,"translate"),i(),t(10,"option",26),a(11,"Bulgarian (bg)"),i(),t(12,"option",27),a(13,"Catalan (ca)"),i(),t(14,"option",28),a(15,"Chinese - Simplified (zh-CN)"),i(),t(16,"option",29),a(17,"Chinese - Traditional (zh-TW)"),i(),t(18,"option",30),a(19,"Czech (cs)"),i(),t(20,"option",31),a(21,"Dutch (nl)"),i(),t(22,"option",32),a(23,"English (en)"),i(),t(24,"option",33),a(25,"Finnish (fi)"),i(),t(26,"option",34),a(27,"French (fr)"),i(),t(28,"option",35),a(29,"German (de)"),i(),t(30,"option",36),a(31,"Hebrew (he)"),i(),t(32,"option",37),a(33,"Hungarian (hu)"),i(),t(34,"option",38),a(35,"Indonesian (id)"),i(),t(36,"option",39),a(37,"Italian (it)"),i(),t(38,"option",40),a(39,"Japanese (ja)"),i(),t(40,"option",41),a(41,"Korean (ko)"),i(),t(42,"option",42),a(43,"Macedonian (mk)"),i(),t(44,"option",43),a(45,"Norwegian (no)"),i(),t(46,"option",44),a(47,"Polish (pl)"),i(),t(48,"option",45),a(49,"Portuguese (Brazil)"),i(),t(50,"option",46),a(51,"Portuguese (Portugal)"),i(),t(52,"option",47),a(53,"Russian (ru)"),i(),t(54,"option",48),a(55,"Slovenian (sl)"),i(),t(56,"option",49),a(57,"Spanish (es)"),i(),t(58,"option",50),a(59,"Swedish (sv)"),i(),t(60,"option",51),a(61,"Thai (th)"),i(),t(62,"option",52),a(63,"Turkish (tr)"),i(),t(64,"option",53),a(65,"Ukrainian (uk)"),i()()()(),t(66,"li",22)(67,"span"),a(68),r(69,"translate"),i(),t(70,"div",23)(71,"select",24),b("ngModelChange",function(o){y(p);let c=h();return C(c.saveUiSettingChange("theme",o))}),t(72,"option",54),a(73),r(74,"translate"),i(),t(75,"option",55),a(76),r(77,"translate"),i(),t(78,"option",56),a(79),r(80,"translate"),i(),t(81,"option",57),a(82),r(83,"translate"),i(),t(84,"option",58),a(85),r(86,"translate"),i(),t(87,"option",59),a(88),r(89,"translate"),i(),t(90,"option",60),a(91),r(92,"translate"),i(),t(93,"option",61),a(94),r(95,"translate"),i(),t(96,"option",62),a(97),r(98,"translate"),i(),t(99,"option",63),a(100),r(101,"translate"),i(),t(102,"option",64),a(103),r(104,"translate"),i(),t(105,"option",65),a(106),r(107,"translate"),i(),t(108,"option",66),a(109),r(110,"translate"),i()()()(),t(111,"li",22)(112,"span"),a(113),r(114,"translate"),i(),t(115,"div",23)(116,"select",24),b("ngModelChange",function(o){y(p);let c=h();return C(c.saveUiSettingChange("lightingMode",o))}),t(117,"option",25),a(118),r(119,"translate"),i(),t(120,"option",67),a(121),r(122,"translate"),i(),t(123,"option",68),a(124),r(125,"translate"),i()()()(),t(126,"li",22)(127,"span"),a(128),r(129,"translate"),_(130,"br")(131,"small",69),r(132,"translate"),i(),t(133,"div",23)(134,"input",70),b("ngModelChange",function(o){y(p);let c=h();return C(c.saveUiSettingChange("loginWallpaper",o))}),i()()(),t(135,"li",22)(136,"span"),a(137),r(138,"translate"),i(),t(139,"div",23)(140,"select",24),b("ngModelChange",function(o){y(p);let c=h();return C(c.saveUiSettingChange("tempUnits",o))}),t(141,"option",71),a(142),r(143,"translate"),i(),t(144,"option",72),a(145),r(146,"translate"),i()()()(),k(147,Ft,8,9,"li",73),i()}if(n&2){let p=h();e(3),g(s(4,31,"settings.display.lang")),e(3),u("ngModel",p.$settings.env.lang),e(2),g(s(9,33,"form.select.auto")),e(60),g(s(69,35,"settings.display.theme")),e(3),u("ngModel",p.$settings.theme),e(2),g(s(74,37,"settings.display.orange")),e(3),g(s(77,39,"settings.display.red")),e(3),g(s(80,41,"settings.display.pink")),e(3),g(s(83,43,"settings.display.purple")),e(3),g(s(86,45,"settings.display.deep_purple")),e(3),g(s(89,47,"settings.display.indigo")),e(3),g(s(92,49,"settings.display.blue")),e(3),g(s(95,51,"settings.display.bluegrey")),e(3),g(s(98,53,"settings.display.cyan")),e(3),g(s(101,55,"settings.display.green")),e(3),g(s(104,57,"settings.display.teal")),e(3),g(s(107,59,"settings.display.grey")),e(3),g(s(110,61,"settings.display.brown")),e(4),g(s(114,63,"settings.display.lighting_mode")),e(3),u("ngModel",p.$settings.lightingMode),e(2),g(s(119,65,"form.select.auto")),e(3),g(s(122,67,"settings.display.light")),e(3),g(s(125,69,"settings.display.dark")),e(4),f(" ",s(129,71,"settings.display.login_wallpaper"),""),e(3),u("innerHTML",s(132,73,"settings.display.login_wallpaper_desc"),oe),e(3),u("ngModel",p.$settings.loginWallpaper),e(3),g(s(138,75,"settings.display.temp_units")),e(3),u("ngModel",p.$settings.env.temperatureUnits),e(2),g(s(143,77,"settings.display.temp_units.c")),e(3),g(s(146,79,"settings.display.temp_units.f")),e(2),u("ngIf",p.hasChangedLoginWallpaper)}}function Vt(n,d){if(n&1&&(t(0,"li",15)(1,"span"),a(2),r(3,"translate"),t(4,"code"),a(5,"-D"),i(),_(6,"br"),t(7,"small",81),a(8),r(9,"translate"),i()(),_(10,"input",82),r(11,"translate"),_(12,"label",83),i()),n&2){let p=h(3);e(2),f(" ",s(3,3,"settings.startup.debug")," "),e(6),f(" ",s(9,5,p.isHbV2?"settings.startup.debug_desc_v2":"settings.startup.debug_desc_v1")," "),e(2),v("aria-label",s(11,7,"settings.startup.debug"))}}function jt(n,d){n&1&&(t(0,"li",15)(1,"span"),a(2),r(3,"translate"),t(4,"code"),a(5,"-I"),i(),_(6,"br"),t(7,"small",81),a(8),r(9,"translate"),i()(),_(10,"input",84),r(11,"translate"),_(12,"label",85),i()),n&2&&(e(2),f(" ",s(3,3,"settings.startup.insecure")," "),e(6),g(s(9,5,"settings.startup.insecure_desc")),e(2),v("aria-label",s(11,7,"settings.startup.insecure")))}function Ot(n,d){n&1&&(t(0,"li",15)(1,"span"),a(2),r(3,"translate"),t(4,"code"),a(5,"-K"),i(),_(6,"br"),t(7,"small",81),a(8),r(9,"translate"),i()(),_(10,"input",86),r(11,"translate"),_(12,"label",87),i()),n&2&&(e(2),f(" ",s(3,3,"settings.startup.keep_accessories")," "),e(6),g(s(9,5,"settings.startup.keep_accessories_desc")),e(2),v("aria-label",s(11,7,"settings.startup.keep_accessories")))}function Rt(n,d){n&1&&(t(0,"li",22)(1,"span")(2,"span",88),a(3,"DEBUG"),i(),_(4,"br"),t(5,"small",81),a(6),r(7,"translate"),t(8,"a",89),a(9),r(10,"translate"),_(11,"i",90),i()()(),t(12,"div",23),_(13,"input",91),i()()),n&2&&(e(6),f(" ",s(7,2,"settings.service.debug_tooltip")," "),e(3),f(" ",s(10,4,"form.button_more_info")," "))}function Ut(n,d){n&1&&(t(0,"li",22)(1,"span")(2,"span",88),a(3,"NODE_OPTIONS"),i(),_(4,"br"),t(5,"small",81),a(6),r(7,"translate"),i()(),t(8,"div",23),_(9,"input",92),i()()),n&2&&(e(6),g(s(7,1,"settings.service.node_tooltip")))}function Pt(n,d){n&1&&(t(0,"li",15)(1,"span"),a(2),r(3,"translate"),_(4,"br"),t(5,"small",81),a(6),r(7,"translate"),i()(),t(8,"a",93),r(9,"translate"),_(10,"i",18),i()()),n&2&&(e(2),f(" ",s(3,3,"menu.docker.startup_script"),""),e(4),g(s(7,5,"platform.docker.script_help")),e(2),v("aria-label",s(9,7,"menu.docker.startup_script")))}function zt(n,d){n&1&&(t(0,"li",74)(1,"small",75),a(2),r(3,"translate"),i(),t(4,"button",76),r(5,"translate"),a(6),r(7,"translate"),i()()),n&2&&(e(2),g(s(3,3,"settings.changes.saved")),e(2),v("aria-label",s(5,5,"menu.tooltip_restart")),e(2),f(" ",s(7,7,"menu.tooltip_restart")," "))}function Ht(n,d){if(n&1&&(t(0,"ul",78),k(1,Vt,13,9,"li",79)(2,jt,13,9,"li",79)(3,Ot,13,9,"li",79)(4,Rt,14,6,"li",80)(5,Ut,10,3,"li",80)(6,Pt,11,9,"li",79)(7,zt,8,9,"li",73),i()),n&2){let p=h(2);e(),u("ngIf",p.$settings.env.serviceMode),e(),u("ngIf",p.$settings.env.serviceMode),e(),u("ngIf",p.$settings.env.serviceMode),e(),u("ngIf",p.$settings.env.serviceMode),e(),u("ngIf",p.$settings.env.serviceMode),e(),u("ngIf",p.$settings.env.runningInDocker),e(),u("ngIf",p.hasChangedService)}}function Gt(n,d){if(n&1){let p=w();t(0,"form",8)(1,"div",2),b("click",function(){y(p);let o=h();return C(o.toggleSection("startup"))}),t(2,"h5",3),_(3,"i",4),a(4),r(5,"translate"),i()(),k(6,Ht,8,7,"ul",77),i()}if(n&2){let p=h();u("formGroup",p.serviceForm),e(),v("aria-expanded",p.showFields.startup?"true":"false")("aria-controls","fieldsStartup"),e(2),u("ngClass",p.showFields.startup?"fa-chevron-down":"fa-chevron-right"),e(),f(" ",s(5,6,"settings.title_startup_options")," "),e(2),u("ngIf",p.showFields.startup)}}function Lt(n,d){n&1&&_(0,"i",108)}function Wt(n,d){if(n&1&&(t(0,"span")(1,"span",105),k(2,Lt,1,0,"i",106),a(3),t(4,"span",107),a(5),r(6,"translate"),i()()()),n&2){let p=d.$implicit;e(),u("ngClass",V(6,At,p.missing,!p.missing)),e(),u("ngIf",p.missing),e(),f(" ",p.iface,": "),e(2),g(p.missing?s(6,4,"settings.mdns_advertiser_not_connected"):p.ip4||p.ip6)}}function Kt(n,d){n&1&&(t(0,"option",109),a(1),r(2,"translate"),i()),n&2&&(e(),f(" Avahi (",s(2,1,"settings.mdns_advertiser_rec"),") "))}function Jt(n,d){n&1&&(t(0,"option",110),a(1),r(2,"translate"),i()),n&2&&(e(),f(" systemd-resolved (",s(2,1,"settings.mdns_advertiser_exp"),") "))}function qt(n,d){n&1&&(t(0,"li",74)(1,"small",75),a(2),r(3,"translate"),i(),t(4,"button",76),r(5,"translate"),a(6),r(7,"translate"),i()()),n&2&&(e(2),g(s(3,3,"settings.changes.saved")),e(2),v("aria-label",s(5,5,"menu.tooltip_restart")),e(2),f(" ",s(7,7,"menu.tooltip_restart")," "))}function Qt(n,d){if(n&1){let p=w();t(0,"ul",94)(1,"li",15)(2,"span",16)(3,"div"),a(4),r(5,"translate"),_(6,"br"),t(7,"small",81),a(8),r(9,"translate"),i()(),k(10,Wt,7,9,"span",95),i(),t(11,"button",96),r(12,"translate"),b("click",function(){y(p);let o=h();return C(o.selectNetworkInterfaces())}),_(13,"i",97),i()(),t(14,"li",22)(15,"span"),a(16),r(17,"translate"),_(18,"br"),t(19,"small",81),a(20),r(21,"translate"),i()(),t(22,"div",23)(23,"select",98),r(24,"translate"),k(25,Kt,3,3,"option",99),t(26,"option",100),a(27),r(28,"translate"),i(),t(29,"option",101),a(30,"Bonjour HAP"),i(),k(31,Jt,3,3,"option",102),i()()(),t(32,"li",22)(33,"span"),a(34),r(35,"translate"),_(36,"br"),t(37,"small",81),a(38),r(39,"translate"),i()(),t(40,"div",23),_(41,"input",103),r(42,"translate"),i()(),t(43,"li",22)(44,"span"),a(45),r(46,"translate"),_(47,"br"),t(48,"small",81),a(49),r(50,"translate"),i()(),t(51,"div",23),_(52,"input",104),r(53,"translate"),i()(),k(54,qt,8,9,"li",73),i()}if(n&2){let p=h();e(4),f(" ",s(5,23,"settings.network.title_network_interfaces"),""),e(4),g(s(9,25,"settings.network.message_network_interface")),e(2),u("ngForOf",p.bridgeNetworkAdapters),e(),u("disabled",!p.availableNetworkAdapters.length),v("aria-label",s(12,27,"settings.network.title_network_interfaces")),e(2),u("ngClass",J(49,Mt,!p.availableNetworkAdapters.length)),e(3),f(" ",s(17,29,"settings.mdns_advertiser"),""),e(4),g(s(21,31,"settings.mdns_advertiser_help")),e(3),u("formControl",p.legacyMdnsFormControl),v("aria-label",s(24,33,"settings.mdns_advertiser")),e(2),u("ngIf",p.showAvahiMdnsOption),e(2),f(" Ciao ",p.showAvahiMdnsOption?"":"("+s(28,35,"settings.mdns_advertiser_rec")+")"," "),e(4),u("ngIf",p.showResolvedMdnsOption),e(3),f(" ",s(35,37,"settings.network.port_hb"),""),e(4),g(s(39,39,"settings.network.port_hb_desc")),e(3),u("formControl",p.hbPortFormControl)("ngClass",J(51,We,p.isInvalidHbPort)),v("aria-label",s(42,41,"settings.network.port_ui")),e(4),f(" ",s(46,43,"settings.network.port_ui"),""),e(4),g(s(50,45,"settings.network.port_ui_desc")),e(3),u("ngClass",J(53,We,p.isInvalidHbUiPort)),v("aria-label",s(53,47,"settings.network.port_ui")),e(2),u("ngIf",p.hasChangedHbPort||p.hasChangedUiSettings||p.hasChangedMdns||p.hasChangedBridgeNetworkAdapters)}}function Xt(n,d){n&1&&(t(0,"p",112),a(1),r(2,"translate"),i()),n&2&&(e(),g(s(2,1,"settings.cache.desc")))}function Yt(n,d){if(n&1){let p=w();t(0,"ul",113)(1,"li",15)(2,"span",16),a(3),r(4,"translate"),_(5,"br"),t(6,"small",81),a(7),r(8,"translate"),i()(),t(9,"button",17),r(10,"translate"),b("click",function(){y(p);let o=h(2);return C(o.removeSingleCachedAccessories())}),_(11,"i",18),i()(),t(12,"li",15)(13,"span",16),a(14),r(15,"translate"),_(16,"br"),t(17,"small",81),a(18),r(19,"translate"),i()(),t(20,"button",17),r(21,"translate"),b("click",function(){y(p);let o=h(2);return C(o.removeBridgeAccessories())}),_(22,"i",18),i()(),t(23,"li",15)(24,"span",16),a(25),r(26,"translate"),_(27,"br"),t(28,"small",81),a(29),r(30,"translate"),i()(),t(31,"button",17),r(32,"translate"),b("click",function(){y(p);let o=h(2);return C(o.removeAllCachedAccessories())}),_(33,"i",18),i()()()}n&2&&(e(3),f(" ",s(4,9,"reset.clear_cache_single.title"),""),e(4),g(s(8,11,"reset.clear_cache_single.desc")),e(2),v("aria-label",s(10,13,"reset.clear_cache_single.title")),e(5),f(" ",s(15,15,"reset.clear_cache_bridge.title"),""),e(4),g(s(19,17,"reset.clear_cache_bridge.desc")),e(2),v("aria-label",s(21,19,"reset.clear_cache_all.title")),e(5),f(" ",s(26,21,"reset.clear_cache_all.title"),""),e(4),g(s(30,23,"reset.clear_cache_all.desc")),e(2),v("aria-label",s(32,25,"reset.clear_cache_all.title")))}function Zt(n,d){if(n&1){let p=w();t(0,"div",1)(1,"div",2),b("click",function(){y(p);let o=h();return C(o.toggleSection("cache"))}),t(2,"h5",3),_(3,"i",4),a(4),r(5,"translate"),i()(),k(6,Xt,3,3,"p",11)(7,Yt,34,27,"ul",111),i()}if(n&2){let p=h();e(),v("aria-expanded",p.showFields.cache?"true":"false")("aria-controls","fieldsCache"),e(2),u("ngClass",p.showFields.cache?"fa-chevron-down":"fa-chevron-right"),e(),f(" ",s(5,6,"settings.cache.title")," "),e(2),u("ngIf",p.showFields.cache),e(),u("ngIf",p.showFields.cache)}}function ei(n,d){n&1&&(t(0,"p",112),a(1),r(2,"translate"),i()),n&2&&(e(),g(s(2,1,"reset.bridges.desc")))}function ti(n,d){if(n&1){let p=w();t(0,"ul",114)(1,"li",15)(2,"span",16),a(3),r(4,"translate"),_(5,"br"),t(6,"small",81),a(7),r(8,"translate"),i()(),t(9,"button",17),r(10,"translate"),b("click",function(){y(p);let o=h();return C(o.unpairAccessory())}),_(11,"i",18),i()(),t(12,"li",15)(13,"span",16),a(14),r(15,"translate"),r(16,"titlecase"),_(17,"br"),t(18,"small",81),a(19),r(20,"translate"),i()(),t(21,"button",17),r(22,"translate"),b("click",function(){y(p);let o=h();return C(o.resetHomebridgeState())}),_(23,"i",18),i()()()}n&2&&(e(3),f(" ",s(4,6,"reset.bridges_single.title"),""),e(4),g(s(8,8,"reset.bridges_single.desc")),e(2),v("aria-label",s(10,10,"reset.bridges_single.title")),e(5),f(" ",s(16,14,s(15,12,"reset.bridges_all.title")),""),e(5),g(s(20,16,"reset.bridges_all.desc")),e(2),v("aria-label",s(22,18,"reset.bridges_all.title")))}var Ke=(()=>{let d=class d{constructor(l,o,c,x,I,qe){m(this,"$api");m(this,"$modal");m(this,"$plugin");m(this,"$settings");m(this,"$toastr");m(this,"$translate");m(this,"originalServiceForm",{HOMEBRIDGE_DEBUG:!1,HOMEBRIDGE_KEEP_ORPHANS:!1,HOMEBRIDGE_INSECURE:!0,ENV_DEBUG:"",ENV_NODE_OPTIONS:""});m(this,"originalUiSettingsForm",{port:0});m(this,"originalLoginWallpaper","");m(this,"originalMdnsSetting","");m(this,"originalBridgeNetworkAdapters",[]);m(this,"originalHbPort",0);m(this,"hasChangedService",!1);m(this,"hasChangedUiSettings",!1);m(this,"hasChangedMdns",!1);m(this,"hasChangedBridgeNetworkAdapters",!1);m(this,"hasChangedHbPort",!1);m(this,"hasChangedLoginWallpaper",!1);m(this,"isInvalidHbPort",!1);m(this,"isInvalidHbUiPort",!1);m(this,"serviceForm",new se({HOMEBRIDGE_DEBUG:new H(!1),HOMEBRIDGE_KEEP_ORPHANS:new H(!1),HOMEBRIDGE_INSECURE:new H(!0),ENV_DEBUG:new H(""),ENV_NODE_OPTIONS:new H("")}));m(this,"uiSettingsForm",new se({port:new H(0)}));m(this,"loginWallpaper","");m(this,"legacyMdnsFormControl",new Se(!1));m(this,"showAvahiMdnsOption",!1);m(this,"showResolvedMdnsOption",!1);m(this,"availableNetworkAdapters",[]);m(this,"bridgeNetworkAdapters",[]);m(this,"hbPortFormControl",new H(0));m(this,"isHbV2",!1);m(this,"showFields",{general:!0,display:!0,startup:!0,network:!0,reset:!0,cache:!0});this.$api=l,this.$modal=o,this.$plugin=c,this.$settings=x,this.$toastr=I,this.$translate=qe}ngOnInit(){this.isHbV2=this.$settings.env.homebridgeVersion.startsWith("2"),this.initUiSettingsForm(),this.initDisplaySettingsForm(),this.initNetworkingOptions(),this.$settings.env.serviceMode&&this.initServiceModeForm()}initUiSettingsForm(){this.originalUiSettingsForm={port:this.$settings.env.port},this.uiSettingsForm.patchValue({port:this.$settings.env.port}),this.uiSettingsForm.valueChanges.pipe(ae(500)).subscribe(l=>{let o=!1;Object.keys(l).forEach(c=>{this.originalUiSettingsForm[c]!==l[c]&&(this.saveUiSettingChange(c,l[c]),o=!0)}),this.hasChangedUiSettings=o})}initServiceModeForm(){this.$api.get("/platform-tools/hb-service/homebridge-startup-settings").subscribe({next:l=>{Object.keys(l).forEach(o=>{this.originalServiceForm[o]=l[o]}),this.serviceForm.patchValue(l),this.serviceForm.valueChanges.pipe(ae(500)).subscribe(this.saveServiceModeSettings.bind(this))},error:l=>{console.error(l),this.$toastr.error(l.message,this.$translate.instant("toast.title_error"))}})}initDisplaySettingsForm(){this.originalLoginWallpaper=this.$settings.loginWallpaper,this.loginWallpaper=this.$settings.loginWallpaper}saveUiSettingChange(l,o){switch(l){case"lang":this.$settings.setLang(o);break;case"lightingMode":this.$settings.setLightingMode(o,"user");break;case"theme":this.$settings.setTheme(o);break;case"tempUnits":this.$settings.setEnvItem("temperatureUnits",o);break;case"loginWallpaper":this.$settings.setEnvItem("loginWallpaper",o),this.hasChangedLoginWallpaper=o!==this.originalLoginWallpaper;break;case"port":if(!o||typeof o!="number"||o<1025||o>65533||Number.isInteger(o)===!1||o===this.hbPortFormControl.value){this.isInvalidHbUiPort=!0;return}this.$settings.setEnvItem("port",o),this.isInvalidHbUiPort=!1;break}T(this.$api.put("/config-editor/ui",{key:l,value:o})).catch(c=>{console.error(c),this.$toastr.error(c.message,this.$translate.instant("toast.title_error"))})}openUiSettings(){this.$plugin.settings({name:"homebridge-config-ui-x",displayName:"Homebridge UI",settingsSchema:!0,links:{}})}openRestoreModal(){this.$modal.open(ne,{size:"lg",backdrop:"static"})}openBackupModal(){this.$modal.open(Re,{size:"lg",backdrop:"static"})}saveServiceModeSettings(l=this.serviceForm.value){this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",l).subscribe({next:()=>{this.hasChangedService=JSON.stringify(l)!==JSON.stringify(this.originalServiceForm)},error:o=>{console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error"))}})}resetHomebridgeState(){this.$modal.open(Ge,{size:"lg",backdrop:"static"})}unpairAccessory(){this.$modal.open(Le,{size:"lg",backdrop:"static"})}removeAllCachedAccessories(){this.$modal.open(Ue,{size:"lg",backdrop:"static"})}removeSingleCachedAccessories(){this.$modal.open(ze,{size:"lg",backdrop:"static"})}removeBridgeAccessories(){this.$modal.open(Pe,{size:"lg",backdrop:"static"})}initNetworkingOptions(){return E(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 E(this,null,function*(){return Promise.all([T(this.$api.get("/server/network-interfaces/system")),T(this.$api.get("/server/network-interfaces/bridge")),T(this.$api.get("/server/mdns-advertiser")),T(this.$api.get("/server/port"))]).then(([l,o,c,x])=>{this.availableNetworkAdapters=l,this.buildBridgeNetworkAdapterList(o),this.legacyMdnsFormControl.patchValue(c.advertiser),this.originalMdnsSetting=c.advertiser,this.originalBridgeNetworkAdapters=this.bridgeNetworkAdapters.map(I=>I.iface),this.legacyMdnsFormControl.valueChanges.subscribe(I=>{this.setHomebridgeMdnsSetting(I)}),this.hbPortFormControl.patchValue(x.port),this.hbPortFormControl.valueChanges.subscribe(I=>this.setHomebridgePort(I)),this.originalHbPort=x.port})})}setHomebridgeMdnsSetting(l){return E(this,null,function*(){this.$api.put("/server/mdns-advertiser",{advertiser:l}).subscribe({next:()=>{this.hasChangedMdns=l!==this.originalMdnsSetting},error:o=>{console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error"))}})})}setNetworkInterfaces(l){return E(this,null,function*(){this.$api.put("/server/network-interfaces/bridge",{adapters:l}).subscribe({next:()=>{this.hasChangedBridgeNetworkAdapters=this.originalBridgeNetworkAdapters.join(",")!==l.join(",")},error:o=>{console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error"))}})})}setHomebridgePort(l){return E(this,null,function*(){if(l===this.uiSettingsForm.get("port").value){this.isInvalidHbPort=!0;return}this.$api.put("/server/port",{port:l}).subscribe({next:()=>{this.hasChangedHbPort=this.originalHbPort!==l,this.isInvalidHbPort=!1},error:()=>{this.isInvalidHbPort=!0}})})}buildBridgeNetworkAdapterList(l){if(!l.length){this.bridgeNetworkAdapters=[];return}this.bridgeNetworkAdapters=l.map(o=>{let c=this.availableNetworkAdapters.find(x=>x.iface===o);return c?(c.selected=!0,c.missing=!1,c):{iface:o,missing:!0}})}selectNetworkInterfaces(){let l=this.$modal.open(He,{size:"lg",backdrop:"static"});l.componentInstance.availableNetworkAdapters=this.availableNetworkAdapters,l.componentInstance.bridgeNetworkAdapters=this.bridgeNetworkAdapters,l.result.then(o=>{this.buildBridgeNetworkAdapterList(o),this.setNetworkInterfaces(o)}).catch(()=>{})}toggleSection(l){this.showFields[l]=!this.showFields[l]}};m(d,"\u0275fac",function(o){return new(o||d)(S(N),S(G),S(Oe),S(ve),S(F),S(A))}),m(d,"\u0275cmp",B({type:d,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"],["class","list-group list-group-box mt-2 mx-0","id","fieldsGeneral",4,"ngIf"],["class","list-group list-group-box mt-2 mx-0","id","fieldsDisplay",4,"ngIf"],["class","my-4","novalidate","",3,"formGroup",4,"ngIf"],["novalidate","",1,"my-4",3,"formGroup"],["class","list-group list-group-box mt-2 mx-0","id","fieldsNetwork",4,"ngIf"],["class","my-4",4,"ngIf"],["class","small grey-text mb-2 mx-0",4,"ngIf"],["class","list-group list-group-box mt-2 mx-0","id","fieldsReset",4,"ngIf"],[1,"pb-3"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pr-2"],[1,"btn","btn-primary","waves-effect","m-0","ml-3",2,"min-width","50px",3,"click"],[1,"fas","fa-fw","fa-chevron-right"],["routerLink","/users",1,"btn","btn-primary","waves-effect","m-0","ml-3",2,"min-width","50px"],[1,"fas","fa-fw","fa-sliders"],["id","fieldsDisplay",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-block","d-md-flex","justify-content-between","align-items-center"],[1,"my-3","my-md-0","pl-0","pl-md-5","w-auto"],[1,"custom-select","resp-select",3,"ngModelChange","ngModel"],["value","auto"],["value","bg"],["value","ca"],["value","zh-CN"],["value","zh-TW"],["value","cs"],["value","nl"],["value","en"],["value","fi"],["value","fr"],["value","de"],["value","he"],["value","hu"],["value","id"],["value","it"],["value","ja"],["value","ko"],["value","mk"],["value","no"],["value","pl"],["value","pt-BR"],["value","pt"],["value","ru"],["value","sl"],["value","es"],["value","sv"],["value","th"],["value","tr"],["value","uk"],["value","orange"],["value","red"],["value","pink"],["value","purple"],["value","deep-purple"],["value","indigo"],["value","blue"],["value","blue-grey"],["value","cyan"],["value","green"],["value","teal"],["value","grey"],["value","brown"],["value","light"],["value","dark"],[1,"grey-text","pr-2",3,"innerHTML"],["name","search_wallpaper","autocomplete","off","type","text","placeholder","/path-to/image.png",1,"form-control","custom-input","form-control-sm","resp-input",3,"ngModelChange","ngModel"],["value","c"],["value","f"],["class","list-group-item d-flex flex-column align-items-center",4,"ngIf"],[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"],["class","list-group list-group-box mb-4 mx-0","id","fieldsStartup",4,"ngIf"],["id","fieldsStartup",1,"list-group","list-group-box","mb-4","mx-0"],["class","list-group-item d-flex justify-content-between align-items-center",4,"ngIf"],["class","list-group-item d-block d-md-flex justify-content-between align-items-center",4,"ngIf"],[1,"grey-text","pr-2"],["type","checkbox","id","homebridgeDebugMode","formControlName","HOMEBRIDGE_DEBUG",1,"rendux-input"],["for","homebridgeDebugMode",1,"rendux-label","ml-3",2,"min-width","50px"],["type","checkbox","id","homebridgeInsecureMode","formControlName","HOMEBRIDGE_INSECURE",1,"rendux-input"],["for","homebridgeInsecureMode",1,"rendux-label","ml-3",2,"min-width","50px"],["type","checkbox","id","homebridgeKeepOrphans","formControlName","HOMEBRIDGE_KEEP_ORPHANS",1,"rendux-input"],["for","homebridgeKeepOrphans",1,"rendux-label","ml-3",2,"min-width","50px"],[1,"text-monospace"],["href","https://github.com/homebridge/homebridge-config-ui-x/wiki/Debug-Common-Values","target","_blank"],[1,"fa","fa/fw","fas","fa-fw","fa-external-link-alt"],["formControlName","ENV_DEBUG","type","text","placeholder","HAP-NodeJS:Advertiser,HAP-NodeJS:Service",1,"form-control","custom-input","form-control-sm","resp-input"],["formControlName","ENV_NODE_OPTIONS","type","text","placeholder","--max-old-space-size=512 --max-http-header-size=8192",1,"form-control","custom-input","form-control-sm","resp-input"],["routerLink","/platform-tools/docker/startup-script",1,"btn","btn-primary","waves-effect","m-0","ml-3",2,"min-width","50px"],["id","fieldsNetwork",1,"list-group","list-group-box","mt-2","mx-0"],[4,"ngFor","ngForOf"],[1,"btn","btn-primary","waves-effect","m-0","ml-3",2,"min-width","50px",3,"click","disabled"],[1,"fas","fa-fw","fa-chevron-right",3,"ngClass"],[1,"custom-select","resp-select",3,"formControl"],["value","avahi",4,"ngIf"],["value","ciao"],["value","bonjour-hap"],["value","resolved",4,"ngIf"],["type","number","min","1025","max","65533",1,"form-control","custom-input","form-control-sm","resp-input",3,"formControl","ngClass"],["type","number","min","1025","max","65533","placeholder","8581","formControlName","port",1,"form-control","custom-input","form-control-sm","resp-input",3,"ngClass"],[1,"badge","badge-pill","mr-1",3,"ngClass"],["class","fas fa-fw fa-exclamation-triangle",4,"ngIf"],[1,"font-weight-normal"],[1,"fas","fa-fw","fa-exclamation-triangle"],["value","avahi"],["value","resolved"],["class","list-group list-group-box mb-4 mx-0","id","fieldsCache",4,"ngIf"],[1,"small","grey-text","mb-2","mx-0"],["id","fieldsCache",1,"list-group","list-group-box","mb-4","mx-0"],["id","fieldsReset",1,"list-group","list-group-box","mt-2","mx-0"]],template:function(o,c){o&1&&(t(0,"h3",0),a(1),r(2,"translate"),i(),t(3,"div",1)(4,"div",2),b("click",function(){return c.toggleSection("general")}),t(5,"h5",3),_(6,"i",4),a(7),r(8,"translate"),i()(),k(9,Nt,29,24,"ul",5),i(),t(10,"div",1)(11,"div",2),b("click",function(){return c.toggleSection("display")}),t(12,"h5",3),_(13,"i",4),a(14),r(15,"translate"),i()(),k(16,Dt,148,81,"ul",6),i(),k(17,Gt,7,8,"form",7),t(18,"form",8)(19,"div",2),b("click",function(){return c.toggleSection("network")}),t(20,"h5",3),_(21,"i",4),a(22),r(23,"translate"),i()(),k(24,Qt,55,55,"ul",9),i(),k(25,Zt,8,8,"div",10),t(26,"div",1)(27,"div",2),b("click",function(){return c.toggleSection("reset")}),t(28,"h5",3),_(29,"i",4),a(30),r(31,"translate"),i()(),k(32,ei,3,3,"p",11)(33,ti,24,20,"ul",12),i(),_(34,"div",13)),o&2&&(e(),g(s(2,25,"menu.settings.title")),e(3),v("aria-expanded",c.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),e(2),u("ngClass",c.showFields.general?"fa-chevron-down":"fa-chevron-right"),e(),f(" ",s(8,27,"settings.general.title_general")," "),e(2),u("ngIf",c.showFields.general),e(2),v("aria-expanded",c.showFields.display?"true":"false")("aria-controls","fieldsDisplay"),e(2),u("ngClass",c.showFields.display?"fa-chevron-down":"fa-chevron-right"),e(),f(" ",s(15,29,"settings.general.title_display")," "),e(2),u("ngIf",c.showFields.display),e(),u("ngIf",c.$settings.env.serviceMode||c.$settings.env.runningInDocker),e(),u("formGroup",c.uiSettingsForm),e(),v("aria-expanded",c.showFields.network?"true":"false")("aria-controls","fieldsNetwork"),e(2),u("ngClass",c.showFields.network?"fa-chevron-down":"fa-chevron-right"),e(),f(" ",s(23,31,"settings.network.title_network")," "),e(2),u("ngIf",c.showFields.network),e(),u("ngIf",c.$settings.env.serviceMode),e(2),v("aria-expanded",c.showFields.reset?"true":"false")("aria-controls","fieldsReset"),e(2),u("ngClass",c.showFields.reset?"fa-chevron-down":"fa-chevron-right"),e(),f(" ",s(31,33,"reset.bridges.title")," "),e(2),u("ngIf",c.showFields.reset),e(),u("ngIf",c.showFields.reset))},dependencies:[O,j,M,ke,Be,$e,he,ye,ee,Ee,te,xe,Me,Te,ie,Ce,we,Ie,_e,q,$],encapsulation:2}));let n=d;return n})();var ii=[{path:"",component:Ke,canActivate:[be]}],Je=(()=>{let d=class d{};m(d,"\u0275fac",function(o){return new(o||d)}),m(d,"\u0275mod",Z({type:d})),m(d,"\u0275inj",Y({imports:[re.forChild(ii),re]}));let n=d;return n})();var gn=(()=>{let d=class d{};m(d,"\u0275fac",function(o){return new(o||d)}),m(d,"\u0275mod",Z({type:d})),m(d,"\u0275inj",Y({imports:[ue,Ae,Ne,fe,De,Je]}));let n=d;return n})();export{gn as SettingsModule};
@@ -1 +0,0 @@
1
- import{$b as m,X as i,aa as o,h as r,vc as a}from"./chunk-IKFLHM2X.js";var l=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",loadChildren:()=>import("./chunk-WD7T2C7Z.js").then(e=>e.DockerModule)},{path:"linux",loadChildren:()=>import("./chunk-RTI2NE3Q.js").then(e=>e.LinuxModule)},{path:"terminal",loadChildren:()=>import("./chunk-CU3OXDK7.js").then(e=>e.TerminalModule)}],c=(()=>{let t=class t{};r(t,"\u0275fac",function(n){return new(n||t)}),r(t,"\u0275mod",o({type:t})),r(t,"\u0275inj",i({imports:[a.forChild(l),a]}));let e=t;return e})();var C=(()=>{let t=class t{};r(t,"\u0275fac",function(n){return new(n||t)}),r(t,"\u0275mod",o({type:t})),r(t,"\u0275inj",i({imports:[m,c]}));let e=t;return e})();export{C as PlatformToolsModule};
@@ -1 +0,0 @@
1
- import{a as ne}from"./chunk-J6XB3JBO.js";import{$ as Tt,$a as te,Da as it,Db as ft,Ga as st,Ka as nt,La as C,Lb as Mt,M as Ut,Ma as ot,Oa as A,Rb as jt,Ua as F,Va as H,W as N,Wa as rt,X as Wt,Xa as xt,Y as Gt,Ya as It,Z as I,Za as St,_ as G,a as j,aa as Jt,ab as at,b as W,bb as S,da as Kt,e as Zt,g as ge,h as n,ha as wt,hc as ee,i as Yt,ia as Dt,jb as R,l as k,la as pt,lb as Y,nc as ie,oa as Ct,oc as se,sa as Qt,sb as Ot,t as qt,ta as $t,wa as _,xa as Z,za as Xt}from"./chunk-IKFLHM2X.js";var oe=Zt((Ne,ve)=>{ve.exports={name:"homebridge-config-ui-x",displayName:"Homebridge UI",version:"4.62.1-beta.9",description:"A web based management, configuration and control platform for Homebridge.",author:"oznu <dev@oz.nu>",license:"MIT",funding:[{type:"github",url:"https://github.com/sponsors/oznu"},{type:"paypal",url:"https://paypal.me/oznu"}],repository:{type:"git",url:"git+https://github.com/homebridge/homebridge-config-ui-x.git"},bugs:{url:"https://github.com/homebridge/homebridge-config-ui-x/issues"},keywords:["homebridge-plugin","ui","gui","web","homebridge","homebridge-config-ui-x","ui-x","config-ui-x","homebridge-x","homebridge server","homebridge ui","homebridge-ui","homebridge gui","homebridge-gui","web interface","config ui","management","config editor","linux","macOS","osx","windows","raspberry pi","accessory control","smart home","hb-service"],main:"./dist/index.js",bin:{"homebridge-config-ui-x":"dist/bin/standalone.js","hb-service":"dist/bin/hb-service.js"},engines:{node:"^18 || ^20 || ^22",homebridge:"^1.8.0 || ^2.0.0-beta.0"},scripts:{build:"npm run build:server && npm run build:ui","build:server":"rimraf dist && tsc -p tsconfig.build.json","build:ui":"npm run build --prefix ui",check:"npm run check:server && npm run check:ui","check:server":"npm install && npm outdated","check:ui":"npm install --prefix ui && npm outdated --prefix ui","lang-sync":"ts-node scripts/lang-sync.ts",lint:"eslint . --max-warnings=0","lint:fix":"npm run lint -- --fix",prepublishOnly:"npm i --package-lock-only && npm run lint && npm run build",start:"ts-node -r tsconfig-paths/register src/main.ts",test:"vitest run","test-coverage":"npm run test -- --coverage","upgrade-install":"./scripts/upgrade-install.sh",watch:'concurrently "npm run watch:ui" "npm run watch:server"',"watch:server":"nodemon","watch:ui":"npm run start --prefix ui"},dependencies:{"@fastify/helmet":"11.1.1","@fastify/multipart":"8.3.0","@fastify/static":"7.0.4","@homebridge/hap-client":"1.10.2","@homebridge/node-pty-prebuilt-multiarch":"0.11.14","@nestjs/axios":"3.1.0","@nestjs/common":"10.4.6","@nestjs/core":"10.4.6","@nestjs/jwt":"10.2.0","@nestjs/passport":"10.0.3","@nestjs/platform-fastify":"10.4.6","@nestjs/platform-socket.io":"10.4.6","@nestjs/swagger":"7.4.2","@nestjs/websockets":"10.4.6",axios:"1.7.7","bash-color":"0.0.4","buffer-shims":"1.0.0","class-transformer":"0.5.1","class-validator":"0.14.1",commander:"12.1.0",dayjs:"1.11.13",fastify:"4.28.1","fs-extra":"11.2.0",jsonwebtoken:"9.0.2",lodash:"4.17.21","node-cache":"5.1.2","node-schedule":"2.1.1",ora:"5.4.1",otplib:"12.0.1","p-limit":"3.1.0",passport:"0.7.0","passport-jwt":"4.0.1","reflect-metadata":"0.2.2",rxjs:"7.8.1",semver:"7.6.3",systeminformation:"5.23.5",tail:"2.2.6",tar:"6.2.1","tcp-port-used":"1.0.2",unzipper:"0.12.3"},devDependencies:{"@antfu/eslint-config":"^3.8.0","@nestjs/testing":"^10.4.6","@types/fs-extra":"^11.0.4","@types/lodash":"^4.17.12","@types/node":"^22.7.9","@types/node-schedule":"^2.1.7","@types/passport-jwt":"^4.0.1","@types/semver":"^7.5.8","@types/tail":"^2.2.3","@types/tar":"^6.1.13","@types/tcp-port-used":"^1.0.4","@types/unzipper":"^0.10.10","@vitest/coverage-v8":"^2.1.3",concurrently:"^9.0.1",eslint:"^9.13.0","eslint-plugin-format":"^0.1.2","form-data":"^4.0.1",nodemon:"^3.1.7",rimraf:"^6.0.1","ts-loader":"^9.5.1","ts-node":"^10.9.2","tsconfig-paths":"^4.2.0",typescript:"^5.6.3","unplugin-swc":"^1.5.1",vitest:"^2.1.3"},overrides:{"@homebridge/hap-client":{axios:"1.7.7"}},maintainers:[{email:"bwp91@icloud.com",name:"bwp91"},{email:"dev@oz.nu",name:"oznu"},{email:"buyminivan-northern@yahoo.ca",name:"northernman"},{email:"mail@anderl-bauer.de",name:"supereg"},{email:"khaos.tian@gmail.com",name:"khaost"},{email:"erik.baauw@xs4all.nl",name:"ebaauw"},{email:"donavan.becker@icloud.com",name:"donavanbecker"},{email:"dustin.greif@gmail.com",name:"dustin.greif"},{email:"nfarina@gmail.com",name:"nfarina"}]}});var re=Zt((Ft,Et)=>{(function(s,t){typeof Ft=="object"&&typeof Et<"u"?Et.exports=t():typeof define=="function"&&define.amd?define(t):(s=typeof globalThis<"u"?globalThis:s||self).dayjs=t()})(Ft,function(){"use strict";var s=1e3,t=6e4,r=36e5,i="millisecond",e="second",o="minute",h="hour",y="day",O="week",w="month",Q="quarter",$="year",E="date",ct="Invalid Date",_t=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,yt=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,ut={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(d){var u=["th","st","nd","rd"],a=d%100;return"["+d+(u[(a-20)%10]||u[a]||u[0])+"]"}},P=function(d,u,a){var l=String(d);return!l||l.length>=u?d:""+Array(u+1-l.length).join(a)+d},me={s:P,z:function(d){var u=-d.utcOffset(),a=Math.abs(u),l=Math.floor(a/60),c=a%60;return(u<=0?"+":"-")+P(l,2,"0")+":"+P(c,2,"0")},m:function d(u,a){if(u.date()<a.date())return-d(a,u);var l=12*(a.year()-u.year())+(a.month()-u.month()),c=u.clone().add(l,w),p=a-c<0,f=u.clone().add(l+(p?-1:1),w);return+(-(l+(a-c)/(p?c-f:f-c))||0)},a:function(d){return d<0?Math.ceil(d)||0:Math.floor(d)},p:function(d){return{M:w,y:$,w:O,d:y,D:E,h,m:o,s:e,ms:i,Q}[d]||String(d||"").toLowerCase().replace(/s$/,"")},u:function(d){return d===void 0}},X="en",B={};B[X]=ut;var Vt="$isDayjsObject",bt=function(d){return d instanceof lt||!(!d||!d[Vt])},ht=function d(u,a,l){var c;if(!u)return X;if(typeof u=="string"){var p=u.toLowerCase();B[p]&&(c=p),a&&(B[p]=a,c=p);var f=u.split("-");if(!c&&f.length>1)return d(f[0])}else{var g=u.name;B[g]=u,c=g}return!l&&c&&(X=c),c||!l&&X},b=function(d,u){if(bt(d))return d.clone();var a=typeof u=="object"?u:{};return a.date=d,a.args=arguments,new lt(a)},m=me;m.l=ht,m.i=bt,m.w=function(d,u){return b(d,{locale:u.$L,utc:u.$u,x:u.$x,$offset:u.$offset})};var lt=function(){function d(a){this.$L=ht(a.locale,null,!0),this.parse(a),this.$x=this.$x||a.x||{},this[Vt]=!0}var u=d.prototype;return u.parse=function(a){this.$d=function(l){var c=l.date,p=l.utc;if(c===null)return new Date(NaN);if(m.u(c))return new Date;if(c instanceof Date)return new Date(c);if(typeof c=="string"&&!/Z$/i.test(c)){var f=c.match(_t);if(f){var g=f[2]-1||0,v=(f[7]||"0").substring(0,3);return p?new Date(Date.UTC(f[1],g,f[3]||1,f[4]||0,f[5]||0,f[6]||0,v)):new Date(f[1],g,f[3]||1,f[4]||0,f[5]||0,f[6]||0,v)}}return new Date(c)}(a),this.init()},u.init=function(){var a=this.$d;this.$y=a.getFullYear(),this.$M=a.getMonth(),this.$D=a.getDate(),this.$W=a.getDay(),this.$H=a.getHours(),this.$m=a.getMinutes(),this.$s=a.getSeconds(),this.$ms=a.getMilliseconds()},u.$utils=function(){return m},u.isValid=function(){return this.$d.toString()!==ct},u.isSame=function(a,l){var c=b(a);return this.startOf(l)<=c&&c<=this.endOf(l)},u.isAfter=function(a,l){return b(a)<this.startOf(l)},u.isBefore=function(a,l){return this.endOf(l)<b(a)},u.$g=function(a,l,c){return m.u(a)?this[l]:this.set(c,a)},u.unix=function(){return Math.floor(this.valueOf()/1e3)},u.valueOf=function(){return this.$d.getTime()},u.startOf=function(a,l){var c=this,p=!!m.u(l)||l,f=m.p(a),g=function(z,x){var L=m.w(c.$u?Date.UTC(c.$y,x,z):new Date(c.$y,x,z),c);return p?L:L.endOf(y)},v=function(z,x){return m.w(c.toDate()[z].apply(c.toDate("s"),(p?[0,0,0,0]:[23,59,59,999]).slice(x)),c)},T=this.$W,D=this.$M,M=this.$D,U="set"+(this.$u?"UTC":"");switch(f){case $:return p?g(1,0):g(31,11);case w:return p?g(1,D):g(0,D+1);case O:var V=this.$locale().weekStart||0,tt=(T<V?T+7:T)-V;return g(p?M-tt:M+(6-tt),D);case y:case E:return v(U+"Hours",0);case h:return v(U+"Minutes",1);case o:return v(U+"Seconds",2);case e:return v(U+"Milliseconds",3);default:return this.clone()}},u.endOf=function(a){return this.startOf(a,!1)},u.$set=function(a,l){var c,p=m.p(a),f="set"+(this.$u?"UTC":""),g=(c={},c[y]=f+"Date",c[E]=f+"Date",c[w]=f+"Month",c[$]=f+"FullYear",c[h]=f+"Hours",c[o]=f+"Minutes",c[e]=f+"Seconds",c[i]=f+"Milliseconds",c)[p],v=p===y?this.$D+(l-this.$W):l;if(p===w||p===$){var T=this.clone().set(E,1);T.$d[g](v),T.init(),this.$d=T.set(E,Math.min(this.$D,T.daysInMonth())).$d}else g&&this.$d[g](v);return this.init(),this},u.set=function(a,l){return this.clone().$set(a,l)},u.get=function(a){return this[m.p(a)]()},u.add=function(a,l){var c,p=this;a=Number(a);var f=m.p(l),g=function(D){var M=b(p);return m.w(M.date(M.date()+Math.round(D*a)),p)};if(f===w)return this.set(w,this.$M+a);if(f===$)return this.set($,this.$y+a);if(f===y)return g(1);if(f===O)return g(7);var v=(c={},c[o]=t,c[h]=r,c[e]=s,c)[f]||1,T=this.$d.getTime()+a*v;return m.w(T,this)},u.subtract=function(a,l){return this.add(-1*a,l)},u.format=function(a){var l=this,c=this.$locale();if(!this.isValid())return c.invalidDate||ct;var p=a||"YYYY-MM-DDTHH:mm:ssZ",f=m.z(this),g=this.$H,v=this.$m,T=this.$M,D=c.weekdays,M=c.months,U=c.meridiem,V=function(x,L,et,dt){return x&&(x[L]||x(l,p))||et[L].slice(0,dt)},tt=function(x){return m.s(g%12||12,x,"0")},z=U||function(x,L,et){var dt=x<12?"AM":"PM";return et?dt.toLowerCase():dt};return p.replace(yt,function(x,L){return L||function(et){switch(et){case"YY":return String(l.$y).slice(-2);case"YYYY":return m.s(l.$y,4,"0");case"M":return T+1;case"MM":return m.s(T+1,2,"0");case"MMM":return V(c.monthsShort,T,M,3);case"MMMM":return V(M,T);case"D":return l.$D;case"DD":return m.s(l.$D,2,"0");case"d":return String(l.$W);case"dd":return V(c.weekdaysMin,l.$W,D,2);case"ddd":return V(c.weekdaysShort,l.$W,D,3);case"dddd":return D[l.$W];case"H":return String(g);case"HH":return m.s(g,2,"0");case"h":return tt(1);case"hh":return tt(2);case"a":return z(g,v,!0);case"A":return z(g,v,!1);case"m":return String(v);case"mm":return m.s(v,2,"0");case"s":return String(l.$s);case"ss":return m.s(l.$s,2,"0");case"SSS":return m.s(l.$ms,3,"0");case"Z":return f}return null}(x)||f.replace(":","")})},u.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},u.diff=function(a,l,c){var p,f=this,g=m.p(l),v=b(a),T=(v.utcOffset()-this.utcOffset())*t,D=this-v,M=function(){return m.m(f,v)};switch(g){case $:p=M()/12;break;case w:p=M();break;case Q:p=M()/3;break;case O:p=(D-T)/6048e5;break;case y:p=(D-T)/864e5;break;case h:p=D/r;break;case o:p=D/t;break;case e:p=D/s;break;default:p=D}return c?p:m.a(p)},u.daysInMonth=function(){return this.endOf(w).$D},u.$locale=function(){return B[this.$L]},u.locale=function(a,l){if(!a)return this.$L;var c=this.clone(),p=ht(a,l,!0);return p&&(c.$L=p),c},u.clone=function(){return m.w(this.$d,this)},u.toDate=function(){return new Date(this.valueOf())},u.toJSON=function(){return this.isValid()?this.toISOString():null},u.toISOString=function(){return this.$d.toISOString()},u.toString=function(){return this.$d.toUTCString()},d}(),zt=lt.prototype;return b.prototype=zt,[["$ms",i],["$s",e],["$m",o],["$H",h],["$W",y],["$M",w],["$y",$],["$D",E]].forEach(function(d){zt[d[1]]=function(u){return this.$g(u,d[0],d[1])}}),b.extend=function(d,u){return d.$i||(d(u,lt,b),d.$i=!0),b},b.locale=ht,b.isDayjs=bt,b.unix=function(d){return b(1e3*d)},b.en=B[X],b.Ls=B,b.p={},b})});var J={serverTarget:oe().version,production:!0,socket:"",api:{base:"/api",socket:`${window.location.protocol==="http:"?"ws://":"wss://"}${window.location.host}`,origin:window.location.origin},jwt:{tokenKey:"access_token",allowedDomains:[document.location.host],disallowedRoutes:[`${window.location.protocol}//${document.location.host}/api/auth/login`]},apiHttpOptions:{},owm:{appid:"fec67b55f7f74deaa28df89ba6a60821"}};var ce=(()=>{let t=class t{constructor(i){n(this,"$http");this.$http=i}get(i,e){return this.$http.get(`${J.api.base}${i}`,e)}post(i,e,o){return this.$http.post(`${J.api.base}${i}`,e,o)}put(i,e,o){return this.$http.put(`${J.api.base}${i}`,e,o)}patch(i,e,o){return this.$http.patch(`${J.api.base}${i}`,e,o)}delete(i,e){return this.$http.delete(`${J.api.base}${i}`,e)}};n(t,"\u0275fac",function(e){return new(e||t)(I(ee))}),n(t,"\u0275prov",N({token:t,factory:t.\u0275fac,providedIn:"root"}));let s=t;return s})();var q=function(s){return s[s.State=0]="State",s[s.Transition=1]="Transition",s[s.Sequence=2]="Sequence",s[s.Group=3]="Group",s[s.Animate=4]="Animate",s[s.Keyframes=5]="Keyframes",s[s.Style=6]="Style",s[s.Trigger=7]="Trigger",s[s.Reference=8]="Reference",s[s.AnimateChild=9]="AnimateChild",s[s.AnimateRef=10]="AnimateRef",s[s.Query=11]="Query",s[s.Stagger=12]="Stagger",s}(q||{}),Ze="*";function le(s,t){return{type:q.Trigger,name:s,definitions:t,options:{}}}function kt(s,t=null){return{type:q.Animate,styles:t,timings:s}}function Ye(s,t=null){return{type:q.Sequence,steps:s,options:t}}function mt(s){return{type:q.Style,styles:s,offset:null}}function gt(s,t,r){return{type:q.State,name:s,styles:t,options:r}}function At(s,t,r=null){return{type:q.Transition,expr:s,animation:t,options:r}}var ue=class{constructor(t=0,r=0){this._onDoneFns=[],this._onStartFns=[],this._onDestroyFns=[],this._originalOnDoneFns=[],this._originalOnStartFns=[],this._started=!1,this._destroyed=!1,this._finished=!1,this._position=0,this.parentPlayer=null,this.totalTime=t+r}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){let r=t=="start"?this._onStartFns:this._onDoneFns;r.forEach(i=>i()),r.length=0}},he=class{constructor(t){this._onDoneFns=[],this._onStartFns=[],this._finished=!1,this._started=!1,this._destroyed=!1,this._onDestroyFns=[],this.parentPlayer=null,this.totalTime=0,this.players=t;let r=0,i=0,e=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(h=>{h.onDone(()=>{++r==o&&this._onFinish()}),h.onDestroy(()=>{++i==o&&this._onDestroy()}),h.onStart(()=>{++e==o&&this._onStart()})}),this.totalTime=this.players.reduce((h,y)=>Math.max(h,y.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){let r=t*this.totalTime;this.players.forEach(i=>{let e=i.totalTime?Math.min(1,r/i.totalTime):1;i.setPosition(e)})}getPosition(){let t=this.players.reduce((r,i)=>r===null||i.totalTime>r.totalTime?i:r,null);return t!=null?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){let r=t=="start"?this._onStartFns:this._onDoneFns;r.forEach(i=>i()),r.length=0}},qe="!";var de=["toast-component",""];function be(s,t){if(s&1){let r=St();F(0,"button",5),at("click",function(){wt(r);let e=S();return Dt(e.remove())}),F(1,"span",6),R(2,"\xD7"),H()()}}function Te(s,t){if(s&1&&(xt(0),R(1),It()),s&2){let r=S(2);_(),Y("[",r.duplicatesCount+1,"]")}}function we(s,t){if(s&1&&(F(0,"div"),R(1),st(2,Te,2,1,"ng-container",4),H()),s&2){let r=S();A(r.options.titleClass),nt("aria-label",r.title),_(),Y(" ",r.title," "),_(),C("ngIf",r.duplicatesCount)}}function De(s,t){if(s&1&&rt(0,"div",7),s&2){let r=S();A(r.options.messageClass),C("innerHTML",r.message,$t)}}function Ce(s,t){if(s&1&&(F(0,"div",8),R(1),H()),s&2){let r=S();A(r.options.messageClass),nt("aria-label",r.message),_(),Y(" ",r.message," ")}}function $e(s,t){if(s&1&&(F(0,"div"),rt(1,"div",9),H()),s&2){let r=S();_(),ot("width",r.width()+"%")}}function xe(s,t){if(s&1){let r=St();F(0,"button",5),at("click",function(){wt(r);let e=S();return Dt(e.remove())}),F(1,"span",6),R(2,"\xD7"),H()()}}function Ie(s,t){if(s&1&&(xt(0),R(1),It()),s&2){let r=S(2);_(),Y("[",r.duplicatesCount+1,"]")}}function Se(s,t){if(s&1&&(F(0,"div"),R(1),st(2,Ie,2,1,"ng-container",4),H()),s&2){let r=S();A(r.options.titleClass),nt("aria-label",r.title),_(),Y(" ",r.title," "),_(),C("ngIf",r.duplicatesCount)}}function Oe(s,t){if(s&1&&rt(0,"div",7),s&2){let r=S();A(r.options.messageClass),C("innerHTML",r.message,$t)}}function Me(s,t){if(s&1&&(F(0,"div",8),R(1),H()),s&2){let r=S();A(r.options.messageClass),nt("aria-label",r.message),_(),Y(" ",r.message," ")}}function je(s,t){if(s&1&&(F(0,"div"),rt(1,"div",9),H()),s&2){let r=S();_(),ot("width",r.width()+"%")}}var Ht=class{constructor(t,r){n(this,"_attachedHost");n(this,"component");n(this,"viewContainerRef");n(this,"injector");this.component=t,this.injector=r}attach(t,r){return this._attachedHost=t,t.attach(this,r)}detach(){let t=this._attachedHost;if(t)return this._attachedHost=void 0,t.detach()}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},Rt=class{constructor(){n(this,"_attachedPortal");n(this,"_disposeFn")}attach(t,r){return this._attachedPortal=t,this.attachComponentPortal(t,r)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(t){this._disposeFn=t}},Lt=class{constructor(t){n(this,"_overlayRef");n(this,"componentInstance");n(this,"duplicatesCount",0);n(this,"_afterClosed",new k);n(this,"_activate",new k);n(this,"_manualClose",new k);n(this,"_resetTimeout",new k);n(this,"_countDuplicate",new k);this._overlayRef=t}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(t,r){t&&this._resetTimeout.next(),r&&this._countDuplicate.next(++this.duplicatesCount)}},K=class{constructor(t,r,i,e,o,h){n(this,"toastId");n(this,"config");n(this,"message");n(this,"title");n(this,"toastType");n(this,"toastRef");n(this,"_onTap",new k);n(this,"_onAction",new k);this.toastId=t,this.config=r,this.message=i,this.title=e,this.toastType=o,this.toastRef=h,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(t){this._onAction.next(t)}onAction(){return this._onAction.asObservable()}},pe={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},fe=new Gt("ToastConfig"),Nt=class extends Rt{constructor(r,i,e){super();n(this,"_hostDomElement");n(this,"_componentFactoryResolver");n(this,"_appRef");this._hostDomElement=r,this._componentFactoryResolver=i,this._appRef=e}attachComponentPortal(r,i){let e=this._componentFactoryResolver.resolveComponentFactory(r.component),o;return o=e.create(r.injector),this._appRef.attachView(o.hostView),this.setDisposeFn(()=>{this._appRef.detachView(o.hostView),o.destroy()}),i?this._hostDomElement.insertBefore(this._getComponentRootNode(o),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(o)),o}_getComponentRootNode(r){return r.hostView.rootNodes[0]}},Fe=(()=>{let t=class t{constructor(){n(this,"_document",G(Mt));n(this,"_containerElement")}ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let i=this._document.createElement("div");i.classList.add("overlay-container"),i.setAttribute("aria-live","polite"),this._document.body.appendChild(i),this._containerElement=i}};n(t,"\u0275fac",function(e){return new(e||t)}),n(t,"\u0275prov",N({token:t,factory:t.\u0275fac,providedIn:"root"}));let s=t;return s})(),Pt=class{constructor(t){n(this,"_portalHost");this._portalHost=t}attach(t,r=!0){return this._portalHost.attach(t,r)}detach(){return this._portalHost.detach()}},Ee=(()=>{let t=class t{constructor(){n(this,"_overlayContainer",G(Fe));n(this,"_componentFactoryResolver",G(Xt));n(this,"_appRef",G(ft));n(this,"_document",G(Mt));n(this,"_paneElements",new Map)}create(i,e){return this._createOverlayRef(this.getPaneElement(i,e))}getPaneElement(i="",e){return this._paneElements.get(e)||this._paneElements.set(e,{}),this._paneElements.get(e)[i]||(this._paneElements.get(e)[i]=this._createPaneElement(i,e)),this._paneElements.get(e)[i]}_createPaneElement(i,e){let o=this._document.createElement("div");return o.id="toast-container",o.classList.add(i),o.classList.add("toast-container"),e?e.getContainerElement().appendChild(o):this._overlayContainer.getContainerElement().appendChild(o),o}_createPortalHost(i){return new Nt(i,this._componentFactoryResolver,this._appRef)}_createOverlayRef(i){return new Pt(this._createPortalHost(i))}};n(t,"\u0275fac",function(e){return new(e||t)}),n(t,"\u0275prov",N({token:t,factory:t.\u0275fac,providedIn:"root"}));let s=t;return s})(),vt=(()=>{let t=class t{constructor(i,e,o,h,y){n(this,"overlay");n(this,"_injector");n(this,"sanitizer");n(this,"ngZone");n(this,"toastrConfig");n(this,"currentlyActive",0);n(this,"toasts",[]);n(this,"overlayContainer");n(this,"previousToastMessage");n(this,"index",0);this.overlay=e,this._injector=o,this.sanitizer=h,this.ngZone=y,this.toastrConfig=j(j({},i.default),i.config),i.config.iconClasses&&(this.toastrConfig.iconClasses=j(j({},i.default.iconClasses),i.config.iconClasses))}show(i,e,o={},h=""){return this._preBuildNotification(h,i,e,this.applyConfig(o))}success(i,e,o={}){let h=this.toastrConfig.iconClasses.success||"";return this._preBuildNotification(h,i,e,this.applyConfig(o))}error(i,e,o={}){let h=this.toastrConfig.iconClasses.error||"";return this._preBuildNotification(h,i,e,this.applyConfig(o))}info(i,e,o={}){let h=this.toastrConfig.iconClasses.info||"";return this._preBuildNotification(h,i,e,this.applyConfig(o))}warning(i,e,o={}){let h=this.toastrConfig.iconClasses.warning||"";return this._preBuildNotification(h,i,e,this.applyConfig(o))}clear(i){for(let e of this.toasts)if(i!==void 0){if(e.toastId===i){e.toastRef.manualClose();return}}else e.toastRef.manualClose()}remove(i){let e=this._findToast(i);if(!e||(e.activeToast.toastRef.close(),this.toasts.splice(e.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActive<this.toastrConfig.maxOpened&&this.toasts[this.currentlyActive]){let o=this.toasts[this.currentlyActive].toastRef;o.isInactive()||(this.currentlyActive=this.currentlyActive+1,o.activate())}return!0}findDuplicate(i="",e="",o,h){let{includeTitleDuplicates:y}=this.toastrConfig;for(let O of this.toasts){let w=y&&O.title===i;if((!y||w)&&O.message===e)return O.toastRef.onDuplicate(o,h),O}return null}applyConfig(i={}){return j(j({},this.toastrConfig),i)}_findToast(i){for(let e=0;e<this.toasts.length;e++)if(this.toasts[e].toastId===i)return{index:e,activeToast:this.toasts[e]};return null}_preBuildNotification(i,e,o,h){return h.onActivateTick?this.ngZone.run(()=>this._buildNotification(i,e,o,h)):this._buildNotification(i,e,o,h)}_buildNotification(i,e,o,h){if(!h.toastComponent)throw new Error("toastComponent required");let y=this.findDuplicate(o,e,this.toastrConfig.resetTimeoutOnDuplicate&&h.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&o||e)&&this.toastrConfig.preventDuplicates&&y!==null)return y;this.previousToastMessage=e;let O=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(O=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));let w=this.overlay.create(h.positionClass,this.overlayContainer);this.index=this.index+1;let Q=e;e&&h.enableHtml&&(Q=this.sanitizer.sanitize(Qt.HTML,e));let $=new Lt(w),E=new K(this.index,h,Q,o,i,$),ct=[{provide:K,useValue:E}],_t=pt.create({providers:ct,parent:this._injector}),yt=new Ht(h.toastComponent,_t),ut=w.attach(yt,h.newestOnTop);$.componentInstance=ut.instance;let P={toastId:this.index,title:o||"",message:e||"",toastRef:$,onShown:$.afterActivate(),onHidden:$.afterClosed(),onTap:E.onTap(),onAction:E.onAction(),portal:ut};return O||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{P.toastRef.activate()})),this.toasts.push(P),P}};n(t,"\u0275fac",function(e){return new(e||t)(I(fe),I(Ee),I(pt),I(se),I(Ct))}),n(t,"\u0275prov",N({token:t,factory:t.\u0275fac,providedIn:"root"}));let s=t;return s})(),ke=(()=>{let t=class t{constructor(i,e,o){n(this,"toastrService");n(this,"toastPackage");n(this,"ngZone");n(this,"message");n(this,"title");n(this,"options");n(this,"duplicatesCount");n(this,"originalTimeout");n(this,"width",it(-1));n(this,"toastClasses","");n(this,"state");n(this,"timeout");n(this,"intervalId");n(this,"hideTime");n(this,"sub");n(this,"sub1");n(this,"sub2");n(this,"sub3");this.toastrService=i,this.toastPackage=e,this.ngZone=o,this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=`${e.toastType} ${e.config.toastClass}`,this.sub=e.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(h=>{this.duplicatesCount=h}),this.state=it({value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}})}get _state(){return this.state()}get displayStyle(){if(this.state().value==="inactive")return"none"}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.update(i=>W(j({},i),{value:"active"})),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let i=new Date().getTime(),e=this.hideTime-i;this.width.set(e/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(o=>100-o),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.update(i=>W(j({},i),{value:"active"})),this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){this.state().value!=="removed"&&(clearTimeout(this.timeout),this.state.update(i=>W(j({},i),{value:"removed"})),this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){this.state().value!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state().value!=="removed"&&this.options.disableTimeOut!=="extendedTimeOut"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state().value==="removed"||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(i,e){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(i),e)):this.timeout=setTimeout(()=>i(),e)}outsideInterval(i,e){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(i),e)):this.intervalId=setInterval(()=>i(),e)}runInsideAngular(i){this.ngZone?this.ngZone.run(()=>i()):i()}};n(t,"\u0275fac",function(e){return new(e||t)(Z(vt),Z(K),Z(Ct))}),n(t,"\u0275cmp",Tt({type:t,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(e,o){e&1&&at("click",function(){return o.tapToast()})("mouseenter",function(){return o.stickAround()})("mouseleave",function(){return o.delayedHideToast()}),e&2&&(te("@flyInOut",o._state),A(o.toastClasses),ot("display",o.displayStyle))},standalone:!0,features:[Ot],attrs:de,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(e,o){e&1&&st(0,be,3,0,"button",0)(1,we,3,5,"div",1)(2,De,1,3,"div",2)(3,Ce,2,4,"div",3)(4,$e,2,2,"div",4),e&2&&(C("ngIf",o.options.closeButton),_(),C("ngIf",o.title),_(),C("ngIf",o.message&&o.options.enableHtml),_(),C("ngIf",o.message&&!o.options.enableHtml),_(),C("ngIf",o.options.progressBar))},dependencies:[jt],encapsulation:2,data:{animation:[le("flyInOut",[gt("inactive",mt({opacity:0})),gt("active",mt({opacity:1})),gt("removed",mt({opacity:0})),At("inactive => active",kt("{{ easeTime }}ms {{ easing }}")),At("active => removed",kt("{{ easeTime }}ms {{ easing }}"))])]},changeDetection:0}));let s=t;return s})(),Ae=W(j({},pe),{toastComponent:ke}),He=(s={})=>Kt([{provide:fe,useValue:{default:Ae,config:s}}]),ci=(()=>{let t=class t{static forRoot(i={}){return{ngModule:t,providers:[He(i)]}}};n(t,"\u0275fac",function(e){return new(e||t)}),n(t,"\u0275mod",Jt({type:t})),n(t,"\u0275inj",Wt({}));let s=t;return s})();var Re=(()=>{let t=class t{constructor(i,e,o){n(this,"toastrService");n(this,"toastPackage");n(this,"appRef");n(this,"message");n(this,"title");n(this,"options");n(this,"duplicatesCount");n(this,"originalTimeout");n(this,"width",it(-1));n(this,"toastClasses","");n(this,"state",it("inactive"));n(this,"timeout");n(this,"intervalId");n(this,"hideTime");n(this,"sub");n(this,"sub1");n(this,"sub2");n(this,"sub3");this.toastrService=i,this.toastPackage=e,this.appRef=o,this.message=e.message,this.title=e.title,this.options=e.config,this.originalTimeout=e.config.timeOut,this.toastClasses=`${e.toastType} ${e.config.toastClass}`,this.sub=e.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=e.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=e.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=e.toastRef.countDuplicate().subscribe(h=>{this.duplicatesCount=h})}get displayStyle(){return this.state()==="inactive"?"none":null}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.set("active"),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.timeout=setTimeout(()=>{this.remove()},this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))),this.options.onActivateTick&&this.appRef.tick()}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let i=new Date().getTime(),e=this.hideTime-i;this.width.set(e/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(o=>100-o),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.set("active"),this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(()=>this.remove(),this.originalTimeout),this.hideTime=new Date().getTime()+(this.originalTimeout||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))}remove(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.state.set("removed"),this.timeout=setTimeout(()=>this.toastrService.remove(this.toastPackage.toastId)))}tapToast(){this.state()!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state()==="removed"||(this.timeout=setTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10)))}};n(t,"\u0275fac",function(e){return new(e||t)(Z(vt),Z(K),Z(ft))}),n(t,"\u0275cmp",Tt({type:t,selectors:[["","toast-component",""]],hostVars:4,hostBindings:function(e,o){e&1&&at("click",function(){return o.tapToast()})("mouseenter",function(){return o.stickAround()})("mouseleave",function(){return o.delayedHideToast()}),e&2&&(A(o.toastClasses),ot("display",o.displayStyle))},standalone:!0,features:[Ot],attrs:de,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(e,o){e&1&&st(0,xe,3,0,"button",0)(1,Se,3,5,"div",1)(2,Oe,1,3,"div",2)(3,Me,2,4,"div",3)(4,je,2,2,"div",4),e&2&&(C("ngIf",o.options.closeButton),_(),C("ngIf",o.title),_(),C("ngIf",o.message&&o.options.enableHtml),_(),C("ngIf",o.message&&!o.options.enableHtml),_(),C("ngIf",o.options.progressBar))},dependencies:[jt],encapsulation:2,changeDetection:0}));let s=t;return s})(),ui=W(j({},pe),{toastComponent:Re});var Bt=ge(re(),1);var fi=(()=>{let t=class t{constructor(i,e,o,h){n(this,"$api");n(this,"$title");n(this,"$toastr");n(this,"$translate");n(this,"env",{});n(this,"formAuth",!0);n(this,"uiVersion");n(this,"theme");n(this,"lightingMode");n(this,"currentLightingMode");n(this,"actualLightingMode");n(this,"browserLightingMode");n(this,"loginWallpaper");n(this,"serverTimeOffset",0);n(this,"themeList",["orange","red","pink","purple","deep-purple","indigo","blue","blue-grey","cyan","green","teal","grey","brown"]);n(this,"rtl",!1);n(this,"settingsLoadedSubject",new k);n(this,"onSettingsLoaded",this.settingsLoadedSubject.pipe(Ut()));n(this,"settingsLoaded",!1);this.$api=i,this.$title=e,this.$toastr=o,this.$translate=h,this.getAppSettings()}getAppSettings(){return Yt(this,null,function*(){let i=yield qt(this.$api.get("/auth/settings"));this.formAuth=i.formAuth,this.env=i.env,this.lightingMode=i.lightingMode,this.loginWallpaper=i.loginWallpaper,this.setLightingMode(this.lightingMode,"user"),this.setTheme(i.theme),this.setTitle(this.env.homebridgeInstanceName),this.checkServerTime(i.serverTimestamp),this.setUiVersion(i.env.packageVersion),this.setLang(this.env.lang),this.settingsLoaded=!0,this.settingsLoadedSubject.next(void 0)})}setBrowserLightingMode(i){this.browserLightingMode=i,this.lightingMode==="auto"&&this.setLightingMode(i,"browser")}setLightingMode(i,e){e==="user"&&(this.lightingMode=i),this.currentLightingMode=i,this.actualLightingMode=this.currentLightingMode==="auto"?this.browserLightingMode:this.currentLightingMode,this.theme&&this.setTheme(this.theme)}setTheme(i){(!i||!this.themeList.includes(i))&&(i="orange");let e=window.document.querySelector("body");e.classList.remove(`config-ui-x-${this.theme}`),e.classList.remove(`config-ui-x-dark-mode-${this.theme}`),this.theme=i,this.actualLightingMode==="dark"?(e.classList.add(`config-ui-x-dark-mode-${this.theme}`),e.classList.contains("dark-mode")||e.classList.add("dark-mode")):(e.classList.add(`config-ui-x-${this.theme}`),e.classList.contains("dark-mode")&&e.classList.remove("dark-mode"))}setTitle(i){this.$title.setTitle(i||"Homebridge")}setUiVersion(i){this.uiVersion||(this.uiVersion=i)}setLang(i){i?this.$translate.use(i):i="auto",this.env.lang=i}setEnvItem(i,e){this.env[i]=e}checkServerTime(i){let o=(0,Bt.default)(i).diff((0,Bt.default)(),"hour");this.serverTimeOffset=o*60*60,(o>=8||o<=-8)&&this.$toastr.warning(this.$translate.instant("settings.datetime.incorrect"),this.$translate.instant("toast.title_warning"),{timeOut:2e4,tapToDismiss:!1}).onTap.subscribe(()=>{window.open("https://homebridge.io/w/JqTFs","_blank")})}};n(t,"\u0275fac",function(e){return new(e||t)(I(ce),I(ie),I(vt),I(ne))}),n(t,"\u0275prov",N({token:t,factory:t.\u0275fac,providedIn:"root"}));let s=t;return s})();export{re as a,J as b,ce as c,q as d,Ze as e,Ye as f,mt as g,ue as h,he as i,qe as j,vt as k,ci as l,fi as m};