@abtnode/webapp 1.17.7-beta-20251227-001958-ea2ba3f5 → 1.17.7-beta-20251229-223813-e1e6c5e3

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 (198) hide show
  1. package/blocklet.js +1 -1
  2. package/blocklet.yml +1 -1
  3. package/dist/assets/{AdapterDayjs-BdvIhlUS.js → AdapterDayjs-BBi3P2IC.js} +1 -1
  4. package/dist/assets/{Add-75JKngmd.js → Add-DBDPvM2L.js} +1 -1
  5. package/dist/assets/ArrowDropDown-CqYw-eY9.js +1 -0
  6. package/dist/assets/{Autocomplete-kOONI_Pq.js → Autocomplete-6CVDh-bw.js} +1 -1
  7. package/dist/assets/{Breadcrumbs-cTLPSR0j.js → Breadcrumbs-CIhr-IBH.js} +1 -1
  8. package/dist/assets/{ButtonGroup-CHbmdfp0.js → ButtonGroup-Um1mBtyg.js} +1 -1
  9. package/dist/assets/{CSSTransition-D4VQqBYl.js → CSSTransition-BcU1vShi.js} +1 -1
  10. package/dist/assets/{CallMerge-DlG0KEtx.js → CallMerge-CqN4JiFM.js} +1 -1
  11. package/dist/assets/{CardContent-DzGFYCPu.js → CardContent-C16B5Bpa.js} +1 -1
  12. package/dist/assets/{ChevronLeft-BtZyYDNZ.js → ChevronLeft-Ds4qWfjb.js} +1 -1
  13. package/dist/assets/{ChevronRight-RokC-KBT.js → ChevronRight-BFqUOmvp.js} +1 -1
  14. package/dist/assets/{Clear-1FRwWVql.js → Clear-L4-iFi83.js} +1 -1
  15. package/dist/assets/{Delete-BwS0ZYTA.js → Delete-DVp4fJb1.js} +1 -1
  16. package/dist/assets/{DeleteOutline-1X_2pN5H.js → DeleteOutline-CDxyWfLx.js} +1 -1
  17. package/dist/assets/{Done-CL3etDC5.js → Done-D7TYY_5X.js} +1 -1
  18. package/dist/assets/{Edit-CHx0TOIp.js → Edit-DYn1CF5Y.js} +1 -1
  19. package/dist/assets/{ErrorOutline-C1GIrHWO.js → ErrorOutline-By74cLGJ.js} +1 -1
  20. package/dist/assets/{FilterList-CeGx1Nvy.js → FilterList-Czj4Os71.js} +1 -1
  21. package/dist/assets/{Google-C7HwiVx9.js → Google-DZPfsfDE.js} +1 -1
  22. package/dist/assets/{HelpOutline-v-SutwQQ.js → HelpOutline-DS85eUTc.js} +1 -1
  23. package/dist/assets/{KeyboardArrowDown-CUBW-wSD.js → KeyboardArrowDown-C53dgTNk.js} +1 -1
  24. package/dist/assets/{Launch-DW7r2j3F.js → Launch-l1uaKrAG.js} +1 -1
  25. package/dist/assets/{Link-JpBA3kOe.js → Link-Bs8vi6ND.js} +1 -1
  26. package/dist/assets/{ListItemButton-YCbqUifF.js → ListItemButton-KbcDtzXD.js} +1 -1
  27. package/dist/assets/{ListSubheader-B7asbL85.js → ListSubheader-C-Lxj5FB.js} +1 -1
  28. package/dist/assets/{LoadingButton-KZUgibtr.js → LoadingButton-CZNIV9Ok.js} +1 -1
  29. package/dist/assets/{MoreVert-CAHrwnnF.js → MoreVert-DaM6pG5s.js} +1 -1
  30. package/dist/assets/{OpenInNew-qP3b9J2q.js → OpenInNew-BQeSMHR-.js} +1 -1
  31. package/dist/assets/{Refresh-kYd1krYv.js → Refresh-BJnu5a0L.js} +1 -1
  32. package/dist/assets/{Replay-SZk6LYf7.js → Replay-BV6q004T.js} +1 -1
  33. package/dist/assets/{Search-l7-Pwd1y.js → Search-CApGhXwm.js} +1 -1
  34. package/dist/assets/{Stepper-BGGXEyEh.js → Stepper-B2_oAcOZ.js} +1 -1
  35. package/dist/assets/{TableSearch-7aO3QXBn.js → TableSearch-CKjIHAce.js} +1 -1
  36. package/dist/assets/{ToggleButtonGroup-CavSDkQH.js → ToggleButtonGroup-t3tLzS74.js} +1 -1
  37. package/dist/assets/{UnfoldMore-DGe5-aCR.js → UnfoldMore-D2Y42T3n.js} +1 -1
  38. package/dist/assets/{Verified-D57Ev6tJ.js → Verified-QiB22jgm.js} +1 -1
  39. package/dist/assets/{VerifiedUser-BVjv0CVW.js → VerifiedUser-kPobsDlg.js} +1 -1
  40. package/dist/assets/{ViewList-DnUToii8.js → ViewList-Ceb1JHIv.js} +1 -1
  41. package/dist/assets/{_createAggregator-CvUwaNA9.js → _createAggregator-g-PBWDTI.js} +1 -1
  42. package/dist/assets/{actions-DmtsArNi.js → actions-BCMsejAj.js} +2 -2
  43. package/dist/assets/actions-Dp-VL6XB.js +1 -0
  44. package/dist/assets/{agreement-Cr1FBybU.js → agreement-Bun3wUY-.js} +4 -4
  45. package/dist/assets/api-DDSUcMPT.js +1 -0
  46. package/dist/assets/{appearance-349xWfPH.js → appearance-yP6FtjZ0.js} +1 -1
  47. package/dist/assets/{audit-logs-MqhyOVr_.js → audit-logs-bPLYn_cc.js} +3 -3
  48. package/dist/assets/base-chart-BZha7l7D.js +1 -0
  49. package/dist/assets/{blocklet-BWp5BZ2L.js → blocklet-Nw4kpsVs.js} +1 -1
  50. package/dist/assets/{chain-Cs69RHJH.js → chain-WdOor_5_.js} +1 -1
  51. package/dist/assets/click-to-copy-DjkhfhsV.js +1 -0
  52. package/dist/assets/cloneDeep-Bl8wZyrm.js +1 -0
  53. package/dist/assets/{config-navigation-CB4CUmS1.js → config-navigation-Pdv-g1jO.js} +22 -22
  54. package/dist/assets/{connect-to-BOU_fUy1.js → connect-to-D2aJnmIt.js} +3 -3
  55. package/dist/assets/{cssMode-irya--jO.js → cssMode-CbVfvomN.js} +1 -1
  56. package/dist/assets/{de-CCwoF0w2.js → de-EFAP4yzZ.js} +1 -1
  57. package/dist/assets/{delete-confirm-Czdis-d2.js → delete-confirm-DCHvoTQs.js} +1 -1
  58. package/dist/assets/{depsEqual-DtNa6mfL.js → depsEqual-LiU_ATMs.js} +1 -1
  59. package/dist/assets/{detail-aen8Gspk.js → detail-B-lIb4O1.js} +3 -3
  60. package/dist/assets/{domains-BRAsjXjE.js → domains-CeCMQUBm.js} +2 -2
  61. package/dist/assets/{download-DJuVrKpX.js → download-DHuOHOVu.js} +1 -1
  62. package/dist/assets/{edit.svg-H5puV-Kf.js → edit.svg-D0_FvYeH.js} +1 -1
  63. package/dist/assets/emotion-cache.browser.esm-D1-P5QGD.js +1 -0
  64. package/dist/assets/engine-D8Acg7DY.js +1 -0
  65. package/dist/assets/{freemarker2-PK6zL7Wa.js → freemarker2-Dbd2dz2J.js} +1 -1
  66. package/dist/assets/{get-safe-url-GMIK5bS7.js → get-safe-url-DDm_hPj1.js} +1 -1
  67. package/dist/assets/getValidReactChildren-DpcxJbs9.js +1 -0
  68. package/dist/assets/{graphqlMode-DhfmM5z8.js → graphqlMode-BNREvohj.js} +2 -2
  69. package/dist/assets/{handlebars-suZg9Rb2.js → handlebars-Ce_TkpEQ.js} +1 -1
  70. package/dist/assets/{html-DLf47i1s.js → html-CUmDiv7k.js} +1 -1
  71. package/dist/assets/{html-title-BhYkXb7K.js → html-title-D3mv3IQk.js} +1 -1
  72. package/dist/assets/{htmlMode-CRO-0abo.js → htmlMode-Ca_TsxJH.js} +1 -1
  73. package/dist/assets/{iframe-D8OX0v5x.js → iframe-Dt-xbP5x.js} +1 -1
  74. package/dist/assets/{index-Dk8_eJCH.js → index-2VA5XrmO.js} +17 -17
  75. package/dist/assets/index-2lzs7bat.js +1 -0
  76. package/dist/assets/{index-DeYnJhWD.js → index-B0O0JwRT.js} +1 -1
  77. package/dist/assets/{index-BuAy14Fb.js → index-B11n09kE.js} +1 -1
  78. package/dist/assets/{index-HMHQfeWc.js → index-B2WmX6Fx.js} +9 -9
  79. package/dist/assets/{index-B0YA0eex.js → index-BHAdZ1FZ.js} +2 -2
  80. package/dist/assets/{index-C43er3Ol.js → index-BLI3C2o7.js} +1 -1
  81. package/dist/assets/index-BPuMob2k.js +1 -0
  82. package/dist/assets/{index-CjSZc8j3.js → index-BQNKAwfZ.js} +1 -1
  83. package/dist/assets/{index-DcB5G7mF.js → index-Be8ehpQE.js} +1 -1
  84. package/dist/assets/{index-CfCUQn4l.js → index-BsjY45Cd.js} +4 -4
  85. package/dist/assets/{index-D94ou7Gi.js → index-BxX_nqnW.js} +2 -2
  86. package/dist/assets/{index-C8P0cv0U.js → index-C8CmKnU4.js} +2 -2
  87. package/dist/assets/{index--sTZZj1Y.js → index-CAA1AdyJ.js} +2 -2
  88. package/dist/assets/{index-CV64vjhs.js → index-CADLzzXJ.js} +3 -3
  89. package/dist/assets/index-CKHOafPq.js +79 -0
  90. package/dist/assets/{index-lJeVBvul.js → index-CL2N86sI.js} +12 -12
  91. package/dist/assets/index-CODEE-RB.js +5 -0
  92. package/dist/assets/{index-B8RjSIJa.js → index-CQYzPG_n.js} +1 -1
  93. package/dist/assets/{index-Devav5mO.js → index-CQogNORn.js} +12 -12
  94. package/dist/assets/{index-929LkcAj.js → index-CR1U7OM5.js} +8 -8
  95. package/dist/assets/{index-BQYunZVD.js → index-CTWQgRaZ.js} +1 -1
  96. package/dist/assets/index-CaDcvTD7.js +155 -0
  97. package/dist/assets/{index-BbjlOuR9.js → index-CdxsHt3r.js} +3 -3
  98. package/dist/assets/{index-DV1T4J21.js → index-Ci1hoD9j.js} +2 -2
  99. package/dist/assets/{index-CUYDbdpc.js → index-CvZItgju.js} +1 -1
  100. package/dist/assets/{index-DARZEe4H.js → index-CypG4Dbq.js} +2 -2
  101. package/dist/assets/{index-BLAEccy_.js → index-D0-rZXcm.js} +1 -1
  102. package/dist/assets/{index-3eT72yhD.js → index-D319vBae.js} +9 -9
  103. package/dist/assets/index-DJ9zSKl1.js +87 -0
  104. package/dist/assets/{index-DkSARRFf.js → index-DQItZ4UM.js} +1 -1
  105. package/dist/assets/{index-Bq_Xf-WS.js → index-DT5BIL2_.js} +1 -1
  106. package/dist/assets/index-DdYx-VNK.js +1 -0
  107. package/dist/assets/{index-0K1n4OCx.js → index-DjQqmpzQ.js} +2 -2
  108. package/dist/assets/{index-DwIPLdSZ.js → index-Dt9htCod.js} +17 -17
  109. package/dist/assets/{index-Y-QvttbJ.js → index-DtJVzdtH.js} +111 -111
  110. package/dist/assets/{index-DGClCi00.js → index-Dtkcfmzb.js} +11 -11
  111. package/dist/assets/{index-LHDtQAe7.js → index-IWOqJkOB.js} +1 -1
  112. package/dist/assets/{index-sa-k6sge.js → index-KI2LGzUW.js} +1 -1
  113. package/dist/assets/{index-B9IBU_20.js → index-WbuPRmjd.js} +1 -1
  114. package/dist/assets/{index-D-GgAn4D.js → index-jT3H-jhB.js} +1 -1
  115. package/dist/assets/{index-RvLFbIq0.js → index-kRFEBldM.js} +2 -2
  116. package/dist/assets/{index-DZVqWhON.js → index-umVLVZjs.js} +1 -1
  117. package/dist/assets/{index-BJDBjriy.js → index-z-tbDeE3.js} +4 -4
  118. package/dist/assets/{index.esm-D4mbID4N.js → index.esm-Zck39Kvz.js} +1 -1
  119. package/dist/assets/{install-from-url-B3WY31cp.js → install-from-url-BXftFn4t.js} +1 -1
  120. package/dist/assets/{invitation--cbaLA7C.js → invitation-4F28SRYz.js} +4 -4
  121. package/dist/assets/is-path-prefix-equal-BJMXSv43.js +1 -0
  122. package/dist/assets/item-C1JxTPT2.js +273 -0
  123. package/dist/assets/{javascript-ChSXcPeU.js → javascript-B0m7UVIe.js} +1 -1
  124. package/dist/assets/{jsonMode-BRST5wef.js → jsonMode-CgwGbFre.js} +1 -1
  125. package/dist/assets/{liquid-CpSF9izi.js → liquid-BZyWy1Tr.js} +1 -1
  126. package/dist/assets/{list-header-CAyaG0bp.js → list-header-BZRIF_iO.js} +1 -1
  127. package/dist/assets/{lock.svg-DtLI8vnk.js → lock.svg-Ba4McgFD.js} +1 -1
  128. package/dist/assets/{log-DZS6nYV_.js → log-BFB-zvPt.js} +2 -2
  129. package/dist/assets/{lottie-react.esm-D7vuHojB.js → lottie-react.esm-CGSms1Pf.js} +1 -1
  130. package/dist/assets/{mdx-BWUp_fub.js → mdx-BRVCuIrx.js} +1 -1
  131. package/dist/assets/{memory-ClDXUWJ0.js → memory-B2j_d87p.js} +1 -1
  132. package/dist/assets/{metric-DyS1o5oY.js → metric-DpvjSsZq.js} +1 -1
  133. package/dist/assets/omit-CyTnrDNo.js +1 -0
  134. package/dist/assets/{overview-BZK8iTTP.js → overview-DkMLRtwO.js} +1 -1
  135. package/dist/assets/{permission-C73DtYHh.js → permission-DTFazP7s.js} +1 -1
  136. package/dist/assets/{preference-A-YVUe6G.js → preference-DYVCo0KF.js} +9 -9
  137. package/dist/assets/{python-CxcQpe_X.js → python-B-wSNZ_T.js} +1 -1
  138. package/dist/assets/{raf-schd.esm-DUBpm6hM.js → raf-schd.esm-B7_MlDzu.js} +1 -1
  139. package/dist/assets/{razor-CV7jqhrT.js → razor-BR_HjGgi.js} +1 -1
  140. package/dist/assets/{rotate-session-key-C16BchY6.js → rotate-session-key-Bz5QE7gB.js} +1 -1
  141. package/dist/assets/{runtime-DQsAvWqZ.js → runtime-DM0B8rA4.js} +1 -1
  142. package/dist/assets/schema-BKPaewSy.js +1 -0
  143. package/dist/assets/sdk-CXClyXm7.js +1 -0
  144. package/dist/assets/{service-DAzvPZkc.js → service-DkoTQaTk.js} +1 -1
  145. package/dist/assets/{shorten-label-CkQfhtXr.js → shorten-label-BR48Ofqe.js} +1 -1
  146. package/dist/assets/{simple-select-CuyjHO0U.js → simple-select-D38wTw_o.js} +1 -1
  147. package/dist/assets/{spaces-CWPgDpWK.js → spaces-YFYDpL5l.js} +1 -1
  148. package/dist/assets/status-BTCwUhiG.js +1 -0
  149. package/dist/assets/{status-Dzw7M8P_.js → status-B_ZSV6JY.js} +1 -1
  150. package/dist/assets/{switch-control-BclMvWCC.js → switch-control-Fq47wOrt.js} +2 -2
  151. package/dist/assets/{table-icons-9svpZs1q.js → table-icons-DYQRHdVu.js} +1 -1
  152. package/dist/assets/{team-j4eaMxpB.js → team-DKJfzzKD.js} +1 -1
  153. package/dist/assets/{toLower-8m1XzQqH.js → toLower-62VYhzjn.js} +1 -1
  154. package/dist/assets/toUpper-CBmQ5f7q.js +1 -0
  155. package/dist/assets/traffic-Dh_MwZxy.js +1 -0
  156. package/dist/assets/{tsMode-CqXYRIKQ.js → tsMode-CxSxmJBQ.js} +1 -1
  157. package/dist/assets/{typescript-KJ8oiy4w.js → typescript-Dnu6Xv3U.js} +1 -1
  158. package/dist/assets/{url-evaluation-BstEsUAB.js → url-evaluation-Cf4MPEtF.js} +1 -1
  159. package/dist/assets/{url-join-0c-XnZLH.js → url-join-P8kMCiOB.js} +1 -1
  160. package/dist/assets/{use-mobile-BG1HQZl_.js → use-mobile-BnTDQjTV.js} +1 -1
  161. package/dist/assets/{use-mobile-9lV1jqC7.js → use-mobile-D1KGwOlr.js} +1 -1
  162. package/dist/assets/{useAsync-Bbnkcz0c.js → useAsync-SwSlukzF.js} +1 -1
  163. package/dist/assets/{useAsyncRetry-DwNYtCt1.js → useAsyncRetry-BQEwzyM4.js} +1 -1
  164. package/dist/assets/{useLocalStorage-B2geQn_J.js → useLocalStorage-41az-hAK.js} +1 -1
  165. package/dist/assets/{useThemeProps-CqzVTStV.js → useThemeProps-Cw6i_sME.js} +1 -1
  166. package/dist/assets/{util-BRuccBUB.js → util-C9NPDRP-.js} +1 -1
  167. package/dist/assets/{wait-container-C4LPSsIr.js → wait-container-GLOlfScg.js} +3 -3
  168. package/dist/assets/{without-wallet--pvprqkp.js → without-wallet-rfYvx_29.js} +1 -1
  169. package/dist/assets/wrap-locale-C-Q-ES8F.js +1 -0
  170. package/dist/assets/{xml-DQZh516a.js → xml-D06mM15g.js} +1 -1
  171. package/dist/assets/{yaml-CpaHe6nN.js → yaml-DrMeEOdm.js} +1 -1
  172. package/dist/index.html +1 -1
  173. package/package.json +1 -1
  174. package/dist/assets/ArrowDropDown-CbIxem1P.js +0 -1
  175. package/dist/assets/actions-BZl9shku.js +0 -1
  176. package/dist/assets/api-CZXns3iQ.js +0 -1
  177. package/dist/assets/base-chart-B_hYrlch.js +0 -1
  178. package/dist/assets/click-to-copy-CJg25x9s.js +0 -1
  179. package/dist/assets/cloneDeep-CvglcUIb.js +0 -1
  180. package/dist/assets/emotion-cache.browser.esm-CaLvcLFC.js +0 -1
  181. package/dist/assets/engine-C4nmXPyL.js +0 -1
  182. package/dist/assets/getValidReactChildren-BTFGvhfH.js +0 -1
  183. package/dist/assets/index-BKwmETrp.js +0 -1
  184. package/dist/assets/index-CHyDna8x.js +0 -79
  185. package/dist/assets/index-CK6zgnPU.js +0 -5
  186. package/dist/assets/index-CL23Woxs.js +0 -87
  187. package/dist/assets/index-DYn_D6bf.js +0 -155
  188. package/dist/assets/index-Di8tb0lj.js +0 -1
  189. package/dist/assets/index-Diu0oJmr.js +0 -1
  190. package/dist/assets/is-path-prefix-equal-BkAKRgRo.js +0 -1
  191. package/dist/assets/item-9qWg89Hm.js +0 -273
  192. package/dist/assets/omit-BgwU28m_.js +0 -1
  193. package/dist/assets/schema-CutOyNqB.js +0 -1
  194. package/dist/assets/sdk-vbwSpYyc.js +0 -1
  195. package/dist/assets/status-D1smxOIE.js +0 -1
  196. package/dist/assets/toUpper-B5GOxJoT.js +0 -1
  197. package/dist/assets/traffic-DIOEDjRI.js +0 -1
  198. package/dist/assets/wrap-locale-D8L6OQkL.js +0 -1
@@ -1,4 +1,4 @@
1
- import{aG as je,j as e,u as Q,r as h,e as $e,aH as Wr,aI as A,aJ as ln,aK as Vn,aL as qr,aM as cn,aN as rt,V as M,ae as le,s as re,aO as dn,o as f,aP as Hr,aQ as un,aR as Gr,H as te,M as mn,T as L,t as H,O as fe,aS as _e,C as K,X as be,v as Z,aT as Xn,Y as pe,K as W,p as mt,aU as Kr,R as V,aF as Ie,aa as et,N as it,aV as Yr,d as Ht,aW as Oe,aX as me,ab as Vr,aY as Xr,aZ as Qr,y as Zr,A as Qn,W as fn,g as pn,h as ne,a_ as Gt,a as _t,b as ft,a$ as Zn,b0 as Jn,U as er,a5 as It,b1 as Jr,b2 as ei,b3 as ti,b4 as ni,b5 as ot,i as gn,b6 as ri,b7 as ii,a7 as kt,b8 as oi,a8 as Lt,L as Kt,I as ai,b9 as si,ba as tr,a9 as li,bb as nr,bc as De,bd as Re,be as ci,bf as Yt,bg as di,$ as rr,D as Ot,f as ir,bh as ui,bi as hn,al as mi,bj as fi,bk as ee,bl as pi,S as xn,l as yn,m as bn,bm as gi,bn as hi,bo as xi}from"./index-Y-QvttbJ.js";import{u as yi,T as bi}from"./html-title-BhYkXb7K.js";import{A as vi}from"./ArrowDropDown-CbIxem1P.js";import{u as Vt,C as B,a as vn}from"./index.esm-D4mbID4N.js";import{S as se,a as ji}from"./switch-control-BclMvWCC.js";import{P as ie}from"./permission-C73DtYHh.js";import{H as or,g as wi}from"./index-LHDtQAe7.js";import{A as ar}from"./Link-JpBA3kOe.js";import{A as Ci}from"./actions-BZl9shku.js";import{D as ve}from"./Delete-BwS0ZYTA.js";import{D as pt}from"./delete-confirm-Czdis-d2.js";import{v as at}from"./index-D-GgAn4D.js";import{s as Si}from"./logo-BKA11TRi.js";import{R as sr,a as Ft,b as ki}from"./url-evaluation-BstEsUAB.js";import{u as Di}from"./useLocalStorage-B2geQn_J.js";import{R as Ri}from"./Refresh-kYd1krYv.js";import{L as Ti}from"./LoadingButton-KZUgibtr.js";import{C as Ei,R as Pi,P as lr,S as Ai}from"./rotate-session-key-C16BchY6.js";import{A as Fe}from"./Add-75JKngmd.js";import{B as cr,D as jn,W as Ke}from"./status-Dzw7M8P_.js";import{i as _i}from"./is-path-prefix-equal-BkAKRgRo.js";import{N as Ii}from"./ChevronRight-RokC-KBT.js";import{I as Li}from"./MoreVert-CAHrwnnF.js";import{E as dr}from"./Edit-CHx0TOIp.js";import{A as Oi}from"./CallMerge-DlG0KEtx.js";import{C as Fi}from"./CardContent-DzGFYCPu.js";import"./FilterList-CeGx1Nvy.js";import"./CSSTransition-D4VQqBYl.js";import"./emotion-cache.browser.esm-CaLvcLFC.js";import"./index-929LkcAj.js";import"./redux-DfszZyTl.js";import"./typeof-QjJsDpFa.js";import"./depsEqual-DtNa6mfL.js";import"./TableSearch-7aO3QXBn.js";import"./Search-l7-Pwd1y.js";import"./Clear-1FRwWVql.js";import"./click-to-copy-CJg25x9s.js";import"./visuallyHidden-Dan1xhjv.js";const Ni=je(e.jsx("path",{d:"m7 14 5-5 5 5z"})),$i=je(e.jsx("path",{d:"M12 3 2 21h20zm1 5.92L18.6 19H13zm-2 0V19H5.4z"})),Ui=je(e.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"})),ur=je(e.jsx("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z"})),zi=je(e.jsx("path",{d:"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"})),Mi=je(e.jsx("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"})),Bi=je(e.jsx("path",{d:"m19 15-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9z"})),ye="Dashboard",mr=h.createContext({}),{Provider:Wi,Consumer:ms}=mr,wn=[ye,A.DOMAIN_FOR_IP_SITE,A.DOMAIN_FOR_IP_SITE_REGEXP],qi=(t,r)=>{if(t.name===A.DOMAIN_FOR_DEFAULT_SITE)return-1;if(r.name===A.DOMAIN_FOR_DEFAULT_SITE)return 1;const n=wn.includes(t.name),i=wn.includes(r.name);return n&&i?cn(t.name,r.name):n?-1:i?1:cn(t.name,r.name)},Cn=({sites:t,nodePort:r})=>{const n=window.location.hostname,a=(t||[]).map(o=>{const{id:s,rules:d=[],corsAllowedOrigins:m=[]}=o;let{domain:c,domainAliases:u}=o;u=u||[],[A.DOMAIN_FOR_IP_SITE,A.DOMAIN_FOR_IP_SITE_REGEXP].includes(c)&&(c=ye,u.find(b=>b.value===n)||u.unshift({protected:!1,value:n}));const j={id:s,name:c,type:"domain",items:[],domainAliases:u,isProtected:o.isProtected,corsAllowedOrigins:m};return(d||[]).forEach(b=>{const{id:x,isProtected:S,from:{pathPrefix:y},to:k}=b;if(k.type===A.ROUTING_RULE_TYPES.BLOCKLET){let D="";Number.parseInt(k.port,10)===Number.parseInt(r,10)?(D="Blocklet Server Dashboard",k.type=A.ROUTING_RULE_TYPES.DAEMON):D=k.did,j.items.push({id:x,name:ln(y||"/"),title:D,type:"rule",isProtected:S,pathPrefix:y,to:k})}else j.items.push({id:x,pathPrefix:y,name:ln(y||"/"),title:"Blocklet Server Dashboard",type:"rule",isProtected:S,to:k})}),j.items=Vn(j.items,b=>b.name),j}).sort(qi),l=a.reduce((o,s)=>{let{name:d}=s;return d.endsWith(A.BLOCKLET_SITE_GROUP_SUFFIX)&&([d]=d.split(".")),o[d]={...s,rules:s.items},o},{});return{sites:a,siteMap:l}},Hi=({did:t,domain:r,mountPoint:n,siteMap:i,params:a}={})=>{if(!i)return null;const l=i[t];if(!l)return null;const o=r||(l.domainAliases||[])[0];if(!o)return null;let s=n;if(!s){const d=l.rules.filter(m=>!m.name.startsWith(A.WELLKNOWN_PATH_PREFIX))[0];s=d?d.name:"/"}return rt(o.value,s,a)},Gi=({did:t,mountPoint:r,siteMap:n,params:i}={})=>{if(!n)return[];const a=n[t];if(!a)return[];const l=a.domainAliases||[];if(!l.length)return[];let o=r;if(!o){const s=a.rules.filter(d=>!d.name.startsWith(A.WELLKNOWN_PATH_PREFIX))[0];o=s?s.name:"/"}return l.map(s=>rt(s.value,o,i))},Ki=t=>{const r=t.map(i=>i.domain).filter(i=>![A.DOMAIN_FOR_IP_SITE_REGEXP,A.DOMAIN_FOR_DEFAULT_SITE].includes(i));let n=[];return t.forEach(i=>n.push(...i.domainAliases||[])),n=n.map(i=>typeof i=="string"?{value:i,isProtected:!1}:i),{domains:r,domainsAliases:n}};function Sn({children:t}){const{api:r,info:n}=Q(),[i,a]=h.useState([]),[l,o]=h.useState([]),[s,d]=h.useState([]),m=$e(async()=>{const{sites:P}=await r.getRoutingSites({input:{snapshotHash:""}}),g=P||[];await Promise.all(g.map(async C=>(C.domainAliases=await Wr(C.domainAliases,{getIP:qr}),C)));const p=Ki(g);a(g),o(p.domains);const v=Cn({sites:g,nodePort:n.port});d((v?.sites||[]).map(C=>C.domainAliases.map(F=>F.value)).filter(C=>C.length))},[n]),c=(P,g)=>{a(p=>p.map(v=>v.id===P?g.domain?g:{...g,domain:v.domain}:v))},u=P=>r.takeRoutingSnapshot({input:{dryRun:!1,message:encodeURIComponent(P)}}),j=async P=>{const g=await r.addRoutingSite({input:P});a(i.concat(g.site))},b=async(P,g)=>{const p=await r.updateRoutingSite({input:{id:P,...g}});if(p.site&&p.site.id){const v=i.findIndex(C=>C.id===p.site.id);v!==-1&&(i.splice(v,1,p.site),a([].concat(i)))}},x=async P=>{await r.deleteRoutingSite({input:{id:P}}),a(i.filter(g=>g.id!==P))},S=async(P,g,p)=>{const v=await r.addDomainAlias({input:{id:P,domainAlias:g,force:p}});c(P,v.site)},y=async(P,g)=>{const p=await r.deleteDomainAlias({input:{id:P,domainAlias:g}});c(P,p.site)},k=async(P,g)=>{const{site:p}=await r.addRoutingRule({input:{id:P,rule:g}});c(P,p)},D=async(P,g)=>{const{site:p}=await r.updateRoutingRule({input:{id:P,rule:g}});c(P,p)},T=async(P,g)=>{const{site:p}=await r.deleteRoutingRule({input:{id:P,ruleId:g}});c(P,p)},w={loading:m.loading,error:m.error,refresh:m.retry,api:r,actions:{addSite:j,updateSite:b,deleteSite:x,addDomainAlias:S,deleteDomainAlias:y,takeSnapshot:u,addRule:k,updateRule:D,deleteRule:T}},{sites:R,siteMap:E}=Cn({sites:i,nodePort:n.port});return w.sites=R,w.siteMap=E,w.domains=l,w.allDomains=s,w.getBlockletUrl=({did:P,domain:g,mountPoint:p,params:v})=>Hi({did:P,domain:g,mountPoint:p,siteMap:w.siteMap,params:v}),w.getBlockletUrls=({did:P,mountPoint:g,params:p})=>Gi({did:P,mountPoint:g,siteMap:w.siteMap,params:p}),e.jsx(Wi,{value:{routing:w},children:t})}function de(){const{routing:t}=h.useContext(mr);return t}function Xt(t){const r=[A.DOMAIN_FOR_IP_SITE_REGEXP,A.DOMAIN_FOR_DEFAULT_SITE,A.DOMAIN_FOR_IP_SITE];return typeof window<"u"&&typeof window.location<"u"&&r.push(window.location.hostname),r.includes(t)}function Yi(){return null}function fr({confirm:t=null}){const[r,n]=h.useState(null),{t:i}=M(),a=()=>{n(null)},l=async s=>{if(s){let d=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";d==="/"?dn.push(`${s.pathname}`):(d.endsWith("/")&&(d=d.substring(0,d.length-1)),dn.push(`${d}${s.pathname}`)),window.location.reload()}},o=(s,...d)=>{let m=typeof t=="function"?t(s,...d):t;return m?(typeof m=="string"&&(m={description:m}),n({title:i("common.noticeTitle"),description:i("common.leavePageTip"),confirm:i("common.confirm"),cancel:i("common.cancel"),onConfirm:()=>l(s),onCancel:()=>a(),...m}),!1):!0};return e.jsxs(Vi,{children:[e.jsx(Yi,{message:o}),r&&e.jsx(le,{title:r.title,description:r.description,confirm:r.confirm,cancel:r.cancel,params:r.params,onConfirm:r.onConfirm,onCancel:r.onCancel})]})}fr.propTypes={confirm:f.oneOfType([f.object,f.string,f.func])};const Vi=re.div`
1
+ import{aF as je,j as e,u as Q,r as g,e as $e,aG as Wr,aH as E,aI as ln,aJ as Vn,aK as qr,aL as cn,aM as rt,V as M,ad as le,s as re,aN as dn,o as f,aO as Hr,aP as un,aQ as Gr,H as te,K as mn,T as L,t as H,N as fe,aR as _e,C as K,U as be,v as Z,aS as Xn,X as pe,J as W,p as mt,aT as Kr,Q as V,aE as Ie,a9 as et,M as it,aU as Yr,d as Ht,aV as Fe,aW as me,aa as Vr,aX as Xr,aY as Qr,y as Zr,A as Qn,W as fn,g as pn,h as ne,aZ as Gt,a as _t,b as ft,a_ as Zn,a$ as Jn,R as er,a4 as It,b0 as Jr,b1 as ei,b2 as ti,b3 as ni,b4 as ot,i as gn,b5 as ri,b6 as ii,a6 as kt,b7 as oi,a7 as Lt,L as Kt,F as ai,b8 as si,b9 as tr,a8 as li,ba as nr,bb as De,bc as Te,bd as ci,be as Yt,bf as di,$ as rr,D as Ft,f as ir,bg as ui,bh as hn,ak as mi,bi as fi,bj as ee,bk as pi,S as xn,l as yn,m as bn,bl as gi,bm as hi,bn as xi}from"./index-DtJVzdtH.js";import{u as yi,T as bi}from"./html-title-D3mv3IQk.js";import{A as vi}from"./ArrowDropDown-CqYw-eY9.js";import{u as Vt,C as B,a as vn}from"./index.esm-Zck39Kvz.js";import{S as se,a as ji}from"./switch-control-Fq47wOrt.js";import{P as ie}from"./permission-DTFazP7s.js";import{H as or,g as wi}from"./index-IWOqJkOB.js";import{A as ar}from"./Link-Bs8vi6ND.js";import{A as Ci}from"./actions-Dp-VL6XB.js";import{D as ve}from"./Delete-DVp4fJb1.js";import{D as pt}from"./delete-confirm-DCHvoTQs.js";import{v as at}from"./index-jT3H-jhB.js";import{s as Si}from"./logo-BKA11TRi.js";import{R as sr,a as Ot,b as ki}from"./url-evaluation-Cf4MPEtF.js";import{u as Di}from"./useLocalStorage-41az-hAK.js";import{R as Ti}from"./Refresh-BJnu5a0L.js";import{L as Ri}from"./LoadingButton-CZNIV9Ok.js";import{C as Ei,R as Pi,P as lr,S as Ai}from"./rotate-session-key-Bz5QE7gB.js";import{A as Oe}from"./Add-DBDPvM2L.js";import{B as cr,D as jn,W as Ke}from"./status-B_ZSV6JY.js";import{i as _i}from"./is-path-prefix-equal-BJMXSv43.js";import{N as Ii}from"./ChevronRight-BFqUOmvp.js";import{I as Li}from"./MoreVert-DaM6pG5s.js";import{E as dr}from"./Edit-DYn1CF5Y.js";import{A as Fi}from"./CallMerge-CqN4JiFM.js";import{C as Oi}from"./CardContent-C16B5Bpa.js";import"./FilterList-Czj4Os71.js";import"./CSSTransition-BcU1vShi.js";import"./emotion-cache.browser.esm-D1-P5QGD.js";import"./index-CR1U7OM5.js";import"./redux-DfszZyTl.js";import"./typeof-QjJsDpFa.js";import"./depsEqual-LiU_ATMs.js";import"./TableSearch-CKjIHAce.js";import"./Search-CApGhXwm.js";import"./Clear-L4-iFi83.js";import"./click-to-copy-DjkhfhsV.js";import"./visuallyHidden-Dan1xhjv.js";const Ni=je(e.jsx("path",{d:"m7 14 5-5 5 5z"})),$i=je(e.jsx("path",{d:"M12 3 2 21h20zm1 5.92L18.6 19H13zm-2 0V19H5.4z"})),Ui=je(e.jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"})),ur=je(e.jsx("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z"})),zi=je(e.jsx("path",{d:"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"})),Mi=je(e.jsx("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"})),Bi=je(e.jsx("path",{d:"m19 15-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9z"})),ye="Dashboard",mr=g.createContext({}),{Provider:Wi,Consumer:ms}=mr,wn=[ye,E.DOMAIN_FOR_IP_SITE,E.DOMAIN_FOR_IP_SITE_REGEXP],qi=(t,r)=>{if(t.name===E.DOMAIN_FOR_DEFAULT_SITE)return-1;if(r.name===E.DOMAIN_FOR_DEFAULT_SITE)return 1;const n=wn.includes(t.name),i=wn.includes(r.name);return n&&i?cn(t.name,r.name):n?-1:i?1:cn(t.name,r.name)},Cn=({sites:t,nodePort:r})=>{const n=window.location.hostname,a=(t||[]).map(o=>{const{id:s,rules:d=[],corsAllowedOrigins:m=[]}=o;let{domain:c,domainAliases:u}=o;u=u||[],[E.DOMAIN_FOR_IP_SITE,E.DOMAIN_FOR_IP_SITE_REGEXP].includes(c)&&(c=ye,u.find(v=>v.value===n)||u.unshift({protected:!1,value:n}));const j={id:s,name:c,type:"domain",items:[],domainAliases:u,isProtected:o.isProtected,corsAllowedOrigins:m};return(d||[]).forEach(v=>{const{id:h,isProtected:S,from:{pathPrefix:b},to:k}=v;if(k.type===E.ROUTING_RULE_TYPES.BLOCKLET){let D="";Number.parseInt(k.port,10)===Number.parseInt(r,10)?(D="Blocklet Server Dashboard",k.type=E.ROUTING_RULE_TYPES.DAEMON):D=k.did,j.items.push({id:h,name:ln(b||"/"),title:D,type:"rule",isProtected:S,pathPrefix:b,to:k})}else j.items.push({id:h,pathPrefix:b,name:ln(b||"/"),title:"Blocklet Server Dashboard",type:"rule",isProtected:S,to:k})}),j.items=Vn(j.items,v=>v.name),j}).sort(qi),l=a.reduce((o,s)=>{let{name:d}=s;return d.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX)&&([d]=d.split(".")),o[d]={...s,rules:s.items},o},{});return{sites:a,siteMap:l}},Hi=({did:t,domain:r,mountPoint:n,siteMap:i,params:a}={})=>{if(!i)return null;const l=i[t];if(!l)return null;const o=r||(l.domainAliases||[])[0];if(!o)return null;let s=n;if(!s){const d=l.rules.filter(m=>!m.name.startsWith(E.WELLKNOWN_PATH_PREFIX))[0];s=d?d.name:"/"}return rt(o.value,s,a)},Gi=({did:t,mountPoint:r,siteMap:n,params:i}={})=>{if(!n)return[];const a=n[t];if(!a)return[];const l=a.domainAliases||[];if(!l.length)return[];let o=r;if(!o){const s=a.rules.filter(d=>!d.name.startsWith(E.WELLKNOWN_PATH_PREFIX))[0];o=s?s.name:"/"}return l.map(s=>rt(s.value,o,i))},Ki=t=>{const r=t.map(i=>i.domain).filter(i=>![E.DOMAIN_FOR_IP_SITE_REGEXP,E.DOMAIN_FOR_DEFAULT_SITE].includes(i));let n=[];return t.forEach(i=>n.push(...i.domainAliases||[])),n=n.map(i=>typeof i=="string"?{value:i,isProtected:!1}:i),{domains:r,domainsAliases:n}};function Sn({children:t}){const{api:r,info:n}=Q(),[i,a]=g.useState([]),[l,o]=g.useState([]),[s,d]=g.useState([]),m=$e(async()=>{const{sites:y}=await r.getRoutingSites({input:{snapshotHash:""}}),P=y||[];await Promise.all(P.map(async w=>(w.domainAliases=await Wr(w.domainAliases,{getIP:qr}),w)));const x=Ki(P);a(P),o(x.domains);const p=Cn({sites:P,nodePort:n.port});d((p?.sites||[]).map(w=>w.domainAliases.map(A=>A.value)).filter(w=>w.length))},[n]),c=(y,P)=>{a(x=>x.map(p=>p.id===y?P.domain?P:{...P,domain:p.domain}:p))},u=async y=>{const P=await r.addRoutingSite({input:y});a(i.concat(P.site))},j=async(y,P)=>{const x=await r.updateRoutingSite({input:{id:y,...P}});if(x.site&&x.site.id){const p=i.findIndex(w=>w.id===x.site.id);p!==-1&&(i.splice(p,1,x.site),a([].concat(i)))}},v=async y=>{await r.deleteRoutingSite({input:{id:y}}),a(i.filter(P=>P.id!==y))},h=async(y,P,x)=>{const p=await r.addDomainAlias({input:{id:y,domainAlias:P,force:x}});c(y,p.site)},S=async(y,P)=>{const x=await r.deleteDomainAlias({input:{id:y,domainAlias:P}});c(y,x.site)},b=async(y,P)=>{const{site:x}=await r.addRoutingRule({input:{id:y,rule:P}});c(y,x)},k=async(y,P)=>{const{site:x}=await r.updateRoutingRule({input:{id:y,rule:P}});c(y,x)},D=async(y,P)=>{const{site:x}=await r.deleteRoutingRule({input:{id:y,ruleId:P}});c(y,x)},C={loading:m.loading,error:m.error,refresh:m.retry,api:r,actions:{addSite:u,updateSite:j,deleteSite:v,addDomainAlias:h,deleteDomainAlias:S,addRule:b,updateRule:k,deleteRule:D}},{sites:T,siteMap:R}=Cn({sites:i,nodePort:n.port});return C.sites=T,C.siteMap=R,C.domains=l,C.allDomains=s,C.getBlockletUrl=({did:y,domain:P,mountPoint:x,params:p})=>Hi({did:y,domain:P,mountPoint:x,siteMap:C.siteMap,params:p}),C.getBlockletUrls=({did:y,mountPoint:P,params:x})=>Gi({did:y,mountPoint:P,siteMap:C.siteMap,params:x}),e.jsx(Wi,{value:{routing:C},children:t})}function de(){const{routing:t}=g.useContext(mr);return t}function Xt(t){const r=[E.DOMAIN_FOR_IP_SITE_REGEXP,E.DOMAIN_FOR_DEFAULT_SITE,E.DOMAIN_FOR_IP_SITE];return typeof window<"u"&&typeof window.location<"u"&&r.push(window.location.hostname),r.includes(t)}function Yi(){return null}function fr({confirm:t=null}){const[r,n]=g.useState(null),{t:i}=M(),a=()=>{n(null)},l=async s=>{if(s){let d=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";d==="/"?dn.push(`${s.pathname}`):(d.endsWith("/")&&(d=d.substring(0,d.length-1)),dn.push(`${d}${s.pathname}`)),window.location.reload()}},o=(s,...d)=>{let m=typeof t=="function"?t(s,...d):t;return m?(typeof m=="string"&&(m={description:m}),n({title:i("common.noticeTitle"),description:i("common.leavePageTip"),confirm:i("common.confirm"),cancel:i("common.cancel"),onConfirm:()=>l(s),onCancel:()=>a(),...m}),!1):!0};return e.jsxs(Vi,{children:[e.jsx(Yi,{message:o}),r&&e.jsx(le,{title:r.title,description:r.description,confirm:r.confirm,cancel:r.cancel,params:r.params,onConfirm:r.onConfirm,onCancel:r.onCancel})]})}fr.propTypes={confirm:f.oneOfType([f.object,f.string,f.func])};const Vi=re.div`
2
2
  margin-bottom: 24px;
3
3
  .top-btns-alert {
4
4
  @media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
@@ -44,12 +44,12 @@ import{aG as je,j as e,u as Q,r as h,e as $e,aH as Wr,aI as A,aJ as ln,aK as Vn,
44
44
  margin-right: 0;
45
45
  }
46
46
  }
47
- `,Qi="v21.6.0",Zi=t=>Hr.gte(t,Qi),kn=t=>({name:t.name,description:t.description,registerUrl:t.registerUrl,webWalletUrl:t.webWalletUrl,nftDomainUrl:t.nftDomainUrl,diskAlertThreshold:t.diskAlertThreshold,enableWelcomePage:!1,enableBetaRelease:!1,enableFileSystemIsolation:!0,enableDocker:!1,enableDockerNetwork:!1,isDockerInstalled:!1,enableSessionHardening:t.enableSessionHardening||!1});function pr({onSaved:t,title:r,submit:n,disabled:i=!1,...a}){const{api:l,info:o}=Q(),{t:s}=M(),{control:d,handleSubmit:m,formState:c,reset:u}=Vt({defaultValues:kn(o)}),[j,b]=h.useState(""),[x,S]=h.useState(""),[y,k]=h.useState(!1),[D,T]=h.useState(o.autoUpgrade),[w,R]=h.useState(!!o.enableWelcomePage),[E,P]=h.useState(null),g=un({enableFileSystemIsolation:!!o.enableFileSystemIsolation,tooltip:s("setting.form.security.switchTips"),loading:!1}),p=un({enableDocker:!!o.enableDocker,enableDockerNetwork:!!o.enableDockerNetwork,tooltip:s("setting.form.docker.switchTips"),isDockerInstalled:!!o.isDockerInstalled}),[v,C]=h.useState(!!o.enableBetaRelease);h.useEffect(()=>{let O="";(c.isDirty||D!==o.autoUpgrade||w!==!!o.enableWelcomePage||g.enableFileSystemIsolation!==!!o.enableFileSystemIsolation)&&(O=s("setting.unSavedTip")),S(O)},[s,o,D,w,g.enableFileSystemIsolation,c]),Gr(async()=>{try{const O=Object.assign({},await l.getNodeEnv()||{}),{version:_}=O.info.blockletEngines.find(X=>X.name==="node");P(_)}catch(O){console.error(O),te.error(O.message)}},[l]),h.useEffect(()=>{try{g.enableFileSystemIsolation=!!o.enableFileSystemIsolation,g.tooltip=s("setting.form.security.switchTips"),g.loading=mn(E),!mn(E)&&!Zi(E)&&(g.tooltip=s("setting.form.security.warningTips",{version:E}))}catch(O){console.error(O),te.error(O.message)}},[o.enableFileSystemIsolation,E]);const F=async O=>{b(""),k(!0);try{const _=await l.updateNodeInfo({input:{...O,name:O.name.trim(),description:O.description.trim(),registerUrl:O.registerUrl.trim(),webWalletUrl:O.webWalletUrl.trim(),diskAlertThreshold:O.diskAlertThreshold,autoUpgrade:D,enableWelcomePage:w,enableFileSystemIsolation:g.enableFileSystemIsolation,enableBetaRelease:v,enableDocker:p.enableDocker,enableDockerNetwork:p.enableDockerNetwork}});await Xn(1e3),u(kn(_.info)),typeof t=="function"&&t(_)}catch(_){b(pe(_))}finally{k(!1)}},{errors:$}=c;return e.jsxs(Ji,{...a,children:[e.jsxs(Qt,{noValidate:!0,autoComplete:"off",onSubmit:m(F),children:[!!r&&e.jsx(L,{component:"h2",variant:"h5",className:"stepper-tip",children:r}),e.jsx(ie,{permission:"mutate_node",children:O=>e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"name",control:d,rules:{validate:_=>!!_.trim()||s("setting.form.nameRequired")},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.name"),placeholder:s("setting.form.namePlaceholder"),disabled:y||!O,"data-cy":"node-name-input",error:$.name&&!!$.name.message,helperText:$.name?$.name.message:"",margin:"normal",..._})}),e.jsx(B,{name:"description",control:d,rules:{validate:_=>!!_.trim()||s("setting.form.descriptionRequired")},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.description"),placeholder:s("setting.form.descriptionHolder"),disabled:y||!O,"data-cy":"node-description-input",error:$.description&&!!$.description.message,helperText:$.description?$.description.message:"",margin:"normal",..._})}),e.jsx(B,{name:"registerUrl",control:d,rules:{},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.registerUrl"),placeholder:s("setting.form.registerUrlPlaceholder"),disabled:y||!O,error:$.registerUrl&&!!$.registerUrl.message,helperText:$.registerUrl?$.registerUrl.message:"",margin:"normal",..._})}),e.jsx(B,{name:"nftDomainUrl",control:d,rules:{},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.nftDomainUrl"),placeholder:s("setting.form.nftDomainUrlPlaceholder"),disabled:y||!O,error:$.nftDomainUrl&&!!$.nftDomainUrl.message,helperText:$.nftDomainUrl?$.nftDomainUrl.message:"",margin:"normal",..._})}),e.jsx(B,{name:"webWalletUrl",control:d,rules:{},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.webWalletUrl"),placeholder:s("setting.form.webWalletUrlPlaceholder"),disabled:y||!O,error:$.webWalletUrl&&!!$.webWalletUrl.message,helperText:$.webWalletUrl?$.webWalletUrl.message:"",margin:"normal",..._})}),e.jsx(B,{name:"diskAlertThreshold",control:d,rules:{},render:({field:_})=>e.jsx(H,{type:"number",variant:"outlined",label:s("setting.form.monitor.diskThreshold"),placeholder:s("setting.form.monitor.diskThresholdPlaceholder"),disabled:y||!O,error:$.diskAlertThreshold&&!!$.diskAlertThreshold.message,helperText:$.diskAlertThreshold?$.diskAlertThreshold.message:"",margin:"normal",..._,slotProps:{htmlInput:{min:1,max:99}}})}),e.jsx(se,{checked:D,onChange:()=>T(!D),name:"autoUpgrade",disabled:!O,labelProps:{label:e.jsx(L,{children:e.jsx("span",{children:s("setting.form.upgrade.switchLabel")})})},style:{marginTop:20}}),D&&e.jsx(se,{checked:v,onChange:()=>C(!v),name:"enableBetaRelease",disabled:!O,labelProps:{label:e.jsx(L,{children:e.jsx("span",{children:s("setting.form.upgrade.enableBetaRelease")})})},style:{marginTop:20}}),o?.mode!==A.NODE_MODES.SERVERLESS&&e.jsx(se,{checked:w,onChange:()=>R(!w),name:"enableWelcomePage",disabled:!O,labelProps:{label:e.jsx(L,{children:e.jsx("span",{children:s("setting.form.welcome.switchLabel")})})},style:{marginTop:16}}),e.jsx(B,{name:"enableSessionHardening",control:d,render:({field:_})=>e.jsx(se,{checked:_.value,disabled:y||!O,labelProps:{label:e.jsx(L,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.enableSessionHardening.switchLabel"),e.jsx(fe,{title:s("setting.form.enableSessionHardening.switchTips"),children:e.jsx(_e,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16},..._})}),e.jsx(se,{checked:g.enableFileSystemIsolation,onChange:()=>{g.enableFileSystemIsolation=!g.enableFileSystemIsolation,p.enableDocker&&g.enableFileSystemIsolation&&(p.enableDocker=!1,te.info(s("setting.form.docker.needCloseFileSystemIsolation")))},name:"enableFileSystemIsolation",disabled:!O,"data-cy":"file-system-isolation-switch",labelProps:{label:e.jsx(L,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.security.switchLabel"),e.jsx(fe,{title:!g.loading&&g.tooltip,children:g.loading?e.jsx(K,{size:14,sx:{ml:.5}}):e.jsx(_e,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}}),e.jsx(se,{checked:p.enableDocker,onChange:()=>{if(!p.enableDocker&&!p.isDockerInstalled){te.error(s("setting.form.docker.notInstalled"));return}p.enableDocker=!p.enableDocker,p.enableDocker&&g.enableFileSystemIsolation&&(g.enableFileSystemIsolation=!1,te.info(s("setting.form.docker.needCloseFileSystemIsolation"))),!p.enableDocker&&p.enableDockerNetwork&&(p.enableDockerNetwork=!1)},name:"enableDocker",disabled:!O,"data-cy":"docker-switch",labelProps:{label:e.jsx(L,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.docker.switchLabel"),e.jsx(fe,{title:!p.loading&&p.tooltip,children:p.loading?e.jsx(K,{size:14,sx:{ml:.5}}):e.jsx(_e,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}}),e.jsx(se,{checked:p.enableDockerNetwork,onChange:()=>{if(!p.enableDockerNetwork&&!p.isDockerInstalled){te.error(s("setting.form.docker.notInstalled"));return}p.enableDockerNetwork=!p.enableDockerNetwork,p.enableDockerNetwork&&!p.enableDocker&&(p.enableDocker=!0)},name:"enableDockerNetwork",disabled:!O,"data-cy":"docker-network-switch",labelProps:{label:e.jsx(L,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.dockerNetwork.switchLabel"),e.jsx(fe,{title:!p.loading&&s("setting.form.dockerNetwork.switchTips"),children:p.loading?e.jsx(K,{size:14,sx:{ml:.5}}):e.jsx(_e,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}})]})}),!!x&&e.jsx(be,{severity:"warning",children:x}),e.jsx("div",{className:"form-actions",children:e.jsx(ie,{permission:"mutate_node",children:e.jsxs(Z,{onClick:m(F),disabled:i||y,color:"primary",variant:"contained","data-cy":"submit-btn",className:"form-submit",children:[n," ",y?e.jsx(K,{size:16,sx:{ml:1}}):null]})})}),!!j&&e.jsx(be,{severity:"error",error:j,children:j})]}),x&&e.jsx(fr,{confirm:s("setting.unSavedLeaveTip")})]})}pr.propTypes={onSaved:f.func.isRequired,disabled:f.bool,title:f.string.isRequired,submit:f.string.isRequired};const Ji=re.div`
47
+ `,Qi="v21.6.0",Zi=t=>Hr.gte(t,Qi),kn=t=>({name:t.name,description:t.description,registerUrl:t.registerUrl,webWalletUrl:t.webWalletUrl,nftDomainUrl:t.nftDomainUrl,diskAlertThreshold:t.diskAlertThreshold,enableWelcomePage:!1,enableBetaRelease:!1,enableFileSystemIsolation:!0,enableDocker:!1,enableDockerNetwork:!1,isDockerInstalled:!1,enableSessionHardening:t.enableSessionHardening||!1});function pr({onSaved:t,title:r,submit:n,disabled:i=!1,...a}){const{api:l,info:o}=Q(),{t:s}=M(),{control:d,handleSubmit:m,formState:c,reset:u}=Vt({defaultValues:kn(o)}),[j,v]=g.useState(""),[h,S]=g.useState(""),[b,k]=g.useState(!1),[D,C]=g.useState(o.autoUpgrade),[T,R]=g.useState(!!o.enableWelcomePage),[y,P]=g.useState(null),x=un({enableFileSystemIsolation:!!o.enableFileSystemIsolation,tooltip:s("setting.form.security.switchTips"),loading:!1}),p=un({enableDocker:!!o.enableDocker,enableDockerNetwork:!!o.enableDockerNetwork,tooltip:s("setting.form.docker.switchTips"),isDockerInstalled:!!o.isDockerInstalled}),[w,A]=g.useState(!!o.enableBetaRelease);g.useEffect(()=>{let F="";(c.isDirty||D!==o.autoUpgrade||T!==!!o.enableWelcomePage||x.enableFileSystemIsolation!==!!o.enableFileSystemIsolation)&&(F=s("setting.unSavedTip")),S(F)},[s,o,D,T,x.enableFileSystemIsolation,c]),Gr(async()=>{try{const F=Object.assign({},await l.getNodeEnv()||{}),{version:_}=F.info.blockletEngines.find(X=>X.name==="node");P(_)}catch(F){console.error(F),te.error(F.message)}},[l]),g.useEffect(()=>{try{x.enableFileSystemIsolation=!!o.enableFileSystemIsolation,x.tooltip=s("setting.form.security.switchTips"),x.loading=mn(y),!mn(y)&&!Zi(y)&&(x.tooltip=s("setting.form.security.warningTips",{version:y}))}catch(F){console.error(F),te.error(F.message)}},[o.enableFileSystemIsolation,y]);const N=async F=>{v(""),k(!0);try{const _=await l.updateNodeInfo({input:{...F,name:F.name.trim(),description:F.description.trim(),registerUrl:F.registerUrl.trim(),webWalletUrl:F.webWalletUrl.trim(),diskAlertThreshold:F.diskAlertThreshold,autoUpgrade:D,enableWelcomePage:T,enableFileSystemIsolation:x.enableFileSystemIsolation,enableBetaRelease:w,enableDocker:p.enableDocker,enableDockerNetwork:p.enableDockerNetwork}});await Xn(1e3),u(kn(_.info)),typeof t=="function"&&t(_)}catch(_){v(pe(_))}finally{k(!1)}},{errors:$}=c;return e.jsxs(Ji,{...a,children:[e.jsxs(Qt,{noValidate:!0,autoComplete:"off",onSubmit:m(N),children:[!!r&&e.jsx(L,{component:"h2",variant:"h5",className:"stepper-tip",children:r}),e.jsx(ie,{permission:"mutate_node",children:F=>e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"name",control:d,rules:{validate:_=>!!_.trim()||s("setting.form.nameRequired")},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.name"),placeholder:s("setting.form.namePlaceholder"),disabled:b||!F,"data-cy":"node-name-input",error:$.name&&!!$.name.message,helperText:$.name?$.name.message:"",margin:"normal",..._})}),e.jsx(B,{name:"description",control:d,rules:{validate:_=>!!_.trim()||s("setting.form.descriptionRequired")},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.description"),placeholder:s("setting.form.descriptionHolder"),disabled:b||!F,"data-cy":"node-description-input",error:$.description&&!!$.description.message,helperText:$.description?$.description.message:"",margin:"normal",..._})}),e.jsx(B,{name:"registerUrl",control:d,rules:{},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.registerUrl"),placeholder:s("setting.form.registerUrlPlaceholder"),disabled:b||!F,error:$.registerUrl&&!!$.registerUrl.message,helperText:$.registerUrl?$.registerUrl.message:"",margin:"normal",..._})}),e.jsx(B,{name:"nftDomainUrl",control:d,rules:{},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.nftDomainUrl"),placeholder:s("setting.form.nftDomainUrlPlaceholder"),disabled:b||!F,error:$.nftDomainUrl&&!!$.nftDomainUrl.message,helperText:$.nftDomainUrl?$.nftDomainUrl.message:"",margin:"normal",..._})}),e.jsx(B,{name:"webWalletUrl",control:d,rules:{},render:({field:_})=>e.jsx(H,{variant:"outlined",label:s("setting.form.webWalletUrl"),placeholder:s("setting.form.webWalletUrlPlaceholder"),disabled:b||!F,error:$.webWalletUrl&&!!$.webWalletUrl.message,helperText:$.webWalletUrl?$.webWalletUrl.message:"",margin:"normal",..._})}),e.jsx(B,{name:"diskAlertThreshold",control:d,rules:{},render:({field:_})=>e.jsx(H,{type:"number",variant:"outlined",label:s("setting.form.monitor.diskThreshold"),placeholder:s("setting.form.monitor.diskThresholdPlaceholder"),disabled:b||!F,error:$.diskAlertThreshold&&!!$.diskAlertThreshold.message,helperText:$.diskAlertThreshold?$.diskAlertThreshold.message:"",margin:"normal",..._,slotProps:{htmlInput:{min:1,max:99}}})}),e.jsx(se,{checked:D,onChange:()=>C(!D),name:"autoUpgrade",disabled:!F,labelProps:{label:e.jsx(L,{children:e.jsx("span",{children:s("setting.form.upgrade.switchLabel")})})},style:{marginTop:20}}),D&&e.jsx(se,{checked:w,onChange:()=>A(!w),name:"enableBetaRelease",disabled:!F,labelProps:{label:e.jsx(L,{children:e.jsx("span",{children:s("setting.form.upgrade.enableBetaRelease")})})},style:{marginTop:20}}),o?.mode!==E.NODE_MODES.SERVERLESS&&e.jsx(se,{checked:T,onChange:()=>R(!T),name:"enableWelcomePage",disabled:!F,labelProps:{label:e.jsx(L,{children:e.jsx("span",{children:s("setting.form.welcome.switchLabel")})})},style:{marginTop:16}}),e.jsx(B,{name:"enableSessionHardening",control:d,render:({field:_})=>e.jsx(se,{checked:_.value,disabled:b||!F,labelProps:{label:e.jsx(L,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.enableSessionHardening.switchLabel"),e.jsx(fe,{title:s("setting.form.enableSessionHardening.switchTips"),children:e.jsx(_e,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16},..._})}),e.jsx(se,{checked:x.enableFileSystemIsolation,onChange:()=>{x.enableFileSystemIsolation=!x.enableFileSystemIsolation,p.enableDocker&&x.enableFileSystemIsolation&&(p.enableDocker=!1,te.info(s("setting.form.docker.needCloseFileSystemIsolation")))},name:"enableFileSystemIsolation",disabled:!F,"data-cy":"file-system-isolation-switch",labelProps:{label:e.jsx(L,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.security.switchLabel"),e.jsx(fe,{title:!x.loading&&x.tooltip,children:x.loading?e.jsx(K,{size:14,sx:{ml:.5}}):e.jsx(_e,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}}),e.jsx(se,{checked:p.enableDocker,onChange:()=>{if(!p.enableDocker&&!p.isDockerInstalled){te.error(s("setting.form.docker.notInstalled"));return}p.enableDocker=!p.enableDocker,p.enableDocker&&x.enableFileSystemIsolation&&(x.enableFileSystemIsolation=!1,te.info(s("setting.form.docker.needCloseFileSystemIsolation"))),!p.enableDocker&&p.enableDockerNetwork&&(p.enableDockerNetwork=!1)},name:"enableDocker",disabled:!F,"data-cy":"docker-switch",labelProps:{label:e.jsx(L,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.docker.switchLabel"),e.jsx(fe,{title:!p.loading&&p.tooltip,children:p.loading?e.jsx(K,{size:14,sx:{ml:.5}}):e.jsx(_e,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}}),e.jsx(se,{checked:p.enableDockerNetwork,onChange:()=>{if(!p.enableDockerNetwork&&!p.isDockerInstalled){te.error(s("setting.form.docker.notInstalled"));return}p.enableDockerNetwork=!p.enableDockerNetwork,p.enableDockerNetwork&&!p.enableDocker&&(p.enableDocker=!0)},name:"enableDockerNetwork",disabled:!F,"data-cy":"docker-network-switch",labelProps:{label:e.jsx(L,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.dockerNetwork.switchLabel"),e.jsx(fe,{title:!p.loading&&s("setting.form.dockerNetwork.switchTips"),children:p.loading?e.jsx(K,{size:14,sx:{ml:.5}}):e.jsx(_e,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}})]})}),!!h&&e.jsx(be,{severity:"warning",children:h}),e.jsx("div",{className:"form-actions",children:e.jsx(ie,{permission:"mutate_node",children:e.jsxs(Z,{onClick:m(N),disabled:i||b,color:"primary",variant:"contained","data-cy":"submit-btn",className:"form-submit",children:[n," ",b?e.jsx(K,{size:16,sx:{ml:1}}):null]})})}),!!j&&e.jsx(be,{severity:"error",error:j,children:j})]}),h&&e.jsx(fr,{confirm:s("setting.unSavedLeaveTip")})]})}pr.propTypes={onSaved:f.func.isRequired,disabled:f.bool,title:f.string.isRequired,submit:f.string.isRequired};const Ji=re.div`
48
48
  display: flex;
49
49
  align-items: flex-start;
50
50
  width: 100%;
51
51
  max-width: 720px;
52
- `;function eo(){const{refresh:t,info:r}=Q(),{t:n}=M(),[i,a]=h.useState(!1);h.useEffect(()=>{t({silent:!0})},[]);const l=()=>{t({silent:!0}),te.success(n("setting.saveSuccess"))};return e.jsx(to,{children:e.jsxs(W,{sx:{mb:4},children:[e.jsx(pr,{onSaved:l,submit:n("common.saveChanges"),title:""}),e.jsx(W,{style:{marginLeft:-8},sx:{mt:6},children:e.jsxs(Z,{onClick:()=>a(o=>!o),children:[n("common.readMore"),i?e.jsx(Ni,{}):e.jsx(vi,{})]})}),i&&e.jsxs(W,{sx:{fontSize:12,color:"text.secondary"},children:[e.jsxs(W,{children:[n("dashboard.runtimeConfig.blockletMaxMemoryLimit"),": ",r.runtimeConfig.blockletMaxMemoryLimit," MB"]}),e.jsxs(W,{children:[n("dashboard.runtimeConfig.daemonMaxMemoryLimit"),": ",r.runtimeConfig.daemonMaxMemoryLimit," MB"]})]})]})})}const to=re.div`
52
+ `;function eo(){const{refresh:t,info:r}=Q(),{t:n}=M(),[i,a]=g.useState(!1);g.useEffect(()=>{t({silent:!0})},[]);const l=()=>{t({silent:!0}),te.success(n("setting.saveSuccess"))};return e.jsx(to,{children:e.jsxs(W,{sx:{mb:4},children:[e.jsx(pr,{onSaved:l,submit:n("common.saveChanges"),title:""}),e.jsx(W,{style:{marginLeft:-8},sx:{mt:6},children:e.jsxs(Z,{onClick:()=>a(o=>!o),children:[n("common.readMore"),i?e.jsx(Ni,{}):e.jsx(vi,{})]})}),i&&e.jsxs(W,{sx:{fontSize:12,color:"text.secondary"},children:[e.jsxs(W,{children:[n("dashboard.runtimeConfig.blockletMaxMemoryLimit"),": ",r.runtimeConfig.blockletMaxMemoryLimit," MB"]}),e.jsxs(W,{children:[n("dashboard.runtimeConfig.daemonMaxMemoryLimit"),": ",r.runtimeConfig.daemonMaxMemoryLimit," MB"]})]})]})})}const to=re.div`
53
53
  .eula-btn {
54
54
  text-decoration-line: underline;
55
55
  margin-top: 32px;
@@ -61,7 +61,7 @@ import{aG as je,j as e,u as Q,r as h,e as $e,aH as Wr,aI as A,aJ as ln,aK as Vn,
61
61
  width: 100%;
62
62
  max-width: 720px;
63
63
  }
64
- `,Dn=(t,r=10,n=500)=>{if(typeof document>"u")return 0;const a=document.createElement("canvas").getContext("2d");return a.font=`${n} ${r}px sans-serif`,a.measureText(t).width};function gr({checked:t,onChange:r,width:n=0}){const{t:i}=h.useContext(mt),[a,l]=h.useState(!1),o=Kr(c=>{l(c.target.checked),r(c.target.checked)});h.useEffect(()=>{l(t)},[t]);const s=h.useMemo(()=>i(`webhookEndpoint.${a?"enabled":"disabled"}`),[a,i]),d=h.useMemo(()=>{const c=i("webhookEndpoint.enabled"),u=i("webhookEndpoint.disabled"),j=Dn(c,10,500),b=Dn(u,10,500),x=Math.max(j,b),D=18+3+x+6;return Math.max(Math.ceil(D/2)*2,50)},[i]),m=n||d;return e.jsx(ji,{checked:a,onChange:o,sx:c=>{const x=m-18-6,S=c.palette.mode==="dark",y=c.palette.common[S?"black":"white"],k=c.palette.common[S?"white":"black"];return{width:m,height:24,padding:0,"& .MuiSwitch-switchBase":{padding:0,margin:"3px",transitionDuration:"300ms","&.Mui-checked":{transform:`translateX(${x}px)`,color:c.palette.common.white,"& + .MuiSwitch-track":{backgroundColor:c.palette.primary.main,opacity:1,border:0,"&:before":{content:`"${s}"`,position:"absolute",left:c.spacing(.75),top:"50%",transform:"translateY(-50%)",color:y,fontSize:10,fontWeight:500}}}},"& .MuiSwitch-thumb":{width:18,height:18},"& .MuiSwitch-track":{borderRadius:24/2,backgroundColor:c.palette.grey[200],opacity:1,position:"relative","&:before":{content:`"${s}"`,position:"absolute",right:c.spacing(.75),top:"50%",transform:"translateY(-50%)",color:k,fontSize:10,fontWeight:500}}}}})}gr.propTypes={checked:f.bool.isRequired,onChange:f.func.isRequired,width:f.number};function hr({item:t,onDelete:r=()=>{},close:n=()=>{}}){const{t:i}=M(),[a,l]=h.useState(!1),[o,s]=h.useState(null),{id:d,title:m}=t,{api:c}=Q(),u=()=>{l(!1),s(null)},j=async()=>{l(!0);try{await c.deleteWebHook({input:{id:d}}),r()}catch(x){console.error(x)}finally{l(!1),s(null)}},b={keyName:d,title:i("setting.webhook.delTitle"),description:`${i("setting.webhook.description",{name:`<b>${m}</b>`,id:`<b>${d}</b>`})}`,confirmPlaceholder:i("setting.webhook.confirm_desc",{name:d}),confirm:i("common.delConfirm"),cancel:i("common.cancel"),onConfirm:j,onCancel:u};return e.jsxs(e.Fragment,{children:[e.jsxs(V,{disabled:a,onClick:x=>{x.stopPropagation(),n(),s(b)},"data-cy":"action-delete-webhook",dense:!0,children:[e.jsx(Ie,{style:{minWidth:24,marginRight:8},children:a?e.jsx(K,{}):e.jsx(ve,{})}),e.jsx(et,{primary:i("common.delete")})]},"delete-webhook"),o&&e.jsx(pt,{keyName:o.keyName,title:o.title,description:o.description,confirmPlaceholder:o.confirmPlaceholder,confirm:o.confirm,cancel:o.cancel,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}hr.propTypes={item:f.object.isRequired,onDelete:f.func,close:f.func};function no(){const{api:t,imgPrefix:r}=Q(),{t:n,locale:i}=h.useContext(mt),[a,l]=h.useState([]),[o,s]=h.useState(null),d=$e(async()=>{const[{webhooks:R},{senders:E}]=await Promise.all([t.getWebHooks(),t.getWebhookSenders()]);return l(E),R}),m=d.value||[],{loading:c,error:u}=d,j=new Set(m.map(R=>R.params.map(E=>E.value)).flat()),b=async R=>{try{await t.createWebHook({input:R}),d.retry()}catch(E){te.error(pe(E),{autoHideDuration:4e3}),console.error("create webhook error",E)}s(null)},x=()=>{s(null)},S=R=>{const E={title:R.title,description:(P,g,p)=>{const v=F=>{g({list:F,__disableConfirm:F.some($=>$.disable)})},C=P.list||[];return e.jsx(Rn,{children:C.map((F,$)=>e.jsx(ro,{children:e.jsx(H,{label:F.description,autoComplete:"off",variant:"outlined",fullWidth:!0,autoFocus:!0,style:{marginBottom:16},margin:"dense",value:F.value||F.defaultValue,onChange:O=>{F.required&&(F.disable=!0);const _=O.target.value.trim();if(F.value=_,C[$]=F,_){const X=j.has(_);Yr(F.type,_)&&!X?(F.disable=!1,p("")):(F.disable=!0,p(X?n("setting.webhook.duplicateError"):n("setting.webhook.requiredError",{type:F.description})))}else F.required&&(F.disable=!0),p("");v([...C])},slotProps:{htmlInput:{"data-cy":"webhook-input"}}})},F.name))})},params:{list:R.params,__disableConfirm:!0},confirm:n("setting.webhook.add"),cancel:n("common.cancel"),onConfirm:P=>{R.params=P.list,b(R)},onCancel:x};s(E)},y=R=>R.type==="slack"?e.jsx("img",{src:`${r}/${R.type}.png`,alt:"icon",style:{width:20,height:20}}):e.jsx(ar,{}),k=async R=>{try{const E={webhookId:R.id,message:"This is a test notification in order to test the integration"};await t.sendTestMessage({input:E}),te.success(n("setting.webhook.testSuccess"))}catch(E){te.error(pe(E),{autoHideDuration:4e3}),console.error("send test notification error",E)}},D=async(R,E,P)=>{try{await t.updateWebHookState({input:{id:R.id,url:E,enabled:P}}),te.success(n("setting.webhook.updateSuccess")),d.retry()}catch(g){console.error("update webhook enabled error",g),te.error(pe(g),{autoHideDuration:4e3})}},T=[{label:n("setting.webhook.columns.description"),name:"id",verticalKeyAlign:"center",options:{sort:!1,customBodyRenderLite:R=>{const E=m[R],P=a.find(g=>g.name===E.name);return e.jsxs("div",{style:{display:"flex",alignItems:"center",whiteSpace:"nowrap"},children:[y(E),e.jsxs("div",{style:{marginLeft:10},children:[e.jsxs("b",{children:["ID: ",E.id]}),e.jsx("div",{children:P?P.description:null})]})]})}}},{label:n("setting.webhook.columns.params"),name:"params",options:{sort:!1,customBodyRenderLite:R=>{const E=m[R],P=E.params.map(g=>{const p=g?.enabled??!0;return e.jsxs(W,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:0,width:"100%"},children:[e.jsx(W,{sx:{flexShrink:0},children:e.jsx(gr,{checked:p,onChange:v=>D(E,g.value,v)})}),e.jsx(L,{variant:"body2",component:"div",title:g.value,sx:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:g.value})]},g.value)});return e.jsx(W,{sx:{display:"flex",flexDirection:"column",gap:1,minWidth:0,width:"100%"},children:P})}}},{label:n("setting.webhook.columns.createdAt"),name:"createdAt",options:{customBodyRenderLite:R=>{const E=m[R];return e.jsx(it,{value:E.createdAt,locale:i})}}},{label:n("common.actions"),align:"center",verticalKeyAlign:"center",options:{sort:!1,customBodyRenderLite:R=>{const E=m[R],P=a.find(g=>g.name===E.name)||{};return e.jsx(Ci,{actions:[{render:({close:g})=>e.jsx(hr,{item:{...E,title:P.title},close:g,onDelete:()=>{d.retry()}})},{icon:e.jsx(io,{}),text:n("setting.webhook.test"),onClick:()=>{k(E)}}]})}}}];if(!m.length&&c)return e.jsx("div",{style:{textAlign:"center",marginTop:"50px"},children:e.jsx(K,{})});if(!m.length&&u)return e.jsx(be,{severity:"error",children:pe(u)});const w=a.map(R=>({icon:y(R),title:`${n("common.add")} ${R.title}`,onClick:()=>{S(R)}}));return e.jsxs(Rn,{children:[o&&e.jsx(le,{color:"primary",title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel}),e.jsx(or,{columns:T,data:m,locale:i,customButtons:w,verticalKeyWidth:100,options:{download:!1,filter:!1,print:!1}})]})}const Rn=re.div`
64
+ `,Dn=(t,r=10,n=500)=>{if(typeof document>"u")return 0;const a=document.createElement("canvas").getContext("2d");return a.font=`${n} ${r}px sans-serif`,a.measureText(t).width};function gr({checked:t,onChange:r,width:n=0}){const{t:i}=g.useContext(mt),[a,l]=g.useState(!1),o=Kr(c=>{l(c.target.checked),r(c.target.checked)});g.useEffect(()=>{l(t)},[t]);const s=g.useMemo(()=>i(`webhookEndpoint.${a?"enabled":"disabled"}`),[a,i]),d=g.useMemo(()=>{const c=i("webhookEndpoint.enabled"),u=i("webhookEndpoint.disabled"),j=Dn(c,10,500),v=Dn(u,10,500),h=Math.max(j,v),D=18+3+h+6;return Math.max(Math.ceil(D/2)*2,50)},[i]),m=n||d;return e.jsx(ji,{checked:a,onChange:o,sx:c=>{const h=m-18-6,S=c.palette.mode==="dark",b=c.palette.common[S?"black":"white"],k=c.palette.common[S?"white":"black"];return{width:m,height:24,padding:0,"& .MuiSwitch-switchBase":{padding:0,margin:"3px",transitionDuration:"300ms","&.Mui-checked":{transform:`translateX(${h}px)`,color:c.palette.common.white,"& + .MuiSwitch-track":{backgroundColor:c.palette.primary.main,opacity:1,border:0,"&:before":{content:`"${s}"`,position:"absolute",left:c.spacing(.75),top:"50%",transform:"translateY(-50%)",color:b,fontSize:10,fontWeight:500}}}},"& .MuiSwitch-thumb":{width:18,height:18},"& .MuiSwitch-track":{borderRadius:24/2,backgroundColor:c.palette.grey[200],opacity:1,position:"relative","&:before":{content:`"${s}"`,position:"absolute",right:c.spacing(.75),top:"50%",transform:"translateY(-50%)",color:k,fontSize:10,fontWeight:500}}}}})}gr.propTypes={checked:f.bool.isRequired,onChange:f.func.isRequired,width:f.number};function hr({item:t,onDelete:r=()=>{},close:n=()=>{}}){const{t:i}=M(),[a,l]=g.useState(!1),[o,s]=g.useState(null),{id:d,title:m}=t,{api:c}=Q(),u=()=>{l(!1),s(null)},j=async()=>{l(!0);try{await c.deleteWebHook({input:{id:d}}),r()}catch(h){console.error(h)}finally{l(!1),s(null)}},v={keyName:d,title:i("setting.webhook.delTitle"),description:`${i("setting.webhook.description",{name:`<b>${m}</b>`,id:`<b>${d}</b>`})}`,confirmPlaceholder:i("setting.webhook.confirm_desc",{name:d}),confirm:i("common.delConfirm"),cancel:i("common.cancel"),onConfirm:j,onCancel:u};return e.jsxs(e.Fragment,{children:[e.jsxs(V,{disabled:a,onClick:h=>{h.stopPropagation(),n(),s(v)},"data-cy":"action-delete-webhook",dense:!0,children:[e.jsx(Ie,{style:{minWidth:24,marginRight:8},children:a?e.jsx(K,{}):e.jsx(ve,{})}),e.jsx(et,{primary:i("common.delete")})]},"delete-webhook"),o&&e.jsx(pt,{keyName:o.keyName,title:o.title,description:o.description,confirmPlaceholder:o.confirmPlaceholder,confirm:o.confirm,cancel:o.cancel,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}hr.propTypes={item:f.object.isRequired,onDelete:f.func,close:f.func};function no(){const{api:t,imgPrefix:r}=Q(),{t:n,locale:i}=g.useContext(mt),[a,l]=g.useState([]),[o,s]=g.useState(null),d=$e(async()=>{const[{webhooks:R},{senders:y}]=await Promise.all([t.getWebHooks(),t.getWebhookSenders()]);return l(y),R}),m=d.value||[],{loading:c,error:u}=d,j=new Set(m.map(R=>R.params.map(y=>y.value)).flat()),v=async R=>{try{await t.createWebHook({input:R}),d.retry()}catch(y){te.error(pe(y),{autoHideDuration:4e3}),console.error("create webhook error",y)}s(null)},h=()=>{s(null)},S=R=>{const y={title:R.title,description:(P,x,p)=>{const w=N=>{x({list:N,__disableConfirm:N.some($=>$.disable)})},A=P.list||[];return e.jsx(Tn,{children:A.map((N,$)=>e.jsx(ro,{children:e.jsx(H,{label:N.description,autoComplete:"off",variant:"outlined",fullWidth:!0,autoFocus:!0,style:{marginBottom:16},margin:"dense",value:N.value||N.defaultValue,onChange:F=>{N.required&&(N.disable=!0);const _=F.target.value.trim();if(N.value=_,A[$]=N,_){const X=j.has(_);Yr(N.type,_)&&!X?(N.disable=!1,p("")):(N.disable=!0,p(X?n("setting.webhook.duplicateError"):n("setting.webhook.requiredError",{type:N.description})))}else N.required&&(N.disable=!0),p("");w([...A])},slotProps:{htmlInput:{"data-cy":"webhook-input"}}})},N.name))})},params:{list:R.params,__disableConfirm:!0},confirm:n("setting.webhook.add"),cancel:n("common.cancel"),onConfirm:P=>{R.params=P.list,v(R)},onCancel:h};s(y)},b=R=>R.type==="slack"?e.jsx("img",{src:`${r}/${R.type}.png`,alt:"icon",style:{width:20,height:20}}):e.jsx(ar,{}),k=async R=>{try{const y={webhookId:R.id,message:"This is a test notification in order to test the integration"};await t.sendTestMessage({input:y}),te.success(n("setting.webhook.testSuccess"))}catch(y){te.error(pe(y),{autoHideDuration:4e3}),console.error("send test notification error",y)}},D=async(R,y,P)=>{try{await t.updateWebHookState({input:{id:R.id,url:y,enabled:P}}),te.success(n("setting.webhook.updateSuccess")),d.retry()}catch(x){console.error("update webhook enabled error",x),te.error(pe(x),{autoHideDuration:4e3})}},C=[{label:n("setting.webhook.columns.description"),name:"id",verticalKeyAlign:"center",options:{sort:!1,customBodyRenderLite:R=>{const y=m[R],P=a.find(x=>x.name===y.name);return e.jsxs("div",{style:{display:"flex",alignItems:"center",whiteSpace:"nowrap"},children:[b(y),e.jsxs("div",{style:{marginLeft:10},children:[e.jsxs("b",{children:["ID: ",y.id]}),e.jsx("div",{children:P?P.description:null})]})]})}}},{label:n("setting.webhook.columns.params"),name:"params",options:{sort:!1,customBodyRenderLite:R=>{const y=m[R],P=y.params.map(x=>{const p=x?.enabled??!0;return e.jsxs(W,{sx:{display:"flex",alignItems:"center",gap:1,minWidth:0,width:"100%"},children:[e.jsx(W,{sx:{flexShrink:0},children:e.jsx(gr,{checked:p,onChange:w=>D(y,x.value,w)})}),e.jsx(L,{variant:"body2",component:"div",title:x.value,sx:{flex:1,minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:x.value})]},x.value)});return e.jsx(W,{sx:{display:"flex",flexDirection:"column",gap:1,minWidth:0,width:"100%"},children:P})}}},{label:n("setting.webhook.columns.createdAt"),name:"createdAt",options:{customBodyRenderLite:R=>{const y=m[R];return e.jsx(it,{value:y.createdAt,locale:i})}}},{label:n("common.actions"),align:"center",verticalKeyAlign:"center",options:{sort:!1,customBodyRenderLite:R=>{const y=m[R],P=a.find(x=>x.name===y.name)||{};return e.jsx(Ci,{actions:[{render:({close:x})=>e.jsx(hr,{item:{...y,title:P.title},close:x,onDelete:()=>{d.retry()}})},{icon:e.jsx(io,{}),text:n("setting.webhook.test"),onClick:()=>{k(y)}}]})}}}];if(!m.length&&c)return e.jsx("div",{style:{textAlign:"center",marginTop:"50px"},children:e.jsx(K,{})});if(!m.length&&u)return e.jsx(be,{severity:"error",children:pe(u)});const T=a.map(R=>({icon:b(R),title:`${n("common.add")} ${R.title}`,onClick:()=>{S(R)}}));return e.jsxs(Tn,{children:[o&&e.jsx(le,{color:"primary",title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel}),e.jsx(or,{columns:C,data:m,locale:i,customButtons:T,verticalKeyWidth:100,options:{download:!1,filter:!1,print:!1}})]})}const Tn=re.div`
65
65
  .button-addon {
66
66
  text-align: right;
67
67
  }
@@ -109,7 +109,7 @@ import{aG as je,j as e,u as Q,r as h,e as $e,aH as Wr,aI as A,aJ as ln,aK as Vn,
109
109
  `;function ze({children:t,...r}){return e.jsx(ao,{...r,children:t})}const ao=re.div`
110
110
  border: 1px solid ${({theme:t})=>t.palette.divider};
111
111
  padding: 16px;
112
- `;ze.propTypes={children:f.node.isRequired};function Dt({action:t}){const{t:r}=M(),{info:n,api:i}=Q(),[a,l]=h.useState(!1),[o,s]=h.useState(null),{data:d,externalData:m}=Ht(),[c,u]=h.useState("restartAllBlocklets"),j=h.useRef(c);if(j.current=c,t==="upgrade"&&!n.nextVersion)return null;const b=()=>{l(!1),s(null)},x=n.enableDocker&&t==="restartAllBlocklet",S=async()=>{try{if(l(!0),t==="upgrade"&&await i.upgradeNodeVersion(),t==="restart"&&await i.restartServer(),t==="restartAllBlocklet")if(x&&j.current==="restartAllContainers")await i.restartAllContainers(),te.success(r("setting.form.restartAllContainers.restarting"));else{const k=new Set(["running","error"]),T=[...d,...m].filter(w=>k.has(w.status)||k.has(w.greenStatus)).map(w=>{if(!w||!w.children||!w.meta)return Promise.resolve();const R=w.children.filter(E=>k.has(E.status)||k.has(E.greenStatus)).map(E=>E.meta.did);return i.restartBlocklet({input:{did:w.meta.did,componentDids:R}})});await Promise.all(T),te.success(r("setting.form.restartAllBlocklet.restarting"))}}catch(k){te.error(pe(k))}finally{l(!1),s(null)}},y={title:r(`setting.form.${t}.title`,{version:n.nextVersion}),description:r(`setting.form.${t}.dialog`),confirm:r("common.confirm"),cancel:r("common.cancel"),onConfirm:S,onCancel:b};return e.jsxs(e.Fragment,{children:[e.jsx(ze,{className:"danger-zone",children:e.jsx(Ue,{title:r(`setting.form.${t}.title`,{version:n.nextVersion}),description:r(`setting.form.${t}.description`),children:e.jsxs(Z,{onClick:()=>s(y),color:"error",variant:"outlined",size:"large",children:[a?e.jsx(K,{size:16,style:{marginRight:3}}):null,r(`setting.form.${t}.confirm`)]})})}),o&&e.jsx(le,{title:o.title,description:x?e.jsxs(L,{component:"div",children:[e.jsx(L,{gutterBottom:!0,children:r("blocklet.action.restartDescription")}),e.jsxs(sr,{name:"removeType",value:c,onChange:k=>{u(k.target.value)},children:[e.jsx(Oe,{value:"restartAllBlocklets",control:e.jsx(Ft,{}),label:r("setting.form.restartAllBlocklet.description")}),e.jsx(Oe,{value:"restartAllContainers",control:e.jsx(Ft,{}),label:r("setting.form.restartAllContainers.description")})]})]}):o.description,confirm:o.confirm,cancel:o.cancel,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}function so(){const{t}=M(),{api:r}=Q(),[n,i]=h.useState(!1),[a,l]=h.useState(null),[o,s]=Di("last-check-server-version-time"),d=()=>{i(!1),l(null)},m={title:t("setting.form.upgrade.check"),description:t("setting.form.upgrade.latest"),confirm:t("common.confirm"),showCancel:!1,color:"primary",onConfirm:d,onCancel:d},c=async u=>{try{i(!0);const{version:j}=await r.checkNodeVersion();!j&&u&&l(m),s(Date.now())}catch(j){console.error(`Failed to check new version: ${j.message}`)}finally{i(!1)}};return h.useEffect(()=>{(!o||Date.now()-Number(o)>60*1e3)&&c(!1)},[]),e.jsxs(e.Fragment,{children:[e.jsx(Ti,{sx:{ml:2},color:"primary",variant:"outlined",onClick:c,size:"small",loadingPosition:"end",loading:n,children:e.jsxs(me,{direction:"row",spacing:.5,sx:{alignItems:"center"},children:[e.jsx(Ri,{fontSize:"small"}),e.jsx(L,{component:"span",children:t("server.checkUpgrade")})]})}),a&&e.jsx(le,{title:a.title,description:a.description,confirm:a.confirm,showCancel:a.showCancel,color:a.color,onConfirm:a.onConfirm,onCancel:a.onCancel})]})}function lo(){const{t}=M(),{info:r}=Q();return e.jsx(ze,{className:"danger-zone",children:e.jsx(Ue,{title:t("blocklet.config.clearCache.name"),description:t("blocklet.config.clearCache.purpose"),children:e.jsx(Ei,{teamDid:r.did,size:"large"})})})}function co(){const{t}=M(),{info:r}=Q();return e.jsx(ze,{className:"danger-zone",children:e.jsx(Ue,{title:t("blocklet.config.rotateSessionKey.name"),description:t("blocklet.config.rotateSessionKey.purpose"),children:e.jsx(Pi,{teamDid:r.did,size:"large"})})})}const uo="z8iZkFBbrVQxZHvcWWB3Sa2TrfGmSeFz9MSU7";function mo(){const{t}=M(),{info:r}=Q(),n=Vr(r),{createdAt:i,did:a,description:l,name:o}=r,s=Xr(async()=>{const c=localStorage.getItem("__registerUrl")||r.registerUrl,u=new URL(c);u.pathname="__blocklet__.js",u.searchParams.set("type","json");const{data:j}=await Qr.get(u.toString()),b=j?.componentMountPoints?.find(S=>S.did===uo),x=new URL(c);return x.pathname=Zr(b?.mountPoint||"","register"),x}),d={did:a,name:o,createdAt:i,description:l,url:n};if(s.loading)return"";if(s.error)return console.error("registerUrlState.error",s.error),"";const m=s.value;return e.jsx(fo,{children:e.jsx(ze,{className:"danger-zone",children:e.jsx(Ue,{title:t("setting.form.register.title"),description:t("setting.form.register.description",{url:m.origin}),children:e.jsx(Z,{color:"primary",component:"a",href:`${m.toString()}?register-server=${encodeURIComponent(JSON.stringify(d))}`,target:"_blank",variant:"contained",size:"large",children:t("setting.form.register.button")})})})})}const fo=re.div`
112
+ `;ze.propTypes={children:f.node.isRequired};function Dt({action:t}){const{t:r}=M(),{info:n,api:i}=Q(),[a,l]=g.useState(!1),[o,s]=g.useState(null),{data:d,externalData:m}=Ht(),[c,u]=g.useState("restartAllBlocklets"),j=g.useRef(c);if(j.current=c,t==="upgrade"&&!n.nextVersion)return null;const v=()=>{l(!1),s(null)},h=n.enableDocker&&t==="restartAllBlocklet",S=async()=>{try{if(l(!0),t==="upgrade"&&await i.upgradeNodeVersion(),t==="restart"&&await i.restartServer(),t==="restartAllBlocklet")if(h&&j.current==="restartAllContainers")await i.restartAllContainers(),te.success(r("setting.form.restartAllContainers.restarting"));else{const k=new Set(["running","error"]),C=[...d,...m].filter(T=>k.has(T.status)||k.has(T.greenStatus)).map(T=>{if(!T||!T.children||!T.meta)return Promise.resolve();const R=T.children.filter(y=>k.has(y.status)||k.has(y.greenStatus)).map(y=>y.meta.did);return i.restartBlocklet({input:{did:T.meta.did,componentDids:R}})});await Promise.all(C),te.success(r("setting.form.restartAllBlocklet.restarting"))}}catch(k){te.error(pe(k))}finally{l(!1),s(null)}},b={title:r(`setting.form.${t}.title`,{version:n.nextVersion}),description:r(`setting.form.${t}.dialog`),confirm:r("common.confirm"),cancel:r("common.cancel"),onConfirm:S,onCancel:v};return e.jsxs(e.Fragment,{children:[e.jsx(ze,{className:"danger-zone",children:e.jsx(Ue,{title:r(`setting.form.${t}.title`,{version:n.nextVersion}),description:r(`setting.form.${t}.description`),children:e.jsxs(Z,{onClick:()=>s(b),color:"error",variant:"outlined",size:"large",children:[a?e.jsx(K,{size:16,style:{marginRight:3}}):null,r(`setting.form.${t}.confirm`)]})})}),o&&e.jsx(le,{title:o.title,description:h?e.jsxs(L,{component:"div",children:[e.jsx(L,{gutterBottom:!0,children:r("blocklet.action.restartDescription")}),e.jsxs(sr,{name:"removeType",value:c,onChange:k=>{u(k.target.value)},children:[e.jsx(Fe,{value:"restartAllBlocklets",control:e.jsx(Ot,{}),label:r("setting.form.restartAllBlocklet.description")}),e.jsx(Fe,{value:"restartAllContainers",control:e.jsx(Ot,{}),label:r("setting.form.restartAllContainers.description")})]})]}):o.description,confirm:o.confirm,cancel:o.cancel,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}function so(){const{t}=M(),{api:r}=Q(),[n,i]=g.useState(!1),[a,l]=g.useState(null),[o,s]=Di("last-check-server-version-time"),d=()=>{i(!1),l(null)},m={title:t("setting.form.upgrade.check"),description:t("setting.form.upgrade.latest"),confirm:t("common.confirm"),showCancel:!1,color:"primary",onConfirm:d,onCancel:d},c=async u=>{try{i(!0);const{version:j}=await r.checkNodeVersion();!j&&u&&l(m),s(Date.now())}catch(j){console.error(`Failed to check new version: ${j.message}`)}finally{i(!1)}};return g.useEffect(()=>{(!o||Date.now()-Number(o)>60*1e3)&&c(!1)},[]),e.jsxs(e.Fragment,{children:[e.jsx(Ri,{sx:{ml:2},color:"primary",variant:"outlined",onClick:c,size:"small",loadingPosition:"end",loading:n,children:e.jsxs(me,{direction:"row",spacing:.5,sx:{alignItems:"center"},children:[e.jsx(Ti,{fontSize:"small"}),e.jsx(L,{component:"span",children:t("server.checkUpgrade")})]})}),a&&e.jsx(le,{title:a.title,description:a.description,confirm:a.confirm,showCancel:a.showCancel,color:a.color,onConfirm:a.onConfirm,onCancel:a.onCancel})]})}function lo(){const{t}=M(),{info:r}=Q();return e.jsx(ze,{className:"danger-zone",children:e.jsx(Ue,{title:t("blocklet.config.clearCache.name"),description:t("blocklet.config.clearCache.purpose"),children:e.jsx(Ei,{teamDid:r.did,size:"large"})})})}function co(){const{t}=M(),{info:r}=Q();return e.jsx(ze,{className:"danger-zone",children:e.jsx(Ue,{title:t("blocklet.config.rotateSessionKey.name"),description:t("blocklet.config.rotateSessionKey.purpose"),children:e.jsx(Pi,{teamDid:r.did,size:"large"})})})}const uo="z8iZkFBbrVQxZHvcWWB3Sa2TrfGmSeFz9MSU7";function mo(){const{t}=M(),{info:r}=Q(),n=Vr(r),{createdAt:i,did:a,description:l,name:o}=r,s=Xr(async()=>{const c=localStorage.getItem("__registerUrl")||r.registerUrl,u=new URL(c);u.pathname="__blocklet__.js",u.searchParams.set("type","json");const{data:j}=await Qr.get(u.toString()),v=j?.componentMountPoints?.find(S=>S.did===uo),h=new URL(c);return h.pathname=Zr(v?.mountPoint||"","register"),h}),d={did:a,name:o,createdAt:i,description:l,url:n};if(s.loading)return"";if(s.error)return console.error("registerUrlState.error",s.error),"";const m=s.value;return e.jsx(fo,{children:e.jsx(ze,{className:"danger-zone",children:e.jsx(Ue,{title:t("setting.form.register.title"),description:t("setting.form.register.description",{url:m.origin}),children:e.jsx(Z,{color:"primary",component:"a",href:`${m.toString()}?register-server=${encodeURIComponent(JSON.stringify(d))}`,target:"_blank",variant:"contained",size:"large",children:t("setting.form.register.button")})})})})}const fo=re.div`
113
113
  .danger-zone {
114
114
  margin-top: 1vw;
115
115
  width: 100%;
@@ -118,7 +118,7 @@ import{aG as je,j as e,u as Q,r as h,e as $e,aH as Wr,aI as A,aJ as ln,aK as Vn,
118
118
  display: flex;
119
119
  flex-direction: column;
120
120
  margin-top: 32px;
121
- `,xr=h.createContext({}),{Provider:ho,Consumer:fs}=xr;function yr({children:t,domains:r}){const{api:n}=Q(),i=JSON.stringify(r),[a,l]=h.useState({}),o=h.useMemo(()=>r.map(x=>x.filter(S=>S&&Gt(S))).filter(x=>x.length>0),[i]);_t(A.EVENTS.DOMAIN_STATUS,x=>{x&&l(S=>({...S,[x.domain]:{...S[x.domain],...x}}))});const s=h.useMemo(()=>o.flat(),[o]),{domainsAccessibility:d,recommendedDomain:m}=ki(s),c=h.useMemo(()=>{const x={...a};return Object.keys(d).forEach(S=>{const y=x[S]||{};x[S]={...y,...d[S]}}),x},[a,d]),u=async()=>{await Promise.all(o.map(x=>n.checkDomains({input:{domains:x}})))},j=x=>{x&&n.checkDomains({input:{domains:[x]}})};h.useEffect(()=>{u()},[i]);const b={refresh:u,updateStatus:j,api:n,status:c,recommendedDomain:m,recommendedDomainStatus:c[m]};return e.jsx(ho,{value:b,children:t})}yr.propTypes={children:f.any.isRequired,domains:f.array.isRequired};function gt(){const{status:t,recommendedDomainStatus:r,recommendedDomain:n,updateStatus:i}=h.useContext(xr);return{status:t,recommendedDomainStatus:r,recommendedDomain:n,updateStatus:i}}const xo=t=>(ne(t,"meta.interfaces")||[]).find(n=>n.type===ft.BLOCKLET_INTERFACE_TYPE_WEB);function ht({params:t={},blocklets:r=[],setParams:n=()=>{},setError:i=()=>{},serviceTypes:a=[{name:"Blocklet",value:A.ROUTING_RULE_TYPES.BLOCKLET},{name:"Redirect",value:A.ROUTING_RULE_TYPES.REDIRECT},{name:"Default - User will see the 404 page",value:A.ROUTING_RULE_TYPES.NONE}]}){const{t:l}=M(),o={301:l("common.redirectPermanently"),302:l("common.redirectTemporary"),307:l("common.redirectTemporary"),308:l("common.redirectPermanently")},s=Vn(r,c=>c.meta.name),d=(c,u)=>{if(!u)return{};let{port:j}=c;u&&c.ports&&u.port&&(c.ports[u.port]&&(j=c.ports[u.port]),c.ports[u.port.internal]&&(j=c.ports[u.port.internal]));let{pathPrefix:b}=t;return u&&u.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&(b=u.prefix),{port:j,pathPrefix:b}},m=c=>{const u=s.find(b=>b.meta.did===c),j=xo(u);return{...d(u,j),interfaceName:j?j.name:""}};return h.useEffect(()=>{!t.interfaceName&&t.type===A.ROUTING_RULE_TYPES.BLOCKLET&&n({...t,...m(t.did),__disableConfirm:!1})},[]),e.jsxs(e.Fragment,{children:[e.jsx(H,{select:!0,label:l("router.domain.add.type"),autoComplete:"off",variant:"outlined",name:"type","data-cy":"domain-add-type",fullWidth:!0,value:t.type,onChange:c=>{i(""),n({...t,type:c.target.value,__disableConfirm:!1})},style:{marginBottom:32},slotProps:{select:{}},children:a.map(({name:c,value:u})=>e.jsx(V,{value:u,children:c},u))}),t.type===A.ROUTING_RULE_TYPES.BLOCKLET&&e.jsxs(H,{select:!0,label:l("router.domain.add.blocklet"),autoComplete:"off",variant:"outlined",name:"did","data-cy":"domain-blocklet-select",fullWidth:!0,value:t.did,onChange:c=>{n({...t,...m(c.target.value),did:c.target.value,__disableConfirm:!1})},style:{marginBottom:32},children:[s.map(c=>e.jsxs(V,{value:c.meta.did,children:[`${c.meta.name} v${c.meta.version}`,e.jsx("span",{style:{marginLeft:8},children:e.jsx(cr,{status:c.status,progress:c.progress})})]},c.meta.did)),r.length===0&&e.jsx(V,{value:"",children:l("common.empty")},"empty")]}),t.type===A.ROUTING_RULE_TYPES.REDIRECT&&[e.jsx(H,{select:!0,label:l("router.domain.add.redirect"),autoComplete:"off",variant:"outlined",name:"type",fullWidth:!0,value:t.redirectCode,onChange:c=>n({...t,redirectCode:c.target.value}),style:{marginBottom:32},slotProps:{select:{}},children:Object.keys(o).map(c=>e.jsx(V,{value:c,children:`${o[c]} - ${c}`},c))}),e.jsx(H,{label:l("common.redirectUrl"),autoComplete:"off",variant:"outlined",name:"url",fullWidth:!0,autoFocus:!0,value:t.url,helperText:l("router.urlHelperText"),style:{marginBottom:32},onChange:c=>{n({...t,url:c.target.value,__disableConfirm:!c.target.value.trim()}),c.target.value.trim()?i(""):i(l("router.validation.redirectUrlRequired"))},slotProps:{htmlInput:{"data-cy":"redirect-url-input"}}})]]})}ht.propTypes={params:f.object,blocklets:f.array,serviceTypes:f.array,setParams:f.func,setError:f.func};const br=(t,r)=>{if(t.type===A.ROUTING_RULE_TYPES.REDIRECT){if(!t.url)return new Error(`${r("router.validation.redirectUrlRequired")}`);if(!t.redirectCode)return new Error(`redirect ${r("router.validation.redirectCodeRequired")}`)}else if(t.type===A.ROUTING_RULE_TYPES.BLOCKLET&&!t.did)return new Error(r("router.validation.didRequired"));return null},Ne=(t,r)=>t?t.endsWith(A.DEFAULT_IP_DOMAIN_SUFFIX)?r("router.domain.validate.suffixTip",{suffix:A.DEFAULT_IP_DOMAIN_SUFFIX}):null:r("router.domain.validate.emptyTip"),yo=(t,r)=>{const n=br(t,r);if(n)return n;const i=Ne(t.domain,r);return i?new Error(i):null},st=(t,r)=>{const n=br(t,r);return n||(t.pathPrefix.length?t.pathPrefix.length>150?new Error(r("router.validation.pathPrefixTooLong",{length:150})):null:new Error(r("router.validation.pathPrefixCannotBeEmpty")))},vr=({params:t,blocklets:r,blocklet:n,locale:i="en"})=>{if(n){let o=(n.children||[]).find(s=>_i(s.mountPoint,t.pathPrefix));if(n.meta.group!=="gateway"&&t.pathPrefix==="/"&&(o="/"),o)return{zh:`挂载点 ${t.pathPrefix} 已存在,请使用其他挂载点`,en:`The mount point ${t.pathPrefix} already exist, please use another mount point`}[i]}const a=r.find(o=>o.meta.did===t.did);if(!a)return"";const l=a.meta.interfaces.find(o=>o.type==="web");return l&&l.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&t.pathPrefix!==l.prefix?{zh:`该 blocklet 只能挂载在 ${l.prefix}`,en:`This blocklet can only be mounted on ${l.prefix}`}[i]:""},Zt=t=>{if(t.length===0)return"";const{searchParams:r}=new URL(window.location.href),n=r.get("fromDid");if(n){const i=t.find(a=>a.meta.did===n);if(i)return i.meta.did}return t[0].meta.did};function Jt({blocklets:t=[],onActivate:r=()=>{},children:n=null}){const{t:i}=M(),{actions:a}=de(),{info:l}=Q(),[o,s]=h.useState(!1),[d,m]=h.useState(null),c=()=>{s(!1),m(null)},u=async x=>{s(!0);const S={from:{pathPrefix:"/"},to:{type:x.type}},y={domain:x.domain.trim()===l.ip?"":x.domain.trim()};if(x.type===A.ROUTING_RULE_TYPES.BLOCKLET){const k=t.find(T=>T.meta.did===x.did),D=ne(k,"meta.interfaces",[]).find(T=>T.name===x.interfaceName);D&&D.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&(S.from.pathPrefix=D.prefix),S.to.port=x.port,S.to.did=x.did,S.to.interfaceName=x.interfaceName,y.rules=[S]}else x.type===A.ROUTING_RULE_TYPES.REDIRECT&&(S.to.url=x.url,S.to.redirectCode=x.redirectCode,y.rules=[S]);await a.addSite(y),s(!1),m(null)},j={title:i("router.domain.addSite"),description:(x,S,y)=>{const k=D=>{const T=D.__disableConfirm||!!yo(D,i);S({...D,__disableConfirm:T})};return e.jsxs(L,{component:"div",children:[e.jsx(H,{label:i("router.domain.add.description"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:x.domain,style:{marginTop:16,marginBottom:32},onChange:D=>{const T=D.target.value.trim(),w=Ne(T,i);k({...x,domain:D.target.value,__disableConfirm:!!w}),y(w||"")},slotProps:{htmlInput:{"data-cy":"domain-name-input"}}}),e.jsx(ht,{blocklets:t,params:x,setParams:k,setError:y})]})},confirm:i("router.domain.add.confirm"),cancel:i("router.domain.add.cancel"),params:{domain:"",did:Zt(t),port:"",interfaceName:"",type:A.ROUTING_RULE_TYPES.BLOCKLET,redirectCode:302,__disableConfirm:!0},onConfirm:u,onCancel:c},b=x=>{x.stopPropagation(),m(j)||r()};return h.useEffect(()=>{const{searchParams:x}=new URL(window.location.href);x.get("fromDid")&&m(j)},[]),e.jsxs(e.Fragment,{children:[typeof n=="function"?n({loading:o,open:b}):e.jsxs(V,{onClick:b,className:"rule-action","data-cy":"action-add-domain",children:[o?e.jsx(K,{size:16}):e.jsx(lr,{style:{fontSize:18,marginRight:5}}),i("router.domain.add.title")]}),d&&e.jsx(le,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}Jt.propTypes={blocklets:f.array,children:f.any,onActivate:f.func};function Tn(t){const{t:r}=M(),{actions:n}=de(),[i,a]=h.useState(!1),[l,o]=h.useState(null),{id:s,name:d}=t;if(Xt(d))return null;const m=()=>{a(!1),o(null)},c=async()=>{a(!0),await n.deleteSite(s),a(!1),o(null)},u={title:r("router.domain.delete.title"),description:r("router.domain.delete.description",{name:`<b>${d}</b>`}),confirmPlaceholder:r("router.domain.delete.confirm_desc",{name:d}),confirm:r("common.delConfirm"),cancel:r("common.cancel"),onConfirm:c,onCancel:m,keyName:d},j=b=>{b.stopPropagation(),o(u)||t.onActivate()};return e.jsxs(e.Fragment,{children:[e.jsxs(V,{onClick:j,className:"rule-action","data-cy":"action-delete-domain",children:[i?e.jsx(K,{size:16}):e.jsx(ve,{style:{fontSize:18,marginRight:5}}),r("router.domain.delete.title")]}),l&&e.jsx(pt,{keyName:l.keyName,title:l.title,description:l.description,confirmPlaceholder:l.confirmPlaceholder,confirm:l.confirm,cancel:l.cancel,params:l.params,onConfirm:l.onConfirm,onCancel:l.onCancel})]})}function Nt({id:t,blocklets:r=[],onActivate:n=()=>{},onRuleAdded:i=()=>{},children:a=null,teamDid:l=""}){const{t:o}=M(),{actions:s}=de(),[d,m]=h.useState(!1),[c,u]=h.useState(null),j=()=>{m(!1),u(null)},b=async y=>{const k=await st(y,o);if(k)throw k;m(!0);const D={from:{pathPrefix:Jn.urlPathFriendly(y.pathPrefix)},to:{type:y.type}};y.type===A.ROUTING_RULE_TYPES.BLOCKLET?(D.to.port=y.port,D.to.did=y.did,D.to.interfaceName=y.interfaceName):y.type===A.ROUTING_RULE_TYPES.REDIRECT&&(D.to.url=y.url.trim(),D.to.redirectCode=y.redirectCode),await s.addRule(t,D,l),u(null),m(!1),i()},x={title:o("router.rule.add.title"),description:(y,k,D)=>{const T=w=>{if(D(null),st(w,o)){k({...w,__disableConfirm:!0});return}k({...w})};return e.jsxs(L,{component:"div",children:[e.jsx(H,{label:o("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",fullWidth:!0,autoFocus:!0,helperText:y.helperText||o("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:y.pathPrefix,onChange:w=>{let R=!1;const E=vr({params:{...y,pathPrefix:w.target.value},blocklets:r});D(E),y.type===A.ROUTING_RULE_TYPES.BLOCKLET&&E&&(R=!0),y.type===A.ROUTING_RULE_TYPES.REDIRECT&&!y.url&&(R=!0),w.target.value.trim()||(R=!0,D(o("router.validation.pathPrefixRequired"))),R||D("");const P=o("common.slugifyHint",{value:Zn(w.target.value)});k({...y,pathPrefix:w.target.value,helperText:P,__disableConfirm:R})},slotProps:{htmlInput:{"data-cy":"path-prefix-input"}}}),e.jsx(ht,{blocklets:r,params:y,setParams:T,setError:D})]})},confirm:o("router.rule.add.confirm"),cancel:o("common.cancel"),params:{pathPrefix:"",type:A.ROUTING_RULE_TYPES.BLOCKLET,did:Zt(r),port:"",interfaceName:"",redirectCode:302,__disableConfirm:!0},onConfirm:b,onCancel:j},S=y=>{y.stopPropagation(),u(x)||n()};return e.jsxs(e.Fragment,{children:[typeof a=="function"?a({loading:d,open:S}):e.jsxs(V,{onClick:S,className:"rule-action","data-cy":"action-add-rule",children:[d?e.jsx(K,{size:16}):e.jsx(ar,{style:{fontSize:18,marginRight:5}}),o("router.rule.add.title")]}),c&&e.jsx(le,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}Nt.propTypes={id:f.string.isRequired,blocklets:f.array,children:f.any,onActivate:f.func,onRuleAdded:f.func,teamDid:f.string};function jr({id:t,name:r,parent:{id:n},children:i=null,onActivate:a=()=>{},teamDid:l=""}){const{t:o}=M(),{actions:s}=de(),[d,m]=h.useState(!1),[c,u]=h.useState(null),j=()=>{m(!1),u(null)},b=async()=>{m(!0),await s.deleteRule(n,t,l),m(!1),u(null)},x={keyName:r,title:o("router.rule.delete.title"),description:o("router.rule.delete.description",{name:`<b>${r}</b>`}),confirmPlaceholder:o("router.rule.delete.confirm_desc",{name:r}),confirm:o("common.delConfirm"),cancel:o("router.rule.delete.cancel"),onConfirm:b,onCancel:j},S=y=>{y.stopPropagation(),u(x)||a()};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:d,open:S}):e.jsxs(V,{onClick:S,className:"rule-action","data-cy":"action-delete-rule",children:[d?e.jsx(K,{size:16}):e.jsx(ve,{style:{fontSize:18,marginRight:5}}),o("router.rule.delete.title")]}),c&&e.jsx(pt,{keyName:c.keyName,title:c.title,description:c.description,confirmPlaceholder:c.confirmPlaceholder,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel})]})}jr.propTypes={id:f.string.isRequired,name:f.string.isRequired,parent:f.object.isRequired,children:f.any,onActivate:f.func,teamDid:f.string};function wr({id:t,name:r,did:n="",parent:i,blocklets:a=[],to:l,children:o=null,onActivate:s=()=>{},teamDid:d=""}){const{t:m}=M(),{actions:c}=de(),[u,j]=h.useState(!1),[b,x]=h.useState(null),S=()=>{j(!1),x(null)},y=async T=>{const w=await st(T,m);if(w)throw w;j(!0);const R={id:t,from:{pathPrefix:Jn.urlPathFriendly(T.pathPrefix)},to:{type:T.type}};T.type===A.ROUTING_RULE_TYPES.BLOCKLET?(R.to.port=T.port,R.to.did=T.did,R.to.interfaceName=T.interfaceName):T.type===A.ROUTING_RULE_TYPES.REDIRECT&&(R.to.url=T.url,R.to.redirectCode=T.redirectCode),await c.updateRule(i.id,R,d),x(null),j(!1)},k={title:m("router.rule.update.title"),description:(T,w,R)=>{const E=P=>{if(st(P,m)){w({...P,__disableConfirm:!0});return}w({...P})};return e.jsxs(L,{component:"div",children:[e.jsx(H,{label:m("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",fullWidth:!0,autoFocus:!0,helperText:T.helperText||m("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:T.pathPrefix,onChange:P=>{let g=!1;const p=vr({params:{...T,pathPrefix:P.target.value},blocklets:a});T.type===A.ROUTING_RULE_TYPES.BLOCKLET&&p&&(g=!0,R(p)),T.type===A.ROUTING_RULE_TYPES.REDIRECT&&!T.url&&(g=!0),P.target.value.trim()||(g=!0,R(m("router.validation.pathPrefixRequired"))),g||R("");const v=m("common.slugifyHint",{value:Zn(P.target.value)});w({...T,pathPrefix:P.target.value,helperText:v,__disableConfirm:g})},slotProps:{htmlInput:{"data-cy":"path-prefix-input"}}}),e.jsx(ht,{blocklets:a,params:T,setParams:E,setError:R})]})},confirm:m("router.rule.update.confirm"),cancel:m("router.rule.update.cancel"),color:"primary",params:{pathPrefix:r==="/"?r:r.replace(/^\/+/,"").replace(/\/+$/,""),type:l.type||A.ROUTING_RULE_TYPES.BLOCKLET,did:n||Zt(a),port:l.port||"",interfaceName:l.interfaceName||"",redirectCode:l.redirectCode||302,url:l.url||"",__disableConfirm:!1},onConfirm:y,onCancel:S},D=T=>{T.stopPropagation(),x(k)||s()};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:u,open:D}):e.jsxs(V,{onClick:D,className:"rule-action","data-cy":"action-update-rule",children:[u?e.jsx(K,{size:16}):e.jsx(dr,{style:{fontSize:18,marginRight:5}}),m("router.rule.update.title")]}),b&&e.jsx(le,{title:b.title,description:b.description,confirm:b.confirm,color:b.color,cancel:b.cancel,params:b.params,onConfirm:b.onConfirm,onCancel:b.onCancel})]})}wr.propTypes={id:f.string.isRequired,name:f.string.isRequired,did:f.string,parent:f.object.isRequired,blocklets:f.array,to:f.object.isRequired,children:f.any,onActivate:f.func,teamDid:f.string};function tt({id:t,name:r,onActivate:n=()=>{},children:i=null,title:a="",teamDid:l=""}){const{t:o}=M(),{actions:s}=de(),[d,m]=h.useState(!1),[c,u]=h.useState(null);if(A.DOMAIN_FOR_DEFAULT_SITE===r)return null;const j=()=>{m(!1),u(null)},b=async k=>{m(!0),await s.addDomainAlias(t,k.domain.trim(),!!k.force,l),m(!1),u(null)},x=async(k,D,T)=>{try{await D(k)}catch(w){T(pe(w))}finally{m(!1)}},S={title:a||o("router.domainAlias.add.title"),description:(k,D,T)=>e.jsxs(L,{component:"div",children:[e.jsx(H,{label:o("router.domainAlias.add.domainDescription"),autoComplete:"off",variant:"outlined",name:"domain","data-cy":"add-domain",fullWidth:!0,autoFocus:!0,value:k.domain,style:{marginBottom:8},margin:"dense",onChange:w=>{const R=w.target.value.trim(),E=Ne(R,o);D({...k,domain:R,__disableConfirm:!!E}),T(E||"")},onKeyPress:w=>{if(w.key==="Enter"){w.preventDefault();const R=w.target.value.trim(),E=Ne(R,o);E?T(E):x(k,b,T)}},slotProps:{htmlInput:{"data-cy":"domain-name-input"}}}),e.jsx(Oe,{control:e.jsx(er,{checked:k.force,onChange:w=>{D({...k,force:w.target.checked})},name:"checkedB",color:"primary"}),label:o("router.domainAlias.add.forceTip")})]}),confirm:o("common.confirm"),cancel:o("common.cancel"),params:{domain:"",__disableConfirm:!0},onConfirm:b,onCancel:j},y=k=>{k.stopPropagation(),u(S)||n()};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:d,open:y}):e.jsxs(V,{onClick:y,className:"rule-action","data-cy":"action-add-domain-alias",children:[d?e.jsx(K,{size:16}):e.jsx(Oi,{style:{fontSize:18,marginRight:5}}),o("router.domainAlias.add.title")]}),c&&e.jsx(le,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}tt.propTypes={id:f.string.isRequired,name:f.string.isRequired,children:f.any,onActivate:f.func,title:f.string,teamDid:f.string};function nt({id:t,name:r,corsAllowedOrigins:n="",onActivate:i=()=>{},children:a=null,teamDid:l=""}){const{t:o}=M(),{actions:s}=de(),[d,m]=h.useState(!1),[c,u]=h.useState(null);if(Xt(r))return null;let j=r;r.endsWith(A.BLOCKLET_SITE_GROUP_SUFFIX)&&(j=`${o("common.the")} Blocklet`);const b=()=>{m(!1),u(null)},x=async k=>{m(!0),await s.updateSite(t,{corsAllowedOrigins:k.corsAllowedOrigins.split(",").map(D=>D.trim())},l),m(!1),u(null)},S={title:o("router.domainSecurity.title"),description:(k,D,T)=>e.jsx(L,{component:"div",children:e.jsx(H,{label:o("router.domainSecurity.cors.title",{name:j}),autoComplete:"off",variant:"outlined",name:"corsAllowedOrigins",fullWidth:!0,autoFocus:!0,value:k.corsAllowedOrigins,style:{marginBottom:32},margin:"dense",helperText:o("router.domainSecurity.cors.description",{name:j}),onChange:w=>{D({...k,corsAllowedOrigins:w.target.value,__disableConfirm:!w.target.value.trim()}),w.target.value.trim()?T(""):T(o("router.domainSecurity.cors.domainInvalid"))}})}),confirm:o("common.confirm"),cancel:o("common.cancel"),params:{corsAllowedOrigins:Array.isArray(n)?n.join(", "):r,__disableConfirm:!0},onConfirm:x,onCancel:b},y=k=>{k.stopPropagation(),u(S)||i()};return e.jsxs(e.Fragment,{children:[typeof a=="function"?a({loading:d,open:y}):e.jsxs(V,{onClick:y,className:"rule-action","data-cy":"action-update-domain",children:[d?e.jsx(K,{size:16}):e.jsx(Fe,{style:{fontSize:18,marginRight:5}}),o("router.domainSecurity.title")]}),c&&e.jsx(le,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}nt.propTypes={id:f.string.isRequired,name:f.string.isRequired,children:f.any,onActivate:f.func,corsAllowedOrigins:f.oneOfType([f.string,f.array]),teamDid:f.string};function bo({id:t,name:r,onActivate:n}){const{t:i}=M(),{actions:a}=de(),[l,o]=h.useState(!1),[s,d]=h.useState(null);if(Xt(r))return null;const m=()=>{o(!1),d(null)},c=async b=>{o(!0),await a.updateSite(t,{domain:b.domain.trim()}),o(!1),d(null)},u={title:i("router.domain.update.title"),description:(b,x,S)=>e.jsx(L,{component:"div",children:e.jsx(H,{label:i("router.domain.update.label"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:b.domain,style:{marginBottom:32},margin:"dense",helperText:i("router.domain.update.description"),onChange:y=>{const k=y.target.value.trim(),D=Ne(k,i);x({...b,domain:y.target.value,__disableConfirm:!!D}),S(D||"")}})}),confirm:i("common.confirm"),cancel:i("common.cancel"),params:{domain:r,__disableConfirm:!0},onConfirm:c,onCancel:m},j=b=>{b.stopPropagation(),d(u)||n()};return e.jsxs(e.Fragment,{children:[e.jsxs(V,{onClick:j,className:"rule-action",children:[l?e.jsx(K,{size:16}):e.jsx(dr,{style:{fontSize:18,marginRight:5}}),i("router.domain.update.title")]}),s&&e.jsx(le,{title:s.title,description:s.description,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel,color:"primary"})]})}function Le({blocklet:t={},onRuleAdded:r=()=>{},type:n,...i}){const[a,l]=h.useState(null),o={type:n,blocklet:t,onRuleAdded:r,...i},s=u=>{u.stopPropagation(),l(u.currentTarget)},d=u=>{u&&u.stopPropagation(),l(null)},m=[];if(n==="root"&&m.push(e.jsx(Jt,{...o,onActivate:d},"add-domain")),n==="domain"&&m.push(e.jsx(bo,{...o,onActivate:d},"update-domain"),e.jsx(Nt,{...o,onActivate:d,onRuleAdded:o.onRuleAdded},"add-rule"),e.jsx(tt,{...o,onActivate:d},"add-domain-alias"),e.jsx(nt,{...o,onActivate:d},"update-domain-security"),e.jsx(Tn,{...o,onActivate:d},"delete-domain")),n==="rule"&&m.push(e.jsx(wr,{...o,onActivate:d},"update-rule"),e.jsx(jr,{...o,onActivate:d},"delete-rule")),n===A.ROUTING_RULE_TYPES.REDIRECT&&m.push(e.jsx(Tn,{...o,onActivate:d},"delete-domain")),n==="dashboard_domain"&&m.push(e.jsx(Nt,{...o,onActivate:d},"add-rule"),e.jsx(nt,{...o,onActivate:d},"update-domain-security"),e.jsx(tt,{...o,onActivate:d},"add-domain-alias")),n==="blocklet_domain"&&m.push(e.jsx(nt,{...o,onActivate:d},"update-domain-security"),e.jsx(tt,{...o,onActivate:d},"add-domain-alias")),m.length===0)return null;const c=u=>{u.stopPropagation()};return e.jsxs("div",{children:[e.jsx(It,{onMouseDown:c,onClick:s,"data-cy":"action-trigger",size:"large",children:e.jsx(Li,{})}),e.jsx(Jr,{keepMounted:!0,onMouseDown:c,open:!!a,onClose:d,anchorEl:a,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:m})]})}Le.propTypes={blocklet:f.object,onRuleAdded:f.func};function Cr({certificate:t={}}){const[r,n]=h.useState(null),i=Q(),{t:a,locale:l}=M(),o=m=>{n(m.currentTarget)},s=()=>{n(null)},d=!!r;return e.jsxs(e.Fragment,{children:[e.jsx(ur,{"aria-owns":d?"mouse-over-popover":void 0,onMouseEnter:o,onMouseLeave:s,style:{color:"#44cdc6",fontSize:20,marginLeft:8,cursor:"pointer"}}),e.jsx(ti,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:d,anchorEl:r,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:s,disableRestoreFocus:!0,children:e.jsx(ni,{children:e.jsxs(Fi,{style:{display:"flex"},children:[e.jsx("div",{children:e.jsx("img",{src:`${i.imgPrefix}/https-certificate-icon.png`,alt:"certificate icon",style:{maxHeight:"100%",maxWidth:"100%"}})}),e.jsxs(L,{component:"div",style:{marginLeft:"16px"},children:[e.jsx(L,{component:"div",style:{fontWeight:"bold"},children:t.domain}),e.jsx(L,{component:"div",children:`${a("common.issuer")}: ${ne(t,"issuer.commonName","")}`}),e.jsx(L,{component:"div",children:`${a("router.cert.issuedOn")}: ${ot(t.validFrom,l)}`}),e.jsx(L,{component:"div",children:`${a("router.cert.expiryOn")}: ${ot(t.validTo,l)}`})]})]})})})]})}Cr.propTypes={certificate:f.object};function $t({name:t,type:r,filters:n=["domain","http"]}){const{t:i}=M(),{status:a}=gt();if(r!=="domain"||!Gt(t))return null;let l=null,o=null;const{isHttps:s,matchedCert:d}=a[t]||{};if(!ei(t)){const{dns:{resolved:c,ip:u}={}}=a[t]||{};c||u==="127.0.0.1"?l=e.jsx(fe,{title:i("router.domain.verify.ok"),children:e.jsx(jn,{color:"success"})}):l=e.jsx(fe,{title:i("router.domain.verify.notResolved"),children:e.jsx(jn,{color:"error"})})}s?o=e.jsx(Cr,{certificate:d}):o=e.jsx(fe,{title:i("router.domain.https.bad"),children:e.jsx(ur,{style:{color:"#D0021B",fontSize:20,marginLeft:8,cursor:"pointer"}})});const m=n.map(c=>c==="domain"?l:c==="http"?o:null);return h.createElement(h.Fragment,null,...m)}$t.propTypes={type:f.string.isRequired,name:f.string.isRequired,filters:f.array};const vo=t=>["waiting","creating","renewaling"].includes(t);function Sr({domain:t,onAdd:r=()=>{},children:n=null,siteId:i}){const{t:a}=M(),[l,o]=h.useState(!1),[s,d]=h.useState(null),{api:m}=Q(),[c,u]=h.useState(!1),{updateStatus:j}=gt(),b=$e(async()=>{const{cert:T}=await m.findCertificateByDomain({input:{domain:t}});return T}),x=T=>{T.domain===t&&u(!1)};if(h.useEffect(()=>{!b.loading&&vo(b.value?.status)&&u(!0)},[b]),_t(A.EVENTS.CERT_ERROR,x),_t(A.EVENTS.CERT_ISSUED,T=>{b.retry(),j(T.domain),x(T)}),b.loading||b.value?.status==="normal")return"";const S=()=>{o(!1),d(null)},y=async()=>{o(!0);try{await m.issueLetsEncryptCert({input:{domain:t,siteId:i}}),r(),u(!0)}catch(T){console.error(T),u(!1)}finally{o(!1),d(null)}},k={title:a("router.cert.genLetsEncryptCert.title"),description:e.jsxs("div",{children:[e.jsx(be,{severity:"success",children:a("router.cert.genLetsEncryptCert.dnsTip")}),a("router.cert.genLetsEncryptCert.description")]}),confirm:a("common.confirm"),onConfirm:y,onCancel:S},D=T=>{T.stopPropagation(),d(k)};return e.jsxs(e.Fragment,{children:[c?e.jsx(fe,{title:a("router.cert.issuing"),children:e.jsx(K,{size:12})}):n({loading:l,open:D}),s&&e.jsx(le,{color:"primary",title:s.title,description:s.description,confirm:s.confirm,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}Sr.propTypes={domain:f.string.isRequired,onAdd:f.func,children:f.any,siteId:f.string.isRequired};function Ut({domain:t,siteId:r,onAdd:n=()=>{},children:i=null}){const{status:a}=gt();return!Gt(t)||a[t]?.isHttps?"":e.jsx(Sr,{domain:t,onAdd:n,siteId:r,children:i})}Ut.propTypes={siteId:f.string.isRequired,domain:f.string.isRequired,onAdd:f.func,children:f.any};function kr({id:t,domain:r,onDelete:n=()=>{},children:i=null,teamDid:a=""}){const{t:l}=M(),[o,s]=h.useState(!1),[d,m]=h.useState(null),{actions:c}=de();if(r===window.location.hostname)return"";const u=()=>{s(!1),m(null)},j=async()=>{s(!0);try{await c.deleteDomainAlias(t,r,a),n()}catch(S){console.error(S)}finally{s(!1),m(null)}},b={keyName:r,title:l("router.domainAlias.delete.title"),description:l("router.domainAlias.delete.description",{domain:r}),confirmPlaceholder:l("router.domainAlias.delete.confirmPlaceholder",{domain:r}),confirm:l("common.delete"),onConfirm:j,onCancel:u},x=S=>{S.stopPropagation(),m(b)};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:o,open:x}):e.jsxs(Z,{edge:"end",onClick:x,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[o?e.jsx(K,{size:16}):e.jsx(ve,{style:{fontSize:16}}),l("common.delete")]}),d&&e.jsx(pt,{keyName:d.keyName,title:d.title,description:d.description,confirmPlaceholder:d.confirmPlaceholder,confirm:d.confirm,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel})]})}kr.propTypes={id:f.string.isRequired,domain:f.string.isRequired,onDelete:f.func,children:f.any,teamDid:f.string};function Dr({domain:t,isHttps:r=!1,toUrl:n}){const i=r?"https":"http",{t:a}=M();let l=n;return nr(l)||(l=`${i}://${t}${n}`),e.jsxs(e.Fragment,{children:[e.jsx(L,{className:"arrow-name-middle",children:a("common.redirect")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsx(Kt,{href:l,target:"_blank",underline:"hover",children:n},l)]})}Dr.propTypes={domain:f.string.isRequired,toUrl:f.string.isRequired,isHttps:f.bool};function jo(){const{t}=M();return e.jsx(L,{className:"arrow-name-middle",children:t("common.page404")})}function lt({id:t="",type:r="",name:n="",title:i="",items:a=[],depth:l=0,to:o={},expand:s=!0,isProtected:d=!1,pathPrefix:m="",parent:c={},domainAliases:u=[],...j}){const b={id:t,type:r,name:n,title:i,items:a,depth:l,to:o,expand:s,isProtected:d,pathPrefix:m,parent:c,domainAliases:u,...j},{t:x}=M(),{data:S}=Ht(),{info:y}=Q(),{status:k}=gt(),D=S.map(Y=>({meta:{did:Y.meta.did,name:gn.getDisplayName(Y,!0),version:Y.meta.version,interfaces:Y.meta.interfaces},port:Y.port,ports:Y.ports,status:Y.status}));let T=n;const w=n.endsWith(A.BLOCKLET_SITE_GROUP_SUFFIX);let R=r;n===ye&&(R="dashboard_domain"),w&&(R="blocklet_domain");const[E,P]=h.useState(s),p={root:Mi,domain:lr,rule:Bi}[r],v={paddingBottom:8,paddingLeft:8};if(r==="domain"){let Y=function({domain:z,primaryDomain:N,rules:q}){let oe=rt(z);return N===ye?oe=`${oe}/${y.routing.adminPath.replace(/^\/+/,"")}`:q&&q.length&&q[0].pathPrefix&&(oe=`${oe}/${q[0].pathPrefix.replace(/^\/+/,"")}`),z!==ye?e.jsx(wo,{href:oe,target:"_blank",rel:"noreferrer",onClick:we=>we.stopPropagation(),children:z}):z};if(d&&!w)return null;if(w){const z=n.replace(A.BLOCKLET_SITE_GROUP_SUFFIX,""),N=D.find(q=>q.meta.did===z);if(!N||N.controller)return null;T=N.meta.title||N.meta.name}Y.propTypes={domain:f.string.isRequired,primaryDomain:f.string.isRequired,rules:f.array.isRequired};const he=()=>{P(!0)};let ge=(u||[]).filter(z=>z.value!==n);return ge=ri(ge),[e.jsxs(Rt,{alignItems:"flex-start",button:!0,disableGutters:!0,"data-cy":"rule-domain",children:[!w&&e.jsxs(Ie,{onClick:()=>P(z=>!z),children:[a.length>0&&(E?e.jsx(ii,{}):e.jsx(Ii,{})),e.jsx(p,{style:{fontSize:22}})]}),w&&e.jsx(Ie,{children:e.jsx(p,{style:{fontSize:22}})}),e.jsx(et,{onClick:()=>P(z=>!z),className:`rule-name rule-name--depth${l}`,style:{flex:1},secondary:a.length<=0?e.jsx("span",{className:"site-secondary",children:x("router.empty")}):"",primary:e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"site-header",children:[n===A.DOMAIN_FOR_DEFAULT_SITE&&x("router.defaultSite"),n!==A.DOMAIN_FOR_DEFAULT_SITE&&!w&&e.jsx(Y,{domain:n,primaryDomain:n,rules:a}),w&&T,a.length&&!E?e.jsx("span",{style:{marginLeft:5},children:`(${a.length} URL)`}):null,e.jsx("span",{style:{marginLeft:12}}),r==="domain"&&n!==A.DOMAIN_FOR_DEFAULT_SITE&&n!==ye&&!w&&e.jsxs(e.Fragment,{children:[e.jsx($t,{type:r,name:n},n),e.jsx("span",{style:{marginLeft:12}}),e.jsx(Ut,{siteId:t,domain:n,children:({open:z})=>e.jsx(Z,{size:"small",onClick:N=>z(N),children:x("router.cert.genLetsEncryptCert.title")})})]})]}),ge.map(z=>{const N=typeof z!="string"?z.value:z;return e.jsxs("div",{className:"site-alias",children:[e.jsx(Y,{domain:N,primaryDomain:n,rules:a}),e.jsx("span",{style:{marginLeft:12}}),e.jsx($t,{type:r,name:N},`domain-status-${n}`),e.jsx(Ut,{siteId:t,domain:N,children:({open:q})=>e.jsx(Z,{size:"small",onClick:oe=>q(oe),children:x("router.cert.genLetsEncryptCert.title")})}),!z.isProtected&&e.jsx(kr,{id:b.id,domain:N},"delete-domain-alias"),N!==ye&&N!==window.location.hostname&&e.jsx(Le,{...b,domain:N,type:"domainAlias",onRuleAdded:he},`action-${n}`)]},N)})]})}),e.jsx(ie,{permission:"mutate_router",children:e.jsx(kt,{children:e.jsx(Le,{blocklets:D,...b,onRuleAdded:he,type:R},n)})})]},"parent"),!w&&a.length>0&&e.jsx(oi,{in:E,children:e.jsx(Lt,{component:"div",className:`rule-list rule-list--depth${l}`,disablePadding:!0,children:a.map(z=>e.jsx(lt,{...z,parent:b,depth:l+1},z.id))},"children")},"rules")]}if(r==="root")return[e.jsxs(Rt,{disableGutters:!0,"data-cy":"rule-root",children:[e.jsx(Ie,{children:e.jsx(p,{style:{fontSize:22}})}),e.jsx(et,{primary:n}),e.jsx(ie,{permission:"mutate_router",children:e.jsx(kt,{children:e.jsx(Le,{blocklets:D,...b})})})]},"root"),a.length>0&&e.jsx(Lt,{component:"div",className:`rule-list rule-list--depth${l}`,disablePadding:!0,children:a.map(Y=>e.jsx(lt,{expand:!d,...Y,parent:b,depth:l+1},Y.id))},"children")];let C=`/blocklets/${o.did}/overview`;o.type===A.ROUTING_RULE_TYPES.DAEMON&&(C="/");const F={meta:{did:y.did,name:"Blocklet Server Dashboard",version:y.version},status:"running",port:y.port},$=o.did===y.did?F:D.find(Y=>Y.meta.did===o.did),O=gn.isBlockletRunning($)||o.type===A.ROUTING_RULE_TYPES.DAEMON,_=x(O?"router.healthy.ok":"router.healthy.error"),X=k[c.name]||{};return e.jsxs(Rt,{className:"hover-item",divider:!0,disableGutters:!0,style:v,"data-cy":"rule-item",children:[e.jsx(Ie,{className:"arrow-icon",children:e.jsx(p,{style:{fontSize:22}})}),e.jsx(et,{primary:e.jsxs(L,{component:"div",className:"arrow-name",children:[e.jsx(L,{style:{wordBreak:"break-all"},className:"arrow-name-left",children:n}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),(o.type===A.ROUTING_RULE_TYPES.DAEMON||o.type===A.ROUTING_RULE_TYPES.BLOCKLET)&&e.jsxs(e.Fragment,{children:[c.name!==A.DOMAIN_FOR_DEFAULT_SITE&&O&&e.jsx(W,{className:"arrow-name-middle",children:e.jsx(Kt,{href:rt(c.name,m),target:"_blank",underline:"hover",children:x("common.open")})}),c.name===A.DOMAIN_FOR_DEFAULT_SITE&&e.jsx(L,{component:"span",className:"arrow-name-middle",children:"Blocklet"}),!O&&e.jsx("span",{className:"arrow-name-middle",children:x("common.unavailable")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsxs(ai,{to:C,className:"arrow-name-right",children:[e.jsx(fe,{title:_,children:O?e.jsx(si,{style:{color:"#44cdc6",fontSize:20}}):e.jsx(Ui,{style:{color:"red",fontSize:20}})}),e.jsx("span",{children:$?$.meta.name:i}),$&&e.jsx("span",{style:{marginLeft:8},children:e.jsx(cr,{status:$.status,progress:$.progress})})]})]}),o.type===A.ROUTING_RULE_TYPES.REDIRECT&&e.jsx(Dr,{prefix:m,domain:c.name,toUrl:o.url,isHttps:X.isHttps}),o.type===A.ROUTING_RULE_TYPES.NONE&&e.jsx(jo,{})]})}),e.jsx(ie,{permission:"mutate_router",children:e.jsx(kt,{children:e.jsx(Le,{blocklets:D,...b,did:o.did})})})]},n)}lt.propTypes={type:f.string.isRequired,to:f.object,name:f.string.isRequired,title:f.string,id:f.string,items:f.array,parent:f.object,depth:f.number,expand:f.bool,isProtected:f.bool,pathPrefix:f.string,domainAliases:f.array};const Rt=tr(li)`
121
+ `,xr=g.createContext({}),{Provider:ho,Consumer:fs}=xr;function yr({children:t,domains:r}){const{api:n}=Q(),i=JSON.stringify(r),[a,l]=g.useState({}),o=g.useMemo(()=>r.map(h=>h.filter(S=>S&&Gt(S))).filter(h=>h.length>0),[i]);_t(E.EVENTS.DOMAIN_STATUS,h=>{h&&l(S=>({...S,[h.domain]:{...S[h.domain],...h}}))});const s=g.useMemo(()=>o.flat(),[o]),{domainsAccessibility:d,recommendedDomain:m}=ki(s),c=g.useMemo(()=>{const h={...a};return Object.keys(d).forEach(S=>{const b=h[S]||{};h[S]={...b,...d[S]}}),h},[a,d]),u=async()=>{await Promise.all(o.map(h=>n.checkDomains({input:{domains:h}})))},j=h=>{h&&n.checkDomains({input:{domains:[h]}})};g.useEffect(()=>{u()},[i]);const v={refresh:u,updateStatus:j,api:n,status:c,recommendedDomain:m,recommendedDomainStatus:c[m]};return e.jsx(ho,{value:v,children:t})}yr.propTypes={children:f.any.isRequired,domains:f.array.isRequired};function gt(){const{status:t,recommendedDomainStatus:r,recommendedDomain:n,updateStatus:i}=g.useContext(xr);return{status:t,recommendedDomainStatus:r,recommendedDomain:n,updateStatus:i}}const xo=t=>(ne(t,"meta.interfaces")||[]).find(n=>n.type===ft.BLOCKLET_INTERFACE_TYPE_WEB);function ht({params:t={},blocklets:r=[],setParams:n=()=>{},setError:i=()=>{},serviceTypes:a=[{name:"Blocklet",value:E.ROUTING_RULE_TYPES.BLOCKLET},{name:"Redirect",value:E.ROUTING_RULE_TYPES.REDIRECT},{name:"Default - User will see the 404 page",value:E.ROUTING_RULE_TYPES.NONE}]}){const{t:l}=M(),o={301:l("common.redirectPermanently"),302:l("common.redirectTemporary"),307:l("common.redirectTemporary"),308:l("common.redirectPermanently")},s=Vn(r,c=>c.meta.name),d=(c,u)=>{if(!u)return{};let{port:j}=c;u&&c.ports&&u.port&&(c.ports[u.port]&&(j=c.ports[u.port]),c.ports[u.port.internal]&&(j=c.ports[u.port.internal]));let{pathPrefix:v}=t;return u&&u.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&(v=u.prefix),{port:j,pathPrefix:v}},m=c=>{const u=s.find(v=>v.meta.did===c),j=xo(u);return{...d(u,j),interfaceName:j?j.name:""}};return g.useEffect(()=>{!t.interfaceName&&t.type===E.ROUTING_RULE_TYPES.BLOCKLET&&n({...t,...m(t.did),__disableConfirm:!1})},[]),e.jsxs(e.Fragment,{children:[e.jsx(H,{select:!0,label:l("router.domain.add.type"),autoComplete:"off",variant:"outlined",name:"type","data-cy":"domain-add-type",fullWidth:!0,value:t.type,onChange:c=>{i(""),n({...t,type:c.target.value,__disableConfirm:!1})},style:{marginBottom:32},slotProps:{select:{}},children:a.map(({name:c,value:u})=>e.jsx(V,{value:u,children:c},u))}),t.type===E.ROUTING_RULE_TYPES.BLOCKLET&&e.jsxs(H,{select:!0,label:l("router.domain.add.blocklet"),autoComplete:"off",variant:"outlined",name:"did","data-cy":"domain-blocklet-select",fullWidth:!0,value:t.did,onChange:c=>{n({...t,...m(c.target.value),did:c.target.value,__disableConfirm:!1})},style:{marginBottom:32},children:[s.map(c=>e.jsxs(V,{value:c.meta.did,children:[`${c.meta.name} v${c.meta.version}`,e.jsx("span",{style:{marginLeft:8},children:e.jsx(cr,{status:c.status,progress:c.progress})})]},c.meta.did)),r.length===0&&e.jsx(V,{value:"",children:l("common.empty")},"empty")]}),t.type===E.ROUTING_RULE_TYPES.REDIRECT&&[e.jsx(H,{select:!0,label:l("router.domain.add.redirect"),autoComplete:"off",variant:"outlined",name:"type",fullWidth:!0,value:t.redirectCode,onChange:c=>n({...t,redirectCode:c.target.value}),style:{marginBottom:32},slotProps:{select:{}},children:Object.keys(o).map(c=>e.jsx(V,{value:c,children:`${o[c]} - ${c}`},c))}),e.jsx(H,{label:l("common.redirectUrl"),autoComplete:"off",variant:"outlined",name:"url",fullWidth:!0,autoFocus:!0,value:t.url,helperText:l("router.urlHelperText"),style:{marginBottom:32},onChange:c=>{n({...t,url:c.target.value,__disableConfirm:!c.target.value.trim()}),c.target.value.trim()?i(""):i(l("router.validation.redirectUrlRequired"))},slotProps:{htmlInput:{"data-cy":"redirect-url-input"}}})]]})}ht.propTypes={params:f.object,blocklets:f.array,serviceTypes:f.array,setParams:f.func,setError:f.func};const br=(t,r)=>{if(t.type===E.ROUTING_RULE_TYPES.REDIRECT){if(!t.url)return new Error(`${r("router.validation.redirectUrlRequired")}`);if(!t.redirectCode)return new Error(`redirect ${r("router.validation.redirectCodeRequired")}`)}else if(t.type===E.ROUTING_RULE_TYPES.BLOCKLET&&!t.did)return new Error(r("router.validation.didRequired"));return null},Ne=(t,r)=>t?t.endsWith(E.DEFAULT_IP_DOMAIN_SUFFIX)?r("router.domain.validate.suffixTip",{suffix:E.DEFAULT_IP_DOMAIN_SUFFIX}):null:r("router.domain.validate.emptyTip"),yo=(t,r)=>{const n=br(t,r);if(n)return n;const i=Ne(t.domain,r);return i?new Error(i):null},st=(t,r)=>{const n=br(t,r);return n||(t.pathPrefix.length?t.pathPrefix.length>150?new Error(r("router.validation.pathPrefixTooLong",{length:150})):null:new Error(r("router.validation.pathPrefixCannotBeEmpty")))},vr=({params:t,blocklets:r,blocklet:n,locale:i="en"})=>{if(n){let o=(n.children||[]).find(s=>_i(s.mountPoint,t.pathPrefix));if(n.meta.group!=="gateway"&&t.pathPrefix==="/"&&(o="/"),o)return{zh:`挂载点 ${t.pathPrefix} 已存在,请使用其他挂载点`,en:`The mount point ${t.pathPrefix} already exist, please use another mount point`}[i]}const a=r.find(o=>o.meta.did===t.did);if(!a)return"";const l=a.meta.interfaces.find(o=>o.type==="web");return l&&l.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&t.pathPrefix!==l.prefix?{zh:`该 blocklet 只能挂载在 ${l.prefix}`,en:`This blocklet can only be mounted on ${l.prefix}`}[i]:""},Zt=t=>{if(t.length===0)return"";const{searchParams:r}=new URL(window.location.href),n=r.get("fromDid");if(n){const i=t.find(a=>a.meta.did===n);if(i)return i.meta.did}return t[0].meta.did};function Jt({blocklets:t=[],onActivate:r=()=>{},children:n=null}){const{t:i}=M(),{actions:a}=de(),{info:l}=Q(),[o,s]=g.useState(!1),[d,m]=g.useState(null),c=()=>{s(!1),m(null)},u=async h=>{s(!0);const S={from:{pathPrefix:"/"},to:{type:h.type}},b={domain:h.domain.trim()===l.ip?"":h.domain.trim()};if(h.type===E.ROUTING_RULE_TYPES.BLOCKLET){const k=t.find(C=>C.meta.did===h.did),D=ne(k,"meta.interfaces",[]).find(C=>C.name===h.interfaceName);D&&D.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&(S.from.pathPrefix=D.prefix),S.to.port=h.port,S.to.did=h.did,S.to.interfaceName=h.interfaceName,b.rules=[S]}else h.type===E.ROUTING_RULE_TYPES.REDIRECT&&(S.to.url=h.url,S.to.redirectCode=h.redirectCode,b.rules=[S]);await a.addSite(b),s(!1),m(null)},j={title:i("router.domain.addSite"),description:(h,S,b)=>{const k=D=>{const C=D.__disableConfirm||!!yo(D,i);S({...D,__disableConfirm:C})};return e.jsxs(L,{component:"div",children:[e.jsx(H,{label:i("router.domain.add.description"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:h.domain,style:{marginTop:16,marginBottom:32},onChange:D=>{const C=D.target.value.trim(),T=Ne(C,i);k({...h,domain:D.target.value,__disableConfirm:!!T}),b(T||"")},slotProps:{htmlInput:{"data-cy":"domain-name-input"}}}),e.jsx(ht,{blocklets:t,params:h,setParams:k,setError:b})]})},confirm:i("router.domain.add.confirm"),cancel:i("router.domain.add.cancel"),params:{domain:"",did:Zt(t),port:"",interfaceName:"",type:E.ROUTING_RULE_TYPES.BLOCKLET,redirectCode:302,__disableConfirm:!0},onConfirm:u,onCancel:c},v=h=>{h.stopPropagation(),m(j)||r()};return g.useEffect(()=>{const{searchParams:h}=new URL(window.location.href);h.get("fromDid")&&m(j)},[]),e.jsxs(e.Fragment,{children:[typeof n=="function"?n({loading:o,open:v}):e.jsxs(V,{onClick:v,className:"rule-action","data-cy":"action-add-domain",children:[o?e.jsx(K,{size:16}):e.jsx(lr,{style:{fontSize:18,marginRight:5}}),i("router.domain.add.title")]}),d&&e.jsx(le,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}Jt.propTypes={blocklets:f.array,children:f.any,onActivate:f.func};function Rn(t){const{t:r}=M(),{actions:n}=de(),[i,a]=g.useState(!1),[l,o]=g.useState(null),{id:s,name:d}=t;if(Xt(d))return null;const m=()=>{a(!1),o(null)},c=async()=>{a(!0),await n.deleteSite(s),a(!1),o(null)},u={title:r("router.domain.delete.title"),description:r("router.domain.delete.description",{name:`<b>${d}</b>`}),confirmPlaceholder:r("router.domain.delete.confirm_desc",{name:d}),confirm:r("common.delConfirm"),cancel:r("common.cancel"),onConfirm:c,onCancel:m,keyName:d},j=v=>{v.stopPropagation(),o(u)||t.onActivate()};return e.jsxs(e.Fragment,{children:[e.jsxs(V,{onClick:j,className:"rule-action","data-cy":"action-delete-domain",children:[i?e.jsx(K,{size:16}):e.jsx(ve,{style:{fontSize:18,marginRight:5}}),r("router.domain.delete.title")]}),l&&e.jsx(pt,{keyName:l.keyName,title:l.title,description:l.description,confirmPlaceholder:l.confirmPlaceholder,confirm:l.confirm,cancel:l.cancel,params:l.params,onConfirm:l.onConfirm,onCancel:l.onCancel})]})}function Nt({id:t,blocklets:r=[],onActivate:n=()=>{},onRuleAdded:i=()=>{},children:a=null,teamDid:l=""}){const{t:o}=M(),{actions:s}=de(),[d,m]=g.useState(!1),[c,u]=g.useState(null),j=()=>{m(!1),u(null)},v=async b=>{const k=await st(b,o);if(k)throw k;m(!0);const D={from:{pathPrefix:Jn.urlPathFriendly(b.pathPrefix)},to:{type:b.type}};b.type===E.ROUTING_RULE_TYPES.BLOCKLET?(D.to.port=b.port,D.to.did=b.did,D.to.interfaceName=b.interfaceName):b.type===E.ROUTING_RULE_TYPES.REDIRECT&&(D.to.url=b.url.trim(),D.to.redirectCode=b.redirectCode),await s.addRule(t,D,l),u(null),m(!1),i()},h={title:o("router.rule.add.title"),description:(b,k,D)=>{const C=T=>{if(D(null),st(T,o)){k({...T,__disableConfirm:!0});return}k({...T})};return e.jsxs(L,{component:"div",children:[e.jsx(H,{label:o("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",fullWidth:!0,autoFocus:!0,helperText:b.helperText||o("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:b.pathPrefix,onChange:T=>{let R=!1;const y=vr({params:{...b,pathPrefix:T.target.value},blocklets:r});D(y),b.type===E.ROUTING_RULE_TYPES.BLOCKLET&&y&&(R=!0),b.type===E.ROUTING_RULE_TYPES.REDIRECT&&!b.url&&(R=!0),T.target.value.trim()||(R=!0,D(o("router.validation.pathPrefixRequired"))),R||D("");const P=o("common.slugifyHint",{value:Zn(T.target.value)});k({...b,pathPrefix:T.target.value,helperText:P,__disableConfirm:R})},slotProps:{htmlInput:{"data-cy":"path-prefix-input"}}}),e.jsx(ht,{blocklets:r,params:b,setParams:C,setError:D})]})},confirm:o("router.rule.add.confirm"),cancel:o("common.cancel"),params:{pathPrefix:"",type:E.ROUTING_RULE_TYPES.BLOCKLET,did:Zt(r),port:"",interfaceName:"",redirectCode:302,__disableConfirm:!0},onConfirm:v,onCancel:j},S=b=>{b.stopPropagation(),u(h)||n()};return e.jsxs(e.Fragment,{children:[typeof a=="function"?a({loading:d,open:S}):e.jsxs(V,{onClick:S,className:"rule-action","data-cy":"action-add-rule",children:[d?e.jsx(K,{size:16}):e.jsx(ar,{style:{fontSize:18,marginRight:5}}),o("router.rule.add.title")]}),c&&e.jsx(le,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}Nt.propTypes={id:f.string.isRequired,blocklets:f.array,children:f.any,onActivate:f.func,onRuleAdded:f.func,teamDid:f.string};function jr({id:t,name:r,parent:{id:n},children:i=null,onActivate:a=()=>{},teamDid:l=""}){const{t:o}=M(),{actions:s}=de(),[d,m]=g.useState(!1),[c,u]=g.useState(null),j=()=>{m(!1),u(null)},v=async()=>{m(!0),await s.deleteRule(n,t,l),m(!1),u(null)},h={keyName:r,title:o("router.rule.delete.title"),description:o("router.rule.delete.description",{name:`<b>${r}</b>`}),confirmPlaceholder:o("router.rule.delete.confirm_desc",{name:r}),confirm:o("common.delConfirm"),cancel:o("router.rule.delete.cancel"),onConfirm:v,onCancel:j},S=b=>{b.stopPropagation(),u(h)||a()};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:d,open:S}):e.jsxs(V,{onClick:S,className:"rule-action","data-cy":"action-delete-rule",children:[d?e.jsx(K,{size:16}):e.jsx(ve,{style:{fontSize:18,marginRight:5}}),o("router.rule.delete.title")]}),c&&e.jsx(pt,{keyName:c.keyName,title:c.title,description:c.description,confirmPlaceholder:c.confirmPlaceholder,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel})]})}jr.propTypes={id:f.string.isRequired,name:f.string.isRequired,parent:f.object.isRequired,children:f.any,onActivate:f.func,teamDid:f.string};function wr({id:t,name:r,did:n="",parent:i,blocklets:a=[],to:l,children:o=null,onActivate:s=()=>{},teamDid:d=""}){const{t:m}=M(),{actions:c}=de(),[u,j]=g.useState(!1),[v,h]=g.useState(null),S=()=>{j(!1),h(null)},b=async C=>{const T=await st(C,m);if(T)throw T;j(!0);const R={id:t,from:{pathPrefix:Jn.urlPathFriendly(C.pathPrefix)},to:{type:C.type}};C.type===E.ROUTING_RULE_TYPES.BLOCKLET?(R.to.port=C.port,R.to.did=C.did,R.to.interfaceName=C.interfaceName):C.type===E.ROUTING_RULE_TYPES.REDIRECT&&(R.to.url=C.url,R.to.redirectCode=C.redirectCode),await c.updateRule(i.id,R,d),h(null),j(!1)},k={title:m("router.rule.update.title"),description:(C,T,R)=>{const y=P=>{if(st(P,m)){T({...P,__disableConfirm:!0});return}T({...P})};return e.jsxs(L,{component:"div",children:[e.jsx(H,{label:m("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",fullWidth:!0,autoFocus:!0,helperText:C.helperText||m("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:C.pathPrefix,onChange:P=>{let x=!1;const p=vr({params:{...C,pathPrefix:P.target.value},blocklets:a});C.type===E.ROUTING_RULE_TYPES.BLOCKLET&&p&&(x=!0,R(p)),C.type===E.ROUTING_RULE_TYPES.REDIRECT&&!C.url&&(x=!0),P.target.value.trim()||(x=!0,R(m("router.validation.pathPrefixRequired"))),x||R("");const w=m("common.slugifyHint",{value:Zn(P.target.value)});T({...C,pathPrefix:P.target.value,helperText:w,__disableConfirm:x})},slotProps:{htmlInput:{"data-cy":"path-prefix-input"}}}),e.jsx(ht,{blocklets:a,params:C,setParams:y,setError:R})]})},confirm:m("router.rule.update.confirm"),cancel:m("router.rule.update.cancel"),color:"primary",params:{pathPrefix:r==="/"?r:r.replace(/^\/+/,"").replace(/\/+$/,""),type:l.type||E.ROUTING_RULE_TYPES.BLOCKLET,did:n||Zt(a),port:l.port||"",interfaceName:l.interfaceName||"",redirectCode:l.redirectCode||302,url:l.url||"",__disableConfirm:!1},onConfirm:b,onCancel:S},D=C=>{C.stopPropagation(),h(k)||s()};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:u,open:D}):e.jsxs(V,{onClick:D,className:"rule-action","data-cy":"action-update-rule",children:[u?e.jsx(K,{size:16}):e.jsx(dr,{style:{fontSize:18,marginRight:5}}),m("router.rule.update.title")]}),v&&e.jsx(le,{title:v.title,description:v.description,confirm:v.confirm,color:v.color,cancel:v.cancel,params:v.params,onConfirm:v.onConfirm,onCancel:v.onCancel})]})}wr.propTypes={id:f.string.isRequired,name:f.string.isRequired,did:f.string,parent:f.object.isRequired,blocklets:f.array,to:f.object.isRequired,children:f.any,onActivate:f.func,teamDid:f.string};function tt({id:t,name:r,onActivate:n=()=>{},children:i=null,title:a="",teamDid:l=""}){const{t:o}=M(),{actions:s}=de(),[d,m]=g.useState(!1),[c,u]=g.useState(null);if(E.DOMAIN_FOR_DEFAULT_SITE===r)return null;const j=()=>{m(!1),u(null)},v=async k=>{m(!0),await s.addDomainAlias(t,k.domain.trim(),!!k.force,l),m(!1),u(null)},h=async(k,D,C)=>{try{await D(k)}catch(T){C(pe(T))}finally{m(!1)}},S={title:a||o("router.domainAlias.add.title"),description:(k,D,C)=>e.jsxs(L,{component:"div",children:[e.jsx(H,{label:o("router.domainAlias.add.domainDescription"),autoComplete:"off",variant:"outlined",name:"domain","data-cy":"add-domain",fullWidth:!0,autoFocus:!0,value:k.domain,style:{marginBottom:8},margin:"dense",onChange:T=>{const R=T.target.value.trim(),y=Ne(R,o);D({...k,domain:R,__disableConfirm:!!y}),C(y||"")},onKeyPress:T=>{if(T.key==="Enter"){T.preventDefault();const R=T.target.value.trim(),y=Ne(R,o);y?C(y):h(k,v,C)}},slotProps:{htmlInput:{"data-cy":"domain-name-input"}}}),e.jsx(Fe,{control:e.jsx(er,{checked:k.force,onChange:T=>{D({...k,force:T.target.checked})},name:"checkedB",color:"primary"}),label:o("router.domainAlias.add.forceTip")})]}),confirm:o("common.confirm"),cancel:o("common.cancel"),params:{domain:"",__disableConfirm:!0},onConfirm:v,onCancel:j},b=k=>{k.stopPropagation(),u(S)||n()};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:d,open:b}):e.jsxs(V,{onClick:b,className:"rule-action","data-cy":"action-add-domain-alias",children:[d?e.jsx(K,{size:16}):e.jsx(Fi,{style:{fontSize:18,marginRight:5}}),o("router.domainAlias.add.title")]}),c&&e.jsx(le,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}tt.propTypes={id:f.string.isRequired,name:f.string.isRequired,children:f.any,onActivate:f.func,title:f.string,teamDid:f.string};function nt({id:t,name:r,corsAllowedOrigins:n="",onActivate:i=()=>{},children:a=null,teamDid:l=""}){const{t:o}=M(),{actions:s}=de(),[d,m]=g.useState(!1),[c,u]=g.useState(null);if(Xt(r))return null;let j=r;r.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX)&&(j=`${o("common.the")} Blocklet`);const v=()=>{m(!1),u(null)},h=async k=>{m(!0),await s.updateSite(t,{corsAllowedOrigins:k.corsAllowedOrigins.split(",").map(D=>D.trim())},l),m(!1),u(null)},S={title:o("router.domainSecurity.title"),description:(k,D,C)=>e.jsx(L,{component:"div",children:e.jsx(H,{label:o("router.domainSecurity.cors.title",{name:j}),autoComplete:"off",variant:"outlined",name:"corsAllowedOrigins",fullWidth:!0,autoFocus:!0,value:k.corsAllowedOrigins,style:{marginBottom:32},margin:"dense",helperText:o("router.domainSecurity.cors.description",{name:j}),onChange:T=>{D({...k,corsAllowedOrigins:T.target.value,__disableConfirm:!T.target.value.trim()}),T.target.value.trim()?C(""):C(o("router.domainSecurity.cors.domainInvalid"))}})}),confirm:o("common.confirm"),cancel:o("common.cancel"),params:{corsAllowedOrigins:Array.isArray(n)?n.join(", "):r,__disableConfirm:!0},onConfirm:h,onCancel:v},b=k=>{k.stopPropagation(),u(S)||i()};return e.jsxs(e.Fragment,{children:[typeof a=="function"?a({loading:d,open:b}):e.jsxs(V,{onClick:b,className:"rule-action","data-cy":"action-update-domain",children:[d?e.jsx(K,{size:16}):e.jsx(Oe,{style:{fontSize:18,marginRight:5}}),o("router.domainSecurity.title")]}),c&&e.jsx(le,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}nt.propTypes={id:f.string.isRequired,name:f.string.isRequired,children:f.any,onActivate:f.func,corsAllowedOrigins:f.oneOfType([f.string,f.array]),teamDid:f.string};function bo({id:t,name:r,onActivate:n}){const{t:i}=M(),{actions:a}=de(),[l,o]=g.useState(!1),[s,d]=g.useState(null);if(Xt(r))return null;const m=()=>{o(!1),d(null)},c=async v=>{o(!0),await a.updateSite(t,{domain:v.domain.trim()}),o(!1),d(null)},u={title:i("router.domain.update.title"),description:(v,h,S)=>e.jsx(L,{component:"div",children:e.jsx(H,{label:i("router.domain.update.label"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:v.domain,style:{marginBottom:32},margin:"dense",helperText:i("router.domain.update.description"),onChange:b=>{const k=b.target.value.trim(),D=Ne(k,i);h({...v,domain:b.target.value,__disableConfirm:!!D}),S(D||"")}})}),confirm:i("common.confirm"),cancel:i("common.cancel"),params:{domain:r,__disableConfirm:!0},onConfirm:c,onCancel:m},j=v=>{v.stopPropagation(),d(u)||n()};return e.jsxs(e.Fragment,{children:[e.jsxs(V,{onClick:j,className:"rule-action",children:[l?e.jsx(K,{size:16}):e.jsx(dr,{style:{fontSize:18,marginRight:5}}),i("router.domain.update.title")]}),s&&e.jsx(le,{title:s.title,description:s.description,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel,color:"primary"})]})}function Le({blocklet:t={},onRuleAdded:r=()=>{},type:n,...i}){const[a,l]=g.useState(null),o={type:n,blocklet:t,onRuleAdded:r,...i},s=u=>{u.stopPropagation(),l(u.currentTarget)},d=u=>{u&&u.stopPropagation(),l(null)},m=[];if(n==="root"&&m.push(e.jsx(Jt,{...o,onActivate:d},"add-domain")),n==="domain"&&m.push(e.jsx(bo,{...o,onActivate:d},"update-domain"),e.jsx(Nt,{...o,onActivate:d,onRuleAdded:o.onRuleAdded},"add-rule"),e.jsx(tt,{...o,onActivate:d},"add-domain-alias"),e.jsx(nt,{...o,onActivate:d},"update-domain-security"),e.jsx(Rn,{...o,onActivate:d},"delete-domain")),n==="rule"&&m.push(e.jsx(wr,{...o,onActivate:d},"update-rule"),e.jsx(jr,{...o,onActivate:d},"delete-rule")),n===E.ROUTING_RULE_TYPES.REDIRECT&&m.push(e.jsx(Rn,{...o,onActivate:d},"delete-domain")),n==="dashboard_domain"&&m.push(e.jsx(Nt,{...o,onActivate:d},"add-rule"),e.jsx(nt,{...o,onActivate:d},"update-domain-security"),e.jsx(tt,{...o,onActivate:d},"add-domain-alias")),n==="blocklet_domain"&&m.push(e.jsx(nt,{...o,onActivate:d},"update-domain-security"),e.jsx(tt,{...o,onActivate:d},"add-domain-alias")),m.length===0)return null;const c=u=>{u.stopPropagation()};return e.jsxs("div",{children:[e.jsx(It,{onMouseDown:c,onClick:s,"data-cy":"action-trigger",size:"large",children:e.jsx(Li,{})}),e.jsx(Jr,{keepMounted:!0,onMouseDown:c,open:!!a,onClose:d,anchorEl:a,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:m})]})}Le.propTypes={blocklet:f.object,onRuleAdded:f.func};function Cr({certificate:t={}}){const[r,n]=g.useState(null),i=Q(),{t:a,locale:l}=M(),o=m=>{n(m.currentTarget)},s=()=>{n(null)},d=!!r;return e.jsxs(e.Fragment,{children:[e.jsx(ur,{"aria-owns":d?"mouse-over-popover":void 0,onMouseEnter:o,onMouseLeave:s,style:{color:"#44cdc6",fontSize:20,marginLeft:8,cursor:"pointer"}}),e.jsx(ti,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:d,anchorEl:r,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:s,disableRestoreFocus:!0,children:e.jsx(ni,{children:e.jsxs(Oi,{style:{display:"flex"},children:[e.jsx("div",{children:e.jsx("img",{src:`${i.imgPrefix}/https-certificate-icon.png`,alt:"certificate icon",style:{maxHeight:"100%",maxWidth:"100%"}})}),e.jsxs(L,{component:"div",style:{marginLeft:"16px"},children:[e.jsx(L,{component:"div",style:{fontWeight:"bold"},children:t.domain}),e.jsx(L,{component:"div",children:`${a("common.issuer")}: ${ne(t,"issuer.commonName","")}`}),e.jsx(L,{component:"div",children:`${a("router.cert.issuedOn")}: ${ot(t.validFrom,l)}`}),e.jsx(L,{component:"div",children:`${a("router.cert.expiryOn")}: ${ot(t.validTo,l)}`})]})]})})})]})}Cr.propTypes={certificate:f.object};function $t({name:t,type:r,filters:n=["domain","http"]}){const{t:i}=M(),{status:a}=gt();if(r!=="domain"||!Gt(t))return null;let l=null,o=null;const{isHttps:s,matchedCert:d}=a[t]||{};if(!ei(t)){const{dns:{resolved:c,ip:u}={}}=a[t]||{};c||u==="127.0.0.1"?l=e.jsx(fe,{title:i("router.domain.verify.ok"),children:e.jsx(jn,{color:"success"})}):l=e.jsx(fe,{title:i("router.domain.verify.notResolved"),children:e.jsx(jn,{color:"error"})})}s?o=e.jsx(Cr,{certificate:d}):o=e.jsx(fe,{title:i("router.domain.https.bad"),children:e.jsx(ur,{style:{color:"#D0021B",fontSize:20,marginLeft:8,cursor:"pointer"}})});const m=n.map(c=>c==="domain"?l:c==="http"?o:null);return g.createElement(g.Fragment,null,...m)}$t.propTypes={type:f.string.isRequired,name:f.string.isRequired,filters:f.array};const vo=t=>["waiting","creating","renewaling"].includes(t);function Sr({domain:t,onAdd:r=()=>{},children:n=null,siteId:i}){const{t:a}=M(),[l,o]=g.useState(!1),[s,d]=g.useState(null),{api:m}=Q(),[c,u]=g.useState(!1),{updateStatus:j}=gt(),v=$e(async()=>{const{cert:C}=await m.findCertificateByDomain({input:{domain:t}});return C}),h=C=>{C.domain===t&&u(!1)};if(g.useEffect(()=>{!v.loading&&vo(v.value?.status)&&u(!0)},[v]),_t(E.EVENTS.CERT_ERROR,h),_t(E.EVENTS.CERT_ISSUED,C=>{v.retry(),j(C.domain),h(C)}),v.loading||v.value?.status==="normal")return"";const S=()=>{o(!1),d(null)},b=async()=>{o(!0);try{await m.issueLetsEncryptCert({input:{domain:t,siteId:i}}),r(),u(!0)}catch(C){console.error(C),u(!1)}finally{o(!1),d(null)}},k={title:a("router.cert.genLetsEncryptCert.title"),description:e.jsxs("div",{children:[e.jsx(be,{severity:"success",children:a("router.cert.genLetsEncryptCert.dnsTip")}),a("router.cert.genLetsEncryptCert.description")]}),confirm:a("common.confirm"),onConfirm:b,onCancel:S},D=C=>{C.stopPropagation(),d(k)};return e.jsxs(e.Fragment,{children:[c?e.jsx(fe,{title:a("router.cert.issuing"),children:e.jsx(K,{size:12})}):n({loading:l,open:D}),s&&e.jsx(le,{color:"primary",title:s.title,description:s.description,confirm:s.confirm,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}Sr.propTypes={domain:f.string.isRequired,onAdd:f.func,children:f.any,siteId:f.string.isRequired};function Ut({domain:t,siteId:r,onAdd:n=()=>{},children:i=null}){const{status:a}=gt();return!Gt(t)||a[t]?.isHttps?"":e.jsx(Sr,{domain:t,onAdd:n,siteId:r,children:i})}Ut.propTypes={siteId:f.string.isRequired,domain:f.string.isRequired,onAdd:f.func,children:f.any};function kr({id:t,domain:r,onDelete:n=()=>{},children:i=null,teamDid:a=""}){const{t:l}=M(),[o,s]=g.useState(!1),[d,m]=g.useState(null),{actions:c}=de();if(r===window.location.hostname)return"";const u=()=>{s(!1),m(null)},j=async()=>{s(!0);try{await c.deleteDomainAlias(t,r,a),n()}catch(S){console.error(S)}finally{s(!1),m(null)}},v={keyName:r,title:l("router.domainAlias.delete.title"),description:l("router.domainAlias.delete.description",{domain:r}),confirmPlaceholder:l("router.domainAlias.delete.confirmPlaceholder",{domain:r}),confirm:l("common.delete"),onConfirm:j,onCancel:u},h=S=>{S.stopPropagation(),m(v)};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:o,open:h}):e.jsxs(Z,{edge:"end",onClick:h,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[o?e.jsx(K,{size:16}):e.jsx(ve,{style:{fontSize:16}}),l("common.delete")]}),d&&e.jsx(pt,{keyName:d.keyName,title:d.title,description:d.description,confirmPlaceholder:d.confirmPlaceholder,confirm:d.confirm,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel})]})}kr.propTypes={id:f.string.isRequired,domain:f.string.isRequired,onDelete:f.func,children:f.any,teamDid:f.string};function Dr({domain:t,isHttps:r=!1,toUrl:n}){const i=r?"https":"http",{t:a}=M();let l=n;return nr(l)||(l=`${i}://${t}${n}`),e.jsxs(e.Fragment,{children:[e.jsx(L,{className:"arrow-name-middle",children:a("common.redirect")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsx(Kt,{href:l,target:"_blank",underline:"hover",children:n},l)]})}Dr.propTypes={domain:f.string.isRequired,toUrl:f.string.isRequired,isHttps:f.bool};function jo(){const{t}=M();return e.jsx(L,{className:"arrow-name-middle",children:t("common.page404")})}function lt({id:t="",type:r="",name:n="",title:i="",items:a=[],depth:l=0,to:o={},expand:s=!0,isProtected:d=!1,pathPrefix:m="",parent:c={},domainAliases:u=[],...j}){const v={id:t,type:r,name:n,title:i,items:a,depth:l,to:o,expand:s,isProtected:d,pathPrefix:m,parent:c,domainAliases:u,...j},{t:h}=M(),{data:S}=Ht(),{info:b}=Q(),{status:k}=gt(),D=S.map(Y=>({meta:{did:Y.meta.did,name:gn.getDisplayName(Y,!0),version:Y.meta.version,interfaces:Y.meta.interfaces},port:Y.port,ports:Y.ports,status:Y.status}));let C=n;const T=n.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX);let R=r;n===ye&&(R="dashboard_domain"),T&&(R="blocklet_domain");const[y,P]=g.useState(s),p={root:Mi,domain:lr,rule:Bi}[r],w={paddingBottom:8,paddingLeft:8};if(r==="domain"){let Y=function({domain:z,primaryDomain:O,rules:q}){let oe=rt(z);return O===ye?oe=`${oe}/${b.routing.adminPath.replace(/^\/+/,"")}`:q&&q.length&&q[0].pathPrefix&&(oe=`${oe}/${q[0].pathPrefix.replace(/^\/+/,"")}`),z!==ye?e.jsx(wo,{href:oe,target:"_blank",rel:"noreferrer",onClick:we=>we.stopPropagation(),children:z}):z};if(d&&!T)return null;if(T){const z=n.replace(E.BLOCKLET_SITE_GROUP_SUFFIX,""),O=D.find(q=>q.meta.did===z);if(!O||O.controller)return null;C=O.meta.title||O.meta.name}Y.propTypes={domain:f.string.isRequired,primaryDomain:f.string.isRequired,rules:f.array.isRequired};const he=()=>{P(!0)};let ge=(u||[]).filter(z=>z.value!==n);return ge=ri(ge),[e.jsxs(Tt,{alignItems:"flex-start",button:!0,disableGutters:!0,"data-cy":"rule-domain",children:[!T&&e.jsxs(Ie,{onClick:()=>P(z=>!z),children:[a.length>0&&(y?e.jsx(ii,{}):e.jsx(Ii,{})),e.jsx(p,{style:{fontSize:22}})]}),T&&e.jsx(Ie,{children:e.jsx(p,{style:{fontSize:22}})}),e.jsx(et,{onClick:()=>P(z=>!z),className:`rule-name rule-name--depth${l}`,style:{flex:1},secondary:a.length<=0?e.jsx("span",{className:"site-secondary",children:h("router.empty")}):"",primary:e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"site-header",children:[n===E.DOMAIN_FOR_DEFAULT_SITE&&h("router.defaultSite"),n!==E.DOMAIN_FOR_DEFAULT_SITE&&!T&&e.jsx(Y,{domain:n,primaryDomain:n,rules:a}),T&&C,a.length&&!y?e.jsx("span",{style:{marginLeft:5},children:`(${a.length} URL)`}):null,e.jsx("span",{style:{marginLeft:12}}),r==="domain"&&n!==E.DOMAIN_FOR_DEFAULT_SITE&&n!==ye&&!T&&e.jsxs(e.Fragment,{children:[e.jsx($t,{type:r,name:n},n),e.jsx("span",{style:{marginLeft:12}}),e.jsx(Ut,{siteId:t,domain:n,children:({open:z})=>e.jsx(Z,{size:"small",onClick:O=>z(O),children:h("router.cert.genLetsEncryptCert.title")})})]})]}),ge.map(z=>{const O=typeof z!="string"?z.value:z;return e.jsxs("div",{className:"site-alias",children:[e.jsx(Y,{domain:O,primaryDomain:n,rules:a}),e.jsx("span",{style:{marginLeft:12}}),e.jsx($t,{type:r,name:O},`domain-status-${n}`),e.jsx(Ut,{siteId:t,domain:O,children:({open:q})=>e.jsx(Z,{size:"small",onClick:oe=>q(oe),children:h("router.cert.genLetsEncryptCert.title")})}),!z.isProtected&&e.jsx(kr,{id:v.id,domain:O},"delete-domain-alias"),O!==ye&&O!==window.location.hostname&&e.jsx(Le,{...v,domain:O,type:"domainAlias",onRuleAdded:he},`action-${n}`)]},O)})]})}),e.jsx(ie,{permission:"mutate_router",children:e.jsx(kt,{children:e.jsx(Le,{blocklets:D,...v,onRuleAdded:he,type:R},n)})})]},"parent"),!T&&a.length>0&&e.jsx(oi,{in:y,children:e.jsx(Lt,{component:"div",className:`rule-list rule-list--depth${l}`,disablePadding:!0,children:a.map(z=>e.jsx(lt,{...z,parent:v,depth:l+1},z.id))},"children")},"rules")]}if(r==="root")return[e.jsxs(Tt,{disableGutters:!0,"data-cy":"rule-root",children:[e.jsx(Ie,{children:e.jsx(p,{style:{fontSize:22}})}),e.jsx(et,{primary:n}),e.jsx(ie,{permission:"mutate_router",children:e.jsx(kt,{children:e.jsx(Le,{blocklets:D,...v})})})]},"root"),a.length>0&&e.jsx(Lt,{component:"div",className:`rule-list rule-list--depth${l}`,disablePadding:!0,children:a.map(Y=>e.jsx(lt,{expand:!d,...Y,parent:v,depth:l+1},Y.id))},"children")];let A=`/blocklets/${o.did}/overview`;o.type===E.ROUTING_RULE_TYPES.DAEMON&&(A="/");const N={meta:{did:b.did,name:"Blocklet Server Dashboard",version:b.version},status:"running",port:b.port},$=o.did===b.did?N:D.find(Y=>Y.meta.did===o.did),F=gn.isBlockletRunning($)||o.type===E.ROUTING_RULE_TYPES.DAEMON,_=h(F?"router.healthy.ok":"router.healthy.error"),X=k[c.name]||{};return e.jsxs(Tt,{className:"hover-item",divider:!0,disableGutters:!0,style:w,"data-cy":"rule-item",children:[e.jsx(Ie,{className:"arrow-icon",children:e.jsx(p,{style:{fontSize:22}})}),e.jsx(et,{primary:e.jsxs(L,{component:"div",className:"arrow-name",children:[e.jsx(L,{style:{wordBreak:"break-all"},className:"arrow-name-left",children:n}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),(o.type===E.ROUTING_RULE_TYPES.DAEMON||o.type===E.ROUTING_RULE_TYPES.BLOCKLET)&&e.jsxs(e.Fragment,{children:[c.name!==E.DOMAIN_FOR_DEFAULT_SITE&&F&&e.jsx(W,{className:"arrow-name-middle",children:e.jsx(Kt,{href:rt(c.name,m),target:"_blank",underline:"hover",children:h("common.open")})}),c.name===E.DOMAIN_FOR_DEFAULT_SITE&&e.jsx(L,{component:"span",className:"arrow-name-middle",children:"Blocklet"}),!F&&e.jsx("span",{className:"arrow-name-middle",children:h("common.unavailable")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsxs(ai,{to:A,className:"arrow-name-right",children:[e.jsx(fe,{title:_,children:F?e.jsx(si,{style:{color:"#44cdc6",fontSize:20}}):e.jsx(Ui,{style:{color:"red",fontSize:20}})}),e.jsx("span",{children:$?$.meta.name:i}),$&&e.jsx("span",{style:{marginLeft:8},children:e.jsx(cr,{status:$.status,progress:$.progress})})]})]}),o.type===E.ROUTING_RULE_TYPES.REDIRECT&&e.jsx(Dr,{prefix:m,domain:c.name,toUrl:o.url,isHttps:X.isHttps}),o.type===E.ROUTING_RULE_TYPES.NONE&&e.jsx(jo,{})]})}),e.jsx(ie,{permission:"mutate_router",children:e.jsx(kt,{children:e.jsx(Le,{blocklets:D,...v,did:o.did})})})]},n)}lt.propTypes={type:f.string.isRequired,to:f.object,name:f.string.isRequired,title:f.string,id:f.string,items:f.array,parent:f.object,depth:f.number,expand:f.bool,isProtected:f.bool,pathPrefix:f.string,domainAliases:f.array};const Tt=tr(li)`
122
122
  .MuiListItemText-root {
123
123
  padding-right: 48px;
124
124
  }
@@ -139,7 +139,7 @@ import{aG as je,j as e,u as Q,r as h,e as $e,aH as Wr,aI as A,aJ as ln,aK as Vn,
139
139
  :hover {
140
140
  color: ${({theme:t})=>t.palette.text.primary};
141
141
  }
142
- `;function Co(){const{sites:t,allDomains:r}=de(),{data:n}=Ht(),{t:i}=M(),a=t.map(l=>{const o=l.items.filter(s=>!s.isProtected);return{...l,items:o}});return e.jsx(yr,{domains:r,children:e.jsxs(So,{children:[e.jsx(ie,{permission:"mutate_router",children:e.jsx(W,{sx:{textAlign:"right",mb:1},children:e.jsx(Jt,{blocklets:n,children:({open:l})=>e.jsxs(Z,{style:{marginLeft:16},variant:"contained",color:"primary","data-cy":"add-domain-alias",onClick:l,children:[e.jsx(Fe,{style:{fontSize:"1.3em",marginRight:4}}),i("router.domain.addSite")]})})})}),e.jsx(Lt,{component:"div",disablePadding:!0,children:a.map(l=>h.createElement(lt,{...l,depth:1,key:l.id}))})]})})}const So=re.main`
142
+ `;function Co(){const{sites:t,allDomains:r}=de(),{data:n}=Ht(),{t:i}=M(),a=t.map(l=>{const o=l.items.filter(s=>!s.isProtected);return{...l,items:o}});return e.jsx(yr,{domains:r,children:e.jsxs(So,{children:[e.jsx(ie,{permission:"mutate_router",children:e.jsx(W,{sx:{textAlign:"right",mb:1},children:e.jsx(Jt,{blocklets:n,children:({open:l})=>e.jsxs(Z,{style:{marginLeft:16},variant:"contained",color:"primary","data-cy":"add-domain-alias",onClick:l,children:[e.jsx(Oe,{style:{fontSize:"1.3em",marginRight:4}}),i("router.domain.addSite")]})})})}),e.jsx(Lt,{component:"div",disablePadding:!0,children:a.map(l=>g.createElement(lt,{...l,depth:1,key:l.id}))})]})})}const So=re.main`
143
143
  margin-top: ${t=>t.theme.spacing(2)};
144
144
  min-height: 60vh;
145
145
 
@@ -242,19 +242,19 @@ import{aG as je,j as e,u as Q,r as h,e as $e,aH as Wr,aI as A,aJ as ln,aK as Vn,
242
242
  }
243
243
  }
244
244
  }
245
- `;var ko=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function Me(t,r){var n=Do(t);if(typeof n.path!="string"){var i=t.webkitRelativePath;Object.defineProperty(n,"path",{value:typeof r=="string"?r:typeof i=="string"&&i.length>0?i:t.name,writable:!1,configurable:!1,enumerable:!0})}return n}function Do(t){var r=t.name,n=r&&r.lastIndexOf(".")!==-1;if(n&&!t.type){var i=r.split(".").pop().toLowerCase(),a=ko.get(i);a&&Object.defineProperty(t,"type",{value:a,writable:!1,configurable:!1,enumerable:!0})}return t}var Ro=[".DS_Store","Thumbs.db"];function To(t){return De(this,void 0,void 0,function(){return Re(this,function(r){return ct(t)&&Eo(t)?[2,Io(t.dataTransfer,t.type)]:Po(t)?[2,Ao(t)]:Array.isArray(t)&&t.every(function(n){return"getFile"in n&&typeof n.getFile=="function"})?[2,_o(t)]:[2,[]]})})}function Eo(t){return ct(t.dataTransfer)}function Po(t){return ct(t)&&ct(t.target)}function ct(t){return typeof t=="object"&&t!==null}function Ao(t){return zt(t.target.files).map(function(r){return Me(r)})}function _o(t){return De(this,void 0,void 0,function(){var r;return Re(this,function(n){switch(n.label){case 0:return[4,Promise.all(t.map(function(i){return i.getFile()}))];case 1:return r=n.sent(),[2,r.map(function(i){return Me(i)})]}})})}function Io(t,r){return De(this,void 0,void 0,function(){var n,i;return Re(this,function(a){switch(a.label){case 0:return t===null?[2,[]]:t.items?(n=zt(t.items).filter(function(l){return l.kind==="file"}),r!=="drop"?[2,n]:[4,Promise.all(n.map(Lo))]):[3,2];case 1:return i=a.sent(),[2,En(Rr(i))];case 2:return[2,En(zt(t.files).map(function(l){return Me(l)}))]}})})}function En(t){return t.filter(function(r){return Ro.indexOf(r.name)===-1})}function zt(t){if(t===null)return[];for(var r=[],n=0;n<t.length;n++){var i=t[n];r.push(i)}return r}function Lo(t){if(typeof t.webkitGetAsEntry!="function")return Pn(t);var r=t.webkitGetAsEntry();return r&&r.isDirectory?Tr(r):Pn(t)}function Rr(t){return t.reduce(function(r,n){return ci(r,Array.isArray(n)?Rr(n):[n])},[])}function Pn(t){var r=t.getAsFile();if(!r)return Promise.reject(t+" is not a File");var n=Me(r);return Promise.resolve(n)}function Oo(t){return De(this,void 0,void 0,function(){return Re(this,function(r){return[2,t.isDirectory?Tr(t):Fo(t)]})})}function Tr(t){var r=t.createReader();return new Promise(function(n,i){var a=[];function l(){var o=this;r.readEntries(function(s){return De(o,void 0,void 0,function(){var d,m,c;return Re(this,function(u){switch(u.label){case 0:if(s.length)return[3,5];u.label=1;case 1:return u.trys.push([1,3,,4]),[4,Promise.all(a)];case 2:return d=u.sent(),n(d),[3,4];case 3:return m=u.sent(),i(m),[3,4];case 4:return[3,6];case 5:c=Promise.all(s.map(Oo)),a.push(c),l(),u.label=6;case 6:return[2]}})})},function(s){i(s)})}l()})}function Fo(t){return De(this,void 0,void 0,function(){return Re(this,function(r){return[2,new Promise(function(n,i){t.file(function(a){var l=Me(a,t.fullPath);n(l)},function(a){i(a)})})]})})}var Ye={},An;function No(){return An||(An=1,Ye.__esModule=!0,Ye.default=function(t,r){if(t&&r){var n=Array.isArray(r)?r:r.split(","),i=t.name||"",a=(t.type||"").toLowerCase(),l=a.replace(/\/.*$/,"");return n.some(function(o){var s=o.trim().toLowerCase();return s.charAt(0)==="."?i.toLowerCase().endsWith(s):s.endsWith("/*")?l===s.replace(/\/.*$/,""):a===s})}return!0}),Ye}var $o=No();const Uo=Yt($o);function _n(t,r){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,i)}return n}function In(t){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};r%2?_n(Object(n),!0).forEach(function(i){Er(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function Er(t,r,n){return r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}function Ln(t,r){return Wo(t)||Bo(t,r)||Mo(t,r)||zo()}function zo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
246
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Mo(t,r){if(t){if(typeof t=="string")return On(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return On(t,r)}}function On(t,r){(r==null||r>t.length)&&(r=t.length);for(var n=0,i=new Array(r);n<r;n++)i[n]=t[n];return i}function Bo(t,r){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var i=[],a=!0,l=!1,o,s;try{for(n=n.call(t);!(a=(o=n.next()).done)&&(i.push(o.value),!(r&&i.length===r));a=!0);}catch(d){l=!0,s=d}finally{try{!a&&n.return!=null&&n.return()}finally{if(l)throw s}}return i}}function Wo(t){if(Array.isArray(t))return t}var qo="file-invalid-type",Ho="file-too-large",Go="file-too-small",Ko="too-many-files",Yo=function(r){r=Array.isArray(r)&&r.length===1?r[0]:r;var n=Array.isArray(r)?"one of ".concat(r.join(", ")):r;return{code:qo,message:"File type must be ".concat(n)}},Fn=function(r){return{code:Ho,message:"File is larger than ".concat(r," ").concat(r===1?"byte":"bytes")}},Nn=function(r){return{code:Go,message:"File is smaller than ".concat(r," ").concat(r===1?"byte":"bytes")}},Vo={code:Ko,message:"Too many files"};function Pr(t,r){var n=t.type==="application/x-moz-file"||Uo(t,r);return[n,n?null:Yo(r)]}function Ar(t,r,n){if(Ee(t.size))if(Ee(r)&&Ee(n)){if(t.size>n)return[!1,Fn(n)];if(t.size<r)return[!1,Nn(r)]}else{if(Ee(r)&&t.size<r)return[!1,Nn(r)];if(Ee(n)&&t.size>n)return[!1,Fn(n)]}return[!0,null]}function Ee(t){return t!=null}function Xo(t){var r=t.files,n=t.accept,i=t.minSize,a=t.maxSize,l=t.multiple,o=t.maxFiles;return!l&&r.length>1||l&&o>=1&&r.length>o?!1:r.every(function(s){var d=Pr(s,n),m=Ln(d,1),c=m[0],u=Ar(s,i,a),j=Ln(u,1),b=j[0];return c&&b})}function dt(t){return typeof t.isPropagationStopped=="function"?t.isPropagationStopped():typeof t.cancelBubble<"u"?t.cancelBubble:!1}function Ve(t){return t.dataTransfer?Array.prototype.some.call(t.dataTransfer.types,function(r){return r==="Files"||r==="application/x-moz-file"}):!!t.target&&!!t.target.files}function $n(t){t.preventDefault()}function Qo(t){return t.indexOf("MSIE")!==-1||t.indexOf("Trident/")!==-1}function Zo(t){return t.indexOf("Edge/")!==-1}function Jo(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return Qo(t)||Zo(t)}function ue(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return function(i){for(var a=arguments.length,l=new Array(a>1?a-1:0),o=1;o<a;o++)l[o-1]=arguments[o];return r.some(function(s){return!dt(i)&&s&&s.apply(void 0,[i].concat(l)),dt(i)})}}function Un(){return"showOpenFilePicker"in window}function ea(t){return t=typeof t=="string"?t.split(","):t,[{description:"everything",accept:Array.isArray(t)?t.filter(function(r){return r==="audio/*"||r==="video/*"||r==="image/*"||r==="text/*"||/\w+\/[-+.\w]+/g.test(r)}).reduce(function(r,n){return In(In({},r),{},Er({},n,[]))},{}):{}}]}var ta=["children"],na=["open"],ra=["refKey","role","onKeyDown","onFocus","onBlur","onClick","onDragEnter","onDragOver","onDragLeave","onDrop"],ia=["refKey","onChange","onClick"];function oa(t){return la(t)||sa(t)||_r(t)||aa()}function aa(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
247
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sa(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function la(t){if(Array.isArray(t))return Mt(t)}function Tt(t,r){return ua(t)||da(t,r)||_r(t,r)||ca()}function ca(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
248
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _r(t,r){if(t){if(typeof t=="string")return Mt(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mt(t,r)}}function Mt(t,r){(r==null||r>t.length)&&(r=t.length);for(var n=0,i=new Array(r);n<r;n++)i[n]=t[n];return i}function da(t,r){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var i=[],a=!0,l=!1,o,s;try{for(n=n.call(t);!(a=(o=n.next()).done)&&(i.push(o.value),!(r&&i.length===r));a=!0);}catch(d){l=!0,s=d}finally{try{!a&&n.return!=null&&n.return()}finally{if(l)throw s}}return i}}function ua(t){if(Array.isArray(t))return t}function zn(t,r){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,i)}return n}function G(t){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};r%2?zn(Object(n),!0).forEach(function(i){Bt(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):zn(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function Bt(t,r,n){return r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}function ut(t,r){if(t==null)return{};var n=ma(t,r),i,a;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(a=0;a<l.length;a++)i=l[a],!(r.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}function ma(t,r){if(t==null)return{};var n={},i=Object.keys(t),a,l;for(l=0;l<i.length;l++)a=i[l],!(r.indexOf(a)>=0)&&(n[a]=t[a]);return n}var en=h.forwardRef(function(t,r){var n=t.children,i=ut(t,ta),a=qt(i),l=a.open,o=ut(a,na);return h.useImperativeHandle(r,function(){return{open:l}},[l]),di.createElement(h.Fragment,null,n(G(G({},o),{},{open:l})))});en.displayName="Dropzone";var Ir={disabled:!1,getFilesFromEvent:To,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};en.defaultProps=Ir;en.propTypes={children:f.func,accept:f.oneOfType([f.string,f.arrayOf(f.string)]),multiple:f.bool,preventDropOnDocument:f.bool,noClick:f.bool,noKeyboard:f.bool,noDrag:f.bool,noDragEventsBubbling:f.bool,minSize:f.number,maxSize:f.number,maxFiles:f.number,disabled:f.bool,getFilesFromEvent:f.func,onFileDialogCancel:f.func,onFileDialogOpen:f.func,useFsAccessApi:f.bool,onDragEnter:f.func,onDragLeave:f.func,onDragOver:f.func,onDrop:f.func,onDropAccepted:f.func,onDropRejected:f.func,validator:f.func};var Wt={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function qt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=G(G({},Ir),t),n=r.accept,i=r.disabled,a=r.getFilesFromEvent,l=r.maxSize,o=r.minSize,s=r.multiple,d=r.maxFiles,m=r.onDragEnter,c=r.onDragLeave,u=r.onDragOver,j=r.onDrop,b=r.onDropAccepted,x=r.onDropRejected,S=r.onFileDialogCancel,y=r.onFileDialogOpen,k=r.useFsAccessApi,D=r.preventDropOnDocument,T=r.noClick,w=r.noKeyboard,R=r.noDrag,E=r.noDragEventsBubbling,P=r.validator,g=h.useMemo(function(){return typeof y=="function"?y:Mn},[y]),p=h.useMemo(function(){return typeof S=="function"?S:Mn},[S]),v=h.useRef(null),C=h.useRef(null),F=h.useReducer(fa,Wt),$=Tt(F,2),O=$[0],_=$[1],X=O.isFocused,Y=O.isFileDialogActive,he=O.draggedFiles,ge=function(){Y&&setTimeout(function(){if(C.current){var U=C.current.files;U.length||(_({type:"closeDialog"}),p())}},300)};h.useEffect(function(){return k&&Un()?function(){}:(window.addEventListener("focus",ge,!1),function(){window.removeEventListener("focus",ge,!1)})},[C,Y,p,k]);var z=h.useRef([]),N=function(U){v.current&&v.current.contains(U.target)||(U.preventDefault(),z.current=[])};h.useEffect(function(){return D&&(document.addEventListener("dragover",$n,!1),document.addEventListener("drop",N,!1)),function(){D&&(document.removeEventListener("dragover",$n),document.removeEventListener("drop",N))}},[v,D]);var q=h.useCallback(function(I){I.preventDefault(),I.persist(),He(I),z.current=[].concat(oa(z.current),[I.target]),Ve(I)&&Promise.resolve(a(I)).then(function(U){dt(I)&&!E||(_({draggedFiles:U,isDragActive:!0,type:"setDraggedFiles"}),m&&m(I))})},[a,m,E]),oe=h.useCallback(function(I){I.preventDefault(),I.persist(),He(I);var U=Ve(I);if(U&&I.dataTransfer)try{I.dataTransfer.dropEffect="copy"}catch{}return U&&u&&u(I),!1},[u,E]),we=h.useCallback(function(I){I.preventDefault(),I.persist(),He(I);var U=z.current.filter(function(ae){return v.current&&v.current.contains(ae)}),J=U.indexOf(I.target);J!==-1&&U.splice(J,1),z.current=U,!(U.length>0)&&(_({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),Ve(I)&&c&&c(I))},[v,c,E]),Be=h.useCallback(function(I,U){var J=[],ae=[];I.forEach(function(ce){var Te=Pr(ce,n),ke=Tt(Te,2),yt=ke[0],bt=ke[1],vt=Ar(ce,o,l),Ge=Tt(vt,2),jt=Ge[0],wt=Ge[1],Ct=P?P(ce):null;if(yt&&jt&&!Ct)J.push(ce);else{var St=[bt,wt];Ct&&(St=St.concat(Ct)),ae.push({file:ce,errors:St.filter(function(Br){return Br})})}}),(!s&&J.length>1||s&&d>=1&&J.length>d)&&(J.forEach(function(ce){ae.push({file:ce,errors:[Vo]})}),J.splice(0)),_({acceptedFiles:J,fileRejections:ae,type:"setFiles"}),j&&j(J,ae,U),ae.length>0&&x&&x(ae,U),J.length>0&&b&&b(J,U)},[_,s,n,o,l,d,j,b,x,P]),We=h.useCallback(function(I){I.preventDefault(),I.persist(),He(I),z.current=[],Ve(I)&&Promise.resolve(a(I)).then(function(U){dt(I)&&!E||Be(U,I)}),_({type:"reset"})},[a,Be,E]),Ce=h.useCallback(function(){if(k&&Un()){_({type:"openDialog"}),g();var I={multiple:s,types:ea(n)};window.showOpenFilePicker(I).then(function(U){return a(U)}).then(function(U){return Be(U,null)}).catch(function(U){return p(U)}).finally(function(){return _({type:"closeDialog"})});return}C.current&&(_({type:"openDialog"}),g(),C.current.value=null,C.current.click())},[_,g,p,k,Be,n,s]),tn=h.useCallback(function(I){!v.current||!v.current.isEqualNode(I.target)||(I.keyCode===32||I.keyCode===13)&&(I.preventDefault(),Ce())},[v,C,Ce]),nn=h.useCallback(function(){_({type:"focus"})},[]),rn=h.useCallback(function(){_({type:"blur"})},[]),on=h.useCallback(function(){T||(Jo()?setTimeout(Ce,0):Ce())},[C,T,Ce]),Se=function(U){return i?null:U},xt=function(U){return w?null:Se(U)},qe=function(U){return R?null:Se(U)},He=function(U){E&&U.stopPropagation()},$r=h.useMemo(function(){return function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},U=I.refKey,J=U===void 0?"ref":U,ae=I.role,ce=I.onKeyDown,Te=I.onFocus,ke=I.onBlur,yt=I.onClick,bt=I.onDragEnter,vt=I.onDragOver,Ge=I.onDragLeave,jt=I.onDrop,wt=ut(I,ra);return G(G(Bt({onKeyDown:xt(ue(ce,tn)),onFocus:xt(ue(Te,nn)),onBlur:xt(ue(ke,rn)),onClick:Se(ue(yt,on)),onDragEnter:qe(ue(bt,q)),onDragOver:qe(ue(vt,oe)),onDragLeave:qe(ue(Ge,we)),onDrop:qe(ue(jt,We)),role:typeof ae=="string"&&ae!==""?ae:"button"},J,v),!i&&!w?{tabIndex:0}:{}),wt)}},[v,tn,nn,rn,on,q,oe,we,We,w,R,i]),Ur=h.useCallback(function(I){I.stopPropagation()},[]),zr=h.useMemo(function(){return function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},U=I.refKey,J=U===void 0?"ref":U,ae=I.onChange,ce=I.onClick,Te=ut(I,ia),ke=Bt({accept:n,multiple:s,type:"file",style:{display:"none"},onChange:Se(ue(ae,We)),onClick:Se(ue(ce,Ur)),autoComplete:"off",tabIndex:-1},J,C);return G(G({},ke),Te)}},[C,n,s,We,i]),an=he.length,sn=an>0&&Xo({files:he,accept:n,minSize:o,maxSize:l,multiple:s,maxFiles:d}),Mr=an>0&&!sn;return G(G({},O),{},{isDragAccept:sn,isDragReject:Mr,isFocused:X&&!i,getRootProps:$r,getInputProps:zr,rootRef:v,inputRef:C,open:Se(Ce)})}function fa(t,r){switch(r.type){case"focus":return G(G({},t),{},{isFocused:!0});case"blur":return G(G({},t),{},{isFocused:!1});case"openDialog":return G(G({},Wt),{},{isFileDialogActive:!0});case"closeDialog":return G(G({},t),{},{isFileDialogActive:!1});case"setDraggedFiles":var n=r.isDragActive,i=r.draggedFiles;return G(G({},t),{},{draggedFiles:i,isDragActive:n});case"setFiles":return G(G({},t),{},{acceptedFiles:r.acceptedFiles,fileRejections:r.fileRejections});case"reset":return G({},Wt);default:return t}}function Mn(){}const Bn=50*1024,Xe=t=>t.split(`
249
- `).join("|"),Qe=t=>new Promise((r,n)=>{const i=new FileReader;i.readAsText(t),i.onload=()=>{r(i.result)},i.onerror=a=>n(a)});function Wn({certificate:t={},onRefresh:r,mode:n,...i}){const{t:a}=M(),{api:l}=Q(),[o,s]=h.useState(!1),[d,m]=h.useState(),[c,u]=h.useState(),[j,b]=h.useState(!1),[x,S]=h.useState(""),[y,k]=h.useState("upload"),{handleSubmit:D,formState:T,control:w}=Vt({defaultValues:{name:t.name||t.domain}}),R=vn({control:w,name:"name"}),E=vn({control:w,name:"domain"}),P=()=>o?!0:y==="upload"&&n==="update"?!!(!R||d&&!c||c&&!d):y==="upload"&&n==="add"?!R||!d||!c:y==="lets_encrypt"&&!E,g=()=>{s(!1),b(!1)},p=async N=>{if(n==="add"){const q=(await Qe(c)).replace(/\r\n/g,`
245
+ `;var ko=new Map([["aac","audio/aac"],["abw","application/x-abiword"],["arc","application/x-freearc"],["avif","image/avif"],["avi","video/x-msvideo"],["azw","application/vnd.amazon.ebook"],["bin","application/octet-stream"],["bmp","image/bmp"],["bz","application/x-bzip"],["bz2","application/x-bzip2"],["cda","application/x-cdf"],["csh","application/x-csh"],["css","text/css"],["csv","text/csv"],["doc","application/msword"],["docx","application/vnd.openxmlformats-officedocument.wordprocessingml.document"],["eot","application/vnd.ms-fontobject"],["epub","application/epub+zip"],["gz","application/gzip"],["gif","image/gif"],["htm","text/html"],["html","text/html"],["ico","image/vnd.microsoft.icon"],["ics","text/calendar"],["jar","application/java-archive"],["jpeg","image/jpeg"],["jpg","image/jpeg"],["js","text/javascript"],["json","application/json"],["jsonld","application/ld+json"],["mid","audio/midi"],["midi","audio/midi"],["mjs","text/javascript"],["mp3","audio/mpeg"],["mp4","video/mp4"],["mpeg","video/mpeg"],["mpkg","application/vnd.apple.installer+xml"],["odp","application/vnd.oasis.opendocument.presentation"],["ods","application/vnd.oasis.opendocument.spreadsheet"],["odt","application/vnd.oasis.opendocument.text"],["oga","audio/ogg"],["ogv","video/ogg"],["ogx","application/ogg"],["opus","audio/opus"],["otf","font/otf"],["png","image/png"],["pdf","application/pdf"],["php","application/x-httpd-php"],["ppt","application/vnd.ms-powerpoint"],["pptx","application/vnd.openxmlformats-officedocument.presentationml.presentation"],["rar","application/vnd.rar"],["rtf","application/rtf"],["sh","application/x-sh"],["svg","image/svg+xml"],["swf","application/x-shockwave-flash"],["tar","application/x-tar"],["tif","image/tiff"],["tiff","image/tiff"],["ts","video/mp2t"],["ttf","font/ttf"],["txt","text/plain"],["vsd","application/vnd.visio"],["wav","audio/wav"],["weba","audio/webm"],["webm","video/webm"],["webp","image/webp"],["woff","font/woff"],["woff2","font/woff2"],["xhtml","application/xhtml+xml"],["xls","application/vnd.ms-excel"],["xlsx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],["xml","application/xml"],["xul","application/vnd.mozilla.xul+xml"],["zip","application/zip"],["7z","application/x-7z-compressed"],["mkv","video/x-matroska"],["mov","video/quicktime"],["msg","application/vnd.ms-outlook"]]);function Me(t,r){var n=Do(t);if(typeof n.path!="string"){var i=t.webkitRelativePath;Object.defineProperty(n,"path",{value:typeof r=="string"?r:typeof i=="string"&&i.length>0?i:t.name,writable:!1,configurable:!1,enumerable:!0})}return n}function Do(t){var r=t.name,n=r&&r.lastIndexOf(".")!==-1;if(n&&!t.type){var i=r.split(".").pop().toLowerCase(),a=ko.get(i);a&&Object.defineProperty(t,"type",{value:a,writable:!1,configurable:!1,enumerable:!0})}return t}var To=[".DS_Store","Thumbs.db"];function Ro(t){return De(this,void 0,void 0,function(){return Te(this,function(r){return ct(t)&&Eo(t)?[2,Io(t.dataTransfer,t.type)]:Po(t)?[2,Ao(t)]:Array.isArray(t)&&t.every(function(n){return"getFile"in n&&typeof n.getFile=="function"})?[2,_o(t)]:[2,[]]})})}function Eo(t){return ct(t.dataTransfer)}function Po(t){return ct(t)&&ct(t.target)}function ct(t){return typeof t=="object"&&t!==null}function Ao(t){return zt(t.target.files).map(function(r){return Me(r)})}function _o(t){return De(this,void 0,void 0,function(){var r;return Te(this,function(n){switch(n.label){case 0:return[4,Promise.all(t.map(function(i){return i.getFile()}))];case 1:return r=n.sent(),[2,r.map(function(i){return Me(i)})]}})})}function Io(t,r){return De(this,void 0,void 0,function(){var n,i;return Te(this,function(a){switch(a.label){case 0:return t===null?[2,[]]:t.items?(n=zt(t.items).filter(function(l){return l.kind==="file"}),r!=="drop"?[2,n]:[4,Promise.all(n.map(Lo))]):[3,2];case 1:return i=a.sent(),[2,En(Tr(i))];case 2:return[2,En(zt(t.files).map(function(l){return Me(l)}))]}})})}function En(t){return t.filter(function(r){return To.indexOf(r.name)===-1})}function zt(t){if(t===null)return[];for(var r=[],n=0;n<t.length;n++){var i=t[n];r.push(i)}return r}function Lo(t){if(typeof t.webkitGetAsEntry!="function")return Pn(t);var r=t.webkitGetAsEntry();return r&&r.isDirectory?Rr(r):Pn(t)}function Tr(t){return t.reduce(function(r,n){return ci(r,Array.isArray(n)?Tr(n):[n])},[])}function Pn(t){var r=t.getAsFile();if(!r)return Promise.reject(t+" is not a File");var n=Me(r);return Promise.resolve(n)}function Fo(t){return De(this,void 0,void 0,function(){return Te(this,function(r){return[2,t.isDirectory?Rr(t):Oo(t)]})})}function Rr(t){var r=t.createReader();return new Promise(function(n,i){var a=[];function l(){var o=this;r.readEntries(function(s){return De(o,void 0,void 0,function(){var d,m,c;return Te(this,function(u){switch(u.label){case 0:if(s.length)return[3,5];u.label=1;case 1:return u.trys.push([1,3,,4]),[4,Promise.all(a)];case 2:return d=u.sent(),n(d),[3,4];case 3:return m=u.sent(),i(m),[3,4];case 4:return[3,6];case 5:c=Promise.all(s.map(Fo)),a.push(c),l(),u.label=6;case 6:return[2]}})})},function(s){i(s)})}l()})}function Oo(t){return De(this,void 0,void 0,function(){return Te(this,function(r){return[2,new Promise(function(n,i){t.file(function(a){var l=Me(a,t.fullPath);n(l)},function(a){i(a)})})]})})}var Ye={},An;function No(){return An||(An=1,Ye.__esModule=!0,Ye.default=function(t,r){if(t&&r){var n=Array.isArray(r)?r:r.split(","),i=t.name||"",a=(t.type||"").toLowerCase(),l=a.replace(/\/.*$/,"");return n.some(function(o){var s=o.trim().toLowerCase();return s.charAt(0)==="."?i.toLowerCase().endsWith(s):s.endsWith("/*")?l===s.replace(/\/.*$/,""):a===s})}return!0}),Ye}var $o=No();const Uo=Yt($o);function _n(t,r){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,i)}return n}function In(t){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};r%2?_n(Object(n),!0).forEach(function(i){Er(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_n(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function Er(t,r,n){return r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}function Ln(t,r){return Wo(t)||Bo(t,r)||Mo(t,r)||zo()}function zo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
246
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Mo(t,r){if(t){if(typeof t=="string")return Fn(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Fn(t,r)}}function Fn(t,r){(r==null||r>t.length)&&(r=t.length);for(var n=0,i=new Array(r);n<r;n++)i[n]=t[n];return i}function Bo(t,r){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var i=[],a=!0,l=!1,o,s;try{for(n=n.call(t);!(a=(o=n.next()).done)&&(i.push(o.value),!(r&&i.length===r));a=!0);}catch(d){l=!0,s=d}finally{try{!a&&n.return!=null&&n.return()}finally{if(l)throw s}}return i}}function Wo(t){if(Array.isArray(t))return t}var qo="file-invalid-type",Ho="file-too-large",Go="file-too-small",Ko="too-many-files",Yo=function(r){r=Array.isArray(r)&&r.length===1?r[0]:r;var n=Array.isArray(r)?"one of ".concat(r.join(", ")):r;return{code:qo,message:"File type must be ".concat(n)}},On=function(r){return{code:Ho,message:"File is larger than ".concat(r," ").concat(r===1?"byte":"bytes")}},Nn=function(r){return{code:Go,message:"File is smaller than ".concat(r," ").concat(r===1?"byte":"bytes")}},Vo={code:Ko,message:"Too many files"};function Pr(t,r){var n=t.type==="application/x-moz-file"||Uo(t,r);return[n,n?null:Yo(r)]}function Ar(t,r,n){if(Ee(t.size))if(Ee(r)&&Ee(n)){if(t.size>n)return[!1,On(n)];if(t.size<r)return[!1,Nn(r)]}else{if(Ee(r)&&t.size<r)return[!1,Nn(r)];if(Ee(n)&&t.size>n)return[!1,On(n)]}return[!0,null]}function Ee(t){return t!=null}function Xo(t){var r=t.files,n=t.accept,i=t.minSize,a=t.maxSize,l=t.multiple,o=t.maxFiles;return!l&&r.length>1||l&&o>=1&&r.length>o?!1:r.every(function(s){var d=Pr(s,n),m=Ln(d,1),c=m[0],u=Ar(s,i,a),j=Ln(u,1),v=j[0];return c&&v})}function dt(t){return typeof t.isPropagationStopped=="function"?t.isPropagationStopped():typeof t.cancelBubble<"u"?t.cancelBubble:!1}function Ve(t){return t.dataTransfer?Array.prototype.some.call(t.dataTransfer.types,function(r){return r==="Files"||r==="application/x-moz-file"}):!!t.target&&!!t.target.files}function $n(t){t.preventDefault()}function Qo(t){return t.indexOf("MSIE")!==-1||t.indexOf("Trident/")!==-1}function Zo(t){return t.indexOf("Edge/")!==-1}function Jo(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return Qo(t)||Zo(t)}function ue(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return function(i){for(var a=arguments.length,l=new Array(a>1?a-1:0),o=1;o<a;o++)l[o-1]=arguments[o];return r.some(function(s){return!dt(i)&&s&&s.apply(void 0,[i].concat(l)),dt(i)})}}function Un(){return"showOpenFilePicker"in window}function ea(t){return t=typeof t=="string"?t.split(","):t,[{description:"everything",accept:Array.isArray(t)?t.filter(function(r){return r==="audio/*"||r==="video/*"||r==="image/*"||r==="text/*"||/\w+\/[-+.\w]+/g.test(r)}).reduce(function(r,n){return In(In({},r),{},Er({},n,[]))},{}):{}}]}var ta=["children"],na=["open"],ra=["refKey","role","onKeyDown","onFocus","onBlur","onClick","onDragEnter","onDragOver","onDragLeave","onDrop"],ia=["refKey","onChange","onClick"];function oa(t){return la(t)||sa(t)||_r(t)||aa()}function aa(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
247
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function sa(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function la(t){if(Array.isArray(t))return Mt(t)}function Rt(t,r){return ua(t)||da(t,r)||_r(t,r)||ca()}function ca(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
248
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _r(t,r){if(t){if(typeof t=="string")return Mt(t,r);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Mt(t,r)}}function Mt(t,r){(r==null||r>t.length)&&(r=t.length);for(var n=0,i=new Array(r);n<r;n++)i[n]=t[n];return i}function da(t,r){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var i=[],a=!0,l=!1,o,s;try{for(n=n.call(t);!(a=(o=n.next()).done)&&(i.push(o.value),!(r&&i.length===r));a=!0);}catch(d){l=!0,s=d}finally{try{!a&&n.return!=null&&n.return()}finally{if(l)throw s}}return i}}function ua(t){if(Array.isArray(t))return t}function zn(t,r){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);r&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),n.push.apply(n,i)}return n}function G(t){for(var r=1;r<arguments.length;r++){var n=arguments[r]!=null?arguments[r]:{};r%2?zn(Object(n),!0).forEach(function(i){Bt(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):zn(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}function Bt(t,r,n){return r in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}function ut(t,r){if(t==null)return{};var n=ma(t,r),i,a;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(a=0;a<l.length;a++)i=l[a],!(r.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(t,i)&&(n[i]=t[i])}return n}function ma(t,r){if(t==null)return{};var n={},i=Object.keys(t),a,l;for(l=0;l<i.length;l++)a=i[l],!(r.indexOf(a)>=0)&&(n[a]=t[a]);return n}var en=g.forwardRef(function(t,r){var n=t.children,i=ut(t,ta),a=qt(i),l=a.open,o=ut(a,na);return g.useImperativeHandle(r,function(){return{open:l}},[l]),di.createElement(g.Fragment,null,n(G(G({},o),{},{open:l})))});en.displayName="Dropzone";var Ir={disabled:!1,getFilesFromEvent:Ro,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};en.defaultProps=Ir;en.propTypes={children:f.func,accept:f.oneOfType([f.string,f.arrayOf(f.string)]),multiple:f.bool,preventDropOnDocument:f.bool,noClick:f.bool,noKeyboard:f.bool,noDrag:f.bool,noDragEventsBubbling:f.bool,minSize:f.number,maxSize:f.number,maxFiles:f.number,disabled:f.bool,getFilesFromEvent:f.func,onFileDialogCancel:f.func,onFileDialogOpen:f.func,useFsAccessApi:f.bool,onDragEnter:f.func,onDragLeave:f.func,onDragOver:f.func,onDrop:f.func,onDropAccepted:f.func,onDropRejected:f.func,validator:f.func};var Wt={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function qt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=G(G({},Ir),t),n=r.accept,i=r.disabled,a=r.getFilesFromEvent,l=r.maxSize,o=r.minSize,s=r.multiple,d=r.maxFiles,m=r.onDragEnter,c=r.onDragLeave,u=r.onDragOver,j=r.onDrop,v=r.onDropAccepted,h=r.onDropRejected,S=r.onFileDialogCancel,b=r.onFileDialogOpen,k=r.useFsAccessApi,D=r.preventDropOnDocument,C=r.noClick,T=r.noKeyboard,R=r.noDrag,y=r.noDragEventsBubbling,P=r.validator,x=g.useMemo(function(){return typeof b=="function"?b:Mn},[b]),p=g.useMemo(function(){return typeof S=="function"?S:Mn},[S]),w=g.useRef(null),A=g.useRef(null),N=g.useReducer(fa,Wt),$=Rt(N,2),F=$[0],_=$[1],X=F.isFocused,Y=F.isFileDialogActive,he=F.draggedFiles,ge=function(){Y&&setTimeout(function(){if(A.current){var U=A.current.files;U.length||(_({type:"closeDialog"}),p())}},300)};g.useEffect(function(){return k&&Un()?function(){}:(window.addEventListener("focus",ge,!1),function(){window.removeEventListener("focus",ge,!1)})},[A,Y,p,k]);var z=g.useRef([]),O=function(U){w.current&&w.current.contains(U.target)||(U.preventDefault(),z.current=[])};g.useEffect(function(){return D&&(document.addEventListener("dragover",$n,!1),document.addEventListener("drop",O,!1)),function(){D&&(document.removeEventListener("dragover",$n),document.removeEventListener("drop",O))}},[w,D]);var q=g.useCallback(function(I){I.preventDefault(),I.persist(),He(I),z.current=[].concat(oa(z.current),[I.target]),Ve(I)&&Promise.resolve(a(I)).then(function(U){dt(I)&&!y||(_({draggedFiles:U,isDragActive:!0,type:"setDraggedFiles"}),m&&m(I))})},[a,m,y]),oe=g.useCallback(function(I){I.preventDefault(),I.persist(),He(I);var U=Ve(I);if(U&&I.dataTransfer)try{I.dataTransfer.dropEffect="copy"}catch{}return U&&u&&u(I),!1},[u,y]),we=g.useCallback(function(I){I.preventDefault(),I.persist(),He(I);var U=z.current.filter(function(ae){return w.current&&w.current.contains(ae)}),J=U.indexOf(I.target);J!==-1&&U.splice(J,1),z.current=U,!(U.length>0)&&(_({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),Ve(I)&&c&&c(I))},[w,c,y]),Be=g.useCallback(function(I,U){var J=[],ae=[];I.forEach(function(ce){var Re=Pr(ce,n),ke=Rt(Re,2),yt=ke[0],bt=ke[1],vt=Ar(ce,o,l),Ge=Rt(vt,2),jt=Ge[0],wt=Ge[1],Ct=P?P(ce):null;if(yt&&jt&&!Ct)J.push(ce);else{var St=[bt,wt];Ct&&(St=St.concat(Ct)),ae.push({file:ce,errors:St.filter(function(Br){return Br})})}}),(!s&&J.length>1||s&&d>=1&&J.length>d)&&(J.forEach(function(ce){ae.push({file:ce,errors:[Vo]})}),J.splice(0)),_({acceptedFiles:J,fileRejections:ae,type:"setFiles"}),j&&j(J,ae,U),ae.length>0&&h&&h(ae,U),J.length>0&&v&&v(J,U)},[_,s,n,o,l,d,j,v,h,P]),We=g.useCallback(function(I){I.preventDefault(),I.persist(),He(I),z.current=[],Ve(I)&&Promise.resolve(a(I)).then(function(U){dt(I)&&!y||Be(U,I)}),_({type:"reset"})},[a,Be,y]),Ce=g.useCallback(function(){if(k&&Un()){_({type:"openDialog"}),x();var I={multiple:s,types:ea(n)};window.showOpenFilePicker(I).then(function(U){return a(U)}).then(function(U){return Be(U,null)}).catch(function(U){return p(U)}).finally(function(){return _({type:"closeDialog"})});return}A.current&&(_({type:"openDialog"}),x(),A.current.value=null,A.current.click())},[_,x,p,k,Be,n,s]),tn=g.useCallback(function(I){!w.current||!w.current.isEqualNode(I.target)||(I.keyCode===32||I.keyCode===13)&&(I.preventDefault(),Ce())},[w,A,Ce]),nn=g.useCallback(function(){_({type:"focus"})},[]),rn=g.useCallback(function(){_({type:"blur"})},[]),on=g.useCallback(function(){C||(Jo()?setTimeout(Ce,0):Ce())},[A,C,Ce]),Se=function(U){return i?null:U},xt=function(U){return T?null:Se(U)},qe=function(U){return R?null:Se(U)},He=function(U){y&&U.stopPropagation()},$r=g.useMemo(function(){return function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},U=I.refKey,J=U===void 0?"ref":U,ae=I.role,ce=I.onKeyDown,Re=I.onFocus,ke=I.onBlur,yt=I.onClick,bt=I.onDragEnter,vt=I.onDragOver,Ge=I.onDragLeave,jt=I.onDrop,wt=ut(I,ra);return G(G(Bt({onKeyDown:xt(ue(ce,tn)),onFocus:xt(ue(Re,nn)),onBlur:xt(ue(ke,rn)),onClick:Se(ue(yt,on)),onDragEnter:qe(ue(bt,q)),onDragOver:qe(ue(vt,oe)),onDragLeave:qe(ue(Ge,we)),onDrop:qe(ue(jt,We)),role:typeof ae=="string"&&ae!==""?ae:"button"},J,w),!i&&!T?{tabIndex:0}:{}),wt)}},[w,tn,nn,rn,on,q,oe,we,We,T,R,i]),Ur=g.useCallback(function(I){I.stopPropagation()},[]),zr=g.useMemo(function(){return function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},U=I.refKey,J=U===void 0?"ref":U,ae=I.onChange,ce=I.onClick,Re=ut(I,ia),ke=Bt({accept:n,multiple:s,type:"file",style:{display:"none"},onChange:Se(ue(ae,We)),onClick:Se(ue(ce,Ur)),autoComplete:"off",tabIndex:-1},J,A);return G(G({},ke),Re)}},[A,n,s,We,i]),an=he.length,sn=an>0&&Xo({files:he,accept:n,minSize:o,maxSize:l,multiple:s,maxFiles:d}),Mr=an>0&&!sn;return G(G({},F),{},{isDragAccept:sn,isDragReject:Mr,isFocused:X&&!i,getRootProps:$r,getInputProps:zr,rootRef:w,inputRef:A,open:Se(Ce)})}function fa(t,r){switch(r.type){case"focus":return G(G({},t),{},{isFocused:!0});case"blur":return G(G({},t),{},{isFocused:!1});case"openDialog":return G(G({},Wt),{},{isFileDialogActive:!0});case"closeDialog":return G(G({},t),{},{isFileDialogActive:!1});case"setDraggedFiles":var n=r.isDragActive,i=r.draggedFiles;return G(G({},t),{},{draggedFiles:i,isDragActive:n});case"setFiles":return G(G({},t),{},{acceptedFiles:r.acceptedFiles,fileRejections:r.fileRejections});case"reset":return G({},Wt);default:return t}}function Mn(){}const Bn=50*1024,Xe=t=>t.split(`
249
+ `).join("|"),Qe=t=>new Promise((r,n)=>{const i=new FileReader;i.readAsText(t),i.onload=()=>{r(i.result)},i.onerror=a=>n(a)});function Wn({certificate:t={},onRefresh:r,mode:n,...i}){const{t:a}=M(),{api:l}=Q(),[o,s]=g.useState(!1),[d,m]=g.useState(),[c,u]=g.useState(),[j,v]=g.useState(!1),[h,S]=g.useState(""),[b,k]=g.useState("upload"),{handleSubmit:D,formState:C,control:T}=Vt({defaultValues:{name:t.name||t.domain}}),R=vn({control:T,name:"name"}),y=vn({control:T,name:"domain"}),P=()=>o?!0:b==="upload"&&n==="update"?!!(!R||d&&!c||c&&!d):b==="upload"&&n==="add"?!R||!d||!c:b==="lets_encrypt"&&!y,x=()=>{s(!1),v(!1)},p=async O=>{if(n==="add"){const q=(await Qe(c)).replace(/\r\n/g,`
250
250
  `),oe=(await Qe(d)).replace(/\r\n/g,`
251
- `);await l.addCertificate({input:{name:N.name.trim(),certificate:Xe(q),privateKey:Xe(oe)}})}else{const q={id:t.id,name:N.name.trim()};if(c&&d){const oe=(await Qe(c)).replace(/\r\n/g,`
251
+ `);await l.addCertificate({input:{name:O.name.trim(),certificate:Xe(q),privateKey:Xe(oe)}})}else{const q={id:t.id,name:O.name.trim()};if(c&&d){const oe=(await Qe(c)).replace(/\r\n/g,`
252
252
  `),we=(await Qe(d)).replace(/\r\n/g,`
253
- `);q.certificate=Xe(oe),q.privateKey=Xe(we)}await l.updateCertificate({input:q})}},v=N=>l.issueLetsEncryptCert({input:{domain:N.domain}}),C={upload:{name:a("router.cert.nginx.sourceTypes.upload"),value:"upload",onSubmit:p},lets_encrypt:{name:a("router.cert.nginx.sourceTypes.lets_encrypt"),value:"lets_encrypt",onSubmit:v}},F=async N=>{s(!0);try{const q=C[y];if(!q)throw new Error("Invaid certificate source");await q.onSubmit(N),r(),b(!1)}catch(q){S(pe(q)||"unknown error, may be you can check file permission")}finally{s(!1)}},$=()=>{m(null),u(null),b(!0),S("")},O=N=>{k(N.target.value)},_=N=>{N.length>0&&S(ne(N[0],"errors[0].message",a("router.cert.add.invalidFile")))},{getRootProps:X,getInputProps:Y}=qt({accept:[".pem",".crt"],multiple:!1,maxSize:Bn,onDropRejected:_,onDrop:N=>{u(N[0])}}),{getRootProps:he,getInputProps:ge}=qt({accept:[".pem",".key"],multiple:!1,maxSize:Bn,onDropRejected:_,onDrop:N=>{m(N[0])}}),{errors:z}=T;return e.jsxs(e.Fragment,{children:[e.jsxs(Z,{edge:"end",onClick:$,className:"rule-action",color:"primary","data-cy":"add-cert",...i,children:[o?e.jsx(K,{size:16}):e.jsx(Fe,{style:{fontSize:16}}),a(n==="add"?"common.add":"common.update")]}),j&&e.jsx(rr,{title:a(n==="add"?"router.cert.nginx.titleAdd":"router.cert.nginx.title"),open:!0,onClose:g,actions:e.jsxs(e.Fragment,{children:[e.jsx(Z,{onClick:g,color:"inherit","data-cy":"cert-cancel",children:a("router.cert.nginx.cancel")}),e.jsxs(Z,{onClick:D(F),color:"secondary",disabled:P(),variant:"contained",autoFocus:!0,"data-cy":"save-cert",children:[a("router.cert.nginx.confirm"),o&&e.jsx(K,{size:16})]})]}),children:e.jsx("form",{className:"form","data-cy":"cert-form",noValidate:!0,autoComplete:"off",onSubmit:D(F),children:e.jsxs(W,{sx:{minWidth:{sm:480}},children:[e.jsxs(Ot,{component:"div",children:[n==="add"&&e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:a("router.cert.source")}),e.jsx(sr,{"aria-label":"cert-source",name:"certSource",value:y,onChange:O,children:Object.values(C).map(N=>e.jsx(Oe,{value:N.value,control:e.jsx(Ft,{}),label:N.name},N.value))})]}),y==="upload"&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:a("router.cert.name")}),e.jsx(B,{name:"name",control:w,rules:{validate:N=>!!N.trim()||a("common.requiredErrorText",{name:a("router.cert.name")})},render:({field:{value:N,onChange:q}})=>e.jsx(H,{fullWidth:!0,autoFocus:!0,defaultValue:N,onChange:q,error:!!z.name,autoComplete:"off",variant:"outlined",name:"name",className:"form-item-value","data-cy":"certificate-name-textfield",helperText:z.name&&z.name.message})})]}),e.jsxs("section",{className:"form-item",children:[e.jsxs("div",{className:"form-item-label",children:[a("router.cert.nginx.pem"),n==="update"&&e.jsxs(L,{component:"small",variant:"body2",color:"textSecondary",children:[" ","(",a("common.optional"),")"]})]}),e.jsx("div",{className:"form-item-value",children:e.jsxs("div",{...X({className:"dropzone"}),children:[e.jsx("input",{...Y(),"data-cy":"pem-input"}),c&&e.jsx(L,{color:"secondary",children:c.name}),!c&&e.jsx(L,{color:"secondary",children:a("router.cert.nginx.empty")}),e.jsx(L,{component:"small",variant:"body2",color:"textSecondary",children:a("router.cert.nginx.pemTip")})]})})]}),e.jsxs("section",{className:"form-item",children:[e.jsxs("div",{className:"form-item-label",children:[a("router.cert.nginx.key"),n==="update"&&e.jsxs(L,{component:"small",variant:"body2",color:"textSecondary",children:[" ","(",a("common.optional"),")"]})]}),e.jsx("div",{className:"form-item-value",children:e.jsxs("div",{...he({className:"dropzone"}),children:[e.jsx("input",{...ge(),"data-cy":"key-input"}),d&&e.jsx(L,{color:"secondary",children:d.name}),!d&&e.jsx(L,{color:"secondary",children:a("router.cert.nginx.empty")}),e.jsx(L,{component:"small",variant:"body2",color:"textSecondary",children:a("router.cert.nginx.keyTip")})]})})]})]}),y==="lets_encrypt"&&e.jsxs(e.Fragment,{children:[e.jsx("section",{className:"form-item",children:e.jsx(be,{severity:"success",children:a("router.cert.genLetsEncryptCert.dnsTip")})}),e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:a("common.domain")}),e.jsx(B,{name:"domain",control:w,rules:{validate:N=>!!N.trim()||a("common.requiredErrorText",{name:a("common.domain")})},render:({field:{value:N,onChange:q}})=>e.jsx(H,{fullWidth:!0,autoFocus:!0,defaultValue:N,error:!!z.domain,autoComplete:"off",variant:"outlined",className:"form-item-value",helperText:z.domain&&z.domain.message,onChange:q})})]})]})]}),!!x&&e.jsx(be,{severity:"error",style:{marginTop:8},children:x})]})})})]})}function pa(t){const r=ir(),{t:n}=M(),{api:i}=Q(),[a,l]=h.useState(!1),[o,s]=h.useState(null),{id:d,domain:m,onDelete:c=()=>{},...u}=t,{refresh:j}=de(),b=()=>{l(!1),s(null)},x=async()=>{l(!0);try{await i.deleteCertificate({input:{id:d}}),j(),c()}catch(y){console.error(y)}finally{l(!1),s(null)}},S={title:n("router.cert.delete.title"),description:n("router.cert.delete.description",{domain:m}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:x,onCancel:b};return e.jsxs(e.Fragment,{children:[e.jsxs(Z,{edge:"end",onClick:()=>s(S),size:"small",className:"rule-action",variant:"text","data-cy":"action-delete-cert",style:{color:r.palette.error.main},...u,children:[a?e.jsx(K,{size:16}):e.jsx(ve,{style:{fontSize:16}}),n("common.delete")]}),o&&e.jsx(le,{title:o.title,description:o.description,confirm:o.confirm,cancel:o.cancel,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}function Lr(t){const{certificate:r={},...n}=t,{t:i,locale:a}=M(),[l,o]=h.useState(!1),s=ir(),d=()=>{o(!1)},m=[{id:"matchedSites",name:i("router.cert.matchedSites"),value:(r.matchedSites||[]).map(u=>e.jsx(L,{component:"div",style:{fontWeight:"inherit",fontSize:"1.1rem"},children:u.domain},u.id))},{id:"updatedAt",name:i("common.updatedAt"),value:r.updatedAt?e.jsx(it,{value:r.updatedAt,type:"all",locale:a}):"-"},{id:"createdAt",name:i("common.createdAt"),value:r.createdAt?e.jsx(it,{value:r.createdAt,type:"all",locale:a}):"-"}],c=[{id:"boundDomains",name:i("router.cert.boundDomains"),value:e.jsx(L,{component:"span",style:{fontSize:"1.1rem"},children:(ne(r,"sans")||[]).join(", ")})},{id:"issuer",name:i("common.issuer"),value:ne(r,"meta.issuer.commonName","")},{id:"fingerprint",name:i("common.fingerprint"),value:ne(r,"meta.fingerprint")},{id:"fingerprintAlg",name:i("router.cert.fingerprintAlg"),value:ne(r,"meta.fingerprintAlg")},{id:"validityPeriod",name:i("router.cert.validityPeriod"),value:ui.duration(ne(r,"meta.validityPeriod"),"ms").humanize()},{id:"issuedOn",name:i("router.cert.issuedOn"),value:ot(ne(r,"meta.validFrom"),a)},{id:"expiryOn",name:i("router.cert.expiryOn"),value:ot(ne(r,"meta.validTo"),a)}];return e.jsxs(e.Fragment,{children:[e.jsxs(Z,{edge:"end",onClick:()=>o(!0),size:"small",className:"rule-action",variant:"text",color:"secondary","data-cy":"action-view-cert",...n,children:[e.jsx($i,{style:{fontSize:16}}),i("common.detail")]}),e.jsxs(rr,{title:i("router.cert.detail.title"),"aria-labelledby":"certificate details",fullWidth:!0,open:l,showCloseButton:!1,actions:e.jsx(Z,{autoFocus:!0,variant:"contained",onClick:d,color:"secondary",children:i("common.close")}),children:[e.jsx(Ot,{component:"div",style:{margin:s.spacing(2)},children:m.map(u=>e.jsx(at,{nameWidth:200,valueComponent:"div",name:u.name,children:u.value},u.id))},"cert-basic"),e.jsx(hn,{}),e.jsx(Ot,{component:"div",style:{margin:s.spacing(2)},children:c.map(u=>e.jsx(at,{nameWidth:200,valueComponent:"div",name:u.name,children:u.value},u.id))},"cer-info"),e.jsx(hn,{})]})]})}Lr.propTypes={certificate:f.object.isRequired};function Or({style:t={},certificate:r,...n}){const{t:i}=M(),[a,l]=h.useState(!1),o=r.matchedSites||[];return e.jsxs(L,{component:"ul",...n,style:{...t,listStyle:"none"},children:[(a?o:o.slice(0,4)).map(s=>e.jsx(L,{component:"li",style:{fontSize:"1.1rem",margin:"4px 0"},children:s.domain},s.id)),o.length>4&&e.jsx(Z,{style:{border:"none",padding:"5px 0"},variant:"outlined",color:"primary",className:"button",onClick:()=>{l(!a)},children:i(a?"common.collapseAll":"common.expandAll")})]})}Or.propTypes={certificate:f.object.isRequired,style:f.object};const ga=t=>{if(!t)return!1;const r=+new Date;return t-r<=0},qn="ssl-certificates-table";f.number;function Et({name:t,value:r,style:n={},icon:i,...a}){return e.jsxs(ha,{style:{display:"flex",alignItems:"center",...n},...a,children:[e.jsxs("span",{children:[t,":"]}),e.jsx("span",{children:r}),i&&i]})}const ha=re.div`
253
+ `);q.certificate=Xe(oe),q.privateKey=Xe(we)}await l.updateCertificate({input:q})}},w=O=>l.issueLetsEncryptCert({input:{domain:O.domain}}),A={upload:{name:a("router.cert.nginx.sourceTypes.upload"),value:"upload",onSubmit:p},lets_encrypt:{name:a("router.cert.nginx.sourceTypes.lets_encrypt"),value:"lets_encrypt",onSubmit:w}},N=async O=>{s(!0);try{const q=A[b];if(!q)throw new Error("Invaid certificate source");await q.onSubmit(O),r(),v(!1)}catch(q){S(pe(q)||"unknown error, may be you can check file permission")}finally{s(!1)}},$=()=>{m(null),u(null),v(!0),S("")},F=O=>{k(O.target.value)},_=O=>{O.length>0&&S(ne(O[0],"errors[0].message",a("router.cert.add.invalidFile")))},{getRootProps:X,getInputProps:Y}=qt({accept:[".pem",".crt"],multiple:!1,maxSize:Bn,onDropRejected:_,onDrop:O=>{u(O[0])}}),{getRootProps:he,getInputProps:ge}=qt({accept:[".pem",".key"],multiple:!1,maxSize:Bn,onDropRejected:_,onDrop:O=>{m(O[0])}}),{errors:z}=C;return e.jsxs(e.Fragment,{children:[e.jsxs(Z,{edge:"end",onClick:$,className:"rule-action",color:"primary","data-cy":"add-cert",...i,children:[o?e.jsx(K,{size:16}):e.jsx(Oe,{style:{fontSize:16}}),a(n==="add"?"common.add":"common.update")]}),j&&e.jsx(rr,{title:a(n==="add"?"router.cert.nginx.titleAdd":"router.cert.nginx.title"),open:!0,onClose:x,actions:e.jsxs(e.Fragment,{children:[e.jsx(Z,{onClick:x,color:"inherit","data-cy":"cert-cancel",children:a("router.cert.nginx.cancel")}),e.jsxs(Z,{onClick:D(N),color:"secondary",disabled:P(),variant:"contained",autoFocus:!0,"data-cy":"save-cert",children:[a("router.cert.nginx.confirm"),o&&e.jsx(K,{size:16})]})]}),children:e.jsx("form",{className:"form","data-cy":"cert-form",noValidate:!0,autoComplete:"off",onSubmit:D(N),children:e.jsxs(W,{sx:{minWidth:{sm:480}},children:[e.jsxs(Ft,{component:"div",children:[n==="add"&&e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:a("router.cert.source")}),e.jsx(sr,{"aria-label":"cert-source",name:"certSource",value:b,onChange:F,children:Object.values(A).map(O=>e.jsx(Fe,{value:O.value,control:e.jsx(Ot,{}),label:O.name},O.value))})]}),b==="upload"&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:a("router.cert.name")}),e.jsx(B,{name:"name",control:T,rules:{validate:O=>!!O.trim()||a("common.requiredErrorText",{name:a("router.cert.name")})},render:({field:{value:O,onChange:q}})=>e.jsx(H,{fullWidth:!0,autoFocus:!0,defaultValue:O,onChange:q,error:!!z.name,autoComplete:"off",variant:"outlined",name:"name",className:"form-item-value","data-cy":"certificate-name-textfield",helperText:z.name&&z.name.message})})]}),e.jsxs("section",{className:"form-item",children:[e.jsxs("div",{className:"form-item-label",children:[a("router.cert.nginx.pem"),n==="update"&&e.jsxs(L,{component:"small",variant:"body2",color:"textSecondary",children:[" ","(",a("common.optional"),")"]})]}),e.jsx("div",{className:"form-item-value",children:e.jsxs("div",{...X({className:"dropzone"}),children:[e.jsx("input",{...Y(),"data-cy":"pem-input"}),c&&e.jsx(L,{color:"secondary",children:c.name}),!c&&e.jsx(L,{color:"secondary",children:a("router.cert.nginx.empty")}),e.jsx(L,{component:"small",variant:"body2",color:"textSecondary",children:a("router.cert.nginx.pemTip")})]})})]}),e.jsxs("section",{className:"form-item",children:[e.jsxs("div",{className:"form-item-label",children:[a("router.cert.nginx.key"),n==="update"&&e.jsxs(L,{component:"small",variant:"body2",color:"textSecondary",children:[" ","(",a("common.optional"),")"]})]}),e.jsx("div",{className:"form-item-value",children:e.jsxs("div",{...he({className:"dropzone"}),children:[e.jsx("input",{...ge(),"data-cy":"key-input"}),d&&e.jsx(L,{color:"secondary",children:d.name}),!d&&e.jsx(L,{color:"secondary",children:a("router.cert.nginx.empty")}),e.jsx(L,{component:"small",variant:"body2",color:"textSecondary",children:a("router.cert.nginx.keyTip")})]})})]})]}),b==="lets_encrypt"&&e.jsxs(e.Fragment,{children:[e.jsx("section",{className:"form-item",children:e.jsx(be,{severity:"success",children:a("router.cert.genLetsEncryptCert.dnsTip")})}),e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:a("common.domain")}),e.jsx(B,{name:"domain",control:T,rules:{validate:O=>!!O.trim()||a("common.requiredErrorText",{name:a("common.domain")})},render:({field:{value:O,onChange:q}})=>e.jsx(H,{fullWidth:!0,autoFocus:!0,defaultValue:O,error:!!z.domain,autoComplete:"off",variant:"outlined",className:"form-item-value",helperText:z.domain&&z.domain.message,onChange:q})})]})]})]}),!!h&&e.jsx(be,{severity:"error",style:{marginTop:8},children:h})]})})})]})}function pa(t){const r=ir(),{t:n}=M(),{api:i}=Q(),[a,l]=g.useState(!1),[o,s]=g.useState(null),{id:d,domain:m,onDelete:c=()=>{},...u}=t,{refresh:j}=de(),v=()=>{l(!1),s(null)},h=async()=>{l(!0);try{await i.deleteCertificate({input:{id:d}}),j(),c()}catch(b){console.error(b)}finally{l(!1),s(null)}},S={title:n("router.cert.delete.title"),description:n("router.cert.delete.description",{domain:m}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:h,onCancel:v};return e.jsxs(e.Fragment,{children:[e.jsxs(Z,{edge:"end",onClick:()=>s(S),size:"small",className:"rule-action",variant:"text","data-cy":"action-delete-cert",style:{color:r.palette.error.main},...u,children:[a?e.jsx(K,{size:16}):e.jsx(ve,{style:{fontSize:16}}),n("common.delete")]}),o&&e.jsx(le,{title:o.title,description:o.description,confirm:o.confirm,cancel:o.cancel,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}function Lr(t){const{certificate:r={},...n}=t,{t:i,locale:a}=M(),[l,o]=g.useState(!1),s=ir(),d=()=>{o(!1)},m=[{id:"matchedSites",name:i("router.cert.matchedSites"),value:(r.matchedSites||[]).map(u=>e.jsx(L,{component:"div",style:{fontWeight:"inherit",fontSize:"1.1rem"},children:u.domain},u.id))},{id:"updatedAt",name:i("common.updatedAt"),value:r.updatedAt?e.jsx(it,{value:r.updatedAt,type:"all",locale:a}):"-"},{id:"createdAt",name:i("common.createdAt"),value:r.createdAt?e.jsx(it,{value:r.createdAt,type:"all",locale:a}):"-"}],c=[{id:"boundDomains",name:i("router.cert.boundDomains"),value:e.jsx(L,{component:"span",style:{fontSize:"1.1rem"},children:(ne(r,"sans")||[]).join(", ")})},{id:"issuer",name:i("common.issuer"),value:ne(r,"meta.issuer.commonName","")},{id:"fingerprint",name:i("common.fingerprint"),value:ne(r,"meta.fingerprint")},{id:"fingerprintAlg",name:i("router.cert.fingerprintAlg"),value:ne(r,"meta.fingerprintAlg")},{id:"validityPeriod",name:i("router.cert.validityPeriod"),value:ui.duration(ne(r,"meta.validityPeriod"),"ms").humanize()},{id:"issuedOn",name:i("router.cert.issuedOn"),value:ot(ne(r,"meta.validFrom"),a)},{id:"expiryOn",name:i("router.cert.expiryOn"),value:ot(ne(r,"meta.validTo"),a)}];return e.jsxs(e.Fragment,{children:[e.jsxs(Z,{edge:"end",onClick:()=>o(!0),size:"small",className:"rule-action",variant:"text",color:"secondary","data-cy":"action-view-cert",...n,children:[e.jsx($i,{style:{fontSize:16}}),i("common.detail")]}),e.jsxs(rr,{title:i("router.cert.detail.title"),"aria-labelledby":"certificate details",fullWidth:!0,open:l,showCloseButton:!1,actions:e.jsx(Z,{autoFocus:!0,variant:"contained",onClick:d,color:"secondary",children:i("common.close")}),children:[e.jsx(Ft,{component:"div",style:{margin:s.spacing(2)},children:m.map(u=>e.jsx(at,{nameWidth:200,valueComponent:"div",name:u.name,children:u.value},u.id))},"cert-basic"),e.jsx(hn,{}),e.jsx(Ft,{component:"div",style:{margin:s.spacing(2)},children:c.map(u=>e.jsx(at,{nameWidth:200,valueComponent:"div",name:u.name,children:u.value},u.id))},"cer-info"),e.jsx(hn,{})]})]})}Lr.propTypes={certificate:f.object.isRequired};function Fr({style:t={},certificate:r,...n}){const{t:i}=M(),[a,l]=g.useState(!1),o=r.matchedSites||[];return e.jsxs(L,{component:"ul",...n,style:{...t,listStyle:"none"},children:[(a?o:o.slice(0,4)).map(s=>e.jsx(L,{component:"li",style:{fontSize:"1.1rem",margin:"4px 0"},children:s.domain},s.id)),o.length>4&&e.jsx(Z,{style:{border:"none",padding:"5px 0"},variant:"outlined",color:"primary",className:"button",onClick:()=>{l(!a)},children:i(a?"common.collapseAll":"common.expandAll")})]})}Fr.propTypes={certificate:f.object.isRequired,style:f.object};const ga=t=>{if(!t)return!1;const r=+new Date;return t-r<=0},qn="ssl-certificates-table";f.number;function Et({name:t,value:r,style:n={},icon:i,...a}){return e.jsxs(ha,{style:{display:"flex",alignItems:"center",...n},...a,children:[e.jsxs("span",{children:[t,":"]}),e.jsx("span",{children:r}),i&&i]})}const ha=re.div`
254
254
  & > span {
255
255
  margin: 5px;
256
256
  }
257
- `;function Fr({status:t="",source:r="",expiresTime:n}){const{t:i}=M();return ga(n)?e.jsx(Ke,{type:"error",children:i("router.cert.expired")}):r==="upload"?e.jsx(Ke,{type:"success",children:i("common.normal")}):t==="error"?e.jsx(Ke,{type:"error",children:i("common.error")}):t==="generated"?e.jsx(Ke,{type:"success",children:i("common.normal")}):""}Fr.propTypes={status:f.string,source:f.string,expiresTime:f.number.isRequired};const xa=(t,r)=>{if(!r)return t;const n=(r.site.domainAliases||[]).map(i=>i.value);return t.filter(i=>fi(n,i.matchedSites))};function ya(){const{t,locale:r}=h.useContext(mt),{api:n}=Q(),a=mi().get("did"),l=$e(async()=>{const{certificates:c}=await n.getCertificates();let u=null;if(a){const{blocklet:b}=await n.getBlocklet({input:{did:a,attachRuntimeInfo:!0}});u=b}return{certificates:xa(c,u)}}),o=()=>{l.retry()},s=l.value?.certificates,d=[{label:t("common.certificate"),name:"",verticalKeyAlign:"center",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsxs(e.Fragment,{children:[u.name&&e.jsx(Et,{nowrap:!0,style:{fontSize:"16px",whiteSpace:"nowrap"},name:t("common.name"),value:u.name}),e.jsx(Et,{style:{fontSize:"16px",whiteSpace:"nowrap"},name:t("common.issuer"),value:ne(u,"meta.issuer.commonName","")}),e.jsx(Et,{style:{fontSize:"16px",whiteSpace:"nowrap"},icon:e.jsx(fe,{title:u.isProtected?t("router.cert.protectedCertHelperText"):t("router.cert.unprotectedCertHelperText"),children:e.jsx(_e,{style:{fontSize:"18px"},color:"secondary"})}),name:t("common.protected"),value:u.isProtected?t("common.yes"):t("common.no")})]})}}},{label:t("router.cert.boundDomains"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(L,{noWrap:!0,component:"ul",style:{listStyle:"none"},children:[...new Set([...ne(u,"meta.sans")||[],u.domain])].map(j=>e.jsx(L,{component:"li",title:j,style:{fontSize:"1.1rem",minWidth:200,whiteSpace:"initial",wordBreak:"break-all"},children:j},j))})}}},{label:t("router.cert.source"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return t(`router.cert.sourceTypes.${u.source}`)}}},{label:t("common.status"),name:"",width:100,options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(Fr,{status:u.status,source:u.source,expiresTime:ne(u,"meta.validTo")})}}},{label:t("common.expires"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(it,{value:ne(u,"meta.validTo"),locale:r})}}},{label:t("router.cert.matchedSites"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(Or,{id:u.id,certificate:u,style:{minWidth:200,whiteSpace:"initial",wordBreak:"break-all"}})}}},{label:t("router.cert.action"),name:"",align:"center",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(ie,{permission:"mutate_router",children:e.jsxs(e.Fragment,{children:[!u.isProtected&&e.jsxs(e.Fragment,{children:[u.source==="upload"&&e.jsx("div",{children:e.jsx(Wn,{mode:"update",certificate:u,onRefresh:o})}),e.jsx("div",{children:e.jsx(pa,{id:u.id,domain:u.domain,onDelete:o})})]}),e.jsx("div",{children:e.jsx(Lr,{id:u.id,certificate:u})})]})})}}}];if(l.error)return e.jsx(be,{severity:"error",children:pe(l.error)});if(l.loading)return e.jsx(K,{});const m=wi(qn);return e.jsx(ba,{children:e.jsx(or,{title:e.jsx(ie,{permission:"mutate_router",children:e.jsx(Wn,{mode:"add",onRefresh:o,variant:"contained"})}),locale:r,data:l.value.certificates,columns:d,verticalKeyWidth:100,durable:qn,options:{search:!1,download:!1,filter:!1,print:!1,...m}})})}const ba=re.div`
257
+ `;function Or({status:t="",source:r="",expiresTime:n}){const{t:i}=M();return ga(n)?e.jsx(Ke,{type:"error",children:i("router.cert.expired")}):r==="upload"?e.jsx(Ke,{type:"success",children:i("common.normal")}):t==="error"?e.jsx(Ke,{type:"error",children:i("common.error")}):t==="generated"?e.jsx(Ke,{type:"success",children:i("common.normal")}):""}Or.propTypes={status:f.string,source:f.string,expiresTime:f.number.isRequired};const xa=(t,r)=>{if(!r)return t;const n=(r.site.domainAliases||[]).map(i=>i.value);return t.filter(i=>fi(n,i.matchedSites))};function ya(){const{t,locale:r}=g.useContext(mt),{api:n}=Q(),a=mi().get("did"),l=$e(async()=>{const{certificates:c}=await n.getCertificates();let u=null;if(a){const{blocklet:v}=await n.getBlocklet({input:{did:a,attachRuntimeInfo:!0}});u=v}return{certificates:xa(c,u)}}),o=()=>{l.retry()},s=l.value?.certificates,d=[{label:t("common.certificate"),name:"",verticalKeyAlign:"center",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsxs(e.Fragment,{children:[u.name&&e.jsx(Et,{nowrap:!0,style:{fontSize:"16px",whiteSpace:"nowrap"},name:t("common.name"),value:u.name}),e.jsx(Et,{style:{fontSize:"16px",whiteSpace:"nowrap"},name:t("common.issuer"),value:ne(u,"meta.issuer.commonName","")}),e.jsx(Et,{style:{fontSize:"16px",whiteSpace:"nowrap"},icon:e.jsx(fe,{title:u.isProtected?t("router.cert.protectedCertHelperText"):t("router.cert.unprotectedCertHelperText"),children:e.jsx(_e,{style:{fontSize:"18px"},color:"secondary"})}),name:t("common.protected"),value:u.isProtected?t("common.yes"):t("common.no")})]})}}},{label:t("router.cert.boundDomains"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(L,{noWrap:!0,component:"ul",style:{listStyle:"none"},children:[...new Set([...ne(u,"meta.sans")||[],u.domain])].map(j=>e.jsx(L,{component:"li",title:j,style:{fontSize:"1.1rem",minWidth:200,whiteSpace:"initial",wordBreak:"break-all"},children:j},j))})}}},{label:t("router.cert.source"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return t(`router.cert.sourceTypes.${u.source}`)}}},{label:t("common.status"),name:"",width:100,options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(Or,{status:u.status,source:u.source,expiresTime:ne(u,"meta.validTo")})}}},{label:t("common.expires"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(it,{value:ne(u,"meta.validTo"),locale:r})}}},{label:t("router.cert.matchedSites"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(Fr,{id:u.id,certificate:u,style:{minWidth:200,whiteSpace:"initial",wordBreak:"break-all"}})}}},{label:t("router.cert.action"),name:"",align:"center",options:{sort:!1,filter:!1,customBodyRenderLite:c=>{const u=s[c];return e.jsx(ie,{permission:"mutate_router",children:e.jsxs(e.Fragment,{children:[!u.isProtected&&e.jsxs(e.Fragment,{children:[u.source==="upload"&&e.jsx("div",{children:e.jsx(Wn,{mode:"update",certificate:u,onRefresh:o})}),e.jsx("div",{children:e.jsx(pa,{id:u.id,domain:u.domain,onDelete:o})})]}),e.jsx("div",{children:e.jsx(Lr,{id:u.id,certificate:u})})]})})}}}];if(l.error)return e.jsx(be,{severity:"error",children:pe(l.error)});if(l.loading)return e.jsx(K,{});const m=wi(qn);return e.jsx(ba,{children:e.jsx(or,{title:e.jsx(ie,{permission:"mutate_router",children:e.jsx(Wn,{mode:"add",onRefresh:o,variant:"contained"})}),locale:r,data:l.value.certificates,columns:d,verticalKeyWidth:100,durable:qn,options:{search:!1,download:!1,filter:!1,print:!1,...m}})})}const ba=re.div`
258
258
  .header {
259
259
  display: flex;
260
260
  justify-content: flex-end;
@@ -296,7 +296,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
296
296
  (?:${i}:){1}(?:(?::${i}){0,4}:${n}|(?::${i}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
297
297
  (?::(?:(?::${i}){0,5}:${n}|(?::${i}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
298
298
  )(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
299
- `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),l=new RegExp(`(?:^${n}$)|(?:^${a}$)`),o=new RegExp(`^${n}$`),s=new RegExp(`^${a}$`),d=m=>m&&m.exact?l:new RegExp(`(?:${r(m)}${n}${r(m)})|(?:${r(m)}${a}${r(m)})`,"g");return d.v4=m=>m&&m.exact?o:new RegExp(`${r(m)}${n}${r(m)}`,"g"),d.v6=m=>m&&m.exact?s:new RegExp(`${r(m)}${a}${r(m)}`,"g"),Pt=d,Pt}var At,Gn;function va(){if(Gn)return At;Gn=1;const t=Nr(),r=n=>t({exact:!0}).test(n);return r.v4=n=>t.v4({exact:!0}).test(n),r.v6=n=>t.v6({exact:!0}).test(n),r.version=n=>r(n)?r.v4(n)?4:6:void 0,At=r,At}var ja=va();const Ze=Yt(ja);var Pe={exports:{}},Ae={exports:{}},Kn;function wa(){if(Kn)return Ae.exports;Kn=1;const t=Nr(),r={exact:!1},n=`${t.v4().source}\\/(3[0-2]|[12]?[0-9])`,i=`${t.v6().source}\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])`,a=new RegExp(`^${n}$`),l=new RegExp(`^${i}$`),o=new RegExp(`(?:^${n}$)|(?:^${i}$)`);return Ae.exports=({exact:s}=r)=>s?o:new RegExp(`(?:${n})|(?:${i})`,"g"),Ae.exports.v4=({exact:s}=r)=>s?a:new RegExp(n,"g"),Ae.exports.v6=({exact:s}=r)=>s?l:new RegExp(i,"g"),Ae.exports}var Yn;function Ca(){if(Yn)return Pe.exports;Yn=1;const{v4:t,v6:r}=wa(),n=t({exact:!0}),i=r({exact:!0});return Pe.exports=a=>n.test(a)?4:i.test(a)?6:0,Pe.exports.v4=a=>n.test(a),Pe.exports.v6=a=>i.test(a),Pe.exports}var Sa=Ca();const Je=Yt(Sa);function xe(t){return e.jsx(Ai,{...t,sx:gi(r=>({".MuiSlider-root":{color:r.palette.primary.main,height:8,marginLeft:8},".MuiSlider-thumb":{height:24,width:24,backgroundColor:"#fff",border:"2px solid currentColor","&:focus, &:hover, &$active":{boxShadow:"inherit"}},".MuiSlider-valueLabel":{left:"calc(-50% + 4px)"},".MuiSlider-track":{height:8,borderRadius:4},".MuiSlider-rail":{height:8,borderRadius:4}}),t.sx)})}function ka(){const{info:{routing:t},api:r}=Q(),{t:n,locale:i}=M(),[a,l]=h.useState(!1),o=t.requestLimit||{};typeof o.enabled!="boolean"&&(o.enabled=!1),typeof o.rate!="number"&&(o.rate=A.GATEWAY_RATE_LIMIT.min),typeof o.global!="number"&&(o.global=A.GATEWAY_RATE_LIMIT_GLOBAL.min),typeof o.burstFactor!="number"&&(o.burstFactor=2),typeof o.burstDelay!="number"&&(o.burstDelay=0),Array.isArray(o.methods)||(o.methods=A.GATEWAY_RATE_LIMIT_METHODS);const s=t.blockPolicy||{};typeof s.enabled!="boolean"&&(s.enabled=!1),s.blacklist||(s.blacklist=[]),s.autoBlocking?Array.isArray(s.autoBlocking.statusCodes)||(s.autoBlocking.statusCodes=s.autoBlocking.statusCodes?[s.autoBlocking.statusCodes]:[403]):s.autoBlocking={enabled:!1,windowSize:1,windowQuota:5,statusCodes:[403,429],blockDuration:3600};const d=t.proxyPolicy||{};typeof d.enabled!="boolean"&&(d.enabled=!1),typeof d.trustRecursive!="boolean"&&(d.trustRecursive=!1),d.trustedProxies||(d.trustedProxies=["0.0.0.0/0"]),d.realIpHeader||(d.realIpHeader="X-Forwarded-For");const m=t.wafPolicy||{};typeof m.enabled!="boolean"&&(m.enabled=!1),m.mode||(m.mode="DetectionOnly"),m.inboundAnomalyScoreThreshold||(m.inboundAnomalyScoreThreshold=20),m.outboundAnomalyScoreThreshold||(m.outboundAnomalyScoreThreshold=10),m.logLevel||(m.logLevel=0);const{handleSubmit:c,control:u,watch:j}=Vt({defaultValues:{requestLimit:o,blockPolicy:s,proxyPolicy:d,cacheEnabled:typeof t.cacheEnabled=="boolean"?t.cacheEnabled:!0,wafPolicy:m}}),b=j("requestLimit.enabled"),x=j("requestLimit.rate"),S=j("requestLimit.global"),y=j("requestLimit.burstFactor"),k=j("requestLimit.burstDelay"),D=j("blockPolicy.enabled"),T=j("blockPolicy.autoBlocking.enabled"),w=j("proxyPolicy.enabled"),R=j("proxyPolicy.trustRecursive"),E=j("wafPolicy.enabled"),P=async g=>{try{l(!0);const{blacklist:p}=g.blockPolicy;p.forEach(C=>{if(!Ze.v4(C)&&!Je.v4(C)&&!nr(C)&&!Ze.v6(C)&&!Je.v6(C))throw new Error(n("router.gateway.blockPolicy.invalidItem"))});const{trustedProxies:v}=g.proxyPolicy;v.forEach(C=>{if(!Ze.v4(C)&&!Je.v4(C)&&!Ze.v6(C)&&!Je.v6(C))throw new Error(n("router.gateway.proxyPolicy.invalidItem"))}),await r.updateGateway({input:g}),await Xn(1e3),te.success(n("common.saveSuccess"))}catch(p){te.error(pe(p))}finally{l(!1)}};return e.jsx(Da,{children:e.jsx(ie,{permission:"mutate_node",children:g=>e.jsxs(Qt,{className:"form",noValidate:!0,autoComplete:"off",onSubmit:c(P),children:[e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.cacheEnabled.title")}),e.jsx(B,{name:"cacheEnabled",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(se,{checked:p,disabled:!g,onChange:C=>v(C.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.cacheEnabled.switchLabel")}),labelPlacement:"end"}})})]}),e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.reqLimit.title")}),e.jsxs(me,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(B,{name:"requestLimit.enabled",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(se,{checked:p,disabled:!g,onChange:C=>v(C.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.reqLimit.switchLabel")}),labelPlacement:"end"}})}),b&&e.jsxs(e.Fragment,{children:[e.jsxs(W,{children:[e.jsx(ee,{id:"request-limit-global-desc",children:n("router.gateway.reqLimit.global",{global:S})}),e.jsx(B,{name:"requestLimit.global",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(xe,{disabled:!g,onChange:(C,F)=>v(F),defaultValue:p,valueLabelDisplay:"auto",step:10,min:A.GATEWAY_RATE_LIMIT_GLOBAL.min,max:A.GATEWAY_RATE_LIMIT_GLOBAL.max})})]}),e.jsxs(W,{className:"form-item",sx:{width:"100%"},children:[e.jsx(ee,{id:"request-limit-burst-factor-desc",children:n("router.gateway.reqLimit.burstFactor",{rate:Math.round(x*y),global:Math.round(S*y)})}),e.jsx(B,{name:"requestLimit.burstFactor",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(xe,{disabled:!g,onChange:(C,F)=>v(F),defaultValue:p,valueLabelDisplay:"auto",step:.1,min:A.GATEWAY_RATE_LIMIT_BURST_FACTOR.min,max:A.GATEWAY_RATE_LIMIT_BURST_FACTOR.max})})]}),e.jsxs(W,{className:"form-item",sx:{width:"100%"},children:[e.jsx(ee,{id:"request-limit-burst-delay-desc",children:n("router.gateway.reqLimit.burstDelay",{delay:k})}),e.jsx(B,{name:"requestLimit.burstDelay",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(xe,{disabled:!g,onChange:(C,F)=>v(F),defaultValue:p,valueLabelDisplay:"auto",step:1,min:0,max:60})})]}),e.jsxs(W,{className:"form-item",sx:{width:"100%"},children:[e.jsx(ee,{id:"request-limit-rate-desc",children:n("router.gateway.reqLimit.rate",{rate:x})}),e.jsx(B,{name:"requestLimit.rate",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(xe,{disabled:!g,onChange:(C,F)=>v(F),defaultValue:p,valueLabelDisplay:"auto",step:1,min:A.GATEWAY_RATE_LIMIT.min,max:A.GATEWAY_RATE_LIMIT.max})})]}),e.jsxs(W,{className:"form-item",sx:{width:"100%"},children:[e.jsx(ee,{id:"request-limit-methods-desc",children:n("router.gateway.reqLimit.methods")}),e.jsx(B,{name:"requestLimit.methods",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(pi,{row:!0,children:A.GATEWAY_RATE_LIMIT_METHODS.map(C=>e.jsx(Oe,{control:e.jsx(er,{disabled:!g,checked:p.includes(C),onChange:F=>{F.target.checked?v([...p,C]):v(p.filter($=>$!==C))}}),label:C},C))})})]})]})]})]}),e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.blockPolicy.title")}),e.jsxs(me,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(B,{name:"blockPolicy.enabled",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(se,{checked:p,disabled:!g,onChange:C=>v(C.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.blockPolicy.switchLabel")}),labelPlacement:"end"}})}),D&&e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"blockPolicy.blacklist",control:u,render:({field:{value:p,onChange:v}})=>{const C=()=>{v([...p||[],""])},F=O=>{const _=[...p];_.splice(O,1),v(_)},$=(O,_)=>{const X=[...p];X[O]=_,v(X)};return e.jsxs("div",{style:{width:"100%"},children:[e.jsx(ee,{children:n("router.gateway.blockPolicy.blacklistDesc")}),(p||[]).map((O,_)=>e.jsx("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"},children:e.jsx(H,{variant:"outlined",size:"small",disabled:a||!g,style:{flex:1},value:O,onChange:X=>$(_,X.target.value),placeholder:n("router.gateway.blockPolicy.inputPlaceholder"),slotProps:{input:{endAdornment:e.jsx(It,{disabled:a||!g,onClick:()=>F(_),size:"small",color:"error",children:e.jsx(ve,{})})}}})},`blacklist-item-${_}`)),e.jsx(Z,{disabled:a||!g,onClick:C,color:"primary",size:"small",variant:"outlined",startIcon:e.jsx(Fe,{}),children:n("router.gateway.blockPolicy.addItem")})]})}}),e.jsx(B,{name:"blockPolicy.autoBlocking.enabled",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(se,{checked:p,disabled:!g,onChange:C=>v(C.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.blockPolicy.autoBlocking.switchLabel")}),labelPlacement:"end"}})}),T&&e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"blockPolicy.autoBlocking.statusCodes",control:u,render:({field:{value:p,onChange:v}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"block-policy-auto-blocking-status-codes-desc",children:n("router.gateway.blockPolicy.autoBlocking.statusCodes")}),e.jsxs(xn,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!g,multiple:!0,value:p,onChange:v,children:[e.jsx(V,{value:400,children:"400 Bad Request"}),e.jsx(V,{value:401,children:"401 Unauthorized"}),e.jsx(V,{value:403,children:"403 Forbidden (WAF)"}),e.jsx(V,{value:404,children:"404 Not Found"}),e.jsx(V,{value:429,children:"429 Too Many Requests"}),e.jsx(V,{value:405,children:"405 Method Not Allowed"})]})]})}),e.jsx(B,{name:"blockPolicy.autoBlocking.windowSize",control:u,render:({field:{value:p,onChange:v}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"block-policy-auto-blocking-window-size-desc",children:n("router.gateway.blockPolicy.autoBlocking.windowSize")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!g,value:p,onChange:v,slotProps:{input:{endAdornment:e.jsxs(L,{variant:"body2",children:[yn(Number(p*1e3),{locale:bn(i),long:!0})," "]})}}})]})}),e.jsx(B,{name:"blockPolicy.autoBlocking.windowQuota",control:u,render:({field:{value:p,onChange:v}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"block-policy-auto-blocking-window-quota-desc",children:n("router.gateway.blockPolicy.autoBlocking.windowQuota")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!g,value:p,onChange:v})]})}),e.jsx(B,{name:"blockPolicy.autoBlocking.blockDuration",control:u,render:({field:{value:p,onChange:v}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"block-policy-auto-blocking-block-duration-desc",children:n("router.gateway.blockPolicy.autoBlocking.blockDuration")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!g,value:p,onChange:v,slotProps:{input:{endAdornment:e.jsx(L,{variant:"body2",children:yn(Number(p*1e3),{locale:bn(i),long:!0})})}}})]})})]})]})]})]}),e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.proxyPolicy.title")}),e.jsxs(me,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(B,{name:"proxyPolicy.enabled",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(se,{checked:p,disabled:!g,onChange:C=>v(C.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.proxyPolicy.switchLabel")}),labelPlacement:"end"}})}),w&&e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"proxyPolicy.realIpHeader",control:u,render:({field:{value:p,onChange:v}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"proxy-policy-real-ip-header-desc",children:n("router.gateway.proxyPolicy.realIpHeaderDesc")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!g,value:p,onChange:v})]})}),e.jsx(B,{name:"proxyPolicy.trustRecursive",control:u,render:({field:{value:p,onChange:v}})=>e.jsxs(W,{sx:{mt:2},children:[e.jsx(ee,{id:"proxy-policy-real-ip-header-desc",children:n("router.gateway.proxyPolicy.trustRecursiveDesc")}),e.jsx(se,{checked:p,disabled:!g,onChange:C=>v(C.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.proxyPolicy.trustRecursive")}),labelPlacement:"end"}})]})}),R&&e.jsx(B,{name:"proxyPolicy.trustedProxies",control:u,render:({field:{value:p,onChange:v}})=>{const C=()=>{v([...p||[],""])},F=O=>{const _=[...p];_.splice(O,1),v(_)},$=(O,_)=>{const X=[...p];X[O]=_,v(X)};return e.jsxs(W,{sx:{width:"100%",mt:2},children:[e.jsx(ee,{children:n("router.gateway.proxyPolicy.trustedProxiesDesc")}),(p||[]).map((O,_)=>e.jsx("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"},children:e.jsx(H,{variant:"outlined",size:"small",disabled:a||!g,style:{flex:1},value:O,onChange:X=>$(_,X.target.value),placeholder:n("router.gateway.proxyPolicy.inputPlaceholder"),slotProps:{input:{endAdornment:e.jsx(It,{disabled:a||!g,onClick:()=>F(_),size:"small",color:"error",children:e.jsx(ve,{})})}}})},`trusted-proxy-item-${_}`)),e.jsx(Z,{disabled:a||!g,onClick:C,color:"primary",size:"small",variant:"outlined",startIcon:e.jsx(Fe,{}),children:n("router.gateway.proxyPolicy.addItem")})]})}})]})]})]}),e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.wafPolicy.title")}),e.jsxs(me,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(B,{name:"wafPolicy.enabled",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(se,{checked:p,disabled:!g,onChange:C=>v(C.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.wafPolicy.switchLabel")}),labelPlacement:"end"}})}),E&&e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"wafPolicy.mode",control:u,render:({field:{value:p,onChange:v}})=>e.jsxs(W,{children:[e.jsxs(ee,{id:"waf-policy-mode-desc",children:[n("router.gateway.wafPolicy.modeDesc")," ",e.jsx(Kt,{href:`https://www.arcblock.io/docs/blocklet-developer/${i}/enable-web-application-firewall`,target:"_blank",children:n("router.gateway.wafPolicy.docDesc")})]}),e.jsxs(xn,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!g,value:p,onChange:v,children:[e.jsx(V,{value:"DetectionOnly",children:n("router.gateway.wafPolicy.mode.detectOnly")}),e.jsx(V,{value:"On",children:n("router.gateway.wafPolicy.mode.on")})]})]})}),e.jsxs(W,{children:[e.jsx(ee,{id:"waf-policy-inbound-anomaly-score-threshold-desc",children:n("router.gateway.wafPolicy.inboundAnomalyScoreThresholdDesc")}),e.jsx(B,{name:"wafPolicy.inboundAnomalyScoreThreshold",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(xe,{disabled:!g,onChange:(C,F)=>v(F),defaultValue:p,valueLabelDisplay:"auto",step:1,min:1,max:100})})]}),e.jsxs(W,{children:[e.jsx(ee,{id:"waf-policy-outbound-anomaly-score-threshold-desc",children:n("router.gateway.wafPolicy.outboundAnomalyScoreThresholdDesc")}),e.jsx(B,{name:"wafPolicy.outboundAnomalyScoreThreshold",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(xe,{disabled:!g,onChange:(C,F)=>v(F),defaultValue:p,valueLabelDisplay:"auto",step:1,min:1,max:100})})]}),e.jsxs(W,{children:[e.jsx(ee,{id:"waf-policy-log-level-desc",children:n("router.gateway.wafPolicy.logLevelDesc")}),e.jsx(B,{name:"wafPolicy.logLevel",control:u,render:({field:{value:p,onChange:v}})=>e.jsx(xe,{disabled:!g,onChange:(C,F)=>v(F),defaultValue:p,valueLabelDisplay:"auto",step:1,min:0,max:9})})]})]})]})]}),e.jsx("div",{className:"form-actions",children:g&&e.jsxs(Z,{disabled:a,onClick:c(P),color:"primary",variant:"contained","data-cy":"submit-btn",className:"form-submit",children:[n("common.save")," ",a&&e.jsx(K,{size:16})]})})]})})})}const Da=re.div`
299
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),l=new RegExp(`(?:^${n}$)|(?:^${a}$)`),o=new RegExp(`^${n}$`),s=new RegExp(`^${a}$`),d=m=>m&&m.exact?l:new RegExp(`(?:${r(m)}${n}${r(m)})|(?:${r(m)}${a}${r(m)})`,"g");return d.v4=m=>m&&m.exact?o:new RegExp(`${r(m)}${n}${r(m)}`,"g"),d.v6=m=>m&&m.exact?s:new RegExp(`${r(m)}${a}${r(m)}`,"g"),Pt=d,Pt}var At,Gn;function va(){if(Gn)return At;Gn=1;const t=Nr(),r=n=>t({exact:!0}).test(n);return r.v4=n=>t.v4({exact:!0}).test(n),r.v6=n=>t.v6({exact:!0}).test(n),r.version=n=>r(n)?r.v4(n)?4:6:void 0,At=r,At}var ja=va();const Ze=Yt(ja);var Pe={exports:{}},Ae={exports:{}},Kn;function wa(){if(Kn)return Ae.exports;Kn=1;const t=Nr(),r={exact:!1},n=`${t.v4().source}\\/(3[0-2]|[12]?[0-9])`,i=`${t.v6().source}\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])`,a=new RegExp(`^${n}$`),l=new RegExp(`^${i}$`),o=new RegExp(`(?:^${n}$)|(?:^${i}$)`);return Ae.exports=({exact:s}=r)=>s?o:new RegExp(`(?:${n})|(?:${i})`,"g"),Ae.exports.v4=({exact:s}=r)=>s?a:new RegExp(n,"g"),Ae.exports.v6=({exact:s}=r)=>s?l:new RegExp(i,"g"),Ae.exports}var Yn;function Ca(){if(Yn)return Pe.exports;Yn=1;const{v4:t,v6:r}=wa(),n=t({exact:!0}),i=r({exact:!0});return Pe.exports=a=>n.test(a)?4:i.test(a)?6:0,Pe.exports.v4=a=>n.test(a),Pe.exports.v6=a=>i.test(a),Pe.exports}var Sa=Ca();const Je=Yt(Sa);function xe(t){return e.jsx(Ai,{...t,sx:gi(r=>({".MuiSlider-root":{color:r.palette.primary.main,height:8,marginLeft:8},".MuiSlider-thumb":{height:24,width:24,backgroundColor:"#fff",border:"2px solid currentColor","&:focus, &:hover, &$active":{boxShadow:"inherit"}},".MuiSlider-valueLabel":{left:"calc(-50% + 4px)"},".MuiSlider-track":{height:8,borderRadius:4},".MuiSlider-rail":{height:8,borderRadius:4}}),t.sx)})}function ka(){const{info:{routing:t},api:r}=Q(),{t:n,locale:i}=M(),[a,l]=g.useState(!1),o=t.requestLimit||{};typeof o.enabled!="boolean"&&(o.enabled=!1),typeof o.rate!="number"&&(o.rate=E.GATEWAY_RATE_LIMIT.min),typeof o.global!="number"&&(o.global=E.GATEWAY_RATE_LIMIT_GLOBAL.min),typeof o.burstFactor!="number"&&(o.burstFactor=2),typeof o.burstDelay!="number"&&(o.burstDelay=0),Array.isArray(o.methods)||(o.methods=E.GATEWAY_RATE_LIMIT_METHODS);const s=t.blockPolicy||{};typeof s.enabled!="boolean"&&(s.enabled=!1),s.blacklist||(s.blacklist=[]),s.autoBlocking?Array.isArray(s.autoBlocking.statusCodes)||(s.autoBlocking.statusCodes=s.autoBlocking.statusCodes?[s.autoBlocking.statusCodes]:[403]):s.autoBlocking={enabled:!1,windowSize:1,windowQuota:5,statusCodes:[403,429],blockDuration:3600};const d=t.proxyPolicy||{};typeof d.enabled!="boolean"&&(d.enabled=!1),typeof d.trustRecursive!="boolean"&&(d.trustRecursive=!1),d.trustedProxies||(d.trustedProxies=["0.0.0.0/0"]),d.realIpHeader||(d.realIpHeader="X-Forwarded-For");const m=t.wafPolicy||{};typeof m.enabled!="boolean"&&(m.enabled=!1),m.mode||(m.mode="DetectionOnly"),m.inboundAnomalyScoreThreshold||(m.inboundAnomalyScoreThreshold=20),m.outboundAnomalyScoreThreshold||(m.outboundAnomalyScoreThreshold=10),m.logLevel||(m.logLevel=0);const{handleSubmit:c,control:u,watch:j}=Vt({defaultValues:{requestLimit:o,blockPolicy:s,proxyPolicy:d,cacheEnabled:typeof t.cacheEnabled=="boolean"?t.cacheEnabled:!0,wafPolicy:m}}),v=j("requestLimit.enabled"),h=j("requestLimit.rate"),S=j("requestLimit.global"),b=j("requestLimit.burstFactor"),k=j("requestLimit.burstDelay"),D=j("blockPolicy.enabled"),C=j("blockPolicy.autoBlocking.enabled"),T=j("proxyPolicy.enabled"),R=j("proxyPolicy.trustRecursive"),y=j("wafPolicy.enabled"),P=async x=>{try{l(!0);const{blacklist:p}=x.blockPolicy;p.forEach(A=>{if(!Ze.v4(A)&&!Je.v4(A)&&!nr(A)&&!Ze.v6(A)&&!Je.v6(A))throw new Error(n("router.gateway.blockPolicy.invalidItem"))});const{trustedProxies:w}=x.proxyPolicy;w.forEach(A=>{if(!Ze.v4(A)&&!Je.v4(A)&&!Ze.v6(A)&&!Je.v6(A))throw new Error(n("router.gateway.proxyPolicy.invalidItem"))}),await r.updateGateway({input:x}),await Xn(1e3),te.success(n("common.saveSuccess"))}catch(p){te.error(pe(p))}finally{l(!1)}};return e.jsx(Da,{children:e.jsx(ie,{permission:"mutate_node",children:x=>e.jsxs(Qt,{className:"form",noValidate:!0,autoComplete:"off",onSubmit:c(P),children:[e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.cacheEnabled.title")}),e.jsx(B,{name:"cacheEnabled",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(se,{checked:p,disabled:!x,onChange:A=>w(A.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.cacheEnabled.switchLabel")}),labelPlacement:"end"}})})]}),e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.reqLimit.title")}),e.jsxs(me,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(B,{name:"requestLimit.enabled",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(se,{checked:p,disabled:!x,onChange:A=>w(A.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.reqLimit.switchLabel")}),labelPlacement:"end"}})}),v&&e.jsxs(e.Fragment,{children:[e.jsxs(W,{children:[e.jsx(ee,{id:"request-limit-global-desc",children:n("router.gateway.reqLimit.global",{global:S})}),e.jsx(B,{name:"requestLimit.global",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(xe,{disabled:!x,onChange:(A,N)=>w(N),defaultValue:p,valueLabelDisplay:"auto",step:10,min:E.GATEWAY_RATE_LIMIT_GLOBAL.min,max:E.GATEWAY_RATE_LIMIT_GLOBAL.max})})]}),e.jsxs(W,{className:"form-item",sx:{width:"100%"},children:[e.jsx(ee,{id:"request-limit-burst-factor-desc",children:n("router.gateway.reqLimit.burstFactor",{rate:Math.round(h*b),global:Math.round(S*b)})}),e.jsx(B,{name:"requestLimit.burstFactor",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(xe,{disabled:!x,onChange:(A,N)=>w(N),defaultValue:p,valueLabelDisplay:"auto",step:.1,min:E.GATEWAY_RATE_LIMIT_BURST_FACTOR.min,max:E.GATEWAY_RATE_LIMIT_BURST_FACTOR.max})})]}),e.jsxs(W,{className:"form-item",sx:{width:"100%"},children:[e.jsx(ee,{id:"request-limit-burst-delay-desc",children:n("router.gateway.reqLimit.burstDelay",{delay:k})}),e.jsx(B,{name:"requestLimit.burstDelay",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(xe,{disabled:!x,onChange:(A,N)=>w(N),defaultValue:p,valueLabelDisplay:"auto",step:1,min:0,max:60})})]}),e.jsxs(W,{className:"form-item",sx:{width:"100%"},children:[e.jsx(ee,{id:"request-limit-rate-desc",children:n("router.gateway.reqLimit.rate",{rate:h})}),e.jsx(B,{name:"requestLimit.rate",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(xe,{disabled:!x,onChange:(A,N)=>w(N),defaultValue:p,valueLabelDisplay:"auto",step:1,min:E.GATEWAY_RATE_LIMIT.min,max:E.GATEWAY_RATE_LIMIT.max})})]}),e.jsxs(W,{className:"form-item",sx:{width:"100%"},children:[e.jsx(ee,{id:"request-limit-methods-desc",children:n("router.gateway.reqLimit.methods")}),e.jsx(B,{name:"requestLimit.methods",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(pi,{row:!0,children:E.GATEWAY_RATE_LIMIT_METHODS.map(A=>e.jsx(Fe,{control:e.jsx(er,{disabled:!x,checked:p.includes(A),onChange:N=>{N.target.checked?w([...p,A]):w(p.filter($=>$!==A))}}),label:A},A))})})]})]})]})]}),e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.blockPolicy.title")}),e.jsxs(me,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(B,{name:"blockPolicy.enabled",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(se,{checked:p,disabled:!x,onChange:A=>w(A.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.blockPolicy.switchLabel")}),labelPlacement:"end"}})}),D&&e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"blockPolicy.blacklist",control:u,render:({field:{value:p,onChange:w}})=>{const A=()=>{w([...p||[],""])},N=F=>{const _=[...p];_.splice(F,1),w(_)},$=(F,_)=>{const X=[...p];X[F]=_,w(X)};return e.jsxs("div",{style:{width:"100%"},children:[e.jsx(ee,{children:n("router.gateway.blockPolicy.blacklistDesc")}),(p||[]).map((F,_)=>e.jsx("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"},children:e.jsx(H,{variant:"outlined",size:"small",disabled:a||!x,style:{flex:1},value:F,onChange:X=>$(_,X.target.value),placeholder:n("router.gateway.blockPolicy.inputPlaceholder"),slotProps:{input:{endAdornment:e.jsx(It,{disabled:a||!x,onClick:()=>N(_),size:"small",color:"error",children:e.jsx(ve,{})})}}})},`blacklist-item-${_}`)),e.jsx(Z,{disabled:a||!x,onClick:A,color:"primary",size:"small",variant:"outlined",startIcon:e.jsx(Oe,{}),children:n("router.gateway.blockPolicy.addItem")})]})}}),e.jsx(B,{name:"blockPolicy.autoBlocking.enabled",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(se,{checked:p,disabled:!x,onChange:A=>w(A.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.blockPolicy.autoBlocking.switchLabel")}),labelPlacement:"end"}})}),C&&e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"blockPolicy.autoBlocking.statusCodes",control:u,render:({field:{value:p,onChange:w}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"block-policy-auto-blocking-status-codes-desc",children:n("router.gateway.blockPolicy.autoBlocking.statusCodes")}),e.jsxs(xn,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!x,multiple:!0,value:p,onChange:w,children:[e.jsx(V,{value:400,children:"400 Bad Request"}),e.jsx(V,{value:401,children:"401 Unauthorized"}),e.jsx(V,{value:403,children:"403 Forbidden (WAF)"}),e.jsx(V,{value:404,children:"404 Not Found"}),e.jsx(V,{value:429,children:"429 Too Many Requests"}),e.jsx(V,{value:405,children:"405 Method Not Allowed"})]})]})}),e.jsx(B,{name:"blockPolicy.autoBlocking.windowSize",control:u,render:({field:{value:p,onChange:w}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"block-policy-auto-blocking-window-size-desc",children:n("router.gateway.blockPolicy.autoBlocking.windowSize")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!x,value:p,onChange:w,slotProps:{input:{endAdornment:e.jsxs(L,{variant:"body2",children:[yn(Number(p*1e3),{locale:bn(i),long:!0})," "]})}}})]})}),e.jsx(B,{name:"blockPolicy.autoBlocking.windowQuota",control:u,render:({field:{value:p,onChange:w}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"block-policy-auto-blocking-window-quota-desc",children:n("router.gateway.blockPolicy.autoBlocking.windowQuota")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!x,value:p,onChange:w})]})}),e.jsx(B,{name:"blockPolicy.autoBlocking.blockDuration",control:u,render:({field:{value:p,onChange:w}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"block-policy-auto-blocking-block-duration-desc",children:n("router.gateway.blockPolicy.autoBlocking.blockDuration")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!x,value:p,onChange:w,slotProps:{input:{endAdornment:e.jsx(L,{variant:"body2",children:yn(Number(p*1e3),{locale:bn(i),long:!0})})}}})]})})]})]})]})]}),e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.proxyPolicy.title")}),e.jsxs(me,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(B,{name:"proxyPolicy.enabled",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(se,{checked:p,disabled:!x,onChange:A=>w(A.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.proxyPolicy.switchLabel")}),labelPlacement:"end"}})}),T&&e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"proxyPolicy.realIpHeader",control:u,render:({field:{value:p,onChange:w}})=>e.jsxs(W,{children:[e.jsx(ee,{id:"proxy-policy-real-ip-header-desc",children:n("router.gateway.proxyPolicy.realIpHeaderDesc")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!x,value:p,onChange:w})]})}),e.jsx(B,{name:"proxyPolicy.trustRecursive",control:u,render:({field:{value:p,onChange:w}})=>e.jsxs(W,{sx:{mt:2},children:[e.jsx(ee,{id:"proxy-policy-real-ip-header-desc",children:n("router.gateway.proxyPolicy.trustRecursiveDesc")}),e.jsx(se,{checked:p,disabled:!x,onChange:A=>w(A.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.proxyPolicy.trustRecursive")}),labelPlacement:"end"}})]})}),R&&e.jsx(B,{name:"proxyPolicy.trustedProxies",control:u,render:({field:{value:p,onChange:w}})=>{const A=()=>{w([...p||[],""])},N=F=>{const _=[...p];_.splice(F,1),w(_)},$=(F,_)=>{const X=[...p];X[F]=_,w(X)};return e.jsxs(W,{sx:{width:"100%",mt:2},children:[e.jsx(ee,{children:n("router.gateway.proxyPolicy.trustedProxiesDesc")}),(p||[]).map((F,_)=>e.jsx("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"},children:e.jsx(H,{variant:"outlined",size:"small",disabled:a||!x,style:{flex:1},value:F,onChange:X=>$(_,X.target.value),placeholder:n("router.gateway.proxyPolicy.inputPlaceholder"),slotProps:{input:{endAdornment:e.jsx(It,{disabled:a||!x,onClick:()=>N(_),size:"small",color:"error",children:e.jsx(ve,{})})}}})},`trusted-proxy-item-${_}`)),e.jsx(Z,{disabled:a||!x,onClick:A,color:"primary",size:"small",variant:"outlined",startIcon:e.jsx(Oe,{}),children:n("router.gateway.proxyPolicy.addItem")})]})}})]})]})]}),e.jsxs(me,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(L,{className:"gateway-section-title",children:n("router.gateway.wafPolicy.title")}),e.jsxs(me,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(B,{name:"wafPolicy.enabled",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(se,{checked:p,disabled:!x,onChange:A=>w(A.target.checked),labelProps:{label:e.jsx(L,{children:n("router.gateway.wafPolicy.switchLabel")}),labelPlacement:"end"}})}),y&&e.jsxs(e.Fragment,{children:[e.jsx(B,{name:"wafPolicy.mode",control:u,render:({field:{value:p,onChange:w}})=>e.jsxs(W,{children:[e.jsxs(ee,{id:"waf-policy-mode-desc",children:[n("router.gateway.wafPolicy.modeDesc")," ",e.jsx(Kt,{href:`https://www.arcblock.io/docs/blocklet-developer/${i}/enable-web-application-firewall`,target:"_blank",children:n("router.gateway.wafPolicy.docDesc")})]}),e.jsxs(xn,{variant:"outlined",fullWidth:!0,size:"small",disabled:a||!x,value:p,onChange:w,children:[e.jsx(V,{value:"DetectionOnly",children:n("router.gateway.wafPolicy.mode.detectOnly")}),e.jsx(V,{value:"On",children:n("router.gateway.wafPolicy.mode.on")})]})]})}),e.jsxs(W,{children:[e.jsx(ee,{id:"waf-policy-inbound-anomaly-score-threshold-desc",children:n("router.gateway.wafPolicy.inboundAnomalyScoreThresholdDesc")}),e.jsx(B,{name:"wafPolicy.inboundAnomalyScoreThreshold",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(xe,{disabled:!x,onChange:(A,N)=>w(N),defaultValue:p,valueLabelDisplay:"auto",step:1,min:1,max:100})})]}),e.jsxs(W,{children:[e.jsx(ee,{id:"waf-policy-outbound-anomaly-score-threshold-desc",children:n("router.gateway.wafPolicy.outboundAnomalyScoreThresholdDesc")}),e.jsx(B,{name:"wafPolicy.outboundAnomalyScoreThreshold",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(xe,{disabled:!x,onChange:(A,N)=>w(N),defaultValue:p,valueLabelDisplay:"auto",step:1,min:1,max:100})})]}),e.jsxs(W,{children:[e.jsx(ee,{id:"waf-policy-log-level-desc",children:n("router.gateway.wafPolicy.logLevelDesc")}),e.jsx(B,{name:"wafPolicy.logLevel",control:u,render:({field:{value:p,onChange:w}})=>e.jsx(xe,{disabled:!x,onChange:(A,N)=>w(N),defaultValue:p,valueLabelDisplay:"auto",step:1,min:0,max:9})})]})]})]})]}),e.jsx("div",{className:"form-actions",children:x&&e.jsxs(Z,{disabled:a,onClick:c(P),color:"primary",variant:"contained","data-cy":"submit-btn",className:"form-submit",children:[n("common.save")," ",a&&e.jsx(K,{size:16})]})})]})})})}const Da=re.div`
300
300
  display: flex;
301
301
  align-items: flex-start;
302
302
  width: 100%;
@@ -315,7 +315,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
315
315
  flex-grow: 1;
316
316
  }
317
317
  }
318
- `;function ps(){const t=Qn(),{node:r}=h.useContext(hi),{t:n}=h.useContext(mt),{tab:i="basic"}=xi(),a=m=>{t(`/settings/${m}`)},l=[{label:n("common.basic"),value:"basic"},{label:n("router.routerSetting"),value:"router"},{label:n("router.certSetting"),value:"cert"},{label:n("common.gateway"),value:"gateway"},{label:n("common.webhook"),value:"integration"},{label:n("common.about"),value:"about"}],o=yi(l.find(m=>m.value===i),n("common.setting")),s={basic:eo,integration:no,about:po,router:e.jsx(Sn,{children:e.jsx(Co,{})}),gateway:ka,cert:e.jsx(Sn,{children:e.jsx(ya,{})})},d=s[i]||s.basic;return e.jsxs(Ra,{children:[o,e.jsx(L,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:n("common.setting")}),e.jsxs(e.Fragment,{children:[e.jsx(bi,{tabs:l,current:i,onChange:a,scrollButtons:"auto"}),e.jsx("div",{className:"page-content",children:h.isValidElement(d)?d:e.jsx(d,{node:r})})]})]})}const Ra=re.main`
318
+ `;function ps(){const t=Qn(),{node:r}=g.useContext(hi),{t:n}=g.useContext(mt),{tab:i="basic"}=xi(),a=m=>{t(`/settings/${m}`)},l=[{label:n("common.basic"),value:"basic"},{label:n("router.routerSetting"),value:"router"},{label:n("router.certSetting"),value:"cert"},{label:n("common.gateway"),value:"gateway"},{label:n("common.webhook"),value:"integration"},{label:n("common.about"),value:"about"}],o=yi(l.find(m=>m.value===i),n("common.setting")),s={basic:eo,integration:no,about:po,router:e.jsx(Sn,{children:e.jsx(Co,{})}),gateway:ka,cert:e.jsx(Sn,{children:e.jsx(ya,{})})},d=s[i]||s.basic;return e.jsxs(Ta,{children:[o,e.jsx(L,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:n("common.setting")}),e.jsxs(e.Fragment,{children:[e.jsx(bi,{tabs:l,current:i,onChange:a,scrollButtons:"auto"}),e.jsx("div",{className:"page-content",children:g.isValidElement(d)?d:e.jsx(d,{node:r})})]})]})}const Ta=re.main`
319
319
  .page-header {
320
320
  display: flex;
321
321
  justify-content: space-between;