@webiny/app-trash-bin 6.3.0-beta.4 → 6.4.0-beta.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 (339) hide show
  1. package/Domain/Models/TrashBinItem/ITrashBinItemMapper.js +0 -3
  2. package/Domain/Models/TrashBinItem/TrashBinItem.js +13 -12
  3. package/Domain/Models/TrashBinItem/TrashBinItem.js.map +1 -1
  4. package/Domain/Models/TrashBinItem/index.js +0 -2
  5. package/Domain/Models/index.js +0 -2
  6. package/Domain/Repositories/Search/ISearchRepository.js +0 -3
  7. package/Domain/Repositories/Search/SearchRepository.js +12 -11
  8. package/Domain/Repositories/Search/SearchRepository.js.map +1 -1
  9. package/Domain/Repositories/Search/SearchRepositoryFactory.js +13 -12
  10. package/Domain/Repositories/Search/SearchRepositoryFactory.js.map +1 -1
  11. package/Domain/Repositories/Search/index.js +0 -2
  12. package/Domain/Repositories/SelectedItems/ISelectedItemsRepository.js +0 -3
  13. package/Domain/Repositories/SelectedItems/SelectedItemsRepository.js +24 -23
  14. package/Domain/Repositories/SelectedItems/SelectedItemsRepository.js.map +1 -1
  15. package/Domain/Repositories/SelectedItems/SelectedItemsRepositoryFactory.js +13 -12
  16. package/Domain/Repositories/SelectedItems/SelectedItemsRepositoryFactory.js.map +1 -1
  17. package/Domain/Repositories/SelectedItems/index.js +0 -2
  18. package/Domain/Repositories/Sorting/SortingRepositoryWithDefaults.js +16 -17
  19. package/Domain/Repositories/Sorting/SortingRepositoryWithDefaults.js.map +1 -1
  20. package/Domain/Repositories/Sorting/index.js +0 -2
  21. package/Domain/Repositories/TrashBinItems/ITrashBinItemsRepository.js +0 -3
  22. package/Domain/Repositories/TrashBinItems/TrashBinItemMapper.js +16 -15
  23. package/Domain/Repositories/TrashBinItems/TrashBinItemMapper.js.map +1 -1
  24. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepository.js +81 -90
  25. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepository.js.map +1 -1
  26. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepositoryFactory.js +13 -12
  27. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepositoryFactory.js.map +1 -1
  28. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepositoryWithLoading.js +34 -33
  29. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepositoryWithLoading.js.map +1 -1
  30. package/Domain/Repositories/TrashBinItems/index.js +0 -2
  31. package/Domain/Repositories/index.js +0 -3
  32. package/Domain/index.js +0 -2
  33. package/Gateways/TrashBinBulkActions/ITrashBinBulkActionsGateway.js +0 -3
  34. package/Gateways/TrashBinBulkActions/index.js +0 -3
  35. package/Gateways/TrashBinDeleteItem/ITrashBinDeleteItemGateway.js +0 -3
  36. package/Gateways/TrashBinDeleteItem/index.js +0 -3
  37. package/Gateways/TrashBinListItems/ITrashBinListGateway.js +0 -3
  38. package/Gateways/TrashBinListItems/index.js +0 -3
  39. package/Gateways/TrashBinRestoreItem/ITrashBinRestoreItemGateway.js +0 -3
  40. package/Gateways/TrashBinRestoreItem/index.js +0 -3
  41. package/Gateways/index.js +0 -3
  42. package/Presentation/TrashBin/TrashBin.js +51 -40
  43. package/Presentation/TrashBin/TrashBin.js.map +1 -1
  44. package/Presentation/TrashBin/TrashBin.test.js +778 -752
  45. package/Presentation/TrashBin/TrashBin.test.js.map +1 -1
  46. package/Presentation/TrashBin/TrashBinControllers.js +53 -75
  47. package/Presentation/TrashBin/TrashBinControllers.js.map +1 -1
  48. package/Presentation/TrashBin/TrashBinPresenter.js +50 -53
  49. package/Presentation/TrashBin/TrashBinPresenter.js.map +1 -1
  50. package/Presentation/TrashBin/controllers/BulkAction/BulkActionsController.js +10 -9
  51. package/Presentation/TrashBin/controllers/BulkAction/BulkActionsController.js.map +1 -1
  52. package/Presentation/TrashBin/controllers/BulkAction/IBulkActionsController.js +0 -3
  53. package/Presentation/TrashBin/controllers/BulkAction/index.js +0 -2
  54. package/Presentation/TrashBin/controllers/DeleteItem/DeleteItemController.js +9 -8
  55. package/Presentation/TrashBin/controllers/DeleteItem/DeleteItemController.js.map +1 -1
  56. package/Presentation/TrashBin/controllers/DeleteItem/IDeleteItemController.js +0 -3
  57. package/Presentation/TrashBin/controllers/DeleteItem/index.js +0 -2
  58. package/Presentation/TrashBin/controllers/GetRestoredItemById/GetRestoredItemByIdController.js +11 -10
  59. package/Presentation/TrashBin/controllers/GetRestoredItemById/GetRestoredItemByIdController.js.map +1 -1
  60. package/Presentation/TrashBin/controllers/GetRestoredItemById/IGetRestoredItemByIdController.js +0 -3
  61. package/Presentation/TrashBin/controllers/GetRestoredItemById/index.js +0 -2
  62. package/Presentation/TrashBin/controllers/ListItems/IListItemsController.js +0 -3
  63. package/Presentation/TrashBin/controllers/ListItems/ListItemsController.js +9 -8
  64. package/Presentation/TrashBin/controllers/ListItems/ListItemsController.js.map +1 -1
  65. package/Presentation/TrashBin/controllers/ListItems/index.js +0 -2
  66. package/Presentation/TrashBin/controllers/ListMoreItems/IListMoreItemsController.js +0 -3
  67. package/Presentation/TrashBin/controllers/ListMoreItems/ListMoreItemsController.js +9 -8
  68. package/Presentation/TrashBin/controllers/ListMoreItems/ListMoreItemsController.js.map +1 -1
  69. package/Presentation/TrashBin/controllers/ListMoreItems/index.js +0 -2
  70. package/Presentation/TrashBin/controllers/RestoreItem/IRestoreItemController.js +0 -3
  71. package/Presentation/TrashBin/controllers/RestoreItem/RestoreItemController.js +9 -8
  72. package/Presentation/TrashBin/controllers/RestoreItem/RestoreItemController.js.map +1 -1
  73. package/Presentation/TrashBin/controllers/RestoreItem/index.js +0 -2
  74. package/Presentation/TrashBin/controllers/SearchItems/ISearchItemsController.js +0 -3
  75. package/Presentation/TrashBin/controllers/SearchItems/SearchItemsController.js +12 -11
  76. package/Presentation/TrashBin/controllers/SearchItems/SearchItemsController.js.map +1 -1
  77. package/Presentation/TrashBin/controllers/SearchItems/index.js +0 -2
  78. package/Presentation/TrashBin/controllers/SelectAllItems/ISelectAllItemsController.js +0 -3
  79. package/Presentation/TrashBin/controllers/SelectAllItems/SelectAllItemsController.js +9 -8
  80. package/Presentation/TrashBin/controllers/SelectAllItems/SelectAllItemsController.js.map +1 -1
  81. package/Presentation/TrashBin/controllers/SelectAllItems/index.js +0 -2
  82. package/Presentation/TrashBin/controllers/SelectItems/ISelectItemsController.js +0 -3
  83. package/Presentation/TrashBin/controllers/SelectItems/SelectItemsController.js +10 -9
  84. package/Presentation/TrashBin/controllers/SelectItems/SelectItemsController.js.map +1 -1
  85. package/Presentation/TrashBin/controllers/SelectItems/index.js +0 -2
  86. package/Presentation/TrashBin/controllers/SortItems/ISortItemsController.d.ts +2 -2
  87. package/Presentation/TrashBin/controllers/SortItems/ISortItemsController.js +0 -3
  88. package/Presentation/TrashBin/controllers/SortItems/SortItemsController.d.ts +2 -2
  89. package/Presentation/TrashBin/controllers/SortItems/SortItemsController.js +13 -14
  90. package/Presentation/TrashBin/controllers/SortItems/SortItemsController.js.map +1 -1
  91. package/Presentation/TrashBin/controllers/SortItems/index.js +0 -2
  92. package/Presentation/TrashBin/controllers/UnselectAllItems/IUnselectAllItemsController.js +0 -3
  93. package/Presentation/TrashBin/controllers/UnselectAllItems/UnselectAllItemsController.js +9 -8
  94. package/Presentation/TrashBin/controllers/UnselectAllItems/UnselectAllItemsController.js.map +1 -1
  95. package/Presentation/TrashBin/controllers/UnselectAllItems/index.js +0 -2
  96. package/Presentation/TrashBin/controllers/index.js +0 -2
  97. package/Presentation/TrashBin/index.js +0 -2
  98. package/Presentation/TrashBinConfigs/TrashBinConfigs.js +49 -52
  99. package/Presentation/TrashBinConfigs/TrashBinConfigs.js.map +1 -1
  100. package/Presentation/TrashBinConfigs/index.js +0 -2
  101. package/Presentation/TrashBinRenderer/TrashBinRenderer.js +10 -15
  102. package/Presentation/TrashBinRenderer/TrashBinRenderer.js.map +1 -1
  103. package/Presentation/TrashBinRenderer/index.js +0 -2
  104. package/Presentation/abstractions/ITrashBinControllers.js +0 -3
  105. package/Presentation/abstractions/ITrashBinPresenter.js +0 -3
  106. package/Presentation/abstractions/index.js +0 -3
  107. package/Presentation/components/Actions/DeleteItem/DeleteItem.js +15 -20
  108. package/Presentation/components/Actions/DeleteItem/DeleteItem.js.map +1 -1
  109. package/Presentation/components/Actions/DeleteItem/index.js +0 -2
  110. package/Presentation/components/Actions/RestoreItem/RestoreItem.js +14 -19
  111. package/Presentation/components/Actions/RestoreItem/RestoreItem.js.map +1 -1
  112. package/Presentation/components/Actions/RestoreItem/index.js +0 -2
  113. package/Presentation/components/Actions/index.js +0 -2
  114. package/Presentation/components/BottomInfoBar/BottomInfoBar.js +15 -16
  115. package/Presentation/components/BottomInfoBar/BottomInfoBar.js.map +1 -1
  116. package/Presentation/components/BottomInfoBar/ListMeta.js +10 -13
  117. package/Presentation/components/BottomInfoBar/ListMeta.js.map +1 -1
  118. package/Presentation/components/BottomInfoBar/ListStatus.js +13 -16
  119. package/Presentation/components/BottomInfoBar/ListStatus.js.map +1 -1
  120. package/Presentation/components/BottomInfoBar/index.js +0 -2
  121. package/Presentation/components/BulkActions/BulkActions/BulkActions.js +47 -56
  122. package/Presentation/components/BulkActions/BulkActions/BulkActions.js.map +1 -1
  123. package/Presentation/components/BulkActions/BulkActions/index.js +0 -2
  124. package/Presentation/components/BulkActions/DeleteItems/DeleteItems.js +58 -73
  125. package/Presentation/components/BulkActions/DeleteItems/DeleteItems.js.map +1 -1
  126. package/Presentation/components/BulkActions/DeleteItems/index.js +0 -2
  127. package/Presentation/components/BulkActions/RestoreItems/RestoreItems.js +67 -83
  128. package/Presentation/components/BulkActions/RestoreItems/RestoreItems.js.map +1 -1
  129. package/Presentation/components/BulkActions/RestoreItems/RestoreItemsReportMessage.js +9 -10
  130. package/Presentation/components/BulkActions/RestoreItems/RestoreItemsReportMessage.js.map +1 -1
  131. package/Presentation/components/BulkActions/RestoreItems/index.js +0 -2
  132. package/Presentation/components/BulkActions/index.js +0 -2
  133. package/Presentation/components/Cells/CellActions/CellActions.js +12 -17
  134. package/Presentation/components/Cells/CellActions/CellActions.js.map +1 -1
  135. package/Presentation/components/Cells/CellActions/index.js +0 -2
  136. package/Presentation/components/Cells/CellCreatedBy/CellCreatedBy.js +7 -12
  137. package/Presentation/components/Cells/CellCreatedBy/CellCreatedBy.js.map +1 -1
  138. package/Presentation/components/Cells/CellCreatedBy/index.js +0 -2
  139. package/Presentation/components/Cells/CellDeletedBy/CellDeletedBy.js +7 -12
  140. package/Presentation/components/Cells/CellDeletedBy/CellDeletedBy.js.map +1 -1
  141. package/Presentation/components/Cells/CellDeletedBy/index.js +0 -2
  142. package/Presentation/components/Cells/CellDeletedOn/CellDeletedOn.js +10 -15
  143. package/Presentation/components/Cells/CellDeletedOn/CellDeletedOn.js.map +1 -1
  144. package/Presentation/components/Cells/CellDeletedOn/index.js +0 -2
  145. package/Presentation/components/Cells/CellTitle/CellTitle.js +16 -19
  146. package/Presentation/components/Cells/CellTitle/CellTitle.js.map +1 -1
  147. package/Presentation/components/Cells/CellTitle/index.js +0 -2
  148. package/Presentation/components/Cells/index.js +0 -2
  149. package/Presentation/components/Empty/Empty.js +19 -20
  150. package/Presentation/components/Empty/Empty.js.map +1 -1
  151. package/Presentation/components/Empty/index.js +0 -2
  152. package/Presentation/components/SearchInput/SearchInput.js +25 -32
  153. package/Presentation/components/SearchInput/SearchInput.js.map +1 -1
  154. package/Presentation/components/SearchInput/index.js +0 -2
  155. package/Presentation/components/Table/Table.js +23 -28
  156. package/Presentation/components/Table/Table.js.map +1 -1
  157. package/Presentation/components/Table/index.js +0 -2
  158. package/Presentation/components/Title/Title.js +9 -12
  159. package/Presentation/components/Title/Title.js.map +1 -1
  160. package/Presentation/components/Title/index.js +0 -2
  161. package/Presentation/components/TrashBinOverlay/TrashBinOverlay.js +18 -24
  162. package/Presentation/components/TrashBinOverlay/TrashBinOverlay.js.map +1 -1
  163. package/Presentation/components/TrashBinOverlay/index.js +0 -2
  164. package/Presentation/configs/index.js +0 -2
  165. package/Presentation/configs/list/Browser/BulkAction.js +56 -66
  166. package/Presentation/configs/list/Browser/BulkAction.js.map +1 -1
  167. package/Presentation/configs/list/Browser/EntryAction.js +8 -11
  168. package/Presentation/configs/list/Browser/EntryAction.js.map +1 -1
  169. package/Presentation/configs/list/Browser/Table/Column.js +7 -10
  170. package/Presentation/configs/list/Browser/Table/Column.js.map +1 -1
  171. package/Presentation/configs/list/Browser/Table/Sorting.js +4 -7
  172. package/Presentation/configs/list/Browser/Table/Sorting.js.map +1 -1
  173. package/Presentation/configs/list/Browser/Table/index.js +4 -3
  174. package/Presentation/configs/list/Browser/Table/index.js.map +1 -1
  175. package/Presentation/configs/list/Browser/index.js +5 -4
  176. package/Presentation/configs/list/Browser/index.js.map +1 -1
  177. package/Presentation/configs/list/TrashBinListConfig.js +24 -23
  178. package/Presentation/configs/list/TrashBinListConfig.js.map +1 -1
  179. package/Presentation/configs/list/index.js +0 -2
  180. package/Presentation/hooks/index.js +0 -2
  181. package/Presentation/hooks/useDeleteTrashBinItem.js +22 -27
  182. package/Presentation/hooks/useDeleteTrashBinItem.js.map +1 -1
  183. package/Presentation/hooks/useRestoreTrashBinItem.js +28 -36
  184. package/Presentation/hooks/useRestoreTrashBinItem.js.map +1 -1
  185. package/Presentation/hooks/useTrashBin.js +68 -44
  186. package/Presentation/hooks/useTrashBin.js.map +1 -1
  187. package/Presentation/hooks/useTrashBinItem.js +4 -6
  188. package/Presentation/hooks/useTrashBinItem.js.map +1 -1
  189. package/Presentation/index.js +36 -43
  190. package/Presentation/index.js.map +1 -1
  191. package/UseCases/BulkAction/BulkActionUseCase.js +9 -8
  192. package/UseCases/BulkAction/BulkActionUseCase.js.map +1 -1
  193. package/UseCases/BulkAction/IBulkActionUseCase.js +0 -3
  194. package/UseCases/BulkAction/index.js +0 -2
  195. package/UseCases/DeleteItem/DeleteItemUseCase.js +9 -8
  196. package/UseCases/DeleteItem/DeleteItemUseCase.js.map +1 -1
  197. package/UseCases/DeleteItem/IDeleteItemUseCase.js +0 -3
  198. package/UseCases/DeleteItem/index.js +0 -2
  199. package/UseCases/GetRestoredItem/GetRestoredItemUseCase.js +10 -9
  200. package/UseCases/GetRestoredItem/GetRestoredItemUseCase.js.map +1 -1
  201. package/UseCases/GetRestoredItem/IGetRestoredItemUseCase.js +0 -3
  202. package/UseCases/GetRestoredItem/index.js +0 -2
  203. package/UseCases/ListItems/IListItemsUseCase.js +0 -3
  204. package/UseCases/ListItems/ListItemsUseCase.js +11 -10
  205. package/UseCases/ListItems/ListItemsUseCase.js.map +1 -1
  206. package/UseCases/ListItems/ListItemsUseCaseWithSearch.js +14 -13
  207. package/UseCases/ListItems/ListItemsUseCaseWithSearch.js.map +1 -1
  208. package/UseCases/ListItems/ListItemsUseCaseWithSorting.js +14 -13
  209. package/UseCases/ListItems/ListItemsUseCaseWithSorting.js.map +1 -1
  210. package/UseCases/ListItems/index.js +0 -2
  211. package/UseCases/ListMoreItems/IListMoreItemsUseCase.js +0 -3
  212. package/UseCases/ListMoreItems/ListMoreItemsUseCase.js +9 -8
  213. package/UseCases/ListMoreItems/ListMoreItemsUseCase.js.map +1 -1
  214. package/UseCases/ListMoreItems/index.js +0 -2
  215. package/UseCases/RestoreItem/IRestoreItemUseCase.js +0 -3
  216. package/UseCases/RestoreItem/RestoreItemUseCase.js +9 -8
  217. package/UseCases/RestoreItem/RestoreItemUseCase.js.map +1 -1
  218. package/UseCases/RestoreItem/index.js +0 -2
  219. package/UseCases/SearchItems/ISearchItemsUseCase.js +0 -3
  220. package/UseCases/SearchItems/SearchItemsUseCase.js +9 -8
  221. package/UseCases/SearchItems/SearchItemsUseCase.js.map +1 -1
  222. package/UseCases/SearchItems/index.js +0 -2
  223. package/UseCases/SelectAllItems/ISelectAllItemsUseCase.js +0 -3
  224. package/UseCases/SelectAllItems/SelectAllItemsUseCase.js +9 -8
  225. package/UseCases/SelectAllItems/SelectAllItemsUseCase.js.map +1 -1
  226. package/UseCases/SelectAllItems/index.js +0 -2
  227. package/UseCases/SelectItems/ISelectItemsUseCase.js +0 -3
  228. package/UseCases/SelectItems/SelectItemsUseCase.js +9 -8
  229. package/UseCases/SelectItems/SelectItemsUseCase.js.map +1 -1
  230. package/UseCases/SelectItems/index.js +0 -2
  231. package/UseCases/SortItems/ISortItemsUseCase.js +0 -3
  232. package/UseCases/SortItems/SortItemsUseCase.js +9 -8
  233. package/UseCases/SortItems/SortItemsUseCase.js.map +1 -1
  234. package/UseCases/SortItems/index.js +0 -2
  235. package/UseCases/UnSelectAllItems/IUnselectAllItemsUseCase.js +0 -3
  236. package/UseCases/UnSelectAllItems/UnselectAllItemsUseCase.js +9 -8
  237. package/UseCases/UnSelectAllItems/UnselectAllItemsUseCase.js.map +1 -1
  238. package/UseCases/UnSelectAllItems/index.js +0 -2
  239. package/UseCases/index.js +0 -2
  240. package/index.js +0 -2
  241. package/package.json +13 -14
  242. package/types.js +7 -6
  243. package/types.js.map +1 -1
  244. package/Domain/Models/TrashBinItem/ITrashBinItemMapper.js.map +0 -1
  245. package/Domain/Models/TrashBinItem/index.js.map +0 -1
  246. package/Domain/Models/index.js.map +0 -1
  247. package/Domain/Repositories/Search/ISearchRepository.js.map +0 -1
  248. package/Domain/Repositories/Search/index.js.map +0 -1
  249. package/Domain/Repositories/SelectedItems/ISelectedItemsRepository.js.map +0 -1
  250. package/Domain/Repositories/SelectedItems/index.js.map +0 -1
  251. package/Domain/Repositories/Sorting/index.js.map +0 -1
  252. package/Domain/Repositories/TrashBinItems/ITrashBinItemsRepository.js.map +0 -1
  253. package/Domain/Repositories/TrashBinItems/index.js.map +0 -1
  254. package/Domain/Repositories/index.js.map +0 -1
  255. package/Domain/index.js.map +0 -1
  256. package/Gateways/TrashBinBulkActions/ITrashBinBulkActionsGateway.js.map +0 -1
  257. package/Gateways/TrashBinBulkActions/index.js.map +0 -1
  258. package/Gateways/TrashBinDeleteItem/ITrashBinDeleteItemGateway.js.map +0 -1
  259. package/Gateways/TrashBinDeleteItem/index.js.map +0 -1
  260. package/Gateways/TrashBinListItems/ITrashBinListGateway.js.map +0 -1
  261. package/Gateways/TrashBinListItems/index.js.map +0 -1
  262. package/Gateways/TrashBinRestoreItem/ITrashBinRestoreItemGateway.js.map +0 -1
  263. package/Gateways/TrashBinRestoreItem/index.js.map +0 -1
  264. package/Gateways/index.js.map +0 -1
  265. package/Presentation/TrashBin/controllers/BulkAction/IBulkActionsController.js.map +0 -1
  266. package/Presentation/TrashBin/controllers/BulkAction/index.js.map +0 -1
  267. package/Presentation/TrashBin/controllers/DeleteItem/IDeleteItemController.js.map +0 -1
  268. package/Presentation/TrashBin/controllers/DeleteItem/index.js.map +0 -1
  269. package/Presentation/TrashBin/controllers/GetRestoredItemById/IGetRestoredItemByIdController.js.map +0 -1
  270. package/Presentation/TrashBin/controllers/GetRestoredItemById/index.js.map +0 -1
  271. package/Presentation/TrashBin/controllers/ListItems/IListItemsController.js.map +0 -1
  272. package/Presentation/TrashBin/controllers/ListItems/index.js.map +0 -1
  273. package/Presentation/TrashBin/controllers/ListMoreItems/IListMoreItemsController.js.map +0 -1
  274. package/Presentation/TrashBin/controllers/ListMoreItems/index.js.map +0 -1
  275. package/Presentation/TrashBin/controllers/RestoreItem/IRestoreItemController.js.map +0 -1
  276. package/Presentation/TrashBin/controllers/RestoreItem/index.js.map +0 -1
  277. package/Presentation/TrashBin/controllers/SearchItems/ISearchItemsController.js.map +0 -1
  278. package/Presentation/TrashBin/controllers/SearchItems/index.js.map +0 -1
  279. package/Presentation/TrashBin/controllers/SelectAllItems/ISelectAllItemsController.js.map +0 -1
  280. package/Presentation/TrashBin/controllers/SelectAllItems/index.js.map +0 -1
  281. package/Presentation/TrashBin/controllers/SelectItems/ISelectItemsController.js.map +0 -1
  282. package/Presentation/TrashBin/controllers/SelectItems/index.js.map +0 -1
  283. package/Presentation/TrashBin/controllers/SortItems/ISortItemsController.js.map +0 -1
  284. package/Presentation/TrashBin/controllers/SortItems/index.js.map +0 -1
  285. package/Presentation/TrashBin/controllers/UnselectAllItems/IUnselectAllItemsController.js.map +0 -1
  286. package/Presentation/TrashBin/controllers/UnselectAllItems/index.js.map +0 -1
  287. package/Presentation/TrashBin/controllers/index.js.map +0 -1
  288. package/Presentation/TrashBin/index.js.map +0 -1
  289. package/Presentation/TrashBinConfigs/index.js.map +0 -1
  290. package/Presentation/TrashBinRenderer/index.js.map +0 -1
  291. package/Presentation/abstractions/ITrashBinControllers.js.map +0 -1
  292. package/Presentation/abstractions/ITrashBinPresenter.js.map +0 -1
  293. package/Presentation/abstractions/index.js.map +0 -1
  294. package/Presentation/components/Actions/DeleteItem/index.js.map +0 -1
  295. package/Presentation/components/Actions/RestoreItem/index.js.map +0 -1
  296. package/Presentation/components/Actions/index.js.map +0 -1
  297. package/Presentation/components/BottomInfoBar/index.js.map +0 -1
  298. package/Presentation/components/BulkActions/BulkActions/index.js.map +0 -1
  299. package/Presentation/components/BulkActions/DeleteItems/index.js.map +0 -1
  300. package/Presentation/components/BulkActions/RestoreItems/index.js.map +0 -1
  301. package/Presentation/components/BulkActions/index.js.map +0 -1
  302. package/Presentation/components/Cells/CellActions/index.js.map +0 -1
  303. package/Presentation/components/Cells/CellCreatedBy/index.js.map +0 -1
  304. package/Presentation/components/Cells/CellDeletedBy/index.js.map +0 -1
  305. package/Presentation/components/Cells/CellDeletedOn/index.js.map +0 -1
  306. package/Presentation/components/Cells/CellTitle/index.js.map +0 -1
  307. package/Presentation/components/Cells/index.js.map +0 -1
  308. package/Presentation/components/Empty/index.js.map +0 -1
  309. package/Presentation/components/SearchInput/index.js.map +0 -1
  310. package/Presentation/components/Table/index.js.map +0 -1
  311. package/Presentation/components/Title/index.js.map +0 -1
  312. package/Presentation/components/TrashBinOverlay/index.js.map +0 -1
  313. package/Presentation/configs/index.js.map +0 -1
  314. package/Presentation/configs/list/index.js.map +0 -1
  315. package/Presentation/hooks/index.js.map +0 -1
  316. package/UseCases/BulkAction/IBulkActionUseCase.js.map +0 -1
  317. package/UseCases/BulkAction/index.js.map +0 -1
  318. package/UseCases/DeleteItem/IDeleteItemUseCase.js.map +0 -1
  319. package/UseCases/DeleteItem/index.js.map +0 -1
  320. package/UseCases/GetRestoredItem/IGetRestoredItemUseCase.js.map +0 -1
  321. package/UseCases/GetRestoredItem/index.js.map +0 -1
  322. package/UseCases/ListItems/IListItemsUseCase.js.map +0 -1
  323. package/UseCases/ListItems/index.js.map +0 -1
  324. package/UseCases/ListMoreItems/IListMoreItemsUseCase.js.map +0 -1
  325. package/UseCases/ListMoreItems/index.js.map +0 -1
  326. package/UseCases/RestoreItem/IRestoreItemUseCase.js.map +0 -1
  327. package/UseCases/RestoreItem/index.js.map +0 -1
  328. package/UseCases/SearchItems/ISearchItemsUseCase.js.map +0 -1
  329. package/UseCases/SearchItems/index.js.map +0 -1
  330. package/UseCases/SelectAllItems/ISelectAllItemsUseCase.js.map +0 -1
  331. package/UseCases/SelectAllItems/index.js.map +0 -1
  332. package/UseCases/SelectItems/ISelectItemsUseCase.js.map +0 -1
  333. package/UseCases/SelectItems/index.js.map +0 -1
  334. package/UseCases/SortItems/ISortItemsUseCase.js.map +0 -1
  335. package/UseCases/SortItems/index.js.map +0 -1
  336. package/UseCases/UnSelectAllItems/IUnselectAllItemsUseCase.js.map +0 -1
  337. package/UseCases/UnSelectAllItems/index.js.map +0 -1
  338. package/UseCases/index.js.map +0 -1
  339. package/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["describe","it","expect","beforeEach","vi","TrashBinPresenter","LoadingRepository","MetaRepository","SortingRepository","LoadingActions","TrashBinControllers","SearchRepository","SelectedItemsRepository","SortingRepositoryWithDefaults","TrashBinItemsRepository","TrashBinItemsRepositoryWithLoading","identity1","id","displayName","type","identity2","createBinListGateway","execute","createBinDeleteItemGateway","createBinRestoreItemGateway","createBinBulkActionsGateway","CustomItemMapper","toDTO","data","title","location","createdBy","deletedOn","deletedBy","defaultSorting","field","order","item1","folderId","Date","toString","custom","item2","item3","item4","listGateway","fn","mockImplementation","Promise","resolve","totalCount","cursor","hasMoreItems","deleteItemGateway","restoreItemGateway","bulkActionGateway","itemMapper","BulkActionDeleteItems","BulkActionRestoreItems","init","retentionPeriod","selectedRepo","loadingRepo","sortRepo","sortRepoWithDefaults","metaRepo","searchRepo","trashBinItemsRepo","itemsRepo","presenter","controllers","getControllers","clearAllMocks","listPromise","listItems","vm","toMatchObject","items","loading","list","toHaveBeenCalledTimes","toHaveBeenCalledWith","sort","any","String","mockImplementationOnce","listMorePromise","listMoreItems","listMore","after","search","undefined","sortListGateway","toHaveBeenNthCalledWith","sortItems","desc","sorting","searchItemsGateway","searchItems","searchQuery","isEmptyView","selectedItems","selectItems","deletePromise","deleteItem","delete","restorePromise","restoreItem","restore","restoredItems","restoredItem","getRestoredItemById","each","input","output","restoreBulkActionPromise","restoreBulkAction","where","action","deleteBulkActionPromise","deleteBulkAction","length","toBe","allowSelectAll","toBeFalsy","isSelectedAll","toBeTruthy","selectAllItems","unselectAllItems"],"sources":["TrashBin.test.ts"],"sourcesContent":["import { describe, it, expect, beforeEach, vi } from \"vitest\";\nimport { TrashBinPresenter } from \"./TrashBinPresenter.js\";\nimport {\n LoadingRepository,\n MetaRepository,\n type Sorting,\n SortingRepository\n} from \"@webiny/app-utils\";\nimport {\n LoadingActions,\n type TrashBinIdentity,\n TrashBinListQueryVariables,\n type TrashBinLocation,\n TrashBinMetaResponse,\n TrashBinBulkActionsResponse,\n TrashBinBulkActionsGatewayParams\n} from \"~/types.js\";\nimport { TrashBinControllers } from \"~/Presentation/TrashBin/TrashBinControllers.js\";\nimport {\n type ITrashBinBulkActionsGateway,\n type ITrashBinDeleteItemGateway,\n type ITrashBinListGateway,\n type ITrashBinRestoreItemGateway\n} from \"~/Gateways/index.js\";\nimport { type ITrashBinItemMapper } from \"~/Domain/Models/TrashBinItem/index.js\";\nimport { SearchRepository } from \"~/Domain/Repositories/Search/index.js\";\nimport { SelectedItemsRepository } from \"~/Domain/Repositories/SelectedItems/index.js\";\nimport { SortingRepositoryWithDefaults } from \"~/Domain/Repositories/Sorting/index.js\";\nimport {\n TrashBinItemsRepository,\n TrashBinItemsRepositoryWithLoading\n} from \"~/Domain/Repositories/TrashBinItems/index.js\";\n\ninterface Item {\n id: string;\n title: string;\n location: TrashBinLocation;\n createdBy: TrashBinIdentity;\n deletedOn: string;\n deletedBy: TrashBinIdentity;\n custom: string;\n}\n\nconst identity1: TrashBinIdentity = {\n id: \"1234\",\n displayName: \"John Doe\",\n type: \"admin\"\n};\n\nconst identity2: TrashBinIdentity = {\n id: \"5678\",\n displayName: \"Jane Doe\",\n type: \"admin\"\n};\n\nconst createBinListGateway = ({\n execute\n}: ITrashBinListGateway<Item>): ITrashBinListGateway<Item> => ({\n execute\n});\n\nconst createBinDeleteItemGateway = ({\n execute\n}: ITrashBinDeleteItemGateway): ITrashBinDeleteItemGateway => ({\n execute\n});\n\nconst createBinRestoreItemGateway = ({\n execute\n}: ITrashBinRestoreItemGateway<Item>): ITrashBinRestoreItemGateway<Item> => ({\n execute\n});\n\nconst createBinBulkActionsGateway = ({\n execute\n}: ITrashBinBulkActionsGateway): ITrashBinBulkActionsGateway => ({\n execute\n});\n\nclass CustomItemMapper implements ITrashBinItemMapper<Item> {\n toDTO(data: Item) {\n return {\n id: data.id,\n title: data.title,\n location: data.location,\n createdBy: data.createdBy,\n deletedOn: data.deletedOn,\n deletedBy: data.deletedBy\n };\n }\n}\n\nconst defaultSorting: Sorting[] = [{ field: \"deletedOn\", order: \"desc\" }];\n\ndescribe(\"TrashBin\", () => {\n const item1: Item = {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: new Date().toString(),\n custom: \"any custom data\"\n };\n\n const item2: Item = {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: new Date().toString(),\n custom: \"any custom data\"\n };\n\n const item3: Item = {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: new Date().toString(),\n custom: \"any custom data\"\n };\n\n const item4: Item = {\n id: \"item-4\",\n title: \"Item 4\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: new Date().toString(),\n custom: \"any custom data\"\n };\n\n const listGateway = createBinListGateway({\n execute: vi\n .fn<(params: TrashBinListQueryVariables) => Promise<[Item[], TrashBinMetaResponse]>>()\n .mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\n })\n });\n\n const deleteItemGateway = createBinDeleteItemGateway({\n execute: vi.fn<(id: string) => Promise<boolean>>().mockImplementation(() => {\n return Promise.resolve(true);\n })\n });\n\n const restoreItemGateway = createBinRestoreItemGateway({\n execute: vi.fn<(id: string) => Promise<Item>>().mockImplementation(() => {\n return Promise.resolve(item1);\n })\n });\n\n const bulkActionGateway = createBinBulkActionsGateway({\n execute: vi\n .fn<\n (params: TrashBinBulkActionsGatewayParams) => Promise<TrashBinBulkActionsResponse>\n >()\n .mockImplementation(() => {\n return Promise.resolve({ id: \"123456789\" });\n })\n });\n\n const itemMapper = new CustomItemMapper();\n\n const BulkActionDeleteItems = \"BulkDeleteItems\";\n const BulkActionRestoreItems = \"BulkRestoreItems\";\n\n const init = (\n listGateway: ITrashBinListGateway<Item>,\n deleteItemGateway: ITrashBinDeleteItemGateway,\n restoreItemGateway: ITrashBinRestoreItemGateway<Item>,\n retentionPeriod = 90\n ) => {\n const selectedRepo = new SelectedItemsRepository();\n const loadingRepo = new LoadingRepository();\n const sortRepo = new SortingRepository();\n const sortRepoWithDefaults = new SortingRepositoryWithDefaults(defaultSorting, sortRepo);\n const metaRepo = new MetaRepository();\n const searchRepo = new SearchRepository();\n const trashBinItemsRepo = new TrashBinItemsRepository(\n metaRepo,\n listGateway,\n deleteItemGateway,\n restoreItemGateway,\n bulkActionGateway,\n itemMapper\n );\n\n const itemsRepo = new TrashBinItemsRepositoryWithLoading(loadingRepo, trashBinItemsRepo);\n\n return {\n presenter: new TrashBinPresenter(\n itemsRepo,\n selectedRepo,\n sortRepoWithDefaults,\n searchRepo,\n retentionPeriod\n ),\n controllers: new TrashBinControllers(\n itemsRepo,\n selectedRepo,\n sortRepoWithDefaults,\n searchRepo,\n BulkActionDeleteItems,\n BulkActionRestoreItems\n ).getControllers()\n };\n };\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should create a presenter and list trash bin entries from the gateway\", async () => {\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n const listPromise = controllers.listItems.execute();\n\n // Let's check the transition to loading state\n expect(presenter.vm).toMatchObject({\n items: [],\n loading: {\n [LoadingActions.list]: true\n }\n });\n\n await listPromise;\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n expect(listGateway.execute).toHaveBeenCalledWith({\n sort: [\"deletedOn_DESC\"]\n });\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ],\n loading: {\n [LoadingActions.list]: false\n }\n });\n });\n\n it(\"should list more items from the gateway\", async () => {\n const listGateway = createBinListGateway({\n execute: vi\n .fn<\n (params: TrashBinListQueryVariables) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 4, cursor: \"IjMi\", hasMoreItems: true }\n ] as [Item[], TrashBinMetaResponse]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item4],\n { totalCount: 4, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // Let's list some initial entries\n await controllers.listItems.execute();\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n // Let's list more items from the gateway\n const listMorePromise = controllers.listMoreItems.execute();\n\n expect(presenter.vm).toMatchObject({\n loading: {\n [LoadingActions.listMore]: true\n }\n });\n\n await listMorePromise;\n\n expect(listGateway.execute).toHaveBeenCalledTimes(2);\n expect(listGateway.execute).toHaveBeenCalledWith({\n after: \"IjMi\",\n search: undefined,\n sort: [\"deletedOn_DESC\"]\n });\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-4\",\n title: \"Item 4\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n }\n ],\n loading: {\n [LoadingActions.listMore]: false\n }\n });\n });\n\n it(\"should be able to sort items\", async () => {\n const sortListGateway = createBinListGateway({\n execute: vi\n .fn<\n (params: TrashBinListQueryVariables) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n .mockImplementation(() => {\n return Promise.resolve([\n [item3, item2, item1],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(\n sortListGateway,\n deleteItemGateway,\n restoreItemGateway\n );\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(sortListGateway.execute).toHaveBeenNthCalledWith(1, {\n sort: [\"deletedOn_DESC\"]\n });\n\n // Let's sort items, it should call back the list gateway to retrieve the items sorted\n await controllers.sortItems.execute(() => [{ id: \"deletedOn\", desc: false }]);\n\n expect(sortListGateway.execute).toHaveBeenNthCalledWith(2, {\n sort: [\"deletedOn_ASC\"]\n });\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-3\",\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-1\",\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ],\n loading: {\n [LoadingActions.list]: false\n },\n sorting: [{ id: \"deletedOn\", desc: false }]\n });\n });\n\n it(\"should be able to search items\", async () => {\n const searchItemsGateway = createBinListGateway({\n execute: vi\n .fn<\n (params: TrashBinListQueryVariables) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1],\n { totalCount: 1, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [],\n { totalCount: 0, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(\n searchItemsGateway,\n deleteItemGateway,\n restoreItemGateway\n );\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(searchItemsGateway.execute).toHaveBeenNthCalledWith(1, {\n sort: [\"deletedOn_DESC\"]\n });\n\n // Let's search for items, it should return items from the gateway\n await controllers.searchItems.execute(\"Item 1\");\n\n expect(searchItemsGateway.execute).toHaveBeenNthCalledWith(2, {\n sort: [\"deletedOn_DESC\"],\n search: \"Item 1\"\n });\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ],\n loading: {\n [LoadingActions.list]: false\n },\n searchQuery: \"Item 1\"\n });\n\n // Let's search for items, it should return no items from the gateway\n await controllers.searchItems.execute(\"Not found query\");\n\n expect(searchItemsGateway.execute).toHaveBeenNthCalledWith(3, {\n sort: [\"deletedOn_DESC\"],\n search: \"Not found query\"\n });\n\n expect(presenter.vm).toMatchObject({\n items: [],\n loading: {\n [LoadingActions.list]: false\n },\n searchQuery: \"Not found query\",\n isEmptyView: true\n });\n });\n\n it(\"should be able to select items\", async () => {\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n // No selected items found by default\n expect(presenter.vm).toMatchObject({\n selectedItems: []\n });\n\n // Let's select the first Item\n await controllers.selectItems.execute([\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: new Date().toString()\n }\n ]);\n\n expect(presenter.vm).toMatchObject({\n selectedItems: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n\n // Let's select the second item\n await controllers.selectItems.execute([\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: new Date().toString()\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: new Date().toString()\n }\n ]);\n\n expect(presenter.vm).toMatchObject({\n selectedItems: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n }\n ]\n });\n });\n\n it(\"should delete an item, removing it from the list\", async () => {\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n\n const deletePromise = controllers.deleteItem.execute(item1.id);\n\n // Let's check the transition to loading state\n expect(presenter.vm).toMatchObject({\n loading: {\n [LoadingActions.delete]: true\n }\n });\n\n await deletePromise;\n\n expect(deleteItemGateway.execute).toHaveBeenCalledTimes(1);\n expect(deleteItemGateway.execute).toHaveBeenCalledWith(item1.id);\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n });\n\n it(\"should restore an item, removing it from the list\", async () => {\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n\n const restorePromise = controllers.restoreItem.execute(item1.id);\n\n // Let's check the transition to loading state\n expect(presenter.vm).toMatchObject({\n loading: {\n [LoadingActions.restore]: true\n }\n });\n\n await restorePromise;\n\n expect(restoreItemGateway.execute).toHaveBeenCalledTimes(1);\n expect(restoreItemGateway.execute).toHaveBeenCalledWith(item1.id);\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ],\n restoredItems: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n\n // We should be able to get the restored item by id\n const restoredItem = await controllers.getRestoredItemById.execute(\"item-1\");\n expect(restoredItem).toMatchObject({\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n });\n });\n\n it.each([\n [0, \"0 days\"],\n [1, \"1 day\"],\n [2, \"2 days\"]\n ])(\"should set the retention period to `%s` when input is `%i`\", (input, output) => {\n const { presenter } = init(listGateway, deleteItemGateway, restoreItemGateway, input);\n\n expect(presenter.vm).toMatchObject({\n retentionPeriod: output\n });\n });\n\n it(\"should be able to perform bulk action - RESTORE\", async () => {\n const { controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n const restoreBulkActionPromise = controllers.restoreBulkAction.execute({\n search: \"Custom search\",\n where: {\n title: \"Item title\"\n },\n data: {\n any: 1\n }\n });\n\n await restoreBulkActionPromise;\n\n expect(bulkActionGateway.execute).toHaveBeenCalledTimes(1);\n expect(bulkActionGateway.execute).toHaveBeenCalledWith({\n action: BulkActionRestoreItems,\n search: \"Custom search\",\n where: {\n title: \"Item title\"\n },\n data: {\n any: 1\n }\n });\n });\n\n it(\"should be able to perform bulk action - DELETE\", async () => {\n const { controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n const deleteBulkActionPromise = controllers.deleteBulkAction.execute({\n search: \"Custom search\",\n where: {\n title: \"Item title\"\n },\n data: {\n any: 1\n }\n });\n\n await deleteBulkActionPromise;\n\n expect(bulkActionGateway.execute).toHaveBeenCalledTimes(1);\n expect(bulkActionGateway.execute).toHaveBeenCalledWith({\n action: BulkActionDeleteItems,\n search: \"Custom search\",\n where: {\n title: \"Item title\"\n },\n data: {\n any: 1\n }\n });\n });\n\n it(\"should be able to `selectAll` and `unselectAll` items\", async () => {\n {\n // let's test the functionality by listing items that span multiple pages.\n const listGateway = createBinListGateway({\n execute: vi\n .fn<\n (\n params: TrashBinListQueryVariables\n ) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 4, cursor: \"IjMi\", hasMoreItems: true }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(\n listGateway,\n deleteItemGateway,\n restoreItemGateway\n );\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n // let's check the initial vm state\n expect(presenter.vm.items.length).toBe(3);\n expect(presenter.vm.selectedItems.length).toBe(0);\n expect(presenter.vm.allowSelectAll).toBeFalsy();\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n\n // let's check the vm state after selecting all items on the page\n await controllers.selectItems.execute([item1, item2, item3]);\n expect(presenter.vm.selectedItems.length).toBe(3);\n expect(presenter.vm.allowSelectAll).toBeTruthy();\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n\n // let's check the vm state after selecting all items\n await controllers.selectAllItems.execute();\n expect(presenter.vm.selectedItems.length).toBe(3);\n expect(presenter.vm.allowSelectAll).toBeTruthy();\n expect(presenter.vm.isSelectedAll).toBeTruthy();\n\n // let's check the vm state after unselecting all items\n await controllers.unselectAllItems.execute();\n expect(presenter.vm.selectedItems.length).toBe(0);\n expect(presenter.vm.allowSelectAll).toBeFalsy();\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n\n // let's check the vm state after unselecting one item\n await controllers.selectItems.execute([item1, item2, item3]);\n expect(presenter.vm.selectedItems.length).toBe(3);\n await controllers.selectAllItems.execute();\n expect(presenter.vm.isSelectedAll).toBeTruthy();\n await controllers.selectItems.execute([item1, item2]);\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n expect(presenter.vm.allowSelectAll).toBeFalsy();\n }\n\n {\n // let's test the functionality by listing items that span only one page.\n const listGateway = createBinListGateway({\n execute: vi\n .fn<\n (\n params: TrashBinListQueryVariables\n ) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(\n listGateway,\n deleteItemGateway,\n restoreItemGateway\n );\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n // let's check the initial vm state\n expect(presenter.vm.items.length).toBe(3);\n\n // let's check the vm state after selecting all items in the page\n await controllers.selectItems.execute([item1, item2, item3]);\n expect(presenter.vm.selectedItems.length).toBe(3);\n expect(presenter.vm.allowSelectAll).toBeFalsy();\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n }\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Presentation/TrashBin/TrashBin.test.js","sources":["../../../src/Presentation/TrashBin/TrashBin.test.ts"],"sourcesContent":["import { describe, it, expect, beforeEach, vi } from \"vitest\";\nimport { TrashBinPresenter } from \"./TrashBinPresenter.js\";\nimport {\n LoadingRepository,\n MetaRepository,\n type Sorting,\n SortingRepository\n} from \"@webiny/app-utils\";\nimport {\n LoadingActions,\n type TrashBinIdentity,\n TrashBinListQueryVariables,\n type TrashBinLocation,\n TrashBinMetaResponse,\n TrashBinBulkActionsResponse,\n TrashBinBulkActionsGatewayParams\n} from \"~/types.js\";\nimport { TrashBinControllers } from \"~/Presentation/TrashBin/TrashBinControllers.js\";\nimport {\n type ITrashBinBulkActionsGateway,\n type ITrashBinDeleteItemGateway,\n type ITrashBinListGateway,\n type ITrashBinRestoreItemGateway\n} from \"~/Gateways/index.js\";\nimport { type ITrashBinItemMapper } from \"~/Domain/Models/TrashBinItem/index.js\";\nimport { SearchRepository } from \"~/Domain/Repositories/Search/index.js\";\nimport { SelectedItemsRepository } from \"~/Domain/Repositories/SelectedItems/index.js\";\nimport { SortingRepositoryWithDefaults } from \"~/Domain/Repositories/Sorting/index.js\";\nimport {\n TrashBinItemsRepository,\n TrashBinItemsRepositoryWithLoading\n} from \"~/Domain/Repositories/TrashBinItems/index.js\";\n\ninterface Item {\n id: string;\n title: string;\n location: TrashBinLocation;\n createdBy: TrashBinIdentity;\n deletedOn: string;\n deletedBy: TrashBinIdentity;\n custom: string;\n}\n\nconst identity1: TrashBinIdentity = {\n id: \"1234\",\n displayName: \"John Doe\",\n type: \"admin\"\n};\n\nconst identity2: TrashBinIdentity = {\n id: \"5678\",\n displayName: \"Jane Doe\",\n type: \"admin\"\n};\n\nconst createBinListGateway = ({\n execute\n}: ITrashBinListGateway<Item>): ITrashBinListGateway<Item> => ({\n execute\n});\n\nconst createBinDeleteItemGateway = ({\n execute\n}: ITrashBinDeleteItemGateway): ITrashBinDeleteItemGateway => ({\n execute\n});\n\nconst createBinRestoreItemGateway = ({\n execute\n}: ITrashBinRestoreItemGateway<Item>): ITrashBinRestoreItemGateway<Item> => ({\n execute\n});\n\nconst createBinBulkActionsGateway = ({\n execute\n}: ITrashBinBulkActionsGateway): ITrashBinBulkActionsGateway => ({\n execute\n});\n\nclass CustomItemMapper implements ITrashBinItemMapper<Item> {\n toDTO(data: Item) {\n return {\n id: data.id,\n title: data.title,\n location: data.location,\n createdBy: data.createdBy,\n deletedOn: data.deletedOn,\n deletedBy: data.deletedBy\n };\n }\n}\n\nconst defaultSorting: Sorting[] = [{ field: \"deletedOn\", order: \"desc\" }];\n\ndescribe(\"TrashBin\", () => {\n const item1: Item = {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: new Date().toString(),\n custom: \"any custom data\"\n };\n\n const item2: Item = {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: new Date().toString(),\n custom: \"any custom data\"\n };\n\n const item3: Item = {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: new Date().toString(),\n custom: \"any custom data\"\n };\n\n const item4: Item = {\n id: \"item-4\",\n title: \"Item 4\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: new Date().toString(),\n custom: \"any custom data\"\n };\n\n const listGateway = createBinListGateway({\n execute: vi\n .fn<(params: TrashBinListQueryVariables) => Promise<[Item[], TrashBinMetaResponse]>>()\n .mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\n })\n });\n\n const deleteItemGateway = createBinDeleteItemGateway({\n execute: vi.fn<(id: string) => Promise<boolean>>().mockImplementation(() => {\n return Promise.resolve(true);\n })\n });\n\n const restoreItemGateway = createBinRestoreItemGateway({\n execute: vi.fn<(id: string) => Promise<Item>>().mockImplementation(() => {\n return Promise.resolve(item1);\n })\n });\n\n const bulkActionGateway = createBinBulkActionsGateway({\n execute: vi\n .fn<\n (params: TrashBinBulkActionsGatewayParams) => Promise<TrashBinBulkActionsResponse>\n >()\n .mockImplementation(() => {\n return Promise.resolve({ id: \"123456789\" });\n })\n });\n\n const itemMapper = new CustomItemMapper();\n\n const BulkActionDeleteItems = \"BulkDeleteItems\";\n const BulkActionRestoreItems = \"BulkRestoreItems\";\n\n const init = (\n listGateway: ITrashBinListGateway<Item>,\n deleteItemGateway: ITrashBinDeleteItemGateway,\n restoreItemGateway: ITrashBinRestoreItemGateway<Item>,\n retentionPeriod = 90\n ) => {\n const selectedRepo = new SelectedItemsRepository();\n const loadingRepo = new LoadingRepository();\n const sortRepo = new SortingRepository();\n const sortRepoWithDefaults = new SortingRepositoryWithDefaults(defaultSorting, sortRepo);\n const metaRepo = new MetaRepository();\n const searchRepo = new SearchRepository();\n const trashBinItemsRepo = new TrashBinItemsRepository(\n metaRepo,\n listGateway,\n deleteItemGateway,\n restoreItemGateway,\n bulkActionGateway,\n itemMapper\n );\n\n const itemsRepo = new TrashBinItemsRepositoryWithLoading(loadingRepo, trashBinItemsRepo);\n\n return {\n presenter: new TrashBinPresenter(\n itemsRepo,\n selectedRepo,\n sortRepoWithDefaults,\n searchRepo,\n retentionPeriod\n ),\n controllers: new TrashBinControllers(\n itemsRepo,\n selectedRepo,\n sortRepoWithDefaults,\n searchRepo,\n BulkActionDeleteItems,\n BulkActionRestoreItems\n ).getControllers()\n };\n };\n\n beforeEach(() => {\n vi.clearAllMocks();\n });\n\n it(\"should create a presenter and list trash bin entries from the gateway\", async () => {\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n const listPromise = controllers.listItems.execute();\n\n // Let's check the transition to loading state\n expect(presenter.vm).toMatchObject({\n items: [],\n loading: {\n [LoadingActions.list]: true\n }\n });\n\n await listPromise;\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n expect(listGateway.execute).toHaveBeenCalledWith({\n sort: [\"deletedOn_DESC\"]\n });\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ],\n loading: {\n [LoadingActions.list]: false\n }\n });\n });\n\n it(\"should list more items from the gateway\", async () => {\n const listGateway = createBinListGateway({\n execute: vi\n .fn<\n (params: TrashBinListQueryVariables) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 4, cursor: \"IjMi\", hasMoreItems: true }\n ] as [Item[], TrashBinMetaResponse]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item4],\n { totalCount: 4, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // Let's list some initial entries\n await controllers.listItems.execute();\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n // Let's list more items from the gateway\n const listMorePromise = controllers.listMoreItems.execute();\n\n expect(presenter.vm).toMatchObject({\n loading: {\n [LoadingActions.listMore]: true\n }\n });\n\n await listMorePromise;\n\n expect(listGateway.execute).toHaveBeenCalledTimes(2);\n expect(listGateway.execute).toHaveBeenCalledWith({\n after: \"IjMi\",\n search: undefined,\n sort: [\"deletedOn_DESC\"]\n });\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-4\",\n title: \"Item 4\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n }\n ],\n loading: {\n [LoadingActions.listMore]: false\n }\n });\n });\n\n it(\"should be able to sort items\", async () => {\n const sortListGateway = createBinListGateway({\n execute: vi\n .fn<\n (params: TrashBinListQueryVariables) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n .mockImplementation(() => {\n return Promise.resolve([\n [item3, item2, item1],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(\n sortListGateway,\n deleteItemGateway,\n restoreItemGateway\n );\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(sortListGateway.execute).toHaveBeenNthCalledWith(1, {\n sort: [\"deletedOn_DESC\"]\n });\n\n // Let's sort items, it should call back the list gateway to retrieve the items sorted\n await controllers.sortItems.execute(() => [{ id: \"deletedOn\", desc: false }]);\n\n expect(sortListGateway.execute).toHaveBeenNthCalledWith(2, {\n sort: [\"deletedOn_ASC\"]\n });\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-3\",\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-1\",\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ],\n loading: {\n [LoadingActions.list]: false\n },\n sorting: [{ id: \"deletedOn\", desc: false }]\n });\n });\n\n it(\"should be able to search items\", async () => {\n const searchItemsGateway = createBinListGateway({\n execute: vi\n .fn<\n (params: TrashBinListQueryVariables) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1],\n { totalCount: 1, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [],\n { totalCount: 0, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(\n searchItemsGateway,\n deleteItemGateway,\n restoreItemGateway\n );\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(searchItemsGateway.execute).toHaveBeenNthCalledWith(1, {\n sort: [\"deletedOn_DESC\"]\n });\n\n // Let's search for items, it should return items from the gateway\n await controllers.searchItems.execute(\"Item 1\");\n\n expect(searchItemsGateway.execute).toHaveBeenNthCalledWith(2, {\n sort: [\"deletedOn_DESC\"],\n search: \"Item 1\"\n });\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ],\n loading: {\n [LoadingActions.list]: false\n },\n searchQuery: \"Item 1\"\n });\n\n // Let's search for items, it should return no items from the gateway\n await controllers.searchItems.execute(\"Not found query\");\n\n expect(searchItemsGateway.execute).toHaveBeenNthCalledWith(3, {\n sort: [\"deletedOn_DESC\"],\n search: \"Not found query\"\n });\n\n expect(presenter.vm).toMatchObject({\n items: [],\n loading: {\n [LoadingActions.list]: false\n },\n searchQuery: \"Not found query\",\n isEmptyView: true\n });\n });\n\n it(\"should be able to select items\", async () => {\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n // No selected items found by default\n expect(presenter.vm).toMatchObject({\n selectedItems: []\n });\n\n // Let's select the first Item\n await controllers.selectItems.execute([\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: new Date().toString()\n }\n ]);\n\n expect(presenter.vm).toMatchObject({\n selectedItems: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n\n // Let's select the second item\n await controllers.selectItems.execute([\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: new Date().toString()\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: new Date().toString()\n }\n ]);\n\n expect(presenter.vm).toMatchObject({\n selectedItems: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n }\n ]\n });\n });\n\n it(\"should delete an item, removing it from the list\", async () => {\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n\n const deletePromise = controllers.deleteItem.execute(item1.id);\n\n // Let's check the transition to loading state\n expect(presenter.vm).toMatchObject({\n loading: {\n [LoadingActions.delete]: true\n }\n });\n\n await deletePromise;\n\n expect(deleteItemGateway.execute).toHaveBeenCalledTimes(1);\n expect(deleteItemGateway.execute).toHaveBeenCalledWith(item1.id);\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n });\n\n it(\"should restore an item, removing it from the list\", async () => {\n const { presenter, controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n\n const restorePromise = controllers.restoreItem.execute(item1.id);\n\n // Let's check the transition to loading state\n expect(presenter.vm).toMatchObject({\n loading: {\n [LoadingActions.restore]: true\n }\n });\n\n await restorePromise;\n\n expect(restoreItemGateway.execute).toHaveBeenCalledTimes(1);\n expect(restoreItemGateway.execute).toHaveBeenCalledWith(item1.id);\n\n expect(presenter.vm).toMatchObject({\n items: [\n {\n id: \"item-2\",\n title: \"Item 2\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n title: \"Item 3\",\n location: {\n folderId: \"folder-b\"\n },\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ],\n restoredItems: [\n {\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n }\n ]\n });\n\n // We should be able to get the restored item by id\n const restoredItem = await controllers.getRestoredItemById.execute(\"item-1\");\n expect(restoredItem).toMatchObject({\n id: \"item-1\",\n title: \"Item 1\",\n location: {\n folderId: \"folder-a\"\n },\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n });\n });\n\n it.each([\n [0, \"0 days\"],\n [1, \"1 day\"],\n [2, \"2 days\"]\n ])(\"should set the retention period to `%s` when input is `%i`\", (input, output) => {\n const { presenter } = init(listGateway, deleteItemGateway, restoreItemGateway, input);\n\n expect(presenter.vm).toMatchObject({\n retentionPeriod: output\n });\n });\n\n it(\"should be able to perform bulk action - RESTORE\", async () => {\n const { controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n const restoreBulkActionPromise = controllers.restoreBulkAction.execute({\n search: \"Custom search\",\n where: {\n title: \"Item title\"\n },\n data: {\n any: 1\n }\n });\n\n await restoreBulkActionPromise;\n\n expect(bulkActionGateway.execute).toHaveBeenCalledTimes(1);\n expect(bulkActionGateway.execute).toHaveBeenCalledWith({\n action: BulkActionRestoreItems,\n search: \"Custom search\",\n where: {\n title: \"Item title\"\n },\n data: {\n any: 1\n }\n });\n });\n\n it(\"should be able to perform bulk action - DELETE\", async () => {\n const { controllers } = init(listGateway, deleteItemGateway, restoreItemGateway);\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n const deleteBulkActionPromise = controllers.deleteBulkAction.execute({\n search: \"Custom search\",\n where: {\n title: \"Item title\"\n },\n data: {\n any: 1\n }\n });\n\n await deleteBulkActionPromise;\n\n expect(bulkActionGateway.execute).toHaveBeenCalledTimes(1);\n expect(bulkActionGateway.execute).toHaveBeenCalledWith({\n action: BulkActionDeleteItems,\n search: \"Custom search\",\n where: {\n title: \"Item title\"\n },\n data: {\n any: 1\n }\n });\n });\n\n it(\"should be able to `selectAll` and `unselectAll` items\", async () => {\n {\n // let's test the functionality by listing items that span multiple pages.\n const listGateway = createBinListGateway({\n execute: vi\n .fn<\n (\n params: TrashBinListQueryVariables\n ) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 4, cursor: \"IjMi\", hasMoreItems: true }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(\n listGateway,\n deleteItemGateway,\n restoreItemGateway\n );\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n // let's check the initial vm state\n expect(presenter.vm.items.length).toBe(3);\n expect(presenter.vm.selectedItems.length).toBe(0);\n expect(presenter.vm.allowSelectAll).toBeFalsy();\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n\n // let's check the vm state after selecting all items on the page\n await controllers.selectItems.execute([item1, item2, item3]);\n expect(presenter.vm.selectedItems.length).toBe(3);\n expect(presenter.vm.allowSelectAll).toBeTruthy();\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n\n // let's check the vm state after selecting all items\n await controllers.selectAllItems.execute();\n expect(presenter.vm.selectedItems.length).toBe(3);\n expect(presenter.vm.allowSelectAll).toBeTruthy();\n expect(presenter.vm.isSelectedAll).toBeTruthy();\n\n // let's check the vm state after unselecting all items\n await controllers.unselectAllItems.execute();\n expect(presenter.vm.selectedItems.length).toBe(0);\n expect(presenter.vm.allowSelectAll).toBeFalsy();\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n\n // let's check the vm state after unselecting one item\n await controllers.selectItems.execute([item1, item2, item3]);\n expect(presenter.vm.selectedItems.length).toBe(3);\n await controllers.selectAllItems.execute();\n expect(presenter.vm.isSelectedAll).toBeTruthy();\n await controllers.selectItems.execute([item1, item2]);\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n expect(presenter.vm.allowSelectAll).toBeFalsy();\n }\n\n {\n // let's test the functionality by listing items that span only one page.\n const listGateway = createBinListGateway({\n execute: vi\n .fn<\n (\n params: TrashBinListQueryVariables\n ) => Promise<[Item[], TrashBinMetaResponse]>\n >()\n .mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ] as [Item[], TrashBinMetaResponse]);\n })\n });\n\n const { presenter, controllers } = init(\n listGateway,\n deleteItemGateway,\n restoreItemGateway\n );\n\n // let's list some entries from the gateway\n await controllers.listItems.execute();\n\n expect(listGateway.execute).toHaveBeenCalledTimes(1);\n\n // let's check the initial vm state\n expect(presenter.vm.items.length).toBe(3);\n\n // let's check the vm state after selecting all items in the page\n await controllers.selectItems.execute([item1, item2, item3]);\n expect(presenter.vm.selectedItems.length).toBe(3);\n expect(presenter.vm.allowSelectAll).toBeFalsy();\n expect(presenter.vm.isSelectedAll).toBeFalsy();\n }\n });\n});\n"],"names":["identity1","identity2","createBinListGateway","execute","createBinDeleteItemGateway","createBinRestoreItemGateway","createBinBulkActionsGateway","CustomItemMapper","data","defaultSorting","describe","item1","Date","item2","item3","item4","listGateway","vi","Promise","deleteItemGateway","restoreItemGateway","bulkActionGateway","itemMapper","BulkActionDeleteItems","BulkActionRestoreItems","init","retentionPeriod","selectedRepo","SelectedItemsRepository","loadingRepo","LoadingRepository","sortRepo","SortingRepository","sortRepoWithDefaults","SortingRepositoryWithDefaults","metaRepo","MetaRepository","searchRepo","SearchRepository","trashBinItemsRepo","TrashBinItemsRepository","itemsRepo","TrashBinItemsRepositoryWithLoading","TrashBinPresenter","TrashBinControllers","beforeEach","it","presenter","controllers","listPromise","expect","LoadingActions","String","listMorePromise","undefined","sortListGateway","searchItemsGateway","deletePromise","restorePromise","restoredItem","input","output","restoreBulkActionPromise","deleteBulkActionPromise"],"mappings":"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"}
@@ -1,80 +1,58 @@
1
1
  import { BulkActionsController, DeleteItemController, GetRestoredItemByIdController, ListItemsController, ListMoreItemsController, RestoreItemController, SearchItemsController, SelectAllItemsController, SelectItemsController, SortItemsController, UnselectAllItemsController } from "./controllers/index.js";
2
2
  import { BulkActionUseCase, DeleteItemUseCase, GetRestoredItemUseCase, ListItemsUseCase, ListItemsUseCaseWithSearch, ListItemsUseCaseWithSorting, ListMoreItemsUseCase, RestoreItemUseCase, SearchItemsUseCase, SelectAllItemsUseCase, SelectItemsUseCase, SortItemsUseCase, UnselectAllItemsUseCase } from "../../UseCases/index.js";
3
- export class TrashBinControllers {
4
- constructor(itemsRepository, selectedRepository, sortingRepository, searchRepository, deleteBulkActionName, restoreBulkActionName) {
5
- this.itemsRepository = itemsRepository;
6
- this.selectedRepository = selectedRepository;
7
- this.sortingRepository = sortingRepository;
8
- this.searchRepository = searchRepository;
9
- this.deleteBulkActionName = deleteBulkActionName;
10
- this.restoreBulkActionName = restoreBulkActionName;
11
- }
12
- getControllers() {
13
- // Select Items UseCase
14
- const selectItemsUseCase = () => new SelectItemsUseCase(this.selectedRepository);
15
-
16
- // Select All Items UseCase
17
- const selectAllItemsUseCase = () => new SelectAllItemsUseCase(this.selectedRepository);
18
-
19
- // Unselect All Items UseCase
20
- const unselectAllItemsUseCase = () => new UnselectAllItemsUseCase(this.selectedRepository);
21
-
22
- // Sort Items UseCase
23
- const sortItemsUseCase = () => new SortItemsUseCase(this.sortingRepository);
24
-
25
- // Search Items UseCase
26
- const searchItemsUseCase = () => new SearchItemsUseCase(this.searchRepository);
27
-
28
- // List Items UseCase
29
- const listItemsUseCase = () => {
30
- const baseListItemsUseCase = new ListItemsUseCase(this.itemsRepository);
31
- const listItemsWithSearch = new ListItemsUseCaseWithSearch(this.searchRepository, baseListItemsUseCase);
32
- return new ListItemsUseCaseWithSorting(this.sortingRepository, listItemsWithSearch);
33
- };
34
-
35
- // List More Items UseCase
36
- const listMoreItemsUseCase = () => new ListMoreItemsUseCase(this.itemsRepository);
37
-
38
- // Delete Item UseCase
39
- const deleteItemUseCase = () => new DeleteItemUseCase(this.itemsRepository);
40
-
41
- // Restore Item UseCase
42
- const restoreItemUseCase = () => new RestoreItemUseCase(this.itemsRepository);
43
-
44
- // Get RestoredItem UseCase
45
- const getRestoredItemUseCase = () => new GetRestoredItemUseCase(this.itemsRepository);
46
-
47
- // Bulk Action UseCase
48
- const bulkActionUseCase = () => new BulkActionUseCase(this.itemsRepository);
49
-
50
- // Create controllers
51
- const listItems = new ListItemsController(listItemsUseCase);
52
- const listMoreItems = new ListMoreItemsController(listMoreItemsUseCase);
53
- const deleteItem = new DeleteItemController(deleteItemUseCase);
54
- const restoreItem = new RestoreItemController(restoreItemUseCase);
55
- const selectItems = new SelectItemsController(selectItemsUseCase);
56
- const selectAllItems = new SelectAllItemsController(selectAllItemsUseCase);
57
- const unselectAllItems = new UnselectAllItemsController(unselectAllItemsUseCase);
58
- const sortItems = new SortItemsController(listItemsUseCase, sortItemsUseCase);
59
- const searchItems = new SearchItemsController(listItemsUseCase, searchItemsUseCase);
60
- const getRestoredItemById = new GetRestoredItemByIdController(getRestoredItemUseCase);
61
- const restoreBulkAction = new BulkActionsController(bulkActionUseCase, this.restoreBulkActionName);
62
- const deleteBulkAction = new BulkActionsController(bulkActionUseCase, this.deleteBulkActionName);
63
- return {
64
- listItems,
65
- listMoreItems,
66
- deleteItem,
67
- restoreItem,
68
- restoreBulkAction,
69
- deleteBulkAction,
70
- selectItems,
71
- selectAllItems,
72
- unselectAllItems,
73
- sortItems,
74
- searchItems,
75
- getRestoredItemById
76
- };
77
- }
3
+ class TrashBinControllers {
4
+ constructor(itemsRepository, selectedRepository, sortingRepository, searchRepository, deleteBulkActionName, restoreBulkActionName){
5
+ this.itemsRepository = itemsRepository;
6
+ this.selectedRepository = selectedRepository;
7
+ this.sortingRepository = sortingRepository;
8
+ this.searchRepository = searchRepository;
9
+ this.deleteBulkActionName = deleteBulkActionName;
10
+ this.restoreBulkActionName = restoreBulkActionName;
11
+ }
12
+ getControllers() {
13
+ const selectItemsUseCase = ()=>new SelectItemsUseCase(this.selectedRepository);
14
+ const selectAllItemsUseCase = ()=>new SelectAllItemsUseCase(this.selectedRepository);
15
+ const unselectAllItemsUseCase = ()=>new UnselectAllItemsUseCase(this.selectedRepository);
16
+ const sortItemsUseCase = ()=>new SortItemsUseCase(this.sortingRepository);
17
+ const searchItemsUseCase = ()=>new SearchItemsUseCase(this.searchRepository);
18
+ const listItemsUseCase = ()=>{
19
+ const baseListItemsUseCase = new ListItemsUseCase(this.itemsRepository);
20
+ const listItemsWithSearch = new ListItemsUseCaseWithSearch(this.searchRepository, baseListItemsUseCase);
21
+ return new ListItemsUseCaseWithSorting(this.sortingRepository, listItemsWithSearch);
22
+ };
23
+ const listMoreItemsUseCase = ()=>new ListMoreItemsUseCase(this.itemsRepository);
24
+ const deleteItemUseCase = ()=>new DeleteItemUseCase(this.itemsRepository);
25
+ const restoreItemUseCase = ()=>new RestoreItemUseCase(this.itemsRepository);
26
+ const getRestoredItemUseCase = ()=>new GetRestoredItemUseCase(this.itemsRepository);
27
+ const bulkActionUseCase = ()=>new BulkActionUseCase(this.itemsRepository);
28
+ const listItems = new ListItemsController(listItemsUseCase);
29
+ const listMoreItems = new ListMoreItemsController(listMoreItemsUseCase);
30
+ const deleteItem = new DeleteItemController(deleteItemUseCase);
31
+ const restoreItem = new RestoreItemController(restoreItemUseCase);
32
+ const selectItems = new SelectItemsController(selectItemsUseCase);
33
+ const selectAllItems = new SelectAllItemsController(selectAllItemsUseCase);
34
+ const unselectAllItems = new UnselectAllItemsController(unselectAllItemsUseCase);
35
+ const sortItems = new SortItemsController(listItemsUseCase, sortItemsUseCase);
36
+ const searchItems = new SearchItemsController(listItemsUseCase, searchItemsUseCase);
37
+ const getRestoredItemById = new GetRestoredItemByIdController(getRestoredItemUseCase);
38
+ const restoreBulkAction = new BulkActionsController(bulkActionUseCase, this.restoreBulkActionName);
39
+ const deleteBulkAction = new BulkActionsController(bulkActionUseCase, this.deleteBulkActionName);
40
+ return {
41
+ listItems,
42
+ listMoreItems,
43
+ deleteItem,
44
+ restoreItem,
45
+ restoreBulkAction,
46
+ deleteBulkAction,
47
+ selectItems,
48
+ selectAllItems,
49
+ unselectAllItems,
50
+ sortItems,
51
+ searchItems,
52
+ getRestoredItemById
53
+ };
54
+ }
78
55
  }
56
+ export { TrashBinControllers };
79
57
 
80
58
  //# sourceMappingURL=TrashBinControllers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BulkActionsController","DeleteItemController","GetRestoredItemByIdController","ListItemsController","ListMoreItemsController","RestoreItemController","SearchItemsController","SelectAllItemsController","SelectItemsController","SortItemsController","UnselectAllItemsController","BulkActionUseCase","DeleteItemUseCase","GetRestoredItemUseCase","ListItemsUseCase","ListItemsUseCaseWithSearch","ListItemsUseCaseWithSorting","ListMoreItemsUseCase","RestoreItemUseCase","SearchItemsUseCase","SelectAllItemsUseCase","SelectItemsUseCase","SortItemsUseCase","UnselectAllItemsUseCase","TrashBinControllers","constructor","itemsRepository","selectedRepository","sortingRepository","searchRepository","deleteBulkActionName","restoreBulkActionName","getControllers","selectItemsUseCase","selectAllItemsUseCase","unselectAllItemsUseCase","sortItemsUseCase","searchItemsUseCase","listItemsUseCase","baseListItemsUseCase","listItemsWithSearch","listMoreItemsUseCase","deleteItemUseCase","restoreItemUseCase","getRestoredItemUseCase","bulkActionUseCase","listItems","listMoreItems","deleteItem","restoreItem","selectItems","selectAllItems","unselectAllItems","sortItems","searchItems","getRestoredItemById","restoreBulkAction","deleteBulkAction"],"sources":["TrashBinControllers.ts"],"sourcesContent":["import type { ISortingRepository } from \"@webiny/app-utils\";\nimport type {\n ISearchRepository,\n ISelectedItemsRepository,\n ITrashBinItemsRepository\n} from \"~/Domain/index.js\";\nimport {\n BulkActionsController,\n DeleteItemController,\n GetRestoredItemByIdController,\n ListItemsController,\n ListMoreItemsController,\n RestoreItemController,\n SearchItemsController,\n SelectAllItemsController,\n SelectItemsController,\n SortItemsController,\n UnselectAllItemsController\n} from \"~/Presentation/TrashBin/controllers/index.js\";\nimport {\n BulkActionUseCase,\n DeleteItemUseCase,\n GetRestoredItemUseCase,\n ListItemsUseCase,\n ListItemsUseCaseWithSearch,\n ListItemsUseCaseWithSorting,\n ListMoreItemsUseCase,\n RestoreItemUseCase,\n SearchItemsUseCase,\n SelectAllItemsUseCase,\n SelectItemsUseCase,\n SortItemsUseCase,\n UnselectAllItemsUseCase\n} from \"~/UseCases/index.js\";\n\nexport class TrashBinControllers {\n private readonly itemsRepository: ITrashBinItemsRepository;\n private readonly selectedRepository: ISelectedItemsRepository;\n private readonly sortingRepository: ISortingRepository;\n private readonly searchRepository: ISearchRepository;\n private readonly deleteBulkActionName: string;\n private readonly restoreBulkActionName: string;\n\n constructor(\n itemsRepository: ITrashBinItemsRepository,\n selectedRepository: ISelectedItemsRepository,\n sortingRepository: ISortingRepository,\n searchRepository: ISearchRepository,\n deleteBulkActionName: string,\n restoreBulkActionName: string\n ) {\n this.itemsRepository = itemsRepository;\n this.selectedRepository = selectedRepository;\n this.sortingRepository = sortingRepository;\n this.searchRepository = searchRepository;\n this.deleteBulkActionName = deleteBulkActionName;\n this.restoreBulkActionName = restoreBulkActionName;\n }\n\n getControllers() {\n // Select Items UseCase\n const selectItemsUseCase = () => new SelectItemsUseCase(this.selectedRepository);\n\n // Select All Items UseCase\n const selectAllItemsUseCase = () => new SelectAllItemsUseCase(this.selectedRepository);\n\n // Unselect All Items UseCase\n const unselectAllItemsUseCase = () => new UnselectAllItemsUseCase(this.selectedRepository);\n\n // Sort Items UseCase\n const sortItemsUseCase = () => new SortItemsUseCase(this.sortingRepository);\n\n // Search Items UseCase\n const searchItemsUseCase = () => new SearchItemsUseCase(this.searchRepository);\n\n // List Items UseCase\n const listItemsUseCase = () => {\n const baseListItemsUseCase = new ListItemsUseCase(this.itemsRepository);\n const listItemsWithSearch = new ListItemsUseCaseWithSearch(\n this.searchRepository,\n baseListItemsUseCase\n );\n return new ListItemsUseCaseWithSorting(this.sortingRepository, listItemsWithSearch);\n };\n\n // List More Items UseCase\n const listMoreItemsUseCase = () => new ListMoreItemsUseCase(this.itemsRepository);\n\n // Delete Item UseCase\n const deleteItemUseCase = () => new DeleteItemUseCase(this.itemsRepository);\n\n // Restore Item UseCase\n const restoreItemUseCase = () => new RestoreItemUseCase(this.itemsRepository);\n\n // Get RestoredItem UseCase\n const getRestoredItemUseCase = () => new GetRestoredItemUseCase(this.itemsRepository);\n\n // Bulk Action UseCase\n const bulkActionUseCase = () => new BulkActionUseCase(this.itemsRepository);\n\n // Create controllers\n const listItems = new ListItemsController(listItemsUseCase);\n const listMoreItems = new ListMoreItemsController(listMoreItemsUseCase);\n const deleteItem = new DeleteItemController(deleteItemUseCase);\n const restoreItem = new RestoreItemController(restoreItemUseCase);\n const selectItems = new SelectItemsController(selectItemsUseCase);\n const selectAllItems = new SelectAllItemsController(selectAllItemsUseCase);\n const unselectAllItems = new UnselectAllItemsController(unselectAllItemsUseCase);\n const sortItems = new SortItemsController(listItemsUseCase, sortItemsUseCase);\n const searchItems = new SearchItemsController(listItemsUseCase, searchItemsUseCase);\n const getRestoredItemById = new GetRestoredItemByIdController(getRestoredItemUseCase);\n const restoreBulkAction = new BulkActionsController(\n bulkActionUseCase,\n this.restoreBulkActionName\n );\n const deleteBulkAction = new BulkActionsController(\n bulkActionUseCase,\n this.deleteBulkActionName\n );\n\n return {\n listItems,\n listMoreItems,\n deleteItem,\n restoreItem,\n restoreBulkAction,\n deleteBulkAction,\n selectItems,\n selectAllItems,\n unselectAllItems,\n sortItems,\n searchItems,\n getRestoredItemById\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Presentation/TrashBin/TrashBinControllers.js","sources":["../../../src/Presentation/TrashBin/TrashBinControllers.ts"],"sourcesContent":["import type { ISortingRepository } from \"@webiny/app-utils\";\nimport type {\n ISearchRepository,\n ISelectedItemsRepository,\n ITrashBinItemsRepository\n} from \"~/Domain/index.js\";\nimport {\n BulkActionsController,\n DeleteItemController,\n GetRestoredItemByIdController,\n ListItemsController,\n ListMoreItemsController,\n RestoreItemController,\n SearchItemsController,\n SelectAllItemsController,\n SelectItemsController,\n SortItemsController,\n UnselectAllItemsController\n} from \"~/Presentation/TrashBin/controllers/index.js\";\nimport {\n BulkActionUseCase,\n DeleteItemUseCase,\n GetRestoredItemUseCase,\n ListItemsUseCase,\n ListItemsUseCaseWithSearch,\n ListItemsUseCaseWithSorting,\n ListMoreItemsUseCase,\n RestoreItemUseCase,\n SearchItemsUseCase,\n SelectAllItemsUseCase,\n SelectItemsUseCase,\n SortItemsUseCase,\n UnselectAllItemsUseCase\n} from \"~/UseCases/index.js\";\n\nexport class TrashBinControllers {\n private readonly itemsRepository: ITrashBinItemsRepository;\n private readonly selectedRepository: ISelectedItemsRepository;\n private readonly sortingRepository: ISortingRepository;\n private readonly searchRepository: ISearchRepository;\n private readonly deleteBulkActionName: string;\n private readonly restoreBulkActionName: string;\n\n constructor(\n itemsRepository: ITrashBinItemsRepository,\n selectedRepository: ISelectedItemsRepository,\n sortingRepository: ISortingRepository,\n searchRepository: ISearchRepository,\n deleteBulkActionName: string,\n restoreBulkActionName: string\n ) {\n this.itemsRepository = itemsRepository;\n this.selectedRepository = selectedRepository;\n this.sortingRepository = sortingRepository;\n this.searchRepository = searchRepository;\n this.deleteBulkActionName = deleteBulkActionName;\n this.restoreBulkActionName = restoreBulkActionName;\n }\n\n getControllers() {\n // Select Items UseCase\n const selectItemsUseCase = () => new SelectItemsUseCase(this.selectedRepository);\n\n // Select All Items UseCase\n const selectAllItemsUseCase = () => new SelectAllItemsUseCase(this.selectedRepository);\n\n // Unselect All Items UseCase\n const unselectAllItemsUseCase = () => new UnselectAllItemsUseCase(this.selectedRepository);\n\n // Sort Items UseCase\n const sortItemsUseCase = () => new SortItemsUseCase(this.sortingRepository);\n\n // Search Items UseCase\n const searchItemsUseCase = () => new SearchItemsUseCase(this.searchRepository);\n\n // List Items UseCase\n const listItemsUseCase = () => {\n const baseListItemsUseCase = new ListItemsUseCase(this.itemsRepository);\n const listItemsWithSearch = new ListItemsUseCaseWithSearch(\n this.searchRepository,\n baseListItemsUseCase\n );\n return new ListItemsUseCaseWithSorting(this.sortingRepository, listItemsWithSearch);\n };\n\n // List More Items UseCase\n const listMoreItemsUseCase = () => new ListMoreItemsUseCase(this.itemsRepository);\n\n // Delete Item UseCase\n const deleteItemUseCase = () => new DeleteItemUseCase(this.itemsRepository);\n\n // Restore Item UseCase\n const restoreItemUseCase = () => new RestoreItemUseCase(this.itemsRepository);\n\n // Get RestoredItem UseCase\n const getRestoredItemUseCase = () => new GetRestoredItemUseCase(this.itemsRepository);\n\n // Bulk Action UseCase\n const bulkActionUseCase = () => new BulkActionUseCase(this.itemsRepository);\n\n // Create controllers\n const listItems = new ListItemsController(listItemsUseCase);\n const listMoreItems = new ListMoreItemsController(listMoreItemsUseCase);\n const deleteItem = new DeleteItemController(deleteItemUseCase);\n const restoreItem = new RestoreItemController(restoreItemUseCase);\n const selectItems = new SelectItemsController(selectItemsUseCase);\n const selectAllItems = new SelectAllItemsController(selectAllItemsUseCase);\n const unselectAllItems = new UnselectAllItemsController(unselectAllItemsUseCase);\n const sortItems = new SortItemsController(listItemsUseCase, sortItemsUseCase);\n const searchItems = new SearchItemsController(listItemsUseCase, searchItemsUseCase);\n const getRestoredItemById = new GetRestoredItemByIdController(getRestoredItemUseCase);\n const restoreBulkAction = new BulkActionsController(\n bulkActionUseCase,\n this.restoreBulkActionName\n );\n const deleteBulkAction = new BulkActionsController(\n bulkActionUseCase,\n this.deleteBulkActionName\n );\n\n return {\n listItems,\n listMoreItems,\n deleteItem,\n restoreItem,\n restoreBulkAction,\n deleteBulkAction,\n selectItems,\n selectAllItems,\n unselectAllItems,\n sortItems,\n searchItems,\n getRestoredItemById\n };\n }\n}\n"],"names":["TrashBinControllers","itemsRepository","selectedRepository","sortingRepository","searchRepository","deleteBulkActionName","restoreBulkActionName","selectItemsUseCase","SelectItemsUseCase","selectAllItemsUseCase","SelectAllItemsUseCase","unselectAllItemsUseCase","UnselectAllItemsUseCase","sortItemsUseCase","SortItemsUseCase","searchItemsUseCase","SearchItemsUseCase","listItemsUseCase","baseListItemsUseCase","ListItemsUseCase","listItemsWithSearch","ListItemsUseCaseWithSearch","ListItemsUseCaseWithSorting","listMoreItemsUseCase","ListMoreItemsUseCase","deleteItemUseCase","DeleteItemUseCase","restoreItemUseCase","RestoreItemUseCase","getRestoredItemUseCase","GetRestoredItemUseCase","bulkActionUseCase","BulkActionUseCase","listItems","ListItemsController","listMoreItems","ListMoreItemsController","deleteItem","DeleteItemController","restoreItem","RestoreItemController","selectItems","SelectItemsController","selectAllItems","SelectAllItemsController","unselectAllItems","UnselectAllItemsController","sortItems","SortItemsController","searchItems","SearchItemsController","getRestoredItemById","GetRestoredItemByIdController","restoreBulkAction","BulkActionsController","deleteBulkAction"],"mappings":";;AAmCO,MAAMA;IAQT,YACIC,eAAyC,EACzCC,kBAA4C,EAC5CC,iBAAqC,EACrCC,gBAAmC,EACnCC,oBAA4B,EAC5BC,qBAA6B,CAC/B;QACE,IAAI,CAAC,eAAe,GAAGL;QACvB,IAAI,CAAC,kBAAkB,GAAGC;QAC1B,IAAI,CAAC,iBAAiB,GAAGC;QACzB,IAAI,CAAC,gBAAgB,GAAGC;QACxB,IAAI,CAAC,oBAAoB,GAAGC;QAC5B,IAAI,CAAC,qBAAqB,GAAGC;IACjC;IAEA,iBAAiB;QAEb,MAAMC,qBAAqB,IAAM,IAAIC,mBAAmB,IAAI,CAAC,kBAAkB;QAG/E,MAAMC,wBAAwB,IAAM,IAAIC,sBAAsB,IAAI,CAAC,kBAAkB;QAGrF,MAAMC,0BAA0B,IAAM,IAAIC,wBAAwB,IAAI,CAAC,kBAAkB;QAGzF,MAAMC,mBAAmB,IAAM,IAAIC,iBAAiB,IAAI,CAAC,iBAAiB;QAG1E,MAAMC,qBAAqB,IAAM,IAAIC,mBAAmB,IAAI,CAAC,gBAAgB;QAG7E,MAAMC,mBAAmB;YACrB,MAAMC,uBAAuB,IAAIC,iBAAiB,IAAI,CAAC,eAAe;YACtE,MAAMC,sBAAsB,IAAIC,2BAC5B,IAAI,CAAC,gBAAgB,EACrBH;YAEJ,OAAO,IAAII,4BAA4B,IAAI,CAAC,iBAAiB,EAAEF;QACnE;QAGA,MAAMG,uBAAuB,IAAM,IAAIC,qBAAqB,IAAI,CAAC,eAAe;QAGhF,MAAMC,oBAAoB,IAAM,IAAIC,kBAAkB,IAAI,CAAC,eAAe;QAG1E,MAAMC,qBAAqB,IAAM,IAAIC,mBAAmB,IAAI,CAAC,eAAe;QAG5E,MAAMC,yBAAyB,IAAM,IAAIC,uBAAuB,IAAI,CAAC,eAAe;QAGpF,MAAMC,oBAAoB,IAAM,IAAIC,kBAAkB,IAAI,CAAC,eAAe;QAG1E,MAAMC,YAAY,IAAIC,oBAAoBjB;QAC1C,MAAMkB,gBAAgB,IAAIC,wBAAwBb;QAClD,MAAMc,aAAa,IAAIC,qBAAqBb;QAC5C,MAAMc,cAAc,IAAIC,sBAAsBb;QAC9C,MAAMc,cAAc,IAAIC,sBAAsBnC;QAC9C,MAAMoC,iBAAiB,IAAIC,yBAAyBnC;QACpD,MAAMoC,mBAAmB,IAAIC,2BAA2BnC;QACxD,MAAMoC,YAAY,IAAIC,oBAAoB/B,kBAAkBJ;QAC5D,MAAMoC,cAAc,IAAIC,sBAAsBjC,kBAAkBF;QAChE,MAAMoC,sBAAsB,IAAIC,8BAA8BvB;QAC9D,MAAMwB,oBAAoB,IAAIC,sBAC1BvB,mBACA,IAAI,CAAC,qBAAqB;QAE9B,MAAMwB,mBAAmB,IAAID,sBACzBvB,mBACA,IAAI,CAAC,oBAAoB;QAG7B,OAAO;YACHE;YACAE;YACAE;YACAE;YACAc;YACAE;YACAd;YACAE;YACAE;YACAE;YACAE;YACAE;QACJ;IACJ;AACJ"}
@@ -2,60 +2,57 @@ import { makeAutoObservable } from "mobx";
2
2
  import { MetaMapper, SortingMapper } from "@webiny/app-utils";
3
3
  import { TrashBinItemMapper } from "../../Domain/Repositories/index.js";
4
4
  import { LoadingActions } from "../../types.js";
5
- export class TrashBinPresenter {
6
- constructor(itemsRepository, selectedRepository, sortingRepository, searchRepository, retentionPeriod, nameColumnId) {
7
- this.itemsRepository = itemsRepository;
8
- this.selectedRepository = selectedRepository;
9
- this.sortingRepository = sortingRepository;
10
- this.searchRepository = searchRepository;
11
- this.itemMapper = new TrashBinItemMapper();
12
- this.retentionPeriod = retentionPeriod;
13
- this.nameColumnId = nameColumnId;
14
- makeAutoObservable(this);
15
- }
16
- get vm() {
17
- return {
18
- items: this.mapItemsToDto(this.itemsRepository.getItems()),
19
- restoredItems: this.mapItemsToDto(this.itemsRepository.getRestoredItems()),
20
- selectedItems: this.mapItemsToDto(this.selectedRepository.getSelectedItems()),
21
- allowSelectAll: this.getAllowSelectAll(),
22
- isSelectedAll: this.selectedRepository.getSelectedAllItems(),
23
- meta: MetaMapper.toDto(this.itemsRepository.getMeta()),
24
- sorting: this.sortingRepository.get().map(sort => SortingMapper.fromDTOtoColumn(sort)),
25
- loading: this.itemsRepository.getLoading(),
26
- isEmptyView: this.getIsEmptyView(),
27
- isSearchView: this.getIsSearchView(),
28
- searchQuery: this.searchRepository.get(),
29
- searchLabel: "Search all items",
30
- nameColumnId: this.nameColumnId || "id",
31
- retentionPeriod: this.getRetentionPeriod()
32
- };
33
- }
34
- mapItemsToDto(items) {
35
- return items.map(item => {
36
- return this.itemMapper.toDTO(item);
37
- });
38
- }
39
- getIsEmptyView() {
40
- const loading = this.itemsRepository.getLoading();
41
- const items = this.itemsRepository.getItems();
42
- return !loading[LoadingActions.list] && !items.length;
43
- }
44
- getIsSearchView() {
45
- const loading = this.itemsRepository.getLoading();
46
- const items = this.itemsRepository.getItems();
47
- const searchQuery = this.searchRepository.get();
48
- return !loading[LoadingActions.list] && !items.length && !!searchQuery;
49
- }
50
- getRetentionPeriod() {
51
- if (this.retentionPeriod === 1) {
52
- return "1 day";
5
+ class TrashBinPresenter {
6
+ constructor(itemsRepository, selectedRepository, sortingRepository, searchRepository, retentionPeriod, nameColumnId){
7
+ this.itemsRepository = itemsRepository;
8
+ this.selectedRepository = selectedRepository;
9
+ this.sortingRepository = sortingRepository;
10
+ this.searchRepository = searchRepository;
11
+ this.itemMapper = new TrashBinItemMapper();
12
+ this.retentionPeriod = retentionPeriod;
13
+ this.nameColumnId = nameColumnId;
14
+ makeAutoObservable(this);
15
+ }
16
+ get vm() {
17
+ return {
18
+ items: this.mapItemsToDto(this.itemsRepository.getItems()),
19
+ restoredItems: this.mapItemsToDto(this.itemsRepository.getRestoredItems()),
20
+ selectedItems: this.mapItemsToDto(this.selectedRepository.getSelectedItems()),
21
+ allowSelectAll: this.getAllowSelectAll(),
22
+ isSelectedAll: this.selectedRepository.getSelectedAllItems(),
23
+ meta: MetaMapper.toDto(this.itemsRepository.getMeta()),
24
+ sorting: this.sortingRepository.get().map((sort)=>SortingMapper.fromDTOtoColumn(sort)),
25
+ loading: this.itemsRepository.getLoading(),
26
+ isEmptyView: this.getIsEmptyView(),
27
+ isSearchView: this.getIsSearchView(),
28
+ searchQuery: this.searchRepository.get(),
29
+ searchLabel: "Search all items",
30
+ nameColumnId: this.nameColumnId || "id",
31
+ retentionPeriod: this.getRetentionPeriod()
32
+ };
33
+ }
34
+ mapItemsToDto(items) {
35
+ return items.map((item)=>this.itemMapper.toDTO(item));
36
+ }
37
+ getIsEmptyView() {
38
+ const loading = this.itemsRepository.getLoading();
39
+ const items = this.itemsRepository.getItems();
40
+ return !loading[LoadingActions.list] && !items.length;
41
+ }
42
+ getIsSearchView() {
43
+ const loading = this.itemsRepository.getLoading();
44
+ const items = this.itemsRepository.getItems();
45
+ const searchQuery = this.searchRepository.get();
46
+ return !loading[LoadingActions.list] && !items.length && !!searchQuery;
47
+ }
48
+ getRetentionPeriod() {
49
+ if (1 === this.retentionPeriod) return "1 day";
50
+ return `${this.retentionPeriod} days`;
51
+ }
52
+ getAllowSelectAll() {
53
+ return this.itemsRepository.getMeta().hasMoreItems && !!this.itemsRepository.getItems().length && this.selectedRepository.getSelectedItems().length === this.itemsRepository.getItems().length;
53
54
  }
54
- return `${this.retentionPeriod} days`;
55
- }
56
- getAllowSelectAll() {
57
- return this.itemsRepository.getMeta().hasMoreItems && !!this.itemsRepository.getItems().length && this.selectedRepository.getSelectedItems().length === this.itemsRepository.getItems().length;
58
- }
59
55
  }
56
+ export { TrashBinPresenter };
60
57
 
61
58
  //# sourceMappingURL=TrashBinPresenter.js.map