@abtnode/blocklet-services 1.16.40-beta-20250305-115031-9569f29a → 1.16.40-beta-20250310-113951-17556f90

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 (271) hide show
  1. package/api/index.js +3 -1
  2. package/api/routes/ocap.js +37 -0
  3. package/api/routes/user-session.js +69 -42
  4. package/api/routes/user.js +83 -38
  5. package/dist/assets/ArrowDropDown-Cm4c8BlY.js +1 -0
  6. package/dist/assets/CheckCircle-sJN5S1iC.js +1 -0
  7. package/dist/assets/ChevronLeft-BeX0eKuU.js +1 -0
  8. package/dist/assets/ChevronRight-BWxZ0GT9.js +1 -0
  9. package/dist/assets/Community-CjBbjelR.js +1 -0
  10. package/dist/assets/DeleteOutline-DnZa0RcQ.js +1 -0
  11. package/dist/assets/Done-CUONuiq7.js +1 -0
  12. package/dist/assets/Download-BymJGiyd.js +1 -0
  13. package/dist/assets/EditIcon-ejHqaqyS.js +1 -0
  14. package/dist/assets/Email-5VJNIBMV.js +1 -0
  15. package/dist/assets/Error-B8-wyPeq.js +1 -0
  16. package/dist/assets/ExpandLess-1p_uqVHy.js +1 -0
  17. package/dist/assets/{Google-Bdmd8THj.js → Google-CtwTVSPC.js} +1 -1
  18. package/dist/assets/Holiday-cZPVLjRi.js +1 -0
  19. package/dist/assets/InfoOutlined-aPcuFKow.js +1 -0
  20. package/dist/assets/Launch-CNY19G4F.js +1 -0
  21. package/dist/assets/LaunchOutlined-CBLNAogt.js +1 -0
  22. package/dist/assets/Location-Ddaqgs_o.js +1 -0
  23. package/dist/assets/LockIcon-BSkJrAvs.js +1 -0
  24. package/dist/assets/Meeting-B1Wf1UR0.js +1 -0
  25. package/dist/assets/MoreHoriz-BTnTEmyW.js +1 -0
  26. package/dist/assets/OffSick-DjJVy-QB.js +1 -0
  27. package/dist/assets/Phone-CRdqD7Iq.js +1 -0
  28. package/dist/assets/PlayArrow-BWaTV7IU.js +1 -0
  29. package/dist/assets/QuestionMarkCircle-mj_OeUT2.js +1 -0
  30. package/dist/assets/ServerLogo-DaTXUmCj.js +1 -0
  31. package/dist/assets/Timezone-D9FI_BOf.js +1 -0
  32. package/dist/assets/ViewList-gKXyJK1z.js +1 -0
  33. package/dist/assets/WorkingRemotely-DPFHPJzl.js +1 -0
  34. package/dist/assets/access-control-CRSnnV6w.js +13 -0
  35. package/dist/assets/{actions-BLxaYaFH.js → actions-D8Lw3xe3.js} +1 -1
  36. package/dist/assets/add-component-core-BzFnxw8D.js +765 -0
  37. package/dist/assets/add-resource-C5MQEh_d.js +1 -0
  38. package/dist/assets/addon-DThNrUvh.js +14 -0
  39. package/dist/assets/analytics-BEGoboDQ.js +84 -0
  40. package/dist/assets/api-Dia2_ulr.js +1 -0
  41. package/dist/assets/ar-7cNXWZ2M.js +3 -0
  42. package/dist/assets/audit-logs-BP-xi6Ls.js +35 -0
  43. package/dist/assets/base32-CkPppFg3.js +1 -0
  44. package/dist/assets/branding-D1FesAUj.js +40 -0
  45. package/dist/assets/bundle-avatar-Ne6xQFVO.js +1 -0
  46. package/dist/assets/button-Bzt1WONY.js +1 -0
  47. package/dist/assets/click-to-copy-Ds1jMEk3.js +1 -0
  48. package/dist/assets/{cloneDeep-6qDcDoTp.js → cloneDeep-B_ounxQq.js} +1 -1
  49. package/dist/assets/{complete-D578HSm9.js → complete-Cw_4hnLS.js} +4 -4
  50. package/dist/assets/{component-DCe18oJu.js → component-InzHICwc.js} +1 -1
  51. package/dist/assets/config-Chl1wmCe.js +1 -0
  52. package/dist/assets/{config-BUwSAf4L.js → config-Dneb0aPp.js} +2 -2
  53. package/dist/assets/{config-navigation-CaYhfgdu.js → config-navigation-pBPU0Hd1.js} +6 -6
  54. package/dist/assets/config-space-DAxx03my.js +1 -0
  55. package/dist/assets/confirm-twAiL-Pg.js +7 -0
  56. package/dist/assets/connect-CCL_tilR.js +1 -0
  57. package/dist/assets/connect-CcqhkXJt.js +5 -0
  58. package/dist/assets/connect-to-CdxZm7ze.js +1 -0
  59. package/dist/assets/{content-layout-B8euliPp.js → content-layout-GiaabWKJ.js} +1 -1
  60. package/dist/assets/dashboard-j9G-KyD0.js +218 -0
  61. package/dist/assets/{de-D18LzkQY.js → de-CaFcE4Pk.js} +1 -1
  62. package/dist/assets/delete-confirm-B7RqZZsx.js +1 -0
  63. package/dist/assets/did-address-aMjKReYC.js +1 -0
  64. package/dist/assets/domain-BoBqD6my.js +9 -0
  65. package/dist/assets/domain-action-card-BK6VL21y.js +29 -0
  66. package/dist/assets/domains-CzuWJAXa.js +1 -0
  67. package/dist/assets/{email-KAJlxYPo.js → email-D62rIr3r.js} +2 -2
  68. package/dist/assets/es-D3MSycJa.js +3 -0
  69. package/dist/assets/exchange-passport-C6QFYPcO.js +1 -0
  70. package/dist/assets/form-text-input-BeH6diu_.js +11 -0
  71. package/dist/assets/fr-CFHLZm_-.js +3 -0
  72. package/dist/assets/fuel-D-BDqeNn.js +32 -0
  73. package/dist/assets/fullpage-CaydfTeK.js +1 -0
  74. package/dist/assets/get-safe-url-DmtG3OsE.js +1 -0
  75. package/dist/assets/get-safe-url-DpCrXjD2.js +1 -0
  76. package/dist/assets/hi-yZjHgxBy.js +1 -0
  77. package/dist/assets/home-Cuc7_BZ5.js +1 -0
  78. package/dist/assets/id-CEzizPO2.js +3 -0
  79. package/dist/assets/iframe-BDXgtf3V.js +1 -0
  80. package/dist/assets/index--Cpu5zj7.js +11 -0
  81. package/dist/assets/{index-BhSRK58N.js → index-B17pt9EP.js} +6 -6
  82. package/dist/assets/{index-DoNZBHNi.js → index-BJbC-Qjr.js} +52 -52
  83. package/dist/assets/index-Bcdz6ivm.js +291 -0
  84. package/dist/assets/{index-Mj8Kilqv.js → index-BjppTGHl.js} +1 -1
  85. package/dist/assets/{index-CikqCCcV.js → index-BkVeJ_e6.js} +7 -7
  86. package/dist/assets/index-BxEJpAM1.js +134 -0
  87. package/dist/assets/{index-3unD3ckH.js → index-C0wrMJu_.js} +1 -1
  88. package/dist/assets/{index-Brx6-WRV.js → index-C1klzBZN.js} +1 -1
  89. package/dist/assets/{index-D-W1QzOs.js → index-CMRvG2xO.js} +1 -1
  90. package/dist/assets/index-CTjSo_AM.js +138 -0
  91. package/dist/assets/index-CUYPBPCk.js +1 -0
  92. package/dist/assets/{index-CQoDmhBj.js → index-CVOcFexA.js} +8 -8
  93. package/dist/assets/index-CXzEtZ8-.js +5 -0
  94. package/dist/assets/{index-DmFVT2Y_.js → index-DC8p-aHz.js} +1 -1
  95. package/dist/assets/{index-KQ6M4B59.js → index-DloKVD7k.js} +3 -3
  96. package/dist/assets/index-HAqfkqId.js +4 -0
  97. package/dist/assets/index-KCwqCBtZ.js +1 -0
  98. package/dist/assets/{index-BZu4MJFr.js → index-NOMtolNQ.js} +1 -1
  99. package/dist/assets/index-Y2eFnQMq.js +109 -0
  100. package/dist/assets/index-uoDarD9I.js +1 -0
  101. package/dist/assets/{invitation-C7DIKmu_.js → invitation-CZiw6z3M.js} +7 -7
  102. package/dist/assets/invite-Dsc4lS8l.js +5 -0
  103. package/dist/assets/issue-passport-RgE7dNyX.js +1 -0
  104. package/dist/assets/item-zC83d6Jc.js +2 -0
  105. package/dist/assets/ja-BzgY_7dF.js +3 -0
  106. package/dist/assets/ko-VZQe2VvU.js +3 -0
  107. package/dist/assets/{launch-result-message-DgQUOIWL.js → launch-result-message-DvBZHCJ7.js} +1 -1
  108. package/dist/assets/{layout-C5Uy45Tb.js → layout--BSYMlCG.js} +2 -2
  109. package/dist/assets/list-DTzzPxLP.js +193 -0
  110. package/dist/assets/list-header-Cb3sYAQH.js +57 -0
  111. package/dist/assets/localization-DFOGQYul.js +1 -0
  112. package/dist/assets/{log-5sot6gUJ.js → log-DyxPA0PM.js} +1 -1
  113. package/dist/assets/login-DPEenGU7.js +1 -0
  114. package/dist/assets/login-oauth-callback-B4CoyqBw.js +1 -0
  115. package/dist/assets/logo-uploader-G4QDSsmU.js +133 -0
  116. package/dist/assets/lost-passport-CfqCVhZZ.js +168 -0
  117. package/dist/assets/lottie-web-B6s7dDoL.js +9 -0
  118. package/dist/assets/{omit-CxKFl3YR.js → omit-B4UQ3GvX.js} +1 -1
  119. package/dist/assets/open-window-Ctz49LJV.js +1 -0
  120. package/dist/assets/overview-B32B6ff2.js +12 -0
  121. package/dist/assets/{page-header-BxFwzzsQ.js → page-header-CmCHR1mk.js} +1 -1
  122. package/dist/assets/{permission-CFzf76RO.js → permission-BPUMaZy_.js} +1 -1
  123. package/dist/assets/preferences-BJxsqezy.js +1 -0
  124. package/dist/assets/pt-DpDK-Gpl.js +1 -0
  125. package/dist/assets/publish-resource-DosFKyd_.js +1 -0
  126. package/dist/assets/{react-beautiful-dnd.esm-iBp-yx3f.js → react-beautiful-dnd.esm-BxnrNcYv.js} +4 -4
  127. package/dist/assets/relative-time-BPP0lNWq.js +1 -0
  128. package/dist/assets/ru-BV_Z5dZ0.js +1 -0
  129. package/dist/assets/sdk-DT6U58At.js +1 -0
  130. package/dist/assets/session-BpknZId5.js +1 -0
  131. package/dist/assets/setup-B50yc7wk.js +19 -0
  132. package/dist/assets/{shorten-label-DXP5M5GB.js → shorten-label-dPKLJRIw.js} +1 -1
  133. package/dist/assets/{simple-select-NHdBjvAy.js → simple-select-B4jrDuc2.js} +1 -1
  134. package/dist/assets/{slicedToArray-DPt500Gd.js → slicedToArray-CQCWut1L.js} +2 -2
  135. package/dist/assets/start-N83AUhRn.js +187 -0
  136. package/dist/assets/status-DCrcVds4.js +2 -0
  137. package/dist/assets/{step-actions-DTx1d1Sw.js → step-actions-CQeRAM0V.js} +1 -1
  138. package/dist/assets/studio-BKW7u_X7.js +6 -0
  139. package/dist/assets/{switch-control-BBeZvEAE.js → switch-control-BF9Q5dT3.js} +1 -1
  140. package/dist/assets/th-CbQMXNrp.js +1 -0
  141. package/dist/assets/traffic-DIZGb0Wa.js +37 -0
  142. package/dist/assets/transfer-13oWu-Fn.js +16 -0
  143. package/dist/assets/unsubscribe-BcN3c7Ba.js +1 -0
  144. package/dist/assets/{use-mobile-B-PzRAbm.js → use-mobile-DAiUO9Qj.js} +1 -1
  145. package/dist/assets/{useAsync-DG6gLBRZ.js → useAsync-DOwDXG5n.js} +1 -1
  146. package/dist/assets/{useAsyncRetry-DGf8Nzkx.js → useAsyncRetry-Cbcg1dvJ.js} +2 -2
  147. package/dist/assets/useLocalStorage-BmgSZ9f3.js +1 -0
  148. package/dist/assets/user-center-CI8PKX42.js +79 -0
  149. package/dist/assets/util-CmPA8v8L.js +1 -0
  150. package/dist/assets/util-LJfbsxXq.js +1 -0
  151. package/dist/assets/vendor-arcblock-BSReIGUe.js +2381 -0
  152. package/dist/assets/vendor-hooks-B7GuuzU5.js +7 -0
  153. package/dist/assets/vendor-mui-core-BGkzVIkr.js +266 -0
  154. package/dist/assets/{vendor-mui-x-l1ezRCJc.js → vendor-mui-x-ZeS-_tC0.js} +1 -1
  155. package/dist/assets/{vendor-utils-oUOK1Lc7.js → vendor-utils-DDG_VdF0.js} +1 -1
  156. package/dist/assets/vendor-ux-did-connect-yBp5D51w.js +1073 -0
  157. package/dist/assets/vi-Bz70uJJ-.js +1 -0
  158. package/dist/assets/wrap-locale-DyYbMONP.js +1 -0
  159. package/dist/assets/{zh-Cw2E9SuI.js → zh-nXsPl6mo.js} +1 -1
  160. package/dist/assets/zh-tw-B6GPK4BD.js +3 -0
  161. package/dist/index.html +8 -6
  162. package/dist/service-worker.js +1 -1
  163. package/package.json +31 -30
  164. package/dist/assets/Add-hDPhgcb8.js +0 -1
  165. package/dist/assets/ArrowDropDown-S78kvSgg.js +0 -1
  166. package/dist/assets/CheckCircle-KfKBnFRW.js +0 -1
  167. package/dist/assets/ChevronLeft-CbtVFRMC.js +0 -1
  168. package/dist/assets/ChevronRight-WXIi0AqM.js +0 -1
  169. package/dist/assets/DeleteOutline-CDgHO4-2.js +0 -1
  170. package/dist/assets/Done-Ck5ymNM-.js +0 -1
  171. package/dist/assets/Download-BCt5_Xtj.js +0 -1
  172. package/dist/assets/EditIcon-CMs1pbEF.js +0 -1
  173. package/dist/assets/Error-DunMaBzN.js +0 -1
  174. package/dist/assets/ExpandLess-JQZdwBbU.js +0 -1
  175. package/dist/assets/InfoOutlined-C4DBI2hZ.js +0 -1
  176. package/dist/assets/Launch-C-Inbjf1.js +0 -1
  177. package/dist/assets/LaunchOutlined-CMeuETnG.js +0 -1
  178. package/dist/assets/LockIcon-8k0MoCr8.js +0 -1
  179. package/dist/assets/MoreHoriz-SXaWAchr.js +0 -1
  180. package/dist/assets/PlayArrow-Drngi6DM.js +0 -1
  181. package/dist/assets/QuestionMarkCircle-DRDWkVkn.js +0 -1
  182. package/dist/assets/ServerLogo-zTW7vice.js +0 -1
  183. package/dist/assets/ViewList-CIudz6A1.js +0 -1
  184. package/dist/assets/access-control-f3_Azppj.js +0 -13
  185. package/dist/assets/add-component-core-B7Gu6G9O.js +0 -765
  186. package/dist/assets/add-resource-Dod13n0P.js +0 -1
  187. package/dist/assets/addon-D0oJMRF-.js +0 -14
  188. package/dist/assets/analytics-CgyKfOXs.js +0 -11
  189. package/dist/assets/api-C4EBZ3D8.js +0 -1
  190. package/dist/assets/ar-BvRDrl-h.js +0 -3
  191. package/dist/assets/audit-logs-D3uqnYW7.js +0 -35
  192. package/dist/assets/base32-BkXUMliK.js +0 -1
  193. package/dist/assets/branding-DNZx02j9.js +0 -40
  194. package/dist/assets/bundle-avatar-CPxLfXrI.js +0 -1
  195. package/dist/assets/button-B6x_cuep.js +0 -1
  196. package/dist/assets/click-to-copy-CGY-KfC1.js +0 -1
  197. package/dist/assets/config-AUN0KmC2.js +0 -1
  198. package/dist/assets/config-space-CYs5vTpU.js +0 -1
  199. package/dist/assets/confirm-DysGsWlb.js +0 -7
  200. package/dist/assets/connect-CGmwjDQl.js +0 -5
  201. package/dist/assets/connect-CswAw6jx.js +0 -1
  202. package/dist/assets/connect-to-BQCKg6lB.js +0 -1
  203. package/dist/assets/dashboard-BYP0lFc1.js +0 -218
  204. package/dist/assets/delete-confirm-CxJ_xq3P.js +0 -1
  205. package/dist/assets/did-address-Bf8qM4uR.js +0 -1
  206. package/dist/assets/domain-DziiMtvO.js +0 -9
  207. package/dist/assets/domain-action-card-BhI9_vPO.js +0 -17
  208. package/dist/assets/domains-DQHyaAeW.js +0 -1
  209. package/dist/assets/es-is1Q8RnK.js +0 -3
  210. package/dist/assets/exchange-passport-C3AhVaU1.js +0 -1
  211. package/dist/assets/form-text-input-DGrWoQps.js +0 -11
  212. package/dist/assets/fr-Buu4BG5m.js +0 -3
  213. package/dist/assets/fuel-DerZDNtI.js +0 -32
  214. package/dist/assets/fullpage-DasvZmzb.js +0 -1
  215. package/dist/assets/get-safe-url-Cjj-SJ8P.js +0 -1
  216. package/dist/assets/get-safe-url-D4LuJrKT.js +0 -1
  217. package/dist/assets/hi-DGeeysYm.js +0 -1
  218. package/dist/assets/home-JWShj3xG.js +0 -1
  219. package/dist/assets/id-NlIgbQ92.js +0 -3
  220. package/dist/assets/iframe-CaPZffPT.js +0 -1
  221. package/dist/assets/index--xsUDxoE.js +0 -138
  222. package/dist/assets/index-BLXh-rLN.js +0 -11
  223. package/dist/assets/index-BVEhbxkj.js +0 -1
  224. package/dist/assets/index-C24CwgC5.js +0 -1
  225. package/dist/assets/index-CxSfbL8C.js +0 -4
  226. package/dist/assets/index-D-_kJXEQ.js +0 -134
  227. package/dist/assets/index-DBdIGGHk.js +0 -5
  228. package/dist/assets/index-Doq3Vtou.js +0 -1
  229. package/dist/assets/index-dmAbWYEg.js +0 -291
  230. package/dist/assets/index-javzz5zL.js +0 -109
  231. package/dist/assets/invite-BL1KzmsJ.js +0 -5
  232. package/dist/assets/isEmail-DKEyei-O.js +0 -1
  233. package/dist/assets/issue-passport-00ieW7dP.js +0 -1
  234. package/dist/assets/item-CZ7lE3uJ.js +0 -2
  235. package/dist/assets/ja-ZWJjus9M.js +0 -3
  236. package/dist/assets/ko-BhHmR8oQ.js +0 -3
  237. package/dist/assets/list-DS7ThX70.js +0 -189
  238. package/dist/assets/list-header-CIWer9RC.js +0 -57
  239. package/dist/assets/localization-BqlHRVPq.js +0 -1
  240. package/dist/assets/login-CGLjmpPa.js +0 -1
  241. package/dist/assets/login-oauth-callback-2BZORM7d.js +0 -1
  242. package/dist/assets/logo-uploader-BUbZey33.js +0 -133
  243. package/dist/assets/lost-passport-CsnG9qDe.js +0 -168
  244. package/dist/assets/open-window-OGNFGaoa.js +0 -1
  245. package/dist/assets/overview-DMYIOaJ3.js +0 -12
  246. package/dist/assets/preferences-BcS_Bi9F.js +0 -1
  247. package/dist/assets/pt-BhvKzxfK.js +0 -1
  248. package/dist/assets/publish-resource-PsYRscNX.js +0 -1
  249. package/dist/assets/relative-time-DKp6opcA.js +0 -1
  250. package/dist/assets/ru-Cc01DBPA.js +0 -1
  251. package/dist/assets/sdk-cfSPGhz-.js +0 -1
  252. package/dist/assets/session-OA-ygaPp.js +0 -1
  253. package/dist/assets/setup-58gBrv4L.js +0 -19
  254. package/dist/assets/start-A6ay_10_.js +0 -187
  255. package/dist/assets/status-Ds_eN-NY.js +0 -2
  256. package/dist/assets/studio-DfQNKV55.js +0 -6
  257. package/dist/assets/th-DMmvF5EW.js +0 -1
  258. package/dist/assets/traffic-Gc0h4-UU.js +0 -37
  259. package/dist/assets/transfer-DQE_fCzw.js +0 -16
  260. package/dist/assets/unsubscribe-CdrwBtFq.js +0 -1
  261. package/dist/assets/useLocalStorage-D_fQAujG.js +0 -1
  262. package/dist/assets/user-center-BDUUKdSj.js +0 -71
  263. package/dist/assets/util-Ca9j-VTa.js +0 -1
  264. package/dist/assets/util-x3peBGqE.js +0 -1
  265. package/dist/assets/vendor-arcblock-o7bY298v.js +0 -3401
  266. package/dist/assets/vendor-hooks-Bxo1qD_4.js +0 -7
  267. package/dist/assets/vendor-mui-core-Dh3XBxY7.js +0 -266
  268. package/dist/assets/vi-Bxs4l6dO.js +0 -1
  269. package/dist/assets/wrap-locale-DOh7YZzw.js +0 -1
  270. package/dist/assets/zh-tw-Dqct16yD.js +0 -3
  271. /package/dist/assets/{vendor-arcblock-DhgPdlEj.css → vendor-ux-did-connect-DhgPdlEj.css} +0 -0
@@ -0,0 +1 @@
1
+ import{C as a}from"./vendor-utils-DDG_VdF0.js";a.defaults.timeout=10*1e3;const o=a.create();export{o as a};
@@ -0,0 +1,3 @@
1
+ const e={setup:{connect:{title:"التوقيع مطلوب",scan:"قم بتوصيل محفظة DID الخاصة بك لتصبح مالكًا لهذا الخادم",confirm:"يرجى مراجعة هذه العملية في محفظتك الرقمية",success:"حسابك متصل بالخادم هذا"},keyPair:{title:"مفتاح سري مشتق مطلوب",scan:"قم بتوصيل محفظة DID الخاصة بك لإنشاء زوج المفاتيح لهذا التطبيق",confirm:"يرجى مراجعة هذا العملية على محفظة DID الخاصة بك",success:"تم تخزين زوج المفتاح الخاص بك بأمان"},verify:{title:"مطلوب إثبات الملكية",scan:"قم بتوصيل محفظتك الرقمية لتوفير أوراق اعتماد الملكية",confirm:"يرجى مراجعة هذه العملية على محفظة DID الخاصة بك",success:"حسابك متصل بهذا الخادم."},accept:{title:"قبول شهادات ملكية الخادم المطلوبة",scan:"قم بتوصيل محفظة ديدي الخاصة بك لتوفير أوراق اعتماد الملكية",confirm:"يرجى مراجعة هذه العملية على محفظتك ذات الهوية الرقمية",success:"حسابك متصل بالخادم هذا"},title:"إعداد خادم بلوكليت",steps:{eula:"اتفاقية ترخيص المستخدم النهائي",eulaFooter:"لقد قرأت ووافقت على شروط EULA.",connect:"اتصل بمحفظة DID للمالك",verify:"التحقق من الملكية",basicSettings:"الإعدادات الأساسية",launchApp:"تشغيل التطبيق",complete:"كُلَّ"},congratulation:"تهانينا! خادم بلوكليت الخاص بك آمن وجاهز للاستخدام",redirectButton:"خذني إلى لوحة التحكم!"},login:{loginTo:"الاتصال بـ",description:"فقط صاحب الخادم والأعضاء المعتمدين يمكنهم الوصول إلى لوحة المعلومات",switchDid:{title:"تبديل محفظة DID",scan:"مسح رمز الاستجابة السريعة التالي لتبديل الحساب",confirm:"قم بتأكيد التبديل في محفظة ديد الخاصة بك",success:"تم التحويل بنجاح"},switchSpecifiedDid:{title:"تبديل محفظة DID",scan:"تحتاج إلى تبديل DID إلى {did} لإكمال الإجراءات التالية",confirm:"قم بتأكيد التبديل في محفظة ديد الخاصة بك",success:"تم التبديل بنجاح"},connect:{title:"قم بتوصيل محفظة DID",scan:"قم بتوصيل محفظة DID الخاصة بك لتوفير جواز السفر",confirm:"قم بتأكيد على محفظتك الرقمية",success:"لقد تم توصيلك بنجاح"},verify:{title:"تحقق من الوصول",scan:"قم بتوصيل محفظة DID الخاصة بك لتقديم جواز سفر المالك أو المسؤول",confirm:"أكد في محفظة DID الخاصة بك",success:"تم التحقق من وصولك",abort:"تم إلغاء التحقق من الوصول",description:"تحتاج إلى تقديم جواز سفر {roles} لإجراء هذه العملية، سوف يُطلب منك التحقق مرة أخرى بعد ساعة واحدة من عدم النشاط.",descriptionForDestroy:"يجب عليك تقديم جواز سفر {roles} لإجراء هذه العملية الخطيرة لضمان السلامة."}},acceptServer:{title:"ادّعِ الخادم بملّكية NFT",tooltip:"إذا تلقيت رخصة مالك خادم nft ، فيمكنك المطالبة بجواز مالك الخاص بك باستخدام هذا الرابط."},exchangePassport:{title:"تبادل جواز السفر بـ NFT",success:"لقد تمكنت من تبديل جواز السفر الخاص بك بنجاح وتسجيل الدخول باستخدام جواز السفر",login:"تسجيل الدخول",tooltip:"إذا كان لديك NFT من مجموعة {collections} ، يمكنك تبادل جواز سفرك بهذا الرابط.",dialog:{title:"احصل على جواز سفر مع NFT",scan:"قم بتوصيل محفظة DID الخاصة بك لتقديم NFT الخاص بك للحصول على جواز سفر",confirm:"اختر NFT على محفظة DID الخاصة بك",success:"تم استبدال جواز السفر بنجاح"}},payablePassport:{title:"شراء جواز السفر مع الدفع",tooltip:"إذا لم يكن لديك جواز سفر ، يمكنك شراء جواز سفر عبر هذا الرابط."},sidebar:{dashboard:"لوحة القيادة",blocklets:"بلوكليتس",console:"وحدة التحكم",settings:"الإعدادات"},system:{total:"مجموع",used:"مستخدم",free:"حر",cores:"عدد النوى",instances:"عدد الحالات"},common:{invalid:"غير صالح",about:"حول",access:"الوصول",accessKey:"المفاتيح الوصول",action:"عمل",actions:"إجراءات",add:"إضافة",address:"العنوان",afterTime:"بعد {time}",allow:"السماح",alreadyExist:"موجود بالفعل",approve:"الموافقة",approved:"وافق",appUrl:"عنوان تطبيق",auditLogs:"مسار التدقيق",author:"مؤلف",avatar:"الواقع الافتراضي",back:"عودة",basic:"أساسي",basicInfo:"المعلومات الأساسية",profile:"الملف الشخصي",bind:"ربط",blocklet:"بلوكليت",blocklets:"بلوكليتس",blockletsStorage:"تخزين بلوكليتس",cacheStorage:"تخزين التخزين المؤقت",cancel:"إلغاء",certificate:"شهادة",category:"موضوع السجل",click:"انقر للنسخ",close:"أغلق",selectAll:"اختيار الكل",unselectAll:"إلغاء الاختيار الكل",collapseAll:"طي الكل",community:"رابط المجتمع",complete:"اكتمال",componentBasicInfo:"معلومات القطعة الأساسية",components:"بلوكليتس",config:"تكوين",configuration:"تكوين",configNavigation:"الملاحة",configSuccess:"تم تكوين الإعدادات بنجاح",confirm:"تأكيد",connect:"اتصل",console:"وحدة التحكم",continue:"استمر",continueWith:"الاستمرار مع",copiedTip:"تم النسخ",copyAndClose:"نسخ وإغلاق",copyTip:"انقر للنسخ",coreStorage:"تخزين النواة",cpu:"وحدة المعالجة المركزية",create:"إنشاء",createSuccess:"إنشاء مفتاح وصول",created:"تم الإنشاء في",createdAt:"تم الإنشاء في",createdBy:"تم إنشاءه بواسطة",dAddress:"مُعرِّفات لامركزية (DID)",dataStorage:"التخزين على القرص المحلي",delConfirm:"حذف",delConfirmDescription:"هل تؤكد حذف {data}؟",delete:"حذف",dependents:"المعالين",description:"وصف",detail:"التفصيل",did:"فعل",disk:"قرص",diskInfo:"معلومات القرص",docker:"دوكر هو",documentation:"وثائق",domain:"نطاق",downgradeTo:"خفض إلى",download:"تحميل",downloading:"جار التحميل",edit:"تعديل",email:"البريد الإلكتروني",phone:"هاتف",empty:"فارغ",emptyData:"لم يتم العثور على نتائج",enable:"تمكين",engine:"محرك",env:"بيئة",environment:"بيئة",expandAll:"توسيع الكل",expired:"انتهت الصلاحية",expires:"تنتهي",export:"تصدير",externalIp:"عنوان آيبي الخارجي",failed:"فشل",filter:"تصفية السجل",fingerprint:"بصمة الأصبع",finish:"انتهى",forbid:"منع",free:"حر",general:"عام",gitpod:"Gitpod هو",goEULA:"انقر لعرض 'اتفاقية ترخيص استخدام المستخدم النهائي'",group:"مجموعة",image:"صورة",install:"تثبيت",installed:"تم التثبيت",installedAt:"مثبت في",installSuccess:"تم التثبيت بنجاح",installing:"تثبيت",internalIp:"عنوان بروتوكول الإنترنت الداخلي",introduction:"مقدمة",invite:"دعوة",inviting:"دعوة",ip:"آي بي",isPublic:"عام",issue:"مشكلة",issuer:"المُصدِر",item:"عنصر",joined:"انضم",key:"مفتاح",lastPublishedAt:"نشر في",launcher:"معلومات المطلق",leavePageTip:"هل أنت متأكد من مغادرة الصفحة؟",link:"رابط",loading:"جار التحميل",log:"عرض السجلات",logStorage:"تخزين السجلّ",login:"تسجيل الدخول",logo:"شعار",logout:"تسجيل الخروج",logs:"السجلات",manageTeam:"إدارة الفريق",marketplace:"السوق",member:"عضو",members:"أعضاء",memory:"ذاكرة",meta:"بيانات الوصف",analytics:"تحليلات",runtime:"وقت التشغيل",traffic:"حركة المرور",more:"أكثر",mountPoint:"نقطة الجبل",name:"الاسم",next:"التالي",no:"لا",noData:"لا توجد سجلات لعرضها",notice:"ستحدث أشياء سيئة غير متوقعة إذا لم تقرأ هذا!",noticeTitle:"إشعار",notification:"إشعار",open:"افتح",management:"إدارة",os:"نظام التشغيل",overview:"نظرة عامة",owner:"المالك",page404:"صفحة 404",passport:"جواز سفر",permission:"إذن",port:"ميناء",pre:"سابق",preferences:"تفضيلات",preview:"معاينة",protected:"محمي",protocol:"بروتوكول",purchase:"شراء",readMore:"أكثر",redirect:"إعادة توجيه",redirectCode:"رمز التوجيه",redirectPermanently:"إعادة توجيه دائمة",redirectTemporary:"إعادة توجيه مؤقتة",redirectUrl:"توجيه عنوان URL",rewrite:"إعادة صياغة",release:"الإفراج",rewriteUrl:"إعادة كتابة عنوان URL",reject:"رفض",reload:"إعادة تحميل",remark:"ملاحظة",remove:"إزالة",removeSuccess:"تمت إزالته بنجاح",renew:"تجديد",reportIssue:"الإبلاغ عن مشكلة",required:"مطلوب",requiredErrorText:"{name} مطلوب",resource:"مورد",restart:"أعد التشغيل",restore:"استعادة",retry:"أعد المحاولة",revoke:"إلغاء",role:"دور",running:"جري",runtimeInfo:"معلومات التشغيل",save:"احفظ",saveChanges:"حفظ التغييرات",saveSuccess:"تم الحفظ بنجاح",scheduleFailed:"فشل الجدول الزمني",scheduleSuccess:"تم الجدولة بنجاح",scope:"نطاق",screenshot:"لقطات الشاشة",search:"بحث",security:"أمان",serverDid:"خادم ",serverVersion:"نسخة الخادم",setting:"إعدادات",start:"بدء",status:"الحالة",stop:"توقف",storage:"تخزين",backup:"نسخ احتياطي",store:"متجر",succeeded:"نجح",subscription:"اشتراك",support:"URL أو بريد إلكتروني للدعم",switch:"مفتاح التبديل",team:"الفريق",the:"ال",timeAgo:"قبل {time}",title:"عنوان",type:"النوع",unavailable:"غير متاح",update:"تحديث",updateAvailable:"{version} إصدار جديد متاح",updatedAt:"تم التحديث في",updatedBy:"تم تحديثه بواسطة",upgrade:"ترقية",upgradeTo:"الترقية إلى",upgrading:"الترقية",uptime:"وقت التشغيل",url:"عنوان ورل",valid:"صالح",value:"القيمة",version:"الإصدار",visit:"زيارة",waiting:"انتظار",webhook:"التكاملات",yes:"نعم",invalidParam:"وسائط غير صالحة",launch:"إطلاق",price:"السعر",redirecting:"إعادة توجيه",error:"خطأ",reminder:"تذكير",normal:"طبيعي",gateway:"بوابة",verifyNFT:"تحقق من NFT",errorMessage:"رسالة خطأ",slugifyHint:"نقطة التوصيل الفعلية ستكون: {value}",strategy:"استراتيجية",auto:"سيارة",manual:"دليل",progress:"قيد التقدم",startTime:"وقت البدء",endTime:"وقت الانتهاء",selected:"محدد",timeoutError:"خطأ في المهلة",tags:"وسوم",connectToStore:"الاتصال بالمتجر",uploaded:"تم التحميل",upload:"تحميل",blockletStudio:"استوديو",visitStore:"زيارة المتجر",reconnect:"إعادة الاتصال",change:"تغيير",disconnect:"توقف",sourceApp:"ينتمي إلى التطبيق",visitTarget:"زيارة {name}",upgradeServer:"ترقية الخادم",display:"عرض",requiredInputPlaceholder:"الرجاء إدخال {name}",refresh:"تحديث",moveUp:"تحريك لأعلى",moveDown:"أنزل لأسفل",enabled:"مفعل",disabled:"معطل",homepage:"الصفحة الرئيسية",buy:"شراء",view:"عرض",homepageTip:"الصفحة الرئيسية أو رابط العرض المباشر",repository:"مستودع",expand:"توسيع",collapse:"طي",all:"الجميع",notificationRecords:"الإشعارات",unrecordedUser:"اسم غير مسجل",unrecordedRole:"دور غير مسجل",auditLogsSearch:"البحث حسب الإجراء أو المحتوى",optional:"اختياري",bugOrConnectDomain:"شراء أو ربط نطاق موجود",bugOrConnectDomainTip:"اسم النطاق هو عنوان موقع الويب الفريد الخاص بك على الإنترنت. يمكنك شراء اسم نطاق جديد من DID Names أو أي مسجل نطاقات، أو تكوين اسم نطاق موجود لديك بالفعل.",connectExistingDomain:"ربط النطاق الحالي",domains:"النطاقات",didDomains:"نطاقات DID",manualDomains:"مجالاتي",didDomainsDescription:"يتم إدارة النطاقات التالية تلقائيًا بواسطة خدمة DID:Names.",systemDomains:"مساحة مخصصة من النظام",systemDomainsDescription:"يتم تعيين النطاقات التالية تلقائيًا بشكل افتراضي. على الرغم من إمكانية الوصول إليها، إلا أنها غير مخصصة للاستخدام الإنتاجي ويجب عدم مشاركتها مع العملاء. تهدف هذه النطاقات بشكل أساسي لأغراض التطوير.",manualDomainsDescription:"يتم إدارة النطاقات التالية بواسطة موفر نطاقك وقد تم تكوينها يدويًا للإشارة إلى هنا."},blocklet:{external:"خارجي",notFound:"البلوكليت غير موجود على هذا الخادم ، ربما تم حذفه",installFromMarket:"تثبيت كتل جديدة",installFromUrl:"تثبيت من عنوان الويب",installFromCreate:"أنشئ Blocklet",installFromDiskBackup:"استعادة من هذا الخادم",installedAt:"مثبت في",internal:"داخلي",startedAt:"بدأ في",stoppedAt:"تم التوقف عند",urlEmptyTip:"ليس لديك صلاحية للوصول إلى عنوان URL",goToAddRule:"َاذهب إلى إضافة",services:"الخدمات المكشوفة",upstreamPort:"منفذ الأعلى",noService:"لا يوجد خدمات",appId:"App DID",appPid:"هوية رقمية دائمة",alsoKnownAs:"المعروف أيضًا باسم",skSource:"محفظة المالك",reloadSuccess:"تم إعادة تحميل البلوكليت بنجاح",statusTip:"Blocklet هو {status}",initialUptime:"أقل من 1 م",dashboard:"لوحة تحكم بلوكليت",noComponent:"التطبيق ليس لديه مكونات ولا يمكن بدء تشغيله",fromUrl:{title:"تثبيت بلوكليت",label:"عنوان URL الفرعي للميتا بلوكليت",description:"يجب أن يشير عنوان URL إلى ملف Meta للكتلة. إذا كنت بحاجة للإشارة إلى ملف محلي ، يرجى إضافة بادئة file:// ، على سبيل المثال file: /// Users / foo / blocklet.json.",confirm:"تثبيت",step0:"URL المدخل",step1:"تأكيد المعلومات الوصفية",existTipPrefix:"هناك بلوكليت بنفس DID موجود بالفعل، النسخة هي",existTipSuffix:"يرجى تثبيت إصدار أعلى."},action:{stopDescription:"إيقاف البلوكليت سيجعل واجهاته العامة غير قابلة للوصول، مما قد يتسبب في فشل مستخدم النهاية",stopComponentDescription:"سيجعل إيقاف المكون واجهاته العامة غير متاحة، مما قد يتسبب في فشل المستخدم النهائي.",confirmStop:"نعم، توقف",cancelDownloadDescription:"إلغاء تنزيل {name}؟",removeApplicationDescription:"سيقوم حذف التطبيق بمسح الكود والبيانات التي تم إنشاؤها بواسطة هذا التطبيق والتي لا يمكن استردادها إذا لم يكن لديك نسخ احتياطية",removeApplicationAfterBackup:"قم بعمل نسخة احتياطية وإزالة التطبيق. يمكنك استعادة التطبيق من هذا الخادم إذا كنت بحاجة إليه.",removeApplicationComplete:"قم بإزالة كود وبيانات هذا التطبيق",removeComponentDescription:"سيؤدي إزالة المكون إلى مسح الشيفرة والبيانات التي تم إنشاؤها بواسطة هذا المكون، والتي لا يمكن استرجاعها إذا لم يكن لديك أي نسخ احتياطية.",removeComponentKeepData:"احتفظ بالبيانات لهذا العنصر فقط قم بإزالة الكود",removeComponentComplete:"أزل كل من الكود والبيانات لهذا المكوِّن",confirmRemove:"نعم، احذفه",confirmComponentRemove:"نعم، احذفه",upgradeDescription:"سيؤدي ترقية البلوكليت إلى جعله غير متاح مؤقتًا، هل أنت متأكد من الاستمرار؟",confirmUpgrade:"نعم، قم بالترقية",confirmRestart:"نعم، قم بإعادة التشغيل",restartDescription:"سيتم تعليق البلوكليت مؤقتًا وقد لا يتم تشغيله بسبب تغيير في التكوين"},dev:{modeTip:"يرجى تحويل خادم بلوكليت إلى وضع التصحيح"},index:{tableTitle:"إدارة بلوكلتس الخاص بك",noBlocklet:"لم يتم العثور على بلوكليت في خادم البلوكليت هذا ، يرجى تثبيت بلوكليت من السوق للبدء."},admin:{iframeTitle:"واجهة مشرف بلوكليت",title:"واجهة المسؤول",noContent:"هذا البلوكليت ليس لديه واجهة مشرف",securityError:"خطأ في الأمان: لا يمكن فتح عنوان URL الخاص بالمشرف من خلال الوصول إلى إطار مصدر مشترك عبر الأصل"},config:{name:"اسم التطبيق",description:"وصف التطبيق",sk:"المفتاح السري لمحفظة التطبيق",logoSquare:"شعار التطبيق",logoRect:"شعار مستطيل",logoRectDesc:"عادة ما تُعرض في أعلى الصفحة، افتراضيًا بشعار التطبيق",logoFavicon:"رمز الموقع",logoFaviconDesc:"عادة ما يتم عرضه في شريط عنوان المستعرض أو صفحة علامة التبويب ، افتراضيًا إلى شعار التطبيق",clusterSize:"عدد الحالة عند تشغيل هذا البلوكليت في وضع العنقودية",copyrightOwner:"مالك حقوق النشر (عرض في الذيل)",copyrightYear:"حقوق النشر {year} (عرض في التذييل)",deletable:{name:"حذف الحماية",enable:"لا يمكن حذف هذا البلوكليت حاليًا",disable:"يمكن حذف هذا القطعة حاليًا."},walletType:{name:"نوع المحفظة",description:"نوع محفظة Blocklet الفرعية ، سيتغير الهوية المشتقة"},languages:"اللغات المدعومة",selectLanguagesTip:"عدل الطلب عن طريق إزالة وإعادة الإضافة",languagesSearch:"البحث بواسطة الاسم المحلي للبلد أو الاسم الإنجليزي أو الشيفرة البريدية...",passportColor:"لون جواز السفر",appUrl:"عنوان تطبيق الويب",access:{title:"من يمكنه الوصول؟",description:"اختر كيف تريد التحكم في الوصول إلى تطبيقك.",useDefault:"استخدم الإعدادات الافتراضية",defaultDescription:"استخدم تكوين الافتراضي للتطبيق",whoCanAccess:{all:{title:"متاح للجميع",description:"مفتوح للعالم، يمكن لأي شخص الوصول إليه بدون جواز سفر"},owner:{title:"فقط أنا يمكنه الوصول إليه",description:"يجب عليك تقديم جواز سفر المالك للوصول إلى هذا التطبيق"},invited:{title:"يمكن للأشخاص المدعوين فقط الوصول",description:"يمكنك دعوة الأعضاء لاحقًا في صفحة الإدارة"}},publicToStore:"عام في المتجر",publicInstanceTip:"سيتم عرض عنوان الوصول لهذا البلوكليت في المتجر (مع DID الخاص بك لقبول التبرعات)",updatedTip:"تم تعديل التحكم في الوصول"},changedTip:"تم تحديث التكوين، يرجى إعادة تشغيل البلوكليت",missingRequired:"نقص التكوين المطلوب لبدء البلوكليت",gotoFix:"اذهب للإصلاح",environment:{key:"مفتاح التكوين",value:"قيمة التكوين",keyValueRequired:"يجب تحديد مفتاح وقيمة التكوين",invalidKey:"يجب ألا يبدأ مفتاح التكوين بـ BLOCKLET_ أو COMPONENT_.",deleteForbidden:"هذا التكوين مطلوب ويجب ألا يتم حذفه",tip:"يجب أن لا تحتوي تكوينات التي تبدأ بالبادئة BWA_ على معلومات حساسة لأنها ستُرسل إلى المتصفح."},dangerZone:"منطقة خطرة",blockletTypeChangeTip:"سيتم تغيير نوع المحفظة إلى <b>{value}</b>",appDidChangeTip:"سيؤدي هذا الإجراء إلى تغيير DID التطبيق، مما سيؤدي إلى المشاكل التالية. يُرجى تأكيد ذلك بعد التقييم الدقيق:",appDidChangeTipL1:"سيتم تغيير حساب المستخدم المتصل بهذا التطبيق",appDidChangeTipL2:"سيتغير اسم النطاق DID الخاص بالتطبيق وسيصبح اسم النطاق الأصلي غير صالح",appSkChangeTip:"أنت تقوم بتغيير مفتاح سر التطبيق",walletTypeTitle:"تحديث نوع المحفظة",appSkTitle:"تحديث مفتاح سر تطبيق",sharedToAllComponents:"سيتم مشاركته مع جميع المكونات",session:{ttl:"سيُطلب من المستخدم تسجيل الدخول مرة أخرى إذا لم يكن لديهم أي نشاط على هذا الموقع لمدة {day} يومًا.",day:"{day} يوم",days:"{day} أيام",period:"فترة صلاحية الجلسة",profile:"متطلبات ملف تعريف المستخدم",cacheTtl:"مدة ذاكرة التخزين المؤقت لبيانات جلسة المستخدم (بالثواني)",fullNameEnabled:"طلب اسم المستخدم عند تسجيل الدخول (ممكّن بشكل افتراضي)",avatarEnabled:"اطلب صورة المستخدم عند تسجيل الدخول (مفعل افتراضيًا)",emailEnabled:"طلب بريد المستخدم عند تسجيل الدخول",emailRequireVerified:"يجب التحقق من بريد المستخدم الإلكتروني قبل تسجيل الدخول",emailRequireUnique:"طلب بريد المستخدم ليكون فريدًا عبر جميع المستخدمين",phoneEnabled:"طلب رقم هاتف المستخدم عند تسجيل الدخول (غير مدعوم بعد)",phoneRequireVerified:"يجب التحقق من رقم هاتف المستخدم قبل تسجيل الدخول",phoneRequireUnique:"تتطلب رقم هاتف المستخدم أن يكون فريدًا عبر جميع المستخدمين",emailTrustOauthProviders:"ثق بمزودي OAuth لحالة التحقق من البريد الإلكتروني",enableDomainBlackList:"تمكين قائمة النطاق البريدي السوداء (رفض النطاقات البريدية المدرجة)",enableDomainWhiteList:"تمكين قائمة النطاقات البيضاء للبريد الإلكتروني (السماح فقط لنطاقات البريد الإلكتروني المدرجة بالدخول)",addDomain:"أضف مصدرًا لاسترداد القائمة (بتنسيق نص عادي ، واحدة لكل سطر)"},clearCache:{name:"إدارة التخزين المؤقت",purpose:"إدارة الملفات المخزنة في خدمات الموجه والبلوكلت",title:"تأكيد مسح الذاكرة المؤقتة؟",action:"مسح الذاكرة المؤقتة",success:"تم مسح {count} إدخالات التخزين المؤقت بنجاح",description:"هل أنت متأكد أنك تريد مسح الملفات المخزنة المؤقتة في جهاز التوجيه وخدمة كتلة الحجب؟ قد يتسبب هذا الإجراء في تراجع طفيف في الأداء على المدى القصير."},tenantMode:{name:"وضع متعدد المستأجرين",multiple:"يعمل هذا البلوكليت في وضع عدة مستأجرين ، يجب عزل البيانات لكل مستأجر",single:"تعمل هذه البرمجية النصية في وضع المستأجر الواحد ، حيث يتم مشاركة جميع البيانات."},splashPortrait:"صورة بورتريه",splashLandscape:"تطاير المناظر الطبيعية",splashPortraitDesc:"يتم عرضه عندما يتم تشغيل البلوكليت في الوضع العمودي",splashLandscapeDesc:"يتم عرضه عندما يتم تشغيل البلوكليت في وضع الأفق",rotateSessionKey:{name:"تدوير ملح الجلسة",purpose:"ملح الجلسة هو قيمة عشوائية تُستخدم لتعزيز أمان الرموز المميزة للجلسة. انقر على الزر لتدوير ملح الجلسة يدويًا، مما يساعد في تقليل مخاطر اختراق رمز تسجيل الدخول.",title:"تأكيد دوران ملح الجلسة؟",action:"قم بتدوير الملح",success:"تم تدوير ملح الجلسة بنجاح",description:"هل أنت متأكد من أنك تريد تدوير ملح الجلسة؟ ستؤدي هذه العملية إلى جعل جميع رموز تسجيل الدخول الحالية غير صالحة وسوف تجبر المستخدم على تسجيل الدخول مرة أخرى، بما في ذلك رمز تسجيل الدخول الخاص بك."},ogImage:"خلفية Open Graph",ogImageDesc:"خصّص صورة الخلفية لجميع الصور المفتوحة، يجب أن تعمل بشكل جيد مع النص الأبيض",migrate:{button:"الانتقال باستخدام محفظة DID",title:"تأكيد دوران تطبيق DID؟",description:"هل أنت متأكد من رغبتك في تدوير معرف التطبيق؟ ستؤدي هذه العملية إلى إبطال جميع الجلسات الحالية وإجبار المستخدمين على تسجيل الدخول مرة أخرى، بما في ذلك جلستك الخاصة."},vault:{name:"Vault DID",title:"قم بتكوين Vault",desc:"استخدم Vault لإضافة طبقة إضافية من الأمان للأموال التي يديرها هذا Blocklet",tip:"أدخل عنوان الخزينة للمتابعة، يجب عليك إثبات ملكية عنوان الخزينة قبل أن يمكن استخدامه.",address:"عنوان الخزنة",verified:"تم التحقق من Vault",current:"الخزينة الحالية",error:{invalid:"يجب أن يكون عنوان Vault معرفًا لامركزيًا صالحًا",holder:"يجب أن يكون عنوان Vault حامل رمز صالح على البلوكشين، عناوين الرمز/الأصول/المصنع/الحصة غير مدعومة",duplicate:"عنوان Vault موجود بالفعل"},role:"نوع الدور",firstSeen:"شوهد لأول مرة",lastSeen:"آخر ظهور",migratedFrom:"نُقِل من",migratedTo:"تم النقل إلى",commit:{title:"تحقق من ملكية Vault",scan:"امسح رمز QR أدناه للتحقق من ملكية الخزنة",confirm:"تأكيد باستخدام DID Wallet",success:"تم تكوين Vault بنجاح"}},changeImageTip:"نصيحة: انقر فوق معاينة الصورة لتغييرها."},overview:{source:"المَصْدَر",deployedFrom:"نشرت من",accessControl:"مراقبة الوصول",viewInStore:"عرضه في المتجر"},diskInfo:{empty:"معلومات القرص غير متاحة الآن!",appDir:"دليل التطبيقات",dataDir:"دليل البيانات",logDir:"دليل السجلات",cacheDir:"مجلد التخزين المؤقت"},runtimeInfo:{noRunning:"ستكون المعلومات التشغيلية متاحة عند تشغيل البلوكليت!",memoryUsage:"استخدام الذاكرة",cpuUsage:"استخدام وحدة المعالجة المركزية",uptime:"وقت التشغيل",port:"ميناء",processId:"رقم العملية"},dist:{downloadLink:"رابط التنزيل",verify:"تحقق"},status:{added:"تم الإضافة",waiting:"انتظار",downloading:"جارٍ التحميل",extracting:"استخلاص",installing:"تثبيت",upgrading:"الترقية",installed:"مثبت",created:"تم الإنشاء",starting:"بدء",running:"جري",stopping:"توقف",stopped:"تم إيقافه",error:"خطأ",deleting:"حذف",corrupted:"فاسد",purchasing:"في انتظار الشراء",purchased:"مشترى",verifying:"التحقق من الشراء",resource:"مورد"},list:{download:"تحميل",star:"نجم",searchPlaceholder:"ابحث عن بلوكليت بالاسم أو DID"},component:{container:"تكوين عالمي",showContainer:"عرض الإعدادات العامة",didSpaceConfig:"ضبط مساحات DID",didSpaceConfigTip:"أكمل عملية التفويض التالية لتخزين بيانات التطبيق في مساحات DID",didSpaceConnected:"تم تفويض التخزين ل: {endpoint}",checkUpdateTitle:"التحقق من التحديثات",updateTitle:"تحديث المكونات",noUpdate:"لا توجد مكونات للتحديث",add:"إضافة مكون",selectComponent:"اختر بلوكليت",selectRegistry:"اختر مخزن بلوكليت",selectRegistryTip:"يمكنك تبديل مخزن البلوكليت لرؤية المزيد من العناصر",selectInstance:"اختر النموذج",selectInstanceTip:"يمكنك تحديد نسخة موجودة أو إنشاء نسخة جديدة. ستستخدم النسخ الموجودة التكوينات والبيانات المحفوظة سابقًا.",newInstance:"إنشاء نسخة جديدة",noComponent:"لا توجد مكونات",mountPoint:"ما هو نقطة الارتباط؟",mountPointTip:"إذا قمت بتعيين نقطة الانطلاق إلى '/ بادئة-الخاصة-بي', فسيتم توجيه جميع الطلبات التي تبدأ بهذه النقطة إلى المكون المحدد.",delete:"حذف المكون",deleteDescription:"لن يمكن الوصول إلى هذا العنصر بعد الحذف. تأكيد الحذف؟",purchase:"الدفع مطلوب",tip:{stopBlocklet:"يرجى التوقف عن تشغيل البرنامج النصي Blocklet أولاً",requiredBy:"المكون مطلوب بواسطة {name}"},choose:"اختر",addWithName:"أضف بلوكليت إلى {name}",installingCanCloseWindowTip:"تثبيت المكون في الخلفية ، يمكنك إغلاق هذه النافذة بأمان",installSuccessTip:"تهانينا، تم تثبيت المكون بنجاح! يمكنك النقر فوق زر البدء لبدء تشغيله.",missDownloadTokenTip:"لا يمكن إضافة مكون مدفوع دون وجود رمز تنزيل صالح",purchaseComponentSecondCheckTip:"يرجى تقديم شراء بلوكلت NFT الخاص بك للمتابعة",installComponentError:"حدث خطأ أثناء تثبيت المكون، يرجى المحاولة مرة أخرى",downloadComponentError:"حدث خطأ أثناء تنزيل المكون، يرجى إعادة المحاولة مرة أخرى",addComponentTip:{introduction:"مرحبا بكم في معالج إضافة المكون",isPurchase:"يجب التحقق من الـ NFT قبل استخدام <b>{name}</b> كمكون",belowInformation:"أدناه هي المعلومات للمكون:",verifyNFT:"يرجى تحديد طريقة التحقق من NFT",config:"يرجى ملء تكوين العنصر",environment:"يرجى ملء بيئة المكون",fromUrl:"إضافة بلوكليت من رابط"},addNext:"أضف {name}",upgradeNext:"ترقية {name}",setting:"الإعدادات",noDependencies:"لا يوجد لدى {name} أي تبعيات",relatedComponents:"النماذج المرتبطة",required:"مطلوب",installed:"مثبت",installingTip:"جاري تثبيت المكون، الرجاء الانتظار...",upgrade:"ترقية",startTip:"بعد تثبيت المكون، تحتاج إلى النقر فوق زر البدء لبدء تشغيله."},router:{urlPath:"مسار عنوان URL",noRunning:"البلوكليت لم يبدأ حتى الآن. غير قادر على الوصول من خلال العنوان التالي!",securitySetting:"ضبط الأمان",checkUrlAccessible:"تحقق من إمكانية الوصول إلى العنوان",urlInaccessible:"قد يكون بسبب أسباب الشبكة، العنوان غير متاح مؤقتاً",noAccessibleUrl:"لا يوجد عنوان URL قابل للوصول",domainLockTooltip:"لا يمكن تعديل نطاق تم إنشاؤه بواسطة النظام.",urlLockTooltip:"لا يمكن تحرير مسار عنوان URL الذي تم إنشاؤه بواسطة النظام.",showAllDomains:"عرض جميع النطاقات",showAllDIDs:"عرض جميع DIDs",currentDomainTip:"أنت تستخدم هذا النطاق للوصول إلى الصفحة الحالية"},export:{title:"تصدير البلوكليت",name:"اسم الحزمة",nameTip:'مثال: "اسم-بلوكلت-الخاص-بي" أو "@اسم-نطاقي/اسم-بلوكلت"',result:"ما القادم",exportSource:"مصدر التصدير",success:"تم تصدير البلوكليت بنجاح",resultTipStart:"مع",resultTipEnd:"يمكنك بناء ونشر هذا البلوكليت في غضون دقائق",uploadedComponentTip:"لا يمكن تصدير المكونات المحملة مباشرة:"},migrate:{title:"هجّر التطبيق",scan:"يرجى توصيل محفظة DID الخاصة بك لإنشاء مفتاح مزدوج لهذا التطبيق",confirm:"يرجى مراجعة هذه العملية في محفظتك DID",success:"تم نقل التطبيق الخاص بك بنجاح، ستتم تحديث الصفحة في {sec} ثانية.",intro:{l1:"انقر هنا",l2:"يرجى ترحيل تطبيقك إلى النسخة الجديدة (يتم تعطيل التغييرات قبل اكتمال عملية الترحيل)",l3:"سيتم التحكم الكامل في تطبيق نظام FID من محفظة نظام FID الخاصة بك.",l4:"سيتم ترحيل بيانات التطبيق ولن يكون هناك مزيد من التغييرات المطلوبة.",l5:"ستمنحك الهيكلية الجديدة للتطبيق المزيد من المرونة عند تغيير المكونات.",l6:"4. يُرجى عدم تغيير نقاط توصيل المكون قبل صدور الإصدار الجديد للمكون."},tip:{duplicate:"ابحث عن مكون مكرر {name}، يرجى حذف المكونات غير الضرورية والهجرة مرة أخرى",running:"يرجى التوقف عن حظر blocklet قبل الهجرة"}},error:{isRunning:"تعمل بلوكليت، يرجى توقيفها أولاً",isInProgress:"التطبيق قيد التقدم، يرجى الانتظار حتى ينتهي"},publish:{createResource:"إنشاء مورد",addResource:"أضف الإصدار",productTitle:"منتج",versionTitle:"تخطيط الإصدار",imgTitle:"الصور",resourceTitle:"المحتوى",blockletEmptyTip:"لا توجد أي كتل هنا",createBlockletTip:"يمكنك إنشاء وحدة جديدة من خلال الموارد والمكونات والتكوين الحالي في هذا التطبيق",createBlocklet:"بلوكليت جديد",componentNotRunning:"البلوكليت {name} لا يعمل، يرجى تشغيله أولا",releaseEmptyTip:"لا توجد أي إصدارات هنا",createReleaseTip:"يمكنك إنشاء إصدار للـ بلوكليت، جنباً إلى جنب مع ملاحظات الإصدار والموارد، ليستخدمها الآخرون.",createRelease:"إنشاء إصدار",deleteReleaseTip:"لا يمكن استعادة الإصدار بعد الحذف",createBlockletDid:"أنشئ من محفظة DID",createReleaseSuccess:"تم إنشاء الإصدار بنجاح",saveDraftSuccess:"تم حفظ المسودة بنجاح",connect:{title:"إنشاء Blocklet DID",scan:"امسح الرمز الشريطي أدناه لتوليد Blocklet DID",confirm:"قم بتأكيد استخدام محفظة DID",success:"تم إنشاء معرف Blocklet DID ، يرجى متابعة عملية الخاصة بك"},saveDraft:"حفظ المسودة",releaseNote:"ملاحظة الإصدار",errorTip:{noDid:"مطلوب معرف Blocklet DID",noTitle:"عنوان كتلة مطلوب",noVersion:"النسخة المطلوبة لـ بلوكلت مطلوبة",noDescription:"الوصف المطلوب للكتلة",noNote:"ملاحظة الإصدار مطلوبة",inValidVersion:"نسخة الوحدة غير صالحة",noResource:"يرجى تحديد موارد التحميل لتضمينها في البلوكليت",noFirstDid:"يرجى إنشاء بلوكليت ديد أولاً",invalidUrl:"الرجاء إدخال عنوان ويب صالح",invalidUrlOrEmail:"يرجى إدخال عنوان URL أو بريد إلكتروني صالح"},packTip:"حالياً ، يمكن تثبيت البلوكليتس مباشرة كتطبيقات. سيتم تضمين المكونات وتكوينات التطبيق تلقائيًا في البلوكليت.",resourceChangedWarning:"لقد قمت بتعديل المورد، يرجى حفظه في الوقت المناسب",installResourceTip:"رابط التثبيت:",installResourceTip2:"إذا كنت ترغب في رؤية المزيد من النصائح، يرجى زيارة",installResourceHelp:"وثيقة المساعدة",componentIncluded:"مدرج",componentForceRequired:"مطلوب",download:"تحميل {name}",delete:"احذف {name}",copyInstallUrl:"انسخ عنوان URL للتثبيت",install:"تثبيت {name}",publishToStoreSuccess:"تم نشر البلوكليت بنجاح على المتجر",connectStoreSuccess:"تم الاتصال بمتجر البلوكليت بنجاح",uploadToStoreSuccess:"تم تحميل بلوكليت بنجاح في المتجر ، تحتاج إلى نشره في المتجر",viewLastRelease:"عرض آخر إصدار",reconnectStoreTip:"بعد إعادة الاتصال، سيتم ربط مطور جديد. هل أنت متأكد أنك تريد إعادة الاتصال؟",deleteProject:{title:"احذف {name}",scan:"امسح رمز الاستجابة السريعة أدناه لحذف {name}",confirm:"يرجى تأكيد استخدام محفظة الهوية اللامركزية",success:"تم حذف مشروع Blocklet ، يرجى متابعة العملية الخاصة بك.",tip1:"لن يكون من الممكن استعادة مشروع Blocklet بعد الحذف",tip2:"لن تكون قادرًا بعد الآن على نشر إصدارات جديدة للبلوكليت المحذوف ، مما يعني أن البلوكليت لن يتم تحديثه في المتجر بعد الآن.",tip3:"سيؤدي حذف البلوكليت إلى ضرورة نشر الإصدار الحالي منه في المتجر.",description:"بعد حذف البلوكليت، ستواجه المشكلات التالية، هل أنت متأكد أنك تريد حذفه؟"},resourceTip:"حاليًا ، كما هو الحال بوصفه كتلة مورد ، لا يمكن تثبيته مباشرة من المتجر.",whyCantSeeInStore:"لماذا لا أستطيع رؤية هذا البلوكليت في المتجر؟",whyCantSeeResourceBlockletInStore:"تم إخفاء Blockletات الموارد من صفحة قائمة المتجر افتراضيًا",tenantScope:"مستأجر",blockletStudio:"استوديو بلوكليت",allComponentsNotRunning:"لا يعمل بلوكلتس، يرجى تشغيله أولاً",resourceEmptyTip:"لا توجد موارد متاحة",steps:{resources:"الرجاء تحديد الموارد التي يجب ربطها معالبلوكليت الحالي ، حيث ستتم تثبيت هذه الموارد جنباً إلى جنب مع البلوكليت.",blocklets:"حدد العناصر النمطية لتكون مرتبطة.",version:"تعيين نسخة الإصدار وسجل التغييرات.",introduction:"يمكن أن يسلط مقدمة واضحة الضوء بشكل فعال على Blocklet الخاص بك. يمكنك استخدام بناء Markdown لكتابته ومعاينته.",branding:"صف معلوماتك الأساسية للبلوكليت الخاص بك. ستُعرض هذه المعلومات للمستخدمين في المتجر."},branding:"العلامة التجارية",brandingHelp:"سيتم عرض مزيد من المعلومات حول البلوكلت في المتجر",resourceSelect:"اختر موردًا من Blocklets",resourceUpload:"تحميل المورد من القرص الخاص بك (الفهرس.html مطلوب في الأرشيف)",deleteStoreTip:"هل أنت متأكد أنك تريد إزالة {name} من قائمة متجر الاتصال؟",disconnectStoreTip:"سيتم حذف بلوكليت من المخزن بعد الفصل. هل أنت متأكد من أنك تريد الفصل؟",connectOrUpload:"الاتصال أو التحميل",developerInfo:"معلومات المطور",autoUploadTip:"تحميل البلوكليت تلقائيًا إلى المتجر بعد الإصدار",possibleSameStoreTip:"حاول حل بلوكليتات الاعتماد في نفس متجر البلوكليت قبل كل تحميل إذا كان ذلك ممكنًا",needProjectId:"يرجى إنشاء مشروع أولاً",projectSettings:"إعدادات المشروع",noStoreSelected:"يرجى تحديد أحد المتاجر الحالية أو إضافة متجر جديد للمتابعة",installToThisServer:"تثبيت على هذا الخادم",forceResourceBlocklet:"القوة معرفة بأنها كتلة مستندة إلى المورد",resourceDocker:"بناء Blocklet من Docker",resourceSelectTitle:"مورد",resourceUploadTitle:"تحميل",resourceDockerTitle:"Docker",resourceDockerInputTip:"يرجى إدخال أمر docker run",docker:{pleaseInputDockerCommand:"يرجى إدخال الأمر docker run",volumeTip:"يجب أن يبدأ الحجم بـ $BLOCKLET_DATA_DIR أو $BLOCKLET_APP_DIR",volumeTip2:'لا يمكن أن يحتوي الحجم على ".."',noAllowTheArg:"الحجة غير مسموح باستخدامها في أمر docker run",needCustomInput:"قم بتعيين القيمة عند تثبيت Blocklet",dockerParams:"معلمات Docker",dockerCommand:"أمر Docker",dockerImageName:"اسم صورة Docker",addItem:"إضافة معلمة Docker Run",envKey:"مفتاح متغير البيئة",publishTips:"سيتم تعيين المنفذ الخارجي النهائي تلقائيًا بواسطة Blocklet",volumeTips:"يجب أن يبدأ الحجم بـ $BLOCKLET_DATA_DIR أو $BLOCKLET_APP_DIR",modifyParam:"تعديل Docker Run Param",modifyEnv:"تعديل متغير البيئة",paramDetail:"تفاصيل المعلمة",description:"الوصف",secure:"آمن",shared:"مشترك",required:"مطلوب",prefix:"بادئة",path:"مسار",name:"اسم",portType:"نوع المنفذ",dockerImageNameError:"لا يمكن أن يحتوي اسم Docker Image على مسافات",autoGenerated:"تم الإنشاء تلقائيًا",dockerCMDError:"Docker CMD يدعم فقط الأحرف البسيطة"}},titleValidationError:"يجب أن يكون طول العنوان بين 3 و 40 حرفًا",descriptionValidationError:"يجب أن تكون طول الوصف بين 3 و 80 حرفًا",whyNeedAppPid:"إذا تم نقل تطبيقك، فإن DID الدائم هو DID الذي تم إنشاؤه عند تثبيت Blocklet هذا في الأصل.",usingDocker:"سيعمل هذا البلوكليت باستخدام دوكر.",gotoVisitError:"لا يمكن الوصول إلى عنوان URL ل Blocklet، يرجى المحاولة مرة أخرى لاحقًا",usingIsolation:"سيتم تشغيل Blocklet هذا باستخدام عزل الشبكة",dockerImage:"يدعم Docker",mountPoint:{description1:"قد يؤدي هذا التغيير إلى تعطيل عناوين URL التي تحتوي على نقطة التعلق القديمة، مما قد يؤدي إلى:",case1:"مراجع موارد معطلة بين Blocklets في هذا التطبيق",case2:"عنوان URL معطل إذا كنت قد شاركته علنًا",description2:"يمكنك إعداد إعادة توجيه من نقطة التثبيت القديمة إلى الجديدة لتقليل التغييرات الكاسرة المحتملة."}},dashboard:{nodeDid:"عقدة",ownerDid:"مالك",routingEngine:"محرك التوجيه",ownerNftURL:"مالك NFT",expirationLeft:"المدة المتبقية للانتهاء",startFromCrashTip:"لم يتم إغلاق خادم Blocklet بشكل طبيعي في المرة السابقة ، يُرجى بدء تشغيل البلوكليتات التي يجب تشغيلها يدويًا.",runtimeConfig:{blockletMaxMemoryLimit:"حد الذاكرة الأقصى للبلوكليت",daemonMaxMemoryLimit:"حد ذاكرة الخادم الأقصى",proxyMaxMemoryLimit:"حد ذاكرة حافلة الأحداث الأقصى"}},store:{nameSort:"الاسم",popularSort:"شهرة",headerDescription:"ابحث وقم بتثبيت البلوكليتس الخاصة بك",detail:{purchase:"شراء {name}",open:"افتح {name}",install:"قم بتثبيت {name}",upgrade:"ترقية {name}",empty:"لا مقدمة"},blockletRegistry:{changeFailed:"فشل تغيير مخزن البلوكلت:",addFailed:"فشل إضافة متجر البلوكليت",editFailed:"فشل تحرير Blocklet Store",switchRegistry:"تبديل متجر بلوكليت",addRegistry:"أضف متجر البلوكليت",editRegistry:"تحرير متجر بلوكلت",deleteRegistry:"حذف متجر البلوكليت",haveSameRegistry:"المتجر نفسه موجود",registryName:"اسم متجر البلوكليت",registryUrl:"رابط متجر البلوكليت",registryNameEmpty:"لا يمكن أن يكون اسم متجر Blocklet فارغًا",registryUrlEmpty:"لا يمكن أن يكون عنوان متجر بلوكليت فارغًا",deleteDesc:"هل ترغب في تأكيد حذف مستودع البلوكلت {name}؟",confirmDesc:"الرجاء إدخال {name} للحذف"},purchase:{title:"شراء {name}",confirmed:"تم التحقق من شراءك لكتلة NFT",declined:"لم تقدم طلب شراء صالح لـ Blocklet NFT",waiting:"في انتظار اتمام الشراء...",purchase:{title:"شراء NFT",description:"ادفع بعض الرمز قبل تثبيت هذا البلوكلت إذا لم تكن قد اشتريت هذا البلوكلت."},verify:{title:"تحقق NFT",description:"سيتم التحقق من NFT الخاص بك قبل تثبيت هذا البلوكليت إذا قمت بشرائه واحتفظت بشهادة NFT الخاصة بالشراء في محفظة DID الخاصة بك.",auth:{title:"شراء إثبات الهوية المطلوبة",scan:"قم بتوصيل محفظة DID لتوفير شراء منصة NFT",confirm:"قم بمراجعة هذه العملية على محفظة الهوية الرقمية الخاصة بك",success:"تم التحقق من NFT الخاص بك للشراء وبدأ التثبيت."}},auth:{title:"شراء {name}",scan:"اِمسَحْ رَمز الاستجابة السريعة التالي باستخدام محفظة الهويّة الرقميّة الخاصّة بك",confirm:"أكد على محفظتك من معرف الهوية",success:"تم إرسال شراء NFT إلى محفظة DID الخاصة بك"},launch:"بدء {name}",autoLaunch:"تم شراء {name} بنجاح، يتم إعادة توجيهه إلى صفحة التشغيل..."},tooltip:{upgradeServer:"تتطلب Blocklet Blocklet Server إصدار {version}، Blocklet Server الإصدار الحالي هو {serverVersion}"}},setting:{saveSuccess:"تم حفظ الإعدادات بنجاح",unSavedTip:'هناك تغييرات غير محفوظة، يرجى النقر على "حفظ التغييرات" لحفظها.',unSavedLeaveTip:"هناك تغييرات غير محفوظة، هل أنت متأكد أنك تريد مغادرة الصفحة؟",form:{name:"اسم خادمك",nameRequired:"الوصف الخادم مطلوب",namePlaceholder:"اسم الخادم",description:"اصف سيرفرك",descriptionHolder:"وصف الخادم",descriptionRequired:"الوصف الخادم مطلوب",domain:"اسم نطاق الخادم الخاص بك",domainPlaceholder:"اسم نطاق الخادم",domainRequired:"مطلوب اسم النطاق للخادم",ipPlaceholder:"IP",ipRequired:"الآي بي مطلوب",registry:"متجر بلوكلت",registryPlaceholder:"متجر Blocklet لاسترجاع الـ Blocklets",registryRequired:"متجر بلوكليت مطلوب",registerUrl:"عنوان URL لمشغل بلوكليت",registerUrlPlaceholder:"أدخل عنوان URL لمشغل Blocklet المفضل الخاص بك ، يمكنك استخدام النسخة الرسمية بأمان.",webWalletUrl:"عنوان محفظة DID",webWalletUrlPlaceholder:'يرجى إدخال عنوان URL لـ "محفظة DID" المستضافة الخاصة بك ، يمكنك استخدام الإصدار الرسمي بأمان',nftDomainUrl:"رابط نطاق NFT",nftDomainUrlPlaceholder:"يرجى إدخال عنوان URL لمجال NFT المستضاف الخاص بك ، يمكنك استخدام العنوان الرسمي بأمان",enableWelcomePage:"تمكين صفحة الترحيب",welcome:{switchLabel:"صفحة الترحيب"},upgrade:{title:"ترقية خادم بلوكليت إلى {version}",description:"خلال الترقية، سيدخل خادم Blocklet الخاص بك في وضع الصيانة لبضع دقائق أثناء إكمال التحديث.",dialog:"انقر فوق 'تأكيد' لتثبيت التحديث. سيدخل خادم Blocklet في وضع الصيانة حتى يتم الانتهاء من التحديث والعودة تلقائيًا إلى وضع الإنتاج.",confirm:"تطوير",switchLabel:"فحص التحديث التلقائي",enableBetaRelease:"تمكين إصدار بيتا",setup:"التحضير للترقية",installing:"تثبيت خادم بلوكلت v{version}",restarting:"إعادة تشغيل خادم البلوكلت",cleanup:"هجرة بيانات خادم بلوكليت",verifying:"التحقق من خادم بلوكليت الإصدار {version}",rollback:"مخدم رولباك بلوك ليت",complete:"تم ترقية النظام بنجاح!",progress:"ترقية {name}",check:"التحقق من التحديثات",latest:"أنت تستخدم أحدث إصدار."},restart:{title:"إعادة تشغيل خادم بلوكليت",description:"خلال إعادة التشغيل ، سيدخل خادم Blocklet الخاص بك في وضع الصيانة حتى يتم إكمال إعادة التشغيل.",dialog:'انقر على "تأكيد" لإعادة التشغيل. سوف يدخل خادم Blocklet في وضع الصيانة حتى يتم إكمال إعادة التشغيل والعودة إلى وضع الإنتاج تلقائياً.',confirm:"إعادة تشغيل",setup:"إعداد إعادة التشغيل",verifying:"التحقق من خادم بلوكليت",restarting:"إعادة تشغيل خادم البلوكليت",cleanup:"تأكد من أن كل شيء على ما يرام",rollback:"قم بتنظيف الحالة القذرة",complete:"صيانة كاملة!",progress:"إعادة تشغيل {name}"},register:{title:"سجل في Blocklet Launcher",description:"بمجرد إضافته ، يمكنك تشغيل بلوكليتس على هذه الخادمة من {url}.",button:"سجل"},monitor:{diskThreshold:"إرسال تنبيه عند تجاوز استخدام القرص (%)",diskThresholdPlaceholder:"يرجى تعيين حد التنبيه لاستخدام القرص"},security:{switchLabel:"عزل نظام الملفات",switchTips:"بعد تعطيل هذا الخيار، فإن نظام ملفات البلوكليت لن يكون عزلًا بعد الآن، مما قد يشكل خطرًا من تلف النظام من قبل البرامج الخبيثة.",warningTips:"لا يمكن تنفيذ ميزة عزل نظام الملفات. يرجى ترقية إصدار node.js (الإصدار الحالي هو {version}) إلى الإصدار v21.6.0 أو أعلى."},docker:{switchLabel:"تشغيل بلوكلتس في حاويات",switchTips:"بعد تمكين هذا الخيار، سيتم تشغيل البلوكلتس باستخدام حاويات، مما يمكن أن يحسن الأمان العام للخادم.",notInstalled:"تعذر تنشيط تشغيل الحاوية لأن Docker غير مثبت أو يفتقر إلى الصلاحيات اللازمة للتنفيذ",needCloseFileSystemIsolation:"لا يمكن تمكين عزل نظام الملفات ووضع تشغيل حاوية Docker في نفس الوقت"},dockerNetwork:{switchLabel:"عزل الشبكة الحاوية",switchTips:"بعد تمكين هذا الخيار، تعمل blocklets بطريقة أكثر أمانًا: لا يمكن لـ blocklet الوصول إلى خادم blocklet أو إلى blocklets أخرى عبر التطبيقات.",needEnableDocker:"يجب تمكين وضع الحاوية لتمكين عزل الشبكة"},restartAllContainers:{title:"إعادة تشغيل جميع الحاويات",description:"إعادة تشغيل جميع الحاويات واستمرار تشغيل البلوكلتس.",dialog:'انقر فوق "تأكيد" لإعادة تشغيل جميع وحدات Blocklets الحاوية والحفاظ على حالة Blocklets قيد التشغيل.',confirm:"إعادة تشغيل",setup:"إعداد إعادة التشغيل",verifying:"جاري التحقق من خادم Blocklet",restarting:"إعادة تشغيل جميع الحاويات في الخلفية",cleanup:"تأكد من أن كل شيء على ما يرام",rollback:"تنظيف الحالة المتسخة",complete:"احتفظ بالكامل!",progress:"إعادة تشغيل جميع الحاويات في الخلفية"},restartAllBlocklet:{title:"إعادة تشغيل جميع Blocklets",description:"إعادة تشغيل جميع Blocklets قيد التشغيل أو التي بها أخطاء على هذا الخادم",dialog:'انقر على "تأكيد" لإعادة تشغيل جميع Blocklets في الخلفية.',confirm:"إعادة التشغيل",setup:"إعداد إعادة التشغيل",verifying:"جاري التحقق من خادم Blocklet",restarting:"إعادة تشغيل جميع Blocklets الجارية أو التي تحتوي على أخطاء في الخلفية",cleanup:"تأكد من أن كل شيء على ما يرام",rollback:"تنظيف الحالة المتسخة",complete:"الصيانة اكتملت!",progress:"إعادة تشغيل جميع Blocklets قيد التشغيل أو التي بها أخطاء في الخلفية"},enableSessionHardening:{switchLabel:"تمكين تعزيز الجلسة",switchTips:"بعد تمكين هذا الخيار، ستتطلب عمليات التعديل تحققًا صارمًا، مما يمكن أن يحسن الأمان العام للخادم."}},accessKey:{accessKeyId:"المفتاح الوصول",lastUsed:"تم استخدامها للمرة الأخيرة في",tip:"يرجى إدخال اسم لهذا المفتاح للوصول للاشارة المستقبلية:",saveSecretTip:"هذه هي المرة الوحيدة التي يمكن عرض مفتاح الوصول السري الخاص بك ولا يمكن استعادته. ومع ذلك ، يمكنك إنشاء مفاتيح الوصول الجديدة في أي وقت.",iKnow:"لقد قمت بنسخ وحفظ السر السري للوصول",showSecret:"عرض مفتاح الوصول السري",hideSecret:"إخفاء السر",title:"حذف مفتاح الوصول",descriptionNoTime:"سيؤدي هذا إلى حذف مفتاح الوصول {key} بالاسم {name} نهائيًا ، والذي (لم يتم استخدامه من قبل)",description:"سيتم حذف مفتاح الوصول {key} بشكل دائم باسم {name} ، الذي تم استخدامه لآخر مرة في {time} ، {timeAge}).",confirm_desc:"يرجى إدخال {name} للحذف",remark:"اسم مفتاح الوصول",remarkInvalid:"اسم مفتاح الوصول مطلوب"},webhook:{add:"إضافة التكامل",delTitle:"احذف الدمج",requiredError:"يرجى تقديم {type} صالح",confirm_desc:"يرجى إدخال {name} للحذف",test:"اختبار",description:"سيتم حذف التكامل بشكل دائم مع الهوية {id}.",columns:{description:"معرف",params:"المعلمات",createdAt:"تم الإنشاء في"}}},notification:{title:"إشعارات",empty:"لا توجد أنشطة حتى الآن",viewAll:"عرض الكل",showRead:"اظهار قراءة",markAllAsRead:"وضع علامة على كل الرسائل كمقروءة",markAsRead:"وضع علامة كمقروء",proceed:"متابعة",checkingForUpdates:"التحقق من وجود تحديثات...",email:{enable:"تمكين إشعار البريد الإلكتروني",from:"المرسل الإلكتروني",host:"مضيف خادم SMTP",port:"منفذ خادم SMTP",user:"اسم مستخدم خادم SMTP",secure:"تمكين الاتصال الآمن",password:"كلمة مرور المستخدم لخادم SMTP",fromRequired:"المُرسِل البريدي الإلكتروني مطلوب",fromInvalid:"المرسل الإلكتروني غير صالح",receiverRequired:"مطلوب تحديد مستلم البريد الإلكتروني",receiverInvalid:"مستقبل البريد الإلكتروني غير صالح",hostRequired:"مطلوب استضافة خادم SMTP",hostInvalid:"مضيف خادم SMTP غير صالح",portRequired:"منفذ خادم SMTP مطلوب",portInvalid:"منفذ خادم SMTP غير صالح ، يجب أن يكون المنفذ بين 1 و 65535",userRequired:"اسم مستخدم خادم SMTP مطلوب",passwordRequired:"كلمة مرور مستخدم خادم SMTP مطلوبة",testSuccess:"تم إرسال البريد الإلكتروني التجريبي بنجاح",testFailed:"فشل إرسال البريد الإلكتروني التجريبي",testReceiver:"مستلم البريد الإلكتروني",testSendEmail:"إرسال بريد إلكتروني تجريبي",inputTestReceiver:"يرجى إدخال بريد الكتروني لاختبار الاستقبال",disable:"إلغاء الاشتراك في إشعارات البريد الإلكتروني",disableDescription:"بعد إلغاء الاشتراك، لن تتلقى إشعارات البريد الإلكتروني بعد الآن. لتتلقى إشعارات البريد الإلكتروني، يمكنك الاشتراك مرة أخرى على هذه الصفحة.",unsubscribe:"إلغاء الاشتراك في إشعار البريد الإلكتروني",unsubscribeDescription:"بعد الإلغاء الاشتراك، لن تستلم أي إشعارات بالبريد الإلكتروني بعد الآن.",subscribe:"الاشتراك",subscribeDescription:"لتلقي إشعارات البريد الإلكتروني ، يمكنك الاشتراك فيه مرة أخرى على صفحة الإعدادات."},comingSoon:"تحت الإنشاء مزيد من قنوات الإشعارات",unsubscribe:"إلغاء الاشتراك",unsubscribeSucceed:"تم إلغاء الاشتراك بنجاح",unsubscribeFailed:"فشل إلغاء الاشتراك",unsubscribeTokenRequired:"الرمز الذي يلزم لإلغاء الاشتراك",unsubscribeTokenExpired:"انتهت صلاحية رمز الإلغاء الاشتراك",unsubscribeTokenInvalid:"رمز إلغاء الاشتراك غير صالح",installComponentError:"لم يتم العثور على المكون الملغي {name}",installingComponent:"تثبيت المكون {name}",pushKit:{enable:"تفعيل إشعار PushKit",endpoint:"نقطة نهاية PushKit",endpointInvalid:"نقطة نهاية PushKit عنوان URL غير صالح",testSuccess:"تم إرسال اختبار PushKit بنجاح",testFailed:"اختبار PushKit للإرسال فشل",testReceiver:"مستقبل PushKit",testSend:"اختبار إرسال مجموعة الدفع",inputTestReceiver:"الرجاء إدخال مستقبل الاختبار",receiverRequired:"مطلوب مستقبل PushKit",pushPath:"مسار Api ل push-kit (افتراضي /api/push)",did:"PushKit Blocklet DID",customOptions:"خيارات مخصصة"},notificationDetails:"تفاصيل الإشعار",receiver:"المستلم",sendStatus:{success:"مرسل",failed:"فشل",sentTime:"وقت الإرسال: {date}",pending:"قيد الانتظار",reason:{enabled:"قام المستخدم بتمكين إشعار {channel}",disabled:"لم يقم المستخدم بتمكين إشعار {channel}",unavailable:"لم يقم Blocklet الحالي بتكوين إشعار {channel}",available:"تم تكوين إشعار {channel} في Blocklet الحالي",notSent:"لم يتم إرسال الرسالة الحالية إلى {channel}",offline:"المستخدم غير متصل"},count:"{count}",total:"المجموع"},filter:"تصفية",notificationPreview:"معاينة الإشعار",resend:"إعادة الإرسال",resendLimit:"يمكنك إعادة إرسال الإشعار حتى ثلاث مرات يوميًا.",from:"من",to:"إلى",body:"الجسم",notificationTitle:"عنوان",createdAt:"أنشئ في",status:"الحالة",system:"نظام",severity:"الخطورة",config:"إعدادات",selectChannels:"اختر القنوات",selectChannelsTip:"حدد القنوات لإعادة الإرسال",resendFailedOnly:"إعادة إرسال فقط إلى القنوات التي فشلت",statistics:"إحصائيات",allSender:"جميع المرسلين",allSeverity:"جميع الخطورة",severityType:{info:"معلومات",success:"نجاح",warning:"تحذير",error:"خطأ"}},router:{routerSetting:"نطاقات وروابط",certSetting:"شهادات SSL",defaultSite:"افتراضي",urlHelperText:"يعتبر عناوين URL التي لا تبدأ بـ HTTP/HTTPS مسارات نسبية",empty:"انقر فوق الإجراءات لإعداد تعيين العناوين URL",healthy:{ok:"البلوكليت أو الخدمة قيد التشغيل",error:"لم يتم تشغيل كتلة أو الخدمة أو لم يتم تثبيتها"},service:{select:"اختيار خدمات بلوكليت (اختياري)",what:"خدمات بلوكليت هي أنابيب تُنفَّذ ضد الطلب قبل إعادة التوجيه إلى بلوكليت الأساسي."},nonProvider:{title:"تحذير تغيير المحرك",description:"إذا قمت بتغيير المحرك إلى 'لا شيء' ، فقد لا يعمل صفحتك الحالية بشكل صحيح لأن المحرك السابق سيتوقف. هل أنت متأكد من الاستمرار؟",confirm:"أنا أفهم، استمر"},validation:{urlRequired:"الرابط المطلوب",redirectCodeRequired:"الكود المعيَّن لإعادة التوجيه مطلوب",didRequired:"البلوكليت مطلوب",pathPrefixTooLong:"لا يمكن أن يتجاوز بادئة عنوان الويب {length} حرفًا",pathPrefixCannotBeEmpty:"لا يمكن أن يكون مقدمة الرابط فارغة",domainRequired:"مطلوب نطاق الخادم",invalidUrl:"يرجى تقديم رابط صحيح",pathPrefixRequired:"مطلوب بادئة عنوان URL",redirectUrlRequired:"عنوان URL المعاد توجيهه مطلوب",rewriteUrlRequired:"مطلوب إعادة كتابة عنوان URL"},domain:{addSite:"إضافة موقع",validate:{emptyTip:"لا يمكن ترك مجال الموقع فارغًا",suffixTip:"لا يمكن أن يتضمن نطاق الموقع {suffix}"},add:{title:"إضافة اسم النطاق",description:"يرجى تقديم اسم نطاق صالح",confirm:"إضافة",cancel:"إلغاء",blocklet:"اختر بلوكلت",redirect:"إلى أين توجيه حركة المرور؟",port:"ما هو المنفذ الذي يحتاج خادم الطلبات الخاص بك إلى الاستماع إليه؟",portTip:"يتم تعيين هذا افتراضيًا إلى البورت الرئيسي لمعالجة الطلبات، يمكنك تخصيص ذلك",type:"معالج حركة المرور",component:"تحديد المكون",pageGroup:"مجموعة الصفحة",pageGroupTip:"يمكن لهذا العنصر أن يظهر أي مجموعة من الصفحات المذكورة أعلاه ، اتركه فارغًا لعرض جميع الصفحات"},update:{title:"تحديث نطاق الموقع",label:"نطاق الموقع",description:"يرجى تقديم نطاق موقع صحيح"},setup:{tipStart:"أضف سجلات DNS للنطاق",tipEnd:"وفقًا للإرشادات التالية",recordType:"نوع السجل",recordValue:"قيمة السجل"},verify:{ok:"قرار حل المجال عادي",notResolved:"هذا النطاق لم يتم حله ولا يمكن الوصول إليه، يرجى التحقق من تكوين DNS الخاص بك."},https:{ok:"هذا النطاق لديه HTTPS ممكُّن",bad:"هذا النطاق لم يتم تمكين اتصال HTTPS"},delete:{title:"حذف الموقع",description:'بالتأكيد، ستحذف موقعك الحالي "{name}". اكتب "{name}" أدناه وحدد حذف لإتمام التغيير، أو حدد إلغاء إذا كنت ترغب في ترك موقعك.',confirm_desc:"يرجى إدخال {name} للتأكيد"}},domainAlias:{nftDomain:"تكوين تلقائي مع نطاق DID",showTipHint:"كيف يمكنني تكوين اكتشاف اسم النطاق؟",add:{title:"إضافة نطاق إضافي",domainDescription:"يرجى تقديم اسم نطاق صالح",forceTip:"فرض الإضافة إذا كان اسم النطاق موجودًا بالفعل",helperText:"إذا تم إدخال عنوان URL HTTP أو HTTPS ، فسيتم تحويله تلقائيًا إلى اسم النطاق.",isDidDomainError:"هذا النطاق هو نطاق ديد. يُرجى إضافته باستخدام طريقة تكوين النطاق التلقائي.",tips:"يمكنك إدخال اسم نطاق تم شراؤه من DID Domain أو أي نطاق آخر. إذا كان نطاق DID، يجب عليك تقديم DID Domain NFT للمتابعة."},addCustomDomain:{name:"نطاق مخصص"},addDomainNFT:{showNFT:"ضبط النطاق تلقائيًا",tips:"يمكنك إدخال نطاق تم شراؤه من DID Domain. في حالة اكتشاف نطاق DID، يجب عليك تقديم نطاق DID NFT للاستمرار.",connect:{title:"يرجى عرض مجال NFT الخاص بك",scan:"يرجى مسح الرمز الاستجابة السريعة التالي باستخدام محفظة DID الخاصة بك للسماح لـ blocklet باستخدام نطاقك.",confirm:"يرجى التأكيد على محفظتك المعرّفة",success:"تم التفويض بنجاح"},buyTip:"سيقوم تطبيق DID Domain بإجراء حل اسم النطاق تلقائيًا، ولا داعي لتكوينه يدويًا، كما سيقوم التطبيق بتحديث سجل الحل الخاص باسم النطاق تلقائيًا عند الحاجة. في حال لم يكن لديك تطبيق DID Domain NFT حتى الآن،",buy:"شراء نطاق DID",topLevelDidDomainHint:"بالنسبة إلى نطاقات DID، إذا أدخلت نطاقًا رئيسيًا (مثل example.com)، فسيتم تكوينه تلقائيًا كـ www.example.com."},delete:{title:"حذف",description:'بعد حذف "{domain}"، قد لا يتم التعامل مع الوصول إلى هذا الاسم المستعار بشكل صحيح.',confirmPlaceholder:'الرجاء إدخال "{domain}" للحذف'}},domainSecurity:{title:"أمان النطاق",cors:{title:"نطاقات CORS المسموح بها",description:'قائمة النطاقات التي يمكنها إرسال طلبات المنشأ المشترك إلى {name} ، مفصولة بفواصل ، استخدم "*" للسماح لأي شخص ، مما ليس مستحسنًا.',domainInvalid:"يرجى إدخال قائمة صالحة من أسماء النطاقات"}},rule:{add:{title:"إضافة تعيين عنوان URL",confirm:"أضِفْ",pathPrefix:"ما هو بادئة عنوان URL؟",pathPrefixTip:"إذا قمت بتعيين البادئة على '/بادئة-الخاصة-بي'، فسيتم توجيه جميع الطلبات التي تبدأ بتلك البادئة إلى البلوكليت المكون",blocklet:"أي Blocklet سيتولى معالجة تلك الطلبات؟",port:"ما هو المنفذ الذي سيتعامل مع طلبات البلوكليت؟",portTip:"هذا يعتمد على المنفذ الرئيسي للبلوكليت بشكل افتراضي ، إذا كان بلوكليت الخاص بك يستمع على منافذ متعددة ، فيمكنك تخصيص ذلك.",responseType:"نوع الاستجابة",responseBody:"محتوى الرد",responseBodyTip:"الصق محتوى الاستجابة الخاص بك هنا ، يجب ألا يتجاوز 4096 حرفًا.",responseBodyRequired:"لا يمكن أن يكون محتوى الرد فارغاً"},delete:{title:"حذف تعيين عنوان URL",description:'بتأكيدك، ستحذف التعيينات الحالية لعنوان URL "{name}" الخاصة بك. اكتب "{name}" أدناه وحدد حذف لإكمال التغيير، أو حدد إلغاء إذا كنت ترغب في الاحتفاظ بتعيينات عنوان URL الخاصة بك.',confirm_desc:"يرجى إدخال {name} لحذفه",cancel:"إلغاء"},update:{title:"تحديث تعيين عناوين URL",confirm:"نعم، تحديث",cancel:"إلغاء"}},cert:{name:"اسم الشهادة",domain:"اسم النطاق",action:"عمل",commonName:"الاسم الشائع",boundDomains:"نطاقات",source:"المصدر",expired:"انتهت الصلاحية",leftDays:"أيام متبقية",issuedOn:"صدر في",expiryOn:"تاريخ الانتهاء في",fingerprintAlg:"خوارزمية بصمة الإصبع",validityPeriod:"فترة الصلاحية",matchedSites:"المواقع المطابقة",upload:"تحميل يدوي",publicCertHelperText:"يمكن تحميل الشهادات العامة",nonPublicCertHelperText:"لا يمكن تحميل الشهادات غير العامة",protectedCertHelperText:"لا يمكن تعديل الشهادات المحمية",unprotectedCertHelperText:"يمكن تعديل الشهادات غير المحمية",issuing:"جاري إنشاء الشهادة",sourceTypes:{upload:"تحميل يدوي",lets_encrypt:"لنشفر"},table:{nodata:"لا توجد بيانات"},delete:{title:"حذف الشهادة",description:"تأكيد حذف شهادة الدومين {domain}؟ قد يؤثر حذفها على الخدمات ذات الصلة. يرجى التأكيد على أنه آمن قبل المتابعة بحذفها.",confirm:"تأكيد"},nginx:{title:"تحديث الشهادة",titleAdd:"إضافة شهادة",pem:"ملف شهادة SSL",pemTip:'يرجى إسقاط ملف شهادة الخادم الخاص بك هنا ، يجب أن ينتهي بـ ".pem" أو ".crt".',key:"ملف المفتاح الخاص",keyTip:'يرجى إسقاط ملف مفتاح خادمك الخاص هنا؛ يجب أن ينتهي بـ ".pem" أو ".key".',confirm:"حفظ",cancel:"إلغاء",invalidFile:"لقد اخترت ملفًا غير صالح",empty:"لم يتم تحديد ملف بعد",source:"المصدر",sourceTypes:{upload:"تحميل يدوي",lets_encrypt:"لنقم بتشفير"}},detail:{title:"تفاصيل الشهادة"},genLetsEncryptCert:{title:"توليد شهادة Let's Encrypt",dnsTip:"يرجى التأكد من أن اسم النطاق يشير إلى خادم Blocklet الحالي.",description:"إضافة شهادة ستزيد من أمان الخدمة، وسيقوم خادم بلوكليت بتجديد الشهادة تلقائيًا قبل انتهاء صلاحيتها."}},gateway:{reqLimit:{switchLabel:"تقييد الطلبات",rate:"حد الطلب ({rate} طلب/ثانية)",title:"تحديد الطلبات"},cacheEnabled:{switchLabel:"تمكين ذاكرة التخزين المؤقت للبوابة لتعزيز الأداء",title:"ذاكرة التخزين المؤقت لبوابة"},blockPolicy:{switchLabel:"حظر الطلب",addItem:"إضافة عنصر",blacklistDesc:"سيتم منع الطلبات من هذه العناوين IP من الوصول إلى هذا الخادم وجميع Blocklets",inputPlaceholder:"أدخل عنوان IP أو نطاق CIDR أو عنوان URL",invalidItem:"عنوان IP غير صالح أو نطاق CIDR أو عنوان URL",title:"حظر الطلب",autoBlocking:{switchLabel:"احظر الطلبات السيئة من خلال الكشف في الوقت الفعلي",windowSize:"حجم نافذة الوقت لعد الطلبات (بالثواني)",windowQuota:"العدد الأقصى من الطلبات (لكل IP) المسموح بها في النافذة",blockDuration:"مدة حظر المستخدم عبر IP عند تجاوز الحصة داخل النافذة (بالثواني)",statusCodes:"أكواد الحالة التي يجب فحصها"}},proxyPolicy:{switchLabel:"تشغيل خلف الوكلاء",trustRecursive:"ثق بالوكلاء بشكل تكراري",trustRecursiveDesc:"استخدم IP الأيسر في سلسلة X-Forwarded-For",trustedProxies:"الوكلاء الموثوق بهم",trustedProxiesDesc:"سيتم الثقة بطلبات هذه العناوين IP للحصول على عنوان IP العميل الحقيقي",realIpHeaderLabel:"رأس عنوان IP للعميل",realIpHeaderDesc:"إذا كان خادم Blocklet يعمل خلف الوكلاء مثل CloudFront ، فيمكنك تعيين عنوان IP الحقيقي للعميل هنا.",addItem:"إضافة عنصر",inputPlaceholder:"أدخل عنوان IP، نطاق CIDR",invalidItem:"عنوان IP غير صالح ، نطاق CIDR",title:"سياسة الوكيل"},wafPolicy:{switchLabel:"كشف وحظر الطلبات السيئة مع ModSecurity",modeDesc:"وضع modsecurity (يتطلب وجود وحدة modsecurity)",mode:{detectOnly:"كشف فقط (لن يحظر الطلبات)",on:"تشغيل (سيحظر الطلبات)"},logLevelDesc:"مستوى السجل لـ ModSecurity (0-9)، 0 يعني تعطيل سجل التدقيق",inboundAnomalyScoreThresholdDesc:"عتبة درجة الشذوذ الواردة (1-100)، قيمة أقل تعني أكثر صرامة",outboundAnomalyScoreThresholdDesc:"عتبة درجة الشذوذ الصادرة (1-100)، القيمة الأقل تعني أكثر صرامة",docDesc:"تحقق من الوثائق لمعرفة كيفية إعداد modsecurity",title:"جدار حماية تطبيقات الويب"}}},noMatch:{desc:"لا يمكننا العثور على الصفحة التي تبحث عنها"},health:{connectionErrorTip:"لا يمكن لخادم بلوكليت الاتصال بالشبكة، يرجى التحقق مما إذا تم إيقاف خادم بلوكليت أو إذا كان هناك مشكلة في الشبكة.",connectionRecoveryTip:"تم استعادة اتصال خادم Blocklet",connectionStoppedTip:"تم إيقاف خادم بلوكليت",wrongAccessUrlTip:"عنوان وصول خادم Blocklet غير صحيح ، يرجى استخدام عنوان الوصول الصحيح."},debug:{title:"خادم Blocklet الخاص بك يعمل بشكل جيد!"},team:{invite:{action:"دعوة جديدة",setting:"إعدادات الدعوة",enabled:"قم بتعطيل هذا الإعداد لتقييد دعوات المستخدمين الجدد للمالك/المسؤول فقط",disabled:"قم بتمكين هذا الإعداد للسماح لأي مستخدم بدعوة مستخدمين جدد",inviter:"دعا بواسطة"},add:"إضافة جديد",member:{name:"الاسم",passport:"جواز السفر",passports:"جوازات السفر",lastLogin:"آخر تسجيل دخول",lastLoginIp:"آخر عنوان IP لتسجيل الدخول",source:"مصدر التسجيل",source_derived:"مشتق من أوث",source_wallet:"محفظة ديد",filter:"تصفية حسب",blockAccess:"منع تسجيل الدخول",blockAccessDescription:"لن يتمكن المستخدم من الاتصال بهذا التطبيق",allowAccess:"السماح بالتسجيل",allowAccessDescription:"سيتمكن المستخدم من الاتصال بتطبيق هذا",updateRole:"تحديث الدور",removeUser:"حذف المستخدم",removeUserDescription:"تأكيد حذف المستخدم'{name}'؟",revokePassport:"إلغاء جواز السفر",revokePassportDescription:"بمجرد إلغاء جواز السفر، يتعذر على حامل جواز السفر استخدامه لتسجيل الدخول مرة أخرى، هل أنت متأكد من الاستمرار؟",enablePassport:"تمكين جواز السفر",enablePassportDescription:"بمجرد تمكين جواز السفر الذي تم إلغاؤه مرة أخرى، يمكن لحامل جواز السفر استخدامه لتسجيل الدخول مرة أخرى، هل أنت متأكد من المتابعة؟",passportPermissionTitle:"الجواز يحمل الأذونات التالية:",search:"البحث عن عضو",onlyApprovedMember:"عرض المعتمد فقط",inviteDialog:{createInviteLink:"توليد رابط الدعوة",createSuccessTip:"تم إنشاء رابط الدعوة بنجاح، انقر لنسخ وإرسال الرابط للعضو المدعو، يرجى ملاحظة أن هذا الرابط للدعوة لا يمكن إعادة استخدامه وسوف ينتهي صلاحيته في {expireDate}."},error:{passportEmpty:"يجب ألا يكون جواز السفر فارغًا"},connectedAccounts:"الحسابات المتصلة",connections:"اتصالات",federated:"موحّد",switch:{did:"تبديل DID",profile:"تبديل الملف الشخصي",passport:"تبديل جواز السفر"},settings:{notification:"إشعارات",email:"أرسل لي بريدًا إلكترونيًا عند حدوث بعض الأحداث",wallet:"أرسل إشعارًا إلى محفظتي عند حدوث بعض الأحداث",phone:"أرسل لي رسالة نصية عندما يحدث بعض الأحداث",webhook:"الخطافات عبر الويب",add:"إضافة ويب هوك جديد",url:"عنوان URL مخصص",slack:"خطاف سلاك",tested:"تم إرسال رسالة تجريبية"},activeUserSessions:"جلسات المستخدم النشطة",forceLogout:"تسجيل الخروج القسري",forceLogoutDescription:"هل تؤكد تسجيل خروج هذا المستخدم؟",openProfile:"عرض الصفحة الشخصية",removeUserSuccess:"تم إزالة المستخدم بنجاح"},transferNode:{name:"تحويل الملكية",inviteDialog:{title:"خادم بلوكليت نقل",tips:{progress:"يجب قبول نقل الخادم من قبل الجهة المستلمة لإكمال عملية النقل، وبمجرد قبول الجهة المستلمة ، لن تتمكن من تسجيل الدخول إلى الخادم مرة أخرى بجواز السفر الحالي.",newOwnerPermissions:"سيكون لدى المالك الجديد الحق في إدارة جميع العمليات مثل الأعضاء وجوازات السفر والبلوكليتس.",revoke:'إذا كنت ترغب في سحب دعوة النقل ، يمكنك حذف رابط الدعوة في صفحة "الفريق -> الأعضاء -> الدعوة".'},createInviteLink:"توليد رابط الدعوة",createSuccessTip:"تم إنشاء رابط الدعوة بنجاح. انقر لنسخ الرابط وإرساله للعضو المدعو، يرجى ملاحظة أنه لا يمكن إعادة استخدام رابط الدعوة هذا وسينتهي صلاحيته في {expireDate}."},delegateDialog:{title:"المصادقة مطلوبة",scan:"مسح رمز الاستجابة السريعة التالي باستخدام محفظة DID لتفويض الخادم لنقل ملكية خادم NFT.",confirm:"أكد على محفظتك الرقمية",success:"التفويض ناجح"}},transferApp:{name:"نقل الملكية",transferDialog:{title:"طلب نقل",tips:{progress:"يجب قبول طلب التحويل من قبل المستلم لإتمام عملية التحويل، وبمجرد قبول المستلم له، لن تتمكن من تسجيل الدخول إلى التطبيق مرة أخرى بواسطة جواز السفر الحالي.",newOwnerPermissions:"سيكون للمالك الجديد حق إدارة جميع العمليات مثل الأعضاء والجوازات والإعدادات."},createTransferLink:"أنشئ رابطًا للتحويل",createSuccessTip1:'تم إنشاء رابط النقل بنجاح ، يجب أن يستخدم المدعو <a style="color: rgb(29, 193, 199)" target="_blank" href="https://www.didwallet.io/">محفظة DID</a> لاستلام ملكية التطبيق.',createSuccessTip2:"يرجى النقر لنسخ وإرسال الرابط إلى العضو المدعو، يرجى ملاحظة أن هذا الرابط للتحويل لا يمكن إعادة استخدامه وسوف ينتهي في {expireDate}. رابط التحويل الخاص بك سيظهر مرة واحدة فقط ولن يكون مرئيًا مرة أخرى بعد إغلاق هذا الحوار.",createSuccessTip3:"بعد نجاح النقل، ستقوم التطبيق بإعادة التشغيل تلقائيًا لجعل التغييرات سارية المفعول",link:"رابط النقل",iKnow:"لقد قمت بنسخ الرابط وحفظه"},connectDialog:{title:"مطلوب الترخيص",scan:"امسح الرمز الشريطي الآتي باستخدام محفظة DID للمصادقة على تحويل الملكية.",confirm:"تأكيد في محفظتك الرقمية",success:"تم التفويض بنجاح"},receiveDialog:{title:"استلام ملكية التطبيق",scan:"مسح الرمز الشريطي التالي باستخدام محفظة DID لاستلام ملكية التطبيق.",confirm:"قم بتأكيد على محفظة العملة الرقمية الخاصة بك",success:"استلام الملكية بنجاح"},successTitle:"لقد أصبحت صاحبًا جديدًا لهذا التطبيق",visitDashboard:"زر لوحة تحكم التطبيق",description:'إذا كنت ترغب في تغيير ملكية مشروعك، انقر على "نقل الملكية" للبدء'},permission:{create:{title:"إنشاء إذن",description:"التنسيق: <الاجراء>_<المورد>"},delete:{title:"حذف الإذن",description:"تأكيد حذف {name}؟"},error:{actionEmpty:"لا يمكن أن تكون الإجراء فارغة",resourceEmpty:"لا يمكن أن تكون المصدر فارغة",permissionTooLong:"لا يمكن أن تتجاوز الإذن {length} حرفًا",descriptionTooLong:"يجب ألا تتجاوز الوصف {length} حرفًا"}},passport:{create:{title:"أنشئ جواز سفر",titleTip:"العنوان لا يمكن تعديله بعد الإنشاء ، موصى به في غضون 14 حرفًا"},bind:{title:"إذن الربط",roleTip:"ستحصل على كل الأذونات لجواز السفر المحدد بعد الربط.",permissionTip:"ستحصل على الأذونات المحددة بعد الربط",transferLeftTitle:"جميع الصلاحيات",transferRightTitle:"الأذونات الممنوحة"},delete:{title:"حذف جواز السفر",description:"سيفقد جوازات السفر التي تحملها المستخدم كل الأذونات بعد حذفه. هل أنت متأكد من الاستمرار؟"},error:{titleEmpty:"لا يمكن ترك العنوان فارغًا",titleTooLong:"لا يمكن أن يتجاوز عنوان طوله {length} حرفًا",descriptionEmpty:"لا يمكن أن يكون الوصف فارغاً"},issuance:{pending:"قيد الانتظار",create:{title:"توليد الرابط"},delete:{title:"حذف رابط الاستلام",description:"هل ترغب في تأكيد حذف {link}?‏"}},issue:"إصدار جواز السفر",disableIssuance:"تعطيل إصدار جواز السفر",enableIssuance:"تمكين إصدار جواز السفر",disableIssuanceTip:'"إصدار جواز سفر", "دعوة عضو" وسيتم تعطيل العمليات الأخرى.',enableIssuanceTip:"إصدار جواز السفر",trustedPassportIssuers:"مصدري جوازات السفر الموثوق بهم",trustedIssuers:"المصدرين الموثوق بهم",trustedFactories:"مجموعات NFT موثوقة",trustedFactoriesTip:"إدارة مجموعات أصول الأرقام المميزة الموثوق بها والتي يمكن استخدامها للتبادل بجواز سفر",searchFactoryAddress:"البحث في مجموعة DID",configFactories:"تكوين مجموعات ناتف الموثوقة",configFactoriesTip:"السماح للمستخدمين بتبادل NFTs لجوازات السفر",factoryAddress:"عنوان مجموعة NFT",factory404:"لم يتم العثور على مجموعة NFT",factoryAddressTip:"يجب أن تكون عنوان مجموعة NFT موجودة على سلسلة ArcBlock الرئيسية",role:"نوع جواز السفر",ttl:"سياسة انتهاء صلاحية جواز السفر",ttlNever:"لا ينتهي أبدًا",ttlMint:"منذ شراء NFT",ttlExchange:"نظرًا لتبادل جوازات السفر",ttlNeverTip:"سيكون جواز السفر ساريًا حتى إلغاءه",ttlMintTip:"سيكون جواز السفر ساريًا بعد شراء رمز NFT حتى أنت تحدد ttl أو تلغيه",ttlExchangeTip:"سيكون جواز السفر ساري المفعول من الوقت الذي قام فيه المستخدم بالتبادل بنجاح حتى تحدد ttl أو تسحب",ttlTip:'"365d" يعني 365 يومًا، يمكنك أيضًا استخدام "30 يومًا" أو "24 ساعة"',validUntil:"صالح حتى: {date}",externalPassport:"جواز السفر الخارجي",notTrustedIssuerTip:"لا يمكن استخدام جواز السفر لأن الجهة الصادرة ليست في قائمة الجهات الصادرة الموثوقة",issuerDid:"هوية المُصدِر",addNodeToTrustedIssuers:"قم بإضافة الخادم الحالي كجهة إصدار جوازات سفر موثوقة",revoked:"تم إبطاله",noPermission:"لا توجد إذن لأداء هذا الإجراء",shouldNotDeleteCurrent:"لا يمكنك إبطال جواز سفرك الحالي المستخدم",mappingRule:"قاعدة الرسم",defaultRule:"قاعدة افتراضية",search:"البحث عن جواز السفر",searchIssuerDid:"البحث عن هوية المصدر DID",issueBy:"مشكلة من قبل {name}",configColor:"تكوين لون جواز السفر",configColorTip:"خصص لون جواز السفر",color:"لون جواز السفر",description:"استخدم هذا الجواز للاتصال بـ {teamName} كـ {title}",displayBuiltin:"Builtin",displayCustom:"مخصص",typesTip:"تخصيص أنواع جواز السفر، مفصولة بفاصلة",issuanceDate:"تاريخ الإصدار: {date}"},inviting:{link:"رابط الدعوة",inviter:"دعوة",delete:{title:"حذف رابط الدعوة",description:"هل ترغب في تأكيد حذف {link}؟"},disabledTip:"غير مُمكّن إرسال الدعوة"},whoCanAccess:{all:{title:"متاح للجميع"},owner:{title:"فقط المالك"},invited:{title:"مستخدم مدعو فقط"}}},launcher:{provider:"مزود",adminUrl:"عنوان URL"},session:{blockAccess:"تم حظر وصولك إلى هذا الخادم"},launchBlocklet:{appInfo:"معلومات التطبيق",appInfoDesc:"تأكيد معلومات الطلب",author:"مؤلّف التطبيق: {author}",setup:"إعداد بلوكليت",redirect:"إعادة توجيه",alreadyRunning:"تطبيق {name} يعمل بالفعل على خادم البلوكلِت هذا",alreadyInstalled:"تطبيق {name} مثبت بالفعل على هذا الخادم بلوكلت.",alreadyExists:"هذا التطبيق موجود بالفعل، يتم إعادة التوجيه...",purchased:"تم الشراء بالفعل",purchase:"شراء",nextStep:"الخطوة التالية",agreement:"اتفاقية الترخيص",agreeAll:"موافق واستمر",installing:"تثبيت {appName} على {serverName} قد يستغرق دقائق للانتهاء. يرجى البقاء معنا...",redirecting:"تم تثبيت {appName} بنجاح، الآن يتم البدء...",start:"إطلاق",launch:"قم بتثبيت بلوكليت على الخادم",launchSuccess:"تم إطلاق {appName} بنجاح!",installSuccess:"تم تثبيت واطلاق تشغيل بلوكليت بنجاح على {serverName}",openInRegistry:"عرض في متجر بلوكليت",subTitle:"جاهز لتثبيت بلوكليت {appName} على {serverName}",installingSubTitle:"جارِ تثبيت {appName}",access:"افتح التطبيق",viewApplication:"عرض التقديم",newVersion:"النسخة الجديدة",newVersionDesc:"التطبيق موجود بالفعل، ولكن يمكن ترقية النسخة الحالية",upgradeNow:"ترقية الآن",later:"لاحقًا",introduction:"مقدمة",welcome:"مرحبًا بك في ساحرة إطلاق Blocklet",accept:"أوافق على اتفاقية ترخيص Blocklet",license:"رخصة التطبيق",next:"وافق على EULA وتابع",purchaseApp:"شراء بلوكليت",setupAppDesc:"ابدأ Blocklet الخاص بك",launched:"كامل",confirmInstall:"تأكيد التثبيت",dialog:{title:"كن صاحب تطبيق",nftFreeDescription:"يرجى تقديم NFT لمساحة التطبيق وإنشاء حساب تطبيق للمتابعة.",nftPaidDescription:"يرجى تقديم مساحة التطبيق NFT وشراء التطبيق NFT للمتابعة",freeDescription:"يرجى إنشاء حساب تطبيق للاستمرار",paidDescription:"يرجى تقديم شراء NFT التطبيق وإنشاء حساب التطبيق للمتابعة",confirm:"قم بتأكيد في محفظة العنوان الرقمي (DID) الخاصة بك",success:"تم التصريح بنجاح",authorizationTimeout:"انتهاء مهلة التفويض"},waiting:{verifying:"التحقق من بيانات التطبيق ...",downloading:"جارٍ تنزيل حزمة التطبيق...",downloadingComponent:"تحميل {name}",extractingComponent:"استخراج {name}",extracting:"استخراج حزمة التطبيق ...",installing:"تثبيت مكونات التطبيق...",installed:"مثبت",starting:"جاري تشغيل التطبيق...",done:"تطبيقك يتم إطلاقه..."},error:{loadMetaFailed:"فشل تحميل معلومات التطبيق",appMetaNotFound:"لم يتم العثور على معلومات لهذا التطبيق",downloadFailed:"فشل تنزيل التطبيق، يرجى المحاولة مرة أخرى.",installFailed:"فشل تثبيت التطبيق، يرجى المحاولة مرة أخرى",startFailed:"فشل في بدء التطبيق، يرجى المحاولة مرة أخرى",launchFailed:"فشل في تشغيل التطبيق، يرجى المحاولة مرة أخرى",installedButStopped:"تم تثبيت التطبيق بنجاح ، ولكن لا يمكن تشغيله. يمكنك بدء تشغيله يدويًا بعد حل مشكلة الحجب.",installedButError:"تم تثبيت التطبيق بنجاح ، ولكن فشل في البدء",restoreFailed:"فشل في استعادة التطبيق، يرجى المحاولة مرة أخرى",resourceBlocklet:"لا يمكن تشغيل هذا الحقل المنفصل بشكل مباشر. لكن يمكنك إضافته إلى التطبيق الحالي."},steps:{introduction:"مقدمة",installApp:"تثبيت التطبيق",purchaseSpace:"شراء مساحة",prepareSpace:"عد الفضاء"},installRelatedComponents:"تثبيت البلوكليتس ذات الصلة",canNotInstall:"لا يمكن التثبيت",dockerBlockletCantInstall:"لا يمكن تثبيت Blocklet، لأن خادم Blocklet لم يُفعل Docker أو شبكة Docker"},issuePassport:{title:"استلام جواز السفر",description:"استخدم محفظة DID لاستلام جواز السفر الصادر عن {name}",dialog:{scan:"استخدم محفظة DID الخاصة بك للمطالبة بالجواز السفر",confirm:"قم بتأكيد على محفظتك الرقمية DID",success:"تمت إضافة جواز السفر بنجاح في محفظتك",loginWithPassport:"اتصِل بجواز السفر هذا",autoClose:"سيتم إغلاق الصفحة تلقائيًا في {seconds} ثانية",autoJump:"سوف يتم الانتقال التلقائي للصفحة في {seconds} ثانية."}},lostPassport:{title:"جواز سفر مفقود",description:"صاحب {name} يمكنه مسح رمز الاستجابة السريعة لاسترداد جواز السفر، يرجى للأعضاء التواصل مع الصاحب لإعادة إصدار جواز السفر.",return:"إلغاء عملية الاسترجاع، العودة إلى الصفحة الرئيسية",receivePassport:"استلام جواز السفر",recoverDialog:{title:"استعادة جواز السفر",scan:"استخدم محفظة DID الخاصة بك لفحص رمز الاستجابة السريعة أدناه لاسترداد جواز سفرك",confirm:"أكد على محفظة DID الخاصة بك",success:"تم الاسترجاع بنجاح"},receiveDialog:{title:"استلام جواز السفر",scan:"استخدم محفظة DID الخاصة بك لمسح رمز الاستجابة السريعة أدناه لتلقي جواز السفر",confirm:"أكد على محفظة DID الخاصة بك",success:"تم الاستلام بنجاح"},recoverPassport:"استعادة جواز السفر"},invite:{message:"{name} يدعوك لتكون {role} في {dapp}",success:"لقد انضممت بنجاح إلى {dapp}",receive:"استقبال مع",validUntil:"صالح حتى:",viewPermission:"إذن العرض",emptyPermission:"إذن فارغ",open:"فتح",description:{step1:"حمّل وقم بإعداد {wallet} الخاص بك",step2:"انقر على الزر أعلاه لاستلام جواز السفر",step3:"تسجيل الدخول إلى {dapp} باستخدام جواز السفر المستلم"},transferNFTDialog:{title:"قبول خادم بلوكليت {name}",scan:"قم بتوصيل المطلق لإكمال استقبال خادم Blocklet.",confirm:"يرجى مراجعة هذا العملية على محفظة DID الخاصة بك",success:"تم الاتصال بنجاح، في انتظار تأكيد استلام الخادم"}},receive:{dialog:{title:"استخدم محفظتك الرقمية لتلقي جواز السفر",scan:"قم بتوصيل محفظة DID الخاصة بك لاستلام جواز سفرك",confirm:"قم بتأكيد على محفظة العملة الرقمية الخاصة بك",success:"تم الاتصال بنجاح"}},navigation:{navigation:"التنقل",actionFailed:"فشل العملية",form:{title:"عنوان",titlePlaceholder:"يرجى إدخال عنوان الملاحة",titleTooLong:"يجب أن يكون طول العنوان أقل من {len}",icon:"رمز الملاحة",iconPlaceholder:"يرجى إدخال أيقونة التنقل",invalidIcon:"الرمز غير صالح",findMoreIcon:"ابحث عن المزيد من الأيقونات",link:"الرابط",linkPlaceholder:"يرجى إدخال رابط التصفح",invalidLink:"الرابط غير صالح",component:"جزء",componentPlaceholder:"يرجى اختيار مكون التنقل",role:"دور",rolePlaceholder:"يرجى تحديد دور التنقل",locale:"لغة",localePlaceholder:"يرجى إدخال اللغة المطلوبة للإضافة",localeExists:"القيمة {value} موجودة بالفعل",activeIcon:"أيقونة نشطة",activeIconPlaceholder:"الرجاء إدخال أيقونة التنقل النشطة",activeColor:"اللون النشط",activeColorPlaceholder:"الرجاء إدخال لون التنقل النشط",color:"لون",colorPlaceholder:"الرجاء إدخال لون التنقل الافتراضي"},action:{add:"أضف الملاحة",addSub:"إضافة تصفح فرعي",edit:"تعديل الملاحة",hide:"إخفاء التصفح",show:"عرض الملاحة",del:"حذف الملاحة",new:"جديد",noAddSub:"لا يمكن للمكوّن المُلغى إضافة التنقل الفرعي",noEdit:"لا يمكن تعديل المكون الغير مثبت",noDel:"غير مسموح بحذف الملاحة المدمجة",reset:"إعادة تعيين",restConfirmTitle:"هل ترغب في مسح كل التنقل المخصص؟",restConfirmDesc:"بعد التصفية، سيتم استعادة التنقل إلى تكوين Blocklet الافتراضي الأصلي.",resetSuccessful:"إعادة التعيين ناجحة"},access:"وصول",members:"أعضاء",passport:"جواز سفر",analytics:"التحليلات",dashboard:"لوحة القيادة",studio:"استوديو",blockletService:"خدمة بلوكليت"},storage:{spaces:{title:"DID Spaces",tips:"نصائح",label:"أدخل بوابة النطاقات المعرفية",connected:{title:"مساحات ديد المتصلة",tag:"متصل"},connectedWithName:"لقد تم ربطك بـ {name} بنجاح",addedWithName:"لقد أضفت بنجاح {name}",connects:"اتصل",reconnect:"إعادة الاتصال",addressCannotEmpty:"لا يمكن أن يكون العنوان فارغًا",addressNotValid:"{url} ليس عنوانًا صحيحًا",authorize:{title:"قم بتوصيل {appName} بمساحات DID",scan:"استخدم محفظتك DID لمسح رمز الاستجابة السريعة أدناه للسماح لتطبيق {appName} بالاتصال بمساحات DID.",success:"تم الاتصال بنجاح"},provideNFT:{title:"من فضلك أظهر DID Spaces NFT لـ {appName}",scan:"استخدم محفظة DID الخاصة بك لمسح رمز الاستجابة السريعة أدناه للسماح للتطبيق {appName} بعرض DID Space NFT.",success:"تم الاتصال بنجاح"},backup:{title:"نسخ احتياطي",records:"سجلات النسخ الاحتياطي"},autoBackup:{title:"نسخ احتياطي تلقائي للسيارة",enabled:"تم تشغيل النسخ الاحتياطي التلقائي",disabled:"النسخ الاحتياطي التلقائي متوقف"},autoCheckUpdate:{title:"التحقق التلقائي من إشعار إصدار جديد",enabled:"التحقق التلقائي من الإصدارات الجديدة قيد التشغيل",disabled:"التحقق التلقائي من الإصدار الجديد معطل"},backupSuccessfully:"تم حفظ النسخة الاحتياطية بنجاح",restore:"استعادة",restoreSuccessfully:"استعادة بنجاح",gateway:{title:"بوابة",select:"اختر مساحة ديدي",add:{title:"أضف مساحات DID",label:"أدخل عنوان URL لأماكن DID",failed:"فشل إضافة مساحات الـDID",invalidUrl:"رابط بوابة أماكن DID غير صالح",duplicate:"{name} متصل بالفعل بهذا البلوكليت"},delete:{title:"قطع الاتصال",succeeded:"تم قطع الاتصال بنجاح من DID Spaces {name}",failed:"فشل قطع الاتصال من بوابة",failedForSelected:"غير قادر على قطع الاتصال من مساحة DID Spaces",descForBackup:`بعد قطع الاتصال من {name}، لن تتمكن من النسخ الاحتياطي للبلوكليت إلى DID Space هذا. هل أنت متأكد أنك تريد قطع الاتصال؟
2
+ يمكنك استعادة عمليات النسخ الاحتياطي عن طريق إعادة الاتصال بـ {name}.`,descForStorage:`بعد قطع الاتصال من {name}، لن تتمكن من تخزين البيانات من هذا البلوكليت إلى DID Space هذا. هل أنت متأكد أنك تريد قطع الاتصال؟
3
+ يمكنك استعادة عمليات التخزين عن طريق إعادة الاتصال بـ {name}.`},connect:{title:"قم بتوصيل DID Space",add:"اتصل بـ DID Space الآن",addTips:"لم يتم الاتصال بأي DID Space بعد",switch:"قم بتبديل DID Space",switchTips:"أنت متصل بـ {name}",connected:"متصل"},switch:{failedForMismatchSpace:"يرجى الاتصال بفضاء DID الصحيح {name}"},connectTo:"الاتصال بمساحات DID"},strategy:{title:"استراتيجية النسخ الاحتياطي",autoBackup:"النسخ الاحتياطي التلقائي للسيارة",backupNow:"أنشئ نسخة احتياطية الآن",viewBackupFiles:"عرض ملفات النسخ الاحتياطي"},progress:{title:"تقدم النسخ الاحتياطي"},record:{title:"سجلات النسخ الاحتياطي",emptyData:"لا توجد سجلات"},notYet:"لا يوجد نسخ احتياطي قيد التنفيذ بعد...",connect:{now:"اتصل الآن",title:"اتصل بـ DID Spaces",provider:"قم بتوفير DID Space الخاص بك لبدء النسخ الاحتياطي",providerForStorage:"قدم DID Space الخاص بك لتخزين البيانات",useWallet:"اتصل باستخدام محفظة DID",useWalletReconnect:"أعد الاتصال باستخدام محفظة DID",useSpaceGateway:"اتصل باستخدام بوابة DID Space",useSpaceGatewayReconnect:"أعد الاتصال باستخدام بوابة DID Space",switchToSpace:"التبديل إلى DID Space",switchToSpaceSucceeded:"تم التبديل إلى مساحة DID {name}",succeeded:"تم الاتصال بنجاح بـ DID Space",disconnect:"قطع الاتصال",abortBlockletBackup:"إلغاء النسخ الاحتياطي"},disconnected:{tag:"قطع الاتصال",reconnectNow:"أعد الاتصال الآن"}},appLevel:{title:"تخزين على مستوى التطبيق",description:"جميع البيانات التي تم إنشاؤها بواسطة التطبيق تُخزَن في هذا DID Space"}},log:{lastDays:{1:"اليوم الأخير 1",7:"آخر 1 أسبوع"}},oauth:{commonSettings:"الإعدادات العامة",save:"حفظ",saveSuccess:"حفظ بنجاح",saveFailed:"فشل الحفظ",issued:"صدر",thirdPartyLogin:"تسجيل الدخول من الجهة الثالثة",alreadyBindOAuth:"تم ربط تسجيل الدخول من الطرف الثالث بالفعل",alreadyBindWallet:"ربط حقيبة المحفظة DID بالفعل",auth0:{enable:"تمكين تسجيل الدخول لـ Auth0",domain:"مجال",domainDescription:"مطلوب نطاق Auth0",clientId:"معرف العميل",clientIdDescription:"مطلوب معرف عميل Auth0",clientSecret:"سر العميل",clientSecretDescription:"مطلوب سر العميل لتطبيق المصادقة OAuth الخاص بـ Auth0"},comingSoon:"تحت الإنشاء طرق تسجيل الدخول الأخرى.",moreLogin:"تسجيل الدخول المزيد",federated:"تسجيل الدخول الموحد",runTest:"اختبار",github:{enable:"تمكين تسجيل الدخول على Github",clientId:"معرف العميل",clientIdDescription:"مطلوب معرف عميل (clientId) لتطبيق Github OAuth",clientSecret:"سر العميل",clientSecretDescription:"مطلوب clientSecret لتطبيق Github OAuth"},google:{enable:"تفعيل تسجيل الدخول في جوجل",clientId:"معرف العميل",clientIdDescription:"مطلوب معرف تطبيق Google OAuth",clientSecret:"سر العميل",clientSecretDescription:"مطلوب clientSecret لتطبيق Google OAuth"},apple:{enable:"تفعيل تسجيل الدخول الخاص بـ آبل",teamId:"رقم فريق",teamIdDescription:"مطلوب معرف فريق لتطبيق Apple OAuth",serviceId:"رقم الخدمة",serviceIdDescription:"مطلوب معرف خدمة لتطبيق Apple OAuth",keyId:"مفتاح ID",keyIdDescription:"مطلوب مفتاح تطبيق OAuth لأبل",authKey:"مفتاح Auth",authKeyDescription:"مفتاح المصادقة لتطبيق Apple OAuth مطلوب",bundleId:"معرف الحزمة",bundleIdDescription:"معرّف حزمة تطبيق Apple OAuth مطلوب"},oauth:"تسجيل الدخول من طرف ثالث"},expiration:{mobile:{tips:{success:"{validity}",warning:"{validity}",error:"انتهى الصلاحية"},loadFailed:"أعد المحاولة!"},desktop:{tips:{success:"ستنتهي الاشتراك بعد {validity}",warning:"ستنتهي الاشتراك بعد {validity}",error:"انتهت صلاحية الاشتراك"},loading:"تحميل الاشتراك...",loadFailed:"فشل تحميل معلومات الاشتراك ، يرجى إعادة المحاولة!",nextInvoice:"الفاتورة التالية: {date}"}},analytics:{trend:"الاتجاهات",detail:"عطل",traffic:{totalRequests:"اجمالي الطلبات",validRequests:"طلبات ناجحة",failedRequests:"طلبات فشلت",uniqueVisitors:"الزوار الفريدون",uniqueFiles:"روابط فريدة",uniqueReferrers:"المشرفون الفريدين",uniqueNotFound:"404 فريدة من نوعها",uniqueStaticFiles:"ملفات ثابتة فريدة",logSize:"حجم السجل",bandwidth:"عرض النطاق الترددي"},runtime:"Runtime"},federated:{inviteJoinFederatedLogin:"دعوة للانضمام إلى تسجيل دخول موحد",inviteJoinFederatedLoginDescription:"انسخ العنوان التالي واملأه في التطبيق حيث تحتاج إلى الانضمام للتقدم بطلب للتسجيل الموحد.",federatedLogin:"تسجيل الدخول الموحّد",joinFederatedLogin:"انضم إلى تسجيل الدخول الموحد",joinFederatedLoginDescription:"يرجى إدخال عنوان تسجيل الدخول المتحد المقدم من ماستر بلوكليت للانضمام إلى تسجيل الدخول المتحد",quitFederatedLogin:"إلغاء تسجيل الدخول الموحد",quitFederatedLoginDescription:"بعد إنهاء تسجيل الدخول الفدرالي، تبقى تسجيل الدخول العادي متاحة دائمًا.",federatedJoinAppUrl:"انضم إلى تطبيق تسجيل الدخول الفدرالي appUrl",federatedJoinAppUrlRequired:"يرجى إدخال رابط تسجيل الدخول الموحّدة للتطبيق",failedToGetFederatedLoginAppUrl:"فشل في الحصول على تسجيل الدخول الموحّد للانضمام إلى تطبيق الرابط",federatedJoinAppUrlInvalid:"رابط تطبيق تسجيل الدخول المتحالف غير صحيح.",siteDetail:"تفاصيل الموقع",approveToJoinLogin:"الموافقة على الانضمام إلى تسجيل الدخول الموحد",approve:"تمكين تسجيل الدخول",revoke:"تعطيل تسجيل الدخول",enableFederatedLogin:"تمكين تسجيل الدخول الموحد",disableFederatedLogin:"تعطيل تسجيل الدخول الموحد",enableFederatedLoginDescription:"بعد تمكين تسجيل الدخول المتحد، سيتم تسجيل الدخول التلقائي إلى هذا الموقع.",disableFederatedLoginDescription:"بعد تعطيل تسجيل الدخول الاتحادي، لن تقوم هذه الموقع بتسجيل الدخول التلقائي",enableFederatedAutoLogin:"تمكين تسجيل الدخول التلقائي",enableFederatedAutoLoginDescription:"بعد تمكين تسجيل الدخول التلقائي، إذا كان هناك حاليًا حالة تسجيل دخول موحدة، فسيعمل الموقع على تسجيل الدخول تلقائيًا باستخدام هوية تسجيل الدخول الموحدة.",disableFederatedAutoLogin:"تعطيل تسجيل الدخول التلقائي",disableFederatedAutoLoginDescription:"بعد تعطيل تسجيل الدخول التلقائي، لن يقوم الموقع بتسجيل الدخول تلقائيًا باستخدام معلومات تسجيل الدخول الموحدة، ويمكنك ما زلت تختار الدخول يدويًا بالنقر.",info:{appId:"قام التطبيق",appPid:"الهوية الدائمة",migratedFrom:"المعروف أيضًا باسم",appName:"اسم البلوكليت",appDescription:"وصف البلوكليت",appUrl:"عنوان Blocklet",appLogo:"شعار بلوكليت",did:"هوية بلوكليت",serverId:"هوية خادم البلوكليت",serverVersion:"نسخة خادم بلوكليت",version:"إصدار بلوكلت",appliedAt:"قدّم طلب في",status:"الحالة"},status:{pending:"معلق",approved:"وافق",rejected:"مرفوض",revoked:"تم إلغاءه"},disbandFederatedLogin:"تفعيل تسجيل الدخول الفدرالي",disbandFederatedLoginDescription:"بعد حل تسجيل الدخول الموحد ، ستتوقف جميع مواقع الأعضاء عن تسجيل الدخول الموحد تلقائيًا.",syncConfig:"مزامنة تكوين مواقع Blocklets الموزعة",quitMember:"إزالة",quitMemberDescription:"إزالة الأعضاء المحددين من مجموعة الموقع",removeFederatedLogin:"إزالة العضو",removeFederatedLoginDescription:"بعد إزالة الأعضاء المحددين من مجموعة الموقع ، يمكن للأعضاء استخدام تسجيل الدخول العادي فقط"},optionsOrder:{1:"الخيار الأول",2:"الخيار الثاني"},securityRule:{title:"قاعدة الحماية",sortByDescription:"فرز حسب أولوية المطابقة",add:"أضف قاعدة الأمان",edit:"تحرير قاعدة الأمان",view:"عرض قاعدة الأمان",form:{precede:"يسبق",pathPattern:"نمط المسار",pathPatternPlaceholder:"الرجاء إدخال نمط المسار",pathPatternErrorText:"نمط المسار غير صالح",accessPolicyOrResponseHeaderPolicyRequired:"سياسة الوصول أو سياسة رأس الاستجابة مطلوبة",accessPolicy:"سياسة الوصول",accessPolicyPlaceholder:"يرجى اختيار سياسة الوصول",accessPolicyHelperText:"يرجى تحديد سياسة الوصول",responseHeaderPolicy:"سياسة رأس الاستجابة",responseHeaderPolicyPlaceholder:"يرجى تحديد سياسة رأس الاستجابة",responseHeaderPolicyHelperText:"يرجى تحديد سياسة رأس الاستجابة",remark:"ملاحظة",remarkPlaceholder:"الرجاء إدخال ملاحظة",component:"مكون",componentPlaceholder:"الرجاء اختيار المكون"},delete:{title:"حذف قاعدة الأمان؟",description:"بعد إزالة قاعدة الأمان، ستتوقف القاعدة عن العمل"}},responseHeaderPolicy:{title:"سياسة رأس الاستجابة",add:"أضف سياسة رأس الاستجابة",edit:"تعديل سياسة رأس الاستجابة",view:"عرض سياسة رأس الاستجابة",form:{name:"الاسم",namePlaceholder:"الرجاء ادخال الاسم",description:"الوصف",descriptionPlaceholder:"يرجى إدخال الوصف",cors:{origin:"الأصل",originPlaceholder:"يتم دعم تنسيقات النطاق التالية: http://www.example.com، http://*.example.com، http://www.example.com:8080، * (لا يُنصح باستخدام الأحرف البادئة)",originHelperText:"يبدأ اسم النطاق بـ http:// أو https://، واحد لكل سطر، وواحد لكل سطر *",methods:"طرق",allowedHeaders:"الرؤوس المسموح بها",allowedHeadersPlaceholder:"ينصح بتعبئة *، ويدعم الإدخال متعدد السطور",allowedHeadersHelperText:"أخبر السيرفر ما هي رؤوس طلب HTTP المخصصة التي يمكن استخدامها في الطلب التالي عند إرسال طلب OPTIONS، مثل: x-blocklet-version",exposedHeaders:"رؤوس مكشوفة",exposedHeadersPlaceholder:"يدعم إدخال متعدد السطور",exposedHeadersHelperText:"تكوين عناوين الاستعراض، على سبيل المثال: X-Content-Range",maxAge:"الحد الأقصى للعمر (ثوان)",maxAgeHelperText:"يجب أن تكون فترة صلاحية النتيجة التي تم الحصول عليها بواسطة طلب OPTIONS عددًا صحيحًا موجبًا",optionsSuccessStatus:"خيارات حالة النجاح",preflightContinue:"متابعة",credentials:"البيانات",smartModeHelperText:"قم بإضافة جميع أسماء النطاق للتطبيق الحالي تلقائيًا، بالإضافة إلي جميع أسماء النطاق لمجموعة موقع تسجيل الدخول المتحد",smartMode:"الوضع الذكي"},originOverride:"التجاوز الأصلي",originOverrideHelperText:"ما إذا كان يسمح للمنطق الموجود في التطبيق بتجاوز رأس الاستجابة هذا"},delete:{title:"حذف سياسة رأس الاستجابة؟",description:"بعد إزالة سياسة رأس الاستجابة، لن تسري السياسة بعد الآن"}},accessPolicy:{title:"سياسة الوصول",add:"إضافة سياسة الوصول",edit:"تحرير سياسة الوصول",view:"عرض سياسة الوصول",form:{name:"الإسم",namePlaceholder:"الرجاء إدخال اسم",description:"الوصف",descriptionPlaceholder:"الرجاء إدخال الوصف",roles:"أدوار الوصول",accessType:"نوع الوصول"},delete:{title:"حذف سياسة الوصول؟",description:"بعد إزالة أحد سياسات الوصول، لن تصبح السياسة نافذة المفعول"}},didConnect:{genKeyPair:{title:"إنشاء Blocklet DID",scan:"امسح رمز الاستجابة السريعة التالي لإنشاء Blocklet DID",success:"تم إنشاء Blocklet DID بنجاح",successDesc:"تم إنشاء Blocklet DID بنجاح (المنشورات اللاحقة تتطلب المحفظة التي أنشأت الDID لتعمل)"},common:{invalidSession:"جلسة غير صالحة",invalidSessionDesc:"الجلسة غير موجودة أو منتهية الصلاحية",connectionError:"فشل في الاتصال"}},pagination:{next:"الصفحة التالية",previous:"الصفحة السابقة",rowsPerPage:"لكل صفحة:",displayRows:"من",jumpToPage:"اذهب إلى الصفحة:"},webhookEndpoint:{createWebhook:"إنشاء Webhook",createWebhookTitle:"إنشاء Webhook",selectAllEvents:"حدد جميع الأحداث",selectAllEventsTooltip:"حدد جميع الأحداث المتاحة",selectedEventsCount:"{count} حدثًا تم اختيارها",selectedCount:"{count} مختار",eventsCount:"{count} أحداث",saveWebhook:"إنشاء Webhook",noAvailableEvents:"لا توجد أحداث متاحة",loadingEvents:"جاري تحميل الأحداث...",loadingError:"فشل تحميل الأحداث: {message}",title:"Webhooks",noWebhooksAdded:"لم يتم إضافة أي Webhooks",validation:{urlRequired:"يُطلَب عنوان URL",urlInvalid:"الرجاء إدخال عنوان URL صالح",descriptionRequired:"الوصف مطلوب",eventRequired:"من فضلك، حدد حدثًا واحدًا على الأقل"},hosted:"نقاط نهاية مُستضافة",add:"إنشاء Webhook",addTip:"قم بإعداد نقطة نهاية الويب هوك الخاصة بك لتلقي الأحداث المباشرة",listen:"استمع إلى",version:"إصدار API",attempts:"محاولات الويب هوك",url:{label:"URL",description:"عنوان URL لنقطة نهاية الويب هوك"},description:{label:"وصف",description:"وصف اختياري لغرض استخدام هذه النقطة النهائية"},events:{label:"حدد الأحداث",description:"مرحبا يا {name}."},disabled:"معطل",enabled:"مفعل",disable:"تعطيل",enable:"تفعيل",editWebhookTitle:"تحديث الويب هوك",updateWebhook:"تحديث الويب هوك",waitingForEvents:"في انتظار الأحداث...",loadingMore:"جارٍ التحميل...",loadMore:"تحميل المزيد",response:"رد",request:"طلب",eventData:"بيانات الحدث",deleteWebhook:{title:"حذف الويب هوك؟",description:"بعد حذف الويب هوك، لن يتلقى هذا الأخير أحداثًا بعد الآن."},success:"نجاح"}};export{e as default};
@@ -0,0 +1,35 @@
1
+ import{Q as U,r as W,b5 as N,u as V,bI as H,V as Z,p as F}from"./vendor-ux-did-connect-yBp5D51w.js";import{j as e,a1 as G,a3 as p,bg as q,T as w,a4 as K,I as $,a2 as Q,bi as Y,bY as J,bj as X,aj as ee,bG as te,a9 as re}from"./vendor-mui-core-BGkzVIkr.js";import{p as oe}from"./util-LJfbsxXq.js";import{r as l,L as ae}from"./vendor-react-DoD83n6N.js";import{_ as se}from"./useLocalStorage-BmgSZ9f3.js";import{z as O}from"./index-BJbC-Qjr.js";import{M}from"./index-CMRvG2xO.js";import{C as ie}from"./vendor-arcblock-BSReIGUe.js";import{d as ne}from"./InfoOutlined-aPcuFKow.js";import{d as le}from"./vendor-utils-DDG_VdF0.js";import{R as ce}from"./relative-time-BPP0lNWq.js";import{S as E}from"./shorten-label-dPKLJRIw.js";import{r as I}from"./index-BjppTGHl.js";import{u as de}from"./dashboard-j9G-KyD0.js";import"./vendor-hooks-B7GuuzU5.js";import"./lottie-web-B6s7dDoL.js";import"./base32-CkPppFg3.js";import"./index-KCwqCBtZ.js";import"./confirm-twAiL-Pg.js";import"./format-error-LAoTjvJe.js";import"./PlayArrow-BWaTV7IU.js";import"./get-safe-url-DmtG3OsE.js";import"./session-BpknZId5.js";import"./useAsyncRetry-Cbcg1dvJ.js";import"./useAsync-DOwDXG5n.js";import"./useSetState-BL3ktMon.js";const T=l.createContext({}),{Provider:pe,Consumer:Ke}=T;function ue(){return localStorage.getItem("audit-log-page-size")&&Number(localStorage.getItem("audit-log-page-size"))||10}function fe({children:t,scope:o="",categories:i=[],showScope:c,scopeFormatter:m}){const{api:f,info:C}=O(),[x,L]=l.useState([]),[a,h]=l.useState({total:0,pageSize:ue(),pageCount:0,page:1}),[v,g]=l.useState(!1),[r,n]=l.useState(""),[d,z]=se(`audit-log-category-${o}`,"all"),s=[{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(S=>i.length?S.value==="all"||i.includes(S.value):!0),u=async({page:S=1,pageSize:P=20,silent:k=!0}={})=>{if(!v){k||g(!0);try{const b=await f.getAuditLogs({input:{paging:{page:S,pageSize:P},category:d==="all"?"":d,scope:o,actionOrContent:r}});c&&(b.list||[]).forEach(_=>{_.scope!==C.did&&(_.link=`/blocklets/${_.scope}/components`)}),L(b.list),h(b.paging),g(!1)}catch(b){U.error(b.message),g(!1)}}};l.useEffect(()=>{localStorage.setItem("audit-log-page-size",a.pageSize)},[a.pageSize]),l.useEffect(()=>{u({page:1,pageSize:a.pageSize,silent:!1})},[]),l.useEffect(()=>{u({page:1,pageSize:a.pageSize,silent:!1})},[d,r]);const y={loading:v,fetch:u,filter:{category:d,scope:o},categories:s,setCategory:z,data:x,paging:a,setPaging:h,showScope:c,scopeFormatter:m,actionOrContent:r,setActionOrContent:n};return e.jsx(pe,{value:{auditLogs:y},children:t})}function B(){const{auditLogs:t}=l.useContext(T);return t}var A={},ge=G;Object.defineProperty(A,"__esModule",{value:!0});var R=A.default=void 0,me=ge(W()),xe=e;R=A.default=(0,me.default)((0,xe.jsx)("path",{d:"M12 5.83 15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15z"}),"UnfoldMore");const Le=`
2
+ <svg style="width:38px;height:38px;" viewBox="0 0 64 64" fill="none" xmlns="http://www.w3.org/2000/svg">
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M50.152 10.6417L31.72 0L13.288 10.6417V24.7942L1 31.8887V53.1722L19.432 63.8139L31.6902 56.7366L31.72 56.7538L31.7498 56.7366L44.008 63.8139L62.44 53.1722V31.8887L50.152 24.7942V10.6417ZM60.52 32.9972L48.232 25.9027V11.7502L31.72 2.21703L15.208 11.7502V25.9028L2.92 32.9972V52.0636L19.432 61.5968L31.6902 54.5196L31.72 54.5368L31.7498 54.5196L44.008 61.5968L60.52 52.0636V32.9972Z" fill="url(#paint0_linear_606_96)"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M50.1521 24.8307L31.7201 14.189L13.2881 24.8307V46.1141L31.7201 56.7558L50.1521 46.1141V24.8307ZM15.2081 25.9392L31.7201 16.406L48.2321 25.9392V45.0056L31.7201 54.5388L15.2081 45.0056V25.9392ZM28.5464 23.0464C28.6641 22.6342 29.0408 22.3501 29.4695 22.3501H33.9707C34.3993 22.3501 34.776 22.6342 34.8938 23.0464L35.7504 26.0447L37.8696 27.2681L40.8945 26.5109C41.3103 26.4068 41.7447 26.591 41.959 26.9622L44.2096 30.8604C44.424 31.2316 44.3662 31.6998 44.0682 32.0079L41.8999 34.2489V36.6959L44.0682 38.9369C44.3662 39.245 44.424 39.7133 44.2096 40.0845L41.959 43.9827C41.7447 44.3539 41.3103 44.538 40.8945 44.4339L37.8696 43.6767L35.7504 44.9002L34.8938 47.8984C34.776 48.3106 34.3993 48.5947 33.9707 48.5947H29.4695C29.0408 48.5947 28.6641 48.3106 28.5464 47.8984L27.6897 44.9002L25.5706 43.6767L22.5457 44.4339C22.1299 44.538 21.6955 44.3539 21.4812 43.9827L19.2305 40.0845C19.0162 39.7133 19.0739 39.245 19.372 38.9369L21.5402 36.6959V34.2489L19.372 32.0079C19.0739 31.6998 19.0162 31.2316 19.2305 30.8604L21.4812 26.9622C21.6955 26.591 22.1299 26.4068 22.5457 26.5109L25.5706 27.2681L27.6897 26.0447L28.5464 23.0464ZM28.9861 27.5132C29.2018 27.3887 29.3607 27.1851 29.4292 26.9456L30.1936 24.2701H33.2466L34.011 26.9456C34.0794 27.1851 34.2383 27.3887 34.4541 27.5132L37.2459 29.1251C37.4617 29.2497 37.7174 29.2855 37.9591 29.225L40.6583 28.5493L42.1848 31.1932L40.25 33.193C40.0768 33.372 39.9799 33.6114 39.9799 33.8605V37.0843C39.9799 37.3334 40.0768 37.5728 40.25 37.7518L42.1848 39.7516L40.6583 42.3955L37.9591 41.7198C37.7174 41.6593 37.4617 41.6951 37.2459 41.8197L34.4541 43.4316C34.2383 43.5561 34.0794 43.7597 34.011 43.9992L33.2466 46.6747H30.1936L29.4292 43.9992C29.3607 43.7597 29.2018 43.5561 28.9861 43.4316L26.1942 41.8197C25.9785 41.6951 25.7228 41.6593 25.4811 41.7198L22.7819 42.3955L21.2554 39.7516L23.1902 37.7518C23.3634 37.5728 23.4602 37.3334 23.4602 37.0843V33.8605C23.4602 33.6114 23.3634 33.372 23.1902 33.193L21.2554 31.1932L22.7819 28.5493L25.4811 29.225C25.7228 29.2855 25.9785 29.2497 26.1942 29.1251L28.9861 27.5132ZM31.7201 41.6407C28.3134 41.6407 25.5517 38.8791 25.5517 35.4724C25.5517 32.0657 28.3134 29.3041 31.7201 29.3041C35.1268 29.3041 37.8884 32.0657 37.8884 35.4724C37.8884 38.8791 35.1268 41.6407 31.7201 41.6407ZM35.9684 35.4724C35.9684 37.8187 34.0664 39.7207 31.7201 39.7207C29.3738 39.7207 27.4717 37.8187 27.4717 35.4724C27.4717 33.1261 29.3738 31.2241 31.7201 31.2241C34.0664 31.2241 35.9684 33.1261 35.9684 35.4724Z" fill="url(#paint1_linear_606_96)"/>
5
+ <defs>
6
+ <linearGradient id="paint0_linear_606_96" x1="31.72" y1="95.7208" x2="95.488" y2="34.3249" gradientUnits="userSpaceOnUse">
7
+ <stop stop-color="#0FA4B7"/>
8
+ <stop offset="0.494757" stop-color="#1DC1C7"/>
9
+ <stop offset="1" stop-color="#2BE0D7"/>
10
+ </linearGradient>
11
+ <linearGradient id="paint1_linear_606_96" x1="28.4374" y1="99.2464" x2="98.7613" y2="44.9372" gradientUnits="userSpaceOnUse">
12
+ <stop stop-color="#0FA4B7"/>
13
+ <stop offset="0.494757" stop-color="#1DC1C7"/>
14
+ <stop offset="1" stop-color="#2BE0D7"/>
15
+ </linearGradient>
16
+ </defs>
17
+ </svg>
18
+ `;function he({title:t,subTitle:o,titleInfo:i,action:c,createdAt:m,content:f,isLast:C,titleLink:x,avatarUrl:L}){const[a,h]=l.useState(!1),[v,g]=l.useState(!1),[r,n]=l.useState(window.innerWidth),d=l.useRef(null),z=()=>{var u,y;const s=(y=(u=d.current)==null?void 0:u.mdp)==null?void 0:y.current;s&&g(s.scrollHeight>s.offsetHeight)};l.useEffect(()=>{const s=le(()=>{n(window.innerWidth)},100);return window.addEventListener("resize",s),()=>window.removeEventListener("resize",s)},[]),l.useEffect(()=>{z()},[r,f]);const j=l.useMemo(()=>Object.entries(i).map(([s,u])=>({key:s,value:u})).filter(s=>!!s.value),[i]);return e.jsx(p,{"data-cy":"log-entry",sx:{borderBottom:C?"none":"1px solid #ddd",padding:2},children:e.jsxs(p,{sx:{display:"flex",flexDirection:"row",flexWrap:"wrap",gap:2,width:"100%"},children:[e.jsx(p,{sx:{mt:.5},className:"log-author",children:L?e.jsx(q,{src:L,size:36,shape:"circle"}):e.jsx("div",{dangerouslySetInnerHTML:{__html:Le}})}),e.jsxs(p,{sx:{width:240},children:[e.jsx(w,{color:"textSecondary",component:"p",display:"flex",children:x?e.jsx(ae,{to:x,target:"_blank",children:e.jsx(E,{maxLength:26,children:t})}):e.jsx(E,{maxLength:26,children:t})}),e.jsx(K,{"aria-label":"Audit device info",title:e.jsx(p,{sx:{color:"#fff",display:"flex",flexDirection:"column",fontSize:12},children:j==null?void 0:j.map(s=>e.jsx(w,{sx:{color:"#fff"},fontSize:12,children:`${s.key}: ${s.value}`},s.key))}),children:e.jsxs(w,{component:"span",color:"textSecondary",fontSize:13,children:[o,e.jsx(ne,{sx:{ml:.5,fontSize:12,verticalAlign:"middle"}})]})})]}),e.jsxs(p,{sx:{width:200},children:[e.jsx(w,{sx:{fontSize:"16px",color:"rgb(36, 41, 47)",backgroundColor:"#fff",fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji'"},children:c}),e.jsx(w,{component:"span",color:"textSecondary",fontSize:13,children:e.jsx(ce,{value:m})})]}),e.jsx(p,{sx:{flex:1},children:v&&a?e.jsx(w,{className:"log-content",maxWidth:"lg",color:"textPrimary",component:"div","data-color-mode":"light",gutterBottom:!0,children:e.jsx(M,{source:f,rehypePlugins:[[I,{target:"_blank"}]]})}):e.jsx(w,{className:"log-content",maxWidth:"lg",color:"textPrimary",component:"div","data-color-mode":"light",gutterBottom:!0,sx:{display:a?"block":"-webkit-box",WebkitLineClamp:a?"none":2,WebkitBoxOrient:"vertical",overflow:a?"visible":"hidden",wordBreak:"break-word"},children:e.jsx(M,{ref:d,source:f,rehypePlugins:[[I,{target:"_blank"}]]})})}),e.jsxs(p,{children:[v&&e.jsx($,{size:"small",onClick:()=>h(!a),children:a?e.jsx(ie,{sx:{fontSize:22}}):e.jsx(R,{sx:{fontSize:22}})}),e.jsx($,{size:"small",children:e.jsx(N,{sx:{fontSize:22},content:f})})]})]})})}const ve=({log:t,info:o,inService:i})=>i?`${F.WELLKNOWN_BLOCKLET_ADMIN_PATH}/members?did=${t.actor.did}`:t.scope===o.did?`/team/members?did=${t.actor.did}`:`/blocklets/${t.scope}/members?did=${t.actor.did}`;function Ce({log:t,isLast:o}){var g,r,n,d,z,j,s,u,y,S,P,k,b,_;const{inService:i,info:c}=O(),{t:m}=V(),{teamDid:f}=de(),{showScope:C,scopeFormatter:x=D=>D}=B();if(!t.actor.did)return null;const L=!["blocklet",""].includes(t.actor.role);let a=t.actor.fullName;C&&(a=t.actor.fullName?`${a} - ${x(t.scope)}`:x(t.scope));const h=C?t.link:ve({log:t,inService:i,info:c}),v=t.actor.avatar?oe((g=t.actor)==null?void 0:g.avatar,f,i,((r=t.actor)==null?void 0:r.source)==="server"):"";return e.jsx(he,{isLast:o,isUser:L,avatarDid:t.actor.did,avatarUrl:v,title:a||m("common.unrecordedUser"),titleLink:h,subTitle:t.actor.role?t.actor.role:m("common.unrecordedRole"),content:t.content,action:t.action,titleInfo:{IP:t.ip,OS:`${(d=(n=t.env)==null?void 0:n.os)==null?void 0:d.name}${(j=(z=t.env)==null?void 0:z.os)!=null&&j.version?` ${(u=(s=t.env)==null?void 0:s.os)==null?void 0:u.version}`:""}`,Client:`${(S=(y=t.env)==null?void 0:y.browser)==null?void 0:S.name}${(k=(P=t.env)==null?void 0:P.browser)!=null&&k.Version?` ${(_=(b=t.env)==null?void 0:b.browser)==null?void 0:_.Version}`:""}`},createdAt:t.createdAt})}function be(){const{t}=V(),{data:o,loading:i,paging:c,setPaging:m,filter:f,categories:C,setCategory:x,fetch:L,actionOrContent:a,setActionOrContent:h}=B(),v=r=>{const n=Number(r.target.value);m({...c,pageSize:n}),L({page:1,pageSize:n,silent:!1})},g=r=>{m({...c,page:r+1}),L({page:r+1,pageSize:c.pageSize,silent:!1})};return i&&o.length===0?e.jsx("div",{style:{textAlign:"center",marginTop:"50px"},children:e.jsx(Q,{})}):e.jsxs(je,{"data-cy":"audit-logs",children:[e.jsxs(p,{sx:{display:"flex",flexDirection:"row",gap:2,alignItems:"center"},children:[e.jsxs(Y,{style:{width:"240px"},variant:"outlined",children:[e.jsx(J,{children:t("common.filter")}),e.jsx(X,{"data-cy":"filter-by-category-trigger",value:f.category,onChange:r=>x(r.target.value),fullWidth:!0,sx:{borderRadius:1},label:t("common.category"),disabled:i,children:C.map(r=>e.jsx(ee,{value:r.value,"data-cy":`filter-by-category-${r.value}`,children:e.jsx(p,{children:e.jsx("span",{children:r.label})})},r.label))})]}),e.jsx(p,{sx:{flex:1}}),e.jsx(H,{options:{searchPlaceholder:t("common.auditLogsSearch"),searchDebounceTime:600},search:a,searchText:a,searchTextUpdate:h,searchClose:()=>h(""),onSearchOpen:()=>{}})]}),o.length===0&&e.jsx(Z,{children:t("common.empty")}),e.jsx(p,{sx:{mt:2,border:(o==null?void 0:o.length)>0?"1px solid #ddd":"none",borderRadius:1},children:o.length>0&&o.map((r,n)=>e.jsx(Ce,{log:r,isLast:n===o.length-1},r.id))}),e.jsx(p,{sx:{display:"flex",justifyContent:"flex-end",mt:2},children:e.jsx(te,{disabled:i,page:c.page-1,count:c.total,rowsPerPage:c.pageSize,rowsPerPageOptions:[10,20,50,100],labelRowsPerPage:t("pagination.rowsPerPage"),labelDisplayedRows:({from:r,to:n,count:d})=>`${r}–${n} / ${d!==-1?d:`${t()}more than ${n}`}`,onPageChange:(r,n)=>g(n),onRowsPerPageChange:v})})]})}function Qe({scope:t,categories:o,showScope:i,scopeFormatter:c}){return e.jsx(fe,{scope:t,categories:o,showScope:i,scopeFormatter:c,children:e.jsx(be,{})})}const je=re.div`
19
+ .log-content {
20
+ p {
21
+ margin-bottom: 4px;
22
+ }
23
+ ul,
24
+ ol {
25
+ padding-left: 2rem;
26
+ }
27
+ li {
28
+ list-style-type: disc;
29
+ }
30
+ code.code-highlight {
31
+ max-height: 300px;
32
+ overflow: auto;
33
+ }
34
+ }
35
+ `;export{Qe as default};
@@ -0,0 +1 @@
1
+ import{l}from"./vendor-ux-did-connect-yBp5D51w.js";import{a as x}from"./vendor-react-DoD83n6N.js";class m{constructor(e,t,o){this.name=e,this.prefix=t,this.baseEncode=o}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class w{constructor(e,t,o){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),this.baseDecode=o}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return f(this,e)}}class g{constructor(e){this.decoders=e}or(e){return f(this,e)}decode(e){const t=e[0],o=this.decoders[t];if(o)return o.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const f=(r,e)=>new g({...r.decoders||{[r.prefix]:r},...e.decoders||{[e.prefix]:e}});class y{constructor(e,t,o,s){this.name=e,this.prefix=t,this.baseEncode=o,this.baseDecode=s,this.encoder=new m(e,t,o),this.decoder=new w(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const E=({name:r,prefix:e,encode:t,decode:o})=>new y(r,e,t,o),$=(r,e,t,o)=>{const s={};for(let p=0;p<e.length;++p)s[e[p]]=p;let c=r.length;for(;r[c-1]==="=";)--c;const i=new Uint8Array(c*t/8|0);let n=0,d=0,u=0;for(let p=0;p<c;++p){const h=s[r[p]];if(h===void 0)throw new SyntaxError(`Non-${o} character`);d=d<<t|h,n+=t,n>=8&&(n-=8,i[u++]=255&d>>n)}if(n>=t||255&d<<8-n)throw new SyntaxError("Unexpected end of data");return i},A=(r,e,t)=>{const o=e[e.length-1]==="=",s=(1<<t)-1;let c="",i=0,n=0;for(let d=0;d<r.length;++d)for(n=n<<8|r[d],i+=8;i>t;)i-=t,c+=e[s&n>>i];if(i&&(c+=e[s&n<<t-i]),o)for(;c.length*t&7;)c+="=";return c},a=({name:r,prefix:e,bitsPerChar:t,alphabet:o})=>E({prefix:e,name:r,encode(s){return A(s,o,t)},decode(s){return $(s,o,t,r)}}),C=a({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),P=a({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),S=a({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),U=a({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),v=a({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),O=a({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),j=a({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),k=a({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),D=a({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5}),N=Object.freeze(Object.defineProperty({__proto__:null,base32:C,base32hex:v,base32hexpad:j,base32hexpadupper:k,base32hexupper:O,base32pad:S,base32padupper:U,base32upper:P,base32z:D},Symbol.toStringTag,{value:"Module"})),B=x(N),{toBuffer:q,toAddress:z,toBase58:J,toHex:T}=l,{base32:b}=B,H=r=>{if(!r)return r;const e=q(z(r));return b.encode(e)},I=r=>{if(!r)return r;const e=b.decode(r),t=J(e);return t.length>30?t:T(e)};var V={encode:H,decode:I};export{V as b};
@@ -0,0 +1,40 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B17pt9EP.js","assets/vendor-ux-did-connect-yBp5D51w.js","assets/vendor-react-DoD83n6N.js","assets/vendor-utils-DDG_VdF0.js","assets/vendor-mui-core-BGkzVIkr.js","assets/vendor-hooks-B7GuuzU5.js","assets/lottie-web-B6s7dDoL.js","assets/vendor-ux-did-connect-DhgPdlEj.css","assets/vendor-arcblock-BSReIGUe.js","assets/index-NOMtolNQ.js","assets/index-BJbC-Qjr.js","assets/index-tUQxVYYQ.js","assets/index-AgKpYdvC.css"])))=>i.map(i=>d[i]);
2
+ import{_ as Se}from"./vendor-arcblock-BSReIGUe.js";import{a1 as Ie,j as e,ad as z,T as P,a3 as m,bg as Pe,a4 as re,I as F,D as ue,E as w,ab as Re,r as ke,bI as Ee,K as oe,y as _e,x as $,a9 as Oe}from"./vendor-mui-core-BGkzVIkr.js";import{r as De,u as Le,b1 as Ve,p as L}from"./vendor-ux-did-connect-yBp5D51w.js";import{E as M,D as ie,C as se,P as ne}from"./react-beautiful-dnd.esm-BxnrNcYv.js";import{d as ae}from"./DeleteOutline-DnZa0RcQ.js";import{l as Te,e as $e}from"./vendor-hooks-B7GuuzU5.js";import{r as h}from"./vendor-react-DoD83n6N.js";import{S as K}from"./studio-BKW7u_X7.js";import"./vendor-utils-DDG_VdF0.js";import"./lottie-web-B6s7dDoL.js";import"./raf-schd.esm-GV-XhwE0.js";var C={};Object.defineProperty(C,"__esModule",{value:!0});C.getVideoId=V;var Ue=C.getEmbedUrl=ze,We=C.getVideoCoverUrl=Fe,Ae=C.getVideoCheckUrl=Ne;C.getYoutubeId=pe;C.getVimeoId=he;C.isVideoUrl=qe;function pe(r){var s,l,i;const t=r.trim();return t.includes("youtu.be/")?(s=t.split("youtu.be/")[1])==null?void 0:s.split("?")[0]:t.includes("/embed/")?(l=t.split("/embed/")[1])==null?void 0:l.split("?")[0]:t.includes("youtube.com/watch")?new URL(t).searchParams.get("v"):t.includes("youtube.com/shorts/")?(i=t.split("/shorts/")[1])==null?void 0:i.split("?")[0]:""}function he(r){var s,l,i,a,u,y,x;const t=r.trim();return t.includes("/embed/")?(s=t.split("/embed/")[1])==null?void 0:s.split("?")[0]:t.includes("vimeo.com/video/")?(l=t.split("/video/")[1])==null?void 0:l.split("?")[0]:t.includes("vimeo.com/channels/")?(a=(i=t.split("/channels/")[1])==null?void 0:i.split("/")[1])==null?void 0:a.split("?")[0]:t.includes("vimeo.com/groups/")?(y=(u=t.split("/groups/")[1])==null?void 0:u.split("/")[1])==null?void 0:y.split("?")[0]:t.includes("vimeo.com/")?(x=t.split("vimeo.com/")[1])==null?void 0:x.split("?")[0]:""}const U={};function V(r){const t=r.trim();return!t||!/^https?:\/\/.+\..+/.test(t)?[]:(U[t]||(U[t]=(()=>{const s=new URL(t);return s.host.includes("youtube.com")||s.host.includes("youtu.be")?[pe(t),"youtube"]:s.host.includes("vimeo.com")?[he(t),"vimeo"]:[]})()),U[t])}const k={};function ze(r,{modestbranding:t=1,controls:s=0,autoplay:l=0}={}){const i=r.trim();if(!i)return"";if(k[i]!==void 0)return k[i];const[a,u]=V(i);return u==="youtube"?k[i]=`https://www.youtube.com/embed/${a}?modestbranding=${t}&controls=${s}&autoplay=${l}`:u==="vimeo"?k[i]=`https://player.vimeo.com/video/${a}?autoplay=${l}`:k[i]="",k[i]}const E={};function Fe(r){const t=r.trim();if(!t)return"";if(E[t]!==void 0)return E[t];const[s,l]=V(t);return l==="youtube"?E[t]=`https://img.youtube.com/vi/${s}/mqdefault.jpg`:l==="vimeo"?E[t]=`https://i.vimeocdn.com/${s}/1000x563`:E[t]="",E[t]}function Ne(r){const t=r.trim();if(!t)return"";const[s,l]=V(t);return l==="youtube"?`https://www.youtube.com/oembed?url=https://www.youtube.com/watch?v=${s}&format=json`:l==="vimeo"?`https://vimeo.com/api/oembed.json?url=https://vimeo.com/${s}`:""}function qe(r){const t=r.trim();return V(t).length>0}var X={},He=Ie;Object.defineProperty(X,"__esModule",{value:!0});var me=X.default=void 0,Be=He(De()),Ke=e;me=X.default=(0,Be.default)((0,Ke.jsx)("path",{d:"M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1m7 18H5V4h2v3h10V4h2z"}),"ContentPaste");const le=h.lazy(()=>Se(()=>import("./index-B17pt9EP.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12])).then(r=>({default:r.Uploader}))),Me=`${L.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/logo/upload`,Xe=`${L.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/screenshots/upload`,Ye=`${L.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/logo`,W=`${L.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/screenshots`,Je=`${L.WELLKNOWN_SERVICE_PATH_PREFIX}/api/studio/videos`,ce=5,de=3;function ct(){var ee;const{t:r,locale:t}=Le(),[s,l]=h.useState(!1),[i,a]=h.useState(!1),[u,y]=h.useState([]),[x,j]=h.useState([]),[f,S]=h.useState(""),[T,_]=h.useState(""),[N,q]=h.useState(Date.now()),p=Te(async()=>{var c;const n=await(await fetch(W)).json();return y(n.screenshots||[]),j(((c=n.videos)==null?void 0:c.filter(d=>!!d))||[]),n}),R=h.useRef(null),g=h.useRef(null);if(p.loading&&!p.data)return e.jsx(K,{children:e.jsx(M,{size:40})});if(p.error)return e.jsx(K,{children:e.jsx(z,{direction:"column",spacing:1,sx:{mb:3},children:e.jsx(P,{color:"error.main",sx:{fontWeight:"bold"},children:p.error.message})})});const v=async o=>{const n=o.filter(c=>!!c);j(n),await fetch(Je,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({videos:n})})},H=async o=>{const n=Array.from(x),[c]=n.splice(o.source.index,1);n.splice(o.destination.index,0,c),await v(n)},xe=async o=>{const n=Array.from(u),[c]=n.splice(o.source.index,1);n.splice(o.destination.index,0,c),y(n),await fetch(`${W}/reorder`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({screenshots:n})})},J=async o=>{o.destination&&(o.source.droppableId==="screenshots"?await xe(o):o.source.droppableId==="videos"&&await H(o),p.runAsync())},Z=o=>{_(o.trim()),a(!0)},G=async(o,n="")=>{let c=[];n?c=o?x.map(d=>d===n?o.trim():d):x.filter(d=>d!==n):o&&(c=[...x,o.trim()]),_(""),a(!1),(o||n)&&await v(c),p.runAsync()},fe=o=>{l(!0),S(o)},Q=()=>{l(!1),S("")};function be(){const o=[{label:r("studio.type"),value:"png, jpg, webp, svg"},{label:r("studio.ratio"),value:"256x256"},{label:r("studio.size"),value:"<500KB"}],n=[{label:r("studio.tip"),value:r("studio.change")}];return e.jsx(A,{title:r("common.logo"),rules:o,tips:n,children:e.jsx(m,{sx:{flex:1,cursor:"pointer"},children:e.jsx(Pe,{variant:"square",sx:{width:128,height:128},alt:"Blocklet Logo",src:`${Ye}?t=${N}`,onClick:()=>{var c;return(c=R.current)==null?void 0:c.open()}})})})}function ve(){const o=[{label:r("studio.ratio"),value:"16 / 9"},{label:r("studio.count"),value:`1~${ce}`},{label:r("studio.size"),value:"<5MB"}],n=[{label:r("studio.tip"),value:r("studio.orderTipLong")}];return e.jsx(A,{title:r("common.screenshot"),tips:n,rules:o,children:e.jsx(ie,{onDragEnd:J,children:e.jsx(se,{droppableId:"screenshots",direction:"horizontal",children:(d,O)=>e.jsxs(m,{display:"flex",alignItems:"center",sx:{flex:1,mt:1,flexWrap:"wrap",minHeight:225,background:O.isDraggingOver?"#f5f5f5":"transparent",transition:"background-color 0.2s ease",border:O.isDraggingOver?"2px dashed #999":"none",borderRadius:"4px"},ref:d.innerRef,...d.droppableProps,children:[u.map((b,B)=>e.jsx(ne,{draggableId:b,index:B,children:(I,D)=>{const te=`${W}/${b}`;return e.jsxs(m,{ref:I.innerRef,...I.draggableProps,...I.dragHandleProps,className:"image-wrapper",sx:{transform:D.isDragging?"scale(1.05)":"none",boxShadow:D.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:te,onClick:()=>fe(b),style:{cursor:"pointer"}}),e.jsx(re,{title:r("studio.deleteTooltip"),children:e.jsx(F,{className:"action",style:{top:10,color:"white",background:"red"},onClick:async()=>{await fetch(te,{method:"DELETE"}),p.runAsync()},children:e.jsx(ae,{})})})]})}},b)),d.placeholder,u.length<ce&&c()]})})})});function c(){return e.jsx(m,{display:"flex",justifyContent:"center",alignItems:"center",mb:2,width:400,height:225,fontSize:40,sx:{background:"#eee",cursor:"pointer",color:"#999"},onClick:()=>{var d;return(d=g.current)==null?void 0:d.open()},children:"+"})}}function je(){const o=[{label:r("studio.count"),value:`1~${de}`},{label:r("studio.videoType"),value:e.jsxs(e.Fragment,{children:[e.jsx("a",{href:"https://www.youtube.com/",target:"_blank",rel:"noreferrer",children:"Youtube"}),","," ",e.jsx("a",{href:"https://vimeo.com/",target:"_blank",rel:"noreferrer",children:"Vimeo"})]})}],n=[{label:`${r("studio.tip")}`,value:r("studio.videoTipLong")}];return e.jsxs(A,{title:r("studio.video"),tips:n,rules:o,children:[e.jsx(ie,{onDragEnd:J,children:e.jsx(se,{droppableId:"videos",direction:"horizontal",children:(d,O)=>e.jsxs(m,{display:"flex",alignItems:"center",sx:{flex:1,mt:1,flexWrap:"wrap",minHeight:225,background:O.isDraggingOver?"#f5f5f5":"transparent",transition:"background-color 0.2s ease",border:O.isDraggingOver?"2px dashed #999":"none",borderRadius:"4px"},ref:d.innerRef,...d.droppableProps,children:[x.map((b,B)=>e.jsx(ne,{draggableId:b,index:B,children:(I,D)=>e.jsxs(m,{ref:I.innerRef,...I.draggableProps,...I.dragHandleProps,className:"image-wrapper",sx:{transform:D.isDragging?"scale(1.05)":"none",boxShadow:D.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:"videos",src:We(b),onClick:()=>Z(b),style:{cursor:"pointer"}}),e.jsx(m,{sx:{position:"absolute",cursor:"pointer",fontSize:"3rem"},onClick:()=>Z(b),children:e.jsx(ge,{})}),e.jsx(re,{title:r("studio.deleteTooltip"),children:e.jsx(F,{className:"action",style:{top:10,color:"white",background:"red"},onClick:()=>G(null,b),children:e.jsx(ae,{})})})]})},b)),d.placeholder,x.length<de&&c()]})})}),i&&e.jsx(Y,{t:r,handleOperateVideo:G,defaultUrl:T,videos:x})]});function c(){return e.jsx(m,{display:"flex",justifyContent:"center",alignItems:"center",mb:2,width:400,height:225,fontSize:40,sx:{background:"#eee",cursor:"pointer",color:"#999"},onClick:()=>a(!0),children:"+"})}}function ye(){return e.jsx(ue,{open:s,onClose:Q,maxWidth:"xl",PaperProps:{style:{backgroundColor:"transparent",boxShadow:"none"}},children:e.jsx("img",{src:`${W}/${f}`,alt:"Screenshot Full",style:{maxWidth:"90vw",maxHeight:"90vh",objectFit:"contain"},onClick:Q})})}function we(){return e.jsxs(h.Suspense,{fallback:e.jsx(M,{size:40}),children:[e.jsx(le,{ref:R,locale:t,popup:!0,onUploadFinish:()=>{var o;(o=R.current)==null||o.close(),q(Date.now()),p.runAsync()},plugins:["ImageEditor"],installerProps:{disabled:!0},apiPathProps:{uploader:Me,disableMediaKitPrefix:!0,disableMediaKitStatus:!0},coreProps:{restrictions:{allowedFileTypes:["image/png","image/jpeg","image/webp","image/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(le,{ref:g,popup:!0,onUploadFinish:()=>{var o;(o=g.current)==null||o.close(),p.runAsync()},installerProps:{disabled:!0},plugins:["ImageEditor"],apiPathProps:{uploader:Xe,disableMediaKitPrefix:!0,disableMediaKitStatus:!0},coreProps:{restrictions:{allowedFileTypes:["image/*","application/svg+xml"],maxFileSize:1024*1024*5,maxNumberOfFiles:5-u.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 Ce=`https://www.arcblock.io/docs/blocklet-store/${t}/supplying-images`;return e.jsx(K,{children:e.jsxs(Ze,{children:[e.jsxs(z,{direction:"column",spacing:1,sx:{mb:3},children:[e.jsx(P,{variant:"h5",sx:{fontWeight:"bold"},children:r("studio.title",{title:(ee=p.data)==null?void 0:ee.title})}),e.jsxs(P,{variant:"body2",color:"text.secondary",children:[r("studio.description")," ",e.jsx("a",{href:Ce,target:"_blank",rel:"noreferrer",children:r("studio.documentation")})]})]}),be(),ve(),je(),ye(),we()]})})}function A({title:r,rules:t,tips:s,children:l}){return e.jsxs(m,{display:"flex",flexDirection:"column",sx:{mb:4},children:[e.jsxs(z,{direction:"column",spacing:1,sx:{mb:2},children:[e.jsx(P,{variant:"h6",sx:{fontWeight:"bold"},children:r}),e.jsx(z,{direction:"row",spacing:2,sx:{fontSize:"13px",opacity:.8},children:t.map(a=>i(a.label,a.value))}),s.map(a=>e.jsx(m,{sx:{fontSize:"13px",opacity:.8},children:i(a.label,a.value)}))]}),l]});function i(a,u){return e.jsxs(m,{component:"span",children:[e.jsxs(m,{component:"span",sx:{color:"#555",mr:.5},children:[a,":"]}),e.jsx(m,{component:"span",sx:{color:"#007ec6"},children:u})]})}}A.propTypes={title:w.string.isRequired,rules:w.array.isRequired,tips:w.array.isRequired,children:w.node.isRequired};function Y({handleOperateVideo:r,t,defaultUrl:s="",videos:l}){var R;const[i,a]=h.useState(s),[u,y]=h.useState(!1),[x,j]=h.useState(!1),f=h.useRef(i),S=i!==s&&l.includes(i),T=!i&&s,_=!S&&(i&&i!==f.current||u),N=!!((R=navigator.clipboard)!=null&&R.readText),{run:q}=$e(p,{wait:500,leading:!0});return e.jsxs(ue,{open:!0,fullWidth:!0,maxWidth:"sm",children:[e.jsx(Re,{children:t(s?"studio.videoDialogEditTitle":"studio.videoDialogTitle")}),e.jsxs(ke,{children:[e.jsx(Ee,{fullWidth:!0,value:i,onChange:g=>{const v=g.target.value.trim();a(v),v?q(v):j(!1)},placeholder:t("studio.videoInputLabel"),endAdornment:i?e.jsx(oe,{position:"end",children:e.jsx(F,{onClick:()=>{a(""),p("")},children:e.jsx(Ve,{})})}):N&&e.jsx(oe,{position:"end",children:e.jsx(F,{onClick:async()=>{try{const g=(await navigator.clipboard.readText()||"").trim();a(g),p(g)}catch(g){console.error(g)}},children:e.jsx(me,{})})})}),e.jsxs(m,{mb:2,mt:.5,children:[S&&e.jsx(P,{variant:"body2",color:"error",children:t("studio.duplicateVideo")}),!S&&x&&e.jsx(P,{variant:"body2",color:"error",children:t("studio.videoDialogNoSrc")})]}),f.current?e.jsx("iframe",{width:"100%",height:"315",title:`video-${f.current}`,src:Ue(f.current),allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0,border:"1px solid #eee"}):e.jsx(m,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:315,width:"100%",border:"1px solid #eee"},children:u?e.jsx(M,{size:40}):e.jsx(P,{variant:"h5",color:"text.secondary",children:e.jsx(ge,{})})})]}),e.jsxs(_e,{children:[e.jsx($,{onClick:()=>r(),children:t("studio.cancel")}),T&&e.jsx($,{variant:"contained",color:"error",onClick:()=>r(null,s),children:t("studio.delete")}),_&&e.jsx($,{variant:"contained",onClick:()=>p(i),disabled:!i||u,children:t("studio.preview")}),!T&&!_&&e.jsx($,{variant:"contained",onClick:()=>r(f.current),disabled:!f.current||s===f.current||S,children:t("studio.confirm")})]})]});function p(g){f.current="";const v=Ae(g);j(g?!v:!1),v&&(y(!0),fetch(v).then(H=>{H.ok?(f.current=g,j(!1)):j(!0)}).catch(()=>{j(!0)}).finally(()=>y(!1)))}}Y.propTypes={handleOperateVideo:w.func.isRequired,t:w.func.isRequired,defaultUrl:w.string,videos:w.array.isRequired};Y.defaultProps={defaultUrl:""};function ge(){return e.jsxs("svg",{viewBox:"0 0 56 56",fill:"none",xmlns:"http://www.w3.org/2000/svg",height:48,width:48,children:[e.jsx("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M28 56C43.464 56 56 43.464 56 28C56 12.536 43.464 0 28 0C12.536 0 0 12.536 0 28C0 43.464 12.536 56 28 56Z",fill:"black","fill-opacity":"0.54"}),e.jsx("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M39.6667 28L21 17.5V38.5L39.6667 28Z",fill:"white"})]})}const Ze=Oe.div`
3
+ margin-top: 24px;
4
+ .image-wrapper {
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
+ right: 10px;
25
+ opacity: 0.7;
26
+ background-color: white;
27
+ box-shadow: 0 0 20px 0px #000;
28
+ &:hover {
29
+ opacity: 1;
30
+ }
31
+ }
32
+ &:hover .action {
33
+ visibility: visible;
34
+ }
35
+ }
36
+ .image-wrapper img {
37
+ width: 100%;
38
+ height: auto;
39
+ }
40
+ `;export{ct as default};
@@ -0,0 +1 @@
1
+ import{j as f,bg as P,E as a}from"./vendor-mui-core-BGkzVIkr.js";import{p as E,P as $}from"./vendor-ux-did-connect-yBp5D51w.js";import{x as g}from"./vendor-utils-DDG_VdF0.js";import{z as x,A as j,W as h,X as R,Y as A}from"./index-BJbC-Qjr.js";function w({blocklet:r,ancestors:p=[]}){var d,m;const s=x(),{inService:n}=s,i=j(r==null?void 0:r.status)||h(r==null?void 0:r.status),o=`?v=${(d=r==null?void 0:r.meta)==null?void 0:d.version}${i?"~":""}`;let t=n?`${g(A,E.WELLKNOWN_SERVICE_PATH_PREFIX,"/blocklet/logo-bundle")}${o}`:g(s.imgPrefix,"blocklet.png");if(r.source==="registry"&&r.deployedFrom&&r.meta.logo)t=`${g(r.deployedFrom,R(r.meta.bundleDid,r.meta.logo))}${o}`;else{const u=((m=window.env)==null?void 0:m.apiPrefix)||"/",e=p.concat(r),c=n?e.slice(1):e;t=`${g(u,`/blocklet/logo-bundle${c.map(v=>`/${v.meta.did}`).join("")}`)}${o}`}return{logoUrl:t,inService:n}}function y({blocklet:r,style:p,size:s,ancestors:n,...i}){const o=x(),{logoUrl:t,inService:d}=w({blocklet:r,ancestors:n}),{variant:m}=i,u=d?()=>{}:c=>{c.target.src=`${o.imgPrefix}/blocklet.png`};let e=f.jsx("img",{src:t,onError:u,alt:r.meta.name,style:{width:s}});return r.meta.logo||(e=f.jsx($,{did:r.meta.did||"",responsive:!0})),f.jsx(P,{variant:m||"square",style:Object.assign({backgroundColor:"transparent",width:s,height:s,borderRadius:10},p),...i,children:e})}y.propTypes={blocklet:a.object.isRequired,style:a.object,size:a.oneOfType([a.number,a.string]),ancestors:a.array};y.defaultProps={style:{},size:40,ancestors:[]};export{y as B};
@@ -0,0 +1 @@
1
+ import{j as o}from"./vendor-mui-core-BGkzVIkr.js";import{B as n}from"./vendor-ux-did-connect-yBp5D51w.js";function m({...t}){return o.jsx(n,{className:"bottom-button",variant:"contained",color:"primary",...t})}export{m as S};
@@ -0,0 +1 @@
1
+ import{r as i}from"./vendor-react-DoD83n6N.js";import{j as t,E as e}from"./vendor-mui-core-BGkzVIkr.js";import{aU as s,bg as c}from"./vendor-ux-did-connect-yBp5D51w.js";function n({children:p,...r}){const{t:o}=i.useContext(s);return t.jsx(c,{tip:o("common.copyTip"),copiedTip:o("common.copiedTip"),...r,children:p})}n.propTypes={children:e.any.isRequired};export{n as C};
@@ -1 +1 @@
1
- import{a as e}from"./vendor-react-DoD83n6N.js";import{al as r}from"./vendor-utils-oUOK1Lc7.js";const m=e(r);export{m as r};
1
+ import{a as e}from"./vendor-react-DoD83n6N.js";import{al as r}from"./vendor-utils-DDG_VdF0.js";const m=e(r);export{m as r};
@@ -1,11 +1,11 @@
1
- import{aa as d,j as e,a2 as T,a3 as h,E as C}from"./vendor-mui-core-Dh3XBxY7.js";import{e as B,z as _,j as v,b as $}from"./vendor-arcblock-o7bY298v.js";import{o as A,q as F,ap as I,d as M,e as N,ah as z,aq as W,P as q}from"./index-DoNZBHNi.js";import{r as a}from"./vendor-react-DoD83n6N.js";import{x as O}from"./vendor-utils-oUOK1Lc7.js";import{L as V}from"./launch-result-message-DgQUOIWL.js";import{g as X}from"./get-safe-url-Cjj-SJ8P.js";import{S as E}from"./button-B6x_cuep.js";import{S as H}from"./layout-C5Uy45Tb.js";import"./vendor-hooks-Bxo1qD_4.js";import"./content-layout-B8euliPp.js";const K=d(V)`
1
+ import{a9 as d,j as e,a2 as T,a3 as h,E as C}from"./vendor-mui-core-BGkzVIkr.js";import{u as B,Y as _,Q as v,p as $}from"./vendor-ux-did-connect-yBp5D51w.js";import{o as A,q as F,ao as I,d as M,e as N,ag as W,ap as z,P as O}from"./index-BJbC-Qjr.js";import{r as a}from"./vendor-react-DoD83n6N.js";import{x as Q}from"./vendor-utils-DDG_VdF0.js";import{L as V}from"./launch-result-message-DvBZHCJ7.js";import{g as X}from"./get-safe-url-DpCrXjD2.js";import{S as E}from"./button-Bzt1WONY.js";import{S as q}from"./layout--BSYMlCG.js";import"./vendor-hooks-B7GuuzU5.js";import"./lottie-web-B6s7dDoL.js";import"./vendor-arcblock-BSReIGUe.js";import"./content-layout-GiaabWKJ.js";const H=d(V)`
2
2
  && .result-footer {
3
3
  height: 120px;
4
4
  > div {
5
5
  flex-wrap: wrap;
6
6
  }
7
7
  }
8
- `,Q=K;function U({onPrevious:s}){const{t:r}=B(),[x,g]=a.useState(!1),[c,u]=a.useState("starting"),[i,k]=a.useState(),{blocklet:l}=A(),[n,P]=a.useState(""),w=F("fromLauncher"),m=!["starting","running"].includes(c),b=c==="starting",L={stopped:r("blocklet.start"),starting:r("blocklet.starting"),running:r("blocklet.open")},R=()=>{const t=new URL(window.location.href).searchParams.get("redirect");if(!n||!_(n)){v.error(r("blocklet.gotoVisitError"));return}let o=new URL(n);t&&(o=new URL(t,n));const j=I.get("login_token");o.host!==window.location.host&&j&&(o.pathname=O($.WELLKNOWN_SERVICE_PATH_PREFIX,"redirect-with-login"),o.searchParams.set("setupToken",j)),window.location.href=X(o.href)},f=async()=>{var p;g(!0),u("starting");try{await M.post("/blocklet/start",{fromSetup:!0});const{blocklet:{status:t}={}}=await N.getBlocklet({input:{did:l.meta.did}});g(!1),u(t),k(t==="running"?null:r("setup.complete.notRunning"))}catch(t){const o=((p=t==null?void 0:t.response)==null?void 0:p.data)||t.message;v.error(o),g(!1),u("stopped"),k(o)}};a.useEffect(()=>{u(l.status),["starting","running"].includes(l.status)||f()},[]),a.useEffect(()=>{n||(async()=>{const t=await z.evaluateURLs(l.site.domainAliases.map(o=>W(o.value,q)),{preferAccessible:!0});t.length>0&&P(t[0].url)})()},[l,n]);const S=localStorage.getItem("blocklet-server-url"),y=b||!n;return w&&!y&&(m?f():R()),e.jsx(D,{children:e.jsx(Q,{variant:i?"error":"success",title:r(i?"setup.complete.failedTitle":"setup.complete.title"),footer:e.jsxs(G,{children:[m&&e.jsx(E,{variant:"outlined",disabled:x,onClick:()=>s(),children:r("setup.previous")}),w?e.jsxs(J,{rel:"noreferrer",children:[e.jsx(T,{size:16,style:{marginRight:14}})," ",r("common.redirecting")]}):e.jsxs(e.Fragment,{children:[e.jsx(E,{style:{marginLeft:m?24:0},disabled:x||b,onClick:()=>m?f():R(),loading:y,children:L[c]||L.stopped}),(c==="running"||i)&&!!S&&e.jsx(h,{width:"100%",mt:2,children:e.jsx("a",{href:S,target:"_blank",rel:"noopener noreferrer",className:"back-to-server-link",children:r("setup.complete.backToServer")})}),i&&e.jsx(h,{className:"error-message",fontSize:14,color:"#888",mt:1,children:i})]})]})})})}const D=d(H)`
8
+ `,K=H;function U({onPrevious:s}){const{t:r}=B(),[x,g]=a.useState(!1),[c,u]=a.useState("starting"),[i,k]=a.useState(),{blocklet:l}=A(),[n,P]=a.useState(""),w=F("fromLauncher"),m=!["starting","running"].includes(c),L=c==="starting",R={stopped:r("blocklet.start"),starting:r("blocklet.starting"),running:r("blocklet.open")},S=()=>{const t=new URL(window.location.href).searchParams.get("redirect");if(!n||!_(n)){v.error(r("blocklet.gotoVisitError"));return}let o=new URL(n);t&&(o=new URL(t,n));const j=I.get("login_token");o.host!==window.location.host&&j&&(o.pathname=Q($.WELLKNOWN_SERVICE_PATH_PREFIX,"redirect-with-login"),o.searchParams.set("setupToken",j)),window.location.href=X(o.href)},f=async()=>{var p;g(!0),u("starting");try{await M.post("/blocklet/start",{fromSetup:!0});const{blocklet:{status:t}={}}=await N.getBlocklet({input:{did:l.meta.did}});g(!1),u(t),k(t==="running"?null:r("setup.complete.notRunning"))}catch(t){const o=((p=t==null?void 0:t.response)==null?void 0:p.data)||t.message;v.error(o),g(!1),u("stopped"),k(o)}};a.useEffect(()=>{u(l.status),["starting","running"].includes(l.status)||f()},[]),a.useEffect(()=>{n||(async()=>{const t=await W.evaluateURLs(l.site.domainAliases.map(o=>z(o.value,O)),{preferAccessible:!0});t.length>0&&P(t[0].url)})()},[l,n]);const b=localStorage.getItem("blocklet-server-url"),y=L||!n;return w&&!y&&(m?f():S()),e.jsx(Y,{children:e.jsx(K,{variant:i?"error":"success",title:r(i?"setup.complete.failedTitle":"setup.complete.title"),footer:e.jsxs(D,{children:[m&&e.jsx(E,{variant:"outlined",disabled:x,onClick:()=>s(),children:r("setup.previous")}),w?e.jsxs(G,{rel:"noreferrer",children:[e.jsx(T,{size:16,style:{marginRight:14}})," ",r("common.redirecting")]}):e.jsxs(e.Fragment,{children:[e.jsx(E,{style:{marginLeft:m?24:0},disabled:x||L,onClick:()=>m?f():S(),loading:y,children:R[c]||R.stopped}),(c==="running"||i)&&!!b&&e.jsx(h,{width:"100%",mt:2,children:e.jsx("a",{href:b,target:"_blank",rel:"noopener noreferrer",className:"back-to-server-link",children:r("setup.complete.backToServer")})}),i&&e.jsx(h,{className:"error-message",fontSize:14,color:"#888",mt:1,children:i})]})]})})})}const Y=d(q)`
9
9
  justify-content: center;
10
10
  .icon-success {
11
11
  width: 64px;
@@ -21,7 +21,7 @@ import{aa as d,j as e,a2 as T,a3 as h,E as C}from"./vendor-mui-core-Dh3XBxY7.js"
21
21
  overflow: hidden;
22
22
  overflow-y: scroll;
23
23
  }
24
- `;U.propTypes={onPrevious:C.func};U.defaultProps={onPrevious:()=>{}};const G=d(h)`
24
+ `;U.propTypes={onPrevious:C.func};U.defaultProps={onPrevious:()=>{}};const D=d(h)`
25
25
  width: 100%;
26
26
  margin-top: auto;
27
27
  padding-top: 24px;
@@ -36,7 +36,7 @@ import{aa as d,j as e,a2 as T,a3 as h,E as C}from"./vendor-mui-core-Dh3XBxY7.js"
36
36
  width: 100%;
37
37
  }
38
38
  }
39
- `,J=d.a`
39
+ `,G=d.a`
40
40
  display: flex;
41
41
  justify-content: center;
42
42
  align-items: center;