@strapi/upload 5.58.0 → 5.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.js +434 -0
  2. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.js.map +1 -0
  3. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.mjs +432 -0
  4. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.mjs.map +1 -0
  5. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.js +91 -0
  6. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.js.map +1 -0
  7. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.mjs +89 -0
  8. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.mjs.map +1 -0
  9. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.js +178 -0
  10. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.js.map +1 -0
  11. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.mjs +175 -0
  12. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.mjs.map +1 -0
  13. package/dist/admin/components/AssetPickerDialog/SortableSelection.js +143 -0
  14. package/dist/admin/components/AssetPickerDialog/SortableSelection.js.map +1 -0
  15. package/dist/admin/components/AssetPickerDialog/SortableSelection.mjs +141 -0
  16. package/dist/admin/components/AssetPickerDialog/SortableSelection.mjs.map +1 -0
  17. package/dist/admin/components/AssetPickerDialog/pickerSelection.js +49 -0
  18. package/dist/admin/components/AssetPickerDialog/pickerSelection.js.map +1 -0
  19. package/dist/admin/components/AssetPickerDialog/pickerSelection.mjs +41 -0
  20. package/dist/admin/components/AssetPickerDialog/pickerSelection.mjs.map +1 -0
  21. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.js +142 -0
  22. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.js.map +1 -0
  23. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.mjs +140 -0
  24. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.mjs.map +1 -0
  25. package/dist/admin/components/MediaLibraryInput/AssetCard.js +240 -0
  26. package/dist/admin/components/MediaLibraryInput/AssetCard.js.map +1 -0
  27. package/dist/admin/components/MediaLibraryInput/AssetCard.mjs +237 -0
  28. package/dist/admin/components/MediaLibraryInput/AssetCard.mjs.map +1 -0
  29. package/dist/admin/components/MediaLibraryInput/AssetCarousel.js +161 -0
  30. package/dist/admin/components/MediaLibraryInput/AssetCarousel.js.map +1 -0
  31. package/dist/admin/components/MediaLibraryInput/AssetCarousel.mjs +159 -0
  32. package/dist/admin/components/MediaLibraryInput/AssetCarousel.mjs.map +1 -0
  33. package/dist/admin/components/MediaLibraryInput/AssetDropZone.js +156 -0
  34. package/dist/admin/components/MediaLibraryInput/AssetDropZone.js.map +1 -0
  35. package/dist/admin/components/MediaLibraryInput/AssetDropZone.mjs +154 -0
  36. package/dist/admin/components/MediaLibraryInput/AssetDropZone.mjs.map +1 -0
  37. package/dist/admin/components/MediaLibraryInput/AssetPreview.js +109 -0
  38. package/dist/admin/components/MediaLibraryInput/AssetPreview.js.map +1 -0
  39. package/dist/admin/components/MediaLibraryInput/AssetPreview.mjs +106 -0
  40. package/dist/admin/components/MediaLibraryInput/AssetPreview.mjs.map +1 -0
  41. package/dist/admin/components/MediaLibraryInput/AssetRow.js +211 -0
  42. package/dist/admin/components/MediaLibraryInput/AssetRow.js.map +1 -0
  43. package/dist/admin/components/MediaLibraryInput/AssetRow.mjs +208 -0
  44. package/dist/admin/components/MediaLibraryInput/AssetRow.mjs.map +1 -0
  45. package/dist/admin/components/MediaLibraryInput/FieldControls.js +32 -0
  46. package/dist/admin/components/MediaLibraryInput/FieldControls.js.map +1 -0
  47. package/dist/admin/components/MediaLibraryInput/FieldControls.mjs +29 -0
  48. package/dist/admin/components/MediaLibraryInput/FieldControls.mjs.map +1 -0
  49. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +439 -0
  50. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -0
  51. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +433 -0
  52. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -0
  53. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.js +42 -0
  54. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.js.map +1 -0
  55. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.mjs +40 -0
  56. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.mjs.map +1 -0
  57. package/dist/admin/components/MediaLibraryInput/useFieldUploads.js +122 -0
  58. package/dist/admin/components/MediaLibraryInput/useFieldUploads.js.map +1 -0
  59. package/dist/admin/components/MediaLibraryInput/useFieldUploads.mjs +120 -0
  60. package/dist/admin/components/MediaLibraryInput/useFieldUploads.mjs.map +1 -0
  61. package/dist/admin/components/UploadProgressDialog.js +2 -1
  62. package/dist/admin/components/UploadProgressDialog.js.map +1 -1
  63. package/dist/admin/components/UploadProgressDialog.mjs +2 -1
  64. package/dist/admin/components/UploadProgressDialog.mjs.map +1 -1
  65. package/dist/admin/hooks/useAIMetadataAvailability.js +5 -1
  66. package/dist/admin/hooks/useAIMetadataAvailability.js.map +1 -1
  67. package/dist/admin/hooks/useAIMetadataAvailability.mjs +5 -1
  68. package/dist/admin/hooks/useAIMetadataAvailability.mjs.map +1 -1
  69. package/dist/admin/hooks/useAIMetadataEnabled.js +7 -1
  70. package/dist/admin/hooks/useAIMetadataEnabled.js.map +1 -1
  71. package/dist/admin/hooks/useAIMetadataEnabled.mjs +7 -1
  72. package/dist/admin/hooks/useAIMetadataEnabled.mjs.map +1 -1
  73. package/dist/admin/hooks/useMediaLibraryPermissions.js +16 -2
  74. package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
  75. package/dist/admin/hooks/useMediaLibraryPermissions.mjs +16 -2
  76. package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
  77. package/dist/admin/hooks/useTracking.js +5 -1
  78. package/dist/admin/hooks/useTracking.js.map +1 -1
  79. package/dist/admin/hooks/useTracking.mjs +5 -1
  80. package/dist/admin/hooks/useTracking.mjs.map +1 -1
  81. package/dist/admin/index.js +7 -2
  82. package/dist/admin/index.js.map +1 -1
  83. package/dist/admin/index.mjs +7 -2
  84. package/dist/admin/index.mjs.map +1 -1
  85. package/dist/admin/legacy/components/AssetCard/AssetCardBase.js.map +1 -1
  86. package/dist/admin/legacy/components/AssetCard/AssetCardBase.mjs.map +1 -1
  87. package/dist/admin/legacy/components/AssetCard/VideoPreview.js +2 -1
  88. package/dist/admin/legacy/components/AssetCard/VideoPreview.js.map +1 -1
  89. package/dist/admin/legacy/components/AssetCard/VideoPreview.mjs +2 -1
  90. package/dist/admin/legacy/components/AssetCard/VideoPreview.mjs.map +1 -1
  91. package/dist/admin/legacy/components/AssetDialog/AssetDialog.js +3 -1
  92. package/dist/admin/legacy/components/AssetDialog/AssetDialog.js.map +1 -1
  93. package/dist/admin/legacy/components/AssetDialog/AssetDialog.mjs +3 -1
  94. package/dist/admin/legacy/components/AssetDialog/AssetDialog.mjs.map +1 -1
  95. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js +3 -1
  96. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  97. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs +3 -1
  98. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  99. package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
  100. package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
  101. package/dist/admin/legacy/components/AssetGridList/AssetGridList.js +7 -6
  102. package/dist/admin/legacy/components/AssetGridList/AssetGridList.js.map +1 -1
  103. package/dist/admin/legacy/components/AssetGridList/AssetGridList.mjs +7 -6
  104. package/dist/admin/legacy/components/AssetGridList/AssetGridList.mjs.map +1 -1
  105. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.js +2 -1
  106. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -1
  107. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +2 -1
  108. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
  109. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.js +2 -1
  110. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
  111. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.mjs +2 -1
  112. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
  113. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.js +3 -1
  114. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  115. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.mjs +3 -1
  116. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  117. package/dist/admin/legacy/components/FilterList/FilterList.js.map +1 -1
  118. package/dist/admin/legacy/components/FilterList/FilterList.mjs.map +1 -1
  119. package/dist/admin/legacy/components/FilterPopover/FilterPopover.js.map +1 -1
  120. package/dist/admin/legacy/components/FilterPopover/FilterPopover.mjs.map +1 -1
  121. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.js +2 -1
  122. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.js.map +1 -1
  123. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.mjs +2 -1
  124. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.mjs.map +1 -1
  125. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.js +4 -2
  126. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -1
  127. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.mjs +4 -2
  128. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -1
  129. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.js +2 -1
  130. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  131. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.mjs +2 -1
  132. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  133. package/dist/admin/legacy/components/SelectTree/SelectTree.js +3 -1
  134. package/dist/admin/legacy/components/SelectTree/SelectTree.js.map +1 -1
  135. package/dist/admin/legacy/components/SelectTree/SelectTree.mjs +3 -1
  136. package/dist/admin/legacy/components/SelectTree/SelectTree.mjs.map +1 -1
  137. package/dist/admin/legacy/components/TableList/TableList.js +3 -1
  138. package/dist/admin/legacy/components/TableList/TableList.js.map +1 -1
  139. package/dist/admin/legacy/components/TableList/TableList.mjs +3 -1
  140. package/dist/admin/legacy/components/TableList/TableList.mjs.map +1 -1
  141. package/dist/admin/legacy/components/TableList/TableRows.js +3 -1
  142. package/dist/admin/legacy/components/TableList/TableRows.js.map +1 -1
  143. package/dist/admin/legacy/components/TableList/TableRows.mjs +3 -1
  144. package/dist/admin/legacy/components/TableList/TableRows.mjs.map +1 -1
  145. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.js +3 -1
  146. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -1
  147. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.mjs +3 -1
  148. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -1
  149. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  150. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  151. package/dist/admin/legacy/pages/App/components/BulkActions.js +2 -1
  152. package/dist/admin/legacy/pages/App/components/BulkActions.js.map +1 -1
  153. package/dist/admin/legacy/pages/App/components/BulkActions.mjs +2 -1
  154. package/dist/admin/legacy/pages/App/components/BulkActions.mjs.map +1 -1
  155. package/dist/admin/legacy/pages/App/components/BulkMoveButton.js +2 -1
  156. package/dist/admin/legacy/pages/App/components/BulkMoveButton.js.map +1 -1
  157. package/dist/admin/legacy/pages/App/components/BulkMoveButton.mjs +2 -1
  158. package/dist/admin/legacy/pages/App/components/BulkMoveButton.mjs.map +1 -1
  159. package/dist/admin/pages/Assets/AssetsPage.js +13 -302
  160. package/dist/admin/pages/Assets/AssetsPage.js.map +1 -1
  161. package/dist/admin/pages/Assets/AssetsPage.mjs +11 -280
  162. package/dist/admin/pages/Assets/AssetsPage.mjs.map +1 -1
  163. package/dist/admin/pages/Assets/components/AssetsGrid.js +143 -31
  164. package/dist/admin/pages/Assets/components/AssetsGrid.js.map +1 -1
  165. package/dist/admin/pages/Assets/components/AssetsGrid.mjs +146 -34
  166. package/dist/admin/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  167. package/dist/admin/pages/Assets/components/AssetsSearchInput.js +43 -2
  168. package/dist/admin/pages/Assets/components/AssetsSearchInput.js.map +1 -1
  169. package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs +45 -4
  170. package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs.map +1 -1
  171. package/dist/admin/pages/Assets/components/AssetsTable.js +60 -35
  172. package/dist/admin/pages/Assets/components/AssetsTable.js.map +1 -1
  173. package/dist/admin/pages/Assets/components/AssetsTable.mjs +62 -37
  174. package/dist/admin/pages/Assets/components/AssetsTable.mjs.map +1 -1
  175. package/dist/admin/pages/Assets/components/AssetsView.js +145 -0
  176. package/dist/admin/pages/Assets/components/AssetsView.js.map +1 -0
  177. package/dist/admin/pages/Assets/components/AssetsView.mjs +143 -0
  178. package/dist/admin/pages/Assets/components/AssetsView.mjs.map +1 -0
  179. package/dist/admin/pages/Assets/components/BulkActionsBar.js +3 -1
  180. package/dist/admin/pages/Assets/components/BulkActionsBar.js.map +1 -1
  181. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs +4 -2
  182. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs.map +1 -1
  183. package/dist/admin/pages/Assets/components/BusyOverlay.mjs +1 -1
  184. package/dist/admin/pages/Assets/components/DateRangeCalendar.js +10 -7
  185. package/dist/admin/pages/Assets/components/DateRangeCalendar.js.map +1 -1
  186. package/dist/admin/pages/Assets/components/DateRangeCalendar.mjs +10 -7
  187. package/dist/admin/pages/Assets/components/DateRangeCalendar.mjs.map +1 -1
  188. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs +1 -1
  189. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.js +40 -0
  190. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.js.map +1 -0
  191. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.mjs +38 -0
  192. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.mjs.map +1 -0
  193. package/dist/admin/pages/Assets/components/Dnd/assetSortable.js +29 -0
  194. package/dist/admin/pages/Assets/components/Dnd/assetSortable.js.map +1 -0
  195. package/dist/admin/pages/Assets/components/Dnd/assetSortable.mjs +24 -0
  196. package/dist/admin/pages/Assets/components/Dnd/assetSortable.mjs.map +1 -0
  197. package/dist/admin/pages/Assets/components/Dnd/dndIds.js +5 -0
  198. package/dist/admin/pages/Assets/components/Dnd/dndIds.js.map +1 -1
  199. package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs +5 -1
  200. package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs.map +1 -1
  201. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js +41 -13
  202. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -1
  203. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs +41 -13
  204. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -1
  205. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.js +4 -2
  206. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -1
  207. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.mjs +5 -3
  208. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -1
  209. package/dist/admin/pages/Assets/components/FilterBadges.js +32 -3
  210. package/dist/admin/pages/Assets/components/FilterBadges.js.map +1 -1
  211. package/dist/admin/pages/Assets/components/FilterBadges.mjs +35 -6
  212. package/dist/admin/pages/Assets/components/FilterBadges.mjs.map +1 -1
  213. package/dist/admin/pages/Assets/components/FilterMenu.mjs +2 -2
  214. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js +274 -55
  215. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js.map +1 -1
  216. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs +277 -59
  217. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -1
  218. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.js +32 -0
  219. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.js.map +1 -0
  220. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.mjs +29 -0
  221. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.mjs.map +1 -0
  222. package/dist/admin/pages/Assets/components/ViewToggle.js +126 -0
  223. package/dist/admin/pages/Assets/components/ViewToggle.js.map +1 -0
  224. package/dist/admin/pages/Assets/components/ViewToggle.mjs +104 -0
  225. package/dist/admin/pages/Assets/components/ViewToggle.mjs.map +1 -0
  226. package/dist/admin/pages/Assets/hooks/useAssetSearch.js +2 -2
  227. package/dist/admin/pages/Assets/hooks/useAssetSearch.js.map +1 -1
  228. package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs +2 -2
  229. package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs.map +1 -1
  230. package/dist/admin/pages/Assets/hooks/useAssetSelection.js +19 -1
  231. package/dist/admin/pages/Assets/hooks/useAssetSelection.js.map +1 -1
  232. package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs +20 -3
  233. package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs.map +1 -1
  234. package/dist/admin/pages/Assets/hooks/useAssetsList.js +87 -0
  235. package/dist/admin/pages/Assets/hooks/useAssetsList.js.map +1 -0
  236. package/dist/admin/pages/Assets/hooks/useAssetsList.mjs +85 -0
  237. package/dist/admin/pages/Assets/hooks/useAssetsList.mjs.map +1 -0
  238. package/dist/admin/pages/Assets/hooks/useBusyAssets.mjs +1 -1
  239. package/dist/admin/pages/Assets/hooks/useFolderNavigation.js +2 -1
  240. package/dist/admin/pages/Assets/hooks/useFolderNavigation.js.map +1 -1
  241. package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs +3 -2
  242. package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -1
  243. package/dist/admin/pages/Assets/hooks/useListFilters.js +2 -1
  244. package/dist/admin/pages/Assets/hooks/useListFilters.js.map +1 -1
  245. package/dist/admin/pages/Assets/hooks/useListFilters.mjs +3 -2
  246. package/dist/admin/pages/Assets/hooks/useListFilters.mjs.map +1 -1
  247. package/dist/admin/pages/Assets/hooks/useListQueryParams.js +80 -0
  248. package/dist/admin/pages/Assets/hooks/useListQueryParams.js.map +1 -0
  249. package/dist/admin/pages/Assets/hooks/useListQueryParams.mjs +77 -0
  250. package/dist/admin/pages/Assets/hooks/useListQueryParams.mjs.map +1 -0
  251. package/dist/admin/pages/Assets/hooks/useListSettings.js +32 -0
  252. package/dist/admin/pages/Assets/hooks/useListSettings.js.map +1 -0
  253. package/dist/admin/pages/Assets/hooks/useListSettings.mjs +29 -0
  254. package/dist/admin/pages/Assets/hooks/useListSettings.mjs.map +1 -0
  255. package/dist/admin/pages/Assets/hooks/useListSort.js +2 -1
  256. package/dist/admin/pages/Assets/hooks/useListSort.js.map +1 -1
  257. package/dist/admin/pages/Assets/hooks/useListSort.mjs +3 -2
  258. package/dist/admin/pages/Assets/hooks/useListSort.mjs.map +1 -1
  259. package/dist/admin/services/api.js +106 -11
  260. package/dist/admin/services/api.js.map +1 -1
  261. package/dist/admin/services/api.mjs +105 -13
  262. package/dist/admin/services/api.mjs.map +1 -1
  263. package/dist/admin/src/components/AssetPickerDialog/AssetPickerDialog.d.ts +19 -0
  264. package/dist/admin/src/components/AssetPickerDialog/FolderBreadcrumbs.d.ts +10 -0
  265. package/dist/admin/src/components/AssetPickerDialog/PickerSelectionProvider.d.ts +28 -0
  266. package/dist/admin/src/components/AssetPickerDialog/SortableSelection.d.ts +12 -0
  267. package/dist/admin/src/components/AssetPickerDialog/pickerSelection.d.ts +26 -0
  268. package/dist/admin/src/components/MediaLibraryInput/AddAssetMenu.d.ts +19 -0
  269. package/dist/admin/src/components/MediaLibraryInput/AssetCard.d.ts +25 -0
  270. package/dist/admin/src/components/MediaLibraryInput/AssetCarousel.d.ts +16 -0
  271. package/dist/admin/src/components/MediaLibraryInput/AssetDropZone.d.ts +21 -0
  272. package/dist/admin/src/components/MediaLibraryInput/AssetPreview.d.ts +17 -0
  273. package/dist/admin/src/components/MediaLibraryInput/AssetRow.d.ts +25 -0
  274. package/dist/admin/src/components/MediaLibraryInput/FieldControls.d.ts +19 -0
  275. package/dist/admin/src/components/MediaLibraryInput/MediaLibraryInput.d.ts +28 -0
  276. package/dist/admin/src/components/MediaLibraryInput/UploadProgressBar.d.ts +7 -0
  277. package/dist/admin/src/components/MediaLibraryInput/useFieldUploads.d.ts +31 -0
  278. package/dist/admin/src/hooks/useMediaLibraryPermissions.d.ts +3 -0
  279. package/dist/admin/src/legacy/components/BulkMoveDialog/BulkMoveDialog.d.ts +1 -1
  280. package/dist/admin/src/legacy/pages/App/components/BulkActions.d.ts +1 -1
  281. package/dist/admin/src/pages/Assets/components/AssetsGrid.d.ts +3 -1
  282. package/dist/admin/src/pages/Assets/components/AssetsSearchInput.d.ts +11 -1
  283. package/dist/admin/src/pages/Assets/components/AssetsView.d.ts +29 -0
  284. package/dist/admin/src/pages/Assets/components/Dnd/ReorderHandle.d.ts +12 -0
  285. package/dist/admin/src/pages/Assets/components/Dnd/assetSortable.d.ts +37 -0
  286. package/dist/admin/src/pages/Assets/components/Dnd/dndIds.d.ts +5 -0
  287. package/dist/admin/src/pages/Assets/components/Dnd/useAssetDnd.d.ts +23 -2
  288. package/dist/admin/src/pages/Assets/components/FolderTree/FolderTree.d.ts +1 -0
  289. package/dist/admin/src/pages/Assets/components/FolderTree/collapsedBranch.d.ts +21 -0
  290. package/dist/admin/src/pages/Assets/components/ViewToggle.d.ts +8 -0
  291. package/dist/admin/src/pages/Assets/hooks/useAssetSelection.d.ts +26 -0
  292. package/dist/admin/src/pages/Assets/hooks/useAssetsList.d.ts +30 -0
  293. package/dist/admin/src/pages/Assets/hooks/useListQueryParams.d.ts +27 -0
  294. package/dist/admin/src/pages/Assets/hooks/useListSettings.d.ts +29 -0
  295. package/dist/admin/src/services/api.d.ts +30 -1
  296. package/dist/admin/src/store/uploadProgress.d.ts +14 -1
  297. package/dist/admin/src/utils/allowedMediaTypes.d.ts +16 -0
  298. package/dist/admin/src/utils/findFolderPath.d.ts +6 -0
  299. package/dist/admin/src/utils/isAllowedAssetType.d.ts +14 -0
  300. package/dist/admin/store/uploadProgress.js +30 -3
  301. package/dist/admin/store/uploadProgress.js.map +1 -1
  302. package/dist/admin/store/uploadProgress.mjs +29 -4
  303. package/dist/admin/store/uploadProgress.mjs.map +1 -1
  304. package/dist/admin/translations/ca.json.js +3 -3
  305. package/dist/admin/translations/ca.json.mjs +3 -3
  306. package/dist/admin/translations/da.json.js +1 -1
  307. package/dist/admin/translations/da.json.mjs +1 -1
  308. package/dist/admin/translations/de.json.js +1 -1
  309. package/dist/admin/translations/de.json.mjs +1 -1
  310. package/dist/admin/translations/en.json.js +29 -0
  311. package/dist/admin/translations/en.json.js.map +1 -1
  312. package/dist/admin/translations/en.json.mjs +29 -0
  313. package/dist/admin/translations/en.json.mjs.map +1 -1
  314. package/dist/admin/translations/es.json.js +1 -1
  315. package/dist/admin/translations/es.json.mjs +1 -1
  316. package/dist/admin/translations/sk.json.js +2 -2
  317. package/dist/admin/translations/sk.json.mjs +2 -2
  318. package/dist/admin/translations/tr.json.js +2 -2
  319. package/dist/admin/translations/tr.json.mjs +2 -2
  320. package/dist/admin/translations/zh-Hans.json.js +1 -1
  321. package/dist/admin/translations/zh-Hans.json.mjs +1 -1
  322. package/dist/admin/translations/zh.json.js +2 -2
  323. package/dist/admin/translations/zh.json.mjs +2 -2
  324. package/dist/admin/utils/allowedMediaTypes.js +42 -0
  325. package/dist/admin/utils/allowedMediaTypes.js.map +1 -0
  326. package/dist/admin/utils/allowedMediaTypes.mjs +39 -0
  327. package/dist/admin/utils/allowedMediaTypes.mjs.map +1 -0
  328. package/dist/admin/utils/findFolderPath.js +26 -0
  329. package/dist/admin/utils/findFolderPath.js.map +1 -0
  330. package/dist/admin/utils/findFolderPath.mjs +24 -0
  331. package/dist/admin/utils/findFolderPath.mjs.map +1 -0
  332. package/dist/admin/utils/isAllowedAssetType.js +33 -0
  333. package/dist/admin/utils/isAllowedAssetType.js.map +1 -0
  334. package/dist/admin/utils/isAllowedAssetType.mjs +31 -0
  335. package/dist/admin/utils/isAllowedAssetType.mjs.map +1 -0
  336. package/dist/server/config.js +6 -0
  337. package/dist/server/config.js.map +1 -1
  338. package/dist/server/config.mjs +6 -0
  339. package/dist/server/config.mjs.map +1 -1
  340. package/dist/server/controllers/admin-settings.js +5 -1
  341. package/dist/server/controllers/admin-settings.js.map +1 -1
  342. package/dist/server/controllers/admin-settings.mjs +5 -1
  343. package/dist/server/controllers/admin-settings.mjs.map +1 -1
  344. package/dist/server/controllers/validation/admin/upload.js.map +1 -1
  345. package/dist/server/controllers/validation/admin/upload.mjs.map +1 -1
  346. package/dist/server/controllers/validation/content-api/upload.js.map +1 -1
  347. package/dist/server/controllers/validation/content-api/upload.mjs.map +1 -1
  348. package/dist/server/mcp/ambient-instance.js +7 -5
  349. package/dist/server/mcp/ambient-instance.js.map +1 -1
  350. package/dist/server/mcp/ambient-instance.mjs +7 -5
  351. package/dist/server/mcp/ambient-instance.mjs.map +1 -1
  352. package/dist/server/mcp/handlers/folder-handlers.js +4 -16
  353. package/dist/server/mcp/handlers/folder-handlers.js.map +1 -1
  354. package/dist/server/mcp/handlers/folder-handlers.mjs +5 -17
  355. package/dist/server/mcp/handlers/folder-handlers.mjs.map +1 -1
  356. package/dist/server/mcp/handlers/read-handlers.js +6 -14
  357. package/dist/server/mcp/handlers/read-handlers.js.map +1 -1
  358. package/dist/server/mcp/handlers/read-handlers.mjs +7 -15
  359. package/dist/server/mcp/handlers/read-handlers.mjs.map +1 -1
  360. package/dist/server/mcp/handlers/write-handlers.js +3 -13
  361. package/dist/server/mcp/handlers/write-handlers.js.map +1 -1
  362. package/dist/server/mcp/handlers/write-handlers.mjs +3 -13
  363. package/dist/server/mcp/handlers/write-handlers.mjs.map +1 -1
  364. package/dist/server/mcp/register-upload-mcp-tools.js +215 -195
  365. package/dist/server/mcp/register-upload-mcp-tools.js.map +1 -1
  366. package/dist/server/mcp/register-upload-mcp-tools.mjs +215 -195
  367. package/dist/server/mcp/register-upload-mcp-tools.mjs.map +1 -1
  368. package/dist/server/services/image-manipulation.js +35 -16
  369. package/dist/server/services/image-manipulation.js.map +1 -1
  370. package/dist/server/services/image-manipulation.mjs +35 -16
  371. package/dist/server/services/image-manipulation.mjs.map +1 -1
  372. package/dist/server/services/upload.js.map +1 -1
  373. package/dist/server/services/upload.mjs.map +1 -1
  374. package/dist/server/src/config.d.ts +3 -0
  375. package/dist/server/src/config.d.ts.map +1 -1
  376. package/dist/server/src/controllers/admin-settings.d.ts.map +1 -1
  377. package/dist/server/src/controllers/validation/admin/upload.d.ts.map +1 -1
  378. package/dist/server/src/controllers/validation/content-api/upload.d.ts.map +1 -1
  379. package/dist/server/src/index.d.ts +4 -1
  380. package/dist/server/src/index.d.ts.map +1 -1
  381. package/dist/server/src/mcp/ambient-instance.d.ts +7 -5
  382. package/dist/server/src/mcp/ambient-instance.d.ts.map +1 -1
  383. package/dist/server/src/mcp/handlers/folder-handlers.d.ts.map +1 -1
  384. package/dist/server/src/mcp/handlers/read-handlers.d.ts +3 -2
  385. package/dist/server/src/mcp/handlers/read-handlers.d.ts.map +1 -1
  386. package/dist/server/src/mcp/handlers/write-handlers.d.ts.map +1 -1
  387. package/dist/server/src/mcp/register-upload-mcp-tools.d.ts +9 -14
  388. package/dist/server/src/mcp/register-upload-mcp-tools.d.ts.map +1 -1
  389. package/dist/server/src/services/extensions/utils.d.ts +11 -11
  390. package/dist/server/src/services/image-manipulation.d.ts +1 -1
  391. package/dist/server/src/services/image-manipulation.d.ts.map +1 -1
  392. package/dist/server/src/services/index.d.ts +1 -1
  393. package/dist/server/src/types.d.ts +64 -12
  394. package/dist/server/src/types.d.ts.map +1 -1
  395. package/package.json +8 -6
@@ -2,6 +2,7 @@
2
2
 
3
3
  var icons = require('@strapi/icons');
4
4
  var _package = require('./package.json.js');
5
+ var MediaLibraryInput$1 = require('./components/MediaLibraryInput/MediaLibraryInput.js');
5
6
  var UploadProgressDialog = require('./components/UploadProgressDialog.js');
6
7
  var constants = require('./constants.js');
7
8
  var MediaLibraryDialog = require('./legacy/components/MediaLibraryDialog/MediaLibraryDialog.js');
@@ -97,9 +98,13 @@ const admin = {
97
98
  },
98
99
  permissions: constants.PERMISSIONS.settings
99
100
  });
100
- app.addFields({
101
+ /**
102
+ * The media field follows the same switch as the menu link above: the
103
+ * current input on the current Media Library, the legacy one when
104
+ * `useLegacyMediaLibrary` opts back out.
105
+ */ app.addFields({
101
106
  type: 'media',
102
- Component: MediaLibraryInput.MediaLibraryInput
107
+ Component: isLegacyMediaLibrary ? MediaLibraryInput.MediaLibraryInput : MediaLibraryInput$1.MediaLibraryInput
103
108
  });
104
109
  app.addComponents([
105
110
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { UploadProgressDialog } from './components/UploadProgressDialog';\nimport { PERMISSIONS } from './constants';\nimport { MediaLibraryDialog } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './legacy/components/MediaLibraryInput/MediaLibraryInput';\nimport { prefixPluginTranslations } from './legacy/utils/prefixPluginTranslations';\nimport { pluginId } from './pluginId';\nimport { uploadProgressReducer } from './store/uploadProgress';\nimport { getTranslationKey } from './utils/translations';\n\nimport type { MediaLibraryDialogProps } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './legacy/components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n /**\n * Whichever Media Library is selected owns `plugins/upload` outright: the other is\n * not registered at all, so there is exactly one Media Library entry in the menu.\n *\n * The new one is the default; `useLegacyMediaLibrary` opts back out.\n */\n const isLegacyMediaLibrary = window.strapi.featureFlags.isEnabled('useLegacyMediaLibrary');\n\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: isLegacyMediaLibrary\n ? () => {\n return import('./legacy/pages/App/App').then((mod) => ({ default: mod.Upload }));\n }\n : () => {\n return import('./App').then((mod) => ({\n default: mod.MediaLibrary,\n }));\n },\n position: 4,\n });\n\n if (!isLegacyMediaLibrary) {\n app.addReducers({ uploadProgress: uploadProgressReducer });\n\n app.addComponents([\n {\n name: 'future-global::upload-progress',\n Component: UploadProgressDialog,\n },\n ]);\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTranslationKey('plugin.name'),\n defaultMessage: 'Media Library',\n },\n Component() {\n return import('./pages/SettingsPage/SettingsPage').then((mod) => ({\n default: mod.ProtectedSettingsPage,\n }));\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","isLegacyMediaLibrary","window","featureFlags","isEnabled","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","MediaLibrary","position","addReducers","uploadProgress","uploadProgressReducer","addComponents","UploadProgressDialog","addSettingsLink","getTranslationKey","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { UploadProgressDialog } from './components/UploadProgressDialog';\nimport { PERMISSIONS } from './constants';\nimport { MediaLibraryDialog } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput as LegacyMediaLibraryInput } from './legacy/components/MediaLibraryInput/MediaLibraryInput';\nimport { prefixPluginTranslations } from './legacy/utils/prefixPluginTranslations';\nimport { pluginId } from './pluginId';\nimport { uploadProgressReducer } from './store/uploadProgress';\nimport { getTranslationKey } from './utils/translations';\n\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { MediaLibraryDialogProps } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps as LegacyMediaLibraryInputProps } from './legacy/components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n /**\n * Whichever Media Library is selected owns `plugins/upload` outright: the other is\n * not registered at all, so there is exactly one Media Library entry in the menu.\n *\n * The new one is the default; `useLegacyMediaLibrary` opts back out.\n */\n const isLegacyMediaLibrary = window.strapi.featureFlags.isEnabled('useLegacyMediaLibrary');\n\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: isLegacyMediaLibrary\n ? () => {\n return import('./legacy/pages/App/App').then((mod) => ({ default: mod.Upload }));\n }\n : () => {\n return import('./App').then((mod) => ({\n default: mod.MediaLibrary,\n }));\n },\n position: 4,\n });\n\n if (!isLegacyMediaLibrary) {\n app.addReducers({ uploadProgress: uploadProgressReducer });\n\n app.addComponents([\n {\n name: 'future-global::upload-progress',\n Component: UploadProgressDialog,\n },\n ]);\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTranslationKey('plugin.name'),\n defaultMessage: 'Media Library',\n },\n Component() {\n return import('./pages/SettingsPage/SettingsPage').then((mod) => ({\n default: mod.ProtectedSettingsPage,\n }));\n },\n permissions: PERMISSIONS.settings,\n });\n\n /**\n * The media field follows the same switch as the menu link above: the\n * current input on the current Media Library, the legacy one when\n * `useLegacyMediaLibrary` opts back out.\n */\n app.addFields({\n type: 'media',\n Component: isLegacyMediaLibrary\n ? (LegacyMediaLibraryInput as React.FC<Partial<LegacyMediaLibraryInputProps>>)\n : (MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>),\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","isLegacyMediaLibrary","window","featureFlags","isEnabled","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","MediaLibrary","position","addReducers","uploadProgress","uploadProgressReducer","addComponents","UploadProgressDialog","addSettingsLink","getTranslationKey","ProtectedSettingsPage","settings","addFields","type","LegacyMediaLibraryInput","MediaLibraryInput","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Images } from '@strapi/icons';
2
2
  import pluginPkg from './package.json.mjs';
3
+ import { MediaLibraryInput as MediaLibraryInput$1 } from './components/MediaLibraryInput/MediaLibraryInput.mjs';
3
4
  import { UploadProgressDialog } from './components/UploadProgressDialog.mjs';
4
5
  import { PERMISSIONS } from './constants.mjs';
5
6
  import { MediaLibraryDialog } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog.mjs';
@@ -93,9 +94,13 @@ const admin = {
93
94
  },
94
95
  permissions: PERMISSIONS.settings
95
96
  });
96
- app.addFields({
97
+ /**
98
+ * The media field follows the same switch as the menu link above: the
99
+ * current input on the current Media Library, the legacy one when
100
+ * `useLegacyMediaLibrary` opts back out.
101
+ */ app.addFields({
97
102
  type: 'media',
98
- Component: MediaLibraryInput
103
+ Component: isLegacyMediaLibrary ? MediaLibraryInput : MediaLibraryInput$1
99
104
  });
100
105
  app.addComponents([
101
106
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { UploadProgressDialog } from './components/UploadProgressDialog';\nimport { PERMISSIONS } from './constants';\nimport { MediaLibraryDialog } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput } from './legacy/components/MediaLibraryInput/MediaLibraryInput';\nimport { prefixPluginTranslations } from './legacy/utils/prefixPluginTranslations';\nimport { pluginId } from './pluginId';\nimport { uploadProgressReducer } from './store/uploadProgress';\nimport { getTranslationKey } from './utils/translations';\n\nimport type { MediaLibraryDialogProps } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps } from './legacy/components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n /**\n * Whichever Media Library is selected owns `plugins/upload` outright: the other is\n * not registered at all, so there is exactly one Media Library entry in the menu.\n *\n * The new one is the default; `useLegacyMediaLibrary` opts back out.\n */\n const isLegacyMediaLibrary = window.strapi.featureFlags.isEnabled('useLegacyMediaLibrary');\n\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: isLegacyMediaLibrary\n ? () => {\n return import('./legacy/pages/App/App').then((mod) => ({ default: mod.Upload }));\n }\n : () => {\n return import('./App').then((mod) => ({\n default: mod.MediaLibrary,\n }));\n },\n position: 4,\n });\n\n if (!isLegacyMediaLibrary) {\n app.addReducers({ uploadProgress: uploadProgressReducer });\n\n app.addComponents([\n {\n name: 'future-global::upload-progress',\n Component: UploadProgressDialog,\n },\n ]);\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTranslationKey('plugin.name'),\n defaultMessage: 'Media Library',\n },\n Component() {\n return import('./pages/SettingsPage/SettingsPage').then((mod) => ({\n default: mod.ProtectedSettingsPage,\n }));\n },\n permissions: PERMISSIONS.settings,\n });\n\n app.addFields({\n type: 'media',\n Component: MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>,\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","isLegacyMediaLibrary","window","featureFlags","isEnabled","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","MediaLibrary","position","addReducers","uploadProgress","uploadProgressReducer","addComponents","UploadProgressDialog","addSettingsLink","getTranslationKey","ProtectedSettingsPage","settings","addFields","type","MediaLibraryInput","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../admin/src/index.ts"],"sourcesContent":["import { Images } from '@strapi/icons';\n\nimport pluginPkg from '../../package.json';\n\nimport { MediaLibraryInput } from './components/MediaLibraryInput/MediaLibraryInput';\nimport { UploadProgressDialog } from './components/UploadProgressDialog';\nimport { PERMISSIONS } from './constants';\nimport { MediaLibraryDialog } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog';\nimport { MediaLibraryInput as LegacyMediaLibraryInput } from './legacy/components/MediaLibraryInput/MediaLibraryInput';\nimport { prefixPluginTranslations } from './legacy/utils/prefixPluginTranslations';\nimport { pluginId } from './pluginId';\nimport { uploadProgressReducer } from './store/uploadProgress';\nimport { getTranslationKey } from './utils/translations';\n\nimport type { MediaLibraryInputProps } from './components/MediaLibraryInput/MediaLibraryInput';\nimport type { MediaLibraryDialogProps } from './legacy/components/MediaLibraryDialog/MediaLibraryDialog';\nimport type { MediaLibraryInputProps as LegacyMediaLibraryInputProps } from './legacy/components/MediaLibraryInput/MediaLibraryInput';\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\nconst name = pluginPkg.strapi.name;\n\nconst admin: Plugin.Config.AdminInput = {\n register(app: StrapiApp) {\n /**\n * Whichever Media Library is selected owns `plugins/upload` outright: the other is\n * not registered at all, so there is exactly one Media Library entry in the menu.\n *\n * The new one is the default; `useLegacyMediaLibrary` opts back out.\n */\n const isLegacyMediaLibrary = window.strapi.featureFlags.isEnabled('useLegacyMediaLibrary');\n\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: Images,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Media Library',\n },\n permissions: PERMISSIONS.main,\n Component: isLegacyMediaLibrary\n ? () => {\n return import('./legacy/pages/App/App').then((mod) => ({ default: mod.Upload }));\n }\n : () => {\n return import('./App').then((mod) => ({\n default: mod.MediaLibrary,\n }));\n },\n position: 4,\n });\n\n if (!isLegacyMediaLibrary) {\n app.addReducers({ uploadProgress: uploadProgressReducer });\n\n app.addComponents([\n {\n name: 'future-global::upload-progress',\n Component: UploadProgressDialog,\n },\n ]);\n }\n\n app.addSettingsLink('global', {\n id: 'media-library-settings',\n to: 'media-library',\n intlLabel: {\n id: getTranslationKey('plugin.name'),\n defaultMessage: 'Media Library',\n },\n Component() {\n return import('./pages/SettingsPage/SettingsPage').then((mod) => ({\n default: mod.ProtectedSettingsPage,\n }));\n },\n permissions: PERMISSIONS.settings,\n });\n\n /**\n * The media field follows the same switch as the menu link above: the\n * current input on the current Media Library, the legacy one when\n * `useLegacyMediaLibrary` opts back out.\n */\n app.addFields({\n type: 'media',\n Component: isLegacyMediaLibrary\n ? (LegacyMediaLibraryInput as React.FC<Partial<LegacyMediaLibraryInputProps>>)\n : (MediaLibraryInput as React.FC<Partial<MediaLibraryInputProps>>),\n });\n app.addComponents([\n {\n name: 'media-library',\n Component: MediaLibraryDialog as React.FC<Partial<MediaLibraryDialogProps>>,\n },\n ]);\n\n app.registerPlugin({\n id: pluginId,\n name,\n });\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, pluginId),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["name","pluginPkg","strapi","admin","register","app","isLegacyMediaLibrary","window","featureFlags","isEnabled","addMenuLink","to","pluginId","icon","Images","intlLabel","id","defaultMessage","permissions","PERMISSIONS","main","Component","then","mod","default","Upload","MediaLibrary","position","addReducers","uploadProgress","uploadProgressReducer","addComponents","UploadProgressDialog","addSettingsLink","getTranslationKey","ProtectedSettingsPage","settings","addFields","type","LegacyMediaLibraryInput","MediaLibraryInput","MediaLibraryDialog","registerPlugin","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCardBase.js","sources":["../../../../../admin/src/legacy/components/AssetCard/AssetCardBase.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Card,\n CardAction,\n CardBadge,\n CardBody,\n CardCheckbox,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n Flex,\n IconButton,\n Typography,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils';\n\nconst Extension = styled.span`\n text-transform: uppercase;\n`;\n\nconst CardActionsContainer = styled(CardAction)`\n opacity: 0;\n z-index: 1;\n\n &:focus-within {\n opacity: 1;\n }\n`;\n\nconst CardCheckboxWrapper = styled.div`\n z-index: 1;\n`;\n\nconst CardContainer = styled(Card)`\n cursor: pointer;\n\n &:hover {\n ${CardActionsContainer} {\n opacity: 1;\n }\n }\n`;\n\nexport interface AssetCardBaseProps {\n children?: React.ReactNode;\n extension: string;\n isSelectable?: boolean;\n name: string;\n onSelect?: () => void;\n onRemove?: () => void;\n onEdit?: (\n event:\n | React.MouseEvent<HTMLButtonElement, MouseEvent>\n | React.MouseEvent<HTMLDivElement, MouseEvent>\n ) => void;\n selected?: boolean;\n subtitle?: string;\n variant: 'Image' | 'Video' | 'Audio' | 'Doc';\n className?: string;\n}\n\nexport const AssetCardBase = ({\n children,\n extension,\n isSelectable = false,\n name,\n onSelect,\n onRemove,\n onEdit,\n selected = false,\n subtitle = '',\n variant = 'Image',\n className,\n}: AssetCardBaseProps) => {\n const { formatMessage } = useIntl();\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (onEdit) {\n onEdit(e);\n }\n };\n\n /**\n * This is required because we need to stop the propagation of the event\n * bubbling to the `CardContainer`, however the `CardCheckbox` only returns\n * the `boolean` value as opposed to the event itself.\n */\n const handlePropagationClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation();\n };\n\n return (\n <CardContainer\n className={className}\n role=\"button\"\n height=\"100%\"\n tabIndex={-1}\n onClick={handleClick}\n >\n <CardHeader>\n {isSelectable && (\n <CardCheckboxWrapper onClick={handlePropagationClick}>\n <CardCheckbox checked={selected} onCheckedChange={onSelect} />\n </CardCheckboxWrapper>\n )}\n {(onRemove || onEdit) && (\n <CardActionsContainer onClick={handlePropagationClick} position=\"end\">\n {onRemove && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.remove-selection'),\n defaultMessage: 'Remove from selection',\n })}\n onClick={onRemove}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEdit && (\n <IconButton\n label={formatMessage({ id: getTrad('control-card.edit'), defaultMessage: 'Edit' })}\n onClick={onEdit}\n >\n <Pencil />\n </IconButton>\n )}\n </CardActionsContainer>\n )}\n {children}\n </CardHeader>\n <CardBody>\n <CardContent>\n <Box paddingTop={1}>\n <Typography tag=\"h2\">\n <CardTitle tag=\"span\">{name}</CardTitle>\n </Typography>\n </Box>\n <CardSubtitle>\n <Extension>{extension}</Extension>\n {subtitle}\n </CardSubtitle>\n </CardContent>\n <Flex paddingTop={1} grow={1}>\n <CardBadge>\n {formatMessage({\n id: getTrad(`settings.section.${variant.toLowerCase()}.label`),\n defaultMessage: variant,\n })}\n </CardBadge>\n </Flex>\n </CardBody>\n </CardContainer>\n );\n};\n"],"names":["Extension","styled","span","CardActionsContainer","CardAction","CardCheckboxWrapper","div","CardContainer","Card","AssetCardBase","children","extension","isSelectable","name","onSelect","onRemove","onEdit","selected","subtitle","variant","className","formatMessage","useIntl","handleClick","e","handlePropagationClick","stopPropagation","_jsxs","role","height","tabIndex","onClick","CardHeader","_jsx","CardCheckbox","checked","onCheckedChange","position","IconButton","label","id","getTrad","defaultMessage","Trash","Pencil","CardBody","CardContent","Box","paddingTop","Typography","tag","CardTitle","CardSubtitle","Flex","grow","CardBadge","toLowerCase"],"mappings":"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"}
1
+ {"version":3,"file":"AssetCardBase.js","sources":["../../../../../admin/src/legacy/components/AssetCard/AssetCardBase.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Card,\n CardAction,\n CardBadge,\n CardBody,\n CardCheckbox,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n Flex,\n IconButton,\n Typography,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils';\n\nconst Extension = styled.span`\n text-transform: uppercase;\n`;\n\nconst CardActionsContainer = styled(CardAction)`\n opacity: 0;\n z-index: 1;\n\n &:focus-within {\n opacity: 1;\n }\n`;\n\nconst CardCheckboxWrapper = styled.div`\n z-index: 1;\n`;\n\nconst CardContainer = styled(Card)`\n cursor: pointer;\n\n &:hover {\n ${CardActionsContainer} {\n opacity: 1;\n }\n }\n`;\n\nexport interface AssetCardBaseProps {\n children?: React.ReactNode;\n extension: string;\n isSelectable?: boolean;\n name: string;\n onSelect?: () => void;\n onRemove?: () => void;\n onEdit?: (\n event:\n React.MouseEvent<HTMLButtonElement, MouseEvent> | React.MouseEvent<HTMLDivElement, MouseEvent>\n ) => void;\n selected?: boolean;\n subtitle?: string;\n variant: 'Image' | 'Video' | 'Audio' | 'Doc';\n className?: string;\n}\n\nexport const AssetCardBase = ({\n children,\n extension,\n isSelectable = false,\n name,\n onSelect,\n onRemove,\n onEdit,\n selected = false,\n subtitle = '',\n variant = 'Image',\n className,\n}: AssetCardBaseProps) => {\n const { formatMessage } = useIntl();\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (onEdit) {\n onEdit(e);\n }\n };\n\n /**\n * This is required because we need to stop the propagation of the event\n * bubbling to the `CardContainer`, however the `CardCheckbox` only returns\n * the `boolean` value as opposed to the event itself.\n */\n const handlePropagationClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation();\n };\n\n return (\n <CardContainer\n className={className}\n role=\"button\"\n height=\"100%\"\n tabIndex={-1}\n onClick={handleClick}\n >\n <CardHeader>\n {isSelectable && (\n <CardCheckboxWrapper onClick={handlePropagationClick}>\n <CardCheckbox checked={selected} onCheckedChange={onSelect} />\n </CardCheckboxWrapper>\n )}\n {(onRemove || onEdit) && (\n <CardActionsContainer onClick={handlePropagationClick} position=\"end\">\n {onRemove && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.remove-selection'),\n defaultMessage: 'Remove from selection',\n })}\n onClick={onRemove}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEdit && (\n <IconButton\n label={formatMessage({ id: getTrad('control-card.edit'), defaultMessage: 'Edit' })}\n onClick={onEdit}\n >\n <Pencil />\n </IconButton>\n )}\n </CardActionsContainer>\n )}\n {children}\n </CardHeader>\n <CardBody>\n <CardContent>\n <Box paddingTop={1}>\n <Typography tag=\"h2\">\n <CardTitle tag=\"span\">{name}</CardTitle>\n </Typography>\n </Box>\n <CardSubtitle>\n <Extension>{extension}</Extension>\n {subtitle}\n </CardSubtitle>\n </CardContent>\n <Flex paddingTop={1} grow={1}>\n <CardBadge>\n {formatMessage({\n id: getTrad(`settings.section.${variant.toLowerCase()}.label`),\n defaultMessage: variant,\n })}\n </CardBadge>\n </Flex>\n </CardBody>\n </CardContainer>\n );\n};\n"],"names":["Extension","styled","span","CardActionsContainer","CardAction","CardCheckboxWrapper","div","CardContainer","Card","AssetCardBase","children","extension","isSelectable","name","onSelect","onRemove","onEdit","selected","subtitle","variant","className","formatMessage","useIntl","handleClick","e","handlePropagationClick","stopPropagation","_jsxs","role","height","tabIndex","onClick","CardHeader","_jsx","CardCheckbox","checked","onCheckedChange","position","IconButton","label","id","getTrad","defaultMessage","Trash","Pencil","CardBody","CardContent","Box","paddingTop","Typography","tag","CardTitle","CardSubtitle","Flex","grow","CardBadge","toLowerCase"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCardBase.mjs","sources":["../../../../../admin/src/legacy/components/AssetCard/AssetCardBase.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Card,\n CardAction,\n CardBadge,\n CardBody,\n CardCheckbox,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n Flex,\n IconButton,\n Typography,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils';\n\nconst Extension = styled.span`\n text-transform: uppercase;\n`;\n\nconst CardActionsContainer = styled(CardAction)`\n opacity: 0;\n z-index: 1;\n\n &:focus-within {\n opacity: 1;\n }\n`;\n\nconst CardCheckboxWrapper = styled.div`\n z-index: 1;\n`;\n\nconst CardContainer = styled(Card)`\n cursor: pointer;\n\n &:hover {\n ${CardActionsContainer} {\n opacity: 1;\n }\n }\n`;\n\nexport interface AssetCardBaseProps {\n children?: React.ReactNode;\n extension: string;\n isSelectable?: boolean;\n name: string;\n onSelect?: () => void;\n onRemove?: () => void;\n onEdit?: (\n event:\n | React.MouseEvent<HTMLButtonElement, MouseEvent>\n | React.MouseEvent<HTMLDivElement, MouseEvent>\n ) => void;\n selected?: boolean;\n subtitle?: string;\n variant: 'Image' | 'Video' | 'Audio' | 'Doc';\n className?: string;\n}\n\nexport const AssetCardBase = ({\n children,\n extension,\n isSelectable = false,\n name,\n onSelect,\n onRemove,\n onEdit,\n selected = false,\n subtitle = '',\n variant = 'Image',\n className,\n}: AssetCardBaseProps) => {\n const { formatMessage } = useIntl();\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (onEdit) {\n onEdit(e);\n }\n };\n\n /**\n * This is required because we need to stop the propagation of the event\n * bubbling to the `CardContainer`, however the `CardCheckbox` only returns\n * the `boolean` value as opposed to the event itself.\n */\n const handlePropagationClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation();\n };\n\n return (\n <CardContainer\n className={className}\n role=\"button\"\n height=\"100%\"\n tabIndex={-1}\n onClick={handleClick}\n >\n <CardHeader>\n {isSelectable && (\n <CardCheckboxWrapper onClick={handlePropagationClick}>\n <CardCheckbox checked={selected} onCheckedChange={onSelect} />\n </CardCheckboxWrapper>\n )}\n {(onRemove || onEdit) && (\n <CardActionsContainer onClick={handlePropagationClick} position=\"end\">\n {onRemove && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.remove-selection'),\n defaultMessage: 'Remove from selection',\n })}\n onClick={onRemove}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEdit && (\n <IconButton\n label={formatMessage({ id: getTrad('control-card.edit'), defaultMessage: 'Edit' })}\n onClick={onEdit}\n >\n <Pencil />\n </IconButton>\n )}\n </CardActionsContainer>\n )}\n {children}\n </CardHeader>\n <CardBody>\n <CardContent>\n <Box paddingTop={1}>\n <Typography tag=\"h2\">\n <CardTitle tag=\"span\">{name}</CardTitle>\n </Typography>\n </Box>\n <CardSubtitle>\n <Extension>{extension}</Extension>\n {subtitle}\n </CardSubtitle>\n </CardContent>\n <Flex paddingTop={1} grow={1}>\n <CardBadge>\n {formatMessage({\n id: getTrad(`settings.section.${variant.toLowerCase()}.label`),\n defaultMessage: variant,\n })}\n </CardBadge>\n </Flex>\n </CardBody>\n </CardContainer>\n );\n};\n"],"names":["Extension","styled","span","CardActionsContainer","CardAction","CardCheckboxWrapper","div","CardContainer","Card","AssetCardBase","children","extension","isSelectable","name","onSelect","onRemove","onEdit","selected","subtitle","variant","className","formatMessage","useIntl","handleClick","e","handlePropagationClick","stopPropagation","_jsxs","role","height","tabIndex","onClick","CardHeader","_jsx","CardCheckbox","checked","onCheckedChange","position","IconButton","label","id","getTrad","defaultMessage","Trash","Pencil","CardBody","CardContent","Box","paddingTop","Typography","tag","CardTitle","CardSubtitle","Flex","grow","CardBadge","toLowerCase"],"mappings":"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"}
1
+ {"version":3,"file":"AssetCardBase.mjs","sources":["../../../../../admin/src/legacy/components/AssetCard/AssetCardBase.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Card,\n CardAction,\n CardBadge,\n CardBody,\n CardCheckbox,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n Flex,\n IconButton,\n Typography,\n} from '@strapi/design-system';\nimport { Pencil, Trash } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { getTrad } from '../../utils';\n\nconst Extension = styled.span`\n text-transform: uppercase;\n`;\n\nconst CardActionsContainer = styled(CardAction)`\n opacity: 0;\n z-index: 1;\n\n &:focus-within {\n opacity: 1;\n }\n`;\n\nconst CardCheckboxWrapper = styled.div`\n z-index: 1;\n`;\n\nconst CardContainer = styled(Card)`\n cursor: pointer;\n\n &:hover {\n ${CardActionsContainer} {\n opacity: 1;\n }\n }\n`;\n\nexport interface AssetCardBaseProps {\n children?: React.ReactNode;\n extension: string;\n isSelectable?: boolean;\n name: string;\n onSelect?: () => void;\n onRemove?: () => void;\n onEdit?: (\n event:\n React.MouseEvent<HTMLButtonElement, MouseEvent> | React.MouseEvent<HTMLDivElement, MouseEvent>\n ) => void;\n selected?: boolean;\n subtitle?: string;\n variant: 'Image' | 'Video' | 'Audio' | 'Doc';\n className?: string;\n}\n\nexport const AssetCardBase = ({\n children,\n extension,\n isSelectable = false,\n name,\n onSelect,\n onRemove,\n onEdit,\n selected = false,\n subtitle = '',\n variant = 'Image',\n className,\n}: AssetCardBaseProps) => {\n const { formatMessage } = useIntl();\n\n const handleClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n if (onEdit) {\n onEdit(e);\n }\n };\n\n /**\n * This is required because we need to stop the propagation of the event\n * bubbling to the `CardContainer`, however the `CardCheckbox` only returns\n * the `boolean` value as opposed to the event itself.\n */\n const handlePropagationClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.stopPropagation();\n };\n\n return (\n <CardContainer\n className={className}\n role=\"button\"\n height=\"100%\"\n tabIndex={-1}\n onClick={handleClick}\n >\n <CardHeader>\n {isSelectable && (\n <CardCheckboxWrapper onClick={handlePropagationClick}>\n <CardCheckbox checked={selected} onCheckedChange={onSelect} />\n </CardCheckboxWrapper>\n )}\n {(onRemove || onEdit) && (\n <CardActionsContainer onClick={handlePropagationClick} position=\"end\">\n {onRemove && (\n <IconButton\n label={formatMessage({\n id: getTrad('control-card.remove-selection'),\n defaultMessage: 'Remove from selection',\n })}\n onClick={onRemove}\n >\n <Trash />\n </IconButton>\n )}\n\n {onEdit && (\n <IconButton\n label={formatMessage({ id: getTrad('control-card.edit'), defaultMessage: 'Edit' })}\n onClick={onEdit}\n >\n <Pencil />\n </IconButton>\n )}\n </CardActionsContainer>\n )}\n {children}\n </CardHeader>\n <CardBody>\n <CardContent>\n <Box paddingTop={1}>\n <Typography tag=\"h2\">\n <CardTitle tag=\"span\">{name}</CardTitle>\n </Typography>\n </Box>\n <CardSubtitle>\n <Extension>{extension}</Extension>\n {subtitle}\n </CardSubtitle>\n </CardContent>\n <Flex paddingTop={1} grow={1}>\n <CardBadge>\n {formatMessage({\n id: getTrad(`settings.section.${variant.toLowerCase()}.label`),\n defaultMessage: variant,\n })}\n </CardBadge>\n </Flex>\n </CardBody>\n </CardContainer>\n );\n};\n"],"names":["Extension","styled","span","CardActionsContainer","CardAction","CardCheckboxWrapper","div","CardContainer","Card","AssetCardBase","children","extension","isSelectable","name","onSelect","onRemove","onEdit","selected","subtitle","variant","className","formatMessage","useIntl","handleClick","e","handlePropagationClick","stopPropagation","_jsxs","role","height","tabIndex","onClick","CardHeader","_jsx","CardCheckbox","checked","onCheckedChange","position","IconButton","label","id","getTrad","defaultMessage","Trash","Pencil","CardBody","CardContent","Box","paddingTop","Typography","tag","CardTitle","CardSubtitle","Flex","grow","CardBadge","toLowerCase"],"mappings":"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"}
@@ -4,10 +4,11 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  require('react');
5
5
  var designSystem = require('@strapi/design-system');
6
6
 
7
+ const DEFAULT_ON_LOAD_DURATION = ()=>{};
7
8
  // According to MDN
8
9
  // https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState#value
9
10
  const HAVE_FUTURE_DATA = 3;
10
- const VideoPreview = ({ url, mime, onLoadDuration = ()=>{}, alt, ...props })=>{
11
+ const VideoPreview = ({ url, mime, onLoadDuration = DEFAULT_ON_LOAD_DURATION, alt, ...props })=>{
11
12
  const handleTimeUpdate = (e)=>{
12
13
  if (e.currentTarget.currentTime > 0) {
13
14
  const video = e.currentTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPreview.js","sources":["../../../../../admin/src/legacy/components/AssetCard/VideoPreview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, VisuallyHidden } from '@strapi/design-system';\n\n// According to MDN\n// https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState#value\nconst HAVE_FUTURE_DATA = 3;\n\ninterface VideoPreviewProps {\n alt: string;\n url: string;\n mime: string;\n onLoadDuration?: (duration?: number) => void;\n size?: 'S' | 'M';\n}\n\nexport const VideoPreview = ({\n url,\n mime,\n onLoadDuration = () => {},\n alt,\n ...props\n}: VideoPreviewProps) => {\n const handleTimeUpdate = (e: React.SyntheticEvent<HTMLVideoElement>) => {\n if (e.currentTarget.currentTime > 0) {\n const video = e.currentTarget;\n const canvas = document.createElement('canvas');\n\n canvas.height = video.videoHeight;\n canvas.width = video.videoWidth;\n canvas.getContext('2d')?.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\n\n video.replaceWith(canvas);\n onLoadDuration?.(video.duration);\n }\n };\n\n const handleThumbnailVisibility = (e: React.SyntheticEvent<HTMLVideoElement>) => {\n const video = e.currentTarget;\n\n if (video.readyState < HAVE_FUTURE_DATA) return;\n\n video.play();\n };\n\n return (\n <Box tag=\"figure\" key={url} {...props}>\n <video\n muted\n onLoadedData={handleThumbnailVisibility}\n src={url}\n crossOrigin=\"anonymous\"\n onTimeUpdate={handleTimeUpdate}\n >\n <source type={mime} />\n </video>\n <VisuallyHidden tag=\"figcaption\">{alt}</VisuallyHidden>\n </Box>\n );\n};\n"],"names":["HAVE_FUTURE_DATA","VideoPreview","url","mime","onLoadDuration","alt","props","handleTimeUpdate","e","currentTarget","currentTime","video","canvas","document","createElement","height","videoHeight","width","videoWidth","getContext","drawImage","replaceWith","duration","handleThumbnailVisibility","readyState","play","_jsxs","Box","tag","_jsx","muted","onLoadedData","src","crossOrigin","onTimeUpdate","source","type","VisuallyHidden"],"mappings":";;;;;;AAIA;AACA;AACA,MAAMA,gBAAAA,GAAmB,CAAA;AAUlB,MAAMC,YAAAA,GAAe,CAAC,EAC3BC,GAAG,EACHC,IAAI,EACJC,cAAAA,GAAiB,KAAO,CAAC,EACzBC,GAAG,EACH,GAAGC,KAAAA,EACe,GAAA;AAClB,IAAA,MAAMC,mBAAmB,CAACC,CAAAA,GAAAA;AACxB,QAAA,IAAIA,CAAAA,CAAEC,aAAa,CAACC,WAAW,GAAG,CAAA,EAAG;YACnC,MAAMC,KAAAA,GAAQH,EAAEC,aAAa;YAC7B,MAAMG,MAAAA,GAASC,QAAAA,CAASC,aAAa,CAAC,QAAA,CAAA;YAEtCF,MAAAA,CAAOG,MAAM,GAAGJ,KAAAA,CAAMK,WAAW;YACjCJ,MAAAA,CAAOK,KAAK,GAAGN,KAAAA,CAAMO,UAAU;YAC/BN,MAAAA,CAAOO,UAAU,CAAC,IAAA,CAAA,EAAOC,SAAAA,CAAUT,KAAAA,EAAO,CAAA,EAAG,CAAA,EAAGA,KAAAA,CAAMO,UAAU,EAAEP,KAAAA,CAAMK,WAAW,CAAA;AAEnFL,YAAAA,KAAAA,CAAMU,WAAW,CAACT,MAAAA,CAAAA;AAClBR,YAAAA,cAAAA,GAAiBO,MAAMW,QAAQ,CAAA;AACjC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMC,4BAA4B,CAACf,CAAAA,GAAAA;QACjC,MAAMG,KAAAA,GAAQH,EAAEC,aAAa;QAE7B,IAAIE,KAAAA,CAAMa,UAAU,GAAGxB,gBAAAA,EAAkB;AAEzCW,QAAAA,KAAAA,CAAMc,IAAI,EAAA;AACZ,IAAA,CAAA;AAEA,IAAA,qBACEC,eAAA,CAACC,gBAAAA,EAAAA;QAAIC,GAAAA,EAAI,QAAA;AAAoB,QAAA,GAAGtB,KAAK;;0BACnCuB,cAAA,CAAClB,OAAAA,EAAAA;gBACCmB,KAAK,EAAA,IAAA;gBACLC,YAAAA,EAAcR,yBAAAA;gBACdS,GAAAA,EAAK9B,GAAAA;gBACL+B,WAAAA,EAAY,WAAA;gBACZC,YAAAA,EAAc3B,gBAAAA;AAEd,gBAAA,QAAA,gBAAAsB,cAAA,CAACM,QAAAA,EAAAA;oBAAOC,IAAAA,EAAMjC;;;0BAEhB0B,cAAA,CAACQ,2BAAAA,EAAAA;gBAAeT,GAAAA,EAAI,YAAA;AAAcvB,gBAAAA,QAAAA,EAAAA;;;AAVbH,KAAAA,EAAAA,GAAAA,CAAAA;AAa3B;;;;"}
1
+ {"version":3,"file":"VideoPreview.js","sources":["../../../../../admin/src/legacy/components/AssetCard/VideoPreview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, VisuallyHidden } from '@strapi/design-system';\n\nconst DEFAULT_ON_LOAD_DURATION: NonNullable<VideoPreviewProps['onLoadDuration']> = () => {};\n\n// According to MDN\n// https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState#value\nconst HAVE_FUTURE_DATA = 3;\n\ninterface VideoPreviewProps {\n alt: string;\n url: string;\n mime: string;\n onLoadDuration?: (duration?: number) => void;\n size?: 'S' | 'M';\n}\n\nexport const VideoPreview = ({\n url,\n mime,\n onLoadDuration = DEFAULT_ON_LOAD_DURATION,\n alt,\n ...props\n}: VideoPreviewProps) => {\n const handleTimeUpdate = (e: React.SyntheticEvent<HTMLVideoElement>) => {\n if (e.currentTarget.currentTime > 0) {\n const video = e.currentTarget;\n const canvas = document.createElement('canvas');\n\n canvas.height = video.videoHeight;\n canvas.width = video.videoWidth;\n canvas.getContext('2d')?.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\n\n video.replaceWith(canvas);\n onLoadDuration?.(video.duration);\n }\n };\n\n const handleThumbnailVisibility = (e: React.SyntheticEvent<HTMLVideoElement>) => {\n const video = e.currentTarget;\n\n if (video.readyState < HAVE_FUTURE_DATA) return;\n\n video.play();\n };\n\n return (\n <Box tag=\"figure\" key={url} {...props}>\n <video\n muted\n onLoadedData={handleThumbnailVisibility}\n src={url}\n crossOrigin=\"anonymous\"\n onTimeUpdate={handleTimeUpdate}\n >\n <source type={mime} />\n </video>\n <VisuallyHidden tag=\"figcaption\">{alt}</VisuallyHidden>\n </Box>\n );\n};\n"],"names":["DEFAULT_ON_LOAD_DURATION","HAVE_FUTURE_DATA","VideoPreview","url","mime","onLoadDuration","alt","props","handleTimeUpdate","e","currentTarget","currentTime","video","canvas","document","createElement","height","videoHeight","width","videoWidth","getContext","drawImage","replaceWith","duration","handleThumbnailVisibility","readyState","play","_jsxs","Box","tag","_jsx","muted","onLoadedData","src","crossOrigin","onTimeUpdate","source","type","VisuallyHidden"],"mappings":";;;;;;AAIA,MAAMA,2BAA6E,IAAA,CAAO,CAAA;AAE1F;AACA;AACA,MAAMC,gBAAAA,GAAmB,CAAA;AAUlB,MAAMC,YAAAA,GAAe,CAAC,EAC3BC,GAAG,EACHC,IAAI,EACJC,cAAAA,GAAiBL,wBAAwB,EACzCM,GAAG,EACH,GAAGC,KAAAA,EACe,GAAA;AAClB,IAAA,MAAMC,mBAAmB,CAACC,CAAAA,GAAAA;AACxB,QAAA,IAAIA,CAAAA,CAAEC,aAAa,CAACC,WAAW,GAAG,CAAA,EAAG;YACnC,MAAMC,KAAAA,GAAQH,EAAEC,aAAa;YAC7B,MAAMG,MAAAA,GAASC,QAAAA,CAASC,aAAa,CAAC,QAAA,CAAA;YAEtCF,MAAAA,CAAOG,MAAM,GAAGJ,KAAAA,CAAMK,WAAW;YACjCJ,MAAAA,CAAOK,KAAK,GAAGN,KAAAA,CAAMO,UAAU;YAC/BN,MAAAA,CAAOO,UAAU,CAAC,IAAA,CAAA,EAAOC,SAAAA,CAAUT,KAAAA,EAAO,CAAA,EAAG,CAAA,EAAGA,KAAAA,CAAMO,UAAU,EAAEP,KAAAA,CAAMK,WAAW,CAAA;AAEnFL,YAAAA,KAAAA,CAAMU,WAAW,CAACT,MAAAA,CAAAA;AAClBR,YAAAA,cAAAA,GAAiBO,MAAMW,QAAQ,CAAA;AACjC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMC,4BAA4B,CAACf,CAAAA,GAAAA;QACjC,MAAMG,KAAAA,GAAQH,EAAEC,aAAa;QAE7B,IAAIE,KAAAA,CAAMa,UAAU,GAAGxB,gBAAAA,EAAkB;AAEzCW,QAAAA,KAAAA,CAAMc,IAAI,EAAA;AACZ,IAAA,CAAA;AAEA,IAAA,qBACEC,eAAA,CAACC,gBAAAA,EAAAA;QAAIC,GAAAA,EAAI,QAAA;AAAoB,QAAA,GAAGtB,KAAK;;0BACnCuB,cAAA,CAAClB,OAAAA,EAAAA;gBACCmB,KAAK,EAAA,IAAA;gBACLC,YAAAA,EAAcR,yBAAAA;gBACdS,GAAAA,EAAK9B,GAAAA;gBACL+B,WAAAA,EAAY,WAAA;gBACZC,YAAAA,EAAc3B,gBAAAA;AAEd,gBAAA,QAAA,gBAAAsB,cAAA,CAACM,QAAAA,EAAAA;oBAAOC,IAAAA,EAAMjC;;;0BAEhB0B,cAAA,CAACQ,2BAAAA,EAAAA;gBAAeT,GAAAA,EAAI,YAAA;AAAcvB,gBAAAA,QAAAA,EAAAA;;;AAVbH,KAAAA,EAAAA,GAAAA,CAAAA;AAa3B;;;;"}
@@ -2,10 +2,11 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import 'react';
3
3
  import { Box, VisuallyHidden } from '@strapi/design-system';
4
4
 
5
+ const DEFAULT_ON_LOAD_DURATION = ()=>{};
5
6
  // According to MDN
6
7
  // https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState#value
7
8
  const HAVE_FUTURE_DATA = 3;
8
- const VideoPreview = ({ url, mime, onLoadDuration = ()=>{}, alt, ...props })=>{
9
+ const VideoPreview = ({ url, mime, onLoadDuration = DEFAULT_ON_LOAD_DURATION, alt, ...props })=>{
9
10
  const handleTimeUpdate = (e)=>{
10
11
  if (e.currentTarget.currentTime > 0) {
11
12
  const video = e.currentTarget;
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPreview.mjs","sources":["../../../../../admin/src/legacy/components/AssetCard/VideoPreview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, VisuallyHidden } from '@strapi/design-system';\n\n// According to MDN\n// https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState#value\nconst HAVE_FUTURE_DATA = 3;\n\ninterface VideoPreviewProps {\n alt: string;\n url: string;\n mime: string;\n onLoadDuration?: (duration?: number) => void;\n size?: 'S' | 'M';\n}\n\nexport const VideoPreview = ({\n url,\n mime,\n onLoadDuration = () => {},\n alt,\n ...props\n}: VideoPreviewProps) => {\n const handleTimeUpdate = (e: React.SyntheticEvent<HTMLVideoElement>) => {\n if (e.currentTarget.currentTime > 0) {\n const video = e.currentTarget;\n const canvas = document.createElement('canvas');\n\n canvas.height = video.videoHeight;\n canvas.width = video.videoWidth;\n canvas.getContext('2d')?.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\n\n video.replaceWith(canvas);\n onLoadDuration?.(video.duration);\n }\n };\n\n const handleThumbnailVisibility = (e: React.SyntheticEvent<HTMLVideoElement>) => {\n const video = e.currentTarget;\n\n if (video.readyState < HAVE_FUTURE_DATA) return;\n\n video.play();\n };\n\n return (\n <Box tag=\"figure\" key={url} {...props}>\n <video\n muted\n onLoadedData={handleThumbnailVisibility}\n src={url}\n crossOrigin=\"anonymous\"\n onTimeUpdate={handleTimeUpdate}\n >\n <source type={mime} />\n </video>\n <VisuallyHidden tag=\"figcaption\">{alt}</VisuallyHidden>\n </Box>\n );\n};\n"],"names":["HAVE_FUTURE_DATA","VideoPreview","url","mime","onLoadDuration","alt","props","handleTimeUpdate","e","currentTarget","currentTime","video","canvas","document","createElement","height","videoHeight","width","videoWidth","getContext","drawImage","replaceWith","duration","handleThumbnailVisibility","readyState","play","_jsxs","Box","tag","_jsx","muted","onLoadedData","src","crossOrigin","onTimeUpdate","source","type","VisuallyHidden"],"mappings":";;;;AAIA;AACA;AACA,MAAMA,gBAAAA,GAAmB,CAAA;AAUlB,MAAMC,YAAAA,GAAe,CAAC,EAC3BC,GAAG,EACHC,IAAI,EACJC,cAAAA,GAAiB,KAAO,CAAC,EACzBC,GAAG,EACH,GAAGC,KAAAA,EACe,GAAA;AAClB,IAAA,MAAMC,mBAAmB,CAACC,CAAAA,GAAAA;AACxB,QAAA,IAAIA,CAAAA,CAAEC,aAAa,CAACC,WAAW,GAAG,CAAA,EAAG;YACnC,MAAMC,KAAAA,GAAQH,EAAEC,aAAa;YAC7B,MAAMG,MAAAA,GAASC,QAAAA,CAASC,aAAa,CAAC,QAAA,CAAA;YAEtCF,MAAAA,CAAOG,MAAM,GAAGJ,KAAAA,CAAMK,WAAW;YACjCJ,MAAAA,CAAOK,KAAK,GAAGN,KAAAA,CAAMO,UAAU;YAC/BN,MAAAA,CAAOO,UAAU,CAAC,IAAA,CAAA,EAAOC,SAAAA,CAAUT,KAAAA,EAAO,CAAA,EAAG,CAAA,EAAGA,KAAAA,CAAMO,UAAU,EAAEP,KAAAA,CAAMK,WAAW,CAAA;AAEnFL,YAAAA,KAAAA,CAAMU,WAAW,CAACT,MAAAA,CAAAA;AAClBR,YAAAA,cAAAA,GAAiBO,MAAMW,QAAQ,CAAA;AACjC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMC,4BAA4B,CAACf,CAAAA,GAAAA;QACjC,MAAMG,KAAAA,GAAQH,EAAEC,aAAa;QAE7B,IAAIE,KAAAA,CAAMa,UAAU,GAAGxB,gBAAAA,EAAkB;AAEzCW,QAAAA,KAAAA,CAAMc,IAAI,EAAA;AACZ,IAAA,CAAA;AAEA,IAAA,qBACEC,IAAA,CAACC,GAAAA,EAAAA;QAAIC,GAAAA,EAAI,QAAA;AAAoB,QAAA,GAAGtB,KAAK;;0BACnCuB,GAAA,CAAClB,OAAAA,EAAAA;gBACCmB,KAAK,EAAA,IAAA;gBACLC,YAAAA,EAAcR,yBAAAA;gBACdS,GAAAA,EAAK9B,GAAAA;gBACL+B,WAAAA,EAAY,WAAA;gBACZC,YAAAA,EAAc3B,gBAAAA;AAEd,gBAAA,QAAA,gBAAAsB,GAAA,CAACM,QAAAA,EAAAA;oBAAOC,IAAAA,EAAMjC;;;0BAEhB0B,GAAA,CAACQ,cAAAA,EAAAA;gBAAeT,GAAAA,EAAI,YAAA;AAAcvB,gBAAAA,QAAAA,EAAAA;;;AAVbH,KAAAA,EAAAA,GAAAA,CAAAA;AAa3B;;;;"}
1
+ {"version":3,"file":"VideoPreview.mjs","sources":["../../../../../admin/src/legacy/components/AssetCard/VideoPreview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, VisuallyHidden } from '@strapi/design-system';\n\nconst DEFAULT_ON_LOAD_DURATION: NonNullable<VideoPreviewProps['onLoadDuration']> = () => {};\n\n// According to MDN\n// https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/readyState#value\nconst HAVE_FUTURE_DATA = 3;\n\ninterface VideoPreviewProps {\n alt: string;\n url: string;\n mime: string;\n onLoadDuration?: (duration?: number) => void;\n size?: 'S' | 'M';\n}\n\nexport const VideoPreview = ({\n url,\n mime,\n onLoadDuration = DEFAULT_ON_LOAD_DURATION,\n alt,\n ...props\n}: VideoPreviewProps) => {\n const handleTimeUpdate = (e: React.SyntheticEvent<HTMLVideoElement>) => {\n if (e.currentTarget.currentTime > 0) {\n const video = e.currentTarget;\n const canvas = document.createElement('canvas');\n\n canvas.height = video.videoHeight;\n canvas.width = video.videoWidth;\n canvas.getContext('2d')?.drawImage(video, 0, 0, video.videoWidth, video.videoHeight);\n\n video.replaceWith(canvas);\n onLoadDuration?.(video.duration);\n }\n };\n\n const handleThumbnailVisibility = (e: React.SyntheticEvent<HTMLVideoElement>) => {\n const video = e.currentTarget;\n\n if (video.readyState < HAVE_FUTURE_DATA) return;\n\n video.play();\n };\n\n return (\n <Box tag=\"figure\" key={url} {...props}>\n <video\n muted\n onLoadedData={handleThumbnailVisibility}\n src={url}\n crossOrigin=\"anonymous\"\n onTimeUpdate={handleTimeUpdate}\n >\n <source type={mime} />\n </video>\n <VisuallyHidden tag=\"figcaption\">{alt}</VisuallyHidden>\n </Box>\n );\n};\n"],"names":["DEFAULT_ON_LOAD_DURATION","HAVE_FUTURE_DATA","VideoPreview","url","mime","onLoadDuration","alt","props","handleTimeUpdate","e","currentTarget","currentTime","video","canvas","document","createElement","height","videoHeight","width","videoWidth","getContext","drawImage","replaceWith","duration","handleThumbnailVisibility","readyState","play","_jsxs","Box","tag","_jsx","muted","onLoadedData","src","crossOrigin","onTimeUpdate","source","type","VisuallyHidden"],"mappings":";;;;AAIA,MAAMA,2BAA6E,IAAA,CAAO,CAAA;AAE1F;AACA;AACA,MAAMC,gBAAAA,GAAmB,CAAA;AAUlB,MAAMC,YAAAA,GAAe,CAAC,EAC3BC,GAAG,EACHC,IAAI,EACJC,cAAAA,GAAiBL,wBAAwB,EACzCM,GAAG,EACH,GAAGC,KAAAA,EACe,GAAA;AAClB,IAAA,MAAMC,mBAAmB,CAACC,CAAAA,GAAAA;AACxB,QAAA,IAAIA,CAAAA,CAAEC,aAAa,CAACC,WAAW,GAAG,CAAA,EAAG;YACnC,MAAMC,KAAAA,GAAQH,EAAEC,aAAa;YAC7B,MAAMG,MAAAA,GAASC,QAAAA,CAASC,aAAa,CAAC,QAAA,CAAA;YAEtCF,MAAAA,CAAOG,MAAM,GAAGJ,KAAAA,CAAMK,WAAW;YACjCJ,MAAAA,CAAOK,KAAK,GAAGN,KAAAA,CAAMO,UAAU;YAC/BN,MAAAA,CAAOO,UAAU,CAAC,IAAA,CAAA,EAAOC,SAAAA,CAAUT,KAAAA,EAAO,CAAA,EAAG,CAAA,EAAGA,KAAAA,CAAMO,UAAU,EAAEP,KAAAA,CAAMK,WAAW,CAAA;AAEnFL,YAAAA,KAAAA,CAAMU,WAAW,CAACT,MAAAA,CAAAA;AAClBR,YAAAA,cAAAA,GAAiBO,MAAMW,QAAQ,CAAA;AACjC,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMC,4BAA4B,CAACf,CAAAA,GAAAA;QACjC,MAAMG,KAAAA,GAAQH,EAAEC,aAAa;QAE7B,IAAIE,KAAAA,CAAMa,UAAU,GAAGxB,gBAAAA,EAAkB;AAEzCW,QAAAA,KAAAA,CAAMc,IAAI,EAAA;AACZ,IAAA,CAAA;AAEA,IAAA,qBACEC,IAAA,CAACC,GAAAA,EAAAA;QAAIC,GAAAA,EAAI,QAAA;AAAoB,QAAA,GAAGtB,KAAK;;0BACnCuB,GAAA,CAAClB,OAAAA,EAAAA;gBACCmB,KAAK,EAAA,IAAA;gBACLC,YAAAA,EAAcR,yBAAAA;gBACdS,GAAAA,EAAK9B,GAAAA;gBACL+B,WAAAA,EAAY,WAAA;gBACZC,YAAAA,EAAc3B,gBAAAA;AAEd,gBAAA,QAAA,gBAAAsB,GAAA,CAACM,QAAAA,EAAAA;oBAAOC,IAAAA,EAAMjC;;;0BAEhB0B,GAAA,CAACQ,cAAAA,EAAAA;gBAAeT,GAAAA,EAAI,YAAA;AAAcvB,gBAAAA,QAAAA,EAAAA;;;AAVbH,KAAAA,EAAAA,GAAAA,CAAAA;AAa3B;;;;"}
@@ -46,11 +46,13 @@ function _interopNamespace(e) {
46
46
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
47
47
 
48
48
  // TODO: find a better naming convention for the file that was an index file before
49
+ const EMPTY_ALLOWED_TYPES = [];
50
+ const EMPTY_INITIALLY_SELECTED_ASSETS = [];
49
51
  const LoadingBody = styledComponents.styled(designSystem.Flex)`
50
52
  /* 80px are coming from the Tabs component that is not included in the ModalBody */
51
53
  min-height: ${()=>`calc(60dvh + 8rem)`};
52
54
  `;
53
- const AssetContent = ({ allowedTypes = [], folderId = null, onClose, onAddAsset, onAddFolder, onChangeFolder, onValidate, multiple = false, initiallySelectedAssets = [], trackedLocation })=>{
55
+ const AssetContent = ({ allowedTypes = EMPTY_ALLOWED_TYPES, folderId = null, onClose, onAddAsset, onAddFolder, onChangeFolder, onValidate, multiple = false, initiallySelectedAssets = EMPTY_INITIALLY_SELECTED_ASSETS, trackedLocation })=>{
54
56
  const [assetToEdit, setAssetToEdit] = React__namespace.useState(undefined);
55
57
  const [folderToEdit, setFolderToEdit] = React__namespace.useState(undefined);
56
58
  const { formatMessage } = reactIntl.useIntl();
@@ -1 +1 @@
1
- {"version":3,"file":"AssetDialog.js","sources":["../../../../../admin/src/legacy/components/AssetDialog/AssetDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page } from '@strapi/admin/strapi-admin';\nimport {\n Badge,\n Button,\n Divider,\n Flex,\n Loader,\n Modal,\n ScrollArea,\n Tabs,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useAssets } from '../../hooks/useAssets';\nimport { useFolders } from '../../hooks/useFolders';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useModalQueryParams } from '../../hooks/useModalQueryParams';\nimport { useSelectionState } from '../../hooks/useSelectionState';\nimport {\n containsAssetFilter,\n getTrad,\n getAllowedFiles,\n moveElement,\n AllowedFiles,\n} from '../../utils';\nimport { EditAssetContent, Asset as EditAsset } from '../EditAssetDialog/EditAssetContent';\nimport { EditFolderContent } from '../EditFolderDialog/EditFolderDialog';\n\nimport {\n BrowseStep,\n FolderWithType,\n FileWithType,\n Filter as BrowseFilter,\n} from './BrowseStep/BrowseStep';\nimport { DialogFooter } from './DialogFooter';\nimport { SelectedStep } from './SelectedStep/SelectedStep';\n\nimport type { File as Asset, FilterCondition, Query } from '../../../../../shared/contracts/files';\nimport type { Folder, FolderDefinition } from '../../../../../shared/contracts/folders';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nconst LoadingBody = styled(Flex)`\n /* 80px are coming from the Tabs component that is not included in the ModalBody */\n min-height: ${() => `calc(60dvh + 8rem)`};\n`;\n\nexport interface FileRow extends Asset {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\ninterface AssetContentProps {\n allowedTypes?: AllowedTypes[];\n folderId?: number | null;\n onClose: () => void;\n onAddAsset: (arg?: { folderId: number | { id: number } | null | undefined }) => void;\n onAddFolder: ({ folderId }: { folderId: number | { id: number } | null | undefined }) => void;\n onChangeFolder: (folderId: number | null) => void;\n onValidate: (selectedAssets: Asset[]) => void;\n multiple?: boolean;\n trackedLocation?: string;\n initiallySelectedAssets?: Asset[];\n}\n\nexport const AssetContent = ({\n allowedTypes = [],\n folderId = null,\n onClose,\n onAddAsset,\n onAddFolder,\n onChangeFolder,\n onValidate,\n multiple = false,\n initiallySelectedAssets = [],\n trackedLocation,\n}: AssetContentProps) => {\n const [assetToEdit, setAssetToEdit] = React.useState<FileWithType | undefined>(undefined);\n const [folderToEdit, setFolderToEdit] = React.useState<FolderRow | undefined>(undefined);\n const { formatMessage } = useIntl();\n const {\n canRead,\n canCreate,\n isLoading: isLoadingPermissions,\n canUpdate,\n canCopyLink,\n canDownload,\n } = useMediaLibraryPermissions();\n\n const [\n { queryObject },\n {\n onChangeFilters,\n onChangePage,\n onChangePageSize,\n onChangeSort,\n onChangeSearch,\n onChangeFolder: onChangeFolderParam,\n },\n ] = useModalQueryParams({ folder: folderId });\n\n const {\n data: { pagination, results: assets } = {},\n isLoading: isLoadingAssets,\n error: errorAssets,\n } = useAssets({ skipWhen: !canRead, query: queryObject });\n\n const {\n data: folders,\n isLoading: isLoadingFolders,\n error: errorFolders,\n } = useFolders({\n enabled: canRead && !containsAssetFilter(queryObject!) && pagination?.page === 1,\n query: queryObject,\n });\n\n const [\n selectedAssets,\n { selectOne, selectOnly, setSelections, selectMultiple, deselectMultiple },\n ] = useSelectionState(['id'], initiallySelectedAssets);\n\n const handleSelectAllAssets = () => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (!multiple) {\n return undefined;\n }\n\n // selected files in current folder\n const alreadySelected = allowedAssets.filter(\n (asset) => selectedAssets.findIndex((selectedAsset) => selectedAsset.id === asset.id) !== -1\n );\n\n if (alreadySelected.length > 0) {\n deselectMultiple(alreadySelected);\n } else {\n selectMultiple(allowedAssets);\n }\n };\n\n const handleSelectAsset = (asset: Asset | FileRow | FolderRow) => {\n return multiple ? selectOne(asset as Asset) : selectOnly(asset as Asset);\n };\n\n const isLoading = isLoadingPermissions || isLoadingAssets || isLoadingFolders;\n const hasError = errorAssets || errorFolders;\n\n const [activeTab, setActiveTab] = React.useState(\n selectedAssets.length > 0 ? 'selected' : 'browse'\n );\n\n if (isLoading) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <LoadingBody justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </LoadingBody>\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (hasError) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <Page.Error />\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (!canRead) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <Page.NoPermissions />\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (assetToEdit) {\n return (\n <EditAssetContent\n onClose={() => setAssetToEdit(undefined)}\n asset={assetToEdit as EditAsset}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n trackedLocation={trackedLocation}\n />\n );\n }\n\n if (folderToEdit) {\n return (\n <EditFolderContent\n folder={folderToEdit as FolderDefinition}\n onClose={() => setFolderToEdit(undefined)}\n location=\"content-manager\"\n parentFolderId={queryObject?.folder as string | number | null | undefined}\n />\n );\n }\n\n const handleMoveItem = (hoverIndex: number, destIndex: number) => {\n const offset = destIndex - hoverIndex;\n const orderedAssetsClone = selectedAssets.slice();\n const nextAssets = moveElement<Asset>(orderedAssetsClone, hoverIndex, offset);\n setSelections(nextAssets);\n };\n\n const handleFolderChange = (folderId: number, folderPath?: string) => {\n onChangeFolder(folderId);\n if (onChangeFolderParam) {\n onChangeFolderParam(folderId, folderPath);\n }\n };\n\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <TabsRoot variant=\"simple\" value={activeTab} onValueChange={setActiveTab}>\n <Flex paddingLeft={8} paddingRight={8} paddingTop={6} justifyContent=\"space-between\">\n <Tabs.List>\n <Tabs.Trigger value=\"browse\">\n {formatMessage({\n id: getTrad('modal.nav.browse'),\n defaultMessage: 'Browse',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"selected\">\n {formatMessage({\n id: getTrad('modal.header.select-files'),\n defaultMessage: 'Selected files',\n })}\n <Badge marginLeft={2}>{selectedAssets.length}</Badge>\n </Tabs.Trigger>\n </Tabs.List>\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => onAddFolder({ folderId: queryObject?.folder })}\n >\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header.add-folder'),\n defaultMessage: 'Add folder',\n })}\n </Button>\n <Button onClick={() => onAddAsset({ folderId: queryObject?.folder })}>\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header.button'),\n defaultMessage: 'Add more assets',\n })}\n </Button>\n </Flex>\n </Flex>\n <Divider />\n <ScrollArea>\n <Modal.Body>\n <Tabs.Content value=\"browse\">\n <BrowseStep\n allowedTypes={allowedTypes}\n assets={assets!}\n canCreate={canCreate}\n canRead={canRead}\n folders={folders as FolderWithType[]}\n onSelectAsset={handleSelectAsset}\n selectedAssets={selectedAssets}\n multiple={multiple}\n onSelectAllAsset={handleSelectAllAssets}\n onEditAsset={setAssetToEdit}\n onEditFolder={setFolderToEdit}\n pagination={pagination!}\n queryObject={queryObject!}\n onAddAsset={onAddAsset}\n onChangeFilters={(filters: FilterCondition<string>[] | BrowseFilter[]) =>\n onChangeFilters!(filters as FilterCondition<string>[])\n }\n onChangeFolder={handleFolderChange}\n onChangePage={onChangePage!}\n onChangePageSize={onChangePageSize!}\n onChangeSort={(sort: string | undefined) => onChangeSort!(sort as Query['sort'])}\n onChangeSearch={onChangeSearch!}\n />\n </Tabs.Content>\n <Tabs.Content value=\"selected\">\n <SelectedStep\n selectedAssets={selectedAssets}\n onSelectAsset={handleSelectAsset}\n onReorderAsset={handleMoveItem}\n />\n </Tabs.Content>\n </Modal.Body>\n </ScrollArea>\n </TabsRoot>\n <DialogFooter onClose={onClose} onValidate={() => onValidate(selectedAssets)} />\n </>\n );\n};\n\ninterface AssetDialogProps extends AssetContentProps {\n open?: boolean;\n}\n\nexport const AssetDialog = ({ open = false, onClose, ...restProps }: AssetDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <AssetContent onClose={onClose} {...restProps} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nconst TabsRoot = styled(Tabs.Root)`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n`;\n"],"names":["LoadingBody","styled","Flex","AssetContent","allowedTypes","folderId","onClose","onAddAsset","onAddFolder","onChangeFolder","onValidate","multiple","initiallySelectedAssets","trackedLocation","assetToEdit","setAssetToEdit","React","useState","undefined","folderToEdit","setFolderToEdit","formatMessage","useIntl","canRead","canCreate","isLoading","isLoadingPermissions","canUpdate","canCopyLink","canDownload","useMediaLibraryPermissions","queryObject","onChangeFilters","onChangePage","onChangePageSize","onChangeSort","onChangeSearch","onChangeFolderParam","useModalQueryParams","folder","data","pagination","results","assets","isLoadingAssets","error","errorAssets","useAssets","skipWhen","query","folders","isLoadingFolders","errorFolders","useFolders","enabled","containsAssetFilter","page","selectedAssets","selectOne","selectOnly","setSelections","selectMultiple","deselectMultiple","useSelectionState","handleSelectAllAssets","allowedAssets","getAllowedFiles","alreadySelected","filter","asset","findIndex","selectedAsset","id","length","handleSelectAsset","hasError","activeTab","setActiveTab","_jsxs","_Fragment","_jsx","Modal","Header","Title","getTrad","defaultMessage","justifyContent","paddingTop","paddingBottom","Loader","DialogFooter","Page","Error","NoPermissions","EditAssetContent","EditFolderContent","location","parentFolderId","handleMoveItem","hoverIndex","destIndex","offset","orderedAssetsClone","slice","nextAssets","moveElement","handleFolderChange","folderPath","TabsRoot","variant","value","onValueChange","paddingLeft","paddingRight","Tabs","List","Trigger","Badge","marginLeft","gap","Button","onClick","Divider","ScrollArea","Body","Content","BrowseStep","onSelectAsset","onSelectAllAsset","onEditAsset","onEditFolder","filters","sort","SelectedStep","onReorderAsset","AssetDialog","open","restProps","Root","onOpenChange"],"mappings":"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"}
1
+ {"version":3,"file":"AssetDialog.js","sources":["../../../../../admin/src/legacy/components/AssetDialog/AssetDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page } from '@strapi/admin/strapi-admin';\nimport {\n Badge,\n Button,\n Divider,\n Flex,\n Loader,\n Modal,\n ScrollArea,\n Tabs,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useAssets } from '../../hooks/useAssets';\nimport { useFolders } from '../../hooks/useFolders';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useModalQueryParams } from '../../hooks/useModalQueryParams';\nimport { useSelectionState } from '../../hooks/useSelectionState';\nimport {\n containsAssetFilter,\n getTrad,\n getAllowedFiles,\n moveElement,\n AllowedFiles,\n} from '../../utils';\nimport { EditAssetContent, Asset as EditAsset } from '../EditAssetDialog/EditAssetContent';\nimport { EditFolderContent } from '../EditFolderDialog/EditFolderDialog';\n\nimport {\n BrowseStep,\n FolderWithType,\n FileWithType,\n Filter as BrowseFilter,\n} from './BrowseStep/BrowseStep';\nimport { DialogFooter } from './DialogFooter';\nimport { SelectedStep } from './SelectedStep/SelectedStep';\n\nimport type { File as Asset, FilterCondition, Query } from '../../../../../shared/contracts/files';\nimport type { Folder, FolderDefinition } from '../../../../../shared/contracts/folders';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nconst EMPTY_ALLOWED_TYPES: NonNullable<AssetContentProps['allowedTypes']> = [];\nconst EMPTY_INITIALLY_SELECTED_ASSETS: NonNullable<AssetContentProps['initiallySelectedAssets']> =\n [];\n\nconst LoadingBody = styled(Flex)`\n /* 80px are coming from the Tabs component that is not included in the ModalBody */\n min-height: ${() => `calc(60dvh + 8rem)`};\n`;\n\nexport interface FileRow extends Asset {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\ninterface AssetContentProps {\n allowedTypes?: AllowedTypes[];\n folderId?: number | null;\n onClose: () => void;\n onAddAsset: (arg?: { folderId: number | { id: number } | null | undefined }) => void;\n onAddFolder: ({ folderId }: { folderId: number | { id: number } | null | undefined }) => void;\n onChangeFolder: (folderId: number | null) => void;\n onValidate: (selectedAssets: Asset[]) => void;\n multiple?: boolean;\n trackedLocation?: string;\n initiallySelectedAssets?: Asset[];\n}\n\nexport const AssetContent = ({\n allowedTypes = EMPTY_ALLOWED_TYPES,\n folderId = null,\n onClose,\n onAddAsset,\n onAddFolder,\n onChangeFolder,\n onValidate,\n multiple = false,\n initiallySelectedAssets = EMPTY_INITIALLY_SELECTED_ASSETS,\n trackedLocation,\n}: AssetContentProps) => {\n const [assetToEdit, setAssetToEdit] = React.useState<FileWithType | undefined>(undefined);\n const [folderToEdit, setFolderToEdit] = React.useState<FolderRow | undefined>(undefined);\n const { formatMessage } = useIntl();\n const {\n canRead,\n canCreate,\n isLoading: isLoadingPermissions,\n canUpdate,\n canCopyLink,\n canDownload,\n } = useMediaLibraryPermissions();\n\n const [\n { queryObject },\n {\n onChangeFilters,\n onChangePage,\n onChangePageSize,\n onChangeSort,\n onChangeSearch,\n onChangeFolder: onChangeFolderParam,\n },\n ] = useModalQueryParams({ folder: folderId });\n\n const {\n data: { pagination, results: assets } = {},\n isLoading: isLoadingAssets,\n error: errorAssets,\n } = useAssets({ skipWhen: !canRead, query: queryObject });\n\n const {\n data: folders,\n isLoading: isLoadingFolders,\n error: errorFolders,\n } = useFolders({\n enabled: canRead && !containsAssetFilter(queryObject!) && pagination?.page === 1,\n query: queryObject,\n });\n\n const [\n selectedAssets,\n { selectOne, selectOnly, setSelections, selectMultiple, deselectMultiple },\n ] = useSelectionState(['id'], initiallySelectedAssets);\n\n const handleSelectAllAssets = () => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (!multiple) {\n return undefined;\n }\n\n // selected files in current folder\n const alreadySelected = allowedAssets.filter(\n (asset) => selectedAssets.findIndex((selectedAsset) => selectedAsset.id === asset.id) !== -1\n );\n\n if (alreadySelected.length > 0) {\n deselectMultiple(alreadySelected);\n } else {\n selectMultiple(allowedAssets);\n }\n };\n\n const handleSelectAsset = (asset: Asset | FileRow | FolderRow) => {\n return multiple ? selectOne(asset as Asset) : selectOnly(asset as Asset);\n };\n\n const isLoading = isLoadingPermissions || isLoadingAssets || isLoadingFolders;\n const hasError = errorAssets || errorFolders;\n\n const [activeTab, setActiveTab] = React.useState(\n selectedAssets.length > 0 ? 'selected' : 'browse'\n );\n\n if (isLoading) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <LoadingBody justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </LoadingBody>\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (hasError) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <Page.Error />\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (!canRead) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <Page.NoPermissions />\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (assetToEdit) {\n return (\n <EditAssetContent\n onClose={() => setAssetToEdit(undefined)}\n asset={assetToEdit as EditAsset}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n trackedLocation={trackedLocation}\n />\n );\n }\n\n if (folderToEdit) {\n return (\n <EditFolderContent\n folder={folderToEdit as FolderDefinition}\n onClose={() => setFolderToEdit(undefined)}\n location=\"content-manager\"\n parentFolderId={queryObject?.folder as string | number | null | undefined}\n />\n );\n }\n\n const handleMoveItem = (hoverIndex: number, destIndex: number) => {\n const offset = destIndex - hoverIndex;\n const orderedAssetsClone = selectedAssets.slice();\n const nextAssets = moveElement<Asset>(orderedAssetsClone, hoverIndex, offset);\n setSelections(nextAssets);\n };\n\n const handleFolderChange = (folderId: number, folderPath?: string) => {\n onChangeFolder(folderId);\n if (onChangeFolderParam) {\n onChangeFolderParam(folderId, folderPath);\n }\n };\n\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <TabsRoot variant=\"simple\" value={activeTab} onValueChange={setActiveTab}>\n <Flex paddingLeft={8} paddingRight={8} paddingTop={6} justifyContent=\"space-between\">\n <Tabs.List>\n <Tabs.Trigger value=\"browse\">\n {formatMessage({\n id: getTrad('modal.nav.browse'),\n defaultMessage: 'Browse',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"selected\">\n {formatMessage({\n id: getTrad('modal.header.select-files'),\n defaultMessage: 'Selected files',\n })}\n <Badge marginLeft={2}>{selectedAssets.length}</Badge>\n </Tabs.Trigger>\n </Tabs.List>\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => onAddFolder({ folderId: queryObject?.folder })}\n >\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header.add-folder'),\n defaultMessage: 'Add folder',\n })}\n </Button>\n <Button onClick={() => onAddAsset({ folderId: queryObject?.folder })}>\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header.button'),\n defaultMessage: 'Add more assets',\n })}\n </Button>\n </Flex>\n </Flex>\n <Divider />\n <ScrollArea>\n <Modal.Body>\n <Tabs.Content value=\"browse\">\n <BrowseStep\n allowedTypes={allowedTypes}\n assets={assets!}\n canCreate={canCreate}\n canRead={canRead}\n folders={folders as FolderWithType[]}\n onSelectAsset={handleSelectAsset}\n selectedAssets={selectedAssets}\n multiple={multiple}\n onSelectAllAsset={handleSelectAllAssets}\n onEditAsset={setAssetToEdit}\n onEditFolder={setFolderToEdit}\n pagination={pagination!}\n queryObject={queryObject!}\n onAddAsset={onAddAsset}\n onChangeFilters={(filters: FilterCondition<string>[] | BrowseFilter[]) =>\n onChangeFilters!(filters as FilterCondition<string>[])\n }\n onChangeFolder={handleFolderChange}\n onChangePage={onChangePage!}\n onChangePageSize={onChangePageSize!}\n onChangeSort={(sort: string | undefined) => onChangeSort!(sort as Query['sort'])}\n onChangeSearch={onChangeSearch!}\n />\n </Tabs.Content>\n <Tabs.Content value=\"selected\">\n <SelectedStep\n selectedAssets={selectedAssets}\n onSelectAsset={handleSelectAsset}\n onReorderAsset={handleMoveItem}\n />\n </Tabs.Content>\n </Modal.Body>\n </ScrollArea>\n </TabsRoot>\n <DialogFooter onClose={onClose} onValidate={() => onValidate(selectedAssets)} />\n </>\n );\n};\n\ninterface AssetDialogProps extends AssetContentProps {\n open?: boolean;\n}\n\nexport const AssetDialog = ({ open = false, onClose, ...restProps }: AssetDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <AssetContent onClose={onClose} {...restProps} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nconst TabsRoot = styled(Tabs.Root)`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n`;\n"],"names":["EMPTY_ALLOWED_TYPES","EMPTY_INITIALLY_SELECTED_ASSETS","LoadingBody","styled","Flex","AssetContent","allowedTypes","folderId","onClose","onAddAsset","onAddFolder","onChangeFolder","onValidate","multiple","initiallySelectedAssets","trackedLocation","assetToEdit","setAssetToEdit","React","useState","undefined","folderToEdit","setFolderToEdit","formatMessage","useIntl","canRead","canCreate","isLoading","isLoadingPermissions","canUpdate","canCopyLink","canDownload","useMediaLibraryPermissions","queryObject","onChangeFilters","onChangePage","onChangePageSize","onChangeSort","onChangeSearch","onChangeFolderParam","useModalQueryParams","folder","data","pagination","results","assets","isLoadingAssets","error","errorAssets","useAssets","skipWhen","query","folders","isLoadingFolders","errorFolders","useFolders","enabled","containsAssetFilter","page","selectedAssets","selectOne","selectOnly","setSelections","selectMultiple","deselectMultiple","useSelectionState","handleSelectAllAssets","allowedAssets","getAllowedFiles","alreadySelected","filter","asset","findIndex","selectedAsset","id","length","handleSelectAsset","hasError","activeTab","setActiveTab","_jsxs","_Fragment","_jsx","Modal","Header","Title","getTrad","defaultMessage","justifyContent","paddingTop","paddingBottom","Loader","DialogFooter","Page","Error","NoPermissions","EditAssetContent","EditFolderContent","location","parentFolderId","handleMoveItem","hoverIndex","destIndex","offset","orderedAssetsClone","slice","nextAssets","moveElement","handleFolderChange","folderPath","TabsRoot","variant","value","onValueChange","paddingLeft","paddingRight","Tabs","List","Trigger","Badge","marginLeft","gap","Button","onClick","Divider","ScrollArea","Body","Content","BrowseStep","onSelectAsset","onSelectAllAsset","onEditAsset","onEditFolder","filters","sort","SelectedStep","onReorderAsset","AssetDialog","open","restProps","Root","onOpenChange"],"mappings":"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"}
@@ -24,11 +24,13 @@ import { DialogFooter } from './DialogFooter.mjs';
24
24
  import { SelectedStep } from './SelectedStep/SelectedStep.mjs';
25
25
 
26
26
  // TODO: find a better naming convention for the file that was an index file before
27
+ const EMPTY_ALLOWED_TYPES = [];
28
+ const EMPTY_INITIALLY_SELECTED_ASSETS = [];
27
29
  const LoadingBody = styled(Flex)`
28
30
  /* 80px are coming from the Tabs component that is not included in the ModalBody */
29
31
  min-height: ${()=>`calc(60dvh + 8rem)`};
30
32
  `;
31
- const AssetContent = ({ allowedTypes = [], folderId = null, onClose, onAddAsset, onAddFolder, onChangeFolder, onValidate, multiple = false, initiallySelectedAssets = [], trackedLocation })=>{
33
+ const AssetContent = ({ allowedTypes = EMPTY_ALLOWED_TYPES, folderId = null, onClose, onAddAsset, onAddFolder, onChangeFolder, onValidate, multiple = false, initiallySelectedAssets = EMPTY_INITIALLY_SELECTED_ASSETS, trackedLocation })=>{
32
34
  const [assetToEdit, setAssetToEdit] = React.useState(undefined);
33
35
  const [folderToEdit, setFolderToEdit] = React.useState(undefined);
34
36
  const { formatMessage } = useIntl();
@@ -1 +1 @@
1
- {"version":3,"file":"AssetDialog.mjs","sources":["../../../../../admin/src/legacy/components/AssetDialog/AssetDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page } from '@strapi/admin/strapi-admin';\nimport {\n Badge,\n Button,\n Divider,\n Flex,\n Loader,\n Modal,\n ScrollArea,\n Tabs,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useAssets } from '../../hooks/useAssets';\nimport { useFolders } from '../../hooks/useFolders';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useModalQueryParams } from '../../hooks/useModalQueryParams';\nimport { useSelectionState } from '../../hooks/useSelectionState';\nimport {\n containsAssetFilter,\n getTrad,\n getAllowedFiles,\n moveElement,\n AllowedFiles,\n} from '../../utils';\nimport { EditAssetContent, Asset as EditAsset } from '../EditAssetDialog/EditAssetContent';\nimport { EditFolderContent } from '../EditFolderDialog/EditFolderDialog';\n\nimport {\n BrowseStep,\n FolderWithType,\n FileWithType,\n Filter as BrowseFilter,\n} from './BrowseStep/BrowseStep';\nimport { DialogFooter } from './DialogFooter';\nimport { SelectedStep } from './SelectedStep/SelectedStep';\n\nimport type { File as Asset, FilterCondition, Query } from '../../../../../shared/contracts/files';\nimport type { Folder, FolderDefinition } from '../../../../../shared/contracts/folders';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nconst LoadingBody = styled(Flex)`\n /* 80px are coming from the Tabs component that is not included in the ModalBody */\n min-height: ${() => `calc(60dvh + 8rem)`};\n`;\n\nexport interface FileRow extends Asset {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\ninterface AssetContentProps {\n allowedTypes?: AllowedTypes[];\n folderId?: number | null;\n onClose: () => void;\n onAddAsset: (arg?: { folderId: number | { id: number } | null | undefined }) => void;\n onAddFolder: ({ folderId }: { folderId: number | { id: number } | null | undefined }) => void;\n onChangeFolder: (folderId: number | null) => void;\n onValidate: (selectedAssets: Asset[]) => void;\n multiple?: boolean;\n trackedLocation?: string;\n initiallySelectedAssets?: Asset[];\n}\n\nexport const AssetContent = ({\n allowedTypes = [],\n folderId = null,\n onClose,\n onAddAsset,\n onAddFolder,\n onChangeFolder,\n onValidate,\n multiple = false,\n initiallySelectedAssets = [],\n trackedLocation,\n}: AssetContentProps) => {\n const [assetToEdit, setAssetToEdit] = React.useState<FileWithType | undefined>(undefined);\n const [folderToEdit, setFolderToEdit] = React.useState<FolderRow | undefined>(undefined);\n const { formatMessage } = useIntl();\n const {\n canRead,\n canCreate,\n isLoading: isLoadingPermissions,\n canUpdate,\n canCopyLink,\n canDownload,\n } = useMediaLibraryPermissions();\n\n const [\n { queryObject },\n {\n onChangeFilters,\n onChangePage,\n onChangePageSize,\n onChangeSort,\n onChangeSearch,\n onChangeFolder: onChangeFolderParam,\n },\n ] = useModalQueryParams({ folder: folderId });\n\n const {\n data: { pagination, results: assets } = {},\n isLoading: isLoadingAssets,\n error: errorAssets,\n } = useAssets({ skipWhen: !canRead, query: queryObject });\n\n const {\n data: folders,\n isLoading: isLoadingFolders,\n error: errorFolders,\n } = useFolders({\n enabled: canRead && !containsAssetFilter(queryObject!) && pagination?.page === 1,\n query: queryObject,\n });\n\n const [\n selectedAssets,\n { selectOne, selectOnly, setSelections, selectMultiple, deselectMultiple },\n ] = useSelectionState(['id'], initiallySelectedAssets);\n\n const handleSelectAllAssets = () => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (!multiple) {\n return undefined;\n }\n\n // selected files in current folder\n const alreadySelected = allowedAssets.filter(\n (asset) => selectedAssets.findIndex((selectedAsset) => selectedAsset.id === asset.id) !== -1\n );\n\n if (alreadySelected.length > 0) {\n deselectMultiple(alreadySelected);\n } else {\n selectMultiple(allowedAssets);\n }\n };\n\n const handleSelectAsset = (asset: Asset | FileRow | FolderRow) => {\n return multiple ? selectOne(asset as Asset) : selectOnly(asset as Asset);\n };\n\n const isLoading = isLoadingPermissions || isLoadingAssets || isLoadingFolders;\n const hasError = errorAssets || errorFolders;\n\n const [activeTab, setActiveTab] = React.useState(\n selectedAssets.length > 0 ? 'selected' : 'browse'\n );\n\n if (isLoading) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <LoadingBody justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </LoadingBody>\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (hasError) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <Page.Error />\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (!canRead) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <Page.NoPermissions />\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (assetToEdit) {\n return (\n <EditAssetContent\n onClose={() => setAssetToEdit(undefined)}\n asset={assetToEdit as EditAsset}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n trackedLocation={trackedLocation}\n />\n );\n }\n\n if (folderToEdit) {\n return (\n <EditFolderContent\n folder={folderToEdit as FolderDefinition}\n onClose={() => setFolderToEdit(undefined)}\n location=\"content-manager\"\n parentFolderId={queryObject?.folder as string | number | null | undefined}\n />\n );\n }\n\n const handleMoveItem = (hoverIndex: number, destIndex: number) => {\n const offset = destIndex - hoverIndex;\n const orderedAssetsClone = selectedAssets.slice();\n const nextAssets = moveElement<Asset>(orderedAssetsClone, hoverIndex, offset);\n setSelections(nextAssets);\n };\n\n const handleFolderChange = (folderId: number, folderPath?: string) => {\n onChangeFolder(folderId);\n if (onChangeFolderParam) {\n onChangeFolderParam(folderId, folderPath);\n }\n };\n\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <TabsRoot variant=\"simple\" value={activeTab} onValueChange={setActiveTab}>\n <Flex paddingLeft={8} paddingRight={8} paddingTop={6} justifyContent=\"space-between\">\n <Tabs.List>\n <Tabs.Trigger value=\"browse\">\n {formatMessage({\n id: getTrad('modal.nav.browse'),\n defaultMessage: 'Browse',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"selected\">\n {formatMessage({\n id: getTrad('modal.header.select-files'),\n defaultMessage: 'Selected files',\n })}\n <Badge marginLeft={2}>{selectedAssets.length}</Badge>\n </Tabs.Trigger>\n </Tabs.List>\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => onAddFolder({ folderId: queryObject?.folder })}\n >\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header.add-folder'),\n defaultMessage: 'Add folder',\n })}\n </Button>\n <Button onClick={() => onAddAsset({ folderId: queryObject?.folder })}>\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header.button'),\n defaultMessage: 'Add more assets',\n })}\n </Button>\n </Flex>\n </Flex>\n <Divider />\n <ScrollArea>\n <Modal.Body>\n <Tabs.Content value=\"browse\">\n <BrowseStep\n allowedTypes={allowedTypes}\n assets={assets!}\n canCreate={canCreate}\n canRead={canRead}\n folders={folders as FolderWithType[]}\n onSelectAsset={handleSelectAsset}\n selectedAssets={selectedAssets}\n multiple={multiple}\n onSelectAllAsset={handleSelectAllAssets}\n onEditAsset={setAssetToEdit}\n onEditFolder={setFolderToEdit}\n pagination={pagination!}\n queryObject={queryObject!}\n onAddAsset={onAddAsset}\n onChangeFilters={(filters: FilterCondition<string>[] | BrowseFilter[]) =>\n onChangeFilters!(filters as FilterCondition<string>[])\n }\n onChangeFolder={handleFolderChange}\n onChangePage={onChangePage!}\n onChangePageSize={onChangePageSize!}\n onChangeSort={(sort: string | undefined) => onChangeSort!(sort as Query['sort'])}\n onChangeSearch={onChangeSearch!}\n />\n </Tabs.Content>\n <Tabs.Content value=\"selected\">\n <SelectedStep\n selectedAssets={selectedAssets}\n onSelectAsset={handleSelectAsset}\n onReorderAsset={handleMoveItem}\n />\n </Tabs.Content>\n </Modal.Body>\n </ScrollArea>\n </TabsRoot>\n <DialogFooter onClose={onClose} onValidate={() => onValidate(selectedAssets)} />\n </>\n );\n};\n\ninterface AssetDialogProps extends AssetContentProps {\n open?: boolean;\n}\n\nexport const AssetDialog = ({ open = false, onClose, ...restProps }: AssetDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <AssetContent onClose={onClose} {...restProps} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nconst TabsRoot = styled(Tabs.Root)`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n`;\n"],"names":["LoadingBody","styled","Flex","AssetContent","allowedTypes","folderId","onClose","onAddAsset","onAddFolder","onChangeFolder","onValidate","multiple","initiallySelectedAssets","trackedLocation","assetToEdit","setAssetToEdit","React","useState","undefined","folderToEdit","setFolderToEdit","formatMessage","useIntl","canRead","canCreate","isLoading","isLoadingPermissions","canUpdate","canCopyLink","canDownload","useMediaLibraryPermissions","queryObject","onChangeFilters","onChangePage","onChangePageSize","onChangeSort","onChangeSearch","onChangeFolderParam","useModalQueryParams","folder","data","pagination","results","assets","isLoadingAssets","error","errorAssets","useAssets","skipWhen","query","folders","isLoadingFolders","errorFolders","useFolders","enabled","containsAssetFilter","page","selectedAssets","selectOne","selectOnly","setSelections","selectMultiple","deselectMultiple","useSelectionState","handleSelectAllAssets","allowedAssets","getAllowedFiles","alreadySelected","filter","asset","findIndex","selectedAsset","id","length","handleSelectAsset","hasError","activeTab","setActiveTab","_jsxs","_Fragment","_jsx","Modal","Header","Title","getTrad","defaultMessage","justifyContent","paddingTop","paddingBottom","Loader","DialogFooter","Page","Error","NoPermissions","EditAssetContent","EditFolderContent","location","parentFolderId","handleMoveItem","hoverIndex","destIndex","offset","orderedAssetsClone","slice","nextAssets","moveElement","handleFolderChange","folderPath","TabsRoot","variant","value","onValueChange","paddingLeft","paddingRight","Tabs","List","Trigger","Badge","marginLeft","gap","Button","onClick","Divider","ScrollArea","Body","Content","BrowseStep","onSelectAsset","onSelectAllAsset","onEditAsset","onEditFolder","filters","sort","SelectedStep","onReorderAsset","AssetDialog","open","restProps","Root","onOpenChange"],"mappings":"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"}
1
+ {"version":3,"file":"AssetDialog.mjs","sources":["../../../../../admin/src/legacy/components/AssetDialog/AssetDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { Page } from '@strapi/admin/strapi-admin';\nimport {\n Badge,\n Button,\n Divider,\n Flex,\n Loader,\n Modal,\n ScrollArea,\n Tabs,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useAssets } from '../../hooks/useAssets';\nimport { useFolders } from '../../hooks/useFolders';\nimport { useMediaLibraryPermissions } from '../../hooks/useMediaLibraryPermissions';\nimport { useModalQueryParams } from '../../hooks/useModalQueryParams';\nimport { useSelectionState } from '../../hooks/useSelectionState';\nimport {\n containsAssetFilter,\n getTrad,\n getAllowedFiles,\n moveElement,\n AllowedFiles,\n} from '../../utils';\nimport { EditAssetContent, Asset as EditAsset } from '../EditAssetDialog/EditAssetContent';\nimport { EditFolderContent } from '../EditFolderDialog/EditFolderDialog';\n\nimport {\n BrowseStep,\n FolderWithType,\n FileWithType,\n Filter as BrowseFilter,\n} from './BrowseStep/BrowseStep';\nimport { DialogFooter } from './DialogFooter';\nimport { SelectedStep } from './SelectedStep/SelectedStep';\n\nimport type { File as Asset, FilterCondition, Query } from '../../../../../shared/contracts/files';\nimport type { Folder, FolderDefinition } from '../../../../../shared/contracts/folders';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nconst EMPTY_ALLOWED_TYPES: NonNullable<AssetContentProps['allowedTypes']> = [];\nconst EMPTY_INITIALLY_SELECTED_ASSETS: NonNullable<AssetContentProps['initiallySelectedAssets']> =\n [];\n\nconst LoadingBody = styled(Flex)`\n /* 80px are coming from the Tabs component that is not included in the ModalBody */\n min-height: ${() => `calc(60dvh + 8rem)`};\n`;\n\nexport interface FileRow extends Asset {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface FolderRow extends Folder {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\ninterface AssetContentProps {\n allowedTypes?: AllowedTypes[];\n folderId?: number | null;\n onClose: () => void;\n onAddAsset: (arg?: { folderId: number | { id: number } | null | undefined }) => void;\n onAddFolder: ({ folderId }: { folderId: number | { id: number } | null | undefined }) => void;\n onChangeFolder: (folderId: number | null) => void;\n onValidate: (selectedAssets: Asset[]) => void;\n multiple?: boolean;\n trackedLocation?: string;\n initiallySelectedAssets?: Asset[];\n}\n\nexport const AssetContent = ({\n allowedTypes = EMPTY_ALLOWED_TYPES,\n folderId = null,\n onClose,\n onAddAsset,\n onAddFolder,\n onChangeFolder,\n onValidate,\n multiple = false,\n initiallySelectedAssets = EMPTY_INITIALLY_SELECTED_ASSETS,\n trackedLocation,\n}: AssetContentProps) => {\n const [assetToEdit, setAssetToEdit] = React.useState<FileWithType | undefined>(undefined);\n const [folderToEdit, setFolderToEdit] = React.useState<FolderRow | undefined>(undefined);\n const { formatMessage } = useIntl();\n const {\n canRead,\n canCreate,\n isLoading: isLoadingPermissions,\n canUpdate,\n canCopyLink,\n canDownload,\n } = useMediaLibraryPermissions();\n\n const [\n { queryObject },\n {\n onChangeFilters,\n onChangePage,\n onChangePageSize,\n onChangeSort,\n onChangeSearch,\n onChangeFolder: onChangeFolderParam,\n },\n ] = useModalQueryParams({ folder: folderId });\n\n const {\n data: { pagination, results: assets } = {},\n isLoading: isLoadingAssets,\n error: errorAssets,\n } = useAssets({ skipWhen: !canRead, query: queryObject });\n\n const {\n data: folders,\n isLoading: isLoadingFolders,\n error: errorFolders,\n } = useFolders({\n enabled: canRead && !containsAssetFilter(queryObject!) && pagination?.page === 1,\n query: queryObject,\n });\n\n const [\n selectedAssets,\n { selectOne, selectOnly, setSelections, selectMultiple, deselectMultiple },\n ] = useSelectionState(['id'], initiallySelectedAssets);\n\n const handleSelectAllAssets = () => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (!multiple) {\n return undefined;\n }\n\n // selected files in current folder\n const alreadySelected = allowedAssets.filter(\n (asset) => selectedAssets.findIndex((selectedAsset) => selectedAsset.id === asset.id) !== -1\n );\n\n if (alreadySelected.length > 0) {\n deselectMultiple(alreadySelected);\n } else {\n selectMultiple(allowedAssets);\n }\n };\n\n const handleSelectAsset = (asset: Asset | FileRow | FolderRow) => {\n return multiple ? selectOne(asset as Asset) : selectOnly(asset as Asset);\n };\n\n const isLoading = isLoadingPermissions || isLoadingAssets || isLoadingFolders;\n const hasError = errorAssets || errorFolders;\n\n const [activeTab, setActiveTab] = React.useState(\n selectedAssets.length > 0 ? 'selected' : 'browse'\n );\n\n if (isLoading) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <LoadingBody justifyContent=\"center\" paddingTop={4} paddingBottom={4}>\n <Loader>\n {formatMessage({\n id: getTrad('content.isLoading'),\n defaultMessage: 'Content is loading.',\n })}\n </Loader>\n </LoadingBody>\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (hasError) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <Page.Error />\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (!canRead) {\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n <Page.NoPermissions />\n <DialogFooter onClose={onClose} />\n </>\n );\n }\n\n if (assetToEdit) {\n return (\n <EditAssetContent\n onClose={() => setAssetToEdit(undefined)}\n asset={assetToEdit as EditAsset}\n canUpdate={canUpdate}\n canCopyLink={canCopyLink}\n canDownload={canDownload}\n trackedLocation={trackedLocation}\n />\n );\n }\n\n if (folderToEdit) {\n return (\n <EditFolderContent\n folder={folderToEdit as FolderDefinition}\n onClose={() => setFolderToEdit(undefined)}\n location=\"content-manager\"\n parentFolderId={queryObject?.folder as string | number | null | undefined}\n />\n );\n }\n\n const handleMoveItem = (hoverIndex: number, destIndex: number) => {\n const offset = destIndex - hoverIndex;\n const orderedAssetsClone = selectedAssets.slice();\n const nextAssets = moveElement<Asset>(orderedAssetsClone, hoverIndex, offset);\n setSelections(nextAssets);\n };\n\n const handleFolderChange = (folderId: number, folderPath?: string) => {\n onChangeFolder(folderId);\n if (onChangeFolderParam) {\n onChangeFolderParam(folderId, folderPath);\n }\n };\n\n return (\n <>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Modal.Title>\n </Modal.Header>\n\n <TabsRoot variant=\"simple\" value={activeTab} onValueChange={setActiveTab}>\n <Flex paddingLeft={8} paddingRight={8} paddingTop={6} justifyContent=\"space-between\">\n <Tabs.List>\n <Tabs.Trigger value=\"browse\">\n {formatMessage({\n id: getTrad('modal.nav.browse'),\n defaultMessage: 'Browse',\n })}\n </Tabs.Trigger>\n <Tabs.Trigger value=\"selected\">\n {formatMessage({\n id: getTrad('modal.header.select-files'),\n defaultMessage: 'Selected files',\n })}\n <Badge marginLeft={2}>{selectedAssets.length}</Badge>\n </Tabs.Trigger>\n </Tabs.List>\n <Flex gap={2}>\n <Button\n variant=\"secondary\"\n onClick={() => onAddFolder({ folderId: queryObject?.folder })}\n >\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header.add-folder'),\n defaultMessage: 'Add folder',\n })}\n </Button>\n <Button onClick={() => onAddAsset({ folderId: queryObject?.folder })}>\n {formatMessage({\n id: getTrad('modal.upload-list.sub-header.button'),\n defaultMessage: 'Add more assets',\n })}\n </Button>\n </Flex>\n </Flex>\n <Divider />\n <ScrollArea>\n <Modal.Body>\n <Tabs.Content value=\"browse\">\n <BrowseStep\n allowedTypes={allowedTypes}\n assets={assets!}\n canCreate={canCreate}\n canRead={canRead}\n folders={folders as FolderWithType[]}\n onSelectAsset={handleSelectAsset}\n selectedAssets={selectedAssets}\n multiple={multiple}\n onSelectAllAsset={handleSelectAllAssets}\n onEditAsset={setAssetToEdit}\n onEditFolder={setFolderToEdit}\n pagination={pagination!}\n queryObject={queryObject!}\n onAddAsset={onAddAsset}\n onChangeFilters={(filters: FilterCondition<string>[] | BrowseFilter[]) =>\n onChangeFilters!(filters as FilterCondition<string>[])\n }\n onChangeFolder={handleFolderChange}\n onChangePage={onChangePage!}\n onChangePageSize={onChangePageSize!}\n onChangeSort={(sort: string | undefined) => onChangeSort!(sort as Query['sort'])}\n onChangeSearch={onChangeSearch!}\n />\n </Tabs.Content>\n <Tabs.Content value=\"selected\">\n <SelectedStep\n selectedAssets={selectedAssets}\n onSelectAsset={handleSelectAsset}\n onReorderAsset={handleMoveItem}\n />\n </Tabs.Content>\n </Modal.Body>\n </ScrollArea>\n </TabsRoot>\n <DialogFooter onClose={onClose} onValidate={() => onValidate(selectedAssets)} />\n </>\n );\n};\n\ninterface AssetDialogProps extends AssetContentProps {\n open?: boolean;\n}\n\nexport const AssetDialog = ({ open = false, onClose, ...restProps }: AssetDialogProps) => {\n return (\n <Modal.Root open={open} onOpenChange={onClose}>\n <Modal.Content>\n <AssetContent onClose={onClose} {...restProps} />\n </Modal.Content>\n </Modal.Root>\n );\n};\n\nconst TabsRoot = styled(Tabs.Root)`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n`;\n"],"names":["EMPTY_ALLOWED_TYPES","EMPTY_INITIALLY_SELECTED_ASSETS","LoadingBody","styled","Flex","AssetContent","allowedTypes","folderId","onClose","onAddAsset","onAddFolder","onChangeFolder","onValidate","multiple","initiallySelectedAssets","trackedLocation","assetToEdit","setAssetToEdit","React","useState","undefined","folderToEdit","setFolderToEdit","formatMessage","useIntl","canRead","canCreate","isLoading","isLoadingPermissions","canUpdate","canCopyLink","canDownload","useMediaLibraryPermissions","queryObject","onChangeFilters","onChangePage","onChangePageSize","onChangeSort","onChangeSearch","onChangeFolderParam","useModalQueryParams","folder","data","pagination","results","assets","isLoadingAssets","error","errorAssets","useAssets","skipWhen","query","folders","isLoadingFolders","errorFolders","useFolders","enabled","containsAssetFilter","page","selectedAssets","selectOne","selectOnly","setSelections","selectMultiple","deselectMultiple","useSelectionState","handleSelectAllAssets","allowedAssets","getAllowedFiles","alreadySelected","filter","asset","findIndex","selectedAsset","id","length","handleSelectAsset","hasError","activeTab","setActiveTab","_jsxs","_Fragment","_jsx","Modal","Header","Title","getTrad","defaultMessage","justifyContent","paddingTop","paddingBottom","Loader","DialogFooter","Page","Error","NoPermissions","EditAssetContent","EditFolderContent","location","parentFolderId","handleMoveItem","hoverIndex","destIndex","offset","orderedAssetsClone","slice","nextAssets","moveElement","handleFolderChange","folderPath","TabsRoot","variant","value","onValueChange","paddingLeft","paddingRight","Tabs","List","Trigger","Badge","marginLeft","gap","Button","onClick","Divider","ScrollArea","Body","Content","BrowseStep","onSelectAsset","onSelectAllAsset","onEditAsset","onEditFolder","filters","sort","SelectedStep","onReorderAsset","AssetDialog","open","restProps","Root","onOpenChange"],"mappings":"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"}
@@ -33,6 +33,8 @@ var SearchAsset = require('./SearchAsset/SearchAsset.js');
33
33
  var isSelectable = require('./utils/isSelectable.js');
34
34
 
35
35
  // TODO: find a better naming convention for the file that was an index file before
36
+ const EMPTY_ALLOWED_TYPES = [];
37
+ const EMPTY_FOLDERS = [];
36
38
  const TypographyMaxWidth = styledComponents.styled(designSystem.Typography)`
37
39
  max-width: 100%;
38
40
  `;
@@ -43,7 +45,7 @@ const ActionContainer = styledComponents.styled(designSystem.Box)`
43
45
  }
44
46
  }
45
47
  `;
46
- const BrowseStep = ({ allowedTypes = [], assets: rawAssets, canCreate, canRead, folders = [], multiple = false, onAddAsset, onChangeFilters, onChangePage, onChangePageSize, onChangeSearch, onChangeSort, onChangeFolder, onEditAsset, onEditFolder, onSelectAllAsset, onSelectAsset, pagination, queryObject, selectedAssets })=>{
48
+ const BrowseStep = ({ allowedTypes = EMPTY_ALLOWED_TYPES, assets: rawAssets, canCreate, canRead, folders = EMPTY_FOLDERS, multiple = false, onAddAsset, onChangeFilters, onChangePage, onChangePageSize, onChangeSearch, onChangeSort, onChangeFolder, onEditAsset, onEditFolder, onSelectAllAsset, onSelectAsset, pagination, queryObject, selectedAssets })=>{
47
49
  const { formatMessage } = reactIntl.useIntl();
48
50
  const [view, setView] = usePersistentState.usePersistentState(constants.localStorageKeys.modalView, constants.viewOptions.GRID);
49
51
  const isGridView = view === constants.viewOptions.GRID;