@aws-amplify/ui-react-storage 3.10.2 → 3.11.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 (313) hide show
  1. package/README.md +23 -15
  2. package/dist/browser.js +1 -1
  3. package/dist/{createStorageBrowser-Cbdy8OAN.js → createStorageBrowser-CVfazB4S.js} +193 -207
  4. package/dist/esm/components/StorageBrowser/actions/handlers/listLocations.mjs +1 -1
  5. package/dist/esm/components/StorageBrowser/createStorageBrowser/StorageBrowserDefault.mjs +1 -1
  6. package/dist/esm/components/StorageBrowser/createStorageBrowser/createProvider.mjs +5 -3
  7. package/dist/esm/components/StorageBrowser/createStorageBrowser/createStorageBrowser.mjs +1 -1
  8. package/dist/esm/components/StorageBrowser/displayText/libraries/en/uploadView.mjs +3 -6
  9. package/dist/esm/components/StorageBrowser/fileItems/constants.mjs +11 -0
  10. package/dist/esm/components/StorageBrowser/fileItems/context.mjs +42 -0
  11. package/dist/esm/components/StorageBrowser/fileItems/fileItemsReducer.mjs +33 -0
  12. package/dist/esm/components/StorageBrowser/fileItems/utils.mjs +55 -0
  13. package/dist/esm/components/StorageBrowser/useAction/createEnhancedListHandler.mjs +20 -101
  14. package/dist/esm/components/StorageBrowser/useAction/searchItems.mjs +74 -0
  15. package/dist/esm/components/StorageBrowser/useAction/useListLocationItems.mjs +1 -0
  16. package/dist/esm/components/StorageBrowser/views/LocationActionView/CopyView/CopyViewProvider.mjs +3 -2
  17. package/dist/esm/components/StorageBrowser/views/LocationActionView/CopyView/useFolders.mjs +1 -2
  18. package/dist/esm/components/StorageBrowser/views/LocationActionView/CreateFolderView/CreateFolderViewProvider.mjs +0 -1
  19. package/dist/esm/components/StorageBrowser/views/LocationActionView/DeleteView/DeleteViewProvider.mjs +4 -3
  20. package/dist/esm/components/StorageBrowser/views/LocationActionView/UploadView/useUploadView.mjs +13 -34
  21. package/dist/esm/components/StorageBrowser/views/LocationDetailView/LocationDetailViewProvider.mjs +0 -1
  22. package/dist/esm/components/StorageBrowser/views/LocationDetailView/useLocationDetailView.mjs +4 -5
  23. package/dist/esm/components/StorageBrowser/views/LocationsView/useLocationsView.mjs +1 -2
  24. package/dist/esm/components/StorageBrowser/views/context/actionViews.mjs +1 -1
  25. package/dist/esm/components/StorageBrowser/views/context/primaryViews.mjs +1 -1
  26. package/dist/esm/components/StorageBrowser/views/utils/tableResolvers/constants.mjs +9 -1
  27. package/dist/esm/components/StorageBrowser/views/utils/tableResolvers/copyResolvers.mjs +4 -42
  28. package/dist/esm/components/StorageBrowser/views/utils/tableResolvers/deleteResolvers.mjs +4 -42
  29. package/dist/esm/components/StorageBrowser/views/utils/tableResolvers/utils.mjs +45 -5
  30. package/dist/esm/version.mjs +1 -1
  31. package/dist/index.js +1 -1
  32. package/dist/types/components/FileUploader/FileUploader.d.ts +1 -1
  33. package/dist/types/components/FileUploader/hooks/index.d.ts +2 -1
  34. package/dist/types/components/FileUploader/hooks/useFileUploader/actions.d.ts +2 -2
  35. package/dist/types/components/FileUploader/hooks/useFileUploader/index.d.ts +2 -1
  36. package/dist/types/components/FileUploader/hooks/useFileUploader/reducer.d.ts +1 -1
  37. package/dist/types/components/FileUploader/hooks/useFileUploader/types.d.ts +2 -2
  38. package/dist/types/components/FileUploader/hooks/useFileUploader/useFileUploader.d.ts +4 -3
  39. package/dist/types/components/FileUploader/hooks/useUploadFiles/index.d.ts +2 -1
  40. package/dist/types/components/FileUploader/hooks/useUploadFiles/useUploadFiles.d.ts +3 -3
  41. package/dist/types/components/FileUploader/index.d.ts +2 -2
  42. package/dist/types/components/FileUploader/types.d.ts +3 -3
  43. package/dist/types/components/FileUploader/ui/Container/index.d.ts +2 -1
  44. package/dist/types/components/FileUploader/ui/DropZone/DropZone.d.ts +1 -1
  45. package/dist/types/components/FileUploader/ui/DropZone/index.d.ts +1 -1
  46. package/dist/types/components/FileUploader/ui/DropZone/types.d.ts +1 -1
  47. package/dist/types/components/FileUploader/ui/FileList/FileControl.d.ts +1 -1
  48. package/dist/types/components/FileUploader/ui/FileList/FileDetails.d.ts +1 -1
  49. package/dist/types/components/FileUploader/ui/FileList/FileList.d.ts +1 -1
  50. package/dist/types/components/FileUploader/ui/FileList/FileRemoveButton.d.ts +1 -1
  51. package/dist/types/components/FileUploader/ui/FileList/FileStatusMessage.d.ts +1 -1
  52. package/dist/types/components/FileUploader/ui/FileList/FileThumbnail.d.ts +1 -1
  53. package/dist/types/components/FileUploader/ui/FileList/index.d.ts +1 -1
  54. package/dist/types/components/FileUploader/ui/FileList/types.d.ts +2 -2
  55. package/dist/types/components/FileUploader/ui/FileListFooter/FileListFooter.d.ts +1 -1
  56. package/dist/types/components/FileUploader/ui/FileListFooter/index.d.ts +2 -1
  57. package/dist/types/components/FileUploader/ui/FileListHeader/FileListHeader.d.ts +1 -1
  58. package/dist/types/components/FileUploader/ui/FileListHeader/index.d.ts +2 -1
  59. package/dist/types/components/FileUploader/ui/FilePicker/FilePicker.d.ts +1 -1
  60. package/dist/types/components/FileUploader/ui/FilePicker/index.d.ts +2 -1
  61. package/dist/types/components/FileUploader/ui/index.d.ts +12 -6
  62. package/dist/types/components/FileUploader/utils/displayText.d.ts +1 -1
  63. package/dist/types/components/FileUploader/utils/getInput.d.ts +3 -3
  64. package/dist/types/components/FileUploader/utils/index.d.ts +4 -2
  65. package/dist/types/components/FileUploader/utils/resolveFile.d.ts +1 -1
  66. package/dist/types/components/FileUploader/utils/uploadFile.d.ts +1 -1
  67. package/dist/types/components/StorageBrowser/ErrorBoundary/index.d.ts +2 -1
  68. package/dist/types/components/StorageBrowser/StorageBrowserAmplify.d.ts +1 -1
  69. package/dist/types/components/StorageBrowser/actions/__testUtils__/permissions.d.ts +1 -1
  70. package/dist/types/components/StorageBrowser/actions/configs/context.d.ts +1 -1
  71. package/dist/types/components/StorageBrowser/actions/configs/defaults.d.ts +1 -1
  72. package/dist/types/components/StorageBrowser/actions/configs/index.d.ts +4 -2
  73. package/dist/types/components/StorageBrowser/actions/configs/types.d.ts +2 -2
  74. package/dist/types/components/StorageBrowser/actions/configs/utils.d.ts +1 -1
  75. package/dist/types/components/StorageBrowser/actions/handlers/copy.d.ts +1 -1
  76. package/dist/types/components/StorageBrowser/actions/handlers/createFolder.d.ts +1 -1
  77. package/dist/types/components/StorageBrowser/actions/handlers/defaults.d.ts +6 -6
  78. package/dist/types/components/StorageBrowser/actions/handlers/delete.d.ts +1 -1
  79. package/dist/types/components/StorageBrowser/actions/handlers/download.d.ts +1 -1
  80. package/dist/types/components/StorageBrowser/actions/handlers/listLocationItems.d.ts +2 -2
  81. package/dist/types/components/StorageBrowser/actions/handlers/listLocations.d.ts +1 -1
  82. package/dist/types/components/StorageBrowser/actions/handlers/types.d.ts +1 -1
  83. package/dist/types/components/StorageBrowser/actions/handlers/upload.d.ts +1 -1
  84. package/dist/types/components/StorageBrowser/actions/handlers/utils.d.ts +3 -3
  85. package/dist/types/components/StorageBrowser/actions/index.d.ts +4 -2
  86. package/dist/types/components/StorageBrowser/adapters/createAmplifyAuthAdapter/createAmplifyAuthAdapter.d.ts +1 -1
  87. package/dist/types/components/StorageBrowser/adapters/createAmplifyAuthAdapter/createAmplifyListLocationsHandler.d.ts +1 -1
  88. package/dist/types/components/StorageBrowser/adapters/createAmplifyAuthAdapter/getPaginatedLocations.d.ts +1 -1
  89. package/dist/types/components/StorageBrowser/adapters/createManagedAuthAdapter/createLocationCredentialsHandler.d.ts +2 -2
  90. package/dist/types/components/StorageBrowser/adapters/createManagedAuthAdapter/createManagedAuthAdapter.d.ts +1 -1
  91. package/dist/types/components/StorageBrowser/adapters/index.d.ts +1 -1
  92. package/dist/types/components/StorageBrowser/adapters/permissionParsers.d.ts +2 -2
  93. package/dist/types/components/StorageBrowser/adapters/types.d.ts +3 -3
  94. package/dist/types/components/StorageBrowser/components/ComponentsProvider.d.ts +1 -1
  95. package/dist/types/components/StorageBrowser/components/base/DropdownMenu.d.ts +1 -1
  96. package/dist/types/components/StorageBrowser/components/base/Field.d.ts +1 -1
  97. package/dist/types/components/StorageBrowser/components/base/PaginationButton.d.ts +1 -1
  98. package/dist/types/components/StorageBrowser/components/base/Table.d.ts +1 -1
  99. package/dist/types/components/StorageBrowser/components/composables/ActionDestination.d.ts +1 -1
  100. package/dist/types/components/StorageBrowser/components/composables/ActionsList.d.ts +1 -1
  101. package/dist/types/components/StorageBrowser/components/composables/DataTable/DataTable.d.ts +2 -2
  102. package/dist/types/components/StorageBrowser/components/composables/DataTable/dataCells/ButtonDataCell.d.ts +1 -1
  103. package/dist/types/components/StorageBrowser/components/composables/DataTable/dataCells/TextDataCell.d.ts +1 -1
  104. package/dist/types/components/StorageBrowser/components/composables/DataTable/headers/SortHeader.d.ts +1 -1
  105. package/dist/types/components/StorageBrowser/components/composables/DataTable/index.d.ts +3 -2
  106. package/dist/types/components/StorageBrowser/components/composables/DataTable/types.d.ts +8 -8
  107. package/dist/types/components/StorageBrowser/components/composables/Message.d.ts +1 -1
  108. package/dist/types/components/StorageBrowser/components/composables/context.d.ts +1 -1
  109. package/dist/types/components/StorageBrowser/components/composables/defaults.d.ts +1 -1
  110. package/dist/types/components/StorageBrowser/components/composables/index.d.ts +1 -1
  111. package/dist/types/components/StorageBrowser/components/composables/types.d.ts +20 -20
  112. package/dist/types/components/StorageBrowser/components/defaults.d.ts +1 -1
  113. package/dist/types/components/StorageBrowser/components/elements/IconElement.d.ts +2 -1
  114. package/dist/types/components/StorageBrowser/components/elements/defaults.d.ts +1 -1
  115. package/dist/types/components/StorageBrowser/components/elements/index.d.ts +4 -2
  116. package/dist/types/components/StorageBrowser/components/index.d.ts +9 -6
  117. package/dist/types/components/StorageBrowser/components/types.d.ts +1 -1
  118. package/dist/types/components/StorageBrowser/configuration/context.d.ts +1 -1
  119. package/dist/types/components/StorageBrowser/configuration/createConfigurationProvider.d.ts +1 -1
  120. package/dist/types/components/StorageBrowser/configuration/index.d.ts +1 -1
  121. package/dist/types/components/StorageBrowser/configuration/types.d.ts +3 -3
  122. package/dist/types/components/StorageBrowser/configuration/useGetActionInputCallback.d.ts +1 -1
  123. package/dist/types/components/StorageBrowser/controls/context.d.ts +1 -1
  124. package/dist/types/components/StorageBrowser/controls/hooks/compareFunctions/compareButtonData.d.ts +1 -1
  125. package/dist/types/components/StorageBrowser/controls/hooks/compareFunctions/compareDateData.d.ts +1 -1
  126. package/dist/types/components/StorageBrowser/controls/hooks/compareFunctions/compareNumberData.d.ts +1 -1
  127. package/dist/types/components/StorageBrowser/controls/hooks/compareFunctions/compareTextData.d.ts +1 -1
  128. package/dist/types/components/StorageBrowser/controls/hooks/getNavigationItems.d.ts +2 -2
  129. package/dist/types/components/StorageBrowser/controls/hooks/getNavigationParts.d.ts +1 -1
  130. package/dist/types/components/StorageBrowser/controls/hooks/useActionCancel.d.ts +1 -1
  131. package/dist/types/components/StorageBrowser/controls/hooks/useActionDestination.d.ts +1 -1
  132. package/dist/types/components/StorageBrowser/controls/hooks/useActionExit.d.ts +1 -1
  133. package/dist/types/components/StorageBrowser/controls/hooks/useActionStart.d.ts +1 -1
  134. package/dist/types/components/StorageBrowser/controls/hooks/useActionsList.d.ts +1 -1
  135. package/dist/types/components/StorageBrowser/controls/hooks/useAddFiles.d.ts +1 -1
  136. package/dist/types/components/StorageBrowser/controls/hooks/useAddFolder.d.ts +1 -1
  137. package/dist/types/components/StorageBrowser/controls/hooks/useDataRefresh.d.ts +1 -1
  138. package/dist/types/components/StorageBrowser/controls/hooks/useDataTable.d.ts +1 -1
  139. package/dist/types/components/StorageBrowser/controls/hooks/useDropZone.d.ts +1 -1
  140. package/dist/types/components/StorageBrowser/controls/hooks/useFolderNameField.d.ts +1 -1
  141. package/dist/types/components/StorageBrowser/controls/hooks/useLoadingIndicator.d.ts +1 -1
  142. package/dist/types/components/StorageBrowser/controls/hooks/useMessage.d.ts +1 -1
  143. package/dist/types/components/StorageBrowser/controls/hooks/useNavigation.d.ts +1 -1
  144. package/dist/types/components/StorageBrowser/controls/hooks/useOverwriteToggle.d.ts +1 -1
  145. package/dist/types/components/StorageBrowser/controls/hooks/usePagination.d.ts +1 -1
  146. package/dist/types/components/StorageBrowser/controls/hooks/useResolvedComposable.d.ts +1 -1
  147. package/dist/types/components/StorageBrowser/controls/hooks/useSearchField.d.ts +1 -1
  148. package/dist/types/components/StorageBrowser/controls/hooks/useSearchSubfoldersToggle.d.ts +1 -1
  149. package/dist/types/components/StorageBrowser/controls/hooks/useStatusDisplay.d.ts +1 -1
  150. package/dist/types/components/StorageBrowser/controls/hooks/useTitle.d.ts +1 -1
  151. package/dist/types/components/StorageBrowser/controls/index.d.ts +1 -1
  152. package/dist/types/components/StorageBrowser/controls/types.d.ts +4 -4
  153. package/dist/types/components/StorageBrowser/createStorageBrowser/createProvider.d.ts +2 -2
  154. package/dist/types/components/StorageBrowser/createStorageBrowser/createStorageBrowser.d.ts +1 -1
  155. package/dist/types/components/StorageBrowser/createStorageBrowser/index.d.ts +1 -1
  156. package/dist/types/components/StorageBrowser/createStorageBrowser/types.d.ts +30 -12
  157. package/dist/types/components/StorageBrowser/credentials/context.d.ts +1 -1
  158. package/dist/types/components/StorageBrowser/credentials/credentialsStore/create.d.ts +1 -1
  159. package/dist/types/components/StorageBrowser/credentials/credentialsStore/index.d.ts +1 -1
  160. package/dist/types/components/StorageBrowser/credentials/credentialsStore/registry.d.ts +2 -2
  161. package/dist/types/components/StorageBrowser/credentials/credentialsStore/store.d.ts +2 -2
  162. package/dist/types/components/StorageBrowser/credentials/credentialsStore/types.d.ts +2 -2
  163. package/dist/types/components/StorageBrowser/credentials/index.d.ts +3 -2
  164. package/dist/types/components/StorageBrowser/credentials/types.d.ts +4 -4
  165. package/dist/types/components/StorageBrowser/credentials/useCredentialsStore.d.ts +2 -2
  166. package/dist/types/components/StorageBrowser/displayText/context.d.ts +1 -1
  167. package/dist/types/components/StorageBrowser/displayText/index.d.ts +1 -1
  168. package/dist/types/components/StorageBrowser/displayText/libraries/en/copyView.d.ts +1 -1
  169. package/dist/types/components/StorageBrowser/displayText/libraries/en/createFolderView.d.ts +1 -1
  170. package/dist/types/components/StorageBrowser/displayText/libraries/en/default.d.ts +1 -1
  171. package/dist/types/components/StorageBrowser/displayText/libraries/en/deleteView.d.ts +1 -1
  172. package/dist/types/components/StorageBrowser/displayText/libraries/en/locationDetailView.d.ts +1 -1
  173. package/dist/types/components/StorageBrowser/displayText/libraries/en/locationsView.d.ts +1 -1
  174. package/dist/types/components/StorageBrowser/displayText/libraries/en/shared.d.ts +1 -1
  175. package/dist/types/components/StorageBrowser/displayText/libraries/en/uploadView.d.ts +1 -1
  176. package/dist/types/components/StorageBrowser/displayText/types.d.ts +5 -5
  177. package/dist/types/components/StorageBrowser/displayText/utils.d.ts +1 -1
  178. package/dist/types/components/StorageBrowser/fileItems/constants.d.ts +4 -0
  179. package/dist/types/components/StorageBrowser/fileItems/context.d.ts +6 -0
  180. package/dist/types/components/StorageBrowser/fileItems/fileItemsReducer.d.ts +6 -0
  181. package/dist/types/components/StorageBrowser/fileItems/index.d.ts +3 -0
  182. package/dist/types/components/StorageBrowser/fileItems/types.d.ts +44 -0
  183. package/dist/types/components/StorageBrowser/fileItems/utils.d.ts +5 -0
  184. package/dist/types/components/StorageBrowser/index.d.ts +12 -7
  185. package/dist/types/components/StorageBrowser/locationItems/context.d.ts +1 -1
  186. package/dist/types/components/StorageBrowser/locationItems/index.d.ts +2 -1
  187. package/dist/types/components/StorageBrowser/storage-internal.d.ts +2 -1
  188. package/dist/types/components/StorageBrowser/store/constants.d.ts +1 -1
  189. package/dist/types/components/StorageBrowser/store/context.d.ts +1 -1
  190. package/dist/types/components/StorageBrowser/store/index.d.ts +1 -1
  191. package/dist/types/components/StorageBrowser/store/storeReducer.d.ts +1 -1
  192. package/dist/types/components/StorageBrowser/store/types.d.ts +2 -2
  193. package/dist/types/components/StorageBrowser/store/useStoreReducer.d.ts +1 -1
  194. package/dist/types/components/StorageBrowser/store/utils.d.ts +2 -2
  195. package/dist/types/components/StorageBrowser/store/validateStoreProps.d.ts +1 -1
  196. package/dist/types/components/StorageBrowser/tasks/constants.d.ts +1 -1
  197. package/dist/types/components/StorageBrowser/tasks/index.d.ts +1 -1
  198. package/dist/types/components/StorageBrowser/tasks/types.d.ts +1 -1
  199. package/dist/types/components/StorageBrowser/tasks/utils.d.ts +1 -1
  200. package/dist/types/components/StorageBrowser/useAction/context.d.ts +1 -1
  201. package/dist/types/components/StorageBrowser/useAction/createEnhancedListHandler.d.ts +19 -41
  202. package/dist/types/components/StorageBrowser/useAction/index.d.ts +1 -1
  203. package/dist/types/components/StorageBrowser/useAction/searchItems.d.ts +24 -0
  204. package/dist/types/components/StorageBrowser/useAction/types.d.ts +5 -5
  205. package/dist/types/components/StorageBrowser/useAction/useAction.d.ts +1 -1
  206. package/dist/types/components/StorageBrowser/useAction/useHandler.d.ts +2 -2
  207. package/dist/types/components/StorageBrowser/useAction/useList.d.ts +3 -3
  208. package/dist/types/components/StorageBrowser/useAction/useListFolderItems.d.ts +4 -8
  209. package/dist/types/components/StorageBrowser/useAction/useListLocationItems.d.ts +5 -5
  210. package/dist/types/components/StorageBrowser/useAction/useListLocations.d.ts +4 -4
  211. package/dist/types/components/StorageBrowser/useAction/utils.d.ts +2 -2
  212. package/dist/types/components/StorageBrowser/validators/assertLocationData.d.ts +1 -1
  213. package/dist/types/components/StorageBrowser/validators/assertRegisterAuthListener.d.ts +1 -1
  214. package/dist/types/components/StorageBrowser/validators/index.d.ts +1 -2
  215. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/CopyView.d.ts +1 -1
  216. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/CopyViewProvider.d.ts +1 -1
  217. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/FoldersMessageControl.d.ts +1 -1
  218. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/FoldersPaginationControl.d.ts +1 -1
  219. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/FoldersTableControl.d.ts +2 -2
  220. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/getDestinationPickerTableData.d.ts +1 -1
  221. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/types.d.ts +3 -3
  222. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/useCopyView.d.ts +1 -1
  223. package/dist/types/components/StorageBrowser/views/LocationActionView/CopyView/useFolders.d.ts +2 -2
  224. package/dist/types/components/StorageBrowser/views/LocationActionView/CreateFolderView/CreateFolderView.d.ts +1 -1
  225. package/dist/types/components/StorageBrowser/views/LocationActionView/CreateFolderView/CreateFolderViewProvider.d.ts +1 -1
  226. package/dist/types/components/StorageBrowser/views/LocationActionView/CreateFolderView/types.d.ts +2 -2
  227. package/dist/types/components/StorageBrowser/views/LocationActionView/CreateFolderView/useCreateFolderView.d.ts +1 -1
  228. package/dist/types/components/StorageBrowser/views/LocationActionView/DeleteView/DeleteView.d.ts +1 -1
  229. package/dist/types/components/StorageBrowser/views/LocationActionView/DeleteView/DeleteViewProvider.d.ts +1 -1
  230. package/dist/types/components/StorageBrowser/views/LocationActionView/DeleteView/types.d.ts +2 -2
  231. package/dist/types/components/StorageBrowser/views/LocationActionView/DeleteView/useDeleteView.d.ts +1 -1
  232. package/dist/types/components/StorageBrowser/views/LocationActionView/LocationActionView.d.ts +1 -1
  233. package/dist/types/components/StorageBrowser/views/LocationActionView/UploadView/UploadView.d.ts +1 -1
  234. package/dist/types/components/StorageBrowser/views/LocationActionView/UploadView/UploadViewProvider.d.ts +1 -1
  235. package/dist/types/components/StorageBrowser/views/LocationActionView/UploadView/types.d.ts +3 -3
  236. package/dist/types/components/StorageBrowser/views/LocationActionView/UploadView/useUploadView.d.ts +1 -1
  237. package/dist/types/components/StorageBrowser/views/LocationActionView/index.d.ts +9 -5
  238. package/dist/types/components/StorageBrowser/views/LocationActionView/types.d.ts +4 -4
  239. package/dist/types/components/StorageBrowser/views/LocationDetailView/LocationDetailView.d.ts +1 -1
  240. package/dist/types/components/StorageBrowser/views/LocationDetailView/LocationDetailViewProvider.d.ts +1 -1
  241. package/dist/types/components/StorageBrowser/views/LocationDetailView/getLocationDetailViewTableData/constants.d.ts +1 -1
  242. package/dist/types/components/StorageBrowser/views/LocationDetailView/getLocationDetailViewTableData/getFileRowContent.d.ts +2 -2
  243. package/dist/types/components/StorageBrowser/views/LocationDetailView/getLocationDetailViewTableData/getFolderRowContent.d.ts +1 -1
  244. package/dist/types/components/StorageBrowser/views/LocationDetailView/getLocationDetailViewTableData/getHeaders.d.ts +1 -1
  245. package/dist/types/components/StorageBrowser/views/LocationDetailView/getLocationDetailViewTableData/getLocationDetailViewTableData.d.ts +4 -4
  246. package/dist/types/components/StorageBrowser/views/LocationDetailView/getLocationDetailViewTableData/types.d.ts +1 -1
  247. package/dist/types/components/StorageBrowser/views/LocationDetailView/index.d.ts +1 -1
  248. package/dist/types/components/StorageBrowser/views/LocationDetailView/types.d.ts +4 -4
  249. package/dist/types/components/StorageBrowser/views/LocationDetailView/useLocationDetailView.d.ts +1 -1
  250. package/dist/types/components/StorageBrowser/views/LocationsView/LocationsView.d.ts +1 -1
  251. package/dist/types/components/StorageBrowser/views/LocationsView/LocationsViewProvider.d.ts +1 -1
  252. package/dist/types/components/StorageBrowser/views/LocationsView/getLocationsViewTableData/getHeaders.d.ts +1 -1
  253. package/dist/types/components/StorageBrowser/views/LocationsView/getLocationsViewTableData/getLocationsViewTableData.d.ts +3 -3
  254. package/dist/types/components/StorageBrowser/views/LocationsView/getLocationsViewTableData/types.d.ts +2 -2
  255. package/dist/types/components/StorageBrowser/views/LocationsView/index.d.ts +1 -1
  256. package/dist/types/components/StorageBrowser/views/LocationsView/types.d.ts +2 -2
  257. package/dist/types/components/StorageBrowser/views/LocationsView/useLocationsView.d.ts +2 -2
  258. package/dist/types/components/StorageBrowser/views/context/actionViews.d.ts +2 -2
  259. package/dist/types/components/StorageBrowser/views/context/getViews.d.ts +3 -3
  260. package/dist/types/components/StorageBrowser/views/context/primaryViews.d.ts +2 -2
  261. package/dist/types/components/StorageBrowser/views/context/types.d.ts +1 -1
  262. package/dist/types/components/StorageBrowser/views/context/views.d.ts +3 -3
  263. package/dist/types/components/StorageBrowser/views/hooks/useResolveTableData/index.d.ts +1 -1
  264. package/dist/types/components/StorageBrowser/views/hooks/useResolveTableData/types.d.ts +2 -2
  265. package/dist/types/components/StorageBrowser/views/hooks/useResolveTableData/useResolveTableData.d.ts +2 -2
  266. package/dist/types/components/StorageBrowser/views/index.d.ts +8 -4
  267. package/dist/types/components/StorageBrowser/views/types.d.ts +5 -5
  268. package/dist/types/components/StorageBrowser/views/useView.d.ts +3 -3
  269. package/dist/types/components/StorageBrowser/views/utils/index.d.ts +1 -1
  270. package/dist/types/components/StorageBrowser/views/utils/tableResolvers/__testUtils__/tasks.d.ts +7 -12
  271. package/dist/types/components/StorageBrowser/views/utils/tableResolvers/constants.d.ts +1 -0
  272. package/dist/types/components/StorageBrowser/views/utils/tableResolvers/copyResolvers.d.ts +2 -3
  273. package/dist/types/components/StorageBrowser/views/utils/tableResolvers/deleteResolvers.d.ts +2 -3
  274. package/dist/types/components/StorageBrowser/views/utils/tableResolvers/index.d.ts +3 -2
  275. package/dist/types/components/StorageBrowser/views/utils/tableResolvers/types.d.ts +13 -13
  276. package/dist/types/components/StorageBrowser/views/utils/tableResolvers/uploadResolvers.d.ts +1 -1
  277. package/dist/types/components/StorageBrowser/views/utils/tableResolvers/utils.d.ts +15 -7
  278. package/dist/types/components/StorageImage/index.d.ts +1 -1
  279. package/dist/types/components/StorageImage/types.d.ts +3 -3
  280. package/dist/types/components/StorageManager/StorageManager.d.ts +1 -1
  281. package/dist/types/components/StorageManager/index.d.ts +2 -2
  282. package/dist/types/components/StorageManager/types.d.ts +2 -2
  283. package/dist/types/components/StorageManager/ui/Container/index.d.ts +2 -1
  284. package/dist/types/components/StorageManager/ui/DropZone/DropZone.d.ts +1 -1
  285. package/dist/types/components/StorageManager/ui/DropZone/index.d.ts +1 -1
  286. package/dist/types/components/StorageManager/ui/DropZone/types.d.ts +1 -1
  287. package/dist/types/components/StorageManager/ui/FileList/FileControl.d.ts +1 -1
  288. package/dist/types/components/StorageManager/ui/FileList/FileDetails.d.ts +1 -1
  289. package/dist/types/components/StorageManager/ui/FileList/FileList.d.ts +1 -1
  290. package/dist/types/components/StorageManager/ui/FileList/FileRemoveButton.d.ts +1 -1
  291. package/dist/types/components/StorageManager/ui/FileList/FileStatusMessage.d.ts +1 -1
  292. package/dist/types/components/StorageManager/ui/FileList/FileThumbnail.d.ts +1 -1
  293. package/dist/types/components/StorageManager/ui/FileList/index.d.ts +1 -1
  294. package/dist/types/components/StorageManager/ui/FileList/types.d.ts +2 -2
  295. package/dist/types/components/StorageManager/ui/FileListFooter/FileListFooter.d.ts +1 -1
  296. package/dist/types/components/StorageManager/ui/FileListFooter/index.d.ts +2 -1
  297. package/dist/types/components/StorageManager/ui/FileListHeader/FileListHeader.d.ts +1 -1
  298. package/dist/types/components/StorageManager/ui/FileListHeader/index.d.ts +2 -1
  299. package/dist/types/components/StorageManager/ui/FilePicker/FilePicker.d.ts +1 -1
  300. package/dist/types/components/StorageManager/ui/FilePicker/index.d.ts +2 -1
  301. package/dist/types/components/StorageManager/ui/index.d.ts +12 -6
  302. package/dist/types/components/index.d.ts +6 -3
  303. package/dist/types/index.d.ts +4 -2
  304. package/dist/types/version.d.ts +1 -1
  305. package/package.json +6 -6
  306. package/dist/esm/components/StorageBrowser/files/context.mjs +0 -31
  307. package/dist/esm/components/StorageBrowser/files/utils.mjs +0 -52
  308. package/dist/esm/components/StorageBrowser/validators/isFileTooBig.mjs +0 -4
  309. package/dist/types/components/StorageBrowser/files/context.d.ts +0 -6
  310. package/dist/types/components/StorageBrowser/files/index.d.ts +0 -2
  311. package/dist/types/components/StorageBrowser/files/types.d.ts +0 -28
  312. package/dist/types/components/StorageBrowser/files/utils.d.ts +0 -7
  313. package/dist/types/components/StorageBrowser/validators/isFileTooBig.d.ts +0 -2
@@ -32,7 +32,7 @@ function _interopNamespace(e) {
32
32
 
33
33
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
34
34
 
35
- const VERSION = '3.10.2';
35
+ const VERSION = '3.11.0';
36
36
 
37
37
  const toAccessGrantPermission = (permission) => {
38
38
  let result = '';
@@ -541,9 +541,6 @@ function assertRegisterAuthListener(value) {
541
541
  }
542
542
  }
543
543
 
544
- const UPLOAD_FILE_SIZE_LIMIT = 160 * 1000 * 1000 * 1000;
545
- const isFileTooBig = (file) => file.size > UPLOAD_FILE_SIZE_LIMIT;
546
-
547
544
  const defaultValue$7 = {
548
545
  actionConfigs: undefined,
549
546
  };
@@ -1359,8 +1356,6 @@ const { ActionHandlersProvider, useActionHandlers } = uiReactCore.createContextU
1359
1356
  errorMessage: '`useActionHandlers` must be called from within an `ActionHandlersProvider',
1360
1357
  });
1361
1358
 
1362
- const SEARCH_LIMIT = 10000;
1363
- const SEARCH_PAGE_SIZE = 1000;
1364
1359
  /**
1365
1360
  * Normalizes and converts a string to lower case,
1366
1361
  * handling Unicode characters and locale-specific case mappings.
@@ -1389,10 +1384,10 @@ function normalize(input) {
1389
1384
  function caseInsensitiveIncludes(input, query) {
1390
1385
  return normalize(input).includes(normalize(query));
1391
1386
  }
1392
- function searchItems({ prefix = '', list, options }) {
1387
+ function searchItems({ prefix = '', items, options, }) {
1393
1388
  const { query, filterBy, groupBy } = options;
1394
1389
  // filter keys that match `filterBy` search option
1395
- const filteredItems = list.filter((item) => {
1390
+ const filteredItems = items.filter((item) => {
1396
1391
  const key = typeof filterBy === 'function' ? filterBy(item) : filterBy;
1397
1392
  const path = item[key];
1398
1393
  const suffix = path.slice(prefix.length);
@@ -1433,7 +1428,10 @@ function searchItems({ prefix = '', list, options }) {
1433
1428
  }
1434
1429
  return Array.from(uniquePaths.values());
1435
1430
  }
1436
- const createEnhancedListHandler = (action) => {
1431
+
1432
+ const SEARCH_LIMIT = 10000;
1433
+ const SEARCH_PAGE_SIZE = 1000;
1434
+ const createEnhancedListHandler = (handler) => {
1437
1435
  return async function listActionHandler(prevState, { options, ...input }) {
1438
1436
  const { nextToken: _nextToken, refresh, reset, search, ...rest } = options ?? {};
1439
1437
  if (reset) {
@@ -1441,43 +1439,32 @@ const createEnhancedListHandler = (action) => {
1441
1439
  }
1442
1440
  // collect and filter results on `search`
1443
1441
  if (search) {
1444
- const result = [];
1445
- let nextNextToken = undefined;
1442
+ const items = [];
1443
+ let nextToken = undefined;
1446
1444
  do {
1447
- const output = (await action({
1445
+ const output = await handler({
1448
1446
  ...input,
1449
- options: {
1450
- ...rest,
1451
- pageSize: SEARCH_PAGE_SIZE,
1452
- nextToken: nextNextToken,
1453
- },
1454
- }));
1455
- result.push(...output.items);
1456
- nextNextToken = output.nextToken;
1457
- } while (nextNextToken && result.length < SEARCH_LIMIT);
1447
+ options: { ...rest, pageSize: SEARCH_PAGE_SIZE, nextToken },
1448
+ });
1449
+ items.push(...output.items);
1450
+ // eslint-disable-next-line prefer-destructuring
1451
+ nextToken = output.nextToken;
1452
+ } while (nextToken && items.length < SEARCH_LIMIT);
1458
1453
  return {
1459
- items: searchItems({
1460
- list: result,
1461
- prefix: input.prefix,
1462
- options: search,
1463
- }),
1464
- search: {
1465
- // search limit reached but we still have a next token
1466
- hasExhaustedSearch: !!nextNextToken,
1467
- },
1454
+ items: searchItems({ items, prefix: input.prefix, options: search }),
1455
+ // search limit reached but we still have a next token
1456
+ hasExhaustedSearch: !!nextToken,
1468
1457
  nextToken: undefined,
1469
1458
  };
1470
1459
  }
1471
1460
  // ignore provided `nextToken` on `refresh`
1472
1461
  const nextToken = refresh ? undefined : _nextToken;
1473
- const output = (await action({
1462
+ const output = await handler({
1474
1463
  ...input,
1475
1464
  options: { ...rest, nextToken },
1476
- }));
1477
- return {
1478
- items: [...(refresh ? [] : prevState.items), ...output.items],
1479
- nextToken: output.nextToken,
1480
- };
1465
+ });
1466
+ const items = [...(refresh ? [] : prevState.items), ...output.items];
1467
+ return { ...output, items };
1481
1468
  };
1482
1469
  };
1483
1470
 
@@ -1674,7 +1661,7 @@ function CredentialsProvider({ children, ...props }) {
1674
1661
  return (React__namespace["default"].createElement(CredentialsContext.Provider, { value: value }, children));
1675
1662
  }
1676
1663
 
1677
- const DEFAULT_STATE$1 = {
1664
+ const DEFAULT_STATE$2 = {
1678
1665
  actionType: undefined,
1679
1666
  location: { current: undefined, path: '', key: '' },
1680
1667
  };
@@ -1693,7 +1680,7 @@ function storeReducer(state, action) {
1693
1680
  case 'RESET_LOCATION': {
1694
1681
  if (state.location.current === undefined)
1695
1682
  return state;
1696
- return { ...state, location: DEFAULT_STATE$1.location };
1683
+ return { ...state, location: DEFAULT_STATE$2.location };
1697
1684
  }
1698
1685
  case 'CHANGE_ACTION_TYPE': {
1699
1686
  const { actionType } = action;
@@ -1705,7 +1692,7 @@ function storeReducer(state, action) {
1705
1692
  case 'RESET_ACTION_TYPE': {
1706
1693
  if (state.actionType === undefined)
1707
1694
  return state;
1708
- return { ...state, actionType: DEFAULT_STATE$1.actionType };
1695
+ return { ...state, actionType: DEFAULT_STATE$2.actionType };
1709
1696
  }
1710
1697
  }
1711
1698
  }
@@ -1721,10 +1708,10 @@ function getLocationData(location) {
1721
1708
  }
1722
1709
  function getState(value) {
1723
1710
  if (value === undefined || value === null)
1724
- return DEFAULT_STATE$1;
1711
+ return DEFAULT_STATE$2;
1725
1712
  const current = getLocationData(value.location);
1726
1713
  if (!current)
1727
- return DEFAULT_STATE$1;
1714
+ return DEFAULT_STATE$2;
1728
1715
  const actionType = value?.actionType;
1729
1716
  const path = value?.location?.path ?? '';
1730
1717
  const key = `${current.prefix}${path}`;
@@ -1826,7 +1813,7 @@ function useStoreReducer(props) {
1826
1813
  });
1827
1814
  }
1828
1815
 
1829
- const DEFAULT_VALUE = [DEFAULT_STATE$1, ui.noop];
1816
+ const DEFAULT_VALUE = [DEFAULT_STATE$2, ui.noop];
1830
1817
  const { StoreContext, useStore } = uiReactCore.createContextUtilities({
1831
1818
  contextName: 'Store',
1832
1819
  defaultValue: DEFAULT_VALUE,
@@ -2158,6 +2145,7 @@ const useListLocationItems = () => {
2158
2145
  const enhancedHandler = React__namespace["default"].useMemo(() => createEnhancedListHandler((input) => listLocationItems({ ...input, config: getConfig() })), [getConfig, listLocationItems]);
2159
2146
  return uiReactCore.useAsyncReducer(enhancedHandler, {
2160
2147
  items: [],
2148
+ hasExhaustedSearch: false,
2161
2149
  nextToken: undefined,
2162
2150
  });
2163
2151
  };
@@ -3044,13 +3032,12 @@ const DEFAULT_UPLOAD_VIEW_DISPLAY_TEXT = {
3044
3032
  if (!data?.invalidFiles) {
3045
3033
  return undefined;
3046
3034
  }
3047
- const tooBigFileNames = data.invalidFiles
3048
- .filter(({ file }) => isFileTooBig(file))
3035
+ const invalidFileNames = data.invalidFiles
3049
3036
  .map(({ file }) => file.name)
3050
3037
  .join(', ');
3051
- if (tooBigFileNames) {
3038
+ if (invalidFileNames) {
3052
3039
  return {
3053
- content: `Files larger than 160GB cannot be added to the upload queue: ${tooBigFileNames}`,
3040
+ content: `Files larger than 160GB cannot be added to the upload queue: ${invalidFileNames}`,
3054
3041
  type: 'warning',
3055
3042
  };
3056
3043
  }
@@ -3141,19 +3128,33 @@ const STATUS_ICONS = {
3141
3128
  CANCELED: 'action-canceled',
3142
3129
  QUEUED: 'action-queued',
3143
3130
  };
3131
+ const FILE_DATA_ITEM_TABLE_KEYS = [
3132
+ 'name',
3133
+ 'folder',
3134
+ 'type',
3135
+ 'size',
3136
+ 'status',
3137
+ 'cancel',
3138
+ ];
3144
3139
 
3145
3140
  const getFileType = (value, fallback = '') => value.lastIndexOf('.') !== -1
3146
3141
  ? value.slice(value.lastIndexOf('.') + 1)
3147
3142
  : fallback;
3148
3143
  const getCellName = (value) =>
3149
3144
  // `value.split` always returns an array with at least one entry
3150
- // ensruing `.pop()` will always return a string
3145
+ // ensuring `.pop()` will always return a string
3151
3146
  value.split('/').pop();
3152
3147
  const getUploadCellFolder = ({ data: { file: { webkitRelativePath }, }, }, fallback = '-') => webkitRelativePath
3153
3148
  ? webkitRelativePath.slice(0, webkitRelativePath.lastIndexOf('/') + 1)
3154
3149
  : fallback;
3155
- const getCopyCellFolder = ({ data: { fileKey, sourceKey }, }) => sourceKey.slice(0, -fileKey.length);
3156
- const getDeleteCellFolder = ({ data: { fileKey, key }, }) => key.slice(0, -fileKey.length);
3150
+ const isCopyActionTask = (task) => 'sourceKey' in task.data;
3151
+ const getFileDataCellFolder = (task) => {
3152
+ const targetKey = isCopyActionTask(task)
3153
+ ? task.data.sourceKey
3154
+ : task.data.key;
3155
+ const { fileKey } = task.data;
3156
+ return targetKey.slice(0, -fileKey.length);
3157
+ };
3157
3158
  const getUploadCellProgress = ({ progress, status, }) => {
3158
3159
  // prefer `progress` if available, 1 if status is complete, default 0
3159
3160
  const value = progress ?? (status === 'COMPLETE' ? 1 : 0);
@@ -3161,7 +3162,7 @@ const getUploadCellProgress = ({ progress, status, }) => {
3161
3162
  return { displayValue, value };
3162
3163
  };
3163
3164
  const getFileSize = (value, fallback = '-') => (!value ? fallback : ui.humanFileSize(value, true));
3164
- const getCopyOrDeleteCancelCellContent = (data) => {
3165
+ const getFileDataCancelCellContent = (data) => {
3165
3166
  const { item, props } = data;
3166
3167
  const { cancel, status } = item;
3167
3168
  const { isProcessing, onTaskRemove } = props;
@@ -3187,42 +3188,42 @@ const getCopyOrDeleteCancelCellContent = (data) => {
3187
3188
  };
3188
3189
  return { ariaLabel, isDisabled, onClick, icon: 'cancel' };
3189
3190
  };
3190
-
3191
- const COPY_TABLE_KEYS = [
3192
- 'name',
3193
- 'folder',
3194
- 'type',
3195
- 'size',
3196
- 'status',
3197
- 'cancel',
3198
- ];
3199
- const getCopyCellKey = ({ key, item, }) => `${key}-${item.data.id}`;
3200
- const name$2 = (data) => {
3201
- const key = getCopyCellKey(data);
3191
+ /**
3192
+ * Generates a unique key for a table cell based on the key and item id
3193
+ */
3194
+ const getFileDataCellKey = ({ key, item, }) => `${key}-${item.data.id}`;
3195
+ const name$1 = (data) => {
3196
+ const key = getFileDataCellKey(data);
3202
3197
  const { item } = data;
3203
3198
  const text = item.data.fileKey;
3204
3199
  const icon = STATUS_ICONS[item.status];
3205
3200
  return { key, type: 'text', content: { icon, text } };
3206
3201
  };
3207
- const folder$2 = (data) => {
3208
- const key = getCopyCellKey(data);
3209
- const text = getCopyCellFolder(data.item);
3202
+ const folder$1 = (data) => {
3203
+ const key = getFileDataCellKey(data);
3204
+ const text = getFileDataCellFolder(data.item);
3210
3205
  return { key, type: 'text', content: { text } };
3211
3206
  };
3212
- const type$2 = (data) => {
3213
- const key = getCopyCellKey(data);
3207
+ const type$1 = (data) => {
3208
+ const key = getFileDataCellKey(data);
3214
3209
  const { fileKey } = data.item.data;
3215
3210
  const text = getFileType(fileKey);
3216
3211
  return { key, type: 'text', content: { text } };
3217
3212
  };
3218
- const size$2 = (data) => {
3219
- const key = getCopyCellKey(data);
3213
+ const size$1 = (data) => {
3214
+ const key = getFileDataCellKey(data);
3220
3215
  const { size: value } = data.item.data;
3221
3216
  const displayValue = getFileSize(value);
3222
3217
  return { key, type: 'number', content: { value, displayValue } };
3223
3218
  };
3219
+ const cancel$1 = (data) => {
3220
+ const key = getFileDataCellKey(data);
3221
+ const content = getFileDataCancelCellContent(data);
3222
+ return { key, type: 'button', content };
3223
+ };
3224
+
3224
3225
  const status$2 = (data) => {
3225
- const key = getCopyCellKey(data);
3226
+ const key = getFileDataCellKey(data);
3226
3227
  const { item: { status }, props: { displayText }, } = data;
3227
3228
  const statusLabelKey = STATUS_LABELS[status];
3228
3229
  const text = isCopyViewDisplayTextKey(statusLabelKey)
@@ -3230,18 +3231,13 @@ const status$2 = (data) => {
3230
3231
  : '';
3231
3232
  return { key, type: 'text', content: { text } };
3232
3233
  };
3233
- const cancel$2 = (data) => {
3234
- const key = getCopyCellKey(data);
3235
- const content = getCopyOrDeleteCancelCellContent(data);
3236
- return { key, type: 'button', content };
3237
- };
3238
3234
  const COPY_CELL_RESOLVERS = {
3239
- name: name$2,
3240
- folder: folder$2,
3241
- type: type$2,
3242
- size: size$2,
3235
+ name: name$1,
3236
+ folder: folder$1,
3237
+ type: type$1,
3238
+ size: size$1,
3243
3239
  status: status$2,
3244
- cancel: cancel$2,
3240
+ cancel: cancel$1,
3245
3241
  /**
3246
3242
  * @deprecated
3247
3243
  *
@@ -3273,25 +3269,25 @@ const UPLOAD_TABLE_KEYS = [
3273
3269
  'cancel',
3274
3270
  ];
3275
3271
  const getUploadCellKey = ({ key, item, }) => `${key}-${item.data.id}`;
3276
- const name$1 = (data) => {
3272
+ const name = (data) => {
3277
3273
  const key = getUploadCellKey(data);
3278
3274
  const { item } = data;
3279
3275
  const icon = STATUS_ICONS[item.status];
3280
3276
  const text = getCellName(item.data.key);
3281
3277
  return { key, type: 'text', content: { icon, text } };
3282
3278
  };
3283
- const folder$1 = (data) => {
3279
+ const folder = (data) => {
3284
3280
  const key = getUploadCellKey(data);
3285
3281
  const text = getUploadCellFolder(data.item);
3286
3282
  return { key, type: 'text', content: { text } };
3287
3283
  };
3288
- const type$1 = (data) => {
3284
+ const type = (data) => {
3289
3285
  const key = getUploadCellKey(data);
3290
3286
  const { item } = data;
3291
3287
  const text = getFileType(getCellName(item.data.key));
3292
3288
  return { key, type: 'text', content: { text } };
3293
3289
  };
3294
- const size$1 = (data) => {
3290
+ const size = (data) => {
3295
3291
  const key = getUploadCellKey(data);
3296
3292
  const { size: value } = data.item.data.file;
3297
3293
  const displayValue = getFileSize(value);
@@ -3308,7 +3304,7 @@ const progress = (data) => {
3308
3304
  const content = getUploadCellProgress(data.item);
3309
3305
  return { key, type: 'number', content };
3310
3306
  };
3311
- const cancel$1 = (data) => {
3307
+ const cancel = (data) => {
3312
3308
  const key = getUploadCellKey(data);
3313
3309
  const { item, props } = data;
3314
3310
  const { cancel, data: taskData, status, progress } = item;
@@ -3350,13 +3346,13 @@ const cancel$1 = (data) => {
3350
3346
  return { key, type: 'button', content };
3351
3347
  };
3352
3348
  const UPLOAD_CELL_RESOLVERS = {
3353
- cancel: cancel$1,
3354
- folder: folder$1,
3355
- name: name$1,
3349
+ cancel,
3350
+ folder,
3351
+ name,
3356
3352
  progress,
3357
- size: size$1,
3353
+ size,
3358
3354
  status: status$1,
3359
- type: type$1,
3355
+ type,
3360
3356
  };
3361
3357
  const UPLOAD_TABLE_RESOLVERS = {
3362
3358
  getCell: (data) => UPLOAD_CELL_RESOLVERS[data.key](data),
@@ -3370,41 +3366,8 @@ const UPLOAD_TABLE_RESOLVERS = {
3370
3366
  getRowKey: ({ item }) => item.data.id,
3371
3367
  };
3372
3368
 
3373
- const DELETE_TABLE_KEYS = [
3374
- 'name',
3375
- 'folder',
3376
- 'type',
3377
- 'size',
3378
- 'status',
3379
- 'cancel',
3380
- ];
3381
- const getDeleteCellKey = ({ key, item, }) => `${key}-${item.data.id}`;
3382
- const name = (data) => {
3383
- const key = getDeleteCellKey(data);
3384
- const { item } = data;
3385
- const text = item.data.fileKey;
3386
- const icon = STATUS_ICONS[item.status];
3387
- return { key, type: 'text', content: { icon, text } };
3388
- };
3389
- const folder = (data) => {
3390
- const key = getDeleteCellKey(data);
3391
- const text = getDeleteCellFolder(data.item);
3392
- return { key, type: 'text', content: { text } };
3393
- };
3394
- const type = (data) => {
3395
- const key = getDeleteCellKey(data);
3396
- const { fileKey } = data.item.data;
3397
- const text = getFileType(fileKey);
3398
- return { key, type: 'text', content: { text } };
3399
- };
3400
- const size = (data) => {
3401
- const key = getDeleteCellKey(data);
3402
- const { size: value } = data.item.data;
3403
- const displayValue = getFileSize(value);
3404
- return { key, type: 'number', content: { value, displayValue } };
3405
- };
3406
3369
  const status = (data) => {
3407
- const key = getDeleteCellKey(data);
3370
+ const key = getFileDataCellKey(data);
3408
3371
  const { item: { status }, props: { displayText }, } = data;
3409
3372
  const statusLabelKey = STATUS_LABELS[status];
3410
3373
  const text = isDeleteViewDisplayTextKey(statusLabelKey)
@@ -3412,18 +3375,13 @@ const status = (data) => {
3412
3375
  : '';
3413
3376
  return { key, type: 'text', content: { text } };
3414
3377
  };
3415
- const cancel = (data) => {
3416
- const key = getDeleteCellKey(data);
3417
- const content = getCopyOrDeleteCancelCellContent(data);
3418
- return { key, type: 'button', content };
3419
- };
3420
3378
  const DELETE_CELL_RESOLVERS = {
3421
- name,
3422
- folder,
3423
- type,
3424
- size,
3379
+ name: name$1,
3380
+ folder: folder$1,
3381
+ type: type$1,
3382
+ size: size$1,
3425
3383
  status,
3426
- cancel,
3384
+ cancel: cancel$1,
3427
3385
  /**
3428
3386
  * @deprecated
3429
3387
  *
@@ -3498,14 +3456,43 @@ function UploadViewProvider({ children, ...props }) {
3498
3456
  }, onDropFiles: onDropFiles, onToggleOverwrite: onToggleOverwrite }, children));
3499
3457
  }
3500
3458
 
3459
+ const DEFAULT_STATE$1 = {
3460
+ validItems: undefined,
3461
+ invalidItems: undefined,
3462
+ };
3463
+ const DEFAULT_RESOLVED_FILES = {
3464
+ validFiles: undefined,
3465
+ invalidFiles: undefined,
3466
+ };
3467
+ const UPLOAD_FILE_SIZE_LIMIT = 160 * 1000 * 1000 * 1000;
3468
+
3501
3469
  const compareFileItems = (prev, next) => prev.key.localeCompare(next.key);
3502
- const resolveFiles = (prevItems, files) => {
3470
+ const constructFiles = (files, file) => ui.isUndefined(files) ? [file] : files.concat(file);
3471
+ const defaultValidateFile = (file) => file.size <= UPLOAD_FILE_SIZE_LIMIT;
3472
+ const resolveFiles = (files, validateFile) => {
3473
+ if (!files?.length)
3474
+ return DEFAULT_RESOLVED_FILES;
3475
+ if (!validateFile)
3476
+ return { validFiles: files, invalidFiles: undefined };
3477
+ return files.reduce((acc, file) => {
3478
+ if (validateFile(file)) {
3479
+ acc.validFiles = constructFiles(acc.validFiles, file);
3480
+ }
3481
+ else {
3482
+ acc.invalidFiles = constructFiles(acc.invalidFiles, file);
3483
+ }
3484
+ return acc;
3485
+ },
3486
+ // create new copy of default to be modified
3487
+ { ...DEFAULT_RESOLVED_FILES });
3488
+ };
3489
+ const processFileItems = (prevItems, files) => {
3503
3490
  if (!files?.length)
3504
3491
  return prevItems;
3505
3492
  // construct `nextItems` and filter out existing `file` entries
3506
3493
  const nextItems = files.reduce((items, file) => {
3507
3494
  const { name, webkitRelativePath } = file;
3508
- return prevItems.some(({ file: existing }) => existing.name === name &&
3495
+ return prevItems?.some(({ file: existing }) => existing.name === name &&
3509
3496
  existing.webkitRelativePath === webkitRelativePath)
3510
3497
  ? items
3511
3498
  : items.concat({
@@ -3516,27 +3503,10 @@ const resolveFiles = (prevItems, files) => {
3516
3503
  }, []);
3517
3504
  if (!nextItems.length)
3518
3505
  return prevItems;
3519
- if (!prevItems.length) {
3506
+ if (!prevItems?.length) {
3520
3507
  return nextItems.sort(compareFileItems);
3521
3508
  }
3522
- return prevItems.concat(nextItems).sort(compareFileItems);
3523
- };
3524
- const filesReducer = (prevItems, input) => {
3525
- switch (input.type) {
3526
- case 'ADD_FILE_ITEMS': {
3527
- return resolveFiles(prevItems, input.files);
3528
- }
3529
- case 'REMOVE_FILE_ITEM': {
3530
- const filteredItems = prevItems.filter(({ id }) => id !== input.id);
3531
- return filteredItems.length === prevItems.length
3532
- ? prevItems
3533
- : filteredItems;
3534
- }
3535
- case 'RESET_FILE_ITEMS': {
3536
- return [];
3537
- }
3538
- // TODO: clear message
3539
- }
3509
+ return prevItems?.concat(nextItems).sort(compareFileItems);
3540
3510
  };
3541
3511
  const parseFileSelectParams = (value) => {
3542
3512
  if (ui.isUndefined(value))
@@ -3547,26 +3517,64 @@ const parseFileSelectParams = (value) => {
3547
3517
  return [selectType, !rest?.length ? undefined : { accept: rest.join() }];
3548
3518
  };
3549
3519
 
3550
- const defaultValue$4 = [undefined, ui.noop];
3551
- const { FilesContext, useFiles } = uiReactCore.createContextUtilities({
3552
- contextName: 'Files',
3520
+ const fileItemsReducer = (state, action) => {
3521
+ switch (action.type) {
3522
+ case 'ADD_FILE_ITEMS': {
3523
+ if (!action.validFiles?.length && !action.invalidFiles?.length) {
3524
+ return state;
3525
+ }
3526
+ const validItems = processFileItems(state.validItems, action.validFiles);
3527
+ // `invalidItems` should only track invalid items from latest action taken
3528
+ const invalidItems = processFileItems(undefined, action.invalidFiles);
3529
+ return { validItems, invalidItems };
3530
+ }
3531
+ case 'REMOVE_FILE_ITEM': {
3532
+ const { validItems: prevItems } = state;
3533
+ if (!prevItems?.length)
3534
+ return state;
3535
+ const nextItems = prevItems.filter(({ id }) => id !== action.id);
3536
+ if (nextItems.length === prevItems.length)
3537
+ return state;
3538
+ // `validItems` is strictly undefined if it has 0 file items
3539
+ // otherwise, `validItems` is guaranteed to have at least 1+ file items
3540
+ const validItems = nextItems.length ? nextItems : undefined;
3541
+ return { ...state, validItems };
3542
+ }
3543
+ case 'RESET_FILE_ITEMS': {
3544
+ return DEFAULT_STATE$1;
3545
+ }
3546
+ }
3547
+ };
3548
+
3549
+ const defaultValue$4 = [DEFAULT_STATE$1, ui.noop];
3550
+ const { FileItemsContext, useFileItems } = uiReactCore.createContextUtilities({
3551
+ contextName: 'FileItems',
3553
3552
  defaultValue: defaultValue$4,
3554
3553
  });
3555
- function FilesProvider({ children, }) {
3556
- const [items, dispatch] = React__namespace["default"].useReducer(filesReducer, []);
3554
+ function FileItemsProvider({ children, validateFile, }) {
3555
+ const [state, dispatch] = React__namespace["default"].useReducer(fileItemsReducer, DEFAULT_STATE$1);
3557
3556
  const [fileInput, handleFileSelect] = internal.useFileSelect((nextFiles) => {
3558
- dispatch({ type: 'ADD_FILE_ITEMS', files: nextFiles });
3557
+ dispatch({
3558
+ type: 'ADD_FILE_ITEMS',
3559
+ ...resolveFiles(nextFiles, validateFile),
3560
+ });
3559
3561
  });
3560
3562
  const handleFilesAction = React__namespace["default"].useCallback((action) => {
3561
3563
  if (action.type === 'SELECT_FILES') {
3562
3564
  handleFileSelect(...parseFileSelectParams(action.selectionType));
3563
3565
  }
3566
+ else if (action.type === 'ADD_FILES') {
3567
+ dispatch({
3568
+ type: 'ADD_FILE_ITEMS',
3569
+ ...resolveFiles(action.files, validateFile),
3570
+ });
3571
+ }
3564
3572
  else {
3565
3573
  dispatch(action);
3566
3574
  }
3567
- }, [handleFileSelect]);
3568
- const value = React__namespace["default"].useMemo(() => [items, handleFilesAction], [items, handleFilesAction]);
3569
- return (React__namespace["default"].createElement(FilesContext.Provider, { value: value },
3575
+ }, [handleFileSelect, validateFile]);
3576
+ const value = React__namespace["default"].useMemo(() => [state, handleFilesAction], [state, handleFilesAction]);
3577
+ return (React__namespace["default"].createElement(FileItemsContext.Provider, { value: value },
3570
3578
  fileInput,
3571
3579
  children));
3572
3580
  }
@@ -3576,44 +3584,24 @@ const DEFAULT_OVERWRITE_ENABLED = false;
3576
3584
  const useUploadView = (options) => {
3577
3585
  const { onExit: _onExit } = options ?? {};
3578
3586
  const [{ location }, storeDispatch] = useStore();
3579
- const [files, filesDispatch] = useFiles();
3587
+ const [{ validItems, invalidItems: invalidFiles }, fileItemsDispatch] = useFileItems();
3580
3588
  const { current } = location;
3581
3589
  const [isOverwritingEnabled, setIsOverwritingEnabled] = React__namespace["default"].useState(DEFAULT_OVERWRITE_ENABLED);
3582
- const filesData = React__namespace["default"].useMemo(() => (files ?? [])?.reduce((curr, item) => {
3583
- if (isFileTooBig(item.file)) {
3584
- curr.invalidFiles = ui.isUndefined(curr.invalidFiles)
3585
- ? [item]
3586
- : curr.invalidFiles.concat(item);
3587
- }
3588
- else {
3589
- curr.validFiles = ui.isUndefined(curr.validFiles)
3590
- ? [item]
3591
- : curr.validFiles.concat(item);
3592
- const parsedFileItem = {
3593
- ...item,
3594
- key: `${location.key}${item.key}`,
3595
- };
3596
- curr.data = curr.data.concat({
3597
- ...parsedFileItem,
3598
- preventOverwrite: !isOverwritingEnabled,
3599
- });
3600
- }
3601
- return curr;
3602
- }, { invalidFiles: undefined, validFiles: undefined, data: [] }), [files, isOverwritingEnabled, location.key]);
3603
- const { data, invalidFiles } = filesData;
3604
- const [{ isProcessing, isProcessingComplete, statusCounts, tasks }, handleUploads,] = useAction('upload', { items: data });
3590
+ const items = React__namespace["default"].useMemo(() => (validItems ?? []).map((item) => ({
3591
+ ...item,
3592
+ key: `${location.key}${item.key}`,
3593
+ preventOverwrite: !isOverwritingEnabled,
3594
+ })), [validItems, isOverwritingEnabled, location.key]);
3595
+ const [{ isProcessing, isProcessingComplete, statusCounts, tasks }, handleUploads,] = useAction('upload', { items });
3605
3596
  const onDropFiles = (files) => {
3606
3597
  if (files) {
3607
- filesDispatch({ type: 'ADD_FILE_ITEMS', files });
3598
+ fileItemsDispatch({ type: 'ADD_FILES', files });
3608
3599
  }
3609
3600
  };
3610
3601
  const onSelectFiles = (type) => {
3611
- filesDispatch({ type: 'SELECT_FILES', selectionType: type });
3602
+ fileItemsDispatch({ type: 'SELECT_FILES', selectionType: type });
3612
3603
  };
3613
3604
  const onActionStart = () => {
3614
- invalidFiles?.forEach((file) => {
3615
- filesDispatch({ type: 'REMOVE_FILE_ITEM', id: file.id });
3616
- });
3617
3605
  handleUploads();
3618
3606
  };
3619
3607
  const onActionCancel = () => {
@@ -3621,7 +3609,7 @@ const useUploadView = (options) => {
3621
3609
  };
3622
3610
  const onActionExit = () => {
3623
3611
  // clear files state
3624
- filesDispatch({ type: 'RESET_FILE_ITEMS' });
3612
+ fileItemsDispatch({ type: 'RESET_FILE_ITEMS' });
3625
3613
  // clear selected action
3626
3614
  storeDispatch({ type: 'RESET_ACTION_TYPE' });
3627
3615
  _onExit?.(current);
@@ -3630,7 +3618,7 @@ const useUploadView = (options) => {
3630
3618
  setIsOverwritingEnabled((prev) => !prev);
3631
3619
  };
3632
3620
  const onTaskRemove = ({ data }) => {
3633
- filesDispatch({ type: 'REMOVE_FILE_ITEM', id: data.id });
3621
+ fileItemsDispatch({ type: 'REMOVE_FILE_ITEM', id: data.id });
3634
3622
  };
3635
3623
  return {
3636
3624
  isProcessing,
@@ -3863,7 +3851,7 @@ function CopyViewProvider({ children, ...props }) {
3863
3851
  const { actionCancelLabel, actionDestinationLabel, actionExitLabel, actionStartLabel, getActionCompleteMessage, overwriteWarningMessage, searchPlaceholder, searchSubmitLabel, searchClearLabel, statusDisplayCanceledLabel, statusDisplayCompletedLabel, statusDisplayFailedLabel, statusDisplayQueuedLabel, title, } = displayText;
3864
3852
  const { destination, folders, isProcessing, isProcessingComplete, statusCounts, tasks: items, onActionCancel, onActionExit, onActionStart, onSelectDestination, onTaskRemove, } = props;
3865
3853
  const { hasNextPage, highestPageVisited, hasError: hasFoldersError, message: foldersErrorMessage, query, hasExhaustedSearch, isLoading, page, pageItems, onPaginate, onQuery, onSearchClear, onSearch, onSelectFolder, } = folders;
3866
- const tableData = useResolveTableData(COPY_TABLE_KEYS, COPY_TABLE_RESOLVERS, {
3854
+ const tableData = useResolveTableData(FILE_DATA_ITEM_TABLE_KEYS, COPY_TABLE_RESOLVERS, {
3867
3855
  items,
3868
3856
  props: { displayText, isProcessing, onTaskRemove },
3869
3857
  });
@@ -4015,8 +4003,7 @@ const DEFAULT_REFRESH_OPTIONS = { ...DEFAULT_LIST_OPTIONS$2, refresh: true };
4015
4003
  const useFolders = ({ destination, setDestination, }) => {
4016
4004
  const { current, key } = destination;
4017
4005
  const [{ value, hasError, isLoading, message }, handleList] = useList('folderItems');
4018
- const { items, nextToken, search } = value;
4019
- const { hasExhaustedSearch = false } = search ?? {};
4006
+ const { items, nextToken, hasExhaustedSearch = false } = value;
4020
4007
  const onInitialize = React__namespace["default"].useCallback(() => {
4021
4008
  handleList({
4022
4009
  prefix: key,
@@ -4208,7 +4195,7 @@ function DeleteViewProvider({ children, ...props }) {
4208
4195
  const message = isProcessingComplete
4209
4196
  ? getActionCompleteMessage({ counts: statusCounts })
4210
4197
  : undefined;
4211
- const tableData = useResolveTableData(DELETE_TABLE_KEYS, DELETE_TABLE_RESOLVERS, {
4198
+ const tableData = useResolveTableData(FILE_DATA_ITEM_TABLE_KEYS, DELETE_TABLE_RESOLVERS, {
4212
4199
  items,
4213
4200
  props: { displayText, isProcessing, onTaskRemove },
4214
4201
  });
@@ -4647,7 +4634,7 @@ const useLocationDetailView = (options) => {
4647
4634
  const listOptions = listOptionsRef.current;
4648
4635
  const [{ location, actionType }, storeDispatch] = useStore();
4649
4636
  const [locationItems, locationItemsDispatch] = useLocationItems();
4650
- const filesDispatch = useFiles()[1];
4637
+ const fileItemsDispatch = useFileItems()[1];
4651
4638
  const { current, key } = location;
4652
4639
  const { permissions, prefix } = current ?? {};
4653
4640
  const { fileDataItems } = locationItems;
@@ -4655,8 +4642,7 @@ const useLocationDetailView = (options) => {
4655
4642
  const [{ task }, handleDownload] = useAction('download');
4656
4643
  const [{ value, isLoading, hasError, message }, handleList] = useList('locationItems');
4657
4644
  // set up pagination
4658
- const { items, nextToken, search } = value;
4659
- const { hasExhaustedSearch = false } = search ?? {};
4645
+ const { items, nextToken, hasExhaustedSearch = false } = value;
4660
4646
  const onPaginate = () => {
4661
4647
  if (hasInvalidPrefix || !nextToken)
4662
4648
  return;
@@ -4764,7 +4750,7 @@ const useLocationDetailView = (options) => {
4764
4750
  locationItemsDispatch({ type: 'RESET_LOCATION_ITEMS' });
4765
4751
  },
4766
4752
  onDropFiles: (files) => {
4767
- filesDispatch({ type: 'ADD_FILE_ITEMS', files });
4753
+ fileItemsDispatch({ type: 'ADD_FILES', files });
4768
4754
  const actionType = 'upload';
4769
4755
  storeDispatch({ type: 'CHANGE_ACTION_TYPE', actionType });
4770
4756
  options?.onActionSelect?.(actionType);
@@ -4991,9 +4977,8 @@ const useLocationsView = (options) => {
4991
4977
  const [state, handleList] = useList('locations');
4992
4978
  const dispatchStoreAction = useStore()[1];
4993
4979
  const { value, message, hasError, isLoading } = state;
4994
- const { items, nextToken, search } = value;
4980
+ const { items, nextToken, hasExhaustedSearch = false } = value;
4995
4981
  const hasNextToken = !!nextToken;
4996
- const { hasExhaustedSearch = false } = search ?? {};
4997
4982
  const onNavigate = options?.onNavigate;
4998
4983
  const initialValues = options?.initialValues ?? {};
4999
4984
  const listOptionsRef = React__namespace["default"].useRef({
@@ -5169,7 +5154,7 @@ const useView = (type) => {
5169
5154
  return USE_VIEW_HOOKS[type]();
5170
5155
  };
5171
5156
 
5172
- function createProvider({ actions, components, config, }) {
5157
+ function createProvider({ actions, components, config, options, }) {
5173
5158
  const { accountId, customEndpoint, registerAuthListener, getLocationCredentials, region, listLocations, } = config;
5174
5159
  const resolvedActions = {
5175
5160
  default: {
@@ -5198,6 +5183,7 @@ function createProvider({ actions, components, config, }) {
5198
5183
  // override components
5199
5184
  ...components,
5200
5185
  };
5186
+ const { validateFile = defaultValidateFile } = options ?? {};
5201
5187
  /**
5202
5188
  * Provides state, configuration and action values that are shared between
5203
5189
  * the primary View components
@@ -5211,7 +5197,7 @@ function createProvider({ actions, components, config, }) {
5211
5197
  React__namespace["default"].createElement(ViewsProvider, { actions: resolvedActions, views: views },
5212
5198
  React__namespace["default"].createElement(ComponentsProvider, { composables: composables },
5213
5199
  React__namespace["default"].createElement(LocationItemsProvider, null,
5214
- React__namespace["default"].createElement(FilesProvider, null, children))))))))));
5200
+ React__namespace["default"].createElement(FileItemsProvider, { validateFile: validateFile }, children))))))))));
5215
5201
  }
5216
5202
  return Provider;
5217
5203
  }