synapse-react-client 3.0.16 → 3.0.19
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.
- package/dist/assets/icons/Sort.d.ts +1 -1
- package/dist/containers/EntityLink.js +6 -4
- package/dist/containers/EntityLink.js.map +1 -1
- package/dist/containers/FullWidthAlert.js +6 -6
- package/dist/containers/FullWidthAlert.js.map +1 -1
- package/dist/containers/HasAccess.d.ts +2 -1
- package/dist/containers/HasAccess.js.map +1 -1
- package/dist/containers/IDUReport.d.ts +6 -0
- package/dist/containers/IDUReport.js +41 -0
- package/dist/containers/IDUReport.js.map +1 -0
- package/dist/containers/IDUReportSubmissionInfo.d.ts +7 -0
- package/dist/containers/IDUReportSubmissionInfo.js +50 -0
- package/dist/containers/IDUReportSubmissionInfo.js.map +1 -0
- package/dist/containers/IconSvg.d.ts +2 -1
- package/dist/containers/IconSvg.js +2 -0
- package/dist/containers/IconSvg.js.map +1 -1
- package/dist/containers/MarkdownSynapse.d.ts +1 -0
- package/dist/containers/MarkdownSynapse.js +6 -0
- package/dist/containers/MarkdownSynapse.js.map +1 -1
- package/dist/containers/SynapseNavDrawer.js.map +1 -1
- package/dist/containers/UserOrTeamBadge.js +7 -1
- package/dist/containers/UserOrTeamBadge.js.map +1 -1
- package/dist/containers/row_renderers/utils/Icon.js +53 -49
- package/dist/containers/row_renderers/utils/Icon.js.map +1 -1
- package/dist/containers/user_profile_links/UserProfileLinks.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dist/style/components/_all.scss +2 -1
- package/dist/style/components/_global-alert.scss +50 -1
- package/dist/style/components/_governance-dashboard.scss +61 -0
- package/dist/style/components/_submission-page.scss +6 -0
- package/dist/style/components/_synapse-homepage.scss +1 -0
- package/dist/style/main.css +126 -0
- package/dist/umd/synapse-react-client.development.css +124 -0
- package/dist/umd/synapse-react-client.development.css.map +2 -2
- package/dist/umd/synapse-react-client.development.js +5178 -5031
- package/dist/umd/synapse-react-client.development.js.map +3 -3
- package/dist/umd/synapse-react-client.production.min.css +1 -1
- package/dist/umd/synapse-react-client.production.min.js +83 -83
- package/dist/utils/APIConstants.d.ts +1 -0
- package/dist/utils/APIConstants.js +2 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +18 -1
- package/dist/utils/SynapseClient.js +27 -4
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/dataaccess/useGetAccessRequirement.d.ts +3 -1
- package/dist/utils/hooks/SynapseAPI/dataaccess/useGetAccessRequirement.js +15 -1
- package/dist/utils/hooks/SynapseAPI/dataaccess/useGetAccessRequirement.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/useGetApprovedSubmissionInfo.d.ts +5 -0
- package/dist/utils/hooks/SynapseAPI/useGetApprovedSubmissionInfo.js +24 -0
- package/dist/utils/hooks/SynapseAPI/useGetApprovedSubmissionInfo.js.map +1 -0
- package/dist/utils/synapseTypes/AccessApproval.d.ts +30 -0
- package/dist/utils/synapseTypes/AccessApproval.js +6 -1
- package/dist/utils/synapseTypes/AccessApproval.js.map +1 -1
- package/dist/utils/synapseTypes/AccessSubmission.d.ts +44 -0
- package/dist/utils/synapseTypes/AccessSubmission.js +15 -0
- package/dist/utils/synapseTypes/AccessSubmission.js.map +1 -0
- package/dist/utils/synapseTypes/SubmissionInfo.d.ts +17 -0
- package/dist/utils/synapseTypes/SubmissionInfo.js +3 -0
- package/dist/utils/synapseTypes/SubmissionInfo.js.map +1 -0
- package/package.json +3 -4
- package/dist/containers/download_list/ShowDownload.d.ts +0 -13
- package/dist/containers/download_list/ShowDownload.js +0 -74
- package/dist/containers/download_list/ShowDownload.js.map +0 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { SortDirection } from './AccessApproval';
|
|
2
|
+
import { AccessType, SubmissionState } from './AccessRequirement';
|
|
3
|
+
export declare enum SubmissionReviewerFilterType {
|
|
4
|
+
ALL = "ALL",
|
|
5
|
+
ACT_ONLY = "ACT_ONLY",
|
|
6
|
+
DELEGATED_ONLY = "DELEGATED_ONLY"
|
|
7
|
+
}
|
|
8
|
+
export declare enum SubmissionSortField {
|
|
9
|
+
MODIFIED_ON = "MODIFIED_ON",
|
|
10
|
+
CREATED_ON = "CREATED_ON"
|
|
11
|
+
}
|
|
12
|
+
export interface SubmissionSearchSort {
|
|
13
|
+
field: SubmissionSortField;
|
|
14
|
+
direction: SortDirection;
|
|
15
|
+
}
|
|
16
|
+
export interface AccessorChange {
|
|
17
|
+
userId: string;
|
|
18
|
+
type: AccessType;
|
|
19
|
+
}
|
|
20
|
+
export interface SubmissionSearchRequest {
|
|
21
|
+
accessorId?: string;
|
|
22
|
+
accessRequirementId?: string;
|
|
23
|
+
submissionState?: SubmissionState;
|
|
24
|
+
reviewerId?: string;
|
|
25
|
+
reviewerFilterType?: SubmissionReviewerFilterType;
|
|
26
|
+
sort?: SubmissionSearchSort[];
|
|
27
|
+
nextPageToken?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface SubmissionSearchResult {
|
|
30
|
+
id: string;
|
|
31
|
+
createdOn: string;
|
|
32
|
+
modifiedOn: string;
|
|
33
|
+
accessRequirementId: string;
|
|
34
|
+
accessRequirementVersion: string;
|
|
35
|
+
accessRequirementName: string;
|
|
36
|
+
accessRequirementReviewerIds: string[];
|
|
37
|
+
submitterId: string;
|
|
38
|
+
accessorChanges: AccessorChange[];
|
|
39
|
+
state: SubmissionState;
|
|
40
|
+
}
|
|
41
|
+
export interface SubmissionSearchResponse {
|
|
42
|
+
results: SubmissionSearchResult[];
|
|
43
|
+
nextPageToken?: string;
|
|
44
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SubmissionSortField = exports.SubmissionReviewerFilterType = void 0;
|
|
4
|
+
var SubmissionReviewerFilterType;
|
|
5
|
+
(function (SubmissionReviewerFilterType) {
|
|
6
|
+
SubmissionReviewerFilterType["ALL"] = "ALL";
|
|
7
|
+
SubmissionReviewerFilterType["ACT_ONLY"] = "ACT_ONLY";
|
|
8
|
+
SubmissionReviewerFilterType["DELEGATED_ONLY"] = "DELEGATED_ONLY";
|
|
9
|
+
})(SubmissionReviewerFilterType = exports.SubmissionReviewerFilterType || (exports.SubmissionReviewerFilterType = {}));
|
|
10
|
+
var SubmissionSortField;
|
|
11
|
+
(function (SubmissionSortField) {
|
|
12
|
+
SubmissionSortField["MODIFIED_ON"] = "MODIFIED_ON";
|
|
13
|
+
SubmissionSortField["CREATED_ON"] = "CREATED_ON";
|
|
14
|
+
})(SubmissionSortField = exports.SubmissionSortField || (exports.SubmissionSortField = {}));
|
|
15
|
+
//# sourceMappingURL=AccessSubmission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccessSubmission.js","sourceRoot":"","sources":["../../../src/lib/utils/synapseTypes/AccessSubmission.ts"],"names":[],"mappings":";;;AAGA,IAAY,4BAIX;AAJD,WAAY,4BAA4B;IACtC,2CAAW,CAAA;IACX,qDAAqB,CAAA;IACrB,iEAAiC,CAAA;AACnC,CAAC,EAJW,4BAA4B,GAA5B,oCAA4B,KAA5B,oCAA4B,QAIvC;AAED,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,kDAA2B,CAAA;IAC3B,gDAAyB,CAAA;AAC3B,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AccessorChange } from './AccessRequirement';
|
|
2
|
+
export interface SubmissionInfoPageRequest {
|
|
3
|
+
accessRequirementId: string;
|
|
4
|
+
nextPageToken?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SubmissionInfoPage {
|
|
7
|
+
results: SubmissionInfo[];
|
|
8
|
+
nextPageToken?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface SubmissionInfo {
|
|
11
|
+
institution: string;
|
|
12
|
+
projectLead: string;
|
|
13
|
+
intendedDataUseStatement: string;
|
|
14
|
+
modifiedOn: string;
|
|
15
|
+
submittedBy: string;
|
|
16
|
+
accessorChanges?: AccessorChange[];
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SubmissionInfo.js","sourceRoot":"","sources":["../../../src/lib/utils/synapseTypes/SubmissionInfo.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synapse-react-client",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.19",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -73,8 +73,7 @@
|
|
|
73
73
|
"react-popper": "^2.2.5",
|
|
74
74
|
"react-query": "3.33.1",
|
|
75
75
|
"react-reflex": "^4.0.0",
|
|
76
|
-
"react-router": "^5.
|
|
77
|
-
"react-router-dom": "^5.3.0",
|
|
76
|
+
"react-router-dom": "^5.3.3",
|
|
78
77
|
"react-select": "^4.3.1",
|
|
79
78
|
"react-sizeme": "^2.6.12",
|
|
80
79
|
"react-switch": "^5.0.1",
|
|
@@ -139,7 +138,7 @@
|
|
|
139
138
|
"@types/react-mailchimp-subscribe": "^2.0.2",
|
|
140
139
|
"@types/react-measure": "^2.0.4",
|
|
141
140
|
"@types/react-plotly.js": "^2.2.4",
|
|
142
|
-
"@types/react-router-dom": "
|
|
141
|
+
"@types/react-router-dom": "^5.3.3",
|
|
143
142
|
"@types/react-select": "^4.0.17",
|
|
144
143
|
"@types/react-transition-group": "^2.0.16",
|
|
145
144
|
"@types/react-virtualized-auto-sizer": "^1.0.1",
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { RouteComponentProps } from 'react-router-dom';
|
|
3
|
-
export declare type ShowDownloadProps = {
|
|
4
|
-
to?: string;
|
|
5
|
-
};
|
|
6
|
-
/**
|
|
7
|
-
* Nav toolbar UI to show how many files are in the Web-based Download List.
|
|
8
|
-
*
|
|
9
|
-
* @deprecated Moving to using the new Download List Services instead. http://rest-docs.synapse.org/rest/#org.sagebionetworks.repo.web.controller.DownloadListController
|
|
10
|
-
*/
|
|
11
|
-
declare function ShowDownload({ to }: ShowDownloadProps & RouteComponentProps): JSX.Element;
|
|
12
|
-
declare const _default: React.ComponentClass<Pick<ShowDownloadProps & RouteComponentProps<{}, import("react-router").StaticContext, unknown>, "to">, any> & import("react-router").WithRouterStatics<typeof ShowDownload>;
|
|
13
|
-
export default _default;
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var tslib_1 = require("tslib");
|
|
4
|
-
var react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
5
|
-
var fontawesome_svg_core_1 = require("@fortawesome/fontawesome-svg-core");
|
|
6
|
-
var free_solid_svg_icons_1 = require("@fortawesome/free-solid-svg-icons");
|
|
7
|
-
var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
|
|
8
|
-
var react_router_dom_1 = require("react-router-dom");
|
|
9
|
-
var utils_1 = require("../../utils");
|
|
10
|
-
var dispatchDownloadListChangeEvent_1 = require("../../utils/functions/dispatchDownloadListChangeEvent");
|
|
11
|
-
var DownloadListTable_1 = (0, tslib_1.__importDefault)(require("./DownloadListTable"));
|
|
12
|
-
var react_tooltip_1 = (0, tslib_1.__importDefault)(require("react-tooltip"));
|
|
13
|
-
var SynapseTableConstants_1 = require("../table/SynapseTableConstants");
|
|
14
|
-
var SynapseContext_1 = require("../../utils/SynapseContext");
|
|
15
|
-
fontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faDownload);
|
|
16
|
-
/**
|
|
17
|
-
* Nav toolbar UI to show how many files are in the Web-based Download List.
|
|
18
|
-
*
|
|
19
|
-
* @deprecated Moving to using the new Download List Services instead. http://rest-docs.synapse.org/rest/#org.sagebionetworks.repo.web.controller.DownloadListController
|
|
20
|
-
*/
|
|
21
|
-
function ShowDownload(_a) {
|
|
22
|
-
var _this = this;
|
|
23
|
-
var _b;
|
|
24
|
-
var to = _a.to;
|
|
25
|
-
var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
|
|
26
|
-
var _c = (0, react_1.useState)(undefined), downloadList = _c[0], setDownloadList = _c[1];
|
|
27
|
-
var _d = (0, react_1.useState)(false), showDownloadModal = _d[0], setShowDownloadModal = _d[1];
|
|
28
|
-
var idForToolTip = 'SHOW_DOWNLOAD_TOOLTIP';
|
|
29
|
-
var tooltipText = 'Click to view items in your download list.';
|
|
30
|
-
(0, react_1.useEffect)(function () {
|
|
31
|
-
if (!accessToken) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
var updateDownloadList = function (event) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
|
|
35
|
-
return (0, tslib_1.__generator)(this, function (_a) {
|
|
36
|
-
if (event === null || event === void 0 ? void 0 : event.detail) {
|
|
37
|
-
setDownloadList(event.detail);
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
// for initialization
|
|
41
|
-
utils_1.SynapseClient.getDownloadList(accessToken).then(function (downloadList) {
|
|
42
|
-
setDownloadList(downloadList);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
return [2 /*return*/];
|
|
46
|
-
});
|
|
47
|
-
}); };
|
|
48
|
-
updateDownloadList();
|
|
49
|
-
document.addEventListener(dispatchDownloadListChangeEvent_1.DOWNLOAD_LIST_CHANGE_EVENT, updateDownloadList);
|
|
50
|
-
return function () {
|
|
51
|
-
document.removeEventListener(dispatchDownloadListChangeEvent_1.DOWNLOAD_LIST_CHANGE_EVENT, updateDownloadList);
|
|
52
|
-
};
|
|
53
|
-
}, [accessToken]);
|
|
54
|
-
if (!accessToken) {
|
|
55
|
-
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
56
|
-
}
|
|
57
|
-
var size = (_b = downloadList === null || downloadList === void 0 ? void 0 : downloadList.filesToDownload.length) !== null && _b !== void 0 ? _b : 0;
|
|
58
|
-
if (size === 0 && !showDownloadModal) {
|
|
59
|
-
// close only if the download modal is already closed too
|
|
60
|
-
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
61
|
-
}
|
|
62
|
-
var positionClass = to ? 'position-by-anchor' : 'position-by-button';
|
|
63
|
-
var content = (react_1.default.createElement(react_1.default.Fragment, null,
|
|
64
|
-
react_1.default.createElement("span", { id: idForToolTip, "data-for": idForToolTip, "data-tip": tooltipText },
|
|
65
|
-
react_1.default.createElement("span", { className: "icon-container" },
|
|
66
|
-
react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { icon: "download" })),
|
|
67
|
-
react_1.default.createElement("span", { className: "download-size " + positionClass }, size)),
|
|
68
|
-
react_1.default.createElement(react_tooltip_1.default, { delayShow: SynapseTableConstants_1.TOOLTIP_DELAY_SHOW, place: 'bottom', type: 'dark', effect: 'solid', border: true, id: idForToolTip })));
|
|
69
|
-
return to ? (react_1.default.createElement(react_router_dom_1.Link, { className: "Download-Link SRC-userImgSmall", to: to }, content)) : (react_1.default.createElement(react_1.default.Fragment, null,
|
|
70
|
-
react_1.default.createElement("button", { onClick: function () { return setShowDownloadModal(true); }, className: "Download-Link" }, content),
|
|
71
|
-
showDownloadModal && (react_1.default.createElement(DownloadListTable_1.default, { renderAsModal: true, onHide: function () { return setShowDownloadModal(false); } }))));
|
|
72
|
-
}
|
|
73
|
-
exports.default = (0, react_router_dom_1.withRouter)(ShowDownload);
|
|
74
|
-
//# sourceMappingURL=ShowDownload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShowDownload.js","sourceRoot":"","sources":["../../../src/lib/containers/download_list/ShowDownload.tsx"],"names":[],"mappings":"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"}
|