@strapi/upload 5.58.0 → 5.60.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.js +434 -0
  2. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.js.map +1 -0
  3. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.mjs +432 -0
  4. package/dist/admin/components/AssetPickerDialog/AssetPickerDialog.mjs.map +1 -0
  5. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.js +91 -0
  6. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.js.map +1 -0
  7. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.mjs +89 -0
  8. package/dist/admin/components/AssetPickerDialog/FolderBreadcrumbs.mjs.map +1 -0
  9. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.js +178 -0
  10. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.js.map +1 -0
  11. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.mjs +175 -0
  12. package/dist/admin/components/AssetPickerDialog/PickerSelectionProvider.mjs.map +1 -0
  13. package/dist/admin/components/AssetPickerDialog/SortableSelection.js +143 -0
  14. package/dist/admin/components/AssetPickerDialog/SortableSelection.js.map +1 -0
  15. package/dist/admin/components/AssetPickerDialog/SortableSelection.mjs +141 -0
  16. package/dist/admin/components/AssetPickerDialog/SortableSelection.mjs.map +1 -0
  17. package/dist/admin/components/AssetPickerDialog/pickerSelection.js +49 -0
  18. package/dist/admin/components/AssetPickerDialog/pickerSelection.js.map +1 -0
  19. package/dist/admin/components/AssetPickerDialog/pickerSelection.mjs +41 -0
  20. package/dist/admin/components/AssetPickerDialog/pickerSelection.mjs.map +1 -0
  21. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.js +142 -0
  22. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.js.map +1 -0
  23. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.mjs +140 -0
  24. package/dist/admin/components/MediaLibraryInput/AddAssetMenu.mjs.map +1 -0
  25. package/dist/admin/components/MediaLibraryInput/AssetCard.js +240 -0
  26. package/dist/admin/components/MediaLibraryInput/AssetCard.js.map +1 -0
  27. package/dist/admin/components/MediaLibraryInput/AssetCard.mjs +237 -0
  28. package/dist/admin/components/MediaLibraryInput/AssetCard.mjs.map +1 -0
  29. package/dist/admin/components/MediaLibraryInput/AssetCarousel.js +161 -0
  30. package/dist/admin/components/MediaLibraryInput/AssetCarousel.js.map +1 -0
  31. package/dist/admin/components/MediaLibraryInput/AssetCarousel.mjs +159 -0
  32. package/dist/admin/components/MediaLibraryInput/AssetCarousel.mjs.map +1 -0
  33. package/dist/admin/components/MediaLibraryInput/AssetDropZone.js +156 -0
  34. package/dist/admin/components/MediaLibraryInput/AssetDropZone.js.map +1 -0
  35. package/dist/admin/components/MediaLibraryInput/AssetDropZone.mjs +154 -0
  36. package/dist/admin/components/MediaLibraryInput/AssetDropZone.mjs.map +1 -0
  37. package/dist/admin/components/MediaLibraryInput/AssetPreview.js +109 -0
  38. package/dist/admin/components/MediaLibraryInput/AssetPreview.js.map +1 -0
  39. package/dist/admin/components/MediaLibraryInput/AssetPreview.mjs +106 -0
  40. package/dist/admin/components/MediaLibraryInput/AssetPreview.mjs.map +1 -0
  41. package/dist/admin/components/MediaLibraryInput/AssetRow.js +211 -0
  42. package/dist/admin/components/MediaLibraryInput/AssetRow.js.map +1 -0
  43. package/dist/admin/components/MediaLibraryInput/AssetRow.mjs +208 -0
  44. package/dist/admin/components/MediaLibraryInput/AssetRow.mjs.map +1 -0
  45. package/dist/admin/components/MediaLibraryInput/FieldControls.js +32 -0
  46. package/dist/admin/components/MediaLibraryInput/FieldControls.js.map +1 -0
  47. package/dist/admin/components/MediaLibraryInput/FieldControls.mjs +29 -0
  48. package/dist/admin/components/MediaLibraryInput/FieldControls.mjs.map +1 -0
  49. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js +439 -0
  50. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -0
  51. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs +433 -0
  52. package/dist/admin/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -0
  53. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.js +42 -0
  54. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.js.map +1 -0
  55. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.mjs +40 -0
  56. package/dist/admin/components/MediaLibraryInput/UploadProgressBar.mjs.map +1 -0
  57. package/dist/admin/components/MediaLibraryInput/useFieldUploads.js +122 -0
  58. package/dist/admin/components/MediaLibraryInput/useFieldUploads.js.map +1 -0
  59. package/dist/admin/components/MediaLibraryInput/useFieldUploads.mjs +120 -0
  60. package/dist/admin/components/MediaLibraryInput/useFieldUploads.mjs.map +1 -0
  61. package/dist/admin/components/UploadProgressDialog.js +2 -1
  62. package/dist/admin/components/UploadProgressDialog.js.map +1 -1
  63. package/dist/admin/components/UploadProgressDialog.mjs +2 -1
  64. package/dist/admin/components/UploadProgressDialog.mjs.map +1 -1
  65. package/dist/admin/hooks/useAIMetadataAvailability.js +5 -1
  66. package/dist/admin/hooks/useAIMetadataAvailability.js.map +1 -1
  67. package/dist/admin/hooks/useAIMetadataAvailability.mjs +5 -1
  68. package/dist/admin/hooks/useAIMetadataAvailability.mjs.map +1 -1
  69. package/dist/admin/hooks/useAIMetadataEnabled.js +7 -1
  70. package/dist/admin/hooks/useAIMetadataEnabled.js.map +1 -1
  71. package/dist/admin/hooks/useAIMetadataEnabled.mjs +7 -1
  72. package/dist/admin/hooks/useAIMetadataEnabled.mjs.map +1 -1
  73. package/dist/admin/hooks/useMediaLibraryPermissions.js +16 -2
  74. package/dist/admin/hooks/useMediaLibraryPermissions.js.map +1 -1
  75. package/dist/admin/hooks/useMediaLibraryPermissions.mjs +16 -2
  76. package/dist/admin/hooks/useMediaLibraryPermissions.mjs.map +1 -1
  77. package/dist/admin/hooks/useTracking.js +5 -1
  78. package/dist/admin/hooks/useTracking.js.map +1 -1
  79. package/dist/admin/hooks/useTracking.mjs +5 -1
  80. package/dist/admin/hooks/useTracking.mjs.map +1 -1
  81. package/dist/admin/index.js +7 -2
  82. package/dist/admin/index.js.map +1 -1
  83. package/dist/admin/index.mjs +7 -2
  84. package/dist/admin/index.mjs.map +1 -1
  85. package/dist/admin/legacy/components/AssetCard/AssetCardBase.js.map +1 -1
  86. package/dist/admin/legacy/components/AssetCard/AssetCardBase.mjs.map +1 -1
  87. package/dist/admin/legacy/components/AssetCard/VideoPreview.js +2 -1
  88. package/dist/admin/legacy/components/AssetCard/VideoPreview.js.map +1 -1
  89. package/dist/admin/legacy/components/AssetCard/VideoPreview.mjs +2 -1
  90. package/dist/admin/legacy/components/AssetCard/VideoPreview.mjs.map +1 -1
  91. package/dist/admin/legacy/components/AssetDialog/AssetDialog.js +3 -1
  92. package/dist/admin/legacy/components/AssetDialog/AssetDialog.js.map +1 -1
  93. package/dist/admin/legacy/components/AssetDialog/AssetDialog.mjs +3 -1
  94. package/dist/admin/legacy/components/AssetDialog/AssetDialog.mjs.map +1 -1
  95. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js +3 -1
  96. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.js.map +1 -1
  97. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs +3 -1
  98. package/dist/admin/legacy/components/AssetDialog/BrowseStep/BrowseStep.mjs.map +1 -1
  99. package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.js.map +1 -1
  100. package/dist/admin/legacy/components/AssetDialog/BrowseStep/Filters.mjs.map +1 -1
  101. package/dist/admin/legacy/components/AssetGridList/AssetGridList.js +7 -6
  102. package/dist/admin/legacy/components/AssetGridList/AssetGridList.js.map +1 -1
  103. package/dist/admin/legacy/components/AssetGridList/AssetGridList.mjs +7 -6
  104. package/dist/admin/legacy/components/AssetGridList/AssetGridList.mjs.map +1 -1
  105. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.js +2 -1
  106. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.js.map +1 -1
  107. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs +2 -1
  108. package/dist/admin/legacy/components/Breadcrumbs/CrumbSimpleMenuAsync.mjs.map +1 -1
  109. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.js +2 -1
  110. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.js.map +1 -1
  111. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.mjs +2 -1
  112. package/dist/admin/legacy/components/BulkMoveDialog/BulkMoveDialog.mjs.map +1 -1
  113. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.js +3 -1
  114. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.js.map +1 -1
  115. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.mjs +3 -1
  116. package/dist/admin/legacy/components/EditAssetDialog/EditAssetContent.mjs.map +1 -1
  117. package/dist/admin/legacy/components/FilterList/FilterList.js.map +1 -1
  118. package/dist/admin/legacy/components/FilterList/FilterList.mjs.map +1 -1
  119. package/dist/admin/legacy/components/FilterPopover/FilterPopover.js.map +1 -1
  120. package/dist/admin/legacy/components/FilterPopover/FilterPopover.mjs.map +1 -1
  121. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.js +2 -1
  122. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.js.map +1 -1
  123. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.mjs +2 -1
  124. package/dist/admin/legacy/components/FilterPopover/FilterValueInput.mjs.map +1 -1
  125. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.js +4 -2
  126. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.js.map +1 -1
  127. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.mjs +4 -2
  128. package/dist/admin/legacy/components/MediaLibraryDialog/MediaLibraryDialog.mjs.map +1 -1
  129. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.js +2 -1
  130. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.js.map +1 -1
  131. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.mjs +2 -1
  132. package/dist/admin/legacy/components/MediaLibraryInput/MediaLibraryInput.mjs.map +1 -1
  133. package/dist/admin/legacy/components/SelectTree/SelectTree.js +3 -1
  134. package/dist/admin/legacy/components/SelectTree/SelectTree.js.map +1 -1
  135. package/dist/admin/legacy/components/SelectTree/SelectTree.mjs +3 -1
  136. package/dist/admin/legacy/components/SelectTree/SelectTree.mjs.map +1 -1
  137. package/dist/admin/legacy/components/TableList/TableList.js +3 -1
  138. package/dist/admin/legacy/components/TableList/TableList.js.map +1 -1
  139. package/dist/admin/legacy/components/TableList/TableList.mjs +3 -1
  140. package/dist/admin/legacy/components/TableList/TableList.mjs.map +1 -1
  141. package/dist/admin/legacy/components/TableList/TableRows.js +3 -1
  142. package/dist/admin/legacy/components/TableList/TableRows.js.map +1 -1
  143. package/dist/admin/legacy/components/TableList/TableRows.mjs +3 -1
  144. package/dist/admin/legacy/components/TableList/TableRows.mjs.map +1 -1
  145. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.js +3 -1
  146. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.js.map +1 -1
  147. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.mjs +3 -1
  148. package/dist/admin/legacy/components/UploadAssetDialog/UploadAssetDialog.mjs.map +1 -1
  149. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.js.map +1 -1
  150. package/dist/admin/legacy/pages/App/ConfigureTheView/ConfigureTheView.mjs.map +1 -1
  151. package/dist/admin/legacy/pages/App/components/BulkActions.js +2 -1
  152. package/dist/admin/legacy/pages/App/components/BulkActions.js.map +1 -1
  153. package/dist/admin/legacy/pages/App/components/BulkActions.mjs +2 -1
  154. package/dist/admin/legacy/pages/App/components/BulkActions.mjs.map +1 -1
  155. package/dist/admin/legacy/pages/App/components/BulkMoveButton.js +2 -1
  156. package/dist/admin/legacy/pages/App/components/BulkMoveButton.js.map +1 -1
  157. package/dist/admin/legacy/pages/App/components/BulkMoveButton.mjs +2 -1
  158. package/dist/admin/legacy/pages/App/components/BulkMoveButton.mjs.map +1 -1
  159. package/dist/admin/pages/Assets/AssetsPage.js +13 -302
  160. package/dist/admin/pages/Assets/AssetsPage.js.map +1 -1
  161. package/dist/admin/pages/Assets/AssetsPage.mjs +11 -280
  162. package/dist/admin/pages/Assets/AssetsPage.mjs.map +1 -1
  163. package/dist/admin/pages/Assets/components/AssetsGrid.js +143 -31
  164. package/dist/admin/pages/Assets/components/AssetsGrid.js.map +1 -1
  165. package/dist/admin/pages/Assets/components/AssetsGrid.mjs +146 -34
  166. package/dist/admin/pages/Assets/components/AssetsGrid.mjs.map +1 -1
  167. package/dist/admin/pages/Assets/components/AssetsSearchInput.js +43 -2
  168. package/dist/admin/pages/Assets/components/AssetsSearchInput.js.map +1 -1
  169. package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs +45 -4
  170. package/dist/admin/pages/Assets/components/AssetsSearchInput.mjs.map +1 -1
  171. package/dist/admin/pages/Assets/components/AssetsTable.js +60 -35
  172. package/dist/admin/pages/Assets/components/AssetsTable.js.map +1 -1
  173. package/dist/admin/pages/Assets/components/AssetsTable.mjs +62 -37
  174. package/dist/admin/pages/Assets/components/AssetsTable.mjs.map +1 -1
  175. package/dist/admin/pages/Assets/components/AssetsView.js +145 -0
  176. package/dist/admin/pages/Assets/components/AssetsView.js.map +1 -0
  177. package/dist/admin/pages/Assets/components/AssetsView.mjs +143 -0
  178. package/dist/admin/pages/Assets/components/AssetsView.mjs.map +1 -0
  179. package/dist/admin/pages/Assets/components/BulkActionsBar.js +3 -1
  180. package/dist/admin/pages/Assets/components/BulkActionsBar.js.map +1 -1
  181. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs +4 -2
  182. package/dist/admin/pages/Assets/components/BulkActionsBar.mjs.map +1 -1
  183. package/dist/admin/pages/Assets/components/BusyOverlay.mjs +1 -1
  184. package/dist/admin/pages/Assets/components/DateRangeCalendar.js +10 -7
  185. package/dist/admin/pages/Assets/components/DateRangeCalendar.js.map +1 -1
  186. package/dist/admin/pages/Assets/components/DateRangeCalendar.mjs +10 -7
  187. package/dist/admin/pages/Assets/components/DateRangeCalendar.mjs.map +1 -1
  188. package/dist/admin/pages/Assets/components/Dnd/DragOverlayChip.mjs +1 -1
  189. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.js +40 -0
  190. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.js.map +1 -0
  191. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.mjs +38 -0
  192. package/dist/admin/pages/Assets/components/Dnd/ReorderHandle.mjs.map +1 -0
  193. package/dist/admin/pages/Assets/components/Dnd/assetSortable.js +29 -0
  194. package/dist/admin/pages/Assets/components/Dnd/assetSortable.js.map +1 -0
  195. package/dist/admin/pages/Assets/components/Dnd/assetSortable.mjs +24 -0
  196. package/dist/admin/pages/Assets/components/Dnd/assetSortable.mjs.map +1 -0
  197. package/dist/admin/pages/Assets/components/Dnd/dndIds.js +5 -0
  198. package/dist/admin/pages/Assets/components/Dnd/dndIds.js.map +1 -1
  199. package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs +5 -1
  200. package/dist/admin/pages/Assets/components/Dnd/dndIds.mjs.map +1 -1
  201. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js +41 -13
  202. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.js.map +1 -1
  203. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs +41 -13
  204. package/dist/admin/pages/Assets/components/Dnd/useAssetDnd.mjs.map +1 -1
  205. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.js +4 -2
  206. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.js.map +1 -1
  207. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.mjs +5 -3
  208. package/dist/admin/pages/Assets/components/DropZone/UploadDropZoneContext.mjs.map +1 -1
  209. package/dist/admin/pages/Assets/components/FilterBadges.js +32 -3
  210. package/dist/admin/pages/Assets/components/FilterBadges.js.map +1 -1
  211. package/dist/admin/pages/Assets/components/FilterBadges.mjs +35 -6
  212. package/dist/admin/pages/Assets/components/FilterBadges.mjs.map +1 -1
  213. package/dist/admin/pages/Assets/components/FilterMenu.mjs +2 -2
  214. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js +274 -55
  215. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.js.map +1 -1
  216. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs +277 -59
  217. package/dist/admin/pages/Assets/components/FolderTree/FolderTree.mjs.map +1 -1
  218. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.js +32 -0
  219. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.js.map +1 -0
  220. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.mjs +29 -0
  221. package/dist/admin/pages/Assets/components/FolderTree/collapsedBranch.mjs.map +1 -0
  222. package/dist/admin/pages/Assets/components/ViewToggle.js +126 -0
  223. package/dist/admin/pages/Assets/components/ViewToggle.js.map +1 -0
  224. package/dist/admin/pages/Assets/components/ViewToggle.mjs +104 -0
  225. package/dist/admin/pages/Assets/components/ViewToggle.mjs.map +1 -0
  226. package/dist/admin/pages/Assets/hooks/useAssetSearch.js +2 -2
  227. package/dist/admin/pages/Assets/hooks/useAssetSearch.js.map +1 -1
  228. package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs +2 -2
  229. package/dist/admin/pages/Assets/hooks/useAssetSearch.mjs.map +1 -1
  230. package/dist/admin/pages/Assets/hooks/useAssetSelection.js +19 -1
  231. package/dist/admin/pages/Assets/hooks/useAssetSelection.js.map +1 -1
  232. package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs +20 -3
  233. package/dist/admin/pages/Assets/hooks/useAssetSelection.mjs.map +1 -1
  234. package/dist/admin/pages/Assets/hooks/useAssetsList.js +87 -0
  235. package/dist/admin/pages/Assets/hooks/useAssetsList.js.map +1 -0
  236. package/dist/admin/pages/Assets/hooks/useAssetsList.mjs +85 -0
  237. package/dist/admin/pages/Assets/hooks/useAssetsList.mjs.map +1 -0
  238. package/dist/admin/pages/Assets/hooks/useBusyAssets.mjs +1 -1
  239. package/dist/admin/pages/Assets/hooks/useFolderNavigation.js +2 -1
  240. package/dist/admin/pages/Assets/hooks/useFolderNavigation.js.map +1 -1
  241. package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs +3 -2
  242. package/dist/admin/pages/Assets/hooks/useFolderNavigation.mjs.map +1 -1
  243. package/dist/admin/pages/Assets/hooks/useListFilters.js +2 -1
  244. package/dist/admin/pages/Assets/hooks/useListFilters.js.map +1 -1
  245. package/dist/admin/pages/Assets/hooks/useListFilters.mjs +3 -2
  246. package/dist/admin/pages/Assets/hooks/useListFilters.mjs.map +1 -1
  247. package/dist/admin/pages/Assets/hooks/useListQueryParams.js +80 -0
  248. package/dist/admin/pages/Assets/hooks/useListQueryParams.js.map +1 -0
  249. package/dist/admin/pages/Assets/hooks/useListQueryParams.mjs +77 -0
  250. package/dist/admin/pages/Assets/hooks/useListQueryParams.mjs.map +1 -0
  251. package/dist/admin/pages/Assets/hooks/useListSettings.js +32 -0
  252. package/dist/admin/pages/Assets/hooks/useListSettings.js.map +1 -0
  253. package/dist/admin/pages/Assets/hooks/useListSettings.mjs +29 -0
  254. package/dist/admin/pages/Assets/hooks/useListSettings.mjs.map +1 -0
  255. package/dist/admin/pages/Assets/hooks/useListSort.js +2 -1
  256. package/dist/admin/pages/Assets/hooks/useListSort.js.map +1 -1
  257. package/dist/admin/pages/Assets/hooks/useListSort.mjs +3 -2
  258. package/dist/admin/pages/Assets/hooks/useListSort.mjs.map +1 -1
  259. package/dist/admin/services/api.js +106 -11
  260. package/dist/admin/services/api.js.map +1 -1
  261. package/dist/admin/services/api.mjs +105 -13
  262. package/dist/admin/services/api.mjs.map +1 -1
  263. package/dist/admin/src/components/AssetPickerDialog/AssetPickerDialog.d.ts +19 -0
  264. package/dist/admin/src/components/AssetPickerDialog/FolderBreadcrumbs.d.ts +10 -0
  265. package/dist/admin/src/components/AssetPickerDialog/PickerSelectionProvider.d.ts +28 -0
  266. package/dist/admin/src/components/AssetPickerDialog/SortableSelection.d.ts +12 -0
  267. package/dist/admin/src/components/AssetPickerDialog/pickerSelection.d.ts +26 -0
  268. package/dist/admin/src/components/MediaLibraryInput/AddAssetMenu.d.ts +19 -0
  269. package/dist/admin/src/components/MediaLibraryInput/AssetCard.d.ts +25 -0
  270. package/dist/admin/src/components/MediaLibraryInput/AssetCarousel.d.ts +16 -0
  271. package/dist/admin/src/components/MediaLibraryInput/AssetDropZone.d.ts +21 -0
  272. package/dist/admin/src/components/MediaLibraryInput/AssetPreview.d.ts +17 -0
  273. package/dist/admin/src/components/MediaLibraryInput/AssetRow.d.ts +25 -0
  274. package/dist/admin/src/components/MediaLibraryInput/FieldControls.d.ts +19 -0
  275. package/dist/admin/src/components/MediaLibraryInput/MediaLibraryInput.d.ts +28 -0
  276. package/dist/admin/src/components/MediaLibraryInput/UploadProgressBar.d.ts +7 -0
  277. package/dist/admin/src/components/MediaLibraryInput/useFieldUploads.d.ts +31 -0
  278. package/dist/admin/src/hooks/useMediaLibraryPermissions.d.ts +3 -0
  279. package/dist/admin/src/legacy/components/BulkMoveDialog/BulkMoveDialog.d.ts +1 -1
  280. package/dist/admin/src/legacy/pages/App/components/BulkActions.d.ts +1 -1
  281. package/dist/admin/src/pages/Assets/components/AssetsGrid.d.ts +3 -1
  282. package/dist/admin/src/pages/Assets/components/AssetsSearchInput.d.ts +11 -1
  283. package/dist/admin/src/pages/Assets/components/AssetsView.d.ts +29 -0
  284. package/dist/admin/src/pages/Assets/components/Dnd/ReorderHandle.d.ts +12 -0
  285. package/dist/admin/src/pages/Assets/components/Dnd/assetSortable.d.ts +37 -0
  286. package/dist/admin/src/pages/Assets/components/Dnd/dndIds.d.ts +5 -0
  287. package/dist/admin/src/pages/Assets/components/Dnd/useAssetDnd.d.ts +23 -2
  288. package/dist/admin/src/pages/Assets/components/FolderTree/FolderTree.d.ts +1 -0
  289. package/dist/admin/src/pages/Assets/components/FolderTree/collapsedBranch.d.ts +21 -0
  290. package/dist/admin/src/pages/Assets/components/ViewToggle.d.ts +8 -0
  291. package/dist/admin/src/pages/Assets/hooks/useAssetSelection.d.ts +26 -0
  292. package/dist/admin/src/pages/Assets/hooks/useAssetsList.d.ts +30 -0
  293. package/dist/admin/src/pages/Assets/hooks/useListQueryParams.d.ts +27 -0
  294. package/dist/admin/src/pages/Assets/hooks/useListSettings.d.ts +29 -0
  295. package/dist/admin/src/services/api.d.ts +30 -1
  296. package/dist/admin/src/store/uploadProgress.d.ts +14 -1
  297. package/dist/admin/src/utils/allowedMediaTypes.d.ts +16 -0
  298. package/dist/admin/src/utils/findFolderPath.d.ts +6 -0
  299. package/dist/admin/src/utils/isAllowedAssetType.d.ts +14 -0
  300. package/dist/admin/store/uploadProgress.js +30 -3
  301. package/dist/admin/store/uploadProgress.js.map +1 -1
  302. package/dist/admin/store/uploadProgress.mjs +29 -4
  303. package/dist/admin/store/uploadProgress.mjs.map +1 -1
  304. package/dist/admin/translations/ca.json.js +3 -3
  305. package/dist/admin/translations/ca.json.mjs +3 -3
  306. package/dist/admin/translations/da.json.js +1 -1
  307. package/dist/admin/translations/da.json.mjs +1 -1
  308. package/dist/admin/translations/de.json.js +1 -1
  309. package/dist/admin/translations/de.json.mjs +1 -1
  310. package/dist/admin/translations/en.json.js +29 -0
  311. package/dist/admin/translations/en.json.js.map +1 -1
  312. package/dist/admin/translations/en.json.mjs +29 -0
  313. package/dist/admin/translations/en.json.mjs.map +1 -1
  314. package/dist/admin/translations/es.json.js +1 -1
  315. package/dist/admin/translations/es.json.mjs +1 -1
  316. package/dist/admin/translations/sk.json.js +2 -2
  317. package/dist/admin/translations/sk.json.mjs +2 -2
  318. package/dist/admin/translations/tr.json.js +2 -2
  319. package/dist/admin/translations/tr.json.mjs +2 -2
  320. package/dist/admin/translations/zh-Hans.json.js +1 -1
  321. package/dist/admin/translations/zh-Hans.json.mjs +1 -1
  322. package/dist/admin/translations/zh.json.js +2 -2
  323. package/dist/admin/translations/zh.json.mjs +2 -2
  324. package/dist/admin/utils/allowedMediaTypes.js +42 -0
  325. package/dist/admin/utils/allowedMediaTypes.js.map +1 -0
  326. package/dist/admin/utils/allowedMediaTypes.mjs +39 -0
  327. package/dist/admin/utils/allowedMediaTypes.mjs.map +1 -0
  328. package/dist/admin/utils/findFolderPath.js +26 -0
  329. package/dist/admin/utils/findFolderPath.js.map +1 -0
  330. package/dist/admin/utils/findFolderPath.mjs +24 -0
  331. package/dist/admin/utils/findFolderPath.mjs.map +1 -0
  332. package/dist/admin/utils/isAllowedAssetType.js +33 -0
  333. package/dist/admin/utils/isAllowedAssetType.js.map +1 -0
  334. package/dist/admin/utils/isAllowedAssetType.mjs +31 -0
  335. package/dist/admin/utils/isAllowedAssetType.mjs.map +1 -0
  336. package/dist/server/config.js +6 -0
  337. package/dist/server/config.js.map +1 -1
  338. package/dist/server/config.mjs +6 -0
  339. package/dist/server/config.mjs.map +1 -1
  340. package/dist/server/controllers/admin-settings.js +5 -1
  341. package/dist/server/controllers/admin-settings.js.map +1 -1
  342. package/dist/server/controllers/admin-settings.mjs +5 -1
  343. package/dist/server/controllers/admin-settings.mjs.map +1 -1
  344. package/dist/server/controllers/validation/admin/upload.js.map +1 -1
  345. package/dist/server/controllers/validation/admin/upload.mjs.map +1 -1
  346. package/dist/server/controllers/validation/content-api/upload.js.map +1 -1
  347. package/dist/server/controllers/validation/content-api/upload.mjs.map +1 -1
  348. package/dist/server/mcp/ambient-instance.js +7 -5
  349. package/dist/server/mcp/ambient-instance.js.map +1 -1
  350. package/dist/server/mcp/ambient-instance.mjs +7 -5
  351. package/dist/server/mcp/ambient-instance.mjs.map +1 -1
  352. package/dist/server/mcp/handlers/folder-handlers.js +4 -16
  353. package/dist/server/mcp/handlers/folder-handlers.js.map +1 -1
  354. package/dist/server/mcp/handlers/folder-handlers.mjs +5 -17
  355. package/dist/server/mcp/handlers/folder-handlers.mjs.map +1 -1
  356. package/dist/server/mcp/handlers/read-handlers.js +6 -14
  357. package/dist/server/mcp/handlers/read-handlers.js.map +1 -1
  358. package/dist/server/mcp/handlers/read-handlers.mjs +7 -15
  359. package/dist/server/mcp/handlers/read-handlers.mjs.map +1 -1
  360. package/dist/server/mcp/handlers/write-handlers.js +3 -13
  361. package/dist/server/mcp/handlers/write-handlers.js.map +1 -1
  362. package/dist/server/mcp/handlers/write-handlers.mjs +3 -13
  363. package/dist/server/mcp/handlers/write-handlers.mjs.map +1 -1
  364. package/dist/server/mcp/register-upload-mcp-tools.js +215 -195
  365. package/dist/server/mcp/register-upload-mcp-tools.js.map +1 -1
  366. package/dist/server/mcp/register-upload-mcp-tools.mjs +215 -195
  367. package/dist/server/mcp/register-upload-mcp-tools.mjs.map +1 -1
  368. package/dist/server/services/image-manipulation.js +35 -16
  369. package/dist/server/services/image-manipulation.js.map +1 -1
  370. package/dist/server/services/image-manipulation.mjs +35 -16
  371. package/dist/server/services/image-manipulation.mjs.map +1 -1
  372. package/dist/server/services/upload.js.map +1 -1
  373. package/dist/server/services/upload.mjs.map +1 -1
  374. package/dist/server/src/config.d.ts +3 -0
  375. package/dist/server/src/config.d.ts.map +1 -1
  376. package/dist/server/src/controllers/admin-settings.d.ts.map +1 -1
  377. package/dist/server/src/controllers/validation/admin/upload.d.ts.map +1 -1
  378. package/dist/server/src/controllers/validation/content-api/upload.d.ts.map +1 -1
  379. package/dist/server/src/index.d.ts +4 -1
  380. package/dist/server/src/index.d.ts.map +1 -1
  381. package/dist/server/src/mcp/ambient-instance.d.ts +7 -5
  382. package/dist/server/src/mcp/ambient-instance.d.ts.map +1 -1
  383. package/dist/server/src/mcp/handlers/folder-handlers.d.ts.map +1 -1
  384. package/dist/server/src/mcp/handlers/read-handlers.d.ts +3 -2
  385. package/dist/server/src/mcp/handlers/read-handlers.d.ts.map +1 -1
  386. package/dist/server/src/mcp/handlers/write-handlers.d.ts.map +1 -1
  387. package/dist/server/src/mcp/register-upload-mcp-tools.d.ts +9 -14
  388. package/dist/server/src/mcp/register-upload-mcp-tools.d.ts.map +1 -1
  389. package/dist/server/src/services/extensions/utils.d.ts +11 -11
  390. package/dist/server/src/services/image-manipulation.d.ts +1 -1
  391. package/dist/server/src/services/image-manipulation.d.ts.map +1 -1
  392. package/dist/server/src/services/index.d.ts +1 -1
  393. package/dist/server/src/types.d.ts +64 -12
  394. package/dist/server/src/types.d.ts.map +1 -1
  395. package/package.json +8 -6
@@ -1 +1 @@
1
- {"version":3,"file":"FilterPopover.js","sources":["../../../../../admin/src/legacy/components/FilterPopover/FilterPopover.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\n/**\n *\n * FilterPopover\n *\n */\nimport * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n SingleSelectOption,\n Popover,\n SingleSelect,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterValueInput } from './FilterValueInput';\nimport { getFilterList } from './utils/getFilterList';\n\ntype 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 FilterPopoverProps {\n displayedFilters: {\n name: string;\n metadatas?: {\n label?: string;\n };\n fieldSchema: {\n type: string;\n options?: {\n value: string;\n }[];\n mainField?: {\n schema: {\n type: string;\n };\n };\n };\n }[];\n filters: Filter[];\n onSubmit: (filters: Filter[]) => void;\n onToggle: () => void;\n}\n\nexport const FilterPopover = ({\n displayedFilters,\n filters,\n onSubmit,\n onToggle,\n}: FilterPopoverProps) => {\n const { formatMessage } = useIntl();\n\n const [modifiedData, setModifiedData] = React.useState({\n name: 'createdAt',\n filter: '$eq',\n value: '',\n });\n\n const handleChangeFilterField = (value: string | number) => {\n const nextField = displayedFilters.find((f) => f.name === value);\n if (!nextField) {\n return;\n }\n const {\n fieldSchema: { type, options },\n } = nextField;\n let filterValue = '';\n\n if (type === 'enumeration') {\n filterValue = options?.[0].value || '';\n }\n\n const filter = getFilterList(nextField)[0].value;\n\n setModifiedData({ name: value.toString(), filter, value: filterValue });\n };\n\n const handleChangeOperator = (operator: string | number) => {\n if (modifiedData.name === 'mime') {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: 'image' }));\n } else {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: '' }));\n }\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n const { value } = modifiedData;\n\n if (value) {\n if (modifiedData.name === 'mime') {\n const alreadyAppliedFilters = filters.filter((filter) => {\n return Object.keys(filter)[0] === 'mime';\n });\n\n if (modifiedData.value === 'file') {\n const filtersWithoutMimeType = filters.filter((filter) => {\n return Object.keys(filter)[0] !== 'mime';\n });\n\n let hasCurrentFilter = false;\n\n let filterToAdd: Filter;\n\n if (modifiedData.filter === '$contains') {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n if (typeof filter.mime?.$not !== 'string' && !Array.isArray(filter.mime?.$not)) {\n return filter.mime?.$not?.$contains !== undefined;\n }\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $not: {\n $contains: ['image', 'video'],\n },\n },\n };\n } else {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n return Array.isArray(filter.mime?.$contains);\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $contains: ['image', 'video'],\n },\n };\n }\n\n if (hasCurrentFilter) {\n onToggle();\n\n return;\n }\n\n const nextFilters = [...filtersWithoutMimeType, filterToAdd];\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n const hasFilter =\n alreadyAppliedFilters.find((filter) => {\n const modifiedDataFilter = modifiedData.filter;\n return (\n filter.mime &&\n filter.mime[modifiedDataFilter as keyof typeof filter.mime] === modifiedData.value\n );\n }) !== undefined;\n\n // Don't apply the same filter twice\n if (hasFilter) {\n onToggle();\n\n return;\n }\n\n const filtersWithoutFile = filters.filter((filter) => {\n const filterType = Object.keys(filter)[0];\n\n if (filterType !== 'mime') {\n return true;\n }\n\n if (\n typeof filter.mime?.$not !== 'string' &&\n !Array.isArray(filter.mime?.$not) &&\n filter.mime?.$not?.$contains !== undefined\n ) {\n return false;\n }\n\n if (Array.isArray(filter?.mime?.$contains)) {\n return false;\n }\n\n return true;\n });\n\n const oppositeFilter = modifiedData.filter === '$contains' ? '$notContains' : '$contains';\n\n const oppositeFilterIndex = filtersWithoutFile.findIndex((filter) => {\n return filter.mime?.[oppositeFilter] === modifiedData.value;\n });\n const hasOppositeFilter = oppositeFilterIndex !== -1;\n\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: modifiedData.value } };\n\n if (!hasOppositeFilter) {\n const nextFilters = [...filtersWithoutFile, filterToAdd];\n\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n if (hasOppositeFilter) {\n const nextFilters = filtersWithoutFile.slice();\n nextFilters.splice(oppositeFilterIndex, 1, filterToAdd);\n onSubmit(nextFilters);\n\n onToggle();\n }\n\n return;\n }\n\n const hasFilter =\n filters.find((filter) => {\n const modifiedDataName = modifiedData.name as\n | 'mime'\n | 'createdAt'\n | 'updatedAt'\n | '$contains'\n | '$notContains'\n | '$eq'\n | '$not';\n return (\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt'] &&\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt']?.[\n modifiedDataName as '$contains' | '$notContains' | '$eq' | '$not'\n ] === value\n );\n }) !== undefined;\n\n if (!hasFilter) {\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: value } };\n\n const nextFilters = [...filters, filterToAdd];\n\n onSubmit(nextFilters);\n }\n }\n\n onToggle();\n };\n\n const appliedFilter = displayedFilters.find((filter) => filter.name === modifiedData.name);\n\n return (\n <Popover.Content sideOffset={4} style={{ zIndex: 499 }}>\n <form onSubmit={handleSubmit}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1} style={{ minWidth: 184 }}>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-field',\n defaultMessage: 'Select field',\n })}\n name=\"name\"\n size=\"M\"\n onChange={handleChangeFilterField}\n value={modifiedData.name}\n >\n {displayedFilters.map((filter) => {\n return (\n <SingleSelectOption key={filter.name} value={filter.name}>\n {filter.metadatas?.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-filter',\n defaultMessage: 'Select filter',\n })}\n name=\"filter\"\n size=\"M\"\n value={modifiedData.filter}\n onChange={handleChangeOperator}\n >\n {getFilterList(appliedFilter!).map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {formatMessage(option.intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <FilterValueInput\n {...appliedFilter?.metadatas}\n {...appliedFilter?.fieldSchema}\n value={modifiedData.value}\n onChange={(value) => setModifiedData((prev) => ({ ...prev, value }))}\n />\n </Box>\n <Box>\n <Button size=\"L\" variant=\"secondary\" startIcon={<Plus />} type=\"submit\" fullWidth>\n {formatMessage({ id: 'app.utils.add-filter', defaultMessage: 'Add filter' })}\n </Button>\n </Box>\n </Flex>\n </form>\n </Popover.Content>\n );\n};\n"],"names":["FilterPopover","displayedFilters","filters","onSubmit","onToggle","formatMessage","useIntl","modifiedData","setModifiedData","React","useState","name","filter","value","handleChangeFilterField","nextField","find","f","fieldSchema","type","options","filterValue","getFilterList","toString","handleChangeOperator","operator","prev","handleSubmit","e","preventDefault","stopPropagation","alreadyAppliedFilters","Object","keys","filtersWithoutMimeType","hasCurrentFilter","filterToAdd","mime","$not","Array","isArray","$contains","undefined","nextFilters","hasFilter","modifiedDataFilter","filtersWithoutFile","filterType","oppositeFilter","oppositeFilterIndex","findIndex","hasOppositeFilter","slice","splice","modifiedDataName","appliedFilter","_jsx","Popover","Content","sideOffset","style","zIndex","form","_jsxs","Flex","padding","direction","alignItems","gap","minWidth","Box","SingleSelect","aria-label","id","defaultMessage","size","onChange","map","SingleSelectOption","metadatas","label","option","intlLabel","FilterValueInput","Button","variant","startIcon","Plus","fullWidth"],"mappings":"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"}
1
+ {"version":3,"file":"FilterPopover.js","sources":["../../../../../admin/src/legacy/components/FilterPopover/FilterPopover.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\n/**\n *\n * FilterPopover\n *\n */\nimport * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n SingleSelectOption,\n Popover,\n SingleSelect,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterValueInput } from './FilterValueInput';\nimport { getFilterList } from './utils/getFilterList';\n\ntype Filter = {\n [key in 'mime' | 'createdAt' | 'updatedAt']?:\n | {\n [key in '$contains' | '$notContains' | '$eq' | '$not']?:\n string[] | string | { $contains: string[] };\n }\n | undefined;\n};\n\nexport interface FilterPopoverProps {\n displayedFilters: {\n name: string;\n metadatas?: {\n label?: string;\n };\n fieldSchema: {\n type: string;\n options?: {\n value: string;\n }[];\n mainField?: {\n schema: {\n type: string;\n };\n };\n };\n }[];\n filters: Filter[];\n onSubmit: (filters: Filter[]) => void;\n onToggle: () => void;\n}\n\nexport const FilterPopover = ({\n displayedFilters,\n filters,\n onSubmit,\n onToggle,\n}: FilterPopoverProps) => {\n const { formatMessage } = useIntl();\n\n const [modifiedData, setModifiedData] = React.useState({\n name: 'createdAt',\n filter: '$eq',\n value: '',\n });\n\n const handleChangeFilterField = (value: string | number) => {\n const nextField = displayedFilters.find((f) => f.name === value);\n if (!nextField) {\n return;\n }\n const {\n fieldSchema: { type, options },\n } = nextField;\n let filterValue = '';\n\n if (type === 'enumeration') {\n filterValue = options?.[0].value || '';\n }\n\n const filter = getFilterList(nextField)[0].value;\n\n setModifiedData({ name: value.toString(), filter, value: filterValue });\n };\n\n const handleChangeOperator = (operator: string | number) => {\n if (modifiedData.name === 'mime') {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: 'image' }));\n } else {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: '' }));\n }\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n const { value } = modifiedData;\n\n if (value) {\n if (modifiedData.name === 'mime') {\n const alreadyAppliedFilters = filters.filter((filter) => {\n return Object.keys(filter)[0] === 'mime';\n });\n\n if (modifiedData.value === 'file') {\n const filtersWithoutMimeType = filters.filter((filter) => {\n return Object.keys(filter)[0] !== 'mime';\n });\n\n let hasCurrentFilter = false;\n\n let filterToAdd: Filter;\n\n if (modifiedData.filter === '$contains') {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n if (typeof filter.mime?.$not !== 'string' && !Array.isArray(filter.mime?.$not)) {\n return filter.mime?.$not?.$contains !== undefined;\n }\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $not: {\n $contains: ['image', 'video'],\n },\n },\n };\n } else {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n return Array.isArray(filter.mime?.$contains);\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $contains: ['image', 'video'],\n },\n };\n }\n\n if (hasCurrentFilter) {\n onToggle();\n\n return;\n }\n\n const nextFilters = [...filtersWithoutMimeType, filterToAdd];\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n const hasFilter =\n alreadyAppliedFilters.find((filter) => {\n const modifiedDataFilter = modifiedData.filter;\n return (\n filter.mime &&\n filter.mime[modifiedDataFilter as keyof typeof filter.mime] === modifiedData.value\n );\n }) !== undefined;\n\n // Don't apply the same filter twice\n if (hasFilter) {\n onToggle();\n\n return;\n }\n\n const filtersWithoutFile = filters.filter((filter) => {\n const filterType = Object.keys(filter)[0];\n\n if (filterType !== 'mime') {\n return true;\n }\n\n if (\n typeof filter.mime?.$not !== 'string' &&\n !Array.isArray(filter.mime?.$not) &&\n filter.mime?.$not?.$contains !== undefined\n ) {\n return false;\n }\n\n if (Array.isArray(filter?.mime?.$contains)) {\n return false;\n }\n\n return true;\n });\n\n const oppositeFilter = modifiedData.filter === '$contains' ? '$notContains' : '$contains';\n\n const oppositeFilterIndex = filtersWithoutFile.findIndex((filter) => {\n return filter.mime?.[oppositeFilter] === modifiedData.value;\n });\n const hasOppositeFilter = oppositeFilterIndex !== -1;\n\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: modifiedData.value } };\n\n if (!hasOppositeFilter) {\n const nextFilters = [...filtersWithoutFile, filterToAdd];\n\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n if (hasOppositeFilter) {\n const nextFilters = filtersWithoutFile.slice();\n nextFilters.splice(oppositeFilterIndex, 1, filterToAdd);\n onSubmit(nextFilters);\n\n onToggle();\n }\n\n return;\n }\n\n const hasFilter =\n filters.find((filter) => {\n const modifiedDataName = modifiedData.name as\n 'mime' | 'createdAt' | 'updatedAt' | '$contains' | '$notContains' | '$eq' | '$not';\n return (\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt'] &&\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt']?.[\n modifiedDataName as '$contains' | '$notContains' | '$eq' | '$not'\n ] === value\n );\n }) !== undefined;\n\n if (!hasFilter) {\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: value } };\n\n const nextFilters = [...filters, filterToAdd];\n\n onSubmit(nextFilters);\n }\n }\n\n onToggle();\n };\n\n const appliedFilter = displayedFilters.find((filter) => filter.name === modifiedData.name);\n\n return (\n <Popover.Content sideOffset={4} style={{ zIndex: 499 }}>\n <form onSubmit={handleSubmit}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1} style={{ minWidth: 184 }}>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-field',\n defaultMessage: 'Select field',\n })}\n name=\"name\"\n size=\"M\"\n onChange={handleChangeFilterField}\n value={modifiedData.name}\n >\n {displayedFilters.map((filter) => {\n return (\n <SingleSelectOption key={filter.name} value={filter.name}>\n {filter.metadatas?.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-filter',\n defaultMessage: 'Select filter',\n })}\n name=\"filter\"\n size=\"M\"\n value={modifiedData.filter}\n onChange={handleChangeOperator}\n >\n {getFilterList(appliedFilter!).map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {formatMessage(option.intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <FilterValueInput\n {...appliedFilter?.metadatas}\n {...appliedFilter?.fieldSchema}\n value={modifiedData.value}\n onChange={(value) => setModifiedData((prev) => ({ ...prev, value }))}\n />\n </Box>\n <Box>\n <Button size=\"L\" variant=\"secondary\" startIcon={<Plus />} type=\"submit\" fullWidth>\n {formatMessage({ id: 'app.utils.add-filter', defaultMessage: 'Add filter' })}\n </Button>\n </Box>\n </Flex>\n </form>\n </Popover.Content>\n );\n};\n"],"names":["FilterPopover","displayedFilters","filters","onSubmit","onToggle","formatMessage","useIntl","modifiedData","setModifiedData","React","useState","name","filter","value","handleChangeFilterField","nextField","find","f","fieldSchema","type","options","filterValue","getFilterList","toString","handleChangeOperator","operator","prev","handleSubmit","e","preventDefault","stopPropagation","alreadyAppliedFilters","Object","keys","filtersWithoutMimeType","hasCurrentFilter","filterToAdd","mime","$not","Array","isArray","$contains","undefined","nextFilters","hasFilter","modifiedDataFilter","filtersWithoutFile","filterType","oppositeFilter","oppositeFilterIndex","findIndex","hasOppositeFilter","slice","splice","modifiedDataName","appliedFilter","_jsx","Popover","Content","sideOffset","style","zIndex","form","_jsxs","Flex","padding","direction","alignItems","gap","minWidth","Box","SingleSelect","aria-label","id","defaultMessage","size","onChange","map","SingleSelectOption","metadatas","label","option","intlLabel","FilterValueInput","Button","variant","startIcon","Plus","fullWidth"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAsDO,MAAMA,aAAAA,GAAgB,CAAC,EAC5BC,gBAAgB,EAChBC,OAAO,EACPC,QAAQ,EACRC,QAAQ,EACW,GAAA;IACnB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,MAAM,CAACC,YAAAA,EAAcC,eAAAA,CAAgB,GAAGC,gBAAAA,CAAMC,QAAQ,CAAC;QACrDC,IAAAA,EAAM,WAAA;QACNC,MAAAA,EAAQ,KAAA;QACRC,KAAAA,EAAO;AACT,KAAA,CAAA;AAEA,IAAA,MAAMC,0BAA0B,CAACD,KAAAA,GAAAA;QAC/B,MAAME,SAAAA,GAAYd,iBAAiBe,IAAI,CAAC,CAACC,CAAAA,GAAMA,CAAAA,CAAEN,IAAI,KAAKE,KAAAA,CAAAA;AAC1D,QAAA,IAAI,CAACE,SAAAA,EAAW;AACd,YAAA;AACF,QAAA;QACA,MAAM,EACJG,aAAa,EAAEC,IAAI,EAAEC,OAAO,EAAE,EAC/B,GAAGL,SAAAA;AACJ,QAAA,IAAIM,WAAAA,GAAc,EAAA;AAElB,QAAA,IAAIF,SAAS,aAAA,EAAe;AAC1BE,YAAAA,WAAAA,GAAcD,OAAAA,GAAU,CAAA,CAAE,CAACP,KAAAA,IAAS,EAAA;AACtC,QAAA;AAEA,QAAA,MAAMD,SAASU,2BAAAA,CAAcP,SAAAA,CAAU,CAAC,CAAA,CAAE,CAACF,KAAK;QAEhDL,eAAAA,CAAgB;AAAEG,YAAAA,IAAAA,EAAME,MAAMU,QAAQ,EAAA;AAAIX,YAAAA,MAAAA;YAAQC,KAAAA,EAAOQ;AAAY,SAAA,CAAA;AACvE,IAAA,CAAA;AAEA,IAAA,MAAMG,uBAAuB,CAACC,QAAAA,GAAAA;QAC5B,IAAIlB,YAAAA,CAAaI,IAAI,KAAK,MAAA,EAAQ;YAChCH,eAAAA,CAAgB,CAACkB,QAAU;AAAE,oBAAA,GAAGA,IAAI;AAAEd,oBAAAA,MAAAA,EAAQa,SAASF,QAAQ,EAAA;oBAAIV,KAAAA,EAAO;iBAAQ,CAAA,CAAA;QACpF,CAAA,MAAO;YACLL,eAAAA,CAAgB,CAACkB,QAAU;AAAE,oBAAA,GAAGA,IAAI;AAAEd,oBAAAA,MAAAA,EAAQa,SAASF,QAAQ,EAAA;oBAAIV,KAAAA,EAAO;iBAAG,CAAA,CAAA;AAC/E,QAAA;AACF,IAAA,CAAA;AAEA,IAAA,MAAMc,eAAe,CAACC,CAAAA,GAAAA;AACpBA,QAAAA,CAAAA,CAAEC,cAAc,EAAA;AAChBD,QAAAA,CAAAA,CAAEE,eAAe,EAAA;QAEjB,MAAM,EAAEjB,KAAK,EAAE,GAAGN,YAAAA;AAElB,QAAA,IAAIM,KAAAA,EAAO;YACT,IAAIN,YAAAA,CAAaI,IAAI,KAAK,MAAA,EAAQ;AAChC,gBAAA,MAAMoB,qBAAAA,GAAwB7B,OAAAA,CAAQU,MAAM,CAAC,CAACA,MAAAA,GAAAA;AAC5C,oBAAA,OAAOoB,OAAOC,IAAI,CAACrB,MAAAA,CAAO,CAAC,EAAE,KAAK,MAAA;AACpC,gBAAA,CAAA,CAAA;gBAEA,IAAIL,YAAAA,CAAaM,KAAK,KAAK,MAAA,EAAQ;AACjC,oBAAA,MAAMqB,sBAAAA,GAAyBhC,OAAAA,CAAQU,MAAM,CAAC,CAACA,MAAAA,GAAAA;AAC7C,wBAAA,OAAOoB,OAAOC,IAAI,CAACrB,MAAAA,CAAO,CAAC,EAAE,KAAK,MAAA;AACpC,oBAAA,CAAA,CAAA;AAEA,oBAAA,IAAIuB,gBAAAA,GAAmB,KAAA;oBAEvB,IAAIC,WAAAA;oBAEJ,IAAI7B,YAAAA,CAAaK,MAAM,KAAK,WAAA,EAAa;wBACvCuB,gBAAAA,GACEJ,qBAAAA,CAAsBf,IAAI,CAAC,CAACJ,MAAAA,GAAAA;AAC1B,4BAAA,IAAI,OAAOA,MAAAA,CAAOyB,IAAI,EAAEC,IAAAA,KAAS,QAAA,IAAY,CAACC,KAAAA,CAAMC,OAAO,CAAC5B,MAAAA,CAAOyB,IAAI,EAAEC,IAAAA,CAAAA,EAAO;AAC9E,gCAAA,OAAO1B,MAAAA,CAAOyB,IAAI,EAAEC,IAAAA,EAAMG,SAAAA,KAAcC,SAAAA;AAC1C,4BAAA;wBACF,CAAA,CAAA,KAAOA,SAAAA;wBAETN,WAAAA,GAAc;4BACZC,IAAAA,EAAM;gCACJC,IAAAA,EAAM;oCACJG,SAAAA,EAAW;AAAC,wCAAA,OAAA;AAAS,wCAAA;AAAQ;AAC/B;AACF;AACF,yBAAA;oBACF,CAAA,MAAO;wBACLN,gBAAAA,GACEJ,qBAAAA,CAAsBf,IAAI,CAAC,CAACJ,MAAAA,GAAAA;AAC1B,4BAAA,OAAO2B,KAAAA,CAAMC,OAAO,CAAC5B,MAAAA,CAAOyB,IAAI,EAAEI,SAAAA,CAAAA;wBACpC,CAAA,CAAA,KAAOC,SAAAA;wBAETN,WAAAA,GAAc;4BACZC,IAAAA,EAAM;gCACJI,SAAAA,EAAW;AAAC,oCAAA,OAAA;AAAS,oCAAA;AAAQ;AAC/B;AACF,yBAAA;AACF,oBAAA;AAEA,oBAAA,IAAIN,gBAAAA,EAAkB;AACpB/B,wBAAAA,QAAAA,EAAAA;AAEA,wBAAA;AACF,oBAAA;AAEA,oBAAA,MAAMuC,WAAAA,GAAc;AAAIT,wBAAAA,GAAAA,sBAAAA;AAAwBE,wBAAAA;AAAY,qBAAA;oBAC5DjC,QAAAA,CAASwC,WAAAA,CAAAA;AAETvC,oBAAAA,QAAAA,EAAAA;AAEA,oBAAA;AACF,gBAAA;AAEA,gBAAA,MAAMwC,SAAAA,GACJb,qBAAAA,CAAsBf,IAAI,CAAC,CAACJ,MAAAA,GAAAA;oBAC1B,MAAMiC,kBAAAA,GAAqBtC,aAAaK,MAAM;oBAC9C,OACEA,MAAAA,CAAOyB,IAAI,IACXzB,MAAAA,CAAOyB,IAAI,CAACQ,kBAAAA,CAA+C,KAAKtC,YAAAA,CAAaM,KAAK;gBAEtF,CAAA,CAAA,KAAO6B,SAAAA;;AAGT,gBAAA,IAAIE,SAAAA,EAAW;AACbxC,oBAAAA,QAAAA,EAAAA;AAEA,oBAAA;AACF,gBAAA;AAEA,gBAAA,MAAM0C,kBAAAA,GAAqB5C,OAAAA,CAAQU,MAAM,CAAC,CAACA,MAAAA,GAAAA;AACzC,oBAAA,MAAMmC,aAAaf,MAAAA,CAAOC,IAAI,CAACrB,MAAAA,CAAO,CAAC,CAAA,CAAE;AAEzC,oBAAA,IAAImC,eAAe,MAAA,EAAQ;wBACzB,OAAO,IAAA;AACT,oBAAA;AAEA,oBAAA,IACE,OAAOnC,MAAAA,CAAOyB,IAAI,EAAEC,IAAAA,KAAS,QAAA,IAC7B,CAACC,KAAAA,CAAMC,OAAO,CAAC5B,MAAAA,CAAOyB,IAAI,EAAEC,IAAAA,CAAAA,IAC5B1B,MAAAA,CAAOyB,IAAI,EAAEC,IAAAA,EAAMG,cAAcC,SAAAA,EACjC;wBACA,OAAO,KAAA;AACT,oBAAA;AAEA,oBAAA,IAAIH,KAAAA,CAAMC,OAAO,CAAC5B,MAAAA,EAAQyB,MAAMI,SAAAA,CAAAA,EAAY;wBAC1C,OAAO,KAAA;AACT,oBAAA;oBAEA,OAAO,IAAA;AACT,gBAAA,CAAA,CAAA;AAEA,gBAAA,MAAMO,cAAAA,GAAiBzC,YAAAA,CAAaK,MAAM,KAAK,cAAc,cAAA,GAAiB,WAAA;AAE9E,gBAAA,MAAMqC,mBAAAA,GAAsBH,kBAAAA,CAAmBI,SAAS,CAAC,CAACtC,MAAAA,GAAAA;AACxD,oBAAA,OAAOA,OAAOyB,IAAI,GAAGW,cAAAA,CAAe,KAAKzC,aAAaM,KAAK;AAC7D,gBAAA,CAAA,CAAA;gBACA,MAAMsC,iBAAAA,GAAoBF,wBAAwB,EAAC;AAEnD,gBAAA,MAAMb,WAAAA,GAAc;oBAAE,CAAC7B,YAAAA,CAAaI,IAAI,GAAG;AAAE,wBAAA,CAACJ,YAAAA,CAAaK,MAAM,GAAGL,aAAaM;AAAM;AAAE,iBAAA;AAEzF,gBAAA,IAAI,CAACsC,iBAAAA,EAAmB;AACtB,oBAAA,MAAMR,WAAAA,GAAc;AAAIG,wBAAAA,GAAAA,kBAAAA;AAAoBV,wBAAAA;AAAY,qBAAA;oBAExDjC,QAAAA,CAASwC,WAAAA,CAAAA;AAETvC,oBAAAA,QAAAA,EAAAA;AAEA,oBAAA;AACF,gBAAA;AAEA,gBAAA,IAAI+C,iBAAAA,EAAmB;oBACrB,MAAMR,WAAAA,GAAcG,mBAAmBM,KAAK,EAAA;oBAC5CT,WAAAA,CAAYU,MAAM,CAACJ,mBAAAA,EAAqB,CAAA,EAAGb,WAAAA,CAAAA;oBAC3CjC,QAAAA,CAASwC,WAAAA,CAAAA;AAETvC,oBAAAA,QAAAA,EAAAA;AACF,gBAAA;AAEA,gBAAA;AACF,YAAA;AAEA,YAAA,MAAMwC,SAAAA,GACJ1C,OAAAA,CAAQc,IAAI,CAAC,CAACJ,MAAAA,GAAAA;gBACZ,MAAM0C,gBAAAA,GAAmB/C,aAAaI,IAAI;gBAE1C,OACEC,MAAM,CAAC0C,gBAAAA,CAAuD,IAC9D1C,MAAM,CAAC0C,gBAAAA,CAAuD,GAC5DA,gBAAAA,CACD,KAAKzC,KAAAA;YAEV,CAAA,CAAA,KAAO6B,SAAAA;AAET,YAAA,IAAI,CAACE,SAAAA,EAAW;AACd,gBAAA,MAAMR,WAAAA,GAAc;oBAAE,CAAC7B,YAAAA,CAAaI,IAAI,GAAG;wBAAE,CAACJ,YAAAA,CAAaK,MAAM,GAAGC;AAAM;AAAE,iBAAA;AAE5E,gBAAA,MAAM8B,WAAAA,GAAc;AAAIzC,oBAAAA,GAAAA,OAAAA;AAASkC,oBAAAA;AAAY,iBAAA;gBAE7CjC,QAAAA,CAASwC,WAAAA,CAAAA;AACX,YAAA;AACF,QAAA;AAEAvC,QAAAA,QAAAA,EAAAA;AACF,IAAA,CAAA;IAEA,MAAMmD,aAAAA,GAAgBtD,gBAAAA,CAAiBe,IAAI,CAAC,CAACJ,SAAWA,MAAAA,CAAOD,IAAI,KAAKJ,YAAAA,CAAaI,IAAI,CAAA;IAEzF,qBACE6C,cAAA,CAACC,qBAAQC,OAAO,EAAA;QAACC,UAAAA,EAAY,CAAA;QAAGC,KAAAA,EAAO;YAAEC,MAAAA,EAAQ;AAAI,SAAA;AACnD,QAAA,QAAA,gBAAAL,cAAA,CAACM,MAAAA,EAAAA;YAAK3D,QAAAA,EAAUwB,YAAAA;AACd,YAAA,QAAA,gBAAAoC,eAAA,CAACC,iBAAAA,EAAAA;gBAAKC,OAAAA,EAAS,CAAA;gBAAGC,SAAAA,EAAU,QAAA;gBAASC,UAAAA,EAAW,SAAA;gBAAUC,GAAAA,EAAK,CAAA;gBAAGR,KAAAA,EAAO;oBAAES,QAAAA,EAAU;AAAI,iBAAA;;kCACvFb,cAAA,CAACc,gBAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAd,cAAA,CAACe,yBAAAA,EAAAA;AACCC,4BAAAA,YAAAA,EAAYnE,aAAAA,CAAc;gCACxBoE,EAAAA,EAAI,wBAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA,CAAA;4BACA/D,IAAAA,EAAK,MAAA;4BACLgE,IAAAA,EAAK,GAAA;4BACLC,QAAAA,EAAU9D,uBAAAA;AACVD,4BAAAA,KAAAA,EAAON,aAAaI,IAAI;sCAEvBV,gBAAAA,CAAiB4E,GAAG,CAAC,CAACjE,MAAAA,GAAAA;AACrB,gCAAA,qBACE4C,cAAA,CAACsB,+BAAAA,EAAAA;AAAqCjE,oCAAAA,KAAAA,EAAOD,OAAOD,IAAI;AACrDC,oCAAAA,QAAAA,EAAAA,MAAAA,CAAOmE,SAAS,EAAEC;AADIpE,iCAAAA,EAAAA,MAAAA,CAAOD,IAAI,CAAA;AAIxC,4BAAA,CAAA;;;kCAGJ6C,cAAA,CAACc,gBAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAd,cAAA,CAACe,yBAAAA,EAAAA;AACCC,4BAAAA,YAAAA,EAAYnE,aAAAA,CAAc;gCACxBoE,EAAAA,EAAI,yBAAA;gCACJC,cAAAA,EAAgB;AAClB,6BAAA,CAAA;4BACA/D,IAAAA,EAAK,QAAA;4BACLgE,IAAAA,EAAK,GAAA;AACL9D,4BAAAA,KAAAA,EAAON,aAAaK,MAAM;4BAC1BgE,QAAAA,EAAUpD,oBAAAA;sCAETF,2BAAAA,CAAciC,aAAAA,CAAAA,CAAgBsB,GAAG,CAAC,CAACI,MAAAA,GAAAA;AAClC,gCAAA,qBACEzB,cAAA,CAACsB,+BAAAA,EAAAA;AAAsCjE,oCAAAA,KAAAA,EAAOoE,OAAOpE,KAAK;AACvDR,oCAAAA,QAAAA,EAAAA,aAAAA,CAAc4E,OAAOC,SAAS;AADRD,iCAAAA,EAAAA,MAAAA,CAAOpE,KAAK,CAAA;AAIzC,4BAAA,CAAA;;;kCAGJ2C,cAAA,CAACc,gBAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAd,cAAA,CAAC2B,iCAAAA,EAAAA;AACE,4BAAA,GAAG5B,eAAewB,SAAS;AAC3B,4BAAA,GAAGxB,eAAerC,WAAW;AAC9BL,4BAAAA,KAAAA,EAAON,aAAaM,KAAK;AACzB+D,4BAAAA,QAAAA,EAAU,CAAC/D,KAAAA,GAAUL,eAAAA,CAAgB,CAACkB,QAAU;AAAE,wCAAA,GAAGA,IAAI;AAAEb,wCAAAA;qCAAM,CAAA;;;kCAGrE2C,cAAA,CAACc,gBAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAd,cAAA,CAAC4B,mBAAAA,EAAAA;4BAAOT,IAAAA,EAAK,GAAA;4BAAIU,OAAAA,EAAQ,WAAA;AAAYC,4BAAAA,SAAAA,gBAAW9B,cAAA,CAAC+B,UAAAA,EAAAA,EAAAA,CAAAA;4BAASpE,IAAAA,EAAK,QAAA;4BAASqE,SAAS,EAAA,IAAA;sCAC9EnF,aAAAA,CAAc;gCAAEoE,EAAAA,EAAI,sBAAA;gCAAwBC,cAAAA,EAAgB;AAAa,6BAAA;;;;;;;AAOxF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"FilterPopover.mjs","sources":["../../../../../admin/src/legacy/components/FilterPopover/FilterPopover.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\n/**\n *\n * FilterPopover\n *\n */\nimport * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n SingleSelectOption,\n Popover,\n SingleSelect,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterValueInput } from './FilterValueInput';\nimport { getFilterList } from './utils/getFilterList';\n\ntype 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 FilterPopoverProps {\n displayedFilters: {\n name: string;\n metadatas?: {\n label?: string;\n };\n fieldSchema: {\n type: string;\n options?: {\n value: string;\n }[];\n mainField?: {\n schema: {\n type: string;\n };\n };\n };\n }[];\n filters: Filter[];\n onSubmit: (filters: Filter[]) => void;\n onToggle: () => void;\n}\n\nexport const FilterPopover = ({\n displayedFilters,\n filters,\n onSubmit,\n onToggle,\n}: FilterPopoverProps) => {\n const { formatMessage } = useIntl();\n\n const [modifiedData, setModifiedData] = React.useState({\n name: 'createdAt',\n filter: '$eq',\n value: '',\n });\n\n const handleChangeFilterField = (value: string | number) => {\n const nextField = displayedFilters.find((f) => f.name === value);\n if (!nextField) {\n return;\n }\n const {\n fieldSchema: { type, options },\n } = nextField;\n let filterValue = '';\n\n if (type === 'enumeration') {\n filterValue = options?.[0].value || '';\n }\n\n const filter = getFilterList(nextField)[0].value;\n\n setModifiedData({ name: value.toString(), filter, value: filterValue });\n };\n\n const handleChangeOperator = (operator: string | number) => {\n if (modifiedData.name === 'mime') {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: 'image' }));\n } else {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: '' }));\n }\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n const { value } = modifiedData;\n\n if (value) {\n if (modifiedData.name === 'mime') {\n const alreadyAppliedFilters = filters.filter((filter) => {\n return Object.keys(filter)[0] === 'mime';\n });\n\n if (modifiedData.value === 'file') {\n const filtersWithoutMimeType = filters.filter((filter) => {\n return Object.keys(filter)[0] !== 'mime';\n });\n\n let hasCurrentFilter = false;\n\n let filterToAdd: Filter;\n\n if (modifiedData.filter === '$contains') {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n if (typeof filter.mime?.$not !== 'string' && !Array.isArray(filter.mime?.$not)) {\n return filter.mime?.$not?.$contains !== undefined;\n }\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $not: {\n $contains: ['image', 'video'],\n },\n },\n };\n } else {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n return Array.isArray(filter.mime?.$contains);\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $contains: ['image', 'video'],\n },\n };\n }\n\n if (hasCurrentFilter) {\n onToggle();\n\n return;\n }\n\n const nextFilters = [...filtersWithoutMimeType, filterToAdd];\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n const hasFilter =\n alreadyAppliedFilters.find((filter) => {\n const modifiedDataFilter = modifiedData.filter;\n return (\n filter.mime &&\n filter.mime[modifiedDataFilter as keyof typeof filter.mime] === modifiedData.value\n );\n }) !== undefined;\n\n // Don't apply the same filter twice\n if (hasFilter) {\n onToggle();\n\n return;\n }\n\n const filtersWithoutFile = filters.filter((filter) => {\n const filterType = Object.keys(filter)[0];\n\n if (filterType !== 'mime') {\n return true;\n }\n\n if (\n typeof filter.mime?.$not !== 'string' &&\n !Array.isArray(filter.mime?.$not) &&\n filter.mime?.$not?.$contains !== undefined\n ) {\n return false;\n }\n\n if (Array.isArray(filter?.mime?.$contains)) {\n return false;\n }\n\n return true;\n });\n\n const oppositeFilter = modifiedData.filter === '$contains' ? '$notContains' : '$contains';\n\n const oppositeFilterIndex = filtersWithoutFile.findIndex((filter) => {\n return filter.mime?.[oppositeFilter] === modifiedData.value;\n });\n const hasOppositeFilter = oppositeFilterIndex !== -1;\n\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: modifiedData.value } };\n\n if (!hasOppositeFilter) {\n const nextFilters = [...filtersWithoutFile, filterToAdd];\n\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n if (hasOppositeFilter) {\n const nextFilters = filtersWithoutFile.slice();\n nextFilters.splice(oppositeFilterIndex, 1, filterToAdd);\n onSubmit(nextFilters);\n\n onToggle();\n }\n\n return;\n }\n\n const hasFilter =\n filters.find((filter) => {\n const modifiedDataName = modifiedData.name as\n | 'mime'\n | 'createdAt'\n | 'updatedAt'\n | '$contains'\n | '$notContains'\n | '$eq'\n | '$not';\n return (\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt'] &&\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt']?.[\n modifiedDataName as '$contains' | '$notContains' | '$eq' | '$not'\n ] === value\n );\n }) !== undefined;\n\n if (!hasFilter) {\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: value } };\n\n const nextFilters = [...filters, filterToAdd];\n\n onSubmit(nextFilters);\n }\n }\n\n onToggle();\n };\n\n const appliedFilter = displayedFilters.find((filter) => filter.name === modifiedData.name);\n\n return (\n <Popover.Content sideOffset={4} style={{ zIndex: 499 }}>\n <form onSubmit={handleSubmit}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1} style={{ minWidth: 184 }}>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-field',\n defaultMessage: 'Select field',\n })}\n name=\"name\"\n size=\"M\"\n onChange={handleChangeFilterField}\n value={modifiedData.name}\n >\n {displayedFilters.map((filter) => {\n return (\n <SingleSelectOption key={filter.name} value={filter.name}>\n {filter.metadatas?.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-filter',\n defaultMessage: 'Select filter',\n })}\n name=\"filter\"\n size=\"M\"\n value={modifiedData.filter}\n onChange={handleChangeOperator}\n >\n {getFilterList(appliedFilter!).map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {formatMessage(option.intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <FilterValueInput\n {...appliedFilter?.metadatas}\n {...appliedFilter?.fieldSchema}\n value={modifiedData.value}\n onChange={(value) => setModifiedData((prev) => ({ ...prev, value }))}\n />\n </Box>\n <Box>\n <Button size=\"L\" variant=\"secondary\" startIcon={<Plus />} type=\"submit\" fullWidth>\n {formatMessage({ id: 'app.utils.add-filter', defaultMessage: 'Add filter' })}\n </Button>\n </Box>\n </Flex>\n </form>\n </Popover.Content>\n );\n};\n"],"names":["FilterPopover","displayedFilters","filters","onSubmit","onToggle","formatMessage","useIntl","modifiedData","setModifiedData","React","useState","name","filter","value","handleChangeFilterField","nextField","find","f","fieldSchema","type","options","filterValue","getFilterList","toString","handleChangeOperator","operator","prev","handleSubmit","e","preventDefault","stopPropagation","alreadyAppliedFilters","Object","keys","filtersWithoutMimeType","hasCurrentFilter","filterToAdd","mime","$not","Array","isArray","$contains","undefined","nextFilters","hasFilter","modifiedDataFilter","filtersWithoutFile","filterType","oppositeFilter","oppositeFilterIndex","findIndex","hasOppositeFilter","slice","splice","modifiedDataName","appliedFilter","_jsx","Popover","Content","sideOffset","style","zIndex","form","_jsxs","Flex","padding","direction","alignItems","gap","minWidth","Box","SingleSelect","aria-label","id","defaultMessage","size","onChange","map","SingleSelectOption","metadatas","label","option","intlLabel","FilterValueInput","Button","variant","startIcon","Plus","fullWidth"],"mappings":"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"}
1
+ {"version":3,"file":"FilterPopover.mjs","sources":["../../../../../admin/src/legacy/components/FilterPopover/FilterPopover.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\n/**\n *\n * FilterPopover\n *\n */\nimport * as React from 'react';\n\nimport {\n Box,\n Button,\n Flex,\n SingleSelectOption,\n Popover,\n SingleSelect,\n} from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { FilterValueInput } from './FilterValueInput';\nimport { getFilterList } from './utils/getFilterList';\n\ntype Filter = {\n [key in 'mime' | 'createdAt' | 'updatedAt']?:\n | {\n [key in '$contains' | '$notContains' | '$eq' | '$not']?:\n string[] | string | { $contains: string[] };\n }\n | undefined;\n};\n\nexport interface FilterPopoverProps {\n displayedFilters: {\n name: string;\n metadatas?: {\n label?: string;\n };\n fieldSchema: {\n type: string;\n options?: {\n value: string;\n }[];\n mainField?: {\n schema: {\n type: string;\n };\n };\n };\n }[];\n filters: Filter[];\n onSubmit: (filters: Filter[]) => void;\n onToggle: () => void;\n}\n\nexport const FilterPopover = ({\n displayedFilters,\n filters,\n onSubmit,\n onToggle,\n}: FilterPopoverProps) => {\n const { formatMessage } = useIntl();\n\n const [modifiedData, setModifiedData] = React.useState({\n name: 'createdAt',\n filter: '$eq',\n value: '',\n });\n\n const handleChangeFilterField = (value: string | number) => {\n const nextField = displayedFilters.find((f) => f.name === value);\n if (!nextField) {\n return;\n }\n const {\n fieldSchema: { type, options },\n } = nextField;\n let filterValue = '';\n\n if (type === 'enumeration') {\n filterValue = options?.[0].value || '';\n }\n\n const filter = getFilterList(nextField)[0].value;\n\n setModifiedData({ name: value.toString(), filter, value: filterValue });\n };\n\n const handleChangeOperator = (operator: string | number) => {\n if (modifiedData.name === 'mime') {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: 'image' }));\n } else {\n setModifiedData((prev) => ({ ...prev, filter: operator.toString(), value: '' }));\n }\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n e.stopPropagation();\n\n const { value } = modifiedData;\n\n if (value) {\n if (modifiedData.name === 'mime') {\n const alreadyAppliedFilters = filters.filter((filter) => {\n return Object.keys(filter)[0] === 'mime';\n });\n\n if (modifiedData.value === 'file') {\n const filtersWithoutMimeType = filters.filter((filter) => {\n return Object.keys(filter)[0] !== 'mime';\n });\n\n let hasCurrentFilter = false;\n\n let filterToAdd: Filter;\n\n if (modifiedData.filter === '$contains') {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n if (typeof filter.mime?.$not !== 'string' && !Array.isArray(filter.mime?.$not)) {\n return filter.mime?.$not?.$contains !== undefined;\n }\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $not: {\n $contains: ['image', 'video'],\n },\n },\n };\n } else {\n hasCurrentFilter =\n alreadyAppliedFilters.find((filter) => {\n return Array.isArray(filter.mime?.$contains);\n }) !== undefined;\n\n filterToAdd = {\n mime: {\n $contains: ['image', 'video'],\n },\n };\n }\n\n if (hasCurrentFilter) {\n onToggle();\n\n return;\n }\n\n const nextFilters = [...filtersWithoutMimeType, filterToAdd];\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n const hasFilter =\n alreadyAppliedFilters.find((filter) => {\n const modifiedDataFilter = modifiedData.filter;\n return (\n filter.mime &&\n filter.mime[modifiedDataFilter as keyof typeof filter.mime] === modifiedData.value\n );\n }) !== undefined;\n\n // Don't apply the same filter twice\n if (hasFilter) {\n onToggle();\n\n return;\n }\n\n const filtersWithoutFile = filters.filter((filter) => {\n const filterType = Object.keys(filter)[0];\n\n if (filterType !== 'mime') {\n return true;\n }\n\n if (\n typeof filter.mime?.$not !== 'string' &&\n !Array.isArray(filter.mime?.$not) &&\n filter.mime?.$not?.$contains !== undefined\n ) {\n return false;\n }\n\n if (Array.isArray(filter?.mime?.$contains)) {\n return false;\n }\n\n return true;\n });\n\n const oppositeFilter = modifiedData.filter === '$contains' ? '$notContains' : '$contains';\n\n const oppositeFilterIndex = filtersWithoutFile.findIndex((filter) => {\n return filter.mime?.[oppositeFilter] === modifiedData.value;\n });\n const hasOppositeFilter = oppositeFilterIndex !== -1;\n\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: modifiedData.value } };\n\n if (!hasOppositeFilter) {\n const nextFilters = [...filtersWithoutFile, filterToAdd];\n\n onSubmit(nextFilters);\n\n onToggle();\n\n return;\n }\n\n if (hasOppositeFilter) {\n const nextFilters = filtersWithoutFile.slice();\n nextFilters.splice(oppositeFilterIndex, 1, filterToAdd);\n onSubmit(nextFilters);\n\n onToggle();\n }\n\n return;\n }\n\n const hasFilter =\n filters.find((filter) => {\n const modifiedDataName = modifiedData.name as\n 'mime' | 'createdAt' | 'updatedAt' | '$contains' | '$notContains' | '$eq' | '$not';\n return (\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt'] &&\n filter[modifiedDataName as 'mime' | 'createdAt' | 'updatedAt']?.[\n modifiedDataName as '$contains' | '$notContains' | '$eq' | '$not'\n ] === value\n );\n }) !== undefined;\n\n if (!hasFilter) {\n const filterToAdd = { [modifiedData.name]: { [modifiedData.filter]: value } };\n\n const nextFilters = [...filters, filterToAdd];\n\n onSubmit(nextFilters);\n }\n }\n\n onToggle();\n };\n\n const appliedFilter = displayedFilters.find((filter) => filter.name === modifiedData.name);\n\n return (\n <Popover.Content sideOffset={4} style={{ zIndex: 499 }}>\n <form onSubmit={handleSubmit}>\n <Flex padding={3} direction=\"column\" alignItems=\"stretch\" gap={1} style={{ minWidth: 184 }}>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-field',\n defaultMessage: 'Select field',\n })}\n name=\"name\"\n size=\"M\"\n onChange={handleChangeFilterField}\n value={modifiedData.name}\n >\n {displayedFilters.map((filter) => {\n return (\n <SingleSelectOption key={filter.name} value={filter.name}>\n {filter.metadatas?.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <SingleSelect\n aria-label={formatMessage({\n id: 'app.utils.select-filter',\n defaultMessage: 'Select filter',\n })}\n name=\"filter\"\n size=\"M\"\n value={modifiedData.filter}\n onChange={handleChangeOperator}\n >\n {getFilterList(appliedFilter!).map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {formatMessage(option.intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n </Box>\n <Box>\n <FilterValueInput\n {...appliedFilter?.metadatas}\n {...appliedFilter?.fieldSchema}\n value={modifiedData.value}\n onChange={(value) => setModifiedData((prev) => ({ ...prev, value }))}\n />\n </Box>\n <Box>\n <Button size=\"L\" variant=\"secondary\" startIcon={<Plus />} type=\"submit\" fullWidth>\n {formatMessage({ id: 'app.utils.add-filter', defaultMessage: 'Add filter' })}\n </Button>\n </Box>\n </Flex>\n </form>\n </Popover.Content>\n );\n};\n"],"names":["FilterPopover","displayedFilters","filters","onSubmit","onToggle","formatMessage","useIntl","modifiedData","setModifiedData","React","useState","name","filter","value","handleChangeFilterField","nextField","find","f","fieldSchema","type","options","filterValue","getFilterList","toString","handleChangeOperator","operator","prev","handleSubmit","e","preventDefault","stopPropagation","alreadyAppliedFilters","Object","keys","filtersWithoutMimeType","hasCurrentFilter","filterToAdd","mime","$not","Array","isArray","$contains","undefined","nextFilters","hasFilter","modifiedDataFilter","filtersWithoutFile","filterType","oppositeFilter","oppositeFilterIndex","findIndex","hasOppositeFilter","slice","splice","modifiedDataName","appliedFilter","_jsx","Popover","Content","sideOffset","style","zIndex","form","_jsxs","Flex","padding","direction","alignItems","gap","minWidth","Box","SingleSelect","aria-label","id","defaultMessage","size","onChange","map","SingleSelectOption","metadatas","label","option","intlLabel","FilterValueInput","Button","variant","startIcon","Plus","fullWidth"],"mappings":"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"}
@@ -4,7 +4,8 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var designSystem = require('@strapi/design-system');
5
5
  var reactIntl = require('react-intl');
6
6
 
7
- const FilterValueInput = ({ label = '', onChange, options = [], type, value = '' })=>{
7
+ const EMPTY_OPTIONS = [];
8
+ const FilterValueInput = ({ label = '', onChange, options = EMPTY_OPTIONS, type, value = '' })=>{
8
9
  const { formatMessage } = reactIntl.useIntl();
9
10
  if (type === 'date') {
10
11
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.DateTimePicker, {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterValueInput.js","sources":["../../../../../admin/src/legacy/components/FilterPopover/FilterValueInput.tsx"],"sourcesContent":["import { DateTimePicker, SingleSelectOption, SingleSelect } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\ninterface FilterValueInputProps {\n label?: string;\n onChange: (value: string) => void;\n options?: { label?: string; value: string }[];\n type?: string;\n value?: string;\n}\n\nexport const FilterValueInput = ({\n label = '',\n onChange,\n options = [],\n type,\n value = '',\n}: FilterValueInputProps) => {\n const { formatMessage } = useIntl();\n\n if (type === 'date') {\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n aria-label={label}\n name=\"datetimepicker\"\n onChange={(date) => {\n const formattedDate = date ? new Date(date).toISOString() : '';\n\n onChange(formattedDate);\n }}\n onClear={() => onChange('')}\n value={value ? new Date(value) : undefined}\n />\n );\n }\n\n return (\n <SingleSelect\n aria-label={label}\n onChange={(value: string | number) => onChange(value.toString())}\n value={value}\n >\n {options?.map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {option.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n"],"names":["FilterValueInput","label","onChange","options","type","value","formatMessage","useIntl","_jsx","DateTimePicker","clearLabel","id","defaultMessage","aria-label","name","date","formattedDate","Date","toISOString","onClear","undefined","SingleSelect","toString","map","option","SingleSelectOption"],"mappings":";;;;;;MAWaA,gBAAAA,GAAmB,CAAC,EAC/BC,KAAAA,GAAQ,EAAE,EACVC,QAAQ,EACRC,OAAAA,GAAU,EAAE,EACZC,IAAI,EACJC,KAAAA,GAAQ,EAAE,EACY,GAAA;IACtB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IAAIH,SAAS,MAAA,EAAQ;AACnB,QAAA,qBACEI,cAAA,CAACC,2BAAAA,EAAAA;AACCC,YAAAA,UAAAA,EAAYJ,aAAAA,CAAc;gBAAEK,EAAAA,EAAI,YAAA;gBAAcC,cAAAA,EAAgB;AAAQ,aAAA,CAAA;YACtEC,YAAAA,EAAYZ,KAAAA;YACZa,IAAAA,EAAK,gBAAA;AACLZ,YAAAA,QAAAA,EAAU,CAACa,IAAAA,GAAAA;AACT,gBAAA,MAAMC,gBAAgBD,IAAAA,GAAO,IAAIE,IAAAA,CAAKF,IAAAA,CAAAA,CAAMG,WAAW,EAAA,GAAK,EAAA;gBAE5DhB,QAAAA,CAASc,aAAAA,CAAAA;AACX,YAAA,CAAA;AACAG,YAAAA,OAAAA,EAAS,IAAMjB,QAAAA,CAAS,EAAA,CAAA;YACxBG,KAAAA,EAAOA,KAAAA,GAAQ,IAAIY,IAAAA,CAAKZ,KAAAA,CAAAA,GAASe;;AAGvC,IAAA;AAEA,IAAA,qBACEZ,cAAA,CAACa,yBAAAA,EAAAA;QACCR,YAAAA,EAAYZ,KAAAA;AACZC,QAAAA,QAAAA,EAAU,CAACG,KAAAA,GAA2BH,QAAAA,CAASG,KAAAA,CAAMiB,QAAQ,EAAA,CAAA;QAC7DjB,KAAAA,EAAOA,KAAAA;AAENF,QAAAA,QAAAA,EAAAA,OAAAA,EAASoB,IAAI,CAACC,MAAAA,GAAAA;AACb,YAAA,qBACEhB,cAAA,CAACiB,+BAAAA,EAAAA;AAAsCpB,gBAAAA,KAAAA,EAAOmB,OAAOnB,KAAK;AACvDmB,gBAAAA,QAAAA,EAAAA,MAAAA,CAAOvB;AADeuB,aAAAA,EAAAA,MAAAA,CAAOnB,KAAK,CAAA;AAIzC,QAAA,CAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"FilterValueInput.js","sources":["../../../../../admin/src/legacy/components/FilterPopover/FilterValueInput.tsx"],"sourcesContent":["import { DateTimePicker, SingleSelectOption, SingleSelect } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nconst EMPTY_OPTIONS: NonNullable<FilterValueInputProps['options']> = [];\n\ninterface FilterValueInputProps {\n label?: string;\n onChange: (value: string) => void;\n options?: { label?: string; value: string }[];\n type?: string;\n value?: string;\n}\n\nexport const FilterValueInput = ({\n label = '',\n onChange,\n options = EMPTY_OPTIONS,\n type,\n value = '',\n}: FilterValueInputProps) => {\n const { formatMessage } = useIntl();\n\n if (type === 'date') {\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n aria-label={label}\n name=\"datetimepicker\"\n onChange={(date) => {\n const formattedDate = date ? new Date(date).toISOString() : '';\n\n onChange(formattedDate);\n }}\n onClear={() => onChange('')}\n value={value ? new Date(value) : undefined}\n />\n );\n }\n\n return (\n <SingleSelect\n aria-label={label}\n onChange={(value: string | number) => onChange(value.toString())}\n value={value}\n >\n {options?.map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {option.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n"],"names":["EMPTY_OPTIONS","FilterValueInput","label","onChange","options","type","value","formatMessage","useIntl","_jsx","DateTimePicker","clearLabel","id","defaultMessage","aria-label","name","date","formattedDate","Date","toISOString","onClear","undefined","SingleSelect","toString","map","option","SingleSelectOption"],"mappings":";;;;;;AAGA,MAAMA,gBAA+D,EAAE;MAU1DC,gBAAAA,GAAmB,CAAC,EAC/BC,KAAAA,GAAQ,EAAE,EACVC,QAAQ,EACRC,OAAAA,GAAUJ,aAAa,EACvBK,IAAI,EACJC,KAAAA,GAAQ,EAAE,EACY,GAAA;IACtB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAE1B,IAAA,IAAIH,SAAS,MAAA,EAAQ;AACnB,QAAA,qBACEI,cAAA,CAACC,2BAAAA,EAAAA;AACCC,YAAAA,UAAAA,EAAYJ,aAAAA,CAAc;gBAAEK,EAAAA,EAAI,YAAA;gBAAcC,cAAAA,EAAgB;AAAQ,aAAA,CAAA;YACtEC,YAAAA,EAAYZ,KAAAA;YACZa,IAAAA,EAAK,gBAAA;AACLZ,YAAAA,QAAAA,EAAU,CAACa,IAAAA,GAAAA;AACT,gBAAA,MAAMC,gBAAgBD,IAAAA,GAAO,IAAIE,IAAAA,CAAKF,IAAAA,CAAAA,CAAMG,WAAW,EAAA,GAAK,EAAA;gBAE5DhB,QAAAA,CAASc,aAAAA,CAAAA;AACX,YAAA,CAAA;AACAG,YAAAA,OAAAA,EAAS,IAAMjB,QAAAA,CAAS,EAAA,CAAA;YACxBG,KAAAA,EAAOA,KAAAA,GAAQ,IAAIY,IAAAA,CAAKZ,KAAAA,CAAAA,GAASe;;AAGvC,IAAA;AAEA,IAAA,qBACEZ,cAAA,CAACa,yBAAAA,EAAAA;QACCR,YAAAA,EAAYZ,KAAAA;AACZC,QAAAA,QAAAA,EAAU,CAACG,KAAAA,GAA2BH,QAAAA,CAASG,KAAAA,CAAMiB,QAAQ,EAAA,CAAA;QAC7DjB,KAAAA,EAAOA,KAAAA;AAENF,QAAAA,QAAAA,EAAAA,OAAAA,EAASoB,IAAI,CAACC,MAAAA,GAAAA;AACb,YAAA,qBACEhB,cAAA,CAACiB,+BAAAA,EAAAA;AAAsCpB,gBAAAA,KAAAA,EAAOmB,OAAOnB,KAAK;AACvDmB,gBAAAA,QAAAA,EAAAA,MAAAA,CAAOvB;AADeuB,aAAAA,EAAAA,MAAAA,CAAOnB,KAAK,CAAA;AAIzC,QAAA,CAAA;;AAGN;;;;"}
@@ -2,7 +2,8 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { DateTimePicker, SingleSelect, SingleSelectOption } from '@strapi/design-system';
3
3
  import { useIntl } from 'react-intl';
4
4
 
5
- const FilterValueInput = ({ label = '', onChange, options = [], type, value = '' })=>{
5
+ const EMPTY_OPTIONS = [];
6
+ const FilterValueInput = ({ label = '', onChange, options = EMPTY_OPTIONS, type, value = '' })=>{
6
7
  const { formatMessage } = useIntl();
7
8
  if (type === 'date') {
8
9
  return /*#__PURE__*/ jsx(DateTimePicker, {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterValueInput.mjs","sources":["../../../../../admin/src/legacy/components/FilterPopover/FilterValueInput.tsx"],"sourcesContent":["import { DateTimePicker, SingleSelectOption, SingleSelect } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\ninterface FilterValueInputProps {\n label?: string;\n onChange: (value: string) => void;\n options?: { label?: string; value: string }[];\n type?: string;\n value?: string;\n}\n\nexport const FilterValueInput = ({\n label = '',\n onChange,\n options = [],\n type,\n value = '',\n}: FilterValueInputProps) => {\n const { formatMessage } = useIntl();\n\n if (type === 'date') {\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n aria-label={label}\n name=\"datetimepicker\"\n onChange={(date) => {\n const formattedDate = date ? new Date(date).toISOString() : '';\n\n onChange(formattedDate);\n }}\n onClear={() => onChange('')}\n value={value ? new Date(value) : undefined}\n />\n );\n }\n\n return (\n <SingleSelect\n aria-label={label}\n onChange={(value: string | number) => onChange(value.toString())}\n value={value}\n >\n {options?.map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {option.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n"],"names":["FilterValueInput","label","onChange","options","type","value","formatMessage","useIntl","_jsx","DateTimePicker","clearLabel","id","defaultMessage","aria-label","name","date","formattedDate","Date","toISOString","onClear","undefined","SingleSelect","toString","map","option","SingleSelectOption"],"mappings":";;;;MAWaA,gBAAAA,GAAmB,CAAC,EAC/BC,KAAAA,GAAQ,EAAE,EACVC,QAAQ,EACRC,OAAAA,GAAU,EAAE,EACZC,IAAI,EACJC,KAAAA,GAAQ,EAAE,EACY,GAAA;IACtB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,IAAIH,SAAS,MAAA,EAAQ;AACnB,QAAA,qBACEI,GAAA,CAACC,cAAAA,EAAAA;AACCC,YAAAA,UAAAA,EAAYJ,aAAAA,CAAc;gBAAEK,EAAAA,EAAI,YAAA;gBAAcC,cAAAA,EAAgB;AAAQ,aAAA,CAAA;YACtEC,YAAAA,EAAYZ,KAAAA;YACZa,IAAAA,EAAK,gBAAA;AACLZ,YAAAA,QAAAA,EAAU,CAACa,IAAAA,GAAAA;AACT,gBAAA,MAAMC,gBAAgBD,IAAAA,GAAO,IAAIE,IAAAA,CAAKF,IAAAA,CAAAA,CAAMG,WAAW,EAAA,GAAK,EAAA;gBAE5DhB,QAAAA,CAASc,aAAAA,CAAAA;AACX,YAAA,CAAA;AACAG,YAAAA,OAAAA,EAAS,IAAMjB,QAAAA,CAAS,EAAA,CAAA;YACxBG,KAAAA,EAAOA,KAAAA,GAAQ,IAAIY,IAAAA,CAAKZ,KAAAA,CAAAA,GAASe;;AAGvC,IAAA;AAEA,IAAA,qBACEZ,GAAA,CAACa,YAAAA,EAAAA;QACCR,YAAAA,EAAYZ,KAAAA;AACZC,QAAAA,QAAAA,EAAU,CAACG,KAAAA,GAA2BH,QAAAA,CAASG,KAAAA,CAAMiB,QAAQ,EAAA,CAAA;QAC7DjB,KAAAA,EAAOA,KAAAA;AAENF,QAAAA,QAAAA,EAAAA,OAAAA,EAASoB,IAAI,CAACC,MAAAA,GAAAA;AACb,YAAA,qBACEhB,GAAA,CAACiB,kBAAAA,EAAAA;AAAsCpB,gBAAAA,KAAAA,EAAOmB,OAAOnB,KAAK;AACvDmB,gBAAAA,QAAAA,EAAAA,MAAAA,CAAOvB;AADeuB,aAAAA,EAAAA,MAAAA,CAAOnB,KAAK,CAAA;AAIzC,QAAA,CAAA;;AAGN;;;;"}
1
+ {"version":3,"file":"FilterValueInput.mjs","sources":["../../../../../admin/src/legacy/components/FilterPopover/FilterValueInput.tsx"],"sourcesContent":["import { DateTimePicker, SingleSelectOption, SingleSelect } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nconst EMPTY_OPTIONS: NonNullable<FilterValueInputProps['options']> = [];\n\ninterface FilterValueInputProps {\n label?: string;\n onChange: (value: string) => void;\n options?: { label?: string; value: string }[];\n type?: string;\n value?: string;\n}\n\nexport const FilterValueInput = ({\n label = '',\n onChange,\n options = EMPTY_OPTIONS,\n type,\n value = '',\n}: FilterValueInputProps) => {\n const { formatMessage } = useIntl();\n\n if (type === 'date') {\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n aria-label={label}\n name=\"datetimepicker\"\n onChange={(date) => {\n const formattedDate = date ? new Date(date).toISOString() : '';\n\n onChange(formattedDate);\n }}\n onClear={() => onChange('')}\n value={value ? new Date(value) : undefined}\n />\n );\n }\n\n return (\n <SingleSelect\n aria-label={label}\n onChange={(value: string | number) => onChange(value.toString())}\n value={value}\n >\n {options?.map((option) => {\n return (\n <SingleSelectOption key={option.value} value={option.value}>\n {option.label}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n};\n"],"names":["EMPTY_OPTIONS","FilterValueInput","label","onChange","options","type","value","formatMessage","useIntl","_jsx","DateTimePicker","clearLabel","id","defaultMessage","aria-label","name","date","formattedDate","Date","toISOString","onClear","undefined","SingleSelect","toString","map","option","SingleSelectOption"],"mappings":";;;;AAGA,MAAMA,gBAA+D,EAAE;MAU1DC,gBAAAA,GAAmB,CAAC,EAC/BC,KAAAA,GAAQ,EAAE,EACVC,QAAQ,EACRC,OAAAA,GAAUJ,aAAa,EACvBK,IAAI,EACJC,KAAAA,GAAQ,EAAE,EACY,GAAA;IACtB,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAE1B,IAAA,IAAIH,SAAS,MAAA,EAAQ;AACnB,QAAA,qBACEI,GAAA,CAACC,cAAAA,EAAAA;AACCC,YAAAA,UAAAA,EAAYJ,aAAAA,CAAc;gBAAEK,EAAAA,EAAI,YAAA;gBAAcC,cAAAA,EAAgB;AAAQ,aAAA,CAAA;YACtEC,YAAAA,EAAYZ,KAAAA;YACZa,IAAAA,EAAK,gBAAA;AACLZ,YAAAA,QAAAA,EAAU,CAACa,IAAAA,GAAAA;AACT,gBAAA,MAAMC,gBAAgBD,IAAAA,GAAO,IAAIE,IAAAA,CAAKF,IAAAA,CAAAA,CAAMG,WAAW,EAAA,GAAK,EAAA;gBAE5DhB,QAAAA,CAASc,aAAAA,CAAAA;AACX,YAAA,CAAA;AACAG,YAAAA,OAAAA,EAAS,IAAMjB,QAAAA,CAAS,EAAA,CAAA;YACxBG,KAAAA,EAAOA,KAAAA,GAAQ,IAAIY,IAAAA,CAAKZ,KAAAA,CAAAA,GAASe;;AAGvC,IAAA;AAEA,IAAA,qBACEZ,GAAA,CAACa,YAAAA,EAAAA;QACCR,YAAAA,EAAYZ,KAAAA;AACZC,QAAAA,QAAAA,EAAU,CAACG,KAAAA,GAA2BH,QAAAA,CAASG,KAAAA,CAAMiB,QAAQ,EAAA,CAAA;QAC7DjB,KAAAA,EAAOA,KAAAA;AAENF,QAAAA,QAAAA,EAAAA,OAAAA,EAASoB,IAAI,CAACC,MAAAA,GAAAA;AACb,YAAA,qBACEhB,GAAA,CAACiB,kBAAAA,EAAAA;AAAsCpB,gBAAAA,KAAAA,EAAOmB,OAAOnB,KAAK;AACvDmB,gBAAAA,QAAAA,EAAAA,MAAAA,CAAOvB;AADeuB,aAAAA,EAAAA,MAAAA,CAAOnB,KAAK,CAAA;AAIzC,QAAA,CAAA;;AAGN;;;;"}
@@ -32,12 +32,14 @@ const STEPS = {
32
32
  AssetUpload: 'UploadAsset',
33
33
  FolderCreate: 'FolderCreate'
34
34
  };
35
- const MediaLibraryDialog = ({ onClose, onSelectAssets, allowedTypes = [
35
+ const DEFAULT_ALLOWED_TYPES = [
36
36
  'files',
37
37
  'images',
38
38
  'videos',
39
39
  'audios'
40
- ], multiple = true, initiallySelectedAssets = [] })=>{
40
+ ];
41
+ const EMPTY_INITIALLY_SELECTED_ASSETS = [];
42
+ const MediaLibraryDialog = ({ onClose, onSelectAssets, allowedTypes = DEFAULT_ALLOWED_TYPES, multiple = true, initiallySelectedAssets = EMPTY_INITIALLY_SELECTED_ASSETS })=>{
41
43
  const [step, setStep] = React__namespace.useState(STEPS.AssetSelect);
42
44
  const [folderId, setFolderId] = React__namespace.useState(null);
43
45
  switch(step){
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryDialog.js","sources":["../../../../../admin/src/legacy/components/MediaLibraryDialog/MediaLibraryDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\nexport interface MediaLibraryDialogProps {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n initiallySelectedAssets?: File[];\n onClose: () => void;\n onSelectAssets: (selectedAssets: File[]) => void;\n}\n\nexport const MediaLibraryDialog = ({\n onClose,\n onSelectAssets,\n allowedTypes = ['files', 'images', 'videos', 'audios'],\n multiple = true,\n initiallySelectedAssets = [],\n}: MediaLibraryDialogProps) => {\n const [step, setStep] = React.useState(STEPS.AssetSelect);\n const [folderId, setFolderId] = React.useState<number | null>(null);\n\n switch (step) {\n case STEPS.AssetSelect:\n return (\n <AssetDialog\n allowedTypes={allowedTypes}\n folderId={folderId}\n open\n onClose={onClose}\n onValidate={onSelectAssets}\n initiallySelectedAssets={initiallySelectedAssets}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folderId) => setFolderId(folderId)}\n multiple={multiple}\n />\n );\n\n case STEPS.FolderCreate:\n return (\n <EditFolderDialog\n open\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n );\n\n default:\n return (\n <UploadAssetDialog open onClose={() => setStep(STEPS.AssetSelect)} folderId={folderId} />\n );\n }\n};\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryDialog","onClose","onSelectAssets","allowedTypes","multiple","initiallySelectedAssets","step","setStep","React","useState","folderId","setFolderId","_jsx","AssetDialog","open","onValidate","onAddAsset","onAddFolder","onChangeFolder","EditFolderDialog","parentFolderId","UploadAssetDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAOA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAYO,MAAMC,qBAAqB,CAAC,EACjCC,OAAO,EACPC,cAAc,EACdC,YAAAA,GAAe;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA;AAAS,CAAA,EACtDC,QAAAA,GAAW,IAAI,EACfC,uBAAAA,GAA0B,EAAE,EACJ,GAAA;IACxB,MAAM,CAACC,MAAMC,OAAAA,CAAQ,GAAGC,iBAAMC,QAAQ,CAACb,MAAMC,WAAW,CAAA;AACxD,IAAA,MAAM,CAACa,QAAAA,EAAUC,WAAAA,CAAY,GAAGH,gBAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;IAE9D,OAAQH,IAAAA;AACN,QAAA,KAAKV,MAAMC,WAAW;AACpB,YAAA,qBACEe,cAAA,CAACC,uBAAAA,EAAAA;gBACCV,YAAAA,EAAcA,YAAAA;gBACdO,QAAAA,EAAUA,QAAAA;gBACVI,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAASA,OAAAA;gBACTc,UAAAA,EAAYb,cAAAA;gBACZG,uBAAAA,EAAyBA,uBAAAA;gBACzBW,UAAAA,EAAY,IAAMT,OAAAA,CAAQX,KAAAA,CAAME,WAAW,CAAA;gBAC3CmB,WAAAA,EAAa,IAAMV,OAAAA,CAAQX,KAAAA,CAAMG,YAAY,CAAA;gBAC7CmB,cAAAA,EAAgB,CAACR,WAAaC,WAAAA,CAAYD,QAAAA,CAAAA;gBAC1CN,QAAAA,EAAUA;;AAIhB,QAAA,KAAKR,MAAMG,YAAY;AACrB,YAAA,qBACEa,cAAA,CAACO,iCAAAA,EAAAA;gBACCL,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAAS,IAAMM,OAAAA,CAAQX,KAAAA,CAAMC,WAAW,CAAA;gBACxCuB,cAAAA,EAAgBV;;AAItB,QAAA;AACE,YAAA,qBACEE,cAAA,CAACS,mCAAAA,EAAAA;gBAAkBP,IAAI,EAAA,IAAA;gBAACb,OAAAA,EAAS,IAAMM,OAAAA,CAAQX,KAAAA,CAAMC,WAAW,CAAA;gBAAGa,QAAAA,EAAUA;;AAEnF;AACF;;;;"}
1
+ {"version":3,"file":"MediaLibraryDialog.js","sources":["../../../../../admin/src/legacy/components/MediaLibraryDialog/MediaLibraryDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nconst DEFAULT_ALLOWED_TYPES: NonNullable<MediaLibraryDialogProps['allowedTypes']> = [\n 'files',\n 'images',\n 'videos',\n 'audios',\n];\nconst EMPTY_INITIALLY_SELECTED_ASSETS: NonNullable<\n MediaLibraryDialogProps['initiallySelectedAssets']\n> = [];\nexport interface MediaLibraryDialogProps {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n initiallySelectedAssets?: File[];\n onClose: () => void;\n onSelectAssets: (selectedAssets: File[]) => void;\n}\n\nexport const MediaLibraryDialog = ({\n onClose,\n onSelectAssets,\n allowedTypes = DEFAULT_ALLOWED_TYPES,\n multiple = true,\n initiallySelectedAssets = EMPTY_INITIALLY_SELECTED_ASSETS,\n}: MediaLibraryDialogProps) => {\n const [step, setStep] = React.useState(STEPS.AssetSelect);\n const [folderId, setFolderId] = React.useState<number | null>(null);\n\n switch (step) {\n case STEPS.AssetSelect:\n return (\n <AssetDialog\n allowedTypes={allowedTypes}\n folderId={folderId}\n open\n onClose={onClose}\n onValidate={onSelectAssets}\n initiallySelectedAssets={initiallySelectedAssets}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folderId) => setFolderId(folderId)}\n multiple={multiple}\n />\n );\n\n case STEPS.FolderCreate:\n return (\n <EditFolderDialog\n open\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n );\n\n default:\n return (\n <UploadAssetDialog open onClose={() => setStep(STEPS.AssetSelect)} folderId={folderId} />\n );\n }\n};\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","DEFAULT_ALLOWED_TYPES","EMPTY_INITIALLY_SELECTED_ASSETS","MediaLibraryDialog","onClose","onSelectAssets","allowedTypes","multiple","initiallySelectedAssets","step","setStep","React","useState","folderId","setFolderId","_jsx","AssetDialog","open","onValidate","onAddAsset","onAddFolder","onChangeFolder","EditFolderDialog","parentFolderId","UploadAssetDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAOA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAKA,MAAMC,qBAAAA,GAA8E;AAClF,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,QAAA;AACA,IAAA;AACD,CAAA;AACD,MAAMC,kCAEF,EAAE;MASOC,kBAAAA,GAAqB,CAAC,EACjCC,OAAO,EACPC,cAAc,EACdC,YAAAA,GAAeL,qBAAqB,EACpCM,QAAAA,GAAW,IAAI,EACfC,uBAAAA,GAA0BN,+BAA+B,EACjC,GAAA;IACxB,MAAM,CAACO,MAAMC,OAAAA,CAAQ,GAAGC,iBAAMC,QAAQ,CAACf,MAAMC,WAAW,CAAA;AACxD,IAAA,MAAM,CAACe,QAAAA,EAAUC,WAAAA,CAAY,GAAGH,gBAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;IAE9D,OAAQH,IAAAA;AACN,QAAA,KAAKZ,MAAMC,WAAW;AACpB,YAAA,qBACEiB,cAAA,CAACC,uBAAAA,EAAAA;gBACCV,YAAAA,EAAcA,YAAAA;gBACdO,QAAAA,EAAUA,QAAAA;gBACVI,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAASA,OAAAA;gBACTc,UAAAA,EAAYb,cAAAA;gBACZG,uBAAAA,EAAyBA,uBAAAA;gBACzBW,UAAAA,EAAY,IAAMT,OAAAA,CAAQb,KAAAA,CAAME,WAAW,CAAA;gBAC3CqB,WAAAA,EAAa,IAAMV,OAAAA,CAAQb,KAAAA,CAAMG,YAAY,CAAA;gBAC7CqB,cAAAA,EAAgB,CAACR,WAAaC,WAAAA,CAAYD,QAAAA,CAAAA;gBAC1CN,QAAAA,EAAUA;;AAIhB,QAAA,KAAKV,MAAMG,YAAY;AACrB,YAAA,qBACEe,cAAA,CAACO,iCAAAA,EAAAA;gBACCL,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAAS,IAAMM,OAAAA,CAAQb,KAAAA,CAAMC,WAAW,CAAA;gBACxCyB,cAAAA,EAAgBV;;AAItB,QAAA;AACE,YAAA,qBACEE,cAAA,CAACS,mCAAAA,EAAAA;gBAAkBP,IAAI,EAAA,IAAA;gBAACb,OAAAA,EAAS,IAAMM,OAAAA,CAAQb,KAAAA,CAAMC,WAAW,CAAA;gBAAGe,QAAAA,EAAUA;;AAEnF;AACF;;;;"}
@@ -10,12 +10,14 @@ const STEPS = {
10
10
  AssetUpload: 'UploadAsset',
11
11
  FolderCreate: 'FolderCreate'
12
12
  };
13
- const MediaLibraryDialog = ({ onClose, onSelectAssets, allowedTypes = [
13
+ const DEFAULT_ALLOWED_TYPES = [
14
14
  'files',
15
15
  'images',
16
16
  'videos',
17
17
  'audios'
18
- ], multiple = true, initiallySelectedAssets = [] })=>{
18
+ ];
19
+ const EMPTY_INITIALLY_SELECTED_ASSETS = [];
20
+ const MediaLibraryDialog = ({ onClose, onSelectAssets, allowedTypes = DEFAULT_ALLOWED_TYPES, multiple = true, initiallySelectedAssets = EMPTY_INITIALLY_SELECTED_ASSETS })=>{
19
21
  const [step, setStep] = React.useState(STEPS.AssetSelect);
20
22
  const [folderId, setFolderId] = React.useState(null);
21
23
  switch(step){
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryDialog.mjs","sources":["../../../../../admin/src/legacy/components/MediaLibraryDialog/MediaLibraryDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\nexport interface MediaLibraryDialogProps {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n initiallySelectedAssets?: File[];\n onClose: () => void;\n onSelectAssets: (selectedAssets: File[]) => void;\n}\n\nexport const MediaLibraryDialog = ({\n onClose,\n onSelectAssets,\n allowedTypes = ['files', 'images', 'videos', 'audios'],\n multiple = true,\n initiallySelectedAssets = [],\n}: MediaLibraryDialogProps) => {\n const [step, setStep] = React.useState(STEPS.AssetSelect);\n const [folderId, setFolderId] = React.useState<number | null>(null);\n\n switch (step) {\n case STEPS.AssetSelect:\n return (\n <AssetDialog\n allowedTypes={allowedTypes}\n folderId={folderId}\n open\n onClose={onClose}\n onValidate={onSelectAssets}\n initiallySelectedAssets={initiallySelectedAssets}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folderId) => setFolderId(folderId)}\n multiple={multiple}\n />\n );\n\n case STEPS.FolderCreate:\n return (\n <EditFolderDialog\n open\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n );\n\n default:\n return (\n <UploadAssetDialog open onClose={() => setStep(STEPS.AssetSelect)} folderId={folderId} />\n );\n }\n};\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryDialog","onClose","onSelectAssets","allowedTypes","multiple","initiallySelectedAssets","step","setStep","React","useState","folderId","setFolderId","_jsx","AssetDialog","open","onValidate","onAddAsset","onAddFolder","onChangeFolder","EditFolderDialog","parentFolderId","UploadAssetDialog"],"mappings":";;;;;;AAAA;AAOA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAYO,MAAMC,qBAAqB,CAAC,EACjCC,OAAO,EACPC,cAAc,EACdC,YAAAA,GAAe;AAAC,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA;AAAS,CAAA,EACtDC,QAAAA,GAAW,IAAI,EACfC,uBAAAA,GAA0B,EAAE,EACJ,GAAA;IACxB,MAAM,CAACC,MAAMC,OAAAA,CAAQ,GAAGC,MAAMC,QAAQ,CAACb,MAAMC,WAAW,CAAA;AACxD,IAAA,MAAM,CAACa,QAAAA,EAAUC,WAAAA,CAAY,GAAGH,KAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;IAE9D,OAAQH,IAAAA;AACN,QAAA,KAAKV,MAAMC,WAAW;AACpB,YAAA,qBACEe,GAAA,CAACC,WAAAA,EAAAA;gBACCV,YAAAA,EAAcA,YAAAA;gBACdO,QAAAA,EAAUA,QAAAA;gBACVI,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAASA,OAAAA;gBACTc,UAAAA,EAAYb,cAAAA;gBACZG,uBAAAA,EAAyBA,uBAAAA;gBACzBW,UAAAA,EAAY,IAAMT,OAAAA,CAAQX,KAAAA,CAAME,WAAW,CAAA;gBAC3CmB,WAAAA,EAAa,IAAMV,OAAAA,CAAQX,KAAAA,CAAMG,YAAY,CAAA;gBAC7CmB,cAAAA,EAAgB,CAACR,WAAaC,WAAAA,CAAYD,QAAAA,CAAAA;gBAC1CN,QAAAA,EAAUA;;AAIhB,QAAA,KAAKR,MAAMG,YAAY;AACrB,YAAA,qBACEa,GAAA,CAACO,gBAAAA,EAAAA;gBACCL,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAAS,IAAMM,OAAAA,CAAQX,KAAAA,CAAMC,WAAW,CAAA;gBACxCuB,cAAAA,EAAgBV;;AAItB,QAAA;AACE,YAAA,qBACEE,GAAA,CAACS,iBAAAA,EAAAA;gBAAkBP,IAAI,EAAA,IAAA;gBAACb,OAAAA,EAAS,IAAMM,OAAAA,CAAQX,KAAAA,CAAMC,WAAW,CAAA;gBAAGa,QAAAA,EAAUA;;AAEnF;AACF;;;;"}
1
+ {"version":3,"file":"MediaLibraryDialog.mjs","sources":["../../../../../admin/src/legacy/components/MediaLibraryDialog/MediaLibraryDialog.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nimport type { File } from '../../../../../shared/contracts/files';\nimport type { AllowedTypes } from '../AssetCard/AssetCard';\n\nconst DEFAULT_ALLOWED_TYPES: NonNullable<MediaLibraryDialogProps['allowedTypes']> = [\n 'files',\n 'images',\n 'videos',\n 'audios',\n];\nconst EMPTY_INITIALLY_SELECTED_ASSETS: NonNullable<\n MediaLibraryDialogProps['initiallySelectedAssets']\n> = [];\nexport interface MediaLibraryDialogProps {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n initiallySelectedAssets?: File[];\n onClose: () => void;\n onSelectAssets: (selectedAssets: File[]) => void;\n}\n\nexport const MediaLibraryDialog = ({\n onClose,\n onSelectAssets,\n allowedTypes = DEFAULT_ALLOWED_TYPES,\n multiple = true,\n initiallySelectedAssets = EMPTY_INITIALLY_SELECTED_ASSETS,\n}: MediaLibraryDialogProps) => {\n const [step, setStep] = React.useState(STEPS.AssetSelect);\n const [folderId, setFolderId] = React.useState<number | null>(null);\n\n switch (step) {\n case STEPS.AssetSelect:\n return (\n <AssetDialog\n allowedTypes={allowedTypes}\n folderId={folderId}\n open\n onClose={onClose}\n onValidate={onSelectAssets}\n initiallySelectedAssets={initiallySelectedAssets}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folderId) => setFolderId(folderId)}\n multiple={multiple}\n />\n );\n\n case STEPS.FolderCreate:\n return (\n <EditFolderDialog\n open\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n );\n\n default:\n return (\n <UploadAssetDialog open onClose={() => setStep(STEPS.AssetSelect)} folderId={folderId} />\n );\n }\n};\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","DEFAULT_ALLOWED_TYPES","EMPTY_INITIALLY_SELECTED_ASSETS","MediaLibraryDialog","onClose","onSelectAssets","allowedTypes","multiple","initiallySelectedAssets","step","setStep","React","useState","folderId","setFolderId","_jsx","AssetDialog","open","onValidate","onAddAsset","onAddFolder","onChangeFolder","EditFolderDialog","parentFolderId","UploadAssetDialog"],"mappings":";;;;;;AAAA;AAOA,MAAMA,KAAAA,GAAQ;IACZC,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,aAAA;IACbC,YAAAA,EAAc;AAChB,CAAA;AAKA,MAAMC,qBAAAA,GAA8E;AAClF,IAAA,OAAA;AACA,IAAA,QAAA;AACA,IAAA,QAAA;AACA,IAAA;AACD,CAAA;AACD,MAAMC,kCAEF,EAAE;MASOC,kBAAAA,GAAqB,CAAC,EACjCC,OAAO,EACPC,cAAc,EACdC,YAAAA,GAAeL,qBAAqB,EACpCM,QAAAA,GAAW,IAAI,EACfC,uBAAAA,GAA0BN,+BAA+B,EACjC,GAAA;IACxB,MAAM,CAACO,MAAMC,OAAAA,CAAQ,GAAGC,MAAMC,QAAQ,CAACf,MAAMC,WAAW,CAAA;AACxD,IAAA,MAAM,CAACe,QAAAA,EAAUC,WAAAA,CAAY,GAAGH,KAAAA,CAAMC,QAAQ,CAAgB,IAAA,CAAA;IAE9D,OAAQH,IAAAA;AACN,QAAA,KAAKZ,MAAMC,WAAW;AACpB,YAAA,qBACEiB,GAAA,CAACC,WAAAA,EAAAA;gBACCV,YAAAA,EAAcA,YAAAA;gBACdO,QAAAA,EAAUA,QAAAA;gBACVI,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAASA,OAAAA;gBACTc,UAAAA,EAAYb,cAAAA;gBACZG,uBAAAA,EAAyBA,uBAAAA;gBACzBW,UAAAA,EAAY,IAAMT,OAAAA,CAAQb,KAAAA,CAAME,WAAW,CAAA;gBAC3CqB,WAAAA,EAAa,IAAMV,OAAAA,CAAQb,KAAAA,CAAMG,YAAY,CAAA;gBAC7CqB,cAAAA,EAAgB,CAACR,WAAaC,WAAAA,CAAYD,QAAAA,CAAAA;gBAC1CN,QAAAA,EAAUA;;AAIhB,QAAA,KAAKV,MAAMG,YAAY;AACrB,YAAA,qBACEe,GAAA,CAACO,gBAAAA,EAAAA;gBACCL,IAAI,EAAA,IAAA;gBACJb,OAAAA,EAAS,IAAMM,OAAAA,CAAQb,KAAAA,CAAMC,WAAW,CAAA;gBACxCyB,cAAAA,EAAgBV;;AAItB,QAAA;AACE,YAAA,qBACEE,GAAA,CAACS,iBAAAA,EAAAA;gBAAkBP,IAAI,EAAA,IAAA;gBAACb,OAAAA,EAAS,IAAMM,OAAAA,CAAQb,KAAAA,CAAMC,WAAW,CAAA;gBAAGe,QAAAA,EAAUA;;AAEnF;AACF;;;;"}
@@ -36,12 +36,13 @@ function _interopNamespace(e) {
36
36
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
37
37
 
38
38
  // TODO: find a better naming convention for the file that was an index file before
39
+ const EMPTY_ATTRIBUTE = {};
39
40
  const STEPS = {
40
41
  AssetSelect: 'SelectAsset',
41
42
  AssetUpload: 'UploadAsset',
42
43
  FolderCreate: 'FolderCreate'
43
44
  };
44
- const MediaLibraryInput = /*#__PURE__*/ React__namespace.forwardRef(({ attribute: { allowedTypes = null, multiple = false } = {}, label, hint, disabled = false, labelAction = undefined, name, required = false }, forwardedRef)=>{
45
+ const MediaLibraryInput = /*#__PURE__*/ React__namespace.forwardRef(({ attribute: { allowedTypes = null, multiple = false } = EMPTY_ATTRIBUTE, label, hint, disabled = false, labelAction = undefined, name, required = false }, forwardedRef)=>{
45
46
  const { formatMessage } = reactIntl.useIntl();
46
47
  const { onChange, value, error } = strapiAdmin.useField(name);
47
48
  const [uploadedFiles, setUploadedFiles] = React__namespace.useState([]);
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryInput.js","sources":["../../../../../admin/src/legacy/components/MediaLibraryInput/MediaLibraryInput.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { useField, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { AllowedFiles, getAllowedFiles, getTrad } from '../../utils';\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { Asset, UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nimport { CarouselAssets, CarouselAssetsProps, FileWithoutIdHash } from './Carousel/CarouselAssets';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ntype AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nexport interface MediaLibraryInputProps {\n required?: boolean;\n name: string;\n labelAction?: React.ReactNode;\n label?: string;\n hint?: string;\n disabled?: boolean;\n attribute?: {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n };\n}\n\nexport const MediaLibraryInput = React.forwardRef<CarouselAssetsProps, MediaLibraryInputProps>(\n (\n {\n attribute: { allowedTypes = null, multiple = false } = {},\n label,\n hint,\n disabled = false,\n labelAction = undefined,\n name,\n required = false,\n },\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const { onChange, value, error } = useField<File | File[] | null>(name);\n const [uploadedFiles, setUploadedFiles] = React.useState<Asset[] | File[]>([]);\n const [step, setStep] = React.useState<string | undefined>(undefined);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [droppedAssets, setDroppedAssets] = React.useState<AllowedFiles[]>();\n const [folderId, setFolderId] = React.useState<number | null>(null);\n const { toggleNotification } = useNotification();\n\n React.useEffect(() => {\n // Clear the uploaded files on close\n if (step === undefined) {\n setUploadedFiles([]);\n }\n }, [step]);\n\n let selectedAssets: File[] = [];\n\n if (Array.isArray(value)) {\n selectedAssets = value;\n } else if (value !== null && value !== undefined) {\n selectedAssets = [value];\n }\n\n const handleValidation = (nextSelectedAssets: File[]) => {\n const value = multiple ? nextSelectedAssets : nextSelectedAssets[0];\n onChange(name, value);\n setStep(undefined);\n };\n\n const handleDeleteAssetFromMediaLibrary = () => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter(\n (_, assetIndex) => assetIndex !== selectedIndex\n );\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n const value = nextValue;\n onChange(name, value);\n\n setSelectedIndex(0);\n };\n\n const handleDeleteAsset = (asset: File) => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter((prevAsset) => prevAsset.id !== asset.id);\n\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n onChange(name, nextValue);\n\n setSelectedIndex(0);\n };\n\n const handleAssetEdit = (asset: File) => {\n const nextSelectedAssets = selectedAssets.map((prevAsset) =>\n prevAsset.id === asset.id ? asset : prevAsset\n );\n\n onChange(name, multiple ? nextSelectedAssets : nextSelectedAssets[0]);\n };\n\n const validateAssetsTypes = (\n assets: FileWithoutIdHash[] | Asset[],\n callback: (assets?: AllowedFiles[], error?: string) => void\n ) => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (allowedAssets.length > 0) {\n callback(allowedAssets);\n } else {\n toggleNotification({\n type: 'danger',\n timeout: 4000,\n message: formatMessage(\n {\n id: getTrad('input.notification.not-supported'),\n defaultMessage: `You can't upload this type of file.`,\n },\n {\n fileTypes: (allowedTypes ?? []).join(','),\n }\n ),\n });\n }\n };\n\n const handleAssetDrop = (assets: FileWithoutIdHash[]) => {\n validateAssetsTypes(assets, (allowedAssets?: AllowedFiles[]) => {\n setDroppedAssets(allowedAssets);\n setStep(STEPS.AssetUpload);\n });\n };\n\n if (multiple && selectedAssets.length > 0) {\n label = `${label} (${selectedIndex + 1} / ${selectedAssets.length})`;\n }\n\n const handleNext = () => {\n setSelectedIndex((current) => (current < selectedAssets.length - 1 ? current + 1 : 0));\n };\n\n const handlePrevious = () => {\n setSelectedIndex((current) => (current > 0 ? current - 1 : selectedAssets.length - 1));\n };\n\n const handleFilesUploadSucceeded = (uploadedFiles: Asset[] | File[]) => {\n setUploadedFiles((prev) => [...prev, ...uploadedFiles]);\n };\n\n let initiallySelectedAssets = selectedAssets;\n\n if (uploadedFiles.length > 0) {\n const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]);\n\n initiallySelectedAssets = multiple\n ? [...allowedUploadedFiles, ...selectedAssets]\n : [allowedUploadedFiles[0]];\n }\n\n const handleDoubleClickAsset = (asset: File) => {\n if (disabled) return;\n handleAssetEdit(asset);\n };\n\n return (\n <>\n <CarouselAssets\n ref={forwardedRef}\n assets={selectedAssets}\n disabled={disabled}\n label={label!}\n labelAction={labelAction}\n onDeleteAsset={handleDeleteAsset}\n onDeleteAssetFromMediaLibrary={handleDeleteAssetFromMediaLibrary}\n onAddAsset={() => setStep(STEPS.AssetSelect)}\n onDropAsset={handleAssetDrop}\n onEditAsset={handleAssetEdit}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onDoubleClickAsset={handleDoubleClickAsset}\n error={error}\n hint={hint}\n required={required}\n selectedAssetIndex={selectedIndex}\n trackedLocation=\"content-manager\"\n />\n\n {step === STEPS.AssetSelect && (\n <AssetDialog\n allowedTypes={allowedTypes as AllowedTypes[]}\n initiallySelectedAssets={initiallySelectedAssets}\n folderId={folderId}\n onClose={() => {\n setStep(undefined);\n setFolderId(null);\n }}\n open={step === STEPS.AssetSelect}\n onValidate={handleValidation}\n multiple={multiple}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folder) => setFolderId(folder)}\n trackedLocation=\"content-manager\"\n />\n )}\n\n {step === STEPS.AssetUpload && (\n <UploadAssetDialog\n open={step === STEPS.AssetUpload}\n onClose={() => setStep(STEPS.AssetSelect)}\n initialAssetsToAdd={droppedAssets as Asset[]}\n addUploadedFiles={handleFilesUploadSucceeded}\n trackedLocation=\"content-manager\"\n folderId={folderId}\n validateAssetsTypes={validateAssetsTypes}\n />\n )}\n\n {step === STEPS.FolderCreate && (\n <EditFolderDialog\n open={step === STEPS.FolderCreate}\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n )}\n </>\n );\n }\n);\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryInput","React","forwardRef","attribute","allowedTypes","multiple","label","hint","disabled","labelAction","undefined","name","required","forwardedRef","formatMessage","useIntl","onChange","value","error","useField","uploadedFiles","setUploadedFiles","useState","step","setStep","selectedIndex","setSelectedIndex","droppedAssets","setDroppedAssets","folderId","setFolderId","toggleNotification","useNotification","useEffect","selectedAssets","Array","isArray","handleValidation","nextSelectedAssets","handleDeleteAssetFromMediaLibrary","nextValue","filter","_","assetIndex","length","handleDeleteAsset","asset","prevAsset","id","handleAssetEdit","map","validateAssetsTypes","assets","callback","allowedAssets","getAllowedFiles","type","timeout","message","getTrad","defaultMessage","fileTypes","join","handleAssetDrop","handleNext","current","handlePrevious","handleFilesUploadSucceeded","prev","initiallySelectedAssets","allowedUploadedFiles","handleDoubleClickAsset","_jsxs","_Fragment","_jsx","CarouselAssets","ref","onDeleteAsset","onDeleteAssetFromMediaLibrary","onAddAsset","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","selectedAssetIndex","trackedLocation","AssetDialog","onClose","open","onValidate","onAddFolder","onChangeFolder","folder","UploadAssetDialog","initialAssetsToAdd","addUploadedFiles","EditFolderDialog","parentFolderId"],"mappings":"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"}
1
+ {"version":3,"file":"MediaLibraryInput.js","sources":["../../../../../admin/src/legacy/components/MediaLibraryInput/MediaLibraryInput.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { useField, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { AllowedFiles, getAllowedFiles, getTrad } from '../../utils';\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { Asset, UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nimport { CarouselAssets, CarouselAssetsProps, FileWithoutIdHash } from './Carousel/CarouselAssets';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\nconst EMPTY_ATTRIBUTE: NonNullable<MediaLibraryInputProps['attribute']> = {};\n\ntype AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nexport interface MediaLibraryInputProps {\n required?: boolean;\n name: string;\n labelAction?: React.ReactNode;\n label?: string;\n hint?: string;\n disabled?: boolean;\n attribute?: {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n };\n}\n\nexport const MediaLibraryInput = React.forwardRef<CarouselAssetsProps, MediaLibraryInputProps>(\n (\n {\n attribute: { allowedTypes = null, multiple = false } = EMPTY_ATTRIBUTE,\n label,\n hint,\n disabled = false,\n labelAction = undefined,\n name,\n required = false,\n },\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const { onChange, value, error } = useField<File | File[] | null>(name);\n const [uploadedFiles, setUploadedFiles] = React.useState<Asset[] | File[]>([]);\n const [step, setStep] = React.useState<string | undefined>(undefined);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [droppedAssets, setDroppedAssets] = React.useState<AllowedFiles[]>();\n const [folderId, setFolderId] = React.useState<number | null>(null);\n const { toggleNotification } = useNotification();\n\n React.useEffect(() => {\n // Clear the uploaded files on close\n if (step === undefined) {\n setUploadedFiles([]);\n }\n }, [step]);\n\n let selectedAssets: File[] = [];\n\n if (Array.isArray(value)) {\n selectedAssets = value;\n } else if (value !== null && value !== undefined) {\n selectedAssets = [value];\n }\n\n const handleValidation = (nextSelectedAssets: File[]) => {\n const value = multiple ? nextSelectedAssets : nextSelectedAssets[0];\n onChange(name, value);\n setStep(undefined);\n };\n\n const handleDeleteAssetFromMediaLibrary = () => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter(\n (_, assetIndex) => assetIndex !== selectedIndex\n );\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n const value = nextValue;\n onChange(name, value);\n\n setSelectedIndex(0);\n };\n\n const handleDeleteAsset = (asset: File) => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter((prevAsset) => prevAsset.id !== asset.id);\n\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n onChange(name, nextValue);\n\n setSelectedIndex(0);\n };\n\n const handleAssetEdit = (asset: File) => {\n const nextSelectedAssets = selectedAssets.map((prevAsset) =>\n prevAsset.id === asset.id ? asset : prevAsset\n );\n\n onChange(name, multiple ? nextSelectedAssets : nextSelectedAssets[0]);\n };\n\n const validateAssetsTypes = (\n assets: FileWithoutIdHash[] | Asset[],\n callback: (assets?: AllowedFiles[], error?: string) => void\n ) => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (allowedAssets.length > 0) {\n callback(allowedAssets);\n } else {\n toggleNotification({\n type: 'danger',\n timeout: 4000,\n message: formatMessage(\n {\n id: getTrad('input.notification.not-supported'),\n defaultMessage: `You can't upload this type of file.`,\n },\n {\n fileTypes: (allowedTypes ?? []).join(','),\n }\n ),\n });\n }\n };\n\n const handleAssetDrop = (assets: FileWithoutIdHash[]) => {\n validateAssetsTypes(assets, (allowedAssets?: AllowedFiles[]) => {\n setDroppedAssets(allowedAssets);\n setStep(STEPS.AssetUpload);\n });\n };\n\n if (multiple && selectedAssets.length > 0) {\n label = `${label} (${selectedIndex + 1} / ${selectedAssets.length})`;\n }\n\n const handleNext = () => {\n setSelectedIndex((current) => (current < selectedAssets.length - 1 ? current + 1 : 0));\n };\n\n const handlePrevious = () => {\n setSelectedIndex((current) => (current > 0 ? current - 1 : selectedAssets.length - 1));\n };\n\n const handleFilesUploadSucceeded = (uploadedFiles: Asset[] | File[]) => {\n setUploadedFiles((prev) => [...prev, ...uploadedFiles]);\n };\n\n let initiallySelectedAssets = selectedAssets;\n\n if (uploadedFiles.length > 0) {\n const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]);\n\n initiallySelectedAssets = multiple\n ? [...allowedUploadedFiles, ...selectedAssets]\n : [allowedUploadedFiles[0]];\n }\n\n const handleDoubleClickAsset = (asset: File) => {\n if (disabled) return;\n handleAssetEdit(asset);\n };\n\n return (\n <>\n <CarouselAssets\n ref={forwardedRef}\n assets={selectedAssets}\n disabled={disabled}\n label={label!}\n labelAction={labelAction}\n onDeleteAsset={handleDeleteAsset}\n onDeleteAssetFromMediaLibrary={handleDeleteAssetFromMediaLibrary}\n onAddAsset={() => setStep(STEPS.AssetSelect)}\n onDropAsset={handleAssetDrop}\n onEditAsset={handleAssetEdit}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onDoubleClickAsset={handleDoubleClickAsset}\n error={error}\n hint={hint}\n required={required}\n selectedAssetIndex={selectedIndex}\n trackedLocation=\"content-manager\"\n />\n\n {step === STEPS.AssetSelect && (\n <AssetDialog\n allowedTypes={allowedTypes as AllowedTypes[]}\n initiallySelectedAssets={initiallySelectedAssets}\n folderId={folderId}\n onClose={() => {\n setStep(undefined);\n setFolderId(null);\n }}\n open={step === STEPS.AssetSelect}\n onValidate={handleValidation}\n multiple={multiple}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folder) => setFolderId(folder)}\n trackedLocation=\"content-manager\"\n />\n )}\n\n {step === STEPS.AssetUpload && (\n <UploadAssetDialog\n open={step === STEPS.AssetUpload}\n onClose={() => setStep(STEPS.AssetSelect)}\n initialAssetsToAdd={droppedAssets as Asset[]}\n addUploadedFiles={handleFilesUploadSucceeded}\n trackedLocation=\"content-manager\"\n folderId={folderId}\n validateAssetsTypes={validateAssetsTypes}\n />\n )}\n\n {step === STEPS.FolderCreate && (\n <EditFolderDialog\n open={step === STEPS.FolderCreate}\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n )}\n </>\n );\n }\n);\n"],"names":["EMPTY_ATTRIBUTE","STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryInput","React","forwardRef","attribute","allowedTypes","multiple","label","hint","disabled","labelAction","undefined","name","required","forwardedRef","formatMessage","useIntl","onChange","value","error","useField","uploadedFiles","setUploadedFiles","useState","step","setStep","selectedIndex","setSelectedIndex","droppedAssets","setDroppedAssets","folderId","setFolderId","toggleNotification","useNotification","useEffect","selectedAssets","Array","isArray","handleValidation","nextSelectedAssets","handleDeleteAssetFromMediaLibrary","nextValue","filter","_","assetIndex","length","handleDeleteAsset","asset","prevAsset","id","handleAssetEdit","map","validateAssetsTypes","assets","callback","allowedAssets","getAllowedFiles","type","timeout","message","getTrad","defaultMessage","fileTypes","join","handleAssetDrop","handleNext","current","handlePrevious","handleFilesUploadSucceeded","prev","initiallySelectedAssets","allowedUploadedFiles","handleDoubleClickAsset","_jsxs","_Fragment","_jsx","CarouselAssets","ref","onDeleteAsset","onDeleteAssetFromMediaLibrary","onAddAsset","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","selectedAssetIndex","trackedLocation","AssetDialog","onClose","open","onValidate","onAddFolder","onChangeFolder","folder","UploadAssetDialog","initialAssetsToAdd","addUploadedFiles","EditFolderDialog","parentFolderId"],"mappings":"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"}
@@ -14,12 +14,13 @@ import { UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog.mjs';
14
14
  import { CarouselAssets } from './Carousel/CarouselAssets.mjs';
15
15
 
16
16
  // TODO: find a better naming convention for the file that was an index file before
17
+ const EMPTY_ATTRIBUTE = {};
17
18
  const STEPS = {
18
19
  AssetSelect: 'SelectAsset',
19
20
  AssetUpload: 'UploadAsset',
20
21
  FolderCreate: 'FolderCreate'
21
22
  };
22
- const MediaLibraryInput = /*#__PURE__*/ React.forwardRef(({ attribute: { allowedTypes = null, multiple = false } = {}, label, hint, disabled = false, labelAction = undefined, name, required = false }, forwardedRef)=>{
23
+ const MediaLibraryInput = /*#__PURE__*/ React.forwardRef(({ attribute: { allowedTypes = null, multiple = false } = EMPTY_ATTRIBUTE, label, hint, disabled = false, labelAction = undefined, name, required = false }, forwardedRef)=>{
23
24
  const { formatMessage } = useIntl();
24
25
  const { onChange, value, error } = useField(name);
25
26
  const [uploadedFiles, setUploadedFiles] = React.useState([]);
@@ -1 +1 @@
1
- {"version":3,"file":"MediaLibraryInput.mjs","sources":["../../../../../admin/src/legacy/components/MediaLibraryInput/MediaLibraryInput.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { useField, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { AllowedFiles, getAllowedFiles, getTrad } from '../../utils';\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { Asset, UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nimport { CarouselAssets, CarouselAssetsProps, FileWithoutIdHash } from './Carousel/CarouselAssets';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\ntype AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nexport interface MediaLibraryInputProps {\n required?: boolean;\n name: string;\n labelAction?: React.ReactNode;\n label?: string;\n hint?: string;\n disabled?: boolean;\n attribute?: {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n };\n}\n\nexport const MediaLibraryInput = React.forwardRef<CarouselAssetsProps, MediaLibraryInputProps>(\n (\n {\n attribute: { allowedTypes = null, multiple = false } = {},\n label,\n hint,\n disabled = false,\n labelAction = undefined,\n name,\n required = false,\n },\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const { onChange, value, error } = useField<File | File[] | null>(name);\n const [uploadedFiles, setUploadedFiles] = React.useState<Asset[] | File[]>([]);\n const [step, setStep] = React.useState<string | undefined>(undefined);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [droppedAssets, setDroppedAssets] = React.useState<AllowedFiles[]>();\n const [folderId, setFolderId] = React.useState<number | null>(null);\n const { toggleNotification } = useNotification();\n\n React.useEffect(() => {\n // Clear the uploaded files on close\n if (step === undefined) {\n setUploadedFiles([]);\n }\n }, [step]);\n\n let selectedAssets: File[] = [];\n\n if (Array.isArray(value)) {\n selectedAssets = value;\n } else if (value !== null && value !== undefined) {\n selectedAssets = [value];\n }\n\n const handleValidation = (nextSelectedAssets: File[]) => {\n const value = multiple ? nextSelectedAssets : nextSelectedAssets[0];\n onChange(name, value);\n setStep(undefined);\n };\n\n const handleDeleteAssetFromMediaLibrary = () => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter(\n (_, assetIndex) => assetIndex !== selectedIndex\n );\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n const value = nextValue;\n onChange(name, value);\n\n setSelectedIndex(0);\n };\n\n const handleDeleteAsset = (asset: File) => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter((prevAsset) => prevAsset.id !== asset.id);\n\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n onChange(name, nextValue);\n\n setSelectedIndex(0);\n };\n\n const handleAssetEdit = (asset: File) => {\n const nextSelectedAssets = selectedAssets.map((prevAsset) =>\n prevAsset.id === asset.id ? asset : prevAsset\n );\n\n onChange(name, multiple ? nextSelectedAssets : nextSelectedAssets[0]);\n };\n\n const validateAssetsTypes = (\n assets: FileWithoutIdHash[] | Asset[],\n callback: (assets?: AllowedFiles[], error?: string) => void\n ) => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (allowedAssets.length > 0) {\n callback(allowedAssets);\n } else {\n toggleNotification({\n type: 'danger',\n timeout: 4000,\n message: formatMessage(\n {\n id: getTrad('input.notification.not-supported'),\n defaultMessage: `You can't upload this type of file.`,\n },\n {\n fileTypes: (allowedTypes ?? []).join(','),\n }\n ),\n });\n }\n };\n\n const handleAssetDrop = (assets: FileWithoutIdHash[]) => {\n validateAssetsTypes(assets, (allowedAssets?: AllowedFiles[]) => {\n setDroppedAssets(allowedAssets);\n setStep(STEPS.AssetUpload);\n });\n };\n\n if (multiple && selectedAssets.length > 0) {\n label = `${label} (${selectedIndex + 1} / ${selectedAssets.length})`;\n }\n\n const handleNext = () => {\n setSelectedIndex((current) => (current < selectedAssets.length - 1 ? current + 1 : 0));\n };\n\n const handlePrevious = () => {\n setSelectedIndex((current) => (current > 0 ? current - 1 : selectedAssets.length - 1));\n };\n\n const handleFilesUploadSucceeded = (uploadedFiles: Asset[] | File[]) => {\n setUploadedFiles((prev) => [...prev, ...uploadedFiles]);\n };\n\n let initiallySelectedAssets = selectedAssets;\n\n if (uploadedFiles.length > 0) {\n const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]);\n\n initiallySelectedAssets = multiple\n ? [...allowedUploadedFiles, ...selectedAssets]\n : [allowedUploadedFiles[0]];\n }\n\n const handleDoubleClickAsset = (asset: File) => {\n if (disabled) return;\n handleAssetEdit(asset);\n };\n\n return (\n <>\n <CarouselAssets\n ref={forwardedRef}\n assets={selectedAssets}\n disabled={disabled}\n label={label!}\n labelAction={labelAction}\n onDeleteAsset={handleDeleteAsset}\n onDeleteAssetFromMediaLibrary={handleDeleteAssetFromMediaLibrary}\n onAddAsset={() => setStep(STEPS.AssetSelect)}\n onDropAsset={handleAssetDrop}\n onEditAsset={handleAssetEdit}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onDoubleClickAsset={handleDoubleClickAsset}\n error={error}\n hint={hint}\n required={required}\n selectedAssetIndex={selectedIndex}\n trackedLocation=\"content-manager\"\n />\n\n {step === STEPS.AssetSelect && (\n <AssetDialog\n allowedTypes={allowedTypes as AllowedTypes[]}\n initiallySelectedAssets={initiallySelectedAssets}\n folderId={folderId}\n onClose={() => {\n setStep(undefined);\n setFolderId(null);\n }}\n open={step === STEPS.AssetSelect}\n onValidate={handleValidation}\n multiple={multiple}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folder) => setFolderId(folder)}\n trackedLocation=\"content-manager\"\n />\n )}\n\n {step === STEPS.AssetUpload && (\n <UploadAssetDialog\n open={step === STEPS.AssetUpload}\n onClose={() => setStep(STEPS.AssetSelect)}\n initialAssetsToAdd={droppedAssets as Asset[]}\n addUploadedFiles={handleFilesUploadSucceeded}\n trackedLocation=\"content-manager\"\n folderId={folderId}\n validateAssetsTypes={validateAssetsTypes}\n />\n )}\n\n {step === STEPS.FolderCreate && (\n <EditFolderDialog\n open={step === STEPS.FolderCreate}\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n )}\n </>\n );\n }\n);\n"],"names":["STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryInput","React","forwardRef","attribute","allowedTypes","multiple","label","hint","disabled","labelAction","undefined","name","required","forwardedRef","formatMessage","useIntl","onChange","value","error","useField","uploadedFiles","setUploadedFiles","useState","step","setStep","selectedIndex","setSelectedIndex","droppedAssets","setDroppedAssets","folderId","setFolderId","toggleNotification","useNotification","useEffect","selectedAssets","Array","isArray","handleValidation","nextSelectedAssets","handleDeleteAssetFromMediaLibrary","nextValue","filter","_","assetIndex","length","handleDeleteAsset","asset","prevAsset","id","handleAssetEdit","map","validateAssetsTypes","assets","callback","allowedAssets","getAllowedFiles","type","timeout","message","getTrad","defaultMessage","fileTypes","join","handleAssetDrop","handleNext","current","handlePrevious","handleFilesUploadSucceeded","prev","initiallySelectedAssets","allowedUploadedFiles","handleDoubleClickAsset","_jsxs","_Fragment","_jsx","CarouselAssets","ref","onDeleteAsset","onDeleteAssetFromMediaLibrary","onAddAsset","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","selectedAssetIndex","trackedLocation","AssetDialog","onClose","open","onValidate","onAddFolder","onChangeFolder","folder","UploadAssetDialog","initialAssetsToAdd","addUploadedFiles","EditFolderDialog","parentFolderId"],"mappings":"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"}
1
+ {"version":3,"file":"MediaLibraryInput.mjs","sources":["../../../../../admin/src/legacy/components/MediaLibraryInput/MediaLibraryInput.tsx"],"sourcesContent":["// TODO: find a better naming convention for the file that was an index file before\nimport * as React from 'react';\n\nimport { useField, useNotification } from '@strapi/admin/strapi-admin';\nimport { useIntl } from 'react-intl';\n\nimport { AllowedFiles, getAllowedFiles, getTrad } from '../../utils';\nimport { AssetDialog } from '../AssetDialog/AssetDialog';\nimport { EditFolderDialog } from '../EditFolderDialog/EditFolderDialog';\nimport { Asset, UploadAssetDialog } from '../UploadAssetDialog/UploadAssetDialog';\n\nimport { CarouselAssets, CarouselAssetsProps, FileWithoutIdHash } from './Carousel/CarouselAssets';\n\nimport type { File } from '../../../../../shared/contracts/files';\n\nconst EMPTY_ATTRIBUTE: NonNullable<MediaLibraryInputProps['attribute']> = {};\n\ntype AllowedTypes = 'files' | 'images' | 'videos' | 'audios';\n\nconst STEPS = {\n AssetSelect: 'SelectAsset',\n AssetUpload: 'UploadAsset',\n FolderCreate: 'FolderCreate',\n};\n\nexport interface MediaLibraryInputProps {\n required?: boolean;\n name: string;\n labelAction?: React.ReactNode;\n label?: string;\n hint?: string;\n disabled?: boolean;\n attribute?: {\n allowedTypes?: AllowedTypes[];\n multiple?: boolean;\n };\n}\n\nexport const MediaLibraryInput = React.forwardRef<CarouselAssetsProps, MediaLibraryInputProps>(\n (\n {\n attribute: { allowedTypes = null, multiple = false } = EMPTY_ATTRIBUTE,\n label,\n hint,\n disabled = false,\n labelAction = undefined,\n name,\n required = false,\n },\n forwardedRef\n ) => {\n const { formatMessage } = useIntl();\n const { onChange, value, error } = useField<File | File[] | null>(name);\n const [uploadedFiles, setUploadedFiles] = React.useState<Asset[] | File[]>([]);\n const [step, setStep] = React.useState<string | undefined>(undefined);\n const [selectedIndex, setSelectedIndex] = React.useState(0);\n const [droppedAssets, setDroppedAssets] = React.useState<AllowedFiles[]>();\n const [folderId, setFolderId] = React.useState<number | null>(null);\n const { toggleNotification } = useNotification();\n\n React.useEffect(() => {\n // Clear the uploaded files on close\n if (step === undefined) {\n setUploadedFiles([]);\n }\n }, [step]);\n\n let selectedAssets: File[] = [];\n\n if (Array.isArray(value)) {\n selectedAssets = value;\n } else if (value !== null && value !== undefined) {\n selectedAssets = [value];\n }\n\n const handleValidation = (nextSelectedAssets: File[]) => {\n const value = multiple ? nextSelectedAssets : nextSelectedAssets[0];\n onChange(name, value);\n setStep(undefined);\n };\n\n const handleDeleteAssetFromMediaLibrary = () => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter(\n (_, assetIndex) => assetIndex !== selectedIndex\n );\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n const value = nextValue;\n onChange(name, value);\n\n setSelectedIndex(0);\n };\n\n const handleDeleteAsset = (asset: File) => {\n let nextValue;\n\n if (multiple) {\n const nextSelectedAssets = selectedAssets.filter((prevAsset) => prevAsset.id !== asset.id);\n\n nextValue = nextSelectedAssets.length > 0 ? nextSelectedAssets : null;\n } else {\n nextValue = null;\n }\n\n onChange(name, nextValue);\n\n setSelectedIndex(0);\n };\n\n const handleAssetEdit = (asset: File) => {\n const nextSelectedAssets = selectedAssets.map((prevAsset) =>\n prevAsset.id === asset.id ? asset : prevAsset\n );\n\n onChange(name, multiple ? nextSelectedAssets : nextSelectedAssets[0]);\n };\n\n const validateAssetsTypes = (\n assets: FileWithoutIdHash[] | Asset[],\n callback: (assets?: AllowedFiles[], error?: string) => void\n ) => {\n const allowedAssets = getAllowedFiles(allowedTypes, assets as AllowedFiles[]);\n\n if (allowedAssets.length > 0) {\n callback(allowedAssets);\n } else {\n toggleNotification({\n type: 'danger',\n timeout: 4000,\n message: formatMessage(\n {\n id: getTrad('input.notification.not-supported'),\n defaultMessage: `You can't upload this type of file.`,\n },\n {\n fileTypes: (allowedTypes ?? []).join(','),\n }\n ),\n });\n }\n };\n\n const handleAssetDrop = (assets: FileWithoutIdHash[]) => {\n validateAssetsTypes(assets, (allowedAssets?: AllowedFiles[]) => {\n setDroppedAssets(allowedAssets);\n setStep(STEPS.AssetUpload);\n });\n };\n\n if (multiple && selectedAssets.length > 0) {\n label = `${label} (${selectedIndex + 1} / ${selectedAssets.length})`;\n }\n\n const handleNext = () => {\n setSelectedIndex((current) => (current < selectedAssets.length - 1 ? current + 1 : 0));\n };\n\n const handlePrevious = () => {\n setSelectedIndex((current) => (current > 0 ? current - 1 : selectedAssets.length - 1));\n };\n\n const handleFilesUploadSucceeded = (uploadedFiles: Asset[] | File[]) => {\n setUploadedFiles((prev) => [...prev, ...uploadedFiles]);\n };\n\n let initiallySelectedAssets = selectedAssets;\n\n if (uploadedFiles.length > 0) {\n const allowedUploadedFiles = getAllowedFiles(allowedTypes, uploadedFiles as AllowedFiles[]);\n\n initiallySelectedAssets = multiple\n ? [...allowedUploadedFiles, ...selectedAssets]\n : [allowedUploadedFiles[0]];\n }\n\n const handleDoubleClickAsset = (asset: File) => {\n if (disabled) return;\n handleAssetEdit(asset);\n };\n\n return (\n <>\n <CarouselAssets\n ref={forwardedRef}\n assets={selectedAssets}\n disabled={disabled}\n label={label!}\n labelAction={labelAction}\n onDeleteAsset={handleDeleteAsset}\n onDeleteAssetFromMediaLibrary={handleDeleteAssetFromMediaLibrary}\n onAddAsset={() => setStep(STEPS.AssetSelect)}\n onDropAsset={handleAssetDrop}\n onEditAsset={handleAssetEdit}\n onNext={handleNext}\n onPrevious={handlePrevious}\n onDoubleClickAsset={handleDoubleClickAsset}\n error={error}\n hint={hint}\n required={required}\n selectedAssetIndex={selectedIndex}\n trackedLocation=\"content-manager\"\n />\n\n {step === STEPS.AssetSelect && (\n <AssetDialog\n allowedTypes={allowedTypes as AllowedTypes[]}\n initiallySelectedAssets={initiallySelectedAssets}\n folderId={folderId}\n onClose={() => {\n setStep(undefined);\n setFolderId(null);\n }}\n open={step === STEPS.AssetSelect}\n onValidate={handleValidation}\n multiple={multiple}\n onAddAsset={() => setStep(STEPS.AssetUpload)}\n onAddFolder={() => setStep(STEPS.FolderCreate)}\n onChangeFolder={(folder) => setFolderId(folder)}\n trackedLocation=\"content-manager\"\n />\n )}\n\n {step === STEPS.AssetUpload && (\n <UploadAssetDialog\n open={step === STEPS.AssetUpload}\n onClose={() => setStep(STEPS.AssetSelect)}\n initialAssetsToAdd={droppedAssets as Asset[]}\n addUploadedFiles={handleFilesUploadSucceeded}\n trackedLocation=\"content-manager\"\n folderId={folderId}\n validateAssetsTypes={validateAssetsTypes}\n />\n )}\n\n {step === STEPS.FolderCreate && (\n <EditFolderDialog\n open={step === STEPS.FolderCreate}\n onClose={() => setStep(STEPS.AssetSelect)}\n parentFolderId={folderId}\n />\n )}\n </>\n );\n }\n);\n"],"names":["EMPTY_ATTRIBUTE","STEPS","AssetSelect","AssetUpload","FolderCreate","MediaLibraryInput","React","forwardRef","attribute","allowedTypes","multiple","label","hint","disabled","labelAction","undefined","name","required","forwardedRef","formatMessage","useIntl","onChange","value","error","useField","uploadedFiles","setUploadedFiles","useState","step","setStep","selectedIndex","setSelectedIndex","droppedAssets","setDroppedAssets","folderId","setFolderId","toggleNotification","useNotification","useEffect","selectedAssets","Array","isArray","handleValidation","nextSelectedAssets","handleDeleteAssetFromMediaLibrary","nextValue","filter","_","assetIndex","length","handleDeleteAsset","asset","prevAsset","id","handleAssetEdit","map","validateAssetsTypes","assets","callback","allowedAssets","getAllowedFiles","type","timeout","message","getTrad","defaultMessage","fileTypes","join","handleAssetDrop","handleNext","current","handlePrevious","handleFilesUploadSucceeded","prev","initiallySelectedAssets","allowedUploadedFiles","handleDoubleClickAsset","_jsxs","_Fragment","_jsx","CarouselAssets","ref","onDeleteAsset","onDeleteAssetFromMediaLibrary","onAddAsset","onDropAsset","onEditAsset","onNext","onPrevious","onDoubleClickAsset","selectedAssetIndex","trackedLocation","AssetDialog","onClose","open","onValidate","onAddFolder","onChangeFolder","folder","UploadAssetDialog","initialAssetsToAdd","addUploadedFiles","EditFolderDialog","parentFolderId"],"mappings":"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"}
@@ -34,6 +34,8 @@ function _interopNamespace(e) {
34
34
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
35
35
  var ReactSelect__default = /*#__PURE__*/_interopDefault(ReactSelect);
36
36
 
37
+ const EMPTY_COMPONENTS = {};
38
+ const EMPTY_STYLES = {};
37
39
  const hasParent = (option)=>!option.parent;
38
40
  const SelectTree = ({ options: defaultOptions, maxDisplayDepth = 5, defaultValue, ...props })=>{
39
41
  const flatDefaultOptions = React__namespace.useMemo(()=>flattenTree.flattenTree(defaultOptions), [
@@ -91,7 +93,7 @@ const SelectTree = ({ options: defaultOptions, maxDisplayDepth = 5, defaultValue
91
93
  ...props
92
94
  });
93
95
  };
94
- const Select = ({ components = {}, styles = {}, error, ariaErrorMessage, ...props })=>{
96
+ const Select = ({ components = EMPTY_COMPONENTS, styles = EMPTY_STYLES, error, ariaErrorMessage, ...props })=>{
95
97
  const theme = styledComponents.useTheme();
96
98
  const customStyles = getSelectStyles(theme, error);
97
99
  return /*#__PURE__*/ jsxRuntime.jsx(ReactSelect__default.default, {