homebridge-config-ui-x 5.11.2-beta.2 → 5.11.2-beta.4

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 (246) hide show
  1. package/CHANGELOG.md +19 -2
  2. package/dist/core/auth/auth.controller.d.ts +4 -0
  3. package/dist/core/config/config.interfaces.d.ts +14 -0
  4. package/dist/core/config/config.service.d.ts +6 -0
  5. package/dist/core/config/config.service.js +8 -0
  6. package/dist/core/config/config.service.js.map +1 -1
  7. package/dist/core/config/config.startup.js +48 -17
  8. package/dist/core/config/config.startup.js.map +1 -1
  9. package/dist/core/feature-flags/feature-flags.registry.js +5 -0
  10. package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
  11. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +1 -0
  12. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  13. package/dist/core/spa/spa-html.service.d.ts +5 -0
  14. package/dist/core/spa/spa-html.service.js +32 -0
  15. package/dist/core/spa/spa-html.service.js.map +1 -0
  16. package/dist/core/spa/spa.filter.d.ts +3 -0
  17. package/dist/core/spa/spa.filter.js +22 -2
  18. package/dist/core/spa/spa.filter.js.map +1 -1
  19. package/dist/core/ssl/ssl-cert-generator.service.d.ts +15 -0
  20. package/dist/core/ssl/ssl-cert-generator.service.js +125 -0
  21. package/dist/core/ssl/ssl-cert-generator.service.js.map +1 -0
  22. package/dist/globalDefaults.js +3 -0
  23. package/dist/globalDefaults.js.map +1 -1
  24. package/dist/main.js +18 -4
  25. package/dist/main.js.map +1 -1
  26. package/dist/modules/accessories/accessories.controller.d.ts +1 -1
  27. package/dist/modules/accessories/accessories.interfaces.d.ts +94 -0
  28. package/dist/modules/accessories/accessories.interfaces.js +2 -0
  29. package/dist/modules/accessories/accessories.interfaces.js.map +1 -0
  30. package/dist/modules/accessories/accessories.module.js +2 -0
  31. package/dist/modules/accessories/accessories.module.js.map +1 -1
  32. package/dist/modules/accessories/accessories.service.d.ts +21 -3
  33. package/dist/modules/accessories/accessories.service.js +280 -17
  34. package/dist/modules/accessories/accessories.service.js.map +1 -1
  35. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +9 -0
  36. package/dist/modules/config-editor/config-editor.controller.d.ts +4 -0
  37. package/dist/modules/config-editor/config-editor.controller.js +64 -0
  38. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  39. package/dist/modules/config-editor/config-editor.service.d.ts +6 -1
  40. package/dist/modules/config-editor/config-editor.service.js +45 -1
  41. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  42. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
  43. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  44. package/dist/modules/plugins/plugins.service.js +15 -0
  45. package/dist/modules/plugins/plugins.service.js.map +1 -1
  46. package/dist/modules/server/server.controller.d.ts +50 -0
  47. package/dist/modules/server/server.controller.js +201 -2
  48. package/dist/modules/server/server.controller.js.map +1 -1
  49. package/dist/modules/server/server.service.d.ts +48 -0
  50. package/dist/modules/server/server.service.js +502 -14
  51. package/dist/modules/server/server.service.js.map +1 -1
  52. package/dist/modules/status/status.gateway.d.ts +2 -0
  53. package/dist/modules/status/status.interfaces.d.ts +11 -0
  54. package/dist/modules/status/status.service.d.ts +4 -1
  55. package/dist/modules/status/status.service.js +21 -2
  56. package/dist/modules/status/status.service.js.map +1 -1
  57. package/docs/matter-todo.md +15 -0
  58. package/docs/ssl-upload-pr.md +103 -0
  59. package/package.json +3 -1
  60. package/public/3rdpartylicenses.txt +595 -621
  61. package/public/assets/matter.svg +8 -0
  62. package/public/assets/plugin-ui-utils/ui.js +3 -0
  63. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  64. package/public/chunk-2TQEV57U.js +2 -0
  65. package/public/chunk-2Y6QBPFY.js +1 -0
  66. package/public/chunk-3LKYOCGJ.js +1 -0
  67. package/public/chunk-3YTNATAH.js +1 -0
  68. package/public/chunk-42Y35W3J.js +2 -0
  69. package/public/chunk-47QTMPRY.js +1 -0
  70. package/public/chunk-4KXPUEE3.js +4 -0
  71. package/public/chunk-4PQ5WRGK.js +1 -0
  72. package/public/chunk-4TAGCB7R.js +1 -0
  73. package/public/chunk-4VLAXCSY.js +1 -0
  74. package/public/chunk-5K3S6ZXB.js +1 -0
  75. package/public/chunk-6BRZAIW2.js +3 -0
  76. package/public/chunk-6QJUZNZL.js +1 -0
  77. package/public/chunk-6ZOSTYPR.js +1 -0
  78. package/public/{chunk-ZV26JTV7.js → chunk-7JNVXXNR.js} +1 -1
  79. package/public/chunk-7PPGGAHV.js +1 -0
  80. package/public/chunk-AM5CKSLZ.js +1 -0
  81. package/public/chunk-B4AJQJMI.js +1 -0
  82. package/public/chunk-BBRC6PRL.js +1 -0
  83. package/public/chunk-BGCYR25X.js +1 -0
  84. package/public/chunk-BHA7V2NQ.js +1 -0
  85. package/public/{chunk-KI6BE77G.js → chunk-BMOLDRJ3.js} +1 -1
  86. package/public/chunk-BVJS76CN.js +1 -0
  87. package/public/chunk-CNUIQJSO.js +1 -0
  88. package/public/chunk-CPECPTSN.js +1 -0
  89. package/public/{chunk-75KR2TK6.js → chunk-DBMKB5Z2.js} +1 -1
  90. package/public/chunk-DEM3FH7C.js +1 -0
  91. package/public/chunk-E35SHTFY.js +1 -0
  92. package/public/chunk-EAYA44IV.js +1 -0
  93. package/public/chunk-EBHP3YOF.js +1 -0
  94. package/public/chunk-EMF6ZINV.js +4 -0
  95. package/public/chunk-FJB6YCFU.js +1 -0
  96. package/public/chunk-FKJY3Z2V.js +1 -0
  97. package/public/chunk-FQDRGOO5.js +1 -0
  98. package/public/chunk-FRMRAPF2.js +1 -0
  99. package/public/chunk-FYHEIYSO.js +5 -0
  100. package/public/chunk-GEQRIXEF.js +1 -0
  101. package/public/chunk-GJ42U6LP.js +16 -0
  102. package/public/chunk-GT2YL2TI.js +1 -0
  103. package/public/chunk-GTIVJH6Y.js +1 -0
  104. package/public/chunk-GYMWB5SQ.js +1 -0
  105. package/public/chunk-H2D3SCVU.js +1 -0
  106. package/public/{chunk-OMFNURQZ.js → chunk-H7F7H5MW.js} +1 -1
  107. package/public/chunk-HKOUIAFO.js +1 -0
  108. package/public/chunk-I5V7VF5M.js +1 -0
  109. package/public/chunk-IBFLM7UM.js +1 -0
  110. package/public/chunk-IZHFI46L.js +2 -0
  111. package/public/chunk-JNSPIONO.js +1 -0
  112. package/public/chunk-JUCPYKUR.js +1 -0
  113. package/public/chunk-KJH2IPMR.js +1 -0
  114. package/public/chunk-KPSGNAPN.js +1 -0
  115. package/public/chunk-LH4WRTR2.js +1 -0
  116. package/public/chunk-LHXNE56J.js +1 -0
  117. package/public/chunk-LOEOVQRM.js +1 -0
  118. package/public/chunk-LRB7FQNQ.js +1 -0
  119. package/public/chunk-LTYAICHT.js +1 -0
  120. package/public/chunk-LVBVUIJY.js +12 -0
  121. package/public/chunk-MKV5RAJQ.js +4 -0
  122. package/public/chunk-MPQEE6FH.js +1 -0
  123. package/public/chunk-MRPQNEON.js +35 -0
  124. package/public/chunk-MS4K4KAK.js +5 -0
  125. package/public/chunk-N6AN65NK.js +3 -0
  126. package/public/chunk-NCLG2ZY5.js +1 -0
  127. package/public/chunk-OHJQJ73S.js +1 -0
  128. package/public/chunk-P3DOEH3R.js +1 -0
  129. package/public/chunk-PEOTW7KR.js +1 -0
  130. package/public/chunk-PQM33D72.js +1 -0
  131. package/public/chunk-Q4PUZM2R.js +1 -0
  132. package/public/chunk-QBG7SKRK.js +68 -0
  133. package/public/chunk-QGLAR7UC.js +1 -0
  134. package/public/chunk-QK4CWVVD.js +1 -0
  135. package/public/chunk-QPGHC7OK.js +1 -0
  136. package/public/chunk-RAG53DHZ.js +1 -0
  137. package/public/chunk-RHJRKBK2.js +1 -0
  138. package/public/chunk-RQ42YKAP.js +1 -0
  139. package/public/chunk-S4BMZ4C4.js +1 -0
  140. package/public/chunk-S4O5HRCM.js +1 -0
  141. package/public/chunk-SE6AXFTZ.js +1 -0
  142. package/public/chunk-SIODBMHU.js +1 -0
  143. package/public/chunk-SS725Q7L.js +1 -0
  144. package/public/chunk-STXA2UWR.js +1 -0
  145. package/public/chunk-SVEGWVQJ.js +1 -0
  146. package/public/chunk-T472BWYK.js +1 -0
  147. package/public/chunk-TPGJVI7J.js +1 -0
  148. package/public/chunk-TRDYZJYI.js +1 -0
  149. package/public/chunk-TTX3XSDC.js +1 -0
  150. package/public/chunk-TVEZZ2CK.js +1 -0
  151. package/public/chunk-UDXPJS32.js +1 -0
  152. package/public/chunk-UO7KCTHV.js +1 -0
  153. package/public/chunk-UOOJPKZJ.js +1 -0
  154. package/public/chunk-VAD47NOZ.js +1 -0
  155. package/public/chunk-VBQ2CSUE.js +1 -0
  156. package/public/chunk-VWBS6KRT.js +1 -0
  157. package/public/chunk-VYAAI7PY.js +1 -0
  158. package/public/chunk-WBTFILXV.js +19 -0
  159. package/public/chunk-WO6QHRQI.js +1 -0
  160. package/public/chunk-WOMMYJV2.js +1 -0
  161. package/public/chunk-WOXYSKNU.js +1 -0
  162. package/public/{chunk-BKCIVF4W.js → chunk-WX345PMX.js} +52 -2
  163. package/public/chunk-XGK5YFH6.js +19 -0
  164. package/public/chunk-XLJ6VVK3.js +8 -0
  165. package/public/chunk-XPSIQPO4.js +1 -0
  166. package/public/chunk-XQXAVYM6.js +1 -0
  167. package/public/chunk-YBGB3IOQ.js +1 -0
  168. package/public/chunk-YHH6UACV.js +1 -0
  169. package/public/chunk-YLRX4V4V.js +1 -0
  170. package/public/chunk-YM6RL7NW.js +1 -0
  171. package/public/chunk-YMEXNW5V.js +1 -0
  172. package/public/chunk-YSJHLHJ6.js +1 -0
  173. package/public/chunk-ZCGZM7LU.js +1 -0
  174. package/public/chunk-ZDUAXPNP.js +1 -0
  175. package/public/index.html +2 -2
  176. package/public/main-SPPQL5YI.js +1 -0
  177. package/public/media/matter-P563JGDL.svg +8 -0
  178. package/public/polyfills-34U4WL3Z.js +1 -0
  179. package/public/styles-CT2LPGES.css +1 -0
  180. package/scripts/extract-plugin-alias.js +53 -2
  181. package/public/chunk-2VYCMFLK.js +0 -1
  182. package/public/chunk-337WAYBF.js +0 -1
  183. package/public/chunk-3F6KNL45.js +0 -5
  184. package/public/chunk-3GUIMBZA.js +0 -50
  185. package/public/chunk-4BH7J5ZU.js +0 -1
  186. package/public/chunk-4MSKGZXZ.js +0 -1
  187. package/public/chunk-4STYOKXR.js +0 -1
  188. package/public/chunk-5GRM2PNI.js +0 -8
  189. package/public/chunk-6C5CYDDU.js +0 -1
  190. package/public/chunk-6T52JN5R.js +0 -1
  191. package/public/chunk-7EKDGIG7.js +0 -1
  192. package/public/chunk-7O3SPIWC.js +0 -1
  193. package/public/chunk-ACK5QKZR.js +0 -1
  194. package/public/chunk-ADJ6TEYQ.js +0 -5
  195. package/public/chunk-ADWZU2CD.js +0 -1
  196. package/public/chunk-AGDDSLXN.js +0 -1
  197. package/public/chunk-ASZKPQUN.js +0 -1
  198. package/public/chunk-AZY2DNUN.js +0 -1
  199. package/public/chunk-B6MBMYJR.js +0 -1
  200. package/public/chunk-BBLJIMXX.js +0 -1
  201. package/public/chunk-BON2K2BD.js +0 -2
  202. package/public/chunk-BRP3EHP7.js +0 -1
  203. package/public/chunk-C5VP7CRC.js +0 -1
  204. package/public/chunk-C6X7E5CS.js +0 -1
  205. package/public/chunk-CM3N3C3W.js +0 -1
  206. package/public/chunk-CV2KW5FI.js +0 -1
  207. package/public/chunk-EDQF53QR.js +0 -1
  208. package/public/chunk-EZJQ5APU.js +0 -1
  209. package/public/chunk-FRNPHIV3.js +0 -1
  210. package/public/chunk-GBTKBQ2X.js +0 -16
  211. package/public/chunk-HDF4JHFI.js +0 -4
  212. package/public/chunk-JEUVQW5P.js +0 -1
  213. package/public/chunk-KWAS7MXI.js +0 -1
  214. package/public/chunk-KWC5QURK.js +0 -8
  215. package/public/chunk-KXNC6WH6.js +0 -1
  216. package/public/chunk-MMBLECEN.js +0 -1
  217. package/public/chunk-NQB7BEZZ.js +0 -1
  218. package/public/chunk-OKAPP6YO.js +0 -1
  219. package/public/chunk-OM7GHRRK.js +0 -1
  220. package/public/chunk-OOM2PIRM.js +0 -5
  221. package/public/chunk-OZKGVJ4N.js +0 -1
  222. package/public/chunk-PT24GQ5K.js +0 -1
  223. package/public/chunk-QPI2YWGC.js +0 -1
  224. package/public/chunk-QQRM2O4S.js +0 -3
  225. package/public/chunk-QXD4RXA4.js +0 -1
  226. package/public/chunk-QZU43P2A.js +0 -1
  227. package/public/chunk-R3Y3VSF7.js +0 -4
  228. package/public/chunk-R7Q4CXAE.js +0 -1
  229. package/public/chunk-RAG7VYNH.js +0 -40
  230. package/public/chunk-RY3E4AUI.js +0 -1
  231. package/public/chunk-SCWBTFUY.js +0 -1
  232. package/public/chunk-SRFINKMY.js +0 -1
  233. package/public/chunk-TRDROX2J.js +0 -1
  234. package/public/chunk-UH7ZNLL5.js +0 -19
  235. package/public/chunk-V2WJ2SKN.js +0 -1
  236. package/public/chunk-VZ3XY34I.js +0 -2
  237. package/public/chunk-W663VLRG.js +0 -1
  238. package/public/chunk-WDXU4PPN.js +0 -1
  239. package/public/chunk-WEXOQCVG.js +0 -1
  240. package/public/chunk-XDFBUXFD.js +0 -1
  241. package/public/chunk-XPGJPK66.js +0 -4
  242. package/public/chunk-YXLLPJEL.js +0 -1
  243. package/public/chunk-ZXUIFQS4.js +0 -51
  244. package/public/main-YD5INHXP.js +0 -1
  245. package/public/polyfills-5KWHJ7II.js +0 -2
  246. package/public/styles-7EFV5QBG.css +0 -1
@@ -1 +0,0 @@
1
- import{m as J}from"./chunk-3F6KNL45.js";import{C as H,e as O,l as W,s as z,t as q,v as G}from"./chunk-B6MBMYJR.js";import{e as Y}from"./chunk-R7Q4CXAE.js";import{k as K,l as Q,n as X,q as Z}from"./chunk-6C5CYDDU.js";import{$b as g,Ib as B,Lb as h,Nb as d,Pc as j,Qa as s,_b as c,a as T,ac as I,b as R,bc as V,db as D,fc as F,gc as U,h as M,hc as L,mc as N,na as w,nc as P,pb as A,qb as _,rb as u,rc as m,sa as v,sc as p,ta as f,tb as E,ub as k,vb as $,wb as C,x as S,xb as o,yb as a,zb as b}from"./chunk-OOM2PIRM.js";var te=(t,l)=>({"btn-danger":t,"btn-elegant":l}),ie=(t,l,e)=>({"fa-trash":t,"fa-undo":l,"fa-spinner fa-pulse":e});function ne(t,l){t&1&&(o(0,"div",12),b(1,"i",13),a(),o(2,"p",14),c(3),m(4,"translate"),a()),t&2&&(s(3),g(p(4,1,"reset.no_accessories")))}function se(t,l){if(t&1&&(o(0,"option",24),c(1),a()),t&2){let e=l.$implicit;C("value",e._id),s(),V("",e.name," (",e._username,")")}}function oe(t,l){if(t&1){let e=B();o(0,"li",20),c(1),m(2,"translate"),a(),o(3,"li",18)(4,"label",21),c(5),m(6,"translate"),a(),o(7,"div",22)(8,"select",23),L("ngModelChange",function(i){v(e);let r=d(2);return U(r.selectedBridge,i)||(r.selectedBridge=i),f(i)}),h("change",function(i){v(e);let r=d(2);return f(r.onBridgeChange(i.target.value))}),k(9,se,2,3,"option",24,E),a()()()}if(t&2){let e=d(2);s(),g(p(2,3,"form.label.changes_kept")),s(4),g(p(6,5,"reset.accessory_ind.bridge")),s(3),F("ngModel",e.selectedBridge),s(),$(e.pairings)}}function ae(t,l){if(t&1&&(o(0,"li",18)(1,"label",25),c(2),m(3,"translate"),a(),o(4,"div",26),c(5),a()()),t&2){let e=d(2);s(2),g(p(3,2,"reset.accessory_ind.bridge")),s(3),I(" ",e.getCurrentlySelectedBridge()," ")}}function re(t,l){if(t&1){let e=B();o(0,"li",19)(1,"span",27),b(2,"i",28),a(),o(3,"span",29),c(4),b(5,"br"),o(6,"small")(7,"span",30),c(8),a()()(),o(9,"button",31),m(10,"translate"),h("click",function(){let i=v(e).$implicit,r=d(2);return f(r.toggleList(i.UUID,i.$cacheFile))}),b(11,"i",32),a()()}if(t&2){let e=l.$implicit,n=d(2);s(4),I(" ",e.displayName," "),s(4),g(e.UUID),s(),C("disabled",n.clicked)("ngClass",N(8,te,!n.isInList(e.UUID,e.$cacheFile),n.isInList(e.UUID,e.$cacheFile))),A("aria-label",p(10,6,"form.button_delete")),s(2),C("ngClass",P(11,ie,!n.isInList(e.UUID,e.$cacheFile),n.isInList(e.UUID,e.$cacheFile)&&!n.clicked,n.isInList(e.UUID,e.$cacheFile)&&n.clicked))}}function le(t,l){if(t&1&&(o(0,"div",12),b(1,"i",15),a(),o(2,"ul",16)(3,"li"),c(4),m(5,"translate"),a(),o(6,"li"),c(7),m(8,"translate"),a(),o(9,"li"),c(10),m(11,"translate"),a()(),o(12,"ul",17),_(13,oe,11,7),_(14,ae,6,4,"li",18),k(15,re,12,15,"li",19,E),a()),t&2){let e=d();s(4),g(p(5,5,"reset.accessory_ind.list_1")),s(3),g(p(8,7,"reset.accessory_ind.list_2")),s(3),g(p(11,9,"reset.accessory_ind.list_3")),s(3),u(e.pairings.length>1?13:-1),s(),u(e.pairings.length===1?14:-1),s(),$(e.selectedBridgeAccessories)}}function ce(t,l){if(t&1){let e=B();o(0,"button",33),h("click",function(){v(e);let i=d();return f(i.dismissModal())}),c(1),m(2,"translate"),a()}if(t&2){let e=d();C("disabled",e.clicked),s(),I(" ",p(2,2,"form.button_close")," ")}}function de(t,l){if(t&1){let e=B();o(0,"button",34),h("click",function(){v(e);let i=d();return f(i.dismissModal())}),c(1),m(2,"translate"),a()}t&2&&(s(),I(" ",p(2,1,"form.button_close")," "))}function me(t,l){if(t&1&&c(0),t&2){let e=d(3);I(" (",e.toDelete.length,") ")}}function pe(t,l){if(t&1&&(c(0),m(1,"translate"),_(2,me,1,1)),t&2){let e=d(2);I(" ",p(1,2,"form.button_remove")," "),s(2),u(e.toDelete.length>0?2:-1)}}function _e(t,l){t&1&&b(0,"i",36)}function ue(t,l){if(t&1){let e=B();o(0,"button",35),h("click",function(){v(e);let i=d();return f(i.removeAccessories())}),_(1,pe,3,4),_(2,_e,1,0,"i",36),a()}if(t&2){let e=d();C("disabled",!e.toDelete.length||e.clicked),s(),u(e.clicked?-1:1),s(),u(e.clicked?2:-1)}}var Ee=(()=>{class t{$activeModal=w(J);$api=w(Z);$router=w(Y);$toastr=w(X);$translate=w(K);selectedBridge="";pairings=[];clicked=!1;selectedBridgeAccessories=[];accessoriesExist=!1;toDelete=[];ngOnInit(){this.loadCachedAccessories()}onBridgeChange(e){this.selectedBridge=e,this.selectedBridgeAccessories=this.pairings.find(n=>n._id===this.selectedBridge)?.accessories}getCurrentlySelectedBridge(){let e=this.pairings.find(n=>n._id===this.selectedBridge);return`${e.name} - ${e._username}`}toggleList(e,n){this.toDelete.some(i=>i.uuid===e&&i.cacheFile===n)?this.toDelete=this.toDelete.filter(i=>i.uuid!==e||i.cacheFile!==n):this.toDelete.push({cacheFile:n,uuid:e})}isInList(e,n){return this.toDelete.some(i=>i.uuid===e&&i.cacheFile===n)}removeAccessories(){return this.clicked=!0,this.$api.delete("/server/cached-accessories",{body:this.toDelete}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return M(this,null,function*(){try{let[e,n]=yield Promise.all([S(this.$api.get("/server/cached-accessories")),S(this.$api.get("/server/pairings"))]),i=new Map(n.map(r=>[r._id,R(T({},r),{accessories:[]})]));e.sort((r,x)=>r.displayName.localeCompare(x.displayName)).forEach(r=>{let x=n.find(ee=>ee._main),y=r.$cacheFile?.split(".")?.[1]||x._id;(!this.selectedBridge||this.selectedBridge===y)&&(i.has(y)||i.set(y,{_id:y,_username:y.match(/.{1,2}/g).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),i.get(y).accessories.push(r))}),this.pairings=Array.from(i.values()).filter(r=>r.accessories.length>0).sort((r,x)=>r._main&&!x._main?-1:!r._main&&x._main?1:r.name.localeCompare(x.name)),this.selectedBridge=this.selectedBridge||this.pairings[0]?._id,this.selectedBridge&&(this.accessoriesExist=!0,this.selectedBridgeAccessories=this.pairings[0].accessories)}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=D({type:t,selectors:[["ng-component"]],inputs:{selectedBridge:"selectedBridge"},decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"list-group-item","text-center","grey-text","small"],["for","bridgeSelect",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["id","bridgeSelect",1,"custom-select",3,"ngModelChange","change","ngModel"],[3,"value"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],[1,"me-3"],[1,"fas","fa-lg","fa-hap"],[1,"flex-grow-1"],[1,"font-monospace","grey-text"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"]],template:function(n,i){n&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),c(3),m(4,"translate"),a(),o(5,"button",3),m(6,"translate"),h("click",function(){return i.dismissModal()}),a()(),o(7,"div",4),_(8,ne,5,3),_(9,le,17,11),a(),o(10,"div",5)(11,"div",6),_(12,ce,3,4,"button",7),a(),o(13,"div",8),_(14,de,3,3,"button",9),a(),o(15,"div",10),_(16,ue,3,3,"button",11),a()()()),n&2&&(s(3),g(p(4,8,"reset.accessory_ind.title")),s(2),C("disabled",i.clicked),A("aria-label",p(6,10,"form.button_close")),s(3),u(i.accessoriesExist?-1:8),s(),u(i.accessoriesExist?9:-1),s(3),u(i.accessoriesExist?12:-1),s(2),u(i.accessoriesExist?-1:14),s(2),u(i.accessoriesExist?16:-1))},dependencies:[j,H,q,G,z,O,W,Q],encapsulation:2})}return t})();export{Ee as a};
@@ -1 +0,0 @@
1
- import{a as b}from"./chunk-WEXOQCVG.js";import"./chunk-C5VP7CRC.js";import{e as T}from"./chunk-R7Q4CXAE.js";import{b as w}from"./chunk-OM7GHRRK.js";import{k as C,l as $,n as k,q as S}from"./chunk-6C5CYDDU.js";import{$b as s,Ab as r,Bb as i,Cb as l,Jb as E,La as x,Nb as h,Qa as n,_b as a,db as _,lc as g,na as o,qb as d,rb as f,rc as m,sc as c,tc as y}from"./chunk-OOM2PIRM.js";var I=t=>({command:t});function D(t,u){if(t&1&&(r(0,"div",7),a(1),i()),t&2){let e=h();n(),s(e.error)}}function R(t,u){t&1&&(r(0,"p",9),a(1),m(2,"translate"),i(),r(3,"div",10)(4,"div",11),l(5,"i",12),i()()),t&2&&(n(),s(c(2,1,"restart.please_wait_while_server_restarts")))}function B(t,u){if(t&1&&(r(0,"div",8)(1,"p"),a(2),m(3,"translate"),i(),l(4,"p",13),m(5,"translate"),i()),t&2){let e=h();n(2),s(c(3,2,"platform.docker.server_long_time")),n(2),E("innerHTML",y(5,4,"platform.docker.run_with_restart",g(7,I,e.command)),x)}}var U=(()=>{class t{$api=o(S);$router=o(T);$settings=o(w);$toastr=o(k);$translate=o(C);$ws=o(b);checkTimeout;checkDelay;io;resp={};timeout=!1;error=!1;command='<span class="font-monospace">--restart=always</span>';ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$api.put("/platform-tools/docker/restart-container",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp()},error:e=>{this.error=this.$translate.instant("restart.toast_server_restart_error"),console.error(e),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="ok"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.docker.container_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},1e4),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},6e4)}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=_({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fab","fa-docker",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-spinner","fa-spin"],[1,"grey-text","mb-0",3,"innerHTML"]],template:function(p,v){p&1&&(r(0,"div",0)(1,"h3",1),a(2),m(3,"translate"),i()(),r(4,"div",2)(5,"div",3),l(6,"i",4),i(),r(7,"div",5)(8,"h4",6),a(9),m(10,"translate"),i(),d(11,D,2,1,"div",7)(12,R,6,3),d(13,B,6,9,"div",8),i()()),p&2&&(n(2),s(c(3,4,"menu.restart.title")),n(7),s(c(10,6,"platform.docker.title_restarting")),n(2),f(v.error?11:12),n(2),f(v.timeout?13:-1))},dependencies:[$],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{U as ContainerRestartComponent};
@@ -1 +0,0 @@
1
- import{A,C as G,D as Q,c as $,d as C,e as B,f as O,g as T,j as w,m as q,q as z,r as D,y as H}from"./chunk-B6MBMYJR.js";import{b as K}from"./chunk-C5VP7CRC.js";import{e as U}from"./chunk-R7Q4CXAE.js";import{b as J}from"./chunk-OM7GHRRK.js";import{l as j,p as W}from"./chunk-6C5CYDDU.js";import{$b as h,Cc as b,Ec as L,La as x,Lb as E,Nb as M,P as I,Pc as N,Qa as i,Sc as V,Ub as v,Vb as F,_b as g,ac as R,ad as P,db as k,h as y,lc as f,na as p,qb as u,rb as c,rc as l,sc as d,wb as m,x as S,xb as r,yb as a,zb as s}from"./chunk-OOM2PIRM.js";var Y=["password"],Z=["username"],ee=["otp"],te=e=>({background:e}),ie=e=>({anim:e}),X=e=>({"is-invalid":e});function ne(e,_){if(e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",13),a(),s(3,"input",14,0),l(5,"translate"),a(),r(6,"div",8)(7,"span",12),s(8,"i",15),a(),s(9,"input",16,1),l(11,"translate"),a()),e&2){let n=M();i(3),m("placeholder",d(5,4,"users.label_username"))("ngClass",f(8,X,n.form.controls.username.dirty&&n.form.controls.username.errors)),i(6),m("placeholder",d(11,6,"users.label_password"))("ngClass",f(10,X,n.form.controls.password.dirty&&n.form.controls.password.errors))}}function oe(e,_){e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",17),a(),s(3,"input",18,2),l(5,"translate"),a()),e&2&&(i(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function ae(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_credentials")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}function re(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_code")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}var _e=(()=>{class e{$auth=p(K);$cdr=p(L);$router=p(U);$settings=p(J);targetRoute;validNonAdminRoutes=["/accessories","/plugins","/logs","/support"];passwordInput=b("password");usernameInput=b("username");otpInput=b("otp");backgroundStyle;invalidCredentials=!1;invalid2faCode=!1;twoFactorCodeRequired=!1;inProgress=!1;form;ngOnInit(){this.form=new T({username:new w(""),password:new w("")}),this.form.valueChanges.pipe(I(500)).subscribe(n=>{let o=this.passwordInput()?.nativeElement.value;o&&o!==n.password&&this.form.controls.password.setValue(o)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}ngAfterViewChecked(){this.$cdr.detectChanges()}onSubmit(){return y(this,null,function*(){this.invalidCredentials=!1,this.invalid2faCode=!1,this.inProgress=!0,document.getElementById("submit-button")?.blur();let n=this.passwordInput()?.nativeElement.value;n&&n!==this.form.get("password").value&&this.form.controls.password.setValue(n);let o=this.usernameInput()?.nativeElement.value;if(o&&o!==this.form.get("username").value&&this.form.controls.username.setValue(o),this.twoFactorCodeRequired){let t=this.otpInput()?.nativeElement.value;t&&t!==this.form.get("otp").value&&this.form.controls.username.setValue(t)}try{yield this.$auth.login(this.form.getRawValue()),!this.$auth.user.admin&&!this.validNonAdminRoutes.includes(this.targetRoute)&&(this.targetRoute="/"),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(t){t.status===412?(this.form.controls.otp?(this.form.controls.otp.setErrors(["Invalid Code"]),this.invalid2faCode=!0):this.form.addControl("otp",new w("",[C.required,C.minLength(6),C.maxLength(6)])),this.twoFactorCodeRequired=!0,setTimeout(()=>{document.getElementById("form-ota").focus()},100)):this.invalidCredentials=!0}this.inProgress=!1})}setBackground(){return y(this,null,function*(){if(this.$settings.settingsLoaded||(yield S(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let n=`${W.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle=`url('${n}') center/cover`}})}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=k({type:e,selectors:[["ng-component"]],viewQuery:function(o,t){o&1&&(v(t.passwordInput,Y,5),v(t.usernameInput,Z,5),v(t.otpInput,ee,5)),o&2&&F(3)},decls:15,vars:18,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center",3,"ngStyle","ngClass"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder","ngClass"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder","ngClass"],[1,"fas","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(o,t){o&1&&(r(0,"div",3)(1,"div",4),s(2,"img",5),r(3,"form",6),E("ngSubmit",function(){return t.onSubmit()}),r(4,"h4",7),g(5),l(6,"translate"),a(),u(7,ne,12,12),u(8,oe,6,3,"div",8),u(9,ae,9,6,"div",9),u(10,re,9,6,"div",9),r(11,"div",10)(12,"button",11),g(13),l(14,"translate"),a()()()()()),o&2&&(m("ngStyle",f(14,te,t.backgroundStyle))("ngClass",f(16,ie,!t.backgroundStyle)),i(3),m("formGroup",t.form),i(2),h(d(6,10,"setup.welcome_to_homebridge")),i(2),c(t.twoFactorCodeRequired?-1:7),i(),c(t.twoFactorCodeRequired?8:-1),i(),c(t.invalidCredentials?9:-1),i(),c(t.invalid2faCode?10:-1),i(2),m("disabled",t.form.invalid),i(),R(" ",d(14,12,"form.button_continue")," "))},dependencies:[V,G,q,$,B,O,H,A,Q,z,D,N,P,j],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width: 575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return e})();export{_e as LoginComponent};