@abtnode/ux 1.16.26-beta-4831bf3f → 1.16.26-beta-5251ab18

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 (55) hide show
  1. package/es/blocklet/actions.js +74 -33
  2. package/es/blocklet/component/add-component-core.js +28 -29
  3. package/es/blocklet/component/select-store.js +9 -10
  4. package/es/blocklet/icons.js +3 -1
  5. package/es/blocklet/publish/connect-store-list.js +8 -4
  6. package/es/blocklet/publish/project-list.js +56 -18
  7. package/es/blocklet/publish/release-list.js +0 -1
  8. package/es/locales/ar.js +11 -2
  9. package/es/locales/de.js +12 -3
  10. package/es/locales/en.js +11 -2
  11. package/es/locales/es.js +12 -3
  12. package/es/locales/fr.js +12 -3
  13. package/es/locales/hi.js +12 -3
  14. package/es/locales/i18n.db +0 -0
  15. package/es/locales/id.js +11 -2
  16. package/es/locales/ja.js +12 -3
  17. package/es/locales/ko.js +12 -3
  18. package/es/locales/pt.js +12 -3
  19. package/es/locales/ru.js +11 -2
  20. package/es/locales/th.js +11 -2
  21. package/es/locales/vi.js +11 -2
  22. package/es/locales/zh-tw.js +12 -3
  23. package/es/locales/zh.js +12 -3
  24. package/es/store/connect-actions.js +130 -0
  25. package/es/store/delete.js +8 -2
  26. package/es/store/item.js +5 -9
  27. package/es/util/join-url-keep-search.js +15 -0
  28. package/lib/blocklet/actions.js +82 -38
  29. package/lib/blocklet/component/add-component-core.js +27 -28
  30. package/lib/blocklet/component/select-store.js +9 -10
  31. package/lib/blocklet/icons.js +3 -1
  32. package/lib/blocklet/publish/connect-store-list.js +8 -4
  33. package/lib/blocklet/publish/project-list.js +56 -18
  34. package/lib/blocklet/publish/release-list.js +0 -1
  35. package/lib/locales/ar.js +11 -2
  36. package/lib/locales/de.js +12 -3
  37. package/lib/locales/en.js +11 -2
  38. package/lib/locales/es.js +12 -3
  39. package/lib/locales/fr.js +12 -3
  40. package/lib/locales/hi.js +12 -3
  41. package/lib/locales/i18n.db +0 -0
  42. package/lib/locales/id.js +11 -2
  43. package/lib/locales/ja.js +12 -3
  44. package/lib/locales/ko.js +12 -3
  45. package/lib/locales/pt.js +12 -3
  46. package/lib/locales/ru.js +11 -2
  47. package/lib/locales/th.js +11 -2
  48. package/lib/locales/vi.js +11 -2
  49. package/lib/locales/zh-tw.js +12 -3
  50. package/lib/locales/zh.js +12 -3
  51. package/lib/store/connect-actions.js +138 -0
  52. package/lib/store/delete.js +8 -2
  53. package/lib/store/item.js +5 -9
  54. package/lib/util/join-url-keep-search.js +22 -0
  55. package/package.json +7 -7
package/es/locales/fr.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Téléchargé',
354
354
  uploadToStore: 'Télécharger vers le magasin',
355
355
  upload: 'Télécharger',
356
- blockletStudio: 'Studio Blocklet'
356
+ blockletStudio: 'Studio Blocklet',
357
+ visitStore: 'Visiter le magasin',
358
+ reconnect: 'Reconnecter'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Externe',
@@ -663,7 +665,7 @@ export default {
663
665
  createBlocklet: 'Nouvelle blocklet',
664
666
  deleteBlockletTip: 'Le bloclet ne peut pas être récupéré après sa suppression, veuillez confirmer',
665
667
  componentNotRunning: "Le composant {name} ne fonctionne pas, veuillez le démarrer d'abord",
666
- releaseEmptyTip: "Il n'y a aucune sortie ici",
668
+ releaseEmptyTip: "Il n'y a pas de sorties ici",
667
669
  createReleaseTip: "Vous pouvez créer une version du blocklet, ainsi que des notes de version et des ressources, pour que d'autres personnes puissent les utiliser.",
668
670
  createRelease: 'Nouvelle version',
669
671
  deleteReleaseTip: 'La version ne peut pas être récupérée après la suppression',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet publié avec succès dans le magasin',
701
703
  connectStoreSuccess: 'Connexion réussie au Blocklet Store',
702
704
  uploadToStoreSuccess: 'Blocklet téléchargé avec succès dans le Store, vous devez le publier dans le Store',
703
- viewLastRelease: 'Voir la dernière version'
705
+ viewLastRelease: 'Voir la dernière version',
706
+ reconnectStoreTip: 'Après la reconnexion, un nouveau développeur sera lié. Êtes-vous sûr de vouloir vous reconnecter ?',
707
+ deleteProject: {
708
+ title: 'Supprimez {name}',
709
+ scan: 'Scannez le code QR ci-dessous pour supprimer {name}',
710
+ confirm: "Veuillez confirmer l'utilisation du portefeuille DID",
711
+ success: 'Le projet Blocklet a été supprimé, veuillez poursuivre votre opération.'
712
+ }
704
713
  },
705
714
  titleValidationError: "La longueur du titre doit être d'au moins 3 caractères",
706
715
  descriptionValidationError: 'La longueur de la description doit être comprise entre 3 et 160 caractères'
package/es/locales/hi.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'अपलोड किया गया',
354
354
  uploadToStore: 'स्टोर में अपलोड करें',
355
355
  upload: 'अपलोड करें',
356
- blockletStudio: 'ब्लॉकलेट स्टूडियो'
356
+ blockletStudio: 'ब्लॉकलेट स्टूडियो',
357
+ visitStore: 'स्टोर को देखें',
358
+ reconnect: 'पुनः कनेक्ट करें'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'बाहरी',
@@ -663,7 +665,7 @@ export default {
663
665
  createBlocklet: 'नया ब्लॉकलेट',
664
666
  deleteBlockletTip: 'हटाने के बाद ब्लॉकलेट को पुनर्प्राप्त नहीं किया जा सकता है, कृपया पुष्टि करें',
665
667
  componentNotRunning: 'संघ {name} चल नहीं रहा है, कृपया पहले इसे शुरू करें',
666
- releaseEmptyTip: 'यहां कोई रिलीज़ नहीं है',
668
+ releaseEmptyTip: 'यहां कोई रिलीज़ नहीं हैं',
667
669
  createReleaseTip: 'आप ब्लॉकलेट का एक रिलीज़ बना सकते हैं, रिलीज़ नोट्स और संसाधनों के साथ, जिन्हें दूसरे लोगों का उपयोग कर सकते हैं।',
668
670
  createRelease: 'नई रिलीज़',
669
671
  deleteReleaseTip: 'हटाने के बाद रिलीज़ को पुनर्प्राप्त नहीं किया जा सकता है',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'सफलतापूर्वक स्टोर में ब्लॉकलेट प्रकाशित',
701
703
  connectStoreSuccess: 'ब्लॉकलेट स्टोर सफलतापूर्वक कनेक्ट हो गया',
702
704
  uploadToStoreSuccess: 'ब्लॉकलेट को स्टोर में सफलतापूर्वक अपलोड किया गया है, आपको इसे स्टोर में प्रकाशित करने की आवश्यकता है',
703
- viewLastRelease: 'अंतिम रिलीज़ देखें'
705
+ viewLastRelease: 'अंतिम रिलीज़ देखें',
706
+ reconnectStoreTip: 'पुनर्संयोजन करने के बाद, एक नया डेवलपर बाउंड हो जाएगा। क्या आप वाकई पुनः संयोजित होना चाहते हैं?',
707
+ deleteProject: {
708
+ title: '{name} को हटाएं',
709
+ scan: 'नीचे दिए गए क्यूआर कोड स्कैन करें और {name} को हटाएं',
710
+ confirm: 'कृपया डीआईडी वॉलेट का प्रयोग करके पुष्टि करें',
711
+ success: 'ब्लॉकलेट प्रोजेक्ट हटा दिया गया है, कृपया अपने आपरेशन को जारी रखें।'
712
+ }
704
713
  },
705
714
  titleValidationError: 'शीर्षक की लंबाई कम से कम 3 अक्षर होनी चाहिए',
706
715
  descriptionValidationError: 'विवरण की लंबाई 3 और 160 वर्णों के बीच होनी चाहिए'
Binary file
package/es/locales/id.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Diunggah',
354
354
  uploadToStore: 'Unggah ke Toko',
355
355
  upload: 'Unggah',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'Kunjungi Toko',
358
+ reconnect: 'Menghubungkan kembali'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Eksternal',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet berhasil dipublikasikan ke Store',
701
703
  connectStoreSuccess: 'Penyimpanan Blocklet berhasil terhubung',
702
704
  uploadToStoreSuccess: 'Blocklet berhasil diunggah ke Store, Anda perlu mempublikasikannya di Store',
703
- viewLastRelease: 'Tampilkan rilis terakhir'
705
+ viewLastRelease: 'Tampilkan rilis terakhir',
706
+ reconnectStoreTip: 'Setelah terhubung kembali, pengembang baru akan terikat. Apakah Anda yakin ingin terhubung kembali?',
707
+ deleteProject: {
708
+ title: 'Hapus {name}',
709
+ scan: 'Pindai kode QR di bawah ini untuk menghapus {name}',
710
+ confirm: 'Konfirmasi menggunakan Dompet DID',
711
+ success: 'Proyek Blocklet telah dihapus, silakan lanjutkan operasi anda'
712
+ }
704
713
  },
705
714
  titleValidationError: 'Panjang judul harus setidaknya 3 karakter',
706
715
  descriptionValidationError: 'Panjang deskripsi harus antara 3 dan 160 karakter.'
package/es/locales/ja.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'アップロードされました',
354
354
  uploadToStore: 'ストアにアップロード',
355
355
  upload: 'アップロード',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: '店を訪れる',
358
+ reconnect: '再接続する'
357
359
  },
358
360
  blocklet: {
359
361
  external: '外部',
@@ -663,7 +665,7 @@ export default {
663
665
  createBlocklet: '新しいブロックレット',
664
666
  deleteBlockletTip: 'ブロックを削除した後は復元できませんので、確認してください',
665
667
  componentNotRunning: 'コンポーネント{name}は実行されていません。先に開始してください。',
666
- releaseEmptyTip: 'ここにはリリースはありません',
668
+ releaseEmptyTip: 'ここにはリリースがありません',
667
669
  createReleaseTip: '他の人が使用できるように、リリースノートやリソースと共にブロックをリリースすることができます',
668
670
  createRelease: '新しいリリース',
669
671
  deleteReleaseTip: '削除後、リリースは復元できません',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'ブロックレットが正常にストアに公開されました',
701
703
  connectStoreSuccess: 'Blockletストアが正常に接続されました',
702
704
  uploadToStoreSuccess: 'ブロックレットがストアに正常にアップロードされました。ストアで公開する必要があります',
703
- viewLastRelease: '最新リリースを表示する'
705
+ viewLastRelease: '最新リリースを表示する',
706
+ reconnectStoreTip: '再接続後、新しい開発者がバインドされます。再接続しますか?',
707
+ deleteProject: {
708
+ title: '{name}を削除する',
709
+ scan: '{name}を削除するために、以下のQRコードをスキャンしてください',
710
+ confirm: 'DIDウォレットを使用して確認',
711
+ success: 'Blocklet プロジェクトが削除されました。操作を続行してください'
712
+ }
704
713
  },
705
714
  titleValidationError: 'タイトルの長さは最低3文字以上である必要があります',
706
715
  descriptionValidationError: '説明の長さは3から160文字の間でなければなりません'
package/es/locales/ko.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: '업로드되었습니다',
354
354
  uploadToStore: '스토어에 업로드',
355
355
  upload: '업로드',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: '가게 방문하기',
358
+ reconnect: '재연결'
357
359
  },
358
360
  blocklet: {
359
361
  external: '외부의',
@@ -663,7 +665,7 @@ export default {
663
665
  createBlocklet: '새로운 블록렛',
664
666
  deleteBlockletTip: '블록이 삭제된 후에는 복구할 수 없습니다. 확인해주세요',
665
667
  componentNotRunning: '구성요소 {name}이(가) 실행되지 않았습니다. 먼저 시작하세요.',
666
- releaseEmptyTip: '여기에는 릴리스가 없습니다',
668
+ releaseEmptyTip: '여기에는 출시 정보가 없습니다',
667
669
  createReleaseTip: '다른 사람들이 사용할 수 있도록 블록릿의 릴리스와 릴리스 노트 및 자원을 생성할 수 있습니다',
668
670
  createRelease: '새로운 릴리스',
669
671
  deleteReleaseTip: '삭제 후에는 복구할 수 없는 릴리스입니다',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'Store에 블록릿 성공적으로 발행됐습니다',
701
703
  connectStoreSuccess: '블록렛 스토어가 성공적으로 연결되었습니다',
702
704
  uploadToStoreSuccess: '블록렛이 성공적으로 스토어에 업로드되었습니다. 스토어에서 게시해야 합니다',
703
- viewLastRelease: '최신 릴리스 보기'
705
+ viewLastRelease: '최신 릴리스 보기',
706
+ reconnectStoreTip: '재연결 후에는 새로운 개발자가 연결됩니다. 재연결 하시겠습니까?',
707
+ deleteProject: {
708
+ title: '{name}을 삭제하세요',
709
+ scan: '{name}를 삭제하기 위해 아래의 QR 코드를 스캔하세요',
710
+ confirm: 'DID 지갑을 사용하여 확인하세요',
711
+ success: 'Blocklet 프로젝트가 삭제되었습니다. 작업을 계속하세요'
712
+ }
704
713
  },
705
714
  titleValidationError: '제목 길이는 최소 3자 이상이어야 합니다',
706
715
  descriptionValidationError: '설명 길이는 3에서 160자 사이여야 합니다'
package/es/locales/pt.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Carregado',
354
354
  uploadToStore: 'Enviar para a Loja',
355
355
  upload: 'Upload',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'Visite a loja',
358
+ reconnect: 'Reconectar'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Externo',
@@ -663,7 +665,7 @@ export default {
663
665
  createBlocklet: 'Novo bloco',
664
666
  deleteBlockletTip: 'O bloco não pode ser recuperado após a exclusão, por favor, confirme',
665
667
  componentNotRunning: 'O componente {name} não está sendo executado, por favor, inicie-o primeiro',
666
- releaseEmptyTip: 'Não há lançamentos aqui',
668
+ releaseEmptyTip: 'Não há nenhum lançamento aqui',
667
669
  createReleaseTip: 'Você pode criar um lançamento do blocklet, juntamente com notas de lançamento e recursos, para que outras pessoas possam usar',
668
670
  createRelease: 'Novo lançamento',
669
671
  deleteReleaseTip: 'A liberação não pode ser recuperada após exclusão',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet publicado na loja com sucesso',
701
703
  connectStoreSuccess: 'Loja de Blocos conectada com sucesso',
702
704
  uploadToStoreSuccess: 'Blocklet enviado para a Store com sucesso, você precisa publicá-lo na Store',
703
- viewLastRelease: 'Visualizar última versão'
705
+ viewLastRelease: 'Visualizar última versão',
706
+ reconnectStoreTip: 'Após reconectar, um novo desenvolvedor será vinculado. Você tem certeza de que deseja reconectar?',
707
+ deleteProject: {
708
+ title: 'Excluir {name}',
709
+ scan: 'Digitalize o código QR abaixo para excluir {name}',
710
+ confirm: 'Confirmar usando a Carteira DID',
711
+ success: 'O projeto Blocklet foi excluído, por favor, continue sua operação'
712
+ }
704
713
  },
705
714
  titleValidationError: 'O comprimento do título deve ter pelo menos 3 caracteres',
706
715
  descriptionValidationError: 'O comprimento da descrição deve estar entre 3 e 160 caracteres.'
package/es/locales/ru.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Загружено',
354
354
  uploadToStore: 'Загрузить в магазин',
355
355
  upload: 'Загрузить',
356
- blockletStudio: 'Студия Блоклет'
356
+ blockletStudio: 'Студия Блоклет',
357
+ visitStore: 'Посетите магазин',
358
+ reconnect: 'Восстановить соединение'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Внешний',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'Блоклет успешно опубликован в магазине',
701
703
  connectStoreSuccess: 'Успешное подключение к Blocklet Store',
702
704
  uploadToStoreSuccess: 'Блоклет успешно загружен в магазин, вам нужно опубликовать его в магазине',
703
- viewLastRelease: 'Просмотр последнего релиза'
705
+ viewLastRelease: 'Просмотр последнего релиза',
706
+ reconnectStoreTip: 'После переподключения будет назначен новый разработчик. Вы уверены, что хотите переподключиться?',
707
+ deleteProject: {
708
+ title: 'Удалить {name}',
709
+ scan: 'Сканируйте QR-код ниже, чтобы удалить {name}',
710
+ confirm: 'Подтвердите использование кошелька DID',
711
+ success: 'Проект Blocklet был удален, пожалуйста, продолжите вашу операцию.'
712
+ }
704
713
  },
705
714
  titleValidationError: 'Длина заголовка должна быть не менее 3 символов',
706
715
  descriptionValidationError: 'Длина описания должна быть от 3 до 160 символов'
package/es/locales/th.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'อัปโหลดแล้ว',
354
354
  uploadToStore: 'อัปโหลดไปยังร้านค้า',
355
355
  upload: 'อัปโหลด',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'เยี่ยมชมร้านค้า',
358
+ reconnect: 'เชื่อมต่อใหม่'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'ภายนอก',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet ได้เผยแพร่ในร้านค้าเรียบร้อยแล้ว',
701
703
  connectStoreSuccess: 'เชื่อมต่อ Blocklet Store สำเร็จ',
702
704
  uploadToStoreSuccess: 'อัพโหลด Blocklet เข้าสู่ Store สำเร็จแล้ว คุณต้องเผยแพร่ในร้านค้า',
703
- viewLastRelease: 'ดูรายการอัพเดตล่าสุด'
705
+ viewLastRelease: 'ดูรายการอัพเดตล่าสุด',
706
+ reconnectStoreTip: 'หลังจากเชื่อมต่อใหม่ จะมีนักพัฒนารุ่นใหม่เข้ามาเป็นที่ผูกพัน คุณแน่ใจหรือไม่ว่าต้องการที่จะเชื่อมต่อใหม่หรือไม่?',
707
+ deleteProject: {
708
+ title: 'ลบ {name}',
709
+ scan: 'สแกนรหัส QR ด้านล่างเพื่อลบ {name}',
710
+ confirm: 'ยืนยันการใช้งานกระเป๋าสตางค์ DID',
711
+ success: 'โครงการ Blocklet ได้ถูกลบแล้ว โปรดดำเนินการต่อ'
712
+ }
704
713
  },
705
714
  titleValidationError: 'ความยาวของชื่อต้องมีอย่างน้อย 3 ตัวอักษร',
706
715
  descriptionValidationError: 'ความยาวคำอธิบายต้องอยู่ระหว่าง 3 ถึง 160 ตัวอักษร.'
package/es/locales/vi.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: 'Đã tải lên',
354
354
  uploadToStore: 'Tải lên Cửa hàng',
355
355
  upload: 'Tải lên',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: 'Ghé cửa hàng',
358
+ reconnect: 'Kết nối lại'
357
359
  },
358
360
  blocklet: {
359
361
  external: 'Bên ngoài',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: 'Blocklet đã được xuất bản vào cửa hàng thành công',
701
703
  connectStoreSuccess: 'Kết nối Blocklet Store thành công',
702
704
  uploadToStoreSuccess: 'Blocklet đã tải lên Store thành công, bạn cần phải xuất bản nó trong Store',
703
- viewLastRelease: 'Xem phiên bản phát hành gần đây nhất'
705
+ viewLastRelease: 'Xem phiên bản phát hành gần đây nhất',
706
+ reconnectStoreTip: 'Sau khi kết nối lại, một nhà phát triển mới sẽ được liên kết. Bạn có chắc chắn muốn kết nối lại không?',
707
+ deleteProject: {
708
+ title: 'Xóa {name}',
709
+ scan: 'Quét mã QR bên dưới để xóa {name}',
710
+ confirm: 'Xác nhận sử dụng Ví DID',
711
+ success: 'Dự án Blocklet đã bị xóa, vui lòng tiếp tục hoạt động của bạn'
712
+ }
704
713
  },
705
714
  titleValidationError: 'Độ dài tiêu đề phải ít nhất 3 ký tự',
706
715
  descriptionValidationError: 'Chiều dài mô tả phải từ 3 đến 160 ký tự.'
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: '已上傳',
354
354
  uploadToStore: '上傳至 Store',
355
355
  upload: '上傳',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: '訪問 Store',
358
+ reconnect: '重新連接'
357
359
  },
358
360
  blocklet: {
359
361
  external: '外部的',
@@ -660,7 +662,7 @@ export default {
660
662
  resourceTitle: '資源',
661
663
  blockletEmptyTip: '這裡沒有任何區塊元件',
662
664
  createBlockletTip: '您可以透過現有的資源、元件和設定,在此應用程式中建立新的 blocklet',
663
- createBlocklet: '新的區塊',
665
+ createBlocklet: '新增 Blocklet',
664
666
  deleteBlockletTip: '刪除後無法恢復區塊,請確認',
665
667
  componentNotRunning: '{name}元件未運行,請先啟動。',
666
668
  releaseEmptyTip: '這裡沒有任何發布',
@@ -700,7 +702,14 @@ export default {
700
702
  publishToStoreSuccess: '成功發佈到 Store 的區塊鏈',
701
703
  connectStoreSuccess: 'Store 連線成功',
702
704
  uploadToStoreSuccess: 'Blocklet 成功上傳至 Store,請在 Store 中發布',
703
- viewLastRelease: '查看最新版本'
705
+ viewLastRelease: '查看最新版本',
706
+ reconnectStoreTip: '重新連接後,將綁定一個新的開發者。你確定要重新連接嗎?',
707
+ deleteProject: {
708
+ title: '刪除{name}',
709
+ scan: '掃描下方的QR碼以刪除{name}',
710
+ confirm: '確認使用DID錢包',
711
+ success: 'Blocklet 專案已被刪除,請繼續進行操作'
712
+ }
704
713
  },
705
714
  titleValidationError: '標題長度必須至少為3到40個字符',
706
715
  descriptionValidationError: '描述長度必須介於3到160個字符之間'
package/es/locales/zh.js CHANGED
@@ -353,7 +353,9 @@ export default {
353
353
  uploaded: '已上传',
354
354
  uploadToStore: '上传到 Store',
355
355
  upload: '上传',
356
- blockletStudio: 'Blocklet Studio'
356
+ blockletStudio: 'Blocklet Studio',
357
+ visitStore: '访问 Store',
358
+ reconnect: '重新连接'
357
359
  },
358
360
  blocklet: {
359
361
  external: '外部',
@@ -663,7 +665,7 @@ export default {
663
665
  resourceTitle: '资源型 Blocklet',
664
666
  blockletEmptyTip: '这里没有任何 Blocklet',
665
667
  createBlockletTip: '你可以使用此应用的资源,组件,配置制作新的 Blocklet',
666
- createBlocklet: '新的块',
668
+ createBlocklet: '新建 Blocklet',
667
669
  deleteBlockletTip: '此 Blocklet 删除后不可恢复,是否继续?',
668
670
  componentNotRunning: '组件 {name} 未运行',
669
671
  releaseEmptyTip: '这里没有任何发布',
@@ -703,7 +705,14 @@ export default {
703
705
  publishToStoreSuccess: '成功发布 Blocklet 到 Store',
704
706
  connectStoreSuccess: 'Blocklet 成功连接 Store',
705
707
  uploadToStoreSuccess: 'Blocklet 成功上传至 Store,请在 Store 中发布',
706
- viewLastRelease: '查看最新版本'
708
+ viewLastRelease: '查看最新版本',
709
+ reconnectStoreTip: '重新连接后,将绑定一个新的开发者。你确定要重新连接吗?',
710
+ deleteProject: {
711
+ title: '删除{name}',
712
+ scan: '扫描下方的QR码以删除{name}',
713
+ confirm: '确认使用DID钱包',
714
+ success: 'Blocklet 项目已被删除,请继续操作'
715
+ }
707
716
  },
708
717
  titleValidationError: '标题长度必须至少为3到40个字符',
709
718
  descriptionValidationError: '描述长度必须在3到160个字符之间'
@@ -0,0 +1,130 @@
1
+ import PropTypes from 'prop-types';
2
+ import { useState } from 'react';
3
+ import { Box, Button, Menu, MenuItem } from '@mui/material';
4
+ import MoreVertIcon from '@mui/icons-material/MoreVert';
5
+ import joinUrl from 'url-join';
6
+ import LaunchIcon from '@mui/icons-material/Launch';
7
+ import LinkOutlinedIcon from '@mui/icons-material/LinkOutlined';
8
+ import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline';
9
+ import { useLocaleContext } from '@arcblock/ux/lib/Locale/context';
10
+ import ConfirmDialog from '../confirm';
11
+ import DeleteStore from './delete';
12
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
+ function ConnectActions({
14
+ connected,
15
+ onConnect,
16
+ onDelete,
17
+ store,
18
+ teamDid
19
+ }) {
20
+ const [anchorEl, setAnchorEl] = useState(null);
21
+ const open = Boolean(anchorEl);
22
+ const {
23
+ t
24
+ } = useLocaleContext();
25
+ const [showReconnectConfirm, setShowReconnectConfirm] = useState(false);
26
+ const handleOpenUrl = e => {
27
+ e.stopPropagation();
28
+ window.open(joinUrl(store.url, 'developer/blocklets'));
29
+ window.open(store.url);
30
+ };
31
+ const handleOpen = event => {
32
+ setAnchorEl(event.currentTarget);
33
+ };
34
+ const handleClose = () => {
35
+ setAnchorEl(null);
36
+ };
37
+ const actions = [{
38
+ label: t('common.visitStore'),
39
+ action: handleOpenUrl,
40
+ icon: LaunchIcon
41
+ }, {
42
+ label: t('common.reconnect'),
43
+ action: () => {
44
+ handleClose();
45
+ setShowReconnectConfirm(true);
46
+ },
47
+ icon: LinkOutlinedIcon,
48
+ hidden: !connected
49
+ }];
50
+ return /*#__PURE__*/_jsxs(_Fragment, {
51
+ children: [/*#__PURE__*/_jsx(Button, {
52
+ ref: anchorEl,
53
+ color: "primary",
54
+ onClick: handleOpen,
55
+ size: "small",
56
+ children: /*#__PURE__*/_jsx(MoreVertIcon, {
57
+ sx: {
58
+ zoom: 0.95
59
+ }
60
+ })
61
+ }), /*#__PURE__*/_jsxs(Menu, {
62
+ anchorEl: anchorEl,
63
+ open: open,
64
+ onClose: handleClose,
65
+ anchorOrigin: {
66
+ vertical: 'bottom',
67
+ horizontal: 'center'
68
+ },
69
+ transformOrigin: {
70
+ vertical: 'top',
71
+ horizontal: 'center'
72
+ },
73
+ children: [actions.map(x => {
74
+ if (x.hidden) {
75
+ return null;
76
+ }
77
+ return /*#__PURE__*/_jsxs(MenuItem, {
78
+ dense: true,
79
+ onClick: x.action,
80
+ disabled: x.disabled,
81
+ children: [x.icon && /*#__PURE__*/_jsx(x.icon, {
82
+ color: "action",
83
+ sx: {
84
+ marginRight: 1
85
+ }
86
+ }), /*#__PURE__*/_jsx(Box, {
87
+ color: "action",
88
+ children: x.label
89
+ })]
90
+ }, x.label);
91
+ }), /*#__PURE__*/_jsx(DeleteStore, {
92
+ store: store,
93
+ onDelete: onDelete,
94
+ teamDid: teamDid,
95
+ children: /*#__PURE__*/_jsxs(MenuItem, {
96
+ dense: true,
97
+ disabled: store.protected,
98
+ children: [/*#__PURE__*/_jsx(DeleteOutlineIcon, {
99
+ color: "action",
100
+ sx: {
101
+ marginRight: 1
102
+ }
103
+ }), /*#__PURE__*/_jsx(Box, {
104
+ color: "action",
105
+ children: t('common.delete')
106
+ })]
107
+ })
108
+ })]
109
+ }), showReconnectConfirm && /*#__PURE__*/_jsx(ConfirmDialog, {
110
+ title: `${t('common.reconnect')} ${store.name}`,
111
+ description: t('blocklet.publish.reconnectStoreTip'),
112
+ confirm: t('common.confirm'),
113
+ onConfirm: onConnect,
114
+ onCancel: () => setShowReconnectConfirm(false)
115
+ })]
116
+ });
117
+ }
118
+ ConnectActions.propTypes = {
119
+ connected: PropTypes.bool,
120
+ onConnect: PropTypes.func,
121
+ onDelete: PropTypes.func,
122
+ store: PropTypes.object.isRequired,
123
+ teamDid: PropTypes.string.isRequired
124
+ };
125
+ ConnectActions.defaultProps = {
126
+ connected: false,
127
+ onConnect: () => {},
128
+ onDelete: () => {}
129
+ };
130
+ export default ConnectActions;
@@ -12,7 +12,8 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
12
12
  export default function DeleteStore({
13
13
  store,
14
14
  teamDid,
15
- onDelete
15
+ onDelete,
16
+ children
16
17
  }) {
17
18
  const {
18
19
  api
@@ -66,7 +67,10 @@ export default function DeleteStore({
66
67
  setConfirmSetting(setting);
67
68
  };
68
69
  return /*#__PURE__*/_jsxs(_Fragment, {
69
- children: [/*#__PURE__*/_jsx(Button, {
70
+ children: [children ? /*#__PURE__*/_jsx("span", {
71
+ onClick: onMenuItemClick,
72
+ children: children
73
+ }) : /*#__PURE__*/_jsx(Button, {
70
74
  color: "primary",
71
75
  disabled: loading,
72
76
  onClick: onMenuItemClick,
@@ -90,10 +94,12 @@ export default function DeleteStore({
90
94
  });
91
95
  }
92
96
  DeleteStore.propTypes = {
97
+ children: PropTypes.node,
93
98
  teamDid: PropTypes.string.isRequired,
94
99
  store: PropTypes.object.isRequired,
95
100
  onDelete: PropTypes.func
96
101
  };
97
102
  DeleteStore.defaultProps = {
103
+ children: null,
98
104
  onDelete: () => {}
99
105
  };
package/es/store/item.js CHANGED
@@ -12,6 +12,7 @@ import Toast from '@arcblock/ux/lib/Toast';
12
12
  import DeleteStore from './delete';
13
13
  import { useNodeContext } from '../contexts/node';
14
14
  import { formatError } from '../util';
15
+ import ConnectActions from './connect-actions';
15
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
17
  const useStyles = makeStyles(() => ({
17
18
  buttonText: {
@@ -207,17 +208,12 @@ export default function StoreItem({
207
208
  marginRight: 1
208
209
  }
209
210
  }), t('common.upload')]
210
- }), /*#__PURE__*/_jsx(Button, {
211
- onClick: handleOpenUrl,
212
- children: /*#__PURE__*/_jsx(LaunchIcon, {
213
- sx: {
214
- zoom: 0.9
215
- }
216
- })
217
- }), !store.protected && /*#__PURE__*/_jsx(DeleteStore, {
211
+ }), /*#__PURE__*/_jsx(ConnectActions, {
212
+ connected: connected,
218
213
  store: store,
219
214
  onDelete: onDelete,
220
- teamDid: teamDid
215
+ teamDid: teamDid,
216
+ onConnect: handleConnectToStore
221
217
  })]
222
218
  }), !isPublish && /*#__PURE__*/_jsxs(ButtonGroup, {
223
219
  disabled: loading,
@@ -0,0 +1,15 @@
1
+ import joinUrl from 'url-join';
2
+ const joinUrlKeepSearch = (originalUrl, path) => {
3
+ if (!originalUrl) {
4
+ return '';
5
+ }
6
+ if (!path) {
7
+ return originalUrl;
8
+ }
9
+ const url = new URL(originalUrl);
10
+ const searchParams = new URLSearchParams(url.searchParams);
11
+ const newPath = new URL(joinUrl(url.origin, path));
12
+ newPath.search = searchParams.toString();
13
+ return newPath.toString();
14
+ };
15
+ export default joinUrlKeepSearch;