@abtnode/webapp 1.16.38 → 1.16.39-beta-20250209-032436-5ceca2cb
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-CFO7g7AE.js → Add-Dwz6izRf.js} +1 -1
- package/dist/assets/{ArrowDropDown-9ChqTYDp.js → ArrowDropDown-Bh3SfNDo.js} +1 -1
- package/dist/assets/{Autocomplete-BpaEG93b.js → Autocomplete-DtOkQetI.js} +1 -1
- package/dist/assets/{Breadcrumbs-Dtl-NP9A.js → Breadcrumbs-qmDXaLzA.js} +1 -1
- package/dist/assets/{ButtonGroup-BjciiYu8.js → ButtonGroup-Cxal2SJ8.js} +1 -1
- package/dist/assets/{CSSTransition-BOYix1Tj.js → CSSTransition-TlvzVrs5.js} +1 -1
- package/dist/assets/{CheckCircle-CXYJ_MB5.js → CheckCircle-qelhchy5.js} +1 -1
- package/dist/assets/{ChevronLeft-Cmm3iUtR.js → ChevronLeft-BNPfq98V.js} +1 -1
- package/dist/assets/{ChevronRight-U7tvhPtq.js → ChevronRight-Cz7EwuD5.js} +1 -1
- package/dist/assets/Clear-BOCwdIBr.js +1 -0
- package/dist/assets/{Delete-CKdujHHN.js → Delete-D6yfSast.js} +1 -1
- package/dist/assets/{DeleteOutline-CFoYFgaN.js → DeleteOutline-Cvquy8RU.js} +1 -1
- package/dist/assets/{Done-BJXGB50W.js → Done-IVLF3tiD.js} +1 -1
- package/dist/assets/{Edit-D_ibW871.js → Edit-dk9WhhyR.js} +1 -1
- package/dist/assets/{EditIcon-CjUs5igY.js → EditIcon-CVxzI8EQ.js} +1 -1
- package/dist/assets/{ExpandMore-t92xj7_e.js → ExpandMore-BMToWdCq.js} +1 -1
- package/dist/assets/{Google-QeK1sDox.js → Google-B7I3WTrM.js} +1 -1
- package/dist/assets/{HelpOutline-C6JEiDsL.js → HelpOutline-06Ovy2un.js} +1 -1
- package/dist/assets/{Https-D9lnm1Nc.js → Https-DS5GwNWa.js} +1 -1
- package/dist/assets/{InputAdornment-DlbaOc77.js → InputAdornment-B8sZGxpj.js} +1 -1
- package/dist/assets/{Launch-BpkW6VSi.js → Launch-Ldr2e6Lu.js} +1 -1
- package/dist/assets/{Link-zj8E9b02.js → Link-COXZWU7R.js} +1 -1
- package/dist/assets/{ListItemButton-B12oawTt.js → ListItemButton-DsCqAszq.js} +1 -1
- package/dist/assets/{LoadingButton-Bhwj4l0a.js → LoadingButton-DFrwqGWi.js} +1 -1
- package/dist/assets/{LockIcon-tYeElc_Y.js → LockIcon-BQtbpkcd.js} +1 -1
- package/dist/assets/{Loop-Bi_Xa11Y.js → Loop-B5OxMKP2.js} +1 -1
- package/dist/assets/{MoreHoriz-CeBLlMmN.js → MoreHoriz-jKC15aE3.js} +1 -1
- package/dist/assets/{MoreVert-BwxCbnIH.js → MoreVert-hRBmZjRU.js} +1 -1
- package/dist/assets/{Public-lRJ4uhkW.js → Public-DMLUN6Qq.js} +1 -1
- package/dist/assets/{SchemaReference.es-BqRzz71t.js → SchemaReference.es-DGy7qPUz.js} +1 -1
- package/dist/assets/{Search-CikhvMol.js → Search-C6ygXeam.js} +1 -1
- package/dist/assets/{ShoppingCart-BL0s-zYG.js → ShoppingCart-Po2aphBk.js} +1 -1
- package/dist/assets/{Stepper-BpUILapG.js → Stepper-C0Q7fsjT.js} +1 -1
- package/dist/assets/TableSearch-BHrJAgaJ.js +51 -0
- package/dist/assets/{ToggleButtonGroup-Bx4acEQH.js → ToggleButtonGroup-CsQ_0Jsh.js} +1 -1
- package/dist/assets/{Verified-vPqim8ZZ.js → Verified-BBdV0mez.js} +1 -1
- package/dist/assets/ViewColumn-CVAJLAv7.js +1 -0
- package/dist/assets/{ViewList-CiIVOxr3.js → ViewList-BnrrJ0s7.js} +1 -1
- package/dist/assets/{_createAggregator-BiFYhzyQ.js → _createAggregator-Byg__A3X.js} +1 -1
- package/dist/assets/{actions-z5cp_IIi.js → actions-CO2ogrjk.js} +1 -1
- package/dist/assets/{actions-rbRedqCl.js → actions-Dh_JqcnZ.js} +1 -1
- package/dist/assets/{agreement-YLLKwg1Y.js → agreement-9eKn-PND.js} +1 -1
- package/dist/assets/api-B-1jjJ-V.js +1 -0
- package/dist/assets/ar-BJD4HTM3.js +3 -0
- package/dist/assets/audit-logs-DYe-qSiP.js +18 -0
- package/dist/assets/{base32-B5jf-y5T.js → base32-CexKti2R.js} +1 -1
- package/dist/assets/blocklet-CGVGiuqG.js +1 -0
- package/dist/assets/{brace-fold.es-BdS8YFMK.js → brace-fold.es-Cd9aX1cM.js} +1 -1
- package/dist/assets/{chart-aw0SaxnD.js → chart-Bs7OZMEs.js} +2 -2
- package/dist/assets/{click-to-copy-B38fO92d.js → click-to-copy-BLrWqzdx.js} +1 -1
- package/dist/assets/cloneDeep-CMOqlMq1.js +1 -0
- package/dist/assets/{closebrackets.es-D6s5_0Ws.js → closebrackets.es-CAmK7vDc.js} +1 -1
- package/dist/assets/{codemirror.es-CtKybEA_.js → codemirror.es-5l5LSWiB.js} +1 -1
- package/dist/assets/{comment.es-qNW6EbsU.js → comment.es-fyaLaO_p.js} +1 -1
- package/dist/assets/{config-navigation-qY1FGkHO.js → config-navigation-DNC7Cdrb.js} +4 -4
- package/dist/assets/{connect-to-urNzNvP2.js → connect-to-CwX057lb.js} +1 -1
- package/dist/assets/de-CaPBInxb.js +3 -0
- package/dist/assets/{delete-confirm-Cd4DTWkn.js → delete-confirm-Z9dqfxla.js} +1 -1
- package/dist/assets/{detail-XQM-fmtV.js → detail-BYvx8q3f.js} +3 -3
- package/dist/assets/{dialog.es-BLJnN9o1.js → dialog.es-D5oYsbej.js} +1 -1
- package/dist/assets/{download-cvJJ5V-O.js → download-D09PcwbQ.js} +1 -1
- package/dist/assets/emotion-react.browser.esm-CPS6YTUj.js +1 -0
- package/dist/assets/es-hhXhgxGX.js +3 -0
- package/dist/assets/{foldgutter.es-BhLEy5Sd.js → foldgutter.es-Dcwu-Nmt.js} +1 -1
- package/dist/assets/fr-BwQvAhhM.js +3 -0
- package/dist/assets/{get-safe-url-C72hmR7z.js → get-safe-url-C60RmYFc.js} +1 -1
- package/dist/assets/{get-safe-url-Dvv7FqJf.js → get-safe-url-DPU-aQRS.js} +1 -1
- package/dist/assets/getValidReactChildren-CUL3M47p.js +1 -0
- package/dist/assets/hi-CRWmR5oy.js +1 -0
- package/dist/assets/{hint.es-D5UmvMj1.js → hint.es-DeaTs2Qq.js} +1 -1
- package/dist/assets/{hint.es2-B6NlYKUq.js → hint.es2-CTPnQVw5.js} +1 -1
- package/dist/assets/id-Dlr6Q1sk.js +3 -0
- package/dist/assets/{iframe-U_O2Ohib.js → iframe-D46eiMNo.js} +1 -1
- package/dist/assets/{index-CBDk8Qdz.js → index-84NuYkxC.js} +1 -1
- package/dist/assets/{index-DVmxFBDq.js → index-B8niL1rD.js} +1 -1
- package/dist/assets/{index-DmuEEXta.js → index-BYO3q_-f.js} +1 -1
- package/dist/assets/{index-Bm8IRyte.js → index-BmAgStm-.js} +3 -3
- package/dist/assets/{index-DuudjpgS.js → index-BwW5PaQN.js} +1 -1
- package/dist/assets/{index-CnSWmSIw.js → index-ByywnJG1.js} +1 -1
- package/dist/assets/{index-CtMsrwxg.js → index-CSQJVLxn.js} +1 -1
- package/dist/assets/index-CTvRsqtq.js +5 -0
- package/dist/assets/{index-CQcEzzfm.js → index-CYEIYpoK.js} +1 -1
- package/dist/assets/{index-NcWtiObL.js → index-CZ8hqq0k.js} +4 -4
- package/dist/assets/{index-DclhrGq1.js → index-ChraHuZb.js} +1 -1
- package/dist/assets/{index-B4ctAIc2.js → index-Cl6a8hab.js} +1 -1
- package/dist/assets/{index-BfjT5AWP.js → index-CqyMkN54.js} +1 -1
- package/dist/assets/{index-BKvr3-33.js → index-CwPnwzMH.js} +1 -1
- package/dist/assets/{index-BFpJSRVv.js → index-Czt9Nv-w.js} +1 -1
- package/dist/assets/{index-BgSENCns.js → index-D-ICEyP-.js} +1 -1
- package/dist/assets/{index-C_uG-5Xt.js → index-D3M-r7mD.js} +1 -1
- package/dist/assets/{index-BGTNHIny.js → index-D4QvYtmr.js} +1 -1
- package/dist/assets/{index-DaDGoPAK.js → index-D5W8subH.js} +3 -3
- package/dist/assets/{index-CDhsqAtT.js → index-DBBsOOb-.js} +1 -1
- package/dist/assets/{index-DtLPEDhC.js → index-DMJY83OZ.js} +1 -1
- package/dist/assets/index-DNkpFff2.js +11 -0
- package/dist/assets/{index-Bv5qhn-r.js → index-DW3KrF_A.js} +1 -1
- package/dist/assets/{index-B6322Uc6.js → index-DZ2X0x0M.js} +1 -1
- package/dist/assets/index-DhQLP906.js +77 -0
- package/dist/assets/index-Dm5_86CA.js +16 -0
- package/dist/assets/{index-BFPo46os.js → index-Dq1Y_v66.js} +1 -1
- package/dist/assets/{index-BldK0N35.js → index-Dq7rELgm.js} +3 -3
- package/dist/assets/{index-Z5zO2P-5.js → index-DylayVH2.js} +1 -1
- package/dist/assets/{index-DR_q8txM.js → index-EXXKezmQ.js} +1 -1
- package/dist/assets/{index-5hbcWwGj.js → index-FX5QIGRD.js} +1 -1
- package/dist/assets/{index-DN8pXU_t.js → index-GT9guQyO.js} +281 -281
- package/dist/assets/index-M9gFkuJ9.js +289 -0
- package/dist/assets/{index-Bp_YNtCz.js → index-RSON62_v.js} +3 -3
- package/dist/assets/{index-BQi4yC-Z.js → index-WGHiqs-d.js} +1 -1
- package/dist/assets/{index-CuVOt3Xh.js → index-WtGXniRe.js} +1 -1
- package/dist/assets/{index-CcoEVDzn.js → index-isPRo9fc.js} +5 -5
- package/dist/assets/{index-M4H0bqUC.js → index-lSrHcupv.js} +1 -1
- package/dist/assets/index-pccJ0dXT.js +327 -0
- package/dist/assets/{index-DnEAjK2Y.js → index-ri1EsZX3.js} +1 -1
- package/dist/assets/{index-Co3afWSR.js → index-xJ42lpli.js} +1 -1
- package/dist/assets/{index-CR8qQOPk.js → index-zHtzThD3.js} +1 -1
- package/dist/assets/{index.esm-wjW5Z500.js → index.esm-9NQPgDN1.js} +1 -1
- package/dist/assets/{info-addon.es-BBxF5y5M.js → info-addon.es-BpW2JxtT.js} +1 -1
- package/dist/assets/{info.es-Dv8Rwvx4.js → info.es-4osYJb7a.js} +1 -1
- package/dist/assets/{install-from-url-BYyFMvzE.js → install-from-url-pxQY0rKO.js} +1 -1
- package/dist/assets/{invitation-BBguiu7D.js → invitation-B9Aw81WR.js} +2 -2
- package/dist/assets/is-path-prefix-equal-B0zfJZZm.js +1 -0
- package/dist/assets/{item-DQDA15LH.js → item-H2uO43le.js} +1 -1
- package/dist/assets/ja-CmKylH6K.js +3 -0
- package/dist/assets/{javascript.es-Dlo9crBD.js → javascript.es-BuwU55VB.js} +1 -1
- package/dist/assets/{jump-to-line.es-BRdBlWOx.js → jump-to-line.es-akNDO8An.js} +1 -1
- package/dist/assets/{jump.es-M6MMmtkO.js → jump.es-D6qqb6oH.js} +1 -1
- package/dist/assets/ko-Blp8936a.js +3 -0
- package/dist/assets/{lint.es-DajtMOf1.js → lint.es-BvV13Mwu.js} +1 -1
- package/dist/assets/{lint.es2-DRV9ZLXt.js → lint.es2-Vl0jgQA7.js} +1 -1
- package/dist/assets/{lint.es3-BfGmJfht.js → lint.es3-_xSgTfDQ.js} +1 -1
- package/dist/assets/{list-header-Dw6mhzlg.js → list-header-CmzKVFeh.js} +1 -1
- package/dist/assets/{log-a0FUHJ9v.js → log-CaBpn6d0.js} +1 -1
- package/dist/assets/{logo-uploader-DcB6Wvn7.js → logo-uploader-DJDGz-CR.js} +4 -4
- package/dist/assets/{lottie-react.esm-ZivIDIR1.js → lottie-react.esm-Bord5ezK.js} +1 -1
- package/dist/assets/{matchbrackets.es-CwpJfiEI.js → matchbrackets.es-D6sni0fr.js} +1 -1
- package/dist/assets/{memory-By8_sTYM.js → memory-DwpjZJGd.js} +1 -1
- package/dist/assets/{mode.es-4lbCeLUp.js → mode.es-CnFDwJuo.js} +1 -1
- package/dist/assets/{mode.es2-CjdkOlRO.js → mode.es2-Cjddau0A.js} +1 -1
- package/dist/assets/{mode.es3-mn7Yljd2.js → mode.es3-2RGkJU0U.js} +1 -1
- package/dist/assets/{onlineParser.es-Devx56Hc.js → onlineParser.es-Bkggge6P.js} +1 -1
- package/dist/assets/overview-BRyH6tF3.js +26 -0
- package/dist/assets/{permission-BVUQ32OT.js → permission-MGlz941p.js} +1 -1
- package/dist/assets/pt-BbwAvpfn.js +1 -0
- package/dist/assets/resource-dialog-Br74KWDR.js +281 -0
- package/dist/assets/ru-DgfLeWul.js +1 -0
- package/dist/assets/runtime-CALQNLSi.js +1 -0
- package/dist/assets/{schema-C74YPWGq.js → schema-BHxCGqPk.js} +1 -1
- package/dist/assets/sdk-Cw4XkHQG.js +1 -0
- package/dist/assets/{search.es-CT_oxLUI.js → search.es-4b1cnXQT.js} +1 -1
- package/dist/assets/{searchcursor.es-CCaQ-uvx.js → searchcursor.es-BurXRjxw.js} +1 -1
- package/dist/assets/service-DZk6eKOc.js +1 -0
- package/dist/assets/session-D0aXztXK.js +1 -0
- package/dist/assets/{shorten-label-B19ACeJj.js → shorten-label-C54XjtyN.js} +1 -1
- package/dist/assets/{show-hint.es-CBc0cvVb.js → show-hint.es-Pjc3JgEA.js} +1 -1
- package/dist/assets/{simple-select-BIGkwb3y.js → simple-select-jxIon6oy.js} +1 -1
- package/dist/assets/{slicedToArray-B2BT7AS1.js → slicedToArray-MeVVcy2h.js} +3 -3
- package/dist/assets/{spaces-C0Xnb9HQ.js → spaces-DocKloBI.js} +1 -1
- package/dist/assets/{status-BtRCgN5n.js → status-WCLqHGBF.js} +1 -1
- package/dist/assets/{sublime.es-Cj8wPCEg.js → sublime.es-B-Vw3gYL.js} +1 -1
- package/dist/assets/switch-control-Bz8_ZX_s.js +18 -0
- package/dist/assets/{table-icons-CJ8bKHm_.js → table-icons-vFJdvsIP.js} +3 -3
- package/dist/assets/{team-1Aa7Et8F.js → team-B7EjBhR0.js} +1 -1
- package/dist/assets/th-DXRi_ppC.js +1 -0
- package/dist/assets/toUpper-CvshZy6q.js +1 -0
- package/dist/assets/{traffic-BvxJSp-3.js → traffic-CBWstV_S.js} +5 -5
- package/dist/assets/{uniqBy-BWfYQyim.js → uniqBy-PQ4j5ZrH.js} +1 -1
- package/dist/assets/{url-evaluation-45LESH3M.js → url-evaluation-Df8LUg06.js} +1 -1
- package/dist/assets/{url-join-CySKlr-_.js → url-join-etCGHrys.js} +1 -1
- package/dist/assets/{use-mobile-BX9WhCCQ.js → use-mobile-JF3w85jr.js} +1 -1
- package/dist/assets/{useAsync-D600LJhY.js → useAsync-C_Uq2smz.js} +1 -1
- package/dist/assets/{useLocalStorage-C_tHZqD7.js → useLocalStorage-BjHApf6t.js} +1 -1
- package/dist/assets/{useThemeProps-FgHOOeX-.js → useThemeProps-CtnWlthd.js} +1 -1
- package/dist/assets/{util-CEgRLLvv.js → util-C5M7zk0M.js} +1 -1
- package/dist/assets/{util-C3gCZ58k.js → util-CaHQUi7u.js} +1 -1
- package/dist/assets/vi-nO7JrO24.js +1 -0
- package/dist/assets/{wait-container-DouFz3p8.js → wait-container-BJBr5ZSe.js} +1 -1
- package/dist/assets/{withStyles-C7twoN5a.js → withStyles-Fat6HDbT.js} +1 -1
- package/dist/assets/wrap-locale-BazrDxx8.js +1 -0
- package/dist/assets/zh-CEvYioAt.js +4 -0
- package/dist/assets/zh-tw-BjfRYnXu.js +3 -0
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +1 -1
- package/dist/assets/ViewColumn-tvq1tOKx.js +0 -1
- package/dist/assets/api-DFvw52n9.js +0 -1
- package/dist/assets/ar-C89hW7LF.js +0 -3
- package/dist/assets/audit-logs-C_cf1WhT.js +0 -59
- package/dist/assets/blocklet-D9CQCPLC.js +0 -1
- package/dist/assets/cloneDeep-CSVU-XAV.js +0 -1
- package/dist/assets/de-BScxb0zD.js +0 -3
- package/dist/assets/emotion-react.browser.esm-BOlQhUC3.js +0 -1
- package/dist/assets/es-B9f-yiTL.js +0 -3
- package/dist/assets/fr-BguXQaFu.js +0 -3
- package/dist/assets/getValidReactChildren-CfH5w8vI.js +0 -1
- package/dist/assets/hi-7nPwxLb7.js +0 -1
- package/dist/assets/id-gU7ysJNs.js +0 -3
- package/dist/assets/index-B8FSf6Ly.js +0 -339
- package/dist/assets/index-Cgeor3Lb.js +0 -16
- package/dist/assets/index-DdnXJixO.js +0 -11
- package/dist/assets/index-DwZduSBS.js +0 -313
- package/dist/assets/index-IfCq-SM-.js +0 -5
- package/dist/assets/index-VN_0gZzO.js +0 -77
- package/dist/assets/is-path-prefix-equal-Dys093qg.js +0 -1
- package/dist/assets/ja-C4BURK37.js +0 -3
- package/dist/assets/ko-CeKzLbt8.js +0 -3
- package/dist/assets/overview-yPzh3Z-O.js +0 -26
- package/dist/assets/pt-o1EeyLhb.js +0 -1
- package/dist/assets/resource-dialog-wjqfQSa7.js +0 -281
- package/dist/assets/ru-BlfgKyTj.js +0 -1
- package/dist/assets/runtime-amVZoLAW.js +0 -1
- package/dist/assets/sdk-uJcTNH62.js +0 -1
- package/dist/assets/service-C-bl-f1K.js +0 -1
- package/dist/assets/session-BVMeNbzF.js +0 -1
- package/dist/assets/switch-control-D3Jww998.js +0 -13
- package/dist/assets/th-BHBtH1Zl.js +0 -1
- package/dist/assets/toUpper-C6j9c1mu.js +0 -1
- package/dist/assets/vi-CuGQRG8r.js +0 -1
- package/dist/assets/wrap-locale-C_5JkcLi.js +0 -1
- package/dist/assets/zh-DfOtp2w7.js +0 -4
- package/dist/assets/zh-tw-DFpaHA6Z.js +0 -3
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
import{r as x,u as Z,_ as ze,aL as ii,j as e,A as E,aM as En,aN as fr,aO as oi,aP as An,aQ as nt,aR as we,aS as Ce,P as m,n as ee,m as z,ah as se,aT as In,aU as ai,aV as Ln,aW as si,y as ae,N as On,k as A,t as H,aD as pe,aX as Le,C as V,X as be,B as X,aY as pr,Y as xe,M as q,f as Ht,R as gr,aZ as li,e as Kt,a_ as rt,a$ as fe,ae as ci,b0 as di,b1 as ui,a5 as mi,x as hr,W as Fn,T as Nn,h as ne,b2 as Gt,a as Ot,U as J,b as ft,b3 as xr,b4 as yr,V as fi,a7 as Ft,b5 as pi,b6 as gi,b7 as hi,b8 as xi,b9 as yi,ba as it,ac as vi,H as bi,bb as ji,aK as Xe,ad as Pt,aa as Tt,bc as wi,ab as Nt,L as Vt,J as Ci,bd as vr,be as Te,bf as Ee,bg as Si,bh as Di,D as br,q as $t,ao as ki,g as Ri,az as $n,bi as _i,bj as Un,ap as Pi,bk as Ti,bl as jr,bm as le,S as zn,p as Bn,l as Mn,bn as Ei,bo as Ai}from"./index-GT9guQyO.js";import{T as Ii}from"./index-DMJY83OZ.js";import{d as Li}from"./ArrowDropDown-Bh3SfNDo.js";import{u as Yt,C as M,a as Wn}from"./index.esm-9NQPgDN1.js";import{S as oe}from"./switch-control-Bz8_ZX_s.js";import{P as re}from"./permission-MGlz941p.js";import{D as wr,g as Oi}from"./index-M9gFkuJ9.js";import{d as Cr}from"./Link-COXZWU7R.js";import{d as je}from"./Delete-D6yfSast.js";import{C as Xt}from"./delete-confirm-Z9dqfxla.js";import{I as ot}from"./index-D4QvYtmr.js";import{s as Fi}from"./logo-BKA11TRi.js";import{R as Sr,a as Ut,B as Dr,D as qn}from"./status-WCLqHGBF.js";import{_ as Ni}from"./useLocalStorage-BjHApf6t.js";import{L as $i}from"./LoadingButton-DFrwqGWi.js";import{C as Ui,R as zi,d as kr,S as Bi}from"./Public-DMLUN6Qq.js";import{d as Ne}from"./Add-Dwz6izRf.js";import{a as Mi,W as Qe}from"./url-evaluation-Df8LUg06.js";import{i as Wi}from"./is-path-prefix-equal-B0zfJZZm.js";import{d as qi}from"./CheckCircle-qelhchy5.js";import{d as Hi}from"./ExpandMore-BMToWdCq.js";import{d as Ki}from"./ChevronRight-Cz7EwuD5.js";import{d as Gi}from"./MoreVert-hRBmZjRU.js";import{d as Rr}from"./Edit-dk9WhhyR.js";import{d as Vi,a as _r}from"./Https-DS5GwNWa.js";import{w as Yi}from"./withStyles-Fat6HDbT.js";import"./index-CSQJVLxn.js";import"./session-D0aXztXK.js";import"./useThemeProps-CtnWlthd.js";import"./emotion-react.browser.esm-CPS6YTUj.js";import"./ViewColumn-CVAJLAv7.js";import"./Search-C6ygXeam.js";import"./Clear-BOCwdIBr.js";import"./TableSearch-BHrJAgaJ.js";import"./click-to-copy-BLrWqzdx.js";import"./shorten-label-C54XjtyN.js";import"./visuallyHidden-Dan1xhjv.js";const ve="Dashboard",Pr=x.createContext({}),{Provider:Xi,Consumer:Ws}=Pr,Hn=[ve,E.DOMAIN_FOR_IP_SITE,E.DOMAIN_FOR_IP_SITE_REGEXP],Qi=(t,n)=>{if(t.name===E.DOMAIN_FOR_DEFAULT_SITE)return-1;if(n.name===E.DOMAIN_FOR_DEFAULT_SITE)return 1;const r=Hn.includes(t.name),i=Hn.includes(n.name);return r&&i?An(t.name,n.name):r?-1:i?1:An(t.name,n.name)},Zi=({sites:t,nodePort:n})=>{const r=window.location.host,o=(t||[]).map(a=>{const{id:s,rules:d=[],corsAllowedOrigins:g=[]}=a;let{domain:c,domainAliases:u}=a;u=u||[],[E.DOMAIN_FOR_IP_SITE,E.DOMAIN_FOR_IP_SITE_REGEXP].includes(c)&&(c=ve,u.find(w=>w.value===r)||u.unshift({protected:!1,value:r}));const f={id:s,name:c,type:"domain",items:[],domainAliases:u,isProtected:a.isProtected,corsAllowedOrigins:g};return(d||[]).forEach(w=>{const{id:j,isProtected:_,from:{pathPrefix:v},to:k}=w;if(k.type===E.ROUTING_RULE_TYPES.BLOCKLET){let R="";Number.parseInt(k.port,10)===Number.parseInt(n,10)?(R="Blocklet Server Dashboard",k.type=E.ROUTING_RULE_TYPES.DAEMON):R=k.did,f.items.push({id:j,name:En(v||"/"),title:R,type:"rule",isProtected:_,pathPrefix:v,to:k})}else f.items.push({id:j,pathPrefix:v,name:En(v||"/"),title:"Blocklet Server Dashboard",type:"rule",isProtected:_,to:k})}),f.items=fr(f.items,w=>w.name),f}).sort(Qi),l=o.reduce((a,s)=>{let{name:d}=s;return d.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX)&&([d]=d.split(".")),a[d]={...s,rules:s.items},a},{});return{sites:o,siteMap:l}},Ji=({did:t,domain:n,mountPoint:r,siteMap:i,params:o}={})=>{if(!i)return null;const l=i[t];if(!l)return null;const a=n||(l.domainAliases||[])[0];if(!a)return null;let s=r;if(!s){const d=l.rules.filter(g=>!g.name.startsWith(E.WELLKNOWN_PATH_PREFIX))[0];s=d?d.name:"/"}return nt(a.value,s,o)},eo=({did:t,mountPoint:n,siteMap:r,params:i}={})=>{if(!r)return[];const o=r[t];if(!o)return[];const l=o.domainAliases||[];if(!l.length)return[];let a=n;if(!a){const s=o.rules.filter(d=>!d.name.startsWith(E.WELLKNOWN_PATH_PREFIX))[0];a=s?s.name:"/"}return l.map(s=>nt(s.value,a,i))},to=t=>{const n=t.map(i=>i.domain).filter(i=>![E.DOMAIN_FOR_IP_SITE_REGEXP,E.DOMAIN_FOR_DEFAULT_SITE].includes(i));let r=[];return t.forEach(i=>r.push(...i.domainAliases||[])),r=r.map(i=>typeof i=="string"?{value:i,isProtected:!1}:i),{domains:n,domainsAliases:r}};function Kn({children:t}){const{api:n,info:r}=Z(),[i,o]=x.useState([]),[l,a]=x.useState([]),[s,d]=x.useState([]),g=ze(async()=>{const{sites:b}=await n.getRoutingSites({input:{snapshotHash:""}}),y=b||[];await Promise.all(y.map(async T=>(T.domainAliases=await ii(T.domainAliases,{getIP:oi}),T)));const S=to(y);o(y),a(S.domains),d([window.location.hostname,...S.domains,...S.domainsAliases.map(T=>T.value)])},[r]),c=(b,y)=>{o(S=>S.map(T=>T.id===b?y.domain?y:{...y,domain:T.domain}:T))},u=b=>n.takeRoutingSnapshot({input:{dryRun:!1,message:encodeURIComponent(b)}}),f=async b=>{const y=await n.addRoutingSite({input:b});o(i.concat(y.site))},w=async(b,y)=>{const S=await n.updateRoutingSite({input:{id:b,...y}});if(S.site&&S.site.id){const T=i.findIndex($=>$.id===S.site.id);T!==-1&&(i.splice(T,1,S.site),o([].concat(i)))}},j=async b=>{await n.deleteRoutingSite({input:{id:b}}),o(i.filter(y=>y.id!==b))},_=async(b,y,S)=>{const T=await n.addDomainAlias({input:{id:b,domainAlias:y,force:S}});c(b,T.site)},v=async(b,y)=>{const S=await n.deleteDomainAlias({input:{id:b,domainAlias:y}});c(b,S.site)},k=async(b,y)=>{const{site:S}=await n.addRoutingRule({input:{id:b,rule:y}});c(b,S)},R=async(b,y)=>{const{site:S}=await n.updateRoutingRule({input:{id:b,rule:y}});c(b,S)},D=async(b,y)=>{const{site:S}=await n.deleteRoutingRule({input:{id:b,ruleId:y}});c(b,S)},p={loading:g.loading,error:g.error,refresh:g.retry,api:n,actions:{addSite:f,updateSite:w,deleteSite:j,addDomainAlias:_,deleteDomainAlias:v,takeSnapshot:u,addRule:k,updateRule:R,deleteRule:D}},{sites:C,siteMap:h}=Zi({sites:i,nodePort:r.port});return p.sites=C,p.siteMap=h,p.domains=l,p.allDomains=s,p.getBlockletUrl=({did:b,domain:y,mountPoint:S,params:T})=>Ji({did:b,domain:y,mountPoint:S,siteMap:p.siteMap,params:T}),p.getBlockletUrls=({did:b,mountPoint:y,params:S})=>eo({did:b,mountPoint:y,siteMap:p.siteMap,params:S}),e.jsx(Xi,{value:{routing:p},children:t})}function ue(){const{routing:t}=x.useContext(Pr);return t}function Qt(t){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(t)}var Zt={},no=Ce;Object.defineProperty(Zt,"__esModule",{value:!0});var Tr=Zt.default=void 0,ro=no(we()),io=e;Tr=Zt.default=(0,ro.default)((0,io.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");function oo(){return null}function Jt({confirm:t}){const[n,r]=x.useState(null),{t:i}=z(),o=()=>{r(null)},l=async s=>{if(s){let d=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";d==="/"?In.push(`${s.pathname}`):(d.endsWith("/")&&(d=d.substring(0,d.length-1)),In.push(`${d}${s.pathname}`)),window.location.reload()}},a=(s,...d)=>{let g=typeof t=="function"?t(s,...d):t;return g?(typeof g=="string"&&(g={description:g}),r({title:i("common.noticeTitle"),description:i("common.leavePageTip"),confirm:i("common.confirm"),cancel:i("common.cancel"),onConfirm:()=>l(s),onCancel:()=>o(),...g}),!1):!0};return e.jsxs(ao,{children:[e.jsx(oo,{message:a}),n&&e.jsx(se,{title:n.title,description:n.description,confirm:n.confirm,cancel:n.cancel,params:n.params,onConfirm:n.onConfirm,onCancel:n.onCancel})]})}Jt.propTypes={confirm:m.oneOfType([m.object,m.string,m.func])};Jt.defaultProps={confirm:null};const ao=ee.div`
|
|
2
|
+
margin-bottom: 24px;
|
|
3
|
+
.top-btns-alert {
|
|
4
|
+
@media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
padding-bottom: 15px;
|
|
7
|
+
padding-right: 20px;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
.top-btns-action {
|
|
11
|
+
@media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
|
|
12
|
+
margin-right: 0px;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
`;function en({children:t,...n}){return e.jsx(so,{children:e.jsx("form",{...n,children:t})})}en.propTypes={children:m.any.isRequired};const so=ee.div`
|
|
16
|
+
width: 100%;
|
|
17
|
+
|
|
18
|
+
form {
|
|
19
|
+
width: 100%;
|
|
20
|
+
flex: 1;
|
|
21
|
+
display: flex;
|
|
22
|
+
flex-direction: column;
|
|
23
|
+
|
|
24
|
+
.form-submit {
|
|
25
|
+
margin-top: 32px;
|
|
26
|
+
margin-right: 32px;
|
|
27
|
+
width: 180px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.form-actions {
|
|
31
|
+
display: flex;
|
|
32
|
+
@media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
|
|
33
|
+
flex-direction: column;
|
|
34
|
+
width: 100%;
|
|
35
|
+
button {
|
|
36
|
+
width: 100%;
|
|
37
|
+
margin-right: 0;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.form-item {
|
|
43
|
+
margin-top: 16px;
|
|
44
|
+
margin-right: 0;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
`,lo="v21.6.0",co=t=>ai.gte(t,lo),Gn=t=>({name:t.name,description:t.description,registerUrl:t.registerUrl,webWalletUrl:t.webWalletUrl,nftDomainUrl:t.nftDomainUrl,diskAlertThreshold:t.diskAlertThreshold,enableWelcomePage:!1,enableBetaRelease:!1,enableFileSystemIsolation:!0,enableDocker:!1,enableDockerNetwork:!1,isDockerInstalled:!1,enableSessionHardening:t.enableSessionHardening||!1});function tn({onSaved:t,title:n,submit:r,disabled:i,...o}){const{api:l,info:a}=Z(),{t:s}=z(),{control:d,handleSubmit:g,formState:c,reset:u}=Yt({defaultValues:Gn(a)}),[f,w]=x.useState(""),[j,_]=x.useState(""),[v,k]=x.useState(!1),[R,D]=x.useState(a.autoUpgrade),[p,C]=x.useState(!!a.enableWelcomePage),[h,b]=x.useState(null),y=Ln({enableFileSystemIsolation:!!a.enableFileSystemIsolation,tooltip:s("setting.form.security.switchTips"),loading:!1}),S=Ln({enableDocker:!!a.enableDocker,enableDockerNetwork:!!a.enableDockerNetwork,tooltip:s("setting.form.docker.switchTips"),isDockerInstalled:!!a.isDockerInstalled}),[T,$]=x.useState(!!a.enableBetaRelease);x.useEffect(()=>{let O="";(c.isDirty||R!==a.autoUpgrade||p!==!!a.enableWelcomePage||y.enableFileSystemIsolation!==!!a.enableFileSystemIsolation)&&(O=s("setting.unSavedTip")),_(O)},[s,a,R,p,y.enableFileSystemIsolation,c]),si(async()=>{try{const O=Object.assign({},await l.getNodeEnv()||{}),{version:L}=O.info.blockletEngines.find(G=>G.name==="node");b(L)}catch(O){console.error(O),ae.error(O.message)}},[l]),x.useEffect(()=>{try{y.enableFileSystemIsolation=!!a.enableFileSystemIsolation,y.tooltip=s("setting.form.security.switchTips"),y.loading=On(h),!On(h)&&!co(h)&&(y.tooltip=s("setting.form.security.warningTips",{version:h}))}catch(O){console.error(O),ae.error(O.message)}},[a.enableFileSystemIsolation,h]);const U=async O=>{w(""),k(!0);try{const L=await l.updateNodeInfo({input:{...O,name:O.name.trim(),description:O.description.trim(),registerUrl:O.registerUrl.trim(),webWalletUrl:O.webWalletUrl.trim(),diskAlertThreshold:O.diskAlertThreshold,autoUpgrade:R,enableWelcomePage:p,enableFileSystemIsolation:y.enableFileSystemIsolation,enableBetaRelease:T,enableDocker:S.enableDocker,enableDockerNetwork:S.enableDockerNetwork}});await pr(1e3),u(Gn(L.info)),typeof t=="function"&&t(L)}catch(L){w(xe(L))}finally{k(!1)}},{errors:I}=c;return e.jsxs(uo,{...o,children:[e.jsxs(en,{noValidate:!0,autoComplete:"off",onSubmit:g(U),children:[!!n&&e.jsx(A,{component:"h2",variant:"h5",className:"stepper-tip",children:n}),e.jsx(re,{permission:"mutate_node",children:O=>e.jsxs(e.Fragment,{children:[e.jsx(M,{name:"name",control:d,rules:{validate:L=>!!L.trim()||s("setting.form.nameRequired")},render:({field:L})=>e.jsx(H,{variant:"outlined",label:s("setting.form.name"),placeholder:s("setting.form.namePlaceholder"),disabled:v||!O,"data-cy":"node-name-input",error:I.name&&!!I.name.message,helperText:I.name?I.name.message:"",margin:"normal",...L})}),e.jsx(M,{name:"description",control:d,rules:{validate:L=>!!L.trim()||s("setting.form.descriptionRequired")},render:({field:L})=>e.jsx(H,{variant:"outlined",label:s("setting.form.description"),placeholder:s("setting.form.descriptionHolder"),disabled:v||!O,"data-cy":"node-description-input",error:I.description&&!!I.description.message,helperText:I.description?I.description.message:"",margin:"normal",...L})}),e.jsx(M,{name:"registerUrl",control:d,rules:{},render:({field:L})=>e.jsx(H,{variant:"outlined",label:s("setting.form.registerUrl"),placeholder:s("setting.form.registerUrlPlaceholder"),disabled:v||!O,error:I.registerUrl&&!!I.registerUrl.message,helperText:I.registerUrl?I.registerUrl.message:"",margin:"normal",...L})}),e.jsx(M,{name:"nftDomainUrl",control:d,rules:{},render:({field:L})=>e.jsx(H,{variant:"outlined",label:s("setting.form.nftDomainUrl"),placeholder:s("setting.form.nftDomainUrlPlaceholder"),disabled:v||!O,error:I.nftDomainUrl&&!!I.nftDomainUrl.message,helperText:I.nftDomainUrl?I.nftDomainUrl.message:"",margin:"normal",...L})}),e.jsx(M,{name:"webWalletUrl",control:d,rules:{},render:({field:L})=>e.jsx(H,{variant:"outlined",label:s("setting.form.webWalletUrl"),placeholder:s("setting.form.webWalletUrlPlaceholder"),disabled:v||!O,error:I.webWalletUrl&&!!I.webWalletUrl.message,helperText:I.webWalletUrl?I.webWalletUrl.message:"",margin:"normal",...L})}),e.jsx(M,{name:"diskAlertThreshold",control:d,rules:{},render:({field:L})=>e.jsx(H,{type:"number",variant:"outlined",label:s("setting.form.monitor.diskThreshold"),placeholder:s("setting.form.monitor.diskThresholdPlaceholder"),disabled:v||!O,error:I.diskAlertThreshold&&!!I.diskAlertThreshold.message,inputProps:{min:1,max:99},helperText:I.diskAlertThreshold?I.diskAlertThreshold.message:"",margin:"normal",...L})}),e.jsx(oe,{checked:R,onChange:()=>D(!R),name:"autoUpgrade",disabled:!O,labelProps:{label:e.jsx(A,{children:e.jsx("span",{children:s("setting.form.upgrade.switchLabel")})})},style:{marginTop:20}}),R&&e.jsx(oe,{checked:T,onChange:()=>$(!T),name:"enableBetaRelease",disabled:!O,labelProps:{label:e.jsx(A,{children:e.jsx("span",{children:s("setting.form.upgrade.enableBetaRelease")})})},style:{marginTop:20}}),(a==null?void 0:a.mode)!==E.NODE_MODES.SERVERLESS&&e.jsx(oe,{checked:p,onChange:()=>C(!p),name:"enableWelcomePage",disabled:!O,labelProps:{label:e.jsx(A,{children:e.jsx("span",{children:s("setting.form.welcome.switchLabel")})})},style:{marginTop:16}}),e.jsx(M,{name:"enableSessionHardening",control:d,render:({field:L})=>e.jsx(oe,{checked:L.value,disabled:v||!O,labelProps:{label:e.jsx(A,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.enableSessionHardening.switchLabel"),e.jsx(pe,{title:s("setting.form.enableSessionHardening.switchTips"),children:e.jsx(Le,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16},...L})}),e.jsx(oe,{checked:y.enableFileSystemIsolation,onChange:()=>{y.enableFileSystemIsolation=!y.enableFileSystemIsolation,S.enableDocker&&y.enableFileSystemIsolation&&(S.enableDocker=!1,ae.info(s("setting.form.docker.needCloseFileSystemIsolation")))},name:"enableFileSystemIsolation",disabled:!O,"data-cy":"file-system-isolation-switch",labelProps:{label:e.jsx(A,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.security.switchLabel"),e.jsx(pe,{title:!y.loading&&y.tooltip,children:y.loading?e.jsx(V,{size:14,sx:{ml:.5}}):e.jsx(Le,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}}),e.jsx(oe,{checked:S.enableDocker,onChange:()=>{if(!S.enableDocker&&!S.isDockerInstalled){ae.error(s("setting.form.docker.notInstalled"));return}S.enableDocker=!S.enableDocker,S.enableDocker&&y.enableFileSystemIsolation&&(y.enableFileSystemIsolation=!1,ae.info(s("setting.form.docker.needCloseFileSystemIsolation"))),!S.enableDocker&&S.enableDockerNetwork&&(S.enableDockerNetwork=!1)},name:"enableDocker",disabled:!O,"data-cy":"file-system-isolation-switch",labelProps:{label:e.jsx(A,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.docker.switchLabel"),e.jsx(pe,{title:!S.loading&&S.tooltip,children:S.loading?e.jsx(V,{size:14,sx:{ml:.5}}):e.jsx(Le,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}}),e.jsx(oe,{checked:S.enableDockerNetwork,onChange:()=>{if(!S.enableDockerNetwork&&!S.isDockerInstalled){ae.error(s("setting.form.docker.notInstalled"));return}S.enableDockerNetwork=!S.enableDockerNetwork,S.enableDockerNetwork&&!S.enableDocker&&(S.enableDocker=!0)},name:"enableDockerNetwork",disabled:!O,"data-cy":"file-system-isolation-switch",labelProps:{label:e.jsx(A,{children:e.jsxs("span",{style:{display:"inline-flex",alignItems:"center"},children:[s("setting.form.dockerNetwork.switchLabel"),e.jsx(pe,{title:!S.loading&&s("setting.form.dockerNetwork.switchTips"),children:S.loading?e.jsx(V,{size:14,sx:{ml:.5}}):e.jsx(Le,{sx:{ml:.5,fontSize:"20px"},color:"primary"})})]})})},style:{marginTop:16}})]})}),!!j&&e.jsx(be,{severity:"warning",variant:"icon",children:j}),e.jsx("div",{className:"form-actions",children:e.jsx(re,{permission:"mutate_node",children:e.jsxs(X,{onClick:g(U),disabled:i||v,color:"primary",variant:"contained","data-cy":"submit-btn",className:"form-submit",children:[r," ",v?e.jsx(V,{size:16}):null]})})}),!!f&&e.jsx(be,{severity:"error",variant:"icon",error:f,children:f})]}),j&&e.jsx(Jt,{confirm:s("setting.unSavedLeaveTip")})]})}tn.propTypes={onSaved:m.func.isRequired,disabled:m.bool,title:m.string.isRequired,submit:m.string.isRequired};tn.defaultProps={disabled:!1};const uo=ee.div`
|
|
48
|
+
display: flex;
|
|
49
|
+
align-items: flex-start;
|
|
50
|
+
width: 100%;
|
|
51
|
+
max-width: 720px;
|
|
52
|
+
`;function mo(){const{refresh:t,info:n}=Z(),{t:r}=z(),[i,o]=x.useState(!1);x.useEffect(()=>{t({silent:!0})},[]);const l=()=>{t({silent:!0}),ae.success(r("setting.saveSuccess"))};return e.jsx(fo,{children:e.jsxs(q,{mb:4,children:[e.jsx(tn,{onSaved:l,submit:r("common.saveChanges"),title:""}),e.jsx(q,{mt:6,style:{marginLeft:-8},children:e.jsxs(X,{onClick:()=>{o(a=>!a)},children:[r("common.readMore"),i?e.jsx(Tr,{}):e.jsx(Li,{})]})}),i&&e.jsxs(q,{fontSize:12,color:"text.secondary",children:[e.jsxs(q,{children:[r("dashboard.runtimeConfig.blockletMaxMemoryLimit"),": ",n.runtimeConfig.blockletMaxMemoryLimit," MB"]}),e.jsxs(q,{children:[r("dashboard.runtimeConfig.daemonMaxMemoryLimit"),": ",n.runtimeConfig.daemonMaxMemoryLimit," MB"]}),e.jsxs(q,{children:[r("dashboard.runtimeConfig.proxyMaxMemoryLimit"),": ",n.runtimeConfig.proxyMaxMemoryLimit," MB"]})]})]})})}const fo=ee.div`
|
|
53
|
+
.eula-btn {
|
|
54
|
+
text-decoration-line: underline;
|
|
55
|
+
margin-top: 32px;
|
|
56
|
+
margin-bottom: 32px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.danger-zone {
|
|
60
|
+
margin-top: 1vw;
|
|
61
|
+
width: 100%;
|
|
62
|
+
max-width: 720px;
|
|
63
|
+
}
|
|
64
|
+
`;var nn={},po=Ce;Object.defineProperty(nn,"__esModule",{value:!0});var Er=nn.default=void 0,go=po(we()),ho=e;Er=nn.default=(0,go.default)((0,ho.jsx)("path",{d:"M2.01 21 23 12 2.01 3 2 10l15 2-15 2z"}),"Send");function rn(t){const{t:n}=z(),[r,i]=x.useState(!1),[o,l]=x.useState(null),{item:a,onDelete:s=()=>{}}=t,{id:d,title:g}=a,{api:c}=Z(),u=()=>{i(!1),l(null)},f=async()=>{i(!0);try{await c.deleteWebHook({input:{id:d}}),s()}catch(j){console.error(j)}finally{i(!1),l(null)}},w={keyName:d,title:n("setting.webhook.delTitle"),description:`${n("setting.webhook.description",{name:`<b>${g}</b>`,id:`<b>${d}</b>`})}`,confirmPlaceholder:n("setting.webhook.confirm_desc",{name:d}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:f,onCancel:u};return e.jsxs(e.Fragment,{children:[e.jsxs(X,{edge:"end",onClick:()=>l(w),size:"small",className:"rule-action",color:"error",children:[r?e.jsx(V,{size:16}):e.jsx(je,{style:{fontSize:16}}),n("common.delete")]}),o&&e.jsx(Xt,{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})]})}rn.propTypes={item:m.object.isRequired,onDelete:m.func};rn.defaultProps={onDelete:()=>{}};function xo(){const{api:t,imgPrefix:n}=Z(),{t:r,locale:i}=x.useContext(Ht),[o,l]=x.useState([]),[a,s]=x.useState(null),d=ze(async()=>{const[{webhooks:D},{senders:p}]=await Promise.all([t.getWebHooks(),t.getWebhookSenders()]);return l(p),D}),g=d.value||[],{loading:c,error:u}=d,f=async D=>{try{await t.createWebHook({input:D}),d.retry()}catch(p){ae.error(xe(p),{autoHideDuration:4e3}),console.error("create webhook error",p)}s(null)},w=()=>{s(null)},j=D=>{const p={title:D.title,description:(C,h,b)=>{const y=T=>{h({list:T,__disableConfirm:T.some($=>$.disable)})},S=C.list||[];return e.jsx(Vn,{children:S.map((T,$)=>e.jsx(yo,{children:e.jsx(H,{label:T.description,autoComplete:"off",variant:"outlined",inputProps:{"data-cy":"webhook-input"},fullWidth:!0,autoFocus:!0,style:{marginBottom:16},margin:"dense",value:T.value||T.defaultValue,onChange:U=>{T.required&&(T.disable=!0);const I=U.target.value.trim();T.value=I,S[$]=T,I?li(T.type,I)?(T.disable=!1,b("")):(T.disable=!0,b(r("setting.webhook.requiredError",{type:T.type}))):(T.required&&(T.disable=!0),b("")),y([...S])}})},T.name))})},params:{list:D.params,__disableConfirm:!0},confirm:r("setting.webhook.add"),cancel:r("common.cancel"),onConfirm:C=>{D.params=C.list,f(D)},onCancel:w};s(p)},_=D=>D.type==="slack"?e.jsx("img",{src:`${n}/${D.type}.png`,alt:"icon",style:{width:20,height:20}}):e.jsx(Cr,{}),v=async D=>{const p={webhookId:D.id,message:"This is a test notification in order to test the integration"};await t.sendTestMessage({input:p})},k=[{label:r("setting.webhook.columns.description"),name:"id",verticalKeyAlign:"center",options:{sort:!1,customBodyRenderLite:D=>{const p=g[D],C=o.find(h=>h.name===p.name);return e.jsxs("div",{style:{display:"flex",alignItems:"center",whiteSpace:"nowrap"},children:[_(p),e.jsxs("div",{style:{marginLeft:10},children:[e.jsxs("b",{children:["ID: ",p.id]}),e.jsx("div",{children:C?C.description:null})]})]})}}},{label:r("setting.webhook.columns.params"),name:"params",options:{sort:!1,customBodyRenderLite:D=>{const C=g[D].params.map(h=>e.jsx("div",{children:h.value}));return e.jsx("div",{style:{display:"flex",alignItems:"center",whiteSpace:"nowrap"},children:C})}}},{label:r("setting.webhook.columns.createdAt"),name:"createdAt",options:{customBodyRenderLite:D=>{const p=g[D];return e.jsx(gr,{value:Number(p.createdAt),locale:i})}}},{label:r("common.actions"),align:"center",verticalKeyAlign:"center",options:{sort:!1,customBodyRenderLite:D=>{const p=g[D],C=o.find(h=>h.name===p.name)||{};return e.jsxs(e.Fragment,{children:[e.jsx(rn,{item:{...p,title:C.title},onDelete:()=>{d.retry()}}),e.jsxs(X,{size:"small",color:"secondary",onClick:()=>{v(p)},children:[e.jsx(vo,{}),r("setting.webhook.test")]})]})}}}];if(!g.length&&c)return e.jsx("div",{style:{textAlign:"center",marginTop:"50px"},children:e.jsx(V,{})});if(!g.length&&u)return e.jsx(be,{severity:"error",children:xe(u)});const R=o.map(D=>({icon:_(D),title:`${r("common.add")} ${D.title}`,onClick:()=>{j(D)}}));return e.jsxs(Vn,{children:[a&&e.jsx(se,{color:"primary",title:a.title,description:a.description,confirm:a.confirm,params:a.params,onConfirm:a.onConfirm,onCancel:a.onCancel}),e.jsx(wr,{columns:k,data:g,locale:i,customButtons:R,verticalKeyWidth:100,options:{download:!1,filter:!1,print:!1}})]})}const Vn=ee.div`
|
|
65
|
+
.button-addon {
|
|
66
|
+
text-align: right;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.add-list {
|
|
70
|
+
width: 420px;
|
|
71
|
+
max-width: calc(100vw - 10px);
|
|
72
|
+
text-align: left;
|
|
73
|
+
background: #fff;
|
|
74
|
+
border-radius: 5px;
|
|
75
|
+
}
|
|
76
|
+
`,yo=ee.div`
|
|
77
|
+
display: flex;
|
|
78
|
+
`,vo=ee(Er)`
|
|
79
|
+
font-size: 16px !important;
|
|
80
|
+
margin-right: 3px;
|
|
81
|
+
`;function Be({title:t,description:n,children:r}){return e.jsxs(bo,{children:[e.jsxs(A,{component:"div",className:"danger-item-info",children:[e.jsx(A,{className:"title",component:"h3",variant:"h6",color:"textPrimary",gutterBottom:!0,children:t}),e.jsx(A,{className:"desc",component:"p",variant:"body1",color:"textSecondary",children:n})]}),e.jsx(A,{component:"div",className:"danger-item-action",children:r})]})}Be.propTypes={children:m.node.isRequired,title:m.string.isRequired,description:m.string.isRequired};const bo=ee.div`
|
|
82
|
+
display: flex;
|
|
83
|
+
justify-content: space-between;
|
|
84
|
+
align-items: center;
|
|
85
|
+
|
|
86
|
+
.danger-item-info {
|
|
87
|
+
display: flex;
|
|
88
|
+
flex-direction: column;
|
|
89
|
+
align-items: flex-start;
|
|
90
|
+
justify-content: center;
|
|
91
|
+
.title {
|
|
92
|
+
word-break: break-word;
|
|
93
|
+
}
|
|
94
|
+
.desc {
|
|
95
|
+
word-break: break-word;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.danger-item-action {
|
|
100
|
+
width: 160px;
|
|
101
|
+
flex-shrink: 0;
|
|
102
|
+
text-align: right;
|
|
103
|
+
cursor: pointer;
|
|
104
|
+
@media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
|
|
105
|
+
width: auto;
|
|
106
|
+
margin-left: 10px;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
`;function Me({children:t,...n}){return e.jsx(jo,{...n,children:t})}const jo=ee.div`
|
|
110
|
+
border: 1px solid #dedede;
|
|
111
|
+
padding: 16px;
|
|
112
|
+
`;Me.propTypes={children:m.node.isRequired};function Et({action:t}){const{t:n}=z(),{info:r,api:i}=Z(),[o,l]=x.useState(!1),[a,s]=x.useState(null),{data:d,externalData:g}=Kt(),[c,u]=x.useState("restartAllBlocklets"),f=x.useRef(c);if(f.current=c,t==="upgrade"&&!r.nextVersion)return null;const w=()=>{l(!1),s(null)},j=r.enableDocker&&t==="restartAllBlocklet",_=async()=>{try{if(l(!0),t==="upgrade"&&await i.upgradeNodeVersion(),t==="restart"&&await i.restartServer(),t==="restartAllBlocklet")if(j&&f.current==="restartAllContainers")await i.restartAllContainers(),ae.success(n("setting.form.restartAllContainers.restarting"));else{const k=new Set(["running","error"]),D=[...d,...g].filter(p=>k.has(p.status)).map(p=>{if(!p||!p.children||!p.meta)return Promise.resolve();const C=p.children.filter(h=>k.has(h.status)).map(h=>h.meta.did);return i.restartBlocklet({input:{did:p.meta.did,componentDids:C}})});await Promise.all(D),ae.success(n("setting.form.restartAllBlocklet.restarting"))}}catch(k){ae.error(xe(k))}finally{l(!1),s(null)}},v={title:n(`setting.form.${t}.title`,{version:r.nextVersion}),description:n(`setting.form.${t}.dialog`),confirm:n("common.confirm"),cancel:n("common.cancel"),onConfirm:_,onCancel:w};return e.jsxs(e.Fragment,{children:[e.jsx(Me,{className:"danger-zone",children:e.jsx(Be,{title:n(`setting.form.${t}.title`,{version:r.nextVersion}),description:n(`setting.form.${t}.description`),children:e.jsxs(X,{onClick:()=>s(v),color:"error",variant:"outlined",size:"large",children:[o?e.jsx(V,{size:16,style:{marginRight:3}}):null,n(`setting.form.${t}.confirm`)]})})}),a&&e.jsx(se,{title:a.title,description:j?e.jsxs(A,{component:"div",children:[e.jsx(A,{gutterBottom:!0,children:n("blocklet.action.removeComponentDescription")}),e.jsxs(Sr,{name:"removeType",value:c,onChange:k=>{u(k.target.value)},children:[e.jsx(rt,{value:"restartAllBlocklets",control:e.jsx(Ut,{}),label:n("setting.form.restartAllBlocklet.description")}),e.jsx(rt,{value:"restartAllContainers",control:e.jsx(Ut,{}),label:n("setting.form.restartAllContainers.description")})]})]}):a.description,confirm:a.confirm,cancel:a.cancel,onConfirm:a.onConfirm,onCancel:a.onCancel})]})}var on={},wo=Ce;Object.defineProperty(on,"__esModule",{value:!0});var Ar=on.default=void 0,Co=wo(we()),So=e;Ar=on.default=(0,Co.default)((0,So.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 Do(){const{t}=z(),{api:n}=Z(),[r,i]=x.useState(!1),[o,l]=x.useState(null),[a,s]=Ni("last-check-server-version-time"),d=()=>{i(!1),l(null)},g={title:t("setting.form.upgrade.check"),description:t("setting.form.upgrade.latest"),confirm:t("common.confirm"),showCancel:!1,color:"primary",onConfirm:d,onCancel:d},c=async u=>{try{i(!0);const{version:f}=await n.checkNodeVersion();!f&&u&&l(g),s(Date.now())}catch(f){console.error(`Failed to check new version: ${f.message}`)}finally{i(!1)}};return x.useEffect(()=>{(!a||Date.now()-Number(a)>60*1e3)&&c(!1)},[]),e.jsxs(e.Fragment,{children:[e.jsx($i,{sx:{ml:2},color:"primary",variant:"outlined",onClick:c,size:"small",loadingPosition:"end",loading:r,children:e.jsxs(fe,{direction:"row",alignItems:"center",spacing:.5,children:[e.jsx(Ar,{fontSize:"small"}),e.jsx(A,{component:"span",children:t("server.checkUpgrade")})]})}),o&&e.jsx(se,{title:o.title,description:o.description,confirm:o.confirm,showCancel:o.showCancel,color:o.color,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}function ko(){const{t}=z(),{info:n}=Z();return e.jsx(Me,{className:"danger-zone",children:e.jsx(Be,{title:t("blocklet.config.clearCache.name"),description:t("blocklet.config.clearCache.purpose"),children:e.jsx(Ui,{teamDid:n.did,size:"large"})})})}function Ro(){const{t}=z(),{info:n}=Z();return e.jsx(Me,{className:"danger-zone",children:e.jsx(Be,{title:t("blocklet.config.rotateSessionKey.name"),description:t("blocklet.config.rotateSessionKey.purpose"),children:e.jsx(zi,{teamDid:n.did,size:"large"})})})}const _o="z8iZkFBbrVQxZHvcWWB3Sa2TrfGmSeFz9MSU7";function Po(){const{t}=z(),{info:n}=Z(),r=ci(n),{createdAt:i,did:o,description:l,name:a}=n,s=di(async()=>{var _;const c=localStorage.getItem("__registerUrl")||n.registerUrl,u=new URL(c);u.pathname="__blocklet__.js",u.searchParams.set("type","json");const{data:f}=await ui.get(u.toString()),w=(_=f==null?void 0:f.componentMountPoints)==null?void 0:_.find(v=>v.did===_o),j=new URL(c);return j.pathname=mi((w==null?void 0:w.mountPoint)||"","register"),j}),d={did:o,name:a,createdAt:i,description:l,url:r};if(s.loading)return"";if(s.error)return console.error("registerUrlState.error",s.error),"";const g=s.value;return e.jsx(To,{children:e.jsx(Me,{className:"danger-zone",children:e.jsx(Be,{title:t("setting.form.register.title"),description:t("setting.form.register.description",{url:g.origin}),children:e.jsx(X,{color:"primary",component:"a",href:`${g.toString()}?register-server=${encodeURIComponent(JSON.stringify(d))}`,target:"_blank",variant:"contained",size:"large",children:t("setting.form.register.button")})})})})}const To=ee.div`
|
|
113
|
+
.danger-zone {
|
|
114
|
+
margin-top: 1vw;
|
|
115
|
+
width: 100%;
|
|
116
|
+
}
|
|
117
|
+
`;function Eo(){const t=hr(),{api:n,info:r}=Z(),{t:i}=z(),o=ze(async()=>{const a=await n.getNodeEnv();return Object.assign({},a.info||{})}),l=[];return l.push({name:i("dashboard.nodeDid"),value:e.jsx(Fn,{did:r.did,showQrcode:!0})},r.nodeOwner?{name:i("dashboard.ownerDid"),value:e.jsx(Fn,{did:r.nodeOwner.did,showQrcode:!0})}:null,{name:i("dashboard.routingEngine"),value:r.routing.provider}),o.value&&l.push({name:`${i("common.os")}`,value:o.value.os},o.value.docker?{name:`${i("common.docker")}`,value:e.jsx(Nn,{type:"success",children:"Yes"})}:null,o.value.gitpod?{name:`${i("common.gitpod")}`,value:e.jsx(Nn,{type:"success",children:"Yes"})}:null),Array.isArray(ne(o,"value.blockletEngines",null))&&o.value.blockletEngines.filter(a=>a.visible&&a.available).forEach(a=>{l.push({name:a.displayName,value:a.version})}),e.jsxs(Ao,{children:[e.jsx(re,{permission:"mutate_node",children:a=>e.jsxs(e.Fragment,{children:[e.jsxs(q,{display:"flex",alignItems:"center",style:{marginBottom:24},children:[e.jsx(q,{width:50,height:50,children:e.jsx("img",{src:Fi,height:50,alt:""})}),e.jsxs(q,{ml:2,children:[e.jsx("h2",{style:{margin:0},children:r.name}),e.jsx("p",{style:{margin:0,color:"#888"},children:r.description})]})]}),e.jsxs(ot,{style:{marginBottom:4},valueComponent:"div",nameWidth:150,name:i("common.version"),children:[r.version,a&&e.jsx(Do,{})]},"version"),l.filter(Boolean).map(s=>e.jsx(ot,{valueComponent:"div",nameWidth:150,name:s.name,children:s.value},s.name)),a&&e.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:e.jsx(Et,{action:"upgrade"})})]})}),e.jsx(re,{permission:"mutate_node",children:a=>a&&e.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:e.jsx(Et,{action:"restart"})})}),e.jsx(re,{permission:"mutate_node",children:a=>a&&e.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:e.jsx(Et,{action:"restartAllBlocklet"})})}),e.jsx(re,{permission:"mutate_router",children:a=>a&&e.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:e.jsx(ko,{})})}),e.jsx(re,{permission:"mutate_node",children:a=>a&&e.jsx("div",{style:{maxWidth:720,marginBottom:"1vw"},children:e.jsx(Ro,{})})}),e.jsx(re,{permission:"mutate_blocklets",children:!!r.registerUrl&&e.jsx("div",{style:{maxWidth:720,marginTop:"-1vw"},children:e.jsx(Po,{})})}),e.jsx(q,{mt:10,style:{marginLeft:-8},children:e.jsx(X,{className:"eula-btn",onClick:()=>{t("/eula")},children:i("common.goEULA")})})]})}const Ao=ee.div`
|
|
118
|
+
display: flex;
|
|
119
|
+
flex-direction: column;
|
|
120
|
+
margin-top: 32px;
|
|
121
|
+
`,Ir=x.createContext({}),{Provider:Io,Consumer:qs}=Ir;function Lr({children:t,domains:n}){const{api:r}=Z(),i=JSON.stringify(n),[o,l]=x.useState({}),a=x.useMemo(()=>n.filter(w=>Gt(w)),[i]);Ot(E.EVENTS.DOMAIN_STATUS,w=>{w&&l(j=>({...j,[w.domain]:{...j[w.domain],...w}}))});const{domainsAccessibility:s,recommendedDomain:d}=Mi(a),g=x.useMemo(()=>{const w={...o};return Object.keys(s).forEach(j=>{const _=w[j]||{};w[j]={..._,...s[j]}}),w},[o,s]),c=()=>{a.length>0&&r.checkDomains({input:{domains:a}})},u=w=>{w&&r.checkDomains({input:{domains:[w]}})};x.useEffect(()=>{c()},[a]);const f={refresh:c,updateStatus:u,api:r,status:g,recommendedDomain:d,recommendedDomainStatus:g[d]};return e.jsx(Io,{value:f,children:t})}Lr.propTypes={children:m.any.isRequired,domains:m.array.isRequired};function pt(){const{status:t,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}=x.useContext(Ir);return{status:t,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}}const Lo=t=>(ne(t,"meta.interfaces")||[]).find(r=>r.type===ft.BLOCKLET_INTERFACE_TYPE_WEB);function We({params:t,blocklets:n,setParams:r,setError:i,serviceTypes:o}){const{t:l}=z(),a={301:l("common.redirectPermanently"),302:l("common.redirectTemporary"),307:l("common.redirectTemporary"),308:l("common.redirectPermanently")},s=fr(n,c=>c.meta.name),d=(c,u)=>{if(!u)return{};let{port:f}=c;u&&c.ports&&u.port&&(c.ports[u.port]&&(f=c.ports[u.port]),c.ports[u.port.internal]&&(f=c.ports[u.port.internal]));let{pathPrefix:w}=t;return u&&u.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&(w=u.prefix),{port:f,pathPrefix:w}},g=c=>{const u=s.find(w=>w.meta.did===c),f=Lo(u);return{...d(u,f),interfaceName:f?f.name:""}};return x.useEffect(()=>{!t.interfaceName&&t.type===E.ROUTING_RULE_TYPES.BLOCKLET&&r({...t,...g(t.did),__disableConfirm:!1})},[]),e.jsxs(e.Fragment,{children:[e.jsx(H,{select:!0,label:l("router.domain.add.type"),autoComplete:"off",variant:"outlined",name:"type","data-cy":"domain-add-type",fullWidth:!0,value:t.type,onChange:c=>{i(""),r({...t,type:c.target.value,__disableConfirm:!1})},style:{marginBottom:32},SelectProps:{},children:o.map(({name:c,value:u})=>e.jsx(J,{value:u,children:c},u))}),t.type===E.ROUTING_RULE_TYPES.BLOCKLET&&e.jsxs(H,{select:!0,label:l("router.domain.add.blocklet"),autoComplete:"off",variant:"outlined",name:"did","data-cy":"domain-blocklet-select",fullWidth:!0,value:t.did,onChange:c=>{r({...t,...g(c.target.value),did:c.target.value,__disableConfirm:!1})},style:{marginBottom:32},children:[s.map(c=>e.jsxs(J,{value:c.meta.did,children:[`${c.meta.name} v${c.meta.version}`,e.jsx("span",{style:{marginLeft:8},children:e.jsx(Dr,{status:c.status,progress:c.progress})})]},c.meta.did)),n.length===0&&e.jsx(J,{value:"",children:l("common.empty")},"empty")]}),t.type===E.ROUTING_RULE_TYPES.REDIRECT&&[e.jsx(H,{select:!0,label:l("router.domain.add.redirect"),autoComplete:"off",variant:"outlined",name:"type",fullWidth:!0,value:t.redirectCode,onChange:c=>r({...t,redirectCode:c.target.value}),style:{marginBottom:32},SelectProps:{},children:Object.keys(a).map(c=>e.jsx(J,{value:c,children:`${a[c]} - ${c}`},c))}),e.jsx(H,{label:l("common.redirectUrl"),autoComplete:"off",variant:"outlined",name:"url",inputProps:{"data-cy":"redirect-url-input"},fullWidth:!0,autoFocus:!0,value:t.url,helperText:l("router.urlHelperText"),style:{marginBottom:32},onChange:c=>{r({...t,url:c.target.value,__disableConfirm:!c.target.value.trim()}),c.target.value.trim()?i(""):i(l("router.validation.redirectUrlRequired"))}})]]})}We.propTypes={params:m.object,blocklets:m.array,serviceTypes:m.array,setParams:m.func,setError:m.func};We.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 Or=(t,n)=>{if(t.type===E.ROUTING_RULE_TYPES.REDIRECT){if(!t.url)return new Error(`${n("router.validation.redirectUrlRequired")}`);if(!t.redirectCode)return new Error(`redirect ${n("router.validation.redirectCodeRequired")}`)}else if(t.type===E.ROUTING_RULE_TYPES.BLOCKLET&&!t.did)return new Error(n("router.validation.didRequired"));return null},$e=(t,n)=>t?t.endsWith(E.DEFAULT_IP_DOMAIN_SUFFIX)?n("router.domain.validate.suffixTip",{suffix:E.DEFAULT_IP_DOMAIN_SUFFIX}):null:n("router.domain.validate.emptyTip"),Oo=(t,n)=>{const r=Or(t,n);if(r)return r;const i=$e(t.domain,n);return i?new Error(i):null},at=(t,n)=>{const r=Or(t,n);return r||(t.pathPrefix.length?t.pathPrefix.length>150?new Error(n("router.validation.pathPrefixTooLong",{length:150})):null:new Error(n("router.validation.pathPrefixCannotBeEmpty")))},Fr=({params:t,blocklets:n,blocklet:r,locale:i="en"})=>{if(r){let a=(r.children||[]).find(s=>Wi(s.mountPoint,t.pathPrefix));if(r.meta.group!=="gateway"&&t.pathPrefix==="/"&&(a="/"),a)return{zh:`挂载点 ${t.pathPrefix} 已存在,请使用其他挂载点`,en:`The mount point ${t.pathPrefix} already exist, please use another mount point`}[i]}const o=n.find(a=>a.meta.did===t.did);if(!o)return"";const l=o.meta.interfaces.find(a=>a.type==="web");return l&&l.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&t.pathPrefix!==l.prefix?{zh:`该 blocklet 只能挂载在 ${l.prefix}`,en:`This blocklet can only be mounted on ${l.prefix}`}[i]:""},an=t=>{if(t.length===0)return"";const{searchParams:n}=new URL(window.location.href),r=n.get("fromDid");if(r){const i=t.find(o=>o.meta.did===r);if(i)return i.meta.did}return t[0].meta.did};function gt({blocklets:t,onActivate:n=()=>{},children:r}){const{t:i}=z(),{actions:o}=ue(),{info:l}=Z(),[a,s]=x.useState(!1),[d,g]=x.useState(null),c=()=>{s(!1),g(null)},u=async j=>{s(!0);const _={from:{pathPrefix:"/"},to:{type:j.type}},v={domain:j.domain.trim()===l.ip?"":j.domain.trim()};if(j.type===E.ROUTING_RULE_TYPES.BLOCKLET){const k=t.find(D=>D.meta.did===j.did),R=ne(k,"meta.interfaces",[]).find(D=>D.name===j.interfaceName);R&&R.prefix!==ft.BLOCKLET_DYNAMIC_PATH_PREFIX&&(_.from.pathPrefix=R.prefix),_.to.port=j.port,_.to.did=j.did,_.to.interfaceName=j.interfaceName,v.rules=[_]}else j.type===E.ROUTING_RULE_TYPES.REDIRECT&&(_.to.url=j.url,_.to.redirectCode=j.redirectCode,v.rules=[_]);await o.addSite(v),s(!1),g(null)},f={title:i("router.domain.addSite"),description:(j,_,v)=>{const k=R=>{const D=R.__disableConfirm||!!Oo(R,i);_({...R,__disableConfirm:D})};return e.jsxs(A,{component:"div",children:[e.jsx(H,{label:i("router.domain.add.description"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:j.domain,style:{marginTop:16,marginBottom:32},inputProps:{"data-cy":"domain-name-input"},onChange:R=>{const D=R.target.value.trim(),p=$e(D,i);k({...j,domain:R.target.value,__disableConfirm:!!p}),v(p||"")}}),e.jsx(We,{blocklets:t,params:j,setParams:k,setError:v})]})},confirm:i("router.domain.add.confirm"),cancel:i("router.domain.add.cancel"),params:{domain:"",did:an(t),port:"",interfaceName:"",type:E.ROUTING_RULE_TYPES.BLOCKLET,redirectCode:302,__disableConfirm:!0},onConfirm:u,onCancel:c},w=j=>{j.stopPropagation(),g(f)||n()};return x.useEffect(()=>{const{searchParams:j}=new URL(window.location.href);j.get("fromDid")&&g(f)},[]),e.jsxs(e.Fragment,{children:[typeof r=="function"?r({loading:a,open:w}):e.jsxs(J,{onClick:w,className:"rule-action","data-cy":"action-add-domain",children:[a?e.jsx(V,{size:16}):e.jsx(kr,{style:{fontSize:18,marginRight:5}}),i("router.domain.add.title")]}),d&&e.jsx(se,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}gt.propTypes={blocklets:m.array,children:m.any,onActivate:m.func};gt.defaultProps={onActivate:()=>{},children:null,blocklets:[]};var sn={},Fo=Ce;Object.defineProperty(sn,"__esModule",{value:!0});var Nr=sn.default=void 0,No=Fo(we()),$o=e;Nr=sn.default=(0,No.default)((0,$o.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 ln={},Uo=Ce;Object.defineProperty(ln,"__esModule",{value:!0});var $r=ln.default=void 0,zo=Uo(we()),Bo=e;$r=ln.default=(0,zo.default)((0,Bo.jsx)("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"}),"Storage");var cn={},Mo=Ce;Object.defineProperty(cn,"__esModule",{value:!0});var Ur=cn.default=void 0,Wo=Mo(we()),qo=e;Ur=cn.default=(0,Wo.default)((0,qo.jsx)("path",{d:"m19 15-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9z"}),"SubdirectoryArrowRight");function Yn(t){const{t:n}=z(),{actions:r}=ue(),[i,o]=x.useState(!1),[l,a]=x.useState(null),{id:s,name:d}=t;if(Qt(d))return null;const g=()=>{o(!1),a(null)},c=async()=>{o(!0),await r.deleteSite(s),o(!1),a(null)},u={title:n("router.domain.delete.title"),description:n("router.domain.delete.description",{name:`<b>${d}</b>`}),confirmPlaceholder:n("router.domain.delete.confirm_desc",{name:d}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:c,onCancel:g,keyName:d},f=w=>{w.stopPropagation(),a(u)||t.onActivate()};return e.jsxs(e.Fragment,{children:[e.jsxs(J,{onClick:f,className:"rule-action","data-cy":"action-delete-domain",children:[i?e.jsx(V,{size:16}):e.jsx(je,{style:{fontSize:18,marginRight:5}}),n("router.domain.delete.title")]}),l&&e.jsx(Xt,{keyName:l.keyName,title:l.title,description:l.description,confirmPlaceholder:l.confirmPlaceholder,confirm:l.confirm,cancel:l.cancel,params:l.params,onConfirm:l.onConfirm,onCancel:l.onCancel})]})}function st({id:t,blocklets:n,onActivate:r=()=>{},onRuleAdded:i=()=>{},children:o,teamDid:l}){const{t:a}=z(),{actions:s}=ue(),[d,g]=x.useState(!1),[c,u]=x.useState(null),f=()=>{g(!1),u(null)},w=async v=>{const k=await at(v,a);if(k)throw k;g(!0);const R={from:{pathPrefix:yr(v.pathPrefix)},to:{type:v.type}};v.type===E.ROUTING_RULE_TYPES.BLOCKLET?(R.to.port=v.port,R.to.did=v.did,R.to.interfaceName=v.interfaceName):v.type===E.ROUTING_RULE_TYPES.REDIRECT&&(R.to.url=v.url.trim(),R.to.redirectCode=v.redirectCode),await s.addRule(t,R,l),u(null),g(!1),i()},j={title:a("router.rule.add.title"),description:(v,k,R)=>{const D=p=>{if(R(null),at(p,a)){k({...p,__disableConfirm:!0});return}k({...p})};return e.jsxs(A,{component:"div",children:[e.jsx(H,{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:p=>{let C=!1;const h=Fr({params:{...v,pathPrefix:p.target.value},blocklets:n});R(h),v.type===E.ROUTING_RULE_TYPES.BLOCKLET&&h&&(C=!0),v.type===E.ROUTING_RULE_TYPES.REDIRECT&&!v.url&&(C=!0),p.target.value.trim()||(C=!0,R(a("router.validation.pathPrefixRequired"))),C||R("");const b=a("common.slugifyHint",{value:xr(p.target.value)});k({...v,pathPrefix:p.target.value,helperText:b,__disableConfirm:C})}}),e.jsx(We,{blocklets:n,params:v,setParams:D,setError:R})]})},confirm:a("router.rule.add.confirm"),cancel:a("common.cancel"),params:{pathPrefix:"",type:E.ROUTING_RULE_TYPES.BLOCKLET,did:an(n),port:"",interfaceName:"",redirectCode:302,__disableConfirm:!0},onConfirm:w,onCancel:f},_=v=>{v.stopPropagation(),u(j)||r()};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:d,open:_}):e.jsxs(J,{onClick:_,className:"rule-action","data-cy":"action-add-rule",children:[d?e.jsx(V,{size:16}):e.jsx(Cr,{style:{fontSize:18,marginRight:5}}),a("router.rule.add.title")]}),c&&e.jsx(se,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}st.propTypes={id:m.string.isRequired,blocklets:m.array,children:m.any,onActivate:m.func,onRuleAdded:m.func,teamDid:m.string};st.defaultProps={onActivate:()=>{},onRuleAdded:()=>{},children:null,blocklets:[],teamDid:""};function dn(t){const{t:n}=z(),{actions:r}=ue(),[i,o]=x.useState(!1),[l,a]=x.useState(null),{id:s,parent:{id:d},name:g,children:c,onActivate:u,teamDid:f}=t,w=()=>{o(!1),a(null)},j=async()=>{o(!0),await r.deleteRule(d,s,f),o(!1),a(null)},_={keyName:g,title:n("router.rule.delete.title"),description:n("router.rule.delete.description",{name:`<b>${g}</b>`}),confirmPlaceholder:n("router.rule.delete.confirm_desc",{name:g}),confirm:n("common.delConfirm"),cancel:n("router.rule.delete.cancel"),onConfirm:j,onCancel:w},v=k=>{k.stopPropagation(),a(_)||u()};return e.jsxs(e.Fragment,{children:[typeof c=="function"?c({loading:i,open:v}):e.jsxs(J,{onClick:v,className:"rule-action","data-cy":"action-delete-rule",children:[i?e.jsx(V,{size:16}):e.jsx(je,{style:{fontSize:18,marginRight:5}}),n("router.rule.delete.title")]}),l&&e.jsx(Xt,{keyName:l.keyName,title:l.title,description:l.description,confirmPlaceholder:l.confirmPlaceholder,confirm:l.confirm,cancel:l.cancel,params:l.params,onConfirm:l.onConfirm,onCancel:l.onCancel})]})}dn.propTypes={id:m.string.isRequired,name:m.string.isRequired,parent:m.object.isRequired,children:m.any,onActivate:m.func,teamDid:m.string};dn.defaultProps={onActivate:()=>{},children:null,teamDid:""};function un(t){const{id:n,name:r,did:i,parent:o,blocklets:l,to:a,children:s,onActivate:d,teamDid:g}=t,{t:c}=z(),{actions:u}=ue(),[f,w]=x.useState(!1),[j,_]=x.useState(null),v=()=>{w(!1),_(null)},k=async p=>{const C=await at(p,c);if(C)throw C;w(!0);const h={id:n,from:{pathPrefix:yr(p.pathPrefix)},to:{type:p.type}};p.type===E.ROUTING_RULE_TYPES.BLOCKLET?(h.to.port=p.port,h.to.did=p.did,h.to.interfaceName=p.interfaceName):p.type===E.ROUTING_RULE_TYPES.REDIRECT&&(h.to.url=p.url,h.to.redirectCode=p.redirectCode),await u.updateRule(o.id,h,g),_(null),w(!1)},R={title:c("router.rule.update.title"),description:(p,C,h)=>{const b=y=>{if(at(y,c)){C({...y,__disableConfirm:!0});return}C({...y})};return e.jsxs(A,{component:"div",children:[e.jsx(H,{label:c("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:p.helperText||c("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:p.pathPrefix,onChange:y=>{let S=!1;const T=Fr({params:{...p,pathPrefix:y.target.value},blocklets:l});p.type===E.ROUTING_RULE_TYPES.BLOCKLET&&T&&(S=!0,h(T)),p.type===E.ROUTING_RULE_TYPES.REDIRECT&&!p.url&&(S=!0),y.target.value.trim()||(S=!0,h(c("router.validation.pathPrefixRequired"))),S||h("");const $=c("common.slugifyHint",{value:xr(y.target.value)});C({...p,pathPrefix:y.target.value,helperText:$,__disableConfirm:S})}}),e.jsx(We,{blocklets:l,params:p,setParams:b,setError:h})]})},confirm:c("router.rule.update.confirm"),cancel:c("router.rule.update.cancel"),color:"primary",params:{pathPrefix:r==="/"?r:r.replace(/^\/+/,"").replace(/\/+$/,""),type:a.type||E.ROUTING_RULE_TYPES.BLOCKLET,did:i||an(l),port:a.port||"",interfaceName:a.interfaceName||"",redirectCode:a.redirectCode||302,url:a.url||"",__disableConfirm:!1},onConfirm:k,onCancel:v},D=p=>{p.stopPropagation(),_(R)||d()};return e.jsxs(e.Fragment,{children:[typeof s=="function"?s({loading:f,open:D}):e.jsxs(J,{onClick:D,className:"rule-action","data-cy":"action-update-rule",children:[f?e.jsx(V,{size:16}):e.jsx(Rr,{style:{fontSize:18,marginRight:5}}),c("router.rule.update.title")]}),j&&e.jsx(se,{title:j.title,description:j.description,confirm:j.confirm,color:j.color,cancel:j.cancel,params:j.params,onConfirm:j.onConfirm,onCancel:j.onCancel})]})}un.propTypes={id:m.string.isRequired,name:m.string.isRequired,did:m.string,parent:m.object.isRequired,blocklets:m.array,to:m.object.isRequired,children:m.any,onActivate:m.func,teamDid:m.string};un.defaultProps={onActivate:()=>{},children:null,did:"",blocklets:[],teamDid:""};function Oe({id:t,name:n,onActivate:r,children:i,title:o,teamDid:l}){const{t:a}=z(),{actions:s}=ue(),[d,g]=x.useState(!1),[c,u]=x.useState(null);if(E.DOMAIN_FOR_DEFAULT_SITE===n)return null;const f=()=>{g(!1),u(null)},w=async k=>{g(!0),await s.addDomainAlias(t,k.domain.trim(),!!k.force,l),g(!1),u(null)},j=async(k,R,D)=>{try{await R(k)}catch(p){D(xe(p))}finally{g(!1)}},_={title:o||a("router.domainAlias.add.title"),description:(k,R,D)=>e.jsxs(A,{component:"div",children:[e.jsx(H,{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:k.domain,style:{marginBottom:8},margin:"dense",onChange:p=>{const C=p.target.value.trim(),h=$e(C,a);R({...k,domain:C,__disableConfirm:!!h}),D(h||"")},onKeyPress:p=>{if(p.key==="Enter"){p.preventDefault();const C=p.target.value.trim(),h=$e(C,a);h?D(h):j(k,w,D)}}}),e.jsx(rt,{control:e.jsx(fi,{checked:k.force,onChange:p=>{R({...k,force:p.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:w,onCancel:f},v=k=>{k.stopPropagation(),u(_)||r()};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:d,open:v}):e.jsxs(J,{onClick:v,className:"rule-action","data-cy":"action-add-domain-alias",children:[d?e.jsx(V,{size:16}):e.jsx(Vi,{style:{fontSize:18,marginRight:5}}),a("router.domainAlias.add.title")]}),c&&e.jsx(se,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}Oe.propTypes={id:m.string.isRequired,name:m.string.isRequired,children:m.any,onActivate:m.func,title:m.string,teamDid:m.string};Oe.defaultProps={onActivate:()=>{},children:null,title:"",teamDid:""};function Fe({id:t,name:n,corsAllowedOrigins:r,onActivate:i,children:o,teamDid:l}){const{t:a}=z(),{actions:s}=ue(),[d,g]=x.useState(!1),[c,u]=x.useState(null);if(Qt(n))return null;let f=n;n.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX)&&(f=`${a("common.the")} Blocklet`);const w=()=>{g(!1),u(null)},j=async k=>{g(!0),await s.updateSite(t,{corsAllowedOrigins:k.corsAllowedOrigins.split(",").map(R=>R.trim())},l),g(!1),u(null)},_={title:a("router.domainSecurity.title"),description:(k,R,D)=>e.jsx(A,{component:"div",children:e.jsx(H,{label:a("router.domainSecurity.cors.title",{name:f}),autoComplete:"off",variant:"outlined",name:"corsAllowedOrigins",fullWidth:!0,autoFocus:!0,value:k.corsAllowedOrigins,style:{marginBottom:32},margin:"dense",helperText:a("router.domainSecurity.cors.description",{name:f}),onChange:p=>{R({...k,corsAllowedOrigins:p.target.value,__disableConfirm:!p.target.value.trim()}),p.target.value.trim()?D(""):D(a("router.domainSecurity.cors.domainInvalid"))}})}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{corsAllowedOrigins:Array.isArray(r)?r.join(", "):n,__disableConfirm:!0},onConfirm:j,onCancel:w},v=k=>{k.stopPropagation(),u(_)||i()};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:d,open:v}):e.jsxs(J,{onClick:v,className:"rule-action","data-cy":"action-update-domain",children:[d?e.jsx(V,{size:16}):e.jsx(Ne,{style:{fontSize:18,marginRight:5}}),a("router.domainSecurity.title")]}),c&&e.jsx(se,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}Fe.propTypes={id:m.string.isRequired,name:m.string.isRequired,children:m.any,onActivate:m.func,corsAllowedOrigins:m.oneOfType([m.string,m.array]),teamDid:m.string};Fe.defaultProps={onActivate:()=>{},children:null,corsAllowedOrigins:"",teamDid:""};function Ho({id:t,name:n,onActivate:r}){const{t:i}=z(),{actions:o}=ue(),[l,a]=x.useState(!1),[s,d]=x.useState(null);if(Qt(n))return null;const g=()=>{a(!1),d(null)},c=async w=>{a(!0),await o.updateSite(t,{domain:w.domain.trim()}),a(!1),d(null)},u={title:i("router.domain.update.title"),description:(w,j,_)=>e.jsx(A,{component:"div",children:e.jsx(H,{label:i("router.domain.update.label"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:w.domain,style:{marginBottom:32},margin:"dense",helperText:i("router.domain.update.description"),onChange:v=>{const k=v.target.value.trim(),R=$e(k,i);j({...w,domain:v.target.value,__disableConfirm:!!R}),_(R||"")}})}),confirm:i("common.confirm"),cancel:i("common.cancel"),params:{domain:n,__disableConfirm:!0},onConfirm:c,onCancel:g},f=w=>{w.stopPropagation(),d(u)||r()};return e.jsxs(e.Fragment,{children:[e.jsxs(J,{onClick:f,className:"rule-action",children:[l?e.jsx(V,{size:16}):e.jsx(Rr,{style:{fontSize:18,marginRight:5}}),i("router.domain.update.title")]}),s&&e.jsx(se,{title:s.title,description:s.description,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel,color:"primary"})]})}function _e(t){const[n,r]=x.useState(null),i=s=>{s.stopPropagation(),r(s.currentTarget)},o=s=>{s&&s.stopPropagation(),r(null)},l=[];if(t.type==="root"&&l.push(e.jsx(gt,{...t,onActivate:o},"add-domain")),t.type==="domain"&&l.push(e.jsx(Ho,{...t,onActivate:o},"update-domain"),e.jsx(st,{...t,onActivate:o,onRuleAdded:t.onRuleAdded},"add-rule"),e.jsx(Oe,{...t,onActivate:o},"add-domain-alias"),e.jsx(Fe,{...t,onActivate:o},"update-domain-security"),e.jsx(Yn,{...t,onActivate:o},"delete-domain")),t.type==="rule"&&l.push(e.jsx(un,{...t,onActivate:o},"update-rule"),e.jsx(dn,{...t,onActivate:o},"delete-rule")),t.type===E.ROUTING_RULE_TYPES.REDIRECT&&l.push(e.jsx(Yn,{...t,onActivate:o},"delete-domain")),t.type==="dashboard_domain"&&l.push(e.jsx(st,{...t,onActivate:o},"add-rule"),e.jsx(Fe,{...t,onActivate:o},"update-domain-security"),e.jsx(Oe,{...t,onActivate:o},"add-domain-alias")),t.type==="blocklet_domain"&&l.push(e.jsx(Fe,{...t,onActivate:o},"update-domain-security"),e.jsx(Oe,{...t,onActivate:o},"add-domain-alias")),l.length===0)return null;const a=s=>{s.stopPropagation()};return e.jsxs("div",{children:[e.jsx(Ft,{onMouseDown:a,onClick:i,"data-cy":"action-trigger",size:"large",children:e.jsx(Gi,{})}),e.jsx(pi,{keepMounted:!0,onMouseDown:a,open:!!n,onClose:o,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:l})]})}_e.propTypes={blocklet:m.object,onRuleAdded:m.func};_e.defaultProps={onRuleAdded:()=>{},blocklet:{}};function mn({certificate:t}){const[n,r]=x.useState(null),i=Z(),{t:o,locale:l}=z(),a=g=>{r(g.currentTarget)},s=()=>{r(null)},d=!!n;return e.jsxs(e.Fragment,{children:[e.jsx(_r,{"aria-owns":d?"mouse-over-popover":void 0,onMouseEnter:a,onMouseLeave:s,style:{color:"#44cdc6",fontSize:20,marginLeft:8,cursor:"pointer"}}),e.jsx(hi,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:d,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:s,disableRestoreFocus:!0,children:e.jsx(xi,{children:e.jsxs(yi,{style:{display:"flex"},children:[e.jsx("div",{children:e.jsx("img",{src:`${i.imgPrefix}/https-certificate-icon.png`,alt:"certificate icon",style:{maxHeight:"100%",maxWidth:"100%"}})}),e.jsxs(A,{component:"div",style:{marginLeft:"16px"},children:[e.jsx(A,{component:"div",style:{fontWeight:"bold"},children:t.domain}),e.jsx(A,{component:"div",children:`${o("common.issuer")}: ${ne(t,"issuer.commonName","")}`}),e.jsx(A,{component:"div",children:`${o("router.cert.issuedOn")}: ${it(t.validFrom,l)}`}),e.jsx(A,{component:"div",children:`${o("router.cert.expiryOn")}: ${it(t.validTo,l)}`})]})]})})})]})}mn.propTypes={certificate:m.object};mn.defaultProps={certificate:{}};function lt(t){const{name:n,type:r,filters:i}=t,{t:o}=z(),{status:l}=pt();if(r!=="domain"||!Gt(n))return null;let a=null,s=null;const{isHttps:d,matchedCert:g}=l[n]||{};if(!gi(n)){const{dns:{resolved:u,ip:f}={}}=l[n]||{};u||f==="127.0.0.1"?a=e.jsx(pe,{title:o("router.domain.verify.ok"),children:e.jsx(qn,{color:"success"})}):a=e.jsx(pe,{title:o("router.domain.verify.notResolved"),children:e.jsx(qn,{color:"error"})})}d?s=e.jsx(mn,{certificate:g}):s=e.jsx(pe,{title:o("router.domain.https.bad"),children:e.jsx(_r,{style:{color:"#D0021B",fontSize:20,marginLeft:8,cursor:"pointer"}})});const c=i.map(u=>u==="domain"?a:u==="http"?s:null);return x.createElement(x.Fragment,null,...c)}lt.propTypes={type:m.string.isRequired,name:m.string.isRequired,filters:m.array};lt.defaultProps={filters:["domain","http"]};const Ko=t=>["waiting","creating","renewaling"].includes(t);function fn(t){var p;const{t:n}=z(),[r,i]=x.useState(!1),[o,l]=x.useState(null),{domain:a,onAdd:s,children:d,siteId:g}=t,{api:c}=Z(),[u,f]=x.useState(!1),{updateStatus:w}=pt(),j=ze(async()=>{const{cert:C}=await c.findCertificateByDomain({input:{domain:a}});return C}),_=C=>{C.domain===a&&f(!1)};if(x.useEffect(()=>{var C;!j.loading&&Ko((C=j.value)==null?void 0:C.status)&&f(!0)},[j]),Ot(E.EVENTS.CERT_ERROR,_),Ot(E.EVENTS.CERT_ISSUED,C=>{j.retry(),w(C.domain),_(C)}),j.loading||((p=j.value)==null?void 0:p.status)==="normal")return"";const v=()=>{i(!1),l(null)},k=async()=>{i(!0);try{await c.issueLetsEncryptCert({input:{domain:a,siteId:g}}),s(),f(!0)}catch(C){console.error(C),f(!1)}finally{i(!1),l(null)}},R={title:n("router.cert.genLetsEncryptCert.title"),description:e.jsxs("div",{children:[e.jsx(be,{severity:"success",children:n("router.cert.genLetsEncryptCert.dnsTip")}),n("router.cert.genLetsEncryptCert.description")]}),confirm:n("common.confirm"),onConfirm:k,onCancel:v},D=C=>{C.stopPropagation(),l(R)};return e.jsxs(e.Fragment,{children:[u?e.jsx(pe,{title:n("router.cert.issuing"),children:e.jsx(V,{size:12})}):d({loading:r,open:D}),o&&e.jsx(se,{color:"primary",title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}fn.propTypes={domain:m.string.isRequired,onAdd:m.func,children:m.any,siteId:m.string.isRequired};fn.defaultProps={onAdd:()=>{},children:null};function ct(t){var i;const{status:n}=pt(),{domain:r}=t;return!Gt(r)||(i=n[r])!=null&&i.isHttps?"":e.jsx(fn,{...t})}ct.propTypes={siteId:m.string.isRequired,domain:m.string.isRequired,onAdd:m.func,children:m.any};ct.defaultProps={onAdd:()=>{},children:null};function pn(t){const{t:n}=z(),[r,i]=x.useState(!1),[o,l]=x.useState(null),{id:a,domain:s,onDelete:d,children:g,teamDid:c}=t,{actions:u}=ue();if(s===window.location.hostname)return"";const f=()=>{i(!1),l(null)},w=async()=>{i(!0);try{await u.deleteDomainAlias(a,s,c),d()}catch(v){console.error(v)}finally{i(!1),l(null)}},j={title:n("router.domainAlias.delete.title"),description:n("router.domainAlias.delete.description"),confirm:n("common.confirm"),onConfirm:w,onCancel:f},_=v=>{v.stopPropagation(),l(j)};return e.jsxs(e.Fragment,{children:[typeof g=="function"?g({loading:r,open:_}):e.jsxs(X,{edge:"end",onClick:_,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[r?e.jsx(V,{size:16}):e.jsx(je,{style:{fontSize:16}}),n("router.domainAlias.delete.title")]}),o&&e.jsx(se,{title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}pn.propTypes={id:m.string.isRequired,domain:m.string.isRequired,onDelete:m.func,children:m.any,teamDid:m.string};pn.defaultProps={onDelete:()=>{},children:null,teamDid:""};function gn({domain:t,isHttps:n,toUrl:r}){const i=n?"https":"http",{t:o}=z();let l=r;return vr(l)||(l=`${i}://${t}${r}`),e.jsxs(e.Fragment,{children:[e.jsx(A,{className:"arrow-name-middle",children:o("common.redirect")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsx(Vt,{href:l,target:"_blank",underline:"hover",children:r},l)]})}gn.propTypes={domain:m.string.isRequired,toUrl:m.string.isRequired,isHttps:m.bool};gn.defaultProps={isHttps:!1};function hn(){const{t}=z();return e.jsx(A,{className:"arrow-name-middle",children:t("common.page404")})}hn.propTypes={};hn.defaultProps={};function Ue(t){const{t:n}=z(),{data:r}=Kt(),{info:i}=Z(),{status:o}=pt(),l=r.map(G=>({meta:{did:G.meta.did,name:bi.getDisplayName(G,!0),version:G.meta.version,interfaces:G.meta.interfaces},port:G.port,ports:G.ports,status:G.status})),{id:a,type:s,name:d,title:g,items:c=[],depth:u,to:f,expand:w,isProtected:j,pathPrefix:_,parent:v,domainAliases:k}=t;let R=d;const D=d.endsWith(E.BLOCKLET_SITE_GROUP_SUFFIX);let p=s;d===ve&&(p="dashboard_domain"),D&&(p="blocklet_domain");const[C,h]=x.useState(w),y={root:$r,domain:kr,rule:Ur}[s],S={paddingBottom:8,paddingLeft:8};if(s==="domain"){let G=function({domain:W,primaryDomain:B,rules:N}){let Y=nt(W);return B===ve?Y=`${Y}/${i.routing.adminPath.replace(/^\/+/,"")}`:N&&N.length&&N[0].pathPrefix&&(Y=`${Y}/${N[0].pathPrefix.replace(/^\/+/,"")}`),W!==ve?e.jsx(Go,{href:Y,target:"_blank",rel:"noreferrer",onClick:Se=>Se.stopPropagation(),children:W}):W};if(j&&!D)return null;if(D){const W=d.replace(E.BLOCKLET_SITE_GROUP_SUFFIX,""),B=l.find(N=>N.meta.did===W);if(!B||B.controller)return null;R=B.meta.title||B.meta.name}G.propTypes={domain:m.string.isRequired,primaryDomain:m.string.isRequired,rules:m.array.isRequired};const ye=()=>{h(!0)};let ge=(k||[]).filter(W=>W.value!==d);return ge=ji(ge),[e.jsxs(At,{alignItems:"flex-start",button:!0,disableGutters:!0,"data-cy":"rule-domain",children:[!D&&e.jsxs(Xe,{onClick:()=>h(W=>!W),children:[c.length>0&&(C?e.jsx(Hi,{}):e.jsx(Ki,{})),e.jsx(y,{style:{fontSize:22}})]}),D&&e.jsx(Xe,{children:e.jsx(y,{style:{fontSize:22}})}),e.jsx(Pt,{onClick:()=>h(W=>!W),className:`rule-name rule-name--depth${u}`,style:{flex:1},secondary:c.length<=0?e.jsx("span",{className:"site-secondary",children:n("router.empty")}):"",primary:e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"site-header",children:[d===E.DOMAIN_FOR_DEFAULT_SITE&&n("router.defaultSite"),d!==E.DOMAIN_FOR_DEFAULT_SITE&&!D&&e.jsx(G,{domain:d,primaryDomain:d,rules:c}),D&&R,c.length&&!C?e.jsx("span",{style:{marginLeft:5},children:`(${c.length} URL)`}):null,e.jsx("span",{style:{marginLeft:12}}),s==="domain"&&d!==E.DOMAIN_FOR_DEFAULT_SITE&&d!==ve&&!D&&e.jsxs(e.Fragment,{children:[e.jsx(lt,{type:s,name:d},d),e.jsx("span",{style:{marginLeft:12}}),e.jsx(ct,{siteId:a,domain:d,children:({open:W})=>e.jsx(X,{size:"small",onClick:B=>W(B),children:n("router.cert.genLetsEncryptCert.title")})})]})]}),ge.map(W=>{const B=typeof W!="string"?W.value:W;return e.jsxs("div",{className:"site-alias",children:[e.jsx(G,{domain:B,primaryDomain:d,rules:c}),e.jsx("span",{style:{marginLeft:12}}),e.jsx(lt,{type:s,name:B},`domain-status-${d}`),e.jsx(ct,{siteId:a,domain:B,children:({open:N})=>e.jsx(X,{size:"small",onClick:Y=>N(Y),children:n("router.cert.genLetsEncryptCert.title")})}),!W.isProtected&&e.jsx(pn,{id:t.id,domain:B},"delete-domain-alias"),B!==ve&&B!==window.location.hostname&&e.jsx(_e,{...t,domain:B,type:"domainAlias",onRuleAdded:ye},`action-${d}`)]},B)})]})}),e.jsx(re,{permission:"mutate_router",children:e.jsx(Tt,{children:e.jsx(_e,{blocklets:l,...t,onRuleAdded:ye,type:p},d)})})]},"parent"),!D&&c.length>0&&e.jsx(wi,{in:C,children:e.jsx(Nt,{component:"div",className:`rule-list rule-list--depth${u}`,disablePadding:!0,children:c.map(W=>e.jsx(Ue,{...W,parent:t,depth:u+1},W.id))},"children")},"rules")]}if(s==="root")return[e.jsxs(At,{disableGutters:!0,"data-cy":"rule-root",children:[e.jsx(Xe,{children:e.jsx(y,{style:{fontSize:22}})}),e.jsx(Pt,{primary:d}),e.jsx(re,{permission:"mutate_router",children:e.jsx(Tt,{children:e.jsx(_e,{blocklets:l,...t})})})]},"root"),c.length>0&&e.jsx(Nt,{component:"div",className:`rule-list rule-list--depth${u}`,disablePadding:!0,children:c.map(G=>e.jsx(Ue,{expand:!j,...G,parent:t,depth:u+1},G.id))},"children")];let T=`/blocklets/${f.did}/overview`;f.type===E.ROUTING_RULE_TYPES.DAEMON&&(T="/");const $={meta:{did:i.did,name:"Blocklet Server Dashboard",version:i.version},status:"running",port:i.port},U=f.did===i.did?$:l.find(G=>G.meta.did===f.did),I=U&&U.status==="running"||f.type===E.ROUTING_RULE_TYPES.DAEMON,O=n(I?"router.healthy.ok":"router.healthy.error"),L=o[v.name]||{};return e.jsxs(At,{className:"hover-item",divider:!0,disableGutters:!0,style:S,"data-cy":"rule-item",children:[e.jsx(Xe,{className:"arrow-icon",children:e.jsx(y,{style:{fontSize:22}})}),e.jsx(Pt,{primary:e.jsxs(A,{component:"div",className:"arrow-name",children:[e.jsx(A,{style:{wordBreak:"break-all"},className:"arrow-name-left",children:d}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),(f.type===E.ROUTING_RULE_TYPES.DAEMON||f.type===E.ROUTING_RULE_TYPES.BLOCKLET)&&e.jsxs(e.Fragment,{children:[v.name!==E.DOMAIN_FOR_DEFAULT_SITE&&I&&e.jsx(q,{className:"arrow-name-middle",children:e.jsx(Vt,{href:nt(v.name,_),target:"_blank",underline:"hover",children:n("common.open")})}),v.name===E.DOMAIN_FOR_DEFAULT_SITE&&e.jsx(A,{component:"span",className:"arrow-name-middle",children:"Blocklet"}),!I&&e.jsx("span",{className:"arrow-name-middle",children:n("common.unavailable")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsxs(Ci,{to:T,className:"arrow-name-right",children:[e.jsx(pe,{title:O,children:I?e.jsx(qi,{style:{color:"#44cdc6",fontSize:20}}):e.jsx(Nr,{style:{color:"red",fontSize:20}})}),e.jsx("span",{children:U?U.meta.name:g}),U&&e.jsx("span",{style:{marginLeft:8},children:e.jsx(Dr,{status:U.status,progress:U.progress})})]})]}),f.type===E.ROUTING_RULE_TYPES.REDIRECT&&e.jsx(gn,{prefix:_,domain:v.name,toUrl:f.url,isHttps:L.isHttps}),f.type===E.ROUTING_RULE_TYPES.NONE&&e.jsx(hn,{})]})}),e.jsx(re,{permission:"mutate_router",children:e.jsx(Tt,{children:e.jsx(_e,{blocklets:l,...t,did:f.did})})})]},d)}Ue.propTypes={type:m.string.isRequired,to:m.object,name:m.string.isRequired,title:m.string,id:m.string,items:m.array,parent:m.object,depth:m.number,expand:m.bool,isProtected:m.bool,pathPrefix:m.string,domainAliases:m.array};Ue.defaultProps={id:"",to:{},title:"",items:[],depth:0,parent:{},expand:!0,isProtected:!1,pathPrefix:"",domainAliases:[]};const At=ee(vi)`
|
|
122
|
+
.MuiListItemText-root {
|
|
123
|
+
padding-right: 48px;
|
|
124
|
+
}
|
|
125
|
+
.MuiListItemSecondaryAction-root {
|
|
126
|
+
right: 0;
|
|
127
|
+
}
|
|
128
|
+
.site-header {
|
|
129
|
+
display: unset !important;
|
|
130
|
+
vertical-align: middle;
|
|
131
|
+
.MuiSvgIcon-root {
|
|
132
|
+
vertical-align: middle;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
`,Go=ee("a")`
|
|
136
|
+
color: #000;
|
|
137
|
+
white-space: normal;
|
|
138
|
+
word-break: break-all;
|
|
139
|
+
:hover {
|
|
140
|
+
color: rgba(0, 0, 0, 0.6);
|
|
141
|
+
}
|
|
142
|
+
`;function Vo(){const{sites:t,allDomains:n}=ue(),{data:r}=Kt(),{t:i}=z(),o=t.map(l=>{const a=l.items.filter(s=>!s.isProtected);return{...l,items:a}});return e.jsx(Lr,{domains:n,children:e.jsxs(Yo,{children:[e.jsx(re,{permission:"mutate_router",children:e.jsx(q,{textAlign:"right",mb:1,children:e.jsx(gt,{blocklets:r,children:({open:l})=>e.jsxs(X,{style:{marginLeft:16},variant:"contained",color:"primary","data-cy":"add-domain-alias",onClick:l,children:[e.jsx(Ne,{style:{fontSize:"1.3em",marginRight:4}}),i("router.domain.addSite")]})})})}),e.jsx(Nt,{component:"div",disablePadding:!0,children:o.map(l=>x.createElement(Ue,{...l,depth:1,key:l.id}))})]})})}const Yo=ee.main`
|
|
143
|
+
margin-top: ${t=>t.theme.spacing(2)};
|
|
144
|
+
min-height: 60vh;
|
|
145
|
+
|
|
146
|
+
.MuiListItemIcon-root {
|
|
147
|
+
min-width: ${t=>t.theme.spacing(4)};
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.site-header {
|
|
151
|
+
display: flex;
|
|
152
|
+
align-items: center;
|
|
153
|
+
margin-left: ${t=>t.theme.spacing(1)};
|
|
154
|
+
font-size: 1.2rem;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.site-alias {
|
|
158
|
+
display: flex;
|
|
159
|
+
align-items: center;
|
|
160
|
+
margin-left: ${t=>t.theme.spacing(1)};
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.site-secondary {
|
|
164
|
+
margin-left: ${t=>t.theme.spacing(1)};
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.rule-list--depth1 {
|
|
168
|
+
padding-left: ${t=>t.theme.spacing(4)};
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.rule-list--depth2 {
|
|
172
|
+
padding-left: ${t=>t.theme.spacing(5)};
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.rule-action {
|
|
176
|
+
margin-left: ${t=>t.theme.spacing(2)};
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.rule-name--depth2 span {
|
|
180
|
+
font-weight: bold;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.arrow-name {
|
|
184
|
+
display: flex;
|
|
185
|
+
align-items: center;
|
|
186
|
+
.arrow-name-left {
|
|
187
|
+
width: 400px;
|
|
188
|
+
flex-shrink: 0;
|
|
189
|
+
text-align: left;
|
|
190
|
+
}
|
|
191
|
+
.arrow-name-middle {
|
|
192
|
+
width: 150px;
|
|
193
|
+
flex-shrink: 0;
|
|
194
|
+
text-align: left;
|
|
195
|
+
}
|
|
196
|
+
.arrow-name-arrow {
|
|
197
|
+
width: 40px;
|
|
198
|
+
flex-shrink: 0;
|
|
199
|
+
margin: auto 16px;
|
|
200
|
+
font-size: 24px;
|
|
201
|
+
color: #0000008a;
|
|
202
|
+
}
|
|
203
|
+
.arrow-name-right {
|
|
204
|
+
flex-shrink: 0;
|
|
205
|
+
display: flex;
|
|
206
|
+
align-items: center;
|
|
207
|
+
|
|
208
|
+
span {
|
|
209
|
+
margin: 0 8px;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@media (max-width: ${t=>t.theme.breakpoints.values.md}px) {
|
|
215
|
+
.rule-list--depth1,
|
|
216
|
+
.rule-list--depth2 {
|
|
217
|
+
padding-left: 0;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.MuiListItem-secondaryAction {
|
|
221
|
+
padding-right: 0;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
@media (max-width: ${t=>t.theme.breakpoints.values.lg}px) {
|
|
226
|
+
.arrow-icon {
|
|
227
|
+
margin-top: 4px;
|
|
228
|
+
align-self: flex-start;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.arrow-name {
|
|
232
|
+
flex-direction: column;
|
|
233
|
+
align-items: flex-start;
|
|
234
|
+
.arrow-name-left {
|
|
235
|
+
width: auto;
|
|
236
|
+
}
|
|
237
|
+
.arrow-name-middle {
|
|
238
|
+
margin: 5px 0;
|
|
239
|
+
}
|
|
240
|
+
.arrow-name-arrow {
|
|
241
|
+
display: none;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
`;var Xo=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 qe(t,n){var r=Qo(t);if(typeof r.path!="string"){var i=t.webkitRelativePath;Object.defineProperty(r,"path",{value:typeof n=="string"?n:typeof i=="string"&&i.length>0?i:t.name,writable:!1,configurable:!1,enumerable:!0})}return r}function Qo(t){var n=t.name,r=n&&n.lastIndexOf(".")!==-1;if(r&&!t.type){var i=n.split(".").pop().toLowerCase(),o=Xo.get(i);o&&Object.defineProperty(t,"type",{value:o,writable:!1,configurable:!1,enumerable:!0})}return t}var Zo=[".DS_Store","Thumbs.db"];function Jo(t){return Te(this,void 0,void 0,function(){return Ee(this,function(n){return dt(t)&&ea(t)?[2,ia(t.dataTransfer,t.type)]:ta(t)?[2,na(t)]:Array.isArray(t)&&t.every(function(r){return"getFile"in r&&typeof r.getFile=="function"})?[2,ra(t)]:[2,[]]})})}function ea(t){return dt(t.dataTransfer)}function ta(t){return dt(t)&&dt(t.target)}function dt(t){return typeof t=="object"&&t!==null}function na(t){return zt(t.target.files).map(function(n){return qe(n)})}function ra(t){return Te(this,void 0,void 0,function(){var n;return Ee(this,function(r){switch(r.label){case 0:return[4,Promise.all(t.map(function(i){return i.getFile()}))];case 1:return n=r.sent(),[2,n.map(function(i){return qe(i)})]}})})}function ia(t,n){return Te(this,void 0,void 0,function(){var r,i;return Ee(this,function(o){switch(o.label){case 0:return t===null?[2,[]]:t.items?(r=zt(t.items).filter(function(l){return l.kind==="file"}),n!=="drop"?[2,r]:[4,Promise.all(r.map(oa))]):[3,2];case 1:return i=o.sent(),[2,Xn(zr(i))];case 2:return[2,Xn(zt(t.files).map(function(l){return qe(l)}))]}})})}function Xn(t){return t.filter(function(n){return Zo.indexOf(n.name)===-1})}function zt(t){if(t===null)return[];for(var n=[],r=0;r<t.length;r++){var i=t[r];n.push(i)}return n}function oa(t){if(typeof t.webkitGetAsEntry!="function")return Qn(t);var n=t.webkitGetAsEntry();return n&&n.isDirectory?Br(n):Qn(t)}function zr(t){return t.reduce(function(n,r){return Si(n,Array.isArray(r)?zr(r):[r])},[])}function Qn(t){var n=t.getAsFile();if(!n)return Promise.reject(t+" is not a File");var r=qe(n);return Promise.resolve(r)}function aa(t){return Te(this,void 0,void 0,function(){return Ee(this,function(n){return[2,t.isDirectory?Br(t):sa(t)]})})}function Br(t){var n=t.createReader();return new Promise(function(r,i){var o=[];function l(){var a=this;n.readEntries(function(s){return Te(a,void 0,void 0,function(){var d,g,c;return Ee(this,function(u){switch(u.label){case 0:if(s.length)return[3,5];u.label=1;case 1:return u.trys.push([1,3,,4]),[4,Promise.all(o)];case 2:return d=u.sent(),r(d),[3,4];case 3:return g=u.sent(),i(g),[3,4];case 4:return[3,6];case 5:c=Promise.all(s.map(aa)),o.push(c),l(),u.label=6;case 6:return[2]}})})},function(s){i(s)})}l()})}function sa(t){return Te(this,void 0,void 0,function(){return Ee(this,function(n){return[2,new Promise(function(r,i){t.file(function(o){var l=qe(o,t.fullPath);r(l)},function(o){i(o)})})]})})}var la=function(t,n){if(t&&n){var r=Array.isArray(n)?n:n.split(","),i=t.name||"",o=(t.type||"").toLowerCase(),l=o.replace(/\/.*$/,"");return r.some(function(a){var s=a.trim().toLowerCase();return s.charAt(0)==="."?i.toLowerCase().endsWith(s):s.endsWith("/*")?l===s.replace(/\/.*$/,""):o===s})}return!0};function Zn(t,n){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);n&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,i)}return r}function Jn(t){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?Zn(Object(r),!0).forEach(function(i){Mr(t,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):Zn(Object(r)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(r,i))})}return t}function Mr(t,n,r){return n in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t}function er(t,n){return ma(t)||ua(t,n)||da(t,n)||ca()}function ca(){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 da(t,n){if(t){if(typeof t=="string")return tr(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return tr(t,n)}}function tr(t,n){(n==null||n>t.length)&&(n=t.length);for(var r=0,i=new Array(n);r<n;r++)i[r]=t[r];return i}function ua(t,n){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var i=[],o=!0,l=!1,a,s;try{for(r=r.call(t);!(o=(a=r.next()).done)&&(i.push(a.value),!(n&&i.length===n));o=!0);}catch(d){l=!0,s=d}finally{try{!o&&r.return!=null&&r.return()}finally{if(l)throw s}}return i}}function ma(t){if(Array.isArray(t))return t}var fa="file-invalid-type",pa="file-too-large",ga="file-too-small",ha="too-many-files",xa=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:fa,message:"File type must be ".concat(r)}},nr=function(n){return{code:pa,message:"File is larger than ".concat(n," ").concat(n===1?"byte":"bytes")}},rr=function(n){return{code:ga,message:"File is smaller than ".concat(n," ").concat(n===1?"byte":"bytes")}},ya={code:ha,message:"Too many files"};function Wr(t,n){var r=t.type==="application/x-moz-file"||la(t,n);return[r,r?null:xa(n)]}function qr(t,n,r){if(Ie(t.size))if(Ie(n)&&Ie(r)){if(t.size>r)return[!1,nr(r)];if(t.size<n)return[!1,rr(n)]}else{if(Ie(n)&&t.size<n)return[!1,rr(n)];if(Ie(r)&&t.size>r)return[!1,nr(r)]}return[!0,null]}function Ie(t){return t!=null}function va(t){var n=t.files,r=t.accept,i=t.minSize,o=t.maxSize,l=t.multiple,a=t.maxFiles;return!l&&n.length>1||l&&a>=1&&n.length>a?!1:n.every(function(s){var d=Wr(s,r),g=er(d,1),c=g[0],u=qr(s,i,o),f=er(u,1),w=f[0];return c&&w})}function ut(t){return typeof t.isPropagationStopped=="function"?t.isPropagationStopped():typeof t.cancelBubble<"u"?t.cancelBubble:!1}function Ze(t){return t.dataTransfer?Array.prototype.some.call(t.dataTransfer.types,function(n){return n==="Files"||n==="application/x-moz-file"}):!!t.target&&!!t.target.files}function ir(t){t.preventDefault()}function ba(t){return t.indexOf("MSIE")!==-1||t.indexOf("Trident/")!==-1}function ja(t){return t.indexOf("Edge/")!==-1}function wa(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return ba(t)||ja(t)}function me(){for(var t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];return function(i){for(var o=arguments.length,l=new Array(o>1?o-1:0),a=1;a<o;a++)l[a-1]=arguments[a];return n.some(function(s){return!ut(i)&&s&&s.apply(void 0,[i].concat(l)),ut(i)})}}function or(){return"showOpenFilePicker"in window}function Ca(t){return t=typeof t=="string"?t.split(","):t,[{description:"everything",accept:Array.isArray(t)?t.filter(function(n){return n==="audio/*"||n==="video/*"||n==="image/*"||n==="text/*"||/\w+\/[-+.\w]+/g.test(n)}).reduce(function(n,r){return Jn(Jn({},n),{},Mr({},r,[]))},{}):{}}]}var Sa=["children"],Da=["open"],ka=["refKey","role","onKeyDown","onFocus","onBlur","onClick","onDragEnter","onDragOver","onDragLeave","onDrop"],Ra=["refKey","onChange","onClick"];function _a(t){return Ea(t)||Ta(t)||Hr(t)||Pa()}function Pa(){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 Ta(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Ea(t){if(Array.isArray(t))return Bt(t)}function It(t,n){return La(t)||Ia(t,n)||Hr(t,n)||Aa()}function Aa(){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 Hr(t,n){if(t){if(typeof t=="string")return Bt(t,n);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Bt(t,n)}}function Bt(t,n){(n==null||n>t.length)&&(n=t.length);for(var r=0,i=new Array(n);r<n;r++)i[r]=t[r];return i}function Ia(t,n){var r=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(r!=null){var i=[],o=!0,l=!1,a,s;try{for(r=r.call(t);!(o=(a=r.next()).done)&&(i.push(a.value),!(n&&i.length===n));o=!0);}catch(d){l=!0,s=d}finally{try{!o&&r.return!=null&&r.return()}finally{if(l)throw s}}return i}}function La(t){if(Array.isArray(t))return t}function ar(t,n){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);n&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,i)}return r}function K(t){for(var n=1;n<arguments.length;n++){var r=arguments[n]!=null?arguments[n]:{};n%2?ar(Object(r),!0).forEach(function(i){Mt(t,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):ar(Object(r)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(r,i))})}return t}function Mt(t,n,r){return n in t?Object.defineProperty(t,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[n]=r,t}function mt(t,n){if(t==null)return{};var r=Oa(t,n),i,o;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(o=0;o<l.length;o++)i=l[o],!(n.indexOf(i)>=0)&&Object.prototype.propertyIsEnumerable.call(t,i)&&(r[i]=t[i])}return r}function Oa(t,n){if(t==null)return{};var r={},i=Object.keys(t),o,l;for(l=0;l<i.length;l++)o=i[l],!(n.indexOf(o)>=0)&&(r[o]=t[o]);return r}var xn=x.forwardRef(function(t,n){var r=t.children,i=mt(t,Sa),o=qt(i),l=o.open,a=mt(o,Da);return x.useImperativeHandle(n,function(){return{open:l}},[l]),Di.createElement(x.Fragment,null,r(K(K({},a),{},{open:l})))});xn.displayName="Dropzone";var Kr={disabled:!1,getFilesFromEvent:Jo,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1};xn.defaultProps=Kr;xn.propTypes={children:m.func,accept:m.oneOfType([m.string,m.arrayOf(m.string)]),multiple:m.bool,preventDropOnDocument:m.bool,noClick:m.bool,noKeyboard:m.bool,noDrag:m.bool,noDragEventsBubbling:m.bool,minSize:m.number,maxSize:m.number,maxFiles:m.number,disabled:m.bool,getFilesFromEvent:m.func,onFileDialogCancel:m.func,onFileDialogOpen:m.func,useFsAccessApi:m.bool,onDragEnter:m.func,onDragLeave:m.func,onDragOver:m.func,onDrop:m.func,onDropAccepted:m.func,onDropRejected:m.func,validator:m.func};var Wt={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function qt(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=K(K({},Kr),t),r=n.accept,i=n.disabled,o=n.getFilesFromEvent,l=n.maxSize,a=n.minSize,s=n.multiple,d=n.maxFiles,g=n.onDragEnter,c=n.onDragLeave,u=n.onDragOver,f=n.onDrop,w=n.onDropAccepted,j=n.onDropRejected,_=n.onFileDialogCancel,v=n.onFileDialogOpen,k=n.useFsAccessApi,R=n.preventDropOnDocument,D=n.noClick,p=n.noKeyboard,C=n.noDrag,h=n.noDragEventsBubbling,b=n.validator,y=x.useMemo(function(){return typeof v=="function"?v:sr},[v]),S=x.useMemo(function(){return typeof _=="function"?_:sr},[_]),T=x.useRef(null),$=x.useRef(null),U=x.useReducer(Fa,Wt),I=It(U,2),O=I[0],L=I[1],G=O.isFocused,ye=O.isFileDialogActive,ge=O.draggedFiles,W=function(){ye&&setTimeout(function(){if($.current){var F=$.current.files;F.length||(L({type:"closeDialog"}),S())}},300)};x.useEffect(function(){return k&&or()?function(){}:(window.addEventListener("focus",W,!1),function(){window.removeEventListener("focus",W,!1)})},[$,ye,S,k]);var B=x.useRef([]),N=function(F){T.current&&T.current.contains(F.target)||(F.preventDefault(),B.current=[])};x.useEffect(function(){return R&&(document.addEventListener("dragover",ir,!1),document.addEventListener("drop",N,!1)),function(){R&&(document.removeEventListener("dragover",ir),document.removeEventListener("drop",N))}},[T,R]);var Y=x.useCallback(function(P){P.preventDefault(),P.persist(),Ve(P),B.current=[].concat(_a(B.current),[P.target]),Ze(P)&&Promise.resolve(o(P)).then(function(F){ut(P)&&!h||(L({draggedFiles:F,isDragActive:!0,type:"setDraggedFiles"}),g&&g(P))})},[o,g,h]),Se=x.useCallback(function(P){P.preventDefault(),P.persist(),Ve(P);var F=Ze(P);if(F&&P.dataTransfer)try{P.dataTransfer.dropEffect="copy"}catch{}return F&&u&&u(P),!1},[u,h]),Sn=x.useCallback(function(P){P.preventDefault(),P.persist(),Ve(P);var F=B.current.filter(function(ie){return T.current&&T.current.contains(ie)}),te=F.indexOf(P.target);te!==-1&&F.splice(te,1),B.current=F,!(F.length>0)&&(L({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),Ze(P)&&c&&c(P))},[T,c,h]),He=x.useCallback(function(P,F){var te=[],ie=[];P.forEach(function(ce){var Ae=Wr(ce,r),Re=It(Ae,2),wt=Re[0],Ct=Re[1],St=qr(ce,a,l),Ye=It(St,2),Dt=Ye[0],kt=Ye[1],Rt=b?b(ce):null;if(wt&&Dt&&!Rt)te.push(ce);else{var _t=[Ct,kt];Rt&&(_t=_t.concat(Rt)),ie.push({file:ce,errors:_t.filter(function(ri){return ri})})}}),(!s&&te.length>1||s&&d>=1&&te.length>d)&&(te.forEach(function(ce){ie.push({file:ce,errors:[ya]})}),te.splice(0)),L({acceptedFiles:te,fileRejections:ie,type:"setFiles"}),f&&f(te,ie,F),ie.length>0&&j&&j(ie,F),te.length>0&&w&&w(te,F)},[L,s,r,a,l,d,f,w,j,b]),Ke=x.useCallback(function(P){P.preventDefault(),P.persist(),Ve(P),B.current=[],Ze(P)&&Promise.resolve(o(P)).then(function(F){ut(P)&&!h||He(F,P)}),L({type:"reset"})},[o,He,h]),De=x.useCallback(function(){if(k&&or()){L({type:"openDialog"}),y();var P={multiple:s,types:Ca(r)};window.showOpenFilePicker(P).then(function(F){return o(F)}).then(function(F){return He(F,null)}).catch(function(F){return S(F)}).finally(function(){return L({type:"closeDialog"})});return}$.current&&(L({type:"openDialog"}),y(),$.current.value=null,$.current.click())},[L,y,S,k,He,r,s]),Dn=x.useCallback(function(P){!T.current||!T.current.isEqualNode(P.target)||(P.keyCode===32||P.keyCode===13)&&(P.preventDefault(),De())},[T,$,De]),kn=x.useCallback(function(){L({type:"focus"})},[]),Rn=x.useCallback(function(){L({type:"blur"})},[]),_n=x.useCallback(function(){D||(wa()?setTimeout(De,0):De())},[$,D,De]),ke=function(F){return i?null:F},jt=function(F){return p?null:ke(F)},Ge=function(F){return C?null:ke(F)},Ve=function(F){h&&F.stopPropagation()},Jr=x.useMemo(function(){return function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},F=P.refKey,te=F===void 0?"ref":F,ie=P.role,ce=P.onKeyDown,Ae=P.onFocus,Re=P.onBlur,wt=P.onClick,Ct=P.onDragEnter,St=P.onDragOver,Ye=P.onDragLeave,Dt=P.onDrop,kt=mt(P,ka);return K(K(Mt({onKeyDown:jt(me(ce,Dn)),onFocus:jt(me(Ae,kn)),onBlur:jt(me(Re,Rn)),onClick:ke(me(wt,_n)),onDragEnter:Ge(me(Ct,Y)),onDragOver:Ge(me(St,Se)),onDragLeave:Ge(me(Ye,Sn)),onDrop:Ge(me(Dt,Ke)),role:typeof ie=="string"&&ie!==""?ie:"button"},te,T),!i&&!p?{tabIndex:0}:{}),kt)}},[T,Dn,kn,Rn,_n,Y,Se,Sn,Ke,p,C,i]),ei=x.useCallback(function(P){P.stopPropagation()},[]),ti=x.useMemo(function(){return function(){var P=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},F=P.refKey,te=F===void 0?"ref":F,ie=P.onChange,ce=P.onClick,Ae=mt(P,Ra),Re=Mt({accept:r,multiple:s,type:"file",style:{display:"none"},onChange:ke(me(ie,Ke)),onClick:ke(me(ce,ei)),autoComplete:"off",tabIndex:-1},te,$);return K(K({},Re),Ae)}},[$,r,s,Ke,i]),Pn=ge.length,Tn=Pn>0&&va({files:ge,accept:r,minSize:a,maxSize:l,multiple:s,maxFiles:d}),ni=Pn>0&&!Tn;return K(K({},O),{},{isDragAccept:Tn,isDragReject:ni,isFocused:G&&!i,getRootProps:Jr,getInputProps:ti,rootRef:T,inputRef:$,open:ke(De)})}function Fa(t,n){switch(n.type){case"focus":return K(K({},t),{},{isFocused:!0});case"blur":return K(K({},t),{},{isFocused:!1});case"openDialog":return K(K({},Wt),{},{isFileDialogActive:!0});case"closeDialog":return K(K({},t),{},{isFileDialogActive:!1});case"setDraggedFiles":var r=n.isDragActive,i=n.draggedFiles;return K(K({},t),{},{draggedFiles:i,isDragActive:r});case"setFiles":return K(K({},t),{},{acceptedFiles:n.acceptedFiles,fileRejections:n.fileRejections});case"reset":return K({},Wt);default:return t}}function sr(){}const lr=50*1024,cr=t=>new Promise((n,r)=>{const i=new FileReader;i.readAsText(t),i.onload=()=>{n(i.result)},i.onerror=o=>r(o)});function dr({certificate:t={},onRefresh:n,mode:r,...i}){const{t:o}=z(),{api:l}=Z(),[a,s]=x.useState(!1),[d,g]=x.useState(),[c,u]=x.useState(),[f,w]=x.useState(!1),[j,_]=x.useState(""),[v,k]=x.useState("upload"),{handleSubmit:R,formState:D,control:p}=Yt({defaultValues:{name:t.name||t.domain}}),C=Wn({control:p,name:"name"}),h=Wn({control:p,name:"domain"}),b=()=>a?!0:v==="upload"&&r==="update"?!C:v==="upload"&&r==="add"?!C||!d||!c:v==="lets_encrypt"&&!h,y=()=>{s(!1),w(!1)},S=async N=>{if(r==="add"){const Y=(await cr(c)).replace(/\r\n/g,`
|
|
249
|
+
`),Se=(await cr(d)).replace(/\r\n/g,`
|
|
250
|
+
`);await l.addCertificate({input:{name:N.name.trim(),certificate:Y.split(`
|
|
251
|
+
`).join("|"),privateKey:Se.split(`
|
|
252
|
+
`).join("|")}})}else await l.updateCertificate({input:{id:t.id,name:N.name.trim()}})},T=N=>l.issueLetsEncryptCert({input:{domain:N.domain}}),$={upload:{name:o("router.cert.nginx.sourceTypes.upload"),value:"upload",onSubmit:S},lets_encrypt:{name:o("router.cert.nginx.sourceTypes.lets_encrypt"),value:"lets_encrypt",onSubmit:T}},U=async N=>{s(!0);try{const Y=$[v];if(!Y)throw new Error("Invaid certificate source");await Y.onSubmit(N),n(),w(!1)}catch(Y){_(xe(Y)||"unknown error, may be you can check file permission")}finally{s(!1)}},I=()=>{g(null),u(null),w(!0),_("")},O=N=>{k(N.target.value)},L=N=>{N.length>0&&_(ne(N[0],"errors[0].message",o("router.cert.add.invalidFile")))},{getRootProps:G,getInputProps:ye}=qt({accept:[".pem",".crt"],multiple:!1,maxSize:lr,onDropRejected:L,onDrop:N=>{u(N[0])}}),{getRootProps:ge,getInputProps:W}=qt({accept:[".pem",".key"],multiple:!1,maxSize:lr,onDropRejected:L,onDrop:N=>{g(N[0])}}),{errors:B}=D;return e.jsxs(e.Fragment,{children:[e.jsxs(X,{edge:"end",onClick:I,className:"rule-action",color:"primary","data-cy":"add-cert",...i,children:[a?e.jsx(V,{size:16}):e.jsx(Ne,{style:{fontSize:16}}),o(r==="add"?"common.add":"common.update")]}),f&&e.jsx(br,{title:o(r==="add"?"router.cert.nginx.titleAdd":"router.cert.nginx.title"),open:!0,onClose:y,actions:e.jsxs(e.Fragment,{children:[e.jsx(X,{onClick:y,color:"inherit","data-cy":"cert-cancel",children:o("router.cert.nginx.cancel")}),e.jsxs(X,{onClick:R(U),color:"secondary",disabled:b(),variant:"contained",autoFocus:!0,"data-cy":"save-cert",children:[o("router.cert.nginx.confirm"),a&&e.jsx(V,{size:16})]})]}),children:e.jsx("form",{className:"form","data-cy":"cert-form",noValidate:!0,autoComplete:"off",onSubmit:R(U),children:e.jsxs(q,{minWidth:{sm:480},children:[e.jsxs($t,{component:"div",children:[r==="add"&&e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:o("router.cert.source")}),e.jsx(Sr,{"aria-label":"cert-source",name:"certSource",value:v,onChange:O,children:Object.values($).map(N=>e.jsx(rt,{value:N.value,control:e.jsx(Ut,{}),label:N.name},N.value))})]}),v==="upload"&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:o("router.cert.name")}),e.jsx(M,{name:"name",control:p,rules:{validate:N=>!!N.trim()||o("common.requiredErrorText",{name:o("router.cert.name")})},render:({field:{value:N,onChange:Y}})=>e.jsx(H,{fullWidth:!0,autoFocus:!0,defaultValue:N,onChange:Y,error:!!B.name,autoComplete:"off",variant:"outlined",name:"name",className:"form-item-value","data-cy":"certificate-name-textfield",helperText:B.name&&B.name.message})})]}),r==="add"&&e.jsxs(e.Fragment,{children:[e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:o("router.cert.nginx.pem")}),e.jsx("div",{className:"form-item-value",children:e.jsxs("div",{...G({className:"dropzone"}),children:[e.jsx("input",{...ye(),"data-cy":"pem-input"}),c&&e.jsx(A,{color:"secondary",children:c.name}),!c&&e.jsx(A,{color:"secondary",children:o("router.cert.nginx.empty")}),e.jsx(A,{component:"small",variant:"body2",color:"textSecondary",children:o("router.cert.nginx.pemTip")})]})})]}),e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:o("router.cert.nginx.key")}),e.jsx("div",{className:"form-item-value",children:e.jsxs("div",{...ge({className:"dropzone"}),children:[e.jsx("input",{...W(),"data-cy":"key-input"}),d&&e.jsx(A,{color:"secondary",children:d.name}),!d&&e.jsx(A,{color:"secondary",children:o("router.cert.nginx.empty")}),e.jsx(A,{component:"small",variant:"body2",color:"textSecondary",children:o("router.cert.nginx.keyTip")})]})})]})]})]}),v==="lets_encrypt"&&e.jsxs(e.Fragment,{children:[e.jsx("section",{className:"form-item",children:e.jsx(be,{severity:"success",children:o("router.cert.genLetsEncryptCert.dnsTip")})}),e.jsxs("section",{className:"form-item",children:[e.jsx("div",{className:"form-item-label",children:o("common.domain")}),e.jsx(M,{name:"domain",control:p,rules:{validate:N=>!!N.trim()||o("common.requiredErrorText",{name:o("common.domain")})},render:({field:{value:N,onChange:Y}})=>e.jsx(H,{fullWidth:!0,autoFocus:!0,defaultValue:N,error:!!B.domain,autoComplete:"off",variant:"outlined",className:"form-item-value",helperText:B.domain&&B.domain.message,onChange:Y})})]})]})]}),!!j&&e.jsx(be,{severity:"error",style:{marginTop:8},children:j})]})})})]})}function Na(t){const n=ki(),{t:r}=z(),{api:i}=Z(),[o,l]=x.useState(!1),[a,s]=x.useState(null),{id:d,domain:g,onDelete:c=()=>{},...u}=t,{refresh:f}=ue(),w=()=>{l(!1),s(null)},j=async()=>{l(!0);try{await i.deleteCertificate({input:{id:d}}),f(),c()}catch(v){console.error(v)}finally{l(!1),s(null)}},_={title:r("router.cert.delete.title"),description:r("router.cert.delete.description",{domain:g}),confirm:r("common.delConfirm"),cancel:r("common.cancel"),onConfirm:j,onCancel:w};return e.jsxs(e.Fragment,{children:[e.jsxs(X,{edge:"end",onClick:()=>s(_),size:"small",className:"rule-action",variant:"text","data-cy":"action-delete-cert",style:{color:n.palette.error.main},...u,children:[o?e.jsx(V,{size:16}):e.jsx(je,{style:{fontSize:16}}),r("common.delete")]}),a&&e.jsx(se,{title:a.title,description:a.description,confirm:a.confirm,cancel:a.cancel,params:a.params,onConfirm:a.onConfirm,onCancel:a.onCancel})]})}var yn={},$a=Ce;Object.defineProperty(yn,"__esModule",{value:!0});var Gr=yn.default=void 0,Ua=$a(we()),za=e;Gr=yn.default=(0,Ua.default)((0,za.jsx)("path",{d:"M12 3 2 21h20zm1 5.92L18.6 19H13zm-2 0V19H5.4z"}),"Details");function Vr(t){const{certificate:n={},...r}=t,{t:i,locale:o}=z(),[l,a]=x.useState(!1),s=Ri(),d=()=>{a(!1)},g=[{id:"matchedSites",name:i("router.cert.matchedSites"),value:(n.matchedSites||[]).map(u=>e.jsx(A,{component:"div",style:{fontWeight:"inherit",fontSize:"1.1rem"},children:u.domain},u.id))},{id:"updatedAt",name:i("common.updatedAt"),value:$n(n.updatedAt,o)},{id:"createdAt",name:i("common.createdAt"),value:$n(n.createdAt,o)}],c=[{id:"boundDomains",name:i("router.cert.boundDomains"),value:e.jsx(A,{component:"span",style:{fontSize:"1.1rem"},children:(ne(n,"sans")||[]).join(", ")})},{id:"issuer",name:i("common.issuer"),value:ne(n,"meta.issuer.commonName","")},{id:"fingerprint",name:i("common.fingerprint"),value:ne(n,"meta.fingerprint")},{id:"fingerprintAlg",name:i("router.cert.fingerprintAlg"),value:ne(n,"meta.fingerprintAlg")},{id:"validityPeriod",name:i("router.cert.validityPeriod"),value:_i.duration(ne(n,"meta.validityPeriod"),"ms").humanize()},{id:"issuedOn",name:i("router.cert.issuedOn"),value:it(ne(n,"meta.validFrom"),o)},{id:"expiryOn",name:i("router.cert.expiryOn"),value:it(ne(n,"meta.validTo"),o)}];return e.jsxs(e.Fragment,{children:[e.jsxs(X,{edge:"end",onClick:()=>a(!0),size:"small",className:"rule-action",variant:"text",color:"secondary","data-cy":"action-view-cert",...r,children:[e.jsx(Gr,{style:{fontSize:16}}),i("common.detail")]}),e.jsxs(br,{title:i("router.cert.detail.title"),"aria-labelledby":"certificate details",fullWidth:!0,open:l,showCloseButton:!1,actions:e.jsx(X,{autoFocus:!0,variant:"contained",onClick:d,color:"secondary",children:i("common.close")}),children:[e.jsx($t,{component:"div",style:{margin:s.spacing(2)},children:g.map(u=>e.jsx(ot,{nameWidth:200,valueComponent:"div",name:u.name,children:u.value},u.id))},"cert-basic"),e.jsx(Un,{}),e.jsx($t,{component:"div",style:{margin:s.spacing(2)},children:c.map(u=>e.jsx(ot,{nameWidth:200,valueComponent:"div",name:u.name,children:u.value},u.id))},"cer-info"),e.jsx(Un,{})]})]})}Vr.propTypes={certificate:m.object.isRequired};function vn(t){const{certificate:n,style:r,...i}=t,{t:o}=z(),[l,a]=x.useState(!1),s=n.matchedSites||[];return e.jsxs(A,{component:"ul",...i,style:{...r,listStyle:"none"},children:[(l?s:s.slice(0,4)).map(d=>e.jsx(A,{component:"li",style:{fontSize:"1.1rem",margin:"4px 0"},children:d.domain},d.id)),s.length>4&&e.jsx(X,{style:{border:"none",padding:"5px 0"},variant:"outlined",color:"primary",className:"button",onClick:()=>{a(!l)},children:o(l?"common.collapseAll":"common.expandAll")})]})}vn.propTypes={certificate:m.object.isRequired,style:m.object};vn.defaultProps={style:{}};const Ba=t=>{if(!t)return!1;const n=+new Date;return t-n<=0},ur="ssl-certificates-table";m.number;function Lt({name:t,value:n,style:r={},icon:i,...o}){return e.jsxs(Ma,{style:{display:"flex",alignItems:"center",...r},...o,children:[e.jsxs("span",{children:[t,":"]}),e.jsx("span",{children:n}),i&&i]})}const Ma=ee.div`
|
|
253
|
+
& > span {
|
|
254
|
+
margin: 5px;
|
|
255
|
+
}
|
|
256
|
+
`;function bn({status:t,source:n,expiresTime:r}){const{t:i}=z();return Ba(r)?e.jsx(Qe,{type:"error",children:i("router.cert.expired")}):n==="upload"?e.jsx(Qe,{type:"success",children:i("common.normal")}):t==="error"?e.jsx(Qe,{type:"error",children:i("common.error")}):t==="generated"?e.jsx(Qe,{type:"success",children:i("common.normal")}):""}bn.propTypes={status:m.string,source:m.string,expiresTime:m.number.isRequired};bn.defaultProps={status:"",source:""};const Wa=(t,n)=>{if(!n)return t;const r=(n.site.domainAliases||[]).map(i=>i.value);return t.filter(i=>Ti(r,i.matchedSites))};function qa(){var c;const{t,locale:n}=x.useContext(Ht),{api:r}=Z(),o=Pi().get("did"),l=ze(async()=>{const{certificates:u}=await r.getCertificates();let f=null;if(o){const{blocklet:j}=await r.getBlocklet({input:{did:o,attachRuntimeInfo:!0}});f=j}return{certificates:Wa(u,f)}}),a=()=>{l.retry()},s=(c=l.value)==null?void 0:c.certificates,d=[{label:t("common.certificate"),name:"",verticalKeyAlign:"center",options:{sort:!1,filter:!1,customBodyRenderLite:u=>{const f=s[u];return e.jsxs(e.Fragment,{children:[f.name&&e.jsx(Lt,{nowrap:!0,style:{fontSize:"16px",whiteSpace:"nowrap"},name:t("common.name"),value:f.name}),e.jsx(Lt,{style:{fontSize:"16px",whiteSpace:"nowrap"},name:t("common.issuer"),value:ne(f,"meta.issuer.commonName","")}),e.jsx(Lt,{style:{fontSize:"16px",whiteSpace:"nowrap"},icon:e.jsx(pe,{title:f.isProtected?t("router.cert.protectedCertHelperText"):t("router.cert.unprotectedCertHelperText"),children:e.jsx(Le,{style:{fontSize:"18px"},color:"secondary"})}),name:t("common.protected"),value:f.isProtected?t("common.yes"):t("common.no")})]})}}},{label:t("router.cert.boundDomains"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:u=>{const f=s[u];return e.jsx(A,{noWrap:!0,component:"ul",style:{listStyle:"none"},children:[...new Set([...ne(f,"meta.sans")||[],f.domain])].map(w=>e.jsx(A,{component:"li",title:w,style:{fontSize:"1.1rem",minWidth:200,whiteSpace:"initial",wordBreak:"break-all"},children:w},w))})}}},{label:t("router.cert.source"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:u=>{const f=s[u];return t(`router.cert.sourceTypes.${f.source}`)}}},{label:t("common.status"),name:"",width:100,options:{sort:!1,filter:!1,customBodyRenderLite:u=>{const f=s[u];return e.jsx(bn,{status:f.status,source:f.source,expiresTime:ne(f,"meta.validTo")})}}},{label:t("common.expires"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:u=>{const f=s[u];return e.jsx(gr,{value:ne(f,"meta.validTo"),locale:n})}}},{label:t("router.cert.matchedSites"),name:"",options:{sort:!1,filter:!1,customBodyRenderLite:u=>{const f=s[u];return e.jsx(vn,{id:f.id,certificate:f,style:{minWidth:200,whiteSpace:"initial",wordBreak:"break-all"}})}}},{label:t("router.cert.action"),name:"",align:"center",options:{sort:!1,filter:!1,customBodyRenderLite:u=>{const f=s[u];return e.jsx(re,{permission:"mutate_router",children:e.jsxs(e.Fragment,{children:[!f.isProtected&&e.jsxs(e.Fragment,{children:[f.source==="upload"&&e.jsx("div",{children:e.jsx(dr,{mode:"update",certificate:f,onRefresh:a})}),e.jsx("div",{children:e.jsx(Na,{id:f.id,domain:f.domain,onDelete:a})})]}),e.jsx("div",{children:e.jsx(Vr,{id:f.id,certificate:f})})]})})}}}];if(l.error)return e.jsx(be,{severity:"error",children:xe(l.error)});if(l.loading)return e.jsx(V,{});const g=Oi(ur);return e.jsx(Ha,{children:e.jsx(wr,{title:e.jsx(re,{permission:"mutate_router",children:e.jsx(dr,{mode:"add",onRefresh:a,variant:"contained"})}),locale:n,data:l.value.certificates,columns:d,verticalKeyWidth:100,durable:ur,options:{search:!1,download:!1,filter:!1,print:!1,...g}})})}const Ha=ee.div`
|
|
257
|
+
.header {
|
|
258
|
+
display: flex;
|
|
259
|
+
justify-content: flex-end;
|
|
260
|
+
align-items: center;
|
|
261
|
+
margin-top: 20px;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
margin-bottom: 24px;
|
|
265
|
+
.table-cell {
|
|
266
|
+
span {
|
|
267
|
+
font-size: 18px;
|
|
268
|
+
}
|
|
269
|
+
@media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
|
|
270
|
+
span {
|
|
271
|
+
font-size: 15px;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
.match-sites-cell,
|
|
276
|
+
.expires-cell {
|
|
277
|
+
min-width: 100px;
|
|
278
|
+
}
|
|
279
|
+
.actions {
|
|
280
|
+
text-align: center;
|
|
281
|
+
@media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
|
|
282
|
+
.MuiButton-root {
|
|
283
|
+
padding: 6px;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
`,mr="[a-fA-F\\d:]",he=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${mr})|(?<=${mr})(?=\\s|$))`:"",de="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Q="[a-fA-F\\d]{1,4}",ht=`
|
|
288
|
+
(?:
|
|
289
|
+
(?:${Q}:){7}(?:${Q}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
290
|
+
(?:${Q}:){6}(?:${de}|:${Q}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
|
|
291
|
+
(?:${Q}:){5}(?::${de}|(?::${Q}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
|
|
292
|
+
(?:${Q}:){4}(?:(?::${Q}){0,1}:${de}|(?::${Q}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
|
|
293
|
+
(?:${Q}:){3}(?:(?::${Q}){0,2}:${de}|(?::${Q}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
|
|
294
|
+
(?:${Q}:){2}(?:(?::${Q}){0,3}:${de}|(?::${Q}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
|
|
295
|
+
(?:${Q}:){1}(?:(?::${Q}){0,4}:${de}|(?::${Q}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
|
|
296
|
+
(?::(?:(?::${Q}){0,5}:${de}|(?::${Q}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
|
|
297
|
+
)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
|
|
298
|
+
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),Ka=new RegExp(`(?:^${de}$)|(?:^${ht}$)`),Ga=new RegExp(`^${de}$`),Va=new RegExp(`^${ht}$`),jn=t=>t&&t.exact?Ka:new RegExp(`(?:${he(t)}${de}${he(t)})|(?:${he(t)}${ht}${he(t)})`,"g");jn.v4=t=>t&&t.exact?Ga:new RegExp(`${he(t)}${de}${he(t)}`,"g");jn.v6=t=>t&&t.exact?Va:new RegExp(`${he(t)}${ht}${he(t)}`,"g");var Yr=jn;const wn=Yr,Pe=t=>wn({exact:!0}).test(t);Pe.v4=t=>wn.v4({exact:!0}).test(t);Pe.v6=t=>wn.v6({exact:!0}).test(t);Pe.version=t=>Pe(t)?Pe.v4(t)?4:6:void 0;var Ya=Pe;const Je=jr(Ya);var xt={exports:{}},yt={exports:{}};const Xr=Yr,Cn={exact:!1},vt=`${Xr.v4().source}\\/(3[0-2]|[12]?[0-9])`,bt=`${Xr.v6().source}\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])`,Xa=new RegExp(`^${vt}$`),Qa=new RegExp(`^${bt}$`),Za=new RegExp(`(?:^${vt}$)|(?:^${bt}$)`);yt.exports=({exact:t}=Cn)=>t?Za:new RegExp(`(?:${vt})|(?:${bt})`,"g");yt.exports.v4=({exact:t}=Cn)=>t?Xa:new RegExp(vt,"g");yt.exports.v6=({exact:t}=Cn)=>t?Qa:new RegExp(bt,"g");var Ja=yt.exports;const{v4:es,v6:ts}=Ja,Qr=es({exact:!0}),Zr=ts({exact:!0});xt.exports=t=>Qr.test(t)?4:Zr.test(t)?6:0;xt.exports.v4=t=>Qr.test(t);xt.exports.v6=t=>Zr.test(t);var ns=xt.exports;const et=jr(ns),tt=Yi(t=>({root:{color:t.palette.primary.main,height:8,marginLeft: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}}))(Bi);function rs(){const{info:{routing:t},api:n}=Z(),{t:r,locale:i}=z(),[o,l]=x.useState(!1),a=t.requestLimit||{};typeof a.enabled!="boolean"&&(a.enabled=!1),typeof a.rate!="number"&&(a.rate=E.GATEWAY_REQ_LIMIT.min),a.ipHeader||(a.ipHeader="");const s=t.blockPolicy||{};typeof s.enabled!="boolean"&&(s.enabled=!1),s.blacklist||(s.blacklist=[]),s.autoBlocking?Array.isArray(s.autoBlocking.statusCodes)||(s.autoBlocking.statusCodes=s.autoBlocking.statusCodes?[s.autoBlocking.statusCodes]:[403]):s.autoBlocking={enabled:!1,windowSize:1,windowQuota:5,statusCodes:[403],blockDuration:3600};const d=t.proxyPolicy||{};typeof d.enabled!="boolean"&&(d.enabled=!1),typeof d.trustRecursive!="boolean"&&(d.trustRecursive=!1),d.trustedProxies||(d.trustedProxies=["0.0.0.0/0"]),d.realIpHeader||(d.realIpHeader="X-Forwarded-For");const g=t.wafPolicy||{};typeof g.enabled!="boolean"&&(g.enabled=!1),g.mode||(g.mode="DetectionOnly"),g.inboundAnomalyScoreThreshold||(g.inboundAnomalyScoreThreshold=20),g.outboundAnomalyScoreThreshold||(g.outboundAnomalyScoreThreshold=10),g.logLevel||(g.logLevel=0);const{handleSubmit:c,control:u,watch:f}=Yt({defaultValues:{requestLimit:a,blockPolicy:s,proxyPolicy:d,cacheEnabled:typeof t.cacheEnabled=="boolean"?t.cacheEnabled:!0,wafPolicy:g}}),w=f("requestLimit.enabled"),j=f("requestLimit.rate"),_=f("blockPolicy.enabled"),v=f("blockPolicy.autoBlocking.enabled"),k=f("proxyPolicy.enabled"),R=f("proxyPolicy.trustRecursive"),D=f("wafPolicy.enabled"),p=async C=>{try{l(!0);const{blacklist:h}=C.blockPolicy;h.forEach(y=>{if(!Je.v4(y)&&!et.v4(y)&&!vr(y)&&!Je.v6(y)&&!et.v6(y))throw new Error(r("router.gateway.blockPolicy.invalidItem"))});const{trustedProxies:b}=C.proxyPolicy;b.forEach(y=>{if(!Je.v4(y)&&!et.v4(y)&&!Je.v6(y)&&!et.v6(y))throw new Error(r("router.gateway.proxyPolicy.invalidItem"))}),await n.updateGateway({input:C}),await pr(1e3),ae.success(r("common.saveSuccess"))}catch(h){ae.error(xe(h))}finally{l(!1)}};return e.jsx(is,{children:e.jsx(re,{permission:"mutate_node",children:C=>e.jsxs(en,{className:"form",noValidate:!0,autoComplete:"off",onSubmit:c(p),children:[e.jsxs(fe,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(A,{className:"gateway-section-title",children:r("router.gateway.cacheEnabled.title")}),e.jsx(M,{name:"cacheEnabled",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(oe,{checked:h,disabled:!C,onChange:y=>b(y.target.checked),labelProps:{label:e.jsx(A,{children:r("router.gateway.cacheEnabled.switchLabel")}),labelPlacement:"end"}})})]}),e.jsxs(fe,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(A,{className:"gateway-section-title",children:r("router.gateway.reqLimit.title")}),e.jsxs(fe,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(M,{name:"requestLimit.enabled",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(oe,{checked:h,disabled:!C,onChange:y=>b(y.target.checked),labelProps:{label:e.jsx(A,{children:r("router.gateway.reqLimit.switchLabel")}),labelPlacement:"end"}})}),w&&e.jsxs(q,{className:"form-item",sx:{width:"100%"},children:[e.jsx(A,{id:"request-limit-rate-label",gutterBottom:!0,children:r("router.gateway.reqLimit.rate",{rate:j})}),e.jsx(M,{name:"requestLimit.rate",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(tt,{disabled:!C,onChange:(y,S)=>b(S),defaultValue:h,valueLabelDisplay:"auto",step:1,min:E.GATEWAY_REQ_LIMIT.min,max:E.GATEWAY_REQ_LIMIT.max})})]})]})]}),e.jsxs(fe,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(A,{className:"gateway-section-title",children:r("router.gateway.blockPolicy.title")}),e.jsxs(fe,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(M,{name:"blockPolicy.enabled",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(oe,{checked:h,disabled:!C,onChange:y=>b(y.target.checked),labelProps:{label:e.jsx(A,{children:r("router.gateway.blockPolicy.switchLabel")}),labelPlacement:"end"}})}),_&&e.jsxs(e.Fragment,{children:[e.jsx(M,{name:"blockPolicy.blacklist",control:u,render:({field:{value:h,onChange:b}})=>{const y=()=>{b([...h||[],""])},S=$=>{const U=[...h];U.splice($,1),b(U)},T=($,U)=>{const I=[...h];I[$]=U,b(I)};return e.jsxs("div",{style:{width:"100%"},children:[e.jsx(le,{children:r("router.gateway.blockPolicy.blacklistDesc")}),(h||[]).map(($,U)=>e.jsx("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"},children:e.jsx(H,{variant:"outlined",size:"small",disabled:o||!C,style:{flex:1},value:$,onChange:I=>T(U,I.target.value),placeholder:r("router.gateway.blockPolicy.inputPlaceholder"),InputProps:{endAdornment:e.jsx(Ft,{disabled:o||!C,onClick:()=>S(U),size:"small",color:"error",children:e.jsx(je,{})})}})},`blacklist-item-${U}`)),e.jsx(X,{disabled:o||!C,onClick:y,color:"primary",size:"small",variant:"outlined",startIcon:e.jsx(Ne,{}),children:r("router.gateway.blockPolicy.addItem")})]})}}),e.jsx(M,{name:"blockPolicy.autoBlocking.enabled",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(oe,{checked:h,disabled:!C,onChange:y=>b(y.target.checked),labelProps:{label:e.jsx(A,{children:r("router.gateway.blockPolicy.autoBlocking.switchLabel")}),labelPlacement:"end"}})}),v&&e.jsxs(e.Fragment,{children:[e.jsx(M,{name:"blockPolicy.autoBlocking.statusCodes",control:u,render:({field:{value:h,onChange:b}})=>e.jsxs(q,{children:[e.jsx(le,{id:"block-policy-auto-blocking-status-codes-desc",children:r("router.gateway.blockPolicy.autoBlocking.statusCodes")}),e.jsxs(zn,{variant:"outlined",fullWidth:!0,size:"small",disabled:o||!C,multiple:!0,value:h,onChange:b,children:[e.jsx(J,{value:400,children:"400 Bad Request"}),e.jsx(J,{value:401,children:"401 Unauthorized"}),e.jsx(J,{value:403,children:"403 Forbidden (WAF)"}),e.jsx(J,{value:404,children:"404 Not Found"}),e.jsx(J,{value:405,children:"405 Method Not Allowed"})]})]})}),e.jsx(M,{name:"blockPolicy.autoBlocking.windowSize",control:u,render:({field:{value:h,onChange:b}})=>e.jsxs(q,{children:[e.jsx(le,{id:"block-policy-auto-blocking-window-size-desc",children:r("router.gateway.blockPolicy.autoBlocking.windowSize")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:o||!C,value:h,onChange:b,InputProps:{endAdornment:e.jsxs(A,{variant:"body2",children:[Bn(Number(h*1e3),{locale:Mn(i),long:!0})," "]})}})]})}),e.jsx(M,{name:"blockPolicy.autoBlocking.windowQuota",control:u,render:({field:{value:h,onChange:b}})=>e.jsxs(q,{children:[e.jsx(le,{id:"block-policy-auto-blocking-window-quota-desc",children:r("router.gateway.blockPolicy.autoBlocking.windowQuota")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:o||!C,value:h,onChange:b})]})}),e.jsx(M,{name:"blockPolicy.autoBlocking.blockDuration",control:u,render:({field:{value:h,onChange:b}})=>e.jsxs(q,{children:[e.jsx(le,{id:"block-policy-auto-blocking-block-duration-desc",children:r("router.gateway.blockPolicy.autoBlocking.blockDuration")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:o||!C,value:h,onChange:b,InputProps:{endAdornment:e.jsx(A,{variant:"body2",children:Bn(Number(h*1e3),{locale:Mn(i),long:!0})})}})]})})]})]})]})]}),e.jsxs(fe,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(A,{className:"gateway-section-title",children:r("router.gateway.proxyPolicy.title")}),e.jsxs(fe,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(M,{name:"proxyPolicy.enabled",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(oe,{checked:h,disabled:!C,onChange:y=>b(y.target.checked),labelProps:{label:e.jsx(A,{children:r("router.gateway.proxyPolicy.switchLabel")}),labelPlacement:"end"}})}),k&&e.jsxs(e.Fragment,{children:[e.jsx(M,{name:"proxyPolicy.realIpHeader",control:u,render:({field:{value:h,onChange:b}})=>e.jsxs(q,{children:[e.jsx(le,{id:"proxy-policy-real-ip-header-desc",children:r("router.gateway.proxyPolicy.realIpHeaderDesc")}),e.jsx(H,{variant:"outlined",fullWidth:!0,size:"small",disabled:o||!C,value:h,onChange:b})]})}),e.jsx(M,{name:"proxyPolicy.trustRecursive",control:u,render:({field:{value:h,onChange:b}})=>e.jsxs(q,{sx:{mt:2},children:[e.jsx(le,{id:"proxy-policy-real-ip-header-desc",children:r("router.gateway.proxyPolicy.trustRecursiveDesc")}),e.jsx(oe,{checked:h,disabled:!C,onChange:y=>b(y.target.checked),labelProps:{label:e.jsx(A,{children:r("router.gateway.proxyPolicy.trustRecursive")}),labelPlacement:"end"}})]})}),R&&e.jsx(M,{name:"proxyPolicy.trustedProxies",control:u,render:({field:{value:h,onChange:b}})=>{const y=()=>{b([...h||[],""])},S=$=>{const U=[...h];U.splice($,1),b(U)},T=($,U)=>{const I=[...h];I[$]=U,b(I)};return e.jsxs(q,{sx:{width:"100%",mt:2},children:[e.jsx(le,{children:r("router.gateway.proxyPolicy.trustedProxiesDesc")}),(h||[]).map(($,U)=>e.jsx("div",{style:{display:"flex",gap:"8px",marginBottom:"8px"},children:e.jsx(H,{variant:"outlined",size:"small",disabled:o||!C,style:{flex:1},value:$,onChange:I=>T(U,I.target.value),placeholder:r("router.gateway.proxyPolicy.inputPlaceholder"),InputProps:{endAdornment:e.jsx(Ft,{disabled:o||!C,onClick:()=>S(U),size:"small",color:"error",children:e.jsx(je,{})})}})},`trusted-proxy-item-${U}`)),e.jsx(X,{disabled:o||!C,onClick:y,color:"primary",size:"small",variant:"outlined",startIcon:e.jsx(Ne,{}),children:r("router.gateway.proxyPolicy.addItem")})]})}})]})]})]}),e.jsxs(fe,{className:"gateway-section",direction:{sm:"column",md:"row"},spacing:2,children:[e.jsx(A,{className:"gateway-section-title",children:r("router.gateway.wafPolicy.title")}),e.jsxs(fe,{className:"gateway-section-content",direction:"column",spacing:2,sx:{width:"100%"},children:[e.jsx(M,{name:"wafPolicy.enabled",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(oe,{checked:h,disabled:!C,onChange:y=>b(y.target.checked),labelProps:{label:e.jsx(A,{children:r("router.gateway.wafPolicy.switchLabel")}),labelPlacement:"end"}})}),D&&e.jsxs(e.Fragment,{children:[e.jsx(M,{name:"wafPolicy.mode",control:u,render:({field:{value:h,onChange:b}})=>e.jsxs(q,{children:[e.jsxs(le,{id:"waf-policy-mode-desc",children:[r("router.gateway.wafPolicy.modeDesc")," ",e.jsx(Vt,{href:`https://www.arcblock.io/docs/blocklet-developer/${i}/enable-web-application-firewall`,target:"_blank",children:r("router.gateway.wafPolicy.docDesc")})]}),e.jsxs(zn,{variant:"outlined",fullWidth:!0,size:"small",disabled:o||!C,value:h,onChange:b,children:[e.jsx(J,{value:"DetectionOnly",children:r("router.gateway.wafPolicy.mode.detectOnly")}),e.jsx(J,{value:"On",children:r("router.gateway.wafPolicy.mode.on")})]})]})}),e.jsxs(q,{children:[e.jsx(le,{id:"waf-policy-inbound-anomaly-score-threshold-desc",children:r("router.gateway.wafPolicy.inboundAnomalyScoreThresholdDesc")}),e.jsx(M,{name:"wafPolicy.inboundAnomalyScoreThreshold",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(tt,{disabled:!C,onChange:(y,S)=>b(S),defaultValue:h,valueLabelDisplay:"auto",step:1,min:1,max:100})})]}),e.jsxs(q,{children:[e.jsx(le,{id:"waf-policy-outbound-anomaly-score-threshold-desc",children:r("router.gateway.wafPolicy.outboundAnomalyScoreThresholdDesc")}),e.jsx(M,{name:"wafPolicy.outboundAnomalyScoreThreshold",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(tt,{disabled:!C,onChange:(y,S)=>b(S),defaultValue:h,valueLabelDisplay:"auto",step:1,min:1,max:100})})]}),e.jsxs(q,{children:[e.jsx(le,{id:"waf-policy-log-level-desc",children:r("router.gateway.wafPolicy.logLevelDesc")}),e.jsx(M,{name:"wafPolicy.logLevel",control:u,render:({field:{value:h,onChange:b}})=>e.jsx(tt,{disabled:!C,onChange:(y,S)=>b(S),defaultValue:h,valueLabelDisplay:"auto",step:1,min:0,max:9})})]})]})]})]}),e.jsx("div",{className:"form-actions",children:C&&e.jsxs(X,{disabled:o,onClick:c(p),color:"primary",variant:"contained","data-cy":"submit-btn",className:"form-submit",children:[r("common.save")," ",o&&e.jsx(V,{size:16})]})})]})})})}const is=ee.div`
|
|
299
|
+
display: flex;
|
|
300
|
+
align-items: flex-start;
|
|
301
|
+
width: 100%;
|
|
302
|
+
max-width: 960px;
|
|
303
|
+
|
|
304
|
+
.gateway-section {
|
|
305
|
+
border-top: 1px solid #e0e0e0;
|
|
306
|
+
padding: 24px 0;
|
|
307
|
+
.gateway-section-title {
|
|
308
|
+
width: 240px;
|
|
309
|
+
flex-shrink: 0;
|
|
310
|
+
flex-grow: 0;
|
|
311
|
+
font-weight: 500;
|
|
312
|
+
}
|
|
313
|
+
.gateway-section-content {
|
|
314
|
+
flex-grow: 1;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
`;function Hs(){const t=hr(),{node:n}=x.useContext(Ei),{t:r}=x.useContext(Ht),{tab:i="basic"}=Ai(),o=d=>{t(`/settings/${d}`)},l=[{label:r("common.basic"),value:"basic"},{label:r("router.routerSetting"),value:"router"},{label:r("router.certSetting"),value:"cert"},{label:r("common.gateway"),value:"gateway"},{label:r("common.webhook"),value:"integration"},{label:r("common.about"),value:"about"}],a={basic:mo,integration:xo,about:Eo,router:e.jsx(Kn,{children:e.jsx(Vo,{})}),gateway:rs,cert:e.jsx(Kn,{children:e.jsx(qa,{})})},s=a[i]||a.basic;return e.jsxs(os,{children:[e.jsx(A,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:r("common.setting")}),e.jsxs(e.Fragment,{children:[e.jsx(Ii,{tabs:l,current:i,onChange:o,scrollButtons:"auto"}),e.jsx("div",{className:"page-content",children:x.isValidElement(s)?s:e.jsx(s,{node:n})})]})]})}const os=ee.main`
|
|
318
|
+
.page-header {
|
|
319
|
+
display: flex;
|
|
320
|
+
justify-content: space-between;
|
|
321
|
+
align-items: center;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
.page-content {
|
|
325
|
+
margin-top: 16px;
|
|
326
|
+
}
|
|
327
|
+
`;export{Hs as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{fD as P,ao as Oe,E as Re,cj as Ne,bd as Ce,
|
|
1
|
+
import{fD as P,ao as Oe,E as Re,cj as Ne,bd as Ce,hk as he,m as He,ck as Ve,g_ as fe,aR as me,aS as ge,j as a,a5 as S,N as Me,r,fO as Te,hl as Je,a7 as Ze,s as Ge,M as B,hm as Ee,aU as W,a$ as Pe,f0 as Qe,fw as k,bw as Y,aD as De,L as H,hj as ze,fq as Xe,fv as Ke,F as We,eZ as Ye,B as R,k as O,D as qe,C as _e,q as $e,t as e1,hn as q,v as t1,ho as a1,e9 as n1,h0 as r1}from"./index-GT9guQyO.js";import{d as s1}from"./HelpOutline-06Ovy2un.js";import{S as _}from"./index-Dm5_86CA.js";const Q=P({});function o1({key:e}={key:"md"}){const t=Oe();return Re(t.breakpoints.down(e))}const y={NETWORK_ERROR:1001,UNAUTHORIZED:1002,EXPIRED:1003,PAST_DUE:1004,INVALID:1005,UNIT_LIMIT:1006,CORS_BLOCKED:1007,INCOMPATIBLE:1008},Ae={DEFAULT_SCOPE:"list:object read:object write:object"},i1="https://www.arcblock.io/content/docs/did-spaces/how-to-obtain-space-gateway-url",xe="https://www.arcblock.io/docs/did-spaces/fixing-cors-errors-when-connecting-to-space";var pe;const c1=((pe=window.blocklet)==null?void 0:pe.DEBUG_MODE)==="true"||window.localStorage.getItem("debug")==="true";function l1({endpoint:e,deps:t=[]}){return Ne(async()=>{if(!Ce(e))return;const{headers:n}=await Q.head(e,{timeout:1e3*30,params:{withExtras:!0}}),[s,i,c,u,p,d="legacy",l,h,m]=[n["x-space-name"],n["x-subscription-id"],n["x-listable"]==="true",n["x-readable"]==="true",n["x-writeable"]==="true",n["x-space-version"],n["x-space-owner-did"],n["x-space-is-available"],n["x-error-code"]],C=s?decodeURIComponent(s):"";if(h===void 0||m===void 0){const E=c&&u&&p;return{version:d,name:C,subscriptionId:i,ownerDid:l||"",isAvailable:E,errorCode:E?0:y.UNAUTHORIZED}}return{version:d,name:C,subscriptionId:i,ownerDid:l,isAvailable:h==="true",errorCode:parseInt(m,10)}},{refreshDeps:[e].concat(t),onError(n){console.error(n)}})}const u1=he.flatten({common:{cancel:"Cancel",confirm:"Confirm",delete:"Delete",error:"Error",open:"Open",unknown:"Unknown",invalidUrl:"Invalid url: {url}",upgrade:"Upgrade"},storage:{spaces:{authorize:{title:"Connect {appName} to DID Spaces",scan:"Use your DID Wallet to scan the QR code below to allow the app {appName} to connect to DID Spaces",success:"Connected successfully"},connect:{reconnect:"Reconnect Now",useSpaceGateway:"Connect using the DID Spaces gateway",useWallet:"Connect to DID Spaces",howToGetGatewayUrl:"How to get the url of did spaces",providerForStorage:"Please connect your DID Spaces"},connected:{title:"Connected DID Spaces",tag:"Connected"},disconnected:{tag:"Disconnected"},error:{tag:"Need Attention",expired:"DID Spaces has expired, click this link to re-subscribe",pastDue:"DID Spaces has unpaid bills, click this link to complete payment",invalid:"DID Spaces subscription anomaly, click this link to check",unitLimit:"DID Spaces free quota has been used up, click this link to pay for the upgrade",corsBlocked:`The connection request may fail due to CORS restrictions:
|
|
2
2
|
1. Please contact the DID Space administrator to verify the relevant configuration.
|
|
3
3
|
2. If you are the administrator, click the link below to view the detailed setup guide and resolve the issue.`,networkError:"Network error",incompatible:`The current connection of DID Spaces version ({spaceVersion}) is not compatible with the component version ({expectVersion}). Please contact the administrator for adjustments.
|
|
4
4
|
If you are the administrator, you can click the link below to take action.`},gateway:{add:{invalidUrl:"Invalid DID Spaces gateway url",label:"Enter the url of the DID Spaces",title:"Add DID Spaces"}},provideNFT:{title:"Please show the DID Spaces NFT for {appName}",scan:"Use your DID Wallet to scan the QR code below to allow the app {appName} show DID Spaces NFT",success:"Connected successfully"},helperText:{fixCorsError:"Fixing CORS Errors When Connecting to DID Spaces"}}}}),p1=he.flatten({common:{cancel:"取消",confirm:"确认",delete:"删除",error:"错误",open:"打开",unknown:"未知",invalidUrl:"无效的 url: {url}",upgrade:"升级"},storage:{spaces:{authorize:{title:"连接 {appName} 至 DID Spaces",scan:"使用你的 DID Wallet 扫描下面的二维码以允许应用 {appName} 连接至 DID Spaces",success:"连接成功"},connect:{reconnect:"立即重连",useSpaceGateway:"使用 DID Spaces 网关连接",useWallet:"连接至 DID Spaces",howToGetGatewayUrl:"如何获取 DID Spaces 的网关地址",providerForStorage:"请连接您的 DID Spaces"},connected:{title:"已连接的 DID Spaces",tag:"已连接"},disconnected:{tag:"连接已断开"},error:{tag:"需要关注",expired:"DID Spaces 已过期,点击此链接重新订阅",pastDue:"DID Spaces 有未支付账单,点击此链接完成支付",invalid:"DID Spaces 订阅异常,点击此链接检查",unitLimit:"DID Spaces 免费额度已用完,点击此链接付费升级",corsBlocked:`连接请求可能因 CORS 限制而失败:
|