From b00966cf7b1d869f236d27e5e097f4b189be6eeb Mon Sep 17 00:00:00 2001 From: Dave Falke Date: Wed, 18 Sep 2024 23:05:43 -0400 Subject: [PATCH] remove generated files --- .../lib/Actions/UserDatasetUploadActions.d.ts | 152 ---- .../Actions/UserDatasetUploadActions.d.ts.map | 1 - .../lib/Actions/UserDatasetUploadActions.js | 37 - .../Actions/UserDatasetUploadActions.js.map | 1 - .../lib/Actions/UserDatasetsActions.d.ts | 236 ------ .../lib/Actions/UserDatasetsActions.d.ts.map | 1 - .../lib/Actions/UserDatasetsActions.js | 244 ------- .../lib/Actions/UserDatasetsActions.js.map | 1 - .../lib/Components/AllUploads.d.ts | 14 - .../lib/Components/AllUploads.d.ts.map | 1 - .../lib/Components/AllUploads.js | 372 ---------- .../lib/Components/AllUploads.js.map | 1 - .../lib/Components/DateTime.d.ts | 8 - .../lib/Components/DateTime.d.ts.map | 1 - .../lib/Components/DateTime.js | 21 - .../lib/Components/DateTime.js.map | 1 - .../Detail/BigwigDatasetDetail.d.ts | 11 - .../Detail/BigwigDatasetDetail.d.ts.map | 1 - .../Components/Detail/BigwigDatasetDetail.js | 106 --- .../Detail/BigwigDatasetDetail.js.map | 1 - .../Detail/BigwigGBrowseUploader.d.ts | 9 - .../Detail/BigwigGBrowseUploader.d.ts.map | 1 - .../Detail/BigwigGBrowseUploader.js | 62 -- .../Detail/BigwigGBrowseUploader.js.map | 1 - .../Detail/BigwigGBrowseUploader.scss | 37 - .../Components/Detail/BiomDatasetDetail.d.ts | 6 - .../Detail/BiomDatasetDetail.d.ts.map | 1 - .../Components/Detail/BiomDatasetDetail.js | 47 -- .../Detail/BiomDatasetDetail.js.map | 1 - .../Components/Detail/IsaDatasetDetail.d.ts | 6 - .../Detail/IsaDatasetDetail.d.ts.map | 1 - .../lib/Components/Detail/IsaDatasetDetail.js | 81 --- .../Components/Detail/IsaDatasetDetail.js.map | 1 - .../Detail/RnaSeqDatasetDetail.d.ts | 4 - .../Detail/RnaSeqDatasetDetail.d.ts.map | 1 - .../Components/Detail/RnaSeqDatasetDetail.js | 10 - .../Detail/RnaSeqDatasetDetail.js.map | 1 - .../Components/Detail/UserDatasetDetail.d.ts | 78 -- .../Detail/UserDatasetDetail.d.ts.map | 1 - .../Components/Detail/UserDatasetDetail.js | 674 ----------------- .../Detail/UserDatasetDetail.js.map | 1 - .../Components/Detail/UserDatasetDetail.scss | 106 --- .../lib/Components/EmptyState.d.ts | 8 - .../lib/Components/EmptyState.d.ts.map | 1 - .../lib/Components/EmptyState.js | 24 - .../lib/Components/EmptyState.js.map | 1 - .../lib/Components/List/UserDatasetList.d.ts | 134 ---- .../Components/List/UserDatasetList.d.ts.map | 1 - .../lib/Components/List/UserDatasetList.js | 679 ------------------ .../Components/List/UserDatasetList.js.map | 1 - .../lib/Components/List/UserDatasetList.scss | 19 - .../lib/Components/NoDatasetsMessage.d.ts | 13 - .../lib/Components/NoDatasetsMessage.d.ts.map | 1 - .../lib/Components/NoDatasetsMessage.js | 67 -- .../lib/Components/NoDatasetsMessage.js.map | 1 - .../Sharing/UserDatasetSharingModal.d.ts | 46 -- .../Sharing/UserDatasetSharingModal.d.ts.map | 1 - .../Sharing/UserDatasetSharingModal.js | 678 ----------------- .../Sharing/UserDatasetSharingModal.js.map | 1 - .../Sharing/UserDatasetSharingModal.scss | 192 ----- .../Sharing/UserDatasetSharingReducer.d.ts | 12 - .../UserDatasetSharingReducer.d.ts.map | 1 - .../Sharing/UserDatasetSharingReducer.js | 48 -- .../Sharing/UserDatasetSharingReducer.js.map | 1 - .../lib/Components/ThemedDeleteButton.d.ts | 7 - .../Components/ThemedDeleteButton.d.ts.map | 1 - .../lib/Components/ThemedDeleteButton.js | 52 -- .../lib/Components/ThemedDeleteButton.js.map | 1 - .../Components/ThemedGrantAccessButton.d.ts | 10 - .../ThemedGrantAccessButton.d.ts.map | 1 - .../lib/Components/ThemedGrantAccessButton.js | 56 -- .../Components/ThemedGrantAccessButton.js.map | 1 - .../lib/Components/UploadForm.d.ts | 65 -- .../lib/Components/UploadForm.d.ts.map | 1 - .../lib/Components/UploadForm.js | 620 ---------------- .../lib/Components/UploadForm.js.map | 1 - .../lib/Components/UploadForm.scss | 68 -- .../lib/Components/UserDatasetHelp.d.ts | 15 - .../lib/Components/UserDatasetHelp.d.ts.map | 1 - .../lib/Components/UserDatasetHelp.js | 288 -------- .../lib/Components/UserDatasetHelp.js.map | 1 - .../lib/Components/UserDatasetStatus.d.ts | 13 - .../lib/Components/UserDatasetStatus.d.ts.map | 1 - .../lib/Components/UserDatasetStatus.js | 68 -- .../lib/Components/UserDatasetStatus.js.map | 1 - .../lib/Components/UserDatasetUtils.d.ts | 10 - .../lib/Components/UserDatasetUtils.d.ts.map | 1 - .../lib/Components/UserDatasetUtils.js | 18 - .../lib/Components/UserDatasetUtils.js.map | 1 - .../lib/Components/UserDatasets.scss | 101 --- .../lib/Components/UserDatasetsWorkspace.d.ts | 14 - .../Components/UserDatasetsWorkspace.d.ts.map | 1 - .../lib/Components/UserDatasetsWorkspace.js | 146 ---- .../Components/UserDatasetsWorkspace.js.map | 1 - .../lib/Components/images/tut-step-1.jpg | Bin 311555 -> 0 bytes .../lib/Components/images/tut-step-2.jpg | Bin 280353 -> 0 bytes .../lib/Components/images/tut-step-3.jpg | Bin 137509 -> 0 bytes .../UserDatasetAllUploadsController.d.ts | 257 ------- .../UserDatasetAllUploadsController.d.ts.map | 1 - .../UserDatasetAllUploadsController.js | 74 -- .../UserDatasetAllUploadsController.js.map | 1 - .../UserDatasetDetailController.d.ts | 109 --- .../UserDatasetDetailController.d.ts.map | 1 - .../UserDatasetDetailController.js | 185 ----- .../UserDatasetDetailController.js.map | 1 - .../UserDatasetListController.d.ts | 144 ---- .../UserDatasetListController.d.ts.map | 1 - .../Controllers/UserDatasetListController.js | 161 ----- .../UserDatasetListController.js.map | 1 - .../UserDatasetNewUploadController.d.ts | 14 - .../UserDatasetNewUploadController.d.ts.map | 1 - .../UserDatasetNewUploadController.js | 147 ---- .../UserDatasetNewUploadController.js.map | 1 - .../lib/Controllers/UserDatasetRouter.d.ts | 31 - .../Controllers/UserDatasetRouter.d.ts.map | 1 - .../lib/Controllers/UserDatasetRouter.js | 69 -- .../lib/Controllers/UserDatasetRouter.js.map | 1 - .../lib/Hooks/project-filter.d.ts | 6 - .../lib/Hooks/project-filter.d.ts.map | 1 - .../lib/Hooks/project-filter.js | 71 -- .../lib/Hooks/project-filter.js.map | 1 - .../libs/user-datasets-legacy/lib/README.adoc | 1 - .../Service/UserDatasetUploadWrappers.d.ts | 42 -- .../UserDatasetUploadWrappers.d.ts.map | 1 - .../lib/Service/UserDatasetUploadWrappers.js | 324 --------- .../Service/UserDatasetUploadWrappers.js.map | 1 - .../lib/Service/UserDatasetWrappers.d.ts | 58 -- .../lib/Service/UserDatasetWrappers.d.ts.map | 1 - .../lib/Service/UserDatasetWrappers.js | 90 --- .../lib/Service/UserDatasetWrappers.js.map | 1 - .../lib/Service/index.d.ts | 594 --------------- .../lib/Service/index.d.ts.map | 1 - .../user-datasets-legacy/lib/Service/index.js | 19 - .../lib/Service/index.js.map | 1 - .../UserDatasetDetailStoreModule.d.ts | 31 - .../UserDatasetDetailStoreModule.d.ts.map | 1 - .../UserDatasetDetailStoreModule.js | 103 --- .../UserDatasetDetailStoreModule.js.map | 1 - .../UserDatasetListStoreModule.d.ts | 38 - .../UserDatasetListStoreModule.d.ts.map | 1 - .../UserDatasetListStoreModule.js | 88 --- .../UserDatasetListStoreModule.js.map | 1 - .../UserDatasetUploadStoreModule.d.ts | 24 - .../UserDatasetUploadStoreModule.d.ts.map | 1 - .../UserDatasetUploadStoreModule.js | 159 ---- .../UserDatasetUploadStoreModule.js.map | 1 - .../lib/StoreModules/index.d.ts | 42 -- .../lib/StoreModules/index.d.ts.map | 1 - .../lib/StoreModules/index.js | 11 - .../lib/StoreModules/index.js.map | 1 - .../lib/StoreModules/types.d.ts | 10 - .../lib/StoreModules/types.d.ts.map | 1 - .../lib/StoreModules/types.js | 2 - .../lib/StoreModules/types.js.map | 1 - .../lib/Utils/project-filter.d.ts | 2 - .../lib/Utils/project-filter.d.ts.map | 1 - .../lib/Utils/project-filter.js | 2 - .../lib/Utils/project-filter.js.map | 1 - .../user-datasets-legacy/lib/Utils/types.d.ts | 142 ---- .../lib/Utils/types.d.ts.map | 1 - .../user-datasets-legacy/lib/Utils/types.js | 2 - .../lib/Utils/types.js.map | 1 - .../lib/Utils/upload-config.d.ts | 12 - .../lib/Utils/upload-config.d.ts.map | 1 - .../lib/Utils/upload-config.js | 136 ---- .../lib/Utils/upload-config.js.map | 1 - .../lib/Utils/upload-user-dataset.d.ts | 12 - .../lib/Utils/upload-user-dataset.d.ts.map | 1 - .../lib/Utils/upload-user-dataset.js | 69 -- .../lib/Utils/upload-user-dataset.js.map | 1 - .../UserDatasetDetailController.tsx | 9 +- 171 files changed, 5 insertions(+), 9157 deletions(-) delete mode 100644 packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/AllUploads.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/AllUploads.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/AllUploads.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/AllUploads.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/DateTime.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/DateTime.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/DateTime.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/DateTime.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.scss delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.scss delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/EmptyState.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/EmptyState.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/EmptyState.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/EmptyState.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.scss delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.scss delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UploadForm.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UploadForm.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UploadForm.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UploadForm.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UploadForm.scss delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasets.scss delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/images/tut-step-1.jpg delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/images/tut-step-2.jpg delete mode 100644 packages/libs/user-datasets-legacy/lib/Components/images/tut-step-3.jpg delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Hooks/project-filter.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Hooks/project-filter.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Hooks/project-filter.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Hooks/project-filter.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/README.adoc delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/index.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/index.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/index.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Service/index.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.js delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.js delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.js delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/index.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/index.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/index.js delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/index.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/types.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/types.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/types.js delete mode 100644 packages/libs/user-datasets-legacy/lib/StoreModules/types.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/project-filter.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/project-filter.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/project-filter.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/project-filter.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/types.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/types.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/types.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/types.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/upload-config.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/upload-config.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/upload-config.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/upload-config.js.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.d.ts delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.d.ts.map delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.js delete mode 100644 packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.d.ts b/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.d.ts deleted file mode 100644 index ebf47af1ee..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.d.ts +++ /dev/null @@ -1,152 +0,0 @@ -import { InferAction } from '@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils'; -import { FormSubmission } from '../Components/UploadForm'; -import { UserDatasetUpload } from '../Utils/types'; -export declare const submitUploadForm: { - ( - formSubmission: FormSubmission, - redirectTo?: string | undefined - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/submit-form', - { - formSubmission: FormSubmission; - redirectTo: string | undefined; - } - >; - readonly type: 'user-dataset-upload/submit-form'; -} & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/submit-form', - { - formSubmission: FormSubmission; - redirectTo: string | undefined; - } - > ->; -export declare const receiveBadUpload: { - ( - message: string - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/receive-bad-upload', - { - message: string; - timestamp: number; - } - >; - readonly type: 'user-dataset-upload/receive-bad-upload'; -} & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/receive-bad-upload', - { - message: string; - timestamp: number; - } - > ->; -export declare const clearBadUpload: { - (): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-bad-upload', - {} - >; - readonly type: 'user-dataset-upload/clear-bad-upload'; -} & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-bad-upload', - {} - > ->; -export declare const cancelCurrentUpload: { - ( - id: string - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/cancel-upload', - { - id: string; - } - >; - readonly type: 'user-dataset-upload/cancel-upload'; -} & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/cancel-upload', - { - id: string; - } - > ->; -export declare const clearMessages: { - ( - ids: string[] - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-messages', - { - ids: string[]; - } - >; - readonly type: 'user-dataset-upload/clear-messages'; -} & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-messages', - { - ids: string[]; - } - > ->; -export declare const requestUploadMessages: { - (): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - >; - readonly type: 'user-dataset-upload/load-upload-messages'; -} & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - > ->; -export declare const receiveUploadMessages: { - ( - uploads: UserDatasetUpload[] - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/receive-upload-messages', - { - uploads: UserDatasetUpload[]; - } - >; - readonly type: 'user-dataset-upload/receive-upload-messages'; -} & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/receive-upload-messages', - { - uploads: UserDatasetUpload[]; - } - > ->; -export declare const receiveBadUploadHistoryAction: { - ( - message: string - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/receive-bad-upload-history-action', - { - message: string; - timestamp: number; - } - >; - readonly type: 'user-dataset-upload/receive-bad-upload-history-action'; -} & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/receive-bad-upload-history-action', - { - message: string; - timestamp: number; - } - > ->; -export type Action = - | InferAction - | InferAction - | InferAction - | InferAction - | InferAction - | InferAction - | InferAction - | InferAction; -//# sourceMappingURL=UserDatasetUploadActions.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.d.ts.map b/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.d.ts.map deleted file mode 100644 index 2fdb24992e..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetUploadActions.d.ts","sourceRoot":"","sources":["../../src/lib/Actions/UserDatasetUploadActions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACZ,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,eAAO,MAAM,gBAAgB;;;;;;;;;GAM5B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;GAG5B,CAAC;AAEF,eAAO,MAAM,cAAc;;;0MAG1B,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;GAG/B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;GAGzB,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;gNAGjC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;GAGjC,CAAC;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;GAGzC,CAAC;AAEF,MAAM,MAAM,MAAM,GACd,WAAW,CAAC,OAAO,gBAAgB,CAAC,GACpC,WAAW,CAAC,OAAO,gBAAgB,CAAC,GACpC,WAAW,CAAC,OAAO,cAAc,CAAC,GAClC,WAAW,CAAC,OAAO,mBAAmB,CAAC,GACvC,WAAW,CAAC,OAAO,aAAa,CAAC,GACjC,WAAW,CAAC,OAAO,qBAAqB,CAAC,GACzC,WAAW,CAAC,OAAO,qBAAqB,CAAC,GACzC,WAAW,CAAC,OAAO,6BAA6B,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.js b/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.js deleted file mode 100644 index 1f223c09ef..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.js +++ /dev/null @@ -1,37 +0,0 @@ -import { makeActionCreator } from '@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils'; -export const submitUploadForm = makeActionCreator( - 'user-dataset-upload/submit-form', - (formSubmission, redirectTo) => ({ - formSubmission, - redirectTo, - }) -); -export const receiveBadUpload = makeActionCreator( - 'user-dataset-upload/receive-bad-upload', - (message) => ({ message, timestamp: Date.now() }) -); -export const clearBadUpload = makeActionCreator( - 'user-dataset-upload/clear-bad-upload', - () => ({}) -); -export const cancelCurrentUpload = makeActionCreator( - 'user-dataset-upload/cancel-upload', - (id) => ({ id }) -); -export const clearMessages = makeActionCreator( - 'user-dataset-upload/clear-messages', - (ids) => ({ ids }) -); -export const requestUploadMessages = makeActionCreator( - 'user-dataset-upload/load-upload-messages', - () => {} -); -export const receiveUploadMessages = makeActionCreator( - 'user-dataset-upload/receive-upload-messages', - (uploads) => ({ uploads }) -); -export const receiveBadUploadHistoryAction = makeActionCreator( - 'user-dataset-upload/receive-bad-upload-history-action', - (message) => ({ message, timestamp: Date.now() }) -); -//# sourceMappingURL=UserDatasetUploadActions.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.js.map b/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.js.map deleted file mode 100644 index fb779278f5..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetUploadActions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetUploadActions.js","sourceRoot":"","sources":["../../src/lib/Actions/UserDatasetUploadActions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAElB,MAAM,oDAAoD,CAAC;AAK5D,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAC/C,iCAAiC,EACjC,CAAC,cAA8B,EAAE,UAAmB,EAAE,EAAE,CAAC,CAAC;IACxD,cAAc;IACd,UAAU;CACX,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAC/C,wCAAwC,EACxC,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAC7C,sCAAsC,EACtC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CACX,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAClD,mCAAmC,EACnC,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAC5C,oCAAoC,EACpC,CAAC,GAAa,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAC7B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CACpD,0CAA0C,EAC1C,GAAG,EAAE,GAAE,CAAC,CACT,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CACpD,6CAA6C,EAC7C,CAAC,OAAiC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CACrD,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,iBAAiB,CAC5D,uDAAuD,EACvD,CAAC,OAAe,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAC1D,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.d.ts b/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.d.ts deleted file mode 100644 index 7f26ffeae0..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.d.ts +++ /dev/null @@ -1,236 +0,0 @@ -import { Action as RouteAction } from '@veupathdb/wdk-client/lib/Actions/RouterActions'; -import { PreferenceUpdateAction } from '@veupathdb/wdk-client/lib/Actions/UserActions'; -import { EmptyAction } from '@veupathdb/wdk-client/lib/Core/WdkMiddleware'; -import { ServiceError } from '@veupathdb/wdk-client/lib/Service/ServiceError'; -import { UserDatasetShareResponse } from '../Service/UserDatasetWrappers'; -import { UserDataset, UserDatasetMeta } from '../Utils/types'; -export type Action = - | DetailErrorAction - | DetailLoadingAction - | DetailReceivedAction - | DetailRemoveErrorAction - | DetailRemoveSuccessAction - | DetailRemovingAction - | DetailUpdateErrorAction - | DetailUpdateSuccessAction - | DetailUpdatingAction - | ListLoadingAction - | ListErrorReceivedAction - | ListReceivedAction - | ProjectFilterAction - | SharingDatasetAction - | SharingSuccessAction; -export declare const LIST_LOADING = 'user-datasets/list-loading'; -export type ListLoadingAction = { - type: typeof LIST_LOADING; -}; -export declare function listLoading(): ListLoadingAction; -export declare const LIST_RECEIVED = 'user-dataset/list-received'; -export type ListReceivedAction = { - type: typeof LIST_RECEIVED; - payload: { - userDatasets: UserDataset[]; - filterByProject: boolean; - }; -}; -export declare function listReceived( - userDatasets: UserDataset[], - filterByProject: boolean -): ListReceivedAction; -export declare const LIST_ERROR_RECEIVED = 'user-dataset/list-error'; -export type ListErrorReceivedAction = { - type: typeof LIST_ERROR_RECEIVED; - payload: { - error: ServiceError; - }; -}; -export declare function listErrorReceived( - error: ServiceError -): ListErrorReceivedAction; -export declare const DETAIL_LOADING = 'user-datasets/detail-loading'; -export type DetailLoadingAction = { - type: typeof DETAIL_LOADING; - payload: { - id: number; - }; -}; -export declare function detailLoading(id: number): DetailLoadingAction; -export declare const DETAIL_RECEIVED = 'user-datasets/detail-received'; -export type DetailReceivedAction = { - type: typeof DETAIL_RECEIVED; - payload: { - id: number; - userDataset?: UserDataset; - }; -}; -export declare function detailReceived( - id: number, - userDataset?: UserDataset -): DetailReceivedAction; -export declare const DETAIL_ERROR = 'user-datasets/detail-error'; -export type DetailErrorAction = { - type: typeof DETAIL_ERROR; - payload: { - error: ServiceError; - }; -}; -export declare function detailError(error: ServiceError): DetailErrorAction; -export declare const DETAIL_UPDATING = 'user-dataests/detail-updating'; -export type DetailUpdatingAction = { - type: typeof DETAIL_UPDATING; -}; -export declare function detailUpdating(): DetailUpdatingAction; -export declare const DETAIL_UPDATE_SUCCESS = - 'user-datasets/detail-update-success'; -export type DetailUpdateSuccessAction = { - type: typeof DETAIL_UPDATE_SUCCESS; - payload: { - userDataset: UserDataset; - }; -}; -export declare function detailUpdateSuccess( - userDataset: UserDataset -): DetailUpdateSuccessAction; -export declare const DETAIL_UPDATE_ERROR = 'user-datasets/detail-update-error'; -export type DetailUpdateErrorAction = { - type: typeof DETAIL_UPDATE_ERROR; - payload: { - error: ServiceError; - }; -}; -export declare function detailUpdateError( - error: ServiceError -): DetailUpdateErrorAction; -export declare const DETAIL_REMOVING = 'user-datasets/detail-removing'; -export type DetailRemovingAction = { - type: typeof DETAIL_REMOVING; -}; -export declare function detailRemoving(): DetailRemovingAction; -export declare const DETAIL_REMOVE_SUCCESS = - 'user-datasets/detail-remove-success'; -export type DetailRemoveSuccessAction = { - type: typeof DETAIL_REMOVE_SUCCESS; - payload: { - userDataset: UserDataset; - }; -}; -export declare function detailRemoveSuccess( - userDataset: UserDataset -): DetailRemoveSuccessAction; -export declare const DETAIL_REMOVE_ERROR = 'user-datasets/detail-remove-error'; -export type DetailRemoveErrorAction = { - type: typeof DETAIL_REMOVE_ERROR; - payload: { - error: ServiceError; - }; -}; -export declare function detailRemoveError( - error: ServiceError -): DetailRemoveErrorAction; -export declare const SHARING_DATASET = 'user-datasets/sharing-dataset'; -export type SharingDatasetAction = { - type: typeof SHARING_DATASET; - payload: { - userDataset: UserDataset; - recipients: string[]; - }; -}; -export declare function sharingDataset( - userDataset: UserDataset, - recipients: string[] -): SharingDatasetAction; -export declare const SHARING_SUCCESS = 'user-datasets/sharing-success'; -export type SharingSuccessAction = { - type: typeof SHARING_SUCCESS; - payload: { - response: UserDatasetShareResponse; - }; -}; -export declare function sharingSuccess( - response: UserDatasetShareResponse -): SharingSuccessAction; -export declare const SHARING_ERROR = 'user-datasets/sharing-error'; -export type SharingErrorAction = { - type: typeof SHARING_ERROR; - payload: { - error: Error; - }; -}; -export declare function sharingError(error: Error): SharingErrorAction; -export declare const PROJECT_FILTER = - 'user-datasets/project-filter-preference-received'; -export type ProjectFilterAction = { - type: typeof PROJECT_FILTER; - payload: { - filterByProject: boolean; - }; -}; -export declare function projectFilter( - filterByProject: boolean -): ProjectFilterAction; -type ListAction = - | ListLoadingAction - | ListReceivedAction - | ListErrorReceivedAction; -type DetailAction = - | DetailLoadingAction - | DetailReceivedAction - | DetailErrorAction; -type UpdateAction = - | DetailUpdatingAction - | DetailUpdateSuccessAction - | DetailUpdateErrorAction; -type RemovalAction = - | DetailRemovingAction - | DetailRemoveSuccessAction - | DetailRemoveErrorAction; -type SharingAction = - | SharingDatasetAction - | SharingSuccessAction - | SharingErrorAction; -export declare function loadUserDatasetList(): import('@veupathdb/wdk-client/lib/Core/WdkMiddleware').ActionThunk< - ListAction, - import('../Service/UserDatasetWrappers').UserDatasetCompatibleEpicDependencies ->; -export declare function loadUserDatasetDetail( - id: number -): import('@veupathdb/wdk-client/lib/Core/WdkMiddleware').ActionThunk< - DetailAction, - import('../Service/UserDatasetWrappers').UserDatasetCompatibleEpicDependencies ->; -export declare function shareUserDatasets( - userDatasetIds: number[], - recipientUserIds: number[] -): import('@veupathdb/wdk-client/lib/Core/WdkMiddleware').ActionThunk< - SharingAction, - import('../Service/UserDatasetWrappers').UserDatasetCompatibleEpicDependencies ->; -export declare function unshareUserDatasets( - userDatasetIds: number[], - recipientUserIds: number[] -): import('@veupathdb/wdk-client/lib/Core/WdkMiddleware').ActionThunk< - SharingAction, - import('../Service/UserDatasetWrappers').UserDatasetCompatibleEpicDependencies ->; -export declare function updateUserDatasetDetail( - userDataset: UserDataset, - meta: UserDatasetMeta -): import('@veupathdb/wdk-client/lib/Core/WdkMiddleware').ActionThunk< - UpdateAction, - import('../Service/UserDatasetWrappers').UserDatasetCompatibleEpicDependencies ->; -export declare function removeUserDataset( - userDataset: UserDataset, - redirectTo?: string -): import('@veupathdb/wdk-client/lib/Core/WdkMiddleware').ActionThunk< - RemovalAction | EmptyAction | RouteAction, - import('../Service/UserDatasetWrappers').UserDatasetCompatibleEpicDependencies ->; -export declare function updateProjectFilter( - filterByProject: boolean -): import('@veupathdb/wdk-client/lib/Core/WdkMiddleware').ActionThunk< - ProjectFilterAction | PreferenceUpdateAction, - import('../Service/UserDatasetWrappers').UserDatasetCompatibleEpicDependencies ->; -export {}; -//# sourceMappingURL=UserDatasetsActions.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.d.ts.map b/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.d.ts.map deleted file mode 100644 index 23148821cc..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetsActions.d.ts","sourceRoot":"","sources":["../../src/lib/Actions/UserDatasetsActions.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.js b/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.js deleted file mode 100644 index 3a2c724eb4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.js +++ /dev/null @@ -1,244 +0,0 @@ -import { get } from 'lodash'; -import { transitionToInternalPage } from '@veupathdb/wdk-client/lib/Actions/RouterActions'; -import { updateUserPreference } from '@veupathdb/wdk-client/lib/Actions/UserActions'; -import { emptyAction } from '@veupathdb/wdk-client/lib/Core/WdkMiddleware'; -import { validateUserDatasetCompatibleThunk } from '../Service/UserDatasetWrappers'; -import { FILTER_BY_PROJECT_PREF } from '../Utils/project-filter'; -//============================================================================== -export const LIST_LOADING = 'user-datasets/list-loading'; -export function listLoading() { - return { - type: LIST_LOADING, - }; -} -//============================================================================== -export const LIST_RECEIVED = 'user-dataset/list-received'; -export function listReceived(userDatasets, filterByProject) { - return { - type: LIST_RECEIVED, - payload: { - userDatasets, - filterByProject, - }, - }; -} -//============================================================================== -export const LIST_ERROR_RECEIVED = 'user-dataset/list-error'; -export function listErrorReceived(error) { - return { - type: LIST_ERROR_RECEIVED, - payload: { - error, - }, - }; -} -//============================================================================== -export const DETAIL_LOADING = 'user-datasets/detail-loading'; -export function detailLoading(id) { - return { - type: DETAIL_LOADING, - payload: { - id, - }, - }; -} -//============================================================================== -export const DETAIL_RECEIVED = 'user-datasets/detail-received'; -export function detailReceived(id, userDataset) { - return { - type: DETAIL_RECEIVED, - payload: { - id, - userDataset, - }, - }; -} -//============================================================================== -export const DETAIL_ERROR = 'user-datasets/detail-error'; -export function detailError(error) { - return { - type: DETAIL_ERROR, - payload: { - error, - }, - }; -} -//============================================================================== -export const DETAIL_UPDATING = 'user-dataests/detail-updating'; -export function detailUpdating() { - return { - type: DETAIL_UPDATING, - }; -} -//============================================================================== -export const DETAIL_UPDATE_SUCCESS = 'user-datasets/detail-update-success'; -export function detailUpdateSuccess(userDataset) { - return { - type: DETAIL_UPDATE_SUCCESS, - payload: { - userDataset, - }, - }; -} -//============================================================================== -export const DETAIL_UPDATE_ERROR = 'user-datasets/detail-update-error'; -export function detailUpdateError(error) { - return { - type: DETAIL_UPDATE_ERROR, - payload: { - error, - }, - }; -} -//============================================================================== -export const DETAIL_REMOVING = 'user-datasets/detail-removing'; -export function detailRemoving() { - return { - type: DETAIL_REMOVING, - }; -} -//============================================================================== -export const DETAIL_REMOVE_SUCCESS = 'user-datasets/detail-remove-success'; -export function detailRemoveSuccess(userDataset) { - return { - type: DETAIL_REMOVE_SUCCESS, - payload: { - userDataset, - }, - }; -} -//============================================================================== -export const DETAIL_REMOVE_ERROR = 'user-datasets/detail-remove-error'; -export function detailRemoveError(error) { - return { - type: DETAIL_REMOVE_ERROR, - payload: { - error, - }, - }; -} -//============================================================================== -export const SHARING_DATASET = 'user-datasets/sharing-dataset'; -export function sharingDataset(userDataset, recipients) { - return { - type: SHARING_DATASET, - payload: { - userDataset, - recipients, - }, - }; -} -//============================================================================== -export const SHARING_SUCCESS = 'user-datasets/sharing-success'; -export function sharingSuccess(response) { - return { - type: SHARING_SUCCESS, - payload: { - response, - }, - }; -} -//============================================================================== -export const SHARING_ERROR = 'user-datasets/sharing-error'; -export function sharingError(error) { - return { - type: SHARING_ERROR, - payload: { - error, - }, - }; -} -//============================================================================== -export const PROJECT_FILTER = - 'user-datasets/project-filter-preference-received'; -export function projectFilter(filterByProject) { - return { - type: PROJECT_FILTER, - payload: { - filterByProject, - }, - }; -} -export function loadUserDatasetList() { - return validateUserDatasetCompatibleThunk(({ wdkService }) => [ - listLoading(), - Promise.all([ - wdkService.getCurrentUserPreferences().then( - (preferences) => - get(preferences.global, FILTER_BY_PROJECT_PREF, 'false') !== 'false', - // ignore error and default to false - () => false - ), - wdkService.getCurrentUserDatasets(), - ]).then( - ([filterByProject, userDatasets]) => - listReceived(userDatasets, filterByProject), - listErrorReceived - ), - ]); -} -export function loadUserDatasetDetail(id) { - return validateUserDatasetCompatibleThunk(({ wdkService }) => [ - detailLoading(id), - wdkService.getUserDataset(id).then( - (userDataset) => detailReceived(id, userDataset), - (error) => - error.status === 404 ? detailReceived(id) : detailError(error) - ), - ]); -} -export function shareUserDatasets(userDatasetIds, recipientUserIds) { - return validateUserDatasetCompatibleThunk(({ wdkService }) => { - return wdkService - .editUserDatasetSharing('add', userDatasetIds, recipientUserIds) - .then(sharingSuccess, sharingError); - }); -} -export function unshareUserDatasets(userDatasetIds, recipientUserIds) { - return validateUserDatasetCompatibleThunk(({ wdkService }) => { - return wdkService - .editUserDatasetSharing('delete', userDatasetIds, recipientUserIds) - .then(sharingSuccess, sharingError); - }); -} -export function updateUserDatasetDetail(userDataset, meta) { - return validateUserDatasetCompatibleThunk(({ wdkService }) => [ - detailUpdating(), - wdkService - .updateUserDataset(userDataset.id, meta) - .then( - () => - detailUpdateSuccess( - Object.assign(Object.assign({}, userDataset), { meta }) - ), - detailUpdateError - ), - ]); -} -export function removeUserDataset(userDataset, redirectTo) { - return validateUserDatasetCompatibleThunk(({ wdkService }) => [ - detailRemoving(), - wdkService - .removeUserDataset(userDataset.id) - .then( - () => [ - detailRemoveSuccess(userDataset), - typeof redirectTo === 'string' - ? transitionToInternalPage(redirectTo) - : emptyAction, - ], - detailRemoveError - ), - ]); -} -export function updateProjectFilter(filterByProject) { - return validateUserDatasetCompatibleThunk(() => [ - updateUserPreference( - 'global', - FILTER_BY_PROJECT_PREF, - JSON.stringify(filterByProject) - ), - projectFilter(filterByProject), - ]); -} -//# sourceMappingURL=UserDatasetsActions.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.js.map b/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.js.map deleted file mode 100644 index 44fca9b6f1..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Actions/UserDatasetsActions.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetsActions.js","sourceRoot":"","sources":["../../src/lib/Actions/UserDatasetsActions.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/AllUploads.d.ts b/packages/libs/user-datasets-legacy/lib/Components/AllUploads.d.ts deleted file mode 100644 index 614c7cdbe2..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/AllUploads.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/// -import { UserDatasetUpload } from '../Utils/types'; -interface Props { - baseUrl: string; - uploadList?: Array; - errorMessage?: string; - actions: { - clearMessages: (ids: string[]) => void; - cancelCurrentUpload: (id: string) => void; - }; -} -declare const AllUploads: (props: Props) => JSX.Element; -export default AllUploads; -//# sourceMappingURL=AllUploads.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/AllUploads.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/AllUploads.d.ts.map deleted file mode 100644 index 818c69b761..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/AllUploads.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"AllUploads.d.ts","sourceRoot":"","sources":["../../src/lib/Components/AllUploads.tsx"],"names":[],"mappings":";AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE;QACP,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;QACvC,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3C,CAAC;CACH;AAkKD,QAAA,MAAM,UAAU,UAAW,KAAK,gBAiG/B,CAAC;AACF,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/AllUploads.js b/packages/libs/user-datasets-legacy/lib/Components/AllUploads.js deleted file mode 100644 index b42c9e8b33..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/AllUploads.js +++ /dev/null @@ -1,372 +0,0 @@ -var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator['throw'](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import { useCallback, useMemo } from 'react'; -import { Checkbox, Link } from '@veupathdb/wdk-client/lib/Components'; -import Icon from '@veupathdb/wdk-client/lib/Components/Icon/IconAlt'; -import { useWdkService } from '@veupathdb/wdk-client/lib/Hooks/WdkServiceHook'; -import UserDatasetEmptyState from './EmptyState'; -import { useProjectFilter } from '../Hooks/project-filter'; -const ClearAllMessagesButton = (onClickCallback, buttonContent) => - _jsx( - 'button', - Object.assign( - { type: 'submit', className: 'btn', onClick: onClickCallback }, - { children: buttonContent } - ) - ); -const UploadHeader = ({ color, iconType, date }) => - _jsxs( - 'div', - Object.assign( - { style: { color } }, - { - children: [ - _jsx(Icon, { fa: iconType }), - _jsx( - 'span', - Object.assign( - { style: { marginLeft: '0.5em' } }, - { children: new Date(date).toLocaleString() } - ) - ), - ], - } - ) - ); -const OngoingUpload = (upload, onClickCancel) => - _jsxs('div', { - children: [ - _jsx(UploadHeader, { - color: 'orange', - iconType: 'cogs', - date: upload.finished || upload.started, - }), - _jsxs('div', { - children: [ - 'Currently uploading: ', - _jsx('code', { children: upload.datasetName }), - ], - }), - _jsxs('div', { - children: [ - 'Status:', - ' ', - upload.status + - (upload.stepPercent ? ' ... ' + upload.stepPercent + '%' : ''), - ], - }), - upload.isCancellable && - _jsx( - 'button', - Object.assign( - { className: 'btn', onClick: () => onClickCancel() }, - { children: 'Cancel upload' } - ) - ), - ], - }); -const SuccessfulUpload = (upload, baseUrl) => - _jsxs('div', { - children: [ - _jsx(UploadHeader, { - color: 'green', - iconType: 'check-circle', - date: upload.finished || upload.started, - }), - 'Successfully uploaded: \u00A0', - _jsx( - Link, - Object.assign( - { - to: - upload.datasetId != null - ? `${baseUrl}/${upload.datasetId}` - : baseUrl, - }, - { children: _jsx('code', { children: upload.datasetName }) } - ) - ), - ], - }); -const InvalidatedUpload = (upload) => { - return _jsxs('div', { - children: [ - _jsx(UploadHeader, { - color: 'red', - iconType: 'exclamation-triangle', - date: upload.finished || upload.started, - }), - _jsxs('div', { - children: [ - _jsx('code', { children: upload.datasetName }), - ' was rejected as it is invalid', - upload.errors - ? _jsxs('span', { - children: [ - ':', - _jsx('code', { - children: upload.errors.map((line, ix) => - _jsx('div', { children: line }, ix) - ), - }), - ], - }) - : _jsx('span', { children: '.' }), - ], - }), - ], - }); -}; -const FailedUpload = (upload) => - _jsxs('div', { - children: [ - _jsx(UploadHeader, { - color: 'red', - iconType: 'exclamation-triangle', - date: upload.finished || upload.started, - }), - _jsxs('div', { - children: [ - _jsx('code', { children: upload.datasetName }), - ' could not be uploaded.', - ], - }), - _jsxs('div', { - children: [ - 'Please try again. If the problem persists, please let us know through our \u00A0', - _jsx( - Link, - Object.assign( - { to: '/contact-us', target: '_blank' }, - { children: 'support form' } - ) - ), - '.', - ], - }), - ], - }); -const UploadsTable = (props) => { - const { baseUrl, uploads, cancelCurrentUpload } = props; - return _jsx( - 'table', - Object.assign( - { style: { margin: '1em 0' } }, - { - children: _jsx('tbody', { - children: uploads.map((upload, ix) => - _jsx( - 'tr', - { - children: _jsx( - 'td', - Object.assign( - { style: { fontSize: 'larger', paddingBottom: '1em' } }, - { - children: upload.isOngoing - ? OngoingUpload(upload, () => - cancelCurrentUpload(upload.id) - ) - : upload.isSuccessful - ? SuccessfulUpload(upload, baseUrl) - : upload.isUserError - ? InvalidatedUpload(upload) - : FailedUpload(upload), - } - ) - ), - }, - ix + '-' + upload.datasetName - ) - ), - }), - } - ) - ); -}; -const RefreshButton = () => - _jsx( - 'button', - Object.assign( - { - type: 'submit', - className: 'btn', - onClick: () => { - window.location.reload(); - }, - }, - { children: 'Refresh page' } - ) - ); -const ErrorMessage = (message) => - _jsx( - 'div', - Object.assign( - { className: 'ui-state-error', style: { fontSize: 'large' } }, - { - children: message - .split('\n') - .map((line, ix) => - _jsxs( - 'div', - Object.assign( - { className: 'ui-state-error-text' }, - { - children: [ - ix === 0 && _jsx(Icon, { fa: 'exclamation-triangle' }), - line, - ], - } - ), - ix - ) - ), - } - ) - ); -const AllUploads = (props) => { - const uploads = useMemo(() => { - var _a; - return (_a = props.uploadList) !== null && _a !== void 0 ? _a : []; - }, [props.uploadList]); - const ongoingUploads = useMemo( - () => uploads.filter((u) => u.isOngoing), - [uploads] - ); - const finishedUploads = useMemo( - () => uploads.filter((u) => !u.isOngoing), - [uploads] - ); - const projectInfo = useWdkService( - (wdkService) => - __awaiter(void 0, void 0, void 0, function* () { - const config = yield wdkService.getConfig(); - return { - id: config.projectId, - name: config.displayName, - }; - }), - [] - ); - const [projectFilter, setProjectFilter] = useProjectFilter(); - const hasUploadFromAnotherProject = useMemo( - () => - uploads.some((upload) => - upload.projects.some( - (project) => - project !== - (projectInfo === null || projectInfo === void 0 - ? void 0 - : projectInfo.id) - ) - ), - [projectInfo, uploads] - ); - const projectFilterApplied = projectFilter !== false; - const uploadFilterPredicate = useCallback( - (upload) => - projectInfo == null || - !projectFilterApplied || - upload.projects.includes(projectInfo.id), - [projectInfo, projectFilterApplied] - ); - const filteredUploads = useMemo( - () => uploads.filter(uploadFilterPredicate), - [uploads, uploadFilterPredicate] - ); - const filteredFinishedUploads = useMemo( - () => finishedUploads.filter(uploadFilterPredicate), - [finishedUploads, uploadFilterPredicate] - ); - return _jsxs('div', { - children: [ - props.errorMessage != null && ErrorMessage(props.errorMessage), - ongoingUploads.length > 0 && RefreshButton(), - projectInfo != null && - hasUploadFromAnotherProject && - _jsxs( - 'div', - Object.assign( - { style: { display: 'flex', gap: '0.25em', margin: '0.5em' } }, - { - children: [ - _jsx(Checkbox, { - id: 'recent-uploads-project-filter', - value: projectFilterApplied, - onChange: () => { - setProjectFilter((projectFilter) => !projectFilter); - }, - }), - _jsxs( - 'label', - Object.assign( - { htmlFor: 'recent-uploads-project-filter' }, - { children: ['Only show uploads to ', projectInfo.name] } - ) - ), - ], - } - ) - ), - filteredUploads.length > 0 && - _jsx(UploadsTable, { - baseUrl: props.baseUrl, - uploads: filteredUploads, - cancelCurrentUpload: props.actions.cancelCurrentUpload, - }), - filteredFinishedUploads.length > 0 && - ClearAllMessagesButton( - () => - props.actions.clearMessages( - filteredFinishedUploads.map((u) => u.id) - ), - projectFilterApplied && hasUploadFromAnotherProject - ? 'Clear These Messages' - : 'Clear All Messages' - ), - props.errorMessage == null && - projectInfo != null && - filteredUploads.length === 0 && - _jsx(UserDatasetEmptyState, { - message: - uploads.length === 0 - ? 'There are no recent uploads to be displayed.' - : `There are no recent ${projectInfo.name} uploads to be displayed. Uncheck "Only show uploads to ${projectInfo.name}" to see all your recent uploads.`, - }), - ], - }); -}; -export default AllUploads; -//# sourceMappingURL=AllUploads.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/AllUploads.js.map b/packages/libs/user-datasets-legacy/lib/Components/AllUploads.js.map deleted file mode 100644 index 1baf97a925..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/AllUploads.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"AllUploads.js","sourceRoot":"","sources":["../../src/lib/Components/AllUploads.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/DateTime.d.ts b/packages/libs/user-datasets-legacy/lib/Components/DateTime.d.ts deleted file mode 100644 index 127f58464e..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/DateTime.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// -type Value = string | number | Date; -interface Props { - datetime: Value; -} -export declare function DateTime(props: Props): JSX.Element; -export {}; -//# sourceMappingURL=DateTime.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/DateTime.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/DateTime.d.ts.map deleted file mode 100644 index 60231b573d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/DateTime.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"DateTime.d.ts","sourceRoot":"","sources":["../../src/lib/Components/DateTime.tsx"],"names":[],"mappings":";AAEA,KAAK,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAEpC,UAAU,KAAK;IACb,QAAQ,EAAE,KAAK,CAAC;CACjB;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,eAcpC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/DateTime.js b/packages/libs/user-datasets-legacy/lib/Components/DateTime.js deleted file mode 100644 index 79ac09b6ab..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/DateTime.js +++ /dev/null @@ -1,21 +0,0 @@ -import { jsxs as _jsxs, jsx as _jsx } from 'react/jsx-runtime'; -export function DateTime(props) { - var _a; - try { - const dateObj = new Date(props.datetime); - const isoString = dateObj.toISOString(); - const [_, date = 'Unknown', time = ''] = - (_a = dateObj - .toISOString() - .match(/(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}).*/)) !== null && _a !== void 0 - ? _a - : []; - return _jsxs( - 'div', - Object.assign({ title: isoString }, { children: [date, ' ', time] }) - ); - } catch (_b) { - return _jsx('div', { children: 'Unknown' }); - } -} -//# sourceMappingURL=DateTime.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/DateTime.js.map b/packages/libs/user-datasets-legacy/lib/Components/DateTime.js.map deleted file mode 100644 index 6c09baea9e..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/DateTime.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"DateTime.js","sourceRoot":"","sources":["../../src/lib/Components/DateTime.tsx"],"names":[],"mappings":";AAQA,MAAM,UAAU,QAAQ,CAAC,KAAY;;IACnC,IAAI;QACF,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,IAAI,GAAG,EAAE,CAAC,GACpC,MAAA,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,qCAAqC,CAAC,mCAAI,EAAE,CAAC;QAC3E,OAAO,CACL,6BAAK,KAAK,EAAE,SAAS,iBAClB,IAAI,OAAG,IAAI,KACR,CACP,CAAC;KACH;IAAC,WAAM;QACN,OAAO,oCAAkB,CAAC;KAC3B;AACH,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.d.ts b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.d.ts deleted file mode 100644 index 54c4811e14..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.d.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default BigwigDatasetDetail; -declare class BigwigDatasetDetail extends UserDatasetDetail { - renderTracksSection(): JSX.Element | null; - getTracksTableColumns(): { - key: string; - name: string; - renderCell: ({ row }: { row: any }) => JSX.Element; - }[]; -} -import UserDatasetDetail from './UserDatasetDetail'; -//# sourceMappingURL=BigwigDatasetDetail.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.d.ts.map deleted file mode 100644 index 7cc7c0f701..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BigwigDatasetDetail.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/Detail/BigwigDatasetDetail.jsx"],"names":[],"mappings":";AAWA;IAiDE,0CAyBC;IAnED;;;;;;QAwCC;CAsCF"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.js b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.js deleted file mode 100644 index 1e30560ad6..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.js +++ /dev/null @@ -1,106 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import React from 'react'; -import Icon from '@veupathdb/wdk-client/lib/Components/Icon/IconAlt'; -import { Mesa, MesaState } from '@veupathdb/coreui/lib/components/Mesa'; -import { makeClassifier } from '../UserDatasetUtils'; -import UserDatasetDetail from './UserDatasetDetail'; -import BigwigGBrowseUploader from './BigwigGBrowseUploader'; -const classify = makeClassifier('UserDatasetDetail', 'BigwigDatasetDetail'); -class BigwigDatasetDetail extends UserDatasetDetail { - constructor(props) { - super(props); - this.renderTracksSection = this.renderTracksSection.bind(this); - this.getTracksTableColumns = this.getTracksTableColumns.bind(this); - } - getTracksTableColumns() { - const { userDataset, appUrl, config } = this.props; - const { id, type, meta, dependencies } = userDataset; - const name = meta.name; - const { projectId } = config; - const { seqId } = type && type.data ? type.data : { seqId: null }; - var genome; - dependencies.forEach(function (dependency) { - if (dependency.resourceIdentifier.endsWith('_Genome')) { - var regex = new RegExp( - '-' + dependency.resourceVersion + '_(.*)_Genome' - ); - var genomeList = dependency.resourceIdentifier.match(regex); - genome = genomeList[1]; - } - }); - return [ - { - key: 'datafileName', - name: 'Filename', - renderCell: ({ row }) => _jsx('code', { children: row.datafileName }), - }, - { - key: 'main', - name: 'Genome Browser Link', - renderCell: ({ row }) => - _jsx( - BigwigGBrowseUploader, - Object.assign({ sequenceId: seqId }, row, { - datasetId: id, - appUrl: appUrl, - projectId: projectId, - genome: genome, - datasetName: name, - }) - ), - }, - ]; - } - renderTracksSection() { - const { userDataset, appUrl, projectName } = this.props; - const { type } = userDataset; - const { data } = type; - const rows = data && Array.isArray(data.tracks) ? data.tracks : []; - const columns = this.getTracksTableColumns({ userDataset, appUrl }); - const tracksTableState = MesaState.create({ rows, columns }); - return !rows.length - ? null - : userDataset.isInstalled - ? _jsxs('section', { - children: [ - _jsxs( - 'h3', - Object.assign( - { className: classify('SectionTitle') }, - { - children: [ - _jsx(Icon, { fa: 'bar-chart' }), - 'Genome Browser Tracks', - ], - } - ) - ), - _jsx( - 'div', - Object.assign( - { className: 'TracksTable' }, - { children: _jsx(Mesa, { state: tracksTableState }) } - ) - ), - ], - }) - : _jsxs('section', { - children: [ - "This data set isn't installed to ", - projectName, - ' or contains no files.', - ], - }); - } - getPageSections() { - const [headerSection, compatSection, fileSection] = super.getPageSections(); - return [ - headerSection, - compatSection, - this.renderTracksSection, - fileSection, - ]; - } -} -export default BigwigDatasetDetail; -//# sourceMappingURL=BigwigDatasetDetail.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.js.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.js.map deleted file mode 100644 index 7eaac84aa3..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigDatasetDetail.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BigwigDatasetDetail.js","sourceRoot":"","sources":["../../../src/lib/Components/Detail/BigwigDatasetDetail.jsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.d.ts b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.d.ts deleted file mode 100644 index 8b6a5f5eff..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -export default BigwigGBrowseUploader; -declare class BigwigGBrowseUploader extends React.Component { - constructor(props: any); - getGBrowseUrl(): string; - getButtons(): JSX.Element; - render(): JSX.Element; -} -import React from 'react'; -//# sourceMappingURL=BigwigGBrowseUploader.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.d.ts.map deleted file mode 100644 index de1463c638..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BigwigGBrowseUploader.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/Detail/BigwigGBrowseUploader.jsx"],"names":[],"mappings":";AAKA;IACE,wBAGC;IAeD,wBAMC;IAnBD,0BAWC;IAUD,sBAOC;CACF"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.js b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.js deleted file mode 100644 index 180142df88..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.js +++ /dev/null @@ -1,62 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import React from 'react'; -import Icon from '@veupathdb/wdk-client/lib/Components/Icon/IconAlt'; -import './BigwigGBrowseUploader.scss'; -class BigwigGBrowseUploader extends React.Component { - constructor(props) { - super(props); - this.getGBrowseUrl = this.getGBrowseUrl.bind(this); - } - getButtons() { - const GBrowseUrl = this.getGBrowseUrl(); - return _jsx(React.Fragment, { - children: _jsx( - 'a', - Object.assign( - { href: GBrowseUrl, target: '_blank', rel: 'noreferrer' }, - { - children: _jsxs( - 'button', - Object.assign( - { className: 'btn btn-slim' }, - { - children: [ - 'View in Genome Browser ', - _jsx(Icon, { fa: 'chevron-circle-right right-side' }), - ], - } - ) - ), - } - ) - ), - }); - } - getGBrowseUrl() { - const { sequenceId, genome, datasetName, datafileName } = this.props; - var jbrowseTrackName = datasetName + ' ' + datafileName; - return `/a/jbrowse/index.html?data=/a/service/jbrowse/tracks/${genome}&tracks=gene,${ - jbrowseTrackName || '' - }&highlight=&loc=${sequenceId || ''}`; - } - render() { - const buttons = this.getButtons(); - return _jsx( - 'div', - Object.assign( - { className: 'BigwigGBrowseUploader' }, - { - children: _jsx( - 'div', - Object.assign( - { className: 'BigwigGBrowseUploader-Buttons' }, - { children: buttons } - ) - ), - } - ) - ); - } -} -export default BigwigGBrowseUploader; -//# sourceMappingURL=BigwigGBrowseUploader.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.js.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.js.map deleted file mode 100644 index 150b7b6a6f..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BigwigGBrowseUploader.js","sourceRoot":"","sources":["../../../src/lib/Components/Detail/BigwigGBrowseUploader.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,mDAAmD,CAAC;AAErE,OAAO,8BAA8B,CAAC;AAEtC,MAAM,qBAAsB,SAAQ,KAAK,CAAC,SAAS;IACjD,YAAY,KAAK;QACf,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,OAAO,CACL,KAAC,KAAK,CAAC,QAAQ,cACb,0BAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAC,QAAQ,EAAC,GAAG,EAAC,YAAY,gBACnD,gCAAQ,SAAS,EAAC,cAAc,4CACP,KAAC,IAAI,IAAC,EAAE,EAAC,iCAAiC,GAAG,KAC7D,IACP,GACW,CAClB,CAAC;IACJ,CAAC;IAED,aAAa;QACX,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrE,IAAI,gBAAgB,GAAG,WAAW,GAAG,GAAG,GAAG,YAAY,CAAC;QACxD,OAAO,wDAAwD,MAAM,gBACnE,gBAAgB,IAAI,EACtB,mBAAmB,UAAU,IAAI,EAAE,EAAE,CAAC;IACxC,CAAC;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,CACL,4BAAK,SAAS,EAAC,uBAAuB,gBACpC,4BAAK,SAAS,EAAC,+BAA+B,gBAAE,OAAO,IAAO,IAC1D,CACP,CAAC;IACJ,CAAC;CACF;AAED,eAAe,qBAAqB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.scss b/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.scss deleted file mode 100644 index 447b00e2e1..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BigwigGBrowseUploader.scss +++ /dev/null @@ -1,37 +0,0 @@ -@import '@veupathdb/wdk-client/lib/Core/Style/palette'; - -.BigwigGBrowseUploader { - display: flex; - width: 100%; - align-items: center; - flex-flow: row nowrap; - - .BigwigGBrowseUploader-Message { - flex: 1; - } - - .BigwigGBrowseUploader-Buttons { - flex: 0 0 auto; - margin-left: 20px; - button[disabled] { - opacity: 0.5; - cursor: not-allowed; - } - } - - .BigwigGBrowseUploader-Icon { - flex: 0 0 auto; - margin-right: 10px; - .wdk-Icon { - font-size: 20px; - transition: all 0.3s; - color: #bbb; - &.fa-check-circle-o { - color: $green; - } - &.fa-spin { - color: $blue; - } - } - } -} diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.d.ts b/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.d.ts deleted file mode 100644 index d3993eafe4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default BiomDatasetDetail; -declare class BiomDatasetDetail extends UserDatasetDetail { - renderEdaLinkout(): JSX.Element | null; -} -import UserDatasetDetail from './UserDatasetDetail'; -//# sourceMappingURL=BiomDatasetDetail.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.d.ts.map deleted file mode 100644 index 0932f4d8c7..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BiomDatasetDetail.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/Detail/BiomDatasetDetail.jsx"],"names":[],"mappings":";AAIA;IAME,uCAgBC;CAOF"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.js b/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.js deleted file mode 100644 index 5e9d5eec78..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.js +++ /dev/null @@ -1,47 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import { Link } from 'react-router-dom'; -import UserDatasetDetail from './UserDatasetDetail'; -class BiomDatasetDetail extends UserDatasetDetail { - constructor(props) { - super(props); - this.renderEdaLinkout = this.renderEdaLinkout.bind(this); - } - renderEdaLinkout() { - const { - config: { displayName }, - userDataset: { isInstalled }, - edaWorkspaceUrl, - } = this.props; - return !isInstalled || !edaWorkspaceUrl - ? null - : _jsx( - 'section', - Object.assign( - { id: 'eda-linkout' }, - { - children: _jsx('h2', { - children: _jsxs( - Link, - Object.assign( - { to: edaWorkspaceUrl }, - { - children: [ - _jsx('i', { className: 'ebrc-icon-edaIcon' }), - ' Explore in ', - displayName, - ], - } - ) - ), - }), - } - ) - ); - } - getPageSections() { - const [headerSection, , fileSection] = super.getPageSections(); - return [headerSection, this.renderEdaLinkout, fileSection]; - } -} -export default BiomDatasetDetail; -//# sourceMappingURL=BiomDatasetDetail.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.js.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.js.map deleted file mode 100644 index 40ae6e2e4e..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/BiomDatasetDetail.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"BiomDatasetDetail.js","sourceRoot":"","sources":["../../../src/lib/Components/Detail/BiomDatasetDetail.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,MAAM,iBAAkB,SAAQ,iBAAiB;IAC/C,YAAY,KAAK;QACf,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;QACd,MAAM,EACJ,MAAM,EAAE,EAAE,WAAW,EAAE,EACvB,WAAW,EAAE,EAAE,WAAW,EAAE,EAC5B,eAAe,GAChB,GAAG,IAAI,CAAC,KAAK,CAAC;QAEf,OAAO,CAAC,WAAW,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC/C,gCAAS,EAAE,EAAC,aAAa,gBACvB,uBACE,MAAC,IAAI,kBAAC,EAAE,EAAE,eAAe,iBACvB,YAAG,SAAS,EAAC,mBAAmB,GAAK,kBAAa,WAAW,KACxD,GACJ,IACG,CACX,CAAC;IACJ,CAAC;IAED,eAAe;QACb,MAAM,CAAC,aAAa,EAAE,AAAD,EAAG,WAAW,CAAC,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAE/D,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.d.ts b/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.d.ts deleted file mode 100644 index eb866f9423..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export default IsaDatasetDetail; -declare class IsaDatasetDetail extends UserDatasetDetail { - renderEdaLinkout(): JSX.Element | null; -} -import UserDatasetDetail from './UserDatasetDetail'; -//# sourceMappingURL=IsaDatasetDetail.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.d.ts.map deleted file mode 100644 index 46b8f82e5d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsaDatasetDetail.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/Detail/IsaDatasetDetail.jsx"],"names":[],"mappings":";AAIA;IAME,uCAgCC;CAOF"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.js b/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.js deleted file mode 100644 index bab9b35392..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.js +++ /dev/null @@ -1,81 +0,0 @@ -import { - jsx as _jsx, - jsxs as _jsxs, - Fragment as _Fragment, -} from 'react/jsx-runtime'; -import { Link } from 'react-router-dom'; -import UserDatasetDetail from './UserDatasetDetail'; -class IsaDatasetDetail extends UserDatasetDetail { - constructor(props) { - super(props); - this.renderEdaLinkout = this.renderEdaLinkout.bind(this); - } - renderEdaLinkout() { - const { - config: { displayName }, - userDataset: { isInstalled }, - edaWorkspaceUrl, - edaMapUrl, - } = this.props; - if (!isInstalled) return null; - return _jsxs(_Fragment, { - children: [ - !edaWorkspaceUrl - ? null - : _jsx( - 'section', - Object.assign( - { id: 'eda-linkout' }, - { - children: _jsx('h2', { - children: _jsxs( - Link, - Object.assign( - { to: edaWorkspaceUrl }, - { - children: [ - _jsx('i', { className: 'ebrc-icon-edaIcon' }), - ' Explore in ', - displayName, - ], - } - ) - ), - }), - } - ) - ), - !edaMapUrl - ? null - : _jsx( - 'section', - Object.assign( - { id: 'eda-linkout' }, - { - children: _jsx('h2', { - children: _jsxs( - Link, - Object.assign( - { to: edaMapUrl }, - { - children: [ - _jsx('i', { className: 'ebrc-icon-edaIcon' }), - ' Explore in MapVEu', - ], - } - ) - ), - }), - } - ) - ), - ], - }); - } - getPageSections() { - const [headerSection, , fileSection] = super.getPageSections(); - return [headerSection, this.renderEdaLinkout, fileSection]; - } -} -export default IsaDatasetDetail; -//# sourceMappingURL=IsaDatasetDetail.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.js.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.js.map deleted file mode 100644 index 61ce75b842..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/IsaDatasetDetail.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsaDatasetDetail.js","sourceRoot":"","sources":["../../../src/lib/Components/Detail/IsaDatasetDetail.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,MAAM,gBAAiB,SAAQ,iBAAiB;IAC9C,YAAY,KAAK;QACf,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB;QACd,MAAM,EACJ,MAAM,EAAE,EAAE,WAAW,EAAE,EACvB,WAAW,EAAE,EAAE,WAAW,EAAE,EAC5B,eAAe,EACf,SAAS,GACV,GAAG,IAAI,CAAC,KAAK,CAAC;QAEf,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,OAAO,CACL,8BACG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACzB,gCAAS,EAAE,EAAC,aAAa,gBACvB,uBACE,MAAC,IAAI,kBAAC,EAAE,EAAE,eAAe,iBACvB,YAAG,SAAS,EAAC,mBAAmB,GAAK,kBAAa,WAAW,KACxD,GACJ,IACG,CACX,EACA,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACnB,gCAAS,EAAE,EAAC,aAAa,gBACvB,uBACE,MAAC,IAAI,kBAAC,EAAE,EAAE,SAAS,iBACjB,YAAG,SAAS,EAAC,mBAAmB,GAAK,2BAChC,GACJ,IACG,CACX,IACA,CACJ,CAAC;IACJ,CAAC;IAED,eAAe;QACb,MAAM,CAAC,aAAa,EAAE,AAAD,EAAG,WAAW,CAAC,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;QAE/D,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,eAAe,gBAAgB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.d.ts b/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.d.ts deleted file mode 100644 index 900f2e09e3..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export default RnaSeqDatasetDetail; -declare class RnaSeqDatasetDetail extends BigwigDatasetDetail {} -import BigwigDatasetDetail from './BigwigDatasetDetail'; -//# sourceMappingURL=RnaSeqDatasetDetail.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.d.ts.map deleted file mode 100644 index ba7d5f94a4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"RnaSeqDatasetDetail.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/Detail/RnaSeqDatasetDetail.jsx"],"names":[],"mappings":";AAEA;CAMC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.js b/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.js deleted file mode 100644 index 7a7457add8..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.js +++ /dev/null @@ -1,10 +0,0 @@ -import BigwigDatasetDetail from './BigwigDatasetDetail'; -class RnaSeqDatasetDetail extends BigwigDatasetDetail { - constructor(props) { - super(props); - this.renderTracksSection = this.renderTracksSection.bind(this); - this.getTracksTableColumns = this.getTracksTableColumns.bind(this); - } -} -export default RnaSeqDatasetDetail; -//# sourceMappingURL=RnaSeqDatasetDetail.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.js.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.js.map deleted file mode 100644 index ff3f080f35..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/RnaSeqDatasetDetail.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"RnaSeqDatasetDetail.js","sourceRoot":"","sources":["../../../src/lib/Components/Detail/RnaSeqDatasetDetail.jsx"],"names":[],"mappings":"AAAA,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AAExD,MAAM,mBAAoB,SAAQ,mBAAmB;IACnD,YAAY,KAAK;QACf,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;CACF;AAED,eAAe,mBAAmB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.d.ts b/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.d.ts deleted file mode 100644 index 95fdb19547..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -export default UserDatasetDetail; -declare class UserDatasetDetail extends React.Component { - constructor(props: any); - state: { - sharingModalOpen: boolean; - }; - onMetaSave(key: any): (value: any) => any; - isMyDataset(): any; - validateKey(key: any): void; - handleDelete(): void; - getAttributes(): ( - | { - className: string; - attribute: any; - value: JSX.Element; - } - | { - attribute: string; - value: any; - className?: undefined; - } - | null - )[]; - renderAttributeList(): JSX.Element; - renderHeaderSection(): JSX.Element; - renderDatasetActions(): JSX.Element; - renderCompatibilitySection(): JSX.Element; - getCompatibilityTableColumns(): ( - | { - key: string; - name: string; - renderCell({ row }: { row: any }): any; - } - | { - key: string; - name: string; - } - )[]; - openSharingModal(): void; - renderFileSection(): JSX.Element; - closeSharingModal(): void; - getFileTableColumns(): ( - | { - key: string; - name: string; - renderCell({ row }: { row: any }): JSX.Element; - width?: undefined; - headingStyle?: undefined; - } - | { - key: string; - name: string; - renderCell({ row }: { row: any }): string; - width?: undefined; - headingStyle?: undefined; - } - | { - key: string; - name: string; - width: string; - headingStyle: { - textAlign: string; - }; - renderCell({ row }: { row: any }): JSX.Element; - } - )[]; - renderDetailsSection(): JSX.Element; - renderAllDatasetsLink(): JSX.Element; - /** @return {import("react").ReactNode[]} */ - getPageSections(): import('react').ReactNode[]; - render(): JSX.Element; -} -declare namespace UserDatasetDetail { - export { WdkDependenciesContext as contextType }; -} -import React from 'react'; -import { WdkDependenciesContext } from '@veupathdb/wdk-client/lib/Hooks/WdkDependenciesEffect'; -//# sourceMappingURL=UserDatasetDetail.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.d.ts.map deleted file mode 100644 index 188adfc408..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetDetail.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/Detail/UserDatasetDetail.jsx"],"names":[],"mappings":";AA6BA;IACE,wBAyBC;IAvBC;;MAAwC;IAgD1C,0CAWC;IAlCD,mBAKC;IAUD,4BAMC;IAeD,qBAkBC;IAWD;;;;;;;;gBA4IC;IAsBD,mCAuBC;IA3CD,mCAkBC;IA2BD,oCAaC;IA2GD,0CA+CC;IAED;;;;;;;;;SAmCC;IAjcD,yBAEC;IAqRD,iCAiBC;IApSD,0BAEC;IAoSD;;;;;;;;;;;;;;;;;;;;;;;;;;SA2DC;IAjGD,oCAWC;IA9ND,qCAOC;IAqZD,4CAA4C;IAC5C,mBADa,OAAO,OAAO,EAAE,SAAS,EAAE,CAOvC;IAED,sBAmCC;CACF"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.js b/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.js deleted file mode 100644 index 86657eab71..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.js +++ /dev/null @@ -1,674 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import React from 'react'; -import Icon from '@veupathdb/wdk-client/lib/Components/Icon/IconAlt'; -import SaveableTextEditor from '@veupathdb/wdk-client/lib/Components/InputControls/SaveableTextEditor'; -import Link from '@veupathdb/wdk-client/lib/Components/Link'; -import { - AnchoredTooltip, - Mesa, - MesaState, -} from '@veupathdb/coreui/lib/components/Mesa'; -import { WdkDependenciesContext } from '@veupathdb/wdk-client/lib/Hooks/WdkDependenciesEffect'; -import { bytesToHuman } from '@veupathdb/wdk-client/lib/Utils/Converters'; -import NotFound from '@veupathdb/wdk-client/lib/Views/NotFound/NotFound'; -import { isUserDatasetsCompatibleWdkService } from '../../Service/UserDatasetWrappers'; -import SharingModal from '../Sharing/UserDatasetSharingModal'; -import UserDatasetStatus from '../UserDatasetStatus'; -import { makeClassifier, normalizePercentage } from '../UserDatasetUtils'; -import { ThemedGrantAccessButton } from '../ThemedGrantAccessButton'; -import { ThemedDeleteButton } from '../ThemedDeleteButton'; -import { DateTime } from '../DateTime'; -import './UserDatasetDetail.scss'; -const classify = makeClassifier('UserDatasetDetail'); -class UserDatasetDetail extends React.Component { - constructor(props) { - super(props); - this.state = { sharingModalOpen: false }; - this.onMetaSave = this.onMetaSave.bind(this); - this.isMyDataset = this.isMyDataset.bind(this); - this.validateKey = this.validateKey.bind(this); - this.handleDelete = this.handleDelete.bind(this); - this.getAttributes = this.getAttributes.bind(this); - this.renderAttributeList = this.renderAttributeList.bind(this); - this.renderHeaderSection = this.renderHeaderSection.bind(this); - this.renderDatasetActions = this.renderDatasetActions.bind(this); - this.renderCompatibilitySection = - this.renderCompatibilitySection.bind(this); - this.getCompatibilityTableColumns = - this.getCompatibilityTableColumns.bind(this); - this.openSharingModal = this.openSharingModal.bind(this); - this.renderFileSection = this.renderFileSection.bind(this); - this.closeSharingModal = this.closeSharingModal.bind(this); - this.getFileTableColumns = this.getFileTableColumns.bind(this); - this.renderDetailsSection = this.renderDetailsSection.bind(this); - this.renderAllDatasetsLink = this.renderAllDatasetsLink.bind(this); - } - isMyDataset() { - const { user, userDataset } = this.props; - return ( - user && userDataset && user.id && user.id === userDataset.ownerUserId - ); - } - openSharingModal() { - this.setState({ sharingModalOpen: true }); - } - closeSharingModal() { - this.setState({ sharingModalOpen: false }); - } - validateKey(key) { - const META_KEYS = ['name', 'summary', 'description']; - if (typeof key !== 'string' || !META_KEYS.includes(key)) - throw new TypeError( - `Can't edit meta for invalid key: ${JSON.stringify(key)}` - ); - } - onMetaSave(key) { - this.validateKey(key); - return (value) => { - if (typeof value !== 'string') - throw new TypeError( - `onMetaSave: expected input value to be string; got ${typeof value}` - ); - const { userDataset, updateUserDatasetDetail } = this.props; - const meta = Object.assign(Object.assign({}, userDataset.meta), { - [key]: value, - }); - return updateUserDatasetDetail(userDataset, meta); - }; - } - handleDelete() { - const { baseUrl, isOwner, userDataset, removeUserDataset, dataNoun } = - this.props; - const { sharedWith } = userDataset; - const shareCount = !Array.isArray(sharedWith) ? null : sharedWith.length; - const message = - `Are you sure you want to ${ - isOwner ? 'delete' : 'remove' - } this ${dataNoun.singular.toLowerCase()}? ` + - (!isOwner || !shareCount - ? '' - : `${shareCount} collaborator${ - shareCount === 1 ? '' : 's' - } you've shared with will lose access.`); - if (window.confirm(message)) { - removeUserDataset(userDataset, baseUrl); - } - } - renderAllDatasetsLink() { - return _jsxs( - Link, - Object.assign( - { className: 'AllDatasetsLink', to: this.props.baseUrl }, - { - children: [ - _jsx(Icon, { fa: 'chevron-left' }), - '\u00A0 All ', - this.props.workspaceTitle, - ], - } - ) - ); - } - getAttributes() { - const { userDataset, quotaSize, questionMap } = this.props; - const { onMetaSave } = this; - const { - id, - type, - meta, - size, - percentQuotaUsed, - owner, - created, - sharedWith, - questions, - isInstalled, - } = userDataset; - const { display, name, version } = type; - const isOwner = this.isMyDataset(); - return [ - { - className: classify('Name'), - attribute: this.props.detailsPageTitle, - value: _jsx(SaveableTextEditor, { - value: meta.name, - readOnly: !isOwner, - onSave: this.onMetaSave('name'), - }), - }, - { - attribute: 'Status', - value: _jsx(UserDatasetStatus, { - linkToDataset: false, - useTooltip: false, - userDataset: userDataset, - projectId: this.props.config.projectId, - displayName: this.props.config.displayName, - }), - }, - { - attribute: 'Owner', - value: isOwner ? 'Me' : owner, - }, - { - attribute: 'Description', - value: _jsx(SaveableTextEditor, { - value: meta.description, - multiLine: true, - readOnly: !isOwner, - onSave: this.onMetaSave('description'), - emptyText: 'No Description', - }), - }, - { attribute: 'ID', value: id }, - { - attribute: 'Data type', - value: _jsxs('span', { - children: [display, ' (', name, ' ', version, ')'], - }), - }, - { - attribute: 'Summary', - value: _jsx(SaveableTextEditor, { - multiLine: true, - value: meta.summary, - readOnly: !isOwner, - onSave: onMetaSave('summary'), - emptyText: 'No Summary', - }), - }, - { - attribute: 'Created', - value: _jsx(DateTime, { datetime: created }), - }, - { attribute: 'Data set size', value: bytesToHuman(size) }, - !isOwner - ? null - : { - attribute: 'Quota usage', - value: `${normalizePercentage(percentQuotaUsed)}% of ${bytesToHuman( - quotaSize - )}`, - }, - !isOwner || !sharedWith || !sharedWith.length - ? null - : { - attribute: 'Shared with', - value: _jsx('ul', { - children: sharedWith.map((share) => - _jsxs( - 'li', - { - children: [ - share.userDisplayName, - ' <', - share.email, - '>', - ' ', - _jsx(DateTime, { datetime: share.time }), - ], - }, - share.email - ) - ), - }), - }, - !questions || !questions.length || !isInstalled - ? null - : { - attribute: 'Available searches', - value: _jsx('ul', { - children: questions.map((questionName) => { - const q = questionMap[questionName]; - // User dataset searches typically offer changing the dataset through a dropdown - // Ths dropdown is a param, "biom_dataset" on MicrobiomeDB and "rna_seq_dataset" on genomic sites - // Hence the regex: /dataset/ - const ps = q.paramNames.filter((paramName) => - paramName.match(/dataset/) - ); - const urlPath = [ - '', - 'search', - q.outputRecordClassName, - q.urlSegment, - ].join('/'); - const url = - urlPath + - (ps.length === 1 ? '?param.' + ps[0] + '=' + id : ''); - return _jsx( - 'li', - { - children: _jsx( - Link, - Object.assign({ to: url }, { children: q.displayName }) - ), - }, - questionName - ); - }), - }), - }, - ].filter((attr) => attr); - } - renderHeaderSection() { - const AllLink = this.renderAllDatasetsLink; - const AttributeList = this.renderAttributeList; - const DatasetActions = this.renderDatasetActions; - return _jsxs( - 'section', - Object.assign( - { id: 'dataset-header' }, - { - children: [ - _jsx(AllLink, {}), - _jsxs( - 'div', - Object.assign( - { className: classify('Header') }, - { - children: [ - _jsx( - 'div', - Object.assign( - { className: classify('Header-Attributes') }, - { children: _jsx(AttributeList, {}) } - ) - ), - _jsx( - 'div', - Object.assign( - { className: classify('Header-Actions') }, - { children: _jsx(DatasetActions, {}) } - ) - ), - ], - } - ) - ), - ], - } - ) - ); - } - renderAttributeList() { - const attributes = this.getAttributes(); - return _jsx( - 'div', - Object.assign( - { className: classify('AttributeList') }, - { - children: attributes.map(({ attribute, value, className }, index) => - _jsxs( - 'div', - Object.assign( - { - className: - classify('AttributeRow') + - (className ? ' ' + className : ''), - }, - { - children: [ - _jsx( - 'div', - Object.assign( - { className: classify('AttributeName') }, - { - children: - typeof attribute === 'string' - ? _jsxs('strong', { children: [attribute, ':'] }) - : attribute, - } - ) - ), - _jsx( - 'div', - Object.assign( - { className: classify('AttributeValue') }, - { children: value } - ) - ), - ], - } - ), - index - ) - ), - } - ) - ); - } - renderDatasetActions() { - const isOwner = this.isMyDataset(); - return _jsxs( - 'div', - Object.assign( - { className: classify('Actions') }, - { - children: [ - !isOwner - ? null - : _jsx(ThemedGrantAccessButton, { - buttonText: `Grant Access to ${this.props.dataNoun.singular}`, - onPress: this.openSharingModal, - }), - _jsx(ThemedDeleteButton, { - buttonText: 'Delete', - onPress: this.handleDelete, - }), - ], - } - ) - ); - } - renderDetailsSection() { - const { userDataset } = this.props; - return _jsx('section', { - children: _jsx('details', { - children: _jsx('pre', { - children: _jsx('code', { - children: JSON.stringify(userDataset, null, ' '), - }), - }), - }), - }); - } - /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - - Files Table - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ - renderFileSection() { - const { userDataset, appUrl, dataNoun } = this.props; - const fileTableState = MesaState.create({ - columns: this.getFileTableColumns({ userDataset, appUrl }), - rows: userDataset.datafiles, - }); - return _jsxs( - 'section', - Object.assign( - { id: 'dataset-files' }, - { - children: [ - _jsx('h2', { children: 'Data Files' }), - _jsxs( - 'h3', - Object.assign( - { className: classify('SectionTitle') }, - { - children: [ - _jsx(Icon, { fa: 'files-o' }), - 'Files in ', - dataNoun.singular, - ], - } - ) - ), - _jsx(Mesa, { state: fileTableState }), - ], - } - ) - ); - } - getFileTableColumns() { - const { userDataset } = this.props; - const { id } = userDataset; - const { wdkService } = this.context; - return [ - { - key: 'name', - name: 'File Name', - renderCell({ row }) { - const { name } = row; - return _jsx('code', { children: name }); - }, - }, - { - key: 'size', - name: 'File Size', - renderCell({ row }) { - const { size } = row; - return bytesToHuman(size); - }, - }, - { - key: 'download', - name: 'Download', - width: '130px', - headingStyle: { textAlign: 'center' }, - renderCell({ row }) { - const { name } = row; - const downloadUrl = !isUserDatasetsCompatibleWdkService(wdkService) - ? undefined - : wdkService.getUserDatasetDownloadUrl(id, name); - const downloadAvailable = downloadUrl != null; - return _jsx( - 'a', - Object.assign( - { - href: downloadUrl, - target: '_blank', - rel: 'noreferrer', - title: 'Download this file', - }, - { - children: _jsxs( - 'button', - Object.assign( - { - className: 'btn btn-info', - disabled: !downloadAvailable, - title: downloadAvailable - ? undefined - : 'This download is unavailable. Please contact us if this problem persists.', - }, - { - children: [ - _jsx(Icon, { fa: 'save', className: 'left-side' }), - ' Download', - ], - } - ) - ), - } - ) - ); - }, - }, - ].filter((column) => column); - } - /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - - Compatible Table - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ - renderCompatibilitySection() { - const { userDataset, config, dataNoun } = this.props; - const { projectId, displayName } = config; - const compatibilityTableState = MesaState.create({ - columns: this.getCompatibilityTableColumns(userDataset), - rows: userDataset.dependencies, - }); - const { buildNumber } = config; - const { isCompatible } = userDataset; - const isCompatibleProject = userDataset.projects.includes(projectId); - return _jsxs( - 'section', - Object.assign( - { id: 'dataset-compatibility' }, - { - children: [ - _jsxs('h2', { - children: ['Use This ', dataNoun.singular, ' in ', displayName], - }), - _jsxs( - 'h3', - Object.assign( - { className: classify('SectionTitle') }, - { - children: [ - _jsx(Icon, { fa: 'puzzle-piece' }), - 'Compatibility Information \u00A0', - _jsx( - AnchoredTooltip, - Object.assign( - { - content: `The data and genomes listed here are requisite for using the data in this user ${dataNoun.singular.toLowerCase()}.`, - }, - { - children: _jsx( - 'div', - Object.assign( - { className: 'HelpTrigger' }, - { - children: _jsx(Icon, { fa: 'question-circle' }), - } - ) - ), - } - ) - ), - ], - } - ) - ), - _jsx( - 'div', - Object.assign( - { style: { maxWidth: '600px' } }, - { children: _jsx(Mesa, { state: compatibilityTableState }) } - ) - ), - isCompatibleProject && isCompatible - ? _jsxs( - 'p', - Object.assign( - { className: 'success' }, - { - children: [ - 'This ', - dataNoun.singular.toLowerCase(), - ' is compatible with the current release, build ', - buildNumber, - ', of ', - _jsx('b', { children: projectId }), - '. It is installed for use.', - ], - } - ) - ) - : _jsxs( - 'p', - Object.assign( - { className: 'danger' }, - { - children: [ - 'This ', - dataNoun.singular.toLowerCase(), - ' is not compatible with the current release, build ', - buildNumber, - ', of ', - _jsx('b', { children: projectId }), - '. It is not installed for use.', - ], - } - ) - ), - ], - } - ) - ); - } - getCompatibilityTableColumns() { - const { userDataset } = this.props; - const { projects } = userDataset; - return [ - { - key: 'project', - name: 'VEuPathDB Website', - renderCell() { - return projects.join(', '); - }, - }, - { - key: 'resourceDisplayName', - name: 'Required Resource', - renderCell({ row }) { - const { resourceDisplayName } = row; - return resourceDisplayName; - }, - }, - { - key: 'resourceVersion', - name: 'Required Resource Release', - }, - { - key: 'installedVersion', - name: 'Installed Resource Release', - renderCell({ row }) { - const { compatibilityInfo } = row; - const { currentBuild } = compatibilityInfo ? compatibilityInfo : {}; - return compatibilityInfo === null || currentBuild === null - ? 'N/A' - : currentBuild; - }, - }, - ]; - } - /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - - General Rendering - - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ - // This is needed to resolve downstream typescript errors. - // TypeScript infers that this method returns JSX.Element[]. - // Some classes extending this will return (JSX.Element | null)[]. - // The ReactNode type is better suited, here, since it allows for null values. - /** @return {import("react").ReactNode[]} */ - getPageSections() { - return [ - this.renderHeaderSection, - this.renderCompatibilitySection, - this.renderFileSection, - ]; - } - render() { - const { - user, - userDataset, - shareUserDatasets, - unshareUserDatasets, - dataNoun, - } = this.props; - const AllDatasetsLink = this.renderAllDatasetsLink; - if (!userDataset) - return _jsx(NotFound, { children: _jsx(AllDatasetsLink, {}) }); - const isOwner = this.isMyDataset(); - const { sharingModalOpen } = this.state; - return _jsxs( - 'div', - Object.assign( - { className: classify() }, - { - children: [ - this.getPageSections().map((Section, key) => - _jsx(Section, {}, key) - ), - !isOwner || !sharingModalOpen - ? null - : _jsx(SharingModal, { - user: user, - datasets: [userDataset], - onClose: this.closeSharingModal, - shareUserDatasets: shareUserDatasets, - unshareUserDatasets: unshareUserDatasets, - dataNoun: dataNoun, - }), - ], - } - ) - ); - } -} -UserDatasetDetail.contextType = WdkDependenciesContext; -export default UserDatasetDetail; -//# sourceMappingURL=UserDatasetDetail.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.js.map b/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.js.map deleted file mode 100644 index 40ff0c26f1..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetDetail.js","sourceRoot":"","sources":["../../../src/lib/Components/Detail/UserDatasetDetail.jsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.scss b/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.scss deleted file mode 100644 index e144ccefb0..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Detail/UserDatasetDetail.scss +++ /dev/null @@ -1,106 +0,0 @@ -@import '@veupathdb/wdk-client/lib/Core/Style/palette'; - -.UserDatasetDetail { - details { - margin: 30px 0; - } - hr { - height: 0; - width: 100%; - border: none; - margin: 20px 0 0; - border-bottom: 1px solid rgba(0, 0, 0, 0.15); - } - .MesaComponent { - .DataTable { - table { - width: auto; - } - } - } - - .AllDatasetsLink { - display: block; - padding: 20px 0; - } - - .UserDatasetDetail-SectionTitle { - margin-bottom: 10px; - .wdk-Icon { - color: $blue; - margin-right: 10px; - } - } - - .UserDatasetDetail-Actions { - flex: 0 0 auto; - display: flex; - flex-flow: row nowrap; - justify-content: flex-end; - gap: 1em; - } - - .UserDatasetDetail-Header { - display: flex; - flex-flow: row nowrap; - align-items: flex-start; - - .UserDatasetDetail-Header-Attributes { - flex: 1 1 auto; - } - .UserDatasetDetail-Header-Actions { - flex: 0 0 auto; - } - } - - .wdk-SaveableTextEditor { - fieldset { - padding: 0 3px; - } - fieldset.wdk-SaveableTextEditor-Field { - flex: 0 1 auto; - transition: all 0.5s; - &.wdk-SaveableTextEditor-Field--Editing { - flex: 1 1 auto; - } - } - fieldset.wdk-SaveableTextEditor-Buttons { - min-height: 0; - } - } - - .UserDatasetDetail-AttributeList { - display: flex; - flex-direction: column; - .UserDatasetDetail-AttributeRow { - flex: 0 0 auto; - display: flex; - flex-direction: row; - align-items: baseline; - margin: 0.2em 0; - font-size: 1.4em; - font-weight: 300; - - &.UserDatasetDetail-Name { - font-weight: 400; - font-size: 2.8em; - strong, - b { - font-weight: 400; - } - - .wdk-SaveableTextEditor { - font-style: italic; - } - } - - .UserDatasetDetail-AttributeName { - flex: 0 0 auto; - padding-right: 10px; - } - .UserDatasetDetail-AttributeValue { - flex: 1 1 auto; - } - } - } -} diff --git a/packages/libs/user-datasets-legacy/lib/Components/EmptyState.d.ts b/packages/libs/user-datasets-legacy/lib/Components/EmptyState.d.ts deleted file mode 100644 index 99e377e91e..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/EmptyState.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -export default UserDatasetEmptyState; -declare class UserDatasetEmptyState extends React.Component { - constructor(props: any); - constructor(props: any, context: any); - render(): JSX.Element; -} -import React from 'react'; -//# sourceMappingURL=EmptyState.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/EmptyState.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/EmptyState.d.ts.map deleted file mode 100644 index 7acc3f9002..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/EmptyState.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EmptyState.d.ts","sourceRoot":"","sources":["../../src/lib/Components/EmptyState.jsx"],"names":[],"mappings":";AAGA;IAa4/lB,wBAA8C;IAAA,sCAAyJ;IAZjsmB,sBAQC;CACF"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/EmptyState.js b/packages/libs/user-datasets-legacy/lib/Components/EmptyState.js deleted file mode 100644 index a64d123f24..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/EmptyState.js +++ /dev/null @@ -1,24 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import React from 'react'; -import { IconAlt as Icon } from '@veupathdb/wdk-client/lib/Components'; -class UserDatasetEmptyState extends React.Component { - render() { - const { message } = this.props; - return _jsxs( - 'div', - Object.assign( - { className: 'UserDatasetList-EmptyState' }, - { - children: [ - _jsx(Icon, { fa: 'table', className: 'EmptyState-Icon' }), - typeof message === 'string' - ? _jsx('p', { children: message }) - : message, - ], - } - ) - ); - } -} -export default UserDatasetEmptyState; -//# sourceMappingURL=EmptyState.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/EmptyState.js.map b/packages/libs/user-datasets-legacy/lib/Components/EmptyState.js.map deleted file mode 100644 index c5a048a8b5..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/EmptyState.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"EmptyState.js","sourceRoot":"","sources":["../../src/lib/Components/EmptyState.jsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAEvE,MAAM,qBAAsB,SAAQ,KAAK,CAAC,SAAS;IACjD,MAAM;QACJ,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,OAAO,CACL,6BAAK,SAAS,EAAC,4BAA4B,iBACzC,KAAC,IAAI,IAAC,EAAE,EAAC,OAAO,EAAC,SAAS,EAAC,iBAAiB,GAAG,EAC9C,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAI,OAAO,GAAK,CAAC,CAAC,CAAC,OAAO,KACrD,CACP,CAAC;IACJ,CAAC;CACF;AAED,eAAe,qBAAqB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.d.ts b/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.d.ts deleted file mode 100644 index 25c1d26e0b..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.d.ts +++ /dev/null @@ -1,134 +0,0 @@ -import React from 'react'; -import { - MesaColumn, - MesaSortObject, -} from '@veupathdb/coreui/lib/components/Mesa/types'; -import { User } from '@veupathdb/wdk-client/lib/Utils/WdkUser'; -import { - DataNoun, - UserDataset, - UserDatasetMeta, - UserDatasetShare, -} from '../../Utils/types'; -import './UserDatasetList.scss'; -interface Props { - baseUrl: string; - user: User; - location: any; - projectId: string; - projectName: string; - userDatasets: UserDataset[]; - filterByProject: boolean; - shareUserDatasets: ( - userDatasetIds: number[], - recipientUserIds: number[] - ) => any; - unshareUserDatasets: ( - userDatasetIds: number[], - recipientUserIds: number[] - ) => any; - removeUserDataset: (dataset: UserDataset) => any; - updateUserDatasetDetail: ( - userDataset: UserDataset, - meta: UserDatasetMeta - ) => any; - updateProjectFilter: (filterByProject: boolean) => any; - quotaSize: number; - dataNoun: DataNoun; -} -interface State { - selectedRows: number[]; - uiState: { - sort: MesaSortObject; - }; - searchTerm: string; - sharingModalOpen: boolean; - editingCache: any; -} -interface MesaDataCellProps { - row: UserDataset; - column: MesaColumn; - rowIndex: number; - columnIndex: number; - inline?: boolean; -} -declare class UserDatasetList extends React.Component { - constructor(props: Props); - isRowSelected(row: UserDataset): boolean; - isMyDataset(dataset: UserDataset): boolean; - onSearchTermChange(searchTerm: string): void; - onMetaAttributeSaveFactory( - dataset: UserDataset, - attrKey: string - ): (value: string) => any; - renderSharedWithCell(cellProps: MesaDataCellProps): string | null; - renderStatusCell(cellProps: MesaDataCellProps): JSX.Element; - renderOwnerCell(cellProps: MesaDataCellProps): JSX.Element; - getColumns(): any[]; - onRowSelect(row: UserDataset): void; - onRowDeselect(row: UserDataset): void; - onMultipleRowSelect(rows: UserDataset[]): void; - onMultipleRowDeselect(rows: UserDataset[]): void; - onSort(column: MesaColumn, direction: string): void; - getEventHandlers(): { - onSort: ( - column: MesaColumn< - UserDataset, - keyof UserDataset, - | string - | number - | boolean - | UserDatasetMeta - | { - resourceDisplayName: string; - resourceIdentifier: string; - resourceVersion: string; - }[] - | { - name: string; - size: number; - }[] - | string[] - | UserDatasetShare[] - | { - name: string; - display: string; - version: string; - } - | undefined - >, - direction: string - ) => void; - onRowSelect: (row: UserDataset) => void; - onRowDeselect: (row: UserDataset) => void; - onMultipleRowSelect: (rows: UserDataset[]) => void; - onMultipleRowDeselect: (rows: UserDataset[]) => void; - }; - getTableActions(): { - callback: (rows: UserDataset[]) => void; - element: JSX.Element; - selectionRequired: boolean; - }[]; - getTableOptions(): { - isRowSelected: (row: UserDataset) => boolean; - showToolbar: boolean; - renderEmptyState(): JSX.Element; - }; - filterAndSortRows(rows: UserDataset[]): UserDataset[]; - filterRowsBySearchTerm( - rows: UserDataset[], - searchTerm?: string - ): UserDataset[]; - getColumnSortValueMapper( - columnKey: string | null - ): - | ((data: UserDataset, index: number) => string) - | ((data: any, index: number) => any); - sortRowsByColumnKey(rows: UserDataset[], sort: MesaSortObject): UserDataset[]; - closeSharingModal(): void; - openSharingModal(): void; - toggleProjectScope(newValue: boolean): void; - render(): JSX.Element; -} -export default UserDatasetList; -//# sourceMappingURL=UserDatasetList.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.d.ts.map deleted file mode 100644 index 78ab7226dc..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetList.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/List/UserDatasetList.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.js b/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.js deleted file mode 100644 index 3eb279f122..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.js +++ /dev/null @@ -1,679 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import React from 'react'; -import { add } from 'lodash'; -import { - Checkbox, - IconAlt as Icon, - Link, - RealTimeSearchBox as SearchBox, - SaveableTextEditor, -} from '@veupathdb/wdk-client/lib/Components'; -import { - Mesa, - MesaState, - Utils as MesaUtils, -} from '@veupathdb/coreui/lib/components/Mesa'; -import { bytesToHuman } from '@veupathdb/wdk-client/lib/Utils/Converters'; -import UserDatasetEmptyState from '../EmptyState'; -import SharingModal from '../Sharing/UserDatasetSharingModal'; -import UserDatasetStatus from '../UserDatasetStatus'; -import { normalizePercentage, textCell } from '../UserDatasetUtils'; -import './UserDatasetList.scss'; -import { DateTime } from '../DateTime'; -import { ThemedGrantAccessButton } from '../ThemedGrantAccessButton'; -import { ThemedDeleteButton } from '../ThemedDeleteButton'; -class UserDatasetList extends React.Component { - constructor(props) { - super(props); - this.state = { - selectedRows: [], - uiState: { - sort: { - columnKey: 'created', - direction: 'asc', - }, - }, - editingCache: {}, - sharingModalOpen: false, - searchTerm: '', - }; - this.onRowSelect = this.onRowSelect.bind(this); - this.onRowDeselect = this.onRowDeselect.bind(this); - this.isRowSelected = this.isRowSelected.bind(this); - this.onMultipleRowSelect = this.onMultipleRowSelect.bind(this); - this.onMultipleRowDeselect = this.onMultipleRowDeselect.bind(this); - this.onSort = this.onSort.bind(this); - this.getColumns = this.getColumns.bind(this); - this.isMyDataset = this.isMyDataset.bind(this); - this.getEventHandlers = this.getEventHandlers.bind(this); - this.filterAndSortRows = this.filterAndSortRows.bind(this); - this.onSearchTermChange = this.onSearchTermChange.bind(this); - this.onMetaAttributeSaveFactory = - this.onMetaAttributeSaveFactory.bind(this); - this.renderOwnerCell = this.renderOwnerCell.bind(this); - this.renderStatusCell = this.renderStatusCell.bind(this); - this.openSharingModal = this.openSharingModal.bind(this); - this.closeSharingModal = this.closeSharingModal.bind(this); - this.toggleProjectScope = this.toggleProjectScope.bind(this); - } - isRowSelected(row) { - const id = row.id; - const { selectedRows } = this.state; - return selectedRows.includes(id); - } - isMyDataset(dataset) { - const { user } = this.props; - return user.id === dataset.ownerUserId; - } - onSearchTermChange(searchTerm) { - this.setState({ searchTerm }); - } - onMetaAttributeSaveFactory(dataset, attrKey) { - const { meta } = dataset; - const { updateUserDatasetDetail } = this.props; - return (value) => - updateUserDatasetDetail( - dataset, - Object.assign(Object.assign({}, meta), { [attrKey]: value }) - ); - } - renderSharedWithCell(cellProps) { - const dataset = cellProps.row; - return !dataset.sharedWith || !dataset.sharedWith.length - ? null - : dataset.sharedWith.map((share) => share.userDisplayName).join(', '); - } - renderStatusCell(cellProps) { - const userDataset = cellProps.row; - const { baseUrl, projectId, projectName } = this.props; - return _jsx(UserDatasetStatus, { - baseUrl: baseUrl, - linkToDataset: true, - useTooltip: true, - userDataset: userDataset, - projectId: projectId, - displayName: projectName, - }); - } - renderOwnerCell(cellProps) { - const row = cellProps.row; - const { owner } = row; - return this.isMyDataset(row) - ? _jsx('span', Object.assign({ className: 'faded' }, { children: 'Me' })) - : _jsx('span', { children: owner }); - } - getColumns() { - const { baseUrl, user } = this.props; - function isOwner(ownerId) { - return user.id === ownerId; - } - return [ - { - key: 'meta.name', - sortable: true, - name: 'Name / ID', - helpText: '', - renderCell: (cellProps) => { - const dataset = cellProps.row; - const saveName = this.onMetaAttributeSaveFactory(dataset, 'name'); - return _jsx(SaveableTextEditor, { - value: dataset.meta.name, - multiLine: true, - rows: 2, - onSave: saveName, - readOnly: !isOwner(dataset.ownerUserId), - displayValue: (value) => - _jsxs(React.Fragment, { - children: [ - _jsx( - Link, - Object.assign( - { to: `${baseUrl}/${dataset.id}` }, - { children: value } - ) - ), - _jsx('br', {}), - _jsxs( - 'span', - Object.assign( - { className: 'faded' }, - { children: ['(', dataset.id, ')'] } - ) - ), - ], - }), - }); - }, - }, - { - key: 'summary', - name: 'Summary', - style: { maxWidth: '300px' }, - renderCell: (cellProps) => { - const dataset = cellProps.row; - const saveSummary = this.onMetaAttributeSaveFactory( - dataset, - 'summary' - ); - return _jsx( - 'div', - Object.assign( - { style: { display: 'block', maxWidth: '100%' } }, - { - children: _jsx(SaveableTextEditor, { - rows: Math.max( - 2, - Math.floor(dataset.meta.summary.length / 22) - ), - multiLine: true, - onSave: saveSummary, - value: dataset.meta.summary, - readOnly: !isOwner(dataset.ownerUserId), - }), - } - ) - ); - }, - }, - { - key: 'type', - name: 'Type', - sortable: true, - renderCell: textCell('type', (datasetType) => { - const display = datasetType.display; - const version = datasetType.version; - return _jsxs('span', { - children: [ - display, - ' ', - _jsxs( - 'span', - Object.assign( - { className: 'faded' }, - { children: ['(', version, ')'] } - ) - ), - ], - }); - }), - }, - { - key: 'projects', - sortable: true, - name: 'VEuPathDB Websites', - renderCell(cellProps) { - const userDataset = cellProps.row; - const { projects } = userDataset; - return projects.join(', '); - }, - }, - { - key: 'status', - className: 'StatusColumn', - name: 'Status', - style: { textAlign: 'center' }, - renderCell: this.renderStatusCell, - }, - { - key: 'owner', - name: 'Owner', - sortable: true, - renderCell: this.renderOwnerCell, - }, - { - key: 'sharedWith', - name: 'Shared With', - sortable: true, - renderCell: this.renderSharedWithCell, - }, - { - key: 'created', - name: 'Created', - sortable: true, - renderCell: textCell('created', (created) => - _jsx(DateTime, { datetime: created }) - ), - }, - { - key: 'datafiles', - name: 'File Count', - renderCell: textCell('datafiles', (files) => files.length), - }, - { - key: 'size', - name: 'Size', - sortable: true, - renderCell: textCell('size', (size) => bytesToHuman(size)), - }, - { - key: 'percentQuotaUsed', - name: 'Quota Usage', - sortable: true, - renderCell: textCell('percentQuotaUsed', (percent) => - percent ? `${normalizePercentage(percent)}%` : null - ), - }, - ].filter((column) => column); - } - onRowSelect(row) { - const id = row.id; - const { selectedRows } = this.state; - if (selectedRows.includes(id)) return; - const newSelection = [...selectedRows, id]; - this.setState({ selectedRows: newSelection }); - } - onRowDeselect(row) { - const id = row.id; - const { selectedRows } = this.state; - if (!selectedRows.includes(id)) return; - const newSelection = selectedRows.filter((selectedId) => selectedId !== id); - this.setState({ selectedRows: newSelection }); - } - onMultipleRowSelect(rows) { - if (!rows.length) return; - const { selectedRows } = this.state; - const unselectedRows = rows - .filter((dataset) => !selectedRows.includes(dataset.id)) - .map((dataset) => dataset.id); - if (!unselectedRows.length) return; - const newSelection = [...selectedRows, ...unselectedRows]; - this.setState({ selectedRows: newSelection }); - } - onMultipleRowDeselect(rows) { - if (!rows.length) return; - const { selectedRows } = this.state; - const deselectedIds = rows.map((row) => row.id); - const newSelection = selectedRows.filter( - (id) => !deselectedIds.includes(id) - ); - this.setState({ selectedRows: newSelection }); - } - onSort(column, direction) { - const key = column.key; - const { state } = this; - const { setSortColumnKey, setSortDirection } = MesaState; - const updatedState = setSortDirection( - setSortColumnKey(state, key), - direction - ); - this.setState(updatedState); - } - getEventHandlers() { - return { - onSort: this.onSort, - onRowSelect: this.onRowSelect, - onRowDeselect: this.onRowDeselect, - onMultipleRowSelect: this.onMultipleRowSelect, - onMultipleRowDeselect: this.onMultipleRowDeselect, - }; - } - getTableActions() { - const { isMyDataset } = this; - const { removeUserDataset, dataNoun } = this.props; - return [ - { - callback: (rows) => { - this.openSharingModal(); - }, - element: _jsx(ThemedGrantAccessButton, { - buttonText: `Grant Access to ${dataNoun.plural}`, - onPress: () => null, - }), - selectionRequired: true, - }, - { - callback: (userDatasets) => { - const [noun, pronoun] = - userDatasets.length === 1 - ? [`this ${this.props.dataNoun.singular.toLowerCase()}`, 'it'] - : [`these ${this.props.dataNoun.plural.toLowerCase()}`, 'them']; - const affectedUsers = userDatasets.reduce( - (affectedUserList, userDataset) => { - if (!isMyDataset(userDataset)) return affectedUserList; - if (!userDataset.sharedWith || userDataset.sharedWith.length) - return affectedUserList; - const newlyAffectedUsers = userDataset.sharedWith.filter( - (sharedWithUser) => { - return ( - affectedUserList.find( - (affectedUser) => - affectedUser.user === sharedWithUser.user - ) != null - ); - } - ); - return [...affectedUserList, ...newlyAffectedUsers]; - }, - [] - ); - if ( - !window.confirm( - `Are you sure you want to delete ${noun}? ` + - (affectedUsers.length - ? `You have shared ${pronoun} with ${affectedUsers} users.` - : '') - ) - ) - return; - userDatasets.forEach((userDataset) => removeUserDataset(userDataset)); - }, - element: _jsx(ThemedDeleteButton, { - buttonText: 'Delete', - onPress: () => null, - }), - selectionRequired: true, - }, - ]; - } - getTableOptions() { - const { isRowSelected, toggleProjectScope } = this; - const { userDatasets, projectName, filterByProject, dataNoun } = this.props; - const emptyMessage = !userDatasets.length - ? _jsxs( - 'p', - Object.assign( - { style: { textAlign: 'center' } }, - { - children: [ - 'This page is empty because you do not have any', - ' ', - dataNoun.plural.toLowerCase(), - '.', - ], - } - ) - ) - : filterByProject - ? _jsxs(React.Fragment, { - children: [ - _jsxs('p', { - children: [ - 'You have no ', - _jsx('b', { children: projectName }), - ' data sets.', - ], - }), - _jsx('br', {}), - _jsxs( - 'button', - Object.assign( - { - className: 'btn btn-info', - onClick: () => toggleProjectScope(false), - }, - { children: ['Show All User ', dataNoun.plural] } - ) - ), - ], - }) - : _jsxs(React.Fragment, { - children: [ - _jsx('p', { children: 'Your search returned no results.' }), - _jsx('br', {}), - _jsx( - 'button', - Object.assign( - { - type: 'button', - className: 'btn', - onClick: () => this.setState({ searchTerm: '' }), - }, - { children: 'Clear Search Query' } - ) - ), - ], - }); - return { - isRowSelected, - showToolbar: true, - renderEmptyState() { - return _jsx(React.Fragment, { - children: _jsx(UserDatasetEmptyState, { message: emptyMessage }), - }); - }, - }; - } - filterAndSortRows(rows) { - const { searchTerm, uiState } = this.state; - const { projectName, filterByProject } = this.props; - const sort = uiState.sort; - if (filterByProject) - rows = rows.filter((dataset) => dataset.projects.includes(projectName)); - if (searchTerm && searchTerm.length) - rows = this.filterRowsBySearchTerm([...rows], searchTerm); - if (sort.columnKey.length) rows = this.sortRowsByColumnKey([...rows], sort); - return [...rows]; - } - filterRowsBySearchTerm(rows, searchTerm) { - if (!searchTerm || !searchTerm.length) return rows; - return rows.filter((dataset) => { - const searchableRow = JSON.stringify(dataset).toLowerCase(); - return searchableRow.indexOf(searchTerm.toLowerCase()) !== -1; - }); - } - getColumnSortValueMapper(columnKey) { - if (columnKey === null) return (data) => data; - switch (columnKey) { - case 'type': - return (data, index) => data.type.display.toLowerCase(); - case 'meta.name': - return (data) => data.meta.name.toLowerCase(); - default: - return (data, index) => { - return typeof data[columnKey] !== 'undefined' - ? data[columnKey] - : null; - }; - } - } - sortRowsByColumnKey(rows, sort) { - const direction = sort.direction; - const columnKey = sort.columnKey; - const mappedValue = this.getColumnSortValueMapper(columnKey); - const sorted = [...rows].sort(MesaUtils.sortFactory(mappedValue)); - return direction === 'asc' ? sorted : sorted.reverse(); - } - closeSharingModal() { - const sharingModalOpen = false; - this.setState({ sharingModalOpen }); - } - openSharingModal() { - const sharingModalOpen = true; - this.setState({ sharingModalOpen }); - } - toggleProjectScope(newValue) { - this.props.updateProjectFilter(newValue); - } - render() { - const { isRowSelected, toggleProjectScope } = this; - const { - userDatasets, - user, - projectName, - shareUserDatasets, - unshareUserDatasets, - filterByProject, - quotaSize, - dataNoun, - } = this.props; - const { uiState, selectedRows, searchTerm, sharingModalOpen } = this.state; - const rows = userDatasets; - const selectedDatasets = rows.filter(isRowSelected); - const columns = this.getColumns(); - const actions = this.getTableActions(); - const options = this.getTableOptions(); - const eventHandlers = this.getEventHandlers(); - const filteredRows = this.filterAndSortRows(rows); - const tableState = { - rows, - columns, - options, - actions, - filteredRows, - selectedRows, - eventHandlers, - uiState: Object.assign(Object.assign({}, uiState), { - emptinessCulprit: userDatasets.length ? 'search' : null, - }), - }; - const totalSize = userDatasets - .filter((ud) => ud.ownerUserId === user.id) - .map((ud) => ud.size) - .reduce(add, 0); - const totalPercent = totalSize / quotaSize; - const offerProjectToggle = userDatasets.some(({ projects }) => - projects.some((project) => project !== projectName) - ); - return _jsx( - 'div', - Object.assign( - { className: 'UserDatasetList' }, - { - children: _jsx( - Mesa, - Object.assign( - { state: MesaState.create(tableState) }, - { - children: _jsx( - 'div', - Object.assign( - { className: 'stack' }, - { - children: - userDatasets.length > 0 && - _jsxs( - 'div', - Object.assign( - { - style: { display: 'flex', alignItems: 'center' }, - }, - { - children: [ - sharingModalOpen && selectedDatasets.length - ? _jsx(SharingModal, { - user: user, - datasets: selectedDatasets, - deselectDataset: this.onRowDeselect, - shareUserDatasets: shareUserDatasets, - unshareUserDatasets: unshareUserDatasets, - onClose: this.closeSharingModal, - dataNoun: dataNoun, - }) - : null, - _jsx(SearchBox, { - placeholderText: 'Search ' + dataNoun.plural, - searchTerm: searchTerm, - onSearchTermChange: this.onSearchTermChange, - }), - _jsxs( - 'div', - Object.assign( - { - style: { - flex: '0 0 auto', - padding: '0 10px', - }, - }, - { - children: [ - 'Showing ', - filteredRows.length, - ' of ', - rows.length, - ' ', - rows.length === 1 - ? dataNoun.singular.toLowerCase() - : dataNoun.plural.toLowerCase(), - ], - } - ) - ), - offerProjectToggle && - _jsxs( - 'div', - Object.assign( - { - className: - 'UserDatasetList-ProjectToggle', - style: { - flex: '0 0 auto', - padding: '0 10px', - }, - }, - { - children: [ - _jsx(Checkbox, { - value: filterByProject, - onChange: toggleProjectScope, - }), - ' ', - _jsxs( - 'div', - Object.assign( - { - onClick: () => - toggleProjectScope( - !filterByProject - ), - style: { - display: 'inline-block', - }, - }, - { - children: [ - 'Only show ', - dataNoun.plural.toLowerCase(), - ' related to', - ' ', - _jsx('b', { - children: projectName, - }), - ], - } - ) - ), - ], - } - ) - ), - _jsxs( - 'div', - Object.assign( - { - style: { - flex: '0 0 auto', - padding: '0 10px', - }, - }, - { - children: [ - _jsx(Icon, { fa: 'info-circle' }), - ' ', - bytesToHuman(totalSize), - ' (', - normalizePercentage(totalPercent), - '%) of', - ' ', - bytesToHuman(quotaSize), - ' used', - ], - } - ) - ), - ], - } - ) - ), - } - ) - ), - } - ) - ), - } - ) - ); - } -} -export default UserDatasetList; -//# sourceMappingURL=UserDatasetList.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.js.map b/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.js.map deleted file mode 100644 index 555ac1b8ff..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetList.js","sourceRoot":"","sources":["../../../src/lib/Components/List/UserDatasetList.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.scss b/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.scss deleted file mode 100644 index 4602fec090..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/List/UserDatasetList.scss +++ /dev/null @@ -1,19 +0,0 @@ -.UserDatasetList { - margin-bottom: 30px; -} -.UserDatasetList-EmptyState { - width: 100%; - display: flex; - align-items: center; - flex-direction: column; - justify-content: center; - p { - font-size: 1.3em; - font-weight: 300; - } - .wdk-Icon.EmptyState-Icon { - opacity: 0.1; - font-size: 60px; - margin: 5px auto 20px; - } -} diff --git a/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.d.ts b/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.d.ts deleted file mode 100644 index 25ef81f857..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/// -interface Props { - baseUrl: string; - hasDirectUpload: boolean; - helpRoute: string; -} -declare function NoDatasetsMessage({ - baseUrl, - hasDirectUpload, - helpRoute, -}: Props): JSX.Element; -export default NoDatasetsMessage; -//# sourceMappingURL=NoDatasetsMessage.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.d.ts.map deleted file mode 100644 index 4e39eca2c4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoDatasetsMessage.d.ts","sourceRoot":"","sources":["../../src/lib/Components/NoDatasetsMessage.tsx"],"names":[],"mappings":";AAEA,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iBAAS,iBAAiB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,KAAK,eAyBxE;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.js b/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.js deleted file mode 100644 index 5d4b50b74f..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.js +++ /dev/null @@ -1,67 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import { Link } from '@veupathdb/wdk-client/lib/Components'; -function NoDatasetsMessage({ baseUrl, hasDirectUpload, helpRoute }) { - return _jsxs( - 'div', - Object.assign( - { className: 'UserDataset-NoDatasets' }, - { - children: [ - _jsx( - 'div', - Object.assign( - { className: 'UserDataset-NoDatasets__lead' }, - { children: 'You do not have any data sets.' } - ) - ), - _jsxs('ul', { - children: [ - hasDirectUpload - ? _jsxs('li', { - children: [ - 'Try adding a data set using the', - ' ', - _jsx( - Link, - Object.assign( - { to: `${baseUrl}/new` }, - { children: 'New upload' } - ) - ), - ' section above.', - ], - }) - : _jsxs('li', { - children: [ - 'To add a data set, go to', - ' ', - _jsx( - 'a', - Object.assign( - { href: 'https://veupathdb.globusgenomics.org' }, - { children: 'VEuPathDB Galaxy' } - ) - ), - '.', - ], - }), - _jsxs('li', { - children: [ - 'For an overview of the functionality, see the', - ' ', - _jsx( - Link, - Object.assign({ to: `${helpRoute}` }, { children: 'Help' }) - ), - ' page.', - ], - }), - ], - }), - ], - } - ) - ); -} -export default NoDatasetsMessage; -//# sourceMappingURL=NoDatasetsMessage.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.js.map b/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.js.map deleted file mode 100644 index 1518d46c56..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/NoDatasetsMessage.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"NoDatasetsMessage.js","sourceRoot":"","sources":["../../src/lib/Components/NoDatasetsMessage.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAQ5D,SAAS,iBAAiB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,EAAS;IACvE,OAAO,CACL,6BAAK,SAAS,EAAC,wBAAwB,iBACrC,4BAAK,SAAS,EAAC,8BAA8B,oDAEvC,EACN,yBACG,eAAe,CAAC,CAAC,CAAC,CACjB,4DACkC,GAAG,EACnC,KAAC,IAAI,kBAAC,EAAE,EAAE,GAAG,OAAO,MAAM,gCAAmB,uBAC1C,CACN,CAAC,CAAC,CAAC,CACF,qDAC2B,GAAG,EAC5B,0BAAG,IAAI,EAAC,sCAAsC,sCAAqB,SAChE,CACN,EACD,0EACgD,GAAG,EACjD,KAAC,IAAI,kBAAC,EAAE,EAAE,GAAG,SAAS,EAAE,0BAAa,cAClC,IACF,KACD,CACP,CAAC;AACJ,CAAC;AAED,eAAe,iBAAiB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.d.ts b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.d.ts deleted file mode 100644 index 437aca867c..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -export default UserDatasetSharingModal; -declare class UserDatasetSharingModal extends React.Component { - constructor(props: any); - state: { - recipients: never[]; - recipientInput: null; - processing: boolean; - succeeded: null; - }; - renderShareItem(share: any, index: any, userDataset: any): JSX.Element; - renderShareList({ userDataset }: { userDataset: any }): JSX.Element[] | null; - renderDatasetList({ datasets }: { datasets: any }): JSX.Element[] | null; - renderDatasetItem(userDataset: any): JSX.Element; - renderRecipientItem(recipient: any, index: any): JSX.Element; - renderRecipientList({ - recipients, - }: { - recipients: any; - }): JSX.Element | JSX.Element[]; - renderRecipientForm(): JSX.Element; - handleTextChange(recipientInput?: null): void; - handleRecipientAdd(): void; - isMyDataset(dataset: any): any; - verifyRecipient(recipientEmail: any): Promise; - removeRecipient(recipient: any): any; - getDatasetNoun(): string; - disqualifyRecipient(recipientEmail: any, reason: any): void; - submitShare(): void; - renderEmptyState(): JSX.Element; - unshareWithUser(datasetId: any, userId: any): void; - isRecipientValid(recipient?: {}): any; - renderViewContent(): JSX.Element; - isDatasetShareable(dataset?: {}): boolean; - getValidRecipients(): never[]; - getShareableDatasets(): any; - renderSharingButtons(): JSX.Element; - acceptRecipient(recipientEmail: any, id: any): void; - unselectDataset(dataset: any): void; - render(): JSX.Element; -} -declare namespace UserDatasetSharingModal { - export { WdkDependenciesContext as contextType }; -} -import React from 'react'; -import { WdkDependenciesContext } from '@veupathdb/wdk-client/lib/Hooks/WdkDependenciesEffect'; -//# sourceMappingURL=UserDatasetSharingModal.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.d.ts.map deleted file mode 100644 index 2169eb5152..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetSharingModal.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/Sharing/UserDatasetSharingModal.jsx"],"names":[],"mappings":";AAiBA;IACE,wBAiCC;IA/BC;;;;;MAKC;IAkMH,uEAeC;IA0GD;;6BAOC;IAED;;6BAIC;IA/GD,iDA8CC;IAED,6DAsCC;IAED;;oCAQC;IA+CD,mCAwBC;IA/VD,8CAEC;IA2GD,2BAyBC;IA3ID,+BAGC;IAYD,oDAuDC;IAED,qCAOC;IAtED,yBAIC;IAqFD,4DAcC;IAsMD,oBAoBC;IA7LD,gCAOC;IAED,mDAcC;IA0ID,sCAEC;IAqFD,iCAwDC;IA3ID,0CAEC;IAkDD,8BAGC;IAED,4BAGC;IAED,oCAmBC;IAlTD,oDAeC;IAuFD,oCAIC;IAoQD,sBAoBC;CACF"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.js b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.js deleted file mode 100644 index 283cf3ff59..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.js +++ /dev/null @@ -1,678 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import React from 'react'; -import { - IconAlt as Icon, - Loading, - Modal, - TextBox, -} from '@veupathdb/wdk-client/lib/Components'; -import { WdkDependenciesContext } from '@veupathdb/wdk-client/lib/Hooks/WdkDependenciesEffect'; -import { isUserDatasetsCompatibleWdkService } from '../../Service/UserDatasetWrappers'; -import { DateTime } from '../DateTime'; -import './UserDatasetSharingModal.scss'; -const isValidEmail = (email) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); -class UserDatasetSharingModal extends React.Component { - constructor(props) { - super(props); - this.state = { - recipients: [], - recipientInput: null, - processing: false, - succeeded: null, - }; - this.renderShareItem = this.renderShareItem.bind(this); - this.renderShareList = this.renderShareList.bind(this); - this.renderDatasetList = this.renderDatasetList.bind(this); - this.renderDatasetItem = this.renderDatasetItem.bind(this); - this.renderRecipientItem = this.renderRecipientItem.bind(this); - this.renderRecipientList = this.renderRecipientList.bind(this); - this.renderRecipientForm = this.renderRecipientForm.bind(this); - this.handleTextChange = this.handleTextChange.bind(this); - this.handleRecipientAdd = this.handleRecipientAdd.bind(this); - this.isMyDataset = this.isMyDataset.bind(this); - this.verifyRecipient = this.verifyRecipient.bind(this); - this.removeRecipient = this.removeRecipient.bind(this); - this.getDatasetNoun = this.getDatasetNoun.bind(this); - this.disqualifyRecipient = this.disqualifyRecipient.bind(this); - this.submitShare = this.submitShare.bind(this); - this.renderEmptyState = this.renderEmptyState.bind(this); - this.unshareWithUser = this.unshareWithUser.bind(this); - this.isRecipientValid = this.isRecipientValid.bind(this); - this.renderViewContent = this.renderViewContent.bind(this); - this.isDatasetShareable = this.isDatasetShareable.bind(this); - this.getValidRecipients = this.getValidRecipients.bind(this); - this.getShareableDatasets = this.getShareableDatasets.bind(this); - this.renderSharingButtons = this.renderSharingButtons.bind(this); - } - isMyDataset(dataset) { - const { user } = this.props; - return dataset && dataset.ownerUserId && dataset.ownerUserId === user.id; - } - handleTextChange(recipientInput = null) { - this.setState({ recipientInput }); - } - getDatasetNoun() { - return this.props.datasets.length === 1 - ? `this ${this.props.dataNoun.singular.toLowerCase()}` - : `these ${this.props.dataNoun.plural.toLowerCase()}`; - } - verifyRecipient(recipientEmail) { - if (typeof recipientEmail !== 'string' || !recipientEmail.length) - throw new TypeError( - `verifyRecipient: bad email received (${recipientEmail})` - ); - const { wdkService } = this.context; - if (!isUserDatasetsCompatibleWdkService(wdkService)) { - throw new Error( - `verifyRecipient: must have a properly configured UserDatasetsCompatibleWdkService` - ); - } - return wdkService - .getUserIdsByEmail([recipientEmail]) - .then(({ results }) => { - const foundUsers = results.find((result) => - Object.keys(result).includes(recipientEmail) - ); - if (!results.length || !foundUsers) { - return this.disqualifyRecipient( - recipientEmail, - _jsxs('span', { - children: [ - 'This email is not associated with a VEuPathDB account. ', - _jsx('br', {}), - ' ', - _jsx('b', { children: recipientEmail }), - ' will not receive ', - this.getDatasetNoun(), - '.', - ], - }) - ); - } - const uid = foundUsers[recipientEmail]; - if (uid === this.props.user.id) { - return this.disqualifyRecipient( - recipientEmail, - _jsxs('span', { - children: [ - 'Sorry, you cannot share a', - ' ', - this.props.dataNoun.singular.toLowerCase(), - ' with yourself.', - ], - }) - ); - } else { - return this.acceptRecipient(recipientEmail, uid); - } - }) - .catch((err) => { - console.error( - `verifyRecipient: error checking if '${recipientEmail}' exists.`, - err - ); - return this.disqualifyRecipient( - recipientEmail, - _jsx('span', { children: 'An unknown error occurred.' }) - ); - }); - } - removeRecipient(recipient) { - const { email } = recipient; - const { onClose } = this.props; - const recipients = [ - ...this.state.recipients.filter((user) => user.email !== email), - ]; - return recipients.length ? this.setState({ recipients }) : onClose(); - } - acceptRecipient(recipientEmail, id) { - const { recipients } = this.state; - const acceptedRecipient = { - id, - verified: true, - email: recipientEmail, - error: null, - }; - this.setState({ - recipients: recipients.map((recipient) => { - return recipient.email === recipientEmail - ? acceptedRecipient - : recipient; - }), - }); - } - disqualifyRecipient(recipientEmail, reason) { - const { recipients } = this.state; - const disqualifiedRecipient = { - email: recipientEmail, - verified: false, - error: reason, - }; - this.setState({ - recipients: recipients.map((recipient) => { - return recipient.email === recipientEmail - ? disqualifiedRecipient - : recipient; - }), - }); - } - handleRecipientAdd() { - const { recipientInput, recipients } = this.state; - if (!isValidEmail(recipientInput)) - return alert('Please enter a valid email to share with.'); - if ( - recipients.find( - (recipient) => - recipient.email.toLowerCase() === recipientInput.toLowerCase() - ) - ) - return alert('This email has already been entered.'); - this.setState( - { - recipientInput: null, - recipients: [ - ...recipients, - { - email: recipientInput, - verified: null, - id: null, - }, - ], - }, - () => this.verifyRecipient(recipientInput) - ); - } - renderEmptyState() { - return _jsxs( - 'i', - Object.assign( - { className: 'faded' }, - { - children: [ - 'This ', - this.props.dataNoun.singular.toLowerCase(), - " hasn't been shared yet.", - ], - } - ) - ); - } - unshareWithUser(datasetId, userId) { - if ( - !window.confirm( - `Are you sure you want to stop sharing ${this.getDatasetNoun()} with this user?` - ) - ) - return; - const { unshareUserDatasets } = this.props; - if (typeof unshareUserDatasets !== 'function') - throw new TypeError( - 'UserDatasetSharingModal:unshareWithUser: expected unshareUserDatasets to be function. Got: ' + - typeof unshareUserDatasets - ); - unshareUserDatasets([datasetId], [userId]); - } - renderShareItem(share, index, userDataset) { - const { user, time, userDisplayName } = share; - return _jsxs( - 'div', - { - children: [ - _jsx( - 'span', - Object.assign({ className: 'faded' }, { children: 'Shared with' }) - ), - ' ', - _jsx('b', { children: userDisplayName }), - ' ', - _jsx(DateTime, { datetime: time }), - _jsx( - 'button', - Object.assign( - { - type: 'button', - onClick: () => this.unshareWithUser(userDataset.id, user), - className: 'link', - }, - { children: _jsx(Icon, { fa: 'times-circle unshareRecipient' }) } - ) - ), - ], - }, - index - ); - } - unselectDataset(dataset) { - const { deselectDataset } = this.props; - if (typeof deselectDataset !== 'function') return; - deselectDataset(dataset); - } - renderDatasetItem(userDataset) { - const { sharedWith, id, meta } = userDataset; - const { name } = meta; - const isOwner = this.isMyDataset(userDataset); - const { deselectDataset, dataNoun } = this.props; - const EmptyState = this.renderEmptyState; - const ShareList = this.renderShareList; - return _jsxs( - 'div', - Object.assign( - { - className: 'UserDatasetSharing-Dataset' + (isOwner ? '' : ' invalid'), - }, - { - children: [ - _jsx( - 'div', - Object.assign( - { className: 'UserDatasetSharing-Dataset-Icon' }, - { - children: _jsx(Icon, { - fa: isOwner ? 'table' : 'exclamation-circle danger', - }), - } - ) - ), - _jsxs( - 'div', - Object.assign( - { className: 'UserDatasetSharing-Dataset-Details' }, - { - children: [ - _jsx('h3', { children: name }), - !isOwner - ? _jsxs( - 'i', - Object.assign( - { className: 'faded danger' }, - { - children: [ - 'This ', - dataNoun.singular.toLowerCase(), - ' has been shared with you. Only the owner can share it.', - ], - } - ) - ) - : Array.isArray(sharedWith) && sharedWith.length - ? _jsx(ShareList, { userDataset: userDataset }) - : _jsx(EmptyState, {}), - ], - } - ) - ), - _jsx( - 'div', - Object.assign( - { className: 'UserDatasetSharing-Dataset-Actions' }, - { - children: - typeof deselectDataset !== 'function' - ? null - : _jsx( - 'button', - Object.assign( - { - type: 'button', - title: `Unselect this ${dataNoun.singular.toLowerCase()} for sharing`, - onClick: () => this.unselectDataset(userDataset), - className: 'link removalLink', - }, - { children: _jsx(Icon, { fa: 'close' }) } - ) - ), - } - ) - ), - ], - } - ), - id - ); - } - renderRecipientItem(recipient, index) { - const { email, verified, error } = recipient; - const invalid = verified === false; - const userIcon = - verified === null - ? 'circle-o-notch fa-spin' - : verified - ? 'user-circle' - : 'user-times danger'; - return _jsxs( - 'div', - Object.assign( - { - className: - 'UserDatasetSharing-Recipient' + (invalid ? ' invalid' : ''), - }, - { - children: [ - _jsx( - 'div', - Object.assign( - { className: 'UserDatasetSharing-Recipient-Icon' }, - { children: _jsx(Icon, { fa: userIcon }) } - ) - ), - _jsxs( - 'div', - Object.assign( - { className: 'UserDatasetSharing-Recipient-Details' }, - { - children: [ - _jsx('h3', { children: email }), - invalid - ? _jsx( - 'span', - Object.assign( - { className: 'danger' }, - { children: error } - ) - ) - : `will receive ${this.getDatasetNoun()}`, - ], - } - ) - ), - _jsx( - 'div', - Object.assign( - { className: 'UserDatasetSharing-Recipient-Actions' }, - { - children: _jsx( - 'button', - Object.assign( - { - type: 'button', - onClick: () => this.removeRecipient(recipient), - title: 'Remove this recipient.', - className: 'link removalLink', - }, - { children: _jsx(Icon, { fa: 'close' }) } - ) - ), - } - ) - ), - ], - } - ), - index - ); - } - renderRecipientList({ recipients }) { - return !Array.isArray(recipients) || !recipients.length - ? _jsxs( - 'p', - Object.assign( - { className: 'NoRecipients' }, - { - children: [ - _jsx(Icon, { fa: 'user-o' }), - ' \u00A0 No recipients.', - ], - } - ) - ) - : recipients.map(this.renderRecipientItem); - } - renderShareList({ userDataset }) { - const { sharedWith } = userDataset; - return !Array.isArray(sharedWith) || !sharedWith.length - ? null - : sharedWith.map((share, index) => - this.renderShareItem(share, index, userDataset) - ); - } - renderDatasetList({ datasets }) { - return !Array.isArray(datasets) || !datasets.length - ? null - : datasets.map(this.renderDatasetItem); - } - isRecipientValid(recipient = {}) { - return recipient.verified && recipient.id !== this.props.user.id; - } - isDatasetShareable(dataset = {}) { - return dataset.ownerUserId === this.props.user.id; - } - submitShare() { - const recipients = this.getValidRecipients(); - const datasets = this.getShareableDatasets(); - if (!datasets.length) return; - const { shareUserDatasets } = this.props; - this.setState({ processing: true }, () => { - shareUserDatasets( - datasets.map(({ id }) => id), - recipients.map(({ id }) => id) - ) - .then((response) => { - if (response.type !== 'user-datasets/sharing-success') throw response; - this.setState({ processing: false, succeeded: true }); - }) - .catch((err) => { - console.error('submitShare: rejected', err); - this.setState({ processing: false, succeeded: false }); - }); - }); - } - renderRecipientForm() { - const { recipientInput } = this.state; - const { handleTextChange, handleRecipientAdd } = this; - return _jsxs( - 'form', - Object.assign( - { - className: 'UserDatasetSharing-RecipientForm', - onSubmit: (e) => e.preventDefault(), - }, - { - children: [ - _jsx(TextBox, { - placeholder: 'name@example.com', - onChange: handleTextChange, - value: recipientInput ? recipientInput : '', - }), - _jsx( - 'button', - Object.assign( - { - className: 'btn slim btn-slim', - title: 'Share with this email address', - onClick: handleRecipientAdd, - type: 'submit', - }, - { children: _jsx(Icon, { fa: 'user-plus' }) } - ) - ), - ], - } - ) - ); - } - getValidRecipients() { - const { recipients } = this.state; - return recipients.filter(this.isRecipientValid); - } - getShareableDatasets() { - const { datasets } = this.props; - return datasets.filter(this.isDatasetShareable); - } - renderSharingButtons() { - const datasets = this.getShareableDatasets(); - const recipients = this.getValidRecipients(); - const { dataNoun } = this.props; - return _jsx( - 'div', - Object.assign( - { className: 'UserDatasetSharing-Buttons' }, - { - children: _jsxs( - 'button', - Object.assign( - { - className: 'btn btn-info', - disabled: !recipients.length || !datasets.length, - onClick: this.submitShare, - }, - { - children: [ - _jsx(Icon, { fa: 'share left-side' }), - 'Grant ', - recipients.length, - ' Recipient', - recipients.length === 1 ? '' : 's', - ' Access to', - ' ', - datasets.length === 1 ? dataNoun.singular : dataNoun.plural, - ], - } - ) - ), - } - ) - ); - } - renderViewContent() { - const { recipients, succeeded } = this.state; - const { datasets, onClose, dataNoun } = this.props; - const datasetNoun = this.getDatasetNoun(); - const DatasetList = this.renderDatasetList; - const RecipientList = this.renderRecipientList; - const RecipientForm = this.renderRecipientForm; - const SharingButtons = this.renderSharingButtons; - const CloseButton = () => - _jsx( - 'button', - Object.assign( - { className: 'btn', onClick: () => onClose() }, - { children: 'Close this window.' } - ) - ); - switch (succeeded) { - case true: - return _jsxs( - 'div', - Object.assign( - { className: 'UserDataset-SharingModal-StatusView' }, - { - children: [ - _jsx(Icon, { fa: 'check-circle success' }), - _jsx('h2', { children: 'Shared successfully.' }), - _jsx(CloseButton, {}), - ], - } - ) - ); - case false: - return _jsxs( - 'div', - Object.assign( - { className: 'UserDataset-SharingModal-StatusView' }, - { - children: [ - _jsx(Icon, { fa: 'times-circle danger' }), - _jsxs('h2', { - children: ['Error Sharing ', dataNoun.plural, '.'], - }), - _jsxs('p', { - children: [ - 'An error occurred while sharing your', - ' ', - dataNoun.plural.toLowerCase(), - '. Please try again.', - ], - }), - _jsx(CloseButton, {}), - ], - } - ) - ); - default: - return _jsxs( - 'div', - Object.assign( - { className: 'UserDataset-SharingModal-FormView' }, - { - children: [ - _jsxs( - 'div', - Object.assign( - { className: 'UserDataset-SharingModal-DatasetSection' }, - { - children: [ - _jsxs( - 'h2', - Object.assign( - { className: 'UserDatasetSharing-SectionName' }, - { children: ['Share ', datasetNoun, ':'] } - ) - ), - _jsx(DatasetList, { datasets: datasets }), - ], - } - ) - ), - _jsxs( - 'div', - Object.assign( - { className: 'UserDataset-SharingModal-RecipientSection' }, - { - children: [ - _jsx( - 'h2', - Object.assign( - { className: 'UserDatasetSharing-SectionName' }, - { children: 'With the following recipients:' } - ) - ), - _jsx(RecipientForm, {}), - _jsx(RecipientList, { recipients: recipients }), - _jsx(SharingButtons, {}), - ], - } - ) - ), - ], - } - ) - ); - } - } - render() { - const { onClose } = this.props; - const { processing } = this.state; - const ViewContent = this.renderViewContent; - return _jsxs( - Modal, - Object.assign( - { className: 'UserDataset-SharingModal' }, - { - children: [ - _jsx( - 'div', - Object.assign( - { - className: 'UserDataset-SharingModal-CloseBar', - title: 'Close this window', - }, - { - children: _jsx(Icon, { - fa: 'window-close', - className: 'SharingModal-Close', - onClick: () => - typeof onClose === 'function' ? onClose() : null, - }), - } - ) - ), - processing ? _jsx(Loading, {}) : _jsx(ViewContent, {}), - ], - } - ) - ); - } -} -UserDatasetSharingModal.contextType = WdkDependenciesContext; -export default UserDatasetSharingModal; -//# sourceMappingURL=UserDatasetSharingModal.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.js.map b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.js.map deleted file mode 100644 index b9d5f6aa95..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetSharingModal.js","sourceRoot":"","sources":["../../../src/lib/Components/Sharing/UserDatasetSharingModal.jsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.scss b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.scss deleted file mode 100644 index ace63c4364..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingModal.scss +++ /dev/null @@ -1,192 +0,0 @@ -@import '@veupathdb/wdk-client/lib/Core/Style/palette'; - -.UserDataset-SharingModal { - background-color: white; - color: black; - padding: 30px 20px; - display: flex; - flex-flow: column nowrap; - border-radius: 10px; - box-shadow: 0 0 20px rgba(0, 0, 0, 0.2); - max-height: 95vh; - overflow-y: auto; - min-width: 650px; - max-width: 100%; - - .UserDataset-SharingModal-CloseBar { - text-align: right; - } - .UserDataset-SharingModal-FormView { - margin-top: -50px; - display: flex; - flex-direction: column; - min-height: 250px; - } - - .UserDataset-SharingModal-RecipientSection, - .UserDataset-SharingModal-DatasetSection { - flex: 1; - } - - .NoRecipients { - font-size: 1.1em; - text-align: center; - font-style: italic; - opacity: 0.5; - } - .fa, - button .fa { - margin-right: 0; - } - - .UserDatasetSharing-SectionName { - margin: 10px 0 -5px; - font-weight: 200; - } - - fieldset { - margin: 0; - padding: 0; - border: 0; - display: flex; - align-items: center; - flex-flow: row nowrap; - input { - flex: 1; - border-radius: 4px; - padding: 0 5px !important; - height: 30px; - border-color: rgba(0, 0, 0, 0.2) !important; - } - } - hr { - margin: 20px 0 0; - border: none; - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - } - - .UserDatasetSharing-RecipientForm { - display: flex; - margin: 0; - align-items: center; - input { - flex: 1; - box-sizing: border-box; - height: 35px; - border-color: rgba(0, 0, 0, 0.3) !important; - border-radius: 5px; - background: none; - padding: 10px !important; - background: none; - } - } - - .UserDatasetSharing-Dataset, - .UserDatasetSharing-Recipient { - border: 1px solid rgba(0, 0, 0, 0.1); - border-radius: 5px; - display: flex; - margin-top: 5px; - align-items: center; - flex-flow: row nowrap; - - .removalLink { - cursor: pointer; - position: relative; - &:hover { - color: $red; - } - z-index: 20; - .wdk-Icon { - padding-right: 5px; - } - } - - &.invalid { - opacity: 0.4; - transition: opacity 0.3s; - &:hover { - opacity: 1; - } - } - - .wdk-Icon { - font-size: 1.5em; - margin-left: 10px; - &.fa-times-circle:hover { - color: $red; - } - &.unshareRecipient { - font-size: 15px; - margin-left: 5px; - } - } - .UserDatasetSharing-Dataset-Details, - .UserDatasetSharing-Recipient-Details { - flex: 1 1 auto; - h3 { - line-height: 1em; - margin-top: -5px; - } - .fa-times { - font-size: 0.8em; - } - } - .UserDatasetSharing-Dataset-Actions, - .UserDatasetSharing-Recipient-Actions { - margin-right: 10px; - } - .UserDatasetSharing-Dataset-Icon, - .UserDatasetSharing-Recipient-Icon { - flex: 0 0 auto; - } - .UserDatasetSharing-Dataset-Details, - .UserDatasetSharing-Dataset-Icon, - .UserDatasetSharing-Recipient-Details, - .UserDatasetSharing-Recipient-Icon { - padding: 10px; - } - } - - h3 { - padding: 5px 0; - } - - .UserDatasetSharing-Buttons { - display: flex; - margin: 30px 0 0; - flex-direction: row-reverse; - button { - flex: 0 0 auto; - } - } -} - -.UserDataset-SharingModal-StatusView { - width: 100%; - text-align: center; - padding: 20px 5px; - h2 { - font-weight: 200; - text-align: center; - } - button { - margin-top: 15px; - } - .wdk-Icon { - font-size: 50px; - margin-bottom: 20px; - } -} - -.SharingModal-Close { - font-size: 1.2em; - position: relative; - top: -10px; - z-index: 100; - margin-bottom: -50px; - cursor: pointer; - &:hover { - color: $red; - } -} diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.d.ts b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.d.ts deleted file mode 100644 index 80207fccd0..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Action } from '../../Actions/UserDatasetsActions'; -import { UserDataset } from '../../Utils/types'; -type State = Record< - string, - { - isLoading: boolean; - resource?: UserDataset; - } ->; -export default function reduce(state: State | undefined, action: Action): State; -export {}; -//# sourceMappingURL=UserDatasetSharingReducer.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.d.ts.map deleted file mode 100644 index e504a91474..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetSharingReducer.d.ts","sourceRoot":"","sources":["../../../src/lib/Components/Sharing/UserDatasetSharingReducer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,MAAM,EAGP,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAKlE,KAAK,KAAK,GAAG,MAAM,CACjB,MAAM,EACN;IACE,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,CACF,CAAC;AAOF,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,KAAK,mBAAsB,EAC3B,MAAM,EAAE,MAAM,GACb,KAAK,CAOP"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.js b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.js deleted file mode 100644 index 350e6ded9d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.js +++ /dev/null @@ -1,48 +0,0 @@ -import { differenceWith, unionWith } from 'lodash'; -import { SHARING_SUCCESS } from '../../Actions/UserDatasetsActions'; -const initialState = {}; -const handleAdd = handleOperation('add'); -const handleDelete = handleOperation('delete'); -export default function reduce(state = initialState, action) { - switch (action.type) { - case SHARING_SUCCESS: - return handleAdd(handleDelete(state, action.payload), action.payload); - default: - return state; - } -} -function handleOperation(operation) { - return function (state, payload) { - const sharesByTargetId = payload.response[operation]; - if (sharesByTargetId == null) return state; - return Object.entries(sharesByTargetId).reduce( - (state, [userDatasetId, shares]) => { - const entry = state[userDatasetId]; - // entry can be undefined - if (entry == null || entry.resource == null || shares == null) { - return state; - } - const sharedWith = - operation === 'add' - ? unionWith(entry.resource.sharedWith, shares, shareComparator) - : differenceWith( - entry.resource.sharedWith, - shares, - shareComparator - ); - return Object.assign(Object.assign({}, state), { - [userDatasetId]: Object.assign(Object.assign({}, entry), { - resource: Object.assign(Object.assign({}, entry.resource), { - sharedWith, - }), - }), - }); - }, - state - ); - }; -} -function shareComparator(share1, share2) { - return share1.user === share2.user; -} -//# sourceMappingURL=UserDatasetSharingReducer.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.js.map b/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.js.map deleted file mode 100644 index 55272882b5..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/Sharing/UserDatasetSharingReducer.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetSharingReducer.js","sourceRoot":"","sources":["../../../src/lib/Components/Sharing/UserDatasetSharingReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEnD,OAAO,EAGL,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAe3C,MAAM,YAAY,GAAU,EAAE,CAAC;AAE/B,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;AACzC,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;AAE/C,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,QAAe,YAAY,EAC3B,MAAc;IAEd,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,eAAe;YAClB,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACxE;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC;AAED,SAAS,eAAe,CAAC,SAAyB;IAChD,OAAO,UACL,KAAY,EACZ,OAAwC;QAExC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAErD,IAAI,gBAAgB,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QAE3C,OAAO,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAC5C,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;YACnC,yBAAyB;YACzB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,EAAE;gBAC7D,OAAO,KAAK,CAAC;aACd;YACD,MAAM,UAAU,GACd,SAAS,KAAK,KAAK;gBACjB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,eAAe,CAAC;gBAC/D,CAAC,CAAC,cAAc,CACZ,KAAK,CAAC,QAAQ,CAAC,UAAU,EACzB,MAAM,EACN,eAAe,CAChB,CAAC;YAER,uCACK,KAAK,KACR,CAAC,aAAa,CAAC,kCACV,KAAK,KACR,QAAQ,kCACH,KAAK,CAAC,QAAQ,KACjB,UAAU,UAGd;QACJ,CAAC,EACD,KAAK,CACN,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,MAAwB,EAAE,MAAwB;IACzE,OAAO,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;AACrC,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.d.ts b/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.d.ts deleted file mode 100644 index 4d06435bd7..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// -import { ThemedButtonProps } from './ThemedGrantAccessButton'; -export declare function ThemedDeleteButton({ - buttonText, - onPress, -}: ThemedButtonProps): JSX.Element; -//# sourceMappingURL=ThemedDeleteButton.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.d.ts.map deleted file mode 100644 index bcd618aeb0..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ThemedDeleteButton.d.ts","sourceRoot":"","sources":["../../src/lib/Components/ThemedDeleteButton.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,wBAAgB,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,iBAAiB,eAgD5E"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.js b/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.js deleted file mode 100644 index fffd1a5c35..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.js +++ /dev/null @@ -1,52 +0,0 @@ -import { jsx as _jsx } from 'react/jsx-runtime'; -import { useUITheme } from '@veupathdb/coreui/lib/components/theming'; -import { MesaButton, Trash } from '@veupathdb/coreui'; -import { gray, mutedRed } from '@veupathdb/coreui/lib/definitions/colors'; -export function ThemedDeleteButton({ buttonText, onPress }) { - const theme = useUITheme(); - return _jsx(MesaButton, { - text: buttonText, - textTransform: 'none', - onPress: onPress, - themeRole: undefined, - icon: Trash, - styleOverrides: { - default: { - color: gray[100], - textColor: '#4D4D4D', - dropShadow: { - color: gray[200], - blurRadius: '0px', - offsetX: '0px', - offsetY: '3px', - }, - border: { - color: gray[200], - style: 'solid', - width: 1, - }, - }, - hover: { - color: mutedRed[500], - textColor: 'white', - dropShadow: { - color: mutedRed[700], - blurRadius: '0px', - offsetX: '0px', - offsetY: '4px', - }, - }, - pressed: { - color: mutedRed[600], - textColor: 'white', - dropShadow: { - color: mutedRed[700], - blurRadius: '0px', - offsetX: '0px', - offsetY: '4px', - }, - }, - }, - }); -} -//# sourceMappingURL=ThemedDeleteButton.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.js.map b/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.js.map deleted file mode 100644 index 9582eab651..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/ThemedDeleteButton.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ThemedDeleteButton.js","sourceRoot":"","sources":["../../src/lib/Components/ThemedDeleteButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAG1E,MAAM,UAAU,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,EAAqB;IAC3E,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAE,UAAU,EAChB,aAAa,EAAC,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,KAAK,EACX,cAAc,EAAE;YACd,OAAO,EAAE;gBACP,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;gBAChB,SAAS,EAAE,SAAS;gBACpB,UAAU,EAAE;oBACV,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;oBAChB,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;iBACf;gBACD,MAAM,EAAE;oBACN,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;oBAChB,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,CAAC;iBACT;aACF;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC;gBACpB,SAAS,EAAE,OAAO;gBAClB,UAAU,EAAE;oBACV,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC;oBACpB,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;iBACf;aACF;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC;gBACpB,SAAS,EAAE,OAAO;gBAClB,UAAU,EAAE;oBACV,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC;oBACpB,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;iBACf;aACF;SACF,GACD,CACH,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.d.ts b/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.d.ts deleted file mode 100644 index b8ef247ce4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -/// -export type ThemedButtonProps = { - buttonText: string; - onPress: () => null; -}; -export declare function ThemedGrantAccessButton({ - buttonText, - onPress, -}: ThemedButtonProps): JSX.Element; -//# sourceMappingURL=ThemedGrantAccessButton.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.d.ts.map deleted file mode 100644 index f6e9cdfb4d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ThemedGrantAccessButton.d.ts","sourceRoot":"","sources":["../../src/lib/Components/ThemedGrantAccessButton.tsx"],"names":[],"mappings":";AAGA,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,EACtC,UAAU,EACV,OAAO,GACR,EAAE,iBAAiB,eAyCnB"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.js b/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.js deleted file mode 100644 index 2a6230a7b9..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.js +++ /dev/null @@ -1,56 +0,0 @@ -import { jsx as _jsx } from 'react/jsx-runtime'; -import { useUITheme } from '@veupathdb/coreui/lib/components/theming'; -import { MesaButton, Share } from '@veupathdb/coreui'; -export function ThemedGrantAccessButton({ buttonText, onPress }) { - const theme = useUITheme(); - return _jsx(MesaButton, { - text: buttonText, - textTransform: 'none', - onPress: onPress, - themeRole: 'primary', - icon: Share, - styleOverrides: { - default: { - border: { - color: - theme === null || theme === void 0 - ? void 0 - : theme.palette.primary.hue[theme.palette.primary.level + 100], - style: 'solid', - width: 1, - }, - }, - hover: { - color: - theme === null || theme === void 0 - ? void 0 - : theme.palette.primary.hue[theme.palette.primary.level + 100], - dropShadow: { - color: - theme === null || theme === void 0 - ? void 0 - : theme.palette.primary.hue[theme.palette.primary.level + 300], - blurRadius: '0px', - offsetX: '0px', - offsetY: '4px', - }, - }, - pressed: { - color: - theme === null || theme === void 0 - ? void 0 - : theme.palette.primary.hue[theme.palette.primary.level + 200], - dropShadow: { - color: - theme === null || theme === void 0 - ? void 0 - : theme.palette.primary.hue[theme.palette.primary.level + 400], - blurRadius: '0px', - offsetX: '0px', - offsetY: '4px', - }, - }, - }, - }); -} -//# sourceMappingURL=ThemedGrantAccessButton.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.js.map b/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.js.map deleted file mode 100644 index accf09d6ed..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/ThemedGrantAccessButton.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"ThemedGrantAccessButton.js","sourceRoot":"","sources":["../../src/lib/Components/ThemedGrantAccessButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAOtD,MAAM,UAAU,uBAAuB,CAAC,EACtC,UAAU,EACV,OAAO,GACW;IAClB,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAE,UAAU,EAChB,aAAa,EAAC,MAAM,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,SAAS,EACnB,IAAI,EAAE,KAAK,EACX,cAAc,EAAE;YACd,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,KAAK,EACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC/D,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE,CAAC;iBACT;aACF;YACD,KAAK,EAAE;gBACL,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;gBACpE,UAAU,EAAE;oBACV,KAAK,EACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC/D,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;iBACf;aACF;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;gBACpE,UAAU,EAAE;oBACV,KAAK,EACH,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;oBAC/D,UAAU,EAAE,KAAK;oBACjB,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK;iBACf;aACF;SACF,GACD,CACH,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.d.ts b/packages/libs/user-datasets-legacy/lib/Components/UploadForm.d.ts deleted file mode 100644 index a9d4319864..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -/// -import { StrategySummary } from '@veupathdb/wdk-client/lib/Utils/WdkUser'; -import { State } from '../StoreModules/UserDatasetUploadStoreModule'; -import { - CompatibleRecordTypes, - DatasetUploadTypeConfigEntry, - NewUserDataset, - ResultUploadConfig, -} from '../Utils/types'; -import './UploadForm.scss'; -interface Props { - baseUrl: string; - datasetUploadType: DatasetUploadTypeConfigEntry; - projectId: string; - badUploadMessage: State['badUploadMessage']; - urlParams: Record; - strategyOptions: StrategySummary[]; - resultUploadConfig?: ResultUploadConfig; - clearBadUpload: () => void; - submitForm: (newUserDataset: FormSubmission, redirectTo?: string) => void; - supportedFileUploadTypes: string[]; - maxSizeBytes?: number; -} -type DataUploadSelection = - | { - type: 'file'; - file?: File; - } - | { - type: 'url'; - url?: string; - } - | { - type: 'result'; - stepId?: number; - compatibleRecordTypes?: CompatibleRecordTypes; - }; -type CompleteDataUploadSelection = Required; -export type FormValidation = InvalidForm | ValidForm; -export interface InvalidForm { - valid: false; - errors: string[]; -} -export interface ValidForm { - valid: true; - submission: FormSubmission; -} -export interface FormSubmission extends Omit { - dataUploadSelection: CompleteDataUploadSelection; -} -declare function UploadForm({ - badUploadMessage, - baseUrl, - datasetUploadType, - projectId, - urlParams, - strategyOptions, - resultUploadConfig, - clearBadUpload, - submitForm, - supportedFileUploadTypes, - maxSizeBytes, -}: Props): JSX.Element; -export default UploadForm; -//# sourceMappingURL=UploadForm.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/UploadForm.d.ts.map deleted file mode 100644 index 4ede45c9b4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UploadForm.d.ts","sourceRoot":"","sources":["../../src/lib/Components/UploadForm.tsx"],"names":[],"mappings":";AAqBA,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAE,MAAM,8CAA8C,CAAC;AACrE,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACd,kBAAkB,EACnB,MAAM,gBAAgB,CAAC;AAExB,OAAO,mBAAmB,CAAC;AAI3B,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,UAAU,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAID,KAAK,mBAAmB,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,IAAI,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7B;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;CAC/C,CAAC;AAEN,KAAK,2BAA2B,GAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AASjE,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,SAAS,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,IAAI,CAAC;IACZ,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,cAAc,EAAE,cAAc,CAAC;IAC1E,mBAAmB,EAAE,2BAA2B,CAAC;CAClD;AAED,iBAAS,UAAU,CAAC,EAClB,gBAAgB,EAChB,OAAO,EACP,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,wBAAwB,EACxB,YAAY,GACb,EAAE,KAAK,eAwWP;AA4FD,eAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.js b/packages/libs/user-datasets-legacy/lib/Components/UploadForm.js deleted file mode 100644 index 18f53acc9a..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.js +++ /dev/null @@ -1,620 +0,0 @@ -var __rest = - (this && this.__rest) || - function (s, e) { - var t = {}; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === 'function') - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if ( - e.indexOf(p[i]) < 0 && - Object.prototype.propertyIsEnumerable.call(s, p[i]) - ) - t[p[i]] = s[p[i]]; - } - return t; - }; -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import React, { useCallback, useEffect, useMemo, useState } from 'react'; -import { keyBy } from 'lodash'; -import Icon from '@veupathdb/wdk-client/lib/Components/Icon/IconAlt'; -import { - TextBox, - TextArea, - FileInput, - RadioList, - SingleSelect, -} from '@veupathdb/wdk-client/lib/Components'; -import { makeClassNameHelper } from '@veupathdb/wdk-client/lib/Utils/ComponentUtils'; -import './UploadForm.scss'; -const cx = makeClassNameHelper('UploadForm'); -function UploadForm({ - badUploadMessage, - baseUrl, - datasetUploadType, - projectId, - urlParams, - strategyOptions, - resultUploadConfig, - clearBadUpload, - submitForm, - supportedFileUploadTypes, - maxSizeBytes, -}) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p; - const strategyOptionsByStrategyId = useMemo( - () => keyBy(strategyOptions, (option) => option.strategyId), - [strategyOptions] - ); - const { useFixedUploadMethod: useFixedUploadMethodStr } = urlParams; - const useFixedUploadMethod = useMemo( - () => useFixedUploadMethodStr === 'true', - [useFixedUploadMethodStr] - ); - const displayUrlUploadMethod = - ((_a = datasetUploadType.formConfig.uploadMethodConfig.url) === null || - _a === void 0 - ? void 0 - : _a.offer) !== false; - const displayStrategyUploadMethod = - (_b = datasetUploadType.formConfig.uploadMethodConfig.result) === null || - _b === void 0 - ? void 0 - : _b.offerStrategyUpload; - const enableStrategyUploadMethod = - Boolean(displayStrategyUploadMethod) && strategyOptions.length > 0; - const [name, setName] = useState( - (_c = urlParams.datasetName) !== null && _c !== void 0 ? _c : '' - ); - const [summary, setSummary] = useState( - (_d = urlParams.datasetSummary) !== null && _d !== void 0 ? _d : '' - ); - const [description, setDescription] = useState( - (_e = urlParams.datasetDescription) !== null && _e !== void 0 ? _e : '' - ); - const [dataUploadMode, setDataUploadMode] = useState( - urlParams.datasetStepId - ? 'step' - : urlParams.datasetStrategyRootStepId && enableStrategyUploadMethod - ? 'strategy' - : urlParams.datasetUrl && displayUrlUploadMethod - ? 'url' - : 'file' - ); - const [file, setFile] = useState(); - const [url, setUrl] = useState( - (_f = urlParams.datasetUrl) !== null && _f !== void 0 ? _f : '' - ); - const initialStepId = useMemo(() => { - var _a, _b; - const parsedStepIdParam = Number(urlParams.datasetStepId); - if (isFinite(parsedStepIdParam)) { - return parsedStepIdParam; - } - const parsedStrategyIdParam = Number(urlParams.datasetStrategyId); - return !enableStrategyUploadMethod || !isFinite(parsedStrategyIdParam) - ? (_a = strategyOptions[0]) === null || _a === void 0 - ? void 0 - : _a.rootStepId - : (_b = strategyOptionsByStrategyId[parsedStrategyIdParam]) === null || - _b === void 0 - ? void 0 - : _b.rootStepId; - }, [ - urlParams.datasetStepId, - urlParams.datasetStrategyId, - strategyOptions, - strategyOptionsByStrategyId, - enableStrategyUploadMethod, - ]); - const [stepId, setStepId] = useState(initialStepId); - useEffect(() => { - setStepId(initialStepId); - }, [initialStepId]); - const [errorMessages, setErrorMessages] = useState([]); - const [submitting, setSubmitting] = useState(false); - const dataUploadSelection = useMemo(() => { - if (dataUploadMode === 'file') { - return { type: 'file', file }; - } - if (dataUploadMode === 'url') { - return { type: 'url', url }; - } - if (resultUploadConfig == null) { - throw new Error('This data set type does not support result uploads.'); - } - if (stepId == null) { - return { type: 'result' }; - } - return { - type: 'result', - stepId, - compatibleRecordTypes: resultUploadConfig.compatibleRecordTypes, - }; - }, [dataUploadMode, file, url, resultUploadConfig, stepId]); - const onSubmit = useCallback( - (event) => { - event.preventDefault(); - const formValidation = validateForm( - projectId, - datasetUploadType, - enableStrategyUploadMethod, - { - name, - summary, - description, - dataUploadSelection, - } - ); - if (!formValidation.valid) { - setErrorMessages(formValidation.errors); - } else { - setSubmitting(true); - submitForm(formValidation.submission, `${baseUrl}/recent`); - } - }, - [ - baseUrl, - projectId, - datasetUploadType, - enableStrategyUploadMethod, - name, - summary, - description, - dataUploadSelection, - submitForm, - ] - ); - useEffect(() => { - if (badUploadMessage != null) { - setErrorMessages([badUploadMessage.message]); - setSubmitting(false); - } - }, [badUploadMessage]); - useEffect(() => { - return () => { - clearBadUpload(); - }; - }, [clearBadUpload]); - const nameInputProps = - (_g = datasetUploadType.formConfig.name) === null || _g === void 0 - ? void 0 - : _g.inputProps; - const summaryInputProps = - (_h = datasetUploadType.formConfig.summary) === null || _h === void 0 - ? void 0 - : _h.inputProps; - const descriptionInputProps = - (_j = datasetUploadType.formConfig.description) === null || _j === void 0 - ? void 0 - : _j.inputProps; - const summaryRequired = - (_k = - summaryInputProps === null || summaryInputProps === void 0 - ? void 0 - : summaryInputProps.required) !== null && _k !== void 0 - ? _k - : true; - const descriptionRequired = - (_l = - descriptionInputProps === null || descriptionInputProps === void 0 - ? void 0 - : descriptionInputProps.required) !== null && _l !== void 0 - ? _l - : true; - const defaultFileInputField = _jsx(FileInput, { - accept: supportedFileUploadTypes - .map((fileUploadType) => `.${fileUploadType}`) - .join(','), - required: dataUploadMode === 'file', - disabled: dataUploadMode !== 'file' || useFixedUploadMethod, - maxSizeBytes: maxSizeBytes, - onChange: (file) => { - const fileWithSpacedRemovedFromName = - file && - new File( - [file], - file === null || file === void 0 - ? void 0 - : file.name.replace(/\s+/g, '_'), - file - ); - setFile( - fileWithSpacedRemovedFromName !== null && - fileWithSpacedRemovedFromName !== void 0 - ? fileWithSpacedRemovedFromName - : undefined - ); - }, - }); - const renderFileInput = - (_m = datasetUploadType.formConfig.uploadMethodConfig.file) === null || - _m === void 0 - ? void 0 - : _m.render; - const fileInputField = - renderFileInput == null - ? defaultFileInputField - : renderFileInput({ fieldNode: defaultFileInputField }); - const uploadMethodItems = [ - { - value: 'file', - disabled: useFixedUploadMethod, - display: _jsxs(React.Fragment, { - children: [ - _jsx( - FieldLabel, - Object.assign( - { htmlFor: 'data-set-file', required: dataUploadMode === 'file' }, - { children: 'Upload File' } - ) - ), - _jsx( - 'div', - Object.assign( - { - id: 'data-set-file', - className: cx( - '--UploadMethodField', - dataUploadMode !== 'file' && 'disabled' - ), - }, - { children: fileInputField } - ) - ), - ], - }), - }, - ] - .concat( - !displayUrlUploadMethod - ? [] - : [ - { - value: 'url', - disabled: useFixedUploadMethod, - display: _jsxs(React.Fragment, { - children: [ - _jsx( - FieldLabel, - Object.assign( - { - htmlFor: 'data-set-url', - required: dataUploadMode === 'url', - }, - { children: 'Upload URL' } - ) - ), - _jsx(TextBox, { - type: 'input', - className: cx( - '--UploadMethodField', - dataUploadMode !== 'url' && 'disabled' - ), - id: 'data-set-url', - placeholder: 'Address of a data file from the Web', - value: url, - required: dataUploadMode === 'url', - disabled: dataUploadMode !== 'url' || useFixedUploadMethod, - onChange: setUrl, - }), - ], - }), - }, - ] - ) - .concat( - !displayStrategyUploadMethod - ? [] - : [ - { - value: 'strategy', - disabled: !enableStrategyUploadMethod || useFixedUploadMethod, - display: _jsxs(React.Fragment, { - children: [ - _jsx( - FieldLabel, - Object.assign( - { - htmlFor: 'data-set-strategy', - required: dataUploadMode === 'strategy', - }, - { children: 'Upload Strategy' } - ) - ), - _jsx( - 'div', - Object.assign( - { - id: 'data-set-strategy', - className: cx( - '--UploadMethodField', - dataUploadMode !== 'strategy' && 'disabled' - ), - }, - { - children: _jsx(SingleSelect, { - value: `${stepId}`, - items: strategyOptions.map((option) => ({ - value: `${option.rootStepId}`, - display: `${option.name}${ - !option.isSaved ? '*' : '' - }`, - })), - required: dataUploadMode === 'strategy', - onChange: (value) => { - setStepId(Number(value)); - }, - }), - } - ) - ), - ], - }), - }, - ] - ); - return _jsxs( - 'form', - Object.assign( - { - className: cx(), - style: submitting ? { opacity: '0.5' } : {}, - onSubmit: onSubmit, - }, - { - children: [ - errorMessages.length > 0 && - _jsx(ErrorMessage, { errors: errorMessages }), - _jsxs('div', { - children: [ - _jsx('h2', { children: datasetUploadType.uploadTitle }), - _jsxs( - 'div', - Object.assign( - { className: 'formSection' }, - { - children: [ - _jsx( - FieldLabel, - Object.assign( - { required: true, htmlFor: 'data-set-name' }, - { children: 'Name' } - ) - ), - _jsx('br', {}), - _jsx( - TextBox, - Object.assign( - { - type: 'input', - id: 'data-set-name', - placeholder: 'name of the data set', - }, - nameInputProps, - { required: true, value: name, onChange: setName } - ) - ), - ], - } - ) - ), - _jsxs( - 'div', - Object.assign( - { className: 'formSection' }, - { - children: [ - _jsx( - FieldLabel, - Object.assign( - { - htmlFor: 'data-set-summary', - required: summaryRequired, - }, - { children: 'Summary' } - ) - ), - _jsx( - TextBox, - Object.assign( - { - type: 'input', - id: 'data-set-summary', - placeholder: - 'brief summary of the data set contents', - required: summaryRequired, - }, - summaryInputProps, - { value: summary, onChange: setSummary } - ) - ), - ], - } - ) - ), - _jsxs( - 'div', - Object.assign( - { className: 'formSection' }, - { - children: [ - _jsx( - FieldLabel, - Object.assign( - { - htmlFor: 'data-set-description', - required: descriptionRequired, - }, - { children: 'Description' } - ) - ), - _jsx( - TextArea, - Object.assign( - { - id: 'data-set-description', - placeholder: - 'brief description of the data set contents', - required: descriptionRequired, - }, - descriptionInputProps, - { value: description, onChange: setDescription } - ) - ), - ], - } - ) - ), - _jsx( - 'div', - Object.assign( - { className: 'formSection' }, - { - children: - uploadMethodItems.length === 1 - ? _jsx( - 'div', - Object.assign( - { className: cx('--UploadMethodSelector') }, - { - children: _jsx( - 'div', - Object.assign( - { className: cx('--FixedUploadItem') }, - { children: uploadMethodItems[0].display } - ) - ), - } - ) - ) - : _jsx(RadioList, { - name: 'data-set-radio', - className: cx('--UploadMethodSelector'), - value: dataUploadMode, - onChange: (value) => { - if ( - value !== 'url' && - value !== 'file' && - value !== 'strategy' - ) { - throw new Error( - `Unrecognized upload method '${value}' encountered.` - ); - } - setDataUploadMode(value); - }, - items: uploadMethodItems, - }), - } - ) - ), - ], - }), - _jsx( - 'button', - Object.assign( - { type: 'submit', className: 'btn', disabled: submitting }, - { children: 'Upload Data Set' } - ) - ), - (_p = - (_o = datasetUploadType.formConfig) === null || _o === void 0 - ? void 0 - : _o.renderInfo) === null || _p === void 0 - ? void 0 - : _p.call(_o), - ], - } - ) - ); -} -function FieldLabel(_a) { - var { children, required } = _a, - labelProps = __rest(_a, ['children', 'required']); - return _jsxs( - 'label', - Object.assign({}, labelProps, { - children: [children, required ? '*' : null], - }) - ); -} -function ErrorMessage({ errors }) { - return _jsxs( - 'div', - Object.assign( - { className: 'ui-state-error', style: { fontSize: 'large' } }, - { - children: [ - _jsxs('div', { - children: [ - _jsx(Icon, { fa: 'exclamation-triangle' }), - '\u00A0 Could not upload data set', - ], - }), - errors.map((error, ix) => - _jsx( - 'div', - Object.assign( - { className: 'ui-state-error-text' }, - { children: error } - ), - ix - ) - ), - ], - } - ) - ); -} -function validateForm( - projectId, - datasetUploadType, - enableResultUploadMethod, - formContent -) { - const { name, summary, description, dataUploadSelection } = formContent; - if (!isCompleteDataUploadSelection(dataUploadSelection)) { - return { - valid: false, - errors: !enableResultUploadMethod - ? ['Required: data file or URL'] - : ['Required: data file, URL, or strategy'], - }; - } - if ( - dataUploadSelection.type === 'url' && - !isValidUrl(dataUploadSelection.url) - ) { - return { - valid: false, - errors: ['The provided data URL does not seem valid'], - }; - } - return { - valid: true, - submission: { - name, - summary, - description, - datasetType: datasetUploadType.type, - projects: [projectId], - dataUploadSelection, - }, - }; -} -function isCompleteDataUploadSelection(dataUploadSelection) { - return Object.values(dataUploadSelection).every((value) => value != null); -} -// https://stackoverflow.com/a/43467144 -function isValidUrl(string) { - try { - new URL(string); - } catch (_) { - return false; - } - return true; -} -export default UploadForm; -//# sourceMappingURL=UploadForm.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.js.map b/packages/libs/user-datasets-legacy/lib/Components/UploadForm.js.map deleted file mode 100644 index 9e8be418c0..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UploadForm.js","sourceRoot":"","sources":["../../src/lib/Components/UploadForm.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.scss b/packages/libs/user-datasets-legacy/lib/Components/UploadForm.scss deleted file mode 100644 index cfdd8f1b2c..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UploadForm.scss +++ /dev/null @@ -1,68 +0,0 @@ -.UploadForm { - h2 { - color: #222; - font-size: 1.5em; - font-weight: 500; - margin: 0; - padding: 22px 0 8px 0; - } - .formSection > label { - font-size: medium; - } - #data-set-name { - min-width: 300px; - } - #data-set-summary { - width: 100%; - } - #data-set-description { - width: 100%; - height: 8em; - } - #data-set-url { - width: 100%; - max-width: 51em; - } - .formInfo { - width: 80%; - text-align: justify; - } - .formSection { - margin: 1em 0; - } - select { - max-width: 450px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - & &--UploadMethodSelector { - margin-top: 2em; - margin-bottom: 3.5em; - - li > label { - display: grid; - grid-template-columns: auto 10em 1fr; - - label { - font-size: medium; - margin-left: 0.25em; - } - } - } - & &--UploadMethodSelector &--FixedUploadItem { - display: grid; - grid-template-columns: 10em 1fr; - - label { - font-size: medium; - margin-left: 0.25em; - } - } - & &--UploadMethodField { - &__disabled { - opacity: 0.3; - pointer-events: none; - } - } -} diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.d.ts b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.d.ts deleted file mode 100644 index 38b8d259f4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -/// -interface Props { - hasDirectUpload: boolean; - projectName: string; - quotaSize: number; - workspaceTitle: string; -} -declare function UserDatasetHelp({ - hasDirectUpload, - projectName, - quotaSize, - workspaceTitle, -}: Props): JSX.Element; -export default UserDatasetHelp; -//# sourceMappingURL=UserDatasetHelp.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.d.ts.map deleted file mode 100644 index 6019c9b876..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetHelp.d.ts","sourceRoot":"","sources":["../../src/lib/Components/UserDatasetHelp.tsx"],"names":[],"mappings":";AAMA,UAAU,KAAK;IACb,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,iBAAS,eAAe,CAAC,EACvB,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,GACf,EAAE,KAAK,eAqIP;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.js b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.js deleted file mode 100644 index 5bfbdf5b8f..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.js +++ /dev/null @@ -1,288 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import { bytesToHuman } from '@veupathdb/wdk-client/lib/Utils/Converters'; -import { Link } from '@veupathdb/wdk-client/lib/Components'; -import tutStep2 from './images/tut-step-2.jpg'; -import tutStep3 from './images/tut-step-3.jpg'; -function UserDatasetHelp({ - hasDirectUpload, - projectName, - quotaSize, - workspaceTitle, -}) { - // FIXME: Perhaps this should be provided via static content? - return hasDirectUpload - ? _jsxs( - 'div', - Object.assign( - { className: 'UserDataset-Help' }, - { - children: [ - _jsxs('section', { - children: [ - _jsx('h2', { children: 'Preparing data for upload' }), - _jsx('h4', { - children: 'Processing amplicon sequencing reads ', - }), - 'Taxon counts can be obtained from metagenome sequences through commonly available tools. Three of the most common ones (', - _jsx( - 'a', - Object.assign( - { href: 'https://benjjneb.github.io/dada2' }, - { children: 'DADA2' } - ) - ), - ',', - ' ', - _jsx( - 'a', - Object.assign( - { href: 'www.qiime.org' }, - { children: 'QIIME' } - ) - ), - ', and', - ' ', - _jsx( - 'a', - Object.assign( - { href: 'www.mothur.org/wiki/Make.biom' }, - { children: 'Mothur' } - ) - ), - ") have been integrated into workflows, and are available as a free online service, through NIAID's ", - _jsx( - 'a', - Object.assign( - { href: 'https://nephele.niaid.nih.gov/' }, - { children: 'Nephele' } - ) - ), - ' project.', - _jsx('h4', { children: 'Formatting the input ' }), - 'You can upload any file that contains processed taxonomic reads in a valid BIOM format. See ', - _jsx( - 'a', - Object.assign( - { href: 'http://biom-format.org/' }, - { children: 'this page' } - ) - ), - ' ', - 'for examples. If your data is in a different format - for example TSV - you can use', - ' ', - _jsx( - 'a', - Object.assign( - { - href: 'http://biom-format.org/documentation/biom_conversion.html', - }, - { children: 'conversion tools' } - ) - ), - ' ', - 'from the Python package ', - _jsx('code', { children: 'biom-format' }), - '.', - _jsx('h4', { children: 'Sample Details' }), - 'Annotations for samples are not required, but they can be useful for subsetting and grouping samples.', - _jsx('br', {}), - _jsx('br', {}), - 'If possible, try to include rich sample details in your uploaded file, to obtain full benefits from our suite of visualisation and analysis tools.', - _jsx('br', {}), - _jsx('br', {}), - 'This', - ' ', - _jsx( - 'a', - Object.assign( - { - href: 'http://biom-format.org/documentation/adding_metadata.html', - }, - { children: 'documentation page' } - ) - ), - ' ', - 'shows how to add sample details to a BIOM file using a tool', - ' ', - _jsx('code', { children: 'biom-add-metadata' }), - '.', - ], - }), - _jsxs('section', { - children: [ - _jsx('h2', { children: 'Tips for analysis' }), - 'Queries for user data sets work like they do for MicrobiomeDB data sets, allowing you to either proceed with the whole data set for analysis, or selecting a subset based on sample details or by taxon abundance. You can access them from each data set page.', - _jsx('br', {}), - 'You can extend and modify those searches using the strategies panel on the results page. This allows comparing uploaded data sets with each other, or with public MicrobiomeDB data sets.', - _jsx('br', {}), - _jsx('br', {}), - 'All analyses and visualisations available for MicrobiomeDB data sets can also be used on the uploaded data set, for example:', - _jsx('br', {}), - _jsxs('ul', { - children: [ - _jsxs('li', { - children: [ - 'Box and Whisker plot showing most abundant taxa, split by sample groups', - ' ', - ], - }), - _jsxs('li', { - children: [ - 'Alpha diversity trends for samples annotated by continuous variables like patient height or age', - ' ', - ], - }), - _jsx('li', { - children: - 'Beta diversity plots annotated by sample groups', - }), - _jsxs('li', { - children: [ - ' ', - 'Report of differentially abundant samples between groups of samples', - ' ', - ], - }), - ], - }), - ], - }), - ], - } - ) - ) - : _jsx('div', { - children: _jsxs( - 'div', - Object.assign( - { className: 'row UserDataset-Help' }, - { - children: [ - _jsxs( - 'div', - Object.assign( - { className: 'box xs-12' }, - { - children: [ - _jsx('h2', { children: 'Introduction' }), - _jsx('iframe', { - title: 'Introduction to User Datasets', - src: 'https://www.youtube-nocookie.com/embed/igQZHjRBqV0', - frameBorder: '0', - allow: - 'accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture', - allowFullScreen: true, - width: '560', - height: '315', - }), - ], - } - ) - ), - _jsxs( - 'div', - Object.assign( - { className: 'box xs-12 md-6' }, - { - children: [ - _jsx('h2', { children: 'VEuPathDB Galaxy' }), - _jsx('img', { - alt: 'Screenshoot for step 2 of tutorial', - src: tutStep2, - }), - _jsxs('ul', { - children: [ - _jsxs('li', { - children: [ - 'Use the ', - _jsx('b', { - children: 'VEuPathDB Export Tools', - }), - ' on the left-side navigation, at ', - _jsx( - Link, - Object.assign( - { to: '/galaxy-orientation' }, - { children: 'VEuPathDB Galaxy' } - ) - ), - '.', - ], - }), - _jsxs('li', { - children: [ - 'Prepare your export data set by selecting the files (galaxy data sets) in your history.', - ' ', - ], - }), - _jsxs('li', { - children: [ - 'The data set name, summary and description can be edited later in the ', - _jsx('i', { children: workspaceTitle }), - ' page.', - ], - }), - _jsxs('li', { - children: [ - "When you're ready, ", - _jsx('code', { children: 'Execute' }), - ' the export. The process of exporting to VEuPathDB may take some time. Progress can be monitored from the right-side history panel in Galaxy.', - ], - }), - ], - }), - ], - } - ) - ), - _jsxs( - 'div', - Object.assign( - { className: 'box xs-12 md-6' }, - { - children: [ - _jsxs('h2', { children: [workspaceTitle, ' page'] }), - _jsx('img', { - alt: 'Screenshoot for step 3 of tutorial', - src: tutStep3, - }), - _jsxs('ul', { - children: [ - _jsxs('li', { - children: [ - 'You can now view, manage, share, and utilize your data set in', - ' ', - _jsx('b', { children: projectName }), - '.', - ], - }), - _jsxs('li', { - children: [ - workspaceTitle, - " you've created contribute to a per-user upload limit/quota of ", - _jsx('b', { - children: bytesToHuman(quotaSize), - }), - '.', - ], - }), - _jsxs('li', { - children: [ - ' ', - "Bigwig files can be sent to JBrowse in the data set's detail page. Click the data set name or status icon to see this page.", - ], - }), - ], - }), - ], - } - ) - ), - ], - } - ) - ), - }); -} -export default UserDatasetHelp; -//# sourceMappingURL=UserDatasetHelp.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.js.map b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.js.map deleted file mode 100644 index ff8ca16c60..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetHelp.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetHelp.js","sourceRoot":"","sources":["../../src/lib/Components/UserDatasetHelp.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAC;AAC1E,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAE5D,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAS/C,SAAS,eAAe,CAAC,EACvB,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,GACR;IACN,6DAA6D;IAC7D,OAAO,eAAe,CAAC,CAAC,CAAC,CACvB,6BAAK,SAAS,EAAC,kBAAkB,iBAC/B,8BACE,qDAAkC,EAClC,iEAA8C,8HAG9C,0BAAG,IAAI,EAAC,kCAAkC,2BAAU,OAAE,GAAG,EACzD,0BAAG,IAAI,EAAC,eAAe,2BAAU,WAAM,GAAG,EAC1C,0BAAG,IAAI,EAAC,+BAA+B,4BAAW,yGAE1C,0BAAG,IAAI,EAAC,gCAAgC,6BAAY,eAC5D,iDAA8B,kGAEP,0BAAG,IAAI,EAAC,yBAAyB,+BAEpD,EAAC,GAAG,yFAEI,GAAG,EACf,0BAAG,IAAI,EAAC,2DAA2D,sCAE/D,EAAC,GAAG,8BACgB,yCAAwB,OAAC,0CAAuB,2GAGxE,cAAM,EACN,cAAM,wJAIN,cAAM,EACN,cAAM,UACD,GAAG,EACR,0BAAG,IAAI,EAAC,2DAA2D,wCAE/D,EAAC,GAAG,iEACoD,GAAG,EAC/D,+CAA8B,SACtB,EACV,8BACE,6CAA0B,qQAK1B,cAAM,+LAIN,cAAM,EACN,cAAM,kIAGN,cAAM,EACN,yBACE,oGAES,GAAG,IACP,EACL,4HAE6B,GAAG,IAC3B,EACL,2EAAwD,EACxD,yBACG,GAAG,yEACgE,GAAG,IACpE,IACF,IACG,KACN,CACP,CAAC,CAAC,CAAC,CACF,wBACE,6BAAK,SAAS,EAAC,sBAAsB,iBACnC,6BAAK,SAAS,EAAC,WAAW,iBACxB,wCAAqB,EACrB,iBACE,KAAK,EAAC,+BAA+B,EACrC,GAAG,EAAC,oDAAoD,EACxD,WAAW,EAAC,GAAG,EACf,KAAK,EAAC,0FAA0F,EAChG,eAAe,QACf,KAAK,EAAC,KAAK,EACX,MAAM,EAAC,KAAK,GACJ,KACN,EACN,6BAAK,SAAS,EAAC,gBAAgB,iBAC7B,4CAAyB,EACzB,cAAK,GAAG,EAAC,oCAAoC,EAAC,GAAG,EAAE,QAAQ,GAAI,EAC/D,yBACE,qCACU,iDAA6B,uCAClC,KAAC,IAAI,kBAAC,EAAE,EAAC,qBAAqB,sCAAwB,SACtD,EACL,oHAEyB,GAAG,IACvB,EACL,mGAEM,sBAAI,cAAc,GAAK,cACxB,EACL,gDACqB,qCAAoB,qJAGpC,IACF,KACD,EACN,6BAAK,SAAS,EAAC,gBAAgB,iBAC7B,yBAAK,cAAc,aAAW,EAC9B,cAAK,GAAG,EAAC,oCAAoC,EAAC,GAAG,EAAE,QAAQ,GAAI,EAC/D,yBACE,0FACgE,GAAG,EACjE,sBAAI,WAAW,GAAK,SACjB,EACL,yBACG,cAAc,qEACA,sBAAI,YAAY,CAAC,SAAS,CAAC,GAAK,SAC5C,EACL,yBACG,GAAG,mIAGD,IACF,KACD,KACF,GACF,CACP,CAAC;AACJ,CAAC;AAED,eAAe,eAAe,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.d.ts b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.d.ts deleted file mode 100644 index bdd2e78aef..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/// -import { UserDataset } from '../Utils/types'; -interface Props { - baseUrl: string; - userDataset: UserDataset; - projectId: string; - displayName: string; - linkToDataset: boolean; - useTooltip: boolean; -} -export default function UserDatasetStatus(props: Props): JSX.Element; -export {}; -//# sourceMappingURL=UserDatasetStatus.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.d.ts.map deleted file mode 100644 index 53bb76fd2d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetStatus.d.ts","sourceRoot":"","sources":["../../src/lib/Components/UserDatasetStatus.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;CACrB;AAID,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAK,EAAE,KAAK,eAiDrD"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.js b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.js deleted file mode 100644 index 26d9d4233f..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.js +++ /dev/null @@ -1,68 +0,0 @@ -import { jsxs as _jsxs, jsx as _jsx } from 'react/jsx-runtime'; -import * as React from 'react'; -import { - IconAlt as Icon, - Link, - Tooltip, -} from '@veupathdb/wdk-client/lib/Components'; -const FOUR_HOURS = 4 * (1000 * 60 * 60); -export default function UserDatasetStatus(props) { - const { baseUrl, userDataset, projectId, displayName } = props; - const { isInstalled, isCompatible, projects, age } = userDataset; - const isInstallable = projects.includes(projectId); - const isPending = isCompatible && age < FOUR_HOURS; - const isError = isCompatible && !isPending; - const link = `${baseUrl}/${userDataset.id}`; - const content = !isInstallable - ? _jsxs('span', { - children: ['This data set is not compatible with ', displayName, '.'], - }) - : isInstalled - ? _jsxs('span', { - children: [ - 'This data set is installed and ready for use in ', - displayName, - '.', - ], - }) - : isPending - ? _jsxs('span', { - children: [ - 'This data set is currently being installed in ', - displayName, - '. Please check again soon.', - ], - }) - : isError - ? _jsxs('span', { - children: [ - 'This data set could not be installed in ', - displayName, - ' due to a server error.', - ], - }) - : _jsxs('span', { - children: [ - 'This data set was uploaded but could not be installed, as it is not compatible with resources in this release of ', - displayName, - '.', - ], - }); - const faIcon = !isInstallable - ? 'minus-circle' - : isInstalled - ? 'check-circle' - : isPending - ? 'clock-o' - : isError - ? 'minus-circle' - : 'exclamation-circle'; - const children = _jsx(Icon, { className: 'StatusIcon', fa: faIcon }); - const visibleContent = props.useTooltip - ? _jsx(Tooltip, Object.assign({ content: content }, { children: children })) - : _jsxs(React.Fragment, { children: [children, ' ', content] }); - return props.linkToDataset - ? _jsx(Link, Object.assign({ to: link }, { children: visibleContent })) - : visibleContent; -} -//# sourceMappingURL=UserDatasetStatus.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.js.map b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.js.map deleted file mode 100644 index 70ca7f0a90..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetStatus.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetStatus.js","sourceRoot":"","sources":["../../src/lib/Components/UserDatasetStatus.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,OAAO,IAAI,IAAI,EACf,IAAI,EACJ,OAAO,GACR,MAAM,sCAAsC,CAAC;AAa9C,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AAExC,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,KAAY;IACpD,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAC/D,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;IACjE,MAAM,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,YAAY,IAAI,GAAG,GAAG,UAAU,CAAC;IACnD,MAAM,OAAO,GAAG,YAAY,IAAI,CAAC,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,OAAO,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAC/B,oEAA4C,WAAW,SAAS,CACjE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAChB,+EAAuD,WAAW,SAAS,CAC5E,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACd,6EACiD,WAAW,kCAErD,CACR,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,uEAC2C,WAAW,+BAE/C,CACR,CAAC,CAAC,CAAC,CACF,gJAEgD,WAAW,SACpD,CACR,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,aAAa;QAC3B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,cAAc;oBAChB,CAAC,CAAC,oBAAoB,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAC,IAAI,IAAC,SAAS,EAAC,YAAY,EAAC,EAAE,EAAE,MAAM,GAAI,CAAC;IAC7D,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CACxC,KAAC,OAAO,kBAAC,OAAO,EAAE,OAAO,gBAAG,QAAQ,IAAW,CAChD,CAAC,CAAC,CAAC,CACF,MAAC,KAAK,CAAC,QAAQ,eACZ,QAAQ,OAAG,OAAO,IACJ,CAClB,CAAC;IACF,OAAO,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAC3B,KAAC,IAAI,kBAAC,EAAE,EAAE,IAAI,gBAAG,cAAc,IAAQ,CACxC,CAAC,CAAC,CAAC,CACF,cAAc,CACf,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.d.ts b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.d.ts deleted file mode 100644 index 3be170b633..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -export function makeClassifier( - ...classNames: any[] -): (substyle?: null) => string; -export function normalizePercentage(value: any): number; -export function textCell( - prop: any, - transform: any -): ({ row }: { row: any }) => JSX.Element | null; -export const quotaSize: 10737418240; -//# sourceMappingURL=UserDatasetUtils.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.d.ts.map deleted file mode 100644 index f829396d78..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetUtils.d.ts","sourceRoot":"","sources":["../../src/lib/Components/UserDatasetUtils.jsx"],"names":[],"mappings":"AAAA,kFAKC;AAID,wDAEC;AAED;;yBAIC;AAVD,oCAAqC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.js b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.js deleted file mode 100644 index a0a6b5b523..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.js +++ /dev/null @@ -1,18 +0,0 @@ -import { jsx as _jsx } from 'react/jsx-runtime'; -export function makeClassifier(...classNames) { - return (substyle = null) => - classNames - .map((className) => `${className}${substyle ? '-' + substyle : ''}`) - .join(' '); -} -export const quotaSize = 10737418240; // 10 G -export function normalizePercentage(value) { - return Math.floor(value * 100) / 100; -} -export function textCell(prop, transform) { - const getValue = - typeof transform === 'function' ? transform : (value) => value; - return ({ row }) => - prop in row ? _jsx('span', { children: getValue(row[prop]) }) : null; -} -//# sourceMappingURL=UserDatasetUtils.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.js.map b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.js.map deleted file mode 100644 index cba85d04c3..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetUtils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetUtils.js","sourceRoot":"","sources":["../../src/lib/Components/UserDatasetUtils.jsx"],"names":[],"mappings":";AAAA,MAAM,UAAU,cAAc,CAAC,GAAG,UAAU;IAC1C,OAAO,CAAC,QAAQ,GAAG,IAAI,EAAE,EAAE,CACzB,UAAU;SACP,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;SACnE,IAAI,CAAC,GAAG,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,OAAO;AAE7C,MAAM,UAAU,mBAAmB,CAAC,KAAK;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAI,EAAE,SAAS;IACtC,MAAM,QAAQ,GACZ,OAAO,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;IACjE,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,yBAAO,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAChF,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasets.scss b/packages/libs/user-datasets-legacy/lib/Components/UserDatasets.scss deleted file mode 100644 index 34d8f0f42f..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasets.scss +++ /dev/null @@ -1,101 +0,0 @@ -@import '@veupathdb/wdk-client/lib/Core/Style/palette'; - -.UserDatasetList, -.UserDatasetDetail, -.UserDataset-SharingModal { - .success { - color: $green; - } - .danger { - color: $red; - } - .faded { - opacity: 0.5; - } - - input, - input[type='text'], - textarea { - background-color: none; - } - - section { - width: 100%; - margin-bottom: 30px; - } - - .MesaComponent { - .DataTable { - button { - .wdk-Icon { - font-size: 1em; - } - } - } - td, - th { - vertical-align: middle; - } - } - - .ActionToolbar-Children { - display: flex; - flex: 1 0 auto; - align-items: center; - } - .StatusIcon { - font-size: 20px; - &.fa-clock-o { - color: $blue; - } - &.fa-minus-circle { - color: #bbb; - } - &.fa-times-circle { - color: $red; - } - &.fa-check-circle { - color: $green; - } - &.fa-exclamation-circle { - color: $gold; - } - } -} - -.UserDataset-NoDatasets { - font-size: 1.4em; - text-align: center; - line-height: 1.5; - margin: 2em; - - &__lead { - font-size: 1.2em; - font-weight: 500; - } - ul { - list-style: none; - } -} - -.UserDataset-Help { - font-size: 1.2em; - /* text-align: center;*/ - - ul { - display: block; - max-width: 90%; - text-align: left; - } - .box { - padding: 10px; - } - iframe { - margin-bottom: 20px; - } - img { - display: block; - width: 100%; - margin-bottom: 20px; - } -} diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.d.ts b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.d.ts deleted file mode 100644 index 7932b8d088..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ReactNode } from 'react'; -import { DatasetUploadPageConfig, DataNoun } from '../Utils/types'; -interface Props { - baseUrl: string; - helpRoute: string; - uploadPageConfig: DatasetUploadPageConfig; - urlParams: Record; - workspaceTitle: string; - helpTabContents?: ReactNode; - dataNoun: DataNoun; -} -declare function UserDatasetsWorkspace(props: Props): JSX.Element; -export default UserDatasetsWorkspace; -//# sourceMappingURL=UserDatasetsWorkspace.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.d.ts.map b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.d.ts.map deleted file mode 100644 index 72d1fca1fe..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetsWorkspace.d.ts","sourceRoot":"","sources":["../../src/lib/Components/UserDatasetsWorkspace.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWlC,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEnE,UAAU,KAAK;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,uBAAuB,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,iBAAS,qBAAqB,CAAC,KAAK,EAAE,KAAK,eA0H1C;AAED,eAAe,qBAAqB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.js b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.js deleted file mode 100644 index 6224f8ce10..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.js +++ /dev/null @@ -1,146 +0,0 @@ -import { - jsx as _jsx, - jsxs as _jsxs, - Fragment as _Fragment, -} from 'react/jsx-runtime'; -import { Switch, Redirect } from 'react-router-dom'; -import WorkspaceNavigation from '@veupathdb/wdk-client/lib/Components/Workspace/WorkspaceNavigation'; -import WdkRoute from '@veupathdb/wdk-client/lib/Core/WdkRoute'; -import UserDatasetAllUploadsController from '../Controllers/UserDatasetAllUploadsController'; -import UserDatasetListController from '../Controllers/UserDatasetListController'; -import UserDatasetNewUploadController from '../Controllers/UserDatasetNewUploadController'; -function UserDatasetsWorkspace(props) { - const { - baseUrl, - helpRoute, - uploadPageConfig, - workspaceTitle, - helpTabContents, - dataNoun, - } = props; - return _jsxs('div', { - children: [ - _jsx(WorkspaceNavigation, { - heading: workspaceTitle, - routeBase: baseUrl, - items: [ - [ - { - display: 'All', - route: '', - }, - ], - uploadPageConfig.hasDirectUpload - ? [ - { - display: 'New upload', - route: '/new', - }, - { - display: 'Recent uploads', - route: '/recent', - }, - ] - : [], - helpTabContents != null - ? [ - { - display: 'Help', - route: '/help', - }, - ] - : [], - ].flat(), - }), - _jsxs(Switch, { - children: [ - _jsx(WdkRoute, { - exact: true, - requiresLogin: true, - path: baseUrl, - component: () => - _jsx(UserDatasetListController, { - baseUrl: baseUrl, - hasDirectUpload: uploadPageConfig.hasDirectUpload, - helpRoute: helpRoute, - workspaceTitle: workspaceTitle, - dataNoun: dataNoun, - }), - disclaimerProps: { toDoWhatMessage: 'To view your datasets' }, - }), - uploadPageConfig.hasDirectUpload && - _jsx(WdkRoute, { - requiresLogin: true, - exact: true, - path: `${baseUrl}/new`, - component: () => - _jsx(UserDatasetNewUploadController, { - baseUrl: baseUrl, - // TODO When more than one type is available, offer a data type selector - datasetUploadType: - uploadPageConfig.uploadTypeConfig[ - uploadPageConfig.availableUploadTypes[0] - ], - urlParams: props.urlParams, - }), - disclaimerProps: { - toDoWhatMessage: `To upload your dataset`, - extraParagraphContent: - Object.entries(props.urlParams).length === 0 - ? undefined - : _jsxs('div', { - children: [ - 'Afterwards, you will be taken back to an upload page with these details:', - _jsx( - 'ul', - Object.assign( - { style: { listStyle: 'none' } }, - { - children: Object.entries(props.urlParams).map( - (e) => - _jsxs( - 'li', - { - children: [ - e[0].charAt(0).toUpperCase() + - e[0].slice(1).replace('_', ' ') + - ': ', - _jsx('code', { children: e[1] }), - ], - }, - e.join(' ') - ) - ), - } - ) - ), - ], - }), - }, - }), - uploadPageConfig.hasDirectUpload && - _jsx(WdkRoute, { - requiresLogin: true, - exact: true, - path: `${baseUrl}/recent`, - component: () => - _jsx(UserDatasetAllUploadsController, { baseUrl: baseUrl }), - disclaimerProps: { - toDoWhatMessage: 'To view your recent uploads', - }, - }), - helpTabContents != null && - _jsx(WdkRoute, { - requiresLogin: false, - exact: true, - path: `${baseUrl}/help`, - component: () => _jsx(_Fragment, { children: helpTabContents }), - }), - _jsx(Redirect, { to: baseUrl }), - ], - }), - ], - }); -} -export default UserDatasetsWorkspace; -//# sourceMappingURL=UserDatasetsWorkspace.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.js.map b/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.js.map deleted file mode 100644 index 1830eb8b50..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Components/UserDatasetsWorkspace.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetsWorkspace.js","sourceRoot":"","sources":["../../src/lib/Components/UserDatasetsWorkspace.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Components/images/tut-step-1.jpg b/packages/libs/user-datasets-legacy/lib/Components/images/tut-step-1.jpg deleted file mode 100644 index 2e6a3df90516ea92b8b4dceddf639eb447d666b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311555 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�iV(k`o6=)BmLGSGz=zoA-T@FbzZ#EK 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 _J+jqsXyk24-6@}c8kH`m|K7@w*IlU3tCdp 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

6Jv}o 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 diff --git a/packages/libs/user-datasets-legacy/lib/Components/images/tut-step-2.jpg b/packages/libs/user-datasets-legacy/lib/Components/images/tut-step-2.jpg deleted file mode 100644 index 80949cd45b9bf0c93c658b806380ff5dc02f3efb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 280353 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

Y8z(`a4Itgtp>-E|M%-;!OhxoQw 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� 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 diff --git a/packages/libs/user-datasets-legacy/lib/Components/images/tut-step-3.jpg b/packages/libs/user-datasets-legacy/lib/Components/images/tut-step-3.jpg deleted file mode 100644 index 3791fdab15c81aab486caf7e74e6268f009ad75f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137509 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

?B*!F86|EudrNO5;eHh^r?Sl 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 z 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

}O$CM`^C~)M@+)j0zLd9_dmVLoX)16l z^Guu=1|o%Kz=;A`uR*uD#BiuI5fw(2D<+147Sdf{)`9WpdaY<{D%pmhtWB+KX>h#& z#WR}3ZoTNYuWGfcKWI0{oCT$Z+LZ~rsv;R?y&{}Ju%{Hs3QFLd*|;rjw$^& zlc2Nr2ZJt^MNpk)`-<2Kk@R8w;LLOg)Ikl6Yv6EpNr|s>H{RAGqfL-&*9Zv3V5H1l zpe@5tw`x{O7vXv_R9;CXjA{mhUyUxmQSBx7(Uy}Ksx#j8^pG@JwM+4H!CFoqxcw!J z_2_XwP|+15#2WV-Z9AvCMn*LxylM z8`WDlaQ0IbO%~!Tm6;V0Vi|_|tt`IV<#ahKdkj$)w@#QY+|92NYcUa+tG9Q!fYnS7 ztcx}WHp8k;irp$yCaeTF`S}7xm=o}u&{IQo>(l}=rHf4Mk81PbeqtM!r0C5W!h8g? z%iJf9$0$@<(8_A1Egxa>wR23ci`#MGbdIQbS?#eo#D3>^v(GhNfg#fSTmo%GRF`{9N9+AA}ZR)*W>|u=IHvn zT-Q?@(V#hPdgXZc?F8c)rMDU#CipAd){mvl>+Mq8WI(oY=Wy2IZ0pee>SchFSHdHn zmPDV^RiG6_wR-T`THljD2e?#mu7BwJXSXQoGVgCCjx&@y5rY%p)nWi8HkhMnrSzBB zFRD4@apJ43Z;YUFW7O7H8&_>dx5l=|xxx?K(H1G{bC7abc`_pPYIs?44UA zr&5lSlsY9@dVt!Hxw5-z4D23#1~F64AmL@WuJ^mn2ZuR&jntZkJ2&7Cc-37;eCUxu z(T1_Ci1v?b8(g*T#AnE?=9<~{hT11PYlY`1$w)%0qkIdDJwP3I8tVjuqk6e$fliT1 zcdzfOi_J6BmJ(%zbE%hNZ7Jsg zTh7=sDA1rJ95j9Z;mvM%UV^6p3sgd(ljDfJgHU3;uM0MO^jTR$jX|q1^~xH1sj(9= zic+J<-I%OCQov<;kjJ-N+`ZugzhsOwlr_dxXe5T>C&z$uxbr2{TYPIPpL0l#OAgym zT^XG=l4Vu0w7%5fQQ366)V1feosS1C(-M9vhjFAnM$Ve-c0H8n$u6KGQh_YJ(Y|SM zT7d+Ng4{|WmBf*J5d1e*>Zch3^}Q$|0HLvORhN|`$dg^y_$nS(lw0mfw=A;zIrmM1 z?em*RW#?vh0%;^2Yx_HXi16#w;JxMWl2Bqjg0=34iA))AeIAEJg&38@IXv`@b2*I+B4W6++=Hf9y&BcjE(U*XIA0dv=bt%nOd><|@}|~u zz-c)4n`Og(j)Kr6t@#A~_=2o+Qu; zLlnm3n&P!DfjOn*l-uRl4zetlLKVXE*-q=(=MhgGMDgEc9PE7@3|8!f*7#& zW58>*D5urMEkWFft&IzN>c_{5W zwO(;jaeIs%++AkHKP8Aj;Nw!r_$gI9Y~fc$Rv=NxEe5)Uuoofl8wGW67@vqetqUg4JJXaK2pWKK}=j zO8t#U#4q~vqeLlj)MxDfN=`)WZXM1)awkeIeR^~w_0JLskX^es|2y$lVV3^^iOtb< zQl~Q{H3!EyEKSB+HnP(0BbOF~Ui|5AnIt_8MTFZ&mcv5R_ATKD04bt&`8sn$FzBno zwd|EoJ$JFoF7wtx8U~!s2bLa~KB;)^dx}kcL%1=Q<5_@zyB>qNb6e{{$Y@IrkxeQ-2cT0y{HpaUof$1xc zDZw%U*HtmwEMG_S9Qw$^B>&X$Z+OkLe8MnC#&!A(!SYJHosfPRVr@Q8Ks^-6GCKB= zkXub5@x9{=o`{M8)0P-#Y)%|aHB9v&N{2>**sdja%X))fEFA`p@8LL4;*n6AqMC== zz)hp#Z}nCXJ(_;kVyG2B+ulVWfFB`7+zhjnq_(uNoTAvIqz zrpCv$WS$k5UW7LcWTtk228ADH@#WAu)xqYjKvH7*%r05fZtFFRCRlWUpYAV+tO&$- z4j;P7*x+DC$}uoZhiz7b({$9b&Lxx7UdX`GPFJWsiDI%WF@Ii)q9jc}(gz{QlL;B% z7q2lMYgwS(nN~)-utgXQ-|%wKF*ztG0S9;3M`n>vspGiF zT-lJepK&9t4Z!&FxKC@j9tkjy>e2?>H_~&z*~<|f!-u*rXt|g)@fa3CeppwE>&%|D zDyGnSaoPVm|#@_4~D-^lYU}pk-N9^5#!&pa`s9d9xqbR~wALQ#0 zk$6)_?2C#_bts0V`$Z{0;^M4|8UQU>0m`jo7u>vqr9d;S&)%n= zP_B!;RBhY`!ZDnA0tfa9G$19RY7ULKysQQ~q#o-&f4kW>)B=VJ>ko7$Gw|z9?t1NC z<4)^Ed&)0l0TSwnZn-y55^(dVE-Q~E5H|X{yC;V~idzLTB z%HK3v`>F!8AYumOHG$g4rZ;IUX_sF_qmJl2npVa<6K;}ZLA0+RUjY+4X)$;f+;XCG zpSnX`^1nq=b&SM}TXt0A+>|k+E@wGYL6%3GkTansGE=(XWfOd6L!&fgckVqvCW!~t zM!O^C1X9#d8z&;yj#Nv$=lN6FKQ$}52{wFi_IT91;cgmzN$K**<;Fh+-A~)nVXS-& zfmbj9BT~c$%z%U}=^{HSv%YZ+Jpe2_qHUWHT5l>nvyI0+n1;1H5D}`3%43=WzJ`0G z?pB%GmgPc?bAV<=6k8im0bUvm08ESAIOFof=5@lw->>?SQsahDJ7cDjmdPHAd+nZt z;djw&B(RXWNiRi-9PpdTUqaGq&NFo?8O-m5$91Mn^Z^@U8L(U4`v6|t9anqg5MhVG z^lfQrrVmhSv2IhC7FC2Mo@cW-9I^$vPseCsV{vD7KroOp%uy&zvfK%FKfZP|A##Hl zB~1tAGOzc$#yOV5NhV{4mug5SSB@WR5oNF;u1kmpaMnOE=*A-JYjl`7%3Y}@>T3;5l%$2uj zgo0tFbM!>ZnfGZ!hGaBi5NRN#bvCJ3=eTLuxJ!Gq&#*g&l%hZqXD7rm@e%4iqxudH z@_@^(mP?Wuy$#M%#;fLQDn$z9kyhTGUR0$tDQ!j)yRjKvBk_id|n0#s|{R4fA6r|X@mihYtz zMzeCjY!Ra3n83Q%rab^3bqSQCV;ns$q2=h_JGfzHy0r51Gi5APa(m+edFv{H3wEOw zjM|LQ1>Wu~jAv*K0<)R7N!gVAuM%FNRXwX7jXfMnz`Z?~m8Lh>`Dm{*dHm?fK?vW2 zX696oM;uv#oWLi1XfDrlo(nO`dk05pNa!Q}TbIjbclVMv8*4n$TN(fGT%!O)_jEITO@WVwo>h%EJJ0weM?vj?D9!XlI^P) z^RokT(6e{pq+1ocrsqCy&jlH*!^KQ?VRSN{cteY}e9G-^1GV97=Z{>dkWFWt<$-tb z-D(PAl;3m8G|;=1^k)X8sh3icBp6O9q$)ZxmC2AcT~nLrXODdIaiTV0qrQbM^lL*= zq!t}ZX29VOU@{DMc6;xI-fjT3;mctXlx2p=dgybAW)MMpgVI<>SA#6XfH6o>pxQaw z#73LCuw?ZP$p016-n4FC_I*8yA;mcTc{*vuz9iJ5B|J zV6X-~uki1^`{4IrVFl4Wrdu?=Qq|ip%!?Vwg^7oI4$P+^&q~eL3p7W6`O5pj>G87v z=N@8oG4Th5|D$u|bM76zzwwJc_itXI`m1+szxXHIqW(8s$PXanZ*hM{>e8)<{1f~) zm@dr^;9tq|=HH?I>)omt{(2i|mUb``*07#<3nAO=Jyai2U>3e{hzE z|JfnWQohgYuNmM6&H~yWNv&0wbYhDuroJMkLBl+8Igu13NLKNX3wauVUe&K7Ae>;Y zHetGkFPTZLD5XMEokv^MZ^8B1@eN}j8cka!Ku{M#<|c^lf6w-*>m{aP@?q<=&Gw2l zY0LM~9OM0%eXpJEI5C(UXswCr(UK!+``8eL+G9?v=+QS1H9;?BROS0wBr*k@h}Dh~ zCpfPsG~9@PDv?@q%WJ%M;oL~ZP6Wr3R?E4tpY{?{DpLf4Z293&*+*9;vVAE__#Q(N zv2p`~QjGHTeC)`wiu71!=wdrqAQ+Vc&^4xZ3k2h9bm(j-8^>Pvrf!dmds>vsU|%~s zkEs*bQsCrFjLT7zk=2116IjxBHDSrlkpXa)C$cC(nZsudHylX`8^~L~>0v&i67vJ1 zxoW&D8bJGX=gM^UjGJ>9bw>PUXU0-56;E~~-J?9wKSkEF@WQ}m4iDZoQ5sXJ`J#^k z2aRSU>GUSR?Us^o@QI~rMx{IGgp=QhYHA(k)Jx^>rX;NHu^YqLe8f zD{y3#s<~+d*;NJY`~7OVYNU6O{S@WUM87kxP!7W*Qeo!x*yS0Aik8eS$wzpCS2*y} zqB9#45ouH*5nw1)So~q_0i^m~X$k;`dc8oQJlfvmT6*X-# zYLR5-P;DHBZxZi}qzWY(9#}ZK z9F)_oJt3y`T95-EsN|SaVpXP0uR_5RSHp#NuZ{0%f@fe1QCK(E$NPmkB0 ziCQ7%^>WXXi7vmY>Jt4#TY2E-^~}EgxH%`6h5eWc0z}q*o(I%N`iF3uH|{v*UplI{ zhf~x<`dZj^m-#6e&5W?>^L1flRocX$<+xAnpbpcGV(h!ComOl$25KyKH-2X;VB(I` zRM{PtXZQ@W?pe}H%UPdK6S-nl(x4ZDLy_TCFw7%&wQyAfO@@oxs}%%wk4+GXzP}f- z5G2M(b1?6X-z@Ha@UedX{4t(l4eZd(Fde7RiDS_l9QqJD{A2dGH_8Vrvem6jT1}{` zlzLCIFB2b}`RTS6Qq24?nx3A=ab6hdOMH7-vw|yI<|$HgLrDKH6qgC2I7Cs#-;I$@ zBISWO1v1xEcQ@^mKIt;8CjL;tGft?KU?yQ{+Mu`)Y-J7-j_jEASUG#re$n=phS_;b zD0flkX+6fupQ*`*LjZ)7wRc@C?Chp(9iuH))X=?IVjN)^YoRwh+(#0sn#Y@99M*2y zMQyH7J-*0jx55Z!=U3m=%YUer&OmePrSY9xBmNwe_XGCEs0_iVR_l)VhT9Cnb#}Pw zRVw;MlL`Ish>b%HTB2|+&Y?$xeNrDl`RLEL1O{Wv2)XtU63*eQsy8kAMKh-sMpYV} z^YZYhs15uHfc9o{LMR_hH%(KTiF+9q344w@k>)ArP-E8yR-ku`g+9{o(Av@-WQb|| z^IVoWaq_J*4<_w4z*Bqh;QxqQnT0E$G1H)^g+xu8wCaaCpgi;uG2TsDqPWBxFc6x& z@&c83dpjY4{rgS+WFpMIQpb>$isJ59wuhu)ssi@^MAoS&6d@IStk+OZ!DmPOyr^Q>ZXt z9TIWdHEai`tdgl&b;qK_w!S2E9!hY?z}MxZAIO5T=_2Z`C41Y=JubQQ=litsuE%^{IB!p{|DkPM!c%F%gwY6*&lZ>cJAG#Hi+@pH zwlSW+UJEz>e4d>-g{}BvZEU|W|Kaw4-CxuU-Hny_u~(2!aEfrR;|G%-F_34GkO>us zY)KBf{4mthH|D^!`hN6ex zkjb3FnUY7MW?t}jq_20cFloP^# zt)sra`~x_A_p1Z?8M4bIW?r+1eJir&plxAFHA_gGXAy4uOaI^zenB;OQ)g#&1yYQ^Ojt3Ye{V_ zLt%XF3j$iBpo7Y{BUh@khRhM~jaWgeDA4MoOv2KyCvI_^T&@bNYU|;jKuZNwIg|u z?Q^+?r_9=IWF4+vq}!E(u+K8?$P?)>@l4-$0ra)Ugq4^XKup4Wy76S+QHYayj;7M} zc6kkJ4=1g1Z3^XVOnbiC#2$iNgA8bKA5>|MsROY4!WtHwLpIiBRBIOtrVbU1m-*mE|+PhGR?6zgfWD1d9rG) zI8D+#(nZGAT7>=pvMi>MODLg3G%w)~fN$ZoIbj|R$XqWlOWu%T!j&S&P6wS@)kd$~ zFl9kj(RC|!W`?*>ZYe$QxVYXXt7X|%qoL;MyeA*=EjuZHt~;reh>0pqZ);FZ!=lOb z19>Y(fS%iJKEcP{BE#QZnSZ&3Z%iwRoEFT~e|4FLBb4xqWka<}Z|(W@U$bMdwk6c) zr;O*Qkj;?p+(eN^oXQpLCO-S9B+{Zj?~OKX3;pL35!z%PonzX}9UTvq6bq6rrJXf_#}l$#XcusQXau#hM0}2s?=+$83Wt zBGtg=`+%4{gX9(;+8TUC#f9uym3v57LMDU9IfTuXiJn(4cqT`^)|2`werHWLJY5#G_$?o??tsnc}wCE_S?oT>@qAliA+ zHjeCm(*A@8k7v)#$)Q~Kh>FCWWy(d)f%1O$l1_rT>wC&YAuU<;uiXjK+p$AdJ(HN( z7T=w$dHA7j81Xe~>jvyRy2zdBfT3~1g}9^AkE3zTcq1afL!NJ-=aCnT7jx|~ANSQ* z1jRS}+Hna^1Wwx?O%TornDqd?B$8>`b*@9=eX-3b^?5}OYW${j#g&m|sM4kil z+8c4aY66}wQ&tnza0y<&t!#TYHFiZMHDxPQ;jt+=l{xM}=!W$O3it|?W_4y6*(XSF zxFe-vP96&z%vR##m40JrmBUf-lhjFO=gTnl5%So#+;rs`Bst8H7KJyPWQJ>e;2VuI zKHFj#RS}Z)<=TE!dLXurKgSq>IKPGdV!L~@?b(t+=e;g-e{DuNG?Y=(Z8_k0xv`iD z%0zfA_HBJMl#n`BxKC5fZ!jyewF7MYilPR02pyHjuxd% z*RwES_Pa%z$Mp6b=PbC5U^L-vIdfI)uVo_`phyl?YWNZh`s!-C2B_6EGNJ%fZ#Wna zBx_}qGgG&lRd8a>0&NA+;dN>tA;gqwONS5$`%*PPturFaSYsmQQ2||a+9k0!Dksg* zp`=sW>#)~Ipe=%6{U2l6#a!- z%6q1$YGRvl!B=g= z$mnl1HF$}(=XM-aOnEM9Q&0%gFtIWia1M+b?Uh9+os{m7Q_Y|w0p)xny@fueZp@QU zA;`!WTy!W%%bbW1p{1JGPsS3sfMK?Hy0S1Ck`{+&?&|hAE5Kw_co$mNAfDDZ(<+}} z?ssZcCk9!NPK>23+<8pm3z9MDvgy;kl3FblA zkrt!5T!;F(4nyjJJYTU}$$@KM6{;&#r=0ln)dVRS=Jgx${ECCA@R!3>cqJi~5j<>8 z$e7H9Ya$M%5}Ua6hbp?Md?HSo)N_3;%WH#ybrL8Cs{Zb$FX_t{Qp<~m`IlnZ8KiY_ zs$FI>pgV7J&nWOyX|a3zI_jp3#{??^V0-eXhPbuv6D7Q?V05Afk%4Y~ndvRgEH|l# zksF}IF14r5I3B?Vg1o*+gZ$;%bmMfWRY}tQev~vh!(_)~Ydx3@BT^5(N@BY3rjk%= zNvdeilP?3F0P&Pmxg5>CDnecv@BDFQH-Abd%SUL_{6SmD|Afo!1| zbS2ydWUJ6+f-0Z=c9M1uJ4S!4TT+rL)GfxNuxFW1hk`9i+H_5w?@y(5d>kEjq6CCF zUqtS0t7O9*v(cD&SE2Nh`ZR?{?K_o8rr@EBm~E|x^IZ<<#1wN02dGIdq>garo-@HG z-Pf+sJgV2>G2e69h6`_A9uP>G6vfG_US~+}M2|`-8Lj#~T%F=avl9_UxZ60`O*PVr zhzUnZf6YO|vRYuBL!g2F8eK8CIb{x}m6P41d(ccuo7i*IKx8Q?56xKX58_G+74Rgy z%5)W2!!-|!A+jM2ol8An)kz|oNx$365fXd^*-jE+U(Z(}ChZ`>S&6gA6gr|%$(hTb z+N?E}dV10vFL+i^pMv4SHP%H-D~1 zdDWFsNSdgsRmw-Xb&Hs=J!gJ=&Z4r-L1&gX?ll3>l9yb87kP?H?3iVH0HSOK6yI&# zo(14ii8y7Y2iT)4m9fJBnD+t(}1_Jj^jKVp#nyPP+)JmEw_m!IWiQ zPp8duf5NfVTqx_mOMoj;)m+=k4c#Be^~t{JdhGim5}eRWj4H27PWkaO=O0YAY z(#7D=o(R`A?wH9ZXKHE7Bk?saaOq&cT2?u(bVv-w%c~Yb*!~z_QxnQqV!SjR**{oj zo|5WlC1`9gNFbd9&o6zs4O_c!SyM~ln)Vuasl??Dk0JGC;A@1nxL1d*Ai62oTs5L{ zuBs3PmQ6zuG-uxgi+D1mKT>=88Xtn(;CstPas@9;t70OPcPKw{R&Dq?cCpXVyx59# zggfPCqM1Jc!^@&n8Y7V2cy}IATn7=lFShFBgyxYshI@`9pe`V(wK)l2!Czi?SP`Y< z82vy#KZC*~p5k2ncc)+4MU&9C_gUZZf1q!@JV`dxR56BKkB+9)rchrmX8Nl`h3^zI z#r*)V=IzIS0HZ1jAHrXLb^KcX|J?s|4RAC60B96;6h4yt03z?WGhJTzqvG?<{Ly#Q zuT1E|#A90UX;8oJo#{V{-q?k5^)%r_dk3 zXGHj^BsSYO-=y#4-_Xs!>wb9e;_m%=Ty7<%1+!Du|3dQ!|NFKUegFdhXLcFdUYe-J zMAX)YpMpl;WA{jrp~P;|hJyy zs$f_qj)r`@gjl;%EA-7Q^ka|hZMG{Dr+VpP1v+ifX;Nwx5XRzY#xS5&dWJOMRuNBYuYHLWZCG zlLQw26BZsz^;bqess58h$e$Vgf};DQI3(A%UKfz59H0L;_1My}ocKo-k&&ZEN-&qw zN@iUMeioVK$Tbk(w`~ZGVcb8B|MxyyKb_X+%!ZA9@IkR^q7^5_4E5yR7Jr?f)M*J;$ip`%rhAd^{i*954e=%)uDE-BfcEn{x9{Qw z_;*~pSKLEz03?(LDxWQ*hrTCEoqn<5ELr^t>lXiXwTpkf!p458U2I%T{gmZ;mF$i(-tm{v^VXaWnGTtmxY~0?lKa*5 zSB?eK={cWr?_-mkHK!-8=3WthE%jRbFAfX#7a)h(-(bJ6uVX3vcDoODAN(1{B0R>r zpOpV}*c{lfPD0ON_77+I``_US^Yp5;ZJ&O6RT}*8=(w%*+gE`%q8V*;_ReW)Lb$h- zx8FJk(_Ir<98Iw_rU`D;&GWkweQS|F&sy7gNh)}d=Ks`4AG@%}7LJ9oKDLW954kOoglH;t?qWL(7@irbAs&%Q#QuHH1A#-nj5Ta1jyjZu|gDuKWj%v)d=dyX(Ve$d#t5 zJG`!t^~50;)B(QdbDe=}*jku#>tW<;isbWKtmXW~#4V3y%#*vZ_%N$dbb6Wv49u=CTRSyPS}(Yh}<|{h6M|`zz~M z(v^=}HlxKHF%?>wn`I7yYj;H?C|p}%J+|>Mewi=kk&znjpiH6%apgH-dCwm|o!^yh z6TCz*)^-giw>#7>F2o)-qh1pBm;vKSGvvY+FqZqc?ODpj2DOCS=h>J%mhfpg_j?3> z_}8y32V7y<(7QK1o=+Aw4ZqA^vEWL72{XEW0}+Dr*1)ffF`I8xs4rVOysLPV(ms$b zFYwWpy(|!gIsHOAiRRBk?SK9f{_<)G;%y5KYqVlBQNkYQQq8Ry(T}edaXwm2_1$Cy z0OcI3$sl3^f%KaN63w|RlHRNcfk3)IDEqM5vO(qumHMinvtW?0gvguQPUlh(+a==S z;m>d1EMMH1&9^Lf)O*-v7|5voErHtKM6Yg1_t86Vx9*LZ8QkXlL?QjzSNVC~Zarvj z-5D9k`rQ4yVJG;~K8ZHWxvwshjivO}#?U+*{P_(uiIop_FkpfR`<{syrPcoc;^p2M z{(sE91yr2Pwl>(fySux)yA#|Y5FCQLBoN%)o!|s_cekLy6SUC~Xxt^!NxpOLckVrB zX4d-u`PWdpi(Sut_O5FBrMur!It1(gkgS+L@YJq2r~Rj7I>52+>dlXv zY^!<14CrsXQ>E(JO68jN<+Ay0Ixw6S>H&sdrSDU$R%IQstyVQk@U^BIZNOTKL$;;3 za1AsI9zGdM0`tbqd9r#uMrLD+ru8F^-^fqE2f5bFV^(acgE0omElm&NllxTovPo=1 z$SFuh2&=B37aYik#`Z5>eE@*q3y{7Fy5E^!^P zoYQExSuCqggjD96PFO4>&Ggb}s*q`S!%EO_p5oLrp!#A5SGGS77Bhp{dhY``o zLNQ zXi*e9?`oo70a>dCHH*I3+?cc5)^*&@iZaVl2*0Su2LFWq4eS3c)buMnaO8Y4{Hix<&;O$h zSB5qBv`x;uK&hM3KEV`Mwm{<_WPCDb5DX&kXHNd+*zc?Sp@EU#wCvw5nNwijMhuW%*^B^#X8^j zc?ad!$GUgZYkIeBeQ#-NKQjFMz-78IrW#y*CuuTWuI$SF%@bwWpoB ze_DgsXJViJaE3Og&-jt!>%g~c<4y%6L^&=Mnp)RsQXmmb8l!NcLM3WjG z`xxY7Hx7UW$KByg5YDQ%(XYDA_)_vxeQ=8ga5bAZ>&Kx>xTl7O zXhp#5pqL?I%}V84`N+JppWlsYWWt<7Ri`7wJ4SO*5PO~Z(<7&^ zY<&u|j*yN8_74Pd9=7)#4bXkxqRG6)lxk~x*vgP@{S_DAh|_YkA^3l<7GYw><(tWZ zdNIRVOUIV~34o-1e0lN&eAxchdMCjLDpURmI982m=N@n5O~-*GdKHWBq>9F;j~dI% z6}&xE&Qzq$dc$2=rse!qNs36PR*_ws(|iTv1HYp-Tj@X<_%s5>Fl|xdDg{xp5H8~Q z@-M`WeHQaTWa(vlcqZOtJSH<2E&4TIj@T0i$`I7MCZq&H>1J*hm{a_UfZ1&cGg=<& z?*rJks8JHNZdvGgB_R`t9GVSdg}gvrA<-87dq|;Bqx~{WH6mUgg4QD@xIP-KWI6mb zJ;Y;p$iAW#+>n3@OTHm`$+Z#KY4GcS4=UvQQV?A;J9HH{&-7g<^(9|#$dF08%D==> zxVP4+7fG)H^E^DNGmr`rIYg;iZ-W8U_uS|oz&b{)&K@OJXIvf;*ZXEx6dS;&vp^Kc zp+`iWM2`*u_tohPp8nGbAJFqoKqmt*>U<2G2#j%Z-n7AT(-L>3kATXpN8PrBpq4Y; z$N(tDf8ANM9MP%~d9`y~o3i&|Cf)FW!jkZ~khYQ0;afNt(Bbpc=T7&1%Tq4f221R< z$xdFW+DYZX#0VrF!h>-W)>g(S64})TOw}1Nkzg(>`@+oY``lpS_p@y+sY{jy)uMIP z;SQd!grq*un6+z~*W5Z=Im72#SA+{CJMU2w-J&Cl42!Sd;yn1Fq<+I+rS-3m2~4+H zlN*s;dkpnz+thTVi3Erb=|_1c$pO2{-m%SVf%m+DGc|tamlwPS@UQhn7B72UhdI49 zf9dAZU<#uDct(1AiU>E5TiJxV%r^_*3_?t>1I2AN6nG&}uZbMdeNl+MibA@2vagqO zsklY$Lu=9^4DX@^t$?tdwuXiLM5nx9@qMB~j3mAu21uaap8f=M@uMR?jd7;3Oi-S`?8i$Sw7bSqmwDj z=SVWBT%u8PFBh(3xbjW8L?D>^%04iFZr}o%*~0*CKEB+SeV0EKYY@sQGTJpQ#{+hI zz7S<{gREJ(G}RELru>_up(#Q7iN%LX7mo1hw!xM~W<7L-P!x_lG1RvVWYIB-FZm$} zw1aoD$U?Yko%teV1t=}&u@h5xoiKs@Q7wxcv9}yO`%J{4+Dn%=1ujC$F-S@rt&vJ^io{2b4aL38CCC=TPoYA((>H|B1#zs`w&$a5PO@o%;}QnZeg1&m-ib8)eEEM@~zW62H79MpnAJ39M9{P)H~Lm}@e+0Pk}B z+rrkbV~^sotJ3w;JY?lXTw5Ad*z zUmVw9Xg6uO`CQ}#ILM7Dd_?#6va9^XZOqyUvG`7r=yCTbI zV{3(eIP(;*A7=!ZA@G1kc(Fs#l!~WbO5L)oRZ6MitlyOJ>MVwwwBb8Bpse=?Uj^Q9 zl=f?qO16b@#YVwGp-P0Xu4N1sRT<#=9VHc(c$O(=KL zm!U8^Q}cDXF-Sk*KDwRhUe1^z`iYl)p+`Fq>Q4ZvbzQH2gg+K59z*m%*9V^1d8fA^ zW`BE;5~AAUiFTDdgps?{%RP!K@03%vlHqtxpkOz@AxyNn;WuPKX_ywf1;%`0;nyij zMDU(QIyf?@pOoWEkr!ww+j$S`04@zj?sx3vHr1o?SoVtIyAThw4&P!}kB24mDjUkb zLeD(ByokdW%0mJJlx27!nD?|Jco8rV7)xnqKTB;(Oa@or=x!?w$$e48)QbpkpeAp@ zLgD@5@Br|g6lOId%sS-~gR7l3maGSTN=QB*H(2_9cR~?X4~A3^h4O{%(b5|cwN`HM zC-!6!qoV{WS&k+HoC^^{!Vq-I9M@cJAgKcgY-7g=iJyzkria%2Dp~KDhl)h(1=&0^To2?BAb3S2NUkLfhzz_t7 z8iuur7_@GhQe}+(od3O3Jqh@8j_YWQ#>I_@;3q(h2t-D&sYwLFJ08p~_cNku!e40t zPvG(Dt@qRCfseu7TCn(>*ZOVF%rKLoVN0?gwFw@384ah6AQ38s;Hpi^LR)nqzwE(& z7$hGMJ3)!L$hb6+jVRwxQi{8Qo_9K;n-(`MNtxV);D3}Ejqh&G@d01Is~K7Hng8l| zlYfD}fMcJ(|LdgQYC!C!+7NiaK}B3j{UcRueaO4~(R5xDj$K(<#yO-IUT%lPVavJf z5ehZs$0AD7md=JKLVkb+q(%8~V8i-ka!9jP&K{l9`+yw9%+a zfT|JaW@;XbFmftw-8rpb!73vg3rCPm(Nc#P<3eGh;wM1Sd zs2-mcFLW$;QCq2e3m20kZ}@yyrPTCf`j{p$MG<;g`kq?El}C7;#xTBlYQ!eL$7Qyk zrlJr+&7)cb-%-;lQM~8^j0631R-kTCVlQUja-nycj6o*8;C(nky_Wk9oel$qIi{nB ztt<)eP|EiOLI7ga^KK$5otO07uMqHLoHpNSPgyo>vWe`u9-vV06JQeViG-VBDAJ>t z$kaUYC6!w?nW2nZ-{+eR7XzRrnz2a09+_7u%P<0gJm@Wy**1pkX%t6KvP@5+MG)%( zu0uW&Im$o{>A*HObFyp%bQaRJw&7RDeDVcAvayLCFP!6S8KZ_J&4~Ox6zb=14kss^ zB-6;0AY44tml9LXJ+#y}4kvu5=RRIRed=(ITXPR8a%+y}lKBxoI^C_{1jfNF>?2Ca z9Rc|djd=x7iEeXR4JP24R}L@zP!cTG(l)Oh5GCUk%_dh`(WAXxEZQ-Vq;K1CeYB&0aKoe*;J z6EOJuHdmjZV(aDXAfD zVpixHlr(Uz*6@WYAs@?`ODZ6_Z*cyvPJRS2a3}u}wtz&0S`s@Vd;>kk=+?mNppcIc z61Xyu{P}y5u8f#)P^TWer|BcmWh#nTNg=xh0`w}1P)Py1`2zH)|7!~6xCE{ue1jTs z3LFi@xVY>8fHlJkE^=qbnTf&U^BxUa1Lqkx|vnr((3TPk&y6Spx$d5 z8?{dJ!wmKUX@Pe1$(wshqP!$ZL*HbTy;l=aB)*BLj*F7e;de#QT#{K|jxe=)%g_*MJw z2K=oV|H^@;e<6JieRKb41Fw^6A~Pdq1@W3D{+(O{6qCZ4M&qhCBDkxt4usg(Q2}z7 z;@gr+b|e2%iDHu*{mJJY&Z2MJn-j;@jSBL3huGTTIx+H!_djTYK6S>2_jMZ>x@Fz( zWNw29C@bPsCinhi#bbOaO@tD54 z8f1t+KAzItDn2h`3_q4nj~Lra<*4I_C!T9>&~d<@=~01pw$J>$ErfBHw?TQP^o3EP z1L`tZ$Mh+x12C|_PC01+zMlmc{v%?6|5WLhH%13Hy1dF{6)}=RED8wd|5p{`AWp5P z8{*VPL3((oRRpsFQIII<^-k}zH0zwcpGH$_?_v+*jc#juSV{K}T_e7BRoBI3Wst{w zrAW8?#<%xpH|A?vFn!+2AB!^?jwcq$GDDh=jO;A2X zm6Hs`!^DSod!Nd!(?258KVioA(HET~(vufL2naGDi!tiShP^AYs5>;Qo6Up7=oK0N3q{b+WF!Z+MytbGFAiM&6U+3?JYD*?AL<;mfUY=qVb6J7$1^%YxUl~*v42!>k4d?U5vHJ z^iHsz?CjUl@m}lpR77<9L|i2Ctk0?rMpZpNby&PNJ*v9C)bm(WHx-d$X#yZ+dq=nC z^~<3iVgiEv$8V(ZSL7G*`8cGJ%pWRk5S=JV=+8wsM ze_;986K(z93qSs?<(JPtEq@gZ{u$ukSknH423!7%X7{@Qw*1usuq9z;PIBGZ=+HI@ zo*XP;WxtfLvR`@-VL`=jFo-b!w{CYB1aEg3))QfOSg<^Yq6U6^K>wXBBDhEyOY>a) zSElyk7e}hLFx*%MwI_V67=x&#x=DX9pd)F zSue9)3;DqwtJT*93CuZAvIirS5tDvdDOA7-!?ikHzR;Nvxj;RZ=0;tFc~rVolWW?D z++HV|6R4_oM`k67iD-_ftMrEoivn`7fedSI1(TUFjZZyjZ#*c4wI{3dc%qIz?iIWd z+FUE_UJUOZjpBE8c?0mtcw6xTHSWRb`{79>Jvgb^w6HDST57%PZLN{+l%a<<861fY zA+v{0g7#!>y5QqF1jwu-y@NP=vZ0XX6xR??1OvYTfU`+U-!0>dyOPePFoB+mds=lI zZH$mXz2aJrjCIUmeyXTpJU<>bEo@JHL2mQk7K+Q;d%gPuMMvbg_6&(cB*V5wkZgv( zN~pWln`v~Y+k+?G?U5Bc$44U{D`gP@PO|6AyHIz!hp67F)W+#7&PO@_9p_VxjEgk8 z>z5@5oVw(`P;*-nwZt-yYcw$&oxGhIk%=Wgu8T!|thYY_s7CQ8wNZ6Yc}Z#K#Fcvv zN7{46J@XrMi)-2eKFc`b&u=GI6y{Z~Ey%CO-w1{G8iRfeYv4zpHHPC{4WL@waSp2C z>{|Hok{l(So*H?`Ncsw+99=Gp!Q6Bja|#|zY_Egf2raMgSA}?`%8^*ro!Xcm_3Q)j zZ<*qvR^$vTzn?yT3T4p(cp;#6rsjVnF+W|}U=wXH_96RD%32-r5n8Wjc_~-L_D&_g zGW`AUhuWcbQp5q+ybSPgS7*RaKsncw#5a{`Z_3$0c<6xL;cjeB%<_{C@+Y5%YWF%u#&(*;z#(>hwYq-tfytT z(RpT~_sA#XUXi~7K{rLteP=BDXrZsRjP;?)2@zdoCo3Y*0cbcD0}~}WXPuB7(I9KE`lRjVo`=BW~q%!na{S37f zA|4hFY-1v}8g7uts?g9@D=5tV3qLdSX(eR0Y=tD*SPPJYIX53*%T>7A3Mc zR~V}8HH&*SBVC5mB7)-*nXo{16btGxHmX8|$Q>RlJEG{at@2IxEUZwi4H z>6p=bEumt6Wbs^(Bz{Rq1rGdylTkmRn8>Cu8Lm#6mgm8q(qaHse;;R}^QppasKo9F z!DR-)90Kfu7>c!79abXLup0Ox9UK^~uF!riiFa|tC1B$7DH8i8s@1Z|$?TKz`J)oa zGt-1^U~^+RmA&CNze$2HZ;G$SpW!3IdMEi;C2Of@FSSjD9qfg}#0Xd3c!5sepN%NS zz;QyHV~s@2CQb@CI>-L#$*M%~lY}D}8qD0jhFge-u~*(GBWfeX-G~|0sh>+HH4+@u zURK^b-SC-cb-N9pH^fQ3I%Gr_+n|^sh_2N}Ph!s??1|cvxz1xWI{?nt64=)GqxG#o zOg3J0Trlfo-+kO3s`QFe$N28r+z{a;(&FT=LZL4zR}iwRP4_5!evbKG8FkKzSRUua zq{_jlGrl`6QCe6OXXnYSu;zQojmxg5)OXrd zlI_y(`+5lDA2@~IcNmAUbese)5^!-r5{zeXa?y7`vG2(!&mn(h9kXq-4F_h`UJMo& z-!y9(Q?(E+YFp)V?#HZ_5!9?(Im$0qk*Q96N!DA#(%uDRRs&>}7EqUkgiH>nZ_wO7 zD*?5kj*8(S16M`y+Qv0!o_u|>Q-xBYESLv0 z-dA*9c56gE_0%<&KyC5$OQ5cw?dX!V zwgyqU20qsNB0i=zQ<+i0gSQ3Eh8sL(#i1Xc;Uej}@uZr7aVg&2kH&i zqPp*+n4nyB?)+07-gmw{$V?T%u?Go6g3r@c51?}^2 zb9ySph1F}S&Weyc#}^lxHbdTmmo|2OEl-Lm9Vs+|e&7*K7ws-m9uXjEc@6))lVL%G zu@Io*dV(R2tVGI0(wHO^0C(~k!SU3|#1spUehZdzcJd|~igl`xLZ@xYf&8uM1`W_u zWa-}Mz$7;=LTIW(;y6P-BAFe2eT{W{*CHYcKR4oiRNO4gK65i(47`%sIo0b5AS>Mxyz|+_AKJ56rmu5p8 zfC0H9+c4+dHvqikWmiu0_NkJYN(>fSQ-MJ2dyFZ}?K{tRU3UhBndC|eQ%e)8(5f7} zM}sB8Jp|qgVg99J>6w*=C=+8!$~GZzE)%}AAw!b5%`=~$b=*8HO&zJzP(~W9!Yotv zjbW|%_-qN^#1xW?;kT-A=G2KVAk$v|h(e*`cNtkii^kE!2=T|J4&qKM<*^C#Q!)Js zaHddg?jX9Oh+E31xqB1yX}oe-kS#NiA3k_+T4ori(o+^g6@ezq+;VLS#jaTX0V2AM zDRP%G3iVEzRPl@W(7@F`JeoG^^bHq#D0uog2A7*qhYVG}Ig`Z< zlP&$}Sa~?a@d-edoBWG-xP|_Z#daIQwmI>ek%$F!_!p`UG`J?g<||sPGA1%Ku|O_# zSX~)@_Zn8%>lP?H3 zdNn7oX#A+BpNy)r)?N&9hFm${jhEOxBdZQ8T}y{#x&HA4S7ETWa_`xYzp3`t;R9t9 z*~y(w0vEY=IV3_J$*jQQG5)wxMyq3U-mrQh%};=Tp0f!&H9AwU|ET!J%l`m8}2i^wQN zXn;bX{=;Dr2IO#$E4miiIeo@n9{86}&ab5*HW|I(HDVdV91ATDWp0_yxba*cXtOO<0lu>IT^xP@T=Q3=;tah+9OCh6iRmx+;V3}VSec9A zPKKbfq)G9}%qc0n*CX&=uRZDWF@x}xXjQSk5UPWdK>i`Do_yZtxJU6qWNY}ud{>(|Ln$eTew-%nD8xHla1oW5NGD|>vk=99! z{2=0ZZ^EY5<}3{&YE=;z!4@f>+T&}4>y{kBwVBXkuWnRpnyTHx&Y6$=fbYw3F+>TZ zU_<7IH*6(j1mQ!p;d_x(3pFgt9xu4?RS6c~GK)z`3n+rjxPpy&y$qy7l~Hpa6Mo>bR%1{|>kU8u(Qb>)nU zGTM8-vmZpY(CSW++o!nK2R<-Hi0|{}J>-D6vs3j7)_uaDqQzh|h?0YIs`t)a7CMS} zYww7}iRrG^l+kE(!TtG$98%9Shv7`wR5q+%_QelZ%9}hlHICnpmnx}V~zZ@1uKW3*7 z)b$#s;&)DsvjR^U7^IPDu{`%OI+1*4P3E99FEKELW7wOMG}hS@F7M^JfD>QH?u~la z{J6Jiz9m453;~{2rhMmuNHs8gry@bgO5J9x-rFJdKLKqCEQ6QSLPJ_vuDwx2^{X!1 zdoSh2S8vT&x-Zfm;$R>MT*d3A-B}H`tO`t#DXEYa`<+j39S4JpsJQUHb4YcDe-_)% zg(g!V+4xj?75-paM2<~Hc?US6MRxUVb($!HhdWv|>xzE4w14LVzM-WP)k z!28HRa2k>vwLkOH6N69G6G%}q)Gm>==263hK(>#0E%LoBV?BhYtP^qLk^mNdDm$4i z-Mtr2@Qz8_=J34?I+z0=((tDAy z&R)h_9oOirIloqx~k(OPL9B_AvjkY48QgLp8)&2BKdr_q3Kp#ShKDC-8QIu%gM~> zewjx||6y!2CL-D9SyxKa=s{e^$?eMbO;`icfq~9bT-&#~yk^YjXGw|cbQvyNM^nYj zPL+GiE0uwsMG0uQux2BfvYIVblcZ@$H;sr)9X|$lG(BgwT07$utC8#0u@<&zE}igY z>m_~ipQkTmLt0pnan1Q_8={I;=g z4sU4te~)uPU23PCw2Ud=u#G z1==tSwIz(1Txg;~_+r08Qj3e+o)cm*IJ81@6&N5U2|t>QX?Wg@VM&6u2c@_$8WR0Y z(dE?rPr%d6iB6D{xkpNoo5Z6!sz?swC1%fkZBvrpO3#`#+j>xamv71#hJOcTEHYQs zr|yx@kX3--7<+hOIJ*a#iQQ{B5Fs)nDo^WY+LRPR zt${92nyJ$hwE(^a+a9YZtO>}2`%Vs1j+ZzHpTWv(01QAI9ze27=yxg44jJI9_!E%- z`c4Sx@vRty#2G1mHRT2cT*Ozq?{}T=og9+(eggLDA~$S)^vfXZicihBCgR}vAb3li zA8qpi z6-JzL%b`yCqz+>$p&~{4*5hIIkd_rZ7=bTP*6S04iO7$5CVZ{M4jac~Laj8CulvK; zY?4}Xpz|_)>ysW8mN0x1O;N)XVeEX(&ul3jXm51($vrPjpq`h{l5l_D;b_$~4<@=zQFVUU2d zSDe*b^aCiv`Q6#E)swv#na=H@gLXr)TUL;BzbzIKj(R zN1q;V>oC#y33%Ty$Brh!H_O-L_v*;RD?y;9Sfxr1T}CqBLFy2B`HS9<-CFzXsn_V? zyz|Y+Raek=OxUHXBpcUeKPt|2MdQ{Ce52~byt0}CCtI_QRM%=9?a^GcFH1e&R2y-p zruJ7*ui1VJYjkQx>_b(vj^|lhw|D<1(dJQ6Vl6u5-Pl7+o&r z)kwmWTCqv!!!!rVgR$ci?O-BdO7A-|qo|@vvkmJCG|i;mBcHm+rKX@FC;X9W#zUhO)5zTo}{-T2)Bd@Tg;T<8in6*ob{$`G?Ci+m3+>sK9Zha?ix|*yUJG^ zft&1&A6Tclu7|T)st;(6vsm~>*8^dYI@U87wxm}MFq)N;m{Y1Y@l)gu~WDEG}zKnpp4dgO-E#Ox~Rk5Q!bFA6)HatN7AiYFN_0TQQ49V})WphZ23 zX?$s6CKQ7(yYJ{P>zj8Ks=5=6PETaNhku2@!@p2aP!MpCFc5Ii;5A*~;a^B7Xbemk z912`mbS!Lgb`DDLvMxzAbrU!|DlXH6d~PW-XP3Vgc0v7F*mcZ2&xxDfgRqkuc;3P% zl(;pPGs<_cf-W3gI&$Fa%}K{Gb&tZz3rUw^=DqvCayp}nOtz1rlTf{s=-3qPQT)1@ zaD#s7T(&ier%SyW80&;>=Uw!A_-`N!FwzP8m3QImVayHsv~%g!D4H(ye+SO7>_<9r zzj|NzdJ%EsQ0H2@wSuPWH;Db}-9Oy_RP^uM|HQQWZx#J+(l7T#OmNIw$<_{>9<}O= zP^T0opMuxxh@15P1VN!r?!UmjU$x)=Vs_8|Vfy|B{=@xWm|$??7xN$B`Y-q2%>Muu zRL-S#&TV}5DpFaZ5C80uMMnfxr4G|MSG^I7Vir+UHHVhF5ldnl!ty^uDjUHlKe4Hk zBPBR(e!Z7=N2O~-_crjgQ*|inNLTA0qTACsEw%NMF)@<7X{Ev;+I1ASxxlg%;VNj} zF7@pta+}D4!T=BTM~xjfEuATrRbhx>Ls?rcGJDThYVrkrE8C#9oJ<@0cCP~*yQrxK z;gsEcq*sU|j4Uos7-wvt!HkrCC=9*G(N|t&k@eFQg3^B|I)*2U@x+7yZ>YPX=yEx` z@VTH|S4yKMti%XSse>@nU4--Sz2)o`7*3a(XALVgLQ(1<&2;DCJhZi(ZTg)5T~|V* zCaA;+PO$?w^)L8WkYDWZ(qBQqY!Sx8_u9W>r%P%66$CfaorUwz!150)`8)Q1vB6c2 z-4KGe6VOQUfl|~J*Qg07k*mY5%xCzc8?Qez9wKVb{ug2dq1XYL>J9^jwS@lYD2yZl zCBK+rtH0ULn_s|T{zm*)f2Du;{~ea9>$$vAJg+z9DJk;PQ95ZZa*hCWU--wkOaal|kVzEccslZ7Y}n7C!wi!6ql zUTzOZ8&egcuyMO~oKw*D6kl3}EmWsZ0Y+ZUdcNtYvsmY=o0W7e`&9I)6gQ%+yxCSS zHdoB1&$rWxpZNfVX* z@S_jS?1E7zKZ{NKxF4p^i|f70BC`yDAG6RgaNcTLl!rdirbrqo&mthh9u#mDj0OSF z6YvSUil9EP>+1l9JG_x?Xy2mfP@5ZI_{!EpC_AJ zw5Zz#@6I~jFTPex4Sfq_we$Gu4S`&_c*N+BcjabaXfIs+c|xh{KWF3T?P1fmPyd zl4M6mugBudE>HKnrq}@n(t9Hycy}Q1`+|xq?MvLWr|Tc6~#pkOSE0bS-xNrtd!i*T~n;k)RH*d7tO`FfqDd^NLo+YzBs+L3E#3 zDaRU|0akz!r&X7s;hXV>=BY7GwH-?ryULI^Fx^W{Z2@TgOmChM({R1XE6N6`$-RC( zi>2={%2X>pBD%oYMn?J8SoK9zP~vcP+j;fCCFJ);qms{)FhC-ho%5ND)|vRTqCA?N z6~ntjEhB_B=y6^c?;n#$M&3UGhL1U<{My!m1R>l(tqX8=L=$)Ozn8M7<dm()jlCdUONHqGDFFGxn_k{e7!-(;!3eo zi8bgW`*M*N#p~Xzk~v%ZX-)g1_*8C$gdY;@KYnZCkUcg|YFO@-j4G>d(G(Uoo-6R{ zHF|7TCesXi_gbdlJ1{IYk*KoBtZFlLyWv&`x1muxw5kfjPO(lLye(Uu4iau5gpTcS z#gybA@aWIa_iKz1(Tb0AbAx?VCp1b=GED0f6RIh2F7)8bQ~H5Bm)1eil-OO1Lw$%c zB2`ywLN6x1ruu_nDfm2j1qp`8?H%9uo20Fy)#pF{ol;rOgEsm2xU+P3-6P@@|N7r3 ziwlK_-R>o2YC^(-9C-iY)|f(KZC z{U&dOu);M33tlJ?&h;NuRY>sCVcWi)Fp8kQYGuA-3?ZotrWxUqH zr&UqTZ-$EVjzEWX7az(q2pZecg<1n+OCw__TF36M#TvvB@EbHLY zG9sv8{kwtW?*%Xmbp-6v%rn=KB@(-ce(YF=aqL&Ber)yImk8{;u>9YH3TYXURItV^ z;>p?C6bLmFqZ z`L6G4*D0Z?*>@w?>iC1nN9TEL2&Bk?Y>#X;GFt~;AYGS8NiP zo}Z&wU|?Gm(_4cR`sR~ z5P=w1nh+?pVn~doZ;e^G?LI3IJLh2#%gM*l(9qCQG?YSwP3<&RUSaq3GYj3L^n5{K z)W^5IO%8;)fr&SHI`P^I)aCKu|C!QGOvE+GHG@|4|B(P-1OQII@;}yp{Qg(&-_gJ6 zaRpDx+8U?*B0SQYF^B2*D+7N^L16tKk3aa|OF_SFfAIgCTo7|5ZKwsOt~%8ImDy{| z6`g?=oO+hXUj@V!ouL+*-vv{!1x))>Fhlx3m=K=xn0Y;iaQ|DvL4iyCyri6P?Jx2Z z;PW1?4Cl7B`23LOb@qEW`j4#n0TVwcJ_&Ar>UuxkAnXwo0M%$ z;96?+ebU;-Giq9HefQUou@Vvr6l8PU3+f50Wa< zcIF)S&mFgVbdP9IMR=vsU6m)q26`7%UHCfQwbO$;#M?lROqU)vQlXB_WxEj5c7;`; z7cFvFZf@&mkUs&^e(It@tnswZ%i?Sch{Vt!$LayNqz_^~weiuH9*)eB-HWNq-@d?I zppjR)Sok?+4=3>QNhL-0<};<}o<)A%e_F#n9rkd%{HoaX>NRh(Hj@+dkE{L_&0`4p*%T90DFWNZ58Go; zsSi~()m}uk9c1vX;dNjp2(h7e^QIHLBl}N4OyJI~Sp14|7nfHOl0@so+a8(^1GFGU zyEXl#Ub1ZKiMIqudspkQ7ueQ(fY>LYPr=E-POc93%YsuKD1e0QF&JM=kxzgFV0a%x zZ%omktGJtmD%IkHVscQHDEOqiv=vuKn>M(`p8)qYv|?JruR9;H!biKwCQNz+c$T-x z`aS5-7)pn^c4lW%n9W>dy4tzYQUKIOYfxt5HjGv~razo_Q&i`Na(v(Ss<&;2l%rBt zevpxLMBEBv3v?9=IfDRjulY+rIL&M(so~zL3jYMi8HYOEV)3v>l?sWp)sM_0O0_FM6!tBbD#KxFI!HQ!;unO*$iyC;hjR_Y>lWYEJ~hwt221G zcP_Tz*;UBxeA^cGh)%2x@p*Z3=`|8JDjpvVq65eY97j@#oT#vR2<2MvM&Uq^u)v>y z1ZtiFt~5+TW(C?4Iyz@b7U9>yW3)qP@+uBFa!qg(FAhX;)M+sao%U;y&cks|O$TOQ zG$Ue1Kr}($2QkH|0b2HM5zv_8UVA0QQ9A9lX=wst*v>7q=EMd*(B9n(=$-qD^cFJ= z`4&^d8Gw^nzDnAQ@j+-fb+)YT5}(V= zSlmK7K7}l$J7GkpYb+zI?c+Bq9kKIx#M`YBQ)y1XTRCW(1T>e~CAJqg+16)D!H^bC zByo6Ftz>iU`c>_3<*~A%yfIx;D))^;Hun(DVSZ?p1(IMDQ-}96B*whEF^wPcF{qJN zaWUs2hfM%NLSxQWo4Sf=zZ?Q~OcO?_4dEv1GfteB-;6KyqVcbb^w-#_KT#KcVextf zBvZZOSHX`-mSA;LYnNUzY!AVM-2}x$ho&#QK9*;n*em9Tp7Y!~RbJCpeL!3p?AR zTQbyg>hH^+G_f~ltN6jxh-2c~Cc6pXoMh2>RzcNJ`Hsf?&ZYwya=b6?6E_~ugwS^M zC0~dC0%GE7vh}k#jDPjC;krOOG^v3Cv>_n(bAu9qzpV)!=2;`@>=DnXe}XF-3Y(Q< zf?6#Pb;%-QY`MmT0?E=9CJ_FG@&7DhqfC&X^z{@J2vze{h|0|HrBO zoC(}6QqAnbh&e`#taC>c8L~Wv|8mmX5%#`O698J=Nu9sI>)Bfi;Hgbb^V~xuEpJ#5 zI$n>eD6M{?D_R$+fmAk9jGh_)Tk!Nu7d&Mm<@gHV4Tu`;eQyeE9`L!_^Jc(LY^aenMY*RgvHLZ~*nzL83+AkiG~^R&iYv-;`%A+VXl#5# zy61va?{nsX29U_+2BZgp@vPpcG@36+KF7R_LWY#~SOL%hOORV=E7)gHW3qd3@GYx2 zSiOTZ(`1nXr67nt*r3>PKwFMu2`)7PGa;h6|Ikp93&Y9qk}~bG)NcIy;+T(xeD7d| z(wc{dho>li0yG1}c9Sw-DcqtJoPhhHc+b6tL3{GAsGU`)F>FG!#G{|a=I=+p{8;%) zzp`x&7v5d)F>EtimLG!a$lTD}lZ{^CoIHjU;`4WBRa|F?nl>9Hr@L_GczFG3T*|&T zRLK%7`?otM8~o6vt>1aYTtBk6Yakn92LP(CDgE+ASeoy>cG_=V1*qnno4JAVFxl7h~QE`AjNH(FAS0zjK-T3P4T)AIx0 zRtB)F!S#aQSZ3;3n5g;G#aCX$xZkzD;{*30)MA;s+Xmdj0>4kA;E4(;w0_VwJX?_M zi)=`$3-lahi|7NL`IH@!X?T~-ZQ^&zw|bC3H#?39uCp3Qc-@M=a^A#_Ph}A|Z3vS* zQ#j2cLmlm;CUJX)^oGu;pi225x^7<+hq*tjaRywLE9;)dbFeR|b}N5#+a$8koZOx$ zGQ(>_0i14ix$9_!{WuoPL()3wciCHRMp9j?`q!crb@zr>NVp`%_FVw zr2c|^I2b`Im^6APGd#D@gIQ!3*=aaoyR;rr;4YR=a?RZ|KPLm|{LoHiH=N7E?1pYQ zp_d_(KQHYFJt~DnOiVdn5Kly^hI=X;P4~f=F4@D+Y3<$p^Zhv6JP8zoRbTnPJK&wRl`?6~<@kylX&S;)fHWwFl#lxv#8S`R@;Lbtv^WZ4R^%1c$ zVZogC)wCcu_61yLeJ09wv(fCTcQ4Vccq-f67UC!ZxB<&>Y)Rt1yvnpOXeZUH9a?=UOe&VL>qWW2Qzy%@CfM3&?o0(wLJ@*`vwO+=Qf@?NQuj{Z2jh0 z!Cl0|oSQmc&$cf3O3H))cyhx;3zYddF?!d4b^!OD9VUQ=6lN+4c7F^h8)B?O*!Lq& zR9o|6JbeN{v>#$%^wgcijJSv&AGBnqPTUsrg6%I)ewOtG0MiOnL4RhR6wQ}93w5!E2Fm{gfG19XH|~@9HO2!00}T%i1qUAMf%!eg zgFyj>$sthyUgfuqPU#W|UgLKLUgDP|sbPjCZW2@oUgGE4kdXg{ipyClps4T93O^`_ z-z)q;*a35q{B&^KTQZW+r61wt#%;t?=KJ9#AOpA0eP#v^g!!5Rs$UN=>6{}jc1bon zq5rL5jb5z}wzwcJ=14aG?<=h4NVb5ZWezb}xgh>k_}^a-`1$;4^}p2f|M$X&!Nvcp zz2^>Us(Ut=0HJpbJ#=Z(1qq=^RjLRIiqd=i=!6bZq=O(J9VAMTDnvpFy?3SeCN%+- zD&Wia{px!&@1HmG{(19e?(S@v-8tvnJNKU1yLf^uZ|I0G|H9eBm@pz`#bA(?-*U>gaP)XH@hLm3T0<2zk3%)tVOUjT+ z8{TdwS9ww8otNa5M3qgJC!iQ*@P;Fk1eTsVei83!9M87#8{pWma<^Q=opgLo$grqE zPRQzif)0&))f~O>$ocOG`6snRIg_5?H#SDbb;YTxr&C1QE^aW z!WygPLqr)y_`;`GJ%~k4hx?QkKzi@aR*-@fC)!L$d|d8)HuPAVVxNsM+*j+6BoZg3 zD&7vykKbbpjmED(8)ec@+6<3yqhZ%gP%IHv^*-gBprmCNFXUl7$XVIZ) zJ(%%*z0E>MeCU^&i6syMH$0<@b&eV%J z0IIw^nX~i5Q+&yo!0o#Va&__BccKT3WXSVdZ70qJQmjJ()6p2g@OCN>At~y6^o;h< z@D6Ha@?fXXhf|KYtOs|lGzRMn0bsU>qK~pv{@gsj0YqI=lT2Z$@lfV#b8P#9xCvW{ zH4!&Cy-lMt&cF+md$v-%d%AqIuER=|+L3~aoAZugO&8Lo8Ma(m@$rsTTyQ`cJ+yns zDr+{M%jwJ|@jmt#8L-|2NE{%n4g@J-zTp;bT^bmkg$)w4F+l3Sov8{BZ3R9G7Vf(! zwzDOLDq%-6Hko>*Z>SqWMg?zm4eKI~4%0J%2f(3Qg*=DAel_B($<1p67$2E>W9e9X-0yS6eTk1SOH}=|0wYav)!QrqKsHy-6@s{omQYX}I{G{5)&)zkKof zOi05+aQyOqy)T3PHLocw);MX+sQ4`19?NU07;BvPHwLfyi>YMm{*y>r`zK*kj7tC0 z@Gt3K4E8T~A+(ijUFCoJUcmdtGu>MEw!-HH${T}o-;vtt^4I@_5Ev8_;1t(;8)Ni9 zxmQ4g-Kb*x%|8l$?8otQYteOD-`7R&s&JN?KlU}0yh#qb;L!7ak~8_5R+a=VTcwbL zpgh{BjvcnIyF-Ve+o(R1G;xKuQNp8F`tF}%gQ?c1>UU*h?E@<728v}Lo5tVh< zcX?-PII}<4rdIdxFC2%xbNz8vBLekF&Qw_4{RdR^F2Id4e?^zoakw8FTVdHhMEncN zhVb74lO$9?Db?SgT>O;E$QEz@pUkv5-0|1(zr#N~{nNvrmXF&11^@J7Nc{H!nBxcW zPgsNhDc83@PzXiNCZ2|@RcbAaZv`=A@;iJ`iCyviN-TRyur9~#jV7)-EWHi#p#Qi} zJ%aA`n|2j^?d94`oO#QN{f2j$bj-p_{yr+|ni6-&AGlW)__Ivhz86a{I zbpgFS!ekDsX-WKw);UYCleZ_XgBL%tjIg~bs1R5Z;%@GBgha5st48qbKhZj*>3Dxl z3!A#K8Yk_OY;s@KiGzIjI4-Y>n^%RBAYGPl9W_nFe)+dn+Jprm*kctjTr_YMHb&pV z7CDG`iQtO?CtEeiJGHUu#~#Z!+N2I8aF5&J7FKG+3yJ%mz`G9kwqdS|>r-V8%{p4t z#85d>ABrmHyeQKLPo^M%h#LoTlg}|(_JBU=;$Pt)>1lIFw$zGtGmdZVMSes3s1et?BJZqpIiCJ{}=wx z7i3NH{k%b*#ee5uQv9`rLfcLhfL0d+`n8lZ-+MS^9gc78PLn{wvFjfgM)5h=gY7lu z1MjrkBPB|@$h5p$^>YM1r8?hOhPi7ZsaBBT3z!f4vS$2kj$%jB5jQ<5EPT+#)?DO} z6n%tD@MfD4xb%8${>i`f`=}NWw+M&`*RSM>Cvpyl8X-JMQ+?b=;cMC4KqGS?-dhm77ACoZFt= zVWS!V7|7(lq+b~q={>K8q|FFOhZ+to(z`e5nV|c)gyO%^yomT?xolp@5`Umct*>tj zt77D?{? zBJ)ht>*_~HcqLWjbok5&57XCR+r+WWEN-J1VilFXUt}am+`PuCB@OFV@2|-+;T+FyBkRKVD>LECd!>D;*F^H^>K_iX^ggx+suY&NBnI>hjlw z^{$?={RSYFKbMLEXVkEVcM5MKV(t01od6CWqRm+)KJc0hhC$a?cP%aoVw7a> zdGHv`NCBp4wS=HZ!D=5jP1iavdHA+Ii(m+vIifd zj;$k7_&C34XM}1>1dJ(NHagwCJ23Q+XQ_W)?h{w-EddonxtG(nKeOHzbXmYQoV9N^ zvG}!jg*s3`G0-eeU#@#O9sty*qIY9sx;?9BjnI3!Dz~%cTv5yqSt$k9t88EJ-L56G z69$@TWjCN+KiiY^+3}|IttArca(Sgfk6L48o8pl|Tgw26%xDZ!?L|ORsoN4(1VrJ7 zLv+a0?uNG6%Lp zD=&yqxi_Ua{=xFIQcLg}ZM&>2@Obi_xDlQuxO(-(FLna|&@m=qPcsbO6JsjVDiDJ$ zmUgu%X6g?k4Vo5@vJdyA_ChrIsWuhj%;oLIt=(rNa<5zRVcaFXQRQ5IH-adnhsl-T zJw%Bz-tFdUvQ0>o9>ILdcjDn-6ZKC=P(RLl$c(!2HZ|PBC4xA7;PfZttF6FjuXGCV z;sMIFx83|1!IyK#hUu5E?O?Yy%W`M`>-DU}8{XfAIA2gP=#}Oc&pthipvjoJnt!#A zOZw58DVXhOl?~U|%){uNr049=ttp7ig$5gs28ut??6uaqE^~SL`b0CCilHeN zdhTgDGwJ7{5Mzx5EF|wE(-$AadJ=Xxc{}$gI-F@JTsiXUgWhV88Y3o}<9} zjN|xK5F}i~GKYKD+mp_;Yb=YKXSVHTUQ7*tpPHD?qN~gv9Z|pN6|MeEw%Vu zhi5;E3w$Ps4JW!8*;#yipUpmYQF1MSMZ?N4rRDyy+HR-$eg2ja-^}x>u-JXv`FXHc(&^%KoMsex`#55h6 z0JO6aG!G^ads*sa7m(7}H7veRM ze78)JyJ;!*8=!JZ=KSmEfB+$@=XzWVKe4HC$!D$WK`JIKfX}nQ*zFO!^U^@$Rm>9e zWpf{VoiJS%Yx33F?$sdG#SQ`Sj$#=w23{~2GPlz&hWgwkc1QGXVWl^=#z|=pcx?VO zE3!AU#Sg&SR(BCm62=W6;JIdE&=Dml+^BB=YPa)Z?JxNQjZ94Mg?c0tVzkL7_C1^C zN8-zPs9ne~nY(Z0Waa8HJ+ky2Is)g)-6Irf6eIhGsVu)VZkokO!gkHPB#1b>l;0V> z?X!QQP&jEkk;NsP|L@i{BWEqYSW{@(|2j0Vs2D8Qa4oR=W#R(DSe? z*SpN{;78-hK9kYJ#}>Bx1}x^;#iSHG^hWw)j+xzY#Ot8P+F7Xe`%u=?rEtARL~3j1 zw0b7h0`YyX8ZzD$wM88&kh~l55S!}C>^hD!1(ftd63T|R2yRpJhJEyu!=Q|xY&*Hh z5l@CYeN3HNe%Fs6EcR@c`^X@I=Hr#d(D;}1nzdyWX}wB%FGBt*5wMm_{)tcC+>ara%I7a6q8(#EEY2dmU6zme}xEjCOT~i{HWZ z>v;r%M0`F$tXrR2dsDCcU{uQ_cE2QRztg`UU0HKkQnQy^s))#xGW>9j3q9VK$3l~h zi68Mm`g9*^vL|%Z zGT(}Z=rEzRbQ^VIFmqT_BBa|`i4G;ltwItTmgw}u3|FxW+k*%Tba!Jydd)KR8|+Ze zal2pCg-9O@4m}nvS%--H{0(r3Kr^xQ6@9pADcQQ!*m$HzzCjM=VQnhX3ly1)C46tpQWH54}Uj7QH=3SZuPhNAePro|mLx*Ra1n_9({0;bI{*CB_jvwPOXzPh=UBbOh zYWp$M(3_8iSug{rJfQx+gvi>F-uv>^IgV}QX)`1rBU2LiID?&94)xwN>v!qgA&`)q zPMdcP9w;K7$iF!gXy9+_|;WS zWKM{Wzk`PZh_t@m?475B`+z7v(dUxI6#vEtrX3T!C07*CB^tI`H&p7H)viY$IiS73 z9HccYw{!Jw+r3rMw%;Z9?Z?lx%s{qdwbiE+M#W^I5dLB-qeNc zfq4*!$)Djvko6`kZIBfVU5|`$f44PNq-H)8dGhAXl0<(UTpx4$IYbHihE7^C?b}HL zmund9b9W+vV6IFXDVYZxJnJ_OO1V_SpD`;*nxw=8e*WPXg~_TDj!MOrhggq;-hNGu z1Li=@%&ndR+R;2srP^)oO_^g`8OI;vMw-<2X5X$Ur{zp>n$>xdaF>h7M9MOTFIb>t zgE%3KHYIj4AlKfR7lseYRRHcctE4`sQcSJvfSg~Oim(M7pWGRn8pkB#T7}Fnbb$dem^Ig?01IA>+v3o!>j!MjN0-=(tb+~&Viw2z-xz2!cA)BVGrpFBm z!)%I^R_6Kmn|JOUg|AB3LBut=ltJug3IT_%ObnSZu!#t0cIvhZmA8@+6 z4^Iqnuhb3p!$_s|Unz(h41w<4NWT)`#aN)Q{I3+z@ZQ(5=jfnzGCG z-awY|8M9|J@52;J~dX?C4Un6i_|2fEqh*3Qx zJ6-CAW3@xe90I}r3d4j8mmeKI)qFCv!-3kcYe*rsXY#EK^_3p>J?TMb*dPx)&8}*e zlBU=e{TmVM3@=yK=V=lLE`}ME!e-x)=3Nwq5l2?IqU=6(QO>PLjjKIaYgr?AP8nQX zEWQ`mYHVS}B@sHN>c;T#?5;4_9flh^v9x$}>>C6PgV}%cFiO_&04eQ5e1wq~MImbn z-mD-;P4RkKujFcH_6dco1$n3BcxI@N)pNyTT6f~cv*i1Q*UX-v#f!+%N9H_wmb{^% zWbw3Pq8eYI+N3Ere7?%Q9rZLlqrWikdR!hf8HRpcXrQ$GWvc1q$Mi0y=YZ?TxN+V+ zO^I{j4#CNqWWOoLRl8sEQn6<8c1#7)VAJQ0dekJM3h*L=;v$S9Ow;Ukz;^n&7-0)JpD)P+>3%*e0o9>}hYeVS{UJ(Szg0s~7qD&0Q7A;@v2}USW zV(adDyWW6~EqSz@-M?vlrI>NcDW^%#no}#sGoM@Ph0!WovQ*C>xqEg`8`S02LTQy} z2+1iCMj!>)Fn6E@nwRcA%`+k*?^j0FnrxxTQs=*@q7#RAc|I+%`*|GP1HcZE>4G$w zbX_qV19O=@z9I$dsKoupt@|n+I=;$#cBm01OO?w?c#8!;+V-(i&b2)@Z6_($nDZli z6*zz@CkB@xpG?+Ny~0fyTcQhxSMQ1QQ)F&v1k=q4 zYEMqHw2D%!K9k=q<8dVT@iO=AhV$-Zf}coyqm*39xorlfAiGcH}fe#6YQE(5c!V_XC z!S1=xC~`E1Fa4(ZcC^nAb0pUZJYBE5LpKfV)A{AKdDF{haocB+Sbs?Y6z}uX0Ih3y~#4Y zBLM?P%&O?l5S3e9Qf1TMd zvQtC4sIu^XAdE*($*ugrq>yE4Z?80$cnGGf!lp5Yc$W#1lDmV90ZJY0;D z#+EBl0b-;9EeR1iNnHW-`(`wn7g(&U{$n;2blXcy#`TLev)iLCy?`z%(-RAA59};| zYk_;jGU}(xcZE2MvHOE#=mAD^HqGw_oCS$A8Q0G3hSXqcljihF8`#<>~$nM8>F?eEYscjpRFN zS%1;)sJuc%@3vG&WKCES8BZyG?$&^ErrJ8R3di1nT8B4?4 z{q8&=0)Ub8LrMC4jQJrY(nGxjNX#62C`8!!#jidw$-i=L$RlDr_H?W6$9Cr=a?z@{ zcwu!M>;6PIBiPU5oPAp(44#R7vbjv_N5JZ6%!SzF(sPiUEBCPrT*UXQES3UBezomb z`hoZjfHpedF>iiFMf}Oc%}rovc&*pj1-|~TVomXNBR(ckCt11uG{^yG*}?s=O)8P* z#j^~TsbBe9iUU1OsUEnGi-QYUCIJK+wa~n8&*3eXl22m45a6fnmx)i-=Uh?#!N5x#dmNg5%y)>A0ybp=nsE^d?`IH>wlqtb;7M2>BeXdq@SJUP&rQ z&3`s~TM(q{ZMxO09}18$4;5%JO9@uGvMEuM>v~qPn3X%QLlyB*ZPH5y>P8BTGh&{p zTywkUdId6bbJC@kt>C6u8T?~DaWf|IyXYv(p7R+#G?}Dx)mjezLc3ZK@)E5=mD -import PageController from '@veupathdb/wdk-client/lib/Core/Controllers/PageController'; -import { StateSlice } from '../StoreModules/types'; -declare const actionCreators: { - showLoginForm: { - ( - destination?: string | undefined - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - >; - readonly type: 'user-session/show-login-form'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - > - >; - requestUploadMessages: { - (): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - >; - readonly type: 'user-dataset-upload/load-upload-messages'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - > - >; - cancelCurrentUpload: { - ( - id: string - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/cancel-upload', - { - id: string; - } - >; - readonly type: 'user-dataset-upload/cancel-upload'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/cancel-upload', - { - id: string; - } - > - >; - clearMessages: { - ( - ids: string[] - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-messages', - { - ids: string[]; - } - >; - readonly type: 'user-dataset-upload/clear-messages'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-messages', - { - ids: string[]; - } - > - >; -}; -type StateProps = StateSlice['userDatasetUpload'] & - Pick; -type DispatchProps = typeof actionCreators; -type OwnProps = { - baseUrl: string; -}; -type Props = StateProps & { - actions: DispatchProps; -} & OwnProps; -declare class UserDatasetAllUploadsController extends PageController { - loadData(prevProps?: Props): void; - getActionCreators(): { - showLoginForm: { - ( - destination?: string | undefined - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - >; - readonly type: 'user-session/show-login-form'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - > - >; - requestUploadMessages: { - (): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - >; - readonly type: 'user-dataset-upload/load-upload-messages'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - > - >; - cancelCurrentUpload: { - ( - id: string - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/cancel-upload', - { - id: string; - } - >; - readonly type: 'user-dataset-upload/cancel-upload'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/cancel-upload', - { - id: string; - } - > - >; - clearMessages: { - ( - ids: string[] - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-messages', - { - ids: string[]; - } - >; - readonly type: 'user-dataset-upload/clear-messages'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-messages', - { - ids: string[]; - } - > - >; - }; - isRenderDataLoaded(): boolean; - getTitle(): string; - renderView(): JSX.Element; -} -declare const _default: import('react-redux').ConnectedComponent< - typeof UserDatasetAllUploadsController, - import('react-redux').Omit< - import('react').ClassAttributes & - import('../StoreModules/UserDatasetUploadStoreModule').State & - Pick< - Partial<{ - config: import('@veupathdb/wdk-client/lib/Service/ServiceBase').ServiceConfig; - ontology: import('@veupathdb/wdk-client/lib/Utils/CategoryUtils').CategoryOntology; - questions: import('@veupathdb/wdk-client/lib/Utils/WdkModel').Question[]; - recordClasses: import('@veupathdb/wdk-client/lib/Utils/WdkModel').RecordClass[]; - user: import('@veupathdb/wdk-client/lib/Utils/WdkUser').User; - preferences: import('@veupathdb/wdk-client/lib/Utils/WdkUser').UserPreferences; - siteConfig?: any; - location: import('history').Location; - loginForm: { - isOpen: boolean; - message?: string | undefined; - destination?: string | undefined; - }; - }>, - 'user' - > & { - actions: { - showLoginForm: { - ( - destination?: string | undefined - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - >; - readonly type: 'user-session/show-login-form'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - > - >; - requestUploadMessages: { - (): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - >; - readonly type: 'user-dataset-upload/load-upload-messages'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - > - >; - cancelCurrentUpload: { - ( - id: string - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/cancel-upload', - { - id: string; - } - >; - readonly type: 'user-dataset-upload/cancel-upload'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/cancel-upload', - { - id: string; - } - > - >; - clearMessages: { - ( - ids: string[] - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-messages', - { - ids: string[]; - } - >; - readonly type: 'user-dataset-upload/clear-messages'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/clear-messages', - { - ids: string[]; - } - > - >; - }; - } & OwnProps, - | 'badUploadMessage' - | 'baseUrl' - | 'user' - | 'uploads' - | 'badAllUploadsActionMessage' - | 'actions' - > & - OwnProps ->; -export default _default; -//# sourceMappingURL=UserDatasetAllUploadsController.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.d.ts.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.d.ts.map deleted file mode 100644 index e246244e32..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetAllUploadsController.d.ts","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetAllUploadsController.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,MAAM,2DAA2D,CAAC;AAWvF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKnB,CAAC;AAEF,KAAK,UAAU,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAC/C,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,CAAC;AAEzC,KAAK,aAAa,GAAG,OAAO,cAAc,CAAC;AAC3C,KAAK,QAAQ,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AACpC,KAAK,KAAK,GAAG,UAAU,GAAG;IAAE,OAAO,EAAE,aAAa,CAAA;CAAE,GAAG,QAAQ,CAAC;AAEhE,cAAM,+BAAgC,SAAQ,cAAc,CAAC,KAAK,CAAC;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK;IAO1B,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIjB,kBAAkB;IAQlB,QAAQ;IAIR,UAAU;CAYX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBD,wBAAwD"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.js b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.js deleted file mode 100644 index a5435cbf83..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.js +++ /dev/null @@ -1,74 +0,0 @@ -import { jsx as _jsx } from 'react/jsx-runtime'; -import { connect } from 'react-redux'; -import PageController from '@veupathdb/wdk-client/lib/Core/Controllers/PageController'; -import { showLoginForm } from '@veupathdb/wdk-client/lib/Actions/UserSessionActions'; -import { - requestUploadMessages, - cancelCurrentUpload, - clearMessages, -} from '../Actions/UserDatasetUploadActions'; -import AllUploads from '../Components/AllUploads'; -const actionCreators = { - showLoginForm, - requestUploadMessages, - cancelCurrentUpload, - clearMessages, -}; -class UserDatasetAllUploadsController extends PageController { - loadData(prevProps) { - if (prevProps != null) { - return; - } - this.props.actions.requestUploadMessages(); - } - getActionCreators() { - return actionCreators; - } - isRenderDataLoaded() { - return ( - this.props.user != null && - (this.props.uploads != null || - this.props.badAllUploadsActionMessage != null) - ); - } - getTitle() { - return 'Recent Uploads'; - } - renderView() { - var _a; - return _jsx( - 'div', - Object.assign( - { className: 'stack' }, - { - children: _jsx(AllUploads, { - baseUrl: this.props.baseUrl, - errorMessage: - (_a = this.props.badAllUploadsActionMessage) === null || - _a === void 0 - ? void 0 - : _a.message, - uploadList: this.props.uploads, - actions: this.props.actions, - }), - } - ) - ); - } -} -const enhance = connect( - (state) => ({ - badAllUploadsActionMessage: - state.userDatasetUpload.badAllUploadsActionMessage, - uploads: state.userDatasetUpload.uploads, - user: state.globalData.user, - }), - actionCreators, - (stateProps, dispatchProps, ownProps) => - Object.assign( - Object.assign(Object.assign({}, stateProps), { actions: dispatchProps }), - ownProps - ) -); -export default enhance(UserDatasetAllUploadsController); -//# sourceMappingURL=UserDatasetAllUploadsController.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.js.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.js.map deleted file mode 100644 index 901ea67e3d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetAllUploadsController.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetAllUploadsController.js","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetAllUploadsController.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,cAAc,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,sDAAsD,CAAC;AAErF,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,GACd,MAAM,qCAAqC,CAAC;AAE7C,OAAO,UAAU,MAAM,0BAA0B,CAAC;AAIlD,MAAM,cAAc,GAAG;IACrB,aAAa;IACb,qBAAqB;IACrB,mBAAmB;IACnB,aAAa;CACd,CAAC;AASF,MAAM,+BAAgC,SAAQ,cAAqB;IACjE,QAAQ,CAAC,SAAiB;QACxB,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,OAAO;SACR;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAC7C,CAAC;IAED,iBAAiB;QACf,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kBAAkB;QAChB,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI;YACvB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI;gBACzB,IAAI,CAAC,KAAK,CAAC,0BAA0B,IAAI,IAAI,CAAC,CACjD,CAAC;IACJ,CAAC;IAED,QAAQ;QACN,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,UAAU;;QACR,OAAO,CACL,4BAAK,SAAS,EAAC,OAAO,gBACpB,KAAC,UAAU,IACT,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,YAAY,EAAE,MAAA,IAAI,CAAC,KAAK,CAAC,0BAA0B,0CAAE,OAAO,EAC5D,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAC3B,IACE,CACP,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,GAAG,OAAO,CACrB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACV,0BAA0B,EACxB,KAAK,CAAC,iBAAiB,CAAC,0BAA0B;IACpD,OAAO,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO;IACxC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;CAC5B,CAAC,EACF,cAAc,EACd,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,+CACpC,UAAU,KACb,OAAO,EAAE,aAAa,KACnB,QAAQ,EACX,CACH,CAAC;AAEF,eAAe,OAAO,CAAC,+BAA+B,CAAC,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.d.ts b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.d.ts deleted file mode 100644 index 32a4417e9d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.d.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { ComponentType } from 'react'; -import PageController from '@veupathdb/wdk-client/lib/Core/Controllers/PageController'; -import { Question } from '@veupathdb/wdk-client/lib/Utils/WdkModel'; -import { - loadUserDatasetDetail, - removeUserDataset, - shareUserDatasets, - unshareUserDatasets, - updateUserDatasetDetail, -} from '../Actions/UserDatasetsActions'; -import UserDatasetDetail from '../Components/Detail/UserDatasetDetail'; -import { StateSlice } from '../StoreModules/types'; -import { DataNoun } from '../Utils/types'; -declare const ActionCreators: { - showLoginForm: { - ( - destination?: string | undefined - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - >; - readonly type: 'user-session/show-login-form'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - > - >; - loadUserDatasetDetail: typeof loadUserDatasetDetail; - updateUserDatasetDetail: typeof updateUserDatasetDetail; - removeUserDataset: typeof removeUserDataset; - shareUserDatasets: typeof shareUserDatasets; - unshareUserDatasets: typeof unshareUserDatasets; -}; -export type UserDatasetDetailProps = any; -type StateProps = StateSlice['userDatasetDetail'] & StateSlice['globalData']; -type DispatchProps = typeof ActionCreators; -type OwnProps = { - baseUrl: string; - detailsPageTitle: string; - workspaceTitle: string; - id: string; - detailComponentsByTypeName?: Record< - string, - ComponentType - >; - dataNoun: DataNoun; -}; -type MergedProps = { - ownProps: OwnProps; - dispatchProps: DispatchProps; - stateProps: StateProps; -}; -/** - * View Controller for a userDataset record. - * - * Note that we are accessing the userDataset from an object keyed by the - * userDataset's id. This avoids race conditions that arise when ajax requests - * complete in a different order than they were invoked. - */ -declare class UserDatasetDetailController extends PageController { - getQuestionUrl: (question: Question) => string; - getTitle(): string; - getActionCreators(): { - showLoginForm: { - ( - destination?: string | undefined - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - >; - readonly type: 'user-session/show-login-form'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - > - >; - loadUserDatasetDetail: typeof loadUserDatasetDetail; - updateUserDatasetDetail: typeof updateUserDatasetDetail; - removeUserDataset: typeof removeUserDataset; - shareUserDatasets: typeof shareUserDatasets; - unshareUserDatasets: typeof unshareUserDatasets; - }; - loadData(prevProps?: this['props']): void; - isRenderDataLoadError(): boolean; - isRenderDataLoaded(): boolean; - getDetailView(type: any): ComponentType | typeof UserDatasetDetail; - renderGuestView(): JSX.Element; - renderView(): JSX.Element; -} -declare const _default: import('react-redux').ConnectedComponent< - typeof UserDatasetDetailController, - import('react-redux').Omit< - import('react').ClassAttributes & MergedProps, - 'ownProps' | 'dispatchProps' | 'stateProps' - > & - OwnProps ->; -export default _default; -//# sourceMappingURL=UserDatasetDetailController.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.d.ts.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.d.ts.map deleted file mode 100644 index 8d850f1560..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetDetailController.d.ts","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetDetailController.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAOtC,OAAO,cAAc,MAAM,2DAA2D,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAEpE,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAKxC,OAAO,iBAAiB,MAAM,wCAAwC,CAAC;AAIvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,QAAA,MAAM,cAAc;;;;;;;;;;;;;;CAOnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAEzC,KAAK,UAAU,GAAG,UAAU,CAAC,mBAAmB,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAC7E,KAAK,aAAa,GAAG,OAAO,cAAc,CAAC;AAC3C,KAAK,QAAQ,GAAG;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B,CAAC,EAAE,MAAM,CACjC,MAAM,EACN,aAAa,CAAC,sBAAsB,CAAC,CACtC,CAAC;IACF,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AACF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF;;;;;;GAMG;AACH,cAAM,2BAA4B,SAAQ,cAAc,CAAC,WAAW,CAAC;IACnE,cAAc,aAAc,QAAQ,KAAG,MAAM,CAE3C;IAEF,QAAQ;IAYR,iBAAiB;;;;;;;;;;;;;;;IAIjB,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC;IAUlC,qBAAqB;IAOrB,kBAAkB;IAUlB,aAAa,CAAC,IAAI,EAAE,GAAG;IAoBvB,eAAe;IAgBf,UAAU;CAsDX;;AAqBD,wBAAoD"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.js b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.js deleted file mode 100644 index f090bd6ce8..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.js +++ /dev/null @@ -1,185 +0,0 @@ -import { jsxs as _jsxs, jsx as _jsx } from 'react/jsx-runtime'; -import { connect } from 'react-redux'; -import { keyBy } from 'lodash'; -import { showLoginForm } from '@veupathdb/wdk-client/lib/Actions/UserSessionActions'; -import PageController from '@veupathdb/wdk-client/lib/Core/Controllers/PageController'; -import { - loadUserDatasetDetail, - removeUserDataset, - shareUserDatasets, - unshareUserDatasets, - updateUserDatasetDetail, -} from '../Actions/UserDatasetsActions'; -import BigwigDatasetDetail from '../Components/Detail/BigwigDatasetDetail'; -import BiomDatasetDetail from '../Components/Detail/BiomDatasetDetail'; -import RnaSeqDatasetDetail from '../Components/Detail/RnaSeqDatasetDetail'; -import UserDatasetDetail from '../Components/Detail/UserDatasetDetail'; -import EmptyState from '../Components/EmptyState'; -import { quotaSize } from '../Components/UserDatasetUtils'; -const ActionCreators = { - showLoginForm, - loadUserDatasetDetail, - updateUserDatasetDetail, - removeUserDataset, - shareUserDatasets, - unshareUserDatasets, -}; -/** - * View Controller for a userDataset record. - * - * Note that we are accessing the userDataset from an object keyed by the - * userDataset's id. This avoids race conditions that arise when ajax requests - * complete in a different order than they were invoked. - */ -class UserDatasetDetailController extends PageController { - constructor() { - super(...arguments); - this.getQuestionUrl = (question) => { - return `#${question.urlSegment}`; - }; - } - getTitle() { - const entry = - this.props.stateProps.userDatasetsById[this.props.ownProps.id]; - if (entry && entry.resource) { - return `${this.props.ownProps.detailsPageTitle} ${entry.resource.meta.name}`; - } - if (entry && !entry.resource) { - return `${this.props.ownProps.detailsPageTitle} not found`; - } - return `${this.props.ownProps.detailsPageTitle} ...`; - } - getActionCreators() { - return ActionCreators; - } - loadData(prevProps) { - const idChanged = - prevProps == null || prevProps.ownProps.id !== this.props.ownProps.id; - if (idChanged) { - this.props.dispatchProps.loadUserDatasetDetail( - Number(this.props.ownProps.id) - ); - } - } - isRenderDataLoadError() { - return ( - this.props.stateProps.loadError != null && - this.props.stateProps.loadError.status >= 500 - ); - } - isRenderDataLoaded() { - const { id } = this.props.ownProps; - const { userDatasetsById, user, questions, config } = this.props.stateProps; - const entry = userDatasetsById[id]; - if (user && user.isGuest) return true; - return entry && !entry.isLoading && user && questions && config - ? true - : false; - } - getDetailView(type) { - var _a; - const name = type && typeof type === 'object' ? type.name : null; - if ( - ((_a = this.props.ownProps.detailComponentsByTypeName) === null || - _a === void 0 - ? void 0 - : _a[name]) != null - ) { - return this.props.ownProps.detailComponentsByTypeName[name]; - } - switch (name) { - case 'Bigwigs': - case 'BigwigFiles': - return BigwigDatasetDetail; - case 'RnaSeq': - return RnaSeqDatasetDetail; - case 'BIOM': - return BiomDatasetDetail; - default: - return UserDatasetDetail; - } - } - renderGuestView() { - return _jsx(EmptyState, { - message: _jsxs( - 'button', - Object.assign( - { - type: 'button', - className: 'btn', - onClick: () => this.props.dispatchProps.showLoginForm(), - }, - { - children: [ - 'Please log in to access ', - this.props.ownProps.workspaceTitle, - '.', - ], - } - ) - ), - }); - } - renderView() { - const { baseUrl, detailsPageTitle, id, workspaceTitle, dataNoun } = - this.props.ownProps; - const { - updateUserDatasetDetail, - shareUserDatasets, - removeUserDataset, - unshareUserDatasets, - } = this.props.dispatchProps; - const { - userDatasetsById, - user, - updateError, - questions, - config, - userDatasetUpdating, - } = this.props.stateProps; - const entry = userDatasetsById[id]; - const isOwner = !!( - user && - entry.resource && - entry.resource.ownerUserId === user.id - ); - const props = { - baseUrl, - user, - config, - isOwner, - location: window.location, - updateError, - removeUserDataset, - quotaSize, - userDatasetUpdating, - shareUserDatasets, - unshareUserDatasets, - updateUserDatasetDetail, - userDataset: entry.resource, - getQuestionUrl: this.getQuestionUrl, - questionMap: keyBy(questions, 'fullName'), - workspaceTitle, - detailsPageTitle, - dataNoun, - }; - const DetailView = this.getDetailView( - typeof entry.resource === 'object' ? entry.resource.type : null - ); - return user && user.isGuest - ? this.renderGuestView() - : _jsx(DetailView, Object.assign({}, props)); - } -} -const enhance = connect( - (state) => - Object.assign(Object.assign({}, state.globalData), state.userDatasetDetail), - ActionCreators, - (stateProps, dispatchProps, ownProps) => ({ - stateProps, - dispatchProps, - ownProps, - }) -); -export default enhance(UserDatasetDetailController); -//# sourceMappingURL=UserDatasetDetailController.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.js.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.js.map deleted file mode 100644 index a9268a1fa6..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetDetailController.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetDetailController.js","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetDetailController.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.d.ts b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.d.ts deleted file mode 100644 index be906bc0f4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.d.ts +++ /dev/null @@ -1,144 +0,0 @@ -/// -import { RouteComponentProps } from 'react-router-dom'; -import PageController from '@veupathdb/wdk-client/lib/Core/Controllers/PageController'; -import { - loadUserDatasetList, - removeUserDataset, - shareUserDatasets, - unshareUserDatasets, - updateProjectFilter, - updateUserDatasetDetail, -} from '../Actions/UserDatasetsActions'; -import { StateSlice } from '../StoreModules/types'; -import { DataNoun } from '../Utils/types'; -import '../Components/UserDatasets.scss'; -declare const ActionCreators: { - showLoginForm: { - ( - destination?: string | undefined - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - >; - readonly type: 'user-session/show-login-form'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - > - >; - loadUserDatasetList: typeof loadUserDatasetList; - updateUserDatasetDetail: typeof updateUserDatasetDetail; - removeUserDataset: typeof removeUserDataset; - shareUserDatasets: typeof shareUserDatasets; - unshareUserDatasets: typeof unshareUserDatasets; - updateProjectFilter: typeof updateProjectFilter; - requestUploadMessages: { - (): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - >; - readonly type: 'user-dataset-upload/load-upload-messages'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - > - >; -}; -type StateProps = Pick< - StateSlice, - 'userDatasetList' | 'userDatasetUpload' | 'globalData' ->; -type DispatchProps = typeof ActionCreators; -interface OwnProps extends RouteComponentProps<{}> { - baseUrl: string; - hasDirectUpload: boolean; - helpRoute: string; - workspaceTitle: string; - dataNoun: DataNoun; -} -type Props = { - ownProps: OwnProps; - dispatchProps: DispatchProps; - stateProps: StateProps; -}; -declare class UserDatasetListController extends PageController { - constructor(props: Props); - getTitle(): string; - getActionCreators(): { - showLoginForm: { - ( - destination?: string | undefined - ): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - >; - readonly type: 'user-session/show-login-form'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-session/show-login-form', - { - destination: string | undefined; - } - > - >; - loadUserDatasetList: typeof loadUserDatasetList; - updateUserDatasetDetail: typeof updateUserDatasetDetail; - removeUserDataset: typeof removeUserDataset; - shareUserDatasets: typeof shareUserDatasets; - unshareUserDatasets: typeof unshareUserDatasets; - updateProjectFilter: typeof updateProjectFilter; - requestUploadMessages: { - (): import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - >; - readonly type: 'user-dataset-upload/load-upload-messages'; - } & import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').ActionTypeGuardContainer< - import('@veupathdb/wdk-client/lib/Utils/ActionCreatorUtils').Action< - 'user-dataset-upload/load-upload-messages', - void - > - >; - }; - needsUploadMessages(): boolean; - loadData(prevProps?: Props): void; - isRenderDataLoaded(): boolean; - isRenderDataLoadError(): boolean; - renderView(): JSX.Element | null; -} -declare const _default: import('react').ComponentClass< - Pick< - import('react-redux').Omit< - import('react').ClassAttributes & Props, - 'ownProps' | 'dispatchProps' | 'stateProps' - > & - OwnProps, - | 'baseUrl' - | 'hasDirectUpload' - | 'helpRoute' - | 'workspaceTitle' - | 'dataNoun' - | keyof import('react').ClassAttributes - >, - any -> & - import('react-router').WithRouterStatics< - import('react-redux').ConnectedComponent< - typeof UserDatasetListController, - import('react-redux').Omit< - import('react').ClassAttributes & Props, - 'ownProps' | 'dispatchProps' | 'stateProps' - > & - OwnProps - > - >; -export default _default; -//# sourceMappingURL=UserDatasetListController.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.d.ts.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.d.ts.map deleted file mode 100644 index faa7da31d6..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetListController.d.ts","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetListController.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAc,MAAM,kBAAkB,CAAC;AAGnE,OAAO,cAAc,MAAM,2DAA2D,CAAC;AAEvF,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACxB,MAAM,gCAAgC,CAAC;AAOxC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAe,MAAM,gBAAgB,CAAC;AAEvD,OAAO,iCAAiC,CAAC;AAEzC,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;CASnB,CAAC;AAEF,KAAK,UAAU,GAAG,IAAI,CACpB,UAAU,EACV,iBAAiB,GAAG,mBAAmB,GAAG,YAAY,CACvD,CAAC;AACF,KAAK,aAAa,GAAG,OAAO,cAAc,CAAC;AAC3C,UAAU,QAAS,SAAQ,mBAAmB,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AACD,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;CACxB,CAAC;AAEF,cAAM,yBAA0B,SAAQ,cAAc,CAAC,KAAK,CAAC;gBAC/C,KAAK,EAAE,KAAK;IAIxB,QAAQ;IAIR,iBAAiB;;;;;;;;;;;;;;;;;;;;IAGjB,mBAAmB;IAanB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK;IAiB1B,kBAAkB;IAUlB,qBAAqB;IAIrB,UAAU;CAsEX;;AAgBD,wBAA8D"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.js b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.js deleted file mode 100644 index 79be347449..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.js +++ /dev/null @@ -1,161 +0,0 @@ -import { jsx as _jsx } from 'react/jsx-runtime'; -import { connect } from 'react-redux'; -import { withRouter } from 'react-router-dom'; -import { showLoginForm } from '@veupathdb/wdk-client/lib/Actions/UserSessionActions'; -import PageController from '@veupathdb/wdk-client/lib/Core/Controllers/PageController'; -import { - loadUserDatasetList, - removeUserDataset, - shareUserDatasets, - unshareUserDatasets, - updateProjectFilter, - updateUserDatasetDetail, -} from '../Actions/UserDatasetsActions'; -import { requestUploadMessages } from '../Actions/UserDatasetUploadActions'; -import UserDatasetList from '../Components/List/UserDatasetList'; -import NoDatasetsMessage from '../Components/NoDatasetsMessage'; -import { quotaSize } from '../Components/UserDatasetUtils'; -import '../Components/UserDatasets.scss'; -const ActionCreators = { - showLoginForm, - loadUserDatasetList, - updateUserDatasetDetail, - removeUserDataset, - shareUserDatasets, - unshareUserDatasets, - updateProjectFilter, - requestUploadMessages, -}; -class UserDatasetListController extends PageController { - constructor(props) { - super(props); - this.needsUploadMessages = this.needsUploadMessages.bind(this); - } - getTitle() { - return this.props.ownProps.workspaceTitle; - } - getActionCreators() { - return ActionCreators; - } - needsUploadMessages() { - const { config } = this.props.stateProps.globalData; - const { hasDirectUpload } = this.props.ownProps; - if (config == null) { - return true; - } - const { uploads, badAllUploadsActionMessage } = - this.props.stateProps.userDatasetUpload; - return ( - hasDirectUpload && uploads == null && badAllUploadsActionMessage == null - ); - } - loadData(prevProps) { - if (prevProps == null) { - this.props.dispatchProps.loadUserDatasetList(); - return; - } - const { config } = this.props.stateProps.globalData; - if ( - config != null && - prevProps.stateProps.userDatasetList.status !== - this.props.stateProps.userDatasetList.status && - this.needsUploadMessages() - ) { - this.props.dispatchProps.requestUploadMessages(); - } - } - isRenderDataLoaded() { - return ( - this.props.stateProps.userDatasetList.status !== 'not-requested' && - this.props.stateProps.userDatasetList.status !== 'loading' && - this.props.stateProps.globalData.config != null && - this.props.stateProps.globalData.user != null && - !this.needsUploadMessages() - ); - } - isRenderDataLoadError() { - return this.props.stateProps.userDatasetList.status === 'error'; - } - renderView() { - const { config, user } = this.props.stateProps.globalData; - if (user == null || config == null) return this.renderDataLoading(); - if (this.props.stateProps.userDatasetList.status !== 'complete') - return null; - const { projectId, displayName: projectName } = config; - const { baseUrl, hasDirectUpload, helpRoute, location, dataNoun } = - this.props.ownProps; - const { - userDatasetList: { userDatasets, userDatasetsById, filterByProject }, - userDatasetUpload: { uploads }, - } = this.props.stateProps; - const numOngoingUploads = - uploads != null ? uploads.filter((upload) => upload.isOngoing).length : 0; - const { - shareUserDatasets, - unshareUserDatasets, - removeUserDataset, - updateUserDatasetDetail, - updateProjectFilter, - } = this.props.dispatchProps; - const listProps = { - baseUrl, - user, - location, - dataNoun, - projectId, - projectName, - numOngoingUploads, - quotaSize, - userDatasets: userDatasets.map((id) => userDatasetsById[id].resource), - filterByProject, - shareUserDatasets, - unshareUserDatasets, - removeUserDataset, - updateUserDatasetDetail, - updateProjectFilter, - }; - const noDatasetsForThisProject = - userDatasets - .map((id) => userDatasetsById[id].resource.projects) - .flat() - .indexOf(projectId) === -1; - return _jsx( - 'div', - Object.assign( - { className: 'UserDatasetList-Controller' }, - { - children: _jsx( - 'div', - Object.assign( - { className: 'UserDatasetList-Content' }, - { - children: noDatasetsForThisProject - ? _jsx(NoDatasetsMessage, { - baseUrl: baseUrl, - hasDirectUpload: hasDirectUpload, - helpRoute: helpRoute, - }) - : _jsx(UserDatasetList, Object.assign({}, listProps)), - } - ) - ), - } - ) - ); - } -} -const enhance = connect( - (state) => ({ - globalData: state.globalData, - userDatasetList: state.userDatasetList, - userDatasetUpload: state.userDatasetUpload, - }), - ActionCreators, - (stateProps, dispatchProps, ownProps) => ({ - stateProps, - dispatchProps, - ownProps, - }) -); -export default withRouter(enhance(UserDatasetListController)); -//# sourceMappingURL=UserDatasetListController.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.js.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.js.map deleted file mode 100644 index 0409769d5e..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetListController.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetListController.js","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetListController.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.d.ts b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.d.ts deleted file mode 100644 index bb41a42048..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.d.ts +++ /dev/null @@ -1,14 +0,0 @@ -/// -import { DatasetUploadTypeConfigEntry } from '../Utils/types'; -interface Props { - baseUrl: string; - datasetUploadType: DatasetUploadTypeConfigEntry; - urlParams: Record; -} -export default function UserDatasetUploadController({ - baseUrl, - datasetUploadType, - urlParams, -}: Props): JSX.Element; -export {}; -//# sourceMappingURL=UserDatasetNewUploadController.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.d.ts.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.d.ts.map deleted file mode 100644 index 0a4168b77d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetNewUploadController.d.ts","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetNewUploadController.tsx"],"names":[],"mappings":";AAoBA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE9D,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,4BAA4B,CAAC,CAAC,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,CAAC,OAAO,UAAU,2BAA2B,CAAC,EAClD,OAAO,EACP,iBAAiB,EACjB,SAAS,GACV,EAAE,KAAK,eA+FP"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.js b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.js deleted file mode 100644 index 698a59f4d9..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.js +++ /dev/null @@ -1,147 +0,0 @@ -var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator['throw'](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -import { jsx as _jsx } from 'react/jsx-runtime'; -import { useCallback } from 'react'; -import { useDispatch, useSelector } from 'react-redux'; -import { Loading } from '@veupathdb/wdk-client/lib/Components'; -import { useWdkService } from '@veupathdb/wdk-client/lib/Hooks/WdkServiceHook'; -import { useSetDocumentTitle } from '@veupathdb/wdk-client/lib/Utils/ComponentUtils'; -import { - clearBadUpload, - submitUploadForm, -} from '../Actions/UserDatasetUploadActions'; -import UploadForm from '../Components/UploadForm'; -import { assertIsUserDatasetUploadCompatibleWdkService } from '../Service/UserDatasetUploadWrappers'; -export default function UserDatasetUploadController({ - baseUrl, - datasetUploadType, - urlParams, -}) { - var _a, _b; - useSetDocumentTitle(datasetUploadType.uploadTitle); - const projectId = useWdkService( - (wdkService) => wdkService.getConfig().then((config) => config.projectId), - [] - ); - const supportedFileUploadTypes = useWdkService( - (wdkService) => - __awaiter(this, void 0, void 0, function* () { - assertIsUserDatasetUploadCompatibleWdkService(wdkService); - if (projectId == null) { - return undefined; - } - return wdkService.getSupportedFileUploadTypes( - projectId, - datasetUploadType.type - ); - }), - [projectId, datasetUploadType.type] - ); - const strategyOptions = useWdkService( - (wdkService) => - __awaiter(this, void 0, void 0, function* () { - var _c; - if ( - !((_c = datasetUploadType.formConfig.uploadMethodConfig.result) === - null || _c === void 0 - ? void 0 - : _c.offerStrategyUpload) - ) { - return []; - } - const strategies = yield wdkService.getStrategies(); - const compatibleRecordTypeNames = new Set( - Object.keys( - datasetUploadType.formConfig.uploadMethodConfig.result - .compatibleRecordTypes - ) - ); - return strategies.filter( - (strategy) => - strategy.recordClassName != null && - compatibleRecordTypeNames.has(strategy.recordClassName) - ); - }), - [ - (_a = datasetUploadType.formConfig.uploadMethodConfig.result) === null || - _a === void 0 - ? void 0 - : _a.offerStrategyUpload, - ] - ); - const badUploadMessage = useSelector( - (stateSlice) => stateSlice.userDatasetUpload.badUploadMessage - ); - const dispatch = useDispatch(); - const clearBadUploadMessage = useCallback(() => { - dispatch(clearBadUpload); - }, [dispatch]); - const submitForm = useCallback( - (formSubmission, redirectTo) => { - dispatch(submitUploadForm(formSubmission, redirectTo)); - }, - [dispatch] - ); - return projectId == null || - supportedFileUploadTypes == null || - strategyOptions == null - ? _jsx(Loading, {}) - : _jsx( - 'div', - Object.assign( - { className: 'stack' }, - { - children: _jsx(UploadForm, { - baseUrl: baseUrl, - datasetUploadType: datasetUploadType, - projectId: projectId, - badUploadMessage: badUploadMessage, - clearBadUpload: clearBadUploadMessage, - submitForm: submitForm, - urlParams: urlParams, - strategyOptions: strategyOptions, - resultUploadConfig: - datasetUploadType.formConfig.uploadMethodConfig.result, - supportedFileUploadTypes: supportedFileUploadTypes, - maxSizeBytes: - (_b = datasetUploadType.formConfig.uploadMethodConfig.file) === - null || _b === void 0 - ? void 0 - : _b.maxSizeBytes, - }), - } - ) - ); -} -//# sourceMappingURL=UserDatasetNewUploadController.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.js.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.js.map deleted file mode 100644 index 209e64125b..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetNewUploadController.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetNewUploadController.js","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetNewUploadController.tsx"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.d.ts b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.d.ts deleted file mode 100644 index 98f9a27bff..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { ComponentType, ReactNode } from 'react'; -import { DatasetUploadTypeConfig, DataNoun } from '../Utils/types'; -import { UserDatasetDetailProps } from './UserDatasetDetailController'; -interface Props { - availableUploadTypes?: T1[]; - detailsPageTitle: string; - helpRoute: string; - uploadTypeConfig: DatasetUploadTypeConfig; - workspaceTitle: string; - helpTabContents?: ReactNode; - detailComponentsByTypeName?: Record< - string, - ComponentType - >; - dataNoun: DataNoun; -} -export declare function UserDatasetRouter< - T1 extends string, - T2 extends string ->({ - availableUploadTypes, - detailsPageTitle, - helpRoute, - uploadTypeConfig, - workspaceTitle, - helpTabContents, - detailComponentsByTypeName, - dataNoun, -}: Props): JSX.Element; -export {}; -//# sourceMappingURL=UserDatasetRouter.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.d.ts.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.d.ts.map deleted file mode 100644 index bec9398430..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetRouter.d.ts","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetRouter.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAS1D,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAoC,EAClC,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AAEvC,UAAU,KAAK,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EAAE,SAAS,MAAM,GAAG,MAAM;IACpE,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CACjC,MAAM,EACN,aAAa,CAAC,sBAAsB,CAAC,CACtC,CAAC;IACF,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,MAAM,EAAE,EACtE,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,0BAA0B,EAC1B,QAAQ,GACT,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,eAwDf"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.js b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.js deleted file mode 100644 index 0399e41d63..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.js +++ /dev/null @@ -1,69 +0,0 @@ -import { jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime'; -import { useMemo } from 'react'; -import { Switch, useRouteMatch } from 'react-router-dom'; -import WdkRoute from '@veupathdb/wdk-client/lib/Core/WdkRoute'; -import UserDatasetsWorkspace from '../Components/UserDatasetsWorkspace'; -import { makeDatasetUploadPageConfig } from '../Utils/upload-config'; -import UserDatasetDetailController from './UserDatasetDetailController'; -export function UserDatasetRouter({ - availableUploadTypes, - detailsPageTitle, - helpRoute, - uploadTypeConfig, - workspaceTitle, - helpTabContents, - detailComponentsByTypeName, - dataNoun, -}) { - const { path, url } = useRouteMatch(); - const uploadPageConfig = useMemo( - () => makeDatasetUploadPageConfig(availableUploadTypes, uploadTypeConfig), - [availableUploadTypes, uploadTypeConfig] - ); - return _jsxs(Switch, { - children: [ - _jsx(WdkRoute, { - path: `${path}/:id(\\d+)`, - requiresLogin: true, - component: (props) => { - return _jsx( - UserDatasetDetailController, - Object.assign( - { - baseUrl: url, - detailsPageTitle: detailsPageTitle, - workspaceTitle: workspaceTitle, - detailComponentsByTypeName: detailComponentsByTypeName, - dataNoun: dataNoun, - }, - props.match.params - ) - ); - }, - }), - _jsx(WdkRoute, { - path: path, - exact: false, - requiresLogin: false, - component: function UserDatasetsWorkspaceRoute(props) { - const urlParams = useMemo(() => { - const searchParamEntries = new URLSearchParams( - props.location.search - ).entries(); - return Object.fromEntries(searchParamEntries); - }, [props.location.search]); - return _jsx(UserDatasetsWorkspace, { - baseUrl: url, - helpRoute: helpRoute, - uploadPageConfig: uploadPageConfig, - urlParams: urlParams, - workspaceTitle: workspaceTitle, - helpTabContents: helpTabContents, - dataNoun: dataNoun, - }); - }, - }), - ], - }); -} -//# sourceMappingURL=UserDatasetRouter.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.js.map b/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.js.map deleted file mode 100644 index 035cb57b69..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Controllers/UserDatasetRouter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetRouter.js","sourceRoot":"","sources":["../../src/lib/Controllers/UserDatasetRouter.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA4B,OAAO,EAAE,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAuB,MAAM,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE9E,OAAO,QAAQ,MAAM,yCAAyC,CAAC;AAE/D,OAAO,qBAAqB,MAAM,qCAAqC,CAAC;AAExE,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAGrE,OAAO,2BAEN,MAAM,+BAA+B,CAAC;AAgBvC,MAAM,UAAU,iBAAiB,CAAuC,EACtE,oBAAoB,EACpB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,0BAA0B,EAC1B,QAAQ,GACM;IACd,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,aAAa,EAAE,CAAC;IAEtC,MAAM,gBAAgB,GAAG,OAAO,CAC9B,GAAG,EAAE,CAAC,2BAA2B,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,EACzE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CACzC,CAAC;IAEF,OAAO,CACL,MAAC,MAAM,eACL,KAAC,QAAQ,IACP,IAAI,EAAE,GAAG,IAAI,YAAY,EACzB,aAAa,QACb,SAAS,EAAE,CAAC,KAA0C,EAAE,EAAE;oBACxD,OAAO,CACL,KAAC,2BAA2B,kBAC1B,OAAO,EAAE,GAAG,EACZ,gBAAgB,EAAE,gBAAgB,EAClC,cAAc,EAAE,cAAc,EAC9B,0BAA0B,EAAE,0BAA0B,EACtD,QAAQ,EAAE,QAAQ,IACd,KAAK,CAAC,KAAK,CAAC,MAAM,EACtB,CACH,CAAC;gBACJ,CAAC,GACD,EACF,KAAC,QAAQ,IACP,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,KAAK,EACpB,SAAS,EAAE,SAAS,0BAA0B,CAC5C,KAA8B;oBAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;wBAC7B,MAAM,kBAAkB,GAAG,IAAI,eAAe,CAC5C,KAAK,CAAC,QAAQ,CAAC,MAAM,CACtB,CAAC,OAAO,EAAE,CAAC;wBAEZ,OAAO,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;oBAChD,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;oBAE5B,OAAO,CACL,KAAC,qBAAqB,IACpB,OAAO,EAAE,GAAG,EACZ,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;gBACJ,CAAC,GACD,IACK,CACV,CAAC;AACJ,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.d.ts b/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.d.ts deleted file mode 100644 index dea2d4c18b..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -/// -export declare function useProjectFilter(): readonly [ - boolean | undefined, - import('react').Dispatch> -]; -//# sourceMappingURL=project-filter.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.d.ts.map b/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.d.ts.map deleted file mode 100644 index 69cf46d5eb..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"project-filter.d.ts","sourceRoot":"","sources":["../../src/lib/Hooks/project-filter.ts"],"names":[],"mappings":";AAOA,wBAAgB,gBAAgB,kHAmC/B"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.js b/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.js deleted file mode 100644 index 5360ae0bf7..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.js +++ /dev/null @@ -1,71 +0,0 @@ -var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator['throw'](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -import { useState } from 'react'; -import { useWdkEffect } from '@veupathdb/wdk-client/lib/Service/WdkService'; -import { Task } from '@veupathdb/wdk-client/lib/Utils/Task'; -import { FILTER_BY_PROJECT_PREF } from '../Utils/project-filter'; -export function useProjectFilter() { - const [projectFilter, setProjectFilter] = useState(undefined); - useWdkEffect( - (wdkService) => - Task.fromPromise(() => - __awaiter(this, void 0, void 0, function* () { - try { - const currentUserPreferences = - yield wdkService.getCurrentUserPreferences(); - return ( - currentUserPreferences.global[FILTER_BY_PROJECT_PREF] !== 'false' - ); - } catch (_a) { - return false; - } - }) - ).run(setProjectFilter), - [] - ); - useWdkEffect( - (wdkService) => { - if (projectFilter != null) { - wdkService.patchSingleUserPreference( - 'global', - FILTER_BY_PROJECT_PREF, - String(projectFilter) - ); - } - }, - [projectFilter] - ); - return [projectFilter, setProjectFilter]; -} -//# sourceMappingURL=project-filter.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.js.map b/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.js.map deleted file mode 100644 index bfbbffd020..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Hooks/project-filter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"project-filter.js","sourceRoot":"","sources":["../../src/lib/Hooks/project-filter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,sCAAsC,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEjE,MAAM,UAAU,gBAAgB;IAC9B,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GACrC,QAAQ,CAAsB,SAAS,CAAC,CAAC;IAE3C,YAAY,CACV,CAAC,UAAU,EAAE,EAAE,CACb,IAAI,CAAC,WAAW,CAAC,GAAS,EAAE;QAC1B,IAAI;YACF,MAAM,sBAAsB,GAC1B,MAAM,UAAU,CAAC,yBAAyB,EAAE,CAAC;YAE/C,OAAO,CACL,sBAAsB,CAAC,MAAM,CAAC,sBAAsB,CAAC,KAAK,OAAO,CAClE,CAAC;SACH;QAAC,WAAM;YACN,OAAO,KAAK,CAAC;SACd;IACH,CAAC,CAAA,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAC1B,EAAE,CACH,CAAC;IAEF,YAAY,CACV,CAAC,UAAU,EAAE,EAAE;QACb,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,UAAU,CAAC,yBAAyB,CAClC,QAAQ,EACR,sBAAsB,EACtB,MAAM,CAAC,aAAa,CAAC,CACtB,CAAC;SACH;IACH,CAAC,EACD,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,OAAO,CAAC,aAAa,EAAE,gBAAgB,CAAU,CAAC;AACpD,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/README.adoc b/packages/libs/user-datasets-legacy/lib/README.adoc deleted file mode 100644 index 6c0ed6ad62..0000000000 --- a/packages/libs/user-datasets-legacy/lib/README.adoc +++ /dev/null @@ -1 +0,0 @@ -Your package-specific code goes here. By default, code in this directory will be accessible in the top-level `lib` directory when you publish to npm. diff --git a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.d.ts b/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.d.ts deleted file mode 100644 index 6dadba44e5..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { WdkService } from '@veupathdb/wdk-client/lib/Core'; -import { NewUserDataset, UserDatasetUpload } from '../Utils/types'; -export interface ServiceConfig { - datasetImportUrl: string; - fullWdkServiceUrl: string; -} -export type UserDatasetUploadCompatibleWdkService = WdkService & - { - [Key in keyof UserDatasetUploadServiceWrappers]: ReturnType< - UserDatasetUploadServiceWrappers[Key] - >; - }; -type UserDatasetUploadServiceWrappers = ReturnType< - typeof makeUserDatasetUploadServiceWrappers ->; -export declare const makeUserDatasetUploadServiceWrappers: ({ - datasetImportUrl, - fullWdkServiceUrl, -}: ServiceConfig) => { - datasetImportUrl: (wdkService: WdkService) => string; - addDataset: ( - wdkService: WdkService - ) => (newUserDataset: NewUserDataset) => Promise; - listStatusDetails: () => () => Promise; - cancelOngoingUpload: () => (jobId: string) => Promise; - clearMessages: () => (jobIds: string[]) => Promise; - getSupportedDatasetTypes: () => (projectId: string) => Promise; - getSupportedFileUploadTypes: () => ( - projectId: string, - datasetType: string - ) => Promise; -}; -export declare function isUserDatasetUploadCompatibleWdkService( - wdkService: WdkService -): wdkService is UserDatasetUploadCompatibleWdkService; -export declare function assertIsUserDatasetUploadCompatibleWdkService( - wdkService: WdkService -): asserts wdkService is UserDatasetUploadCompatibleWdkService; -export declare const MISCONFIGURED_USER_DATASET_UPLOAD_SERVICE_ERROR_MESSAGE = - 'In order to use this feature, a UserDatasetUploadCompatibleWdkService must be configured.'; -export {}; -//# sourceMappingURL=UserDatasetUploadWrappers.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.d.ts.map b/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.d.ts.map deleted file mode 100644 index b5583a9147..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetUploadWrappers.d.ts","sourceRoot":"","sources":["../../src/lib/Service/UserDatasetUploadWrappers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAI5D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,MAAM,qCAAqC,GAAG,UAAU,GAC5D;KACG,GAAG,IAAI,MAAM,gCAAgC,GAAG,UAAU,CACzD,gCAAgC,CAAC,GAAG,CAAC,CACtC;CACF,CAAC;AAEJ,KAAK,gCAAgC,GAAG,UAAU,CAChD,OAAO,oCAAoC,CAC5C,CAAC;AA0LF,eAAO,MAAM,oCAAoC,6CAG9C,aAAa;mCACyB,UAAU;6BAElC,UAAU,sBACA,cAAc,KAAG,QAAQ,IAAI,CAAC;mCA8D1B,QAAQ,iBAAiB,EAAE,CAAC;uCAa/C,MAAM,KAAG,QAAQ,IAAI,CAAC;kCAKrB,MAAM,EAAE,KAAG,QAAQ,IAAI,CAAC;gDAKS,MAAM;mDAW9B,MAAM,eAAe,MAAM;CAU/C,CAAC;AAEH,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,UAAU,GACrB,UAAU,IAAI,qCAAqC,CAErD;AAED,wBAAgB,6CAA6C,CAC3D,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,IAAI,qCAAqC,CAI7D;AAED,eAAO,MAAM,uDAAuD,8FACyB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.js b/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.js deleted file mode 100644 index cb4738fc04..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.js +++ /dev/null @@ -1,324 +0,0 @@ -var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator['throw'](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -var __rest = - (this && this.__rest) || - function (s, e) { - var t = {}; - for (var p in s) - if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === 'function') - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if ( - e.indexOf(p[i]) < 0 && - Object.prototype.propertyIsEnumerable.call(s, p[i]) - ) - t[p[i]] = s[p[i]]; - } - return t; - }; -import { partial } from 'lodash'; -import * as Decode from '@veupathdb/wdk-client/lib/Utils/Json'; -import { appendUrlAndRethrow } from '@veupathdb/wdk-client/lib/Service/ServiceUtils'; -/* - * The authentication method uses a header, not a cookie like in WDK - */ -function fetchWithCredentials(serviceUrl, path, method, body, contentType) { - return __awaiter(this, void 0, void 0, function* () { - const cookies = Object.fromEntries( - document.cookie - .split('; ') - .map((entry) => entry.split(/=(.*)/).slice(0, 2)) - ); - let authO; - if ('Authorization' in cookies) { - authO = { - Authorization: 'Bearer ' + cookies.Authorization, - }; - } else { - const authKeyValue = cookies.wdk_check_auth; - if (authKeyValue == null) { - throw new Error( - `Tried to retrieve a non-existent WDK auth key for user.` - ); - } - authO = { - 'Auth-Key': authKeyValue, - }; - } - const contentTypeO = - contentType != null ? { 'Content-Type': contentType } : {}; - return fetch(serviceUrl + path, { - method: method.toUpperCase(), - body: body, - credentials: 'include', - headers: new Headers(Object.assign({}, authO, contentTypeO)), - }).catch(appendUrlAndRethrow(serviceUrl + path)); - }); -} -/* - * The successful payload is decoded as a , failure is a text that is acceptable to display - * - * The service communicates failures in JSON, - * with 'message' and 'status' as keys - * See doc: /api#type:err.ErrorResponse - */ -function fetchDecodedJsonOrThrowMessage(serviceUrl, decoder, options) { - let { method, path, body } = options; - return fetchWithCredentials( - serviceUrl, - path, - method, - body, - 'application/json; charset=utf-8' - ) - .then((response) => - __awaiter(this, void 0, void 0, function* () { - const responseBody = yield response.json(); - if (response.ok) { - return responseBody; - } - const message = responseBody.message; - if (!message) { - throw new Error('Unexpected error: ' + response.status); - } - if (response.status !== 422) { - throw new Error( - 'Error type ' + responseBody.status + ': ' + responseBody.message - ); - } - let errorLines = []; - errorLines.push('Validation failed:'); - if (responseBody.errors.general && responseBody.errors.general.length) { - errorLines.push(...responseBody.errors.general); - } - errorLines.push( - Object.entries(responseBody.errors.byKey).map( - (p) => p[0] + ': ' + p[1] - ) - ); - throw errorLines.join('\n
\n'); - }) - ) - .then((responseBody) => { - const result = decoder(responseBody); - if (result.status === 'ok') return result.value; - let errorMessage = `Could not decode resource from ${options.path}:`; - if (result.context) { - errorMessage += `\n\n Problem at _${result.context}:`; - } - errorMessage += `\n\n Expected ${ - result.expected - }, but got ${JSON.stringify(result.value)}.`; - throw errorMessage; - }); -} -const statusDetailDecoder = Decode.combine( - Decode.field('id', Decode.string), - Decode.field('datasetId', Decode.optional(Decode.number)), - Decode.field('datasetName', Decode.string), - Decode.field('summary', Decode.string), - Decode.field('projects', Decode.arrayOf(Decode.string)), - Decode.field('status', Decode.string), - Decode.field( - 'statusDetails', - Decode.optional( - Decode.combine( - Decode.field( - 'errors', - Decode.optional( - Decode.combine( - Decode.field('general', Decode.arrayOf(Decode.string)), - Decode.field( - 'byKey', - Decode.objectOf(Decode.arrayOf(Decode.string)) - ) - ) - ) - ) - ) - ) - ), - Decode.field('stepPercent', Decode.optional(Decode.number)), - Decode.field('started', Decode.string), - Decode.field('finished', Decode.optional(Decode.string)) -); -function getErrorsFromStatusDetails(statusDetails) { - let errorLines = []; - if (statusDetails && statusDetails.errors && statusDetails.errors.general) { - for (let line of statusDetails.errors.general) { - errorLines.push(line); - } - } - if (statusDetails && statusDetails.errors && statusDetails.errors.byKey) { - for (let p of Object.entries(statusDetails.errors.byKey)) { - errorLines.push(p[0] + ': ' + p[1].join('; ')); - } - } - return errorLines; -} -function userDatasetUploadFromStatusDetail(upload) { - const { statusDetails } = upload, - restUpload = __rest(upload, ['statusDetails']); - return Object.assign(Object.assign({}, restUpload), { - errors: getErrorsFromStatusDetails(statusDetails), - // Could instead use utility functions and an enum for status values? - isOngoing: !upload.status.match(/success|rejected|errored/), - isCancellable: !!upload.status.match(/awaiting-upload/), - isSuccessful: !!upload.status.match(/success/), - isUserError: !!upload.status.match(/rejected/), - }); -} -function issueDeleteCommand(datasetImportUrl, jobId) { - return fetchWithCredentials( - datasetImportUrl, - '/user-datasets/' + jobId, - 'DELETE', - undefined, - 'text/plain;' - ).then((x) => {}); -} -const DATASET_IMPORT_URL_KEY = 'datasetImportUrl'; -export const makeUserDatasetUploadServiceWrappers = ({ - datasetImportUrl, - fullWdkServiceUrl, -}) => ({ - [DATASET_IMPORT_URL_KEY]: (wdkService) => datasetImportUrl, - addDataset: (wdkService) => (newUserDataset) => - __awaiter(void 0, void 0, void 0, function* () { - const metaBody = JSON.stringify({ - datasetName: newUserDataset.name, - datasetType: newUserDataset.datasetType, - description: newUserDataset.description, - summary: newUserDataset.summary, - projects: newUserDataset.projects, - origin: 'direct-upload', - }); - const fileBody = new FormData(); - const { uploadMethod } = newUserDataset; - if (uploadMethod.type === 'file') { - fileBody.append('uploadMethod', 'file'); - fileBody.append('file', uploadMethod.file); - } else if (uploadMethod.type === 'url') { - fileBody.append('uploadMethod', 'url'); - fileBody.append('url', uploadMethod.url); - } else if (newUserDataset.uploadMethod.type === 'result') { - const temporaryResultPath = yield wdkService.getTemporaryResultPath( - uploadMethod.stepId, - uploadMethod.reportName, - uploadMethod.reportConfig - ); - const temporaryResultUrl = `${fullWdkServiceUrl}${temporaryResultPath}`; - fileBody.append('uploadMethod', 'url'); - fileBody.append('url', temporaryResultUrl); - } else { - throw new Error( - `Tried to upload a dataset via an unrecognized upload method '${uploadMethod.type}'` - ); - } - return fetchDecodedJsonOrThrowMessage( - datasetImportUrl, - Decode.field('jobId', Decode.string), - { - path: '/user-datasets', - method: 'POST', - body: metaBody, - } - ).then(({ jobId }) => - fetchWithCredentials( - datasetImportUrl, - '/user-datasets/' + jobId, - 'POST', - fileBody - ).then((response) => { - if (!response.ok) { - return response.text().then((error) => { - throw error; - }); - } - return; - }) - ); - }), - listStatusDetails: () => () => { - return fetchDecodedJsonOrThrowMessage( - datasetImportUrl, - Decode.arrayOf(statusDetailDecoder), - { - path: '/user-datasets', - method: 'GET', - } - ).then((uploads) => uploads.map(userDatasetUploadFromStatusDetail)); - }, - // Currently only works for jobs whose status is awaiting-upload - cancelOngoingUpload: () => (jobId) => { - return issueDeleteCommand(datasetImportUrl, jobId); - }, - clearMessages: () => (jobIds) => { - return Promise.all( - jobIds.map(partial(issueDeleteCommand, datasetImportUrl)) - ).then((x) => {}); - }, - getSupportedDatasetTypes: () => (projectId) => { - return fetchDecodedJsonOrThrowMessage( - datasetImportUrl, - Decode.arrayOf(Decode.string), - { - path: `/projects/${projectId}/datasetTypes`, - method: 'GET', - } - ); - }, - getSupportedFileUploadTypes: () => (projectId, datasetType) => { - return fetchDecodedJsonOrThrowMessage( - datasetImportUrl, - Decode.arrayOf(Decode.string), - { - path: `/projects/${projectId}/datasetTypes/${datasetType}/fileTypes`, - method: 'GET', - } - ); - }, -}); -export function isUserDatasetUploadCompatibleWdkService(wdkService) { - return DATASET_IMPORT_URL_KEY in wdkService; -} -export function assertIsUserDatasetUploadCompatibleWdkService(wdkService) { - if (!isUserDatasetUploadCompatibleWdkService(wdkService)) { - throw new Error(MISCONFIGURED_USER_DATASET_UPLOAD_SERVICE_ERROR_MESSAGE); - } -} -export const MISCONFIGURED_USER_DATASET_UPLOAD_SERVICE_ERROR_MESSAGE = - 'In order to use this feature, a UserDatasetUploadCompatibleWdkService must be configured.'; -//# sourceMappingURL=UserDatasetUploadWrappers.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.js.map b/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.js.map deleted file mode 100644 index 30b87897f3..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetUploadWrappers.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetUploadWrappers.js","sourceRoot":"","sources":["../../src/lib/Service/UserDatasetUploadWrappers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.d.ts b/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.d.ts deleted file mode 100644 index a418b6944d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.d.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { WdkService } from '@veupathdb/wdk-client/lib/Core'; -import { EpicDependencies } from '@veupathdb/wdk-client/lib/Core/Store'; -import { ActionThunk } from '@veupathdb/wdk-client/lib/Core/WdkMiddleware'; -import { UserDataset, UserDatasetMeta } from '../Utils/types'; -export type UserDatasetsCompatibleWdkService = WdkService & - { - [Key in keyof UserDatasetsServiceWrappers]: ReturnType< - UserDatasetsServiceWrappers[Key] - >; - }; -export type UserDatasetShareResponse = { - [Key in 'add' | 'delete']: { - [Key in string]: UserDataset['sharedWith']; - }; -}; -type UserDatasetsServiceWrappers = typeof userDatasetsServiceWrappers; -export declare const userDatasetsServiceWrappers: { - getCurrentUserDatasets: ( - wdkService: WdkService - ) => () => Promise; - getUserDataset: ( - wdkService: WdkService - ) => (id: number) => Promise; - updateUserDataset: ( - wdkService: WdkService - ) => (id: number, meta: UserDatasetMeta) => Promise; - removeUserDataset: (wdkService: WdkService) => (id: number) => Promise; - editUserDatasetSharing: ( - wdkService: WdkService - ) => ( - actionName: string, - userDatasetIds: number[], - recipientUserIds: number[] - ) => Promise; - getUserDatasetDownloadUrl: ( - wdkService: WdkService - ) => (datasetId: number, filename: string) => string; - getUserIdsByEmail: (wdkService: WdkService) => (emails: string[]) => Promise<{ - results: Record[]; - }>; -}; -export declare function isUserDatasetsCompatibleWdkService( - wdkService: WdkService -): wdkService is UserDatasetsCompatibleWdkService; -export declare function assertIsUserDatasetCompatibleWdkService( - wdkService: WdkService -): asserts wdkService is UserDatasetsCompatibleWdkService; -export declare const MISCONFIGURED_USER_DATASET_SERVICE_ERROR_MESSAGE = - 'In order to use this feature, a UserDatasetsCompatibleWdkService must be configured.'; -export interface UserDatasetCompatibleEpicDependencies - extends EpicDependencies { - wdkService: UserDatasetsCompatibleWdkService; -} -export declare function validateUserDatasetCompatibleThunk( - thunk: ActionThunk -): ActionThunk; -export {}; -//# sourceMappingURL=UserDatasetWrappers.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.d.ts.map b/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.d.ts.map deleted file mode 100644 index 8656ad879f..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetWrappers.d.ts","sourceRoot":"","sources":["../../src/lib/Service/UserDatasetWrappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAO5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,8CAA8C,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,MAAM,gCAAgC,GAAG,UAAU,GACvD;KACG,GAAG,IAAI,MAAM,2BAA2B,GAAG,UAAU,CACpD,2BAA2B,CAAC,GAAG,CAAC,CACjC;CACF,CAAC;AAEJ,MAAM,MAAM,wBAAwB,GAAG;KACpC,GAAG,IAAI,KAAK,GAAG,QAAQ,GAAG;SACxB,GAAG,IAAI,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC;KAC3C;CACF,CAAC;AAEF,KAAK,2BAA2B,GAAG,OAAO,2BAA2B,CAAC;AAMtE,eAAO,MAAM,2BAA2B;yCACD,UAAU;iCAKlB,UAAU,UAAU,MAAM;oCAMxC,UAAU,UAAU,MAAM,QAAQ,eAAe;oCAMhC,UAAU,UAAU,MAAM;yCAG3C,UAAU,kBAET,MAAM,kBACF,MAAM,EAAE,oBACN,MAAM,EAAE;4CAyBf,UAAU,iBAAiB,MAAM,YAAY,MAAM;oCAYlC,UAAU,cAAc,MAAM,EAAE;;;CASjE,CAAC;AAEF,wBAAgB,kCAAkC,CAChD,UAAU,EAAE,UAAU,GACrB,UAAU,IAAI,gCAAgC,CAKhD;AAED,wBAAgB,uCAAuC,CACrD,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,UAAU,IAAI,gCAAgC,CAIxD;AAED,eAAO,MAAM,gDAAgD,yFAC2B,CAAC;AAEzF,MAAM,WAAW,qCACf,SAAQ,gBAAgB;IACxB,UAAU,EAAE,gCAAgC,CAAC;CAC9C;AAED,wBAAgB,kCAAkC,CAAC,CAAC,EAClD,KAAK,EAAE,WAAW,CAAC,CAAC,EAAE,qCAAqC,CAAC,GAC3D,WAAW,CAAC,CAAC,EAAE,qCAAqC,CAAC,CAMvD"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.js b/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.js deleted file mode 100644 index ae5944db1e..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.js +++ /dev/null @@ -1,90 +0,0 @@ -import { - arrayOf, - number, - objectOf, - record, -} from '@veupathdb/wdk-client/lib/Utils/Json'; -const userIdsByEmailDecoder = record({ - results: arrayOf(objectOf(number)), -}); -export const userDatasetsServiceWrappers = { - getCurrentUserDatasets: (wdkService) => () => - wdkService._fetchJson( - 'get', - '/users/current/user-datasets?expandDetails=true' - ), - getUserDataset: (wdkService) => (id) => - wdkService._fetchJson('get', `/users/current/user-datasets/${id}`), - updateUserDataset: (wdkService) => (id, meta) => - wdkService._fetchJson( - 'put', - `/users/current/user-datasets/${id}/meta`, - JSON.stringify(meta) - ), - removeUserDataset: (wdkService) => (id) => - wdkService._fetchJson('delete', `/users/current/user-datasets/${id}`), - editUserDatasetSharing: - (wdkService) => (actionName, userDatasetIds, recipientUserIds) => { - const acceptableActions = ['add', 'delete']; - if (!actionName || !acceptableActions.includes(actionName)) - throw new TypeError( - `editUserDatasetSharing: invalid action name given: "${actionName}"` - ); - const delta = JSON.stringify({ - [actionName]: userDatasetIds - .map((id) => `${id}`) - .reduce((output, datasetId) => { - Object.defineProperty(output, datasetId, { - value: recipientUserIds.map((id) => `${id}`), - enumerable: true, - }); - return output; - }, {}), - }); - return wdkService._fetchJson( - 'patch', - '/users/current/user-dataset-sharing', - delta - ); - }, - getUserDatasetDownloadUrl: (wdkService) => (datasetId, filename) => { - if (typeof datasetId !== 'number') - throw new TypeError( - `Can't build downloadUrl; invalid datasetId given (${datasetId}) [${typeof datasetId}]` - ); - if (typeof filename !== 'string') - throw new TypeError( - `Can't build downloadUrl; invalid filename given (${filename}) [${typeof filename}]` - ); - return `${wdkService.serviceUrl}/users/current/user-datasets/${datasetId}/user-datafiles/${filename}`; - }, - getUserIdsByEmail: (wdkService) => (emails) => { - return wdkService.sendRequest(userIdsByEmailDecoder, { - path: '/user-id-query', - method: 'POST', - body: JSON.stringify({ - emails, - }), - }); - }, -}; -export function isUserDatasetsCompatibleWdkService(wdkService) { - return Object.keys(userDatasetsServiceWrappers).every( - (userDatasetsServiceWrapperKey) => - userDatasetsServiceWrapperKey in wdkService - ); -} -export function assertIsUserDatasetCompatibleWdkService(wdkService) { - if (!isUserDatasetsCompatibleWdkService(wdkService)) { - throw new Error(MISCONFIGURED_USER_DATASET_SERVICE_ERROR_MESSAGE); - } -} -export const MISCONFIGURED_USER_DATASET_SERVICE_ERROR_MESSAGE = - 'In order to use this feature, a UserDatasetsCompatibleWdkService must be configured.'; -export function validateUserDatasetCompatibleThunk(thunk) { - return (wdkDependencies) => { - assertIsUserDatasetCompatibleWdkService(wdkDependencies.wdkService); - return thunk(wdkDependencies); - }; -} -//# sourceMappingURL=UserDatasetWrappers.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.js.map b/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.js.map deleted file mode 100644 index b3828d697b..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/UserDatasetWrappers.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetWrappers.js","sourceRoot":"","sources":["../../src/lib/Service/UserDatasetWrappers.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Service/index.d.ts b/packages/libs/user-datasets-legacy/lib/Service/index.d.ts deleted file mode 100644 index bbcd562e6e..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/index.d.ts +++ /dev/null @@ -1,594 +0,0 @@ -/// -/// -import { WdkService } from '@veupathdb/wdk-client/lib/Core'; -import { ServiceConfig as UserDatasetUploadServiceConfig } from './UserDatasetUploadWrappers'; -export declare function wrapWdkService( - serviceConfig: UserDatasetUploadServiceConfig | undefined, - wdkService: WdkService -): { - getCurrentUserDatasets: - | (() => Promise) - | ((id: number) => Promise) - | (( - id: number, - meta: import('../Utils/types').UserDatasetMeta - ) => Promise) - | (( - actionName: string, - userDatasetIds: number[], - recipientUserIds: number[] - ) => Promise) - | ((datasetId: number, filename: string) => string) - | ((emails: string[]) => Promise<{ - results: Record[]; - }>); - getUserDataset: - | (() => Promise) - | ((id: number) => Promise) - | (( - id: number, - meta: import('../Utils/types').UserDatasetMeta - ) => Promise) - | (( - actionName: string, - userDatasetIds: number[], - recipientUserIds: number[] - ) => Promise) - | ((datasetId: number, filename: string) => string) - | ((emails: string[]) => Promise<{ - results: Record[]; - }>); - updateUserDataset: - | (() => Promise) - | ((id: number) => Promise) - | (( - id: number, - meta: import('../Utils/types').UserDatasetMeta - ) => Promise) - | (( - actionName: string, - userDatasetIds: number[], - recipientUserIds: number[] - ) => Promise) - | ((datasetId: number, filename: string) => string) - | ((emails: string[]) => Promise<{ - results: Record[]; - }>); - removeUserDataset: - | (() => Promise) - | ((id: number) => Promise) - | (( - id: number, - meta: import('../Utils/types').UserDatasetMeta - ) => Promise) - | (( - actionName: string, - userDatasetIds: number[], - recipientUserIds: number[] - ) => Promise) - | ((datasetId: number, filename: string) => string) - | ((emails: string[]) => Promise<{ - results: Record[]; - }>); - editUserDatasetSharing: - | (() => Promise) - | ((id: number) => Promise) - | (( - id: number, - meta: import('../Utils/types').UserDatasetMeta - ) => Promise) - | (( - actionName: string, - userDatasetIds: number[], - recipientUserIds: number[] - ) => Promise) - | ((datasetId: number, filename: string) => string) - | ((emails: string[]) => Promise<{ - results: Record[]; - }>); - getUserDatasetDownloadUrl: - | (() => Promise) - | ((id: number) => Promise) - | (( - id: number, - meta: import('../Utils/types').UserDatasetMeta - ) => Promise) - | (( - actionName: string, - userDatasetIds: number[], - recipientUserIds: number[] - ) => Promise) - | ((datasetId: number, filename: string) => string) - | ((emails: string[]) => Promise<{ - results: Record[]; - }>); - getUserIdsByEmail: - | (() => Promise) - | ((id: number) => Promise) - | (( - id: number, - meta: import('../Utils/types').UserDatasetMeta - ) => Promise) - | (( - actionName: string, - userDatasetIds: number[], - recipientUserIds: number[] - ) => Promise) - | ((datasetId: number, filename: string) => string) - | ((emails: string[]) => Promise<{ - results: Record[]; - }>); - _version: number | undefined; - _fetchJson: ( - method: string, - url: string, - body?: string | undefined, - isBaseUrl?: boolean | undefined - ) => Promise; - _getFromCache: ( - key: string, - onCacheMiss: () => Promise, - checkCachedValue?: ((cachedValue: T_1) => boolean) | undefined - ) => Promise; - _clearCache: () => Promise; - serviceUrl: string; - sendRequest: ( - decoder: import('@veupathdb/wdk-client/lib/Utils/Json').Decoder, - options: { - method: string; - path: string; - params?: - | { - [key: string]: any; - } - | undefined; - body?: string | undefined; - useCache?: boolean | undefined; - cacheId?: string | undefined; - checkCachedValue?: ((resource: Resource) => boolean) | undefined; - } - ) => Promise; - submitError: (error: Error, extra?: any) => Promise; - submitErrorIfNot500: (error: Error, extra?: any) => Promise; - submitErrorIfUndelayedAndNot500: (error: Error, extra?: any) => Promise; - getConfig: () => Promise< - import('@veupathdb/wdk-client/lib/Service/ServiceBase').ServiceConfig - >; - getVersion: () => Promise; - getRecordClasses: (() => Promise< - ({ - description: string; - iconName?: string | undefined; - displayName: string; - properties?: Record | undefined; - fullName: string; - urlSegment: string; - displayNamePlural: string; - shortDisplayName: string; - shortDisplayNamePlural: string; - recordIdAttributeName: string; - primaryKeyColumnRefs: string[]; - attributes: import('@veupathdb/wdk-client/lib/Utils/WdkModel').AttributeField[]; - tables: import('@veupathdb/wdk-client/lib/Utils/WdkModel').TableField[]; - formats: import('@veupathdb/wdk-client/lib/Utils/WdkModel').Reporter[]; - useBasket: boolean; - searches: import('@veupathdb/wdk-client/lib/Utils/WdkModel').Question[]; - } & { - attributesMap: import('lodash').Dictionary< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').AttributeField - >; - tablesMap: import('lodash').Dictionary< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').TableField - >; - })[] - >) & - import('lodash').MemoizedFunction; - findRecordClass: (urlSegment: string) => Promise< - { - description: string; - iconName?: string | undefined; - displayName: string; - properties?: Record | undefined; - fullName: string; - urlSegment: string; - displayNamePlural: string; - shortDisplayName: string; - shortDisplayNamePlural: string; - recordIdAttributeName: string; - primaryKeyColumnRefs: string[]; - attributes: import('@veupathdb/wdk-client/lib/Utils/WdkModel').AttributeField[]; - tables: import('@veupathdb/wdk-client/lib/Utils/WdkModel').TableField[]; - formats: import('@veupathdb/wdk-client/lib/Utils/WdkModel').Reporter[]; - useBasket: boolean; - searches: import('@veupathdb/wdk-client/lib/Utils/WdkModel').Question[]; - } & { - attributesMap: import('lodash').Dictionary< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').AttributeField - >; - tablesMap: import('lodash').Dictionary< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').TableField - >; - } - >; - getQuestions: () => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').Question[] - >; - findQuestion: ( - urlSegment: string - ) => Promise; - getRecordTypePath: (recordClassUrlSegment: string) => string; - getRecordTypesPath: () => string; - getReportsEndpoint: ( - recordClassUrlSegment: string, - questionUrlSegment: string - ) => string; - getReportsPath: ( - recordClassUrlSegment: string, - questionUrlSegment: string - ) => string; - getSearchesPath: (recordClassUrlSegment: string) => string; - getSearchPath: ( - recordClassUrlSegment: string, - questionUrlSegment: string - ) => string; - getStandardSearchReportEndpoint: ( - recordClassUrlSegment: string, - questionUrlSegment: string - ) => string; - getCustomSearchReportEndpoint: ( - recordClassUrlSegment: string, - questionUrlSegment: string, - reportName: string - ) => string; - getXmlAnswerJson: (xmlQuestionName: string) => Promise; - getCurrentUser: ( - options?: - | { - force?: boolean | undefined; - } - | undefined - ) => Promise; - createNewUser: ( - userWithPrefs: import('@veupathdb/wdk-client/lib/Utils/WdkUser').UserWithPrefs - ) => Promise; - updateCurrentUser: ( - user: import('@veupathdb/wdk-client/lib/Utils/WdkUser').User - ) => Promise; - updateCurrentUserPassword: ( - oldPassword: string, - newPassword: string - ) => Promise; - resetUserPassword: (email: string) => Promise; - getCurrentUserPreferences: () => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkUser').UserPreferences - >; - patchSingleUserPreference: ( - scope: import('@veupathdb/wdk-client/lib/Utils/WdkUser').PreferenceScope, - key: string, - value: string | null - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkUser').UserPreferences - >; - patchScopedUserPreferences: ( - scope: import('@veupathdb/wdk-client/lib/Utils/WdkUser').PreferenceScope, - updates: Record - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkUser').UserPreferences - >; - patchUserPreferences: ( - updates: import('@veupathdb/wdk-client/lib/Utils/WdkUser').UserPreferences - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkUser').UserPreferences - >; - createTemporaryFile: (file: File) => Promise; - getPublicStrategies: ( - queryParams?: - | { - userEmail: string | string[] | undefined; - } - | undefined - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkUser').StrategySummary[] - >; - getStrategies: () => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkUser').StrategySummary[] - >; - createStrategy: ( - newStrategySpec: import('@veupathdb/wdk-client/lib/Utils/WdkUser').NewStrategySpec, - userId?: string | undefined - ) => Promise; - duplicateStrategy: ( - copyStepSpec: import('@veupathdb/wdk-client/lib/Utils/WdkUser').DuplicateStrategySpec, - userId?: string | undefined - ) => Promise; - deleteStrategies: ( - deleteStrategiesSpecs: import('@veupathdb/wdk-client/lib/Utils/WdkUser').DeleteStrategySpec[], - userId?: string | undefined - ) => Promise; - getStrategy: ( - strategyId: number, - userId?: string | undefined - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkUser').StrategyDetails - >; - deleteStrategy: ( - strategyId: number, - userId?: string | undefined - ) => Promise; - patchStrategyProperties: ( - strategyId: number, - strategyProperties: Partial< - import('@veupathdb/wdk-client/lib/Service/Mixins/StrategiesService').PatchOptions - >, - userId?: string | undefined - ) => Promise; - putStrategyStepTree: ( - strategyId: number, - newStepTree: import('@veupathdb/wdk-client/lib/Utils/WdkUser').StepTree, - userId?: string | undefined - ) => Promise; - getDuplicatedStrategyStepTree: ( - strategyId: number, - userId?: string | undefined - ) => Promise; - findStep: ( - stepId: number, - userId?: string | undefined - ) => Promise; - updateStepProperties: ( - stepId: number, - stepSpec: import('@veupathdb/wdk-client/lib/Utils/WdkUser').PatchStepSpec, - userId?: string | undefined - ) => Promise; - createStep: ( - newStepSpec: import('@veupathdb/wdk-client/lib/Utils/WdkUser').NewStepSpec, - userId?: string | undefined - ) => Promise; - getStepCustomReport: ( - stepId: number, - formatting: import('@veupathdb/wdk-client/lib/Service/Mixins/SearchReportsService').AnswerFormatting, - userId?: string | undefined - ) => Promise; - getStepStandardReport: ( - stepId: number, - reportConfig: import('@veupathdb/wdk-client/lib/Utils/WdkModel').StandardReportConfig, - viewFilters: - | import('@veupathdb/wdk-client/lib/Utils/WdkModel').FilterValueArray - | undefined, - userId?: string | undefined - ) => Promise; - getStepColumnReport: ( - stepId: number, - columnName: string, - toolName: string, - reportConfig: object, - userId?: string | undefined - ) => Promise; - getStepFilterSummary: ( - decoder: import('@veupathdb/wdk-client/lib/Utils/Json').Decoder, - stepId: number, - filterName: string, - userId?: string | undefined - ) => Promise; - deleteStep: (stepId: number, userId?: string | undefined) => void; - updateStepSearchConfig: ( - stepId: number, - answerSpec: import('@veupathdb/wdk-client/lib/Utils/WdkModel').SearchConfig, - userId?: string | undefined - ) => Promise; - downloadStepReport: ( - stepId: number, - formatting: import('@veupathdb/wdk-client/lib/Service/Mixins/SearchReportsService').AnswerFormatting, - target?: string | undefined, - userId?: string | undefined - ) => Promise; - createStepAnalysis: ( - stepId: number, - baseAnalysisConfig: { - analysisName: string; - displayName?: string | undefined; - parameters: import('@veupathdb/wdk-client/lib/Utils/WdkModel').ParameterValues; - } - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/StepAnalysisUtils').StepAnalysisConfig - >; - deleteStepAnalysis: (stepId: number, analysisId: number) => Promise; - getAppliedStepAnalyses: ( - stepId: number - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/StepAnalysisUtils').StepAnalysis[] - >; - getStepAnalysis: ( - stepId: number, - analysisId: number - ) => Promise< - import('@veupathdb/wdk-client/lib/Service/Mixins/StepAnalysisService').StepAnalysisConfigWithDisplayParams - >; - getStepAnalysisResult: (stepId: number, analysisId: number) => Promise; - getStepAnalysisStatus: ( - stepId: number, - analysisId: number - ) => Promise<{ - status: import('@veupathdb/wdk-client/lib/Utils/StepAnalysisUtils').StepAnalysisStatus; - }>; - getStepAnalysisTypeParamSpecs: ( - stepId: number, - analysisTypeName: string - ) => Promise; - getStepAnalysisTypes: ( - stepId: number - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/StepAnalysisUtils').StepAnalysisType[] - >; - renameStepAnalysis: ( - stepId: number, - analysisId: number, - displayName: string - ) => Promise; - runStepAnalysis: ( - stepId: number, - analysisId: number - ) => Promise<{ - status: import('@veupathdb/wdk-client/lib/Utils/StepAnalysisUtils').StepAnalysisStatus; - }>; - updateStepAnalysisForm: ( - stepId: number, - analysisId: number, - formParams: import('@veupathdb/wdk-client/lib/Utils/WdkModel').ParameterValues - ) => Promise; - getCustomSearchReportRequestInfo: ( - answerSpec: import('@veupathdb/wdk-client/lib/Utils/WdkModel').AnswerSpec, - formatting: import('@veupathdb/wdk-client/lib/Service/Mixins/SearchReportsService').AnswerFormatting - ) => Promise< - import('@veupathdb/wdk-client/lib/Service/Mixins/SearchReportsService').CustomSearchReportRequestInfo - >; - getAnswer: ( - answerSpec: import('@veupathdb/wdk-client/lib/Utils/WdkModel').AnswerSpec, - formatting: import('@veupathdb/wdk-client/lib/Service/Mixins/SearchReportsService').AnswerFormatting - ) => Promise; - getAnswerJson: ( - answerSpec: import('@veupathdb/wdk-client/lib/Utils/WdkModel').AnswerSpec, - reportConfig: import('@veupathdb/wdk-client/lib/Utils/WdkModel').StandardReportConfig, - viewFilters?: - | import('@veupathdb/wdk-client/lib/Utils/WdkModel').FilterValueArray - | undefined - ) => Promise; - getTemporaryResultPath: ( - answerSpecOrStepId: - | number - | import('@veupathdb/wdk-client/lib/Utils/WdkModel').AnswerSpec, - reportName: string, - reportConfig: unknown - ) => Promise; - downloadAnswer: ( - answerRequest: import('@veupathdb/wdk-client/lib/Service/Mixins/SearchReportsService').AnswerRequest, - target?: string | undefined - ) => Promise; - getQuestionAndParameters: ( - questionUrlSegment: string - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').QuestionWithParameters - >; - getQuestionGivenParameters: ( - questionUrlSegment: string, - paramValues: import('@veupathdb/wdk-client/lib/Utils/WdkModel').ParameterValues - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').QuestionWithParameters - >; - getRefreshedDependentParams: ( - questionUrlSegment: string, - paramName: string, - paramValue: string, - paramValues: import('@veupathdb/wdk-client/lib/Utils/WdkModel').ParameterValues - ) => Promise; - getOntologyTermSummary: ( - questionUrlSegment: string, - paramName: string, - filters: any, - ontologyId: string, - paramValues: import('@veupathdb/wdk-client/lib/Utils/WdkModel').ParameterValues - ) => Promise< - import('@veupathdb/wdk-client/lib/Components/AttributeFilter/Types').OntologyTermSummary - >; - getFilterParamSummaryCounts: ( - questionUrlSegment: string, - paramName: string, - filters: any, - paramValues: import('@veupathdb/wdk-client/lib/Utils/WdkModel').ParameterValues - ) => Promise<{ - filtered: number; - unfiltered: number; - nativeFiltered: number; - nativeUnfiltered: number; - }>; - getOntology: ( - name: string - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/CategoryUtils').CategoryOntology - >; - getCategoriesOntology: () => Promise< - import('@veupathdb/wdk-client/lib/Utils/CategoryUtils').CategoryOntology - >; - tryLogin: ( - email: string, - password: string, - redirectUrl: string - ) => Promise< - import('@veupathdb/wdk-client/lib/Service/Mixins/LoginService').TryLoginResponse - >; - logout: () => Promise; - getOauthStateToken: () => Promise<{ - oauthStateToken: string; - }>; - getFavoriteId: ( - recordId: import('@veupathdb/wdk-client/lib/Utils/WdkModel').PrimaryKey, - recordClassUrlSegment: string - ) => Promise; - addFavorite: ( - recordId: import('@veupathdb/wdk-client/lib/Utils/WdkModel').PrimaryKey, - recordClassUrlSegment: string - ) => Promise; - deleteFavorite: (id: number) => Promise; - deleteFavorites: (ids: number[]) => Promise; - getCurrentFavorites: () => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').Favorite[] - >; - saveFavorite: ( - favorite: import('@veupathdb/wdk-client/lib/Utils/WdkModel').Favorite - ) => Promise; - undeleteFavorites: (ids: number[]) => Promise; - getRecord: ( - recordClassUrlSegment: string, - primaryKey: import('@veupathdb/wdk-client/lib/Utils/WdkModel').PrimaryKey, - options?: - | { - attributes?: string[] | undefined; - tables?: string[] | undefined; - } - | undefined - ) => Promise< - import('@veupathdb/wdk-client/lib/Utils/WdkModel').RecordInstance - >; - createDataset: ( - config: import('@veupathdb/wdk-client/lib/Service/Mixins/DatasetsService').DatasetConfig - ) => Promise; - getDataset: (id: number) => Promise<(string | null)[][]>; - getBasketCounts: () => Promise<{ - [recordClassName: string]: number; - }>; - getBasketStatus: ( - recordClassUrlSegment: string, - records: import('@veupathdb/wdk-client/lib/Utils/WdkModel').RecordInstance[] - ) => Promise; - getBasketStatusPk: ( - recordClassUrlSegment: string, - records: import('@veupathdb/wdk-client/lib/Utils/WdkModel').PrimaryKey[] - ) => Promise; - updateRecordsBasketStatus: ( - operation: import('@veupathdb/wdk-client/lib/Service/Mixins/BasketsService').BasketPatchIdsOperation, - recordClassUrlSegment: string, - primaryKey: import('@veupathdb/wdk-client/lib/Utils/WdkModel').PrimaryKey[] - ) => Promise; - clearBasket: (recordClassUrlSegment: string) => Promise; - addStepToBasket: ( - recordClassUrlSegment: string, - stepId: number - ) => Promise; - getBasketCustomReport: ( - basketName: string, - formatting: import('@veupathdb/wdk-client/lib/Service/Mixins/SearchReportsService').AnswerFormatting - ) => Promise; - getBasketStandardReport: ( - basketName: string, - reportConfig: import('@veupathdb/wdk-client/lib/Utils/WdkModel').StandardReportConfig, - viewFilters?: - | import('@veupathdb/wdk-client/lib/Utils/WdkModel').FilterValueArray - | undefined - ) => Promise; - downloadBasketReport: ( - basketName: string, - formatting: import('@veupathdb/wdk-client/lib/Service/Mixins/SearchReportsService').AnswerFormatting, - target?: string | undefined - ) => Promise; -}; -//# sourceMappingURL=index.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Service/index.d.ts.map b/packages/libs/user-datasets-legacy/lib/Service/index.d.ts.map deleted file mode 100644 index 1d59dbaa9d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/Service/index.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAG5D,OAAO,EACL,aAAa,IAAI,8BAA8B,EAEhD,MAAM,6BAA6B,CAAC;AAErC,wBAAgB,cAAc,CAC5B,aAAa,EAAE,8BAA8B,GAAG,SAAS,EACzD,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvB"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Service/index.js b/packages/libs/user-datasets-legacy/lib/Service/index.js deleted file mode 100644 index 64c9a62580..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/index.js +++ /dev/null @@ -1,19 +0,0 @@ -import { mapValues } from 'lodash'; -import { userDatasetsServiceWrappers } from './UserDatasetWrappers'; -import { makeUserDatasetUploadServiceWrappers } from './UserDatasetUploadWrappers'; -export function wrapWdkService(serviceConfig, wdkService) { - const wrappersToInclude = - serviceConfig == null - ? userDatasetsServiceWrappers - : Object.assign( - Object.assign({}, userDatasetsServiceWrappers), - makeUserDatasetUploadServiceWrappers(serviceConfig) - ); - return Object.assign( - Object.assign({}, wdkService), - mapValues(wrappersToInclude, (wdkServiceWrapper) => - wdkServiceWrapper(wdkService) - ) - ); -} -//# sourceMappingURL=index.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Service/index.js.map b/packages/libs/user-datasets-legacy/lib/Service/index.js.map deleted file mode 100644 index 160b8370db..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Service/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/Service/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAInC,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAEL,oCAAoC,GACrC,MAAM,6BAA6B,CAAC;AAErC,MAAM,UAAU,cAAc,CAC5B,aAAyD,EACzD,UAAsB;IAEtB,MAAM,iBAAiB,GACrB,aAAa,IAAI,IAAI;QACnB,CAAC,CAAC,2BAA2B;QAC7B,CAAC,iCACM,2BAA2B,GAC3B,oCAAoC,CAAC,aAAa,CAAC,CACvD,CAAC;IAER,uCACK,UAAU,GACV,SAAS,CAAC,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,EAAE,CACpD,iBAAiB,CAAC,UAAU,CAAC,CAC9B,EACD;AACJ,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.d.ts b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.d.ts deleted file mode 100644 index 8c942242ae..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { ServiceError } from '@veupathdb/wdk-client/lib/Service/ServiceError'; -import { Action } from '../Actions/UserDatasetsActions'; -import { UserDataset } from '../Utils/types'; -export declare const key = 'userDatasetDetail'; -/** - * If isLoading is false, and resource is undefined, - * then assume the user dataset does not exist - */ -export type UserDatasetEntry = { - isLoading: boolean; - resource?: UserDataset; -}; -export interface State { - userDatasetsById: { - [key: string]: UserDatasetEntry; - }; - userDatasetUpdating: boolean; - userDatasetLoading: boolean; - userDatasetRemoving: boolean; - loadError?: ServiceError; - updateError?: ServiceError; - removalError?: ServiceError; -} -/** - * Stores a map of userDatasets by id. By not storing the current userDataset, - * we avoid race conditions where the DATASET_DETAIL_RECEIVED actions are - * dispatched in a different order than the corresponding action creators are - * invoked. - */ -export declare function reduce(state: State | undefined, action: Action): State; -//# sourceMappingURL=UserDatasetDetailStoreModule.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.d.ts.map b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.d.ts.map deleted file mode 100644 index db8f7df850..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetDetailStoreModule.d.ts","sourceRoot":"","sources":["../../src/lib/StoreModules/UserDatasetDetailStoreModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gDAAgD,CAAC;AAC9E,OAAO,EACL,MAAM,EAWP,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,eAAO,MAAM,GAAG,sBAAsB,CAAC;AAEvC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,KAAK;IACpB,gBAAgB,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,gBAAgB,CAAA;KAAE,CAAC;IACtD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AASD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,KAAK,mBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAyFzE"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.js b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.js deleted file mode 100644 index b270ca2380..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.js +++ /dev/null @@ -1,103 +0,0 @@ -import { - DETAIL_LOADING, - DETAIL_RECEIVED, - DETAIL_ERROR, - DETAIL_UPDATING, - DETAIL_UPDATE_SUCCESS, - DETAIL_UPDATE_ERROR, - DETAIL_REMOVING, - DETAIL_REMOVE_SUCCESS, - DETAIL_REMOVE_ERROR, - SHARING_SUCCESS, -} from '../Actions/UserDatasetsActions'; -import sharingReducer from '../Components/Sharing/UserDatasetSharingReducer'; -export const key = 'userDatasetDetail'; -const initialState = { - userDatasetsById: {}, - userDatasetLoading: false, - userDatasetUpdating: false, - userDatasetRemoving: false, -}; -/** - * Stores a map of userDatasets by id. By not storing the current userDataset, - * we avoid race conditions where the DATASET_DETAIL_RECEIVED actions are - * dispatched in a different order than the corresponding action creators are - * invoked. - */ -export function reduce(state = initialState, action) { - switch (action.type) { - case DETAIL_LOADING: - return Object.assign(Object.assign({}, state), { - userDatasetsById: Object.assign( - Object.assign({}, state.userDatasetsById), - { - [action.payload.id]: { - isLoading: true, - }, - } - ), - }); - case DETAIL_RECEIVED: - return Object.assign(Object.assign({}, state), { - userDatasetLoading: false, - userDatasetsById: Object.assign( - Object.assign({}, state.userDatasetsById), - { - [action.payload.id]: { - isLoading: false, - resource: action.payload.userDataset, - }, - } - ), - }); - case DETAIL_ERROR: - return Object.assign(Object.assign({}, state), { - userDatasetLoading: false, - loadError: action.payload.error, - }); - case DETAIL_UPDATING: - return Object.assign(Object.assign({}, state), { - userDatasetUpdating: true, - updateError: undefined, - }); - case DETAIL_UPDATE_SUCCESS: - return Object.assign(Object.assign({}, state), { - userDatasetUpdating: false, - userDatasetsById: Object.assign( - Object.assign({}, state.userDatasetsById), - { - [action.payload.userDataset.id]: { - isLoading: false, - resource: action.payload.userDataset, - }, - } - ), - }); - case DETAIL_UPDATE_ERROR: - return Object.assign(Object.assign({}, state), { - userDatasetUpdating: false, - updateError: action.payload.error, - }); - case DETAIL_REMOVING: - return Object.assign(Object.assign({}, state), { - userDatasetRemoving: true, - }); - case DETAIL_REMOVE_SUCCESS: - return Object.assign(Object.assign({}, state), { - userDatasetRemoving: false, - removalError: undefined, - }); - case DETAIL_REMOVE_ERROR: - return Object.assign(Object.assign({}, state), { - userDatasetRemoving: false, - removalError: action.payload.error, - }); - case SHARING_SUCCESS: - return Object.assign(Object.assign({}, state), { - userDatasetsById: sharingReducer(state.userDatasetsById, action), - }); - default: - return state; - } -} -//# sourceMappingURL=UserDatasetDetailStoreModule.js.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.js.map b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.js.map deleted file mode 100644 index 32f3555cbf..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetDetailStoreModule.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetDetailStoreModule.js","sourceRoot":"","sources":["../../src/lib/StoreModules/UserDatasetDetailStoreModule.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,cAAc,EACd,eAAe,EACf,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,GAChB,MAAM,gCAAgC,CAAC;AAExC,OAAO,cAAc,MAAM,iDAAiD,CAAC;AAI7E,MAAM,CAAC,MAAM,GAAG,GAAG,mBAAmB,CAAC;AAqBvC,MAAM,YAAY,GAAU;IAC1B,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,MAAM,CAAC,QAAe,YAAY,EAAE,MAAc;IAChE,QAAQ,MAAM,CAAC,IAAI,EAAE;QACnB,KAAK,cAAc;YACjB,uCACK,KAAK,KACR,gBAAgB,kCACX,KAAK,CAAC,gBAAgB,KACzB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACnB,SAAS,EAAE,IAAI;qBAChB,OAEH;QAEJ,KAAK,eAAe;YAClB,uCACK,KAAK,KACR,kBAAkB,EAAE,KAAK,EACzB,gBAAgB,kCACX,KAAK,CAAC,gBAAgB,KACzB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACnB,SAAS,EAAE,KAAK;wBAChB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;qBACrC,OAEH;QAEJ,KAAK,YAAY;YACf,uCACK,KAAK,KACR,kBAAkB,EAAE,KAAK,EACzB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAC/B;QAEJ,KAAK,eAAe;YAClB,uCACK,KAAK,KACR,mBAAmB,EAAE,IAAI,EACzB,WAAW,EAAE,SAAS,IACtB;QAEJ,KAAK,qBAAqB;YACxB,uCACK,KAAK,KACR,mBAAmB,EAAE,KAAK,EAC1B,gBAAgB,kCACX,KAAK,CAAC,gBAAgB,KACzB,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;wBAC/B,SAAS,EAAE,KAAK;wBAChB,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,WAAW;qBACrC,OAEH;QAEJ,KAAK,mBAAmB;YACtB,uCACK,KAAK,KACR,mBAAmB,EAAE,KAAK,EAC1B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IACjC;QAEJ,KAAK,eAAe;YAClB,uCACK,KAAK,KACR,mBAAmB,EAAE,IAAI,IACzB;QAEJ,KAAK,qBAAqB;YACxB,uCACK,KAAK,KACR,mBAAmB,EAAE,KAAK,EAC1B,YAAY,EAAE,SAAS,IACvB;QAEJ,KAAK,mBAAmB;YACtB,uCACK,KAAK,KACR,mBAAmB,EAAE,KAAK,EAC1B,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAClC;QAEJ,KAAK,eAAe;YAClB,uCACK,KAAK,KACR,gBAAgB,EAAE,cAAc,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAChE;QAEJ;YACE,OAAO,KAAK,CAAC;KAChB;AACH,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.d.ts b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.d.ts deleted file mode 100644 index d85baefcca..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Action } from '../Actions/UserDatasetsActions'; -import { UserDataset } from '../Utils/types'; -export declare const key = 'userDatasetList'; -type InitialState = { - status: 'not-requested'; -}; -type LoadingState = { - status: 'loading'; -}; -type ErrorState = { - status: 'error'; - loadError: Error; -}; -type ForbiddenState = { - status: 'forbidden'; - loadError: Error; -}; -type CompleteState = { - status: 'complete'; - userDatasets: number[]; - userDatasetsById: Record< - string, - { - isLoading: false; - resource: UserDataset; - } - >; - filterByProject: boolean; -}; -export type State = - | InitialState - | LoadingState - | ErrorState - | ForbiddenState - | CompleteState; -export declare function reduce(state: State | undefined, action: Action): State; -export {}; -//# sourceMappingURL=UserDatasetListStoreModule.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.d.ts.map b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.d.ts.map deleted file mode 100644 index c7636c9db8..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetListStoreModule.d.ts","sourceRoot":"","sources":["../../src/lib/StoreModules/UserDatasetListStoreModule.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,MAAM,EAQP,MAAM,gCAAgC,CAAC;AAIxC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,eAAO,MAAM,GAAG,oBAAoB,CAAC;AAErC,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,WAAW,CAAA;KAAE,CAAC,CAAC;IAC9E,eAAe,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,KAAK,GACb,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,cAAc,GACd,aAAa,CAAC;AAMlB,wBAAgB,MAAM,CAAC,KAAK,mBAAsB,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAqFzE"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.js b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.js deleted file mode 100644 index be4cfae316..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.js +++ /dev/null @@ -1,88 +0,0 @@ -import { difference } from 'lodash'; -import { - LIST_LOADING, - LIST_RECEIVED, - LIST_ERROR_RECEIVED, - DETAIL_UPDATE_SUCCESS, - DETAIL_REMOVE_SUCCESS, - SHARING_SUCCESS, - PROJECT_FILTER, -} from '../Actions/UserDatasetsActions'; -import sharingReducer from '../Components/Sharing/UserDatasetSharingReducer'; -export const key = 'userDatasetList'; -const initialState = { - status: 'not-requested', -}; -export function reduce(state = initialState, action) { - switch (action.type) { - case LIST_LOADING: - return { - status: 'loading', - }; - case LIST_RECEIVED: - return { - status: 'complete', - filterByProject: action.payload.filterByProject, - userDatasets: action.payload.userDatasets.map((ud) => ud.id), - userDatasetsById: action.payload.userDatasets.reduce( - (uds, ud) => - Object.assign(uds, { [ud.id]: { loading: false, resource: ud } }), - {} - ), - }; - case LIST_ERROR_RECEIVED: - return action.payload.error.status === 403 - ? { - status: 'forbidden', - loadError: action.payload.error, - } - : { - status: 'error', - loadError: action.payload.error, - }; - case DETAIL_UPDATE_SUCCESS: - return state.status === 'complete' - ? Object.assign(Object.assign({}, state), { - userDatasetsById: Object.assign( - Object.assign({}, state.userDatasetsById), - { - [action.payload.userDataset.id]: { - isLoading: false, - resource: action.payload.userDataset, - }, - } - ), - }) - : state; - case DETAIL_REMOVE_SUCCESS: - return state.status === 'complete' - ? Object.assign(Object.assign({}, state), { - userDatasets: difference(state.userDatasets, [ - action.payload.userDataset.id, - ]), - userDatasetsById: Object.assign( - Object.assign({}, state.userDatasetsById), - { [action.payload.userDataset.id]: undefined } - ), - }) - : state; - case SHARING_SUCCESS: { - if (state.status === 'complete') { - const userDatasetsById = sharingReducer(state.userDatasetsById, action); - return Object.assign(Object.assign({}, state), { userDatasetsById }); - } - return state; - } - case PROJECT_FILTER: { - if (state.status === 'complete') { - return Object.assign(Object.assign({}, state), { - filterByProject: action.payload.filterByProject, - }); - } - return state; - } - default: - return state; - } -} -//# sourceMappingURL=UserDatasetListStoreModule.js.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.js.map b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.js.map deleted file mode 100644 index 9c59df221d..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetListStoreModule.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetListStoreModule.js","sourceRoot":"","sources":["../../src/lib/StoreModules/UserDatasetListStoreModule.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.d.ts b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.d.ts deleted file mode 100644 index 6cc9d46577..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { EpicDependencies } from '@veupathdb/wdk-client/lib/Core/Store'; -import { Action } from '../Actions/UserDatasetUploadActions'; -import { StateSlice } from './types'; -import { UserDatasetUpload } from '../Utils/types'; -export declare const key = 'userDatasetUpload'; -export type State = { - uploads?: Array; - badUploadMessage?: { - message: string; - timestamp: number; - }; - badAllUploadsActionMessage?: { - message: string; - timestamp: number; - }; -}; -export declare function reduce(state: State | undefined, action: Action): State; -export declare const observe: import('redux-observable').Epic< - Action, - Action, - StateSlice, - EpicDependencies ->; -//# sourceMappingURL=UserDatasetUploadStoreModule.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.d.ts.map b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.d.ts.map deleted file mode 100644 index eacd2419bf..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetUploadStoreModule.d.ts","sourceRoot":"","sources":["../../src/lib/StoreModules/UserDatasetUploadStoreModule.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EACL,MAAM,EASP,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,eAAO,MAAM,GAAG,sBAAsB,CAAC;AAEvC,MAAM,MAAM,KAAK,GAAG;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACnC,gBAAgB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,0BAA0B,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CACrE,CAAC;AACF,wBAAgB,MAAM,CAAC,KAAK,mBAAY,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CAa/D;AAED,eAAO,MAAM,OAAO,+EAKnB,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.js b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.js deleted file mode 100644 index e9f0c6db92..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.js +++ /dev/null @@ -1,159 +0,0 @@ -var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator['throw'](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -import { combineEpics } from 'redux-observable'; -import { filter, mergeMap } from 'rxjs/operators'; -import { - submitUploadForm, - receiveBadUpload, - requestUploadMessages, - receiveUploadMessages, - cancelCurrentUpload, - clearMessages, - receiveBadUploadHistoryAction, - clearBadUpload, -} from '../Actions/UserDatasetUploadActions'; -import { assertIsUserDatasetUploadCompatibleWdkService } from '../Service/UserDatasetUploadWrappers'; -import { uploadUserDataset } from '../Utils/upload-user-dataset'; -export const key = 'userDatasetUpload'; -export function reduce(state = {}, action) { - switch (action.type) { - case receiveBadUpload.type: - return Object.assign(Object.assign({}, state), { - badUploadMessage: action.payload, - }); - case clearBadUpload.type: - return Object.assign(Object.assign({}, state), { - badUploadMessage: undefined, - }); - case receiveUploadMessages.type: - return Object.assign(Object.assign({}, state), { - uploads: action.payload.uploads, - }); - case receiveBadUploadHistoryAction.type: - return Object.assign(Object.assign({}, state), { - badAllUploadsActionMessage: action.payload, - }); - default: - return state; - } -} -export const observe = combineEpics( - observeSubmitUploadForm, - observeRequestUploadMessages, - observeCancelCurrentUpload, - observeClearMessages -); -function observeSubmitUploadForm(action$, state$, dependencies) { - return action$.pipe( - filter(submitUploadForm.isOfType), - mergeMap((action) => - __awaiter(this, void 0, void 0, function* () { - var _a; - try { - yield uploadUserDataset( - dependencies.wdkService, - action.payload.formSubmission - ); - if (action.payload.redirectTo != null) { - dependencies.transitioner.transitionToInternalPage( - action.payload.redirectTo - ); - } - return requestUploadMessages(); - } catch (err) { - return receiveBadUpload( - (_a = String(err)) !== null && _a !== void 0 - ? _a - : 'Failed to upload dataset' - ); - } - }) - ) - ); -} -function observeRequestUploadMessages(action$, state$, dependencies) { - return action$.pipe( - filter(requestUploadMessages.isOfType), - mergeMap((action) => - __awaiter(this, void 0, void 0, function* () { - assertIsUserDatasetUploadCompatibleWdkService(dependencies.wdkService); - try { - const uploads = yield dependencies.wdkService.listStatusDetails(); - return receiveUploadMessages(uploads); - } catch (err) { - return receiveBadUploadHistoryAction( - 'Could not retrieve upload history\n' + err - ); - } - }) - ) - ); -} -function observeCancelCurrentUpload(action$, state$, dependencies) { - return action$.pipe( - filter(cancelCurrentUpload.isOfType), - mergeMap((action) => - __awaiter(this, void 0, void 0, function* () { - assertIsUserDatasetUploadCompatibleWdkService(dependencies.wdkService); - try { - yield dependencies.wdkService.cancelOngoingUpload(action.payload.id); - return requestUploadMessages(); - } catch (err) { - return receiveBadUploadHistoryAction( - 'Could not cancel current upload\n' + err - ); - } - }) - ) - ); -} -function observeClearMessages(action$, state$, dependencies) { - return action$.pipe( - filter(clearMessages.isOfType), - mergeMap((action) => - __awaiter(this, void 0, void 0, function* () { - assertIsUserDatasetUploadCompatibleWdkService(dependencies.wdkService); - try { - yield dependencies.wdkService.clearMessages(action.payload.ids); - return requestUploadMessages(); - } catch (err) { - return receiveBadUploadHistoryAction( - 'Could not clear messages\n' + err - ); - } - }) - ) - ); -} -//# sourceMappingURL=UserDatasetUploadStoreModule.js.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.js.map b/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.js.map deleted file mode 100644 index db532fd9d4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/UserDatasetUploadStoreModule.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"UserDatasetUploadStoreModule.js","sourceRoot":"","sources":["../../src/lib/StoreModules/UserDatasetUploadStoreModule.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/index.d.ts b/packages/libs/user-datasets-legacy/lib/StoreModules/index.d.ts deleted file mode 100644 index 362e5aff99..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/index.d.ts +++ /dev/null @@ -1,42 +0,0 @@ -import * as userDatasetDetail from './UserDatasetDetailStoreModule'; -import * as userDatasetList from './UserDatasetListStoreModule'; -import * as userDatasetUpload from './UserDatasetUploadStoreModule'; -type WdkStoreModules = - typeof import('@veupathdb/wdk-client/lib/StoreModules').default; -export declare function wrapStoreModules(storeModules: WdkStoreModules): { - userDatasetDetail: typeof userDatasetDetail; - userDatasetList: typeof userDatasetList; - userDatasetUpload: typeof userDatasetUpload; - answerView: typeof import('@veupathdb/wdk-client/lib/StoreModules/AnswerViewStoreModule'); - attributeAnalysis: typeof import('@veupathdb/wdk-client/lib/StoreModules/AttributeAnalysisStoreModule'); - downloadForm: typeof import('@veupathdb/wdk-client/lib/StoreModules/DownloadFormStoreModule'); - favorites: typeof import('@veupathdb/wdk-client/lib/StoreModules/FavoritesListStoreModule'); - globalData: typeof import('@veupathdb/wdk-client/lib/StoreModules/GlobalData'); - passwordChange: typeof import('@veupathdb/wdk-client/lib/StoreModules/UserPasswordChangeStoreModule'); - passwordReset: typeof import('@veupathdb/wdk-client/lib/StoreModules/UserPasswordResetStoreModule'); - question: typeof import('@veupathdb/wdk-client/lib/StoreModules/QuestionStoreModule'); - questionsWithParameters: typeof import('@veupathdb/wdk-client/lib/StoreModules/QuestionsWithParametersStoreModule'); - record: typeof import('@veupathdb/wdk-client/lib/StoreModules/RecordStoreModule'); - resultTableSummaryView: typeof import('@veupathdb/wdk-client/lib/StoreModules/ResultTableSummaryViewStoreModule'); - siteMap: typeof import('@veupathdb/wdk-client/lib/StoreModules/SiteMapStoreModule'); - importStrategy: typeof import('@veupathdb/wdk-client/lib/StoreModules/ImportStrategyStoreModule'); - stepAnalysis: typeof import('@veupathdb/wdk-client/lib/StoreModules/StepAnalysisStoreModule'); - strategies: typeof import('@veupathdb/wdk-client/lib/StoreModules/StrategyStoreModule'); - strategyPanel: typeof import('@veupathdb/wdk-client/lib/StoreModules/StrategyPanelStoreModule'); - strategyWorkspace: typeof import('@veupathdb/wdk-client/lib/StoreModules/StrategyWorkspaceStoreModule'); - strategyList: typeof import('@veupathdb/wdk-client/lib/StoreModules/StrategyListStoreModule'); - publicStrategies: typeof import('@veupathdb/wdk-client/lib/StoreModules/PublicStrategyStoreModule'); - router: typeof import('@veupathdb/wdk-client/lib/StoreModules/RouterStoreModule'); - userProfile: typeof import('@veupathdb/wdk-client/lib/StoreModules/UserProfileStoreModule'); - userRegistration: typeof import('@veupathdb/wdk-client/lib/StoreModules/UserRegistrationStoreModule'); - wordCloudAnalysis: typeof import('@veupathdb/wdk-client/lib/StoreModules/WordCloudAnalysisStoreModule'); - histogramAnalysis: typeof import('@veupathdb/wdk-client/lib/StoreModules/HistogramAnalysisStoreModule'); - basket: typeof import('@veupathdb/wdk-client/lib/StoreModules/BasketStoreModule'); - resultPanel: typeof import('@veupathdb/wdk-client/lib/StoreModules/ResultPanelStoreModule'); - unhandledErrors: typeof import('@veupathdb/wdk-client/lib/StoreModules/UnhandledErrorStoreModule'); - matchedTranscriptsFilter: typeof import('@veupathdb/wdk-client/lib/StoreModules/MatchedTranscriptsFilterStoreModule'); - userSession: typeof import('@veupathdb/wdk-client/lib/StoreModules/UserSessionStoreModule'); - notification: typeof import('@veupathdb/wdk-client/lib/StoreModules/NotificationStoreModule'); -}; -export {}; -//# sourceMappingURL=index.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/index.d.ts.map b/packages/libs/user-datasets-legacy/lib/StoreModules/index.d.ts.map deleted file mode 100644 index c9d3641070..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/StoreModules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AAEpE,KAAK,eAAe,GAClB,cAAc,wCAAwC,EAAE,OAAO,CAAC;AAElE,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO7D"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/index.js b/packages/libs/user-datasets-legacy/lib/StoreModules/index.js deleted file mode 100644 index 94f7c4bbf4..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/index.js +++ /dev/null @@ -1,11 +0,0 @@ -import * as userDatasetDetail from './UserDatasetDetailStoreModule'; -import * as userDatasetList from './UserDatasetListStoreModule'; -import * as userDatasetUpload from './UserDatasetUploadStoreModule'; -export function wrapStoreModules(storeModules) { - return Object.assign(Object.assign({}, storeModules), { - userDatasetDetail, - userDatasetList, - userDatasetUpload, - }); -} -//# sourceMappingURL=index.js.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/index.js.map b/packages/libs/user-datasets-legacy/lib/StoreModules/index.js.map deleted file mode 100644 index c537de7baa..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/index.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/StoreModules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,8BAA8B,CAAC;AAChE,OAAO,KAAK,iBAAiB,MAAM,gCAAgC,CAAC;AAKpE,MAAM,UAAU,gBAAgB,CAAC,YAA6B;IAC5D,uCACK,YAAY,KACf,iBAAiB;QACjB,eAAe;QACf,iBAAiB,IACjB;AACJ,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/types.d.ts b/packages/libs/user-datasets-legacy/lib/StoreModules/types.d.ts deleted file mode 100644 index 9c95d06dff..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/types.d.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { RootState } from '@veupathdb/wdk-client/lib/Core/State/Types'; -import { State as UserDatasetDetailState } from './UserDatasetDetailStoreModule'; -import { State as UserDatasetListState } from './UserDatasetListStoreModule'; -import { State as UserDatasetUploadState } from './UserDatasetUploadStoreModule'; -export interface StateSlice extends Pick { - userDatasetDetail: UserDatasetDetailState; - userDatasetList: UserDatasetListState; - userDatasetUpload: UserDatasetUploadState; -} -//# sourceMappingURL=types.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/types.d.ts.map b/packages/libs/user-datasets-legacy/lib/StoreModules/types.d.ts.map deleted file mode 100644 index 82e690376c..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/StoreModules/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AAEvE,OAAO,EAAE,KAAK,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,KAAK,IAAI,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,EAAE,KAAK,IAAI,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAEjF,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;IAC/D,iBAAiB,EAAE,sBAAsB,CAAC;IAC1C,eAAe,EAAE,oBAAoB,CAAC;IACtC,iBAAiB,EAAE,sBAAsB,CAAC;CAC3C"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/types.js b/packages/libs/user-datasets-legacy/lib/StoreModules/types.js deleted file mode 100644 index cd268e9bde..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/types.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=types.js.map diff --git a/packages/libs/user-datasets-legacy/lib/StoreModules/types.js.map b/packages/libs/user-datasets-legacy/lib/StoreModules/types.js.map deleted file mode 100644 index aea5dffd12..0000000000 --- a/packages/libs/user-datasets-legacy/lib/StoreModules/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/StoreModules/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Utils/project-filter.d.ts b/packages/libs/user-datasets-legacy/lib/Utils/project-filter.d.ts deleted file mode 100644 index 3eb4cca864..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/project-filter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const FILTER_BY_PROJECT_PREF = 'userDatasets.filterByProject'; -//# sourceMappingURL=project-filter.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Utils/project-filter.d.ts.map b/packages/libs/user-datasets-legacy/lib/Utils/project-filter.d.ts.map deleted file mode 100644 index a3a69259b2..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/project-filter.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"project-filter.d.ts","sourceRoot":"","sources":["../../src/lib/Utils/project-filter.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,iCAAiC,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Utils/project-filter.js b/packages/libs/user-datasets-legacy/lib/Utils/project-filter.js deleted file mode 100644 index aed1ed85b7..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/project-filter.js +++ /dev/null @@ -1,2 +0,0 @@ -export const FILTER_BY_PROJECT_PREF = 'userDatasets.filterByProject'; -//# sourceMappingURL=project-filter.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Utils/project-filter.js.map b/packages/libs/user-datasets-legacy/lib/Utils/project-filter.js.map deleted file mode 100644 index 482eb2c0f6..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/project-filter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"project-filter.js","sourceRoot":"","sources":["../../src/lib/Utils/project-filter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,8BAA8B,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Utils/types.d.ts b/packages/libs/user-datasets-legacy/lib/Utils/types.d.ts deleted file mode 100644 index 4109337a87..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/types.d.ts +++ /dev/null @@ -1,142 +0,0 @@ -import React, { ReactNode } from 'react'; -export interface UserDatasetMeta { - description: string; - name: string; - summary: string; -} -export interface UserDatasetShare { - time: number; - user: number; - email: string; - userDisplayName: string; -} -export interface UserDataset { - created: number; - age: number; - isInstalled: boolean; - isCompatible: boolean; - dependencies: Array<{ - resourceDisplayName: string; - resourceIdentifier: string; - resourceVersion: string; - }>; - datafiles: Array<{ - name: string; - size: number; - }>; - projects: string[]; - id: number; - meta: UserDatasetMeta; - modified: number; - owner: string; - ownerUserId: number; - percentQuotaUsed: number; - sharedWith: UserDatasetShare[] | undefined; - questions: string[]; - size: number; - type: { - name: string; - display: string; - version: string; - }; - uploaded: number; -} -export interface UserDatasetUpload { - id: string; - datasetId?: number; - datasetName: string; - summary?: string; - description?: string; - projects: string[]; - status: string; - errors: string[]; - stepPercent?: number; - started: string; - finished?: string; - isOngoing: boolean; - isCancellable: boolean; - isSuccessful: boolean; - isUserError: boolean; -} -export type DatasetUploadTypeConfig = { - [K in T]: DatasetUploadTypeConfigEntry; -}; -export interface DatasetUploadTypeConfigEntry { - type: T; - uploadTitle: string; - formConfig: { - name?: { - inputProps: Partial>; - }; - summary?: { - inputProps: Partial>; - }; - description?: { - inputProps: Partial>; - }; - uploadMethodConfig: { - file?: FileUploadConfig; - url?: UrlUploadConfig; - result?: ResultUploadConfig; - }; - renderInfo?: () => ReactNode; - }; -} -export interface FileUploadConfig { - render?: (props: { fieldNode: ReactNode }) => ReactNode; - maxSizeBytes?: number; -} -export interface UrlUploadConfig { - offer: boolean; -} -export interface ResultUploadConfig { - offerStrategyUpload: boolean; - compatibleRecordTypes: CompatibleRecordTypes; -} -export type CompatibleRecordTypes = Record< - string, - { - reportName: string; - reportConfig: unknown; - } ->; -export type DatasetUploadPageConfig< - T1 extends string = string, - T2 extends string = string -> = - | { - hasDirectUpload: false; - } - | { - hasDirectUpload: true; - availableUploadTypes: T1[]; - uploadTypeConfig: DatasetUploadTypeConfig; - }; -export interface NewUserDataset extends UserDatasetMeta { - datasetType: string; - projects: string[]; - uploadMethod: - | { - type: 'file'; - file: File; - } - | { - type: 'url'; - url: string; - } - | { - type: 'result'; - stepId: number; - reportName: string; - reportConfig: unknown; - }; -} -/** - * In EDA, data is referred to as "Study" or "Studies" - * In genomics, data is referred to as "Data Set" or "Data Sets" - */ -export type DataNoun = { - singular: string; - plural: string; -}; -//# sourceMappingURL=types.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Utils/types.d.ts.map b/packages/libs/user-datasets-legacy/lib/Utils/types.d.ts.map deleted file mode 100644 index 232a4089f8..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/Utils/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Utils/types.js b/packages/libs/user-datasets-legacy/lib/Utils/types.js deleted file mode 100644 index cd268e9bde..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/types.js +++ /dev/null @@ -1,2 +0,0 @@ -export {}; -//# sourceMappingURL=types.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Utils/types.js.map b/packages/libs/user-datasets-legacy/lib/Utils/types.js.map deleted file mode 100644 index c4dacc1999..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/types.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lib/Utils/types.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Utils/upload-config.d.ts b/packages/libs/user-datasets-legacy/lib/Utils/upload-config.d.ts deleted file mode 100644 index 56b392d89b..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/upload-config.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { DatasetUploadPageConfig, DatasetUploadTypeConfig } from './types'; -type ImplementedUploadTypes = 'biom' | 'gene-list' | 'isasimple'; -export declare const uploadTypeConfig: DatasetUploadTypeConfig; -export declare function makeDatasetUploadPageConfig< - T1 extends string, - T2 extends string ->( - availableUploadTypes: T1[] | undefined, - uploadTypeConfig: DatasetUploadTypeConfig -): DatasetUploadPageConfig; -export {}; -//# sourceMappingURL=upload-config.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Utils/upload-config.d.ts.map b/packages/libs/user-datasets-legacy/lib/Utils/upload-config.d.ts.map deleted file mode 100644 index 9192af888a..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/upload-config.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"upload-config.d.ts","sourceRoot":"","sources":["../../src/lib/Utils/upload-config.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE3E,KAAK,sBAAsB,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,CAAC;AAEjE,eAAO,MAAM,gBAAgB,EAAE,uBAAuB,CAAC,sBAAsB,CA0F1E,CAAC;AAEJ,wBAAgB,2BAA2B,CACzC,EAAE,SAAS,MAAM,EACjB,EAAE,SAAS,MAAM,EAEjB,oBAAoB,kBAAW,EAC/B,gBAAgB,EAAE,uBAAuB,CAAC,EAAE,CAAC,GAC5C,uBAAuB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAatC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Utils/upload-config.js b/packages/libs/user-datasets-legacy/lib/Utils/upload-config.js deleted file mode 100644 index 1aaa6aafbc..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/upload-config.js +++ /dev/null @@ -1,136 +0,0 @@ -import { - jsx as _jsx, - jsxs as _jsxs, - Fragment as _Fragment, -} from 'react/jsx-runtime'; -import { intersection } from 'lodash'; -export const uploadTypeConfig = { - biom: { - type: 'biom', - uploadTitle: 'Upload My Data Set', - formConfig: { - renderInfo: () => - _jsxs( - 'p', - Object.assign( - { className: 'formInfo' }, - { - children: [ - 'We accept any file in the', - ' ', - _jsx( - 'a', - Object.assign( - { href: 'http://biom-format.org' }, - { children: 'BIOM format' } - ) - ), - ', either JSON-based (BIOM 1.0) or HDF5 (BIOM 2.0+). The maximum allowed file size is 1GB.', - _jsx('br', {}), - _jsx('br', {}), - 'If possible, try including taxonomic information and rich sample details in your file. This will allow you to select groups of samples and create meaningful comparisons at a desired aggregation level, using our filtering and visualisation tools.', - ], - } - ) - ), - uploadMethodConfig: { - file: { - maxSizeBytes: 1e7, - render: ({ fieldNode }) => - _jsxs(_Fragment, { - children: [ - fieldNode, - _jsx( - 'div', - Object.assign( - { style: { marginTop: '0.25em' } }, - { children: 'File must be 10 MB or smaller.' } - ) - ), - ], - }), - }, - }, - }, - }, - 'gene-list': { - type: 'gene-list', - uploadTitle: 'Upload My Gene List', - formConfig: { - uploadMethodConfig: { - result: { - offerStrategyUpload: false, - compatibleRecordTypes: { - transcript: { - reportName: 'attributesTabular', - reportConfig: { - attributes: ['primary_key'], - includeHeader: false, - attachmentType: 'plain', - applyFilter: true, - }, - }, - }, - }, - }, - }, - }, - isasimple: { - type: 'isasimple', - uploadTitle: 'Upload My Study', - formConfig: { - summary: { - inputProps: { - placeholder: 'brief summary of the data set in 1-2 sentences', - }, - }, - description: { - inputProps: { - required: false, - placeholder: - 'optional longer description of the data set including background, study objectives, methodology, etc.', - }, - }, - uploadMethodConfig: { - file: { - render: ({ fieldNode }) => - _jsxs(_Fragment, { - children: [ - fieldNode, - _jsx( - 'div', - Object.assign( - { style: { marginTop: '0.25em' } }, - { - children: - 'File must be a .csv, .tsv, or tab-delimited .txt file', - } - ) - ), - ], - }), - }, - url: { - offer: false, - }, - }, - }, - }, -}; -export function makeDatasetUploadPageConfig( - availableUploadTypes = [], - uploadTypeConfig -) { - const restrictedUploadTypes = intersection( - availableUploadTypes, - Object.keys(uploadTypeConfig) - ); - return restrictedUploadTypes.length === 0 - ? { hasDirectUpload: false } - : { - hasDirectUpload: true, - availableUploadTypes: restrictedUploadTypes, - uploadTypeConfig, - }; -} -//# sourceMappingURL=upload-config.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Utils/upload-config.js.map b/packages/libs/user-datasets-legacy/lib/Utils/upload-config.js.map deleted file mode 100644 index 4d99bb45ef..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/upload-config.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"upload-config.js","sourceRoot":"","sources":["../../src/lib/Utils/upload-config.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAMtC,MAAM,CAAC,MAAM,gBAAgB,GAC3B;IACE,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,oBAAoB;QACjC,UAAU,EAAE;YACV,UAAU,EAAE,GAAG,EAAE,CAAC,CAChB,2BAAG,SAAS,EAAC,UAAU,8CACK,GAAG,EAC7B,0BAAG,IAAI,EAAC,wBAAwB,iCAAgB,+FAGhD,cAAM,EACN,cAAM,8PAKJ,CACL;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE;oBACJ,YAAY,EAAE,GAAG;oBACjB,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACzB,8BACG,SAAS,EACV,4BAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,oDAE7B,IACL,CACJ;iBACF;aACF;SACF;KACF;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,qBAAqB;QAClC,UAAU,EAAE;YACV,kBAAkB,EAAE;gBAClB,MAAM,EAAE;oBACN,mBAAmB,EAAE,KAAK;oBAC1B,qBAAqB,EAAE;wBACrB,UAAU,EAAE;4BACV,UAAU,EAAE,mBAAmB;4BAC/B,YAAY,EAAE;gCACZ,UAAU,EAAE,CAAC,aAAa,CAAC;gCAC3B,aAAa,EAAE,KAAK;gCACpB,cAAc,EAAE,OAAO;gCACvB,WAAW,EAAE,IAAI;6BAClB;yBACF;qBACF;iBACF;aACF;SACF;KACF;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,WAAW,EAAE,iBAAiB;QAC9B,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,UAAU,EAAE;oBACV,WAAW,EAAE,gDAAgD;iBAC9D;aACF;YACD,WAAW,EAAE;gBACX,UAAU,EAAE;oBACV,QAAQ,EAAE,KAAK;oBACf,WAAW,EACT,uGAAuG;iBAC1G;aACF;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE;oBACJ,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CACzB,8BACG,SAAS,EACV,4BAAK,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,2EAE7B,IACL,CACJ;iBACF;gBACD,GAAG,EAAE;oBACH,KAAK,EAAE,KAAK;iBACb;aACF;SACF;KACF;CACF,CAAC;AAEJ,MAAM,UAAU,2BAA2B,CAIzC,uBAA6B,EAAE,EAC/B,gBAA6C;IAE7C,MAAM,qBAAqB,GAAG,YAAY,CACxC,oBAAoB,EACpB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CACf,CAAC;IAEjB,OAAO,qBAAqB,CAAC,MAAM,KAAK,CAAC;QACvC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE;QAC5B,CAAC,CAAC;YACE,eAAe,EAAE,IAAI;YACrB,oBAAoB,EAAE,qBAAqB;YAC3C,gBAAgB;SACjB,CAAC;AACR,CAAC"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.d.ts b/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.d.ts deleted file mode 100644 index 4445363ce1..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { WdkService } from '@veupathdb/wdk-client/lib/Core'; -import { FormSubmission } from '../Components/UploadForm'; -import { NewUserDataset } from './types'; -export declare function uploadUserDataset( - wdkService: WdkService, - formSubmission: FormSubmission -): Promise; -export declare function makeNewUserDatasetConfig( - wdkService: WdkService, - formSubmission: FormSubmission -): Promise; -//# sourceMappingURL=upload-user-dataset.d.ts.map diff --git a/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.d.ts.map b/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.d.ts.map deleted file mode 100644 index 5ee93c50eb..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"upload-user-dataset.d.ts","sourceRoot":"","sources":["../../src/lib/Utils/upload-user-dataset.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,iBAU/B;AAED,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,GAC7B,OAAO,CAAC,cAAc,CAAC,CA4BzB"} \ No newline at end of file diff --git a/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.js b/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.js deleted file mode 100644 index 5c4b70e958..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.js +++ /dev/null @@ -1,69 +0,0 @@ -var __awaiter = - (this && this.__awaiter) || - function (thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P - ? value - : new P(function (resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator['throw'](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done - ? resolve(result.value) - : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; -import { assertIsUserDatasetUploadCompatibleWdkService } from '../Service/UserDatasetUploadWrappers'; -export function uploadUserDataset(wdkService, formSubmission) { - return __awaiter(this, void 0, void 0, function* () { - assertIsUserDatasetUploadCompatibleWdkService(wdkService); - const newUserDatasetConfig = yield makeNewUserDatasetConfig( - wdkService, - formSubmission - ); - return yield wdkService.addDataset(newUserDatasetConfig); - }); -} -export function makeNewUserDatasetConfig(wdkService, formSubmission) { - return __awaiter(this, void 0, void 0, function* () { - if (formSubmission.dataUploadSelection.type !== 'result') { - return Object.assign(Object.assign({}, formSubmission), { - uploadMethod: formSubmission.dataUploadSelection, - }); - } - const { compatibleRecordTypes, stepId } = - formSubmission.dataUploadSelection; - const { recordClassName } = yield wdkService.findStep(stepId); - const resultReportSettings = compatibleRecordTypes[recordClassName]; - if (resultReportSettings == null) { - throw new Error( - `Tried to upload a result (step id ${stepId}) with an incompatible record type ${recordClassName}.` - ); - } - return Object.assign(Object.assign({}, formSubmission), { - uploadMethod: Object.assign( - { type: 'result', stepId }, - resultReportSettings - ), - }); - }); -} -//# sourceMappingURL=upload-user-dataset.js.map diff --git a/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.js.map b/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.js.map deleted file mode 100644 index bf34c13bf5..0000000000 --- a/packages/libs/user-datasets-legacy/lib/Utils/upload-user-dataset.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"upload-user-dataset.js","sourceRoot":"","sources":["../../src/lib/Utils/upload-user-dataset.tsx"],"names":[],"mappings":";;;;;;;;;AAGA,OAAO,EAAE,6CAA6C,EAAE,MAAM,sCAAsC,CAAC;AAIrG,MAAM,UAAgB,iBAAiB,CACrC,UAAsB,EACtB,cAA8B;;QAE9B,6CAA6C,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,oBAAoB,GAAG,MAAM,wBAAwB,CACzD,UAAU,EACV,cAAc,CACf,CAAC;QAEF,OAAO,MAAM,UAAU,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAC3D,CAAC;CAAA;AAED,MAAM,UAAgB,wBAAwB,CAC5C,UAAsB,EACtB,cAA8B;;QAE9B,IAAI,cAAc,CAAC,mBAAmB,CAAC,IAAI,KAAK,QAAQ,EAAE;YACxD,uCACK,cAAc,KACjB,YAAY,EAAE,cAAc,CAAC,mBAAmB,IAChD;SACH;QAED,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,mBAAmB,CAAC;QAE7E,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE9D,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAEpE,IAAI,oBAAoB,IAAI,IAAI,EAAE;YAChC,MAAM,IAAI,KAAK,CACb,qCAAqC,MAAM,sCAAsC,eAAe,GAAG,CACpG,CAAC;SACH;QAED,uCACK,cAAc,KACjB,YAAY,kBACV,IAAI,EAAE,QAAQ,EACd,MAAM,IACH,oBAAoB,KAEzB;IACJ,CAAC;CAAA"} \ No newline at end of file diff --git a/packages/libs/user-datasets/src/lib/Controllers/UserDatasetDetailController.tsx b/packages/libs/user-datasets/src/lib/Controllers/UserDatasetDetailController.tsx index da02091b16..ff505731aa 100644 --- a/packages/libs/user-datasets/src/lib/Controllers/UserDatasetDetailController.tsx +++ b/packages/libs/user-datasets/src/lib/Controllers/UserDatasetDetailController.tsx @@ -29,6 +29,7 @@ import { quotaSize } from '../Components/UserDatasetUtils'; import { StateSlice } from '../StoreModules/types'; import { DataNoun } from '../Utils/types'; +import { Loading } from '@veupathdb/wdk-client/lib/Components'; const ActionCreators = { showLoginForm, @@ -254,10 +255,10 @@ class UserDatasetDetailController extends PageController { updateDatasetCommunityVisibilitySuccess, }; - const DetailView = this.getDetailView( - typeof entry?.resource === 'object' ? entry.resource.type : null - ); - return entry?.resource?.meta.visibility !== 'public' && + if (entry?.resource == null) return ; + + const DetailView = this.getDetailView(typeof entry.resource.type); + return entry.resource.meta.visibility !== 'public' && user && user.isGuest ? ( this.renderGuestView()