@abtnode/webapp 1.16.29-beta-8671c2cf → 1.16.29-beta-1fb308f8
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-CVNsoK3Q.js → Add-BEm8ulfI.js} +1 -1
- package/dist/assets/{ArrowDropDown-BfO4dBTK.js → ArrowDropDown-3OaPoerb.js} +1 -1
- package/dist/assets/Autocomplete-C4_togh8.js +1 -0
- package/dist/assets/{Breadcrumbs-D-qFzMeY.js → Breadcrumbs-DLTqMPdx.js} +1 -1
- package/dist/assets/{ButtonGroup-DI2J-6OG.js → ButtonGroup-DpVPGQtZ.js} +1 -1
- package/dist/assets/{CheckCircle-ESEiLplI.js → CheckCircle-Us9aCLov.js} +1 -1
- package/dist/assets/{ChevronLeft-Bfi7NoHM.js → ChevronLeft-btzezyAD.js} +1 -1
- package/dist/assets/{ChevronRight-CviuIMvz.js → ChevronRight-ryUS-NtQ.js} +1 -1
- package/dist/assets/{Close-NK6lKMNp.js → Close-wWH8y0qM.js} +1 -1
- package/dist/assets/{Delete-D_zo8qNY.js → Delete-MPWwMdcn.js} +1 -1
- package/dist/assets/DeleteOutline-BbeBknLi.js +1 -0
- package/dist/assets/DeleteOutline-qZMg8d5b.js +1 -0
- package/dist/assets/{Done-D45xFqsP.js → Done-vB-sVx5B.js} +1 -1
- package/dist/assets/{Edit-C2G3tqbR.js → Edit-DnPbFMup.js} +1 -1
- package/dist/assets/{EditIcon-Ck6SNRkS.js → EditIcon-CWaReSCJ.js} +1 -1
- package/dist/assets/{ExpandMore-CwHt_ZVc.js → ExpandMore-gvSelbRO.js} +1 -1
- package/dist/assets/FilterList-O5N3orby.js +26 -0
- package/dist/assets/{Google-D1_AW-DT.js → Google-Dcc3117W.js} +1 -1
- package/dist/assets/{Https-Dq8brLik.js → Https-BzkVHgKv.js} +1 -1
- package/dist/assets/{InputAdornment-vZb8BB84.js → InputAdornment-BXQrh-Eh.js} +1 -1
- package/dist/assets/{InputLabel-CFeFXjoo.js → InputLabel-C0hP58zr.js} +1 -1
- package/dist/assets/{LastPage-qq7jFnRY.js → LastPage-ChFfjNWA.js} +1 -1
- package/dist/assets/{Launch-DM-OAIt1.js → Launch-CIMS_zAn.js} +1 -1
- package/dist/assets/{Link-RUTdr8Sy.js → Link-sIQTJwYN.js} +1 -1
- package/dist/assets/LoadingButton-drC9HAVN.js +1 -0
- package/dist/assets/{LockIcon-PdwfNCrE.js → LockIcon-BfgsRLZd.js} +1 -1
- package/dist/assets/{Loop-mB6aLQRu.js → Loop-DZcA5WXX.js} +1 -1
- package/dist/assets/{MoreVert-Cau6w3Nc.js → MoreVert-D4QAjvea.js} +1 -1
- package/dist/assets/{Pagination-BPEEzqVS.js → Pagination-PROEZlWN.js} +1 -1
- package/dist/assets/{Public-RloFzq6s.js → Public-D2nGfl8H.js} +1 -1
- package/dist/assets/{SchemaReference.es-Cy_VpEXU.js → SchemaReference.es-CUloqy0f.js} +1 -1
- package/dist/assets/{Search-BjnpBn7M.js → Search-DyPwa94B.js} +1 -1
- package/dist/assets/Select-Cz2z_MUs.js +2 -0
- package/dist/assets/{Skeleton-rnv-ggbJ.js → Skeleton-CHVKSllC.js} +3 -3
- package/dist/assets/Slider-BPK8-y0g.js +1 -0
- package/dist/assets/{Stepper-Dg253Q8k.js → Stepper-BdiWSQsf.js} +1 -1
- package/dist/assets/{TextField-Csggaa8Q.js → TextField-B39sPZXj.js} +1 -1
- package/dist/assets/{ToggleButtonGroup-BgYSvys-.js → ToggleButtonGroup-BIXfrT7y.js} +1 -1
- package/dist/assets/{ViewList-CkwZ1YpX.js → ViewList-BEq9etwt.js} +1 -1
- package/dist/assets/{actions-OnAy2baR.js → actions-BxLve5Iv.js} +1 -1
- package/dist/assets/{actions-DDxj2Gro.js → actions-DpFxNafF.js} +1 -1
- package/dist/assets/{agreement-BI9D0qcZ.js → agreement-CTjmFwVv.js} +3 -3
- package/dist/assets/api-B09XbQm6.js +1 -0
- package/dist/assets/{app-avatar-DxCIyKGs.js → app-avatar-DrB31ZQC.js} +1 -1
- package/dist/assets/ar-CEz-3AyV.js +1 -0
- package/dist/assets/{audit-logs-VjS1pNCu.js → audit-logs-l4WViSqy.js} +1 -1
- package/dist/assets/blocklet-BHnYGnZv.js +1 -0
- package/dist/assets/{brace-fold.es-CRh3GTIu.js → brace-fold.es-KtgYSaN0.js} +1 -1
- package/dist/assets/{bundle-avatar-aWqgzI5V.js → bundle-avatar-CHCKalk3.js} +1 -1
- package/dist/assets/{chart-BQeVEXRi.js → chart-DG6Gas-e.js} +2 -2
- package/dist/assets/{click-to-copy-DmXU88NO.js → click-to-copy-nMxQLC3C.js} +1 -1
- package/dist/assets/{closebrackets.es-Bf8m-8Em.js → closebrackets.es-COhsaiJl.js} +1 -1
- package/dist/assets/{codemirror.es-BDjVt0Cm.js → codemirror.es-n9ktfqME.js} +1 -1
- package/dist/assets/{comment.es-I8duadjp.js → comment.es-C8GStSY4.js} +1 -1
- package/dist/assets/{config-navigation-BbCsdEr0.js → config-navigation-DGey71Nz.js} +1 -1
- package/dist/assets/de-Di4pToxm.js +1 -0
- package/dist/assets/{delete-confirm-BmoetJSQ.js → delete-confirm-C3JC6xgi.js} +1 -1
- package/dist/assets/{detail-B5zaEe5r.js → detail-DLFDHa_m.js} +3 -3
- package/dist/assets/{dialog.es-ld8i8Wew.js → dialog.es-BEZA_mzs.js} +1 -1
- package/dist/assets/{download-DgflxEPA.js → download-B_aZRwb6.js} +5 -5
- package/dist/assets/es-CPDKeKrG.js +1 -0
- package/dist/assets/{foldgutter.es-BarMj_ub.js → foldgutter.es-DksQExGg.js} +1 -1
- package/dist/assets/fr-9RG8cAa6.js +1 -0
- package/dist/assets/getValidReactChildren-6dsXDOAM.js +1 -0
- package/dist/assets/hi-DJLNiG5V.js +1 -0
- package/dist/assets/{hint.es-0PrTUWEC.js → hint.es-SC09BvEu.js} +1 -1
- package/dist/assets/{hint.es2-BnIe29Vj.js → hint.es2-BmeoFino.js} +1 -1
- package/dist/assets/id-TqWAFNjj.js +1 -0
- package/dist/assets/{iframe-BR7thU6D.js → iframe-BfjEtdnl.js} +1 -1
- package/dist/assets/{index-Cakzfu7O.js → index-B4IAtVFw.js} +5 -5
- package/dist/assets/index-BCI8WYmT.js +278 -0
- package/dist/assets/{index-Cwt3A7T1.js → index-BDZ151O-.js} +4 -4
- package/dist/assets/index-BDn9U5Ot.js +21 -0
- package/dist/assets/{index-2cPkOt-p.js → index-BECf3fsQ.js} +1 -1
- package/dist/assets/{index-BoyusNjT.js → index-BEbWb2qD.js} +1 -1
- package/dist/assets/index-Ba1UsPJJ.js +288 -0
- package/dist/assets/{index-B2mhcMdY.js → index-BhkEc_3_.js} +1 -1
- package/dist/assets/{index-C7EE4JGH.js → index-BnSXB6Ba.js} +1 -1
- package/dist/assets/{index-CcAfTAex.js → index-Bqn9PxRk.js} +3 -3
- package/dist/assets/{index-n40q7b9N.js → index-By3aktAK.js} +4 -4
- package/dist/assets/{index-CnMRvtiH.js → index-ByBI4w1s.js} +1 -1
- package/dist/assets/{index-CYFjXOBq.js → index-C1aPMf-B.js} +3 -3
- package/dist/assets/index-C40iloMe.js +54 -0
- package/dist/assets/{index-CbAhvH5X.js → index-C8aAyTdz.js} +1 -1
- package/dist/assets/{index-D83fJ4ZZ.js → index-CCFbrgyL.js} +2 -2
- package/dist/assets/index-CDMGov97.js +1 -0
- package/dist/assets/{index-Df-DcHAh.js → index-CFTRS-GK.js} +159 -159
- package/dist/assets/{index-Cq4SZMN1.js → index-CI8Tta57.js} +1 -1
- package/dist/assets/{index-B6AJoqpH.js → index-CIHTH8Fr.js} +1 -1
- package/dist/assets/{index-r5OX1XAc.js → index-CesM9WmA.js} +1 -1
- package/dist/assets/{index-DpBO7roy.js → index-ChTqVvPW.js} +1 -1
- package/dist/assets/{index-BZO6weCD.js → index-D88HZi_5.js} +1 -1
- package/dist/assets/{index-B1y0V6oI.js → index-D8GrnpjT.js} +1 -1
- package/dist/assets/{index-D07w-tKM.js → index-DC_rWobK.js} +1 -1
- package/dist/assets/{index-B49E46lJ.js → index-DJBQ8Jd6.js} +1 -1
- package/dist/assets/{index-D2l1phOs.js → index-DRUswABH.js} +10 -10
- package/dist/assets/{index-B_SKfObh.js → index-DUIY0Tgv.js} +1 -1
- package/dist/assets/index-DUbsQlub.js +1 -0
- package/dist/assets/{index-BqLwmYDo.js → index-DZKqUnTF.js} +1 -1
- package/dist/assets/{index-BgORjHuZ.js → index-De-sQlFC.js} +7 -7
- package/dist/assets/{index-DUwL7XL8.js → index-DegEcI_5.js} +31 -66
- package/dist/assets/{index-DwSKqGUi.js → index-DqgF2ZFL.js} +1 -1
- package/dist/assets/{index-CiYpieJi.js → index-DrMB4rSY.js} +1 -1
- package/dist/assets/{index-1o_Cpjju.js → index-Duj01YgO.js} +3 -3
- package/dist/assets/{index-CC6C3qvP.js → index-MEqFmjFL.js} +1 -1
- package/dist/assets/{index-CqKpBuSh.js → index-Uu4_Hkiy.js} +1 -1
- package/dist/assets/{index-D-cZu7y9.js → index-gUAIdSaO.js} +1 -1
- package/dist/assets/{index-CZVGhGxp.js → index-gukiKQbS.js} +1 -1
- package/dist/assets/{index-B_whgYLG.js → index-hLOtcoN4.js} +1 -1
- package/dist/assets/index-lMNBpZHy.js +11 -0
- package/dist/assets/{index-CWcagiwH.js → index-mfO0z5Js.js} +1 -1
- package/dist/assets/{index-DZ-9lK3d.js → index-xEXDGJLW.js} +4 -4
- package/dist/assets/{index-DBffJePm.js → index-xRrM1Elc.js} +1 -1
- package/dist/assets/{index.es-Fps_KP2M.js → index.es-lQJT78n5.js} +1 -1
- package/dist/assets/{index.esm-D0DYWJ0J.js → index.esm-BM1OQakW.js} +1 -1
- package/dist/assets/{info-addon.es-BXSU_Qmj.js → info-addon.es-B2q6ad6s.js} +1 -1
- package/dist/assets/{info.es-HClq6Fw7.js → info.es-BlsqGypj.js} +1 -1
- package/dist/assets/{install-from-url-Dr1wSd1A.js → install-from-url-DoW_puMB.js} +1 -1
- package/dist/assets/{invitation-sWGyMElP.js → invitation-CSvGhsgx.js} +1 -1
- package/dist/assets/is-path-prefix-equal-PKFqxZa9.js +1 -0
- package/dist/assets/{isEqual-CuSHEenP.js → isEqual-CQFh5vbv.js} +1 -1
- package/dist/assets/{item-BJWKiK8f.js → item-BvfuUzM0.js} +2 -2
- package/dist/assets/ja-BSnhR_mh.js +1 -0
- package/dist/assets/{javascript.es-B_IsyO6D.js → javascript.es-DFBDGDoQ.js} +1 -1
- package/dist/assets/{jump-to-line.es-_IMKrBri.js → jump-to-line.es-CG-aqWo6.js} +1 -1
- package/dist/assets/{jump.es-CUOB8BsW.js → jump.es-BtNS8u5X.js} +1 -1
- package/dist/assets/ko-gjYVLUHm.js +1 -0
- package/dist/assets/{line-ufiIkqQb.js → line-BrH2vlVV.js} +3 -3
- package/dist/assets/{lint.es-UKbO4MMD.js → lint.es-Te9r1wG3.js} +1 -1
- package/dist/assets/{lint.es2-B11JVFra.js → lint.es2-C6uKmnCn.js} +1 -1
- package/dist/assets/{lint.es3-CpxDSCc5.js → lint.es3-DQ8CkpLh.js} +1 -1
- package/dist/assets/{list-header-BoMAPPGv.js → list-header-Y8_IJ-10.js} +1 -1
- package/dist/assets/{log-P6GhKjQ3.js → log-CXeDf0a3.js} +1 -1
- package/dist/assets/{lottie-CWcrdn_r.js → lottie-CQPB1GeH.js} +1 -1
- package/dist/assets/{matchbrackets.es-BRGFHH5R.js → matchbrackets.es-BuQooV_h.js} +1 -1
- package/dist/assets/{memory-r4YEj0vP.js → memory-DnSScRbL.js} +1 -1
- package/dist/assets/{mode.es-BbxrAJ36.js → mode.es-BlOm6b_1.js} +1 -1
- package/dist/assets/{mode.es2-CuBPrcRu.js → mode.es2-CAFkXiHm.js} +1 -1
- package/dist/assets/{mode.es3-Bx9ZZNix.js → mode.es3-DpuueBEx.js} +1 -1
- package/dist/assets/{onlineParser.es--mLtLOO_.js → onlineParser.es-oTwJVXeJ.js} +1 -1
- package/dist/assets/overview-Ss1GAs_I.js +26 -0
- package/dist/assets/pt-B-XCpQDv.js +1 -0
- package/dist/assets/react-C05hypJT.js +56 -0
- package/dist/assets/{redux-C8OOS_PY.js → redux-DQoY5G1e.js} +1 -1
- package/dist/assets/resource-dialog-WDlOSePr.js +57 -0
- package/dist/assets/ru-DSPtM6j0.js +1 -0
- package/dist/assets/runtime-BkObO5s_.js +1 -0
- package/dist/assets/{schema-B0MpML_w.js → schema-BY-WXJV5.js} +1 -1
- package/dist/assets/{search.es-CjDQ2Fhj.js → search.es-DUBca8v_.js} +1 -1
- package/dist/assets/{searchcursor.es-kDqPKfxE.js → searchcursor.es-CfugRLlJ.js} +1 -1
- package/dist/assets/service-C1VTK2ss.js +1 -0
- package/dist/assets/{shorten-label-Co8DUqmu.js → shorten-label-WXMi3uib.js} +1 -1
- package/dist/assets/{show-hint.es-Cbx3Ybfe.js → show-hint.es-CHUAeGZ6.js} +1 -1
- package/dist/assets/{slicedToArray-C7xZ-QRT.js → slicedToArray-BCow5Z5c.js} +1 -1
- package/dist/assets/{spaces-GvPakdRa.js → spaces-CK7hpVPU.js} +1 -1
- package/dist/assets/{sublime.es-C_G3_H-o.js → sublime.es-CBfTOmDR.js} +1 -1
- package/dist/assets/{switch-control-DncyUIeb.js → switch-control-CsvNZTUW.js} +1 -1
- package/dist/assets/{table-icons-DUqTtklC.js → table-icons-CD22QtpD.js} +4 -4
- package/dist/assets/{tag-gsV8sxA-.js → tag-bf0aUNMx.js} +1 -1
- package/dist/assets/{team-bmjuXLbE.js → team-U_gXTJbK.js} +1 -1
- package/dist/assets/th-CxPqMbkk.js +1 -0
- package/dist/assets/{toUpper-2qZllqOy.js → toUpper-DTMCxaDz.js} +1 -1
- package/dist/assets/traffic-knVUcdxe.js +8 -0
- package/dist/assets/{url-evaluation-B1QGhHSk.js → url-evaluation-Dd7vhNbh.js} +2 -2
- package/dist/assets/{url-join-C9rCXo0P.js → url-join-BrsHZeRr.js} +1 -1
- package/dist/assets/{use-blocklet-info-for-connect-did-spaces-DNT7pV9H.js → use-blocklet-info-for-connect-did-spaces-k60EMq_9.js} +1 -1
- package/dist/assets/{useLocalStorage-DQQZU_hU.js → useLocalStorage-D6n51kY7.js} +1 -1
- package/dist/assets/useThemeProps-B8tYkkPR.js +1 -0
- package/dist/assets/{util-CY7XCQ7b.js → util-DihPJC70.js} +1 -1
- package/dist/assets/vi-B8erxshV.js +1 -0
- package/dist/assets/{wait-container-CRYt3bDb.js → wait-container-mhRmHAOS.js} +1 -1
- package/dist/assets/{withStyles-B37CppbG.js → withStyles-m0FTPdbL.js} +1 -1
- package/dist/assets/wrap-locale-D-5H-sLr.js +1 -0
- package/dist/assets/{zh-DMGrvlv0.js → zh-XzadN7R3.js} +1 -1
- package/dist/assets/zh-tw-BTlMDwjI.js +1 -0
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +1 -1
- package/dist/assets/Autocomplete-BuV-jJWs.js +0 -1
- package/dist/assets/DeleteOutline-Cxb7-O66.js +0 -1
- package/dist/assets/FilterList-ryS3TXb6.js +0 -26
- package/dist/assets/LoadingButton-CLB-X53C.js +0 -1
- package/dist/assets/Select-DaMjgyJb.js +0 -2
- package/dist/assets/Slider-BssF-rMN.js +0 -1
- package/dist/assets/api-C5GhI8g0.js +0 -1
- package/dist/assets/ar-DAUz5_Ej.js +0 -1
- package/dist/assets/blocklet-xOWFDAq8.js +0 -1
- package/dist/assets/de-JXmbvsP-.js +0 -1
- package/dist/assets/es-D_uIRKnu.js +0 -1
- package/dist/assets/fr-BocLckhV.js +0 -1
- package/dist/assets/getValidReactChildren-BZgaSkVU.js +0 -1
- package/dist/assets/hi-Bn38t0nX.js +0 -1
- package/dist/assets/id-DuC9mOr4.js +0 -1
- package/dist/assets/index-B_X8Mnmw.js +0 -344
- package/dist/assets/index-Bd_QrAUa.js +0 -1
- package/dist/assets/index-CE9jkIu-.js +0 -268
- package/dist/assets/index-DIQO71kA.js +0 -1
- package/dist/assets/index-DSdFsOP8.js +0 -21
- package/dist/assets/index-D_yahWUu.js +0 -11
- package/dist/assets/index-ESizcsN5.js +0 -11
- package/dist/assets/index-RWmdJzPs.js +0 -54
- package/dist/assets/is-path-prefix-equal-DCOkU50l.js +0 -1
- package/dist/assets/ja-B2J7-ZGM.js +0 -1
- package/dist/assets/ko-TAMb2jXz.js +0 -1
- package/dist/assets/overview-BT359x8B.js +0 -26
- package/dist/assets/pt-DAmg1w9n.js +0 -1
- package/dist/assets/react-CnToiOQq.js +0 -379
- package/dist/assets/ru-BqJl8PYs.js +0 -1
- package/dist/assets/runtime-Q3wyKIvm.js +0 -1
- package/dist/assets/service-DLGpb5Rp.js +0 -1
- package/dist/assets/th-CGcwcZWK.js +0 -1
- package/dist/assets/traffic-DqNw6WbG.js +0 -8
- package/dist/assets/ua-parser-Dzgi3kyq.js +0 -1
- package/dist/assets/vi-lYszmNr_.js +0 -1
- package/dist/assets/wrap-locale-D3aDFEon.js +0 -1
- package/dist/assets/zh-tw-BkGc-T4k.js +0 -1
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
var Ft=Object.defineProperty;var zt=(e,t,n)=>t in e?Ft(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Q=(e,t,n)=>(zt(e,typeof t!="symbol"?t+"":t,n),n);import{j as d,ce as ie,fY as fe,fZ as et,P as u,f_ as Ht,r as T,aO as Dt,ci as Ut,a2 as Bt,dT as Qt,dR as Vt,f$ as Wt,dQ as Zt,d2 as A,a7 as Gt,a8 as Jt,g0 as Yt,O as P,g1 as Xt,m as Kt,g2 as en,g3 as tn,B as nn,g4 as on,fL as tt,q as ee,g5 as rn,g6 as sn,cn,g7 as an,s as M,g8 as nt,g9 as ln,c8 as ot,ga as un,aA as rt,bU as de,bc as fn,co as st,gb as dn}from"./index-CFTRS-GK.js";import{d as pn}from"./ExpandMore-gvSelbRO.js";/**
|
|
2
|
+
* (c) Iconify
|
|
3
|
+
*
|
|
4
|
+
* For the full copyright and license information, please view the license.txt
|
|
5
|
+
* files at https://github.com/iconify/iconify
|
|
6
|
+
*
|
|
7
|
+
* Licensed under MIT.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
* @version 1.0.8
|
|
11
|
+
*/const it=Object.freeze({left:0,top:0,width:16,height:16}),G=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),U=Object.freeze({...it,...G}),pe=Object.freeze({...U,body:"",hidden:!1}),hn=Object.freeze({width:null,height:null}),ct=Object.freeze({...hn,...G});function gn(e,t=0){const n=e.replace(/^-?[0-9.]*/,"");function r(o){for(;o<0;)o+=4;return o%4}if(n===""){const o=parseInt(e);return isNaN(o)?0:r(o)}else if(n!==e){let o=0;switch(n){case"%":o=25;break;case"deg":o=90}if(o){let s=parseFloat(e.slice(0,e.length-n.length));return isNaN(s)?0:(s=s/o,s%1===0?r(s):0)}}return t}const mn=/[\s,]+/;function yn(e,t){t.split(mn).forEach(n=>{switch(n.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}const at={...ct,preserveAspectRatio:""};function Ee(e){const t={...at},n=(r,o)=>e.getAttribute(r)||o;return t.width=n("width",null),t.height=n("height",null),t.rotate=gn(n("rotate","")),yn(t,n("flip","")),t.preserveAspectRatio=n("preserveAspectRatio",n("preserveaspectratio","")),t}function bn(e,t){for(const n in at)if(e[n]!==t[n])return!0;return!1}const q=/^[a-z0-9]+(-[a-z0-9]+)*$/,B=(e,t,n,r="")=>{const o=e.split(":");if(e.slice(0,1)==="@"){if(o.length<2||o.length>3)return null;r=o.shift().slice(1)}if(o.length>3||!o.length)return null;if(o.length>1){const a=o.pop(),c=o.pop(),l={provider:o.length>0?o[0]:r,prefix:c,name:a};return t&&!W(l)?null:l}const s=o[0],i=s.split("-");if(i.length>1){const a={provider:r,prefix:i.shift(),name:i.join("-")};return t&&!W(a)?null:a}if(n&&r===""){const a={provider:r,prefix:"",name:s};return t&&!W(a,n)?null:a}return null},W=(e,t)=>e?!!((e.provider===""||e.provider.match(q))&&(t&&e.prefix===""||e.prefix.match(q))&&e.name.match(q)):!1;function xn(e,t){const n={};!e.hFlip!=!t.hFlip&&(n.hFlip=!0),!e.vFlip!=!t.vFlip&&(n.vFlip=!0);const r=((e.rotate||0)+(t.rotate||0))%4;return r&&(n.rotate=r),n}function $e(e,t){const n=xn(e,t);for(const r in pe)r in G?r in e&&!(r in n)&&(n[r]=G[r]):r in t?n[r]=t[r]:r in e&&(n[r]=e[r]);return n}function wn(e,t){const n=e.icons,r=e.aliases||Object.create(null),o=Object.create(null);function s(i){if(n[i])return o[i]=[];if(!(i in o)){o[i]=null;const a=r[i]&&r[i].parent,c=a&&s(a);c&&(o[i]=[a].concat(c))}return o[i]}return(t||Object.keys(n).concat(Object.keys(r))).forEach(s),o}function vn(e,t,n){const r=e.icons,o=e.aliases||Object.create(null);let s={};function i(a){s=$e(r[a]||o[a],s)}return i(t),n.forEach(i),$e(e,s)}function lt(e,t){const n=[];if(typeof e!="object"||typeof e.icons!="object")return n;e.not_found instanceof Array&&e.not_found.forEach(o=>{t(o,null),n.push(o)});const r=wn(e);for(const o in r){const s=r[o];s&&(t(o,vn(e,o,s)),n.push(o))}return n}const kn={provider:"",aliases:{},not_found:{},...it};function ce(e,t){for(const n in t)if(n in e&&typeof e[n]!=typeof t[n])return!1;return!0}function ut(e){if(typeof e!="object"||e===null)return null;const t=e;if(typeof t.prefix!="string"||!e.icons||typeof e.icons!="object"||!ce(e,kn))return null;const n=t.icons;for(const o in n){const s=n[o];if(!o.match(q)||typeof s.body!="string"||!ce(s,pe))return null}const r=t.aliases||Object.create(null);for(const o in r){const s=r[o],i=s.parent;if(!o.match(q)||typeof i!="string"||!n[i]&&!r[i]||!ce(s,pe))return null}return t}const J=Object.create(null);function jn(e,t){return{provider:e,prefix:t,icons:Object.create(null),missing:new Set}}function R(e,t){const n=J[e]||(J[e]=Object.create(null));return n[t]||(n[t]=jn(e,t))}function ve(e,t){return ut(t)?lt(t,(n,r)=>{r?e.icons[n]=r:e.missing.add(n)}):[]}function In(e,t,n){try{if(typeof n.body=="string")return e.icons[t]={...n},!0}catch{}return!1}function Sn(e,t){let n=[];return(typeof e=="string"?[e]:Object.keys(J)).forEach(o=>{(typeof o=="string"&&typeof t=="string"?[t]:Object.keys(J[o]||{})).forEach(i=>{const a=R(o,i);n=n.concat(Object.keys(a.icons).map(c=>(o!==""?"@"+o+":":"")+i+":"+c))})}),n}let z=!1;function ft(e){return typeof e=="boolean"&&(z=e),z}function H(e){const t=typeof e=="string"?B(e,!0,z):e;if(t){const n=R(t.provider,t.prefix),r=t.name;return n.icons[r]||(n.missing.has(r)?null:void 0)}}function dt(e,t){const n=B(e,!0,z);if(!n)return!1;const r=R(n.provider,n.prefix);return In(r,n.name,t)}function _e(e,t){if(typeof e!="object")return!1;if(typeof t!="string"&&(t=e.provider||""),z&&!t&&!e.prefix){let o=!1;return ut(e)&&(e.prefix="",lt(e,(s,i)=>{i&&dt(s,i)&&(o=!0)})),o}const n=e.prefix;if(!W({provider:t,prefix:n,name:"a"}))return!1;const r=R(t,n);return!!ve(r,e)}function Tn(e){return!!H(e)}function Cn(e){const t=H(e);return t?{...U,...t}:null}function An(e){const t={loaded:[],missing:[],pending:[]},n=Object.create(null);e.sort((o,s)=>o.provider!==s.provider?o.provider.localeCompare(s.provider):o.prefix!==s.prefix?o.prefix.localeCompare(s.prefix):o.name.localeCompare(s.name));let r={provider:"",prefix:"",name:""};return e.forEach(o=>{if(r.name===o.name&&r.prefix===o.prefix&&r.provider===o.provider)return;r=o;const s=o.provider,i=o.prefix,a=o.name,c=n[s]||(n[s]=Object.create(null)),l=c[i]||(c[i]=R(s,i));let f;a in l.icons?f=t.loaded:i===""||l.missing.has(a)?f=t.missing:f=t.pending;const p={provider:s,prefix:i,name:a};f.push(p)}),t}function pt(e,t){e.forEach(n=>{const r=n.loaderCallbacks;r&&(n.loaderCallbacks=r.filter(o=>o.id!==t))})}function Pn(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const t=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!t.length)return;let n=!1;const r=e.provider,o=e.prefix;t.forEach(s=>{const i=s.icons,a=i.pending.length;i.pending=i.pending.filter(c=>{if(c.prefix!==o)return!0;const l=c.name;if(e.icons[l])i.loaded.push({provider:r,prefix:o,name:l});else if(e.missing.has(l))i.missing.push({provider:r,prefix:o,name:l});else return n=!0,!0;return!1}),i.pending.length!==a&&(n||pt([e],s.id),s.callback(i.loaded.slice(0),i.missing.slice(0),i.pending.slice(0),s.abort))})}))}let Mn=0;function Ln(e,t,n){const r=Mn++,o=pt.bind(null,n,r);if(!t.pending.length)return o;const s={id:r,icons:t,callback:e,abort:o};return n.forEach(i=>{(i.loaderCallbacks||(i.loaderCallbacks=[])).push(s)}),o}const he=Object.create(null);function qe(e,t){he[e]=t}function ge(e){return he[e]||he[""]}function Rn(e,t=!0,n=!1){const r=[];return e.forEach(o=>{const s=typeof o=="string"?B(o,t,n):o;s&&r.push(s)}),r}var Nn={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function On(e,t,n,r){const o=e.resources.length,s=e.random?Math.floor(Math.random()*o):e.index;let i;if(e.random){let y=e.resources.slice(0);for(i=[];y.length>1;){const I=Math.floor(Math.random()*y.length);i.push(y[I]),y=y.slice(0,I).concat(y.slice(I+1))}i=i.concat(y)}else i=e.resources.slice(s).concat(e.resources.slice(0,s));const a=Date.now();let c="pending",l=0,f,p=null,h=[],g=[];typeof r=="function"&&g.push(r);function m(){p&&(clearTimeout(p),p=null)}function x(){c==="pending"&&(c="aborted"),m(),h.forEach(y=>{y.status==="pending"&&(y.status="aborted")}),h=[]}function v(y,I){I&&(g=[]),typeof y=="function"&&g.push(y)}function k(){return{startTime:a,payload:t,status:c,queriesSent:l,queriesPending:h.length,subscribe:v,abort:x}}function b(){c="failed",g.forEach(y=>{y(void 0,f)})}function w(){h.forEach(y=>{y.status==="pending"&&(y.status="aborted")}),h=[]}function C(y,I,L){const S=I!=="success";switch(h=h.filter(N=>N!==y),c){case"pending":break;case"failed":if(S||!e.dataAfterTimeout)return;break;default:return}if(I==="abort"){f=L,b();return}if(S){f=L,h.length||(i.length?j():b());return}if(m(),w(),!e.random){const N=e.resources.indexOf(y.resource);N!==-1&&N!==e.index&&(e.index=N)}c="completed",g.forEach(N=>{N(L)})}function j(){if(c!=="pending")return;m();const y=i.shift();if(y===void 0){if(h.length){p=setTimeout(()=>{m(),c==="pending"&&(w(),b())},e.timeout);return}b();return}const I={status:"pending",resource:y,callback:(L,S)=>{C(I,L,S)}};h.push(I),l++,p=setTimeout(j,e.rotate),n(y,t,I.callback)}return setTimeout(j),k}function ht(e){const t={...Nn,...e};let n=[];function r(){n=n.filter(a=>a().status==="pending")}function o(a,c,l){const f=On(t,a,c,(p,h)=>{r(),l&&l(p,h)});return n.push(f),f}function s(a){return n.find(c=>a(c))||null}return{query:o,find:s,setIndex:a=>{t.index=a},getIndex:()=>t.index,cleanup:r}}function ke(e){let t;if(typeof e.resources=="string")t=[e.resources];else if(t=e.resources,!(t instanceof Array)||!t.length)return null;return{resources:t,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const te=Object.create(null),_=["https://api.simplesvg.com","https://api.unisvg.com"],Z=[];for(;_.length>0;)_.length===1||Math.random()>.5?Z.push(_.shift()):Z.push(_.pop());te[""]=ke({resources:["https://api.iconify.design"].concat(Z)});function Fe(e,t){const n=ke(t);return n===null?!1:(te[e]=n,!0)}function ne(e){return te[e]}function En(){return Object.keys(te)}function ze(){}const ae=Object.create(null);function $n(e){if(!ae[e]){const t=ne(e);if(!t)return;const n=ht(t),r={config:t,redundancy:n};ae[e]=r}return ae[e]}function gt(e,t,n){let r,o;if(typeof e=="string"){const s=ge(e);if(!s)return n(void 0,424),ze;o=s.send;const i=$n(e);i&&(r=i.redundancy)}else{const s=ke(e);if(s){r=ht(s);const i=e.resources?e.resources[0]:"",a=ge(i);a&&(o=a.send)}}return!r||!o?(n(void 0,424),ze):r.query(t,o,n)().abort}const He="iconify2",D="iconify",mt=D+"-count",De=D+"-version",yt=36e5,_n=168;function me(e,t){try{return e.getItem(t)}catch{}}function je(e,t,n){try{return e.setItem(t,n),!0}catch{}}function Ue(e,t){try{e.removeItem(t)}catch{}}function ye(e,t){return je(e,mt,t.toString())}function be(e){return parseInt(me(e,mt))||0}const O={local:!0,session:!0},bt={local:new Set,session:new Set};let Ie=!1;function qn(e){Ie=e}let V=typeof window>"u"?{}:window;function xt(e){const t=e+"Storage";try{if(V&&V[t]&&typeof V[t].length=="number")return V[t]}catch{}O[e]=!1}function wt(e,t){const n=xt(e);if(!n)return;const r=me(n,De);if(r!==He){if(r){const a=be(n);for(let c=0;c<a;c++)Ue(n,D+c.toString())}je(n,De,He),ye(n,0);return}const o=Math.floor(Date.now()/yt)-_n,s=a=>{const c=D+a.toString(),l=me(n,c);if(typeof l=="string"){try{const f=JSON.parse(l);if(typeof f=="object"&&typeof f.cached=="number"&&f.cached>o&&typeof f.provider=="string"&&typeof f.data=="object"&&typeof f.data.prefix=="string"&&t(f,a))return!0}catch{}Ue(n,c)}};let i=be(n);for(let a=i-1;a>=0;a--)s(a)||(a===i-1?(i--,ye(n,i)):bt[e].add(a))}function vt(){if(!Ie){qn(!0);for(const e in O)wt(e,t=>{const n=t.data,r=t.provider,o=n.prefix,s=R(r,o);if(!ve(s,n).length)return!1;const i=n.lastModified||-1;return s.lastModifiedCached=s.lastModifiedCached?Math.min(s.lastModifiedCached,i):i,!0})}}function Fn(e,t){const n=e.lastModifiedCached;if(n&&n>=t)return n===t;if(e.lastModifiedCached=t,n)for(const r in O)wt(r,o=>{const s=o.data;return o.provider!==e.provider||s.prefix!==e.prefix||s.lastModified===t});return!0}function zn(e,t){Ie||vt();function n(r){let o;if(!O[r]||!(o=xt(r)))return;const s=bt[r];let i;if(s.size)s.delete(i=Array.from(s).shift());else if(i=be(o),!ye(o,i+1))return;const a={cached:Math.floor(Date.now()/yt),provider:e.provider,data:t};return je(o,D+i.toString(),JSON.stringify(a))}t.lastModified&&!Fn(e,t.lastModified)||Object.keys(t.icons).length&&(t.not_found&&(t=Object.assign({},t),delete t.not_found),n("local")||n("session"))}function Be(){}function Hn(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,Pn(e)}))}function Dn(e,t){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(t).sort():e.iconsToLoad=t,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:n,prefix:r}=e,o=e.iconsToLoad;delete e.iconsToLoad;let s;if(!o||!(s=ge(n)))return;s.prepare(n,r,o).forEach(a=>{gt(n,a,c=>{if(typeof c!="object")a.icons.forEach(l=>{e.missing.add(l)});else try{const l=ve(e,c);if(!l.length)return;const f=e.pendingIcons;f&&l.forEach(p=>{f.delete(p)}),zn(e,c)}catch(l){console.error(l)}Hn(e)})})}))}const Se=(e,t)=>{const n=Rn(e,!0,ft()),r=An(n);if(!r.pending.length){let c=!0;return t&&setTimeout(()=>{c&&t(r.loaded,r.missing,r.pending,Be)}),()=>{c=!1}}const o=Object.create(null),s=[];let i,a;return r.pending.forEach(c=>{const{provider:l,prefix:f}=c;if(f===a&&l===i)return;i=l,a=f,s.push(R(l,f));const p=o[l]||(o[l]=Object.create(null));p[f]||(p[f]=[])}),r.pending.forEach(c=>{const{provider:l,prefix:f,name:p}=c,h=R(l,f),g=h.pendingIcons||(h.pendingIcons=new Set);g.has(p)||(g.add(p),o[l][f].push(p))}),s.forEach(c=>{const{provider:l,prefix:f}=c;o[l][f].length&&Dn(c,o[l][f])}),t?Ln(t,r,s):Be},Un=e=>new Promise((t,n)=>{const r=typeof e=="string"?B(e,!0):e;if(!r){n(e);return}Se([r||e],o=>{if(o.length&&r){const s=H(r);if(s){t({...U,...s});return}}n(e)})});function Bn(e){try{const t=typeof e=="string"?JSON.parse(e):e;if(typeof t.body=="string")return{...t}}catch{}}function Qn(e,t){const n=typeof e=="string"?B(e,!0,!0):null;if(!n){const s=Bn(e);return{value:e,data:s}}const r=H(n);if(r!==void 0||!n.prefix)return{value:e,name:n,data:r};const o=Se([n],()=>t(e,n,H(n)));return{value:e,name:n,loading:o}}function le(e){return e.hasAttribute("inline")}let kt=!1;try{kt=navigator.vendor.indexOf("Apple")===0}catch{}function Vn(e,t){switch(t){case"svg":case"bg":case"mask":return t}return t!=="style"&&(kt||e.indexOf("<a")===-1)?"svg":e.indexOf("currentColor")===-1?"bg":"mask"}const Wn=/(-?[0-9.]*[0-9]+[0-9.]*)/g,Zn=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function xe(e,t,n){if(t===1)return e;if(n=n||100,typeof e=="number")return Math.ceil(e*t*n)/n;if(typeof e!="string")return e;const r=e.split(Wn);if(r===null||!r.length)return e;const o=[];let s=r.shift(),i=Zn.test(s);for(;;){if(i){const a=parseFloat(s);isNaN(a)?o.push(s):o.push(Math.ceil(a*t*n)/n)}else o.push(s);if(s=r.shift(),s===void 0)return o.join("");i=!i}}const Gn=e=>e==="unset"||e==="undefined"||e==="none";function jt(e,t){const n={...U,...e},r={...ct,...t},o={left:n.left,top:n.top,width:n.width,height:n.height};let s=n.body;[n,r].forEach(m=>{const x=[],v=m.hFlip,k=m.vFlip;let b=m.rotate;v?k?b+=2:(x.push("translate("+(o.width+o.left).toString()+" "+(0-o.top).toString()+")"),x.push("scale(-1 1)"),o.top=o.left=0):k&&(x.push("translate("+(0-o.left).toString()+" "+(o.height+o.top).toString()+")"),x.push("scale(1 -1)"),o.top=o.left=0);let w;switch(b<0&&(b-=Math.floor(b/4)*4),b=b%4,b){case 1:w=o.height/2+o.top,x.unshift("rotate(90 "+w.toString()+" "+w.toString()+")");break;case 2:x.unshift("rotate(180 "+(o.width/2+o.left).toString()+" "+(o.height/2+o.top).toString()+")");break;case 3:w=o.width/2+o.left,x.unshift("rotate(-90 "+w.toString()+" "+w.toString()+")");break}b%2===1&&(o.left!==o.top&&(w=o.left,o.left=o.top,o.top=w),o.width!==o.height&&(w=o.width,o.width=o.height,o.height=w)),x.length&&(s='<g transform="'+x.join(" ")+'">'+s+"</g>")});const i=r.width,a=r.height,c=o.width,l=o.height;let f,p;i===null?(p=a===null?"1em":a==="auto"?l:a,f=xe(p,c/l)):(f=i==="auto"?c:i,p=a===null?xe(f,l/c):a==="auto"?l:a);const h={},g=(m,x)=>{Gn(x)||(h[m]=x.toString())};return g("width",f),g("height",p),h.viewBox=o.left.toString()+" "+o.top.toString()+" "+c.toString()+" "+l.toString(),{attributes:h,body:s}}const Jn=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let Y=Jn();function Yn(e){Y=e}function Xn(){return Y}function Kn(e,t){const n=ne(e);if(!n)return 0;let r;if(!n.maxURL)r=0;else{let o=0;n.resources.forEach(i=>{o=Math.max(o,i.length)});const s=t+".json?icons=";r=n.maxURL-o-n.path.length-s.length}return r}function eo(e){return e===404}const to=(e,t,n)=>{const r=[],o=Kn(e,t),s="icons";let i={type:s,provider:e,prefix:t,icons:[]},a=0;return n.forEach((c,l)=>{a+=c.length+1,a>=o&&l>0&&(r.push(i),i={type:s,provider:e,prefix:t,icons:[]},a=c.length),i.icons.push(c)}),r.push(i),r};function no(e){if(typeof e=="string"){const t=ne(e);if(t)return t.path}return"/"}const oo=(e,t,n)=>{if(!Y){n("abort",424);return}let r=no(t.provider);switch(t.type){case"icons":{const s=t.prefix,a=t.icons.join(","),c=new URLSearchParams({icons:a});r+=s+".json?"+c.toString();break}case"custom":{const s=t.uri;r+=s.slice(0,1)==="/"?s.slice(1):s;break}default:n("abort",400);return}let o=503;Y(e+r).then(s=>{const i=s.status;if(i!==200){setTimeout(()=>{n(eo(i)?"abort":"next",i)});return}return o=501,s.json()}).then(s=>{if(typeof s!="object"||s===null){setTimeout(()=>{s===404?n("abort",s):n("next",o)});return}setTimeout(()=>{n("success",s)})}).catch(()=>{n("next",o)})},ro={prepare:to,send:oo};function Qe(e,t){switch(e){case"local":case"session":O[e]=t;break;case"all":for(const n in O)O[n]=t;break}}const ue="data-style";let It="";function so(e){It=e}function Ve(e,t){let n=Array.from(e.childNodes).find(r=>r.hasAttribute&&r.hasAttribute(ue));n||(n=document.createElement("style"),n.setAttribute(ue,ue),e.appendChild(n)),n.textContent=":host{display:inline-block;vertical-align:"+(t?"-0.125em":"0")+"}span,svg{display:block}"+It}function St(){qe("",ro),ft(!0);let e;try{e=window}catch{}if(e){if(vt(),e.IconifyPreload!==void 0){const n=e.IconifyPreload,r="Invalid IconifyPreload syntax.";typeof n=="object"&&n!==null&&(n instanceof Array?n:[n]).forEach(o=>{try{(typeof o!="object"||o===null||o instanceof Array||typeof o.icons!="object"||typeof o.prefix!="string"||!_e(o))&&console.error(r)}catch{console.error(r)}})}if(e.IconifyProviders!==void 0){const n=e.IconifyProviders;if(typeof n=="object"&&n!==null)for(const r in n){const o="IconifyProviders["+r+"] is invalid.";try{const s=n[r];if(typeof s!="object"||!s||s.resources===void 0)continue;Fe(r,s)||console.error(o)}catch{console.error(o)}}}}return{enableCache:n=>Qe(n,!0),disableCache:n=>Qe(n,!1),iconExists:Tn,getIcon:Cn,listIcons:Sn,addIcon:dt,addCollection:_e,calculateSize:xe,buildIcon:jt,loadIcons:Se,loadIcon:Un,addAPIProvider:Fe,appendCustomStyle:so,_api:{getAPIConfig:ne,setAPIModule:qe,sendAPIQuery:gt,setFetch:Yn,getFetch:Xn,listAPIProviders:En}}}function Tt(e,t){let n=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const r in t)n+=" "+r+'="'+t[r]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+n+">"+e+"</svg>"}function io(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function co(e){return"data:image/svg+xml,"+io(e)}function ao(e){return'url("'+co(e)+'")'}const we={"background-color":"currentColor"},Ct={"background-color":"transparent"},We={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},Ze={"-webkit-mask":we,mask:we,background:Ct};for(const e in Ze){const t=Ze[e];for(const n in We)t[e+"-"+n]=We[n]}function Ge(e){return e?e+(e.match(/^[-0-9.]+$/)?"px":""):"inherit"}function lo(e,t,n){const r=document.createElement("span");let o=e.body;o.indexOf("<a")!==-1&&(o+="<!-- "+Date.now()+" -->");const s=e.attributes,i=Tt(o,{...s,width:t.width+"",height:t.height+""}),a=ao(i),c=r.style,l={"--svg":a,width:Ge(s.width),height:Ge(s.height),...n?we:Ct};for(const f in l)c.setProperty(f,l[f]);return r}let F;function uo(){try{F=window.trustedTypes.createPolicy("iconify",{createHTML:e=>e})}catch{F=null}}function fo(e){return F===void 0&&uo(),F?F.createHTML(e):e}function po(e){const t=document.createElement("span"),n=e.attributes;let r="";n.width||(r="width: inherit;"),n.height||(r+="height: inherit;"),r&&(n.style=r);const o=Tt(e.body,n);return t.innerHTML=fo(o),t.firstChild}function Je(e,t){const n=t.icon.data,r=t.customisations,o=jt(n,r);r.preserveAspectRatio&&(o.attributes.preserveAspectRatio=r.preserveAspectRatio);const s=t.renderedMode;let i;switch(s){case"svg":i=po(o);break;default:i=lo(o,{...U,...n},s==="mask")}const a=Array.from(e.childNodes).find(c=>{const l=c.tagName&&c.tagName.toUpperCase();return l==="SPAN"||l==="SVG"});a?i.tagName==="SPAN"&&a.tagName===i.tagName?a.setAttribute("style",i.getAttribute("style")):e.replaceChild(i,a):e.appendChild(i)}function Ye(e,t,n){const r=n&&(n.rendered?n:n.lastRender);return{rendered:!1,inline:t,icon:e,lastRender:r}}function ho(e="iconify-icon"){let t,n;try{t=window.customElements,n=window.HTMLElement}catch{return}if(!t||!n)return;const r=t.get(e);if(r)return r;const o=["icon","mode","inline","width","height","rotate","flip"],s=class extends n{constructor(){super();Q(this,"_shadowRoot");Q(this,"_state");Q(this,"_checkQueued",!1);const c=this._shadowRoot=this.attachShadow({mode:"open"}),l=le(this);Ve(c,l),this._state=Ye({value:""},l),this._queueCheck()}static get observedAttributes(){return o.slice(0)}attributeChangedCallback(c){if(c==="inline"){const l=le(this),f=this._state;l!==f.inline&&(f.inline=l,Ve(this._shadowRoot,l))}else this._queueCheck()}get icon(){const c=this.getAttribute("icon");if(c&&c.slice(0,1)==="{")try{return JSON.parse(c)}catch{}return c}set icon(c){typeof c=="object"&&(c=JSON.stringify(c)),this.setAttribute("icon",c)}get inline(){return le(this)}set inline(c){c?this.setAttribute("inline","true"):this.removeAttribute("inline")}restartAnimation(){const c=this._state;if(c.rendered){const l=this._shadowRoot;if(c.renderedMode==="svg")try{l.lastChild.setCurrentTime(0);return}catch{}Je(l,c)}}get status(){const c=this._state;return c.rendered?"rendered":c.icon.data===null?"failed":"loading"}_queueCheck(){this._checkQueued||(this._checkQueued=!0,setTimeout(()=>{this._check()}))}_check(){if(!this._checkQueued)return;this._checkQueued=!1;const c=this._state,l=this.getAttribute("icon");if(l!==c.icon.value){this._iconChanged(l);return}if(!c.rendered)return;const f=this.getAttribute("mode"),p=Ee(this);(c.attrMode!==f||bn(c.customisations,p))&&this._renderIcon(c.icon,p,f)}_iconChanged(c){const l=Qn(c,(f,p,h)=>{const g=this._state;if(g.rendered||this.getAttribute("icon")!==f)return;const m={value:f,name:p,data:h};m.data?this._gotIconData(m):g.icon=m});l.data?this._gotIconData(l):this._state=Ye(l,this._state.inline,this._state)}_gotIconData(c){this._checkQueued=!1,this._renderIcon(c,Ee(this),this.getAttribute("mode"))}_renderIcon(c,l,f){const p=Vn(c.data.body,f),h=this._state.inline;Je(this._shadowRoot,this._state={rendered:!0,icon:c,inline:h,customisations:l,attrMode:f,renderedMode:p})}};o.forEach(a=>{a in s.prototype||Object.defineProperty(s.prototype,a,{get:function(){return this.getAttribute(a)},set:function(c){c!==null?this.setAttribute(a,c):this.removeAttribute(a)}})});const i=St();for(const a in i)s[a]=s.prototype[a]=i[a];return t.define(e,s),s}ho()||St();const E=(e,t,n="children")=>e.map(r=>Array.isArray(r[n])?t({...r,[n]:E(r[n],t,n)}):t(r)),At=(e,t="children")=>{const n=[];return E(e,r=>n.push(r),t),n},Te=(e,t,n="children")=>e.map(r=>({...r})).filter(r=>{const o=r[n];if(Array.isArray(o)){const i=Te(o,t,n);r[n]=i!=null&&i.length?i:void 0}const s={filteredChildren:r[n],isLeaf:!(o!=null&&o.length)};return t(r,s)}),Pt=e=>/^https?:\/\//.test(e),go=e=>/^[\w-]+:[\w-]+$/.test(e),mo=e=>{if(!e||!(e!=null&&e.startsWith("/")))return!1;const t=o=>o.endsWith("/")?o:`${o}/`,n=t(window.location.pathname),r=t(new URL(e,window.location.origin).pathname);return n.startsWith(r)},Mt=(e=[])=>{const t=e.map((r,o)=>({path:r,index:o})).filter(r=>mo(r.path));return t!=null&&t.length?t.slice(1).reduce((r,o)=>r.path.length>=o.path.length?r:o,t[0]).index:-1};function Ce({icon:e,size:t,sx:n,...r}){const o=[...Array.isArray(n)?n:[n]];if(t&&o.push({width:t,height:t}),r.variant||o.push({"&.MuiAvatar-root":{color:"inherit",fontWeight:"bold",backgroundColor:"transparent",borderRadius:0},"&.MuiAvatar-root svg":{width:"100%",height:"100%"}}),Pt(e))return d.jsx(ie,{component:"span",...r,src:e,sx:o});if(go(e)){const s=t?.6*t+4:0;return d.jsx(ie,{component:"span",...r,sx:o,children:d.jsx(fe,{icon:e,height:s||void 0})})}return e&&typeof e=="string"?(o.push({"&.MuiAvatar-root":{display:"inline-flex",...t&&{fontSize:t-2}}}),d.jsx(ie,{component:"span",...r,sx:o,children:Array.from(e)[0]})):null}const yo=et();function oe({theme:e,children:t}){const n=e?et(e):yo;return d.jsx(Ht,{theme:n,children:t})}oe.propTypes={children:u.any.isRequired,theme:u.object};oe.defaultProps={theme:null};var Xe,Ke;const X=((Xe=window==null?void 0:window.blocklet)==null?void 0:Xe.groupPrefix)||((Ke=window==null?void 0:window.blocklet)==null?void 0:Ke.prefix)||"/",bo=e=>{const t={...e},n=e==null?void 0:e.background;return typeof n=="string"?t.background={header:n,footer:n,default:n}:n&&typeof n=="object"&&(t.background={header:n.header||n.default,footer:n.footer||n.default,default:n.default}),t},$=(e,t="en")=>{if(!(e!=null&&e.length))return e;const n=(o,s)=>typeof o=="string"?o:typeof o=="object"?o[s]||(o==null?void 0:o.en)||(o==null?void 0:o.zh):o,r=(o,s)=>{if(typeof o=="string"){if(Pt(o)){const a=new URL(o);return a.searchParams.set("locale",s),a.href}const i=new URL(o,window.location.origin);return i.searchParams.set("locale",s),i.pathname+i.search}return typeof o=="object"?o[s]||(o==null?void 0:o.en)||(o==null?void 0:o.zh):o};return E(e,o=>{var s;return{...o,title:n(o.title,t),link:(s=o.items)!=null&&s.length?o.link:r(o.link,t),_rawLink:o.link}},"items")},xo=e=>E(e,t=>t.role?{...t,role:Array.isArray(t.role)?t.role:[t.role]}:t,"items"),wo=e=>{if(!(e!=null&&e.length))return null;const t=xo(e),n={header:[],footer:[],social:[],bottom:[],dashboard:[],sessionManager:[],userCenter:[]};return t.forEach(r=>{var o;r.section?Array.isArray(r.section)?r.section.forEach(s=>{var i;(i=n[s])==null||i.push(r)}):typeof r.section=="string"&&((o=n[r.section])==null||o.push(r)):n.header.push(r)}),n},Ae=e=>{if(!e)return null;const t={...e};return t.theme=bo(t.theme),t.navigation=wo(vo(t.navigation)),t},vo=(e=[])=>Te(e,(t,n)=>{var r;return!!t.link||((r=n.filteredChildren)==null?void 0:r.length)},"items"),Lt=(e,t)=>Te(e,(n,r)=>{var s;const o=!n.role||t&&n.role.includes(t);return r.isLeaf?o:o&&((s=r.filteredChildren)==null?void 0:s.length)},"items"),ko={top:-960,width:960,height:960,body:'<path fill="currentColor" d="M510-600v-210q0-12.75 8.625-21.375T540-840h270q12.75 0 21.375 8.625T840-810v210q0 12.75-8.625 21.375T810-570H540q-12.75 0-21.375-8.625T510-600M120-480v-330q0-12.75 8.625-21.375T150-840h270q12.75 0 21.375 8.625T450-810v330q0 12.75-8.625 21.375T420-450H150q-12.75 0-21.375-8.625T120-480m390 330v-330q0-12.75 8.625-21.375T540-510h270q12.75 0 21.375 8.625T840-480v330q0 12.75-8.625 21.375T810-120H540q-12.75 0-21.375-8.625T510-150m-390 0v-210q0-12.75 8.625-21.375T150-390h270q12.75 0 21.375 8.625T450-360v210q0 12.75-8.625 21.375T420-120H150q-12.75 0-21.375-8.625T120-150m60-360h210v-270H180zm390 330h210v-270H570zm0-450h210v-150H570zM180-180h210v-150H180zm210-150"/>'},jo={width:24,height:24,body:'<path fill="currentColor" d="M15.95 12.3L11.7 8.05q-.15-.15-.212-.325t-.063-.375q0-.2.063-.375t.212-.325l4.25-4.25q.15-.15.325-.212t.375-.063q.2 0 .375.063t.325.212l4.25 4.25q.15.15.213.325t.062.375q0 .2-.063.375t-.212.325l-4.25 4.25q-.15.15-.325.213t-.375.062q-.2 0-.375-.062t-.325-.213ZM3 10V4q0-.425.288-.713T4 3h6q.425 0 .713.288T11 4v6q0 .425-.288.713T10 11H4q-.425 0-.713-.288T3 10Zm10 10v-6q0-.425.288-.713T14 13h6q.425 0 .713.288T21 14v6q0 .425-.288.713T20 21h-6q-.425 0-.713-.288T13 20ZM3 20v-6q0-.425.288-.713T4 13h6q.425 0 .713.288T11 14v6q0 .425-.288.713T10 21H4q-.425 0-.713-.288T3 20ZM5 9h4V5H5v4Zm11.675 1.2L19.5 7.375L16.675 4.55L13.85 7.375l2.825 2.825ZM15 19h4v-4h-4v4ZM5 19h4v-4H5v4ZM9 9Zm4.85-1.625ZM9 15Zm6 0Z"/>'};function Pe({session:e,locale:t,size:n}){const r=(window==null?void 0:window.blocklet)||{},o=(r.navigation||[]).filter(c=>c.section==="sessionManager"&&!["/sessionManager"].includes(c.id)).filter(c=>{var l;return!!((c==null?void 0:c.role)||[]).includes(((l=e==null?void 0:e.user)==null?void 0:l.role)||"guest")}).map(c=>{const l=((r==null?void 0:r.componentMountPoints)||[]).find(f=>c.component===f.name);return{...c,component:l}}),s=T.useRef(null),i=Dt({open:!1}),a=Ut((c=!i.open)=>{i.open=c});return o.length===0||!(e!=null&&e.user)?null:d.jsxs(d.Fragment,{children:[d.jsx(Bt,{size:"medium",ref:s,onClick:()=>a(),children:d.jsx(fe,{icon:ko,fontSize:n,style:{transform:"scale(1.08)"}})}),d.jsx(Qt,{open:i.open,onClose:()=>a(!1),anchorEl:s.current,transition:!0,placement:"bottom-end",sx:{zIndex:1600},children:({TransitionProps:c})=>d.jsx(Vt,{onClickAway:l=>{l.preventDefault(),l.stopPropagation(),a(!1)},children:d.jsx(Wt,{...c,timeout:350,children:d.jsxs(Zt,{variant:"outlined",sx:{borderRadius:3,width:350,maxWidth:"90vw",borderColor:A.lineStep,p:2,border:"0 !important",boxShadow:`0px 8px 16px 0px ${A.gray6}, 0px 0px 0px 1px ${A.gray6}`},children:[d.jsx(Gt,{sx:{display:"grid",gridTemplateColumns:"repeat(auto-fill, 100px)",gridAutoRows:"minmax(100px, max-content)",justifyContent:"space-between",maxHeight:350,overflowY:"auto",p:0},children:o.map(l=>{var f;return d.jsx(Jt,{disablePadding:!0,children:d.jsxs(Yt,{href:l.link,sx:{p:1,display:"flex",flexDirection:"column",alignItems:"center",gap:1,width:"100%",height:"100%",borderRadius:2,"&:hover":{backgroundColor:A.surfacePrimarySubtitle}},children:[(f=l==null?void 0:l.component)!=null&&f.did?d.jsx(P,{component:"img",src:`${Xt}/blocklet/logo-bundle/${l.component.did}`,sx:{borderRadius:2,width:50,height:50,objectFit:"contain"}}):d.jsx(fe,{fontSize:50,icon:l.icon||jo,color:A.textSubtitle}),d.jsx(Kt,{sx:{fontSize:"12px",color:A.textBase,textAlign:"center",lineHeight:"normal"},children:en(l.title,t)})]})},l.id)})}),d.jsx(tn,{session:e,children:d.jsx(nn,{variant:"outlined",fullWidth:!0,href:on,sx:{mt:1,borderRadius:2,color:A.textBase,borderColor:A.lineBorderStrong,"&:hover":{color:A.primaryBase,borderColor:A.primaryBase}},children:t==="zh"?"管理":"Manage"})})]})})})})]})}Pe.propTypes={session:u.object.isRequired,locale:u.string,size:u.number};Pe.defaultProps={locale:"en",size:24};const Rt=u.shape({appLogo:u.node,appName:u.string,theme:u.shape({background:u.string}),enableConnect:u.bool,enableLocale:u.bool,navigation:u.arrayOf(u.shape({title:u.oneOfType([u.string,u.object]),link:u.oneOfType([u.string,u.object]),icon:u.string,items:u.arrayOf(u.shape({title:u.oneOfType([u.string,u.object]),link:u.oneOfType([u.string,u.object])}))}))}),Nt=u.shape({showText:u.bool,showRole:u.bool,switchDid:u.bool,switchProfile:u.bool,switchPassport:u.bool,disableLogout:u.bool,onLogin:u.func,onLogout:u.func,onSwitchDid:u.func,onSwitchProfile:u.func,onSwitchPassport:u.func,menu:u.array,menuRender:u.func,dark:u.bool,size:u.number});function re({formattedBlocklet:e,addons:t,sessionManagerProps:n}){var h,g,m,x;const r=T.useContext(tt),{locale:o}=ee()||{},{enableConnect:s=!0,enableLocale:i=!0}=e,a=!!((h=r==null?void 0:r.session)!=null&&h.user);let c=$((g=e==null?void 0:e.navigation)==null?void 0:g.sessionManager,o)||[];c=Lt(c,(x=(m=r==null?void 0:r.session)==null?void 0:m.user)==null?void 0:x.role);const f=(()=>{if(t&&typeof t!="function")return Array.isArray(t)?t:[t];let v=[];if(i&&o&&v.push(d.jsx(rn,{showText:!1},"locale-selector")),s&&r){const k=[];a&&(c?c.slice(0,5):[]).forEach(w=>{k.push({label:w.title,icon:w.icon?d.jsx("iconify-icon",{icon:w.icon,height:24,style:{marginRight:8}}):null,component:"a",href:w.link,key:w.link})}),v.push(d.jsx(Pe,{session:r.session,locale:o},"session-blocklet")),v.push(d.jsx(sn,{session:r.session,locale:o,menu:k,showRole:!0,...n},"session-user"))}return typeof t=="function"&&(v=t(v)||[]),v})();return T.createElement(d.Fragment,null,...Array.isArray(f)?f:[f])}re.propTypes={formattedBlocklet:u.object.isRequired,addons:u.oneOfType([u.func,u.node]),sessionManagerProps:Nt};re.defaultProps={addons:null,sessionManagerProps:{showRole:!0}};const Ot=()=>{const e=cn();T.useEffect(()=>{e.wallet&&an.call("arcHideTopBar","{}")},[e])},Io=e=>{if(!(e!=null&&e.length))return{navItems:[],activeId:null};let t=1;const r=E(e,i=>{var l,f;const a=i.icon?d.jsx(Ce,{icon:i.icon}):null;if(i.items)return{id:`${t++}`,label:i.title,icon:a,children:i.items};let c={};return((l=i.link)!=null&&l.startsWith("http://")||(f=i.link)!=null&&f.startsWith("https://"))&&(c={target:"_blank",rel:"noreferrer"}),{id:`${t++}`,label:d.jsx("a",{href:i.link,...c,children:i.title}),icon:a,link:i.link}},"items"),o=At(r),s=Mt(o.map(i=>i.link));return{navItems:r,activeId:s>=0?o[s].id:null}};function So({meta:e={},addons:t,sessionManagerProps:n={showRole:!0},homeLink:r=X,theme:o,hideNavMenu:s=!1,...i}){var b,w;Ot();const{locale:a}=ee()||{},c=T.useMemo(()=>{const C=Object.assign({},window.blocklet,e);try{return Ae(C)}catch(j){return console.error("Failed to format blocklet info",j,C),C}},[e]);if(!c.appName)return null;const{appLogo:l,appLogoRect:f,theme:p}=c,h=$((b=c==null?void 0:c.navigation)==null?void 0:b.header,a),g=Io(h),{navItems:m,activeId:x}=g,v=typeof t=="function"?C=>t(C,{navigation:g}):t,k=d.jsx(re,{formattedBlocklet:c,addons:v,sessionManagerProps:n});return d.jsx(oe,{theme:o,children:d.jsx(To,{homeLink:r,logo:d.jsx("img",{src:f||l,alt:"logo"}),addons:k,...ot(i,["bordered"]),$bordered:i==null?void 0:i.bordered,$bgcolor:(w=p==null?void 0:p.background)==null?void 0:w.header,children:s||!(m!=null&&m.length)?null:({isMobile:C})=>d.jsx(un,{mode:C?"inline":"horizontal",activeId:x,items:m,className:"header-nav",bgColor:"transparent",textColor:"#777"})})})}const To=M(ln)`
|
|
12
|
+
${({$bgcolor:e})=>`background-color: ${e||"#fff"};`}
|
|
13
|
+
font-family: Inter, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
|
|
14
|
+
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
|
|
15
|
+
.header-logo {
|
|
16
|
+
min-width: 44px;
|
|
17
|
+
}
|
|
18
|
+
${({$bordered:e})=>e?`border-bottom: 1px solid ${A.strokeSep};`:""}
|
|
19
|
+
${e=>e.theme.breakpoints.down("md")} {
|
|
20
|
+
.header-logo {
|
|
21
|
+
min-width: 32px;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
.header-nav {
|
|
25
|
+
.navmenu-sub .navmenu-item {
|
|
26
|
+
min-width: 80px;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
.header-nav.navmenu--horizontal {
|
|
30
|
+
.navmenu-root > .navmenu-sub,
|
|
31
|
+
.navmenu-root > .navmenu-item {
|
|
32
|
+
padding: 16px 4px;
|
|
33
|
+
|
|
34
|
+
.navmenu-sub-container {
|
|
35
|
+
padding-top: 0;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
.navmenu-item-icon > .MuiAvatar-root,
|
|
39
|
+
.navmenu-sub-icon > .MuiAvatar-root {
|
|
40
|
+
width: 20px;
|
|
41
|
+
height: 20px;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
`,Fo=nt(So,{FallbackComponent:rt});function Me({name:e,logo:t,description:n,...r}){if(!e&&!t&&!n)return null;const o=T.isValidElement(t)?t:d.jsx("img",{src:t,alt:e});return d.jsxs(Co,{...r,children:[d.jsxs("div",{children:[t&&d.jsx(P,{component:"a",href:"/",className:"footer-brand-logo",children:o}),e&&d.jsx("div",{className:"footer-brand-name",children:e})]}),n&&d.jsx("div",{className:"footer-brand-desc",children:n})]})}Me.propTypes={name:u.node,logo:u.node,description:u.string};Me.defaultProps={name:"",logo:"",description:""};const Co=M("div")`
|
|
45
|
+
display: flex;
|
|
46
|
+
flex-direction: column;
|
|
47
|
+
font-size: 14px;
|
|
48
|
+
a {
|
|
49
|
+
text-decoration: none;
|
|
50
|
+
color: inherit;
|
|
51
|
+
}
|
|
52
|
+
> div:first-of-type {
|
|
53
|
+
display: flex;
|
|
54
|
+
align-items: center;
|
|
55
|
+
}
|
|
56
|
+
.footer-brand-logo {
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
margin-right: 16px;
|
|
60
|
+
line-height: 1;
|
|
61
|
+
img,
|
|
62
|
+
svg {
|
|
63
|
+
width: auto;
|
|
64
|
+
height: 44px;
|
|
65
|
+
max-height: 44px;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
.footer-brand-name {
|
|
69
|
+
font-size: 16px;
|
|
70
|
+
font-weight: bold;
|
|
71
|
+
}
|
|
72
|
+
.footer-brand-desc {
|
|
73
|
+
margin-top: 16px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
${e=>e.theme.breakpoints.down("sm")} {
|
|
77
|
+
width: auto;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
${e=>e.theme.breakpoints.down("md")} {
|
|
81
|
+
.footer-brand-logo {
|
|
82
|
+
img,
|
|
83
|
+
svg {
|
|
84
|
+
height: 32px;
|
|
85
|
+
max-height: 32px;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
`;function K({links:e,flowLayout:t,...n}){const[r,o]=T.useState(-1);if(!(e!=null&&e.length))return null;const s=e.some(a=>{var c;return(c=a.items)==null?void 0:c.length}),i=({label:a,link:c,icon:l,render:f,props:p})=>{let h=a;return f?h=f({label:a,link:c,props:p}):c&&(h=d.jsx("a",{href:c,"aria-label":`Footer link for ${a}`,...p,children:a})),d.jsxs(d.Fragment,{children:[l&&d.jsx(Ce,{icon:l,size:20,sx:{mr:.5}}),h]})};return d.jsx(Ao,{...n,className:de(n.className,{"footer-links--grouped":s,"footer-links--flow":t}),children:d.jsxs("div",{className:"footer-links-inner",children:[t&&e.map((a,c)=>d.jsx("span",{className:"footer-links-item",children:i(a)},c)),!t&&e.map((a,c)=>{const{items:l}=a,f=c===r;return d.jsxs("div",{className:de("footer-links-group",{"footer-links-group--active":f}),onClick:()=>o(r===c?-1:c),children:[d.jsxs("span",{className:"footer-links-item",children:[i(a),!!(l!=null&&l.length)&&d.jsx("span",{className:"footer-links-group-expand-icon",children:d.jsx(pn,{style:{transform:`rotate(${f?180:0}deg)`}})})]}),!!(l!=null&&l.length)&&d.jsx("div",{className:"footer-links-sub",children:l.map((p,h)=>d.jsx("span",{className:"footer-links-item",children:i(p)},h))})]},c)})]})})}K.propTypes={links:u.arrayOf(u.shape({label:u.string,link:u.string,render:u.func,props:u.object})),flowLayout:u.bool};K.defaultProps={links:[],flowLayout:!1};const Ao=M("div")`
|
|
90
|
+
overflow: hidden;
|
|
91
|
+
color: ${e=>e.theme.palette.grey[600]};
|
|
92
|
+
.footer-links-inner {
|
|
93
|
+
display: flex;
|
|
94
|
+
justify-content: space-between;
|
|
95
|
+
margin: 0 -8px;
|
|
96
|
+
}
|
|
97
|
+
.footer-links-group,
|
|
98
|
+
.footer-links-sub {
|
|
99
|
+
display: flex;
|
|
100
|
+
flex-direction: column;
|
|
101
|
+
}
|
|
102
|
+
.footer-links-sub .footer-links-item {
|
|
103
|
+
color: ${e=>e.theme.palette.grey[900]};
|
|
104
|
+
}
|
|
105
|
+
.footer-links-group-expand-icon {
|
|
106
|
+
display: none;
|
|
107
|
+
position: absolute;
|
|
108
|
+
right: 16px;
|
|
109
|
+
top: 50%;
|
|
110
|
+
transform: translate(0, -50%);
|
|
111
|
+
line-height: 1;
|
|
112
|
+
svg {
|
|
113
|
+
width: auto;
|
|
114
|
+
height: 0.75em;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
.footer-links-item {
|
|
118
|
+
display: inline-flex;
|
|
119
|
+
align-items: center;
|
|
120
|
+
position: relative;
|
|
121
|
+
padding: 4px 8px;
|
|
122
|
+
font-size: 14px;
|
|
123
|
+
}
|
|
124
|
+
&.footer-links--grouped {
|
|
125
|
+
.footer-links-group {
|
|
126
|
+
> .footer-links-item {
|
|
127
|
+
font-weight: bold;
|
|
128
|
+
}
|
|
129
|
+
.footer-links-sub {
|
|
130
|
+
margin-top: 8px;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
a {
|
|
135
|
+
display: inline-block;
|
|
136
|
+
max-width: 150px;
|
|
137
|
+
color: inherit;
|
|
138
|
+
text-decoration: none;
|
|
139
|
+
&:hover {
|
|
140
|
+
text-decoration: underline;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
&.footer-links--flow {
|
|
145
|
+
display: inline-flex;
|
|
146
|
+
.footer-links-inner {
|
|
147
|
+
justify-content: center;
|
|
148
|
+
flex-wrap: wrap;
|
|
149
|
+
margin: 0 -8px;
|
|
150
|
+
.footer-links-item {
|
|
151
|
+
padding: 0 8px;
|
|
152
|
+
}
|
|
153
|
+
.footer-links-item + .footer-links-item::before {
|
|
154
|
+
content: '';
|
|
155
|
+
position: absolute;
|
|
156
|
+
left: 0;
|
|
157
|
+
top: 50%;
|
|
158
|
+
transform: translate(0, -50%);
|
|
159
|
+
height: 1em;
|
|
160
|
+
border-left: 1px solid ${e=>e.theme.palette.grey[400]};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
${e=>e.theme.breakpoints.down("md")} {
|
|
166
|
+
.footer-links-inner {
|
|
167
|
+
flex-direction: column;
|
|
168
|
+
margin: 0;
|
|
169
|
+
}
|
|
170
|
+
.footer-links-sub {
|
|
171
|
+
display: none;
|
|
172
|
+
}
|
|
173
|
+
.footer-links-group {
|
|
174
|
+
position: relative;
|
|
175
|
+
padding: 12px 0;
|
|
176
|
+
.footer-links-item .footer-links-group-expand-icon {
|
|
177
|
+
display: inline-block;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
.footer-links-group + .footer-links-group {
|
|
181
|
+
border-top: 1px solid ${e=>e.theme.palette.grey[200]};
|
|
182
|
+
}
|
|
183
|
+
.footer-links-group--active {
|
|
184
|
+
.footer-links-sub {
|
|
185
|
+
display: flex;
|
|
186
|
+
flex-direction: row;
|
|
187
|
+
flex-wrap: wrap;
|
|
188
|
+
.footer-links-item {
|
|
189
|
+
flex: 0 0 50%;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
.footer-links-item {
|
|
194
|
+
padding-left: 0;
|
|
195
|
+
padding-right: 0;
|
|
196
|
+
font-size: 13px;
|
|
197
|
+
}
|
|
198
|
+
&.footer-links--grouped {
|
|
199
|
+
.footer-links-group {
|
|
200
|
+
> .footer-links-item {
|
|
201
|
+
font-size: 14px;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
&.footer-links--flow {
|
|
207
|
+
.footer-links-inner {
|
|
208
|
+
flex-direction: row;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
`;function Le({items:e,...t}){const n=fn();return e!=null&&e.length?d.jsx(Po,{...t,children:e.map((r,o)=>d.jsx("a",{href:r.link,target:"_blank","aria-label":`Social media icon${r.title?` for ${r.title}`:""}`,rel:"noreferrer",children:d.jsx(Ce,{icon:r.icon||r.title,sx:{bgcolor:n.palette.grey[600],color:"#fff"},size:24,component:"span"})},o))}):null}Le.propTypes={items:u.arrayOf(u.shape({icon:u.string,link:u.string}))};Le.defaultProps={items:null};const Po=M("div")`
|
|
213
|
+
display: inline-flex;
|
|
214
|
+
flex-wrap: wrap;
|
|
215
|
+
align-items: center;
|
|
216
|
+
justify-content: center;
|
|
217
|
+
gap: 20px;
|
|
218
|
+
a {
|
|
219
|
+
color: ${e=>e.theme.palette.grey[400]};
|
|
220
|
+
text-decoration: none;
|
|
221
|
+
&:hover {
|
|
222
|
+
color: ${e=>e.theme.palette.primary.light};
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
${e=>e.theme.breakpoints.down("md")} {
|
|
226
|
+
gap: 12px;
|
|
227
|
+
}
|
|
228
|
+
`;function Re({owner:e,year:t,...n}){return d.jsxs(Mo,{...n,children:["Copyright © ",t," ",e]})}Re.propTypes={owner:u.string,year:u.string};Re.defaultProps={owner:"ArcBlock",year:`${new Date().getFullYear()}`};const Mo=M("p")`
|
|
229
|
+
display: flex;
|
|
230
|
+
align-items: center;
|
|
231
|
+
margin: 0;
|
|
232
|
+
font-size: 13px;
|
|
233
|
+
`;function se({children:e,autoCenter:t,...n}){return e?d.jsx(Lo,{...n,className:de(n.className,{"footer-row-auto-center":t}),children:e}):null}se.propTypes={children:u.any,autoCenter:u.bool};se.defaultProps={children:null,autoCenter:!1};const Lo=M(P)`
|
|
234
|
+
display: flex;
|
|
235
|
+
justify-content: space-between;
|
|
236
|
+
& + & {
|
|
237
|
+
margin-top: 24px;
|
|
238
|
+
}
|
|
239
|
+
&.footer-row-auto-center > *:only-child {
|
|
240
|
+
margin: 0 auto;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
${e=>e.theme.breakpoints.down("md")} {
|
|
244
|
+
align-items: stretch;
|
|
245
|
+
flex-direction: column;
|
|
246
|
+
gap: 16px;
|
|
247
|
+
> * {
|
|
248
|
+
flex: 1 0 100%;
|
|
249
|
+
}
|
|
250
|
+
&.footer-row-auto-center > * {
|
|
251
|
+
margin: 0 auto;
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
`;function Et({elements:e,data:t,...n}){var r;return d.jsx(Ro,{...n,children:d.jsxs(st,{children:[d.jsxs(P,{sx:{display:"flex",flexDirection:{xs:"column",md:"row"},justifyContent:"space-between",alignItems:{xs:"center",md:"space-between"},gap:2,pb:3},children:[d.jsx(P,{children:e.brand}),d.jsx(P,{lineHeight:1,children:e.socialMedia})]}),!!((r=t.navigation)!=null&&r.length)&&d.jsx(P,{sx:{mb:6,pt:3,borderTop:1,borderColor:"grey.200"},children:e.navigation}),d.jsxs(se,{sx:{pt:3,borderTop:1,borderColor:"grey.200"},autoCenter:!0,children:[e.copyright,e.links]})]})})}Et.propTypes={elements:u.shape({brand:u.element,navigation:u.element,socialMedia:u.element,copyright:u.element,links:u.element}).isRequired,data:u.object.isRequired};const Ro=M("div")`
|
|
255
|
+
padding: 32px 0 24px 0;
|
|
256
|
+
.footer-brand-name,
|
|
257
|
+
.footer-brand-desc {
|
|
258
|
+
display: none;
|
|
259
|
+
}
|
|
260
|
+
&& .footer-brand-logo {
|
|
261
|
+
margin-right: 0;
|
|
262
|
+
}
|
|
263
|
+
`;function $t({elements:e,data:t,...n}){return d.jsx(No,{...n,children:d.jsxs(st,{className:"plain-layout-container",children:[!!t.links&&d.jsxs(se,{sx:{width:1},autoCenter:!0,children:[e.copyright,e.links]}),!t.links&&d.jsxs(d.Fragment,{children:[T.cloneElement(e.brand,{name:null,description:null}),e.copyright]})]})})}$t.propTypes={elements:u.shape({brand:u.element,navigation:u.element,socialMedia:u.element,copyright:u.element,links:u.element}).isRequired,data:u.object.isRequired};const No=M("div")`
|
|
264
|
+
padding: 24px 0;
|
|
265
|
+
.plain-layout-container {
|
|
266
|
+
display: flex;
|
|
267
|
+
justify-content: space-between;
|
|
268
|
+
align-items: center;
|
|
269
|
+
flex-wrap: wrap;
|
|
270
|
+
gap: 8px;
|
|
271
|
+
}
|
|
272
|
+
`,_t=[{name:"plain",support:(e,t)=>{var n,r;return!((n=t.navigation)!=null&&n.length)&&!((r=t.socialMedia)!=null&&r.length)},component:$t},{name:"standard",support:()=>!0,component:Et}],Oo=_t.reduce((e,t)=>({...e,[t.name]:t}),{});function Ne(e){var x,v;const{brand:t,navigation:n,socialMedia:r,copyright:o,links:s,layout:i,...a}=e,c=()=>t?d.jsx(Me,{...t}):null,l=()=>n!=null&&n.length?d.jsx(K,{links:n}):null,f=()=>r!=null&&r.length?d.jsx(Le,{items:r}):null,p=()=>{const k=(o==null?void 0:o.owner)||(t==null?void 0:t.name);return k?d.jsx(Re,{owner:k,year:(o==null?void 0:o.year)||void 0}):null},h=()=>s!=null&&s.length?d.jsx(K,{flowLayout:!0,links:s}):null,g={brand:c(),navigation:l(),socialMedia:f(),copyright:p(),links:h()};let m=null;if(i==="auto"?m=_t.find(k=>k.support(g,e)).component:m=(x=Oo[i])==null?void 0:x.component,!m)throw new Error(`layout ${i} is not supported.`);return d.jsxs(P,{position:"relative",...a,children:[d.jsx(m,{elements:g,data:e}),d.jsx(P,{position:"absolute",right:16,bottom:0,fontSize:12,sx:{color:"transparent","::selection":{background:"#000",color:"#fff"}},children:(v=window==null?void 0:window.blocklet)==null?void 0:v.version})]})}Ne.propTypes={brand:u.shape({name:u.node,description:u.string,logo:u.node}),navigation:u.arrayOf(u.shape({label:u.node,link:u.string})),socialMedia:u.arrayOf(u.shape({icon:u.node,link:u.string})),copyright:u.shape({owner:u.string,year:u.oneOfType([u.string,u.number])}),links:u.arrayOf(u.shape({label:u.node,link:u.string})),layout:u.oneOf(["auto","standard","plain"])};Ne.defaultProps={brand:null,navigation:null,copyright:null,socialMedia:null,links:null,layout:"auto"};function Oe({meta:e,theme:t,...n}){var m,x,v,k;const{locale:r}=ee()||{},o=T.useMemo(()=>{const b=Object.assign({},window.blocklet,e);try{return Ae(b)}catch(w){return console.error("Failed to format blocklet info",w,b),b}},[e]);if(!o.appName)return null;const{appLogo:s,appLogoRect:i,appName:a,appDescription:c,description:l,theme:f,copyright:p}=o,h={footerNav:$((m=o==null?void 0:o.navigation)==null?void 0:m.footer,r)||[],socialMedia:$((x=o==null?void 0:o.navigation)==null?void 0:x.social,r)||[],links:$((v=o==null?void 0:o.navigation)==null?void 0:v.bottom,r)||[]},g={brand:{name:a,description:c||l,logo:i||s},navigation:E(h.footerNav,b=>({...b,label:b.title,link:b.link}),"items"),copyright:p,socialMedia:h.socialMedia,links:h.links.map(b=>({...b,label:b.title}))};return d.jsx(oe,{theme:t,children:d.jsx(Eo,{...g,...ot(n,["bordered"]),$bordered:n==null?void 0:n.bordered,$bgcolor:(k=f==null?void 0:f.background)==null?void 0:k.footer})})}Oe.propTypes={meta:Rt,theme:u.object};Oe.defaultProps={meta:{},theme:null};const Eo=M(Ne)`
|
|
273
|
+
${({$bordered:e})=>`border-top: 1px solid ${e?A.strokeSep:"#eee"};`}
|
|
274
|
+
color: ${e=>e.theme.palette.grey[600]};
|
|
275
|
+
${({$bgcolor:e})=>e&&`background-color: ${e};`}
|
|
276
|
+
font-family: Inter, Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
|
|
277
|
+
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
|
|
278
|
+
`,zo=nt(Oe,{FallbackComponent:rt});function qt({meta:e,fallbackUrl:t,invalidPathFallback:n,headerAddons:r,sessionManagerProps:o,links:s,...i}){var C;Ot();const a=T.useContext(tt),c=(C=a==null?void 0:a.session)==null?void 0:C.user,l=c==null?void 0:c.role,{locale:f}=ee()||{},p=T.useMemo(()=>{const j=Object.assign({},window.blocklet,e);try{return Ae(j)}catch(y){return console.error("Failed to format blocklet info",y,j),j}},[e]),{localizedNav:h,flattened:g,matchedIndex:m}=T.useMemo(()=>{var L;let j=$((L=p==null?void 0:p.navigation)==null?void 0:L.dashboard,f)||[];j=Lt(j,l),j=E(j,S=>({title:S.title,url:S.link,icon:S.icon?d.jsx("iconify-icon",{height:"100%",width:"100%",icon:S.icon}):null,external:!0,children:S.items}),"items");const y=At(j).filter(S=>!!S.url),I=Mt(y.map(S=>S.url));return I!==-1&&(y[I].active=!0),{localizedNav:j,flattened:y,matchedIndex:I}},[p,f,l]),x=typeof s=="function"?s(h):[...h,...s];if(T.useLayoutEffect(()=>{c&&!(g!=null&&g.length)&&t&&(window.location.href=t)},[t]),T.useLayoutEffect(()=>{c&&(g!=null&&g.length)&&m===-1&&n&&n()},[n,g,m]),!p.appName)return null;const{appLogo:v,appLogoRect:k,appName:b}=p,w=d.jsx(re,{formattedBlocklet:p,addons:r,sessionManagerProps:o});return d.jsx(dn,{title:b,fullWidth:!0,sidebarWidth:128,legacy:!1,links:x,...i,headerProps:{homeLink:X,logo:d.jsx("img",{src:k||v,alt:"logo"}),addons:w,...i.headerProps}})}qt.propTypes={meta:Rt,fallbackUrl:u.string,invalidPathFallback:u.func,headerAddons:u.oneOfType([u.func,u.node]),sessionManagerProps:Nt,links:u.oneOfType([u.array,u.func])};qt.defaultProps={meta:{},fallbackUrl:X,invalidPathFallback:null,headerAddons:void 0,sessionManagerProps:{showRole:!0,onLogout:()=>{window.location.href=X}},links:[]};export{qt as D,zo as F,Fo as H};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as p,c as ue,u as J,e as Pe,aE as Tr,j as e,F as T,aF as ln,aG as Mn,aH as Er,aI as cn,aJ as _t,aK as he,aL as xe,P as u,n as V,q as N,ad as ne,aM as dn,aN as Pr,aO as Ar,aP as Ir,A as le,Q as un,m as O,U as te,ax as pe,C as Y,J as ge,B as G,aQ as zn,K as de,O as ee,f as Dt,R as Bn,aR as Lr,aS as Or,aa as kr,aT as Fr,aU as Nr,aV as Ur,z as Wn,W as mn,T as fn,k as Q,aW as Rt,a as xt,S as ie,b as Je,aX as qn,aY as Hn,aZ as Kn,a_ as $r,a2 as Mr,a$ as zr,b0 as Br,b1 as Wr,b2 as qr,b3 as Hr,b4 as ze,a8 as Kr,d as Gn,M as Gr,b5 as Yr,aD as ut,a9 as mt,a6 as ft,b6 as Vr,a7 as yt,i as Yn,N as Xr,b7 as Qr,b8 as we,b9 as _e,ba as Jr,bb as Zr,D as Vn,w as vt,bc as ei,h as ti,at as pn,bd as ni,be as gn,aj as ri,bf as ii,bg as oi,bh as ai}from"./index-
|
|
1
|
+
import{r as p,c as ue,u as J,e as Pe,aE as Tr,j as e,F as T,aF as ln,aG as Mn,aH as Er,aI as cn,aJ as _t,aK as he,aL as xe,P as u,n as V,q as N,ad as ne,aM as dn,aN as Pr,aO as Ar,aP as Ir,A as le,Q as un,m as O,U as te,ax as pe,C as Y,J as ge,B as G,aQ as zn,K as de,O as ee,f as Dt,R as Bn,aR as Lr,aS as Or,aa as kr,aT as Fr,aU as Nr,aV as Ur,z as Wn,W as mn,T as fn,k as Q,aW as Rt,a as xt,S as ie,b as Je,aX as qn,aY as Hn,aZ as Kn,a_ as $r,a2 as Mr,a$ as zr,b0 as Br,b1 as Wr,b2 as qr,b3 as Hr,b4 as ze,a8 as Kr,d as Gn,M as Gr,b5 as Yr,aD as ut,a9 as mt,a6 as ft,b6 as Vr,a7 as yt,i as Yn,N as Xr,b7 as Qr,b8 as we,b9 as _e,ba as Jr,bb as Zr,D as Vn,w as vt,bc as ei,h as ti,at as pn,bd as ni,be as gn,aj as ri,bf as ii,bg as oi,bh as ai}from"./index-CFTRS-GK.js";import{T as si}from"./index-DrMB4rSY.js";import{d as li}from"./ArrowDropDown-3OaPoerb.js";import{u as Tt,C as re,a as hn}from"./index.esm-BM1OQakW.js";import{S as Ce}from"./switch-control-CsvNZTUW.js";import{d as Xn,i as ci}from"./is-path-prefix-equal-PKFqxZa9.js";import{T as K,F as di}from"./TextField-B39sPZXj.js";import{D as Qn,g as ui}from"./index-CesM9WmA.js";import{d as Jn}from"./Link-sIQTJwYN.js";import{d as Ae}from"./Delete-MPWwMdcn.js";import{C as Et}from"./delete-confirm-C3JC6xgi.js";import{I as Be}from"./index-DJBQ8Jd6.js";import{s as mi}from"./logo-BKA11TRi.js";import{_ as fi}from"./useLocalStorage-D6n51kY7.js";import{L as pi}from"./LoadingButton-drC9HAVN.js";import{C as gi,d as Zn}from"./Public-D2nGfl8H.js";import{d as Pt}from"./Add-BEm8ulfI.js";import{a as hi,B as er,D as xn,R as xi,b as yi}from"./url-evaluation-Dd7vhNbh.js";import{d as vi}from"./CheckCircle-Us9aCLov.js";import{d as bi}from"./ExpandMore-gvSelbRO.js";import{d as ji}from"./ChevronRight-ryUS-NtQ.js";import{d as Ci}from"./MoreVert-D4QAjvea.js";import{d as tr}from"./Edit-DnPbFMup.js";import{d as Si,a as nr}from"./Https-BzkVHgKv.js";import{W as $e}from"./tag-bf0aUNMx.js";import{w as wi}from"./withStyles-m0FTPdbL.js";import{S as _i}from"./Slider-BPK8-y0g.js";import"./index-CDMGov97.js";import"./Select-Cz2z_MUs.js";import"./InputLabel-C0hP58zr.js";import"./FilterList-O5N3orby.js";import"./useThemeProps-B8tYkkPR.js";import"./LastPage-ChFfjNWA.js";import"./index-BEbWb2qD.js";import"./redux-DQoY5G1e.js";import"./Search-DyPwa94B.js";import"./index-gUAIdSaO.js";import"./click-to-copy-nMxQLC3C.js";import"./shorten-label-WXMi3uib.js";const fe="Dashboard",rr=p.createContext({}),{Provider:Di,Consumer:ds}=rr,yn=[fe,T.DOMAIN_FOR_IP_SITE,T.DOMAIN_FOR_IP_SITE_REGEXP],Ri=(t,n)=>{if(t.name===T.DOMAIN_FOR_DEFAULT_SITE)return-1;if(n.name===T.DOMAIN_FOR_DEFAULT_SITE)return 1;const r=yn.includes(t.name),i=yn.includes(n.name);return r&&i?cn(t.name,n.name):r?-1:i?1:cn(t.name,n.name)},Ti=({sites:t,nodePort:n})=>{const r=window.location.host,o=(t||[]).map(a=>{const{id:l,rules:c=[],corsAllowedOrigins:h=[]}=a;let{domain:d,domainAliases:m}=a;m=m||[],[T.DOMAIN_FOR_IP_SITE,T.DOMAIN_FOR_IP_SITE_REGEXP].includes(d)&&(d=fe,m.find(f=>f.value===r)||m.unshift({protected:!1,value:r}));const g={id:l,name:d,type:"domain",items:[],domainAliases:m,isProtected:a.isProtected,corsAllowedOrigins:h};return(c||[]).forEach(f=>{const{id:y,isProtected:b,from:{pathPrefix:v},to:C}=f;if(C.type===T.ROUTING_RULE_TYPES.BLOCKLET){let R="";Number.parseInt(C.port,10)===Number.parseInt(n,10)?(R="Blocklet Server Dashboard",C.type=T.ROUTING_RULE_TYPES.DAEMON):R=C.did,g.items.push({id:y,name:ln(v||"/"),title:R,type:"rule",isProtected:b,pathPrefix:v,to:C})}else g.items.push({id:y,pathPrefix:v,name:ln(v||"/"),title:"Blocklet Server Dashboard",type:"rule",isProtected:b,to:C})}),g.items=Mn(g.items,f=>f.name),g}).sort(Ri),s=o.reduce((a,l)=>{let{name:c}=l;return c.endsWith(T.BLOCKLET_SITE_GROUP_SUFFIX)&&([c]=c.split(".")),a[c]={...l,rules:l.items},a},{});return{sites:o,siteMap:s}},Ei=({did:t,domain:n,mountPoint:r,siteMap:i,params:o}={})=>{if(!i)return null;const s=i[t];if(!s)return null;const a=n||(s.domainAliases||[])[0];if(!a)return null;let l=r;if(!l){const c=s.rules.filter(h=>!h.name.startsWith(T.WELLKNOWN_PATH_PREFIX))[0];l=c?c.name:"/"}return _t(a.value,l,o)},Pi=({did:t,mountPoint:n,siteMap:r,params:i}={})=>{if(!r)return[];const o=r[t];if(!o)return[];const s=o.domainAliases||[];if(!s.length)return[];let a=n;if(!a){const l=o.rules.filter(c=>!c.name.startsWith(T.WELLKNOWN_PATH_PREFIX))[0];a=l?l.name:"/"}return s.map(l=>_t(l.value,a,i))},Ai=t=>{const n=t.map(i=>i.domain).filter(i=>![T.DOMAIN_FOR_IP_SITE_REGEXP,T.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 vn({children:t}){const n=ue(),{info:r}=J(),[i,o]=p.useState([]),[s,a]=p.useState([]),[l,c]=p.useState([]),h=Pe(async()=>{const{sites:S}=await n.getRoutingSites({input:{snapshotHash:""}}),E=S||[];await Promise.all(E.map(async w=>(w.domainAliases=await Tr(w.domainAliases,{getIP:Er}),w)));const L=Ai(E);o(E),a(L.domains),c([window.location.hostname,...L.domains,...L.domainsAliases.map(w=>w.value)])},[r]),d=(S,E)=>{o(L=>L.map(w=>w.id===S?E.domain?E:{...E,domain:w.domain}:w))},m=S=>n.takeRoutingSnapshot({input:{dryRun:!1,message:encodeURIComponent(S)}}),g=async S=>{const E=await n.addRoutingSite({input:S});o(i.concat(E.site))},f=async(S,E)=>{const L=await n.updateRoutingSite({input:{id:S,...E}});if(L.site&&L.site.id){const w=i.findIndex(P=>P.id===L.site.id);w!==-1&&(i.splice(w,1,L.site),o([].concat(i)))}},y=async S=>{await n.deleteRoutingSite({input:{id:S}}),o(i.filter(E=>E.id!==S))},b=async(S,E,L)=>{const w=await n.addDomainAlias({input:{id:S,domainAlias:E,force:L}});d(S,w.site)},v=async(S,E)=>{const L=await n.deleteDomainAlias({input:{id:S,domainAlias:E}});d(S,L.site)},C=async(S,E)=>{const{site:L}=await n.addRoutingRule({input:{id:S,rule:E}});d(S,L)},R=async(S,E)=>{const{site:L}=await n.updateRoutingRule({input:{id:S,rule:E}});d(S,L)},j=async(S,E)=>{const{site:L}=await n.deleteRoutingRule({input:{id:S,ruleId:E}});d(S,L)},x={loading:h.loading,error:h.error,refresh:h.retry,api:n,actions:{addSite:g,updateSite:f,deleteSite:y,addDomainAlias:b,deleteDomainAlias:v,takeSnapshot:m,addRule:C,updateRule:R,deleteRule:j}},{sites:I,siteMap:D}=Ti({sites:i,nodePort:r.port});return x.sites=I,x.siteMap=D,x.domains=s,x.allDomains=l,x.getBlockletUrl=({did:S,domain:E,mountPoint:L,params:w})=>Ei({did:S,domain:E,mountPoint:L,siteMap:x.siteMap,params:w}),x.getBlockletUrls=({did:S,mountPoint:E,params:L})=>Pi({did:S,mountPoint:E,siteMap:x.siteMap,params:L}),e.jsx(Di,{value:{routing:x},children:t})}function ae(){const{routing:t}=p.useContext(rr);return t}function At(t){const n=[T.DOMAIN_FOR_IP_SITE_REGEXP,T.DOMAIN_FOR_DEFAULT_SITE,T.DOMAIN_FOR_IP_SITE];return typeof window<"u"&&typeof window.location<"u"&&n.push(window.location.hostname),n.includes(t)}var It={},Ii=xe;Object.defineProperty(It,"__esModule",{value:!0});var ir=It.default=void 0,Li=Ii(he()),Oi=e;ir=It.default=(0,Li.default)((0,Oi.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");function ki(){return null}function Lt({confirm:t}){const[n,r]=p.useState(null),{t:i}=N(),o=()=>{r(null)},s=async l=>{if(l){let c=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";c==="/"?dn.push(`${l.pathname}`):(c.endsWith("/")&&(c=c.substring(0,c.length-1)),dn.push(`${c}${l.pathname}`)),window.location.reload()}},a=(l,...c)=>{let h=typeof t=="function"?t(l,...c):t;return h?(typeof h=="string"&&(h={description:h}),r({title:i("common.noticeTitle"),description:i("common.leavePageTip"),confirm:i("common.confirm"),cancel:i("common.cancel"),onConfirm:()=>s(l),onCancel:()=>o(),...h}),!1):!0};return e.jsxs(Fi,{children:[e.jsx(ki,{message:a}),n&&e.jsx(ne,{title:n.title,description:n.description,confirm:n.confirm,cancel:n.cancel,params:n.params,onConfirm:n.onConfirm,onCancel:n.onCancel})]})}Lt.propTypes={confirm:u.oneOfType([u.object,u.string,u.func])};Lt.defaultProps={confirm:null};const Fi=V.div`
|
|
2
2
|
margin-bottom: 24px;
|
|
3
3
|
.top-btns-alert {
|
|
4
4
|
@media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
|
|
@@ -118,7 +118,7 @@ import{r as p,c as ue,u as J,e as Pe,aE as Tr,j as e,F as T,aF as ln,aG as Mn,aH
|
|
|
118
118
|
display: flex;
|
|
119
119
|
flex-direction: column;
|
|
120
120
|
margin-top: 32px;
|
|
121
|
-
`,sr=p.createContext({}),{Provider:so,Consumer:ds}=sr;function lr({children:t,domains:n}){const r=ue(),i=JSON.stringify(n),[o,s]=p.useState({}),a=p.useMemo(()=>n.filter(f=>Rt(f)),[i]);xt(T.EVENTS.DOMAIN_STATUS,f=>{f&&s(y=>({...y,[f.domain]:{...y[f.domain],...f}}))});const{domainsAccessibility:l,recommendedDomain:c}=hi(a),h=p.useMemo(()=>{const f={...o};return Object.keys(l).forEach(y=>{const b=f[y]||{};f[y]={...b,...l[y]}}),f},[o,l]),d=()=>{a.length>0&&r.checkDomains({input:{domains:a}})},m=f=>{f&&r.checkDomains({input:{domains:[f]}})};p.useEffect(()=>{d()},[a]);const g={refresh:d,updateStatus:m,api:r,status:h,recommendedDomain:c,recommendedDomainStatus:h[c]};return e.jsx(so,{value:g,children:t})}lr.propTypes={children:u.any.isRequired,domains:u.array.isRequired};function tt(){const{status:t,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}=p.useContext(sr);return{status:t,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}}const lo=t=>(Q(t,"meta.interfaces")||[]).find(r=>r.type===Je.BLOCKLET_INTERFACE_TYPE_WEB);function Ie({params:t,blocklets:n,setParams:r,setError:i,serviceTypes:o}){const{t:s}=N(),a={301:s("common.redirectPermanently"),302:s("common.redirectTemporary"),307:s("common.redirectTemporary"),308:s("common.redirectPermanently")},l=Mn(n,d=>d.meta.name),c=(d,m)=>{if(!m)return{};let{port:g}=d;m&&d.ports&&m.port&&(d.ports[m.port]&&(g=d.ports[m.port]),d.ports[m.port.internal]&&(g=d.ports[m.port.internal]));let{pathPrefix:f}=t;return m&&m.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&(f=m.prefix),{port:g,pathPrefix:f}},h=d=>{const m=l.find(f=>f.meta.did===d),g=lo(m);return{...c(m,g),interfaceName:g?g.name:""}};return p.useEffect(()=>{!t.interfaceName&&t.type===T.ROUTING_RULE_TYPES.BLOCKLET&&r({...t,...h(t.did),__disableConfirm:!1})},[]),e.jsxs(e.Fragment,{children:[e.jsx(K,{select:!0,label:s("router.domain.add.type"),autoComplete:"off",variant:"outlined",name:"type","data-cy":"domain-add-type",fullWidth:!0,value:t.type,onChange:d=>{i(""),r({...t,type:d.target.value,__disableConfirm:!1})},style:{marginBottom:32},SelectProps:{},children:o.map(({name:d,value:m})=>e.jsx(ie,{value:m,children:d},m))}),t.type===T.ROUTING_RULE_TYPES.BLOCKLET&&e.jsxs(K,{select:!0,label:s("router.domain.add.blocklet"),autoComplete:"off",variant:"outlined",name:"did","data-cy":"domain-blocklet-select",fullWidth:!0,value:t.did,onChange:d=>{r({...t,...h(d.target.value),did:d.target.value,__disableConfirm:!1})},style:{marginBottom:32},children:[l.map(d=>e.jsxs(ie,{value:d.meta.did,children:[`${d.meta.name} v${d.meta.version}`,e.jsx("span",{style:{marginLeft:8},children:e.jsx(er,{status:d.status,progress:d.progress})})]},d.meta.did)),n.length===0&&e.jsx(ie,{value:"",children:s("common.empty")},"empty")]}),t.type===T.ROUTING_RULE_TYPES.REDIRECT&&[e.jsx(K,{select:!0,label:s("router.domain.add.redirect"),autoComplete:"off",variant:"outlined",name:"type",fullWidth:!0,value:t.redirectCode,onChange:d=>r({...t,redirectCode:d.target.value}),style:{marginBottom:32},SelectProps:{},children:Object.keys(a).map(d=>e.jsx(ie,{value:d,children:`${a[d]} - ${d}`},d))}),e.jsx(K,{label:s("common.redirectUrl"),autoComplete:"off",variant:"outlined",name:"url",inputProps:{"data-cy":"redirect-url-input"},fullWidth:!0,autoFocus:!0,value:t.url,helperText:s("router.urlHelperText"),style:{marginBottom:32},onChange:d=>{r({...t,url:d.target.value,__disableConfirm:!d.target.value.trim()}),d.target.value.trim()?i(""):i(s("router.validation.redirectUrlRequired"))}})]]})}Ie.propTypes={params:u.object,blocklets:u.array,serviceTypes:u.array,setParams:u.func,setError:u.func};Ie.defaultProps={params:{},blocklets:[],serviceTypes:[{name:"Blocklet",value:T.ROUTING_RULE_TYPES.BLOCKLET},{name:"Redirect",value:T.ROUTING_RULE_TYPES.REDIRECT},{name:"Default - User will see the 404 page",value:T.ROUTING_RULE_TYPES.NONE}],setParams:()=>{},setError:()=>{}};const cr=(t,n)=>{if(t.type===T.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===T.ROUTING_RULE_TYPES.BLOCKLET&&!t.did)return new Error(n("router.validation.didRequired"));return null},Te=(t,n)=>t?t.endsWith(T.DEFAULT_IP_DOMAIN_SUFFIX)?n("router.domain.validate.suffixTip",{suffix:T.DEFAULT_IP_DOMAIN_SUFFIX}):null:n("router.domain.validate.emptyTip"),co=(t,n)=>{const r=cr(t,n);if(r)return r;const i=Te(t.domain,n);return i?new Error(i):null},We=(t,n)=>{const r=cr(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")))},dr=({params:t,blocklets:n,blocklet:r,locale:i="en"})=>{if(r){let a=(r.children||[]).find(l=>ci(l.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 s=o.meta.interfaces.find(a=>a.type==="web");return s&&s.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&t.pathPrefix!==s.prefix?{zh:`该 blocklet 只能挂载在 ${s.prefix}`,en:`This blocklet can only be mounted on ${s.prefix}`}[i]:""},$t=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 nt({blocklets:t,onActivate:n=()=>{},children:r}){const{t:i}=N(),{actions:o}=ae(),{info:s}=J(),[a,l]=p.useState(!1),[c,h]=p.useState(null),d=()=>{l(!1),h(null)},m=async y=>{l(!0);const b={from:{pathPrefix:"/"},to:{type:y.type}},v={domain:y.domain.trim()===s.ip?"":y.domain.trim()};if(y.type===T.ROUTING_RULE_TYPES.BLOCKLET){const C=t.find(j=>j.meta.did===y.did),R=Q(C,"meta.interfaces",[]).find(j=>j.name===y.interfaceName);R&&R.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&(b.from.pathPrefix=R.prefix),b.to.port=y.port,b.to.did=y.did,b.to.interfaceName=y.interfaceName,v.rules=[b]}else y.type===T.ROUTING_RULE_TYPES.REDIRECT&&(b.to.url=y.url,b.to.redirectCode=y.redirectCode,v.rules=[b]);await o.addSite(v),l(!1),h(null)},g={title:i("router.domain.addSite"),description:(y,b,v)=>{const C=R=>{const j=R.__disableConfirm||!!co(R,i);b({...R,__disableConfirm:j})};return e.jsxs(O,{component:"div",children:[e.jsx(K,{label:i("router.domain.add.description"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:y.domain,style:{marginTop:16,marginBottom:32},inputProps:{"data-cy":"domain-name-input"},onChange:R=>{const j=R.target.value.trim(),x=Te(j,i);C({...y,domain:R.target.value,__disableConfirm:!!x}),v(x||"")}}),e.jsx(Ie,{blocklets:t,params:y,setParams:C,setError:v})]})},confirm:i("router.domain.add.confirm"),cancel:i("router.domain.add.cancel"),params:{domain:"",did:$t(t),port:"",interfaceName:"",type:T.ROUTING_RULE_TYPES.BLOCKLET,redirectCode:302,__disableConfirm:!0},onConfirm:m,onCancel:d},f=y=>{y.stopPropagation(),h(g)||n()};return p.useEffect(()=>{const{searchParams:y}=new URL(window.location.href);y.get("fromDid")&&h(g)},[]),e.jsxs(e.Fragment,{children:[typeof r=="function"?r({loading:a,open:f}):e.jsxs(ie,{onClick:f,className:"rule-action","data-cy":"action-add-domain",children:[a?e.jsx(Y,{size:16}):e.jsx(Zn,{style:{fontSize:18,marginRight:5}}),i("router.domain.add.title")]}),c&&e.jsx(ne,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}nt.propTypes={blocklets:u.array,children:u.any,onActivate:u.func};nt.defaultProps={onActivate:()=>{},children:null,blocklets:[]};var Mt={},uo=xe;Object.defineProperty(Mt,"__esModule",{value:!0});var ur=Mt.default=void 0,mo=uo(he()),fo=e;ur=Mt.default=(0,mo.default)((0,fo.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error");var zt={},po=xe;Object.defineProperty(zt,"__esModule",{value:!0});var mr=zt.default=void 0,go=po(he()),ho=e;mr=zt.default=(0,go.default)((0,ho.jsx)("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"}),"Storage");var Bt={},xo=xe;Object.defineProperty(Bt,"__esModule",{value:!0});var fr=Bt.default=void 0,yo=xo(he()),vo=e;fr=Bt.default=(0,yo.default)((0,vo.jsx)("path",{d:"m19 15-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9z"}),"SubdirectoryArrowRight");function Sn(t){const{t:n}=N(),{actions:r}=ae(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,name:c}=t;if(At(c))return null;const h=()=>{o(!1),a(null)},d=async()=>{o(!0),await r.deleteSite(l),o(!1),a(null)},m={title:n("router.domain.delete.title"),description:n("router.domain.delete.description",{name:`<b>${c}</b>`}),confirmPlaceholder:n("router.domain.delete.confirm_desc",{name:c}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:d,onCancel:h,keyName:c},g=f=>{f.stopPropagation(),a(m)||t.onActivate()};return e.jsxs(e.Fragment,{children:[e.jsxs(ie,{onClick:g,className:"rule-action","data-cy":"action-delete-domain",children:[i?e.jsx(Y,{size:16}):e.jsx(Ae,{style:{fontSize:18,marginRight:5}}),n("router.domain.delete.title")]}),s&&e.jsx(Et,{keyName:s.keyName,title:s.title,description:s.description,confirmPlaceholder:s.confirmPlaceholder,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}function qe({id:t,blocklets:n,onActivate:r=()=>{},onRuleAdded:i=()=>{},children:o,teamDid:s}){const{t:a}=N(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null),g=()=>{h(!1),m(null)},f=async v=>{const C=await We(v,a);if(C)throw C;h(!0);const R={from:{pathPrefix:Hn(v.pathPrefix)},to:{type:v.type}};v.type===T.ROUTING_RULE_TYPES.BLOCKLET?(R.to.port=v.port,R.to.did=v.did,R.to.interfaceName=v.interfaceName):v.type===T.ROUTING_RULE_TYPES.REDIRECT&&(R.to.url=v.url.trim(),R.to.redirectCode=v.redirectCode),await l.addRule(t,R,s),m(null),h(!1),i()},y={title:a("router.rule.add.title"),description:(v,C,R)=>{const j=x=>{if(R(null),We(x,a)){C({...x,__disableConfirm:!0});return}C({...x})};return e.jsxs(O,{component:"div",children:[e.jsx(K,{label:a("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:v.helperText||a("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:v.pathPrefix,onChange:x=>{let I=!1;const D=dr({params:{...v,pathPrefix:x.target.value},blocklets:n});R(D),v.type===T.ROUTING_RULE_TYPES.BLOCKLET&&D&&(I=!0),v.type===T.ROUTING_RULE_TYPES.REDIRECT&&!v.url&&(I=!0),x.target.value.trim()||(I=!0,R(a("router.validation.pathPrefixRequired"))),I||R("");const S=a("common.slugifyHint",{value:qn(x.target.value)});C({...v,pathPrefix:x.target.value,helperText:S,__disableConfirm:I})}}),e.jsx(Ie,{blocklets:n,params:v,setParams:j,setError:R})]})},confirm:a("router.rule.add.confirm"),cancel:a("common.cancel"),params:{pathPrefix:"",type:T.ROUTING_RULE_TYPES.BLOCKLET,did:$t(n),port:"",interfaceName:"",redirectCode:302,__disableConfirm:!0},onConfirm:f,onCancel:g},b=v=>{v.stopPropagation(),m(y)||r()};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:c,open:b}):e.jsxs(ie,{onClick:b,className:"rule-action","data-cy":"action-add-rule",children:[c?e.jsx(Y,{size:16}):e.jsx(Jn,{style:{fontSize:18,marginRight:5}}),a("router.rule.add.title")]}),d&&e.jsx(ne,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}qe.propTypes={id:u.string.isRequired,blocklets:u.array,children:u.any,onActivate:u.func,onRuleAdded:u.func,teamDid:u.string};qe.defaultProps={onActivate:()=>{},onRuleAdded:()=>{},children:null,blocklets:[],teamDid:""};function Wt(t){const{t:n}=N(),{actions:r}=ae(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,parent:{id:c},name:h,children:d,onActivate:m,teamDid:g}=t,f=()=>{o(!1),a(null)},y=async()=>{o(!0),await r.deleteRule(c,l,g),o(!1),a(null)},b={keyName:h,title:n("router.rule.delete.title"),description:n("router.rule.delete.description",{name:`<b>${h}</b>`}),confirmPlaceholder:n("router.rule.delete.confirm_desc",{name:h}),confirm:n("common.delConfirm"),cancel:n("router.rule.delete.cancel"),onConfirm:y,onCancel:f},v=C=>{C.stopPropagation(),a(b)||m()};return e.jsxs(e.Fragment,{children:[typeof d=="function"?d({loading:i,open:v}):e.jsxs(ie,{onClick:v,className:"rule-action","data-cy":"action-delete-rule",children:[i?e.jsx(Y,{size:16}):e.jsx(Ae,{style:{fontSize:18,marginRight:5}}),n("router.rule.delete.title")]}),s&&e.jsx(Et,{keyName:s.keyName,title:s.title,description:s.description,confirmPlaceholder:s.confirmPlaceholder,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}Wt.propTypes={id:u.string.isRequired,name:u.string.isRequired,parent:u.object.isRequired,children:u.any,onActivate:u.func,teamDid:u.string};Wt.defaultProps={onActivate:()=>{},children:null,teamDid:""};function qt(t){const{id:n,name:r,did:i,parent:o,blocklets:s,to:a,children:l,onActivate:c,teamDid:h}=t,{t:d}=N(),{actions:m}=ae(),[g,f]=p.useState(!1),[y,b]=p.useState(null),v=()=>{f(!1),b(null)},C=async x=>{const I=await We(x,d);if(I)throw I;f(!0);const D={id:n,from:{pathPrefix:Hn(x.pathPrefix)},to:{type:x.type}};x.type===T.ROUTING_RULE_TYPES.BLOCKLET?(D.to.port=x.port,D.to.did=x.did,D.to.interfaceName=x.interfaceName):x.type===T.ROUTING_RULE_TYPES.REDIRECT&&(D.to.url=x.url,D.to.redirectCode=x.redirectCode),await m.updateRule(o.id,D,h),b(null),f(!1)},R={title:d("router.rule.update.title"),description:(x,I,D)=>{const S=E=>{if(We(E,d)){I({...E,__disableConfirm:!0});return}I({...E})};return e.jsxs(O,{component:"div",children:[e.jsx(K,{label:d("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:x.helperText||d("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:x.pathPrefix,onChange:E=>{let L=!1;const w=dr({params:{...x,pathPrefix:E.target.value},blocklets:s});x.type===T.ROUTING_RULE_TYPES.BLOCKLET&&w&&(L=!0,D(w)),x.type===T.ROUTING_RULE_TYPES.REDIRECT&&!x.url&&(L=!0),E.target.value.trim()||(L=!0,D(d("router.validation.pathPrefixRequired"))),L||D("");const P=d("common.slugifyHint",{value:qn(E.target.value)});I({...x,pathPrefix:E.target.value,helperText:P,__disableConfirm:L})}}),e.jsx(Ie,{blocklets:s,params:x,setParams:S,setError:D})]})},confirm:d("router.rule.update.confirm"),cancel:d("router.rule.update.cancel"),color:"primary",params:{pathPrefix:r==="/"?r:r.replace(/^\/+/,"").replace(/\/+$/,""),type:a.type||T.ROUTING_RULE_TYPES.BLOCKLET,did:i||$t(s),port:a.port||"",interfaceName:a.interfaceName||"",redirectCode:a.redirectCode||302,url:a.url||"",__disableConfirm:!1},onConfirm:C,onCancel:v},j=x=>{x.stopPropagation(),b(R)||c()};return e.jsxs(e.Fragment,{children:[typeof l=="function"?l({loading:g,open:j}):e.jsxs(ie,{onClick:j,className:"rule-action","data-cy":"action-update-rule",children:[g?e.jsx(Y,{size:16}):e.jsx(tr,{style:{fontSize:18,marginRight:5}}),d("router.rule.update.title")]}),y&&e.jsx(ne,{title:y.title,description:y.description,confirm:y.confirm,color:y.color,cancel:y.cancel,params:y.params,onConfirm:y.onConfirm,onCancel:y.onCancel})]})}qt.propTypes={id:u.string.isRequired,name:u.string.isRequired,did:u.string,parent:u.object.isRequired,blocklets:u.array,to:u.object.isRequired,children:u.any,onActivate:u.func,teamDid:u.string};qt.defaultProps={onActivate:()=>{},children:null,did:"",blocklets:[],teamDid:""};function He({id:t,name:n,onActivate:r,children:i,title:o,teamDid:s}){const{t:a}=N(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null);if(T.DOMAIN_FOR_DEFAULT_SITE===n)return null;const g=()=>{h(!1),m(null)},f=async C=>{h(!0),await l.addDomainAlias(t,C.domain.trim(),!!C.force,s),h(!1),m(null)},y=async(C,R,j)=>{try{await R(C)}catch(x){j(de(x))}finally{h(!1)}},b={title:o||a("router.domainAlias.add.title"),description:(C,R,j)=>e.jsxs(O,{component:"div",children:[e.jsx(K,{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:C.domain,style:{marginBottom:8},margin:"dense",onChange:x=>{const I=x.target.value.trim(),D=Te(I,a);R({...C,domain:I,__disableConfirm:!!D}),j(D||"")},onKeyPress:x=>{if(x.key==="Enter"){x.preventDefault();const I=x.target.value.trim(),D=Te(I,a);D?j(D):y(C,f,j)}}}),e.jsx(Kn,{control:e.jsx($r,{checked:C.force,onChange:x=>{R({...C,force:x.target.checked})},name:"checkedB",color:"primary"}),label:a("router.domainAlias.add.forceTip")})]}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{domain:"",__disableConfirm:!0},onConfirm:f,onCancel:g},v=C=>{C.stopPropagation(),m(b)||r()};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:c,open:v}):e.jsxs(ie,{onClick:v,className:"rule-action","data-cy":"action-add-domain-alias",children:[c?e.jsx(Y,{size:16}):e.jsx(Si,{style:{fontSize:18,marginRight:5}}),a("router.domainAlias.add.title")]}),d&&e.jsx(ne,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}He.propTypes={id:u.string.isRequired,name:u.string.isRequired,children:u.any,onActivate:u.func,title:u.string,teamDid:u.string};He.defaultProps={onActivate:()=>{},children:null,title:"",teamDid:""};function Ke({id:t,name:n,corsAllowedOrigins:r,onActivate:i,children:o,teamDid:s}){const{t:a}=N(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null);if(At(n))return null;let g=n;n.endsWith(T.BLOCKLET_SITE_GROUP_SUFFIX)&&(g=`${a("common.the")} Blocklet`);const f=()=>{h(!1),m(null)},y=async C=>{h(!0),await l.updateSite(t,{corsAllowedOrigins:C.corsAllowedOrigins.split(",").map(R=>R.trim())},s),h(!1),m(null)},b={title:a("router.domainSecurity.title"),description:(C,R,j)=>e.jsx(O,{component:"div",children:e.jsx(K,{label:a("router.domainSecurity.cors.title",{name:g}),autoComplete:"off",variant:"outlined",name:"corsAllowedOrigins",fullWidth:!0,autoFocus:!0,value:C.corsAllowedOrigins,style:{marginBottom:32},margin:"dense",helperText:a("router.domainSecurity.cors.description",{name:g}),onChange:x=>{R({...C,corsAllowedOrigins:x.target.value,__disableConfirm:!x.target.value.trim()}),x.target.value.trim()?j(""):j(a("router.domainSecurity.cors.domainInvalid"))}})}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{corsAllowedOrigins:Array.isArray(r)?r.join(", "):n,__disableConfirm:!0},onConfirm:y,onCancel:f},v=C=>{C.stopPropagation(),m(b)||i()};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:c,open:v}):e.jsxs(ie,{onClick:v,className:"rule-action","data-cy":"action-update-domain",children:[c?e.jsx(Y,{size:16}):e.jsx(Pt,{style:{fontSize:18,marginRight:5}}),a("router.domainSecurity.title")]}),d&&e.jsx(ne,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}Ke.propTypes={id:u.string.isRequired,name:u.string.isRequired,children:u.any,onActivate:u.func,corsAllowedOrigins:u.oneOfType([u.string,u.array]),teamDid:u.string};Ke.defaultProps={onActivate:()=>{},children:null,corsAllowedOrigins:"",teamDid:""};function bo({id:t,name:n,onActivate:r}){const{t:i}=N(),{actions:o}=ae(),[s,a]=p.useState(!1),[l,c]=p.useState(null);if(At(n))return null;const h=()=>{a(!1),c(null)},d=async f=>{a(!0),await o.updateSite(t,{domain:f.domain.trim()}),a(!1),c(null)},m={title:i("router.domain.update.title"),description:(f,y,b)=>e.jsx(O,{component:"div",children:e.jsx(K,{label:i("router.domain.update.label"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:f.domain,style:{marginBottom:32},margin:"dense",helperText:i("router.domain.update.description"),onChange:v=>{const C=v.target.value.trim(),R=Te(C,i);y({...f,domain:v.target.value,__disableConfirm:!!R}),b(R||"")}})}),confirm:i("common.confirm"),cancel:i("common.cancel"),params:{domain:n,__disableConfirm:!0},onConfirm:d,onCancel:h},g=f=>{f.stopPropagation(),c(m)||r()};return e.jsxs(e.Fragment,{children:[e.jsxs(ie,{onClick:g,className:"rule-action",children:[s?e.jsx(Y,{size:16}):e.jsx(tr,{style:{fontSize:18,marginRight:5}}),i("router.domain.update.title")]}),l&&e.jsx(ne,{title:l.title,description:l.description,confirm:l.confirm,cancel:l.cancel,params:l.params,onConfirm:l.onConfirm,onCancel:l.onCancel,color:"primary"})]})}function Se(t){const[n,r]=p.useState(null),i=l=>{l.stopPropagation(),r(l.currentTarget)},o=l=>{l&&l.stopPropagation(),r(null)},s=[];if(t.type==="root"&&s.push(e.jsx(nt,{...t,onActivate:o},"add-domain")),t.type==="domain"&&s.push(e.jsx(bo,{...t,onActivate:o},"update-domain"),e.jsx(qe,{...t,onActivate:o,onRuleAdded:t.onRuleAdded},"add-rule"),e.jsx(He,{...t,onActivate:o},"add-domain-alias"),e.jsx(Ke,{...t,onActivate:o},"update-domain-security"),e.jsx(Sn,{...t,onActivate:o},"delete-domain")),t.type==="rule"&&s.push(e.jsx(qt,{...t,onActivate:o},"update-rule"),e.jsx(Wt,{...t,onActivate:o},"delete-rule")),t.type===T.ROUTING_RULE_TYPES.REDIRECT&&s.push(e.jsx(Sn,{...t,onActivate:o},"delete-domain")),(t.type==="dashboard_domain"||t.type==="blocklet_domain")&&s.push(e.jsx(qe,{...t,onActivate:o},"add-rule"),e.jsx(Ke,{...t,onActivate:o},"update-domain-security"),e.jsx(He,{...t,onActivate:o},"add-domain-alias")),s.length===0)return null;const a=l=>{l.stopPropagation()};return e.jsxs("div",{children:[e.jsx(Mr,{onMouseDown:a,onClick:i,"data-cy":"action-trigger",size:"large",children:e.jsx(Ci,{})}),e.jsx(zr,{keepMounted:!0,onMouseDown:a,open:!!n,onClose:o,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:s})]})}Se.propTypes={blocklet:u.object,onRuleAdded:u.func};Se.defaultProps={onRuleAdded:()=>{},blocklet:{}};function Ht({certificate:t}){const[n,r]=p.useState(null),i=J(),{t:o,locale:s}=N(),a=h=>{r(h.currentTarget)},l=()=>{r(null)},c=!!n;return e.jsxs(e.Fragment,{children:[e.jsx(nr,{"aria-owns":c?"mouse-over-popover":void 0,onMouseEnter:a,onMouseLeave:l,style:{color:"#44cdc6",fontSize:20,marginLeft:8,cursor:"pointer"}}),e.jsx(Wr,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:c,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:l,disableRestoreFocus:!0,children:e.jsx(qr,{children:e.jsxs(Hr,{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(O,{component:"div",style:{marginLeft:"16px"},children:[e.jsx(O,{component:"div",style:{fontWeight:"bold"},children:t.domain}),e.jsx(O,{component:"div",children:`${o("common.issuer")}: ${Q(t,"issuer.commonName","")}`}),e.jsx(O,{component:"div",children:`${o("router.cert.issuedOn")}: ${ze(t.validFrom,s)}`}),e.jsx(O,{component:"div",children:`${o("router.cert.expiryOn")}: ${ze(t.validTo,s)}`})]})]})})})]})}Ht.propTypes={certificate:u.object};Ht.defaultProps={certificate:{}};function Ge(t){const{name:n,type:r,filters:i}=t,{t:o}=N(),{status:s}=tt();if(r!=="domain"||!Rt(n))return null;let a=null,l=null;const{isHttps:c,matchedCert:h}=s[n]||{};if(!Br(n)){const{dns:{resolved:m,ip:g}={}}=s[n]||{};m||g==="127.0.0.1"?a=e.jsx(pe,{title:o("router.domain.verify.ok"),children:e.jsx(xn,{color:"success"})}):a=e.jsx(pe,{title:o("router.domain.verify.notResolved"),children:e.jsx(xn,{color:"error"})})}c?l=e.jsx(Ht,{certificate:h}):l=e.jsx(pe,{title:o("router.domain.https.bad"),children:e.jsx(nr,{style:{color:"#D0021B",fontSize:20,marginLeft:8,cursor:"pointer"}})});const d=i.map(m=>m==="domain"?a:m==="http"?l:null);return p.createElement(p.Fragment,null,...d)}Ge.propTypes={type:u.string.isRequired,name:u.string.isRequired,filters:u.array};Ge.defaultProps={filters:["domain","http"]};const jo=t=>["waiting","creating","renewaling"].includes(t);function Kt(t){var I;const{t:n}=N(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{domain:a,onAdd:l,children:c,siteId:h}=t,{api:d}=J(),[m,g]=p.useState(!1),{updateStatus:f}=tt(),y=ue(),b=Pe(async()=>{const{cert:D}=await y.findCertificateByDomain({input:{domain:a}});return D}),v=D=>{D.domain===a&&g(!1)};if(p.useEffect(()=>{var D;!b.loading&&jo((D=b.value)==null?void 0:D.status)&&g(!0)},[b]),xt(T.EVENTS.CERT_ERROR,v),xt(T.EVENTS.CERT_ISSUED,D=>{b.retry(),f(D.domain),v(D)}),b.loading||((I=b.value)==null?void 0:I.status)==="normal")return"";const C=()=>{i(!1),s(null)},R=async()=>{i(!0);try{await d.issueLetsEncryptCert({input:{domain:a,siteId:h}}),l(),g(!0)}catch(D){console.error(D),g(!1)}finally{i(!1),s(null)}},j={title:n("router.cert.genLetsEncryptCert.title"),description:e.jsxs("div",{children:[e.jsx(ge,{severity:"success",children:n("router.cert.genLetsEncryptCert.dnsTip")}),n("router.cert.genLetsEncryptCert.description")]}),confirm:n("common.confirm"),onConfirm:R,onCancel:C},x=D=>{D.stopPropagation(),s(j)};return e.jsxs(e.Fragment,{children:[m?e.jsx(pe,{title:n("router.cert.issuing"),children:e.jsx(Y,{size:12})}):c({loading:r,open:x}),o&&e.jsx(ne,{color:"primary",title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}Kt.propTypes={domain:u.string.isRequired,onAdd:u.func,children:u.any,siteId:u.string.isRequired};Kt.defaultProps={onAdd:()=>{},children:null};function Ye(t){var i;const{status:n}=tt(),{domain:r}=t;return!Rt(r)||(i=n[r])!=null&&i.isHttps?"":e.jsx(Kt,{...t})}Ye.propTypes={siteId:u.string.isRequired,domain:u.string.isRequired,onAdd:u.func,children:u.any};Ye.defaultProps={onAdd:()=>{},children:null};function Gt(t){const{t:n}=N(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{id:a,domain:l,onDelete:c,children:h,teamDid:d}=t,{actions:m}=ae();if(l===window.location.hostname)return"";const g=()=>{i(!1),s(null)},f=async()=>{i(!0);try{await m.deleteDomainAlias(a,l,d),c()}catch(v){console.error(v)}finally{i(!1),s(null)}},y={title:n("router.domainAlias.delete.title"),description:n("router.domainAlias.delete.description"),confirm:n("common.confirm"),onConfirm:f,onCancel:g},b=v=>{v.stopPropagation(),s(y)};return e.jsxs(e.Fragment,{children:[typeof h=="function"?h({loading:r,open:b}):e.jsxs(G,{edge:"end",onClick:b,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[r?e.jsx(Y,{size:16}):e.jsx(Ae,{style:{fontSize:16}}),n("router.domainAlias.delete.title")]}),o&&e.jsx(ne,{title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}Gt.propTypes={id:u.string.isRequired,domain:u.string.isRequired,onDelete:u.func,children:u.any,teamDid:u.string};Gt.defaultProps={onDelete:()=>{},children:null,teamDid:""};function Yt({domain:t,isHttps:n,toUrl:r}){const i=n?"https":"http",{t:o}=N();let s=r;return Qr(s)||(s=`${i}://${t}${r}`),e.jsxs(e.Fragment,{children:[e.jsx(O,{className:"arrow-name-middle",children:o("common.redirect")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsx(Yn,{href:s,target:"_blank",underline:"hover",children:r},s)]})}Yt.propTypes={domain:u.string.isRequired,toUrl:u.string.isRequired,isHttps:u.bool};Yt.defaultProps={isHttps:!1};function Vt(){const{t}=N();return e.jsx(O,{className:"arrow-name-middle",children:t("common.page404")})}Vt.propTypes={};Vt.defaultProps={};function Ee(t){const{t:n}=N(),{data:r}=Gn(),{info:i}=J(),{status:o}=tt(),s=r.map(W=>({meta:{did:W.meta.did,name:Gr.getDisplayName(W,!0),version:W.meta.version,interfaces:W.meta.interfaces},port:W.port,ports:W.ports,status:W.status})),{id:a,type:l,name:c,title:h,items:d=[],depth:m,to:g,expand:f,isProtected:y,pathPrefix:b,parent:v,domainAliases:C}=t;let R=c;const j=c.endsWith(T.BLOCKLET_SITE_GROUP_SUFFIX);let x=l;c===fe&&(x="dashboard_domain"),j&&(x="blocklet_domain");const[I,D]=p.useState(f),E={root:mr,domain:Zn,rule:fr}[l],L={paddingBottom:8,paddingLeft:8};if(l==="domain"){let W=function({domain:z,primaryDomain:U,rules:F}){let q=`http://${z}`;return U===fe?q=`${q}/${i.routing.adminPath.replace(/^\/+/,"")}`:F&&F.length&&F[0].pathPrefix&&(q=`${q}/${F[0].pathPrefix.replace(/^\/+/,"")}`),z!==fe?e.jsx(Co,{href:q,target:"_blank",rel:"noreferrer",onClick:ye=>ye.stopPropagation(),children:z}):z};if(y&&!j)return null;if(j){const z=c.replace(T.BLOCKLET_SITE_GROUP_SUFFIX,""),U=s.find(F=>F.meta.did===z);if(!U||U.controller)return null;R=U.meta.title||U.meta.name}W.propTypes={domain:u.string.isRequired,primaryDomain:u.string.isRequired,rules:u.array.isRequired};const me=()=>{D(!0)};let ce=(C||[]).filter(z=>z.value!==c);return ce=Yr(ce),[e.jsxs(pt,{alignItems:"flex-start",button:!0,disableGutters:!0,"data-cy":"rule-domain",children:[e.jsxs(ut,{onClick:()=>D(z=>!z),children:[d.length>0&&(I?e.jsx(bi,{}):e.jsx(ji,{})),e.jsx(E,{style:{fontSize:22}})]}),e.jsx(mt,{onClick:()=>D(z=>!z),className:`rule-name rule-name--depth${m}`,style:{flex:1},secondary:d.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:[c===T.DOMAIN_FOR_DEFAULT_SITE&&n("router.defaultSite"),c!==T.DOMAIN_FOR_DEFAULT_SITE&&!j&&e.jsx(W,{domain:c,primaryDomain:c,rules:d}),j&&R,d.length&&!I?e.jsx("span",{style:{marginLeft:5},children:`(${d.length} URL)`}):null,e.jsx("span",{style:{marginLeft:12}}),l==="domain"&&c!==T.DOMAIN_FOR_DEFAULT_SITE&&c!==fe&&!j&&e.jsxs(e.Fragment,{children:[e.jsx(Ge,{type:l,name:c},c),e.jsx("span",{style:{marginLeft:12}}),e.jsx(Ye,{siteId:a,domain:c,children:({open:z})=>e.jsx(G,{size:"small",onClick:U=>z(U),children:n("router.cert.genLetsEncryptCert.title")})})]})]}),ce.map(z=>{const U=typeof z!="string"?z.value:z;return e.jsxs("div",{className:"site-alias",children:[e.jsx(W,{domain:U,primaryDomain:c,rules:d}),e.jsx("span",{style:{marginLeft:12}}),e.jsx(Ge,{type:l,name:U},`domain-status-${c}`),e.jsx(Ye,{siteId:a,domain:U,children:({open:F})=>e.jsx(G,{size:"small",onClick:q=>F(q),children:n("router.cert.genLetsEncryptCert.title")})}),!z.isProtected&&e.jsx(Gt,{id:t.id,domain:U},"delete-domain-alias"),U!==fe&&U!==window.location.hostname&&e.jsx(Se,{...t,domain:U,type:"domainAlias",onRuleAdded:me},`action-${c}`)]},U)})]})}),e.jsx(te,{permission:"mutate_router",children:e.jsx(ft,{children:e.jsx(Se,{blocklets:s,...t,onRuleAdded:me,type:x},c)})})]},"parent"),e.jsx(Vr,{in:I,children:d.length>0&&e.jsx(yt,{component:"div",className:`rule-list rule-list--depth${m}`,disablePadding:!0,children:d.map(z=>e.jsx(Ee,{...z,parent:t,depth:m+1},z.id))},"children")},"rules")]}if(l==="root")return[e.jsxs(pt,{disableGutters:!0,"data-cy":"rule-root",children:[e.jsx(ut,{children:e.jsx(E,{style:{fontSize:22}})}),e.jsx(mt,{primary:c}),e.jsx(te,{permission:"mutate_router",children:e.jsx(ft,{children:e.jsx(Se,{blocklets:s,...t})})})]},"root"),d.length>0&&e.jsx(yt,{component:"div",className:`rule-list rule-list--depth${m}`,disablePadding:!0,children:d.map(W=>e.jsx(Ee,{expand:!y,...W,parent:t,depth:m+1},W.id))},"children")];let w=`/blocklets/${g.did}/overview`;g.type===T.ROUTING_RULE_TYPES.DAEMON&&(w="/");const P={meta:{did:i.did,name:"Blocklet Server Dashboard",version:i.version},status:"running",port:i.port},A=g.did===i.did?P:s.find(W=>W.meta.did===g.did),M=A&&A.status==="running"||g.type===T.ROUTING_RULE_TYPES.DAEMON,$=n(M?"router.healthy.ok":"router.healthy.error"),H=o[v.name]||{};return e.jsxs(pt,{className:"hover-item",divider:!0,disableGutters:!0,style:L,"data-cy":"rule-item",children:[e.jsx(ut,{className:"arrow-icon",children:e.jsx(E,{style:{fontSize:22}})}),e.jsx(mt,{primary:e.jsxs(O,{component:"div",className:"arrow-name",children:[e.jsx(O,{style:{wordBreak:"break-all"},className:"arrow-name-left",children:c}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),(g.type===T.ROUTING_RULE_TYPES.DAEMON||g.type===T.ROUTING_RULE_TYPES.BLOCKLET)&&e.jsxs(e.Fragment,{children:[v.name!==T.DOMAIN_FOR_DEFAULT_SITE&&M&&e.jsx(ee,{className:"arrow-name-middle",children:e.jsx(Yn,{href:_t(v.name,b),target:"_blank",underline:"hover",children:n("common.open")})}),v.name===T.DOMAIN_FOR_DEFAULT_SITE&&e.jsx(O,{component:"span",className:"arrow-name-middle",children:"Blocklet"}),!M&&e.jsx("span",{className:"arrow-name-middle",children:n("common.unavailable")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsxs(Xr,{to:w,className:"arrow-name-right",children:[e.jsx(pe,{title:$,children:M?e.jsx(vi,{style:{color:"#44cdc6",fontSize:20}}):e.jsx(ur,{style:{color:"red",fontSize:20}})}),e.jsx("span",{children:A?A.meta.name:h}),A&&e.jsx("span",{style:{marginLeft:8},children:e.jsx(er,{status:A.status,progress:A.progress})})]})]}),g.type===T.ROUTING_RULE_TYPES.REDIRECT&&e.jsx(Yt,{prefix:b,domain:v.name,toUrl:g.url,isHttps:H.isHttps}),g.type===T.ROUTING_RULE_TYPES.NONE&&e.jsx(Vt,{})]})}),e.jsx(te,{permission:"mutate_router",children:e.jsx(ft,{children:e.jsx(Se,{blocklets:s,...t,did:g.did})})})]},c)}Ee.propTypes={type:u.string.isRequired,to:u.object,name:u.string.isRequired,title:u.string,id:u.string,items:u.array,parent:u.object,depth:u.number,expand:u.bool,isProtected:u.bool,pathPrefix:u.string,domainAliases:u.array};Ee.defaultProps={id:"",to:{},title:"",items:[],depth:0,parent:{},expand:!0,isProtected:!1,pathPrefix:"",domainAliases:[]};const pt=V(Kr)`
|
|
121
|
+
`,sr=p.createContext({}),{Provider:so,Consumer:us}=sr;function lr({children:t,domains:n}){const r=ue(),i=JSON.stringify(n),[o,s]=p.useState({}),a=p.useMemo(()=>n.filter(f=>Rt(f)),[i]);xt(T.EVENTS.DOMAIN_STATUS,f=>{f&&s(y=>({...y,[f.domain]:{...y[f.domain],...f}}))});const{domainsAccessibility:l,recommendedDomain:c}=hi(a),h=p.useMemo(()=>{const f={...o};return Object.keys(l).forEach(y=>{const b=f[y]||{};f[y]={...b,...l[y]}}),f},[o,l]),d=()=>{a.length>0&&r.checkDomains({input:{domains:a}})},m=f=>{f&&r.checkDomains({input:{domains:[f]}})};p.useEffect(()=>{d()},[a]);const g={refresh:d,updateStatus:m,api:r,status:h,recommendedDomain:c,recommendedDomainStatus:h[c]};return e.jsx(so,{value:g,children:t})}lr.propTypes={children:u.any.isRequired,domains:u.array.isRequired};function tt(){const{status:t,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}=p.useContext(sr);return{status:t,recommendedDomainStatus:n,recommendedDomain:r,updateStatus:i}}const lo=t=>(Q(t,"meta.interfaces")||[]).find(r=>r.type===Je.BLOCKLET_INTERFACE_TYPE_WEB);function Ie({params:t,blocklets:n,setParams:r,setError:i,serviceTypes:o}){const{t:s}=N(),a={301:s("common.redirectPermanently"),302:s("common.redirectTemporary"),307:s("common.redirectTemporary"),308:s("common.redirectPermanently")},l=Mn(n,d=>d.meta.name),c=(d,m)=>{if(!m)return{};let{port:g}=d;m&&d.ports&&m.port&&(d.ports[m.port]&&(g=d.ports[m.port]),d.ports[m.port.internal]&&(g=d.ports[m.port.internal]));let{pathPrefix:f}=t;return m&&m.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&(f=m.prefix),{port:g,pathPrefix:f}},h=d=>{const m=l.find(f=>f.meta.did===d),g=lo(m);return{...c(m,g),interfaceName:g?g.name:""}};return p.useEffect(()=>{!t.interfaceName&&t.type===T.ROUTING_RULE_TYPES.BLOCKLET&&r({...t,...h(t.did),__disableConfirm:!1})},[]),e.jsxs(e.Fragment,{children:[e.jsx(K,{select:!0,label:s("router.domain.add.type"),autoComplete:"off",variant:"outlined",name:"type","data-cy":"domain-add-type",fullWidth:!0,value:t.type,onChange:d=>{i(""),r({...t,type:d.target.value,__disableConfirm:!1})},style:{marginBottom:32},SelectProps:{},children:o.map(({name:d,value:m})=>e.jsx(ie,{value:m,children:d},m))}),t.type===T.ROUTING_RULE_TYPES.BLOCKLET&&e.jsxs(K,{select:!0,label:s("router.domain.add.blocklet"),autoComplete:"off",variant:"outlined",name:"did","data-cy":"domain-blocklet-select",fullWidth:!0,value:t.did,onChange:d=>{r({...t,...h(d.target.value),did:d.target.value,__disableConfirm:!1})},style:{marginBottom:32},children:[l.map(d=>e.jsxs(ie,{value:d.meta.did,children:[`${d.meta.name} v${d.meta.version}`,e.jsx("span",{style:{marginLeft:8},children:e.jsx(er,{status:d.status,progress:d.progress})})]},d.meta.did)),n.length===0&&e.jsx(ie,{value:"",children:s("common.empty")},"empty")]}),t.type===T.ROUTING_RULE_TYPES.REDIRECT&&[e.jsx(K,{select:!0,label:s("router.domain.add.redirect"),autoComplete:"off",variant:"outlined",name:"type",fullWidth:!0,value:t.redirectCode,onChange:d=>r({...t,redirectCode:d.target.value}),style:{marginBottom:32},SelectProps:{},children:Object.keys(a).map(d=>e.jsx(ie,{value:d,children:`${a[d]} - ${d}`},d))}),e.jsx(K,{label:s("common.redirectUrl"),autoComplete:"off",variant:"outlined",name:"url",inputProps:{"data-cy":"redirect-url-input"},fullWidth:!0,autoFocus:!0,value:t.url,helperText:s("router.urlHelperText"),style:{marginBottom:32},onChange:d=>{r({...t,url:d.target.value,__disableConfirm:!d.target.value.trim()}),d.target.value.trim()?i(""):i(s("router.validation.redirectUrlRequired"))}})]]})}Ie.propTypes={params:u.object,blocklets:u.array,serviceTypes:u.array,setParams:u.func,setError:u.func};Ie.defaultProps={params:{},blocklets:[],serviceTypes:[{name:"Blocklet",value:T.ROUTING_RULE_TYPES.BLOCKLET},{name:"Redirect",value:T.ROUTING_RULE_TYPES.REDIRECT},{name:"Default - User will see the 404 page",value:T.ROUTING_RULE_TYPES.NONE}],setParams:()=>{},setError:()=>{}};const cr=(t,n)=>{if(t.type===T.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===T.ROUTING_RULE_TYPES.BLOCKLET&&!t.did)return new Error(n("router.validation.didRequired"));return null},Te=(t,n)=>t?t.endsWith(T.DEFAULT_IP_DOMAIN_SUFFIX)?n("router.domain.validate.suffixTip",{suffix:T.DEFAULT_IP_DOMAIN_SUFFIX}):null:n("router.domain.validate.emptyTip"),co=(t,n)=>{const r=cr(t,n);if(r)return r;const i=Te(t.domain,n);return i?new Error(i):null},We=(t,n)=>{const r=cr(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")))},dr=({params:t,blocklets:n,blocklet:r,locale:i="en"})=>{if(r){let a=(r.children||[]).find(l=>ci(l.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 s=o.meta.interfaces.find(a=>a.type==="web");return s&&s.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&t.pathPrefix!==s.prefix?{zh:`该 blocklet 只能挂载在 ${s.prefix}`,en:`This blocklet can only be mounted on ${s.prefix}`}[i]:""},$t=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 nt({blocklets:t,onActivate:n=()=>{},children:r}){const{t:i}=N(),{actions:o}=ae(),{info:s}=J(),[a,l]=p.useState(!1),[c,h]=p.useState(null),d=()=>{l(!1),h(null)},m=async y=>{l(!0);const b={from:{pathPrefix:"/"},to:{type:y.type}},v={domain:y.domain.trim()===s.ip?"":y.domain.trim()};if(y.type===T.ROUTING_RULE_TYPES.BLOCKLET){const C=t.find(j=>j.meta.did===y.did),R=Q(C,"meta.interfaces",[]).find(j=>j.name===y.interfaceName);R&&R.prefix!==Je.BLOCKLET_DYNAMIC_PATH_PREFIX&&(b.from.pathPrefix=R.prefix),b.to.port=y.port,b.to.did=y.did,b.to.interfaceName=y.interfaceName,v.rules=[b]}else y.type===T.ROUTING_RULE_TYPES.REDIRECT&&(b.to.url=y.url,b.to.redirectCode=y.redirectCode,v.rules=[b]);await o.addSite(v),l(!1),h(null)},g={title:i("router.domain.addSite"),description:(y,b,v)=>{const C=R=>{const j=R.__disableConfirm||!!co(R,i);b({...R,__disableConfirm:j})};return e.jsxs(O,{component:"div",children:[e.jsx(K,{label:i("router.domain.add.description"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:y.domain,style:{marginTop:16,marginBottom:32},inputProps:{"data-cy":"domain-name-input"},onChange:R=>{const j=R.target.value.trim(),x=Te(j,i);C({...y,domain:R.target.value,__disableConfirm:!!x}),v(x||"")}}),e.jsx(Ie,{blocklets:t,params:y,setParams:C,setError:v})]})},confirm:i("router.domain.add.confirm"),cancel:i("router.domain.add.cancel"),params:{domain:"",did:$t(t),port:"",interfaceName:"",type:T.ROUTING_RULE_TYPES.BLOCKLET,redirectCode:302,__disableConfirm:!0},onConfirm:m,onCancel:d},f=y=>{y.stopPropagation(),h(g)||n()};return p.useEffect(()=>{const{searchParams:y}=new URL(window.location.href);y.get("fromDid")&&h(g)},[]),e.jsxs(e.Fragment,{children:[typeof r=="function"?r({loading:a,open:f}):e.jsxs(ie,{onClick:f,className:"rule-action","data-cy":"action-add-domain",children:[a?e.jsx(Y,{size:16}):e.jsx(Zn,{style:{fontSize:18,marginRight:5}}),i("router.domain.add.title")]}),c&&e.jsx(ne,{title:c.title,description:c.description,confirm:c.confirm,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel,color:"primary"})]})}nt.propTypes={blocklets:u.array,children:u.any,onActivate:u.func};nt.defaultProps={onActivate:()=>{},children:null,blocklets:[]};var Mt={},uo=xe;Object.defineProperty(Mt,"__esModule",{value:!0});var ur=Mt.default=void 0,mo=uo(he()),fo=e;ur=Mt.default=(0,mo.default)((0,fo.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m1 15h-2v-2h2zm0-4h-2V7h2z"}),"Error");var zt={},po=xe;Object.defineProperty(zt,"__esModule",{value:!0});var mr=zt.default=void 0,go=po(he()),ho=e;mr=zt.default=(0,go.default)((0,ho.jsx)("path",{d:"M2 20h20v-4H2zm2-3h2v2H4zM2 4v4h20V4zm4 3H4V5h2zm-4 7h20v-4H2zm2-3h2v2H4z"}),"Storage");var Bt={},xo=xe;Object.defineProperty(Bt,"__esModule",{value:!0});var fr=Bt.default=void 0,yo=xo(he()),vo=e;fr=Bt.default=(0,yo.default)((0,vo.jsx)("path",{d:"m19 15-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9z"}),"SubdirectoryArrowRight");function Sn(t){const{t:n}=N(),{actions:r}=ae(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,name:c}=t;if(At(c))return null;const h=()=>{o(!1),a(null)},d=async()=>{o(!0),await r.deleteSite(l),o(!1),a(null)},m={title:n("router.domain.delete.title"),description:n("router.domain.delete.description",{name:`<b>${c}</b>`}),confirmPlaceholder:n("router.domain.delete.confirm_desc",{name:c}),confirm:n("common.delConfirm"),cancel:n("common.cancel"),onConfirm:d,onCancel:h,keyName:c},g=f=>{f.stopPropagation(),a(m)||t.onActivate()};return e.jsxs(e.Fragment,{children:[e.jsxs(ie,{onClick:g,className:"rule-action","data-cy":"action-delete-domain",children:[i?e.jsx(Y,{size:16}):e.jsx(Ae,{style:{fontSize:18,marginRight:5}}),n("router.domain.delete.title")]}),s&&e.jsx(Et,{keyName:s.keyName,title:s.title,description:s.description,confirmPlaceholder:s.confirmPlaceholder,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}function qe({id:t,blocklets:n,onActivate:r=()=>{},onRuleAdded:i=()=>{},children:o,teamDid:s}){const{t:a}=N(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null),g=()=>{h(!1),m(null)},f=async v=>{const C=await We(v,a);if(C)throw C;h(!0);const R={from:{pathPrefix:Hn(v.pathPrefix)},to:{type:v.type}};v.type===T.ROUTING_RULE_TYPES.BLOCKLET?(R.to.port=v.port,R.to.did=v.did,R.to.interfaceName=v.interfaceName):v.type===T.ROUTING_RULE_TYPES.REDIRECT&&(R.to.url=v.url.trim(),R.to.redirectCode=v.redirectCode),await l.addRule(t,R,s),m(null),h(!1),i()},y={title:a("router.rule.add.title"),description:(v,C,R)=>{const j=x=>{if(R(null),We(x,a)){C({...x,__disableConfirm:!0});return}C({...x})};return e.jsxs(O,{component:"div",children:[e.jsx(K,{label:a("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:v.helperText||a("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:v.pathPrefix,onChange:x=>{let I=!1;const D=dr({params:{...v,pathPrefix:x.target.value},blocklets:n});R(D),v.type===T.ROUTING_RULE_TYPES.BLOCKLET&&D&&(I=!0),v.type===T.ROUTING_RULE_TYPES.REDIRECT&&!v.url&&(I=!0),x.target.value.trim()||(I=!0,R(a("router.validation.pathPrefixRequired"))),I||R("");const S=a("common.slugifyHint",{value:qn(x.target.value)});C({...v,pathPrefix:x.target.value,helperText:S,__disableConfirm:I})}}),e.jsx(Ie,{blocklets:n,params:v,setParams:j,setError:R})]})},confirm:a("router.rule.add.confirm"),cancel:a("common.cancel"),params:{pathPrefix:"",type:T.ROUTING_RULE_TYPES.BLOCKLET,did:$t(n),port:"",interfaceName:"",redirectCode:302,__disableConfirm:!0},onConfirm:f,onCancel:g},b=v=>{v.stopPropagation(),m(y)||r()};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:c,open:b}):e.jsxs(ie,{onClick:b,className:"rule-action","data-cy":"action-add-rule",children:[c?e.jsx(Y,{size:16}):e.jsx(Jn,{style:{fontSize:18,marginRight:5}}),a("router.rule.add.title")]}),d&&e.jsx(ne,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}qe.propTypes={id:u.string.isRequired,blocklets:u.array,children:u.any,onActivate:u.func,onRuleAdded:u.func,teamDid:u.string};qe.defaultProps={onActivate:()=>{},onRuleAdded:()=>{},children:null,blocklets:[],teamDid:""};function Wt(t){const{t:n}=N(),{actions:r}=ae(),[i,o]=p.useState(!1),[s,a]=p.useState(null),{id:l,parent:{id:c},name:h,children:d,onActivate:m,teamDid:g}=t,f=()=>{o(!1),a(null)},y=async()=>{o(!0),await r.deleteRule(c,l,g),o(!1),a(null)},b={keyName:h,title:n("router.rule.delete.title"),description:n("router.rule.delete.description",{name:`<b>${h}</b>`}),confirmPlaceholder:n("router.rule.delete.confirm_desc",{name:h}),confirm:n("common.delConfirm"),cancel:n("router.rule.delete.cancel"),onConfirm:y,onCancel:f},v=C=>{C.stopPropagation(),a(b)||m()};return e.jsxs(e.Fragment,{children:[typeof d=="function"?d({loading:i,open:v}):e.jsxs(ie,{onClick:v,className:"rule-action","data-cy":"action-delete-rule",children:[i?e.jsx(Y,{size:16}):e.jsx(Ae,{style:{fontSize:18,marginRight:5}}),n("router.rule.delete.title")]}),s&&e.jsx(Et,{keyName:s.keyName,title:s.title,description:s.description,confirmPlaceholder:s.confirmPlaceholder,confirm:s.confirm,cancel:s.cancel,params:s.params,onConfirm:s.onConfirm,onCancel:s.onCancel})]})}Wt.propTypes={id:u.string.isRequired,name:u.string.isRequired,parent:u.object.isRequired,children:u.any,onActivate:u.func,teamDid:u.string};Wt.defaultProps={onActivate:()=>{},children:null,teamDid:""};function qt(t){const{id:n,name:r,did:i,parent:o,blocklets:s,to:a,children:l,onActivate:c,teamDid:h}=t,{t:d}=N(),{actions:m}=ae(),[g,f]=p.useState(!1),[y,b]=p.useState(null),v=()=>{f(!1),b(null)},C=async x=>{const I=await We(x,d);if(I)throw I;f(!0);const D={id:n,from:{pathPrefix:Hn(x.pathPrefix)},to:{type:x.type}};x.type===T.ROUTING_RULE_TYPES.BLOCKLET?(D.to.port=x.port,D.to.did=x.did,D.to.interfaceName=x.interfaceName):x.type===T.ROUTING_RULE_TYPES.REDIRECT&&(D.to.url=x.url,D.to.redirectCode=x.redirectCode),await m.updateRule(o.id,D,h),b(null),f(!1)},R={title:d("router.rule.update.title"),description:(x,I,D)=>{const S=E=>{if(We(E,d)){I({...E,__disableConfirm:!0});return}I({...E})};return e.jsxs(O,{component:"div",children:[e.jsx(K,{label:d("router.rule.add.pathPrefix"),autoComplete:"off",variant:"outlined",name:"pathPrefix",inputProps:{"data-cy":"path-prefix-input"},fullWidth:!0,autoFocus:!0,helperText:x.helperText||d("router.rule.add.pathPrefixTip"),style:{marginBottom:32},margin:"dense",value:x.pathPrefix,onChange:E=>{let L=!1;const w=dr({params:{...x,pathPrefix:E.target.value},blocklets:s});x.type===T.ROUTING_RULE_TYPES.BLOCKLET&&w&&(L=!0,D(w)),x.type===T.ROUTING_RULE_TYPES.REDIRECT&&!x.url&&(L=!0),E.target.value.trim()||(L=!0,D(d("router.validation.pathPrefixRequired"))),L||D("");const P=d("common.slugifyHint",{value:qn(E.target.value)});I({...x,pathPrefix:E.target.value,helperText:P,__disableConfirm:L})}}),e.jsx(Ie,{blocklets:s,params:x,setParams:S,setError:D})]})},confirm:d("router.rule.update.confirm"),cancel:d("router.rule.update.cancel"),color:"primary",params:{pathPrefix:r==="/"?r:r.replace(/^\/+/,"").replace(/\/+$/,""),type:a.type||T.ROUTING_RULE_TYPES.BLOCKLET,did:i||$t(s),port:a.port||"",interfaceName:a.interfaceName||"",redirectCode:a.redirectCode||302,url:a.url||"",__disableConfirm:!1},onConfirm:C,onCancel:v},j=x=>{x.stopPropagation(),b(R)||c()};return e.jsxs(e.Fragment,{children:[typeof l=="function"?l({loading:g,open:j}):e.jsxs(ie,{onClick:j,className:"rule-action","data-cy":"action-update-rule",children:[g?e.jsx(Y,{size:16}):e.jsx(tr,{style:{fontSize:18,marginRight:5}}),d("router.rule.update.title")]}),y&&e.jsx(ne,{title:y.title,description:y.description,confirm:y.confirm,color:y.color,cancel:y.cancel,params:y.params,onConfirm:y.onConfirm,onCancel:y.onCancel})]})}qt.propTypes={id:u.string.isRequired,name:u.string.isRequired,did:u.string,parent:u.object.isRequired,blocklets:u.array,to:u.object.isRequired,children:u.any,onActivate:u.func,teamDid:u.string};qt.defaultProps={onActivate:()=>{},children:null,did:"",blocklets:[],teamDid:""};function He({id:t,name:n,onActivate:r,children:i,title:o,teamDid:s}){const{t:a}=N(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null);if(T.DOMAIN_FOR_DEFAULT_SITE===n)return null;const g=()=>{h(!1),m(null)},f=async C=>{h(!0),await l.addDomainAlias(t,C.domain.trim(),!!C.force,s),h(!1),m(null)},y=async(C,R,j)=>{try{await R(C)}catch(x){j(de(x))}finally{h(!1)}},b={title:o||a("router.domainAlias.add.title"),description:(C,R,j)=>e.jsxs(O,{component:"div",children:[e.jsx(K,{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:C.domain,style:{marginBottom:8},margin:"dense",onChange:x=>{const I=x.target.value.trim(),D=Te(I,a);R({...C,domain:I,__disableConfirm:!!D}),j(D||"")},onKeyPress:x=>{if(x.key==="Enter"){x.preventDefault();const I=x.target.value.trim(),D=Te(I,a);D?j(D):y(C,f,j)}}}),e.jsx(Kn,{control:e.jsx($r,{checked:C.force,onChange:x=>{R({...C,force:x.target.checked})},name:"checkedB",color:"primary"}),label:a("router.domainAlias.add.forceTip")})]}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{domain:"",__disableConfirm:!0},onConfirm:f,onCancel:g},v=C=>{C.stopPropagation(),m(b)||r()};return e.jsxs(e.Fragment,{children:[typeof i=="function"?i({loading:c,open:v}):e.jsxs(ie,{onClick:v,className:"rule-action","data-cy":"action-add-domain-alias",children:[c?e.jsx(Y,{size:16}):e.jsx(Si,{style:{fontSize:18,marginRight:5}}),a("router.domainAlias.add.title")]}),d&&e.jsx(ne,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}He.propTypes={id:u.string.isRequired,name:u.string.isRequired,children:u.any,onActivate:u.func,title:u.string,teamDid:u.string};He.defaultProps={onActivate:()=>{},children:null,title:"",teamDid:""};function Ke({id:t,name:n,corsAllowedOrigins:r,onActivate:i,children:o,teamDid:s}){const{t:a}=N(),{actions:l}=ae(),[c,h]=p.useState(!1),[d,m]=p.useState(null);if(At(n))return null;let g=n;n.endsWith(T.BLOCKLET_SITE_GROUP_SUFFIX)&&(g=`${a("common.the")} Blocklet`);const f=()=>{h(!1),m(null)},y=async C=>{h(!0),await l.updateSite(t,{corsAllowedOrigins:C.corsAllowedOrigins.split(",").map(R=>R.trim())},s),h(!1),m(null)},b={title:a("router.domainSecurity.title"),description:(C,R,j)=>e.jsx(O,{component:"div",children:e.jsx(K,{label:a("router.domainSecurity.cors.title",{name:g}),autoComplete:"off",variant:"outlined",name:"corsAllowedOrigins",fullWidth:!0,autoFocus:!0,value:C.corsAllowedOrigins,style:{marginBottom:32},margin:"dense",helperText:a("router.domainSecurity.cors.description",{name:g}),onChange:x=>{R({...C,corsAllowedOrigins:x.target.value,__disableConfirm:!x.target.value.trim()}),x.target.value.trim()?j(""):j(a("router.domainSecurity.cors.domainInvalid"))}})}),confirm:a("common.confirm"),cancel:a("common.cancel"),params:{corsAllowedOrigins:Array.isArray(r)?r.join(", "):n,__disableConfirm:!0},onConfirm:y,onCancel:f},v=C=>{C.stopPropagation(),m(b)||i()};return e.jsxs(e.Fragment,{children:[typeof o=="function"?o({loading:c,open:v}):e.jsxs(ie,{onClick:v,className:"rule-action","data-cy":"action-update-domain",children:[c?e.jsx(Y,{size:16}):e.jsx(Pt,{style:{fontSize:18,marginRight:5}}),a("router.domainSecurity.title")]}),d&&e.jsx(ne,{title:d.title,description:d.description,confirm:d.confirm,cancel:d.cancel,params:d.params,onConfirm:d.onConfirm,onCancel:d.onCancel,color:"primary"})]})}Ke.propTypes={id:u.string.isRequired,name:u.string.isRequired,children:u.any,onActivate:u.func,corsAllowedOrigins:u.oneOfType([u.string,u.array]),teamDid:u.string};Ke.defaultProps={onActivate:()=>{},children:null,corsAllowedOrigins:"",teamDid:""};function bo({id:t,name:n,onActivate:r}){const{t:i}=N(),{actions:o}=ae(),[s,a]=p.useState(!1),[l,c]=p.useState(null);if(At(n))return null;const h=()=>{a(!1),c(null)},d=async f=>{a(!0),await o.updateSite(t,{domain:f.domain.trim()}),a(!1),c(null)},m={title:i("router.domain.update.title"),description:(f,y,b)=>e.jsx(O,{component:"div",children:e.jsx(K,{label:i("router.domain.update.label"),autoComplete:"off",variant:"outlined",name:"domain",fullWidth:!0,autoFocus:!0,value:f.domain,style:{marginBottom:32},margin:"dense",helperText:i("router.domain.update.description"),onChange:v=>{const C=v.target.value.trim(),R=Te(C,i);y({...f,domain:v.target.value,__disableConfirm:!!R}),b(R||"")}})}),confirm:i("common.confirm"),cancel:i("common.cancel"),params:{domain:n,__disableConfirm:!0},onConfirm:d,onCancel:h},g=f=>{f.stopPropagation(),c(m)||r()};return e.jsxs(e.Fragment,{children:[e.jsxs(ie,{onClick:g,className:"rule-action",children:[s?e.jsx(Y,{size:16}):e.jsx(tr,{style:{fontSize:18,marginRight:5}}),i("router.domain.update.title")]}),l&&e.jsx(ne,{title:l.title,description:l.description,confirm:l.confirm,cancel:l.cancel,params:l.params,onConfirm:l.onConfirm,onCancel:l.onCancel,color:"primary"})]})}function Se(t){const[n,r]=p.useState(null),i=l=>{l.stopPropagation(),r(l.currentTarget)},o=l=>{l&&l.stopPropagation(),r(null)},s=[];if(t.type==="root"&&s.push(e.jsx(nt,{...t,onActivate:o},"add-domain")),t.type==="domain"&&s.push(e.jsx(bo,{...t,onActivate:o},"update-domain"),e.jsx(qe,{...t,onActivate:o,onRuleAdded:t.onRuleAdded},"add-rule"),e.jsx(He,{...t,onActivate:o},"add-domain-alias"),e.jsx(Ke,{...t,onActivate:o},"update-domain-security"),e.jsx(Sn,{...t,onActivate:o},"delete-domain")),t.type==="rule"&&s.push(e.jsx(qt,{...t,onActivate:o},"update-rule"),e.jsx(Wt,{...t,onActivate:o},"delete-rule")),t.type===T.ROUTING_RULE_TYPES.REDIRECT&&s.push(e.jsx(Sn,{...t,onActivate:o},"delete-domain")),(t.type==="dashboard_domain"||t.type==="blocklet_domain")&&s.push(e.jsx(qe,{...t,onActivate:o},"add-rule"),e.jsx(Ke,{...t,onActivate:o},"update-domain-security"),e.jsx(He,{...t,onActivate:o},"add-domain-alias")),s.length===0)return null;const a=l=>{l.stopPropagation()};return e.jsxs("div",{children:[e.jsx(Mr,{onMouseDown:a,onClick:i,"data-cy":"action-trigger",size:"large",children:e.jsx(Ci,{})}),e.jsx(zr,{keepMounted:!0,onMouseDown:a,open:!!n,onClose:o,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:s})]})}Se.propTypes={blocklet:u.object,onRuleAdded:u.func};Se.defaultProps={onRuleAdded:()=>{},blocklet:{}};function Ht({certificate:t}){const[n,r]=p.useState(null),i=J(),{t:o,locale:s}=N(),a=h=>{r(h.currentTarget)},l=()=>{r(null)},c=!!n;return e.jsxs(e.Fragment,{children:[e.jsx(nr,{"aria-owns":c?"mouse-over-popover":void 0,onMouseEnter:a,onMouseLeave:l,style:{color:"#44cdc6",fontSize:20,marginLeft:8,cursor:"pointer"}}),e.jsx(Wr,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:c,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:l,disableRestoreFocus:!0,children:e.jsx(qr,{children:e.jsxs(Hr,{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(O,{component:"div",style:{marginLeft:"16px"},children:[e.jsx(O,{component:"div",style:{fontWeight:"bold"},children:t.domain}),e.jsx(O,{component:"div",children:`${o("common.issuer")}: ${Q(t,"issuer.commonName","")}`}),e.jsx(O,{component:"div",children:`${o("router.cert.issuedOn")}: ${ze(t.validFrom,s)}`}),e.jsx(O,{component:"div",children:`${o("router.cert.expiryOn")}: ${ze(t.validTo,s)}`})]})]})})})]})}Ht.propTypes={certificate:u.object};Ht.defaultProps={certificate:{}};function Ge(t){const{name:n,type:r,filters:i}=t,{t:o}=N(),{status:s}=tt();if(r!=="domain"||!Rt(n))return null;let a=null,l=null;const{isHttps:c,matchedCert:h}=s[n]||{};if(!Br(n)){const{dns:{resolved:m,ip:g}={}}=s[n]||{};m||g==="127.0.0.1"?a=e.jsx(pe,{title:o("router.domain.verify.ok"),children:e.jsx(xn,{color:"success"})}):a=e.jsx(pe,{title:o("router.domain.verify.notResolved"),children:e.jsx(xn,{color:"error"})})}c?l=e.jsx(Ht,{certificate:h}):l=e.jsx(pe,{title:o("router.domain.https.bad"),children:e.jsx(nr,{style:{color:"#D0021B",fontSize:20,marginLeft:8,cursor:"pointer"}})});const d=i.map(m=>m==="domain"?a:m==="http"?l:null);return p.createElement(p.Fragment,null,...d)}Ge.propTypes={type:u.string.isRequired,name:u.string.isRequired,filters:u.array};Ge.defaultProps={filters:["domain","http"]};const jo=t=>["waiting","creating","renewaling"].includes(t);function Kt(t){var I;const{t:n}=N(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{domain:a,onAdd:l,children:c,siteId:h}=t,{api:d}=J(),[m,g]=p.useState(!1),{updateStatus:f}=tt(),y=ue(),b=Pe(async()=>{const{cert:D}=await y.findCertificateByDomain({input:{domain:a}});return D}),v=D=>{D.domain===a&&g(!1)};if(p.useEffect(()=>{var D;!b.loading&&jo((D=b.value)==null?void 0:D.status)&&g(!0)},[b]),xt(T.EVENTS.CERT_ERROR,v),xt(T.EVENTS.CERT_ISSUED,D=>{b.retry(),f(D.domain),v(D)}),b.loading||((I=b.value)==null?void 0:I.status)==="normal")return"";const C=()=>{i(!1),s(null)},R=async()=>{i(!0);try{await d.issueLetsEncryptCert({input:{domain:a,siteId:h}}),l(),g(!0)}catch(D){console.error(D),g(!1)}finally{i(!1),s(null)}},j={title:n("router.cert.genLetsEncryptCert.title"),description:e.jsxs("div",{children:[e.jsx(ge,{severity:"success",children:n("router.cert.genLetsEncryptCert.dnsTip")}),n("router.cert.genLetsEncryptCert.description")]}),confirm:n("common.confirm"),onConfirm:R,onCancel:C},x=D=>{D.stopPropagation(),s(j)};return e.jsxs(e.Fragment,{children:[m?e.jsx(pe,{title:n("router.cert.issuing"),children:e.jsx(Y,{size:12})}):c({loading:r,open:x}),o&&e.jsx(ne,{color:"primary",title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}Kt.propTypes={domain:u.string.isRequired,onAdd:u.func,children:u.any,siteId:u.string.isRequired};Kt.defaultProps={onAdd:()=>{},children:null};function Ye(t){var i;const{status:n}=tt(),{domain:r}=t;return!Rt(r)||(i=n[r])!=null&&i.isHttps?"":e.jsx(Kt,{...t})}Ye.propTypes={siteId:u.string.isRequired,domain:u.string.isRequired,onAdd:u.func,children:u.any};Ye.defaultProps={onAdd:()=>{},children:null};function Gt(t){const{t:n}=N(),[r,i]=p.useState(!1),[o,s]=p.useState(null),{id:a,domain:l,onDelete:c,children:h,teamDid:d}=t,{actions:m}=ae();if(l===window.location.hostname)return"";const g=()=>{i(!1),s(null)},f=async()=>{i(!0);try{await m.deleteDomainAlias(a,l,d),c()}catch(v){console.error(v)}finally{i(!1),s(null)}},y={title:n("router.domainAlias.delete.title"),description:n("router.domainAlias.delete.description"),confirm:n("common.confirm"),onConfirm:f,onCancel:g},b=v=>{v.stopPropagation(),s(y)};return e.jsxs(e.Fragment,{children:[typeof h=="function"?h({loading:r,open:b}):e.jsxs(G,{edge:"end",onClick:b,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[r?e.jsx(Y,{size:16}):e.jsx(Ae,{style:{fontSize:16}}),n("router.domainAlias.delete.title")]}),o&&e.jsx(ne,{title:o.title,description:o.description,confirm:o.confirm,params:o.params,onConfirm:o.onConfirm,onCancel:o.onCancel})]})}Gt.propTypes={id:u.string.isRequired,domain:u.string.isRequired,onDelete:u.func,children:u.any,teamDid:u.string};Gt.defaultProps={onDelete:()=>{},children:null,teamDid:""};function Yt({domain:t,isHttps:n,toUrl:r}){const i=n?"https":"http",{t:o}=N();let s=r;return Qr(s)||(s=`${i}://${t}${r}`),e.jsxs(e.Fragment,{children:[e.jsx(O,{className:"arrow-name-middle",children:o("common.redirect")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsx(Yn,{href:s,target:"_blank",underline:"hover",children:r},s)]})}Yt.propTypes={domain:u.string.isRequired,toUrl:u.string.isRequired,isHttps:u.bool};Yt.defaultProps={isHttps:!1};function Vt(){const{t}=N();return e.jsx(O,{className:"arrow-name-middle",children:t("common.page404")})}Vt.propTypes={};Vt.defaultProps={};function Ee(t){const{t:n}=N(),{data:r}=Gn(),{info:i}=J(),{status:o}=tt(),s=r.map(W=>({meta:{did:W.meta.did,name:Gr.getDisplayName(W,!0),version:W.meta.version,interfaces:W.meta.interfaces},port:W.port,ports:W.ports,status:W.status})),{id:a,type:l,name:c,title:h,items:d=[],depth:m,to:g,expand:f,isProtected:y,pathPrefix:b,parent:v,domainAliases:C}=t;let R=c;const j=c.endsWith(T.BLOCKLET_SITE_GROUP_SUFFIX);let x=l;c===fe&&(x="dashboard_domain"),j&&(x="blocklet_domain");const[I,D]=p.useState(f),E={root:mr,domain:Zn,rule:fr}[l],L={paddingBottom:8,paddingLeft:8};if(l==="domain"){let W=function({domain:z,primaryDomain:U,rules:F}){let q=`http://${z}`;return U===fe?q=`${q}/${i.routing.adminPath.replace(/^\/+/,"")}`:F&&F.length&&F[0].pathPrefix&&(q=`${q}/${F[0].pathPrefix.replace(/^\/+/,"")}`),z!==fe?e.jsx(Co,{href:q,target:"_blank",rel:"noreferrer",onClick:ye=>ye.stopPropagation(),children:z}):z};if(y&&!j)return null;if(j){const z=c.replace(T.BLOCKLET_SITE_GROUP_SUFFIX,""),U=s.find(F=>F.meta.did===z);if(!U||U.controller)return null;R=U.meta.title||U.meta.name}W.propTypes={domain:u.string.isRequired,primaryDomain:u.string.isRequired,rules:u.array.isRequired};const me=()=>{D(!0)};let ce=(C||[]).filter(z=>z.value!==c);return ce=Yr(ce),[e.jsxs(pt,{alignItems:"flex-start",button:!0,disableGutters:!0,"data-cy":"rule-domain",children:[e.jsxs(ut,{onClick:()=>D(z=>!z),children:[d.length>0&&(I?e.jsx(bi,{}):e.jsx(ji,{})),e.jsx(E,{style:{fontSize:22}})]}),e.jsx(mt,{onClick:()=>D(z=>!z),className:`rule-name rule-name--depth${m}`,style:{flex:1},secondary:d.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:[c===T.DOMAIN_FOR_DEFAULT_SITE&&n("router.defaultSite"),c!==T.DOMAIN_FOR_DEFAULT_SITE&&!j&&e.jsx(W,{domain:c,primaryDomain:c,rules:d}),j&&R,d.length&&!I?e.jsx("span",{style:{marginLeft:5},children:`(${d.length} URL)`}):null,e.jsx("span",{style:{marginLeft:12}}),l==="domain"&&c!==T.DOMAIN_FOR_DEFAULT_SITE&&c!==fe&&!j&&e.jsxs(e.Fragment,{children:[e.jsx(Ge,{type:l,name:c},c),e.jsx("span",{style:{marginLeft:12}}),e.jsx(Ye,{siteId:a,domain:c,children:({open:z})=>e.jsx(G,{size:"small",onClick:U=>z(U),children:n("router.cert.genLetsEncryptCert.title")})})]})]}),ce.map(z=>{const U=typeof z!="string"?z.value:z;return e.jsxs("div",{className:"site-alias",children:[e.jsx(W,{domain:U,primaryDomain:c,rules:d}),e.jsx("span",{style:{marginLeft:12}}),e.jsx(Ge,{type:l,name:U},`domain-status-${c}`),e.jsx(Ye,{siteId:a,domain:U,children:({open:F})=>e.jsx(G,{size:"small",onClick:q=>F(q),children:n("router.cert.genLetsEncryptCert.title")})}),!z.isProtected&&e.jsx(Gt,{id:t.id,domain:U},"delete-domain-alias"),U!==fe&&U!==window.location.hostname&&e.jsx(Se,{...t,domain:U,type:"domainAlias",onRuleAdded:me},`action-${c}`)]},U)})]})}),e.jsx(te,{permission:"mutate_router",children:e.jsx(ft,{children:e.jsx(Se,{blocklets:s,...t,onRuleAdded:me,type:x},c)})})]},"parent"),e.jsx(Vr,{in:I,children:d.length>0&&e.jsx(yt,{component:"div",className:`rule-list rule-list--depth${m}`,disablePadding:!0,children:d.map(z=>e.jsx(Ee,{...z,parent:t,depth:m+1},z.id))},"children")},"rules")]}if(l==="root")return[e.jsxs(pt,{disableGutters:!0,"data-cy":"rule-root",children:[e.jsx(ut,{children:e.jsx(E,{style:{fontSize:22}})}),e.jsx(mt,{primary:c}),e.jsx(te,{permission:"mutate_router",children:e.jsx(ft,{children:e.jsx(Se,{blocklets:s,...t})})})]},"root"),d.length>0&&e.jsx(yt,{component:"div",className:`rule-list rule-list--depth${m}`,disablePadding:!0,children:d.map(W=>e.jsx(Ee,{expand:!y,...W,parent:t,depth:m+1},W.id))},"children")];let w=`/blocklets/${g.did}/overview`;g.type===T.ROUTING_RULE_TYPES.DAEMON&&(w="/");const P={meta:{did:i.did,name:"Blocklet Server Dashboard",version:i.version},status:"running",port:i.port},A=g.did===i.did?P:s.find(W=>W.meta.did===g.did),M=A&&A.status==="running"||g.type===T.ROUTING_RULE_TYPES.DAEMON,$=n(M?"router.healthy.ok":"router.healthy.error"),H=o[v.name]||{};return e.jsxs(pt,{className:"hover-item",divider:!0,disableGutters:!0,style:L,"data-cy":"rule-item",children:[e.jsx(ut,{className:"arrow-icon",children:e.jsx(E,{style:{fontSize:22}})}),e.jsx(mt,{primary:e.jsxs(O,{component:"div",className:"arrow-name",children:[e.jsx(O,{style:{wordBreak:"break-all"},className:"arrow-name-left",children:c}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),(g.type===T.ROUTING_RULE_TYPES.DAEMON||g.type===T.ROUTING_RULE_TYPES.BLOCKLET)&&e.jsxs(e.Fragment,{children:[v.name!==T.DOMAIN_FOR_DEFAULT_SITE&&M&&e.jsx(ee,{className:"arrow-name-middle",children:e.jsx(Yn,{href:_t(v.name,b),target:"_blank",underline:"hover",children:n("common.open")})}),v.name===T.DOMAIN_FOR_DEFAULT_SITE&&e.jsx(O,{component:"span",className:"arrow-name-middle",children:"Blocklet"}),!M&&e.jsx("span",{className:"arrow-name-middle",children:n("common.unavailable")}),e.jsx("span",{className:"arrow-name-arrow",children:"⟶"}),e.jsxs(Xr,{to:w,className:"arrow-name-right",children:[e.jsx(pe,{title:$,children:M?e.jsx(vi,{style:{color:"#44cdc6",fontSize:20}}):e.jsx(ur,{style:{color:"red",fontSize:20}})}),e.jsx("span",{children:A?A.meta.name:h}),A&&e.jsx("span",{style:{marginLeft:8},children:e.jsx(er,{status:A.status,progress:A.progress})})]})]}),g.type===T.ROUTING_RULE_TYPES.REDIRECT&&e.jsx(Yt,{prefix:b,domain:v.name,toUrl:g.url,isHttps:H.isHttps}),g.type===T.ROUTING_RULE_TYPES.NONE&&e.jsx(Vt,{})]})}),e.jsx(te,{permission:"mutate_router",children:e.jsx(ft,{children:e.jsx(Se,{blocklets:s,...t,did:g.did})})})]},c)}Ee.propTypes={type:u.string.isRequired,to:u.object,name:u.string.isRequired,title:u.string,id:u.string,items:u.array,parent:u.object,depth:u.number,expand:u.bool,isProtected:u.bool,pathPrefix:u.string,domainAliases:u.array};Ee.defaultProps={id:"",to:{},title:"",items:[],depth:0,parent:{},expand:!0,isProtected:!1,pathPrefix:"",domainAliases:[]};const pt=V(Kr)`
|
|
122
122
|
.MuiListItemText-root {
|
|
123
123
|
padding-right: 48px;
|
|
124
124
|
}
|
|
@@ -289,7 +289,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
289
289
|
align-items: flex-start;
|
|
290
290
|
width: 100%;
|
|
291
291
|
max-width: 720px;
|
|
292
|
-
`;function
|
|
292
|
+
`;function ms(){const t=Wn(),{node:n}=p.useContext(oi),{t:r}=p.useContext(Dt),{tab:i="basic"}=ai(),o=c=>{t(`/settings/${c}`)},s=[{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:zi,integration:Ki,about:oo,router:e.jsx(vn,{children:e.jsx(So,{})}),gateway:Ca,cert:e.jsx(vn,{children:e.jsx(va,{})})},l=a[i]||a.basic;return e.jsxs(wa,{children:[e.jsx(O,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:r("common.setting")}),e.jsxs(e.Fragment,{children:[e.jsx(si,{tabs:s,current:i,onChange:o,scrollButtons:"auto"}),e.jsx("div",{className:"page-content",children:p.isValidElement(l)?l:e.jsx(l,{node:n})})]})]})}const wa=V.main`
|
|
293
293
|
.page-header {
|
|
294
294
|
display: flex;
|
|
295
295
|
justify-content: space-between;
|
|
@@ -299,4 +299,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
299
299
|
.page-content {
|
|
300
300
|
margin-top: 16px;
|
|
301
301
|
}
|
|
302
|
-
`;export{
|
|
302
|
+
`;export{ms as default};
|