@strapi/upload 5.30.0 → 5.31.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 (281) hide show
  1. package/dist/admin/ai/components/AIAssetCard.js +27 -7
  2. package/dist/admin/ai/components/AIAssetCard.js.map +1 -1
  3. package/dist/admin/ai/components/AIAssetCard.mjs +21 -1
  4. package/dist/admin/ai/components/AIAssetCard.mjs.map +1 -1
  5. package/dist/admin/ai/components/AIUploadModal.js +1 -1
  6. package/dist/admin/ai/components/AIUploadModal.js.map +1 -1
  7. package/dist/admin/ai/components/AIUploadModal.mjs +1 -1
  8. package/dist/admin/ai/components/AIUploadModal.mjs.map +1 -1
  9. package/dist/admin/components/AssetCard/AssetCard.js +5 -4
  10. package/dist/admin/components/AssetCard/AssetCard.js.map +1 -1
  11. package/dist/admin/components/AssetCard/AssetCard.mjs +2 -1
  12. package/dist/admin/components/AssetCard/AssetCard.mjs.map +1 -1
  13. package/dist/admin/components/AssetCard/AssetCardBase.js +1 -1
  14. package/dist/admin/components/AssetCard/AssetCardBase.mjs +1 -1
  15. package/dist/admin/components/AssetCard/DocAssetCard.js +3 -7
  16. package/dist/admin/components/AssetCard/DocAssetCard.js.map +1 -1
  17. package/dist/admin/components/AssetCard/DocAssetCard.mjs +3 -7
  18. package/dist/admin/components/AssetCard/DocAssetCard.mjs.map +1 -1
  19. package/dist/admin/components/AssetCard/ImageAssetCard.js +1 -1
  20. package/dist/admin/components/AssetCard/ImageAssetCard.js.map +1 -1
  21. package/dist/admin/components/AssetCard/ImageAssetCard.mjs +1 -1
  22. package/dist/admin/components/AssetCard/ImageAssetCard.mjs.map +1 -1
  23. package/dist/admin/components/AssetCard/UploadingAssetCard.js +5 -4
  24. package/dist/admin/components/AssetCard/UploadingAssetCard.js.map +1 -1
  25. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs +2 -1
  26. package/dist/admin/components/AssetCard/UploadingAssetCard.mjs.map +1 -1
  27. package/dist/admin/components/AssetCard/VideoAssetCard.js +1 -1
  28. package/dist/admin/components/AssetCard/VideoAssetCard.mjs +1 -1
  29. package/dist/admin/components/AssetDialog/AssetDialog.js +1 -1
  30. package/dist/admin/components/AssetDialog/AssetDialog.mjs +1 -1
  31. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js +2 -0
  32. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  33. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs +2 -0
  34. package/dist/admin/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  35. package/dist/admin/components/AssetDialog/BrowseStep/Filters.js +1 -1
  36. package/dist/admin/components/AssetDialog/BrowseStep/Filters.mjs +1 -1
  37. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.js +1 -1
  38. package/dist/admin/components/AssetDialog/BrowseStep/SearchAsset/SearchAsset.mjs +1 -1
  39. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.js +1 -1
  40. package/dist/admin/components/AssetDialog/SelectedStep/SelectedStep.mjs +1 -1
  41. package/dist/admin/components/Breadcrumbs/Breadcrumbs.js.map +1 -1
  42. package/dist/admin/components/Breadcrumbs/Breadcrumbs.mjs.map +1 -1
  43. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.js +1 -1
  44. package/dist/admin/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +1 -1
  45. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.js +1 -1
  46. package/dist/admin/components/BulkMoveDialog/BulkMoveDialog.mjs +1 -1
  47. package/dist/admin/components/CopyLinkButton/CopyLinkButton.js +1 -1
  48. package/dist/admin/components/CopyLinkButton/CopyLinkButton.mjs +1 -1
  49. package/dist/admin/components/EditAssetDialog/EditAssetContent.js +1 -1
  50. package/dist/admin/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  51. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs +1 -1
  52. package/dist/admin/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  53. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js +15 -34
  54. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.js.map +1 -1
  55. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs +15 -34
  56. package/dist/admin/components/EditAssetDialog/PreviewBox/AssetPreview.mjs.map +1 -1
  57. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.js +1 -1
  58. package/dist/admin/components/EditAssetDialog/PreviewBox/CroppingActions.mjs +1 -1
  59. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js +3 -2
  60. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.js.map +1 -1
  61. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs +2 -1
  62. package/dist/admin/components/EditAssetDialog/PreviewBox/PreviewBox.mjs.map +1 -1
  63. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.js +1 -1
  64. package/dist/admin/components/EditAssetDialog/ReplaceMediaButton.mjs +1 -1
  65. package/dist/admin/components/EditFolderDialog/EditFolderDialog.js +1 -1
  66. package/dist/admin/components/EditFolderDialog/EditFolderDialog.mjs +1 -1
  67. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.js +1 -1
  68. package/dist/admin/components/EditFolderDialog/ModalHeader/ModalHeader.mjs +1 -1
  69. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.js.map +1 -1
  70. package/dist/admin/components/EmptyAssets/EmptyAssetGrid.mjs.map +1 -1
  71. package/dist/admin/components/FilterList/FilterList.js.map +1 -1
  72. package/dist/admin/components/FilterList/FilterList.mjs.map +1 -1
  73. package/dist/admin/components/FilterList/FilterTag.js.map +1 -1
  74. package/dist/admin/components/FilterList/FilterTag.mjs.map +1 -1
  75. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.js.map +1 -1
  76. package/dist/admin/components/FolderCard/FolderCardBody/FolderCardBody.mjs.map +1 -1
  77. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.js.map +1 -1
  78. package/dist/admin/components/FolderCard/FolderCardCheckbox/FolderCardCheckbox.mjs.map +1 -1
  79. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js +8 -10
  80. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.js.map +1 -1
  81. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs +5 -7
  82. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAsset.mjs.map +1 -1
  83. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.js +1 -1
  84. package/dist/admin/components/MediaLibraryInput/Carousel/CarouselAssetActions.mjs +1 -1
  85. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js +1 -0
  86. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.js.map +1 -1
  87. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs +1 -0
  88. package/dist/admin/components/MediaLibraryInput/Carousel/EmptyStateAsset.mjs.map +1 -1
  89. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +1 -1
  90. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  91. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +1 -1
  92. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  93. package/dist/admin/components/SelectTree/Option.js.map +1 -1
  94. package/dist/admin/components/SelectTree/Option.mjs.map +1 -1
  95. package/dist/admin/components/SelectTree/SelectTree.js.map +1 -1
  96. package/dist/admin/components/SelectTree/SelectTree.mjs.map +1 -1
  97. package/dist/admin/components/SelectTree/utils/flattenTree.js.map +1 -1
  98. package/dist/admin/components/SelectTree/utils/flattenTree.mjs.map +1 -1
  99. package/dist/admin/components/SortPicker/SortPicker.js +1 -0
  100. package/dist/admin/components/SortPicker/SortPicker.js.map +1 -1
  101. package/dist/admin/components/SortPicker/SortPicker.mjs +1 -0
  102. package/dist/admin/components/SortPicker/SortPicker.mjs.map +1 -1
  103. package/dist/admin/components/TableList/CellContent.js +1 -1
  104. package/dist/admin/components/TableList/CellContent.mjs +1 -1
  105. package/dist/admin/components/TableList/PreviewCell.js +5 -4
  106. package/dist/admin/components/TableList/PreviewCell.js.map +1 -1
  107. package/dist/admin/components/TableList/PreviewCell.mjs +2 -1
  108. package/dist/admin/components/TableList/PreviewCell.mjs.map +1 -1
  109. package/dist/admin/components/TableList/TableList.js +1 -0
  110. package/dist/admin/components/TableList/TableList.js.map +1 -1
  111. package/dist/admin/components/TableList/TableList.mjs +1 -0
  112. package/dist/admin/components/TableList/TableList.mjs.map +1 -1
  113. package/dist/admin/components/TableList/TableRows.js +1 -0
  114. package/dist/admin/components/TableList/TableRows.js.map +1 -1
  115. package/dist/admin/components/TableList/TableRows.mjs +1 -0
  116. package/dist/admin/components/TableList/TableRows.mjs.map +1 -1
  117. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.js +1 -1
  118. package/dist/admin/components/UploadAssetDialog/AddAssetStep/AddAssetStep.mjs +1 -1
  119. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js +1 -0
  120. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.js.map +1 -1
  121. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs +1 -0
  122. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromComputerForm.mjs.map +1 -1
  123. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.js +1 -1
  124. package/dist/admin/components/UploadAssetDialog/AddAssetStep/FromUrlForm.mjs +1 -1
  125. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js +1 -1
  126. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.js.map +1 -1
  127. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs +1 -1
  128. package/dist/admin/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.mjs.map +1 -1
  129. package/dist/admin/components/UploadProgress/UploadProgress.js.map +1 -1
  130. package/dist/admin/components/UploadProgress/UploadProgress.mjs.map +1 -1
  131. package/dist/admin/constants.js +5 -10
  132. package/dist/admin/constants.js.map +1 -1
  133. package/dist/admin/constants.mjs +5 -11
  134. package/dist/admin/constants.mjs.map +1 -1
  135. package/dist/admin/enums.js +20 -0
  136. package/dist/admin/enums.js.map +1 -0
  137. package/dist/admin/enums.mjs +17 -0
  138. package/dist/admin/enums.mjs.map +1 -0
  139. package/dist/admin/hooks/useBulkEdit.js +1 -1
  140. package/dist/admin/hooks/useBulkEdit.mjs +1 -1
  141. package/dist/admin/hooks/useBulkMove.js +1 -1
  142. package/dist/admin/hooks/useBulkMove.mjs +1 -1
  143. package/dist/admin/hooks/useBulkRemove.js +1 -1
  144. package/dist/admin/hooks/useBulkRemove.mjs +1 -1
  145. package/dist/admin/hooks/useEditAsset.js +1 -1
  146. package/dist/admin/hooks/useEditAsset.js.map +1 -1
  147. package/dist/admin/hooks/useEditAsset.mjs +1 -1
  148. package/dist/admin/hooks/useEditAsset.mjs.map +1 -1
  149. package/dist/admin/hooks/useEditFolder.js.map +1 -1
  150. package/dist/admin/hooks/useEditFolder.mjs.map +1 -1
  151. package/dist/admin/hooks/useFolder.js +1 -1
  152. package/dist/admin/hooks/useFolder.js.map +1 -1
  153. package/dist/admin/hooks/useFolder.mjs +1 -1
  154. package/dist/admin/hooks/useFolder.mjs.map +1 -1
  155. package/dist/admin/hooks/useFolderStructure.js +1 -1
  156. package/dist/admin/hooks/useFolderStructure.mjs +1 -1
  157. package/dist/admin/hooks/useRemoveAsset.js.map +1 -1
  158. package/dist/admin/hooks/useRemoveAsset.mjs.map +1 -1
  159. package/dist/admin/hooks/useTracking.js +4 -1
  160. package/dist/admin/hooks/useTracking.js.map +1 -1
  161. package/dist/admin/hooks/useTracking.mjs +5 -2
  162. package/dist/admin/hooks/useTracking.mjs.map +1 -1
  163. package/dist/admin/hooks/useUpload.js.map +1 -1
  164. package/dist/admin/hooks/useUpload.mjs.map +1 -1
  165. package/dist/admin/index.js +1 -0
  166. package/dist/admin/index.js.map +1 -1
  167. package/dist/admin/index.mjs +1 -0
  168. package/dist/admin/index.mjs.map +1 -1
  169. package/dist/admin/package.json.js +7 -6
  170. package/dist/admin/package.json.js.map +1 -1
  171. package/dist/admin/package.json.mjs +7 -6
  172. package/dist/admin/package.json.mjs.map +1 -1
  173. package/dist/admin/pages/App/App.js +1 -1
  174. package/dist/admin/pages/App/App.mjs +1 -1
  175. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js +1 -1
  176. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  177. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs +1 -1
  178. package/dist/admin/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  179. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js +1 -0
  180. package/dist/admin/pages/App/ConfigureTheView/components/Settings.js.map +1 -1
  181. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs +1 -0
  182. package/dist/admin/pages/App/ConfigureTheView/components/Settings.mjs.map +1 -1
  183. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.js.map +1 -1
  184. package/dist/admin/pages/App/ConfigureTheView/state/actionTypes.mjs.map +1 -1
  185. package/dist/admin/pages/App/MediaLibrary/MediaLibrary.js +1 -0
  186. package/dist/admin/pages/App/MediaLibrary/MediaLibrary.js.map +1 -1
  187. package/dist/admin/pages/App/MediaLibrary/MediaLibrary.mjs +1 -0
  188. package/dist/admin/pages/App/MediaLibrary/MediaLibrary.mjs.map +1 -1
  189. package/dist/admin/pages/App/MediaLibrary/components/BulkActions.js +1 -1
  190. package/dist/admin/pages/App/MediaLibrary/components/BulkActions.mjs +1 -1
  191. package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.js +1 -1
  192. package/dist/admin/pages/App/MediaLibrary/components/EmptyOrNoPermissions.mjs +1 -1
  193. package/dist/admin/pages/App/MediaLibrary/components/Filters.js +1 -1
  194. package/dist/admin/pages/App/MediaLibrary/components/Filters.mjs +1 -1
  195. package/dist/admin/pages/App/MediaLibrary/components/Header.js +1 -1
  196. package/dist/admin/pages/App/MediaLibrary/components/Header.js.map +1 -1
  197. package/dist/admin/pages/App/MediaLibrary/components/Header.mjs +1 -1
  198. package/dist/admin/pages/App/MediaLibrary/components/Header.mjs.map +1 -1
  199. package/dist/admin/pages/SettingsPage/SettingsPage.js +1 -0
  200. package/dist/admin/pages/SettingsPage/SettingsPage.js.map +1 -1
  201. package/dist/admin/pages/SettingsPage/SettingsPage.mjs +1 -0
  202. package/dist/admin/pages/SettingsPage/SettingsPage.mjs.map +1 -1
  203. package/dist/admin/src/components/AssetCard/UploadingAssetCard.d.ts +1 -1
  204. package/dist/admin/src/components/UploadAssetDialog/PendingAssetStep/PendingAssetStep.d.ts +1 -1
  205. package/dist/admin/src/constants.d.ts +0 -6
  206. package/dist/admin/src/enums.d.ts +12 -0
  207. package/dist/admin/src/utils/icons.d.ts +14 -0
  208. package/dist/admin/src/utils/rawFileToAsset.d.ts +1 -1
  209. package/dist/admin/src/utils/typeFromMime.d.ts +2 -2
  210. package/dist/admin/src/utils/urlsToAssets.d.ts +1 -1
  211. package/dist/admin/translations/pt-BR.json.js +75 -7
  212. package/dist/admin/translations/pt-BR.json.js.map +1 -1
  213. package/dist/admin/translations/pt-BR.json.mjs +75 -7
  214. package/dist/admin/translations/pt-BR.json.mjs.map +1 -1
  215. package/dist/admin/utils/formatBytes.js.map +1 -1
  216. package/dist/admin/utils/formatBytes.mjs.map +1 -1
  217. package/dist/admin/utils/formatDuration.js.map +1 -1
  218. package/dist/admin/utils/formatDuration.mjs.map +1 -1
  219. package/dist/admin/utils/getFolderURL.js.map +1 -1
  220. package/dist/admin/utils/getFolderURL.mjs.map +1 -1
  221. package/dist/admin/utils/getTrad.js.map +1 -1
  222. package/dist/admin/utils/getTrad.mjs.map +1 -1
  223. package/dist/admin/utils/icons.js +23 -0
  224. package/dist/admin/utils/icons.js.map +1 -0
  225. package/dist/admin/utils/icons.mjs +19 -0
  226. package/dist/admin/utils/icons.mjs.map +1 -0
  227. package/dist/admin/utils/normalizeAPIError.js.map +1 -1
  228. package/dist/admin/utils/normalizeAPIError.mjs.map +1 -1
  229. package/dist/admin/utils/prefixFileUrlWithBackendUrl.js.map +1 -1
  230. package/dist/admin/utils/prefixFileUrlWithBackendUrl.mjs.map +1 -1
  231. package/dist/admin/utils/prefixPluginTranslations.js.map +1 -1
  232. package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -1
  233. package/dist/admin/utils/typeFromMime.js +15 -11
  234. package/dist/admin/utils/typeFromMime.js.map +1 -1
  235. package/dist/admin/utils/typeFromMime.mjs +15 -11
  236. package/dist/admin/utils/typeFromMime.mjs.map +1 -1
  237. package/dist/server/controllers/admin-folder-file.js.map +1 -1
  238. package/dist/server/controllers/admin-folder-file.mjs.map +1 -1
  239. package/dist/server/controllers/admin-upload.js +37 -5
  240. package/dist/server/controllers/admin-upload.js.map +1 -1
  241. package/dist/server/controllers/admin-upload.mjs +37 -5
  242. package/dist/server/controllers/admin-upload.mjs.map +1 -1
  243. package/dist/server/controllers/utils/folders.js.map +1 -1
  244. package/dist/server/controllers/utils/folders.mjs.map +1 -1
  245. package/dist/server/controllers/validation/admin/folder-file.js.map +1 -1
  246. package/dist/server/controllers/validation/admin/folder-file.mjs.map +1 -1
  247. package/dist/server/controllers/validation/admin/folder.js +1 -1
  248. package/dist/server/controllers/validation/admin/folder.js.map +1 -1
  249. package/dist/server/controllers/validation/admin/folder.mjs +1 -1
  250. package/dist/server/controllers/validation/admin/folder.mjs.map +1 -1
  251. package/dist/server/register.js.map +1 -1
  252. package/dist/server/register.mjs.map +1 -1
  253. package/dist/server/services/ai-metadata.js.map +1 -1
  254. package/dist/server/services/ai-metadata.mjs.map +1 -1
  255. package/dist/server/services/api-upload-folder.js.map +1 -1
  256. package/dist/server/services/api-upload-folder.mjs.map +1 -1
  257. package/dist/server/services/folder.js.map +1 -1
  258. package/dist/server/services/folder.mjs.map +1 -1
  259. package/dist/server/services/image-manipulation.js +1 -1
  260. package/dist/server/services/image-manipulation.js.map +1 -1
  261. package/dist/server/services/image-manipulation.mjs +1 -1
  262. package/dist/server/services/image-manipulation.mjs.map +1 -1
  263. package/dist/server/services/metrics.js +4 -1
  264. package/dist/server/services/metrics.js.map +1 -1
  265. package/dist/server/services/metrics.mjs +4 -1
  266. package/dist/server/services/metrics.mjs.map +1 -1
  267. package/dist/server/services/upload.js.map +1 -1
  268. package/dist/server/services/upload.mjs.map +1 -1
  269. package/dist/server/src/controllers/admin-upload.d.ts.map +1 -1
  270. package/dist/server/src/services/metrics.d.ts.map +1 -1
  271. package/dist/server/src/types.d.ts +1 -0
  272. package/dist/server/src/types.d.ts.map +1 -1
  273. package/dist/server/src/utils/mime-validation.d.ts +34 -0
  274. package/dist/server/src/utils/mime-validation.d.ts.map +1 -0
  275. package/dist/server/utils/cron.js.map +1 -1
  276. package/dist/server/utils/cron.mjs.map +1 -1
  277. package/dist/server/utils/mime-validation.js +218 -0
  278. package/dist/server/utils/mime-validation.js.map +1 -0
  279. package/dist/server/utils/mime-validation.mjs +211 -0
  280. package/dist/server/utils/mime-validation.mjs.map +1 -0
  281. package/package.json +7 -6
@@ -16,7 +16,7 @@ import { getAllowedFiles } from '../../utils/getAllowedFiles.mjs';
16
16
  import { getTrad } from '../../utils/getTrad.mjs';
17
17
  import 'qs';
18
18
  import { moveElement } from '../../utils/moveElement.mjs';
19
- import '../../constants.mjs';
19
+ import '../../utils/typeFromMime.mjs';
20
20
  import '../../utils/urlYupSchema.mjs';
21
21
  import { EditAssetContent } from '../EditAssetDialog/EditAssetContent.mjs';
22
22
  import { EditFolderContent } from '../EditFolderDialog/EditFolderDialog.mjs';
@@ -14,6 +14,7 @@ var getAllowedFiles = require('../../../utils/getAllowedFiles.js');
14
14
  var getBreadcrumbDataCM = require('../../../utils/getBreadcrumbDataCM.js');
15
15
  require('qs');
16
16
  var getTrad = require('../../../utils/getTrad.js');
17
+ require('../../../utils/typeFromMime.js');
17
18
  var toSingularTypes = require('../../../utils/toSingularTypes.js');
18
19
  require('../../../utils/urlYupSchema.js');
19
20
  var AssetGridList = require('../../AssetGridList/AssetGridList.js');
@@ -295,6 +296,7 @@ const BrowseStep = ({ allowedTypes = [], assets: rawAssets, canCreate, canRead,
295
296
  paddingTop: 4,
296
297
  position: "relative",
297
298
  zIndex: 1,
299
+ overflow: "hidden",
298
300
  children: [
299
301
  /*#__PURE__*/ jsxRuntime.jsx(PageSize.PageSize, {
300
302
  pageSize: queryObject.pageSize,
@@ -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 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, =0 {# folder} one {# folder} other {# folders}}, {filesCount, plural, =0 {# asset} 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 justifyContent=\"space-between\" paddingTop={4} position=\"relative\" zIndex={1}>\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","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","PageSize","pageSize","PaginationFooter","activePage"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AA+CA,MAAMA,kBAAAA,GAAqBC,uBAAOC,CAAAA,uBAAAA,CAAW;;AAE7C,CAAC;AAED,MAAMC,eAAAA,GAAkBF,uBAAOG,CAAAA,gBAAAA,CAAI;;;YAGvB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACC,UAAU,CAAC;;;AAGrD,CAAC;AAwEM,MAAMC,aAAa,CAAC,EACzBC,eAAe,EAAE,EACjBC,QAAQC,SAAS,EACjBC,SAAS,EACTC,OAAO,EACPC,OAAU,GAAA,EAAE,EACZC,QAAW,GAAA,KAAK,EAChBC,UAAU,EACVC,eAAe,EACfC,YAAY,EACZC,gBAAgB,EAChBC,cAAc,EACdC,YAAY,EACZC,cAAc,EACdC,WAAW,EACXC,YAAY,EACZC,gBAAgB,EAChBC,aAAa,EACbC,UAAU,EACVC,WAAW,EACXC,cAAc,EACE,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;IAC1B,MAAM,CAACC,MAAMC,OAAQ,CAAA,GAAGC,sCAAmBC,0BAAiBC,CAAAA,SAAS,EAAEC,qBAAAA,CAAYC,IAAI,CAAA;IACvF,MAAMC,UAAAA,GAAaP,IAASK,KAAAA,qBAAAA,CAAYC,IAAI;IAE5C,MAAM,EAAEE,IAAMC,EAAAA,aAAa,EAAEC,SAAAA,EAAWC,sBAAsB,EAAE,GAAGC,mBACjEhB,CAAAA,WAAAA,EAAaiB,MACb,EAAA;QACEC,OAASjC,EAAAA,OAAAA,IAAW,CAAC,CAACe,WAAaiB,EAAAA;AACrC,KAAA,CAAA;AAGF,IAAA,MAAME,gBAAgBC,+BAAgBvC,CAAAA,YAAAA,CAAAA;AACtC,IAAA,MAAMC,SAASC,SAAUsC,CAAAA,GAAG,CAAC,CAACC,SAAW;AACvC,YAAA,GAAGA,KAAK;YACRC,YAAcA,EAAAA,yBAAAA,CAAaJ,eAAeG,KAAOE,EAAAA,IAAAA,CAAAA;YACjDC,IAAM,EAAA;SACR,CAAA,CAAA;AAEA,IAAA,MAAMC,WAAc,GAAA,CAACX,sBACjBY,GAAAA,uCAAAA,CAAoBd,aACpBe,CAAAA,GAAAA,SAAAA;IAEJ,MAAMC,eAAAA,GAAkBC,gCAAgBjD,YAAcC,EAAAA,MAAAA,CAAAA;IACtD,MAAMiD,mBAAAA,GACJF,eAAgBG,CAAAA,MAAM,GAAG,CAAA,IACzB/B,eAAe+B,MAAM,GAAG,CACxBH,IAAAA,eAAAA,CAAgBI,KAAK,CACnB,CAACX,KAAUrB,GAAAA,cAAAA,CAAeiC,SAAS,CAAC,CAACC,SAAAA,GAAcA,SAAUC,CAAAA,EAAE,KAAKd,KAAAA,CAAMc,EAAE,CAAA,KAAM,CAAC,CAAA,CAAA;AAEvF,IAAA,MAAMC,uBAAuBR,eAAgBS,CAAAA,IAAI,CAC/C,CAAChB,QAAUrB,cAAeiC,CAAAA,SAAS,CAAC,CAACC,YAAcA,SAAUC,CAAAA,EAAE,KAAKd,KAAMc,CAAAA,EAAE,MAAM,CAAC,CAAA,CAAA;IAErF,MAAMG,WAAAA,GAAc,CAAC,CAACvC,WAAawC,EAAAA,EAAAA;AACnC,IAAA,MAAMC,WAAc,GAAA,CAAC,CAACzC,WAAAA,EAAa0C,OAASC,EAAAA,IAAAA,EAAMX,MAAUhC,IAAAA,WAAAA,CAAY0C,OAAO,CAACC,IAAI,CAACX,MAAM,GAAG,CAAA;AAC9F,IAAA,MAAMY,yBAAyBL,WAAeE,IAAAA,WAAAA;IAC9C,MAAMI,UAAAA,GAAa/D,OAAOkD,MAAM;IAChC,MAAMc,WAAAA,GAAc5D,QAAQ8C,MAAM;IAClC,MAAMe,qBAAAA,GAAwB,CAAC,GAAGC,IAAAA,GAAAA;;;QAGhCxD,cAAe,CAAA,EAAA,CAAA;QACfE,cAAkBsD,CAAAA,GAAAA,IAAAA,CAAAA;AACpB,KAAA;AAEA,IAAA,qBACEC,eAACzE,CAAAA,gBAAAA,EAAAA;;AACEqB,YAAAA,gBAAAA,kBACCqD,cAAC1E,CAAAA,gBAAAA,EAAAA;gBAAI2E,aAAe,EAAA,CAAA;AAClB,gBAAA,QAAA,gBAAAF,eAACG,CAAAA,iBAAAA,EAAAA;oBAAKC,cAAe,EAAA,eAAA;oBAAgBC,UAAW,EAAA,YAAA;;AAC5CT,wBAAAA,CAAAA,aAAa,CAAKC,IAAAA,WAAAA,GAAc,CAAKL,IAAAA,WAAU,mBAC/CQ,eAACG,CAAAA,iBAAAA,EAAAA;4BAAKG,GAAK,EAAA,CAAA;4BAAGC,IAAK,EAAA,MAAA;;AAChBrE,gCAAAA,QAAAA,IAAYwB,4BACXuC,cAACE,CAAAA,iBAAAA,EAAAA;oCACCK,WAAa,EAAA,CAAA;oCACbC,YAAc,EAAA,CAAA;oCACdC,UAAW,EAAA,UAAA;oCACXC,SAAS,EAAA,IAAA;oCACTC,WAAY,EAAA,YAAA;oCACZC,MAAO,EAAA,QAAA;AAEP,oCAAA,QAAA,gBAAAZ,cAACa,CAAAA,qBAAAA,EAAAA;AACCC,wCAAAA,YAAAA,EAAY9D,aAAc,CAAA;AACxBkC,4CAAAA,EAAAA,EAAI6B,eAAQ,CAAA,mBAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA,CAAA;wCACAC,OACE,EAAA,CAACpC,mBAAuBM,IAAAA,oBAAAA,GACpB,eACAN,GAAAA,mBAAAA;wCAENqC,eAAiBvE,EAAAA;;;AAItBc,gCAAAA,UAAAA,kBAAcuC,cAACmB,CAAAA,qBAAAA,EAAAA;oCAAW5E,YAAcA,EAAAA,YAAAA;AAAc6E,oCAAAA,KAAAA,EAAOtE,WAAauE,EAAAA;;8CAC3ErB,cAACsB,CAAAA,eAAAA,EAAAA;AACCC,oCAAAA,cAAAA,EAAgBzE,aAAa0C,OAASC,EAAAA,IAAAA;oCACtCtD,eAAiBA,EAAAA;;;;AAKrBwD,wBAAAA,CAAAA,aAAa,CAAKC,IAAAA,WAAAA,GAAc,CAAKP,IAAAA,WAAU,mBAC/CU,eAACG,CAAAA,iBAAAA,EAAAA;4BAAKsB,UAAW,EAAA,MAAA;4BAAOC,MAAQ,EAAA,CAAA;4BAAGpB,GAAK,EAAA,CAAA;;8CACtCL,cAAC3E,CAAAA,eAAAA,EAAAA;oCAAgBqG,UAAY,EAAA,CAAA;oCAAGzB,aAAe,EAAA,CAAA;AAC7C,oCAAA,QAAA,gBAAAD,cAAC2B,CAAAA,uBAAAA,EAAAA;AACCC,wCAAAA,KAAAA,EACEnE,aACIT,aAAc,CAAA;4CACZkC,EAAI,EAAA,kBAAA;4CACJ8B,cAAgB,EAAA;AAClB,yCAAA,CAAA,GACAhE,aAAc,CAAA;4CACZkC,EAAI,EAAA,kBAAA;4CACJ8B,cAAgB,EAAA;AAClB,yCAAA,CAAA;AAENa,wCAAAA,OAAAA,EAAS,IAAM1E,OAAQM,CAAAA,UAAAA,GAAaF,sBAAYuE,IAAI,GAAGvE,sBAAYC,IAAI,CAAA;kDAEtEC,UAAa,iBAAAuC,cAAA,CAAC+B,gCAAU/B,cAACgC,CAAAA,cAAAA,EAAAA,EAAAA;;;8CAG9BhC,cAACiC,CAAAA,uBAAAA,EAAAA;oCAAY3F,cAAgBA,EAAAA,cAAAA;oCAAgB4F,UAAYpF,EAAAA,WAAAA,CAAYwC,EAAE,IAAI;;;;;;;AAOpFvD,YAAAA,OAAAA,IAAWyC,aAAaM,MAAUN,IAAAA,WAAAA,CAAYM,MAAM,GAAG,CAAA,IAAKnB,+BAC3DqC,cAAC1E,CAAAA,gBAAAA,EAAAA;gBAAIoG,UAAY,EAAA,CAAA;AACf,gBAAA,QAAA,gBAAA1B,cAACmC,CAAAA,uBAAAA,EAAAA;oBACC3F,cAAgBA,EAAAA,cAAAA;AAChBoF,oBAAAA,KAAAA,EAAO5E,aAAc,CAAA;AACnBkC,wBAAAA,EAAAA,EAAI6B,eAAQ,CAAA,8BAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA,CAAA;oBACAxC,WAAaA,EAAAA,WAAAA;AACb4D,oBAAAA,eAAAA,EAAiBtF,WAAaiB,EAAAA;;;YAKnC4B,UAAe,KAAA,CAAA,IAAKC,WAAgB,KAAA,CAAA,kBACnCI,cAAC1E,CAAAA,gBAAAA,EAAAA;gBAAI2E,aAAe,EAAA,CAAA;AAClB,gBAAA,QAAA,gBAAAD,cAACqC,CAAAA,uBAAAA,EAAAA;oBACCC,IAAK,EAAA,GAAA;oBACLC,KAAO,EAAA,CAAA;AACPC,oBAAAA,MAAAA,EACE1G,SACA,IAAA,CAACyD,WACD,IAAA,CAACF,6BACCW,cAACyC,CAAAA,mBAAAA,EAAAA;wBAAOC,OAAQ,EAAA,WAAA;AAAYC,wBAAAA,SAAAA,gBAAW3C,cAAC4C,CAAAA,UAAAA,EAAAA,EAAAA,CAAAA;wBAASf,OAAS3F,EAAAA,UAAAA;kCACvDc,aAAc,CAAA;AACbkC,4BAAAA,EAAAA,EAAI6B,eAAQ,CAAA,2BAAA,CAAA;4BACZC,cAAgB,EAAA;AAClB,yBAAA;;AAIN6B,oBAAAA,OAAAA;AAEEnD,oBAAAA,sBAAAA,GACI1C,aAAc,CAAA;AACZkC,wBAAAA,EAAAA,EAAI6B,eAAQ,CAAA,oCAAA,CAAA;wBACZC,cAAgB,EAAA;qBAElBlF,CAAAA,GAAAA,SAAAA,IAAa,CAACuD,WAAAA,GACZrC,aAAc,CAAA;AACZkC,wBAAAA,EAAAA,EAAI6B,eAAQ,CAAA,mBAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA,CAAA,GACAhE,aAAc,CAAA;AACZkC,wBAAAA,EAAAA,EAAI6B,eAAQ,CAAA,kCAAA,CAAA;wBACZC,cAAgB,EAAA;AAClB,qBAAA;;;AAMb,YAAA,CAACvD,eAAemC,WAAAA,GAAc,KAAKD,UAAa,GAAA,CAAA,mBAC/CK,cAAC8C,CAAAA,mBAAAA,EAAAA;gBACCnH,YAAcA,EAAAA,YAAAA;gBACdgE,UAAYA,EAAAA,UAAAA;gBACZC,WAAaA,EAAAA,WAAAA;AACbmD,gBAAAA,aAAAA,EAAe,CAAClE,mBAAuBM,IAAAA,oBAAAA;gBACvC6D,wBAA0B,EAAA,KAAA;gBAC1BzG,YAAcA,EAAAA,YAAAA;gBACdC,cAAgBqD,EAAAA,qBAAAA;gBAChBpD,WAAaA,EAAAA,WAAAA;gBACbC,YAAcA,EAAAA,YAAAA;gBACduG,WAAarG,EAAAA,aAAAA;gBACbsG,WAAavG,EAAAA,gBAAAA;gBACbwG,IACE,EAAA;AAAInH,oBAAAA,GAAAA,OAAAA,CAAQmC,GAAG,CAAC,CAACJ,MAAAA,IAAY;AAAE,4BAAA,GAAGA,MAAM;4BAAEQ,IAAM,EAAA;yBAAS,CAAA,CAAA;AAAQ3C,oBAAAA,GAAAA;AAAO,iBAAA;gBAI1EwH,QAAUrG,EAAAA,cAAAA;AACVsG,gBAAAA,uBAAAA,EAAyB,CAACpH,QAAAA;AAC1BqH,gBAAAA,SAAAA,EAAWxG,aAAauE,IAAQ,IAAA;;YAInC5D,UACC,kBAAAsC,eAAA,CAAAwD,mBAAA,EAAA;;AACG3D,oBAAAA,WAAAA,GAAc,mBACbI,cAACwD,CAAAA,6BAAAA,EAAAA;wBACCC,KACE,EAAE,CAAA,sBAAC/D,IAA0BC,aAAa,CAAM,IAAA,CAACD,sBAAqB,KACpE1C,aACE,CAAA;AACEkC,4BAAAA,EAAAA,EAAI6B,eAAQ,CAAA,oBAAA,CAAA;4BACZC,cAAgB,EAAA;yBAElB,EAAA;4BAAEuB,KAAO3C,EAAAA;yBAEb,CAAA,IAAA,EAAA;kCAGD5D,OAAQmC,CAAAA,GAAG,CAAC,CAACJ,MAAAA,GAAAA;4BACZ,qBACEiC,cAAA,CAAC0D,kBAAKC,IAAI,EAAA;gCACRC,GAAK,EAAA,CAAA;gCAELC,SAAU,EAAA,QAAA;gCACVzD,UAAW,EAAA,SAAA;AAEX,gCAAA,QAAA,gBAAAJ,cAAC8D,CAAAA,qBAAAA,EAAAA;AACCC,oCAAAA,SAAAA,EAAWhG,OAAOiG,IAAI;AACtB9E,oCAAAA,EAAAA,EAAI,CAAC,OAAO,EAAEnB,MAAOmB,CAAAA,EAAE,CAAC,CAAC;AACzB2C,oCAAAA,OAAAA,EAAS,IAAMhC,qBAAsB9B,CAAAA,MAAAA,CAAOmB,EAAE,EAAEnB,OAAOkG,IAAI,CAAA;AAC3DC,oCAAAA,WAAAA,EACExH,8BACEsD,cAAC2B,CAAAA,uBAAAA,EAAAA;wCACCwC,WAAa,EAAA,KAAA;AACbvC,wCAAAA,KAAAA,EAAO5E,aAAc,CAAA;AACnBkC,4CAAAA,EAAAA,EAAI6B,eAAQ,CAAA,kBAAA,CAAA;4CACZC,cAAgB,EAAA;AAClB,yCAAA,CAAA;AACAa,wCAAAA,OAAAA,EAAS,IAAMnF,YAAaqB,CAAAA,MAAAA,CAAAA;AAE5B,wCAAA,QAAA,gBAAAiC,cAACoE,CAAAA,YAAAA,EAAAA,EAAAA;;AAKP,oCAAA,QAAA,gBAAApE,cAACqE,CAAAA,6BAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAArE,cAACsE,CAAAA,yCAAAA,EAAAA;AACCzC,4CAAAA,OAAAA,EAAS,IAAMhC,qBAAsB9B,CAAAA,MAAAA,CAAOmB,EAAE,EAAEnB,OAAOkG,IAAI,CAAA;AAE3D,4CAAA,QAAA,gBAAAlE,eAACG,CAAAA,iBAAAA,EAAAA;gDAAKqE,GAAI,EAAA,IAAA;gDAAKV,SAAU,EAAA,QAAA;gDAASzD,UAAW,EAAA,OAAA;gDAAQoE,QAAS,EAAA,MAAA;;kEAC5DzE,eAAC7E,CAAAA,kBAAAA,EAAAA;wDACCuJ,UAAW,EAAA,UAAA;wDACXC,QAAQ,EAAA,IAAA;wDACRC,SAAU,EAAA,YAAA;;AAET5G,4DAAAA,MAAAA,CAAOiG,IAAI;0EAGZhE,cAAC4E,CAAAA,2BAAAA,EAAAA;AAAe,gEAAA,QAAA,EAAA;;;;kEAElB5E,cAAC9E,CAAAA,kBAAAA,EAAAA;wDACCqJ,GAAI,EAAA,MAAA;wDACJI,SAAU,EAAA,YAAA;wDACVjC,OAAQ,EAAA,IAAA;wDACRgC,QAAQ,EAAA,IAAA;kEAEP1H,aACC,CAAA;AACEkC,4DAAAA,EAAAA,EAAI6B,eAAQ,CAAA,sBAAA,CAAA;4DACZC,cACE,EAAA;yDAEJ,EAAA;4DACEpB,WAAa7B,EAAAA,MAAAA,CAAO8G,QAAQ,EAAEtC,KAAAA;4DAC9BuC,UAAY/G,EAAAA,MAAAA,CAAOgH,KAAK,EAAExC;AAC5B,yDAAA;;;;;;;AArDP,6BAAA,EAAA,CAAC,OAAO,EAAExE,MAAOmB,CAAAA,EAAE,CAAC,CAAC,CAAA;AA8DhC,yBAAA;;oBAIHS,UAAa,GAAA,CAAA,IAAKC,WAAc,GAAA,CAAA,kBAC/BI,cAAC1E,CAAAA,gBAAAA,EAAAA;wBAAIoG,UAAY,EAAA,CAAA;AACf,wBAAA,QAAA,gBAAA1B,cAACgF,CAAAA,oBAAAA,EAAAA,EAAAA;;AAIJrF,oBAAAA,UAAAA,GAAa,mBACZK,cAAC1E,CAAAA,gBAAAA,EAAAA;wBAAIoG,UAAY,EAAA,CAAA;AACf,wBAAA,QAAA,gBAAA1B,cAACiF,CAAAA,2BAAAA,EAAAA;4BACCtJ,YAAcA,EAAAA,YAAAA;4BACd2G,IAAK,EAAA,GAAA;4BACL1G,MAAQA,EAAAA,MAAAA;4BACRgB,aAAeA,EAAAA,aAAAA;4BACfG,cAAgBA,EAAAA,cAAAA;4BAChBN,WAAaA,EAAAA,WAAAA;AACbgH,4BAAAA,KAAAA,EACE,CAAE,CAAC/D,sBAAAA,IAA2BA,sBAA0BE,IAAAA,WAAAA,GAAc,CAAC,KACrE9C,WAAYoI,CAAAA,IAAI,KAAK,CAAA,IACrBlI,aACE,CAAA;AACEkC,gCAAAA,EAAAA,EAAI6B,eAAQ,CAAA,mBAAA,CAAA;gCACZC,cAAgB,EAAA;6BAElB,EAAA;gCAAEuB,KAAO5C,EAAAA;6BAEb,CAAA,IAAA;;;;;YAQX9C,UAAWsI,CAAAA,SAAS,GAAG,CAAA,kBACtBpF,eAACG,CAAAA,iBAAAA,EAAAA;gBAAKC,cAAe,EAAA,eAAA;gBAAgBuB,UAAY,EAAA,CAAA;gBAAG0D,QAAS,EAAA,UAAA;gBAAWC,MAAQ,EAAA,CAAA;;kCAC9ErF,cAACsF,CAAAA,iBAAAA,EAAAA;AACCC,wBAAAA,QAAAA,EAAUzI,YAAYyI,QAAQ;wBAC9BlJ,gBAAkBA,EAAAA;;kCAEpB2D,cAACwF,CAAAA,iCAAAA,EAAAA;AACCC,wBAAAA,UAAAA,EAAY3I,YAAYoI,IAAI;wBAC5B9I,YAAcA,EAAAA,YAAAA;wBACdS,UAAYA,EAAAA;;;;;;AAMxB;;;;"}
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 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, =0 {# folder} one {# folder} other {# folders}}, {filesCount, plural, =0 {# asset} 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","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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"}
@@ -12,6 +12,7 @@ import { getAllowedFiles } from '../../../utils/getAllowedFiles.mjs';
12
12
  import { getBreadcrumbDataCM } from '../../../utils/getBreadcrumbDataCM.mjs';
13
13
  import 'qs';
14
14
  import { getTrad } from '../../../utils/getTrad.mjs';
15
+ import '../../../utils/typeFromMime.mjs';
15
16
  import { toSingularTypes } from '../../../utils/toSingularTypes.mjs';
16
17
  import '../../../utils/urlYupSchema.mjs';
17
18
  import { AssetGridList } from '../../AssetGridList/AssetGridList.mjs';
@@ -293,6 +294,7 @@ const BrowseStep = ({ allowedTypes = [], assets: rawAssets, canCreate, canRead,
293
294
  paddingTop: 4,
294
295
  position: "relative",
295
296
  zIndex: 1,
297
+ overflow: "hidden",
296
298
  children: [
297
299
  /*#__PURE__*/ jsx(PageSize, {
298
300
  pageSize: queryObject.pageSize,
@@ -1 +1 @@
1
- {"version":3,"file":"BrowseStep.mjs","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 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, =0 {# folder} one {# folder} other {# folders}}, {filesCount, plural, =0 {# asset} 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 justifyContent=\"space-between\" paddingTop={4} position=\"relative\" zIndex={1}>\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","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","PageSize","pageSize","PaginationFooter","activePage"],"mappings":"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"}
1
+ {"version":3,"file":"BrowseStep.mjs","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 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, =0 {# folder} one {# folder} other {# folders}}, {filesCount, plural, =0 {# asset} 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","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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"}
@@ -9,7 +9,7 @@ var displayedFilters = require('../../../utils/displayedFilters.js');
9
9
  require('byte-size');
10
10
  require('date-fns');
11
11
  require('qs');
12
- require('../../../constants.js');
12
+ require('../../../utils/typeFromMime.js');
13
13
  require('../../../utils/urlYupSchema.js');
14
14
  var FilterList = require('../../FilterList/FilterList.js');
15
15
  var FilterPopover = require('../../FilterPopover/FilterPopover.js');
@@ -7,7 +7,7 @@ import { displayedFilters } from '../../../utils/displayedFilters.mjs';
7
7
  import 'byte-size';
8
8
  import 'date-fns';
9
9
  import 'qs';
10
- import '../../../constants.mjs';
10
+ import '../../../utils/typeFromMime.mjs';
11
11
  import '../../../utils/urlYupSchema.mjs';
12
12
  import { FilterList } from '../../FilterList/FilterList.mjs';
13
13
  import { FilterPopover } from '../../FilterPopover/FilterPopover.mjs';
@@ -10,7 +10,7 @@ require('byte-size');
10
10
  require('date-fns');
11
11
  var getTrad = require('../../../../utils/getTrad.js');
12
12
  require('qs');
13
- require('../../../../constants.js');
13
+ require('../../../../utils/typeFromMime.js');
14
14
  require('../../../../utils/urlYupSchema.js');
15
15
 
16
16
  function _interopNamespaceDefault(e) {
@@ -8,7 +8,7 @@ import 'byte-size';
8
8
  import 'date-fns';
9
9
  import { getTrad } from '../../../../utils/getTrad.mjs';
10
10
  import 'qs';
11
- import '../../../../constants.mjs';
11
+ import '../../../../utils/typeFromMime.mjs';
12
12
  import '../../../../utils/urlYupSchema.mjs';
13
13
 
14
14
  // TODO: find a better naming convention for the file that was an index file before
@@ -7,7 +7,7 @@ require('byte-size');
7
7
  require('date-fns');
8
8
  var getTrad = require('../../../utils/getTrad.js');
9
9
  require('qs');
10
- require('../../../constants.js');
10
+ require('../../../utils/typeFromMime.js');
11
11
  require('../../../utils/urlYupSchema.js');
12
12
  var AssetGridList = require('../../AssetGridList/AssetGridList.js');
13
13
 
@@ -5,7 +5,7 @@ import 'byte-size';
5
5
  import 'date-fns';
6
6
  import { getTrad } from '../../../utils/getTrad.mjs';
7
7
  import 'qs';
8
- import '../../../constants.mjs';
8
+ import '../../../utils/typeFromMime.mjs';
9
9
  import '../../../utils/urlYupSchema.mjs';
10
10
  import { AssetGridList } from '../../AssetGridList/AssetGridList.mjs';
11
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.js","sources":["../../../../admin/src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import {\n Breadcrumbs as BaseBreadcrumbs,\n Crumb,\n CrumbLink,\n BreadcrumbsProps as BaseBreadcrumbsProps,\n} from '@strapi/design-system';\nimport { useIntl, MessageDescriptor } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { CrumbSimpleMenuAsync } from './CrumbSimpleMenuAsync';\n\nexport type CrumbDefinition = {\n id?: number | null;\n label?: MessageDescriptor | string;\n href?: string;\n path?: string;\n};\n\nexport interface BreadcrumbsProps extends BaseBreadcrumbsProps {\n breadcrumbs: Array<CrumbDefinition>;\n currentFolderId?: number;\n onChangeFolder?: (id: number, path?: string) => void;\n}\n\nexport const Breadcrumbs = ({\n breadcrumbs,\n onChangeFolder,\n currentFolderId,\n ...props\n}: BreadcrumbsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <BaseBreadcrumbs {...props}>\n {breadcrumbs.map((crumb, index) => {\n if (Array.isArray(crumb)) {\n return (\n <CrumbSimpleMenuAsync\n parentsToOmit={[...breadcrumbs]\n .splice(index + 1, breadcrumbs.length - 1)\n .map((parent) => parent.id!)}\n key={`breadcrumb-${crumb?.id ?? 'menu'}`}\n currentFolderId={currentFolderId}\n onChangeFolder={onChangeFolder}\n />\n );\n }\n\n const isCurrentFolderMediaLibrary = crumb.id === null && currentFolderId === undefined;\n\n if (currentFolderId !== crumb.id && !isCurrentFolderMediaLibrary) {\n if (onChangeFolder) {\n return (\n <CrumbLink\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n type=\"button\"\n onClick={() => onChangeFolder(crumb.id!, crumb.path)}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </CrumbLink>\n );\n }\n return (\n <CrumbLink\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n to={crumb.href}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - `tag` prop is not defined in the `BaseLinkProps` type\n tag={ReactRouterLink}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </CrumbLink>\n );\n }\n\n return (\n <Crumb\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n isCurrent={index + 1 === breadcrumbs.length}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </Crumb>\n );\n })}\n </BaseBreadcrumbs>\n );\n};\n"],"names":["Breadcrumbs","breadcrumbs","onChangeFolder","currentFolderId","props","formatMessage","useIntl","_jsx","BaseBreadcrumbs","map","crumb","index","Array","isArray","CrumbSimpleMenuAsync","parentsToOmit","splice","length","parent","id","isCurrentFolderMediaLibrary","undefined","CrumbLink","type","onClick","path","label","to","href","tag","ReactRouterLink","Crumb","isCurrent"],"mappings":";;;;;;;;AAwBO,MAAMA,WAAc,GAAA,CAAC,EAC1BC,WAAW,EACXC,cAAc,EACdC,eAAe,EACf,GAAGC,KACc,EAAA,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAACC,CAAAA,wBAAAA,EAAAA;AAAiB,QAAA,GAAGJ,KAAK;kBACvBH,WAAYQ,CAAAA,GAAG,CAAC,CAACC,KAAOC,EAAAA,KAAAA,GAAAA;YACvB,IAAIC,KAAAA,CAAMC,OAAO,CAACH,KAAQ,CAAA,EAAA;AACxB,gBAAA,qBACEH,cAACO,CAAAA,yCAAAA,EAAAA;oBACCC,aAAe,EAAA;AAAId,wBAAAA,GAAAA;AAAY,qBAAA,CAC5Be,MAAM,CAACL,KAAQ,GAAA,CAAA,EAAGV,WAAYgB,CAAAA,MAAM,GAAG,CAAA,CAAA,CACvCR,GAAG,CAAC,CAACS,MAAAA,GAAWA,OAAOC,EAAE,CAAA;oBAE5BhB,eAAiBA,EAAAA,eAAAA;oBACjBD,cAAgBA,EAAAA;AAFX,iBAAA,EAAA,CAAC,WAAW,EAAEQ,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAK9C;AAEA,YAAA,MAAMC,2BAA8BV,GAAAA,KAAAA,CAAMS,EAAE,KAAK,QAAQhB,eAAoBkB,KAAAA,SAAAA;AAE7E,YAAA,IAAIlB,eAAoBO,KAAAA,KAAAA,CAAMS,EAAE,IAAI,CAACC,2BAA6B,EAAA;AAChE,gBAAA,IAAIlB,cAAgB,EAAA;AAClB,oBAAA,qBACEK,cAACe,CAAAA,sBAAAA,EAAAA;wBAECC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMtB,cAAeQ,CAAAA,KAAAA,CAAMS,EAAE,EAAGT,MAAMe,IAAI,CAAA;AAElD,wBAAA,QAAA,EAAA,OAAOf,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AANN,qBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAS9C;AACA,gBAAA,qBACEZ,cAACe,CAAAA,sBAAAA,EAAAA;AAECK,oBAAAA,EAAAA,EAAIjB,MAAMkB,IAAI;;;oBAGdC,GAAKC,EAAAA,mBAAAA;AAEJ,oBAAA,QAAA,EAAA,OAAOpB,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AARN,iBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAW9C;AAEA,YAAA,qBACEZ,cAACwB,CAAAA,kBAAAA,EAAAA;gBAECC,SAAWrB,EAAAA,KAAAA,GAAQ,CAAMV,KAAAA,WAAAA,CAAYgB,MAAM;AAE1C,gBAAA,QAAA,EAAA,OAAOP,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AALN,aAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAQ9C,SAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"Breadcrumbs.js","sources":["../../../../admin/src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import {\n Breadcrumbs as BaseBreadcrumbs,\n Crumb,\n CrumbLink,\n BreadcrumbsProps as BaseBreadcrumbsProps,\n} from '@strapi/design-system';\nimport { useIntl, MessageDescriptor } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { CrumbSimpleMenuAsync } from './CrumbSimpleMenuAsync';\n\nexport type CrumbDefinition = {\n id?: number | null;\n label?: MessageDescriptor | string;\n href?: string;\n path?: string;\n};\n\nexport interface BreadcrumbsProps extends BaseBreadcrumbsProps {\n breadcrumbs: Array<CrumbDefinition>;\n currentFolderId?: number;\n onChangeFolder?: (id: number, path?: string) => void;\n}\n\nexport const Breadcrumbs = ({\n breadcrumbs,\n onChangeFolder,\n currentFolderId,\n ...props\n}: BreadcrumbsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <BaseBreadcrumbs {...props}>\n {breadcrumbs.map((crumb, index) => {\n if (Array.isArray(crumb)) {\n return (\n <CrumbSimpleMenuAsync\n parentsToOmit={[...breadcrumbs]\n .splice(index + 1, breadcrumbs.length - 1)\n .map((parent) => parent.id!)}\n key={`breadcrumb-${crumb?.id ?? 'menu'}`}\n currentFolderId={currentFolderId}\n onChangeFolder={onChangeFolder}\n />\n );\n }\n\n const isCurrentFolderMediaLibrary = crumb.id === null && currentFolderId === undefined;\n\n if (currentFolderId !== crumb.id && !isCurrentFolderMediaLibrary) {\n if (onChangeFolder) {\n return (\n <CrumbLink\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n type=\"button\"\n onClick={() => onChangeFolder(crumb.id!, crumb.path)}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </CrumbLink>\n );\n }\n return (\n <CrumbLink\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n to={crumb.href}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - `tag` prop is not defined in the `BaseLinkProps` type\n tag={ReactRouterLink}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </CrumbLink>\n );\n }\n\n return (\n <Crumb\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n isCurrent={index + 1 === breadcrumbs.length}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </Crumb>\n );\n })}\n </BaseBreadcrumbs>\n );\n};\n"],"names":["Breadcrumbs","breadcrumbs","onChangeFolder","currentFolderId","props","formatMessage","useIntl","_jsx","BaseBreadcrumbs","map","crumb","index","Array","isArray","CrumbSimpleMenuAsync","parentsToOmit","splice","length","parent","id","isCurrentFolderMediaLibrary","undefined","CrumbLink","type","onClick","path","label","to","href","tag","ReactRouterLink","Crumb","isCurrent"],"mappings":";;;;;;;;AAwBO,MAAMA,WAAc,GAAA,CAAC,EAC1BC,WAAW,EACXC,cAAc,EACdC,eAAe,EACf,GAAGC,KACc,EAAA,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,qBACEC,cAACC,CAAAA,wBAAAA,EAAAA;AAAiB,QAAA,GAAGJ,KAAK;kBACvBH,WAAYQ,CAAAA,GAAG,CAAC,CAACC,KAAOC,EAAAA,KAAAA,GAAAA;YACvB,IAAIC,KAAAA,CAAMC,OAAO,CAACH,KAAQ,CAAA,EAAA;AACxB,gBAAA,qBACEH,cAACO,CAAAA,yCAAAA,EAAAA;oBACCC,aAAe,EAAA;AAAId,wBAAAA,GAAAA;AAAY,qBAAA,CAC5Be,MAAM,CAACL,KAAQ,GAAA,CAAA,EAAGV,WAAYgB,CAAAA,MAAM,GAAG,CAAA,CAAA,CACvCR,GAAG,CAAC,CAACS,MAAAA,GAAWA,OAAOC,EAAE,CAAA;oBAE5BhB,eAAiBA,EAAAA,eAAAA;oBACjBD,cAAgBA,EAAAA;AAFX,iBAAA,EAAA,CAAC,WAAW,EAAEQ,KAAOS,EAAAA,EAAAA,IAAM,MAAQ,CAAA,CAAA,CAAA;AAK9C;AAEA,YAAA,MAAMC,2BAA8BV,GAAAA,KAAAA,CAAMS,EAAE,KAAK,QAAQhB,eAAoBkB,KAAAA,SAAAA;AAE7E,YAAA,IAAIlB,eAAoBO,KAAAA,KAAAA,CAAMS,EAAE,IAAI,CAACC,2BAA6B,EAAA;AAChE,gBAAA,IAAIlB,cAAgB,EAAA;AAClB,oBAAA,qBACEK,cAACe,CAAAA,sBAAAA,EAAAA;wBAECC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMtB,cAAeQ,CAAAA,KAAAA,CAAMS,EAAE,EAAGT,MAAMe,IAAI,CAAA;AAElD,wBAAA,QAAA,EAAA,OAAOf,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AANN,qBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,MAAQ,CAAA,CAAA,CAAA;AAS9C;AACA,gBAAA,qBACEZ,cAACe,CAAAA,sBAAAA,EAAAA;AAECK,oBAAAA,EAAAA,EAAIjB,MAAMkB,IAAI;;;oBAGdC,GAAKC,EAAAA,mBAAAA;AAEJ,oBAAA,QAAA,EAAA,OAAOpB,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AARN,iBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,MAAQ,CAAA,CAAA,CAAA;AAW9C;AAEA,YAAA,qBACEZ,cAACwB,CAAAA,kBAAAA,EAAAA;gBAECC,SAAWrB,EAAAA,KAAAA,GAAQ,CAAMV,KAAAA,WAAAA,CAAYgB,MAAM;AAE1C,gBAAA,QAAA,EAAA,OAAOP,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AALN,aAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,MAAQ,CAAA,CAAA,CAAA;AAQ9C,SAAA;;AAGN;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.mjs","sources":["../../../../admin/src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import {\n Breadcrumbs as BaseBreadcrumbs,\n Crumb,\n CrumbLink,\n BreadcrumbsProps as BaseBreadcrumbsProps,\n} from '@strapi/design-system';\nimport { useIntl, MessageDescriptor } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { CrumbSimpleMenuAsync } from './CrumbSimpleMenuAsync';\n\nexport type CrumbDefinition = {\n id?: number | null;\n label?: MessageDescriptor | string;\n href?: string;\n path?: string;\n};\n\nexport interface BreadcrumbsProps extends BaseBreadcrumbsProps {\n breadcrumbs: Array<CrumbDefinition>;\n currentFolderId?: number;\n onChangeFolder?: (id: number, path?: string) => void;\n}\n\nexport const Breadcrumbs = ({\n breadcrumbs,\n onChangeFolder,\n currentFolderId,\n ...props\n}: BreadcrumbsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <BaseBreadcrumbs {...props}>\n {breadcrumbs.map((crumb, index) => {\n if (Array.isArray(crumb)) {\n return (\n <CrumbSimpleMenuAsync\n parentsToOmit={[...breadcrumbs]\n .splice(index + 1, breadcrumbs.length - 1)\n .map((parent) => parent.id!)}\n key={`breadcrumb-${crumb?.id ?? 'menu'}`}\n currentFolderId={currentFolderId}\n onChangeFolder={onChangeFolder}\n />\n );\n }\n\n const isCurrentFolderMediaLibrary = crumb.id === null && currentFolderId === undefined;\n\n if (currentFolderId !== crumb.id && !isCurrentFolderMediaLibrary) {\n if (onChangeFolder) {\n return (\n <CrumbLink\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n type=\"button\"\n onClick={() => onChangeFolder(crumb.id!, crumb.path)}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </CrumbLink>\n );\n }\n return (\n <CrumbLink\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n to={crumb.href}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - `tag` prop is not defined in the `BaseLinkProps` type\n tag={ReactRouterLink}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </CrumbLink>\n );\n }\n\n return (\n <Crumb\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n isCurrent={index + 1 === breadcrumbs.length}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </Crumb>\n );\n })}\n </BaseBreadcrumbs>\n );\n};\n"],"names":["Breadcrumbs","breadcrumbs","onChangeFolder","currentFolderId","props","formatMessage","useIntl","_jsx","BaseBreadcrumbs","map","crumb","index","Array","isArray","CrumbSimpleMenuAsync","parentsToOmit","splice","length","parent","id","isCurrentFolderMediaLibrary","undefined","CrumbLink","type","onClick","path","label","to","href","tag","ReactRouterLink","Crumb","isCurrent"],"mappings":";;;;;;AAwBO,MAAMA,WAAc,GAAA,CAAC,EAC1BC,WAAW,EACXC,cAAc,EACdC,eAAe,EACf,GAAGC,KACc,EAAA,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAACC,CAAAA,aAAAA,EAAAA;AAAiB,QAAA,GAAGJ,KAAK;kBACvBH,WAAYQ,CAAAA,GAAG,CAAC,CAACC,KAAOC,EAAAA,KAAAA,GAAAA;YACvB,IAAIC,KAAAA,CAAMC,OAAO,CAACH,KAAQ,CAAA,EAAA;AACxB,gBAAA,qBACEH,GAACO,CAAAA,oBAAAA,EAAAA;oBACCC,aAAe,EAAA;AAAId,wBAAAA,GAAAA;AAAY,qBAAA,CAC5Be,MAAM,CAACL,KAAQ,GAAA,CAAA,EAAGV,WAAYgB,CAAAA,MAAM,GAAG,CAAA,CAAA,CACvCR,GAAG,CAAC,CAACS,MAAAA,GAAWA,OAAOC,EAAE,CAAA;oBAE5BhB,eAAiBA,EAAAA,eAAAA;oBACjBD,cAAgBA,EAAAA;AAFX,iBAAA,EAAA,CAAC,WAAW,EAAEQ,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAK9C;AAEA,YAAA,MAAMC,2BAA8BV,GAAAA,KAAAA,CAAMS,EAAE,KAAK,QAAQhB,eAAoBkB,KAAAA,SAAAA;AAE7E,YAAA,IAAIlB,eAAoBO,KAAAA,KAAAA,CAAMS,EAAE,IAAI,CAACC,2BAA6B,EAAA;AAChE,gBAAA,IAAIlB,cAAgB,EAAA;AAClB,oBAAA,qBACEK,GAACe,CAAAA,SAAAA,EAAAA;wBAECC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMtB,cAAeQ,CAAAA,KAAAA,CAAMS,EAAE,EAAGT,MAAMe,IAAI,CAAA;AAElD,wBAAA,QAAA,EAAA,OAAOf,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AANN,qBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAS9C;AACA,gBAAA,qBACEZ,GAACe,CAAAA,SAAAA,EAAAA;AAECK,oBAAAA,EAAAA,EAAIjB,MAAMkB,IAAI;;;oBAGdC,GAAKC,EAAAA,IAAAA;AAEJ,oBAAA,QAAA,EAAA,OAAOpB,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AARN,iBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAW9C;AAEA,YAAA,qBACEZ,GAACwB,CAAAA,KAAAA,EAAAA;gBAECC,SAAWrB,EAAAA,KAAAA,GAAQ,CAAMV,KAAAA,WAAAA,CAAYgB,MAAM;AAE1C,gBAAA,QAAA,EAAA,OAAOP,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AALN,aAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,OAAO,CAAC,CAAA;AAQ9C,SAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"Breadcrumbs.mjs","sources":["../../../../admin/src/components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import {\n Breadcrumbs as BaseBreadcrumbs,\n Crumb,\n CrumbLink,\n BreadcrumbsProps as BaseBreadcrumbsProps,\n} from '@strapi/design-system';\nimport { useIntl, MessageDescriptor } from 'react-intl';\nimport { Link as ReactRouterLink } from 'react-router-dom';\n\nimport { CrumbSimpleMenuAsync } from './CrumbSimpleMenuAsync';\n\nexport type CrumbDefinition = {\n id?: number | null;\n label?: MessageDescriptor | string;\n href?: string;\n path?: string;\n};\n\nexport interface BreadcrumbsProps extends BaseBreadcrumbsProps {\n breadcrumbs: Array<CrumbDefinition>;\n currentFolderId?: number;\n onChangeFolder?: (id: number, path?: string) => void;\n}\n\nexport const Breadcrumbs = ({\n breadcrumbs,\n onChangeFolder,\n currentFolderId,\n ...props\n}: BreadcrumbsProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <BaseBreadcrumbs {...props}>\n {breadcrumbs.map((crumb, index) => {\n if (Array.isArray(crumb)) {\n return (\n <CrumbSimpleMenuAsync\n parentsToOmit={[...breadcrumbs]\n .splice(index + 1, breadcrumbs.length - 1)\n .map((parent) => parent.id!)}\n key={`breadcrumb-${crumb?.id ?? 'menu'}`}\n currentFolderId={currentFolderId}\n onChangeFolder={onChangeFolder}\n />\n );\n }\n\n const isCurrentFolderMediaLibrary = crumb.id === null && currentFolderId === undefined;\n\n if (currentFolderId !== crumb.id && !isCurrentFolderMediaLibrary) {\n if (onChangeFolder) {\n return (\n <CrumbLink\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n type=\"button\"\n onClick={() => onChangeFolder(crumb.id!, crumb.path)}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </CrumbLink>\n );\n }\n return (\n <CrumbLink\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n to={crumb.href}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - `tag` prop is not defined in the `BaseLinkProps` type\n tag={ReactRouterLink}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </CrumbLink>\n );\n }\n\n return (\n <Crumb\n key={`breadcrumb-${crumb?.id ?? 'root'}`}\n isCurrent={index + 1 === breadcrumbs.length}\n >\n {typeof crumb.label !== 'string' && crumb.label?.id\n ? formatMessage(crumb.label)\n : (crumb.label as string)}\n </Crumb>\n );\n })}\n </BaseBreadcrumbs>\n );\n};\n"],"names":["Breadcrumbs","breadcrumbs","onChangeFolder","currentFolderId","props","formatMessage","useIntl","_jsx","BaseBreadcrumbs","map","crumb","index","Array","isArray","CrumbSimpleMenuAsync","parentsToOmit","splice","length","parent","id","isCurrentFolderMediaLibrary","undefined","CrumbLink","type","onClick","path","label","to","href","tag","ReactRouterLink","Crumb","isCurrent"],"mappings":";;;;;;AAwBO,MAAMA,WAAc,GAAA,CAAC,EAC1BC,WAAW,EACXC,cAAc,EACdC,eAAe,EACf,GAAGC,KACc,EAAA,GAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,qBACEC,GAACC,CAAAA,aAAAA,EAAAA;AAAiB,QAAA,GAAGJ,KAAK;kBACvBH,WAAYQ,CAAAA,GAAG,CAAC,CAACC,KAAOC,EAAAA,KAAAA,GAAAA;YACvB,IAAIC,KAAAA,CAAMC,OAAO,CAACH,KAAQ,CAAA,EAAA;AACxB,gBAAA,qBACEH,GAACO,CAAAA,oBAAAA,EAAAA;oBACCC,aAAe,EAAA;AAAId,wBAAAA,GAAAA;AAAY,qBAAA,CAC5Be,MAAM,CAACL,KAAQ,GAAA,CAAA,EAAGV,WAAYgB,CAAAA,MAAM,GAAG,CAAA,CAAA,CACvCR,GAAG,CAAC,CAACS,MAAAA,GAAWA,OAAOC,EAAE,CAAA;oBAE5BhB,eAAiBA,EAAAA,eAAAA;oBACjBD,cAAgBA,EAAAA;AAFX,iBAAA,EAAA,CAAC,WAAW,EAAEQ,KAAOS,EAAAA,EAAAA,IAAM,MAAQ,CAAA,CAAA,CAAA;AAK9C;AAEA,YAAA,MAAMC,2BAA8BV,GAAAA,KAAAA,CAAMS,EAAE,KAAK,QAAQhB,eAAoBkB,KAAAA,SAAAA;AAE7E,YAAA,IAAIlB,eAAoBO,KAAAA,KAAAA,CAAMS,EAAE,IAAI,CAACC,2BAA6B,EAAA;AAChE,gBAAA,IAAIlB,cAAgB,EAAA;AAClB,oBAAA,qBACEK,GAACe,CAAAA,SAAAA,EAAAA;wBAECC,IAAK,EAAA,QAAA;AACLC,wBAAAA,OAAAA,EAAS,IAAMtB,cAAeQ,CAAAA,KAAAA,CAAMS,EAAE,EAAGT,MAAMe,IAAI,CAAA;AAElD,wBAAA,QAAA,EAAA,OAAOf,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AANN,qBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,MAAQ,CAAA,CAAA,CAAA;AAS9C;AACA,gBAAA,qBACEZ,GAACe,CAAAA,SAAAA,EAAAA;AAECK,oBAAAA,EAAAA,EAAIjB,MAAMkB,IAAI;;;oBAGdC,GAAKC,EAAAA,IAAAA;AAEJ,oBAAA,QAAA,EAAA,OAAOpB,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AARN,iBAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,MAAQ,CAAA,CAAA,CAAA;AAW9C;AAEA,YAAA,qBACEZ,GAACwB,CAAAA,KAAAA,EAAAA;gBAECC,SAAWrB,EAAAA,KAAAA,GAAQ,CAAMV,KAAAA,WAAAA,CAAYgB,MAAM;AAE1C,gBAAA,QAAA,EAAA,OAAOP,KAAMgB,CAAAA,KAAK,KAAK,QAAA,IAAYhB,KAAMgB,CAAAA,KAAK,EAAEP,EAAAA,GAC7Cd,aAAcK,CAAAA,KAAAA,CAAMgB,KAAK,CAAA,GACxBhB,MAAMgB;AALN,aAAA,EAAA,CAAC,WAAW,EAAEhB,KAAOS,EAAAA,EAAAA,IAAM,MAAQ,CAAA,CAAA,CAAA;AAQ9C,SAAA;;AAGN;;;;"}
@@ -12,7 +12,7 @@ require('date-fns');
12
12
  var getTrad = require('../../utils/getTrad.js');
13
13
  var getFolderURL = require('../../utils/getFolderURL.js');
14
14
  var getFolderParents = require('../../utils/getFolderParents.js');
15
- require('../../constants.js');
15
+ require('../../utils/typeFromMime.js');
16
16
  require('../../utils/urlYupSchema.js');
17
17
 
18
18
  function _interopNamespaceDefault(e) {
@@ -10,7 +10,7 @@ import 'date-fns';
10
10
  import { getTrad } from '../../utils/getTrad.mjs';
11
11
  import { getFolderURL } from '../../utils/getFolderURL.mjs';
12
12
  import { getFolderParents } from '../../utils/getFolderParents.mjs';
13
- import '../../constants.mjs';
13
+ import '../../utils/typeFromMime.mjs';
14
14
  import '../../utils/urlYupSchema.mjs';
15
15
 
16
16
  const CrumbSimpleMenuAsync = ({ parentsToOmit = [], currentFolderId, onChangeFolder })=>{
@@ -12,7 +12,7 @@ require('date-fns');
12
12
  var normalizeAPIError = require('../../utils/normalizeAPIError.js');
13
13
  var getTrad = require('../../utils/getTrad.js');
14
14
  require('qs');
15
- require('../../constants.js');
15
+ require('../../utils/typeFromMime.js');
16
16
  require('../../utils/urlYupSchema.js');
17
17
  var SelectTree = require('../SelectTree/SelectTree.js');
18
18
 
@@ -10,7 +10,7 @@ import 'date-fns';
10
10
  import { normalizeAPIError } from '../../utils/normalizeAPIError.mjs';
11
11
  import { getTrad } from '../../utils/getTrad.mjs';
12
12
  import 'qs';
13
- import '../../constants.mjs';
13
+ import '../../utils/typeFromMime.mjs';
14
14
  import '../../utils/urlYupSchema.mjs';
15
15
  import { SelectTree } from '../SelectTree/SelectTree.mjs';
16
16
 
@@ -9,7 +9,7 @@ require('byte-size');
9
9
  require('date-fns');
10
10
  var getTrad = require('../../utils/getTrad.js');
11
11
  require('qs');
12
- require('../../constants.js');
12
+ require('../../utils/typeFromMime.js');
13
13
  require('../../utils/urlYupSchema.js');
14
14
 
15
15
  // TODO: find a better naming convention for the file that was an index file before
@@ -7,7 +7,7 @@ import 'byte-size';
7
7
  import 'date-fns';
8
8
  import { getTrad } from '../../utils/getTrad.mjs';
9
9
  import 'qs';
10
- import '../../constants.mjs';
10
+ import '../../utils/typeFromMime.mjs';
11
11
  import '../../utils/urlYupSchema.mjs';
12
12
 
13
13
  // TODO: find a better naming convention for the file that was an index file before
@@ -17,7 +17,7 @@ require('date-fns');
17
17
  var getTrad = require('../../utils/getTrad.js');
18
18
  require('qs');
19
19
  var getFileExtension = require('../../utils/getFileExtension.js');
20
- require('../../constants.js');
20
+ require('../../utils/typeFromMime.js');
21
21
  require('../../utils/urlYupSchema.js');
22
22
  var ContextInfo = require('../ContextInfo/ContextInfo.js');
23
23
  var SelectTree = require('../SelectTree/SelectTree.js');