@abtnode/blocklet-services 1.16.44-beta-20250528-003415-7a5e5d90 → 1.16.44-beta-20250529-223630-10e16ac8

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 (185) hide show
  1. package/api/middlewares/proxy-to-daemon.js +2 -1
  2. package/api/routes/env.js +5 -0
  3. package/dist/assets/{AdapterDayjs-gCvKcGfu.js → AdapterDayjs-CDDcwz3P.js} +1 -1
  4. package/dist/assets/{ArrowDropDown-D32FY-Mt.js → ArrowDropDown-DPqiF9Rw.js} +1 -1
  5. package/dist/assets/{CheckCircle-BBSSDlcc.js → CheckCircle-Caqp5gKY.js} +1 -1
  6. package/dist/assets/{ChevronLeft-CF24ouxR.js → ChevronLeft-DONyUbIg.js} +1 -1
  7. package/dist/assets/{ChevronRight-DA9t_C-l.js → ChevronRight-DgAwWLdY.js} +1 -1
  8. package/dist/assets/{DeleteOutline-CzIOFoFP.js → DeleteOutline-DpNyWtNL.js} +1 -1
  9. package/dist/assets/{Done-MQdb8YLa.js → Done-BTd13H2U.js} +1 -1
  10. package/dist/assets/{Download-IxxF4Ujs.js → Download-Bm8sKXA2.js} +1 -1
  11. package/dist/assets/{Edit-DSht16TX.js → Edit-CUl1Rt8i.js} +1 -1
  12. package/dist/assets/{Error-CkoCqY66.js → Error-DEKvwVoF.js} +1 -1
  13. package/dist/assets/{ExpandLess-CudE_1oQ.js → ExpandLess-t1cH-Bc4.js} +1 -1
  14. package/dist/assets/{Google-AZBuQJFI.js → Google-Bn3zPWiu.js} +1 -1
  15. package/dist/assets/{Home-BaA3V3I7.js → Home-C3ax1tQ7.js} +1 -1
  16. package/dist/assets/{InfoOutlined-Cd28U1Oc.js → InfoOutlined-D3XnF0Vg.js} +1 -1
  17. package/dist/assets/{Launch-Ddo_WSQI.js → Launch-Dz9mQnYC.js} +1 -1
  18. package/dist/assets/{LaunchOutlined-CO4dugwH.js → LaunchOutlined-E7HcQu_6.js} +1 -1
  19. package/dist/assets/{MoreHoriz-D-L8sA4c.js → MoreHoriz-DpKn_fkc.js} +1 -1
  20. package/dist/assets/{PlayArrow-CLKgdv6H.js → PlayArrow-CDOOUxMp.js} +1 -1
  21. package/dist/assets/{TuneOutlined-BWqIZK2m.js → TuneOutlined-D0gGDoIJ.js} +1 -1
  22. package/dist/assets/{ViewList-DWudZTBg.js → ViewList-C8G9e3ft.js} +1 -1
  23. package/dist/assets/{access-control-DlT-JQML.js → access-control-BhxOcGdx.js} +1 -1
  24. package/dist/assets/{actions-azdiYocL.js → actions-DP7pj6xB.js} +1 -1
  25. package/dist/assets/{add-component-core-Cm8Y0zkt.js → add-component-core-XUReAzat.js} +1 -1
  26. package/dist/assets/{add-resource-CVCoahx_.js → add-resource-C3kDcfBw.js} +1 -1
  27. package/dist/assets/{addon-3ZMGwARO.js → addon-CRj4Enw7.js} +1 -1
  28. package/dist/assets/{advanced-Nvg1CqJg.js → advanced-hz-KSWn2.js} +3 -3
  29. package/dist/assets/appearance-ChvtVBNv.js +1 -0
  30. package/dist/assets/{ar-T0OvMFDJ.js → ar-CSZJf27k.js} +1 -1
  31. package/dist/assets/{audit-logs-BPjUleS-.js → audit-logs-DXoc97BV.js} +1 -1
  32. package/dist/assets/authorize-_fbQ19S4.js +1 -0
  33. package/dist/assets/{base32-CLrnUJal.js → base32-WurN0cIW.js} +1 -1
  34. package/dist/assets/{branding-B8r8EJ2R.js → branding-DpkSF6dd.js} +2 -2
  35. package/dist/assets/{branding-Cr4GBUXi.js → branding-DuPWVNlC.js} +1 -1
  36. package/dist/assets/{bundle-avatar-Br48PGS5.js → bundle-avatar-D4fwror8.js} +1 -1
  37. package/dist/assets/{button-8G90WP8a.js → button-_1HExv7r.js} +1 -1
  38. package/dist/assets/{click-to-copy-ByEMWZD_.js → click-to-copy-R7MF4AwY.js} +1 -1
  39. package/dist/assets/{collapse-Cliwxlbv.js → collapse-l9wHY9gJ.js} +1 -1
  40. package/dist/assets/{complete-CzlLydJT.js → complete-C5D4D-fJ.js} +1 -1
  41. package/dist/assets/{component-5_wmVxpp.js → component-CURpjZJ2.js} +1 -1
  42. package/dist/assets/{config-BnObxTpi.js → config-Cd14MJHa.js} +1 -1
  43. package/dist/assets/{config-emhMgKqq.js → config-e36Xplpo.js} +1 -1
  44. package/dist/assets/config-navigation-BvjYZI_j.js +26 -0
  45. package/dist/assets/{config-space-TsP5osn9.js → config-space-EoSm62Er.js} +1 -1
  46. package/dist/assets/{confirm-DI8TUyRK.js → confirm-Vzr2I9eM.js} +1 -1
  47. package/dist/assets/{connect-D55qWQWC.js → connect-B5Xr7MId.js} +1 -1
  48. package/dist/assets/{connect-B_BnGQjp.js → connect-DXOsnqkO.js} +1 -1
  49. package/dist/assets/{connect-to-DzPwhREN.js → connect-to-Bz9wYM04.js} +1 -1
  50. package/dist/assets/{dashboard-AdC8-kkA.js → dashboard-xUr1SbPS.js} +3 -3
  51. package/dist/assets/{de-WYW4JJdA.js → de-C-F2uwju.js} +1 -1
  52. package/dist/assets/de-CA1MfHz7.js +1 -0
  53. package/dist/assets/{delete-confirm-Bn1HZjaL.js → delete-confirm-DNn4Os6R.js} +1 -1
  54. package/dist/assets/{did-address-BlAXR08O.js → did-address-Dq-4__HB.js} +1 -1
  55. package/dist/assets/{domain-Cod_zL8_.js → domain-XXgOrJDa.js} +1 -1
  56. package/dist/assets/{domain-action-card-C4FpSn67.js → domain-action-card-Cf1AoKOi.js} +1 -1
  57. package/dist/assets/domains-DeFj6Ipl.js +1 -0
  58. package/dist/assets/{email-CqVIYJc4.js → email-BIVfXnpk.js} +1 -1
  59. package/dist/assets/{es-DaHPJdAX.js → es-B2TJqtV4.js} +1 -1
  60. package/dist/assets/{es-B6GuFK3b.js → es-CXgvF2gS.js} +1 -1
  61. package/dist/assets/{exchange-passport-C-hTCqg0.js → exchange-passport-C9Pvr9Da.js} +1 -1
  62. package/dist/assets/fr-CzO5Th4h.js +1 -0
  63. package/dist/assets/{fr-Sdn9hi8k.js → fr-DN38boH3.js} +1 -1
  64. package/dist/assets/{fuel-M5L6Wmxz.js → fuel-Cs--pEYt.js} +1 -1
  65. package/dist/assets/{gen-access-key-D6jr4e_G.js → gen-access-key-CIzULsBE.js} +1 -1
  66. package/dist/assets/{get-safe-url-CRv5HbAK.js → get-safe-url-Q70tRxL7.js} +1 -1
  67. package/dist/assets/{get-safe-url-DrR-6D-i.js → get-safe-url-c4iAcpvA.js} +1 -1
  68. package/dist/assets/{hi-dJuR0lt2.js → hi-5tixPGqk.js} +1 -1
  69. package/dist/assets/hi-lZ18vyMl.js +1 -0
  70. package/dist/assets/{home-C7e6Ftxj.js → home-BZ8WpcWZ.js} +1 -1
  71. package/dist/assets/{id-DuYS34H0.js → id-CIDM1ypY.js} +1 -1
  72. package/dist/assets/id-QM66qYoI.js +1 -0
  73. package/dist/assets/{iframe-DSG-Hd99.js → iframe-Dl8NEFc5.js} +1 -1
  74. package/dist/assets/{index-AetYfL_f.js → index-B7IOoVDF.js} +1 -1
  75. package/dist/assets/{index-yvg4DpNi.js → index-BCJADuMw.js} +5 -5
  76. package/dist/assets/{index-BJHSgjnI.js → index-BKKwhjBs.js} +1 -1
  77. package/dist/assets/{index-iQsPOXlb.js → index-BU2FTGFr.js} +1 -1
  78. package/dist/assets/{index-DSoHmrHd.js → index-BUHyq-oP.js} +1 -1
  79. package/dist/assets/{index-BM1ZGOPs.js → index-BoTgqYtV.js} +2 -2
  80. package/dist/assets/{index-C4vmLohg.js → index-C64IgZKt.js} +1 -1
  81. package/dist/assets/{index-bIHubQ8z.js → index-CsXmgylH.js} +3 -3
  82. package/dist/assets/index-D-Lxloq5.js +284 -0
  83. package/dist/assets/{index-Bj2-CpPI.js → index-D1kTR2xk.js} +1 -1
  84. package/dist/assets/{index-CEeLwMYO.js → index-DBqLPDUh.js} +1 -1
  85. package/dist/assets/index-DDXNOodN.js +99 -0
  86. package/dist/assets/{index-YbYWmpAT.js → index-DDoVX3je.js} +22 -22
  87. package/dist/assets/{index-B5_fBwtl.js → index-Drd9jydY.js} +1 -1
  88. package/dist/assets/{index-BUrgmCmL.js → index-Dsd9SXVN.js} +1 -1
  89. package/dist/assets/index-DvBh35bh.js +1 -0
  90. package/dist/assets/{index-BFWnCQrF.js → index-I6_gMaPh.js} +1 -1
  91. package/dist/assets/{index-C2F-GVrD.js → index-U3mAyHwS.js} +1 -1
  92. package/dist/assets/{index-BLbU4gf9.js → index-W_fQ-nuf.js} +2 -2
  93. package/dist/assets/{index-rn2nf2kX.js → index-wLX5GW2c.js} +1 -1
  94. package/dist/assets/{invitation-StUiuLYU.js → invitation-Dsnc8lab.js} +1 -1
  95. package/dist/assets/{invite-E96eT2DF.js → invite-CvAru4rZ.js} +1 -1
  96. package/dist/assets/{issue-passport-DrGPTNsG.js → issue-passport-CDE6vHUE.js} +1 -1
  97. package/dist/assets/{item-Dgu9vLko.js → item-rXnALS3b.js} +1 -1
  98. package/dist/assets/{ja-ACgKScTi.js → ja-C8AmHPMo.js} +1 -1
  99. package/dist/assets/{ja-Dh60q0r5.js → ja-pJLB4V2E.js} +1 -1
  100. package/dist/assets/{ko-CoqvBZUf.js → ko-D2NP5Ixe.js} +1 -1
  101. package/dist/assets/ko-xDWtmcv7.js +1 -0
  102. package/dist/assets/{landing-page-BOy_W1aP.js → landing-page-DrVLCVAm.js} +1 -1
  103. package/dist/assets/{layout-CYJJYqb_.js → layout-DYG0Wl7R.js} +1 -1
  104. package/dist/assets/{list-uPz9xAWJ.js → list-DLMy1vVs.js} +1 -1
  105. package/dist/assets/list-b96sX5Y6.js +2 -0
  106. package/dist/assets/localization-Bb0kc8SQ.js +1 -0
  107. package/dist/assets/{log-CzRRb9lq.js → log-Bwqh69bM.js} +1 -1
  108. package/dist/assets/{logger-B4ZKcD6x.js → logger-BAVOmOw2.js} +1 -1
  109. package/dist/assets/{login-D3GnBJn4.js → login-Ygmj8_J7.js} +1 -1
  110. package/dist/assets/{login-oauth-callback-CVS9TwNM.js → login-oauth-callback-BrnNJIOK.js} +1 -1
  111. package/dist/assets/{logo-uploader-CbM-N8qP.js → logo-uploader-CLwbDhA_.js} +3 -3
  112. package/dist/assets/{lost-passport-5P2EFbv0.js → lost-passport-CqzPSoLw.js} +1 -1
  113. package/dist/assets/{open-window-c9TGr49M.js → open-window-Bl24RBAD.js} +1 -1
  114. package/dist/assets/{overview-BZRXhA-K.js → overview-DqabCKYi.js} +1 -1
  115. package/dist/assets/{page-header-D_m0ANZl.js → page-header-BWqvvXOk.js} +1 -1
  116. package/dist/assets/{passport-item-DE-9Q-Cx.js → passport-item-C5-ZuTPM.js} +1 -1
  117. package/dist/assets/{permission-fpFyADH8.js → permission-DSHe73ba.js} +1 -1
  118. package/dist/assets/{preferences-0RYr2e_y.js → preferences-BzGNV3pM.js} +1 -1
  119. package/dist/assets/{profile-embed-BwbGy3El.js → profile-embed-iA-d50c3.js} +1 -1
  120. package/dist/assets/{pt-DCcbs0d0.js → pt-D1apbJwE.js} +1 -1
  121. package/dist/assets/pt-DSj10b9i.js +1 -0
  122. package/dist/assets/{publish-resource-CWz86TY0.js → publish-resource-ebKgw7OW.js} +1 -1
  123. package/dist/assets/{react-beautiful-dnd.esm-G9cRB9Uf.js → react-beautiful-dnd.esm-Ck4xzwyU.js} +1 -1
  124. package/dist/assets/ru-BNuzbw_f.js +1 -0
  125. package/dist/assets/{ru-WYTV5VzH.js → ru-D2AG9Iea.js} +1 -1
  126. package/dist/assets/{runtime-63aIXcah.js → runtime-B454s6Gb.js} +1 -1
  127. package/dist/assets/sdk-DeS3iq37.js +1 -0
  128. package/dist/assets/{section-BB6hVmdO.js → section-Ccxg0x_Y.js} +1 -1
  129. package/dist/assets/{security-YPRPQuQL.js → security-DCArL_za.js} +1 -1
  130. package/dist/assets/{session-Djj2U6sa.js → session-C_8V_o-O.js} +1 -1
  131. package/dist/assets/{setup-C9DGbmM7.js → setup-CX2pUl2y.js} +3 -3
  132. package/dist/assets/{spaces-fGcGlx-U.js → spaces-DApg1wzn.js} +1 -1
  133. package/dist/assets/{start-Cz_j6UYt.js → start-Dhbx5j_D.js} +1 -1
  134. package/dist/assets/{starting-progress-DHv9oucO.js → starting-progress-BHUTOY2b.js} +1 -1
  135. package/dist/assets/{status-B5ff49WY.js → status-D4K-kiXO.js} +1 -1
  136. package/dist/assets/{step-actions-CPiUgWLW.js → step-actions-CISMVGx2.js} +1 -1
  137. package/dist/assets/{studio-DnKLD9XD.js → studio-1mTu0Fgs.js} +1 -1
  138. package/dist/assets/{switch-control-DWjnOuBy.js → switch-control-CpCSorUo.js} +1 -1
  139. package/dist/assets/{table-tips-DEGQUNJa.js → table-tips-BfSSGl9N.js} +1 -1
  140. package/dist/assets/{th-Da4lMKTX.js → th-CRGgyPc5.js} +1 -1
  141. package/dist/assets/th-CsJSfFsn.js +1 -0
  142. package/dist/assets/{traffic-C262RTgV.js → traffic-BqHyn9L9.js} +1 -1
  143. package/dist/assets/{transfer-CXfjw5Xg.js → transfer-Bqv1gMqL.js} +1 -1
  144. package/dist/assets/{unsubscribe-CdFXzPwR.js → unsubscribe-B3OLQIVA.js} +1 -1
  145. package/dist/assets/{use-blocklet-logo-C_pDvfYN.js → use-blocklet-logo-Bhkp-Zm7.js} +1 -1
  146. package/dist/assets/use-server-logo-CxuMvwKh.js +1 -1
  147. package/dist/assets/{useLocalStorage-DO6t2PeQ.js → useLocalStorage-D6gvgmEW.js} +1 -1
  148. package/dist/assets/{user-center-DR1kV4iN.js → user-center-vIx28YXm.js} +3 -3
  149. package/dist/assets/{util-VM27PwRk.js → util-DMfPwzVN.js} +1 -1
  150. package/dist/assets/{util-Cs-QbPU0.js → util-Dnkhck-D.js} +1 -1
  151. package/dist/assets/{vendor-arcblock-DuPySS9V.js → vendor-arcblock-BlrkGjK9.js} +1 -1
  152. package/dist/assets/{vendor-ux-did-connect-DIlRfE_S.js → vendor-ux-did-connect-2jRoUb28.js} +3 -3
  153. package/dist/assets/vi-Ce8JEW56.js +1 -0
  154. package/dist/assets/{vi-BxzaqoH9.js → vi-IIi6v-et.js} +1 -1
  155. package/dist/assets/wrap-locale-C_UOH97U.js +1 -0
  156. package/dist/assets/{zh-Do6onry4.js → zh-DQX0RFjY.js} +1 -1
  157. package/dist/assets/zh-S-Nv5zr-.js +1 -0
  158. package/dist/assets/{zh-tw-BNgoHsYW.js → zh-tw-6n1CYpHc.js} +1 -1
  159. package/dist/assets/zh-tw-C-FYOTmO.js +1 -0
  160. package/dist/index.html +3 -3
  161. package/dist/service-worker.js +1 -1
  162. package/package.json +30 -30
  163. package/api/middlewares/check-admin-permission.js +0 -15
  164. package/dist/assets/appearance-CAsFMLaC.js +0 -1
  165. package/dist/assets/authorize-CdTK5Air.js +0 -1
  166. package/dist/assets/config-navigation-DbyhYIMw.js +0 -26
  167. package/dist/assets/de-BWtUXhCw.js +0 -1
  168. package/dist/assets/domains-BhqtMbC1.js +0 -1
  169. package/dist/assets/fr-DjhyyiEi.js +0 -1
  170. package/dist/assets/hi-CtKbt1J4.js +0 -1
  171. package/dist/assets/id-CCuL3FP-.js +0 -1
  172. package/dist/assets/index-BJbAX71g.js +0 -284
  173. package/dist/assets/index-CtLialsm.js +0 -99
  174. package/dist/assets/index-DthGrDK3.js +0 -1
  175. package/dist/assets/ko-gvJH4zFR.js +0 -1
  176. package/dist/assets/list-C8X2Voou.js +0 -2
  177. package/dist/assets/localization-CI5Q0B2F.js +0 -1
  178. package/dist/assets/pt-DzswFIpl.js +0 -1
  179. package/dist/assets/ru-EZJWVu3M.js +0 -1
  180. package/dist/assets/sdk-D4BoQHdn.js +0 -1
  181. package/dist/assets/th-Bn3Ch7SK.js +0 -1
  182. package/dist/assets/vi-CgnGroV4.js +0 -1
  183. package/dist/assets/wrap-locale-BWx2hEb7.js +0 -1
  184. package/dist/assets/zh-BWgwGxeZ.js +0 -1
  185. package/dist/assets/zh-tw-Ciod1pFs.js +0 -1
@@ -1,99 +0,0 @@
1
- import{r as b}from"./vendor-react-DEoibe3W.js";import{a as D,Y as R,j as ie,B as z,b4 as be,ao as pe,bT as re,a0 as je,aC as Ce,bA as ke,c9 as Ke,b6 as Te,a9 as ve,a2 as Ae}from"./vendor-ux-did-connect-DIlRfE_S.js";import{d as we}from"./Edit-DSht16TX.js";import{f as Se}from"./index-8eXqqyHQ.js";import{r as me}from"./passport-item-DE-9Q-Cx.js";import{D as B,n as M,aL as De,G as Ie,f as Re}from"./index-YbYWmpAT.js";import{u as $}from"./dashboard-AdC8-kkA.js";import{j as e,H as x,bo as O,br as G,bn as H,q as V,aa as f,al as Q,O as E,ab as Be,bs as $e,bR as _e,ah as P,T as N,ad as ce,ak as Ne}from"./vendor-mui-core-BV2FUxWJ.js";import{B as Pe,W as We}from"./vendor-arcblock-DuPySS9V.js";import{T as ue}from"./index-iQsPOXlb.js";import{C as xe}from"./confirm-DI8TUyRK.js";import{a0 as Le}from"./vendor-utils-rHXShPKm.js";import{C as F}from"./click-to-copy-ByEMWZD_.js";import{D as Ue}from"./delete-confirm-Bn1HZjaL.js";import{P as qe}from"./permission-fpFyADH8.js";import{l as ze,y as Me}from"./vendor-hooks-BgUTpb6X.js";import{U as Ee,C as Fe,I as Oe}from"./index-Bj2-CpPI.js";import{B as Ge}from"./bundle-avatar-Br48PGS5.js";import{p as He}from"./util-VM27PwRk.js";import{W as le}from"./did-address-BlAXR08O.js";import{A as Ve}from"./actions-azdiYocL.js";import{u as Qe}from"./use-mobile-C21X4TYN.js";import{T as de}from"./table-tips-DEGQUNJa.js";import"./lottie-web-jYmAQWuC.js";import"./useLocalStorage-DO6t2PeQ.js";import"./PlayArrow-CLKgdv6H.js";import"./get-safe-url-DrR-6D-i.js";import"./session-Djj2U6sa.js";import"./use-blocklet-logo-C_pDvfYN.js";import"./InfoOutlined-Cd28U1Oc.js";import"./dot-itVN8XTt.js";import"./useAsync-510ntT1B.js";import"./useSetState-CWq0AVWn.js";import"./use-mobile-BAa0wi8o.js";import"./vendor-mui-x-Bo-XOtzq.js";import"./AdapterDayjs-gCvKcGfu.js";import"./Phone-BkOMNOMO.js";import"./Location-DxPzfR_p.js";import"./Email-BirbvqZ3.js";import"./Timezone-D91Of94T.js";import"./base32-CLrnUJal.js";import"./MoreHoriz-D-L8sA4c.js";function Y({value:t}){const{t:s,locale:m}=D(),l=new Date;return new Date(t)<l?e.jsxs("span",{style:{color:"red"},children:[e.jsx(R,{value:t,locale:m}),`${s("setting.accessKey.expired",{time:""})}`]}):e.jsx(R,{value:t,locale:m,type:"all"})}Y.propTypes={value:x.string.isRequired};function J({value:t,onChange:s,...m}){const{t:l}=D(),d=b.useMemo(()=>[{value:"signature",title:l("setting.accessKey.signature"),description:l("setting.accessKey.signatureDesc")},{value:"simple",title:l("setting.accessKey.simple"),description:l("setting.accessKey.simpleDesc")}],[l]);return e.jsxs(O,{style:{width:"100%"},variant:"outlined",...m,children:[e.jsx(G,{children:l("setting.accessKey.authType")}),e.jsx(H,{value:t,onChange:s,fullWidth:!0,label:l("setting.accessKey.authType"),children:d.map(o=>e.jsx(V,{value:o.value,children:e.jsxs(f,{children:[e.jsx("span",{children:o.title}),e.jsx(f,{maxWidth:510,fontSize:12,color:"#999",whiteSpace:"normal",children:o.description})]})},o.value))})]})}J.propTypes={value:x.string.isRequired,onChange:x.func.isRequired};const L=()=>{const t=ie.RBAC_CONFIG.roles.filter(d=>d.passport),{inService:s}=B(),{roles:m}=$(),l=[...t,...s?m:[]];return Le(l,"name").filter(d=>d.name!==ie.ROLES.OWNER)};function X(t){const{remark:s,onCreate:m}=t,{api:l}=B(),{teamDid:d}=$(),{t:o}=D(),[k,j]=b.useState(!1),[c,h]=b.useState(null),y=L(),v=()=>{j(!1),h(null)},K=async a=>{const{remark:T,passport:r,authType:n}=a;j(!0);const u=await l.createAccessKey({input:{teamDid:d,remark:T.trim(),passport:r,expireAt:a.expireAt?new Date(a.expireAt).getTime():null,authType:n}}),{data:S}=u;m(S),h(null),j(!1)},g={title:`${o("common.create")} ${o("accessKey")}`,description:(a,T,r)=>e.jsxs(Q,{gap:3,children:[e.jsx(E,{label:o("setting.accessKey.tip"),autoComplete:"off",variant:"outlined",name:"remark",inputProps:{"data-cy":"remark-input"},fullWidth:!0,autoFocus:!0,margin:"dense",value:a.remark,onChange:n=>{T({...a,remark:n.target.value,__disableConfirm:!a.passport||!n.target.value.trim()}),n.target.value.trim()?r(""):r(o("setting.accessKey.remarkInvalid"))}}),e.jsxs(O,{style:{width:"100%"},variant:"outlined",children:[e.jsx(G,{children:o("setting.accessKey.passport")}),e.jsx(H,{"data-cy":"create-access-key-select-passport",value:a.passport,onChange:n=>{const u=n.target.value;r(null),T({...a,passport:u,__disableConfirm:!a.remark||!u})},fullWidth:!0,label:o("setting.accessKey.passport"),disabled:k,children:y.map(n=>e.jsx(V,{value:n.name,"data-cy":`create-access-key-passport-option-${n.name}`,children:e.jsxs(f,{children:[e.jsx("span",{children:n.title||n.name}),e.jsx(f,{maxWidth:440,fontSize:12,color:"#999",whiteSpace:"normal",textAlign:"justify",children:n.description})]})},n.name))})]}),e.jsx(J,{value:a.authType,onChange:n=>{T({...a,authType:n.target.value})}}),e.jsx(ue,{placeholder:o("setting.accessKey.expireTime"),value:a.expireAt,onChange:n=>{T({...a,expireAt:n,__disableConfirm:!a.passport||!a.remark||!n})}})]}),confirm:o("common.confirm"),cancel:o("common.cancel"),color:"primary",params:{remark:s,authType:"signature",__disableConfirm:!s.trim()},onConfirm:K,onCancel:v};return e.jsxs(e.Fragment,{children:[e.jsxs(z,{sx:{color:"common.white"},edge:"end",variant:"contained",color:"primary","data-cy":"add-access-key-btn",onClick:()=>h(g),className:"rule-action",children:[k?e.jsx(Be,{size:16}):e.jsx(Pe,{style:{fontSize:16}}),o("common.create")]}),c&&e.jsx(xe,{title:c.title,description:c.description,confirm:c.confirm,color:c.color,cancel:c.cancel,params:c.params,onConfirm:c.onConfirm,onCancel:c.onCancel})]})}X.propTypes={remark:x.string,onCreate:x.func};X.defaultProps={onCreate:()=>{},remark:""};function Z(t){const{onConfirm:s,accessKeyId:m,accessKeySecret:l,hideSecret:d}=t,{t:o}=b.useContext(be),[k,j]=b.useState(!1),[c,h]=b.useState(()=>d),y=()=>{h(!c)},v=a=>{j(a.target.checked)},K=b.useMemo(()=>{var a;return d?`const Client = require('@abtnode/client');
2
-
3
- const client = new Client(fullEndpoint);
4
- client.setAuthAccessKey({
5
- accessKeyId: "${m}",
6
- accessKeySecret: "${l}",
7
- });
8
- `:`curl -H "Authorization: Bearer ${l}" "${(a=window.blocklet)==null?void 0:a.appUrl}/.well-known/service/api/did/session"`},[d,m,l]),g=b.useMemo(()=>{var a;return d?`blocklet deploy --endpoint ${(a=window.blocklet)==null?void 0:a.appUrl} --access-key ${m} --access-secret ${l} {blockletPath}/.blocklet/bundle;`:null},[d,m,l]);return e.jsxs(pe,{title:o("common.createSuccess"),fullWidth:!0,open:!0,disableEscapeKeyDown:!0,onClose:s,showCloseButton:!1,actions:e.jsx("div",{children:e.jsx(z,{disabled:d?!k:!1,onClick:s,color:"primary",autoFocus:!0,variant:"contained","data-cy":"submit-confirm-dialog",children:o("common.confirm")})}),"aria-labelledby":"simple-dialog-title",children:[e.jsx("div",{children:e.jsx(Ye,{children:o(d?"setting.accessKey.saveSecretTip":"setting.accessKey.viewSecret")})}),e.jsx("div",{style:{marginTop:"20px"}}),e.jsxs(q,{children:[e.jsx(U,{children:o("setting.accessKey.accessKeyId")}),e.jsx(F,{children:m})]}),e.jsxs(q,{children:[e.jsx(U,{children:o("setting.accessKey.accessKeySecret")}),c?e.jsx(z,{"data-cy":"show-secret-btn",color:"primary",onClick:y,children:o("setting.accessKey.showSecret")}):e.jsx(F,{children:l})]}),!c&&e.jsxs(q,{children:[e.jsx(U,{children:`Access Key ${o("setting.accessKey.usage")}`}),e.jsx(re,{code:K,language:"javascript"}),g&&e.jsx(re,{code:g,language:"bash"})]}),d&&e.jsx("div",{children:e.jsx($e,{value:"end",disabled:c,control:e.jsx(_e,{checked:k,onChange:v}),label:o("setting.accessKey.iKnow"),labelPlacement:"end"})})]})}Z.propTypes={accessKeyId:x.string.isRequired,accessKeySecret:x.string.isRequired,onConfirm:x.func,hideSecret:x.bool};Z.defaultProps={onConfirm:()=>{},hideSecret:!0};const U=P.div`
9
- display: flex;
10
- justify-content: space-between;
11
- align-items: center;
12
- font-size: 16px;
13
- margin-bottom: 8px;
14
- `,q=P.div`
15
- margin-bottom: 24px;
16
- `,Ye=P.div`
17
- font-size: 16px;
18
- font-weight: bold;
19
- `;function ee(t){const{t:s,locale:m}=D(),{api:l}=B(),{teamDid:d}=$(),{accessKeyId:o,time:k,remark:j,onDelete:c=()=>{},onClose:h=()=>{}}=t,y=()=>{h()},v=async()=>{try{await l.deleteAccessKey({input:{teamDid:d,accessKeyId:o}}),c()}catch(a){je.error(a==null?void 0:a.message)}finally{y()}},K=a=>({key:`<b>${o}</b>`,name:`<b>${j}</b>`,time:M(a,m),timeAge:We(new Date(a),De(m))}),g={keyName:j,title:s("setting.accessKey.title"),description:k?`${s("setting.accessKey.description",K(k))}`:`${s("setting.accessKey.descriptionNoTime",{key:`<b>${o}</b>`,name:`<b>${j}</b>`})}`,confirmPlaceholder:s("setting.accessKey.confirm_desc",{name:j}),confirm:s("common.delConfirm"),cancel:s("common.cancel"),onConfirm:v,onCancel:y};return e.jsx(Ue,{keyName:g.keyName,title:g.title,description:g.description,confirmPlaceholder:g.confirmPlaceholder,confirm:g.confirm,cancel:g.cancel,params:g.params,onConfirm:g.onConfirm,onCancel:g.onCancel})}ee.propTypes={accessKeyId:x.string.isRequired,time:x.string.isRequired,remark:x.string.isRequired,onDelete:x.func,onClose:x.func};ee.defaultProps={onDelete:()=>{},onClose:()=>{}};function te(t){const{accessKeyId:s,remark:m,onUpdate:l,passport:d,expireAt:o,authType:k,onClose:j}=t,{api:c}=B(),{teamDid:h}=$(),{t:y}=D(),[v,K]=b.useState(!1),g=L(),a=()=>{K(!1),j()},T=async n=>{const{accessKeyId:u,remark:S="",passport:p,expireAt:I,authType:W}=n;K(!0),await c.updateAccessKey({input:{teamDid:h,accessKeyId:u,remark:S.trim(),passport:p,expireAt:I?new Date(I).getTime():null,authType:W}}),l(),a()},r={title:`${y("common.update")} ${y("accessKey")}`,description:(n,u,S)=>e.jsxs(Q,{gap:3,children:[e.jsx(E,{label:y("setting.accessKey.accessKeyId"),autoComplete:"off",variant:"outlined",name:"accessKeyId",fullWidth:!0,autoFocus:!0,margin:"dense",value:n.accessKeyId,disabled:!0}),e.jsx(E,{label:y("common.remark"),autoComplete:"off",variant:"outlined",name:"remark",fullWidth:!0,autoFocus:!0,value:n.remark,onChange:p=>{u({...n,remark:p.target.value,__disableConfirm:!p.target.value.trim()}),p.target.value.trim()?S(""):S(y("setting.accessKey.remarkInvalid"))}}),e.jsxs(O,{style:{width:"100%"},variant:"outlined",children:[e.jsx(G,{children:y("setting.accessKey.passport")}),e.jsx(H,{"data-cy":"update-access-key-select-passport",value:n.passport,onChange:p=>{const I=p.target.value;S(null),u({...n,passport:I,__disableConfirm:!n.remark||!I})},fullWidth:!0,label:y("setting.accessKey.passport"),disabled:v,children:g.map(p=>e.jsx(V,{value:p.name,"data-cy":`update-access-key-passport-option-${p.name}`,children:e.jsxs(f,{children:[e.jsx("span",{children:p.title||p.name}),e.jsx(f,{maxWidth:440,fontSize:12,color:"#999",whiteSpace:"normal",textAlign:"justify",children:p.description})]})},p.name))})]}),e.jsx(J,{disabled:!0,value:n.authType,onChange:p=>{u({...n,authType:p.target.value})}}),e.jsx(ue,{placeholder:y("setting.accessKey.expireTime"),value:n.expireAt,onChange:p=>{u({...n,expireAt:p,__disableConfirm:!n.passport||!n.remark||!p})}})]}),confirm:y("common.confirm"),cancel:y("common.cancel"),color:"primary",params:{accessKeyId:s,remark:m,passport:d,expireAt:o,authType:k},onConfirm:T,onCancel:a};return e.jsx(xe,{title:r.title,description:r.description,confirm:r.confirm,color:r.color,cancel:r.cancel,params:r.params,onConfirm:r.onConfirm,onCancel:r.onCancel})}te.propTypes={accessKeyId:x.string.isRequired,remark:x.string,passport:x.string,expireAt:x.string,authType:x.string,onUpdate:x.func,onClose:x.func};te.defaultProps={onUpdate:()=>{},remark:"",passport:"",expireAt:"",authType:"signature",onClose:()=>{}};function se({accessKey:t,onCancel:s}){const{t:m}=D();return e.jsx(pe,{title:m("accessKey"),onClose:s,open:!0,PaperProps:{style:{maxWidth:800}},fullWidth:!0,children:e.jsx(Je,{children:e.jsx(ye,{accessKey:t})})})}se.propTypes={accessKey:x.object.isRequired,onCancel:x.func.isRequired};se.defaultProps={};const Je=P(f)`
20
- margin-top: -16px;
21
-
22
- .tabs {
23
- margin-left: 0;
24
- margin-right: 0;
25
- }
26
- `;function ye({accessKey:t}){var a,T;const{t:s,locale:m}=D(),{api:l}=B(),{teamDid:d}=$(),{blocklet:o}=Ie(),k=L(),j=b.useCallback(async r=>r?(await l.getUser({input:{teamDid:d,user:{did:r}}})).user:null,[l,d]),c=ze(()=>j(t.createdBy),{}),h=((o==null?void 0:o.children)||[]).find(r=>{var n;return((n=r==null?void 0:r.meta)==null?void 0:n.did)===t.componentDid}),y=b.useMemo(()=>{var r;return He((r=c==null?void 0:c.data)==null?void 0:r.avatar,d,!0)},[(a=c==null?void 0:c.data)==null?void 0:a.avatar,d]),v=k.find(r=>r.name===t.passport),K=v?v.title:t.passport,g=[{title:s("common.baseInfo"),items:[{label:s("setting.accessKey.accessKeyId"),content:e.jsx(le,{did:t.accessKeyId,showQrcode:!0})},...t.authType==="simple"?[{label:s("setting.accessKey.accessKeySecret"),content:e.jsx(F,{children:`blocklet-${Ce.toBase58(t.accessKeyPublic)}`})}]:[],{label:s("common.role"),content:e.jsx(f,{children:me(K,t.passport)})},{label:s("common.createdVia"),content:t.createdVia},{label:s("common.createdBy"),content:c!=null&&c.data?e.jsx(f,{sx:{display:"flex",alignItems:"center",".MuiAvatar-root":{width:32,height:32}},children:e.jsx(Ee,{user:{...c.data,avatar:y},showDid:!0,cardType:Fe.Detailed,infoType:Oe.Minimal,sx:{border:0,padding:0}})}):t.createdBy?e.jsx(le,{did:t.createdBy,showQrcode:!0}):"-"}]},{title:s("common.timeInfo"),items:[{label:s("common.createdAt"),content:t.createdAt?e.jsx(R,{value:t.createdAt,type:"all",locale:m}):"-"},{label:s("common.lastUsedAt"),content:t.lastUsedAt?e.jsx(R,{value:t.lastUsedAt,type:"all",locale:m}):"-"},{label:s("common.expiredAt"),content:t.expireAt?e.jsx(Y,{value:t.expireAt}):s("common.neverExpired")}]},{title:s("common.otherInfo"),items:[{label:s("setting.accessKey.authType"),content:t.authType},{label:s("common.remark"),content:t.remark},...t.authType!=="signature"?[{label:s("setting.accessKey.resourceType"),content:t.resourceType||"-"},{label:s("setting.accessKey.resourceId"),content:t.resourceId||"-"}]:[],...h?[{label:s("setting.accessKey.component"),content:e.jsxs(f,{width:{xs:250,sm:400},display:"flex",alignItems:"center",children:[e.jsx(Ge,{blocklet:h,ancestors:[o]}),e.jsx(f,{ml:"16px",sx:{minWidth:0},children:e.jsxs(f,{className:"component-header",children:[e.jsx(f,{className:"component-name",children:Re.getDisplayName(h,!0)}),e.jsx(f,{className:"component-version",children:(T=h==null?void 0:h.meta)==null?void 0:T.version})]})})]},h)}]:[]]}];return e.jsx(Xe,{gap:3,children:e.jsx(f,{className:"info-area",children:g.map(r=>e.jsxs(f,{mb:3,children:[e.jsx(N,{variant:"h6",sx:{mb:1.5},children:r.title}),e.jsx(f,{className:"info-grid",children:r.items.map(n=>e.jsxs(f,{className:"info-item",children:[e.jsx(f,{className:"info-label",children:e.jsx(N,{variant:"subtitle2",color:"textSecondary",children:n.label})}),e.jsx(f,{children:n.content})]},n.label))})]},r.title))})})}ye.propTypes={accessKey:x.object.isRequired};const Xe=P(Q)`
27
- .info-card {
28
- margin-bottom: 24px;
29
- overflow: hidden;
30
- }
31
-
32
- .card-content {
33
- display: flex;
34
- gap: 32px;
35
- padding: 24px;
36
- }
37
-
38
- .passport-image {
39
- width: 150px;
40
- flex-shrink: 0;
41
- transition: transform 0.2s ease-in-out;
42
- cursor: pointer;
43
-
44
- &:hover {
45
- transform: scale(1.05);
46
- }
47
- }
48
-
49
- .info-area {
50
- flex: 1;
51
- display: flex;
52
- flex-direction: column;
53
- }
54
-
55
- .info-header {
56
- padding-bottom: 16px;
57
- border-bottom: 1px solid #eee;
58
- }
59
-
60
- .info-grid {
61
- display: flex;
62
- flex-direction: column;
63
- gap: 12px;
64
- }
65
-
66
- .info-item {
67
- display: flex;
68
- gap: 8px;
69
- }
70
-
71
- .info-label {
72
- display: flex;
73
- align-items: center;
74
- gap: 8px;
75
- width: 140px;
76
- }
77
-
78
- .logs-card {
79
- .card-header {
80
- display: flex;
81
- align-items: center;
82
- gap: 8px;
83
- padding: 16px 24px;
84
- border-bottom: 1px solid #eee;
85
- }
86
-
87
- .MuiTimeline-root {
88
- padding: 24px;
89
- }
90
-
91
- .MuiTimelineContent-root {
92
- padding: 0px 16px;
93
- }
94
-
95
- .MuiTimelineDot-root {
96
- margin: 0;
97
- }
98
- }
99
- `;function zt(){var oe,ae;const{t,locale:s}=D(),{api:m,inService:l}=B(),{teamDid:d}=$(),[o,k]=b.useState({}),[j,c]=b.useState(null),[h,y]=b.useState(null),[v,K]=b.useState(null),g=Qe(),a=L(),T=b.useRef(null),r=`access-keys-${d}`,n=ke(r),[u,S]=b.useState({searchText:n.searchText||"",pageSize:n.rowsPerPage||10,page:1}),p=Me(async()=>await m.getAccessKeys({input:{teamDid:d,paging:{page:u.page,pageSize:u.pageSize}}}),[u.page,u.pageSize]),{loading:I,error:W}=p,_=b.useMemo(()=>{var i;return((i=p.value)==null?void 0:i.list)||[]},[(oe=p.value)==null?void 0:oe.list]),fe=b.useMemo(()=>[{label:t("common.name"),name:"remark",options:{customBodyRender:(i,{rowIndex:A})=>{const w=_[A];return e.jsx(f,{display:"flex",alignItems:"center",gap:2,children:e.jsx(N,{children:w.remark||"N/A"})})}}},{label:"Access Key ID",name:"accessKeyId",options:{customBodyRender:i=>e.jsx(Ke,{showDidLogo:!1,children:i})}},{label:t("common.role"),name:"passport",options:{customBodyRender:i=>{const A=a.find(C=>C.name===i),w=A?A.title:i;return e.jsx(f,{children:me(w,i)})}}},{label:t("common.createdVia"),name:"createdVia",options:{customBodyRender:i=>e.jsx(N,{children:i})}},{label:t("setting.accessKey.authType"),name:"authType",options:{customBodyRender:i=>e.jsx(N,{children:t(`setting.accessKey.${i}`)})}},{label:t("common.createdAt"),name:"createdAt",options:{customBodyRender:i=>e.jsx(ce,{title:M(i,s),children:i?e.jsx(R,{value:i,locale:s}):"-"})}},{label:t("common.lastUsedAt"),name:"lastUsedAt",options:{customBodyRender:i=>e.jsx(ce,{title:M(i,s),children:i?e.jsx(R,{value:i,locale:s}):"-"})}},{label:t("common.expiredAt"),name:"expireAt",options:{customBodyRender:i=>i?e.jsx(Y,{value:i}):t("common.neverExpired")}},{label:t("common.actions"),name:"actions",width:100,align:"center",verticalKeyAlign:"center",options:{customBodyRender:(i,{rowIndex:A})=>{const w=_[A];return e.jsx(Ve,{"data-cy":"access-key-actions",actions:[{icon:e.jsx(we,{}),text:t("common.edit"),onClick:C=>{C.stopPropagation(),K(w)}},{icon:e.jsx(Te,{}),text:t("common.delete"),onClick:C=>{C.stopPropagation(),y(w)}}]})}}}],[_,s,t,a,y,K]),he=({page:i,rowsPerPage:A,searchText:w})=>{u.pageSize!==A?S(C=>({...C,searchText:"",pageSize:A,page:1})):u.page!==i+1?S(C=>({...C,searchText:"",page:i+1})):u.searchText!==w&&S(C=>({...C,searchText:w,page:1}))},ne=u.searchText?_.filter(i=>i.accessKeyId.toLowerCase().includes(u.searchText.toLowerCase())||(i.remark||"").toLowerCase().includes(u.searchText.toLowerCase())):_;return W?e.jsx(Ne,{severity:"error",children:Se(W)}):e.jsxs(f,{ref:T,sx:{".custom-toobar-btns":{gap:"8px"},".custom-toobar-title .custom-toobar-title-inner>span":{display:"flex",alignItems:"center","white-space":"inherit",height:"100%"}},children:[g?e.jsx(de,{title:t("setting.accessKey.listTitle"),tooltipTitle:t("setting.accessKey.tooltipTitle"),link:`https://www.arcblock.io/docs/blocklet-developer/${s}/access-key`}):null,e.jsx(ve,{durable:r,durableKeys:["page","rowsPerPage"],data:ne,columns:fe,options:{sort:!1,download:!1,filter:!1,print:!1,viewColumns:!1,page:u.page-1,rowsPerPage:u.pageSize,count:((ae=p.value)==null?void 0:ae.count)||0,searchDebounceTime:600,onRowClick(i,{dataIndex:A},w){var C;if((C=T.current)!=null&&C.contains(w.target)){const ge=ne[A];c(ge)}}},loading:I,onChange:he,title:g?null:e.jsx(de,{title:t("setting.accessKey.listTitle"),tooltipTitle:t("setting.accessKey.tooltipTitle"),link:`https://www.arcblock.io/docs/blocklet-developer/${s}/access-key`}),customButtons:[e.jsx(qe,{permission:l?"":"mutate_accessKey",children:e.jsx(X,{onCreate:i=>{const{accessKeyId:A,accessKeySecret:w,authType:C}=i;k({show:!0,accessKeyId:A,accessKeySecret:w,authType:C})}})})],emptyNode:e.jsx(Ae,{children:t("oauth.client.empty")})}),o.show&&e.jsx(Z,{hideSecret:o.authType==="signature",onConfirm:()=>{p.retry(),k({show:!1})},...o}),j&&e.jsx(se,{onCancel:()=>c(null),accessKey:j}),h&&e.jsx(ee,{accessKeyId:h.accessKeyId,time:h.lastUsedAt,remark:h.remark||"N/A",onDelete:p.retry,onClose:()=>y(null)}),v&&e.jsx(te,{...v,onUpdate:p.retry,onClose:()=>K(null)})]})}export{zt as default};
@@ -1 +0,0 @@
1
- import{a as B,a0 as q,bT as U,I as ge,bU as fe,a2 as je,a9 as ye,bA as we}from"./vendor-ux-did-connect-DIlRfE_S.js";import{t as ke,l as de,j as Ee}from"./vendor-hooks-BgUTpb6X.js";import{r as T,b as Q}from"./vendor-react-DEoibe3W.js";import{d as X}from"./InfoOutlined-Cd28U1Oc.js";import{j as ve,B as Ce}from"./vendor-arcblock-DuPySS9V.js";import{D as F,aA as Se,aB as K,G as pe,y as Te}from"./index-YbYWmpAT.js";import{u as _}from"./dashboard-AdC8-kkA.js";import{u as Re}from"./use-mobile-C21X4TYN.js";import{H as t,j as e,D as Ie,aj as ze,t as De,aa as m,O as re,T as R,ab as M,ak as Z,z as Pe,y as H,bs as le,bR as Y,ad as $,L as J,A as G,bc as Ae,E as L,I as ee,C as We,bq as Oe,al as D,cg as qe,X as $e,bb as V,bp as Le,b4 as Be,ch as Me,ci as He,b5 as Ne,an as Fe,c0 as _e,s as ue,v as Ue,cj as Ke,ck as Ye,cl as Ve,cm as Je}from"./vendor-mui-core-BV2FUxWJ.js";import{d as Ge}from"./ExpandLess-CudE_1oQ.js";import{b as he,z as Qe,A as Xe}from"./vendor-utils-rHXShPKm.js";import{C as Ze}from"./confirm-DI8TUyRK.js";import{A as et}from"./actions-azdiYocL.js";import{T as ae}from"./table-tips-DEGQUNJa.js";import"./lottie-web-jYmAQWuC.js";import"./useLocalStorage-DO6t2PeQ.js";import"./index-8eXqqyHQ.js";import"./PlayArrow-CLKgdv6H.js";import"./get-safe-url-DrR-6D-i.js";import"./session-Djj2U6sa.js";import"./use-blocklet-logo-C_pDvfYN.js";import"./dot-itVN8XTt.js";import"./useAsync-510ntT1B.js";import"./useSetState-CWq0AVWn.js";import"./use-mobile-BAa0wi8o.js";import"./MoreHoriz-D-L8sA4c.js";const tt=o=>{var f,w;const[p,u]=T.useState(null),[E,s]=T.useState(!o),[I,c]=T.useState(null),{blocklet:a}=pe(),d=(w=(f=a==null?void 0:a.site)==null?void 0:f.domainAliases[0])==null?void 0:w.value,j=T.useMemo(()=>{const b={};return p&&(p.sources.forEach(l=>{b[l.did]={source:l,events:[],count:0}}),p.events.forEach(l=>{b[l.source]&&(b[l.source].events.push(l),b[l.source].count+=1)})),b},[p]),y=async()=>{try{if(s(!0),!d)return;const l=await(await fetch(`https://${d}/.well-known/service/openevent.json`)).json();u(l),c(null)}catch(b){c(b instanceof Error?b:new Error(String(b)))}finally{s(!1)}};return T.useEffect(()=>{y()},[d]),{openEvent:p,setOpenEvent:u,eventsBySource:j,loading:E,error:I,loadData:y}};function te({eventsBySource:o,selectedEvents:p,setSelectedEvents:u,error:E}){const{t:s}=B(),[I,c]=T.useState({}),a=T.useMemo(()=>{const l={};return Object.entries(o).forEach(([g,{events:h}])=>{const S=h.filter(x=>p[`${x.type}-${x.source}`]).length;l[g]=S}),l},[o,p]),d=T.useMemo(()=>Object.values(a).reduce((l,g)=>l+g,0),[a]),j=T.useMemo(()=>Object.values(o).reduce((l,{events:g})=>l+g.length,0),[o]),y=(l,g)=>{g.stopPropagation(),c({...I,[l]:!I[l]})},f=l=>{const g=`${l.type}-${l.source}`;u(h=>({...h,[g]:!h[g]}))},w=(l,g)=>{const h={};l.forEach(S=>{const x=`${S.type}-${S.source}`;h[x]=!g}),u(S=>({...S,...h}))},b=l=>{const g={};Object.values(o).forEach(({events:h})=>{h.forEach(S=>{const x=`${S.type}-${S.source}`;g[x]=l.target.checked})}),u(g)};return e.jsxs(m,{sx:{width:"100%"},children:[e.jsxs(m,{sx:{display:"flex",alignItems:"center",mb:1,mt:1},children:[e.jsx(le,{control:e.jsx(Y,{onChange:b,checked:d>0&&d===j}),label:e.jsxs(m,{sx:{display:"flex",alignItems:"center",cursor:"pointer"},children:[s("webhookEndpoint.selectAllEvents"),e.jsx(m,{sx:{display:"flex",alignItems:"center"},children:e.jsx($,{title:s("webhookEndpoint.selectAllEventsTooltip"),placement:"right",children:e.jsx(X,{fontSize:"small",sx:{ml:.5,cursor:"help"}})})})]}),sx:{m:0}}),d>0&&e.jsx(R,{variant:"body2",color:"primary",sx:{ml:"auto"},children:s("webhookEndpoint.selectedEventsCount",{count:d})})]}),e.jsx(m,{sx:{maxHeight:"50vh",overflow:"auto"},children:e.jsx(J,{disablePadding:!0,sx:{border:"1px solid",borderColor:"divider",borderRadius:"4px"},children:Object.entries(o).map(([l,{source:g,events:h,count:S}],x)=>{const z=a[l]>0,k=a[l]===h.length&&h.length>0,A=I[l];return e.jsxs(Q.Fragment,{children:[e.jsx(G,{sx:{borderBottom:({palette:i})=>x<Object.keys(o).length-1?`1px solid ${i.divider}`:"none",px:2,py:1.5,"&:hover":{bgcolor:"rgba(0, 0, 0, 0.02)"}},children:e.jsxs(m,{sx:{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center"},onClick:i=>{i.target.closest(".MuiFormControlLabel-root")||y(l,i)},children:[e.jsx(m,{sx:{display:"flex",alignItems:"center"},children:h.length>0&&e.jsx(le,{control:e.jsx(Y,{checked:k,indeterminate:z&&!k,onChange:i=>{i.stopPropagation(),w(h,k)}}),label:e.jsxs(m,{sx:{display:"flex",alignItems:"center",gap:1},children:[g.logo&&e.jsx(Ae,{src:g.logo,sx:{width:24,height:24}}),e.jsx(m,{children:g.title||l}),z&&e.jsx(L,{label:s("webhookEndpoint.selectedCount",{count:a[l]}),size:"small",sx:{mt:"2px",height:"20px",fontSize:"12px",bgcolor:i=>`${i.palette.primary.main}20`,color:"primary.main",fontWeight:500}})]}),sx:{m:0,"& .MuiFormControlLabel-label":{flex:1}}})}),e.jsxs(m,{sx:{display:"flex",alignItems:"center"},children:[e.jsx(R,{variant:"body2",color:"text.secondary",sx:{mr:1},children:s("webhookEndpoint.eventsCount",{count:S})}),h.length>0&&e.jsx(ee,{size:"small",edge:"end",children:A?e.jsx(Ge,{}):e.jsx(ve,{})})]})]})}),h.length>0&&e.jsx(We,{in:A,timeout:"auto",unmountOnExit:!0,children:e.jsx(J,{disablePadding:!0,sx:{pl:2,pr:2,py:1,bgcolor:"rgba(0, 0, 0, 0.01)"},children:h.map(i=>{const r=`${i.type}-${i.source}`,n=!!p[r];return e.jsx(G,{dense:!0,sx:{py:.75},onClick:()=>f(i),children:e.jsxs(m,{sx:{display:"flex",alignItems:"flex-start",width:"100%"},children:[e.jsx(Y,{checked:n,sx:{mr:1}}),e.jsxs(m,{children:[e.jsx(R,{variant:"body1",sx:{cursor:"pointer"},children:i.type}),e.jsx(R,{variant:"caption",color:"text.disabled",sx:{display:"block",cursor:"pointer"},children:i.description})]})]})},r)})})})]},l)})})}),E&&e.jsx(Oe,{error:!0,sx:{mt:1},children:E})]})}te.propTypes={eventsBySource:t.objectOf(t.shape({source:t.shape({did:t.string.isRequired,title:t.string,description:t.string,version:t.string,logo:t.string}).isRequired,events:t.arrayOf(t.shape({type:t.string.isRequired,description:t.string.isRequired,source:t.string.isRequired})).isRequired,count:t.number.isRequired})).isRequired,selectedEvents:t.objectOf(t.bool).isRequired,setSelectedEvents:t.func.isRequired,error:t.string};te.defaultProps={error:null};function oe({id:o,url:p,description:u,enabledEvents:E,onSubmit:s,onClose:I}){var i;const{t:c}=B(),[a,d]=T.useState({}),{teamDid:j}=_(),{api:y}=F(),{loading:f,error:w,eventsBySource:b}=tt(),{control:l,handleSubmit:g,formState:{errors:h},reset:S,setValue:x,trigger:z}=Se({defaultValues:{url:"",description:""}});T.useEffect(()=>{const r=Object.values(a).some(n=>n);x("selectedEvents",r?"valid":""),z("selectedEvents")},[a,x,z]);const k=()=>{d({}),S(),I()},A=async r=>{const n=Object.keys(a).filter(v=>a[v]),C={url:r.url,description:r.description,enabledEvents:n.map(v=>{const[P,O]=v.split("-");return!P||!O?null:{type:P,source:O}}).filter(Boolean)};try{if(o){const v=await y.updateWebhookEndpoint({input:{teamDid:j,id:o,data:C}});q.success(`${c("webhookEndpoint.updateWebhook")} ${c("webhookEndpoint.success")}`),s(v)}else{const v=await y.createWebhookEndpoint({input:{teamDid:j,input:C}});q.success(`${c("webhookEndpoint.createWebhook")} ${c("webhookEndpoint.success")}`),s(v)}}catch(v){q.error(v==null?void 0:v.message)}k()};return T.useEffect(()=>{S({url:p,description:u}),d(E.reduce((r,n)=>(r[`${n.type}-${n.source}`]=!0,r),{}))},[S,d,p,u,E]),e.jsx(Ie,{open:!0,onClose:k,maxWidth:"lg",fullWidth:!0,sx:{"& .MuiDialog-paper":{minHeight:600}},children:e.jsxs("form",{onSubmit:g(A),children:[e.jsx(ze,{children:c(o?"webhookEndpoint.editWebhookTitle":"webhookEndpoint.createWebhookTitle")}),e.jsx(De,{children:e.jsxs(m,{sx:{display:"flex",flexDirection:"column",gap:2,mt:2},children:[e.jsx(K,{name:"url",control:l,rules:{required:c("webhookEndpoint.validation.urlRequired"),pattern:{value:/^(http|https):\/\/[^ "]+$/,message:c("webhookEndpoint.validation.urlInvalid")}},render:({field:r})=>{var n;return e.jsx(re,{...r,label:c("webhookEndpoint.url.label"),fullWidth:!0,error:!!h.url,helperText:(n=h.url)==null?void 0:n.message})}}),e.jsx(K,{name:"description",control:l,rules:{required:c("webhookEndpoint.validation.descriptionRequired")},render:({field:r})=>{var n;return e.jsx(re,{...r,label:c("webhookEndpoint.description.label"),fullWidth:!0,multiline:!0,minRows:2,maxRows:4,error:!!h.description,helperText:(n=h.description)==null?void 0:n.message})}}),e.jsx(K,{name:"selectedEvents",control:l,rules:{required:c("webhookEndpoint.validation.eventRequired")},render:({field:r})=>e.jsx("input",{type:"hidden",...r})}),!f&&b&&Object.keys(b).length>0&&e.jsx(te,{eventsBySource:b,selectedEvents:a,setSelectedEvents:d,error:(i=h.selectedEvents)==null?void 0:i.message}),!f&&(!b||Object.keys(b).length===0)&&e.jsx(R,{color:"text.secondary",children:c("webhookEndpoint.noAvailableEvents")}),f&&e.jsx(m,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"500px",width:"100%"},children:e.jsx(M,{size:20})}),w&&e.jsx(Z,{severity:"error",children:c("webhookEndpoint.loadingError",{message:w==null?void 0:w.message})})]})}),e.jsxs(Pe,{sx:{p:"8px 24px 24px"},children:[e.jsx(H,{onClick:k,children:c("common.cancel")}),e.jsx(H,{type:"submit",variant:"contained",color:"primary",children:c(o?"webhookEndpoint.updateWebhook":"webhookEndpoint.saveWebhook")})]})]})})}oe.propTypes={onSubmit:t.func.isRequired,id:t.string,url:t.string,description:t.string,enabledEvents:t.arrayOf(t.shape({type:t.string.isRequired,source:t.string.isRequired})),onClose:t.func};oe.defaultProps={id:null,url:"",description:"",enabledEvents:[],onClose:()=>{}};function xe(o){switch(o){case"enabled":return"success";case"disabled":default:return"default"}}const ot=(o="en")=>o==="tw"?"zh":o;function N(o,p="YYYY-MM-DD HH:mm:ss",u="en"){return o?Te(o).locale(ot(u)).format(p):"-"}function st(o){return typeof o=="number"?!1:he(o)}function nt(o){return o>=200&&o<300}function W(o){const p=st(o.value);return e.jsxs(e.Fragment,{children:[e.jsxs(D,{direction:"column",alignItems:"flex-start",children:[e.jsxs(R,{component:"div",variant:"body1",mb:1,color:"text.primary",sx:{fontWeight:500},children:[o.label,!!o.tip&&e.jsx($,{title:o.tip,children:e.jsx(qe,{fontSize:"small"})})]}),e.jsx(R,{component:"div",variant:"body1",color:p?"text.disabled":"text.secondary",sx:{width:"100%",minHeight:"24px"},children:p?"-":o.value})]}),o.divider&&e.jsx($e,{orientation:"vertical",flexItem:!0})]})}W.propTypes={label:t.oneOfType([t.string,t.node]).isRequired,value:t.oneOfType([t.string,t.node]).isRequired,tip:t.oneOfType([t.string,t.node]),divider:t.bool};W.defaultProps={tip:"",divider:!1};function se(o){return e.jsxs(D,{className:"section-header",direction:"row",justifyContent:"space-between",alignItems:"center",flexWrap:"wrap",gap:1,sx:{mb:o.mb,mt:o.mt,pb:1},children:[e.jsx(R,{variant:"h3",sx:{fontSize:{xs:"18px",md:"1.09375rem"}},component:"div",children:o.title}),o.children]})}se.propTypes={title:t.oneOfType([t.string,t.node]).isRequired,children:t.node,mb:t.number,mt:t.number};se.defaultProps={children:null,mb:1.5,mt:1.5};const it=o=>{const p={};return o.forEach(u=>{var s;const E=new Date(u.createdAt).toLocaleDateString();p[E]||(p[E]=[]),(s=p[E])==null||s.push(u)}),p};function ne({eventId:o,webhookEndpointId:p,event:u}){const{api:E}=F(),{t:s}=B(),{teamDid:I}=_(),{blocklet:c}=pe(),{data:a,loadMore:d,loadingMore:j,loading:y}=ke(x=>{const k=x?Math.ceil(x.list.length/15)+1:1;return E.getWebhookAttempts({input:{teamDid:I,input:{eventId:o,webhookId:p},paging:{page:k,pageSize:15}}})},{reloadDeps:[o,p]}),f=(a==null?void 0:a.list)||[],[w,b]=T.useState(null),l=it(f);T.useEffect(()=>{!w&&(a!=null&&a.list.length)&&b(a.list[0])},[a==null?void 0:a.list.length,w]);const g=x=>{b(x)};if(y)return e.jsx(M,{});const h=a&&a.list.length<a.paging.total,S=x=>{var z,k,A,i,r;if(x.responseBody&&((z=x.responseBody)!=null&&z.sessionId)&&((k=x.responseBody)!=null&&k.projectId)&&((A=x.responseBody)!=null&&A.agentId)){const n=(r=(i=c==null?void 0:c.site)==null?void 0:i.domainAliases[0])==null?void 0:r.value,C=(c.children||[]).find(P=>{var O;return((O=P==null?void 0:P.meta)==null?void 0:O.name)==="ai-studio"}),v=Qe(Xe(`https://${n}`,(C==null?void 0:C.mountPoint)||"","projects",x.responseBody.projectId,"logs/main"),{sessionId:x.responseBody.sessionId,agentId:x.responseBody.agentId});return e.jsx(ee,{sx:{fontSize:20},onClick:()=>window.open(v,"_blank"),children:e.jsx(m,{component:ge,icon:fe})})}return null};return e.jsxs(V,{container:!0,spacing:{xs:0,md:1},sx:{height:1},children:[e.jsx(V,{item:!0,xs:12,md:4,height:1,children:he(Object.keys(l))?e.jsx(R,{color:"text.secondary",children:s("webhookEndpoint.waitingForEvents")}):e.jsxs(e.Fragment,{children:[e.jsx(J,{sx:{maxHeight:"calc(100% - 40px)",py:0,overflowY:"auto"},children:Object.entries(l).map(([x,z])=>e.jsxs(Q.Fragment,{children:[e.jsx(Le,{children:x}),z.map(k=>e.jsxs(G,{sx:{cursor:"pointer"},onClick:()=>g(k),selected:w===k,secondaryAction:e.jsx(R,{color:"text.secondary",children:N(k.createdAt,"HH:mm:ss")}),children:[e.jsx(Be,{sx:{minWidth:0,mr:1.5},children:nt(k.responseStatus)===!1?e.jsx(Me,{color:"error"}):e.jsx(He,{color:"success"})}),e.jsx(Ne,{primary:e.jsx(R,{color:"text.primary",children:k.event.type})})]},k.id))]},x))}),h&&e.jsx(m,{display:"flex",justifyContent:"center",alignItems:"center",width:1,children:e.jsx(H,{variant:"text",type:"button",color:"inherit",onClick:d,disabled:j,sx:{color:x=>x.palette.text.disabled},children:s(j?"webhookEndpoint.loadingMore":"webhookEndpoint.loadMore")})})]})}),e.jsxs(V,{item:!0,xs:12,md:8,height:1,children:[w&&e.jsxs(D,{height:1,overflow:"auto",direction:"column",spacing:2,sx:{pl:{xs:0,md:1},mt:{xs:2,md:0},borderLeft:{xs:"none"}},children:[e.jsxs(m,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(R,{variant:"h6",children:o?w.endpoint.url:w.event.type}),e.jsx(m,{children:S(w)})]}),e.jsxs(m,{children:[e.jsxs(R,{variant:"h6",children:[s("webhookEndpoint.response")," (",w.responseStatus,")"]}),e.jsx(U,{language:"json",children:JSON.stringify(w.responseBody,null,2)})]}),e.jsxs(m,{children:[e.jsx(D,{direction:"row",alignItems:"center",spacing:1,children:e.jsx(R,{variant:"h6",children:s("webhookEndpoint.request")})}),e.jsx(U,{language:"json",sx:{margin:0},children:JSON.stringify(w.event,null,2)})]})]}),(a==null?void 0:a.list.length)===0&&u&&e.jsxs(m,{children:[e.jsx(D,{direction:"row",alignItems:"center",spacing:1,children:e.jsx(R,{variant:"h6",children:s("webhookEndpoint.eventData")})}),e.jsx(U,{language:"json",sx:{margin:0},children:JSON.stringify(u.data,null,2)})]})]})]})}ne.propTypes={eventId:t.string,webhookEndpointId:t.string,event:t.shape({type:t.string,data:t.object,request:t.object,requestInfo:t.object})};ne.defaultProps={eventId:"",webhookEndpointId:"",event:null};function me({id:o,onClose:p}){var j,y,f,w;const{t:u}=B(),{api:E}=F(),{teamDid:s}=_(),{loading:I,error:c,data:a}=de(()=>E.getWebhookEndpoint({input:{teamDid:s,id:o}})),d=a==null?void 0:a.data;return c?e.jsx(Z,{severity:"error",children:c.message}):I||!d?e.jsx(m,{display:"flex",justifyContent:"center",alignItems:"center",height:1,width:1,children:e.jsx(M,{})}):e.jsxs(rt,{direction:"column",sx:{height:{xs:"auto",md:1}},children:[e.jsxs(m,{children:[e.jsxs(D,{direction:"row",justifyContent:"space-between",alignItems:"center",children:[e.jsx(D,{flex:1,width:0,children:e.jsxs(m,{sx:{display:"flex",alignItems:"center",gap:1},children:[e.jsx(R,{variant:"h5",fontWeight:600,sx:{overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},children:d.description}),e.jsx($,{title:d.url,children:e.jsx(X,{sx:{fontSize:"16px",marginTop:"2px"}})})]})}),e.jsx(D,{direction:"row",alignItems:"center",children:e.jsx(ee,{edge:"end",color:"inherit",onClick:p,children:e.jsx(_e,{})})})]}),e.jsx(m,{mt:2,children:e.jsxs(D,{className:"section-body",direction:{xs:"column",md:"row"},spacing:{xs:1,md:3},justifyContent:"flex-start",flexWrap:"wrap",sx:{pt:2,mt:2,borderTop:"1px solid #eee"},children:[e.jsx(W,{label:u("common.status"),value:e.jsx(L,{size:"small",variant:"filled",label:d.status,color:xe(d.status),sx:{borderRadius:"4px",lineHeight:"20px",textTransform:"capitalize"}}),divider:!0}),e.jsx(W,{label:u("webhookEndpoint.listen"),value:e.jsx($,{arrow:!0,title:e.jsx("ul",{style:{padding:0,margin:0},children:d.enabledEvents.map(b=>e.jsx("li",{style:{fontSize:"0.7875rem"},children:b==null?void 0:b.type},b))}),children:e.jsx(L,{size:"small",variant:"filled",label:u("webhookEndpoint.eventsCount",{count:d.enabledEvents.length}),sx:{borderRadius:"4px",lineHeight:"20px",textTransform:"capitalize"}})}),divider:!0}),e.jsx(W,{label:u("webhookEndpoint.version"),value:d.apiVersion,divider:!0}),e.jsx(W,{label:u("common.createdAt"),value:N(d.createdAt),divider:!0}),e.jsx(W,{label:u("common.updatedAt"),value:N(d.updatedAt),divider:!0}),e.jsx(W,{label:u("common.createdBy"),value:e.jsx($,{arrow:!0,title:(j=d.createUser)==null?void 0:j.did,children:e.jsx(L,{size:"small",variant:"filled",label:(y=d.createUser)==null?void 0:y.fullName,sx:{borderRadius:"4px",lineHeight:"20px",textTransform:"capitalize"}})}),divider:!0}),e.jsx(W,{label:u("common.updatedBy"),value:e.jsx($,{arrow:!0,title:(f=d.updateUser)==null?void 0:f.did,children:e.jsx(L,{size:"small",variant:"filled",label:(w=d.updateUser)==null?void 0:w.fullName,sx:{borderRadius:"4px",lineHeight:"20px",textTransform:"capitalize"}})})})]})})]}),e.jsxs(D,{className:"section",flex:1,height:0,overflow:"hidden",children:[e.jsx(se,{title:u("webhookEndpoint.attempts"),mb:0,mt:4}),e.jsx(D,{height:0,flex:1,overflow:"hidden",children:e.jsx(ne,{webhookEndpointId:d.id})})]})]})}me.propTypes={id:t.string.isRequired,onClose:t.func.isRequired};const rt=ue(D)``;function be({open:o,onClose:p,id:u}){return e.jsx(Fe,{anchor:"right",open:o,onClose:p,PaperProps:{sx:{width:"90vw",maxWidth:"1200px"}},children:e.jsx(m,{sx:{height:"100vh",p:3},children:e.jsx(me,{id:u,onClose:p})})})}be.propTypes={open:t.bool.isRequired,onClose:t.func.isRequired,id:t.string.isRequired};function ce(){return null}const ie=Q.memo(({options:o,columns:p,toolbar:u=!0,footer:E=!0,hasRowLink:s=!1,emptyNodeText:I="",...c})=>{const{locale:a}=B(),d=Ue(f=>f.breakpoints.down("md")),j={print:!1,download:!1,filter:!1,selectableRows:"none",rowsPerPage:d?5:10,rowsPerPageOptions:[5,10,20,50,100],searchDebounceTime:300,tableBodyHeight:"100%",loading:!0},y={};return u||(y.TableToolbar=ce),E||(y.TableFooter=ce),e.jsx(lt,{locale:a,options:{...j,...o},columns:(p||[]).map(f=>(f.options=f.options||{},f.options.filter=f.options.filter||!1,f.options.sort=f.options.sort||!1,f)),emptyNode:e.jsx(je,{children:I}),...c,components:y,hasRowLink:s,isMobile:d})});ie.propTypes={options:t.object,columns:t.array,toolbar:t.bool,footer:t.bool,hasRowLink:t.bool,emptyNodeText:t.node,durable:t.string,durableKeys:t.array,data:t.array,loading:t.bool,onChange:t.func,title:t.node,components:t.object};ie.defaultProps={options:{},columns:[],toolbar:!0,footer:!0,hasRowLink:!1,emptyNodeText:null,durable:"",durableKeys:[],data:[],loading:!1,onChange:()=>{},title:null,components:{}};const lt=ue(ye)``,at=ie;function Ot(){const{teamDid:o}=_(),p=Re(),u=`webhook-endpoints-${o}`,E=we(u),{t:s,locale:I}=B(),{api:c}=F(),[a,d]=T.useState(""),[j,y]=T.useState({webhookDetail:{open:!1,id:null},createEdit:{open:!1,id:null,url:"",description:"",enabledEvents:[]},deleteConfirm:null}),[f,w]=Ee(u,{defaultValue:{pageSize:E.rowsPerPage||20,page:E.page?E.page+1:1}}),{loading:b,error:l,data:g,refresh:h}=de(()=>c.getWebhookEndpoints({input:{teamDid:o,paging:{page:f.page,pageSize:f.pageSize}}}));T.useEffect(()=>{h()},[f,h]);const S=T.useCallback(async(i,r)=>{try{await c.updateWebhookEndpoint({input:{teamDid:o,id:i.id,data:{status:r?"disabled":"enabled"}}}),h(),q.success(`${s(r?"webhookEndpoint.disable":"webhookEndpoint.enable")}${s("webhookEndpoint.success")}`)}catch(n){q.error(n==null?void 0:n.message)}},[c,o,h,s]),x=T.useCallback(async i=>{try{await c.deleteWebhookEndpoint({input:{teamDid:o,id:i}}),h(),y(r=>({...r,deleteConfirm:null})),q.success(`${s("common.delete")}${s("webhookEndpoint.success")}`)}catch(r){q.error(r==null?void 0:r.message)}},[c,o,h,s]),z=(i,r)=>{let n=i.page+1;const C=i.searchText||"";if(C!==a){d(C);return}if(r==="changePage"||r==="changeRowsPerPage"){r!=="changePage"&&(n=1);const v={page:n,pageSize:i.rowsPerPage};d(""),w(v)}};if(l)return e.jsx(Z,{severity:"error",children:l.message});if(b||!g)return e.jsx(m,{display:"flex",justifyContent:"center",alignItems:"center",width:1,height:500,children:e.jsx(M,{})});const k=((g==null?void 0:g.list)||[]).filter(i=>{if(!a)return!0;const r=a.toLowerCase();return i.description.toLowerCase().includes(r)||i.url.toLowerCase().includes(r)}),A=[{label:"URL",name:"url",options:{customBodyRenderLite:(i,r)=>{const n=k[r];return e.jsxs(m,{sx:{display:"flex",alignItems:"center",cursor:"pointer",gap:.5},children:[e.jsx(R,{variant:"body2",children:n.description}),e.jsx(m,{sx:{display:"flex"},onClick:C=>{C.stopPropagation()},children:e.jsx($,{title:n.url,children:e.jsx(X,{sx:{fontSize:"15px",marginTop:"1px"}})})})]})}}},{label:"Events",name:"events",options:{customBodyRenderLite:(i,r)=>{const n=k[r];return e.jsx(m,{sx:{display:"flex",alignItems:"center",gap:1,flexWrap:"wrap"},children:n.enabledEvents.map(C=>e.jsx(L,{size:"small",variant:"filled",label:C.type,sx:{borderRadius:"4px",textTransform:"capitalize"}},`${n.source}-${C.type}`))})}}},{label:s("common.status"),name:"status",options:{customBodyRenderLite:(i,r)=>{const n=k[r];return e.jsx(L,{size:"small",variant:"filled",label:s(`webhookEndpoint.${n==null?void 0:n.status}`),color:xe(n==null?void 0:n.status),sx:{borderRadius:"4px",textTransform:"capitalize"}},`status-${n.status}`)}}},{label:s("common.createdAt"),name:"createdAt",minWidth:200,options:{customBodyRender:i=>N(i)}},{label:s("common.actions"),name:"actions",width:100,align:"center",verticalKeyAlign:"center",options:{customBodyRenderLite:(i,r)=>{const n=k[r],C=(n==null?void 0:n.status)==="enabled";return e.jsx(et,{actions:[{icon:C?e.jsx(Ke,{}):e.jsx(Ye,{}),text:s(C?"webhookEndpoint.disable":"webhookEndpoint.enable"),onClick:v=>{v.stopPropagation(),S(n,C)}},{icon:e.jsx(Ve,{}),text:s("common.edit"),onClick:v=>{v.stopPropagation(),y(P=>({...P,createEdit:{open:!0,id:n.id,url:n.url,description:n.description,enabledEvents:n.enabledEvents}}))}},{icon:e.jsx(Je,{}),text:s("common.delete"),onClick:v=>{v.stopPropagation(),y(P=>({...P,deleteConfirm:{title:s("webhookEndpoint.deleteWebhook.title"),description:s("webhookEndpoint.deleteWebhook.description"),confirm:s("common.confirm"),cancel:s("common.cancel"),onConfirm:()=>x(n.id),onCancel:()=>y(O=>({...O,deleteConfirm:null}))}}))}}]})}}}];return e.jsxs(m,{sx:{".custom-toobar-btns":{gap:"8px"},".custom-toobar-title .custom-toobar-title-inner>span":{display:"flex",alignItems:"center","white-space":"inherit",height:"100%"}},children:[p?e.jsx(ae,{title:s("webhookEndpoint.listTitle"),tooltipTitle:s("webhookEndpoint.tooltipTitle"),link:`https://www.arcblock.io/docs/blocklet-developer/${I}/webhook`}):null,e.jsx(at,{durable:u,durableKeys:["page","rowsPerPage"],data:k,columns:A,options:{count:g.count,page:f.page-1,rowsPerPage:f.pageSize,viewColumns:!1,onRowClick:(i,{dataIndex:r})=>{const n=g.list[r];y(C=>({...C,webhookDetail:{open:!0,id:n.id}}))}},loading:b,onChange:z,emptyNodeText:e.jsx(D,{gap:1,children:s("webhookEndpoint.noWebhooksAdded")}),title:p?null:e.jsx(ae,{title:s("webhookEndpoint.listTitle"),tooltipTitle:s("webhookEndpoint.tooltipTitle"),link:`https://www.arcblock.io/docs/blocklet-developer/${I}/webhook`}),customButtons:[e.jsxs(H,{sx:{color:"common.white"},edge:"end",variant:"contained",color:"primary",onClick:()=>y(i=>({...i,createEdit:{...i.createEdit,open:!0}})),className:"rule-action",children:[b?e.jsx(M,{size:16}):e.jsx(Ce,{style:{fontSize:16}}),s("common.create")]},"add")]}),j.webhookDetail.open&&e.jsx(be,{open:!0,onClose:()=>y(i=>({...i,webhookDetail:{open:!1,id:null}})),id:j.webhookDetail.id}),j.createEdit.open&&e.jsx(oe,{onSubmit:h,...j.createEdit,onClose:()=>y(i=>({...i,createEdit:{id:null,url:"",description:"",enabledEvents:[],open:!1}}))}),j.deleteConfirm&&e.jsx(Ze,{title:j.deleteConfirm.title,description:j.deleteConfirm.description,confirm:j.deleteConfirm.confirm,cancel:j.deleteConfirm.cancel,params:j.deleteConfirm.params,onConfirm:j.deleteConfirm.onConfirm,onCancel:j.deleteConfirm.onCancel})]})}export{Ot as default};
@@ -1 +0,0 @@
1
- const e={auth:{noPermission:{title:"권한이 없습니다",description:"당신은 블록렛의 관리자가 아닙니다"}},login:{reLogin:"재연결",description:"{name}에 액세스하려면 DID 지갑을 연결해야합니다",already:"{name}으로 연결되었습니다",connectWallet:"DID 지갑 연결하기",closeWindow:"창 닫기",accessLimit:{title:"페이지 액세스가 제한되었습니다",description:"이 페이지에 액세스하려면 다음 여권이 필요합니다. 지갑에 연결하여 해당 패스를 변경하거나 신청하십시오.",alreadyHavePassport:"이미 여권이 있습니다",connectWithPassport:"이 여권으로 연결하세요",buyPassport:"여권 구매하기"},switchDid:{title:"계정 전환",scan:"다음 방법으로 계정을 추가하십시오",confirm:"DID 지갑에서의 전환을 확인하세요",success:"성공적으로 전환되었습니다"},switchSpecifiedDid:{title:"계정 전환",scan:"다음 동작을 완료하려면 DID를 {did}로 전환해야 합니다",confirm:"DID 지갑에서의 전환을 확인하세요",success:"성공적으로 전환되었습니다"},connect:{title:"연결",scan:"다음 방법을 사용하여 연결을 완료하십시오",confirm:"DID 지갑에서 확인해주세요",success:"성공적으로 연결되었습니다"},needManualClose:"로그인 성공, 이 창이 자동으로 닫히지 않는 경우 직접 닫아 주세요",connectWithPassport:"이 여권과 연결",invalidRedirectUrl:"잘못된 리디렉션 URL",issueKyc:{pageDescription:"계정을 안전하게 보호하고 다른 사이트에서 신뢰할 수 있는 재사용 가능한 NFT를 획득하려면 확인을 완료하세요 (한 번 확인하고 모든 곳에서 표시).",verifyButton:"확인하다",sendCodeButton:"인증 코드 받기",codeSentMessage:"{email}로 인증 코드를 전송했습니다. 해당 코드의 유효 기간은 30 분이며, 받은 편지함이나 스팸함을 확인하십시오.",codeSentSuccess:"인증 코드가 성공적으로 전송되었습니다",claim:"인증된 이메일 인증서 요청",scan:"인증서를 받으려면 DID 지갑을 연결하세요",confirm:"귀하의 DID 지갑에서 확인",success:"축하합니다! 귀하의 이메일 인증 및 DID 지갑에서 인증서를 성공적으로 완료했습니다.",backToHome:"홈으로 돌아가기",emailPlaceholder:"귀하의 이메일 주소",verifyTitle:"이메일 주소를 확인하세요",issueTitle:"청구 이메일 인증 NFT",verifyAction:"확인 중",issueAction:"주장",issueTarget:"다음 DID에 대해 {action} 중입니다, 다른 DID를 추가하려면 아바타를 클릭하십시오"},updateKyc:{button:"선물 증명서",title:"현재 확인된 이메일 인증서",scan:"인증서를 제출하려면 DID 지갑에 연결하십시오",confirm:"귀하의 DID 지갑에서 확인하십시오",success:"축하합니다! 귀하의 NFT가 확인되었고 수락되었습니다."},invalidOpenerUrl:"잘못된 오프너 URL"},studio:{home:"스튜디오",preferences:"선호도 빌더",localization:"로컬라이제이션",branding:"브랜딩 이미지",ratio:"비율",size:"크기",count:"계산",tip:"팁",change:"로고를 클릭하여 변경하세요.",order:"주문",orderTip:"드래그하여 변경",orderTipLong:"드래그하여 변경, 디스크에서 스크린샷을 삭제하면 페이지 새로 고침을 해 주세요.",type:"유형",videoTipLong:"커버를 클릭하여 비디오 링크를 편집하세요.",video:"비디오",videoTooltip:"드래그하여 순서 변경.",videoType:"지원되는 웹사이트",videoDialogTitle:"비디오 추가",videoDialogEditTitle:"편집/삭제 비디오",videoInputLabel:"YouTube 또는 Vimeo 동영상 링크를 입력하세요",videoDialogNoSrc:"유효한 비디오 링크를 입력하세요",duplicateVideo:"이 비디오가 추가되었습니다",confirm:"확인",cancel:"취소",preview:"미리보기",delete:"삭제",title:"{title}에 이미지 제공",description:"자세한 내용은",documentation:"문서"},blocklet:{startApplication:"애플리케이션 시작",startDescription:"{name}님, 시작할 준비가 되었습니다.",start:"시작",starting:"시작 중...",open:"열다",suspended:"앱이 일시 중지되었습니다",manageSubscription:"구독 관리",suspendedCausedByExpired:"이 애플리케이션은 구독 취소로 인해 종료되었으며, {canceledAt}에 취소되었습니다. {deadline} 이전에 구독을 재개할 수 있습니다.",suspendedCausedByPastDue:"이 애플리케이션은 구독 미납으로 인해 중지되었습니다. {deadline} 이전에 갱신을 완료하면 재개할 수 있으며, 기한이 지나면 갱신 및 재개가 불가능합니다.",willBeSuspendedSoon:"이 애플리케이션은 구독이 곧 취소될 예정이어서 {deadline}에 서비스가 중단됩니다. 계속 사용하려면 구독을 복구하세요.",suspendedCausedByTerminated:"구독이 취소되어 애플리케이션이 종료되었습니다. {canceledAt}에 취소되었으며 데이터는 {deadline}까지 보관됩니다. 데이터가 삭제되기 전에 DID Spaces에 데이터를 백업할 수 있습니다.",terminated:"애플리케이션이 종료되었습니다",gotoVisitError:"Blocklet URL 에 접근할 수 없습니다, 나중에 다시 시도해 주세요",payNow:"지금 결제",startLoadingText:"서비스가 시작 중이며 몇 분 정도 걸릴 수 있습니다. 잠시 기다려 주세요...",startingProgress:{starting:"시작 {name}...",success:"{name} 이(가) 성공적으로 시작되었습니다",failed:"{name} 시작 실패"}},setup:{steps:{connect:"연결하기",didSpace:"DID 공간",config:"구성",domain:"도메인",access:"접근 제어",fuel:"연료",complete:"완료",introduction:"소개",selectNodeDesc:"블록렛 서버를 선택하세요",launchAppDesc:"서버에 Blocklet을 설치하십시오",setupAppDesc:"Blocklet 설정",launched:"완료"},connect:{title:"애플리케이션에 연결하세요",scan:"다음 방법을 사용하여 사용자 프로필과 Blocklet 의 소유자 권한을 제공한 후 앱을 구성하고 실행할 수 있습니다.",confirm:"DID 지갑에서 확인해주세요",success:"성공적으로 연결되었습니다"},domain:{addTitle:"기존 도메인 바인딩 (선택 사항)",title:"도메인 선택",subTitle:"애플리케이션의 도메인을 사용자 지정",label:"유효한 도메인 이름을 입력해주세요",tipStart:"확인해주세요",tipEnd:"현재 서버를 가리킵니다",addingCert:"인증서 생성 중...",recordType:"레코드 유형",recordValue:"레코드 값",genCertSuccess:"{domain} 인증서가 성공적으로 발급되었습니다",genCertFailed:"{domain}에 대한 인증서 발급에 실패했습니다: {message}",genCertFailedForNFTDomain:"NFT 도메인이 성공적으로 추가되었지만 HTTPS 인증서 생성에 실패했습니다. 나중에 다시 시도해주세요.",buyDIDDomainTitle:"DID 도메인 구매 (선택사항)",buyDIDDomainTips:"DID 도메인을 구매한 후 도메인은 애플리케이션에 자동으로 바인딩됩니다.",buyOrConnect:"기존 도메인을 구매하거나 구성할 수 있습니다",skipDescription:"기본 도메인을 임시로 사용할 수 있습니다. 이러한 도메인은 프로덕션 환경에 적합하지 않으며 고객과 공유해서는 안 됩니다."},didSpace:{title:"DID 공간 구성하기",subTitle:"DID Spaces에 애플리케이션 데이터를 저장하려면 다음 연결 프로세스를 완료하세요",tips:"팁",description:"성공적인 연결 후에 DID Spaces 인스턴스 주소를 구성하고 애플리케이션 데이터를 DID Spaces에 저장하세요",label:"DID Spaces 서비스를 선택해주세요",connected:"DID Spaces에 성공적으로 연결되었습니다",connect:"지금 연결하기",reconnect:"다시 연결",addressCannotEmpty:"주소는 비워둘 수 없습니다",addressNotValid:"{url} 는 유효한 주소가 아닙니다",authorize:{title:"{appName}을(를) DID 공간에 연결하세요",scan:"다음 방법을 사용하여 앱 {appName}이 DID Spaces에 연결할 수 있도록 허용합니다",success:"성공적으로 연결됨"}},config:{title:"설정",subTitle:"기타 구성 항목 (다음 항목도 설정해야 함)"},complete:{title:"애플리케이션이 준비되었습니다",failedTitle:"애플리케이션 시작에 실패했습니다",backToServer:"블록렛 서버로 돌아가기",notRunning:"앱이 첫 시도에서 시작하지 못했습니다. 다시 시도해 주세요",readyToStart:"앱이 곧 준비됩니다"},fuel:{title:"시작에 필요한 연료",tipStart:"슬롯",tipEnd:"이 애플리케이션의 정상 작동을 위해 자금이 응용 프로그램 지갑에 저장되어 트랜잭션 수수료로 사용될 수 있어야합니다. 앱을 사용하지 않을 때 언제든지 잔액을 인출 할 수 있습니다.",addressTitle:"앱 계정",addressTip:"DID 지갑으로 애플리케이션에 연료를 공급하세요",need:"필요합니다",current:"현재",fuelApp:"앱에 연료 공급"},title:"설정",next:"다음",previous:"이전",continue:"계속",skip:"건너뛰기",startNow:"지금 시작",confirm:"확인",cancel:"취소"},user:{walletNotification:"DID 지갑 알림",emailNotification:"이메일 알림",smsNotification:"SMS 알림",addWebhook:"새로운 Webhook 추가하기"},pageTitle:{login:"로그인",dashboard:"블록렛 대시보드",userCenter:"사용자 센터",invite:"초대하다",issuePassport:"여권 발급",lostPassport:"잃어버린 여권"},errorPage:{404:{title:"이런! 페이지를 찾을 수 없습니다",description:"찾고 있는 페이지가 존재하지 않는 것 같습니다.",backHome:'방문자라면 <a href="{url}">홈페이지로 돌아갈 수 있습니다</a>',goToDashboard:"사이트 소유자라면 <a href={url}>대시보드에 로그인</a>할 수 있습니다."}},common:{branding:"브랜드",theming:"테마",navigation:"탐색",sitemap:"사이트맵",advanced:"고급",performance:"성능",docs:"문서",comingSoon:"곧 출시 예정",accessKeys:"액세스 키"},connectCli:{title:"연결하여 액세스 키 생성",scan:"다음 QR코드를 스캔하여 연결하고 액세스 키를 생성하세요",success:"액세스 키를 생성하기 위해 성공적으로 연결되었습니다",successDesc:"액세스 키가 성공적으로 생성되었습니다. 이 페이지는 안전하게 닫을 수 있습니다. 생성된 액세스 키를 사용하여 로컬 Blocklets을 업로드할 수 있습니다.",invalidSession:"세션이 무효합니다",invalidSessionDesc:"세션이 존재하지 않거나 만료되었습니다. 'blocklet deploy --endpoint {endpoint}' 명령어를 사용하여 액세스 키를 재생성하십시오",connectionError:"액세스 키 생성 실패",home:"홈으로 돌아가기",tips:{title:"액세스 키 생성",item1:"현재 애플리케이션에 Blocklets를 로컬로 배포할 수 있습니다",item2:"애플리케이션의 액세스 키 목록에 표시됩니다",item3:"언제든지 목록에서 액세스 키를 취소할 수 있습니다"}},notFoundOauthClient:"OAuth 앱을 찾을 수 없습니다. OAuth 설정을 확인한 후 다시 시도하십시오."};export{e as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-bIHubQ8z.js","assets/vendor-ux-did-connect-DIlRfE_S.js","assets/vendor-react-DEoibe3W.js","assets/vendor-utils-rHXShPKm.js","assets/vendor-mui-core-BV2FUxWJ.js","assets/vendor-hooks-BgUTpb6X.js","assets/lottie-web-jYmAQWuC.js","assets/vendor-ux-did-connect-DpSGLE7B.css","assets/vendor-arcblock-DuPySS9V.js","assets/index-Bs1kxR8_.js","assets/index-YbYWmpAT.js","assets/index-DOq-_YXu.css","assets/index-DVQCgvFb.js","assets/index-AgKpYdvC.css"])))=>i.map(i=>d[i]);
2
- import{r as b,b as ve}from"./vendor-react-DEoibe3W.js";import{a as F,d as H,j as K,a0 as M,_ as ye,$ as ne,Y as $,b6 as Ce,a9 as we,a2 as Te}from"./vendor-ux-did-connect-DIlRfE_S.js";import{H as n,j as e,D as G,aj as Q,I as X,t as Y,al as D,T as I,aa as p,O as T,bq as y,bK as ke,bQ as oe,bs as se,bR as ae,X as J,ak as ce,z as ue,y as E,ab as Z,ad as Se}from"./vendor-mui-core-BV2FUxWJ.js";import{B as de}from"./vendor-arcblock-DuPySS9V.js";import{d as Ie}from"./Edit-DSht16TX.js";import{_ as Re}from"./dot-itVN8XTt.js";import{l as pe}from"./index-BJHSgjnI.js";import{D as B,aA as he,aB as S,G as qe}from"./index-YbYWmpAT.js";import{u as _}from"./dashboard-AdC8-kkA.js";import{o as Ae,c as Oe,A as re}from"./vendor-utils-rHXShPKm.js";import{E as Pe}from"./empty-spinner-BdaCO6xq.js";import{C as v}from"./click-to-copy-ByEMWZD_.js";import{D as Ne}from"./delete-confirm-Bn1HZjaL.js";import{b as We}from"./passport-item-DE-9Q-Cx.js";import{A as De}from"./actions-azdiYocL.js";import{T as le}from"./table-tips-DEGQUNJa.js";import{u as ze}from"./use-mobile-C21X4TYN.js";import"./vendor-hooks-BgUTpb6X.js";import"./lottie-web-jYmAQWuC.js";import"./useAsync-510ntT1B.js";import"./useLocalStorage-DO6t2PeQ.js";import"./index-8eXqqyHQ.js";import"./confirm-DI8TUyRK.js";import"./PlayArrow-CLKgdv6H.js";import"./get-safe-url-DrR-6D-i.js";import"./session-Djj2U6sa.js";import"./use-blocklet-logo-C_pDvfYN.js";import"./InfoOutlined-Cd28U1Oc.js";import"./useSetState-CWq0AVWn.js";import"./use-mobile-BAa0wi8o.js";import"./index-Bj2-CpPI.js";import"./Phone-BkOMNOMO.js";import"./Location-DxPzfR_p.js";import"./Email-BirbvqZ3.js";import"./Timezone-D91Of94T.js";import"./did-address-BlAXR08O.js";import"./util-VM27PwRk.js";import"./base32-CLrnUJal.js";import"./MoreHoriz-D-L8sA4c.js";const Le={clientName:"",clientUri:"",redirectUris:"",scope:["profile:read"],contacts:"",tosUri:"",policyUri:""};function me({onCreated:r,onClose:d}){const[t,m]=b.useState(!1),{t:l,locale:s}=F(),{api:g}=B(),{teamDid:h}=_(),{control:f,handleSubmit:A,formState:{errors:a},watch:k,setValue:x}=he({defaultValues:Le,mode:"onChange"}),w=k("scope"),R=c=>{c!=="profile:read"&&x("scope",w.includes(c)?w.filter(u=>u!==c):[...w,c])},N=async c=>{m(!0);try{const u={...c,redirectUris:c.redirectUris,contacts:c.contacts?c.contacts.split(",").map(O=>O.trim()):[],scope:c.scope.join(" ")};await g.createOAuthClient({input:{teamDid:h,input:Ae(u,Oe)}}),r(u)}catch(u){M.error(u.message||"Failed to create OAuth App")}finally{m(!1)}};return e.jsxs(G,{open:!0,onClose:d,maxWidth:"md",fullWidth:!0,children:[e.jsxs(Q,{children:[l("oauth.client.register")," ",e.jsx(X,{onClick:d,sx:{position:"absolute",right:8,top:8},children:e.jsx(H,{})})]}),e.jsx(Y,{children:e.jsxs(D,{spacing:4,sx:{mt:2},children:[e.jsx(I,{variant:"h6",gutterBottom:!0,children:l("oauth.client.requiredInformation")}),e.jsx(p,{children:e.jsx(S,{name:"clientName",control:f,rules:{required:l("oauth.client.validate.clientName"),minLength:{value:3,message:l("oauth.client.validate.clientNameMinLength")}},render:({field:c})=>{var u;return e.jsxs(e.Fragment,{children:[e.jsx(T,{size:"small",...c,label:l("oauth.client.name"),required:!0,fullWidth:!0,placeholder:l("oauth.client.input.clientNamePlaceholder"),error:!!a.clientName,helperText:(u=a.clientName)==null?void 0:u.message}),e.jsx(y,{children:l("oauth.client.helperText.clientName")})]})}})}),e.jsx(p,{children:e.jsx(S,{name:"clientUri",control:f,rules:{required:l("oauth.client.validate.clientUri"),pattern:{value:/^https?:\/\/.+/,message:l("oauth.client.validate.clientUriInvalid")}},render:({field:c})=>{var u;return e.jsxs(e.Fragment,{children:[e.jsx(T,{size:"small",...c,label:l("oauth.client.input.clientUri"),required:!0,fullWidth:!0,placeholder:l("oauth.client.input.clientUriPlaceholder"),error:!!a.clientUri,helperText:(u=a.clientUri)==null?void 0:u.message}),e.jsx(y,{children:l("oauth.client.helperText.clientUri")})]})}})}),e.jsx(p,{children:e.jsx(S,{name:"redirectUris",control:f,rules:{required:l("oauth.client.validate.redirectUris"),pattern:{value:/^https?:\/\/.+/,message:l("oauth.client.validate.redirectUrisInvalid")}},render:({field:c})=>{var u;return e.jsxs(e.Fragment,{children:[e.jsx(T,{size:"small",...c,label:l("oauth.client.input.redirectUris"),required:!0,fullWidth:!0,placeholder:l("oauth.client.input.redirectUrisPlaceholder"),error:!!a.redirectUris,helperText:(u=a.redirectUris)==null?void 0:u.message}),e.jsxs(p,{sx:{display:"flex",gap:"2px"},children:[e.jsx(y,{children:l("oauth.client.helperText.redirectUris")}),e.jsx(y,{children:l("oauth.client.helperText.read")}),e.jsx(y,{sx:{color:"info.main"},component:"a",href:`https://www.arcblock.io/docs/blocklet-developer/${s}/oauth-service`,target:"_blank",rel:"noopener noreferrer",children:l("oauth.client.helperText.document")}),e.jsx(y,{children:l("oauth.client.helperText.more")})]})]})}})}),e.jsxs(ke,{variant:"outlined",sx:{p:2,display:"none"},children:[e.jsx(I,{variant:"subtitle2",gutterBottom:!0,children:l("oauth.client.input.permissions")}),e.jsx(p,{sx:{border:"1px solid",borderColor:"divider",borderRadius:1,p:2},children:e.jsx(oe,{children:Object.entries(K.OAUTH_SCOPES).map(([c,u])=>e.jsx(se,{control:e.jsx(ae,{checked:w.includes(c),onChange:()=>R(c),disabled:c==="profile:read",color:"primary"}),label:e.jsx(p,{children:e.jsx(I,{variant:"body2",sx:{fontWeight:500},children:u})})},c))})})]}),e.jsx(J,{}),e.jsx(I,{variant:"h6",gutterBottom:!0,children:l("oauth.client.optionalInformation")}),e.jsx(D,{children:e.jsx(S,{name:"contacts",control:f,rules:{pattern:{value:/^$|^[^@\s]+@[^@\s]+\.[^@\s]+(\s*,\s*[^@\s]+@[^@\s]+\.[^@\s]+)*$/,message:l("oauth.client.validate.contacts")}},render:({field:c})=>{var u;return e.jsxs(e.Fragment,{children:[e.jsx(T,{size:"small",...c,label:l("oauth.client.input.contacts"),fullWidth:!0,placeholder:l("oauth.client.input.contactsPlaceholder"),error:!!a.contacts,helperText:(u=a.contacts)==null?void 0:u.message}),e.jsx(y,{children:l("oauth.client.helperText.contacts")})]})}})}),e.jsxs(D,{direction:{xs:"column",sm:"row"},spacing:2,children:[e.jsx(S,{name:"tosUri",control:f,rules:{pattern:{value:/^$|^https?:\/\/.+/,message:l("oauth.client.validate.tosUriInvalid")}},render:({field:c})=>{var u;return e.jsxs(p,{sx:{width:"50%"},children:[e.jsx(T,{size:"small",...c,label:l("oauth.client.input.tosUri"),fullWidth:!0,placeholder:l("oauth.client.input.tosUriPlaceholder"),error:!!a.tosUri,helperText:(u=a.tosUri)==null?void 0:u.message}),e.jsx(y,{children:l("oauth.client.helperText.tosUri")})]})}}),e.jsx(S,{name:"policyUri",control:f,rules:{pattern:{value:/^$|^https?:\/\/.+/,message:l("oauth.client.validate.policyUriInvalid")}},render:({field:c})=>{var u;return e.jsxs(p,{sx:{width:"50%"},children:[e.jsx(T,{size:"small",...c,label:l("oauth.client.input.policyUri"),fullWidth:!0,placeholder:l("oauth.client.input.policyUriPlaceholder"),error:!!a.policyUri,helperText:(u=a.policyUri)==null?void 0:u.message}),e.jsx(y,{children:l("oauth.client.helperText.policyUri")})]})}})]}),a.error&&e.jsx(ce,{severity:"error",children:a.error.message})]})}),e.jsxs(ue,{children:[e.jsx(E,{onClick:d,children:l("common.cancel")}),e.jsxs(E,{onClick:A(N),disabled:t,variant:"contained",color:"primary",children:[t?e.jsx(Z,{size:20,sx:{mr:1}}):null,l("oauth.client.registerButton")]})]})]})}me.propTypes={onCreated:n.func.isRequired,onClose:n.func.isRequired};function V({scope:r,...d}){if(!r)return null;const t=r.split(" ").filter(Boolean);return e.jsx(D,{direction:"row",flexWrap:"wrap",gap:1,...d,children:t.map(m=>e.jsx(ve.Fragment,{children:e.jsx(Se,{title:K.OAUTH_SCOPES[m],children:e.jsx(v,{children:m})})},m))})}V.propTypes={scope:n.string};V.defaultProps={scope:""};const ee=r=>{const{prefix:d}=B(),{blocklet:t}=qe(),m=re(d,"/api/media/upload",t.appPid),l=b.useCallback(g=>g?g.startsWith("http")?g:`${re(d,"/api/media/upload",t.appPid)}/${g}`:"",[d,t.appPid]);return{clientLogoUrl:b.useMemo(()=>l(r),[r,l]),apiPath:m,getClientLogoUrl:l}},Ee=b.lazy(()=>ye(()=>import("./index-bIHubQ8z.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13])).then(r=>({default:r.Uploader})));function xe({client:r,onUpdate:d,onClose:t}){const[m,l]=b.useState(!1),{t:s,locale:g}=F(),h=b.useRef(null),{api:f}=B(),{teamDid:A}=_(),{control:a,handleSubmit:k,formState:{errors:x},watch:w,setValue:R,getValues:N}=he({defaultValues:{clientName:r.clientName||"",clientUri:r.clientUri||"",redirectUris:Array.isArray(r.redirectUris)?r.redirectUris.join(","):"",scope:r.scope?r.scope.split(" "):["profile:read"],contacts:Array.isArray(r.contacts)?r.contacts.join(","):"",tosUri:r.tosUri||"",policyUri:r.policyUri||"",logoUri:r.logoUri||""},mode:"onChange"}),c=w("scope"),u=w("logoUri"),{clientLogoUrl:O,apiPath:W}=ee(u),q=o=>{o!=="profile:read"&&R("scope",c.includes(o)?c.filter(i=>i!==o):[...c,o])},z=async o=>{const i={clientId:r.clientId,clientName:o.clientName.trim(),clientUri:o.clientUri,redirectUris:o.redirectUris.split(",").map(C=>C.trim()).filter(Boolean),contacts:o.contacts?o.contacts.split(",").map(C=>C.trim()):[],scope:o.scope.join(" "),tosUri:o.tosUri,policyUri:o.policyUri,logoUri:o.logoUri};await f.updateOAuthClient({input:{teamDid:A,input:i}})},L=async o=>{l(!0);try{await z(o),d(),t()}catch(i){M.error(i.message||s("oauth.client.updateFailed"))}finally{l(!1)}};return e.jsxs(G,{open:!0,onClose:t,maxWidth:"md",fullWidth:!0,children:[e.jsxs(Q,{children:[s("oauth.client.update")," ",e.jsx(X,{onClick:t,sx:{position:"absolute",right:8,top:8},children:e.jsx(H,{})})]}),e.jsx(Y,{children:e.jsxs(D,{spacing:3,sx:{mt:2},children:[e.jsxs(p,{sx:{mb:3},children:[e.jsx(I,{variant:"subtitle1",sx:{fontWeight:500,mb:1},children:s("oauth.client.logo")}),e.jsxs(p,{children:[e.jsx(p,{sx:{width:120,height:120,position:"relative",borderRadius:"4px",overflow:"hidden"},children:O?e.jsx(p,{children:e.jsx("img",{src:O,alt:"client-logo",style:{width:"100%",height:"100%"}})}):e.jsx(p,{onClick:()=>{var o;(o=h.current)==null||o.open()},sx:{width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",bgcolor:"grey.200"},children:e.jsx(de,{sx:{fontSize:40,color:"common.white"}})})}),e.jsx(E,{sx:{mt:2},variant:"outlined",size:"small",onClick:()=>{var o;(o=h.current)==null||o.open()},children:s(O?"common.change":"common.upload")})]}),e.jsx(p,{sx:{display:"flex",alignItems:"center"},children:e.jsx(b.Suspense,{fallback:e.jsx(Pe,{}),children:e.jsx(Ee,{ref:h,locale:g,popup:!0,onUploadFinish:o=>{R("logoUri",o.data.filename),z(N()).then(()=>{d()}).catch(i=>{M.error(i.message||s("oauth.client.updateFailed"))}).finally(()=>{var i;(i=h.current)==null||i.close()})},plugins:["ImageEditor"],installerProps:{disabled:!0},apiPathProps:{uploader:W,disableMediaKitPrefix:!0,disableAutoPrefix:!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(I,{variant:"subtitle1",sx:{fontWeight:500},children:s("oauth.client.requiredInformation")}),e.jsx(T,{label:"Client Id",fullWidth:!0,value:r.clientId,disabled:!0}),e.jsx(p,{children:e.jsx(S,{name:"clientName",control:a,rules:{required:s("oauth.client.validate.clientName"),minLength:{value:3,message:s("oauth.client.validate.clientNameMinLength")}},render:({field:o})=>{var i;return e.jsxs(e.Fragment,{children:[e.jsx(T,{...o,label:s("oauth.client.name"),required:!0,fullWidth:!0,error:!!x.clientName,helperText:(i=x.clientName)==null?void 0:i.message}),e.jsx(y,{children:s("oauth.client.helperText.clientName")})]})}})}),e.jsx(p,{children:e.jsx(S,{name:"clientUri",control:a,rules:{required:s("oauth.client.validate.clientUri"),pattern:{value:/^https?:\/\/.+/,message:s("oauth.client.validate.clientUriInvalid")}},render:({field:o})=>{var i;return e.jsxs(e.Fragment,{children:[e.jsx(T,{...o,label:s("oauth.client.input.clientUri"),required:!0,fullWidth:!0,error:!!x.clientUri,helperText:(i=x.clientUri)==null?void 0:i.message}),e.jsx(y,{children:s("oauth.client.helperText.clientUri")})]})}})}),e.jsx(p,{children:e.jsx(S,{name:"redirectUris",control:a,rules:{required:s("oauth.client.validate.redirectUris"),pattern:{value:/^https?:\/\/.+/,message:s("oauth.client.validate.redirectUrisInvalid")}},render:({field:o})=>{var i;return e.jsxs(e.Fragment,{children:[e.jsx(T,{...o,label:s("oauth.client.input.redirectUris"),required:!0,fullWidth:!0,multiline:!0,rows:2,error:!!x.redirectUris,helperText:(i=x.redirectUris)==null?void 0:i.message}),e.jsx(y,{children:s("oauth.client.helperText.redirectUris")})]})}})}),e.jsxs(p,{sx:{display:"none"},children:[e.jsx(I,{variant:"subtitle2",sx:{mb:1},children:s("oauth.client.input.permissions")}),e.jsx(p,{sx:{border:"1px solid",borderColor:"divider",borderRadius:1,p:2},children:e.jsx(oe,{children:Object.entries(K.OAUTH_SCOPES).map(([o,i])=>e.jsx(se,{control:e.jsx(ae,{checked:c.includes(o),onChange:()=>q(o),disabled:o==="profile:read",color:"primary"}),label:e.jsx(p,{children:e.jsx(I,{variant:"body2",sx:{fontWeight:500},children:i})})},o))})})]}),e.jsx(J,{}),e.jsx(I,{variant:"subtitle1",sx:{fontWeight:500},children:s("oauth.client.optionalInformation")}),e.jsx(p,{children:e.jsx(S,{name:"contacts",control:a,rules:{pattern:{value:/^$|^[^@\s]+@[^@\s]+\.[^@\s]+(\s*,\s*[^@\s]+@[^@\s]+\.[^@\s]+)*$/,message:s("oauth.client.validate.contacts")}},render:({field:o})=>{var i;return e.jsxs(e.Fragment,{children:[e.jsx(T,{...o,label:s("oauth.client.input.contacts"),fullWidth:!0,error:!!x.contacts,helperText:(i=x.contacts)==null?void 0:i.message}),e.jsx(y,{children:s("oauth.client.helperText.contacts")})]})}})}),e.jsxs(D,{direction:{xs:"column",sm:"row"},spacing:2,children:[e.jsx(S,{name:"tosUri",control:a,rules:{pattern:{value:/^$|^https?:\/\/.+/,message:s("oauth.client.validate.tosUriInvalid")}},render:({field:o})=>{var i;return e.jsxs(p,{sx:{width:"50%"},children:[e.jsx(T,{...o,label:s("oauth.client.input.tosUri"),fullWidth:!0,error:!!x.tosUri,helperText:(i=x.tosUri)==null?void 0:i.message}),e.jsx(y,{children:s("oauth.client.helperText.tosUri")})]})}}),e.jsx(S,{name:"policyUri",control:a,rules:{pattern:{value:/^$|^https?:\/\/.+/,message:s("oauth.client.validate.policyUriInvalid")}},render:({field:o})=>{var i;return e.jsxs(p,{sx:{width:"50%"},children:[e.jsx(T,{...o,label:s("oauth.client.input.policyUri"),fullWidth:!0,error:!!x.policyUri,helperText:(i=x.policyUri)==null?void 0:i.message}),e.jsx(y,{children:s("oauth.client.helperText.policyUri")})]})}})]}),x.error&&e.jsx(ce,{severity:"error",children:x.error.message})]})}),e.jsxs(ue,{children:[e.jsx(E,{onClick:t,children:s("common.cancel")}),e.jsx(E,{onClick:k(L),disabled:m,variant:"contained",color:"primary",children:m?e.jsx(Z,{size:16}):s("common.update")})]})]})}xe.propTypes={client:n.shape({clientId:n.string.isRequired,clientName:n.string.isRequired,clientUri:n.string,redirectUris:n.arrayOf(n.string),scope:n.string,contacts:n.arrayOf(n.string),tosUri:n.string,policyUri:n.string,logoUri:n.string}).isRequired,onUpdate:n.func.isRequired,onClose:n.func.isRequired};function je({client:r,onUpdate:d,onClose:t}){return e.jsx(xe,{client:r,onUpdate:m=>d(m),onClose:t})}je.propTypes={client:n.shape({clientId:n.string.isRequired,clientName:n.string.isRequired,clientUri:n.string,redirectUris:n.arrayOf(n.string),scope:n.string,contacts:n.arrayOf(n.string),tosUri:n.string,policyUri:n.string,logoUri:n.string}).isRequired,onUpdate:n.func.isRequired,onClose:n.func.isRequired};function te(r){const{t:d}=F(),{api:t}=B(),{teamDid:m}=_(),{clientId:l,clientName:s,onDelete:g=()=>{},onClose:h=()=>{}}=r,f=()=>{h()},A=async()=>{try{await t.deleteOAuthClient({input:{teamDid:m,clientId:l}}),g()}catch(k){M.error(k==null?void 0:k.message)}finally{f()}},a={keyName:s,title:d("oauth.client.delete.title"),description:d("oauth.client.delete.description",{name:`<b>${s}</b>`}),confirmPlaceholder:d("oauth.client.delete.description",{name:s}),confirm:d("common.delConfirm"),cancel:d("common.cancel"),onConfirm:A,onCancel:f};return e.jsx(Ne,{keyName:a.keyName,title:a.title,description:a.description,confirmPlaceholder:a.confirmPlaceholder,confirm:a.confirm,cancel:a.cancel,params:a.params,onConfirm:a.onConfirm,onCancel:a.onCancel})}te.propTypes={clientId:n.string.isRequired,clientName:n.string.isRequired,onDelete:n.func,onClose:n.func};te.defaultProps={onDelete:()=>{},onClose:()=>{}};function ge({title:r,items:d}){return e.jsxs(p,{mb:3,children:[e.jsx(I,{variant:"h6",sx:{mb:1.5},children:r}),e.jsx(D,{spacing:1.5,children:d.map(({label:t,value:m})=>e.jsxs(p,{display:"flex",alignItems:"center",gap:2,children:[e.jsx(I,{variant:"subtitle2",color:"textSecondary",sx:{minWidth:200},children:t}),e.jsx(I,{sx:{wordBreak:"break-all"},children:m||"-"})]},t))})]})}ge.propTypes={title:n.string.isRequired,items:n.arrayOf(n.shape({label:n.string.isRequired,value:n.any})).isRequired};function fe({client:r,onClose:d}){const{t,locale:m}=F(),{teamDid:l}=_(),{clientName:s,clientId:g,clientSecret:h,redirectUris:f,scope:A,clientUri:a,logoUri:k,contacts:x,tosUri:w,policyUri:R,jwksUri:N,jwks:c,softwareId:u,softwareVersion:O,clientIdIssuedAt:W,clientSecretExpiresAt:q,updatedAt:z,createUser:L}=r,{clientLogoUrl:o}=ee(k),i=j=>{try{const P=new URL(window.blocklet.appUrl);return P.pathname=j,P.toString()}catch{return"-"}},C=pe.fromAppDid(g,l),U=[{title:t("common.baseInfo"),items:[{label:t("oauth.client.name"),value:s},{label:t("oauth.client.logoUri"),value:e.jsx(ne,{variant:"rounded",shape:"square",src:o,did:C.address,size:64})},{label:t("oauth.client.clientUri"),value:a?e.jsx(v,{children:a}):"-"},{label:t("oauth.client.clientId"),value:e.jsx(v,{children:g})},{label:t("oauth.client.clientSecret"),value:e.jsx(v,{children:h})},{label:t("oauth.client.redirectUris"),value:e.jsx(v,{children:(f||[]).join(", ")})},{label:t("oauth.client.scope"),value:e.jsx(V,{scope:A})},{label:t("oauth.client.createUser"),value:L?We(L,!0):t("oauth.client.openRegistration")}]},{title:t("oauth.client.oauthEndpoints"),items:[{label:t("oauth.client.openidConfiguration"),value:e.jsx(v,{children:i("/.well-known/openid-configuration")})},{label:t("oauth.client.authorizationEndpoint"),value:e.jsx(v,{children:i("/.well-known/service/oauth/authorize")})},{label:t("oauth.client.tokenEndpoint"),value:e.jsx(v,{children:i("/.well-known/service/oauth/token")})},{label:t("oauth.client.userinfoEndpoint"),value:e.jsx(v,{children:i("/.well-known/service/oauth/userinfo")})},{label:t("oauth.client.jwksUri"),value:e.jsx(v,{children:i("/.well-known/service/oauth/jwks")})},{label:t("oauth.client.registrationEndpoint"),value:e.jsx(v,{children:i("/.well-known/service/oauth/register")})},{label:t("oauth.client.endSessionEndpoint"),value:e.jsx(v,{children:i("/.well-known/service/oauth/logout")})}]},{title:t("oauth.client.metaContact"),items:[{label:t("oauth.client.contacts"),value:x.length?e.jsx(v,{children:(x||[]).join(", ")}):"-"},{label:t("oauth.client.tosUri"),value:w?e.jsx(v,{children:w}):"-"},{label:t("oauth.client.policyUri"),value:R?e.jsx(v,{children:R}):"-"},{label:t("oauth.client.jwksUri"),value:N},{label:t("oauth.client.jwks"),value:c},{label:t("oauth.client.softwareId"),value:u},{label:t("oauth.client.softwareVersion"),value:O}]},{title:t("common.timeInfo"),items:[{label:t("oauth.client.clientIdIssuedAt"),value:W?e.jsx($,{value:W*1e3,type:"all",locale:m}):"-"},{label:t("oauth.client.clientSecretExpiresAt"),value:q?e.jsx($,{value:q*1e3,type:"all",locale:m}):"-"},{label:t("common.updatedAt"),value:z?e.jsx($,{value:z,type:"all",locale:m}):"-"}]}].filter(Boolean);return e.jsxs(G,{open:!0,onClose:d,maxWidth:"lg",fullWidth:!0,children:[e.jsxs(Q,{children:[t("oauth.client.oauthAppDetails"),e.jsx(X,{onClick:d,sx:{position:"absolute",right:8,top:8},children:e.jsx(H,{})})]}),e.jsx(Y,{children:e.jsx(p,{mt:1,children:U.map((j,P)=>e.jsxs(p,{children:[e.jsx(ge,{title:j.title,items:j.items}),P!==U.length-1&&e.jsx(J,{sx:{my:2}})]},j.title))})})]})}fe.propTypes={client:n.object.isRequired,onClose:n.func.isRequired};function Fe(r){return e.jsx($,{value:r*1e3})}function ie({selected:r,onClose:d}){return r?e.jsx(fe,{client:r,onClose:d}):null}ie.propTypes={selected:n.object,onClose:n.func.isRequired};ie.defaultProps={selected:null};function Ue({open:r,onCreated:d,onClose:t}){return r?e.jsx(me,{onCreated:d,onClose:t}):null}Ue.propTypes={open:n.bool.isRequired,onCreated:n.func.isRequired,onClose:n.func.isRequired};function kt(){var o;const[r,d]=b.useState({searchText:"",pageSize:10,page:1}),[t,m]=b.useState(null),[l,s]=b.useState(!1),g=b.useRef(null),{t:h,locale:f}=F(),{api:A}=B(),{teamDid:a}=_(),[k,x]=b.useState(null),[w,R]=b.useState(null),N=ze(),{getClientLogoUrl:c}=ee(),u=Re(async()=>await A.getOAuthClients({input:{teamDid:a,paging:{page:r.page,pageSize:r.pageSize}}}),[r.page,r.pageSize]),{loading:O}=u,W=b.useMemo(()=>{var i;return((i=u.value)==null?void 0:i.list)||[]},[(o=u.value)==null?void 0:o.list]),q=b.useMemo(()=>r.searchText?W.filter(i=>i.clientName.toLowerCase().includes(r.searchText.toLowerCase())||i.clientId.toLowerCase().includes(r.searchText.toLowerCase())||i.scope.toLowerCase().includes(r.searchText.toLowerCase())):W,[r.searchText,W]),z=b.useMemo(()=>[{label:h("oauth.client.name"),name:"clientName",options:{customBodyRender:(i,{rowIndex:C})=>{const U=q[C],j=c(U.logoUri),P=pe.fromAppDid(U.clientId,a);return e.jsx(p,{sx:{display:"flex",alignItems:"center",gap:2},children:e.jsxs(p,{display:"flex",alignItems:"center",gap:2,sx:{cursor:"pointer"},onClick:be=>{be.stopPropagation(),window.open(U.clientUri,"_blank")},children:[e.jsx(ne,{variant:"rounded",shape:"square",did:P.address,src:j,size:48}),e.jsxs(D,{gap:.5,children:[e.jsx(p,{sx:{color:"text.primary"},children:U.clientName}),e.jsx(p,{sx:{color:"text.secondary"},children:U.clientUri})]})]})})}}},{label:h("oauth.client.clientId"),name:"clientId"},{label:h("oauth.client.scope"),name:"scope",options:{customBodyRender:i=>e.jsx(V,{scope:i})}},{label:h("common.createdAt"),name:"clientIdIssuedAt",options:{customBodyRender:Fe}},{label:h("common.actions"),name:"actions",width:100,align:"center",verticalKeyAlign:"center",options:{customBodyRender:(i,{rowIndex:C})=>{const U=q[C];return e.jsx(De,{actions:[{icon:e.jsx(Ie,{}),text:h("common.edit"),onClick:j=>{j.stopPropagation(),x(U)}},{icon:e.jsx(Ce,{}),text:h("common.delete"),onClick:j=>{j.stopPropagation(),R(U)}}]})}}}],[q,h,c,a,x,R]),L=({page:i,rowsPerPage:C,searchText:U})=>{r.pageSize!==C?d(j=>({...j,searchText:"",pageSize:C,page:1})):r.page!==i+1?d(j=>({...j,searchText:"",page:i+1})):r.searchText!==U&&d(j=>({...j,searchText:U,page:1}))};return e.jsxs(p,{ref:g,sx:{".custom-toobar-btns":{gap:"8px"},".custom-toobar-title .custom-toobar-title-inner>span":{display:"flex",alignItems:"center","white-space":"inherit",height:"100%"}},children:[N?e.jsx(le,{title:h("oauth.client.listTitle"),tooltipTitle:h("oauth.client.tooltipTitle"),link:`https://www.arcblock.io/docs/blocklet-developer/${f}/oauth-service`}):null,e.jsx(we,{data:q,columns:z,options:{sort:!1,download:!1,filter:!1,print:!1,viewColumns:!1,page:r.page-1,rowsPerPage:r.pageSize,count:q.length,searchDebounceTime:400,onRowClick(i,{dataIndex:C},U){var j;if((j=g.current)!=null&&j.contains(U.target)){const P=q[C];m(P)}}},onChange:L,title:N?null:e.jsx(le,{title:h("oauth.client.listTitle"),tooltipTitle:h("oauth.client.tooltipTitle"),link:`https://www.arcblock.io/docs/blocklet-developer/${f}/oauth-service`}),customButtons:[e.jsxs(E,{variant:"contained",size:"small",onClick:()=>s(!0),children:[O?e.jsx(Z,{size:16}):e.jsx(de,{style:{fontSize:16}}),h("common.create")]},"add")],loading:!1,emptyNode:e.jsx(Te,{children:h("oauth.client.empty")})}),e.jsx(ie,{selected:t,onClose:()=>m(null)}),e.jsx(Ue,{open:l,onCreated:()=>{s(!1),u.retry()},onClose:()=>s(!1)}),k&&e.jsx(je,{client:k,onUpdate:u.retry,onClose:()=>x(null)}),w&&e.jsx(te,{...w,onDelete:u.retry,onClose:()=>R(null)})]})}export{kt as default};
@@ -1 +0,0 @@
1
- import{j as o}from"./vendor-mui-core-BV2FUxWJ.js";import"./vendor-react-DEoibe3W.js";import{S as t}from"./studio-DnKLD9XD.js";import"./vendor-ux-did-connect-DIlRfE_S.js";import"./vendor-utils-rHXShPKm.js";import"./vendor-hooks-BgUTpb6X.js";import"./lottie-web-jYmAQWuC.js";import"./vendor-arcblock-DuPySS9V.js";import"./TuneOutlined-BWqIZK2m.js";function d(){return o.jsx(t,{children:"Coming soon..."})}export{d as default};
@@ -1 +0,0 @@
1
- const e={auth:{noPermission:{title:"Sem permissão",description:"Você não é o administrador do blocklet"}},login:{reLogin:"Reconectar",description:"Você deve conectar sua Carteira DID para acessar {name}",already:"Você está conectado como",connectWallet:"Conectar a Carteira DID",closeWindow:"Fechar janela",accessLimit:{title:"Acesso à página restrito",description:"Esta página requer os seguintes passaportes para acessar, por favor conecte-se à carteira para alterar ou solicitar o passe correspondente.",alreadyHavePassport:"Já tenho o passaporte",connectWithPassport:"Conecte-se com este passaporte",buyPassport:"ComprePassaporte"},switchDid:{title:"Mudar Conta",scan:"Use os seguintes métodos para adicionar conta",confirm:"Confirmar a troca na sua Carteira DID",success:"Troca efetuada com sucesso"},switchSpecifiedDid:{title:"Alternar Conta",scan:"Você precisa trocar o DID para {did} para completar as seguintes ações",confirm:"Confirmar alteração em sua Carteira DID",success:"Troca realizada com sucesso"},connect:{title:"Conectar",scan:"Utilize os seguintes métodos para completar a conexão",confirm:"Confirme em sua carteira de DIDs",success:"Você está conectado com sucesso"},needManualClose:"Login efetuado com sucesso. Se esta janela não fechar automaticamente, feche-a.",connectWithPassport:"Conecte-se com este passaporte",invalidRedirectUrl:"URL de redireccionamento inválida",issueKyc:{pageDescription:"Complete a verificação para proteger sua conta e obter um NFT reutilizável, que pode ser confiável por outros sites (verificar uma vez e apresentar em qualquer lugar).",verifyButton:"Verificar",sendCodeButton:"Obter Código de Verificação",codeSentMessage:"Acabamos de enviar um código de verificação para {email}, o código será válido por 30 minutos, por favor, verifique sua caixa de entrada ou pasta de spam.",codeSentSuccess:"Código de verificação enviado com sucesso",claim:"Certificado de E-mail Verificado Reivindicado",scan:"Conecte sua Carteira DID para receber o certificado",confirm:"Confirmar na sua Carteira DID",success:"Parabéns! Você verificou com sucesso seu e-mail e reivindicou o certificado em sua Carteira DID.",backToHome:"Voltar para Casa",emailPlaceholder:"Seu endereço de e-mail",verifyTitle:"Verifique Seu Endereço de E-mail",issueTitle:"Reivindique a verificação por email NFT",verifyAction:"Verificando",issueAction:"Reivindicando",issueTarget:"Você está {action} para o seguinte DID, clique no avatar para adicionar outro DID"},updateKyc:{button:"Certificado de Presente",title:"Certificado de E-mail Verificado Presente",scan:"Conecte sua Carteira DID para apresentar o certificado",confirm:"Confirmar em sua carteira DID",success:"Parabéns! Seu NFT foi verificado e aceito."},invalidOpenerUrl:"URL de abertura inválido"},studio:{home:"Estúdio",preferences:"Criador de preferências",localization:"Localização",branding:"Imagens de Marca",ratio:"Rácio",size:"Tamanho",count:"Contagem",tip:"Dica",change:"Clique no logotipo para mudar.",order:"Pedido",orderTip:"arraste para alterar",orderTipLong:"Arraste para alterar, se você excluir alguma captura de tela no disco, por favor, atualize a página.",type:"Tipo",videoTipLong:"Clique na capa para editar o link do vídeo.",video:"Vídeo",videoTooltip:"Arraste para mudar a ordem",videoType:"Sites suportados",videoDialogTitle:"Adicionar Vídeo",videoDialogEditTitle:"Editar/Eliminar Vídeo",videoInputLabel:"Insira o link do vídeo do YouTube ou Vimeo",videoDialogNoSrc:"Insira um link de vídeo válido",duplicateVideo:"Este vídeo foi adicionado",confirm:"Confirmar",cancel:"Cancelar",preview:"Pré-visualizar",delete:"Excluir",title:"Fornecer imagens para {title}",description:"Para mais informações, consulte o",documentation:"Documentação"},blocklet:{startApplication:"Iniciar aplicação",startDescription:"Pronto para começar, {name}",start:"Iniciar",starting:"Iniciando...",open:"Abrir",suspended:"Aplicativo suspenso",manageSubscription:"Gerenciar Assinatura",suspendedCausedByExpired:"Este aplicativo foi encerrado devido ao cancelamento da assinatura, cancelado em {canceledAt}, a assinatura pode ser retomada antes de {deadline}.",suspendedCausedByPastDue:"Este aplicativo foi suspenso devido ao pagamento atrasado da assinatura, complete a renovação antes de {deadline} para retomá-lo, após o prazo não será possível renovar nem retomar.",willBeSuspendedSoon:"Este aplicativo interromperá o serviço em {deadline} porque a assinatura será cancelada em breve, recupere a assinatura em tempo hábil se desejar continuar usando.",suspendedCausedByTerminated:"O aplicativo foi encerrado devido ao cancelamento da assinatura, que foi cancelada em {canceledAt}, e os dados serão mantidos até {deadline}; antes que os dados sejam excluídos, você pode fazer backup dos dados no DID Spaces.",terminated:"Aplicativo encerrado",gotoVisitError:"Impossível acessar a URL do Blocklet, tente novamente mais tarde",payNow:"Pagar Agora",startLoadingText:"O serviço está iniciando e pode levar alguns minutos, por favor aguarde...",startingProgress:{starting:"Iniciando {name}...",success:"{name} iniciado com sucesso",failed:"{name} falhou ao iniciar"}},setup:{steps:{connect:"Conectar",didSpace:"DID Spaces",config:"Configuração",domain:"Domínio",access:"Controle de Acesso",fuel:"Combustível",complete:"Completo",introduction:"Introdução",selectNodeDesc:"Selecione o servidor Blocklet",launchAppDesc:"Instale o Blocklet no Servidor",setupAppDesc:"Configurar Bloquete",launched:"Completo"},connect:{title:"Conectar ao Aplicativo",scan:"Use os seguintes métodos para fornecer o perfil do usuário e os privilégios de proprietário do Blocklet, então você poderá configurar e iniciar o aplicativo.",confirm:"Confirme em sua Carteira DID",success:"Você foi conectado com sucesso"},domain:{addTitle:"Vincular um domínio existente (Opcional)",title:"Escolha o Domínio",subTitle:"Personalize seu domínio para o aplicativo",label:"Por favor, forneça um nome de domínio válido",tipStart:"Por favor, certifique-se",tipEnd:"tem ponto para o Servidor atual",addingCert:"Gerando certificado...",recordType:"Tipo de Registro",recordValue:"Valor do registro",genCertSuccess:"O certificado {domain} foi emitido com sucesso",genCertFailed:"Falha ao emitir certificado para {domain}: {message}",genCertFailedForNFTDomain:"Domínio NFT adicionado com sucesso, mas falha ao gerar o certificado HTTPS, por favor, tente novamente mais tarde",buyDIDDomainTitle:"Comprar um domínio DID (Opcional)",buyDIDDomainTips:"Após comprar um DID Domain, o domínio será automaticamente vinculado ao aplicativo.",buyOrConnect:"Você pode comprar ou configurar um domínio existente",skipDescription:"Você pode usar temporariamente os domínios padrão. Esses domínios não são adequados para uso em produção e não devem ser compartilhados com clientes."},didSpace:{title:"Configurar DID Spaces",subTitle:"Complete o processo de conexão a seguir para armazenar dados do aplicativo em DID Spaces",tips:"Dicas",description:"Configure o endereço da instância Espaços DID e armazene os dados do aplicativo nos Espaços DID após uma conexão bem-sucedida",label:"Por favor, selecione o serviço de DID Spaces",connected:"Você conectou-se com sucesso aos DID Spaces",connect:"Conectar Agora",reconnect:"Reconectar",addressCannotEmpty:"O endereço não pode estar vazio",addressNotValid:"{url} não é um endereço válido",authorize:{title:"Conecte {appName} ao DID Spaces",scan:"Use os seguintes métodos para permitir que o app {appName} se conecte ao DID Spaces",success:"Conexão estabelecida com sucesso"}},config:{title:"Configuração",subTitle:"Outros itens de configuração (você também precisará definir os seguintes itens)"},complete:{title:"Seu aplicativo está pronto",failedTitle:"Falha ao iniciar o aplicativo",backToServer:"Voltar ao servidor Blocklet",notRunning:"Aplicativo falhou ao iniciar na primeira tentativa, por favor, tente novamente",readyToStart:"Seu app estará pronto em breve"},fuel:{title:"Combustível necessário para iniciar",tipStart:"slot",tipEnd:"é necessário para que este aplicativo funcione corretamente, os fundos são salvos na carteira do aplicativo e podem ser usados para gastos de transação. Você pode sacar seu saldo a qualquer momento quando não estiver mais com o aplicativo em execução.",addressTitle:"Conta de Aplicativo",addressTip:"Alimente o aplicativo com a Carteira de DID",need:"Preciso",current:"Atual",fuelApp:"Abasteça o aplicativo"},title:"Configuração",next:"Próximo",previous:"Anterior",continue:"Continue",skip:"Pular",startNow:"Começar agora",confirm:"Confirmar",cancel:"Cancelar"},user:{walletNotification:"Notificação de carteira DID",emailNotification:"Notificação por email",smsNotification:"Notificação por SMS",addWebhook:"Adicionar Novo Webhook"},pageTitle:{login:"Login",dashboard:"Painel do Blocklet",userCenter:"Centro do Usuário",invite:"Convidar",issuePassport:"Emitir passaporte",lostPassport:"Passaporte perdido"},errorPage:{404:{title:"Ops! Página não encontrada",description:"Parece que a página que você procura não existe.",backHome:'Se você é um visitante, pode <a href="{url}">voltar para a página inicial</a>',goToDashboard:"Se você é o proprietário do site, você pode <a href={url}>fazer login no painel</a>."}},common:{branding:"Branding",theming:"Temas",navigation:"Navegação",sitemap:"Mapa do site",advanced:"Avançado",performance:"Desempenho",docs:"Docs",comingSoon:"Em breve",accessKeys:"Chaves de Acesso"},connectCli:{title:"Conectar para gerar chave de acesso",scan:"Scaneie o QR Code para conectar e gerar a chave de acesso",success:"Conectado com sucesso para gerar chave de acesso",successDesc:"Chave de acesso gerada com sucesso, esta página pode ser fechada com segurança. Agora você pode carregar Blocklets locais usando a chave de acesso gerada.",invalidSession:"Sessão inválida",invalidSessionDesc:"Sessão inexistente ou expirada. Use o comando 'blocklet deploy --endpoint {endpoint}' para regenerar a chave de acesso.",connectionError:"Falha ao gerar chave de acesso",home:"Voltar para a página inicial",tips:{title:"Gerar chave de acesso",item1:"Suporta implantação local de Blocklets no aplicativo atual",item2:"Será exibido na lista de Chaves de Acesso do aplicativo",item3:"Pode revogar a Chave de Acesso na lista a qualquer momento"}},notFoundOauthClient:"Aplicativo OAuth não encontrado, verifique sua configuração OAuth e tente novamente."};export{e as default};
@@ -1 +0,0 @@
1
- const e={auth:{noPermission:{title:"Нет разрешения",description:"Вы не являетесь администратором блоклета"}},login:{reLogin:"Переподключение",description:"Вы должны подключить свой кошелек DID, чтобы получить доступ к {name}",already:"Вы подключены как",connectWallet:"Подключите кошелек DID",closeWindow:"Закрыть окно",accessLimit:{title:"Доступ к странице ограничен",description:"Для доступа к этой странице требуются следующие паспорта, пожалуйста, подключитесь к кошельку, чтобы изменить или подать заявку на соответствующий проходной документ.",alreadyHavePassport:"У меня уже есть паспорт",connectWithPassport:"Подключиться с помощью этого паспорта",buyPassport:"Купить паспорт"},switchDid:{title:"Сменить аккаунт",scan:"Используйте следующие способы для смены учетной записи",confirm:"Подтвердите переключение в вашем кошельке DID",success:"Успешно переключено"},switchSpecifiedDid:{title:"Сменить аккаунт",scan:"Вам нужно переключиться на DID {did}, чтобы выполнить следующие действия.",confirm:"Подтвердите переключение в вашем кошельке DID",success:"Успешно переключено"},connect:{title:"Подключиться",scan:"Пожалуйста, используйте следующие методы для завершения подключения",confirm:"Подтвердите в своем кошельке DID",success:"Вы успешно подключены"},needManualClose:"Вход выполнен успешно. Если это окно не закрывается автоматически, пожалуйста, закройте его.",connectWithPassport:"Подключитесь к этому паспорту",invalidRedirectUrl:"Неверный URL-адрес перенаправления",issueKyc:{pageDescription:"Завершите проверку, чтобы защитить свою учетную запись и получить многоразовый NFT, который стоит доверять другим сайтам (проверьте один раз и представьте везде).",verifyButton:"Проверить",sendCodeButton:"Получить код подтверждения",codeSentMessage:"Мы только что отправили код подтверждения на {email}, код будет действителен в течение 30 минут, пожалуйста, проверьте вашу папку входящих или спам.",codeSentSuccess:"Код подтверждения успешно отправлен",claim:"Сертификат подтверждения электронной почты",scan:"Подключите свой кошелек DID, чтобы получить сертификат",confirm:"Подтвердите в своем кошельке DID",success:"Поздравляем! Вы успешно подтвердили свой адрес электронной почты и запросили сертификат в своем кошельке DID.",backToHome:"Вернуться на главную",emailPlaceholder:"Ваш адрес электронной почты",verifyTitle:"Подтвердите свой адрес электронной почты",issueTitle:"Претензия Проверка по электронной почте NFT",verifyAction:"Проверка",issueAction:"претензия",issueTarget:"Вы {action} для следующего DID, нажмите на аватар, чтобы добавить еще один DID"},updateKyc:{button:"Представить сертификат",title:"Представьте подтвержденный электронный сертификат",scan:"Подключите свой кошелек DID, чтобы предъявить сертификат",confirm:"Подтвердите на своем кошельке DID",success:"Поздравляю! Ваш NFT проверен и принят."},invalidOpenerUrl:"Неверный URL-адрес открытия"},studio:{home:"Студия",preferences:"Создатель предпочтений",localization:"Локализация",branding:"Брендовые изображения",ratio:"Соотношение",size:"Размер",count:"Считать",tip:"Совет",change:"Нажмите на логотип, чтобы изменить.",order:"Заказ",orderTip:"Перетащите, чтобы изменить",orderTipLong:"Перетащите для изменения. Если вы удалите какие-либо скриншоты на диске, пожалуйста, обновите страницу.",type:"Тип",videoTipLong:"Нажмите на обложку, чтобы изменить ссылку на видео.",video:"Видео",videoTooltip:"Перетащите, чтобы изменить порядок.",videoType:"Поддерживаемые веб-сайты",videoDialogTitle:"Добавить видео",videoDialogEditTitle:"Редактировать/Удалить видео",videoInputLabel:"Введите ссылку на видео YouTube или Vimeo",videoDialogNoSrc:"Пожалуйста, введите действительную ссылку на видео",duplicateVideo:"Это видео добавлено",confirm:"Подтвердить",cancel:"Отмена",preview:"Предварительный просмотр",delete:"Удалить",title:"Предоставить изображения для {title}",description:"Для получения дополнительной информации, пожалуйста, обратитесь к",documentation:"Документация"},blocklet:{startApplication:"Запустить приложение",startDescription:"Готов начать {name}",start:"Начать",starting:"Начинаю...",open:"Открыть",suspended:"Приложение приостановлено",manageSubscription:"Управление подпиской",suspendedCausedByExpired:"Это приложение прекращено из-за отмены подписки, отменено {canceledAt}, подписку можно возобновить до {deadline}.",suspendedCausedByPastDue:"Это приложение приостановлено из-за просроченной оплаты подписки, выполните продление до {deadline} для возобновления, после истечения срока оплата и возобновление станут невозможны.",willBeSuspendedSoon:"Это приложение прекратит работу {deadline} из-за предстоящей отмены подписки, восстановите подписку своевременно, если хотите продолжить использование.",suspendedCausedByTerminated:"Приложение было завершено из-за отмены подписки, которая была отменена в {canceledAt}, и данные будут храниться до {deadline}; перед тем, как данные будут удалены, вы можете сделать резервную копию данных в DID Spaces.",terminated:"Приложение завершено",gotoVisitError:"Не удается получить доступ к URL blocklet, пожалуйста, попробуйте снова позже.",payNow:"Платить сейчас",startLoadingText:"Запуск сервиса может занять несколько минут, пожалуйста, подождите...",startingProgress:{starting:"Запуск {name}...",success:"{name} успешно запущен",failed:"{name} не удалось запустить"}},setup:{steps:{connect:"Подключиться",didSpace:"Пространство DID",config:"Конфигурация",domain:"Домен",access:"Контроль доступа",fuel:"Топливо",complete:"Полный",introduction:"Введение",selectNodeDesc:"Выберите сервер Blocklet",launchAppDesc:"Установите блоклет на сервер",setupAppDesc:"Настройка блоклета",launched:"Завершить"},connect:{title:"Подключиться к приложению",scan:"Используйте следующие методы для предоставления профиля пользователя и прав владельца Blocklet, после чего вы сможете настроить и запустить приложение.",confirm:"Подтвердите в своем кошельке DID",success:"Вы успешно подключены"},domain:{addTitle:"Привязать существующий домен (необязательно)",title:"Выберите домен",subTitle:"Настройте свой домен для приложения",label:"Пожалуйста, укажите действительное имя домена",tipStart:"Пожалуйста, убедитесь",tipEnd:"Имеет указатель на текущий сервер",addingCert:"Генерация сертификата...",recordType:"Тип записи",recordValue:"Значение записи",genCertSuccess:"{domain} сертификат успешно выдан",genCertFailed:"Не удалось выдать сертификат для {domain}: {message}",genCertFailedForNFTDomain:"Домен NFT успешно добавлен, но не удалось сгенерировать HTTPS-сертификат. Пожалуйста, попробуйте позже.",buyDIDDomainTitle:"Купить DID домен (Необязательно)",buyDIDDomainTips:"После покупки DID-домена, домен будет автоматически привязан к приложению.",buyOrConnect:"Вы можете приобрести или настроить существующий домен",skipDescription:"Вы можете временно использовать домены по умолчанию. Эти домены не подходят для использования в продакшене и не должны предоставляться клиентам."},didSpace:{title:"Настройте пространства DID",subTitle:"Пожалуйста, выполните следующий процесс подключения, чтобы сохранить данные приложения в пространствах DID.",tips:"Советы",description:"Настройте адрес экземпляра пространства DID и сохраните данные приложения в пространстве DID после успешного подключения",label:"Пожалуйста, выберите сервис DID Spaces",connected:"Вы успешно подключились к пространствам DID",connect:"Подключиться сейчас",reconnect:"Переподключить",addressCannotEmpty:"Адрес не может быть пустым",addressNotValid:"{url} не является корректным адресом.",authorize:{title:"Подключите {appName} к пространству Децентрализованных идентификаторов (DID)",scan:"Используйте следующие методы, чтобы разрешить приложению {appName} подключиться к DID Spaces",success:"Успешно подключено"}},config:{title:"Конфигурация",subTitle:"Другие элементы конфигурации (вам также потребуется настроить следующие элементы)"},complete:{title:"Ваше приложение готово",failedTitle:"Не удалось запустить приложение",backToServer:"Вернуться на сервер Blocklet",notRunning:"Приложению не удалось запуститься с первой попытки, попробуйте снова",readyToStart:"Ваше приложение скоро будет готово"},fuel:{title:"Требуется топливо для запуска",tipStart:"слот",tipEnd:"Для правильной работы этого приложения требуется баланс, средства хранятся в кошельке приложения и могут использоваться в качестве комиссии за транзакции. Вы можете вывести свой баланс в любое время, когда приложение больше не запущено.",addressTitle:"Учетная запись приложения",addressTip:"Заполните приложение кошельком DID",need:"Нужда",current:"Текущий",fuelApp:"Заполнить приложение топливом"},title:"Настройка",next:"Следующий",previous:"Предыдущий",continue:"Продолжить",skip:"Пропустить",startNow:"Начать сейчас",confirm:"Подтвердить",cancel:"Отменить"},user:{walletNotification:"Уведомление кошелька DID",emailNotification:"Уведомление по электронной почте",smsNotification:"SMS уведомление",addWebhook:"Добавить новый вебхук"},pageTitle:{login:"Вход",dashboard:"Панель инструментов Blocklet",userCenter:"Пользовательский центр",invite:"Пригласить",issuePassport:"Выдать паспорт",lostPassport:"Потерянный паспорт"},errorPage:{404:{title:"Упс! Страница не найдена",description:"Кажется, страница, которую вы ищете, не существует.",backHome:'Если вы посетитель, вы можете <a href="{url}">вернуться на главную страницу</a>',goToDashboard:"Если вы владелец сайта, вы можете <a href={url}>войти в панель управления</a>."}},common:{branding:"Брендинг",theming:"Тема",navigation:"Навигация",sitemap:"Карта сайта",advanced:"Расширенный",performance:"Производительность",docs:"Документы",comingSoon:"Скоро",accessKeys:"Ключи доступа"},connectCli:{title:"Подключиться для генерации ключа доступа",scan:"Отсканируйте следующий QR-код, чтобы сгенерировать ключ доступа",success:"Успешно подключено для генерации ключа доступа",successDesc:"Ключ доступа успешно сгенерирован, эту страницу можно безопасно закрыть. Теперь вы можете загрузить локальные Blocklets, используя сгенерированный ключ доступа.",invalidSession:"Неверный сеанс",invalidSessionDesc:"Сессия не существует или истекла. Используйте команду 'blocklet deploy --endpoint {endpoint}', чтобы сгенерировать ключ доступа заново.",connectionError:"Не удалось сгенерировать ключ доступа",home:"Назад на главную",tips:{title:"Сгенерировать ключ доступа",item1:"Поддерживает локальное развертывание Blocklets в текущем приложении",item2:"Будет отображаться в списке ключей доступа приложения",item3:"Вы можете отозвать ключ доступа в списке в любое время"}},notFoundOauthClient:"Приложение OAuth не найдено, пожалуйста, проверьте конфигурацию OAuth и попробуйте ещё раз."};export{e as default};
@@ -1 +0,0 @@
1
- import{aZ as o}from"./vendor-ux-did-connect-DIlRfE_S.js";const e=o();export{e as b};
@@ -1 +0,0 @@
1
- const e={auth:{noPermission:{title:"ไม่มีสิทธิ์",description:"คุณไม่ใช่ผู้ดูแลบล็อกเล็ต"}},login:{reLogin:"เชื่อมต่อใหม่",description:"คุณต้องเชื่อมต่อกระเป๋าเงินดิจิทัลของคุณเพื่อเข้าถึง {name}",already:"คุณได้เชื่อมต่อกันเป็น",connectWallet:"เชื่อมต่อกระเป๋า DID",closeWindow:"ปิดหน้าต่าง",accessLimit:{title:"การเข้าถึงหน้าถูกจำกัด",description:"หน้านี้ต้องการพาสปอร์ตต่อไปนี้เพื่อเข้าถึง โปรดเชื่อมต่อกับกระเป๋าเงินเพื่อเปลี่ยนหรือสมัครผ่านที่เกี่ยวข้อง",alreadyHavePassport:"มีหนังสือเดินทางแล้ว",connectWithPassport:"เชื่อมต่อกับพาสปอร์ตนี้",buyPassport:"ซื้อหนังสือเดินทาง"},switchDid:{title:"เปลี่ยนบัญชี",scan:"ใช้เมธอดต่อไปนี้เพื่อเพิ่มบัญชี",confirm:"ยืนยันการเปลี่ยนสวิตช์ในกระเป๋าเงินดิจิตอลของคุณ",success:"สลับเป็นสำเร็จแล้ว"},switchSpecifiedDid:{title:"เปลี่ยนบัญชี",scan:"คุณจะต้องเปลี่ยน DID เป็น {did} เพื่อดำเนินการต่อไป",confirm:"ยืนยันการสลับในกระเป๋าเงินดิจิตอลของคุณ",success:"สลับเรียบร้อยแล้ว"},connect:{title:"เชื่อมต่อ",scan:"ใช้เมธอดต่อไปนี้เพื่อเชื่อมต่อให้เสร็จสมบูรณ์",confirm:"ยืนยันในกระเป๋าสตางค์ DID ของคุณ",success:"คุณได้เชื่อมต่อสำเร็จแล้ว"},needManualClose:"เข้าสู่ระบบเรียบร้อยแล้ว กรณีหน้าต่างนี้ไม่ปิดอัตโนมัติ ให้ปิดหน้าต่างนี้ด้วยตัวเอง",connectWithPassport:"เชื่อมต่อกับพาสปอร์ตนี้",invalidRedirectUrl:"URL รีไดเร็คไม่ถูกต้อง",issueKyc:{pageDescription:"ทำการยืนยันเพื่อรักษาบัญชีของคุณและรับ NFT ที่สามารถใช้ซ้ำได้ ซึ่งสามารถเชื่อถือได้โดยเว็บไซต์อื่น (ยืนยันครั้งเดียวและนำเสนอทุกที่)",verifyButton:"ตรวจสอบ",sendCodeButton:"รับรหัสยืนยัน",codeSentMessage:"เราเพิ่งส่งรหัสยืนยันไปที่ {email}, รหัสจะมีอายุใช้งาน 30 นาที, กรุณาตรวจสอบกล่องขาเข้าหรือโฟลเดอร์สแปมของคุณ.",codeSentSuccess:"รหัสยืนยันถูกส่งเรียบร้อยแล้ว",claim:"การรับรองใบรับรองอีเมล",scan:"เชื่อมต่อกระเป๋าใน DID ของคุณเพื่อรับใบรับรอง",confirm:"ยืนยันในกระเป๋าเงิน DID ของคุณ",success:"ขอแสดงความยินดี! คุณได้ทำการยืนยันอีเมล์ของคุณและเรียกรับใบรับรองในกระเป๋าเงิน DID ของคุณ.",backToHome:"กลับไปที่บ้าน",emailPlaceholder:"ที่อยู่อีเมลของคุณ",verifyTitle:"ยืนยันที่อยู่อีเมลของคุณ",issueTitle:"เรียกร้องการยืนยันอีเมล NFT",verifyAction:"การตรวจสอบ",issueAction:"เรียกร้อง",issueTarget:"คุณกำลัง {action} สำหรับ DID ต่อไปนี้ คลิกที่อวาตาร์เพื่อเพิ่ม DIDอื่น"},updateKyc:{button:"ใบประกาศนียบาย",title:"ใบรับรองอีเมลที่ตรวจสอบอยู่ขณะนี้",scan:"เชื่อมต่อกระเป๋าเงิน DID เพื่อนำเสนอใบรับรอง",confirm:"ยืนยันในกระเป๋าเงิน DID ของคุณ",success:"ขอแสดงความยินดี! NFT ของคุณได้รับการยืนยันและได้รับการยอมรับ"},invalidOpenerUrl:"URL เปิดใช้งานไม่ถูกต้อง"},studio:{home:"สตูดิโอ",preferences:"ตัวสร้างการตั้งค่าก่อน",localization:"การจำกัดตำแหน่ง",branding:"ภาพแบรนด์",ratio:"อัตราส่วน",size:"ขนาด",count:"นับ",tip:"เคล็ดลับ",change:"คลิกที่โลโก้เพื่อเปลี่ยน.",order:"สั่งซื้อ",orderTip:"ลากเพื่อเปลี่ยน",orderTipLong:"ลากเพื่อเปลี่ยน, หากคุณลบภาพหน้าจอบนดิสก์, กรุณารีเฟรชหน้า",type:"ประเภท",videoTipLong:"คลิกที่ปกเพื่อแก้ไขลิงก์วิดีโอ",video:"วิดีโอ",videoTooltip:"ลากเพื่อเปลี่ยนลำดับ",videoType:"เว็บไซต์ที่รองรับ",videoDialogTitle:"เพิ่มวิดีโอ",videoDialogEditTitle:"แก้ไข/ลบวิดีโอ",videoInputLabel:"ป้อนลิงก์วิดีโอจาก YouTube หรือ Vimeo",videoDialogNoSrc:"กรุณากรอกลิงก์วิดีโอที่ถูกต้อง",duplicateVideo:"วิดีโอนี้ถูกเพิ่มแล้ว",confirm:"ยืนยัน",cancel:"ยกเลิก",preview:"ตัวอย่าง",delete:"ลบ",title:"ให้ภาพสำหรับ {title}",description:"สำหรับข้อมูลเพิ่มเติม โปรดดูที่",documentation:"เอกสาร"},blocklet:{startApplication:"เริ่มใช้แอปพลิเคชัน",startDescription:"พร้อมที่จะเริ่มต้น, {name}",start:"เริ่ม",starting:"เริ่ม...",open:"เปิด",suspended:"การพักใช้งานแอปพลิเคชัน",manageSubscription:"จัดการการสมัคร",suspendedCausedByExpired:"แอปพลิเคชันนี้ถูกยกเลิกเนื่องจากการยกเลิกการสมัครสมาชิก ยกเลิกเมื่อ {canceledAt} สามารถดำเนินการสมัครสมาชิกใหม่ได้ก่อน {deadline}",suspendedCausedByPastDue:"แอปพลิเคชันนี้ถูกระงับเนื่องจากค้างชำระค่าสมัครสมาชิก ต่ออายุก่อน {deadline} เพื่อดำเนินการต่อ หากเกินกำหนดจะไม่สามารถต่ออายุและดำเนินการต่อได้",willBeSuspendedSoon:"แอปพลิเคชันนี้จะหยุดให้บริการเมื่อ {deadline} เนื่องจากการสมัครสมาชิกกำลังจะถูกยกเลิก หากต้องการใช้งานต่อ โปรดฟื้นฟูการสมัครสมาชิกโดยเร็ว",suspendedCausedByTerminated:"แอปพลิเคชันถูกยกเลิกเนื่องจากการยกเลิกการสมัครสมาชิก ซึ่งได้ถูกยกเลิกไปเมื่อ {canceledAt} และข้อมูลจะถูกเก็บไว้จนถึง {deadline}; ก่อนที่ข้อมูลจะถูกลบ คุณสามารถสำรองข้อมูลไปยัง DID Spaces ได้",terminated:"แอปพลิเคชันหยุดทำงาน",gotoVisitError:"ไม่สามารถเข้าถึง url ของ Blocklet ได้ โปรดลองใหม่อีกครั้งในภายหลัง",payNow:"ชำระเงินตอนนี้",startLoadingText:"บริการกำลังเริ่มต้นและอาจใช้เวลาสักครู่ โปรดรอ...",startingProgress:{starting:"เริ่มต้น {name}...",success:"{name} เริ่มต้นสำเร็จแล้ว",failed:"{name} เริ่มต้นไม่สำเร็จ"}},setup:{steps:{connect:"เชื่อมต่อ",didSpace:"DID Spaces",config:"การกำหนดค่า",domain:"โดเมน",access:"การควบคุมการเข้าถึง",fuel:"เชื้อเพลิง",complete:"เสร็จสิ้น",introduction:"การแนะนำ",selectNodeDesc:"เลือกเซิร์ฟเวอร์บล็อกเล็ต",launchAppDesc:"ติดตั้ง Blocklet ไปยังเซิร์ฟเวอร์",setupAppDesc:"ตั้งค่าบล็อกเล็ต",launched:"เสร็จสิ้น"},connect:{title:"เชื่อมต่อไปยังแอปพลิเคชัน",scan:"ใช้เมธอดต่อไปนี้เพื่อให้ข้อมูลโปรไฟล์ผู้ใช้และสิทธิ์เจ้าของ Blocklet จากนั้นคุณสามารถกำหนดค่าและเปิดใช้งานแอปได้",confirm:"ยืนยันในกระเป๋า DID ของคุณ",success:"คุณได้เชื่อมต่อสำเร็จ"},domain:{addTitle:"ผูกโดเมนที่มีอยู่ (ไม่บังคับ)",title:"เลือกโดเมน",subTitle:"ปรับแต่งโดเมนของคุณสำหรับแอปพลิเคชัน",label:"โปรดให้ชื่อโดเมนที่ถูกต้อง",tipStart:"โปรดตรวจสอบให้แน่ใจ",tipEnd:"มีจุดไปยังเซิร์ฟเวอร์ปัจจุบัน",addingCert:"กำลังสร้างใบรับรอง...",recordType:"ประเภทของการบันทึก",recordValue:"ค่าบันทึก",genCertSuccess:"หนังสือรับรอง {domain} ได้รับการออกใบอนุญาตเรียบร้อยแล้ว",genCertFailed:"การออกใบรับรองสำหรับ {domain} ล้มเหลว: {message}",genCertFailedForNFTDomain:"เพิ่มโดเมน NFT สำเร็จแต่ไม่สามารถสร้างใบรับรอง HTTPS ได้ โปรดลองอีกครั้งในภายหลัง",buyDIDDomainTitle:"ซื้อโดเมน DID (ไม่บังคับ)",buyDIDDomainTips:"หลังจากซื้อ DID Domain โดเมนจะถูกผูกกับแอปพลิเคชันโดยอัตโนมัติ",buyOrConnect:"คุณสามารถซื้อหรือกำหนดค่าโดเมนที่มีอยู่แล้ว",skipDescription:"คุณสามารถใช้โดเมนเริ่มต้นได้ชั่วคราว โดเมนเหล่านี้ไม่เหมาะสมสำหรับการใช้งานจริง และไม่ควรแชร์กับลูกค้า"},didSpace:{title:"กำหนดค่าพื้นที่ DID",subTitle:"โปรดทำกระบวนการเชื่อมต่อต่อไปนี้เพื่อเก็บข้อมูลแอปพลิเคชันใน DID Spaces",tips:"เคล็ดลับ",description:"กำหนดค่าที่อยู่ของไอน์สเตนซ์ผู้ให้บริการและเก็บข้อมูลแอปพลิเคชันในไอน์สเตนซ์หลังการเชื่อมต่อที่ประสบความสำเร็จ",label:"โปรดเลือกบริการ DID Spaces",connected:"คุณได้เชื่อมต่อกับ DID Spaces สำเร็จแล้ว",connect:"เชื่อมต่อทันที",reconnect:"เชื่อมต่ออีกครั้ง",addressCannotEmpty:"ที่อยู่ต้องไม่เป็นค่าว่าง",addressNotValid:"{url}ไม่ใช่ที่อยู่ที่ถูกต้อง",authorize:{title:"เชื่อมต่อ {appName} กับ DID Spaces",scan:"ใช้เมธอดต่อไปนี้เพื่ออนุญาตให้แอป {appName} เชื่อมต่อกับ DID Spaces",success:"เชื่อมต่อสำเร็จ"}},config:{title:"การตั้งค่า",subTitle:"รายการกำหนดค่าอื่น ๆ (คุณยังต้องตั้งค่ารายการต่อไปนี้)"},complete:{title:"แอปพลิเคชันของคุณพร้อมแล้ว",failedTitle:"ไม่สามารถเริ่มแอปพลิเคชันได้",backToServer:"กลับสู่เซิร์ฟเวอร์ Blocklet",notRunning:"แอป เริ่มต้นล้มเหลวในครั้งแรก กรุณาลองใหม่",readyToStart:"แอปของคุณจะพร้อมใช้งานในไม่ช้า"},fuel:{title:"เชื้อเพลิงที่จำเป็นในการเริ่มต้น",tipStart:"สล็อต",tipEnd:"เป็นที่ต้องการสำหรับแอปพลิเคชันนี้ให้ทำงานอย่างถูกต้อง กองทุนจะถูกบันทึกไว้ในกระเป๋าเงินแอปพลิเคชันและสามารถใช้สำหรับเงินทำธุรกรรมได้คุณสามารถถอนยอดเงินคงเหลือของคุณได้ตลอดเวลาเมื่อคุณไม่ได้รันแอปอีกต่อไป",addressTitle:"บัญชีแอปพลิเคชัน",addressTip:"เติมความสามารถให้แอปพลิเคชันด้วยกระเป๋าเงินดิจิทัล",need:"ต้องการ",current:"ปัจจุบัน",fuelApp:"เติมเชื้อเพลิงให้กับแอปพลิเคชัน"},title:"การติดตั้ง",next:"ถัดไป",previous:"ก่อนหน้านี้",continue:"ดำเนินการต่อ",skip:"ข้าม",startNow:"เริ่มต้นทันที ตอนนี้",confirm:"ยืนยัน",cancel:"ยกเลิก"},user:{walletNotification:"การแจ้งเตือนกระเป๋าเงินดิจิทัล",emailNotification:"การแจ้งเตือนทางอีเมล",smsNotification:"การแจ้งเตือนทาง SMS",addWebhook:"เพิ่มเว็บฮุคใหม่"},pageTitle:{login:"เข้าสู่ระบบ",dashboard:"แดชบอร์ด Blocklet",userCenter:"ศูนย์ผู้ใช้",invite:"เชิญ",issuePassport:"ออกหนังสือเดินทาง",lostPassport:"หายเอกสารถ่ายสำเนาหนังสือเดินทาง"},errorPage:{404:{title:"อ๊ะ! ไม่พบหน้าที่คุณค้นหา",description:"ดูเหมือนว่าหน้าที่คุณค้นหาไม่มีอยู่",backHome:'หากคุณเป็นผู้เข้าชม คุณสามารถ <a href="{url}">กลับไปที่หน้าแรก</a>',goToDashboard:"หากคุณเป็นเจ้าของเว็บไซต์ คุณสามารถ <a href={url}>เข้าสู่ระบบแดชบอร์ด</a>."}},common:{branding:"Branding",theming:"ธีม",navigation:"นำทาง",sitemap:"แผนผังเว็บไซต์",advanced:"ขั้นสูง",performance:"ประสิทธิภาพ",docs:"เอกสาร",comingSoon:"เร็วๆนี้",accessKeys:"คีย์การเข้าถึง"},connectCli:{title:"เชื่อมต่อเพื่อสร้างคีย์การเข้าถึง",scan:"สแกน QR Code ต่อไปนี้เพื่อเชื่อมต่อและสร้างคีย์การเข้าถึง",success:"เชื่อมต่อสำเร็จเพื่อสร้างคีย์การเข้าถึง",successDesc:"สร้าง access key สำเร็จแล้ว หน้าต่างนี้สามารถปิดได้อย่างปลอดภัย คุณสามารถอัปโหลด Blocklets ในเครื่องโดยใช้ access-key ที่สร้างขึ้นแล้วได้",invalidSession:"เซสชันไม่ถูกต้อง",invalidSessionDesc:"เซสชันไม่พบหรือหมดอายุแล้ว โปรดใช้คำสั่ง 'blocklet deploy --endpoint {endpoint}' เพื่อสร้าง access-key ใหม่",connectionError:"ล้มเหลวในการสร้างคีย์การเข้าถึง",home:"กลับไปหน้าหลัก",tips:{title:"สร้างคีย์การเข้าถึง",item1:"รองรับการติดตั้ง Blocklets ในเครื่องลงในแอปพลิเคชันปัจจุบัน",item2:"จะแสดงในรายการ Access Key ของแอปพลิเคชัน",item3:"คุณสามารถเพิกถอนคีย์การเข้าถึงในรายการได้ตลอดเวลา"}},notFoundOauthClient:"ไม่พบแอป OAuth โปรดตรวจสอบการกำหนดค่า OAuth ของคุณแล้วลองอีกครั้ง"};export{e as default};
@@ -1 +0,0 @@
1
- const n={auth:{noPermission:{title:"Không có Quyền",description:"Bạn không phải là quản trị viên của blocklet"}},login:{reLogin:"Kết nối lại",description:"Bạn phải kết nối ví DID để truy cập {name}",already:"Bạn đã kết nối với",connectWallet:"Kết nối Ví DID",closeWindow:"Đóng cửa sổ",accessLimit:{title:"Truy cập trang bị hạn chế",description:"Trang này yêu cầu thông qua hộ chiếu sau để truy cập, vui lòng kết nối với ví để thay đổi hoặc đăng ký thông qua tương ứng.",alreadyHavePassport:"Đã có hộ chiếu",connectWithPassport:"Kết nối với hộ chiếu này",buyPassport:"MuaHộChiếu"},switchDid:{title:"Chuyển Tài Khoản",scan:"Sử dụng các phương pháp sau để thêm tài khoản",confirm:"Xác nhận chuyển đổi trong Ví DID của bạn",success:"Đã chuyển đổi thành công"},switchSpecifiedDid:{title:"Chuyển đổi tài khoản",scan:"Bạn cần chuyển đổi DID thành {did} để hoàn thành các thao tác sau",confirm:"Xác nhận chuyển đổi trong ví DID của bạn",success:"Chuyển đổi thành công"},connect:{title:"Kết nối",scan:"Sử dụng các phương pháp sau để hoàn tất kết nối",confirm:"Xác nhận trên ví DID của bạn",success:"Bạn đã kết nối thành công"},needManualClose:"Đăng nhập thành công, nếu cửa sổ này không tự động đóng, hãy đóng nó lại.",connectWithPassport:"Kết nối với hộ chiếu này",invalidRedirectUrl:"URL chuyển hướng không hợp lệ",issueKyc:{pageDescription:"Hoàn tất xác minh để bảo vệ tài khoản của bạn và nhận một NFT có thể tái sử dụng, mà có thể tin cậy bởi các trang web khác (xác minh một lần và hiển thị ở mọi nơi).",verifyButton:"Xác minh",sendCodeButton:"Nhận Mã Xác Minh",codeSentMessage:"Chúng tôi vừa gửi mã xác minh đến {email}, mã sẽ có hiệu lực trong 30 phút, vui lòng kiểm tra hộp thư đến hoặc thư rác của bạn.",codeSentSuccess:"Mã xác minh đã gửi thành công",claim:"Chứng chỉ Email Đã Xác minh Được Yêu cầu",scan:"Kết nối Ví DID của bạn để nhận chứng chỉ",confirm:"Xác nhận trên Ví DID của bạn",success:"Chúc mừng! Bạn đã xác minh email thành công và nhận chứng chỉ trong Ví DID của bạn.",backToHome:"Quay về Trang chủ",emailPlaceholder:"Địa chỉ email của bạn",verifyTitle:"Xác minh Địa chỉ Email của bạn",issueTitle:"Yêu cầu xác minh Email NFT",verifyAction:"Xác minh",issueAction:"Đòi lại",issueTarget:"Bạn đang {action} cho DID sau đây, nhấp vào hình đại diện để thêm DID khác"},updateKyc:{button:"Chứng chỉ Hiện tại",title:"Chứng chỉ Email Đã Xác Minh Hiện Tại",scan:"Kết nối Ví DID của bạn để trình bày chứng chỉ",confirm:"Xác nhận trên ví DID của bạn",success:"Chúc mừng! NFT của bạn đã được xác minh và chấp nhận."},invalidOpenerUrl:"URL mở đầu không hợp lệ"},studio:{home:"Studio",preferences:"Trình tạo Sở thích",localization:"Địa phương hóa",branding:"Hình ảnh Thương Hiệu",ratio:"Tỷ lệ",size:"Kích thước",count:"Đếm",tip:"Mẹo",change:"Nhấp vào logo để thay đổi.",order:"Đặt hàng",orderTip:"kéo để thay đổi",orderTipLong:"Kéo để thay đổi, nếu bạn xóa bất kỳ ảnh chụp màn hình nào trên đĩa, vui lòng làm mới trang.",type:"Loại",videoTipLong:"Nhấp vào bìa để chỉnh sửa liên kết video.",video:"Video",videoTooltip:"Kéo để thay đổi thứ tự",videoType:"Các trang web được hỗ trợ",videoDialogTitle:"Thêm Video",videoDialogEditTitle:"Chỉnh sửa/Xóa Video",videoInputLabel:"Nhập liên kết video YouTube hoặc Vimeo",videoDialogNoSrc:"Vui lòng nhập một liên kết video hợp lệ",duplicateVideo:"Video này đã được thêm vào",confirm:"Xác nhận",cancel:"Hủy",preview:"Xem trước",delete:"Xóa",title:"Cung cấp hình ảnh cho {title}",description:"Để biết thêm thông tin, vui lòng tham khảo",documentation:"Tài liệu"},blocklet:{startApplication:"Bắt đầu ứng dụng",startDescription:"Sẵn sàng bắt đầu, {name}",start:"Bắt đầu",starting:"Bắt đầu...",open:"Mở",suspended:"Ứng dụng đã bị tạm ngưng",manageSubscription:"Quản lý Đăng ký",suspendedCausedByExpired:"Ứng dụng này đã bị chấm dứt do hủy đăng ký, đã hủy vào {canceledAt}, có thể tiếp tục đăng ký trước {deadline}.",suspendedCausedByPastDue:"Ứng dụng này đã bị dừng do chưa thanh toán đăng ký, hoàn tất gia hạn trước {deadline} để tiếp tục, quá hạn sẽ không thể gia hạn và tiếp tục.",willBeSuspendedSoon:"Ứng dụng này sẽ ngừng dịch vụ vào {deadline} do đăng ký sắp bị hủy, vui lòng khôi phục đăng ký kịp thời nếu muốn tiếp tục sử dụng.",suspendedCausedByTerminated:"Ứng dụng đã bị chấm dứt do đăng ký đã bị hủy, đăng ký đã bị hủy trên {canceledAt}, và dữ liệu sẽ được giữ lại cho tới {deadline}; trước khi dữ liệu bị xóa, bạn có thể sao lưu dữ liệu vào DID Spaces.",terminated:"Ứng dụng đã đóng",gotoVisitError:"Không thể truy cập URL Blocklet, vui lòng thử lại sau",payNow:"Thanh toán ngay",startLoadingText:"Dịch vụ đang bắt đầu và có thể mất vài phút, vui lòng chờ...",startingProgress:{starting:"Bắt đầu {name}...",success:"{name} đã bắt đầu thành công",failed:"{name} không khởi động được"}},setup:{steps:{connect:"Kết nối",didSpace:"DID Spaces",config:"Cấu hình",domain:"Miền",access:"Kiểm soát truy cập",fuel:"Nhiên liệu",complete:"Hoàn thành",introduction:"Giới thiệu",selectNodeDesc:"Chọn máy chủ Blocklet",launchAppDesc:"Cài đặt Blocklet vào máy chủ",setupAppDesc:"Cài đặt Blocklet",launched:"Hoàn thành"},connect:{title:"Kết nối với Ứng dụng",scan:"Sử dụng các phương pháp sau để cung cấp hồ sơ người dùng và quyền sở hữu Blocklet, sau đó bạn có thể cấu hình và khởi chạy ứng dụng.",confirm:"Xác nhận trên Ví DID của bạn",success:"Bạn đã kết nối thành công"},domain:{addTitle:"Liên kết miền hiện có (Tùy chọn)",title:"Chọn Domain",subTitle:"Tùy chỉnh miền của bạn cho ứng dụng",label:"Vui lòng cung cấp tên miền hợp lệ",tipStart:"Vui lòng đảm bảo",tipEnd:"có điểm tới Máy chủ hiện tại",addingCert:"Đang tạo chứng chỉ...",recordType:"Loại hồ sơ",recordValue:"Giá trị ghi",genCertSuccess:"Chứng chỉ {domain} đã được phát hành thành công",genCertFailed:"Không thể phát hành chứng chỉ cho {domain}: {message}",genCertFailedForNFTDomain:"Thêm miền NFT thành công, nhưng không thể tạo chứng chỉ HTTPS, vui lòng thử lại sau",buyDIDDomainTitle:"Mua tên miền DID (Tùy chọn)",buyDIDDomainTips:"Sau khi mua một DID Domain, tên miền sẽ tự động được liên kết với ứng dụng.",buyOrConnect:"Bạn có thể mua hoặc cấu hình một miền hiện có",skipDescription:"Bạn có thể tạm thời sử dụng các domain mặc định. Các domain này không phù hợp để sử dụng trong sản xuất và không nên được chia sẻ với khách hàng."},didSpace:{title:"Cấu hình DID Spaces",subTitle:"Hoàn thành quy trình kết nối sau để lưu trữ dữ liệu ứng dụng trong DID Spaces",tips:"Mẹo",description:"Cấu hình địa chỉ instance DID Spaces và lưu dữ liệu ứng dụng trong DID Spaces sau khi kết nối thành công",label:"Vui lòng chọn dịch vụ DID Spaces",connected:"Bạn đã kết nối thành công với DID Spaces",connect:"Kết nối Ngay",reconnect:"Kết nối lại",addressCannotEmpty:"Địa chỉ không thể để trống",addressNotValid:"{url} không phải là một địa chỉ hợp lệ",authorize:{title:"Kết nối {appName} với DID Spaces",scan:"Sử dụng các phương pháp sau để cho phép ứng dụng {appName} kết nối với DID Spaces",success:"Kết nối thành công"}},config:{title:"Cấu hình",subTitle:"Các mục cấu hình khác (bạn cũng cần thiết lập các mục sau)"},complete:{title:"Ứng dụng của bạn đã sẵn sàng",failedTitle:"Không thể khởi động ứng dụng",backToServer:"Quay lại máy chủ Blocklet",notRunning:"Ứng dụng không khởi động được ngay lần đầu, vui lòng thử lại",readyToStart:"Ứng dụng của bạn sắp sẵn sàng"},fuel:{title:"Nhiên liệu cần thiết để khởi động",tipStart:"khe cắm",tipEnd:"là bắt buộc để ứng dụng này hoạt động một cách chính xác, các quỹ được lưu trong ví ứng dụng và có thể sử dụng cho mục đích thanh toán phí giao dịch. Bạn có thể rút số dư của mình bất kỳ khi nào bạn không còn chạy ứng dụng nữa.",addressTitle:"Tài khoản Ứng dụng",addressTip:"Nạp ứng dụng bằng Ví DID",need:"Cần",current:"Hiện tại",fuelApp:"Cấp nhiên liệu cho ứng dụng"},title:"Thiết lập",next:"Tiếp theo",previous:"Trước đó",continue:"Tiếp tục",skip:"Bỏ qua",startNow:"Bắt đầu Ngay bây giờ",confirm:"Xác nhận",cancel:"Hủy"},user:{walletNotification:"Thông báo ví DID",emailNotification:"Thông báo qua email",smsNotification:"Thông báo qua SMS",addWebhook:"Thêm Webhook Mới"},pageTitle:{login:"Đăng nhập",dashboard:"Bảng điều khiển Blocklet",userCenter:"Trung tâm người dùng",invite:"Mời",issuePassport:"Cấp hộ chiếu",lostPassport:"Hộ Chiếu Bị Mất"},errorPage:{404:{title:"Rất tiếc! Không tìm thấy trang",description:"Có vẻ như trang bạn tìm kiếm không tồn tại.",backHome:'Nếu bạn là khách truy cập, bạn có thể <a href="{url}">quay lại trang chủ</a>',goToDashboard:"Nếu bạn là chủ sở hữu trang, bạn có thể <a href={url}>đăng nhập vào bảng điều khiển</a>."}},common:{branding:"Branding",theming:"Chủ đề",navigation:"Điều hướng",sitemap:"Sơ đồ trang web",advanced:"Nâng cao",performance:"Hiệu suất",docs:"Tài liệu",comingSoon:"Sắp có",accessKeys:"Khóa Truy cập"},connectCli:{title:"Kết nối để tạo khóa truy cập",scan:"Quét mã QR sau đây để kết nối và tạo khóa truy cập",success:"Kết nối thành công để tạo khóa truy cập",successDesc:"Khóa truy cập đã được tạo thành công, trang này có thể được đóng an toàn. Bạn giờ đây có thể tải lên Blocklets cục bộ bằng khóa truy cập đã tạo.",invalidSession:"Phiên làm việc không hợp lệ",invalidSessionDesc:"Phiên không tồn tại hoặc đã hết hạn, vui lòng sử dụng lệnh 'blocklet deploy --endpoint {endpoint}' để tạo lại khóa truy cập.",connectionError:"Thất bại khi tạo khóa truy cập",home:"Trở về trang chủ",tips:{title:"Tạo khóa truy cập",item1:"Hỗ trợ triển khai cục bộ Blocklets vào ứng dụng hiện tại",item2:"Sẽ được hiển thị trong danh sách Khóa Truy cập của ứng dụng",item3:"Bạn có thể thu hồi Khóa Truy cập trong danh sách bất cứ lúc nào"}},notFoundOauthClient:"Ứng dụng OAuth không tìm thấy, vui lòng kiểm tra cấu hình OAuth của bạn rồi thử lại."};export{n as default};
@@ -1 +0,0 @@
1
- import{aA as _,_ as e,as as i}from"./vendor-ux-did-connect-DIlRfE_S.js";import{C as a}from"./index-YbYWmpAT.js";import{j as r}from"./vendor-mui-core-BV2FUxWJ.js";const u={en:_(a),ar:()=>e(()=>import("./ar-T0OvMFDJ.js"),[]).then(t=>_(t.default)),de:()=>e(()=>import("./de-WYW4JJdA.js"),[]).then(t=>_(t.default)),es:()=>e(()=>import("./es-DaHPJdAX.js"),[]).then(t=>_(t.default)),fr:()=>e(()=>import("./fr-Sdn9hi8k.js"),[]).then(t=>_(t.default)),hi:()=>e(()=>import("./hi-dJuR0lt2.js"),[]).then(t=>_(t.default)),id:()=>e(()=>import("./id-DuYS34H0.js"),[]).then(t=>_(t.default)),ja:()=>e(()=>import("./ja-Dh60q0r5.js"),[]).then(t=>_(t.default)),ko:()=>e(()=>import("./ko-CoqvBZUf.js"),[]).then(t=>_(t.default)),pt:()=>e(()=>import("./pt-DCcbs0d0.js"),[]).then(t=>_(t.default)),ru:()=>e(()=>import("./ru-WYTV5VzH.js"),[]).then(t=>_(t.default)),th:()=>e(()=>import("./th-Da4lMKTX.js"),[]).then(t=>_(t.default)),vi:()=>e(()=>import("./vi-BxzaqoH9.js"),[]).then(t=>_(t.default)),"zh-TW":()=>e(()=>import("./zh-tw-BNgoHsYW.js"),[]).then(t=>_(t.default)),zh:()=>e(()=>import("./zh-Do6onry4.js"),[]).then(t=>_(t.default))};function l(t){return function(o){return r.jsx(i,{translations:u,children:r.jsx(t,{...o})})}}export{l as w};
@@ -1 +0,0 @@
1
- const e={auth:{noPermission:{title:"没有权限",description:"你不是 Blocklet 的管理员"}},studio:{home:"Studio",preferences:"偏好设计",localization:"国际化",branding:"品牌",type:"类型",ratio:"比例",size:"大小",count:"数量",tip:"提示",title:"为 {title} 提供图片",description:"更多信息,请参考",documentation:"文档",change:"点击标志更改。",order:"顺序",orderTip:"拖动更改",orderTipLong:"拖动以更改,若你在磁盘上删除了任何截图,请刷新页面。",videoTipLong:"点击封面编辑视频链接。",video:"视频",videoTooltip:"拖动以更改顺序。",videoType:"支持的网站",videoDialogTitle:"添加 Video",videoDialogEditTitle:"编辑/删除 视频",videoInputLabel:"输入 YouTube 或 Vimeo 视频链接",videoDialogNoSrc:"请输入有效的视频链接",duplicateVideo:"已添加此视频",confirm:"确认",cancel:"取消",preview:"预览",delete:"删除"},login:{reLogin:"重新连接",description:"需要连接 DID Wallet 才可以访问 {name}",already:"你已经连接",connectWallet:"连接钱包",closeWindow:"关闭窗口",switchDid:{title:"切换帐户",scan:"请使用以下方法添加账户",confirm:"在 DID Wallet 中确认切换",success:"切换成功"},switchSpecifiedDid:{title:"切换账户",scan:"你需要切换账号至 {did} 才能完成后续的操作",confirm:"在 DID Wallet 中确认切换",success:"切换成功"},connect:{title:"登录",scan:"请使用以下方法完成登录",confirm:"在您的 DID Wallet 上确认",success:"连接成功"},accessLimit:{title:"页面访问受限",description:"本页面需要持有以下通行证才可访问,请连接钱包更换或者申请对应的通行证。",alreadyHavePassport:"已有通行证",buyPassport:"购买通行证",connectWithPassport:"通过此通行证连线"},connectWithPassport:"使用该通行证连接",needManualClose:"登录成功,如果此窗口未自动关闭,请将其关闭。",invalidRedirectUrl:"无效的重定向 URL",invalidOpenerUrl:"无效的 URL",issueKyc:{pageDescription:"完成验证以确保您的帐户安全,并获得可信赖的可重复使用的 NFT,可在其他站点使用(一次验证,随处展示)。",verifyButton:"验证",sendCodeButton:"获取验证码",codeSentMessage:"我们刚刚向 {email} 发送了一个验证码,该验证码将在 30 分钟内有效,请检查您的收件箱或垃圾邮箱文件夹。",codeSentSuccess:"验证码发送成功",claim:"认领邮箱 KYC NFT",scan:"连接您的 DID Wallet 以接收 NFT",confirm:"在您的 DID Wallet 上确认",success:"恭喜!您已成功验证了您的邮箱并在您的 DID Wallet 中认领 NFT。",backToHome:"返回首页",emailPlaceholder:"您的邮箱地址",verifyTitle:"验证您的邮箱地址",issueTitle:"认领邮箱验证 NFT",verifyAction:"验证邮箱",issueAction:"认领 NFT",issueTarget:"您正在为以下 DID {action},请点击头像添加或切换 DID"},updateKyc:{button:"出示 NFT",title:"出示已验证邮箱 NFT",scan:"连接您的 DID Wallet 以出示邮箱 NFT",confirm:"在您的 DID Wallet 上确认",success:"恭喜!您的邮箱验证 NFT 已被验证并接受。"}},blocklet:{startApplication:"启动应用",startDescription:"准备启动 {name}",start:"启动",starting:"启动中...",startLoadingText:"服务正在启动,此过程可能需要几分钟,请您稍作等待 ...",open:"打开",suspended:"应用已被停止",suspendedCausedByExpired:"此应用因订阅取消被终止,取消于 {canceledAt},在 {deadline} 之前可重新恢复订阅。",suspendedCausedByPastDue:"此应用因订阅欠费被停止,在 {deadline} 之前完成续费即可恢复,超期将无法续费和恢复。",willBeSuspendedSoon:"此应用将于 {deadline} 停止服务,原因是订阅即将取消,如需继续使用,请及时恢复订阅。",suspendedCausedByTerminated:"应用因订阅取消被终止,取消于 {canceledAt},数据将被保留至 {deadline}; 在数据被删除之前,您可以将数据被备份到 DID Spaces.",manageSubscription:"管理订阅",terminated:"应用程序已终止",gotoVisitError:"无法访问 blocklet 地址,请稍后再试",payNow:"立即支付",startingProgress:{starting:"正在启动 {name}...",success:"{name} 启动成功",failed:"{name} 启动失败"}},setup:{steps:{connect:"连接",didSpace:"DID Spaces",config:"配置",domain:"域名",access:"访问控制",fuel:"燃料",complete:"完成",introduction:"简介",selectNodeDesc:"选择节点",launchAppDesc:"安装应用到节点",setupAppDesc:"设置应用",launched:"启动"},domain:{addTitle:"绑定现有域名 (可选)",title:"选择域名",subTitle:"自定义您应用的域名",tipStart:"请确保",tipEnd:"已经解析到了当前节点",addingCert:"生成证书...",recordType:"记录类型",recordValue:"记录值",skipDescription:"你可以暂时使用默认域名。这些域名不适合生产环境,也不应该与客户共享。",genCertSuccess:"已成功为 {domain} 签发证书",genCertFailed:"为 {domain} 生成证书失败: {message}",genCertFailedForNFTDomain:"添加 NFT 域名成功,但是生成证书失败, 请稍后重试",label:"请提供一个有效的域名",buyDIDDomainTitle:"购买一个 DID Domain (可选)",buyDIDDomainTips:"购买 DID 域名后,域名将自动绑定到应用程序。",buyOrConnect:"你可以购买或配置一个现有域名"},didSpace:{title:"配置 DID Spaces",subTitle:"完成以下连接流程,即可将应用数据存储到 DID Spaces 中",tips:"提示",description:"配置 DID Spaces 实例地址,连接成功后即可将应用数据存储到 DID Spaces",label:"请选择 DID Spaces 服务",connected:"你已成功连接至 DID Spaces",connect:"立即连接",reconnect:"重新连接",addressCannotEmpty:"地址不能为空",addressNotValid:"{url} 不是一个合法的地址",authorize:{title:"连接 {appName} 至 DID Spaces",scan:"使用以下方法允许应用 {appName} 连接到 DID Spaces",success:"连接成功"}},config:{title:"设置",subTitle:"其他配置项(您还需要设置以下项目)"},complete:{title:"您的应用已准备就绪",readyToStart:"您的应用即将就绪",failedTitle:"无法启动应用",backToServer:"返回 Blocklet Server",notRunning:"应用程序第一次启动失败,请重试"},connect:{title:"连接至应用",scan:"使用以下方法提供 Blocklet 的所有者权限,然后您可以配置并启动应用程序。",confirm:"在您的 DID Wallet 上确认",success:"连接成功"},fuel:{title:"启动所需燃料",tipStart:"此应用程序需要 ",tipEnd:" 才能正常运行,资金会保存在应用程序钱包中,将用于交易所需 Gas 费。您以后不再运行此应用的时候可以随时提取余额。",addressTitle:"应用账户",addressTip:"使用 DID Wallet 为应用提供资金",need:"需要",current:"当前",fuelApp:"为应用提供燃料"},title:"设置",next:"下一步",previous:"上一步",continue:"继续配置",skip:"跳过",startNow:"立即启动",confirm:"确定",cancel:"取消"},user:{walletNotification:"钱包通知",emailNotification:"邮箱通知",smsNotification:"短信通知",addWebhook:"新增 Webhook"},pageTitle:{login:"登录",dashboard:"Blocklet 仪表板",userCenter:"用户中心",invite:"邀请",issuePassport:"领发通行证",lostPassport:"丢失通行证"},errorPage:{404:{title:"哎呀!页面未找到",description:"似乎您访问的页面不存在或已被移动。",backHome:'如果您是访客,您可以 <a href="{url}">返回首页</a>',goToDashboard:"如果您是管理员,您可以 <a href={url}>登录到仪表板</a>"}},common:{branding:"品牌",theming:"主题",navigation:"导航",sitemap:"Sitemap",advanced:"高级",performance:"性能",docs:"文档",comingSoon:"即将推出",accessKeys:"访问密钥"},connectCli:{title:"连接以生成访问密钥",scan:"扫描以下二维码以连接并生成访问密钥",success:"成功连接以生成访问密钥",successDesc:"访问密钥生成成功,此页面可以安全关闭。您现在可以使用生成的访问密钥上传本地 Blocklets。",invalidSession:"无效会话",invalidSessionDesc:"会话不存在或已过期,请使用命令 'blocklet deploy --endpoint {endpoint}' 重新生成访问密钥",connectionError:"生成访问密钥失败",home:"返回首页",tips:{title:"生成访问密钥",item1:"支持将 Blocklets 部署到当前应用",item2:"将在应用程序的访问密钥列表中显示",item3:"你可以随时撤销列表中的访问密钥"}},notFoundOauthClient:"未找到 OAuth 应用,请检查你的 OAuth 配置,然后重试。"};export{e as default};
@@ -1 +0,0 @@
1
- const e={auth:{noPermission:{title:"無許可權",description:"您不是該 Blocklet 鏈應用的管理員"}},login:{reLogin:"重新連接",description:"您必須連接您的DID錢包才能訪問{name}",already:"您已連線為{name}",connectWallet:"連接DID錢包",closeWindow:"關閉視窗",accessLimit:{title:"頁面訪問受限",description:"訪問此頁面需要以下通行證,請連接到錢包以更改或申請相應的通行證。",alreadyHavePassport:"已經有通行證了",connectWithPassport:"使用此通行證連線",buyPassport:"購買通行證"},switchDid:{title:"切換DID錢包",scan:"掃描以下 QR 碼以切換帳號",confirm:"確認在您的DID錢包中切換",success:"成功切換"},switchSpecifiedDid:{title:"切換DID錢包",scan:"您需要將DID切換到{did}以完成以下操作",confirm:"確認在您的DID錢包中切換",success:"成功切換"},connect:{title:"連接DID錢包",scan:"連接您的DID錢包以提供通行證",confirm:"在您的 DID 錢包上確認",success:"你已成功連線"},needManualClose:"登入成功,如果此視窗未自動關閉,請將其關閉。",connectWithPassport:"使用此通行證連線",invalidRedirectUrl:"無效的重新導向網址",issueKyc:{pageDescription:"完成驗證以確保您的帳戶安全,並獲得可信賴的可重複使用的NFT,可在其他站點使用(一次驗證,隨處展示)。",verifyButton:"驗證",sendCodeButton:"取得驗證碼",codeSentMessage:"我們剛剛向 {email} 發送了一個驗證碼,該驗證碼將在30分鐘內有效,請檢查您的收件箱或垃圾郵件文件夾。",codeSentSuccess:"驗證碼發送成功",claim:"認領已驗證的電子郵件證書",scan:"連接您的 DID 錢包以接收證書",confirm:"在您的DID錢包上確認",success:"恭喜!您已成功驗證了您的電子郵件並在您的DID錢包中認領證書。",backToHome:"返回首頁",emailPlaceholder:"您的電子郵件地址",verifyTitle:"驗證您的電子郵件地址",issueTitle:"認領電子郵件驗證NFT",verifyAction:"驗證",issueAction:"認領",issueTarget:"您正在{action}以下DID,請點擊頭像添加另一個DID"},updateKyc:{button:"現證書",title:"目前驗證的電子郵件證書",scan:"連接您的DID錢包以展示證書",confirm:"在您的DID錢包上確認",success:"恭喜!您的NFT已被驗證並接受。"},invalidOpenerUrl:"無效的開啟 URL"},studio:{home:"Studio",preferences:"偏好設定建構器",localization:"本地化",branding:"品牌",ratio:"比例",size:"大小",count:"數量",tip:"提示",change:"點擊標誌更改。",order:"順序",orderTip:"拖曳以更改",orderTipLong:"拖曳以更改,如果您在磁碟中刪除任何螢幕截圖,請重新整理頁面。",type:"類型",videoTipLong:"點擊封面編輯影片連結。",video:"影片",videoTooltip:"拖曳以更改順序。",videoType:"支援的網站",videoDialogTitle:"新增 Video",videoDialogEditTitle:"編輯/刪除 影片",videoInputLabel:"輸入 YouTube 或 Vimeo 影片連結",videoDialogNoSrc:"請輸入有效的影片連結",duplicateVideo:"已新增此影片",confirm:"確認",cancel:"取消",preview:"預覽",delete:"刪除",title:"提供圖片給 {title}",description:"更多資訊,請參考",documentation:"文件"},blocklet:{startApplication:"啟動應用程式",startDescription:"準備好開始, {name}",start:"開始",starting:"開始...",open:"打開",suspended:"應用程式已暫停",manageSubscription:"管理訂閱",suspendedCausedByExpired:"此應用因訂閱取消被終止,取消於 {canceledAt},在 {deadline} 之前可重新恢復訂閱。",suspendedCausedByPastDue:"此應用因訂閱欠費被停止,在 {deadline} 之前完成續費即可恢復,超期將無法續費和恢復。",willBeSuspendedSoon:"此應用將於 {deadline} 停止服務,原因是訂閱即將取消,如需繼續使用,請及時恢復訂閱。",suspendedCausedByTerminated:"由於訂閱已取消,應用程式已終止,該訂閱於 {canceledAt} 取消,資料將保留至 {deadline};在資料刪除之前,您可以將資料備份到 DID 空間。",terminated:"應用程式已終止",gotoVisitError:"無法訪問 blocklet url,請稍後再試",payNow:"立即付款",startLoadingText:"服務正在啟動,可能需要幾分鐘,請稍候...",startingProgress:{starting:"開始 {name}...",success:"{name} 啟動成功",failed:"{name} 啟動失敗"}},setup:{steps:{connect:"連線",didSpace:"DID 空間",config:"配置",domain:"領域",access:"存取控制",fuel:"燃料",complete:"完成",introduction:"介紹",selectNodeDesc:"選擇Blocklet伺服器",launchAppDesc:"將 Blocklet 安裝到伺服器",setupAppDesc:"設置 Blocklet",launched:"完成"},connect:{title:"連線到應用程式",scan:"連接您的DID錢包以提供用户設定檔和blocklet的擁有者權限,然後您可以配置和啟動應用程式。",confirm:"在您的DID錢包上進行確認",success:"你已成功連線"},domain:{addTitle:"綁定現有網域 (選項)",title:"選擇網域",subTitle:"自訂你的應用程式網域",label:"請提供一個有效的域名",tipStart:"請務必確保",tipEnd:"指向當前伺服器",addingCert:"正在產生證書...",recordType:"記錄類型",recordValue:"記錄值",genCertSuccess:"{domain}證書發行成功",genCertFailed:"無法為{domain}簽發憑證:{message}",genCertFailedForNFTDomain:"成功添加NFT域名,但無法生成HTTPS憑證,請稍後再試。",buyDIDDomainTitle:"購買一個 DID Domain (選擇性)",buyDIDDomainTips:"購買 DID 網域名稱後,網域名稱將自動綁定到應用程式。",buyOrConnect:"您可以購買或設定現有網域",skipDescription:"你可以暫時使用預設網域。這些網域不適合生產環境,也不應該與客戶分享。"},didSpace:{title:"配置DID空間",subTitle:"完成以下連接過程,將應用程式資料儲存於DID Spaces中",tips:"小秘訣",description:"在成功連接後,配置DID Spaces實例地址並將應用程式資料存儲在DID Spaces中",label:"請選擇DID Spaces服務",connected:"您已成功連接到DID空間",connect:"立即連接",reconnect:"重新連接",addressCannotEmpty:"地址不能為空",addressNotValid:"{url} 不是一個有效的地址",authorize:{title:"將 {appName} 連接到 DID Spaces",scan:"使用您的DID錢包掃描下方的QR碼,允許應用程式{appName}連接到DID空間",success:"成功連接"}},config:{title:"配置",subTitle:"其他配置項(您還需要設置以下項)"},complete:{title:"您的應用程式已準備就緒",failedTitle:"無法啟動應用程式",backToServer:"返回 Blocklet Server",notRunning:"應用程式第一次啟動失敗,請重試",readyToStart:"你的應用即將準備就緒"},fuel:{title:"啟動所需燃料",tipStart:"插槽",tipEnd:"本應用程式正確運作所需,資金存放在應用程式的錢包中,可以用於交易費用。當您不再執行應用程式時,可以隨時提取您的餘額。",addressTitle:"應用帳戶",addressTip:"用DID錢包給應用程式加油",need:"需要",current:"目前",fuelApp:"加油應用程式"},title:"設置",next:"下一個",previous:"以前",continue:"繼續",skip:"跳過",startNow:"現在開始",confirm:"確認",cancel:"取消"},user:{walletNotification:"DID錢包通知",emailNotification:"電子郵件通知",smsNotification:"簡訊通知",addWebhook:"新增 Webhook"},pageTitle:{login:"登入",dashboard:"Blocklet 儀表板",userCenter:"用户中心",invite:"邀請",issuePassport:"領發通行證",lostPassport:"遺失通行證"},errorPage:{404:{title:"哎呀!頁面未找到",description:"看起來您要找的頁面不存在。",backHome:'如果您是訪客,您可以 <a href="{url}">返回主頁</a>',goToDashboard:"如果你是網站所有者,可以<a href={url}>登入到儀表板</a>。"}},common:{branding:"品牌",theming:"主題",navigation:"導覽",sitemap:"網站",advanced:"進階",performance:"效能",docs:"文档",comingSoon:"即将推出",accessKeys:"Access Keys"},connectCli:{title:"連接以產生存取金鑰",scan:"掃描以下二維碼以連接並產生存取金鑰",success:"成功連線以產生存取金鑰",successDesc:"存取金鑰產生成功,此頁面可以安全關閉。您現在可以使用產生的存取金鑰上傳本地 Blocklets。",invalidSession:"無效工作階段",invalidSessionDesc:"工作階段不存在或已逾期,請使用指令 'blocklet deploy --endpoint {endpoint}' 重新產生存取金鑰",connectionError:"產生存取金鑰失敗",home:"返回首頁",tips:{title:"產生存取金鑰",item1:"支援將 Blocklets 部署到目前應用程式",item2:"將會顯示在應用程式的存取金鑰列表中",item3:"你可以隨時撤銷列表中的存取金鑰"}},notFoundOauthClient:"未找到 OAuth 應用程式,請檢查你的 OAuth 設定,然後再試一次。"};export{e as default};