@strapi/upload 5.52.2 → 5.53.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 (285) hide show
  1. package/dist/admin/components/AssetCard/AssetCard.js +1 -0
  2. package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
  3. package/dist/admin/components/AssetCard/AssetCard.mjs +1 -0
  4. package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
  5. package/dist/admin/components/AssetCard/AssetCardBase.js +1 -0
  6. package/dist/admin/components/AssetCard/AssetCardBase.js.map +1 -1
  7. package/dist/admin/components/AssetCard/AssetCardBase.mjs +1 -0
  8. package/dist/admin/components/AssetCard/AssetCardBase.mjs.map +1 -1
  9. package/dist/admin/components/AssetCard/ImageAssetCard.js +1 -0
  10. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
  11. package/dist/admin/components/AssetCard/ImageAssetCard.mjs +1 -0
  12. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
  13. package/dist/admin/components/AssetCard/UploadingAssetCard.js +1 -0
  14. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
  15. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +1 -0
  16. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
  17. package/dist/admin/components/AssetCard/VideoAssetCard.js +1 -0
  18. package/dist/admin/components/AssetCard/VideoAssetCard.js.map +1 -1
  19. package/dist/admin/components/AssetCard/VideoAssetCard.mjs +1 -0
  20. package/dist/admin/components/AssetCard/VideoAssetCard.mjs.map +1 -1
  21. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +1 -0
  22. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  23. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +1 -0
  24. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  25. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +1 -0
  26. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
  27. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +1 -0
  28. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
  29. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +1 -0
  30. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js.map +1 -1
  31. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +1 -0
  32. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs.map +1 -1
  33. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +1 -0
  34. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js.map +1 -1
  35. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +1 -0
  36. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs.map +1 -1
  37. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +1 -0
  38. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
  39. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +1 -0
  40. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
  41. package/dist/admin/components/EditAssetDialog/EditAssetContent.js +1 -0
  42. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  43. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +1 -0
  44. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  45. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +1 -0
  46. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
  47. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +1 -0
  48. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
  49. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +1 -0
  50. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js.map +1 -1
  51. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +1 -0
  52. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs.map +1 -1
  53. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js +1 -0
  54. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.js.map +1 -1
  55. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs +1 -0
  56. package/dist/admin/components/EditAssetDialog/PreviewBox/FocalPointActions.mjs.map +1 -1
  57. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +1 -0
  58. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
  59. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +1 -0
  60. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
  61. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +1 -0
  62. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js.map +1 -1
  63. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +1 -0
  64. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs.map +1 -1
  65. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +1 -0
  66. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js.map +1 -1
  67. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +1 -0
  68. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs.map +1 -1
  69. package/dist/admin/components/FilterList/FilterList.js +2 -2
  70. package/dist/admin/components/FilterList/FilterList.js.map +1 -1
  71. package/dist/admin/components/FilterList/FilterList.mjs +2 -2
  72. package/dist/admin/components/FilterList/FilterList.mjs.map +1 -1
  73. package/dist/admin/components/FilterPopover/FilterPopover.js +4 -4
  74. package/dist/admin/components/FilterPopover/FilterPopover.js.map +1 -1
  75. package/dist/admin/components/FilterPopover/FilterPopover.mjs +4 -4
  76. package/dist/admin/components/FilterPopover/FilterPopover.mjs.map +1 -1
  77. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +1 -0
  78. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
  79. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +1 -0
  80. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
  81. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +1 -0
  82. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js.map +1 -1
  83. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +1 -0
  84. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs.map +1 -1
  85. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +4 -10
  86. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
  87. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +4 -10
  88. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
  89. package/dist/admin/components/SortPicker/SortPicker.js +1 -0
  90. package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
  91. package/dist/admin/components/SortPicker/SortPicker.mjs +1 -0
  92. package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
  93. package/dist/admin/components/TableList/CellContent.js +1 -0
  94. package/dist/admin/components/TableList/CellContent.js.map +1 -1
  95. package/dist/admin/components/TableList/CellContent.mjs +1 -0
  96. package/dist/admin/components/TableList/CellContent.mjs.map +1 -1
  97. package/dist/admin/components/TableList/PreviewCell.js +1 -0
  98. package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
  99. package/dist/admin/components/TableList/PreviewCell.mjs +1 -0
  100. package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
  101. package/dist/admin/components/TableList/TableList.js +1 -0
  102. package/dist/admin/components/TableList/TableList.js.map +1 -1
  103. package/dist/admin/components/TableList/TableList.mjs +1 -0
  104. package/dist/admin/components/TableList/TableList.mjs.map +1 -1
  105. package/dist/admin/components/TableList/TableRows.js +1 -0
  106. package/dist/admin/components/TableList/TableRows.js.map +1 -1
  107. package/dist/admin/components/TableList/TableRows.mjs +1 -0
  108. package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
  109. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +1 -0
  110. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js.map +1 -1
  111. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +1 -0
  112. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs.map +1 -1
  113. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +9 -21
  114. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
  115. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +9 -21
  116. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
  117. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +1 -0
  118. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js.map +1 -1
  119. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +1 -0
  120. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs.map +1 -1
  121. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +1 -0
  122. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
  123. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +1 -0
  124. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
  125. package/dist/admin/constants.js +1 -0
  126. package/dist/admin/constants.js.map +1 -1
  127. package/dist/admin/constants.mjs +1 -0
  128. package/dist/admin/constants.mjs.map +1 -1
  129. package/dist/admin/future/components/Drawer.js +17 -3
  130. package/dist/admin/future/components/Drawer.js.map +1 -1
  131. package/dist/admin/future/components/Drawer.mjs +17 -3
  132. package/dist/admin/future/components/Drawer.mjs.map +1 -1
  133. package/dist/admin/future/components/UploadProgressDialog.js +46 -12
  134. package/dist/admin/future/components/UploadProgressDialog.js.map +1 -1
  135. package/dist/admin/future/components/UploadProgressDialog.mjs +47 -13
  136. package/dist/admin/future/components/UploadProgressDialog.mjs.map +1 -1
  137. package/dist/admin/future/pages/Assets/AssetsPage.js +27 -2
  138. package/dist/admin/future/pages/Assets/AssetsPage.js.map +1 -1
  139. package/dist/admin/future/pages/Assets/AssetsPage.mjs +27 -2
  140. package/dist/admin/future/pages/Assets/AssetsPage.mjs.map +1 -1
  141. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.js +9 -1
  142. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.js.map +1 -1
  143. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.mjs +9 -1
  144. package/dist/admin/future/pages/Assets/components/AssetActionsMenu.mjs.map +1 -1
  145. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js +19 -4
  146. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.js.map +1 -1
  147. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs +19 -4
  148. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetCropEditor.mjs.map +1 -1
  149. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js +64 -10
  150. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.js.map +1 -1
  151. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs +66 -12
  152. package/dist/admin/future/pages/Assets/components/AssetDetails/AssetDetailsDrawer.mjs.map +1 -1
  153. package/dist/admin/future/pages/Assets/components/AssetsGrid.js +17 -5
  154. package/dist/admin/future/pages/Assets/components/AssetsGrid.js.map +1 -1
  155. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs +17 -5
  156. package/dist/admin/future/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  157. package/dist/admin/future/pages/Assets/components/AssetsTable.js +56 -28
  158. package/dist/admin/future/pages/Assets/components/AssetsTable.js.map +1 -1
  159. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs +58 -30
  160. package/dist/admin/future/pages/Assets/components/AssetsTable.mjs.map +1 -1
  161. package/dist/admin/future/pages/Assets/components/BulkActionsBar.js +203 -83
  162. package/dist/admin/future/pages/Assets/components/BulkActionsBar.js.map +1 -1
  163. package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs +207 -87
  164. package/dist/admin/future/pages/Assets/components/BulkActionsBar.mjs.map +1 -1
  165. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js +21 -3
  166. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.js.map +1 -1
  167. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs +21 -3
  168. package/dist/admin/future/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -1
  169. package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.js +181 -0
  170. package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.js.map +1 -0
  171. package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.mjs +179 -0
  172. package/dist/admin/future/pages/Assets/components/MainAreaContextMenu.mjs.map +1 -0
  173. package/dist/admin/future/pages/Assets/constants.js +22 -0
  174. package/dist/admin/future/pages/Assets/constants.js.map +1 -1
  175. package/dist/admin/future/pages/Assets/constants.mjs +19 -1
  176. package/dist/admin/future/pages/Assets/constants.mjs.map +1 -1
  177. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js +4 -3
  178. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.js.map +1 -1
  179. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs +5 -4
  180. package/dist/admin/future/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -1
  181. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js +105 -12
  182. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.js.map +1 -1
  183. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs +106 -13
  184. package/dist/admin/future/pages/Assets/hooks/useInfiniteAssets.mjs.map +1 -1
  185. package/dist/admin/future/pages/Assets/hooks/useListFilters.js +5 -5
  186. package/dist/admin/future/pages/Assets/hooks/useListFilters.js.map +1 -1
  187. package/dist/admin/future/pages/Assets/hooks/useListFilters.mjs +6 -6
  188. package/dist/admin/future/pages/Assets/hooks/useListFilters.mjs.map +1 -1
  189. package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.js +111 -0
  190. package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.js.map +1 -0
  191. package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.mjs +109 -0
  192. package/dist/admin/future/pages/Assets/hooks/useListScrollRestoration.mjs.map +1 -0
  193. package/dist/admin/future/pages/Assets/hooks/useListSort.js +10 -10
  194. package/dist/admin/future/pages/Assets/hooks/useListSort.js.map +1 -1
  195. package/dist/admin/future/pages/Assets/hooks/useListSort.mjs +11 -11
  196. package/dist/admin/future/pages/Assets/hooks/useListSort.mjs.map +1 -1
  197. package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.js +86 -0
  198. package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.js.map +1 -0
  199. package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.mjs +83 -0
  200. package/dist/admin/future/pages/Assets/utils/mergeUploadedAssets.mjs.map +1 -0
  201. package/dist/admin/future/pages/Assets/utils/renderedKeys.js +19 -0
  202. package/dist/admin/future/pages/Assets/utils/renderedKeys.js.map +1 -0
  203. package/dist/admin/future/pages/Assets/utils/renderedKeys.mjs +17 -0
  204. package/dist/admin/future/pages/Assets/utils/renderedKeys.mjs.map +1 -0
  205. package/dist/admin/future/services/api.js +19 -6
  206. package/dist/admin/future/services/api.js.map +1 -1
  207. package/dist/admin/future/services/api.mjs +19 -6
  208. package/dist/admin/future/services/api.mjs.map +1 -1
  209. package/dist/admin/future/store/uploadProgress.js +55 -2
  210. package/dist/admin/future/store/uploadProgress.js.map +1 -1
  211. package/dist/admin/future/store/uploadProgress.mjs +53 -3
  212. package/dist/admin/future/store/uploadProgress.mjs.map +1 -1
  213. package/dist/admin/index.js +1 -0
  214. package/dist/admin/index.js.map +1 -1
  215. package/dist/admin/index.mjs +1 -0
  216. package/dist/admin/index.mjs.map +1 -1
  217. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +1 -0
  218. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
  219. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +1 -0
  220. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
  221. package/dist/admin/pages/App/MediaLibrary.js +7 -9
  222. package/dist/admin/pages/App/MediaLibrary.js.map +1 -1
  223. package/dist/admin/pages/App/MediaLibrary.mjs +8 -10
  224. package/dist/admin/pages/App/MediaLibrary.mjs.map +1 -1
  225. package/dist/admin/pages/App/components/BulkActions.js +1 -0
  226. package/dist/admin/pages/App/components/BulkActions.js.map +1 -1
  227. package/dist/admin/pages/App/components/BulkActions.mjs +1 -0
  228. package/dist/admin/pages/App/components/BulkActions.mjs.map +1 -1
  229. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js +1 -0
  230. package/dist/admin/pages/App/components/EmptyOrNoPermissions.js.map +1 -1
  231. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs +1 -0
  232. package/dist/admin/pages/App/components/EmptyOrNoPermissions.mjs.map +1 -1
  233. package/dist/admin/pages/App/components/Filters.js +8 -8
  234. package/dist/admin/pages/App/components/Filters.js.map +1 -1
  235. package/dist/admin/pages/App/components/Filters.mjs +9 -9
  236. package/dist/admin/pages/App/components/Filters.mjs.map +1 -1
  237. package/dist/admin/pages/App/components/Header.js +1 -1
  238. package/dist/admin/pages/App/components/Header.js.map +1 -1
  239. package/dist/admin/pages/App/components/Header.mjs +2 -2
  240. package/dist/admin/pages/App/components/Header.mjs.map +1 -1
  241. package/dist/admin/src/future/components/Drawer.d.ts +10 -0
  242. package/dist/admin/src/future/pages/Assets/components/AssetsGrid.d.ts +4 -1
  243. package/dist/admin/src/future/pages/Assets/components/AssetsTable.d.ts +4 -1
  244. package/dist/admin/src/future/pages/Assets/components/BulkActionsBar.d.ts +8 -1
  245. package/dist/admin/src/future/pages/Assets/components/MainAreaContextMenu.d.ts +28 -0
  246. package/dist/admin/src/future/pages/Assets/constants.d.ts +20 -0
  247. package/dist/admin/src/future/pages/Assets/hooks/useInfiniteAssets.d.ts +4 -0
  248. package/dist/admin/src/future/pages/Assets/hooks/useListScrollRestoration.d.ts +15 -0
  249. package/dist/admin/src/future/pages/Assets/utils/mergeUploadedAssets.d.ts +35 -0
  250. package/dist/admin/src/future/pages/Assets/utils/renderedKeys.d.ts +19 -0
  251. package/dist/admin/src/future/store/uploadProgress.d.ts +51 -0
  252. package/dist/admin/src/utils/index.d.ts +1 -0
  253. package/dist/admin/src/utils/rawFileToAsset.d.ts +2 -2
  254. package/dist/admin/src/utils/resolveFileMime.d.ts +13 -0
  255. package/dist/admin/translations/en.json.js +5 -1
  256. package/dist/admin/translations/en.json.js.map +1 -1
  257. package/dist/admin/translations/en.json.mjs +5 -1
  258. package/dist/admin/translations/en.json.mjs.map +1 -1
  259. package/dist/admin/utils/getFolderURL.js +2 -1
  260. package/dist/admin/utils/getFolderURL.js.map +1 -1
  261. package/dist/admin/utils/getFolderURL.mjs +2 -1
  262. package/dist/admin/utils/getFolderURL.mjs.map +1 -1
  263. package/dist/admin/utils/rawFileToAsset.js +5 -3
  264. package/dist/admin/utils/rawFileToAsset.js.map +1 -1
  265. package/dist/admin/utils/rawFileToAsset.mjs +5 -3
  266. package/dist/admin/utils/rawFileToAsset.mjs.map +1 -1
  267. package/dist/admin/utils/resolveFileMime.js +69 -0
  268. package/dist/admin/utils/resolveFileMime.js.map +1 -0
  269. package/dist/admin/utils/resolveFileMime.mjs +64 -0
  270. package/dist/admin/utils/resolveFileMime.mjs.map +1 -0
  271. package/dist/admin/utils/urlsToAssets.js +8 -4
  272. package/dist/admin/utils/urlsToAssets.js.map +1 -1
  273. package/dist/admin/utils/urlsToAssets.mjs +8 -4
  274. package/dist/admin/utils/urlsToAssets.mjs.map +1 -1
  275. package/dist/server/services/upload.js +20 -8
  276. package/dist/server/services/upload.js.map +1 -1
  277. package/dist/server/services/upload.mjs +20 -8
  278. package/dist/server/services/upload.mjs.map +1 -1
  279. package/dist/server/src/index.d.ts +2 -0
  280. package/dist/server/src/index.d.ts.map +1 -1
  281. package/dist/server/src/services/index.d.ts +2 -0
  282. package/dist/server/src/services/index.d.ts.map +1 -1
  283. package/dist/server/src/services/upload.d.ts +2 -0
  284. package/dist/server/src/services/upload.d.ts.map +1 -1
  285. package/package.json +6 -6
@@ -5,6 +5,7 @@ var enums = require('../../enums.js');
5
5
  var createAssetUrl = require('../../utils/createAssetUrl.js');
6
6
  require('byte-size');
7
7
  require('date-fns');
8
+ require('@strapi/admin/strapi-admin');
8
9
  require('qs');
9
10
  var getFileExtension = require('../../utils/getFileExtension.js');
10
11
  var prefixFileUrlWithBackendUrl = require('../../utils/prefixFileUrlWithBackendUrl.js');
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCard.js","sources":["../../../../admin/src/components/AssetCard/AssetCard.tsx"],"sourcesContent":["import { ASSET_TYPES } from '../../enums';\nimport { createAssetUrl, getFileExtension, prefixFileUrlWithBackendUrl } from '../../utils';\n\nimport { AudioAssetCard } from './AudioAssetCard';\nimport { DocAssetCard } from './DocAssetCard';\nimport { ImageAssetCard } from './ImageAssetCard';\nimport { VideoAssetCard } from './VideoAssetCard';\n\nimport type { File } from '../../../../shared/contracts/files';\n\ntype FileSelectable = File & { isSelectable?: boolean };\n\nexport type AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\ninterface AssetCardProps {\n asset: FileSelectable;\n local?: boolean;\n onSelect?: (asset: FileSelectable) => void;\n onEdit?: (asset: FileSelectable) => void;\n onRemove?: (asset: FileSelectable) => void;\n isSelected?: boolean;\n size?: 'S' | 'M';\n allowedTypes?: AllowedTypes[];\n alt?: string;\n className?: string;\n}\n\nexport const AssetCard = ({\n asset,\n isSelected = false,\n onSelect,\n onEdit,\n onRemove,\n size = 'M',\n local = false,\n className,\n}: AssetCardProps) => {\n const handleSelect = onSelect ? () => onSelect(asset) : undefined;\n\n const commonAssetCardProps = {\n id: asset.id,\n isSelectable: asset.isSelectable,\n extension: getFileExtension(asset.ext)!,\n name: asset.name,\n url: local ? asset.url! : createAssetUrl(asset, true)!,\n mime: asset.mime!,\n onEdit: onEdit ? () => onEdit(asset) : undefined,\n onSelect: handleSelect,\n onRemove: onRemove ? () => onRemove(asset) : undefined,\n selected: isSelected,\n size,\n className,\n };\n\n if (asset.mime?.includes(ASSET_TYPES.Video)) {\n return <VideoAssetCard {...commonAssetCardProps} />;\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Image)) {\n return (\n <ImageAssetCard\n alt={asset.alternativeText || asset.name}\n height={asset.height!}\n thumbnail={prefixFileUrlWithBackendUrl(asset?.formats?.thumbnail?.url || asset.url)!}\n width={asset.width!}\n updatedAt={asset.updatedAt}\n isUrlSigned={asset?.isUrlSigned || false}\n // Only signed remote URLs need crossOrigin: they are loaded without a\n // cache-buster, so thumbnail and preview share a cache entry and must\n // both opt into CORS to avoid a cache collision. Public/unsigned remote\n // URLs are cache-busted, so they must not require a bucket CORS rule to\n // render. See #26581.\n crossOrigin={!local && asset?.isUrlSigned ? 'anonymous' : undefined}\n {...commonAssetCardProps}\n />\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Audio)) {\n return <AudioAssetCard {...commonAssetCardProps} />;\n }\n\n return <DocAssetCard {...commonAssetCardProps} />;\n};\n"],"names":["AssetCard","asset","isSelected","onSelect","onEdit","onRemove","size","local","className","handleSelect","undefined","commonAssetCardProps","id","isSelectable","extension","getFileExtension","ext","name","url","createAssetUrl","mime","selected","includes","ASSET_TYPES","Video","_jsx","VideoAssetCard","Image","ImageAssetCard","alt","alternativeText","height","thumbnail","prefixFileUrlWithBackendUrl","formats","width","updatedAt","isUrlSigned","crossOrigin","Audio","AudioAssetCard","DocAssetCard"],"mappings":";;;;;;;;;;;;;;;;AA2BO,MAAMA,YAAY,CAAC,EACxBC,KAAK,EACLC,UAAAA,GAAa,KAAK,EAClBC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,IAAAA,GAAO,GAAG,EACVC,KAAAA,GAAQ,KAAK,EACbC,SAAS,EACM,GAAA;AACf,IAAA,MAAMC,YAAAA,GAAeN,QAAAA,GAAW,IAAMA,QAAAA,CAASF,KAAAA,CAAAA,GAASS,SAAAA;AAExD,IAAA,MAAMC,oBAAAA,GAAuB;AAC3BC,QAAAA,EAAAA,EAAIX,MAAMW,EAAE;AACZC,QAAAA,YAAAA,EAAcZ,MAAMY,YAAY;QAChCC,SAAAA,EAAWC,iCAAAA,CAAiBd,MAAMe,GAAG,CAAA;AACrCC,QAAAA,IAAAA,EAAMhB,MAAMgB,IAAI;AAChBC,QAAAA,GAAAA,EAAKX,KAAAA,GAAQN,KAAAA,CAAMiB,GAAG,GAAIC,8BAAelB,KAAAA,EAAO,IAAA,CAAA;AAChDmB,QAAAA,IAAAA,EAAMnB,MAAMmB,IAAI;QAChBhB,MAAAA,EAAQA,MAAAA,GAAS,IAAMA,MAAAA,CAAOH,KAAAA,CAAAA,GAASS,SAAAA;QACvCP,QAAAA,EAAUM,YAAAA;QACVJ,QAAAA,EAAUA,QAAAA,GAAW,IAAMA,QAAAA,CAASJ,KAAAA,CAAAA,GAASS,SAAAA;QAC7CW,QAAAA,EAAUnB,UAAAA;AACVI,QAAAA,IAAAA;AACAE,QAAAA;AACF,KAAA;AAEA,IAAA,IAAIP,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,iBAAAA,CAAYC,KAAK,CAAA,EAAG;AAC3C,QAAA,qBAAOC,cAAA,CAACC,6BAAAA,EAAAA;AAAgB,YAAA,GAAGf;;AAC7B,IAAA;AAEA,IAAA,IAAIV,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,iBAAAA,CAAYI,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACEF,cAAA,CAACG,6BAAAA,EAAAA;AACCC,YAAAA,GAAAA,EAAK5B,KAAAA,CAAM6B,eAAe,IAAI7B,KAAAA,CAAMgB,IAAI;AACxCc,YAAAA,MAAAA,EAAQ9B,MAAM8B,MAAM;AACpBC,YAAAA,SAAAA,EAAWC,wDAA4BhC,KAAAA,EAAOiC,OAAAA,EAASF,SAAAA,EAAWd,GAAAA,IAAOjB,MAAMiB,GAAG,CAAA;AAClFiB,YAAAA,KAAAA,EAAOlC,MAAMkC,KAAK;AAClBC,YAAAA,SAAAA,EAAWnC,MAAMmC,SAAS;AAC1BC,YAAAA,WAAAA,EAAapC,OAAOoC,WAAAA,IAAe,KAAA;;;;;;AAMnCC,YAAAA,WAAAA,EAAa,CAAC/B,KAAAA,IAASN,KAAAA,EAAOoC,WAAAA,GAAc,WAAA,GAAc3B,SAAAA;AACzD,YAAA,GAAGC;;AAGV,IAAA;AAEA,IAAA,IAAIV,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,iBAAAA,CAAYgB,KAAK,CAAA,EAAG;AAC3C,QAAA,qBAAOd,cAAA,CAACe,6BAAAA,EAAAA;AAAgB,YAAA,GAAG7B;;AAC7B,IAAA;AAEA,IAAA,qBAAOc,cAAA,CAACgB,yBAAAA,EAAAA;AAAc,QAAA,GAAG9B;;AAC3B;;;;"}
1
+ {"version":3,"file":"AssetCard.js","sources":["../../../../admin/src/components/AssetCard/AssetCard.tsx"],"sourcesContent":["import { ASSET_TYPES } from '../../enums';\nimport { createAssetUrl, getFileExtension, prefixFileUrlWithBackendUrl } from '../../utils';\n\nimport { AudioAssetCard } from './AudioAssetCard';\nimport { DocAssetCard } from './DocAssetCard';\nimport { ImageAssetCard } from './ImageAssetCard';\nimport { VideoAssetCard } from './VideoAssetCard';\n\nimport type { File } from '../../../../shared/contracts/files';\n\ntype FileSelectable = File & { isSelectable?: boolean };\n\nexport type AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\ninterface AssetCardProps {\n asset: FileSelectable;\n local?: boolean;\n onSelect?: (asset: FileSelectable) => void;\n onEdit?: (asset: FileSelectable) => void;\n onRemove?: (asset: FileSelectable) => void;\n isSelected?: boolean;\n size?: 'S' | 'M';\n allowedTypes?: AllowedTypes[];\n alt?: string;\n className?: string;\n}\n\nexport const AssetCard = ({\n asset,\n isSelected = false,\n onSelect,\n onEdit,\n onRemove,\n size = 'M',\n local = false,\n className,\n}: AssetCardProps) => {\n const handleSelect = onSelect ? () => onSelect(asset) : undefined;\n\n const commonAssetCardProps = {\n id: asset.id,\n isSelectable: asset.isSelectable,\n extension: getFileExtension(asset.ext)!,\n name: asset.name,\n url: local ? asset.url! : createAssetUrl(asset, true)!,\n mime: asset.mime!,\n onEdit: onEdit ? () => onEdit(asset) : undefined,\n onSelect: handleSelect,\n onRemove: onRemove ? () => onRemove(asset) : undefined,\n selected: isSelected,\n size,\n className,\n };\n\n if (asset.mime?.includes(ASSET_TYPES.Video)) {\n return <VideoAssetCard {...commonAssetCardProps} />;\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Image)) {\n return (\n <ImageAssetCard\n alt={asset.alternativeText || asset.name}\n height={asset.height!}\n thumbnail={prefixFileUrlWithBackendUrl(asset?.formats?.thumbnail?.url || asset.url)!}\n width={asset.width!}\n updatedAt={asset.updatedAt}\n isUrlSigned={asset?.isUrlSigned || false}\n // Only signed remote URLs need crossOrigin: they are loaded without a\n // cache-buster, so thumbnail and preview share a cache entry and must\n // both opt into CORS to avoid a cache collision. Public/unsigned remote\n // URLs are cache-busted, so they must not require a bucket CORS rule to\n // render. See #26581.\n crossOrigin={!local && asset?.isUrlSigned ? 'anonymous' : undefined}\n {...commonAssetCardProps}\n />\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Audio)) {\n return <AudioAssetCard {...commonAssetCardProps} />;\n }\n\n return <DocAssetCard {...commonAssetCardProps} />;\n};\n"],"names":["AssetCard","asset","isSelected","onSelect","onEdit","onRemove","size","local","className","handleSelect","undefined","commonAssetCardProps","id","isSelectable","extension","getFileExtension","ext","name","url","createAssetUrl","mime","selected","includes","ASSET_TYPES","Video","_jsx","VideoAssetCard","Image","ImageAssetCard","alt","alternativeText","height","thumbnail","prefixFileUrlWithBackendUrl","formats","width","updatedAt","isUrlSigned","crossOrigin","Audio","AudioAssetCard","DocAssetCard"],"mappings":";;;;;;;;;;;;;;;;;AA2BO,MAAMA,YAAY,CAAC,EACxBC,KAAK,EACLC,UAAAA,GAAa,KAAK,EAClBC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,IAAAA,GAAO,GAAG,EACVC,KAAAA,GAAQ,KAAK,EACbC,SAAS,EACM,GAAA;AACf,IAAA,MAAMC,YAAAA,GAAeN,QAAAA,GAAW,IAAMA,QAAAA,CAASF,KAAAA,CAAAA,GAASS,SAAAA;AAExD,IAAA,MAAMC,oBAAAA,GAAuB;AAC3BC,QAAAA,EAAAA,EAAIX,MAAMW,EAAE;AACZC,QAAAA,YAAAA,EAAcZ,MAAMY,YAAY;QAChCC,SAAAA,EAAWC,iCAAAA,CAAiBd,MAAMe,GAAG,CAAA;AACrCC,QAAAA,IAAAA,EAAMhB,MAAMgB,IAAI;AAChBC,QAAAA,GAAAA,EAAKX,KAAAA,GAAQN,KAAAA,CAAMiB,GAAG,GAAIC,8BAAelB,KAAAA,EAAO,IAAA,CAAA;AAChDmB,QAAAA,IAAAA,EAAMnB,MAAMmB,IAAI;QAChBhB,MAAAA,EAAQA,MAAAA,GAAS,IAAMA,MAAAA,CAAOH,KAAAA,CAAAA,GAASS,SAAAA;QACvCP,QAAAA,EAAUM,YAAAA;QACVJ,QAAAA,EAAUA,QAAAA,GAAW,IAAMA,QAAAA,CAASJ,KAAAA,CAAAA,GAASS,SAAAA;QAC7CW,QAAAA,EAAUnB,UAAAA;AACVI,QAAAA,IAAAA;AACAE,QAAAA;AACF,KAAA;AAEA,IAAA,IAAIP,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,iBAAAA,CAAYC,KAAK,CAAA,EAAG;AAC3C,QAAA,qBAAOC,cAAA,CAACC,6BAAAA,EAAAA;AAAgB,YAAA,GAAGf;;AAC7B,IAAA;AAEA,IAAA,IAAIV,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,iBAAAA,CAAYI,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACEF,cAAA,CAACG,6BAAAA,EAAAA;AACCC,YAAAA,GAAAA,EAAK5B,KAAAA,CAAM6B,eAAe,IAAI7B,KAAAA,CAAMgB,IAAI;AACxCc,YAAAA,MAAAA,EAAQ9B,MAAM8B,MAAM;AACpBC,YAAAA,SAAAA,EAAWC,wDAA4BhC,KAAAA,EAAOiC,OAAAA,EAASF,SAAAA,EAAWd,GAAAA,IAAOjB,MAAMiB,GAAG,CAAA;AAClFiB,YAAAA,KAAAA,EAAOlC,MAAMkC,KAAK;AAClBC,YAAAA,SAAAA,EAAWnC,MAAMmC,SAAS;AAC1BC,YAAAA,WAAAA,EAAapC,OAAOoC,WAAAA,IAAe,KAAA;;;;;;AAMnCC,YAAAA,WAAAA,EAAa,CAAC/B,KAAAA,IAASN,KAAAA,EAAOoC,WAAAA,GAAc,WAAA,GAAc3B,SAAAA;AACzD,YAAA,GAAGC;;AAGV,IAAA;AAEA,IAAA,IAAIV,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,iBAAAA,CAAYgB,KAAK,CAAA,EAAG;AAC3C,QAAA,qBAAOd,cAAA,CAACe,6BAAAA,EAAAA;AAAgB,YAAA,GAAG7B;;AAC7B,IAAA;AAEA,IAAA,qBAAOc,cAAA,CAACgB,yBAAAA,EAAAA;AAAc,QAAA,GAAG9B;;AAC3B;;;;"}
@@ -3,6 +3,7 @@ import { ASSET_TYPES } from '../../enums.mjs';
3
3
  import { createAssetUrl } from '../../utils/createAssetUrl.mjs';
4
4
  import 'byte-size';
5
5
  import 'date-fns';
6
+ import '@strapi/admin/strapi-admin';
6
7
  import 'qs';
7
8
  import { getFileExtension } from '../../utils/getFileExtension.mjs';
8
9
  import { prefixFileUrlWithBackendUrl } from '../../utils/prefixFileUrlWithBackendUrl.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCard.mjs","sources":["../../../../admin/src/components/AssetCard/AssetCard.tsx"],"sourcesContent":["import { ASSET_TYPES } from '../../enums';\nimport { createAssetUrl, getFileExtension, prefixFileUrlWithBackendUrl } from '../../utils';\n\nimport { AudioAssetCard } from './AudioAssetCard';\nimport { DocAssetCard } from './DocAssetCard';\nimport { ImageAssetCard } from './ImageAssetCard';\nimport { VideoAssetCard } from './VideoAssetCard';\n\nimport type { File } from '../../../../shared/contracts/files';\n\ntype FileSelectable = File & { isSelectable?: boolean };\n\nexport type AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\ninterface AssetCardProps {\n asset: FileSelectable;\n local?: boolean;\n onSelect?: (asset: FileSelectable) => void;\n onEdit?: (asset: FileSelectable) => void;\n onRemove?: (asset: FileSelectable) => void;\n isSelected?: boolean;\n size?: 'S' | 'M';\n allowedTypes?: AllowedTypes[];\n alt?: string;\n className?: string;\n}\n\nexport const AssetCard = ({\n asset,\n isSelected = false,\n onSelect,\n onEdit,\n onRemove,\n size = 'M',\n local = false,\n className,\n}: AssetCardProps) => {\n const handleSelect = onSelect ? () => onSelect(asset) : undefined;\n\n const commonAssetCardProps = {\n id: asset.id,\n isSelectable: asset.isSelectable,\n extension: getFileExtension(asset.ext)!,\n name: asset.name,\n url: local ? asset.url! : createAssetUrl(asset, true)!,\n mime: asset.mime!,\n onEdit: onEdit ? () => onEdit(asset) : undefined,\n onSelect: handleSelect,\n onRemove: onRemove ? () => onRemove(asset) : undefined,\n selected: isSelected,\n size,\n className,\n };\n\n if (asset.mime?.includes(ASSET_TYPES.Video)) {\n return <VideoAssetCard {...commonAssetCardProps} />;\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Image)) {\n return (\n <ImageAssetCard\n alt={asset.alternativeText || asset.name}\n height={asset.height!}\n thumbnail={prefixFileUrlWithBackendUrl(asset?.formats?.thumbnail?.url || asset.url)!}\n width={asset.width!}\n updatedAt={asset.updatedAt}\n isUrlSigned={asset?.isUrlSigned || false}\n // Only signed remote URLs need crossOrigin: they are loaded without a\n // cache-buster, so thumbnail and preview share a cache entry and must\n // both opt into CORS to avoid a cache collision. Public/unsigned remote\n // URLs are cache-busted, so they must not require a bucket CORS rule to\n // render. See #26581.\n crossOrigin={!local && asset?.isUrlSigned ? 'anonymous' : undefined}\n {...commonAssetCardProps}\n />\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Audio)) {\n return <AudioAssetCard {...commonAssetCardProps} />;\n }\n\n return <DocAssetCard {...commonAssetCardProps} />;\n};\n"],"names":["AssetCard","asset","isSelected","onSelect","onEdit","onRemove","size","local","className","handleSelect","undefined","commonAssetCardProps","id","isSelectable","extension","getFileExtension","ext","name","url","createAssetUrl","mime","selected","includes","ASSET_TYPES","Video","_jsx","VideoAssetCard","Image","ImageAssetCard","alt","alternativeText","height","thumbnail","prefixFileUrlWithBackendUrl","formats","width","updatedAt","isUrlSigned","crossOrigin","Audio","AudioAssetCard","DocAssetCard"],"mappings":";;;;;;;;;;;;;;AA2BO,MAAMA,YAAY,CAAC,EACxBC,KAAK,EACLC,UAAAA,GAAa,KAAK,EAClBC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,IAAAA,GAAO,GAAG,EACVC,KAAAA,GAAQ,KAAK,EACbC,SAAS,EACM,GAAA;AACf,IAAA,MAAMC,YAAAA,GAAeN,QAAAA,GAAW,IAAMA,QAAAA,CAASF,KAAAA,CAAAA,GAASS,SAAAA;AAExD,IAAA,MAAMC,oBAAAA,GAAuB;AAC3BC,QAAAA,EAAAA,EAAIX,MAAMW,EAAE;AACZC,QAAAA,YAAAA,EAAcZ,MAAMY,YAAY;QAChCC,SAAAA,EAAWC,gBAAAA,CAAiBd,MAAMe,GAAG,CAAA;AACrCC,QAAAA,IAAAA,EAAMhB,MAAMgB,IAAI;AAChBC,QAAAA,GAAAA,EAAKX,KAAAA,GAAQN,KAAAA,CAAMiB,GAAG,GAAIC,eAAelB,KAAAA,EAAO,IAAA,CAAA;AAChDmB,QAAAA,IAAAA,EAAMnB,MAAMmB,IAAI;QAChBhB,MAAAA,EAAQA,MAAAA,GAAS,IAAMA,MAAAA,CAAOH,KAAAA,CAAAA,GAASS,SAAAA;QACvCP,QAAAA,EAAUM,YAAAA;QACVJ,QAAAA,EAAUA,QAAAA,GAAW,IAAMA,QAAAA,CAASJ,KAAAA,CAAAA,GAASS,SAAAA;QAC7CW,QAAAA,EAAUnB,UAAAA;AACVI,QAAAA,IAAAA;AACAE,QAAAA;AACF,KAAA;AAEA,IAAA,IAAIP,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,WAAAA,CAAYC,KAAK,CAAA,EAAG;AAC3C,QAAA,qBAAOC,GAAA,CAACC,cAAAA,EAAAA;AAAgB,YAAA,GAAGf;;AAC7B,IAAA;AAEA,IAAA,IAAIV,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,WAAAA,CAAYI,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACEF,GAAA,CAACG,cAAAA,EAAAA;AACCC,YAAAA,GAAAA,EAAK5B,KAAAA,CAAM6B,eAAe,IAAI7B,KAAAA,CAAMgB,IAAI;AACxCc,YAAAA,MAAAA,EAAQ9B,MAAM8B,MAAM;AACpBC,YAAAA,SAAAA,EAAWC,4BAA4BhC,KAAAA,EAAOiC,OAAAA,EAASF,SAAAA,EAAWd,GAAAA,IAAOjB,MAAMiB,GAAG,CAAA;AAClFiB,YAAAA,KAAAA,EAAOlC,MAAMkC,KAAK;AAClBC,YAAAA,SAAAA,EAAWnC,MAAMmC,SAAS;AAC1BC,YAAAA,WAAAA,EAAapC,OAAOoC,WAAAA,IAAe,KAAA;;;;;;AAMnCC,YAAAA,WAAAA,EAAa,CAAC/B,KAAAA,IAASN,KAAAA,EAAOoC,WAAAA,GAAc,WAAA,GAAc3B,SAAAA;AACzD,YAAA,GAAGC;;AAGV,IAAA;AAEA,IAAA,IAAIV,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,WAAAA,CAAYgB,KAAK,CAAA,EAAG;AAC3C,QAAA,qBAAOd,GAAA,CAACe,cAAAA,EAAAA;AAAgB,YAAA,GAAG7B;;AAC7B,IAAA;AAEA,IAAA,qBAAOc,GAAA,CAACgB,YAAAA,EAAAA;AAAc,QAAA,GAAG9B;;AAC3B;;;;"}
1
+ {"version":3,"file":"AssetCard.mjs","sources":["../../../../admin/src/components/AssetCard/AssetCard.tsx"],"sourcesContent":["import { ASSET_TYPES } from '../../enums';\nimport { createAssetUrl, getFileExtension, prefixFileUrlWithBackendUrl } from '../../utils';\n\nimport { AudioAssetCard } from './AudioAssetCard';\nimport { DocAssetCard } from './DocAssetCard';\nimport { ImageAssetCard } from './ImageAssetCard';\nimport { VideoAssetCard } from './VideoAssetCard';\n\nimport type { File } from '../../../../shared/contracts/files';\n\ntype FileSelectable = File & { isSelectable?: boolean };\n\nexport type AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\ninterface AssetCardProps {\n asset: FileSelectable;\n local?: boolean;\n onSelect?: (asset: FileSelectable) => void;\n onEdit?: (asset: FileSelectable) => void;\n onRemove?: (asset: FileSelectable) => void;\n isSelected?: boolean;\n size?: 'S' | 'M';\n allowedTypes?: AllowedTypes[];\n alt?: string;\n className?: string;\n}\n\nexport const AssetCard = ({\n asset,\n isSelected = false,\n onSelect,\n onEdit,\n onRemove,\n size = 'M',\n local = false,\n className,\n}: AssetCardProps) => {\n const handleSelect = onSelect ? () => onSelect(asset) : undefined;\n\n const commonAssetCardProps = {\n id: asset.id,\n isSelectable: asset.isSelectable,\n extension: getFileExtension(asset.ext)!,\n name: asset.name,\n url: local ? asset.url! : createAssetUrl(asset, true)!,\n mime: asset.mime!,\n onEdit: onEdit ? () => onEdit(asset) : undefined,\n onSelect: handleSelect,\n onRemove: onRemove ? () => onRemove(asset) : undefined,\n selected: isSelected,\n size,\n className,\n };\n\n if (asset.mime?.includes(ASSET_TYPES.Video)) {\n return <VideoAssetCard {...commonAssetCardProps} />;\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Image)) {\n return (\n <ImageAssetCard\n alt={asset.alternativeText || asset.name}\n height={asset.height!}\n thumbnail={prefixFileUrlWithBackendUrl(asset?.formats?.thumbnail?.url || asset.url)!}\n width={asset.width!}\n updatedAt={asset.updatedAt}\n isUrlSigned={asset?.isUrlSigned || false}\n // Only signed remote URLs need crossOrigin: they are loaded without a\n // cache-buster, so thumbnail and preview share a cache entry and must\n // both opt into CORS to avoid a cache collision. Public/unsigned remote\n // URLs are cache-busted, so they must not require a bucket CORS rule to\n // render. See #26581.\n crossOrigin={!local && asset?.isUrlSigned ? 'anonymous' : undefined}\n {...commonAssetCardProps}\n />\n );\n }\n\n if (asset.mime?.includes(ASSET_TYPES.Audio)) {\n return <AudioAssetCard {...commonAssetCardProps} />;\n }\n\n return <DocAssetCard {...commonAssetCardProps} />;\n};\n"],"names":["AssetCard","asset","isSelected","onSelect","onEdit","onRemove","size","local","className","handleSelect","undefined","commonAssetCardProps","id","isSelectable","extension","getFileExtension","ext","name","url","createAssetUrl","mime","selected","includes","ASSET_TYPES","Video","_jsx","VideoAssetCard","Image","ImageAssetCard","alt","alternativeText","height","thumbnail","prefixFileUrlWithBackendUrl","formats","width","updatedAt","isUrlSigned","crossOrigin","Audio","AudioAssetCard","DocAssetCard"],"mappings":";;;;;;;;;;;;;;;AA2BO,MAAMA,YAAY,CAAC,EACxBC,KAAK,EACLC,UAAAA,GAAa,KAAK,EAClBC,QAAQ,EACRC,MAAM,EACNC,QAAQ,EACRC,IAAAA,GAAO,GAAG,EACVC,KAAAA,GAAQ,KAAK,EACbC,SAAS,EACM,GAAA;AACf,IAAA,MAAMC,YAAAA,GAAeN,QAAAA,GAAW,IAAMA,QAAAA,CAASF,KAAAA,CAAAA,GAASS,SAAAA;AAExD,IAAA,MAAMC,oBAAAA,GAAuB;AAC3BC,QAAAA,EAAAA,EAAIX,MAAMW,EAAE;AACZC,QAAAA,YAAAA,EAAcZ,MAAMY,YAAY;QAChCC,SAAAA,EAAWC,gBAAAA,CAAiBd,MAAMe,GAAG,CAAA;AACrCC,QAAAA,IAAAA,EAAMhB,MAAMgB,IAAI;AAChBC,QAAAA,GAAAA,EAAKX,KAAAA,GAAQN,KAAAA,CAAMiB,GAAG,GAAIC,eAAelB,KAAAA,EAAO,IAAA,CAAA;AAChDmB,QAAAA,IAAAA,EAAMnB,MAAMmB,IAAI;QAChBhB,MAAAA,EAAQA,MAAAA,GAAS,IAAMA,MAAAA,CAAOH,KAAAA,CAAAA,GAASS,SAAAA;QACvCP,QAAAA,EAAUM,YAAAA;QACVJ,QAAAA,EAAUA,QAAAA,GAAW,IAAMA,QAAAA,CAASJ,KAAAA,CAAAA,GAASS,SAAAA;QAC7CW,QAAAA,EAAUnB,UAAAA;AACVI,QAAAA,IAAAA;AACAE,QAAAA;AACF,KAAA;AAEA,IAAA,IAAIP,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,WAAAA,CAAYC,KAAK,CAAA,EAAG;AAC3C,QAAA,qBAAOC,GAAA,CAACC,cAAAA,EAAAA;AAAgB,YAAA,GAAGf;;AAC7B,IAAA;AAEA,IAAA,IAAIV,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,WAAAA,CAAYI,KAAK,CAAA,EAAG;AAC3C,QAAA,qBACEF,GAAA,CAACG,cAAAA,EAAAA;AACCC,YAAAA,GAAAA,EAAK5B,KAAAA,CAAM6B,eAAe,IAAI7B,KAAAA,CAAMgB,IAAI;AACxCc,YAAAA,MAAAA,EAAQ9B,MAAM8B,MAAM;AACpBC,YAAAA,SAAAA,EAAWC,4BAA4BhC,KAAAA,EAAOiC,OAAAA,EAASF,SAAAA,EAAWd,GAAAA,IAAOjB,MAAMiB,GAAG,CAAA;AAClFiB,YAAAA,KAAAA,EAAOlC,MAAMkC,KAAK;AAClBC,YAAAA,SAAAA,EAAWnC,MAAMmC,SAAS;AAC1BC,YAAAA,WAAAA,EAAapC,OAAOoC,WAAAA,IAAe,KAAA;;;;;;AAMnCC,YAAAA,WAAAA,EAAa,CAAC/B,KAAAA,IAASN,KAAAA,EAAOoC,WAAAA,GAAc,WAAA,GAAc3B,SAAAA;AACzD,YAAA,GAAGC;;AAGV,IAAA;AAEA,IAAA,IAAIV,MAAMmB,IAAI,EAAEE,QAAAA,CAASC,WAAAA,CAAYgB,KAAK,CAAA,EAAG;AAC3C,QAAA,qBAAOd,GAAA,CAACe,cAAAA,EAAAA;AAAgB,YAAA,GAAG7B;;AAC7B,IAAA;AAEA,IAAA,qBAAOc,GAAA,CAACgB,YAAAA,EAAAA;AAAc,QAAA,GAAG9B;;AAC3B;;;;"}
@@ -9,6 +9,7 @@ var styledComponents = require('styled-components');
9
9
  require('byte-size');
10
10
  require('date-fns');
11
11
  var getTrad = require('../../utils/getTrad.js');
12
+ require('@strapi/admin/strapi-admin');
12
13
  require('qs');
13
14
  require('../../utils/urlYupSchema.js');
14
15
 
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCardBase.js","sources":["../../../../admin/src/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":";;;;;;;;;;;;;;AAuBA,MAAMA,SAAAA,GAAYC,uBAAAA,CAAOC,IAAI;;AAE7B,CAAC;AAED,MAAMC,oBAAAA,GAAuBF,uBAAAA,CAAOG,uBAAAA,CAAW;;;;;;;AAO/C,CAAC;AAED,MAAMC,mBAAAA,GAAsBJ,uBAAAA,CAAOK,GAAG;;AAEtC,CAAC;AAED,MAAMC,aAAAA,GAAgBN,uBAAAA,CAAOO,iBAAAA,CAAK;;;;AAI9B,IAAA,EAAEL,oBAAAA,CAAqB;;;;AAI3B,CAAC;AAoBM,MAAMM,aAAAA,GAAgB,CAAC,EAC5BC,QAAQ,EACRC,SAAS,EACTC,YAAAA,GAAe,KAAK,EACpBC,IAAI,EACJC,QAAQ,EACRC,QAAQ,EACRC,MAAM,EACNC,QAAAA,GAAW,KAAK,EAChBC,QAAAA,GAAW,EAAE,EACbC,OAAAA,GAAU,OAAO,EACjBC,SAAS,EACU,GAAA;IACnB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAMC,cAAc,CAACC,CAAAA,GAAAA;AACnB,QAAA,IAAIR,MAAAA,EAAQ;YACVA,MAAAA,CAAOQ,CAAAA,CAAAA;AACT,QAAA;AACF,IAAA,CAAA;AAEA;;;;MAKA,MAAMC,yBAAyB,CAACD,CAAAA,GAAAA;AAC9BA,QAAAA,CAAAA,CAAEE,eAAe,EAAA;AACnB,IAAA,CAAA;AAEA,IAAA,qBACEC,eAAA,CAACpB,aAAAA,EAAAA;QACCa,SAAAA,EAAWA,SAAAA;QACXQ,IAAAA,EAAK,QAAA;QACLC,MAAAA,EAAO,MAAA;AACPC,QAAAA,QAAAA,EAAU,EAAC;QACXC,OAAAA,EAASR,WAAAA;;0BAETI,eAAA,CAACK,uBAAAA,EAAAA;;AACEpB,oBAAAA,YAAAA,kBACCqB,cAAA,CAAC5B,mBAAAA,EAAAA;wBAAoB0B,OAAAA,EAASN,sBAAAA;AAC5B,wBAAA,QAAA,gBAAAQ,cAAA,CAACC,yBAAAA,EAAAA;4BAAaC,OAAAA,EAASlB,QAAAA;4BAAUmB,eAAAA,EAAiBtB;;;oBAGpDC,CAAAA,QAAAA,IAAYC,MAAK,mBACjBW,eAAA,CAACxB,oBAAAA,EAAAA;wBAAqB4B,OAAAA,EAASN,sBAAAA;wBAAwBY,QAAAA,EAAS,KAAA;;AAC7DtB,4BAAAA,QAAAA,kBACCkB,cAAA,CAACK,uBAAAA,EAAAA;AACCC,gCAAAA,KAAAA,EAAOlB,aAAAA,CAAc;AACnBmB,oCAAAA,EAAAA,EAAIC,eAAAA,CAAQ,+BAAA,CAAA;oCACZC,cAAAA,EAAgB;AAClB,iCAAA,CAAA;gCACAX,OAAAA,EAAShB,QAAAA;AAET,gCAAA,QAAA,gBAAAkB,cAAA,CAACU,WAAAA,EAAAA,EAAAA;;AAIJ3B,4BAAAA,MAAAA,kBACCiB,cAAA,CAACK,uBAAAA,EAAAA;AACCC,gCAAAA,KAAAA,EAAOlB,aAAAA,CAAc;AAAEmB,oCAAAA,EAAAA,EAAIC,eAAAA,CAAQ,mBAAA,CAAA;oCAAsBC,cAAAA,EAAgB;AAAO,iCAAA,CAAA;gCAChFX,OAAAA,EAASf,MAAAA;AAET,gCAAA,QAAA,gBAAAiB,cAAA,CAACW,YAAAA,EAAAA,EAAAA;;;;AAKRlC,oBAAAA;;;0BAEHiB,eAAA,CAACkB,qBAAAA,EAAAA;;kCACClB,eAAA,CAACmB,wBAAAA,EAAAA;;0CACCb,cAAA,CAACc,gBAAAA,EAAAA;gCAAIC,UAAAA,EAAY,CAAA;AACf,gCAAA,QAAA,gBAAAf,cAAA,CAACgB,uBAAAA,EAAAA;oCAAWC,GAAAA,EAAI,IAAA;AACd,oCAAA,QAAA,gBAAAjB,cAAA,CAACkB,sBAAAA,EAAAA;wCAAUD,GAAAA,EAAI,MAAA;AAAQrC,wCAAAA,QAAAA,EAAAA;;;;0CAG3Bc,eAAA,CAACyB,yBAAAA,EAAAA;;kDACCnB,cAAA,CAACjC,SAAAA,EAAAA;AAAWW,wCAAAA,QAAAA,EAAAA;;AACXO,oCAAAA;;;;;kCAGLe,cAAA,CAACoB,iBAAAA,EAAAA;wBAAKL,UAAAA,EAAY,CAAA;wBAAGM,IAAAA,EAAM,CAAA;AACzB,wBAAA,QAAA,gBAAArB,cAAA,CAACsB,sBAAAA,EAAAA;sCACElC,aAAAA,CAAc;gCACbmB,EAAAA,EAAIC,eAAAA,CAAQ,CAAC,iBAAiB,EAAEtB,QAAQqC,WAAW,EAAA,CAAG,MAAM,CAAC,CAAA;gCAC7Dd,cAAAA,EAAgBvB;AAClB,6BAAA;;;;;;;AAMZ;;;;"}
1
+ {"version":3,"file":"AssetCardBase.js","sources":["../../../../admin/src/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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"}
@@ -7,6 +7,7 @@ import { styled } from 'styled-components';
7
7
  import 'byte-size';
8
8
  import 'date-fns';
9
9
  import { getTrad } from '../../utils/getTrad.mjs';
10
+ import '@strapi/admin/strapi-admin';
10
11
  import 'qs';
11
12
  import '../../utils/urlYupSchema.mjs';
12
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"AssetCardBase.mjs","sources":["../../../../admin/src/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/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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"}
@@ -5,6 +5,7 @@ var designSystem = require('@strapi/design-system');
5
5
  var appendSearchParamsToUrl = require('../../utils/appendSearchParamsToUrl.js');
6
6
  require('byte-size');
7
7
  require('date-fns');
8
+ require('@strapi/admin/strapi-admin');
8
9
  require('qs');
9
10
  require('../../utils/urlYupSchema.js');
10
11
  var AssetCardBase = require('./AssetCardBase.js');
@@ -1 +1 @@
1
- {"version":3,"file":"ImageAssetCard.js","sources":["../../../../admin/src/components/AssetCard/ImageAssetCard.tsx"],"sourcesContent":["import { CardAsset } from '@strapi/design-system';\n\nimport { appendSearchParamsToUrl } from '../../utils';\n\nimport { AssetCardBase, AssetCardBaseProps } from './AssetCardBase';\n\ninterface ImageAssetCardProps extends Omit<AssetCardBaseProps, 'variant' | 'children'> {\n height?: number;\n width?: number;\n size?: 'S' | 'M';\n thumbnail: string;\n alt: string;\n updatedAt?: string;\n isUrlSigned: boolean;\n crossOrigin?: 'anonymous' | 'use-credentials';\n}\n\nexport const ImageAssetCard = ({\n height,\n width,\n thumbnail,\n size = 'M',\n alt,\n isUrlSigned,\n crossOrigin,\n selected = false,\n ...props\n}: ImageAssetCardProps) => {\n // appending the updatedAt param to the thumbnail URL prevents it from being cached by the browser (cache busting)\n // applied only if the url is not signed to prevent the signature from being invalidated\n const thumbnailUrl = isUrlSigned\n ? thumbnail\n : appendSearchParamsToUrl({\n url: thumbnail,\n params: { updatedAt: props.updatedAt },\n });\n const subtitle = height && width ? ` - ${width}✕${height}` : undefined;\n\n return (\n <AssetCardBase {...props} selected={selected} subtitle={subtitle} variant=\"Image\">\n <CardAsset src={thumbnailUrl} size={size} alt={alt} crossOrigin={crossOrigin} />\n </AssetCardBase>\n );\n};\n"],"names":["ImageAssetCard","height","width","thumbnail","size","alt","isUrlSigned","crossOrigin","selected","props","thumbnailUrl","appendSearchParamsToUrl","url","params","updatedAt","subtitle","undefined","_jsx","AssetCardBase","variant","CardAsset","src"],"mappings":";;;;;;;;;;;AAiBO,MAAMA,iBAAiB,CAAC,EAC7BC,MAAM,EACNC,KAAK,EACLC,SAAS,EACTC,IAAAA,GAAO,GAAG,EACVC,GAAG,EACHC,WAAW,EACXC,WAAW,EACXC,QAAAA,GAAW,KAAK,EAChB,GAAGC,KAAAA,EACiB,GAAA;;;IAGpB,MAAMC,YAAAA,GAAeJ,WAAAA,GACjBH,SAAAA,GACAQ,+CAAAA,CAAwB;QACtBC,GAAAA,EAAKT,SAAAA;QACLU,MAAAA,EAAQ;AAAEC,YAAAA,SAAAA,EAAWL,MAAMK;AAAU;AACvC,KAAA,CAAA;IACJ,MAAMC,QAAAA,GAAWd,MAAAA,IAAUC,KAAAA,GAAQ,CAAC,GAAG,EAAEA,KAAAA,CAAM,CAAC,EAAED,MAAAA,CAAAA,CAAQ,GAAGe,SAAAA;AAE7D,IAAA,qBACEC,cAAA,CAACC,2BAAAA,EAAAA;AAAe,QAAA,GAAGT,KAAK;QAAED,QAAAA,EAAUA,QAAAA;QAAUO,QAAAA,EAAUA,QAAAA;QAAUI,OAAAA,EAAQ,OAAA;AACxE,QAAA,QAAA,gBAAAF,cAAA,CAACG,sBAAAA,EAAAA;YAAUC,GAAAA,EAAKX,YAAAA;YAAcN,IAAAA,EAAMA,IAAAA;YAAMC,GAAAA,EAAKA,GAAAA;YAAKE,WAAAA,EAAaA;;;AAGvE;;;;"}
1
+ {"version":3,"file":"ImageAssetCard.js","sources":["../../../../admin/src/components/AssetCard/ImageAssetCard.tsx"],"sourcesContent":["import { CardAsset } from '@strapi/design-system';\n\nimport { appendSearchParamsToUrl } from '../../utils';\n\nimport { AssetCardBase, AssetCardBaseProps } from './AssetCardBase';\n\ninterface ImageAssetCardProps extends Omit<AssetCardBaseProps, 'variant' | 'children'> {\n height?: number;\n width?: number;\n size?: 'S' | 'M';\n thumbnail: string;\n alt: string;\n updatedAt?: string;\n isUrlSigned: boolean;\n crossOrigin?: 'anonymous' | 'use-credentials';\n}\n\nexport const ImageAssetCard = ({\n height,\n width,\n thumbnail,\n size = 'M',\n alt,\n isUrlSigned,\n crossOrigin,\n selected = false,\n ...props\n}: ImageAssetCardProps) => {\n // appending the updatedAt param to the thumbnail URL prevents it from being cached by the browser (cache busting)\n // applied only if the url is not signed to prevent the signature from being invalidated\n const thumbnailUrl = isUrlSigned\n ? thumbnail\n : appendSearchParamsToUrl({\n url: thumbnail,\n params: { updatedAt: props.updatedAt },\n });\n const subtitle = height && width ? ` - ${width}✕${height}` : undefined;\n\n return (\n <AssetCardBase {...props} selected={selected} subtitle={subtitle} variant=\"Image\">\n <CardAsset src={thumbnailUrl} size={size} alt={alt} crossOrigin={crossOrigin} />\n </AssetCardBase>\n );\n};\n"],"names":["ImageAssetCard","height","width","thumbnail","size","alt","isUrlSigned","crossOrigin","selected","props","thumbnailUrl","appendSearchParamsToUrl","url","params","updatedAt","subtitle","undefined","_jsx","AssetCardBase","variant","CardAsset","src"],"mappings":";;;;;;;;;;;;AAiBO,MAAMA,iBAAiB,CAAC,EAC7BC,MAAM,EACNC,KAAK,EACLC,SAAS,EACTC,IAAAA,GAAO,GAAG,EACVC,GAAG,EACHC,WAAW,EACXC,WAAW,EACXC,QAAAA,GAAW,KAAK,EAChB,GAAGC,KAAAA,EACiB,GAAA;;;IAGpB,MAAMC,YAAAA,GAAeJ,WAAAA,GACjBH,SAAAA,GACAQ,+CAAAA,CAAwB;QACtBC,GAAAA,EAAKT,SAAAA;QACLU,MAAAA,EAAQ;AAAEC,YAAAA,SAAAA,EAAWL,MAAMK;AAAU;AACvC,KAAA,CAAA;IACJ,MAAMC,QAAAA,GAAWd,MAAAA,IAAUC,KAAAA,GAAQ,CAAC,GAAG,EAAEA,KAAAA,CAAM,CAAC,EAAED,MAAAA,CAAAA,CAAQ,GAAGe,SAAAA;AAE7D,IAAA,qBACEC,cAAA,CAACC,2BAAAA,EAAAA;AAAe,QAAA,GAAGT,KAAK;QAAED,QAAAA,EAAUA,QAAAA;QAAUO,QAAAA,EAAUA,QAAAA;QAAUI,OAAAA,EAAQ,OAAA;AACxE,QAAA,QAAA,gBAAAF,cAAA,CAACG,sBAAAA,EAAAA;YAAUC,GAAAA,EAAKX,YAAAA;YAAcN,IAAAA,EAAMA,IAAAA;YAAMC,GAAAA,EAAKA,GAAAA;YAAKE,WAAAA,EAAaA;;;AAGvE;;;;"}
@@ -3,6 +3,7 @@ import { CardAsset } from '@strapi/design-system';
3
3
  import { appendSearchParamsToUrl } from '../../utils/appendSearchParamsToUrl.mjs';
4
4
  import 'byte-size';
5
5
  import 'date-fns';
6
+ import '@strapi/admin/strapi-admin';
6
7
  import 'qs';
7
8
  import '../../utils/urlYupSchema.mjs';
8
9
  import { AssetCardBase } from './AssetCardBase.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"ImageAssetCard.mjs","sources":["../../../../admin/src/components/AssetCard/ImageAssetCard.tsx"],"sourcesContent":["import { CardAsset } from '@strapi/design-system';\n\nimport { appendSearchParamsToUrl } from '../../utils';\n\nimport { AssetCardBase, AssetCardBaseProps } from './AssetCardBase';\n\ninterface ImageAssetCardProps extends Omit<AssetCardBaseProps, 'variant' | 'children'> {\n height?: number;\n width?: number;\n size?: 'S' | 'M';\n thumbnail: string;\n alt: string;\n updatedAt?: string;\n isUrlSigned: boolean;\n crossOrigin?: 'anonymous' | 'use-credentials';\n}\n\nexport const ImageAssetCard = ({\n height,\n width,\n thumbnail,\n size = 'M',\n alt,\n isUrlSigned,\n crossOrigin,\n selected = false,\n ...props\n}: ImageAssetCardProps) => {\n // appending the updatedAt param to the thumbnail URL prevents it from being cached by the browser (cache busting)\n // applied only if the url is not signed to prevent the signature from being invalidated\n const thumbnailUrl = isUrlSigned\n ? thumbnail\n : appendSearchParamsToUrl({\n url: thumbnail,\n params: { updatedAt: props.updatedAt },\n });\n const subtitle = height && width ? ` - ${width}✕${height}` : undefined;\n\n return (\n <AssetCardBase {...props} selected={selected} subtitle={subtitle} variant=\"Image\">\n <CardAsset src={thumbnailUrl} size={size} alt={alt} crossOrigin={crossOrigin} />\n </AssetCardBase>\n );\n};\n"],"names":["ImageAssetCard","height","width","thumbnail","size","alt","isUrlSigned","crossOrigin","selected","props","thumbnailUrl","appendSearchParamsToUrl","url","params","updatedAt","subtitle","undefined","_jsx","AssetCardBase","variant","CardAsset","src"],"mappings":";;;;;;;;;AAiBO,MAAMA,iBAAiB,CAAC,EAC7BC,MAAM,EACNC,KAAK,EACLC,SAAS,EACTC,IAAAA,GAAO,GAAG,EACVC,GAAG,EACHC,WAAW,EACXC,WAAW,EACXC,QAAAA,GAAW,KAAK,EAChB,GAAGC,KAAAA,EACiB,GAAA;;;IAGpB,MAAMC,YAAAA,GAAeJ,WAAAA,GACjBH,SAAAA,GACAQ,uBAAAA,CAAwB;QACtBC,GAAAA,EAAKT,SAAAA;QACLU,MAAAA,EAAQ;AAAEC,YAAAA,SAAAA,EAAWL,MAAMK;AAAU;AACvC,KAAA,CAAA;IACJ,MAAMC,QAAAA,GAAWd,MAAAA,IAAUC,KAAAA,GAAQ,CAAC,GAAG,EAAEA,KAAAA,CAAM,CAAC,EAAED,MAAAA,CAAAA,CAAQ,GAAGe,SAAAA;AAE7D,IAAA,qBACEC,GAAA,CAACC,aAAAA,EAAAA;AAAe,QAAA,GAAGT,KAAK;QAAED,QAAAA,EAAUA,QAAAA;QAAUO,QAAAA,EAAUA,QAAAA;QAAUI,OAAAA,EAAQ,OAAA;AACxE,QAAA,QAAA,gBAAAF,GAAA,CAACG,SAAAA,EAAAA;YAAUC,GAAAA,EAAKX,YAAAA;YAAcN,IAAAA,EAAMA,IAAAA;YAAMC,GAAAA,EAAKA,GAAAA;YAAKE,WAAAA,EAAaA;;;AAGvE;;;;"}
1
+ {"version":3,"file":"ImageAssetCard.mjs","sources":["../../../../admin/src/components/AssetCard/ImageAssetCard.tsx"],"sourcesContent":["import { CardAsset } from '@strapi/design-system';\n\nimport { appendSearchParamsToUrl } from '../../utils';\n\nimport { AssetCardBase, AssetCardBaseProps } from './AssetCardBase';\n\ninterface ImageAssetCardProps extends Omit<AssetCardBaseProps, 'variant' | 'children'> {\n height?: number;\n width?: number;\n size?: 'S' | 'M';\n thumbnail: string;\n alt: string;\n updatedAt?: string;\n isUrlSigned: boolean;\n crossOrigin?: 'anonymous' | 'use-credentials';\n}\n\nexport const ImageAssetCard = ({\n height,\n width,\n thumbnail,\n size = 'M',\n alt,\n isUrlSigned,\n crossOrigin,\n selected = false,\n ...props\n}: ImageAssetCardProps) => {\n // appending the updatedAt param to the thumbnail URL prevents it from being cached by the browser (cache busting)\n // applied only if the url is not signed to prevent the signature from being invalidated\n const thumbnailUrl = isUrlSigned\n ? thumbnail\n : appendSearchParamsToUrl({\n url: thumbnail,\n params: { updatedAt: props.updatedAt },\n });\n const subtitle = height && width ? ` - ${width}✕${height}` : undefined;\n\n return (\n <AssetCardBase {...props} selected={selected} subtitle={subtitle} variant=\"Image\">\n <CardAsset src={thumbnailUrl} size={size} alt={alt} crossOrigin={crossOrigin} />\n </AssetCardBase>\n );\n};\n"],"names":["ImageAssetCard","height","width","thumbnail","size","alt","isUrlSigned","crossOrigin","selected","props","thumbnailUrl","appendSearchParamsToUrl","url","params","updatedAt","subtitle","undefined","_jsx","AssetCardBase","variant","CardAsset","src"],"mappings":";;;;;;;;;;AAiBO,MAAMA,iBAAiB,CAAC,EAC7BC,MAAM,EACNC,KAAK,EACLC,SAAS,EACTC,IAAAA,GAAO,GAAG,EACVC,GAAG,EACHC,WAAW,EACXC,WAAW,EACXC,QAAAA,GAAW,KAAK,EAChB,GAAGC,KAAAA,EACiB,GAAA;;;IAGpB,MAAMC,YAAAA,GAAeJ,WAAAA,GACjBH,SAAAA,GACAQ,uBAAAA,CAAwB;QACtBC,GAAAA,EAAKT,SAAAA;QACLU,MAAAA,EAAQ;AAAEC,YAAAA,SAAAA,EAAWL,MAAMK;AAAU;AACvC,KAAA,CAAA;IACJ,MAAMC,QAAAA,GAAWd,MAAAA,IAAUC,KAAAA,GAAQ,CAAC,GAAG,EAAEA,KAAAA,CAAM,CAAC,EAAED,MAAAA,CAAAA,CAAQ,GAAGe,SAAAA;AAE7D,IAAA,qBACEC,GAAA,CAACC,aAAAA,EAAAA;AAAe,QAAA,GAAGT,KAAK;QAAED,QAAAA,EAAUA,QAAAA;QAAUO,QAAAA,EAAUA,QAAAA;QAAUI,OAAAA,EAAQ,OAAA;AACxE,QAAA,QAAA,gBAAAF,GAAA,CAACG,SAAAA,EAAAA;YAAUC,GAAAA,EAAKX,YAAAA;YAAcN,IAAAA,EAAMA,IAAAA;YAAMC,GAAAA,EAAKA,GAAAA;YAAKE,WAAAA,EAAaA;;;AAGvE;;;;"}
@@ -10,6 +10,7 @@ var useUpload = require('../../hooks/useUpload.js');
10
10
  require('byte-size');
11
11
  require('date-fns');
12
12
  var getTrad = require('../../utils/getTrad.js');
13
+ require('@strapi/admin/strapi-admin');
13
14
  require('qs');
14
15
  require('../../utils/urlYupSchema.js');
15
16
  var UploadProgress = require('../UploadProgress/UploadProgress.js');
@@ -1 +1 @@
1
- {"version":3,"file":"UploadingAssetCard.js","sources":["../../../../admin/src/components/AssetCard/UploadingAssetCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Card,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n Flex,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetType, ASSET_TYPES } from '../../enums';\nimport { useUpload } from '../../hooks/useUpload';\nimport { getTrad } from '../../utils';\nimport { UploadProgress } from '../UploadProgress/UploadProgress';\n\nimport type { RawFile, File } from '../../../../shared/contracts/files';\n\nconst UploadProgressWrapper = styled.div`\n height: 8.8rem;\n width: 100%;\n`;\n\nconst Extension = styled.span`\n text-transform: uppercase;\n`;\n\ninterface UploadingAssetCardProps {\n onCancel: (rawFile: RawFile) => void;\n onStatusChange: (status: string) => void;\n addUploadedFiles: (files: File[]) => void;\n folderId?: string | number | null;\n asset: Asset;\n id?: string;\n size?: 'S' | 'M';\n}\n\ninterface Asset extends File {\n rawFile?: RawFile;\n type?: AssetType;\n}\n\nexport const UploadingAssetCard = ({\n asset,\n onCancel,\n onStatusChange,\n addUploadedFiles,\n folderId = null,\n}: UploadingAssetCardProps) => {\n const { upload, cancel, error, progress, status } = useUpload();\n const { formatMessage } = useIntl();\n\n let badgeContent = formatMessage({\n id: getTrad('settings.section.doc.label'),\n defaultMessage: 'Doc',\n });\n\n if (asset.type === ASSET_TYPES.Image) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.image.label'),\n defaultMessage: 'Image',\n });\n } else if (asset.type === ASSET_TYPES.Video) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.video.label'),\n defaultMessage: 'Video',\n });\n } else if (asset.type === ASSET_TYPES.Audio) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.audio.label'),\n defaultMessage: 'Audio',\n });\n }\n\n React.useEffect(() => {\n const uploadFile = async () => {\n const files = await upload(asset, folderId ? Number(folderId) : null);\n\n if (addUploadedFiles) {\n addUploadedFiles(files);\n }\n };\n\n uploadFile();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.useEffect(() => {\n onStatusChange(status);\n }, [status, onStatusChange]);\n\n const handleCancel = () => {\n cancel();\n onCancel(asset.rawFile!);\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Card borderColor={error ? 'danger600' : 'neutral150'}>\n <CardHeader>\n <UploadProgressWrapper>\n <UploadProgress\n error={error || undefined}\n onCancel={handleCancel}\n progress={progress}\n />\n </UploadProgressWrapper>\n </CardHeader>\n <CardBody>\n <CardContent>\n <Box paddingTop={1}>\n <Typography tag=\"h2\">\n <CardTitle tag=\"span\">{asset.name}</CardTitle>\n </Typography>\n </Box>\n <CardSubtitle>\n <Extension>{asset.ext}</Extension>\n </CardSubtitle>\n </CardContent>\n <Flex paddingTop={1} grow={1}>\n <CardBadge>{badgeContent}</CardBadge>\n </Flex>\n </CardBody>\n </Card>\n {error ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"danger600\">\n {formatMessage(\n error?.message\n ? {\n id: getTrad(`apiError.${error.message}`),\n defaultMessage: error.message,\n /* See issue: https://github.com/strapi/strapi/issues/13867\n A proxy might return an error, before the request reaches Strapi\n and therefore we need to handle errors gracefully.\n */\n }\n : {\n id: getTrad('upload.generic-error'),\n defaultMessage: 'An error occurred while uploading the file.',\n }\n )}\n </Typography>\n ) : undefined}\n </Flex>\n );\n};\n"],"names":["UploadProgressWrapper","styled","div","Extension","span","UploadingAssetCard","asset","onCancel","onStatusChange","addUploadedFiles","folderId","upload","cancel","error","progress","status","useUpload","formatMessage","useIntl","badgeContent","id","getTrad","defaultMessage","type","ASSET_TYPES","Image","Video","Audio","React","useEffect","uploadFile","files","Number","handleCancel","rawFile","_jsxs","Flex","direction","alignItems","gap","Card","borderColor","_jsx","CardHeader","UploadProgress","undefined","CardBody","CardContent","Box","paddingTop","Typography","tag","CardTitle","name","CardSubtitle","ext","grow","CardBadge","variant","fontWeight","textColor","message"],"mappings":"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"}
1
+ {"version":3,"file":"UploadingAssetCard.js","sources":["../../../../admin/src/components/AssetCard/UploadingAssetCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Card,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n Flex,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetType, ASSET_TYPES } from '../../enums';\nimport { useUpload } from '../../hooks/useUpload';\nimport { getTrad } from '../../utils';\nimport { UploadProgress } from '../UploadProgress/UploadProgress';\n\nimport type { RawFile, File } from '../../../../shared/contracts/files';\n\nconst UploadProgressWrapper = styled.div`\n height: 8.8rem;\n width: 100%;\n`;\n\nconst Extension = styled.span`\n text-transform: uppercase;\n`;\n\ninterface UploadingAssetCardProps {\n onCancel: (rawFile: RawFile) => void;\n onStatusChange: (status: string) => void;\n addUploadedFiles: (files: File[]) => void;\n folderId?: string | number | null;\n asset: Asset;\n id?: string;\n size?: 'S' | 'M';\n}\n\ninterface Asset extends File {\n rawFile?: RawFile;\n type?: AssetType;\n}\n\nexport const UploadingAssetCard = ({\n asset,\n onCancel,\n onStatusChange,\n addUploadedFiles,\n folderId = null,\n}: UploadingAssetCardProps) => {\n const { upload, cancel, error, progress, status } = useUpload();\n const { formatMessage } = useIntl();\n\n let badgeContent = formatMessage({\n id: getTrad('settings.section.doc.label'),\n defaultMessage: 'Doc',\n });\n\n if (asset.type === ASSET_TYPES.Image) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.image.label'),\n defaultMessage: 'Image',\n });\n } else if (asset.type === ASSET_TYPES.Video) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.video.label'),\n defaultMessage: 'Video',\n });\n } else if (asset.type === ASSET_TYPES.Audio) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.audio.label'),\n defaultMessage: 'Audio',\n });\n }\n\n React.useEffect(() => {\n const uploadFile = async () => {\n const files = await upload(asset, folderId ? Number(folderId) : null);\n\n if (addUploadedFiles) {\n addUploadedFiles(files);\n }\n };\n\n uploadFile();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.useEffect(() => {\n onStatusChange(status);\n }, [status, onStatusChange]);\n\n const handleCancel = () => {\n cancel();\n onCancel(asset.rawFile!);\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Card borderColor={error ? 'danger600' : 'neutral150'}>\n <CardHeader>\n <UploadProgressWrapper>\n <UploadProgress\n error={error || undefined}\n onCancel={handleCancel}\n progress={progress}\n />\n </UploadProgressWrapper>\n </CardHeader>\n <CardBody>\n <CardContent>\n <Box paddingTop={1}>\n <Typography tag=\"h2\">\n <CardTitle tag=\"span\">{asset.name}</CardTitle>\n </Typography>\n </Box>\n <CardSubtitle>\n <Extension>{asset.ext}</Extension>\n </CardSubtitle>\n </CardContent>\n <Flex paddingTop={1} grow={1}>\n <CardBadge>{badgeContent}</CardBadge>\n </Flex>\n </CardBody>\n </Card>\n {error ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"danger600\">\n {formatMessage(\n error?.message\n ? {\n id: getTrad(`apiError.${error.message}`),\n defaultMessage: error.message,\n /* See issue: https://github.com/strapi/strapi/issues/13867\n A proxy might return an error, before the request reaches Strapi\n and therefore we need to handle errors gracefully.\n */\n }\n : {\n id: getTrad('upload.generic-error'),\n defaultMessage: 'An error occurred while uploading the file.',\n }\n )}\n </Typography>\n ) : undefined}\n </Flex>\n );\n};\n"],"names":["UploadProgressWrapper","styled","div","Extension","span","UploadingAssetCard","asset","onCancel","onStatusChange","addUploadedFiles","folderId","upload","cancel","error","progress","status","useUpload","formatMessage","useIntl","badgeContent","id","getTrad","defaultMessage","type","ASSET_TYPES","Image","Video","Audio","React","useEffect","uploadFile","files","Number","handleCancel","rawFile","_jsxs","Flex","direction","alignItems","gap","Card","borderColor","_jsx","CardHeader","UploadProgress","undefined","CardBody","CardContent","Box","paddingTop","Typography","tag","CardTitle","name","CardSubtitle","ext","grow","CardBadge","variant","fontWeight","textColor","message"],"mappings":"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"}
@@ -8,6 +8,7 @@ import { useUpload } from '../../hooks/useUpload.mjs';
8
8
  import 'byte-size';
9
9
  import 'date-fns';
10
10
  import { getTrad } from '../../utils/getTrad.mjs';
11
+ import '@strapi/admin/strapi-admin';
11
12
  import 'qs';
12
13
  import '../../utils/urlYupSchema.mjs';
13
14
  import { UploadProgress } from '../UploadProgress/UploadProgress.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"UploadingAssetCard.mjs","sources":["../../../../admin/src/components/AssetCard/UploadingAssetCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Card,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n Flex,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetType, ASSET_TYPES } from '../../enums';\nimport { useUpload } from '../../hooks/useUpload';\nimport { getTrad } from '../../utils';\nimport { UploadProgress } from '../UploadProgress/UploadProgress';\n\nimport type { RawFile, File } from '../../../../shared/contracts/files';\n\nconst UploadProgressWrapper = styled.div`\n height: 8.8rem;\n width: 100%;\n`;\n\nconst Extension = styled.span`\n text-transform: uppercase;\n`;\n\ninterface UploadingAssetCardProps {\n onCancel: (rawFile: RawFile) => void;\n onStatusChange: (status: string) => void;\n addUploadedFiles: (files: File[]) => void;\n folderId?: string | number | null;\n asset: Asset;\n id?: string;\n size?: 'S' | 'M';\n}\n\ninterface Asset extends File {\n rawFile?: RawFile;\n type?: AssetType;\n}\n\nexport const UploadingAssetCard = ({\n asset,\n onCancel,\n onStatusChange,\n addUploadedFiles,\n folderId = null,\n}: UploadingAssetCardProps) => {\n const { upload, cancel, error, progress, status } = useUpload();\n const { formatMessage } = useIntl();\n\n let badgeContent = formatMessage({\n id: getTrad('settings.section.doc.label'),\n defaultMessage: 'Doc',\n });\n\n if (asset.type === ASSET_TYPES.Image) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.image.label'),\n defaultMessage: 'Image',\n });\n } else if (asset.type === ASSET_TYPES.Video) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.video.label'),\n defaultMessage: 'Video',\n });\n } else if (asset.type === ASSET_TYPES.Audio) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.audio.label'),\n defaultMessage: 'Audio',\n });\n }\n\n React.useEffect(() => {\n const uploadFile = async () => {\n const files = await upload(asset, folderId ? Number(folderId) : null);\n\n if (addUploadedFiles) {\n addUploadedFiles(files);\n }\n };\n\n uploadFile();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.useEffect(() => {\n onStatusChange(status);\n }, [status, onStatusChange]);\n\n const handleCancel = () => {\n cancel();\n onCancel(asset.rawFile!);\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Card borderColor={error ? 'danger600' : 'neutral150'}>\n <CardHeader>\n <UploadProgressWrapper>\n <UploadProgress\n error={error || undefined}\n onCancel={handleCancel}\n progress={progress}\n />\n </UploadProgressWrapper>\n </CardHeader>\n <CardBody>\n <CardContent>\n <Box paddingTop={1}>\n <Typography tag=\"h2\">\n <CardTitle tag=\"span\">{asset.name}</CardTitle>\n </Typography>\n </Box>\n <CardSubtitle>\n <Extension>{asset.ext}</Extension>\n </CardSubtitle>\n </CardContent>\n <Flex paddingTop={1} grow={1}>\n <CardBadge>{badgeContent}</CardBadge>\n </Flex>\n </CardBody>\n </Card>\n {error ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"danger600\">\n {formatMessage(\n error?.message\n ? {\n id: getTrad(`apiError.${error.message}`),\n defaultMessage: error.message,\n /* See issue: https://github.com/strapi/strapi/issues/13867\n A proxy might return an error, before the request reaches Strapi\n and therefore we need to handle errors gracefully.\n */\n }\n : {\n id: getTrad('upload.generic-error'),\n defaultMessage: 'An error occurred while uploading the file.',\n }\n )}\n </Typography>\n ) : undefined}\n </Flex>\n );\n};\n"],"names":["UploadProgressWrapper","styled","div","Extension","span","UploadingAssetCard","asset","onCancel","onStatusChange","addUploadedFiles","folderId","upload","cancel","error","progress","status","useUpload","formatMessage","useIntl","badgeContent","id","getTrad","defaultMessage","type","ASSET_TYPES","Image","Video","Audio","React","useEffect","uploadFile","files","Number","handleCancel","rawFile","_jsxs","Flex","direction","alignItems","gap","Card","borderColor","_jsx","CardHeader","UploadProgress","undefined","CardBody","CardContent","Box","paddingTop","Typography","tag","CardTitle","name","CardSubtitle","ext","grow","CardBadge","variant","fontWeight","textColor","message"],"mappings":"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"}
1
+ {"version":3,"file":"UploadingAssetCard.mjs","sources":["../../../../admin/src/components/AssetCard/UploadingAssetCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Box,\n Card,\n CardBadge,\n CardBody,\n CardContent,\n CardHeader,\n CardSubtitle,\n CardTitle,\n Flex,\n Typography,\n} from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { AssetType, ASSET_TYPES } from '../../enums';\nimport { useUpload } from '../../hooks/useUpload';\nimport { getTrad } from '../../utils';\nimport { UploadProgress } from '../UploadProgress/UploadProgress';\n\nimport type { RawFile, File } from '../../../../shared/contracts/files';\n\nconst UploadProgressWrapper = styled.div`\n height: 8.8rem;\n width: 100%;\n`;\n\nconst Extension = styled.span`\n text-transform: uppercase;\n`;\n\ninterface UploadingAssetCardProps {\n onCancel: (rawFile: RawFile) => void;\n onStatusChange: (status: string) => void;\n addUploadedFiles: (files: File[]) => void;\n folderId?: string | number | null;\n asset: Asset;\n id?: string;\n size?: 'S' | 'M';\n}\n\ninterface Asset extends File {\n rawFile?: RawFile;\n type?: AssetType;\n}\n\nexport const UploadingAssetCard = ({\n asset,\n onCancel,\n onStatusChange,\n addUploadedFiles,\n folderId = null,\n}: UploadingAssetCardProps) => {\n const { upload, cancel, error, progress, status } = useUpload();\n const { formatMessage } = useIntl();\n\n let badgeContent = formatMessage({\n id: getTrad('settings.section.doc.label'),\n defaultMessage: 'Doc',\n });\n\n if (asset.type === ASSET_TYPES.Image) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.image.label'),\n defaultMessage: 'Image',\n });\n } else if (asset.type === ASSET_TYPES.Video) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.video.label'),\n defaultMessage: 'Video',\n });\n } else if (asset.type === ASSET_TYPES.Audio) {\n badgeContent = formatMessage({\n id: getTrad('settings.section.audio.label'),\n defaultMessage: 'Audio',\n });\n }\n\n React.useEffect(() => {\n const uploadFile = async () => {\n const files = await upload(asset, folderId ? Number(folderId) : null);\n\n if (addUploadedFiles) {\n addUploadedFiles(files);\n }\n };\n\n uploadFile();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n React.useEffect(() => {\n onStatusChange(status);\n }, [status, onStatusChange]);\n\n const handleCancel = () => {\n cancel();\n onCancel(asset.rawFile!);\n };\n\n return (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={1}>\n <Card borderColor={error ? 'danger600' : 'neutral150'}>\n <CardHeader>\n <UploadProgressWrapper>\n <UploadProgress\n error={error || undefined}\n onCancel={handleCancel}\n progress={progress}\n />\n </UploadProgressWrapper>\n </CardHeader>\n <CardBody>\n <CardContent>\n <Box paddingTop={1}>\n <Typography tag=\"h2\">\n <CardTitle tag=\"span\">{asset.name}</CardTitle>\n </Typography>\n </Box>\n <CardSubtitle>\n <Extension>{asset.ext}</Extension>\n </CardSubtitle>\n </CardContent>\n <Flex paddingTop={1} grow={1}>\n <CardBadge>{badgeContent}</CardBadge>\n </Flex>\n </CardBody>\n </Card>\n {error ? (\n <Typography variant=\"pi\" fontWeight=\"bold\" textColor=\"danger600\">\n {formatMessage(\n error?.message\n ? {\n id: getTrad(`apiError.${error.message}`),\n defaultMessage: error.message,\n /* See issue: https://github.com/strapi/strapi/issues/13867\n A proxy might return an error, before the request reaches Strapi\n and therefore we need to handle errors gracefully.\n */\n }\n : {\n id: getTrad('upload.generic-error'),\n defaultMessage: 'An error occurred while uploading the file.',\n }\n )}\n </Typography>\n ) : undefined}\n </Flex>\n );\n};\n"],"names":["UploadProgressWrapper","styled","div","Extension","span","UploadingAssetCard","asset","onCancel","onStatusChange","addUploadedFiles","folderId","upload","cancel","error","progress","status","useUpload","formatMessage","useIntl","badgeContent","id","getTrad","defaultMessage","type","ASSET_TYPES","Image","Video","Audio","React","useEffect","uploadFile","files","Number","handleCancel","rawFile","_jsxs","Flex","direction","alignItems","gap","Card","borderColor","_jsx","CardHeader","UploadProgress","undefined","CardBody","CardContent","Box","paddingTop","Typography","tag","CardTitle","name","CardSubtitle","ext","grow","CardBadge","variant","fontWeight","textColor","message"],"mappings":"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"}
@@ -6,6 +6,7 @@ var designSystem = require('@strapi/design-system');
6
6
  var styledComponents = require('styled-components');
7
7
  require('byte-size');
8
8
  var formatDuration = require('../../utils/formatDuration.js');
9
+ require('@strapi/admin/strapi-admin');
9
10
  require('qs');
10
11
  require('../../utils/urlYupSchema.js');
11
12
  var AssetCardBase = require('./AssetCardBase.js');
@@ -1 +1 @@
1
- {"version":3,"file":"VideoAssetCard.js","sources":["../../../../admin/src/components/AssetCard/VideoAssetCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, CardAsset, CardTimer } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { formatDuration } from '../../utils';\n\nimport { AssetCardBase, AssetCardBaseProps } from './AssetCardBase';\nimport { VideoPreview } from './VideoPreview';\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n display: block;\n pointer-events: none;\n max-width: 100%;\n max-height: ${({ size }) => (size === 'M' ? 16.4 : 8.8)}rem;\n }\n`;\n\ninterface VideoAssetCardProps extends Omit<AssetCardBaseProps, 'variant' | 'children'> {\n mime: string;\n url: string;\n size?: 'S' | 'M';\n}\n\nexport const VideoAssetCard = ({\n name,\n url,\n mime,\n size = 'M',\n selected = false,\n ...props\n}: VideoAssetCardProps) => {\n const [duration, setDuration] = React.useState<number>();\n\n const formattedDuration = duration && formatDuration(duration);\n\n return (\n <AssetCardBase selected={selected} name={name} {...props} variant=\"Video\">\n <CardAsset size={size}>\n <VideoPreviewWrapper size={size}>\n <VideoPreview url={url} mime={mime} onLoadDuration={setDuration} alt={name} />\n </VideoPreviewWrapper>\n </CardAsset>\n <CardTimer>{formattedDuration || '...'}</CardTimer>\n </AssetCardBase>\n );\n};\n"],"names":["VideoPreviewWrapper","styled","Box","size","VideoAssetCard","name","url","mime","selected","props","duration","setDuration","React","useState","formattedDuration","formatDuration","_jsxs","AssetCardBase","variant","_jsx","CardAsset","VideoPreview","onLoadDuration","alt","CardTimer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,mBAAAA,GAAsBC,uBAAAA,CAAOC,gBAAAA,CAAI;;;;;;gBAMvB,EAAE,CAAC,EAAEC,IAAI,EAAE,GAAMA,IAAAA,KAAS,GAAA,GAAM,OAAO,GAAA,CAAK;;AAE5D,CAAC;MAQYC,cAAAA,GAAiB,CAAC,EAC7BC,IAAI,EACJC,GAAG,EACHC,IAAI,EACJJ,OAAO,GAAG,EACVK,WAAW,KAAK,EAChB,GAAGC,KAAAA,EACiB,GAAA;AACpB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,iBAAMC,QAAQ,EAAA;IAE9C,MAAMC,iBAAAA,GAAoBJ,YAAYK,6BAAAA,CAAeL,QAAAA,CAAAA;AAErD,IAAA,qBACEM,eAAA,CAACC,2BAAAA,EAAAA;QAAcT,QAAAA,EAAUA,QAAAA;QAAUH,IAAAA,EAAMA,IAAAA;AAAO,QAAA,GAAGI,KAAK;QAAES,OAAAA,EAAQ,OAAA;;0BAChEC,cAAA,CAACC,sBAAAA,EAAAA;gBAAUjB,IAAAA,EAAMA,IAAAA;AACf,gBAAA,QAAA,gBAAAgB,cAAA,CAACnB,mBAAAA,EAAAA;oBAAoBG,IAAAA,EAAMA,IAAAA;AACzB,oBAAA,QAAA,gBAAAgB,cAAA,CAACE,yBAAAA,EAAAA;wBAAaf,GAAAA,EAAKA,GAAAA;wBAAKC,IAAAA,EAAMA,IAAAA;wBAAMe,cAAAA,EAAgBX,WAAAA;wBAAaY,GAAAA,EAAKlB;;;;0BAG1Ec,cAAA,CAACK,sBAAAA,EAAAA;0BAAWV,iBAAAA,IAAqB;;;;AAGvC;;;;"}
1
+ {"version":3,"file":"VideoAssetCard.js","sources":["../../../../admin/src/components/AssetCard/VideoAssetCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, CardAsset, CardTimer } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { formatDuration } from '../../utils';\n\nimport { AssetCardBase, AssetCardBaseProps } from './AssetCardBase';\nimport { VideoPreview } from './VideoPreview';\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n display: block;\n pointer-events: none;\n max-width: 100%;\n max-height: ${({ size }) => (size === 'M' ? 16.4 : 8.8)}rem;\n }\n`;\n\ninterface VideoAssetCardProps extends Omit<AssetCardBaseProps, 'variant' | 'children'> {\n mime: string;\n url: string;\n size?: 'S' | 'M';\n}\n\nexport const VideoAssetCard = ({\n name,\n url,\n mime,\n size = 'M',\n selected = false,\n ...props\n}: VideoAssetCardProps) => {\n const [duration, setDuration] = React.useState<number>();\n\n const formattedDuration = duration && formatDuration(duration);\n\n return (\n <AssetCardBase selected={selected} name={name} {...props} variant=\"Video\">\n <CardAsset size={size}>\n <VideoPreviewWrapper size={size}>\n <VideoPreview url={url} mime={mime} onLoadDuration={setDuration} alt={name} />\n </VideoPreviewWrapper>\n </CardAsset>\n <CardTimer>{formattedDuration || '...'}</CardTimer>\n </AssetCardBase>\n );\n};\n"],"names":["VideoPreviewWrapper","styled","Box","size","VideoAssetCard","name","url","mime","selected","props","duration","setDuration","React","useState","formattedDuration","formatDuration","_jsxs","AssetCardBase","variant","_jsx","CardAsset","VideoPreview","onLoadDuration","alt","CardTimer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,MAAMA,mBAAAA,GAAsBC,uBAAAA,CAAOC,gBAAAA,CAAI;;;;;;gBAMvB,EAAE,CAAC,EAAEC,IAAI,EAAE,GAAMA,IAAAA,KAAS,GAAA,GAAM,OAAO,GAAA,CAAK;;AAE5D,CAAC;MAQYC,cAAAA,GAAiB,CAAC,EAC7BC,IAAI,EACJC,GAAG,EACHC,IAAI,EACJJ,OAAO,GAAG,EACVK,WAAW,KAAK,EAChB,GAAGC,KAAAA,EACiB,GAAA;AACpB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,iBAAMC,QAAQ,EAAA;IAE9C,MAAMC,iBAAAA,GAAoBJ,YAAYK,6BAAAA,CAAeL,QAAAA,CAAAA;AAErD,IAAA,qBACEM,eAAA,CAACC,2BAAAA,EAAAA;QAAcT,QAAAA,EAAUA,QAAAA;QAAUH,IAAAA,EAAMA,IAAAA;AAAO,QAAA,GAAGI,KAAK;QAAES,OAAAA,EAAQ,OAAA;;0BAChEC,cAAA,CAACC,sBAAAA,EAAAA;gBAAUjB,IAAAA,EAAMA,IAAAA;AACf,gBAAA,QAAA,gBAAAgB,cAAA,CAACnB,mBAAAA,EAAAA;oBAAoBG,IAAAA,EAAMA,IAAAA;AACzB,oBAAA,QAAA,gBAAAgB,cAAA,CAACE,yBAAAA,EAAAA;wBAAaf,GAAAA,EAAKA,GAAAA;wBAAKC,IAAAA,EAAMA,IAAAA;wBAAMe,cAAAA,EAAgBX,WAAAA;wBAAaY,GAAAA,EAAKlB;;;;0BAG1Ec,cAAA,CAACK,sBAAAA,EAAAA;0BAAWV,iBAAAA,IAAqB;;;;AAGvC;;;;"}
@@ -4,6 +4,7 @@ import { Box, CardAsset, CardTimer } from '@strapi/design-system';
4
4
  import { styled } from 'styled-components';
5
5
  import 'byte-size';
6
6
  import { formatDuration } from '../../utils/formatDuration.mjs';
7
+ import '@strapi/admin/strapi-admin';
7
8
  import 'qs';
8
9
  import '../../utils/urlYupSchema.mjs';
9
10
  import { AssetCardBase } from './AssetCardBase.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"VideoAssetCard.mjs","sources":["../../../../admin/src/components/AssetCard/VideoAssetCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, CardAsset, CardTimer } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { formatDuration } from '../../utils';\n\nimport { AssetCardBase, AssetCardBaseProps } from './AssetCardBase';\nimport { VideoPreview } from './VideoPreview';\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n display: block;\n pointer-events: none;\n max-width: 100%;\n max-height: ${({ size }) => (size === 'M' ? 16.4 : 8.8)}rem;\n }\n`;\n\ninterface VideoAssetCardProps extends Omit<AssetCardBaseProps, 'variant' | 'children'> {\n mime: string;\n url: string;\n size?: 'S' | 'M';\n}\n\nexport const VideoAssetCard = ({\n name,\n url,\n mime,\n size = 'M',\n selected = false,\n ...props\n}: VideoAssetCardProps) => {\n const [duration, setDuration] = React.useState<number>();\n\n const formattedDuration = duration && formatDuration(duration);\n\n return (\n <AssetCardBase selected={selected} name={name} {...props} variant=\"Video\">\n <CardAsset size={size}>\n <VideoPreviewWrapper size={size}>\n <VideoPreview url={url} mime={mime} onLoadDuration={setDuration} alt={name} />\n </VideoPreviewWrapper>\n </CardAsset>\n <CardTimer>{formattedDuration || '...'}</CardTimer>\n </AssetCardBase>\n );\n};\n"],"names":["VideoPreviewWrapper","styled","Box","size","VideoAssetCard","name","url","mime","selected","props","duration","setDuration","React","useState","formattedDuration","formatDuration","_jsxs","AssetCardBase","variant","_jsx","CardAsset","VideoPreview","onLoadDuration","alt","CardTimer"],"mappings":";;;;;;;;;;;AAUA,MAAMA,mBAAAA,GAAsBC,MAAAA,CAAOC,GAAAA,CAAI;;;;;;gBAMvB,EAAE,CAAC,EAAEC,IAAI,EAAE,GAAMA,IAAAA,KAAS,GAAA,GAAM,OAAO,GAAA,CAAK;;AAE5D,CAAC;MAQYC,cAAAA,GAAiB,CAAC,EAC7BC,IAAI,EACJC,GAAG,EACHC,IAAI,EACJJ,OAAO,GAAG,EACVK,WAAW,KAAK,EAChB,GAAGC,KAAAA,EACiB,GAAA;AACpB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,MAAMC,QAAQ,EAAA;IAE9C,MAAMC,iBAAAA,GAAoBJ,YAAYK,cAAAA,CAAeL,QAAAA,CAAAA;AAErD,IAAA,qBACEM,IAAA,CAACC,aAAAA,EAAAA;QAAcT,QAAAA,EAAUA,QAAAA;QAAUH,IAAAA,EAAMA,IAAAA;AAAO,QAAA,GAAGI,KAAK;QAAES,OAAAA,EAAQ,OAAA;;0BAChEC,GAAA,CAACC,SAAAA,EAAAA;gBAAUjB,IAAAA,EAAMA,IAAAA;AACf,gBAAA,QAAA,gBAAAgB,GAAA,CAACnB,mBAAAA,EAAAA;oBAAoBG,IAAAA,EAAMA,IAAAA;AACzB,oBAAA,QAAA,gBAAAgB,GAAA,CAACE,YAAAA,EAAAA;wBAAaf,GAAAA,EAAKA,GAAAA;wBAAKC,IAAAA,EAAMA,IAAAA;wBAAMe,cAAAA,EAAgBX,WAAAA;wBAAaY,GAAAA,EAAKlB;;;;0BAG1Ec,GAAA,CAACK,SAAAA,EAAAA;0BAAWV,iBAAAA,IAAqB;;;;AAGvC;;;;"}
1
+ {"version":3,"file":"VideoAssetCard.mjs","sources":["../../../../admin/src/components/AssetCard/VideoAssetCard.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, CardAsset, CardTimer } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { formatDuration } from '../../utils';\n\nimport { AssetCardBase, AssetCardBaseProps } from './AssetCardBase';\nimport { VideoPreview } from './VideoPreview';\n\nconst VideoPreviewWrapper = styled(Box)`\n canvas,\n video {\n display: block;\n pointer-events: none;\n max-width: 100%;\n max-height: ${({ size }) => (size === 'M' ? 16.4 : 8.8)}rem;\n }\n`;\n\ninterface VideoAssetCardProps extends Omit<AssetCardBaseProps, 'variant' | 'children'> {\n mime: string;\n url: string;\n size?: 'S' | 'M';\n}\n\nexport const VideoAssetCard = ({\n name,\n url,\n mime,\n size = 'M',\n selected = false,\n ...props\n}: VideoAssetCardProps) => {\n const [duration, setDuration] = React.useState<number>();\n\n const formattedDuration = duration && formatDuration(duration);\n\n return (\n <AssetCardBase selected={selected} name={name} {...props} variant=\"Video\">\n <CardAsset size={size}>\n <VideoPreviewWrapper size={size}>\n <VideoPreview url={url} mime={mime} onLoadDuration={setDuration} alt={name} />\n </VideoPreviewWrapper>\n </CardAsset>\n <CardTimer>{formattedDuration || '...'}</CardTimer>\n </AssetCardBase>\n );\n};\n"],"names":["VideoPreviewWrapper","styled","Box","size","VideoAssetCard","name","url","mime","selected","props","duration","setDuration","React","useState","formattedDuration","formatDuration","_jsxs","AssetCardBase","variant","_jsx","CardAsset","VideoPreview","onLoadDuration","alt","CardTimer"],"mappings":";;;;;;;;;;;;AAUA,MAAMA,mBAAAA,GAAsBC,MAAAA,CAAOC,GAAAA,CAAI;;;;;;gBAMvB,EAAE,CAAC,EAAEC,IAAI,EAAE,GAAMA,IAAAA,KAAS,GAAA,GAAM,OAAO,GAAA,CAAK;;AAE5D,CAAC;MAQYC,cAAAA,GAAiB,CAAC,EAC7BC,IAAI,EACJC,GAAG,EACHC,IAAI,EACJJ,OAAO,GAAG,EACVK,WAAW,KAAK,EAChB,GAAGC,KAAAA,EACiB,GAAA;AACpB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,MAAMC,QAAQ,EAAA;IAE9C,MAAMC,iBAAAA,GAAoBJ,YAAYK,cAAAA,CAAeL,QAAAA,CAAAA;AAErD,IAAA,qBACEM,IAAA,CAACC,aAAAA,EAAAA;QAAcT,QAAAA,EAAUA,QAAAA;QAAUH,IAAAA,EAAMA,IAAAA;AAAO,QAAA,GAAGI,KAAK;QAAES,OAAAA,EAAQ,OAAA;;0BAChEC,GAAA,CAACC,SAAAA,EAAAA;gBAAUjB,IAAAA,EAAMA,IAAAA;AACf,gBAAA,QAAA,gBAAAgB,GAAA,CAACnB,mBAAAA,EAAAA;oBAAoBG,IAAAA,EAAMA,IAAAA;AACzB,oBAAA,QAAA,gBAAAgB,GAAA,CAACE,YAAAA,EAAAA;wBAAaf,GAAAA,EAAKA,GAAAA;wBAAKC,IAAAA,EAAMA,IAAAA;wBAAMe,cAAAA,EAAgBX,WAAAA;wBAAaY,GAAAA,EAAKlB;;;;0BAG1Ec,GAAA,CAACK,SAAAA,EAAAA;0BAAWV,iBAAAA,IAAqB;;;;AAGvC;;;;"}
@@ -12,6 +12,7 @@ require('byte-size');
12
12
  require('date-fns');
13
13
  var getAllowedFiles = require('../../../utils/getAllowedFiles.js');
14
14
  var getBreadcrumbDataCM = require('../../../utils/getBreadcrumbDataCM.js');
15
+ require('@strapi/admin/strapi-admin');
15
16
  require('qs');
16
17
  var getTrad = require('../../../utils/getTrad.js');
17
18
  var toSingularTypes = require('../../../utils/toSingularTypes.js');
@@ -1 +1 @@
1
- {"version":3,"file":"BrowseStep.js","sources":["../../../../../admin/src/components/AssetDialog/BrowseStep/BrowseStep.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport {\n Checkbox,\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Typography,\n VisuallyHidden,\n Grid,\n} from '@strapi/design-system';\nimport { GridFour as GridIcon, List, Pencil, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { localStorageKeys, viewOptions } from '../../../constants';\nimport { useFolder } from '../../../hooks/useFolder';\nimport { usePersistentState } from '../../../hooks/usePersistentState';\nimport {\n getBreadcrumbDataCM,\n toSingularTypes,\n getTrad,\n getAllowedFiles,\n BreadcrumbDataFolder,\n AllowedFiles,\n} from '../../../utils';\nimport { AssetGridList } from '../../AssetGridList/AssetGridList';\nimport { Breadcrumbs } from '../../Breadcrumbs/Breadcrumbs';\nimport { EmptyAssets } from '../../EmptyAssets/EmptyAssets';\nimport { FolderCard } from '../../FolderCard/FolderCard/FolderCard';\nimport { FolderCardBody } from '../../FolderCard/FolderCardBody/FolderCardBody';\nimport { FolderCardBodyAction } from '../../FolderCard/FolderCardBodyAction/FolderCardBodyAction';\nimport { FolderGridList } from '../../FolderGridList/FolderGridList';\nimport { SortPicker } from '../../SortPicker/SortPicker';\nimport { TableList, FolderRow, FileRow } from '../../TableList/TableList';\n\nimport { Filters, FilterStructure as ImportedFilterStructure } from './Filters';\nimport { PageSize } from './PageSize';\nimport { PaginationFooter } from './PaginationFooter/PaginationFooter';\nimport { SearchAsset } from './SearchAsset/SearchAsset';\nimport { isSelectable } from './utils/isSelectable';\n\nimport type { File, Query, FilterCondition } from '../../../../../shared/contracts/files';\nimport type { Folder } from '../../../../../shared/contracts/folders';\nimport type { AllowedTypes } from '../../AssetCard/AssetCard';\n\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 100%;\n`;\n\nconst ActionContainer = styled(Box)`\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n`;\n\ntype NumberKeyedObject = Record<number, string>;\n\ntype StringFilter = {\n [key: string]: string;\n};\n\ntype MimeFilter = {\n [key: string]:\n | string\n | NumberKeyedObject\n | Record<string, string | NumberKeyedObject>\n | undefined;\n};\n\nexport type FilterStructure = {\n [key: string]: MimeFilter | StringFilter | undefined;\n};\n\nexport type Filter = {\n [key in 'mime' | 'createdAt' | 'updatedAt']?:\n | {\n [key in '$contains' | '$notContains' | '$eq' | '$not']?:\n | string[]\n | string\n | { $contains: string[] };\n }\n | undefined;\n};\n\nexport interface FolderWithType extends Omit<Folder, 'children' | 'files'> {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n children?: Folder['children'] & {\n count: number;\n };\n files?: Folder['files'] & {\n count: number;\n };\n}\n\nexport interface FileWithType extends File {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface BrowseStepProps {\n allowedTypes?: AllowedTypes[];\n assets: File[];\n canCreate: boolean;\n canRead: boolean;\n folders?: FolderWithType[];\n multiple?: boolean;\n onAddAsset: () => void;\n onChangeFilters: (filters: FilterCondition<string>[] | Filter[]) => void;\n onChangeFolder: (id: number, path?: string) => void;\n onChangePage: (page: number) => void;\n onChangePageSize: (value: number) => void;\n onChangeSort: (value: Query['sort'] | string) => void;\n onChangeSearch: (_q?: Query['_q'] | null) => void;\n onEditAsset: ((asset: FileWithType) => void) | null;\n onEditFolder: ((folder: FolderRow) => void) | null;\n onSelectAsset: (element: FileRow | FolderRow) => void;\n onSelectAllAsset?: (checked: boolean | string, rows?: FolderRow[] | FileRow[]) => void;\n queryObject: Query;\n pagination: { pageCount: number };\n selectedAssets: FileWithType[] | FolderWithType[];\n}\n\nexport const BrowseStep = ({\n allowedTypes = [],\n assets: rawAssets,\n canCreate,\n canRead,\n folders = [],\n multiple = false,\n onAddAsset,\n onChangeFilters,\n onChangePage,\n onChangePageSize,\n onChangeSearch,\n onChangeSort,\n onChangeFolder,\n onEditAsset,\n onEditFolder,\n onSelectAllAsset,\n onSelectAsset,\n pagination,\n queryObject,\n selectedAssets,\n}: BrowseStepProps) => {\n const { formatMessage } = useIntl();\n const [view, setView] = usePersistentState(localStorageKeys.modalView, viewOptions.GRID);\n const isGridView = view === viewOptions.GRID;\n\n const { data: currentFolder, isLoading: isCurrentFolderLoading } = useFolder(\n queryObject?.folder as number | null | undefined,\n {\n enabled: canRead && !!queryObject?.folder,\n }\n );\n\n const singularTypes = toSingularTypes(allowedTypes);\n const assets = rawAssets.map((asset) => ({\n ...asset,\n isSelectable: isSelectable(singularTypes, asset?.mime),\n type: 'asset',\n }));\n\n const breadcrumbs = !isCurrentFolderLoading\n ? getBreadcrumbDataCM(currentFolder as BreadcrumbDataFolder)\n : undefined;\n\n const allAllowedAsset = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n const areAllAssetSelected =\n allAllowedAsset.length > 0 &&\n selectedAssets.length > 0 &&\n allAllowedAsset.every(\n (asset) => selectedAssets.findIndex((currAsset) => currAsset.id === asset.id) !== -1\n );\n const hasSomeAssetSelected = allAllowedAsset.some(\n (asset) => selectedAssets.findIndex((currAsset) => currAsset.id === asset.id) !== -1\n );\n const isSearching = !!queryObject?._q;\n const isFiltering = !!queryObject?.filters?.$and?.length && queryObject.filters.$and.length > 0;\n const isSearchingOrFiltering = isSearching || isFiltering;\n const assetCount = assets.length;\n const folderCount = folders.length;\n const handleClickFolderCard = (...args: Parameters<typeof onChangeFolder>) => {\n // Search query will always fetch the same results\n // we remove it here to allow navigating in a folder and see the result of this navigation\n onChangeSearch('');\n onChangeFolder(...args);\n };\n\n return (\n <Box>\n {onSelectAllAsset && (\n <Box paddingBottom={4}>\n <Flex justifyContent=\"space-between\" alignItems=\"flex-start\">\n {(assetCount > 0 || folderCount > 0 || isFiltering) && (\n <Flex gap={2} wrap=\"wrap\">\n {multiple && isGridView && (\n <Flex\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n height=\"3.2rem\"\n >\n <Checkbox\n aria-label={formatMessage({\n id: getTrad('bulk.select.label'),\n defaultMessage: 'Select all assets',\n })}\n checked={\n !areAllAssetSelected && hasSomeAssetSelected\n ? 'indeterminate'\n : areAllAssetSelected\n }\n onCheckedChange={onSelectAllAsset}\n />\n </Flex>\n )}\n {isGridView && <SortPicker onChangeSort={onChangeSort} value={queryObject?.sort} />}\n <Filters\n appliedFilters={queryObject?.filters?.$and as ImportedFilterStructure[]}\n onChangeFilters={onChangeFilters}\n />\n </Flex>\n )}\n\n {(assetCount > 0 || folderCount > 0 || isSearching) && (\n <Flex marginLeft=\"auto\" shrink={0} gap={2}>\n <ActionContainer paddingTop={1} paddingBottom={1}>\n <IconButton\n label={\n isGridView\n ? formatMessage({\n id: 'view-switch.list',\n defaultMessage: 'List View',\n })\n : formatMessage({\n id: 'view-switch.grid',\n defaultMessage: 'Grid View',\n })\n }\n onClick={() => setView(isGridView ? viewOptions.LIST : viewOptions.GRID)}\n >\n {isGridView ? <List /> : <GridIcon />}\n </IconButton>\n </ActionContainer>\n <SearchAsset onChangeSearch={onChangeSearch} queryValue={queryObject._q || ''} />\n </Flex>\n )}\n </Flex>\n </Box>\n )}\n\n {canRead && breadcrumbs?.length && breadcrumbs.length > 0 && currentFolder && (\n <Box paddingTop={3}>\n <Breadcrumbs\n onChangeFolder={onChangeFolder}\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs as BreadcrumbDataFolder[]}\n currentFolderId={queryObject?.folder as number | undefined}\n />\n </Box>\n )}\n\n {assetCount === 0 && folderCount === 0 && (\n <Box paddingBottom={6}>\n <EmptyAssets\n size=\"S\"\n count={6}\n action={\n canCreate &&\n !isFiltering &&\n !isSearching && (\n <Button variant=\"secondary\" startIcon={<Plus />} onClick={onAddAsset}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n )\n }\n content={\n // eslint-disable-next-line no-nested-ternary\n isSearchingOrFiltering\n ? formatMessage({\n id: getTrad('list.assets-empty.title-withSearch'),\n defaultMessage: 'There are no assets with the applied filters',\n })\n : canCreate && !isSearching\n ? formatMessage({\n id: getTrad('list.assets.empty'),\n defaultMessage: 'Upload your first assets...',\n })\n : formatMessage({\n id: getTrad('list.assets.empty.no-permissions'),\n defaultMessage: 'The asset list is empty',\n })\n }\n />\n </Box>\n )}\n\n {!isGridView && (folderCount > 0 || assetCount > 0) && (\n <TableList\n allowedTypes={allowedTypes}\n assetCount={assetCount}\n folderCount={folderCount}\n indeterminate={!areAllAssetSelected && hasSomeAssetSelected}\n isFolderSelectionAllowed={false}\n onChangeSort={onChangeSort}\n onChangeFolder={handleClickFolderCard}\n onEditAsset={onEditAsset}\n onEditFolder={onEditFolder}\n onSelectOne={onSelectAsset}\n onSelectAll={onSelectAllAsset!}\n rows={\n [...folders.map((folder) => ({ ...folder, type: 'folder' })), ...assets] as\n | FolderRow[]\n | FileRow[]\n }\n selected={selectedAssets}\n shouldDisableBulkSelect={!multiple}\n sortQuery={queryObject?.sort ?? ''}\n />\n )}\n\n {isGridView && (\n <>\n {folderCount > 0 && (\n <FolderGridList\n title={\n (((isSearchingOrFiltering && assetCount > 0) || !isSearchingOrFiltering) &&\n formatMessage(\n {\n id: getTrad('list.folders.title'),\n defaultMessage: 'Folders ({count})',\n },\n { count: folderCount }\n )) ||\n ''\n }\n >\n {folders.map((folder) => {\n return (\n <Grid.Item\n col={3}\n m={4}\n s={6}\n xs={12}\n key={`folder-${folder.id}`}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FolderCard\n ariaLabel={folder.name}\n id={`folder-${folder.id}`}\n onClick={() => handleClickFolderCard(folder.id, folder.path)}\n cardActions={\n onEditFolder && (\n <IconButton\n withTooltip={false}\n label={formatMessage({\n id: getTrad('list.folder.edit'),\n defaultMessage: 'Edit folder',\n })}\n onClick={() => onEditFolder(folder)}\n >\n <Pencil />\n </IconButton>\n )\n }\n >\n <FolderCardBody>\n <FolderCardBodyAction\n onClick={() => handleClickFolderCard(folder.id, folder.path)}\n >\n <Flex tag=\"h2\" direction=\"column\" alignItems=\"start\" maxWidth=\"100%\">\n <TypographyMaxWidth\n fontWeight=\"semiBold\"\n ellipsis\n textColor=\"neutral800\"\n >\n {folder.name}\n {/* VisuallyHidden dash here allows to separate folder title and count informations\n for voice reading structure purpose */}\n <VisuallyHidden>-</VisuallyHidden>\n </TypographyMaxWidth>\n <TypographyMaxWidth\n tag=\"span\"\n textColor=\"neutral600\"\n variant=\"pi\"\n ellipsis\n >\n {formatMessage(\n {\n id: getTrad('list.folder.subtitle'),\n defaultMessage:\n '{folderCount, plural, one {# folder} other {# folders}}, {filesCount, plural, one {# asset} other {# assets}}',\n },\n {\n folderCount: folder.children?.count,\n filesCount: folder.files?.count,\n }\n )}\n </TypographyMaxWidth>\n </Flex>\n </FolderCardBodyAction>\n </FolderCardBody>\n </FolderCard>\n </Grid.Item>\n );\n })}\n </FolderGridList>\n )}\n\n {assetCount > 0 && folderCount > 0 && (\n <Box paddingTop={6}>\n <Divider />\n </Box>\n )}\n\n {assetCount > 0 && (\n <Box paddingTop={6}>\n <AssetGridList\n allowedTypes={allowedTypes}\n size=\"S\"\n assets={assets}\n onSelectAsset={onSelectAsset}\n selectedAssets={selectedAssets as FileWithType[]}\n onEditAsset={onEditAsset!}\n title={\n ((!isSearchingOrFiltering || (isSearchingOrFiltering && folderCount > 0)) &&\n queryObject.page === 1 &&\n formatMessage(\n {\n id: getTrad('list.assets.title'),\n defaultMessage: 'Assets ({count})',\n },\n { count: assetCount }\n )) ||\n ''\n }\n />\n </Box>\n )}\n </>\n )}\n\n {pagination.pageCount > 0 && (\n <Flex\n justifyContent=\"space-between\"\n paddingTop={4}\n position=\"relative\"\n zIndex={1}\n overflow=\"hidden\"\n >\n <PageSize\n pageSize={queryObject.pageSize! as number}\n onChangePageSize={onChangePageSize}\n />\n <PaginationFooter\n activePage={queryObject.page as number}\n onChangePage={onChangePage}\n pagination={pagination}\n />\n </Flex>\n )}\n </Box>\n );\n};\n"],"names":["TypographyMaxWidth","styled","Typography","ActionContainer","Box","theme","colors","neutral500","BrowseStep","allowedTypes","assets","rawAssets","canCreate","canRead","folders","multiple","onAddAsset","onChangeFilters","onChangePage","onChangePageSize","onChangeSearch","onChangeSort","onChangeFolder","onEditAsset","onEditFolder","onSelectAllAsset","onSelectAsset","pagination","queryObject","selectedAssets","formatMessage","useIntl","view","setView","usePersistentState","localStorageKeys","modalView","viewOptions","GRID","isGridView","data","currentFolder","isLoading","isCurrentFolderLoading","useFolder","folder","enabled","singularTypes","toSingularTypes","map","asset","isSelectable","mime","type","breadcrumbs","getBreadcrumbDataCM","undefined","allAllowedAsset","getAllowedFiles","areAllAssetSelected","length","every","findIndex","currAsset","id","hasSomeAssetSelected","some","isSearching","_q","isFiltering","filters","$and","isSearchingOrFiltering","assetCount","folderCount","handleClickFolderCard","args","_jsxs","_jsx","paddingBottom","Flex","justifyContent","alignItems","gap","wrap","paddingLeft","paddingRight","background","hasRadius","borderColor","height","Checkbox","aria-label","getTrad","defaultMessage","checked","onCheckedChange","SortPicker","value","sort","Filters","appliedFilters","marginLeft","shrink","paddingTop","IconButton","label","onClick","LIST","List","GridIcon","SearchAsset","queryValue","Breadcrumbs","currentFolderId","EmptyAssets","size","count","action","Button","variant","startIcon","Plus","content","TableList","indeterminate","isFolderSelectionAllowed","onSelectOne","onSelectAll","rows","selected","shouldDisableBulkSelect","sortQuery","_Fragment","FolderGridList","title","Grid","Item","col","m","s","xs","direction","FolderCard","ariaLabel","name","path","cardActions","withTooltip","Pencil","FolderCardBody","FolderCardBodyAction","tag","maxWidth","fontWeight","ellipsis","textColor","VisuallyHidden","children","filesCount","files","Divider","AssetGridList","page","pageCount","position","zIndex","overflow","PageSize","pageSize","PaginationFooter","activePage"],"mappings":"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"}
1
+ {"version":3,"file":"BrowseStep.js","sources":["../../../../../admin/src/components/AssetDialog/BrowseStep/BrowseStep.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport {\n Checkbox,\n Box,\n Button,\n Divider,\n Flex,\n IconButton,\n Typography,\n VisuallyHidden,\n Grid,\n} from '@strapi/design-system';\nimport { GridFour as GridIcon, List, Pencil, Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { localStorageKeys, viewOptions } from '../../../constants';\nimport { useFolder } from '../../../hooks/useFolder';\nimport { usePersistentState } from '../../../hooks/usePersistentState';\nimport {\n getBreadcrumbDataCM,\n toSingularTypes,\n getTrad,\n getAllowedFiles,\n BreadcrumbDataFolder,\n AllowedFiles,\n} from '../../../utils';\nimport { AssetGridList } from '../../AssetGridList/AssetGridList';\nimport { Breadcrumbs } from '../../Breadcrumbs/Breadcrumbs';\nimport { EmptyAssets } from '../../EmptyAssets/EmptyAssets';\nimport { FolderCard } from '../../FolderCard/FolderCard/FolderCard';\nimport { FolderCardBody } from '../../FolderCard/FolderCardBody/FolderCardBody';\nimport { FolderCardBodyAction } from '../../FolderCard/FolderCardBodyAction/FolderCardBodyAction';\nimport { FolderGridList } from '../../FolderGridList/FolderGridList';\nimport { SortPicker } from '../../SortPicker/SortPicker';\nimport { TableList, FolderRow, FileRow } from '../../TableList/TableList';\n\nimport { Filters, FilterStructure as ImportedFilterStructure } from './Filters';\nimport { PageSize } from './PageSize';\nimport { PaginationFooter } from './PaginationFooter/PaginationFooter';\nimport { SearchAsset } from './SearchAsset/SearchAsset';\nimport { isSelectable } from './utils/isSelectable';\n\nimport type { File, Query, FilterCondition } from '../../../../../shared/contracts/files';\nimport type { Folder } from '../../../../../shared/contracts/folders';\nimport type { AllowedTypes } from '../../AssetCard/AssetCard';\n\nconst TypographyMaxWidth = styled(Typography)`\n max-width: 100%;\n`;\n\nconst ActionContainer = styled(Box)`\n svg {\n path {\n fill: ${({ theme }) => theme.colors.neutral500};\n }\n }\n`;\n\ntype NumberKeyedObject = Record<number, string>;\n\ntype StringFilter = {\n [key: string]: string;\n};\n\ntype MimeFilter = {\n [key: string]:\n | string\n | NumberKeyedObject\n | Record<string, string | NumberKeyedObject>\n | undefined;\n};\n\nexport type FilterStructure = {\n [key: string]: MimeFilter | StringFilter | undefined;\n};\n\nexport type Filter = {\n [key in 'mime' | 'createdAt' | 'updatedAt']?:\n | {\n [key in '$contains' | '$notContains' | '$eq' | '$not']?:\n | string[]\n | string\n | { $contains: string[] };\n }\n | undefined;\n};\n\nexport interface FolderWithType extends Omit<Folder, 'children' | 'files'> {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n children?: Folder['children'] & {\n count: number;\n };\n files?: Folder['files'] & {\n count: number;\n };\n}\n\nexport interface FileWithType extends File {\n folderURL?: string;\n isSelectable?: boolean;\n type?: string;\n}\n\nexport interface BrowseStepProps {\n allowedTypes?: AllowedTypes[];\n assets: File[];\n canCreate: boolean;\n canRead: boolean;\n folders?: FolderWithType[];\n multiple?: boolean;\n onAddAsset: () => void;\n onChangeFilters: (filters: FilterCondition<string>[] | Filter[]) => void;\n onChangeFolder: (id: number, path?: string) => void;\n onChangePage: (page: number) => void;\n onChangePageSize: (value: number) => void;\n onChangeSort: (value: Query['sort'] | string) => void;\n onChangeSearch: (_q?: Query['_q'] | null) => void;\n onEditAsset: ((asset: FileWithType) => void) | null;\n onEditFolder: ((folder: FolderRow) => void) | null;\n onSelectAsset: (element: FileRow | FolderRow) => void;\n onSelectAllAsset?: (checked: boolean | string, rows?: FolderRow[] | FileRow[]) => void;\n queryObject: Query;\n pagination: { pageCount: number };\n selectedAssets: FileWithType[] | FolderWithType[];\n}\n\nexport const BrowseStep = ({\n allowedTypes = [],\n assets: rawAssets,\n canCreate,\n canRead,\n folders = [],\n multiple = false,\n onAddAsset,\n onChangeFilters,\n onChangePage,\n onChangePageSize,\n onChangeSearch,\n onChangeSort,\n onChangeFolder,\n onEditAsset,\n onEditFolder,\n onSelectAllAsset,\n onSelectAsset,\n pagination,\n queryObject,\n selectedAssets,\n}: BrowseStepProps) => {\n const { formatMessage } = useIntl();\n const [view, setView] = usePersistentState(localStorageKeys.modalView, viewOptions.GRID);\n const isGridView = view === viewOptions.GRID;\n\n const { data: currentFolder, isLoading: isCurrentFolderLoading } = useFolder(\n queryObject?.folder as number | null | undefined,\n {\n enabled: canRead && !!queryObject?.folder,\n }\n );\n\n const singularTypes = toSingularTypes(allowedTypes);\n const assets = rawAssets.map((asset) => ({\n ...asset,\n isSelectable: isSelectable(singularTypes, asset?.mime),\n type: 'asset',\n }));\n\n const breadcrumbs = !isCurrentFolderLoading\n ? getBreadcrumbDataCM(currentFolder as BreadcrumbDataFolder)\n : undefined;\n\n const allAllowedAsset = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n const areAllAssetSelected =\n allAllowedAsset.length > 0 &&\n selectedAssets.length > 0 &&\n allAllowedAsset.every(\n (asset) => selectedAssets.findIndex((currAsset) => currAsset.id === asset.id) !== -1\n );\n const hasSomeAssetSelected = allAllowedAsset.some(\n (asset) => selectedAssets.findIndex((currAsset) => currAsset.id === asset.id) !== -1\n );\n const isSearching = !!queryObject?._q;\n const isFiltering = !!queryObject?.filters?.$and?.length && queryObject.filters.$and.length > 0;\n const isSearchingOrFiltering = isSearching || isFiltering;\n const assetCount = assets.length;\n const folderCount = folders.length;\n const handleClickFolderCard = (...args: Parameters<typeof onChangeFolder>) => {\n // Search query will always fetch the same results\n // we remove it here to allow navigating in a folder and see the result of this navigation\n onChangeSearch('');\n onChangeFolder(...args);\n };\n\n return (\n <Box>\n {onSelectAllAsset && (\n <Box paddingBottom={4}>\n <Flex justifyContent=\"space-between\" alignItems=\"flex-start\">\n {(assetCount > 0 || folderCount > 0 || isFiltering) && (\n <Flex gap={2} wrap=\"wrap\">\n {multiple && isGridView && (\n <Flex\n paddingLeft={2}\n paddingRight={2}\n background=\"neutral0\"\n hasRadius\n borderColor=\"neutral200\"\n height=\"3.2rem\"\n >\n <Checkbox\n aria-label={formatMessage({\n id: getTrad('bulk.select.label'),\n defaultMessage: 'Select all assets',\n })}\n checked={\n !areAllAssetSelected && hasSomeAssetSelected\n ? 'indeterminate'\n : areAllAssetSelected\n }\n onCheckedChange={onSelectAllAsset}\n />\n </Flex>\n )}\n {isGridView && <SortPicker onChangeSort={onChangeSort} value={queryObject?.sort} />}\n <Filters\n appliedFilters={queryObject?.filters?.$and as ImportedFilterStructure[]}\n onChangeFilters={onChangeFilters}\n />\n </Flex>\n )}\n\n {(assetCount > 0 || folderCount > 0 || isSearching) && (\n <Flex marginLeft=\"auto\" shrink={0} gap={2}>\n <ActionContainer paddingTop={1} paddingBottom={1}>\n <IconButton\n label={\n isGridView\n ? formatMessage({\n id: 'view-switch.list',\n defaultMessage: 'List View',\n })\n : formatMessage({\n id: 'view-switch.grid',\n defaultMessage: 'Grid View',\n })\n }\n onClick={() => setView(isGridView ? viewOptions.LIST : viewOptions.GRID)}\n >\n {isGridView ? <List /> : <GridIcon />}\n </IconButton>\n </ActionContainer>\n <SearchAsset onChangeSearch={onChangeSearch} queryValue={queryObject._q || ''} />\n </Flex>\n )}\n </Flex>\n </Box>\n )}\n\n {canRead && breadcrumbs?.length && breadcrumbs.length > 0 && currentFolder && (\n <Box paddingTop={3}>\n <Breadcrumbs\n onChangeFolder={onChangeFolder}\n label={formatMessage({\n id: getTrad('header.breadcrumbs.nav.label'),\n defaultMessage: 'Folders navigation',\n })}\n breadcrumbs={breadcrumbs as BreadcrumbDataFolder[]}\n currentFolderId={queryObject?.folder as number | undefined}\n />\n </Box>\n )}\n\n {assetCount === 0 && folderCount === 0 && (\n <Box paddingBottom={6}>\n <EmptyAssets\n size=\"S\"\n count={6}\n action={\n canCreate &&\n !isFiltering &&\n !isSearching && (\n <Button variant=\"secondary\" startIcon={<Plus />} onClick={onAddAsset}>\n {formatMessage({\n id: getTrad('header.actions.add-assets'),\n defaultMessage: 'Add new assets',\n })}\n </Button>\n )\n }\n content={\n // eslint-disable-next-line no-nested-ternary\n isSearchingOrFiltering\n ? formatMessage({\n id: getTrad('list.assets-empty.title-withSearch'),\n defaultMessage: 'There are no assets with the applied filters',\n })\n : canCreate && !isSearching\n ? formatMessage({\n id: getTrad('list.assets.empty'),\n defaultMessage: 'Upload your first assets...',\n })\n : formatMessage({\n id: getTrad('list.assets.empty.no-permissions'),\n defaultMessage: 'The asset list is empty',\n })\n }\n />\n </Box>\n )}\n\n {!isGridView && (folderCount > 0 || assetCount > 0) && (\n <TableList\n allowedTypes={allowedTypes}\n assetCount={assetCount}\n folderCount={folderCount}\n indeterminate={!areAllAssetSelected && hasSomeAssetSelected}\n isFolderSelectionAllowed={false}\n onChangeSort={onChangeSort}\n onChangeFolder={handleClickFolderCard}\n onEditAsset={onEditAsset}\n onEditFolder={onEditFolder}\n onSelectOne={onSelectAsset}\n onSelectAll={onSelectAllAsset!}\n rows={\n [...folders.map((folder) => ({ ...folder, type: 'folder' })), ...assets] as\n | FolderRow[]\n | FileRow[]\n }\n selected={selectedAssets}\n shouldDisableBulkSelect={!multiple}\n sortQuery={queryObject?.sort ?? ''}\n />\n )}\n\n {isGridView && (\n <>\n {folderCount > 0 && (\n <FolderGridList\n title={\n (((isSearchingOrFiltering && assetCount > 0) || !isSearchingOrFiltering) &&\n formatMessage(\n {\n id: getTrad('list.folders.title'),\n defaultMessage: 'Folders ({count})',\n },\n { count: folderCount }\n )) ||\n ''\n }\n >\n {folders.map((folder) => {\n return (\n <Grid.Item\n col={3}\n m={4}\n s={6}\n xs={12}\n key={`folder-${folder.id}`}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <FolderCard\n ariaLabel={folder.name}\n id={`folder-${folder.id}`}\n onClick={() => handleClickFolderCard(folder.id, folder.path)}\n cardActions={\n onEditFolder && (\n <IconButton\n withTooltip={false}\n label={formatMessage({\n id: getTrad('list.folder.edit'),\n defaultMessage: 'Edit folder',\n })}\n onClick={() => onEditFolder(folder)}\n >\n <Pencil />\n </IconButton>\n )\n }\n >\n <FolderCardBody>\n <FolderCardBodyAction\n onClick={() => handleClickFolderCard(folder.id, folder.path)}\n >\n <Flex tag=\"h2\" direction=\"column\" alignItems=\"start\" maxWidth=\"100%\">\n <TypographyMaxWidth\n fontWeight=\"semiBold\"\n ellipsis\n textColor=\"neutral800\"\n >\n {folder.name}\n {/* VisuallyHidden dash here allows to separate folder title and count informations\n for voice reading structure purpose */}\n <VisuallyHidden>-</VisuallyHidden>\n </TypographyMaxWidth>\n <TypographyMaxWidth\n tag=\"span\"\n textColor=\"neutral600\"\n variant=\"pi\"\n ellipsis\n >\n {formatMessage(\n {\n id: getTrad('list.folder.subtitle'),\n defaultMessage:\n '{folderCount, plural, one {# folder} other {# folders}}, {filesCount, plural, one {# asset} other {# assets}}',\n },\n {\n folderCount: folder.children?.count,\n filesCount: folder.files?.count,\n }\n )}\n </TypographyMaxWidth>\n </Flex>\n </FolderCardBodyAction>\n </FolderCardBody>\n </FolderCard>\n </Grid.Item>\n );\n })}\n </FolderGridList>\n )}\n\n {assetCount > 0 && folderCount > 0 && (\n <Box paddingTop={6}>\n <Divider />\n </Box>\n )}\n\n {assetCount > 0 && (\n <Box paddingTop={6}>\n <AssetGridList\n allowedTypes={allowedTypes}\n size=\"S\"\n assets={assets}\n onSelectAsset={onSelectAsset}\n selectedAssets={selectedAssets as FileWithType[]}\n onEditAsset={onEditAsset!}\n title={\n ((!isSearchingOrFiltering || (isSearchingOrFiltering && folderCount > 0)) &&\n queryObject.page === 1 &&\n formatMessage(\n {\n id: getTrad('list.assets.title'),\n defaultMessage: 'Assets ({count})',\n },\n { count: assetCount }\n )) ||\n ''\n }\n />\n </Box>\n )}\n </>\n )}\n\n {pagination.pageCount > 0 && (\n <Flex\n justifyContent=\"space-between\"\n paddingTop={4}\n position=\"relative\"\n zIndex={1}\n overflow=\"hidden\"\n >\n <PageSize\n pageSize={queryObject.pageSize! as number}\n onChangePageSize={onChangePageSize}\n />\n <PaginationFooter\n activePage={queryObject.page as number}\n onChangePage={onChangePage}\n pagination={pagination}\n />\n </Flex>\n )}\n </Box>\n );\n};\n"],"names":["TypographyMaxWidth","styled","Typography","ActionContainer","Box","theme","colors","neutral500","BrowseStep","allowedTypes","assets","rawAssets","canCreate","canRead","folders","multiple","onAddAsset","onChangeFilters","onChangePage","onChangePageSize","onChangeSearch","onChangeSort","onChangeFolder","onEditAsset","onEditFolder","onSelectAllAsset","onSelectAsset","pagination","queryObject","selectedAssets","formatMessage","useIntl","view","setView","usePersistentState","localStorageKeys","modalView","viewOptions","GRID","isGridView","data","currentFolder","isLoading","isCurrentFolderLoading","useFolder","folder","enabled","singularTypes","toSingularTypes","map","asset","isSelectable","mime","type","breadcrumbs","getBreadcrumbDataCM","undefined","allAllowedAsset","getAllowedFiles","areAllAssetSelected","length","every","findIndex","currAsset","id","hasSomeAssetSelected","some","isSearching","_q","isFiltering","filters","$and","isSearchingOrFiltering","assetCount","folderCount","handleClickFolderCard","args","_jsxs","_jsx","paddingBottom","Flex","justifyContent","alignItems","gap","wrap","paddingLeft","paddingRight","background","hasRadius","borderColor","height","Checkbox","aria-label","getTrad","defaultMessage","checked","onCheckedChange","SortPicker","value","sort","Filters","appliedFilters","marginLeft","shrink","paddingTop","IconButton","label","onClick","LIST","List","GridIcon","SearchAsset","queryValue","Breadcrumbs","currentFolderId","EmptyAssets","size","count","action","Button","variant","startIcon","Plus","content","TableList","indeterminate","isFolderSelectionAllowed","onSelectOne","onSelectAll","rows","selected","shouldDisableBulkSelect","sortQuery","_Fragment","FolderGridList","title","Grid","Item","col","m","s","xs","direction","FolderCard","ariaLabel","name","path","cardActions","withTooltip","Pencil","FolderCardBody","FolderCardBodyAction","tag","maxWidth","fontWeight","ellipsis","textColor","VisuallyHidden","children","filesCount","files","Divider","AssetGridList","page","pageCount","position","zIndex","overflow","PageSize","pageSize","PaginationFooter","activePage"],"mappings":"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"}
@@ -10,6 +10,7 @@ import 'byte-size';
10
10
  import 'date-fns';
11
11
  import { getAllowedFiles } from '../../../utils/getAllowedFiles.mjs';
12
12
  import { getBreadcrumbDataCM } from '../../../utils/getBreadcrumbDataCM.mjs';
13
+ import '@strapi/admin/strapi-admin';
13
14
  import 'qs';
14
15
  import { getTrad } from '../../../utils/getTrad.mjs';
15
16
  import { toSingularTypes } from '../../../utils/toSingularTypes.mjs';