@abtnode/ux 1.16.27-beta-725ce3a6 → 1.16.27-beta-d1555a79

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 (546) hide show
  1. package/lib/actions.js +39 -56
  2. package/lib/analytics/card.js +62 -41
  3. package/lib/analytics/chart.js +40 -53
  4. package/lib/analytics/cpu.js +20 -28
  5. package/lib/analytics/disk.js +40 -52
  6. package/lib/analytics/memory.js +28 -37
  7. package/lib/analytics/runtime.js +40 -52
  8. package/lib/analytics/traffic.js +87 -98
  9. package/lib/blocklet/access/config-access.js +109 -106
  10. package/lib/blocklet/access/index.js +96 -102
  11. package/lib/blocklet/actions.js +312 -332
  12. package/lib/blocklet/add-cert.js +57 -73
  13. package/lib/blocklet/agreement-app.js +13 -23
  14. package/lib/blocklet/agreement.js +126 -58
  15. package/lib/blocklet/app-avatar.js +19 -35
  16. package/lib/blocklet/audit-logs.js +139 -98
  17. package/lib/blocklet/authentication/common-settings.js +88 -104
  18. package/lib/blocklet/authentication/federated/federated-detail-dialog.js +57 -66
  19. package/lib/blocklet/authentication/federated/federated-invite-dialog.js +29 -39
  20. package/lib/blocklet/authentication/federated/federated-join-dialog.js +36 -45
  21. package/lib/blocklet/authentication/federated/federated-site-list.js +73 -87
  22. package/lib/blocklet/authentication/federated/index.js +35 -48
  23. package/lib/blocklet/authentication/index.js +27 -34
  24. package/lib/blocklet/authentication/oauth/apple.js +125 -152
  25. package/lib/blocklet/authentication/oauth/auth0.js +93 -114
  26. package/lib/blocklet/authentication/oauth/drag-item.js +49 -57
  27. package/lib/blocklet/authentication/oauth/github.js +78 -96
  28. package/lib/blocklet/authentication/oauth/google.js +78 -96
  29. package/lib/blocklet/authentication/oauth/index.js +47 -61
  30. package/lib/blocklet/blocklet-source.js +23 -32
  31. package/lib/blocklet/bundle-avatar.js +26 -42
  32. package/{es/blocklet/component → lib/blocklet/component/add-component}/add-component-core.js +161 -237
  33. package/{es/blocklet/component → lib/blocklet/component/add-component}/add-component-dialog.js +2 -2
  34. package/lib/blocklet/component/add-component/step-connect.js +215 -0
  35. package/lib/blocklet/component/button.js +9 -20
  36. package/lib/blocklet/component/component-cell.js +141 -137
  37. package/lib/blocklet/component/component-info-dialog.js +94 -90
  38. package/lib/blocklet/component/configuration.js +56 -58
  39. package/lib/blocklet/component/delete.js +56 -66
  40. package/lib/blocklet/component/did-space/connect-to.js +100 -108
  41. package/lib/blocklet/component/did-space/connected.js +14 -21
  42. package/lib/blocklet/component/did-space/delete.js +31 -39
  43. package/lib/blocklet/component/did-space/disconnect.js +58 -69
  44. package/lib/blocklet/component/did-space/index.js +40 -47
  45. package/lib/blocklet/component/did-space/item.js +113 -78
  46. package/lib/blocklet/component/domain-list.js +211 -230
  47. package/lib/blocklet/component/environment.js +137 -92
  48. package/lib/blocklet/component/index.js +230 -222
  49. package/lib/blocklet/component/line.js +10 -18
  50. package/lib/blocklet/component/navigation/locale-tabs.js +64 -76
  51. package/lib/blocklet/component/navigation/navigation-actions.js +43 -51
  52. package/lib/blocklet/component/navigation/navigation-dialog.js +263 -299
  53. package/lib/blocklet/component/navigation/navigation-preview.js +44 -48
  54. package/lib/blocklet/component/navigation/simple-select.js +54 -70
  55. package/lib/blocklet/component/optional-component-cell.js +91 -55
  56. package/lib/blocklet/component/related-components-dialog.js +40 -50
  57. package/lib/blocklet/component/select-store.js +70 -74
  58. package/lib/blocklet/component/selected/index.js +72 -26
  59. package/lib/blocklet/component/setting.js +48 -62
  60. package/lib/blocklet/component/shorten-label.js +34 -0
  61. package/lib/blocklet/component/sortable-tree.js +49 -63
  62. package/lib/blocklet/component/space-connector.js +64 -78
  63. package/lib/blocklet/component/space-selector.js +65 -71
  64. package/lib/blocklet/component/start.js +42 -49
  65. package/lib/blocklet/component/step-actions.js +72 -37
  66. package/lib/blocklet/component/store-blocklet-list.js +93 -103
  67. package/lib/blocklet/component/switch-control.js +36 -42
  68. package/lib/blocklet/config-navigation.js +106 -134
  69. package/lib/blocklet/configuration.js +188 -171
  70. package/lib/blocklet/disk-info.js +26 -44
  71. package/lib/blocklet/icons.js +21 -28
  72. package/lib/blocklet/install-from-url.js +93 -107
  73. package/lib/blocklet/log.js +27 -43
  74. package/lib/blocklet/logo-uploader.js +76 -58
  75. package/lib/blocklet/migration.js +40 -50
  76. package/lib/blocklet/mode.js +12 -28
  77. package/lib/blocklet/notification/email.js +154 -186
  78. package/lib/blocklet/notification/index.js +20 -27
  79. package/lib/blocklet/overview.js +59 -60
  80. package/lib/blocklet/page-group.js +12 -28
  81. package/lib/blocklet/preferences/app-sk.js +54 -57
  82. package/lib/blocklet/preferences/index.js +100 -111
  83. package/lib/blocklet/publish/connect-store-button.js +112 -0
  84. package/lib/blocklet/publish/connect-store-list.js +51 -56
  85. package/lib/blocklet/publish/create-release.js +512 -392
  86. package/lib/blocklet/publish/index.js +42 -46
  87. package/lib/blocklet/publish/project-list.js +127 -105
  88. package/lib/blocklet/publish/release-list.js +98 -97
  89. package/lib/blocklet/publish/resource.js +186 -157
  90. package/lib/blocklet/publish/select-components.js +73 -68
  91. package/lib/blocklet/publish/tree.js +141 -109
  92. package/lib/blocklet/publish/wait-connect.js +64 -0
  93. package/lib/blocklet/purchase/common.js +37 -45
  94. package/lib/blocklet/purchase/component-purchase.js +74 -91
  95. package/lib/blocklet/purchase/index.js +3 -12
  96. package/lib/blocklet/resource-type.js +19 -36
  97. package/lib/blocklet/router/action/add-domain-alias.js +56 -67
  98. package/lib/blocklet/router/action/add-rule.js +63 -73
  99. package/lib/blocklet/router/action/config-routing-rule.js +84 -93
  100. package/lib/blocklet/router/action/delete-domain-alias.js +27 -34
  101. package/lib/blocklet/router/action/delete-rule.js +31 -39
  102. package/lib/blocklet/router/action/update-rule.js +66 -76
  103. package/lib/blocklet/router/add-domain.js +113 -131
  104. package/lib/blocklet/router/dns-tip.js +40 -57
  105. package/lib/blocklet/router/domain-actions.js +52 -67
  106. package/lib/blocklet/router/domain-status.js +27 -35
  107. package/lib/blocklet/router/rule-actions.js +45 -60
  108. package/lib/blocklet/router/rule-list.js +83 -92
  109. package/lib/blocklet/router/util.js +30 -46
  110. package/lib/blocklet/runtime-info.js +30 -48
  111. package/lib/blocklet/status.js +37 -52
  112. package/lib/blocklet/storage/action.js +59 -76
  113. package/lib/blocklet/storage/auto-backup.js +23 -31
  114. package/lib/blocklet/storage/auto-check-update.js +28 -42
  115. package/lib/blocklet/storage/backups.js +50 -60
  116. package/lib/blocklet/storage/connect-to.js +100 -106
  117. package/lib/blocklet/storage/connected.js +35 -40
  118. package/lib/blocklet/storage/delete.js +34 -42
  119. package/lib/blocklet/storage/disconnect.js +65 -76
  120. package/lib/blocklet/storage/index.js +9 -16
  121. package/lib/blocklet/storage/item.js +193 -153
  122. package/lib/blocklet/storage/preview-nft.js +74 -87
  123. package/lib/blocklet/transfer-owner.js +70 -74
  124. package/lib/blocklet/types.js +12 -18
  125. package/lib/blocklet/util.js +38 -55
  126. package/lib/blocklet/version.js +59 -69
  127. package/lib/card-selector.js +63 -39
  128. package/lib/certificate.js +35 -43
  129. package/lib/chain.js +3 -10
  130. package/lib/clear-cache.js +28 -44
  131. package/lib/click-to-copy.js +15 -31
  132. package/lib/confirm.js +72 -84
  133. package/lib/contexts/audit-log.js +30 -41
  134. package/lib/contexts/blocklet-storage.js +56 -65
  135. package/lib/contexts/blocklet.js +5 -13
  136. package/lib/contexts/config-space.js +34 -42
  137. package/lib/contexts/deleting-blocklets.js +18 -26
  138. package/lib/contexts/domain.js +20 -30
  139. package/lib/contexts/node.js +8 -20
  140. package/lib/contexts/session.js +5 -17
  141. package/lib/contexts/team.js +5 -13
  142. package/lib/delete-confirm.js +53 -60
  143. package/lib/did-address.js +24 -39
  144. package/lib/dot.js +9 -12
  145. package/lib/empty-spinner.js +15 -31
  146. package/lib/exchange-passport.js +30 -42
  147. package/lib/form/form-autocomplete-input.js +101 -117
  148. package/lib/form/form-select-input.js +69 -87
  149. package/lib/form/form-text-input.js +59 -75
  150. package/lib/form/form-wrapper.js +88 -12
  151. package/lib/form/input-triggers.js +39 -47
  152. package/lib/form/required.js +8 -12
  153. package/lib/hooks/blocklet.js +83 -106
  154. package/lib/hooks/confirm.js +31 -47
  155. package/lib/hooks/mobile-width.js +5 -12
  156. package/lib/hooks/url-evaluation.js +37 -50
  157. package/lib/hooks/use-app-logo.js +17 -27
  158. package/lib/hooks/use-auto-backup.js +15 -25
  159. package/lib/hooks/use-auto-check-update.js +15 -25
  160. package/lib/hooks/use-backup-progress.js +19 -30
  161. package/lib/hooks/use-backups.js +22 -30
  162. package/lib/hooks/use-blocklet-info-for-connect-did-spaces.js +17 -26
  163. package/lib/hooks/use-bundle-logo.js +13 -22
  164. package/lib/hooks/use-check-update-by-url.js +12 -20
  165. package/lib/hooks/use-components-by-blocklet-meta-url.js +11 -17
  166. package/lib/hooks/use-event-listen.js +4 -10
  167. package/lib/hooks/use-install-component-by-url.js +20 -29
  168. package/lib/hooks/use-mobile.js +9 -16
  169. package/lib/hooks/use-navigation.js +66 -74
  170. package/lib/hooks/use-passport-id.js +1 -7
  171. package/lib/hooks/use-snackbar.js +2 -8
  172. package/lib/hooks/use-space-gateways.js +21 -29
  173. package/lib/hooks/use-storage-endpoint.js +8 -13
  174. package/lib/hooks/use-subscription.js +8 -14
  175. package/lib/hooks/use-width.js +5 -12
  176. package/lib/images.js +31 -34
  177. package/lib/index.js +3 -20
  178. package/lib/invitation/invitation-app.js +42 -35
  179. package/lib/invitation/invitation-login.js +51 -29
  180. package/lib/invitation/invitation-passport.js +76 -48
  181. package/lib/invitation/invitation-receive.js +81 -66
  182. package/lib/invitation/invitation-success.js +51 -41
  183. package/lib/invitation/invitation-user.js +48 -38
  184. package/lib/invitation/invitation.js +69 -63
  185. package/lib/issue-passport.js +64 -53
  186. package/lib/launch-blocklet/content-layout.js +54 -29
  187. package/lib/launch-blocklet/page-header.js +29 -24
  188. package/lib/layout/addon.js +72 -56
  189. package/lib/layout/feedback.js +25 -25
  190. package/lib/locales/ar.js +7 -10
  191. package/lib/locales/de.js +8 -11
  192. package/lib/locales/en.js +4 -7
  193. package/lib/locales/es.js +7 -10
  194. package/lib/locales/fr.js +7 -10
  195. package/lib/locales/hi.js +7 -10
  196. package/lib/locales/i18n.db +0 -0
  197. package/lib/locales/id.js +7 -10
  198. package/lib/locales/index.js +19 -27
  199. package/lib/locales/ja.js +7 -10
  200. package/lib/locales/ko.js +7 -10
  201. package/lib/locales/pt.js +7 -10
  202. package/lib/locales/ru.js +6 -9
  203. package/lib/locales/th.js +6 -9
  204. package/lib/locales/vi.js +7 -10
  205. package/lib/locales/zh-tw.js +6 -9
  206. package/lib/locales/zh.js +6 -9
  207. package/lib/logs/clock.js +7 -14
  208. package/lib/logs/download.js +45 -53
  209. package/lib/logs/log-terminal.js +145 -84
  210. package/lib/lost-passport.js +226 -110
  211. package/lib/nav-logo.js +157 -60
  212. package/lib/notifications/addon.js +34 -43
  213. package/lib/notifications/default-icon-variants.js +23 -31
  214. package/lib/notifications/list.js +122 -89
  215. package/lib/notifications/notification.js +64 -56
  216. package/lib/notifications/page.js +151 -104
  217. package/lib/notifications/tag.js +12 -28
  218. package/lib/passport-tag.js +31 -32
  219. package/lib/permission.js +19 -32
  220. package/lib/relative-time.js +25 -39
  221. package/lib/result-message.js +11 -13
  222. package/lib/schema-form/color-input.js +24 -32
  223. package/lib/schema-form/common-prop-types.js +10 -17
  224. package/lib/schema-form/index.js +75 -89
  225. package/lib/schema-form/passport-input.js +28 -42
  226. package/lib/schema-form/text-input.js +20 -35
  227. package/lib/store/add.js +50 -58
  228. package/lib/store/connect-actions.js +46 -54
  229. package/lib/store/delete.js +35 -43
  230. package/lib/store/item.js +124 -136
  231. package/lib/subscription/blocklet.js +76 -90
  232. package/lib/subscription/chip-label.js +15 -23
  233. package/lib/subscription/server.js +83 -96
  234. package/lib/table-icons.js +33 -40
  235. package/lib/table.js +52 -12
  236. package/lib/tag.js +14 -30
  237. package/lib/team/members/actions.js +68 -82
  238. package/lib/team/members/connections.js +11 -19
  239. package/lib/team/members/index.js +287 -192
  240. package/lib/team/members/invitations.js +45 -55
  241. package/lib/team/members/invite-member.js +69 -76
  242. package/lib/team/members/issue-passport.js +54 -62
  243. package/lib/team/members/member.js +154 -142
  244. package/lib/team/members/passport-issuances.js +65 -61
  245. package/lib/team/members/passport-item.js +63 -55
  246. package/lib/team/members/passports.js +110 -115
  247. package/lib/team/members/toggle-user-approval.js +34 -42
  248. package/lib/team/members/transfer-node.js +78 -85
  249. package/lib/team/members/util.js +6 -12
  250. package/lib/team/passports/color.js +53 -61
  251. package/lib/team/passports/detail.js +136 -97
  252. package/lib/team/passports/index.js +117 -98
  253. package/lib/team/passports/mutate-role.js +50 -58
  254. package/lib/team/passports/trusted-factories.js +88 -93
  255. package/lib/team/passports/trusted-factory.js +99 -100
  256. package/lib/team/passports/trusted-issuer.js +92 -96
  257. package/lib/team/passports/trusted-issuers.js +88 -93
  258. package/lib/team/search-input.js +45 -36
  259. package/lib/team/styles/dialog.js +71 -11
  260. package/lib/team/styles/list-header.js +30 -11
  261. package/lib/util/api.js +5 -18
  262. package/lib/util/constants.js +3 -10
  263. package/lib/util/index.js +215 -324
  264. package/lib/util/join-url-keep-search.js +3 -10
  265. package/lib/util/mode.js +1 -7
  266. package/lib/util/parse-progress.js +1 -7
  267. package/lib/util/space-gateway.js +16 -23
  268. package/lib/util/spaces.js +48 -72
  269. package/lib/util/storage-ttl.js +4 -15
  270. package/lib/who-can-access/config.js +11 -18
  271. package/lib/wrap-locale.js +11 -18
  272. package/package.json +20 -100
  273. package/es/actions.js +0 -100
  274. package/es/analytics/card.js +0 -91
  275. package/es/analytics/chart.js +0 -95
  276. package/es/analytics/cpu.js +0 -36
  277. package/es/analytics/disk.js +0 -107
  278. package/es/analytics/memory.js +0 -70
  279. package/es/analytics/runtime.js +0 -174
  280. package/es/analytics/traffic.js +0 -257
  281. package/es/blocklet/access/config-access.js +0 -305
  282. package/es/blocklet/access/index.js +0 -215
  283. package/es/blocklet/actions.js +0 -536
  284. package/es/blocklet/add-cert.js +0 -193
  285. package/es/blocklet/agreement-app.js +0 -21
  286. package/es/blocklet/agreement.js +0 -214
  287. package/es/blocklet/app-avatar.js +0 -45
  288. package/es/blocklet/audit-logs.js +0 -275
  289. package/es/blocklet/authentication/common-settings.js +0 -133
  290. package/es/blocklet/authentication/federated/federated-detail-dialog.js +0 -193
  291. package/es/blocklet/authentication/federated/federated-invite-dialog.js +0 -82
  292. package/es/blocklet/authentication/federated/federated-join-dialog.js +0 -110
  293. package/es/blocklet/authentication/federated/federated-site-list.js +0 -319
  294. package/es/blocklet/authentication/federated/index.js +0 -79
  295. package/es/blocklet/authentication/index.js +0 -68
  296. package/es/blocklet/authentication/oauth/apple.js +0 -222
  297. package/es/blocklet/authentication/oauth/auth0.js +0 -170
  298. package/es/blocklet/authentication/oauth/drag-item.js +0 -177
  299. package/es/blocklet/authentication/oauth/github.js +0 -146
  300. package/es/blocklet/authentication/oauth/google.js +0 -145
  301. package/es/blocklet/authentication/oauth/index.js +0 -122
  302. package/es/blocklet/blocklet-source.js +0 -47
  303. package/es/blocklet/bundle-avatar.js +0 -64
  304. package/es/blocklet/component/button.js +0 -12
  305. package/es/blocklet/component/component-cell.js +0 -339
  306. package/es/blocklet/component/component-info-dialog.js +0 -257
  307. package/es/blocklet/component/configuration.js +0 -122
  308. package/es/blocklet/component/delete.js +0 -132
  309. package/es/blocklet/component/did-space/connect-to.js +0 -351
  310. package/es/blocklet/component/did-space/connected.js +0 -41
  311. package/es/blocklet/component/did-space/delete.js +0 -102
  312. package/es/blocklet/component/did-space/disconnect.js +0 -228
  313. package/es/blocklet/component/did-space/index.js +0 -74
  314. package/es/blocklet/component/did-space/item.js +0 -230
  315. package/es/blocklet/component/domain-list.js +0 -519
  316. package/es/blocklet/component/environment.js +0 -364
  317. package/es/blocklet/component/index.js +0 -545
  318. package/es/blocklet/component/line.js +0 -24
  319. package/es/blocklet/component/navigation/locale-tabs.js +0 -227
  320. package/es/blocklet/component/navigation/navigation-actions.js +0 -111
  321. package/es/blocklet/component/navigation/navigation-dialog.js +0 -608
  322. package/es/blocklet/component/navigation/navigation-preview.js +0 -108
  323. package/es/blocklet/component/navigation/simple-select.js +0 -123
  324. package/es/blocklet/component/optional-component-cell.js +0 -140
  325. package/es/blocklet/component/related-components-dialog.js +0 -194
  326. package/es/blocklet/component/select-store.js +0 -170
  327. package/es/blocklet/component/selected/index.js +0 -93
  328. package/es/blocklet/component/setting.js +0 -109
  329. package/es/blocklet/component/sortable-tree.js +0 -125
  330. package/es/blocklet/component/space-connector.js +0 -197
  331. package/es/blocklet/component/space-selector.js +0 -177
  332. package/es/blocklet/component/start.js +0 -101
  333. package/es/blocklet/component/step-actions.js +0 -98
  334. package/es/blocklet/component/store-blocklet-list.js +0 -227
  335. package/es/blocklet/component/switch-control.js +0 -57
  336. package/es/blocklet/config-navigation.js +0 -354
  337. package/es/blocklet/configuration.js +0 -589
  338. package/es/blocklet/disk-info.js +0 -74
  339. package/es/blocklet/icons.js +0 -22
  340. package/es/blocklet/install-from-url.js +0 -335
  341. package/es/blocklet/log.js +0 -90
  342. package/es/blocklet/logo-uploader.js +0 -133
  343. package/es/blocklet/migration.js +0 -148
  344. package/es/blocklet/mode.js +0 -19
  345. package/es/blocklet/notification/email.js +0 -342
  346. package/es/blocklet/notification/index.js +0 -48
  347. package/es/blocklet/overview.js +0 -158
  348. package/es/blocklet/page-group.js +0 -19
  349. package/es/blocklet/preferences/app-sk.js +0 -141
  350. package/es/blocklet/preferences/index.js +0 -304
  351. package/es/blocklet/publish/connect-store-list.js +0 -97
  352. package/es/blocklet/publish/create-release.js +0 -1059
  353. package/es/blocklet/publish/index.js +0 -69
  354. package/es/blocklet/publish/project-list.js +0 -399
  355. package/es/blocklet/publish/release-list.js +0 -351
  356. package/es/blocklet/publish/resource.js +0 -235
  357. package/es/blocklet/publish/select-components.js +0 -180
  358. package/es/blocklet/publish/tree.js +0 -237
  359. package/es/blocklet/purchase/common.js +0 -93
  360. package/es/blocklet/purchase/component-purchase.js +0 -235
  361. package/es/blocklet/purchase/index.js +0 -4
  362. package/es/blocklet/resource-type.js +0 -34
  363. package/es/blocklet/router/action/add-domain-alias.js +0 -172
  364. package/es/blocklet/router/action/add-rule.js +0 -223
  365. package/es/blocklet/router/action/config-routing-rule.js +0 -283
  366. package/es/blocklet/router/action/delete-domain-alias.js +0 -97
  367. package/es/blocklet/router/action/delete-rule.js +0 -106
  368. package/es/blocklet/router/action/update-rule.js +0 -221
  369. package/es/blocklet/router/add-domain.js +0 -307
  370. package/es/blocklet/router/dns-tip.js +0 -103
  371. package/es/blocklet/router/domain-actions.js +0 -64
  372. package/es/blocklet/router/domain-status.js +0 -87
  373. package/es/blocklet/router/rule-actions.js +0 -65
  374. package/es/blocklet/router/rule-list.js +0 -203
  375. package/es/blocklet/router/util.js +0 -148
  376. package/es/blocklet/runtime-info.js +0 -67
  377. package/es/blocklet/status.js +0 -106
  378. package/es/blocklet/storage/action.js +0 -149
  379. package/es/blocklet/storage/auto-backup.js +0 -55
  380. package/es/blocklet/storage/auto-check-update.js +0 -69
  381. package/es/blocklet/storage/backups.js +0 -212
  382. package/es/blocklet/storage/connect-to.js +0 -353
  383. package/es/blocklet/storage/connected.js +0 -112
  384. package/es/blocklet/storage/delete.js +0 -112
  385. package/es/blocklet/storage/disconnect.js +0 -241
  386. package/es/blocklet/storage/index.js +0 -16
  387. package/es/blocklet/storage/item.js +0 -544
  388. package/es/blocklet/storage/preview-nft.js +0 -283
  389. package/es/blocklet/transfer-owner.js +0 -199
  390. package/es/blocklet/types.js +0 -18
  391. package/es/blocklet/util.js +0 -151
  392. package/es/blocklet/version.js +0 -139
  393. package/es/card-selector.js +0 -134
  394. package/es/certificate.js +0 -102
  395. package/es/chain.js +0 -13
  396. package/es/clear-cache.js +0 -77
  397. package/es/click-to-copy.js +0 -22
  398. package/es/confirm.js +0 -162
  399. package/es/contexts/audit-log.js +0 -152
  400. package/es/contexts/blocklet-storage.js +0 -247
  401. package/es/contexts/blocklet.js +0 -10
  402. package/es/contexts/config-space.js +0 -160
  403. package/es/contexts/deleting-blocklets.js +0 -70
  404. package/es/contexts/domain.js +0 -75
  405. package/es/contexts/node.js +0 -17
  406. package/es/contexts/session.js +0 -8
  407. package/es/contexts/team.js +0 -10
  408. package/es/delete-confirm.js +0 -120
  409. package/es/did-address.js +0 -46
  410. package/es/dot.js +0 -14
  411. package/es/empty-spinner.js +0 -24
  412. package/es/exchange-passport.js +0 -93
  413. package/es/form/form-autocomplete-input.js +0 -283
  414. package/es/form/form-select-input.js +0 -188
  415. package/es/form/form-text-input.js +0 -176
  416. package/es/form/form-wrapper.js +0 -88
  417. package/es/form/input-triggers.js +0 -96
  418. package/es/form/required.js +0 -8
  419. package/es/hooks/blocklet.js +0 -317
  420. package/es/hooks/confirm.js +0 -98
  421. package/es/hooks/mobile-width.js +0 -11
  422. package/es/hooks/url-evaluation.js +0 -155
  423. package/es/hooks/use-app-logo.js +0 -32
  424. package/es/hooks/use-auto-backup.js +0 -33
  425. package/es/hooks/use-auto-check-update.js +0 -33
  426. package/es/hooks/use-backup-progress.js +0 -65
  427. package/es/hooks/use-backups.js +0 -61
  428. package/es/hooks/use-blocklet-info-for-connect-did-spaces.js +0 -55
  429. package/es/hooks/use-bundle-logo.js +0 -27
  430. package/es/hooks/use-check-update-by-url.js +0 -28
  431. package/es/hooks/use-components-by-blocklet-meta-url.js +0 -36
  432. package/es/hooks/use-event-listen.js +0 -11
  433. package/es/hooks/use-install-component-by-url.js +0 -65
  434. package/es/hooks/use-mobile.js +0 -17
  435. package/es/hooks/use-navigation.js +0 -331
  436. package/es/hooks/use-passport-id.js +0 -18
  437. package/es/hooks/use-snackbar.js +0 -2
  438. package/es/hooks/use-space-gateways.js +0 -66
  439. package/es/hooks/use-storage-endpoint.js +0 -23
  440. package/es/hooks/use-subscription.js +0 -22
  441. package/es/hooks/use-width.js +0 -12
  442. package/es/icons/empty-space-nft.svg +0 -59
  443. package/es/icons/empty-spaces-nft.svg +0 -58
  444. package/es/icons/long-arrow.svg +0 -5
  445. package/es/icons/space-connected.svg +0 -3
  446. package/es/icons/space-disconnect.svg +0 -3
  447. package/es/images.js +0 -48
  448. package/es/index.js +0 -3
  449. package/es/invitation/invitation-app.js +0 -57
  450. package/es/invitation/invitation-login.js +0 -68
  451. package/es/invitation/invitation-passport.js +0 -144
  452. package/es/invitation/invitation-receive.js +0 -170
  453. package/es/invitation/invitation-success.js +0 -92
  454. package/es/invitation/invitation-user.js +0 -89
  455. package/es/invitation/invitation.js +0 -103
  456. package/es/issue-passport.js +0 -151
  457. package/es/launch-blocklet/content-layout.js +0 -58
  458. package/es/launch-blocklet/page-header.js +0 -42
  459. package/es/layout/addon.js +0 -119
  460. package/es/layout/feedback.js +0 -58
  461. package/es/locales/ar.js +0 -1824
  462. package/es/locales/de.js +0 -1824
  463. package/es/locales/en.js +0 -1814
  464. package/es/locales/es.js +0 -1824
  465. package/es/locales/fr.js +0 -1824
  466. package/es/locales/hi.js +0 -1824
  467. package/es/locales/i18n.db +0 -0
  468. package/es/locales/id.js +0 -1824
  469. package/es/locales/index.js +0 -20
  470. package/es/locales/ja.js +0 -1824
  471. package/es/locales/ko.js +0 -1824
  472. package/es/locales/pt.js +0 -1824
  473. package/es/locales/ru.js +0 -1824
  474. package/es/locales/th.js +0 -1824
  475. package/es/locales/vi.js +0 -1824
  476. package/es/locales/zh-tw.js +0 -1824
  477. package/es/locales/zh.js +0 -1831
  478. package/es/logs/clock.js +0 -11
  479. package/es/logs/download.js +0 -132
  480. package/es/logs/log-terminal.js +0 -253
  481. package/es/lost-passport.js +0 -501
  482. package/es/nav-logo.js +0 -217
  483. package/es/notifications/addon.js +0 -90
  484. package/es/notifications/default-icon-variants.js +0 -53
  485. package/es/notifications/list.js +0 -272
  486. package/es/notifications/notification.js +0 -147
  487. package/es/notifications/page.js +0 -314
  488. package/es/notifications/tag.js +0 -28
  489. package/es/passport-tag.js +0 -42
  490. package/es/permission.js +0 -57
  491. package/es/relative-time.js +0 -56
  492. package/es/result-message.js +0 -11
  493. package/es/schema-form/color-input.js +0 -97
  494. package/es/schema-form/common-prop-types.js +0 -13
  495. package/es/schema-form/index.js +0 -222
  496. package/es/schema-form/passport-input.js +0 -54
  497. package/es/schema-form/text-input.js +0 -57
  498. package/es/store/add.js +0 -178
  499. package/es/store/connect-actions.js +0 -139
  500. package/es/store/delete.js +0 -112
  501. package/es/store/item.js +0 -347
  502. package/es/subscription/blocklet.js +0 -175
  503. package/es/subscription/chip-label.js +0 -40
  504. package/es/subscription/server.js +0 -189
  505. package/es/table-icons.js +0 -34
  506. package/es/table.js +0 -52
  507. package/es/tag.js +0 -21
  508. package/es/team/members/actions.js +0 -143
  509. package/es/team/members/connections.js +0 -28
  510. package/es/team/members/index.js +0 -746
  511. package/es/team/members/invitations.js +0 -187
  512. package/es/team/members/invite-member.js +0 -206
  513. package/es/team/members/issue-passport.js +0 -150
  514. package/es/team/members/member.js +0 -394
  515. package/es/team/members/passport-issuances.js +0 -154
  516. package/es/team/members/passport-item.js +0 -103
  517. package/es/team/members/passports.js +0 -308
  518. package/es/team/members/toggle-user-approval.js +0 -123
  519. package/es/team/members/transfer-node.js +0 -255
  520. package/es/team/members/util.js +0 -14
  521. package/es/team/passports/color.js +0 -125
  522. package/es/team/passports/detail.js +0 -310
  523. package/es/team/passports/index.js +0 -289
  524. package/es/team/passports/mutate-role.js +0 -196
  525. package/es/team/passports/trusted-factories.js +0 -220
  526. package/es/team/passports/trusted-factory.js +0 -341
  527. package/es/team/passports/trusted-issuer.js +0 -293
  528. package/es/team/passports/trusted-issuers.js +0 -225
  529. package/es/team/search-input.js +0 -46
  530. package/es/team/styles/dialog.js +0 -72
  531. package/es/team/styles/list-header.js +0 -31
  532. package/es/util/api.js +0 -6
  533. package/es/util/constants.js +0 -3
  534. package/es/util/index.js +0 -691
  535. package/es/util/join-url-keep-search.js +0 -15
  536. package/es/util/mode.js +0 -4
  537. package/es/util/parse-progress.js +0 -10
  538. package/es/util/space-gateway.js +0 -51
  539. package/es/util/spaces.js +0 -235
  540. package/es/util/storage-ttl.js +0 -78
  541. package/es/who-can-access/config.js +0 -38
  542. package/es/wrap-locale.js +0 -15
  543. package/lib/blocklet/component/add-component-button.js +0 -57
  544. package/lib/blocklet/component/add-component-core.js +0 -1188
  545. package/lib/blocklet/component/add-component-dialog.js +0 -85
  546. /package/{es/blocklet/component → lib/blocklet/component/add-component}/add-component-button.js +0 -0
@@ -1,1059 +0,0 @@
1
- import { useState, useEffect, lazy, useRef, useCallback, useMemo } from 'react';
2
- import { Link, useNavigate, useParams } from 'react-router-dom';
3
- import styled from '@emotion/styled';
4
- import useSetState from 'react-use/lib/useSetState';
5
- import pick from 'lodash/pick';
6
- import joinUrl from 'url-join';
7
- import semver from 'semver';
8
- import Avatar from '@mui/material/Avatar';
9
- import TextField from '@mui/material/TextField';
10
- import Typography from '@mui/material/Typography';
11
- import Breadcrumbs from '@mui/material/Breadcrumbs';
12
- import Box from '@mui/material/Box';
13
- import IconButton from '@mui/material/IconButton';
14
- import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
15
- import CloudUploadRoundedIcon from '@mui/icons-material/CloudUploadRounded';
16
- import InputAdornment from '@mui/material/InputAdornment';
17
- import Spinner from '@mui/material/CircularProgress';
18
- import MaterialDialog from '@mui/material/Dialog';
19
- import DidConnect from '@arcblock/did-connect/lib/Connect';
20
- import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
21
- import Button from '@arcblock/ux/lib/Button';
22
- import Toast from '@arcblock/ux/lib/Toast';
23
- import Empty from '@arcblock/ux/lib/Empty';
24
- import Tabs from '@arcblock/ux/lib/Tabs';
25
- import Dialog from '@arcblock/ux/lib/Dialog';
26
- import Alert from '@arcblock/ux/lib/Alert';
27
- import { PROJECT } from '@blocklet/constant';
28
- import { EVENTS, STUDIO_CONNECTED_STORE, WELLKNOWN_SERVICE_PATH_PREFIX, UNOWNED_DID } from '@abtnode/constant';
29
- import BlockletBundleAvatar from '../bundle-avatar';
30
- import { useSessionContext } from '../../contexts/session';
31
- import { useNodeContext } from '../../contexts/node';
32
- import { useBlockletContext } from '../../contexts/blocklet';
33
- import EmptySpinner from '../../empty-spinner';
34
- import ClickToCopy from '../../click-to-copy';
35
- import { formatError } from '../../util';
36
- import Resource from './resource';
37
- import SelectComponents from './select-components';
38
- import ConnectStoreList from './connect-store-list';
39
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
40
- const allowedFileTypes = ['image/*', '.jpg', '.jpeg', '.png', '.gif', '.svg'];
41
- const maxFileSize = 1024 * 1024 * 10; // 10 MB
42
-
43
- const serverEndpoint = window.env?.serverEndpoint;
44
-
45
- // eslint-disable-next-line import/no-unresolved
46
- const UploaderComponent = /*#__PURE__*/lazy(() => import('@blocklet/uploader/react').then(res => ({
47
- default: res.Uploader
48
- })));
49
- const validateParams = (params, status, t) => {
50
- const errors = [];
51
- if (!params.blockletTitle) {
52
- errors.push({
53
- param: 'blockletTitle',
54
- message: t('blocklet.publish.errorTip.noTitle')
55
- });
56
- }
57
- if (!params.blockletVersion) {
58
- errors.push({
59
- param: 'blockletVersion',
60
- message: t('blocklet.publish.errorTip.noVersion')
61
- });
62
- } else if (!semver.valid(params.blockletVersion)) {
63
- errors.push({
64
- param: 'blockletVersion',
65
- message: 'Invalid Blocklet Version'
66
- });
67
- }
68
- if (status === PROJECT.RELEASE_STATUS.published) {
69
- if (!params.blockletDescription) {
70
- errors.push({
71
- param: 'blockletDescription',
72
- message: t('blocklet.publish.errorTip.noDescription')
73
- });
74
- }
75
- if (!params.note) {
76
- errors.push({
77
- param: 'note',
78
- message: t('blocklet.publish.errorTip.noNote')
79
- });
80
- }
81
- }
82
- return errors.length ? errors : null;
83
- };
84
- const addComponentTabs = ({
85
- tabs,
86
- blocklet,
87
- ancestors = []
88
- }) => {
89
- const key = blocklet.meta.did;
90
- tabs.push({
91
- label: /*#__PURE__*/_jsxs(Box, {
92
- display: "flex",
93
- alignItems: "center",
94
- justifyContent: "flex-start",
95
- children: [/*#__PURE__*/_jsx(BlockletBundleAvatar, {
96
- size: 24,
97
- blocklet: blocklet,
98
- ancestors: ancestors
99
- }), /*#__PURE__*/_jsx(Box, {
100
- ml: "4px",
101
- className: "text",
102
- children: /*#__PURE__*/_jsx(Box, {
103
- children: blocklet.meta.title
104
- })
105
- })]
106
- }, key),
107
- value: key
108
- });
109
- };
110
- const pickParams = (release, app) => {
111
- const params = pick(release, ['blockletVersion', 'blockletTitle', 'blockletDescription', 'blockletLogo', 'blockletIntroduction', 'blockletScreenshots', 'blockletComponents', 'publishedStoreIds', 'connectedStores', 'note']);
112
- params.blockletScreenshots ||= [];
113
- params.publishedStoreIds ||= [];
114
- params.connectedStores ||= [];
115
- if (!params.blockletComponents) {
116
- params.blockletComponents = (app.children || []).map(x => ({
117
- did: x.meta.did,
118
- included: false,
119
- required: false
120
- }));
121
- } else {
122
- params.blockletComponents = params.blockletComponents.map(x => ({
123
- ...x,
124
- included: true
125
- }));
126
- }
127
- return params;
128
- };
129
- export default function CreateRelease({
130
- ...rest
131
- }) {
132
- const navigate = useNavigate();
133
- const {
134
- projectId,
135
- releaseId: inputReleaseId,
136
- componentDid = ''
137
- } = useParams();
138
- const {
139
- t,
140
- locale
141
- } = useLocaleContext();
142
- const {
143
- api: sessionApi
144
- } = useSessionContext();
145
- const {
146
- blocklet
147
- } = useBlockletContext();
148
- const [params, setParams] = useSetState(null);
149
- const [paramsErrTip, setParamsErrTip] = useState({});
150
- const [loading, setLoading] = useState(false);
151
- const [createLoading, setCreateLoading] = useState(false);
152
- const [release, setRelease] = useState(null);
153
- const {
154
- api,
155
- ws: {
156
- useSubscription
157
- }
158
- } = useNodeContext();
159
- const uploaderLogoRef = useRef(null);
160
- const uploaderScreenshotRef = useRef(null);
161
- const [installResourceTip, setInstallResourceTip] = useState();
162
- const [openConnect, setOpenConnect] = useState(false);
163
- const [showStoreDialog, setShowStoreDialog] = useState(false);
164
- const releaseId = inputReleaseId === 'create' ? '' : inputReleaseId;
165
- const mode = inputReleaseId === 'create' ? 'create' : 'edit';
166
- const projectType = useMemo(() => params?.blockletComponents?.some(x => x.included) ? 'pack' : 'resource', [params?.blockletComponents]);
167
- const tabs = [];
168
- const resourceComponents = (blocklet?.children || []).filter(x => x.meta.resource?.exportApi).filter(x => !componentDid || x.meta.did === componentDid);
169
- resourceComponents.forEach(item => {
170
- addComponentTabs({
171
- tabs,
172
- blocklet: item,
173
- t,
174
- ancestors: [blocklet]
175
- });
176
- });
177
- const [tab, setTab] = useState(tabs[0]?.value);
178
- const isPublished = release?.status === 'published';
179
- const readOnly = isPublished;
180
- const getProject = () => {
181
- if (projectId === UNOWNED_DID) {
182
- setParams({
183
- blockletVersion: '1.0.0',
184
- blockletTitle: ''
185
- });
186
- return;
187
- }
188
- if (!projectId) {
189
- Toast.error(t('blocklet.publish.errorTip.noDid'));
190
- return;
191
- }
192
- api.getProject({
193
- input: {
194
- did: blocklet.meta.did,
195
- projectId
196
- }
197
- }).then(res => {
198
- setLoading(false);
199
- const data = res.project || {};
200
- if (!data.blockletVersion) {
201
- data.blockletVersion = '1.0.0';
202
- } else if (mode === 'create' && semver.valid(data.blockletVersion)) {
203
- data.blockletVersion = semver.inc(data.blockletVersion, 'patch');
204
- }
205
- const theParams = pickParams(data, blocklet);
206
- if (theParams.blockletTitle === projectId.slice(0, 8)) {
207
- theParams.blockletTitle = '';
208
- }
209
- setParams(theParams);
210
- }).catch(err => {
211
- setLoading(false);
212
- Toast.error(formatError(err));
213
- });
214
- };
215
- const getRelease = () => {
216
- api.getRelease({
217
- input: {
218
- did: blocklet.meta.did,
219
- projectId,
220
- releaseId
221
- }
222
- }).then(res => {
223
- setLoading(false);
224
- // setParams(pickParams(res?.release, blocklet));
225
- setRelease(res?.release);
226
- }).catch(err => {
227
- setLoading(false);
228
- Toast.error(formatError(err));
229
- });
230
- };
231
- const getData = useCallback(() => {
232
- if (mode === 'edit') {
233
- if (!releaseId) {
234
- Toast.error('Empty release id');
235
- return;
236
- }
237
- getRelease();
238
- }
239
- getProject();
240
- // eslint-disable-next-line react-hooks/exhaustive-deps
241
- }, [mode, releaseId]);
242
- const onRelease = status => {
243
- if (!projectId || projectId === UNOWNED_DID) {
244
- Toast.error(t('blocklet.publish.errorTip.noDid'));
245
- return;
246
- }
247
- const errors = validateParams(params, status, t);
248
- if (errors) {
249
- Toast.error(errors.map(x => x.message).join('; '));
250
- setParamsErrTip(errors.reduce((acc, x) => ({
251
- ...acc,
252
- [x.param]: x.message
253
- }), {}));
254
- return;
255
- }
256
- const _params = {
257
- ...params
258
- };
259
- _params.blockletVersion = semver.valid(_params.blockletVersion);
260
- if (!_params.blockletVersion) {
261
- Toast.error('Invalid Blocklet Version');
262
- setParamsErrTip({
263
- blockletVersion: 'Invalid Blocklet Version'
264
- });
265
- return;
266
- }
267
- _params.blockletTitle = (_params.blockletTitle || '').trim();
268
- _params.blockletDescription = (_params.blockletDescription || '').trim();
269
- _params.blockletIntroduction = (_params.blockletIntroduction || '').trim();
270
- _params.note = (_params.note || '').trim();
271
- _params.blockletComponents = (_params.blockletComponents || []).filter(x => x.included).map(x => pick(x, ['did', 'required'])).map(JSON.stringify);
272
- setCreateLoading(status);
273
- setLoading(true);
274
- api.createRelease({
275
- input: {
276
- ..._params,
277
- did: blocklet.meta.did,
278
- projectId,
279
- releaseId,
280
- status
281
- }
282
- }).then(res => {
283
- setCreateLoading(false);
284
- setLoading(false);
285
- if (status === 'draft') {
286
- Toast.success(t('blocklet.publish.saveDraftSuccess'));
287
- } else {
288
- Toast.success(t('blocklet.publish.createReleaseSuccess'));
289
- }
290
- if (mode === 'create') {
291
- const id = res?.release?.id;
292
- navigate(`../${projectId}/${id}`, {
293
- replace: true
294
- });
295
- } else {
296
- getRelease();
297
- }
298
- }).catch(err => {
299
- setCreateLoading(false);
300
- setLoading(false);
301
- const msg = formatError(err);
302
- Toast.error(msg);
303
- if (/resource.*empty/.test(msg)) {
304
- setParamsErrTip({
305
- blockletResource: msg
306
- });
307
- }
308
- });
309
- };
310
- const handleDidConnectShow = e => {
311
- e.preventDefault();
312
- e.stopPropagation();
313
- if (!params.blockletTitle) {
314
- setParamsErrTip({
315
- blockletTitle: t('blocklet.publish.errorTip.noTitle')
316
- });
317
- Toast.error(t('blocklet.publish.errorTip.noTitle'));
318
- return;
319
- }
320
- if (!projectId || projectId === UNOWNED_DID) {
321
- setOpenConnect(true);
322
- }
323
- };
324
- const handleDidConnectClose = () => {
325
- setOpenConnect(false);
326
- };
327
- const handleChangeSelectedComponents = data => {
328
- setParams({
329
- blockletComponents: data
330
- });
331
- };
332
- const handleCreateBlockletDidError = err => {
333
- Toast.error(err.message);
334
- setOpenConnect(false);
335
- };
336
- const handleCreate = nextProjectDid => {
337
- if (!nextProjectDid) {
338
- Toast.error(t('blocklet.publish.errorTip.noDid'));
339
- return;
340
- }
341
- setLoading(true);
342
- api.createProject({
343
- input: {
344
- did: blocklet.meta.did,
345
- blockletTitle: params.blockletTitle || nextProjectDid.slice(0, 9),
346
- blockletDid: nextProjectDid,
347
- type: params.blockletComponents?.length > 0 ? 'pack' : 'resource',
348
- componentDid
349
- }
350
- }).then(() => {
351
- setLoading(false);
352
- navigate(window.location.pathname.replace(`${UNOWNED_DID}/create`, `${nextProjectDid}/create`), {
353
- replace: true
354
- });
355
- }).catch(err => {
356
- setLoading(false);
357
- Toast.error(err.message);
358
- });
359
- };
360
- const handleCreateBlockletDidSuccess = result => {
361
- const did = result?.blockletWallet?.address;
362
- if (!did) {
363
- Toast.error('Empty Blocklet DID');
364
- } else {
365
- handleCreate(did);
366
- }
367
- setOpenConnect(false);
368
- };
369
- useEffect(() => {
370
- getData();
371
- }, [getData]);
372
- useSubscription(EVENTS.NOTIFICATION_BLOCKLET_CREATE, notification => {
373
- if (notification?.meta?.eventType === STUDIO_CONNECTED_STORE) {
374
- getData();
375
- }
376
- }, [getData]);
377
- if (!params && loading) {
378
- return /*#__PURE__*/_jsx(EmptySpinner, {});
379
- }
380
- if (!params) {
381
- return null;
382
- }
383
- const connect = openConnect ? /*#__PURE__*/_jsx(DidConnect, {
384
- open: true,
385
- popup: true,
386
- onClose: handleDidConnectClose,
387
- action: "gen-blocklet-key-pair",
388
- locale: locale,
389
- checkFn: sessionApi.get,
390
- saveConnect: false,
391
- forceConnected: false,
392
- checkTimeout: 5 * 60 * 1000,
393
- onSuccess: handleCreateBlockletDidSuccess,
394
- onError: handleCreateBlockletDidError,
395
- extraParams: {
396
- did: blocklet.meta.did
397
- },
398
- messages: {
399
- title: t('blocklet.publish.connect.title'),
400
- scan: t('blocklet.publish.connect.scan'),
401
- confirm: t('blocklet.publish.connect.confirm'),
402
- success: t('blocklet.publish.connect.success')
403
- }
404
- }) : null;
405
- const uploadLogoPrefix = `${WELLKNOWN_SERVICE_PATH_PREFIX}/api/project/${blocklet.meta.did}/${projectId}/logo/upload`;
406
- const uploadScreenshotPrefix = `${WELLKNOWN_SERVICE_PATH_PREFIX}/api/project/${blocklet.meta.did}/${projectId}/screenshot/upload`;
407
- const logoUrl = params?.blockletLogo ? `${uploadLogoPrefix}/${params.blockletLogo}` : `${WELLKNOWN_SERVICE_PATH_PREFIX}/static/images/logo.png`;
408
- const screenshotUrls = (params?.blockletScreenshots || []).filter(Boolean).map(x => `${uploadScreenshotPrefix}/${x}`);
409
- const item = resourceComponents.find(x => x.meta.did === tab);
410
- const resourceContent = item ? /*#__PURE__*/_jsx(Box, {
411
- children: /*#__PURE__*/_jsx(Resource, {
412
- error: paramsErrTip.blockletResource,
413
- app: blocklet,
414
- component: item,
415
- projectId: projectId === UNOWNED_DID ? '' : projectId,
416
- release: {
417
- ...release,
418
- id: releaseId
419
- },
420
- onSave: selected => {
421
- if (selected.length) {
422
- setParamsErrTip({
423
- blockletResource: ''
424
- });
425
- }
426
- }
427
- })
428
- }) : /*#__PURE__*/_jsx(Box, {
429
- display: "flex",
430
- mt: -3,
431
- children: /*#__PURE__*/_jsx(Empty, {
432
- children: t('common.empty')
433
- })
434
- });
435
- const onTabChange = x => {
436
- setTab(x);
437
- };
438
- let installButton = null;
439
- if (isPublished && serverEndpoint) {
440
- const blockletMetaUrl = joinUrl(serverEndpoint, `/api/project/${blocklet.meta.did}/${projectId}/${releaseId}/release/blocklet.json`);
441
- if (projectType === 'pack') {
442
- const url = new URL(serverEndpoint);
443
- url.pathname = joinUrl(url.pathname, '/launch-blocklet/agreement');
444
- url.searchParams.set('blocklet_meta_url', blockletMetaUrl);
445
- installButton = /*#__PURE__*/_jsx(Button, {
446
- variant: "outlined",
447
- style: {
448
- marginRight: 8
449
- },
450
- children: /*#__PURE__*/_jsx("a", {
451
- href: url.href,
452
- target: "_blank",
453
- rel: "noreferrer",
454
- children: t('common.install')
455
- })
456
- });
457
- } else {
458
- installButton = /*#__PURE__*/_jsxs(_Fragment, {
459
- children: [/*#__PURE__*/_jsx(Button, {
460
- variant: "outlined",
461
- style: {
462
- marginRight: 8
463
- },
464
- onClick: () => setInstallResourceTip(blockletMetaUrl),
465
- children: t('blocklet.publish.copyInstallUrl')
466
- }), /*#__PURE__*/_jsx(MaterialDialog, {
467
- fullWidth: true,
468
- maxWidth: "sm",
469
- open: installResourceTip,
470
- onClose: () => setInstallResourceTip(''),
471
- children: /*#__PURE__*/_jsxs(Box, {
472
- sx: {
473
- py: 5,
474
- px: 4,
475
- wordBreak: 'break-all'
476
- },
477
- children: [/*#__PURE__*/_jsx(Typography, {
478
- variant: "h6",
479
- sx: {
480
- mb: 2
481
- },
482
- children: t('blocklet.publish.installResourceTip')
483
- }), /*#__PURE__*/_jsx(ClickToCopy, {
484
- children: installResourceTip
485
- }), /*#__PURE__*/_jsxs(Typography, {
486
- sx: {
487
- mt: 2
488
- },
489
- children: [t('blocklet.publish.installResourceTip2'), /*#__PURE__*/_jsx("a", {
490
- style: {
491
- marginLeft: 4
492
- },
493
- href: "https://www.arcblock.io/docs/blocklet-developer/R3weqCy7WPI8ggudt0C2alWv",
494
- target: "_blank",
495
- rel: "noreferrer",
496
- children: t('blocklet.publish.installResourceHelp')
497
- })]
498
- })]
499
- })
500
- })]
501
- });
502
- }
503
- }
504
- return /*#__PURE__*/_jsxs(Main, {
505
- ...rest,
506
- children: [connect, /*#__PURE__*/_jsxs(Box, {
507
- className: "sticky-header",
508
- children: [/*#__PURE__*/_jsxs(Breadcrumbs, {
509
- className: "breadcrumbs",
510
- "aria-label": "breadcrumb",
511
- children: [/*#__PURE__*/_jsx(Link, {
512
- to: "../",
513
- children: t('common.blockletStudio')
514
- }), /*#__PURE__*/_jsx(Link, {
515
- to: `../${projectId}`,
516
- children: params?.blockletTitle || 'Blocklet'
517
- }), /*#__PURE__*/_jsx(Typography, {
518
- color: "text.primary",
519
- children: mode === 'create' ? t('common.create') : params?.blockletVersion || t('common.edit')
520
- })]
521
- }), /*#__PURE__*/_jsxs(Box, {
522
- display: "flex",
523
- children: [!isPublished && /*#__PURE__*/_jsxs(_Fragment, {
524
- children: [/*#__PURE__*/_jsxs(Button, {
525
- variant: "outlined",
526
- disabled: loading || createLoading,
527
- onClick: () => onRelease(PROJECT.RELEASE_STATUS.draft),
528
- style: {
529
- marginRight: 12
530
- },
531
- children: [createLoading === PROJECT.RELEASE_STATUS.draft && /*#__PURE__*/_jsx(Spinner, {
532
- size: 14,
533
- sx: {
534
- mr: 0.5
535
- }
536
- }), t('blocklet.publish.saveDraft')]
537
- }), /*#__PURE__*/_jsxs(Button, {
538
- variant: "contained",
539
- disabled: loading || createLoading,
540
- style: {
541
- marginRight: 12
542
- },
543
- onClick: () => onRelease(PROJECT.RELEASE_STATUS.published),
544
- children: [createLoading === PROJECT.RELEASE_STATUS.published && /*#__PURE__*/_jsx(Spinner, {
545
- size: 14,
546
- sx: {
547
- mr: 0.5
548
- },
549
- color: "inherit"
550
- }), t('common.release')]
551
- })]
552
- }), isPublished && /*#__PURE__*/_jsxs(_Fragment, {
553
- children: [installButton, /*#__PURE__*/_jsx(Button, {
554
- variant: "outlined",
555
- style: {
556
- marginRight: 12
557
- },
558
- children: /*#__PURE__*/_jsx("a", {
559
- href: joinUrl(`${WELLKNOWN_SERVICE_PATH_PREFIX}/api/project/${blocklet.meta.did}/${projectId}/${releaseId}/download/${(release.files || [])[0]}`),
560
- children: t('common.download')
561
- })
562
- }), /*#__PURE__*/_jsxs(Button, {
563
- variant: "contained",
564
- onClick: () => setShowStoreDialog(true),
565
- children: [/*#__PURE__*/_jsx(CloudUploadRoundedIcon, {
566
- style: {
567
- fontSize: '1.3em',
568
- marginRight: 4
569
- }
570
- }), t('common.uploadToStore')]
571
- })]
572
- })]
573
- })]
574
- }), /*#__PURE__*/_jsxs(Box, {
575
- children: [/*#__PURE__*/_jsx(Box, {
576
- pt: 5
577
- }), /*#__PURE__*/_jsxs(Box, {
578
- display: "flex",
579
- className: "section",
580
- children: [/*#__PURE__*/_jsx(Typography, {
581
- variant: "h3",
582
- className: "left",
583
- children: t('blocklet.publish.productTitle')
584
- }), /*#__PURE__*/_jsxs(Box, {
585
- sx: {
586
- flex: 1
587
- },
588
- children: [/*#__PURE__*/_jsx(TextField, {
589
- label: `Blocklet ${t('common.title')}`,
590
- placeholder: `Blocklet ${t('common.title')}`,
591
- InputProps: {
592
- 'data-cy': 'blocklet-title',
593
- readOnly
594
- },
595
- autoComplete: "off",
596
- variant: "outlined",
597
- fullWidth: true,
598
- required: true,
599
- value: params.blockletTitle || '',
600
- onChange: e => {
601
- setParamsErrTip({
602
- blockletTitle: ''
603
- });
604
- setParams({
605
- blockletTitle: e.target.value
606
- });
607
- },
608
- error: !!paramsErrTip.blockletTitle,
609
- helperText: paramsErrTip.blockletTitle || ''
610
- }), /*#__PURE__*/_jsx(TextField, {
611
- required: true,
612
- label: "Blocklet DID",
613
- fullWidth: true,
614
- readonly: true,
615
- disabled: projectId !== UNOWNED_DID,
616
- autoComplete: "off",
617
- variant: "outlined",
618
- onClick: handleDidConnectShow,
619
- onInput: handleDidConnectShow,
620
- InputProps: {
621
- 'data-cy': 'export-blocklet-did',
622
- endAdornment: projectId === UNOWNED_DID && /*#__PURE__*/_jsx(InputAdornment, {
623
- position: "end",
624
- children: /*#__PURE__*/_jsx(Button, {
625
- onClick: handleDidConnectShow,
626
- children: t('common.create')
627
- })
628
- })
629
- },
630
- helperText: "",
631
- value: projectId === UNOWNED_DID ? '' : projectId,
632
- sx: {
633
- mt: 3
634
- }
635
- }), /*#__PURE__*/_jsx(TextField, {
636
- label: `Blocklet ${t('common.description')}`,
637
- placeholder: `Blocklet ${t('common.description')}`,
638
- InputProps: {
639
- 'data-cy': 'blocklet-description',
640
- readOnly
641
- },
642
- required: true,
643
- autoComplete: "off",
644
- variant: "outlined",
645
- fullWidth: true,
646
- value: params.blockletDescription || '',
647
- onChange: e => {
648
- setParamsErrTip({
649
- blockletDescription: ''
650
- });
651
- setParams({
652
- blockletDescription: e.target.value
653
- });
654
- },
655
- error: !!paramsErrTip.blockletDescription,
656
- helperText: paramsErrTip.blockletDescription || '',
657
- sx: {
658
- mt: 3
659
- }
660
- }), /*#__PURE__*/_jsx(TextField, {
661
- label: `Blocklet ${t('common.introduction')}`,
662
- placeholder: `Blocklet ${t('common.introduction')}`,
663
- InputProps: {
664
- 'data-cy': 'export-blocklet-introduction',
665
- readOnly,
666
- endAdornment: /*#__PURE__*/_jsxs(InputAdornment, {
667
- position: "end",
668
- children: [params?.blockletIntroduction?.length || 0, " / ", PROJECT.MAX_INTRO_LENGTH]
669
- })
670
- },
671
- autoComplete: "off",
672
- variant: "outlined",
673
- fullWidth: true,
674
- multiline: true,
675
- minRows: 4,
676
- value: params.blockletIntroduction || '',
677
- onChange: e => {
678
- setParamsErrTip({
679
- blockletIntroduction: ''
680
- });
681
- setParams({
682
- blockletIntroduction: e.target.value.slice(0, PROJECT.MAX_INTRO_LENGTH)
683
- });
684
- },
685
- error: !!paramsErrTip.blockletIntroduction,
686
- helperText: paramsErrTip.blockletIntroduction || '',
687
- sx: {
688
- mt: 3
689
- }
690
- })]
691
- })]
692
- }), /*#__PURE__*/_jsxs(Box, {
693
- display: "flex",
694
- mt: 3,
695
- className: "section",
696
- children: [/*#__PURE__*/_jsx(Typography, {
697
- variant: "h3",
698
- className: "left",
699
- children: t('blocklet.publish.versionTitle')
700
- }), /*#__PURE__*/_jsxs(Box, {
701
- sx: {
702
- flex: 1
703
- },
704
- children: [/*#__PURE__*/_jsx(TextField, {
705
- required: true,
706
- label: `Blocklet ${t('common.version')}`,
707
- placeholder: `Blocklet ${t('common.version')}`,
708
- InputProps: {
709
- 'data-cy': 'blocklet-version',
710
- readOnly
711
- },
712
- autoComplete: "off",
713
- variant: "outlined",
714
- fullWidth: true,
715
- value: params.blockletVersion,
716
- onChange: e => {
717
- setParamsErrTip({
718
- blockletVersion: ''
719
- });
720
- setParams({
721
- blockletVersion: e.target.value
722
- });
723
- },
724
- error: !!paramsErrTip.blockletVersion,
725
- helperText: paramsErrTip.blockletVersion || ''
726
- }), /*#__PURE__*/_jsx(TextField, {
727
- label: t('blocklet.publish.releaseNote'),
728
- autoComplete: "off",
729
- variant: "outlined",
730
- InputProps: {
731
- 'data-cy': 'release-note',
732
- readOnly,
733
- endAdornment: /*#__PURE__*/_jsxs(InputAdornment, {
734
- position: "end",
735
- children: [params?.note?.length || 0, " / ", PROJECT.MAX_NOTE_LENGTH]
736
- })
737
- },
738
- fullWidth: true,
739
- multiline: true,
740
- minRows: 4,
741
- required: true,
742
- value: params.note,
743
- onChange: e => {
744
- setParamsErrTip({
745
- note: ''
746
- });
747
- setParams({
748
- note: e.target.value.slice(0, PROJECT.MAX_NOTE_LENGTH)
749
- });
750
- },
751
- error: !!paramsErrTip.note,
752
- helperText: paramsErrTip.note || '',
753
- sx: {
754
- mt: 3
755
- }
756
- })]
757
- })]
758
- }), /*#__PURE__*/_jsxs(Box, {
759
- display: "flex",
760
- mt: 3,
761
- className: "section full-width",
762
- children: [/*#__PURE__*/_jsx(Typography, {
763
- variant: "h3",
764
- className: "left",
765
- children: t('blocklet.publish.imgTitle')
766
- }), /*#__PURE__*/_jsxs(Box, {
767
- sx: {
768
- flex: 1
769
- },
770
- children: [/*#__PURE__*/_jsxs(Box, {
771
- display: "flex",
772
- children: [/*#__PURE__*/_jsx(Typography, {
773
- variant: "subtitle1",
774
- sx: {
775
- mr: 2
776
- },
777
- children: t('common.logo')
778
- }), /*#__PURE__*/_jsx(Box, {
779
- sx: {
780
- flex: 1,
781
- cursor: readOnly ? 'default' : 'pointer'
782
- },
783
- children: /*#__PURE__*/_jsx(Avatar, {
784
- variant: "square",
785
- sx: {
786
- width: 80,
787
- height: 80
788
- },
789
- alt: "Blocklet Logo",
790
- src: logoUrl,
791
- onClick: () => !readOnly && uploaderLogoRef.current.open()
792
- })
793
- })]
794
- }), /*#__PURE__*/_jsxs(Box, {
795
- display: "flex",
796
- mt: 3,
797
- children: [/*#__PURE__*/_jsx(Typography, {
798
- variant: "subtitle1",
799
- sx: {
800
- mr: 2
801
- },
802
- children: t('common.screenshot')
803
- }), /*#__PURE__*/_jsxs(Box, {
804
- display: "flex",
805
- alignItems: "center",
806
- sx: {
807
- flex: 1,
808
- flexWrap: 'wrap'
809
- },
810
- children: [screenshotUrls.map((x, index) => /*#__PURE__*/_jsxs(Box, {
811
- className: "screenshot",
812
- children: [/*#__PURE__*/_jsx("img", {
813
- alt: "screenshot",
814
- src: x
815
- }), !readOnly && /*#__PURE__*/_jsx(IconButton, {
816
- className: "action",
817
- onClick: () => {
818
- const arr = [...params.blockletScreenshots];
819
- arr.splice(index, 1);
820
- setParams({
821
- blockletScreenshots: arr
822
- });
823
- },
824
- children: /*#__PURE__*/_jsx(DeleteOutlineIcon, {})
825
- })]
826
- })), screenshotUrls.length < 5 && /*#__PURE__*/_jsx(Box, {
827
- sx: {
828
- width: 200,
829
- height: 140,
830
- background: '#eee',
831
- cursor: readOnly ? 'default' : 'pointer',
832
- color: '#999',
833
- mb: 2
834
- },
835
- display: "flex",
836
- justifyContent: "center",
837
- alignItems: "center",
838
- fontSize: 40,
839
- onClick: () => !readOnly && uploaderScreenshotRef.current.open(),
840
- children: "+"
841
- })]
842
- })]
843
- })]
844
- }), /*#__PURE__*/_jsx(UploaderComponent, {
845
- id: "\u200Buploader-logo",
846
- ref: uploaderLogoRef,
847
- popup: true,
848
- onUploadFinish: result => {
849
- setParams({
850
- blockletLogo: result.data.filename
851
- });
852
- uploaderLogoRef.current.close();
853
- },
854
- plugins: ['ImageEditor'],
855
- installerProps: {
856
- disabled: true
857
- },
858
- apiPathProps: {
859
- uploader: uploadLogoPrefix,
860
- disableMediaKitPrefix: true
861
- },
862
- coreProps: {
863
- restrictions: {
864
- allowedFileTypes,
865
- maxFileSize,
866
- maxNumberOfFiles: 1
867
- }
868
- }
869
- }, "uploader-logo"), /*#__PURE__*/_jsx(UploaderComponent, {
870
- id: "\u200Buploader-screenshot",
871
- ref: uploaderScreenshotRef,
872
- popup: true,
873
- onUploadFinish: result => {
874
- const blockletScreenshots = params.blockletScreenshots || [];
875
- blockletScreenshots.push(result.data?.filename);
876
- setParams({
877
- blockletScreenshots
878
- });
879
- uploaderScreenshotRef.current.close();
880
- },
881
- plugins: ['ImageEditor'],
882
- apiPathProps: {
883
- uploader: uploadScreenshotPrefix,
884
- disableMediaKitPrefix: true
885
- },
886
- coreProps: {
887
- restrictions: {
888
- allowedFileTypes,
889
- maxFileSize,
890
- maxNumberOfFiles: 5 - screenshotUrls.length
891
- }
892
- }
893
- }, "uploader-screenshot")]
894
- }), /*#__PURE__*/_jsxs(Box, {
895
- display: "flex",
896
- mt: 3,
897
- className: "section full-width",
898
- children: [/*#__PURE__*/_jsx(Box, {
899
- className: "left",
900
- children: /*#__PURE__*/_jsx(Typography, {
901
- variant: "h3",
902
- children: t('blocklet.publish.resourceTitle')
903
- })
904
- }), /*#__PURE__*/_jsxs(Box, {
905
- sx: {
906
- flex: 1
907
- },
908
- children: [/*#__PURE__*/_jsx(Tabs, {
909
- tabs: tabs,
910
- current: tab,
911
- onChange: onTabChange,
912
- sx: {
913
- ml: -2,
914
- mt: -1.5
915
- }
916
- }), /*#__PURE__*/_jsx(Box, {
917
- children: resourceContent
918
- })]
919
- })]
920
- }), /*#__PURE__*/_jsxs(Box, {
921
- display: "flex",
922
- mt: 3,
923
- className: "section full-width",
924
- children: [/*#__PURE__*/_jsx(Box, {
925
- className: "left",
926
- children: /*#__PURE__*/_jsx(Typography, {
927
- variant: "h3",
928
- children: t('common.components')
929
- })
930
- }), /*#__PURE__*/_jsx(Box, {
931
- sx: {
932
- flex: 1
933
- },
934
- children: /*#__PURE__*/_jsx(SelectComponents, {
935
- disabled: loading || readOnly,
936
- app: blocklet,
937
- value: params.blockletComponents || [],
938
- onChange: handleChangeSelectedComponents
939
- })
940
- })]
941
- }), /*#__PURE__*/_jsx(Alert, {
942
- type: "info",
943
- style: {
944
- width: '100%'
945
- },
946
- children: /*#__PURE__*/_jsx(Box, {
947
- display: "flex",
948
- alignItems: "center",
949
- rel: "noreferrer",
950
- children: projectType === 'pack' ? t('blocklet.publish.packTip') : t('blocklet.publish.resourceTip')
951
- })
952
- })]
953
- }), /*#__PURE__*/_jsx(Dialog, {
954
- title: t('common.connectToStore'),
955
- disableEscapeKeyDown: true,
956
- disablePortal: false,
957
- fullWidth: true,
958
- open: showStoreDialog,
959
- onClose: () => setShowStoreDialog(false),
960
- children: /*#__PURE__*/_jsx(ConnectStoreList, {
961
- projectType: projectType,
962
- blocklet: blocklet,
963
- releaseType: params.blockletComponents?.length > 0 ? 'pack' : 'resource',
964
- projectId: projectId,
965
- releaseId: releaseId,
966
- onPublish: getRelease,
967
- onDelete: getData,
968
- connectedStores: params.connectedStores,
969
- publishedStoreIds: release?.publishedStoreIds
970
- })
971
- })]
972
- });
973
- }
974
- CreateRelease.defaultProps = {};
975
- const Main = styled.div`
976
- .sticky-header {
977
- margin-top: -12px;
978
- padding: 12px 0;
979
- position: sticky;
980
- top: 0;
981
- z-index: 99;
982
- display: flex;
983
- align-items: center;
984
- justify-content: space-between;
985
- background-color: #fff;
986
- padding-bottom: 12px;
987
- border-bottom: ${({
988
- theme
989
- }) => `1px solid ${theme.palette.divider}`};
990
- }
991
- .screenshot {
992
- margin-bottom: 16px;
993
- max-width: 200px;
994
- max-height: 140px;
995
- width: 200px;
996
- height: 140px;
997
- overflow: hidden;
998
- display: flex;
999
- align-items: center;
1000
- justify-content: center;
1001
- background-color: #eee;
1002
- margin-right: 16px;
1003
- position: relative;
1004
- .action {
1005
- visibility: hidden;
1006
- position: absolute;
1007
- top: 0px;
1008
- right: 0px;
1009
- background-color: rgba(0, 0, 0, 0.2);
1010
- color: rgba(255, 255, 255, 0.8);
1011
- }
1012
- &:hover .action {
1013
- visibility: visible;
1014
- }
1015
- }
1016
- .screenshot img {
1017
- width: 100%; /* 图像宽度填充容器 */
1018
- height: auto; /* 图像高度自适应 */
1019
- }
1020
- .section {
1021
- max-width: 800px;
1022
- &.full-width {
1023
- max-width: 100%;
1024
- }
1025
- .MuiTypography-h3 {
1026
- font-size: 1.1rem;
1027
- font-weight: 700;
1028
- }
1029
- .left {
1030
- flex-shrink: 0;
1031
- width: 140px;
1032
- }
1033
- .MuiTabs-indicator {
1034
- display: none;
1035
- }
1036
- .MuiTypography-subtitle1 {
1037
- width: 120px;
1038
- font-weight: 700;
1039
- font-size: 1rem;
1040
- ${({
1041
- theme
1042
- }) => theme.breakpoints.down('sm')} {
1043
- width: 80px;
1044
- }
1045
- }
1046
- }
1047
- .MuiButtonBase-root {
1048
- a {
1049
- color: inherit;
1050
- }
1051
- }
1052
- .MuiInputBase-multiline .MuiInputAdornment-positionEnd {
1053
- align-self: flex-end;
1054
- .MuiTypography-root {
1055
- font-size: 0.8rem;
1056
- }
1057
- font-size: 0.8rem;
1058
- }
1059
- `;