@abtnode/webapp 1.16.34 → 1.16.35
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-CB3E_i_7.js → Add-Iqq5UL4X.js} +1 -1
- package/dist/assets/{ArrowDropDown-CfqqzEVC.js → ArrowDropDown-BzdnsirE.js} +1 -1
- package/dist/assets/{Autocomplete-CA8T_8VG.js → Autocomplete-BjYb6zBA.js} +1 -1
- package/dist/assets/{Breadcrumbs-CixjL8_p.js → Breadcrumbs-B_yTpaGI.js} +1 -1
- package/dist/assets/{ButtonGroup-XrPwO8Q6.js → ButtonGroup-B9g57_Ix.js} +1 -1
- package/dist/assets/{CSSTransition-DeoxwYwB.js → CSSTransition-Bmy9En_5.js} +1 -1
- package/dist/assets/{CheckCircle-BBxMZden.js → CheckCircle-BSPdwpaz.js} +1 -1
- package/dist/assets/{ChevronLeft-BVEhqL0a.js → ChevronLeft-DIrjaRfk.js} +1 -1
- package/dist/assets/{ChevronRight-Dgndy_Tx.js → ChevronRight-BhDKV57P.js} +1 -1
- package/dist/assets/{Delete-D7NoNb87.js → Delete-Cgqm12Xe.js} +1 -1
- package/dist/assets/{DeleteOutline-CehpYKMD.js → DeleteOutline-DfpoQfad.js} +1 -1
- package/dist/assets/{Done-BxwBGo9Z.js → Done-CQmwtYHM.js} +1 -1
- package/dist/assets/{Edit-t5t3YBFr.js → Edit-C8sUZUU6.js} +1 -1
- package/dist/assets/{EditIcon-DPfkBGTz.js → EditIcon-CZCunhmA.js} +1 -1
- package/dist/assets/{ExpandMore-BiJn2W3A.js → ExpandMore-BYtoX48D.js} +1 -1
- package/dist/assets/{Google-Ccnubb91.js → Google-DKZLPo7-.js} +1 -1
- package/dist/assets/{HelpOutline-BqTojNnK.js → HelpOutline-DGp-1BRD.js} +1 -1
- package/dist/assets/{Https-amX5pnZ-.js → Https-BYryT_bQ.js} +1 -1
- package/dist/assets/{InputAdornment-1LTeHxh6.js → InputAdornment-vuq-FjCl.js} +1 -1
- package/dist/assets/{InputLabel-BEvb6pBW.js → InputLabel-BpHdIT50.js} +1 -1
- package/dist/assets/{LastPage-__GqzflZ.js → LastPage-Cr-0h2EM.js} +1 -1
- package/dist/assets/{Launch-Biswalm8.js → Launch-rq__ygCr.js} +1 -1
- package/dist/assets/{Link-D-d6ABah.js → Link-DdW83tAD.js} +1 -1
- package/dist/assets/{ListSubheader-D01PmlUo.js → ListSubheader-D0hIXr7u.js} +1 -1
- package/dist/assets/{LoadingButton-DEoIaYnW.js → LoadingButton-DM3opAqK.js} +1 -1
- package/dist/assets/{LockIcon-LoltP6V8.js → LockIcon-DCJGPPEt.js} +1 -1
- package/dist/assets/{Loop-Md-TPW17.js → Loop-nI3ml_tu.js} +1 -1
- package/dist/assets/{MoreHoriz-C7pSvKTB.js → MoreHoriz-BLXWI1Fn.js} +1 -1
- package/dist/assets/{MoreVert-Cf6FwqrB.js → MoreVert-CVu4BzQC.js} +1 -1
- package/dist/assets/{Pagination-CKSHSfPE.js → Pagination-Zy0ZVuUr.js} +1 -1
- package/dist/assets/{Public-BVz1VeTj.js → Public-DpP3zQ2V.js} +1 -1
- package/dist/assets/{SchemaReference.es-BKsuZfnr.js → SchemaReference.es-spndC1oz.js} +1 -1
- package/dist/assets/{Search-DVTTUfAR.js → Search-DgsnShxd.js} +1 -1
- package/dist/assets/{Select-ZoGQlFtQ.js → Select-C9prPdE8.js} +1 -1
- package/dist/assets/{ShoppingCart-Bs1vpvBu.js → ShoppingCart-BMe5IDQI.js} +1 -1
- package/dist/assets/{Skeleton-kSow7Hmt.js → Skeleton-BrUMN46n.js} +1 -1
- package/dist/assets/{Stepper-DHyMnin3.js → Stepper-vUXTA0k0.js} +1 -1
- package/dist/assets/{TextField-DAI8Qdpe.js → TextField-DmmMqMAo.js} +1 -1
- package/dist/assets/{ToggleButtonGroup-BqAg9PDl.js → ToggleButtonGroup-Ce-1uV__.js} +1 -1
- package/dist/assets/{ViewColumn-B-n8_W0D.js → ViewColumn-avwxMG4J.js} +1 -1
- package/dist/assets/{ViewList-CRm6tuSw.js → ViewList-CC4-2p7Y.js} +1 -1
- package/dist/assets/{_createAggregator-C8I6G1rY.js → _createAggregator-CB0GKIBb.js} +1 -1
- package/dist/assets/{actions--Jh9Ytkt.js → actions-C0Zbx3QK.js} +1 -1
- package/dist/assets/{actions-ChzBM1oM.js → actions-d05pHP8u.js} +1 -1
- package/dist/assets/{agreement-Bya0zAe5.js → agreement-Bz4EKxUK.js} +1 -1
- package/dist/assets/api-DUyjcTBU.js +1 -0
- package/dist/assets/{app-avatar-CkwqyV_0.js → app-avatar-CulnXVaa.js} +1 -1
- package/dist/assets/ar-BDRVvPrM.js +3 -0
- package/dist/assets/{audit-logs-D-hcAUw3.js → audit-logs-3c6G-2jN.js} +1 -1
- package/dist/assets/{base32-qDJD7e6F.js → base32-CHpjH8PG.js} +1 -1
- package/dist/assets/blocklet-BysF7NjN.js +1 -0
- package/dist/assets/{brace-fold.es-DGwXyxd0.js → brace-fold.es-CIhjNimf.js} +1 -1
- package/dist/assets/{bundle-avatar-CAMrkHMQ.js → bundle-avatar-CqTlQZdw.js} +1 -1
- package/dist/assets/{chart-X4Bt4jVl.js → chart-BV_xvVd1.js} +1 -1
- package/dist/assets/{click-to-copy-cyfJmCk0.js → click-to-copy-D6a3LbT7.js} +1 -1
- package/dist/assets/{closebrackets.es-BgVawAXa.js → closebrackets.es-D1Zn5koL.js} +1 -1
- package/dist/assets/{codemirror.es-BoE9lBuH.js → codemirror.es-DXnzri9H.js} +1 -1
- package/dist/assets/{comment.es-B63PqK2d.js → comment.es-DvMop7gW.js} +1 -1
- package/dist/assets/{config-navigation-C4GRMVsQ.js → config-navigation-CbheNo97.js} +3 -3
- package/dist/assets/{connect-to-DBFguNNN.js → connect-to-wLmbAcvg.js} +1 -1
- package/dist/assets/de-B227a1no.js +3 -0
- package/dist/assets/{delete-confirm-BiicGoxV.js → delete-confirm-CG9pn4Op.js} +1 -1
- package/dist/assets/{detail-BJdKApB9.js → detail-CiYveroN.js} +3 -3
- package/dist/assets/{dialog.es-CKZU7uWD.js → dialog.es-BKReOq1S.js} +1 -1
- package/dist/assets/{download-ChxYFn7N.js → download-C3ZD7Sji.js} +1 -1
- package/dist/assets/emotion-react.browser.esm-Ce5DYL2G.js +1 -0
- package/dist/assets/es-DAn9P2pX.js +3 -0
- package/dist/assets/{foldgutter.es-BV9veuLJ.js → foldgutter.es-BSJD2IC7.js} +1 -1
- package/dist/assets/fr-hW_Tvq9a.js +3 -0
- package/dist/assets/{get-safe-url-Dt9rPUt5.js → get-safe-url-D9TInGJ7.js} +1 -1
- package/dist/assets/{get-safe-url-QTk1Sdfr.js → get-safe-url-d4wdsWI-.js} +1 -1
- package/dist/assets/getValidReactChildren-CxWlB_GY.js +1 -0
- package/dist/assets/hi-6yAhJdFx.js +1 -0
- package/dist/assets/{hint.es-DAtLgdHT.js → hint.es-B_n7A6VT.js} +1 -1
- package/dist/assets/{hint.es2-VXU0fpwG.js → hint.es2-Cmps2vt6.js} +1 -1
- package/dist/assets/id-BMkTW_Ii.js +3 -0
- package/dist/assets/{iframe-CDtW5AKp.js → iframe-BKue5fLa.js} +1 -1
- package/dist/assets/{index-DKtwy9xB.js → index-B7UCZsjO.js} +1 -1
- package/dist/assets/{index-BzuXYnd8.js → index-B8LxINcc.js} +1 -1
- package/dist/assets/{index-BzNA0CqE.js → index-BBO4eV6M.js} +1 -1
- package/dist/assets/{index-D7XN3Ep7.js → index-BEA-r-Xt.js} +1 -1
- package/dist/assets/{index-CuulkVT6.js → index-BZpDshq_.js} +1 -1
- package/dist/assets/{index-CpcFfAqd.js → index-Bjz36idA.js} +1 -1
- package/dist/assets/{index-CMciRqbU.js → index-BlzJjap-.js} +1 -1
- package/dist/assets/{index-BVo1y4px.js → index-Bnj8RUhY.js} +1 -1
- package/dist/assets/{index-gqghhYg-.js → index-BotJ3AX5.js} +1 -1
- package/dist/assets/{index-BqY9yKTd.js → index-Bqlp4s5C.js} +1 -1
- package/dist/assets/{index-DkBqG4kx.js → index-BsQBtUGA.js} +1 -1
- package/dist/assets/{index-CqRkHpDP.js → index-BxmndiW6.js} +1 -1
- package/dist/assets/{index-BAFoOKLc.js → index-C8YFeWmi.js} +1 -1
- package/dist/assets/{index-DiOMxvTK.js → index-CABG6WnA.js} +1 -1
- package/dist/assets/{index-Cvos3rah.js → index-CF-46tr4.js} +1 -1
- package/dist/assets/{index-1m57D84j.js → index-COjbf0ze.js} +1 -1
- package/dist/assets/{index-B4paaVul.js → index-CWKzScD8.js} +3 -3
- package/dist/assets/{index-CHFZEsTy.js → index-CWTorMDl.js} +1 -1
- package/dist/assets/{index-BBwK0xsH.js → index-CXsdGe6B.js} +1 -1
- package/dist/assets/{index-B422IDQn.js → index-CXxy8kEI.js} +1 -1
- package/dist/assets/{index-CHm9qPJD.js → index-CcQsJNy1.js} +1 -1
- package/dist/assets/{index-D-ZaUnBi.js → index-CezAO7BR.js} +1 -1
- package/dist/assets/{index-DcUEykKc.js → index-Cgo_tcN6.js} +5 -5
- package/dist/assets/{index-DEy7D_Af.js → index-CnIyAnd4.js} +1 -1
- package/dist/assets/{index-Bam7k3he.js → index-Cq1Ew3yw.js} +1 -1
- package/dist/assets/{index-D_9nA38Z.js → index-Csp4QH_V.js} +1 -1
- package/dist/assets/{index-CwCvYckH.js → index-Cu_P5aPZ.js} +1 -1
- package/dist/assets/{index-B5aAzE-y.js → index-CvGXEvkW.js} +1 -1
- package/dist/assets/{index-BPomuV_D.js → index-CvqQay-i.js} +1 -1
- package/dist/assets/{index-BuCRKgwB.js → index-CwFt9Te9.js} +1 -1
- package/dist/assets/{index-fz_DOQ-g.js → index-D2z1mjPq.js} +1 -1
- package/dist/assets/index-D3iLUVT_.js +5 -0
- package/dist/assets/{index-D1i_dZNg.js → index-D6AgsP-4.js} +1 -1
- package/dist/assets/{index-DIFx05Kl.js → index-D9VUHffN.js} +1 -1
- package/dist/assets/{index-QsMyNs5M.js → index-DPd4Sq53.js} +1 -1
- package/dist/assets/{index-R-nzvsnB.js → index-Db12S-QJ.js} +3 -3
- package/dist/assets/{index-6eKiKwxy.js → index-DrDaIwTG.js} +1 -1
- package/dist/assets/{index-CTanw7BS.js → index-GQZM8G46.js} +1 -1
- package/dist/assets/{index-LfcBen0e.js → index-M3td2VXe.js} +1 -1
- package/dist/assets/{index-8xWytbgk.js → index-fVZinT7E.js} +1 -1
- package/dist/assets/{index-wbEYjXbS.js → index-gvPnSndt.js} +3 -3
- package/dist/assets/{index-AcK_GNM5.js → index-qhlxzrLU.js} +2 -2
- package/dist/assets/{index-CvoQfwdo.js → index-szLyLiKt.js} +6 -4
- package/dist/assets/{index.esm-J1O3GSwj.js → index.esm-CSdzhfxu.js} +1 -1
- package/dist/assets/{info-addon.es-Bw6LVdU4.js → info-addon.es-BiJ84hAD.js} +1 -1
- package/dist/assets/{info.es-ykccBWpX.js → info.es-W2OzC3tp.js} +1 -1
- package/dist/assets/{install-from-url-CsgX1Mrn.js → install-from-url-DkTaMKuV.js} +1 -1
- package/dist/assets/{invitation-anSRhUVJ.js → invitation-BOPhDE2y.js} +1 -1
- package/dist/assets/{is-path-prefix-equal-Cr4sQmMt.js → is-path-prefix-equal-ZyMnCod8.js} +1 -1
- package/dist/assets/{item-C4Tw6kqm.js → item-B4oZu1M-.js} +1 -1
- package/dist/assets/ja-DMoxkdsA.js +3 -0
- package/dist/assets/{javascript.es-DOjc_sbG.js → javascript.es-DJ9F-IUY.js} +1 -1
- package/dist/assets/{jump-to-line.es-D8I8baeT.js → jump-to-line.es-x9kGGHmA.js} +1 -1
- package/dist/assets/{jump.es-QWYfYf8Z.js → jump.es-6YBKNjTH.js} +1 -1
- package/dist/assets/ko-C926kBBj.js +3 -0
- package/dist/assets/{lint.es-BJSU_PKG.js → lint.es-DgsUO5dq.js} +1 -1
- package/dist/assets/{lint.es2-D1FwC8bn.js → lint.es2-BQyeTE1J.js} +1 -1
- package/dist/assets/{lint.es3-n4lT7F8v.js → lint.es3-BTG1clr1.js} +1 -1
- package/dist/assets/{list-header-8M5v0mEZ.js → list-header-CXtRgeb8.js} +1 -1
- package/dist/assets/{log-DnibkVKU.js → log-Cadt5khV.js} +1 -1
- package/dist/assets/{logo-uploader-FvI8Gg-V.js → logo-uploader-DH6CrN_X.js} +3 -3
- package/dist/assets/{lottie-react.esm-NYbV_1l0.js → lottie-react.esm-BSE7Hou8.js} +1 -1
- package/dist/assets/{matchbrackets.es-BpEPtDVu.js → matchbrackets.es-CMtdKoWo.js} +1 -1
- package/dist/assets/{memory-Besqmmjk.js → memory-CMzX15_3.js} +1 -1
- package/dist/assets/{mode.es-4LyXjQl6.js → mode.es-h6vBm9Ab.js} +1 -1
- package/dist/assets/{mode.es2-CoWlBN1V.js → mode.es2-obVTlMzb.js} +1 -1
- package/dist/assets/{mode.es3-AkivrF_d.js → mode.es3-Dvsck4WY.js} +1 -1
- package/dist/assets/{onlineParser.es-BTrI7ZNy.js → onlineParser.es-CNHcXfZ_.js} +1 -1
- package/dist/assets/{overview-D_CqZ_Zd.js → overview-DYYEl0kX.js} +1 -1
- package/dist/assets/pt-S0JrQ9Y4.js +1 -0
- package/dist/assets/{resource-dialog-Ce7XfSZ0.js → resource-dialog-B3-hy8cw.js} +1 -1
- package/dist/assets/ru-Qa5qbmx5.js +1 -0
- package/dist/assets/{runtime-D3uKAyT-.js → runtime-BXpBg9UE.js} +1 -1
- package/dist/assets/{schema-B2s_JuVP.js → schema-Bo-nEED9.js} +1 -1
- package/dist/assets/sdk-DG5Padvs.js +1 -0
- package/dist/assets/{search.es-1EGQHQDD.js → search.es-C2YPN9Zf.js} +1 -1
- package/dist/assets/{searchcursor.es-DAAQMAO0.js → searchcursor.es-DtFpodBc.js} +1 -1
- package/dist/assets/{service-CbegThe7.js → service-DCusgPUg.js} +1 -1
- package/dist/assets/{shorten-label-BLL_il_j.js → shorten-label-T_aHg8P2.js} +1 -1
- package/dist/assets/{show-hint.es-B7s00sXv.js → show-hint.es-Ck00IMH1.js} +1 -1
- package/dist/assets/{simple-select-Dkp26b_9.js → simple-select-DT-WXgAf.js} +1 -1
- package/dist/assets/{slicedToArray-BSVcAmJr.js → slicedToArray-C3L866dd.js} +1 -1
- package/dist/assets/{spaces-CDcGrBnn.js → spaces-CqfN1sHH.js} +1 -1
- package/dist/assets/{status-DDubVmJJ.js → status-BAuBwMKk.js} +1 -1
- package/dist/assets/{sublime.es-BHvkWbHt.js → sublime.es-v7EM771f.js} +1 -1
- package/dist/assets/{switch-control-BRA6GhdU.js → switch-control-C-0E-2ue.js} +1 -1
- package/dist/assets/{table-icons-ZE6_-sIK.js → table-icons-C0V1baGk.js} +1 -1
- package/dist/assets/{team-BsMAhTHe.js → team-C90gWPMY.js} +1 -1
- package/dist/assets/th-BoRhU51f.js +1 -0
- package/dist/assets/{toUpper-ClbAdkoz.js → toUpper-CFkfojgH.js} +1 -1
- package/dist/assets/{traffic-DvVSCQZw.js → traffic-BAWl5wSo.js} +1 -1
- package/dist/assets/{trim-CiSVnwN4.js → trim-VWi233vQ.js} +1 -1
- package/dist/assets/{uniqBy-L5gdenz-.js → uniqBy-DMKiy0t2.js} +1 -1
- package/dist/assets/{url-evaluation-CkdeW9xb.js → url-evaluation-BS1bNemt.js} +1 -1
- package/dist/assets/{url-join-Cj3I6f7j.js → url-join-C5gF0TYO.js} +1 -1
- package/dist/assets/{useAsync-C_2Izamz.js → useAsync-Cl9cUzHN.js} +1 -1
- package/dist/assets/{useLocalStorage-Dm8U5SnM.js → useLocalStorage-GLWMibqZ.js} +1 -1
- package/dist/assets/{useThemeProps-DLZVHtlO.js → useThemeProps-e0r4gLct.js} +1 -1
- package/dist/assets/{util-Bwj7-kW5.js → util-BL1BrZx8.js} +1 -1
- package/dist/assets/vi-klSG5jCL.js +1 -0
- package/dist/assets/{wait-container-9ZyoIbmc.js → wait-container-LWuRgdV5.js} +1 -1
- package/dist/assets/{withStyles-BUxuIWEH.js → withStyles-CK3EIjsg.js} +1 -1
- package/dist/assets/wrap-locale-CrH4CaJK.js +1 -0
- package/dist/assets/zh-Bbb3gm_K.js +4 -0
- package/dist/assets/zh-tw-D9dNfXQ_.js +3 -0
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/package.json +1 -1
- package/dist/assets/api-C-r9W7Df.js +0 -1
- package/dist/assets/ar-DdnvAQ3d.js +0 -1
- package/dist/assets/blocklet-DeYEPs7W.js +0 -1
- package/dist/assets/de-DMQbJIQd.js +0 -1
- package/dist/assets/emotion-react.browser.esm-D7mngV6f.js +0 -1
- package/dist/assets/es-D1yxfOJ-.js +0 -1
- package/dist/assets/fr-Db87bqVK.js +0 -1
- package/dist/assets/getValidReactChildren-Dsdsd33U.js +0 -1
- package/dist/assets/hi-Df99Lcv0.js +0 -1
- package/dist/assets/id-DtIWnQAT.js +0 -1
- package/dist/assets/index-C8jKkD0N.js +0 -5
- package/dist/assets/ja-C6Sh7xsg.js +0 -1
- package/dist/assets/ko-DOMsI63X.js +0 -1
- package/dist/assets/pt-DY-L1LL9.js +0 -1
- package/dist/assets/ru-CsG3qZSl.js +0 -1
- package/dist/assets/sdk-BDOUO8dj.js +0 -1
- package/dist/assets/th-Bxw1yx6O.js +0 -1
- package/dist/assets/vi-Df7bxeAg.js +0 -1
- package/dist/assets/wrap-locale-CC42vlla.js +0 -1
- package/dist/assets/zh-Cl_8lQ_b.js +0 -2
- package/dist/assets/zh-tw-BWV-R4Hq.js +0 -1
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const a={setup:{connect:{title:"Tanda Tangan Diperlukan",scan:"Hubungkan dompet DID Anda untuk menjadi pemilik server ini",confirm:"Silakan tinjau operasi ini di Dompet DID Anda",success:"Akun Anda terhubung ke server ini"},keyPair:{title:"Diperlukan KeyPair yang Dihasilkan",scan:"Hubungkan dompet DID Anda untuk menghasilkan pasangan kunci untuk aplikasi ini",confirm:"Tinjau operasi ini di dompet DID Anda",success:"Pasangan kunci Anda disimpan dengan aman"},verify:{title:"Memerlukan Kredensial Kepemilikan",scan:"Hubungkan Dompet DID Anda untuk menyediakan kredensial kepemilikan",confirm:"Periksa operasi ini di Dompet DID Anda",success:"Akun Anda terhubung ke server ini"},accept:{title:"Menerima sertifikat kepemilikan server",scan:"Hubungkan Dompet DID Anda untuk memberikan kredensial kepemilikan",confirm:"Review operasi ini di dompet DID Anda",success:"Akun Anda terhubung ke server ini"},title:"Mengatur server Blocklet",steps:{eula:"Perjanjian Lisensi Pengguna Akhir",eulaFooter:"Saya telah membaca dan menyetujui syarat dan ketentuan EULA",connect:"Hubungkan Dompet Pemilik DID",verify:"Verifikasi Kepemilikan",basicSettings:"Pengaturan Dasar",launchApp:"Mulai Aplikasi",complete:"Lengkap"},congratulation:"Selamat! Server Blocklet Anda aman dan siap digunakan",redirectButton:"Bawa saya ke dasbor!"},login:{loginTo:"Terhubung ke",description:"Hanya pemilik server dan anggota yang disetujui dapat mengakses dashboard.",switchDid:{title:"Beralih Dompet DID",scan:"Pindai kode QR berikut untuk beralih akun",confirm:"Konfirmasi pertukaran di dompet DID Anda",success:"Berhasil beralih"},switchSpecifiedDid:{title:"Beralih Dompet DID",scan:"Anda perlu mengganti DID menjadi {did} untuk menyelesaikan tindakan-tindakan berikut",confirm:"Konfirmasi pindah di DOMPET DID Anda",success:"Berhasil beralih"},connect:{title:"Hubungkan Dompet DID",scan:"Hubungkan Dompet DID Anda untuk menyediakan paspor",confirm:"Konfirmasi di dompet DID Anda",success:"Anda berhasil terhubung"},verify:{title:"Verifikasi akses",scan:"Hubungkan dompet DID Anda ke pemilik atau admin saat ini",confirm:"Konfirmasi di Dompet DID Anda",success:"Akses Anda diverifikasi",abort:"Verifikasi akses dibatalkan",description:"Anda perlu memberikan paspor {roles} untuk melakukan operasi ini, Anda hanya akan diminta untuk memverifikasi lagi setelah 1 jam tidak aktif.",descriptionForDestroy:"Anda perlu menyediakan paspor {roles} untuk melakukan operasi berbahaya ini demi memastikan keselamatan."}},acceptServer:{title:"Klaim Server dengan NFT Kepemilikan",tooltip:"Jika Anda menerima kepemilikan server nft, Anda dapat mengklaim paspor pemilik Anda dengan tautan ini."},exchangePassport:{title:"Tukar paspor Anda dengan NFT",success:"Anda telah berhasil menukar paspor Anda dan masuk dengan paspor",login:"Login",tooltip:"Jika Anda memiliki NFT dari koleksi {collections}, Anda dapat menukar paspor Anda dengan tautan ini.",dialog:{title:"Dapatkan Paspor dengan NFT",scan:"Sambungkan Dompet DID Anda untuk menyajikan NFT Anda dan dapatkan paspor",confirm:"Pilih NFT di Dompet DID Anda",success:"Paspor telah berhasil ditukar"}},payablePassport:{title:"Beli paspor dengan pembayaran",tooltip:"Jika Anda tidak memiliki paspor, Anda dapat membeli paspor dengan tautan ini."},sidebar:{dashboard:"Dashboard",blocklets:"Blocklets",console:"Konsol",settings:"Pengaturan"},system:{total:"Total",used:"Digunakan",free:"Gratis",cores:"Jumlah inti",instances:"Jumlah instansi"},common:{invalid:"Tidak valid",about:"Tentang",access:"Akses",accessKey:"Kunci Akses",action:"Aksi",actions:"Tindakan",add:"Tambah",address:"Alamat",afterTime:"Setelah {time}",allow:"Izinkan",alreadyExist:"sudah ada",approve:"Menyetujui",approved:"Disetujui",appUrl:"URL Aplikasi",auditLogs:"Jejak Audit",author:"Penulis",avatar:"Avatar",back:"Kembali",basic:"Dasar",basicInfo:"Informasi Dasar",profile:"Profil",bind:"Mengikat",blocklet:"Blok",blocklets:"Blocklets",blockletsStorage:"Penyimpanan Blocklets",cacheStorage:"Penyimpanan Cache",cancel:"Batal",certificate:"Sertifikat",category:"Topik Log",click:"Klik untuk menyalin",close:"Tutup",selectAll:"Pilih Semua",unselectAll:"Batalkan Pilihan Semua",collapseAll:"Tutup Semua",community:"URL Komunitas",complete:"Lengkap",componentBasicInfo:"Informasi Dasar Komponen",components:"Blocklets",config:"Konfigurasi",configuration:"Konfigurasi",configNavigation:"Navigasi",configSuccess:"Konfigurasi berhasil",confirm:"Konfirmasi",connect:"Menghubungkan",console:"Konsol",continue:"Lanjutkan",continueWith:"Lanjutkan Dengan",copiedTip:"Tercopy",copyAndClose:"Salin & Tutup",copyTip:"Klik untuk menyalin",coreStorage:"Penyimpanan Inti",cpu:"CPU",create:"Buat",createSuccess:"Buat Kunci Akses",created:"Dibuat di",createdAt:"Dibuat pada",createdBy:"Dibuat oleh",dAddress:"Identitas Terdesentralisasi (DID)",dataStorage:"Penyimpanan di Disk Lokal",delConfirm:"Hapus",delConfirmDescription:"Konfirmasi hapus {data}?",delete:"Hapus",dependents:"Tergantung",description:"Deskripsi",detail:"Detail",did:"DID",disk:"Disk",diskInfo:"Info Disk",docker:"Apakah Docker",documentation:"Dokumentasi",domain:"Domain",downgradeTo:"Downgrade ke {name}",download:"Unduh",downloading:"Mengunduh",edit:"Edit",email:"Email",phone:"Telepon",empty:"Kosong",emptyData:"Tidak ada hasil ditemukan",enable:"Aktifkan",engine:"Mesin",env:"Lingkungan",environment:"Lingkungan",expandAll:"Perluaskan Semua",expired:"Kedaluwarsa",expires:"Masa berlaku",export:"Ekspor",externalIp:"IP Eksternal",failed:"Gagal",filter:"Filter Log",fingerprint:"Pencetakan sidik jari",finish:"Selesai",forbid:"Melarang",free:"Gratis",general:"Umum",gitpod:"APA ITU Gitpod",goEULA:'Klik untuk melihat "Perjanjian Lisensi Pengguna Akhir"',group:"Grup",image:"Ini adalah gambar",install:"Menginstal",installed:"Terinstall",installedAt:"Terpasang di",installSuccess:"Berhasil terpasang",installing:"Menginstal",internalIp:"IP Internal",introduction:"Pengenalan",invite:"Undang",inviting:"Mengundang",ip:"IP",isPublic:"Publik",issue:"Masalah",issuer:"Penerbit",item:"Item",joined:"Bergabung",key:"Kunci",lastPublishedAt:"Diterbitkan pada",launcher:"Informasi launcher",leavePageTip:"Apakah anda yakin ingin meninggalkan halaman ini?",link:"Tautan",loading:"Memuat",log:"Lihat Log",logStorage:"Penyimpanan Log",login:"Login",logo:"Logo",logout:"Logout",logs:"Log",manageTeam:"Mengelola Tim",marketplace:"Pasar",member:"Anggota",members:"Anggota",memory:"Ingatan",meta:"Data Meta",analytics:"Analitik",runtime:"Waktu eksekusi",traffic:"Lalu lintas",more:"Lebih",mountPoint:"MountPoint",name:"Nama",next:"Berikutnya",no:"Tidak",noData:"Tidak ada catatan untuk ditampilkan",notice:"Hal buruk yang tidak terduga akan terjadi jika kamu tidak membaca ini!",noticeTitle:"Pemberitahuan",notification:"Notifikasi",open:"Buka",management:"Manajemen",os:"Sistem Operasi",overview:"Gambaran umum",owner:"Pemilik",page404:"Halaman 404",passport:"Paspor",permission:"Izin",port:"Port",pre:"Sebelumnya",preferences:"Preferensi",preview:"Pratinjau",protected:"Terlindungi",protocol:"Protokol",purchase:"Pembelian",readMore:"Lebih",redirect:"Mengalihkan",redirectCode:"Kode Pengalihan",redirectPermanently:"Pengalihan permanen",redirectTemporary:"Pengalihan Sementara",redirectUrl:"URL Dialihkan",rewrite:"Menulis ulang",release:"Rilis",rewriteUrl:"Mengubah URL",reject:"Menolak",reload:"Muat ulang",remark:"Keterangan",remove:"Hapus",removeSuccess:"Berhasil dihapus",renew:"Memperbarui",reportIssue:"Laporkan masalah",required:"Diperlukan",requiredErrorText:"{name} diperlukan",resource:"Sumberdaya",restart:"Mulai Ulang",restore:"Pulihkan",retry:"Coba lagi",revoke:"Membatalkan",role:"Peran",running:"Berlari",runtimeInfo:"Info Waktu Jalankan",save:"Simpan",saveChanges:"Simpan Perubahan",saveSuccess:"Berhasil disimpan",scheduleFailed:"Jadwal gagal",scheduleSuccess:"Berhasil dijadwalkan",scope:"Lingkup",screenshot:"Tangkapan Layar",search:"Cari",security:"Keamanan",serverDid:"Server DID",serverVersion:"Versi Server",setting:"Pengaturan",start:"Mulai",status:"Status",stop:"Berhenti",storage:"Penyimpanan",backup:"Backup",store:"Toko",succeeded:"Berhasil",subscription:"Langganan",support:"Dukungan: URL atau Email",switch:"Beralih",team:"Tim",the:"O",timeAgo:"{time} yang lalu",title:"Judul",type:"Jenis",unavailable:"Tidak tersedia",update:"Perbarui",updateAvailable:"Versi terbaru {version} tersedia",updatedAt:"Diperbarui pada",updatedBy:"Diperbarui oleh",upgrade:"Upgrade",upgradeTo:"Tingkatkan ke",upgrading:"Peningkatan",uptime:"Waktu aktif",url:"URL",valid:"Valid",value:"Nilai",version:"Versi",visit:"Kunjungi",waiting:"Menunggu",webhook:"Intergrasi",yes:"Ya",invalidParam:"Parameter Tidak Valid",launch:"Peluncuran",price:"Harga",redirecting:"Mengalihkan",error:"Error",reminder:"Pengingat",normal:"Normal",gateway:"Gerbang",verifyNFT:"Verifikasi NFT",errorMessage:"Pesan kesalahan:",slugifyHint:"Titik mount aktual akan menjadi: {value}",strategy:"Strategi",auto:"Mobil",manual:"Manual",progress:"Dalam progres",startTime:"Waktu Mulai",endTime:"Waktu berakhir",selected:"Terpilih",timeoutError:"Kesalahan waktu habis",tags:"Tags",connectToStore:"Terhubung ke Toko",uploaded:"Diunggah",upload:"Unggah",blockletStudio:"Studio",visitStore:"Kunjungi Toko",reconnect:"Menghubungkan kembali",change:"Perubahan",disconnect:"Putuskan Sambungan",sourceApp:"Milik aplikasi",visitTarget:"Kunjungi {name}",upgradeServer:"Tingkatkan Server",display:"Tampilkan",requiredInputPlaceholder:"Masukkan {name}",refresh:"Segarkan",moveUp:"Pindahkan ke atas",moveDown:"Pindahkan ke bawah",enabled:"Diaktifkan",disabled:"Tidak aktif",homepage:"Halaman Utama",buy:"Beli",view:"Lihat",homepageTip:"Halaman Utama atau URL Demo Langsung",repository:"Repositori"},blocklet:{external:"Eksternal",notFound:"Blocklet tidak ditemukan di server ini, mungkin telah dihapus",installFromMarket:"Pasang Blok Baru",installFromUrl:"Instalasi dari URL",installFromCreate:"Buat Blocklet",installFromDiskBackup:"Kembalikan dari server ini",installedAt:"Terinstal di",internal:"Internal",startedAt:"Dimulai pada",stoppedAt:"Berhenti di",urlEmptyTip:"URL tidak dapat diakses",goToAddRule:"Pergi ke Tambah",services:"Layanan Terbuka",upstreamPort:"Port Hulu",noService:"Tidak ada layanan",appId:"App DID",appPid:"DID permanen",alsoKnownAs:"Juga dikenal sebagai",skSource:"Dompet Pemilik",reloadSuccess:"Blocklet berhasil dimuat ulang",statusTip:"Blocklet adalah {status}",initialUptime:"Kurang dari 1m",dashboard:"Papan Dasbor Blocklet",noComponent:"Aplikasi tidak memiliki komponen dan tidak dapat dimulai",fromUrl:{title:"Pasang Blocklet",label:"URL Meta Blocklet",description:"URL harus menunjuk ke File Meta dari Blocklet. Jika Anda perlu merujuk ke file lokal, silakan tambahkan awalan file://, misalnya file:///Users/foo/blocklet.json.",confirm:"Memasang",step0:"URL masukan",step1:"Konfirmasi Meta Info",existTipPrefix:"Blocklet dengan DID yang sama sudah ada, versi yang tersedia adalah {version}",existTipSuffix:"Silakan pasang versi yang lebih tinggi."},action:{stopDescription:"Menghentikan bloklet akan membuat antarmuka publiknya tidak dapat diakses, yang dapat menyebabkan kegagalan pengguna akhir",stopComponentDescription:"Menghentikan komponen akan membuat antarmuka publiknya tidak dapat diakses, yang dapat menyebabkan kegagalan pengguna akhir",confirmStop:"Ya, Berhentilah",cancelDownloadDescription:"Batalkan unduhan {name}?",removeApplicationDescription:"Menghapus aplikasi akan menghapus kode dan data yang dihasilkan oleh aplikasi ini, yang tidak dapat dipulihkan jika Anda tidak memiliki cadangan.",removeApplicationAfterBackup:"Cadangkan dan hapus aplikasi tersebut. Anda dapat mengembalikan aplikasi dari server ini jika anda membutuhkannya",removeApplicationComplete:"Hapuslah baik kode maupun data untuk aplikasi ini",removeComponentDescription:"Menghapus komponen akan menghapus kode dan data yang dihasilkan oleh komponen ini, yang tidak dapat dikembalikan jika Anda tidak memiliki cadangan",removeComponentKeepData:"Simpan data untuk komponen ini, hanya hapus kode",removeComponentComplete:"Hapus baik kode maupun data untuk komponen ini",confirmRemove:"Ya, Hapus itu",confirmComponentRemove:"Ya, Hapus itu",upgradeDescription:"Mengupgrade blocklet akan membuatnya sementara tidak tersedia, apakah Anda yakin ingin melanjutkan?",confirmUpgrade:"Ya, Tingkatkanlah",confirmRestart:"Ya, Mulai Ulang itu",restartDescription:"Menghidupkan kembali blocklet akan ditangguhkan sementara dan mungkin tidak dapat mulai karena perubahan konfigurasi"},dev:{modeTip:"Silakan beralih Blocklet Server ke mode DEBUG"},index:{tableTitle:"Kelola Blocklets Anda",noBlocklet:"Tidak ada blocklet yang ditemukan di Server Blocklet ini, pasang blocklet dari pasar untuk memulai."},admin:{iframeTitle:"Antarmuka Admin Blocklet",title:"Antarmuka Admin",noContent:"Blocklet ini tidak memiliki antarmuka admin",securityError:"SecurityError: Tidak dapat membuka URL admin dari akses frame cross-origin"},config:{name:"Nama Aplikasi",description:"Deskripsi Aplikasi",sk:"Kunci rahasia untuk dompet aplikasi",logoSquare:"Logo Aplikasi",logoRect:"Logo rect",logoRectDesc:"Biasanya ditampilkan di bagian atas halaman, default ke logo aplikasi",logoFavicon:"Favicon",logoFaviconDesc:"Biasanya ditampilkan di bilah alamat browser atau halaman tab, default untuk logo aplikasi",clusterSize:"Jumlah contoh saat menjalankan blocklet ini dalam mode cluster",copyrightOwner:"Pemilik Hak Cipta (Ditampilkan di footer)",copyrightYear:"Tahun hak cipta (Tampilkan di bagian bawah)",deletable:{name:"Perlindungan Hapus",enable:"Blocklet ini TIDAK dapat dihapus saat ini",disable:"Blocklet ini saat ini dapat dihapus"},walletType:{name:"Jenis dompet",description:"Tipe dompet instansi Blocklet, akan mengubah DID yang diturunkan"},languages:"Bahasa yang Didukung",selectLanguagesTip:"Atur urutan dengan menghapus dan menambahkan kembali",languagesSearch:"Cari berdasarkan Nama Lokal Negara, Nama Inggris, atau Kode ISO...",passportColor:"Warna Paspor",appUrl:"URL aplikasi",access:{title:"Siapa yang dapat mengakses",description:"Siapa yang dapat mengakses blocklet",useDefault:"Gunakan default",defaultDescription:"Gunakan konfigurasi default aplikasi",whoCanAccess:{all:{title:"Tersedia untuk semua",description:"Terbuka bagi dunia, siapa pun dapat mengakses tanpa paspor"},owner:{title:"Hanya saya yang bisa mengakses",description:"Anda harus menyediakan paspor pemilik untuk mengakses aplikasi ini"},invited:{title:"Hanya orang yang diundang yang dapat mengakses",description:"Anda dapat mengundang anggota nanti di halaman admin"}},publicToStore:"Publik di Toko",publicInstanceTip:"Alamat akses blok ini akan ditampilkan di Toko (bersama dengan DID Anda untuk menerima sumbangan)",updatedTip:"Kontrol Akses Dimodifikasi"},changedTip:"Konfigurasi diperbarui, harap restart Blocklet",missingRequired:"Konfigurasi yang diperlukan untuk memulai blocklet hilang",gotoFix:"Pergi memperbaiki",environment:{key:"Kunci konfigurasi",value:"Nilai konfigurasi",keyValueRequired:"Kunci konfigurasi dan nilai harus ditentukan",invalidKey:"Kunci konfigurasi tidak boleh dimulai dengan BLOCKLET_ atau COMPONENT_",deleteForbidden:"Konfigurasi ini diperlukan dan tidak boleh dihapus",tip:"Konfigurasi yang diawali dengan BWA_ tidak boleh berisi informasi sensitif karena akan dikirim ke peramban"},dangerZone:"Zona Bahaya",blockletTypeChangeTip:"Jenis dompet akan diubah menjadi <b>{value}</b>",appDidChangeTip:"Operasi ini akan mengubah DID aplikasi, yang akan menyebabkan masalah-masalah berikut. Mohon konfirmasi setelah evaluasi yang teliti:",appDidChangeTipL1:"Akun pengguna yang terhubung dengan aplikasi ini akan berubah",appDidChangeTipL2:"Nama domain DID aplikasi akan berubah, dan nama domain asli akan menjadi tidak valid",appSkChangeTip:"Anda sedang mengubah kunci rahasia aplikasi",walletTypeTitle:"Perbarui Jenis Dompet",appSkTitle:"Perbarui Kunci Rahasia Aplikasi",sharedToAllComponents:"Akan dibagikan ke semua komponen",session:{ttl:"Pengguna akan diminta untuk login lagi jika tidak ada aktivitas di situs ini selama {hari} hari",day:"{day} hari",days:"{day} hari",period:"Periode validitas sesi",profile:"Persyaratan profil pengguna",cacheTtl:"Durasi cache untuk data sesi pengguna (dalam detik)",fullNameEnabled:"Meminta nama pengguna saat login (diaktifkan secara default)",avatarEnabled:"Minta avatar pengguna saat login (diaktifkan secara default)",emailEnabled:"Meminta email pengguna saat login",emailRequireVerified:"Memerlukan email pengguna untuk diverifikasi sebelum login",emailRequireUnique:"Memerlukan email pengguna untuk menjadi unik di antara semua pengguna",phoneEnabled:"Meminta nomor telepon pengguna saat login (belum didukung)",phoneRequireVerified:"Memerlukan nomor telepon pengguna untuk diverifikasi sebelum login",phoneRequireUnique:"Haruslah nomor telepon pengguna unik di antara semua pengguna",emailTrustOauthProviders:"Percayai penyedia OAuth untuk status verifikasi email",enableDomainBlackList:"Aktifkan daftar hitam domain email (tolak domain email yang terdaftar)",enableDomainWhiteList:"Aktifkan daftar putih domain email (hanya memperbolehkan domain email yang terdaftar untuk login)",addDomain:"Tambahkan sumber untuk mengambil daftar (dalam format teks biasa, satu domain per baris)"},clearCache:{name:"Manajemen Cache",purpose:"Mengelola file yang di-cache dalam layanan router dan blocklet",title:"Konfirmasi Membersihkan Cache?",action:"Bersihkan Cache",success:"Berhasil membersihkan {count} entri cache",description:"Apakah Anda yakin ingin menghapus file yang di-cache di router dan layanan blocklet? Operasi ini mungkin menyebabkan penurunan kinerja yang sedikit dalam jangka pendek."},tenantMode:{name:"Mode Sewa Multipel",multiple:"Blocklet ini berjalan dalam mode penyewa ganda, data harus diisolasi untuk setiap penyewa",single:"Blok ini berjalan dalam mode penyewa tunggal, semua data dibagikan"},splashPortrait:"Layar Splash Potret",splashLandscape:"Splash Lanskap",splashPortraitDesc:"Ditampilkan ketika blocklet diluncurkan dalam mode potret",splashLandscapeDesc:"Ditampilkan ketika blocklet diluncurkan dalam mode lanskap",rotateSessionKey:{name:"Rotasi Garam Sesi",purpose:"Putar garam sesi secara berkala untuk mengurangi risiko token login dikompromikan",title:"Konfirmasi rotasi garam sesi?",action:"Putar Garam",success:"Berhasil memutar garam sesi",description:"Apakah Anda yakin ingin mengganti salt sesi? Operasi ini akan membatalkan semua token login yang ada dan memaksa pengguna untuk login lagi, termasuk token login Anda sendiri"}},overview:{source:"Sumber",deployedFrom:"Dipindahkan Dari",accessControl:"Kontrol Akses",viewInStore:"Lihat di toko"},diskInfo:{empty:"Informasi disk tidak tersedia saat ini!",appDir:"Direktori Aplikasi",dataDir:"Direktori Data",logDir:"Direktori Log",cacheDir:"Direktori Cache"},runtimeInfo:{noRunning:"Informasi waktu proses akan tersedia ketika blocklet berjalan!",memoryUsage:"Pemakaian Memori",cpuUsage:"Pemakaian CPU",uptime:"Waktu aktif",port:"Pelabuhan",processId:"ID Proses"},dist:{downloadLink:"Tautan Unduh",verify:"Memverifikasi"},status:{added:"Ditambahkan",waiting:"Menunggu",downloading:"Mengunduh",extracting:"Mengekstrak",installing:"Menginstal",upgrading:"Meningkatkan",installed:"Terpasang",created:"Dibuat",starting:"Mulai",running:"Berlari",stopping:"Berhenti",stopped:"Berhenti",error:"Kesalahan",deleting:"Menghapus",corrupted:"Rusak",purchasing:"Menunggu pembelian",purchased:"Dibeli",verifying:"Memverifikasi pembelian",resource:"Sumber daya"},list:{download:"Unduh",star:"Bintang",searchPlaceholder:"Cari nama Bloklet atau DID"},component:{container:"Konfigurasi Global",showContainer:"Tampilkan Konfigurasi Global",didSpaceConfig:"Konfigurasi DID Spaces",didSpaceConfigTip:"Lengkapi proses otorisasi berikut untuk menyimpan data aplikasi di DID Spaces",didSpaceConnected:"Penyimpanan diotorisasi untuk: {endpoint}",checkUpdateTitle:"Periksa Pembaruan",updateTitle:"Perbarui Komponen",noUpdate:"Tidak ada komponen yang perlu diperbarui",add:"Tambahkan Komponen",selectComponent:"Pilih Blocklet",selectRegistry:"Pilih Blocklet Store",selectRegistryTip:"Anda dapat mengganti toko blok untuk melihat lebih banyak komponen",selectInstance:"Pilih Instansi",selectInstanceTip:"Anda dapat memilih instansi yang ada atau membuat instansi baru. Instansi yang ada akan menggunakan konfigurasi dan data yang sudah disimpan sebelumnya.",newInstance:"Buat Instansi Baru",noComponent:"Tidak ada komponen",mountPoint:"Apa titik lempengnya?",mountPointTip:"Jika Anda mengatur titik mount menjadi '/my-prefix', maka semua permintaan yang dimulai dengan titik mount tersebut akan diarahkan ke komponen yang dipilih",delete:"Hapus Komponen",deleteDescription:"Komponen ini tidak akan dapat diakses setelah dihapus. Konfirmasi hapus?",purchase:"Pembayaran Diperlukan",tip:{stopBlocklet:"Tolong hentikan terlebih dahulu eksekusi Blocklet",requiredBy:"Komponen ini diperlukan oleh {name}"},choose:"Pilih",addWithName:"Tambahkan Blocklet ke {name}",installingCanCloseWindowTip:"Menginstal komponen di latar belakang, Anda dapat menutup jendela ini dengan aman",installSuccessTip:"Selamat, komponen telah berhasil terpasang!",missDownloadTokenTip:"Tidak dapat menambahkan komponen berbayar tanpa token unduhan yang valid",purchaseComponentSecondCheckTip:"Harap tampilkan pembelian blocklet NFT Anda untuk melanjutkan",installComponentError:"Terjadi kesalahan saat menginstal komponen, silakan coba lagi",downloadComponentError:"Terjadi kesalahan saat mengunduh komponen, silakan coba lagi",addComponentTip:{introduction:"Selamat datang di Pengaturan Komponen Tambah",isPurchase:"Anda perlu memverifikasi NFT sebelum menggunakan <b>{name}</b> sebagai komponen",belowInformation:"Berikut adalah informasi untuk komponen:",verifyNFT:"Silakan pilih metode Verifikasi NFT",config:"Silakan isi konfigurasi komponen",environment:"Silakan isi lingkungan komponen",fromUrl:"Menambahkan Bloklet Dari URL"},addNext:"Tambahkan {name}",upgradeNext:"Tingkatkan {name}",setting:"Pengaturan",noDependencies:"{name} tidak memiliki dependensi apa pun",relatedComponents:"Blocklet Terkait",required:"Dibutuhkan",installed:"Terpasang",installingTip:"Sedang menginstal komponen, harap tunggu...",upgrade:"Tingkatkan"},router:{urlPath:"URL Path",noRunning:"Blocklet saat ini tidak dimulai. Tidak dapat diakses melalui alamat berikut!",securitySetting:"Pengaturan Keamanan",checkUrlAccessible:"Periksa aksesibilitas alamat",urlInaccessible:"Ini mungkin disebabkan oleh masalah jaringan, alamatnya sementara tidak dapat diakses",noAccessibleUrl:"URL tidak dapat diakses",domainLockTooltip:"Domain yang dihasilkan oleh sistem tidak dapat diedit.",urlLockTooltip:"Path URL yang dihasilkan sistem tidak dapat diedit.",showAllDomains:"Tampilkan semua domain",showAllDIDs:"Tampilkan semua DIDs",currentDomainTip:"Anda mengakses halaman ini melalui domain ini"},export:{title:"Ekspor Blocklet",name:"Nama Bundle",nameTip:"misalnya 'my-blocklet-name' atau '@my-scope/blocklet-name'",result:"Apa yang akan terjadi selanjutnya",exportSource:"Ekspor Sumber",success:"Blocklet berhasil diekspor",resultTipStart:"Dengan",resultTipEnd:"Anda dapat membangun dan menerbitkan blok ini dalam hitungan menit",uploadedComponentTip:"Komponen yang diunggah secara langsung tidak dapat diekspor:"},migrate:{title:"Migrasi Aplikasi",scan:"Hubungkan Dompet DID Anda untuk menghasilkan pasangan kunci untuk aplikasi ini",confirm:"Periksa operasi ini di dompet DID Anda",success:"Aplikasi Anda berhasil dimigrasi, halaman akan diperbarui dalam {sec} detik",intro:{l1:"Klik di sini",l2:"Untuk bermigrasi ke versi baru aplikasi Anda (perubahan dinonaktifkan sebelum migrasi selesai)",l3:"Aplikasi DID akan sepenuhnya dikontrol dari Dompet DID Anda.",l4:"Data aplikasi akan dipindahkan, dan tidak ada perubahan tambahan yang diperlukan.",l5:"Struktur aplikasi baru akan memberikan fleksibilitas lebih saat mengubah komponen.",l6:"4. Tolong jangan mengubah titik pemasangan komponen sebelum versi komponen baru keluar."},tip:{duplicate:"Temukan komponen duplikat {name}, harap hapus komponen yang tidak berguna dan lakukan migrasi kembali",running:"Tolong hentikan blokir sebelum migrasi"}},error:{isRunning:"Blocklet sedang berjalan, silakan hentikan terlebih dahulu",isInProgress:"Blocklet sedang berlangsung, harap tunggu hingga selesai"},publish:{createResource:"Buat Sumber Daya",addResource:"Tambahkan Rilis",productTitle:"Produk",versionTitle:"Pembaruan versi",imgTitle:"Gambar",resourceTitle:"Sumber daya",blockletEmptyTip:"Tidak ada blok di sini",createBlockletTip:"Anda dapat membuat blocklet baru melalui sumber daya, komponen, dan konfigurasi yang ada dalam aplikasi ini",createBlocklet:"Blok baru",componentNotRunning:"Blocklet {name} tidak berjalan, harap mulai terlebih dahulu",releaseEmptyTip:"Tidak ada rilis di sini",createReleaseTip:"Anda dapat membuat rilis dari blocklet, bersama dengan catatan rilis dan sumber daya, agar orang lain dapat menggunakannya",createRelease:"Membuat rilis",deleteReleaseTip:"Rilis tidak dapat dikembalikan setelah dihapus",createBlockletDid:"Buat dari Dompet DID",createReleaseSuccess:"Rilis berhasil dibuat",saveDraftSuccess:"Draf berhasil disimpan",connect:{title:"Membuat DID Blocklet",scan:"Pindai kode QR di bawah ini untuk menghasilkan Blocklet DID",confirm:"Konfirmasi menggunakan Dompet DID",success:"DID Blocklet telah dihasilkan, silakan lanjutkan operasi Anda"},saveDraft:"Simpan Draf",releaseNote:"Catatan Rilis",errorTip:{noDid:"Blocklet DID diperlukan",noTitle:"Judul blok diperlukan",noVersion:"Versi Blocklet diperlukan",noDescription:"Deskripsi Blocklet diperlukan",noNote:"Catatan Rilis diperlukan",inValidVersion:"Versi Blok Tidak Valid",noResource:"Silahkan pilihunggah sumber daya untuk disertakan dalam blocklet",noFirstDid:"Silakan buat DID Blocklet terlebih dahulu",invalidUrl:"Silakan masukkan URL yang valid",invalidUrlOrEmail:"Harap masukkan URL atau email yang valid"},packTip:"Saat ini, blok dapat diinstal langsung sebagai aplikasi. Komponen dan konfigurasi aplikasi akan secara otomatis disertakan dalam Blocklet.",resourceChangedWarning:"Anda telah mengubah sumber daya, harap simpan tepat waktu",installResourceTip:"URL Pemasangan:",installResourceTip2:"Jika Anda ingin melihat lebih banyak tips, silakan kunjungi",installResourceHelp:"Dokumen Bantuan",componentIncluded:"Termasuk",componentForceRequired:"Diperlukan",download:"Unduh {name}",delete:"Hapus {name}",copyInstallUrl:"Salin URL Instalasi",install:"Pasang {name}",publishToStoreSuccess:"Blocklet berhasil diterbitkan ke Toko",connectStoreSuccess:"Penyimpanan Blocklet berhasil terhubung",uploadToStoreSuccess:"Blocklet berhasil diunggah ke Store, Anda perlu mempublikasikannya di Store",viewLastRelease:"Tampilkan rilis terakhir",reconnectStoreTip:"Setelah terhubung kembali, pengembang baru akan terikat. Apakah Anda yakin ingin terhubung kembali?",deleteProject:{title:"Hapus {name}",scan:"Pindai kode QR di bawah ini untuk menghapus {name}",confirm:"Konfirmasi menggunakan Dompet DID",success:"Proyek Blocklet telah dihapus, silakan lanjutkan operasi anda",tip1:"Proyek Blocklet tidak akan dapat dipulihkan setelah dihapus",tip2:"Anda tidak akan lagi dapat menerbitkan versi baru ke Blocklet yang dihapus, yang berarti bahwa Blocklet tidak akan diperbarui lagi di Toko.",tip3:"Menghapus Blocklet tidak akan mempengaruhi versi yang saat ini dipublikasikan di Toko.",description:"Setelah menghapus Blocklet, Anda akan menghadapi masalah berikut, apakah Anda yakin ingin menghapusnya?"},resourceTip:"Saat ini, sebagai Blok Sumber Daya, tidak dapat diinstal langsung dari Toko.",whyCantSeeInStore:"Mengapa saya tidak dapat melihat blok ini di Toko?",whyCantSeeResourceBlockletInStore:"Resource Blocklet disembunyikan dari halaman daftar toko secara default",tenantScope:"Penyewa",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"Blocklets tidak sedang berjalan, harap mulai terlebih dahulu",resourceEmptyTip:"Tidak ada sumber daya yang tersedia",steps:{resources:"Silakan pilih sumber daya yang perlu dikaitkan dengan Blocklet saat ini, karena sumber daya ini akan diinstal bersama dengan Blocklet.",blocklets:"Pilih blocklet yang ingin dikaitkan.",version:"Atur versi rilis dan catatan perubahan.",introduction:"Pengenalan yang jelas dapat efektif dalam menyoroti Blocklet Anda. Anda dapat menggunakan sintaks Markdown untuk menulis dan melihat pratinjau.",branding:"Deskripsikan informasi dasar tentang Blocklet Anda. Informasi ini akan ditampilkan kepada pengguna di toko."},branding:"Branding",brandingHelp:"Informasi lebih lanjut tentang blocklet akan ditampilkan di Toko",resourceSelect:"Pilih sumber dari blocklets",resourceUpload:"Unggah sumber daya dari disk Anda (index.html diperlukan dalam arsip)",deleteStoreTip:"Apakah Anda yakin ingin menghapus {name} dari daftar Toko Koneksi?",disconnectStoreTip:"Setelah terputus, blocklet akan dihapus dari toko. Apa Anda yakin untuk memutuskan?",connectOrUpload:"Hubungkan atau Unggah",developerInfo:"Informasi Pengembang",autoUploadTip:"Mengunggah blocklet ke Store secara otomatis setelah rilis penciptaan",possibleSameStoreTip:"Coba selesaikan blocklet dependensi ke Toko Blocklet yang sama sebelum mengunggah setiap kali memungkinkan",needProjectId:"Silakan membuat proyek terlebih dahulu",projectSettings:"Pengaturan Proyek",noStoreSelected:"Silakan pilih salah satu toko yang ada atau tambahkan toko baru untuk melanjutkan",installToThisServer:"Pasang ke server ini",forceResourceBlocklet:"Gaya didefinisikan sebagai bloklet berbasis sumber daya"},titleValidationError:"Panjang judul harus antara 3 dan 40 karakter",descriptionValidationError:"Panjang deskripsi harus antara 3 dan 80 karakter",whyNeedAppPid:"Jika aplikasi Anda telah dimigrasikan, DID permanen adalah DID yang dihasilkan saat Blocklet ini pertama kali dipasang",usingDocker:"Blocklet ini akan berjalan menggunakan docker",gotoVisitError:"Tidak dapat mengakses URL Blocklet, silakan coba lagi nanti",usingIsolation:"Blocklet ini akan berjalan menggunakan isolasi jaringan"},dashboard:{nodeDid:"Node",ownerDid:"Pemilik",routingEngine:"Routing Engine",ownerNftURL:"Pemilik NFT",expirationLeft:"Kadaluarsa Sisa",startFromCrashTip:"Server Blocklet tidak keluar secara normal terakhir kali, harap mulai secara manual blocklets yang perlu dijalankan.",runtimeConfig:{blockletMaxMemoryLimit:"Batas Memori Maksimal Blocklet",daemonMaxMemoryLimit:"Batas Maksimal Memori Server",proxyMaxMemoryLimit:"Batas Memori Maksimum Event Bus"}},store:{nameSort:"Nama",popularSort:"Kepopuleran",headerDescription:"Temukan dan Pasang Blocklets Anda",detail:{purchase:"Membeli {name}",open:"Buka {name}",install:"Pasang {name}",upgrade:"Tingkatkan {name}",empty:"Tanpa perkenalan"},blockletRegistry:{changeFailed:"Gagal Mengubah Toko Blok:",addFailed:"Gagal menambahkan Toko Blocklet: {name}",editFailed:"Gagal mengedit Toko Blocklet",switchRegistry:"Beralih Blok Toko",addRegistry:"Tambahkan Toko Bloklet",editRegistry:"Edit Blocklet Store",deleteRegistry:"Hapus Blocklet Store",haveSameRegistry:"Toko blok yang sama ada",registryName:"Nama Toko Blocklet",registryUrl:"URL Toko Blocklet",registryNameEmpty:"Nama Toko Blocklet tidak boleh kosong",registryUrlEmpty:"URL toko Blocklet tidak boleh kosong",deleteDesc:"Konfirmasi Hapus toko blocklet {name} ?",confirmDesc:"Silakan masukkan {name} untuk menghapus"},purchase:{title:"Beli {name}",confirmed:"Pembelian blok NFT Anda telah diverifikasi",declined:"Anda tidak menyediakan pembelian blocklet NFT yang valid",waiting:"Menunggu pembelian selesai...",purchase:{title:"Pembelian NFT",description:"Bayarlah beberapa token sebelum menginstal blok ini jika Anda belum membeli blok ini"},verify:{title:"Memverifikasi NFT",description:"NFT Anda akan diverifikasi sebelum menginstal blocklet ini jika Anda telah membeli dan memiliki NFT pembelian di Dompet DID Anda",auth:{title:"Pembelian Kredensial Diperlukan",scan:"Hubungkan DID Wallet untuk menyediakan pembelian blocklet NFT",confirm:"Harap tinjau operasi ini di Dompet DID Anda",success:"Pembelian NFT Anda diverifikasi, dan pemasangan telah dimulai"}},auth:{title:"Membeli {name}",scan:"Pindai kode QR berikut dengan Dompet DID Anda",confirm:"Konfirmasi pada Dompet DID Anda",success:"Pembelian NFT dikirim ke dompet DID Anda"},launch:"Meluncurkan {name}",autoLaunch:"{name} berhasil membeli, mengalihkan ke halaman peluncuran..."},tooltip:{upgradeServer:"Blocklet memerlukan Blocklet Server versi {version}, Versi Blocklet Server saat ini adalah {serverVersion}"}},setting:{saveSuccess:"Pengaturan berhasil disimpan",unSavedTip:'Ada perubahan yang belum disimpan, klik "Simpan Perubahan" untuk menyimpannya.',unSavedLeaveTip:"Terdapat perubahan yang belum disimpan, apakah Anda yakin ingin meninggalkan halaman ini?",form:{name:"Nama Server Anda",nameRequired:"Deskripsi server diperlukan",namePlaceholder:"Nama server",description:"Deskripsikan server Anda",descriptionHolder:"Deskripsi server",descriptionRequired:"Deskripsi server diperlukan",domain:"Nama Domain Server Anda",domainPlaceholder:"Nama Domain Server",domainRequired:"Domain server diperlukan",ipPlaceholder:"IP",ipRequired:"IP diperlukan",registry:"Toko Blocklet",registryPlaceholder:"Toko Blocklet untuk mengambil blocklet",registryRequired:"Toko Blocklet diperlukan",registerUrl:"URL Blocklet Launcher",registerUrlPlaceholder:"Masukkan URL Blocklet Launcher pilihan Anda, Anda dapat menggunakannya dengan aman",webWalletUrl:"URL Dompet DID",webWalletUrlPlaceholder:'Silakan masukkan URL dompet "DID" yang dihosting Anda, Anda bisa menggunakannya dengan aman',nftDomainUrl:"URL Domain NFT",nftDomainUrlPlaceholder:'Silakan masukkan URL "NFT Domain" yang Anda host, Anda dapat menggunakannya dengan aman',enableWelcomePage:"Aktifkan halaman selamat datang",welcome:{switchLabel:"Halaman Selamat Datang"},upgrade:{title:"Tingkatkan Server Blocklet menjadi versi {version}",description:"Selama peningkatan, server Blocklet Anda akan masuk ke mode perawatan selama beberapa menit saat pembaruan selesai.",dialog:'Klik "konfirmasi" untuk menginstal pembaruan. Blocklet Server akan masuk ke mode pemeliharaan hingga pembaruan selesai dan secara otomatis kembali ke mode produksi.',confirm:"Upgrade",switchLabel:"Periksa Pembaruan Otomatis",enableBetaRelease:"Aktifkan Rilis Beta",setup:"Menyiapkan peningkatan",installing:"Memasang server Blocklet v{version}",restarting:"Memulai Ulang Server Blocklet",cleanup:"Migrasi data Blocklet Server",verifying:"Memverifikasi server Blocklet v{version}",rollback:"Server Blocklet Rollback",complete:"Pembaruan selesai!",progress:"Mengupgrade {name}",check:"Periksa Pembaruan",latest:"Anda menggunakan versi terbaru."},restart:{title:"Mulai ulang server Blocklet",description:"Selama proses restart, server Blocklet akan masuk ke mode pemeliharaan sampai restart selesai.",dialog:'Klik "konfirmasi" untuk me-restart. Server Blocklet akan masuk ke dalam mode perawatan hingga restart selesai dan kembali ke mode produksi secara otomatis.',confirm:"Mulai Ulang",setup:"Mempersiapkan restart",verifying:"Memverifikasi Server Blocklet",restarting:"Memulai Ulang Server Blocklet",cleanup:"Pastikan semuanya baik-baik saja",rollback:"Bersihkan keadaan kotor",complete:"Pertahankan lengkap!",progress:"Memulai ulang {name}"},register:{title:"Daftar di Blocklet Launcher",description:"Setelah ditambahkan, Anda dapat meluncurkan blocklets ke server blocklet ini dari {url}.",button:"Daftar"},monitor:{diskThreshold:"Kirim peringatan ketika penggunaan disk melebihi (%)",diskThresholdPlaceholder:"Tolong atur ambang batas peringatan penggunaan disk"},security:{switchLabel:"Pengasingan Sistem File",switchTips:"Setelah menonaktifkan opsi ini, sistem file dari Blocklet tidak akan lagi dalam isolasi, yang dapat menimbulkan risiko perangkat lunak berbahaya merusak sistem file.",warningTips:"Fitur isolasi sistem file tidak dapat diterapkan. Silakan tingkatkan versi node.js (versi saat ini adalah {version}) ke v21.6.0 atau yang lebih tinggi."},docker:{switchLabel:"Menjalankan Blocklets di dalam Kontainer",switchTips:"Setelah mengaktifkan opsi ini, blocklets akan dijalankan menggunakan kontainer, yang dapat meningkatkan keamanan keseluruhan server.",notInstalled:"Tidak dapat mengaktifkan jalankan kontainer karena Docker tidak terinstal atau tidak memiliki izin yang diperlukan untuk mengeksekusi.",needCloseFileSystemIsolation:"Isolasi sistem file dan mode kontainer docker tidak dapat diaktifkan secara bersamaan"},dockerNetwork:{switchLabel:"Isolasi Jaringan Kontainer",switchTips:"Setelah mengaktifkan opsi ini, blocklet berjalan dengan cara yang lebih aman: blocklet tidak dapat mengakses server blocklet atau blocklet lain di seluruh aplikasi.",needEnableDocker:"Mode kontainer harus diaktifkan untuk mengaktifkan isolasi jaringan"},restartAllContainers:{title:"Mulai Ulang Semua Kontainer",description:"Mulai ulang semua container dan pertahankan blocklets berjalan.",dialog:'Klik "konfirmasi" untuk memulai ulang semua blocklets kontainer dan mempertahankan status blocklets berjalan.',confirm:"Mulai ulang",setup:"Mempersiapkan untuk memulai ulang",verifying:"Memverifikasi Server Blocklet",restarting:"Memulai ulang semua kontainer di latar belakang",cleanup:"Pastikan semuanya OK",rollback:"Bersihkan keadaan kotor",complete:"Pemeliharaan selesai!",progress:"Memulai ulang semua kontainer di latar belakang"},restartAllBlocklet:{title:"Mulai ulang semua Blocklets",description:"Mulai ulang semua Blocklets yang sedang berjalan atau error di server ini.",dialog:'Klik "konfirmasi" untuk memulai ulang semua blocklets di latar belakang.',confirm:"Mulai ulang",setup:"Menyiapkan restart",verifying:"Memverifikasi Blocklet Server",restarting:"Memulai ulang semua Blocklets yang berjalan atau error di latar belakang",cleanup:"Pastikan semuanya OK",rollback:"Bersihkan state yang kotor",complete:"Pemeliharaan selesai!",progress:"Memulai ulang semua Blocklets yang sedang berjalan atau mengalami error di latar belakang"},enableSessionHardening:{switchLabel:"Aktifkan Pengerasan Sesi",switchTips:"Setelah mengaktifkan opsi ini, operasi mutasi akan memerlukan verifikasi ketat, yang dapat meningkatkan keamanan server secara keseluruhan."}},accessKey:{accessKeyId:"KUNCI AKSES",lastUsed:"Terakhir digunakan pada",tip:"Silakan masukkan nama untuk kunci akses ini untuk referensi di masa depan:",saveSecretTip:"Ini adalah satu-satunya waktu di mana kunci rahasia Akses Anda dapat dilihat dan tidak dapat dipulihkan. Namun, Anda dapat membuat kunci akses baru kapan saja.",iKnow:"Saya telah menyalin dan menyimpan Kunci Akses Rahasia",showSecret:"Tampilkan Kunci Akses Rahasia",hideSecret:"Sembunyikan Rahasia",title:"Hapus Kunci Akses",descriptionNoTime:"Ini akan menghapus secara permanen kunci akses {key} dengan nama {name}, yang belum pernah digunakan sebelumnya",description:"Ini akan menghapus kunci akses {key} dengan nama {name} secara permanen, yang terakhir digunakan pada {time}, {timeAge}",confirm_desc:"Silakan masukkan {name} untuk menghapus",remark:"Nama Kunci Akses",remarkInvalid:"Nama Kunci Akses diperlukan"},webhook:{add:"Tambahkan Integrasi",delTitle:"Hapus Integrasi",requiredError:"Silakan berikan {type} yang valid",confirm_desc:"Silakan masukkan {name} untuk menghapus",test:"Tes",description:"Ini akan menghapus integrasi dengan ID {id} secara permanen",columns:{description:"Halo, ID",params:"Parameter",createdAt:"Dibuat pada"}}},notification:{title:"Aktivitas",empty:"Belum ada kegiatan",viewAll:"Lihat Semua",showRead:"Tampilkan Baca",markAllAsRead:"Tandai Semua sebagai Sudah Dibaca",markAsRead:"Tandai sebagai Sudah Dibaca",proceed:"Lanjutkan",checkingForUpdates:"Memeriksa pembaruan...",email:{enable:"Aktifkan pemberitahuan melalui email",from:"Pengirim email",host:"Host server SMTP",port:"Port server SMTP",user:"Nama pengguna server SMTP",secure:"Aktifkan koneksi aman",password:"Kata sandi pengguna server SMTP",fromRequired:"Pengirim email diperlukan",fromInvalid:"Pengirim email tidak valid",receiverRequired:"Penerima email diperlukan",receiverInvalid:"Penerima email tidak valid",hostRequired:"Host server SMTP diperlukan",hostInvalid:"Host server SMTP tidak valid",portRequired:"Port server SMTP diperlukan",portInvalid:"Port server SMTP tidak valid, port harus antara 1 dan 65535",userRequired:"Nama pengguna server SMTP diperlukan",passwordRequired:"Password pengguna server SMTP diperlukan",testSuccess:"Pengiriman email uji berhasil",testFailed:"Gagal mengirim email percobaan",testReceiver:"Penerima Email",testSendEmail:"Test kirim email",inputTestReceiver:"Silakan masukkan email penerima pengujian",disable:"Berhenti langganan pemberitahuan email",disableDescription:"Setelah berhenti berlangganan, Anda tidak akan menerima pemberitahuan melalui email lagi. Untuk menerima pemberitahuan melalui email, Anda dapat berlangganan kembali di halaman ini.",unsubscribe:"Batalkan pemberitahuan melalui email",unsubscribeDescription:"Setelah berhenti langganan, Anda tidak akan lagi menerima pemberitahuan melalui email.",subscribe:"Berlangganan",subscribeDescription:"Untuk menerima pemberitahuan melalui email, Anda dapat mengikuti langkah-langkahnya kembali di halaman pengaturan."},comingSoon:"Lebih banyak saluran pemberitahuan sedang dalam konstruksi",unsubscribe:"Berhenti berlangganan",unsubscribeSucceed:"Berhenti berhasil",unsubscribeFailed:"Berhenti berlangganan gagal",unsubscribeTokenRequired:"Token berhenti berlangganan diperlukan",unsubscribeTokenExpired:"Token berhenti langganan telah kedaluwarsa",unsubscribeTokenInvalid:"Token berhenti berlangganan tidak valid",installComponentError:"Komponen {name} yang telah dihapus tidak ditemukan",installingComponent:"Menginstal komponen {name}",pushKit:{enable:"Aktifkan notifikasi PushKit",endpoint:"PushKit endpoint",endpointInvalid:"Endpoint PushKit adalah URL yang tidak valid",testSuccess:"Uji Coba PushKit terkirim dengan sukses",testFailed:"Uji coba PushKit kirim gagal",testReceiver:"Penerima PushKit",testSend:"Uji coba kiriman push-kit",inputTestReceiver:"Masukkan penerima uji",receiverRequired:"Diperlukan penerima PushKit",pushPath:"Jalur api untuk push-kit (default /api/push)",did:"PushKit Blocklet DID",customOptions:"Opsi Kustom"}},router:{routerSetting:"Domain dan URL",certSetting:"Sertifikat SSL",defaultSite:"Default",urlHelperText:"URL yang tidak dimulai dengan HTTP/HTTPS dianggap sebagai jalur relatif",empty:"Klik pada Aksi untuk mengatur Pemetaan URL",healthy:{ok:"Blocklet atau layanan sedang berjalan",error:"Blocklet atau layanan tidak berjalan atau tidak terpasang"},service:{select:"Pilih Layanan Blocklet (Opsional)",what:"Layanan Blocklet adalah pipa yang dieksekusi terhadap permintaan sebelum dialihkan ke blocklet hulu"},nonProvider:{title:"Peringatan Penggantian Mesin",description:"Jika Anda mengubah mesin menjadi tidak ada, halaman Anda saat ini mungkin tidak berfungsi dengan baik karena mesin sebelumnya akan berhenti, apakah Anda yakin ingin melanjutkan?",confirm:"Saya mengerti, lanjutkan"},validation:{urlRequired:"URL diperlukan",redirectCodeRequired:"Kode pengalihan diperlukan",didRequired:"Blocklet diperlukan",pathPrefixTooLong:"Awalan URL tidak boleh melebihi {length} karakter",pathPrefixCannotBeEmpty:"Awalan URL tidak boleh kosong",domainRequired:"Domain server diperlukan",invalidUrl:"Silakan berikan URL yang valid",pathPrefixRequired:"Awalan URL diperlukan",redirectUrlRequired:"URL Redirect diperlukan",rewriteUrlRequired:"Rewrite URL diperlukan"},domain:{addSite:"Tambahkan Situs",validate:{emptyTip:"Domain situs tidak boleh kosong",suffixTip:"Domain situs tidak bisa mengandung {suffix}"},add:{title:"Tambahkan Nama Domain",description:"Silakan berikan nama domain yang valid",confirm:"Tambahkan",cancel:"Batal",blocklet:"Pilih Blocklet",redirect:"Kemana harus mengalihkan lalu lintas?",port:"Di pintu apa yang handler permintaan Anda perlu mendengarkan?",portTip:"Ini mengembalikan port utama dari pengelola permintaan, Anda dapat menyesuaikan ini",type:"Penangan Lalu Lintas",component:"Pilih Komponen",pageGroup:"Grup Halaman",pageGroupTip:"Komponen ini dapat merender kelompok halaman apa pun yang terdaftar di atas, kosongkan untuk merender semua halaman"},update:{title:"Perbarui Domain Situs",label:"Domain Situs",description:"Harap berikan domain situs yang valid"},setup:{tipStart:"Tambahkan catatan DNS untuk domain",tipEnd:"Menurut panduan berikut",recordType:"Jenis Rekaman",recordValue:"Nilai Rekaman"},verify:{ok:"Resolusi domain normal",notResolved:"Domain ini tidak bisa terjangkau maupun diakses, silakan periksa konfigurasi DNS Anda."},https:{ok:"Domain ini memiliki https diaktifkan",bad:"Domain ini belum mengaktifkan https"},delete:{title:"Hapus Situs",description:'Dengan mengkonfirmasi, Anda akan menghapus situs "{name}" yang sudah ada. Ketikkan "{name}" di bawah ini dan pilih Hapus untuk menyelesaikan perubahan, atau pilih Batal jika Anda ingin meninggalkan situs Anda.',confirm_desc:"Tolong masukkan {name} untuk mengkonfirmasi"}},domainAlias:{nftDomain:"Konfigurasi otomatis dengan Domain DID",showTipHint:"Bagaimana cara mengkonfigurasi resolusi nama domain?",add:{title:"Tambahkan Domain Tambahan",domainDescription:"Silakan berikan nama domain yang valid",forceTip:"Mengeksekusi tambahan jika nama domain sudah ada",helperText:"Jika URL HTTP atau HTTPS dimasukkan, itu akan secara otomatis dikonversi menjadi nama domain.",isDidDomainError:"Domain ini adalah Domain DID. Silakan tambahkan menggunakan metode konfigurasi domain otomatis.",tips:"Anda dapat memasukkan nama domain yang dibeli dari DID Domain atau domain lain apa saja. Jika itu DID Domain, Anda harus menyajikan NFT DID Domain untuk melanjutkan."},addCustomDomain:{name:"Domain khusus"},addDomainNFT:{showNFT:"Konfigurasi domain secara otomatis",tips:"Anda dapat memasukkan domain yang dibeli dari DID Domain. Jika DID Domain terdeteksi, Anda harus menunjukkan NFT DID Domain untuk melanjutkan.",connect:{title:"Tolong tunjukkan NFT Domain Anda",scan:"Pindai kode QR berikut menggunakan Dompet DID untuk mengizinkan Blocklet menggunakan domain Anda",confirm:"Konfirmasi di Dompet Anda DID",success:"Otorisasi Berhasil"},buyTip:"DID Domain akan melakukan resolusi nama domain secara otomatis, tidak perlu dikonfigurasikan secara manual, dan aplikasi akan memperbarui catatan resolusi nama domain secara otomatis saat diperlukan. Jika Anda belum memiliki NFT DID Domain,",buy:"Beli Domain DID"},delete:{title:"Hapus",description:"Setelah menghapus alias domain, akses ke alias tersebut mungkin tidak ditangani dengan baik."}},domainSecurity:{title:"Keamanan Domain",cors:{title:"Domain CORS yang diperbolehkan",description:'Daftar domain yang dapat mengirimkan permintaan asal lintas ke {name}, dipisahkan dengan koma, gunakan "*" untuk mengizinkan siapa pun, yang tidak disarankan',domainInvalid:"Silakan masukkan daftar nama domain yang valid"}},rule:{add:{title:"Tambahkan Pemetaan URL",confirm:"Tambah",pathPrefix:"Apa Awalan URL?",pathPrefixTip:"Jika Anda mengatur awalan menjadi '/awalan-saya', maka semua permintaan yang dimulai dengan awalan tersebut akan diarahkan ke blok yang dikonfigurasi",blocklet:"Blocklet mana yang akan menangani permintaan tersebut?",port:"Port mana dari blocklet yang akan menangani permintaan?",portTip:"Ini menjadi port utama blocklet, jika blocklet Anda mendengarkan di beberapa port, Anda dapat menyesuaikannya",responseType:"Tipe Respons",responseBody:"Konten Tanggapan",responseBodyTip:"Tempelkan konten respon Anda di sini, tidak boleh melebihi 4096 karakter",responseBodyRequired:"Konten respons tidak boleh kosong"},delete:{title:"Hapus Pemetaan URL",description:'Dengan mengkonfirmasi, Anda akan menghapus Pemetaan URL "{name}" yang ada. Ketik "{name}" di bawah ini dan pilih Hapus untuk menyelesaikan perubahan, atau pilih Batal jika Anda ingin meninggalkan Pemetaan URL Anda.',confirm_desc:"Silakan masukkan {name} untuk menghapus",cancel:"Batalkan"},update:{title:"Perbarui Pemetaan URL",confirm:"Ya, Perbarui",cancel:"Batal"}},cert:{name:"Nama Sertifikat",domain:"Nama Domain",action:"Aksi",commonName:"Nama Umum",boundDomains:"Domain",source:"Sumber",expired:"Kedaluwarsa",leftDays:"hari tersisa",issuedOn:"Dikeluarkan pada",expiryOn:"Berlaku hingga",fingerprintAlg:"Algoritma Sidik Jari",validityPeriod:"Periode Validitas",matchedSites:"Situs yang Cocok",upload:"Unggah Manual",publicCertHelperText:"Sertifikat publik dapat diunduh",nonPublicCertHelperText:"Sertifikat non-publik tidak dapat diunduh",protectedCertHelperText:"Sertifikat yang dilindungi tidak dapat diedit",unprotectedCertHelperText:"Sertifikat yang tidak terlindungi dapat diedit",issuing:"Sertifikat sedang dibuat",sourceTypes:{upload:"Unggah Manual",lets_encrypt:"Mari Enkripsi"},table:{nodata:"Tidak ada data"},delete:{title:"Hapus Sertifikat",description:"Konfirmasi untuk menghapus sertifikat domain {domain}? Penghapusan bisa memengaruhi layanan terkait. Konfirmasikan bahwa itu aman sebelum melanjutkan penghapusan.",confirm:"Konfirmasi"},nginx:{title:"Perbarui Sertifikat",titleAdd:"Tambahkan Sertifikat",pem:"Berkas Sertifikat SSL",pemTip:'Silakan tinggalkan file sertifikat server Anda di sini, harus diakhiri dengan ".pem" atau ".crt"',key:"File Kunci Privat",keyTip:"Silakan seret file kunci pribadi server Anda di sini, harus berakhir dengan '.pem' atau '.key'",confirm:"Simpan",cancel:"Membatalkan",invalidFile:"Anda telah memilih file yang tidak valid",empty:"Belum ada file yang dipilih",source:"Sumber",sourceTypes:{upload:"Upload Manual",lets_encrypt:"Mari Enkripsi"}},detail:{title:"Rincian Sertifikat"},genLetsEncryptCert:{title:"Menghasilkan sertifikat Let's Encrypt",dnsTip:"Mohon pastikan nama domain telah mengarah ke server Blocklet saat ini.",description:"Menambahkan sertifikat akan menjadikan layanan lebih aman, dan Blocklet Server akan memperbaharui sertifikat secara otomatis sebelum masa berlakunya habis."}},gateway:{reqLimit:{switchLabel:"Pembatasan Permintaan",rate:"Batas Permintaan ({rate} Permintaan/Detik)"},cacheEnabled:{switchLabel:"Aktifkan Cache Gateway"},blockPolicy:{switchLabel:"Pemblokiran Permintaan",blacklistLabel:"IP Terganggu",addItem:"Tambah Item",blacklistDesc:"Permintaan dari IP ini akan diblokir dari mengakses Server ini dan semua Blocklets",inputPlaceholder:"Masukkan alamat IP, rentang CIDR, atau URL",invalidItem:"Alamat IP, rentang CIDR, atau URL tidak valid"},proxyPolicy:{switchLabel:"Menjalankan di belakang proxy",trustRecursive:"Percayakan proksi secara rekursif",trustRecursiveDesc:"Gunakan IP tidak terpercaya yang paling kiri dalam rantai X-Forwarded-For",trustedProxies:"Proxy Terpercaya",trustedProxiesDesc:"Permintaan dari IP ini akan dipercaya untuk mendapatkan IP asli klien",realIpHeaderLabel:"Header IP Klien",realIpHeaderDesc:"Jika Server Blocklet berjalan di belakang proxy seperti CloudFront, Anda dapat mengatur header IP asli klien di sini.",addItem:"Tambah item",inputPlaceholder:"Masukkan alamat IP, rentang CIDR",invalidItem:"Alamat IP tidak valid, rentang CIDR"}}},noMatch:{desc:"Kami tidak dapat menemukan halaman yang Anda cari"},health:{connectionErrorTip:"Blocklet Server tidak dapat terhubung ke jaringan, harap periksa apakah Blocklet Server sudah berhenti atau ada masalah jaringan",connectionRecoveryTip:"Koneksi Server Blocklet telah pulih",connectionStoppedTip:"Server Blocklet telah dihentikan",wrongAccessUrlTip:"Alamat akses Server Blocklet salah, harap gunakan alamat akses yang benar"},debug:{title:"Server Blocklet Anda sedang berjalan!"},team:{invite:{action:"Undang Baru",setting:"Pengaturan Undangan",enabled:"Memungkinkan pengguna manapun mengundang pengguna baru ke blocklet ini",disabled:"Hanya pemilik/admin dapat mengundang pengguna baru ke blocklet ini",inviter:"Diundang Oleh"},add:"Tambah Baru",member:{name:"Nama",passport:"Paspor",passports:"Paspor",lastLogin:"Login terakhir",lastLoginIp:"IP login terakhir",source:"Daftar Sumber",source_derived:"Berasal dari OAuth",source_wallet:"Dompet DID",filter:"Filter berdasarkan",blockAccess:"Melarang masuk",blockAccessDescription:"Pengguna tidak akan dapat terhubung ke aplikasi ini",allowAccess:"Izinkan Login",allowAccessDescription:"Pengguna akan dapat terhubung ke aplikasi ini",updateRole:"Perbarui Peran",removeUser:"Hapus Pengguna",removeUserDescription:'Konfirmasi menghapus pengguna "{name}"?',revokePassport:"Mencabut Paspor",revokePassportDescription:"Setelah paspor dicabut, pemegang paspor tidak dapat menggunakannya lagi untuk masuk, apakah Anda yakin untuk melanjutkan?",enablePassport:"Aktifkan Paspor",enablePassportDescription:"Setelah paspor yang dicabut diaktifkan kembali, pemegang paspor dapat menggunakannya untuk masuk kembali, apakah Anda yakin ingin melanjutkan?",passportPermissionTitle:"Paspor memiliki izin berikut:",search:"Cari Anggota",onlyApprovedMember:"Tampilkan Hanya yang Disetujui",inviteDialog:{createInviteLink:"Buat tautan undangan",createSuccessTip:"Link undangan berhasil dibuat, klik untuk menyalin dan kirimkan link kepada anggota yang diundang. Harap perhatikan bahwa link undangan ini tidak dapat digunakan ulang dan akan kedaluwarsa pada {expireDate}."},error:{passportEmpty:"Kolom paspor tidak boleh kosong"},connectedAccounts:"Akun yang Terhubung",connections:"Koneksi",federated:"Federasi",switch:{did:"Ganti DID",profile:"Ganti Profil",passport:"Ganti Paspor"},settings:{notification:"Pemberitahuan",email:"Kirim email kepada saya ketika ada beberapa peristiwa terjadi",wallet:"Kirim pemberitahuan ke dompet saya ketika beberapa peristiwa terjadi",phone:"Kirim pesan teks kepada saya saat beberapa peristiwa terjadi",webhook:"Webhooks",add:"Tambah webhook baru",url:"URL kustom",slack:"Slack Webhook",tested:"Pesan uji terkirim"},activeUserSessions:"Sesi Pengguna Aktif",forceLogout:"Keluar paksa",forceLogoutDescription:"Konfirmasi untuk logout paksa pengguna ini?",openProfile:"Lihat Profil",removeUserSuccess:"Pengguna berhasil dihapus"},transferNode:{name:"Pindahkan Kepemilikan",inviteDialog:{title:"Transfer Server Blocklet",tips:{progress:"Pemindahan server harus diterima oleh penerima untuk menyelesaikan operasi pemindahan, dan setelah penerima menerimanya, Anda tidak dapat masuk ke server dengan paspor saat ini lagi.",newOwnerPermissions:"Pemilik baru akan memiliki hak untuk mengelola semua operasi seperti anggota, paspor, dan Blocklets.",revoke:'Jika Anda ingin menarik undangan transfer, Anda dapat menghapus tautan undangan di halaman "Tim -> Anggota -> Mengundang".'},createInviteLink:"Buat Tautan Undangan",createSuccessTip:"Tautan undangan telah berhasil dibuat, klik untuk menyalin dan mengirimkan tautan ke anggota yang diundang, harap perhatikan bahwa tautan undangan ini tidak dapat digunakan kembali dan akan berakhir pada {expireDate}."},delegateDialog:{title:"Otorisasi Diperlukan",scan:"Pindai kode QR berikut dengan Dompet DID untuk mengotorisasi server untuk mentransfer kepemilikan server NFT.",confirm:"Konfirmasi di Dompet DID Anda",success:"Otorisasi Berhasil"}},transferApp:{name:"Transfer Milik",transferDialog:{title:"Aplikasi Transfer",tips:{progress:"Aplikasi transfer harus diterima oleh penerima untuk menyelesaikan operasi transfer, dan setelah penerima menerimanya, Anda tidak dapat masuk ke aplikasi dengan paspor saat ini.",newOwnerPermissions:"Pemilik baru akan memiliki hak untuk mengelola semua operasi seperti anggota, paspor, dan pengaturan."},createTransferLink:"Buat Tautan Transfer",createSuccessTip1:'Tautan transfer berhasil dibuat, tamu harus menggunakan <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> untuk menerima kepemilikan aplikasi',createSuccessTip2:"Silakan klik untuk menyalin dan mengirimkan tautan ke anggota yang diundang, harap perhatikan bahwa tautan transfer ini tidak dapat digunakan kembali dan akan kadaluarsa pada {expireDate}. Tautan transfer Anda hanya akan ditampilkan sekali dan tidak akan dapat dilihat lagi setelah menutup dialog ini.",createSuccessTip3:"Setelah transfer berhasil, aplikasi akan secara otomatis restart untuk memastikan perubahan berlaku.",link:"Transfer Link",iKnow:"Saya telah menyalin dan menyimpan tautan tersebut"},connectDialog:{title:"Otorisasi Diperlukan",scan:"Pindai kode QR berikut dengan Dompet DID untuk mengizinkan aplikasi melakukan transfer kepemilikan.",confirm:"Konfirmasi di dompet DID Anda",success:"Otorisasi berhasil"},receiveDialog:{title:"Menerima Kepemilikan Aplikasi",scan:"Pindai kode QR berikut dengan Dompet DID untuk menerima kepemilikan aplikasi.",confirm:"Konfirmasikan di dompet DID Anda",success:"Menerima Kepemilikan Berhasil"},successTitle:"Anda telah menjadi pemilik baru aplikasi ini",visitDashboard:"Kunjungi Dasbor Aplikasi"},permission:{create:{title:"Buat Izin",description:"Format: <aksi>_<sumber daya>"},delete:{title:"Hapus Izin",description:"Konfirmasi menghapus {name}?"},error:{actionEmpty:"Tindakan tidak boleh kosong",resourceEmpty:"Sumber tidak boleh kosong",permissionTooLong:"Izin tidak boleh melebihi {length} karakter",descriptionTooLong:"Deskripsi tidak boleh melebihi {length} karakter"}},passport:{create:{title:"Buat Paspor",titleTip:"Judul tidak dapat diubah setelah dibuat, disarankan maksimal 14 huruf"},bind:{title:"Ikatan Izin",roleTip:"Anda akan mendapatkan semua izin dari paspor yang dipilih setelah mengikat",permissionTip:"Anda akan mendapatkan izin yang dipilih setelah melakukan pengikatan",transferLeftTitle:"Semua izin",transferRightTitle:"Izin diberikan"},delete:{title:"Hapus Paspor",description:"Paspor yang dipegang oleh pengguna akan kehilangan semua izin setelah dihapus. Apakah Anda yakin ingin melanjutkan?"},error:{titleEmpty:"Judul tidak boleh kosong",titleTooLong:"Judul tidak boleh melebihi {length} karakter",descriptionEmpty:"Deskripsi tidak bisa kosong"},issuance:{pending:"Tertunda",create:{title:"Buat Link"},delete:{title:"Hapus Tautan Diterima",description:"Konfirmasi hapus {link}?"}},issue:"Menerbitkan paspor",disableIssuance:"Nonaktifkan Penerbitan Paspor",enableIssuance:"Aktifkan Penerbitan Paspor",disableIssuanceTip:'Operasi "Mengeluarkan Paspor", "Undang Anggota", dan operasi lainnya akan dinonaktifkan',enableIssuanceTip:"Mengeluarkan Paspor",trustedPassportIssuers:"Penerbit Paspor Terpercaya",trustedIssuers:"Penerbit Terpercaya",trustedFactories:"Koleksi NFT Terpercaya",trustedFactoriesTip:"Kelola Koleksi NFT terpercaya yang dapat digunakan untuk ditukar dengan paspor",searchFactoryAddress:"Cari Koleksi DID",configFactories:"Konfigurasi Koleksi NFT Terpercaya",configFactoriesTip:"Memungkinkan pengguna menukar NFT untuk paspor",factoryAddress:"Alamat Koleksi NFT",factory404:"Koleksi NFT tidak ditemukan",factoryAddressTip:"Alamat Koleksi NFT harus ada di Chain Utama ArcBlock",role:"Jenis Paspor",ttl:"Kebijakan Berakhirnya Paspor",ttlNever:"Tidak pernah kedaluwarsa",ttlMint:"Sejak pembelian NFT",ttlExchange:"Sejak Pertukaran Paspor",ttlNeverTip:"Paspor akan berlaku sampai dicabut",ttlMintTip:"Paspor akan berlaku sejak pembelian NFT sampai Anda menentukan waktu ttl atau mencabut",ttlExchangeTip:"Paspor akan berlaku dari saat pengguna berhasil ditukar hingga Anda menentukan ttl atau mencabut",ttlTip:'365d berarti 365 hari, Anda juga bisa menggunakan "30 hari" atau "24 jam"',validUntil:"Berlaku hingga: {date}",externalPassport:"Paspor Eksternal",notTrustedIssuerTip:"Paspor tidak dapat digunakan karena penerbit tidak ada dalam daftar penerbit tepercaya",issuerDid:"ID PEMBERI",addNodeToTrustedIssuers:"Tambahkan server saat ini sebagai penerbit paspor terpercaya",revoked:"Ditarik",noPermission:"Tidak ada izin untuk melakukan operasi ini",shouldNotDeleteCurrent:"Anda tidak dapat mencabut paspor yang sedang digunakan saat ini",mappingRule:"Aturan pemetaan",defaultRule:"Aturan default",search:"Cari Paspor",searchIssuerDid:"Cari Penerbit DID",issueBy:"Isu oleh {name}",configColor:"Konfigurasi Warna Paspor",configColorTip:"Sesuaikan warna paspor",color:"Warna Paspor",description:"Gunakan paspor ini untuk menghubungkan {teamName} sebagai {title}",displayBuiltin:"Builtin",displayCustom:"Kustom",typesTip:"Sesuaikan jenis paspor, pisahkan dengan koma",issuanceDate:"Tanggal penerbitan: {date}"},inviting:{link:"Tautan Undangan",inviter:"Pemanggil",delete:{title:"Hapus Tautan Undangan",description:"Konfirmasi hapus {link}?"},disabledTip:"Undangan tidak diaktifkan"},whoCanAccess:{all:{title:"Tersedia untuk semua"},owner:{title:"Hanya pemilik"},invited:{title:"Hanya pengguna yang diundang"}}},launcher:{provider:"Penyedia",adminUrl:"URL"},session:{blockAccess:"Anda telah diblokir dari mengakses server ini"},launchBlocklet:{appInfo:"Informasi Aplikasi",appInfoDesc:"Konfirmasi informasi aplikasi",author:"Penulis Aplikasi: {author}",setup:"Setup Blocklet",redirect:"Mengalihkan",alreadyRunning:"Aplikasi {name} sudah berjalan di server Blocklet ini",alreadyInstalled:"Aplikasi {name} sudah terpasang di server Blocklet ini",alreadyExists:"Aplikasi ini sudah ada, mengalihkan...",purchased:"Sudah Dibeli",purchase:"Pembelian",nextStep:"Langkah Berikutnya",agreement:"Perjanjian Lisensi",agreeAll:"Setuju & Lanjutkan",installing:"Menginstal {appName} di {serverName}, ini mungkin memakan waktu beberapa menit untuk selesai, harap menunggu...",redirecting:"{appName} berhasil diinstal, sekarang memulai...",start:"Meluncurkan",launch:"Pasang Blocklet ke Server",launchSuccess:"{appName} telah diluncurkan dengan sukses!",installSuccess:"Blocklet berhasil diinstal dan diluncurkan di {serverName}",openInRegistry:"Lihat di Blocklet Store",subTitle:"Siap untuk menginstal Blocklet {appName} di {serverName}",installingSubTitle:"{appName} sedang menginstal",access:"Buka aplikasinya",viewApplication:"Lihat Aplikasi",newVersion:"Versi Baru",newVersionDesc:"Aplikasi sudah ada, tetapi versi saat ini dapat ditingkatkan",upgradeNow:"Tingkatkan Sekarang",later:"Nanti",introduction:"Pengantar",welcome:"Selamat datang di Wizard Peluncuran Blocklet",accept:"Saya setuju dengan EULA Blocklet",license:"Lisensi Aplikasi",next:"Setujui EULA dan lanjutkan",purchaseApp:"Beli Blocklet",setupAppDesc:"Inisialisasi Blocklet Anda",launched:"Lengkap",confirmInstall:"Konfirmasi Pemasangan",dialog:{title:"Menjadi pemilik aplikasi",nftFreeDescription:"Silakan tampilkan ruang NFT aplikasi dan buat akun aplikasi untuk melanjutkan",nftPaidDescription:"Tolong tampilkan ruang aplikasi NFT dan beli aplikasi NFT untuk melanjutkan",freeDescription:"Silakan buat akun aplikasi untuk melanjutkan",paidDescription:"Silakan tampilkan pembelian NFT aplikasi dan buat akun aplikasi untuk melanjutkan",confirm:"Konfirmasi di dompet DID Anda",success:"Otorisasi Berhasil",authorizationTimeout:"Waktu otorisasi habis"},waiting:{verifying:"Memverifikasi meta aplikasi...",downloading:"Mengunduh paket aplikasi...",downloadingComponent:"Mengunduh {name}",extractingComponent:"Mengekstrak {name}",extracting:"Mengekstrak bundel aplikasi...",installing:"Menginstal komponen aplikasi...",installed:"Terpasang",starting:"Memulai aplikasi...",done:"Menunggu aplikasi siap..."},error:{loadMetaFailed:"Gagal memuat informasi aplikasi",appMetaNotFound:"Tidak ada informasi ditemukan untuk aplikasi ini",downloadFailed:"Gagal mengunduh aplikasi, silakan coba lagi",installFailed:"Gagal menginstal aplikasi, silakan coba lagi",startFailed:"Gagal memulai aplikasi, silakan coba lagi",launchFailed:"Gagal meluncurkan aplikasi, silakan coba lagi",installedButStopped:"Aplikasi berhasil diinstal, tetapi tidak dapat dijalankan. Anda dapat menjalankannya secara manual setelah memecahkan masalah pemblokiran",installedButError:"Aplikasi berhasil diinstal, tetapi gagal untuk memulai",restoreFailed:"Gagal mengembalikan aplikasi, silakan coba lagi",resourceBlocklet:"Blocklet ini tidak dapat diluncurkan secara langsung, tetapi Anda dapat menambahkannya ke aplikasi yang sudah ada."},steps:{introduction:"Pengenalan",installApp:"Pasang Aplikasi",purchaseSpace:"Membeli Ruang",prepareSpace:"Menyiapkan Ruang"},installRelatedComponents:"Pasang Blocklets terkait"},issuePassport:{title:"Menerima Paspor",description:"Gunakan Dompet DID untuk menerima paspor yang diterbitkan oleh {name}",dialog:{scan:"Gunakan Dompet DID Anda untuk mengklaim paspor",confirm:"Konfirmasi di Dompet DID Anda",success:"Paspor telah berhasil ditambahkan di dompet Anda",loginWithPassport:"Hubungkan dengan paspor ini",autoClose:"Halaman akan ditutup otomatis dalam {seconds}s",autoJump:"Halaman akan otomatis loncat dalam {seconds}s"}},lostPassport:{title:"Paspor Hilang",description:"Pemilik {name} dapat memindai kode QR untuk mendapatkan paspor, anggota silakan hubungi pemilik untuk menerbitkan ulang paspor",dialog:{title:"Memulihkan Paspor",scan:"Gunakan Dompet DID Anda untuk mengembalikan paspor",confirm:"Konfirmasi di Dompet DID Anda",success:"Paspor berhasil ditambahkan di dompet Anda"},return:"Terhubung dengan paspor",selectPassport:"Pilih paspor",receivePassport:"Menerima paspor"},invite:{message:"{name} mengundang Anda untuk menjadi {role} dari {dapp}",success:"Anda berhasil bergabung dengan {dapp}",receive:"Terima dengan",validUntil:"Berlaku hingga:",viewPermission:"Izin Lihat",emptyPermission:"Izin Kosong",open:"Buka",description:{step1:"Unduh dan konfigurasikan {wallet} Anda",step2:"Klik tombol di atas untuk menerima paspor",step3:"Masuk ke {dapp} dengan paspor yang diterima"},transferNFTDialog:{title:"Terima Server Blocklet {name}",scan:"Hubungkan Launcher untuk menyelesaikan penerimaan Server Blocklet.",confirm:"Periksa operasi ini di Dompet DID Anda",success:"Berhasil terhubung, menunggu konfirmasi penerimaan dari Server"}},receive:{dialog:{title:"Gunakan dompet DID Anda untuk menerima paspor",scan:"Hubungkan Dompet DID Anda untuk menerima paspor",confirm:"Konfirmasi di dompet DID Anda",success:"Anda berhasil terhubung"}},navigation:{navigation:"Navigasi",actionFailed:"Aksi Gagal",form:{title:"Judul",titlePlaceholder:"Silakan masukkan judul navigasi",titleTooLong:"Panjang judul harus lebih kecil dari {len}",icon:"Icon navigasi",iconPlaceholder:"Silakan masukkan ikon navigasi",invalidIcon:"Ikon tidak valid",findMoreIcon:"Temukan lebih banyak ikon",link:"Link",linkPlaceholder:"Silakan masukkan tautan navigasi",invalidLink:"Link tidak valid",component:"Komponen",componentPlaceholder:"Silakan pilih komponen navigasi",role:"Peran",rolePlaceholder:"Silakan pilih peran navigasi",locale:"Lokal",localePlaceholder:"Silakan masukkan lokasi yang perlu ditambahkan",localeExists:"{value} sudah ada",activeIcon:"Ikon Aktif",activeIconPlaceholder:"Silakan masukkan ikon navigasi aktif",activeColor:"Warna Aktif",activeColorPlaceholder:"Silakan masukkan warna aktif navigasi",color:"Warna",colorPlaceholder:"Silakan masukkan warna navigasi default"},action:{add:"Tambahkan navigasi",addSub:"Tambahkan navigasi sub",edit:"Edit navigasi",hide:"Sembunyikan navigasi",show:"Tampilkan navigasi",del:"Hapus navigasi",new:"Baru",noAddSub:"Komponen yang tidak terpasang tidak dapat menambahkan sub navigasi",noEdit:"Komponen yang dihapus tidak dapat diedit",noDel:"Tidak diizinkan menghapus navigasi bawaan",reset:"Reset",restConfirmTitle:"Apakah Anda ingin menghapus semua navigasi kustom?",restConfirmDesc:"Setelah membersihkan, navigasi akan dikembalikan ke konfigurasi default asli Blocklet",resetSuccessful:"Reset berhasil"},access:"Akses",members:"Anggota",passport:"Paspor",analytics:"Analitik",dashboard:"Dasbor",studio:"Studio",blockletService:"Layanan Blocklet"},storage:{spaces:{title:"DID Spaces",tips:"Tips",label:"Masukkan Gateway DID Spaces",connected:{title:"Ruang DID Terhubung",tag:"Terhubung"},connectedWithName:"Anda berhasil terhubung ke {name}",addedWithName:"Anda berhasil menambahkan {name}",connects:"Hubungkan",reconnect:"Menghubungkan kembali",addressCannotEmpty:"Alamat tidak boleh kosong",addressNotValid:"{url} bukan alamat yang valid",authorize:{title:"Sambungkan {appName} ke DID Spaces",scan:"Gunakan dompet DID Anda untuk memindai kode QR di bawah ini untuk mengizinkan aplikasi {appName} terhubung ke Ruang DID",success:"Berhasil terhubung"},provideNFT:{title:"Tolong tampilkan DID Spaces NFT untuk {appName}",scan:"Gunakan Dompet DID Anda untuk memindai kode QR di bawah ini untuk mengizinkan aplikasi {appName} menampilkan ruang NFT DID",success:"Terhubung berhasil"},backup:{title:"Backup",records:"Cadangan Rekaman"},autoBackup:{title:"Cadangan otomatis",enabled:"Pencadangan otomatis sudah aktif",disabled:"Pencadangan otomatis mati"},autoCheckUpdate:{title:"Periksa otomatis pemberitahuan versi baru",enabled:"Pemeriksaan otomatis untuk versi baru sedang aktif",disabled:"Pengecekan otomatis untuk versi baru dimatikan"},backupSuccessfully:"Pencadangan berhasil",restore:"Memulihkan",restoreSuccessfully:"Pemulihan berhasil",gateway:{title:"Gerbang",select:"Pilih Ruang DID",add:{title:"Tambahkan Ruang DID",label:"Masukkan URL Ruang DID",failed:"Gagal menambahkan DID Spaces",invalidUrl:"URL gateway ruang DID tidak valid",duplicate:"{name} sudah terhubung dengan Blocklet ini"},delete:{title:"Hapus",succeeded:"Berhasil menghapus DID Spaces {name}",failed:"Gagal menghapus gerbang",failedForSelected:"Tidak dapat menghapus DID Spaces yang dipilih",descForBackup:`Setelah menghapus {name}, Anda tidak akan dapat membuat cadangan dari Blocklet ke DID Space ini. Apakah Anda yakin ingin menghapus?
|
|
2
|
+
Anda dapat memulihkan operasi pencadangan dengan menghubungkan kembali ke {name}.`,descForStorage:`Setelah menghapus {name}, Anda tidak akan dapat menyimpan data dari Blocklet ke DID Space ini. Apakah Anda yakin ingin menghapus?
|
|
3
|
+
Anda dapat memulihkan operasi penyimpanan dengan menghubungkan kembali ke {name}.`},connect:{title:"Hubungkan Ruang DID",add:"Hubungkan ke Ruang DID sekarang",addTips:"Anda belum terhubung ke ruang apa pun",switch:"Beralih Ruang DID",switchTips:"Anda terhubung dengan {name}",connected:"Terhubung"},switch:{failedForMismatchSpace:"Silakan hubungkan ke Ruang yang benar {name}"},connectTo:"Terhubung ke Ruang DID"},strategy:{title:"Strategi Cadangan",autoBackup:"Auto backup",backupNow:"Cadangkan sekarang",viewBackupFiles:"Lihat file cadangan"},progress:{title:"Progres backup"},record:{title:"Cadangkan catatan",emptyData:"Tidak ada catatan"},notYet:"Anda tidak memiliki cadangan yang sedang berjalan...",connect:{now:"Sambung sekarang",title:"Hubungkan Ruang DID",provider:"Berikan Ruang DID Anda untuk memulai cadangan",providerForStorage:"Sediakan ruang DID Anda untuk penyimpanan data",useWallet:"Sambungkan dengan DOMPET DID",useWalletReconnect:"Hubungkan kembali dengan Dompet DID",useSpaceGateway:"Hubungkan menggunakan gateway DID Spaces",useSpaceGatewayReconnect:"Hubungkan kembali menggunakan gateway DID Spaces",switchToSpace:"Pindah ke Ruang Angkasa",switchToSpaceSucceeded:"Berpindah ke Ruang{name}",succeeded:"Anda telah berhasil terhubung dengan Ruang DID",disconnect:"Memutuskan"},disconnected:{tag:"Terputus",reconnectNow:"Menghubungkan kembali sekarang"}},appLevel:{title:"Penyimpanan Tingkat Aplikasi",description:"Semua data yang dihasilkan oleh aplikasi disimpan di DID Space ini"}},log:{lastDays:{1:"1 Hari Terakhir",7:"Minggu Terakhir"}},oauth:{commonSettings:"Pengaturan Umum",save:"Simpan",saveSuccess:"Berhasil disimpan",saveFailed:"Gagal menyimpan",issued:"Ditetapkan",thirdPartyLogin:"Login pihak ketiga",alreadyBindOAuth:"Anda sudah mengikat login pihak ketiga",alreadyBindWallet:"Sudah menghubungkan dompet DID",auth0:{enable:"Aktifkan login Auth0",domain:"Domain",domainDescription:"Domain Auth0 diperlukan",clientId:"ID klien",clientIdDescription:"Auth0 clientId diperlukan",clientSecret:"Rahasia klien",clientSecretDescription:"Rahasia Klien aplikasi OAuth Auth0 diperlukan"},comingSoon:"Metode login lebih banyak sedang dalam konstruksi",moreLogin:"Masuk lebih lanjut",federated:"Login terfederasi",runTest:"Uji",github:{enable:"Aktifkan login Github",clientId:"ID Klien",clientIdDescription:"Kode klien aplikasi OAuth Github diperlukan",clientSecret:"Rahasia Klien",clientSecretDescription:"ClientSecret aplikasi Github OAuth diperlukan"},google:{enable:"Aktifkan masuk Google",clientId:"ID Klien",clientIdDescription:"Kode klien aplikasi Google OAuth diperlukan",clientSecret:"Rahasia Klien",clientSecretDescription:"clientSecret aplikasi OAuth Google diperlukan"},apple:{enable:"Aktifkan login Apple",teamId:"ID Tim",teamIdDescription:"ID Tim Aplikasi OAuth Apple diperlukan",serviceId:"ID layanan",serviceIdDescription:"ID Service aplikasi OAuth Apple diperlukan.",keyId:"ID kunci",keyIdDescription:"ID aplikasi Apple OAuth diperlukan",authKey:"Kunci Auth",authKeyDescription:"Kunci Otentikasi Aplikasi OAuth Apple diperlukan",bundleId:"Bundle ID",bundleIdDescription:"Bundle ID aplikasi Apple OAuth diperlukan"},oauth:"Login Pihak Ketiga"},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"Kedaluwarsa"},loadFailed:"Coba lagi!"},desktop:{tips:{success:"Langganan akan berakhir setelah {validity}",warning:"Langganan akan berakhir setelah {validity}",error:"Langganan Telah Kadaluarsa"},loading:"Memuat langganan...",loadFailed:"Gagal memuat info langganan, silakan coba lagi!",nextInvoice:"Faktur berikutnya: {date}"}},analytics:{trend:"Tren",detail:"Kerusakan",traffic:{totalRequests:"Total Permintaan",validRequests:"Permintaan Sukses",failedRequests:"Permintaan Gagal",uniqueVisitors:"Pengunjung unik",uniqueFiles:"URL Unik",uniqueReferrers:"Referensi Unik",uniqueNotFound:"404 Tunggal",uniqueStaticFiles:"File Statis Unik",logSize:"Ukuran Log",bandwidth:"Lebar pita"},runtime:"Runtime"},federated:{inviteJoinFederatedLogin:"Undangan untuk bergabung dengan login federasi",inviteJoinFederatedLoginDescription:"Salin alamat berikut dan isi di aplikasi di mana Anda perlu bergabung untuk mendaftar login federasi.",federatedLogin:"Login federasi",joinFederatedLogin:"Gabung dengan login federasi",joinFederatedLoginDescription:"Silakan masukkan alamat login federasi yang disediakan oleh Master Blocklet untuk bergabung dengan login federasi",quitFederatedLogin:"Keluar dari login federasi",quitFederatedLoginDescription:"Setelah keluar dari login federasi, login normal selalu tersedia",federatedJoinAppUrl:"Masuk dengan login federasi di appUrl",federatedJoinAppUrlRequired:"Silakan masukkan login federasi untuk bergabung dengan {appUrl}",failedToGetFederatedLoginAppUrl:"Gagal untuk mendapatkan gabungan login, bergabunglah dengan appUrl",federatedJoinAppUrlInvalid:"AppUrl login federasi tidak valid",siteDetail:"Rincian Situs",approveToJoinLogin:"Setuju untuk bergabung dengan login federasi",approve:"Aktifkan login",revoke:"Nonaktifkan login",enableFederatedLogin:"Aktifkan login federasi",disableFederatedLogin:"Nonaktifkan login federasi",enableFederatedLoginDescription:"Setelah mengaktifkan login federasi, situs ini akan masuk secara otomatis",disableFederatedLoginDescription:"Setelah nonaktifkan login terfederasi, situs ini tidak akan login otomatis",enableFederatedAutoLogin:"Aktifkan login otomatis",enableFederatedAutoLoginDescription:"Setelah mengaktifkan login otomatis, jika saat ini ada status login yang terpadu, situs akan secara otomatis masuk dengan identitas login yang terfederasi",disableFederatedAutoLogin:"Nonaktifkan login otomatis",disableFederatedAutoLoginDescription:"Setelah login otomatis dinonaktifkan, situs tidak akan secara otomatis masuk ke informasi login pengguna dengan login seragam, dan Anda masih dapat memilih untuk masuk secara manual dengan identitas login serbaguna.",info:{appId:"APP SELESAI",appPid:"ID Permanen",migratedFrom:"Dikenal juga sebagai",appName:"Nama Blocklet",appDescription:"Deskripsi Blocklet",appUrl:"URL Blocklet",appLogo:"Logo Blocklet",did:"Blocklet DID",serverId:"ID Server Blocklet",serverVersion:"Versi Blocklet Server",version:"Versi Blocklet",appliedAt:"Daftar di",status:"Status"},status:{pending:"Tertunda",approved:"Disetujui",rejected:"Ditolak",revoked:"Ditarik"},disbandFederatedLogin:"Putus login federasi",disbandFederatedLoginDescription:"Setelah pembubaran login federasi, semua situs anggota akan otomatis keluar dari login federasi",syncConfig:"Sinkronisasi konfigurasi situs federasi",quitMember:"Hapus",quitMemberDescription:"Hapus anggota yang ditentukan dari grup situs",removeFederatedLogin:"Hapus anggota",removeFederatedLoginDescription:"Setelah menghapus anggota yang ditentukan dari grup situs, anggota hanya dapat menggunakan login normal"},optionsOrder:{1:"Opsi Satu",2:"Opsi Dua"},securityRule:{title:"Aturan Keamanan",sortByDescription:"Urutkan berdasarkan prioritas pencocokan",add:"Tambahkan Aturan Keamanan",edit:"Sunting Aturan Keamanan",view:"Lihat aturan keamanan",form:{precede:"Sebelumnya",pathPattern:"Pola Jalur",pathPatternPlaceholder:"Masukkan pola jalan",pathPatternErrorText:"Pola path tidak valid",accessPolicyOrResponseHeaderPolicyRequired:"Kebijakan Akses atau Kebijakan Header Respons diperlukan",accessPolicy:"Kebijakan Akses",accessPolicyPlaceholder:"Silakan pilih kebijakan akses",accessPolicyHelperText:"Pilih akses kebijakan",responseHeaderPolicy:"Kebijakan Header Respons",responseHeaderPolicyPlaceholder:"Pilih kebijakan header respons",responseHeaderPolicyHelperText:"Silahkan pilih kebijakan header respon",remark:"Catatan",remarkPlaceholder:"Masukkan catatan",component:"Komponen",componentPlaceholder:"Silakan pilih komponen"},delete:{title:"Hapus Aturan Keamanan?",description:"Setelah menghapus aturan keamanan, aturan tersebut tidak akan berlaku lagi"}},responseHeaderPolicy:{title:"Kebijakan Header Respons",add:"Tambahkan Kebijakan Header Respons",edit:"Edit Respons Header Policy",view:"Lihat Kebijakan Header Respons",form:{name:"Nama",namePlaceholder:"Masukkan nama",description:"Keterangan",descriptionPlaceholder:"Masukkan deskripsi",cors:{origin:"Asal",originPlaceholder:"Dukung format domain berikut: http://www.example.com, http://*.example.com, http://www.example.com:8080, * (tidak direkomendasikan menggunakan wildcard)",originHelperText:"Nama domain dimulai dengan http:// atau https://, satu per baris, satu wildcard * per baris",methods:"Metode",allowedHeaders:"Header yang diizinkan",allowedHeadersPlaceholder:"Disarankan untuk mengisi *, dukung masukan multi-baris",allowedHeadersHelperText:"Beri tahu server header permintaan HTTP kustom mana yang dapat digunakan pada permintaan berikutnya ketika mengirim permintaan OPTIONS, seperti: x-blocklet-version",exposedHeaders:"Header Terbuka",exposedHeadersPlaceholder:"Mendukung masukan multi-baris",exposedHeadersHelperText:"Konfigurasikan Expose-Headers, misalnya: X-Content-Range",maxAge:"Max-Age (detik)",maxAgeHelperText:"Periode validitas hasil yang diperoleh dari permintaan OPTIONS, yang harus berupa bilangan bulat positif",optionsSuccessStatus:"Status keberhasilan opsi",preflightContinue:"Lanjut Pratinjau",credentials:"Kredensial",smartModeHelperText:"Secara otomatis menambahkan semua nama domain aplikasi saat ini, serta semua nama domain dari grup situs log masuk terfederasi",smartMode:"Mode Cerdas"},originOverride:"Origin Override",originOverrideHelperText:"Izinkan logika di aplikasi untuk menimpa tajuk respons ini"},delete:{title:"Hapus Kebijakan Header Respons?",description:"Setelah menghapus kebijakan header respons, kebijakan tersebut tidak akan berlaku lagi"}},accessPolicy:{title:"Kebijakan Akses",add:"Tambahkan kebijakan akses",edit:"Edit Kebijakan Akses",view:"Lihat akses kebijakan",form:{name:"Nama",namePlaceholder:"Silakan masukkan nama",description:"Deskripsi",descriptionPlaceholder:"Silakan masukkan deskripsi",roles:"Peran Akses",accessType:"Tipe akses"},delete:{title:"Hapus Kebijakan Akses?",description:"Setelah menghapus kebijakan akses, kebijakan tersebut tidak akan berlaku lagi"}},didConnect:{genKeyPair:{title:"Buat DID Blocklet",scan:"Pindai QRCode berikut untuk menghasilkan Blocklet DID",success:"DID Blocklet berhasil dibuat",successDesc:"Blocklet DID telah berhasil dihasilkan (Publikasi berikutnya memerlukan dompet yang menghasilkan DID untuk beroperasi)"},common:{invalidSession:"Sesi tidak valid",invalidSessionDesc:"Sesi tidak ada atau telah berakhir",connectionError:"Gagal terhubung"}}};export{a as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P as t,gZ as x,bc as E}from"./index-
|
|
1
|
+
import{P as t,gZ as x,bc as E}from"./index-szLyLiKt.js";const R=t.oneOfType([t.func,t.object]),L=({url:r,allowFullScreen:a,position:u,display:i,height:c,width:y,overflow:f,styles:p,onLoad:b,onMouseOver:w,onMouseOut:d,scrolling:m,id:O,frameBorder:s,ariaHidden:j,sandbox:o,allow:g,className:h,title:k,ariaLabel:P,ariaLabelledby:I,name:T,target:v,loading:A,importance:F,referrerpolicy:M,allowpaymentrequest:S,src:$,key:q})=>{const n=x({src:$||r,target:v||null,style:{position:u||null,display:i||"initial",overflow:f||null},scrolling:m||null,allowpaymentrequest:S||null,importance:F||null,sandbox:o&&[...o].join(" ")||null,loading:A||null,styles:p||null,name:T||null,className:h||null,allowFullScreen:"allowFullScreen",referrerpolicy:M||null,title:k||null,allow:g||null,id:O||null,"aria-labelledby":I||null,"aria-hidden":j||null,"aria-label":P||null,width:y||null,height:c||null,onLoad:b||null,onMouseOver:w||null,onMouseOut:d||null,key:q||"iframe"});let l=Object.create(null);for(let e of Object.keys(n))n[e]!=null&&(l[e]=n[e]);for(let e of Object.keys(l.style))l.style[e]==null&&delete l.style[e];if(l.styles)for(let e of Object.keys(l.styles))l.styles.hasOwnProperty(e)&&(l.style[e]=l.styles[e]),Object.keys(l.styles).pop()==e&&delete l.styles;if(a)if("allow"in l){const e=l.allow.replace("fullscreen","");l.allow=`fullscreen ${e.trim()}`.trim()}else l.allow="fullscreen";return s>=0&&(l.style.hasOwnProperty("border")||(l.style.border=s)),E.createElement("iframe",Object.assign({},l))},Z=L;export{Z as I,R as r};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{r as h,u as V,e as Ne,aH as Jr,j as e,E as T,aI as Tn,aJ as sr,aK as ei,aL as En,aM as et,aN as be,aO as je,P as m,n as Z,o as N,ae as oe,aP as Pn,aQ as ti,aR as kn,aS as ni,z as ie,N as An,l as A,V as ne,aA as me,C as H,S as ye,B as G,aT as lr,U as ge,M as X,f as Wt,R as cr,aU as ri,d as qt,aV as tt,aW as ii,ab as oi,aX as ai,aY as si,a2 as li,y as dr,W as In,T as Ln,i as te,aZ as Ht,a as It,O as se,c as ut,a_ as ur,a$ as mr,Q as ci,a4 as Lt,b0 as di,b1 as ui,b2 as mi,b3 as fi,b4 as pi,b5 as nt,a9 as gi,J as hi,b6 as xi,aG as Ye,aa as _t,a7 as Tt,b7 as yi,a8 as Ot,L as fr,K as vi,b8 as pr,b9 as Te,ba as Ee,bb as bi,bc as ji,D as gr,v as Ft,al as Ci,h as wi,aw as On,bd as Si,be as Fn,am as Di,bf as Ri,g as hr,bg as _i,bh as Ti}from"./index-
|
|
1
|
+
import{r as h,u as V,e as Ne,aH as Jr,j as e,E as T,aI as Tn,aJ as sr,aK as ei,aL as En,aM as et,aN as be,aO as je,P as m,n as Z,o as N,ae as oe,aP as Pn,aQ as ti,aR as kn,aS as ni,z as ie,N as An,l as A,V as ne,aA as me,C as H,S as ye,B as G,aT as lr,U as ge,M as X,f as Wt,R as cr,aU as ri,d as qt,aV as tt,aW as ii,ab as oi,aX as ai,aY as si,a2 as li,y as dr,W as In,T as Ln,i as te,aZ as Ht,a as It,O as se,c as ut,a_ as ur,a$ as mr,Q as ci,a4 as Lt,b0 as di,b1 as ui,b2 as mi,b3 as fi,b4 as pi,b5 as nt,a9 as gi,J as hi,b6 as xi,aG as Ye,aa as _t,a7 as Tt,b7 as yi,a8 as Ot,L as fr,K as vi,b8 as pr,b9 as Te,ba as Ee,bb as bi,bc as ji,D as gr,v as Ft,al as Ci,h as wi,aw as On,bd as Si,be as Fn,am as Di,bf as Ri,g as hr,bg as _i,bh as Ti}from"./index-szLyLiKt.js";import{T as Ei}from"./index-CwFt9Te9.js";import{d as Pi}from"./ArrowDropDown-BzdnsirE.js";import{u as Kt,C as Q,a as $n}from"./index.esm-CSdzhfxu.js";import{S as ae}from"./switch-control-C-0E-2ue.js";import{d as Ae,i as ki}from"./is-path-prefix-equal-ZyMnCod8.js";import{T as q,F as Ve}from"./TextField-DmmMqMAo.js";import{D as xr,g as Ai}from"./index-CXxy8kEI.js";import{d as yr}from"./Link-DdW83tAD.js";import{d as ve}from"./Delete-Cgqm12Xe.js";import{C as Gt}from"./delete-confirm-CG9pn4Op.js";import{I as rt}from"./index-BotJ3AX5.js";import{s as Ii}from"./logo-BKA11TRi.js";import{R as vr,a as $t,B as br,D as Nn}from"./status-BAuBwMKk.js";import{_ as Li}from"./useLocalStorage-GLWMibqZ.js";import{L as Oi}from"./LoadingButton-DM3opAqK.js";import{C as Fi,R as $i,d as jr,S as Ni}from"./Public-DpP3zQ2V.js";import{d as Oe}from"./Add-Iqq5UL4X.js";import{a as Ui,W as Xe}from"./url-evaluation-BS1bNemt.js";import{d as zi}from"./CheckCircle-BSPdwpaz.js";import{d as Mi}from"./ExpandMore-BYtoX48D.js";import{d as Bi}from"./ChevronRight-BhDKV57P.js";import{d as Wi}from"./MoreVert-CVu4BzQC.js";import{d as Cr}from"./Edit-C8sUZUU6.js";import{d as qi,a as wr}from"./Https-BYryT_bQ.js";import{w as Hi}from"./withStyles-CK3EIjsg.js";import"./index-BZpDshq_.js";import"./Select-C9prPdE8.js";import"./InputLabel-BpHdIT50.js";import"./useThemeProps-e0r4gLct.js";import"./emotion-react.browser.esm-Ce5DYL2G.js";import"./ViewColumn-avwxMG4J.js";import"./LastPage-Cr-0h2EM.js";import"./Search-DgsnShxd.js";import"./index-CXsdGe6B.js";import"./click-to-copy-D6a3LbT7.js";import"./shorten-label-T_aHg8P2.js";import"./visuallyHidden-Dan1xhjv.js";const xe="Dashboard",Sr=h.createContext({}),{Provider:Ki,Consumer:Ms}=Sr,Un=[xe,T.DOMAIN_FOR_IP_SITE,T.DOMAIN_FOR_IP_SITE_REGEXP],Gi=(t,n)=>{if(t.name===T.DOMAIN_FOR_DEFAULT_SITE)return-1;if(n.name===T.DOMAIN_FOR_DEFAULT_SITE)return 1;const r=Un.includes(t.name),i=Un.includes(n.name);return r&&i?En(t.name,n.name):r?-1:i?1:En(t.name,n.name)},Yi=({sites:t,nodePort:n})=>{const r=window.location.host,o=(t||[]).map(a=>{const{id:s,rules:d=[],corsAllowedOrigins:g=[]}=a;let{domain:c,domainAliases:f}=a;f=f||[],[T.DOMAIN_FOR_IP_SITE,T.DOMAIN_FOR_IP_SITE_REGEXP].includes(c)&&(c=xe,f.find(j=>j.value===r)||f.unshift({protected:!1,value:r}));const p={id:s,name:c,type:"domain",items:[],domainAliases:f,isProtected:a.isProtected,corsAllowedOrigins:g};return(d||[]).forEach(j=>{const{id:b,isProtected:D,from:{pathPrefix:x},to:C}=j;if(C.type===T.ROUTING_RULE_TYPES.BLOCKLET){let v="";Number.parseInt(C.port,10)===Number.parseInt(n,10)?(v="Blocklet Server Dashboard",C.type=T.ROUTING_RULE_TYPES.DAEMON):v=C.did,p.items.push({id:b,name:Tn(x||"/"),title:v,type:"rule",isProtected:D,pathPrefix:x,to:C})}else p.items.push({id:b,pathPrefix:x,name:Tn(x||"/"),title:"Blocklet Server Dashboard",type:"rule",isProtected:D,to:C})}),p.items=sr(p.items,j=>j.name),p}).sort(Gi),l=o.reduce((a,s)=>{let{name:d}=s;return d.endsWith(T.BLOCKLET_SITE_GROUP_SUFFIX)&&([d]=d.split(".")),a[d]={...s,rules:s.items},a},{});return{sites:o,siteMap:l}},Vi=({did:t,domain:n,mountPoint:r,siteMap:i,params:o}={})=>{if(!i)return null;const l=i[t];if(!l)return null;const a=n||(l.domainAliases||[])[0];if(!a)return null;let s=r;if(!s){const d=l.rules.filter(g=>!g.name.startsWith(T.WELLKNOWN_PATH_PREFIX))[0];s=d?d.name:"/"}return et(a.value,s,o)},Xi=({did:t,mountPoint:n,siteMap:r,params:i}={})=>{if(!r)return[];const o=r[t];if(!o)return[];const l=o.domainAliases||[];if(!l.length)return[];let a=n;if(!a){const s=o.rules.filter(d=>!d.name.startsWith(T.WELLKNOWN_PATH_PREFIX))[0];a=s?s.name:"/"}return l.map(s=>et(s.value,a,i))},Qi=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 zn({children:t}){const{api:n,info:r}=V(),[i,o]=h.useState([]),[l,a]=h.useState([]),[s,d]=h.useState([]),g=Ne(async()=>{const{sites:E}=await n.getRoutingSites({input:{snapshotHash:""}}),w=E||[];await Promise.all(w.map(async k=>(k.domainAliases=await Jr(k.domainAliases,{getIP:ei}),k)));const S=Qi(w);o(w),a(S.domains),d([window.location.hostname,...S.domains,...S.domainsAliases.map(k=>k.value)])},[r]),c=(E,w)=>{o(S=>S.map(k=>k.id===E?w.domain?w:{...w,domain:k.domain}:k))},f=E=>n.takeRoutingSnapshot({input:{dryRun:!1,message:encodeURIComponent(E)}}),p=async E=>{const w=await n.addRoutingSite({input:E});o(i.concat(w.site))},j=async(E,w)=>{const S=await n.updateRoutingSite({input:{id:E,...w}});if(S.site&&S.site.id){const k=i.findIndex(M=>M.id===S.site.id);k!==-1&&(i.splice(k,1,S.site),o([].concat(i)))}},b=async E=>{await n.deleteRoutingSite({input:{id:E}}),o(i.filter(w=>w.id!==E))},D=async(E,w,S)=>{const k=await n.addDomainAlias({input:{id:E,domainAlias:w,force:S}});c(E,k.site)},x=async(E,w)=>{const S=await n.deleteDomainAlias({input:{id:E,domainAlias:w}});c(E,S.site)},C=async(E,w)=>{const{site:S}=await n.addRoutingRule({input:{id:E,rule:w}});c(E,S)},v=async(E,w)=>{const{site:S}=await n.updateRoutingRule({input:{id:E,rule:w}});c(E,S)},y=async(E,w)=>{const{site:S}=await n.deleteRoutingRule({input:{id:E,ruleId:w}});c(E,S)},u={loading:g.loading,error:g.error,refresh:g.retry,api:n,actions:{addSite:p,updateSite:j,deleteSite:b,addDomainAlias:D,deleteDomainAlias:x,takeSnapshot:f,addRule:C,updateRule:v,deleteRule:y}},{sites:R,siteMap:P}=Yi({sites:i,nodePort:r.port});return u.sites=R,u.siteMap=P,u.domains=l,u.allDomains=s,u.getBlockletUrl=({did:E,domain:w,mountPoint:S,params:k})=>Vi({did:E,domain:w,mountPoint:S,siteMap:u.siteMap,params:k}),u.getBlockletUrls=({did:E,mountPoint:w,params:S})=>Xi({did:E,mountPoint:w,siteMap:u.siteMap,params:S}),e.jsx(Ki,{value:{routing:u},children:t})}function de(){const{routing:t}=h.useContext(Sr);return t}function Yt(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 Vt={},Zi=je;Object.defineProperty(Vt,"__esModule",{value:!0});var Dr=Vt.default=void 0,Ji=Zi(be()),eo=e;Dr=Vt.default=(0,Ji.default)((0,eo.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");function to(){return null}function Xt({confirm:t}){const[n,r]=h.useState(null),{t:i}=N(),o=()=>{r(null)},l=async s=>{if(s){let d=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";d==="/"?Pn.push(`${s.pathname}`):(d.endsWith("/")&&(d=d.substring(0,d.length-1)),Pn.push(`${d}${s.pathname}`)),window.location.reload()}},a=(s,...d)=>{let g=typeof t=="function"?t(s,...d):t;return g?(typeof g=="string"&&(g={description:g}),r({title:i("common.noticeTitle"),description:i("common.leavePageTip"),confirm:i("common.confirm"),cancel:i("common.cancel"),onConfirm:()=>l(s),onCancel:()=>o(),...g}),!1):!0};return e.jsxs(no,{children:[e.jsx(to,{message:a}),n&&e.jsx(oe,{title:n.title,description:n.description,confirm:n.confirm,cancel:n.cancel,params:n.params,onConfirm:n.onConfirm,onCancel:n.onCancel})]})}Xt.propTypes={confirm:m.oneOfType([m.object,m.string,m.func])};Xt.defaultProps={confirm:null};const no=Z.div`
|
|
2
2
|
margin-bottom: 24px;
|
|
3
3
|
.top-btns-alert {
|
|
4
4
|
@media (max-width: ${t=>t.theme.breakpoints.values.sm}px) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{fd as Q,al as Me,F as Ve,cg as Te,b8 as me,gD as ge,o as Je,ch as Ze,fG as Ee,aN as xe,aO as Ae,j as r,a2 as y,N as Ge,r as s,fn as Pe,gE as Qe,a4 as ze,s as Xe,M as B,gF as Ke,gG as De,aW as We,eG as Ye,f6 as k,fC as Y,aA as we,L as V,f5 as qe,H as _e,eC as $e,l as N,D as e1,B as q,C as t1,v as n1,gH as _,w as r1,gI as a1}from"./index-
|
|
1
|
+
import{fd as Q,al as Me,F as Ve,cg as Te,b8 as me,gD as ge,o as Je,ch as Ze,fG as Ee,aN as xe,aO as Ae,j as r,a2 as y,N as Ge,r as s,fn as Pe,gE as Qe,a4 as ze,s as Xe,M as B,gF as Ke,gG as De,aW as We,eG as Ye,f6 as k,fC as Y,aA as we,L as V,f5 as qe,H as _e,eC as $e,l as N,D as e1,B as q,C as t1,v as n1,gH as _,w as r1,gI as a1}from"./index-szLyLiKt.js";import{S as s1}from"./Skeleton-BrUMN46n.js";import{d as o1}from"./HelpOutline-DGp-1BRD.js";import{S as $}from"./index-M3td2VXe.js";import{T as i1}from"./TextField-DmmMqMAo.js";const z=Q({});function c1({key:e}={key:"md"}){const t=Me();return Ve(t.breakpoints.down(e))}const w={NETWORK_ERROR:1001,UNAUTHORIZED:1002,EXPIRED:1003,PAST_DUE:1004,INVALID:1005,UNIT_LIMIT:1006,CORS_BLOCKED:1007,INCOMPATIBLE:1008},ye={DEFAULT_SCOPE:"list:object read:object write:object"},l1="https://www.arcblock.io/content/docs/did-spaces/how-to-obtain-space-gateway-url",Ie="https://www.arcblock.io/docs/did-spaces/fixing-cors-errors-when-connecting-to-space";function u1({endpoint:e,deps:t=[]}){return Te(async()=>{if(!me(e))return;const{headers:n}=await z.head(e,{timeout:1e3*30,params:{withExtras:!0}}),[a,i,c,o,f,u,l,p,h]=[n["x-space-name"],n["x-subscription-id"],n["x-listable"]==="true",n["x-readable"]==="true",n["x-writeable"]==="true",n["x-space-version"],n["x-space-owner-did"],n["x-space-is-available"],n["x-error-code"]],d=a?decodeURIComponent(a):"";if(p===void 0||h===void 0){const g=c&&o&&f;return{version:u||"",name:d,subscriptionId:i,ownerDid:l||"",isAvailable:g,errorCode:g?0:w.UNAUTHORIZED}}return{version:u||"",name:d,subscriptionId:i,ownerDid:l,isAvailable:p==="true",errorCode:parseInt(h,10)}},{refreshDeps:[e].concat(t),onError(n){console.error(n)}})}const p1=ge.flatten({common:{cancel:"Cancel",confirm:"Confirm",delete:"Delete",error:"Error",open:"Open",unknown:"Unknown",invalidUrl:"Invalid url: {url}",upgrade:"Upgrade"},storage:{spaces:{authorize:{title:"Connect {appName} to DID Spaces",scan:"Use your DID Wallet to scan the QR code below to allow the app {appName} to connect to DID Spaces",success:"Connected successfully"},connect:{reconnect:"Reconnect Now",useSpaceGateway:"Connect using the DID Spaces gateway",useWallet:"Connect with DID Wallet",howToGetGatewayUrl:"How to get the url of did spaces",providerForStorage:"Please connect your DID Spaces"},connected:{title:"Connected DID Spaces",tag:"Connected"},disconnected:{tag:"Disconnected"},error:{tag:"Need Attention",expired:"DID Spaces has expired, click this link to re-subscribe",pastDue:"DID Spaces has unpaid bills, click this link to complete payment",invalid:"DID Spaces subscription anomaly, click this link to check",unitLimit:"DID Spaces free quota has been used up, click this link to pay for the upgrade",corsBlocked:`The connection request may fail due to CORS restrictions:
|
|
2
2
|
1. Please contact the DID Space administrator to verify the relevant configuration.
|
|
3
3
|
2. If you are the administrator, click the link below to view the detailed setup guide and resolve the issue.`,networkError:"Network error",incompatible:`The current DID Spaces version is incompatible. Please contact your administrator to make adjustments.
|
|
4
4
|
If you are the administrator, click the link below to proceed.`},gateway:{add:{invalidUrl:"Invalid DID Spaces gateway url",label:"Enter the url of the DID Spaces",title:"Add DID Spaces"}},provideNFT:{title:"Please show the DID Spaces NFT for {appName}",scan:"Use your DID Wallet to scan the QR code below to allow the app {appName} show DID space NFT",success:"Connected successfully"},helperText:{fixCorsError:"Fixing CORS Errors When Connecting to Space"}}}}),d1=ge.flatten({common:{cancel:"取消",confirm:"确认",delete:"删除",error:"错误",open:"打开",unknown:"未知",invalidUrl:"无效的 url: {url}",upgrade:"升级"},storage:{spaces:{authorize:{title:"连接 {appName} 至 DID Spaces",scan:"使用你的 DID Wallet 扫描下面的二维码以允许应用 {appName} 连接至 DID Spaces",success:"连接成功"},connect:{reconnect:"立即重连",useSpaceGateway:"使用 DID Spaces 网关连接",useWallet:"使用 DID Wallet 连接",howToGetGatewayUrl:"如何获取 DID Spaces 的网关地址",providerForStorage:"请连接您的 DID Spaces"},connected:{title:"已连接的 DID Spaces",tag:"已连接"},disconnected:{tag:"连接已断开"},error:{tag:"需要关注",expired:"DID Spaces 已过期,点击此链接重新订阅",pastDue:"DID Spaces 有未支付账单,点击此链接完成支付",invalid:"DID Spaces 订阅异常,点击此链接检查",unitLimit:"DID Spaces 免费额度已用完,点击此链接付费升级",corsBlocked:`连接请求可能因 CORS 限制而失败:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as j,cP as O}from"./index-
|
|
1
|
+
import{g as j,cP as O}from"./index-szLyLiKt.js";function J(i,t){for(var r=0;r<t.length;r++){const a=t[r];if(typeof a!="string"&&!Array.isArray(a)){for(const e in a)if(e!=="default"&&!(e in i)){const s=Object.getOwnPropertyDescriptor(a,e);s&&Object.defineProperty(i,e,s.get?s:{enumerable:!0,get:()=>a[e]})}}}return Object.freeze(Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}))}var d={default:O,call:function(i,t,r){var a="";typeof t=="function"&&(r=t,t={});var e={data:t===void 0?null:t};if(typeof r=="function"){var s="dscb"+window.dscb++;window[s]=r,e._dscbstub=s}return e=JSON.stringify(e),window._dsbridge?a=_dsbridge.call(i,e):(window._dswk||navigator.userAgent.indexOf("_dsbridge")!=-1)&&(a=prompt("_dsbridge="+i,e)),JSON.parse(a||"{}").data},register:function(i,t,r){var a=r?window._dsaf:window._dsf;window._dsInit||(window._dsInit=!0,setTimeout(function(){d.call("_dsb.dsinit")},0)),typeof t=="object"?a._obs[i]=t:a[i]=t},registerAsyn:function(i,t){this.register(i,t,!0)},hasNativeMethod:function(i,t){return this.call("_dsb.hasNativeMethod",{name:i,type:t||"all"})},disableJavascriptDialogBlock:function(i){this.call("_dsb.disableJavascriptDialogBlock",{disable:i!==!1})}};(function(){if(!window._dsf){var i={_dsf:{_obs:{}},_dsaf:{_obs:{}},dscb:0,dsBridge:d,close:function(){d.call("_dsb.closePage")},_handleMessageFromNative:function(r){var a=JSON.parse(r.data),e={id:r.callbackId,complete:!0},s=this._dsf[r.method],o=this._dsaf[r.method],p=function(u,_){e.data=u.apply(_,a),d.call("_dsb.returnValue",e)},v=function(u,_){a.push(function(w,y){e.data=w,e.complete=y!==!1,d.call("_dsb.returnValue",e)}),u.apply(_,a)};if(s)p(s,this._dsf);else if(o)v(o,this._dsaf);else{var l=r.method.split(".");if(l.length<2)return;var g=l.pop(),b=l.join("."),c=this._dsf._obs,f=c[b]||{},n=f[g];if(n&&typeof n=="function"){p(n,f);return}if(c=this._dsaf._obs,f=c[b]||{},n=f[g],n&&typeof n=="function"){v(n,f);return}}}};for(var t in i)window[t]=i[t];d.register("_hasJavascriptMethod",function(r,a){var e=r.split(".");if(e.length<2)return!!(_dsf[e]||_dsaf[e]);var r=e.pop(),s=e.join("."),o=_dsf._obs[s]||_dsaf._obs[s];return o&&!!o[r]})}})();var h=d;const N=j(h),k=J({__proto__:null,default:N},[h]);export{k as i};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u as _,j as r,r as p,b as X,P as g,f as U,k as C,M as m,l as B,d as Q,X as Y,C as ee,o as te,J as h,a as f,E as R,c as x,cV as re,cW as ne,G as v,z as T,p as oe,m as se,y as ie,bh as ae,n as me}from"./index-CvoQfwdo.js";import{T as le}from"./index-BuCRKgwB.js";import ce from"./traffic-DvVSCQZw.js";import{D as ue}from"./index-B422IDQn.js";import{B as de}from"./app-avatar-CkwqyV_0.js";import{B as pe}from"./bundle-avatar-CAMrkHMQ.js";import{C as fe,M as k}from"./memory-Besqmmjk.js";import{I as ge}from"./chart-X4Bt4jVl.js";import{w as ye}from"./withStyles-BUxuIWEH.js";import{_ as he}from"./useLocalStorage-Dm8U5SnM.js";import{T as ve,a as je}from"./ToggleButtonGroup-BqAg9PDl.js";import"./Delete-D7NoNb87.js";import"./iframe-CDtW5AKp.js";import"./ChevronLeft-BVEhqL0a.js";import"./ChevronRight-Dgndy_Tx.js";import"./index-CHm9qPJD.js";import"./Select-ZoGQlFtQ.js";import"./useThemeProps-DLZVHtlO.js";import"./CSSTransition-DeoxwYwB.js";import"./TextField-DAI8Qdpe.js";import"./InputLabel-BEvb6pBW.js";import"./InputAdornment-1LTeHxh6.js";import"./emotion-react.browser.esm-D7mngV6f.js";import"./ViewColumn-B-n8_W0D.js";import"./LastPage-__GqzflZ.js";import"./Search-DVTTUfAR.js";import"./index-BBwK0xsH.js";import"./MoreVert-Cf6FwqrB.js";import"./getValidReactChildren-Dsdsd33U.js";function xe(){const{api:e,info:n}=_();return r.jsx(ce,{client:e,did:n.did})}var E={};Object.defineProperty(E,"__esModule",{value:!0});var Z=E.default=void 0;Ce(p);var w=r;function Ce(e){return e&&e.__esModule?e:{default:e}}function D(e,n){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter(function(u){return Object.getOwnPropertyDescriptor(e,u).enumerable})),i.push.apply(i,a)}return i}function H(e){for(var n=1;n<arguments.length;n++){var i=arguments[n]!=null?arguments[n]:{};n%2?D(Object(i),!0).forEach(function(a){be(e,a,i[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):D(Object(i)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(i,a))})}return e}function be(e,n,i){return(n=Ie(n))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e}function Ie(e){var n=Me(e,"string");return typeof n=="symbol"?n:n+""}function Me(e,n){if(typeof e!="object"||!e)return e;var i=e[Symbol.toPrimitive];if(i!==void 0){var a=i.call(e,n||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}var S=function(n){return(0,w.jsxs)("svg",H(H({},n),{},{children:[(0,w.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.08295 3.2C2.08295 2.58144 2.58439 2.08 3.20295 2.08H28.8029C29.4215 2.08 29.9229 2.58144 29.9229 3.2V13.44C29.9229 14.0586 29.4215 14.56 28.8029 14.56H3.20295C2.58439 14.56 2.08295 14.0586 2.08295 13.44V3.2ZM4.32295 4.32V12.32H27.6829V4.32H4.32295ZM2.08295 18.56C2.08295 17.9414 2.58439 17.44 3.20295 17.44H28.8029C29.4215 17.44 29.9229 17.9414 29.9229 18.56V28.8C29.9229 29.4186 29.4215 29.92 28.8029 29.92H3.20295C2.58439 29.92 2.08295 29.4186 2.08295 28.8V18.56ZM4.32295 19.68V27.68H27.6829V19.68H4.32295Z",fill:"currentColor"}),(0,w.jsx)("path",{d:"M8.96297 7.04001H7.68297C7.51323 7.04001 7.35044 7.10744 7.23042 7.22746C7.1104 7.34748 7.04297 7.51027 7.04297 7.68001V8.96001C7.04297 9.12975 7.1104 9.29253 7.23042 9.41256C7.35044 9.53258 7.51323 9.60001 7.68297 9.60001H8.96297C9.13271 9.60001 9.29549 9.53258 9.41552 9.41256C9.53554 9.29253 9.60297 9.12975 9.60297 8.96001V7.68001C9.60297 7.51027 9.53554 7.34748 9.41552 7.22746C9.29549 7.10744 9.13271 7.04001 8.96297 7.04001ZM8.96297 22.4H7.68297C7.51323 22.4 7.35044 22.4674 7.23042 22.5875C7.1104 22.7075 7.04297 22.8703 7.04297 23.04V24.32C7.04297 24.4897 7.1104 24.6525 7.23042 24.7726C7.35044 24.8926 7.51323 24.96 7.68297 24.96H8.96297C9.13271 24.96 9.29549 24.8926 9.41552 24.7726C9.53554 24.6525 9.60297 24.4897 9.60297 24.32V23.04C9.60297 22.8703 9.53554 22.7075 9.41552 22.5875C9.29549 22.4674 9.13271 22.4 8.96297 22.4ZM14.083 7.04001H12.803C12.6332 7.04001 12.4704 7.10744 12.3504 7.22746C12.2304 7.34748 12.163 7.51027 12.163 7.68001V8.96001C12.163 9.12975 12.2304 9.29253 12.3504 9.41256C12.4704 9.53258 12.6332 9.60001 12.803 9.60001H14.083C14.2527 9.60001 14.4155 9.53258 14.5355 9.41256C14.6555 9.29253 14.723 9.12975 14.723 8.96001V7.68001C14.723 7.51027 14.6555 7.34748 14.5355 7.22746C14.4155 7.10744 14.2527 7.04001 14.083 7.04001ZM14.083 22.4H12.803C12.6332 22.4 12.4704 22.4674 12.3504 22.5875C12.2304 22.7075 12.163 22.8703 12.163 23.04V24.32C12.163 24.4897 12.2304 24.6525 12.3504 24.7726C12.4704 24.8926 12.6332 24.96 12.803 24.96H14.083C14.2527 24.96 14.4155 24.8926 14.5355 24.7726C14.6555 24.6525 14.723 24.4897 14.723 24.32V23.04C14.723 22.8703 14.6555 22.7075 14.5355 22.5875C14.4155 22.4674 14.2527 22.4 14.083 22.4Z",fill:"currentColor"})]}))};S.defaultProps={width:"32",height:"32",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"};S.displayName="server";Z=E.default=S;const Ne=ye(e=>({root:{height:10},colorPrimary:{backgroundColor:e.palette.grey[e.palette.mode==="light"?200:700]},bar:{backgroundColor:e.palette.secondary.main}}))(X);function $(e){const{value:n}=e;return r.jsxs(m,{display:"flex",alignItems:"center",mt:2,children:[r.jsx(m,{width:"100%",style:{overflow:"hidden"},mr:1,children:r.jsx(Ne,{variant:"determinate",...e})}),r.jsx(m,{minWidth:35,children:r.jsx(B,{variant:"body2",color:"textSecondary",children:`${Math.round(n)}%`})})]})}$.propTypes={value:g.number.isRequired};function O({disk:e}){const{t:n}=p.useContext(U),i=[{id:1,className:"used",title:n("system.used"),metric:C(e.used)},{id:2,className:"free",title:n("system.free"),metric:C(e.free)},{id:3,className:"total",title:n("system.total"),metric:C(e.total)}];return r.jsx(ge,{title:`${n("common.disk")} (${e.device})`,value:C(e.used),graph:r.jsx(m,{mt:3,children:r.jsx($,{value:e.used/e.total*100})}),description:i.map((a,u)=>r.jsxs(m,{sx:{marginLeft:u===0?0:2},children:[a.title,": ",a.metric]},a.title))})}O.propTypes={disk:g.shape({used:g.number,free:g.number,total:g.number,device:g.string})};O.defaultProps={disk:{used:0,free:0,total:1,device:""}};const L={uptime:0,pid:-1,cpuUsage:0,memoryUsage:0},V="Blocklet Server";function z({initialBlocklets:e}){const{t:n,locale:i}=te(),{api:a}=_(),[u,b]=he("runtime-view-interval",6),j=p.useMemo(()=>{const t=[];return t.push({type:"server",groupId:"server",groupName:V,id:"server:daemon",name:"Server (Daemon)",runtimeInfo:L}),t.push({type:"server",groupId:"server",groupName:V,id:"server:service",name:"Server (Service)",runtimeInfo:L}),e.forEach(o=>{h.forEachBlockletSync(o,(s,{id:l,ancestors:c})=>{s.runtimeInfo&&t.push({type:"blocklet",groupId:o.meta.did,groupName:h.getDisplayName(o),id:l,name:h.getDisplayName(s,!0),blocklet:o,component:s,runtimeInfo:s.runtimeInfo,ancestors:c})})}),t},[]),[d,I]=p.useState(j),[y,A]=p.useState({os:{platform:""},mem:{used:0,free:0,total:1},cpu:{cpus:[],currentLoad:1},disks:[],daemon:{},service:{}}),[M,F]=p.useState({cpu:[],mem:[],daemonMem:[],serviceMem:[]});f(R.EVENTS.NODE_RUNTIME_INFO,t=>{t.mem.total=t.mem.total||0,t.mem.used=t.mem.total-(t.mem.available||0),A(t),I(o=>o.map(s=>s.id==="server:daemon"?{...s,runtimeInfo:{...s.runtimeInfo,...t.daemon}}:s.id==="server:service"?{...s,runtimeInfo:{...s.runtimeInfo,...t.service}}:s))}),f(R.EVENTS.BLOCKLETS_RUNTIME_INFO,t=>{if(!t||!t.length){console.error("incorrect blocklets runtime info format",t);return}I(o=>o.map(s=>{const l=t.find(c=>c.componentId===s.id);return l?{...s,runtimeInfo:{...s.runtimeInfo,...l.runtimeInfo}}:s}))});const N=t=>{I(o=>o.filter(s=>s.groupId!==t.meta.did))},P=async t=>{try{const{blocklet:o}=await a.getBlocklet({input:{did:t.meta.did,attachRuntimeInfo:!0}});o.status!=="running"&&N(o),I(s=>{const l=s.filter(c=>c.groupId!==o.meta.did);return h.forEachBlockletSync(o,(c,{id:K,ancestors:J})=>{c.runtimeInfo&&l.push({type:"blocklet",groupId:o.meta.did,groupName:h.getDisplayName(o),id:K,name:h.getDisplayName(c,!0),blocklet:o,component:c,runtimeInfo:c.runtimeInfo,ancestors:J})}),l})}catch(o){T.error(o.message)}};f(x.BlockletEvents.removed,N),f(x.BlockletEvents.startFailed,N),f(x.BlockletEvents.statusChange,t=>{if(t.status!=="running"){N(t);return}P(t)}),f(x.BlockletEvents.updated,P),f(x.BlockletEvents.started,P);const W=()=>{a.getNodeRuntimeHistory({input:{hours:u}}).then(t=>{const o=t.history||[];F({cpu:o.map(s=>({date:s.date,value:s.cpu})),mem:o.map(s=>({date:s.date,value:s.mem})),daemonMem:o.map(s=>({date:s.date,value:s.daemonMem})),serviceMem:o.map(s=>({date:s.date,value:s.serviceMem}))})}).catch(t=>{T.error(t.message)})};p.useEffect(()=>{W()},[u]);const G=t=>oe(Number(t||0),{locale:se(i)}),q=[{label:n("common.group"),name:"groupName",options:{customBodyRenderLite(t){const{type:o,blocklet:s,groupName:l}=d[t];return o==="server"?r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(re,{width:"14",height:"14"}),r.jsx(m,{ml:1,children:l})]}):r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(de,{size:14,blocklet:s}),r.jsx(m,{ml:1,children:l})]})}}},{label:n("common.name"),name:"name",options:{customBodyRenderLite(t){const{type:o,name:s,component:l,ancestors:c}=d[t];return o==="server"?r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(Z,{width:"14",height:"14"}),r.jsx(m,{ml:1,children:s})]}):r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(pe,{size:14,blocklet:l,ancestors:c}),r.jsx(m,{ml:1,children:s})]})}}},{label:n("common.uptime"),name:"runtimeInfo.uptime",options:{customBodyRenderLite(t){const{runtimeInfo:o}=d[t];return G(o.uptime)}}},{label:n("blocklet.runtimeInfo.memoryUsage"),name:"runtimeInfo.memoryUsage",options:{customBodyRenderLite(t){const{runtimeInfo:o}=d[t];return C((o==null?void 0:o.memoryUsage)||0)},sortDirection:"asc"}},{label:n("blocklet.runtimeInfo.cpuUsage"),name:"runtimeInfo.cpuUsage",options:{customBodyRenderLite(t){const{runtimeInfo:o}=d[t];return`${(o.cpuUsage||0).toFixed(1)}%`}}},{label:n("analytics.runtime"),name:"runtimeInfo.runtime",options:{customBodyRenderLite(t){const{runtimeInfo:o}=d[t];return o!=null&&o.uptime?r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(ne,{icon:o!=null&&o.runningDocker?"catppuccin:docker-ignore":"logos:nodejs-icon"}),r.jsx(m,{ml:1,children:o!=null&&o.runningDocker?"Docker":"Nodejs"})]}):null}}},{label:n("blocklet.runtimeInfo.processId"),name:"runtimeInfo.pid"},{label:n("blocklet.runtimeInfo.port"),name:"runtimeInfo.port"}];return r.jsxs("div",{children:[r.jsxs(m,{display:"flex",justifyContent:"space-between",flexDirection:"row",mb:2,children:[r.jsx(B,{component:"h3",variant:"h5",color:"textPrimary",style:{fontSize:18,fontWeight:"bold"},children:n("analytics.trend")}),r.jsx(ve,{size:"small",exclusive:!0,value:u,onChange:(t,o)=>b(o),children:[1,3,6,12,24].map(t=>r.jsxs(je,{value:t,children:[t,"H"]},t))})]}),r.jsxs(v,{mb:4,container:!0,spacing:4,children:[r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(fe,{...y.cpu,history:M.cpu})},"cpu"),r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(k,{...y.mem,history:M.mem})},"memory"),r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(k,{title:`${n("common.memory")} (Daemon)`,used:y.daemon.memoryUsage||0,history:M.daemonMem})},"memory-daemon"),r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(k,{title:`${n("common.memory")} (Service)`,instanceCount:y.service.instanceCount||0,used:y.service.memoryUsage||0,history:M.serviceMem})},"memory-service"),y.disks.map(t=>r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(O,{disk:t})},"disk"))]}),r.jsx(ue,{className:"runtime-insight-list",title:n("analytics.detail"),locale:i,data:d,columns:q,options:{download:!1,filter:!1,print:!1,pagination:!1,rowsPerPage:100}})]})}z.propTypes={initialBlocklets:g.array.isRequired};function Pe(){const{data:e,externalData:n,initialized:i}=Q();if(!i)return r.jsx(Y,{relative:"parent",children:r.jsx(ee,{})});const a=[...e,...n];return r.jsx(z,{initialBlocklets:a})}function nt(){const e=ie(),{t:n}=p.useContext(U),{tab:i="traffic"}=ae(),a=d=>{e(`/analytics/${d}`)},u=[{label:n("common.traffic"),value:"traffic"},{label:n("common.runtime"),value:"runtime"}],b={traffic:xe,runtime:Pe},j=b[i]||b.traffic;return r.jsxs(ke,{children:[r.jsx(B,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:n("common.analytics")}),r.jsx(le,{tabs:u,current:i,onChange:a}),r.jsx("div",{className:"page-content",children:p.isValidElement(j)?j:r.jsx(j,{})})]})}const ke=me.main`
|
|
1
|
+
import{u as _,j as r,r as p,b as X,P as g,f as U,k as C,M as m,l as B,d as Q,X as Y,C as ee,o as te,J as h,a as f,E as R,c as x,cV as re,cW as ne,G as v,z as T,p as oe,m as se,y as ie,bh as ae,n as me}from"./index-szLyLiKt.js";import{T as le}from"./index-CwFt9Te9.js";import ce from"./traffic-BAWl5wSo.js";import{D as ue}from"./index-CXxy8kEI.js";import{B as de}from"./app-avatar-CulnXVaa.js";import{B as pe}from"./bundle-avatar-CqTlQZdw.js";import{C as fe,M as k}from"./memory-CMzX15_3.js";import{I as ge}from"./chart-BV_xvVd1.js";import{w as ye}from"./withStyles-CK3EIjsg.js";import{_ as he}from"./useLocalStorage-GLWMibqZ.js";import{T as ve,a as je}from"./ToggleButtonGroup-Ce-1uV__.js";import"./Delete-Cgqm12Xe.js";import"./iframe-BKue5fLa.js";import"./ChevronLeft-DIrjaRfk.js";import"./ChevronRight-BhDKV57P.js";import"./index-CcQsJNy1.js";import"./Select-C9prPdE8.js";import"./useThemeProps-e0r4gLct.js";import"./CSSTransition-Bmy9En_5.js";import"./TextField-DmmMqMAo.js";import"./InputLabel-BpHdIT50.js";import"./InputAdornment-vuq-FjCl.js";import"./emotion-react.browser.esm-Ce5DYL2G.js";import"./ViewColumn-avwxMG4J.js";import"./LastPage-Cr-0h2EM.js";import"./Search-DgsnShxd.js";import"./index-CXsdGe6B.js";import"./MoreVert-CVu4BzQC.js";import"./getValidReactChildren-CxWlB_GY.js";function xe(){const{api:e,info:n}=_();return r.jsx(ce,{client:e,did:n.did})}var E={};Object.defineProperty(E,"__esModule",{value:!0});var Z=E.default=void 0;Ce(p);var w=r;function Ce(e){return e&&e.__esModule?e:{default:e}}function D(e,n){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter(function(u){return Object.getOwnPropertyDescriptor(e,u).enumerable})),i.push.apply(i,a)}return i}function H(e){for(var n=1;n<arguments.length;n++){var i=arguments[n]!=null?arguments[n]:{};n%2?D(Object(i),!0).forEach(function(a){be(e,a,i[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):D(Object(i)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(i,a))})}return e}function be(e,n,i){return(n=Ie(n))in e?Object.defineProperty(e,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[n]=i,e}function Ie(e){var n=Me(e,"string");return typeof n=="symbol"?n:n+""}function Me(e,n){if(typeof e!="object"||!e)return e;var i=e[Symbol.toPrimitive];if(i!==void 0){var a=i.call(e,n||"default");if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(e)}var S=function(n){return(0,w.jsxs)("svg",H(H({},n),{},{children:[(0,w.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M2.08295 3.2C2.08295 2.58144 2.58439 2.08 3.20295 2.08H28.8029C29.4215 2.08 29.9229 2.58144 29.9229 3.2V13.44C29.9229 14.0586 29.4215 14.56 28.8029 14.56H3.20295C2.58439 14.56 2.08295 14.0586 2.08295 13.44V3.2ZM4.32295 4.32V12.32H27.6829V4.32H4.32295ZM2.08295 18.56C2.08295 17.9414 2.58439 17.44 3.20295 17.44H28.8029C29.4215 17.44 29.9229 17.9414 29.9229 18.56V28.8C29.9229 29.4186 29.4215 29.92 28.8029 29.92H3.20295C2.58439 29.92 2.08295 29.4186 2.08295 28.8V18.56ZM4.32295 19.68V27.68H27.6829V19.68H4.32295Z",fill:"currentColor"}),(0,w.jsx)("path",{d:"M8.96297 7.04001H7.68297C7.51323 7.04001 7.35044 7.10744 7.23042 7.22746C7.1104 7.34748 7.04297 7.51027 7.04297 7.68001V8.96001C7.04297 9.12975 7.1104 9.29253 7.23042 9.41256C7.35044 9.53258 7.51323 9.60001 7.68297 9.60001H8.96297C9.13271 9.60001 9.29549 9.53258 9.41552 9.41256C9.53554 9.29253 9.60297 9.12975 9.60297 8.96001V7.68001C9.60297 7.51027 9.53554 7.34748 9.41552 7.22746C9.29549 7.10744 9.13271 7.04001 8.96297 7.04001ZM8.96297 22.4H7.68297C7.51323 22.4 7.35044 22.4674 7.23042 22.5875C7.1104 22.7075 7.04297 22.8703 7.04297 23.04V24.32C7.04297 24.4897 7.1104 24.6525 7.23042 24.7726C7.35044 24.8926 7.51323 24.96 7.68297 24.96H8.96297C9.13271 24.96 9.29549 24.8926 9.41552 24.7726C9.53554 24.6525 9.60297 24.4897 9.60297 24.32V23.04C9.60297 22.8703 9.53554 22.7075 9.41552 22.5875C9.29549 22.4674 9.13271 22.4 8.96297 22.4ZM14.083 7.04001H12.803C12.6332 7.04001 12.4704 7.10744 12.3504 7.22746C12.2304 7.34748 12.163 7.51027 12.163 7.68001V8.96001C12.163 9.12975 12.2304 9.29253 12.3504 9.41256C12.4704 9.53258 12.6332 9.60001 12.803 9.60001H14.083C14.2527 9.60001 14.4155 9.53258 14.5355 9.41256C14.6555 9.29253 14.723 9.12975 14.723 8.96001V7.68001C14.723 7.51027 14.6555 7.34748 14.5355 7.22746C14.4155 7.10744 14.2527 7.04001 14.083 7.04001ZM14.083 22.4H12.803C12.6332 22.4 12.4704 22.4674 12.3504 22.5875C12.2304 22.7075 12.163 22.8703 12.163 23.04V24.32C12.163 24.4897 12.2304 24.6525 12.3504 24.7726C12.4704 24.8926 12.6332 24.96 12.803 24.96H14.083C14.2527 24.96 14.4155 24.8926 14.5355 24.7726C14.6555 24.6525 14.723 24.4897 14.723 24.32V23.04C14.723 22.8703 14.6555 22.7075 14.5355 22.5875C14.4155 22.4674 14.2527 22.4 14.083 22.4Z",fill:"currentColor"})]}))};S.defaultProps={width:"32",height:"32",viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"};S.displayName="server";Z=E.default=S;const Ne=ye(e=>({root:{height:10},colorPrimary:{backgroundColor:e.palette.grey[e.palette.mode==="light"?200:700]},bar:{backgroundColor:e.palette.secondary.main}}))(X);function $(e){const{value:n}=e;return r.jsxs(m,{display:"flex",alignItems:"center",mt:2,children:[r.jsx(m,{width:"100%",style:{overflow:"hidden"},mr:1,children:r.jsx(Ne,{variant:"determinate",...e})}),r.jsx(m,{minWidth:35,children:r.jsx(B,{variant:"body2",color:"textSecondary",children:`${Math.round(n)}%`})})]})}$.propTypes={value:g.number.isRequired};function O({disk:e}){const{t:n}=p.useContext(U),i=[{id:1,className:"used",title:n("system.used"),metric:C(e.used)},{id:2,className:"free",title:n("system.free"),metric:C(e.free)},{id:3,className:"total",title:n("system.total"),metric:C(e.total)}];return r.jsx(ge,{title:`${n("common.disk")} (${e.device})`,value:C(e.used),graph:r.jsx(m,{mt:3,children:r.jsx($,{value:e.used/e.total*100})}),description:i.map((a,u)=>r.jsxs(m,{sx:{marginLeft:u===0?0:2},children:[a.title,": ",a.metric]},a.title))})}O.propTypes={disk:g.shape({used:g.number,free:g.number,total:g.number,device:g.string})};O.defaultProps={disk:{used:0,free:0,total:1,device:""}};const L={uptime:0,pid:-1,cpuUsage:0,memoryUsage:0},V="Blocklet Server";function z({initialBlocklets:e}){const{t:n,locale:i}=te(),{api:a}=_(),[u,b]=he("runtime-view-interval",6),j=p.useMemo(()=>{const t=[];return t.push({type:"server",groupId:"server",groupName:V,id:"server:daemon",name:"Server (Daemon)",runtimeInfo:L}),t.push({type:"server",groupId:"server",groupName:V,id:"server:service",name:"Server (Service)",runtimeInfo:L}),e.forEach(o=>{h.forEachBlockletSync(o,(s,{id:l,ancestors:c})=>{s.runtimeInfo&&t.push({type:"blocklet",groupId:o.meta.did,groupName:h.getDisplayName(o),id:l,name:h.getDisplayName(s,!0),blocklet:o,component:s,runtimeInfo:s.runtimeInfo,ancestors:c})})}),t},[]),[d,I]=p.useState(j),[y,A]=p.useState({os:{platform:""},mem:{used:0,free:0,total:1},cpu:{cpus:[],currentLoad:1},disks:[],daemon:{},service:{}}),[M,F]=p.useState({cpu:[],mem:[],daemonMem:[],serviceMem:[]});f(R.EVENTS.NODE_RUNTIME_INFO,t=>{t.mem.total=t.mem.total||0,t.mem.used=t.mem.total-(t.mem.available||0),A(t),I(o=>o.map(s=>s.id==="server:daemon"?{...s,runtimeInfo:{...s.runtimeInfo,...t.daemon}}:s.id==="server:service"?{...s,runtimeInfo:{...s.runtimeInfo,...t.service}}:s))}),f(R.EVENTS.BLOCKLETS_RUNTIME_INFO,t=>{if(!t||!t.length){console.error("incorrect blocklets runtime info format",t);return}I(o=>o.map(s=>{const l=t.find(c=>c.componentId===s.id);return l?{...s,runtimeInfo:{...s.runtimeInfo,...l.runtimeInfo}}:s}))});const N=t=>{I(o=>o.filter(s=>s.groupId!==t.meta.did))},P=async t=>{try{const{blocklet:o}=await a.getBlocklet({input:{did:t.meta.did,attachRuntimeInfo:!0}});o.status!=="running"&&N(o),I(s=>{const l=s.filter(c=>c.groupId!==o.meta.did);return h.forEachBlockletSync(o,(c,{id:K,ancestors:J})=>{c.runtimeInfo&&l.push({type:"blocklet",groupId:o.meta.did,groupName:h.getDisplayName(o),id:K,name:h.getDisplayName(c,!0),blocklet:o,component:c,runtimeInfo:c.runtimeInfo,ancestors:J})}),l})}catch(o){T.error(o.message)}};f(x.BlockletEvents.removed,N),f(x.BlockletEvents.startFailed,N),f(x.BlockletEvents.statusChange,t=>{if(t.status!=="running"){N(t);return}P(t)}),f(x.BlockletEvents.updated,P),f(x.BlockletEvents.started,P);const W=()=>{a.getNodeRuntimeHistory({input:{hours:u}}).then(t=>{const o=t.history||[];F({cpu:o.map(s=>({date:s.date,value:s.cpu})),mem:o.map(s=>({date:s.date,value:s.mem})),daemonMem:o.map(s=>({date:s.date,value:s.daemonMem})),serviceMem:o.map(s=>({date:s.date,value:s.serviceMem}))})}).catch(t=>{T.error(t.message)})};p.useEffect(()=>{W()},[u]);const G=t=>oe(Number(t||0),{locale:se(i)}),q=[{label:n("common.group"),name:"groupName",options:{customBodyRenderLite(t){const{type:o,blocklet:s,groupName:l}=d[t];return o==="server"?r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(re,{width:"14",height:"14"}),r.jsx(m,{ml:1,children:l})]}):r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(de,{size:14,blocklet:s}),r.jsx(m,{ml:1,children:l})]})}}},{label:n("common.name"),name:"name",options:{customBodyRenderLite(t){const{type:o,name:s,component:l,ancestors:c}=d[t];return o==="server"?r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(Z,{width:"14",height:"14"}),r.jsx(m,{ml:1,children:s})]}):r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(pe,{size:14,blocklet:l,ancestors:c}),r.jsx(m,{ml:1,children:s})]})}}},{label:n("common.uptime"),name:"runtimeInfo.uptime",options:{customBodyRenderLite(t){const{runtimeInfo:o}=d[t];return G(o.uptime)}}},{label:n("blocklet.runtimeInfo.memoryUsage"),name:"runtimeInfo.memoryUsage",options:{customBodyRenderLite(t){const{runtimeInfo:o}=d[t];return C((o==null?void 0:o.memoryUsage)||0)},sortDirection:"asc"}},{label:n("blocklet.runtimeInfo.cpuUsage"),name:"runtimeInfo.cpuUsage",options:{customBodyRenderLite(t){const{runtimeInfo:o}=d[t];return`${(o.cpuUsage||0).toFixed(1)}%`}}},{label:n("analytics.runtime"),name:"runtimeInfo.runtime",options:{customBodyRenderLite(t){const{runtimeInfo:o}=d[t];return o!=null&&o.uptime?r.jsxs(m,{display:"flex",alignItems:"center",children:[r.jsx(ne,{icon:o!=null&&o.runningDocker?"catppuccin:docker-ignore":"logos:nodejs-icon"}),r.jsx(m,{ml:1,children:o!=null&&o.runningDocker?"Docker":"Nodejs"})]}):null}}},{label:n("blocklet.runtimeInfo.processId"),name:"runtimeInfo.pid"},{label:n("blocklet.runtimeInfo.port"),name:"runtimeInfo.port"}];return r.jsxs("div",{children:[r.jsxs(m,{display:"flex",justifyContent:"space-between",flexDirection:"row",mb:2,children:[r.jsx(B,{component:"h3",variant:"h5",color:"textPrimary",style:{fontSize:18,fontWeight:"bold"},children:n("analytics.trend")}),r.jsx(ve,{size:"small",exclusive:!0,value:u,onChange:(t,o)=>b(o),children:[1,3,6,12,24].map(t=>r.jsxs(je,{value:t,children:[t,"H"]},t))})]}),r.jsxs(v,{mb:4,container:!0,spacing:4,children:[r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(fe,{...y.cpu,history:M.cpu})},"cpu"),r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(k,{...y.mem,history:M.mem})},"memory"),r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(k,{title:`${n("common.memory")} (Daemon)`,used:y.daemon.memoryUsage||0,history:M.daemonMem})},"memory-daemon"),r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(k,{title:`${n("common.memory")} (Service)`,instanceCount:y.service.instanceCount||0,used:y.service.memoryUsage||0,history:M.serviceMem})},"memory-service"),y.disks.map(t=>r.jsx(v,{item:!0,lg:3,md:6,sm:6,xs:12,children:r.jsx(O,{disk:t})},"disk"))]}),r.jsx(ue,{className:"runtime-insight-list",title:n("analytics.detail"),locale:i,data:d,columns:q,options:{download:!1,filter:!1,print:!1,pagination:!1,rowsPerPage:100}})]})}z.propTypes={initialBlocklets:g.array.isRequired};function Pe(){const{data:e,externalData:n,initialized:i}=Q();if(!i)return r.jsx(Y,{relative:"parent",children:r.jsx(ee,{})});const a=[...e,...n];return r.jsx(z,{initialBlocklets:a})}function nt(){const e=ie(),{t:n}=p.useContext(U),{tab:i="traffic"}=ae(),a=d=>{e(`/analytics/${d}`)},u=[{label:n("common.traffic"),value:"traffic"},{label:n("common.runtime"),value:"runtime"}],b={traffic:xe,runtime:Pe},j=b[i]||b.traffic;return r.jsxs(ke,{children:[r.jsx(B,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:n("common.analytics")}),r.jsx(le,{tabs:u,current:i,onChange:a}),r.jsx("div",{className:"page-content",children:p.isValidElement(j)?j:r.jsx(j,{})})]})}const ke=me.main`
|
|
2
2
|
.page-header {
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: space-between;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{bQ as $,bR as x,bL as d,bY as e,bX as y,bZ as k,em as C,en as m,r as M,bS as z,bP as j,bN as l,j as s,bU as R,bV as B,s as P,P as T,aV as E}from"./index-
|
|
1
|
+
import{bQ as $,bR as x,bL as d,bY as e,bX as y,bZ as k,em as C,en as m,r as M,bS as z,bP as j,bN as l,j as s,bU as R,bV as B,s as P,P as T,aV as E}from"./index-szLyLiKt.js";function N(t){return x("MuiSwitch",t)}const o=$("MuiSwitch",["root","edgeStart","edgeEnd","switchBase","colorPrimary","colorSecondary","sizeSmall","sizeMedium","checked","disabled","input","thumb","track"]),D=["className","color","edge","size","sx"],O=t=>{const{classes:a,edge:i,size:r,color:p,checked:u,disabled:b}=t,h={root:["root",i&&`edge${e(i)}`,`size${e(r)}`],switchBase:["switchBase",`color${e(p)}`,u&&"checked",b&&"disabled"],thumb:["thumb"],track:["track"],input:["input"]},g=B(h,N,a);return l({},a,g)},_=d("span",{name:"MuiSwitch",slot:"Root",overridesResolver:(t,a)=>{const{ownerState:i}=t;return[a.root,i.edge&&a[`edge${e(i.edge)}`],a[`size${e(i.size)}`]]}})({display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"},variants:[{props:{edge:"start"},style:{marginLeft:-8}},{props:{edge:"end"},style:{marginRight:-8}},{props:{size:"small"},style:{width:40,height:24,padding:7,[`& .${o.thumb}`]:{width:16,height:16},[`& .${o.switchBase}`]:{padding:4,[`&.${o.checked}`]:{transform:"translateX(16px)"}}}}]}),I=d(y,{name:"MuiSwitch",slot:"SwitchBase",overridesResolver:(t,a)=>{const{ownerState:i}=t;return[a.switchBase,{[`& .${o.input}`]:a.input},i.color!=="default"&&a[`color${e(i.color)}`]]}})(({theme:t})=>({position:"absolute",top:0,left:0,zIndex:1,color:t.vars?t.vars.palette.Switch.defaultColor:`${t.palette.mode==="light"?t.palette.common.white:t.palette.grey[300]}`,transition:t.transitions.create(["left","transform"],{duration:t.transitions.duration.shortest}),[`&.${o.checked}`]:{transform:"translateX(20px)"},[`&.${o.disabled}`]:{color:t.vars?t.vars.palette.Switch.defaultDisabledColor:`${t.palette.mode==="light"?t.palette.grey[100]:t.palette.grey[600]}`},[`&.${o.checked} + .${o.track}`]:{opacity:.5},[`&.${o.disabled} + .${o.track}`]:{opacity:t.vars?t.vars.opacity.switchTrackDisabled:`${t.palette.mode==="light"?.12:.2}`},[`& .${o.input}`]:{left:"-100%",width:"300%"}}),({theme:t})=>({"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.activeChannel} / ${t.vars.palette.action.hoverOpacity})`:k(t.palette.action.active,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},variants:[...Object.entries(t.palette).filter(([,a])=>a.main&&a.light).map(([a])=>({props:{color:a},style:{[`&.${o.checked}`]:{color:(t.vars||t).palette[a].main,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[a].mainChannel} / ${t.vars.palette.action.hoverOpacity})`:k(t.palette[a].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${o.disabled}`]:{color:t.vars?t.vars.palette.Switch[`${a}DisabledColor`]:`${t.palette.mode==="light"?C(t.palette[a].main,.62):m(t.palette[a].main,.55)}`}},[`&.${o.checked} + .${o.track}`]:{backgroundColor:(t.vars||t).palette[a].main}}}))]})),U=d("span",{name:"MuiSwitch",slot:"Track",overridesResolver:(t,a)=>a.track})(({theme:t})=>({height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:t.transitions.create(["opacity","background-color"],{duration:t.transitions.duration.shortest}),backgroundColor:t.vars?t.vars.palette.common.onBackground:`${t.palette.mode==="light"?t.palette.common.black:t.palette.common.white}`,opacity:t.vars?t.vars.opacity.switchTrack:`${t.palette.mode==="light"?.38:.3}`})),V=d("span",{name:"MuiSwitch",slot:"Thumb",overridesResolver:(t,a)=>a.thumb})(({theme:t})=>({boxShadow:(t.vars||t).shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"})),A=M.forwardRef(function(a,i){const r=z({props:a,name:"MuiSwitch"}),{className:p,color:u="primary",edge:b=!1,size:h="medium",sx:g}=r,f=j(r,D),c=l({},r,{color:u,edge:b,size:h}),n=O(c),w=s.jsx(V,{className:n.thumb,ownerState:c});return s.jsxs(_,{className:R(n.root,p),sx:g,ownerState:c,children:[s.jsx(I,l({type:"checkbox",icon:w,checkedIcon:w,ref:i,ownerState:c},f,{classes:l({},n,{root:n.switchBase})})),s.jsx(U,{className:n.track,ownerState:c})]})}),v=P(t=>s.jsx(A,{focusVisibleClassName:".Mui-focusVisible",disableRipple:!0,...t}))(({theme:t})=>({width:42,height:26,padding:0,"& .MuiSwitch-switchBase":{padding:0,margin:2,transitionDuration:"300ms","&.Mui-checked":{transform:"translateX(16px)",color:"#fff","& + .MuiSwitch-track":{backgroundColor:t.palette.mode==="dark"?"#2ECA45":"#65C466",opacity:1,border:0},"&.Mui-disabled + .MuiSwitch-track":{opacity:.5}},"&.Mui-focusVisible .MuiSwitch-thumb":{color:"#33cf4d",border:"6px solid #fff"},"&.Mui-disabled .MuiSwitch-thumb":{color:t.palette.mode==="light"?t.palette.grey[100]:t.palette.grey[600]},"&.Mui-disabled + .MuiSwitch-track":{opacity:t.palette.mode==="light"?.7:.3}},"& .MuiSwitch-thumb":{boxSizing:"border-box",width:22,height:22},"& .MuiSwitch-track":{borderRadius:26/2,backgroundColor:t.palette.mode==="light"?"#E9E9EA":"#39393D",opacity:1,transition:t.transitions.create(["background-color"],{duration:500})}}));function S({labelProps:t,...a}){return t?s.jsx(E,{control:s.jsx(v,{...a}),...t}):s.jsx(v,{...a})}S.propTypes={labelProps:T.object};S.defaultProps={labelProps:null};export{S,A as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as o,f as n,j as t,n as e}from"./index-
|
|
1
|
+
import{r as o,f as n,j as t,n as e}from"./index-szLyLiKt.js";import{R as r}from"./index-D2z1mjPq.js";function i(){const{t:s}=o.useContext(n);return t.jsx(a,{style:{paddingTop:"25vh"},children:t.jsx(r,{status:"404",description:s("noMatch.desc"),style:{backgroundColor:"transparent"}})})}const a=e.main``;export{i as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{am as ee,y as $,r as p,a as te,c as se,P as b,o as j,u as w,x as oe,ax as q,J as N,j as t,w as M,ay as re,a2 as S,l as R,D as W,az as ne,V as O,aA as ae,B as V,C as z,aB as ie,z as K,U as G,aC as le,aD as ce,M as H,aE as ue,E as de,aF as D,L as pe,n as J,ab as he,a6 as fe,a8 as me,a9 as ge,aG as xe,aa as be}from"./index-
|
|
1
|
+
import{am as ee,y as $,r as p,a as te,c as se,P as b,o as j,u as w,x as oe,ax as q,J as N,j as t,w as M,ay as re,a2 as S,l as R,D as W,az as ne,V as O,aA as ae,B as V,C as z,aB as ie,z as K,U as G,aC as le,aD as ce,M as H,aE as ue,E as de,aF as D,L as pe,n as J,ab as he,a6 as fe,a8 as me,a9 as ge,aG as xe,aa as be}from"./index-szLyLiKt.js";import{_ as L}from"./useLocalStorage-GLWMibqZ.js";import{c as ke,C as ye,A as Se,_ as je,a as we,B as Pe,S as Q,b as ve,d as Re}from"./item-B4oZu1M-.js";import{g as E}from"./get-safe-url-d4wdsWI-.js";import{d as Ce}from"./ArrowDropDown-BzdnsirE.js";import{B as Le}from"./Breadcrumbs-B_yTpaGI.js";import"./ChevronLeft-DIrjaRfk.js";import"./ChevronRight-BhDKV57P.js";import"./Search-DgsnShxd.js";import"./index-CXsdGe6B.js";import"./Select-C9prPdE8.js";import"./Skeleton-BrUMN46n.js";import"./Autocomplete-BjYb6zBA.js";import"./ListSubheader-D0hIXr7u.js";import"./TextField-DmmMqMAo.js";import"./InputLabel-BpHdIT50.js";import"./InputAdornment-vuq-FjCl.js";import"./ShoppingCart-BMe5IDQI.js";import"./Add-Iqq5UL4X.js";import"./Launch-rq__ygCr.js";import"./Done-CQmwtYHM.js";import"./DeleteOutline-DfpoQfad.js";import"./delete-confirm-CG9pn4Op.js";import"./click-to-copy-D6a3LbT7.js";import"./shorten-label-T_aHg8P2.js";import"./blocklet-BysF7NjN.js";import"./MoreVert-CVu4BzQC.js";import"./get-safe-url-D9TInGJ7.js";import"./ButtonGroup-B9g57_Ix.js";import"./getValidReactChildren-CxWlB_GY.js";function Be(e){const a=ee(),u=$(),[o,s]=L(`sid:blocklet:purchase:${e}`),[i,c]=p.useState(!1),[h,l]=p.useState(null),f=()=>{const{pathname:r,searchParams:n}=new URL(window.location.href),d=window.env&&window.env.apiPrefix?window.env.apiPrefix:"/";n.get("sid")&&(s(""),u(r.replace(d,"/"),{replace:!0}))},m=!!(a.get("assetDid")&&o&&a.get("sid")===o);return te(se.BlockletEvents.purchaseChange,r=>{r.did===e&&(l(r.session),["declined","confirmed","error"].includes(r.session.status)&&(c(!0),setTimeout(f,2e3)))}),p.useEffect(()=>{h&&h.id!==o&&s(h.id)},[h]),{hasCompleted:i,hasPurchased:m,session:h,setSession:l,doRedirect:f}}function T({meta:e,onCancel:a,handlePaySuccess:u,storeUrl:o}){const{t:s}=j(),{info:i}=w(),[c,h]=p.useState("both"),[l,f]=p.useState(1),m=oe(i),r=q(e,i,o),n=v=>{v!==c&&h(v)},d=()=>{c&&(f(2),c==="verify"&&(window.location.href=E(r)))},k=(v,B)=>{B!=="backdropClick"&&a()},P=()=>{u(r)},g=N.getDisplayName({meta:e});if(c==="purchase"&&l===2)return t.jsx(M,{open:!0,popup:!0,baseUrl:o,action:"acquire-asset",checkFn:re.create({baseURL:S(o,"/store")}).get,onSuccess:P,onClose:a,checkTimeout:60*5e3,extraParams:{factory:e.nftFactory},webWalletUrl:m,disableClose:!0,saveConnect:!1,showDownload:!1,messages:{title:s("store.purchase.auth.title",{name:g}),scan:s("store.purchase.auth.scan"),confirm:s("store.purchase.auth.confirm"),success:t.jsxs(t.Fragment,{children:[t.jsx(R,{gutterBottom:!0,children:s("store.purchase.auth.success")}),t.jsxs(R,{variant:"subtitle2",children:[" ",s("store.purchase.autoLaunch",{name:g})]})]})}});const x=W;return t.jsx(x,{title:s("store.purchase.title",{name:g}),disableEscapeKeyDown:!0,open:!0,fullWidth:!0,onClose:k,children:t.jsx("div",{style:{marginBottom:16},children:t.jsx(ye,{action:c,onNext:d,onSelect:n})})})}T.propTypes={...ke,storeUrl:b.string.isRequired,handlePaySuccess:b.func};T.defaultProps={handlePaySuccess:e=>{setTimeout(()=>{window.location.href=E(e,{allowDomains:null})},1e3)}};function U({meta:e,buttonText:a,storeUrl:u,isResource:o}){const{t:s}=j(),i=$(),{info:c}=w(),{api:h}=ne(),l=N.isFreeBlocklet(e)===!1,[f,m]=p.useState(!1),{hasPurchased:r}=Be(e.did),[n,d]=p.useState(!1),[k]=L("instant-blocklet-install",!1),[P,g]=p.useState(!1),x=p.useMemo(()=>f?s(l?"blocklet.status.purchasing":"blocklet.status.waiting"):"",[f,s,l]),v=p.useMemo(()=>o?s("blocklet.status.resource"):l?a.purchase:a.launch,[l,a,o]),B=y=>{y.preventDefault(),y.stopPropagation();try{if(m(!0),l){d(!0);return}if(k){g(!0);return}if(!l){const C=q(e,c,u);window.location.href=E(C)}}catch(C){K.error(G(C),{autoHideDuration:5e3}),console.error("Blocklet installed failed",C)}finally{m(!1)}},Y=()=>{m(!1),d(!1)},X=y=>{m(!1),g(!1),i(`/blocklets/${y.appDid}/components`)},Z=()=>{m(!1),g(!1)};return t.jsxs(t.Fragment,{children:[t.jsx(Se,{children:t.jsx(O,{permission:"mutate_blocklets",children:y=>t.jsx(ae,{title:o?s("launchBlocklet.error.resourceBlocklet"):"",children:t.jsx(V,{onClick:B,size:"small",sx:{cursor:o?"not-allowed":"pointer"},disabled:!!(x||!y),variant:"outlined",color:"primary","data-cy":"install-blocklet",children:x?t.jsxs(t.Fragment,{children:[t.jsx(z,{size:16,style:{marginRight:3}}),x]}):v},e.did)})})}),(r||n)&&t.jsx(T,{method:"launch",meta:e,mode:"both",onCancel:Y,storeUrl:u}),P&&t.jsx(M,{popup:!0,open:!0,forceConnected:!1,className:"launch-from-url-auth",action:"launch-free-blocklet-by-session",checkFn:h.get,checkTimeout:5*60*1e3,onSuccess:X,extraParams:{title:e.title,blockletMetaUrl:decodeURIComponent(ie(u,e.did).trim())},messages:{title:s("setup.keyPair.title"),scan:s("setup.keyPair.scan"),confirm:s("setup.keyPair.confirm"),success:s("setup.keyPair.success")},onClose:Z})]})}U.propTypes={isResource:b.bool,meta:b.object.isRequired,buttonText:b.shape({purchase:b.string.isRequired,launch:b.string.isRequired}).isRequired,storeUrl:b.string.isRequired};U.defaultProps={isResource:!1};const De=(e,a,u)=>{const o=he(a);return S(u,`/blocklets/${e.did}/?server-url=${o}`)},A=({meta:e,attribute:a,value:u})=>e._formatted?e._formatted[a]:u;function I({blocklet:e,endpoint:a,serverVersion:u}){var r;const{t:o}=j(),s=w();let i=S(s.imgPrefix,"blocklet.png");const c=a;if(c.startsWith("http")&&e.logo)i=S(c,ue(e.did,e.logo,e.version));else{let d=(window.env.apiPrefix||"/").replace(/^\/+/,"").replace(/\/+$/,"");d&&(d=`/${d}`),i=S(d,`/blocklet/logo/${e.did}`)}try{const n=new URL(i);n.searchParams.set("v",e.version||+new Date),i=n.href}catch{}const h=(s==null?void 0:s.info.mode)!==de.NODE_MODES.SERVERLESS,l=n=>n.currentTarget.contains(n.target)?!0:(n.preventDefault(),!1),f={meta:e,buttonText:{purchase:o("common.purchase"),launch:o("common.launch")},storeUrl:c};let m=null;return h&&(m=t.jsx("div",{style:{display:"flex",alignItems:"center"},children:t.jsx(we,{serverVersion:u,requirementVersion:(r=e.requirements)==null?void 0:r.server,size:"small",children:t.jsx(U,{isResource:!(D.hasStartEngine(e)||D.isGatewayBlocklet(e)||D.isPackBlocklet(e)),...f})})})),t.jsx(pe,{href:De(e,s.info,a),style:{color:"initial",textDecoration:"none"},onClick:l,target:"_blank",children:t.jsx(Ee,{title:A({meta:e,attribute:"title",value:e.title||e.name}),did:e.did,description:A({meta:e,attribute:"description",value:e.description}),cover:e.logo?i:"",version:e.version,button:m})})}I.propTypes={blocklet:b.object.isRequired,serverVersion:b.string,endpoint:b.string};I.defaultProps={endpoint:"",serverVersion:""};function F({storeUrl:e,handleSearchSelect:a,extraFilter:u,...o}){var r;const{locale:s}=j(),i=w(),[c,h]=p.useState({}),l=n=>{h(n)},f=e,m=(r=i==null?void 0:i.info)==null?void 0:r.version;return p.useEffect(()=>{h({})},[f]),t.jsx(le,{FallbackComponent:ce,resetKeys:[f],children:t.jsx(H,{...o,sx:{"& .title-bar":{pt:0}},children:t.jsx(je,{layout:{showExplore:!1,showTitle:!0},blockletRender:n=>{const d={...n,endpoint:f};return t.jsx(I,{...d})},baseSearch:!0,endpoint:f,locale:s,onFilterChange:l,onSearchSelect:a,filters:c,extraFilter:u,serverVersion:m})})})}F.propTypes={storeUrl:b.string.isRequired,handleSearchSelect:b.func,extraFilter:b.func};F.defaultProps={handleSearchSelect:null,extraFilter:void 0};const Ee=J(Pe)`
|
|
2
2
|
.ms-highlight {
|
|
3
3
|
color: ${e=>e.theme.palette.primary.main};
|
|
4
4
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as E,o as W,y as j,j as e,X as I,C as T,cr as k,M as S,w as U,z as u,E as v,u as L,x as N,ap as R,af as b}from"./index-
|
|
1
|
+
import{r as E,o as W,y as j,j as e,X as I,C as T,cr as k,M as S,w as U,z as u,E as v,u as L,x as N,ap as R,af as b}from"./index-szLyLiKt.js";import{w as F}from"./wrap-locale-CrH4CaJK.js";import{g as _}from"./get-safe-url-D9TInGJ7.js";function y({SessionContext:n,webWalletUrl:a,onSuccess:c}){var g,h;const{api:o,session:t}=E.useContext(n),{t:s,locale:f}=W(),m=j(),{searchParams:l}=new URL(window.location.href),d=l.get("redirect"),w=async(r,C)=>{c(r,C),await t.refresh(),u.success(s("exchangePassport.success")),setTimeout(()=>{if(d){const i=decodeURIComponent(d);i.startsWith(v.WELLKNOWN_SERVICE_PATH_PREFIX)?m(i,{replace:!0}):window.location.href=_(i)}else window.location.href=window.env.pathPrefix||window.env.apiPrefix||"/"},3e3)},P=r=>{u.error(r.message)},x={},p=l.get("componentId");return p&&(x.componentId=p),t.loading?e.jsx(I,{children:e.jsx(T,{})}):e.jsx(k,{did:((g=window==null?void 0:window.blocklet)==null?void 0:g.appPid)||((h=window==null?void 0:window.env)==null?void 0:h.appPid),children:e.jsx(S,{sx:{width:"560px",maxWidth:"100%",height:"100%"},children:e.jsx(U,{className:"connect",action:"exchange-passport",checkFn:o.get,checkTimeout:10*60*1e3,webWalletUrl:a,onSuccess:w,onError:P,locale:f,messages:{title:s("exchangePassport.dialog.title"),scan:s("exchangePassport.dialog.scan"),confirm:s("exchangePassport.dialog.confirm"),success:s("exchangePassport.dialog.success")},extraParams:x,extraContent:null})})})}const D=F(y);function B(){const{info:n}=L(),a=N(n),c=(o,t)=>{o.sessionToken&&b(t(o.sessionToken))};return e.jsx(D,{SessionContext:R,webWalletUrl:a,onSuccess:c})}export{B as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,l as a,d9 as x,da as c,s as p}from"./index-
|
|
1
|
+
import{j as e,l as a,d9 as x,da as c,s as p}from"./index-szLyLiKt.js";function w({name:t,nameFormatter:i=o=>typeof o=="string"?o.split(" ").map(m=>x(c(m))).join(" "):o,layout:n="horizontal",children:r,valueComponent:l="div",nameWidth:s=90,...f}){return e.jsxs(d,{layout:n,width:s,...f,children:[e.jsx(a,{color:"textSecondary",className:"info-row__name",children:i(t)}),r&&e.jsx(a,{color:"textPrimary",component:l,className:"info-row__value",children:r})]})}const d=p("div")`
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: ${t=>t.layout==="vertical"?"column":"row"};
|
|
4
4
|
justify-content: flex-start;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{j as e,E as r,r as n,f as o,l as i,n as a}from"./index-CvoQfwdo.js";const s=({...t})=>e.jsxs("div",{...t,children:[e.jsx("h3",{children:"End User License Agreement for Blocklet Server"}),e.jsxs("p",{children:["Blocklet Server License Agreement ",r.COPYRIGHT_OWNER," version 2020-08-28"]}),e.jsx("p",{children:"Blocklet Server LICENSE AGREEMENT"}),e.jsxs("p",{children:["PLEASE READ THIS END USER LICENCE AGREEMENT CAREFULLY. This Blocklet Server License Agreement ('Agreement') is a legal agreement between you (the 'End User') and ",r.COPYRIGHT_OWNER," (ARCBLOCK) for the Blocklet Server software (the 'Software') licensed to End User hereunder and supplied to End User. The term Software includes any APIs, software modules, and any associated materials and 'online' or electronic documentation. This Agreement applies to End User's use of the Software but it shall be superseded by any signed agreement between End User and ARCBLOCK concerning the Software."]}),e.jsx("p",{children:"By installing or using the Software, You agree to accept and to be bound by this Agreement at all times. If You do not agree with one of these, please do not install or use the Software."}),e.jsx("h4",{children:"1. Software license"}),e.jsx("p",{children:"Notwithstanding any reference to 'sale' or 'purchase', the Software is licensed, not sold. Subject to the terms and conditions of this Agreement, ARCBLOCK grants End User a non-exclusive, non-transferable right to access and use the Software as part of the services for End User's use ('Authorized Use') in object form in the products, versions, and number of installed instances as purchased from ARCBLOCK."}),e.jsx("h4",{children:"2. Limitations"}),e.jsx("p",{children:"2.1. Restrictions. End User shall not itself, or through any parent, subsidiary, affiliate, agent or other third party: (a) sell, lease, license, distribute, sublicense or otherwise transfer in whole or in part, the Software to a third party; (b) decompile, disassemble, translate, reverse engineer or otherwise attempt to derive source code from the Software except to the limited extent, if any, that applicable law permits such acts notwithstanding any contractual prohibitions, provided, however, before End User exercises any rights that End User believes to be entitled to based on mandatory law, End User shall provide ARCBLOCK with thirty (30) days prior written notice and provide all reasonably requested information to allow ARCBLOCK to assess End User's claim and, at ARCBLOCK sole discretion, to provide alternatives that reduce any adverse impact on ARCBLOCK's intellectual property or other rights; (c) allow access or permit use of the Software by any third party except authorized third party contractors solely to provide services to End User, provided that End User shall be liable for all acts and omissions of such authorized third party contractors; (d) modify or create derivative works based upon the Software; (e) disclose the results of any benchmark test of the Software to any third party; (f) change any proprietary rights notices which appear in the Software; or (g) circumvent the license keys embedded within the Software."}),e.jsx("p",{children:"2.2. Software Transfer. Upon written consent from ARCBLOCK, which will not be unreasonably withheld, End User may permanently transfer all of its rights under this Agreement; provided that the recipient agrees to the terms of this Agreement."}),e.jsx("p",{children:"2.3. High Risk Activities. The Software is not intended for use in hazardous environments requiring fail safe performance (such as, without limitation, the planning, construction, maintenance, control, or direct operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, medical device and life support machines, or weapon systems) in which the failure of the Software could lead to death, personal injury or physical and environmental damage ('High Risk Activities'). Accordingly, this Agreement excludes any High Risk Activities and End User agrees not to use the Software in connection with High Risk Activities."}),e.jsx("h4",{children:"3. Ownership"}),e.jsx("p",{children:"The Software is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. ARCBLOCK owns all rights, title and interest in the copyrights, patents and all other intellectual property rights in and to the Software and any accompanying printed materials, and all derivative works thereof."}),e.jsx("h4",{children:"4. Open source programs"}),e.jsx("p",{children:"The Software may include individual open source software components, each of which has its own copyright and its own applicable license conditions. The open source software components are licensed to End User under the terms of the applicable open source license conditions and/or copyright notices that can be found in the licenses file, the related documentation or other materials accompanying the Software."}),e.jsx("h4",{children:"5. Trademarks"}),e.jsx("p",{children:"The marks 'ARCBLOCK', ‘BLOCKLETS’ and ‘Blocklet Server’ are trademarks of ARCBLOCK. ARCBLOCK's failure to list a trademark in this Section shall not constitute a waiver of any trademark rights. All other trademarks in the Software not owned by ARCBLOCK are the property of their respective owners."}),e.jsx("h4",{children:"6. Disclaimer and Warranty"}),e.jsx("p",{children:"6.1. DISCLAIMER OF WARRANTIES. THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT WARRANTY OF ANY KIND AND ARCBLOCK EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED OR ARISING OUT OF A COURSE OF CONDUCT OR COURSE OF DEALING, INCLUDING ALL WARRANTIES OF TITLE, PERFORMANCE, USE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON INFRINGEMENT AND THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE. ARCBLOCK MAKES NO WARRANTY REGARDING NON INTERRUPTION OF USE. NO ORAL OR WRITTEN STATEMENT PROVIDED BY ARCBLOCK SHALL CREATE ANY WARRANTY."}),e.jsx("p",{children:"6.2. LIMITATION OF LIABILITY. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY END USER. ARCBLOCK SHALL NOT HAVE ANY LIABILITY TO END USER OR ANY OTHER PARTY FOR ANY INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUE, PROFIT OR OPPORTUNITY, LOST OR DAMAGED DATA OR OTHER COMMERCIAL OR ECONOMIC LOSS, EVEN IF ARCBLOCK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR THEY ARE FORESEEABLE. ARCBLOCK'S MAXIMUM AGGREGATE LIABILITY RELATING TO THIS AGREEMENT OR THE SOFTWARE SHALL NOT EXCEED THE AMOUNT PAID BY END USER FOR THE SOFTWARE."}),e.jsx("p",{children:"6.3. ALLOCATION. THE PROVISIONS OF THIS SECTION ALLOCATE RISKS UNDER THIS AGREEMENT BETWEEN ARCBLOCK AND END USER. ARCBLOCK'S LICENSING FEES FOR THE SOFTWARE REFLECT THIS ALLOCATION OF RISKS AND LIMITATION OF LIABILITY. THE FOREGOING LIMITATIONS, EXCLUSIONS AND DISCLAIMERS APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS IN ITS ESSENTIAL PURPOSE."}),e.jsx("p",{children:"6.4. Limitation. Because some jurisdictions do not allow certain disclaimers, exclusions or limitations of warranties, damages or liability, the above disclaimers, exclusions or limitations may not apply to End User and, therefore, shall apply only to the maximum extent allowed under applicable law."}),e.jsx("h4",{children:"7. Term"}),e.jsx("p",{children:"This Agreement is effective until terminated. End Users may terminate the Agreement at any time by returning or destroying all copies of the Software and related documentation. End User's rights under this Agreement will terminate automatically if End User fails to comply with the Agreement."}),e.jsx("h4",{children:"8. Miscellaneous"}),e.jsx("p",{children:"8.1. Governing Law. This Agreement shall be governed by the laws of the State of Washington, without reference to the principles of conflicts of law. The provisions of the Uniform Computerized Information Transaction Act and United Nations Convention on Contracts for the International Sale of Goods shall not apply to this Agreement. Any litigation related to this Agreement shall be brought in the state or federal courts located in Washington, and only in those courts and each party irrevocably waives any objections to such venue. Notwithstanding anything to the contrary herein, ARCBLOCK shall be entitled to seek injunctive or other equitable relief, wherever ARCBLOCK deems appropriate in any jurisdiction, in order to preserve or enforce ARCBLOCK's rights for any breach or threatened breach of this Agreement."}),e.jsx("p",{children:"8.2. Severability. Every term, condition or provision of this Agreement is severable from the others. If a court or an arbitrator of competent jurisdiction holds any term, condition or provision of this Agreement to be invalid, unenforceable or illegal in whole or in part for any reason, the validity and enforceability of the remaining terms, conditions or provisions, or portions of them, will not be affected."}),e.jsx("p",{children:"8.3. Confidentiality. Except as expressly allowed by this Agreement, End User will not use or disclose any Software or related technology, idea, algorithm or information ('Confidential Information') except to the extent End User can document that it is generally available for use and disclosure by the public without charge or license. End User shall hold the Confidential Information in trust and confidence and avoid the disclosure or release thereof to any other person or entity by using the same degree of care as it uses to avoid unauthorized use, disclosure, or dissemination of its own Confidential Information of a similar nature, but not less than reasonable care. End User may disclose Confidential Information as required to comply with binding orders of governmental entities that have jurisdiction over it; provided that End User gives ARCBLOCK reasonable written notice to allow ARCBLOCK to seek a protective order or other appropriate remedy, discloses only such Confidential Information as is required by the governmental entity, and uses commercially reasonable efforts to obtain confidential treatment for any Confidential Information disclosed. End User recognizes and agrees that there is no adequate remedy at law for a breach of this Section, that such a breach would irreparably harm ARCBLOCK and that ARCBLOCK is entitled to equitable relief (without need to post a bond) with respect to any such breach or potential breach in addition to any other remedies."}),e.jsx("p",{children:"8.4. Indemnity. End User shall defend, indemnify and hold harmless ARCBLOCK, and its officers, directors, employees and agents (the ARCBLOCK indemnities’), from and against all suits, claims, demands, losses, liabilities, damages and expenses (including reasonable attorneys' fees and costs) that the ARCBLOCK Indemnities may suffer or incur in connection with: (i) any third party claim arising from End User's breach of this Agreement; and (ii) any infringement by End User of ARCBLOCK's intellectual property rights in the Software."}),e.jsx("p",{children:"8.5. Entire Agreement and Waiver. The Agreement is the sole, final and entire agreement between the parties with respect to the subject matter hereof, may only be amended in writing signed by both ARCBLOCK License parties. A failure or delay in enforcing any provisions, exercising any option or requiring performance, be construed to be a waiver by ARCBLOCK."}),e.jsx("p",{children:"8.6. Marketing. ARCBLOCK may use End User's name and company logo on its customer list and web site, and link to End User's web site."}),e.jsx("p",{children:"8.7. Independent Contractor. The relationship of the parties is that of independent contractors. Neither party will be deemed to be the legal representative of the other nor will it have any right to bind the other party to any contract or commitment. This Agreement does not, and will not, be construed to create an employer employee, agency, joint venture or partnership relationship between the parties. Each party agrees to assume complete responsibility for its own employees regarding federal or state laws, including employers' liability and tax withholding, worker's compensation, social security, unemployment insurance, and OSHA requirements."}),e.jsx("p",{children:"8.8. Notices. All notices must be in writing and will be effective three (3) days after the date sent to each party's corporate headquarters."}),e.jsx("p",{children:"8.9. Audit. During the term of this Agreement and for one (1) year following termination or expiration (but no more than once in a calendar year), ARCBLOCK and its auditors may inspect End User's records relating to its reproduction and use of the Software for the purposes of verifying End User's compliance with this Agreement. End User shall cooperate fully with ARCBLOCK and its auditors in conducting audits and provide reasonable assistance. If an underpayment is discovered, End User shall promptly pay such amount and End User shall reimburse ARCBLOCK for the cost of the audit."}),e.jsx("p",{children:`8.10. Government Regulation. End User acknowledges that the Software is subject to export restrictions by the U.S. government and import restrictions by certain foreign governments. End User may not export or re-export the Software except in compliance with the U.S. Export Administration Act and the related rules and regulations and similar non-U.S. government restrictions, if applicable. End User shall not and shall not allow any third party to remove or export from the United States or allow the export or re export of any part of the Software or any direct product thereof: (i) into (or to a national or resident of) any embargoed or terrorist supporting country; (ii) to anyone on the U.S. Commerce Department's Table of Denial Orders or U.S. Treasury Department's list of Specially Designated Nationals; (iii) to any country to which such export or re export is restricted or prohibited, or as to which the U.S. government or any agency thereof requires an export license or other governmental approval at the time of export or re export without first obtaining such license or approval; or (iv) otherwise in violation of any export or import restrictions, laws or regulations of any United States or foreign agency or authority. End User agrees to the foregoing and warrants that it is not located in, under the control of, or a national or resident of any such prohibited country or on any such prohibited party list. The Software is further restricted from being used for terrorist activity, or for the design or development of nuclear, chemical, or biological weapons or missile technology without the prior permission of the U.S. government. The Software and accompanying documentation are deemed to be "commercial computer software" and "commercial computer software documentation", respectively, pursuant to DFAR Section 227.7202 and FAR Section 12.212(b), as applicable. Any use, modification, reproduction, release, performing, displaying or disclosing of the Software and related documentation by the U.S. Government shall be governed solely by the terms of this Agreement.`})]});function h(){const{t}=n.useContext(o);return e.jsxs(l,{children:[e.jsx(i,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:t("setup.steps.eula")}),e.jsx(s,{})]})}const l=a.main`
|
|
1
|
+
import{j as e,E as r,r as n,f as o,l as i,n as a}from"./index-szLyLiKt.js";const s=({...t})=>e.jsxs("div",{...t,children:[e.jsx("h3",{children:"End User License Agreement for Blocklet Server"}),e.jsxs("p",{children:["Blocklet Server License Agreement ",r.COPYRIGHT_OWNER," version 2020-08-28"]}),e.jsx("p",{children:"Blocklet Server LICENSE AGREEMENT"}),e.jsxs("p",{children:["PLEASE READ THIS END USER LICENCE AGREEMENT CAREFULLY. This Blocklet Server License Agreement ('Agreement') is a legal agreement between you (the 'End User') and ",r.COPYRIGHT_OWNER," (ARCBLOCK) for the Blocklet Server software (the 'Software') licensed to End User hereunder and supplied to End User. The term Software includes any APIs, software modules, and any associated materials and 'online' or electronic documentation. This Agreement applies to End User's use of the Software but it shall be superseded by any signed agreement between End User and ARCBLOCK concerning the Software."]}),e.jsx("p",{children:"By installing or using the Software, You agree to accept and to be bound by this Agreement at all times. If You do not agree with one of these, please do not install or use the Software."}),e.jsx("h4",{children:"1. Software license"}),e.jsx("p",{children:"Notwithstanding any reference to 'sale' or 'purchase', the Software is licensed, not sold. Subject to the terms and conditions of this Agreement, ARCBLOCK grants End User a non-exclusive, non-transferable right to access and use the Software as part of the services for End User's use ('Authorized Use') in object form in the products, versions, and number of installed instances as purchased from ARCBLOCK."}),e.jsx("h4",{children:"2. Limitations"}),e.jsx("p",{children:"2.1. Restrictions. End User shall not itself, or through any parent, subsidiary, affiliate, agent or other third party: (a) sell, lease, license, distribute, sublicense or otherwise transfer in whole or in part, the Software to a third party; (b) decompile, disassemble, translate, reverse engineer or otherwise attempt to derive source code from the Software except to the limited extent, if any, that applicable law permits such acts notwithstanding any contractual prohibitions, provided, however, before End User exercises any rights that End User believes to be entitled to based on mandatory law, End User shall provide ARCBLOCK with thirty (30) days prior written notice and provide all reasonably requested information to allow ARCBLOCK to assess End User's claim and, at ARCBLOCK sole discretion, to provide alternatives that reduce any adverse impact on ARCBLOCK's intellectual property or other rights; (c) allow access or permit use of the Software by any third party except authorized third party contractors solely to provide services to End User, provided that End User shall be liable for all acts and omissions of such authorized third party contractors; (d) modify or create derivative works based upon the Software; (e) disclose the results of any benchmark test of the Software to any third party; (f) change any proprietary rights notices which appear in the Software; or (g) circumvent the license keys embedded within the Software."}),e.jsx("p",{children:"2.2. Software Transfer. Upon written consent from ARCBLOCK, which will not be unreasonably withheld, End User may permanently transfer all of its rights under this Agreement; provided that the recipient agrees to the terms of this Agreement."}),e.jsx("p",{children:"2.3. High Risk Activities. The Software is not intended for use in hazardous environments requiring fail safe performance (such as, without limitation, the planning, construction, maintenance, control, or direct operation of nuclear facilities, aircraft navigation or communication systems, air traffic control, medical device and life support machines, or weapon systems) in which the failure of the Software could lead to death, personal injury or physical and environmental damage ('High Risk Activities'). Accordingly, this Agreement excludes any High Risk Activities and End User agrees not to use the Software in connection with High Risk Activities."}),e.jsx("h4",{children:"3. Ownership"}),e.jsx("p",{children:"The Software is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. ARCBLOCK owns all rights, title and interest in the copyrights, patents and all other intellectual property rights in and to the Software and any accompanying printed materials, and all derivative works thereof."}),e.jsx("h4",{children:"4. Open source programs"}),e.jsx("p",{children:"The Software may include individual open source software components, each of which has its own copyright and its own applicable license conditions. The open source software components are licensed to End User under the terms of the applicable open source license conditions and/or copyright notices that can be found in the licenses file, the related documentation or other materials accompanying the Software."}),e.jsx("h4",{children:"5. Trademarks"}),e.jsx("p",{children:"The marks 'ARCBLOCK', ‘BLOCKLETS’ and ‘Blocklet Server’ are trademarks of ARCBLOCK. ARCBLOCK's failure to list a trademark in this Section shall not constitute a waiver of any trademark rights. All other trademarks in the Software not owned by ARCBLOCK are the property of their respective owners."}),e.jsx("h4",{children:"6. Disclaimer and Warranty"}),e.jsx("p",{children:"6.1. DISCLAIMER OF WARRANTIES. THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT WARRANTY OF ANY KIND AND ARCBLOCK EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED OR ARISING OUT OF A COURSE OF CONDUCT OR COURSE OF DEALING, INCLUDING ALL WARRANTIES OF TITLE, PERFORMANCE, USE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON INFRINGEMENT AND THE ABSENCE OF LATENT OR OTHER DEFECTS, WHETHER OR NOT DISCOVERABLE. ARCBLOCK MAKES NO WARRANTY REGARDING NON INTERRUPTION OF USE. NO ORAL OR WRITTEN STATEMENT PROVIDED BY ARCBLOCK SHALL CREATE ANY WARRANTY."}),e.jsx("p",{children:"6.2. LIMITATION OF LIABILITY. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY END USER. ARCBLOCK SHALL NOT HAVE ANY LIABILITY TO END USER OR ANY OTHER PARTY FOR ANY INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES WHATSOEVER, INCLUDING, BUT NOT LIMITED TO, LOSS OF REVENUE, PROFIT OR OPPORTUNITY, LOST OR DAMAGED DATA OR OTHER COMMERCIAL OR ECONOMIC LOSS, EVEN IF ARCBLOCK HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR THEY ARE FORESEEABLE. ARCBLOCK'S MAXIMUM AGGREGATE LIABILITY RELATING TO THIS AGREEMENT OR THE SOFTWARE SHALL NOT EXCEED THE AMOUNT PAID BY END USER FOR THE SOFTWARE."}),e.jsx("p",{children:"6.3. ALLOCATION. THE PROVISIONS OF THIS SECTION ALLOCATE RISKS UNDER THIS AGREEMENT BETWEEN ARCBLOCK AND END USER. ARCBLOCK'S LICENSING FEES FOR THE SOFTWARE REFLECT THIS ALLOCATION OF RISKS AND LIMITATION OF LIABILITY. THE FOREGOING LIMITATIONS, EXCLUSIONS AND DISCLAIMERS APPLY TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS IN ITS ESSENTIAL PURPOSE."}),e.jsx("p",{children:"6.4. Limitation. Because some jurisdictions do not allow certain disclaimers, exclusions or limitations of warranties, damages or liability, the above disclaimers, exclusions or limitations may not apply to End User and, therefore, shall apply only to the maximum extent allowed under applicable law."}),e.jsx("h4",{children:"7. Term"}),e.jsx("p",{children:"This Agreement is effective until terminated. End Users may terminate the Agreement at any time by returning or destroying all copies of the Software and related documentation. End User's rights under this Agreement will terminate automatically if End User fails to comply with the Agreement."}),e.jsx("h4",{children:"8. Miscellaneous"}),e.jsx("p",{children:"8.1. Governing Law. This Agreement shall be governed by the laws of the State of Washington, without reference to the principles of conflicts of law. The provisions of the Uniform Computerized Information Transaction Act and United Nations Convention on Contracts for the International Sale of Goods shall not apply to this Agreement. Any litigation related to this Agreement shall be brought in the state or federal courts located in Washington, and only in those courts and each party irrevocably waives any objections to such venue. Notwithstanding anything to the contrary herein, ARCBLOCK shall be entitled to seek injunctive or other equitable relief, wherever ARCBLOCK deems appropriate in any jurisdiction, in order to preserve or enforce ARCBLOCK's rights for any breach or threatened breach of this Agreement."}),e.jsx("p",{children:"8.2. Severability. Every term, condition or provision of this Agreement is severable from the others. If a court or an arbitrator of competent jurisdiction holds any term, condition or provision of this Agreement to be invalid, unenforceable or illegal in whole or in part for any reason, the validity and enforceability of the remaining terms, conditions or provisions, or portions of them, will not be affected."}),e.jsx("p",{children:"8.3. Confidentiality. Except as expressly allowed by this Agreement, End User will not use or disclose any Software or related technology, idea, algorithm or information ('Confidential Information') except to the extent End User can document that it is generally available for use and disclosure by the public without charge or license. End User shall hold the Confidential Information in trust and confidence and avoid the disclosure or release thereof to any other person or entity by using the same degree of care as it uses to avoid unauthorized use, disclosure, or dissemination of its own Confidential Information of a similar nature, but not less than reasonable care. End User may disclose Confidential Information as required to comply with binding orders of governmental entities that have jurisdiction over it; provided that End User gives ARCBLOCK reasonable written notice to allow ARCBLOCK to seek a protective order or other appropriate remedy, discloses only such Confidential Information as is required by the governmental entity, and uses commercially reasonable efforts to obtain confidential treatment for any Confidential Information disclosed. End User recognizes and agrees that there is no adequate remedy at law for a breach of this Section, that such a breach would irreparably harm ARCBLOCK and that ARCBLOCK is entitled to equitable relief (without need to post a bond) with respect to any such breach or potential breach in addition to any other remedies."}),e.jsx("p",{children:"8.4. Indemnity. End User shall defend, indemnify and hold harmless ARCBLOCK, and its officers, directors, employees and agents (the ARCBLOCK indemnities’), from and against all suits, claims, demands, losses, liabilities, damages and expenses (including reasonable attorneys' fees and costs) that the ARCBLOCK Indemnities may suffer or incur in connection with: (i) any third party claim arising from End User's breach of this Agreement; and (ii) any infringement by End User of ARCBLOCK's intellectual property rights in the Software."}),e.jsx("p",{children:"8.5. Entire Agreement and Waiver. The Agreement is the sole, final and entire agreement between the parties with respect to the subject matter hereof, may only be amended in writing signed by both ARCBLOCK License parties. A failure or delay in enforcing any provisions, exercising any option or requiring performance, be construed to be a waiver by ARCBLOCK."}),e.jsx("p",{children:"8.6. Marketing. ARCBLOCK may use End User's name and company logo on its customer list and web site, and link to End User's web site."}),e.jsx("p",{children:"8.7. Independent Contractor. The relationship of the parties is that of independent contractors. Neither party will be deemed to be the legal representative of the other nor will it have any right to bind the other party to any contract or commitment. This Agreement does not, and will not, be construed to create an employer employee, agency, joint venture or partnership relationship between the parties. Each party agrees to assume complete responsibility for its own employees regarding federal or state laws, including employers' liability and tax withholding, worker's compensation, social security, unemployment insurance, and OSHA requirements."}),e.jsx("p",{children:"8.8. Notices. All notices must be in writing and will be effective three (3) days after the date sent to each party's corporate headquarters."}),e.jsx("p",{children:"8.9. Audit. During the term of this Agreement and for one (1) year following termination or expiration (but no more than once in a calendar year), ARCBLOCK and its auditors may inspect End User's records relating to its reproduction and use of the Software for the purposes of verifying End User's compliance with this Agreement. End User shall cooperate fully with ARCBLOCK and its auditors in conducting audits and provide reasonable assistance. If an underpayment is discovered, End User shall promptly pay such amount and End User shall reimburse ARCBLOCK for the cost of the audit."}),e.jsx("p",{children:`8.10. Government Regulation. End User acknowledges that the Software is subject to export restrictions by the U.S. government and import restrictions by certain foreign governments. End User may not export or re-export the Software except in compliance with the U.S. Export Administration Act and the related rules and regulations and similar non-U.S. government restrictions, if applicable. End User shall not and shall not allow any third party to remove or export from the United States or allow the export or re export of any part of the Software or any direct product thereof: (i) into (or to a national or resident of) any embargoed or terrorist supporting country; (ii) to anyone on the U.S. Commerce Department's Table of Denial Orders or U.S. Treasury Department's list of Specially Designated Nationals; (iii) to any country to which such export or re export is restricted or prohibited, or as to which the U.S. government or any agency thereof requires an export license or other governmental approval at the time of export or re export without first obtaining such license or approval; or (iv) otherwise in violation of any export or import restrictions, laws or regulations of any United States or foreign agency or authority. End User agrees to the foregoing and warrants that it is not located in, under the control of, or a national or resident of any such prohibited country or on any such prohibited party list. The Software is further restricted from being used for terrorist activity, or for the design or development of nuclear, chemical, or biological weapons or missile technology without the prior permission of the U.S. government. The Software and accompanying documentation are deemed to be "commercial computer software" and "commercial computer software documentation", respectively, pursuant to DFAR Section 227.7202 and FAR Section 12.212(b), as applicable. Any use, modification, reproduction, release, performing, displaying or disclosing of the Software and related documentation by the U.S. Government shall be governed solely by the terms of this Agreement.`})]});function h(){const{t}=n.useContext(o);return e.jsxs(l,{children:[e.jsx(i,{component:"h2",variant:"h4",className:"page-header",color:"textPrimary",children:t("setup.steps.eula")}),e.jsx(s,{})]})}const l=a.main`
|
|
2
2
|
.page-header {
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: space-between;
|