homebridge-config-ui-x 5.12.1-beta.5 → 5.12.1-beta.7

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 (160) hide show
  1. package/dist/bin/platforms/linux.js.map +1 -1
  2. package/package.json +2 -2
  3. package/public/3rdpartylicenses.txt +13 -1
  4. package/public/chunk-2F2PDTDB.js +1 -0
  5. package/public/{chunk-HMF2EYMY.js → chunk-2JLK533I.js} +1 -1
  6. package/public/{chunk-MAJDTCMY.js → chunk-2QUH2FXS.js} +1 -1
  7. package/public/{chunk-TR77UVYU.js → chunk-2R4HORTN.js} +1 -1
  8. package/public/{chunk-E55EDX5Y.js → chunk-3RTPACYF.js} +1 -1
  9. package/public/chunk-3T6KISS2.js +1 -0
  10. package/public/chunk-3VAD7GQK.js +1 -0
  11. package/public/chunk-3WNDNRRB.js +1 -0
  12. package/public/{chunk-4BX7KSQH.js → chunk-3X54YJUZ.js} +1 -1
  13. package/public/{chunk-VFMCVZHO.js → chunk-4J3J7FSY.js} +1 -1
  14. package/public/chunk-4RSOPME5.js +1 -0
  15. package/public/{chunk-2DRLNNDM.js → chunk-55DZYJHI.js} +1 -1
  16. package/public/chunk-57L4H7AA.js +1 -0
  17. package/public/chunk-5G2OIZ66.js +1 -0
  18. package/public/{chunk-LR2GN2Y2.js → chunk-5GNJNTLA.js} +1 -1
  19. package/public/{chunk-BZLBFDQG.js → chunk-5VXOT5GC.js} +1 -1
  20. package/public/{chunk-M3DSUNBG.js → chunk-6P53ACWC.js} +1 -1
  21. package/public/{chunk-IHAA5URA.js → chunk-6VNMVWFY.js} +1 -1
  22. package/public/chunk-732GW26P.js +1 -0
  23. package/public/{chunk-VWUZDCBZ.js → chunk-7AD56BSX.js} +2 -2
  24. package/public/{chunk-6U3YEWBO.js → chunk-7LOFSGZK.js} +1 -1
  25. package/public/{chunk-AHIRH7NQ.js → chunk-7LZXNMQ7.js} +1 -1
  26. package/public/chunk-7QNFIL7X.js +1 -0
  27. package/public/{chunk-3BODPB3K.js → chunk-ALTMINMJ.js} +1 -1
  28. package/public/{chunk-XUP37AHQ.js → chunk-ARR3OK4P.js} +5 -5
  29. package/public/{chunk-XTQWZF3J.js → chunk-AYPSIX2K.js} +1 -1
  30. package/public/chunk-B37HWUCD.js +1 -0
  31. package/public/{chunk-GDBXX4WT.js → chunk-BADNEAHD.js} +2 -2
  32. package/public/{chunk-RDHUW73W.js → chunk-BNNKKGLH.js} +1 -1
  33. package/public/{chunk-J56ZFHCF.js → chunk-BT3EMPD7.js} +1 -1
  34. package/public/chunk-BWJIQBIJ.js +1 -0
  35. package/public/{chunk-S2GJNEOI.js → chunk-C5UZ5BUH.js} +1 -1
  36. package/public/{chunk-X66UFY6K.js → chunk-CU6MTMVY.js} +1 -1
  37. package/public/{chunk-TV5ACJCB.js → chunk-D3QQAOPW.js} +1 -1
  38. package/public/chunk-DRY2ILHE.js +1 -0
  39. package/public/chunk-DSI2TVUT.js +1 -0
  40. package/public/{chunk-BRGXDZZE.js → chunk-EKYMLGZU.js} +1 -1
  41. package/public/{chunk-CAY6MDP6.js → chunk-F332UHUK.js} +1 -1
  42. package/public/{chunk-DUPASTS2.js → chunk-FDGOZLRL.js} +1 -1
  43. package/public/chunk-G5C66QEU.js +1 -0
  44. package/public/{chunk-CP2QJXVO.js → chunk-GFJO2QTW.js} +1 -1
  45. package/public/{chunk-C64AHVUO.js → chunk-GIBUKDL3.js} +1 -1
  46. package/public/{chunk-NPMJGEDY.js → chunk-HOHCTPYN.js} +1 -1
  47. package/public/{chunk-HH2FDI7W.js → chunk-HOWYXHPL.js} +1 -1
  48. package/public/chunk-HZA5LDUU.js +19 -0
  49. package/public/{chunk-UVWXUC5Y.js → chunk-I5AP453W.js} +1 -1
  50. package/public/chunk-I7YFJOCI.js +1 -0
  51. package/public/{chunk-3NHWMCB7.js → chunk-IBPLHJH5.js} +1 -1
  52. package/public/chunk-IMAK4R64.js +1 -0
  53. package/public/chunk-IRXJL347.js +1 -0
  54. package/public/{chunk-YDYBCBXX.js → chunk-IVGUGJ5O.js} +1 -1
  55. package/public/{chunk-KIFEAONI.js → chunk-IXSMCZ5A.js} +1 -1
  56. package/public/{chunk-QGJKMFM5.js → chunk-J3GYRR3Q.js} +1 -1
  57. package/public/{chunk-F5MBSCH4.js → chunk-JJ5CEM72.js} +3 -3
  58. package/public/chunk-JNPGEJ3W.js +1 -0
  59. package/public/{chunk-4OEYZBSF.js → chunk-JTQQTKY7.js} +1 -1
  60. package/public/{chunk-5QHRLSAE.js → chunk-K73S26T3.js} +1 -1
  61. package/public/{chunk-UH3C2FAE.js → chunk-KAPGBFLJ.js} +1 -1
  62. package/public/{chunk-2QSUQ4VI.js → chunk-KDNXPUO5.js} +1 -1
  63. package/public/chunk-KLWYBXMO.js +5 -0
  64. package/public/chunk-LMQIRO2C.js +1 -0
  65. package/public/chunk-LMWHU5BN.js +1 -0
  66. package/public/{chunk-5QQ2XMII.js → chunk-LVC2MQ7H.js} +1 -1
  67. package/public/{chunk-F2HGBWZZ.js → chunk-MM3ZUHP2.js} +1 -1
  68. package/public/{chunk-Z2RGI4BU.js → chunk-MOTTUPLZ.js} +1 -1
  69. package/public/chunk-MQWN43LI.js +1 -0
  70. package/public/{chunk-5A2G7KDR.js → chunk-MRHB36HC.js} +1 -1
  71. package/public/{chunk-ATJM3XYR.js → chunk-MTYIEY2M.js} +1 -1
  72. package/public/chunk-MW5T6P3D.js +1 -0
  73. package/public/chunk-MXDOJJGQ.js +1 -0
  74. package/public/chunk-NO3WWNTD.js +1 -0
  75. package/public/chunk-ON7YXJNY.js +1 -0
  76. package/public/{chunk-IXMOGLOS.js → chunk-P4ODKUQK.js} +1 -1
  77. package/public/{chunk-NYEZF6Y3.js → chunk-PQPDMNKK.js} +1 -1
  78. package/public/{chunk-3LY5FRVV.js → chunk-PSSWIPLS.js} +1 -1
  79. package/public/chunk-PSTNNJB4.js +1 -0
  80. package/public/chunk-Q2RBJQKF.js +36 -0
  81. package/public/chunk-QJULMVF4.js +1 -0
  82. package/public/{chunk-V45KU64F.js → chunk-QMHMKWPA.js} +1 -1
  83. package/public/{chunk-65AW3ZMH.js → chunk-QPIMSYGY.js} +1 -1
  84. package/public/{chunk-VCWYDWAJ.js → chunk-R2AXYPVZ.js} +1 -1
  85. package/public/{chunk-WGTVNYII.js → chunk-RGRPV7TK.js} +1 -1
  86. package/public/{chunk-4P4VAV7I.js → chunk-S3E6JDMS.js} +1 -1
  87. package/public/{chunk-VV4S6PBO.js → chunk-S5H22WRF.js} +1 -1
  88. package/public/{chunk-RWABUVQY.js → chunk-SCW535TW.js} +1 -1
  89. package/public/{chunk-OTMZDL7S.js → chunk-SGI3H2QJ.js} +1 -1
  90. package/public/{chunk-Y6B4ENQ3.js → chunk-UCTE5J3F.js} +1 -1
  91. package/public/chunk-UKJBJA6I.js +1 -0
  92. package/public/chunk-URPE4YWQ.js +1 -0
  93. package/public/{chunk-DJGU4NTG.js → chunk-UU7UROHF.js} +1 -1
  94. package/public/{chunk-UHG23NUX.js → chunk-UUDM2ZE6.js} +1 -1
  95. package/public/{chunk-H7F7H5MW.js → chunk-V62JRIHN.js} +1 -1
  96. package/public/{chunk-FNRDBHYN.js → chunk-V6SS3LLE.js} +1 -1
  97. package/public/{chunk-RMDVYT7X.js → chunk-VFZPU4ZL.js} +1 -1
  98. package/public/chunk-VJN6YUS2.js +1 -0
  99. package/public/{chunk-664C4LX2.js → chunk-VY4NTNG3.js} +1 -1
  100. package/public/{chunk-DOJGHPYJ.js → chunk-WVBGE4PG.js} +1 -1
  101. package/public/{chunk-JPAZUSRO.js → chunk-WZXTVC6W.js} +1 -1
  102. package/public/{chunk-PTJ3UZME.js → chunk-X35N33BQ.js} +1 -1
  103. package/public/{chunk-YCASP3MF.js → chunk-X5XGTC24.js} +1 -1
  104. package/public/chunk-YASBCOYX.js +1 -0
  105. package/public/{chunk-FLCYKKEZ.js → chunk-YBWJOGCK.js} +1 -1
  106. package/public/{chunk-QSXJHCTT.js → chunk-YD4U26CQ.js} +1 -1
  107. package/public/chunk-YIHVWXAX.js +92 -0
  108. package/public/chunk-YKLNKZD5.js +2 -0
  109. package/public/chunk-YLQLLNQ6.js +1 -0
  110. package/public/{chunk-A5JF6PDD.js → chunk-YQXFTYEI.js} +1 -1
  111. package/public/chunk-YWTJYVRK.js +1 -0
  112. package/public/{chunk-Q5X66PGK.js → chunk-YXAXWARF.js} +1 -1
  113. package/public/{chunk-NTQWCIIF.js → chunk-ZBOWFMAD.js} +1 -1
  114. package/public/{chunk-2K66PSKD.js → chunk-ZH3VNDIS.js} +1 -1
  115. package/public/{chunk-3YXAYQFV.js → chunk-ZIFXCMBJ.js} +1 -1
  116. package/public/{chunk-AY35X64S.js → chunk-ZMEMMUUF.js} +1 -1
  117. package/public/{chunk-DCBZUBGA.js → chunk-ZONYERCP.js} +1 -1
  118. package/public/{chunk-KEESKHLN.js → chunk-ZRGZJ2SE.js} +1 -1
  119. package/public/index.html +2 -2
  120. package/public/{main-QHHXZV7U.js → main-XUQ5G5JD.js} +1 -1
  121. package/public/styles-SBKKVTID.css +1 -0
  122. package/public/chunk-2FKL7WTN.js +0 -1
  123. package/public/chunk-3B3NAPXD.js +0 -1
  124. package/public/chunk-3BOXIXZY.js +0 -1
  125. package/public/chunk-3N3RJBS3.js +0 -19
  126. package/public/chunk-6KHLSYCO.js +0 -1
  127. package/public/chunk-7GUHWJ4X.js +0 -1
  128. package/public/chunk-7JD74YRM.js +0 -1
  129. package/public/chunk-AST2OLG2.js +0 -1
  130. package/public/chunk-AZLCZPTC.js +0 -1
  131. package/public/chunk-B4AJQJMI.js +0 -1
  132. package/public/chunk-BJV2F6QZ.js +0 -1
  133. package/public/chunk-BMOLDRJ3.js +0 -9
  134. package/public/chunk-BUZBTHD2.js +0 -1
  135. package/public/chunk-C5CMRH2U.js +0 -1
  136. package/public/chunk-CXSRVC7V.js +0 -1
  137. package/public/chunk-DQVHBQLA.js +0 -1
  138. package/public/chunk-FH62LNHX.js +0 -35
  139. package/public/chunk-GYM2PPGX.js +0 -1
  140. package/public/chunk-H2UKSDHZ.js +0 -1
  141. package/public/chunk-HBK7LF6W.js +0 -1
  142. package/public/chunk-JBILFYTL.js +0 -1
  143. package/public/chunk-K3WEJJSS.js +0 -2
  144. package/public/chunk-KDXP3F5S.js +0 -1
  145. package/public/chunk-KYBKIBTT.js +0 -1
  146. package/public/chunk-LINXSUG2.js +0 -1
  147. package/public/chunk-LPJ4GDP3.js +0 -1
  148. package/public/chunk-LPWY3RKY.js +0 -1
  149. package/public/chunk-MUHHYXFN.js +0 -1
  150. package/public/chunk-MVT3BOGV.js +0 -5
  151. package/public/chunk-N6F32H34.js +0 -1
  152. package/public/chunk-NPABPWX3.js +0 -1
  153. package/public/chunk-OU66C3M2.js +0 -1
  154. package/public/chunk-P67JXXO4.js +0 -1
  155. package/public/chunk-UPP5DT2A.js +0 -1
  156. package/public/chunk-VV4LXPCS.js +0 -1
  157. package/public/chunk-XYVW562Y.js +0 -1
  158. package/public/chunk-ZPKMGNNM.js +0 -1
  159. package/public/chunk-ZVU2KU6A.js +0 -1
  160. package/public/styles-WJHG5ONB.css +0 -1
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-AYPSIX2K.js";import"./chunk-VJN6YUS2.js";export default a();
@@ -1 +1 @@
1
- import{s as oe}from"./chunk-HH2FDI7W.js";import{s as se}from"./chunk-RDHUW73W.js";import{e as G}from"./chunk-CAY6MDP6.js";import{C as ne,e as Y,l as Z,t as ee,u as te,w as ie}from"./chunk-JPAZUSRO.js";import{b as X}from"./chunk-MAJDTCMY.js";import{C as H,D as J,F as K,I as Q}from"./chunk-VWUZDCBZ.js";import{Ab as h,Cb as R,Db as F,Dc as u,Eb as V,Ec as _,Fb as w,Gb as a,Hb as r,Ib as $,Rb as E,Xb as y,Za as s,Zb as p,aa as x,ga as b,ha as I,jc as k,kc as m,lc as f,mc as B,nb as O,nc as P,rc as j,sa as S,sc as q,tc as W,yb as T,yc as N,zb as v,zc as z}from"./chunk-F5MBSCH4.js";import{a as U,b as L,h as D}from"./chunk-B4AJQJMI.js";var ce=(t,l)=>({"fa-matter":t,"fa-hap":l}),le=(t,l)=>({"btn-danger":t,"btn-elegant":l}),de=(t,l,e)=>({"fa-trash":t,"fa-undo":l,"fa-circle-notch fa-spin":e});function me(t,l){t&1&&(a(0,"div",12),$(1,"i",13),r(),a(2,"p",14),m(3),u(4,"translate"),r()),t&2&&(s(3),f(_(4,1,"reset.no_accessories")))}function pe(t,l){if(t&1&&(a(0,"option",24),m(1),r()),t&2){let e=l.$implicit;w("value",e._id),s(),P("",e.name," (",e._username,")")}}function ue(t,l){if(t&1){let e=E();a(0,"li",20),m(1),u(2,"translate"),r(),a(3,"li",18)(4,"label",21),m(5),u(6,"translate"),r(),a(7,"div",22)(8,"select",23),W("ngModelChange",function(i){b(e);let o=p(2);return q(o.selectedBridge,i)||(o.selectedBridge=i),I(i)}),y("change",function(i){b(e);let o=p(2);return I(o.onBridgeChange(i))}),F(9,pe,2,3,"option",24,R),r()()()}if(t&2){let e=p(2);s(),f(_(2,3,"form.label.changes_kept")),s(4),f(_(6,5,"reset.accessory_ind.bridge")),s(3),j("ngModel",e.selectedBridge),s(),V(e.pairings())}}function _e(t,l){if(t&1&&(a(0,"li",18)(1,"label",25),m(2),u(3,"translate"),r(),a(4,"div",26),m(5),r()()),t&2){let e=p(2);s(2),f(_(3,2,"reset.accessory_ind.bridge")),s(3),B(" ",e.getCurrentlySelectedBridge()," ")}}function ge(t,l){if(t&1){let e=E();a(0,"li",19)(1,"span",27),$(2,"i",28),r(),a(3,"span",29),m(4),$(5,"br"),a(6,"small")(7,"span",30),m(8),r()()(),a(9,"button",31),u(10,"translate"),y("click",function(){let i=b(e).$implicit,o=p(2);return I(o.toggleList(i.UUID||i.uuid,i.$cacheFile,i.$protocol,i.$deviceId))}),$(11,"i",32),r()()}if(t&2){let e=l.$implicit,n=p(2);s(2),k(N(12,ce,e.$protocol==="matter",e.$protocol!=="matter")),s(2),B(" ",e.displayName," "),s(4),f(e.UUID||e.uuid),s(),k(N(15,le,!n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol),n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol))),w("disabled",n.clicked()),T("aria-label",_(10,10,"form.button_delete")),s(2),k(z(18,de,!n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol),n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&!n.clicked(),n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&n.clicked()))}}function ve(t,l){if(t&1&&(a(0,"div",12),$(1,"i",15),r(),a(2,"ul",16)(3,"li"),m(4),u(5,"translate"),r(),a(6,"li"),m(7),u(8,"translate"),r(),a(9,"li"),m(10),u(11,"translate"),r()(),a(12,"ul",17),v(13,ue,11,7),v(14,_e,6,4,"li",18),F(15,ge,12,22,"li",19,R),r()),t&2){let e=p();s(4),f(_(5,5,"reset.accessory_ind.list_1")),s(3),f(_(8,7,"reset.accessory_ind.list_2")),s(3),f(_(11,9,"reset.accessory_ind.list_3")),s(3),h(e.pairings().length>1?13:-1),s(),h(e.pairings().length===1?14:-1),s(),V(e.selectedBridgeAccessories())}}function he(t,l){if(t&1){let e=E();a(0,"button",33),y("click",function(){b(e);let i=p();return I(i.dismissModal())}),m(1),u(2,"translate"),r()}if(t&2){let e=p();w("disabled",e.clicked()),s(),B(" ",_(2,2,"form.button_close")," ")}}function fe(t,l){if(t&1){let e=E();a(0,"button",34),y("click",function(){b(e);let i=p();return I(i.dismissModal())}),m(1),u(2,"translate"),r()}t&2&&(s(),B(" ",_(2,1,"form.button_close")," "))}function xe(t,l){if(t&1&&m(0),t&2){let e=p(3);B(" (",e.toDelete().length,") ")}}function Ce(t,l){if(t&1&&(m(0),u(1,"translate"),v(2,xe,1,1)),t&2){let e=p(2);B(" ",_(1,2,"form.button_remove")," "),s(2),h(e.toDelete().length>0?2:-1)}}function be(t,l){t&1&&$(0,"i",36)}function Ie(t,l){if(t&1){let e=E();a(0,"button",35),y("click",function(){b(e);let i=p();return I(i.removeAccessories())}),v(1,Ce,3,4),v(2,be,1,0,"i",36),r()}if(t&2){let e=p();w("disabled",!e.toDelete().length||e.clicked()),s(),h(e.clicked()?-1:1),s(),h(e.clicked()?2:-1)}}var Fe=(()=>{class t{$activeModal=x(se);$api=x(Q);$router=x(G);$settings=x(X);$toastr=x(K);$translate=x(H);modalData=x(oe);selectedBridge=this.modalData.selectedBridge;pairings=S([]);clicked=S(!1);currentSelectedBridge=S("");selectedBridgeAccessories=S([]);accessoriesExist=S(!1);toDelete=S([]);isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");ngOnInit(){this.currentSelectedBridge.set(this.selectedBridge),this.loadCachedAccessories()}onBridgeChange(e){let n=e.target.value;this.currentSelectedBridge.set(n),this.selectedBridgeAccessories.set(this.pairings().find(i=>i._id===this.currentSelectedBridge())?.accessories||[])}getCurrentlySelectedBridge(){let e=this.pairings().find(n=>n._id===this.currentSelectedBridge());return e?`${e.name} - ${e._username}`:""}toggleList(e,n,i,o){this.toDelete().some(g=>g.uuid===e&&g.cacheFile===n&&g.protocol===i)?this.toDelete.set(this.toDelete().filter(g=>g.uuid!==e||g.cacheFile!==n||g.protocol!==i)):this.toDelete.update(g=>[...g,{cacheFile:n,uuid:e,protocol:i,deviceId:o}])}isInList(e,n,i){return this.toDelete().some(o=>o.uuid===e&&o.cacheFile===n&&o.protocol===i)}removeAccessories(){return D(this,null,function*(){this.clicked.set(!0);let e=this.toDelete().filter(o=>o.protocol==="hap").map(o=>({uuid:o.uuid,cacheFile:o.cacheFile})),n=this.toDelete().filter(o=>o.protocol==="matter").map(o=>({uuid:o.uuid,deviceId:o.deviceId})),i=[];if(e.length>0&&i.push(this.$api.delete("/server/cached-accessories",{body:e})),this.isMatterSupported&&n.length>0&&i.push(this.$api.delete("/server/matter-accessories",{body:n})),i.length===0){this.clicked.set(!1);return}try{yield Promise.all(i),this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})}catch(o){this.clicked.set(!1),console.error(o),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return D(this,null,function*(){try{let e=this.isMatterSupported?[this.$api.get("/server/cached-accessories"),this.$api.get("/server/matter-accessories"),this.$api.get("/server/pairings")]:[this.$api.get("/server/cached-accessories"),this.$api.get("/server/pairings")],n=yield Promise.all(e),i=n[0],o=this.isMatterSupported?n[1]:[],g=this.isMatterSupported?n[2]:n[1],C=new Map(g.map(c=>[c._id,L(U({},c),{accessories:[]})]));i.sort((c,d)=>c.displayName.localeCompare(d.displayName)).forEach(c=>{let d=g.find(re=>re._main),A=c.$cacheFile?.split(".")?.[1]||d._id;(!this.selectedBridge||this.selectedBridge===A)&&(C.has(A)||C.set(A,{_id:A,_username:A.match(/.{1,2}/g).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),c.$protocol="hap",C.get(A).accessories.push(c))}),this.isMatterSupported&&o.sort((c,d)=>c.displayName.localeCompare(d.displayName)).forEach(c=>{let d=c.$deviceId;(!this.selectedBridge||this.selectedBridge===d)&&(C.has(d)||C.set(d,{_id:d,_username:d.match(/.{1,2}/g).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),c.$protocol="matter",c.$cacheFile=d,C.get(d).accessories.push(c))});let ae=Array.from(C.values()).filter(c=>c.accessories.length>0).sort((c,d)=>c._main&&!d._main?-1:!c._main&&d._main?1:c.name.localeCompare(d.name));this.pairings.set(ae);let M=this.selectedBridge||this.pairings()[0]?._id;M&&(this.selectedBridge=M,this.currentSelectedBridge.set(M),this.accessoriesExist.set(!0),this.selectedBridgeAccessories.set(this.pairings().find(c=>c._id===M)?.accessories||[]))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=O({type:t,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"list-group-item","text-center","grey-text","small"],["for","bridgeSelect",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["id","bridgeSelect",1,"custom-select",3,"ngModelChange","change","ngModel"],[3,"value"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],[1,"me-3"],[1,"fas","fa-lg"],[1,"flex-grow-1"],[1,"font-monospace","grey-text"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled"],[1,"fas"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-circle-notch","fa-spin"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),m(3),u(4,"translate"),r(),a(5,"button",3),u(6,"translate"),y("click",function(){return i.dismissModal()}),r()(),a(7,"div",4),v(8,me,5,3),v(9,ve,17,11),r(),a(10,"div",5)(11,"div",6),v(12,he,3,4,"button",7),r(),a(13,"div",8),v(14,fe,3,3,"button",9),r(),a(15,"div",10),v(16,Ie,3,3,"button",11),r()()()),n&2&&(s(3),f(_(4,8,"reset.accessory_ind.title")),s(2),w("disabled",i.clicked()),T("aria-label",_(6,10,"form.button_close")),s(3),h(i.accessoriesExist()?-1:8),s(),h(i.accessoriesExist()?9:-1),s(3),h(i.accessoriesExist()?12:-1),s(2),h(i.accessoriesExist()?-1:14),s(2),h(i.accessoriesExist()?16:-1))},dependencies:[ne,te,ie,ee,Y,Z,J],encapsulation:2})}return t})();export{Fe as a};
1
+ import{s as oe}from"./chunk-HOWYXHPL.js";import{s as se}from"./chunk-BNNKKGLH.js";import{e as G}from"./chunk-F332UHUK.js";import{C as ne,e as Y,l as Z,t as ee,u as te,w as ie}from"./chunk-WZXTVC6W.js";import{b as X}from"./chunk-2QUH2FXS.js";import{C as H,D as J,F as K,I as Q}from"./chunk-7AD56BSX.js";import{Ab as h,Cb as R,Db as F,Dc as u,Eb as V,Ec as _,Fb as w,Gb as a,Hb as r,Ib as $,Rb as E,Xb as y,Za as s,Zb as p,aa as x,ga as b,ha as I,jc as k,kc as m,lc as f,mc as B,nb as O,nc as P,rc as j,sa as S,sc as q,tc as W,yb as T,yc as N,zb as v,zc as z}from"./chunk-JJ5CEM72.js";import{a as U,b as L,h as D}from"./chunk-VJN6YUS2.js";var ce=(t,l)=>({"fa-matter":t,"fa-hap":l}),le=(t,l)=>({"btn-danger":t,"btn-elegant":l}),de=(t,l,e)=>({"fa-trash":t,"fa-undo":l,"fa-circle-notch fa-spin":e});function me(t,l){t&1&&(a(0,"div",12),$(1,"i",13),r(),a(2,"p",14),m(3),u(4,"translate"),r()),t&2&&(s(3),f(_(4,1,"reset.no_accessories")))}function pe(t,l){if(t&1&&(a(0,"option",24),m(1),r()),t&2){let e=l.$implicit;w("value",e._id),s(),P("",e.name," (",e._username,")")}}function ue(t,l){if(t&1){let e=E();a(0,"li",20),m(1),u(2,"translate"),r(),a(3,"li",18)(4,"label",21),m(5),u(6,"translate"),r(),a(7,"div",22)(8,"select",23),W("ngModelChange",function(i){b(e);let o=p(2);return q(o.selectedBridge,i)||(o.selectedBridge=i),I(i)}),y("change",function(i){b(e);let o=p(2);return I(o.onBridgeChange(i))}),F(9,pe,2,3,"option",24,R),r()()()}if(t&2){let e=p(2);s(),f(_(2,3,"form.label.changes_kept")),s(4),f(_(6,5,"reset.accessory_ind.bridge")),s(3),j("ngModel",e.selectedBridge),s(),V(e.pairings())}}function _e(t,l){if(t&1&&(a(0,"li",18)(1,"label",25),m(2),u(3,"translate"),r(),a(4,"div",26),m(5),r()()),t&2){let e=p(2);s(2),f(_(3,2,"reset.accessory_ind.bridge")),s(3),B(" ",e.getCurrentlySelectedBridge()," ")}}function ge(t,l){if(t&1){let e=E();a(0,"li",19)(1,"span",27),$(2,"i",28),r(),a(3,"span",29),m(4),$(5,"br"),a(6,"small")(7,"span",30),m(8),r()()(),a(9,"button",31),u(10,"translate"),y("click",function(){let i=b(e).$implicit,o=p(2);return I(o.toggleList(i.UUID||i.uuid,i.$cacheFile,i.$protocol,i.$deviceId))}),$(11,"i",32),r()()}if(t&2){let e=l.$implicit,n=p(2);s(2),k(N(12,ce,e.$protocol==="matter",e.$protocol!=="matter")),s(2),B(" ",e.displayName," "),s(4),f(e.UUID||e.uuid),s(),k(N(15,le,!n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol),n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol))),w("disabled",n.clicked()),T("aria-label",_(10,10,"form.button_delete")),s(2),k(z(18,de,!n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol),n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&!n.clicked(),n.isInList(e.UUID||e.uuid,e.$cacheFile,e.$protocol)&&n.clicked()))}}function ve(t,l){if(t&1&&(a(0,"div",12),$(1,"i",15),r(),a(2,"ul",16)(3,"li"),m(4),u(5,"translate"),r(),a(6,"li"),m(7),u(8,"translate"),r(),a(9,"li"),m(10),u(11,"translate"),r()(),a(12,"ul",17),v(13,ue,11,7),v(14,_e,6,4,"li",18),F(15,ge,12,22,"li",19,R),r()),t&2){let e=p();s(4),f(_(5,5,"reset.accessory_ind.list_1")),s(3),f(_(8,7,"reset.accessory_ind.list_2")),s(3),f(_(11,9,"reset.accessory_ind.list_3")),s(3),h(e.pairings().length>1?13:-1),s(),h(e.pairings().length===1?14:-1),s(),V(e.selectedBridgeAccessories())}}function he(t,l){if(t&1){let e=E();a(0,"button",33),y("click",function(){b(e);let i=p();return I(i.dismissModal())}),m(1),u(2,"translate"),r()}if(t&2){let e=p();w("disabled",e.clicked()),s(),B(" ",_(2,2,"form.button_close")," ")}}function fe(t,l){if(t&1){let e=E();a(0,"button",34),y("click",function(){b(e);let i=p();return I(i.dismissModal())}),m(1),u(2,"translate"),r()}t&2&&(s(),B(" ",_(2,1,"form.button_close")," "))}function xe(t,l){if(t&1&&m(0),t&2){let e=p(3);B(" (",e.toDelete().length,") ")}}function Ce(t,l){if(t&1&&(m(0),u(1,"translate"),v(2,xe,1,1)),t&2){let e=p(2);B(" ",_(1,2,"form.button_remove")," "),s(2),h(e.toDelete().length>0?2:-1)}}function be(t,l){t&1&&$(0,"i",36)}function Ie(t,l){if(t&1){let e=E();a(0,"button",35),y("click",function(){b(e);let i=p();return I(i.removeAccessories())}),v(1,Ce,3,4),v(2,be,1,0,"i",36),r()}if(t&2){let e=p();w("disabled",!e.toDelete().length||e.clicked()),s(),h(e.clicked()?-1:1),s(),h(e.clicked()?2:-1)}}var Fe=(()=>{class t{$activeModal=x(se);$api=x(Q);$router=x(G);$settings=x(X);$toastr=x(K);$translate=x(H);modalData=x(oe);selectedBridge=this.modalData.selectedBridge;pairings=S([]);clicked=S(!1);currentSelectedBridge=S("");selectedBridgeAccessories=S([]);accessoriesExist=S(!1);toDelete=S([]);isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");ngOnInit(){this.currentSelectedBridge.set(this.selectedBridge),this.loadCachedAccessories()}onBridgeChange(e){let n=e.target.value;this.currentSelectedBridge.set(n),this.selectedBridgeAccessories.set(this.pairings().find(i=>i._id===this.currentSelectedBridge())?.accessories||[])}getCurrentlySelectedBridge(){let e=this.pairings().find(n=>n._id===this.currentSelectedBridge());return e?`${e.name} - ${e._username}`:""}toggleList(e,n,i,o){this.toDelete().some(g=>g.uuid===e&&g.cacheFile===n&&g.protocol===i)?this.toDelete.set(this.toDelete().filter(g=>g.uuid!==e||g.cacheFile!==n||g.protocol!==i)):this.toDelete.update(g=>[...g,{cacheFile:n,uuid:e,protocol:i,deviceId:o}])}isInList(e,n,i){return this.toDelete().some(o=>o.uuid===e&&o.cacheFile===n&&o.protocol===i)}removeAccessories(){return D(this,null,function*(){this.clicked.set(!0);let e=this.toDelete().filter(o=>o.protocol==="hap").map(o=>({uuid:o.uuid,cacheFile:o.cacheFile})),n=this.toDelete().filter(o=>o.protocol==="matter").map(o=>({uuid:o.uuid,deviceId:o.deviceId})),i=[];if(e.length>0&&i.push(this.$api.delete("/server/cached-accessories",{body:e})),this.isMatterSupported&&n.length>0&&i.push(this.$api.delete("/server/matter-accessories",{body:n})),i.length===0){this.clicked.set(!1);return}try{yield Promise.all(i),this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})}catch(o){this.clicked.set(!1),console.error(o),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return D(this,null,function*(){try{let e=this.isMatterSupported?[this.$api.get("/server/cached-accessories"),this.$api.get("/server/matter-accessories"),this.$api.get("/server/pairings")]:[this.$api.get("/server/cached-accessories"),this.$api.get("/server/pairings")],n=yield Promise.all(e),i=n[0],o=this.isMatterSupported?n[1]:[],g=this.isMatterSupported?n[2]:n[1],C=new Map(g.map(c=>[c._id,L(U({},c),{accessories:[]})]));i.sort((c,d)=>c.displayName.localeCompare(d.displayName)).forEach(c=>{let d=g.find(re=>re._main),A=c.$cacheFile?.split(".")?.[1]||d._id;(!this.selectedBridge||this.selectedBridge===A)&&(C.has(A)||C.set(A,{_id:A,_username:A.match(/.{1,2}/g).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),c.$protocol="hap",C.get(A).accessories.push(c))}),this.isMatterSupported&&o.sort((c,d)=>c.displayName.localeCompare(d.displayName)).forEach(c=>{let d=c.$deviceId;(!this.selectedBridge||this.selectedBridge===d)&&(C.has(d)||C.set(d,{_id:d,_username:d.match(/.{1,2}/g).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),c.$protocol="matter",c.$cacheFile=d,C.get(d).accessories.push(c))});let ae=Array.from(C.values()).filter(c=>c.accessories.length>0).sort((c,d)=>c._main&&!d._main?-1:!c._main&&d._main?1:c.name.localeCompare(d.name));this.pairings.set(ae);let M=this.selectedBridge||this.pairings()[0]?._id;M&&(this.selectedBridge=M,this.currentSelectedBridge.set(M),this.accessoriesExist.set(!0),this.selectedBridgeAccessories.set(this.pairings().find(c=>c._id===M)?.accessories||[]))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=O({type:t,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"list-group-item","text-center","grey-text","small"],["for","bridgeSelect",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["id","bridgeSelect",1,"custom-select",3,"ngModelChange","change","ngModel"],[3,"value"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50","grey-text","font-monospace"],[1,"me-3"],[1,"fas","fa-lg"],[1,"flex-grow-1"],[1,"font-monospace","grey-text"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled"],[1,"fas"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-circle-notch","fa-spin"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),m(3),u(4,"translate"),r(),a(5,"button",3),u(6,"translate"),y("click",function(){return i.dismissModal()}),r()(),a(7,"div",4),v(8,me,5,3),v(9,ve,17,11),r(),a(10,"div",5)(11,"div",6),v(12,he,3,4,"button",7),r(),a(13,"div",8),v(14,fe,3,3,"button",9),r(),a(15,"div",10),v(16,Ie,3,3,"button",11),r()()()),n&2&&(s(3),f(_(4,8,"reset.accessory_ind.title")),s(2),w("disabled",i.clicked()),T("aria-label",_(6,10,"form.button_close")),s(3),h(i.accessoriesExist()?-1:8),s(),h(i.accessoriesExist()?9:-1),s(3),h(i.accessoriesExist()?12:-1),s(2),h(i.accessoriesExist()?-1:14),s(2),h(i.accessoriesExist()?16:-1))},dependencies:[ne,te,ie,ee,Y,Z,J],encapsulation:2})}return t})();export{Fe as a};
@@ -1,4 +1,4 @@
1
- import{Lb as xt,Nc as Ft,Oc as kt,ec as Dt,fc as Ut,nb as _t,xa as qt}from"./chunk-F5MBSCH4.js";import{e as d,g as Ve,h as Lt}from"./chunk-B4AJQJMI.js";var Ht=d((Fn,zt)=>{zt.exports=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}});var T=d(P=>{var st,Ke=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];P.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return t*4+17};P.getSymbolTotalCodewords=function(t){return Ke[t]};P.getBCHDigit=function(n){let t=0;for(;n!==0;)t++,n>>>=1;return t};P.setToSJISFunction=function(t){if(typeof t!="function")throw new Error('"toSJISFunc" is not a valid function.');st=t};P.isKanjiModeEnabled=function(){return typeof st<"u"};P.toSJIS=function(t){return st(t)}});var Q=d(w=>{w.L={bit:1};w.M={bit:0};w.Q={bit:3};w.H={bit:2};function Je(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return w.L;case"m":case"medium":return w.M;case"q":case"quartile":return w.Q;case"h":case"high":return w.H;default:throw new Error("Unknown EC Level: "+n)}}w.isValid=function(t){return t&&typeof t.bit<"u"&&t.bit>=0&&t.bit<4};w.from=function(t,e){if(w.isValid(t))return t;try{return Je(t)}catch{return e}}});var Jt=d((Hn,Kt)=>{function Vt(){this.buffer=[],this.length=0}Vt.prototype={get:function(n){let t=Math.floor(n/8);return(this.buffer[t]>>>7-n%8&1)===1},put:function(n,t){for(let e=0;e<t;e++)this.putBit((n>>>t-e-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(n){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),n&&(this.buffer[t]|=128>>>this.length%8),this.length++}};Kt.exports=Vt});var Yt=d((Vn,Ot)=>{function k(n){if(!n||n<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=n,this.data=new Uint8Array(n*n),this.reservedBit=new Uint8Array(n*n)}k.prototype.set=function(n,t,e,r){let o=n*this.size+t;this.data[o]=e,r&&(this.reservedBit[o]=!0)};k.prototype.get=function(n,t){return this.data[n*this.size+t]};k.prototype.xor=function(n,t,e){this.data[n*this.size+t]^=e};k.prototype.isReserved=function(n,t){return this.reservedBit[n*this.size+t]};Ot.exports=k});var Qt=d(v=>{var Oe=T().getSymbolSize;v.getRowColCoords=function(t){if(t===1)return[];let e=Math.floor(t/7)+2,r=Oe(t),o=r===145?26:Math.ceil((r-13)/(2*e-2))*2,i=[r-7];for(let s=1;s<e-1;s++)i[s]=i[s-1]-o;return i.push(6),i.reverse()};v.getPositions=function(t){let e=[],r=v.getRowColCoords(t),o=r.length;for(let i=0;i<o;i++)for(let s=0;s<o;s++)i===0&&s===0||i===0&&s===o-1||i===o-1&&s===0||e.push([r[i],r[s]]);return e}});var Gt=d(jt=>{var Ye=T().getSymbolSize,vt=7;jt.getPositions=function(t){let e=Ye(t);return[[0,0],[e-vt,0],[0,e-vt]]}});var $t=d(g=>{g.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var b={N1:3,N2:3,N3:40,N4:10};g.isValid=function(t){return t!=null&&t!==""&&!isNaN(t)&&t>=0&&t<=7};g.from=function(t){return g.isValid(t)?parseInt(t,10):void 0};g.getPenaltyN1=function(t){let e=t.size,r=0,o=0,i=0,s=null,u=null;for(let c=0;c<e;c++){o=i=0,s=u=null;for(let l=0;l<e;l++){let a=t.get(c,l);a===s?o++:(o>=5&&(r+=b.N1+(o-5)),s=a,o=1),a=t.get(l,c),a===u?i++:(i>=5&&(r+=b.N1+(i-5)),u=a,i=1)}o>=5&&(r+=b.N1+(o-5)),i>=5&&(r+=b.N1+(i-5))}return r};g.getPenaltyN2=function(t){let e=t.size,r=0;for(let o=0;o<e-1;o++)for(let i=0;i<e-1;i++){let s=t.get(o,i)+t.get(o,i+1)+t.get(o+1,i)+t.get(o+1,i+1);(s===4||s===0)&&r++}return r*b.N2};g.getPenaltyN3=function(t){let e=t.size,r=0,o=0,i=0;for(let s=0;s<e;s++){o=i=0;for(let u=0;u<e;u++)o=o<<1&2047|t.get(s,u),u>=10&&(o===1488||o===93)&&r++,i=i<<1&2047|t.get(u,s),u>=10&&(i===1488||i===93)&&r++}return r*b.N3};g.getPenaltyN4=function(t){let e=0,r=t.data.length;for(let i=0;i<r;i++)e+=t.data[i];return Math.abs(Math.ceil(e*100/r/5)-10)*b.N4};function Qe(n,t,e){switch(n){case g.Patterns.PATTERN000:return(t+e)%2===0;case g.Patterns.PATTERN001:return t%2===0;case g.Patterns.PATTERN010:return e%3===0;case g.Patterns.PATTERN011:return(t+e)%3===0;case g.Patterns.PATTERN100:return(Math.floor(t/2)+Math.floor(e/3))%2===0;case g.Patterns.PATTERN101:return t*e%2+t*e%3===0;case g.Patterns.PATTERN110:return(t*e%2+t*e%3)%2===0;case g.Patterns.PATTERN111:return(t*e%3+(t+e)%2)%2===0;default:throw new Error("bad maskPattern:"+n)}}g.applyMask=function(t,e){let r=e.size;for(let o=0;o<r;o++)for(let i=0;i<r;i++)e.isReserved(i,o)||e.xor(i,o,Qe(t,i,o))};g.getBestMask=function(t,e){let r=Object.keys(g.Patterns).length,o=0,i=1/0;for(let s=0;s<r;s++){e(s),g.applyMask(s,t);let u=g.getPenaltyN1(t)+g.getPenaltyN2(t)+g.getPenaltyN3(t)+g.getPenaltyN4(t);g.applyMask(s,t),u<i&&(i=u,o=s)}return o}});var ct=d(ut=>{var I=Q(),j=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],G=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];ut.getBlocksCount=function(t,e){switch(e){case I.L:return j[(t-1)*4+0];case I.M:return j[(t-1)*4+1];case I.Q:return j[(t-1)*4+2];case I.H:return j[(t-1)*4+3];default:return}};ut.getTotalCodewordsCount=function(t,e){switch(e){case I.L:return G[(t-1)*4+0];case I.M:return G[(t-1)*4+1];case I.Q:return G[(t-1)*4+2];case I.H:return G[(t-1)*4+3];default:return}}});var Wt=d(W=>{var z=new Uint8Array(512),$=new Uint8Array(256);(function(){let t=1;for(let e=0;e<255;e++)z[e]=t,$[t]=e,t<<=1,t&256&&(t^=285);for(let e=255;e<512;e++)z[e]=z[e-255]})();W.log=function(t){if(t<1)throw new Error("log("+t+")");return $[t]};W.exp=function(t){return z[t]};W.mul=function(t,e){return t===0||e===0?0:z[$[t]+$[e]]}});var Zt=d(H=>{var lt=Wt();H.mul=function(t,e){let r=new Uint8Array(t.length+e.length-1);for(let o=0;o<t.length;o++)for(let i=0;i<e.length;i++)r[o+i]^=lt.mul(t[o],e[i]);return r};H.mod=function(t,e){let r=new Uint8Array(t);for(;r.length-e.length>=0;){let o=r[0];for(let s=0;s<e.length;s++)r[s]^=lt.mul(e[s],o);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r};H.generateECPolynomial=function(t){let e=new Uint8Array([1]);for(let r=0;r<t;r++)e=H.mul(e,new Uint8Array([1,lt.exp(r)]));return e}});var ee=d((jn,te)=>{var Xt=Zt();function at(n){this.genPoly=void 0,this.degree=n,this.degree&&this.initialize(this.degree)}at.prototype.initialize=function(t){this.degree=t,this.genPoly=Xt.generateECPolynomial(this.degree)};at.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");let e=new Uint8Array(t.length+this.degree);e.set(t);let r=Xt.mod(e,this.genPoly),o=this.degree-r.length;if(o>0){let i=new Uint8Array(this.degree);return i.set(r,o),i}return r};te.exports=at});var ft=d(ne=>{ne.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}});var dt=d(B=>{var re="[0-9]+",ve="[A-Z $%*+\\-./:]+",V="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";V=V.replace(/u/g,"\\u");var je="(?:(?![A-Z0-9 $%*+\\-./:]|"+V+`)(?:.|[\r
1
+ import{Lb as xt,Nc as Ft,Oc as kt,ec as Dt,fc as Ut,nb as _t,xa as qt}from"./chunk-JJ5CEM72.js";import{e as d,g as Ve,h as Lt}from"./chunk-VJN6YUS2.js";var Ht=d((Fn,zt)=>{zt.exports=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}});var T=d(P=>{var st,Ke=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];P.getSymbolSize=function(t){if(!t)throw new Error('"version" cannot be null or undefined');if(t<1||t>40)throw new Error('"version" should be in range from 1 to 40');return t*4+17};P.getSymbolTotalCodewords=function(t){return Ke[t]};P.getBCHDigit=function(n){let t=0;for(;n!==0;)t++,n>>>=1;return t};P.setToSJISFunction=function(t){if(typeof t!="function")throw new Error('"toSJISFunc" is not a valid function.');st=t};P.isKanjiModeEnabled=function(){return typeof st<"u"};P.toSJIS=function(t){return st(t)}});var Q=d(w=>{w.L={bit:1};w.M={bit:0};w.Q={bit:3};w.H={bit:2};function Je(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"l":case"low":return w.L;case"m":case"medium":return w.M;case"q":case"quartile":return w.Q;case"h":case"high":return w.H;default:throw new Error("Unknown EC Level: "+n)}}w.isValid=function(t){return t&&typeof t.bit<"u"&&t.bit>=0&&t.bit<4};w.from=function(t,e){if(w.isValid(t))return t;try{return Je(t)}catch{return e}}});var Jt=d((Hn,Kt)=>{function Vt(){this.buffer=[],this.length=0}Vt.prototype={get:function(n){let t=Math.floor(n/8);return(this.buffer[t]>>>7-n%8&1)===1},put:function(n,t){for(let e=0;e<t;e++)this.putBit((n>>>t-e-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(n){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),n&&(this.buffer[t]|=128>>>this.length%8),this.length++}};Kt.exports=Vt});var Yt=d((Vn,Ot)=>{function k(n){if(!n||n<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=n,this.data=new Uint8Array(n*n),this.reservedBit=new Uint8Array(n*n)}k.prototype.set=function(n,t,e,r){let o=n*this.size+t;this.data[o]=e,r&&(this.reservedBit[o]=!0)};k.prototype.get=function(n,t){return this.data[n*this.size+t]};k.prototype.xor=function(n,t,e){this.data[n*this.size+t]^=e};k.prototype.isReserved=function(n,t){return this.reservedBit[n*this.size+t]};Ot.exports=k});var Qt=d(v=>{var Oe=T().getSymbolSize;v.getRowColCoords=function(t){if(t===1)return[];let e=Math.floor(t/7)+2,r=Oe(t),o=r===145?26:Math.ceil((r-13)/(2*e-2))*2,i=[r-7];for(let s=1;s<e-1;s++)i[s]=i[s-1]-o;return i.push(6),i.reverse()};v.getPositions=function(t){let e=[],r=v.getRowColCoords(t),o=r.length;for(let i=0;i<o;i++)for(let s=0;s<o;s++)i===0&&s===0||i===0&&s===o-1||i===o-1&&s===0||e.push([r[i],r[s]]);return e}});var Gt=d(jt=>{var Ye=T().getSymbolSize,vt=7;jt.getPositions=function(t){let e=Ye(t);return[[0,0],[e-vt,0],[0,e-vt]]}});var $t=d(g=>{g.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var b={N1:3,N2:3,N3:40,N4:10};g.isValid=function(t){return t!=null&&t!==""&&!isNaN(t)&&t>=0&&t<=7};g.from=function(t){return g.isValid(t)?parseInt(t,10):void 0};g.getPenaltyN1=function(t){let e=t.size,r=0,o=0,i=0,s=null,u=null;for(let c=0;c<e;c++){o=i=0,s=u=null;for(let l=0;l<e;l++){let a=t.get(c,l);a===s?o++:(o>=5&&(r+=b.N1+(o-5)),s=a,o=1),a=t.get(l,c),a===u?i++:(i>=5&&(r+=b.N1+(i-5)),u=a,i=1)}o>=5&&(r+=b.N1+(o-5)),i>=5&&(r+=b.N1+(i-5))}return r};g.getPenaltyN2=function(t){let e=t.size,r=0;for(let o=0;o<e-1;o++)for(let i=0;i<e-1;i++){let s=t.get(o,i)+t.get(o,i+1)+t.get(o+1,i)+t.get(o+1,i+1);(s===4||s===0)&&r++}return r*b.N2};g.getPenaltyN3=function(t){let e=t.size,r=0,o=0,i=0;for(let s=0;s<e;s++){o=i=0;for(let u=0;u<e;u++)o=o<<1&2047|t.get(s,u),u>=10&&(o===1488||o===93)&&r++,i=i<<1&2047|t.get(u,s),u>=10&&(i===1488||i===93)&&r++}return r*b.N3};g.getPenaltyN4=function(t){let e=0,r=t.data.length;for(let i=0;i<r;i++)e+=t.data[i];return Math.abs(Math.ceil(e*100/r/5)-10)*b.N4};function Qe(n,t,e){switch(n){case g.Patterns.PATTERN000:return(t+e)%2===0;case g.Patterns.PATTERN001:return t%2===0;case g.Patterns.PATTERN010:return e%3===0;case g.Patterns.PATTERN011:return(t+e)%3===0;case g.Patterns.PATTERN100:return(Math.floor(t/2)+Math.floor(e/3))%2===0;case g.Patterns.PATTERN101:return t*e%2+t*e%3===0;case g.Patterns.PATTERN110:return(t*e%2+t*e%3)%2===0;case g.Patterns.PATTERN111:return(t*e%3+(t+e)%2)%2===0;default:throw new Error("bad maskPattern:"+n)}}g.applyMask=function(t,e){let r=e.size;for(let o=0;o<r;o++)for(let i=0;i<r;i++)e.isReserved(i,o)||e.xor(i,o,Qe(t,i,o))};g.getBestMask=function(t,e){let r=Object.keys(g.Patterns).length,o=0,i=1/0;for(let s=0;s<r;s++){e(s),g.applyMask(s,t);let u=g.getPenaltyN1(t)+g.getPenaltyN2(t)+g.getPenaltyN3(t)+g.getPenaltyN4(t);g.applyMask(s,t),u<i&&(i=u,o=s)}return o}});var ct=d(ut=>{var I=Q(),j=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],G=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];ut.getBlocksCount=function(t,e){switch(e){case I.L:return j[(t-1)*4+0];case I.M:return j[(t-1)*4+1];case I.Q:return j[(t-1)*4+2];case I.H:return j[(t-1)*4+3];default:return}};ut.getTotalCodewordsCount=function(t,e){switch(e){case I.L:return G[(t-1)*4+0];case I.M:return G[(t-1)*4+1];case I.Q:return G[(t-1)*4+2];case I.H:return G[(t-1)*4+3];default:return}}});var Wt=d(W=>{var z=new Uint8Array(512),$=new Uint8Array(256);(function(){let t=1;for(let e=0;e<255;e++)z[e]=t,$[t]=e,t<<=1,t&256&&(t^=285);for(let e=255;e<512;e++)z[e]=z[e-255]})();W.log=function(t){if(t<1)throw new Error("log("+t+")");return $[t]};W.exp=function(t){return z[t]};W.mul=function(t,e){return t===0||e===0?0:z[$[t]+$[e]]}});var Zt=d(H=>{var lt=Wt();H.mul=function(t,e){let r=new Uint8Array(t.length+e.length-1);for(let o=0;o<t.length;o++)for(let i=0;i<e.length;i++)r[o+i]^=lt.mul(t[o],e[i]);return r};H.mod=function(t,e){let r=new Uint8Array(t);for(;r.length-e.length>=0;){let o=r[0];for(let s=0;s<e.length;s++)r[s]^=lt.mul(e[s],o);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r};H.generateECPolynomial=function(t){let e=new Uint8Array([1]);for(let r=0;r<t;r++)e=H.mul(e,new Uint8Array([1,lt.exp(r)]));return e}});var ee=d((jn,te)=>{var Xt=Zt();function at(n){this.genPoly=void 0,this.degree=n,this.degree&&this.initialize(this.degree)}at.prototype.initialize=function(t){this.degree=t,this.genPoly=Xt.generateECPolynomial(this.degree)};at.prototype.encode=function(t){if(!this.genPoly)throw new Error("Encoder not initialized");let e=new Uint8Array(t.length+this.degree);e.set(t);let r=Xt.mod(e,this.genPoly),o=this.degree-r.length;if(o>0){let i=new Uint8Array(this.degree);return i.set(r,o),i}return r};te.exports=at});var ft=d(ne=>{ne.isValid=function(t){return!isNaN(t)&&t>=1&&t<=40}});var dt=d(B=>{var re="[0-9]+",ve="[A-Z $%*+\\-./:]+",V="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";V=V.replace(/u/g,"\\u");var je="(?:(?![A-Z0-9 $%*+\\-./:]|"+V+`)(?:.|[\r
2
2
  ]))+`;B.KANJI=new RegExp(V,"g");B.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g");B.BYTE=new RegExp(je,"g");B.NUMERIC=new RegExp(re,"g");B.ALPHANUMERIC=new RegExp(ve,"g");var Ge=new RegExp("^"+V+"$"),$e=new RegExp("^"+re+"$"),We=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");B.testKanji=function(t){return Ge.test(t)};B.testNumeric=function(t){return $e.test(t)};B.testAlphanumeric=function(t){return We.test(t)}});var M=d(p=>{var Ze=ft(),gt=dt();p.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]};p.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]};p.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]};p.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]};p.MIXED={bit:-1};p.getCharCountIndicator=function(t,e){if(!t.ccBits)throw new Error("Invalid mode: "+t);if(!Ze.isValid(e))throw new Error("Invalid version: "+e);return e>=1&&e<10?t.ccBits[0]:e<27?t.ccBits[1]:t.ccBits[2]};p.getBestModeForData=function(t){return gt.testNumeric(t)?p.NUMERIC:gt.testAlphanumeric(t)?p.ALPHANUMERIC:gt.testKanji(t)?p.KANJI:p.BYTE};p.toString=function(t){if(t&&t.id)return t.id;throw new Error("Invalid mode")};p.isValid=function(t){return t&&t.bit&&t.ccBits};function Xe(n){if(typeof n!="string")throw new Error("Param is not a string");switch(n.toLowerCase()){case"numeric":return p.NUMERIC;case"alphanumeric":return p.ALPHANUMERIC;case"kanji":return p.KANJI;case"byte":return p.BYTE;default:throw new Error("Unknown mode: "+n)}}p.from=function(t,e){if(p.isValid(t))return t;try{return Xe(t)}catch{return e}}});var ce=d(R=>{var Z=T(),tn=ct(),oe=Q(),S=M(),ht=ft(),se=7973,ie=Z.getBCHDigit(se);function en(n,t,e){for(let r=1;r<=40;r++)if(t<=R.getCapacity(r,e,n))return r}function ue(n,t){return S.getCharCountIndicator(n,t)+4}function nn(n,t){let e=0;return n.forEach(function(r){let o=ue(r.mode,t);e+=o+r.getBitsLength()}),e}function rn(n,t){for(let e=1;e<=40;e++)if(nn(n,e)<=R.getCapacity(e,t,S.MIXED))return e}R.from=function(t,e){return ht.isValid(t)?parseInt(t,10):e};R.getCapacity=function(t,e,r){if(!ht.isValid(t))throw new Error("Invalid QR Code version");typeof r>"u"&&(r=S.BYTE);let o=Z.getSymbolTotalCodewords(t),i=tn.getTotalCodewordsCount(t,e),s=(o-i)*8;if(r===S.MIXED)return s;let u=s-ue(r,t);switch(r){case S.NUMERIC:return Math.floor(u/10*3);case S.ALPHANUMERIC:return Math.floor(u/11*2);case S.KANJI:return Math.floor(u/13);case S.BYTE:default:return Math.floor(u/8)}};R.getBestVersionForData=function(t,e){let r,o=oe.from(e,oe.M);if(Array.isArray(t)){if(t.length>1)return rn(t,o);if(t.length===0)return 1;r=t[0]}else r=t;return en(r.mode,r.getLength(),o)};R.getEncodedBits=function(t){if(!ht.isValid(t)||t<7)throw new Error("Invalid QR Code version");let e=t<<12;for(;Z.getBCHDigit(e)-ie>=0;)e^=se<<Z.getBCHDigit(e)-ie;return t<<12|e}});var de=d(fe=>{var pt=T(),ae=1335,on=21522,le=pt.getBCHDigit(ae);fe.getEncodedBits=function(t,e){let r=t.bit<<3|e,o=r<<10;for(;pt.getBCHDigit(o)-le>=0;)o^=ae<<pt.getBCHDigit(o)-le;return(r<<10|o)^on}});var he=d((tr,ge)=>{var sn=M();function _(n){this.mode=sn.NUMERIC,this.data=n.toString()}_.getBitsLength=function(t){return 10*Math.floor(t/3)+(t%3?t%3*3+1:0)};_.prototype.getLength=function(){return this.data.length};_.prototype.getBitsLength=function(){return _.getBitsLength(this.data.length)};_.prototype.write=function(t){let e,r,o;for(e=0;e+3<=this.data.length;e+=3)r=this.data.substr(e,3),o=parseInt(r,10),t.put(o,10);let i=this.data.length-e;i>0&&(r=this.data.substr(e),o=parseInt(r,10),t.put(o,i*3+1))};ge.exports=_});var me=d((er,pe)=>{var un=M(),mt=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function x(n){this.mode=un.ALPHANUMERIC,this.data=n}x.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)};x.prototype.getLength=function(){return this.data.length};x.prototype.getBitsLength=function(){return x.getBitsLength(this.data.length)};x.prototype.write=function(t){let e;for(e=0;e+2<=this.data.length;e+=2){let r=mt.indexOf(this.data[e])*45;r+=mt.indexOf(this.data[e+1]),t.put(r,11)}this.data.length%2&&t.put(mt.indexOf(this.data[e]),6)};pe.exports=x});var ye=d((nr,we)=>{var cn=M();function D(n){this.mode=cn.BYTE,typeof n=="string"?this.data=new TextEncoder().encode(n):this.data=new Uint8Array(n)}D.getBitsLength=function(t){return t*8};D.prototype.getLength=function(){return this.data.length};D.prototype.getBitsLength=function(){return D.getBitsLength(this.data.length)};D.prototype.write=function(n){for(let t=0,e=this.data.length;t<e;t++)n.put(this.data[t],8)};we.exports=D});var Ce=d((rr,Ee)=>{var ln=M(),an=T();function U(n){this.mode=ln.KANJI,this.data=n}U.getBitsLength=function(t){return t*13};U.prototype.getLength=function(){return this.data.length};U.prototype.getBitsLength=function(){return U.getBitsLength(this.data.length)};U.prototype.write=function(n){let t;for(t=0;t<this.data.length;t++){let e=an.toSJIS(this.data[t]);if(e>=33088&&e<=40956)e-=33088;else if(e>=57408&&e<=60351)e-=49472;else throw new Error("Invalid SJIS character: "+this.data[t]+`
3
3
  Make sure your charset is UTF-8`);e=(e>>>8&255)*192+(e&255),n.put(e,13)}};Ee.exports=U});var Be=d((or,wt)=>{"use strict";var K={single_source_shortest_paths:function(n,t,e){var r={},o={};o[t]=0;var i=K.PriorityQueue.make();i.push(t,0);for(var s,u,c,l,a,m,h,y,A;!i.empty();){s=i.pop(),u=s.value,l=s.cost,a=n[u]||{};for(c in a)a.hasOwnProperty(c)&&(m=a[c],h=l+m,y=o[c],A=typeof o[c]>"u",(A||y>h)&&(o[c]=h,i.push(c,h),r[c]=u))}if(typeof e<"u"&&typeof o[e]>"u"){var N=["Could not find a path from ",t," to ",e,"."].join("");throw new Error(N)}return r},extract_shortest_path_from_predecessor_list:function(n,t){for(var e=[],r=t,o;r;)e.push(r),o=n[r],r=n[r];return e.reverse(),e},find_path:function(n,t,e){var r=K.single_source_shortest_paths(n,t,e);return K.extract_shortest_path_from_predecessor_list(r,e)},PriorityQueue:{make:function(n){var t=K.PriorityQueue,e={},r;n=n||{};for(r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e.queue=[],e.sorter=n.sorter||t.default_sorter,e},default_sorter:function(n,t){return n.cost-t.cost},push:function(n,t){var e={value:n,cost:t};this.queue.push(e),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};typeof wt<"u"&&(wt.exports=K)});var be=d(F=>{var f=M(),Te=he(),Ie=me(),Me=ye(),Se=Ce(),J=dt(),X=T(),fn=Be();function Ae(n){return unescape(encodeURIComponent(n)).length}function O(n,t,e){let r=[],o;for(;(o=n.exec(e))!==null;)r.push({data:o[0],index:o.index,mode:t,length:o[0].length});return r}function Pe(n){let t=O(J.NUMERIC,f.NUMERIC,n),e=O(J.ALPHANUMERIC,f.ALPHANUMERIC,n),r,o;return X.isKanjiModeEnabled()?(r=O(J.BYTE,f.BYTE,n),o=O(J.KANJI,f.KANJI,n)):(r=O(J.BYTE_KANJI,f.BYTE,n),o=[]),t.concat(e,r,o).sort(function(s,u){return s.index-u.index}).map(function(s){return{data:s.data,mode:s.mode,length:s.length}})}function yt(n,t){switch(t){case f.NUMERIC:return Te.getBitsLength(n);case f.ALPHANUMERIC:return Ie.getBitsLength(n);case f.KANJI:return Se.getBitsLength(n);case f.BYTE:return Me.getBitsLength(n)}}function dn(n){return n.reduce(function(t,e){let r=t.length-1>=0?t[t.length-1]:null;return r&&r.mode===e.mode?(t[t.length-1].data+=e.data,t):(t.push(e),t)},[])}function gn(n){let t=[];for(let e=0;e<n.length;e++){let r=n[e];switch(r.mode){case f.NUMERIC:t.push([r,{data:r.data,mode:f.ALPHANUMERIC,length:r.length},{data:r.data,mode:f.BYTE,length:r.length}]);break;case f.ALPHANUMERIC:t.push([r,{data:r.data,mode:f.BYTE,length:r.length}]);break;case f.KANJI:t.push([r,{data:r.data,mode:f.BYTE,length:Ae(r.data)}]);break;case f.BYTE:t.push([{data:r.data,mode:f.BYTE,length:Ae(r.data)}])}}return t}function hn(n,t){let e={},r={start:{}},o=["start"];for(let i=0;i<n.length;i++){let s=n[i],u=[];for(let c=0;c<s.length;c++){let l=s[c],a=""+i+c;u.push(a),e[a]={node:l,lastCount:0},r[a]={};for(let m=0;m<o.length;m++){let h=o[m];e[h]&&e[h].node.mode===l.mode?(r[h][a]=yt(e[h].lastCount+l.length,l.mode)-yt(e[h].lastCount,l.mode),e[h].lastCount+=l.length):(e[h]&&(e[h].lastCount=l.length),r[h][a]=yt(l.length,l.mode)+4+f.getCharCountIndicator(l.mode,t))}}o=u}for(let i=0;i<o.length;i++)r[o[i]].end=0;return{map:r,table:e}}function Ne(n,t){let e,r=f.getBestModeForData(n);if(e=f.from(t,r),e!==f.BYTE&&e.bit<r.bit)throw new Error('"'+n+'" cannot be encoded with mode '+f.toString(e)+`.
4
4
  Suggested mode is: `+f.toString(r));switch(e===f.KANJI&&!X.isKanjiModeEnabled()&&(e=f.BYTE),e){case f.NUMERIC:return new Te(n);case f.ALPHANUMERIC:return new Ie(n);case f.KANJI:return new Se(n);case f.BYTE:return new Me(n)}}F.fromArray=function(t){return t.reduce(function(e,r){return typeof r=="string"?e.push(Ne(r,null)):r.data&&e.push(Ne(r.data,r.mode)),e},[])};F.fromString=function(t,e){let r=Pe(t,X.isKanjiModeEnabled()),o=gn(r),i=hn(o,e),s=fn.find_path(i.map,"start","end"),u=[];for(let c=1;c<s.length-1;c++)u.push(i.table[s[c]].node);return F.fromArray(dn(u))};F.rawSplit=function(t){return F.fromArray(Pe(t,X.isKanjiModeEnabled()))}});var Le=d(Re=>{var et=T(),Et=Q(),pn=Jt(),mn=Yt(),wn=Qt(),yn=Gt(),At=$t(),Nt=ct(),En=ee(),tt=ce(),Cn=de(),Bn=M(),Ct=be();function An(n,t){let e=n.size,r=yn.getPositions(t);for(let o=0;o<r.length;o++){let i=r[o][0],s=r[o][1];for(let u=-1;u<=7;u++)if(!(i+u<=-1||e<=i+u))for(let c=-1;c<=7;c++)s+c<=-1||e<=s+c||(u>=0&&u<=6&&(c===0||c===6)||c>=0&&c<=6&&(u===0||u===6)||u>=2&&u<=4&&c>=2&&c<=4?n.set(i+u,s+c,!0,!0):n.set(i+u,s+c,!1,!0))}}function Nn(n){let t=n.size;for(let e=8;e<t-8;e++){let r=e%2===0;n.set(e,6,r,!0),n.set(6,e,r,!0)}}function Tn(n,t){let e=wn.getPositions(t);for(let r=0;r<e.length;r++){let o=e[r][0],i=e[r][1];for(let s=-2;s<=2;s++)for(let u=-2;u<=2;u++)s===-2||s===2||u===-2||u===2||s===0&&u===0?n.set(o+s,i+u,!0,!0):n.set(o+s,i+u,!1,!0)}}function In(n,t){let e=n.size,r=tt.getEncodedBits(t),o,i,s;for(let u=0;u<18;u++)o=Math.floor(u/3),i=u%3+e-8-3,s=(r>>u&1)===1,n.set(o,i,s,!0),n.set(i,o,s,!0)}function Bt(n,t,e){let r=n.size,o=Cn.getEncodedBits(t,e),i,s;for(i=0;i<15;i++)s=(o>>i&1)===1,i<6?n.set(i,8,s,!0):i<8?n.set(i+1,8,s,!0):n.set(r-15+i,8,s,!0),i<8?n.set(8,r-i-1,s,!0):i<9?n.set(8,15-i-1+1,s,!0):n.set(8,15-i-1,s,!0);n.set(r-8,8,1,!0)}function Mn(n,t){let e=n.size,r=-1,o=e-1,i=7,s=0;for(let u=e-1;u>0;u-=2)for(u===6&&u--;;){for(let c=0;c<2;c++)if(!n.isReserved(o,u-c)){let l=!1;s<t.length&&(l=(t[s]>>>i&1)===1),n.set(o,u-c,l),i--,i===-1&&(s++,i=7)}if(o+=r,o<0||e<=o){o-=r,r=-r;break}}}function Sn(n,t,e){let r=new pn;e.forEach(function(c){r.put(c.mode.bit,4),r.put(c.getLength(),Bn.getCharCountIndicator(c.mode,n)),c.write(r)});let o=et.getSymbolTotalCodewords(n),i=Nt.getTotalCodewordsCount(n,t),s=(o-i)*8;for(r.getLengthInBits()+4<=s&&r.put(0,4);r.getLengthInBits()%8!==0;)r.putBit(0);let u=(s-r.getLengthInBits())/8;for(let c=0;c<u;c++)r.put(c%2?17:236,8);return Pn(r,n,t)}function Pn(n,t,e){let r=et.getSymbolTotalCodewords(t),o=Nt.getTotalCodewordsCount(t,e),i=r-o,s=Nt.getBlocksCount(t,e),u=r%s,c=s-u,l=Math.floor(r/s),a=Math.floor(i/s),m=a+1,h=l-a,y=new En(h),A=0,N=new Array(s),bt=new Array(s),rt=0,He=new Uint8Array(n.buffer);for(let q=0;q<s;q++){let it=q<c?a:m;N[q]=He.slice(A,A+it),bt[q]=y.encode(N[q]),A+=it,rt=Math.max(rt,it)}let ot=new Uint8Array(r),Rt=0,E,C;for(E=0;E<rt;E++)for(C=0;C<s;C++)E<N[C].length&&(ot[Rt++]=N[C][E]);for(E=0;E<h;E++)for(C=0;C<s;C++)ot[Rt++]=bt[C][E];return ot}function bn(n,t,e,r){let o;if(Array.isArray(n))o=Ct.fromArray(n);else if(typeof n=="string"){let l=t;if(!l){let a=Ct.rawSplit(n);l=tt.getBestVersionForData(a,e)}o=Ct.fromString(n,l||40)}else throw new Error("Invalid data");let i=tt.getBestVersionForData(o,e);if(!i)throw new Error("The amount of data is too big to be stored in a QR Code");if(!t)t=i;else if(t<i)throw new Error(`
@@ -1 +1 @@
1
- import{a as Le,c as le}from"./chunk-3N3RJBS3.js";import"./chunk-4OEYZBSF.js";import"./chunk-RMDVYT7X.js";import{a as R}from"./chunk-CP2QJXVO.js";import{a as Ne}from"./chunk-VCWYDWAJ.js";import{a as Oe}from"./chunk-UHG23NUX.js";import"./chunk-XUP37AHQ.js";import"./chunk-BMOLDRJ3.js";import{a as Ae}from"./chunk-6U3YEWBO.js";import"./chunk-H7F7H5MW.js";import"./chunk-X66UFY6K.js";import{a as Re}from"./chunk-3LY5FRVV.js";import{a as De,c as z,f as $e,j as oe}from"./chunk-HH2FDI7W.js";import"./chunk-5A2G7KDR.js";import"./chunk-YDYBCBXX.js";import"./chunk-F2HGBWZZ.js";import"./chunk-3YXAYQFV.js";import"./chunk-XTQWZF3J.js";import"./chunk-V45KU64F.js";import{a as te}from"./chunk-H2UKSDHZ.js";import"./chunk-DCBZUBGA.js";import"./chunk-QSXJHCTT.js";import"./chunk-Q5X66PGK.js";import"./chunk-FLCYKKEZ.js";import"./chunk-3NHWMCB7.js";import"./chunk-4BX7KSQH.js";import"./chunk-J56ZFHCF.js";import"./chunk-3BODPB3K.js";import"./chunk-AHIRH7NQ.js";import"./chunk-LR2GN2Y2.js";import"./chunk-NTQWCIIF.js";import"./chunk-E55EDX5Y.js";import"./chunk-PTJ3UZME.js";import"./chunk-TR77UVYU.js";import"./chunk-DJGU4NTG.js";import"./chunk-YCASP3MF.js";import{a as je,b as ze,c as qe,d as Ue,e as Fe}from"./chunk-HMF2EYMY.js";import"./chunk-FH62LNHX.js";import"./chunk-ZCGZM7LU.js";import"./chunk-NYEZF6Y3.js";import{a as ae}from"./chunk-OTMZDL7S.js";import{a as He}from"./chunk-UVWXUC5Y.js";import{s as H,t as ne}from"./chunk-RDHUW73W.js";import{b as xe,e as ye}from"./chunk-CAY6MDP6.js";import{a as de}from"./chunk-C64AHVUO.js";import{b as ie}from"./chunk-664C4LX2.js";import{C as Me,D as Ve,c as Pe,e as we,f as Se,g as Be,j as Ee,m as ke,r as Te,s as Ie}from"./chunk-JPAZUSRO.js";import{b as ee}from"./chunk-MAJDTCMY.js";import{C as F,D as M,F as Y,I as Z,h as ve}from"./chunk-VWUZDCBZ.js";import{Ab as g,Cb as Q,Db as W,Dc as a,Eb as J,Ec as l,Fb as S,Fc as N,Gb as r,Hb as s,Ib as c,Jb as y,Kb as P,Kc as Ce,Lb as A,Nc as se,Oc as be,Rb as w,Sb as U,Ua as $,Va as O,Wa as ge,Xb as f,Yb as L,Za as o,Zb as m,aa as h,ea as ce,ec as _e,fc as fe,ga as v,ha as x,hc as K,jc as T,kc as p,lc as C,ma as me,mb as q,mc as b,n as pe,nb as I,sa as E,uc as re,va as ue,xc as X,yb as B,yc as V,zb as u,zc as he}from"./chunk-F5MBSCH4.js";import"./chunk-DUPASTS2.js";import"./chunk-DOJGHPYJ.js";import"./chunk-QGJKMFM5.js";import"./chunk-Z2RGI4BU.js";import"./chunk-IXMOGLOS.js";import"./chunk-65AW3ZMH.js";import{h as D}from"./chunk-B4AJQJMI.js";var Ye=t=>({pluginName:t}),Ze=(t,d)=>({setting:t,value:d});function ei(t,d){t&1&&(r(0,"li"),p(1),a(2,"translate"),s(),r(3,"li"),p(4),a(5,"translate"),s()),t&2&&(o(),C(l(2,2,"plugins.manage.confirm_disable_platform_1")),o(3),C(l(5,4,"plugins.manage.confirm_disable_platform_2")))}function ii(t,d){t&1&&(r(0,"li"),p(1),a(2,"translate"),s(),r(3,"li"),p(4),a(5,"translate"),s()),t&2&&(o(),C(l(2,2,"plugins.manage.confirm_disable_accessory_1")),o(3),C(l(5,4,"plugins.manage.confirm_disable_accessory_2")))}function ti(t,d){if(t&1&&(r(0,"ul",15),c(1,"li",16),a(2,"translate"),r(3,"ul",17),u(4,ei,6,6)(5,ii,6,6),s()()),t&2){let e=m(2);o(),S("innerHtml",N(2,2,"plugins.manage.confirm_disable_setting",V(5,Ze,e.keepOrphansName,e.keepOrphansValue)),$),o(3),g(e.keepOrphans?4:5)}}function ni(t,d){t&1&&(r(0,"ul",15)(1,"li"),p(2),a(3,"translate"),s(),r(4,"li"),p(5),a(6,"translate"),s()()),t&2&&(o(2),C(l(3,2,"plugins.manage.confirm_disable_accessory_1")),o(3),C(l(6,4,"plugins.manage.confirm_disable_accessory_2")))}function oi(t,d){if(t&1&&u(0,ti,6,8,"ul",15)(1,ni,7,6,"ul",15),t&2){let e=m();g(e.isConfiguredDynamicPlatform?0:1)}}var Ge=(()=>{class t{$activeModal=h(H);$translate=h(F);modalData=h(oe);pluginName=this.modalData.pluginName;isConfigured=this.modalData.isConfigured??!1;isConfiguredDynamicPlatform=this.modalData.isConfiguredDynamicPlatform??!1;keepOrphans=this.modalData.keepOrphans??!1;keepOrphansName=`<code>${this.$translate.instant("settings.startup.keep_accessories")}</code>`;get keepOrphansValue(){return`<code>${this.keepOrphans}</code>`}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:25,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"mb-3","text-center"],[1,"fas","fa-circle-pause","primary-text",2,"font-size","75px"],["type","warning",1,"mb-0",3,"dismissible"],[1,"w-100","text-center","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click"],[1,"mb-3"],[3,"innerHtml"],[1,"mb-1"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),p(3),s(),r(4,"button",3),a(5,"translate"),f("click",function(){return i.dismissModal()}),s()(),r(6,"div",4)(7,"div",5),c(8,"i",6),s(),u(9,oi,2,1),r(10,"ngb-alert",7)(11,"p",8),p(12),a(13,"translate"),s()()(),r(14,"div",9)(15,"div",10)(16,"button",11),a(17,"translate"),f("click",function(){return i.dismissModal()}),p(18),a(19,"translate"),s()(),c(20,"div",12),r(21,"div",13)(22,"button",14),f("click",function(){return i.closeModal()}),p(23),a(24,"translate"),s()()()()),n&2&&(o(3),C(i.pluginName),o(),B("aria-label",l(5,8,"form.button_close")),o(5),g(i.isConfigured?9:-1),o(),S("dismissible",!1),o(2),b(" ",N(13,10,"plugins.manage.confirm_disable",X(19,Ye,i.pluginName))," "),o(4),B("aria-label",l(17,13,"form.button_close")),o(2),b(" ",l(19,15,"form.button_close")," "),o(5),b(" ",l(24,17,"plugins.manage.disable")," "))},dependencies:[He,M],encapsulation:2})}return t})();var ai=t=>({author:t});function li(t,d){if(t&1&&(y(0,"li",9),A(1,"i",15),y(2,"a",16),p(3),P()()),t&2){let e=d.$implicit,n=m();o(),T(n.getIconClass(e.type)),o(),U("href",e.url,O),o(),C(e.url)}}var Qe=(()=>{class t{$activeModal=h(H);modalData=h(z);plugin=this.modalData.plugin;fundingOptions=E([]);authorName=E("");ngOnInit(){this.initialize()}initialize(){if(!this.plugin||!this.plugin.funding){this.$activeModal.close();return}this.authorName.set(this.plugin.name==="homebridge-config-ui-x"?"oznu":this.plugin.author);let e=this.plugin.funding;if(Array.isArray(e)){let n=e.map(i=>{if(typeof i=="string")return{type:"other",url:i};if(typeof i=="object")return{type:i.type||"other",url:i.url}}).filter(Boolean);this.fundingOptions.set(n)}else typeof e=="string"?this.fundingOptions.set([{type:"other",url:e}]):typeof e=="object"&&e!==null&&this.fundingOptions.set([{type:e.type||"other",url:e.url}])}getIconClass(e){switch(e.toLowerCase()){case"paypal":return"fab fa-paypal";case"github":return"fab fa-github";case"patreon":return"fab fa-patreon";case"kofi":case"ko-fi":return"fas fa-coffee";default:return"fas fa-link"}}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:28,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","pink-text","mb-3"],[1,"fas","fa-heart",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"],[1,"me-2","primary-text","fa-xl"],["target","_blank","rel","noopener noreferrer",1,"text-break-all",3,"href"]],template:function(n,i){n&1&&(y(0,"div",0)(1,"div",1)(2,"h5",2),p(3),a(4,"translate"),P(),y(5,"button",3),a(6,"translate"),L("click",function(){return i.dismissModal()}),P()(),y(7,"div",4)(8,"div",5),A(9,"i",6),P(),y(10,"ul",7)(11,"li"),p(12),a(13,"translate"),P(),y(14,"li"),p(15),a(16,"translate"),P()(),y(17,"ul",8),W(18,li,4,4,"li",9,Q),P()(),y(20,"div",10),A(21,"div",11),y(22,"div",12)(23,"button",13),a(24,"translate"),L("click",function(){return i.dismissModal()}),p(25),a(26,"translate"),P()(),A(27,"div",14),P()()),n&2&&(o(3),C(N(4,6,"plugins.donate.tile_donate_to",X(19,ai,"@"+i.authorName()))),o(2),B("aria-label",l(6,9,"form.button_close")),o(7),C(l(13,11,"plugins.donate.message_1")),o(3),C(l(16,13,"plugins.donate.message_2")),o(3),J(i.fundingOptions()),o(5),B("aria-label",l(24,15,"form.button_close")),o(2),b(" ",l(26,17,"form.button_close")," "))},dependencies:[M],styles:[".text-break-all[_ngcontent-%COMP%]{word-break:break-all}"]})}return t})();var ri=(t,d)=>({"orange-text":t,"grey-text":d}),si=(t,d)=>({"green-text":t,"grey-text":d}),di=(t,d)=>({"purple-text":t,"grey-text":d}),pi=(t,d)=>({scopedLink:t,verifiedLink:d});function ci(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P(),y(6,"p",19),p(7),a(8,"translate"),P()),t&2&&(o(),C(l(2,3,"plugins.manage.scoped_subtitle")),o(3),C(l(5,5,"plugins.manage.scoped_message")),o(3),C(l(8,7,"plugins.manage.verified_message")))}function mi(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P()),t&2&&(o(),C(l(2,2,"plugins.manage.verified_subtitle")),o(3),C(l(5,4,"plugins.manage.verified_message")))}function ui(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P()),t&2&&(o(),C(l(2,2,"plugins.manage.unverified_subtitle")),o(3),C(l(5,4,"plugins.manage.unverified_message")))}function gi(t,d){if(t&1){let e=w();y(0,"button",20),L("click",function(){v(e);let i=m();return x(i.dismissModal())}),p(1),a(2,"translate"),P()}t&2&&(o(),b(" ",l(2,1,"form.button_close")," "))}function _i(t,d){if(t&1){let e=w();y(0,"button",20),L("click",function(){v(e);let i=m();return x(i.dismissModal())}),p(1),a(2,"translate"),P()}t&2&&(o(),b(" ",l(2,1,"form.button_close")," "))}function fi(t,d){if(t&1&&(y(0,"a",17),p(1),a(2,"translate"),A(3,"i",21),P()),t&2){let e=m();U("href",e.plugin.links.homepage||e.plugin.links.npm,O),o(),b(" ",l(2,2,"plugins.button_homepage")," ")}}var We=(()=>{class t{$activeModal=h(H);modalData=h(z);plugin=this.modalData.plugin;iconError=E(!1);pluginIcon=Ce(()=>this.plugin?.icon&&!this.iconError()?this.plugin.icon:this.defaultIcon);defaultIcon="assets/hb-icon.png";linkScoped='<a href="https://github.com/homebridge/plugins/wiki/Scoped-Plugins" target="_blank"><i class="fas fa-external-link-alt primary-text"></i></a>';linkVerified='<a href="https://github.com/homebridge/plugins/wiki/Verified-Plugins" target="_blank"><i class="fas fa-external-link-alt primary-text"></i></a>';handleIconError(){this.iconError.set(!0)}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:32,vars:45,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"],["alt","Plugin Icon",1,"mb-3","plugin-icon-card",3,"error","src"],[1,"mb-1"],[1,"grey-text","mb-0","font-monospace"],[1,"grey-text","mb-1","font-monospace"],[1,"mb-3"],[1,"fas","fa-shield-alt","mb-3",2,"font-size","48px"],[1,"mb-0","grey-text",3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[1,"mb-2"],[1,"mb-1","grey-text"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-external-link-alt"]],template:function(n,i){n&1&&(y(0,"div",0)(1,"div",1)(2,"h5",2),p(3),a(4,"translate"),P(),y(5,"button",3),a(6,"translate"),L("click",function(){return i.dismissModal()}),P()(),y(7,"div",4)(8,"img",5),L("error",function(){return i.handleIconError()}),P(),y(9,"h4",6),p(10),P(),y(11,"p",7),p(12),P(),y(13,"p",8),p(14),P(),y(15,"p",9),p(16),P(),A(17,"i",10)(18,"i",10)(19,"i",10),u(20,ci,9,9),u(21,mi,6,6),u(22,ui,6,6),A(23,"p",11),a(24,"translate"),P(),y(25,"div",12)(26,"div",13),u(27,gi,3,3,"button",14),P(),y(28,"div",15),u(29,_i,3,3,"button",14),P(),y(30,"div",16),u(31,fi,4,4,"a",17),P()()()),n&2&&(o(3),C(l(4,26,"plugins.manage.information")),o(2),B("aria-label",l(6,28,"form.button_close")),o(3),U("src",i.pluginIcon(),O),o(2),C(i.plugin.displayName),o(2),C(i.plugin.name),o(2),b("@",i.plugin.author),o(2),C(i.plugin.description),o(),T(V(33,ri,!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin,i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)),K("opacity",!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?1:.25),o(),T(V(36,si,!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin),i.plugin.isHbScoped||!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin)),K("opacity",!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)?1:.25),o(),T(V(39,di,i.plugin.isHbScoped,!i.plugin.isHbScoped)),K("opacity",i.plugin.isHbScoped?1:.25),o(),g(i.plugin.isHbScoped?20:-1),o(),g(!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)?21:-1),o(),g(!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?22:-1),o(),U("innerHTML",N(24,30,"plugins.manage.more_info",V(42,pi,i.linkScoped,i.linkVerified)),$),o(4),g(i.plugin.links.homepage||i.plugin.links.npm?27:-1),o(2),g(!i.plugin.links.homepage&&!i.plugin.links.npm?29:-1),o(2),g(i.plugin.links.homepage||i.plugin.links.npm?31:-1))},dependencies:[M],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]})}return t})();var hi=(t,d,e)=>({"purple-text":t,"green-text":d,"orange-text":e}),Ci=(t,d)=>({"fa-bridge-circle-exclamation orange-text":t,"fa-bridge-circle-xmark red-text":d});function bi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.checkAndUpdatePlugin())}),c(3,"i",22),s()}t&2&&(S("openDelay",150)("ngbTooltip",l(1,3,"plugins.button_update")),B("aria-label",l(2,5,"plugins.button_update")))}function vi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.switchToScoped())}),c(3,"i",23),s()}t&2&&(S("openDelay",150)("ngbTooltip",l(1,3,"plugins.manage.scoped.switch")),B("aria-label",l(2,5,"plugins.manage.scoped.switch")))}function xi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openSettings())}),c(3,"i",25),s()}t&2&&(S("ngbTooltip",l(1,3,"plugins.button_set_up"))("openDelay",150),B("aria-label",l(2,5,"plugins.button_set_up")))}function yi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openBridgeSettings())}),c(3,"i",26),s()}t&2&&(S("ngbTooltip",l(1,3,"child_bridge.setup"))("openDelay",150),B("aria-label",l(2,5,"child_bridge.setup")))}function Pi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openBridgeSettings())}),c(3,"i",27),s()}t&2&&(S("ngbTooltip",l(1,3,"child_bridge.bridge_connect"))("openDelay",150),B("aria-label",l(2,5,"child_bridge.bridge_connect")))}function wi(t,d){if(t&1&&c(0,"i",28),t&2){let e=m(2);T(V(2,Ci,e.childBridgeStatus()==="pending",e.childBridgeStatus()==="down"))}}function Si(t,d){if(t&1&&(r(0,"div",9),u(1,bi,4,7,"a",17),u(2,vi,4,7,"a",17),u(3,xi,4,7,"a",18),u(4,yi,4,7,"a",18),u(5,Pi,4,7,"a",18),c(6,"i",19),u(7,wi,1,5,"i",20),s()),t&2){let e,n=m();o(),g(n.plugin().installedVersion&&n.plugin().updateAvailable&&!n.childBridgeRestartInProgress()?1:-1),o(),g(n.plugin().installedVersion&&((e=n.plugin().newHbScope)==null?null:e.switch)===n.plugin().installedVersion&&!n.childBridgeRestartInProgress()?2:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&!n.plugin().isConfigured&&!n.childBridgeRestartInProgress()&&!n.plugin().disabled?3:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&!n.plugin().hasChildBridges&&!n.plugin().disabled&&n.plugin().recommendChildBridge&&!n.childBridgeRestartInProgress()?4:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&n.plugin().hasChildBridges&&!n.childBridgeRestartInProgress()&&n.plugin().hasChildBridgesUnpaired&&n.childBridgeStatus()==="ok"&&!n.plugin().disabled?5:-1),o(),S("hidden",!n.childBridgeRestartInProgress()),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&n.plugin().hasChildBridges&&!n.childBridgeRestartInProgress()&&!n.plugin().hasChildBridgesUnpaired&&n.childBridgeStatus()!=="ok"&&!n.plugin().disabled?7:-1)}}function Bi(t,d){if(t&1){let e=w();r(0,"a",11),f("click",function(){v(e);let i=m();return x(i.openFundingModal(i.plugin()))}),c(1,"i",29),r(2,"span",13),p(3),s()()}if(t&2){let e=m();o(3),b("@",e.plugin().author)}}function Ei(t,d){if(t&1&&(r(0,"span",13),c(1,"i",30),p(2),s()),t&2){let e=m();o(2),b("@",e.plugin().author," ")}}function ki(t,d){if(t&1&&(r(0,"span"),p(1),a(2,"date"),s()),t&2){let e=m(2);o(),b("(",N(2,1,e.plugin().lastUpdated,"yyyy-MM-dd"),")")}}function Ti(t,d){if(t&1&&(r(0,"span"),c(1,"i",31),r(2,"span",13),p(3),u(4,ki,3,4,"span"),s()()),t&2){let e=m();o(3),b("v",e.plugin().latestVersion," "),o(),g(e.plugin().lastUpdated?4:-1)}}function Ii(t,d){if(t&1&&(c(0,"i",32),p(1)),t&2){let e=m();o(),b("v",e.plugin().installedVersion," ")}}function Mi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),f("click",function(){v(e);let i=m(2);return x(i.doChildBridgeAction("restart"))}),c(2,"i",36),s()}if(t&2){let e=m(2);S("openDelay",150)("ngbTooltip",l(1,2,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function Vi(t,d){if(t&1){let e=w();r(0,"a",37),f("click",function(){v(e);let i=m(2);return x(i.enablePlugin(i.plugin()))}),c(1,"i",38),a(2,"translate"),s()}t&2&&(o(),S("ngbTooltip",l(2,2,"common.labels.disabled"))("openDelay",150))}function Di(t,d){if(t&1){let e=w();r(0,"a",39),f("click",function(){v(e);let i=m(2);return x(i.installAlternateVersion())}),c(1,"i",40),s()}}function $i(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.viewPluginLog())}),c(1,"i",49),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.plugin_logs")," "))}function Ai(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.installAlternateVersion())}),c(1,"i",50),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.manage_version")," "))}function Ni(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openJsonEditor())}),c(1,"i",51),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.json_config")," "))}function Oi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.disablePlugin(i.plugin()))}),c(1,"i",52),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.disable")," "))}function Li(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.enablePlugin(i.plugin()))}),c(1,"i",53),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.enable")," "))}function Hi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.uninstallPlugin())}),c(1,"i",54),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.button_uninstall")," "))}function ji(t,d){t&1&&c(0,"div",47)}function zi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("restart"))}),c(1,"i",57),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function qi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("stop"))}),c(1,"i",58),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function Ui(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("start"))}),c(1,"i",59),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function Fi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",55),p(2),a(3,"translate"),s(),u(4,zi,4,3,"button",46),u(5,qi,4,3,"button",46),u(6,Ui,4,3,"button",46),r(7,"button",44),f("click",function(){v(e);let i=m(3);return x(i.resetChildBridges())}),c(8,"i",56),p(9),a(10,"translate"),s()}if(t&2){let e=m(3);o(2),b(" ",l(3,5,"child_bridge.bridge_settings")," "),o(2),g(e.childBridgeRestartInProgress()?-1:4),o(),g(e.allChildBridgesStopped()?-1:5),o(),g(e.allChildBridgesStopped()?6:-1),o(3),b(" ",l(10,7,"child_bridge.reset_accessories")," ")}}function Ri(t,d){t&1&&c(0,"div",47)}function Gi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",60),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"child_bridge.setup")," "))}function Qi(t,d){t&1&&c(0,"div",47)}function Wi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",60),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"child_bridge.setup")," "))}function Ji(t,d){t&1&&c(0,"div",47)}function Ki(t,d){if(t&1&&(r(0,"a",48),c(1,"i",61),p(2),a(3,"translate"),s()),t&2){let e=m(3);S("href",e.plugin().links.bugs,O),o(2),b(" ",l(3,2,"support.links.issue")," ")}}function Xi(t,d){if(t&1){let e=w();r(0,"span",35)(1,"a",41),c(2,"i",42),s(),r(3,"div",43)(4,"button",44),f("click",function(){v(e);let i=m(2);return x(i.openSettings())}),c(5,"i",45),p(6),a(7,"translate"),s(),u(8,$i,4,3,"button",46),u(9,Ai,4,3,"button",46),u(10,Ni,4,3,"button",46),u(11,Oi,4,3,"button",46),u(12,Li,4,3,"button",46),u(13,Hi,4,3,"button",46),u(14,ji,1,0,"div",47),u(15,Fi,11,9),u(16,Ri,1,0,"div",47),u(17,Gi,4,3,"button",46),u(18,Qi,1,0,"div",47),u(19,Wi,4,3,"button",46),u(20,Ji,1,0,"div",47),u(21,Ki,4,4,"a",48),s()()}if(t&2){let e,n,i=m(2);o(),B("aria-label","Plugin Actions Dropdown"),o(5),b(" ",l(7,16,"plugins.button_settings")," "),o(2),g(i.plugin().isConfigured&&!i.plugin().disabled?8:-1),o(),g(i.plugin().publicPackage?9:-1),o(),g(!i.isMobile()&&i.plugin().name!=="homebridge-config-ui-x"?10:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"&&!i.plugin().disabled?11:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"&&i.plugin().disabled?12:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"?13:-1),o(),g(!i.plugin().disabled&&i.plugin().isConfigured&&i.plugin().hasChildBridges&&i.plugin().installedVersion&&i.plugin().name!=="homebridge-config-ui-x"?14:-1),o(),g(i.plugin().hasChildBridges&&!i.plugin().disabled?15:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&!i.plugin().recommendChildBridge?16:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&!i.plugin().recommendChildBridge?17:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&i.plugin().recommendChildBridge&&i.plugin().updateAvailable?18:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&i.plugin().recommendChildBridge&&i.plugin().updateAvailable?19:-1),o(),g((e=i.plugin().links)!=null&&e.bugs?20:-1),o(),g((n=i.plugin().links)!=null&&n.bugs?21:-1)}}function Yi(t,d){if(t&1&&(r(0,"div",9),u(1,Mi,3,4,"a",17),u(2,Vi,3,4,"a",33),u(3,Di,2,0,"a",34),u(4,Xi,22,18,"span",35),s()),t&2){let e=m();o(),g(!e.plugin().disabled&&e.plugin().hasChildBridges&&e.childBridgeStatus()==="ok"?1:-1),o(),g(e.plugin().installedVersion&&e.plugin().disabled?2:-1),o(),g(e.plugin().publicPackage&&!e.plugin().installedVersion?3:-1),o(),g(e.plugin().installedVersion?4:-1)}}var Je=(()=>{class t{injector=h(ce);$api=h(Z);$auth=h(ie);$md=h(Oe);$modal=h(ne);$plugin=h(le);$settings=h(ee);$toastr=h(Y);$translate=h(F);$ws=h(te);plugin=se.required();childBridges=se.required();io;defaultIcon="assets/hb-icon.png";isAdmin=this.$auth.user.admin;hasChildBridges=E(!1);allChildBridgesStopped=E(!1);childBridgeStatus=E("pending");childBridgeRestartInProgress=E(!1);isMobile=E("");setChildBridges=E([]);constructor(){ue(()=>{let e=this.childBridges();this.hasChildBridges.set(e.length>0),this.allChildBridgesStopped.set(e.every(n=>n.manuallyStopped===!0)),this.hasChildBridges()&&(e.some(n=>n.status==="down")?this.childBridgeStatus.set("down"):e.some(n=>n.status==="pending")?this.childBridgeStatus.set("pending"):e.some(n=>n.status==="ok")&&this.childBridgeStatus.set("ok")),this.setChildBridges.set(e)})}ngOnInit(){this.isMobile.set(this.$md.detect.mobile()),this.io=this.$ws.getExistingNamespace("child-bridges"),this.isMobile()&&this.plugin().displayName.toLowerCase().startsWith("homebridge ")&&(this.plugin().displayName=this.plugin().displayName.replace(/^homebridge /i,"")),this.plugin().icon||(this.plugin().icon=this.defaultIcon)}openFundingModal(e){let n=q([{provide:z,useValue:{plugin:e}}],this.injector);this.$modal.open(Qe,{size:"lg",backdrop:"static",injector:n})}pluginInfoModal(e){let n=q([{provide:z,useValue:{plugin:e}}],this.injector);this.$modal.open(We,{size:"lg",backdrop:"static",injector:n})}disablePlugin(e){return D(this,null,function*(){let n=q([{provide:oe,useValue:{pluginName:e.displayName||e.name,isConfigured:e.isConfigured,isConfiguredDynamicPlatform:e.isConfiguredDynamicPlatform,keepOrphans:this.$settings.keepOrphans}}],this.injector),i=this.$modal.open(Ge,{size:"lg",backdrop:"static",injector:n});try{yield i.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{}),e.disabled=!0,this.hasChildBridges()&&this.doChildBridgeAction("stop"),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(_){console.error(_),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}catch{}})}enablePlugin(e){return D(this,null,function*(){let n=q([{provide:De,useValue:{title:e.name,message:this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.displayName}),confirmButtonLabel:this.$translate.instant("plugins.manage.enable"),faIconClass:"fa-circle-play primary-text"}}],this.injector),i=this.$modal.open(Ae,{size:"lg",backdrop:"static",injector:n});try{yield i.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{}),e.disabled=!1,this.hasChildBridges()&&(yield this.doChildBridgeAction("start")),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(_){console.error(_),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}catch{}})}viewPluginLog(){let e=q([{provide:$e,useValue:{plugin:this.plugin(),childBridges:this.setChildBridges()}}],this.injector);this.$modal.open(Le,{size:"xl",backdrop:"static",injector:e})}doChildBridgeAction(e){return D(this,null,function*(){this.childBridgeRestartInProgress.set(!0);try{for(let n of this.setChildBridges())yield pe(this.io.request(`${e}-child-bridge`,n.username))}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress.set(!1)}finally{setTimeout(()=>{this.childBridgeRestartInProgress.set(!1)},e==="restart"?12e3:e==="stop"?6e3:1e3)}})}handleIconError(){this.plugin().icon=this.defaultIcon}checkAndUpdatePlugin(){this.$plugin.checkAndUpdatePlugin(this.plugin(),this.plugin().latestVersion)}openSettings(){this.$plugin.settings(this.plugin())}openBridgeSettings(){this.$plugin.bridgeSettings(this.plugin())}switchToScoped(){this.$plugin.switchToScoped(this.plugin())}installAlternateVersion(){this.$plugin.installAlternateVersion(this.plugin())}openJsonEditor(){this.$plugin.jsonEditor(this.plugin())}uninstallPlugin(){this.$plugin.uninstallPlugin(this.plugin(),this.setChildBridges())}resetChildBridges(){this.$plugin.resetChildBridges(this.setChildBridges())}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["app-plugin-card"]],inputs:{plugin:[1,"plugin"],childBridges:[1,"childBridges"]},decls:24,vars:15,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,"d-flex","flex-column","me-3","align-items-center","justify-content-between"],["alt","Plugin Icon",1,"plugin-icon-card","mb-3",3,"error","src"],[1,"d-flex","flex-column","justify-content-between",2,"min-width","calc(100% - 80px)"],[1,"d-flex","flex-row","align-items-end"],[1,"d-flex","flex-column","w-100"],[1,"d-flex","flex-row"],[1,"card-title","mb-2","text-truncate"],[1,"ms-auto"],[1,"card-text","mb-2","text-truncate"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-shield-alt","fa-lg","me-1"],[1,"grey-text"],[1,"card-text","mb-2"],["href","javascript:void(0)",1,"card-link"],[1,"card-text","mb-0","grey-text"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"openDelay","ngbTooltip"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"ngbTooltip","openDelay"],[1,"fas","fa-circle-notch","fa-spin","fa-lg","grey-text","ms-3",3,"hidden"],[1,"fas","fa-lg","ms-3",3,"class"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"click","openDelay","ngbTooltip"],[1,"far","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-arrow-right-arrow-left","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"click","ngbTooltip","openDelay"],[1,"fas","fa-sliders","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-bridge","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-qrcode","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-lg","ms-3"],[1,"fas","fa-heart","fa-lg","me-1","pink-text"],[1,"fas","fa-heart","fa-lg","me-1",2,"opacity","0.5"],[1,"far","fa-circle-dot","fa-lg","me-1"],[1,"far","fa-circle-check","fa-lg","me-1"],["href","javascript:void(0)",1,"card-link","red-text"],["href","javascript:void(0)"],["ngbDropdown","","placement","left",1,"d-inline-block","ms-3","mt-auto"],[1,"fas","fa-lg","fa-power-off","ms-3"],["href","javascript:void(0)",1,"card-link","red-text",3,"click"],["container","body","triggers","hover",1,"far","fa-pause-circle","fa-lg",3,"ngbTooltip","openDelay"],["href","javascript:void(0)",3,"click"],[1,"far","fa-arrow-alt-circle-down","fa-lg"],["href","javascript:void(0)","ngbDropdownToggle","",1,"card-link","text-decoration-none","mt-auto",2,"outline","none"],[1,"fa-solid","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu","","aria-labelledby","Plugin Actions Dropdown"],["ngbDropdownItem","",3,"click"],[1,"fas","fa-sliders"],["ngbDropdownItem",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[1,"fas","fa-wave-square"],[1,"fas","fa-code-compare"],[1,"fas","fa-code"],[1,"far","fa-circle-pause"],[1,"far","fa-circle-play"],[1,"fas","fa-trash"],[1,"fas","fa-bridge"],[1,"fas","fa-broom"],[1,"icon-button","fas","fa-power-off"],[1,"fas","fa-stop"],[1,"fas","fa-play"],[1,"icon-button","fas","fa-bridge"],[1,"icon-button","fa","fa-question-circle-o"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),f("error",function(){return i.handleIconError()}),s()(),r(4,"div",4)(5,"div",5)(6,"div",6)(7,"div",7)(8,"h5",8),p(9),s(),u(10,Si,8,7,"div",9),s(),r(11,"p",10)(12,"a",11),f("click",function(){return i.pluginInfoModal(i.plugin())}),c(13,"i",12),r(14,"span",13),p(15),s()()(),r(16,"p",14),u(17,Bi,4,1,"a",15),u(18,Ei,3,1,"span",13),s(),r(19,"div",7)(20,"p",16),u(21,Ti,5,2,"span"),u(22,Ii,2,1),s(),u(23,Yi,5,4,"div",9),s()()()()()()),n&2&&(o(3),S("src",i.plugin().icon,O),o(6),C(i.plugin().displayName),o(),g(i.isAdmin?10:-1),o(3),T(he(11,hi,i.plugin().isHbScoped,!i.plugin().isHbScoped&&(i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin),!i.plugin().isHbScoped&&!i.plugin().verifiedPlugin&&!i.plugin().verifiedPlusPlugin)),o(2),C(i.plugin().name),o(2),g((i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin)&&i.plugin().funding?17:-1),o(),g((i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin)&&i.plugin().funding?-1:18),o(3),g(i.plugin().publicPackage&&!i.plugin().installedVersion?21:-1),o(),g(i.plugin().installedVersion?22:-1),o(),g(i.isAdmin?23:-1))},dependencies:[ae,Fe,Ue,qe,ze,je,ve,M],encapsulation:2})}return t})();var Ke=(()=>{class t{$activeModal=h(H);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:28,vars:22,consts:[["role","dialog","aria-modal","true",1,"modal-content"],[1,"modal-header"],["id","plugin-support-modal-title",1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"mb-0"],[3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),p(4),a(5,"translate"),s(),r(6,"button",3),a(7,"translate"),f("click",function(){return i.dismissModal()}),s()(),r(8,"div",4)(9,"div",5),c(10,"i",6),s(),r(11,"ul",7),c(12,"li",8),a(13,"translate"),c(14,"li",8),a(15,"translate"),c(16,"li",8),a(17,"translate"),c(18,"li",8),a(19,"translate"),s(),c(20,"app-support-banner"),s(),r(21,"div",9),c(22,"div",10),r(23,"div",11)(24,"button",12),f("click",function(){return i.dismissModal()}),p(25),a(26,"translate"),s()(),c(27,"div",13),s()()()),n&2&&(B("aria-labelledby","plugin-support-modal-title"),o(4),C(l(5,8,"support.title")),o(2),B("aria-label",l(7,10,"form.button_close")),o(6),S("innerHTML",l(13,12,"plugins.support.list_1"),$),o(2),S("innerHTML",l(15,14,"plugins.support.list_2"),$),o(2),S("innerHTML",l(17,16,"plugins.support.list_3"),$),o(2),S("innerHTML",l(19,18,"plugins.support.list_4"),$),o(7),b(" ",l(26,20,"form.button_close")," "))},dependencies:[Re,M],encapsulation:2})}return t})();var Zi=["searchInput"],et=(t,d)=>({"fa-magnifying-glass":t,"fa-exclamation-circle":d});function it(t,d){t&1&&c(0,"app-spinner")}function tt(t,d){if(t&1){let e=w();r(0,"button",7),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m();return x(i.showSearch())}),c(3,"i"),s(),r(4,"button",8),a(5,"translate"),a(6,"translate"),f("click",function(){v(e);let i=m();return x(i.showStats())}),c(7,"i"),s()}if(t&2){let e=m();S("openDelay",150)("ngbTooltip",l(1,12,"form.search")),B("aria-label",l(2,14,"form.search")),o(3),T(re("fas",e.showSearchBar()?" primary-text":""," fa-search")),o(),S("openDelay",150)("ngbTooltip",l(5,16,"plugins.stats")),B("aria-label",l(6,18,"plugins.stats")),o(3),T(re("fas",e.tab()==="stats"?" primary-text":""," fa-sliders"))}}function nt(t,d){if(t&1){let e=w();r(0,"button",15),a(1,"translate"),f("click",function(){v(e);let i=m(3);return x(i.onClearSearch())}),c(2,"i",16),s()}t&2&&B("aria-label",l(1,1,"form.button_clear"))}function ot(t,d){if(t&1){let e=w();r(0,"div",9)(1,"div",11)(2,"form",12),f("ngSubmit",function(){v(e);let i=m(2);return x(i.onSubmit(i.form))}),c(3,"input",13,0),a(5,"translate"),u(6,nt,3,3,"button",14),s()()()}if(t&2){let e,n=m(2);o(2),S("formGroup",n.form),o(),S("placeholder",l(5,3,"plugins.placeholder_search_plugin")),o(3),g((e=n.form.get("query"))!=null&&e.value?6:-1)}}function at(t,d){if(t&1&&(r(0,"div",17),c(1,"app-plugin-card",19),s()),t&2){let e=d.$implicit,n=m(3);o(),S("plugin",e)("childBridges",n.getPluginChildBridges(e))}}function lt(t,d){if(t&1&&(r(0,"div",18),c(1,"i",20),r(2,"p"),p(3),a(4,"translate"),s()()),t&2){let e=m(3);o(),T(V(5,et,!e.showExitButton(),e.showExitButton())),o(2),C(l(4,3,e.showExitButton()?"plugins.placeholder_search_none":"plugins.placeholder_search_first"))}}function rt(t,d){if(t&1&&(r(0,"div",10),W(1,at,2,2,"div",17,Q),u(3,lt,5,8,"div",18),s()),t&2){let e=m(2);o(),J(e.installedPlugins()),o(2),g(e.installedPlugins().length===0&&!e.loading()&&!e.mainError()?3:-1)}}function st(t,d){if(t&1&&(u(0,ot,7,5,"div",9),u(1,rt,4,1,"div",10)),t&2){let e=m();g(e.showSearchBar()?0:-1),o(),g(e.loading()?-1:1)}}function dt(t,d){t&1&&(r(0,"div",21)(1,"div",22)(2,"code"),p(3,"https://developers.homebridge.io/analytics "),r(4,"a",23),c(5,"i",24),s()()(),r(6,"div",25),p(7),a(8,"translate"),s()(),c(9,"iframe",26)),t&2&&(o(7),C(l(8,1,"plugins.stats_note")))}var Sn=(()=>{class t{destroyRef=h(me);$api=h(Z);$auth=h(ie);$modal=h(ne);$plugin=h(le);$router=h(ye);$settings=h(ee);$toastr=h(Y);$translate=h(F);$ws=h(te);searchInput=be("searchInput");mainError=E(!1);loading=E(!0);tab=E("main");installedPlugins=E([]);childBridges=E([]);showSearchBar=E(!1);showExitButton=E(!1);isSearchMode=E(!1);io;isAdmin=this.$auth.user.admin;form=new Be({query:new Ee("")});ngOnInit(){let e=this.$translate.instant("menu.label_plugins");this.$settings.setPageTitle(e),this.$plugin.onPluginListRefresh.pipe(de(this.destroyRef)).subscribe(()=>{this.loadInstalledPlugins(),this.getChildBridgeMetadata()}),this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>{this.initialize()}),this.io.socket.connected&&this.initialize(),this.io.socket.on("child-bridge-status-update",n=>{let i=this.childBridges().find(_=>_.username===n.username);i?(Object.assign(i,n),this.childBridges.set([...this.childBridges()])):this.childBridges.update(_=>[..._,n])}),this.$router.events.pipe(de(this.destroyRef)).subscribe(n=>{n instanceof xe&&this.loadInstalledPlugins()})}search(){return D(this,null,function*(){this.installedPlugins.set([]),this.loading.set(!0),this.showExitButton.set(!0);try{let e=yield this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`),n=new Set,i=new Map(e.map(_=>[_.name,_]));this.installedPlugins.set(e.reduce((_,k)=>{if(k.name==="homebridge-config-ui-x"||n.has(k.name))return _;if(k.newHbScope){let j=k.newHbScope.to,Xe=i.has(j);(k.installedVersion||!Xe)&&(n.add(j),_.push(k))}else _.push(k);return _},[])),yield this.appendMetaInfo()}catch(e){this.isSearchMode.set(!1),console.error(e);let n=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_search_plugins");this.$toastr.error(n,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}finally{this.loading.set(!1)}})}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.isSearchMode()&&(this.isSearchMode.set(!1),this.loadInstalledPlugins())}onSubmit({value:e}){e.query.length?(this.isSearchMode.set(!0),this.search()):(this.isSearchMode()&&(this.isSearchMode.set(!1),this.loadInstalledPlugins()),this.showSearchBar.set(!1))}showSearch(){if(this.showSearchBar())this.showSearchBar.set(!1),this.isSearchMode()&&(this.isSearchMode.set(!1),this.form.setValue({query:""}),this.loadInstalledPlugins());else{window.document.querySelector("body")?.classList.remove("bg-black"),this.tab.set("main"),this.showSearchBar.set(!0);let e=this.searchInput();e&&setTimeout(()=>e.nativeElement.focus(),0)}}showStats(){if(this.tab()==="stats"){if(this.$settings.actualLightingMode!=="light"){window.document.querySelector("body").classList.remove("bg-black"),this.tab.set("main");return}window.document.querySelector("body").classList.remove("light-mode");let e=document.getElementById("stats-header"),n=document.getElementById("stats-iframe");e&&n&&(e.classList.add("fade-out"),n.classList.add("fade-out")),setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black"),setTimeout(()=>{this.tab.set("main")},250)},250)}else window.document.querySelector("body").classList.add("bg-black"),this.tab.set("stats"),this.showSearchBar.set(!1),this.$settings.actualLightingMode==="light"&&(window.document.querySelector("body").classList.add("light-mode"),setTimeout(()=>{let e=document.getElementById("stats-header"),n=document.getElementById("stats-iframe");e&&n&&(e.classList.add("light-mode"),n.classList.add("light-mode"))},0))}openSupport(){this.$modal.open(Ke,{size:"lg",backdrop:"static"})}canDeactivate(e){if(this.tab()!=="stats")return!0;if(this.$settings.actualLightingMode!=="light")return window.document.querySelector("body").classList.remove("bg-black"),Promise.resolve(!0);window.document.querySelector("body").classList.remove("light-mode");let n=e&&(e.includes("/platform-tools/terminal")||e.includes("/logs"));return new Promise(i=>{let _=document.getElementById("stats-header"),k=document.getElementById("stats-iframe");_&&k&&(_.classList.add("fade-out"),k.classList.add("fade-out")),n?setTimeout(()=>{i(!0)},250):(setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black")},250),setTimeout(()=>{i(!0)},500))})}ngOnDestroy(){window.document.querySelector("body").classList.remove("light-mode"),this.io.end()}getPluginChildBridges(e){return this.childBridges().filter(n=>n.plugin===e.name)}initialize(){return D(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins(),this.installedPlugins().length||this.showSearch();let{action:e,plugin:n}=this.$router.parseUrl(this.$router.url).queryParams;if(e){let i=this.installedPlugins().find(_=>_.name===n);switch(e){case"just-installed":{i&&(i.isConfigured?this.$modal.open(R,{size:"lg",backdrop:"static"}):this.$plugin.settings(i));break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}})}loadInstalledPlugins(){return D(this,null,function*(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.installedPlugins.set([]),this.loading.set(!0),this.mainError.set(!1);try{let e=yield this.$api.get("/plugins");this.installedPlugins.set(e.filter(i=>i.name!=="homebridge-config-ui-x")),yield this.appendMetaInfo();let n=this.installedPlugins().sort((i,_)=>{let k=(i.updateAvailable?1e3:0)+(i.newHbScope?100:0)+(i.disabled?-10:0)+(i.isConfigured?-20:0)+(i.hasChildBridgesUnpaired?5:0)+(i.hasChildBridges&&this.$settings.env.recommendChildBridges?-1:0),j=(_.updateAvailable?1e3:0)+(_.newHbScope?100:0)+(_.disabled?-10:0)+(_.isConfigured?-20:0)+(_.hasChildBridgesUnpaired?5:0)+(_.hasChildBridges&&this.$settings.env.recommendChildBridges?-1:0);return k!==j?j-k:i.name.localeCompare(_.name)});return this.installedPlugins.set(n),n}catch(e){console.error(e);let n=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_load_plugins");this.$toastr.error(n,this.$translate.instant("toast.title_error")),this.mainError.set(!0)}finally{this.loading.set(!1)}})}appendMetaInfo(){return D(this,null,function*(){this.isAdmin&&(yield Promise.all(this.installedPlugins().filter(e=>e.installedVersion).map(e=>D(this,null,function*(){try{let n=yield this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`);e.isConfigured=n.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.prototype.hasOwnProperty.call(n[0],"platform"),e.recommendChildBridge=e.isConfigured&&this.$settings.env.recommendChildBridges&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&n.some(_=>_._bridge&&_._bridge.username);let i=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=i.some(_=>{let k=_.paired===!1&&!this.isBridgeAlertHidden(_.username,"hap"),j=_.matterConfig&&_.matterCommissioned===!1&&!this.isBridgeAlertHidden(_.username,"matter");return k||j}),this.$settings.env.plugins?.hideUpdatesFor?.includes(e.name)&&(e.updateAvailable=!1)}catch(n){console.error(`Failed to load config for ${e.name}:`,n),e.isConfigured=!0,e.hasChildBridges=!0}}))))})}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges.set(e)})}isBridgeAlertHidden(e,n){let i=this.$settings.env.bridges?.find(_=>_.username.toUpperCase()===e.toUpperCase());return i?n==="hap"?!!i.hideHapAlert:!!i.hideMatterAlert:!1}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],viewQuery:function(n,i){n&1&&_e(i.searchInput,Zi,5),n&2&&fe()},decls:13,vars:9,consts:[["searchInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2","d-none","d-md-inline-block",3,"click","openDelay","ngbTooltip"],[1,"row"],[1,"d-flex","flex-wrap","justify-content-between"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"search-bar",3,"placeholder"],["type","button",1,"search-bar-clear"],["type","button",1,"search-bar-clear",3,"click"],["aria-hidden","true",1,"fas","fa-square-xmark"],[1,"hb-plugin-space-between"],[1,"alert","alert-info","mt-4","text-center","w-100"],[3,"plugin","childBridges"],[1,"fas","primary-text","my-3",2,"font-size","75px"],["id","stats-header",1,"w-100","py-3","hb-stats-header","text-white","text-center"],[1,"mb-2"],["href","https://developers.homebridge.io/analytics","target","_blank"],[1,"fa","fa-external-link"],[1,"small","grey-text"],["src",ge`https://developers.homebridge.io/analytics/`,"id","stats-iframe","sandbox","allow-scripts allow-same-origin allow-popups","referrerpolicy","no-referrer",1,"hb-stats"]],template:function(n,i){n&1&&(u(0,it,1,0,"app-spinner"),r(1,"div",1)(2,"div",2)(3,"h3",3),p(4),a(5,"translate"),s()(),r(6,"div",4),u(7,tt,8,20),r(8,"button",5),a(9,"translate"),f("click",function(){return i.openSupport()}),c(10,"i",6),s()()(),u(11,st,2,2)(12,dt,10,3)),n&2&&(g(i.loading()?0:-1),o(4),C(l(5,5,"menu.label_plugins")),o(3),g(i.isAdmin?7:-1),o(),B("aria-label",l(9,7,"support.title")),o(3),g(i.tab()==="main"?11:i.tab()==="stats"?12:-1))},dependencies:[Ne,Me,ke,Pe,we,Se,Ve,Ie,Te,Je,ae,M],styles:["body.light-mode{transition:background-color .25s ease-in-out}form[_ngcontent-%COMP%]{position:relative}.search-bar[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px 45px 10px 10px;margin-bottom:15px}@media(hover:hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.search-bar-clear[_ngcontent-%COMP%]{position:absolute;right:8px;top:25px;height:50px;background:transparent;border:none;font-size:20px;color:#d0d0d0;cursor:pointer;padding:0 8px;display:flex;align-items:center}.search-bar-clear[_ngcontent-%COMP%]:hover{color:#a0a0a0}.hb-plugin-space-between[_ngcontent-%COMP%]{box-sizing:border-box;width:calc(50% - 6.6666666667px)}@media only screen and (max-width:991px){.hb-plugin-space-between[_ngcontent-%COMP%]{width:100%}}.hb-stats-header[_ngcontent-%COMP%]{background:#242424;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.hb-stats-header.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}.hb-stats-header.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}.hb-stats-header[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{border:1px solid grey;border-radius:5px;padding:5px;font-size:.8rem;color:#d3d3d3}.hb-stats[_ngcontent-%COMP%]{height:calc(100% - 121px);width:100%;overflow:hidden;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.hb-stats.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}.hb-stats.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}@media(max-width:767px){.hb-stats[_ngcontent-%COMP%]{height:calc(100% - 60px)}}@keyframes _ngcontent-%COMP%_fadeIn{to{opacity:1}}@keyframes _ngcontent-%COMP%_fadeOut{to{opacity:0}}"]})}return t})();export{Sn as PluginsComponent};
1
+ import{a as Le,c as le}from"./chunk-HZA5LDUU.js";import"./chunk-JTQQTKY7.js";import"./chunk-VFZPU4ZL.js";import{a as R}from"./chunk-GFJO2QTW.js";import{a as Ne}from"./chunk-R2AXYPVZ.js";import{a as Oe}from"./chunk-UUDM2ZE6.js";import"./chunk-ARR3OK4P.js";import"./chunk-Q2RBJQKF.js";import{a as Ae}from"./chunk-7LOFSGZK.js";import"./chunk-V62JRIHN.js";import"./chunk-CU6MTMVY.js";import{a as Re}from"./chunk-PSSWIPLS.js";import{a as De,c as z,f as $e,j as oe}from"./chunk-HOWYXHPL.js";import"./chunk-MRHB36HC.js";import"./chunk-IVGUGJ5O.js";import"./chunk-MM3ZUHP2.js";import"./chunk-ZIFXCMBJ.js";import"./chunk-AYPSIX2K.js";import"./chunk-QMHMKWPA.js";import{a as te}from"./chunk-G5C66QEU.js";import"./chunk-ZONYERCP.js";import"./chunk-YD4U26CQ.js";import"./chunk-YXAXWARF.js";import"./chunk-YBWJOGCK.js";import"./chunk-IBPLHJH5.js";import"./chunk-3X54YJUZ.js";import"./chunk-BT3EMPD7.js";import"./chunk-ALTMINMJ.js";import"./chunk-7LZXNMQ7.js";import"./chunk-5GNJNTLA.js";import"./chunk-ZBOWFMAD.js";import"./chunk-3RTPACYF.js";import"./chunk-X35N33BQ.js";import"./chunk-2R4HORTN.js";import"./chunk-UU7UROHF.js";import"./chunk-X5XGTC24.js";import{a as je,b as ze,c as qe,d as Ue,e as Fe}from"./chunk-2JLK533I.js";import"./chunk-YIHVWXAX.js";import"./chunk-ZCGZM7LU.js";import"./chunk-PQPDMNKK.js";import{a as ae}from"./chunk-SGI3H2QJ.js";import{a as He}from"./chunk-I5AP453W.js";import{s as H,t as ne}from"./chunk-BNNKKGLH.js";import{b as xe,e as ye}from"./chunk-F332UHUK.js";import{a as de}from"./chunk-GIBUKDL3.js";import{b as ie}from"./chunk-VY4NTNG3.js";import{C as Me,D as Ve,c as Pe,e as we,f as Se,g as Be,j as Ee,m as ke,r as Te,s as Ie}from"./chunk-WZXTVC6W.js";import{b as ee}from"./chunk-2QUH2FXS.js";import{C as F,D as M,F as Y,I as Z,h as ve}from"./chunk-7AD56BSX.js";import{Ab as g,Cb as Q,Db as W,Dc as a,Eb as J,Ec as l,Fb as S,Fc as N,Gb as r,Hb as s,Ib as c,Jb as y,Kb as P,Kc as Ce,Lb as A,Nc as se,Oc as be,Rb as w,Sb as U,Ua as $,Va as O,Wa as ge,Xb as f,Yb as L,Za as o,Zb as m,aa as h,ea as ce,ec as _e,fc as fe,ga as v,ha as x,hc as K,jc as T,kc as p,lc as C,ma as me,mb as q,mc as b,n as pe,nb as I,sa as E,uc as re,va as ue,xc as X,yb as B,yc as V,zb as u,zc as he}from"./chunk-JJ5CEM72.js";import"./chunk-FDGOZLRL.js";import"./chunk-WVBGE4PG.js";import"./chunk-J3GYRR3Q.js";import"./chunk-MOTTUPLZ.js";import"./chunk-P4ODKUQK.js";import"./chunk-QPIMSYGY.js";import{h as D}from"./chunk-VJN6YUS2.js";var Ye=t=>({pluginName:t}),Ze=(t,d)=>({setting:t,value:d});function ei(t,d){t&1&&(r(0,"li"),p(1),a(2,"translate"),s(),r(3,"li"),p(4),a(5,"translate"),s()),t&2&&(o(),C(l(2,2,"plugins.manage.confirm_disable_platform_1")),o(3),C(l(5,4,"plugins.manage.confirm_disable_platform_2")))}function ii(t,d){t&1&&(r(0,"li"),p(1),a(2,"translate"),s(),r(3,"li"),p(4),a(5,"translate"),s()),t&2&&(o(),C(l(2,2,"plugins.manage.confirm_disable_accessory_1")),o(3),C(l(5,4,"plugins.manage.confirm_disable_accessory_2")))}function ti(t,d){if(t&1&&(r(0,"ul",15),c(1,"li",16),a(2,"translate"),r(3,"ul",17),u(4,ei,6,6)(5,ii,6,6),s()()),t&2){let e=m(2);o(),S("innerHtml",N(2,2,"plugins.manage.confirm_disable_setting",V(5,Ze,e.keepOrphansName,e.keepOrphansValue)),$),o(3),g(e.keepOrphans?4:5)}}function ni(t,d){t&1&&(r(0,"ul",15)(1,"li"),p(2),a(3,"translate"),s(),r(4,"li"),p(5),a(6,"translate"),s()()),t&2&&(o(2),C(l(3,2,"plugins.manage.confirm_disable_accessory_1")),o(3),C(l(6,4,"plugins.manage.confirm_disable_accessory_2")))}function oi(t,d){if(t&1&&u(0,ti,6,8,"ul",15)(1,ni,7,6,"ul",15),t&2){let e=m();g(e.isConfiguredDynamicPlatform?0:1)}}var Ge=(()=>{class t{$activeModal=h(H);$translate=h(F);modalData=h(oe);pluginName=this.modalData.pluginName;isConfigured=this.modalData.isConfigured??!1;isConfiguredDynamicPlatform=this.modalData.isConfiguredDynamicPlatform??!1;keepOrphans=this.modalData.keepOrphans??!1;keepOrphansName=`<code>${this.$translate.instant("settings.startup.keep_accessories")}</code>`;get keepOrphansValue(){return`<code>${this.keepOrphans}</code>`}dismissModal(){this.$activeModal.dismiss("Dismiss")}closeModal(){this.$activeModal.close()}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:25,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"mb-3","text-center"],[1,"fas","fa-circle-pause","primary-text",2,"font-size","75px"],["type","warning",1,"mb-0",3,"dismissible"],[1,"w-100","text-center","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click"],[1,"mb-3"],[3,"innerHtml"],[1,"mb-1"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),p(3),s(),r(4,"button",3),a(5,"translate"),f("click",function(){return i.dismissModal()}),s()(),r(6,"div",4)(7,"div",5),c(8,"i",6),s(),u(9,oi,2,1),r(10,"ngb-alert",7)(11,"p",8),p(12),a(13,"translate"),s()()(),r(14,"div",9)(15,"div",10)(16,"button",11),a(17,"translate"),f("click",function(){return i.dismissModal()}),p(18),a(19,"translate"),s()(),c(20,"div",12),r(21,"div",13)(22,"button",14),f("click",function(){return i.closeModal()}),p(23),a(24,"translate"),s()()()()),n&2&&(o(3),C(i.pluginName),o(),B("aria-label",l(5,8,"form.button_close")),o(5),g(i.isConfigured?9:-1),o(),S("dismissible",!1),o(2),b(" ",N(13,10,"plugins.manage.confirm_disable",X(19,Ye,i.pluginName))," "),o(4),B("aria-label",l(17,13,"form.button_close")),o(2),b(" ",l(19,15,"form.button_close")," "),o(5),b(" ",l(24,17,"plugins.manage.disable")," "))},dependencies:[He,M],encapsulation:2})}return t})();var ai=t=>({author:t});function li(t,d){if(t&1&&(y(0,"li",9),A(1,"i",15),y(2,"a",16),p(3),P()()),t&2){let e=d.$implicit,n=m();o(),T(n.getIconClass(e.type)),o(),U("href",e.url,O),o(),C(e.url)}}var Qe=(()=>{class t{$activeModal=h(H);modalData=h(z);plugin=this.modalData.plugin;fundingOptions=E([]);authorName=E("");ngOnInit(){this.initialize()}initialize(){if(!this.plugin||!this.plugin.funding){this.$activeModal.close();return}this.authorName.set(this.plugin.name==="homebridge-config-ui-x"?"oznu":this.plugin.author);let e=this.plugin.funding;if(Array.isArray(e)){let n=e.map(i=>{if(typeof i=="string")return{type:"other",url:i};if(typeof i=="object")return{type:i.type||"other",url:i.url}}).filter(Boolean);this.fundingOptions.set(n)}else typeof e=="string"?this.fundingOptions.set([{type:"other",url:e}]):typeof e=="object"&&e!==null&&this.fundingOptions.set([{type:e.type||"other",url:e.url}])}getIconClass(e){switch(e.toLowerCase()){case"paypal":return"fab fa-paypal";case"github":return"fab fa-github";case"patreon":return"fab fa-patreon";case"kofi":case"ko-fi":return"fas fa-coffee";default:return"fas fa-link"}}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:28,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","pink-text","mb-3"],[1,"fas","fa-heart",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"],[1,"me-2","primary-text","fa-xl"],["target","_blank","rel","noopener noreferrer",1,"text-break-all",3,"href"]],template:function(n,i){n&1&&(y(0,"div",0)(1,"div",1)(2,"h5",2),p(3),a(4,"translate"),P(),y(5,"button",3),a(6,"translate"),L("click",function(){return i.dismissModal()}),P()(),y(7,"div",4)(8,"div",5),A(9,"i",6),P(),y(10,"ul",7)(11,"li"),p(12),a(13,"translate"),P(),y(14,"li"),p(15),a(16,"translate"),P()(),y(17,"ul",8),W(18,li,4,4,"li",9,Q),P()(),y(20,"div",10),A(21,"div",11),y(22,"div",12)(23,"button",13),a(24,"translate"),L("click",function(){return i.dismissModal()}),p(25),a(26,"translate"),P()(),A(27,"div",14),P()()),n&2&&(o(3),C(N(4,6,"plugins.donate.tile_donate_to",X(19,ai,"@"+i.authorName()))),o(2),B("aria-label",l(6,9,"form.button_close")),o(7),C(l(13,11,"plugins.donate.message_1")),o(3),C(l(16,13,"plugins.donate.message_2")),o(3),J(i.fundingOptions()),o(5),B("aria-label",l(24,15,"form.button_close")),o(2),b(" ",l(26,17,"form.button_close")," "))},dependencies:[M],styles:[".text-break-all[_ngcontent-%COMP%]{word-break:break-all}"]})}return t})();var ri=(t,d)=>({"orange-text":t,"grey-text":d}),si=(t,d)=>({"green-text":t,"grey-text":d}),di=(t,d)=>({"purple-text":t,"grey-text":d}),pi=(t,d)=>({scopedLink:t,verifiedLink:d});function ci(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P(),y(6,"p",19),p(7),a(8,"translate"),P()),t&2&&(o(),C(l(2,3,"plugins.manage.scoped_subtitle")),o(3),C(l(5,5,"plugins.manage.scoped_message")),o(3),C(l(8,7,"plugins.manage.verified_message")))}function mi(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P()),t&2&&(o(),C(l(2,2,"plugins.manage.verified_subtitle")),o(3),C(l(5,4,"plugins.manage.verified_message")))}function ui(t,d){t&1&&(y(0,"h6",18),p(1),a(2,"translate"),P(),y(3,"p",19),p(4),a(5,"translate"),P()),t&2&&(o(),C(l(2,2,"plugins.manage.unverified_subtitle")),o(3),C(l(5,4,"plugins.manage.unverified_message")))}function gi(t,d){if(t&1){let e=w();y(0,"button",20),L("click",function(){v(e);let i=m();return x(i.dismissModal())}),p(1),a(2,"translate"),P()}t&2&&(o(),b(" ",l(2,1,"form.button_close")," "))}function _i(t,d){if(t&1){let e=w();y(0,"button",20),L("click",function(){v(e);let i=m();return x(i.dismissModal())}),p(1),a(2,"translate"),P()}t&2&&(o(),b(" ",l(2,1,"form.button_close")," "))}function fi(t,d){if(t&1&&(y(0,"a",17),p(1),a(2,"translate"),A(3,"i",21),P()),t&2){let e=m();U("href",e.plugin.links.homepage||e.plugin.links.npm,O),o(),b(" ",l(2,2,"plugins.button_homepage")," ")}}var We=(()=>{class t{$activeModal=h(H);modalData=h(z);plugin=this.modalData.plugin;iconError=E(!1);pluginIcon=Ce(()=>this.plugin?.icon&&!this.iconError()?this.plugin.icon:this.defaultIcon);defaultIcon="assets/hb-icon.png";linkScoped='<a href="https://github.com/homebridge/plugins/wiki/Scoped-Plugins" target="_blank"><i class="fas fa-external-link-alt primary-text"></i></a>';linkVerified='<a href="https://github.com/homebridge/plugins/wiki/Verified-Plugins" target="_blank"><i class="fas fa-external-link-alt primary-text"></i></a>';handleIconError(){this.iconError.set(!0)}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:32,vars:45,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"],["alt","Plugin Icon",1,"mb-3","plugin-icon-card",3,"error","src"],[1,"mb-1"],[1,"grey-text","mb-0","font-monospace"],[1,"grey-text","mb-1","font-monospace"],[1,"mb-3"],[1,"fas","fa-shield-alt","mb-3",2,"font-size","48px"],[1,"mb-0","grey-text",3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[1,"mb-2"],[1,"mb-1","grey-text"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-external-link-alt"]],template:function(n,i){n&1&&(y(0,"div",0)(1,"div",1)(2,"h5",2),p(3),a(4,"translate"),P(),y(5,"button",3),a(6,"translate"),L("click",function(){return i.dismissModal()}),P()(),y(7,"div",4)(8,"img",5),L("error",function(){return i.handleIconError()}),P(),y(9,"h4",6),p(10),P(),y(11,"p",7),p(12),P(),y(13,"p",8),p(14),P(),y(15,"p",9),p(16),P(),A(17,"i",10)(18,"i",10)(19,"i",10),u(20,ci,9,9),u(21,mi,6,6),u(22,ui,6,6),A(23,"p",11),a(24,"translate"),P(),y(25,"div",12)(26,"div",13),u(27,gi,3,3,"button",14),P(),y(28,"div",15),u(29,_i,3,3,"button",14),P(),y(30,"div",16),u(31,fi,4,4,"a",17),P()()()),n&2&&(o(3),C(l(4,26,"plugins.manage.information")),o(2),B("aria-label",l(6,28,"form.button_close")),o(3),U("src",i.pluginIcon(),O),o(2),C(i.plugin.displayName),o(2),C(i.plugin.name),o(2),b("@",i.plugin.author),o(2),C(i.plugin.description),o(),T(V(33,ri,!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin,i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)),K("opacity",!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?1:.25),o(),T(V(36,si,!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin),i.plugin.isHbScoped||!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin)),K("opacity",!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)?1:.25),o(),T(V(39,di,i.plugin.isHbScoped,!i.plugin.isHbScoped)),K("opacity",i.plugin.isHbScoped?1:.25),o(),g(i.plugin.isHbScoped?20:-1),o(),g(!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)?21:-1),o(),g(!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?22:-1),o(),U("innerHTML",N(24,30,"plugins.manage.more_info",V(42,pi,i.linkScoped,i.linkVerified)),$),o(4),g(i.plugin.links.homepage||i.plugin.links.npm?27:-1),o(2),g(!i.plugin.links.homepage&&!i.plugin.links.npm?29:-1),o(2),g(i.plugin.links.homepage||i.plugin.links.npm?31:-1))},dependencies:[M],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]})}return t})();var hi=(t,d,e)=>({"purple-text":t,"green-text":d,"orange-text":e}),Ci=(t,d)=>({"fa-bridge-circle-exclamation orange-text":t,"fa-bridge-circle-xmark red-text":d});function bi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.checkAndUpdatePlugin())}),c(3,"i",22),s()}t&2&&(S("openDelay",150)("ngbTooltip",l(1,3,"plugins.button_update")),B("aria-label",l(2,5,"plugins.button_update")))}function vi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.switchToScoped())}),c(3,"i",23),s()}t&2&&(S("openDelay",150)("ngbTooltip",l(1,3,"plugins.manage.scoped.switch")),B("aria-label",l(2,5,"plugins.manage.scoped.switch")))}function xi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openSettings())}),c(3,"i",25),s()}t&2&&(S("ngbTooltip",l(1,3,"plugins.button_set_up"))("openDelay",150),B("aria-label",l(2,5,"plugins.button_set_up")))}function yi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openBridgeSettings())}),c(3,"i",26),s()}t&2&&(S("ngbTooltip",l(1,3,"child_bridge.setup"))("openDelay",150),B("aria-label",l(2,5,"child_bridge.setup")))}function Pi(t,d){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openBridgeSettings())}),c(3,"i",27),s()}t&2&&(S("ngbTooltip",l(1,3,"child_bridge.bridge_connect"))("openDelay",150),B("aria-label",l(2,5,"child_bridge.bridge_connect")))}function wi(t,d){if(t&1&&c(0,"i",28),t&2){let e=m(2);T(V(2,Ci,e.childBridgeStatus()==="pending",e.childBridgeStatus()==="down"))}}function Si(t,d){if(t&1&&(r(0,"div",9),u(1,bi,4,7,"a",17),u(2,vi,4,7,"a",17),u(3,xi,4,7,"a",18),u(4,yi,4,7,"a",18),u(5,Pi,4,7,"a",18),c(6,"i",19),u(7,wi,1,5,"i",20),s()),t&2){let e,n=m();o(),g(n.plugin().installedVersion&&n.plugin().updateAvailable&&!n.childBridgeRestartInProgress()?1:-1),o(),g(n.plugin().installedVersion&&((e=n.plugin().newHbScope)==null?null:e.switch)===n.plugin().installedVersion&&!n.childBridgeRestartInProgress()?2:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&!n.plugin().isConfigured&&!n.childBridgeRestartInProgress()&&!n.plugin().disabled?3:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&!n.plugin().hasChildBridges&&!n.plugin().disabled&&n.plugin().recommendChildBridge&&!n.childBridgeRestartInProgress()?4:-1),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&n.plugin().hasChildBridges&&!n.childBridgeRestartInProgress()&&n.plugin().hasChildBridgesUnpaired&&n.childBridgeStatus()==="ok"&&!n.plugin().disabled?5:-1),o(),S("hidden",!n.childBridgeRestartInProgress()),o(),g(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&n.plugin().hasChildBridges&&!n.childBridgeRestartInProgress()&&!n.plugin().hasChildBridgesUnpaired&&n.childBridgeStatus()!=="ok"&&!n.plugin().disabled?7:-1)}}function Bi(t,d){if(t&1){let e=w();r(0,"a",11),f("click",function(){v(e);let i=m();return x(i.openFundingModal(i.plugin()))}),c(1,"i",29),r(2,"span",13),p(3),s()()}if(t&2){let e=m();o(3),b("@",e.plugin().author)}}function Ei(t,d){if(t&1&&(r(0,"span",13),c(1,"i",30),p(2),s()),t&2){let e=m();o(2),b("@",e.plugin().author," ")}}function ki(t,d){if(t&1&&(r(0,"span"),p(1),a(2,"date"),s()),t&2){let e=m(2);o(),b("(",N(2,1,e.plugin().lastUpdated,"yyyy-MM-dd"),")")}}function Ti(t,d){if(t&1&&(r(0,"span"),c(1,"i",31),r(2,"span",13),p(3),u(4,ki,3,4,"span"),s()()),t&2){let e=m();o(3),b("v",e.plugin().latestVersion," "),o(),g(e.plugin().lastUpdated?4:-1)}}function Ii(t,d){if(t&1&&(c(0,"i",32),p(1)),t&2){let e=m();o(),b("v",e.plugin().installedVersion," ")}}function Mi(t,d){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),f("click",function(){v(e);let i=m(2);return x(i.doChildBridgeAction("restart"))}),c(2,"i",36),s()}if(t&2){let e=m(2);S("openDelay",150)("ngbTooltip",l(1,2,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function Vi(t,d){if(t&1){let e=w();r(0,"a",37),f("click",function(){v(e);let i=m(2);return x(i.enablePlugin(i.plugin()))}),c(1,"i",38),a(2,"translate"),s()}t&2&&(o(),S("ngbTooltip",l(2,2,"common.labels.disabled"))("openDelay",150))}function Di(t,d){if(t&1){let e=w();r(0,"a",39),f("click",function(){v(e);let i=m(2);return x(i.installAlternateVersion())}),c(1,"i",40),s()}}function $i(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.viewPluginLog())}),c(1,"i",49),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.plugin_logs")," "))}function Ai(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.installAlternateVersion())}),c(1,"i",50),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.manage_version")," "))}function Ni(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openJsonEditor())}),c(1,"i",51),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.json_config")," "))}function Oi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.disablePlugin(i.plugin()))}),c(1,"i",52),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.disable")," "))}function Li(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.enablePlugin(i.plugin()))}),c(1,"i",53),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.manage.enable")," "))}function Hi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.uninstallPlugin())}),c(1,"i",54),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"plugins.button_uninstall")," "))}function ji(t,d){t&1&&c(0,"div",47)}function zi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("restart"))}),c(1,"i",57),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function qi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("stop"))}),c(1,"i",58),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function Ui(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("start"))}),c(1,"i",59),p(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),b(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function Fi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",55),p(2),a(3,"translate"),s(),u(4,zi,4,3,"button",46),u(5,qi,4,3,"button",46),u(6,Ui,4,3,"button",46),r(7,"button",44),f("click",function(){v(e);let i=m(3);return x(i.resetChildBridges())}),c(8,"i",56),p(9),a(10,"translate"),s()}if(t&2){let e=m(3);o(2),b(" ",l(3,5,"child_bridge.bridge_settings")," "),o(2),g(e.childBridgeRestartInProgress()?-1:4),o(),g(e.allChildBridgesStopped()?-1:5),o(),g(e.allChildBridgesStopped()?6:-1),o(3),b(" ",l(10,7,"child_bridge.reset_accessories")," ")}}function Ri(t,d){t&1&&c(0,"div",47)}function Gi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",60),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"child_bridge.setup")," "))}function Qi(t,d){t&1&&c(0,"div",47)}function Wi(t,d){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",60),p(2),a(3,"translate"),s()}t&2&&(o(2),b(" ",l(3,1,"child_bridge.setup")," "))}function Ji(t,d){t&1&&c(0,"div",47)}function Ki(t,d){if(t&1&&(r(0,"a",48),c(1,"i",61),p(2),a(3,"translate"),s()),t&2){let e=m(3);S("href",e.plugin().links.bugs,O),o(2),b(" ",l(3,2,"support.links.issue")," ")}}function Xi(t,d){if(t&1){let e=w();r(0,"span",35)(1,"a",41),c(2,"i",42),s(),r(3,"div",43)(4,"button",44),f("click",function(){v(e);let i=m(2);return x(i.openSettings())}),c(5,"i",45),p(6),a(7,"translate"),s(),u(8,$i,4,3,"button",46),u(9,Ai,4,3,"button",46),u(10,Ni,4,3,"button",46),u(11,Oi,4,3,"button",46),u(12,Li,4,3,"button",46),u(13,Hi,4,3,"button",46),u(14,ji,1,0,"div",47),u(15,Fi,11,9),u(16,Ri,1,0,"div",47),u(17,Gi,4,3,"button",46),u(18,Qi,1,0,"div",47),u(19,Wi,4,3,"button",46),u(20,Ji,1,0,"div",47),u(21,Ki,4,4,"a",48),s()()}if(t&2){let e,n,i=m(2);o(),B("aria-label","Plugin Actions Dropdown"),o(5),b(" ",l(7,16,"plugins.button_settings")," "),o(2),g(i.plugin().isConfigured&&!i.plugin().disabled?8:-1),o(),g(i.plugin().publicPackage?9:-1),o(),g(!i.isMobile()&&i.plugin().name!=="homebridge-config-ui-x"?10:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"&&!i.plugin().disabled?11:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"&&i.plugin().disabled?12:-1),o(),g(i.plugin().name!=="homebridge-config-ui-x"?13:-1),o(),g(!i.plugin().disabled&&i.plugin().isConfigured&&i.plugin().hasChildBridges&&i.plugin().installedVersion&&i.plugin().name!=="homebridge-config-ui-x"?14:-1),o(),g(i.plugin().hasChildBridges&&!i.plugin().disabled?15:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&!i.plugin().recommendChildBridge?16:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&!i.plugin().recommendChildBridge?17:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&i.plugin().recommendChildBridge&&i.plugin().updateAvailable?18:-1),o(),g(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&i.plugin().recommendChildBridge&&i.plugin().updateAvailable?19:-1),o(),g((e=i.plugin().links)!=null&&e.bugs?20:-1),o(),g((n=i.plugin().links)!=null&&n.bugs?21:-1)}}function Yi(t,d){if(t&1&&(r(0,"div",9),u(1,Mi,3,4,"a",17),u(2,Vi,3,4,"a",33),u(3,Di,2,0,"a",34),u(4,Xi,22,18,"span",35),s()),t&2){let e=m();o(),g(!e.plugin().disabled&&e.plugin().hasChildBridges&&e.childBridgeStatus()==="ok"?1:-1),o(),g(e.plugin().installedVersion&&e.plugin().disabled?2:-1),o(),g(e.plugin().publicPackage&&!e.plugin().installedVersion?3:-1),o(),g(e.plugin().installedVersion?4:-1)}}var Je=(()=>{class t{injector=h(ce);$api=h(Z);$auth=h(ie);$md=h(Oe);$modal=h(ne);$plugin=h(le);$settings=h(ee);$toastr=h(Y);$translate=h(F);$ws=h(te);plugin=se.required();childBridges=se.required();io;defaultIcon="assets/hb-icon.png";isAdmin=this.$auth.user.admin;hasChildBridges=E(!1);allChildBridgesStopped=E(!1);childBridgeStatus=E("pending");childBridgeRestartInProgress=E(!1);isMobile=E("");setChildBridges=E([]);constructor(){ue(()=>{let e=this.childBridges();this.hasChildBridges.set(e.length>0),this.allChildBridgesStopped.set(e.every(n=>n.manuallyStopped===!0)),this.hasChildBridges()&&(e.some(n=>n.status==="down")?this.childBridgeStatus.set("down"):e.some(n=>n.status==="pending")?this.childBridgeStatus.set("pending"):e.some(n=>n.status==="ok")&&this.childBridgeStatus.set("ok")),this.setChildBridges.set(e)})}ngOnInit(){this.isMobile.set(this.$md.detect.mobile()),this.io=this.$ws.getExistingNamespace("child-bridges"),this.isMobile()&&this.plugin().displayName.toLowerCase().startsWith("homebridge ")&&(this.plugin().displayName=this.plugin().displayName.replace(/^homebridge /i,"")),this.plugin().icon||(this.plugin().icon=this.defaultIcon)}openFundingModal(e){let n=q([{provide:z,useValue:{plugin:e}}],this.injector);this.$modal.open(Qe,{size:"lg",backdrop:"static",injector:n})}pluginInfoModal(e){let n=q([{provide:z,useValue:{plugin:e}}],this.injector);this.$modal.open(We,{size:"lg",backdrop:"static",injector:n})}disablePlugin(e){return D(this,null,function*(){let n=q([{provide:oe,useValue:{pluginName:e.displayName||e.name,isConfigured:e.isConfigured,isConfiguredDynamicPlatform:e.isConfiguredDynamicPlatform,keepOrphans:this.$settings.keepOrphans}}],this.injector),i=this.$modal.open(Ge,{size:"lg",backdrop:"static",injector:n});try{yield i.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{}),e.disabled=!0,this.hasChildBridges()&&this.doChildBridgeAction("stop"),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(_){console.error(_),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}catch{}})}enablePlugin(e){return D(this,null,function*(){let n=q([{provide:De,useValue:{title:e.name,message:this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.displayName}),confirmButtonLabel:this.$translate.instant("plugins.manage.enable"),faIconClass:"fa-circle-play primary-text"}}],this.injector),i=this.$modal.open(Ae,{size:"lg",backdrop:"static",injector:n});try{yield i.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{}),e.disabled=!1,this.hasChildBridges()&&(yield this.doChildBridgeAction("start")),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(_){console.error(_),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}catch{}})}viewPluginLog(){let e=q([{provide:$e,useValue:{plugin:this.plugin(),childBridges:this.setChildBridges()}}],this.injector);this.$modal.open(Le,{size:"xl",backdrop:"static",injector:e})}doChildBridgeAction(e){return D(this,null,function*(){this.childBridgeRestartInProgress.set(!0);try{for(let n of this.setChildBridges())yield pe(this.io.request(`${e}-child-bridge`,n.username))}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress.set(!1)}finally{setTimeout(()=>{this.childBridgeRestartInProgress.set(!1)},e==="restart"?12e3:e==="stop"?6e3:1e3)}})}handleIconError(){this.plugin().icon=this.defaultIcon}checkAndUpdatePlugin(){this.$plugin.checkAndUpdatePlugin(this.plugin(),this.plugin().latestVersion)}openSettings(){this.$plugin.settings(this.plugin())}openBridgeSettings(){this.$plugin.bridgeSettings(this.plugin())}switchToScoped(){this.$plugin.switchToScoped(this.plugin())}installAlternateVersion(){this.$plugin.installAlternateVersion(this.plugin())}openJsonEditor(){this.$plugin.jsonEditor(this.plugin())}uninstallPlugin(){this.$plugin.uninstallPlugin(this.plugin(),this.setChildBridges())}resetChildBridges(){this.$plugin.resetChildBridges(this.setChildBridges())}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["app-plugin-card"]],inputs:{plugin:[1,"plugin"],childBridges:[1,"childBridges"]},decls:24,vars:15,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,"d-flex","flex-column","me-3","align-items-center","justify-content-between"],["alt","Plugin Icon",1,"plugin-icon-card","mb-3",3,"error","src"],[1,"d-flex","flex-column","justify-content-between",2,"min-width","calc(100% - 80px)"],[1,"d-flex","flex-row","align-items-end"],[1,"d-flex","flex-column","w-100"],[1,"d-flex","flex-row"],[1,"card-title","mb-2","text-truncate"],[1,"ms-auto"],[1,"card-text","mb-2","text-truncate"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-shield-alt","fa-lg","me-1"],[1,"grey-text"],[1,"card-text","mb-2"],["href","javascript:void(0)",1,"card-link"],[1,"card-text","mb-0","grey-text"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"openDelay","ngbTooltip"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"ngbTooltip","openDelay"],[1,"fas","fa-circle-notch","fa-spin","fa-lg","grey-text","ms-3",3,"hidden"],[1,"fas","fa-lg","ms-3",3,"class"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"click","openDelay","ngbTooltip"],[1,"far","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-arrow-right-arrow-left","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"click","ngbTooltip","openDelay"],[1,"fas","fa-sliders","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-bridge","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-qrcode","primary-text","fa-lg","fa-fade","ms-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-lg","ms-3"],[1,"fas","fa-heart","fa-lg","me-1","pink-text"],[1,"fas","fa-heart","fa-lg","me-1",2,"opacity","0.5"],[1,"far","fa-circle-dot","fa-lg","me-1"],[1,"far","fa-circle-check","fa-lg","me-1"],["href","javascript:void(0)",1,"card-link","red-text"],["href","javascript:void(0)"],["ngbDropdown","","placement","left",1,"d-inline-block","ms-3","mt-auto"],[1,"fas","fa-lg","fa-power-off","ms-3"],["href","javascript:void(0)",1,"card-link","red-text",3,"click"],["container","body","triggers","hover",1,"far","fa-pause-circle","fa-lg",3,"ngbTooltip","openDelay"],["href","javascript:void(0)",3,"click"],[1,"far","fa-arrow-alt-circle-down","fa-lg"],["href","javascript:void(0)","ngbDropdownToggle","",1,"card-link","text-decoration-none","mt-auto",2,"outline","none"],[1,"fa-solid","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu","","aria-labelledby","Plugin Actions Dropdown"],["ngbDropdownItem","",3,"click"],[1,"fas","fa-sliders"],["ngbDropdownItem",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[1,"fas","fa-wave-square"],[1,"fas","fa-code-compare"],[1,"fas","fa-code"],[1,"far","fa-circle-pause"],[1,"far","fa-circle-play"],[1,"fas","fa-trash"],[1,"fas","fa-bridge"],[1,"fas","fa-broom"],[1,"icon-button","fas","fa-power-off"],[1,"fas","fa-stop"],[1,"fas","fa-play"],[1,"icon-button","fas","fa-bridge"],[1,"icon-button","fa","fa-question-circle-o"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),f("error",function(){return i.handleIconError()}),s()(),r(4,"div",4)(5,"div",5)(6,"div",6)(7,"div",7)(8,"h5",8),p(9),s(),u(10,Si,8,7,"div",9),s(),r(11,"p",10)(12,"a",11),f("click",function(){return i.pluginInfoModal(i.plugin())}),c(13,"i",12),r(14,"span",13),p(15),s()()(),r(16,"p",14),u(17,Bi,4,1,"a",15),u(18,Ei,3,1,"span",13),s(),r(19,"div",7)(20,"p",16),u(21,Ti,5,2,"span"),u(22,Ii,2,1),s(),u(23,Yi,5,4,"div",9),s()()()()()()),n&2&&(o(3),S("src",i.plugin().icon,O),o(6),C(i.plugin().displayName),o(),g(i.isAdmin?10:-1),o(3),T(he(11,hi,i.plugin().isHbScoped,!i.plugin().isHbScoped&&(i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin),!i.plugin().isHbScoped&&!i.plugin().verifiedPlugin&&!i.plugin().verifiedPlusPlugin)),o(2),C(i.plugin().name),o(2),g((i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin)&&i.plugin().funding?17:-1),o(),g((i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin)&&i.plugin().funding?-1:18),o(3),g(i.plugin().publicPackage&&!i.plugin().installedVersion?21:-1),o(),g(i.plugin().installedVersion?22:-1),o(),g(i.isAdmin?23:-1))},dependencies:[ae,Fe,Ue,qe,ze,je,ve,M],encapsulation:2})}return t})();var Ke=(()=>{class t{$activeModal=h(H);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],decls:28,vars:22,consts:[["role","dialog","aria-modal","true",1,"modal-content"],[1,"modal-header"],["id","plugin-support-modal-title",1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"mb-0"],[3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),p(4),a(5,"translate"),s(),r(6,"button",3),a(7,"translate"),f("click",function(){return i.dismissModal()}),s()(),r(8,"div",4)(9,"div",5),c(10,"i",6),s(),r(11,"ul",7),c(12,"li",8),a(13,"translate"),c(14,"li",8),a(15,"translate"),c(16,"li",8),a(17,"translate"),c(18,"li",8),a(19,"translate"),s(),c(20,"app-support-banner"),s(),r(21,"div",9),c(22,"div",10),r(23,"div",11)(24,"button",12),f("click",function(){return i.dismissModal()}),p(25),a(26,"translate"),s()(),c(27,"div",13),s()()()),n&2&&(B("aria-labelledby","plugin-support-modal-title"),o(4),C(l(5,8,"support.title")),o(2),B("aria-label",l(7,10,"form.button_close")),o(6),S("innerHTML",l(13,12,"plugins.support.list_1"),$),o(2),S("innerHTML",l(15,14,"plugins.support.list_2"),$),o(2),S("innerHTML",l(17,16,"plugins.support.list_3"),$),o(2),S("innerHTML",l(19,18,"plugins.support.list_4"),$),o(7),b(" ",l(26,20,"form.button_close")," "))},dependencies:[Re,M],encapsulation:2})}return t})();var Zi=["searchInput"],et=(t,d)=>({"fa-magnifying-glass":t,"fa-exclamation-circle":d});function it(t,d){t&1&&c(0,"app-spinner")}function tt(t,d){if(t&1){let e=w();r(0,"button",7),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m();return x(i.showSearch())}),c(3,"i"),s(),r(4,"button",8),a(5,"translate"),a(6,"translate"),f("click",function(){v(e);let i=m();return x(i.showStats())}),c(7,"i"),s()}if(t&2){let e=m();S("openDelay",150)("ngbTooltip",l(1,12,"form.search")),B("aria-label",l(2,14,"form.search")),o(3),T(re("fas",e.showSearchBar()?" primary-text":""," fa-search")),o(),S("openDelay",150)("ngbTooltip",l(5,16,"plugins.stats")),B("aria-label",l(6,18,"plugins.stats")),o(3),T(re("fas",e.tab()==="stats"?" primary-text":""," fa-sliders"))}}function nt(t,d){if(t&1){let e=w();r(0,"button",15),a(1,"translate"),f("click",function(){v(e);let i=m(3);return x(i.onClearSearch())}),c(2,"i",16),s()}t&2&&B("aria-label",l(1,1,"form.button_clear"))}function ot(t,d){if(t&1){let e=w();r(0,"div",9)(1,"div",11)(2,"form",12),f("ngSubmit",function(){v(e);let i=m(2);return x(i.onSubmit(i.form))}),c(3,"input",13,0),a(5,"translate"),u(6,nt,3,3,"button",14),s()()()}if(t&2){let e,n=m(2);o(2),S("formGroup",n.form),o(),S("placeholder",l(5,3,"plugins.placeholder_search_plugin")),o(3),g((e=n.form.get("query"))!=null&&e.value?6:-1)}}function at(t,d){if(t&1&&(r(0,"div",17),c(1,"app-plugin-card",19),s()),t&2){let e=d.$implicit,n=m(3);o(),S("plugin",e)("childBridges",n.getPluginChildBridges(e))}}function lt(t,d){if(t&1&&(r(0,"div",18),c(1,"i",20),r(2,"p"),p(3),a(4,"translate"),s()()),t&2){let e=m(3);o(),T(V(5,et,!e.showExitButton(),e.showExitButton())),o(2),C(l(4,3,e.showExitButton()?"plugins.placeholder_search_none":"plugins.placeholder_search_first"))}}function rt(t,d){if(t&1&&(r(0,"div",10),W(1,at,2,2,"div",17,Q),u(3,lt,5,8,"div",18),s()),t&2){let e=m(2);o(),J(e.installedPlugins()),o(2),g(e.installedPlugins().length===0&&!e.loading()&&!e.mainError()?3:-1)}}function st(t,d){if(t&1&&(u(0,ot,7,5,"div",9),u(1,rt,4,1,"div",10)),t&2){let e=m();g(e.showSearchBar()?0:-1),o(),g(e.loading()?-1:1)}}function dt(t,d){t&1&&(r(0,"div",21)(1,"div",22)(2,"code"),p(3,"https://developers.homebridge.io/analytics "),r(4,"a",23),c(5,"i",24),s()()(),r(6,"div",25),p(7),a(8,"translate"),s()(),c(9,"iframe",26)),t&2&&(o(7),C(l(8,1,"plugins.stats_note")))}var Sn=(()=>{class t{destroyRef=h(me);$api=h(Z);$auth=h(ie);$modal=h(ne);$plugin=h(le);$router=h(ye);$settings=h(ee);$toastr=h(Y);$translate=h(F);$ws=h(te);searchInput=be("searchInput");mainError=E(!1);loading=E(!0);tab=E("main");installedPlugins=E([]);childBridges=E([]);showSearchBar=E(!1);showExitButton=E(!1);isSearchMode=E(!1);io;isAdmin=this.$auth.user.admin;form=new Be({query:new Ee("")});ngOnInit(){let e=this.$translate.instant("menu.label_plugins");this.$settings.setPageTitle(e),this.$plugin.onPluginListRefresh.pipe(de(this.destroyRef)).subscribe(()=>{this.loadInstalledPlugins(),this.getChildBridgeMetadata()}),this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>{this.initialize()}),this.io.socket.connected&&this.initialize(),this.io.socket.on("child-bridge-status-update",n=>{let i=this.childBridges().find(_=>_.username===n.username);i?(Object.assign(i,n),this.childBridges.set([...this.childBridges()])):this.childBridges.update(_=>[..._,n])}),this.$router.events.pipe(de(this.destroyRef)).subscribe(n=>{n instanceof xe&&this.loadInstalledPlugins()})}search(){return D(this,null,function*(){this.installedPlugins.set([]),this.loading.set(!0),this.showExitButton.set(!0);try{let e=yield this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`),n=new Set,i=new Map(e.map(_=>[_.name,_]));this.installedPlugins.set(e.reduce((_,k)=>{if(k.name==="homebridge-config-ui-x"||n.has(k.name))return _;if(k.newHbScope){let j=k.newHbScope.to,Xe=i.has(j);(k.installedVersion||!Xe)&&(n.add(j),_.push(k))}else _.push(k);return _},[])),yield this.appendMetaInfo()}catch(e){this.isSearchMode.set(!1),console.error(e);let n=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_search_plugins");this.$toastr.error(n,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}finally{this.loading.set(!1)}})}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.isSearchMode()&&(this.isSearchMode.set(!1),this.loadInstalledPlugins())}onSubmit({value:e}){e.query.length?(this.isSearchMode.set(!0),this.search()):(this.isSearchMode()&&(this.isSearchMode.set(!1),this.loadInstalledPlugins()),this.showSearchBar.set(!1))}showSearch(){if(this.showSearchBar())this.showSearchBar.set(!1),this.isSearchMode()&&(this.isSearchMode.set(!1),this.form.setValue({query:""}),this.loadInstalledPlugins());else{window.document.querySelector("body")?.classList.remove("bg-black"),this.tab.set("main"),this.showSearchBar.set(!0);let e=this.searchInput();e&&setTimeout(()=>e.nativeElement.focus(),0)}}showStats(){if(this.tab()==="stats"){if(this.$settings.actualLightingMode!=="light"){window.document.querySelector("body").classList.remove("bg-black"),this.tab.set("main");return}window.document.querySelector("body").classList.remove("light-mode");let e=document.getElementById("stats-header"),n=document.getElementById("stats-iframe");e&&n&&(e.classList.add("fade-out"),n.classList.add("fade-out")),setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black"),setTimeout(()=>{this.tab.set("main")},250)},250)}else window.document.querySelector("body").classList.add("bg-black"),this.tab.set("stats"),this.showSearchBar.set(!1),this.$settings.actualLightingMode==="light"&&(window.document.querySelector("body").classList.add("light-mode"),setTimeout(()=>{let e=document.getElementById("stats-header"),n=document.getElementById("stats-iframe");e&&n&&(e.classList.add("light-mode"),n.classList.add("light-mode"))},0))}openSupport(){this.$modal.open(Ke,{size:"lg",backdrop:"static"})}canDeactivate(e){if(this.tab()!=="stats")return!0;if(this.$settings.actualLightingMode!=="light")return window.document.querySelector("body").classList.remove("bg-black"),Promise.resolve(!0);window.document.querySelector("body").classList.remove("light-mode");let n=e&&(e.includes("/platform-tools/terminal")||e.includes("/logs"));return new Promise(i=>{let _=document.getElementById("stats-header"),k=document.getElementById("stats-iframe");_&&k&&(_.classList.add("fade-out"),k.classList.add("fade-out")),n?setTimeout(()=>{i(!0)},250):(setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black")},250),setTimeout(()=>{i(!0)},500))})}ngOnDestroy(){window.document.querySelector("body").classList.remove("light-mode"),this.io.end()}getPluginChildBridges(e){return this.childBridges().filter(n=>n.plugin===e.name)}initialize(){return D(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins(),this.installedPlugins().length||this.showSearch();let{action:e,plugin:n}=this.$router.parseUrl(this.$router.url).queryParams;if(e){let i=this.installedPlugins().find(_=>_.name===n);switch(e){case"just-installed":{i&&(i.isConfigured?this.$modal.open(R,{size:"lg",backdrop:"static"}):this.$plugin.settings(i));break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}})}loadInstalledPlugins(){return D(this,null,function*(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.installedPlugins.set([]),this.loading.set(!0),this.mainError.set(!1);try{let e=yield this.$api.get("/plugins");this.installedPlugins.set(e.filter(i=>i.name!=="homebridge-config-ui-x")),yield this.appendMetaInfo();let n=this.installedPlugins().sort((i,_)=>{let k=(i.updateAvailable?1e3:0)+(i.newHbScope?100:0)+(i.disabled?-10:0)+(i.isConfigured?-20:0)+(i.hasChildBridgesUnpaired?5:0)+(i.hasChildBridges&&this.$settings.env.recommendChildBridges?-1:0),j=(_.updateAvailable?1e3:0)+(_.newHbScope?100:0)+(_.disabled?-10:0)+(_.isConfigured?-20:0)+(_.hasChildBridgesUnpaired?5:0)+(_.hasChildBridges&&this.$settings.env.recommendChildBridges?-1:0);return k!==j?j-k:i.name.localeCompare(_.name)});return this.installedPlugins.set(n),n}catch(e){console.error(e);let n=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_load_plugins");this.$toastr.error(n,this.$translate.instant("toast.title_error")),this.mainError.set(!0)}finally{this.loading.set(!1)}})}appendMetaInfo(){return D(this,null,function*(){this.isAdmin&&(yield Promise.all(this.installedPlugins().filter(e=>e.installedVersion).map(e=>D(this,null,function*(){try{let n=yield this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`);e.isConfigured=n.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.prototype.hasOwnProperty.call(n[0],"platform"),e.recommendChildBridge=e.isConfigured&&this.$settings.env.recommendChildBridges&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&n.some(_=>_._bridge&&_._bridge.username);let i=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=i.some(_=>{let k=_.paired===!1&&!this.isBridgeAlertHidden(_.username,"hap"),j=_.matterConfig&&_.matterCommissioned===!1&&!this.isBridgeAlertHidden(_.username,"matter");return k||j}),this.$settings.env.plugins?.hideUpdatesFor?.includes(e.name)&&(e.updateAvailable=!1)}catch(n){console.error(`Failed to load config for ${e.name}:`,n),e.isConfigured=!0,e.hasChildBridges=!0}}))))})}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges.set(e)})}isBridgeAlertHidden(e,n){let i=this.$settings.env.bridges?.find(_=>_.username.toUpperCase()===e.toUpperCase());return i?n==="hap"?!!i.hideHapAlert:!!i.hideMatterAlert:!1}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=I({type:t,selectors:[["ng-component"]],viewQuery:function(n,i){n&1&&_e(i.searchInput,Zi,5),n&2&&fe()},decls:13,vars:9,consts:[["searchInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2","d-none","d-md-inline-block",3,"click","openDelay","ngbTooltip"],[1,"row"],[1,"d-flex","flex-wrap","justify-content-between"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"search-bar",3,"placeholder"],["type","button",1,"search-bar-clear"],["type","button",1,"search-bar-clear",3,"click"],["aria-hidden","true",1,"fas","fa-square-xmark"],[1,"hb-plugin-space-between"],[1,"alert","alert-info","mt-4","text-center","w-100"],[3,"plugin","childBridges"],[1,"fas","primary-text","my-3",2,"font-size","75px"],["id","stats-header",1,"w-100","py-3","hb-stats-header","text-white","text-center"],[1,"mb-2"],["href","https://developers.homebridge.io/analytics","target","_blank"],[1,"fa","fa-external-link"],[1,"small","grey-text"],["src",ge`https://developers.homebridge.io/analytics/`,"id","stats-iframe","sandbox","allow-scripts allow-same-origin allow-popups","referrerpolicy","no-referrer",1,"hb-stats"]],template:function(n,i){n&1&&(u(0,it,1,0,"app-spinner"),r(1,"div",1)(2,"div",2)(3,"h3",3),p(4),a(5,"translate"),s()(),r(6,"div",4),u(7,tt,8,20),r(8,"button",5),a(9,"translate"),f("click",function(){return i.openSupport()}),c(10,"i",6),s()()(),u(11,st,2,2)(12,dt,10,3)),n&2&&(g(i.loading()?0:-1),o(4),C(l(5,5,"menu.label_plugins")),o(3),g(i.isAdmin?7:-1),o(),B("aria-label",l(9,7,"support.title")),o(3),g(i.tab()==="main"?11:i.tab()==="stats"?12:-1))},dependencies:[Ne,Me,ke,Pe,we,Se,Ve,Ie,Te,Je,ae,M],styles:["body.light-mode{transition:background-color .25s ease-in-out}form[_ngcontent-%COMP%]{position:relative}.search-bar[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px 45px 10px 10px;margin-bottom:15px}@media(hover:hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.search-bar-clear[_ngcontent-%COMP%]{position:absolute;right:8px;top:25px;height:50px;background:transparent;border:none;font-size:20px;color:#d0d0d0;cursor:pointer;padding:0 8px;display:flex;align-items:center}.search-bar-clear[_ngcontent-%COMP%]:hover{color:#a0a0a0}.hb-plugin-space-between[_ngcontent-%COMP%]{box-sizing:border-box;width:calc(50% - 6.6666666667px)}@media only screen and (max-width:991px){.hb-plugin-space-between[_ngcontent-%COMP%]{width:100%}}.hb-stats-header[_ngcontent-%COMP%]{background:#242424;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.hb-stats-header.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}.hb-stats-header.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}.hb-stats-header[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{border:1px solid grey;border-radius:5px;padding:5px;font-size:.8rem;color:#d3d3d3}.hb-stats[_ngcontent-%COMP%]{height:calc(100% - 121px);width:100%;overflow:hidden;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.hb-stats.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}.hb-stats.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}@media(max-width:767px){.hb-stats[_ngcontent-%COMP%]{height:calc(100% - 60px)}}@keyframes _ngcontent-%COMP%_fadeIn{to{opacity:1}}@keyframes _ngcontent-%COMP%_fadeOut{to{opacity:0}}"]})}return t})();export{Sn as PluginsComponent};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-UU7UROHF.js";import"./chunk-VJN6YUS2.js";export default a();
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-QMHMKWPA.js";import"./chunk-VJN6YUS2.js";export default a();
@@ -1,4 +1,4 @@
1
- import{a as P}from"./chunk-UHG23NUX.js";import{a as D}from"./chunk-NYEZF6Y3.js";import{c as x}from"./chunk-CAY6MDP6.js";import{C as I,c as k,e as y,l as T}from"./chunk-JPAZUSRO.js";import{b as $}from"./chunk-MAJDTCMY.js";import{C as M,F as V,I as E}from"./chunk-VWUZDCBZ.js";import{Ab as h,Fb as f,Gb as d,Hb as a,Ib as w,Rb as v,Xb as g,Za as p,Zb as s,aa as r,ga as l,ha as c,kc as S,nb as b,sa as m,zb as u}from"./chunk-F5MBSCH4.js";import{h as C}from"./chunk-B4AJQJMI.js";function H(e,_){e&1&&w(0,"i",6)}function N(e,_){e&1&&w(0,"i",7)}function O(e,_){if(e&1){let t=v();d(0,"ngx-monaco-editor",10),g("onInit",function(o){l(t);let n=s();return c(n.onEditorInit(o))})("keydown.control.s",function(o){l(t);let n=s();return o.preventDefault(),c(n.onSave())})("keydown.meta.s",function(o){l(t);let n=s();return o.preventDefault(),c(n.onSave())}),a()}if(e&2){let t=s();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function z(e,_){if(e&1){let t=v();d(0,"textarea",11),g("ngModelChange",function(o){l(t);let n=s();return c(n.startupScript.set(o))}),S(1," "),a()}if(e&2){let t=s();f("ngModel",t.startupScript())}}var W=(()=>{class e{$api=r(E);$md=r(P);$route=r(x);$settings=r($);$toastr=r(V);$translate=r(M);lastHeight;visualViewPortEventCallback;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;startupScript=m("");saveInProgress=m(!1);isMobile=m(!1);constructor(){this.isMobile.set(!!this.$md.detect.mobile())}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light"},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(t=>{this.startupScript.set(t.startupScript.script)}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript())}onSave(){return C(this,null,function*(){if(this.saveInProgress())return;this.saveInProgress.set(!0),this.isMobile()||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript.set(this.monacoEditor.getModel().getValue()));let t=this.startupScript();if(!["#!/bin/sh","#!/bin/bash"].includes(t.split(`
1
+ import{a as P}from"./chunk-UUDM2ZE6.js";import{a as D}from"./chunk-PQPDMNKK.js";import{c as x}from"./chunk-F332UHUK.js";import{C as I,c as k,e as y,l as T}from"./chunk-WZXTVC6W.js";import{b as $}from"./chunk-2QUH2FXS.js";import{C as M,F as V,I as E}from"./chunk-7AD56BSX.js";import{Ab as h,Fb as f,Gb as d,Hb as a,Ib as w,Rb as v,Xb as g,Za as p,Zb as s,aa as r,ga as l,ha as c,kc as S,nb as b,sa as m,zb as u}from"./chunk-JJ5CEM72.js";import{h as C}from"./chunk-VJN6YUS2.js";function H(e,_){e&1&&w(0,"i",6)}function N(e,_){e&1&&w(0,"i",7)}function O(e,_){if(e&1){let t=v();d(0,"ngx-monaco-editor",10),g("onInit",function(o){l(t);let n=s();return c(n.onEditorInit(o))})("keydown.control.s",function(o){l(t);let n=s();return o.preventDefault(),c(n.onSave())})("keydown.meta.s",function(o){l(t);let n=s();return o.preventDefault(),c(n.onSave())}),a()}if(e&2){let t=s();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function z(e,_){if(e&1){let t=v();d(0,"textarea",11),g("ngModelChange",function(o){l(t);let n=s();return c(n.startupScript.set(o))}),S(1," "),a()}if(e&2){let t=s();f("ngModel",t.startupScript())}}var W=(()=>{class e{$api=r(E);$md=r(P);$route=r(x);$settings=r($);$toastr=r(V);$translate=r(M);lastHeight;visualViewPortEventCallback;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;startupScript=m("");saveInProgress=m(!1);isMobile=m(!1);constructor(){this.isMobile.set(!!this.$md.detect.mobile())}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light"},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(t=>{this.startupScript.set(t.startupScript.script)}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript())}onSave(){return C(this,null,function*(){if(this.saveInProgress())return;this.saveInProgress.set(!0),this.isMobile()||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript.set(this.monacoEditor.getModel().getValue()));let t=this.startupScript();if(!["#!/bin/sh","#!/bin/bash"].includes(t.split(`
2
2
  `)[0].trim())){this.$toastr.error(this.$translate.instant("platform.docker.must_use_hashbang"),this.$translate.instant("toast.title_error"));let i=`#!/bin/sh
3
3
 
4
4
  ${t}`;this.startupScript.set(i),this.isMobile()||this.monacoEditor.getModel().setValue(i),this.saveInProgress.set(!1);return}try{yield this.$api.put("/platform-tools/docker/startup-script",{script:t}),this.$toastr.success(this.$translate.instant("platform.docker.restart_required"),this.$translate.instant("platform.docker.script_saved"))}catch(i){console.error(i),this.$toastr.error(i.message,this.$translate.instant("toast.title_error"))}this.saveInProgress.set(!1)})}ngOnDestroy(){window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}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)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=b({type:e,selectors:[["ng-component"]],decls:11,vars:4,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0","font-monospace"],[1,"col-6","text-end"],[1,"btn","btn-primary","waves-effect","m-0",3,"click","disabled"],[1,"fas","fa-circle-notch","fa-spin"],[1,"fas","fa-floppy-disk"],[1,"flex-grow-1","h-100","w-100","my-2",3,"options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModel"],[1,"flex-grow-1","h-100","w-100","my-2",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModelChange","ngModel"]],template:function(i,o){i&1&&(d(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),S(4,"startup.sh"),a()(),d(5,"div",4)(6,"button",5),g("click",function(){return o.onSave()}),u(7,H,1,0,"i",6)(8,N,1,0,"i",7),a()()(),u(9,O,1,2,"ngx-monaco-editor",8),u(10,z,2,1,"textarea",9),a()),i&2&&(p(6),f("disabled",o.saveInProgress()),p(),h(o.saveInProgress()?7:8),p(2),h(o.isMobile()?-1:9),p(),h(o.isMobile()?10:-1))},dependencies:[D,I,k,y,T],encapsulation:2})}return e})();export{W as StartupScriptComponent};