@strapi/admin 5.0.0-beta.0 → 5.0.0-beta.1

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 (444) hide show
  1. package/dist/admin/{AdminSeatInfo-_XP-L7m2.js → AdminSeatInfo-Gp4BFR1_.js} +4 -4
  2. package/dist/admin/{AdminSeatInfo-_XP-L7m2.js.map → AdminSeatInfo-Gp4BFR1_.js.map} +1 -1
  3. package/dist/admin/{AdminSeatInfo-CcqY0G1v.mjs → AdminSeatInfo-dDgFBcLY.mjs} +4 -4
  4. package/dist/admin/{AdminSeatInfo-CcqY0G1v.mjs.map → AdminSeatInfo-dDgFBcLY.mjs.map} +1 -1
  5. package/dist/admin/{ApplicationInfoPage-RZ5VPA_M.mjs → ApplicationInfoPage-GQLKLk5T.mjs} +5 -5
  6. package/dist/admin/{ApplicationInfoPage-RZ5VPA_M.mjs.map → ApplicationInfoPage-GQLKLk5T.mjs.map} +1 -1
  7. package/dist/admin/{ApplicationInfoPage-dcW27-S0.js → ApplicationInfoPage-e_sOqQMh.js} +5 -5
  8. package/dist/admin/{ApplicationInfoPage-dcW27-S0.js.map → ApplicationInfoPage-e_sOqQMh.js.map} +1 -1
  9. package/dist/admin/{AuthResponse-829u1Bgr.mjs → AuthResponse-gf-zZkxm.mjs} +2 -2
  10. package/dist/admin/{AuthResponse-829u1Bgr.mjs.map → AuthResponse-gf-zZkxm.mjs.map} +1 -1
  11. package/dist/admin/{AuthResponse-jXbQnvQx.js → AuthResponse-l5QiAAK7.js} +2 -2
  12. package/dist/admin/{AuthResponse-jXbQnvQx.js.map → AuthResponse-l5QiAAK7.js.map} +1 -1
  13. package/dist/admin/{AuthenticatedLayout-a3vBuls_.mjs → AuthenticatedLayout-3fYM18Xy.mjs} +17 -17
  14. package/dist/admin/{AuthenticatedLayout-a3vBuls_.mjs.map → AuthenticatedLayout-3fYM18Xy.mjs.map} +1 -1
  15. package/dist/admin/{AuthenticatedLayout-hl04NCFE.js → AuthenticatedLayout-gGQYIisy.js} +17 -17
  16. package/dist/admin/{AuthenticatedLayout-hl04NCFE.js.map → AuthenticatedLayout-gGQYIisy.js.map} +1 -1
  17. package/dist/admin/{ComponentConfigurationPage-bbpuW93V.mjs → ComponentConfigurationPage-0kf7a5LK.mjs} +4 -4
  18. package/dist/admin/{ComponentConfigurationPage-bbpuW93V.mjs.map → ComponentConfigurationPage-0kf7a5LK.mjs.map} +1 -1
  19. package/dist/admin/{ComponentConfigurationPage-hNHSQ40m.js → ComponentConfigurationPage-U7RcNJFs.js} +4 -4
  20. package/dist/admin/{ComponentConfigurationPage-hNHSQ40m.js.map → ComponentConfigurationPage-U7RcNJFs.js.map} +1 -1
  21. package/dist/admin/ComponentIcon-AkrHxAkm.mjs.map +1 -1
  22. package/dist/admin/ComponentIcon-wcNWpdCz.js.map +1 -1
  23. package/dist/admin/{CreateActionEE-3ppNGqrP.js → CreateActionEE-HO-FmNjw.js} +2 -2
  24. package/dist/admin/{CreateActionEE-3ppNGqrP.js.map → CreateActionEE-HO-FmNjw.js.map} +1 -1
  25. package/dist/admin/{CreateActionEE-zqa6Hnzk.mjs → CreateActionEE-OscS6KZj.mjs} +2 -2
  26. package/dist/admin/{CreateActionEE-zqa6Hnzk.mjs.map → CreateActionEE-OscS6KZj.mjs.map} +1 -1
  27. package/dist/admin/{CreatePage-5GygA62E.mjs → CreatePage-1a_Nb-RK.mjs} +9 -9
  28. package/dist/admin/CreatePage-1a_Nb-RK.mjs.map +1 -0
  29. package/dist/admin/{CreatePage-oegPjlEc.mjs → CreatePage-8rG8fSZv.mjs} +4 -4
  30. package/dist/admin/{CreatePage-oegPjlEc.mjs.map → CreatePage-8rG8fSZv.mjs.map} +1 -1
  31. package/dist/admin/{CreatePage-92_pj9pV.js → CreatePage-B0kLot_Q.js} +3 -3
  32. package/dist/admin/{CreatePage-92_pj9pV.js.map → CreatePage-B0kLot_Q.js.map} +1 -1
  33. package/dist/admin/{CreatePage-99wXBVyY.mjs → CreatePage-c92hDTE3.mjs} +3 -3
  34. package/dist/admin/{CreatePage-99wXBVyY.mjs.map → CreatePage-c92hDTE3.mjs.map} +1 -1
  35. package/dist/admin/{CreatePage-52sUoJpg.js → CreatePage-h9gJgINE.js} +4 -4
  36. package/dist/admin/{CreatePage-52sUoJpg.js.map → CreatePage-h9gJgINE.js.map} +1 -1
  37. package/dist/admin/{CreatePage-yBddklgC.js → CreatePage-pN8WcSWM.js} +9 -9
  38. package/dist/admin/CreatePage-pN8WcSWM.js.map +1 -0
  39. package/dist/admin/{CreateView-nS-FdJkE.js → CreateView-Gd7sLphf.js} +3 -3
  40. package/dist/admin/{CreateView-nS-FdJkE.js.map → CreateView-Gd7sLphf.js.map} +1 -1
  41. package/dist/admin/{CreateView-Ic6HHrsX.mjs → CreateView-PIPvgwa8.mjs} +3 -3
  42. package/dist/admin/{CreateView-Ic6HHrsX.mjs.map → CreateView-PIPvgwa8.mjs.map} +1 -1
  43. package/dist/admin/{CreateView-vQmc3UBu.js → CreateView-kVD9MjAf.js} +3 -3
  44. package/dist/admin/{CreateView-vQmc3UBu.js.map → CreateView-kVD9MjAf.js.map} +1 -1
  45. package/dist/admin/{CreateView-4i8XqKqF.mjs → CreateView-nXkGgZTO.mjs} +3 -3
  46. package/dist/admin/{CreateView-4i8XqKqF.mjs.map → CreateView-nXkGgZTO.mjs.map} +1 -1
  47. package/dist/admin/{EditConfigurationPage-lpPR7rS-.js → EditConfigurationPage-YAS-MAtE.js} +4 -4
  48. package/dist/admin/{EditConfigurationPage-lpPR7rS-.js.map → EditConfigurationPage-YAS-MAtE.js.map} +1 -1
  49. package/dist/admin/{EditConfigurationPage-6doXCBmp.mjs → EditConfigurationPage-jugWslla.mjs} +4 -4
  50. package/dist/admin/{EditConfigurationPage-6doXCBmp.mjs.map → EditConfigurationPage-jugWslla.mjs.map} +1 -1
  51. package/dist/admin/{EditPage-foeIMKkr.mjs → EditPage-6pGLGlrZ.mjs} +6 -6
  52. package/dist/admin/EditPage-6pGLGlrZ.mjs.map +1 -0
  53. package/dist/admin/{EditPage-4n8-yx0o.mjs → EditPage-I99-ASjb.mjs} +8 -8
  54. package/dist/admin/{EditPage-4n8-yx0o.mjs.map → EditPage-I99-ASjb.mjs.map} +1 -1
  55. package/dist/admin/{EditPage-LUNpO2Hs.mjs → EditPage-NrM8ZRAf.mjs} +9 -9
  56. package/dist/admin/{EditPage-LUNpO2Hs.mjs.map → EditPage-NrM8ZRAf.mjs.map} +1 -1
  57. package/dist/admin/{EditPage-qKcSRKvg.js → EditPage-ci9fcWte.js} +9 -9
  58. package/dist/admin/{EditPage-qKcSRKvg.js.map → EditPage-ci9fcWte.js.map} +1 -1
  59. package/dist/admin/{EditPage-YN3E4YNP.mjs → EditPage-fT6nuOwT.mjs} +5 -5
  60. package/dist/admin/{EditPage-YN3E4YNP.mjs.map → EditPage-fT6nuOwT.mjs.map} +1 -1
  61. package/dist/admin/{EditPage-WEpVsF5C.js → EditPage-hEDFGDcC.js} +6 -6
  62. package/dist/admin/EditPage-hEDFGDcC.js.map +1 -0
  63. package/dist/admin/{EditPage-d7F-x_Y0.js → EditPage-m5HVhxC-.js} +5 -5
  64. package/dist/admin/{EditPage-d7F-x_Y0.js.map → EditPage-m5HVhxC-.js.map} +1 -1
  65. package/dist/admin/{EditPage-Id--0zN8.js → EditPage-um8Yysr-.js} +8 -8
  66. package/dist/admin/{EditPage-Id--0zN8.js.map → EditPage-um8Yysr-.js.map} +1 -1
  67. package/dist/admin/{EditView-GXGcvgNt.mjs → EditView-79rujo0b.mjs} +4 -4
  68. package/dist/admin/{EditView-GXGcvgNt.mjs.map → EditView-79rujo0b.mjs.map} +1 -1
  69. package/dist/admin/{EditView-awLo_z9u.js → EditView-zEf-a-YM.js} +4 -4
  70. package/dist/admin/{EditView-awLo_z9u.js.map → EditView-zEf-a-YM.js.map} +1 -1
  71. package/dist/admin/{EditViewPage-1NY3YGcc.mjs → EditViewPage-BJdNfzBZ.mjs} +6 -6
  72. package/dist/admin/{EditViewPage-1NY3YGcc.mjs.map → EditViewPage-BJdNfzBZ.mjs.map} +1 -1
  73. package/dist/admin/{EditViewPage-cZsfhXI4.js → EditViewPage-Y67V7K7l.js} +6 -6
  74. package/dist/admin/{EditViewPage-cZsfhXI4.js.map → EditViewPage-Y67V7K7l.js.map} +1 -1
  75. package/dist/admin/{EditViewPage-QWb2DMRg.mjs → EditViewPage-iuq_KY3C.mjs} +4 -4
  76. package/dist/admin/{EditViewPage-QWb2DMRg.mjs.map → EditViewPage-iuq_KY3C.mjs.map} +1 -1
  77. package/dist/admin/{EditViewPage-1ZxYkrZ9.js → EditViewPage-vrE8FNb1.js} +4 -4
  78. package/dist/admin/{EditViewPage-1ZxYkrZ9.js.map → EditViewPage-vrE8FNb1.js.map} +1 -1
  79. package/dist/admin/{EventsTable-Iv41t-aJ.mjs → EventsTable-LOh2EX0N.mjs} +2 -2
  80. package/dist/admin/{EventsTable-Iv41t-aJ.mjs.map → EventsTable-LOh2EX0N.mjs.map} +1 -1
  81. package/dist/admin/{EventsTable-3Mp9Iad-.js → EventsTable-bm16Pj4a.js} +2 -2
  82. package/dist/admin/{EventsTable-3Mp9Iad-.js.map → EventsTable-bm16Pj4a.js.map} +1 -1
  83. package/dist/admin/{FieldTypeIcon-AibcTcXN.mjs → FieldTypeIcon-SCwhXPf6.mjs} +2 -2
  84. package/dist/admin/FieldTypeIcon-SCwhXPf6.mjs.map +1 -0
  85. package/dist/admin/{FieldTypeIcon--WKPFDG2.js → FieldTypeIcon-u9dTaLwb.js} +2 -2
  86. package/dist/admin/FieldTypeIcon-u9dTaLwb.js.map +1 -0
  87. package/dist/admin/{Filters-l2eZFcAk.js → Filters-5FAHd62q.js} +4 -4
  88. package/dist/admin/Filters-5FAHd62q.js.map +1 -0
  89. package/dist/admin/{Filters-Jm3DRgjx.mjs → Filters-hYfcsahl.mjs} +4 -4
  90. package/dist/admin/Filters-hYfcsahl.mjs.map +1 -0
  91. package/dist/admin/{Form-f20Ab8pl.mjs → Form-7gccxUtH.mjs} +5 -5
  92. package/dist/admin/Form-7gccxUtH.mjs.map +1 -0
  93. package/dist/admin/{Form-V8XluZgD.js → Form-m0qUJusG.js} +5 -5
  94. package/dist/admin/Form-m0qUJusG.js.map +1 -0
  95. package/dist/admin/{History-eZH2Aqa1.js → History-UVk6YZaL.js} +5 -5
  96. package/dist/admin/{History-eZH2Aqa1.js.map → History-UVk6YZaL.js.map} +1 -1
  97. package/dist/admin/{History-0MMslhUv.mjs → History-gNttF1-u.mjs} +5 -5
  98. package/dist/admin/{History-0MMslhUv.mjs.map → History-gNttF1-u.mjs.map} +1 -1
  99. package/dist/admin/{HomePage-PNJzW3TF.mjs → HomePage-2q7ngwX4.mjs} +3 -3
  100. package/dist/admin/{HomePage-PNJzW3TF.mjs.map → HomePage-2q7ngwX4.mjs.map} +1 -1
  101. package/dist/admin/{HomePage-Mt5yKmaK.mjs → HomePage-_eHszm7N.mjs} +5 -5
  102. package/dist/admin/{HomePage-Mt5yKmaK.mjs.map → HomePage-_eHszm7N.mjs.map} +1 -1
  103. package/dist/admin/{HomePage-HylT9MsA.js → HomePage-jwm3AAzI.js} +5 -5
  104. package/dist/admin/{HomePage-HylT9MsA.js.map → HomePage-jwm3AAzI.js.map} +1 -1
  105. package/dist/admin/{HomePage-Zoe67a6N.js → HomePage-ozwWqZdZ.js} +3 -3
  106. package/dist/admin/{HomePage-Zoe67a6N.js.map → HomePage-ozwWqZdZ.js.map} +1 -1
  107. package/dist/admin/{InputRenderer-89lhMw5B.js → InputRenderer-tdeZayqM.js} +4 -6
  108. package/dist/admin/InputRenderer-tdeZayqM.js.map +1 -0
  109. package/dist/admin/{InputRenderer-ddUokGFQ.mjs → InputRenderer-uXGu-VvL.mjs} +4 -6
  110. package/dist/admin/InputRenderer-uXGu-VvL.mjs.map +1 -0
  111. package/dist/admin/{InstalledPluginsPage-F_LdmUvc.mjs → InstalledPluginsPage-rGp1BINi.mjs} +3 -3
  112. package/dist/admin/{InstalledPluginsPage-F_LdmUvc.mjs.map → InstalledPluginsPage-rGp1BINi.mjs.map} +1 -1
  113. package/dist/admin/{InstalledPluginsPage-4hUy0Kzu.js → InstalledPluginsPage-relNbZiA.js} +3 -3
  114. package/dist/admin/{InstalledPluginsPage-4hUy0Kzu.js.map → InstalledPluginsPage-relNbZiA.js.map} +1 -1
  115. package/dist/admin/{Layout-yOQ2mhrf.mjs → Layout-JSg7Wwnx.mjs} +3 -3
  116. package/dist/admin/{Layout-yOQ2mhrf.mjs.map → Layout-JSg7Wwnx.mjs.map} +1 -1
  117. package/dist/admin/{Layout-y3dNAJVd.mjs → Layout-gqm-mRb2.mjs} +5 -5
  118. package/dist/admin/{Layout-y3dNAJVd.mjs.map → Layout-gqm-mRb2.mjs.map} +1 -1
  119. package/dist/admin/{Layout-8VTNG14A.js → Layout-rp7YlCuF.js} +5 -5
  120. package/dist/admin/{Layout-8VTNG14A.js.map → Layout-rp7YlCuF.js.map} +1 -1
  121. package/dist/admin/{Layout-0VrIQ4NX.js → Layout-tPXv8ts4.js} +3 -3
  122. package/dist/admin/{Layout-0VrIQ4NX.js.map → Layout-tPXv8ts4.js.map} +1 -1
  123. package/dist/admin/{ListConfigurationPage-duFCwpIH.mjs → ListConfigurationPage-1JkDop6y.mjs} +5 -5
  124. package/dist/admin/{ListConfigurationPage-duFCwpIH.mjs.map → ListConfigurationPage-1JkDop6y.mjs.map} +1 -1
  125. package/dist/admin/{ListConfigurationPage-9EnV4loI.js → ListConfigurationPage-egv99PTx.js} +5 -5
  126. package/dist/admin/{ListConfigurationPage-9EnV4loI.js.map → ListConfigurationPage-egv99PTx.js.map} +1 -1
  127. package/dist/admin/{ListPage-2i4GNvMp.js → ListPage-5VIwPlnG.js} +5 -5
  128. package/dist/admin/{ListPage-2i4GNvMp.js.map → ListPage-5VIwPlnG.js.map} +1 -1
  129. package/dist/admin/{ListPage-v6SUIF_T.js → ListPage-85XB15gk.js} +7 -6
  130. package/dist/admin/ListPage-85XB15gk.js.map +1 -0
  131. package/dist/admin/{ListPage-ICxXUAUL.js → ListPage-NG7c9Zx-.js} +5 -5
  132. package/dist/admin/{ListPage-ICxXUAUL.js.map → ListPage-NG7c9Zx-.js.map} +1 -1
  133. package/dist/admin/{ListPage-EmtzWMVt.js → ListPage-Wf8HxliA.js} +3 -3
  134. package/dist/admin/{ListPage-EmtzWMVt.js.map → ListPage-Wf8HxliA.js.map} +1 -1
  135. package/dist/admin/{ListPage-Cq-wLIdK.mjs → ListPage-Y0vGfxO1.mjs} +5 -5
  136. package/dist/admin/{ListPage-Cq-wLIdK.mjs.map → ListPage-Y0vGfxO1.mjs.map} +1 -1
  137. package/dist/admin/{ListPage-hxaNrHLd.mjs → ListPage-_1MCPNWC.mjs} +3 -3
  138. package/dist/admin/{ListPage-hxaNrHLd.mjs.map → ListPage-_1MCPNWC.mjs.map} +1 -1
  139. package/dist/admin/{ListPage-v1vvnXr3.mjs → ListPage-bdblB4wE.mjs} +4 -4
  140. package/dist/admin/{ListPage-v1vvnXr3.mjs.map → ListPage-bdblB4wE.mjs.map} +1 -1
  141. package/dist/admin/{ListPage-i77Lk7qj.js → ListPage-d0uTS6lH.js} +4 -4
  142. package/dist/admin/{ListPage-i77Lk7qj.js.map → ListPage-d0uTS6lH.js.map} +1 -1
  143. package/dist/admin/{ListPage-gP4TzJZw.js → ListPage-e0975Wh-.js} +9 -9
  144. package/dist/admin/ListPage-e0975Wh-.js.map +1 -0
  145. package/dist/admin/{ListPage-wpMBvGVG.mjs → ListPage-eMKRFxzM.mjs} +5 -5
  146. package/dist/admin/{ListPage-wpMBvGVG.mjs.map → ListPage-eMKRFxzM.mjs.map} +1 -1
  147. package/dist/admin/{ListPage-Z663tCxD.mjs → ListPage-tFqx6zb_.mjs} +9 -9
  148. package/dist/admin/ListPage-tFqx6zb_.mjs.map +1 -0
  149. package/dist/admin/{ListPage-0jv2yLPQ.mjs → ListPage-v07yRAHk.mjs} +8 -7
  150. package/dist/admin/ListPage-v07yRAHk.mjs.map +1 -0
  151. package/dist/admin/{ListView-4givZ4Eb.mjs → ListView-9shnR2xp.mjs} +4 -4
  152. package/dist/admin/ListView-9shnR2xp.mjs.map +1 -0
  153. package/dist/admin/{ListView-IqhnTHjC.js → ListView-IaEe1_Uy.js} +4 -4
  154. package/dist/admin/ListView-IaEe1_Uy.js.map +1 -0
  155. package/dist/admin/{ListView-NPtyW54W.js → ListView-_EZZ571X.js} +4 -4
  156. package/dist/admin/ListView-_EZZ571X.js.map +1 -0
  157. package/dist/admin/{ListView-A1dYCFAI.mjs → ListView-z9G1Eash.mjs} +4 -4
  158. package/dist/admin/ListView-z9G1Eash.mjs.map +1 -0
  159. package/dist/admin/{ListViewPage-rkQXnquk.mjs → ListViewPage-FE12IpwT.mjs} +9 -9
  160. package/dist/admin/ListViewPage-FE12IpwT.mjs.map +1 -0
  161. package/dist/admin/{ListViewPage-67EL6F80.js → ListViewPage-u5WSF93L.js} +9 -9
  162. package/dist/admin/ListViewPage-u5WSF93L.js.map +1 -0
  163. package/dist/admin/{Login-IanfGhcK.mjs → Login-9iKNSYCJ.mjs} +3 -3
  164. package/dist/admin/{Login-IanfGhcK.mjs.map → Login-9iKNSYCJ.mjs.map} +1 -1
  165. package/dist/admin/{Login-69DnR_WO.js → Login-ug0ICazL.js} +3 -3
  166. package/dist/admin/{Login-69DnR_WO.js.map → Login-ug0ICazL.js.map} +1 -1
  167. package/dist/admin/{MagicLinkEE-pA-tsFIv.mjs → MagicLinkEE-3a4aj5bM.mjs} +3 -3
  168. package/dist/admin/{MagicLinkEE-pA-tsFIv.mjs.map → MagicLinkEE-3a4aj5bM.mjs.map} +1 -1
  169. package/dist/admin/{MagicLinkEE-uUVMUi92.js → MagicLinkEE-TlpYCgSF.js} +3 -3
  170. package/dist/admin/{MagicLinkEE-uUVMUi92.js.map → MagicLinkEE-TlpYCgSF.js.map} +1 -1
  171. package/dist/admin/{MarketplacePage-FFt5PPmM.mjs → MarketplacePage-BBs4GMeX.mjs} +3 -3
  172. package/dist/admin/{MarketplacePage-FFt5PPmM.mjs.map → MarketplacePage-BBs4GMeX.mjs.map} +1 -1
  173. package/dist/admin/{MarketplacePage-io_-I4d2.js → MarketplacePage-GuZItQkJ.js} +3 -3
  174. package/dist/admin/{MarketplacePage-io_-I4d2.js.map → MarketplacePage-GuZItQkJ.js.map} +1 -1
  175. package/dist/admin/{NoContentTypePage-6mgFtik-.mjs → NoContentTypePage-MI-TNgDm.mjs} +2 -2
  176. package/dist/admin/{NoContentTypePage-6mgFtik-.mjs.map → NoContentTypePage-MI-TNgDm.mjs.map} +1 -1
  177. package/dist/admin/{NoContentTypePage-7GuJBa-V.js → NoContentTypePage-WM9PSeKc.js} +2 -2
  178. package/dist/admin/{NoContentTypePage-7GuJBa-V.js.map → NoContentTypePage-WM9PSeKc.js.map} +1 -1
  179. package/dist/admin/{NoPermissionsPage-6oZ4iqff.mjs → NoPermissionsPage-K6eIf5zl.mjs} +2 -2
  180. package/dist/admin/{NoPermissionsPage-6oZ4iqff.mjs.map → NoPermissionsPage-K6eIf5zl.mjs.map} +1 -1
  181. package/dist/admin/{NoPermissionsPage-E2ro9iCX.js → NoPermissionsPage-PP92ItBk.js} +2 -2
  182. package/dist/admin/{NoPermissionsPage-E2ro9iCX.js.map → NoPermissionsPage-PP92ItBk.js.map} +1 -1
  183. package/dist/admin/NotAllowed-9d8xvtvI.mjs.map +1 -1
  184. package/dist/admin/NotAllowed-FmDlK9I3.js.map +1 -1
  185. package/dist/admin/{Permissions-VR9Rnqkr.js → Permissions-jsl-R7bI.js} +2 -2
  186. package/dist/admin/{Permissions-VR9Rnqkr.js.map → Permissions-jsl-R7bI.js.map} +1 -1
  187. package/dist/admin/{Permissions-kvKR0BEy.mjs → Permissions-v99MLjbi.mjs} +2 -2
  188. package/dist/admin/{Permissions-kvKR0BEy.mjs.map → Permissions-v99MLjbi.mjs.map} +1 -1
  189. package/dist/admin/{PrivateRoute-dcpEjhVL.js → PrivateRoute-AFoVG5Bk.js} +2 -2
  190. package/dist/admin/{PrivateRoute-dcpEjhVL.js.map → PrivateRoute-AFoVG5Bk.js.map} +1 -1
  191. package/dist/admin/{PrivateRoute-jEzBQwGq.mjs → PrivateRoute-XiRz2oSq.mjs} +2 -2
  192. package/dist/admin/{PrivateRoute-jEzBQwGq.mjs.map → PrivateRoute-XiRz2oSq.mjs.map} +1 -1
  193. package/dist/admin/{ProfilePage-vP1WwOSo.mjs → ProfilePage-HjJiMiTt.mjs} +4 -4
  194. package/dist/admin/{ProfilePage-vP1WwOSo.mjs.map → ProfilePage-HjJiMiTt.mjs.map} +1 -1
  195. package/dist/admin/{ProfilePage-5zMiyfq8.js → ProfilePage-wGM1mvXn.js} +4 -4
  196. package/dist/admin/{ProfilePage-5zMiyfq8.js.map → ProfilePage-wGM1mvXn.js.map} +1 -1
  197. package/dist/admin/{ReviewWorkflowsColumn-m0_IsejA.mjs → ReviewWorkflowsColumn-NUu47oVz.mjs} +3 -3
  198. package/dist/admin/{ReviewWorkflowsColumn-m0_IsejA.mjs.map → ReviewWorkflowsColumn-NUu47oVz.mjs.map} +1 -1
  199. package/dist/admin/{ReviewWorkflowsColumn--7xdU3EE.js → ReviewWorkflowsColumn-uIqJfjyd.js} +3 -3
  200. package/dist/admin/{ReviewWorkflowsColumn--7xdU3EE.js.map → ReviewWorkflowsColumn-uIqJfjyd.js.map} +1 -1
  201. package/dist/admin/{SelectRoles-3rrUCBYq.js → SelectRoles-5vr-vXOm.js} +4 -4
  202. package/dist/admin/{SelectRoles-3rrUCBYq.js.map → SelectRoles-5vr-vXOm.js.map} +1 -1
  203. package/dist/admin/{SelectRoles-6zNSDXAX.mjs → SelectRoles-ytHc3di2.mjs} +4 -4
  204. package/dist/admin/{SelectRoles-6zNSDXAX.mjs.map → SelectRoles-ytHc3di2.mjs.map} +1 -1
  205. package/dist/admin/{SingleSignOnPage-yqv1ULMO.js → SingleSignOnPage-1Wqj_7y-.js} +3 -3
  206. package/dist/admin/{SingleSignOnPage-yqv1ULMO.js.map → SingleSignOnPage-1Wqj_7y-.js.map} +1 -1
  207. package/dist/admin/{SingleSignOnPage-7AQ0D0BD.mjs → SingleSignOnPage-7oJES3UH.mjs} +3 -3
  208. package/dist/admin/{SingleSignOnPage-7AQ0D0BD.mjs.map → SingleSignOnPage-7oJES3UH.mjs.map} +1 -1
  209. package/dist/admin/{Table-hIWrkIyR.mjs → Table-LQhGojNx.mjs} +4 -4
  210. package/dist/admin/Table-LQhGojNx.mjs.map +1 -0
  211. package/dist/admin/{Table-9qwpBhgp.js → Table-M5UsBfFs.js} +4 -4
  212. package/dist/admin/Table-M5UsBfFs.js.map +1 -0
  213. package/dist/admin/{TokenTypeSelect-I0IiW8L9.mjs → TokenTypeSelect-5o9mvFd7.mjs} +3 -3
  214. package/dist/admin/TokenTypeSelect-5o9mvFd7.mjs.map +1 -0
  215. package/dist/admin/{TokenTypeSelect-O5IkOZVo.js → TokenTypeSelect-ZBDI26vJ.js} +3 -3
  216. package/dist/admin/TokenTypeSelect-ZBDI26vJ.js.map +1 -0
  217. package/dist/admin/{UseCasePage-BwOhufaK.mjs → UseCasePage-e7rn-aW-.mjs} +4 -4
  218. package/dist/admin/{UseCasePage-BwOhufaK.mjs.map → UseCasePage-e7rn-aW-.mjs.map} +1 -1
  219. package/dist/admin/{UseCasePage-vqdvr-uv.js → UseCasePage-q3u-xs7F.js} +4 -4
  220. package/dist/admin/{UseCasePage-vqdvr-uv.js.map → UseCasePage-q3u-xs7F.js.map} +1 -1
  221. package/dist/admin/{apiTokens-RqehzGhC.js → apiTokens-_gKUBKPQ.js} +2 -2
  222. package/dist/admin/{apiTokens-RqehzGhC.js.map → apiTokens-_gKUBKPQ.js.map} +1 -1
  223. package/dist/admin/{apiTokens-HBaRXE71.mjs → apiTokens-nD8zbNlc.mjs} +2 -2
  224. package/dist/admin/{apiTokens-HBaRXE71.mjs.map → apiTokens-nD8zbNlc.mjs.map} +1 -1
  225. package/dist/admin/{constants-gHOCp7wo.js → constants-6E1OwHx7.js} +5 -5
  226. package/dist/admin/{constants-gHOCp7wo.js.map → constants-6E1OwHx7.js.map} +1 -1
  227. package/dist/admin/{constants-ZPElfE3j.mjs → constants-AdKxCt0x.mjs} +3 -3
  228. package/dist/admin/{constants-ZPElfE3j.mjs.map → constants-AdKxCt0x.mjs.map} +1 -1
  229. package/dist/admin/{constants--j5MCV5y.mjs → constants-D6NLEhwu.mjs} +5 -5
  230. package/dist/admin/{constants--j5MCV5y.mjs.map → constants-D6NLEhwu.mjs.map} +1 -1
  231. package/dist/admin/{constants-AAeFmxXA.js → constants-ZZWbRAQT.js} +3 -3
  232. package/dist/admin/{constants-AAeFmxXA.js.map → constants-ZZWbRAQT.js.map} +1 -1
  233. package/dist/admin/{index-NzLAHRwx.mjs → index-1NFAbkxM.mjs} +67 -48
  234. package/dist/admin/index-1NFAbkxM.mjs.map +1 -0
  235. package/dist/admin/{index-dBY0pLkw.js → index-mQQPK-ix.js} +67 -48
  236. package/dist/admin/index-mQQPK-ix.js.map +1 -0
  237. package/dist/admin/index.js +3 -3
  238. package/dist/admin/index.mjs +3 -3
  239. package/dist/admin/{reducers-TOuLOGw_.mjs → reducers-IQWvK_9L.mjs} +11 -9
  240. package/dist/admin/reducers-IQWvK_9L.mjs.map +1 -0
  241. package/dist/admin/{reducers-uDxSALD_.js → reducers-wZUQqmNX.js} +11 -9
  242. package/dist/admin/reducers-wZUQqmNX.js.map +1 -0
  243. package/dist/admin/{selectors-ka781RNf.js → selectors-PTHjHMQi.js} +2 -2
  244. package/dist/admin/{selectors-ka781RNf.js.map → selectors-PTHjHMQi.js.map} +1 -1
  245. package/dist/admin/{selectors-NvWWczps.mjs → selectors-nn3C3YKE.mjs} +2 -2
  246. package/dist/admin/{selectors-NvWWczps.mjs.map → selectors-nn3C3YKE.mjs.map} +1 -1
  247. package/dist/admin/src/components/FormInputs/types.d.ts +3 -3
  248. package/dist/admin/src/constants/filters.d.ts +2 -2
  249. package/dist/admin/src/content-manager/components/ComponentIcon.d.ts +2 -2
  250. package/dist/admin/src/content-manager/components/ConfigurationForm/EditFieldForm.d.ts +2 -2
  251. package/dist/admin/src/content-manager/components/DragPreviews/RelationDragPreview.d.ts +2 -2
  252. package/dist/admin/src/content-manager/components/FieldTypeIcon.d.ts +2 -2
  253. package/dist/admin/src/content-manager/features/DocumentRBAC.d.ts +2 -2
  254. package/dist/admin/src/content-manager/history/services/historyVersion.d.ts +2 -2
  255. package/dist/admin/src/content-manager/hooks/useDocumentLayout.d.ts +7 -7
  256. package/dist/admin/src/content-manager/hooks/useDragAndDrop.d.ts +2 -2
  257. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksEditor.d.ts +3 -3
  258. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/BlocksInput.d.ts +2 -2
  259. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withImages.d.ts +1 -1
  260. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withLinks.d.ts +1 -1
  261. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/plugins/withStrapiSchema.d.ts +1 -1
  262. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/conversions.d.ts +1 -1
  263. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/BlocksInput/utils/types.d.ts +4 -4
  264. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/NotAllowed.d.ts +2 -2
  265. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/UID.d.ts +2 -2
  266. package/dist/admin/src/content-manager/pages/EditView/components/FormInputs/Wysiwyg/Field.d.ts +2 -2
  267. package/dist/admin/src/content-manager/pages/EditView/utils/data.d.ts +2 -2
  268. package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/Actions.d.ts +52 -0
  269. package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/PublishAction.d.ts +31 -0
  270. package/dist/admin/src/content-manager/pages/ListView/components/TableCells/CellContent.d.ts +3 -3
  271. package/dist/admin/src/content-manager/pages/ListView/components/TableCells/CellValue.d.ts +2 -2
  272. package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Components.d.ts +3 -3
  273. package/dist/admin/src/content-manager/pages/ListView/components/TableCells/Media.d.ts +2 -2
  274. package/dist/admin/src/content-manager/services/documents.d.ts +5 -0
  275. package/dist/admin/src/content-manager/services/relations.d.ts +5 -5
  276. package/dist/admin/src/content-manager/services/uid.d.ts +2 -2
  277. package/dist/admin/src/content-manager/utils/attributes.d.ts +4 -4
  278. package/dist/admin/src/core/apis/content-manager.d.ts +33 -5
  279. package/dist/admin/src/index.d.ts +2 -1
  280. package/dist/admin/src/pages/Settings/components/Tokens/FormHead.d.ts +2 -2
  281. package/dist/admin/src/pages/Settings/components/Tokens/Table.d.ts +2 -2
  282. package/dist/admin/src/pages/Settings/pages/Users/components/NewUserForm.d.ts +2 -2
  283. package/dist/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.d.ts +5 -5
  284. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +3 -3
  285. package/dist/admin/src/render.d.ts +2 -2
  286. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  287. package/dist/admin/src/services/users.d.ts +6 -6
  288. package/dist/admin/src/services/webhooks.d.ts +1 -1
  289. package/dist/admin/test.js +1 -1
  290. package/dist/admin/test.mjs +1 -1
  291. package/dist/admin/{transferTokens-HxKzbhZt.js → transferTokens-P5z1yVh2.js} +2 -2
  292. package/dist/admin/{transferTokens-HxKzbhZt.js.map → transferTokens-P5z1yVh2.js.map} +1 -1
  293. package/dist/admin/{transferTokens-QOZjk416.mjs → transferTokens-PlBVZdw3.mjs} +2 -2
  294. package/dist/admin/{transferTokens-QOZjk416.mjs.map → transferTokens-PlBVZdw3.mjs.map} +1 -1
  295. package/dist/admin/{useAdminRoles-PSfwOXiz.mjs → useAdminRoles-BG7b996L.mjs} +2 -2
  296. package/dist/admin/{useAdminRoles-PSfwOXiz.mjs.map → useAdminRoles-BG7b996L.mjs.map} +1 -1
  297. package/dist/admin/{useAdminRoles-eaHgHT8Y.js → useAdminRoles-THWXour6.js} +2 -2
  298. package/dist/admin/{useAdminRoles-eaHgHT8Y.js.map → useAdminRoles-THWXour6.js.map} +1 -1
  299. package/dist/admin/{useContentTypes-Or3rDVks.mjs → useContentTypes-PEGh0Cg-.mjs} +2 -2
  300. package/dist/admin/{useContentTypes-Or3rDVks.mjs.map → useContentTypes-PEGh0Cg-.mjs.map} +1 -1
  301. package/dist/admin/{useContentTypes-RJRHsheR.js → useContentTypes-RoSvxizj.js} +2 -2
  302. package/dist/admin/{useContentTypes-RJRHsheR.js.map → useContentTypes-RoSvxizj.js.map} +1 -1
  303. package/dist/admin/{useDocumentLayout-5UQF9Yls.mjs → useDocumentLayout-4trWL6Jz.mjs} +2 -2
  304. package/dist/admin/useDocumentLayout-4trWL6Jz.mjs.map +1 -0
  305. package/dist/admin/{useDocumentLayout-wBQQmFJL.js → useDocumentLayout-V_N5dUwQ.js} +2 -2
  306. package/dist/admin/useDocumentLayout-V_N5dUwQ.js.map +1 -0
  307. package/dist/admin/{useLicenseLimitNotification-kTCLbD6I.mjs → useLicenseLimitNotification-9DqSZuyc.mjs} +3 -3
  308. package/dist/admin/{useLicenseLimitNotification-kTCLbD6I.mjs.map → useLicenseLimitNotification-9DqSZuyc.mjs.map} +1 -1
  309. package/dist/admin/{useLicenseLimitNotification-mOmwgQuN.js → useLicenseLimitNotification-SiWQ5LGo.js} +3 -3
  310. package/dist/admin/{useLicenseLimitNotification-mOmwgQuN.js.map → useLicenseLimitNotification-SiWQ5LGo.js.map} +1 -1
  311. package/dist/admin/{useReviewWorkflows-ZcRZstgn.js → useReviewWorkflows-0ty4mwQd.js} +2 -2
  312. package/dist/admin/{useReviewWorkflows-ZcRZstgn.js.map → useReviewWorkflows-0ty4mwQd.js.map} +1 -1
  313. package/dist/admin/{useReviewWorkflows-Ji_rsoyJ.mjs → useReviewWorkflows-HwyFyit7.mjs} +2 -2
  314. package/dist/admin/{useReviewWorkflows-Ji_rsoyJ.mjs.map → useReviewWorkflows-HwyFyit7.mjs.map} +1 -1
  315. package/dist/admin/{useSyncRbac-Od0wrAnD.mjs → useSyncRbac-LNOzRXJ5.mjs} +2 -2
  316. package/dist/admin/{useSyncRbac-Od0wrAnD.mjs.map → useSyncRbac-LNOzRXJ5.mjs.map} +1 -1
  317. package/dist/admin/{useSyncRbac-fR63KADE.js → useSyncRbac-vkWgDJTE.js} +2 -2
  318. package/dist/admin/{useSyncRbac-fR63KADE.js.map → useSyncRbac-vkWgDJTE.js.map} +1 -1
  319. package/dist/admin/{useWebhooks-KtPvzcTB.js → useWebhooks-DmGNXCdi.js} +2 -2
  320. package/dist/admin/{useWebhooks-KtPvzcTB.js.map → useWebhooks-DmGNXCdi.js.map} +1 -1
  321. package/dist/admin/{useWebhooks-7Grr2wYu.mjs → useWebhooks-dOVyaYlw.mjs} +2 -2
  322. package/dist/admin/{useWebhooks-7Grr2wYu.mjs.map → useWebhooks-dOVyaYlw.mjs.map} +1 -1
  323. package/dist/admin/{validateWorkflow-lzkdakmi.js → validateWorkflow-99y3bkNx.js} +3 -3
  324. package/dist/admin/validateWorkflow-99y3bkNx.js.map +1 -0
  325. package/dist/admin/{validateWorkflow-cwVWZu1s.mjs → validateWorkflow-ubLwZqCK.mjs} +3 -3
  326. package/dist/admin/validateWorkflow-ubLwZqCK.mjs.map +1 -0
  327. package/dist/admin/{validation-uxcqs4Uq.mjs → validation-cpJKCQz1.mjs} +2 -2
  328. package/dist/admin/{validation-uxcqs4Uq.mjs.map → validation-cpJKCQz1.mjs.map} +1 -1
  329. package/dist/admin/{validation-aKPvEh9F.js → validation-lIVymZ0n.js} +2 -2
  330. package/dist/admin/{validation-aKPvEh9F.js.map → validation-lIVymZ0n.js.map} +1 -1
  331. package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/actions.d.ts +1 -1
  332. package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/reducer.d.ts +3 -3
  333. package/dist/ee/admin/src/pages/SettingsPage/pages/ReviewWorkflows/selectors.d.ts +4 -4
  334. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  335. package/dist/ee/admin/src/services/reviewWorkflows.d.ts +4 -4
  336. package/dist/ee/server/index.js +5 -5
  337. package/dist/ee/server/index.js.map +1 -1
  338. package/dist/ee/server/index.mjs +6 -6
  339. package/dist/ee/server/index.mjs.map +1 -1
  340. package/dist/package.json.d.ts +11 -11
  341. package/dist/server/index.js +80 -76
  342. package/dist/server/index.js.map +1 -1
  343. package/dist/server/index.mjs +81 -77
  344. package/dist/server/index.mjs.map +1 -1
  345. package/dist/server/src/bootstrap.d.ts +2 -2
  346. package/dist/server/src/bootstrap.d.ts.map +1 -1
  347. package/dist/server/src/controllers/webhooks.d.ts.map +1 -1
  348. package/dist/server/src/domain/action/index.d.ts +21 -8
  349. package/dist/server/src/domain/action/index.d.ts.map +1 -1
  350. package/dist/server/src/domain/permission/index.d.ts +1 -1
  351. package/dist/server/src/domain/permission/index.d.ts.map +1 -1
  352. package/dist/server/src/domain/user.d.ts +1 -1
  353. package/dist/server/src/middlewares/index.d.ts +1 -1
  354. package/dist/server/src/middlewares/rateLimit.d.ts +2 -2
  355. package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
  356. package/dist/server/src/register.d.ts +2 -2
  357. package/dist/server/src/register.d.ts.map +1 -1
  358. package/dist/server/src/routes/serve-admin-panel.d.ts +2 -2
  359. package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
  360. package/dist/server/src/services/content-type.d.ts +5 -5
  361. package/dist/server/src/services/content-type.d.ts.map +1 -1
  362. package/dist/server/src/services/index.d.ts +9 -9
  363. package/dist/server/src/services/metrics.d.ts +3 -3
  364. package/dist/server/src/services/metrics.d.ts.map +1 -1
  365. package/dist/server/src/services/passport/local-strategy.d.ts +2 -2
  366. package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
  367. package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
  368. package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
  369. package/dist/server/src/services/permission/queries.d.ts +5 -6
  370. package/dist/server/src/services/permission/queries.d.ts.map +1 -1
  371. package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
  372. package/dist/server/src/services/permission/sections-builder/utils.d.ts +2 -1
  373. package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
  374. package/dist/server/src/services/permission.d.ts +6 -2
  375. package/dist/server/src/services/permission.d.ts.map +1 -1
  376. package/dist/server/src/services/role.d.ts +6 -6
  377. package/dist/server/src/services/role.d.ts.map +1 -1
  378. package/dist/server/src/services/user.d.ts +5 -5
  379. package/dist/server/src/services/user.d.ts.map +1 -1
  380. package/dist/server/src/validation/api-tokens.d.ts +27 -4
  381. package/dist/server/src/validation/api-tokens.d.ts.map +1 -1
  382. package/dist/server/src/validation/authentication/register.d.ts +8 -2
  383. package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
  384. package/dist/server/src/validation/permission.d.ts +53 -4
  385. package/dist/server/src/validation/permission.d.ts.map +1 -1
  386. package/dist/server/src/validation/policies/hasPermissions.d.ts +7 -2
  387. package/dist/server/src/validation/policies/hasPermissions.d.ts.map +1 -1
  388. package/dist/server/src/validation/role.d.ts +23 -6
  389. package/dist/server/src/validation/role.d.ts.map +1 -1
  390. package/dist/server/src/validation/transfer/token.d.ts +23 -4
  391. package/dist/server/src/validation/transfer/token.d.ts.map +1 -1
  392. package/dist/server/src/validation/user.d.ts +56 -8
  393. package/dist/server/src/validation/user.d.ts.map +1 -1
  394. package/dist/shared/contracts/api-token.d.ts +5 -5
  395. package/dist/shared/contracts/api-token.d.ts.map +1 -1
  396. package/dist/shared/contracts/content-api.d.ts +2 -2
  397. package/dist/shared/contracts/content-api.d.ts.map +1 -1
  398. package/dist/shared/contracts/review-workflows.d.ts +2 -2
  399. package/dist/shared/contracts/review-workflows.d.ts.map +1 -1
  400. package/dist/shared/contracts/roles.d.ts +3 -3
  401. package/dist/shared/contracts/roles.d.ts.map +1 -1
  402. package/dist/shared/contracts/shared.d.ts +4 -4
  403. package/dist/shared/contracts/shared.d.ts.map +1 -1
  404. package/dist/shared/contracts/user.d.ts +6 -6
  405. package/dist/shared/contracts/user.d.ts.map +1 -1
  406. package/dist/shared/contracts/webhooks.d.ts +8 -8
  407. package/dist/shared/contracts/webhooks.d.ts.map +1 -1
  408. package/package.json +12 -12
  409. package/dist/admin/CreatePage-5GygA62E.mjs.map +0 -1
  410. package/dist/admin/CreatePage-yBddklgC.js.map +0 -1
  411. package/dist/admin/EditPage-WEpVsF5C.js.map +0 -1
  412. package/dist/admin/EditPage-foeIMKkr.mjs.map +0 -1
  413. package/dist/admin/FieldTypeIcon--WKPFDG2.js.map +0 -1
  414. package/dist/admin/FieldTypeIcon-AibcTcXN.mjs.map +0 -1
  415. package/dist/admin/Filters-Jm3DRgjx.mjs.map +0 -1
  416. package/dist/admin/Filters-l2eZFcAk.js.map +0 -1
  417. package/dist/admin/Form-V8XluZgD.js.map +0 -1
  418. package/dist/admin/Form-f20Ab8pl.mjs.map +0 -1
  419. package/dist/admin/InputRenderer-89lhMw5B.js.map +0 -1
  420. package/dist/admin/InputRenderer-ddUokGFQ.mjs.map +0 -1
  421. package/dist/admin/ListPage-0jv2yLPQ.mjs.map +0 -1
  422. package/dist/admin/ListPage-Z663tCxD.mjs.map +0 -1
  423. package/dist/admin/ListPage-gP4TzJZw.js.map +0 -1
  424. package/dist/admin/ListPage-v6SUIF_T.js.map +0 -1
  425. package/dist/admin/ListView-4givZ4Eb.mjs.map +0 -1
  426. package/dist/admin/ListView-A1dYCFAI.mjs.map +0 -1
  427. package/dist/admin/ListView-IqhnTHjC.js.map +0 -1
  428. package/dist/admin/ListView-NPtyW54W.js.map +0 -1
  429. package/dist/admin/ListViewPage-67EL6F80.js.map +0 -1
  430. package/dist/admin/ListViewPage-rkQXnquk.mjs.map +0 -1
  431. package/dist/admin/Table-9qwpBhgp.js.map +0 -1
  432. package/dist/admin/Table-hIWrkIyR.mjs.map +0 -1
  433. package/dist/admin/TokenTypeSelect-I0IiW8L9.mjs.map +0 -1
  434. package/dist/admin/TokenTypeSelect-O5IkOZVo.js.map +0 -1
  435. package/dist/admin/index-NzLAHRwx.mjs.map +0 -1
  436. package/dist/admin/index-dBY0pLkw.js.map +0 -1
  437. package/dist/admin/reducers-TOuLOGw_.mjs.map +0 -1
  438. package/dist/admin/reducers-uDxSALD_.js.map +0 -1
  439. package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/Buttons.d.ts +0 -12
  440. package/dist/admin/src/content-manager/pages/ListView/components/BulkActions/SelectedEntriesModal.d.ts +0 -29
  441. package/dist/admin/useDocumentLayout-5UQF9Yls.mjs.map +0 -1
  442. package/dist/admin/useDocumentLayout-wBQQmFJL.js.map +0 -1
  443. package/dist/admin/validateWorkflow-cwVWZu1s.mjs.map +0 -1
  444. package/dist/admin/validateWorkflow-lzkdakmi.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListViewPage-67EL6F80.js","sources":["../../admin/src/content-manager/pages/ListView/components/Filters.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/CellValue.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/Components.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/Media.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/Relations.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/CellContent.tsx","../../admin/src/content-manager/pages/ListView/components/ViewSettingsMenu.tsx","../../admin/src/content-manager/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Combobox, ComboboxOption, useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../components/Filters';\nimport { useField } from '../../../../components/Form';\nimport { useAuth } from '../../../../features/Auth';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\nimport { CREATOR_FIELDS } from '../../../constants/attributes';\nimport { useContentTypeSchema } from '../../../hooks/useContentTypeSchema';\nimport { Schema } from '../../../hooks/useDocument';\nimport { useGetContentTypeConfigurationQuery } from '../../../services/contentTypes';\nimport { getMainField } from '../../../utils/attributes';\n\nconst REVIEW_WORKFLOW_FILTER_CE: Filters.Filter[] = [];\n\n/**\n * If new attributes are added, this list needs to be updated.\n */\nconst NOT_ALLOWED_FILTERS = [\n 'json',\n 'component',\n 'media',\n 'richtext',\n 'dynamiczone',\n 'password',\n 'blocks',\n];\nconst DEFAULT_ALLOWED_FILTERS = ['createdAt', 'updatedAt'];\nconst USER_FILTER_ATTRIBUTES = [...CREATOR_FIELDS, 'strapi_assignee'];\n\n/* -------------------------------------------------------------------------------------------------\n * Filters\n * -----------------------------------------------------------------------------------------------*/\ninterface FiltersProps {\n disabled?: boolean;\n schema: Schema;\n}\n\nconst FiltersImpl = ({ disabled, schema }: FiltersProps) => {\n const { attributes, uid: model, options } = schema;\n const { formatMessage, locale } = useIntl();\n const { trackUsage } = useTracking();\n const allPermissions = useAuth('FiltersImpl', (state) => state.permissions);\n const [{ query }] = useQueryParams<Filters.Query>();\n const { schemas } = useContentTypeSchema();\n\n const canReadAdminUsers = React.useMemo(\n () =>\n allPermissions.filter(\n (permission) => permission.action === 'admin::users.read' && permission.subject === null\n ).length > 0,\n [allPermissions]\n );\n\n const selectedUserIds = (query?.filters?.$and ?? []).reduce<string[]>((acc, filter) => {\n const [key, value] = Object.entries(filter)[0];\n if (typeof value.id !== 'object') {\n return acc;\n }\n\n const id = value.id.$eq || value.id.$ne;\n\n if (id && USER_FILTER_ATTRIBUTES.includes(key) && !acc.includes(id)) {\n acc.push(id);\n }\n\n return acc;\n }, []);\n\n const { data: userData, isLoading: isLoadingAdminUsers } = useAdminUsers(\n { filters: { id: { $in: selectedUserIds } } },\n {\n // fetch the list of admin users only if the filter contains users and the\n // current user has permissions to display users\n skip: selectedUserIds.length === 0 || !canReadAdminUsers,\n }\n );\n\n const { users = [] } = userData ?? {};\n\n const { metadata } = useGetContentTypeConfigurationQuery(model, {\n selectFromResult: ({ data }) => ({ metadata: data?.contentType.metadatas ?? {} }),\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const displayedAttributeFilters = React.useMemo(() => {\n const [{ properties: { fields = [] } = { fields: [] } }] = allPermissions.filter(\n (permission) =>\n permission.action === 'plugin::content-manager.explorer.read' &&\n permission.subject === model\n );\n\n const allowedFields = fields.filter((field) => {\n const attribute = attributes[field] ?? {};\n\n return attribute.type && !NOT_ALLOWED_FILTERS.includes(attribute.type);\n });\n\n return [\n 'id',\n ...allowedFields,\n ...DEFAULT_ALLOWED_FILTERS,\n ...(canReadAdminUsers ? CREATOR_FIELDS : []),\n ]\n .map((name) => {\n const attribute = attributes[name];\n\n if (NOT_ALLOWED_FILTERS.includes(attribute.type)) {\n return null;\n }\n\n const { mainField: mainFieldName = '', label } = metadata[name].list;\n\n let filter: Filters.Filter = {\n name,\n label: label ?? '',\n mainField: getMainField(attribute, mainFieldName, { schemas, components: {} }),\n // @ts-expect-error – TODO: this is filtered out above in the `allowedFields` call but TS complains, is there a better way to solve this?\n type: attribute.type,\n };\n\n if (\n attribute.type === 'relation' &&\n 'target' in attribute &&\n attribute.target === 'admin::user'\n ) {\n filter = {\n ...filter,\n input: AdminUsersFilter,\n options: users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n })),\n operators: [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ],\n mainField: {\n name: 'id',\n type: 'integer',\n },\n };\n }\n\n return filter;\n })\n .filter(Boolean) as Filters.Filter[];\n }, [\n allPermissions,\n model,\n canReadAdminUsers,\n attributes,\n metadata,\n schemas,\n users,\n formatMessage,\n ]);\n\n const reviewWorkflowFilter = useEnterprise(\n REVIEW_WORKFLOW_FILTER_CE,\n async () =>\n (await import('../../../../../../ee/admin/src/content-manager/pages/ListView/constants'))\n .REVIEW_WORKFLOW_FILTERS,\n {\n combine(ceFilters, eeFilters) {\n return [\n ...ceFilters,\n ...eeFilters\n .filter((eeFilter) => {\n // do not display the filter at all, if the current user does\n // not have permissions to read admin users\n if (eeFilter.name === 'strapi_assignee') {\n return canReadAdminUsers;\n }\n return true;\n })\n .map((eeFilter) => ({\n ...eeFilter,\n 'aria-label': formatMessage(eeFilter.label),\n options:\n // TODO: strapi_assignee should not be in here and rather defined\n // in the ee directory.\n eeFilter.name === 'strapi_assignee'\n ? users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n }))\n : undefined,\n })),\n ];\n },\n defaultValue: [],\n // we have to wait for admin users to be fully loaded, because otherwise\n // combine is called to early and does not contain the latest state of\n // the users array\n enabled: !!options?.reviewWorkflows && !isLoadingAdminUsers,\n }\n /**\n * this is cast because the data returns MessageDescriptor\n * as `metadatas.label` _then_ we turn it to a string.\n */\n ) as Filters.Filter[];\n\n const onOpenChange = (isOpen: boolean) => {\n if (isOpen) {\n trackUsage('willFilterEntries');\n }\n };\n\n const displayedFilters = [...displayedAttributeFilters, ...reviewWorkflowFilter].sort((a, b) =>\n formatter.compare(a.label, b.label)\n );\n\n const handleFilterChange: Filters.Props['onChange'] = (data) => {\n const attribute = attributes[data.name];\n\n if (attribute) {\n trackUsage('didFilterEntries', {\n useRelation: attribute.type === 'relation',\n });\n }\n };\n\n return (\n <Filters.Root\n disabled={disabled}\n options={displayedFilters}\n onOpenChange={onOpenChange}\n onChange={handleFilterChange}\n >\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdminUsersFilter\n * -----------------------------------------------------------------------------------------------*/\n\nconst AdminUsersFilter = ({ name }: Filters.ValueInputProps) => {\n const [page, setPage] = React.useState(1);\n const { formatMessage } = useIntl();\n const { data, isLoading } = useAdminUsers({\n page,\n });\n const field = useField(name);\n\n const handleOpenChange = (isOpen?: boolean) => {\n if (!isOpen) {\n setPage(1);\n }\n };\n\n const users = data?.users || [];\n\n return (\n <Combobox\n value={field.value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select a user to filter',\n })}\n onOpenChange={handleOpenChange}\n onChange={(value) => field.onChange(name, value)}\n loading={isLoading}\n onLoadMore={() => setPage((prev) => prev + 1)}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nexport { FiltersImpl as Filters };\nexport type { FiltersProps };\n","import parseISO from 'date-fns/parseISO';\nimport toString from 'lodash/toString';\nimport { useIntl } from 'react-intl';\n\nimport type { Attribute } from '@strapi/types';\n\ninterface CellValueProps {\n type: Attribute.Kind | 'custom';\n value: any;\n}\n\nconst CellValue = ({ type, value }: CellValueProps) => {\n const { formatDate, formatTime, formatNumber } = useIntl();\n let formattedValue = value;\n\n if (type === 'date') {\n formattedValue = formatDate(parseISO(value), { dateStyle: 'full' });\n }\n\n if (type === 'datetime') {\n formattedValue = formatDate(value, { dateStyle: 'full', timeStyle: 'short' });\n }\n\n if (type === 'time') {\n const [hour, minute, second] = value.split(':');\n const date = new Date();\n date.setHours(hour);\n date.setMinutes(minute);\n date.setSeconds(second);\n\n formattedValue = formatTime(date, {\n timeStyle: 'short',\n });\n }\n\n if (['float', 'decimal'].includes(type)) {\n formattedValue = formatNumber(value, {\n // Should be kept in sync with the corresponding value\n // in the design-system/NumberInput: https://github.com/strapi/design-system/blob/main/packages/strapi-design-system/src/NumberInput/NumberInput.js#L53\n maximumFractionDigits: 20,\n });\n }\n\n if (['integer', 'biginteger'].includes(type)) {\n formattedValue = formatNumber(value, { maximumFractionDigits: 0 });\n }\n\n return toString(formattedValue);\n};\n\nexport { CellValue };\nexport type { CellValueProps };\n","import { Badge, Tooltip, Typography } from '@strapi/design-system';\nimport { Menu } from '@strapi/design-system/v2';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { CellContentProps } from './CellContent';\nimport { CellValue } from './CellValue';\n\nimport type { ComponentsDictionary } from '../../../../hooks/useDocument';\nimport type { Attribute } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * SingleComponent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SingleComponentProps extends Pick<CellContentProps, 'mainField'> {\n content: Attribute.GetValue<Attribute.Component<`${string}.${string}`, false>>;\n}\n\nconst SingleComponent = ({ content, mainField }: SingleComponentProps) => {\n if (!mainField) {\n return null;\n }\n\n return (\n <Tooltip label={content[mainField.name]}>\n <SingleComponentTypography textColor=\"neutral800\" ellipsis>\n <CellValue type={mainField.type} value={content[mainField.name]} />\n </SingleComponentTypography>\n </Tooltip>\n );\n};\n\nconst SingleComponentTypography = styled(Typography)`\n max-width: 250px;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * RepeatableComponent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RepeatableComponentProps extends Pick<CellContentProps, 'mainField'> {\n content: Attribute.GetValue<Attribute.Component<`${string}.${string}`, true>>;\n}\n\nconst RepeatableComponent = ({ content, mainField }: RepeatableComponentProps) => {\n const { formatMessage } = useIntl();\n\n if (!mainField) {\n return null;\n }\n\n return (\n <Menu.Root>\n <MenuTrigger onClick={(e) => e.stopPropagation()}>\n <Badge>{content.length}</Badge>{' '}\n {formatMessage(\n {\n id: 'content-manager.containers.list.items',\n defaultMessage: '{number, plural, =0 {items} one {item} other {items}}',\n },\n { number: content.length }\n )}\n </MenuTrigger>\n <Menu.Content>\n {content.map((item) => (\n <Menu.Item key={item.id} disabled>\n <RepeatableComponentTypography ellipsis>\n <CellValue type={mainField.type} value={item[mainField.name]} />\n </RepeatableComponentTypography>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nconst RepeatableComponentTypography = styled(Typography)`\n max-width: 500px;\n`;\n\n/**\n * TODO: this needs to be solved in the Design-System\n */\nconst MenuTrigger = styled(Menu.Trigger)`\n svg {\n width: ${6 / 16}rem;\n height: ${4 / 16}rem;\n }\n`;\n\nexport { SingleComponent, RepeatableComponent };\nexport type { SingleComponentProps, RepeatableComponentProps };\n","import * as React from 'react';\n\nimport { Avatar, AvatarGroup, Flex, Tooltip, Typography } from '@strapi/design-system';\nimport styled from 'styled-components';\n\nimport { prefixFileUrlWithBackendUrl } from '../../../../../utils/urls';\n\nimport type { Entity } from '@strapi/types';\n\ninterface MediaFile {\n id?: Entity.ID;\n alternativeText?: string;\n ext: string;\n formats: {\n thumbnail?: {\n url?: string;\n };\n };\n mime: string;\n name: string;\n url: string;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Media\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MediaSingleProps extends MediaFile {}\n\nconst getFileExtension = (ext: string) => (ext && ext[0] === '.' ? ext.substring(1) : ext);\n\nconst MediaSingle = ({ url, mime, alternativeText, name, ext, formats }: MediaSingleProps) => {\n const fileURL = prefixFileUrlWithBackendUrl(url)!;\n\n if (mime.includes('image')) {\n const thumbnail = formats?.thumbnail?.url;\n const mediaURL = prefixFileUrlWithBackendUrl(thumbnail) || fileURL;\n\n return <Avatar src={mediaURL} alt={alternativeText || name} preview />;\n }\n\n const fileExtension = getFileExtension(ext);\n const fileName = name.length > 100 ? `${name.substring(0, 100)}...` : name;\n\n return (\n <Tooltip description={fileName}>\n <FileWrapper>{fileExtension}</FileWrapper>\n </Tooltip>\n );\n};\n\nconst FileWrapper = ({ children }: { children: React.ReactNode }) => {\n return (\n <Flex\n as=\"span\"\n position=\"relative\"\n borderRadius=\"50%\"\n width=\"26px\"\n height=\"26px\"\n borderColor=\"neutral200\"\n background=\"neutral150\"\n paddingLeft=\"1px\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <FileTypography variant=\"sigma\" textColor=\"neutral600\">\n {children}\n </FileTypography>\n </Flex>\n );\n};\n\nconst FileTypography = styled(Typography)`\n font-size: 0.6rem;\n line-height: 0.6rem;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * MediaMultiple\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MediaMultipleProps {\n content: MediaFile[];\n}\n\nconst MediaMultiple = ({ content }: MediaMultipleProps) => {\n return (\n <AvatarGroup>\n {content.map((file, index) => {\n const key = `${file.id}${index}`;\n\n if (index === 3) {\n const remainingFiles = `+${content.length - 3}`;\n\n return <FileWrapper key={key}>{remainingFiles}</FileWrapper>;\n }\n\n if (index > 3) {\n return null;\n }\n\n return <MediaSingle key={key} {...file} />;\n })}\n </AvatarGroup>\n );\n};\n\nexport { MediaMultiple, MediaSingle };\nexport type { MediaMultipleProps, MediaSingleProps };\n","import * as React from 'react';\n\nimport { Typography, Badge, Flex, Loader, useNotifyAT } from '@strapi/design-system';\nimport { Menu } from '@strapi/design-system/v2';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useGetRelationsQuery } from '../../../../services/relations';\nimport { getRelationLabel } from '../../../../utils/relations';\nimport { getTranslation } from '../../../../utils/translations';\n\nimport type { CellContentProps } from './CellContent';\n\n/* -------------------------------------------------------------------------------------------------\n * RelationSingle\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RelationSingleProps extends Pick<CellContentProps, 'mainField' | 'content'> {}\n\nconst RelationSingle = ({ mainField, content }: RelationSingleProps) => {\n return (\n <TypographyMaxWidth textColor=\"neutral800\" ellipsis>\n {getRelationLabel(content, mainField)}\n </TypographyMaxWidth>\n );\n};\n\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 500px;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * RelationMultiple\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RelationMultipleProps\n extends Pick<CellContentProps, 'mainField' | 'content' | 'name' | 'rowId'> {}\n\n/**\n * TODO: fix this component – tracking issue https://strapi-inc.atlassian.net/browse/CONTENT-2184\n */\nconst RelationMultiple = ({ mainField, content, rowId, name }: RelationMultipleProps) => {\n const { model } = useDoc();\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const [isOpen, setIsOpen] = React.useState(false);\n\n const [targetField] = name.split('.');\n\n const { data, isLoading } = useGetRelationsQuery(\n {\n model,\n id: rowId,\n targetField,\n },\n {\n skip: !isOpen,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage({\n id: getTranslation('DynamicTable.relation-loaded'),\n defaultMessage: 'Relations have been loaded',\n })\n );\n }\n }, [data, formatMessage, notifyStatus]);\n\n return (\n <Menu.Root onOpenChange={(isOpen) => setIsOpen(isOpen)}>\n <MenuTrigger onClick={(e) => e.stopPropagation()}>\n <Flex gap={1} wrap=\"nowrap\">\n <Badge>{content.count}</Badge>\n {formatMessage(\n {\n id: 'content-manager.containers.list.items',\n defaultMessage: '{number, plural, =0 {items} one {item} other {items}}',\n },\n { number: content.count }\n )}\n </Flex>\n </MenuTrigger>\n <Menu.Content>\n {isLoading && (\n <Menu.Item disabled>\n <Loader small>\n {formatMessage({\n id: getTranslation('ListViewTable.relation-loading'),\n defaultMessage: 'Relations are loading',\n })}\n </Loader>\n </Menu.Item>\n )}\n {data?.results && (\n <>\n {data.results.map((entry) => (\n <Menu.Item key={entry.documentId} disabled>\n <TypographyMaxWidth ellipsis>\n {getRelationLabel(entry, mainField)}\n </TypographyMaxWidth>\n </Menu.Item>\n ))}\n\n {data?.pagination && data?.pagination.total > 10 && (\n <Menu.Item\n aria-disabled\n aria-label={formatMessage({\n id: getTranslation('ListViewTable.relation-more'),\n defaultMessage: 'This relation contains more entities than displayed',\n })}\n >\n <Typography>…</Typography>\n </Menu.Item>\n )}\n </>\n )}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\n/**\n * TODO: this needs to be solved in the Design-System\n */\nconst MenuTrigger = styled(Menu.Trigger)`\n svg {\n width: ${6 / 16}rem;\n height: ${4 / 16}rem;\n }\n`;\n\nexport { RelationSingle, RelationMultiple };\nexport type { RelationSingleProps, RelationMultipleProps };\n","import { Tooltip, Typography } from '@strapi/design-system';\nimport isEmpty from 'lodash/isEmpty';\nimport styled from 'styled-components';\n\nimport { CellValue } from './CellValue';\nimport { SingleComponent, RepeatableComponent } from './Components';\nimport { MediaSingle, MediaMultiple } from './Media';\nimport { RelationMultiple, RelationSingle } from './Relations';\n\nimport type { ListFieldLayout } from '../../../../hooks/useDocumentLayout';\nimport type { Attribute, Entity } from '@strapi/types';\n\ninterface CellContentProps extends Omit<ListFieldLayout, 'cellFormatter'> {\n content: Attribute.GetValue<Attribute.Any>;\n rowId: Entity.ID;\n}\n\nconst CellContent = ({ content, mainField, attribute, rowId, name }: CellContentProps) => {\n if (!hasContent(content, mainField, attribute)) {\n return <Typography textColor=\"neutral800\">-</Typography>;\n }\n\n switch (attribute.type) {\n case 'media':\n if (!attribute.multiple) {\n return <MediaSingle {...content} />;\n }\n\n return <MediaMultiple content={content} />;\n\n case 'relation': {\n if (isSingleRelation(attribute.relation)) {\n return <RelationSingle mainField={mainField} content={content} />;\n }\n\n return <RelationMultiple rowId={rowId} mainField={mainField} content={content} name={name} />;\n }\n\n case 'component':\n if (attribute.repeatable) {\n return <RepeatableComponent mainField={mainField} content={content} />;\n }\n\n return <SingleComponent mainField={mainField} content={content} />;\n\n case 'string':\n return (\n <Tooltip description={content}>\n <TypographyMaxWidth ellipsis textColor=\"neutral800\">\n <CellValue type={attribute.type} value={content} />\n </TypographyMaxWidth>\n </Tooltip>\n );\n\n default:\n return (\n <TypographyMaxWidth ellipsis textColor=\"neutral800\">\n <CellValue type={attribute.type} value={content} />\n </TypographyMaxWidth>\n );\n }\n};\n\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 300px;\n`;\n\nconst hasContent = (\n content: CellContentProps['content'],\n mainField: CellContentProps['mainField'],\n attribute: CellContentProps['attribute']\n) => {\n if (attribute.type === 'component') {\n // Repeatable fields show the ID as fallback, in case the mainField\n // doesn't have any content\n if (attribute.repeatable || !mainField) {\n return content?.length > 0;\n }\n\n const value = content?.[mainField.name];\n\n // relations, media ... show the id as fallback\n if (mainField.name === 'id' && ![undefined, null].includes(value)) {\n return true;\n }\n\n return !isEmpty(value);\n }\n\n if (attribute.type === 'relation') {\n if (isSingleRelation(attribute.relation)) {\n return !isEmpty(content);\n }\n\n return content?.count > 0;\n }\n\n /* \n Biginteger fields need to be treated as strings, as `isNumber`\n doesn't deal with them.\n */\n if (['integer', 'decimal', 'float', 'number'].includes(attribute.type)) {\n return typeof content === 'number';\n }\n\n if (attribute.type === 'boolean') {\n return content !== null;\n }\n\n return !isEmpty(content);\n};\n\nconst isSingleRelation = (\n type: Extract<CellContentProps['attribute'], { type: 'relation' }>['relation']\n) => ['oneToOne', 'manyToOne', 'oneToOneMorph'].includes(type);\n\nexport { CellContent };\nexport type { CellContentProps };\n","import * as React from 'react';\n\nimport {\n Flex,\n IconButton,\n Popover,\n BaseCheckbox,\n TextButton,\n Typography,\n useCollator,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport { Cog, Layer } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { checkIfAttributeIsDisplayable } from '../../../utils/attributes';\n\ninterface ViewSettingsMenuProps extends FieldPickerProps {}\n\nconst ViewSettingsMenu = (props: ViewSettingsMenuProps) => {\n const [isVisible, setIsVisible] = React.useState(false);\n const cogButtonRef = React.useRef<HTMLButtonElement>(null!);\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations ?? []\n );\n const [{ query }] = useQueryParams<{ plugins?: Record<string, unknown> }>();\n const { formatMessage } = useIntl();\n const {\n allowedActions: { canViewConfiguration },\n } = useRBAC({\n viewConfiguration: permissions,\n });\n\n const handleToggle = () => {\n setIsVisible((prev) => !prev);\n };\n\n return (\n <>\n <IconButton\n icon={<Cog />}\n label={formatMessage({\n id: 'components.ViewSettings.tooltip',\n defaultMessage: 'View Settings',\n })}\n ref={cogButtonRef}\n onClick={handleToggle}\n />\n {isVisible && (\n <Popover\n placement=\"bottom-end\"\n source={cogButtonRef}\n onDismiss={handleToggle}\n spacing={4}\n padding={3}\n >\n <Flex alignItems=\"stretch\" direction=\"column\" gap={3}>\n {canViewConfiguration ? (\n <LinkButton\n size=\"S\"\n startIcon={<Layer />}\n variant=\"secondary\"\n as={NavLink}\n // @ts-expect-error – inference from the as prop does not work in the DS.\n to={{\n pathname: 'configurations/list',\n search: query.plugins\n ? stringify({ plugins: query.plugins }, { encode: false })\n : '',\n }}\n >\n {formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n })}\n </LinkButton>\n ) : null}\n <FieldPicker {...props} />\n </Flex>\n </Popover>\n )}\n </>\n );\n};\n\ninterface FieldPickerProps {\n headers?: string[];\n setHeaders: (headers: string[]) => void;\n resetHeaders: () => void;\n}\n\nconst FieldPicker = ({ headers = [], resetHeaders, setHeaders }: FieldPickerProps) => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n\n const { schema, model } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const attributes = schema?.attributes ?? {};\n\n const columns = Object.keys(attributes)\n .filter((name) => checkIfAttributeIsDisplayable(attributes[name]))\n .map((name) => ({\n name,\n label: list.metadatas[name]?.label ?? '',\n }))\n .sort((a, b) => formatter.compare(a.label, b.label));\n\n const handleChange = (name: string) => {\n trackUsage('didChangeDisplayedFields');\n\n /**\n * create an array of the new headers, if the new name exists it should be removed,\n * otherwise it should be added\n */\n const newHeaders = headers.includes(name)\n ? headers.filter((header) => header !== name)\n : [...headers, name];\n\n setHeaders(newHeaders);\n };\n\n const handleReset = () => {\n resetHeaders();\n };\n\n return (\n <Flex as=\"fieldset\" direction=\"column\" alignItems=\"stretch\" gap={3}>\n <Flex justifyContent=\"space-between\">\n <Typography as=\"legend\" variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'containers.list.displayedFields',\n defaultMessage: 'Displayed fields',\n })}\n </Typography>\n\n <TextButton onClick={handleReset}>\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </TextButton>\n </Flex>\n\n <Flex direction=\"column\" alignItems=\"stretch\">\n {columns.map((header) => {\n const isActive = headers.includes(header.name);\n\n return (\n <ChackboxWrapper\n wrap=\"wrap\"\n gap={2}\n as=\"label\"\n background={isActive ? 'primary100' : 'transparent'}\n hasRadius\n padding={2}\n key={header.name}\n >\n <BaseCheckbox\n onChange={() => handleChange(header.name)}\n value={isActive}\n name={header.name}\n />\n <Typography fontSize={1}>{header.label}</Typography>\n </ChackboxWrapper>\n );\n })}\n </Flex>\n </Flex>\n );\n};\n\nconst ChackboxWrapper = styled(Flex)`\n :hover {\n background-color: ${(props) => props.theme.colors.primary100};\n }\n`;\n\nexport { ViewSettingsMenu };\nexport type { ViewSettingsMenuProps, FieldPickerProps };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Flex,\n Typography,\n lightTheme,\n ButtonProps,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { InjectionZone } from '../../../components/InjectionZone';\nimport { Page } from '../../../components/PageHelpers';\nimport { Pagination } from '../../../components/Pagination';\nimport { SearchInput } from '../../../components/SearchInput';\nimport { Table } from '../../../components/Table';\nimport { HOOKS } from '../../../constants';\nimport { BackButton } from '../../../features/BackButton';\nimport { useNotification } from '../../../features/Notifications';\nimport { useStrapiApp } from '../../../features/StrapiApp';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../hooks/useEnterprise';\nimport { useQueryParams } from '../../../hooks/useQueryParams';\nimport { getDisplayName } from '../../../utils/users';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useSyncRbac } from '../../hooks/useSyncRbac';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Documents } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\nconst REVIEW_WORKFLOW_COLUMNS_CE = null;\nconst REVIEW_WORKFLOW_COLUMNS_CELL_CE = {\n ReviewWorkflowsStageEE: () => null,\n ReviewWorkflowsAssigneeEE: () => null,\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const { data, error, isLoading } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n /* -------------------------------------------------------------------------------------------------\n * Create all our table headers and run the hook for plugins to inject.\n * -----------------------------------------------------------------------------------------------*/\n const reviewWorkflowColumns = useEnterprise(\n REVIEW_WORKFLOW_COLUMNS_CE,\n async () =>\n (await import('../../../../../ee/admin/src/content-manager/pages/ListView/constants'))\n .REVIEW_WORKFLOW_COLUMNS_EE,\n {\n enabled: !!schema?.options?.reviewWorkflows,\n }\n );\n const ReviewWorkflowsColumns = useEnterprise(\n REVIEW_WORKFLOW_COLUMNS_CELL_CE,\n async () => {\n const { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE } = await import(\n '../../../../../ee/admin/src/content-manager/pages/ListView/components/ReviewWorkflowsColumn'\n );\n return { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE };\n },\n {\n enabled: !!schema?.options?.reviewWorkflows,\n }\n );\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n return {\n ...header,\n label: typeof header.label === 'string' ? header.label : formatMessage(header.label),\n name: `${header.name}${header.mainField ? `.${header.mainField}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n if (reviewWorkflowColumns) {\n formattedHeaders.push(\n ...reviewWorkflowColumns.map((column) => ({\n ...column,\n label: formatMessage(column.label),\n }))\n );\n }\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n reviewWorkflowColumns,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName ?? 'Untitled';\n\n const handleRowClick = (id: Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n return (\n <Page.Main>\n <Helmet title={`${contentTypeTitle} | Strapi`} />\n <HeaderLayout\n primaryAction={canCreate ? <CreateButton /> : null}\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <ActionLayout\n endActions={\n <>\n <InjectionZone area=\"contentManager.listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <ContentLayout>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isLoading}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (schema?.options?.reviewWorkflows) {\n if (header.name === 'strapi_stage') {\n return (\n <Table.Cell key={header.name}>\n {row.strapi_stage ? (\n <ReviewWorkflowsColumns.ReviewWorkflowsStageEE\n color={row.strapi_stage.color ?? lightTheme.colors.primary600}\n name={row.strapi_stage.name}\n />\n ) : (\n <Typography textColor=\"neutral800\">-</Typography>\n )}\n </Table.Cell>\n );\n }\n if (header.name === 'strapi_assignee') {\n return (\n <Table.Cell key={header.name}>\n {row.strapi_assignee ? (\n <ReviewWorkflowsColumns.ReviewWorkflowsAssigneeEE\n user={row.strapi_assignee}\n />\n ) : (\n <Typography textColor=\"neutral800\">-</Typography>\n )}\n </Table.Cell>\n );\n }\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]], formatMessage)\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propogation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </ContentLayout>\n </Page.Main>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n forwardedAs={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n // @ts-expect-error – DS inference does not work with as or forwardedAs\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { model } = useDoc();\n const [{ query }] = useQueryParams();\n const { permissions = [], isLoading, isError } = useSyncRbac(model, query, 'editView');\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["CREATOR_FIELDS","useIntl","useTracking","useAuth","useQueryParams","useContentTypeSchema","React","useAdminUsers","useGetContentTypeConfigurationQuery","useCollator","getMainField","getDisplayName","useEnterprise","jsxs","Filters","jsx","useField","Combobox","ComboboxOption","parseISO","toString","Tooltip","styled","Typography","Menu","MenuTrigger","Badge","prefixFileUrlWithBackendUrl","Avatar","Flex","AvatarGroup","TypographyMaxWidth","getRelationLabel","useDoc","useNotifyAT","useGetRelationsQuery","getTranslation","isOpen","Loader","Fragment","isEmpty","useTypedSelector","useRBAC","IconButton","Cog","Popover","LinkButton","Layer","NavLink","stringify","useDocumentLayout","checkIfAttributeIsDisplayable","TextButton","BaseCheckbox","HOOKS","useNavigate","useNotification","useAPIErrorHandler","usePrev","isEqual","convertListLayoutToFieldLayouts","buildValidParams","useGetAllDocumentsQuery","useDocumentRBAC","canCreate","useStrapiApp","runHookWaterfall","Page","Helmet","HeaderLayout","BackButton","ActionLayout","InjectionZone","SearchInput","ContentLayout","Table","DocumentStatus","lightTheme","TableActions","Pagination","Button","ReactRouterLink","Plus","useSyncRbac","permissions","DocumentRBAC"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListViewPage-rkQXnquk.mjs","sources":["../../admin/src/content-manager/pages/ListView/components/Filters.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/CellValue.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/Components.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/Media.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/Relations.tsx","../../admin/src/content-manager/pages/ListView/components/TableCells/CellContent.tsx","../../admin/src/content-manager/pages/ListView/components/ViewSettingsMenu.tsx","../../admin/src/content-manager/pages/ListView/ListViewPage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Combobox, ComboboxOption, useCollator } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { Filters } from '../../../../components/Filters';\nimport { useField } from '../../../../components/Form';\nimport { useAuth } from '../../../../features/Auth';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useEnterprise } from '../../../../hooks/useEnterprise';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useAdminUsers } from '../../../../services/users';\nimport { getDisplayName } from '../../../../utils/users';\nimport { CREATOR_FIELDS } from '../../../constants/attributes';\nimport { useContentTypeSchema } from '../../../hooks/useContentTypeSchema';\nimport { Schema } from '../../../hooks/useDocument';\nimport { useGetContentTypeConfigurationQuery } from '../../../services/contentTypes';\nimport { getMainField } from '../../../utils/attributes';\n\nconst REVIEW_WORKFLOW_FILTER_CE: Filters.Filter[] = [];\n\n/**\n * If new attributes are added, this list needs to be updated.\n */\nconst NOT_ALLOWED_FILTERS = [\n 'json',\n 'component',\n 'media',\n 'richtext',\n 'dynamiczone',\n 'password',\n 'blocks',\n];\nconst DEFAULT_ALLOWED_FILTERS = ['createdAt', 'updatedAt'];\nconst USER_FILTER_ATTRIBUTES = [...CREATOR_FIELDS, 'strapi_assignee'];\n\n/* -------------------------------------------------------------------------------------------------\n * Filters\n * -----------------------------------------------------------------------------------------------*/\ninterface FiltersProps {\n disabled?: boolean;\n schema: Schema;\n}\n\nconst FiltersImpl = ({ disabled, schema }: FiltersProps) => {\n const { attributes, uid: model, options } = schema;\n const { formatMessage, locale } = useIntl();\n const { trackUsage } = useTracking();\n const allPermissions = useAuth('FiltersImpl', (state) => state.permissions);\n const [{ query }] = useQueryParams<Filters.Query>();\n const { schemas } = useContentTypeSchema();\n\n const canReadAdminUsers = React.useMemo(\n () =>\n allPermissions.filter(\n (permission) => permission.action === 'admin::users.read' && permission.subject === null\n ).length > 0,\n [allPermissions]\n );\n\n const selectedUserIds = (query?.filters?.$and ?? []).reduce<string[]>((acc, filter) => {\n const [key, value] = Object.entries(filter)[0];\n if (typeof value.id !== 'object') {\n return acc;\n }\n\n const id = value.id.$eq || value.id.$ne;\n\n if (id && USER_FILTER_ATTRIBUTES.includes(key) && !acc.includes(id)) {\n acc.push(id);\n }\n\n return acc;\n }, []);\n\n const { data: userData, isLoading: isLoadingAdminUsers } = useAdminUsers(\n { filters: { id: { $in: selectedUserIds } } },\n {\n // fetch the list of admin users only if the filter contains users and the\n // current user has permissions to display users\n skip: selectedUserIds.length === 0 || !canReadAdminUsers,\n }\n );\n\n const { users = [] } = userData ?? {};\n\n const { metadata } = useGetContentTypeConfigurationQuery(model, {\n selectFromResult: ({ data }) => ({ metadata: data?.contentType.metadatas ?? {} }),\n });\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const displayedAttributeFilters = React.useMemo(() => {\n const [{ properties: { fields = [] } = { fields: [] } }] = allPermissions.filter(\n (permission) =>\n permission.action === 'plugin::content-manager.explorer.read' &&\n permission.subject === model\n );\n\n const allowedFields = fields.filter((field) => {\n const attribute = attributes[field] ?? {};\n\n return attribute.type && !NOT_ALLOWED_FILTERS.includes(attribute.type);\n });\n\n return [\n 'id',\n ...allowedFields,\n ...DEFAULT_ALLOWED_FILTERS,\n ...(canReadAdminUsers ? CREATOR_FIELDS : []),\n ]\n .map((name) => {\n const attribute = attributes[name];\n\n if (NOT_ALLOWED_FILTERS.includes(attribute.type)) {\n return null;\n }\n\n const { mainField: mainFieldName = '', label } = metadata[name].list;\n\n let filter: Filters.Filter = {\n name,\n label: label ?? '',\n mainField: getMainField(attribute, mainFieldName, { schemas, components: {} }),\n // @ts-expect-error – TODO: this is filtered out above in the `allowedFields` call but TS complains, is there a better way to solve this?\n type: attribute.type,\n };\n\n if (\n attribute.type === 'relation' &&\n 'target' in attribute &&\n attribute.target === 'admin::user'\n ) {\n filter = {\n ...filter,\n input: AdminUsersFilter,\n options: users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n })),\n operators: [\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$eq',\n defaultMessage: 'is',\n }),\n value: '$eq',\n },\n {\n label: formatMessage({\n id: 'components.FilterOptions.FILTER_TYPES.$ne',\n defaultMessage: 'is not',\n }),\n value: '$ne',\n },\n ],\n mainField: {\n name: 'id',\n type: 'integer',\n },\n };\n }\n\n return filter;\n })\n .filter(Boolean) as Filters.Filter[];\n }, [\n allPermissions,\n model,\n canReadAdminUsers,\n attributes,\n metadata,\n schemas,\n users,\n formatMessage,\n ]);\n\n const reviewWorkflowFilter = useEnterprise(\n REVIEW_WORKFLOW_FILTER_CE,\n async () =>\n (await import('../../../../../../ee/admin/src/content-manager/pages/ListView/constants'))\n .REVIEW_WORKFLOW_FILTERS,\n {\n combine(ceFilters, eeFilters) {\n return [\n ...ceFilters,\n ...eeFilters\n .filter((eeFilter) => {\n // do not display the filter at all, if the current user does\n // not have permissions to read admin users\n if (eeFilter.name === 'strapi_assignee') {\n return canReadAdminUsers;\n }\n return true;\n })\n .map((eeFilter) => ({\n ...eeFilter,\n 'aria-label': formatMessage(eeFilter.label),\n options:\n // TODO: strapi_assignee should not be in here and rather defined\n // in the ee directory.\n eeFilter.name === 'strapi_assignee'\n ? users.map((user) => ({\n label: getDisplayName(user, formatMessage),\n value: user.id.toString(),\n }))\n : undefined,\n })),\n ];\n },\n defaultValue: [],\n // we have to wait for admin users to be fully loaded, because otherwise\n // combine is called to early and does not contain the latest state of\n // the users array\n enabled: !!options?.reviewWorkflows && !isLoadingAdminUsers,\n }\n /**\n * this is cast because the data returns MessageDescriptor\n * as `metadatas.label` _then_ we turn it to a string.\n */\n ) as Filters.Filter[];\n\n const onOpenChange = (isOpen: boolean) => {\n if (isOpen) {\n trackUsage('willFilterEntries');\n }\n };\n\n const displayedFilters = [...displayedAttributeFilters, ...reviewWorkflowFilter].sort((a, b) =>\n formatter.compare(a.label, b.label)\n );\n\n const handleFilterChange: Filters.Props['onChange'] = (data) => {\n const attribute = attributes[data.name];\n\n if (attribute) {\n trackUsage('didFilterEntries', {\n useRelation: attribute.type === 'relation',\n });\n }\n };\n\n return (\n <Filters.Root\n disabled={disabled}\n options={displayedFilters}\n onOpenChange={onOpenChange}\n onChange={handleFilterChange}\n >\n <Filters.Trigger />\n <Filters.Popover />\n <Filters.List />\n </Filters.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * AdminUsersFilter\n * -----------------------------------------------------------------------------------------------*/\n\nconst AdminUsersFilter = ({ name }: Filters.ValueInputProps) => {\n const [page, setPage] = React.useState(1);\n const { formatMessage } = useIntl();\n const { data, isLoading } = useAdminUsers({\n page,\n });\n const field = useField(name);\n\n const handleOpenChange = (isOpen?: boolean) => {\n if (!isOpen) {\n setPage(1);\n }\n };\n\n const users = data?.users || [];\n\n return (\n <Combobox\n value={field.value}\n aria-label={formatMessage({\n id: 'content-manager.components.Filters.usersSelect.label',\n defaultMessage: 'Search and select a user to filter',\n })}\n onOpenChange={handleOpenChange}\n onChange={(value) => field.onChange(name, value)}\n loading={isLoading}\n onLoadMore={() => setPage((prev) => prev + 1)}\n >\n {users.map((user) => {\n return (\n <ComboboxOption key={user.id} value={user.id.toString()}>\n {getDisplayName(user, formatMessage)}\n </ComboboxOption>\n );\n })}\n </Combobox>\n );\n};\n\nexport { FiltersImpl as Filters };\nexport type { FiltersProps };\n","import parseISO from 'date-fns/parseISO';\nimport toString from 'lodash/toString';\nimport { useIntl } from 'react-intl';\n\nimport type { Attribute } from '@strapi/types';\n\ninterface CellValueProps {\n type: Attribute.Kind | 'custom';\n value: any;\n}\n\nconst CellValue = ({ type, value }: CellValueProps) => {\n const { formatDate, formatTime, formatNumber } = useIntl();\n let formattedValue = value;\n\n if (type === 'date') {\n formattedValue = formatDate(parseISO(value), { dateStyle: 'full' });\n }\n\n if (type === 'datetime') {\n formattedValue = formatDate(value, { dateStyle: 'full', timeStyle: 'short' });\n }\n\n if (type === 'time') {\n const [hour, minute, second] = value.split(':');\n const date = new Date();\n date.setHours(hour);\n date.setMinutes(minute);\n date.setSeconds(second);\n\n formattedValue = formatTime(date, {\n timeStyle: 'short',\n });\n }\n\n if (['float', 'decimal'].includes(type)) {\n formattedValue = formatNumber(value, {\n // Should be kept in sync with the corresponding value\n // in the design-system/NumberInput: https://github.com/strapi/design-system/blob/main/packages/strapi-design-system/src/NumberInput/NumberInput.js#L53\n maximumFractionDigits: 20,\n });\n }\n\n if (['integer', 'biginteger'].includes(type)) {\n formattedValue = formatNumber(value, { maximumFractionDigits: 0 });\n }\n\n return toString(formattedValue);\n};\n\nexport { CellValue };\nexport type { CellValueProps };\n","import { Badge, Tooltip, Typography } from '@strapi/design-system';\nimport { Menu } from '@strapi/design-system/v2';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { CellContentProps } from './CellContent';\nimport { CellValue } from './CellValue';\n\nimport type { ComponentsDictionary } from '../../../../hooks/useDocument';\nimport type { Attribute } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * SingleComponent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SingleComponentProps extends Pick<CellContentProps, 'mainField'> {\n content: Attribute.GetValue<Attribute.Component<`${string}.${string}`, false>>;\n}\n\nconst SingleComponent = ({ content, mainField }: SingleComponentProps) => {\n if (!mainField) {\n return null;\n }\n\n return (\n <Tooltip label={content[mainField.name]}>\n <SingleComponentTypography textColor=\"neutral800\" ellipsis>\n <CellValue type={mainField.type} value={content[mainField.name]} />\n </SingleComponentTypography>\n </Tooltip>\n );\n};\n\nconst SingleComponentTypography = styled(Typography)`\n max-width: 250px;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * RepeatableComponent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RepeatableComponentProps extends Pick<CellContentProps, 'mainField'> {\n content: Attribute.GetValue<Attribute.Component<`${string}.${string}`, true>>;\n}\n\nconst RepeatableComponent = ({ content, mainField }: RepeatableComponentProps) => {\n const { formatMessage } = useIntl();\n\n if (!mainField) {\n return null;\n }\n\n return (\n <Menu.Root>\n <MenuTrigger onClick={(e) => e.stopPropagation()}>\n <Badge>{content.length}</Badge>{' '}\n {formatMessage(\n {\n id: 'content-manager.containers.list.items',\n defaultMessage: '{number, plural, =0 {items} one {item} other {items}}',\n },\n { number: content.length }\n )}\n </MenuTrigger>\n <Menu.Content>\n {content.map((item) => (\n <Menu.Item key={item.id} disabled>\n <RepeatableComponentTypography ellipsis>\n <CellValue type={mainField.type} value={item[mainField.name]} />\n </RepeatableComponentTypography>\n </Menu.Item>\n ))}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\nconst RepeatableComponentTypography = styled(Typography)`\n max-width: 500px;\n`;\n\n/**\n * TODO: this needs to be solved in the Design-System\n */\nconst MenuTrigger = styled(Menu.Trigger)`\n svg {\n width: ${6 / 16}rem;\n height: ${4 / 16}rem;\n }\n`;\n\nexport { SingleComponent, RepeatableComponent };\nexport type { SingleComponentProps, RepeatableComponentProps };\n","import * as React from 'react';\n\nimport { Avatar, AvatarGroup, Flex, Tooltip, Typography } from '@strapi/design-system';\nimport styled from 'styled-components';\n\nimport { prefixFileUrlWithBackendUrl } from '../../../../../utils/urls';\n\nimport type { Entity } from '@strapi/types';\n\ninterface MediaFile {\n id?: Entity.ID;\n alternativeText?: string;\n ext: string;\n formats: {\n thumbnail?: {\n url?: string;\n };\n };\n mime: string;\n name: string;\n url: string;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Media\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MediaSingleProps extends MediaFile {}\n\nconst getFileExtension = (ext: string) => (ext && ext[0] === '.' ? ext.substring(1) : ext);\n\nconst MediaSingle = ({ url, mime, alternativeText, name, ext, formats }: MediaSingleProps) => {\n const fileURL = prefixFileUrlWithBackendUrl(url)!;\n\n if (mime.includes('image')) {\n const thumbnail = formats?.thumbnail?.url;\n const mediaURL = prefixFileUrlWithBackendUrl(thumbnail) || fileURL;\n\n return <Avatar src={mediaURL} alt={alternativeText || name} preview />;\n }\n\n const fileExtension = getFileExtension(ext);\n const fileName = name.length > 100 ? `${name.substring(0, 100)}...` : name;\n\n return (\n <Tooltip description={fileName}>\n <FileWrapper>{fileExtension}</FileWrapper>\n </Tooltip>\n );\n};\n\nconst FileWrapper = ({ children }: { children: React.ReactNode }) => {\n return (\n <Flex\n as=\"span\"\n position=\"relative\"\n borderRadius=\"50%\"\n width=\"26px\"\n height=\"26px\"\n borderColor=\"neutral200\"\n background=\"neutral150\"\n paddingLeft=\"1px\"\n justifyContent=\"center\"\n alignItems=\"center\"\n >\n <FileTypography variant=\"sigma\" textColor=\"neutral600\">\n {children}\n </FileTypography>\n </Flex>\n );\n};\n\nconst FileTypography = styled(Typography)`\n font-size: 0.6rem;\n line-height: 0.6rem;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * MediaMultiple\n * -----------------------------------------------------------------------------------------------*/\n\ninterface MediaMultipleProps {\n content: MediaFile[];\n}\n\nconst MediaMultiple = ({ content }: MediaMultipleProps) => {\n return (\n <AvatarGroup>\n {content.map((file, index) => {\n const key = `${file.id}${index}`;\n\n if (index === 3) {\n const remainingFiles = `+${content.length - 3}`;\n\n return <FileWrapper key={key}>{remainingFiles}</FileWrapper>;\n }\n\n if (index > 3) {\n return null;\n }\n\n return <MediaSingle key={key} {...file} />;\n })}\n </AvatarGroup>\n );\n};\n\nexport { MediaMultiple, MediaSingle };\nexport type { MediaMultipleProps, MediaSingleProps };\n","import * as React from 'react';\n\nimport { Typography, Badge, Flex, Loader, useNotifyAT } from '@strapi/design-system';\nimport { Menu } from '@strapi/design-system/v2';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useDoc } from '../../../../hooks/useDocument';\nimport { useGetRelationsQuery } from '../../../../services/relations';\nimport { getRelationLabel } from '../../../../utils/relations';\nimport { getTranslation } from '../../../../utils/translations';\n\nimport type { CellContentProps } from './CellContent';\n\n/* -------------------------------------------------------------------------------------------------\n * RelationSingle\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RelationSingleProps extends Pick<CellContentProps, 'mainField' | 'content'> {}\n\nconst RelationSingle = ({ mainField, content }: RelationSingleProps) => {\n return (\n <TypographyMaxWidth textColor=\"neutral800\" ellipsis>\n {getRelationLabel(content, mainField)}\n </TypographyMaxWidth>\n );\n};\n\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 500px;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * RelationMultiple\n * -----------------------------------------------------------------------------------------------*/\n\ninterface RelationMultipleProps\n extends Pick<CellContentProps, 'mainField' | 'content' | 'name' | 'rowId'> {}\n\n/**\n * TODO: fix this component – tracking issue https://strapi-inc.atlassian.net/browse/CONTENT-2184\n */\nconst RelationMultiple = ({ mainField, content, rowId, name }: RelationMultipleProps) => {\n const { model } = useDoc();\n const { formatMessage } = useIntl();\n const { notifyStatus } = useNotifyAT();\n const [isOpen, setIsOpen] = React.useState(false);\n\n const [targetField] = name.split('.');\n\n const { data, isLoading } = useGetRelationsQuery(\n {\n model,\n id: rowId,\n targetField,\n },\n {\n skip: !isOpen,\n refetchOnMountOrArgChange: true,\n }\n );\n\n React.useEffect(() => {\n if (data) {\n notifyStatus(\n formatMessage({\n id: getTranslation('DynamicTable.relation-loaded'),\n defaultMessage: 'Relations have been loaded',\n })\n );\n }\n }, [data, formatMessage, notifyStatus]);\n\n return (\n <Menu.Root onOpenChange={(isOpen) => setIsOpen(isOpen)}>\n <MenuTrigger onClick={(e) => e.stopPropagation()}>\n <Flex gap={1} wrap=\"nowrap\">\n <Badge>{content.count}</Badge>\n {formatMessage(\n {\n id: 'content-manager.containers.list.items',\n defaultMessage: '{number, plural, =0 {items} one {item} other {items}}',\n },\n { number: content.count }\n )}\n </Flex>\n </MenuTrigger>\n <Menu.Content>\n {isLoading && (\n <Menu.Item disabled>\n <Loader small>\n {formatMessage({\n id: getTranslation('ListViewTable.relation-loading'),\n defaultMessage: 'Relations are loading',\n })}\n </Loader>\n </Menu.Item>\n )}\n {data?.results && (\n <>\n {data.results.map((entry) => (\n <Menu.Item key={entry.documentId} disabled>\n <TypographyMaxWidth ellipsis>\n {getRelationLabel(entry, mainField)}\n </TypographyMaxWidth>\n </Menu.Item>\n ))}\n\n {data?.pagination && data?.pagination.total > 10 && (\n <Menu.Item\n aria-disabled\n aria-label={formatMessage({\n id: getTranslation('ListViewTable.relation-more'),\n defaultMessage: 'This relation contains more entities than displayed',\n })}\n >\n <Typography>…</Typography>\n </Menu.Item>\n )}\n </>\n )}\n </Menu.Content>\n </Menu.Root>\n );\n};\n\n/**\n * TODO: this needs to be solved in the Design-System\n */\nconst MenuTrigger = styled(Menu.Trigger)`\n svg {\n width: ${6 / 16}rem;\n height: ${4 / 16}rem;\n }\n`;\n\nexport { RelationSingle, RelationMultiple };\nexport type { RelationSingleProps, RelationMultipleProps };\n","import { Tooltip, Typography } from '@strapi/design-system';\nimport isEmpty from 'lodash/isEmpty';\nimport styled from 'styled-components';\n\nimport { CellValue } from './CellValue';\nimport { SingleComponent, RepeatableComponent } from './Components';\nimport { MediaSingle, MediaMultiple } from './Media';\nimport { RelationMultiple, RelationSingle } from './Relations';\n\nimport type { ListFieldLayout } from '../../../../hooks/useDocumentLayout';\nimport type { Attribute, Entity } from '@strapi/types';\n\ninterface CellContentProps extends Omit<ListFieldLayout, 'cellFormatter'> {\n content: Attribute.GetValue<Attribute.Any>;\n rowId: Entity.ID;\n}\n\nconst CellContent = ({ content, mainField, attribute, rowId, name }: CellContentProps) => {\n if (!hasContent(content, mainField, attribute)) {\n return <Typography textColor=\"neutral800\">-</Typography>;\n }\n\n switch (attribute.type) {\n case 'media':\n if (!attribute.multiple) {\n return <MediaSingle {...content} />;\n }\n\n return <MediaMultiple content={content} />;\n\n case 'relation': {\n if (isSingleRelation(attribute.relation)) {\n return <RelationSingle mainField={mainField} content={content} />;\n }\n\n return <RelationMultiple rowId={rowId} mainField={mainField} content={content} name={name} />;\n }\n\n case 'component':\n if (attribute.repeatable) {\n return <RepeatableComponent mainField={mainField} content={content} />;\n }\n\n return <SingleComponent mainField={mainField} content={content} />;\n\n case 'string':\n return (\n <Tooltip description={content}>\n <TypographyMaxWidth ellipsis textColor=\"neutral800\">\n <CellValue type={attribute.type} value={content} />\n </TypographyMaxWidth>\n </Tooltip>\n );\n\n default:\n return (\n <TypographyMaxWidth ellipsis textColor=\"neutral800\">\n <CellValue type={attribute.type} value={content} />\n </TypographyMaxWidth>\n );\n }\n};\n\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 300px;\n`;\n\nconst hasContent = (\n content: CellContentProps['content'],\n mainField: CellContentProps['mainField'],\n attribute: CellContentProps['attribute']\n) => {\n if (attribute.type === 'component') {\n // Repeatable fields show the ID as fallback, in case the mainField\n // doesn't have any content\n if (attribute.repeatable || !mainField) {\n return content?.length > 0;\n }\n\n const value = content?.[mainField.name];\n\n // relations, media ... show the id as fallback\n if (mainField.name === 'id' && ![undefined, null].includes(value)) {\n return true;\n }\n\n return !isEmpty(value);\n }\n\n if (attribute.type === 'relation') {\n if (isSingleRelation(attribute.relation)) {\n return !isEmpty(content);\n }\n\n return content?.count > 0;\n }\n\n /* \n Biginteger fields need to be treated as strings, as `isNumber`\n doesn't deal with them.\n */\n if (['integer', 'decimal', 'float', 'number'].includes(attribute.type)) {\n return typeof content === 'number';\n }\n\n if (attribute.type === 'boolean') {\n return content !== null;\n }\n\n return !isEmpty(content);\n};\n\nconst isSingleRelation = (\n type: Extract<CellContentProps['attribute'], { type: 'relation' }>['relation']\n) => ['oneToOne', 'manyToOne', 'oneToOneMorph'].includes(type);\n\nexport { CellContent };\nexport type { CellContentProps };\n","import * as React from 'react';\n\nimport {\n Flex,\n IconButton,\n Popover,\n BaseCheckbox,\n TextButton,\n Typography,\n useCollator,\n} from '@strapi/design-system';\nimport { LinkButton } from '@strapi/design-system/v2';\nimport { Cog, Layer } from '@strapi/icons';\nimport { stringify } from 'qs';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { useTypedSelector } from '../../../../core/store/hooks';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\nimport { useRBAC } from '../../../../hooks/useRBAC';\nimport { useDoc } from '../../../hooks/useDocument';\nimport { useDocumentLayout } from '../../../hooks/useDocumentLayout';\nimport { checkIfAttributeIsDisplayable } from '../../../utils/attributes';\n\ninterface ViewSettingsMenuProps extends FieldPickerProps {}\n\nconst ViewSettingsMenu = (props: ViewSettingsMenuProps) => {\n const [isVisible, setIsVisible] = React.useState(false);\n const cogButtonRef = React.useRef<HTMLButtonElement>(null!);\n const permissions = useTypedSelector(\n (state) => state.admin_app.permissions.contentManager?.collectionTypesConfigurations ?? []\n );\n const [{ query }] = useQueryParams<{ plugins?: Record<string, unknown> }>();\n const { formatMessage } = useIntl();\n const {\n allowedActions: { canViewConfiguration },\n } = useRBAC({\n viewConfiguration: permissions,\n });\n\n const handleToggle = () => {\n setIsVisible((prev) => !prev);\n };\n\n return (\n <>\n <IconButton\n icon={<Cog />}\n label={formatMessage({\n id: 'components.ViewSettings.tooltip',\n defaultMessage: 'View Settings',\n })}\n ref={cogButtonRef}\n onClick={handleToggle}\n />\n {isVisible && (\n <Popover\n placement=\"bottom-end\"\n source={cogButtonRef}\n onDismiss={handleToggle}\n spacing={4}\n padding={3}\n >\n <Flex alignItems=\"stretch\" direction=\"column\" gap={3}>\n {canViewConfiguration ? (\n <LinkButton\n size=\"S\"\n startIcon={<Layer />}\n variant=\"secondary\"\n as={NavLink}\n // @ts-expect-error – inference from the as prop does not work in the DS.\n to={{\n pathname: 'configurations/list',\n search: query.plugins\n ? stringify({ plugins: query.plugins }, { encode: false })\n : '',\n }}\n >\n {formatMessage({\n id: 'app.links.configure-view',\n defaultMessage: 'Configure the view',\n })}\n </LinkButton>\n ) : null}\n <FieldPicker {...props} />\n </Flex>\n </Popover>\n )}\n </>\n );\n};\n\ninterface FieldPickerProps {\n headers?: string[];\n setHeaders: (headers: string[]) => void;\n resetHeaders: () => void;\n}\n\nconst FieldPicker = ({ headers = [], resetHeaders, setHeaders }: FieldPickerProps) => {\n const { trackUsage } = useTracking();\n const { formatMessage, locale } = useIntl();\n\n const { schema, model } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const attributes = schema?.attributes ?? {};\n\n const columns = Object.keys(attributes)\n .filter((name) => checkIfAttributeIsDisplayable(attributes[name]))\n .map((name) => ({\n name,\n label: list.metadatas[name]?.label ?? '',\n }))\n .sort((a, b) => formatter.compare(a.label, b.label));\n\n const handleChange = (name: string) => {\n trackUsage('didChangeDisplayedFields');\n\n /**\n * create an array of the new headers, if the new name exists it should be removed,\n * otherwise it should be added\n */\n const newHeaders = headers.includes(name)\n ? headers.filter((header) => header !== name)\n : [...headers, name];\n\n setHeaders(newHeaders);\n };\n\n const handleReset = () => {\n resetHeaders();\n };\n\n return (\n <Flex as=\"fieldset\" direction=\"column\" alignItems=\"stretch\" gap={3}>\n <Flex justifyContent=\"space-between\">\n <Typography as=\"legend\" variant=\"pi\" fontWeight=\"bold\">\n {formatMessage({\n id: 'containers.list.displayedFields',\n defaultMessage: 'Displayed fields',\n })}\n </Typography>\n\n <TextButton onClick={handleReset}>\n {formatMessage({\n id: 'app.components.Button.reset',\n defaultMessage: 'Reset',\n })}\n </TextButton>\n </Flex>\n\n <Flex direction=\"column\" alignItems=\"stretch\">\n {columns.map((header) => {\n const isActive = headers.includes(header.name);\n\n return (\n <ChackboxWrapper\n wrap=\"wrap\"\n gap={2}\n as=\"label\"\n background={isActive ? 'primary100' : 'transparent'}\n hasRadius\n padding={2}\n key={header.name}\n >\n <BaseCheckbox\n onChange={() => handleChange(header.name)}\n value={isActive}\n name={header.name}\n />\n <Typography fontSize={1}>{header.label}</Typography>\n </ChackboxWrapper>\n );\n })}\n </Flex>\n </Flex>\n );\n};\n\nconst ChackboxWrapper = styled(Flex)`\n :hover {\n background-color: ${(props) => props.theme.colors.primary100};\n }\n`;\n\nexport { ViewSettingsMenu };\nexport type { ViewSettingsMenuProps, FieldPickerProps };\n","import * as React from 'react';\n\nimport {\n ActionLayout,\n Button,\n ContentLayout,\n HeaderLayout,\n Flex,\n Typography,\n lightTheme,\n ButtonProps,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport isEqual from 'lodash/isEqual';\nimport { stringify } from 'qs';\nimport { Helmet } from 'react-helmet';\nimport { useIntl } from 'react-intl';\nimport { useNavigate, Link as ReactRouterLink } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { InjectionZone } from '../../../components/InjectionZone';\nimport { Page } from '../../../components/PageHelpers';\nimport { Pagination } from '../../../components/Pagination';\nimport { SearchInput } from '../../../components/SearchInput';\nimport { Table } from '../../../components/Table';\nimport { HOOKS } from '../../../constants';\nimport { BackButton } from '../../../features/BackButton';\nimport { useNotification } from '../../../features/Notifications';\nimport { useStrapiApp } from '../../../features/StrapiApp';\nimport { useTracking } from '../../../features/Tracking';\nimport { useAPIErrorHandler } from '../../../hooks/useAPIErrorHandler';\nimport { useEnterprise } from '../../../hooks/useEnterprise';\nimport { useQueryParams } from '../../../hooks/useQueryParams';\nimport { getDisplayName } from '../../../utils/users';\nimport { DocumentRBAC, useDocumentRBAC } from '../../features/DocumentRBAC';\nimport { useDoc } from '../../hooks/useDocument';\nimport {\n ListFieldLayout,\n convertListLayoutToFieldLayouts,\n useDocumentLayout,\n} from '../../hooks/useDocumentLayout';\nimport { usePrev } from '../../hooks/usePrev';\nimport { useSyncRbac } from '../../hooks/useSyncRbac';\nimport { useGetAllDocumentsQuery } from '../../services/documents';\nimport { buildValidParams } from '../../utils/api';\nimport { getTranslation } from '../../utils/translations';\nimport { DocumentStatus } from '../EditView/components/DocumentStatus';\n\nimport { Filters } from './components/Filters';\nimport { TableActions } from './components/TableActions';\nimport { CellContent } from './components/TableCells/CellContent';\nimport { ViewSettingsMenu } from './components/ViewSettingsMenu';\n\nimport type { Documents } from '@strapi/types';\n\nconst { INJECT_COLUMN_IN_TABLE } = HOOKS;\nconst REVIEW_WORKFLOW_COLUMNS_CE = null;\nconst REVIEW_WORKFLOW_COLUMNS_CELL_CE = {\n ReviewWorkflowsStageEE: () => null,\n ReviewWorkflowsAssigneeEE: () => null,\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ListViewPage = () => {\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler(getTranslation);\n\n const { collectionType, model, schema } = useDoc();\n const { list } = useDocumentLayout(model);\n\n const [displayedHeaders, setDisplayedHeaders] = React.useState<ListFieldLayout[]>([]);\n\n const listLayout = usePrev(list.layout);\n React.useEffect(() => {\n /**\n * ONLY update the displayedHeaders if the document\n * layout has actually changed in value.\n */\n if (!isEqual(listLayout, list.layout)) {\n setDisplayedHeaders(list.layout);\n }\n }, [list.layout, listLayout]);\n\n const handleSetHeaders = (headers: string[]) => {\n setDisplayedHeaders(\n convertListLayoutToFieldLayouts(headers, schema!.attributes, list.metadatas)\n );\n };\n\n const [{ query }] = useQueryParams<{\n plugins?: Record<string, unknown>;\n page?: string;\n pageSize?: string;\n sort?: string;\n }>({\n page: '1',\n pageSize: list.settings.pageSize.toString(),\n sort: list.settings.defaultSortBy\n ? `${list.settings.defaultSortBy}:${list.settings.defaultSortOrder}`\n : '',\n });\n\n const params = React.useMemo(() => buildValidParams(query), [query]);\n const { data, error, isLoading } = useGetAllDocumentsQuery({\n model,\n params,\n });\n\n /**\n * If the API returns an error, display a notification\n */\n React.useEffect(() => {\n if (error) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(error),\n });\n }\n }, [error, formatAPIError, toggleNotification]);\n\n const { results = [], pagination } = data ?? {};\n\n React.useEffect(() => {\n if (pagination && pagination.pageCount > 0 && pagination.page > pagination.pageCount) {\n navigate(\n {\n search: stringify({\n ...query,\n page: pagination.pageCount,\n }),\n },\n { replace: true }\n );\n }\n }, [pagination, formatMessage, query, navigate]);\n\n const { canCreate } = useDocumentRBAC('ListViewPage', ({ canCreate }) => ({\n canCreate,\n }));\n\n /* -------------------------------------------------------------------------------------------------\n * Create all our table headers and run the hook for plugins to inject.\n * -----------------------------------------------------------------------------------------------*/\n const reviewWorkflowColumns = useEnterprise(\n REVIEW_WORKFLOW_COLUMNS_CE,\n async () =>\n (await import('../../../../../ee/admin/src/content-manager/pages/ListView/constants'))\n .REVIEW_WORKFLOW_COLUMNS_EE,\n {\n enabled: !!schema?.options?.reviewWorkflows,\n }\n );\n const ReviewWorkflowsColumns = useEnterprise(\n REVIEW_WORKFLOW_COLUMNS_CELL_CE,\n async () => {\n const { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE } = await import(\n '../../../../../ee/admin/src/content-manager/pages/ListView/components/ReviewWorkflowsColumn'\n );\n return { ReviewWorkflowsStageEE, ReviewWorkflowsAssigneeEE };\n },\n {\n enabled: !!schema?.options?.reviewWorkflows,\n }\n );\n\n const runHookWaterfall = useStrapiApp('ListViewPage', ({ runHookWaterfall }) => runHookWaterfall);\n /**\n * Run the waterfall and then inject our additional table headers.\n */\n const tableHeaders = React.useMemo(() => {\n const headers = runHookWaterfall(INJECT_COLUMN_IN_TABLE, {\n displayedHeaders,\n layout: list,\n });\n\n const formattedHeaders = headers.displayedHeaders.map<ListFieldLayout>((header) => {\n return {\n ...header,\n label: typeof header.label === 'string' ? header.label : formatMessage(header.label),\n name: `${header.name}${header.mainField ? `.${header.mainField}` : ''}`,\n };\n });\n\n if (schema?.options?.draftAndPublish) {\n formattedHeaders.push({\n attribute: {\n type: 'custom',\n },\n name: 'status',\n label: formatMessage({\n id: getTranslation(`containers.list.table-headers.status`),\n defaultMessage: 'status',\n }),\n searchable: false,\n sortable: false,\n } satisfies ListFieldLayout);\n }\n\n if (reviewWorkflowColumns) {\n formattedHeaders.push(\n ...reviewWorkflowColumns.map((column) => ({\n ...column,\n label: formatMessage(column.label),\n }))\n );\n }\n return formattedHeaders;\n }, [\n displayedHeaders,\n formatMessage,\n list,\n reviewWorkflowColumns,\n runHookWaterfall,\n schema?.options?.draftAndPublish,\n ]);\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (error) {\n return <Page.Error />;\n }\n\n const contentTypeTitle = schema?.info.displayName ?? 'Untitled';\n\n const handleRowClick = (id: Documents.ID) => () => {\n trackUsage('willEditEntryFromList');\n navigate({\n pathname: id.toString(),\n search: stringify({ plugins: query.plugins }),\n });\n };\n\n return (\n <Page.Main>\n <Helmet title={`${contentTypeTitle} | Strapi`} />\n <HeaderLayout\n primaryAction={canCreate ? <CreateButton /> : null}\n subtitle={formatMessage(\n {\n id: getTranslation('pages.ListView.header-subtitle'),\n defaultMessage:\n '{number, plural, =0 {# entries} one {# entry} other {# entries}} found',\n },\n { number: pagination?.total }\n )}\n title={contentTypeTitle}\n navigationAction={<BackButton />}\n />\n <ActionLayout\n endActions={\n <>\n <InjectionZone area=\"contentManager.listView.actions\" />\n <ViewSettingsMenu\n setHeaders={handleSetHeaders}\n resetHeaders={() => setDisplayedHeaders(list.layout)}\n headers={displayedHeaders.map((header) => header.name)}\n />\n </>\n }\n startActions={\n <>\n {list.settings.searchable && (\n <SearchInput\n disabled={results.length === 0}\n label={formatMessage(\n { id: 'app.component.search.label', defaultMessage: 'Search for {target}' },\n { target: contentTypeTitle }\n )}\n placeholder={formatMessage({\n id: 'global.search',\n defaultMessage: 'Search',\n })}\n trackedEvent=\"didSearch\"\n />\n )}\n {list.settings.filterable && schema ? (\n <Filters disabled={results.length === 0} schema={schema} />\n ) : null}\n </>\n }\n />\n <ContentLayout>\n <Flex gap={4} direction=\"column\" alignItems=\"stretch\">\n <Table.Root rows={results} headers={tableHeaders} isLoading={isLoading}>\n <Table.ActionBar />\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {tableHeaders.map((header: ListFieldLayout) => (\n <Table.HeaderCell key={header.name} {...header} />\n ))}\n </Table.Head>\n <Table.Loading />\n <Table.Empty action={canCreate ? <CreateButton variant=\"secondary\" /> : null} />\n <Table.Body>\n {results.map((row) => {\n return (\n <Table.Row\n cursor=\"pointer\"\n key={row.id}\n onClick={handleRowClick(row.documentId)}\n >\n <Table.CheckboxCell id={row.id} />\n {tableHeaders.map(({ cellFormatter, ...header }) => {\n if (header.name === 'status') {\n const { status } = row;\n\n return (\n <Table.Cell key={header.name}>\n <DocumentStatus status={status} maxWidth={'min-content'} />\n </Table.Cell>\n );\n }\n if (schema?.options?.reviewWorkflows) {\n if (header.name === 'strapi_stage') {\n return (\n <Table.Cell key={header.name}>\n {row.strapi_stage ? (\n <ReviewWorkflowsColumns.ReviewWorkflowsStageEE\n color={row.strapi_stage.color ?? lightTheme.colors.primary600}\n name={row.strapi_stage.name}\n />\n ) : (\n <Typography textColor=\"neutral800\">-</Typography>\n )}\n </Table.Cell>\n );\n }\n if (header.name === 'strapi_assignee') {\n return (\n <Table.Cell key={header.name}>\n {row.strapi_assignee ? (\n <ReviewWorkflowsColumns.ReviewWorkflowsAssigneeEE\n user={row.strapi_assignee}\n />\n ) : (\n <Typography textColor=\"neutral800\">-</Typography>\n )}\n </Table.Cell>\n );\n }\n }\n if (['createdBy', 'updatedBy'].includes(header.name.split('.')[0])) {\n // Display the users full name\n // Some entries doesn't have a user assigned as creator/updater (ex: entries created through content API)\n // In this case, we display a dash\n return (\n <Table.Cell key={header.name}>\n <Typography textColor=\"neutral800\">\n {row[header.name.split('.')[0]]\n ? getDisplayName(row[header.name.split('.')[0]], formatMessage)\n : '-'}\n </Typography>\n </Table.Cell>\n );\n }\n if (typeof cellFormatter === 'function') {\n return (\n <Table.Cell key={header.name}>\n {/* @ts-expect-error – TODO: fix this TS error */}\n {cellFormatter(row, header, { collectionType, model })}\n </Table.Cell>\n );\n }\n return (\n <Table.Cell key={header.name}>\n <CellContent\n content={row[header.name.split('.')[0]]}\n rowId={row.documentId}\n {...header}\n />\n </Table.Cell>\n );\n })}\n {/* we stop propogation here to allow the menu to trigger it's events without triggering the row redirect */}\n <ActionsCell onClick={(e) => e.stopPropagation()}>\n <TableActions document={row} />\n </ActionsCell>\n </Table.Row>\n );\n })}\n </Table.Body>\n </Table.Content>\n </Table.Root>\n <Pagination.Root\n {...pagination}\n onPageSizeChange={() => trackUsage('willChangeNumberOfEntriesPerPage')}\n >\n <Pagination.PageSize />\n <Pagination.Links />\n </Pagination.Root>\n </Flex>\n </ContentLayout>\n </Page.Main>\n );\n};\n\nconst ActionsCell = styled(Table.Cell)`\n display: flex;\n justify-content: flex-end;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * CreateButton\n * -----------------------------------------------------------------------------------------------*/\n\ninterface CreateButtonProps extends Pick<ButtonProps, 'variant'> {}\n\nconst CreateButton = ({ variant }: CreateButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [{ query }] = useQueryParams<{ plugins: object }>();\n\n return (\n <Button\n variant={variant}\n forwardedAs={ReactRouterLink}\n onClick={() => {\n trackUsage('willCreateEntry', { status: 'draft' });\n }}\n startIcon={<Plus />}\n style={{ textDecoration: 'none' }}\n // @ts-expect-error – DS inference does not work with as or forwardedAs\n to={{\n pathname: 'create',\n search: stringify({ plugins: query.plugins }),\n }}\n >\n {formatMessage({\n id: getTranslation('HeaderLayout.button.label-add-entry'),\n defaultMessage: 'Create new entry',\n })}\n </Button>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ProtectedListViewPage\n * -----------------------------------------------------------------------------------------------*/\n\nconst ProtectedListViewPage = () => {\n const { model } = useDoc();\n const [{ query }] = useQueryParams();\n const { permissions = [], isLoading, isError } = useSyncRbac(model, query, 'editView');\n\n if (isLoading) {\n return <Page.Loading />;\n }\n\n if (isError) {\n return <Page.Error />;\n }\n\n return (\n <Page.Protect permissions={permissions}>\n {({ permissions }) => (\n <DocumentRBAC permissions={permissions}>\n <ListViewPage />\n </DocumentRBAC>\n )}\n </Page.Protect>\n );\n};\n\nexport { ListViewPage, ProtectedListViewPage };\n"],"names":["MenuTrigger","TypographyMaxWidth","isOpen","canCreate","runHookWaterfall","Filters","ReactRouterLink","permissions"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table-9qwpBhgp.js","sources":["../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, IconButton, Typography, useCollator } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { Entity } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Entity.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Entity.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth={`${250 / 16}rem`}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth={`${250 / 16}rem`}>\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n ))}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Entity.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkStyled\n forwardedAs={NavLink}\n to={tokenId.toString()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n >\n {children}\n </LinkStyled>\n );\n};\n\nconst LinkStyled = styled(Link)`\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n const handleClickDelete = () => {\n setShowConfirmDialog(false);\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Box paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <IconButton\n onClick={() => {\n setShowConfirmDialog(true);\n }}\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n borderWidth={0}\n icon={<Trash />}\n />\n <ConfirmDialog\n onClose={() => setShowConfirmDialog(false)}\n onConfirm={handleClickDelete}\n isOpen={showConfirmDialog}\n />\n </Box>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Entity.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil width={12} />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["useQueryParams","useIntl","useNavigate","useTracking","useCollator","jsx","TableImpl","jsxs","Typography","RelativeTime","Flex","NavLink","styled","Link","React","Box","IconButton","Trash","ConfirmDialog","Pencil"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Table-hIWrkIyR.mjs","sources":["../../admin/src/pages/Settings/components/Tokens/Table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Flex, IconButton, Typography, useCollator } from '@strapi/design-system';\nimport { Link } from '@strapi/design-system/v2';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink, useNavigate } from 'react-router-dom';\nimport styled from 'styled-components';\n\nimport { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport { SanitizedTransferToken } from '../../../../../../shared/contracts/transfer';\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { RelativeTime } from '../../../../components/RelativeTime';\nimport { Table as TableImpl } from '../../../../components/Table';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useQueryParams } from '../../../../hooks/useQueryParams';\n\nimport type { Entity } from '@strapi/types';\n\n/* -------------------------------------------------------------------------------------------------\n * Table\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableProps\n extends Pick<TableImpl.Props<SanitizedTransferToken | ApiToken>, 'headers' | 'isLoading'> {\n onConfirmDelete: (id: Entity.ID) => void;\n permissions: {\n canRead: boolean;\n canDelete: boolean;\n canUpdate: boolean;\n };\n tokens: SanitizedTransferToken[] | ApiToken[];\n tokenType: 'api-token' | 'transfer-token';\n}\n\nconst Table = ({\n permissions,\n headers = [],\n isLoading = false,\n tokens = [],\n onConfirmDelete,\n tokenType,\n}: TableProps) => {\n const [{ query }] = useQueryParams<{ sort?: string }>();\n const { formatMessage, locale } = useIntl();\n const [, sortOrder] = query && query.sort ? query.sort.split(':') : [undefined, 'ASC'];\n const navigate = useNavigate();\n const { trackUsage } = useTracking();\n const formatter = useCollator(locale);\n\n const sortedTokens = [...tokens].sort((a, b) => {\n return sortOrder === 'DESC'\n ? formatter.compare(b.name, a.name)\n : formatter.compare(a.name, b.name);\n });\n\n const { canDelete, canUpdate, canRead } = permissions;\n\n const handleRowClick = (id: Entity.ID) => () => {\n if (canRead) {\n trackUsage('willEditTokenFromList', {\n tokenType,\n });\n navigate(id.toString());\n }\n };\n\n return (\n <TableImpl.Root headers={headers} rows={sortedTokens} isLoading={isLoading}>\n <TableImpl.Content>\n <TableImpl.Head>\n {headers.map((header) => (\n <TableImpl.HeaderCell key={header.name} {...header} />\n ))}\n </TableImpl.Head>\n <TableImpl.Empty />\n <TableImpl.Loading />\n <TableImpl.Body>\n {sortedTokens.map((token) => (\n <TableImpl.Row key={token.id} onClick={handleRowClick(token.id)}>\n <TableImpl.Cell maxWidth={`${250 / 16}rem`}>\n <Typography textColor=\"neutral800\" fontWeight=\"bold\" ellipsis>\n {token.name}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell maxWidth={`${250 / 16}rem`}>\n <Typography textColor=\"neutral800\" ellipsis>\n {token.description}\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n <Typography textColor=\"neutral800\">\n {/* @ts-expect-error One of the tokens doesn't have createdAt */}\n <RelativeTime timestamp={new Date(token.createdAt)} />\n </Typography>\n </TableImpl.Cell>\n <TableImpl.Cell>\n {token.lastUsedAt && (\n <Typography textColor=\"neutral800\">\n <RelativeTime\n timestamp={new Date(token.lastUsedAt)}\n customIntervals={[\n {\n unit: 'hours',\n threshold: 1,\n text: formatMessage({\n id: 'Settings.apiTokens.lastHour',\n defaultMessage: 'last hour',\n }),\n },\n ]}\n />\n </Typography>\n )}\n </TableImpl.Cell>\n {canUpdate || canRead || canDelete ? (\n <TableImpl.Cell>\n <Flex justifyContent=\"end\">\n {canUpdate && <UpdateButton tokenName={token.name} tokenId={token.id} />}\n {canDelete && (\n <DeleteButton\n tokenName={token.name}\n onClickDelete={() => onConfirmDelete?.(token.id)}\n tokenType={tokenType}\n />\n )}\n </Flex>\n </TableImpl.Cell>\n ) : null}\n </TableImpl.Row>\n ))}\n </TableImpl.Body>\n </TableImpl.Content>\n </TableImpl.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * CRUD Buttons\n * -----------------------------------------------------------------------------------------------*/\n\nconst MESSAGES_MAP = {\n edit: {\n id: 'app.component.table.edit',\n defaultMessage: 'Edit {target}',\n },\n read: {\n id: 'app.component.table.read',\n defaultMessage: 'Read {target}',\n },\n};\n\ninterface DefaultButtonProps {\n tokenName: string;\n tokenId: Entity.ID;\n buttonType?: 'edit' | 'read';\n children: React.ReactNode;\n}\n\nconst DefaultButton = ({\n tokenName,\n tokenId,\n buttonType = 'edit',\n children,\n}: DefaultButtonProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <LinkStyled\n forwardedAs={NavLink}\n to={tokenId.toString()}\n title={formatMessage(MESSAGES_MAP[buttonType], { target: tokenName })}\n >\n {children}\n </LinkStyled>\n );\n};\n\nconst LinkStyled = styled(Link)`\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n\n &:hover,\n &:focus {\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral800};\n }\n }\n }\n`;\n\ninterface DeleteButtonProps extends Pick<ButtonProps, 'tokenName'>, Pick<TableProps, 'tokenType'> {\n onClickDelete: () => void;\n}\n\nconst DeleteButton = ({ tokenName, onClickDelete, tokenType }: DeleteButtonProps) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n const handleClickDelete = () => {\n setShowConfirmDialog(false);\n trackUsage('willDeleteToken', {\n tokenType,\n });\n onClickDelete();\n };\n\n return (\n <Box paddingLeft={1} onClick={(e) => e.stopPropagation()}>\n <IconButton\n onClick={() => {\n setShowConfirmDialog(true);\n }}\n label={formatMessage(\n {\n id: 'global.delete-target',\n defaultMessage: 'Delete {target}',\n },\n { target: `${tokenName}` }\n )}\n name=\"delete\"\n borderWidth={0}\n icon={<Trash />}\n />\n <ConfirmDialog\n onClose={() => setShowConfirmDialog(false)}\n onConfirm={handleClickDelete}\n isOpen={showConfirmDialog}\n />\n </Box>\n );\n};\n\ninterface ButtonProps {\n tokenName: string;\n tokenId: Entity.ID;\n}\n\nconst UpdateButton = ({ tokenName, tokenId }: ButtonProps) => {\n return (\n <DefaultButton tokenName={tokenName} tokenId={tokenId}>\n <Pencil width={12} />\n </DefaultButton>\n );\n};\n\nexport { Table };\nexport type { TableProps };\n"],"names":["TableImpl"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TokenTypeSelect-I0IiW8L9.mjs","sources":["../../admin/src/pages/Settings/components/Tokens/FormHead.tsx","../../admin/src/pages/Settings/components/Tokens/TokenBox.tsx","../../admin/src/utils/locales.ts","../../admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.ts","../../admin/src/pages/Settings/utils/forms.ts","../../admin/src/pages/Settings/components/Tokens/LifeSpanInput.tsx","../../admin/src/pages/Settings/components/Tokens/TokenDescription.tsx","../../admin/src/pages/Settings/components/Tokens/TokenName.tsx","../../admin/src/pages/Settings/components/Tokens/TokenTypeSelect.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Button, Flex, HeaderLayout } from '@strapi/design-system';\nimport { Check, Refresh } from '@strapi/icons';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { ConfirmDialog } from '../../../../components/ConfirmDialog';\nimport { BackButton } from '../../../../features/BackButton';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useAPIErrorHandler } from '../../../../hooks/useAPIErrorHandler';\nimport { useRegenerateTokenMutation } from '../../../../services/api';\n\nimport type { Entity } from '@strapi/types';\n\ninterface RegenerateProps {\n onRegenerate?: (newKey: string) => void;\n url: string;\n}\n\nconst Regenerate = ({ onRegenerate, url }: RegenerateProps) => {\n const { formatMessage } = useIntl();\n const [showConfirmDialog, setShowConfirmDialog] = React.useState(false);\n\n const [isLoadingConfirmation, setIsLoadingConfirmation] = React.useState(false);\n const { toggleNotification } = useNotification();\n const { _unstableFormatAPIError: formatAPIError } = useAPIErrorHandler();\n\n const [regenerateToken] = useRegenerateTokenMutation();\n\n const regenerateData = async () => {\n try {\n const res = await regenerateToken(url);\n\n if ('error' in res) {\n toggleNotification({\n type: 'danger',\n message: formatAPIError(res.error),\n });\n\n return;\n }\n\n if (onRegenerate) {\n onRegenerate(res.data.accessKey);\n }\n } catch (error) {\n toggleNotification({\n type: 'danger',\n message: formatMessage({\n id: 'notification.error',\n defaultMessage: 'Something went wrong',\n }),\n });\n } finally {\n setIsLoadingConfirmation(false);\n }\n };\n\n const handleConfirmRegeneration = async () => {\n regenerateData();\n setShowConfirmDialog(false);\n };\n\n return (\n <>\n <Button\n startIcon={<Refresh />}\n type=\"button\"\n size=\"S\"\n variant=\"tertiary\"\n onClick={() => setShowConfirmDialog(true)}\n name=\"regenerate\"\n >\n {formatMessage({\n id: 'Settings.tokens.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n\n <ConfirmDialog\n isOpen={showConfirmDialog}\n onClose={() => setShowConfirmDialog(false)}\n title={formatMessage({\n id: 'Settings.tokens.RegenerateDialog.title',\n defaultMessage: 'Regenerate token',\n })}\n endAction={\n <Button\n startIcon={<Refresh />}\n loading={isLoadingConfirmation}\n onClick={handleConfirmRegeneration}\n >\n {formatMessage({\n id: 'Settings.tokens.Button.regenerate',\n defaultMessage: 'Regenerate',\n })}\n </Button>\n }\n >\n {formatMessage({\n id: 'Settings.tokens.popUpWarning.message',\n defaultMessage: 'Are you sure you want to regenerate this token?',\n })}\n </ConfirmDialog>\n </>\n );\n};\n\ninterface Token {\n id: Entity.ID;\n name: string;\n}\n\ninterface FormHeadProps<TToken extends Token | null> {\n title: MessageDescriptor;\n token: TToken;\n canEditInputs: boolean;\n canRegenerate: boolean;\n setToken: (token: TToken) => void;\n isSubmitting: boolean;\n regenerateUrl: string;\n}\n\nexport const FormHead = <TToken extends Token | null>({\n title,\n token,\n setToken,\n canEditInputs,\n canRegenerate,\n isSubmitting,\n regenerateUrl,\n}: FormHeadProps<TToken>) => {\n const { formatMessage } = useIntl();\n const handleRegenerate = (newKey: string) => {\n setToken({\n ...token,\n accessKey: newKey,\n });\n };\n\n return (\n <HeaderLayout\n title={token?.name || formatMessage(title)}\n primaryAction={\n canEditInputs ? (\n <Flex gap={2}>\n {canRegenerate && token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )}\n <Button\n disabled={isSubmitting}\n loading={isSubmitting}\n startIcon={<Check />}\n type=\"submit\"\n size=\"S\"\n >\n {formatMessage({\n id: 'global.save',\n defaultMessage: 'Save',\n })}\n </Button>\n </Flex>\n ) : (\n canRegenerate &&\n token?.id && (\n <Regenerate\n onRegenerate={handleRegenerate}\n url={`${regenerateUrl}${token?.id ?? ''}`}\n />\n )\n )\n }\n navigationAction={<BackButton />}\n ellipsis\n />\n );\n};\n","import { IconButton } from '@strapi/design-system';\nimport { Duplicate, Key } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { ContentBox } from '../../../../components/ContentBox';\nimport { useNotification } from '../../../../features/Notifications';\nimport { useTracking } from '../../../../features/Tracking';\nimport { useClipboard } from '../../../../hooks/useClipboard';\n\ninterface TokenBoxProps {\n token?: string;\n tokenType: 'transfer-token' | 'api-token';\n}\n\nexport const TokenBox = ({ token, tokenType }: TokenBoxProps) => {\n const { formatMessage } = useIntl();\n const { toggleNotification } = useNotification();\n const { trackUsage } = useTracking();\n\n const { copy } = useClipboard();\n\n const handleClick = (token: TokenBoxProps['token']) => async () => {\n if (token) {\n const didCopy = await copy(token);\n\n if (didCopy) {\n trackUsage('didCopyTokenKey', {\n tokenType,\n });\n toggleNotification({\n type: 'success',\n message: formatMessage({ id: 'Settings.tokens.notification.copied' }),\n });\n }\n }\n };\n\n return (\n <ContentBox\n endAction={\n token && (\n <span style={{ alignSelf: 'start' }}>\n <IconButton\n label={formatMessage({\n id: 'app.component.CopyToClipboard.label',\n defaultMessage: 'Copy to clipboard',\n })}\n onClick={handleClick(token)}\n borderWidth={0}\n icon={<Duplicate />}\n style={{ padding: 0, height: '1rem' }}\n />\n </span>\n )\n }\n title={\n token ||\n formatMessage({\n id: 'Settings.tokens.copy.editTitle',\n defaultMessage: 'This token isn’t accessible anymore.',\n })\n }\n subtitle={\n token\n ? formatMessage({\n id: 'Settings.tokens.copy.lastWarning',\n defaultMessage: 'Make sure to copy this token, you won’t be able to see it again!',\n })\n : formatMessage({\n id: 'Settings.tokens.copy.editMessage',\n defaultMessage: 'For security reasons, you can only see your token once.',\n })\n }\n icon={<Key />}\n iconBackground=\"neutral100\"\n />\n );\n};\n","import * as locales from 'date-fns/locale';\n\ntype LocaleName = keyof typeof locales;\n\n/**\n * Returns a valid date-fns locale name from a Strapi Admin locale.\n * Defaults to 'enUS' if the locale is not found.\n */\nconst getDateFnsLocaleName = (locale: string): LocaleName => {\n if (Object.keys(locales).includes(locale)) {\n return locale as LocaleName;\n }\n\n return 'enUS';\n};\n\nexport { getDateFnsLocaleName };\n","import { addDays, format } from 'date-fns';\nimport * as locales from 'date-fns/locale';\n\nimport { getDateFnsLocaleName } from '../../../../../../utils/locales';\n\nexport const getDateOfExpiration = (\n createdAt: string,\n duration: number | null,\n language: string = 'en'\n) => {\n if (duration && typeof duration === 'number') {\n const durationInDays = duration / 24 / 60 / 60 / 1000;\n\n return format(addDays(new Date(createdAt), durationInDays), 'PPP', {\n locale: locales[getDateFnsLocaleName(language)],\n });\n }\n\n return 'Unlimited';\n};\n","import { MessageDescriptor } from 'react-intl';\n\nconst isErrorMessageMessageDescriptor = (\n message: string | MessageDescriptor\n): message is MessageDescriptor => {\n return typeof message === 'object' && message !== null && 'id' in message;\n};\n\nexport { isErrorMessageMessageDescriptor };\n","import { SingleSelectOption, SingleSelect, Typography } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { getDateOfExpiration } from '../../pages/ApiTokens/EditView/utils/getDateOfExpiration';\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\nimport type { ApiToken } from '../../../../../../shared/contracts/api-token';\nimport type { TransferToken } from '../../../../../../shared/contracts/transfer';\n\ninterface LifeSpanInputProps {\n error?: string | MessageDescriptor;\n value?: string | number | null;\n onChange: (event: { target: { name: string; value: string } }) => void;\n isCreating: boolean;\n token: Partial<TransferToken> | Partial<ApiToken> | null;\n}\n\nexport const LifeSpanInput = ({\n token,\n error,\n value,\n onChange,\n isCreating,\n}: LifeSpanInputProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n <SingleSelect\n name=\"lifespan\"\n label={formatMessage({\n id: 'Settings.tokens.form.duration',\n defaultMessage: 'Token duration',\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={(value) => {\n // @ts-expect-error – DS v2 won't support number types for select\n onChange({ target: { name: 'lifespan', value } });\n }}\n required\n disabled={!isCreating}\n placeholder=\"Select\"\n >\n <SingleSelectOption value=\"604800000\">\n {formatMessage({\n id: 'Settings.tokens.duration.7-days',\n defaultMessage: '7 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"2592000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.30-days',\n defaultMessage: '30 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"7776000000\">\n {formatMessage({\n id: 'Settings.tokens.duration.90-days',\n defaultMessage: '90 days',\n })}\n </SingleSelectOption>\n <SingleSelectOption value=\"0\">\n {formatMessage({\n id: 'Settings.tokens.duration.unlimited',\n defaultMessage: 'Unlimited',\n })}\n </SingleSelectOption>\n </SingleSelect>\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {!isCreating &&\n `${formatMessage({\n id: 'Settings.tokens.duration.expiration-date',\n defaultMessage: 'Expiration date',\n // @ts-expect-error – TODO: fix this.\n })}: ${getDateOfExpiration(token?.createdAt, parseInt(value ?? '', 10))}`}\n </Typography>\n </>\n );\n};\n","import { Textarea, TextareaProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenDescriptionProps extends Pick<TextareaProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenDescription = ({\n error,\n value,\n onChange,\n canEditInputs,\n}: TokenDescriptionProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Textarea\n label={formatMessage({\n id: 'Settings.tokens.form.description',\n defaultMessage: 'Description',\n })}\n id=\"description\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error)\n ? error\n : {\n id: error,\n defaultMessage: error,\n }\n )\n : undefined\n }\n onChange={onChange}\n disabled={!canEditInputs}\n >\n {value}\n </Textarea>\n );\n};\n","import { TextInput, TextInputProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenNameProps extends Pick<TextInputProps, 'onChange' | 'value'> {\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n}\n\nexport const TokenName = ({ error, value, onChange, canEditInputs }: TokenNameProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <TextInput\n name=\"name\"\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n label={formatMessage({\n id: 'Settings.tokens.form.name',\n defaultMessage: 'Name',\n })}\n onChange={onChange}\n value={value}\n disabled={!canEditInputs}\n required\n />\n );\n};\n","import { SingleSelectOption, SingleSelect, SingleSelectProps } from '@strapi/design-system';\nimport { MessageDescriptor, useIntl } from 'react-intl';\n\nimport { isErrorMessageMessageDescriptor } from '../../utils/forms';\n\ninterface TokenTypeSelectProps extends Pick<SingleSelectProps, 'onChange' | 'value'> {\n name?: string;\n options: Array<{\n label: MessageDescriptor;\n value: string;\n }>;\n error?: string | MessageDescriptor;\n canEditInputs: boolean;\n label: MessageDescriptor;\n}\n\nexport const TokenTypeSelect = ({\n name = 'type',\n error,\n value,\n onChange,\n canEditInputs,\n options = [],\n label,\n}: TokenTypeSelectProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <SingleSelect\n name={name}\n label={formatMessage({\n id: label.id,\n defaultMessage: label.defaultMessage,\n })}\n value={value}\n error={\n error\n ? formatMessage(\n isErrorMessageMessageDescriptor(error) ? error : { id: error, defaultMessage: error }\n )\n : undefined\n }\n onChange={onChange}\n placeholder=\"Select\"\n required\n disabled={!canEditInputs}\n >\n {options &&\n options.map(({ value, label }) => (\n <SingleSelectOption key={value} value={value}>\n {formatMessage(label)}\n </SingleSelectOption>\n ))}\n </SingleSelect>\n );\n};\n"],"names":["token","value","label"],"mappings":"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"}