synapse-react-client 3.0.24 → 3.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/containers/AccessApprovalsTable.d.ts +6 -0
  2. package/dist/containers/AccessApprovalsTable.js +90 -0
  3. package/dist/containers/AccessApprovalsTable.js.map +1 -0
  4. package/dist/containers/CardContainer.js +1 -1
  5. package/dist/containers/CardContainer.js.map +1 -1
  6. package/dist/containers/EntityBadgeIcons.d.ts +1 -1
  7. package/dist/containers/EntityBadgeIcons.js +30 -20
  8. package/dist/containers/EntityBadgeIcons.js.map +1 -1
  9. package/dist/containers/ErrorBanner.js +1 -1
  10. package/dist/containers/ErrorBanner.js.map +1 -1
  11. package/dist/containers/IconSvg.js +1 -1
  12. package/dist/containers/IconSvg.js.map +1 -1
  13. package/dist/containers/TermsAndConditionsItem.js +2 -2
  14. package/dist/containers/TermsAndConditionsItem.js.map +1 -1
  15. package/dist/containers/UserSearchBoxV2.js +1 -1
  16. package/dist/containers/UserSearchBoxV2.js.map +1 -1
  17. package/dist/containers/access_requirement_list/AcceptedRequirements.js +1 -1
  18. package/dist/containers/access_requirement_list/AcceptedRequirements.js.map +1 -1
  19. package/dist/containers/access_requirement_list/AccessApprovalCheckMark.js +1 -1
  20. package/dist/containers/access_requirement_list/AccessApprovalCheckMark.js.map +1 -1
  21. package/dist/containers/access_requirement_list/AccessRequirementList.d.ts +7 -1
  22. package/dist/containers/access_requirement_list/AccessRequirementList.js +63 -57
  23. package/dist/containers/access_requirement_list/AccessRequirementList.js.map +1 -1
  24. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccess.js +1 -1
  25. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccess.js.map +1 -1
  26. package/dist/containers/dataaccess/AccessHistoryDashboard.d.ts +2 -0
  27. package/dist/containers/dataaccess/AccessHistoryDashboard.js +95 -0
  28. package/dist/containers/dataaccess/AccessHistoryDashboard.js.map +1 -0
  29. package/dist/containers/dataaccess/AccessSubmissionDashboard.js +2 -1
  30. package/dist/containers/dataaccess/AccessSubmissionDashboard.js.map +1 -1
  31. package/dist/containers/dataaccess/ReviewerDashboard.js +15 -26
  32. package/dist/containers/dataaccess/ReviewerDashboard.js.map +1 -1
  33. package/dist/containers/dataaccess/SubmissionPage.js +12 -6
  34. package/dist/containers/dataaccess/SubmissionPage.js.map +1 -1
  35. package/dist/containers/entity/metadata/EntityModal.js +8 -2
  36. package/dist/containers/entity/metadata/EntityModal.js.map +1 -1
  37. package/dist/containers/entity_finder/EntityFinder.js +25 -21
  38. package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
  39. package/dist/containers/entity_finder/details/EntityDetailsList.d.ts +3 -1
  40. package/dist/containers/entity_finder/details/EntityDetailsList.js.map +1 -1
  41. package/dist/containers/entity_finder/details/view/DetailsView.d.ts +2 -2
  42. package/dist/containers/entity_finder/details/view/DetailsView.js +16 -5
  43. package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
  44. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.d.ts +5 -5
  45. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js +1 -1
  46. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js.map +1 -1
  47. package/dist/containers/entity_finder/tree/EntityTree.d.ts +11 -3
  48. package/dist/containers/entity_finder/tree/EntityTree.js +15 -14
  49. package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -1
  50. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js +4 -4
  51. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  52. package/dist/containers/table/TopLevelControls.js +1 -1
  53. package/dist/containers/table/TopLevelControls.js.map +1 -1
  54. package/dist/containers/table/datasets/DatasetItemsEditor.js +17 -14
  55. package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
  56. package/dist/containers/table/table-top/DownloadOptions.d.ts +1 -5
  57. package/dist/containers/table/table-top/DownloadOptions.js +21 -11
  58. package/dist/containers/table/table-top/DownloadOptions.js.map +1 -1
  59. package/dist/index.d.ts +0 -2
  60. package/dist/index.js +0 -2
  61. package/dist/index.js.map +1 -1
  62. package/dist/style/abstracts/_mixins.scss +5 -3
  63. package/dist/style/components/_all.scss +3 -3
  64. package/dist/style/components/_download-list.scss +0 -58
  65. package/dist/style/components/_entity-badge.scss +3 -3
  66. package/dist/style/components/_governance-dashboard.scss +2 -1
  67. package/dist/style/components/entity_finder/_details-view.scss +9 -3
  68. package/dist/style/components/entity_finder/_entity-finder.scss +2 -2
  69. package/dist/style/components/entity_finder/_selection-pane.scss +5 -3
  70. package/dist/style/main.css +56 -161
  71. package/dist/umd/synapse-react-client.development.css +56 -154
  72. package/dist/umd/synapse-react-client.development.css.map +2 -2
  73. package/dist/umd/synapse-react-client.development.js +5038 -5238
  74. package/dist/umd/synapse-react-client.development.js.map +3 -3
  75. package/dist/umd/synapse-react-client.production.min.css +1 -1
  76. package/dist/umd/synapse-react-client.production.min.js +76 -76
  77. package/dist/umd.index.d.ts +0 -2
  78. package/dist/umd.index.js +0 -2
  79. package/dist/umd.index.js.map +1 -1
  80. package/dist/utils/APIConstants.d.ts +1 -0
  81. package/dist/utils/APIConstants.js +5 -1
  82. package/dist/utils/APIConstants.js.map +1 -1
  83. package/dist/utils/SynapseClient.js +1 -2
  84. package/dist/utils/SynapseClient.js.map +1 -1
  85. package/dist/utils/hooks/SynapseAPI/dataaccess/useAccessApprovals.d.ts +5 -0
  86. package/dist/utils/hooks/SynapseAPI/dataaccess/useAccessApprovals.js +21 -0
  87. package/dist/utils/hooks/SynapseAPI/dataaccess/useAccessApprovals.js.map +1 -0
  88. package/dist/utils/hooks/SynapseAPI/entity/queryKeys.js +4 -0
  89. package/dist/utils/hooks/SynapseAPI/entity/queryKeys.js.map +1 -1
  90. package/dist/utils/hooks/SynapseAPI/entity/useEntity.d.ts +1 -0
  91. package/dist/utils/hooks/SynapseAPI/entity/useEntity.js +22 -1
  92. package/dist/utils/hooks/SynapseAPI/entity/useEntity.js.map +1 -1
  93. package/dist/utils/hooks/useGetInfoFromIds.js +7 -1
  94. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  95. package/package.json +1 -1
  96. package/dist/containers/download_list/CreatePackage.d.ts +0 -8
  97. package/dist/containers/download_list/CreatePackage.js +0 -131
  98. package/dist/containers/download_list/CreatePackage.js.map +0 -1
  99. package/dist/containers/download_list/DownloadListTable.d.ts +0 -16
  100. package/dist/containers/download_list/DownloadListTable.js +0 -438
  101. package/dist/containers/download_list/DownloadListTable.js.map +0 -1
  102. package/dist/style/components/_download-link.scss +0 -57
@@ -1,131 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CreatePackage = exports.TEMPLATE_ERROR_FILE_NAME = exports.TEMPLATE_DOWNLOAD_MESSAGE = void 0;
4
- var tslib_1 = require("tslib");
5
- var react_1 = (0, tslib_1.__importStar)(require("react"));
6
- var ReactBoostrap = (0, tslib_1.__importStar)(require("react-bootstrap"));
7
- var SynapseClient_1 = require("../../utils/SynapseClient");
8
- var SynapseContext_1 = require("../../utils/SynapseContext");
9
- var synapseTypes_1 = require("../../utils/synapseTypes/");
10
- var IconSvg_1 = (0, tslib_1.__importDefault)(require("../IconSvg"));
11
- exports.TEMPLATE_DOWNLOAD_MESSAGE = 'files were downloaded and removed from the list.';
12
- exports.TEMPLATE_ERROR_FILE_NAME = 'Please provide a package file name and try again.';
13
- var CreatePackage = function (props) {
14
- var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
15
- var _a = (0, react_1.useState)(false), isLoading = _a[0], setIsLoading = _a[1];
16
- var _b = (0, react_1.useState)(''), fileName = _b[0], setZipFileName = _b[1];
17
- var _c = (0, react_1.useState)({
18
- message: '',
19
- className: undefined,
20
- variant: undefined,
21
- }), alert = _c[0], setAlert = _c[1];
22
- var _d = (0, react_1.useState)(undefined), bulkFileDownloadResponse = _d[0], setBulkFileDownloadResponse = _d[1];
23
- var children = props.children, updateDownloadList = props.updateDownloadList;
24
- var createPackageHandler = function (event) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
25
- var fileNameWithZipExtension, downloadOrder, bulkFileDownloadRequest, currentBulkFileDownloadResponse, err_1;
26
- return (0, tslib_1.__generator)(this, function (_a) {
27
- switch (_a.label) {
28
- case 0:
29
- event.preventDefault();
30
- if (!fileName) {
31
- setAlert({
32
- message: exports.TEMPLATE_ERROR_FILE_NAME,
33
- variant: 'danger',
34
- className: undefined,
35
- });
36
- return [2 /*return*/];
37
- }
38
- setAlert({ message: '', variant: undefined, className: undefined });
39
- setIsLoading(true);
40
- _a.label = 1;
41
- case 1:
42
- _a.trys.push([1, 4, 5, 6]);
43
- fileNameWithZipExtension = fileName + ".zip";
44
- return [4 /*yield*/, (0, SynapseClient_1.getDownloadOrder)(fileNameWithZipExtension, accessToken)];
45
- case 2:
46
- downloadOrder = _a.sent();
47
- bulkFileDownloadRequest = {
48
- concreteType: 'org.sagebionetworks.repo.model.file.BulkFileDownloadRequest',
49
- requestedFiles: downloadOrder.files,
50
- zipFileName: fileNameWithZipExtension,
51
- zipFileFormat: synapseTypes_1.ZipFileFormat.Flat,
52
- };
53
- return [4 /*yield*/, (0, SynapseClient_1.getBulkFiles)(bulkFileDownloadRequest, accessToken)];
54
- case 3:
55
- currentBulkFileDownloadResponse = _a.sent();
56
- setBulkFileDownloadResponse(currentBulkFileDownloadResponse);
57
- return [3 /*break*/, 6];
58
- case 4:
59
- err_1 = _a.sent();
60
- setAlert({
61
- message: err_1.reason,
62
- variant: 'danger',
63
- className: undefined,
64
- });
65
- return [3 /*break*/, 6];
66
- case 5:
67
- setIsLoading(false);
68
- return [7 /*endfinally*/];
69
- case 6: return [2 /*return*/];
70
- }
71
- });
72
- }); };
73
- var downloadPackageHandler = function () { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
74
- var _a, resultZipFileHandleId, fileSummary, numfilesDownloaded, url, err_2;
75
- return (0, tslib_1.__generator)(this, function (_b) {
76
- switch (_b.label) {
77
- case 0:
78
- _a = bulkFileDownloadResponse, resultZipFileHandleId = _a.resultZipFileHandleId, fileSummary = _a.fileSummary;
79
- _b.label = 1;
80
- case 1:
81
- _b.trys.push([1, 3, , 4]);
82
- numfilesDownloaded = fileSummary.filter(function (el) { return el.status === synapseTypes_1.FileDownloadStatus.SUCCESS; }).length;
83
- setAlert({
84
- message: numfilesDownloaded + " " + exports.TEMPLATE_DOWNLOAD_MESSAGE,
85
- className: 'SRC-primary-background-color SRC-whiteText',
86
- variant: undefined,
87
- });
88
- return [4 /*yield*/, (0, SynapseClient_1.getFileHandleByIdURL)(resultZipFileHandleId, accessToken)];
89
- case 2:
90
- url = _b.sent();
91
- window.location.href = url;
92
- updateDownloadList();
93
- setBulkFileDownloadResponse(undefined);
94
- return [3 /*break*/, 4];
95
- case 3:
96
- err_2 = _b.sent();
97
- console.error('Err on getFileHandleByIdURL = ', err_2);
98
- return [3 /*break*/, 4];
99
- case 4: return [2 /*return*/];
100
- }
101
- });
102
- }); };
103
- var onChange = function (event) {
104
- setZipFileName(event.currentTarget.value);
105
- };
106
- return (react_1.default.createElement(react_1.default.Fragment, null,
107
- alert.message && (react_1.default.createElement(ReactBoostrap.Alert, { transition: false, variant: alert.variant, show: true, className: alert.className }, alert.message)),
108
- react_1.default.createElement("div", { className: "create-package-container bootstrap-4-backport" },
109
- children,
110
- react_1.default.createElement("div", null,
111
- isLoading && (react_1.default.createElement("span", { className: "SRC-centerContentInline" },
112
- react_1.default.createElement("span", { className: "spinner" }),
113
- react_1.default.createElement("span", { style: { marginLeft: 5 }, className: "create-package-text" }, "Creating package..."))),
114
- react_1.default.createElement("div", { className: "SRC-split" },
115
- !isLoading && !bulkFileDownloadResponse && (react_1.default.createElement(react_1.default.Fragment, null,
116
- react_1.default.createElement("form", { onSubmit: createPackageHandler },
117
- react_1.default.createElement("input", { onChange: onChange, type: "text", placeholder: "PackageFileName" }),
118
- react_1.default.createElement("span", { className: "zip-extension SRC-boldText" }, ".zip")),
119
- react_1.default.createElement(ReactBoostrap.Button, { variant: "primary", className: "pill-xl", onClick: createPackageHandler, type: "button" },
120
- react_1.default.createElement(IconSvg_1.default, { options: { icon: 'folder' } }),
121
- "Create Package"))),
122
- bulkFileDownloadResponse && (react_1.default.createElement(react_1.default.Fragment, null,
123
- react_1.default.createElement("div", { className: "package-created" },
124
- react_1.default.createElement(IconSvg_1.default, { options: { icon: 'check', color: 'green' } }),
125
- react_1.default.createElement("span", { className: "create-package-text" }, "Package created! Ready for download.")),
126
- react_1.default.createElement(ReactBoostrap.Button, { variant: "primary", className: "pill-xl", onClick: downloadPackageHandler },
127
- react_1.default.createElement(IconSvg_1.default, { options: { icon: 'download', color: 'white' } }),
128
- "Download Package"))))))));
129
- };
130
- exports.CreatePackage = CreatePackage;
131
- //# sourceMappingURL=CreatePackage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CreatePackage.js","sourceRoot":"","sources":["../../../src/lib/containers/download_list/CreatePackage.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /// <reference types="react" />
2
- export declare type DownloadListTableProps = {
3
- listUpdatedCallback?: VoidFunction;
4
- forceSamePage?: boolean;
5
- renderAsModal?: boolean;
6
- onHide?: () => void;
7
- };
8
- export declare const TESTING_TRASH_BTN_CLASS = "TESTING_TRASH_BTN_CLASS";
9
- export declare const TESTING_CLEAR_BTN_CLASS = "TESTING_CLEAR_BTN_CLASS";
10
- /**
11
- * Web-based download list.
12
- *
13
- * @deprecated Use the new Download List Services instead (that support the Download Cart).
14
- * http://rest-docs.synapse.org/rest/#org.sagebionetworks.repo.web.controller.DownloadListController
15
- */
16
- export default function DownloadListTable(props: DownloadListTableProps): JSX.Element;
@@ -1,438 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TESTING_CLEAR_BTN_CLASS = exports.TESTING_TRASH_BTN_CLASS = void 0;
4
- var tslib_1 = require("tslib");
5
- var moment_1 = (0, tslib_1.__importDefault)(require("moment"));
6
- var react_1 = (0, tslib_1.__importStar)(require("react"));
7
- var ReactBootstrap = (0, tslib_1.__importStar)(require("react-bootstrap"));
8
- var calculateFriendlyFileSize_1 = require("../../utils/functions/calculateFriendlyFileSize");
9
- var useGetInfoFromIds_1 = (0, tslib_1.__importDefault)(require("../../utils/hooks/useGetInfoFromIds"));
10
- var SynapseClient_1 = require("../../utils/SynapseClient");
11
- var synapseTypes_1 = require("../../utils/synapseTypes");
12
- var HasAccess_1 = (0, tslib_1.__importStar)(require("../HasAccess"));
13
- var UserCard_1 = (0, tslib_1.__importDefault)(require("../UserCard"));
14
- var CreatePackage_1 = require("./CreatePackage");
15
- var DownloadDetails_1 = (0, tslib_1.__importDefault)(require("./DownloadDetails"));
16
- var AccessRequirementList_1 = (0, tslib_1.__importDefault)(require("../access_requirement_list/AccessRequirementList"));
17
- var SynapseContext_1 = require("../../utils/SynapseContext");
18
- var getEndpoint_1 = require("../../utils/functions/getEndpoint");
19
- var IconSvg_1 = (0, tslib_1.__importDefault)(require("../IconSvg"));
20
- exports.TESTING_TRASH_BTN_CLASS = 'TESTING_TRASH_BTN_CLASS';
21
- exports.TESTING_CLEAR_BTN_CLASS = 'TESTING_CLEAR_BTN_CLASS';
22
- /**
23
- * Web-based download list.
24
- *
25
- * @deprecated Use the new Download List Services instead (that support the Download Cart).
26
- * http://rest-docs.synapse.org/rest/#org.sagebionetworks.repo.web.controller.DownloadListController
27
- */
28
- function DownloadListTable(props) {
29
- var _this = this;
30
- var _a, _b;
31
- var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
32
- // https://reactjs.org/docs/hooks-faq.html#should-i-use-one-or-many-state-variables
33
- var _c = (0, react_1.useState)({
34
- references: undefined,
35
- batchFileResult: undefined,
36
- downloadList: undefined,
37
- }), data = _c[0], setData = _c[1];
38
- var _d = (0, react_1.useState)({
39
- column: '',
40
- isDescending: false,
41
- }), sortedColumn = _d[0], setSortedColumn = _d[1];
42
- var _e = (0, react_1.useState)(), arPropsFromHasAccess = _e[0], set_arPropsFromHasAccess = _e[1];
43
- // https://reactjs.org/docs/hooks-faq.html#should-i-use-one-or-many-state-variables
44
- var _f = (0, react_1.useState)(true), isLoading = _f[0], setIsLoading = _f[1];
45
- var _g = (0, react_1.useState)(''), fileBeingDeleted = _g[0], setFileBeingDeleted = _g[1];
46
- var _h = props.forceSamePage, forceSamePage = _h === void 0 ? false : _h, _j = props.renderAsModal, renderAsModal = _j === void 0 ? false : _j, onHide = props.onHide, listUpdatedCallback = props.listUpdatedCallback;
47
- var references = data.references, batchFileResult = data.batchFileResult, downloadList = data.downloadList;
48
- var requestedFiles = (batchFileResult && batchFileResult.requestedFiles) || [];
49
- // Get owner ids from download list by filtering to items that have a file handle
50
- // then map to ownerIds
51
- var ownerIdsFromHeaders = references === null || references === void 0 ? void 0 : references.results.filter(function (el) { return el.createdBy; }).map(function (el) { return el.createdBy; });
52
- var ownerIdsFromFileHandles = requestedFiles
53
- .filter(function (el) { var _a; return ((_a = el.fileHandle) === null || _a === void 0 ? void 0 : _a.createdBy) !== undefined; })
54
- .map(function (el) { return el.fileHandle.createdBy; });
55
- var ownerIds = [];
56
- if (ownerIdsFromFileHandles) {
57
- ownerIds.push.apply(ownerIds, ownerIdsFromFileHandles);
58
- }
59
- if (ownerIdsFromHeaders) {
60
- ownerIds.push.apply(ownerIds, ownerIdsFromHeaders);
61
- }
62
- // use bang operator because filter function guarentee's that file handle will be defined
63
- var userProfiles = (0, useGetInfoFromIds_1.default)({
64
- ids: ownerIds,
65
- type: 'USER_PROFILE',
66
- });
67
- var fetchData = (0, react_1.useCallback)(function () { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
68
- var currentDownloadList, currentFilesToDownload, batchFileRequest, currentBatchFileResult_1, referenceCall, currentReferences, e_1;
69
- return (0, tslib_1.__generator)(this, function (_a) {
70
- switch (_a.label) {
71
- case 0:
72
- if (!accessToken) {
73
- setIsLoading(false);
74
- // doesn't make sense with anonymous user!
75
- return [2 /*return*/];
76
- }
77
- _a.label = 1;
78
- case 1:
79
- _a.trys.push([1, 5, 6, 7]);
80
- setIsLoading(true);
81
- return [4 /*yield*/, (0, SynapseClient_1.getDownloadList)(accessToken)];
82
- case 2:
83
- currentDownloadList = _a.sent();
84
- currentFilesToDownload = currentDownloadList.filesToDownload;
85
- if (currentFilesToDownload.length === 0) {
86
- setData({
87
- downloadList: currentDownloadList,
88
- });
89
- return [2 /*return*/];
90
- }
91
- batchFileRequest = {
92
- requestedFiles: currentFilesToDownload,
93
- includeFileHandles: true,
94
- includePreSignedURLs: false,
95
- includePreviewPreSignedURLs: false,
96
- };
97
- return [4 /*yield*/, (0, SynapseClient_1.getFiles)(batchFileRequest, accessToken)
98
- // Only make entity header calls to the files that the user doesn't have access to,
99
- // which can be determined by whether the batchFileResult has a failure code for the
100
- // corresponding download list item
101
- ];
102
- case 3:
103
- currentBatchFileResult_1 = _a.sent();
104
- referenceCall = currentFilesToDownload
105
- .filter(function (el) {
106
- return (currentBatchFileResult_1.requestedFiles.find(function (batchFile) { return batchFile.fileHandleId === el.fileHandleId; }).failureCode !== undefined);
107
- })
108
- .map(function (el) {
109
- return { targetId: el.associateObjectId };
110
- });
111
- return [4 /*yield*/, (0, SynapseClient_1.getEntityHeaders)(referenceCall, accessToken)];
112
- case 4:
113
- currentReferences = _a.sent();
114
- setData({
115
- references: currentReferences,
116
- batchFileResult: currentBatchFileResult_1,
117
- downloadList: currentDownloadList,
118
- });
119
- return [3 /*break*/, 7];
120
- case 5:
121
- e_1 = _a.sent();
122
- console.error('Error in DownloadList API call : ', e_1);
123
- return [3 /*break*/, 7];
124
- case 6:
125
- setIsLoading(false);
126
- return [7 /*endfinally*/];
127
- case 7: return [2 /*return*/];
128
- }
129
- });
130
- }); }, [accessToken]);
131
- (0, react_1.useEffect)(function () {
132
- fetchData();
133
- }, [fetchData]);
134
- var clearDownloadList = function (_event) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
135
- var err_1;
136
- return (0, tslib_1.__generator)(this, function (_a) {
137
- switch (_a.label) {
138
- case 0:
139
- setIsLoading(true);
140
- _a.label = 1;
141
- case 1:
142
- _a.trys.push([1, 3, 4, 5]);
143
- return [4 /*yield*/, (0, SynapseClient_1.deleteDownloadList)(accessToken)];
144
- case 2:
145
- _a.sent();
146
- setData({
147
- downloadList: undefined,
148
- });
149
- listUpdatedCallback === null || listUpdatedCallback === void 0 ? void 0 : listUpdatedCallback();
150
- return [3 /*break*/, 5];
151
- case 3:
152
- err_1 = _a.sent();
153
- console.error('Error on clearing download list: ', err_1);
154
- return [3 /*break*/, 5];
155
- case 4:
156
- setIsLoading(false);
157
- return [7 /*endfinally*/];
158
- case 5: return [2 /*return*/];
159
- }
160
- });
161
- }); };
162
- var deleteFileFromList = function (fileHandleId, associateObjectId) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
163
- var list, currentDownloadList, err_2;
164
- return (0, tslib_1.__generator)(this, function (_a) {
165
- switch (_a.label) {
166
- case 0:
167
- list = [
168
- {
169
- fileHandleId: fileHandleId,
170
- associateObjectId: associateObjectId,
171
- associateObjectType: synapseTypes_1.FileHandleAssociateType.FileEntity,
172
- },
173
- ];
174
- setIsLoading(true);
175
- setFileBeingDeleted(fileHandleId);
176
- _a.label = 1;
177
- case 1:
178
- _a.trys.push([1, 3, 4, 5]);
179
- return [4 /*yield*/, (0, SynapseClient_1.deleteDownloadListFiles)(list, accessToken)
180
- // The current references and batchFileResult can be kept because the download
181
- // list drives the view, so the stale values in those two won't be viewed.
182
- ];
183
- case 2:
184
- currentDownloadList = _a.sent();
185
- // The current references and batchFileResult can be kept because the download
186
- // list drives the view, so the stale values in those two won't be viewed.
187
- setData({
188
- downloadList: currentDownloadList,
189
- references: references,
190
- batchFileResult: batchFileResult,
191
- });
192
- listUpdatedCallback === null || listUpdatedCallback === void 0 ? void 0 : listUpdatedCallback();
193
- return [3 /*break*/, 5];
194
- case 3:
195
- err_2 = _a.sent();
196
- console.error('Error on delete from download list', err_2);
197
- return [3 /*break*/, 5];
198
- case 4:
199
- setFileBeingDeleted('');
200
- setIsLoading(false);
201
- return [7 /*endfinally*/];
202
- case 5: return [2 /*return*/];
203
- }
204
- });
205
- }); };
206
- var sortColumn = function (column) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
207
- var isDescending_1, currentFilesToDownload;
208
- var _a;
209
- return (0, tslib_1.__generator)(this, function (_b) {
210
- try {
211
- setIsLoading(true);
212
- isDescending_1 = column === sortedColumn.column ? !sortedColumn.isDescending : false;
213
- setSortedColumn({
214
- column: column,
215
- isDescending: isDescending_1,
216
- });
217
- currentFilesToDownload = (_a = downloadList === null || downloadList === void 0 ? void 0 : downloadList.filesToDownload) !== null && _a !== void 0 ? _a : [];
218
- currentFilesToDownload.sort(function (itemA, itemB) {
219
- return sortDownLoadList(itemA, itemB, column, isDescending_1);
220
- });
221
- setData((0, tslib_1.__assign)((0, tslib_1.__assign)({}, data), { downloadList: downloadList }));
222
- listUpdatedCallback === null || listUpdatedCallback === void 0 ? void 0 : listUpdatedCallback();
223
- }
224
- catch (err) {
225
- console.error(err);
226
- }
227
- finally {
228
- setIsLoading(false);
229
- }
230
- return [2 /*return*/];
231
- });
232
- }); };
233
- var getFileHandleInfo = function (item) {
234
- var _a;
235
- var fileResult = requestedFiles.find(function (fileRes) { return fileRes.fileHandleId === item.fileHandleId; });
236
- var fileHandle = fileResult ? fileResult.fileHandle : undefined;
237
- var fileName = '';
238
- var createdBy = '';
239
- var createdOn = '';
240
- var contentSize = undefined;
241
- if (fileHandle && item) {
242
- fileName = fileHandle.fileName;
243
- createdBy = fileHandle.createdBy;
244
- createdOn = fileHandle.createdOn;
245
- contentSize = fileHandle.contentSize;
246
- }
247
- else {
248
- var requestedFile = results.find(function (req) { return req.id === item.associateObjectId; });
249
- if (requestedFiles) {
250
- fileName = requestedFile === null || requestedFile === void 0 ? void 0 : requestedFile.name;
251
- createdBy = requestedFile === null || requestedFile === void 0 ? void 0 : requestedFile.createdBy;
252
- createdOn = requestedFile === null || requestedFile === void 0 ? void 0 : requestedFile.createdOn;
253
- }
254
- }
255
- createdBy = (_a = userProfiles.find(function (el) { return el.ownerId === createdBy; })) === null || _a === void 0 ? void 0 : _a.userName;
256
- return { fileName: fileName, createdBy: createdBy, createdOn: createdOn, contentSize: contentSize };
257
- };
258
- var sortDownLoadList = function (itemA, itemB, column, isDescending) {
259
- var _a = getFileHandleInfo(itemA), fileName_A = _a.fileName, createdBy_A = _a.createdBy, createdOn_A = _a.createdOn, contentSize_A = _a.contentSize;
260
- var _b = getFileHandleInfo(itemB), fileName_B = _b.fileName, createdBy_B = _b.createdBy, createdOn_B = _b.createdOn, contentSize_B = _b.contentSize;
261
- var direction = isDescending ? 1 : -1;
262
- switch (column) {
263
- case 'file':
264
- return (fileName_B === null || fileName_B === void 0 ? void 0 : fileName_B.localeCompare(fileName_A)) * direction;
265
- case 'createdBy':
266
- return (createdBy_B === null || createdBy_B === void 0 ? void 0 : createdBy_B.localeCompare(createdBy_A)) * direction;
267
- case 'createdOn':
268
- return (createdOn_B === null || createdOn_B === void 0 ? void 0 : createdOn_B.localeCompare(createdOn_A)) * direction;
269
- case 'size':
270
- if (contentSize_A && !contentSize_B) {
271
- return -1;
272
- }
273
- else if (contentSize_B && !contentSize_A) {
274
- return 1;
275
- }
276
- else {
277
- return (contentSize_B - contentSize_A) * direction;
278
- }
279
- default:
280
- return 1;
281
- }
282
- };
283
- var filesToDownload = (_a = downloadList === null || downloadList === void 0 ? void 0 : downloadList.filesToDownload) !== null && _a !== void 0 ? _a : [];
284
- var results = (_b = references === null || references === void 0 ? void 0 : references.results) !== null && _b !== void 0 ? _b : [];
285
- var numBytes = 0;
286
- var numFiles = 0;
287
- var content = (react_1.default.createElement("div", { className: "DownloadListTable" },
288
- react_1.default.createElement("div", { style: { display: arPropsFromHasAccess ? 'none' : '' } },
289
- react_1.default.createElement("div", { className: "SRC-split download-list-table-top SRC-primary-background-color SRC-border-bottom-only" },
290
- react_1.default.createElement("span", { className: "create-package-text" },
291
- "Download List \u00A0\u00A0",
292
- isLoading && react_1.default.createElement("span", { className: "spinner" })),
293
- react_1.default.createElement("button", { className: "SRC-underline-on-hover uppercase-text", onClick: clearDownloadList, id: exports.TESTING_CLEAR_BTN_CLASS }, "Clear list")),
294
- react_1.default.createElement(ReactBootstrap.Table, { striped: true, responsive: true },
295
- react_1.default.createElement("thead", null,
296
- react_1.default.createElement("tr", null,
297
- react_1.default.createElement("th", null,
298
- "File",
299
- react_1.default.createElement("button", { className: "sort SRC-primary-background-color-hover " + (sortedColumn.column === 'file'
300
- ? 'SRC-primary-background-color'
301
- : ''), onClick: function () {
302
- sortColumn('file');
303
- } },
304
- react_1.default.createElement(IconSvg_1.default, { options: {
305
- icon: sortedColumn.column === 'file'
306
- ? sortedColumn.isDescending === false
307
- ? 'arrowDropDown'
308
- : 'arrowDropUp'
309
- : 'arrowDropDown',
310
- color: sortedColumn.column === 'file' ? 'white' : '',
311
- } }))),
312
- react_1.default.createElement("th", null, "Access"),
313
- react_1.default.createElement("th", null,
314
- "Created By",
315
- react_1.default.createElement("button", { className: "sort SRC-primary-background-color-hover " + (sortedColumn.column === 'createdBy'
316
- ? 'SRC-primary-background-color'
317
- : ''), onClick: function () {
318
- sortColumn('createdBy');
319
- } },
320
- react_1.default.createElement(IconSvg_1.default, { options: {
321
- icon: sortedColumn.column === 'createdBy'
322
- ? sortedColumn.isDescending === false
323
- ? 'arrowDropDown'
324
- : 'arrowDropUp'
325
- : 'arrowDropDown',
326
- color: sortedColumn.column === 'createdBy' ? 'white' : '',
327
- } }))),
328
- react_1.default.createElement("th", null,
329
- "Created On",
330
- react_1.default.createElement("button", { className: "sort SRC-primary-background-color-hover " + (sortedColumn.column === 'createdOn'
331
- ? 'SRC-primary-background-color'
332
- : ''), onClick: function () {
333
- sortColumn('createdOn');
334
- } },
335
- react_1.default.createElement(IconSvg_1.default, { options: {
336
- icon: sortedColumn.column === 'createdOn'
337
- ? sortedColumn.isDescending === false
338
- ? 'arrowDropDown'
339
- : 'arrowDropUp'
340
- : 'arrowDropDown',
341
- color: sortedColumn.column === 'createdOn' ? 'white' : '',
342
- } }))),
343
- react_1.default.createElement("th", null,
344
- "Size",
345
- react_1.default.createElement("button", { className: "sort SRC-primary-background-color-hover " + (sortedColumn.column === 'size'
346
- ? 'SRC-primary-background-color'
347
- : ''), onClick: function () {
348
- sortColumn('size');
349
- } },
350
- react_1.default.createElement(IconSvg_1.default, { options: {
351
- icon: sortedColumn.column === 'size'
352
- ? sortedColumn.isDescending === false
353
- ? 'arrowDropDown'
354
- : 'arrowDropUp'
355
- : 'arrowDropDown',
356
- color: sortedColumn.column === 'size' ? 'white' : '',
357
- } }))),
358
- react_1.default.createElement("th", null))),
359
- react_1.default.createElement("tbody", { className: "download-list-table" }, filesToDownload.map(function (item) {
360
- var createdBy = '';
361
- var createdOn = '';
362
- var fileName = '';
363
- var contentSize = undefined;
364
- var synId = item.associateObjectId;
365
- var fileHandleId = item.fileHandleId;
366
- var isCurrentlyBeingDeletedClass = fileBeingDeleted === fileHandleId ? 'SRC-inactive-bg' : '';
367
- // See if batch file results has this fileHandleId
368
- var fileResult = requestedFiles.find(function (fileRes) { return fileRes.fileHandleId === fileHandleId; });
369
- var fileHandle = fileResult === null || fileResult === void 0 ? void 0 : fileResult.fileHandle;
370
- var canDownload = fileHandle !== undefined;
371
- if (fileHandle) {
372
- // fileHandle is defined, this file is downloadable, show its metadata
373
- ;
374
- (createdBy = fileHandle.createdBy, createdOn = fileHandle.createdOn, fileName = fileHandle.fileName, contentSize = fileHandle.contentSize);
375
- if ((0, HasAccess_1.getDownloadTypeForFileHandle)(fileHandle) ===
376
- HasAccess_1.FileHandleDownloadTypeEnum.Accessible) {
377
- numBytes += contentSize;
378
- numFiles += 1;
379
- }
380
- }
381
- else {
382
- // file is not downloadable, only show its name from entity header info
383
- var requestedFile = results.find(function (req) { return req.id === item.associateObjectId; });
384
- fileName = requestedFile === null || requestedFile === void 0 ? void 0 : requestedFile.name;
385
- createdBy = requestedFile === null || requestedFile === void 0 ? void 0 : requestedFile.createdBy;
386
- createdOn = requestedFile === null || requestedFile === void 0 ? void 0 : requestedFile.createdOn;
387
- }
388
- createdOn = (0, moment_1.default)(createdOn).format('L LT');
389
- var userGroupHeader = userProfiles.find(function (el) { return el.ownerId === createdBy; });
390
- return (react_1.default.createElement("tr", { className: isCurrentlyBeingDeletedClass, key: fileHandleId },
391
- react_1.default.createElement("td", null,
392
- react_1.default.createElement("a", { target: "_blank", rel: "noopener noreferrer", href: getEndpoint_1.PRODUCTION_ENDPOINT_CONFIG.PORTAL + "#!Synapse:" + synId }, fileName)),
393
- react_1.default.createElement("td", null,
394
- react_1.default.createElement(HasAccess_1.default, { onHide: onHide, fileHandle: fileHandle, set_arPropsFromHasAccess: set_arPropsFromHasAccess, entityId: synId, isInDownloadList: true, forceSamePage: forceSamePage })),
395
- react_1.default.createElement("td", null,
396
- userGroupHeader && (react_1.default.createElement(UserCard_1.default, { size: 'SMALL USER CARD', ownerId: userGroupHeader.ownerId })),
397
- canDownload && !userGroupHeader && (react_1.default.createElement("span", { className: "spinner" }))),
398
- react_1.default.createElement("td", null, createdOn),
399
- react_1.default.createElement("td", null, contentSize && (0, calculateFriendlyFileSize_1.calculateFriendlyFileSize)(contentSize)),
400
- react_1.default.createElement("td", null,
401
- react_1.default.createElement("button", { className: exports.TESTING_TRASH_BTN_CLASS, onClick: fileBeingDeleted === ''
402
- ? function () { return deleteFileFromList(fileHandleId, synId); }
403
- : undefined },
404
- react_1.default.createElement("span", { className: "SRC-primary-text-color" },
405
- react_1.default.createElement(IconSvg_1.default, { options: { icon: 'delete' } }))))));
406
- }))),
407
- react_1.default.createElement(CreatePackage_1.CreatePackage, { updateDownloadList: fetchData },
408
- react_1.default.createElement(DownloadDetails_1.default, { numBytes: numBytes, numFiles: numFiles }))),
409
- arPropsFromHasAccess && (react_1.default.createElement(AccessRequirementList_1.default, (0, tslib_1.__assign)({}, arPropsFromHasAccess, { onHide: function () {
410
- set_arPropsFromHasAccess(undefined);
411
- } })))));
412
- var onHideModal = (0, react_1.useCallback)(function () {
413
- if (arPropsFromHasAccess) {
414
- set_arPropsFromHasAccess(undefined);
415
- }
416
- else {
417
- onHide === null || onHide === void 0 ? void 0 : onHide();
418
- }
419
- }, [arPropsFromHasAccess, onHide]);
420
- if (renderAsModal) {
421
- var closeBtn = {
422
- position: 'absolute',
423
- top: 5,
424
- right: 20,
425
- zIndex: 10,
426
- };
427
- return (react_1.default.createElement(ReactBootstrap.Modal, { centered: true, animation: false, size: 'lg', dialogClassName: 'download-list-modal-container', show: true },
428
- react_1.default.createElement(ReactBootstrap.Modal.Header, null,
429
- react_1.default.createElement("button", { style: closeBtn, onClick: onHideModal },
430
- react_1.default.createElement(IconSvg_1.default, { options: { icon: 'close', size: '21px' } }))),
431
- content));
432
- }
433
- else {
434
- return content;
435
- }
436
- }
437
- exports.default = DownloadListTable;
438
- //# sourceMappingURL=DownloadListTable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DownloadListTable.js","sourceRoot":"","sources":["../../../src/lib/containers/download_list/DownloadListTable.tsx"],"names":[],"mappings":"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"}