synapse-react-client 3.0.32 → 3.0.33
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/containers/Carousel.js +5 -2
- package/dist/containers/Carousel.js.map +1 -1
- package/dist/containers/CopyToClipboardInput.js +2 -2
- package/dist/containers/CopyToClipboardInput.js.map +1 -1
- package/dist/containers/EntityIcon.d.ts +1 -0
- package/dist/containers/EntityIcon.js +3 -2
- package/dist/containers/EntityIcon.js.map +1 -1
- package/dist/containers/GenericCard.d.ts +18 -7
- package/dist/containers/GenericCard.js +84 -92
- package/dist/containers/GenericCard.js.map +1 -1
- package/dist/containers/IconSvg.d.ts +1 -1
- package/dist/containers/IconSvg.js +6 -0
- package/dist/containers/IconSvg.js.map +1 -1
- package/dist/containers/MarkdownSynapse.d.ts +23 -9
- package/dist/containers/MarkdownSynapse.js +30 -30
- package/dist/containers/MarkdownSynapse.js.map +1 -1
- package/dist/containers/dataaccess/SubmissionPage.js +6 -6
- package/dist/containers/dataaccess/SubmissionPage.js.map +1 -1
- package/dist/containers/entity_finder/EntityFinder.js +12 -49
- package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
- package/dist/containers/entity_finder/details/EntityDetailsList.d.ts +2 -0
- package/dist/containers/entity_finder/details/EntityDetailsList.js +3 -3
- package/dist/containers/entity_finder/details/EntityDetailsList.js.map +1 -1
- package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +1 -1
- package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js +1 -1
- package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js.map +1 -1
- package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js +1 -1
- package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/containers/entity_finder/details/view/DetailsView.js +1 -1
- package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
- package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js +2 -2
- package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js.map +1 -1
- package/dist/containers/entity_finder/useEntitySelection.d.ts +4 -0
- package/dist/containers/entity_finder/useEntitySelection.js +56 -0
- package/dist/containers/entity_finder/useEntitySelection.js.map +1 -0
- package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js +5 -2
- package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js.map +1 -1
- package/dist/containers/evaluation_queues/EvaluationCard.js +4 -4
- package/dist/containers/evaluation_queues/EvaluationCard.js.map +1 -1
- package/dist/containers/evaluation_queues/EvaluationEditor.js +15 -15
- package/dist/containers/evaluation_queues/EvaluationEditor.js.map +1 -1
- package/dist/containers/evaluation_queues/EvaluationEditorPage.js +1 -1
- package/dist/containers/evaluation_queues/EvaluationEditorPage.js.map +1 -1
- package/dist/containers/evaluation_queues/EvaluationRoundEditor.js +1 -1
- package/dist/containers/evaluation_queues/EvaluationRoundEditor.js.map +1 -1
- package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js +1 -1
- package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js.map +1 -1
- package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js +1 -1
- package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js +8 -1
- package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js.map +1 -1
- package/dist/containers/personal_access_token/AccessTokenPage.js +11 -39
- package/dist/containers/personal_access_token/AccessTokenPage.js.map +1 -1
- package/dist/containers/personal_access_token/CreateAccessTokenModal.js +4 -4
- package/dist/containers/personal_access_token/CreateAccessTokenModal.js.map +1 -1
- package/dist/containers/provenance/ActivityNodeLabel.d.ts +3 -0
- package/dist/containers/provenance/ActivityNodeLabel.js +27 -0
- package/dist/containers/provenance/ActivityNodeLabel.js.map +1 -0
- package/dist/containers/provenance/EntityNodeLabel.d.ts +3 -0
- package/dist/containers/provenance/EntityNodeLabel.js +29 -0
- package/dist/containers/provenance/EntityNodeLabel.js.map +1 -0
- package/dist/containers/provenance/EntityPlaceholderNodeLabel.d.ts +6 -0
- package/dist/containers/provenance/EntityPlaceholderNodeLabel.js +23 -0
- package/dist/containers/provenance/EntityPlaceholderNodeLabel.js.map +1 -0
- package/dist/containers/provenance/ExpandGraphNodeLabel.d.ts +7 -0
- package/dist/containers/provenance/ExpandGraphNodeLabel.js +18 -0
- package/dist/containers/provenance/ExpandGraphNodeLabel.js.map +1 -0
- package/dist/containers/provenance/ExternalGraphNodeLabel.d.ts +3 -0
- package/dist/containers/provenance/ExternalGraphNodeLabel.js +16 -0
- package/dist/containers/provenance/ExternalGraphNodeLabel.js.map +1 -0
- package/dist/containers/provenance/ProvenanceEntityIcon.d.ts +6 -0
- package/dist/containers/provenance/ProvenanceEntityIcon.js +87 -0
- package/dist/containers/provenance/ProvenanceEntityIcon.js.map +1 -0
- package/dist/containers/provenance/ProvenanceExternalIcon.d.ts +5 -0
- package/dist/containers/provenance/ProvenanceExternalIcon.js +26 -0
- package/dist/containers/provenance/ProvenanceExternalIcon.js.map +1 -0
- package/dist/containers/provenance/ProvenanceGraph.d.ts +12 -0
- package/dist/containers/provenance/ProvenanceGraph.js +309 -0
- package/dist/containers/provenance/ProvenanceGraph.js.map +1 -0
- package/dist/containers/provenance/ProvenanceGraphUtils.d.ts +66 -0
- package/dist/containers/provenance/ProvenanceGraphUtils.js +175 -0
- package/dist/containers/provenance/ProvenanceGraphUtils.js.map +1 -0
- package/dist/containers/provenance/ProvenanceUtils.d.ts +32 -0
- package/dist/containers/provenance/ProvenanceUtils.js +145 -0
- package/dist/containers/provenance/ProvenanceUtils.js.map +1 -0
- package/dist/containers/provenance/UndefinedNodeLabel.d.ts +2 -0
- package/dist/containers/provenance/UndefinedNodeLabel.js +14 -0
- package/dist/containers/provenance/UndefinedNodeLabel.js.map +1 -0
- package/dist/containers/row_renderers/utils/CardFooter.js +1 -1
- package/dist/containers/row_renderers/utils/CardFooter.js.map +1 -1
- package/dist/containers/synapse_form_wrapper/SynapseFormUtils.d.ts +6 -0
- package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js +43 -0
- package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js.map +1 -0
- package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.d.ts +0 -4
- package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +14 -45
- package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
- package/dist/containers/synapse_table_functions/SynapseTableCell.js +3 -1
- package/dist/containers/synapse_table_functions/SynapseTableCell.js.map +1 -1
- package/dist/containers/table/SynapseTable.js +4 -3
- package/dist/containers/table/SynapseTable.js.map +1 -1
- package/dist/containers/table/TablePagination.js +7 -2
- package/dist/containers/table/TablePagination.js.map +1 -1
- package/dist/containers/table/datasets/DatasetItemsEditor.d.ts +18 -7
- package/dist/containers/table/datasets/DatasetItemsEditor.js +95 -28
- package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/containers/trash/TrashCanList.d.ts +2 -0
- package/dist/containers/trash/TrashCanList.js +144 -0
- package/dist/containers/trash/TrashCanList.js.map +1 -0
- package/dist/containers/widgets/Checkbox.d.ts +1 -0
- package/dist/containers/widgets/Checkbox.js +4 -4
- package/dist/containers/widgets/Checkbox.js.map +1 -1
- package/dist/containers/widgets/Range.d.ts +1 -1
- package/dist/containers/widgets/Range.js +2 -2
- package/dist/containers/widgets/Range.js.map +1 -1
- package/dist/containers/widgets/SynapseImage.d.ts +1 -1
- package/dist/containers/widgets/facet-nav/FacetNavPanel.js +9 -1
- package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +1 -1
- package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/style/bootstrap4_backports/_base-import.scss +1 -0
- package/dist/style/components/_all.scss +2 -1
- package/dist/style/components/_copy-to-clipboard.scss +2 -0
- package/dist/style/components/_dataset-editor.scss +4 -1
- package/dist/style/components/_oauth-editor.scss +33 -0
- package/dist/style/components/_provenance.scss +71 -0
- package/dist/style/main.css +111 -3
- package/dist/umd/synapse-react-client.development.css +112 -3
- package/dist/umd/synapse-react-client.development.css.map +2 -2
- package/dist/umd/synapse-react-client.development.js +70529 -55977
- 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 +97 -94
- package/dist/umd.index.d.ts +5 -3
- package/dist/umd.index.js +5 -3
- package/dist/umd.index.js.map +1 -1
- package/dist/utils/APIConstants.d.ts +8 -0
- package/dist/utils/APIConstants.js +19 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +37 -9
- package/dist/utils/SynapseClient.js +66 -13
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.d.ts +2 -1
- package/dist/utils/functions/EntityTypeUtils.js +2 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/index.d.ts +1 -0
- package/dist/utils/hooks/SynapseAPI/index.js +1 -0
- package/dist/utils/hooks/SynapseAPI/index.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/oauth/index.d.ts +1 -0
- package/dist/utils/hooks/SynapseAPI/oauth/index.js +5 -0
- package/dist/utils/hooks/SynapseAPI/oauth/index.js.map +1 -0
- package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.d.ts +9 -0
- package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js +79 -0
- package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js.map +1 -0
- package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.d.ts +6 -0
- package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js +81 -0
- package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js.map +1 -0
- package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.d.ts +4 -0
- package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js +21 -0
- package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js.map +1 -0
- package/dist/utils/hooks/useGetInfoFromIds.js +2 -1
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.d.ts +20 -22
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js +28 -32
- package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
- package/dist/utils/synapseTypes/EntityHeader.d.ts +2 -0
- package/dist/utils/synapseTypes/OAuthClient.d.ts +31 -0
- package/dist/utils/synapseTypes/OAuthClient.js +12 -0
- package/dist/utils/synapseTypes/OAuthClient.js.map +1 -0
- package/dist/utils/synapseTypes/Provenance/Provenance.d.ts +41 -0
- package/dist/utils/synapseTypes/Provenance/Provenance.js +6 -0
- package/dist/utils/synapseTypes/Provenance/Provenance.js.map +1 -0
- package/dist/utils/synapseTypes/Table/Dataset.d.ts +13 -9
- package/dist/utils/synapseTypes/Table/Dataset.js.map +1 -1
- package/dist/utils/synapseTypes/TrashedEntity.d.ts +17 -0
- package/dist/utils/synapseTypes/TrashedEntity.js +3 -0
- package/dist/utils/synapseTypes/TrashedEntity.js.map +1 -0
- package/dist/utils/synapseTypes/VersionInfo.d.ts +2 -2
- package/dist/utils/synapseTypes/index.d.ts +1 -0
- package/dist/utils/synapseTypes/index.js +1 -0
- package/dist/utils/synapseTypes/index.js.map +1 -1
- package/package.json +10 -4
- package/dist/containers/HasAccess.d.ts +0 -85
- package/dist/containers/HasAccess.js +0 -353
- package/dist/containers/HasAccess.js.map +0 -1
|
@@ -1,353 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var _a;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.getDownloadTypeForFileHandle = exports.FileHandleDownloadTypeEnum = exports.GIGABYTE_SIZE = void 0;
|
|
5
|
-
var tslib_1 = require("tslib");
|
|
6
|
-
/**
|
|
7
|
-
* To be reworked so that HasAccess component doesn't need to request file handle information
|
|
8
|
-
* because that information can be obtained in the parent component
|
|
9
|
-
*
|
|
10
|
-
* For example in SynapseTable.tsx, the variable "fileEntityHandle" is available
|
|
11
|
-
* for each row Synapse id to store file handle information.
|
|
12
|
-
* If the row Synapse id doesn't return a file handle, "fileEntityHandle" will contain
|
|
13
|
-
* an object { success:boolean = false , message:string }
|
|
14
|
-
* If the row Synapse id returns a file handle, "fileEntityHandle" will contain
|
|
15
|
-
* an object { success:boolean = true, data: {fileEntity, fileHandle} }
|
|
16
|
-
*
|
|
17
|
-
* To set up "fileEntityHandle", the parent component should import "FileEntityHandleQueryWrapper"
|
|
18
|
-
* and pass a callback function to "FileEntityHandleQueryWrapper" so that once the file handle information
|
|
19
|
-
* is returned, the success for failure result can be saved in the parent state.
|
|
20
|
-
* See SynapseTable.tsx as an example.
|
|
21
|
-
*/
|
|
22
|
-
var React = tslib_1.__importStar(require("react"));
|
|
23
|
-
var utils_1 = require("../utils");
|
|
24
|
-
var getEndpoint_1 = require("../utils/functions/getEndpoint");
|
|
25
|
-
var synapseTypes_1 = require("../utils/synapseTypes/");
|
|
26
|
-
var CloudProviderFileHandle_1 = require("../utils/synapseTypes/CloudProviderFileHandle");
|
|
27
|
-
var SynapseTableConstants_1 = require("./table/SynapseTableConstants");
|
|
28
|
-
var AccessRequirementList_1 = tslib_1.__importStar(require("./access_requirement_list/AccessRequirementList"));
|
|
29
|
-
var SynapseConstants_1 = require("../utils/SynapseConstants");
|
|
30
|
-
var SynapseContext_1 = require("../utils/SynapseContext");
|
|
31
|
-
var IconSvg_1 = tslib_1.__importDefault(require("./IconSvg"));
|
|
32
|
-
var useTheme_1 = require("../utils/hooks/useTheme");
|
|
33
|
-
var Tooltip_1 = tslib_1.__importDefault(require("../utils/tooltip/Tooltip"));
|
|
34
|
-
exports.GIGABYTE_SIZE = Math.pow(2, 30);
|
|
35
|
-
var FileHandleDownloadTypeEnum;
|
|
36
|
-
(function (FileHandleDownloadTypeEnum) {
|
|
37
|
-
FileHandleDownloadTypeEnum["ExternalCloudFile"] = "ExternalCloudFile";
|
|
38
|
-
FileHandleDownloadTypeEnum["ExternalFileLink"] = "ExternalFileLink";
|
|
39
|
-
FileHandleDownloadTypeEnum["TooLarge"] = "TooLarge";
|
|
40
|
-
FileHandleDownloadTypeEnum["Accessible"] = "Accessible";
|
|
41
|
-
FileHandleDownloadTypeEnum["AccessBlockedByRestriction"] = "AccessBlockedByRestriction";
|
|
42
|
-
FileHandleDownloadTypeEnum["AccessBlockedByACL"] = "AccessBlockedByACL";
|
|
43
|
-
FileHandleDownloadTypeEnum["AccessBlockedToAnonymous"] = "AccessBlockedToAnonymous";
|
|
44
|
-
FileHandleDownloadTypeEnum["NoFileHandle"] = "NoFileHandle";
|
|
45
|
-
})(FileHandleDownloadTypeEnum = exports.FileHandleDownloadTypeEnum || (exports.FileHandleDownloadTypeEnum = {}));
|
|
46
|
-
var getDownloadTypeForFileHandle = function (fileHandle, isInDownloadList) {
|
|
47
|
-
if (fileHandle && !isInDownloadList) {
|
|
48
|
-
return FileHandleDownloadTypeEnum.Accessible;
|
|
49
|
-
}
|
|
50
|
-
var concreteType = fileHandle.concreteType, contentSize = fileHandle.contentSize;
|
|
51
|
-
// check if it's too large
|
|
52
|
-
if (contentSize >= exports.GIGABYTE_SIZE) {
|
|
53
|
-
return FileHandleDownloadTypeEnum.TooLarge;
|
|
54
|
-
}
|
|
55
|
-
// check if it's a google cloud file handle
|
|
56
|
-
if (concreteType ===
|
|
57
|
-
CloudProviderFileHandle_1.CloudProviderFileHandleConcreteTypeEnum.GoogleCloudFileHandle) {
|
|
58
|
-
return FileHandleDownloadTypeEnum.ExternalCloudFile;
|
|
59
|
-
}
|
|
60
|
-
// check if it's an external file handle
|
|
61
|
-
if ((0, synapseTypes_1.implementsExternalFileHandleInterface)(fileHandle)) {
|
|
62
|
-
return FileHandleDownloadTypeEnum.ExternalFileLink;
|
|
63
|
-
}
|
|
64
|
-
// otherwise its available
|
|
65
|
-
return FileHandleDownloadTypeEnum.Accessible;
|
|
66
|
-
};
|
|
67
|
-
exports.getDownloadTypeForFileHandle = getDownloadTypeForFileHandle;
|
|
68
|
-
/**
|
|
69
|
-
* HasAccess shows if the user has access to the file or not.
|
|
70
|
-
*
|
|
71
|
-
* The component's behavior changes whether it's passed in a FileHandle or not.
|
|
72
|
-
* If passed a file handle then it will give more detailed information about the download.
|
|
73
|
-
*
|
|
74
|
-
* @export
|
|
75
|
-
* @class HasAccess
|
|
76
|
-
* @extends {React.Component<HasAccessProps, HasAccessState>}
|
|
77
|
-
*/
|
|
78
|
-
var HasAccess = /** @class */ (function (_super) {
|
|
79
|
-
tslib_1.__extends(HasAccess, _super);
|
|
80
|
-
function HasAccess(props) {
|
|
81
|
-
var _this = _super.call(this, props) || this;
|
|
82
|
-
_this.refresh = function (forceRefresh) {
|
|
83
|
-
if (_this.state.isGettingEntityInformation ||
|
|
84
|
-
_this.state.isGettingRestrictionInformation ||
|
|
85
|
-
_this.state.errorOnGetRestrictionInformation) {
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
_this.getRestrictionInformation(forceRefresh);
|
|
89
|
-
_this.getFileEntityFileHandle(forceRefresh);
|
|
90
|
-
};
|
|
91
|
-
_this.updateStateFileHandleAccessBlocked = function () {
|
|
92
|
-
var fileHandleDownloadType = _this.context.accessToken
|
|
93
|
-
? FileHandleDownloadTypeEnum.AccessBlockedByACL
|
|
94
|
-
: FileHandleDownloadTypeEnum.AccessBlockedToAnonymous;
|
|
95
|
-
_this.setState({
|
|
96
|
-
fileHandleDownloadType: fileHandleDownloadType,
|
|
97
|
-
});
|
|
98
|
-
};
|
|
99
|
-
_this.getFileEntityFileHandle = function (forceRefresh) {
|
|
100
|
-
var _a = _this.props, entityId = _a.entityId, entityVersionNumber = _a.entityVersionNumber, isInDownloadList = _a.isInDownloadList, fileHandle = _a.fileHandle;
|
|
101
|
-
if (_this.state.fileHandleDownloadType && !forceRefresh) {
|
|
102
|
-
// already know the downloadType
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
if (fileHandle) {
|
|
106
|
-
var fileHandleDownloadType = (0, exports.getDownloadTypeForFileHandle)(fileHandle, isInDownloadList);
|
|
107
|
-
_this.setState({
|
|
108
|
-
fileHandleDownloadType: fileHandleDownloadType,
|
|
109
|
-
});
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
_this.setState({
|
|
113
|
-
isGettingEntityInformation: true,
|
|
114
|
-
});
|
|
115
|
-
// fileHandle was not passed to us, ask for it.
|
|
116
|
-
// is this a FileEntity?
|
|
117
|
-
return utils_1.SynapseClient.getEntity(_this.context.accessToken, entityId, entityVersionNumber)
|
|
118
|
-
.then(function (entity) {
|
|
119
|
-
if (entity.hasOwnProperty('dataFileHandleId')) {
|
|
120
|
-
// looks like a FileEntity, get the FileHandle
|
|
121
|
-
return utils_1.SynapseClient.getFileResult(entity, _this.context.accessToken, true).then(function (fileHandle) {
|
|
122
|
-
var fileHandleDownloadType = (0, exports.getDownloadTypeForFileHandle)(fileHandle.fileHandle, isInDownloadList);
|
|
123
|
-
_this.setState({
|
|
124
|
-
fileHandleDownloadType: fileHandleDownloadType,
|
|
125
|
-
isGettingEntityInformation: false,
|
|
126
|
-
});
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
// entity looks like something else.
|
|
131
|
-
_this.setState({
|
|
132
|
-
fileHandleDownloadType: FileHandleDownloadTypeEnum.NoFileHandle,
|
|
133
|
-
isGettingEntityInformation: false,
|
|
134
|
-
});
|
|
135
|
-
return Promise.resolve();
|
|
136
|
-
}
|
|
137
|
-
})
|
|
138
|
-
.catch(function (err) {
|
|
139
|
-
// this could be a self-imposed error or one from the backend, only log the latter
|
|
140
|
-
if (err.reason) {
|
|
141
|
-
console.error('Error on get Entity = ', err);
|
|
142
|
-
}
|
|
143
|
-
// could not get entity
|
|
144
|
-
_this.updateStateFileHandleAccessBlocked();
|
|
145
|
-
_this.setState({
|
|
146
|
-
isGettingEntityInformation: false,
|
|
147
|
-
});
|
|
148
|
-
});
|
|
149
|
-
};
|
|
150
|
-
_this.getRestrictionInformation = function (forceRefresh) {
|
|
151
|
-
var entityId = _this.props.entityId;
|
|
152
|
-
if (_this.state.restrictionInformation && !forceRefresh) {
|
|
153
|
-
return;
|
|
154
|
-
}
|
|
155
|
-
_this.setState({
|
|
156
|
-
isGettingRestrictionInformation: true,
|
|
157
|
-
});
|
|
158
|
-
var request = {
|
|
159
|
-
restrictableObjectType: synapseTypes_1.RestrictableObjectType.ENTITY,
|
|
160
|
-
objectId: entityId,
|
|
161
|
-
};
|
|
162
|
-
return utils_1.SynapseClient.getRestrictionInformation(request, _this.context.accessToken)
|
|
163
|
-
.then(function (restrictionInformation) {
|
|
164
|
-
_this.setState({
|
|
165
|
-
restrictionInformation: restrictionInformation,
|
|
166
|
-
});
|
|
167
|
-
})
|
|
168
|
-
.catch(function (err) {
|
|
169
|
-
console.error('Error on getRestrictionInformation. This should not happen: ', err);
|
|
170
|
-
_this.setState({
|
|
171
|
-
errorOnGetRestrictionInformation: true,
|
|
172
|
-
});
|
|
173
|
-
})
|
|
174
|
-
.finally(function () {
|
|
175
|
-
_this.setState({
|
|
176
|
-
isGettingRestrictionInformation: false,
|
|
177
|
-
});
|
|
178
|
-
});
|
|
179
|
-
};
|
|
180
|
-
_this.renderIcon = function (downloadType, restrictionInformation) {
|
|
181
|
-
// if there are any access restrictions
|
|
182
|
-
if (restrictionInformation === null || restrictionInformation === void 0 ? void 0 : restrictionInformation.hasUnmetAccessRequirement) {
|
|
183
|
-
return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('accessClosed', theme.colors.warning); }));
|
|
184
|
-
}
|
|
185
|
-
switch (downloadType) {
|
|
186
|
-
// fileHandle available
|
|
187
|
-
case FileHandleDownloadTypeEnum.ExternalFileLink:
|
|
188
|
-
case FileHandleDownloadTypeEnum.ExternalCloudFile:
|
|
189
|
-
return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('link', theme.colors.warning); }));
|
|
190
|
-
case FileHandleDownloadTypeEnum.TooLarge:
|
|
191
|
-
return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('database', theme.colors.error); }));
|
|
192
|
-
// was FileEntity, but no fileHandle was available
|
|
193
|
-
case FileHandleDownloadTypeEnum.AccessBlockedByACL:
|
|
194
|
-
case FileHandleDownloadTypeEnum.AccessBlockedToAnonymous:
|
|
195
|
-
return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('accessClosed', theme.colors.warning); }));
|
|
196
|
-
// was a FileEntity, and fileHandle was available
|
|
197
|
-
// or was not a FileEntity, but no unmet access restrictions
|
|
198
|
-
case FileHandleDownloadTypeEnum.Accessible:
|
|
199
|
-
case FileHandleDownloadTypeEnum.NoFileHandle:
|
|
200
|
-
return (React.createElement(useTheme_1.ThemeContext.Consumer, null, function (theme) { return _this.renderIconSvg('accessOpen', theme.colors.success); }));
|
|
201
|
-
default:
|
|
202
|
-
// nothing is rendered until access requirement is loaded
|
|
203
|
-
return React.createElement(React.Fragment, null);
|
|
204
|
-
}
|
|
205
|
-
};
|
|
206
|
-
_this.handleGetAccess = function () {
|
|
207
|
-
var _a = _this.props, entityId = _a.entityId, set_arPropsFromHasAccess = _a.set_arPropsFromHasAccess;
|
|
208
|
-
utils_1.SynapseClient.getAllAccessRequirements(_this.context.accessToken, entityId).then(function (requirements) {
|
|
209
|
-
if ((0, AccessRequirementList_1.checkHasUnsportedRequirement)(requirements)) {
|
|
210
|
-
window.open("".concat((0, getEndpoint_1.getEndpoint)(getEndpoint_1.BackendDestinationEnum.PORTAL_ENDPOINT), "#!AccessRequirements:ID=").concat(entityId, "&TYPE=ENTITY"), '_blank');
|
|
211
|
-
}
|
|
212
|
-
else {
|
|
213
|
-
if (set_arPropsFromHasAccess) {
|
|
214
|
-
set_arPropsFromHasAccess({
|
|
215
|
-
accessRequirementFromProps: requirements,
|
|
216
|
-
entityId: entityId,
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
_this.setState({
|
|
221
|
-
accessRequirements: requirements,
|
|
222
|
-
displayAccessRequirement: true,
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
});
|
|
227
|
-
};
|
|
228
|
-
// Show Access Requirements
|
|
229
|
-
_this.renderARsLink = function () {
|
|
230
|
-
var entityId = _this.props.entityId;
|
|
231
|
-
var _a = _this.state, restrictionInformation = _a.restrictionInformation, displayAccessRequirement = _a.displayAccessRequirement, accessRequirements = _a.accessRequirements;
|
|
232
|
-
if (!restrictionInformation) {
|
|
233
|
-
// loading
|
|
234
|
-
return React.createElement(React.Fragment, null);
|
|
235
|
-
}
|
|
236
|
-
var hasUnmetAccessRequirement = restrictionInformation === null || restrictionInformation === void 0 ? void 0 : restrictionInformation.hasUnmetAccessRequirement;
|
|
237
|
-
var restrictionLevel = restrictionInformation === null || restrictionInformation === void 0 ? void 0 : restrictionInformation.restrictionLevel;
|
|
238
|
-
var linkText = '';
|
|
239
|
-
if (hasUnmetAccessRequirement) {
|
|
240
|
-
linkText = 'Request Access';
|
|
241
|
-
}
|
|
242
|
-
else if (synapseTypes_1.RestrictionLevel.OPEN === restrictionLevel) {
|
|
243
|
-
// they need to sign in
|
|
244
|
-
return React.createElement(React.Fragment, null);
|
|
245
|
-
}
|
|
246
|
-
else {
|
|
247
|
-
linkText = 'View Terms';
|
|
248
|
-
}
|
|
249
|
-
return (React.createElement(React.Fragment, null,
|
|
250
|
-
React.createElement("a", { style: {
|
|
251
|
-
fontSize: '14px',
|
|
252
|
-
cursor: 'pointer',
|
|
253
|
-
marginLeft: '5px',
|
|
254
|
-
verticalAlign: 'middle',
|
|
255
|
-
}, className: _this.props.className, onClick: _this.handleGetAccess }, linkText),
|
|
256
|
-
displayAccessRequirement && (React.createElement(AccessRequirementList_1.default, { entityId: entityId, accessRequirementFromProps: accessRequirements, renderAsModal: true, onHide: function () {
|
|
257
|
-
_this.setState({ displayAccessRequirement: false });
|
|
258
|
-
_this.refresh();
|
|
259
|
-
} }))));
|
|
260
|
-
};
|
|
261
|
-
_this.getRestrictionInformation = _this.getRestrictionInformation.bind(_this);
|
|
262
|
-
_this.getFileEntityFileHandle = _this.getFileEntityFileHandle.bind(_this);
|
|
263
|
-
_this.updateStateFileHandleAccessBlocked =
|
|
264
|
-
_this.updateStateFileHandleAccessBlocked.bind(_this);
|
|
265
|
-
_this.state = {
|
|
266
|
-
fileHandleDownloadType: undefined,
|
|
267
|
-
displayAccessRequirement: false,
|
|
268
|
-
accessRequirements: [],
|
|
269
|
-
isGettingEntityInformation: false,
|
|
270
|
-
isGettingRestrictionInformation: false,
|
|
271
|
-
errorOnGetRestrictionInformation: false,
|
|
272
|
-
};
|
|
273
|
-
return _this;
|
|
274
|
-
}
|
|
275
|
-
HasAccess.prototype.componentDidUpdate = function (prevProps) {
|
|
276
|
-
// SWC-5821: If the entity ID prop changes, force refresh
|
|
277
|
-
if (prevProps.entityId != this.props.entityId) {
|
|
278
|
-
this.refresh(true);
|
|
279
|
-
}
|
|
280
|
-
};
|
|
281
|
-
HasAccess.prototype.componentDidMount = function () {
|
|
282
|
-
this.refresh();
|
|
283
|
-
};
|
|
284
|
-
HasAccess.prototype.renderIconSvg = function (icon, color) {
|
|
285
|
-
return (React.createElement(IconSvg_1.default, { options: {
|
|
286
|
-
icon: icon,
|
|
287
|
-
color: color,
|
|
288
|
-
} }));
|
|
289
|
-
};
|
|
290
|
-
HasAccess.prototype.render = function () {
|
|
291
|
-
var _a = this.state, restrictionInformation = _a.restrictionInformation, fileHandleDownloadType = _a.fileHandleDownloadType;
|
|
292
|
-
if (typeof fileHandleDownloadType === 'undefined') {
|
|
293
|
-
// note, this can't be "if (!downloadType)" since DownloadTypeEnum has a 0 value (which is falsy)
|
|
294
|
-
// loading
|
|
295
|
-
return React.createElement(React.Fragment, null);
|
|
296
|
-
}
|
|
297
|
-
var tooltipText = HasAccess.tooltipText[fileHandleDownloadType];
|
|
298
|
-
if (fileHandleDownloadType ===
|
|
299
|
-
FileHandleDownloadTypeEnum.AccessBlockedByACL &&
|
|
300
|
-
(restrictionInformation === null || restrictionInformation === void 0 ? void 0 : restrictionInformation.hasUnmetAccessRequirement)) {
|
|
301
|
-
// If blocked by ACL check if blocked by Access Restrictions, those can be taken care of
|
|
302
|
-
// though they will then be blocked by ACL afterwards.
|
|
303
|
-
tooltipText =
|
|
304
|
-
HasAccess.tooltipText[FileHandleDownloadTypeEnum.AccessBlockedByRestriction];
|
|
305
|
-
}
|
|
306
|
-
var entityId = this.props.entityId;
|
|
307
|
-
var icon = this.renderIcon(fileHandleDownloadType, restrictionInformation);
|
|
308
|
-
var viewARsLink = this.renderARsLink();
|
|
309
|
-
var iconContainer = fileHandleDownloadType ===
|
|
310
|
-
FileHandleDownloadTypeEnum.AccessBlockedToAnonymous ? (React.createElement("button", { type: "button", className: SynapseConstants_1.SRC_SIGN_IN_CLASS, onClick: function (ev) {
|
|
311
|
-
if (ev.isTrusted) {
|
|
312
|
-
/*
|
|
313
|
-
There is a tricky problem -
|
|
314
|
-
The portals listens to click events for buttons with the class SRC_SIGN_IN_CLASS set, it listens to this event
|
|
315
|
-
so that it can display the login modal.
|
|
316
|
-
|
|
317
|
-
This button has an svg inside of it which is problematic because more often than not clicking this button will
|
|
318
|
-
instead click that svg. The event listener in the portals will break as a result.
|
|
319
|
-
|
|
320
|
-
Though the svg may get the actual click event, because of event bubbling this button will get its onClick called.
|
|
321
|
-
Once onClick is called we can manually dispatch an event off of this button. This does pose a problem, we end up in a
|
|
322
|
-
infinite loop because this button keeps disptaching click events, so we can use the isTrusted to recognize if onClick was
|
|
323
|
-
triggered programmatically or by user click. Lastly, using { bubbles: true } ensures the event bubbles up to the document level.
|
|
324
|
-
|
|
325
|
-
*/
|
|
326
|
-
var clickEvent = new MouseEvent('click', { bubbles: true });
|
|
327
|
-
ev.currentTarget.dispatchEvent(clickEvent);
|
|
328
|
-
}
|
|
329
|
-
} }, icon)) : (React.createElement("span", { tabIndex: 0, "data-for": entityId, "data-tip": tooltipText }, icon));
|
|
330
|
-
return (React.createElement("span", { style: { whiteSpace: 'nowrap' } },
|
|
331
|
-
tooltipText && (React.createElement(Tooltip_1.default, { title: tooltipText, id: entityId, enterNextDelay: SynapseTableConstants_1.TOOLTIP_DELAY_SHOW, placement: "top" },
|
|
332
|
-
React.createElement(React.Fragment, null,
|
|
333
|
-
iconContainer,
|
|
334
|
-
viewARsLink))),
|
|
335
|
-
!tooltipText && (React.createElement(React.Fragment, null,
|
|
336
|
-
icon,
|
|
337
|
-
" ",
|
|
338
|
-
viewARsLink))));
|
|
339
|
-
};
|
|
340
|
-
HasAccess.tooltipText = (_a = {},
|
|
341
|
-
_a[FileHandleDownloadTypeEnum.AccessBlockedToAnonymous] = 'You must sign in to access this file.',
|
|
342
|
-
// Note AccessBlockedByRestriction is never explicitly set, its value is calculated
|
|
343
|
-
_a[FileHandleDownloadTypeEnum.AccessBlockedByRestriction] = 'You must request access to this restricted file.',
|
|
344
|
-
_a[FileHandleDownloadTypeEnum.AccessBlockedByACL] = 'You do not have download access for this item.',
|
|
345
|
-
_a[FileHandleDownloadTypeEnum.TooLarge] = 'This file is too large to download as a package and must be downloaded manually.',
|
|
346
|
-
_a[FileHandleDownloadTypeEnum.ExternalFileLink] = 'This is an external link, which must be downloaded manually.',
|
|
347
|
-
_a[FileHandleDownloadTypeEnum.ExternalCloudFile] = 'This file must be downloaded manually (e.g. a file in Google Cloud).',
|
|
348
|
-
_a);
|
|
349
|
-
HasAccess.contextType = SynapseContext_1.SynapseContext;
|
|
350
|
-
return HasAccess;
|
|
351
|
-
}(React.Component));
|
|
352
|
-
exports.default = HasAccess;
|
|
353
|
-
//# sourceMappingURL=HasAccess.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HasAccess.js","sourceRoot":"","sources":["../../src/lib/containers/HasAccess.tsx"],"names":[],"mappings":"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"}
|