@webiny/app-trash-bin 6.0.0-alpha.0 → 6.0.0-alpha.2

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 (150) hide show
  1. package/Domain/Models/TrashBinItem/ITrashBinItemMapper.d.ts +1 -1
  2. package/Domain/Models/TrashBinItem/ITrashBinItemMapper.js.map +1 -1
  3. package/Domain/Models/TrashBinItem/TrashBinItem.d.ts +3 -1
  4. package/Domain/Models/TrashBinItem/TrashBinItem.js.map +1 -1
  5. package/Domain/Repositories/Search/SearchRepository.d.ts +1 -1
  6. package/Domain/Repositories/Search/SearchRepository.js.map +1 -1
  7. package/Domain/Repositories/SelectedItems/ISelectedItemsRepository.d.ts +1 -1
  8. package/Domain/Repositories/SelectedItems/ISelectedItemsRepository.js.map +1 -1
  9. package/Domain/Repositories/SelectedItems/SelectedItemsRepository.d.ts +2 -2
  10. package/Domain/Repositories/SelectedItems/SelectedItemsRepository.js.map +1 -1
  11. package/Domain/Repositories/Sorting/SortingRepositoryWithDefaults.d.ts +1 -1
  12. package/Domain/Repositories/Sorting/SortingRepositoryWithDefaults.js.map +1 -1
  13. package/Domain/Repositories/TrashBinItems/ITrashBinItemsRepository.d.ts +3 -3
  14. package/Domain/Repositories/TrashBinItems/ITrashBinItemsRepository.js.map +1 -1
  15. package/Domain/Repositories/TrashBinItems/TrashBinItemMapper.d.ts +1 -2
  16. package/Domain/Repositories/TrashBinItems/TrashBinItemMapper.js +0 -1
  17. package/Domain/Repositories/TrashBinItems/TrashBinItemMapper.js.map +1 -1
  18. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepository.d.ts +7 -5
  19. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepository.js.map +1 -1
  20. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepositoryFactory.d.ts +3 -3
  21. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepositoryFactory.js.map +1 -1
  22. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepositoryWithLoading.d.ts +3 -3
  23. package/Domain/Repositories/TrashBinItems/TrashBinItemsRepositoryWithLoading.js.map +1 -1
  24. package/Gateways/TrashBinBulkActions/ITrashBinBulkActionsGateway.d.ts +1 -1
  25. package/Gateways/TrashBinBulkActions/ITrashBinBulkActionsGateway.js.map +1 -1
  26. package/Gateways/TrashBinListItems/ITrashBinListGateway.d.ts +1 -1
  27. package/Gateways/TrashBinListItems/ITrashBinListGateway.js.map +1 -1
  28. package/Presentation/TrashBin/TrashBin.d.ts +3 -3
  29. package/Presentation/TrashBin/TrashBin.js.map +1 -1
  30. package/Presentation/TrashBin/TrashBin.test.js.map +1 -1
  31. package/Presentation/TrashBin/TrashBinControllers.d.ts +2 -2
  32. package/Presentation/TrashBin/TrashBinControllers.js.map +1 -1
  33. package/Presentation/TrashBin/TrashBinPresenter.d.ts +3 -3
  34. package/Presentation/TrashBin/TrashBinPresenter.js +7 -5
  35. package/Presentation/TrashBin/TrashBinPresenter.js.map +1 -1
  36. package/Presentation/TrashBin/controllers/BulkAction/BulkActionsController.d.ts +3 -3
  37. package/Presentation/TrashBin/controllers/BulkAction/BulkActionsController.js.map +1 -1
  38. package/Presentation/TrashBin/controllers/BulkAction/IBulkActionsController.d.ts +1 -1
  39. package/Presentation/TrashBin/controllers/BulkAction/IBulkActionsController.js.map +1 -1
  40. package/Presentation/TrashBin/controllers/DeleteItem/DeleteItemController.d.ts +2 -2
  41. package/Presentation/TrashBin/controllers/DeleteItem/DeleteItemController.js.map +1 -1
  42. package/Presentation/TrashBin/controllers/GetRestoredItemById/GetRestoredItemByIdController.d.ts +2 -3
  43. package/Presentation/TrashBin/controllers/GetRestoredItemById/GetRestoredItemByIdController.js.map +1 -1
  44. package/Presentation/TrashBin/controllers/GetRestoredItemById/IGetRestoredItemByIdController.d.ts +1 -1
  45. package/Presentation/TrashBin/controllers/GetRestoredItemById/IGetRestoredItemByIdController.js.map +1 -1
  46. package/Presentation/TrashBin/controllers/ListItems/ListItemsController.d.ts +2 -2
  47. package/Presentation/TrashBin/controllers/ListItems/ListItemsController.js.map +1 -1
  48. package/Presentation/TrashBin/controllers/ListMoreItems/ListMoreItemsController.d.ts +2 -2
  49. package/Presentation/TrashBin/controllers/ListMoreItems/ListMoreItemsController.js.map +1 -1
  50. package/Presentation/TrashBin/controllers/RestoreItem/RestoreItemController.d.ts +2 -2
  51. package/Presentation/TrashBin/controllers/RestoreItem/RestoreItemController.js.map +1 -1
  52. package/Presentation/TrashBin/controllers/SearchItems/SearchItemsController.d.ts +2 -2
  53. package/Presentation/TrashBin/controllers/SearchItems/SearchItemsController.js.map +1 -1
  54. package/Presentation/TrashBin/controllers/SelectAllItems/SelectAllItemsController.d.ts +2 -2
  55. package/Presentation/TrashBin/controllers/SelectAllItems/SelectAllItemsController.js.map +1 -1
  56. package/Presentation/TrashBin/controllers/SelectItems/ISelectItemsController.d.ts +1 -1
  57. package/Presentation/TrashBin/controllers/SelectItems/ISelectItemsController.js.map +1 -1
  58. package/Presentation/TrashBin/controllers/SelectItems/SelectItemsController.d.ts +3 -3
  59. package/Presentation/TrashBin/controllers/SelectItems/SelectItemsController.js.map +1 -1
  60. package/Presentation/TrashBin/controllers/SortItems/ISortItemsController.d.ts +1 -1
  61. package/Presentation/TrashBin/controllers/SortItems/ISortItemsController.js.map +1 -1
  62. package/Presentation/TrashBin/controllers/SortItems/SortItemsController.d.ts +3 -3
  63. package/Presentation/TrashBin/controllers/SortItems/SortItemsController.js.map +1 -1
  64. package/Presentation/TrashBin/controllers/UnselectAllItems/UnselectAllItemsController.d.ts +2 -2
  65. package/Presentation/TrashBin/controllers/UnselectAllItems/UnselectAllItemsController.js.map +1 -1
  66. package/Presentation/TrashBinRenderer/TrashBinRenderer.d.ts +2 -2
  67. package/Presentation/TrashBinRenderer/TrashBinRenderer.js.map +1 -1
  68. package/Presentation/abstractions/ITrashBinControllers.d.ts +1 -1
  69. package/Presentation/abstractions/ITrashBinControllers.js.map +1 -1
  70. package/Presentation/abstractions/ITrashBinPresenter.d.ts +3 -3
  71. package/Presentation/abstractions/ITrashBinPresenter.js.map +1 -1
  72. package/Presentation/components/BulkActions/RestoreItems/RestoreItems.js.map +1 -1
  73. package/Presentation/components/Cells/CellActions/CellActions.js +1 -1
  74. package/Presentation/components/Cells/CellActions/CellActions.js.map +1 -1
  75. package/Presentation/components/Cells/CellCreatedBy/CellCreatedBy.js +1 -1
  76. package/Presentation/components/Cells/CellCreatedBy/CellCreatedBy.js.map +1 -1
  77. package/Presentation/components/Cells/CellDeletedBy/CellDeletedBy.js +1 -1
  78. package/Presentation/components/Cells/CellDeletedBy/CellDeletedBy.js.map +1 -1
  79. package/Presentation/components/Cells/CellDeletedOn/CellDeletedOn.js +1 -1
  80. package/Presentation/components/Cells/CellDeletedOn/CellDeletedOn.js.map +1 -1
  81. package/Presentation/components/Cells/CellTitle/CellTitle.js +1 -1
  82. package/Presentation/components/Cells/CellTitle/CellTitle.js.map +1 -1
  83. package/Presentation/components/Table/Table.js +10 -4
  84. package/Presentation/components/Table/Table.js.map +1 -1
  85. package/Presentation/configs/list/Browser/BulkAction.d.ts +3 -3
  86. package/Presentation/configs/list/Browser/BulkAction.js +1 -1
  87. package/Presentation/configs/list/Browser/BulkAction.js.map +1 -1
  88. package/Presentation/configs/list/Browser/EntryAction.d.ts +2 -2
  89. package/Presentation/configs/list/Browser/EntryAction.js +1 -2
  90. package/Presentation/configs/list/Browser/EntryAction.js.map +1 -1
  91. package/Presentation/configs/list/Browser/Table/Column.d.ts +10 -5
  92. package/Presentation/configs/list/Browser/Table/Column.js +1 -2
  93. package/Presentation/configs/list/Browser/Table/Column.js.map +1 -1
  94. package/Presentation/configs/list/Browser/Table/Sorting.d.ts +2 -2
  95. package/Presentation/configs/list/Browser/Table/Sorting.js +1 -2
  96. package/Presentation/configs/list/Browser/Table/Sorting.js.map +1 -1
  97. package/Presentation/configs/list/Browser/Table/index.d.ts +9 -4
  98. package/Presentation/configs/list/Browser/Table/index.js.map +1 -1
  99. package/Presentation/configs/list/Browser/index.d.ts +10 -5
  100. package/Presentation/configs/list/Browser/index.js.map +1 -1
  101. package/Presentation/configs/list/TrashBinListConfig.d.ts +7 -2
  102. package/Presentation/configs/list/TrashBinListConfig.js.map +1 -1
  103. package/Presentation/hooks/useDeleteTrashBinItem.d.ts +1 -1
  104. package/Presentation/hooks/useDeleteTrashBinItem.js.map +1 -1
  105. package/Presentation/hooks/useRestoreTrashBinItem.d.ts +1 -1
  106. package/Presentation/hooks/useRestoreTrashBinItem.js.map +1 -1
  107. package/Presentation/hooks/useTrashBin.d.ts +4 -4
  108. package/Presentation/hooks/useTrashBin.js +1 -1
  109. package/Presentation/hooks/useTrashBin.js.map +1 -1
  110. package/Presentation/hooks/useTrashBinItem.d.ts +1 -1
  111. package/Presentation/hooks/useTrashBinItem.js.map +1 -1
  112. package/Presentation/index.d.ts +2 -2
  113. package/Presentation/index.js.map +1 -1
  114. package/UseCases/BulkAction/BulkActionUseCase.d.ts +3 -3
  115. package/UseCases/BulkAction/BulkActionUseCase.js.map +1 -1
  116. package/UseCases/BulkAction/IBulkActionUseCase.d.ts +1 -1
  117. package/UseCases/BulkAction/IBulkActionUseCase.js.map +1 -1
  118. package/UseCases/DeleteItem/DeleteItemUseCase.d.ts +2 -2
  119. package/UseCases/DeleteItem/DeleteItemUseCase.js.map +1 -1
  120. package/UseCases/GetRestoredItem/GetRestoredItemUseCase.d.ts +2 -2
  121. package/UseCases/GetRestoredItem/GetRestoredItemUseCase.js.map +1 -1
  122. package/UseCases/GetRestoredItem/IGetRestoredItemUseCase.d.ts +1 -1
  123. package/UseCases/GetRestoredItem/IGetRestoredItemUseCase.js.map +1 -1
  124. package/UseCases/ListItems/IListItemsUseCase.d.ts +1 -1
  125. package/UseCases/ListItems/IListItemsUseCase.js.map +1 -1
  126. package/UseCases/ListItems/ListItemsUseCase.d.ts +3 -3
  127. package/UseCases/ListItems/ListItemsUseCase.js.map +1 -1
  128. package/UseCases/ListItems/ListItemsUseCaseWithSearch.d.ts +3 -3
  129. package/UseCases/ListItems/ListItemsUseCaseWithSearch.js.map +1 -1
  130. package/UseCases/ListItems/ListItemsUseCaseWithSorting.d.ts +3 -3
  131. package/UseCases/ListItems/ListItemsUseCaseWithSorting.js.map +1 -1
  132. package/UseCases/ListMoreItems/ListMoreItemsUseCase.d.ts +2 -2
  133. package/UseCases/ListMoreItems/ListMoreItemsUseCase.js.map +1 -1
  134. package/UseCases/RestoreItem/RestoreItemUseCase.d.ts +2 -2
  135. package/UseCases/RestoreItem/RestoreItemUseCase.js.map +1 -1
  136. package/UseCases/SearchItems/SearchItemsUseCase.d.ts +2 -2
  137. package/UseCases/SearchItems/SearchItemsUseCase.js.map +1 -1
  138. package/UseCases/SelectAllItems/SelectAllItemsUseCase.d.ts +2 -2
  139. package/UseCases/SelectAllItems/SelectAllItemsUseCase.js.map +1 -1
  140. package/UseCases/SelectItems/ISelectItemsUseCase.d.ts +1 -1
  141. package/UseCases/SelectItems/ISelectItemsUseCase.js.map +1 -1
  142. package/UseCases/SelectItems/SelectItemsUseCase.d.ts +2 -2
  143. package/UseCases/SelectItems/SelectItemsUseCase.js.map +1 -1
  144. package/UseCases/SortItems/ISortItemsUseCase.d.ts +1 -1
  145. package/UseCases/SortItems/ISortItemsUseCase.js.map +1 -1
  146. package/UseCases/SortItems/SortItemsUseCase.d.ts +2 -2
  147. package/UseCases/SortItems/SortItemsUseCase.js.map +1 -1
  148. package/UseCases/UnSelectAllItems/UnselectAllItemsUseCase.d.ts +2 -2
  149. package/UseCases/UnSelectAllItems/UnselectAllItemsUseCase.js.map +1 -1
  150. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"names":["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","describe","item1","folderId","Date","toString","custom","item2","item3","item4","listGateway","jest","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","beforeEach","clearAllMocks","it","listPromise","listItems","expect","vm","toMatchObject","items","loading","list","toHaveBeenCalledTimes","toHaveBeenCalledWith","sort","$selectable","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 { TrashBinPresenter } from \"./TrashBinPresenter\";\nimport { LoadingRepository, MetaRepository, Sorting, SortingRepository } from \"@webiny/app-utils\";\nimport { LoadingActions, TrashBinIdentity, TrashBinLocation } from \"~/types\";\nimport { TrashBinControllers } from \"~/Presentation/TrashBin/TrashBinControllers\";\nimport {\n ITrashBinBulkActionsGateway,\n ITrashBinDeleteItemGateway,\n ITrashBinListGateway,\n ITrashBinRestoreItemGateway\n} from \"~/Gateways\";\nimport { ITrashBinItemMapper } from \"~/Domain/Models/TrashBinItem\";\nimport { SearchRepository } from \"~/Domain/Repositories/Search\";\nimport { SelectedItemsRepository } from \"~/Domain/Repositories/SelectedItems\";\nimport { SortingRepositoryWithDefaults } from \"~/Domain/Repositories/Sorting\";\nimport {\n TrashBinItemsRepository,\n TrashBinItemsRepositoryWithLoading\n} from \"~/Domain/Repositories/TrashBinItems\";\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: jest.fn().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: jest.fn().mockImplementation(() => {\n return Promise.resolve(true);\n })\n });\n\n const restoreItemGateway = createBinRestoreItemGateway({\n execute: jest.fn().mockImplementation(() => {\n return Promise.resolve(item1);\n })\n });\n\n const bulkActionGateway = createBinBulkActionsGateway({\n execute: jest.fn().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 jest.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 $selectable: true,\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n $selectable: true,\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n $selectable: true,\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: jest\n .fn()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 4, cursor: \"IjMi\", hasMoreItems: true }\n ]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item4],\n { totalCount: 4, cursor: null, hasMoreItems: false }\n ]);\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 $selectable: true,\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n $selectable: true,\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n $selectable: true,\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-4\",\n $selectable: true,\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: jest\n .fn()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\n })\n .mockImplementation(() => {\n return Promise.resolve([\n [item3, item2, item1],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\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 $selectable: true,\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n $selectable: true,\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-1\",\n $selectable: true,\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: jest\n .fn()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1],\n { totalCount: 1, cursor: null, hasMoreItems: false }\n ]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [],\n { totalCount: 0, cursor: null, hasMoreItems: false }\n ]);\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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: jest.fn().mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 4, cursor: \"IjMi\", hasMoreItems: true }\n ]);\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: jest.fn().mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\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,"names":["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","describe","item1","folderId","Date","toString","custom","item2","item3","item4","listGateway","jest","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","beforeEach","clearAllMocks","it","listPromise","listItems","expect","vm","toMatchObject","items","loading","list","toHaveBeenCalledTimes","toHaveBeenCalledWith","sort","$selectable","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 { TrashBinPresenter } from \"./TrashBinPresenter\";\nimport type { Sorting } from \"@webiny/app-utils\";\nimport { LoadingRepository, MetaRepository, SortingRepository } from \"@webiny/app-utils\";\nimport type { TrashBinIdentity, TrashBinLocation } from \"~/types\";\nimport { LoadingActions } from \"~/types\";\nimport { TrashBinControllers } from \"~/Presentation/TrashBin/TrashBinControllers\";\nimport type {\n ITrashBinBulkActionsGateway,\n ITrashBinDeleteItemGateway,\n ITrashBinListGateway,\n ITrashBinRestoreItemGateway\n} from \"~/Gateways\";\nimport type { ITrashBinItemMapper } from \"~/Domain/Models/TrashBinItem\";\nimport { SearchRepository } from \"~/Domain/Repositories/Search\";\nimport { SelectedItemsRepository } from \"~/Domain/Repositories/SelectedItems\";\nimport { SortingRepositoryWithDefaults } from \"~/Domain/Repositories/Sorting\";\nimport {\n TrashBinItemsRepository,\n TrashBinItemsRepositoryWithLoading\n} from \"~/Domain/Repositories/TrashBinItems\";\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: jest.fn().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: jest.fn().mockImplementation(() => {\n return Promise.resolve(true);\n })\n });\n\n const restoreItemGateway = createBinRestoreItemGateway({\n execute: jest.fn().mockImplementation(() => {\n return Promise.resolve(item1);\n })\n });\n\n const bulkActionGateway = createBinBulkActionsGateway({\n execute: jest.fn().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 jest.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 $selectable: true,\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n $selectable: true,\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n $selectable: true,\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: jest\n .fn()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 4, cursor: \"IjMi\", hasMoreItems: true }\n ]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item4],\n { totalCount: 4, cursor: null, hasMoreItems: false }\n ]);\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 $selectable: true,\n title: \"Item 1\",\n createdBy: identity1,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n $selectable: true,\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-3\",\n $selectable: true,\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-4\",\n $selectable: true,\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: jest\n .fn()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\n })\n .mockImplementation(() => {\n return Promise.resolve([\n [item3, item2, item1],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\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 $selectable: true,\n title: \"Item 3\",\n createdBy: identity2,\n deletedBy: identity2,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-2\",\n $selectable: true,\n title: \"Item 2\",\n createdBy: identity1,\n deletedBy: identity1,\n deletedOn: expect.any(String)\n },\n {\n id: \"item-1\",\n $selectable: true,\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: jest\n .fn()\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [item1],\n { totalCount: 1, cursor: null, hasMoreItems: false }\n ]);\n })\n .mockImplementationOnce(() => {\n return Promise.resolve([\n [],\n { totalCount: 0, cursor: null, hasMoreItems: false }\n ]);\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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 $selectable: true,\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: jest.fn().mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 4, cursor: \"IjMi\", hasMoreItems: true }\n ]);\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: jest.fn().mockImplementation(() => {\n return Promise.resolve([\n [item1, item2, item3],\n { totalCount: 3, cursor: null, hasMoreItems: false }\n ]);\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,5 +1,5 @@
1
- import { ISortingRepository } from "@webiny/app-utils";
2
- import { ISearchRepository, ISelectedItemsRepository, ITrashBinItemsRepository } from "../../Domain";
1
+ import type { ISortingRepository } from "@webiny/app-utils";
2
+ import type { ISearchRepository, ISelectedItemsRepository, ITrashBinItemsRepository } from "../../Domain";
3
3
  import { BulkActionsController, DeleteItemController, GetRestoredItemByIdController, ListItemsController, ListMoreItemsController, RestoreItemController, SearchItemsController, SelectAllItemsController, SelectItemsController, SortItemsController, UnselectAllItemsController } from "./controllers";
4
4
  export declare class TrashBinControllers {
5
5
  private readonly itemsRepository;
@@ -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 { ISortingRepository } from \"@webiny/app-utils\";\nimport { ISearchRepository, ISelectedItemsRepository, ITrashBinItemsRepository } from \"~/Domain\";\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\";\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\";\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,"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\";\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\";\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\";\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":"AAMA,SACIA,qBAAqB,EACrBC,oBAAoB,EACpBC,6BAA6B,EAC7BC,mBAAmB,EACnBC,uBAAuB,EACvBC,qBAAqB,EACrBC,qBAAqB,EACrBC,wBAAwB,EACxBC,qBAAqB,EACrBC,mBAAmB,EACnBC,0BAA0B;AAE9B,SACIC,iBAAiB,EACjBC,iBAAiB,EACjBC,sBAAsB,EACtBC,gBAAgB,EAChBC,0BAA0B,EAC1BC,2BAA2B,EAC3BC,oBAAoB,EACpBC,kBAAkB,EAClBC,kBAAkB,EAClBC,qBAAqB,EACrBC,kBAAkB,EAClBC,gBAAgB,EAChBC,uBAAuB;AAG3B,OAAO,MAAMC,mBAAmB,CAAC;EAQ7BC,WAAWA,CACPC,eAAyC,EACzCC,kBAA4C,EAC5CC,iBAAqC,EACrCC,gBAAmC,EACnCC,oBAA4B,EAC5BC,qBAA6B,EAC/B;IACE,IAAI,CAACL,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACC,kBAAkB,GAAGA,kBAAkB;IAC5C,IAAI,CAACC,iBAAiB,GAAGA,iBAAiB;IAC1C,IAAI,CAACC,gBAAgB,GAAGA,gBAAgB;IACxC,IAAI,CAACC,oBAAoB,GAAGA,oBAAoB;IAChD,IAAI,CAACC,qBAAqB,GAAGA,qBAAqB;EACtD;EAEAC,cAAcA,CAAA,EAAG;IACb;IACA,MAAMC,kBAAkB,GAAGA,CAAA,KAAM,IAAIZ,kBAAkB,CAAC,IAAI,CAACM,kBAAkB,CAAC;;IAEhF;IACA,MAAMO,qBAAqB,GAAGA,CAAA,KAAM,IAAId,qBAAqB,CAAC,IAAI,CAACO,kBAAkB,CAAC;;IAEtF;IACA,MAAMQ,uBAAuB,GAAGA,CAAA,KAAM,IAAIZ,uBAAuB,CAAC,IAAI,CAACI,kBAAkB,CAAC;;IAE1F;IACA,MAAMS,gBAAgB,GAAGA,CAAA,KAAM,IAAId,gBAAgB,CAAC,IAAI,CAACM,iBAAiB,CAAC;;IAE3E;IACA,MAAMS,kBAAkB,GAAGA,CAAA,KAAM,IAAIlB,kBAAkB,CAAC,IAAI,CAACU,gBAAgB,CAAC;;IAE9E;IACA,MAAMS,gBAAgB,GAAGA,CAAA,KAAM;MAC3B,MAAMC,oBAAoB,GAAG,IAAIzB,gBAAgB,CAAC,IAAI,CAACY,eAAe,CAAC;MACvE,MAAMc,mBAAmB,GAAG,IAAIzB,0BAA0B,CACtD,IAAI,CAACc,gBAAgB,EACrBU,oBACJ,CAAC;MACD,OAAO,IAAIvB,2BAA2B,CAAC,IAAI,CAACY,iBAAiB,EAAEY,mBAAmB,CAAC;IACvF,CAAC;;IAED;IACA,MAAMC,oBAAoB,GAAGA,CAAA,KAAM,IAAIxB,oBAAoB,CAAC,IAAI,CAACS,eAAe,CAAC;;IAEjF;IACA,MAAMgB,iBAAiB,GAAGA,CAAA,KAAM,IAAI9B,iBAAiB,CAAC,IAAI,CAACc,eAAe,CAAC;;IAE3E;IACA,MAAMiB,kBAAkB,GAAGA,CAAA,KAAM,IAAIzB,kBAAkB,CAAC,IAAI,CAACQ,eAAe,CAAC;;IAE7E;IACA,MAAMkB,sBAAsB,GAAGA,CAAA,KAAM,IAAI/B,sBAAsB,CAAC,IAAI,CAACa,eAAe,CAAC;;IAErF;IACA,MAAMmB,iBAAiB,GAAGA,CAAA,KAAM,IAAIlC,iBAAiB,CAAC,IAAI,CAACe,eAAe,CAAC;;IAE3E;IACA,MAAMoB,SAAS,GAAG,IAAI3C,mBAAmB,CAACmC,gBAAgB,CAAC;IAC3D,MAAMS,aAAa,GAAG,IAAI3C,uBAAuB,CAACqC,oBAAoB,CAAC;IACvE,MAAMO,UAAU,GAAG,IAAI/C,oBAAoB,CAACyC,iBAAiB,CAAC;IAC9D,MAAMO,WAAW,GAAG,IAAI5C,qBAAqB,CAACsC,kBAAkB,CAAC;IACjE,MAAMO,WAAW,GAAG,IAAI1C,qBAAqB,CAACyB,kBAAkB,CAAC;IACjE,MAAMkB,cAAc,GAAG,IAAI5C,wBAAwB,CAAC2B,qBAAqB,CAAC;IAC1E,MAAMkB,gBAAgB,GAAG,IAAI1C,0BAA0B,CAACyB,uBAAuB,CAAC;IAChF,MAAMkB,SAAS,GAAG,IAAI5C,mBAAmB,CAAC6B,gBAAgB,EAAEF,gBAAgB,CAAC;IAC7E,MAAMkB,WAAW,GAAG,IAAIhD,qBAAqB,CAACgC,gBAAgB,EAAED,kBAAkB,CAAC;IACnF,MAAMkB,mBAAmB,GAAG,IAAIrD,6BAA6B,CAAC0C,sBAAsB,CAAC;IACrF,MAAMY,iBAAiB,GAAG,IAAIxD,qBAAqB,CAC/C6C,iBAAiB,EACjB,IAAI,CAACd,qBACT,CAAC;IACD,MAAM0B,gBAAgB,GAAG,IAAIzD,qBAAqB,CAC9C6C,iBAAiB,EACjB,IAAI,CAACf,oBACT,CAAC;IAED,OAAO;MACHgB,SAAS;MACTC,aAAa;MACbC,UAAU;MACVC,WAAW;MACXO,iBAAiB;MACjBC,gBAAgB;MAChBP,WAAW;MACXC,cAAc;MACdC,gBAAgB;MAChBC,SAAS;MACTC,WAAW;MACXC;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { ISortingRepository } from "@webiny/app-utils";
2
- import { ITrashBinItemsRepository, ISelectedItemsRepository, ISearchRepository } from "../../Domain/Repositories";
1
+ import type { ISortingRepository } from "@webiny/app-utils";
2
+ import type { ITrashBinItemsRepository, ISelectedItemsRepository, ISearchRepository } from "../../Domain/Repositories";
3
3
  export declare class TrashBinPresenter {
4
4
  private itemsRepository;
5
5
  private selectedRepository;
@@ -25,7 +25,7 @@ export declare class TrashBinPresenter {
25
25
  nameColumnId: string;
26
26
  retentionPeriod: string;
27
27
  };
28
- private mapItemsToDTOs;
28
+ private mapItemsToDto;
29
29
  private getIsEmptyView;
30
30
  private getIsSearchView;
31
31
  private getRetentionPeriod;
@@ -15,9 +15,9 @@ export class TrashBinPresenter {
15
15
  }
16
16
  get vm() {
17
17
  return {
18
- items: this.mapItemsToDTOs(this.itemsRepository.getItems()),
19
- restoredItems: this.mapItemsToDTOs(this.itemsRepository.getRestoredItems()),
20
- selectedItems: this.mapItemsToDTOs(this.selectedRepository.getSelectedItems()),
18
+ items: this.mapItemsToDto(this.itemsRepository.getItems()),
19
+ restoredItems: this.mapItemsToDto(this.itemsRepository.getRestoredItems()),
20
+ selectedItems: this.mapItemsToDto(this.selectedRepository.getSelectedItems()),
21
21
  allowSelectAll: this.getAllowSelectAll(),
22
22
  isSelectedAll: this.selectedRepository.getSelectedAllItems(),
23
23
  meta: MetaMapper.toDto(this.itemsRepository.getMeta()),
@@ -31,8 +31,10 @@ export class TrashBinPresenter {
31
31
  retentionPeriod: this.getRetentionPeriod()
32
32
  };
33
33
  }
34
- mapItemsToDTOs(items) {
35
- return items.map(item => this.itemMapper.toDTO(item));
34
+ mapItemsToDto(items) {
35
+ return items.map(item => {
36
+ return this.itemMapper.toDTO(item);
37
+ });
36
38
  }
37
39
  getIsEmptyView() {
38
40
  const loading = this.itemsRepository.getLoading();
@@ -1 +1 @@
1
- {"version":3,"names":["makeAutoObservable","MetaMapper","SortingMapper","TrashBinItemMapper","LoadingActions","TrashBinPresenter","constructor","itemsRepository","selectedRepository","sortingRepository","searchRepository","retentionPeriod","nameColumnId","itemMapper","vm","items","mapItemsToDTOs","getItems","restoredItems","getRestoredItems","selectedItems","getSelectedItems","allowSelectAll","getAllowSelectAll","isSelectedAll","getSelectedAllItems","meta","toDto","getMeta","sorting","get","map","sort","fromDTOtoColumn","loading","getLoading","isEmptyView","getIsEmptyView","isSearchView","getIsSearchView","searchQuery","searchLabel","getRetentionPeriod","item","toDTO","list","length","hasMoreItems"],"sources":["TrashBinPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport { ITrashBinItemMapper, TrashBinItem } from \"~/Domain\";\nimport { ISortingRepository, MetaMapper, SortingMapper } from \"@webiny/app-utils\";\nimport {\n TrashBinItemMapper,\n ITrashBinItemsRepository,\n ISelectedItemsRepository,\n ISearchRepository\n} from \"~/Domain/Repositories\";\nimport { LoadingActions } from \"~/types\";\n\nexport class TrashBinPresenter {\n private itemsRepository: ITrashBinItemsRepository;\n private selectedRepository: ISelectedItemsRepository;\n private sortingRepository: ISortingRepository;\n private searchRepository: ISearchRepository;\n private itemMapper: ITrashBinItemMapper<TrashBinItem>;\n private readonly retentionPeriod: number;\n private readonly nameColumnId: string | undefined;\n\n constructor(\n itemsRepository: ITrashBinItemsRepository,\n selectedRepository: ISelectedItemsRepository,\n sortingRepository: ISortingRepository,\n searchRepository: ISearchRepository,\n retentionPeriod: number,\n nameColumnId?: string\n ) {\n this.itemsRepository = itemsRepository;\n this.selectedRepository = selectedRepository;\n this.sortingRepository = sortingRepository;\n this.searchRepository = searchRepository;\n this.itemMapper = new TrashBinItemMapper();\n this.retentionPeriod = retentionPeriod;\n this.nameColumnId = nameColumnId;\n makeAutoObservable(this);\n }\n\n get vm() {\n return {\n items: this.mapItemsToDTOs(this.itemsRepository.getItems()),\n restoredItems: this.mapItemsToDTOs(this.itemsRepository.getRestoredItems()),\n selectedItems: this.mapItemsToDTOs(this.selectedRepository.getSelectedItems()),\n allowSelectAll: this.getAllowSelectAll(),\n isSelectedAll: this.selectedRepository.getSelectedAllItems(),\n meta: MetaMapper.toDto(this.itemsRepository.getMeta()),\n sorting: this.sortingRepository.get().map(sort => SortingMapper.fromDTOtoColumn(sort)),\n loading: this.itemsRepository.getLoading(),\n isEmptyView: this.getIsEmptyView(),\n isSearchView: this.getIsSearchView(),\n searchQuery: this.searchRepository.get(),\n searchLabel: \"Search all items\",\n nameColumnId: this.nameColumnId || \"id\",\n retentionPeriod: this.getRetentionPeriod()\n };\n }\n\n private mapItemsToDTOs(items: TrashBinItem[]) {\n return items.map(item => this.itemMapper.toDTO(item));\n }\n\n private getIsEmptyView() {\n const loading = this.itemsRepository.getLoading();\n const items = this.itemsRepository.getItems();\n return !loading[LoadingActions.list] && !items.length;\n }\n\n private getIsSearchView() {\n const loading = this.itemsRepository.getLoading();\n const items = this.itemsRepository.getItems();\n const searchQuery = this.searchRepository.get();\n return !loading[LoadingActions.list] && !items.length && !!searchQuery;\n }\n\n private getRetentionPeriod() {\n if (this.retentionPeriod === 1) {\n return \"1 day\";\n }\n return `${this.retentionPeriod} days`;\n }\n\n private getAllowSelectAll() {\n return (\n this.itemsRepository.getMeta().hasMoreItems &&\n !!this.itemsRepository.getItems().length &&\n this.selectedRepository.getSelectedItems().length ===\n this.itemsRepository.getItems().length\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["makeAutoObservable","MetaMapper","SortingMapper","TrashBinItemMapper","LoadingActions","TrashBinPresenter","constructor","itemsRepository","selectedRepository","sortingRepository","searchRepository","retentionPeriod","nameColumnId","itemMapper","vm","items","mapItemsToDto","getItems","restoredItems","getRestoredItems","selectedItems","getSelectedItems","allowSelectAll","getAllowSelectAll","isSelectedAll","getSelectedAllItems","meta","toDto","getMeta","sorting","get","map","sort","fromDTOtoColumn","loading","getLoading","isEmptyView","getIsEmptyView","isSearchView","getIsSearchView","searchQuery","searchLabel","getRetentionPeriod","item","toDTO","list","length","hasMoreItems"],"sources":["TrashBinPresenter.ts"],"sourcesContent":["import { makeAutoObservable } from \"mobx\";\nimport type { ITrashBinItemMapper, TrashBinItem } from \"~/Domain\";\nimport type { ISortingRepository } from \"@webiny/app-utils\";\nimport { MetaMapper, SortingMapper } from \"@webiny/app-utils\";\nimport type {\n ITrashBinItemsRepository,\n ISelectedItemsRepository,\n ISearchRepository\n} from \"~/Domain/Repositories\";\nimport { TrashBinItemMapper } from \"~/Domain/Repositories\";\nimport { LoadingActions } from \"~/types\";\n\nexport class TrashBinPresenter {\n private itemsRepository: ITrashBinItemsRepository;\n private selectedRepository: ISelectedItemsRepository;\n private sortingRepository: ISortingRepository;\n private searchRepository: ISearchRepository;\n private itemMapper: ITrashBinItemMapper<TrashBinItem>;\n private readonly retentionPeriod: number;\n private readonly nameColumnId: string | undefined;\n\n constructor(\n itemsRepository: ITrashBinItemsRepository,\n selectedRepository: ISelectedItemsRepository,\n sortingRepository: ISortingRepository,\n searchRepository: ISearchRepository,\n retentionPeriod: number,\n nameColumnId?: string\n ) {\n this.itemsRepository = itemsRepository;\n this.selectedRepository = selectedRepository;\n this.sortingRepository = sortingRepository;\n this.searchRepository = searchRepository;\n this.itemMapper = new TrashBinItemMapper();\n this.retentionPeriod = retentionPeriod;\n this.nameColumnId = nameColumnId;\n makeAutoObservable(this);\n }\n\n get vm() {\n return {\n items: this.mapItemsToDto(this.itemsRepository.getItems()),\n restoredItems: this.mapItemsToDto(this.itemsRepository.getRestoredItems()),\n selectedItems: this.mapItemsToDto(this.selectedRepository.getSelectedItems()),\n allowSelectAll: this.getAllowSelectAll(),\n isSelectedAll: this.selectedRepository.getSelectedAllItems(),\n meta: MetaMapper.toDto(this.itemsRepository.getMeta()),\n sorting: this.sortingRepository.get().map(sort => SortingMapper.fromDTOtoColumn(sort)),\n loading: this.itemsRepository.getLoading(),\n isEmptyView: this.getIsEmptyView(),\n isSearchView: this.getIsSearchView(),\n searchQuery: this.searchRepository.get(),\n searchLabel: \"Search all items\",\n nameColumnId: this.nameColumnId || \"id\",\n retentionPeriod: this.getRetentionPeriod()\n };\n }\n\n private mapItemsToDto(items: TrashBinItem[]) {\n return items.map(item => {\n return this.itemMapper.toDTO(item);\n });\n }\n\n private getIsEmptyView() {\n const loading = this.itemsRepository.getLoading();\n const items = this.itemsRepository.getItems();\n return !loading[LoadingActions.list] && !items.length;\n }\n\n private getIsSearchView() {\n const loading = this.itemsRepository.getLoading();\n const items = this.itemsRepository.getItems();\n const searchQuery = this.searchRepository.get();\n return !loading[LoadingActions.list] && !items.length && !!searchQuery;\n }\n\n private getRetentionPeriod() {\n if (this.retentionPeriod === 1) {\n return \"1 day\";\n }\n return `${this.retentionPeriod} days`;\n }\n\n private getAllowSelectAll() {\n return (\n this.itemsRepository.getMeta().hasMoreItems &&\n !!this.itemsRepository.getItems().length &&\n this.selectedRepository.getSelectedItems().length ===\n this.itemsRepository.getItems().length\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
- import { IBulkActionUseCase } from "../../../../UseCases";
2
- import { IBulkActionsController } from "./IBulkActionsController";
3
- import { TrashBinBulkActionsParams } from "../../../../types";
1
+ import type { IBulkActionUseCase } from "../../../../UseCases";
2
+ import type { IBulkActionsController } from "./IBulkActionsController";
3
+ import type { TrashBinBulkActionsParams } from "../../../../types";
4
4
  export declare class BulkActionsController implements IBulkActionsController {
5
5
  private readonly useCaseFactory;
6
6
  private readonly action;
@@ -1 +1 @@
1
- {"version":3,"names":["BulkActionsController","constructor","useCaseFactory","action","execute","params","bulkActionUseCase"],"sources":["BulkActionsController.ts"],"sourcesContent":["import { IBulkActionUseCase } from \"~/UseCases\";\nimport { IBulkActionsController } from \"./IBulkActionsController\";\nimport { TrashBinBulkActionsParams } from \"~/types\";\n\nexport class BulkActionsController implements IBulkActionsController {\n private readonly useCaseFactory: () => IBulkActionUseCase;\n private readonly action: string;\n\n constructor(useCaseFactory: () => IBulkActionUseCase, action: string) {\n this.useCaseFactory = useCaseFactory;\n this.action = action;\n }\n\n async execute(params: TrashBinBulkActionsParams) {\n const bulkActionUseCase = this.useCaseFactory();\n await bulkActionUseCase.execute(this.action, params);\n }\n}\n"],"mappings":"AAIA,OAAO,MAAMA,qBAAqB,CAAmC;EAIjEC,WAAWA,CAACC,cAAwC,EAAEC,MAAc,EAAE;IAClE,IAAI,CAACD,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,MAAM,GAAGA,MAAM;EACxB;EAEA,MAAMC,OAAOA,CAACC,MAAiC,EAAE;IAC7C,MAAMC,iBAAiB,GAAG,IAAI,CAACJ,cAAc,CAAC,CAAC;IAC/C,MAAMI,iBAAiB,CAACF,OAAO,CAAC,IAAI,CAACD,MAAM,EAAEE,MAAM,CAAC;EACxD;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["BulkActionsController","constructor","useCaseFactory","action","execute","params","bulkActionUseCase"],"sources":["BulkActionsController.ts"],"sourcesContent":["import type { IBulkActionUseCase } from \"~/UseCases\";\nimport type { IBulkActionsController } from \"./IBulkActionsController\";\nimport type { TrashBinBulkActionsParams } from \"~/types\";\n\nexport class BulkActionsController implements IBulkActionsController {\n private readonly useCaseFactory: () => IBulkActionUseCase;\n private readonly action: string;\n\n constructor(useCaseFactory: () => IBulkActionUseCase, action: string) {\n this.useCaseFactory = useCaseFactory;\n this.action = action;\n }\n\n async execute(params: TrashBinBulkActionsParams) {\n const bulkActionUseCase = this.useCaseFactory();\n await bulkActionUseCase.execute(this.action, params);\n }\n}\n"],"mappings":"AAIA,OAAO,MAAMA,qBAAqB,CAAmC;EAIjEC,WAAWA,CAACC,cAAwC,EAAEC,MAAc,EAAE;IAClE,IAAI,CAACD,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,MAAM,GAAGA,MAAM;EACxB;EAEA,MAAMC,OAAOA,CAACC,MAAiC,EAAE;IAC7C,MAAMC,iBAAiB,GAAG,IAAI,CAACJ,cAAc,CAAC,CAAC;IAC/C,MAAMI,iBAAiB,CAACF,OAAO,CAAC,IAAI,CAACD,MAAM,EAAEE,MAAM,CAAC;EACxD;AACJ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { TrashBinBulkActionsParams } from "../../../../types";
1
+ import type { TrashBinBulkActionsParams } from "../../../../types";
2
2
  export interface IBulkActionsController {
3
3
  execute: (params: TrashBinBulkActionsParams) => Promise<void>;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IBulkActionsController.ts"],"sourcesContent":["import { TrashBinBulkActionsParams } from \"~/types\";\n\nexport interface IBulkActionsController {\n execute: (params: TrashBinBulkActionsParams) => Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IBulkActionsController.ts"],"sourcesContent":["import type { TrashBinBulkActionsParams } from \"~/types\";\n\nexport interface IBulkActionsController {\n execute: (params: TrashBinBulkActionsParams) => Promise<void>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { IDeleteItemUseCase } from "../../../../UseCases";
2
- import { IDeleteItemController } from "./IDeleteItemController";
1
+ import type { IDeleteItemUseCase } from "../../../../UseCases";
2
+ import type { IDeleteItemController } from "./IDeleteItemController";
3
3
  export declare class DeleteItemController implements IDeleteItemController {
4
4
  private readonly useCaseFactory;
5
5
  constructor(useCaseFactory: () => IDeleteItemUseCase);
@@ -1 +1 @@
1
- {"version":3,"names":["DeleteItemController","constructor","useCaseFactory","execute","id","deleteItemUseCase"],"sources":["DeleteItemController.ts"],"sourcesContent":["import { IDeleteItemUseCase } from \"~/UseCases\";\nimport { IDeleteItemController } from \"./IDeleteItemController\";\n\nexport class DeleteItemController implements IDeleteItemController {\n private readonly useCaseFactory: () => IDeleteItemUseCase;\n\n constructor(useCaseFactory: () => IDeleteItemUseCase) {\n this.useCaseFactory = useCaseFactory;\n }\n\n async execute(id: string) {\n const deleteItemUseCase = this.useCaseFactory();\n await deleteItemUseCase.execute(id);\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,oBAAoB,CAAkC;EAG/DC,WAAWA,CAACC,cAAwC,EAAE;IAClD,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAACC,EAAU,EAAE;IACtB,MAAMC,iBAAiB,GAAG,IAAI,CAACH,cAAc,CAAC,CAAC;IAC/C,MAAMG,iBAAiB,CAACF,OAAO,CAACC,EAAE,CAAC;EACvC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["DeleteItemController","constructor","useCaseFactory","execute","id","deleteItemUseCase"],"sources":["DeleteItemController.ts"],"sourcesContent":["import type { IDeleteItemUseCase } from \"~/UseCases\";\nimport type { IDeleteItemController } from \"./IDeleteItemController\";\n\nexport class DeleteItemController implements IDeleteItemController {\n private readonly useCaseFactory: () => IDeleteItemUseCase;\n\n constructor(useCaseFactory: () => IDeleteItemUseCase) {\n this.useCaseFactory = useCaseFactory;\n }\n\n async execute(id: string) {\n const deleteItemUseCase = this.useCaseFactory();\n await deleteItemUseCase.execute(id);\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,oBAAoB,CAAkC;EAG/DC,WAAWA,CAACC,cAAwC,EAAE;IAClD,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAACC,EAAU,EAAE;IACtB,MAAMC,iBAAiB,GAAG,IAAI,CAACH,cAAc,CAAC,CAAC;IAC/C,MAAMG,iBAAiB,CAACF,OAAO,CAACC,EAAE,CAAC;EACvC;AACJ","ignoreList":[]}
@@ -1,12 +1,11 @@
1
- import { IGetRestoredItemUseCase } from "../../../../UseCases";
2
- import { IGetRestoredItemByIdController } from "./IGetRestoredItemByIdController";
1
+ import type { IGetRestoredItemUseCase } from "../../../../UseCases";
2
+ import type { IGetRestoredItemByIdController } from "./IGetRestoredItemByIdController";
3
3
  export declare class GetRestoredItemByIdController implements IGetRestoredItemByIdController {
4
4
  private readonly useCaseFactory;
5
5
  private itemMapper;
6
6
  constructor(useCaseFactory: () => IGetRestoredItemUseCase);
7
7
  execute(id: string): Promise<{
8
8
  id: string;
9
- $selectable: boolean;
10
9
  title: string;
11
10
  location: import("../../../../types").TrashBinLocation;
12
11
  createdBy: import("../../../../types").TrashBinIdentity;
@@ -1 +1 @@
1
- {"version":3,"names":["TrashBinItemMapper","GetRestoredItemByIdController","constructor","useCaseFactory","itemMapper","execute","id","getRestoredItemUseCase","item","toDTO","undefined"],"sources":["GetRestoredItemByIdController.ts"],"sourcesContent":["import { IGetRestoredItemUseCase } from \"~/UseCases\";\nimport { IGetRestoredItemByIdController } from \"./IGetRestoredItemByIdController\";\nimport { TrashBinItemMapper } from \"~/Domain/Repositories/TrashBinItems/TrashBinItemMapper\";\n\nexport class GetRestoredItemByIdController implements IGetRestoredItemByIdController {\n private readonly useCaseFactory: () => IGetRestoredItemUseCase;\n private itemMapper: TrashBinItemMapper;\n\n constructor(useCaseFactory: () => IGetRestoredItemUseCase) {\n this.useCaseFactory = useCaseFactory;\n this.itemMapper = new TrashBinItemMapper();\n }\n\n async execute(id: string) {\n const getRestoredItemUseCase = this.useCaseFactory();\n const item = await getRestoredItemUseCase.execute(id);\n return item ? this.itemMapper.toDTO(item) : undefined;\n }\n}\n"],"mappings":"AAEA,SAASA,kBAAkB;AAE3B,OAAO,MAAMC,6BAA6B,CAA2C;EAIjFC,WAAWA,CAACC,cAA6C,EAAE;IACvD,IAAI,CAACA,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,UAAU,GAAG,IAAIJ,kBAAkB,CAAC,CAAC;EAC9C;EAEA,MAAMK,OAAOA,CAACC,EAAU,EAAE;IACtB,MAAMC,sBAAsB,GAAG,IAAI,CAACJ,cAAc,CAAC,CAAC;IACpD,MAAMK,IAAI,GAAG,MAAMD,sBAAsB,CAACF,OAAO,CAACC,EAAE,CAAC;IACrD,OAAOE,IAAI,GAAG,IAAI,CAACJ,UAAU,CAACK,KAAK,CAACD,IAAI,CAAC,GAAGE,SAAS;EACzD;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["TrashBinItemMapper","GetRestoredItemByIdController","constructor","useCaseFactory","itemMapper","execute","id","getRestoredItemUseCase","item","toDTO","undefined"],"sources":["GetRestoredItemByIdController.ts"],"sourcesContent":["import type { IGetRestoredItemUseCase } from \"~/UseCases\";\nimport type { IGetRestoredItemByIdController } from \"./IGetRestoredItemByIdController\";\nimport { TrashBinItemMapper } from \"~/Domain/Repositories/TrashBinItems/TrashBinItemMapper\";\n\nexport class GetRestoredItemByIdController implements IGetRestoredItemByIdController {\n private readonly useCaseFactory: () => IGetRestoredItemUseCase;\n private itemMapper: TrashBinItemMapper;\n\n constructor(useCaseFactory: () => IGetRestoredItemUseCase) {\n this.useCaseFactory = useCaseFactory;\n this.itemMapper = new TrashBinItemMapper();\n }\n\n async execute(id: string) {\n const getRestoredItemUseCase = this.useCaseFactory();\n const item = await getRestoredItemUseCase.execute(id);\n return item ? this.itemMapper.toDTO(item) : undefined;\n }\n}\n"],"mappings":"AAEA,SAASA,kBAAkB;AAE3B,OAAO,MAAMC,6BAA6B,CAA2C;EAIjFC,WAAWA,CAACC,cAA6C,EAAE;IACvD,IAAI,CAACA,cAAc,GAAGA,cAAc;IACpC,IAAI,CAACC,UAAU,GAAG,IAAIJ,kBAAkB,CAAC,CAAC;EAC9C;EAEA,MAAMK,OAAOA,CAACC,EAAU,EAAE;IACtB,MAAMC,sBAAsB,GAAG,IAAI,CAACJ,cAAc,CAAC,CAAC;IACpD,MAAMK,IAAI,GAAG,MAAMD,sBAAsB,CAACF,OAAO,CAACC,EAAE,CAAC;IACrD,OAAOE,IAAI,GAAG,IAAI,CAACJ,UAAU,CAACK,KAAK,CAACD,IAAI,CAAC,GAAGE,SAAS;EACzD;AACJ","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { TrashBinItemDTO } from "../../../../Domain";
1
+ import type { TrashBinItemDTO } from "../../../../Domain";
2
2
  export interface IGetRestoredItemByIdController {
3
3
  execute(id: string): Promise<TrashBinItemDTO | undefined>;
4
4
  }
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["IGetRestoredItemByIdController.ts"],"sourcesContent":["import { TrashBinItemDTO } from \"~/Domain\";\n\nexport interface IGetRestoredItemByIdController {\n execute(id: string): Promise<TrashBinItemDTO | undefined>;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["IGetRestoredItemByIdController.ts"],"sourcesContent":["import type { TrashBinItemDTO } from \"~/Domain\";\n\nexport interface IGetRestoredItemByIdController {\n execute(id: string): Promise<TrashBinItemDTO | undefined>;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { IListItemsController } from "./IListItemsController";
2
- import { IListItemsUseCase } from "../../../../UseCases";
1
+ import type { IListItemsController } from "./IListItemsController";
2
+ import type { IListItemsUseCase } from "../../../../UseCases";
3
3
  export declare class ListItemsController implements IListItemsController {
4
4
  private readonly useCaseFactory;
5
5
  constructor(useCaseFactory: () => IListItemsUseCase);
@@ -1 +1 @@
1
- {"version":3,"names":["ListItemsController","constructor","useCaseFactory","execute","listItemsUseCase"],"sources":["ListItemsController.ts"],"sourcesContent":["import { IListItemsController } from \"./IListItemsController\";\nimport { IListItemsUseCase } from \"~/UseCases\";\n\nexport class ListItemsController implements IListItemsController {\n private readonly useCaseFactory: () => IListItemsUseCase;\n\n constructor(useCaseFactory: () => IListItemsUseCase) {\n this.useCaseFactory = useCaseFactory;\n }\n\n async execute() {\n const listItemsUseCase = this.useCaseFactory();\n await listItemsUseCase.execute();\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,mBAAmB,CAAiC;EAG7DC,WAAWA,CAACC,cAAuC,EAAE;IACjD,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,gBAAgB,GAAG,IAAI,CAACF,cAAc,CAAC,CAAC;IAC9C,MAAME,gBAAgB,CAACD,OAAO,CAAC,CAAC;EACpC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["ListItemsController","constructor","useCaseFactory","execute","listItemsUseCase"],"sources":["ListItemsController.ts"],"sourcesContent":["import type { IListItemsController } from \"./IListItemsController\";\nimport type { IListItemsUseCase } from \"~/UseCases\";\n\nexport class ListItemsController implements IListItemsController {\n private readonly useCaseFactory: () => IListItemsUseCase;\n\n constructor(useCaseFactory: () => IListItemsUseCase) {\n this.useCaseFactory = useCaseFactory;\n }\n\n async execute() {\n const listItemsUseCase = this.useCaseFactory();\n await listItemsUseCase.execute();\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,mBAAmB,CAAiC;EAG7DC,WAAWA,CAACC,cAAuC,EAAE;IACjD,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,gBAAgB,GAAG,IAAI,CAACF,cAAc,CAAC,CAAC;IAC9C,MAAME,gBAAgB,CAACD,OAAO,CAAC,CAAC;EACpC;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { IListMoreItemsUseCase } from "../../../../UseCases";
2
- import { IListMoreItemsController } from "./IListMoreItemsController";
1
+ import type { IListMoreItemsUseCase } from "../../../../UseCases";
2
+ import type { IListMoreItemsController } from "./IListMoreItemsController";
3
3
  export declare class ListMoreItemsController implements IListMoreItemsController {
4
4
  private readonly useCaseFactory;
5
5
  constructor(useCaseFactory: () => IListMoreItemsUseCase);
@@ -1 +1 @@
1
- {"version":3,"names":["ListMoreItemsController","constructor","useCaseFactory","execute","listMoreItemsUseCase"],"sources":["ListMoreItemsController.ts"],"sourcesContent":["import { IListItemsUseCase, IListMoreItemsUseCase } from \"~/UseCases\";\nimport { IListMoreItemsController } from \"./IListMoreItemsController\";\n\nexport class ListMoreItemsController implements IListMoreItemsController {\n private readonly useCaseFactory: () => IListItemsUseCase;\n\n constructor(useCaseFactory: () => IListMoreItemsUseCase) {\n this.useCaseFactory = useCaseFactory;\n }\n\n async execute() {\n const listMoreItemsUseCase = this.useCaseFactory();\n await listMoreItemsUseCase.execute();\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,uBAAuB,CAAqC;EAGrEC,WAAWA,CAACC,cAA2C,EAAE;IACrD,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,oBAAoB,GAAG,IAAI,CAACF,cAAc,CAAC,CAAC;IAClD,MAAME,oBAAoB,CAACD,OAAO,CAAC,CAAC;EACxC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["ListMoreItemsController","constructor","useCaseFactory","execute","listMoreItemsUseCase"],"sources":["ListMoreItemsController.ts"],"sourcesContent":["import type { IListItemsUseCase, IListMoreItemsUseCase } from \"~/UseCases\";\nimport type { IListMoreItemsController } from \"./IListMoreItemsController\";\n\nexport class ListMoreItemsController implements IListMoreItemsController {\n private readonly useCaseFactory: () => IListItemsUseCase;\n\n constructor(useCaseFactory: () => IListMoreItemsUseCase) {\n this.useCaseFactory = useCaseFactory;\n }\n\n async execute() {\n const listMoreItemsUseCase = this.useCaseFactory();\n await listMoreItemsUseCase.execute();\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,uBAAuB,CAAqC;EAGrEC,WAAWA,CAACC,cAA2C,EAAE;IACrD,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,oBAAoB,GAAG,IAAI,CAACF,cAAc,CAAC,CAAC;IAClD,MAAME,oBAAoB,CAACD,OAAO,CAAC,CAAC;EACxC;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { IRestoreItemUseCase } from "../../../../UseCases";
2
- import { IRestoreItemController } from "./IRestoreItemController";
1
+ import type { IRestoreItemUseCase } from "../../../../UseCases";
2
+ import type { IRestoreItemController } from "./IRestoreItemController";
3
3
  export declare class RestoreItemController implements IRestoreItemController {
4
4
  private readonly useCaseFactory;
5
5
  constructor(useCaseFactory: () => IRestoreItemUseCase);
@@ -1 +1 @@
1
- {"version":3,"names":["RestoreItemController","constructor","useCaseFactory","execute","id","restoreItemUseCase"],"sources":["RestoreItemController.ts"],"sourcesContent":["import { IRestoreItemUseCase } from \"~/UseCases\";\nimport { IRestoreItemController } from \"./IRestoreItemController\";\n\nexport class RestoreItemController implements IRestoreItemController {\n private readonly useCaseFactory: () => IRestoreItemUseCase;\n\n constructor(useCaseFactory: () => IRestoreItemUseCase) {\n this.useCaseFactory = useCaseFactory;\n }\n\n async execute(id: string) {\n const restoreItemUseCase = this.useCaseFactory();\n await restoreItemUseCase.execute(id);\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,qBAAqB,CAAmC;EAGjEC,WAAWA,CAACC,cAAyC,EAAE;IACnD,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAACC,EAAU,EAAE;IACtB,MAAMC,kBAAkB,GAAG,IAAI,CAACH,cAAc,CAAC,CAAC;IAChD,MAAMG,kBAAkB,CAACF,OAAO,CAACC,EAAE,CAAC;EACxC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["RestoreItemController","constructor","useCaseFactory","execute","id","restoreItemUseCase"],"sources":["RestoreItemController.ts"],"sourcesContent":["import type { IRestoreItemUseCase } from \"~/UseCases\";\nimport type { IRestoreItemController } from \"./IRestoreItemController\";\n\nexport class RestoreItemController implements IRestoreItemController {\n private readonly useCaseFactory: () => IRestoreItemUseCase;\n\n constructor(useCaseFactory: () => IRestoreItemUseCase) {\n this.useCaseFactory = useCaseFactory;\n }\n\n async execute(id: string) {\n const restoreItemUseCase = this.useCaseFactory();\n await restoreItemUseCase.execute(id);\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,qBAAqB,CAAmC;EAGjEC,WAAWA,CAACC,cAAyC,EAAE;IACnD,IAAI,CAACA,cAAc,GAAGA,cAAc;EACxC;EAEA,MAAMC,OAAOA,CAACC,EAAU,EAAE;IACtB,MAAMC,kBAAkB,GAAG,IAAI,CAACH,cAAc,CAAC,CAAC;IAChD,MAAMG,kBAAkB,CAACF,OAAO,CAACC,EAAE,CAAC;EACxC;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
- import { IListItemsUseCase, ISearchItemsUseCase } from "../../../../UseCases";
2
- import { ISearchItemsController } from "./ISearchItemsController";
1
+ import type { IListItemsUseCase, ISearchItemsUseCase } from "../../../../UseCases";
2
+ import type { ISearchItemsController } from "./ISearchItemsController";
3
3
  export declare class SearchItemsController implements ISearchItemsController {
4
4
  private readonly listItemsUseCaseFactory;
5
5
  private readonly searchItemsUseCaseFactory;