@abtnode/blocklet-services 1.16.34-beta-20241212-152152-0b8d4bb3 → 1.16.34-beta-20241214-102147-410be539

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (307) hide show
  1. package/api/index.js +3 -6
  2. package/api/libs/connect/session.js +3 -0
  3. package/api/libs/jwt.js +17 -2
  4. package/api/middlewares/proxy-to-daemon.js +19 -12
  5. package/api/routes/env.js +1 -0
  6. package/api/services/auth/connect/invite.js +2 -0
  7. package/api/services/auth/connect/issue-passport.js +2 -0
  8. package/api/services/auth/connect/receive-transfer-app-owner.js +1 -0
  9. package/api/services/auth/connect/verify-destroy.js +112 -0
  10. package/api/services/auth/connect/verify-elevated.js +96 -0
  11. package/api/services/auth/index.js +4 -0
  12. package/api/services/studio/index.js +10 -0
  13. package/api/util/attach-shared-utils.js +1 -1
  14. package/dist/assets/{Add-C-MUV7pC.js → Add-B3HyHVtM.js} +1 -1
  15. package/dist/assets/{Alert-DbN0O0aN.js → Alert-BZsa7bfc.js} +1 -1
  16. package/dist/assets/{ArrowDropDown-BD-n5g-y.js → ArrowDropDown-CWmGDz8N.js} +1 -1
  17. package/dist/assets/Autocomplete-B_v4MmH9.js +1 -0
  18. package/dist/assets/{Avatar-BbstlMJY.js → Avatar-HEUcnEtX.js} +1 -1
  19. package/dist/assets/{ButtonGroup-YqMGRNaj.js → ButtonGroup-PQ_PkB6m.js} +1 -1
  20. package/dist/assets/{CSSTransition-CXxbf41Q.js → CSSTransition-TDy8w3WY.js} +1 -1
  21. package/dist/assets/{CheckCircle-C-J8R9KR.js → CheckCircle-DOCEgyT0.js} +1 -1
  22. package/dist/assets/{ChevronLeft-dqkQph81.js → ChevronLeft-SFcH5vl6.js} +1 -1
  23. package/dist/assets/{ChevronRight-B2k9Gvlw.js → ChevronRight-Dvxy4T9U.js} +1 -1
  24. package/dist/assets/Clear-Ch-uEC-w.js +1 -0
  25. package/dist/assets/{Delete-DOl4nPF3.js → Delete-CcyPbNyf.js} +1 -1
  26. package/dist/assets/{DeleteOutline-DYH6KsRs.js → DeleteOutline-B9ZfxIRA.js} +1 -1
  27. package/dist/assets/DialogContentText-DCnpPqHv.js +1 -0
  28. package/dist/assets/DialogTitle-CX4cvOk0.js +1 -0
  29. package/dist/assets/{Done-DEI256sV.js → Done-CfZqxitA.js} +1 -1
  30. package/dist/assets/{Download-B7Y03H7t.js → Download-BFWJCBB8.js} +1 -1
  31. package/dist/assets/{EditIcon-WRiAz_Ii.js → EditIcon-DNaLymXS.js} +1 -1
  32. package/dist/assets/{Error-BqDO0zZY.js → Error-BdnfHrUX.js} +1 -1
  33. package/dist/assets/{ExpandMore-BO8jF1bn.js → ExpandMore-DA8Sn2_n.js} +1 -1
  34. package/dist/assets/FormControl-CM7jdcik.js +1 -0
  35. package/dist/assets/FormControlLabel-Cipo0pK9.js +1 -0
  36. package/dist/assets/FormGroup-DmfCMPMS.js +1 -0
  37. package/dist/assets/{Google-D_mc2y32.js → Google-BJuaWa9v.js} +1 -1
  38. package/dist/assets/{Grid-tsC4khHx.js → Grid-CoWPn88b.js} +1 -1
  39. package/dist/assets/{HelpOutline-BoXfs1w7.js → HelpOutline-BLqCylfM.js} +1 -1
  40. package/dist/assets/{Hidden-ipoc6BxF.js → Hidden-BwfHTnYp.js} +1 -1
  41. package/dist/assets/{InfoOutlined-BxU1CEPg.js → InfoOutlined-CGB23H0o.js} +1 -1
  42. package/dist/assets/InputAdornment-l4hLGyx4.js +1 -0
  43. package/dist/assets/{LastPage--sm4pHpX.js → LastPage-BHrK-cLk.js} +1 -1
  44. package/dist/assets/{Launch-6LXlwp2H.js → Launch-DEmczOPJ.js} +1 -1
  45. package/dist/assets/{LaunchOutlined-B6l7-o_Y.js → LaunchOutlined-CAHo3VOk.js} +1 -1
  46. package/dist/assets/Link-B6ysFdMX.js +1 -0
  47. package/dist/assets/{ListItemButton-YchFGwTe.js → ListItemButton-B1OWxnBV.js} +1 -1
  48. package/dist/assets/{ListSubheader-CKfDOFlq.js → ListSubheader-pUobARf7.js} +1 -1
  49. package/dist/assets/{LoadingButton-C4TIaNaq.js → LoadingButton-DG2r6d7f.js} +1 -1
  50. package/dist/assets/{LockIcon-DtPBoSNv.js → LockIcon-BRQqJ557.js} +1 -1
  51. package/dist/assets/{Loop-BmB9k803.js → Loop-Cuw7KT5w.js} +1 -1
  52. package/dist/assets/{MarkEmailRead-D59Dom04.js → MarkEmailRead-C--1q4xK.js} +1 -1
  53. package/dist/assets/{Menu-CasLu-ky.js → Menu-CkQpad2d.js} +1 -1
  54. package/dist/assets/{MoreHoriz-B5aoiijW.js → MoreHoriz-BKTzsCTZ.js} +1 -1
  55. package/dist/assets/{MoreVert-C9UJnjfF.js → MoreVert-10_PTroK.js} +1 -1
  56. package/dist/assets/{OpenInNew-YMhtYwHE.js → OpenInNew-Bq4wVVSa.js} +1 -1
  57. package/dist/assets/OutlinedInput-CEhVWPRi.js +2 -0
  58. package/dist/assets/{Pagination-Df9SRmt8.js → Pagination-BEqA_-kn.js} +1 -1
  59. package/dist/assets/{PlayArrow-BEtJ369o.js → PlayArrow-BIVbzBbT.js} +1 -1
  60. package/dist/assets/{QuestionMarkCircle-CuvZsXbn.js → QuestionMarkCircle-U5AYINmw.js} +1 -1
  61. package/dist/assets/{RadioGroup-CGMGVlf2.js → RadioGroup-CdcEvXbb.js} +1 -1
  62. package/dist/assets/{Search-CKwfa740.js → Search-BAkyJLzf.js} +1 -1
  63. package/dist/assets/Select-BtQONHC5.js +1 -0
  64. package/dist/assets/{ServerLogo-BAQKQJ7V.js → ServerLogo-DgH3ECXb.js} +1 -1
  65. package/dist/assets/{Skeleton-D0-q_hvU.js → Skeleton-CGO11W5Q.js} +5 -5
  66. package/dist/assets/{Stack-BO9M0PIW.js → Stack-COUrUgv1.js} +1 -1
  67. package/dist/assets/{Stepper-RItm9i-D.js → Stepper-mqXb5jVu.js} +1 -1
  68. package/dist/assets/TextField-uoLan4-D.js +1 -0
  69. package/dist/assets/{Toolbar-DYiylaGG.js → Toolbar-C5iQWYfr.js} +1 -1
  70. package/dist/assets/ViewColumn-go0xuyyo.js +1 -0
  71. package/dist/assets/{ViewList-BaL8evRq.js → ViewList-BM5p31ao.js} +1 -1
  72. package/dist/assets/_createAggregator-BSUdgXdA.js +1 -0
  73. package/dist/assets/access-control-D5pU0ds5.js +13 -0
  74. package/dist/assets/{actions-CchlEsiO.js → actions-DVGs71CV.js} +1 -1
  75. package/dist/assets/{add-component-core-oabwwAHL.js → add-component-core-BduE5Qc5.js} +2 -2
  76. package/dist/assets/add-resource-DrKVNKDf.js +1 -0
  77. package/dist/assets/{addon-k5gcfsfJ.js → addon-DO7ZVcZQ.js} +1 -1
  78. package/dist/assets/{analytics-9EII-v2b.js → analytics-BlFdI6AL.js} +8 -8
  79. package/dist/assets/api-D7TuGL10.js +1 -0
  80. package/dist/assets/ar-BAnh0kq-.js +1 -0
  81. package/dist/assets/ar-vUARlc-K.js +1 -0
  82. package/dist/assets/audit-logs-Bap9qCVc.js +58 -0
  83. package/dist/assets/{base32-Cog_VZ0k.js → base32-Bix9mNu5.js} +1 -1
  84. package/dist/assets/branding-CFILog-5.js +40 -0
  85. package/dist/assets/{bundle-avatar-C-1ahBAR.js → bundle-avatar-CY31_Buy.js} +1 -1
  86. package/dist/assets/{button-CSzyfzmK.js → button-BOPbs6R8.js} +1 -1
  87. package/dist/assets/{click-to-copy-BBLmW78J.js → click-to-copy-B-IagKFx.js} +1 -1
  88. package/dist/assets/{complete-BRGGVyCs.js → complete-Cfrn5deV.js} +2 -2
  89. package/dist/assets/{component-BOFPPqD8.js → component-DU2DN-Ae.js} +6 -6
  90. package/dist/assets/{config-iLqs6SqP.js → config-NA3UDutD.js} +1 -1
  91. package/dist/assets/{config-BuQgZfpX.js → config-U-e-_0Po.js} +2 -2
  92. package/dist/assets/{config-navigation-C5_bJU0f.js → config-navigation-DWYUEAmI.js} +6 -6
  93. package/dist/assets/{config-space-C56d0lRU.js → config-space-D-wNk3O8.js} +1 -1
  94. package/dist/assets/confirm-DoFYzLCD.js +7 -0
  95. package/dist/assets/{connect-o-hOItU0.js → connect-BPP1EQ9m.js} +1 -1
  96. package/dist/assets/{connect-DOaWC9ft.js → connect-COnC7LGD.js} +2 -2
  97. package/dist/assets/{connect-to-CUmo43dQ.js → connect-to-CRjtxtZD.js} +1 -1
  98. package/dist/assets/{content-layout-Coi8AV4p.js → content-layout-C6ss1seH.js} +1 -1
  99. package/dist/assets/{dashboard-CazjqRmG.js → dashboard-B29PgJdK.js} +9 -9
  100. package/dist/assets/de-CYAy3iib.js +1 -0
  101. package/dist/assets/de-DBLZOTm4.js +1 -0
  102. package/dist/assets/{deprecate-B2OaYvW_.js → deprecate-Bfb8FxlF.js} +1 -1
  103. package/dist/assets/{did-address-CqYEOOvT.js → did-address-W2D5q_Ko.js} +1 -1
  104. package/dist/assets/domain-8A-Bb5Vf.js +9 -0
  105. package/dist/assets/domain-list-BlN3UnU5.js +15 -0
  106. package/dist/assets/{email-DD_llVWt.js → email-D0cGXehh.js} +3 -3
  107. package/dist/assets/emotion-cache.browser.esm-BJd0i6wh.js +1 -0
  108. package/dist/assets/es-Bi-IB68O.js +1 -0
  109. package/dist/assets/es-Bn01DRSJ.js +1 -0
  110. package/dist/assets/exchange-passport-Cs6bUD__.js +1 -0
  111. package/dist/assets/{fallback-CVomANXA.js → fallback-bURgS5BO.js} +1 -1
  112. package/dist/assets/{form-text-input-dBeTAT7j.js → form-text-input-BnwSHGUa.js} +2 -2
  113. package/dist/assets/{format-error-CXOPpcrE.js → format-error-qE4eWtuQ.js} +1 -1
  114. package/dist/assets/fr-D3J0B-tk.js +1 -0
  115. package/dist/assets/fr-DXAbgUPh.js +1 -0
  116. package/dist/assets/{fuel-CDp9ZffP.js → fuel-DYICJXZO.js} +1 -1
  117. package/dist/assets/{fullpage-CWXnpLtu.js → fullpage-DW3LgEki.js} +1 -1
  118. package/dist/assets/{get-safe-url-B3_JzMvg.js → get-safe-url-Dhzrk6uX.js} +1 -1
  119. package/dist/assets/{get-safe-url-DLq03enx.js → get-safe-url-S1qu_6Pw.js} +1 -1
  120. package/dist/assets/hi-DdEYPkL3.js +1 -0
  121. package/dist/assets/hi-Dz19or1H.js +1 -0
  122. package/dist/assets/{home-CSMD2Z1d.js → home-BGgkEeoN.js} +1 -1
  123. package/dist/assets/id-BadnMPq_.js +1 -0
  124. package/dist/assets/id-C6kfQsmT.js +1 -0
  125. package/dist/assets/{iframe-DCD_qn_b.js → iframe-B0Y5VZT4.js} +1 -1
  126. package/dist/assets/index-B-MTGmhc.js +1 -0
  127. package/dist/assets/{index-BbwkcNKT.js → index-B0-yJewg.js} +1 -1
  128. package/dist/assets/{index-DEcPGLHC.js → index-BB9Y-7kV.js} +1 -1
  129. package/dist/assets/{index-CS43LeKQ.js → index-BHshGDF7.js} +1 -1
  130. package/dist/assets/index-BIkp0K96.js +1 -0
  131. package/dist/assets/{index-C03QRPVb.js → index-BO68mfyE.js} +10 -10
  132. package/dist/assets/{index-BLKPMstc.js → index-BbrXjipI.js} +7 -7
  133. package/dist/assets/{index-CMGrAADS.js → index-Bc-_Zi-W.js} +1 -1
  134. package/dist/assets/index-BcaoZxjZ.js +4 -0
  135. package/dist/assets/{index-Ci5RfQ59.js → index-C895TQLf.js} +1 -1
  136. package/dist/assets/{index-MlLLj7ox.js → index-CC_Na8qQ.js} +1 -1
  137. package/dist/assets/{index-DbAVBGvq.js → index-CFEPx64F.js} +2 -2
  138. package/dist/assets/{index-CxwdZ5FQ.js → index-CoHkYVDV.js} +1 -1
  139. package/dist/assets/{index-BkwS3xmJ.js → index-Cou7Kk3U.js} +8 -8
  140. package/dist/assets/{index-BJPpUK5T.js → index-Cr-DtddY.js} +19 -16
  141. package/dist/assets/{index-CgETkxdp.js → index-CsT7LyYB.js} +1 -1
  142. package/dist/assets/{index-CGNW_HS5.js → index-D6cqf8kl.js} +4 -4
  143. package/dist/assets/{index-unKKAfCB.js → index-D9YGgNqL.js} +16 -16
  144. package/dist/assets/{index-B2QN3yxT.js → index-DEbd0oB1.js} +7 -7
  145. package/dist/assets/{index-C7otKf8F.js → index-DFFp-KRY.js} +21 -21
  146. package/dist/assets/{index-DsAOaF68.js → index-DHZKtNfH.js} +1 -1
  147. package/dist/assets/{index-2Q0z0xFE.js → index-DIA_1V2x.js} +1 -1
  148. package/dist/assets/{index-ClKfKXJz.js → index-DOeAD_2U.js} +1 -1
  149. package/dist/assets/{index-B-5mC5YF.js → index-DZyED7ak.js} +1 -1
  150. package/dist/assets/{index-BAC0visH.js → index-DnPEQyT1.js} +1 -1
  151. package/dist/assets/{index-DQSbUwd9.js → index-Dw86ejmG.js} +1 -1
  152. package/dist/assets/{index-C2ynZPOY.js → index-FARJ4CmG.js} +8 -8
  153. package/dist/assets/{index-DIA9qwvc.js → index-JdqBLsAB.js} +3 -3
  154. package/dist/assets/index-PVmgaFUO.js +1 -0
  155. package/dist/assets/{index-DnlBG2uS.js → index-Tj_mFIuY.js} +1 -1
  156. package/dist/assets/{index-DvbaB47F.js → index-WfneHrey.js} +1 -1
  157. package/dist/assets/index-lNA9IIbJ.js +291 -0
  158. package/dist/assets/{index-BWCk5LbW.js → index-xBWtFaIB.js} +2 -2
  159. package/dist/assets/{invitation-8Vja2ez-.js → invitation-Ck3CoF-t.js} +3 -3
  160. package/dist/assets/invite-7JOTBO2A.js +5 -0
  161. package/dist/assets/{isEmail-B6BHZ8TX.js → isEmail-D7Asw66k.js} +1 -1
  162. package/dist/assets/{issue-passport-D8pAGg2V.js → issue-passport-ChsyPFyk.js} +1 -1
  163. package/dist/assets/{item-rGVvbhmE.js → item-BdtfgvBs.js} +1 -1
  164. package/dist/assets/ja-CkktdjqD.js +1 -0
  165. package/dist/assets/ja-DN837plG.js +1 -0
  166. package/dist/assets/{jss-plugin-props-sort.esm-BqC3mtsa.js → jss-plugin-props-sort.esm-CF1jS-lO.js} +6 -6
  167. package/dist/assets/ko-BRLl3b0u.js +1 -0
  168. package/dist/assets/ko-LU148n3o.js +1 -0
  169. package/dist/assets/{launch-result-message-fLJdiQ4t.js → launch-result-message-CwmmWOMW.js} +1 -1
  170. package/dist/assets/{layout-Df9B9CD5.js → layout-Bd6DoZoy.js} +1 -1
  171. package/dist/assets/{list-header-8wYyLFjq.js → list-header-9IJv-iSy.js} +1 -1
  172. package/dist/assets/localization-oV3Kd_0i.js +1 -0
  173. package/dist/assets/{log-CXrE-Pqc.js → log-DaESFbKs.js} +6 -6
  174. package/dist/assets/login-Dtc3ECZp.js +1 -0
  175. package/dist/assets/{login-oauth-callback-CgPqb7Lq.js → login-oauth-callback-BJeHAJ7q.js} +1 -1
  176. package/dist/assets/logo-uploader-BEVNghGE.js +133 -0
  177. package/dist/assets/{lost-passport-Bh8A1qX6.js → lost-passport-DwGf8Vlp.js} +4 -4
  178. package/dist/assets/{lottie-react.esm-BSqfmkGG.js → lottie-react.esm-HgyZYlNO.js} +1 -1
  179. package/dist/assets/notifications-VFqCsgh4.js +65 -0
  180. package/dist/assets/{open-window-ByvPY_IP.js → open-window-BBejx2wW.js} +1 -1
  181. package/dist/assets/overview-Cons5CpM.js +12 -0
  182. package/dist/assets/{page-header-9hNVxRoa.js → page-header-BdOgOkhG.js} +1 -1
  183. package/dist/assets/{permission-CaRXgle6.js → permission-CJORGapO.js} +1 -1
  184. package/dist/assets/{preferences-CUsklTmz.js → preferences-CRGFiW-F.js} +1 -1
  185. package/dist/assets/pt-CSZkEO8C.js +1 -0
  186. package/dist/assets/pt-CVEpS0WJ.js +1 -0
  187. package/dist/assets/publish-resource-BPdKmDbw.js +1 -0
  188. package/dist/assets/{raf-schd.esm-Bnef47nT.js → raf-schd.esm-DO2B_266.js} +1 -1
  189. package/dist/assets/{react-beautiful-dnd.esm-CpS0-Aqe.js → react-beautiful-dnd.esm-B0qpoL0v.js} +4 -4
  190. package/dist/assets/refType-Cwb4Ewjt.js +1 -0
  191. package/dist/assets/{resource-dialog-CWTUaf-O.js → resource-dialog-CurFbneU.js} +11 -11
  192. package/dist/assets/ru-CPz1NiGU.js +1 -0
  193. package/dist/assets/ru-Kbn-Tcut.js +1 -0
  194. package/dist/assets/sdk-BogUA5D6.js +1 -0
  195. package/dist/assets/{selector-Bgtpcya_.js → selector-Du8tTgLg.js} +2 -2
  196. package/dist/assets/session-DWy9sT95.js +1 -0
  197. package/dist/assets/setup-B69qnB1H.js +19 -0
  198. package/dist/assets/{shorten-label-DtvVN3_a.js → shorten-label-Ba3qRY3O.js} +1 -1
  199. package/dist/assets/simple-select-NSslFRey.js +1 -0
  200. package/dist/assets/{slicedToArray-gtBWtJl8.js → slicedToArray-DnG70Erc.js} +1 -1
  201. package/dist/assets/{start-C4tmiEBt.js → start-DT8p2NnP.js} +1 -1
  202. package/dist/assets/{step-actions-Bbj9n3cG.js → step-actions-CgCj26Nh.js} +1 -1
  203. package/dist/assets/{studio-GA30qFJk.js → studio-gA9FVtOC.js} +1 -1
  204. package/dist/assets/{switch-control-86ykn9ge.js → switch-control-BN9OkP3V.js} +1 -1
  205. package/dist/assets/th-DN9Th20c.js +1 -0
  206. package/dist/assets/th-TeCEZBAH.js +1 -0
  207. package/dist/assets/{toUpper--yB2KjPh.js → toUpper-D-4kyCa2.js} +1 -1
  208. package/dist/assets/transfer-C3U-vABy.js +16 -0
  209. package/dist/assets/{trim-08Op5xjY.js → trim-CRA-BoWh.js} +1 -1
  210. package/dist/assets/{uniqBy-DFF7Lt_J.js → uniqBy-CwChXxd0.js} +1 -1
  211. package/dist/assets/{unsubscribe-Dy2MxVJy.js → unsubscribe-DWlDXPkd.js} +1 -1
  212. package/dist/assets/{url-join-fD9yT9x3.js → url-join-D30P1Ce3.js} +1 -1
  213. package/dist/assets/use-mobile-BD_FZ6Ra.js +1 -0
  214. package/dist/assets/use-mobile-BhHTlekD.js +1 -0
  215. package/dist/assets/{useAsync-Co-ihL9T.js → useAsync-nyVjdCwh.js} +1 -1
  216. package/dist/assets/{useFormControl-Ef5WMbDC.js → useFormControl-ByXcqYyU.js} +1 -1
  217. package/dist/assets/{useLocalStorage-DElqf361.js → useLocalStorage-BcwZPfXB.js} +1 -1
  218. package/dist/assets/{useSetState-CuEGVXqh.js → useSetState-S0BEkJD4.js} +1 -1
  219. package/dist/assets/useSlot-DcqlBn33.js +1 -0
  220. package/dist/assets/{useSlotProps-CP7QQ02c.js → useSlotProps-D-blxf7S.js} +1 -1
  221. package/dist/assets/{useThemeProps-55Y0sL0H.js → useThemeProps-DJJBFim4.js} +1 -1
  222. package/dist/assets/{user-center-PWXrG48O.js → user-center-DPbvIPzU.js} +1 -1
  223. package/dist/assets/{user-sessions-CbhSRGeB.js → user-sessions-B2B9euhY.js} +1 -1
  224. package/dist/assets/{util-D3UE9Z7D.js → util-DWRxZQGf.js} +1 -1
  225. package/dist/assets/utils-iop7lDec.js +1 -0
  226. package/dist/assets/vi-ChReTICx.js +1 -0
  227. package/dist/assets/vi-DJT1ejL2.js +1 -0
  228. package/dist/assets/wrap-locale-I1B3o83L.js +1 -0
  229. package/dist/assets/zh-BTeqEH4T.js +1 -0
  230. package/dist/assets/zh-DAHbwHB9.js +2 -0
  231. package/dist/assets/zh-tw-BTKhoiaD.js +1 -0
  232. package/dist/assets/zh-tw-CJBhIBvB.js +1 -0
  233. package/dist/index.html +1 -1
  234. package/dist/service-worker.js +1 -1
  235. package/package.json +27 -27
  236. package/dist/assets/Autocomplete-xp0cyiCL.js +0 -1
  237. package/dist/assets/DialogContentText-COq3rw-i.js +0 -1
  238. package/dist/assets/FormControl-BsxgOlTX.js +0 -1
  239. package/dist/assets/FormControlLabel-Dgpj-XRb.js +0 -1
  240. package/dist/assets/FormGroup-b58twP-q.js +0 -1
  241. package/dist/assets/InputAdornment-BiYr4cW6.js +0 -1
  242. package/dist/assets/Link-fX4KUiej.js +0 -1
  243. package/dist/assets/Select-B3cdfIzb.js +0 -2
  244. package/dist/assets/TextField-BWghiml0.js +0 -1
  245. package/dist/assets/ViewColumn-Bz1lupxM.js +0 -1
  246. package/dist/assets/_createAggregator-aO50YhXH.js +0 -1
  247. package/dist/assets/access-control-DplRO33H.js +0 -13
  248. package/dist/assets/add-resource-Pr1QILYG.js +0 -1
  249. package/dist/assets/api-BKvFaP38.js +0 -1
  250. package/dist/assets/ar-B3QGVHSJ.js +0 -1
  251. package/dist/assets/ar-C077vlSK.js +0 -1
  252. package/dist/assets/audit-logs-BRW30t3L.js +0 -58
  253. package/dist/assets/branding-CJWvfGxB.js +0 -37
  254. package/dist/assets/confirm-DGKnhqaC.js +0 -7
  255. package/dist/assets/de-3qFVPzmX.js +0 -1
  256. package/dist/assets/de-CuczgAA8.js +0 -1
  257. package/dist/assets/domain-BjG22k3m.js +0 -9
  258. package/dist/assets/domain-list-IwhSKnxn.js +0 -15
  259. package/dist/assets/emotion-cache.browser.esm-CuIm0Hab.js +0 -1
  260. package/dist/assets/es-D938HYco.js +0 -1
  261. package/dist/assets/es-DmfpsaZ4.js +0 -1
  262. package/dist/assets/exchange-passport-Bj5rusMj.js +0 -1
  263. package/dist/assets/fr-BUgkJkru.js +0 -1
  264. package/dist/assets/fr-BdiBXaSB.js +0 -1
  265. package/dist/assets/hi-BkZt_7Gb.js +0 -1
  266. package/dist/assets/hi-CLGvJ0VO.js +0 -1
  267. package/dist/assets/id-Cg1I2efN.js +0 -1
  268. package/dist/assets/id-CoJHfLJv.js +0 -1
  269. package/dist/assets/index-Bw4jUIg2.js +0 -4
  270. package/dist/assets/index-C2TlC4O6.js +0 -1
  271. package/dist/assets/index-D7VlJHOF.js +0 -1
  272. package/dist/assets/index-DOuTbUzq.js +0 -1
  273. package/dist/assets/index-UA6q4JVO.js +0 -291
  274. package/dist/assets/invite-CagtO6bL.js +0 -5
  275. package/dist/assets/ja-BfQ6NQ1Q.js +0 -1
  276. package/dist/assets/ja-DgVJN0fA.js +0 -1
  277. package/dist/assets/ko-CXw5-Tyj.js +0 -1
  278. package/dist/assets/ko-OirMS2DQ.js +0 -1
  279. package/dist/assets/localization-BSqs41PK.js +0 -1
  280. package/dist/assets/login-wunPRpnb.js +0 -1
  281. package/dist/assets/logo-uploader-DESUa9bt.js +0 -133
  282. package/dist/assets/notifications-0BDelSaD.js +0 -65
  283. package/dist/assets/overview-NyLZyTzQ.js +0 -12
  284. package/dist/assets/pt-C5FGXBS-.js +0 -1
  285. package/dist/assets/pt-DFNHF52P.js +0 -1
  286. package/dist/assets/publish-resource-7Yi_94S6.js +0 -1
  287. package/dist/assets/redux-CluOqhW1.js +0 -1
  288. package/dist/assets/refType-BNRJ1Xey.js +0 -1
  289. package/dist/assets/ru-D1ipkx7j.js +0 -1
  290. package/dist/assets/ru-Dk6dsYPJ.js +0 -1
  291. package/dist/assets/sdk-DNBFu3Vd.js +0 -1
  292. package/dist/assets/session-SThzCGTr.js +0 -1
  293. package/dist/assets/setup-CWvIujH2.js +0 -19
  294. package/dist/assets/simple-select-DE145g5Z.js +0 -1
  295. package/dist/assets/th-Bq0BOWuO.js +0 -1
  296. package/dist/assets/th-K6XbH1UY.js +0 -1
  297. package/dist/assets/transfer-BqyfwC5R.js +0 -16
  298. package/dist/assets/use-mobile-Bdr2kObC.js +0 -1
  299. package/dist/assets/use-mobile-BjsDuAgv.js +0 -1
  300. package/dist/assets/useSlot-C9LBI1FF.js +0 -1
  301. package/dist/assets/vi-CgCRvPul.js +0 -1
  302. package/dist/assets/vi-w34NOSIe.js +0 -1
  303. package/dist/assets/wrap-locale-CuTZ5aof.js +0 -1
  304. package/dist/assets/zh-C8AwRuvb.js +0 -2
  305. package/dist/assets/zh-EJ-gpgMc.js +0 -1
  306. package/dist/assets/zh-tw-BvZpzT6d.js +0 -1
  307. package/dist/assets/zh-tw-OB9rgk8B.js +0 -1
@@ -1 +0,0 @@
1
- const e={auth:{noPermission:{title:"لا أذونات",description:"أنت لست مسؤول البلوكليت"}},login:{reLogin:"إعادة الاتصال",description:"يجب عليك الاتصال بمحفظة DID الخاصة بك للوصول إلى {name}",already:"أنت متصل بصفتك",connectWallet:"قم بتوصيل محفظة DID",closeWindow:"أغلق النافذة",accessLimit:{title:"الوصول إلى الصفحة محدود",description:"هذه الصفحة تتطلب جوازات السفر التالية للوصول واستخدم المحفظة لتغييرها أو تقديم طلب للحصول على الجواز المقابل.",alreadyHavePassport:"لدي جواز السفر بالفعل",connectWithPassport:"اتصل باستخدام هذه الجواز السفر",buyPassport:"شراء جواز السفر"},switchDid:{title:"قم بتبديل محفظة DID",scan:"مسح الرمز الشريطي التالي لتبديل الحساب",confirm:"قم بتأكيد التبديل في محفظتك الرقمية للهوية",success:"تم التبديل بنجاح"},switchSpecifiedDid:{title:"تبديل محفظة DID",scan:"تحتاج إلى التبديل إلى DID الخاص بـ {did} لإكمال الإجراءات التالية.",confirm:"قم بتأكيد التبديل في محفظتك لضمان الهوية الرقمية",success:"تم التبديل بنجاح"},connect:{title:"قم بتوصيل محفظة DID",scan:"قم بتوصيل محفظة الهوية الخاصة بك للوصول إلى هذا التطبيق",confirm:"قم بتأكيد محفظتك في صفقة",success:"تم الاتصال بنجاح"},needManualClose:"تم تسجيل الدخول بنجاح، إن لم يتم إغلاق النافذة تلقائيًا، يُرجى إغلاقها يدويًا.",connectWithPassport:"اتصل بهذا الجواز",invalidRedirectUrl:"عنوان إعادة توجيه غير صالح",issueKyc:{pageDescription:"أكمل التحقق لتأمين حسابك والحصول على NFT يمكن إعادة استخدامه، والذي يمكن الثقة به من قبل المواقع الأخرى (تحقق مرة واحدة وعرض في كل مكان).",verifyButton:"التحقق",sendCodeButton:"احصل على رمز التحقق",codeSentMessage:"لقد قمنا فقط بإرسال رمز التحقق إلى {email}، وسيكون الرمز صالحًا لمدة 30 دقيقة، يرجى التحقق من صندوق الوارد الخاص بك أو مجلد البريد العشوائي.",codeSentSuccess:"تم إرسال رمز التحقق بنجاح",claim:"شهادة بريد إلكتروني موثقة",scan:"قم بتوصيل محفظة DID الخاصة بك لتلقي الشهادة",confirm:"تأكيد على محفظتك DID",success:"تهانينا! لقد قمت بالتحقق من بريدك الإلكتروني بنجاح وادعى الشهادة في محفظتك DID.",backToHome:"العودة إلى الصفحة الرئيسية",emailPlaceholder:"عنوان بريدك الإلكتروني",verifyTitle:"تحقق من عنوان بريدك الإلكتروني",issueTitle:"مطالبة بالتحقق من البريد الإلكتروني NFT",verifyAction:"التحقق",issueAction:"ادعاء",issueTarget:"أنت {action} للـ DID التالي ، انقر على الصورة الرمزية لإضافة DID آخر"},updateKyc:{button:"تقديم الشهادة",title:"عرض شهادة البريد الإلكتروني المحققة",scan:"قم بتوصيل محفظة DID الخاصة بك لتقديم الشهادة",confirm:"تأكيد على محفظتك DID",success:"تهانينا! تم التحقق من NFT الخاص بك وتم قبوله."},invalidOpenerUrl:"عنوان URL الخاص بالافتتاح غير صحيح"},studio:{home:"استوديو",preferences:"مُنشئ التفضيلات",localization:"تعريب",branding:"صور العلامة التجارية",ratio:"نسبة",size:"حجم",count:"عد",tip:"نصيحة",change:"انقر على الشعار للتغيير.",order:"طلب",orderTip:"اسحب للتغيير",orderTipLong:"اسحب للتغيير، إذا قمت بحذف أي لقطة شاشة على القرص، يرجى تحديث الصفحة.",type:"نوع"},blocklet:{startApplication:"بدء التطبيق",startDescription:"جاهز للبدء {name}",start:"ابدأ",starting:"جاري البدء...",open:"افتح",suspended:"تم إيقاف التطبيق",manageSubscription:"إدارة الاشتراك",suspendedCausedByExpired:"توقف هذا التطبيق مؤقتًا بسبب انتهاء فترة سداد الدفع. يرجى التجديد قبل {deadline} لاستئناف الخدمة. ‏وفي حالة عدم التجديد في الإطار الزمني المحدد، ستكون هناك استحالة لتجديد الخدمة أو استئنافها.",suspendedCausedByTerminated:"تم إنهاء التطبيق بسبب إلغاء الاشتراك، والذي تم إلغاؤه في {canceledAt}، وسيتم الاحتفاظ بالبيانات حتى {deadline}؛ وقبل حذف البيانات، يمكنك عمل نسخة احتياطية للبيانات إلى DID Spaces.",terminated:"تم إنهاء التطبيق",gotoVisitError:"غير قادر على الوصول إلى URL البلوكلت، الرجاء المحاولة مرة أخرى لاحقًا."},setup:{steps:{connect:"اتصل",didSpace:"مساحات المصادقة الرقمية",config:"تهيئة",domain:"المجال",access:"مراقبة الوصول",fuel:"وقود",complete:"كامل",introduction:"مقدمة",selectNodeDesc:"اختر خادم بلوكليت",launchAppDesc:"تثبيت بلوكليت على الخادم",setupAppDesc:"إعداد بلوكليت",launched:"اكتمال"},connect:{title:"الاتصال بالتطبيق",scan:"قم بتوصيل محفظة DID الخاصة بك لتوفير ملف تعريف المستخدم وامتيازات مالك blocklet ، ثم يمكنك تكوين وتشغيل التطبيق.",confirm:"تأكيد على محفظة تربطها ببياناتك الشخصية",success:"تم الاتصال بنجاح"},domain:{addTitle:"ربط نطاق موجود (اختياري)",title:"إعداد المجال",subTitle:"قم بتعيين نطاق مخصص للتطبيق",label:"يرجى تقديم اسم مجال صالح",tipStart:"يرجى التأكد",tipEnd:"لديه نقطة للخادم الحالي",cannotResolve:"يتعذر حل {domain} ، يرجى التحقق من تكوين DNS الخاص بك.",checkingResolvable:"جار التحقق من حالة النطاق...",addingCert:"جاري إنشاء الشهادة...",addingDomain:"إضافة النطاق...",recordType:"نوع السجل",recordValue:"قيمة التسجيل",skipStart:"يمكنك",skip:"تخطي إعداد النطاق المخصص",skipEnd:"واستخدم النطاق الافتراضي للوصول إلى التطبيق",genCertSuccess:"تم إصدار شهادة {domain} بنجاح",genCertFailed:"فشل إصدار شهادة لـ {domain}: {message}",genCertFailedForNFTDomain:"تمت إضافة نطاق NFT بنجاح، ولكن فشل إنشاء شهادة HTTPS. يرجى المحاولة مرة أخرى في وقت لاحق.",resolvedAddressError:"لا يشير {domain} إلى نفس عنوان IP الخاص بـ {curDomain}",invalidDNSReminder:"{error}. ومع ذلك، يمكنك الاستمرار في إضافة النطاق، ولكن ليس متاحًا توليد الشهادة تلقائيًا.",continueAdd:"مواصلة الإضافة",buyDIDDomainTitle:"اشتري نطاق DID (اختياري)",buyDIDDomainTips:"بعد شراء نطاق DID ، سيتم ربط النطاق تلقائيًا بالتطبيق."},didSpace:{title:"قم بتكوين أماكن DID",subTitle:"يرجى إكمال عملية الاتصال التالية لتخزين بيانات التطبيق في أماكن DID.",tips:"نصائح",description:"قم بتكوين عنوان مثيل مساحات DID وقم بتخزين بيانات التطبيق في مساحات DID بعد اتصال ناجح",label:"يرجى تحديد خدمة مساحات ديد",connected:"لقد تم الاتصال الناجح بمساحات DID",connect:"اتصل الآن",reconnect:"إعادة الاتصال",addressCannotEmpty:"لا يمكن أن يكون العنوان فارغًا",addressNotValid:"{url} ليس عنوانًا صالحًا.",authorize:{title:"قم بتوصيل {appName} إلى أماكن DID",scan:"استخدم محفظتك DID لمسح رمز الاستجابة السريعة أدناه للسماح لتطبيق {appName} بالاتصال بـ DID Spaces",success:"تم الاتصال بنجاح"}},config:{title:"تكوين",subTitle:"عناصر التكوين الأخرى (ستحتاج أيضًا لتعيين العناصر التالية)"},complete:{title:"كل شيء جاهز",failedTitle:"فشل في بدء التشغيل للبلوكليت",backToServer:"العودة إلى خادم بلوكليت",notRunning:"فشل بدء البلوكلت في المحاولة الأولى ، يرجى إعادة المحاولة"},fuel:{title:"الوقود المطلوب للبدء",tipStart:"فتحة",tipEnd:"يتطلب هذا التطبيق رصيدًا ليعمل بشكل صحيح ، حيث يتم حفظ الأموال في محفظة التطبيق ويمكن استخدامها لأغراض رسوم المعاملات. يمكنك سحب رصيدك في أي وقت عندما لا يكون لديك التطبيق قيد التشغيل بعد الآن.",addressTitle:"حساب التطبيق",addressTip:"قم بتعبئة التطبيق بمحفظة DID",need:"احتياج",current:"حالي",fuelApp:"تزويد التطبيق بالوقود"},title:"الإعداد",next:"التالي",previous:"السابق",continue:"استمر",skip:"تخطى",startNow:"ابدأ الآن",confirm:"تأكيد",cancel:"إلغاء"},user:{walletNotification:"إشعار محفظة DID",emailNotification:"تنبيه البريد الإلكتروني",smsNotification:"إشعار الرسائل القصيرة",addWebhook:"إضافة خطاف ويب جديد"},pageTitle:{login:"تسجيل الدخول",dashboard:"لوحة تحكم بلوكليت",userCenter:"مركز المستخدم",invite:"استدعاء",issuePassport:"إصدار جواز سفر",lostPassport:"تم فقد جواز السفر"}};export{e as default};
@@ -1,58 +0,0 @@
1
- import{aU as C,r as n,j as t,v as P,u as T,n as B,B as x,aY as M,a3 as I,A as b,T as d,O as L,K as _}from"./index-C7otKf8F.js";import{M as W}from"./index-ClKfKXJz.js";import{E as F}from"./index-Ci5RfQ59.js";import{T as z}from"./index-2Q0z0xFE.js";import{_ as R}from"./useLocalStorage-DElqf361.js";import{R as K}from"./dashboard-CazjqRmG.js";import{F as O}from"./FormControl-BsxgOlTX.js";import{d as U,S as D}from"./Select-B3cdfIzb.js";import{P as G}from"./Pagination-Df9SRmt8.js";import{r as H}from"./index-BbwkcNKT.js";import"./index-B-5mC5YF.js";import"./MoreVert-C9UJnjfF.js";import"./FormControlLabel-Dgpj-XRb.js";import"./useFormControl-Ef5WMbDC.js";import"./Stack-BO9M0PIW.js";import"./index-CxwdZ5FQ.js";import"./confirm-DGKnhqaC.js";import"./DialogContentText-COq3rw-i.js";import"./Alert-DbN0O0aN.js";import"./useSlot-C9LBI1FF.js";import"./format-error-CXOPpcrE.js";import"./Delete-DOl4nPF3.js";import"./PlayArrow-BEtJ369o.js";import"./get-safe-url-B3_JzMvg.js";import"./ButtonGroup-YqMGRNaj.js";import"./RadioGroup-CGMGVlf2.js";import"./FormGroup-b58twP-q.js";import"./Avatar-BbstlMJY.js";import"./session-SThzCGTr.js";import"./permission-CaRXgle6.js";import"./useAsync-Co-ihL9T.js";import"./Link-fX4KUiej.js";import"./useSetState-CuEGVXqh.js";import"./fallback-CVomANXA.js";import"./index-BkwS3xmJ.js";import"./Menu-CasLu-ky.js";import"./Toolbar-DYiylaGG.js";import"./Hidden-ipoc6BxF.js";import"./index-BWCk5LbW.js";import"./ListItemButton-YchFGwTe.js";import"./selector-Bgtpcya_.js";import"./deprecate-B2OaYvW_.js";import"./index-C2TlC4O6.js";import"./LastPage--sm4pHpX.js";const S=n.createContext({}),{Provider:Y,Consumer:De}=S;function q({children:e,scope:o="",categories:a=[],showScope:i,scopeFormatter:p}){const{api:s,info:l}=C(),[c,r]=n.useState([]),[h,A]=n.useState({total:0,pageSize:20,pageCount:0,page:1}),[j,f]=n.useState(!1),[u,k]=R(`audit-log-category-${o}`,"all"),N=[{value:"all",label:"All",description:""},{value:"blocklet",label:"Blocklet Management",description:""},{value:"server",label:"Server Management",description:""},{value:"team",label:"Team Management",description:""},{value:"security",label:"Security",description:""},{value:"certificates",label:"Certificate Management",description:""},{value:"integrations",label:"Integration Management",description:""},{value:"gateway",label:"Gateway",description:""}].filter(g=>a.length?g.value==="all"||a.includes(g.value):!0),y=async({page:g=1,silent:E=!0}={})=>{if(!j){E||f(!0);try{const m=await s.getAuditLogs({input:{paging:{page:g},category:u==="all"?"":u,scope:o}});i&&(m.list||[]).forEach(v=>{v.scope!==l.did&&(v.link=`/blocklets/${v.scope}/components`)}),r(m.list),A(m.paging),f(!1)}catch(m){P.error(m.message),f(!1)}}};n.useEffect(()=>{y({page:1,silent:!1})},[]),n.useEffect(()=>{y({page:1,silent:!1})},[u]);const $={loading:j,fetch:y,filter:{category:u,scope:o},categories:N,setCategory:k,data:c,paging:h,showScope:i,scopeFormatter:p};return t.jsx(Y,{value:{auditLogs:$},children:e})}function w(){const{auditLogs:e}=n.useContext(S);return e}const J=({log:e,info:o,inService:a})=>a?`${_.WELLKNOWN_BLOCKLET_ADMIN_PATH}/members?did=${e.actor.did}`:e.scope===o.did?`/team/members?did=${e.actor.did}`:`/blocklets/${e.scope}/members?did=${e.actor.did}`;function Q({log:e}){var l,c;const{inService:o,info:a}=C(),{showScope:i,scopeFormatter:p=r=>r}=w();if(!e.actor.did)return null;const s=!["blocklet",""].includes(e.actor.role);return t.jsxs(x,{className:"log-entry","data-cy":"log-entry",children:[t.jsx("div",{className:"log-author",children:s?t.jsx(b,{did:e.actor.did,size:36,shape:"circle"}):t.jsx(b,{did:e.actor.did,size:36})}),t.jsxs("div",{className:"log-body",children:[t.jsxs(d,{className:"log-header",color:"textSecondary",component:"p",gutterBottom:!0,display:"flex",alignItems:"center",children:[i&&t.jsx(L,{to:e.link,children:t.jsx(z,{style:{marginRight:8},children:p(e.scope)})}),s?t.jsxs(L,{to:J({log:e,inService:o,info:a}),target:"_blank",children:[e.actor.fullName,e.actor.role?`(${e.actor.role})`:""]}):t.jsxs("span",{children:[e.actor.fullName,e.actor.role?`(${e.actor.role})`:""]})," ",t.jsx("span",{style:{margin:"0 4px"},children:"-"})," ",e.action]}),t.jsx(d,{className:"log-content",maxWidth:"lg",color:"textPrimary",component:"div","data-color-mode":"light",gutterBottom:!0,children:t.jsx(W,{source:e.content,rehypePlugins:[[H,{target:"_blank"}]]})}),t.jsxs(x,{className:"log-meta",variant:"body2",children:[!!e.ip&&t.jsx(d,{component:"span",color:"textSecondary",children:`IP: ${e.ip}`}),!!((l=e.env.os)!=null&&l.name)&&t.jsxs(d,{component:"span",color:"textSecondary",children:[e.env.os.name,"(",e.env.os.version,")"]}),!!((c=e.env.browser)!=null&&c.name)&&t.jsxs(d,{component:"span",color:"textSecondary",children:[e.env.browser.name,"(",e.env.browser.version,")"]}),t.jsx(d,{component:"span",color:"textSecondary",children:t.jsx(K,{value:e.createdAt})})]})]})]})}function V(){const{t:e}=T(),{data:o,loading:a,paging:i,filter:p,categories:s,setCategory:l,fetch:c}=w();return a?t.jsx("div",{style:{textAlign:"center",marginTop:"50px"},children:t.jsx(B,{})}):t.jsxs(X,{"data-cy":"audit-logs",children:[t.jsx(x,{className:"log-controls",children:t.jsxs(O,{style:{width:"240px"},variant:"outlined",children:[t.jsx(U,{children:e("common.filter")}),t.jsx(D,{"data-cy":"filter-by-category-trigger",value:p.category,onChange:r=>l(r.target.value),fullWidth:!0,label:e("common.category"),disabled:a,children:s.map(r=>t.jsx(M,{value:r.value,"data-cy":`filter-by-category-${r.value}`,children:t.jsx(x,{children:t.jsx("span",{children:r.label})})},r.label))})]})}),o.length===0&&t.jsx(F,{children:e("common.empty")}),o.length>0&&o.map(r=>t.jsx(Q,{log:r},r.id)),i.pageCount>1&&t.jsx(G,{page:i.page,count:i.pageCount,onChange:(r,h)=>c({page:h}),showFirstButton:!0,showLastButton:!0})]})}function Ge({scope:e,categories:o,showScope:a,scopeFormatter:i}){return t.jsx(q,{scope:e,categories:o,showScope:a,scopeFormatter:i,children:t.jsx(V,{})})}const X=I.div`
2
- .log-controls {
3
- display: flex;
4
- justify-content: space-between;
5
- }
6
- .log-entry {
7
- display: flex;
8
- margin: 16px 0;
9
-
10
- .log-author {
11
- margin-right: 8px;
12
- }
13
-
14
- .log-body {
15
- flex: 1;
16
-
17
- a {
18
- color: ${({theme:e})=>e.palette.primary.main};
19
- }
20
-
21
- .log-header {
22
- }
23
-
24
- .log-content {
25
- p {
26
- margin-bottom: 4px;
27
- }
28
- ul,
29
- ol {
30
- padding-left: 2rem;
31
- }
32
- li {
33
- list-style-type: disc;
34
- }
35
- code.code-highlight {
36
- max-height: 300px;
37
- overflow: auto;
38
- }
39
- }
40
-
41
- .log-meta {
42
- margin-top: 4px;
43
-
44
- span {
45
- font-size: 0.8rem;
46
- display: inline-block;
47
- margin-right: 8px;
48
- padding-right: 8px;
49
- border-right: 1px solid #ccc;
50
-
51
- &:last-of-type {
52
- border-right: none;
53
- }
54
- }
55
- }
56
- }
57
- }
58
- `;export{Ge as default};
@@ -1,37 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-DIA9qwvc.js","assets/index-C7otKf8F.js","assets/index-B4oT57Ax.css","assets/url-join-fD9yT9x3.js","assets/index-DvbaB47F.js","assets/_createAggregator-aO50YhXH.js","assets/index-DnlBG2uS.js","assets/index-CgETkxdp.js","assets/resource-dialog-CWTUaf-O.js","assets/fallback-CVomANXA.js","assets/index-BkwS3xmJ.js","assets/Menu-CasLu-ky.js","assets/Toolbar-DYiylaGG.js","assets/Hidden-ipoc6BxF.js","assets/index-BWCk5LbW.js","assets/MoreVert-C9UJnjfF.js","assets/FormControlLabel-Dgpj-XRb.js","assets/useFormControl-Ef5WMbDC.js","assets/Stack-BO9M0PIW.js","assets/ListItemButton-YchFGwTe.js","assets/selector-Bgtpcya_.js","assets/ExpandMore-BO8jF1bn.js","assets/Avatar-BbstlMJY.js","assets/useSlot-C9LBI1FF.js","assets/index-CMGrAADS.js","assets/OpenInNew-YMhtYwHE.js","assets/index-CxwdZ5FQ.js","assets/Link-fX4KUiej.js","assets/Skeleton-D0-q_hvU.js","assets/HelpOutline-BoXfs1w7.js","assets/index-DEcPGLHC.js","assets/ButtonGroup-YqMGRNaj.js","assets/DialogContentText-COq3rw-i.js","assets/TextField-BWghiml0.js","assets/FormControl-BsxgOlTX.js","assets/Select-B3cdfIzb.js","assets/use-mobile-Bdr2kObC.js","assets/index-B-5mC5YF.js","assets/index-Ci5RfQ59.js","assets/index-C2ynZPOY.js","assets/emotion-cache.browser.esm-CuIm0Hab.js","assets/purify.es-DutPtr9A.js","assets/index-DOuTbUzq.js","assets/index-C03QRPVb.js","assets/useThemeProps-55Y0sL0H.js","assets/toPropertyKey-PLuKRk1e.js","assets/ViewColumn-Bz1lupxM.js","assets/FormGroup-b58twP-q.js","assets/Grid-tsC4khHx.js","assets/Delete-DOl4nPF3.js","assets/LastPage--sm4pHpX.js","assets/redux-CluOqhW1.js","assets/Search-CKwfa740.js","assets/deprecate-B2OaYvW_.js","assets/uniqBy-DFF7Lt_J.js","assets/toUpper--yB2KjPh.js","assets/index-AgKpYdvC.css"])))=>i.map(i=>d[i]);
2
- import{u as _,r as c,X as L,j as e,T as l,B as o,aH as k,c4 as z,a8 as A,K as d,a3 as D}from"./index-C7otKf8F.js";import{d as F}from"./DeleteOutline-DYH6KsRs.js";import{E as C,D as N,C as T,P as H}from"./react-beautiful-dnd.esm-CpS0-Aqe.js";import{S as g}from"./studio-GA30qFJk.js";import{S as a}from"./Stack-BO9M0PIW.js";import{A as K}from"./Avatar-BbstlMJY.js";import"./redux-CluOqhW1.js";import"./toPropertyKey-PLuKRk1e.js";import"./raf-schd.esm-Bnef47nT.js";import"./index-BkwS3xmJ.js";import"./Menu-CasLu-ky.js";import"./Toolbar-DYiylaGG.js";import"./Hidden-ipoc6BxF.js";import"./fallback-CVomANXA.js";import"./useSlot-C9LBI1FF.js";const w=c.lazy(()=>A(()=>import("./index-DIA9qwvc.js").then(r=>r.i),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56])).then(r=>({default:r.Uploader}))),$=`${d.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/logo/upload`,B=`${d.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/screenshots/upload`,V=`${d.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/logo`,f=`${d.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/screenshots`;function ae(){var P,S;const{t:r,locale:R}=_(),[v,j]=c.useState(!1),[I,b]=c.useState(""),t=L(async()=>(await fetch(f)).json()),x=c.useRef(null),h=c.useRef(null);if(t.loading)return e.jsx(g,{children:e.jsx(C,{size:40})});if(t.error)return e.jsx(g,{children:e.jsx(a,{direction:"column",spacing:1,sx:{mb:3},children:e.jsx(l,{color:"error.main",sx:{fontWeight:"bold"},children:t.error.message})})});const p=(((P=t.data)==null?void 0:P.screenshots)||[]).map(s=>`${f}/${s}`),O=async s=>{if(!s.destination)return;const i=Array.from(p),[n]=i.splice(s.source.index,1);i.splice(s.destination.index,0,n),await fetch(`${f}/reorder`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({screenshots:i.map(m=>m.split("/").pop())})}),t.runAsync()},W=s=>{b(s),j(!0)},y=()=>{j(!1),b("")};return e.jsx(g,{children:e.jsxs(U,{children:[e.jsxs(a,{direction:"column",spacing:1,sx:{mb:3},children:[e.jsxs(l,{variant:"h5",sx:{fontWeight:"bold"},children:["Supply Images for ",(S=t.data)==null?void 0:S.title]}),e.jsxs(l,{variant:"body2",color:"text.secondary",children:["For more information, please refer to the"," ",e.jsx("a",{href:`https://www.arcblock.io/docs/blocklet-store/${R}/supplying-images`,target:"_blank",rel:"noreferrer",children:"documentation"})]})]}),e.jsxs(o,{display:"flex",flexDirection:"column",sx:{mb:4},children:[e.jsxs(a,{direction:"column",spacing:1,sx:{mb:2},children:[e.jsx(l,{variant:"h6",sx:{fontWeight:"bold"},children:r("common.logo")}),e.jsxs(a,{direction:"row",spacing:2,sx:{fontSize:"13px",opacity:.8},children:[e.jsx(o,{children:e.jsxs(o,{component:"span",children:[e.jsxs(o,{component:"span",sx:{color:"#555"},children:[r("studio.type"),":"," "]}),e.jsx(o,{component:"span",sx:{color:"#007ec6"},children:"png, jpg, webp, svg"})]})}),e.jsx(o,{children:e.jsxs(o,{component:"span",children:[e.jsxs(o,{component:"span",sx:{color:"#555"},children:[r("studio.ratio"),":"," "]}),e.jsx(o,{component:"span",sx:{color:"#007ec6"},children:"256x256"})]})}),e.jsx(o,{children:e.jsxs(o,{component:"span",children:[e.jsxs(o,{component:"span",sx:{color:"#555"},children:[r("studio.size"),":"," "]}),e.jsx(o,{component:"span",sx:{color:"#007ec6"},children:"<500KB"})]})})]}),e.jsx(o,{sx:{fontSize:"13px",opacity:.8},children:e.jsxs(o,{component:"span",children:[e.jsxs(o,{component:"span",sx:{color:"#555"},children:[r("studio.tip"),":"," "]}),e.jsx(o,{component:"span",sx:{color:"#007ec6"},children:r("studio.change")})]})})]}),e.jsx(o,{sx:{flex:1,cursor:"pointer"},children:e.jsx(K,{variant:"square",sx:{width:128,height:128},alt:"Blocklet Logo",src:V,onClick:()=>{var s;(s=x.current)==null||s.open()}})})]}),e.jsxs(o,{display:"flex",mt:3,flexDirection:"column",children:[e.jsxs(a,{direction:"column",spacing:1,sx:{mb:1},children:[e.jsx(l,{variant:"h6",sx:{fontWeight:"bold"},children:r("common.screenshot")}),e.jsxs(a,{direction:"row",spacing:2,sx:{fontSize:"13px",opacity:.8},children:[e.jsx(o,{children:e.jsxs(o,{component:"span",children:[e.jsxs(o,{component:"span",sx:{color:"#555"},children:[r("studio.ratio"),":"," "]}),e.jsx(o,{component:"span",sx:{color:"#007ec6"},children:"16 / 9"})]})}),e.jsx(o,{children:e.jsxs(o,{component:"span",children:[e.jsxs(o,{component:"span",sx:{color:"#555"},children:[r("studio.count"),":"," "]}),e.jsx(o,{component:"span",sx:{color:"#007ec6"},children:"1~5"})]})}),e.jsx(o,{children:e.jsxs(o,{component:"span",children:[e.jsxs(o,{component:"span",sx:{color:"#555"},children:[r("studio.size"),":"," "]}),e.jsx(o,{component:"span",sx:{color:"#007ec6"},children:"<5MB"})]})})]}),e.jsx(o,{sx:{fontSize:"13px",opacity:.8},children:e.jsxs(o,{component:"span",children:[e.jsxs(o,{component:"span",sx:{color:"#555"},children:[r("studio.tip"),":"," "]}),e.jsx(o,{component:"span",sx:{color:"#007ec6"},children:r("studio.orderTipLong")})]})})]}),e.jsx(N,{onDragEnd:O,children:e.jsx(T,{droppableId:"screenshots",direction:"horizontal",children:(s,i)=>e.jsxs(o,{display:"flex",alignItems:"center",sx:{flex:1,mt:1,flexWrap:"wrap",minHeight:225,background:i.isDraggingOver?"#f5f5f5":"transparent",transition:"background-color 0.2s ease",border:i.isDraggingOver?"2px dashed #999":"none",borderRadius:"4px"},ref:s.innerRef,...s.droppableProps,children:[p.map((n,m)=>e.jsx(H,{draggableId:n,index:m,children:(u,E)=>e.jsxs(o,{ref:u.innerRef,...u.draggableProps,...u.dragHandleProps,className:"screenshot",sx:{transform:E.isDragging?"scale(1.05)":"none",boxShadow:E.isDragging?"0 5px 10px rgba(0,0,0,0.15)":"none",transition:"transform 0.2s ease, box-shadow 0.2s ease"},children:[e.jsx("img",{alt:"screenshot",src:n,onClick:()=>W(n),style:{cursor:"pointer"}}),e.jsx(k,{className:"action",onClick:async()=>{await fetch(n,{method:"DELETE"}),t.runAsync()},children:e.jsx(F,{})})]})},n)),s.placeholder,p.length<5&&e.jsx(o,{sx:{width:400,height:225,background:"#eee",cursor:"pointer",color:"#999",mb:2},display:"flex",justifyContent:"center",alignItems:"center",fontSize:40,onClick:()=>{var n;(n=h.current)==null||n.open()},children:"+"})]})})})]}),e.jsx(z,{open:v,onClose:y,maxWidth:"xl",PaperProps:{style:{backgroundColor:"transparent",boxShadow:"none"}},children:e.jsx("img",{src:I,alt:"Screenshot Full",style:{maxWidth:"90vw",maxHeight:"90vh",objectFit:"contain"},onClick:y})}),e.jsxs(c.Suspense,{fallback:e.jsx(C,{size:40}),children:[e.jsx(w,{ref:x,popup:!0,onUploadFinish:()=>{var s;(s=x.current)==null||s.close(),t.runAsync()},plugins:["ImageEditor"],installerProps:{disabled:!0},apiPathProps:{uploader:$,disableMediaKitPrefix:!0,disableMediaKitStatus:!0},coreProps:{restrictions:{allowedFileTypes:["image/png","image/jpeg","image/webp","application/svg+xml"],maxFileSize:1024*1024*.5,maxNumberOfFiles:1}},dashboardProps:{autoOpen:"imageEditor"},imageEditorProps:{actions:{revert:!0,rotate:!0,granularRotate:!0,flip:!0,zoomIn:!0,zoomOut:!0,cropSquare:!1,cropWidescreen:!1,cropWidescreenVertical:!1},cropperOptions:{autoCrop:!0,aspectRatio:1,initialAspectRatio:1,autoCropArea:1,croppedCanvasOptions:{minWidth:256,minHeight:256}}}},"uploader-logo"),e.jsx(w,{ref:h,popup:!0,onUploadFinish:()=>{var s;(s=h.current)==null||s.close(),t.runAsync()},installerProps:{disabled:!0},plugins:["ImageEditor"],apiPathProps:{uploader:B,disableMediaKitPrefix:!0,disableMediaKitStatus:!0},coreProps:{restrictions:{allowedFileTypes:["image/*","application/svg+xml"],maxFileSize:1024*1024*5,maxNumberOfFiles:5-p.length}},dashboardProps:{autoOpen:"imageEditor"},imageEditorProps:{actions:{revert:!0,rotate:!0,granularRotate:!0,flip:!0,zoomIn:!0,zoomOut:!0,cropSquare:!1,cropWidescreen:!1,cropWidescreenVertical:!1},cropperOptions:{autoCrop:!0,autoCropArea:1,aspectRatio:16/9,initialAspectRatio:16/9,croppedCanvasOptions:{minWidth:1280,minHeight:720,maxWidth:1280*2,maxHeight:720*2}}}},"uploader-screenshot")]})]})})}const U=D.div`
3
- margin-top: 24px;
4
- .screenshot {
5
- margin-bottom: 16px;
6
- max-width: 400px;
7
- max-height: 225px;
8
- width: 400px;
9
- height: 225px;
10
- overflow: hidden;
11
- display: flex;
12
- align-items: center;
13
- justify-content: center;
14
- background-color: #eee;
15
- margin-right: 16px;
16
- position: relative;
17
- cursor: grab;
18
- &:active {
19
- cursor: grabbing;
20
- }
21
- .action {
22
- visibility: hidden;
23
- position: absolute;
24
- top: 0px;
25
- right: 0px;
26
- background-color: rgba(0, 0, 0, 0.2);
27
- color: rgba(255, 255, 255, 0.8);
28
- }
29
- &:hover .action {
30
- visibility: visible;
31
- }
32
- }
33
- .screenshot img {
34
- width: 100%;
35
- height: auto;
36
- }
37
- `;export{ae as default};
@@ -1,7 +0,0 @@
1
- import{aL as q,T as A,r as n,aN as O,aO as U,d1 as z,j as t,aP as F,aR as I,aS as Q,d2 as G,d3 as H,a4 as k,u as J,ao as K,d4 as V,d5 as X,a6 as j,n as Y,P as e,a3 as Z,c4 as oo}from"./index-C7otKf8F.js";import{D as so}from"./DialogContentText-COq3rw-i.js";import{A as eo}from"./Alert-DbN0O0aN.js";import{f as to}from"./format-error-CXOPpcrE.js";const ao=["className","id"],no=s=>{const{classes:o}=s;return Q({root:["root"]},G,o)},ro=q(A,{name:"MuiDialogTitle",slot:"Root",overridesResolver:(s,o)=>o.root})({padding:"16px 24px",flex:"0 0 auto"}),io=n.forwardRef(function(o,r){const i=O({props:o,name:"MuiDialogTitle"}),{className:d,id:l}=i,p=U(i,ao),c=i,m=no(c),{titleId:u=l}=n.useContext(z);return t.jsx(ro,F({component:"h2",className:I(m.root,d),ownerState:c,ref:r,variant:"h6",id:l??u},p))});function lo(){var s;const o=H();return(s=o==null?void 0:o.$$material)!=null?s:o}function co(){const s=lo();return{minWidth:k(s.breakpoints.down("md"))?300:s.breakpoints.values.sm}}function P({title:s,description:o,showCancel:r,showConfirm:i,cancel:d,confirm:l,color:p,params:c,onCancel:m,onConfirm:u,loading:g,displayError:S,children:v,...R}){const[f,$]=n.useState(c),[E,x]=n.useState(!0),[y,C]=n.useState(!1),[D,b]=n.useState(""),{t:_}=J(),M=K(),T=async a=>{if(typeof a=="function"){C(!0);try{if(await a(f)===!1)return;x(!1)}catch(h){b(to(h)),console.error(h)}finally{C(!1)}}else x(!1)},N=typeof s=="function"?s():s,W=typeof o=="function"?o(f,$,b):o,B=k(M.breakpoints.down("md")),L=a=>{a.stopPropagation()},{minWidth:w}=co();return t.jsxs(po,{onClick:L,fullScreen:B,open:E,style:{minWidth:w},...R,children:[t.jsx(io,{children:N}),t.jsxs(V,{style:{minWidth:w},children:[t.jsx(so,{component:"div",children:W}),!!D&&S&&t.jsx(eo,{severity:"error",style:{width:"100%",marginTop:8},children:D}),v]}),t.jsxs(X,{className:"delete-actions",style:{padding:"8px 24px 24px"},children:[r&&t.jsx(j,{onClick:a=>{a.stopPropagation(),T(m)},color:"inherit","data-cy":"cancel-confirm-dialog",children:d||_("common.cancel")}),i&&t.jsxs(j,{onClick:a=>{a.stopPropagation(),T(u)},color:p,disabled:f.__disableConfirm||y||g,variant:"contained","data-cy":"submit-confirm-dialog",autoFocus:!0,children:[(y||g)&&t.jsx(Y,{size:16,sx:{mr:1}}),l]})]})]})}P.propTypes={title:e.any.isRequired,description:e.any.isRequired,showCancel:e.bool,showConfirm:e.bool,cancel:e.string,color:e.string,confirm:e.string,params:e.object,onCancel:e.func,onConfirm:e.func.isRequired,loading:e.bool,displayError:e.bool,children:e.any};P.defaultProps={children:void 0,onCancel:()=>{},showCancel:!0,showConfirm:!0,cancel:"",confirm:"Confirm",color:"error",params:{},loading:!1,displayError:!0};const po=Z(oo)`
2
- .delete-actions .Mui-disabled {
3
- color: rgba(0, 0, 0, 0.26) !important;
4
- box-shadow: none;
5
- background-color: rgba(0, 0, 0, 0.12) !important;
6
- }
7
- `;export{P as C,io as D,lo as u};
@@ -1 +0,0 @@
1
- const e={auth:{noPermission:{title:"Keine Erlaubnis",description:"Du bist nicht der Administrator des Blocklets"}},login:{reLogin:"Verbinden",description:"Du musst deine DIDs Wallet verbinden, um auf {name} zuzugreifen",already:"Du bist verbunden als",connectWallet:"Verbinde das DID Wallet",closeWindow:"Fenster schließen",accessLimit:{title:"Seitenzugriff eingeschränkt",description:"Diese Seite erfordert die folgenden Pässe zum Zugriff, verbinden Sie sich bitte mit dem Portemonnaie, um den entsprechenden Pass zu ändern oder zu beantragen.",alreadyHavePassport:"Habe bereits den Reisepass",connectWithPassport:"Verbinde mit diesem Reisepass",buyPassport:"Kaufen Sie einen Reisepass"},switchDid:{title:"Wechseln Sie das DID Wallet",scan:"Scannen Sie den folgenden QR-Code, um den Account zu wechseln",confirm:"Bestätige den Wechsel in deiner DID-Wallet",success:"Erfolgreich umgeschaltet"},switchSpecifiedDid:{title:"Wechsle DID Wallet",scan:"Du musst die DID zu {did} wechseln, um die folgenden Aktionen abzuschließen.",confirm:"Bestätigen Sie den Wechsel in Ihrer DID-Brieftasche",success:"Erfolgreich gewechselt"},connect:{title:"Verbinde DID Wallet",scan:"Verbinden Sie Ihre DID-Brieftasche, um auf diese Anwendung zuzugreifen",confirm:"Bestätigen Sie in Ihrer DID-Geldbörse",success:"Sie sind erfolgreich verbunden"},needManualClose:"Anmeldung erfolgreich. Wenn sich dieses Fenster nicht automatisch schließt, bitte schließen.",connectWithPassport:"Verbinde dich mit diesem Reisepass",invalidRedirectUrl:"Ungültige Weiterleitungs-URL",issueKyc:{pageDescription:"Schließen Sie die Verifizierung ab, um Ihr Konto zu sichern und ein wiederverwendbares NFT zu erhalten, das von anderen Websites vertraut werden kann (einmal überprüfen und überall präsentieren).",verifyButton:"Überprüfen",sendCodeButton:"Holen Sie sich einen Bestätigungscode",codeSentMessage:"Wir haben gerade einen Bestätigungscode an {email} gesendet. Der Code ist 30 Minuten lang gültig. Bitte überprüfen Sie Ihr Postfach oder Spam-Ordner.",codeSentSuccess:"Bestätigungscode erfolgreich gesendet",claim:"Bestätigungs-E-Mail-Zertifikat abrufen",scan:"Verbinden Sie Ihre DID-Brieftasche, um das Zertifikat zu erhalten",confirm:"Bestätigen Sie auf Ihrem DID Wallet",success:"Herzlichen Glückwunsch! Sie haben Ihre E-Mail erfolgreich verifiziert und das Zertifikat in Ihrem DID Wallet beansprucht.",backToHome:"Zurück zum Start",emailPlaceholder:"Ihre E-Mail-Adresse",verifyTitle:"Bestätigen Sie Ihre E-Mail-Adresse",issueTitle:"Anspruch E-Mail-Verifizierung NFT",verifyAction:"Überprüfen",issueAction:"Beanspruchung",issueTarget:"Du bist {action} für die folgende DID, klicke auf den Avatar, um eine weitere DID hinzuzufügen"},updateKyc:{button:"Zertifikat präsentieren",title:"Präsentieren Sie das verifizierte E-Mail-Zertifikat",scan:"Verbinden Sie Ihre DID-Brieftasche, um das Zertifikat vorzulegen",confirm:"Bestätigen Sie auf Ihrem DID Wallet",success:"Herzlichen Glückwunsch! Ihr NFT wurde überprüft und akzeptiert."},invalidOpenerUrl:"Ungültige Opener-URL"},studio:{home:"Studio",preferences:"Präferenzaufbau",localization:"Lokalisierung",branding:"Markenbilder",ratio:"Verhältnis",size:"Größe",count:"Zählen",tip:"Tipp",change:"Klicken Sie auf das Logo, um es zu ändern.",order:"Bestellung",orderTip:"Ziehen zum Ändern",orderTipLong:"Ziehen zum Ändern, falls du einen Screenshot auf der Festplatte gelöscht hast, bitte aktualisiere die Seite.",type:"Typ"},blocklet:{startApplication:"Starte Anwendung",startDescription:"Bereit, {name} zu starten",start:"Start",starting:"Starten...",open:"Öffnen",suspended:"Anwendung ausgesetzt",manageSubscription:"Abonnement verwalten",suspendedCausedByExpired:"Diese Anwendung wurde aufgrund abgelaufener Bezahlung vorübergehend gestoppt. Bitte erneuern Sie vor {deadline}, um fortzufahren. Erfolgt in der angegebenen Frist keine Erneuerung, kann sie nicht mehr erneuert oder fortgesetzt werden.",suspendedCausedByTerminated:"Die Anwendung wurde aufgrund der am {canceledAt} gekündigten Subscription beendet und die Daten werden bis zum {deadline} vorgehalten. Bevor die Daten gelöscht werden, können Sie die Daten in DID Spaces sichern.",terminated:"Anwendung beendet",gotoVisitError:"Kann URL des Blocklets nicht aufrufen, bitte später erneut versuchen."},setup:{steps:{connect:"Verbinden",didSpace:"DID Spaces",config:"Konfiguration",domain:"Domain",access:"Zugangskontrolle",fuel:"Kraftstoff",complete:"Komplett",introduction:"Einführung",selectNodeDesc:"Wähle Blocklet Server aus",launchAppDesc:"Blocklet auf Server installieren",setupAppDesc:"Setup Blocklet",launched:"Vervollständigen"},connect:{title:"Verbinde mit Anwendung",scan:"Verbinden Sie Ihre DID Wallet, um das Benutzerprofil und die Eigentümerrechte des Blocklets bereitzustellen. Anschließend können Sie die App konfigurieren und starten.",confirm:"Bestätigen Sie in Ihrer DID-Brieftasche",success:"Sie sind erfolgreich verbunden"},domain:{addTitle:"Bestehende Domain binden (Optional)",title:"Domain Einstellung",subTitle:"Legen Sie eine benutzerdefinierte Domain für die Anwendung fest",label:"Bitte geben Sie einen gültigen Domainnamen an",tipStart:"Bitte stellen Sie sicher",tipEnd:"Hat Punkt zum aktuellen Server",cannotResolve:"{domain} kann nicht aufgelöst werden, bitte überprüfen Sie Ihre DNS-Konfiguration.",checkingResolvable:"Überprüfe den Domain-Status...",addingCert:"Zertifikat wird erstellt...",addingDomain:"Domain wird hinzugefügt...",recordType:"Datentyp",recordValue:"Aufzeichnungswert",skipStart:"Du kannst",skip:"Überspringe die benutzerdefinierte Domaineinstellung",skipEnd:"und verwenden Sie die Standarddomäne, um auf die Anwendung zuzugreifen",genCertSuccess:"Das {domain}-Zertifikat wurde erfolgreich ausgestellt",genCertFailed:"Fehler beim Ausstellen des Zertifikats für {domain}: {message}",genCertFailedForNFTDomain:"NFT-Domain erfolgreich hinzugefügt, aber das HTTPS-Zertifikat konnte nicht generiert werden. Bitte versuche es später erneut.",resolvedAddressError:"{domain} zeigt nicht auf die gleiche IP-Adresse wie {curDomain}",invalidDNSReminder:"{error}. Sie können jedoch weiterhin die Domain hinzufügen, aber eine automatische Zertifikatserstellung ist nicht verfügbar.",continueAdd:"Weiter hinzufügen",buyDIDDomainTitle:"Kaufe eine DID-Domain (Optional)",buyDIDDomainTips:"Nach dem Kauf einer DID-Domain wird diese automatisch an die Anwendung gebunden."},didSpace:{title:"Konfigurieren Sie DID Spaces",subTitle:"Bitte schließen Sie den folgenden Verbindungsvorgang ab, um Anwendungsdaten in DID Spaces zu speichern.",tips:"Tipps",description:"Konfigurieren Sie die DID Spaces Instanzadresse und speichern Sie die Anwendungsdaten in DID Spaces nach einer erfolgreichen Verbindung",label:"Bitte wählen Sie den DID Spaces-Dienst",connected:"Sie haben erfolgreich eine Verbindung mit DID Spaces hergestellt",connect:"Verbinden Sie jetzt",reconnect:"Verbinden",addressCannotEmpty:"Die Adresse darf nicht leer sein",addressNotValid:"{url} ist keine gültige Adresse.",authorize:{title:"Verbinde {appName} mit DID Spaces",scan:"Verwenden Sie Ihre DID-Geldbörse, um den QR-Code unten zu scannen und der App {appName} den Zugriff auf DID-Räume zu ermöglichen",success:"Erfolgreich verbunden"}},config:{title:"Konfiguration",subTitle:"Andere Konfigurationselemente (Sie müssen auch die folgenden Elemente festlegen)"},complete:{title:"Alles ist bereit",failedTitle:"Fehler beim Starten des Blocklets",backToServer:"Zurück zum Blocklet Server",notRunning:"Blocklet konnte beim ersten Versuch nicht gestartet werden, bitte erneut versuchen"},fuel:{title:"Kraftstoff zum Starten erforderlich",tipStart:"Schlitz",tipEnd:"Für diese Anwendung ist eine Guthaben erforderlich, damit die Anwendung ordnungsgemäß funktionieren kann. Die Gelder werden in der Anwendungsbrieftasche gespeichert und können für Transaktionsgebühren verwendet werden. Sie können Ihr Guthaben jederzeit abheben, wenn Sie die App nicht mehr verwenden.",addressTitle:"Anwendungskonto",addressTip:"Befüllen Sie die Anwendung mit einer DID Wallet",need:"Brauchen",current:"Aktuell",fuelApp:"Anwendung mit Treibstoff versorgen"},title:"Aufbau",next:"Nächster",previous:"Vorherige",continue:"Weiter",skip:"Überspringen",startNow:"Starte jetzt",confirm:"Bestätigen",cancel:"Abbrechen"},user:{walletNotification:"DID Wallet Benachrichtigung",emailNotification:"E-Mail-Benachrichtigung",smsNotification:"SMS-Benachrichtigung",addWebhook:"Neuen Webhook hinzufügen"},pageTitle:{login:"Anmelden",dashboard:"Blocklet-Dashboard",userCenter:"Benutzerzentrum",invite:"Einladen",issuePassport:"Reisepass ausstellen",lostPassport:"Verloren Reisepass"}};export{e as default};
@@ -1 +0,0 @@
1
- const e={setup:{connect:{title:"Unterschrift erforderlich",scan:"Verbinden Sie Ihre DID Wallet, um der Besitzer dieses Servers zu werden",confirm:"Überprüfen Sie diese Operation in Ihrer DID-Brieftasche",success:"Dein Konto ist mit diesem Server verbunden"},keyPair:{title:"Benötigtes abgeleitetes KeyPair",scan:"Verbinden Sie Ihre DID Wallet, um ein Schlüsselpaar für diese App zu generieren",confirm:"Bitte überprüfen Sie diese Operation in Ihrer DID-Brieftasche",success:"Ihr Schlüsselpaar wird sicher gespeichert"},verify:{title:"Eigentumsnachweis erforderlich",scan:"Verbinden Sie Ihre DID-Wallet, um Besitznachweise bereitzustellen",confirm:"Überprüfen Sie diese Operation in Ihrer DID-Brieftasche",success:"Dein Konto ist mit diesem Server verbunden."},accept:{title:"Serverzertifikate akzeptieren Besitznachweise",scan:"Verbinden Sie Ihre DID-Brieftasche, um Eigentumsnachweise bereitzustellen",confirm:"Überprüfe diese Operation in deiner DID-Geldbörse",success:"Dein Konto ist mit diesem Server verbunden"},title:"Richte Blocklet-Server ein",steps:{eula:"Endnutzer-Lizenzvereinbarung",eulaFooter:"Ich habe die Bedingungen der EULA gelesen und akzeptiere sie.",connect:"Verbinde Owner-DID-Wallet",verify:"Eigentumsrechte verifizieren",basicSettings:"Grundeinstellungen",launchApp:"Starte Anwendung",complete:"Vollständig"},congratulation:"Herzlichen Glückwunsch! Dein Blocklet Server ist sicher und bereit zur Verwendung",redirectButton:"Bring mich zum Dashboard!"},login:{loginTo:"Verbinden mit",description:"Nur Serverbesitzer und genehmigte Mitglieder können auf das Dashboard zugreifen",switchDid:{title:"Schalte DID Wallet um",scan:"Scannen Sie den folgenden QR-Code, um das Konto zu wechseln",confirm:"Bestätigen Sie den Wechsel in Ihrem DID-Wallet",success:"Erfolgreich umgeschaltet"},switchSpecifiedDid:{title:"Wechsle auf DID Wallet",scan:"Du musst DID auf {did} umschalten, um die folgenden Aktionen abzuschließen",confirm:"Bestätige den Wechsel in deiner DID-Brieftasche",success:"Erfolgreich gewechselt"},connect:{title:"Verbinden Sie das DID-Wallet",scan:"Verbinden Sie Ihre DID Wallet, um einen Pass zu hinterlegen",confirm:"Bestätige in deinem DID Wallet",success:"Du bist erfolgreich verbunden"}},acceptServer:{title:"Behauptung Server mit Ownership NFT",tooltip:"Wenn Sie ein Server-Besitzernft erhalten haben, können Sie Ihren Eigentümerpass mit diesem Link beanspruchen."},exchangePassport:{title:"Passeport gegen NFT austauschen",success:"Sie haben Ihren Reisepass erfolgreich ausgetauscht und sich mit dem Reisepass angemeldet",login:"Anmelden",tooltip:"Wenn du ein NFT aus der Sammlung {collections} besitzt, kannst du deinen Reisepass mit diesem Link austauschen.",dialog:{title:"Holen Sie sich den Pass mit NFT",scan:"Verbinden Sie Ihre DID-Wallet, um Ihr NFT vorzustellen und einen Reisepass zu erhalten",confirm:"Wähle NFT in deiner DID Wallet aus",success:"Der Reisepass wurde erfolgreich ausgetauscht"}},payablePassport:{title:"Pass mit Zahlung kaufen",tooltip:"Wenn Sie keinen Reisepass haben, können Sie über diesen Link einen Reisepass erwerben."},sidebar:{dashboard:"Dashboard",blocklets:"Blocklets",console:"Konsole",settings:"Einstellungen"},system:{total:"Gesamt",used:"Benutzt",free:"Frei",cores:"Anzahl der Kerne",instances:"Anzahl der Instanzen"},common:{invalid:"Ungültig",about:"Über",access:"Zugriff",accessKey:"Zugriffsschlüssel",action:"Aktion",actions:"Aktionen",add:"Hinzufügen",address:"Adresse",afterTime:"Nach {time}",allow:"Erlauben",alreadyExist:"Existiert bereits",approve:"Genehmigen",approved:"Genehmigt",appUrl:"APP-URL",auditLogs:"Prüfspur",author:"Autor",avatar:"Avatar",back:"Zurück",basic:"Grundlegend",basicInfo:"Grundinformation",profile:"Profil",bind:"Binden",blocklet:"Blocklet",blocklets:"Blocklets",blockletsStorage:"Blocklets-Speicher",cacheStorage:"Cache-Speicher",cancel:"Abbrechen",certificate:"Zertifikat",category:"Protokollthema",click:"Klicken zum Kopieren",close:"Schließen",collapseAll:"Alles zusammenklappen",community:"Community URL",complete:"Komplett",componentBasicInfo:"Komponentengrundinformation",components:"Blocklets",config:"Konfigurieren",configuration:"Konfiguration",configNavigation:"Navigation",configSuccess:"Konfiguration erfolgreich",confirm:"Bestätigen",connect:"Verbinden",console:"Konsole",continue:"Weitermachen",continueWith:"Weitermachen mit",copiedTip:"Kopiert",copyAndClose:"Kopieren & Schließen",copyTip:"Klicken zum Kopieren",coreStorage:"Kernspeicher",cpu:"CPU",create:"Erstellen",createSuccess:"Erstelle Zugriffsschlüssel",created:"Erstellt am",createdAt:"Erstellt am",createdBy:"Erstellt von",dAddress:"Dezentrale Identifikatoren (DID)",dataStorage:"Speicher auf lokaler Festplatte",delConfirm:"Löschen",delConfirmDescription:"Bestätigen Sie das Löschen von {data}?",delete:"Löschen",dependents:"Abhängige",description:"Beschreibung",detail:"Detail",did:"HAST",disk:"Festplatte",diskInfo:"Festplatteninformation",docker:"IST Docker",documentation:"Dokumentation",domain:"Domain",downgradeTo:"Herabstufung auf",download:"Downloaden",downloading:"Herunterladen",edit:"Bearbeiten",email:"E-Mail",phone:"Telefon",empty:"Leer",emptyData:"Keine Ergebnisse gefunden",enable:"Aktivieren",engine:"Motor",env:"Umgebung",environment:"Umgebung",expandAll:"Alle erweitern",expired:"Abgelaufen",expires:"Läuft ab",export:"Exportieren",externalIp:"Externe IP",failed:"Fehlgeschlagen",filter:"Protokollfilter",fingerprint:"Fingerabdruck",finish:"Fertig",forbid:"Verbieten",free:"Frei",general:"Allgemein",gitpod:"IST Gitpod",goEULA:"Klicken Sie hier, um die 'Endbenutzer-Lizenzvereinbarung' anzuzeigen",group:"Gruppe",image:"IST Bild",install:"Installieren",installed:"Installiert",installedAt:"Installiert bei",installSuccess:"Erfolgreich installiert",installing:"Installieren",internalIp:"Interne IP",introduction:"Einführung",invite:"Einladen",inviting:"Einladen",ip:"IP",isPublic:"Öffentlich",issue:"Problem",issuer:"Emittent",item:"Artikel",joined:"Beigetreten",key:"Schlüssel",lastPublishedAt:"Veröffentlicht am",launcher:"Starterinformationen",leavePageTip:"Bist du sicher, die Seite zu verlassen?",link:"Link",loading:"Laden",log:"Logs anzeigen",logStorage:"Protokollspeicherung",login:"Anmelden",logo:"Logo",logout:"Abmelden",logs:"Protokolle",manageTeam:"Team verwalten",marketplace:"Marktplatz",member:"Mitglied",members:"Mitglieder",memory:"Erinnerung",meta:"Meta Daten",analytics:"Analytik",runtime:"Laufzeit",traffic:"Verkehr",more:"Mehr",mountPoint:"Berggipfel",name:"Name",next:"Nächstes",no:"Nein",noData:"Keine Einträge vorhanden",notice:"Unerwartete schlechte Dinge werden passieren, wenn du das nicht liest!",noticeTitle:"Hinweis",notification:"Benachrichtigung",open:"Öffnen",management:"Management",os:"Betriebssystem",overview:"Übersicht",owner:"Besitzer",page404:"404 Seite",passport:"Pass",permission:"Genehmigung",port:"Hafen",pre:"Vorherige",preferences:"Präferenzen",preview:"Vorschau",protected:"Geschützt",protocol:"Protokoll",purchase:"Kauf",readMore:"Mehr",redirect:"Umleiten",redirectCode:"Weiterleitungscode",redirectPermanently:"Permanente Weiterleitung",redirectTemporary:"Temporäre Umleitung",redirectUrl:"Weiterleitungs-URL",rewrite:"Umformulieren",release:"Freigabe",rewriteUrl:"URL umschreiben",reject:"Ablehnen",reload:"Neu laden",remark:"Bemerkung",remove:"Entfernen",removeSuccess:"Erfolgreich entfernt",renew:"Erneuern",reportIssue:"Melde ein Problem",required:"Erforderlich",requiredErrorText:"{name} wird benötigt",resource:"Ressource",restart:"Neustart",restore:"Wiederherstellen",retry:"Wiederholen",revoke:"Widerrufen",role:"Rolle",running:"Laufen",runtimeInfo:"Laufzeitinformationen",save:"Speichern",saveChanges:"Änderungen speichern",saveSuccess:"Erfolgreich gespeichert",scheduleFailed:"Terminkalender fehlgeschlagen",scheduleSuccess:"Erfolgreich geplant",scope:"Bereich",screenshot:"Screenshots",search:"Suche",security:"Sicherheit",serverDid:"Server DID",serverVersion:"Serverversion",setting:"Einstellungen",start:"Start",status:"Status",stop:"Stopp",storage:"Speicher",backup:"Backup",store:"Geschäft",succeeded:"Erfolgreich",subscription:"Abonnement",support:"Support-URL oder E-Mail",switch:"Schalter",team:"Team",the:"Der",timeAgo:"{time} vor",title:"Titel",type:"Typ",unavailable:"Nicht verfügbar",update:"Aktualisieren",updateAvailable:"Neue Version {version} verfügbar",updatedAt:"Aktualisiert am",updatedBy:"Aktualisiert von",upgrade:"Upgrade",upgradeTo:"Upgrade auf",upgrading:"Upgrade",uptime:"Betriebszeit",url:"URL",valid:"Gültig",value:"Wert",version:"Version",visit:"Besuch",waiting:"Warten",webhook:"Integrationen",yes:"Ja",invalidParam:"Ungültige Parameter",launch:"Start",price:"Preis",redirecting:"Umleitung",error:"Fehler",reminder:"Erinnerung",normal:"Normal",gateway:"Gateway",verifyNFT:"Verifizieren Sie NFT",errorMessage:"Fehlermeldung",slugifyHint:"Der tatsächliche Einhängepunkt wird sein: {value}",strategy:"Strategie",auto:"Auto",manual:"Handbuch",progress:"In Bearbeitung",startTime:"Startzeit",endTime:"Endzeit",selected:"Ausgewählt",timeoutError:"Zeitüberschreitungsfehler",tags:"Tags",connectToStore:"Verbinden Sie mit dem Geschäft",uploaded:"Hochgeladen",upload:"Hochladen",blockletStudio:"Studio",visitStore:"Besuche den Laden",reconnect:"Verbinden wiederherstellen",change:"Ändern",disconnect:"Verbindung trennen",sourceApp:"Zur App gehörend",visitTarget:"Besuchen Sie {name}",upgradeServer:"Server aktualisieren",display:"Anzeige",requiredInputPlaceholder:"Bitte gib {name} ein",refresh:"Aktualisieren",moveUp:"Nach oben verschieben",moveDown:"Nach unten verschieben",enabled:"Aktiviert",disabled:"Deaktiviert",homepage:"Startseite",buy:"Kaufen",view:"Anzeigen"},blocklet:{external:"Extern",notFound:"Blocklet auf diesem Server nicht gefunden, vielleicht wurde es gelöscht",installFromMarket:"Installiere neue Blocklets",installFromUrl:"Installiere von URL",installFromCreate:"Erstellen Sie Blocklet",installFromDiskBackup:"Wiederherstellen von diesem Server",installedAt:"Installiert am",internal:"Intern",startedAt:"Gestartet um",stoppedAt:"Gestoppt bei",urlEmptyTip:"Kein Zugriffs-URL",goToAddRule:"Gehe zu Hinzufügen",services:"Öffentliche Dienste",upstreamPort:"Upstream-Anschluss",noService:"Keine Dienstleistungen",appId:"App DID",appPid:"Permanente DID",alsoKnownAs:"Auch bekannt als",skSource:"Besitzer Wallet",reloadSuccess:"Blocklet wurde erfolgreich neu geladen",statusTip:"Blocklet ist {status}",initialUptime:"Weniger als 1m",dashboard:"Blocklet-Dashboard",noComponent:"Die Anwendung hat keine Komponenten und kann nicht gestartet werden",fromUrl:{title:"Blocklet installieren",label:"Blocklet Meta URL",description:"Die URL sollte auf die Meta-Datei des Blocklets zeigen. Wenn Sie auf eine lokale Datei verweisen möchten, fügen Sie bitte das Präfix file:// hinzu, z.B. file:///Users/foo/blocklet.json.",confirm:"Installieren",step0:"Eingabe-URL",step1:"Bestätige Metadaten",existTipPrefix:"Blocklet mit der gleichen DID existiert bereits, die Version ist",existTipSuffix:"Bitte installieren Sie eine höhere Version."},action:{stopDescription:"Das Stoppen des Blocklets macht seine öffentlichen Schnittstellen unzugänglich, was zu Fehlern für Endbenutzer führen kann",stopComponentDescription:"Das Stoppen des Komponenten macht ihre öffentlichen Schnittstellen unzugänglich, was möglicherweise zu Fehlern für Endbenutzer führen kann.",confirmStop:"Ja, Hör auf",cancelDownloadDescription:"Download von {name} abbrechen?",removeApplicationDescription:"Das Entfernen der Anwendung löscht den von dieser Anwendung generierten Code und die Daten, die nicht wiederhergestellt werden können, wenn Sie keine Sicherungskopien haben",removeApplicationAfterBackup:"Sichern und entfernen Sie die Anwendung. Sie können die Anwendung von diesem Server wiederherstellen, wenn Sie sie benötigen.",removeApplicationComplete:"Entferne sowohl den Code als auch die Daten für diese Anwendung",removeComponentDescription:"Das Entfernen der Komponente löscht den vom Komponente generierten Code und Daten, die nicht wiederhergestellt werden können, wenn Sie keine Sicherungskopien haben.",removeComponentKeepData:"Behalte die Daten für dieses Bauteil, entferne nur den Code",removeComponentComplete:"Entferne sowohl den Code als auch die Daten für diese Komponente",confirmRemove:"Ja, entferne es",confirmComponentRemove:"Ja, Entferne es",upgradeDescription:"Das Upgrade des Blocklets wird es vorübergehend nicht verfügbar machen. Sind Sie sicher, dass Sie fortfahren möchten?",confirmUpgrade:"Ja, aktualisieren Sie es",confirmRestart:"Ja, starte es neu",restartDescription:"Das Blocklet wird vorübergehend angehalten und könnte aufgrund einer Konfigurationsänderung möglicherweise nicht neu gestartet werden."},dev:{modeTip:"Bitte schalten Sie den Blocklet Server in den DEBUG-Modus um"},index:{tableTitle:"Verwalten Sie Ihre Blocklets",noBlocklet:"Keine Blocklets in diesem Blocklet Server gefunden, installieren Sie ein Blocklet aus dem Marktplatz, um zu beginnen."},admin:{iframeTitle:"Blocklet Admin Schnittstelle",title:"Admin-Oberfläche",noContent:"Dieses Blocklet hat keine Administrator-Schnittstelle",securityError:"Sicherheitsfehler: Kann die Admin-URL nicht öffnen, da auf einen Cross-Origin-Frame zugegriffen wird"},config:{name:"App-Name",description:"App-Beschreibung",sk:"Geheimer Schlüssel für die App-Brieftasche",logoSquare:"App-Logo",logoRect:"Rechteckiges Logo",logoRectDesc:"Normalerweise oben auf der Seite angezeigt, Standard-App-Logo",logoFavicon:"Favicon",logoFaviconDesc:"Normalerweise in der Adressleiste des Browsers oder auf der Registerkarte angezeigt, standardmäßig das App-Logo",clusterSize:"Instanzanzahl beim Ausführen dieses Blockets im Cluster-Modus",copyrightOwner:"Urheberrecht Eigentümer (im Fußbereich anzeigen)",copyrightYear:"Urheberrecht {year} (Im Footer anzeigen)",deletable:{name:"Lösche Schutz",enable:"Dieses Blocklet kann derzeit NICHT gelöscht werden",disable:"Dieses Blocklet kann derzeit gelöscht werden."},walletType:{name:"Brieftasche-Typ",description:"Blocklet Instanz Wallet Typ, wird die abgeleitete DID ändern"},languages:"Unterstützte Sprachen",selectLanguagesTip:"Passe die Reihenfolge an, indem du entfernst und erneut hinzufügst",languagesSearch:"Suche nach dem lokalen Namen, englischen Namen oder ISO-Code des Landes...",passportColor:"Passfarbe",appUrl:"App-URL",access:{title:"Wer kann darauf zugreifen",description:"Wer kann das Blocklet anzeigen?",useDefault:"Verwenden Sie die Standardeinstellungen",defaultDescription:"Verwenden Sie die Standardkonfiguration der Anwendung",whoCanAccess:{all:{title:"Für alle zugänglich",description:"Offen für die Welt, jeder kann ohne Reisepass darauf zugreifen"},owner:{title:"Nur ich habe Zugriff",description:"Sie müssen den Besitzerpass vorlegen, um auf diese Anwendung zugreifen zu können"},invited:{title:"Nur eingeladene Personen haben Zugriff",description:"Sie können Mitglieder später auf der Administrationsseite einladen"}},publicToStore:"Öffentlich im Geschäft",publicInstanceTip:"Die Zugriffsadresse dieses Blocklets wird im Store angezeigt (zusammen mit Ihrer DID zur Entgegennahme von Spenden)",updatedTip:"Zugriffskontrolle geändert"},changedTip:"Konfiguration aktualisiert, bitte Blocklet neu starten",missingRequired:"Fehlende erforderliche Konfiguration, um das Blocklet zu starten",gotoFix:"Gehe zur Reparatur",environment:{key:"Konfigurationsschlüssel",value:"Konfigurationswert",keyValueRequired:"Konfigurationsschlüssel und Wert müssen angegeben werden",invalidKey:"Die Konfigurationsschlüssel dürfen nicht mit BLOCKLET_ oder COMPONENT_ beginnen.",deleteForbidden:"Diese Konfiguration ist erforderlich und sollte nicht gelöscht werden",tip:"Konfigurationen, die mit BWA_ beginnen, sollten keine sensiblen Informationen enthalten, da sie an den Browser gesendet werden."},dangerZone:"Gefahrenzone",blockletTypeChangeTip:"Der Brieftaschentyp wird zu <b>{value}</b> geändert",appDidChangeTip:"Diese Operation ändert die DID der Anwendung und führt zu den folgenden Problemen. Bitte bestätigen Sie dies nach sorgfältiger Bewertung:",appDidChangeTipL1:"Das Benutzerkonto, das mit dieser Anwendung verbunden ist, wird sich ändern",appDidChangeTipL2:"Der DID-Domainname der Anwendung wird sich ändern und der ursprüngliche Domainname wird ungültig werden",appSkChangeTip:"Du änderst den geheimen Anwendungsschlüssel",walletTypeTitle:"Aktualisiere Wallet-Typ",appSkTitle:"Aktualisiere Anwendungsgeheimnis",sharedToAllComponents:"Wird an alle Komponenten geteilt werden",session:{ttl:"Der Benutzer wird aufgefordert, sich erneut anzumelden, wenn er {day} Tage lang keine Aktivität auf dieser Website hat.",day:"{day} Tag",days:"{day} Tage",period:"Sitzung Gültigkeitsdauer",profile:"Benutzerprofilanforderungen",cacheTtl:"Cache-Dauer für Benutzersitzungsdaten (in Sekunden)",fullNameEnabled:"Benutzernamen bei der Anmeldung anfordern (standardmäßig aktiviert)",avatarEnabled:"Benutzerfoto beim Anmelden anfordern (standardmäßig aktiviert)",emailEnabled:"Benutzer-E-Mail bei Anmeldung anfordern",emailRequireVerified:"Benutzer-E-Mail muss vor dem Login verifiziert werden",emailRequireUnique:"Benötigen Sie die E-Mail des Benutzers, um eindeutig über alle Benutzer hinweg zu sein",phoneEnabled:"Benutzer-Telefonnummer bei der Anmeldung anfordern (noch nicht unterstützt)",phoneRequireVerified:"Benutzerhandynummer muss vor der Anmeldung überprüft werden",phoneRequireUnique:"Benötigen Sie eine eindeutige Telefonnummer für Benutzer in der gesamten Benutzerbasis",emailTrustOauthProviders:"Vertraue OAuth-Anbietern für den E-Mail-Verifizierungsstatus",enableDomainBlackList:"E-Mail-Domäne Blacklist aktivieren (abgelehnte E-Mail-Domains)",enableDomainWhiteList:"Aktiviere E-Mail-Domänen-Whitelist (nur aufgeführte E-Mail-Domänen zur Anmeldung zulassen)",addDomain:"Füge eine Quelle hinzu, um die Liste abzurufen (im Klartextformat, eine Domain pro Zeile)"},clearCache:{name:"Cache-Verwaltung",purpose:"Verwalten Sie Dateien, die im Router und Blocklet-Dienst zwischengespeichert sind",title:"Cache löschen bestätigen?",action:"Cache löschen",success:"Erfolgreich {count} Cache-Einträge gelöscht",description:"Bist du sicher, dass du zwischengespeicherte Dateien im Router und Blocklet-Service löschen möchtest? Diese Operation kann in naher Zukunft zu einer leichten Leistungseinbuße führen."},tenantMode:{name:"Mehrere Mandantenmodus",multiple:"Dieses Blocklet läuft im Mehrmandantenmodus, Daten sollten für jeden Mandanten isoliert sein",single:"Dieser Blocklet läuft im Einzelmandantenmodus, alle Daten werden geteilt."},splashPortrait:"Startbild Porträt",splashLandscape:"Willkommen Iandschaft",splashPortraitDesc:"Wird angezeigt, wenn das Blocklet im Hochformat gestartet wird",splashLandscapeDesc:"Wird angezeigt, wenn das Blocklet im Querformat gestartet wird"},overview:{source:"Quelle",deployedFrom:"Bereitgestellt von",accessControl:"Zugangskontrolle",viewInStore:"Im Geschäft anzeigen"},diskInfo:{empty:"Daten über die Festplatte sind derzeit nicht verfügbar!",appDir:"App-Verzeichnis",dataDir:"Datenverzeichnis",logDir:"Log-Verzeichnis",cacheDir:"Cache-Verzeichnis"},runtimeInfo:{noRunning:"Laufzeitinformationen sind verfügbar, wenn das Blocklet ausgeführt wird!",memoryUsage:"Speichernutzung",cpuUsage:"CPU-Auslastung",uptime:"Betriebszeit",port:"Hafen",processId:"Prozess-ID"},dist:{downloadLink:"Download-Link",verify:"Überprüfen"},status:{added:"Hinzugefügt",waiting:"Warten",downloading:"Herunterladen",extracting:"Extrahieren",installing:"Installieren",upgrading:"Aktualisieren",installed:"Installiert",created:"Erstellt",starting:"Beginnend",running:"Laufen",stopping:"Anhalten",stopped:"Gestoppt",error:"Fehler",deleting:"Löschen",corrupted:"Korrupt",purchasing:"Warten auf den Kauf",purchased:"Gekauft",verifying:"Kauf überprüfen",resource:"Ressource"},list:{download:"Herunterladen",star:"Stern"},component:{container:"Globale Konfiguration",showContainer:"Zeige globale Konfiguration",didSpaceConfig:"Konfiguriere DID Spaces",didSpaceConfigTip:"Schließen Sie den folgenden Autorisierungsprozess ab, um Anwendungsdaten in DID Spaces zu speichern",didSpaceConnected:"Speicherung berechtigt für: {endpoint}",checkUpdateTitle:"Nach Updates suchen",updateTitle:"Komponenten aktualisieren",noUpdate:"Keine Komponenten zum Aktualisieren",add:"Komponente hinzufügen",selectComponent:"Wähle einen Blocklet aus",selectRegistry:"Wähle Blocklet Store",selectRegistryTip:"Sie können den Blocklet Store umschalten, um mehr Komponenten zu sehen",selectInstance:"Wählen Sie die Instanz",selectInstanceTip:"Sie können eine vorhandene Instanz auswählen oder eine neue Instanz erstellen. Vorhandene Instanzen verwenden zuvor gespeicherte Konfigurationen und Daten.",newInstance:"Erstelle eine neue Instanz",noComponent:"Keine Komponenten",mountPoint:"Was ist der Einhängepunkt?",mountPointTip:"Wenn Sie den Einhängepunkt auf '/my-prefix' setzen, werden alle Anfragen, die mit diesem Einhängepunkt beginnen, an das ausgewählte Bauteil weitergeleitet.",delete:"Lösche Komponente",deleteDescription:"Dieses Bauteil wird nach dem Löschen nicht zugänglich sein. Löschen bestätigen?",purchase:"Zahlung erforderlich",tip:{stopBlocklet:"Bitte halten Sie zuerst das Blocklet an.",requiredBy:"Die Komponente wird von {name} benötigt"},choose:"Wählen",addWithName:"Füge Blocklet zu {name} hinzu",installingCanCloseWindowTip:"Installation der Komponente im Hintergrund, Sie können dieses Fenster sicher schließen",installSuccessTip:"Herzlichen Glückwunsch, das Bauteil wurde erfolgreich installiert!",missDownloadTokenTip:"Bezahlte Komponente kann ohne gültiges Download-Token nicht hinzugefügt werden",purchaseComponentSecondCheckTip:"Bitte präsentieren Sie Ihren Blocklet-Kauf-NFT, um fortzufahren",installComponentError:"Es ist ein Fehler beim Installieren des Komponenten aufgetreten, bitte versuche es erneut",downloadComponentError:"Beim Herunterladen des Komponenten ist ein Fehler aufgetreten, bitte versuchen Sie es erneut",addComponentTip:{introduction:"Willkommen im Add Component Assistenten",isPurchase:"Du musst das NFT überprüfen, bevor du <b>{name}</b> als Komponente verwendest",belowInformation:"Unten befinden sich die Informationen für die Komponente:",verifyNFT:"Bitte wählen Sie die NFT-Überprüfungsmethode",config:"Bitte füllen Sie die Konfiguration des Komponenten aus",environment:"Bitte füllen Sie die Umgebung der Komponente aus",fromUrl:"Blocklet von URL hinzufügen"},addNext:"Füge {name} hinzu",upgradeNext:"Upgrade {name}",setting:"Einstellungen",noDependencies:"{name} hat keine Abhängigkeiten",relatedComponents:"Verwandte Blocklets",required:"Erforderlich",installed:"Installiert",installingTip:"Komponente wird installiert, bitte warten...",upgrade:"Upgrade"},router:{urlPath:"URL Pfad",noRunning:"Der Blocklet ist derzeit nicht gestartet. Nicht in der Lage, über die folgende Adresse zuzugreifen!",securitySetting:"Sicherheitseinstellung",checkUrlAccessible:"Überprüfen Sie die Zugänglichkeit der Adresse",urlInaccessible:"Es kann aufgrund von Netzwerkproblemen sein, dass die Adresse vorübergehend nicht erreichbar ist.",noAccessibleUrl:"Keine zugängliche URL",domainLockTooltip:"Die vom System generierte Domain kann nicht bearbeitet werden.",urlLockTooltip:"Der vom System generierte URL-Pfad kann nicht bearbeitet werden.",showAllDomains:"Alle Domains anzeigen",showAllDIDs:"Zeige alle DIDs",currentDomainTip:"Sie greifen über diese Domain auf die aktuelle Seite zu"},export:{title:"Exportiere Blocklet",name:"Bundle-Name",nameTip:'z.B. "mein-blocklet-name" oder "@mein-scope/blocklet-name"',result:"Was kommt als Nächstes",exportSource:"Exportquelle",success:"Blocklet erfolgreich exportiert",resultTipStart:"Mit",resultTipEnd:"Du kannst diese Blocklet in wenigen Minuten erstellen und veröffentlichen",uploadedComponentTip:"Direkt hochgeladene Komponenten können nicht exportiert werden:"},migrate:{title:"Anwendung migrieren",scan:"Verbinden Sie Ihre DID Wallet, um ein Schlüsselpaar für diese Anwendung zu generieren",confirm:"Bitte überprüfen Sie diese Operation in Ihrer DID Wallet",success:"Ihre Anwendung wurde erfolgreich migriert. Die Seite wird in {sec} Sekunden aktualisiert.",intro:{l1:"Klicken Sie hier",l2:"Bitte migrieren Sie Ihre Anwendung auf die neue Version (Änderungen sind während der Migration deaktiviert)",l3:"Die Anwendung DDI wird vollständig von Ihrer DDI-Brieftasche aus gesteuert.",l4:"Die Anwendungsdaten werden migriert und es sind keine weiteren Änderungen erforderlich.",l5:"Die neue Anwendungsstruktur gibt Ihnen mehr Flexibilität beim Ändern von Komponenten.",l6:"4. Bitte ändern Sie keine Komponenten-Bindungspunkte, bevor eine neue Version der Komponente veröffentlicht wird."},tip:{duplicate:"Finde doppelte Komponente {name}, bitte lösche unnötige Komponenten und migriere erneut",running:"Bitte hör auf, Blocklet vor der Migration zu blockieren"}},error:{isRunning:"Blocklet läuft, bitte stoppen Sie es zuerst",isInProgress:"Blocklet wird gerade bearbeitet, bitte warten Sie, bis es abgeschlossen ist"},publish:{createResource:"Erstellen Sie Ressource",addResource:"Veröffentlichung hinzufügen",productTitle:"Produkt",versionTitle:"Versionierung",imgTitle:"Bilder",resourceTitle:"Ressourcen",blockletEmptyTip:"Es gibt hier keine Blocklets",createBlockletTip:"Sie können über vorhandene Ressourcen, Komponenten und Konfigurationen in dieser Anwendung einen neuen Blocklet erstellen",createBlocklet:"Neuer Blocklet",componentNotRunning:"Blocklet {name} läuft nicht, bitte starte es zuerst",releaseEmptyTip:"Es gibt hier keine Veröffentlichungen",createReleaseTip:"Du kannst eine Veröffentlichung des Blocklets erstellen, zusammen mit Versionshinweisen und Ressourcen, die andere Personen nutzen können.",createRelease:"Erstellen Sie Freigabe",deleteReleaseTip:"Die Veröffentlichung kann nach Löschung nicht wiederhergestellt werden",createBlockletDid:"Erstelle aus dem DID Wallet",createReleaseSuccess:"Freigabe erfolgreich erstellt",saveDraftSuccess:"Entwurf erfolgreich gespeichert",connect:{title:"Erstelle Blocklet DID",scan:"Scannen Sie den QR-Code unten, um eine Blocklet-DID zu generieren",confirm:"Bestätigen Sie die Verwendung von DID Wallet",success:"Blocklet DID wurde generiert, setzen Sie bitte Ihren Vorgang fort"},saveDraft:"Entwurf speichern",releaseNote:"Versionshinweis",errorTip:{noDid:"Blocklet DID wird benötigt",noTitle:"Blockleit-Titel ist erforderlich",noVersion:"Die Blocklet-Version ist erforderlich",noDescription:"Blocklet-Beschreibung ist erforderlich",noNote:"Versionshinweis wird benötigt",inValidVersion:"Ungültige Blocklet-Version",noResource:"Bitte wählen Sie die hochzuladenden Ressourcen aus, die im Blocklet enthalten sein sollen",noFirstDid:"Bitte erstellen Sie zuerst eine Blocklet-DID",invalidUrl:"Bitte geben Sie eine gültige URL ein",invalidUrlOrEmail:"Bitte geben Sie eine gültige URL oder E-Mail ein"},packTip:"Derzeit können Blocklets direkt als Anwendungen installiert werden. Komponenten und Anwendungskonfigurationen werden automatisch in das Blocklet aufgenommen.",resourceChangedWarning:"Sie haben die Ressource geändert, bitte rechtzeitig speichern",installResourceTip:"Installations-URL:",installResourceTip2:"Wenn du mehr Tipps sehen möchtest, besuche bitte",installResourceHelp:"Hilfe-Dokument",componentIncluded:"Eingeschlossen",componentForceRequired:"Erforderlich",download:"Download {name}",delete:"Lösche {name}",copyInstallUrl:"Kopiere Installations-URL",install:"Installiere {name}",publishToStoreSuccess:"Blocklet erfolgreich im Store veröffentlicht",connectStoreSuccess:"Blocklet Store erfolgreich verbunden",uploadToStoreSuccess:"Blocklet erfolgreich im Store hochgeladen, du musst es im Store veröffentlichen",viewLastRelease:"Letzte Version anzeigen",reconnectStoreTip:"Nach dem erneuten Verbinden wird ein neuer Entwickler zugewiesen. Bist du sicher, dass du dich erneut verbinden möchtest?",deleteProject:{title:"Lösche {name}",scan:"Scanne den QR-Code unten, um {name} zu löschen",confirm:"Bitte bestätigen Sie die Verwendung der DID-Brieftasche",success:"Das Blocklet-Projekt wurde gelöscht, bitte fahren Sie mit Ihrer Operation fort.",tip1:"Das Blocklet-Projekt kann nach der Löschung nicht wiederhergestellt werden",tip2:"Sie können keine neuen Versionen mehr für den gelöschten Blocklet veröffentlichen, was bedeutet, dass das Blocklet nicht mehr im Store aktualisiert wird.",tip3:"Das Löschen des Blocklets hat keine Auswirkungen auf seine derzeit veröffentlichte Version im Store.",description:"Nach dem Löschen der Blocklet werden Sie auf die folgenden Probleme stoßen. Sind Sie sicher, dass Sie es löschen möchten?"},resourceTip:"Zurzeit kann es als Ressourcen-Blocklet nicht direkt aus dem Store installiert werden.",whyCantSeeInStore:"Warum kann ich dieses Blocklet nicht im Store sehen?",whyCantSeeResourceBlockletInStore:"Ressourcen-Blocklets sind standardmäßig auf der Store-Listenseite ausgeblendet",tenantScope:"Mieter",blockletStudio:"Blocklet Studio",allComponentsNotRunning:"Blocklets läuft nicht, bitte starten Sie es zuerst",resourceEmptyTip:"Keine verfügbaren Ressourcen",steps:{resources:"Bitte wählen Sie die Ressourcen aus, die mit dem aktuellen Blocklet verbunden werden sollen, da diese Ressourcen zusammen mit dem Blocklet installiert werden sollen.",blocklets:"Wählen Sie die zu verknüpfenden Blocklets aus.",version:"Setzen Sie die Versionsnummer und das Änderungsprotokoll.",introduction:"Eine klare Einführung kann Ihren Blocklet effektiv hervorheben. Sie können Markdown-Syntax verwenden, um es zu schreiben und eine Vorschau anzuzeigen.",branding:"Beschreiben Sie die grundlegenden Informationen Ihres Blocklets. Diese Informationen werden den Benutzern im Store angezeigt."},branding:"Branding",brandingHelp:"Weitere Informationen über den Blocklet werden im Store angezeigt",resourceSelect:"Wählen Sie eine Ressource aus Blocklets",resourceUpload:"Ressource von Ihrer Festplatte hochladen (index.html ist im Archiv erforderlich)",deleteStoreTip:"Möchten Sie {name} wirklich aus der Verbindungsliste des Stores entfernen?",disconnectStoreTip:"Das Blocklet wird nach dem Trennen aus dem Store entfernt. Möchten Sie wirklich trennen?",connectOrUpload:"Verbinden oder Hochladen",developerInfo:"Entwicklerinformation",autoUploadTip:"Blocklet nach Erstellung automatisch im Store hochladen",possibleSameStoreTip:"Versuchen Sie, Abhängigkeits-Blocklets vor dem Hochladen, wenn möglich, im selben Blocklet-Store aufzulösen",needProjectId:"Bitte erstellen Sie zuerst ein Projekt",projectSettings:"Projekteinstellungen",noStoreSelected:"Bitte wählen Sie eine der vorhandenen Geschäfte aus oder fügen Sie ein neues Geschäft hinzu, um fortzufahren",installToThisServer:"Auf diesem Server installieren",forceResourceBlocklet:"Force als Blocklet auf Ressourcenbasis definiert"},titleValidationError:"Die Länge des Titels muss mindestens 3 Zeichen betragen",descriptionValidationError:"Beschreibungslänge muss zwischen 3 und 80 Zeichen liegen",whyNeedAppPid:"Wenn Ihre Anwendung migriert wurde, ist die permanente DID die DID, die bei der ursprünglichen Installation dieses Blocklets generiert wurde.",usingDocker:"Dieses Blocklet wird mit Docker ausgeführt.",gotoVisitError:"Blocklet-URL kann nicht erreicht werden, bitte versuchen Sie es später erneut",usingIsolation:"Dieses Blocklet wird unter Netzwerkisolation ausgeführt"},dashboard:{nodeDid:"Knoten",ownerDid:"Eigentümer",routingEngine:"Routing-Engine",ownerNftURL:"Besitzer NFT",expirationLeft:"Verbleibende Ablaufzeit",startFromCrashTip:"Blocklet Server ist beim letzten Mal nicht ordnungsgemäß beendet worden. Bitte starten Sie manuell die Blocklets, die ausgeführt werden sollen.",runtimeConfig:{blockletMaxMemoryLimit:"Blocklet Max Speichergrenze",daemonMaxMemoryLimit:"Server Max Speicherbegrenzung",proxyMaxMemoryLimit:"Event Bus Max Arbeitsspeicherbegrenzung"}},store:{nameSort:"Name",popularSort:"Beliebtheit",headerDescription:"Finde und installiere deine Blocklets",detail:{purchase:"Kaufe {name}",open:"Öffne {name}",install:"Installiere {name}",upgrade:"Upgrade {name}",empty:"Keine Einleitung"},blockletRegistry:{changeFailed:"Blocklet Speicheränderung fehlgeschlagen:",addFailed:"Blocklet Store konnte nicht hinzugefügt werden",editFailed:"Bearbeitung des Blocklet Store fehlgeschlagen",switchRegistry:"Schalte Blocklet Store um",addRegistry:"Füge Blocklet Store hinzu",editRegistry:"Blocklet Store bearbeiten",deleteRegistry:"Blocklet-Store löschen",haveSameRegistry:"Der gleiche Blocklet Store existiert",registryName:"Blocklet Store Name",registryUrl:"Blocklet Store URL",registryNameEmpty:"Blocklet Store-Name darf nicht leer sein",registryUrlEmpty:"Die Blocklet-Store-URL darf nicht leer sein",deleteDesc:"Blocklet-Store {name} löschen bestätigen?",confirmDesc:"Bitte geben Sie {name} zum Löschen ein"},purchase:{title:"Kaufe {name}",confirmed:"Dein Blocklet-Kauf-NFT ist verifiziert",declined:"Sie haben keinen gültigen Blocklet-Kauf NFT angegeben",waiting:"Warten auf abgeschlossenen Kauf...",purchase:{title:"Kaufe NFT",description:"Bevor Sie diese Blocklet installieren, zahlen Sie bitte einen Token, wenn Sie dieses Blocklet nicht gekauft haben."},verify:{title:"Überprüfe NFT",description:"Ihr NFT wird vor der Installation dieses Blocklet überprüft, wenn Sie das Kauf-NFT gekauft und in Ihrer DID Wallet halten.",auth:{title:"Kaufnachweis erforderlich",scan:"Verbinden Sie die DID Wallet, um Blocklet-Käufe von NFTs anzubieten",confirm:"Überprüfe diese Operation in deiner DID-Brieftasche",success:"Ihr Kauf-NFT wurde verifiziert und die Installation wurde gestartet."}},auth:{title:"Kaufe {name}",scan:"Scannen Sie den folgenden QR-Code mit Ihrer DID Wallet",confirm:"Bestätige in deinem DID Wallet",success:"Kauf des NFTs wurde an Ihre DID Wallet gesendet"},launch:"Starte {name}",autoLaunch:"{name} erfolgreich gekauft, Weiterleitung zur Startseite..."},tooltip:{upgradeServer:"Blocklet benötigt Blocklet Server Version {version}, aktuelle Blocklet Server Version ist {serverVersion}"}},setting:{saveSuccess:"Einstellungen erfolgreich gespeichert",unSavedTip:'Es gibt nicht gespeicherte Änderungen. Klicken Sie bitte auf "Änderungen speichern", um sie zu speichern.',unSavedLeaveTip:"Es gibt ungespeicherte Änderungen, sind Sie sicher, die Seite zu verlassen?",form:{name:"Name deines Servers",nameRequired:"Serverbeschreibung ist erforderlich",namePlaceholder:"Servername",description:"Beschreiben Sie Ihren Server",descriptionHolder:"Serverbeschreibung",descriptionRequired:"Serverbeschreibung erforderlich",domain:"Deine Server Domain Name",domainPlaceholder:"Server-Domänenname",domainRequired:"Der Server-Domain-Name ist erforderlich",ipPlaceholder:"IP",ipRequired:"IP ist erforderlich",registry:"Blocklet Store",registryPlaceholder:"Blocklet Store, um Blocklets abzurufen",registryRequired:"Der Blocklet Store ist erforderlich",registerUrl:"Blocklet Launcher-URL",registerUrlPlaceholder:"Geben Sie die URL Ihres bevorzugten Blocklet Launchers ein. Sie können den offiziellen sicher verwenden.",webWalletUrl:"DID Wallet URL",webWalletUrlPlaceholder:'Bitte geben Sie die URL Ihres gehosteten "DID Wallets" ein. Sie können das offizielle sicher nutzen',nftDomainUrl:"NFT-Domänen-URL",nftDomainUrlPlaceholder:"Bitte geben Sie die URL Ihrer gehosteten 'NFT-Domain' ein. Sie können die offizielle sicher verwenden",enableWelcomePage:"Aktiviere Willkommensseite",welcome:{switchLabel:"Willkommen Seite"},upgrade:{title:"Upgrade Blocklet Server auf {version}",description:"Während des Upgrades wird Ihr Blocklet Server für einige Minuten in den Wartungsmodus wechseln, während das Update abgeschlossen wird.",dialog:"Klicken Sie auf 'Bestätigen', um das Update zu installieren. Der Blocklet Server wird in den Wartungsmodus wechseln, bis das Update abgeschlossen ist, und kehrt automatisch in den Produktionsmodus zurück.",confirm:"Upgrade",switchLabel:"Automatischer Update-Check",enableBetaRelease:"Aktiviere Beta-Version",setup:"Vorbereitung des Upgrades",installing:"Installation von Blocklet Server v{version}",restarting:"Blocklet Server wird neu gestartet",cleanup:"Migration der Blocklet Server-Daten",verifying:"Überprüfe Blocklet Server v{version}",rollback:"Rollback Blocklet Server",complete:"Upgrade abgeschlossen!",progress:"Upgrading {name}",check:"Such nach Aktualisierungen",latest:"Sie nutzen die neueste Version."},restart:{title:"Blocklet-Server neu starten",description:"Während des Neustarts wird Ihr Blocklet Server in den Wartungsmodus versetzt, bis der Neustart abgeschlossen ist.",dialog:'Klicken Sie auf "Bestätigen", um neu zu starten. Der Blocklet-Server befindet sich im Wartungsmodus, bis der Neustart abgeschlossen ist, und kehrt automatisch in den Produktionsmodus zurück.',confirm:"Neustart",setup:"Vorbereitung des Neustarts",verifying:"Blocklet Server verifizieren",restarting:"Neustart des Blocklet-Servers",cleanup:"Stelle sicher, dass alles in Ordnung ist",rollback:"Reinige den schmutzigen Zustand",complete:"Instandhaltung komplett!",progress:"Neustart {name}"},register:{titleAdded:"Hinzugefügt zu Blocklet Launcher",title:"Zu Blocklet Launcher hinzufügen",description:"Sobald hinzugefügt, können Sie Blocklets zu diesem Blocklet-Server von {url} aus starten.",descriptionOnAdded:"Du kannst Blocklets auf diesem Blocklet-Server von {url} aus starten.",btn:"Hinzufügen",update:"Aktualisieren",added:"Hinzugefügt",addSucceed:"Hinzufügen erfolgreich",updateSucceed:"Update erfolgreich",detecting:"Erkennen",timeout:"Zeitüberschreitung der Erkennung, bitte überprüfen Sie, ob der Blocklet Launcher gestartet ist"},monitor:{diskThreshold:"Sende eine Warnung, wenn die Festplattenauslastung (%) überschritten wird",diskThresholdPlaceholder:"Bitte legen Sie die Schwelle für die Festplattenauslastungs-Warnung fest"},security:{switchLabel:"Dateisystemisolierung",switchTips:"Nach Deaktivierung dieser Option befindet sich das Dateisystem des Blocklets nicht mehr in Isolation, was ein Risiko darstellen kann, dass bösartige Software das Dateisystem beschädigt.",warningTips:"Die Funktion zur Isolation des Dateisystems kann nicht angewendet werden. Bitte aktualisieren Sie die Node.js-Version (aktuelle Version ist {version}) auf v21.6.0 oder höher."},docker:{switchLabel:"Blocklets in Containern ausführen",switchTips:"Nachdem Sie diese Option aktiviert haben, werden die Blocklets unter Verwendung von Containern ausgeführt, was die Gesamtsicherheit des Servers verbessern kann.",notInstalled:"Containerausführung kann nicht aktiviert werden, da Docker nicht installiert ist oder über die erforderlichen Berechtigungen zur Ausführung verfügt",needCloseFileSystemIsolation:"Dateisystemisolierung und Docker-Container-Modus-Laufzeit können nicht gleichzeitig aktiviert werden"},dockerNetwork:{switchLabel:"Container-Netzwerkisolation",switchTips:"Nach Aktivierung dieser Option laufen Blocklets auf sicherere Weise: Ein Blocklet kann nicht auf den Blockletserver oder andere Blocklets in anderen Apps zugreifen.",needEnableDocker:"Container-Modus muss aktiviert sein, um Netzwerkisolierung zu aktivieren"},restartAllContainers:{title:"Alle Container neu starten",description:"Alle Container neu starten und Blocklets weiterlaufen lassen.",dialog:'Klicken Sie auf "Bestätigen", um alle Container-Blocklets neu zu starten und den Status der Blocklets beizubehalten.',confirm:"Neu starten",setup:"Neustart vorbereiten",verifying:"Blocklet-Server wird verifiziert",restarting:"Starte alle Container im Hintergrund neu",cleanup:"Stellen Sie sicher, dass alles in Ordnung ist",rollback:"Bereinigen Sie den unsauberen Zustand",complete:"Vollständig erhalten!",progress:"Starte alle Container im Hintergrund neu"},restartAllBlocklet:{title:"Alle Blocklets neu starten",description:"Alle laufenden oder fehlerhaften Blocklets auf diesem Server neustarten",dialog:'Klicken Sie auf "bestätigen", um alle Blocklets im Hintergrund neu zu starten.',confirm:"Neustart",setup:"Bereite Neustart vor",verifying:"Blocklet-Server wird überprüft",restarting:"Neustart aller laufenden oder fehlerhaften Blocklets im Hintergrund",cleanup:"Stellen Sie sicher, dass alles in Ordnung ist",rollback:"Den unsauberen Zustand bereinigen",complete:"Wartung abgeschlossen!",progress:"Neustart aller laufenden oder fehlerhaften Blocklets im Hintergrund"}},accessKey:{accessKeyId:"ZUGRIFFSSCHLÜSSEL",lastUsed:"Zuletzt verwendet am",tip:"Bitte geben Sie einen Namen für diesen Zugriffsschlüssel für zukünftige Referenz ein:",saveSecretTip:"Dies ist die einzige Zeit, in der Ihr Zugriffsgeheimnis angezeigt, aber nicht wiederhergestellt werden kann. Sie können jedoch jederzeit neue Zugriffsschlüssel erstellen.",iKnow:"Ich habe den Zugriffs-Geheimcode kopiert und gespeichert",showSecret:"Zeige geheimen Zugriffsschlüssel",hideSecret:"Verstecke Geheimnis",title:"Lösche Zugriffsschlüssel",descriptionNoTime:"Dieser Zugangsschlüssel {key} mit dem Namen {name} wird unwiderruflich gelöscht, da er (noch nie verwendet wurde)",description:"Dies löscht dauerhaft den Zugriffsschlüssel {key} mit dem Namen {name}, der zuletzt am {time}, {timeAge} verwendet wurde.",confirm_desc:"Bitte geben Sie {name} zum Löschen ein",remark:"Zugriffsschlüsselname",remarkInvalid:"Zugriffsschlüsselname ist erforderlich"},webhook:{add:"Integration hinzufügen",delTitle:"Lösche Integration",requiredError:"Bitte geben Sie einen gültigen {type} an",confirm_desc:"Bitte geben Sie {name} zum Löschen ein",test:"Test",description:"Diese Integration mit der ID {id} wird dauerhaft gelöscht.",columns:{description:"ID",params:"Parameter",createdAt:"Erstellt am"}}},notification:{title:"Aktivitäten",empty:"Keine Aktivitäten bisher",viewAll:"Alle anzeigen",showRead:"Zeige Lesen",markAllAsRead:"Alle als gelesen markieren",markAsRead:"Als gelesen markieren",proceed:"Weitermachen",checkingForUpdates:"Suche nach Updates...",email:{enable:"E-Mail-Benachrichtigung aktivieren",from:"E-Mail-Absender",host:"SMTP Server Host",port:"SMTP-Server Port",user:"SMTP-Server-Benutzername",secure:"Aktivieren Sie eine sichere Verbindung",password:"SMTP-Server Benutzer Passwort",fromRequired:"Absender der E-Mail ist erforderlich",fromInvalid:"E-Mail-Absender ist ungültig",receiverRequired:"E-Mail-Empfänger ist erforderlich",receiverInvalid:"Empfänger der E-Mail ist ungültig",hostRequired:"SMTP Server-Host wird benötigt",hostInvalid:"Der SMTP-Server-Host ist ungültig",portRequired:"Der Port des SMTP-Servers ist erforderlich.",portInvalid:"Der SMTP-Server-Port ist ungültig. Der Port sollte zwischen 1 und 65535 liegen.",userRequired:"SMTP-Server-Benutzername ist erforderlich",passwordRequired:"SMTP-Server-Benutzerkennwort erforderlich",testSuccess:"Test-E-Mail erfolgreich gesendet",testFailed:"Test-E-Mail senden fehlgeschlagen",testReceiver:"E-Mail-Empfänger",testSendEmail:"Test E-Mail senden",inputTestReceiver:"Bitte geben Sie die E-Mail-Adresse des Testempfängers ein",disable:"E-Mail-Benachrichtigung abbestellen",disableDescription:"Nach dem Abmelden erhalten Sie keine E-Mail-Benachrichtigungen mehr. Um E-Mail-Benachrichtigungen zu erhalten, können Sie sich auf dieser Seite erneut anmelden.",unsubscribe:"Abmelden E-Mail-Benachrichtigung",unsubscribeDescription:"Nach der Abmeldung erhalten Sie keine weiteren E-Mail-Benachrichtigungen mehr.",subscribe:"Abonnieren",subscribeDescription:"Um E-Mail-Benachrichtigungen zu erhalten, können Sie es erneut auf der Einstellungsseite abonnieren."},comingSoon:"Weitere Benachrichtigungskanäle befinden sich im Aufbau",unsubscribe:"Abmelden",unsubscribeSucceed:"Abmeldung erfolgreich",unsubscribeFailed:"Abmeldung fehlgeschlagen",unsubscribeTokenRequired:"Abmelde-Token ist erforderlich",unsubscribeTokenExpired:"Abmeldetoken ist abgelaufen",unsubscribeTokenInvalid:"Das Abonnement-Token ist ungültig",installComponentError:"Nicht gefunden deinstallierte Komponente {name}",installingComponent:"Installiere Komponente {name}",pushKit:{enable:"PushKit-Benachrichtigung aktivieren",endpoint:"PushKit-Endpunkt",endpointInvalid:"PushKit-Endpunkt ist eine ungültige URL",testSuccess:"Test PushKit-Versendung erfolgreich",testFailed:"Test PushKit senden fehlgeschlagen",testReceiver:"PushKit-Empfänger",testSend:"Test-Push-Kit senden",inputTestReceiver:"Bitte geben Sie den Test-Empfänger ein",receiverRequired:"PushKit-Empfänger ist erforderlich",pushPath:"Api-Pfad für Push-Kit (Standard /api/push)",did:"PushKit Blocklet DID",customOptions:"Benutzerdefinierte Optionen"}},router:{routerSetting:"Domains & URLs",certSetting:"SSL-Zertifikate",defaultSite:"Standard",urlHelperText:"URLs, die nicht mit HTTP/HTTPS beginnen, gelten als relative Pfade",empty:"Klicke auf Aktionen, um die URL-Zuordnung einzurichten",healthy:{ok:"Blocklet oder Dienst läuft",error:"Blocklet oder Dienst läuft nicht oder ist nicht installiert"},service:{select:"Blocklet-Dienste auswählen (optional)",what:"Blocklet-Dienste sind Pipelines, die vor der Weiterleitung an die übergeordnete Blocklet-Anwendung ausgeführt werden."},nonProvider:{title:"Motorwechselwarnung",description:"Wenn Sie den Motor auf 'keiner' ändern, funktioniert Ihre aktuelle Seite möglicherweise nicht ordnungsgemäß, da der vorherige Motor gestoppt wird. Sind Sie sicher, dass Sie fortfahren möchten?",confirm:"Ich verstehe, fahre fort"},validation:{urlRequired:"URL wird benötigt",redirectCodeRequired:"Weiterleitungscode ist erforderlich",didRequired:"Blocklet ist erforderlich",pathPrefixTooLong:"Der URL-Präfix darf nicht länger als {length} Zeichen sein",pathPrefixCannotBeEmpty:"Der URL-Prefix darf nicht leer sein",domainRequired:"Server-Domäne ist erforderlich",invalidUrl:"Bitte geben Sie eine gültige URL ein",pathPrefixRequired:"URL-Präfix ist erforderlich",redirectUrlRequired:"Die Weiterleitungs-URL ist erforderlich",rewriteUrlRequired:"Die URL muss neu geschrieben werden"},domain:{addSite:"Website hinzufügen",validate:{emptyTip:"Die Website-Domäne darf nicht leer sein",suffixTip:"Die Website-Domain kann {suffix} nicht enthalten"},add:{title:"Domainnamen hinzufügen",description:"Bitte geben Sie einen gültigen Domainnamen an",confirm:"Hinzufügen",cancel:"Abbrechen",blocklet:"Blocklet auswählen",redirect:"Wohin soll der Verkehr umgeleitet werden?",port:"Auf welchem Port muss Ihr Anfrage-Handler hören?",portTip:"Dies ist der Standardwert für den Hauptport des Anforderungsverarbeitungsmoduls. Sie können dies anpassen",type:"Verkehrshandler",component:"Komponente auswählen",pageGroup:"Seite Gruppe",pageGroupTip:"Diese Komponente kann jede Gruppe von oben aufgeführten Seiten rendern. Leer lassen, um alle Seiten zu rendern."},update:{title:"Aktualisierung der Website-Domäne",label:"Website-Domain",description:"Bitte geben Sie eine gültige Website-Domain an"},setup:{tipStart:"Fügen Sie die DNS-Einträge für die Domain hinzu",tipEnd:"Gemäß den folgenden Richtlinien",recordType:"Rekordtyp",recordValue:"Aufnahme Wert"},verify:{ok:"Die Domainauflösung ist normal",notResolved:"Diese Domain ist weder aufgelöst noch erreichbar. Bitte überprüfen Sie Ihre DNS-Konfiguration."},https:{ok:"Diese Domain ist mit HTTPS aktiviert",bad:"Diese Domain hat https nicht aktiviert"},delete:{title:"Lösche Website",description:'Durch Bestätigung löschen Sie Ihre bestehende Website "{name}". Geben Sie "{name}" unten ein und wählen Sie Löschen, um die Änderung abzuschließen, oder wählen Sie Abbrechen, um Ihre Website beizubehalten.',confirm_desc:"Bitte geben Sie {name} zur Bestätigung ein"}},domainAlias:{nftDomain:"Automatische Konfiguration mit DID-Domäne",showTipHint:"Wie konfiguriere ich die Auflösung des Domänennamens?",add:{title:"Zusätzliche Domain hinzufügen",domainDescription:"Bitte geben Sie einen gültigen Domainnamen an",forceTip:"Erzwinge Hinzufügen, wenn der Domainname bereits existiert",helperText:"Wenn eine HTTP- oder HTTPS-URL eingegeben wird, wird sie automatisch in einen Domainnamen umgewandelt.",isDidDomainError:"Diese Domain ist eine DID-Domäne. Bitte fügen Sie sie unter Verwendung der Methode zur automatischen Domänenkonfiguration hinzu.",tips:"Sie können einen Domainnamen eingeben, der von DID Domain oder einer anderen Domain gekauft wurde. Wenn es sich um eine DID-Domain handelt, müssen Sie die DID Domain NFT vorlegen, um fortzufahren."},addCustomDomain:{name:"Benutzerdefinierte Domäne"},addDomainNFT:{showNFT:"Konfiguriere die Domain automatisch",tips:"Sie können eine über DID Domain erworbene Domäne eingeben. Wenn eine DID Domain erkannt wird, müssen Sie die DID Domain NFT vorlegen, um fortzufahren.",connect:{title:"Bitte zeigen Sie Ihr Domain-NFT",scan:"Scannen Sie den folgenden QR-Code mit Ihrer DID Wallet, um blocklet zu autorisieren, Ihre Domain zu verwenden.",confirm:"Bitte bestätigen Sie in Ihrem DID Wallet",success:"Autorisierung erfolgreich"},buyTip:"DID Domain übernimmt die Auflösung des Domänennamens automatisch. Sie müssen ihn nicht manuell konfigurieren, und die Anwendung aktualisiert den Auflösungsdatensatz des Domänennamens bei Bedarf automatisch. Wenn Sie noch keine DID Domain NFT haben,",buy:"DID-Domain kaufen"},delete:{title:"Löschen",description:"Nach dem Entfernen einer Domain-Alias wird möglicherweise nicht ordnungsgemäß auf diesen Alias zugegriffen."}},domainSecurity:{title:"Domain Sicherheit",cors:{title:"Erlaubte CORS-Domains",description:'Domänenliste, von denen aus Cross-Origin-Anfragen an {name} gesendet werden können, durch Kommas getrennt. Verwenden Sie "*", um jedem zu erlauben, was nicht empfohlen wird.',domainInvalid:"Bitte geben Sie eine gültige Liste von Domainnamen ein"}},rule:{add:{title:"URL-Zuordnung hinzufügen",confirm:"Hinzufügen",pathPrefix:"Was ist das URL-Präfix?",pathPrefixTip:"Wenn Sie das Präfix auf '/mein-präfix' setzen, werden alle Anfragen, die mit diesem Präfix beginnen, zum konfigurierten Blocklet weitergeleitet",blocklet:"Welcher Blocklet wird diese Anfragen bearbeiten?",port:"Welcher Port des Blocklet wird Anfragen bearbeiten?",portTip:"Dies ist standardmäßig der Hauptport von Blocklet. Wenn Blocklet auf mehreren Ports lauscht, können Sie dies anpassen.",responseType:"Antworttyp",responseBody:"Antwortinhalt",responseBodyTip:"Fügen Sie hier Ihren Antwortinhalt ein, der 4096 Zeichen nicht überschreiten sollte.",responseBodyRequired:"Der Antwortinhalt darf nicht leer sein"},delete:{title:"URL-Mapping löschen",description:'Durch Bestätigen werden Sie Ihre vorhandene URL-Mapping für "{name}" löschen. Geben Sie "{name}" in das Feld ein und wählen Sie Löschen, um die Änderung abzuschließen, oder wählen Sie Abbrechen, wenn Sie Ihr URL-Mapping beibehalten möchten.',confirm_desc:"Bitte geben Sie {name} ein, um zu löschen",cancel:"Abbrechen"},update:{title:"URL-Mapping aktualisieren",confirm:"Ja, Aktualisieren",cancel:"Abbrechen"}},cert:{name:"Zertifikatsname",domain:"Domain Name",action:"Handlung",commonName:"Gemeinsamer Name",boundDomains:"Domains",source:"Quelle",expired:"Abgelaufen",leftDays:"Tage übrig",issuedOn:"Ausgestellt am",expiryOn:"Ablaufdatum am",fingerprintAlg:"Fingerabdruckalgorithmus",validityPeriod:"Gültigkeitsdauer",matchedSites:"Übereinstimmende Websites",upload:"Manueller Upload",publicCertHelperText:"Öffentliche Zertifikate können heruntergeladen werden",nonPublicCertHelperText:"Nicht öffentliche Zertifikate können nicht heruntergeladen werden",protectedCertHelperText:"Geschützte Zertifikate können nicht bearbeitet werden",unprotectedCertHelperText:"Unsichere Zertifikate können bearbeitet werden",issuing:"Zertifikat wird erstellt",sourceTypes:{upload:"Manueller Upload",lets_encrypt:"Lass uns verschlüsseln"},table:{nodata:"Keine Daten"},delete:{title:"Zertifikat löschen",description:"Löschen des Zertifikats der Domain {domain} bestätigen? Das Löschen kann sich auf verwandte Dienste auswirken. Bitte bestätigen Sie, dass dies sicher ist, bevor Sie mit dem Löschen fortfahren.",confirm:"Bestätigen"},nginx:{title:"Zertifikat aktualisieren",titleAdd:"Zertifikat hinzufügen",pem:"SSL-Zertifikat-Datei",pemTip:'Bitte legen Sie Ihr Server-Zertifikat hier ab. Es sollte mit ".pem" oder ".crt" enden.',key:"Privater Schlüsseldatei",keyTip:'Bitte geben Sie hier Ihre Server-Private-Key-Datei ein. Sie sollte mit ".pem" oder ".key" enden.',confirm:"Speichern",cancel:"Abbrechen",invalidFile:"Sie haben eine ungültige Datei ausgewählt",empty:"Noch keine Datei ausgewählt",source:"Quelle",sourceTypes:{upload:"Manuelles Hochladen",lets_encrypt:"Lass uns verschlüsseln"}},detail:{title:"Zertifikatdetails"},genLetsEncryptCert:{title:"Generiere Let's Encrypt Zertifikat",dnsTip:"Bitte stellen Sie sicher, dass der Domänenname auf den aktuellen Blocklet-Server verweist.",description:"Das Hinzufügen eines Zertifikats erhöht die Sicherheit des Dienstes und der Blocklet Server erneuert das Zertifikat automatisch, bevor es abläuft."}},gateway:{reqLimit:{switchLabel:"Anforderungsbegrenzung",rate:"Anforderungslimit ({rate} Anfragen/Sekunde)"},cacheEnabled:{switchLabel:"Aktiviere Gateway-Cache"},blockPolicy:{switchLabel:"Anforderungsblockierung",blacklistLabel:"Blockierte IPs",addItem:"Artikel hinzufügen",blacklistDesc:"Anfragen von diesen IPs werden blockiert, um auf diesen Server und alle Blocklets zuzugreifen",inputPlaceholder:"Geben Sie die IP-Adresse, den CIDR-Bereich oder die URL ein",invalidItem:"Ungültige IP-Adresse, CIDR-Bereich oder URL"},proxyPolicy:{switchLabel:"Hinter Proxies laufen",trustRecursive:"Vertrauen Sie Proxies rekursiv",trustRecursiveDesc:"Verwenden Sie die am weitesten links stehende nicht vertrauenswürdige IP in der X-Forwarded-For-Kette",trustedProxies:"Vertrauenswürdige Proxies",trustedProxiesDesc:"Anfragen von diesen IPs werden vertraut, um die tatsächliche Client-IP zu erhalten",realIpHeaderLabel:"Client-IP-Header",realIpHeaderDesc:"Wenn der Blocklet-Server hinter Proxies wie CloudFront läuft, können Sie hier die Header-IP des Clients festlegen.",addItem:"Artikel hinzufügen",inputPlaceholder:"Geben Sie die IP-Adresse, CIDR-Bereich ein",invalidItem:"Ungültige IP-Adresse, CIDR-Bereich"}}},noMatch:{desc:"Wir können die von Ihnen gesuchte Seite nicht finden"},health:{connectionErrorTip:"Blocklet-Server kann keine Verbindung zum Netzwerk herstellen. Bitte überprüfen Sie, ob der Blocklet-Server gestoppt wurde oder es ein Netzwerkproblem gibt.",connectionRecoveryTip:"Die Blocklet Server-Konnektivität konnte wiederhergestellt werden",connectionStoppedTip:"Der Blocklet Server wurde gestoppt",wrongAccessUrlTip:"Die Blocklet Server-Zugriffsadresse ist falsch. Bitte verwenden Sie die richtige Zugriffsadresse."},debug:{title:"Ihr Blocklet Server ist aktiv und läuft!"},team:{invite:{action:"Neu einladen",setting:"Einladungseinstellungen",enabled:"Erlauben Sie jedem Benutzer, einen neuen Benutzer zu diesem Blocklet einzuladen",disabled:"Nur der Eigentümer/Administrator kann neue Benutzer zu diesem Blocklet einladen",inviter:"Eingeladen von"},add:"Neu hinzufügen",member:{name:"Name",passport:"Reisepass",passports:"Pässe",lastLogin:"Letzter Login",lastLoginIp:"Letzte Login-IP",source:"Registerquelle",source_derived:"Abgeleitet von OAuth",source_wallet:"DID Brieftasche",filter:"Filtern nach",blockAccess:"Login verbieten",blockAccessDescription:"Der Benutzer wird sich nicht mit dieser Anwendung verbinden können",allowAccess:"Anmeldung erlauben",allowAccessDescription:"Der Benutzer kann sich mit dieser Anwendung verbinden",updateRole:"Rolle aktualisieren",removeUser:"Lösche Benutzer",removeUserDescription:"Benutzer '{name}' wirklich löschen?",revokePassport:"Reisepass zurücknehmen",revokePassportDescription:"Sobald der Reisepass widerrufen wurde, kann der Inhaber ihn nicht erneut zur Anmeldung verwenden. Sind Sie sicher, dass Sie fortfahren möchten?",enablePassport:"Aktiviere den Reisepass",enablePassportDescription:"Sobald der annullierte Reisepass wieder aktiviert ist, kann der Passinhaber ihn erneut verwenden, um sich einzuloggen. Sind Sie sicher, dass Sie fortfahren möchten?",passportPermissionTitle:"Der Reisepass hat folgende Berechtigungen:",search:"Suche Mitglied",onlyApprovedMember:"Nur genehmigte anzeigen",inviteDialog:{createInviteLink:"Generiere Einladungslink",createSuccessTip:"Der Einladungslink wurde erfolgreich erstellt. Klicken Sie zum Kopieren und Senden des Links an das eingeladene Mitglied. Beachten Sie bitte, dass dieser Einladungslink nicht wiederverwendet werden kann und am {expireDate} abläuft."},error:{passportEmpty:"Der Reisepass darf nicht leer sein"},connectedAccounts:"Verbundene Konten",connections:"Verbindungen",federated:"Federated",switch:{did:"Wechseln Sie DID",profile:"Profil wechseln",passport:"Reisepass wechseln"},settings:{notification:"Benachrichtigungen",email:"Sende mir eine E-Mail, wenn bestimmte Ereignisse eintreten",wallet:"Benachrichtigung an mein Wallet senden, wenn Ereignisse auftreten",phone:"Sende mir eine Textnachricht, wenn bestimmte Ereignisse auftreten",webhook:"Webhooks",add:"Neuen Webhook hinzufügen",url:"Benutzerdefinierte URL",slack:"Slack-Webhook",tested:"Testnachricht gesendet"},activeUserSessions:"Aktive Benutzersitzungen",forceLogout:"Erzwungenes Abmelden",forceLogoutDescription:"Bestätigen Sie die erzwungene Abmeldung dieses Benutzers?",openProfile:"Profil anzeigen",removeUserSuccess:"Benutzer erfolgreich entfernt"},transferNode:{name:"Änderung des Eigentums",inviteDialog:{title:"Transfer Blocklet Server",tips:{progress:"Der Servertransfer muss vom Empfänger akzeptiert werden, um den Übertragungsvorgang abzuschließen. Sobald der Empfänger es akzeptiert hat, können Sie sich nicht erneut mit dem aktuellen Reisepass am Server anmelden.",newOwnerPermissions:"Der neue Eigentümer wird das Recht haben, alle Operationen wie Mitglieder, Pässe und Blocklets zu verwalten.",revoke:'Wenn Sie die Übertragungseinladung zurückziehen möchten, können Sie den Einladungslink auf der Seite "Team -> Mitglieder -> Einladen" löschen.'},createInviteLink:"Erzeugen Sie den Einladungslink",createSuccessTip:"Der Einladungslink wurde erfolgreich erstellt. Klicken Sie zum Kopieren und Senden des Links an das eingeladene Mitglied. Beachten Sie bitte, dass dieser Einladungslink nicht erneut verwendet werden kann und am {expireDate} abläuft."},delegateDialog:{title:"Autorisierung erforderlich",scan:"Scannen Sie den folgenden QR-Code mit der DID-Brieftasche, um dem Server die Übertragung des Servereigentums-NFT zu autorisieren.",confirm:"Bestätige in deiner DID-Brieftasche",success:"Autorisierung erfolgreich"}},transferApp:{name:"Übertragung des Eigentums",transferDialog:{title:"Übertragungsantrag",tips:{progress:"Die Anwendung muss vom Empfänger akzeptiert werden, um den Übertragungsvorgang abzuschließen. Sobald der Empfänger es akzeptiert hat, können Sie sich nicht erneut mit dem aktuellen Reisepass in der Anwendung anmelden.",newOwnerPermissions:"Der neue Eigentümer hat das Recht, alle Vorgänge wie Mitglieder, Pässe und Einstellungen zu verwalten."},createTransferLink:"Generieren Sie einen Überweisungslink",createSuccessTip1:'Der Transferlink wurde erfolgreich erstellt. Der Eingeladene muss <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">DID Wallet</a> verwenden, um das Eigentum an der App zu erhalten.',createSuccessTip2:"Bitte klicken Sie zum Kopieren und Senden des Links an das eingeladene Mitglied. Bitte beachten Sie, dass dieser Übertragungslink nicht wiederverwendet werden kann und am {expireDate} abläuft. Ihr Übertragungslink wird nur einmal angezeigt und kann nach dem Schließen dieses Dialogs nicht mehr angesehen werden.",createSuccessTip3:"Nach erfolgreichem Transfer wird die Anwendung automatisch neu gestartet, um die Änderungen wirksam werden zu lassen",link:"Transfer-Link",iKnow:"Ich habe den Link kopiert und gespeichert"},connectDialog:{title:"Autorisierung erforderlich",scan:"Scannen Sie den folgenden QR-Code mit Ihrer DID Wallet, um der Anwendung die Übertragung des Eigentums zu autorisieren.",confirm:"Bestätigen Sie in Ihrer DID-Brieftasche",success:"Autorisierung erfolgreich"},receiveDialog:{title:"Empfange Anwendungseigentum",scan:"Scannen Sie den folgenden QR-Code mit der DID Wallet, um das Eigentum der Anwendung zu erhalten.",confirm:"Bestätigen Sie in Ihrer DID-Brieftasche",success:"Eigentum erfolgreich empfangen"},successTitle:"Du bist der neue Besitzer dieser Anwendung",visitDashboard:"Besuche das Anwendungsdashboard"},permission:{create:{title:"Erstellen Sie eine Berechtigung",description:"Format: <Aktion>_<Ressource>"},delete:{title:"Löschen Sie die Berechtigung",description:"Löschen von {name} bestätigen?"},error:{actionEmpty:"Aktion kann nicht leer sein",resourceEmpty:"Die Ressource darf nicht leer sein",permissionTooLong:"Die Erlaubnis darf {length} Zeichen nicht überschreiten",descriptionTooLong:"Beschreibung darf nicht länger als {length} Zeichen sein"}},passport:{create:{title:"Erstellen Sie einen Reisepass",titleTip:"Der Titel kann nach der Erstellung nicht geändert werden, sollte innerhalb von 14 Zeichen empfohlen werden"},bind:{title:"Bindungsgenehmigung",roleTip:"Sie erhalten alle Berechtigungen des ausgewählten Reisepasses nach der Bindung.",permissionTip:"Sie erhalten die ausgewählten Berechtigungen nach der Bindung",transferLeftTitle:"Alle Berechtigungen",transferRightTitle:"Gewährte Berechtigungen"},delete:{title:"Lösche Reisepass",description:"Die Pässe, die vom Benutzer gehalten werden, verlieren alle Berechtigungen, nachdem sie gelöscht wurden. Sind Sie sicher, dass Sie fortfahren möchten?"},error:{titleEmpty:"Der Titel darf nicht leer sein",titleTooLong:"Der Titel darf maximal {length} Zeichen nicht überschreiten",descriptionEmpty:"Beschreibung darf nicht leer sein"},issuance:{pending:"Ausstehend",create:{title:"Generiere Link"},delete:{title:"Löschen Sie den Empfangslink",description:"Löschen von {link} bestätigen?"}},issue:"Reisepass ausstellen",disableIssuance:"Deaktiviere die Ausstellung von Pässen",enableIssuance:"Aktivieren Sie den Reisepassausstellung",disableIssuanceTip:'"Issue Passport", "Invite Member" und andere Operationen werden deaktiviert sein.',enableIssuanceTip:"Passe ausstellen",trustedPassportIssuers:"Vertrauenswürdige Reisepassaussteller",trustedIssuers:"Vertrauenswürdige Aussteller",trustedFactories:"Vertrauenswürdige NFT-Sammlungen",trustedFactoriesTip:"Verwalten Sie vertrauenswürdige NFT-Sammlungen, die zum Austausch gegen einen Reisepass verwendet werden können",searchFactoryAddress:"Suche Sammlung DID",configFactories:"Vertrauenswürdige NFT-Sammlungen konfigurieren",configFactoriesTip:"Ermöglichen Sie Benutzern, NFTs gegen Reisepässe auszutauschen",factoryAddress:"NFT-Sammlungsadresse",factory404:"NFT-Sammlung nicht gefunden",factoryAddressTip:"Die NFT-Sammlungsadresse muss auf der ArcBlock Main Chain existieren",role:"Passporttyp",ttl:"Passport-Ablaufpolitik",ttlNever:"Nie ablaufen",ttlMint:"Seit dem NFT-Kauf",ttlExchange:"Da Reisepass Austausch",ttlNeverTip:"Der Reisepass ist gültig bis auf Widerruf",ttlMintTip:"Der Reisepass bleibt gültig, solange der NFT gekauft wird, bis Sie ttl angegeben haben oder ihn widerrufen haben",ttlExchangeTip:"Der Reisepass ist gültig von dem Zeitpunkt an, an dem der Benutzer erfolgreich umgetauscht hat, bis Sie ttl oder widerrufen haben",ttlTip:'365d bedeutet 365 Tage, du kannst auch "30 Tage" oder "24h" verwenden',validUntil:"Gültig bis: {date}",externalPassport:"Externer Reisepass",notTrustedIssuerTip:"Der Reisepass kann nicht verwendet werden, da der Aussteller nicht in der Liste vertrauenswürdiger Aussteller steht",issuerDid:"Herausgeber-DID",addNodeToTrustedIssuers:"Fügen Sie den aktuellen Server als vertrauenswürdigen Reisepass-Aussteller hinzu",revoked:"Widerrufen",noPermission:"Keine Berechtigung, diese Aktion auszuführen",shouldNotDeleteCurrent:"Du kannst deinen derzeit verwendeten Pass nicht widerrufen",mappingRule:"Zuordnungsregel",defaultRule:"Standardregel",search:"Suche Reisepass",searchIssuerDid:"Suche Aussteller-DID",issueBy:"Problem von {name}",configColor:"Konfiguration Reisepassfarbe",configColorTip:"Passe die Farbe des Reisepasses an",color:"Passfarbe",description:"Verwenden Sie diesen Pass, um {teamName} als {title} zu verbinden",displayBuiltin:"Builtin",displayCustom:"Benutzerdefiniert",typesTip:"Passarten nach Komma getrennt anpassen",issuanceDate:"Ausstellungsdatum: {date}"},inviting:{link:"Einladungslink",inviter:"Einladen",delete:{title:"Lösche Einladungslink",description:"Löschen von {link} bestätigen?"},disabledTip:"Einladung ist nicht aktiviert"},whoCanAccess:{all:{title:"Für alle zugänglich"},owner:{title:"Nur Eigentümer"},invited:{title:"Nur eingeladene Benutzer"}}},launcher:{provider:"Anbieter",adminUrl:"URL"},session:{blockAccess:"Du wurdest von diesem Server blockiert"},launchBlocklet:{appInfo:"Anwendungsinformationen",appInfoDesc:"Bestätigen Sie die Antragsinformationen",author:"Anwendungsautor: {author}",setup:"Setup-Blocklet",redirect:"Weiterleitung",alreadyRunning:"Anwendung {name} läuft bereits auf diesem Blocklet Server",alreadyInstalled:"Die Anwendung {name} ist bereits auf diesem Blocklet Server installiert.",alreadyExists:"Diese Anwendung existiert bereits, Umleitung...",purchased:"Bereits gekauft",purchase:"Kauf",nextStep:"Nächster Schritt",agreement:"Lizenzvereinbarung",agreeAll:"Zustimmen und Fortfahren",installing:"Installiere {appName} auf {serverName}. Es kann mehrere Minuten dauern. Bitte bleiben Sie dran...",redirecting:"{appName} wurde erfolgreich installiert, jetzt wird gestartet...",start:"Starten",launch:"Installiere Blocklet auf Server",launchSuccess:"{appName} wurde erfolgreich gestartet!",installSuccess:"Blocklet wurde erfolgreich auf {serverName} installiert und gestartet",openInRegistry:"Ansehen im Blocklet Store",subTitle:"Bereit, Blocklet {appName} auf {serverName} zu installieren",installingSubTitle:"{appName} wird installiert",access:"Öffne die Anwendung",viewApplication:"Bewerbung anzeigen",newVersion:"Neue Version",newVersionDesc:"Die Anwendung existiert bereits, aber die aktuelle Version kann aktualisiert werden",upgradeNow:"Jetzt upgraden",later:"Später",introduction:"Einführung",welcome:"Willkommen beim Blocklet Startassistenten",accept:"Ich stimme den Blocklet-Endbenutzer-Lizenzbedingungen zu",license:"Anwendungslizenz",next:"Stimme den EULA zu und fahre fort",purchaseApp:"Kaufen Sie Blocklet",setupAppDesc:"Initialisiere deinen Blocklet",launched:"Vollständig",confirmInstall:"Bestätige Installation",dialog:{title:"Werden Sie App-Besitzer",nftFreeDescription:"Bitte präsentieren Sie den App-Space-NFT und erstellen Sie ein App-Konto, um fortzufahren.",nftPaidDescription:"Bitte präsentieren Sie den App-Space-NFT und den App-Kauf-NFT, um fortzufahren",freeDescription:"Bitte erstellen Sie ein App-Konto, um fortzufahren",paidDescription:"Bitte präsentiere den App-Kauf-NFT und erstelle ein App-Konto, um fortzufahren.",confirm:"Bestätigen Sie in Ihrer DID-Brieftasche",success:"Autorisierung erfolgreich",authorizationTimeout:"Autorisierungstimeout"},waiting:{verifying:"Überprüfung der App-Metadaten ...",downloading:"App-Bundle wird heruntergeladen...",downloadingComponent:"Herunterladen von {name}",extractingComponent:"Extrahieren von {name}",extracting:"Extrahiere App Bundle...",installing:"Installiere App-Komponenten...",installed:"Installiert",starting:"Die App wird gestartet...",done:"Warten auf App-Bereitschaft..."},error:{loadMetaFailed:"App-Informationen konnten nicht geladen werden",appMetaNotFound:"Keine Informationen für diese App gefunden",downloadFailed:"Der App-Download ist fehlgeschlagen. Bitte versuche es erneut.",installFailed:"Die App konnte nicht installiert werden, bitte versuche es erneut",startFailed:"Fehler beim Starten der App, bitte versuche es erneut",launchFailed:"Die App konnte nicht gestartet werden, bitte versuchen Sie es erneut",installedButStopped:"Die App wurde erfolgreich installiert, kann jedoch nicht gestartet werden. Sie können sie manuell starten, nachdem Sie die blockierenden Probleme behoben haben.",installedButError:"Die App wurde erfolgreich installiert, konnte jedoch nicht gestartet werden",restoreFailed:"Fehler beim Wiederherstellen der App, bitte versuchen Sie es erneut",resourceBlocklet:"Dieses Blocklet kann nicht direkt gestartet werden. Du kannst es aber einer bestehenden Anwendung hinzufügen."},steps:{introduction:"Einführung",installApp:"Installiere Anwendung",purchaseSpace:"Kaufe Platz",prepareSpace:"Bereite den Weltraum vor"},installRelatedComponents:"Installiere verwandte Blocklets"},issuePassport:{title:"Reisepass empfangen",description:"Verwenden Sie das DID Wallet, um den von {name} ausgestellten Reisepass zu erhalten",dialog:{scan:"Verwenden Sie Ihre DID-Brieftasche, um den Reisepass zu beantragen",confirm:"Bestätigen Sie auf Ihrer DID Wallet",success:"Der Reisepass wurde erfolgreich zu Ihrer Brieftasche hinzugefügt",loginWithPassport:"Verbinden Sie sich mit diesem Reisepass",autoClose:"Die Seite schließt automatisch in {seconds}s",autoJump:"Die Seite wird in {seconds}s automatisch weitergeleitet."}},lostPassport:{title:"Verlorenen Pass",description:"Der Besitzer von {name} kann den QR-Code scannen, um den Reisepass abzurufen. Mitglieder kontaktieren bitte den Besitzer, um den Reisepass neu ausstellen zu lassen.",dialog:{title:"Pass wiederherstellen",scan:"Verwenden Sie Ihre DID-Brieftasche, um den Reisepass wiederherzustellen",confirm:"Bestätigen Sie in Ihrer DID Wallet",success:"Der Reisepass wurde erfolgreich in Ihrer Brieftasche hinzugefügt"},return:"Verbinde mit Reisepass",selectPassport:"Wählen Sie den Reisepass aus",receivePassport:"Empfange den Reisepass"},invite:{message:"{name} lädt Sie ein, {role} von {dapp} zu sein",success:"Sie haben erfolgreich an {dapp} teilgenommen",receive:"Empfange mit",validUntil:"Gültig bis:",viewPermission:"Ansichtsberechtigung",emptyPermission:"Leere Berechtigung",open:"Öffnen",description:{step1:"Lade {wallet} herunter und richte es ein",step2:"Klicken Sie auf die obige Schaltfläche, um den Reisepass zu erhalten",step3:"Einloggen in {dapp} mit erhaltenem Reisepass"},transferNFTDialog:{title:"Akzeptieren Sie Blocklet Server {name}",scan:"Verbinden Sie den Launcher, um den Empfang des Blocklet-Servers abzuschließen.",confirm:"Überprüfen Sie diese Operation in Ihrer DID-Brieftasche",success:"Erfolgreich verbunden, warten auf Bestätigung des Serverempfangs"}},receive:{dialog:{title:"Verwenden Sie Ihre DID-Brieftasche, um den Reisepass zu erhalten",scan:"Verbinden Sie Ihre DID Wallet, um Ihren Reisepass zu erhalten",confirm:"Bestätigen Sie in Ihrer DID-Brieftasche",success:"Sie sind erfolgreich verbunden"}},navigation:{navigation:"Navigation",actionFailed:"Aktion fehlgeschlagen",form:{title:"Titel",titlePlaceholder:"Bitte geben Sie den Navigationstitel ein",titleTooLong:"Die Titellänge sollte kleiner sein als {len}",icon:"Navigationsikone",iconPlaceholder:"Bitte Eingabe Navigationssymbol",invalidIcon:"Symbol ist ungültig",findMoreIcon:"Finde mehr Symbole",link:"Link",linkPlaceholder:"Bitte geben Sie den Navigationslink ein",invalidLink:"Der Link ist ungültig",component:"Komponente",componentPlaceholder:"Bitte wähle das Navigationskomponente aus",role:"Rolle",rolePlaceholder:"Bitte wählen Sie die Navigationsrolle",locale:"Sprachumgebung",localePlaceholder:"Bitte geben Sie die gewünschte Lokalisierung hinzu",localeExists:"{value} existiert bereits",activeIcon:"Aktives Symbol",activeIconPlaceholder:"Bitte Symbol für aktive Navigation eingeben",activeColor:"Aktive Farbe",activeColorPlaceholder:"Bitte geben Sie die aktive Navigationsfarbe ein",color:"Farbe",colorPlaceholder:"Bitte geben Sie die Standardfarbe für die Navigation ein"},action:{add:"Füge Navigation hinzu",addSub:"Unternavigation hinzufügen",edit:"Navigation bearbeiten",hide:"Navigation ausblenden",show:"Navigationsleiste anzeigen",del:"Navigation löschen",new:"Neu",noAddSub:"Deinstallierte Komponente kann keine Unter-Navigation hinzufügen",noEdit:"Deinstallierte Komponente kann nicht bearbeitet werden",noDel:"Das Löschen der integrierten Navigation ist nicht zulässig",reset:"Zurücksetzen",restConfirmTitle:"Möchten Sie alle benutzerdefinierten Navigationseinstellungen löschen?",restConfirmDesc:"Nach dem Löschen wird die Navigation auf die ursprüngliche Standardkonfiguration von Blocklet zurückgesetzt.",resetSuccessful:"Reset erfolgreich"},access:"Zugriff",members:"Mitglieder",passport:"Pass",analytics:"Analytics",dashboard:"Dashboard",studio:"Studio",blockletService:"Blocklet Dienst"},storage:{spaces:{title:"DID Spaces",tips:"Tipps",label:"Geben Sie den DID Spaces Gateway ein",connected:{title:"Verbundene DID Spaces",tag:"Verbunden"},connectedWithName:"Sie haben sich erfolgreich mit {name} verbunden",addedWithName:"Du hast erfolgreich {name} hinzugefügt",connects:"Verbinden",reconnect:"Verbinde erneut",addressCannotEmpty:"Die Adresse darf nicht leer sein",addressNotValid:"{url} ist keine gültige Adresse",authorize:{title:"Verbinde {appName} mit DID Spaces",scan:"Verwenden Sie Ihre DID-Brieftasche, um den unten stehenden QR-Code zu scannen, um die App {appName} mit DID Spaces zu verbinden.",success:"Verbindung erfolgreich hergestellt"},provideNFT:{title:"Bitte zeige die DID Spaces NFT für {appName}",scan:"Verwenden Sie Ihre DID-Brieftasche, um den QR-Code unten zu scannen, um der App {appName} den DID-Space-NFT anzuzeigen",success:"Erfolgreich verbunden"},backup:{title:"Sicherungskopie",records:"Sicherungsdatensätze"},autoBackup:{title:"Auto-Backup",enabled:"Automatisches Backup ist aktiviert",disabled:"Die automatische Sicherung ist ausgeschaltet"},autoCheckUpdate:{title:"Automatische Benachrichtigung über neue Version überprüfen",enabled:"Automatisches Überprüfen auf neue Version ist aktiviert",disabled:"Automatische Überprüfung auf neue Version ist deaktiviert"},backupSuccessfully:"Backup erfolgreich durchgeführt",restore:"Wiederherstellen",restoreSuccessfully:"Erfolgreich wiederhergestellt",gateway:{title:"Gateway",select:"Wähle einen DID-Space aus",add:{title:"DID Spaces hinzufügen",label:"Geben Sie die URL der DID Spaces ein",failed:"Fehler beim Hinzufügen von DID Spaces",invalidUrl:"Ungültige DID-Spaces-Gateway-URL",duplicate:"DID Space({name}) existiert bereits"},delete:{title:"Lösche Gateway",succeeded:"Löschen Sie DID Spaces {name} Erfolg",failed:"Löschen des Gateways fehlgeschlagen",failedForSelected:"Kann den ausgewählten DID-Space nicht löschen"},connect:{title:"Verbinde DID Spaces",add:"Verbinde dich jetzt mit DID Spaces",addTips:"Du bist noch mit keinem Space verbunden",switch:"Wechseln Sie DID Spaces",switchTips:"Sie sind mit {name} verbunden",connected:"Verbunden"},switch:{failedForMismatchSpace:"Bitte verbinde dich mit dem korrekten Space{name}"},connectTo:"Verbinde mit DID Spaces"},strategy:{title:"Backup-Strategie",autoBackup:"Auto-Backup",backupNow:"Sichern Sie jetzt",viewBackupFiles:"Backup-Dateien anzeigen"},progress:{title:"Backup-Fortschritt"},record:{title:"Sicherungsaufzeichnungen",emptyData:"Keine Einträge"},notYet:"Es gibt noch kein Backup in Arbeit...",connect:{now:"Verbinden Sie sich jetzt",title:"Verbinde DID Spaces",provider:"Geben Sie Ihre DID Spaces an, um mit dem Backup zu beginnen",providerForStorage:"Stellen Sie Ihren DID-Speicherplatz für die Datenspeicherung zur Verfügung",useWallet:"Verbinde mit DID Wallet",useWalletReconnect:"Verbindung mit DID Wallet wiederherstellen",useSpaceGateway:"Verbinden Sie sich über das DID Spaces Gateway",useSpaceGatewayReconnect:"Verbinden Sie sich erneut mit dem DID Spaces Gateway",switchToSpace:"Wechsel zu Space",switchToSpaceSucceeded:"Wechselte zu Space{name}",succeeded:"Sie haben erfolgreich eine Verbindung zu DID Spaces hergestellt",disconnect:"Trennen"},disconnected:{tag:"Getrennt",reconnectNow:"Verbinde jetzt erneut"}},appLevel:{title:"Anwendungsebene speichern",description:"Alle Daten, die von der Anwendung generiert werden, werden in diesem DID Space gespeichert"}},log:{lastDays:{1:"Letzter 1 Tag",7:"Letzte 1 Woche"}},oauth:{commonSettings:"Allgemeine Einstellungen",save:"Speichern",saveSuccess:"Speichern erfolgreich",saveFailed:"Speichern fehlgeschlagen",issued:"Ausgegeben",thirdPartyLogin:"Drittanbieter-Anmeldung",alreadyBindOAuth:"Bereits Drittanbieter-Anmeldung verknüpft",alreadyBindWallet:"Bereits DID Wallet binden",auth0:{enable:"Auth0-Anmeldung aktivieren",domain:"Domain",domainDescription:"Die Domäne von Auth0 ist erforderlich",clientId:"Kunden-ID",clientIdDescription:"Die clientId von Auth0 ist erforderlich",clientSecret:"Geheimclient",clientSecretDescription:"Auth0-OAuth-Anwendung Der geheime Clientschlüssel ist erforderlich"},comingSoon:"Es werden weitere Anmeldeverfahren entwickelt.",moreLogin:"Mehr Anmeldung",federated:"Föderiertes Login",runTest:"Test",github:{enable:"Aktiviere Github-Anmeldung",clientId:"Client ID",clientIdDescription:"Für die Github OAuth-Anwendung ist eine clientId erforderlich",clientSecret:"Client Secret",clientSecretDescription:"Für die Github OAuth-Anwendung ist ein clientSecret erforderlich"},google:{enable:"Google-Anmeldung aktivieren",clientId:"Client ID",clientIdDescription:"Für die Google OAuth-Anwendung ist die Client-ID erforderlich",clientSecret:"Geheimnis des Kunden",clientSecretDescription:"Für die Google OAuth-Anwendung ist ein clientSecret erforderlich"},apple:{enable:"Anmeldung mit Apple aktivieren",teamId:"Team-ID",teamIdDescription:"Für die Apple OAuth-Anwendung ist eine Team-ID erforderlich",serviceId:"Service-ID",serviceIdDescription:"Für die Apple OAuth-Anwendung ist eine Dienst-ID erforderlich",keyId:"Schlüssel-ID",keyIdDescription:"Für Apple OAuth ist eine Anwendungsschlüssel-ID erforderlich",authKey:"Auth Schlüssel",authKeyDescription:"Authentifizierungsschlüssel für Apple OAuth-Anwendung erforderlich",bundleId:"Bundle-ID",bundleIdDescription:"Die Apple OAuth Anwendungs-Bundle-ID ist erforderlich"},oauth:"Drittanbieter-Anmeldung"},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"Abgelaufen"},loadFailed:"Wiederholen!"},desktop:{tips:{success:"Das Abonnement wird nach {validity} ablaufen",warning:"Das Abonnement läuft nach {validity} ab",error:"Abonnement abgelaufen"},loading:"Abonnement laden...",loadFailed:"Fehler beim Laden der Abonnementinformationen, bitte erneut versuchen!",nextInvoice:"Nächste Rechnung: {date}"}},analytics:{trend:"Trends",detail:"Störung",traffic:{totalRequests:"Gesamtanfragen",validRequests:"Erfolgreiche Anfragen",failedRequests:"Fehlgeschlagene Anfragen",uniqueVisitors:"Einzigartige Besucher",uniqueFiles:"Einzigartige URLs",uniqueReferrers:"Einzigartige Überweisende",uniqueNotFound:"Einzigartiger 404",uniqueStaticFiles:"Einzigartige statische Dateien",logSize:"Log Größe",bandwidth:"Bandbreite"},runtime:"Laufzeit"},federated:{inviteJoinFederatedLogin:"Einladung zum Beitritt zur dezentralen Anmeldung",inviteJoinFederatedLoginDescription:"Kopieren Sie die folgende Adresse und füllen Sie sie in der Anwendung aus, wo Sie sich anmelden müssen, um sich für eine föderierte Anmeldung zu bewerben.",federatedLogin:"Föderiertes Login",joinFederatedLogin:"Federiertes Anmelden beitreten",joinFederatedLoginDescription:"Bitte geben Sie die federierte Login-Adresse ein, die Ihnen von Master Blocklet zur Verfügung gestellt wurde, um sich beim föderierten Login anzumelden",quitFederatedLogin:"Abgemeldeter Verbundlogin",quitFederatedLoginDescription:"Nach dem Beenden der föderierten Anmeldung ist die normale Anmeldung immer verfügbar.",federatedJoinAppUrl:"Mitglied werden bei federiertem Login appUrl",federatedJoinAppUrlRequired:"Bitte geben Sie die URL der Föderierten Anmeldung ein",failedToGetFederatedLoginAppUrl:"Fehler beim Abrufen der föderativen Anmeldung join appUrl",federatedJoinAppUrlInvalid:"Die URL der föderierten Anmeldung (Federated login) ist ungültig.",siteDetail:"Seitendetail",approveToJoinLogin:"Mitgliedschaft in der Verbandseinwahl genehmigen",approve:"Anmeldung aktivieren",revoke:"Deaktiviere die Anmeldung",enableFederatedLogin:"Aktivieren Sie die föderierte Anmeldung",disableFederatedLogin:"Deaktivierte föderierte Anmeldung",enableFederatedLoginDescription:"Nach Aktivierung der föderierten Anmeldung wird diese Seite automatisch angemeldet.",disableFederatedLoginDescription:"Nachdem die dezentrale Anmeldung deaktiviert wurde, wird diese Seite nicht automatisch angemeldet werden",enableFederatedAutoLogin:"Aktiviere die automatische Anmeldung",enableFederatedAutoLoginDescription:"Nachdem die automatische Anmeldung aktiviert wurde, wird sich die Seite automatisch mit den Anmeldedaten des Verbund-Logins anmelden, falls derzeit ein einheitlicher Anmeldestatus besteht.",disableFederatedAutoLogin:"Deaktiviere automatischen Login",disableFederatedAutoLoginDescription:"Nachdem die automatische Anmeldung deaktiviert ist, wird die Website die Benutzerinformationen der gemeinsamen Anmeldung nicht mehr automatisch einloggen und Sie können immer noch wählen, sich manuell mit der Identität der Föderationsanmeldung anzumelden.",info:{appId:"APP HAT",appPid:"Permanente ID",migratedFrom:"Auch bekannt als",appName:"Blocklet-Name",appDescription:"Blocklet-Beschreibung",appUrl:"Blocklet-URL",appLogo:"Blocklet Logo",did:"Blocklet DID",serverId:"Blocklet Server ID",serverVersion:"Blocklet Server Version",version:"Blocklet-Version",appliedAt:"Bewerben Sie sich bei",status:"Status"},status:{pending:"Ausstehend",approved:"Genehmigt",rejected:"Abgelehnt",revoked:"Widerrufen"},disbandFederatedLogin:"Deaktiviere föderierte Anmeldung",disbandFederatedLoginDescription:"Nach der Auflösung der föderierten Anmeldung werden sich alle Mitgliedsseiten automatisch von der föderierten Anmeldung abmelden.",syncConfig:"Synchronisiere Konfiguration der föderierten Sites",quitMember:"Entfernen",quitMemberDescription:"Angegebene Mitglieder aus der Site-Gruppe entfernen",removeFederatedLogin:"Mitglied entfernen",removeFederatedLoginDescription:"Nach dem Entfernen bestimmter Mitglieder aus der Site-Gruppe können Mitglieder sich nur noch normal anmelden"},optionsOrder:{1:"Option Eins",2:"Option Zwei"},securityRule:{title:"Sicherheitsregel",sortByDescription:"Nach Übereinstimmungspriorität sortieren",add:"Sicherheitsregel hinzufügen",edit:"Sicherheitsrichtlinie bearbeiten",view:"Sicherheitsregel anzeigen",form:{precede:"Voranstellen",pathPattern:"Pfadmuster",pathPatternPlaceholder:"Bitte Pfadmuster eingeben",pathPatternErrorText:"Ungültiges Pfadmuster",accessPolicyOrResponseHeaderPolicyRequired:"Zugriffsrichtlinie oder Antwortrubrikenrichtlinie ist erforderlich",accessPolicy:"Zugriffsrichtlinie",accessPolicyPlaceholder:"Zugriffsrichtlinie auswählen",accessPolicyHelperText:"Bitte Zugriffsrichtlinie auswählen",responseHeaderPolicy:"Richtlinie für Antwortheader",responseHeaderPolicyPlaceholder:"Bitte wählen Sie die Antwort-Headerrichtlinie aus",responseHeaderPolicyHelperText:"Bitte wählen Sie eine Antwort-Header-Richtlinie aus",remark:"Bemerkung",remarkPlaceholder:"Bitte geben Sie eine Bemerkung ein",component:"Komponente",componentPlaceholder:"Bitte wählen Sie das Komponent"},delete:{title:"Sicherheitsregel löschen?",description:"Nachdem eine Sicherheitsregel entfernt wurde, wird die Regel nicht mehr wirksam"}},responseHeaderPolicy:{title:"Reaktionskopfzeilen-Richtlinie",add:"Richtlinie für Antwortoptionen hinzufügen",edit:"Antwort-Header-Richtlinien bearbeiten",view:"Antwort-Headerrichtlinie anzeigen",form:{name:"Name",namePlaceholder:"Bitte Namen eingeben",description:"Beschreibung",descriptionPlaceholder:"Bitte Beschreibung eingeben",cors:{origin:"Herkunft",originPlaceholder:"Folgende Domainformate werden unterstützt: http://www.example.com, http://*.example.com, http://www.example.com:8080, * (Platzhalter werden nicht empfohlen)",originHelperText:"Domänenname beginnt mit http:// oder https://, eine pro Zeile, eine Platzhalterzeichen * pro Zeile",methods:"Methoden",allowedHeaders:"Zugelassene Header",allowedHeadersPlaceholder:"Es wird empfohlen, auszufüllen *, unterstützt mehrzeilige Eingabe",allowedHeadersHelperText:"Teile dem Server mit, welche benutzerdefinierten HTTP-Anforderungsheader in der nächsten Anforderung beim Senden einer OPTIONS-Anforderung verwendet werden können, wie z. B: x-blocklet-version",exposedHeaders:"Offengelegte Header",exposedHeadersPlaceholder:"Unterstützt Eingabe in mehreren Zeilen",exposedHeadersHelperText:"Expose-Header konfigurieren, zum Beispiel: X-Content-Range",maxAge:"Maximalalter (Sekunden)",maxAgeHelperText:"Der Gültigkeitszeitraum des durch die OPTIONS-Anfrage erhaltenen Ergebnisses muss eine positive Ganzzahl sein",optionsSuccessStatus:"Optionserfolgsstatus",preflightContinue:"Fortfahren",credentials:"Anmeldedaten",smartModeHelperText:"Alle Domänennamen der aktuellen Anwendung sowie alle Domänennamen der Verbundanmeldegruppenseite automatisch hinzufügen",smartMode:"Intelligenter Modus"},originOverride:"Ursprungsüberschreibung",originOverrideHelperText:"Ob die Logik in der Anwendung diese Antwortkopfzeile überschreiben darf"},delete:{title:"Antwort-Header-Richtlinie löschen?",description:"Nachdem eine Antwortheaderrichtlinie entfernt wurde, tritt die Richtlinie nicht mehr in Kraft"}},accessPolicy:{title:"Zugriffsrichtlinie",add:"Zugriffsrichtlinie hinzufügen",edit:"Zugriffsrichtlinie bearbeiten",view:"Zugriffsrichtlinie anzeigen",form:{name:"Name",namePlaceholder:"Bitte Namen eingeben",description:"Beschreibung",descriptionPlaceholder:"Bitte Beschreibung eingeben",roles:"Zugriffsrollen",accessType:"Zugriffstyp"},delete:{title:"Zugriffsrichtlinie löschen?",description:"Nach dem Entfernen einer Zugriffsrichtlinie wird die Richtlinie nicht mehr wirksam"}},didConnect:{genKeyPair:{title:"Blocklet DID generieren",scan:"Scanne folgenden QR-Code, um eine Blocklet DID zu generieren",success:"Blocklet DID erfolgreich generiert",successDesc:"Die Blocklet DID wurde erfolgreich generiert (Nachfolgende Veröffentlichungen erfordern die Wallet, die die DID generiert hat, um zu funktionieren)"},common:{invalidSession:"Ungültige Sitzung",invalidSessionDesc:"Session existiert nicht oder ist abgelaufen",connectionError:"Verbindung fehlgeschlagen"}}};export{e as default};
@@ -1,9 +0,0 @@
1
- import{a1 as E,a2 as _,j as t,r,a5 as w,bu as A,ap as H,ad as L,fV as W,aa as j,B as i,T as y,aH as R,fH as z,P as S,a3 as O}from"./index-C7otKf8F.js";import{D as q,a as N,B as $,A as F}from"./domain-list-IwhSKnxn.js";import{P as K}from"./page-header-9hNVxRoa.js";import{d as M}from"./ExpandMore-BO8jF1bn.js";import{_ as U}from"./useSetState-CuEGVXqh.js";import{S as l}from"./button-CSzyfzmK.js";import{S as V}from"./layout-Df9B9CD5.js";import{S as Y}from"./step-actions-Bbj9n3cG.js";import"./trim-08Op5xjY.js";import"./Add-C-MUV7pC.js";import"./base32-Cog_VZ0k.js";import"./LockIcon-DtPBoSNv.js";import"./index-Ci5RfQ59.js";import"./index-C2TlC4O6.js";import"./CheckCircle-C-J8R9KR.js";import"./util-D3UE9Z7D.js";import"./Alert-DbN0O0aN.js";import"./useSlot-C9LBI1FF.js";import"./permission-CaRXgle6.js";import"./useAsync-Co-ihL9T.js";import"./session-SThzCGTr.js";import"./confirm-DGKnhqaC.js";import"./DialogContentText-COq3rw-i.js";import"./format-error-CXOPpcrE.js";import"./use-mobile-Bdr2kObC.js";import"./InfoOutlined-BxU1CEPg.js";import"./index-DnlBG2uS.js";import"./api-BKvFaP38.js";import"./index-CS43LeKQ.js";import"./TextField-BWghiml0.js";import"./FormControl-BsxgOlTX.js";import"./useFormControl-Ef5WMbDC.js";import"./Select-B3cdfIzb.js";import"./LoadingButton-C4TIaNaq.js";import"./useThemeProps-55Y0sL0H.js";import"./Delete-DOl4nPF3.js";import"./actions-CchlEsiO.js";import"./MoreHoriz-B5aoiijW.js";import"./content-layout-Coi8AV4p.js";var p={},G=_;Object.defineProperty(p,"__esModule",{value:!0});var v=p.default=void 0,J=G(E()),Q=t;v=p.default=(0,J.default)((0,Q.jsx)("path",{d:"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2m6 9.8a.9.9 0 0 1-.1.5l-2.1 4.9a1.34 1.34 0 0 1-1.3.8H9a2 2 0 0 1-2-2v-5a1.28 1.28 0 0 1 .4-1L12 5l.69.69a1.08 1.08 0 0 1 .3.7v.2L12.41 10H17a1 1 0 0 1 1 1z"}),"Recommend");function c({onNext:s,onPrevious:g}){var h,D;const{t:o}=r.useContext(w),{info:k}=A(),[C,u]=r.useState(!1),{blocklet:a}=H(),[x,P]=r.useState(""),[d,I]=r.useState(!1),B=(((a==null?void 0:a.site)||{}).domainAliases||[]).map(e=>L.replaceSlotToIp(e.value,x)),[n,m]=U({domain:"",invalidDNSDomain:null,type:"",addDomainState:{text:""}}),f=(D=(h=a.environments)==null?void 0:h.find(e=>e.key==="BLOCKLET_APP_PK"))==null?void 0:D.value,T=B.find(e=>W.isDidDomain(e));return r.useEffect(()=>{j.get(`/dns-resolve?hostname=${window.location.hostname}`).then(({data:e})=>{P(e.address||"")}).catch(e=>{console.error(e.message)})},[]),t.jsxs(X,{children:[t.jsx("div",{className:"header",children:t.jsx(K,{title:o("setup.domain.title"),subTitle:o("setup.domain.subTitle"),onClickBack:g})}),t.jsxs(i,{className:"form",sx:{display:"flex",flexDirection:"column",gap:3,overflowY:"auto"},children:[t.jsxs(i,{children:[t.jsxs(i,{color:"text.primary",fontWeight:"fontWeightBold",fontSize:"1.125rem",children:[t.jsx(i,{display:"inline",children:o("setup.domain.skipStart")}),t.jsx(l,{variant:"text",size:"small",disabled:!!n.addDomainState.text,onClick:()=>s(),style:{paddingTop:0},children:t.jsx("span",{style:{textDecoration:"underline"},children:o("setup.domain.skip")})}),t.jsx(i,{display:"inline",children:o("setup.domain.skipEnd")})]}),t.jsx(i,{sx:{marginTop:"12px"},children:t.jsx(N,{listOnly:!0,inSetup:!0})})]}),t.jsxs(i,{sx:{display:"flex",flexDirection:"column",gap:2},children:[k.nftDomainUrl&&t.jsxs(t.Fragment,{children:[t.jsxs(i,{sx:{display:"flex",alignItems:"center",gap:1},children:[t.jsx(v,{color:"primary"}),t.jsx(y,{fontWeight:"fontWeightBold",children:o("setup.domain.buyDIDDomainTitle")})]}),t.jsxs(i,{children:[t.jsx($,{appPk:f,appId:a.appPid,siteId:a.site.id,teamDid:a.meta.did,title:o("common.buy"),inBlockletSetup:!0}),t.jsx(y,{sx:{marginTop:1},children:o("setup.domain.buyDIDDomainTips")})]})]}),t.jsxs(i,{children:[t.jsxs(i,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",overflow:"hidden",cursor:"pointer"},onClick:()=>I(!d),children:[t.jsx(i,{fontWeight:"fontWeightBold",fontSize:"1.125rem",children:o("setup.domain.addTitle")}),t.jsx(R,{sx:{transform:d?"rotate(180deg)":"rotate(0deg)",transition:"transform 0.3s"},children:t.jsx(M,{})})]}),t.jsx(z,{in:d,timeout:"auto",unmountOnExit:!0,children:t.jsx(F,{autoFocus:!1,appPk:f,appId:a.appPid,siteId:a.site.id,teamDid:a.meta.did,cnameDomain:T,currentIp:x,inBlockletSetup:!0,shouldCheckDomain:!0,resolveDomain:e=>j.get(`/dns-resolve?hostname=${e}`),onInputDomain:e=>{m({domain:e.domain,type:e.type}),u(e.error)},onStateChange:e=>m({addDomainState:e}),onSuccess:e=>{const b={domain:e.domain,type:e.type,nftDid:e.nftDid,chainHost:e.chainHost};m(b),s()},onError:u})})]})]})]}),t.jsx(Y,{mt:8,disabled:!!n.addDomainState.text,blocklet:a,onStartNow:()=>s("complete"),children:n.domain?t.jsx(l,{variant:"contained",loading:!!n.addDomainState.text,disabled:C||!!n.addDomainState.text||!n.domain,onClick:()=>s(),children:n.addDomainState.text||o("setup.next")}):t.jsx(l,{variant:"contained",disabled:!!n.addDomainState.text,onClick:()=>s(),children:o("setup.skip")})})]})}function qt(s){return t.jsx(q,{children:t.jsx(c,{...s})})}c.propTypes={onNext:S.func,onPrevious:S.func};c.defaultProps={onNext:()=>{},onPrevious:()=>{}};const X=O(V)`
2
- height: 100%;
3
- overflow-y: hidden;
4
- .form {
5
- width: 100%;
6
- height: 100%;
7
- word-break: break-all;
8
- }
9
- `;export{qt as default};
@@ -1,15 +0,0 @@
1
- import{a1 as ae,a2 as le,j as e,f9 as Me,c as Y,fW as mt,w as pt,aD as Be,aF as ft,u as k,r as v,l as V,c6 as ht,X as xt,a6 as W,az as gt,B as h,n as z,T as q,cC as Pe,ao as X,a4 as ce,bn as ze,P as o,fX as Dt,fY as Ue,bI as yt,aU as F,b1 as Ne,af as Ee,a as B,v as O,fZ as Oe,f_ as jt,f$ as vt,bc as bt,g0 as We,C as ke,U as Ct,c5 as wt,bE as Te,fV as He,aY as Ve,a_ as St,ca as Rt,cc as At,ct as It,bo as Le,g1 as Pt,a3 as Et,bq as kt,bw as Tt,g2 as Lt,g3 as _t,ad as _e,aH as qt}from"./index-C7otKf8F.js";import{t as de}from"./trim-08Op5xjY.js";import{d as Ft}from"./Add-C-MUV7pC.js";import{d as $t}from"./ExpandMore-BO8jF1bn.js";import{b as Mt}from"./base32-Cog_VZ0k.js";import{d as Bt}from"./LockIcon-DtPBoSNv.js";import{E as zt}from"./index-Ci5RfQ59.js";import{u as Ut}from"./index-C2TlC4O6.js";import{d as Nt}from"./CheckCircle-C-J8R9KR.js";import{d as Ot,p as qe}from"./util-D3UE9Z7D.js";import{A as ue}from"./Alert-DbN0O0aN.js";import{_ as Z}from"./useSetState-CuEGVXqh.js";import{_ as Wt,D as Fe,w as Ye}from"./permission-CaRXgle6.js";import{C as G}from"./confirm-DGKnhqaC.js";import{u as Ht}from"./use-mobile-Bdr2kObC.js";import{d as Vt}from"./InfoOutlined-BxU1CEPg.js";import{r as Yt}from"./index-DnlBG2uS.js";import{_ as Xt}from"./useAsync-Co-ihL9T.js";import"./api-BKvFaP38.js";import{I as Zt}from"./index-CS43LeKQ.js";import{T as Gt}from"./TextField-BWghiml0.js";import{L as Kt}from"./LoadingButton-C4TIaNaq.js";import{d as Xe,L as Qt,a as Jt}from"./Delete-DOl4nPF3.js";import{A as en}from"./actions-CchlEsiO.js";var me={},tn=le;Object.defineProperty(me,"__esModule",{value:!0});var Ze=me.default=void 0,nn=tn(ae()),on=e;Ze=me.default=(0,nn.default)((0,on.jsx)("path",{d:"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"}),"ExpandLess");const sn=Me({});sn.interceptors.request.use(n=>{const t=window.blocklet?window.blocklet.prefix:"/";return n.baseURL=t||"",n.url=Y("/api",String(n.url)),n.timeout=2e5,n.params=n.params||{},new URLSearchParams(n.url.split("?")[1]).has("locale")||(n.params.locale=mt()),n},n=>Promise.reject(n));const Ge=(...n)=>Me(...n),rn=(n,t)=>t?n?[n,...Array.isArray(t)?t:[t]]:t:n,an=(n,{width:t=600,height:s=700,name:r="did-domain:popup"}={})=>{const i=window.screenX+(window.innerWidth-t)/2,a=window.screenY+(window.innerHeight-s)/2,l=[`left=${i}`,`top=${a}`,`width=${t}`,`height=${s}`,"resizable=no","scrollbars=yes","status=yes","popup=yes"],c=window.open("",r,l.join(","));if(c===null)throw new Error("Failed to open popup");return c.location.href=pt(n,{opener:window.location.origin}),c},ln="z2qaGosS3rZ7m5ttP3Nd4V4qczR9TryTcRV4p",Ke=async n=>{var d;if(!n||!(n!=null&&n.trim()))return null;const t=Ge(),s=new URL(n);s.pathname="__blocklet__.js",s.searchParams.set("type","json");const{data:r}=await t.get(s.toString()),i=(d=r==null?void 0:r.componentMountPoints)==null?void 0:d.find(f=>f.did===ln),a=new URL(n);a.pathname=i==null?void 0:i.mountPoint;const l=a.toString(),c=Y(l,"/api");return{base:l,api:c}},cn=Be({buy:{button:{title:"Buy DID Domain"},status:{inProgress:"Please wait while we are processing your request, the domain will be automatically resolved to the current app after the purchase...",success:"Purchase completed!"},error:{failedToCreateSession:"Failed to create session"}}}),dn=Be({buy:{button:{title:"购买 DID 域名"},status:{inProgress:"请稍等,我们正在处理您的请求,购买域名后会自动解析到当前的应用...",success:"购买完成!"},error:{failedToCreateSession:"创建会话失败"}}}),un={zh:dn,en:cn};function Qe({delegatee:n,delegateePk:t,didDomainURL:s,locale:r,title:i,onSuccess:a,...l}){const{t:c}=k(),[d,f]=Ut({currentState:1}),m=v.useRef(null),D=V(g=>{var p,w,I,C;g.data.type==="didDomain.success"&&(a==null||a({nftDid:(p=g.data)==null?void 0:p.nftDid,domain:(w=g.data)==null?void 0:w.domain,chainHost:(I=g.data)==null?void 0:I.chainHost}),(C=m.current)==null||C.close(),m.current=null,f({currentState:4}),setTimeout(()=>{f({currentState:8})},2e3))});ht(()=>{var g;try{window.removeEventListener("message",D),(g=m.current)==null||g.close(),m.current=null}catch(p){console.warn("Failed to close popup",p)}});const x=V(()=>{f({currentState:1})}),y=V(()=>{f({currentState:2}),P.run()}),b=V(({sessionId:g,baseURL:p})=>{window.addEventListener("message",D);const w=new URL(p);w.searchParams.set("sessionId",g),w.searchParams.set("locale",r),m.current=an(w.toString());const I=setInterval(()=>{var C;(C=m.current)!=null&&C.closed&&(clearInterval(I),x())},1e3);return()=>clearInterval(I)}),P=xt(async()=>{const g=await Ke(s);if(!g)return null;const p=Ge({baseURL:g.api}),{data:w}=await p.post("/payment/session",{delegatee:n,delegateePk:t});return b({sessionId:w.sessionId,baseURL:g.base})},{manual:!0,debounceWait:500,debounceLeading:!0,debounceTrailing:!1,debounceMaxWait:3e3,refreshDeps:[],onError(g){console.error(g)}});return e.jsxs(e.Fragment,{children:[e.jsx(W,{onClick:y,variant:"contained",startIcon:e.jsx(Ot,{}),...l,children:i||c("buy.button.title")}),e.jsxs(gt,{fullWidth:!0,maxWidth:"xs",open:d.currentState>1&&d.currentState<8,onClose:x,children:[!P.error&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",flexDirection:"column",gap:2},children:[d.currentState===2&&e.jsx(z,{size:50}),d.currentState===4&&e.jsx(Nt,{sx:{color:"primary.main",fontSize:"5rem"}}),d.currentState===2&&e.jsx(q,{children:c("buy.status.inProgress")}),d.currentState===4&&e.jsx(q,{children:c("buy.status.success")})]}),P.error&&e.jsx(ue,{severity:"error",children:c("buy.error.failedToCreateSession")})]})]})}const Je={onSuccess:()=>{},title:""};Qe.defaultProps=Je;function et(n){return e.jsx(ft,{locale:n.locale,translations:un,children:e.jsx(Qe,{...n})})}et.defaultProps=Je;function mn(){var n=v.useRef(!1),t=v.useCallback(function(){return n.current},[]);return v.useEffect(function(){return n.current=!0,function(){n.current=!1}},[]),t}function pn(n,t,s){t===void 0&&(t=[]),s===void 0&&(s={loading:!1});var r=v.useRef(0),i=mn(),a=v.useState(s),l=a[0],c=a[1],d=v.useCallback(function(){for(var f=[],m=0;m<arguments.length;m++)f[m]=arguments[m];var D=++r.current;return l.loading||c(function(x){return Pe(Pe({},x),{loading:!0})}),n.apply(void 0,f).then(function(x){return i()&&D===r.current&&c({value:x,loading:!1}),x},function(x){return i()&&D===r.current&&c({error:x,loading:!1}),x})},t);return[l,d]}function fn(n,t){t===void 0&&(t=[]);var s=pn(n,t,{loading:!0}),r=s[0],i=s[1];return v.useEffect(function(){i()},[i]),r}function tt({nftDid:n,didDomainURL:t,locale:s,sx:r}){const{t:i}=k(),[a,l]=Z({safeIframeRef:null,popoverAnchorEl:null}),c=v.useRef(null),d=X(),f=ce(d.breakpoints.down("md")),m=b=>{l({popoverAnchorEl:b.currentTarget})},D=()=>{l({popoverAnchorEl:null})},x=fn(async()=>{const b=await Ke(t);return b?b.base:null});if(!x.value)return null;if(x.loading)return e.jsx(z,{});const y=Y(x.value,`/embed/domain?nft-did=${n}&locale=${s}`);return e.jsxs(e.Fragment,{children:[e.jsx(h,{component:"img",src:Y(t,"/.well-known/service/blocklet/logo"),alt:"logo",width:16,height:16,onClick:m,sx:rn({cursor:"pointer"},r)}),e.jsx(ze,{id:"popover-info",open:!!a.popoverAnchorEl,anchorEl:a.popoverAnchorEl,onClose:D,anchorOrigin:{vertical:"bottom",horizontal:"right"},children:e.jsx("iframe",{ref:c,title:i("common.subscription"),width:f?"320px":"400px",height:f?"600px":"680px",style:{border:0},src:y})})]})}tt.defaultProps={sx:{}};const hn=n=>["waiting","creating","renewaling"].includes(n);function pe(n){var R,A;const{t}=k(),[s,r]=v.useState(!1),{inService:i}=F(),[a,l]=v.useState(null),{siteId:c,domain:d,onAdd:f,children:m,did:D}=n,[x,y]=v.useState(!1),{api:b,ws:{useSubscription:P}}=F(),{mode:g,actions:{refreshDomainStatus:p}}=Ne(),w=Wt(async()=>{const{cert:S}=await b.findCertificateByDomain({input:{domain:d,did:D}});return S}),I=(S,U)=>{S.domain===d&&(y(!1),r(!1),i&&g!=="setup"&&(U==="success"?O.success(t("setup.domain.genCertSuccess",{domain:S.domain})):U==="error"&&O.error(t("setup.domain.genCertFailed",{domain:S.domain,message:S.message}))))};if(v.useEffect(()=>{var S;w.loading||y(hn((S=w.value)==null?void 0:S.status))},[w.loading,(R=w.value)==null?void 0:R.status]),P(Ee.BlockletEvents.certError,S=>I(S,"error")),P(Ee.BlockletEvents.certIssued,S=>{w.retry(),p(S.domain),I(S,"success")}),w.loading||((A=w.value)==null?void 0:A.status)==="normal")return"";const C=()=>{r(!1),l(null)},T=async()=>{r(!0);try{await b.issueLetsEncryptCert({input:{siteId:c,domain:d,did:D,inBlockletSetup:g==="setup"}}),f(),y(!0)}catch(S){console.error(S),y(!1)}finally{r(!1),l(null)}},u={title:t("router.cert.genLetsEncryptCert.title"),description:e.jsxs("div",{children:[e.jsx(ue,{severity:"success",children:t("router.cert.genLetsEncryptCert.dnsTip")}),t("router.cert.genLetsEncryptCert.description")]}),confirm:t("common.confirm"),onConfirm:T,onCancel:C},L=S=>{S.stopPropagation(),l(u)};return e.jsxs(e.Fragment,{children:[x?e.jsx(B,{title:t("router.cert.issuing"),children:e.jsx(z,{size:12})}):m({loading:s,open:L}),a&&e.jsx(G,{color:"primary",title:a.title,description:a.description,confirm:a.confirm,params:a.params,onConfirm:a.onConfirm,onCancel:a.onCancel})]})}pe.propTypes={domain:o.string.isRequired,did:o.string.isRequired,siteId:o.string.isRequired,onAdd:o.func,children:o.any};pe.defaultProps={onAdd:()=>{},children:null};function fe(n){const{domain:t,domainStatus:s,...r}=n;return Dt(t)||!Ue(t)||yt(s)||s!=null&&s.isHttps?"":e.jsx(pe,{domain:t,...r})}fe.propTypes={domain:o.string.isRequired,domainStatus:o.shape({isHttps:o.bool}).isRequired,did:o.string.isRequired,onAdd:o.func,children:o.any};fe.defaultProps={onAdd:()=>{},children:null};var he={},xn=le;Object.defineProperty(he,"__esModule",{value:!0});var nt=he.default=void 0,gn=xn(ae()),Dn=e;nt=he.default=(0,gn.default)((0,Dn.jsx)("path",{d:"M17 20.41 18.41 19 15 15.59 13.59 17zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5z"}),"CallMerge");const ot=v.createContext({}),{Provider:yn,Consumer:ao}=ot;function jn({children:n}){const[t,s]=Z({domain:"",error:null}),{locale:r}=k(),i={error:t.error,domain:t.domain,setError:a=>{s({error:a})},setDomain:a=>{const l=de(a),c=Oe(l,r);s({domain:l,error:c})}};return e.jsx(yn,{value:{value:i},children:n})}function vn(){const{value:n}=v.useContext(ot);return n}const{joinURL:$e}=jt,bn=vt,st="z2qaGosS3rZ7m5ttP3Nd4V4qczR9TryTcRV4p",Cn=async n=>{var c;if(!n||!(n!=null&&n.trim()))return null;const t=new URL(n);t.pathname="__blocklet__.js",t.searchParams.set("type","json");const{data:s}=await bn.get(t.toString()),r=(c=s==null?void 0:s.componentMountPoints)==null?void 0:c.find(d=>d.did===st),i=new URL(n);i.pathname=r==null?void 0:r.mountPoint;const a=i.toString(),l=$e(a,"/api");return{base:a,api:l,domain:$e(l,"/domains")}};var wn={DID_DOMAIN_SERVICE_DID:st,getDidDomainServiceURL:Cn},K={exports:{}};const Sn=Yt,Rn=["Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Network request failed"];class rt extends Error{constructor(t){super(),t instanceof Error?(this.originalError=t,{message:t}=t):(this.originalError=new Error(t),this.originalError.stack=this.stack),this.name="AbortError",this.message=t}}const An=(n,t,s)=>{const r=s.retries-(t-1);return n.attemptNumber=t,n.retriesLeft=r,n},In=n=>Rn.includes(n),it=(n,t)=>new Promise((s,r)=>{t={onFailedAttempt:()=>{},retries:10,...t};const i=Sn.operation(t);i.attempt(async a=>{try{s(await n(a))}catch(l){if(!(l instanceof Error)){r(new TypeError(`Non-error was thrown: "${l}". You should only throw errors.`));return}if(l instanceof rt)i.stop(),r(l.originalError);else if(l instanceof TypeError&&!In(l.message))i.stop(),r(l);else{An(l,a,t);try{await t.onFailedAttempt(l)}catch(c){r(c);return}i.retry(l)||r(i.mainError())}}})});K.exports=it;K.exports.default=it;K.exports.AbortError=rt;var Pn=K.exports;const En=bt(Pn);function xe({domain:n,resolvedTarget:t,...s}){const{t:r,locale:i}=k();return e.jsxs(h,{sx:{backgroundColor:"rgb(236, 251, 253)",borderColor:"rgb(236, 251, 253)",borderRadius:"8px",padding:"12px"},...s,children:[e.jsxs(h,{display:"flex",children:[r("router.domain.setup.tipStart"),n&&e.jsx(h,{mx:.5,color:"primary.main",fontWeight:"fontWeightBold",children:n}),r("router.domain.setup.tipEnd"),":"]}),e.jsxs(h,{sx:{"&>div":{mb:0},marginTop:"8px"},children:[e.jsx(oe,{label:r("router.domain.setup.recordType"),value:"CNAME",locale:i}),e.jsx(oe,{label:r("router.domain.setup.recordValue"),value:t,locale:i})]})]})}xe.propTypes={domain:o.string,resolvedTarget:o.string.isRequired};xe.defaultProps={domain:""};function oe({locale:n,label:t,value:s}){const r=ce(a=>a.breakpoints.down("md")),i=X();return e.jsx(Zt,{name:t,nameWidth:120,children:e.jsxs(h,{sx:{display:"flex",alignItems:"center",lineHeight:1},children:[e.jsx(q,{component:"span",color:"primary.main",overflow:"auto",sx:r?{maxWidth:"95%",wordWrap:"break-word"}:{wordWrap:"break-word"},children:s}),e.jsx(We,{content:s,locale:n,style:{marginLeft:"4px",color:i.palette.text.secondary}})]})})}oe.propTypes={locale:o.string.isRequired,label:o.string.isRequired,value:o.string.isRequired};function ge({siteId:n,teamDid:t,cnameDomain:s,defaultCustomDomain:r,onInputDomain:i,appId:a,appPk:l,onSuccess:c,onError:d,disabled:f,autoFocus:m,inBlockletSetup:D,shouldCheckDomain:x,onStateChange:y,currentIp:b,resolveDomain:P,...g}){const{t:p,locale:w}=k(),{api:I,info:C}=F(),T=vn(),u=X(),L=Ht({key:"sm"}),[R,A]=Z({submittingDomain:!1,domain:r,error:null,type:C!=null&&C.nftDomainUrl?"nftDomain":"inputDomain",showNFTDomainAuth:!1,showDnsTip:!1}),S=Xt(()=>wn.getDidDomainServiceURL(C==null?void 0:C.nftDomainUrl));if(C!=null&&C.nftDomainUrl&&S.loading)return e.jsx(h,{...g,children:e.jsx(ke,{relative:"parent",children:e.jsx(z,{})})});if(S.error)return e.jsx(h,{...g,children:e.jsx(ke,{relative:"parent",children:S.error.message})});const U=S.value,lt=()=>{A({invalidDNSDomain:null})},ee=async j=>{y(p("setup.domain.addingDomain")),await I.addDomainAlias({input:{id:n,domainAlias:j,teamDid:t,inBlockletSetup:!0}}),A({submittingDomain:!1}),c({domain:j,type:"inputDomain"})},Se=async({domain:j,type:E,nftDid:N,chainHost:_})=>{try{if(!x){if(E==="inputDomain"){await ee(j);return}c({domain:j,type:E,nftDid:N,chainHost:_});return}y({text:p("setup.domain.checkingResolvable")});let $=30;const te=3e3,ut=$*1e3/te,Ae=setInterval(()=>{if($<=0){clearInterval(Ae);return}y({text:`${p("setup.domain.checkingResolvable")} (${$--}s)`})},1e3),Ie=await En(async()=>{const{data:M}=await P(j);if(!M.address)throw new Error("Cannot resolve domain");return M.address},{retries:ut,minTimeout:te,maxTimeout:te,onFailedAttempt:console.error}).catch(console.error);if(clearInterval(Ae),!Ie){const M=p("setup.domain.cannotResolve",{domain:j});if(E==="nftDomain"){O.error(M),c({domain:j,type:"nftDomain"});return}y({text:""}),A({invalidDNSDomain:{domain:j,error:M},domain:j,type:E,submittingDomain:!1});return}if(Ie!==b){const M=p("setup.domain.resolvedAddressError",{domain:j,curDomain:window.location.hostname});if(E==="nftDomain"){O.error(M),c({domain:j,type:"nftDomain"});return}y({text:""}),A({invalidDNSDomain:{domain:j,error:M},domain:j,type:E,submittingDomain:!1});return}if(E==="nftDomain"){c({domain:j,type:"nftDomain"});return}await ee(j)}catch($){O.error($.message),y({text:""}),A({submittingDomain:!1})}},ct=async({domain:j,nftDid:E,chainHost:N})=>{try{const _=qe(j);A({submittingDomain:!0}),await I.addDomainAlias({input:{id:n,type:"nft-domain",domainAlias:_,nftDid:E,chainHost:N,teamDid:t,inBlockletSetup:D}});const $="nftDomain";A({showNFTDomainAuth:!1,type:$}),await Se({domain:_,type:$,nftDid:E,chainHost:N})}catch(_){O.error(_.message)}finally{A({showNFTDomainAuth:!1,submittingDomain:!1})}},dt=async()=>{try{A({submittingDomain:!0});const j=qe(R.domain);if(C.nftDomainUrl&&U&&(await I.isDidDomain({input:{domain:j}})).value===!0){A({showNFTDomainAuth:!0});return}await Se({domain:j,type:R.type})}catch(j){A({submittingDomain:!1}),T.setError(j.message)}},Re=T.error||R.error;return e.jsx(h,{...g,children:e.jsxs(h,{sx:{display:"flex",flexDirection:"column",justifyContent:"flex-start",gap:"1em"},children:[e.jsxs(h,{sx:{display:"flex",flexDirection:"column",gap:"8px"},children:[e.jsx(q,{sx:{color:u.palette.text.primary},children:p("router.domainAlias.add.tips")}),e.jsx(Gt,{sx:{display:"block",marginTop:"8px"},label:p("router.domainAlias.add.domainDescription"),helperText:R.type==="inputDomain"&&Re||p("router.domainAlias.add.helperText"),inputProps:{"data-cy":"domain-name-input"},fullWidth:!0,disabled:f,value:R.domain,size:"small",variant:"outlined",error:!!Re&&R.type==="inputDomain",onChange:j=>{var _;const E=de((_=j.target)==null?void 0:_.value);T.setDomain(E);const N=Oe(E,w);A({domain:E,error:N,type:"inputDomain"}),i({domain:E,error:N,type:"inputDomain"})},autoFocus:m,onBlur:()=>{T.domain||(A({error:null}),T.setError(null))}}),e.jsx(h,{sx:{width:"100%",display:"flex",justifyContent:"flex-end"},children:e.jsx(Kt,{"data-cy":"confirm-add-domain",fullWidth:L,variant:"contained",loading:R.submittingDomain,onClick:dt,children:p("common.add")})}),e.jsxs(h,{sx:{cursor:"pointer",fontSize:"14px",display:"flex",alignItems:"center",gap:"4px",lineHeight:1,color:u.palette.primary.main},onClick:()=>A({showDnsTip:!R.showDnsTip}),children:[e.jsx(Vt,{fontSize:"1em"}),p("router.domainAlias.showTipHint")]}),R.showDnsTip&&e.jsx(xe,{domain:R.domain,resolvedTarget:s,style:{marginTop:"4px"}})]}),R.invalidDNSDomain&&e.jsx(G,{title:p("common.reminder"),description:p("setup.domain.invalidDNSReminder",{error:R.invalidDNSDomain.error}),color:"primary",confirm:p("setup.domain.continueAdd"),onConfirm:()=>ee(R.invalidDNSDomain.domain,R.type),onCancel:lt}),U&&e.jsx(Ct,{open:R.showNFTDomainAuth,popup:!0,useSocket:!1,forceConnected:!1,action:"authorize",baseUrl:U.api,checkFn:wt.create({baseURL:U.api}).get,extraParams:{delegatee:a,delegateePk:l,domain:R.domain},onSuccess:ct,onClose:()=>A({showNFTDomainAuth:!1,submittingDomain:!1}),checkTimeout:60*5e3,showDownload:!1,messages:{title:p("router.domainAlias.addDomainNFT.connect.title"),scan:p("router.domainAlias.addDomainNFT.connect.scan"),confirm:p("router.domainAlias.addDomainNFT.connect.confirm"),success:p("router.domainAlias.addDomainNFT.connect.success")}})]})})}ge.propTypes={siteId:o.string.isRequired,currentIp:o.string,teamDid:o.string.isRequired,cnameDomain:o.string.isRequired,defaultCustomDomain:o.string,onInputDomain:o.func,onSuccess:o.func,appId:o.string,appPk:o.string,disabled:o.bool,autoFocus:o.bool,inBlockletSetup:o.bool,shouldCheckDomain:o.bool,onStateChange:o.func,resolveDomain:o.func,onError:o.func};ge.defaultProps={defaultCustomDomain:"",currentIp:"",onInputDomain:Te,onSuccess:Te,appId:"",appPk:"",disabled:!1,autoFocus:!0,inBlockletSetup:!1,shouldCheckDomain:!1,onStateChange:()=>{},resolveDomain:()=>{},onError:()=>{}};function De({id:n,children:t,title:s,teamDid:r,systemDomains:i,appId:a,appPk:l}){const{t:c}=k(),[d,f]=Z({loading:!1,confirmSetting:null}),m=i.find(b=>He.isDidDomain(b)),D=()=>{f({loading:!1,confirmSetting:null})},x={title:s||c("router.domainAlias.add.title"),description:function(P,g,p){return e.jsx(ge,{siteId:n,teamDid:r,cnameDomain:m,onSuccess:()=>f({confirmSetting:null}),onInputDomain:({domain:w,type:I,error:C})=>{g({...P,domain:w,type:I,__disableConfirm:!!C}),p(C)},appId:a,appPk:l})},confirm:c("common.confirm"),cancel:c("common.cancel"),params:{domain:"",__disableConfirm:!0},onCancel:D},y=b=>{b.stopPropagation(),f({confirmSetting:x})};return e.jsxs(e.Fragment,{children:[typeof t=="function"?t({loading:d.loading,open:y}):e.jsxs(Ve,{onClick:y,className:"rule-action","data-cy":"action-add-domain-alias",children:[d.loading?e.jsx(z,{size:16}):e.jsx(nt,{style:{fontSize:18,marginRight:5}}),c("router.domainAlias.add.title")]}),d.confirmSetting&&e.jsx(G,{title:d.confirmSetting.title,description:d.confirmSetting.description,confirm:d.confirmSetting.confirm,cancel:d.confirmSetting.cancel,params:d.confirmSetting.params,onCancel:d.confirmSetting.onCancel,showConfirm:!1,showCancel:!0,displayError:!1,color:"primary",loading:d.loading,maxWidth:"sm"})]})}De.propTypes={id:o.string.isRequired,children:o.any,title:o.string,teamDid:o.string,systemDomains:o.arrayOf(o.string).isRequired,appId:o.string,appPk:o.string.isRequired};De.defaultProps={children:null,title:"",teamDid:"",appId:null};function kn(n){return e.jsx(jn,{children:e.jsx(De,{...n})})}function ye({appId:n,appPk:t,siteId:s,inBlockletSetup:r,teamDid:i,sx:a,...l}){const{api:c,info:d}=F(),{locale:f,t:m}=k(),D=async({domain:x,nftDid:y,chainHost:b})=>{await c.addDomainAlias({input:{id:s,type:"nft-domain",domainAlias:x,nftDid:y,chainHost:b,teamDid:i,inBlockletSetup:r}})};return e.jsx(et,{delegatee:n,delegateePk:t,didDomainURL:d.nftDomainUrl,onSuccess:D,locale:f,variant:"outlined",sx:a,title:m("router.domainAlias.addDomainNFT.buy"),...l})}ye.propTypes={appId:o.string.isRequired,appPk:o.string.isRequired,siteId:o.string.isRequired,inBlockletSetup:o.bool.isRequired,teamDid:o.string.isRequired,sx:o.object};ye.defaultProps={sx:{}};function je(n){const{t}=k(),[s,r]=v.useState(!1),[i,a]=v.useState(null),{id:l,domain:c,children:d,teamDid:f}=n,{api:m}=F(),D=()=>{r(!1),a(null)},x=async()=>{r(!0);try{await m.deleteDomainAlias({input:{id:l,domainAlias:c,teamDid:f}}),await St(2e3)}catch(P){O.error(P.message)}finally{a(null),r(!1)}},y={title:t("router.domainAlias.delete.title"),description:t("router.domainAlias.delete.description"),confirm:t("common.confirm"),onConfirm:x,onCancel:D},b=P=>{P.stopPropagation(),a(y)};return e.jsxs(e.Fragment,{children:[typeof d=="function"?d({loading:s,open:b}):e.jsxs(W,{edge:"end",onClick:b,size:"small",className:"rule-action",color:"error","data-cy":"action-delete-domain-alias",children:[s?e.jsx(z,{size:16}):e.jsx(Xe,{style:{fontSize:16}}),t("router.domainAlias.delete.title")]}),i&&e.jsx(G,{title:i.title,description:i.description,confirm:i.confirm,params:i.params,onConfirm:i.onConfirm,onCancel:i.onCancel})]})}je.propTypes={id:o.string.isRequired,domain:o.string.isRequired,children:o.any,teamDid:o.string};je.defaultProps={children:null,teamDid:""};function ve({site:n,domain:t,blocklet:s}){const{t:r}=k(),i=t.value===window.location.hostname;return e.jsx(en,{"data-cy":"domain-actions",size:"large",actions:[({close:a})=>{var l;return e.jsx(je,{id:n.id,domain:t.value,teamDid:(l=s==null?void 0:s.meta)==null?void 0:l.did,children:({open:c})=>e.jsx(B,{title:i?r("blocklet.router.currentDomainTip"):"",children:e.jsx("span",{children:e.jsxs(Ve,{disabled:t.isProtected||i,dense:!0,onClick:d=>{a(),c(d)},"data-cy":"action-toggle-block",children:[e.jsx(Qt,{style:{minWidth:24,marginRight:8},children:e.jsx(Xe,{})}),e.jsx(Jt,{primary:r("common.delete")})]},"remove")})})})}]})}ve.propTypes={site:o.object.isRequired,domain:o.object.isRequired,blocklet:o.object.isRequired};ve.defaultProps={};var be={},Tn=le;Object.defineProperty(be,"__esModule",{value:!0});var Ce=be.default=void 0,Ln=Tn(ae()),_n=e;Ce=be.default=(0,Ln.default)((0,_n.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1z"}),"Https");const Q=o.shape({href:o.string,accessibility:o.shape({loading:o.bool,accessible:o.bool}),domainStatus:o.shape({isHttps:o.bool,matchedCert:o.object}),dns:o.shape({resolved:o.bool,ip:o.string})});function we({certificate:n}){const[t,s]=v.useState(null),r=F(),{t:i,locale:a}=k(),l=f=>{s(f.currentTarget)},c=()=>{s(null)},d=!!t;return e.jsxs(e.Fragment,{children:[e.jsx(Ce,{"aria-owns":d?"mouse-over-popover":void 0,onMouseEnter:l,onMouseLeave:c,style:{color:"#44cdc6",fontSize:20,cursor:"pointer"}}),e.jsx(ze,{id:"mouse-over-popover",style:{pointerEvents:"none"},open:d,anchorEl:t,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},onClose:c,disableRestoreFocus:!0,children:e.jsx(Rt,{children:e.jsxs(At,{style:{display:"flex"},children:[e.jsx("div",{children:e.jsx("img",{src:`${r.imgPrefix}/https-certificate-icon.png`,alt:"certificate icon",style:{maxHeight:"100%",maxWidth:"100%"}})}),e.jsxs(q,{component:"div",style:{marginLeft:"16px"},children:[e.jsx(q,{component:"div",style:{fontWeight:"bold"},children:n.domain}),e.jsx(q,{component:"div",children:`${i("common.issuer")}: ${It(n,"issuer.commonName","")}`}),e.jsx(q,{component:"div",children:`${i("router.cert.issuedOn")}: ${Le(n.validFrom,a)}`}),e.jsx(q,{component:"div",children:`${i("router.cert.expiryOn")}: ${Le(n.validTo,a)}`})]})]})})})]})}we.propTypes={certificate:o.object};we.defaultProps={certificate:{}};function H({domain:n,filters:t}){const{t:s}=k(),{value:r,domainStatus:i}=n;if(!Ue(r))return null;let a=null,l=null;const{isHttps:c,matchedCert:d}=i;if(!Pt(r)){const{dns:{resolved:m,ip:D}={}}=i;m||D==="127.0.0.1"?a=e.jsx(B,{title:s("router.domain.verify.ok"),children:e.jsx(Fe,{color:"success"})}):a=e.jsx(B,{title:s("router.domain.verify.notResolved"),children:e.jsx(Fe,{color:"error"})})}c?l=e.jsx(we,{certificate:d}):l=e.jsx(B,{title:s("router.domain.https.bad"),children:e.jsx(Ce,{style:{color:"#D0021B",fontSize:20,cursor:"pointer"}})});const f=t.map(m=>m==="domain"?a:m==="http"?l:null);return v.createElement(v.Fragment,null,...f)}H.propTypes={domain:Q.isRequired,filters:o.array};H.defaultProps={filters:["domain","http"]};const qn=Ye(J,"mutate_blocklets"),Fn=Ye(J,"",kt);function at(n){const{inService:t}=F(),{blocklet:s,loadingRuntimeInfo:r}=Ne();let i=qn;return t&&(i=Fn),e.jsx(i,{...n,blocklet:s,inService:t,loadingRuntimeInfo:r})}at.propTypes={listOnly:o.bool};at.defaultProps={listOnly:!1};function J({hasPermission:n,blocklet:t,loadingRuntimeInfo:s,inService:r,listOnly:i}){var w,I,C,T;const{t:a}=k(),{info:l}=F(),[c,d]=v.useState(!1),f=ce(u=>u.breakpoints.down("md")),m=v.useMemo(()=>{let u=n;return Tt(t)&&(u=u&&r),u},[n,r,t]),{site:D}=t,x=v.useMemo(()=>{var u;return Lt((u=t.site)==null?void 0:u.domainAliases)},[(w=t.site)==null?void 0:w.domainAliases]),y=[],b=[],P=Mt.encode(t.appPid),g=(C=(I=t.environments)==null?void 0:I.find(u=>u.key==="BLOCKLET_APP_PK"))==null?void 0:C.value,p=_t(x);return x.forEach(u=>{const L=u.value||"";He.isDidDomain(L)&&!L.startsWith(P)?b.push(u):y.push(u)}),e.jsxs(e.Fragment,{children:[!i&&e.jsxs(e.Fragment,{children:[e.jsxs(h,{className:"title first",display:"flex",justifyContent:"space-between",alignItems:"center",children:[e.jsx(h,{children:a("common.domain")}),m&&e.jsxs(h,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(kn,{id:D.id,title:a("router.domain.add.title"),teamDid:(T=t.meta)==null?void 0:T.did,appId:t.appPid,appPk:g,systemDomains:p==null?void 0:p.map(u=>u.value),children:({open:u})=>e.jsxs(W,{style:{marginLeft:16},variant:"contained",color:"primary","data-cy":"add-domain-alias",onClick:u,disabled:_e.isInProgress(t.status),children:[e.jsx(Ft,{style:{fontSize:"1.3em",marginRight:4}}),a("common.add")]})}),l.nftDomainUrl&&e.jsx(ye,{variant:"outlined",appId:t.appPid,appPk:g,siteId:D.id,inBlockletSetup:!1,teamDid:t.meta.did})]})]}),_e.isAccessible(t.status)===!1&&e.jsx(h,{mt:1.5,mb:1.5,children:e.jsx(ue,{severity:"warning",children:a("blocklet.router.noRunning")})})]}),e.jsx(h,{sx:{display:"flex",flexDirection:"column",gap:1},children:(c?x:y).map(u=>{var R,A;const L=u.value;return e.jsxs(v.Fragment,{children:[f&&e.jsxs(h,{display:"flex",flexDirection:"column",children:[e.jsx(h,{display:"flex",alignItems:"center",justifyContent:"flex-start",children:e.jsx(se,{domain:u,target:"_blank",children:u.value})}),e.jsxs(h,{display:"flex",alignItems:"center",justifyContent:"space-between",children:[e.jsxs(h,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",gap:1},children:[e.jsx(H,{domain:u,filters:["domain"]},`${u.value}-domain`),e.jsx(ie,{siteId:(R=t.site)==null?void 0:R.id,domain:u,blocklet:t,hasMutatePermission:m})]}),e.jsx(h,{sx:{button:{padding:0}},children:e.jsx(re,{hasMutatePermission:m,site:D,domain:u,blocklet:t})})]})]},L),!f&&e.jsxs(h,{display:"flex",alignItems:"center",justifyContent:"space-between",children:[e.jsxs(h,{display:"flex",alignItems:"center",justifyContent:"flex-start",children:[e.jsx(H,{domain:u,filters:["domain"]},`${u.value}-domain`),e.jsx(h,{sx:{ml:2,mr:.5},children:e.jsx(se,{domain:u,target:"_blank",children:u.value})}),e.jsx(ie,{siteId:(A=t.site)==null?void 0:A.id,domain:u,blocklet:t,hasMutatePermission:m})]}),e.jsx(h,{sx:{button:{padding:0}},children:e.jsx(re,{hasMutatePermission:m,site:D,domain:u,blocklet:t})})]},L)]},L)})}),b.length>0&&e.jsx("div",{style:{marginLeft:"20px",marginTop:"12px"},children:e.jsx(W,{endIcon:c?e.jsx(Ze,{}):e.jsx($t,{}),onClick:()=>d(!c),children:a(c?"common.collapseAll":"blocklet.router.showAllDomains")})}),!x.length&&(s?e.jsx(z,{size:16}):e.jsx(zt,{children:a("common.empty")}))]})}J.propTypes={hasPermission:o.bool,blocklet:o.object.isRequired,loadingRuntimeInfo:o.bool,inService:o.bool.isRequired,listOnly:o.bool};J.defaultProps={hasPermission:!1,loadingRuntimeInfo:!1,listOnly:!1};function se({domain:n,children:t,...s}){const{t:r,locale:i}=k(),{href:a,accessibility:l,value:c}=n,d=v.useCallback(()=>e.jsx(We,{content:de(c),locale:i,style:{marginLeft:"4px",color:"#999",fontSize:"0.8em",verticalAlign:"bottom"}}),[c,i]);return!l||l.loading?e.jsxs(ne,{...s,children:[t,d(),e.jsx(B,{title:r("blocklet.router.checkUrlAccessible"),placement:"top-end",children:e.jsx("span",{className:"status",children:e.jsx(z,{size:12})})})]}):l.accessible?e.jsxs(ne,{...s,children:[e.jsx(h,{component:"a",href:a,target:"_blank",rel:"noopener noreferrer",children:t}),d()]}):e.jsxs(ne,{...s,children:[e.jsx(B,{title:r("blocklet.router.urlInaccessible"),placement:"top-end",children:e.jsx("span",{children:t})}),d()]})}se.propTypes={domain:Q.isRequired,children:o.any.isRequired};const ne=Et.span`
2
- &,
3
- & > * {
4
- color: #222;
5
- font-size: 18px;
6
- }
7
-
8
- & > * {
9
- word-break: break-all;
10
- }
11
-
12
- .status {
13
- margin-left: 8px;
14
- }
15
- `;function re({hasMutatePermission:n,site:t,domain:s,blocklet:r}){const i=X(),{t:a}=k();return n&&!s.isProtected?e.jsx(ve,{site:t,domain:s,blocklet:r}):e.jsx(B,{title:a("blocklet.router.domainLockTooltip"),placement:"top",children:e.jsx(qt,{disabled:!0,size:"large",style:{pointerEvents:"auto",paddingTop:0,paddingBottom:0},children:e.jsx(Bt,{style:{fill:i.palette.text.disabled}})})})}re.propTypes={hasMutatePermission:o.bool.isRequired,site:o.object.isRequired,domain:Q.isRequired,blocklet:o.object.isRequired};function ie({siteId:n,domain:t,blocklet:s,hasMutatePermission:r}){const{info:i}=F(),{t:a,locale:l}=k();return e.jsxs(h,{sx:{display:"flex",justifyContent:"flex-start",alignItems:"center",gap:1},children:[t.type==="nft-domain"&&e.jsx(tt,{locale:l,nftDid:t.nftDid,didDomainURL:i.nftDomainUrl}),e.jsx(H,{domain:t,filters:["http"]},`${t.value}-http`),r&&e.jsx(fe,{siteId:n,domain:t.value,domainStatus:t.domainStatus,did:s.meta.did,children:({open:c})=>e.jsx(W,{sx:{padding:0},size:"small",onClick:d=>c(d),children:a("router.cert.genLetsEncryptCert.title")})})]})}ie.propTypes={siteId:o.string.isRequired,domain:Q.isRequired,blocklet:o.object.isRequired,hasMutatePermission:o.bool.isRequired};export{ge as A,ye as B,jn as D,at as a};
@@ -1 +0,0 @@
1
- import{cx as e,cy as r,cz as s}from"./index-C7otKf8F.js";const a=e(r),t=e(s);export{t as a,a as r};