homebridge-config-ui-x 5.8.1-alpha.2 → 5.8.1-alpha.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 (158) hide show
  1. package/CHANGELOG.md +12 -1
  2. package/dist/app.module.js +0 -4
  3. package/dist/app.module.js.map +1 -1
  4. package/dist/core/auth/auth.controller.d.ts +2 -0
  5. package/dist/core/config/config.interfaces.d.ts +0 -2
  6. package/dist/core/config/config.service.d.ts +3 -0
  7. package/dist/core/config/config.service.js +20 -0
  8. package/dist/core/config/config.service.js.map +1 -1
  9. package/dist/core/feature-flags/feature-flags.registry.d.ts +6 -0
  10. package/dist/core/feature-flags/feature-flags.registry.js +16 -0
  11. package/dist/core/feature-flags/feature-flags.registry.js.map +1 -0
  12. package/dist/core/homebridge-ipc/homebridge-ipc.service.d.ts +1 -1
  13. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +2 -8
  14. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  15. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +22 -6
  16. package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
  17. package/dist/modules/config-editor/config-editor.controller.d.ts +5 -0
  18. package/dist/modules/config-editor/config-editor.controller.js +44 -0
  19. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  20. package/dist/modules/config-editor/config-editor.module.js +2 -0
  21. package/dist/modules/config-editor/config-editor.module.js.map +1 -1
  22. package/dist/modules/config-editor/config-editor.service.d.ts +9 -1
  23. package/dist/modules/config-editor/config-editor.service.js +41 -2
  24. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  25. package/dist/modules/plugins/plugins.service.js +9 -0
  26. package/dist/modules/plugins/plugins.service.js.map +1 -1
  27. package/dist/modules/server/server.controller.d.ts +10 -8
  28. package/dist/modules/server/server.controller.js +45 -34
  29. package/dist/modules/server/server.controller.js.map +1 -1
  30. package/dist/modules/server/server.module.js +0 -2
  31. package/dist/modules/server/server.module.js.map +1 -1
  32. package/dist/modules/server/server.service.d.ts +11 -10
  33. package/dist/modules/server/server.service.js +105 -77
  34. package/dist/modules/server/server.service.js.map +1 -1
  35. package/dist/modules/status/status.gateway.d.ts +2 -0
  36. package/dist/modules/status/status.interfaces.d.ts +21 -1
  37. package/dist/modules/status/status.interfaces.js +1 -1
  38. package/dist/modules/status/status.interfaces.js.map +1 -1
  39. package/dist/modules/status/status.service.d.ts +4 -1
  40. package/dist/modules/status/status.service.js +10 -1
  41. package/dist/modules/status/status.service.js.map +1 -1
  42. package/package.json +5 -5
  43. package/public/3rdpartylicenses.txt +21 -21
  44. package/public/{chunk-COBEXT75.js → chunk-2FWWYO4B.js} +2 -2
  45. package/public/{chunk-BJULQD6Z.js → chunk-2LBKTBCF.js} +1 -1
  46. package/public/{chunk-6VILNURQ.js → chunk-2XFSGIAO.js} +1 -1
  47. package/public/{chunk-3EACECYJ.js → chunk-3T2NXEM5.js} +1 -1
  48. package/public/{chunk-FBEAGLXX.js → chunk-3TKIMQYT.js} +1 -1
  49. package/public/{chunk-M7GSB47P.js → chunk-55HYMJBU.js} +1 -1
  50. package/public/{chunk-YPUYAJME.js → chunk-5DTS5JL6.js} +1 -1
  51. package/public/{chunk-ROHOV4PQ.js → chunk-5UP2TSBM.js} +1 -1
  52. package/public/{chunk-3XNA4EQU.js → chunk-6ZFO2Z6G.js} +1 -1
  53. package/public/{chunk-A5EKMCXX.js → chunk-7EKZ6SQK.js} +1 -1
  54. package/public/{chunk-TUI3ZP5I.js → chunk-A3BKR6VK.js} +1 -1
  55. package/public/{chunk-BKJWDEC4.js → chunk-ABIBVBF3.js} +1 -1
  56. package/public/{chunk-ZINKZV7F.js → chunk-AJXWRGZ7.js} +5 -5
  57. package/public/chunk-AWLZA2EW.js +16 -0
  58. package/public/{chunk-5KMVHZV7.js → chunk-CCA2SNXN.js} +1 -1
  59. package/public/{chunk-Y3W3WZ42.js → chunk-CCCZAZJ2.js} +1 -1
  60. package/public/{chunk-KZ6XXGP4.js → chunk-CU4SAXA4.js} +1 -1
  61. package/public/{chunk-K3HCHWTM.js → chunk-CUVZMVFO.js} +1 -1
  62. package/public/{chunk-LGGTBRNV.js → chunk-D6Z34SAM.js} +1 -1
  63. package/public/{chunk-BD2WNMUL.js → chunk-DMEFUE3V.js} +1 -1
  64. package/public/{chunk-U4SKVUE5.js → chunk-DOSRSLQO.js} +1 -1
  65. package/public/{chunk-D4FV2NR6.js → chunk-EKC2RV36.js} +1 -1
  66. package/public/{chunk-XID2DQIK.js → chunk-EKLSSFFP.js} +1 -1
  67. package/public/{chunk-KAFW5DRA.js → chunk-GA5RZ3HQ.js} +1 -1
  68. package/public/{chunk-UHSROVQY.js → chunk-GNATRK42.js} +1 -1
  69. package/public/{chunk-YKU27KZX.js → chunk-H4IBDWV7.js} +1 -1
  70. package/public/{chunk-SFXLRTS5.js → chunk-I7SB2G7A.js} +1 -1
  71. package/public/{chunk-XRLPCXVY.js → chunk-ILDWZENR.js} +1 -1
  72. package/public/{chunk-VI7CE3DV.js → chunk-IQTWYO25.js} +1 -1
  73. package/public/{chunk-TKL5NWVB.js → chunk-IRYK7NUM.js} +1 -1
  74. package/public/{chunk-PC74JU2B.js → chunk-JSWWQSUV.js} +1 -1
  75. package/public/{chunk-FKNFGRMF.js → chunk-JXG5TY3O.js} +1 -1
  76. package/public/{chunk-WYZEY4PO.js → chunk-KANB2ARW.js} +1 -1
  77. package/public/chunk-KB2F2YYC.js +5 -0
  78. package/public/{chunk-BXTJNIAF.js → chunk-KJKNOSUE.js} +1 -1
  79. package/public/chunk-KQMMIJA5.js +1 -0
  80. package/public/{chunk-GOK2QVWT.js → chunk-L6JPJPU3.js} +1 -1
  81. package/public/{chunk-AW6ZPEG3.js → chunk-LJZSLCFC.js} +1 -1
  82. package/public/{chunk-5EZCX7HV.js → chunk-NNNDIMM6.js} +1 -1
  83. package/public/{chunk-M3FIN2AA.js → chunk-NSGFRJXN.js} +3 -3
  84. package/public/{chunk-33PMRDBB.js → chunk-NVNWS3JF.js} +1 -1
  85. package/public/chunk-NYDAJZGW.js +1 -0
  86. package/public/chunk-ONROVX2Q.js +3 -0
  87. package/public/{chunk-JAPQGXHI.js → chunk-OQJ2BAJH.js} +1 -1
  88. package/public/{chunk-MBD42QUN.js → chunk-OQMPX5YA.js} +1 -1
  89. package/public/{chunk-JA7WBGLB.js → chunk-PXPNFA2I.js} +1 -1
  90. package/public/{chunk-GXMQ3BRX.js → chunk-Q5HCUZSK.js} +1 -1
  91. package/public/{chunk-ELWCTORK.js → chunk-QBLDOG7O.js} +1 -1
  92. package/public/{chunk-OI6KCFXH.js → chunk-QQ7ZHNZE.js} +1 -1
  93. package/public/chunk-S6MYPH6C.js +4 -0
  94. package/public/chunk-SA3HPRMP.js +1 -0
  95. package/public/{chunk-Q3A53XG6.js → chunk-SWTHJ45W.js} +1 -1
  96. package/public/{chunk-R6PJW4VJ.js → chunk-TFGWHHOW.js} +1 -1
  97. package/public/chunk-UHLL4VVT.js +1 -0
  98. package/public/chunk-UPKMOIY3.js +19 -0
  99. package/public/{chunk-K4H6PB2J.js → chunk-UQMYUWML.js} +1 -1
  100. package/public/{chunk-2EKZK7NX.js → chunk-VBDRNOPV.js} +1 -1
  101. package/public/chunk-VWACQIPD.js +49 -0
  102. package/public/{chunk-Z37KQHXT.js → chunk-W6X5DVD5.js} +2 -2
  103. package/public/chunk-WH7QF4LS.js +1 -0
  104. package/public/{chunk-ULZPLNSU.js → chunk-X3IAUH27.js} +1 -1
  105. package/public/{chunk-AR55D6KT.js → chunk-XEBCQH44.js} +1 -1
  106. package/public/{chunk-YULDG6HZ.js → chunk-XFC3NTKZ.js} +1 -1
  107. package/public/{chunk-ZNLFE6SA.js → chunk-XL76XPL2.js} +1 -1
  108. package/public/{chunk-LXFAOFAX.js → chunk-YGVKQQUG.js} +1 -1
  109. package/public/{chunk-AWJONODF.js → chunk-YQUDQYPJ.js} +1 -1
  110. package/public/chunk-YVFYN4TU.js +1 -0
  111. package/public/chunk-ZCLWXDAG.js +1 -0
  112. package/public/index.html +2 -2
  113. package/public/{main-NHC6QBFW.js → main-X7WCC2GC.js} +1 -1
  114. package/public/{styles-4Y3CNLUV.css → styles-WNHDEKE4.css} +1 -1
  115. package/scripts/extract-plugin-alias.js +3 -36
  116. package/dist/modules/bridges/bridge-identifier.util.d.ts +0 -9
  117. package/dist/modules/bridges/bridge-identifier.util.js +0 -30
  118. package/dist/modules/bridges/bridge-identifier.util.js.map +0 -1
  119. package/dist/modules/bridges/bridges.controller.d.ts +0 -11
  120. package/dist/modules/bridges/bridges.controller.js +0 -156
  121. package/dist/modules/bridges/bridges.controller.js.map +0 -1
  122. package/dist/modules/bridges/bridges.interfaces.d.ts +0 -72
  123. package/dist/modules/bridges/bridges.interfaces.js +0 -3
  124. package/dist/modules/bridges/bridges.interfaces.js.map +0 -1
  125. package/dist/modules/bridges/bridges.module.d.ts +0 -2
  126. package/dist/modules/bridges/bridges.module.js +0 -39
  127. package/dist/modules/bridges/bridges.module.js.map +0 -1
  128. package/dist/modules/bridges/bridges.service.d.ts +0 -16
  129. package/dist/modules/bridges/bridges.service.js +0 -168
  130. package/dist/modules/bridges/bridges.service.js.map +0 -1
  131. package/dist/modules/matter-bridges/matter-bridges.controller.d.ts +0 -18
  132. package/dist/modules/matter-bridges/matter-bridges.controller.js +0 -104
  133. package/dist/modules/matter-bridges/matter-bridges.controller.js.map +0 -1
  134. package/dist/modules/matter-bridges/matter-bridges.gateway.d.ts +0 -19
  135. package/dist/modules/matter-bridges/matter-bridges.gateway.js +0 -128
  136. package/dist/modules/matter-bridges/matter-bridges.gateway.js.map +0 -1
  137. package/dist/modules/matter-bridges/matter-bridges.interfaces.d.ts +0 -24
  138. package/dist/modules/matter-bridges/matter-bridges.interfaces.js +0 -3
  139. package/dist/modules/matter-bridges/matter-bridges.interfaces.js.map +0 -1
  140. package/dist/modules/matter-bridges/matter-bridges.module.d.ts +0 -2
  141. package/dist/modules/matter-bridges/matter-bridges.module.js +0 -43
  142. package/dist/modules/matter-bridges/matter-bridges.module.js.map +0 -1
  143. package/dist/modules/matter-bridges/matter-bridges.service.d.ts +0 -41
  144. package/dist/modules/matter-bridges/matter-bridges.service.js +0 -329
  145. package/dist/modules/matter-bridges/matter-bridges.service.js.map +0 -1
  146. package/public/chunk-4Y2KPCHA.js +0 -1
  147. package/public/chunk-5BCOF7IG.js +0 -49
  148. package/public/chunk-BQTCHQHZ.js +0 -1
  149. package/public/chunk-EYNZEIGI.js +0 -3
  150. package/public/chunk-HNA35CNP.js +0 -1
  151. package/public/chunk-JIUPKHC6.js +0 -5
  152. package/public/chunk-MJBWBNSG.js +0 -1
  153. package/public/chunk-NWKHE4QY.js +0 -19
  154. package/public/chunk-P3A7PEYC.js +0 -17
  155. package/public/chunk-SHCD57ND.js +0 -1
  156. package/public/chunk-SXARTKV3.js +0 -1
  157. package/public/chunk-V7NTVYMU.js +0 -4
  158. package/public/chunk-VUV53WFF.js +0 -1
@@ -1,19 +0,0 @@
1
- import{a as St}from"./chunk-6VILNURQ.js";import{b as B,e as vt,f as $t,g as Ot,h as kt,i as xt}from"./chunk-P3A7PEYC.js";import{a as bt,b as _t}from"./chunk-Z37KQHXT.js";import{a as Ct}from"./chunk-M7GSB47P.js";import{a as Rt}from"./chunk-WYZEY4PO.js";import{m as ht,n as ut,t as I}from"./chunk-ZINKZV7F.js";import{C as mt,D as ft,c as ct,e as pt,l as gt}from"./chunk-4Y2KPCHA.js";import{c as yt,e as N}from"./chunk-33PMRDBB.js";import{b as wt}from"./chunk-2EKZK7NX.js";import{k as R,l as O,n as H,q as U}from"./chunk-5EZCX7HV.js";import{Db as S,Gb as b,Ib as p,Kc as lt,La as o,Pa as tt,Rc as dt,Tb as st,Vb as y,Wa as j,Wb as T,Xb as V,a as L,ac as ot,b as W,bc as rt,cc as at,d as X,g as Z,h as $,hc as K,ja as m,kb as C,lb as k,mb as x,mc as r,nc as l,oa as h,ob as et,oc as G,pa as u,pb as it,qb as nt,rb as f,sb as a,tb as d,ub as g,w as E}from"./chunk-JIUPKHC6.js";var Bt=Z(Ot(),1);var Et=Z(Rt(),1);var Tt=(s,w)=>({"fa-trash":s,"fa-cog fa-spin":w});function Nt(s,w){s&1&&(a(0,"div",13),g(1,"i",20),d())}function Ut(s,w){if(s&1){let t=S();a(0,"li",9)(1,"span"),y(2),r(3,"date"),g(4,"br"),a(5,"span",21),y(6),r(7,"date"),d()(),a(8,"span",22)(9,"button",25),r(10,"translate"),r(11,"translate"),b("click",function(){let i=h(t).$implicit,n=p(2);return u(n.restore(i.id))}),g(12,"i",26),d(),a(13,"button",27),r(14,"translate"),r(15,"translate"),b("click",function(){let i=h(t).$implicit,n=p(2);return u(n.download(i.id))}),g(16,"i",28),d(),a(17,"button",23),r(18,"translate"),r(19,"translate"),b("click",function(){let i=h(t).$implicit,n=p(2);return u(n.delete(i.id))}),g(20,"i",24),d()()()}if(s&2){let t=w.$implicit,e=p(2);o(2),V(" ",G(3,15,t.timestamp,"mediumDate")),o(4),T(G(7,18,t.timestamp,"shortTime")),o(3),f("disabled",e.clicked||e.deleting)("ngbTooltip",l(10,21,"config.restore.copy_to_editor"))("openDelay",150),C("aria-label",l(11,23,"config.restore.copy_to_editor")),o(4),f("disabled",e.clicked||e.deleting)("ngbTooltip",l(14,25,"form.button_download"))("openDelay",150),C("aria-label",l(15,27,"form.button_download")),o(4),f("disabled",e.clicked||e.deleting)("ngbTooltip",l(18,29,"form.button_delete"))("openDelay",150),C("aria-label",l(19,31,"form.button_delete")),o(3),f("ngClass",K(33,Tt,t.id!==e.deleting,t.id===e.deleting))}}function Ft(s,w){if(s&1){let t=S();a(0,"ul",14),it(1,Ut,21,36,"li",9,et),a(3,"li",9)(4,"span"),y(5),r(6,"translate"),g(7,"br"),a(8,"span",21),y(9),r(10,"translate"),d()(),a(11,"span",22)(12,"button",23),r(13,"translate"),r(14,"translate"),b("click",function(){h(t);let i=p();return u(i.deleteAllBackups())}),g(15,"i",24),d()()()()}if(s&2){let t=p();o(),nt(t.backupList),o(4),V(" ",l(6,7,"form.button_delete_all")),o(4),V(" ",l(10,9,"common.labels.no_confirmation")," "),o(3),f("disabled",t.clicked||t.deleting)("ngbTooltip",l(13,11,"form.button_delete_all"))("openDelay",150),C("aria-label",l(14,13,"form.button_delete")),o(3),f("ngClass",K(15,Tt,t.deleting!=="all",t.deleting==="all"))}}var Mt=(()=>{class s{$activeModal=m(ht);$api=m(U);$router=m(N);$toastr=m(H);$translate=m(R);currentConfig;fromSettings=!1;loading=!0;backupList=[];clicked=!1;deleting=null;ngOnInit(){this.getConfigBackups()}getConfigBackups(){return $(this,null,function*(){try{let t=yield E(this.$api.get("/config-editor/backups"));this.loading=!1,this.backupList=t}catch(t){this.loading=!1,console.error(t),this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),this.dismissModal()}})}restore(t){return this.$activeModal.close(t)}download(t){return $(this,null,function*(){this.clicked=!0;try{let e=yield E(this.$api.get(`/config-editor/backups/${t}`)),i=JSON.stringify(e,null,4),n=new Blob([i],{type:"application/json"}),v=`config-backup-${t}.json`;(0,Et.saveAs)(n,v),this.clicked=!1}catch(e){this.clicked=!1,this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e)}})}downloadCurrentConfig(){let t=`data:text/json;charset=utf-8,${encodeURIComponent(this.currentConfig)}`,e=document.createElement("a");e.setAttribute("href",t),e.setAttribute("download","config.json"),document.body.appendChild(e),e.click(),e.remove()}delete(t){return $(this,null,function*(){this.deleting=t;try{yield E(this.$api.delete(`/config-editor/backups/${t}`)),yield this.getConfigBackups(),this.deleting=null}catch(e){this.deleting=null,this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e)}})}deleteAllBackups(){return $(this,null,function*(){this.deleting="all";try{yield E(this.$api.delete("/config-editor/backups")),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success")),this.backupList=[],this.deleting=null}catch(t){this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t),this.deleting=null}})}dismissModal(){this.fromSettings&&this.$router.navigate(["/settings"]),this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=j({type:s,selectors:[["ng-component"]],inputs:{currentConfig:"currentConfig",fromSettings:"fromSettings"},decls:40,vars:31,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-history","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3",3,"click","disabled"],[1,"fas","fa-arrow-right"],[1,"text-center","primary-text"],[1,"list-group","list-group-box","mt-3"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[1,"fa","fa-cog","fa-spin","mt-3",2,"font-size","75px"],[1,"grey-text","small"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas",3,"ngClass"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-download"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),y(3),r(4,"translate"),d(),a(5,"button",3),r(6,"translate"),b("click",function(){return i.dismissModal()}),d()(),a(7,"div",4)(8,"div",5),g(9,"i",6),d(),a(10,"ul",7)(11,"li"),y(12),r(13,"translate"),d(),a(14,"li"),y(15),r(16,"translate"),d()(),a(17,"ul",8)(18,"li",9)(19,"div")(20,"span"),y(21),r(22,"translate"),d(),g(23,"br"),a(24,"small",10),y(25),r(26,"translate"),d()(),a(27,"button",11),r(28,"translate"),b("click",function(){return i.downloadCurrentConfig()}),g(29,"i",12),d()()(),k(30,Nt,2,0,"div",13)(31,Ft,16,18,"ul",14),d(),a(32,"div",15),g(33,"div",16),a(34,"div",17)(35,"button",18),r(36,"translate"),b("click",function(){return i.dismissModal()}),y(37),r(38,"translate"),d()(),g(39,"div",19),d()()),e&2&&(o(3),T(l(4,13,"config.restore.title")),o(2),f("disabled",i.clicked||i.deleting),C("aria-label",l(6,15,"form.button_close")),o(7),T(l(13,17,"config.restore.help_1")),o(3),T(l(16,19,"config.restore.help_2")),o(6),T(l(22,21,"form.button_download")),o(4),T(l(26,23,"config.restore.download")),o(2),f("disabled",i.clicked||i.deleting),C("aria-label",l(28,25,"backup.backup_now")),o(3),x(i.loading?30:i.backupList.length?31:-1),o(5),f("disabled",i.clicked||i.deleting),C("aria-label",l(36,27,"form.button_close")),o(2),V(" ",l(38,29,"form.button_close")," "))},dependencies:[I,lt,ft,dt,O],encapsulation:2})}return s})();function qt(s,w){if(s&1){let t=S();a(0,"button",13),r(1,"translate"),r(2,"translate"),b("click",function(){h(t);let i=p();return u(i.onCancelRestore())}),g(3,"i",14),d()}if(s&2){let t=p();f("disabled",t.saveInProgress)("openDelay",150)("ngbTooltip",l(1,4,"form.button_cancel")),C("aria-label",l(2,6,"form.button_cancel"))}}function zt(s,w){if(s&1){let t=S();a(0,"button",15),r(1,"translate"),r(2,"translate"),b("click",function(){h(t);let i=p();return u(i.onRestore())}),g(3,"i",16),d()}s&2&&(f("openDelay",150)("ngbTooltip",l(1,3,"form.button_restore")),C("aria-label",l(2,5,"form.button_restore")))}function Jt(s,w){if(s&1){let t=S();a(0,"button",15),r(1,"translate"),r(2,"translate"),b("click",function(){h(t);let i=p();return u(i.toggleSideBySide())}),g(3,"i",17),d()}if(s&2){let t=p();f("openDelay",150)("ngbTooltip",l(1,7,t.renderSideBySide?"config.restore.view_inline":"config.restore.view_side_by_side")),C("aria-label",l(2,9,t.renderSideBySide?"config.restore.view_inline":"config.restore.view_side_by_side")),o(3),st("fa-columns",!t.renderSideBySide)("fa-bars",t.renderSideBySide)}}function Lt(s,w){s&1&&g(0,"i",8)}function Wt(s,w){s&1&&g(0,"i",9)}function Kt(s,w){if(s&1){let t=S();a(0,"ngx-monaco-editor",18),b("onInit",function(i){h(t);let n=p();return u(n.onEditorInit(i))})("keydown.control.s",function(i){h(t);let n=p();return i.preventDefault(),u(n.onSave())})("keydown.meta.s",function(i){h(t);let n=p();return i.preventDefault(),u(n.onSave())}),d()}if(s&2){let t=p();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function Gt(s,w){if(s&1){let t=S();a(0,"ngx-monaco-diff-editor",19),b("onInit",function(i){h(t);let n=p();return u(n.onInitDiffEditor(i))})("keydown.control.s",function(i){h(t);let n=p();return i.preventDefault(),u(n.onSave())})("keydown.meta.s",function(i){h(t);let n=p();return i.preventDefault(),u(n.onSave())}),d()}if(s&2){let t=p();f("options",t.editorOptions)("originalModel",t.diffOriginalModel)("modifiedModel",t.diffModifiedModel)}}function Yt(s,w){if(s&1){let t=S();a(0,"textarea",20),at("ngModelChange",function(i){h(t);let n=p();return rt(n.homebridgeConfig,i)||(n.homebridgeConfig=i),u(i)}),y(1," "),d()}if(s&2){let t=p();ot("ngModel",t.homebridgeConfig)}}var Ae=(()=>{class s{$api=m(U);$md=m(Ct);$modal=m(ut);$monacoEditor=m(St);$renderer=m(tt);$route=m(yt);$router=m(N);$settings=m(wt);$toastr=m(H);$translate=m(R);editorDecorations=[];lastHeight;visualViewPortEventCallback;latestSavedConfig;childBridgesToRestart=[];hbPendingRestart=!1;homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;diffOriginalModel;diffModifiedModel;renderSideBySide=!1;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){let t=this.$translate.instant("menu.config_json_editor");this.$settings.setPageTitle(t),this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",renderSideBySide:this.renderSideBySide,renderIndicators:!0,ignoreTrimWhitespace:!1,glyphMargin:!0};let e=document.querySelector(".content");this.$renderer.setStyle(e,"height","100%"),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(n=>{this.homebridgeConfig=n.config,this.latestSavedConfig=JSON.parse(n.config),this.diffModifiedModel&&this.updateDiffModels()}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},this.diffOriginalModel={code:"",language:"json"},this.diffModifiedModel={code:this.homebridgeConfig||"{}",language:"json"},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.subscribe({next:()=>this.setMonacoEditorModel()});let{action:i}=this.$router.parseUrl(this.$router.url).queryParams;if(i){switch(i){case"restore":{this.onRestore(!0);break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}}onEditorInit(t){window.editor=t,this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(t){this.monacoEditor=t.getModifiedEditor(),this.updateDiffModels(),window.editor=t}updateDiffModels(){if(this.diffOriginalModel&&(this.diffOriginalModel.code=this.originalConfig||""),this.diffModifiedModel&&(this.diffModifiedModel.code=this.homebridgeConfig||"{}"),window.editor&&window.editor.getOriginalEditor){let t=window.editor.getOriginalEditor(),e=window.editor.getModifiedEditor();if(t&&e){let i=t.getModel(),n=e.getModel();i&&i.setValue(this.originalConfig||""),n&&n.setValue(this.homebridgeConfig||"{}")}}}onSave(){return $(this,null,function*(){if(!this.saveInProgress){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress=!0;try{if(!this.isMobile){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let e=window.monaco.editor.getModelMarkers({owner:"json"});for(let i of e)if(i.message==="Duplicate object key"){this.saveInProgress=!1,this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig=this.monacoEditor.getModel().getValue()}let t=this.parseConfigFromEditor();this.homebridgeConfig=JSON.stringify(t,null,4),typeof t.bridge!="object"?this.$toastr.error(this.$translate.instant("config.config_bridge_missing"),this.$translate.instant("toast.title_error")):/^(?:[0-9A-F]{2}:){5}[0-9A-F]{2}$/i.test(t.bridge.username)?t.accessories&&!Array.isArray(t.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):t.platforms&&!Array.isArray(t.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):t.platforms&&Array.isArray(t.platforms)&&!this.validateSection(t.platforms,"platform")||t.accessories&&Array.isArray(t.accessories)&&!this.validateSection(t.accessories,"accessory")||t.plugins&&Array.isArray(t.plugins)&&!this.validatePlugins(t.plugins,"plugins")||t.disabledPlugins&&Array.isArray(t.disabledPlugins)&&!this.validatePlugins(t.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(t),this.originalConfig=""):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}onRestore(t=!1){let e=this.$modal.open(Mt,{size:"lg",backdrop:"static"});e.componentInstance.currentConfig=this.homebridgeConfig,e.componentInstance.fromSettings=t,e.result.then(i=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig,this.updateDiffModels()),this.$api.get(`/config-editor/backups/${i}`).subscribe({next:n=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(n,null,4),this.updateDiffModels(),this.monacoEditor&&window.editor.modifiedEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[]),this.monacoEditor.executeEdits("beautifier",[{identifier:"delete",range:new monaco.Range(1,1,this.monacoEditor.getModel().getLineCount()+10,1),text:"",forceMoveMarkers:!0}]),this.monacoEditor.executeEdits("beautifier",[{identifier:"insert",range:new monaco.Range(1,1,1,1),text:this.homebridgeConfig,forceMoveMarkers:!0}]))},error:n=>{console.error(n),this.$toastr.error(n.error?.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onCancelRestore(){if(window.editor&&window.editor.dispose)try{window.editor.dispose(),window.editor=void 0}catch{}this.homebridgeConfig=this.originalConfig,this.originalConfig="",this.renderSideBySide&&this.toggleSideBySide(),this.updateDiffModels(),this.onRestore()}toggleSideBySide(){this.renderSideBySide=!this.renderSideBySide,this.editorOptions=W(L({},this.editorOptions),{renderSideBySide:this.renderSideBySide})}ngOnDestroy(){let t=document.querySelector(".content");this.$renderer.removeStyle(t,"height"),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove());try{if(window.editor&&window.editor.dispose&&(window.editor.dispose(),window.editor=void 0),window.monaco){let e=window.monaco.Uri.parse("file:///original.json"),i=window.monaco.Uri.parse("file:///modified.json"),n=window.monaco.editor.getModel(e);n&&n.dispose();let v=window.monaco.editor.getModel(i);v&&v.dispose();let M=(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas||[]).filter(A=>A.uri!=="http://homebridge/config.json");window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,allowComments:!1,schemas:M})}this.monacoEditor&&this.monacoEditor.dispose()}catch{}}validateSection(t,e){for(let i of t){if(typeof i!="object"||Array.isArray(i))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(!i[e])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(typeof i[e]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(t,e){for(let i of t)if(typeof i!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:e}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(t){this.monacoEditor&&(t=JSON.stringify(t,null,4).split(`
2
- `).map(e=>` ${e}`).join(`
3
- `),setTimeout(()=>{let e=this.monacoEditor.getModel().findMatches(t);if(e.length){let i=e[0].range,n=new monaco.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn);this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[{range:n,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}},200))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(n=>n.uri==="http://homebridge/config.json"))return;let t=monaco.Uri.parse("a://homebridge/config.json"),e=xt(this.$translate),i=kt(this.$translate);window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({allowComments:!1,validate:!0,schemas:[{uri:"http://homebridge/config.json",fileMatch:[t.toString()],schema:{type:"object",required:["bridge"],properties:{bridge:{type:"object",required:["name","username","port","pin"],properties:{name:{type:"string",title:this.$translate.instant("settings.name"),description:`The Homebridge instance name.
4
- This should be unique if you are running multiple instances of Homebridge.`,default:"Homebridge"},username:{type:"string",title:this.$translate.instant("users.label_username"),description:`Homebridge username must be 6 pairs of colon-separated hexadecimal characters (A-F 0-9).
5
- You should change this pin if you need to re-pair your instance with HomeKit.
6
- Example: 0E:89:49:64:91:86.`,default:"0E:89:49:64:91:86",pattern:"^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$"},port:{type:"number",title:this.$translate.instant("settings.network.port_hb"),description:`The port Homebridge listens on.
7
- If running more than one instance of Homebridge on the same server make sure each instance is given a unique port.`,default:51173,minimum:1025,maximum:65534},pin:{type:"string",description:`The Homebridge instance pin.
8
- This is used when pairing Homebridge to HomeKit.
9
- Example: 630-27-655.`,default:"630-27-655",pattern:"^([0-9]{3}-[0-9]{2}-[0-9]{3})$"},manufacturer:{type:"string",title:this.$translate.instant("child_bridge.config.manufacturer"),description:"The bridge manufacturer to be displayed in HomeKit."},firmwareRevision:{type:"string",title:this.$translate.instant("child_bridge.config.firmware"),description:"The bridge firmware version to be displayed in HomeKit."},model:{type:"string",title:this.$translate.instant("child_bridge.config.model"),description:"The bridge model to be displayed in HomeKit."},bind:{title:this.$translate.instant("settings.network.title_network_interfaces"),description:`A string or an array of strings with the name(s) of the network interface(s) Homebridge should bind to.
10
- Requires Homebridge v1.3 or later.`,type:["string","array"],items:{type:"string",description:this.$translate.instant("status.widget.network.network_interface")}},matter:i},default:{name:"Homebridge",username:"0E:89:49:64:91:86",port:51173,pin:"6302-7655"}},mdns:{type:"object",properties:{interface:{type:"string",title:this.$translate.instant("status.widget.network.network_interface"),description:`The interface or IP address of the interface you want Homebridge to listen on.
11
- This is useful if your server has multiple interfaces.
12
- Deprecated as of Homebridge v1.3.0 - use bridge.bind instead.`},legacyAdvertiser:{type:"boolean",title:"Legacy mDNS Advertiser",description:"Set to false to use the new mdns library, ciao."}},default:{legacyAdvertiser:!1}},ports:{type:"object",title:"Port Range",description:"The range of ports that should be used for external accessories like cameras and TVs.",required:["start","end"],properties:{start:{type:"number",default:52100,minimum:1025,maximum:65534,title:this.$translate.instant("settings.network.port_start"),description:this.$translate.instant("settings.network.port_start_desc")},end:{type:"number",default:52150,minimum:1025,maximum:65534,title:this.$translate.instant("settings.network.port_end"),description:this.$translate.instant("settings.network.port_end_desc")}},default:{start:52100,end:52150}},platforms:{type:"array",title:"Platforms",description:`Any plugin that exposes a platform should have its config entered in this array.
13
- Separate each plugin config block using a comma.`,items:{type:"object",required:["platform"],anyOf:[{type:"object",required:["platform"],title:this.$translate.instant("plugins.button_settings"),properties:{platform:{type:"string",title:"Platform Name",description:"This is used by Homebridge to identify which plugin this platform belongs to.",not:{enum:["config"]}},name:{type:"string",title:this.$translate.instant("accessories.name"),description:"The name of the platform."},_bridge:e}},{type:"object",properties:W(L({platform:{type:"string",title:"Platform Name",description:`Homebridge UI platform name must be set to "config".
14
- Do not change!`,const:"config"},name:{title:this.$translate.instant("accessories.name"),type:"string",default:"Homebridge UI",minLength:1,description:"The name of the Homebridge instance."},port:{title:this.$translate.instant("settings.network.port_ui"),type:"integer",default:8080,minimum:1025,maximum:65535,description:this.$translate.instant("settings.network.port_ui_desc")},auth:{type:"string",default:"form",title:this.$translate.instant("settings.security.auth"),description:this.$translate.instant("settings.security.auth_desc"),oneOf:[{title:"Require Authentication",enum:["form"]},{title:"None",enum:["none"]}]},theme:{title:this.$translate.instant("settings.display.theme"),description:"The theme used for the UI.",type:"string",default:"orange",oneOf:[{title:this.$translate.instant("settings.display.orange"),enum:["orange"]},{title:this.$translate.instant("settings.display.red"),enum:["red"]},{title:this.$translate.instant("settings.display.pink"),enum:["pink"]},{title:this.$translate.instant("settings.display.purple"),enum:["purple"]},{title:this.$translate.instant("settings.display.deep_purple"),enum:["deep-purple"]},{title:this.$translate.instant("settings.display.indigo"),enum:["indigo"]},{title:this.$translate.instant("settings.display.blue"),enum:["blue"]},{title:this.$translate.instant("settings.display.bluegrey"),enum:["blue-grey"]},{title:this.$translate.instant("settings.display.cyan"),enum:["cyan"]},{title:this.$translate.instant("settings.display.green"),enum:["green"]},{title:this.$translate.instant("settings.display.teal"),enum:["teal"]},{title:this.$translate.instant("settings.display.grey"),enum:["grey"]},{title:this.$translate.instant("settings.display.brown"),enum:["brown"]}]},lightingMode:{title:this.$translate.instant("settings.display.lighting_mode"),description:"The lighting mode used for the UI.",type:"string",default:"auto",oneOf:[{title:this.$translate.instant("accessories.control.auto"),enum:["auto"]},{title:this.$translate.instant("settings.display.light"),enum:["light"]},{title:this.$translate.instant("settings.display.dark"),enum:["dark"]}]},menuMode:{title:this.$translate.instant("settings.display.menu_mode"),description:"Modes for the UI side menu.",type:"string",default:"default",oneOf:[{title:this.$translate.instant("settings.display.menu_default"),enum:["default"]},{title:this.$translate.instant("settings.display.menu_freeze"),enum:["freeze"]}]},temp:{title:this.$translate.instant("settings.linux.temp"),type:"string",description:this.$translate.instant("settings.linux.temp_desc")},tempUnits:{title:this.$translate.instant("settings.display.temp_units"),description:"The units used to display the temperature.",type:"string",default:"c",oneOf:[{title:this.$translate.instant("settings.display.temp_units.c"),enum:["c"]},{title:this.$translate.instant("settings.display.temp_units.f"),enum:["f"]}]},lang:{title:this.$translate.instant("settings.display.lang"),type:"string",default:"auto",description:"The language used for the UI.",oneOf:[{title:this.$translate.instant("form.select.auto"),enum:["auto"]},{title:"Bulgarian (bg)",enum:["bg"]},{title:"Catalan (ca)",enum:["ca"]},{title:"Chinese - Simplified (zh-CN)",enum:["zh-CN"]},{title:"Chinese - Traditional (zh-TW)",enum:["zh-TW"]},{title:"Czech (cs)",enum:["cs"]},{title:"Dutch (nl)",enum:["nl"]},{title:"English (en)",enum:["en"]},{title:"Finnish (fi)",enum:["fi"]},{title:"French (fr)",enum:["fr"]},{title:"German (de)",enum:["de"]},{title:"Hebrew (he)",enum:["he"]},{title:"Hungarian (hu)",enum:["hu"]},{title:"Indonesian (id)",enum:["id"]},{title:"Italian (it)",enum:["it"]},{title:"Japanese (ja)",enum:["ja"]},{title:"Korean (ko)",enum:["ko"]},{title:"Macedonian (mk)",enum:["mk"]},{title:"Norwegian (no)",enum:["no"]},{title:"Polish (pl)",enum:["pl"]},{title:"Portuguese (Brazil)",enum:["pt-BR"]},{title:"Portuguese (Portugal)",enum:["pt"]},{title:"Russian (ru)",enum:["ru"]},{title:"Slovenian (sl)",enum:["sl"]},{title:"Spanish (es)",enum:["es"]},{title:"Swedish (sv)",enum:["sv"]},{title:"Thai (th)",enum:["th"]},{title:"Turkish (tr)",enum:["tr"]},{title:"Ukrainian (uk)",enum:["uk"]}]},wallpaper:{title:this.$translate.instant("settings.display.wallpaper"),description:"The full path to the .jpg file.",type:"string"},homebridgePackagePath:{title:this.$translate.instant("settings.network.hb_package"),type:"string",description:this.$translate.instant("settings.network.hb_package_desc")},host:{type:"string",pattern:"^[^{}/ :\\\\]+(?::\\d+)?$",title:this.$translate.instant("settings.network.host"),description:this.$translate.instant("settings.network.host_desc")},sessionTimeoutInactivityBased:{type:"boolean",title:this.$translate.instant("settings.startup.session_inactivity_based"),description:this.$translate.instant("settings.startup.session_inactivity_based_desc")},sessionTimeout:{type:"integer",minimum:600,maximum:864e5,title:this.$translate.instant("settings.startup.session"),description:this.$translate.instant("settings.startup.session_desc")},log:{type:"object",title:"Log Settings",description:"The log settings for the Homebridge UI.",properties:{maxSize:{type:"integer",title:this.$translate.instant("settings.terminal.log_max"),description:this.$translate.instant("settings.terminal.log_max_desc"),minimum:-1},truncateSize:{type:"integer",title:this.$translate.instant("settings.terminal.log_truncate"),description:this.$translate.instant("settings.terminal.log_truncate_desc"),minimum:0}}},ssl:{type:"object",title:this.$translate.instant("settings.security.https"),description:this.$translate.instant("settings.security.https_desc"),properties:{key:{type:"string",title:this.$translate.instant("settings.security.key"),description:"The full path to the private key file."},cert:{type:"string",title:this.$translate.instant("settings.security.cert"),description:"The full path to the certificate file."},pfx:{title:this.$translate.instant("settings.security.pfx"),type:"string",description:"The full path to the PKCS#12 certificate file."},passphrase:{title:this.$translate.instant("settings.security.pass"),type:"string",description:"The passphrase for the PKCS#12 certificate file."}}},accessoryControl:{title:"Accessory Control Setup",type:"object",description:"The accessory control settings for the Homebridge UI.",properties:{debug:{title:this.$translate.instant("settings.accessory.debug"),type:"boolean",description:this.$translate.instant("settings.accessory.debug_desc")},instanceBlacklist:{title:this.$translate.instant("settings.security.ui_control"),type:"array",description:this.$translate.instant("settings.security.ui_control_desc"),items:{title:this.$translate.instant("users.label_username"),type:"string",pattern:"^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$"}}}},linux:{title:"Linux Server Commands",type:"object",description:"The Linux server commands for the Homebridge UI.",properties:{shutdown:{title:this.$translate.instant("settings.linux.shutdown"),type:"string",description:this.$translate.instant("settings.linux.shutdown_desc")},restart:{title:this.$translate.instant("settings.linux.restart"),type:"string",description:this.$translate.instant("settings.linux.restart_desc")}}}},this.$settings.originalWebroot!==globalThis.webroot.errorCode?{webroot:{title:this.$translate.instant("settings.network.webroot"),type:"string",description:this.$translate.instant("settings.network.webroot_desc")}}:{}),{proxyHost:{title:this.$translate.instant("settings.network.proxy"),type:"string",pattern:"^[^{}/ :\\\\]+(?::\\d+)?$",description:this.$translate.instant("settings.network.proxy_desc")},scheduledBackupPath:{title:this.$translate.instant("backup.settings_path"),description:"The full path to where the service should save daily scheduled backups archives.",type:"string"},scheduledBackupDisable:{title:"Disable Scheduled Backups",type:"boolean",description:"When enabled, the Homebridge UI will not create daily scheduled backups."},disableServerMetricsMonitoring:{title:"Disable Server Metrics Monitoring",type:"boolean",description:"When enabled, the Homebridge UI will not collect or report CPU or memory stats."},enableMdnsAdvertise:{title:this.$translate.instant("settings.network.mdns_advertise"),type:"boolean",description:this.$translate.instant("settings.network.mdns_advertise_help")},plugins:{title:this.$translate.instant("menu.label_plugins"),type:"object",description:"Settings surrounding plugins used by the Homebridge UI.",properties:{hideUpdatesFor:{type:"array",title:"Hide Plugin Updates For",description:"A list of plugin names for which frontend update notifications will be hidden.",items:{type:"string",title:this.$translate.instant("accessories.plugin"),pattern:"^(?:@[\\w-]+(?:\\.[\\w-]+)*/)?homebridge-[\\w-]+$"}},alwaysShowBetas:{type:"boolean",title:this.$translate.instant("settings.display.show_betas"),description:"When enabled, beta releases will be shown as available for Homebridge, the UI and plugins."}}},terminal:{type:"object",title:"Terminal Settings",description:"The terminal settings for the Homebridge UI.",properties:{persistence:{title:this.$translate.instant("settings.terminal.persistence"),type:"boolean",description:this.$translate.instant("settings.terminal.persistence_help"),default:!1},hideWarning:{title:this.$translate.instant("settings.terminal.warning"),type:"boolean",description:this.$translate.instant("settings.terminal.warning_help"),default:!1},bufferSize:{title:this.$translate.instant("settings.terminal.buffer_size"),type:"integer",description:this.$translate.instant("settings.terminal.buffer_size_help"),default:5e4,minimum:0}}}})}]}},accessories:{type:"array",title:this.$translate.instant("menu.label_accessories"),description:`Any plugin that exposes an accessory should have its config entered in this array.
15
- Separate each plugin config block using a comma.`,items:{type:"object",required:["accessory","name"],title:this.$translate.instant("plugins.button_settings"),properties:{accessory:{type:"string",title:this.$translate.instant("child_bridge.config.accessory"),description:"This is used by Homebridge to identify which plugin this accessory belongs to."},name:{type:"string",title:this.$translate.instant("accessories.name"),description:"The name of the accessory."},_bridge:e}}},plugins:{type:"array",title:this.$translate.instant("menu.label_plugins"),description:`An array of plugins that should be selectively enabled.
16
- Remove this array to enable all plugins.`,items:{type:"string",title:this.$translate.instant("accessories.plugin"),description:`The full plugin npm package name.
17
- Example: homebridge-dummy.`},default:["homebridge-config-ui-x"]},disabledPlugins:{type:"array",description:`An array of plugins that should be disabled.
18
- Requires Homebridge v1.3 or later.`,items:{type:"string",title:this.$translate.instant("accessories.plugin"),description:`The full plugin npm package name.
19
- Example: homebridge-dummy.`},default:[]}}}}]}),this.monacoEditorModel.uri=monaco.Uri.parse("a://homebridge/config.json")}visualViewPortChanged(){this.lastHeight<window.visualViewport.height&&document.activeElement.blur(),window.visualViewport.height<window.innerHeight?(this.$md.enableTouchMove(),this.lastHeight=window.visualViewport.height):window.visualViewport.height===window.innerHeight&&(this.$md.disableTouchMove(),this.lastHeight=window.visualViewport.height)}saveConfig(t){return $(this,null,function*(){try{let e=yield E(this.$api.post("/config-editor",t));this.homebridgeConfig=JSON.stringify(e,null,4),yield this.detectSavesChangesForRestart()}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error"))}})}validateArraysEqual(t,e){if(t.length!==e.length)return!1;let i=[...t].sort(),n=[...e].sort();return i.every((v,_)=>v===n[_])}removePlatformsAndAccessories(t){let v=t,{accessories:e,platforms:i}=v;return X(v,["accessories","platforms"])}removeEmptyBridges(t){return t.filter(e=>e._bridge&&Object.keys(e._bridge).length>0).map(e=>e._bridge)}validateBridgesEqual(t,e){return t.length!==e.length?!1:t.every(i=>e.some(n=>B(i,n)))}detectConfigPlatformChanges(){try{let t=this.latestSavedConfig,e=JSON.parse(this.homebridgeConfig),i=(t.platforms||[]).find(M=>M.platform==="config"),n=(e.platforms||[]).find(M=>M.platform==="config"),v=i?.webroot||"",_=n?.webroot||"";return v!==_&&(_=_?`/${_}`.replace(/\/+/g,"/").replace(/\/$/,""):"",_==="/"&&(_=""),this.$settings.setItem("webroot",_),n&&(_&&this.$settings.originalWebroot!==globalThis.webroot.errorCode?n.webroot=_:delete n.webroot,this.homebridgeConfig=JSON.stringify(e,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig))),!i&&n||i&&!n?!0:!i&&!n?!1:!B(i,n)}catch(t){return console.error("Error detecting config platform changes:",t),!1}}detectSavesChangesForRestart(){return $(this,null,function*(){let t=yield this.determineRestartType();if(t==="full"){let e=this.detectConfigPlatformChanges();yield this.performFullRestart(e)}else t==="child"&&(yield this.performChildBridgeRestart());this.latestSavedConfig=JSON.parse(this.homebridgeConfig)})}determineRestartType(){return $(this,null,function*(){if(this.hbPendingRestart)return"full";let t=this.latestSavedConfig,e=JSON.stringify(t,null,4),i=JSON.parse(this.homebridgeConfig),n=this.homebridgeConfig;if(e===n&&!this.childBridgesToRestart.length)return this.$toastr.info(this.$translate.instant("config.no_restart"),this.$translate.instant("config.config_saved")),"none";if(!this.validateArraysEqual(Object.keys(t),Object.keys(i))||[...i.platforms||[],...i.accessories||[]].every(c=>!c._bridge||!Object.keys(c._bridge).length))return"full";let _=this.removePlatformsAndAccessories(t),M=this.removePlatformsAndAccessories(i);if(!B(_,M))return"full";let A=t.platforms||[],F=i.platforms||[],At=A.map(c=>c.platform),Pt=F.map(c=>c.platform);if(!this.validateArraysEqual(At,Pt))return"full";let q=t.accessories||[],z=i.accessories||[],Vt=q.map(c=>c.accessory),Dt=z.map(c=>c.accessory);if(!this.validateArraysEqual(Vt,Dt)||!this.validateBridgesEqual(this.removeEmptyBridges(A),this.removeEmptyBridges(F))||!this.validateBridgesEqual(this.removeEmptyBridges(q),this.removeEmptyBridges(z)))return"full";let Y=A.filter(c=>!B(c,F.find(P=>P.platform===c.platform))),jt=q.filter(c=>!B(c,z.find(P=>P.accessory===c.accessory))),Q=[...Y,...jt];if(Y.some(c=>c.platform==="config")||Q.some(c=>c.platform==="config"?!1:!c._bridge||Object.keys(c._bridge).length===0))return"full";try{let c=yield E(this.$api.get("/status/homebridge/child-bridges"));return Q.forEach(P=>{let It=P._bridge.username.toUpperCase(),D=c.find(({username:J})=>J===It);if(D)this.childBridgesToRestart.some(J=>J.username===D.username)||this.childBridgesToRestart.push({name:D.name,username:D.username});else return"full"}),"child"}catch(c){return console.error("Error fetching child bridges:",c),"full"}})}performChildBridgeRestart(){return $(this,null,function*(){let t=this.$modal.open(vt,{size:"lg",backdrop:"static"});t.componentInstance.bridges=this.childBridgesToRestart;try{yield t.result,this.childBridgesToRestart=[]}catch{}})}performFullRestart(t){return $(this,null,function*(){t&&(yield E(this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{})));let e=this.$modal.open($t,{size:"lg",backdrop:"static"});try{yield e.result,this.hbPendingRestart=!1,this.childBridgesToRestart=[]}catch{this.hbPendingRestart=!0}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch{let e=Bt.default.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(e,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),e}}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=j({type:s,selectors:[["ng-component"]],decls:18,vars:19,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-danger","waves-effect","my-0","me-2",3,"disabled","openDelay","ngbTooltip"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2",3,"openDelay","ngbTooltip"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-0",3,"click","disabled","openDelay","ngbTooltip"],[1,"fas","fa-floppy-disk"],[1,"fas","fa-spinner","fa-pulse"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"options","model"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"options","originalModel","modifiedModel"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-3",3,"ngModel"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-danger","waves-effect","my-0","me-2",3,"click","disabled","openDelay","ngbTooltip"],[1,"fas","fa-times"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-history"],[1,"fas"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"onInit","keydown.control.s","keydown.meta.s","options","originalModel","modifiedModel"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-3",3,"ngModelChange","ngModel"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),y(4),r(5,"translate"),d()(),a(6,"div",4),k(7,qt,4,8,"button",5),k(8,zt,4,7,"button",6),k(9,Jt,4,11,"button",6),a(10,"button",7),r(11,"translate"),r(12,"translate"),b("click",function(){return i.onSave()}),k(13,Lt,1,0,"i",8),k(14,Wt,1,0,"i",9),d()()(),k(15,Kt,1,2,"ngx-monaco-editor",10),k(16,Gt,1,3,"ngx-monaco-diff-editor",11),k(17,Yt,2,1,"textarea",12),d()),e&2&&(o(4),T(l(5,13,"menu.config_json_editor")),o(3),x(i.originalConfig?7:-1),o(),x(i.originalConfig?-1:8),o(),x(!i.isMobile&&i.originalConfig?9:-1),o(),f("disabled",i.saveInProgress)("openDelay",150)("ngbTooltip",l(11,15,"form.button_save")),C("aria-label",l(12,17,"form.button_save")),o(3),x(i.saveInProgress?-1:13),o(),x(i.saveInProgress?14:-1),o(),x(!i.isMobile&&!i.originalConfig?15:-1),o(),x(!i.isMobile&&i.originalConfig?16:-1),o(),x(i.isMobile?17:-1))},dependencies:[I,bt,_t,mt,ct,pt,gt,O],encapsulation:2})}return s})();export{Ae as ConfigEditorComponent};
@@ -1,17 +0,0 @@
1
- import{m as Bt}from"./chunk-ZINKZV7F.js";import{e as hr}from"./chunk-33PMRDBB.js";import{k as gr,l as ht,n as Br,q as br}from"./chunk-5EZCX7HV.js";import{Hb as be,La as U,Vb as re,Wa as gt,Wb as Le,Xb as Re,e as ca,h as Ar,ja as he,kb as Ve,mc as Q,nc as k,ob as Fr,pb as Er,qb as xr,vb as G,w as Cr,wb as Z,xb as Me}from"./chunk-JIUPKHC6.js";var tD=ca((ir,fr)=>{(function(e,t){typeof ir=="object"&&typeof fr<"u"?fr.exports=t():typeof define=="function"&&define.amd?define(t):e.JSON5=t()})(ir,function(){"use strict";function e(u,a){return a={exports:{}},u(a,a.exports),a.exports}var t=e(function(u){var a=u.exports=typeof window<"u"&&window.Math==Math?window:typeof self<"u"&&self.Math==Math?self:Function("return this")();typeof __g=="number"&&(__g=a)}),r=e(function(u){var a=u.exports={version:"2.6.5"};typeof __e=="number"&&(__e=a)}),o=r.version,f=function(u){return typeof u=="object"?u!==null:typeof u=="function"},i=function(u){if(!f(u))throw TypeError(u+" is not an object!");return u},D=function(u){try{return!!u()}catch{return!0}},l=!D(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7}),m=t.document,g=f(m)&&f(m.createElement),B=function(u){return g?m.createElement(u):{}},h=!l&&!D(function(){return Object.defineProperty(B("div"),"a",{get:function(){return 7}}).a!=7}),y=function(u,a){if(!f(u))return u;var p,s;if(a&&typeof(p=u.toString)=="function"&&!f(s=p.call(u))||typeof(p=u.valueOf)=="function"&&!f(s=p.call(u))||!a&&typeof(p=u.toString)=="function"&&!f(s=p.call(u)))return s;throw TypeError("Can't convert object to primitive value")},L=Object.defineProperty,I=l?Object.defineProperty:function(a,p,s){if(i(a),p=y(p,!0),i(s),h)try{return L(a,p,s)}catch{}if("get"in s||"set"in s)throw TypeError("Accessors not supported!");return"value"in s&&(a[p]=s.value),a},$={f:I},j=function(u,a){return{enumerable:!(u&1),configurable:!(u&2),writable:!(u&4),value:a}},T=l?function(u,a,p){return $.f(u,a,j(1,p))}:function(u,a,p){return u[a]=p,u},pe={}.hasOwnProperty,nt=function(u,a){return pe.call(u,a)},He=0,Ue=Math.random(),Go=function(u){return"Symbol(".concat(u===void 0?"":u,")_",(++He+Ue).toString(36))},Ho=!1,Uo=e(function(u){var a="__core-js_shared__",p=t[a]||(t[a]={});(u.exports=function(s,d){return p[s]||(p[s]=d!==void 0?d:{})})("versions",[]).push({version:r.version,mode:Ho?"pure":"global",copyright:"\xA9 2019 Denis Pushkarev (zloirock.ru)"})}),Yt=Uo("native-function-to-string",Function.toString),$o=e(function(u){var a=Go("src"),p="toString",s=(""+Yt).split(p);r.inspectSource=function(d){return Yt.call(d)},(u.exports=function(d,F,x,J){var N=typeof x=="function";N&&(nt(x,"name")||T(x,"name",F)),d[F]!==x&&(N&&(nt(x,a)||T(x,a,d[F]?""+d[F]:s.join(String(F)))),d===t?d[F]=x:J?d[F]?d[F]=x:T(d,F,x):(delete d[F],T(d,F,x)))})(Function.prototype,p,function(){return typeof this=="function"&&this[a]||Yt.call(this)})}),qo=function(u){if(typeof u!="function")throw TypeError(u+" is not a function!");return u},sr=function(u,a,p){if(qo(u),a===void 0)return u;switch(p){case 1:return function(s){return u.call(a,s)};case 2:return function(s,d){return u.call(a,s,d)};case 3:return function(s,d,F){return u.call(a,s,d,F)}}return function(){return u.apply(a,arguments)}},Xt="prototype",K=function(u,a,p){var s=u&K.F,d=u&K.G,F=u&K.S,x=u&K.P,J=u&K.B,N=d?t:F?t[a]||(t[a]={}):(t[a]||{})[Xt],Ie=d?r:r[a]||(r[a]={}),$e=Ie[Xt]||(Ie[Xt]={}),ae,ie,Y,qe;d&&(p=a);for(ae in p)ie=!s&&N&&N[ae]!==void 0,Y=(ie?N:p)[ae],qe=J&&ie?sr(Y,t):x&&typeof Y=="function"?sr(Function.call,Y):Y,N&&$o(N,ae,Y,u&K.U),Ie[ae]!=Y&&T(Ie,ae,qe),x&&$e[ae]!=Y&&($e[ae]=Y)};t.core=r,K.F=1,K.G=2,K.S=4,K.P=8,K.B=16,K.W=32,K.U=64,K.R=128;var it=K,Vo=Math.ceil,Wo=Math.floor,Dr=function(u){return isNaN(u=+u)?0:(u>0?Wo:Vo)(u)},Ko=function(u){if(u==null)throw TypeError("Can't call method on "+u);return u},zo=function(u){return function(a,p){var s=String(Ko(a)),d=Dr(p),F=s.length,x,J;return d<0||d>=F?u?"":void 0:(x=s.charCodeAt(d),x<55296||x>56319||d+1===F||(J=s.charCodeAt(d+1))<56320||J>57343?u?s.charAt(d):x:u?s.slice(d,d+2):(x-55296<<10)+(J-56320)+65536)}},Jo=zo(!1);it(it.P,"String",{codePointAt:function(a){return Jo(this,a)}});var rD=r.String.codePointAt,Yo=Math.max,Xo=Math.min,Zo=function(u,a){return u=Dr(u),u<0?Yo(u+a,0):Xo(u,a)},pr=String.fromCharCode,lr=String.fromCodePoint;it(it.S+it.F*(!!lr&&lr.length!=1),"String",{fromCodePoint:function(a){for(var p=arguments,s=[],d=arguments.length,F=0,x;d>F;){if(x=+p[F++],Zo(x,1114111)!==x)throw RangeError(x+" is not a valid code point");s.push(x<65536?pr(x):pr(((x-=65536)>>10)+55296,x%1024+56320))}return s.join("")}});var uD=r.String.fromCodePoint,Qo=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ko=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ea=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Zt={Space_Separator:Qo,ID_Start:ko,ID_Continue:ea},O={isSpaceSeparator:function(a){return typeof a=="string"&&Zt.Space_Separator.test(a)},isIdStartChar:function(a){return typeof a=="string"&&(a>="a"&&a<="z"||a>="A"&&a<="Z"||a==="$"||a==="_"||Zt.ID_Start.test(a))},isIdContinueChar:function(a){return typeof a=="string"&&(a>="a"&&a<="z"||a>="A"&&a<="Z"||a>="0"&&a<="9"||a==="$"||a==="_"||a==="\u200C"||a==="\u200D"||Zt.ID_Continue.test(a))},isDigit:function(a){return typeof a=="string"&&/[0-9]/.test(a)},isHexDigit:function(a){return typeof a=="string"&&/[0-9A-Fa-f]/.test(a)}},Qt,z,le,At,ge,oe,R,kt,ft,ta=function(a,p){Qt=String(a),z="start",le=[],At=0,ge=1,oe=0,R=void 0,kt=void 0,ft=void 0;do R=ra(),aa[z]();while(R.type!=="eof");return typeof p=="function"?er({"":ft},"",p):ft};function er(u,a,p){var s=u[a];if(s!=null&&typeof s=="object")if(Array.isArray(s))for(var d=0;d<s.length;d++){var F=String(d),x=er(s,F,p);x===void 0?delete s[F]:Object.defineProperty(s,F,{value:x,writable:!0,enumerable:!0,configurable:!0})}else for(var J in s){var N=er(s,J,p);N===void 0?delete s[J]:Object.defineProperty(s,J,{value:N,writable:!0,enumerable:!0,configurable:!0})}return p.call(u,a,s)}var C,c,st,me,E;function ra(){for(C="default",c="",st=!1,me=1;;){E=de();var u=mr[C]();if(u)return u}}function de(){if(Qt[At])return String.fromCodePoint(Qt.codePointAt(At))}function n(){var u=de();return u===`
2
- `?(ge++,oe=0):u?oe+=u.length:oe++,u&&(At+=u.length),u}var mr={default:function(){switch(E){case" ":case"\v":case"\f":case" ":case"\xA0":case"\uFEFF":case`
3
- `:case"\r":case"\u2028":case"\u2029":n();return;case"/":n(),C="comment";return;case void 0:return n(),_("eof")}if(O.isSpaceSeparator(E)){n();return}return mr[z]()},comment:function(){switch(E){case"*":n(),C="multiLineComment";return;case"/":n(),C="singleLineComment";return}throw S(n())},multiLineComment:function(){switch(E){case"*":n(),C="multiLineCommentAsterisk";return;case void 0:throw S(n())}n()},multiLineCommentAsterisk:function(){switch(E){case"*":n();return;case"/":n(),C="default";return;case void 0:throw S(n())}n(),C="multiLineComment"},singleLineComment:function(){switch(E){case`
4
- `:case"\r":case"\u2028":case"\u2029":n(),C="default";return;case void 0:return n(),_("eof")}n()},value:function(){switch(E){case"{":case"[":return _("punctuator",n());case"n":return n(),Oe("ull"),_("null",null);case"t":return n(),Oe("rue"),_("boolean",!0);case"f":return n(),Oe("alse"),_("boolean",!1);case"-":case"+":n()==="-"&&(me=-1),C="sign";return;case".":c=n(),C="decimalPointLeading";return;case"0":c=n(),C="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":c=n(),C="decimalInteger";return;case"I":return n(),Oe("nfinity"),_("numeric",1/0);case"N":return n(),Oe("aN"),_("numeric",NaN);case'"':case"'":st=n()==='"',c="",C="string";return}throw S(n())},identifierNameStartEscape:function(){if(E!=="u")throw S(n());n();var a=tr();switch(a){case"$":case"_":break;default:if(!O.isIdStartChar(a))throw dr();break}c+=a,C="identifierName"},identifierName:function(){switch(E){case"$":case"_":case"\u200C":case"\u200D":c+=n();return;case"\\":n(),C="identifierNameEscape";return}if(O.isIdContinueChar(E)){c+=n();return}return _("identifier",c)},identifierNameEscape:function(){if(E!=="u")throw S(n());n();var a=tr();switch(a){case"$":case"_":case"\u200C":case"\u200D":break;default:if(!O.isIdContinueChar(a))throw dr();break}c+=a,C="identifierName"},sign:function(){switch(E){case".":c=n(),C="decimalPointLeading";return;case"0":c=n(),C="zero";return;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":c=n(),C="decimalInteger";return;case"I":return n(),Oe("nfinity"),_("numeric",me*(1/0));case"N":return n(),Oe("aN"),_("numeric",NaN)}throw S(n())},zero:function(){switch(E){case".":c+=n(),C="decimalPoint";return;case"e":case"E":c+=n(),C="decimalExponent";return;case"x":case"X":c+=n(),C="hexadecimal";return}return _("numeric",me*0)},decimalInteger:function(){switch(E){case".":c+=n(),C="decimalPoint";return;case"e":case"E":c+=n(),C="decimalExponent";return}if(O.isDigit(E)){c+=n();return}return _("numeric",me*Number(c))},decimalPointLeading:function(){if(O.isDigit(E)){c+=n(),C="decimalFraction";return}throw S(n())},decimalPoint:function(){switch(E){case"e":case"E":c+=n(),C="decimalExponent";return}if(O.isDigit(E)){c+=n(),C="decimalFraction";return}return _("numeric",me*Number(c))},decimalFraction:function(){switch(E){case"e":case"E":c+=n(),C="decimalExponent";return}if(O.isDigit(E)){c+=n();return}return _("numeric",me*Number(c))},decimalExponent:function(){switch(E){case"+":case"-":c+=n(),C="decimalExponentSign";return}if(O.isDigit(E)){c+=n(),C="decimalExponentInteger";return}throw S(n())},decimalExponentSign:function(){if(O.isDigit(E)){c+=n(),C="decimalExponentInteger";return}throw S(n())},decimalExponentInteger:function(){if(O.isDigit(E)){c+=n();return}return _("numeric",me*Number(c))},hexadecimal:function(){if(O.isHexDigit(E)){c+=n(),C="hexadecimalInteger";return}throw S(n())},hexadecimalInteger:function(){if(O.isHexDigit(E)){c+=n();return}return _("numeric",me*Number(c))},string:function(){switch(E){case"\\":n(),c+=ua();return;case'"':if(st)return n(),_("string",c);c+=n();return;case"'":if(!st)return n(),_("string",c);c+=n();return;case`
5
- `:case"\r":throw S(n());case"\u2028":case"\u2029":na(E);break;case void 0:throw S(n())}c+=n()},start:function(){switch(E){case"{":case"[":return _("punctuator",n())}C="value"},beforePropertyName:function(){switch(E){case"$":case"_":c=n(),C="identifierName";return;case"\\":n(),C="identifierNameStartEscape";return;case"}":return _("punctuator",n());case'"':case"'":st=n()==='"',C="string";return}if(O.isIdStartChar(E)){c+=n(),C="identifierName";return}throw S(n())},afterPropertyName:function(){if(E===":")return _("punctuator",n());throw S(n())},beforePropertyValue:function(){C="value"},afterPropertyValue:function(){switch(E){case",":case"}":return _("punctuator",n())}throw S(n())},beforeArrayValue:function(){if(E==="]")return _("punctuator",n());C="value"},afterArrayValue:function(){switch(E){case",":case"]":return _("punctuator",n())}throw S(n())},end:function(){throw S(n())}};function _(u,a){return{type:u,value:a,line:ge,column:oe}}function Oe(u){for(var a=0,p=u;a<p.length;a+=1){var s=p[a],d=de();if(d!==s)throw S(n());n()}}function ua(){var u=de();switch(u){case"b":return n(),"\b";case"f":return n(),"\f";case"n":return n(),`
6
- `;case"r":return n(),"\r";case"t":return n()," ";case"v":return n(),"\v";case"0":if(n(),O.isDigit(de()))throw S(n());return"\0";case"x":return n(),oa();case"u":return n(),tr();case`
7
- `:case"\u2028":case"\u2029":return n(),"";case"\r":return n(),de()===`
8
- `&&n(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":throw S(n());case void 0:throw S(n())}return n()}function oa(){var u="",a=de();if(!O.isHexDigit(a)||(u+=n(),a=de(),!O.isHexDigit(a)))throw S(n());return u+=n(),String.fromCodePoint(parseInt(u,16))}function tr(){for(var u="",a=4;a-- >0;){var p=de();if(!O.isHexDigit(p))throw S(n());u+=n()}return String.fromCodePoint(parseInt(u,16))}var aa={start:function(){if(R.type==="eof")throw Pe();rr()},beforePropertyName:function(){switch(R.type){case"identifier":case"string":kt=R.value,z="afterPropertyName";return;case"punctuator":Ct();return;case"eof":throw Pe()}},afterPropertyName:function(){if(R.type==="eof")throw Pe();z="beforePropertyValue"},beforePropertyValue:function(){if(R.type==="eof")throw Pe();rr()},beforeArrayValue:function(){if(R.type==="eof")throw Pe();if(R.type==="punctuator"&&R.value==="]"){Ct();return}rr()},afterPropertyValue:function(){if(R.type==="eof")throw Pe();switch(R.value){case",":z="beforePropertyName";return;case"}":Ct()}},afterArrayValue:function(){if(R.type==="eof")throw Pe();switch(R.value){case",":z="beforeArrayValue";return;case"]":Ct()}},end:function(){}};function rr(){var u;switch(R.type){case"punctuator":switch(R.value){case"{":u={};break;case"[":u=[];break}break;case"null":case"boolean":case"numeric":case"string":u=R.value;break}if(ft===void 0)ft=u;else{var a=le[le.length-1];Array.isArray(a)?a.push(u):Object.defineProperty(a,kt,{value:u,writable:!0,enumerable:!0,configurable:!0})}if(u!==null&&typeof u=="object")le.push(u),Array.isArray(u)?z="beforeArrayValue":z="beforePropertyName";else{var p=le[le.length-1];p==null?z="end":Array.isArray(p)?z="afterArrayValue":z="afterPropertyValue"}}function Ct(){le.pop();var u=le[le.length-1];u==null?z="end":Array.isArray(u)?z="afterArrayValue":z="afterPropertyValue"}function S(u){return Ft(u===void 0?"JSON5: invalid end of input at "+ge+":"+oe:"JSON5: invalid character '"+cr(u)+"' at "+ge+":"+oe)}function Pe(){return Ft("JSON5: invalid end of input at "+ge+":"+oe)}function dr(){return oe-=5,Ft("JSON5: invalid identifier character at "+ge+":"+oe)}function na(u){console.warn("JSON5: '"+cr(u)+"' in strings is not valid ECMAScript; consider escaping")}function cr(u){var a={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(a[u])return a[u];if(u<" "){var p=u.charCodeAt(0).toString(16);return"\\x"+("00"+p).substring(p.length)}return u}function Ft(u){var a=new SyntaxError(u);return a.lineNumber=ge,a.columnNumber=oe,a}var ia=function(a,p,s){var d=[],F="",x,J,N="",Ie;if(p!=null&&typeof p=="object"&&!Array.isArray(p)&&(s=p.space,Ie=p.quote,p=p.replacer),typeof p=="function")J=p;else if(Array.isArray(p)){x=[];for(var $e=0,ae=p;$e<ae.length;$e+=1){var ie=ae[$e],Y=void 0;typeof ie=="string"?Y=ie:(typeof ie=="number"||ie instanceof String||ie instanceof Number)&&(Y=String(ie)),Y!==void 0&&x.indexOf(Y)<0&&x.push(Y)}}return s instanceof Number?s=Number(s):s instanceof String&&(s=String(s)),typeof s=="number"?s>0&&(s=Math.min(10,Math.floor(s)),N=" ".substr(0,s)):typeof s=="string"&&(N=s.substr(0,10)),qe("",{"":a});function qe(b,q){var A=q[b];switch(A!=null&&(typeof A.toJSON5=="function"?A=A.toJSON5(b):typeof A.toJSON=="function"&&(A=A.toJSON(b))),J&&(A=J.call(q,b,A)),A instanceof Number?A=Number(A):A instanceof String?A=String(A):A instanceof Boolean&&(A=A.valueOf()),A){case null:return"null";case!0:return"true";case!1:return"false"}if(typeof A=="string")return Et(A,!1);if(typeof A=="number")return String(A);if(typeof A=="object")return Array.isArray(A)?ma(A):pa(A)}function Et(b){for(var q={"'":.1,'"':.2},A={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"},H="",ne=0;ne<b.length;ne++){var V=b[ne];switch(V){case"'":case'"':q[V]++,H+=V;continue;case"\0":if(O.isDigit(b[ne+1])){H+="\\x00";continue}}if(A[V]){H+=A[V];continue}if(V<" "){var je=V.charCodeAt(0).toString(16);H+="\\x"+("00"+je).substring(je.length);continue}H+=V}var ce=Ie||Object.keys(q).reduce(function(Be,Ne){return q[Be]<q[Ne]?Be:Ne});return H=H.replace(new RegExp(ce,"g"),A[ce]),ce+H+ce}function pa(b){if(d.indexOf(b)>=0)throw TypeError("Converting circular structure to JSON5");d.push(b);var q=F;F=F+N;for(var A=x||Object.keys(b),H=[],ne=0,V=A;ne<V.length;ne+=1){var je=V[ne],ce=qe(je,b);if(ce!==void 0){var Be=la(je)+":";N!==""&&(Be+=" "),Be+=ce,H.push(Be)}}var Ne;if(H.length===0)Ne="{}";else{var xt;if(N==="")xt=H.join(","),Ne="{"+xt+"}";else{var da=`,
9
- `+F;xt=H.join(da),Ne=`{
10
- `+F+xt+`,
11
- `+q+"}"}}return d.pop(),F=q,Ne}function la(b){if(b.length===0)return Et(b,!0);var q=String.fromCodePoint(b.codePointAt(0));if(!O.isIdStartChar(q))return Et(b,!0);for(var A=q.length;A<b.length;A++)if(!O.isIdContinueChar(String.fromCodePoint(b.codePointAt(A))))return Et(b,!0);return b}function ma(b){if(d.indexOf(b)>=0)throw TypeError("Converting circular structure to JSON5");d.push(b);var q=F;F=F+N;for(var A=[],H=0;H<b.length;H++){var ne=qe(String(H),b);A.push(ne!==void 0?ne:"null")}var V;if(A.length===0)V="[]";else if(N===""){var je=A.join(",");V="["+je+"]"}else{var ce=`,
12
- `+F,Be=A.join(ce);V=`[
13
- `+F+Be+`,
14
- `+q+"]"}return d.pop(),F=q,V}},fa={parse:ta,stringify:ia},sa=fa,Da=sa;return Da})});function Aa(){this.__data__=[],this.size=0}var yr=Aa;function Ca(e,t){return e===t||e!==e&&t!==t}var fe=Ca;function Fa(e,t){for(var r=e.length;r--;)if(fe(e[r][0],t))return r;return-1}var ye=Fa;var Ea=Array.prototype,xa=Ea.splice;function ga(e){var t=this.__data__,r=ye(t,e);if(r<0)return!1;var o=t.length-1;return r==o?t.pop():xa.call(t,r,1),--this.size,!0}var vr=ga;function Ba(e){var t=this.__data__,r=ye(t,e);return r<0?void 0:t[r][1]}var _r=Ba;function ha(e){return ye(this.__data__,e)>-1}var Sr=ha;function ba(e,t){var r=this.__data__,o=ye(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}var wr=ba;function We(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}We.prototype.clear=yr;We.prototype.delete=vr;We.prototype.get=_r;We.prototype.has=Sr;We.prototype.set=wr;var ve=We;function ya(){this.__data__=new ve,this.size=0}var Tr=ya;function va(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}var Or=va;function _a(e){return this.__data__.get(e)}var Pr=_a;function Sa(e){return this.__data__.has(e)}var Ir=Sa;var wa=typeof global=="object"&&global&&global.Object===Object&&global,bt=wa;var Ta=typeof self=="object"&&self&&self.Object===Object&&self,Oa=bt||Ta||Function("return this")(),P=Oa;var Pa=P.Symbol,X=Pa;var jr=Object.prototype,Ia=jr.hasOwnProperty,ja=jr.toString,Dt=X?X.toStringTag:void 0;function Na(e){var t=Ia.call(e,Dt),r=e[Dt];try{e[Dt]=void 0;var o=!0}catch{}var f=ja.call(e);return o&&(t?e[Dt]=r:delete e[Dt]),f}var Nr=Na;var Ma=Object.prototype,La=Ma.toString;function Ra(e){return La.call(e)}var Mr=Ra;var Ga="[object Null]",Ha="[object Undefined]",Lr=X?X.toStringTag:void 0;function Ua(e){return e==null?e===void 0?Ha:Ga:Lr&&Lr in Object(e)?Nr(e):Mr(e)}var ue=Ua;function $a(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var W=$a;var qa="[object AsyncFunction]",Va="[object Function]",Wa="[object GeneratorFunction]",Ka="[object Proxy]";function za(e){if(!W(e))return!1;var t=ue(e);return t==Va||t==Wa||t==qa||t==Ka}var Ke=za;var Ja=P["__core-js_shared__"],yt=Ja;var Rr=(function(){var e=/[^.]+$/.exec(yt&&yt.keys&&yt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function Ya(e){return!!Rr&&Rr in e}var Gr=Ya;var Xa=Function.prototype,Za=Xa.toString;function Qa(e){if(e!=null){try{return Za.call(e)}catch{}try{return e+""}catch{}}return""}var Ae=Qa;var ka=/[\\^$.*+?()[\]{}|]/g,en=/^\[object .+?Constructor\]$/,tn=Function.prototype,rn=Object.prototype,un=tn.toString,on=rn.hasOwnProperty,an=RegExp("^"+un.call(on).replace(ka,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function nn(e){if(!W(e)||Gr(e))return!1;var t=Ke(e)?an:en;return t.test(Ae(e))}var Hr=nn;function fn(e,t){return e?.[t]}var Ur=fn;function sn(e,t){var r=Ur(e,t);return Hr(r)?r:void 0}var ee=sn;var Dn=ee(P,"Map"),_e=Dn;var pn=ee(Object,"create"),Ce=pn;function ln(){this.__data__=Ce?Ce(null):{},this.size=0}var $r=ln;function mn(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var qr=mn;var dn="__lodash_hash_undefined__",cn=Object.prototype,An=cn.hasOwnProperty;function Cn(e){var t=this.__data__;if(Ce){var r=t[e];return r===dn?void 0:r}return An.call(t,e)?t[e]:void 0}var Vr=Cn;var Fn=Object.prototype,En=Fn.hasOwnProperty;function xn(e){var t=this.__data__;return Ce?t[e]!==void 0:En.call(t,e)}var Wr=xn;var gn="__lodash_hash_undefined__";function Bn(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Ce&&t===void 0?gn:t,this}var Kr=Bn;function ze(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}ze.prototype.clear=$r;ze.prototype.delete=qr;ze.prototype.get=Vr;ze.prototype.has=Wr;ze.prototype.set=Kr;var ur=ze;function hn(){this.size=0,this.__data__={hash:new ur,map:new(_e||ve),string:new ur}}var zr=hn;function bn(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var Jr=bn;function yn(e,t){var r=e.__data__;return Jr(t)?r[typeof t=="string"?"string":"hash"]:r.map}var Se=yn;function vn(e){var t=Se(this,e).delete(e);return this.size-=t?1:0,t}var Yr=vn;function _n(e){return Se(this,e).get(e)}var Xr=_n;function Sn(e){return Se(this,e).has(e)}var Zr=Sn;function wn(e,t){var r=Se(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}var Qr=wn;function Je(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var o=e[t];this.set(o[0],o[1])}}Je.prototype.clear=zr;Je.prototype.delete=Yr;Je.prototype.get=Xr;Je.prototype.has=Zr;Je.prototype.set=Qr;var vt=Je;var Tn=200;function On(e,t){var r=this.__data__;if(r instanceof ve){var o=r.__data__;if(!_e||o.length<Tn-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new vt(o)}return r.set(e,t),this.size=r.size,this}var kr=On;function Ye(e){var t=this.__data__=new ve(e);this.size=t.size}Ye.prototype.clear=Tr;Ye.prototype.delete=Or;Ye.prototype.get=Pr;Ye.prototype.has=Ir;Ye.prototype.set=kr;var we=Ye;var Pn="__lodash_hash_undefined__";function In(e){return this.__data__.set(e,Pn),this}var eu=In;function jn(e){return this.__data__.has(e)}var tu=jn;function _t(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new vt;++t<r;)this.add(e[t])}_t.prototype.add=_t.prototype.push=eu;_t.prototype.has=tu;var ru=_t;function Nn(e,t){for(var r=-1,o=e==null?0:e.length;++r<o;)if(t(e[r],r,e))return!0;return!1}var uu=Nn;function Mn(e,t){return e.has(t)}var ou=Mn;var Ln=1,Rn=2;function Gn(e,t,r,o,f,i){var D=r&Ln,l=e.length,m=t.length;if(l!=m&&!(D&&m>l))return!1;var g=i.get(e),B=i.get(t);if(g&&B)return g==t&&B==e;var h=-1,y=!0,L=r&Rn?new ru:void 0;for(i.set(e,t),i.set(t,e);++h<l;){var I=e[h],$=t[h];if(o)var j=D?o($,I,h,t,e,i):o(I,$,h,e,t,i);if(j!==void 0){if(j)continue;y=!1;break}if(L){if(!uu(t,function(T,pe){if(!ou(L,pe)&&(I===T||f(I,T,r,o,i)))return L.push(pe)})){y=!1;break}}else if(!(I===$||f(I,$,r,o,i))){y=!1;break}}return i.delete(e),i.delete(t),y}var St=Gn;var Hn=P.Uint8Array,Xe=Hn;function Un(e){var t=-1,r=Array(e.size);return e.forEach(function(o,f){r[++t]=[f,o]}),r}var au=Un;function $n(e){var t=-1,r=Array(e.size);return e.forEach(function(o){r[++t]=o}),r}var nu=$n;var qn=1,Vn=2,Wn="[object Boolean]",Kn="[object Date]",zn="[object Error]",Jn="[object Map]",Yn="[object Number]",Xn="[object RegExp]",Zn="[object Set]",Qn="[object String]",kn="[object Symbol]",ei="[object ArrayBuffer]",ti="[object DataView]",iu=X?X.prototype:void 0,or=iu?iu.valueOf:void 0;function ri(e,t,r,o,f,i,D){switch(r){case ti:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case ei:return!(e.byteLength!=t.byteLength||!i(new Xe(e),new Xe(t)));case Wn:case Kn:case Yn:return fe(+e,+t);case zn:return e.name==t.name&&e.message==t.message;case Xn:case Qn:return e==t+"";case Jn:var l=au;case Zn:var m=o&qn;if(l||(l=nu),e.size!=t.size&&!m)return!1;var g=D.get(e);if(g)return g==t;o|=Vn,D.set(e,t);var B=St(l(e),l(t),o,f,i,D);return D.delete(e),B;case kn:if(or)return or.call(e)==or.call(t)}return!1}var fu=ri;function ui(e,t){for(var r=-1,o=t.length,f=e.length;++r<o;)e[f+r]=t[r];return e}var wt=ui;var oi=Array.isArray,te=oi;function ai(e,t,r){var o=t(e);return te(e)?o:wt(o,r(e))}var Tt=ai;function ni(e,t){for(var r=-1,o=e==null?0:e.length,f=0,i=[];++r<o;){var D=e[r];t(D,r,e)&&(i[f++]=D)}return i}var su=ni;function ii(){return[]}var Ot=ii;var fi=Object.prototype,si=fi.propertyIsEnumerable,Du=Object.getOwnPropertySymbols,Di=Du?function(e){return e==null?[]:(e=Object(e),su(Du(e),function(t){return si.call(e,t)}))}:Ot,Ze=Di;function pi(e,t){for(var r=-1,o=Array(e);++r<e;)o[r]=t(r);return o}var pu=pi;function li(e){return e!=null&&typeof e=="object"}var M=li;var mi="[object Arguments]";function di(e){return M(e)&&ue(e)==mi}var ar=di;var lu=Object.prototype,ci=lu.hasOwnProperty,Ai=lu.propertyIsEnumerable,Ci=ar((function(){return arguments})())?ar:function(e){return M(e)&&ci.call(e,"callee")&&!Ai.call(e,"callee")},pt=Ci;function Fi(){return!1}var mu=Fi;var Au=typeof exports=="object"&&exports&&!exports.nodeType&&exports,du=Au&&typeof module=="object"&&module&&!module.nodeType&&module,Ei=du&&du.exports===Au,cu=Ei?P.Buffer:void 0,xi=cu?cu.isBuffer:void 0,gi=xi||mu,Fe=gi;var Bi=9007199254740991,hi=/^(?:0|[1-9]\d*)$/;function bi(e,t){var r=typeof e;return t=t??Bi,!!t&&(r=="number"||r!="symbol"&&hi.test(e))&&e>-1&&e%1==0&&e<t}var Pt=bi;var yi=9007199254740991;function vi(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=yi}var It=vi;var _i="[object Arguments]",Si="[object Array]",wi="[object Boolean]",Ti="[object Date]",Oi="[object Error]",Pi="[object Function]",Ii="[object Map]",ji="[object Number]",Ni="[object Object]",Mi="[object RegExp]",Li="[object Set]",Ri="[object String]",Gi="[object WeakMap]",Hi="[object ArrayBuffer]",Ui="[object DataView]",$i="[object Float32Array]",qi="[object Float64Array]",Vi="[object Int8Array]",Wi="[object Int16Array]",Ki="[object Int32Array]",zi="[object Uint8Array]",Ji="[object Uint8ClampedArray]",Yi="[object Uint16Array]",Xi="[object Uint32Array]",w={};w[$i]=w[qi]=w[Vi]=w[Wi]=w[Ki]=w[zi]=w[Ji]=w[Yi]=w[Xi]=!0;w[_i]=w[Si]=w[Hi]=w[wi]=w[Ui]=w[Ti]=w[Oi]=w[Pi]=w[Ii]=w[ji]=w[Ni]=w[Mi]=w[Li]=w[Ri]=w[Gi]=!1;function Zi(e){return M(e)&&It(e.length)&&!!w[ue(e)]}var Cu=Zi;function Qi(e){return function(t){return e(t)}}var Qe=Qi;var Fu=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lt=Fu&&typeof module=="object"&&module&&!module.nodeType&&module,ki=lt&&lt.exports===Fu,nr=ki&&bt.process,ef=(function(){try{var e=lt&&lt.require&&lt.require("util").types;return e||nr&&nr.binding&&nr.binding("util")}catch{}})(),Ee=ef;var Eu=Ee&&Ee.isTypedArray,tf=Eu?Qe(Eu):Cu,ke=tf;var rf=Object.prototype,uf=rf.hasOwnProperty;function of(e,t){var r=te(e),o=!r&&pt(e),f=!r&&!o&&Fe(e),i=!r&&!o&&!f&&ke(e),D=r||o||f||i,l=D?pu(e.length,String):[],m=l.length;for(var g in e)(t||uf.call(e,g))&&!(D&&(g=="length"||f&&(g=="offset"||g=="parent")||i&&(g=="buffer"||g=="byteLength"||g=="byteOffset")||Pt(g,m)))&&l.push(g);return l}var jt=of;var af=Object.prototype;function nf(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||af;return e===r}var et=nf;function ff(e,t){return function(r){return e(t(r))}}var Nt=ff;var sf=Nt(Object.keys,Object),xu=sf;var Df=Object.prototype,pf=Df.hasOwnProperty;function lf(e){if(!et(e))return xu(e);var t=[];for(var r in Object(e))pf.call(e,r)&&r!="constructor"&&t.push(r);return t}var gu=lf;function mf(e){return e!=null&&It(e.length)&&!Ke(e)}var Te=mf;function df(e){return Te(e)?jt(e):gu(e)}var tt=df;function cf(e){return Tt(e,tt,Ze)}var mt=cf;var Af=1,Cf=Object.prototype,Ff=Cf.hasOwnProperty;function Ef(e,t,r,o,f,i){var D=r&Af,l=mt(e),m=l.length,g=mt(t),B=g.length;if(m!=B&&!D)return!1;for(var h=m;h--;){var y=l[h];if(!(D?y in t:Ff.call(t,y)))return!1}var L=i.get(e),I=i.get(t);if(L&&I)return L==t&&I==e;var $=!0;i.set(e,t),i.set(t,e);for(var j=D;++h<m;){y=l[h];var T=e[y],pe=t[y];if(o)var nt=D?o(pe,T,y,t,e,i):o(T,pe,y,e,t,i);if(!(nt===void 0?T===pe||f(T,pe,r,o,i):nt)){$=!1;break}j||(j=y=="constructor")}if($&&!j){var He=e.constructor,Ue=t.constructor;He!=Ue&&"constructor"in e&&"constructor"in t&&!(typeof He=="function"&&He instanceof He&&typeof Ue=="function"&&Ue instanceof Ue)&&($=!1)}return i.delete(e),i.delete(t),$}var Bu=Ef;var xf=ee(P,"DataView"),Mt=xf;var gf=ee(P,"Promise"),Lt=gf;var Bf=ee(P,"Set"),Rt=Bf;var hf=ee(P,"WeakMap"),Gt=hf;var hu="[object Map]",bf="[object Object]",bu="[object Promise]",yu="[object Set]",vu="[object WeakMap]",_u="[object DataView]",yf=Ae(Mt),vf=Ae(_e),_f=Ae(Lt),Sf=Ae(Rt),wf=Ae(Gt),Ge=ue;(Mt&&Ge(new Mt(new ArrayBuffer(1)))!=_u||_e&&Ge(new _e)!=hu||Lt&&Ge(Lt.resolve())!=bu||Rt&&Ge(new Rt)!=yu||Gt&&Ge(new Gt)!=vu)&&(Ge=function(e){var t=ue(e),r=t==bf?e.constructor:void 0,o=r?Ae(r):"";if(o)switch(o){case yf:return _u;case vf:return hu;case _f:return bu;case Sf:return yu;case wf:return vu}return t});var xe=Ge;var Tf=1,Su="[object Arguments]",wu="[object Array]",Ht="[object Object]",Of=Object.prototype,Tu=Of.hasOwnProperty;function Pf(e,t,r,o,f,i){var D=te(e),l=te(t),m=D?wu:xe(e),g=l?wu:xe(t);m=m==Su?Ht:m,g=g==Su?Ht:g;var B=m==Ht,h=g==Ht,y=m==g;if(y&&Fe(e)){if(!Fe(t))return!1;D=!0,B=!1}if(y&&!B)return i||(i=new we),D||ke(e)?St(e,t,r,o,f,i):fu(e,t,m,r,o,f,i);if(!(r&Tf)){var L=B&&Tu.call(e,"__wrapped__"),I=h&&Tu.call(t,"__wrapped__");if(L||I){var $=L?e.value():e,j=I?t.value():t;return i||(i=new we),f($,j,r,o,i)}}return y?(i||(i=new we),Bu(e,t,r,o,f,i)):!1}var Ou=Pf;function Pu(e,t,r,o,f){return e===t?!0:e==null||t==null||!M(e)&&!M(t)?e!==e&&t!==t:Ou(e,t,r,o,Pu,f)}var Iu=Pu;function If(e,t){return Iu(e,t)}var jf=If;var Nf="[object Symbol]";function Mf(e){return typeof e=="symbol"||M(e)&&ue(e)==Nf}var ju=Mf;function Lf(e,t){for(var r=-1,o=e==null?0:e.length,f=Array(o);++r<o;)f[r]=t(e[r],r,e);return f}var Nu=Lf;var Rf=1/0,Mu=X?X.prototype:void 0,Lu=Mu?Mu.toString:void 0;function Ru(e){if(typeof e=="string")return e;if(te(e))return Nu(e,Ru)+"";if(ju(e))return Lu?Lu.call(e):"";var t=e+"";return t=="0"&&1/e==-Rf?"-0":t}var Gu=Ru;function Gf(e){return e}var Ut=Gf;var Hu=Object.create,Hf=(function(){function e(){}return function(t){if(!W(t))return{};if(Hu)return Hu(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})(),Uu=Hf;function Uf(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}var $u=Uf;function $f(e,t){var r=-1,o=e.length;for(t||(t=Array(o));++r<o;)t[r]=e[r];return t}var $t=$f;var qf=800,Vf=16,Wf=Date.now;function Kf(e){var t=0,r=0;return function(){var o=Wf(),f=Vf-(o-r);if(r=o,f>0){if(++t>=qf)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var qu=Kf;function zf(e){return function(){return e}}var Vu=zf;var Jf=(function(){try{var e=ee(Object,"defineProperty");return e({},"",{}),e}catch{}})(),rt=Jf;var Yf=rt?function(e,t){return rt(e,"toString",{configurable:!0,enumerable:!1,value:Vu(t),writable:!0})}:Ut,Wu=Yf;var Xf=qu(Wu),Ku=Xf;function Zf(e,t){for(var r=-1,o=e==null?0:e.length;++r<o&&t(e[r],r,e)!==!1;);return e}var zu=Zf;function Qf(e,t,r){t=="__proto__"&&rt?rt(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var ut=Qf;var kf=Object.prototype,e0=kf.hasOwnProperty;function t0(e,t,r){var o=e[t];(!(e0.call(e,t)&&fe(o,r))||r===void 0&&!(t in e))&&ut(e,t,r)}var qt=t0;function r0(e,t,r,o){var f=!r;r||(r={});for(var i=-1,D=t.length;++i<D;){var l=t[i],m=o?o(r[l],e[l],l,r,e):void 0;m===void 0&&(m=e[l]),f?ut(r,l,m):qt(r,l,m)}return r}var se=r0;var Ju=Math.max;function u0(e,t,r){return t=Ju(t===void 0?e.length-1:t,0),function(){for(var o=arguments,f=-1,i=Ju(o.length-t,0),D=Array(i);++f<i;)D[f]=o[t+f];f=-1;for(var l=Array(t+1);++f<t;)l[f]=o[f];return l[t]=r(D),$u(e,this,l)}}var Yu=u0;function o0(e,t){return Ku(Yu(e,t,Ut),e+"")}var Xu=o0;function a0(e,t,r){if(!W(r))return!1;var o=typeof t;return(o=="number"?Te(r)&&Pt(t,r.length):o=="string"&&t in r)?fe(r[t],e):!1}var Zu=a0;function n0(e){return Xu(function(t,r){var o=-1,f=r.length,i=f>1?r[f-1]:void 0,D=f>2?r[2]:void 0;for(i=e.length>3&&typeof i=="function"?(f--,i):void 0,D&&Zu(r[0],r[1],D)&&(i=f<3?void 0:i,f=1),t=Object(t);++o<f;){var l=r[o];l&&e(t,l,o,i)}return t})}var Qu=n0;function i0(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}var ku=i0;var f0=Object.prototype,s0=f0.hasOwnProperty;function D0(e){if(!W(e))return ku(e);var t=et(e),r=[];for(var o in e)o=="constructor"&&(t||!s0.call(e,o))||r.push(o);return r}var eo=D0;function p0(e){return Te(e)?jt(e,!0):eo(e)}var De=p0;function l0(e){return e==null?"":Gu(e)}var to=l0;var m0=Nt(Object.getPrototypeOf,Object),ot=m0;var d0="[object Object]",c0=Function.prototype,A0=Object.prototype,ro=c0.toString,C0=A0.hasOwnProperty,F0=ro.call(Object);function E0(e){if(!M(e)||ue(e)!=d0)return!1;var t=ot(e);if(t===null)return!0;var r=C0.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&ro.call(r)==F0}var uo=E0;function x0(e,t){return e&&se(t,tt(t),e)}var oo=x0;function g0(e,t){return e&&se(t,De(t),e)}var ao=g0;var so=typeof exports=="object"&&exports&&!exports.nodeType&&exports,no=so&&typeof module=="object"&&module&&!module.nodeType&&module,B0=no&&no.exports===so,io=B0?P.Buffer:void 0,fo=io?io.allocUnsafe:void 0;function h0(e,t){if(t)return e.slice();var r=e.length,o=fo?fo(r):new e.constructor(r);return e.copy(o),o}var Vt=h0;function b0(e,t){return se(e,Ze(e),t)}var Do=b0;var y0=Object.getOwnPropertySymbols,v0=y0?function(e){for(var t=[];e;)wt(t,Ze(e)),e=ot(e);return t}:Ot,Wt=v0;function _0(e,t){return se(e,Wt(e),t)}var po=_0;function S0(e){return Tt(e,De,Wt)}var lo=S0;var w0=Object.prototype,T0=w0.hasOwnProperty;function O0(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&T0.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var mo=O0;function P0(e){var t=new e.constructor(e.byteLength);return new Xe(t).set(new Xe(e)),t}var at=P0;function I0(e,t){var r=t?at(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var co=I0;var j0=/\w*$/;function N0(e){var t=new e.constructor(e.source,j0.exec(e));return t.lastIndex=e.lastIndex,t}var Ao=N0;var Co=X?X.prototype:void 0,Fo=Co?Co.valueOf:void 0;function M0(e){return Fo?Object(Fo.call(e)):{}}var Eo=M0;function L0(e,t){var r=t?at(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var Kt=L0;var R0="[object Boolean]",G0="[object Date]",H0="[object Map]",U0="[object Number]",$0="[object RegExp]",q0="[object Set]",V0="[object String]",W0="[object Symbol]",K0="[object ArrayBuffer]",z0="[object DataView]",J0="[object Float32Array]",Y0="[object Float64Array]",X0="[object Int8Array]",Z0="[object Int16Array]",Q0="[object Int32Array]",k0="[object Uint8Array]",es="[object Uint8ClampedArray]",ts="[object Uint16Array]",rs="[object Uint32Array]";function us(e,t,r){var o=e.constructor;switch(t){case K0:return at(e);case R0:case G0:return new o(+e);case z0:return co(e,r);case J0:case Y0:case X0:case Z0:case Q0:case k0:case es:case ts:case rs:return Kt(e,r);case H0:return new o;case U0:case V0:return new o(e);case $0:return Ao(e);case q0:return new o;case W0:return Eo(e)}}var xo=us;function os(e){return typeof e.constructor=="function"&&!et(e)?Uu(ot(e)):{}}var zt=os;var as="[object Map]";function ns(e){return M(e)&&xe(e)==as}var go=ns;var Bo=Ee&&Ee.isMap,is=Bo?Qe(Bo):go,ho=is;var fs="[object Set]";function ss(e){return M(e)&&xe(e)==fs}var bo=ss;var yo=Ee&&Ee.isSet,Ds=yo?Qe(yo):bo,vo=Ds;var ps=1,ls=2,ms=4,_o="[object Arguments]",ds="[object Array]",cs="[object Boolean]",As="[object Date]",Cs="[object Error]",So="[object Function]",Fs="[object GeneratorFunction]",Es="[object Map]",xs="[object Number]",wo="[object Object]",gs="[object RegExp]",Bs="[object Set]",hs="[object String]",bs="[object Symbol]",ys="[object WeakMap]",vs="[object ArrayBuffer]",_s="[object DataView]",Ss="[object Float32Array]",ws="[object Float64Array]",Ts="[object Int8Array]",Os="[object Int16Array]",Ps="[object Int32Array]",Is="[object Uint8Array]",js="[object Uint8ClampedArray]",Ns="[object Uint16Array]",Ms="[object Uint32Array]",v={};v[_o]=v[ds]=v[vs]=v[_s]=v[cs]=v[As]=v[Ss]=v[ws]=v[Ts]=v[Os]=v[Ps]=v[Es]=v[xs]=v[wo]=v[gs]=v[Bs]=v[hs]=v[bs]=v[Is]=v[js]=v[Ns]=v[Ms]=!0;v[Cs]=v[So]=v[ys]=!1;function Jt(e,t,r,o,f,i){var D,l=t&ps,m=t&ls,g=t&ms;if(r&&(D=f?r(e,o,f,i):r(e)),D!==void 0)return D;if(!W(e))return e;var B=te(e);if(B){if(D=mo(e),!l)return $t(e,D)}else{var h=xe(e),y=h==So||h==Fs;if(Fe(e))return Vt(e,l);if(h==wo||h==_o||y&&!f){if(D=m||y?{}:zt(e),!l)return m?po(e,ao(D,e)):Do(e,oo(D,e))}else{if(!v[h])return f?e:{};D=xo(e,h,l)}}i||(i=new we);var L=i.get(e);if(L)return L;i.set(e,D),vo(e)?e.forEach(function(j){D.add(Jt(j,t,r,j,e,i))}):ho(e)&&e.forEach(function(j,T){D.set(T,Jt(j,t,r,T,e,i))});var I=g?m?lo:mt:m?De:tt,$=B?void 0:I(e);return zu($||e,function(j,T){$&&(T=j,j=e[T]),qt(D,T,Jt(j,t,r,T,e,i))}),D}var To=Jt;var Ls=1,Rs=4;function Gs(e){return To(e,Ls|Rs)}var Hs=Gs;function Us(e){return function(t,r,o){for(var f=-1,i=Object(t),D=o(t),l=D.length;l--;){var m=D[e?l:++f];if(r(i[m],m,i)===!1)break}return t}}var Oo=Us;var $s=Oo(),Po=$s;function qs(e,t,r){(r!==void 0&&!fe(e[t],r)||r===void 0&&!(t in e))&&ut(e,t,r)}var dt=qs;function Vs(e){return M(e)&&Te(e)}var Io=Vs;function Ws(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}var ct=Ws;function Ks(e){return se(e,De(e))}var jo=Ks;function zs(e,t,r,o,f,i,D){var l=ct(e,r),m=ct(t,r),g=D.get(m);if(g){dt(e,r,g);return}var B=i?i(l,m,r+"",e,t,D):void 0,h=B===void 0;if(h){var y=te(m),L=!y&&Fe(m),I=!y&&!L&&ke(m);B=m,y||L||I?te(l)?B=l:Io(l)?B=$t(l):L?(h=!1,B=Vt(m,!0)):I?(h=!1,B=Kt(m,!0)):B=[]:uo(m)||pt(m)?(B=l,pt(l)?B=jo(l):(!W(l)||Ke(l))&&(B=zt(m))):h=!1}h&&(D.set(m,B),f(B,m,o,i,D),D.delete(m)),dt(e,r,B)}var No=zs;function Mo(e,t,r,o,f){e!==t&&Po(t,function(i,D){if(f||(f=new we),W(i))No(e,t,D,r,Mo,o,f);else{var l=o?o(ct(e,D),i,D+"",e,t,f):void 0;l===void 0&&(l=i),dt(e,D,l)}},De)}var Lo=Mo;var Js=Qu(function(e,t,r){Lo(e,t,r)}),Ys=Js;var Xs=0;function Zs(e){var t=++Xs;return to(e)+t}var Qs=Zs;function eD(e,t){if(e&1&&(G(0,"li"),Me(1,"i",14),re(2),G(3,"span",15),re(4," \xB7 "),G(5,"span",16),re(6),Z()()()),e&2){let r=t.$implicit;U(2),Re("",r.name," "),U(4),Le(r.username)}}var QA=(()=>{class e{$activeModal=he(Bt);$api=he(br);$toastr=he(Br);$translate=he(gr);bridges=[];onRestartChildBridgeClick(){return Ar(this,null,function*(){try{for(let r of this.bridges)yield Cr(this.$api.put(`/server/restart/${r.username}`,{}));this.$toastr.success(this.$translate.instant("plugins.manage.child_bridge_restart"),this.$translate.instant("toast.title_success"))}catch(r){console.error(r),this.$toastr.error(this.$translate.instant("plugins.manage.child_bridge_restart_failed"),this.$translate.instant("toast.title_error"))}finally{this.$activeModal.close()}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=gt({type:e,selectors:[["ng-component"]],inputs:{bridges:"bridges"},decls:27,vars:18,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[1,"fas","fa-power-off","primary-text","mb-3",2,"font-size","75px"],[1,"w-100"],[1,"text-center"],[1,"d-inline-block","text-start","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"],["type","button",1,"btn","btn-primary",3,"click"],[1,"fas","fa-hap","me-1"],[1,"grey-text"],[1,"font-monospace"]],template:function(o,f){o&1&&(G(0,"div",0)(1,"div",1)(2,"h5",2),re(3),Q(4,"translate"),Z(),G(5,"button",3),Q(6,"translate"),be("click",function(){return f.dismissModal()}),Z()(),G(7,"div",4),Me(8,"i",5),G(9,"p",6),re(10),Q(11,"translate"),Z(),G(12,"div",7)(13,"ul",8),Er(14,eD,7,2,"li",null,Fr),Z()()(),G(16,"div",9)(17,"div",10)(18,"button",11),Q(19,"translate"),be("click",function(){return f.dismissModal()}),re(20),Q(21,"translate"),Z()(),Me(22,"div",7),G(23,"div",12)(24,"button",13),be("click",function(){return f.onRestartChildBridgeClick()}),re(25),Q(26,"translate"),Z()()()()),o&2&&(U(3),Le(k(4,6,"platform.version.service_restart_required")),U(2),Ve("aria-label",k(6,8,"form.button_close")),U(5),Le(k(11,10,"restart.child_bridge_list")),U(4),xr(f.bridges),U(4),Ve("aria-label",k(19,12,"form.button_close")),U(2),Re(" ",k(21,14,"form.button_close")," "),U(5),Re(" ",k(26,16,"menu.tooltip_restart")," "))},dependencies:[ht],encapsulation:2})}return e})();var nC=(()=>{class e{$activeModal=he(Bt);$router=he(hr);onRestartHomebridgeClick(){this.$router.navigate(["/restart"]),this.$activeModal.close()}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=gt({type:e,selectors:[["ng-component"]],decls:23,vars:18,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[1,"fas","fa-power-off","primary-text","mb-3",2,"font-size","75px"],[1,"mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-primary",3,"click"]],template:function(o,f){o&1&&(G(0,"div",0)(1,"div",1)(2,"h5",2),re(3),Q(4,"translate"),Z(),G(5,"button",3),Q(6,"translate"),be("click",function(){return f.dismissModal()}),Z()(),G(7,"div",4),Me(8,"i",5),G(9,"p",6),re(10),Q(11,"translate"),Z()(),G(12,"div",7)(13,"div",8)(14,"button",9),Q(15,"translate"),be("click",function(){return f.dismissModal()}),re(16),Q(17,"translate"),Z()(),Me(18,"div",10),G(19,"div",11)(20,"button",12),be("click",function(){return f.onRestartHomebridgeClick()}),re(21),Q(22,"translate"),Z()()()()),o&2&&(U(3),Le(k(4,6,"platform.version.service_restart_required")),U(2),Ve("aria-label",k(6,8,"form.button_close")),U(5),Le(k(11,10,"plugins.settings.restart_required")),U(4),Ve("aria-label",k(15,12,"form.button_close")),U(2),Re(" ",k(17,14,"form.button_close")," "),U(5),Re(" ",k(22,16,"menu.tooltip_restart")," "))},dependencies:[ht],encapsulation:2})}return e})();function Ro(e){return{type:"object",additionalProperties:!1,title:"Matter Settings",description:"Configuration for Matter protocol support.",properties:{name:{type:"string",title:e.instant("child_bridge.config.name"),description:e.instant("settings.matter.name_desc")},port:{type:"number",title:e.instant("settings.matter.port"),description:e.instant("settings.matter.port_desc"),minimum:1025,maximum:65534}}}}function DC(e){return{type:"object",required:[],additionalProperties:!1,title:e.instant("child_bridge.bridge_settings"),properties:{matterOnly:{type:"boolean",title:"Matter-Only Mode",description:"Enable Matter-only mode. When enabled, this bridge will not expose HAP/HomeKit protocol and username/pin are not required."},username:{type:"string",title:e.instant("users.label_username"),description:`The child bridge username must be 6 pairs of colon-separated hexadecimal characters (A-F 0-9).
15
- Example: 0E:89:49:64:91:86.
16
- Not required when matterOnly is true.`,pattern:"^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$"},port:{type:"number",title:e.instant("accessories.bridge_port"),description:"The port the child bridge listens on.",minimum:1025,maximum:65534},pin:{type:"string",title:"Bridge PIN",description:`The child bridge pin.
17
- Example: 630-27-655.`,pattern:"^([0-9]{3}-[0-9]{2}-[0-9]{3})$"},name:{type:"string",title:e.instant("child_bridge.config.name"),description:"The name of the child bridge."},manufacturer:{type:"string",title:e.instant("child_bridge.config.manufacturer"),description:"The child bridge manufacturer to be displayed in HomeKit."},firmwareRevision:{type:"string",title:e.instant("child_bridge.config.firmware"),description:"The child bridge firmware version to be displayed in HomeKit."},model:{type:"string",title:e.instant("child_bridge.config.model"),description:"The child bridge model to be displayed in HomeKit."},env:{type:"object",title:"Environment Variables",description:"Environment variables to set for this child bridge.",properties:{DEBUG:{type:"string",title:"DEBUG",description:e.instant("settings.service.debug_tooltip")},NODE_OPTIONS:{type:"string",title:"NODE_OPTIONS",description:e.instant("settings.service.node_tooltip")}}},matter:Ro(e)}}}export{Hs as a,jf as b,Ys as c,Qs as d,QA as e,nC as f,tD as g,Ro as h,DC as i};
@@ -1 +0,0 @@
1
- import{h as i}from"./chunk-33PMRDBB.js";import{Xa as e,fa as t}from"./chunk-JIUPKHC6.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",loadChildren:()=>import("./chunk-BKJWDEC4.js").then(o=>o.DockerModule)},{path:"linux",loadChildren:()=>import("./chunk-AR55D6KT.js").then(o=>o.LinuxModule)},{path:"terminal",loadChildren:()=>import("./chunk-AWJONODF.js").then(o=>o.TerminalModule)}],l=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i.forChild(d),i]})}return o})();var p=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[l]})}return o})();export{p as PlatformToolsModule};
@@ -1 +0,0 @@
1
- import{a as n}from"./chunk-ULZPLNSU.js";import"./chunk-5BCOF7IG.js";import"./chunk-OI6KCFXH.js";import"./chunk-P3A7PEYC.js";import"./chunk-Z37KQHXT.js";import"./chunk-M7GSB47P.js";import"./chunk-YPUYAJME.js";import"./chunk-TKL5NWVB.js";import"./chunk-WYZEY4PO.js";import"./chunk-TUI3ZP5I.js";import"./chunk-3EACECYJ.js";import"./chunk-M3FIN2AA.js";import"./chunk-JAPQGXHI.js";import"./chunk-ZINKZV7F.js";import"./chunk-4Y2KPCHA.js";import"./chunk-XRLPCXVY.js";import"./chunk-XID2DQIK.js";import{h as r}from"./chunk-33PMRDBB.js";import"./chunk-2EKZK7NX.js";import"./chunk-5EZCX7HV.js";import{Xa as i,fa as t}from"./chunk-JIUPKHC6.js";var l=[{path:"",loadComponent:()=>import("./chunk-Y3W3WZ42.js").then(o=>o.PluginsComponent)}],u=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=i({type:o});static \u0275inj=t({imports:[r.forChild(l),r]})}return o})();var f=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=i({type:o});static \u0275inj=t({imports:[n,u]})}return o})();export{f as PluginsModule};