@strapi/admin 5.33.4 → 5.35.0

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 (310) hide show
  1. package/dist/admin/admin/src/components/GradientBadge.js +18 -2
  2. package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
  3. package/dist/admin/admin/src/components/GradientBadge.mjs +19 -3
  4. package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/Layouts/ActionLayout.js +8 -1
  6. package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
  7. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +8 -1
  8. package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/Layouts/ContentLayout.js +4 -0
  10. package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
  11. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +4 -0
  12. package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +84 -50
  14. package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
  15. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +86 -52
  16. package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
  17. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +1 -0
  18. package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
  19. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +1 -0
  20. package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -1
  21. package/dist/admin/admin/src/components/MainNav/NavLink.js +37 -6
  22. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  23. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +38 -7
  24. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/NpsSurvey.js +2 -0
  26. package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
  27. package/dist/admin/admin/src/components/NpsSurvey.mjs +2 -0
  28. package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/SubNav.js +41 -20
  30. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  31. package/dist/admin/admin/src/components/SubNav.mjs +42 -21
  32. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  33. package/dist/admin/admin/src/constants/theme.js +2 -0
  34. package/dist/admin/admin/src/constants/theme.js.map +1 -1
  35. package/dist/admin/admin/src/constants/theme.mjs +2 -1
  36. package/dist/admin/admin/src/constants/theme.mjs.map +1 -1
  37. package/dist/admin/admin/src/core/apis/router.js.map +1 -1
  38. package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
  39. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  40. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  41. package/dist/admin/admin/src/hooks/useMenu.js +2 -1
  42. package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
  43. package/dist/admin/admin/src/hooks/useMenu.mjs +2 -1
  44. package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
  45. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  46. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  47. package/dist/admin/admin/src/pages/Auth/components/Register.js +51 -10
  48. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  49. package/dist/admin/admin/src/pages/Auth/components/Register.mjs +51 -10
  50. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  51. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js +12 -3
  52. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
  53. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs +12 -3
  54. package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
  55. package/dist/admin/admin/src/pages/Home/HomePage.js +1 -0
  56. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  57. package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -0
  58. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  59. package/dist/admin/admin/src/pages/ProfilePage.js +1 -0
  60. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  61. package/dist/admin/admin/src/pages/ProfilePage.mjs +1 -0
  62. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  63. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +7 -2
  64. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
  65. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +7 -2
  66. package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
  67. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +44 -26
  68. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  69. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +45 -27
  70. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +1 -0
  72. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  73. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +1 -0
  74. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  75. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -0
  76. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
  77. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +1 -0
  78. package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
  79. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +3 -0
  80. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
  81. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +3 -0
  82. package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
  83. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js +9 -11
  84. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
  85. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +10 -12
  86. package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
  87. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js +1 -0
  88. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
  89. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs +1 -0
  90. package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
  91. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js +1 -0
  92. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
  93. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs +1 -0
  94. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
  95. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js +1 -0
  96. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
  97. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +1 -0
  98. package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
  99. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js +1 -0
  100. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
  101. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs +1 -0
  102. package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs.map +1 -1
  103. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js +12 -3
  104. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
  105. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.mjs +12 -3
  106. package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.mjs.map +1 -1
  107. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -0
  108. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
  109. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -0
  110. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
  111. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js +3 -0
  112. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
  113. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +3 -0
  114. package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
  115. package/dist/admin/admin/src/router.js +0 -9
  116. package/dist/admin/admin/src/router.js.map +1 -1
  117. package/dist/admin/admin/src/router.mjs +0 -9
  118. package/dist/admin/admin/src/router.mjs.map +1 -1
  119. package/dist/admin/admin/src/translations/ar.json.js +0 -42
  120. package/dist/admin/admin/src/translations/ar.json.js.map +1 -1
  121. package/dist/admin/admin/src/translations/ar.json.mjs +0 -42
  122. package/dist/admin/admin/src/translations/ar.json.mjs.map +1 -1
  123. package/dist/admin/admin/src/translations/ca.json.js +0 -21
  124. package/dist/admin/admin/src/translations/ca.json.js.map +1 -1
  125. package/dist/admin/admin/src/translations/ca.json.mjs +0 -21
  126. package/dist/admin/admin/src/translations/ca.json.mjs.map +1 -1
  127. package/dist/admin/admin/src/translations/de.json.js +422 -66
  128. package/dist/admin/admin/src/translations/de.json.js.map +1 -1
  129. package/dist/admin/admin/src/translations/de.json.mjs +419 -67
  130. package/dist/admin/admin/src/translations/de.json.mjs.map +1 -1
  131. package/dist/admin/admin/src/translations/dk.json.js +0 -6
  132. package/dist/admin/admin/src/translations/dk.json.js.map +1 -1
  133. package/dist/admin/admin/src/translations/dk.json.mjs +0 -6
  134. package/dist/admin/admin/src/translations/dk.json.mjs.map +1 -1
  135. package/dist/admin/admin/src/translations/en.json.js +0 -44
  136. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  137. package/dist/admin/admin/src/translations/en.json.mjs +0 -44
  138. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  139. package/dist/admin/admin/src/translations/es.json.js +0 -25
  140. package/dist/admin/admin/src/translations/es.json.js.map +1 -1
  141. package/dist/admin/admin/src/translations/es.json.mjs +0 -25
  142. package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
  143. package/dist/admin/admin/src/translations/eu.json.js +0 -43
  144. package/dist/admin/admin/src/translations/eu.json.js.map +1 -1
  145. package/dist/admin/admin/src/translations/eu.json.mjs +0 -43
  146. package/dist/admin/admin/src/translations/eu.json.mjs.map +1 -1
  147. package/dist/admin/admin/src/translations/fr.json.js +0 -6
  148. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  149. package/dist/admin/admin/src/translations/fr.json.mjs +0 -6
  150. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  151. package/dist/admin/admin/src/translations/gu.json.js +0 -21
  152. package/dist/admin/admin/src/translations/gu.json.js.map +1 -1
  153. package/dist/admin/admin/src/translations/gu.json.mjs +0 -21
  154. package/dist/admin/admin/src/translations/gu.json.mjs.map +1 -1
  155. package/dist/admin/admin/src/translations/hi.json.js +0 -21
  156. package/dist/admin/admin/src/translations/hi.json.js.map +1 -1
  157. package/dist/admin/admin/src/translations/hi.json.mjs +0 -21
  158. package/dist/admin/admin/src/translations/hi.json.mjs.map +1 -1
  159. package/dist/admin/admin/src/translations/hu.json.js +0 -43
  160. package/dist/admin/admin/src/translations/hu.json.js.map +1 -1
  161. package/dist/admin/admin/src/translations/hu.json.mjs +0 -43
  162. package/dist/admin/admin/src/translations/hu.json.mjs.map +1 -1
  163. package/dist/admin/admin/src/translations/it.json.js +613 -3
  164. package/dist/admin/admin/src/translations/it.json.js.map +1 -1
  165. package/dist/admin/admin/src/translations/it.json.mjs +605 -4
  166. package/dist/admin/admin/src/translations/it.json.mjs.map +1 -1
  167. package/dist/admin/admin/src/translations/ja.json.js +0 -6
  168. package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
  169. package/dist/admin/admin/src/translations/ja.json.mjs +0 -6
  170. package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
  171. package/dist/admin/admin/src/translations/ko.json.js +430 -102
  172. package/dist/admin/admin/src/translations/ko.json.js.map +1 -1
  173. package/dist/admin/admin/src/translations/ko.json.mjs +427 -103
  174. package/dist/admin/admin/src/translations/ko.json.mjs.map +1 -1
  175. package/dist/admin/admin/src/translations/ml.json.js +0 -21
  176. package/dist/admin/admin/src/translations/ml.json.js.map +1 -1
  177. package/dist/admin/admin/src/translations/ml.json.mjs +0 -21
  178. package/dist/admin/admin/src/translations/ml.json.mjs.map +1 -1
  179. package/dist/admin/admin/src/translations/nl.json.js +0 -39
  180. package/dist/admin/admin/src/translations/nl.json.js.map +1 -1
  181. package/dist/admin/admin/src/translations/nl.json.mjs +0 -39
  182. package/dist/admin/admin/src/translations/nl.json.mjs.map +1 -1
  183. package/dist/admin/admin/src/translations/pl.json.js +0 -21
  184. package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
  185. package/dist/admin/admin/src/translations/pl.json.mjs +0 -21
  186. package/dist/admin/admin/src/translations/pl.json.mjs.map +1 -1
  187. package/dist/admin/admin/src/translations/pt-BR.json.js +0 -25
  188. package/dist/admin/admin/src/translations/pt-BR.json.js.map +1 -1
  189. package/dist/admin/admin/src/translations/pt-BR.json.mjs +0 -25
  190. package/dist/admin/admin/src/translations/pt-BR.json.mjs.map +1 -1
  191. package/dist/admin/admin/src/translations/ru.json.js +0 -44
  192. package/dist/admin/admin/src/translations/ru.json.js.map +1 -1
  193. package/dist/admin/admin/src/translations/ru.json.mjs +0 -44
  194. package/dist/admin/admin/src/translations/ru.json.mjs.map +1 -1
  195. package/dist/admin/admin/src/translations/sa.json.js +0 -21
  196. package/dist/admin/admin/src/translations/sa.json.js.map +1 -1
  197. package/dist/admin/admin/src/translations/sa.json.mjs +0 -21
  198. package/dist/admin/admin/src/translations/sa.json.mjs.map +1 -1
  199. package/dist/admin/admin/src/translations/sv.json.js +0 -39
  200. package/dist/admin/admin/src/translations/sv.json.js.map +1 -1
  201. package/dist/admin/admin/src/translations/sv.json.mjs +0 -39
  202. package/dist/admin/admin/src/translations/sv.json.mjs.map +1 -1
  203. package/dist/admin/admin/src/translations/tr.json.js +0 -39
  204. package/dist/admin/admin/src/translations/tr.json.js.map +1 -1
  205. package/dist/admin/admin/src/translations/tr.json.mjs +0 -39
  206. package/dist/admin/admin/src/translations/tr.json.mjs.map +1 -1
  207. package/dist/admin/admin/src/translations/uk.json.js +0 -44
  208. package/dist/admin/admin/src/translations/uk.json.js.map +1 -1
  209. package/dist/admin/admin/src/translations/uk.json.mjs +0 -44
  210. package/dist/admin/admin/src/translations/uk.json.mjs.map +1 -1
  211. package/dist/admin/admin/src/translations/vi.json.js +0 -44
  212. package/dist/admin/admin/src/translations/vi.json.js.map +1 -1
  213. package/dist/admin/admin/src/translations/vi.json.mjs +0 -44
  214. package/dist/admin/admin/src/translations/vi.json.mjs.map +1 -1
  215. package/dist/admin/admin/src/translations/zh-Hans.json.js +0 -44
  216. package/dist/admin/admin/src/translations/zh-Hans.json.js.map +1 -1
  217. package/dist/admin/admin/src/translations/zh-Hans.json.mjs +0 -44
  218. package/dist/admin/admin/src/translations/zh-Hans.json.mjs.map +1 -1
  219. package/dist/admin/admin/src/translations/zh.json.js +0 -39
  220. package/dist/admin/admin/src/translations/zh.json.js.map +1 -1
  221. package/dist/admin/admin/src/translations/zh.json.mjs +0 -39
  222. package/dist/admin/admin/src/translations/zh.json.mjs.map +1 -1
  223. package/dist/admin/admin/tests/mockData.js +0 -1413
  224. package/dist/admin/admin/tests/mockData.js.map +1 -1
  225. package/dist/admin/admin/tests/mockData.mjs +0 -1413
  226. package/dist/admin/admin/tests/mockData.mjs.map +1 -1
  227. package/dist/admin/admin/tests/server.js +0 -99
  228. package/dist/admin/admin/tests/server.js.map +1 -1
  229. package/dist/admin/admin/tests/server.mjs +0 -80
  230. package/dist/admin/admin/tests/server.mjs.map +1 -1
  231. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +1 -0
  232. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
  233. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs +1 -0
  234. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
  235. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js +2 -0
  236. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
  237. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs +2 -0
  238. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs.map +1 -1
  239. package/dist/admin/index.js +3 -0
  240. package/dist/admin/index.js.map +1 -1
  241. package/dist/admin/index.mjs +1 -1
  242. package/dist/admin/src/components/MainNav/NavLink.d.ts +2 -2
  243. package/dist/admin/src/constants/theme.d.ts +2 -1
  244. package/dist/admin/src/core/apis/router.d.ts +1 -0
  245. package/dist/admin/src/features/Tracking.d.ts +1 -1
  246. package/dist/admin/src/hooks/useMenu.d.ts +1 -0
  247. package/dist/admin/src/index.d.ts +1 -1
  248. package/dist/admin/tests/mockData.d.ts +0 -972
  249. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js +53 -0
  250. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js.map +1 -0
  251. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs +51 -0
  252. package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs.map +1 -0
  253. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +7 -8
  254. package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
  255. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +10 -11
  256. package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
  257. package/dist/server/server/src/services/permission/permissions-manager/validate.js +7 -8
  258. package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
  259. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs +10 -11
  260. package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
  261. package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts +21 -0
  262. package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -0
  263. package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
  264. package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
  265. package/package.json +7 -7
  266. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js +0 -339
  267. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.js.map +0 -1
  268. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs +0 -317
  269. package/dist/admin/admin/src/pages/Marketplace/MarketplacePage.mjs.map +0 -1
  270. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js +0 -329
  271. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.js.map +0 -1
  272. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs +0 -308
  273. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackageCard.mjs.map +0 -1
  274. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js +0 -121
  275. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.js.map +0 -1
  276. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs +0 -119
  277. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesFilters.mjs.map +0 -1
  278. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js +0 -93
  279. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.js.map +0 -1
  280. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.mjs +0 -91
  281. package/dist/admin/admin/src/pages/Marketplace/components/NpmPackagesGrid.mjs.map +0 -1
  282. package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.js +0 -81
  283. package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.js.map +0 -1
  284. package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.mjs +0 -79
  285. package/dist/admin/admin/src/pages/Marketplace/components/OfflineLayout.mjs.map +0 -1
  286. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js +0 -38
  287. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.js.map +0 -1
  288. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs +0 -36
  289. package/dist/admin/admin/src/pages/Marketplace/components/PageHeader.mjs.map +0 -1
  290. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js +0 -85
  291. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.js.map +0 -1
  292. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.mjs +0 -83
  293. package/dist/admin/admin/src/pages/Marketplace/components/SortSelect.mjs.map +0 -1
  294. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js +0 -134
  295. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.js.map +0 -1
  296. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs +0 -113
  297. package/dist/admin/admin/src/pages/Marketplace/hooks/useMarketplaceData.mjs.map +0 -1
  298. package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.js +0 -44
  299. package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.js.map +0 -1
  300. package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.mjs +0 -23
  301. package/dist/admin/admin/src/pages/Marketplace/hooks/useNavigatorOnline.mjs.map +0 -1
  302. package/dist/admin/src/pages/Marketplace/MarketplacePage.d.ts +0 -19
  303. package/dist/admin/src/pages/Marketplace/components/NpmPackageCard.d.ts +0 -13
  304. package/dist/admin/src/pages/Marketplace/components/NpmPackagesFilters.d.ts +0 -13
  305. package/dist/admin/src/pages/Marketplace/components/NpmPackagesGrid.d.ts +0 -13
  306. package/dist/admin/src/pages/Marketplace/components/OfflineLayout.d.ts +0 -2
  307. package/dist/admin/src/pages/Marketplace/components/PageHeader.d.ts +0 -8
  308. package/dist/admin/src/pages/Marketplace/components/SortSelect.d.ts +0 -51
  309. package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +0 -93
  310. package/dist/admin/src/pages/Marketplace/hooks/useNavigatorOnline.d.ts +0 -5
@@ -1,308 +0,0 @@
1
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
- import { Typography, Divider, Flex, Box, Tooltip, LinkButton, Button } from '@strapi/design-system';
3
- import { CheckCircle, ExternalLink, Check, Duplicate, Star, Download } from '@strapi/icons';
4
- import { GitHub } from '@strapi/icons/symbols';
5
- import pluralize from 'pluralize';
6
- import { useIntl } from 'react-intl';
7
- import * as semver from 'semver';
8
- import { styled } from 'styled-components';
9
- import img from '../../../assets/images/logo-strapi-2022.svg.mjs';
10
- import { useNotification } from '../../../features/Notifications.mjs';
11
- import { useTracking } from '../../../features/Tracking.mjs';
12
- import { useClipboard } from '../../../hooks/useClipboard.mjs';
13
-
14
- // Custom component to have an ellipsis after the 2nd line
15
- const EllipsisText = styled(Typography)`
16
- display: -webkit-box;
17
- -webkit-box-orient: vertical;
18
- -webkit-line-clamp: 2;
19
- overflow: hidden;
20
- `;
21
- const NpmPackageCard = ({ npmPackage, isInstalled, useYarn, isInDevelopmentMode, npmPackageType, strapiAppVersion })=>{
22
- const { attributes } = npmPackage;
23
- const { formatMessage } = useIntl();
24
- const { trackUsage } = useTracking();
25
- const commandToCopy = useYarn ? `yarn add ${attributes.npmPackageName}` : `npm install ${attributes.npmPackageName}`;
26
- const madeByStrapiMessage = formatMessage({
27
- id: 'admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi',
28
- defaultMessage: 'Made by Strapi'
29
- });
30
- const npmPackageHref = `https://market.strapi.io/${pluralize.plural(npmPackageType)}/${attributes.slug}`;
31
- const versionRange = semver.validRange(attributes.strapiVersion);
32
- const isCompatible = versionRange ? semver.satisfies(strapiAppVersion ?? '', versionRange) : false;
33
- return /*#__PURE__*/ jsxs(Flex, {
34
- direction: "column",
35
- justifyContent: "space-between",
36
- paddingTop: 4,
37
- paddingRight: 4,
38
- paddingBottom: 4,
39
- paddingLeft: 4,
40
- hasRadius: true,
41
- background: "neutral0",
42
- shadow: "tableShadow",
43
- height: "100%",
44
- alignItems: "normal",
45
- "data-testid": "npm-package-card",
46
- children: [
47
- /*#__PURE__*/ jsxs(Box, {
48
- children: [
49
- /*#__PURE__*/ jsxs(Flex, {
50
- direction: "row",
51
- justifyContent: "space-between",
52
- alignItems: "flex-start",
53
- children: [
54
- /*#__PURE__*/ jsx(Box, {
55
- tag: "img",
56
- src: attributes.logo.url,
57
- alt: `${attributes.name} logo`,
58
- hasRadius: true,
59
- width: 11,
60
- height: 11
61
- }),
62
- /*#__PURE__*/ jsx(PackageStats, {
63
- githubStars: attributes.githubStars,
64
- npmDownloads: attributes.npmDownloads,
65
- npmPackageType: npmPackageType
66
- })
67
- ]
68
- }),
69
- /*#__PURE__*/ jsx(Box, {
70
- paddingTop: 4,
71
- children: /*#__PURE__*/ jsx(Typography, {
72
- tag: "h3",
73
- variant: "delta",
74
- children: /*#__PURE__*/ jsxs(Flex, {
75
- alignItems: "center",
76
- gap: attributes.validated && !attributes.madeByStrapi ? 2 : 1,
77
- children: [
78
- attributes.name,
79
- attributes.validated && !attributes.madeByStrapi && /*#__PURE__*/ jsx(Tooltip, {
80
- description: formatMessage({
81
- id: 'admin.pages.MarketPlacePage.plugin.tooltip.verified',
82
- defaultMessage: 'Plugin verified by Strapi'
83
- }),
84
- children: /*#__PURE__*/ jsx(CheckCircle, {
85
- fill: "success600"
86
- })
87
- }),
88
- attributes.madeByStrapi && /*#__PURE__*/ jsx(Tooltip, {
89
- label: madeByStrapiMessage,
90
- children: /*#__PURE__*/ jsx(Box, {
91
- tag: "img",
92
- src: img,
93
- alt: madeByStrapiMessage,
94
- width: 6,
95
- height: "auto"
96
- })
97
- })
98
- ]
99
- })
100
- })
101
- }),
102
- /*#__PURE__*/ jsx(Box, {
103
- paddingTop: 2,
104
- children: /*#__PURE__*/ jsx(EllipsisText, {
105
- tag: "p",
106
- variant: "omega",
107
- textColor: "neutral600",
108
- children: attributes.description
109
- })
110
- })
111
- ]
112
- }),
113
- /*#__PURE__*/ jsxs(Flex, {
114
- gap: 2,
115
- style: {
116
- alignSelf: 'flex-end'
117
- },
118
- paddingTop: 6,
119
- children: [
120
- /*#__PURE__*/ jsx(LinkButton, {
121
- size: "S",
122
- href: npmPackageHref,
123
- isExternal: true,
124
- endIcon: /*#__PURE__*/ jsx(ExternalLink, {}),
125
- "aria-label": formatMessage({
126
- id: 'admin.pages.MarketPlacePage.plugin.info.label',
127
- defaultMessage: 'Learn more about {pluginName}'
128
- }, {
129
- pluginName: attributes.name
130
- }),
131
- variant: "tertiary",
132
- onClick: ()=>trackUsage('didPluginLearnMore'),
133
- children: formatMessage({
134
- id: 'admin.pages.MarketPlacePage.plugin.info.text',
135
- defaultMessage: 'More'
136
- })
137
- }),
138
- /*#__PURE__*/ jsx(InstallPluginButton, {
139
- isInstalled: isInstalled,
140
- isInDevelopmentMode: isInDevelopmentMode,
141
- isCompatible: isCompatible,
142
- commandToCopy: commandToCopy,
143
- strapiAppVersion: strapiAppVersion,
144
- strapiPeerDepVersion: attributes.strapiVersion,
145
- pluginName: attributes.name
146
- })
147
- ]
148
- })
149
- ]
150
- });
151
- };
152
- const InstallPluginButton = ({ isInstalled, isInDevelopmentMode, isCompatible, commandToCopy, strapiAppVersion, strapiPeerDepVersion, pluginName })=>{
153
- const { toggleNotification } = useNotification();
154
- const { formatMessage } = useIntl();
155
- const { trackUsage } = useTracking();
156
- const { copy } = useClipboard();
157
- const handleCopy = async ()=>{
158
- const didCopy = await copy(commandToCopy);
159
- if (didCopy) {
160
- trackUsage('willInstallPlugin');
161
- toggleNotification({
162
- type: 'success',
163
- message: formatMessage({
164
- id: 'admin.pages.MarketPlacePage.plugin.copy.success'
165
- })
166
- });
167
- }
168
- };
169
- // Already installed
170
- if (isInstalled) {
171
- return /*#__PURE__*/ jsxs(Flex, {
172
- gap: 2,
173
- paddingLeft: 4,
174
- children: [
175
- /*#__PURE__*/ jsx(Check, {
176
- width: "1.2rem",
177
- height: "1.2rem",
178
- color: "success600"
179
- }),
180
- /*#__PURE__*/ jsx(Typography, {
181
- variant: "omega",
182
- textColor: "success600",
183
- fontWeight: "bold",
184
- children: formatMessage({
185
- id: 'admin.pages.MarketPlacePage.plugin.installed',
186
- defaultMessage: 'Installed'
187
- })
188
- })
189
- ]
190
- });
191
- }
192
- // In development, show install button
193
- if (isInDevelopmentMode && isCompatible !== false) {
194
- return /*#__PURE__*/ jsx(CardButton, {
195
- strapiAppVersion: strapiAppVersion,
196
- strapiPeerDepVersion: strapiPeerDepVersion,
197
- handleCopy: handleCopy,
198
- pluginName: pluginName
199
- });
200
- }
201
- // Not in development and plugin not installed already. Show nothing
202
- return null;
203
- };
204
- const CardButton = ({ strapiPeerDepVersion, strapiAppVersion, handleCopy, pluginName })=>{
205
- const { formatMessage } = useIntl();
206
- const versionRange = semver.validRange(strapiPeerDepVersion);
207
- const isCompatible = semver.satisfies(strapiAppVersion ?? '', versionRange ?? '');
208
- const installMessage = formatMessage({
209
- id: 'admin.pages.MarketPlacePage.plugin.copy',
210
- defaultMessage: 'Copy install command'
211
- });
212
- // Only plugins receive a strapiAppVersion
213
- if (strapiAppVersion) {
214
- if (!versionRange || !isCompatible) {
215
- return /*#__PURE__*/ jsx(Tooltip, {
216
- "data-testid": `tooltip-${pluginName}`,
217
- label: formatMessage({
218
- id: 'admin.pages.MarketPlacePage.plugin.version',
219
- defaultMessage: 'Update your Strapi version: "{strapiAppVersion}" to: "{versionRange}"'
220
- }, {
221
- strapiAppVersion,
222
- versionRange
223
- }),
224
- children: /*#__PURE__*/ jsx("span", {
225
- children: /*#__PURE__*/ jsx(Button, {
226
- size: "S",
227
- startIcon: /*#__PURE__*/ jsx(Duplicate, {}),
228
- variant: "secondary",
229
- onClick: handleCopy,
230
- disabled: !isCompatible,
231
- children: installMessage
232
- })
233
- })
234
- });
235
- }
236
- }
237
- return /*#__PURE__*/ jsx(Button, {
238
- size: "S",
239
- startIcon: /*#__PURE__*/ jsx(Duplicate, {}),
240
- variant: "secondary",
241
- onClick: handleCopy,
242
- children: installMessage
243
- });
244
- };
245
- const PackageStats = ({ githubStars = 0, npmDownloads = 0, npmPackageType })=>{
246
- const { formatMessage } = useIntl();
247
- return /*#__PURE__*/ jsxs(Flex, {
248
- gap: 1,
249
- children: [
250
- !!githubStars && /*#__PURE__*/ jsxs(Fragment, {
251
- children: [
252
- /*#__PURE__*/ jsx(GitHub, {
253
- height: "1.2rem",
254
- width: "1.2rem",
255
- "aria-hidden": true
256
- }),
257
- /*#__PURE__*/ jsx(Star, {
258
- height: "1.2rem",
259
- width: "1.2rem",
260
- fill: "warning500",
261
- "aria-hidden": true
262
- }),
263
- /*#__PURE__*/ jsx("p", {
264
- "aria-label": formatMessage({
265
- id: `admin.pages.MarketPlacePage.${npmPackageType}.githubStars`,
266
- defaultMessage: `This {package} was starred {starsCount} on GitHub`
267
- }, {
268
- starsCount: githubStars,
269
- package: npmPackageType
270
- }),
271
- children: /*#__PURE__*/ jsx(Typography, {
272
- variant: "pi",
273
- textColor: "neutral800",
274
- children: githubStars
275
- })
276
- }),
277
- /*#__PURE__*/ jsx(VerticalDivider, {})
278
- ]
279
- }),
280
- /*#__PURE__*/ jsx(Download, {
281
- height: "1.2rem",
282
- width: "1.2rem",
283
- "aria-hidden": true
284
- }),
285
- /*#__PURE__*/ jsx("p", {
286
- "aria-label": formatMessage({
287
- id: `admin.pages.MarketPlacePage.${npmPackageType}.downloads`,
288
- defaultMessage: `This {package} has {downloadsCount} weekly downloads`
289
- }, {
290
- downloadsCount: npmDownloads,
291
- package: npmPackageType
292
- }),
293
- children: /*#__PURE__*/ jsx(Typography, {
294
- variant: "pi",
295
- textColor: "neutral800",
296
- children: npmDownloads
297
- })
298
- })
299
- ]
300
- });
301
- };
302
- const VerticalDivider = styled(Divider)`
303
- width: 1.2rem;
304
- transform: rotate(90deg);
305
- `;
306
-
307
- export { NpmPackageCard };
308
- //# sourceMappingURL=NpmPackageCard.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NpmPackageCard.mjs","sources":["../../../../../../../admin/src/pages/Marketplace/components/NpmPackageCard.tsx"],"sourcesContent":["import {\n Box,\n Flex,\n Tooltip,\n Typography,\n Divider,\n Button,\n LinkButton,\n TypographyComponent,\n} from '@strapi/design-system';\nimport { CheckCircle, ExternalLink, Download, Star, Check, Duplicate } from '@strapi/icons';\nimport { GitHub } from '@strapi/icons/symbols';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\nimport * as semver from 'semver';\nimport { styled } from 'styled-components';\n\nimport StrapiLogo from '../../../assets/images/logo-strapi-2022.svg';\nimport { AppInfoContextValue } from '../../../features/AppInfo';\nimport { useNotification } from '../../../features/Notifications';\nimport { useTracking } from '../../../features/Tracking';\nimport { useClipboard } from '../../../hooks/useClipboard';\n\nimport type { Plugin, Provider } from '../hooks/useMarketplaceData';\nimport type { NpmPackageType } from '../MarketplacePage';\n\n// Custom component to have an ellipsis after the 2nd line\nconst EllipsisText = styled<TypographyComponent<'p'>>(Typography)`\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n overflow: hidden;\n`;\n\ninterface NpmPackageCardProps extends Pick<AppInfoContextValue, 'useYarn'> {\n npmPackage: Plugin | Provider;\n isInstalled: boolean;\n isInDevelopmentMode: AppInfoContextValue['autoReload'];\n npmPackageType: NpmPackageType;\n strapiAppVersion: AppInfoContextValue['strapiVersion'];\n}\n\nconst NpmPackageCard = ({\n npmPackage,\n isInstalled,\n useYarn,\n isInDevelopmentMode,\n npmPackageType,\n strapiAppVersion,\n}: NpmPackageCardProps) => {\n const { attributes } = npmPackage;\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const commandToCopy = useYarn\n ? `yarn add ${attributes.npmPackageName}`\n : `npm install ${attributes.npmPackageName}`;\n\n const madeByStrapiMessage = formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.tooltip.madeByStrapi',\n defaultMessage: 'Made by Strapi',\n });\n\n const npmPackageHref = `https://market.strapi.io/${pluralize.plural(npmPackageType)}/${\n attributes.slug\n }`;\n\n const versionRange = semver.validRange(attributes.strapiVersion);\n\n const isCompatible = versionRange\n ? semver.satisfies(strapiAppVersion ?? '', versionRange)\n : false;\n\n return (\n <Flex\n direction=\"column\"\n justifyContent=\"space-between\"\n paddingTop={4}\n paddingRight={4}\n paddingBottom={4}\n paddingLeft={4}\n hasRadius\n background=\"neutral0\"\n shadow=\"tableShadow\"\n height=\"100%\"\n alignItems=\"normal\"\n data-testid=\"npm-package-card\"\n >\n <Box>\n <Flex direction=\"row\" justifyContent=\"space-between\" alignItems=\"flex-start\">\n <Box\n tag=\"img\"\n src={attributes.logo.url}\n alt={`${attributes.name} logo`}\n hasRadius\n width={11}\n height={11}\n />\n <PackageStats\n githubStars={attributes.githubStars}\n npmDownloads={attributes.npmDownloads}\n npmPackageType={npmPackageType}\n />\n </Flex>\n <Box paddingTop={4}>\n <Typography tag=\"h3\" variant=\"delta\">\n <Flex\n alignItems=\"center\"\n gap={attributes.validated && !attributes.madeByStrapi ? 2 : 1}\n >\n {attributes.name}\n {attributes.validated && !attributes.madeByStrapi && (\n <Tooltip\n description={formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.tooltip.verified',\n defaultMessage: 'Plugin verified by Strapi',\n })}\n >\n <CheckCircle fill=\"success600\" />\n </Tooltip>\n )}\n {attributes.madeByStrapi && (\n <Tooltip label={madeByStrapiMessage}>\n <Box\n tag=\"img\"\n src={StrapiLogo}\n alt={madeByStrapiMessage}\n width={6}\n height=\"auto\"\n />\n </Tooltip>\n )}\n </Flex>\n </Typography>\n </Box>\n <Box paddingTop={2}>\n <EllipsisText tag=\"p\" variant=\"omega\" textColor=\"neutral600\">\n {attributes.description}\n </EllipsisText>\n </Box>\n </Box>\n\n <Flex gap={2} style={{ alignSelf: 'flex-end' }} paddingTop={6}>\n <LinkButton\n size=\"S\"\n href={npmPackageHref}\n isExternal\n endIcon={<ExternalLink />}\n aria-label={formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.plugin.info.label',\n defaultMessage: 'Learn more about {pluginName}',\n },\n { pluginName: attributes.name }\n )}\n variant=\"tertiary\"\n onClick={() => trackUsage('didPluginLearnMore')}\n >\n {formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.info.text',\n defaultMessage: 'More',\n })}\n </LinkButton>\n <InstallPluginButton\n isInstalled={isInstalled}\n isInDevelopmentMode={isInDevelopmentMode}\n isCompatible={isCompatible}\n commandToCopy={commandToCopy}\n strapiAppVersion={strapiAppVersion}\n strapiPeerDepVersion={attributes.strapiVersion}\n pluginName={attributes.name}\n />\n </Flex>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * InstallPluginButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface InstallPluginButtonProps\n extends Pick<NpmPackageCardProps, 'isInstalled' | 'isInDevelopmentMode' | 'strapiAppVersion'> {\n commandToCopy: string;\n pluginName: string;\n strapiPeerDepVersion?: string;\n isCompatible?: boolean;\n}\n\nconst InstallPluginButton = ({\n isInstalled,\n isInDevelopmentMode,\n isCompatible,\n commandToCopy,\n strapiAppVersion,\n strapiPeerDepVersion,\n pluginName,\n}: InstallPluginButtonProps) => {\n const { toggleNotification } = useNotification();\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const { copy } = useClipboard();\n\n const handleCopy = async () => {\n const didCopy = await copy(commandToCopy);\n\n if (didCopy) {\n trackUsage('willInstallPlugin');\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'admin.pages.MarketPlacePage.plugin.copy.success' }),\n });\n }\n };\n\n // Already installed\n if (isInstalled) {\n return (\n <Flex gap={2} paddingLeft={4}>\n <Check width=\"1.2rem\" height=\"1.2rem\" color=\"success600\" />\n <Typography variant=\"omega\" textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.installed',\n defaultMessage: 'Installed',\n })}\n </Typography>\n </Flex>\n );\n }\n\n // In development, show install button\n if (isInDevelopmentMode && isCompatible !== false) {\n return (\n <CardButton\n strapiAppVersion={strapiAppVersion}\n strapiPeerDepVersion={strapiPeerDepVersion}\n handleCopy={handleCopy}\n pluginName={pluginName}\n />\n );\n }\n\n // Not in development and plugin not installed already. Show nothing\n return null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CardButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CardButtonProps\n extends Pick<NpmPackageCardProps, 'strapiAppVersion'>,\n Pick<InstallPluginButtonProps, 'strapiPeerDepVersion' | 'pluginName'> {\n handleCopy: () => void;\n}\n\nconst CardButton = ({\n strapiPeerDepVersion,\n strapiAppVersion,\n handleCopy,\n pluginName,\n}: CardButtonProps) => {\n const { formatMessage } = useIntl();\n const versionRange = semver.validRange(strapiPeerDepVersion);\n const isCompatible = semver.satisfies(strapiAppVersion ?? '', versionRange ?? '');\n\n const installMessage = formatMessage({\n id: 'admin.pages.MarketPlacePage.plugin.copy',\n defaultMessage: 'Copy install command',\n });\n\n // Only plugins receive a strapiAppVersion\n if (strapiAppVersion) {\n if (!versionRange || !isCompatible) {\n return (\n <Tooltip\n data-testid={`tooltip-${pluginName}`}\n label={formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.plugin.version',\n defaultMessage:\n 'Update your Strapi version: \"{strapiAppVersion}\" to: \"{versionRange}\"',\n },\n {\n strapiAppVersion,\n versionRange,\n }\n )}\n >\n <span>\n <Button\n size=\"S\"\n startIcon={<Duplicate />}\n variant=\"secondary\"\n onClick={handleCopy}\n disabled={!isCompatible}\n >\n {installMessage}\n </Button>\n </span>\n </Tooltip>\n );\n }\n }\n\n return (\n <Button size=\"S\" startIcon={<Duplicate />} variant=\"secondary\" onClick={handleCopy}>\n {installMessage}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PackageStats\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PackageStatsProps {\n githubStars?: number;\n npmDownloads?: number;\n npmPackageType: NpmPackageType;\n}\n\nconst PackageStats = ({ githubStars = 0, npmDownloads = 0, npmPackageType }: PackageStatsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Flex gap={1}>\n {!!githubStars && (\n <>\n <GitHub height=\"1.2rem\" width=\"1.2rem\" aria-hidden />\n <Star height=\"1.2rem\" width=\"1.2rem\" fill=\"warning500\" aria-hidden />\n <p\n aria-label={formatMessage(\n {\n id: `admin.pages.MarketPlacePage.${npmPackageType}.githubStars`,\n defaultMessage: `This {package} was starred {starsCount} on GitHub`,\n },\n {\n starsCount: githubStars,\n package: npmPackageType,\n }\n )}\n >\n <Typography variant=\"pi\" textColor=\"neutral800\">\n {githubStars}\n </Typography>\n </p>\n <VerticalDivider />\n </>\n )}\n <Download height=\"1.2rem\" width=\"1.2rem\" aria-hidden />\n <p\n aria-label={formatMessage(\n {\n id: `admin.pages.MarketPlacePage.${npmPackageType}.downloads`,\n defaultMessage: `This {package} has {downloadsCount} weekly downloads`,\n },\n {\n downloadsCount: npmDownloads,\n package: npmPackageType,\n }\n )}\n >\n <Typography variant=\"pi\" textColor=\"neutral800\">\n {npmDownloads}\n </Typography>\n </p>\n </Flex>\n );\n};\n\nconst VerticalDivider = styled(Divider)`\n width: 1.2rem;\n transform: rotate(90deg);\n`;\n\nexport { NpmPackageCard };\nexport type { NpmPackageCardProps };\n"],"names":["EllipsisText","styled","Typography","NpmPackageCard","npmPackage","isInstalled","useYarn","isInDevelopmentMode","npmPackageType","strapiAppVersion","attributes","formatMessage","useIntl","trackUsage","useTracking","commandToCopy","npmPackageName","madeByStrapiMessage","id","defaultMessage","npmPackageHref","pluralize","plural","slug","versionRange","semver","validRange","strapiVersion","isCompatible","satisfies","_jsxs","Flex","direction","justifyContent","paddingTop","paddingRight","paddingBottom","paddingLeft","hasRadius","background","shadow","height","alignItems","data-testid","Box","_jsx","tag","src","logo","url","alt","name","width","PackageStats","githubStars","npmDownloads","variant","gap","validated","madeByStrapi","Tooltip","description","CheckCircle","fill","label","StrapiLogo","textColor","style","alignSelf","LinkButton","size","href","isExternal","endIcon","ExternalLink","aria-label","pluginName","onClick","InstallPluginButton","strapiPeerDepVersion","toggleNotification","useNotification","copy","useClipboard","handleCopy","didCopy","type","message","Check","color","fontWeight","CardButton","installMessage","span","Button","startIcon","Duplicate","disabled","_Fragment","GitHub","aria-hidden","Star","p","starsCount","package","VerticalDivider","Download","downloadsCount","Divider"],"mappings":";;;;;;;;;;;;;AA0BA;AACA,MAAMA,YAAAA,GAAeC,MAAiCC,CAAAA,UAAAA,CAAW;;;;;AAKjE,CAAC;AAUD,MAAMC,cAAiB,GAAA,CAAC,EACtBC,UAAU,EACVC,WAAW,EACXC,OAAO,EACPC,mBAAmB,EACnBC,cAAc,EACdC,gBAAgB,EACI,GAAA;IACpB,MAAM,EAAEC,UAAU,EAAE,GAAGN,UAAAA;IACvB,MAAM,EAAEO,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AAEvB,IAAA,MAAMC,aAAgBT,GAAAA,OAAAA,GAClB,CAAC,SAAS,EAAEI,UAAWM,CAAAA,cAAc,CAAE,CAAA,GACvC,CAAC,YAAY,EAAEN,UAAAA,CAAWM,cAAc,CAAE,CAAA;AAE9C,IAAA,MAAMC,sBAAsBN,aAAc,CAAA;QACxCO,EAAI,EAAA,yDAAA;QACJC,cAAgB,EAAA;AAClB,KAAA,CAAA;AAEA,IAAA,MAAMC,cAAiB,GAAA,CAAC,yBAAyB,EAAEC,SAAUC,CAAAA,MAAM,CAACd,cAAAA,CAAAA,CAAgB,CAAC,EACnFE,UAAWa,CAAAA,IAAI,CACf,CAAA;AAEF,IAAA,MAAMC,YAAeC,GAAAA,MAAAA,CAAOC,UAAU,CAAChB,WAAWiB,aAAa,CAAA;AAE/D,IAAA,MAAMC,eAAeJ,YACjBC,GAAAA,MAAAA,CAAOI,SAAS,CAACpB,gBAAAA,IAAoB,IAAIe,YACzC,CAAA,GAAA,KAAA;AAEJ,IAAA,qBACEM,IAACC,CAAAA,IAAAA,EAAAA;QACCC,SAAU,EAAA,QAAA;QACVC,cAAe,EAAA,eAAA;QACfC,UAAY,EAAA,CAAA;QACZC,YAAc,EAAA,CAAA;QACdC,aAAe,EAAA,CAAA;QACfC,WAAa,EAAA,CAAA;QACbC,SAAS,EAAA,IAAA;QACTC,UAAW,EAAA,UAAA;QACXC,MAAO,EAAA,aAAA;QACPC,MAAO,EAAA,MAAA;QACPC,UAAW,EAAA,QAAA;QACXC,aAAY,EAAA,kBAAA;;0BAEZb,IAACc,CAAAA,GAAAA,EAAAA;;kCACCd,IAACC,CAAAA,IAAAA,EAAAA;wBAAKC,SAAU,EAAA,KAAA;wBAAMC,cAAe,EAAA,eAAA;wBAAgBS,UAAW,EAAA,YAAA;;0CAC9DG,GAACD,CAAAA,GAAAA,EAAAA;gCACCE,GAAI,EAAA,KAAA;gCACJC,GAAKrC,EAAAA,UAAAA,CAAWsC,IAAI,CAACC,GAAG;AACxBC,gCAAAA,GAAAA,EAAK,CAAGxC,EAAAA,UAAAA,CAAWyC,IAAI,CAAC,KAAK,CAAC;gCAC9Bb,SAAS,EAAA,IAAA;gCACTc,KAAO,EAAA,EAAA;gCACPX,MAAQ,EAAA;;0CAEVI,GAACQ,CAAAA,YAAAA,EAAAA;AACCC,gCAAAA,WAAAA,EAAa5C,WAAW4C,WAAW;AACnCC,gCAAAA,YAAAA,EAAc7C,WAAW6C,YAAY;gCACrC/C,cAAgBA,EAAAA;;;;kCAGpBqC,GAACD,CAAAA,GAAAA,EAAAA;wBAAIV,UAAY,EAAA,CAAA;AACf,wBAAA,QAAA,gBAAAW,GAAC3C,CAAAA,UAAAA,EAAAA;4BAAW4C,GAAI,EAAA,IAAA;4BAAKU,OAAQ,EAAA,OAAA;AAC3B,4BAAA,QAAA,gBAAA1B,IAACC,CAAAA,IAAAA,EAAAA;gCACCW,UAAW,EAAA,QAAA;AACXe,gCAAAA,GAAAA,EAAK/C,WAAWgD,SAAS,IAAI,CAAChD,UAAWiD,CAAAA,YAAY,GAAG,CAAI,GAAA,CAAA;;AAE3DjD,oCAAAA,UAAAA,CAAWyC,IAAI;AACfzC,oCAAAA,UAAAA,CAAWgD,SAAS,IAAI,CAAChD,UAAWiD,CAAAA,YAAY,kBAC/Cd,GAACe,CAAAA,OAAAA,EAAAA;AACCC,wCAAAA,WAAAA,EAAalD,aAAc,CAAA;4CACzBO,EAAI,EAAA,qDAAA;4CACJC,cAAgB,EAAA;AAClB,yCAAA,CAAA;AAEA,wCAAA,QAAA,gBAAA0B,GAACiB,CAAAA,WAAAA,EAAAA;4CAAYC,IAAK,EAAA;;;oCAGrBrD,UAAWiD,CAAAA,YAAY,kBACtBd,GAACe,CAAAA,OAAAA,EAAAA;wCAAQI,KAAO/C,EAAAA,mBAAAA;AACd,wCAAA,QAAA,gBAAA4B,GAACD,CAAAA,GAAAA,EAAAA;4CACCE,GAAI,EAAA,KAAA;4CACJC,GAAKkB,EAAAA,GAAAA;4CACLf,GAAKjC,EAAAA,mBAAAA;4CACLmC,KAAO,EAAA,CAAA;4CACPX,MAAO,EAAA;;;;;;;kCAOnBI,GAACD,CAAAA,GAAAA,EAAAA;wBAAIV,UAAY,EAAA,CAAA;AACf,wBAAA,QAAA,gBAAAW,GAAC7C,CAAAA,YAAAA,EAAAA;4BAAa8C,GAAI,EAAA,GAAA;4BAAIU,OAAQ,EAAA,OAAA;4BAAQU,SAAU,EAAA,YAAA;AAC7CxD,4BAAAA,QAAAA,EAAAA,UAAAA,CAAWmD;;;;;0BAKlB/B,IAACC,CAAAA,IAAAA,EAAAA;gBAAK0B,GAAK,EAAA,CAAA;gBAAGU,KAAO,EAAA;oBAAEC,SAAW,EAAA;AAAW,iBAAA;gBAAGlC,UAAY,EAAA,CAAA;;kCAC1DW,GAACwB,CAAAA,UAAAA,EAAAA;wBACCC,IAAK,EAAA,GAAA;wBACLC,IAAMnD,EAAAA,cAAAA;wBACNoD,UAAU,EAAA,IAAA;AACVC,wBAAAA,OAAAA,gBAAS5B,GAAC6B,CAAAA,YAAAA,EAAAA,EAAAA,CAAAA;AACVC,wBAAAA,YAAAA,EAAYhE,aACV,CAAA;4BACEO,EAAI,EAAA,+CAAA;4BACJC,cAAgB,EAAA;yBAElB,EAAA;AAAEyD,4BAAAA,UAAAA,EAAYlE,WAAWyC;AAAK,yBAAA,CAAA;wBAEhCK,OAAQ,EAAA,UAAA;AACRqB,wBAAAA,OAAAA,EAAS,IAAMhE,UAAW,CAAA,oBAAA,CAAA;kCAEzBF,aAAc,CAAA;4BACbO,EAAI,EAAA,8CAAA;4BACJC,cAAgB,EAAA;AAClB,yBAAA;;kCAEF0B,GAACiC,CAAAA,mBAAAA,EAAAA;wBACCzE,WAAaA,EAAAA,WAAAA;wBACbE,mBAAqBA,EAAAA,mBAAAA;wBACrBqB,YAAcA,EAAAA,YAAAA;wBACdb,aAAeA,EAAAA,aAAAA;wBACfN,gBAAkBA,EAAAA,gBAAAA;AAClBsE,wBAAAA,oBAAAA,EAAsBrE,WAAWiB,aAAa;AAC9CiD,wBAAAA,UAAAA,EAAYlE,WAAWyC;;;;;;AAKjC;AAcA,MAAM2B,sBAAsB,CAAC,EAC3BzE,WAAW,EACXE,mBAAmB,EACnBqB,YAAY,EACZb,aAAa,EACbN,gBAAgB,EAChBsE,oBAAoB,EACpBH,UAAU,EACe,GAAA;IACzB,MAAM,EAAEI,kBAAkB,EAAE,GAAGC,eAAAA,EAAAA;IAC/B,MAAM,EAAEtE,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;IACvB,MAAM,EAAEoE,IAAI,EAAE,GAAGC,YAAAA,EAAAA;AAEjB,IAAA,MAAMC,UAAa,GAAA,UAAA;QACjB,MAAMC,OAAAA,GAAU,MAAMH,IAAKnE,CAAAA,aAAAA,CAAAA;AAE3B,QAAA,IAAIsE,OAAS,EAAA;YACXxE,UAAW,CAAA,mBAAA,CAAA;YACXmE,kBAAmB,CAAA;gBACjBM,IAAM,EAAA,SAAA;AACNC,gBAAAA,OAAAA,EAAS5E,aAAc,CAAA;oBAAEO,EAAI,EAAA;AAAkD,iBAAA;AACjF,aAAA,CAAA;AACF;AACF,KAAA;;AAGA,IAAA,IAAIb,WAAa,EAAA;AACf,QAAA,qBACEyB,IAACC,CAAAA,IAAAA,EAAAA;YAAK0B,GAAK,EAAA,CAAA;YAAGpB,WAAa,EAAA,CAAA;;8BACzBQ,GAAC2C,CAAAA,KAAAA,EAAAA;oBAAMpC,KAAM,EAAA,QAAA;oBAASX,MAAO,EAAA,QAAA;oBAASgD,KAAM,EAAA;;8BAC5C5C,GAAC3C,CAAAA,UAAAA,EAAAA;oBAAWsD,OAAQ,EAAA,OAAA;oBAAQU,SAAU,EAAA,YAAA;oBAAawB,UAAW,EAAA,MAAA;8BAC3D/E,aAAc,CAAA;wBACbO,EAAI,EAAA,8CAAA;wBACJC,cAAgB,EAAA;AAClB,qBAAA;;;;AAIR;;IAGA,IAAIZ,mBAAAA,IAAuBqB,iBAAiB,KAAO,EAAA;AACjD,QAAA,qBACEiB,GAAC8C,CAAAA,UAAAA,EAAAA;YACClF,gBAAkBA,EAAAA,gBAAAA;YAClBsE,oBAAsBA,EAAAA,oBAAAA;YACtBK,UAAYA,EAAAA,UAAAA;YACZR,UAAYA,EAAAA;;AAGlB;;IAGA,OAAO,IAAA;AACT,CAAA;AAYA,MAAMe,UAAAA,GAAa,CAAC,EAClBZ,oBAAoB,EACpBtE,gBAAgB,EAChB2E,UAAU,EACVR,UAAU,EACM,GAAA;IAChB,MAAM,EAAEjE,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAC1B,MAAMY,YAAAA,GAAeC,MAAOC,CAAAA,UAAU,CAACqD,oBAAAA,CAAAA;AACvC,IAAA,MAAMnD,eAAeH,MAAOI,CAAAA,SAAS,CAACpB,gBAAAA,IAAoB,IAAIe,YAAgB,IAAA,EAAA,CAAA;AAE9E,IAAA,MAAMoE,iBAAiBjF,aAAc,CAAA;QACnCO,EAAI,EAAA,yCAAA;QACJC,cAAgB,EAAA;AAClB,KAAA,CAAA;;AAGA,IAAA,IAAIV,gBAAkB,EAAA;QACpB,IAAI,CAACe,YAAgB,IAAA,CAACI,YAAc,EAAA;AAClC,YAAA,qBACEiB,GAACe,CAAAA,OAAAA,EAAAA;gBACCjB,aAAa,EAAA,CAAC,QAAQ,EAAEiC,UAAY,CAAA,CAAA;AACpCZ,gBAAAA,KAAAA,EAAOrD,aACL,CAAA;oBACEO,EAAI,EAAA,4CAAA;oBACJC,cACE,EAAA;iBAEJ,EAAA;AACEV,oBAAAA,gBAAAA;AACAe,oBAAAA;AACF,iBAAA,CAAA;AAGF,gBAAA,QAAA,gBAAAqB,GAACgD,CAAAA,MAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAhD,GAACiD,CAAAA,MAAAA,EAAAA;wBACCxB,IAAK,EAAA,GAAA;AACLyB,wBAAAA,SAAAA,gBAAWlD,GAACmD,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;wBACZxC,OAAQ,EAAA,WAAA;wBACRqB,OAASO,EAAAA,UAAAA;AACTa,wBAAAA,QAAAA,EAAU,CAACrE,YAAAA;AAEVgE,wBAAAA,QAAAA,EAAAA;;;;AAKX;AACF;AAEA,IAAA,qBACE/C,GAACiD,CAAAA,MAAAA,EAAAA;QAAOxB,IAAK,EAAA,GAAA;AAAIyB,QAAAA,SAAAA,gBAAWlD,GAACmD,CAAAA,SAAAA,EAAAA,EAAAA,CAAAA;QAAcxC,OAAQ,EAAA,WAAA;QAAYqB,OAASO,EAAAA,UAAAA;AACrEQ,QAAAA,QAAAA,EAAAA;;AAGP,CAAA;AAYA,MAAMvC,YAAAA,GAAe,CAAC,EAAEC,WAAc,GAAA,CAAC,EAAEC,YAAe,GAAA,CAAC,EAAE/C,cAAc,EAAqB,GAAA;IAC5F,MAAM,EAAEG,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEkB,IAACC,CAAAA,IAAAA,EAAAA;QAAK0B,GAAK,EAAA,CAAA;;AACR,YAAA,CAAC,CAACH,WACD,kBAAAxB,IAAA,CAAAoE,QAAA,EAAA;;kCACErD,GAACsD,CAAAA,MAAAA,EAAAA;wBAAO1D,MAAO,EAAA,QAAA;wBAASW,KAAM,EAAA,QAAA;wBAASgD,aAAW,EAAA;;kCAClDvD,GAACwD,CAAAA,IAAAA,EAAAA;wBAAK5D,MAAO,EAAA,QAAA;wBAASW,KAAM,EAAA,QAAA;wBAASW,IAAK,EAAA,YAAA;wBAAaqC,aAAW,EAAA;;kCAClEvD,GAACyD,CAAAA,GAAAA,EAAAA;AACC3B,wBAAAA,YAAAA,EAAYhE,aACV,CAAA;AACEO,4BAAAA,EAAAA,EAAI,CAAC,4BAA4B,EAAEV,cAAAA,CAAe,YAAY,CAAC;4BAC/DW,cAAgB,EAAA,CAAC,iDAAiD;yBAEpE,EAAA;4BACEoF,UAAYjD,EAAAA,WAAAA;4BACZkD,OAAShG,EAAAA;AACX,yBAAA,CAAA;AAGF,wBAAA,QAAA,gBAAAqC,GAAC3C,CAAAA,UAAAA,EAAAA;4BAAWsD,OAAQ,EAAA,IAAA;4BAAKU,SAAU,EAAA,YAAA;AAChCZ,4BAAAA,QAAAA,EAAAA;;;kCAGLT,GAAC4D,CAAAA,eAAAA,EAAAA,EAAAA;;;0BAGL5D,GAAC6D,CAAAA,QAAAA,EAAAA;gBAASjE,MAAO,EAAA,QAAA;gBAASW,KAAM,EAAA,QAAA;gBAASgD,aAAW,EAAA;;0BACpDvD,GAACyD,CAAAA,GAAAA,EAAAA;AACC3B,gBAAAA,YAAAA,EAAYhE,aACV,CAAA;AACEO,oBAAAA,EAAAA,EAAI,CAAC,4BAA4B,EAAEV,cAAAA,CAAe,UAAU,CAAC;oBAC7DW,cAAgB,EAAA,CAAC,oDAAoD;iBAEvE,EAAA;oBACEwF,cAAgBpD,EAAAA,YAAAA;oBAChBiD,OAAShG,EAAAA;AACX,iBAAA,CAAA;AAGF,gBAAA,QAAA,gBAAAqC,GAAC3C,CAAAA,UAAAA,EAAAA;oBAAWsD,OAAQ,EAAA,IAAA;oBAAKU,SAAU,EAAA,YAAA;AAChCX,oBAAAA,QAAAA,EAAAA;;;;;AAKX,CAAA;AAEA,MAAMkD,eAAAA,GAAkBxG,MAAO2G,CAAAA,OAAAA,CAAQ;;;AAGvC,CAAC;;;;"}
@@ -1,121 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- require('react');
5
- var designSystem = require('@strapi/design-system');
6
- var icons = require('@strapi/icons');
7
- var reactIntl = require('react-intl');
8
-
9
- const NpmPackagesFilters = ({ handleSelectClear, handleSelectChange, npmPackageType, possibleCategories, possibleCollections, query })=>{
10
- const { formatMessage } = reactIntl.useIntl();
11
- const handleTagRemove = (tagToRemove, filterType)=>{
12
- const update = {
13
- [filterType]: (query[filterType] ?? []).filter((previousTag)=>previousTag !== tagToRemove)
14
- };
15
- handleSelectChange(update);
16
- };
17
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Popover.Root, {
18
- children: [
19
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Trigger, {
20
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
21
- variant: "tertiary",
22
- startIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.Filter, {}),
23
- children: formatMessage({
24
- id: 'app.utils.filters',
25
- defaultMessage: 'Filters'
26
- })
27
- })
28
- }),
29
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Content, {
30
- sideOffset: 4,
31
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
32
- padding: 3,
33
- direction: "column",
34
- alignItems: "stretch",
35
- gap: 1,
36
- children: [
37
- /*#__PURE__*/ jsxRuntime.jsx(FilterSelect, {
38
- message: formatMessage({
39
- id: 'admin.pages.MarketPlacePage.filters.collections',
40
- defaultMessage: 'Collections'
41
- }),
42
- value: query?.collections || [],
43
- onChange: (newCollections)=>{
44
- const update = {
45
- collections: newCollections
46
- };
47
- handleSelectChange(update);
48
- },
49
- onClear: ()=>handleSelectClear('collections'),
50
- possibleFilters: possibleCollections,
51
- customizeContent: (values)=>formatMessage({
52
- id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',
53
- defaultMessage: '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected'
54
- }, {
55
- count: values?.length ?? 0
56
- })
57
- }),
58
- npmPackageType === 'plugin' && /*#__PURE__*/ jsxRuntime.jsx(FilterSelect, {
59
- message: formatMessage({
60
- id: 'admin.pages.MarketPlacePage.filters.categories',
61
- defaultMessage: 'Categories'
62
- }),
63
- value: query?.categories || [],
64
- onChange: (newCategories)=>{
65
- const update = {
66
- categories: newCategories
67
- };
68
- handleSelectChange(update);
69
- },
70
- onClear: ()=>handleSelectClear('categories'),
71
- possibleFilters: possibleCategories,
72
- customizeContent: (values)=>formatMessage({
73
- id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',
74
- defaultMessage: '{count, plural, =0 {No categories} one {# category} other {# categories}} selected'
75
- }, {
76
- count: values?.length ?? 0
77
- })
78
- })
79
- ]
80
- })
81
- }),
82
- query.collections?.map((collection)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
83
- padding: 1,
84
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tag, {
85
- icon: /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {}),
86
- onClick: ()=>handleTagRemove(collection, 'collections'),
87
- children: collection
88
- })
89
- }, collection)),
90
- npmPackageType === 'plugin' && query.categories?.map((category)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
91
- padding: 1,
92
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tag, {
93
- icon: /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {}),
94
- onClick: ()=>handleTagRemove(category, 'categories'),
95
- children: category
96
- })
97
- }, category))
98
- ]
99
- });
100
- };
101
- const FilterSelect = ({ message, value, onChange, possibleFilters, onClear, customizeContent })=>{
102
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.MultiSelect, {
103
- "data-testid": `${message}-button`,
104
- "aria-label": message,
105
- placeholder: message,
106
- onChange: onChange,
107
- onClear: onClear,
108
- value: value,
109
- customizeContent: customizeContent,
110
- children: Object.entries(possibleFilters).map(([filterName, count])=>{
111
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.MultiSelectOption, {
112
- "data-testid": `${filterName}-${count}`,
113
- value: filterName,
114
- children: `${filterName} (${count})`
115
- }, filterName);
116
- })
117
- });
118
- };
119
-
120
- exports.NpmPackagesFilters = NpmPackagesFilters;
121
- //# sourceMappingURL=NpmPackagesFilters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NpmPackagesFilters.js","sources":["../../../../../../../admin/src/pages/Marketplace/components/NpmPackagesFilters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Tag,\n MultiSelect,\n MultiSelectOption,\n MultiSelectProps,\n Popover,\n Flex,\n} from '@strapi/design-system';\nimport { Cross, Filter } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport type { Categories, Collections, FilterTypes } from '../hooks/useMarketplaceData';\nimport type { NpmPackageType, MarketplacePageQuery } from '../MarketplacePage';\n\ninterface NpmPackagesFiltersProps {\n handleSelectClear: (type: FilterTypes) => void;\n handleSelectChange: (update: Partial<MarketplacePageQuery>) => void;\n npmPackageType: NpmPackageType;\n possibleCategories: Partial<Record<Categories, number>>;\n possibleCollections: Partial<Record<Collections, number>>;\n query: MarketplacePageQuery;\n}\n\nconst NpmPackagesFilters = ({\n handleSelectClear,\n handleSelectChange,\n npmPackageType,\n possibleCategories,\n possibleCollections,\n query,\n}: NpmPackagesFiltersProps) => {\n const { formatMessage } = useIntl();\n\n const handleTagRemove = (tagToRemove: string, filterType: FilterTypes) => {\n const update = {\n [filterType]: (query[filterType] ?? []).filter((previousTag) => previousTag !== tagToRemove),\n };\n\n handleSelectChange(update);\n };\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <Button variant=\"tertiary\" startIcon={<Filter />}>\n {formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n <Popover.Content sideOffset={4}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FilterSelect\n message={formatMessage({\n id: 'admin.pages.MarketPlacePage.filters.collections',\n defaultMessage: 'Collections',\n })}\n value={query?.collections || []}\n onChange={(newCollections) => {\n const update = { collections: newCollections };\n handleSelectChange(update);\n }}\n onClear={() => handleSelectClear('collections')}\n possibleFilters={possibleCollections}\n customizeContent={(values) =>\n formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',\n defaultMessage:\n '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected',\n },\n { count: values?.length ?? 0 }\n )\n }\n />\n {npmPackageType === 'plugin' && (\n <FilterSelect\n message={formatMessage({\n id: 'admin.pages.MarketPlacePage.filters.categories',\n defaultMessage: 'Categories',\n })}\n value={query?.categories || []}\n onChange={(newCategories) => {\n const update = { categories: newCategories };\n handleSelectChange(update);\n }}\n onClear={() => handleSelectClear('categories')}\n possibleFilters={possibleCategories}\n customizeContent={(values) =>\n formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',\n defaultMessage:\n '{count, plural, =0 {No categories} one {# category} other {# categories}} selected',\n },\n { count: values?.length ?? 0 }\n )\n }\n />\n )}\n </Flex>\n </Popover.Content>\n\n {query.collections?.map((collection) => (\n <Box key={collection} padding={1}>\n <Tag icon={<Cross />} onClick={() => handleTagRemove(collection, 'collections')}>\n {collection}\n </Tag>\n </Box>\n ))}\n {npmPackageType === 'plugin' &&\n query.categories?.map((category) => (\n <Box key={category} padding={1}>\n <Tag icon={<Cross />} onClick={() => handleTagRemove(category, 'categories')}>\n {category}\n </Tag>\n </Box>\n ))}\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FilterSelect\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FilterSelectProps\n extends Pick<MultiSelectProps, 'customizeContent' | 'onClear' | 'onChange' | 'value'> {\n message: string;\n possibleFilters:\n | NpmPackagesFiltersProps['possibleCategories']\n | NpmPackagesFiltersProps['possibleCollections'];\n}\n\nconst FilterSelect = ({\n message,\n value,\n onChange,\n possibleFilters,\n onClear,\n customizeContent,\n}: FilterSelectProps) => {\n return (\n <MultiSelect\n data-testid={`${message}-button`}\n aria-label={message}\n placeholder={message}\n onChange={onChange}\n onClear={onClear}\n value={value}\n customizeContent={customizeContent}\n >\n {Object.entries(possibleFilters).map(([filterName, count]) => {\n return (\n <MultiSelectOption\n data-testid={`${filterName}-${count}`}\n key={filterName}\n value={filterName}\n >\n {`${filterName} (${count})`}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n );\n};\n\nexport { NpmPackagesFilters };\nexport type { NpmPackagesFiltersProps };\n"],"names":["NpmPackagesFilters","handleSelectClear","handleSelectChange","npmPackageType","possibleCategories","possibleCollections","query","formatMessage","useIntl","handleTagRemove","tagToRemove","filterType","update","filter","previousTag","_jsxs","Popover","Root","_jsx","Trigger","Button","variant","startIcon","Filter","id","defaultMessage","Content","sideOffset","Flex","padding","direction","alignItems","gap","FilterSelect","message","value","collections","onChange","newCollections","onClear","possibleFilters","customizeContent","values","count","length","categories","newCategories","map","collection","Box","Tag","icon","Cross","onClick","category","MultiSelect","data-testid","aria-label","placeholder","Object","entries","filterName","MultiSelectOption"],"mappings":"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"}
@@ -1,119 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import 'react';
3
- import { Popover, Button, Flex, Box, Tag, MultiSelect, MultiSelectOption } from '@strapi/design-system';
4
- import { Filter, Cross } from '@strapi/icons';
5
- import { useIntl } from 'react-intl';
6
-
7
- const NpmPackagesFilters = ({ handleSelectClear, handleSelectChange, npmPackageType, possibleCategories, possibleCollections, query })=>{
8
- const { formatMessage } = useIntl();
9
- const handleTagRemove = (tagToRemove, filterType)=>{
10
- const update = {
11
- [filterType]: (query[filterType] ?? []).filter((previousTag)=>previousTag !== tagToRemove)
12
- };
13
- handleSelectChange(update);
14
- };
15
- return /*#__PURE__*/ jsxs(Popover.Root, {
16
- children: [
17
- /*#__PURE__*/ jsx(Popover.Trigger, {
18
- children: /*#__PURE__*/ jsx(Button, {
19
- variant: "tertiary",
20
- startIcon: /*#__PURE__*/ jsx(Filter, {}),
21
- children: formatMessage({
22
- id: 'app.utils.filters',
23
- defaultMessage: 'Filters'
24
- })
25
- })
26
- }),
27
- /*#__PURE__*/ jsx(Popover.Content, {
28
- sideOffset: 4,
29
- children: /*#__PURE__*/ jsxs(Flex, {
30
- padding: 3,
31
- direction: "column",
32
- alignItems: "stretch",
33
- gap: 1,
34
- children: [
35
- /*#__PURE__*/ jsx(FilterSelect, {
36
- message: formatMessage({
37
- id: 'admin.pages.MarketPlacePage.filters.collections',
38
- defaultMessage: 'Collections'
39
- }),
40
- value: query?.collections || [],
41
- onChange: (newCollections)=>{
42
- const update = {
43
- collections: newCollections
44
- };
45
- handleSelectChange(update);
46
- },
47
- onClear: ()=>handleSelectClear('collections'),
48
- possibleFilters: possibleCollections,
49
- customizeContent: (values)=>formatMessage({
50
- id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',
51
- defaultMessage: '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected'
52
- }, {
53
- count: values?.length ?? 0
54
- })
55
- }),
56
- npmPackageType === 'plugin' && /*#__PURE__*/ jsx(FilterSelect, {
57
- message: formatMessage({
58
- id: 'admin.pages.MarketPlacePage.filters.categories',
59
- defaultMessage: 'Categories'
60
- }),
61
- value: query?.categories || [],
62
- onChange: (newCategories)=>{
63
- const update = {
64
- categories: newCategories
65
- };
66
- handleSelectChange(update);
67
- },
68
- onClear: ()=>handleSelectClear('categories'),
69
- possibleFilters: possibleCategories,
70
- customizeContent: (values)=>formatMessage({
71
- id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',
72
- defaultMessage: '{count, plural, =0 {No categories} one {# category} other {# categories}} selected'
73
- }, {
74
- count: values?.length ?? 0
75
- })
76
- })
77
- ]
78
- })
79
- }),
80
- query.collections?.map((collection)=>/*#__PURE__*/ jsx(Box, {
81
- padding: 1,
82
- children: /*#__PURE__*/ jsx(Tag, {
83
- icon: /*#__PURE__*/ jsx(Cross, {}),
84
- onClick: ()=>handleTagRemove(collection, 'collections'),
85
- children: collection
86
- })
87
- }, collection)),
88
- npmPackageType === 'plugin' && query.categories?.map((category)=>/*#__PURE__*/ jsx(Box, {
89
- padding: 1,
90
- children: /*#__PURE__*/ jsx(Tag, {
91
- icon: /*#__PURE__*/ jsx(Cross, {}),
92
- onClick: ()=>handleTagRemove(category, 'categories'),
93
- children: category
94
- })
95
- }, category))
96
- ]
97
- });
98
- };
99
- const FilterSelect = ({ message, value, onChange, possibleFilters, onClear, customizeContent })=>{
100
- return /*#__PURE__*/ jsx(MultiSelect, {
101
- "data-testid": `${message}-button`,
102
- "aria-label": message,
103
- placeholder: message,
104
- onChange: onChange,
105
- onClear: onClear,
106
- value: value,
107
- customizeContent: customizeContent,
108
- children: Object.entries(possibleFilters).map(([filterName, count])=>{
109
- return /*#__PURE__*/ jsx(MultiSelectOption, {
110
- "data-testid": `${filterName}-${count}`,
111
- value: filterName,
112
- children: `${filterName} (${count})`
113
- }, filterName);
114
- })
115
- });
116
- };
117
-
118
- export { NpmPackagesFilters };
119
- //# sourceMappingURL=NpmPackagesFilters.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NpmPackagesFilters.mjs","sources":["../../../../../../../admin/src/pages/Marketplace/components/NpmPackagesFilters.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Button,\n Tag,\n MultiSelect,\n MultiSelectOption,\n MultiSelectProps,\n Popover,\n Flex,\n} from '@strapi/design-system';\nimport { Cross, Filter } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport type { Categories, Collections, FilterTypes } from '../hooks/useMarketplaceData';\nimport type { NpmPackageType, MarketplacePageQuery } from '../MarketplacePage';\n\ninterface NpmPackagesFiltersProps {\n handleSelectClear: (type: FilterTypes) => void;\n handleSelectChange: (update: Partial<MarketplacePageQuery>) => void;\n npmPackageType: NpmPackageType;\n possibleCategories: Partial<Record<Categories, number>>;\n possibleCollections: Partial<Record<Collections, number>>;\n query: MarketplacePageQuery;\n}\n\nconst NpmPackagesFilters = ({\n handleSelectClear,\n handleSelectChange,\n npmPackageType,\n possibleCategories,\n possibleCollections,\n query,\n}: NpmPackagesFiltersProps) => {\n const { formatMessage } = useIntl();\n\n const handleTagRemove = (tagToRemove: string, filterType: FilterTypes) => {\n const update = {\n [filterType]: (query[filterType] ?? []).filter((previousTag) => previousTag !== tagToRemove),\n };\n\n handleSelectChange(update);\n };\n\n return (\n <Popover.Root>\n <Popover.Trigger>\n <Button variant=\"tertiary\" startIcon={<Filter />}>\n {formatMessage({ id: 'app.utils.filters', defaultMessage: 'Filters' })}\n </Button>\n </Popover.Trigger>\n <Popover.Content sideOffset={4}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1}>\n <FilterSelect\n message={formatMessage({\n id: 'admin.pages.MarketPlacePage.filters.collections',\n defaultMessage: 'Collections',\n })}\n value={query?.collections || []}\n onChange={(newCollections) => {\n const update = { collections: newCollections };\n handleSelectChange(update);\n }}\n onClear={() => handleSelectClear('collections')}\n possibleFilters={possibleCollections}\n customizeContent={(values) =>\n formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.filters.collectionsSelected',\n defaultMessage:\n '{count, plural, =0 {No collections} one {# collection} other {# collections}} selected',\n },\n { count: values?.length ?? 0 }\n )\n }\n />\n {npmPackageType === 'plugin' && (\n <FilterSelect\n message={formatMessage({\n id: 'admin.pages.MarketPlacePage.filters.categories',\n defaultMessage: 'Categories',\n })}\n value={query?.categories || []}\n onChange={(newCategories) => {\n const update = { categories: newCategories };\n handleSelectChange(update);\n }}\n onClear={() => handleSelectClear('categories')}\n possibleFilters={possibleCategories}\n customizeContent={(values) =>\n formatMessage(\n {\n id: 'admin.pages.MarketPlacePage.filters.categoriesSelected',\n defaultMessage:\n '{count, plural, =0 {No categories} one {# category} other {# categories}} selected',\n },\n { count: values?.length ?? 0 }\n )\n }\n />\n )}\n </Flex>\n </Popover.Content>\n\n {query.collections?.map((collection) => (\n <Box key={collection} padding={1}>\n <Tag icon={<Cross />} onClick={() => handleTagRemove(collection, 'collections')}>\n {collection}\n </Tag>\n </Box>\n ))}\n {npmPackageType === 'plugin' &&\n query.categories?.map((category) => (\n <Box key={category} padding={1}>\n <Tag icon={<Cross />} onClick={() => handleTagRemove(category, 'categories')}>\n {category}\n </Tag>\n </Box>\n ))}\n </Popover.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * FilterSelect\n * -----------------------------------------------------------------------------------------------*/\n\ninterface FilterSelectProps\n extends Pick<MultiSelectProps, 'customizeContent' | 'onClear' | 'onChange' | 'value'> {\n message: string;\n possibleFilters:\n | NpmPackagesFiltersProps['possibleCategories']\n | NpmPackagesFiltersProps['possibleCollections'];\n}\n\nconst FilterSelect = ({\n message,\n value,\n onChange,\n possibleFilters,\n onClear,\n customizeContent,\n}: FilterSelectProps) => {\n return (\n <MultiSelect\n data-testid={`${message}-button`}\n aria-label={message}\n placeholder={message}\n onChange={onChange}\n onClear={onClear}\n value={value}\n customizeContent={customizeContent}\n >\n {Object.entries(possibleFilters).map(([filterName, count]) => {\n return (\n <MultiSelectOption\n data-testid={`${filterName}-${count}`}\n key={filterName}\n value={filterName}\n >\n {`${filterName} (${count})`}\n </MultiSelectOption>\n );\n })}\n </MultiSelect>\n );\n};\n\nexport { NpmPackagesFilters };\nexport type { NpmPackagesFiltersProps };\n"],"names":["NpmPackagesFilters","handleSelectClear","handleSelectChange","npmPackageType","possibleCategories","possibleCollections","query","formatMessage","useIntl","handleTagRemove","tagToRemove","filterType","update","filter","previousTag","_jsxs","Popover","Root","_jsx","Trigger","Button","variant","startIcon","Filter","id","defaultMessage","Content","sideOffset","Flex","padding","direction","alignItems","gap","FilterSelect","message","value","collections","onChange","newCollections","onClear","possibleFilters","customizeContent","values","count","length","categories","newCategories","map","collection","Box","Tag","icon","Cross","onClick","category","MultiSelect","data-testid","aria-label","placeholder","Object","entries","filterName","MultiSelectOption"],"mappings":";;;;;;AA2BA,MAAMA,kBAAqB,GAAA,CAAC,EAC1BC,iBAAiB,EACjBC,kBAAkB,EAClBC,cAAc,EACdC,kBAAkB,EAClBC,mBAAmB,EACnBC,KAAK,EACmB,GAAA;IACxB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;IAE1B,MAAMC,eAAAA,GAAkB,CAACC,WAAqBC,EAAAA,UAAAA,GAAAA;AAC5C,QAAA,MAAMC,MAAS,GAAA;AACb,YAAA,CAACD,UAAW,GAAE,CAACL,KAAK,CAACK,UAAAA,CAAW,IAAI,EAAE,EAAEE,MAAM,CAAC,CAACC,cAAgBA,WAAgBJ,KAAAA,WAAAA;AAClF,SAAA;QAEAR,kBAAmBU,CAAAA,MAAAA,CAAAA;AACrB,KAAA;IAEA,qBACEG,IAAA,CAACC,QAAQC,IAAI,EAAA;;AACX,0BAAAC,GAAA,CAACF,QAAQG,OAAO,EAAA;AACd,gBAAA,QAAA,gBAAAD,GAACE,CAAAA,MAAAA,EAAAA;oBAAOC,OAAQ,EAAA,UAAA;AAAWC,oBAAAA,SAAAA,gBAAWJ,GAACK,CAAAA,MAAAA,EAAAA,EAAAA,CAAAA;8BACpChB,aAAc,CAAA;wBAAEiB,EAAI,EAAA,mBAAA;wBAAqBC,cAAgB,EAAA;AAAU,qBAAA;;;AAGxE,0BAAAP,GAAA,CAACF,QAAQU,OAAO,EAAA;gBAACC,UAAY,EAAA,CAAA;AAC3B,gBAAA,QAAA,gBAAAZ,IAACa,CAAAA,IAAAA,EAAAA;oBAAKC,OAAS,EAAA,CAAA;oBAAGC,SAAU,EAAA,QAAA;oBAASC,UAAW,EAAA,SAAA;oBAAUC,GAAK,EAAA,CAAA;;sCAC7Dd,GAACe,CAAAA,YAAAA,EAAAA;AACCC,4BAAAA,OAAAA,EAAS3B,aAAc,CAAA;gCACrBiB,EAAI,EAAA,iDAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA,CAAA;4BACAU,KAAO7B,EAAAA,KAAAA,EAAO8B,eAAe,EAAE;AAC/BC,4BAAAA,QAAAA,EAAU,CAACC,cAAAA,GAAAA;AACT,gCAAA,MAAM1B,MAAS,GAAA;oCAAEwB,WAAaE,EAAAA;AAAe,iCAAA;gCAC7CpC,kBAAmBU,CAAAA,MAAAA,CAAAA;AACrB,6BAAA;AACA2B,4BAAAA,OAAAA,EAAS,IAAMtC,iBAAkB,CAAA,aAAA,CAAA;4BACjCuC,eAAiBnC,EAAAA,mBAAAA;4BACjBoC,gBAAkB,EAAA,CAACC,SACjBnC,aACE,CAAA;oCACEiB,EAAI,EAAA,yDAAA;oCACJC,cACE,EAAA;iCAEJ,EAAA;AAAEkB,oCAAAA,KAAAA,EAAOD,QAAQE,MAAU,IAAA;AAAE,iCAAA;;AAIlCzC,wBAAAA,cAAAA,KAAmB,0BAClBe,GAACe,CAAAA,YAAAA,EAAAA;AACCC,4BAAAA,OAAAA,EAAS3B,aAAc,CAAA;gCACrBiB,EAAI,EAAA,gDAAA;gCACJC,cAAgB,EAAA;AAClB,6BAAA,CAAA;4BACAU,KAAO7B,EAAAA,KAAAA,EAAOuC,cAAc,EAAE;AAC9BR,4BAAAA,QAAAA,EAAU,CAACS,aAAAA,GAAAA;AACT,gCAAA,MAAMlC,MAAS,GAAA;oCAAEiC,UAAYC,EAAAA;AAAc,iCAAA;gCAC3C5C,kBAAmBU,CAAAA,MAAAA,CAAAA;AACrB,6BAAA;AACA2B,4BAAAA,OAAAA,EAAS,IAAMtC,iBAAkB,CAAA,YAAA,CAAA;4BACjCuC,eAAiBpC,EAAAA,kBAAAA;4BACjBqC,gBAAkB,EAAA,CAACC,SACjBnC,aACE,CAAA;oCACEiB,EAAI,EAAA,wDAAA;oCACJC,cACE,EAAA;iCAEJ,EAAA;AAAEkB,oCAAAA,KAAAA,EAAOD,QAAQE,MAAU,IAAA;AAAE,iCAAA;;;;;AAQxCtC,YAAAA,KAAAA,CAAM8B,WAAW,EAAEW,GAAI,CAAA,CAACC,2BACvB9B,GAAC+B,CAAAA,GAAAA,EAAAA;oBAAqBpB,OAAS,EAAA,CAAA;AAC7B,oBAAA,QAAA,gBAAAX,GAACgC,CAAAA,GAAAA,EAAAA;AAAIC,wBAAAA,IAAAA,gBAAMjC,GAACkC,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;wBAAUC,OAAS,EAAA,IAAM5C,gBAAgBuC,UAAY,EAAA,aAAA,CAAA;AAC9DA,wBAAAA,QAAAA,EAAAA;;AAFKA,iBAAAA,EAAAA,UAAAA,CAAAA,CAAAA;AAMX7C,YAAAA,cAAAA,KAAmB,YAClBG,KAAMuC,CAAAA,UAAU,EAAEE,GAAI,CAAA,CAACO,yBACrBpC,GAAC+B,CAAAA,GAAAA,EAAAA;oBAAmBpB,OAAS,EAAA,CAAA;AAC3B,oBAAA,QAAA,gBAAAX,GAACgC,CAAAA,GAAAA,EAAAA;AAAIC,wBAAAA,IAAAA,gBAAMjC,GAACkC,CAAAA,KAAAA,EAAAA,EAAAA,CAAAA;wBAAUC,OAAS,EAAA,IAAM5C,gBAAgB6C,QAAU,EAAA,YAAA,CAAA;AAC5DA,wBAAAA,QAAAA,EAAAA;;AAFKA,iBAAAA,EAAAA,QAAAA,CAAAA;;;AAQpB;AAcA,MAAMrB,YAAe,GAAA,CAAC,EACpBC,OAAO,EACPC,KAAK,EACLE,QAAQ,EACRG,eAAe,EACfD,OAAO,EACPE,gBAAgB,EACE,GAAA;AAClB,IAAA,qBACEvB,GAACqC,CAAAA,WAAAA,EAAAA;QACCC,aAAa,EAAA,CAAA,EAAGtB,OAAQ,CAAA,OAAO,CAAC;QAChCuB,YAAYvB,EAAAA,OAAAA;QACZwB,WAAaxB,EAAAA,OAAAA;QACbG,QAAUA,EAAAA,QAAAA;QACVE,OAASA,EAAAA,OAAAA;QACTJ,KAAOA,EAAAA,KAAAA;QACPM,gBAAkBA,EAAAA,gBAAAA;kBAEjBkB,MAAOC,CAAAA,OAAO,CAACpB,eAAiBO,CAAAA,CAAAA,GAAG,CAAC,CAAC,CAACc,YAAYlB,KAAM,CAAA,GAAA;AACvD,YAAA,qBACEzB,GAAC4C,CAAAA,iBAAAA,EAAAA;AACCN,gBAAAA,aAAAA,EAAa,CAAGK,EAAAA,UAAAA,CAAW,CAAC,EAAElB,KAAO,CAAA,CAAA;gBAErCR,KAAO0B,EAAAA,UAAAA;AAEN,gBAAA,QAAA,EAAA,CAAA,EAAGA,UAAW,CAAA,EAAE,EAAElB,KAAAA,CAAM,CAAC;AAHrBkB,aAAAA,EAAAA,UAAAA,CAAAA;AAMX,SAAA;;AAGN,CAAA;;;;"}