@abtnode/webapp 1.16.27 → 1.16.28-beta-bfbab430
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.
- package/blocklet.js +1 -1
- package/blocklet.yml +1 -1
- package/dist/assets/{Add-DOwN6I9N.js → Add-DEou6OQu.js} +1 -1
- package/dist/assets/{ArrowDropDown-CEsdzzcK.js → ArrowDropDown-B8q6yJii.js} +1 -1
- package/dist/assets/{Autocomplete-DcC19-q2.js → Autocomplete-CxHBaO5x.js} +1 -1
- package/dist/assets/Breadcrumbs--9MrOMZw.js +1 -0
- package/dist/assets/{ButtonGroup-CKY0O7tT.js → ButtonGroup-BbRXyWVe.js} +1 -1
- package/dist/assets/{CheckCircle-BA-bGNdF.js → CheckCircle-D6vwJd9K.js} +1 -1
- package/dist/assets/{ChevronLeft-DRzRLgnp.js → ChevronLeft-Bc2acyen.js} +1 -1
- package/dist/assets/{ChevronRight-B2YICLYm.js → ChevronRight-Bcko4z80.js} +1 -1
- package/dist/assets/{Close-D9SKZkJ7.js → Close-DGnER_ve.js} +1 -1
- package/dist/assets/Delete-BGOcGa_D.js +1 -0
- package/dist/assets/DeleteOutline-C7JmRduW.js +1 -0
- package/dist/assets/{Done-DaMxTX7e.js → Done-CydSjSOx.js} +1 -1
- package/dist/assets/{Edit-B1ySEana.js → Edit-B0yxTPMe.js} +1 -1
- package/dist/assets/{EditIcon-BQGlXOR3.js → EditIcon-CF5y6ttj.js} +1 -1
- package/dist/assets/{FilterList-DKFhXHd2.js → FilterList-RGEuYf_e.js} +5 -5
- package/dist/assets/{Google-D2cPndsH.js → Google-CuSS9iHp.js} +4 -4
- package/dist/assets/{Https-CsiKqkaT.js → Https-B3P9JJiw.js} +1 -1
- package/dist/assets/{InfoOutlined-BUn5fKCT.js → InfoOutlined-B4lqtuRU.js} +1 -1
- package/dist/assets/{InputAdornment-DHLm1mFN.js → InputAdornment-BzCm_2kz.js} +1 -1
- package/dist/assets/{InputLabel-BjbeXM2B.js → InputLabel-CdW9MyDY.js} +1 -1
- package/dist/assets/{LastPage-DXu9ZGZF.js → LastPage-dDlMsztV.js} +1 -1
- package/dist/assets/{Launch-BIqLZtET.js → Launch-Dhs9Q_70.js} +1 -1
- package/dist/assets/{Link-DN_Lz3rV.js → Link-DSNZ4PNo.js} +1 -1
- package/dist/assets/{LoadingButton-3UN68oPJ.js → LoadingButton-DrVP9tt_.js} +1 -1
- package/dist/assets/{LockIcon-mC00ojRt.js → LockIcon-BMilDbx1.js} +1 -1
- package/dist/assets/{Loop-2BGd9rzF.js → Loop-CAxjNyCL.js} +1 -1
- package/dist/assets/{MoreVert-BCR8irtL.js → MoreVert-BL42DjcZ.js} +1 -1
- package/dist/assets/{Pagination-0NPBd4bk.js → Pagination-DWKt9t_F.js} +1 -1
- package/dist/assets/{Public-333jCEeA.js → Public-BobH8eAT.js} +1 -1
- package/dist/assets/{SchemaReference.es-oKwgj6eC.js → SchemaReference.es-MUfmufV5.js} +1 -1
- package/dist/assets/{Search-5iZBDNjz.js → Search-J7ilvWof.js} +1 -1
- package/dist/assets/{Select-CPvSg7uW.js → Select-DJl6HmRs.js} +2 -2
- package/dist/assets/{Skeleton-B4-1c0OT.js → Skeleton-CSyuj2cV.js} +4 -4
- package/dist/assets/{Slider-DdynydW3.js → Slider-DRCfqhU1.js} +1 -1
- package/dist/assets/{Stepper-DpooXZzV.js → Stepper-C2a4PQ3_.js} +1 -1
- package/dist/assets/{TextField-sj2mcEXD.js → TextField-BD0it3d0.js} +1 -1
- package/dist/assets/{ToggleButtonGroup-BKQ2fKoV.js → ToggleButtonGroup-CR3zvwUX.js} +1 -1
- package/dist/assets/{ViewList-Cul4OAvz.js → ViewList-D3pEO1Ca.js} +1 -1
- package/dist/assets/{actions-xngcxvp5.js → actions-CL-Y8Eer.js} +1 -1
- package/dist/assets/actions-Dx15LaaC.js +11 -0
- package/dist/assets/{agreement-DBRJClMM.js → agreement-Dd1yuqFa.js} +9 -9
- package/dist/assets/api-Ce74sKYG.js +1 -0
- package/dist/assets/app-avatar-rgMNqIXw.js +1 -0
- package/dist/assets/{ar-DqmJV4p8.js → ar-DXpJw3XU.js} +1 -1
- package/dist/assets/{audit-logs-BkgPztEs.js → audit-logs-CmuAN_qn.js} +1 -1
- package/dist/assets/{brace-fold.es-CsornGfx.js → brace-fold.es-psNZdrWu.js} +1 -1
- package/dist/assets/{bundle-avatar-DzcvR6DI.js → bundle-avatar-C_2wXttj.js} +1 -1
- package/dist/assets/chart-sF6tbndw.js +35 -0
- package/dist/assets/{click-to-copy-CBs5PKxt.js → click-to-copy-KBQWqGOq.js} +1 -1
- package/dist/assets/{closebrackets.es-5NAqcDxa.js → closebrackets.es-ZHCmqLUg.js} +1 -1
- package/dist/assets/{codemirror.es-CEoouqN7.js → codemirror.es-DmoQbR9T.js} +1 -1
- package/dist/assets/{comment.es-DX01jrAI.js → comment.es-B7zL23d5.js} +1 -1
- package/dist/assets/{config-navigation-Ngw7D7GZ.js → config-navigation-BN7PO-cf.js} +2 -2
- package/dist/assets/{de-CHOUObJ5.js → de-CWxlIdre.js} +1 -1
- package/dist/assets/{delete-confirm-Da1BomBl.js → delete-confirm-ztUwg2kj.js} +1 -1
- package/dist/assets/detail-CXbwmlpg.js +58 -0
- package/dist/assets/{dialog.es-Oh6qpXQO.js → dialog.es-CFWHh6H2.js} +1 -1
- package/dist/assets/{download-DHPNYF1S.js → download-bWTPRaod.js} +1 -1
- package/dist/assets/{es-aZ4oYeVs.js → es-BmrvDK07.js} +1 -1
- package/dist/assets/{foldgutter.es-DqR5-lAT.js → foldgutter.es-CqRhTHya.js} +1 -1
- package/dist/assets/{fr-Bi9vptGI.js → fr-B7SxgRy3.js} +1 -1
- package/dist/assets/getValidReactChildren-DKO9kPop.js +1 -0
- package/dist/assets/{hi-BXYjfUTP.js → hi-BRRtNIB_.js} +1 -1
- package/dist/assets/{hint.es-D5LvE1_r.js → hint.es-DK_6KY-o.js} +1 -1
- package/dist/assets/{hint.es2-CgI0iRUf.js → hint.es2-CgWo28Uj.js} +1 -1
- package/dist/assets/{id-VVXvzjmO.js → id-D6-Qi7Q1.js} +1 -1
- package/dist/assets/{iframe-BcDoraJg.js → iframe-C32DbqVc.js} +1 -1
- package/dist/assets/{index-CWilKNfl.js → index-84DtgjQO.js} +6 -6
- package/dist/assets/{index-DuwHJNV9.js → index-B0WN-XH2.js} +1 -1
- package/dist/assets/{index-Cl7gQviA.js → index-B4ZjZNN8.js} +1 -1
- package/dist/assets/{index-CsVg93BX.js → index-BA_TAXpL.js} +2 -2
- package/dist/assets/{index-CAH8ukaj.js → index-BD7uC7gm.js} +4 -4
- package/dist/assets/{index-DPGsh5ca.js → index-BET56ssY.js} +1 -1
- package/dist/assets/{index-zUZPbg2I.js → index-BNulkcXj.js} +1 -1
- package/dist/assets/{index--Q6KdM7v.js → index-BoZhSN8h.js} +1 -1
- package/dist/assets/{index-BgqVsUwi.js → index-Bzs05ai8.js} +1 -1
- package/dist/assets/index-C4aM6rsI.js +54 -0
- package/dist/assets/index-C6fuJWed.js +262 -0
- package/dist/assets/{index-DC46OSan.js → index-CE4mBIM_.js} +1 -1
- package/dist/assets/{index-4SJGeyEI.js → index-CEBXL16c.js} +1 -1
- package/dist/assets/{index-DV-pE5RI.js → index-CYGLUEkg.js} +3 -3
- package/dist/assets/index-CYZ-ZpV5.js +80 -0
- package/dist/assets/{index-B6ReOJJN.js → index-Ca7UJIsi.js} +1 -1
- package/dist/assets/{index-BXmzbebA.js → index-CfOOBUnf.js} +2 -2
- package/dist/assets/{index-C7GDLIo-.js → index-CiaQ1OoK.js} +1 -1
- package/dist/assets/{index-CtWm5SK6.js → index-Cj3s4CtX.js} +4 -4
- package/dist/assets/{index-Boqyvc8Q.js → index-CkI554oc.js} +212 -211
- package/dist/assets/{index-eGpwmK92.js → index-Clbjq5Ay.js} +3 -3
- package/dist/assets/{index-Bvs8qR9r.js → index-CsNkkebn.js} +1 -1
- package/dist/assets/{index-BwcFSka9.js → index-CwOFD6vt.js} +1 -1
- package/dist/assets/{index-DoMsU5M2.js → index-CzZF4DJ9.js} +1 -1
- package/dist/assets/{index-B-OHtxJg.js → index-D2cgpNGA.js} +57 -57
- package/dist/assets/{index-DycwPjM3.js → index-D5A34D-v.js} +1 -1
- package/dist/assets/index-D9RqTndg.js +21 -0
- package/dist/assets/index-DA4GWzzk.js +85 -0
- package/dist/assets/{index-CBdVDTUr.js → index-DG50udXf.js} +4 -4
- package/dist/assets/index-DHDAQRQS.js +11 -0
- package/dist/assets/index-DbaRhcjK.js +1 -0
- package/dist/assets/{index-BPEtPX12.js → index-Dc48oA1e.js} +7 -7
- package/dist/assets/index-DeSsBKwN.js +16 -0
- package/dist/assets/{index-Ct_q9GS4.js → index-Dlmo3B4P.js} +1 -1
- package/dist/assets/index-DoYPOJLK.js +530 -0
- package/dist/assets/{index-BCPsngBN.js → index-DuHl-QWf.js} +1 -1
- package/dist/assets/{index-opBznRc5.js → index-HMFhZkjG.js} +11 -11
- package/dist/assets/{index-_NTV4-zc.js → index-aVpXIXlo.js} +5 -5
- package/dist/assets/index-dQw_Q0Sx.js +58 -0
- package/dist/assets/{index-BCQQEHyP.js → index-lXzOGnDm.js} +11 -11
- package/dist/assets/index-lfuZxoX8.js +11 -0
- package/dist/assets/{index-DZnZf-o0.js → index-owRl0jyR.js} +16 -16
- package/dist/assets/{index-D81FDm0a.js → index-sNR67yJ2.js} +1 -1
- package/dist/assets/{index.es-C_vrKJwx.js → index.es-r9xAwx7Q.js} +1 -1
- package/dist/assets/{index.esm-Cnicyd3_.js → index.esm-BCQ0BZMT.js} +1 -1
- package/dist/assets/{info-addon.es-B0sGOwNz.js → info-addon.es-BDFdJmkW.js} +1 -1
- package/dist/assets/{info.es-x51I_2sm.js → info.es-CBadJSwW.js} +1 -1
- package/dist/assets/install-from-url-DuxahkOW.js +1 -0
- package/dist/assets/{invitation-B30vIvMt.js → invitation-CSvGVnhZ.js} +6 -6
- package/dist/assets/{isEqual-DbZp5EUk.js → isEqual-DLk5wI5o.js} +1 -1
- package/dist/assets/{item-BdJl6I8q.js → item-Bv034Zcl.js} +13 -13
- package/dist/assets/{ja-DqJiajLu.js → ja--dtwu5Xy.js} +1 -1
- package/dist/assets/{javascript.es-AOt9muQq.js → javascript.es-Bq6krn1L.js} +1 -1
- package/dist/assets/{jump-to-line.es-p4ynQoBS.js → jump-to-line.es-Cm-kakdo.js} +1 -1
- package/dist/assets/{jump.es-BrSOPKg0.js → jump.es-VEZCju5l.js} +1 -1
- package/dist/assets/{ko-DQKmtlbI.js → ko-DpRJDWhF.js} +1 -1
- package/dist/assets/{line-DdSLBn8H.js → line-VNmgswg2.js} +4 -4
- package/dist/assets/{lint.es-BMdrvXUs.js → lint.es-DhrBN362.js} +1 -1
- package/dist/assets/{lint.es2-DX4OlyGK.js → lint.es2-CWQYXYDN.js} +1 -1
- package/dist/assets/{lint.es3-BYQCiNDn.js → lint.es3-HsrZT9m1.js} +1 -1
- package/dist/assets/{list-header-BnipX_Rp.js → list-header-DsWkp7IV.js} +1 -1
- package/dist/assets/{log-i4SQ4Z0y.js → log-DgVRxyob.js} +2 -2
- package/dist/assets/{lottie-BYxFXW-g.js → lottie-CYf1PmCL.js} +1 -1
- package/dist/assets/{matchbrackets.es-aeJus3PD.js → matchbrackets.es-BthTk6Jn.js} +1 -1
- package/dist/assets/{memory-Cu-5WL0k.js → memory-dGmMptAO.js} +1 -1
- package/dist/assets/{mode.es-CXfOP3-9.js → mode.es-_GdTPtpx.js} +1 -1
- package/dist/assets/{mode.es2-DOeKit6c.js → mode.es2-brmgogqJ.js} +1 -1
- package/dist/assets/{mode.es3-8pUUSOKg.js → mode.es3-DPGB-Rg-.js} +1 -1
- package/dist/assets/{onlineParser.es-Bsw_5f31.js → onlineParser.es-BUsBjG_x.js} +1 -1
- package/dist/assets/overview-BjqHXIvR.js +23 -0
- package/dist/assets/{pt-si0ACe2m.js → pt-BxA88dKG.js} +1 -1
- package/dist/assets/{react-BU7lI6gg.js → react-B-xa5K3p.js} +22 -22
- package/dist/assets/{redux-07bmubSg.js → redux-BBckwmBz.js} +1 -1
- package/dist/assets/{resource-dialog-Co295aU2.js → resource-dialog-CIpxrG7w.js} +2 -2
- package/dist/assets/{ru-B36cpSA6.js → ru-C9WJaQoQ.js} +1 -1
- package/dist/assets/runtime-mnz4kggA.js +1 -0
- package/dist/assets/{search.es-ByHwIa0U.js → search.es-CV0d4AUV.js} +1 -1
- package/dist/assets/{searchcursor.es-CsQOLBoo.js → searchcursor.es-CxYOh1mB.js} +1 -1
- package/dist/assets/service-DbM6n6e-.js +1 -0
- package/dist/assets/{show-hint.es-BY2B9aLR.js → show-hint.es-GDHMVUwy.js} +1 -1
- package/dist/assets/{slicedToArray-BwJA6b7k.js → slicedToArray-Pwxti1pp.js} +3 -3
- package/dist/assets/spaces-3s9pbV-M.js +1 -0
- package/dist/assets/{sublime.es-DZOyVbIC.js → sublime.es-BiX2tLa_.js} +1 -1
- package/dist/assets/{switch-control-D1Iqbf5D.js → switch-control-1CHbJzd5.js} +1 -1
- package/dist/assets/{table-icons-CB9vK-gH.js → table-icons-DjAM1A7C.js} +10 -10
- package/dist/assets/{tag-CANB-Fll.js → tag-CdoBHuxB.js} +1 -1
- package/dist/assets/team-CrNp0IgF.js +1 -0
- package/dist/assets/{th-Dtc8_3Sk.js → th-z7LSYRZi.js} +1 -1
- package/dist/assets/toUpper-C7enqaxL.js +1 -0
- package/dist/assets/{traffic-CmQ-j2sa.js → traffic-Bw_e_wEP.js} +5 -5
- package/dist/assets/url-evaluation-asC5XTLH.js +7 -0
- package/dist/assets/use-blocklet-info-for-connect-did-spaces-R82fq7SC.js +1 -0
- package/dist/assets/{useLocalStorage-BNvbpN9F.js → useLocalStorage-DRS65jti.js} +1 -1
- package/dist/assets/util-BC42zb0j.js +1 -0
- package/dist/assets/{vi-DpH7bkpR.js → vi-CAtyUyNW.js} +1 -1
- package/dist/assets/{wait-container-mYVBI-ZE.js → wait-container-DzvlQJkQ.js} +4 -4
- package/dist/assets/withStyles-CPWhmxGn.js +1 -0
- package/dist/assets/wrap-locale-p7nrsckq.js +1 -0
- package/dist/assets/{zh-Dizc5DZz.js → zh-BVBeddUa.js} +1 -1
- package/dist/assets/{zh-tw-Cb93tcSH.js → zh-tw-CoStw7dd.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +1 -1
- package/dist/assets/Breadcrumbs-f87TWJgq.js +0 -1
- package/dist/assets/Delete-h8Ye2r4b.js +0 -1
- package/dist/assets/DeleteOutline-C-1A8rVu.js +0 -1
- package/dist/assets/DeleteOutline-ClZ-ABF-.js +0 -1
- package/dist/assets/actions-ByUCXaaH.js +0 -11
- package/dist/assets/api-BdOqJGVs.js +0 -1
- package/dist/assets/app-avatar-DEqDSBYG.js +0 -1
- package/dist/assets/chart-CQeRS3mZ.js +0 -35
- package/dist/assets/detail-CaMUtLL5.js +0 -58
- package/dist/assets/getValidReactChildren-B_HEoXEd.js +0 -1
- package/dist/assets/index-3vcNDYsD.js +0 -530
- package/dist/assets/index-B7-XNbV9.js +0 -85
- package/dist/assets/index-BMkbX5aS.js +0 -11
- package/dist/assets/index-B_M-nPU6.js +0 -58
- package/dist/assets/index-DMKpICI6.js +0 -1
- package/dist/assets/index-DY9g7uAE.js +0 -54
- package/dist/assets/index-DdxWI-QG.js +0 -262
- package/dist/assets/index-DwOVPSU7.js +0 -21
- package/dist/assets/index-Mr6j5sdU.js +0 -11
- package/dist/assets/index-PDofIfka.js +0 -80
- package/dist/assets/index-RlfSCcPa.js +0 -16
- package/dist/assets/install-from-url-Cnfp9xqR.js +0 -1
- package/dist/assets/overview-CnuzNSfm.js +0 -23
- package/dist/assets/runtime-CW-W-Oej.js +0 -1
- package/dist/assets/service-DNZLEaeT.js +0 -1
- package/dist/assets/spaces-CGO2dSgv.js +0 -1
- package/dist/assets/team-rrZYIohT.js +0 -1
- package/dist/assets/toUpper-D0HPBfn5.js +0 -1
- package/dist/assets/url-evaluation-DymLev_N.js +0 -7
- package/dist/assets/use-blocklet-info-for-connect-did-spaces-YWN8QaVT.js +0 -1
- package/dist/assets/util-CRUZQ4-B.js +0 -1
- package/dist/assets/withStyles-CSLQqeaB.js +0 -1
- package/dist/assets/wrap-locale-B076jNc7.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as p,c as ue,u as Q,e as Pe,
|
|
1
|
+
import{r as p,c as ue,u as Q,e as Pe,aD as Dr,j as t,F as E,aE as ln,aF as $n,aG as Rr,aH as cn,aI as _t,aJ as pe,aK as ge,P as u,n as G,q as F,ad as te,aL as dn,m as I,U as ee,J as Ce,B as H,C as K,aM as Mn,K as de,O as Z,A as ce,f as Dt,R as zn,aN as Tr,aO as Er,aP as Pr,aa as Ar,aQ as Lr,aR as Ir,aS as Or,z as Bn,W as un,T as mn,k as X,aT as Rt,a as xt,S as re,b as Je,aU as Wn,aV as qn,aW as Hn,aX as kr,a2 as Fr,aY as Nr,aZ as Ur,ax as be,a_ as $r,a$ as Mr,b0 as zr,b1 as ze,a8 as Br,d as Kn,M as Wr,b2 as qr,aC as ut,b3 as Hr,a9 as mt,a6 as ft,b4 as Kr,a7 as yt,i as Gn,N as Gr,b5 as Yr,b6 as Se,b7 as we,b8 as Vr,b9 as Xr,D as Yn,w as vt,ba as Qr,h as Jr,at as fn,bb as Zr,bc as pn,aj as ei,bd as ti,be as ni,bf as ri}from"./index-CkI554oc.js";import{T as ii}from"./index-BNulkcXj.js";import{d as oi}from"./ArrowDropDown-B8q6yJii.js";import{u as Tt,C as ne,a as gn}from"./index.esm-BCQ0BZMT.js";import{S as Re}from"./switch-control-1CHbJzd5.js";import{T as q,F as ai}from"./TextField-BD0it3d0.js";import{D as Vn,g as si}from"./index-Cj3s4CtX.js";import{d as Xn}from"./Link-DSNZ4PNo.js";import{d as Ae}from"./Delete-BGOcGa_D.js";import{C as Et}from"./delete-confirm-ztUwg2kj.js";import{I as Be}from"./index-Ca7UJIsi.js";import{s as li}from"./logo-BKA11TRi.js";import{_ as ci}from"./useLocalStorage-DRS65jti.js";import{L as di}from"./LoadingButton-DrVP9tt_.js";import{C as ui,d as Qn}from"./Public-BobH8eAT.js";import{d as Pt}from"./Add-DEou6OQu.js";import{a as mi,B as Jn,D as hn,R as fi,b as pi}from"./url-evaluation-asC5XTLH.js";import{i as gi,d as hi}from"./InfoOutlined-B4lqtuRU.js";import{d as xi}from"./CheckCircle-D6vwJd9K.js";import{d as yi}from"./ChevronRight-Bcko4z80.js";import{d as vi}from"./MoreVert-BL42DjcZ.js";import{d as Zn}from"./Edit-B0yxTPMe.js";import{d as ji,a as er}from"./Https-B3P9JJiw.js";import{W as $e}from"./tag-CdoBHuxB.js";import{w as bi}from"./withStyles-CPWhmxGn.js";import{S as Ci}from"./Slider-DRCfqhU1.js";import"./index-sNR67yJ2.js";import"./Select-DJl6HmRs.js";import"./InputLabel-CdW9MyDY.js";import"./FilterList-RGEuYf_e.js";import"./LastPage-dDlMsztV.js";import"./index-aVpXIXlo.js";import"./redux-BBckwmBz.js";import"./Search-J7ilvWof.js";import"./index-CfOOBUnf.js";import"./click-to-copy-KBQWqGOq.js";const fe="Dashboard",tr=p.createContext({}),{Provider:Si,Consumer:ns}=tr,xn=[fe,E.DOMAIN_FOR_IP_SITE,E.DOMAIN_FOR_IP_SITE_REGEXP],wi=(e,n)=>{if(e.name===E.DOMAIN_FOR_DEFAULT_SITE)return-1;if(n.name===E.DOMAIN_FOR_DEFAULT_SITE)return 1;const r=xn.includes(e.name),i=xn.includes(n.name);return r&&i?cn(e.name,n.name):r?-1:i?1:cn(e.name,n.name)},_i=({sites:e,nodePort:n})=>{const r=window.location.host,o=(e||[]).map(a=>{const{id:l,rules:c=[],corsAllowedOrigins:h=[]}=a;let{domain:d,domainAliases:m}=a;m=m||[],[E.DOMAIN_FOR_IP_SITE,E.DOMAIN_FOR_IP_SITE_REGEXP].includes(d)&&(d=fe,m.find(f=>f.value===r)||m.unshift({protected:!1,value:r}));const g={id:l,name:d,type:"domain",items:[],domainAliases:m,isProtected:a.isProtected,corsAllowedOrigins:h};return(c||[]).forEach(f=>{const{id:y,isProtected:b,from:{pathPrefix:v},to:S}=f;if(S.type===E.ROUTING_RULE_TYPES.BLOCKLET){let T="";Number.parseInt(S.port,10)===Number.parseInt(n,10)?(T="Blocklet Server Dashboard",S.type=E.ROUTING_RULE_TYPES.DAEMON):T=S.did,g.items.push({id:y,name:ln(v||"/"),title:T,type:"rule",isProtected:b,pathPrefix:v,to:S})}else g.items.push({id:y,pathPrefix:v,name:ln(v||"/"),title:"Blocklet Server Dashboard",type:"rule",isProtected:b,to:S})}),g.items=$n(g.items,f=>f.name),g}).sort(wi),s=o.reduce((a,l)=>{let{name:c}=l;return c.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX)&&([c]=c.split(".")),a[c]={...l,rules:l.items},a},{});return{sites:o,siteMap:s}},Di=({did:e,domain:n,mountPoint:r,siteMap:i,params:o}={})=>{if(!i)return null;const s=i[e];if(!s)return null;const a=n||(s.domainAliases||[])[0];if(!a)return null;let l=r;if(!l){const c=s.rules.filter(h=>!h.name.startsWith(E.WELLKNOWN_PATH_PREFIX))[0];l=c?c.name:"/"}return _t(a.value,l,o)},Ri=({did:e,mountPoint:n,siteMap:r,params:i}={})=>{if(!r)return[];const o=r[e];if(!o)return[];const s=o.domainAliases||[];if(!s.length)return[];let a=n;if(!a){const l=o.rules.filter(c=>!c.name.startsWith(E.WELLKNOWN_PATH_PREFIX))[0];a=l?l.name:"/"}return s.map(l=>_t(l.value,a,i))},Ti=e=>{const n=e.map(i=>i.domain).filter(i=>![E.DOMAIN_FOR_IP_SITE_REGEXP,E.DOMAIN_FOR_DEFAULT_SITE].includes(i));let r=[];return e.forEach(i=>r.push(...i.domainAliases||[])),r=r.map(i=>typeof i=="string"?{value:i,isProtected:!1}:i),{domains:n,domainsAliases:r}};function yn({children:e}){const n=ue(),{info:r}=Q(),[i,o]=p.useState([]),[s,a]=p.useState([]),[l,c]=p.useState([]),h=Pe(async()=>{const{sites:P}=await n.getRoutingSites({input:{snapshotHash:""}}),j=P||[];await Promise.all(j.map(async w=>(w.domainAliases=await Dr(w.domainAliases,{getIP:Rr}),w)));const _=Ti(j);o(j),a(_.domains),c([window.location.hostname,..._.domains,..._.domainsAliases.map(w=>w.value)])},[r]),d=(P,j)=>{o(_=>_.map(w=>w.id===P?j.domain?j:{...j,domain:w.domain}:w))},m=P=>n.takeRoutingSnapshot({input:{dryRun:!1,message:encodeURIComponent(P)}}),g=async P=>{const j=await n.addRoutingSite({input:P});o(i.concat(j.site))},f=async(P,j)=>{const _=await n.updateRoutingSite({input:{id:P,...j}});if(_.site&&_.site.id){const w=i.findIndex(L=>L.id===_.site.id);w!==-1&&(i.splice(w,1,_.site),o([].concat(i)))}},y=async P=>{await n.deleteRoutingSite({input:{id:P}}),o(i.filter(j=>j.id!==P))},b=async(P,j,_)=>{const w=await n.addDomainAlias({input:{id:P,domainAlias:j,force:_}});d(P,w.site)},v=async(P,j)=>{const _=await n.deleteDomainAlias({input:{id:P,domainAlias:j}});d(P,_.site)},S=async(P,j)=>{const{site:_}=await n.addRoutingRule({input:{id:P,rule:j}});d(P,_)},T=async(P,j)=>{const{site:_}=await n.updateRoutingRule({input:{id:P,rule:j}});d(P,_)},C=async(P,j)=>{const{site:_}=await n.deleteRoutingRule({input:{id:P,ruleId:j}});d(P,_)},x={loading:h.loading,error:h.error,refresh:h.retry,api:n,actions:{addSite:g,updateSite:f,deleteSite:y,addDomainAlias:b,deleteDomainAlias:v,takeSnapshot:m,addRule:S,updateRule:T,deleteRule:C}},{sites:A,siteMap:R}=_i({sites:i,nodePort:r.port});return x.sites=A,x.siteMap=R,x.domains=s,x.allDomains=l,x.getBlockletUrl=({did:P,domain:j,mountPoint:_,params:w})=>Di({did:P,domain:j,mountPoint:_,siteMap:x.siteMap,params:w}),x.getBlockletUrls=({did:P,mountPoint:j,params:_})=>Ri({did:P,mountPoint:j,siteMap:x.siteMap,params:_}),t.jsx(Si,{value:{routing:x},children:e})}function ae(){const{routing:e}=p.useContext(tr);return e}function At(e){const n=[E.DOMAIN_FOR_IP_SITE_REGEXP,E.DOMAIN_FOR_DEFAULT_SITE,E.DOMAIN_FOR_IP_SITE];return typeof window<"u"&&typeof window.location<"u"&&n.push(window.location.hostname),n.includes(e)}var Lt={},Ei=ge;Object.defineProperty(Lt,"__esModule",{value:!0});var nr=Lt.default=void 0,Pi=Ei(pe()),Ai=t;nr=Lt.default=(0,Pi.default)((0,Ai.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");function Li(){return null}function It({confirm:e}){const[n,r]=p.useState(null),{t:i}=F(),o=()=>{r(null)},s=async l=>{if(l){let c=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";c==="/"?dn.push(`${l.pathname}`):(c.endsWith("/")&&(c=c.substring(0,c.length-1)),dn.push(`${c}${l.pathname}`)),window.location.reload()}},a=(l,...c)=>{let h=typeof e=="function"?e(l,...c):e;return h?(typeof h=="string"&&(h={description:h}),r({title:i("common.noticeTitle"),description:i("common.leavePageTip"),confirm:i("common.confirm"),cancel:i("common.cancel"),onConfirm:()=>s(l),onCancel:()=>o(),...h}),!1):!0};return t.jsxs(Ii,{children:[t.jsx(Li,{message:a}),n&&t.jsx(te,{title:n.title,description:n.description,confirm:n.confirm,cancel:n.cancel,params:n.params,onConfirm:n.onConfirm,onCancel:n.onCancel})]})}It.propTypes={confirm:u.oneOfType([u.object,u.string,u.func])};It.defaultProps={confirm:null};const Ii=G.div`
|
|
2
2
|
margin-bottom: 24px;
|
|
3
3
|
.top-btns-alert {
|
|
4
4
|
@media (max-width: ${e=>e.theme.breakpoints.values.sm}px) {
|
|
@@ -12,7 +12,7 @@ import{r as p,c as ue,u as Q,e as Pe,aF as Dr,j as t,F as E,aG as ln,aH as $n,aI
|
|
|
12
12
|
margin-right: 0px;
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
|
-
`;function
|
|
15
|
+
`;function Ot({children:e,...n}){return t.jsx(Oi,{children:t.jsx("form",{...n,children:e})})}Ot.propTypes={children:u.any.isRequired};const Oi=G.div`
|
|
16
16
|
width: 100%;
|
|
17
17
|
|
|
18
18
|
form {
|
|
@@ -44,12 +44,12 @@ import{r as p,c as ue,u as Q,e as Pe,aF as Dr,j as t,F as E,aG as ln,aH as $n,aI
|
|
|
44
44
|
margin-right: 0;
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
`,vn=e=>({name:e.name,description:e.description,registerUrl:e.registerUrl,webWalletUrl:e.webWalletUrl,nftDomainUrl:e.nftDomainUrl,diskAlertThreshold:e.diskAlertThreshold,enableWelcomePage:!1,enableBetaRelease:!1});function
|
|
47
|
+
`,vn=e=>({name:e.name,description:e.description,registerUrl:e.registerUrl,webWalletUrl:e.webWalletUrl,nftDomainUrl:e.nftDomainUrl,diskAlertThreshold:e.diskAlertThreshold,enableWelcomePage:!1,enableBetaRelease:!1});function kt({onSaved:e,title:n,submit:r,disabled:i,...o}){const s=Q(),{t:a}=F(),{control:l,handleSubmit:c,formState:h,reset:d}=Tt({defaultValues:vn(s.info)}),[m,g]=p.useState(""),[f,y]=p.useState(""),[b,v]=p.useState(!1),[S,T]=p.useState(s.info.autoUpgrade),[C,x]=p.useState(!!s.info.enableWelcomePage),[A,R]=p.useState(!!s.info.enableBetaRelease);p.useEffect(()=>{let _="";(h.isDirty||S!==s.info.autoUpgrade||C!==!!s.info.enableWelcomePage)&&(_=a("setting.unSavedTip")),y(_)},[a,s,S,C,h]);const P=async _=>{g(""),v(!0);try{const w=await ue().updateNodeInfo({input:{..._,name:_.name.trim(),description:_.description.trim(),registerUrl:_.registerUrl.trim(),webWalletUrl:_.webWalletUrl.trim(),diskAlertThreshold:_.diskAlertThreshold,autoUpgrade:S,enableWelcomePage:C,enableBetaRelease:A}});await Mn(1e3),d(vn(w.info)),typeof e=="function"&&e(w)}catch(w){g(de(w))}finally{v(!1)}},{errors:j}=h;return t.jsxs(ki,{...o,children:[t.jsxs(Ot,{noValidate:!0,autoComplete:"off",onSubmit:c(P),children:[!!n&&t.jsx(I,{component:"h2",variant:"h5",className:"stepper-tip",children:n}),t.jsx(ee,{permission:"mutate_node",children:_=>{var w;return t.jsxs(t.Fragment,{children:[t.jsx(ne,{name:"name",control:l,rules:{validate:L=>!!L.trim()||a("setting.form.nameRequired")},render:({field:L})=>t.jsx(q,{variant:"outlined",label:a("setting.form.name"),placeholder:a("setting.form.namePlaceholder"),disabled:b||!_,"data-cy":"node-name-input",error:j.name&&!!j.name.message,helperText:j.name?j.name.message:"",margin:"normal",...L})}),t.jsx(ne,{name:"description",control:l,rules:{validate:L=>!!L.trim()||a("setting.form.descriptionRequired")},render:({field:L})=>t.jsx(q,{variant:"outlined",label:a("setting.form.description"),placeholder:a("setting.form.descriptionHolder"),disabled:b||!_,"data-cy":"node-description-input",error:j.description&&!!j.description.message,helperText:j.description?j.description.message:"",margin:"normal",...L})}),t.jsx(ne,{name:"registerUrl",control:l,rules:{},render:({field:L})=>t.jsx(q,{variant:"outlined",label:a("setting.form.registerUrl"),placeholder:a("setting.form.registerUrlPlaceholder"),disabled:b||!_,error:j.registerUrl&&!!j.registerUrl.message,helperText:j.registerUrl?j.registerUrl.message:"",margin:"normal",...L})}),t.jsx(ne,{name:"nftDomainUrl",control:l,rules:{},render:({field:L})=>t.jsx(q,{variant:"outlined",label:a("setting.form.nftDomainUrl"),placeholder:a("setting.form.nftDomainUrlPlaceholder"),disabled:b||!_,error:j.nftDomainUrl&&!!j.nftDomainUrl.message,helperText:j.nftDomainUrl?j.nftDomainUrl.message:"",margin:"normal",...L})}),t.jsx(ne,{name:"webWalletUrl",control:l,rules:{},render:({field:L})=>t.jsx(q,{variant:"outlined",label:a("setting.form.webWalletUrl"),placeholder:a("setting.form.webWalletUrlPlaceholder"),disabled:b||!_,error:j.webWalletUrl&&!!j.webWalletUrl.message,helperText:j.webWalletUrl?j.webWalletUrl.message:"",margin:"normal",...L})}),t.jsx(ne,{name:"diskAlertThreshold",control:l,rules:{},render:({field:L})=>t.jsx(q,{type:"number",variant:"outlined",label:a("setting.form.monitor.diskThreshold"),placeholder:a("setting.form.monitor.diskThresholdPlaceholder"),disabled:b||!_,error:j.diskAlertThreshold&&!!j.diskAlertThreshold.message,inputProps:{min:1,max:99},helperText:j.diskAlertThreshold?j.diskAlertThreshold.message:"",margin:"normal",...L})}),t.jsx(Re,{checked:S,onChange:()=>T(!S),name:"autoUpgrade",disabled:!_,labelProps:{label:t.jsx(I,{children:t.jsx("span",{children:a("setting.form.upgrade.switchLabel")})})},style:{marginTop:20}}),S&&t.jsx(Re,{checked:A,onChange:()=>R(!A),name:"enableBetaRelease",disabled:!_,labelProps:{label:t.jsx(I,{children:t.jsx("span",{children:a("setting.form.upgrade.enableBetaRelease")})})},style:{marginTop:20}}),((w=s.info)==null?void 0:w.mode)!==E.NODE_MODES.SERVERLESS&&t.jsx(Re,{checked:C,onChange:()=>x(!C),name:"enableWelcomePage",disabled:!_,labelProps:{label:t.jsx(I,{children:t.jsx("span",{children:a("setting.form.welcome.switchLabel")})})},style:{marginTop:16}})]})}}),!!f&&t.jsx(Ce,{type:"warning",variant:"icon",children:f}),t.jsx("div",{className:"form-actions",children:t.jsx(ee,{permission:"mutate_node",children:t.jsxs(H,{onClick:c(P),disabled:i||b,color:"primary",variant:"contained","data-cy":"submit-btn",className:"form-submit",children:[r," ",b?t.jsx(K,{size:16}):null]})})}),!!m&&t.jsx(Ce,{type:"error",variant:"icon",error:m,children:m})]}),f&&t.jsx(It,{confirm:a("setting.unSavedLeaveTip")})]})}kt.propTypes={onSaved:u.func.isRequired,disabled:u.bool,title:u.string.isRequired,submit:u.string.isRequired};kt.defaultProps={disabled:!1};const ki=G.div`
|
|
48
48
|
display: flex;
|
|
49
49
|
align-items: flex-start;
|
|
50
50
|
width: 100%;
|
|
51
51
|
max-width: 720px;
|
|
52
|
-
`;function Fi(){const{refresh:e,info:n}=Q(),{t:r}=F(),[i,o]=p.useState(!1);p.useEffect(()=>{e({silent:!0})},[]);const s=()=>{e({silent:!0}),ce.success(r("setting.saveSuccess"))};return t.jsx(Ni,{children:t.jsxs(Z,{mb:4,children:[t.jsx(
|
|
52
|
+
`;function Fi(){const{refresh:e,info:n}=Q(),{t:r}=F(),[i,o]=p.useState(!1);p.useEffect(()=>{e({silent:!0})},[]);const s=()=>{e({silent:!0}),ce.success(r("setting.saveSuccess"))};return t.jsx(Ni,{children:t.jsxs(Z,{mb:4,children:[t.jsx(kt,{onSaved:s,submit:r("common.saveChanges"),title:""}),t.jsx(Z,{mt:6,style:{marginLeft:-8},children:t.jsxs(H,{onClick:()=>{o(a=>!a)},children:[r("common.readMore"),i?t.jsx(nr,{}):t.jsx(oi,{})]})}),i&&t.jsxs(Z,{fontSize:12,color:"text.secondary",children:[t.jsxs(Z,{children:[r("dashboard.runtimeConfig.blockletMaxMemoryLimit"),": ",n.runtimeConfig.blockletMaxMemoryLimit," MB"]}),t.jsxs(Z,{children:[r("dashboard.runtimeConfig.daemonMaxMemoryLimit"),": ",n.runtimeConfig.daemonMaxMemoryLimit," MB"]}),t.jsxs(Z,{children:[r("dashboard.runtimeConfig.proxyMaxMemoryLimit"),": ",n.runtimeConfig.proxyMaxMemoryLimit," MB"]})]})]})})}const Ni=G.div`
|
|
53
53
|
.eula-btn {
|
|
54
54
|
text-decoration-line: underline;
|
|
55
55
|
margin-top: 32px;
|
|
@@ -61,7 +61,7 @@ import{r as p,c as ue,u as Q,e as Pe,aF as Dr,j as t,F as E,aG as ln,aH as $n,aI
|
|
|
61
61
|
width: 100%;
|
|
62
62
|
max-width: 720px;
|
|
63
63
|
}
|
|
64
|
-
`;var Ft={},Ui=ge;Object.defineProperty(Ft,"__esModule",{value:!0});var rr=Ft.default=void 0,$i=Ui(pe()),Mi=t;rr=Ft.default=(0,$i.default)((0,Mi.jsx)("path",{d:"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"}),"Send");function Nt(e){const{t:n}=F(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{item:a,onDelete:l=()=>{}}=e,{id:c,title:h}=a,d=ue(),m=()=>{i(!1),s(null)},g=async()=>{i(!0);try{await d.deleteWebHook({input:{id:c}}),l()}catch(y){console.error(y)}finally{i(!1),s(null)}},f={keyName:c,title:n("setting.webhook.delTitle"),description:`${n("setting.webhook.description",{name:`<b>${h}</b>`,id:`<b>${c}</b>`})}`,confirmPlaceholder:n("setting.webhook.confirm_desc",{name:c}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:g,onCancel:m};return t.jsxs(t.Fragment,{children:[t.jsxs(H,{edge:"end",onClick:()=>s(f),size:"small",className:"rule-action",color:"error",children:[r?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:16}}),n("common.delete")]}),o&&t.jsx(Et,{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})]})}Nt.propTypes={item:u.object.isRequired,onDelete:u.func};Nt.defaultProps={onDelete:()=>{}};function zi(){const{api:e,imgPrefix:n}=Q(),{t:r,locale:i}=p.useContext(Dt),[o,s]=p.useState([]),[a,l]=p.useState(null),c=Pe(async()=>{const[{webhooks:C},{senders:x}]=await Promise.all([e.getWebHooks(),e.getWebhookSenders()]);return s(x),C}),h=c.value||[],{loading:d,error:m}=c,g=async C=>{try{await e.createWebHook({input:C}),c.retry()}catch(x){ce.error(de(x),{autoHideDuration:4e3}),console.error("create webhook error",x)}l(null)},f=()=>{l(null)},y=C=>{const x={title:C.title,description:(A,R,P)=>{const
|
|
64
|
+
`;var Ft={},Ui=ge;Object.defineProperty(Ft,"__esModule",{value:!0});var rr=Ft.default=void 0,$i=Ui(pe()),Mi=t;rr=Ft.default=(0,$i.default)((0,Mi.jsx)("path",{d:"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"}),"Send");function Nt(e){const{t:n}=F(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{item:a,onDelete:l=()=>{}}=e,{id:c,title:h}=a,d=ue(),m=()=>{i(!1),s(null)},g=async()=>{i(!0);try{await d.deleteWebHook({input:{id:c}}),l()}catch(y){console.error(y)}finally{i(!1),s(null)}},f={keyName:c,title:n("setting.webhook.delTitle"),description:`${n("setting.webhook.description",{name:`<b>${h}</b>`,id:`<b>${c}</b>`})}`,confirmPlaceholder:n("setting.webhook.confirm_desc",{name:c}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:g,onCancel:m};return t.jsxs(t.Fragment,{children:[t.jsxs(H,{edge:"end",onClick:()=>s(f),size:"small",className:"rule-action",color:"error",children:[r?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:16}}),n("common.delete")]}),o&&t.jsx(Et,{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})]})}Nt.propTypes={item:u.object.isRequired,onDelete:u.func};Nt.defaultProps={onDelete:()=>{}};function zi(){const{api:e,imgPrefix:n}=Q(),{t:r,locale:i}=p.useContext(Dt),[o,s]=p.useState([]),[a,l]=p.useState(null),c=Pe(async()=>{const[{webhooks:C},{senders:x}]=await Promise.all([e.getWebHooks(),e.getWebhookSenders()]);return s(x),C}),h=c.value||[],{loading:d,error:m}=c,g=async C=>{try{await e.createWebHook({input:C}),c.retry()}catch(x){ce.error(de(x),{autoHideDuration:4e3}),console.error("create webhook error",x)}l(null)},f=()=>{l(null)},y=C=>{const x={title:C.title,description:(A,R,P)=>{const j=w=>{R({list:w,__disableConfirm:w.some(L=>L.disable)})},_=A.list||[];return t.jsx(jn,{children:_.map((w,L)=>t.jsx(Bi,{children:t.jsx(q,{label:w.description,autoComplete:"off",variant:"outlined",inputProps:{"data-cy":"webhook-input"},fullWidth:!0,autoFocus:!0,style:{marginBottom:16},margin:"dense",value:w.value||w.defaultValue,onChange:$=>{w.required&&(w.disable=!0);const Y=$.target.value.trim();w.value=Y,_[L]=w,Y?Er(w.type,Y)?(w.disable=!1,P("")):(w.disable=!0,P(r("setting.webhook.requiredError",{type:w.type}))):(w.required&&(w.disable=!0),P("")),j([..._])}})},w.name))})},params:{list:C.params,__disableConfirm:!0},confirm:r("setting.webhook.add"),cancel:r("common.cancel"),onConfirm:A=>{C.params=A.list,g(C)},onCancel:f};l(x)},b=C=>C.type==="slack"?t.jsx("img",{src:`${n}/${C.type}.png`,alt:"icon",style:{width:20,height:20}}):t.jsx(Xn,{}),v=async C=>{const x={webhookId:C.id,message:"This is a test notification in order to test the integration"};await e.sendTestMessage({input:x})},S=[{label:r("setting.webhook.columns.description"),name:"id",verticalKeyAlign:"center",options:{sort:!1,customBodyRenderLite:C=>{const x=h[C],A=o.find(R=>R.name===x.name);return t.jsxs("div",{style:{display:"flex",alignItems:"center",whiteSpace:"nowrap"},children:[b(x),t.jsxs("div",{style:{marginLeft:10},children:[t.jsxs("b",{children:["ID: ",x.id]}),t.jsx("div",{children:A?A.description:null})]})]})}}},{label:r("setting.webhook.columns.params"),name:"params",options:{sort:!1,customBodyRenderLite:C=>{const A=h[C].params.map(R=>t.jsx("div",{children:R.value}));return t.jsx("div",{style:{display:"flex",alignItems:"center",whiteSpace:"nowrap"},children:A})}}},{label:r("setting.webhook.columns.createdAt"),name:"createdAt",options:{customBodyRenderLite:C=>{const x=h[C];return t.jsx(zn,{value:Number(x.createdAt),locale:i})}}},{label:r("common.actions"),align:"center",verticalKeyAlign:"center",options:{sort:!1,customBodyRenderLite:C=>{const x=h[C],A=o.find(R=>R.name===x.name)||{};return t.jsxs(t.Fragment,{children:[t.jsx(Nt,{item:{...x,title:A.title},onDelete:()=>{c.retry()}}),t.jsxs(H,{size:"small",color:"secondary",onClick:()=>{v(x)},children:[t.jsx(Wi,{}),r("setting.webhook.test")]})]})}}}];if(!h.length&&d)return t.jsx("div",{style:{textAlign:"center",marginTop:"50px"},children:t.jsx(K,{})});if(!h.length&&m)return t.jsx(Tr,{severity:"error",children:de(m)});const T=o.map(C=>({icon:b(C),title:`${r("common.add")} ${C.title}`,onClick:()=>{y(C)}}));return t.jsxs(jn,{children:[a&&t.jsx(te,{color:"primary",title:a.title,description:a.description,confirm:a.confirm,params:a.params,onConfirm:a.onConfirm,onCancel:a.onCancel}),t.jsx(Vn,{columns:S,data:h,locale:i,customButtons:T,verticalKeyWidth:100,options:{download:!1,filter:!1,print:!1}})]})}const jn=G.div`
|
|
65
65
|
.button-addon {
|
|
66
66
|
text-align: right;
|
|
67
67
|
}
|
|
@@ -109,16 +109,16 @@ import{r as p,c as ue,u as Q,e as Pe,aF as Dr,j as t,F as E,aG as ln,aH as $n,aI
|
|
|
109
109
|
`;function et({children:e,...n}){return t.jsx(Hi,{...n,children:e})}const Hi=G.div`
|
|
110
110
|
border: 1px solid #dedede;
|
|
111
111
|
padding: 16px;
|
|
112
|
-
`;et.propTypes={children:u.node.isRequired};function
|
|
112
|
+
`;et.propTypes={children:u.node.isRequired};function bn({action:e}){const{t:n}=F(),{info:r,api:i}=Q(),[o,s]=p.useState(!1),[a,l]=p.useState(null);if(e==="upgrade"&&!r.nextVersion)return null;const c=()=>{s(!1),l(null)},h=async()=>{try{s(!0),e==="upgrade"&&await i.upgradeNodeVersion(),e==="restart"&&await i.restartServer()}catch(m){ce.error(de(m))}finally{s(!1),l(null)}},d={title:n(`setting.form.${e}.title`,{version:r.nextVersion}),description:n(`setting.form.${e}.dialog`),confirm:n("common.confirm"),cancel:n("common.cancel"),onConfirm:h,onCancel:c};return t.jsxs(t.Fragment,{children:[t.jsx(et,{className:"danger-zone",children:t.jsx(Ze,{title:n(`setting.form.${e}.title`,{version:r.nextVersion}),description:n(`setting.form.${e}.description`),children:t.jsxs(H,{onClick:()=>l(d),color:"error",variant:"outlined",size:"large",children:[o?t.jsx(K,{size:16,style:{marginRight:3}}):null,n(`setting.form.${e}.confirm`)]})})}),a&&t.jsx(te,{title:a.title,description:a.description,confirm:a.confirm,cancel:a.cancel,onConfirm:a.onConfirm,onCancel:a.onCancel})]})}var Ut={},Ki=ge;Object.defineProperty(Ut,"__esModule",{value:!0});var ir=Ut.default=void 0,Gi=Ki(pe()),Yi=t;ir=Ut.default=(0,Gi.default)((0,Yi.jsx)("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z"}),"Refresh");function Vi(){const{t:e}=F(),{api:n}=Q(),[r,i]=p.useState(!1),[o,s]=p.useState(null),[a,l]=ci("last-check-server-version-time"),c=()=>{i(!1),s(null)},h={title:e("setting.form.upgrade.check"),description:e("setting.form.upgrade.latest"),confirm:e("common.confirm"),showCancel:!1,color:"primary",onConfirm:c,onCancel:c},d=async m=>{try{i(!0);const{version:g}=await n.checkNodeVersion();!g&&m&&s(h),l(Date.now())}catch(g){console.error(`Failed to check new version: ${g.message}`)}finally{i(!1)}};return p.useEffect(()=>{(!a||Date.now()-Number(a)>60*1e3)&&d(!1)},[]),t.jsxs(t.Fragment,{children:[t.jsx(di,{sx:{ml:2},color:"primary",variant:"outlined",onClick:d,size:"small",loadingPosition:"end",loading:r,children:t.jsxs(Pr,{direction:"row",alignItems:"center",spacing:.5,children:[t.jsx(ir,{fontSize:"small"}),t.jsx(I,{component:"span",children:e("server.checkUpgrade")})]})}),o&&t.jsx(te,{title:o.title,description:o.description,confirm:o.confirm,showCancel:o.showCancel,color:o.color,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}function Xi(){const{t:e}=F(),{info:n}=Q();return t.jsx(et,{className:"danger-zone",children:t.jsx(Ze,{title:e("blocklet.config.clearCache.name"),description:e("blocklet.config.clearCache.purpose"),children:t.jsx(ui,{teamDid:n.did,size:"large"})})})}const Qi="z8iZkFBbrVQxZHvcWWB3Sa2TrfGmSeFz9MSU7";function Ji(){const{t:e,locale:n}=F(),{info:r}=Q(),i=p.useRef(null),o=Ar(r),[s,a]=p.useState(!1),l=p.useRef(null),[c,h]=p.useState({}),{createdAt:d,did:m,description:g,name:f}=r,y=p.useMemo(()=>Lr(),[]),b=Ir(async()=>{var W;let{registerUrl:w}=r;localStorage.getItem("__registerUrl")&&(w=localStorage.getItem("__registerUrl"));const L=new URL(w);L.pathname="__blocklet__.js",L.searchParams.set("type","json");const{data:$}=await Or.get(L.toString()),Y=(W=$==null?void 0:$.componentMountPoints)==null?void 0:W.find(z=>z.did===Qi),ie=new URL(w);return ie.pathname=(Y==null?void 0:Y.mountPoint)||"",ie.toString()}),v={did:m,name:f,createdAt:d,description:g,url:o},S=p.useMemo(()=>c.type&&c.type!=="notAdded",[c]),T=p.useMemo(()=>s?e("setting.form.register.detecting"):c.type==="update"?e("setting.form.register.update"):e(S?"setting.form.register.added":"setting.form.register.btn"),[s,c,n]),C=p.useMemo(()=>c.type==="update"?!1:!!S,[c]),x=()=>{i.current.contentWindow.postMessage({...v,action:"registerNode"},"*")},A=()=>{i.current.contentWindow.postMessage({...v,action:"queryRegisterInfo"},"*")},R=()=>{clearTimeout(l.current),a(!1),y&&A()},P=()=>{a(!0),l.current=setTimeout(()=>{ce.error(e("setting.form.register.timeout")),a(!1)},1e3*6)};if(p.useEffect(()=>{let w;return window.addEventListener("message",w=L=>{const{data:$}=L;$==="launcher init"?R():($==null?void 0:$.action)==="registerNode"&&(h($),$.type==="addSucceed"&&ce.success(e("setting.form.register.addSucceed")),$.type==="updateSucceed"&&ce.success(e("setting.form.register.updateSucceed")))}),y&&P(),()=>{window.removeEventListener("message",w),clearTimeout(l.current)}},[]),b.loading)return"";const j=b.value,_=y?t.jsx(H,{disabled:C,loading:s,onClick:x,color:"primary",variant:"contained",size:"large",children:T}):t.jsx(H,{color:"primary",loading:s,component:"a",href:`${j}?register-server=${encodeURIComponent(JSON.stringify(v))}`,target:"_blank",variant:"contained",size:"large",children:e("setting.form.register.btn")});return t.jsxs(Zi,{children:[t.jsx(et,{className:"danger-zone",children:t.jsx(Ze,{title:e(S?"setting.form.register.titleAdded":"setting.form.register.title"),description:S?e("setting.form.register.descriptionOnAdded",{url:j}):e("setting.form.register.description",{url:j}),children:_})}),y&&t.jsx("iframe",{ref:i,src:`${j}?register-detect=1`,title:"register",style:{display:"none"}})]})}const Zi=G.div`
|
|
113
113
|
.danger-zone {
|
|
114
114
|
margin-top: 1vw;
|
|
115
115
|
width: 100%;
|
|
116
116
|
}
|
|
117
|
-
`;function eo(){const e=Bn(),{api:n,info:r}=Q(),{t:i}=F(),o=Pe(async()=>{const a=await n.getNodeEnv();return Object.assign({},a.info||{})}),s=[];return s.push({name:i("dashboard.nodeDid"),value:t.jsx(un,{did:r.did,showQrcode:!0})},r.nodeOwner?{name:i("dashboard.ownerDid"),value:t.jsx(un,{did:r.nodeOwner.did,showQrcode:!0})}:null,{name:i("dashboard.routingEngine"),value:r.routing.provider}),o.value&&s.push({name:`${i("common.os")}`,value:o.value.os},o.value.docker?{name:`${i("common.docker")}`,value:t.jsx(mn,{type:"success",children:"Yes"})}:null,o.value.gitpod?{name:`${i("common.gitpod")}`,value:t.jsx(mn,{type:"success",children:"Yes"})}:null),Array.isArray(X(o,"value.blockletEngines",null))&&o.value.blockletEngines.filter(a=>a.visible&&a.available).forEach(a=>{s.push({name:a.displayName,value:a.version})}),t.jsxs(to,{children:[t.jsx(ee,{permission:"mutate_node",children:a=>t.jsxs(t.Fragment,{children:[t.jsxs(Z,{display:"flex",alignItems:"center",style:{marginBottom:24},children:[t.jsx(Z,{width:50,height:50,children:t.jsx("img",{src:li,height:50,alt:""})}),t.jsxs(Z,{ml:2,children:[t.jsx("h2",{style:{margin:0},children:r.name}),t.jsx("p",{style:{margin:0,color:"#888"},children:r.description})]})]}),t.jsxs(Be,{style:{marginBottom:4},valueComponent:"div",nameWidth:150,name:i("common.version"),children:[r.version,a&&t.jsx(Vi,{})]},"version"),s.filter(Boolean).map(l=>t.jsx(Be,{valueComponent:"div",nameWidth:150,name:l.name,children:l.value},l.name)),a&&t.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:t.jsx(
|
|
117
|
+
`;function eo(){const e=Bn(),{api:n,info:r}=Q(),{t:i}=F(),o=Pe(async()=>{const a=await n.getNodeEnv();return Object.assign({},a.info||{})}),s=[];return s.push({name:i("dashboard.nodeDid"),value:t.jsx(un,{did:r.did,showQrcode:!0})},r.nodeOwner?{name:i("dashboard.ownerDid"),value:t.jsx(un,{did:r.nodeOwner.did,showQrcode:!0})}:null,{name:i("dashboard.routingEngine"),value:r.routing.provider}),o.value&&s.push({name:`${i("common.os")}`,value:o.value.os},o.value.docker?{name:`${i("common.docker")}`,value:t.jsx(mn,{type:"success",children:"Yes"})}:null,o.value.gitpod?{name:`${i("common.gitpod")}`,value:t.jsx(mn,{type:"success",children:"Yes"})}:null),Array.isArray(X(o,"value.blockletEngines",null))&&o.value.blockletEngines.filter(a=>a.visible&&a.available).forEach(a=>{s.push({name:a.displayName,value:a.version})}),t.jsxs(to,{children:[t.jsx(ee,{permission:"mutate_node",children:a=>t.jsxs(t.Fragment,{children:[t.jsxs(Z,{display:"flex",alignItems:"center",style:{marginBottom:24},children:[t.jsx(Z,{width:50,height:50,children:t.jsx("img",{src:li,height:50,alt:""})}),t.jsxs(Z,{ml:2,children:[t.jsx("h2",{style:{margin:0},children:r.name}),t.jsx("p",{style:{margin:0,color:"#888"},children:r.description})]})]}),t.jsxs(Be,{style:{marginBottom:4},valueComponent:"div",nameWidth:150,name:i("common.version"),children:[r.version,a&&t.jsx(Vi,{})]},"version"),s.filter(Boolean).map(l=>t.jsx(Be,{valueComponent:"div",nameWidth:150,name:l.name,children:l.value},l.name)),a&&t.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:t.jsx(bn,{action:"upgrade"})})]})}),t.jsx(ee,{permission:"mutate_node",children:a=>a&&t.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:t.jsx(bn,{action:"restart"})})}),t.jsx(ee,{permission:"mutate_router",children:a=>a&&t.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:t.jsx(Xi,{})})}),t.jsx(ee,{permission:"mutate_blocklets",children:!!r.registerUrl&&t.jsx("div",{style:{maxWidth:720,marginTop:"-1vw"},children:t.jsx(Ji,{})})}),t.jsx(Z,{mt:10,style:{marginLeft:-8},children:t.jsx(H,{className:"eula-btn",onClick:()=>{e("/eula")},children:i("common.goEULA")})})]})}const to=G.div`
|
|
118
118
|
display: flex;
|
|
119
119
|
flex-direction: column;
|
|
120
120
|
margin-top: 32px;
|
|
121
|
-
`,or=p.createContext({}),{Provider:no,Consumer:rs}=or;function ar({children:e,domains:n}){const r=ue(),i=JSON.stringify(n),[o,s]=p.useState({}),a=p.useMemo(()=>n.filter(f=>Rt(f)),[i]);xt(E.EVENTS.DOMAIN_STATUS,f=>{f&&s(y=>({...y,[f.domain]:{...y[f.domain],...f}}))});const{domainsAccessibility:l,recommendedDomain:c}=mi(a),h=p.useMemo(()=>{const f={...o};return Object.keys(l).forEach(y=>{const j=f[y]||{};f[y]={...j,...l[y]}}),f},[o,l]),d=()=>{a.length>0&&r.checkDomains({input:{domains:a}})},m=f=>{f&&r.checkDomains({input:{domains:[f]}})};p.useEffect(()=>{d()},[a]);const g={refresh:d,updateStatus:m,api:r,status:h,recommendedDomain:c,recommendedDomainStatus:h[c]};return t.jsx(no,{value:g,children:e})}ar.propTypes={children:u.any.isRequired,domains:u.array.isRequired};function tt(){const{status:e,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}=p.useContext(or);return{status:e,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}}const ro=e=>(X(e,"meta.interfaces")||[]).find(r=>r.type===Je.BLOCKLET_INTERFACE_TYPE_WEB);function Le({params:e,blocklets:n,setParams:r,setError:i,serviceTypes:o}){const{t:s}=F(),a={301:s("common.redirectPermanently"),302:s("common.redirectTemporary"),307:s("common.redirectTemporary"),308:s("common.redirectPermanently")},l=$n(n,d=>d.meta.name),c=(d,m)=>{if(!m)return{};let{port:g}=d;m&&d.ports&&m.port&&(d.ports[m.port]&&(g=d.ports[m.port]),d.ports[m.port.internal]&&(g=d.ports[m.port.internal]));let{pathPrefix:f}=e;return m&&m.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&(f=m.prefix),{port:g,pathPrefix:f}},h=d=>{const m=l.find(f=>f.meta.did===d),g=ro(m);return{...c(m,g),interfaceName:g?g.name:""}};return p.useEffect(()=>{!e.interfaceName&&e.type===E.ROUTING_RULE_TYPES.BLOCKLET&&r({...e,...h(e.did),__disableConfirm:!1})},[]),t.jsxs(t.Fragment,{children:[t.jsx(q,{select:!0,label:s("router.domain.add.type"),autoComplete:"off",variant:"outlined",name:"type","data-cy":"domain-add-type",fullWidth:!0,value:e.type,onChange:d=>{i(""),r({...e,type:d.target.value,__disableConfirm:!1})},style:{marginBottom:32},SelectProps:{},children:o.map(({name:d,value:m})=>t.jsx(re,{value:m,children:d},m))}),e.type===E.ROUTING_RULE_TYPES.BLOCKLET&&t.jsxs(q,{select:!0,label:s("router.domain.add.blocklet"),autoComplete:"off",variant:"outlined",name:"did","data-cy":"domain-blocklet-select",fullWidth:!0,value:e.did,onChange:d=>{r({...e,...h(d.target.value),did:d.target.value,__disableConfirm:!1})},style:{marginBottom:32},children:[l.map(d=>t.jsxs(re,{value:d.meta.did,children:[`${d.meta.name} v${d.meta.version}`,t.jsx("span",{style:{marginLeft:8},children:t.jsx(Jn,{status:d.status,progress:d.progress})})]},d.meta.did)),n.length===0&&t.jsx(re,{value:"",children:s("common.empty")},"empty")]}),e.type===E.ROUTING_RULE_TYPES.REDIRECT&&[t.jsx(q,{select:!0,label:s("router.domain.add.redirect"),autoComplete:"off",variant:"outlined",name:"type",fullWidth:!0,value:e.redirectCode,onChange:d=>r({...e,redirectCode:d.target.value}),style:{marginBottom:32},SelectProps:{},children:Object.keys(a).map(d=>t.jsx(re,{value:d,children:`${a[d]} - ${d}`},d))}),t.jsx(q,{label:s("common.redirectUrl"),autoComplete:"off",variant:"outlined",name:"url",inputProps:{"data-cy":"redirect-url-input"},fullWidth:!0,autoFocus:!0,value:e.url,helperText:s("router.urlHelperText"),style:{marginBottom:32},onChange:d=>{r({...e,url:d.target.value,__disableConfirm:!d.target.value.trim()}),d.target.value.trim()?i(""):i(s("router.validation.redirectUrlRequired"))}})]]})}Le.propTypes={params:u.object,blocklets:u.array,serviceTypes:u.array,setParams:u.func,setError:u.func};Le.defaultProps={params:{},blocklets:[],serviceTypes:[{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}],setParams:()=>{},setError:()=>{}};const sr=(e,n)=>{if(e.type===E.ROUTING_RULE_TYPES.REDIRECT){if(!e.url)return new Error(`${n("router.validation.redirectUrlRequired")}`);if(!e.redirectCode)return new Error(`redirect ${n("router.validation.redirectCodeRequired")}`)}else if(e.type===E.ROUTING_RULE_TYPES.BLOCKLET&&!e.did)return new Error(n("router.validation.didRequired"));return null},Te=(e,n)=>e?e.endsWith(E.DEFAULT_IP_DOMAIN_SUFFIX)?n("router.domain.validate.suffixTip",{suffix:E.DEFAULT_IP_DOMAIN_SUFFIX}):null:n("router.domain.validate.emptyTip"),io=(e,n)=>{const r=sr(e,n);if(r)return r;const i=Te(e.domain,n);return i?new Error(i):null},We=(e,n)=>{const r=sr(e,n);return r||(e.pathPrefix.length?e.pathPrefix.length>150?new Error(n("router.validation.pathPrefixTooLong",{length:150})):null:new Error(n("router.validation.pathPrefixCannotBeEmpty")))},lr=({params:e,blocklets:n,blocklet:r,locale:i="en"})=>{if(r){let a=(r.children||[]).find(l=>gi(l.mountPoint,e.pathPrefix));if(r.meta.group!=="gateway"&&e.pathPrefix==="/"&&(a="/"),a)return{zh:`挂载点 ${e.pathPrefix} 已存在,请使用其他挂载点`,en:`The mount point ${e.pathPrefix} already exist, please use another mount point`}[i]}const o=n.find(a=>a.meta.did===e.did);if(!o)return"";const s=o.meta.interfaces.find(a=>a.type==="web");return s&&s.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&e.pathPrefix!==s.prefix?{zh:`该 blocklet 只能挂载在 ${s.prefix}`,en:`This blocklet can only be mounted on ${s.prefix}`}[i]:""},$t=e=>{if(e.length===0)return"";const{searchParams:n}=new URL(window.location.href),r=n.get("fromDid");if(r){const i=e.find(o=>o.meta.did===r);if(i)return i.meta.did}return e[0].meta.did};function nt({blocklets:e,onActivate:n=()=>{},children:r}){const{t:i}=F(),{actions:o}=ae(),{info:s}=Q(),[a,l]=p.useState(!1),[c,h]=p.useState(null),d=()=>{l(!1),h(null)},m=async y=>{l(!0);const j={from:{pathPrefix:"/"},to:{type:y.type}},v={domain:y.domain.trim()===s.ip?"":y.domain.trim()};if(y.type===E.ROUTING_RULE_TYPES.BLOCKLET){const S=e.find(C=>C.meta.did===y.did),T=X(S,"meta.interfaces",[]).find(C=>C.name===y.interfaceName);T&&T.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&(j.from.pathPrefix=T.prefix),j.to.port=y.port,j.to.did=y.did,j.to.interfaceName=y.interfaceName,v.rules=[j]}else y.type===E.ROUTING_RULE_TYPES.REDIRECT&&(j.to.url=y.url,j.to.redirectCode=y.redirectCode,v.rules=[j]);await o.addSite(v),l(!1),h(null)},g={title:i("router.domain.addSite"),description:(y,j,v)=>{const S=T=>{const C=T.__disableConfirm||!!io(T,i);j({...T,__disableConfirm:C})};return t.jsxs(I,{component:"div",children:[t.jsx(q,{label:i("router.domain.add.description"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:y.domain,style:{marginTop:16,marginBottom:32},inputProps:{"data-cy":"domain-name-input"},onChange:T=>{const C=T.target.value.trim(),x=Te(C,i);S({...y,domain:T.target.value,__disableConfirm:!!x}),v(x||"")}}),t.jsx(Le,{blocklets:e,params:y,setParams:S,setError:v})]})},confirm:i("router.domain.add.confirm"),cancel:i("router.domain.add.cancel"),params:{domain:"",did:$t(e),port:"",interfaceName:"",type:E.ROUTING_RULE_TYPES.BLOCKLET,redirectCode:302,__disableConfirm:!0},onConfirm:m,onCancel:d},f=y=>{y.stopPropagation(),h(g)||n()};return p.useEffect(()=>{const{searchParams:y}=new URL(window.location.href);y.get("fromDid")&&h(g)},[]),t.jsxs(t.Fragment,{children:[typeof r=="function"?r({loading:a,open:f}):t.jsxs(re,{onClick:f,className:"rule-action","data-cy":"action-add-domain",children:[a?t.jsx(K,{size:16}):t.jsx(Qn,{style:{fontSize:18,marginRight:5}}),i("router.domain.add.title")]}),c&&t.jsx(te,{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={blocklets:u.array,children:u.any,onActivate:u.func};nt.defaultProps={onActivate:()=>{},children:null,blocklets:[]};var Mt={},oo=ge;Object.defineProperty(Mt,"__esModule",{value:!0});var cr=Mt.default=void 0,ao=oo(pe()),so=t;cr=Mt.default=(0,ao.default)((0,so.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"}),"Error");var zt={},lo=ge;Object.defineProperty(zt,"__esModule",{value:!0});var dr=zt.default=void 0,co=lo(pe()),uo=t;dr=zt.default=(0,co.default)((0,uo.jsx)("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"}),"Storage");var Bt={},mo=ge;Object.defineProperty(Bt,"__esModule",{value:!0});var ur=Bt.default=void 0,fo=mo(pe()),po=t;ur=Bt.default=(0,fo.default)((0,po.jsx)("path",{d:"m19 15-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9z"}),"SubdirectoryArrowRight");function Cn(e){const{t:n}=F(),{actions:r}=ae(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,name:c}=e;if(At(c))return null;const h=()=>{o(!1),a(null)},d=async()=>{o(!0),await r.deleteSite(l),o(!1),a(null)},m={title:n("router.domain.delete.title"),description:n("router.domain.delete.description",{name:`<b>${c}</b>`}),confirmPlaceholder:n("router.domain.delete.confirm_desc",{name:c}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:d,onCancel:h,keyName:c},g=f=>{f.stopPropagation(),a(m)||e.onActivate()};return t.jsxs(t.Fragment,{children:[t.jsxs(re,{onClick:g,className:"rule-action","data-cy":"action-delete-domain",children:[i?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:18,marginRight:5}}),n("router.domain.delete.title")]}),s&&t.jsx(Et,{keyName:s.keyName,title:s.title,description:s.description,confirmPlaceholder:s.confirmPlaceholder,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}function qe({id:e,blocklets:n,onActivate:r=()=>{},onRuleAdded:i=()=>{},children:o,teamDid:s}){const{t:a}=F(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null),g=()=>{h(!1),m(null)},f=async v=>{const S=await We(v,a);if(S)throw S;h(!0);const T={from:{pathPrefix:qn(v.pathPrefix)},to:{type:v.type}};v.type===E.ROUTING_RULE_TYPES.BLOCKLET?(T.to.port=v.port,T.to.did=v.did,T.to.interfaceName=v.interfaceName):v.type===E.ROUTING_RULE_TYPES.REDIRECT&&(T.to.url=v.url.trim(),T.to.redirectCode=v.redirectCode),await l.addRule(e,T,s),m(null),h(!1),i()},y={title:a("router.rule.add.title"),description:(v,S,T)=>{const C=x=>{if(T(null),We(x,a)){S({...x,__disableConfirm:!0});return}S({...x})};return t.jsxs(I,{component:"div",children:[t.jsx(q,{label:a("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:v.helperText||a("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:v.pathPrefix,onChange:x=>{let A=!1;const R=lr({params:{...v,pathPrefix:x.target.value},blocklets:n});T(R),v.type===E.ROUTING_RULE_TYPES.BLOCKLET&&R&&(A=!0),v.type===E.ROUTING_RULE_TYPES.REDIRECT&&!v.url&&(A=!0),x.target.value.trim()||(A=!0,T(a("router.validation.pathPrefixRequired"))),A||T("");const P=a("common.slugifyHint",{value:Wn(x.target.value)});S({...v,pathPrefix:x.target.value,helperText:P,__disableConfirm:A})}}),t.jsx(Le,{blocklets:n,params:v,setParams:C,setError:T})]})},confirm:a("router.rule.add.confirm"),cancel:a("common.cancel"),params:{pathPrefix:"",type:E.ROUTING_RULE_TYPES.BLOCKLET,did:$t(n),port:"",interfaceName:"",redirectCode:302,__disableConfirm:!0},onConfirm:f,onCancel:g},j=v=>{v.stopPropagation(),m(y)||r()};return t.jsxs(t.Fragment,{children:[typeof o=="function"?o({loading:c,open:j}):t.jsxs(re,{onClick:j,className:"rule-action","data-cy":"action-add-rule",children:[c?t.jsx(K,{size:16}):t.jsx(Xn,{style:{fontSize:18,marginRight:5}}),a("router.rule.add.title")]}),d&&t.jsx(te,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}qe.propTypes={id:u.string.isRequired,blocklets:u.array,children:u.any,onActivate:u.func,onRuleAdded:u.func,teamDid:u.string};qe.defaultProps={onActivate:()=>{},onRuleAdded:()=>{},children:null,blocklets:[],teamDid:""};function Wt(e){const{t:n}=F(),{actions:r}=ae(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,parent:{id:c},name:h,children:d,onActivate:m,teamDid:g}=e,f=()=>{o(!1),a(null)},y=async()=>{o(!0),await r.deleteRule(c,l,g),o(!1),a(null)},j={keyName:h,title:n("router.rule.delete.title"),description:n("router.rule.delete.description",{name:`<b>${h}</b>`}),confirmPlaceholder:n("router.rule.delete.confirm_desc",{name:h}),confirm:n("common.delConfirm"),cancel:n("router.rule.delete.cancel"),onConfirm:y,onCancel:f},v=S=>{S.stopPropagation(),a(j)||m()};return t.jsxs(t.Fragment,{children:[typeof d=="function"?d({loading:i,open:v}):t.jsxs(re,{onClick:v,className:"rule-action","data-cy":"action-delete-rule",children:[i?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:18,marginRight:5}}),n("router.rule.delete.title")]}),s&&t.jsx(Et,{keyName:s.keyName,title:s.title,description:s.description,confirmPlaceholder:s.confirmPlaceholder,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}Wt.propTypes={id:u.string.isRequired,name:u.string.isRequired,parent:u.object.isRequired,children:u.any,onActivate:u.func,teamDid:u.string};Wt.defaultProps={onActivate:()=>{},children:null,teamDid:""};function qt(e){const{id:n,name:r,did:i,parent:o,blocklets:s,to:a,children:l,onActivate:c,teamDid:h}=e,{t:d}=F(),{actions:m}=ae(),[g,f]=p.useState(!1),[y,j]=p.useState(null),v=()=>{f(!1),j(null)},S=async x=>{const A=await We(x,d);if(A)throw A;f(!0);const R={id:n,from:{pathPrefix:qn(x.pathPrefix)},to:{type:x.type}};x.type===E.ROUTING_RULE_TYPES.BLOCKLET?(R.to.port=x.port,R.to.did=x.did,R.to.interfaceName=x.interfaceName):x.type===E.ROUTING_RULE_TYPES.REDIRECT&&(R.to.url=x.url,R.to.redirectCode=x.redirectCode),await m.updateRule(o.id,R,h),j(null),f(!1)},T={title:d("router.rule.update.title"),description:(x,A,R)=>{const P=b=>{if(We(b,d)){A({...b,__disableConfirm:!0});return}A({...b})};return t.jsxs(I,{component:"div",children:[t.jsx(q,{label:d("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:x.helperText||d("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:x.pathPrefix,onChange:b=>{let _=!1;const w=lr({params:{...x,pathPrefix:b.target.value},blocklets:s});x.type===E.ROUTING_RULE_TYPES.BLOCKLET&&w&&(_=!0,R(w)),x.type===E.ROUTING_RULE_TYPES.REDIRECT&&!x.url&&(_=!0),b.target.value.trim()||(_=!0,R(d("router.validation.pathPrefixRequired"))),_||R("");const L=d("common.slugifyHint",{value:Wn(b.target.value)});A({...x,pathPrefix:b.target.value,helperText:L,__disableConfirm:_})}}),t.jsx(Le,{blocklets:s,params:x,setParams:P,setError:R})]})},confirm:d("router.rule.update.confirm"),cancel:d("router.rule.update.cancel"),color:"primary",params:{pathPrefix:r==="/"?r:r.replace(/^\/+/,"").replace(/\/+$/,""),type:a.type||E.ROUTING_RULE_TYPES.BLOCKLET,did:i||$t(s),port:a.port||"",interfaceName:a.interfaceName||"",redirectCode:a.redirectCode||302,url:a.url||"",__disableConfirm:!1},onConfirm:S,onCancel:v},C=x=>{x.stopPropagation(),j(T)||c()};return t.jsxs(t.Fragment,{children:[typeof l=="function"?l({loading:g,open:C}):t.jsxs(re,{onClick:C,className:"rule-action","data-cy":"action-update-rule",children:[g?t.jsx(K,{size:16}):t.jsx(Zn,{style:{fontSize:18,marginRight:5}}),d("router.rule.update.title")]}),y&&t.jsx(te,{title:y.title,description:y.description,confirm:y.confirm,color:y.color,cancel:y.cancel,params:y.params,onConfirm:y.onConfirm,onCancel:y.onCancel})]})}qt.propTypes={id:u.string.isRequired,name:u.string.isRequired,did:u.string,parent:u.object.isRequired,blocklets:u.array,to:u.object.isRequired,children:u.any,onActivate:u.func,teamDid:u.string};qt.defaultProps={onActivate:()=>{},children:null,did:"",blocklets:[],teamDid:""};function He({id:e,name:n,onActivate:r,children:i,title:o,teamDid:s}){const{t:a}=F(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null);if(E.DOMAIN_FOR_DEFAULT_SITE===n)return null;const g=()=>{h(!1),m(null)},f=async S=>{h(!0),await l.addDomainAlias(e,S.domain.trim(),!!S.force,s),h(!1),m(null)},y=async(S,T,C)=>{try{await T(S)}catch(x){C(de(x))}finally{h(!1)}},j={title:o||a("router.domainAlias.add.title"),description:(S,T,C)=>t.jsxs(I,{component:"div",children:[t.jsx(q,{label:a("router.domainAlias.add.domainDescription"),autoComplete:"off",variant:"outlined",name:"domain","data-cy":"add-domain",fullWidth:!0,autoFocus:!0,inputProps:{"data-cy":"domain-name-input"},value:S.domain,style:{marginBottom:8},margin:"dense",onChange:x=>{const A=x.target.value.trim(),R=Te(A,a);T({...S,domain:A,__disableConfirm:!!R}),C(R||"")},onKeyPress:x=>{if(x.key==="Enter"){x.preventDefault();const A=x.target.value.trim(),R=Te(A,a);R?C(R):y(S,f,C)}}}),t.jsx(Hn,{control:t.jsx(Or,{checked:S.force,onChange:x=>{T({...S,force:x.target.checked})},name:"checkedB",color:"primary"}),label:a("router.domainAlias.add.forceTip")})]}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{domain:"",__disableConfirm:!0},onConfirm:f,onCancel:g},v=S=>{S.stopPropagation(),m(j)||r()};return t.jsxs(t.Fragment,{children:[typeof i=="function"?i({loading:c,open:v}):t.jsxs(re,{onClick:v,className:"rule-action","data-cy":"action-add-domain-alias",children:[c?t.jsx(K,{size:16}):t.jsx(bi,{style:{fontSize:18,marginRight:5}}),a("router.domainAlias.add.title")]}),d&&t.jsx(te,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}He.propTypes={id:u.string.isRequired,name:u.string.isRequired,children:u.any,onActivate:u.func,title:u.string,teamDid:u.string};He.defaultProps={onActivate:()=>{},children:null,title:"",teamDid:""};function Ke({id:e,name:n,corsAllowedOrigins:r,onActivate:i,children:o,teamDid:s}){const{t:a}=F(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null);if(At(n))return null;let g=n;n.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX)&&(g=`${a("common.the")} Blocklet`);const f=()=>{h(!1),m(null)},y=async S=>{h(!0),await l.updateSite(e,{corsAllowedOrigins:S.corsAllowedOrigins.split(",").map(T=>T.trim())},s),h(!1),m(null)},j={title:a("router.domainSecurity.title"),description:(S,T,C)=>t.jsx(I,{component:"div",children:t.jsx(q,{label:a("router.domainSecurity.cors.title",{name:g}),autoComplete:"off",variant:"outlined",name:"corsAllowedOrigins",fullWidth:!0,autoFocus:!0,value:S.corsAllowedOrigins,style:{marginBottom:32},margin:"dense",helperText:a("router.domainSecurity.cors.description",{name:g}),onChange:x=>{T({...S,corsAllowedOrigins:x.target.value,__disableConfirm:!x.target.value.trim()}),x.target.value.trim()?C(""):C(a("router.domainSecurity.cors.domainInvalid"))}})}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{corsAllowedOrigins:Array.isArray(r)?r.join(", "):n,__disableConfirm:!0},onConfirm:y,onCancel:f},v=S=>{S.stopPropagation(),m(j)||i()};return t.jsxs(t.Fragment,{children:[typeof o=="function"?o({loading:c,open:v}):t.jsxs(re,{onClick:v,className:"rule-action","data-cy":"action-update-domain",children:[c?t.jsx(K,{size:16}):t.jsx(Pt,{style:{fontSize:18,marginRight:5}}),a("router.domainSecurity.title")]}),d&&t.jsx(te,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}Ke.propTypes={id:u.string.isRequired,name:u.string.isRequired,children:u.any,onActivate:u.func,corsAllowedOrigins:u.oneOfType([u.string,u.array]),teamDid:u.string};Ke.defaultProps={onActivate:()=>{},children:null,corsAllowedOrigins:"",teamDid:""};function go({id:e,name:n,onActivate:r}){const{t:i}=F(),{actions:o}=ae(),[s,a]=p.useState(!1),[l,c]=p.useState(null);if(At(n))return null;const h=()=>{a(!1),c(null)},d=async f=>{a(!0),await o.updateSite(e,{domain:f.domain.trim()}),a(!1),c(null)},m={title:i("router.domain.update.title"),description:(f,y,j)=>t.jsx(I,{component:"div",children:t.jsx(q,{label:i("router.domain.update.label"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:f.domain,style:{marginBottom:32},margin:"dense",helperText:i("router.domain.update.description"),onChange:v=>{const S=v.target.value.trim(),T=Te(S,i);y({...f,domain:v.target.value,__disableConfirm:!!T}),j(T||"")}})}),confirm:i("common.confirm"),cancel:i("common.cancel"),params:{domain:n,__disableConfirm:!0},onConfirm:d,onCancel:h},g=f=>{f.stopPropagation(),c(m)||r()};return t.jsxs(t.Fragment,{children:[t.jsxs(re,{onClick:g,className:"rule-action",children:[s?t.jsx(K,{size:16}):t.jsx(Zn,{style:{fontSize:18,marginRight:5}}),i("router.domain.update.title")]}),l&&t.jsx(te,{title:l.title,description:l.description,confirm:l.confirm,cancel:l.cancel,params:l.params,onConfirm:l.onConfirm,onCancel:l.onCancel,color:"primary"})]})}function be(e){const[n,r]=p.useState(null),i=l=>{l.stopPropagation(),r(l.currentTarget)},o=l=>{l&&l.stopPropagation(),r(null)},s=[];if(e.type==="root"&&s.push(t.jsx(nt,{...e,onActivate:o},"add-domain")),e.type==="domain"&&s.push(t.jsx(go,{...e,onActivate:o},"update-domain"),t.jsx(qe,{...e,onActivate:o,onRuleAdded:e.onRuleAdded},"add-rule"),t.jsx(He,{...e,onActivate:o},"add-domain-alias"),t.jsx(Ke,{...e,onActivate:o},"update-domain-security"),t.jsx(Cn,{...e,onActivate:o},"delete-domain")),e.type==="rule"&&s.push(t.jsx(qt,{...e,onActivate:o},"update-rule"),t.jsx(Wt,{...e,onActivate:o},"delete-rule")),e.type===E.ROUTING_RULE_TYPES.REDIRECT&&s.push(t.jsx(Cn,{...e,onActivate:o},"delete-domain")),(e.type==="dashboard_domain"||e.type==="blocklet_domain")&&s.push(t.jsx(qe,{...e,onActivate:o},"add-rule"),t.jsx(Ke,{...e,onActivate:o},"update-domain-security"),t.jsx(He,{...e,onActivate:o},"add-domain-alias")),s.length===0)return null;const a=l=>{l.stopPropagation()};return t.jsxs("div",{children:[t.jsx(Fr,{onMouseDown:a,onClick:i,"data-cy":"action-trigger",size:"large",children:t.jsx(vi,{})}),t.jsx(Nr,{keepMounted:!0,onMouseDown:a,open:!!n,onClose:o,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:s})]})}be.propTypes={blocklet:u.object,onRuleAdded:u.func};be.defaultProps={onRuleAdded:()=>{},blocklet:{}};function Ht({certificate:e}){const[n,r]=p.useState(null),i=Q(),{t:o,locale:s}=F(),a=h=>{r(h.currentTarget)},l=()=>{r(null)},c=!!n;return t.jsxs(t.Fragment,{children:[t.jsx(er,{"aria-owns":c?"mouse-over-popover":void 0,onMouseEnter:a,onMouseLeave:l,style:{color:"#44cdc6",fontSize:20,marginLeft:8,cursor:"pointer"}}),t.jsx($r,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:c,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:l,disableRestoreFocus:!0,children:t.jsx(Mr,{children:t.jsxs(zr,{style:{display:"flex"},children:[t.jsx("div",{children:t.jsx("img",{src:`${i.imgPrefix}/https-certificate-icon.png`,alt:"certificate icon",style:{maxHeight:"100%",maxWidth:"100%"}})}),t.jsxs(I,{component:"div",style:{marginLeft:"16px"},children:[t.jsx(I,{component:"div",style:{fontWeight:"bold"},children:e.domain}),t.jsx(I,{component:"div",children:`${o("common.issuer")}: ${X(e,"issuer.commonName","")}`}),t.jsx(I,{component:"div",children:`${o("router.cert.issuedOn")}: ${ze(e.validFrom,s)}`}),t.jsx(I,{component:"div",children:`${o("router.cert.expiryOn")}: ${ze(e.validTo,s)}`})]})]})})})]})}Ht.propTypes={certificate:u.object};Ht.defaultProps={certificate:{}};function Ge(e){const{name:n,type:r,filters:i}=e,{t:o}=F(),{status:s}=tt();if(r!=="domain"||!Rt(n))return null;let a=null,l=null;const{isHttps:c,matchedCert:h}=s[n]||{};if(!Ur(n)){const{dns:{resolved:m,ip:g}={}}=s[n]||{};m||g==="127.0.0.1"?a=t.jsx(je,{title:o("router.domain.verify.ok"),children:t.jsx(hn,{color:"success"})}):a=t.jsx(je,{title:o("router.domain.verify.notResolved"),children:t.jsx(hn,{color:"error"})})}c?l=t.jsx(Ht,{certificate:h}):l=t.jsx(je,{title:o("router.domain.https.bad"),children:t.jsx(er,{style:{color:"#D0021B",fontSize:20,marginLeft:8,cursor:"pointer"}})});const d=i.map(m=>m==="domain"?a:m==="http"?l:null);return p.createElement(p.Fragment,null,...d)}Ge.propTypes={type:u.string.isRequired,name:u.string.isRequired,filters:u.array};Ge.defaultProps={filters:["domain","http"]};const ho=e=>["waiting","creating","renewaling"].includes(e);function Kt(e){var A;const{t:n}=F(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{domain:a,onAdd:l,children:c,siteId:h}=e,{api:d}=Q(),[m,g]=p.useState(!1),{updateStatus:f}=tt(),y=ue(),j=Pe(async()=>{const{cert:R}=await y.findCertificateByDomain({input:{domain:a}});return R}),v=R=>{R.domain===a&&g(!1)};if(p.useEffect(()=>{var R;!j.loading&&ho((R=j.value)==null?void 0:R.status)&&g(!0)},[j]),xt(E.EVENTS.CERT_ERROR,v),xt(E.EVENTS.CERT_ISSUED,R=>{j.retry(),f(R.domain),v(R)}),j.loading||((A=j.value)==null?void 0:A.status)==="normal")return"";const S=()=>{i(!1),s(null)},T=async()=>{i(!0);try{await d.issueLetsEncryptCert({input:{domain:a,siteId:h}}),l(),g(!0)}catch(R){console.error(R),g(!1)}finally{i(!1),s(null)}},C={title:n("router.cert.genLetsEncryptCert.title"),description:t.jsxs("div",{children:[t.jsx(Ce,{type:"success",children:n("router.cert.genLetsEncryptCert.dnsTip")}),n("router.cert.genLetsEncryptCert.description")]}),confirm:n("common.confirm"),onConfirm:T,onCancel:S},x=R=>{R.stopPropagation(),s(C)};return t.jsxs(t.Fragment,{children:[m?t.jsx(je,{title:n("router.cert.issuing"),children:t.jsx(K,{size:12})}):c({loading:r,open:x}),o&&t.jsx(te,{color:"primary",title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}Kt.propTypes={domain:u.string.isRequired,onAdd:u.func,children:u.any,siteId:u.string.isRequired};Kt.defaultProps={onAdd:()=>{},children:null};function Ye(e){var i;const{status:n}=tt(),{domain:r}=e;return!Rt(r)||(i=n[r])!=null&&i.isHttps?"":t.jsx(Kt,{...e})}Ye.propTypes={siteId:u.string.isRequired,domain:u.string.isRequired,onAdd:u.func,children:u.any};Ye.defaultProps={onAdd:()=>{},children:null};function Gt(e){const{t:n}=F(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{id:a,domain:l,onDelete:c,children:h,teamDid:d}=e,{actions:m}=ae();if(l===window.location.hostname)return"";const g=()=>{i(!1),s(null)},f=async()=>{i(!0);try{await m.deleteDomainAlias(a,l,d),c()}catch(v){console.error(v)}finally{i(!1),s(null)}},y={title:n("router.domainAlias.delete.title"),description:n("router.domainAlias.delete.description"),confirm:n("common.confirm"),onConfirm:f,onCancel:g},j=v=>{v.stopPropagation(),s(y)};return t.jsxs(t.Fragment,{children:[typeof h=="function"?h({loading:r,open:j}):t.jsxs(H,{edge:"end",onClick:j,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[r?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:16}}),n("router.domainAlias.delete.title")]}),o&&t.jsx(te,{title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}Gt.propTypes={id:u.string.isRequired,domain:u.string.isRequired,onDelete:u.func,children:u.any,teamDid:u.string};Gt.defaultProps={onDelete:()=>{},children:null,teamDid:""};function Yt({domain:e,isHttps:n,toUrl:r}){const i=n?"https":"http",{t:o}=F();let s=r;return Yr(s)||(s=`${i}://${e}${r}`),t.jsxs(t.Fragment,{children:[t.jsx(I,{className:"arrow-name-middle",children:o("common.redirect")}),t.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),t.jsx(Gn,{href:s,target:"_blank",underline:"hover",children:r},s)]})}Yt.propTypes={domain:u.string.isRequired,toUrl:u.string.isRequired,isHttps:u.bool};Yt.defaultProps={isHttps:!1};function Vt(){const{t:e}=F();return t.jsx(I,{className:"arrow-name-middle",children:e("common.page404")})}Vt.propTypes={};Vt.defaultProps={};function Ee(e){const{t:n}=F(),{data:r}=Kn(),{info:i}=Q(),{status:o}=tt(),s=r.map(z=>({meta:{did:z.meta.did,name:Wr(z,!0),version:z.meta.version,interfaces:z.meta.interfaces},port:z.port,ports:z.ports,status:z.status})),{id:a,type:l,name:c,title:h,items:d=[],depth:m,to:g,expand:f,isProtected:y,pathPrefix:j,parent:v,domainAliases:S}=e;let T=c;const C=c.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX);let x=l;c===fe&&(x="dashboard_domain"),C&&(x="blocklet_domain");const[A,R]=p.useState(f),b={root:dr,domain:Qn,rule:ur}[l],_={paddingBottom:8,paddingLeft:8};if(l==="domain"){let z=function({domain:U,primaryDomain:N,rules:O}){let B=`http://${U}`;return N===fe?B=`${B}/${i.routing.adminPath.replace(/^\/+/,"")}`:O&&O.length&&O[0].pathPrefix&&(B=`${B}/${O[0].pathPrefix.replace(/^\/+/,"")}`),U!==fe?t.jsx(xo,{href:B,target:"_blank",rel:"noreferrer",onClick:he=>he.stopPropagation(),children:U}):U};if(y&&!C)return null;if(C){const U=c.replace(E.BLOCKLET_SITE_GROUP_SUFFIX,""),N=s.find(O=>O.meta.did===U);if(!N||N.controller)return null;T=N.meta.title||N.meta.name}z.propTypes={domain:u.string.isRequired,primaryDomain:u.string.isRequired,rules:u.array.isRequired};const me=()=>{R(!0)};let le=(S||[]).filter(U=>U.value!==c);return le=qr(le),[t.jsxs(pt,{alignItems:"flex-start",button:!0,disableGutters:!0,"data-cy":"rule-domain",children:[t.jsxs(ut,{onClick:()=>R(U=>!U),children:[d.length>0&&(A?t.jsx(Hr,{}):t.jsx(yi,{})),t.jsx(b,{style:{fontSize:22}})]}),t.jsx(mt,{onClick:()=>R(U=>!U),className:`rule-name rule-name--depth${m}`,style:{flex:1},secondary:d.length<=0?t.jsx("span",{className:"site-secondary",children:n("router.empty")}):"",primary:t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"site-header",children:[c===E.DOMAIN_FOR_DEFAULT_SITE&&n("router.defaultSite"),c!==E.DOMAIN_FOR_DEFAULT_SITE&&!C&&t.jsx(z,{domain:c,primaryDomain:c,rules:d}),C&&T,d.length&&!A?t.jsx("span",{style:{marginLeft:5},children:`(${d.length} URL)`}):null,t.jsx("span",{style:{marginLeft:12}}),l==="domain"&&c!==E.DOMAIN_FOR_DEFAULT_SITE&&c!==fe&&!C&&t.jsxs(t.Fragment,{children:[t.jsx(Ge,{type:l,name:c},c),t.jsx("span",{style:{marginLeft:12}}),t.jsx(Ye,{siteId:a,domain:c,children:({open:U})=>t.jsx(H,{size:"small",onClick:N=>U(N),children:n("router.cert.genLetsEncryptCert.title")})})]})]}),le.map(U=>{const N=typeof U!="string"?U.value:U;return t.jsxs("div",{className:"site-alias",children:[t.jsx(z,{domain:N,primaryDomain:c,rules:d}),t.jsx("span",{style:{marginLeft:12}}),t.jsx(Ge,{type:l,name:N},`domain-status-${c}`),t.jsx(Ye,{siteId:a,domain:N,children:({open:O})=>t.jsx(H,{size:"small",onClick:B=>O(B),children:n("router.cert.genLetsEncryptCert.title")})}),!U.isProtected&&t.jsx(Gt,{id:e.id,domain:N},"delete-domain-alias"),N!==fe&&N!==window.location.hostname&&t.jsx(be,{...e,domain:N,type:"domainAlias",onRuleAdded:me},`action-${c}`)]},N)})]})}),t.jsx(ee,{permission:"mutate_router",children:t.jsx(ft,{children:t.jsx(be,{blocklets:s,...e,onRuleAdded:me,type:x},c)})})]},"parent"),t.jsx(Kr,{in:A,children:d.length>0&&t.jsx(yt,{component:"div",className:`rule-list rule-list--depth${m}`,disablePadding:!0,children:d.map(U=>t.jsx(Ee,{...U,parent:e,depth:m+1},U.id))},"children")},"rules")]}if(l==="root")return[t.jsxs(pt,{disableGutters:!0,"data-cy":"rule-root",children:[t.jsx(ut,{children:t.jsx(b,{style:{fontSize:22}})}),t.jsx(mt,{primary:c}),t.jsx(ee,{permission:"mutate_router",children:t.jsx(ft,{children:t.jsx(be,{blocklets:s,...e})})})]},"root"),d.length>0&&t.jsx(yt,{component:"div",className:`rule-list rule-list--depth${m}`,disablePadding:!0,children:d.map(z=>t.jsx(Ee,{expand:!y,...z,parent:e,depth:m+1},z.id))},"children")];let w=`/blocklets/${g.did}/overview`;g.type===E.ROUTING_RULE_TYPES.DAEMON&&(w="/");const L={meta:{did:i.did,name:"Blocklet Server Dashboard",version:i.version},status:"running",port:i.port},$=g.did===i.did?L:s.find(z=>z.meta.did===g.did),Y=$&&$.status==="running"||g.type===E.ROUTING_RULE_TYPES.DAEMON,ie=n(Y?"router.healthy.ok":"router.healthy.error"),W=o[v.name]||{};return t.jsxs(pt,{className:"hover-item",divider:!0,disableGutters:!0,style:_,"data-cy":"rule-item",children:[t.jsx(ut,{className:"arrow-icon",children:t.jsx(b,{style:{fontSize:22}})}),t.jsx(mt,{primary:t.jsxs(I,{component:"div",className:"arrow-name",children:[t.jsx(I,{style:{wordBreak:"break-all"},className:"arrow-name-left",children:c}),t.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),(g.type===E.ROUTING_RULE_TYPES.DAEMON||g.type===E.ROUTING_RULE_TYPES.BLOCKLET)&&t.jsxs(t.Fragment,{children:[v.name!==E.DOMAIN_FOR_DEFAULT_SITE&&Y&&t.jsx(Z,{className:"arrow-name-middle",children:t.jsx(Gn,{href:_t(v.name,j),target:"_blank",underline:"hover",children:n("common.open")})}),v.name===E.DOMAIN_FOR_DEFAULT_SITE&&t.jsx(I,{component:"span",className:"arrow-name-middle",children:"Blocklet"}),!Y&&t.jsx("span",{className:"arrow-name-middle",children:n("common.unavailable")}),t.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),t.jsxs(Gr,{to:w,className:"arrow-name-right",children:[t.jsx(je,{title:ie,children:Y?t.jsx(xi,{style:{color:"#44cdc6",fontSize:20}}):t.jsx(cr,{style:{color:"red",fontSize:20}})}),t.jsx("span",{children:$?$.meta.name:h}),$&&t.jsx("span",{style:{marginLeft:8},children:t.jsx(Jn,{status:$.status,progress:$.progress})})]})]}),g.type===E.ROUTING_RULE_TYPES.REDIRECT&&t.jsx(Yt,{prefix:j,domain:v.name,toUrl:g.url,isHttps:W.isHttps}),g.type===E.ROUTING_RULE_TYPES.NONE&&t.jsx(Vt,{})]})}),t.jsx(ee,{permission:"mutate_router",children:t.jsx(ft,{children:t.jsx(be,{blocklets:s,...e,did:g.did})})})]},c)}Ee.propTypes={type:u.string.isRequired,to:u.object,name:u.string.isRequired,title:u.string,id:u.string,items:u.array,parent:u.object,depth:u.number,expand:u.bool,isProtected:u.bool,pathPrefix:u.string,domainAliases:u.array};Ee.defaultProps={id:"",to:{},title:"",items:[],depth:0,parent:{},expand:!0,isProtected:!1,pathPrefix:"",domainAliases:[]};const pt=G(Br)`
|
|
121
|
+
`,or=p.createContext({}),{Provider:no,Consumer:rs}=or;function ar({children:e,domains:n}){const r=ue(),i=JSON.stringify(n),[o,s]=p.useState({}),a=p.useMemo(()=>n.filter(f=>Rt(f)),[i]);xt(E.EVENTS.DOMAIN_STATUS,f=>{f&&s(y=>({...y,[f.domain]:{...y[f.domain],...f}}))});const{domainsAccessibility:l,recommendedDomain:c}=mi(a),h=p.useMemo(()=>{const f={...o};return Object.keys(l).forEach(y=>{const b=f[y]||{};f[y]={...b,...l[y]}}),f},[o,l]),d=()=>{a.length>0&&r.checkDomains({input:{domains:a}})},m=f=>{f&&r.checkDomains({input:{domains:[f]}})};p.useEffect(()=>{d()},[a]);const g={refresh:d,updateStatus:m,api:r,status:h,recommendedDomain:c,recommendedDomainStatus:h[c]};return t.jsx(no,{value:g,children:e})}ar.propTypes={children:u.any.isRequired,domains:u.array.isRequired};function tt(){const{status:e,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}=p.useContext(or);return{status:e,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}}const ro=e=>(X(e,"meta.interfaces")||[]).find(r=>r.type===Je.BLOCKLET_INTERFACE_TYPE_WEB);function Le({params:e,blocklets:n,setParams:r,setError:i,serviceTypes:o}){const{t:s}=F(),a={301:s("common.redirectPermanently"),302:s("common.redirectTemporary"),307:s("common.redirectTemporary"),308:s("common.redirectPermanently")},l=$n(n,d=>d.meta.name),c=(d,m)=>{if(!m)return{};let{port:g}=d;m&&d.ports&&m.port&&(d.ports[m.port]&&(g=d.ports[m.port]),d.ports[m.port.internal]&&(g=d.ports[m.port.internal]));let{pathPrefix:f}=e;return m&&m.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&(f=m.prefix),{port:g,pathPrefix:f}},h=d=>{const m=l.find(f=>f.meta.did===d),g=ro(m);return{...c(m,g),interfaceName:g?g.name:""}};return p.useEffect(()=>{!e.interfaceName&&e.type===E.ROUTING_RULE_TYPES.BLOCKLET&&r({...e,...h(e.did),__disableConfirm:!1})},[]),t.jsxs(t.Fragment,{children:[t.jsx(q,{select:!0,label:s("router.domain.add.type"),autoComplete:"off",variant:"outlined",name:"type","data-cy":"domain-add-type",fullWidth:!0,value:e.type,onChange:d=>{i(""),r({...e,type:d.target.value,__disableConfirm:!1})},style:{marginBottom:32},SelectProps:{},children:o.map(({name:d,value:m})=>t.jsx(re,{value:m,children:d},m))}),e.type===E.ROUTING_RULE_TYPES.BLOCKLET&&t.jsxs(q,{select:!0,label:s("router.domain.add.blocklet"),autoComplete:"off",variant:"outlined",name:"did","data-cy":"domain-blocklet-select",fullWidth:!0,value:e.did,onChange:d=>{r({...e,...h(d.target.value),did:d.target.value,__disableConfirm:!1})},style:{marginBottom:32},children:[l.map(d=>t.jsxs(re,{value:d.meta.did,children:[`${d.meta.name} v${d.meta.version}`,t.jsx("span",{style:{marginLeft:8},children:t.jsx(Jn,{status:d.status,progress:d.progress})})]},d.meta.did)),n.length===0&&t.jsx(re,{value:"",children:s("common.empty")},"empty")]}),e.type===E.ROUTING_RULE_TYPES.REDIRECT&&[t.jsx(q,{select:!0,label:s("router.domain.add.redirect"),autoComplete:"off",variant:"outlined",name:"type",fullWidth:!0,value:e.redirectCode,onChange:d=>r({...e,redirectCode:d.target.value}),style:{marginBottom:32},SelectProps:{},children:Object.keys(a).map(d=>t.jsx(re,{value:d,children:`${a[d]} - ${d}`},d))}),t.jsx(q,{label:s("common.redirectUrl"),autoComplete:"off",variant:"outlined",name:"url",inputProps:{"data-cy":"redirect-url-input"},fullWidth:!0,autoFocus:!0,value:e.url,helperText:s("router.urlHelperText"),style:{marginBottom:32},onChange:d=>{r({...e,url:d.target.value,__disableConfirm:!d.target.value.trim()}),d.target.value.trim()?i(""):i(s("router.validation.redirectUrlRequired"))}})]]})}Le.propTypes={params:u.object,blocklets:u.array,serviceTypes:u.array,setParams:u.func,setError:u.func};Le.defaultProps={params:{},blocklets:[],serviceTypes:[{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}],setParams:()=>{},setError:()=>{}};const sr=(e,n)=>{if(e.type===E.ROUTING_RULE_TYPES.REDIRECT){if(!e.url)return new Error(`${n("router.validation.redirectUrlRequired")}`);if(!e.redirectCode)return new Error(`redirect ${n("router.validation.redirectCodeRequired")}`)}else if(e.type===E.ROUTING_RULE_TYPES.BLOCKLET&&!e.did)return new Error(n("router.validation.didRequired"));return null},Te=(e,n)=>e?e.endsWith(E.DEFAULT_IP_DOMAIN_SUFFIX)?n("router.domain.validate.suffixTip",{suffix:E.DEFAULT_IP_DOMAIN_SUFFIX}):null:n("router.domain.validate.emptyTip"),io=(e,n)=>{const r=sr(e,n);if(r)return r;const i=Te(e.domain,n);return i?new Error(i):null},We=(e,n)=>{const r=sr(e,n);return r||(e.pathPrefix.length?e.pathPrefix.length>150?new Error(n("router.validation.pathPrefixTooLong",{length:150})):null:new Error(n("router.validation.pathPrefixCannotBeEmpty")))},lr=({params:e,blocklets:n,blocklet:r,locale:i="en"})=>{if(r){let a=(r.children||[]).find(l=>gi(l.mountPoint,e.pathPrefix));if(r.meta.group!=="gateway"&&e.pathPrefix==="/"&&(a="/"),a)return{zh:`挂载点 ${e.pathPrefix} 已存在,请使用其他挂载点`,en:`The mount point ${e.pathPrefix} already exist, please use another mount point`}[i]}const o=n.find(a=>a.meta.did===e.did);if(!o)return"";const s=o.meta.interfaces.find(a=>a.type==="web");return s&&s.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&e.pathPrefix!==s.prefix?{zh:`该 blocklet 只能挂载在 ${s.prefix}`,en:`This blocklet can only be mounted on ${s.prefix}`}[i]:""},$t=e=>{if(e.length===0)return"";const{searchParams:n}=new URL(window.location.href),r=n.get("fromDid");if(r){const i=e.find(o=>o.meta.did===r);if(i)return i.meta.did}return e[0].meta.did};function nt({blocklets:e,onActivate:n=()=>{},children:r}){const{t:i}=F(),{actions:o}=ae(),{info:s}=Q(),[a,l]=p.useState(!1),[c,h]=p.useState(null),d=()=>{l(!1),h(null)},m=async y=>{l(!0);const b={from:{pathPrefix:"/"},to:{type:y.type}},v={domain:y.domain.trim()===s.ip?"":y.domain.trim()};if(y.type===E.ROUTING_RULE_TYPES.BLOCKLET){const S=e.find(C=>C.meta.did===y.did),T=X(S,"meta.interfaces",[]).find(C=>C.name===y.interfaceName);T&&T.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&(b.from.pathPrefix=T.prefix),b.to.port=y.port,b.to.did=y.did,b.to.interfaceName=y.interfaceName,v.rules=[b]}else y.type===E.ROUTING_RULE_TYPES.REDIRECT&&(b.to.url=y.url,b.to.redirectCode=y.redirectCode,v.rules=[b]);await o.addSite(v),l(!1),h(null)},g={title:i("router.domain.addSite"),description:(y,b,v)=>{const S=T=>{const C=T.__disableConfirm||!!io(T,i);b({...T,__disableConfirm:C})};return t.jsxs(I,{component:"div",children:[t.jsx(q,{label:i("router.domain.add.description"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:y.domain,style:{marginTop:16,marginBottom:32},inputProps:{"data-cy":"domain-name-input"},onChange:T=>{const C=T.target.value.trim(),x=Te(C,i);S({...y,domain:T.target.value,__disableConfirm:!!x}),v(x||"")}}),t.jsx(Le,{blocklets:e,params:y,setParams:S,setError:v})]})},confirm:i("router.domain.add.confirm"),cancel:i("router.domain.add.cancel"),params:{domain:"",did:$t(e),port:"",interfaceName:"",type:E.ROUTING_RULE_TYPES.BLOCKLET,redirectCode:302,__disableConfirm:!0},onConfirm:m,onCancel:d},f=y=>{y.stopPropagation(),h(g)||n()};return p.useEffect(()=>{const{searchParams:y}=new URL(window.location.href);y.get("fromDid")&&h(g)},[]),t.jsxs(t.Fragment,{children:[typeof r=="function"?r({loading:a,open:f}):t.jsxs(re,{onClick:f,className:"rule-action","data-cy":"action-add-domain",children:[a?t.jsx(K,{size:16}):t.jsx(Qn,{style:{fontSize:18,marginRight:5}}),i("router.domain.add.title")]}),c&&t.jsx(te,{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={blocklets:u.array,children:u.any,onActivate:u.func};nt.defaultProps={onActivate:()=>{},children:null,blocklets:[]};var Mt={},oo=ge;Object.defineProperty(Mt,"__esModule",{value:!0});var cr=Mt.default=void 0,ao=oo(pe()),so=t;cr=Mt.default=(0,ao.default)((0,so.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"}),"Error");var zt={},lo=ge;Object.defineProperty(zt,"__esModule",{value:!0});var dr=zt.default=void 0,co=lo(pe()),uo=t;dr=zt.default=(0,co.default)((0,uo.jsx)("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"}),"Storage");var Bt={},mo=ge;Object.defineProperty(Bt,"__esModule",{value:!0});var ur=Bt.default=void 0,fo=mo(pe()),po=t;ur=Bt.default=(0,fo.default)((0,po.jsx)("path",{d:"m19 15-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9z"}),"SubdirectoryArrowRight");function Cn(e){const{t:n}=F(),{actions:r}=ae(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,name:c}=e;if(At(c))return null;const h=()=>{o(!1),a(null)},d=async()=>{o(!0),await r.deleteSite(l),o(!1),a(null)},m={title:n("router.domain.delete.title"),description:n("router.domain.delete.description",{name:`<b>${c}</b>`}),confirmPlaceholder:n("router.domain.delete.confirm_desc",{name:c}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:d,onCancel:h,keyName:c},g=f=>{f.stopPropagation(),a(m)||e.onActivate()};return t.jsxs(t.Fragment,{children:[t.jsxs(re,{onClick:g,className:"rule-action","data-cy":"action-delete-domain",children:[i?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:18,marginRight:5}}),n("router.domain.delete.title")]}),s&&t.jsx(Et,{keyName:s.keyName,title:s.title,description:s.description,confirmPlaceholder:s.confirmPlaceholder,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}function qe({id:e,blocklets:n,onActivate:r=()=>{},onRuleAdded:i=()=>{},children:o,teamDid:s}){const{t:a}=F(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null),g=()=>{h(!1),m(null)},f=async v=>{const S=await We(v,a);if(S)throw S;h(!0);const T={from:{pathPrefix:qn(v.pathPrefix)},to:{type:v.type}};v.type===E.ROUTING_RULE_TYPES.BLOCKLET?(T.to.port=v.port,T.to.did=v.did,T.to.interfaceName=v.interfaceName):v.type===E.ROUTING_RULE_TYPES.REDIRECT&&(T.to.url=v.url.trim(),T.to.redirectCode=v.redirectCode),await l.addRule(e,T,s),m(null),h(!1),i()},y={title:a("router.rule.add.title"),description:(v,S,T)=>{const C=x=>{if(T(null),We(x,a)){S({...x,__disableConfirm:!0});return}S({...x})};return t.jsxs(I,{component:"div",children:[t.jsx(q,{label:a("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:v.helperText||a("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:v.pathPrefix,onChange:x=>{let A=!1;const R=lr({params:{...v,pathPrefix:x.target.value},blocklets:n});T(R),v.type===E.ROUTING_RULE_TYPES.BLOCKLET&&R&&(A=!0),v.type===E.ROUTING_RULE_TYPES.REDIRECT&&!v.url&&(A=!0),x.target.value.trim()||(A=!0,T(a("router.validation.pathPrefixRequired"))),A||T("");const P=a("common.slugifyHint",{value:Wn(x.target.value)});S({...v,pathPrefix:x.target.value,helperText:P,__disableConfirm:A})}}),t.jsx(Le,{blocklets:n,params:v,setParams:C,setError:T})]})},confirm:a("router.rule.add.confirm"),cancel:a("common.cancel"),params:{pathPrefix:"",type:E.ROUTING_RULE_TYPES.BLOCKLET,did:$t(n),port:"",interfaceName:"",redirectCode:302,__disableConfirm:!0},onConfirm:f,onCancel:g},b=v=>{v.stopPropagation(),m(y)||r()};return t.jsxs(t.Fragment,{children:[typeof o=="function"?o({loading:c,open:b}):t.jsxs(re,{onClick:b,className:"rule-action","data-cy":"action-add-rule",children:[c?t.jsx(K,{size:16}):t.jsx(Xn,{style:{fontSize:18,marginRight:5}}),a("router.rule.add.title")]}),d&&t.jsx(te,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}qe.propTypes={id:u.string.isRequired,blocklets:u.array,children:u.any,onActivate:u.func,onRuleAdded:u.func,teamDid:u.string};qe.defaultProps={onActivate:()=>{},onRuleAdded:()=>{},children:null,blocklets:[],teamDid:""};function Wt(e){const{t:n}=F(),{actions:r}=ae(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,parent:{id:c},name:h,children:d,onActivate:m,teamDid:g}=e,f=()=>{o(!1),a(null)},y=async()=>{o(!0),await r.deleteRule(c,l,g),o(!1),a(null)},b={keyName:h,title:n("router.rule.delete.title"),description:n("router.rule.delete.description",{name:`<b>${h}</b>`}),confirmPlaceholder:n("router.rule.delete.confirm_desc",{name:h}),confirm:n("common.delConfirm"),cancel:n("router.rule.delete.cancel"),onConfirm:y,onCancel:f},v=S=>{S.stopPropagation(),a(b)||m()};return t.jsxs(t.Fragment,{children:[typeof d=="function"?d({loading:i,open:v}):t.jsxs(re,{onClick:v,className:"rule-action","data-cy":"action-delete-rule",children:[i?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:18,marginRight:5}}),n("router.rule.delete.title")]}),s&&t.jsx(Et,{keyName:s.keyName,title:s.title,description:s.description,confirmPlaceholder:s.confirmPlaceholder,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}Wt.propTypes={id:u.string.isRequired,name:u.string.isRequired,parent:u.object.isRequired,children:u.any,onActivate:u.func,teamDid:u.string};Wt.defaultProps={onActivate:()=>{},children:null,teamDid:""};function qt(e){const{id:n,name:r,did:i,parent:o,blocklets:s,to:a,children:l,onActivate:c,teamDid:h}=e,{t:d}=F(),{actions:m}=ae(),[g,f]=p.useState(!1),[y,b]=p.useState(null),v=()=>{f(!1),b(null)},S=async x=>{const A=await We(x,d);if(A)throw A;f(!0);const R={id:n,from:{pathPrefix:qn(x.pathPrefix)},to:{type:x.type}};x.type===E.ROUTING_RULE_TYPES.BLOCKLET?(R.to.port=x.port,R.to.did=x.did,R.to.interfaceName=x.interfaceName):x.type===E.ROUTING_RULE_TYPES.REDIRECT&&(R.to.url=x.url,R.to.redirectCode=x.redirectCode),await m.updateRule(o.id,R,h),b(null),f(!1)},T={title:d("router.rule.update.title"),description:(x,A,R)=>{const P=j=>{if(We(j,d)){A({...j,__disableConfirm:!0});return}A({...j})};return t.jsxs(I,{component:"div",children:[t.jsx(q,{label:d("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:x.helperText||d("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:x.pathPrefix,onChange:j=>{let _=!1;const w=lr({params:{...x,pathPrefix:j.target.value},blocklets:s});x.type===E.ROUTING_RULE_TYPES.BLOCKLET&&w&&(_=!0,R(w)),x.type===E.ROUTING_RULE_TYPES.REDIRECT&&!x.url&&(_=!0),j.target.value.trim()||(_=!0,R(d("router.validation.pathPrefixRequired"))),_||R("");const L=d("common.slugifyHint",{value:Wn(j.target.value)});A({...x,pathPrefix:j.target.value,helperText:L,__disableConfirm:_})}}),t.jsx(Le,{blocklets:s,params:x,setParams:P,setError:R})]})},confirm:d("router.rule.update.confirm"),cancel:d("router.rule.update.cancel"),color:"primary",params:{pathPrefix:r==="/"?r:r.replace(/^\/+/,"").replace(/\/+$/,""),type:a.type||E.ROUTING_RULE_TYPES.BLOCKLET,did:i||$t(s),port:a.port||"",interfaceName:a.interfaceName||"",redirectCode:a.redirectCode||302,url:a.url||"",__disableConfirm:!1},onConfirm:S,onCancel:v},C=x=>{x.stopPropagation(),b(T)||c()};return t.jsxs(t.Fragment,{children:[typeof l=="function"?l({loading:g,open:C}):t.jsxs(re,{onClick:C,className:"rule-action","data-cy":"action-update-rule",children:[g?t.jsx(K,{size:16}):t.jsx(Zn,{style:{fontSize:18,marginRight:5}}),d("router.rule.update.title")]}),y&&t.jsx(te,{title:y.title,description:y.description,confirm:y.confirm,color:y.color,cancel:y.cancel,params:y.params,onConfirm:y.onConfirm,onCancel:y.onCancel})]})}qt.propTypes={id:u.string.isRequired,name:u.string.isRequired,did:u.string,parent:u.object.isRequired,blocklets:u.array,to:u.object.isRequired,children:u.any,onActivate:u.func,teamDid:u.string};qt.defaultProps={onActivate:()=>{},children:null,did:"",blocklets:[],teamDid:""};function He({id:e,name:n,onActivate:r,children:i,title:o,teamDid:s}){const{t:a}=F(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null);if(E.DOMAIN_FOR_DEFAULT_SITE===n)return null;const g=()=>{h(!1),m(null)},f=async S=>{h(!0),await l.addDomainAlias(e,S.domain.trim(),!!S.force,s),h(!1),m(null)},y=async(S,T,C)=>{try{await T(S)}catch(x){C(de(x))}finally{h(!1)}},b={title:o||a("router.domainAlias.add.title"),description:(S,T,C)=>t.jsxs(I,{component:"div",children:[t.jsx(q,{label:a("router.domainAlias.add.domainDescription"),autoComplete:"off",variant:"outlined",name:"domain","data-cy":"add-domain",fullWidth:!0,autoFocus:!0,inputProps:{"data-cy":"domain-name-input"},value:S.domain,style:{marginBottom:8},margin:"dense",onChange:x=>{const A=x.target.value.trim(),R=Te(A,a);T({...S,domain:A,__disableConfirm:!!R}),C(R||"")},onKeyPress:x=>{if(x.key==="Enter"){x.preventDefault();const A=x.target.value.trim(),R=Te(A,a);R?C(R):y(S,f,C)}}}),t.jsx(Hn,{control:t.jsx(kr,{checked:S.force,onChange:x=>{T({...S,force:x.target.checked})},name:"checkedB",color:"primary"}),label:a("router.domainAlias.add.forceTip")})]}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{domain:"",__disableConfirm:!0},onConfirm:f,onCancel:g},v=S=>{S.stopPropagation(),m(b)||r()};return t.jsxs(t.Fragment,{children:[typeof i=="function"?i({loading:c,open:v}):t.jsxs(re,{onClick:v,className:"rule-action","data-cy":"action-add-domain-alias",children:[c?t.jsx(K,{size:16}):t.jsx(ji,{style:{fontSize:18,marginRight:5}}),a("router.domainAlias.add.title")]}),d&&t.jsx(te,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}He.propTypes={id:u.string.isRequired,name:u.string.isRequired,children:u.any,onActivate:u.func,title:u.string,teamDid:u.string};He.defaultProps={onActivate:()=>{},children:null,title:"",teamDid:""};function Ke({id:e,name:n,corsAllowedOrigins:r,onActivate:i,children:o,teamDid:s}){const{t:a}=F(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null);if(At(n))return null;let g=n;n.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX)&&(g=`${a("common.the")} Blocklet`);const f=()=>{h(!1),m(null)},y=async S=>{h(!0),await l.updateSite(e,{corsAllowedOrigins:S.corsAllowedOrigins.split(",").map(T=>T.trim())},s),h(!1),m(null)},b={title:a("router.domainSecurity.title"),description:(S,T,C)=>t.jsx(I,{component:"div",children:t.jsx(q,{label:a("router.domainSecurity.cors.title",{name:g}),autoComplete:"off",variant:"outlined",name:"corsAllowedOrigins",fullWidth:!0,autoFocus:!0,value:S.corsAllowedOrigins,style:{marginBottom:32},margin:"dense",helperText:a("router.domainSecurity.cors.description",{name:g}),onChange:x=>{T({...S,corsAllowedOrigins:x.target.value,__disableConfirm:!x.target.value.trim()}),x.target.value.trim()?C(""):C(a("router.domainSecurity.cors.domainInvalid"))}})}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{corsAllowedOrigins:Array.isArray(r)?r.join(", "):n,__disableConfirm:!0},onConfirm:y,onCancel:f},v=S=>{S.stopPropagation(),m(b)||i()};return t.jsxs(t.Fragment,{children:[typeof o=="function"?o({loading:c,open:v}):t.jsxs(re,{onClick:v,className:"rule-action","data-cy":"action-update-domain",children:[c?t.jsx(K,{size:16}):t.jsx(Pt,{style:{fontSize:18,marginRight:5}}),a("router.domainSecurity.title")]}),d&&t.jsx(te,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}Ke.propTypes={id:u.string.isRequired,name:u.string.isRequired,children:u.any,onActivate:u.func,corsAllowedOrigins:u.oneOfType([u.string,u.array]),teamDid:u.string};Ke.defaultProps={onActivate:()=>{},children:null,corsAllowedOrigins:"",teamDid:""};function go({id:e,name:n,onActivate:r}){const{t:i}=F(),{actions:o}=ae(),[s,a]=p.useState(!1),[l,c]=p.useState(null);if(At(n))return null;const h=()=>{a(!1),c(null)},d=async f=>{a(!0),await o.updateSite(e,{domain:f.domain.trim()}),a(!1),c(null)},m={title:i("router.domain.update.title"),description:(f,y,b)=>t.jsx(I,{component:"div",children:t.jsx(q,{label:i("router.domain.update.label"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:f.domain,style:{marginBottom:32},margin:"dense",helperText:i("router.domain.update.description"),onChange:v=>{const S=v.target.value.trim(),T=Te(S,i);y({...f,domain:v.target.value,__disableConfirm:!!T}),b(T||"")}})}),confirm:i("common.confirm"),cancel:i("common.cancel"),params:{domain:n,__disableConfirm:!0},onConfirm:d,onCancel:h},g=f=>{f.stopPropagation(),c(m)||r()};return t.jsxs(t.Fragment,{children:[t.jsxs(re,{onClick:g,className:"rule-action",children:[s?t.jsx(K,{size:16}):t.jsx(Zn,{style:{fontSize:18,marginRight:5}}),i("router.domain.update.title")]}),l&&t.jsx(te,{title:l.title,description:l.description,confirm:l.confirm,cancel:l.cancel,params:l.params,onConfirm:l.onConfirm,onCancel:l.onCancel,color:"primary"})]})}function je(e){const[n,r]=p.useState(null),i=l=>{l.stopPropagation(),r(l.currentTarget)},o=l=>{l&&l.stopPropagation(),r(null)},s=[];if(e.type==="root"&&s.push(t.jsx(nt,{...e,onActivate:o},"add-domain")),e.type==="domain"&&s.push(t.jsx(go,{...e,onActivate:o},"update-domain"),t.jsx(qe,{...e,onActivate:o,onRuleAdded:e.onRuleAdded},"add-rule"),t.jsx(He,{...e,onActivate:o},"add-domain-alias"),t.jsx(Ke,{...e,onActivate:o},"update-domain-security"),t.jsx(Cn,{...e,onActivate:o},"delete-domain")),e.type==="rule"&&s.push(t.jsx(qt,{...e,onActivate:o},"update-rule"),t.jsx(Wt,{...e,onActivate:o},"delete-rule")),e.type===E.ROUTING_RULE_TYPES.REDIRECT&&s.push(t.jsx(Cn,{...e,onActivate:o},"delete-domain")),(e.type==="dashboard_domain"||e.type==="blocklet_domain")&&s.push(t.jsx(qe,{...e,onActivate:o},"add-rule"),t.jsx(Ke,{...e,onActivate:o},"update-domain-security"),t.jsx(He,{...e,onActivate:o},"add-domain-alias")),s.length===0)return null;const a=l=>{l.stopPropagation()};return t.jsxs("div",{children:[t.jsx(Fr,{onMouseDown:a,onClick:i,"data-cy":"action-trigger",size:"large",children:t.jsx(vi,{})}),t.jsx(Nr,{keepMounted:!0,onMouseDown:a,open:!!n,onClose:o,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:s})]})}je.propTypes={blocklet:u.object,onRuleAdded:u.func};je.defaultProps={onRuleAdded:()=>{},blocklet:{}};function Ht({certificate:e}){const[n,r]=p.useState(null),i=Q(),{t:o,locale:s}=F(),a=h=>{r(h.currentTarget)},l=()=>{r(null)},c=!!n;return t.jsxs(t.Fragment,{children:[t.jsx(er,{"aria-owns":c?"mouse-over-popover":void 0,onMouseEnter:a,onMouseLeave:l,style:{color:"#44cdc6",fontSize:20,marginLeft:8,cursor:"pointer"}}),t.jsx($r,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:c,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:l,disableRestoreFocus:!0,children:t.jsx(Mr,{children:t.jsxs(zr,{style:{display:"flex"},children:[t.jsx("div",{children:t.jsx("img",{src:`${i.imgPrefix}/https-certificate-icon.png`,alt:"certificate icon",style:{maxHeight:"100%",maxWidth:"100%"}})}),t.jsxs(I,{component:"div",style:{marginLeft:"16px"},children:[t.jsx(I,{component:"div",style:{fontWeight:"bold"},children:e.domain}),t.jsx(I,{component:"div",children:`${o("common.issuer")}: ${X(e,"issuer.commonName","")}`}),t.jsx(I,{component:"div",children:`${o("router.cert.issuedOn")}: ${ze(e.validFrom,s)}`}),t.jsx(I,{component:"div",children:`${o("router.cert.expiryOn")}: ${ze(e.validTo,s)}`})]})]})})})]})}Ht.propTypes={certificate:u.object};Ht.defaultProps={certificate:{}};function Ge(e){const{name:n,type:r,filters:i}=e,{t:o}=F(),{status:s}=tt();if(r!=="domain"||!Rt(n))return null;let a=null,l=null;const{isHttps:c,matchedCert:h}=s[n]||{};if(!Ur(n)){const{dns:{resolved:m,ip:g}={}}=s[n]||{};m||g==="127.0.0.1"?a=t.jsx(be,{title:o("router.domain.verify.ok"),children:t.jsx(hn,{color:"success"})}):a=t.jsx(be,{title:o("router.domain.verify.notResolved"),children:t.jsx(hn,{color:"error"})})}c?l=t.jsx(Ht,{certificate:h}):l=t.jsx(be,{title:o("router.domain.https.bad"),children:t.jsx(er,{style:{color:"#D0021B",fontSize:20,marginLeft:8,cursor:"pointer"}})});const d=i.map(m=>m==="domain"?a:m==="http"?l:null);return p.createElement(p.Fragment,null,...d)}Ge.propTypes={type:u.string.isRequired,name:u.string.isRequired,filters:u.array};Ge.defaultProps={filters:["domain","http"]};const ho=e=>["waiting","creating","renewaling"].includes(e);function Kt(e){var A;const{t:n}=F(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{domain:a,onAdd:l,children:c,siteId:h}=e,{api:d}=Q(),[m,g]=p.useState(!1),{updateStatus:f}=tt(),y=ue(),b=Pe(async()=>{const{cert:R}=await y.findCertificateByDomain({input:{domain:a}});return R}),v=R=>{R.domain===a&&g(!1)};if(p.useEffect(()=>{var R;!b.loading&&ho((R=b.value)==null?void 0:R.status)&&g(!0)},[b]),xt(E.EVENTS.CERT_ERROR,v),xt(E.EVENTS.CERT_ISSUED,R=>{b.retry(),f(R.domain),v(R)}),b.loading||((A=b.value)==null?void 0:A.status)==="normal")return"";const S=()=>{i(!1),s(null)},T=async()=>{i(!0);try{await d.issueLetsEncryptCert({input:{domain:a,siteId:h}}),l(),g(!0)}catch(R){console.error(R),g(!1)}finally{i(!1),s(null)}},C={title:n("router.cert.genLetsEncryptCert.title"),description:t.jsxs("div",{children:[t.jsx(Ce,{type:"success",children:n("router.cert.genLetsEncryptCert.dnsTip")}),n("router.cert.genLetsEncryptCert.description")]}),confirm:n("common.confirm"),onConfirm:T,onCancel:S},x=R=>{R.stopPropagation(),s(C)};return t.jsxs(t.Fragment,{children:[m?t.jsx(be,{title:n("router.cert.issuing"),children:t.jsx(K,{size:12})}):c({loading:r,open:x}),o&&t.jsx(te,{color:"primary",title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}Kt.propTypes={domain:u.string.isRequired,onAdd:u.func,children:u.any,siteId:u.string.isRequired};Kt.defaultProps={onAdd:()=>{},children:null};function Ye(e){var i;const{status:n}=tt(),{domain:r}=e;return!Rt(r)||(i=n[r])!=null&&i.isHttps?"":t.jsx(Kt,{...e})}Ye.propTypes={siteId:u.string.isRequired,domain:u.string.isRequired,onAdd:u.func,children:u.any};Ye.defaultProps={onAdd:()=>{},children:null};function Gt(e){const{t:n}=F(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{id:a,domain:l,onDelete:c,children:h,teamDid:d}=e,{actions:m}=ae();if(l===window.location.hostname)return"";const g=()=>{i(!1),s(null)},f=async()=>{i(!0);try{await m.deleteDomainAlias(a,l,d),c()}catch(v){console.error(v)}finally{i(!1),s(null)}},y={title:n("router.domainAlias.delete.title"),description:n("router.domainAlias.delete.description"),confirm:n("common.confirm"),onConfirm:f,onCancel:g},b=v=>{v.stopPropagation(),s(y)};return t.jsxs(t.Fragment,{children:[typeof h=="function"?h({loading:r,open:b}):t.jsxs(H,{edge:"end",onClick:b,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[r?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:16}}),n("router.domainAlias.delete.title")]}),o&&t.jsx(te,{title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}Gt.propTypes={id:u.string.isRequired,domain:u.string.isRequired,onDelete:u.func,children:u.any,teamDid:u.string};Gt.defaultProps={onDelete:()=>{},children:null,teamDid:""};function Yt({domain:e,isHttps:n,toUrl:r}){const i=n?"https":"http",{t:o}=F();let s=r;return Yr(s)||(s=`${i}://${e}${r}`),t.jsxs(t.Fragment,{children:[t.jsx(I,{className:"arrow-name-middle",children:o("common.redirect")}),t.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),t.jsx(Gn,{href:s,target:"_blank",underline:"hover",children:r},s)]})}Yt.propTypes={domain:u.string.isRequired,toUrl:u.string.isRequired,isHttps:u.bool};Yt.defaultProps={isHttps:!1};function Vt(){const{t:e}=F();return t.jsx(I,{className:"arrow-name-middle",children:e("common.page404")})}Vt.propTypes={};Vt.defaultProps={};function Ee(e){const{t:n}=F(),{data:r}=Kn(),{info:i}=Q(),{status:o}=tt(),s=r.map(z=>({meta:{did:z.meta.did,name:Wr.getDisplayName(z,!0),version:z.meta.version,interfaces:z.meta.interfaces},port:z.port,ports:z.ports,status:z.status})),{id:a,type:l,name:c,title:h,items:d=[],depth:m,to:g,expand:f,isProtected:y,pathPrefix:b,parent:v,domainAliases:S}=e;let T=c;const C=c.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX);let x=l;c===fe&&(x="dashboard_domain"),C&&(x="blocklet_domain");const[A,R]=p.useState(f),j={root:dr,domain:Qn,rule:ur}[l],_={paddingBottom:8,paddingLeft:8};if(l==="domain"){let z=function({domain:U,primaryDomain:N,rules:k}){let B=`http://${U}`;return N===fe?B=`${B}/${i.routing.adminPath.replace(/^\/+/,"")}`:k&&k.length&&k[0].pathPrefix&&(B=`${B}/${k[0].pathPrefix.replace(/^\/+/,"")}`),U!==fe?t.jsx(xo,{href:B,target:"_blank",rel:"noreferrer",onClick:he=>he.stopPropagation(),children:U}):U};if(y&&!C)return null;if(C){const U=c.replace(E.BLOCKLET_SITE_GROUP_SUFFIX,""),N=s.find(k=>k.meta.did===U);if(!N||N.controller)return null;T=N.meta.title||N.meta.name}z.propTypes={domain:u.string.isRequired,primaryDomain:u.string.isRequired,rules:u.array.isRequired};const me=()=>{R(!0)};let le=(S||[]).filter(U=>U.value!==c);return le=qr(le),[t.jsxs(pt,{alignItems:"flex-start",button:!0,disableGutters:!0,"data-cy":"rule-domain",children:[t.jsxs(ut,{onClick:()=>R(U=>!U),children:[d.length>0&&(A?t.jsx(Hr,{}):t.jsx(yi,{})),t.jsx(j,{style:{fontSize:22}})]}),t.jsx(mt,{onClick:()=>R(U=>!U),className:`rule-name rule-name--depth${m}`,style:{flex:1},secondary:d.length<=0?t.jsx("span",{className:"site-secondary",children:n("router.empty")}):"",primary:t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"site-header",children:[c===E.DOMAIN_FOR_DEFAULT_SITE&&n("router.defaultSite"),c!==E.DOMAIN_FOR_DEFAULT_SITE&&!C&&t.jsx(z,{domain:c,primaryDomain:c,rules:d}),C&&T,d.length&&!A?t.jsx("span",{style:{marginLeft:5},children:`(${d.length} URL)`}):null,t.jsx("span",{style:{marginLeft:12}}),l==="domain"&&c!==E.DOMAIN_FOR_DEFAULT_SITE&&c!==fe&&!C&&t.jsxs(t.Fragment,{children:[t.jsx(Ge,{type:l,name:c},c),t.jsx("span",{style:{marginLeft:12}}),t.jsx(Ye,{siteId:a,domain:c,children:({open:U})=>t.jsx(H,{size:"small",onClick:N=>U(N),children:n("router.cert.genLetsEncryptCert.title")})})]})]}),le.map(U=>{const N=typeof U!="string"?U.value:U;return t.jsxs("div",{className:"site-alias",children:[t.jsx(z,{domain:N,primaryDomain:c,rules:d}),t.jsx("span",{style:{marginLeft:12}}),t.jsx(Ge,{type:l,name:N},`domain-status-${c}`),t.jsx(Ye,{siteId:a,domain:N,children:({open:k})=>t.jsx(H,{size:"small",onClick:B=>k(B),children:n("router.cert.genLetsEncryptCert.title")})}),!U.isProtected&&t.jsx(Gt,{id:e.id,domain:N},"delete-domain-alias"),N!==fe&&N!==window.location.hostname&&t.jsx(je,{...e,domain:N,type:"domainAlias",onRuleAdded:me},`action-${c}`)]},N)})]})}),t.jsx(ee,{permission:"mutate_router",children:t.jsx(ft,{children:t.jsx(je,{blocklets:s,...e,onRuleAdded:me,type:x},c)})})]},"parent"),t.jsx(Kr,{in:A,children:d.length>0&&t.jsx(yt,{component:"div",className:`rule-list rule-list--depth${m}`,disablePadding:!0,children:d.map(U=>t.jsx(Ee,{...U,parent:e,depth:m+1},U.id))},"children")},"rules")]}if(l==="root")return[t.jsxs(pt,{disableGutters:!0,"data-cy":"rule-root",children:[t.jsx(ut,{children:t.jsx(j,{style:{fontSize:22}})}),t.jsx(mt,{primary:c}),t.jsx(ee,{permission:"mutate_router",children:t.jsx(ft,{children:t.jsx(je,{blocklets:s,...e})})})]},"root"),d.length>0&&t.jsx(yt,{component:"div",className:`rule-list rule-list--depth${m}`,disablePadding:!0,children:d.map(z=>t.jsx(Ee,{expand:!y,...z,parent:e,depth:m+1},z.id))},"children")];let w=`/blocklets/${g.did}/overview`;g.type===E.ROUTING_RULE_TYPES.DAEMON&&(w="/");const L={meta:{did:i.did,name:"Blocklet Server Dashboard",version:i.version},status:"running",port:i.port},$=g.did===i.did?L:s.find(z=>z.meta.did===g.did),Y=$&&$.status==="running"||g.type===E.ROUTING_RULE_TYPES.DAEMON,ie=n(Y?"router.healthy.ok":"router.healthy.error"),W=o[v.name]||{};return t.jsxs(pt,{className:"hover-item",divider:!0,disableGutters:!0,style:_,"data-cy":"rule-item",children:[t.jsx(ut,{className:"arrow-icon",children:t.jsx(j,{style:{fontSize:22}})}),t.jsx(mt,{primary:t.jsxs(I,{component:"div",className:"arrow-name",children:[t.jsx(I,{style:{wordBreak:"break-all"},className:"arrow-name-left",children:c}),t.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),(g.type===E.ROUTING_RULE_TYPES.DAEMON||g.type===E.ROUTING_RULE_TYPES.BLOCKLET)&&t.jsxs(t.Fragment,{children:[v.name!==E.DOMAIN_FOR_DEFAULT_SITE&&Y&&t.jsx(Z,{className:"arrow-name-middle",children:t.jsx(Gn,{href:_t(v.name,b),target:"_blank",underline:"hover",children:n("common.open")})}),v.name===E.DOMAIN_FOR_DEFAULT_SITE&&t.jsx(I,{component:"span",className:"arrow-name-middle",children:"Blocklet"}),!Y&&t.jsx("span",{className:"arrow-name-middle",children:n("common.unavailable")}),t.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),t.jsxs(Gr,{to:w,className:"arrow-name-right",children:[t.jsx(be,{title:ie,children:Y?t.jsx(xi,{style:{color:"#44cdc6",fontSize:20}}):t.jsx(cr,{style:{color:"red",fontSize:20}})}),t.jsx("span",{children:$?$.meta.name:h}),$&&t.jsx("span",{style:{marginLeft:8},children:t.jsx(Jn,{status:$.status,progress:$.progress})})]})]}),g.type===E.ROUTING_RULE_TYPES.REDIRECT&&t.jsx(Yt,{prefix:b,domain:v.name,toUrl:g.url,isHttps:W.isHttps}),g.type===E.ROUTING_RULE_TYPES.NONE&&t.jsx(Vt,{})]})}),t.jsx(ee,{permission:"mutate_router",children:t.jsx(ft,{children:t.jsx(je,{blocklets:s,...e,did:g.did})})})]},c)}Ee.propTypes={type:u.string.isRequired,to:u.object,name:u.string.isRequired,title:u.string,id:u.string,items:u.array,parent:u.object,depth:u.number,expand:u.bool,isProtected:u.bool,pathPrefix:u.string,domainAliases:u.array};Ee.defaultProps={id:"",to:{},title:"",items:[],depth:0,parent:{},expand:!0,isProtected:!1,pathPrefix:"",domainAliases:[]};const pt=G(Br)`
|
|
122
122
|
.MuiListItemText-root {
|
|
123
123
|
padding-right: 48px;
|
|
124
124
|
}
|
|
@@ -242,18 +242,18 @@ import{r as p,c as ue,u as Q,e as Pe,aF as Dr,j as t,F as E,aG as ln,aH as $n,aI
|
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
|
-
`;var
|
|
246
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function
|
|
247
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ea(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ta(e){if(Array.isArray(e))return
|
|
248
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xr(e,n){if(e){if(typeof e=="string")return
|
|
245
|
+
`;var jo=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 Ie(e,n){var r=bo(e);if(typeof r.path!="string"){var i=e.webkitRelativePath;Object.defineProperty(r,"path",{value:typeof n=="string"?n:typeof i=="string"&&i.length>0?i:e.name,writable:!1,configurable:!1,enumerable:!0})}return r}function bo(e){var n=e.name,r=n&&n.lastIndexOf(".")!==-1;if(r&&!e.type){var i=n.split(".").pop().toLowerCase(),o=jo.get(i);o&&Object.defineProperty(e,"type",{value:o,writable:!1,configurable:!1,enumerable:!0})}return e}var Co=[".DS_Store","Thumbs.db"];function So(e){return Se(this,void 0,void 0,function(){return we(this,function(n){return Ve(e)&&wo(e)?[2,To(e.dataTransfer,e.type)]:_o(e)?[2,Do(e)]:Array.isArray(e)&&e.every(function(r){return"getFile"in r&&typeof r.getFile=="function"})?[2,Ro(e)]:[2,[]]})})}function wo(e){return Ve(e.dataTransfer)}function _o(e){return Ve(e)&&Ve(e.target)}function Ve(e){return typeof e=="object"&&e!==null}function Do(e){return jt(e.target.files).map(function(n){return Ie(n)})}function Ro(e){return Se(this,void 0,void 0,function(){var n;return we(this,function(r){switch(r.label){case 0:return[4,Promise.all(e.map(function(i){return i.getFile()}))];case 1:return n=r.sent(),[2,n.map(function(i){return Ie(i)})]}})})}function To(e,n){return Se(this,void 0,void 0,function(){var r,i;return we(this,function(o){switch(o.label){case 0:return e===null?[2,[]]:e.items?(r=jt(e.items).filter(function(s){return s.kind==="file"}),n!=="drop"?[2,r]:[4,Promise.all(r.map(Eo))]):[3,2];case 1:return i=o.sent(),[2,Sn(mr(i))];case 2:return[2,Sn(jt(e.files).map(function(s){return Ie(s)}))]}})})}function Sn(e){return e.filter(function(n){return Co.indexOf(n.name)===-1})}function jt(e){if(e===null)return[];for(var n=[],r=0;r<e.length;r++){var i=e[r];n.push(i)}return n}function Eo(e){if(typeof e.webkitGetAsEntry!="function")return wn(e);var n=e.webkitGetAsEntry();return n&&n.isDirectory?fr(n):wn(e)}function mr(e){return e.reduce(function(n,r){return Vr(n,Array.isArray(r)?mr(r):[r])},[])}function wn(e){var n=e.getAsFile();if(!n)return Promise.reject(e+" is not a File");var r=Ie(n);return Promise.resolve(r)}function Po(e){return Se(this,void 0,void 0,function(){return we(this,function(n){return[2,e.isDirectory?fr(e):Ao(e)]})})}function fr(e){var n=e.createReader();return new Promise(function(r,i){var o=[];function s(){var a=this;n.readEntries(function(l){return Se(a,void 0,void 0,function(){var c,h,d;return we(this,function(m){switch(m.label){case 0:if(l.length)return[3,5];m.label=1;case 1:return m.trys.push([1,3,,4]),[4,Promise.all(o)];case 2:return c=m.sent(),r(c),[3,4];case 3:return h=m.sent(),i(h),[3,4];case 4:return[3,6];case 5:d=Promise.all(l.map(Po)),o.push(d),s(),m.label=6;case 6:return[2]}})})},function(l){i(l)})}s()})}function Ao(e){return Se(this,void 0,void 0,function(){return we(this,function(n){return[2,new Promise(function(r,i){e.file(function(o){var s=Ie(o,e.fullPath);r(s)},function(o){i(o)})})]})})}var Lo=function(e,n){if(e&&n){var r=Array.isArray(n)?n:n.split(","),i=e.name||"",o=(e.type||"").toLowerCase(),s=o.replace(/\/.*$/,"");return r.some(function(a){var l=a.trim().toLowerCase();return l.charAt(0)==="."?i.toLowerCase().endsWith(l):l.endsWith("/*")?s===l.replace(/\/.*$/,""):o===l})}return!0};function _n(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,i)}return r}function Dn(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?_n(Object(r),!0).forEach(function(i){pr(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_n(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function pr(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function Rn(e,n){return Fo(e)||ko(e,n)||Oo(e,n)||Io()}function Io(){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 Oo(e,n){if(e){if(typeof e=="string")return Tn(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Tn(e,n)}}function Tn(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=new Array(n);r<n;r++)i[r]=e[r];return i}function ko(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],o=!0,s=!1,a,l;try{for(r=r.call(e);!(o=(a=r.next()).done)&&(i.push(a.value),!(n&&i.length===n));o=!0);}catch(c){s=!0,l=c}finally{try{!o&&r.return!=null&&r.return()}finally{if(s)throw l}}return i}}function Fo(e){if(Array.isArray(e))return e}var No="file-invalid-type",Uo="file-too-large",$o="file-too-small",Mo="too-many-files",zo=function(n){n=Array.isArray(n)&&n.length===1?n[0]:n;var r=Array.isArray(n)?"one of ".concat(n.join(", ")):n;return{code:No,message:"File type must be ".concat(r)}},En=function(n){return{code:Uo,message:"File is larger than ".concat(n," ").concat(n===1?"byte":"bytes")}},Pn=function(n){return{code:$o,message:"File is smaller than ".concat(n," ").concat(n===1?"byte":"bytes")}},Bo={code:Mo,message:"Too many files"};function gr(e,n){var r=e.type==="application/x-moz-file"||Lo(e,n);return[r,r?null:zo(n)]}function hr(e,n,r){if(De(e.size))if(De(n)&&De(r)){if(e.size>r)return[!1,En(r)];if(e.size<n)return[!1,Pn(n)]}else{if(De(n)&&e.size<n)return[!1,Pn(n)];if(De(r)&&e.size>r)return[!1,En(r)]}return[!0,null]}function De(e){return e!=null}function Wo(e){var n=e.files,r=e.accept,i=e.minSize,o=e.maxSize,s=e.multiple,a=e.maxFiles;return!s&&n.length>1||s&&a>=1&&n.length>a?!1:n.every(function(l){var c=gr(l,r),h=Rn(c,1),d=h[0],m=hr(l,i,o),g=Rn(m,1),f=g[0];return d&&f})}function Xe(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble<"u"?e.cancelBubble:!1}function Me(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(n){return n==="Files"||n==="application/x-moz-file"}):!!e.target&&!!e.target.files}function An(e){e.preventDefault()}function qo(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function Ho(e){return e.indexOf("Edge/")!==-1}function Ko(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return qo(e)||Ho(e)}function se(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return function(i){for(var o=arguments.length,s=new Array(o>1?o-1:0),a=1;a<o;a++)s[a-1]=arguments[a];return n.some(function(l){return!Xe(i)&&l&&l.apply(void 0,[i].concat(s)),Xe(i)})}}function Ln(){return"showOpenFilePicker"in window}function Go(e){return e=typeof e=="string"?e.split(","):e,[{description:"everything",accept:Array.isArray(e)?e.filter(function(n){return n==="audio/*"||n==="video/*"||n==="image/*"||n==="text/*"||/\w+\/[-+.\w]+/g.test(n)}).reduce(function(n,r){return Dn(Dn({},n),{},pr({},r,[]))},{}):{}}]}var Yo=["children"],Vo=["open"],Xo=["refKey","role","onKeyDown","onFocus","onBlur","onClick","onDragEnter","onDragOver","onDragLeave","onDrop"],Qo=["refKey","onChange","onClick"];function Jo(e){return ta(e)||ea(e)||xr(e)||Zo()}function Zo(){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 ea(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function ta(e){if(Array.isArray(e))return bt(e)}function gt(e,n){return ia(e)||ra(e,n)||xr(e,n)||na()}function na(){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 xr(e,n){if(e){if(typeof e=="string")return bt(e,n);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return bt(e,n)}}function bt(e,n){(n==null||n>e.length)&&(n=e.length);for(var r=0,i=new Array(n);r<n;r++)i[r]=e[r];return i}function ra(e,n){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],o=!0,s=!1,a,l;try{for(r=r.call(e);!(o=(a=r.next()).done)&&(i.push(a.value),!(n&&i.length===n));o=!0);}catch(c){s=!0,l=c}finally{try{!o&&r.return!=null&&r.return()}finally{if(s)throw l}}return i}}function ia(e){if(Array.isArray(e))return e}function In(e,n){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);n&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,i)}return r}function M(e){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?In(Object(r),!0).forEach(function(i){Ct(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):In(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Ct(e,n,r){return n in e?Object.defineProperty(e,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[n]=r,e}function Qe(e,n){if(e==null)return{};var r=oa(e,n),i,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)i=s[o],!(n.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}function oa(e,n){if(e==null)return{};var r={},i=Object.keys(e),o,s;for(s=0;s<i.length;s++)o=i[s],!(n.indexOf(o)>=0)&&(r[o]=e[o]);return r}var Xt=p.forwardRef(function(e,n){var r=e.children,i=Qe(e,Yo),o=wt(i),s=o.open,a=Qe(o,Vo);return p.useImperativeHandle(n,function(){return{open:s}},[s]),Xr.createElement(p.Fragment,null,r(M(M({},a),{},{open:s})))});Xt.displayName="Dropzone";var yr={disabled:!1,getFilesFromEvent:So,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};Xt.defaultProps=yr;Xt.propTypes={children:u.func,accept:u.oneOfType([u.string,u.arrayOf(u.string)]),multiple:u.bool,preventDropOnDocument:u.bool,noClick:u.bool,noKeyboard:u.bool,noDrag:u.bool,noDragEventsBubbling:u.bool,minSize:u.number,maxSize:u.number,maxFiles:u.number,disabled:u.bool,getFilesFromEvent:u.func,onFileDialogCancel:u.func,onFileDialogOpen:u.func,useFsAccessApi:u.bool,onDragEnter:u.func,onDragLeave:u.func,onDragOver:u.func,onDrop:u.func,onDropAccepted:u.func,onDropRejected:u.func,validator:u.func};var St={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function wt(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=M(M({},yr),e),r=n.accept,i=n.disabled,o=n.getFilesFromEvent,s=n.maxSize,a=n.minSize,l=n.multiple,c=n.maxFiles,h=n.onDragEnter,d=n.onDragLeave,m=n.onDragOver,g=n.onDrop,f=n.onDropAccepted,y=n.onDropRejected,b=n.onFileDialogCancel,v=n.onFileDialogOpen,S=n.useFsAccessApi,T=n.preventDropOnDocument,C=n.noClick,x=n.noKeyboard,A=n.noDrag,R=n.noDragEventsBubbling,P=n.validator,j=p.useMemo(function(){return typeof v=="function"?v:On},[v]),_=p.useMemo(function(){return typeof b=="function"?b:On},[b]),w=p.useRef(null),L=p.useRef(null),$=p.useReducer(aa,St),Y=gt($,2),ie=Y[0],W=Y[1],z=ie.isFocused,me=ie.isFileDialogActive,le=ie.draggedFiles,U=function(){me&&setTimeout(function(){if(L.current){var O=L.current.files;O.length||(W({type:"closeDialog"}),_())}},300)};p.useEffect(function(){return S&&Ln()?function(){}:(window.addEventListener("focus",U,!1),function(){window.removeEventListener("focus",U,!1)})},[L,me,_,S]);var N=p.useRef([]),k=function(O){w.current&&w.current.contains(O.target)||(O.preventDefault(),N.current=[])};p.useEffect(function(){return T&&(document.addEventListener("dragover",An,!1),document.addEventListener("drop",k,!1)),function(){T&&(document.removeEventListener("dragover",An),document.removeEventListener("drop",k))}},[w,T]);var B=p.useCallback(function(D){D.preventDefault(),D.persist(),Ne(D),N.current=[].concat(Jo(N.current),[D.target]),Me(D)&&Promise.resolve(o(D)).then(function(O){Xe(D)&&!R||(W({draggedFiles:O,isDragActive:!0,type:"setDraggedFiles"}),h&&h(D))})},[o,h,R]),he=p.useCallback(function(D){D.preventDefault(),D.persist(),Ne(D);var O=Me(D);if(O&&D.dataTransfer)try{D.dataTransfer.dropEffect="copy"}catch{}return O&&m&&m(D),!1},[m,R]),en=p.useCallback(function(D){D.preventDefault(),D.persist(),Ne(D);var O=N.current.filter(function(J){return w.current&&w.current.contains(J)}),V=O.indexOf(D.target);V!==-1&&O.splice(V,1),N.current=O,!(O.length>0)&&(W({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),Me(D)&&d&&d(D))},[w,d,R]),Oe=p.useCallback(function(D,O){var V=[],J=[];D.forEach(function(oe){var _e=gr(oe,r),ve=gt(_e,2),it=ve[0],ot=ve[1],at=hr(oe,a,s),Ue=gt(at,2),st=Ue[0],lt=Ue[1],ct=P?P(oe):null;if(it&&st&&!ct)V.push(oe);else{var dt=[ot,lt];ct&&(dt=dt.concat(ct)),J.push({file:oe,errors:dt.filter(function(_r){return _r})})}}),(!l&&V.length>1||l&&c>=1&&V.length>c)&&(V.forEach(function(oe){J.push({file:oe,errors:[Bo]})}),V.splice(0)),W({acceptedFiles:V,fileRejections:J,type:"setFiles"}),g&&g(V,J,O),J.length>0&&y&&y(J,O),V.length>0&&f&&f(V,O)},[W,l,r,a,s,c,g,f,y,P]),ke=p.useCallback(function(D){D.preventDefault(),D.persist(),Ne(D),N.current=[],Me(D)&&Promise.resolve(o(D)).then(function(O){Xe(D)&&!R||Oe(O,D)}),W({type:"reset"})},[o,Oe,R]),xe=p.useCallback(function(){if(S&&Ln()){W({type:"openDialog"}),j();var D={multiple:l,types:Go(r)};window.showOpenFilePicker(D).then(function(O){return o(O)}).then(function(O){return Oe(O,null)}).catch(function(O){return _(O)}).finally(function(){return W({type:"closeDialog"})});return}L.current&&(W({type:"openDialog"}),j(),L.current.value=null,L.current.click())},[W,j,_,S,Oe,r,l]),tn=p.useCallback(function(D){!w.current||!w.current.isEqualNode(D.target)||(D.keyCode===32||D.keyCode===13)&&(D.preventDefault(),xe())},[w,L,xe]),nn=p.useCallback(function(){W({type:"focus"})},[]),rn=p.useCallback(function(){W({type:"blur"})},[]),on=p.useCallback(function(){C||(Ko()?setTimeout(xe,0):xe())},[L,C,xe]),ye=function(O){return i?null:O},rt=function(O){return x?null:ye(O)},Fe=function(O){return A?null:ye(O)},Ne=function(O){R&&O.stopPropagation()},br=p.useMemo(function(){return function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=D.refKey,V=O===void 0?"ref":O,J=D.role,oe=D.onKeyDown,_e=D.onFocus,ve=D.onBlur,it=D.onClick,ot=D.onDragEnter,at=D.onDragOver,Ue=D.onDragLeave,st=D.onDrop,lt=Qe(D,Xo);return M(M(Ct({onKeyDown:rt(se(oe,tn)),onFocus:rt(se(_e,nn)),onBlur:rt(se(ve,rn)),onClick:ye(se(it,on)),onDragEnter:Fe(se(ot,B)),onDragOver:Fe(se(at,he)),onDragLeave:Fe(se(Ue,en)),onDrop:Fe(se(st,ke)),role:typeof J=="string"&&J!==""?J:"button"},V,w),!i&&!x?{tabIndex:0}:{}),lt)}},[w,tn,nn,rn,on,B,he,en,ke,x,A,i]),Cr=p.useCallback(function(D){D.stopPropagation()},[]),Sr=p.useMemo(function(){return function(){var D=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=D.refKey,V=O===void 0?"ref":O,J=D.onChange,oe=D.onClick,_e=Qe(D,Qo),ve=Ct({accept:r,multiple:l,type:"file",style:{display:"none"},onChange:ye(se(J,ke)),onClick:ye(se(oe,Cr)),autoComplete:"off",tabIndex:-1},V,L);return M(M({},ve),_e)}},[L,r,l,ke,i]),an=le.length,sn=an>0&&Wo({files:le,accept:r,minSize:a,maxSize:s,multiple:l,maxFiles:c}),wr=an>0&&!sn;return M(M({},ie),{},{isDragAccept:sn,isDragReject:wr,isFocused:z&&!i,getRootProps:br,getInputProps:Sr,rootRef:w,inputRef:L,open:ye(xe)})}function aa(e,n){switch(n.type){case"focus":return M(M({},e),{},{isFocused:!0});case"blur":return M(M({},e),{},{isFocused:!1});case"openDialog":return M(M({},St),{},{isFileDialogActive:!0});case"closeDialog":return M(M({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":var r=n.isDragActive,i=n.draggedFiles;return M(M({},e),{},{draggedFiles:i,isDragActive:r});case"setFiles":return M(M({},e),{},{acceptedFiles:n.acceptedFiles,fileRejections:n.fileRejections});case"reset":return M({},St);default:return e}}function On(){}const kn=50*1024,Fn=e=>new Promise((n,r)=>{const i=new FileReader;i.readAsText(e),i.onload=()=>{n(i.result)},i.onerror=o=>r(o)});function Nn({certificate:e={},onRefresh:n,mode:r,...i}){const{t:o}=F(),{api:s}=Q(),[a,l]=p.useState(!1),[c,h]=p.useState(),[d,m]=p.useState(),[g,f]=p.useState(!1),[y,b]=p.useState(""),[v,S]=p.useState("upload"),{handleSubmit:T,formState:C,control:x}=Tt({defaultValues:{name:e.name||e.domain}}),A=gn({control:x,name:"name"}),R=gn({control:x,name:"domain"}),P=()=>a?!0:v==="upload"&&r==="update"?!A:v==="upload"&&r==="add"?!A||!c||!d:v==="lets_encrypt"&&!R,j=()=>{l(!1),f(!1)},_=async k=>{if(r==="add"){const B=(await Fn(d)).replace(/\r\n/g,`
|
|
249
249
|
`),he=(await Fn(c)).replace(/\r\n/g,`
|
|
250
|
-
`);await s.addCertificate({input:{name:
|
|
250
|
+
`);await s.addCertificate({input:{name:k.name.trim(),certificate:B.split(`
|
|
251
251
|
`).join("|"),privateKey:he.split(`
|
|
252
|
-
`).join("|")}})}else await s.updateCertificate({input:{id:e.id,name:
|
|
252
|
+
`).join("|")}})}else await s.updateCertificate({input:{id:e.id,name:k.name.trim()}})},w=k=>s.issueLetsEncryptCert({input:{domain:k.domain}}),L={upload:{name:o("router.cert.nginx.sourceTypes.upload"),value:"upload",onSubmit:_},lets_encrypt:{name:o("router.cert.nginx.sourceTypes.lets_encrypt"),value:"lets_encrypt",onSubmit:w}},$=async k=>{l(!0);try{const B=L[v];if(!B)throw new Error("Invaid certificate source");await B.onSubmit(k),n(),f(!1)}catch(B){b(de(B)||"unknown error, may be you can check file permission")}finally{l(!1)}},Y=()=>{h(null),m(null),f(!0),b("")},ie=k=>{S(k.target.value)},W=k=>{k.length>0&&b(X(k[0],"errors[0].message",o("router.cert.add.invalidFile")))},{getRootProps:z,getInputProps:me}=wt({accept:[".pem",".crt"],multiple:!1,maxSize:kn,onDropRejected:W,onDrop:k=>{m(k[0])}}),{getRootProps:le,getInputProps:U}=wt({accept:[".pem",".key"],multiple:!1,maxSize:kn,onDropRejected:W,onDrop:k=>{h(k[0])}}),{errors:N}=C;return t.jsxs(t.Fragment,{children:[t.jsxs(H,{edge:"end",onClick:Y,className:"rule-action",color:"primary","data-cy":"add-cert",...i,children:[a?t.jsx(K,{size:16}):t.jsx(Pt,{style:{fontSize:16}}),o(r==="add"?"common.add":"common.update")]}),g&&t.jsx(Yn,{title:o(r==="add"?"router.cert.nginx.titleAdd":"router.cert.nginx.title"),open:!0,onClose:j,actions:t.jsxs(t.Fragment,{children:[t.jsx(H,{onClick:j,color:"inherit","data-cy":"cert-cancel",children:o("router.cert.nginx.cancel")}),t.jsxs(H,{onClick:T($),color:"secondary",disabled:P(),variant:"contained",autoFocus:!0,"data-cy":"save-cert",children:[o("router.cert.nginx.confirm"),a&&t.jsx(K,{size:16})]})]}),children:t.jsx("form",{className:"form","data-cy":"cert-form",noValidate:!0,autoComplete:"off",onSubmit:T($),children:t.jsxs(Z,{minWidth:{sm:480},children:[t.jsxs(vt,{component:"div",children:[r==="add"&&t.jsxs("section",{className:"form-item",children:[t.jsx("div",{className:"form-item-label",children:o("router.cert.source")}),t.jsx(fi,{"aria-label":"cert-source",name:"certSource",value:v,onChange:ie,children:Object.values(L).map(k=>t.jsx(Hn,{value:k.value,control:t.jsx(pi,{}),label:k.name},k.value))})]}),v==="upload"&&t.jsxs(t.Fragment,{children:[t.jsxs("section",{className:"form-item",children:[t.jsx("div",{className:"form-item-label",children:o("router.cert.name")}),t.jsx(ne,{name:"name",control:x,rules:{validate:k=>!!k.trim()||o("common.requiredErrorText",{name:o("router.cert.name")})},render:({field:{value:k,onChange:B}})=>t.jsx(q,{fullWidth:!0,autoFocus:!0,defaultValue:k,onChange:B,error:!!N.name,autoComplete:"off",variant:"outlined",name:"name",className:"form-item-value","data-cy":"certificate-name-textfield",helperText:N.name&&N.name.message})})]}),r==="add"&&t.jsxs(t.Fragment,{children:[t.jsxs("section",{className:"form-item",children:[t.jsx("div",{className:"form-item-label",children:o("router.cert.nginx.pem")}),t.jsx("div",{className:"form-item-value",children:t.jsxs("div",{...z({className:"dropzone"}),children:[t.jsx("input",{...me(),"data-cy":"pem-input"}),d&&t.jsx(I,{color:"secondary",children:d.name}),!d&&t.jsx(I,{color:"secondary",children:o("router.cert.nginx.empty")}),t.jsx(I,{component:"small",variant:"body2",color:"textSecondary",children:o("router.cert.nginx.pemTip")})]})})]}),t.jsxs("section",{className:"form-item",children:[t.jsx("div",{className:"form-item-label",children:o("router.cert.nginx.key")}),t.jsx("div",{className:"form-item-value",children:t.jsxs("div",{...le({className:"dropzone"}),children:[t.jsx("input",{...U(),"data-cy":"key-input"}),c&&t.jsx(I,{color:"secondary",children:c.name}),!c&&t.jsx(I,{color:"secondary",children:o("router.cert.nginx.empty")}),t.jsx(I,{component:"small",variant:"body2",color:"textSecondary",children:o("router.cert.nginx.keyTip")})]})})]})]})]}),v==="lets_encrypt"&&t.jsxs(t.Fragment,{children:[t.jsx("section",{className:"form-item",children:t.jsx(Ce,{type:"success",children:o("router.cert.genLetsEncryptCert.dnsTip")})}),t.jsxs("section",{className:"form-item",children:[t.jsx("div",{className:"form-item-label",children:o("common.domain")}),t.jsx(ne,{name:"domain",control:x,rules:{validate:k=>!!k.trim()||o("common.requiredErrorText",{name:o("common.domain")})},render:({field:{value:k,onChange:B}})=>t.jsx(q,{fullWidth:!0,autoFocus:!0,defaultValue:k,error:!!N.domain,autoComplete:"off",variant:"outlined",className:"form-item-value",helperText:N.domain&&N.domain.message,onChange:B})})]})]})]}),!!y&&t.jsx(Ce,{type:"error",style:{marginTop:8},children:y})]})})})]})}function sa(e){const n=Qr(),{t:r}=F(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,domain:c,onDelete:h=()=>{},...d}=e,{refresh:m}=ae(),g=ue(),f=()=>{o(!1),a(null)},y=async()=>{o(!0);try{await g.deleteCertificate({input:{id:l}}),m(),h()}catch(v){console.error(v)}finally{o(!1),a(null)}},b={title:r("router.cert.delete.title"),description:r("router.cert.delete.description",{domain:c}),confirm:r("common.delConfirm"),cancel:r("common.cancel"),onConfirm:y,onCancel:f};return t.jsxs(t.Fragment,{children:[t.jsxs(H,{edge:"end",onClick:()=>a(b),size:"small",className:"rule-action",variant:"text","data-cy":"action-delete-cert",style:{color:n.palette.error.main},...d,children:[i?t.jsx(K,{size:16}):t.jsx(Ae,{style:{fontSize:16}}),r("common.delete")]}),s&&t.jsx(te,{title:s.title,description:s.description,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}var Qt={},la=ge;Object.defineProperty(Qt,"__esModule",{value:!0});var vr=Qt.default=void 0,ca=la(pe()),da=t;vr=Qt.default=(0,ca.default)((0,da.jsx)("path",{d:"M12 3 2 21h20zm1 5.92L18.6 19H13zm-2 0V19H5.4z"}),"Details");function jr(e){const{certificate:n={},...r}=e,{t:i,locale:o}=F(),[s,a]=p.useState(!1),l=Jr(),c=()=>{a(!1)},h=[{id:"matchedSites",name:i("router.cert.matchedSites"),value:(n.matchedSites||[]).map(m=>t.jsx(I,{component:"div",style:{fontWeight:"inherit",fontSize:"1.1rem"},children:m.domain},m.id))},{id:"updatedAt",name:i("common.updatedAt"),value:fn(n.updatedAt,o)},{id:"createdAt",name:i("common.createdAt"),value:fn(n.createdAt,o)}],d=[{id:"boundDomains",name:i("router.cert.boundDomains"),value:t.jsx(I,{component:"span",style:{fontSize:"1.1rem"},children:(X(n,"sans")||[]).join(", ")})},{id:"issuer",name:i("common.issuer"),value:X(n,"meta.issuer.commonName","")},{id:"fingerprint",name:i("common.fingerprint"),value:X(n,"meta.fingerprint")},{id:"fingerprintAlg",name:i("router.cert.fingerprintAlg"),value:X(n,"meta.fingerprintAlg")},{id:"validityPeriod",name:i("router.cert.validityPeriod"),value:Zr.duration(X(n,"meta.validityPeriod"),"ms").humanize()},{id:"issuedOn",name:i("router.cert.issuedOn"),value:ze(X(n,"meta.validFrom"),o)},{id:"expiryOn",name:i("router.cert.expiryOn"),value:ze(X(n,"meta.validTo"),o)}];return t.jsxs(t.Fragment,{children:[t.jsxs(H,{edge:"end",onClick:()=>a(!0),size:"small",className:"rule-action",variant:"text",color:"secondary","data-cy":"action-view-cert",...r,children:[t.jsx(vr,{style:{fontSize:16}}),i("common.detail")]}),t.jsxs(Yn,{title:i("router.cert.detail.title"),"aria-labelledby":"certificate details",fullWidth:!0,open:s,showCloseButton:!1,actions:t.jsx(H,{autoFocus:!0,variant:"contained",onClick:c,color:"secondary",children:i("common.close")}),children:[t.jsx(vt,{component:"div",style:{margin:l.spacing(2)},children:h.map(m=>t.jsx(Be,{nameWidth:200,valueComponent:"div",name:m.name,children:m.value},m.id))},"cert-basic"),t.jsx(pn,{}),t.jsx(vt,{component:"div",style:{margin:l.spacing(2)},children:d.map(m=>t.jsx(Be,{nameWidth:200,valueComponent:"div",name:m.name,children:m.value},m.id))},"cer-info"),t.jsx(pn,{})]})]})}jr.propTypes={certificate:u.object.isRequired};function Jt(e){const{certificate:n,style:r,...i}=e,{t:o}=F(),[s,a]=p.useState(!1),l=n.matchedSites||[];return t.jsxs(I,{component:"ul",...i,style:{...r,listStyle:"none"},children:[(s?l:l.slice(0,4)).map(c=>t.jsx(I,{component:"li",style:{fontSize:"1.1rem",margin:"4px 0"},children:c.domain},c.id)),l.length>4&&t.jsx(H,{style:{border:"none",padding:"5px 0"},variant:"outlined",color:"primary",className:"button",onClick:()=>{a(!s)},children:o(s?"common.collapseAll":"common.expandAll")})]})}Jt.propTypes={certificate:u.object.isRequired,style:u.object};Jt.defaultProps={style:{}};const ua=e=>{if(!e)return!1;const n=+new Date;return e-n<=0},Un="ssl-certificates-table";u.number;function ht({name:e,value:n,style:r={},icon:i,...o}){return t.jsxs(ma,{style:{display:"flex",alignItems:"center",...r},...o,children:[t.jsxs("span",{children:[e,":"]}),t.jsx("span",{children:n}),i&&i]})}const ma=G.div`
|
|
253
253
|
& > span {
|
|
254
254
|
margin: 5px;
|
|
255
255
|
}
|
|
256
|
-
`;function Zt({status:e,source:n,expiresTime:r}){const{t:i}=F();return ua(r)?t.jsx($e,{type:"error",children:i("router.cert.expired")}):n==="upload"?t.jsx($e,{type:"success",children:i("common.normal")}):e==="error"?t.jsx($e,{type:"error",children:i("common.error")}):e==="generated"?t.jsx($e,{type:"success",children:i("common.normal")}):""}Zt.propTypes={status:u.string,source:u.string,expiresTime:u.number.isRequired};Zt.defaultProps={status:"",source:""};const fa=(e,n)=>{if(!n)return e;const r=(n.site.domainAliases||[]).map(i=>i.value);return e.filter(i=>ti(r,i.matchedSites))};function pa(){var m;const{t:e,locale:n}=p.useContext(Dt),r=ue(),{api:i}=Q(),s=ei().get("did"),a=Pe(async()=>{const{certificates:g}=await r.getCertificates();let f=null;if(s){const{blocklet:
|
|
256
|
+
`;function Zt({status:e,source:n,expiresTime:r}){const{t:i}=F();return ua(r)?t.jsx($e,{type:"error",children:i("router.cert.expired")}):n==="upload"?t.jsx($e,{type:"success",children:i("common.normal")}):e==="error"?t.jsx($e,{type:"error",children:i("common.error")}):e==="generated"?t.jsx($e,{type:"success",children:i("common.normal")}):""}Zt.propTypes={status:u.string,source:u.string,expiresTime:u.number.isRequired};Zt.defaultProps={status:"",source:""};const fa=(e,n)=>{if(!n)return e;const r=(n.site.domainAliases||[]).map(i=>i.value);return e.filter(i=>ti(r,i.matchedSites))};function pa(){var m;const{t:e,locale:n}=p.useContext(Dt),r=ue(),{api:i}=Q(),s=ei().get("did"),a=Pe(async()=>{const{certificates:g}=await r.getCertificates();let f=null;if(s){const{blocklet:b}=await i.getBlocklet({input:{did:s,attachRuntimeInfo:!0}});f=b}return{certificates:fa(g,f)}}),l=()=>{a.retry()},c=(m=a.value)==null?void 0:m.certificates,h=[{label:e("common.certificate"),name:"",verticalKeyAlign:"center",options:{sort:!1,filter:!1,customBodyRenderLite:g=>{const f=c[g];return t.jsxs(t.Fragment,{children:[f.name&&t.jsx(ht,{nowrap:!0,style:{fontSize:"16px",whiteSpace:"nowrap"},name:e("common.name"),value:f.name}),t.jsx(ht,{style:{fontSize:"16px",whiteSpace:"nowrap"},name:e("common.issuer"),value:X(f,"meta.issuer.commonName","")}),t.jsx(ht,{style:{fontSize:"16px",whiteSpace:"nowrap"},icon:t.jsx(be,{title:f.isProtected?e("router.cert.protectedCertHelperText"):e("router.cert.unprotectedCertHelperText"),children:t.jsx(hi,{style:{fontSize:"18px"},color:"secondary"})}),name:e("common.protected"),value:f.isProtected?e("common.yes"):e("common.no")})]})}}},{label:e("router.cert.boundDomains"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:g=>{const f=c[g];return t.jsx(I,{noWrap:!0,component:"ul",style:{listStyle:"none"},children:[...new Set([...X(f,"meta.sans")||[],f.domain])].map(y=>t.jsx(I,{component:"li",title:y,style:{fontSize:"1.1rem",minWidth:200,whiteSpace:"initial",wordBreak:"break-all"},children:y},y))})}}},{label:e("router.cert.source"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:g=>{const f=c[g];return e(`router.cert.sourceTypes.${f.source}`)}}},{label:e("common.status"),name:"",width:100,options:{sort:!1,filter:!1,customBodyRenderLite:g=>{const f=c[g];return t.jsx(Zt,{status:f.status,source:f.source,expiresTime:X(f,"meta.validTo")})}}},{label:e("common.expires"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:g=>{const f=c[g];return t.jsx(zn,{value:X(f,"meta.validTo"),locale:n})}}},{label:e("router.cert.matchedSites"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:g=>{const f=c[g];return t.jsx(Jt,{id:f.id,certificate:f,style:{minWidth:200,whiteSpace:"initial",wordBreak:"break-all"}})}}},{label:e("router.cert.action"),name:"",align:"center",options:{sort:!1,filter:!1,customBodyRenderLite:g=>{const f=c[g];return t.jsx(ee,{permission:"mutate_router",children:t.jsxs(t.Fragment,{children:[!f.isProtected&&t.jsxs(t.Fragment,{children:[f.source==="upload"&&t.jsx("div",{children:t.jsx(Nn,{mode:"update",certificate:f,onRefresh:l})}),t.jsx("div",{children:t.jsx(sa,{id:f.id,domain:f.domain,onDelete:l})})]}),t.jsx("div",{children:t.jsx(jr,{id:f.id,certificate:f})})]})})}}}];if(a.error)return t.jsx(Ce,{type:"error",children:de(a.error)});if(a.loading)return t.jsx(K,{});const d=si(Un);return t.jsx(ga,{children:t.jsx(Vn,{title:t.jsx(ee,{permission:"mutate_router",children:t.jsx(Nn,{mode:"add",onRefresh:l,variant:"contained"})}),locale:n,data:a.value.certificates,columns:h,verticalKeyWidth:100,durable:Un,options:{search:!1,download:!1,filter:!1,print:!1,...d}})})}const ga=G.div`
|
|
257
257
|
.header {
|
|
258
258
|
display: flex;
|
|
259
259
|
justify-content: flex-end;
|
|
@@ -284,7 +284,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
284
284
|
}
|
|
285
285
|
}
|
|
286
286
|
}
|
|
287
|
-
`,ha=
|
|
287
|
+
`,ha=bi(e=>({root:{color:e.palette.primary.main,height:8},thumb:{height:24,width:24,backgroundColor:"#fff",border:"2px solid currentColor","&:focus, &:hover, &$active":{boxShadow:"inherit"}},valueLabel:{left:"calc(-50% + 4px)"},track:{height:8,borderRadius:4},rail:{height:8,borderRadius:4}}))(Ci);function xa(){const{info:{routing:e}}=Q(),{t:n}=F(),[r,i]=p.useState(!1),o=e.requestLimit||{};typeof o.enabled!="boolean"&&(o.enabled=!1),typeof o.rate!="number"&&(o.rate=E.GATEWAY_REQ_LIMIT.min),o.ipHeader||(o.ipHeader="");const{handleSubmit:s,control:a,watch:l}=Tt({defaultValues:{requestLimit:o,cacheEnabled:typeof e.cacheEnabled=="boolean"?e.cacheEnabled:!0}}),c=l("requestLimit.enabled"),h=l("requestLimit.rate"),d=async m=>{try{i(!0),await ue().updateGateway({input:m}),await Mn(1e3),ce.success(n("common.saveSuccess"))}catch(g){ce.error(de(g))}finally{i(!1)}};return t.jsx(ya,{children:t.jsx(ee,{permission:"mutate_node",children:m=>t.jsxs(Ot,{className:"form",noValidate:!0,autoComplete:"off",onSubmit:s(d),children:[t.jsx(ne,{name:"cacheEnabled",control:a,render:({field:{value:g,onChange:f}})=>t.jsx(Re,{checked:g,disabled:!m,onChange:y=>f(y.target.checked),labelProps:{label:t.jsx(I,{children:t.jsx("span",{children:n("router.gateway.cacheEnabled.switchLabel")})})},style:{marginTop:16}})}),t.jsx(ne,{name:"requestLimit.enabled",control:a,render:({field:{value:g,onChange:f}})=>t.jsx(Re,{checked:g,disabled:!m,onChange:y=>f(y.target.checked),labelProps:{label:t.jsx(I,{children:t.jsx("span",{children:n("router.gateway.reqLimit.switchLabel")})})},style:{marginTop:16}})}),c&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"form-item",children:[t.jsx(I,{id:"request-limit-rate-label",gutterBottom:!0,children:n("router.gateway.reqLimit.rate",{rate:h})}),t.jsx(ne,{name:"requestLimit.rate",control:a,render:({field:{value:g,onChange:f}})=>t.jsx(ha,{disabled:!m,onChange:(y,b)=>f(b),defaultValue:g,valueLabelDisplay:"auto",step:1,min:E.GATEWAY_REQ_LIMIT.min,max:E.GATEWAY_REQ_LIMIT.max})})]}),t.jsx(ne,{name:"requestLimit.ipHeader",control:a,render:({field:{value:g,onChange:f}})=>t.jsxs(t.Fragment,{children:[t.jsx(q,{variant:"outlined",disabled:r||!m,className:"form-item",label:n("router.gateway.reqLimit.ipHeaderLabel"),margin:"normal",value:g,onChange:f}),t.jsx(ai,{id:"req-limit-ip_header-desc",children:n("router.gateway.reqLimit.ipHeaderDesc")})]})})]}),t.jsx("div",{className:"form-actions",children:m&&t.jsxs(H,{disabled:r,onClick:s(d),color:"primary",variant:"contained","data-cy":"submit-btn",className:"form-submit",children:[n("common.save")," ",r&&t.jsx(K,{size:16})]})})]})})})}const ya=G.div`
|
|
288
288
|
display: flex;
|
|
289
289
|
align-items: flex-start;
|
|
290
290
|
width: 100%;
|