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.
Files changed (188) hide show
  1. package/dist/containers/Carousel.js +5 -2
  2. package/dist/containers/Carousel.js.map +1 -1
  3. package/dist/containers/CopyToClipboardInput.js +2 -2
  4. package/dist/containers/CopyToClipboardInput.js.map +1 -1
  5. package/dist/containers/EntityIcon.d.ts +1 -0
  6. package/dist/containers/EntityIcon.js +3 -2
  7. package/dist/containers/EntityIcon.js.map +1 -1
  8. package/dist/containers/GenericCard.d.ts +18 -7
  9. package/dist/containers/GenericCard.js +84 -92
  10. package/dist/containers/GenericCard.js.map +1 -1
  11. package/dist/containers/IconSvg.d.ts +1 -1
  12. package/dist/containers/IconSvg.js +6 -0
  13. package/dist/containers/IconSvg.js.map +1 -1
  14. package/dist/containers/MarkdownSynapse.d.ts +23 -9
  15. package/dist/containers/MarkdownSynapse.js +30 -30
  16. package/dist/containers/MarkdownSynapse.js.map +1 -1
  17. package/dist/containers/dataaccess/SubmissionPage.js +6 -6
  18. package/dist/containers/dataaccess/SubmissionPage.js.map +1 -1
  19. package/dist/containers/entity_finder/EntityFinder.js +12 -49
  20. package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
  21. package/dist/containers/entity_finder/details/EntityDetailsList.d.ts +2 -0
  22. package/dist/containers/entity_finder/details/EntityDetailsList.js +3 -3
  23. package/dist/containers/entity_finder/details/EntityDetailsList.js.map +1 -1
  24. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +1 -1
  25. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
  26. package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js +1 -1
  27. package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js.map +1 -1
  28. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js +1 -1
  29. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js.map +1 -1
  30. package/dist/containers/entity_finder/details/view/DetailsView.js +1 -1
  31. package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
  32. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js +2 -2
  33. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js.map +1 -1
  34. package/dist/containers/entity_finder/useEntitySelection.d.ts +4 -0
  35. package/dist/containers/entity_finder/useEntitySelection.js +56 -0
  36. package/dist/containers/entity_finder/useEntitySelection.js.map +1 -0
  37. package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js +5 -2
  38. package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js.map +1 -1
  39. package/dist/containers/evaluation_queues/EvaluationCard.js +4 -4
  40. package/dist/containers/evaluation_queues/EvaluationCard.js.map +1 -1
  41. package/dist/containers/evaluation_queues/EvaluationEditor.js +15 -15
  42. package/dist/containers/evaluation_queues/EvaluationEditor.js.map +1 -1
  43. package/dist/containers/evaluation_queues/EvaluationEditorPage.js +1 -1
  44. package/dist/containers/evaluation_queues/EvaluationEditorPage.js.map +1 -1
  45. package/dist/containers/evaluation_queues/EvaluationRoundEditor.js +1 -1
  46. package/dist/containers/evaluation_queues/EvaluationRoundEditor.js.map +1 -1
  47. package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js +1 -1
  48. package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js.map +1 -1
  49. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js +1 -1
  50. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  51. package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js +8 -1
  52. package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js.map +1 -1
  53. package/dist/containers/personal_access_token/AccessTokenPage.js +11 -39
  54. package/dist/containers/personal_access_token/AccessTokenPage.js.map +1 -1
  55. package/dist/containers/personal_access_token/CreateAccessTokenModal.js +4 -4
  56. package/dist/containers/personal_access_token/CreateAccessTokenModal.js.map +1 -1
  57. package/dist/containers/provenance/ActivityNodeLabel.d.ts +3 -0
  58. package/dist/containers/provenance/ActivityNodeLabel.js +27 -0
  59. package/dist/containers/provenance/ActivityNodeLabel.js.map +1 -0
  60. package/dist/containers/provenance/EntityNodeLabel.d.ts +3 -0
  61. package/dist/containers/provenance/EntityNodeLabel.js +29 -0
  62. package/dist/containers/provenance/EntityNodeLabel.js.map +1 -0
  63. package/dist/containers/provenance/EntityPlaceholderNodeLabel.d.ts +6 -0
  64. package/dist/containers/provenance/EntityPlaceholderNodeLabel.js +23 -0
  65. package/dist/containers/provenance/EntityPlaceholderNodeLabel.js.map +1 -0
  66. package/dist/containers/provenance/ExpandGraphNodeLabel.d.ts +7 -0
  67. package/dist/containers/provenance/ExpandGraphNodeLabel.js +18 -0
  68. package/dist/containers/provenance/ExpandGraphNodeLabel.js.map +1 -0
  69. package/dist/containers/provenance/ExternalGraphNodeLabel.d.ts +3 -0
  70. package/dist/containers/provenance/ExternalGraphNodeLabel.js +16 -0
  71. package/dist/containers/provenance/ExternalGraphNodeLabel.js.map +1 -0
  72. package/dist/containers/provenance/ProvenanceEntityIcon.d.ts +6 -0
  73. package/dist/containers/provenance/ProvenanceEntityIcon.js +87 -0
  74. package/dist/containers/provenance/ProvenanceEntityIcon.js.map +1 -0
  75. package/dist/containers/provenance/ProvenanceExternalIcon.d.ts +5 -0
  76. package/dist/containers/provenance/ProvenanceExternalIcon.js +26 -0
  77. package/dist/containers/provenance/ProvenanceExternalIcon.js.map +1 -0
  78. package/dist/containers/provenance/ProvenanceGraph.d.ts +12 -0
  79. package/dist/containers/provenance/ProvenanceGraph.js +309 -0
  80. package/dist/containers/provenance/ProvenanceGraph.js.map +1 -0
  81. package/dist/containers/provenance/ProvenanceGraphUtils.d.ts +66 -0
  82. package/dist/containers/provenance/ProvenanceGraphUtils.js +175 -0
  83. package/dist/containers/provenance/ProvenanceGraphUtils.js.map +1 -0
  84. package/dist/containers/provenance/ProvenanceUtils.d.ts +32 -0
  85. package/dist/containers/provenance/ProvenanceUtils.js +145 -0
  86. package/dist/containers/provenance/ProvenanceUtils.js.map +1 -0
  87. package/dist/containers/provenance/UndefinedNodeLabel.d.ts +2 -0
  88. package/dist/containers/provenance/UndefinedNodeLabel.js +14 -0
  89. package/dist/containers/provenance/UndefinedNodeLabel.js.map +1 -0
  90. package/dist/containers/row_renderers/utils/CardFooter.js +1 -1
  91. package/dist/containers/row_renderers/utils/CardFooter.js.map +1 -1
  92. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.d.ts +6 -0
  93. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js +43 -0
  94. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js.map +1 -0
  95. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.d.ts +0 -4
  96. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +14 -45
  97. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
  98. package/dist/containers/synapse_table_functions/SynapseTableCell.js +3 -1
  99. package/dist/containers/synapse_table_functions/SynapseTableCell.js.map +1 -1
  100. package/dist/containers/table/SynapseTable.js +4 -3
  101. package/dist/containers/table/SynapseTable.js.map +1 -1
  102. package/dist/containers/table/TablePagination.js +7 -2
  103. package/dist/containers/table/TablePagination.js.map +1 -1
  104. package/dist/containers/table/datasets/DatasetItemsEditor.d.ts +18 -7
  105. package/dist/containers/table/datasets/DatasetItemsEditor.js +95 -28
  106. package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
  107. package/dist/containers/trash/TrashCanList.d.ts +2 -0
  108. package/dist/containers/trash/TrashCanList.js +144 -0
  109. package/dist/containers/trash/TrashCanList.js.map +1 -0
  110. package/dist/containers/widgets/Checkbox.d.ts +1 -0
  111. package/dist/containers/widgets/Checkbox.js +4 -4
  112. package/dist/containers/widgets/Checkbox.js.map +1 -1
  113. package/dist/containers/widgets/Range.d.ts +1 -1
  114. package/dist/containers/widgets/Range.js +2 -2
  115. package/dist/containers/widgets/Range.js.map +1 -1
  116. package/dist/containers/widgets/SynapseImage.d.ts +1 -1
  117. package/dist/containers/widgets/facet-nav/FacetNavPanel.js +9 -1
  118. package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  119. package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +1 -1
  120. package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  121. package/dist/index.d.ts +2 -1
  122. package/dist/index.js +4 -2
  123. package/dist/index.js.map +1 -1
  124. package/dist/style/bootstrap4_backports/_base-import.scss +1 -0
  125. package/dist/style/components/_all.scss +2 -1
  126. package/dist/style/components/_copy-to-clipboard.scss +2 -0
  127. package/dist/style/components/_dataset-editor.scss +4 -1
  128. package/dist/style/components/_oauth-editor.scss +33 -0
  129. package/dist/style/components/_provenance.scss +71 -0
  130. package/dist/style/main.css +111 -3
  131. package/dist/umd/synapse-react-client.development.css +112 -3
  132. package/dist/umd/synapse-react-client.development.css.map +2 -2
  133. package/dist/umd/synapse-react-client.development.js +70529 -55977
  134. package/dist/umd/synapse-react-client.development.js.map +3 -3
  135. package/dist/umd/synapse-react-client.production.min.css +1 -1
  136. package/dist/umd/synapse-react-client.production.min.js +97 -94
  137. package/dist/umd.index.d.ts +5 -3
  138. package/dist/umd.index.js +5 -3
  139. package/dist/umd.index.js.map +1 -1
  140. package/dist/utils/APIConstants.d.ts +8 -0
  141. package/dist/utils/APIConstants.js +19 -1
  142. package/dist/utils/APIConstants.js.map +1 -1
  143. package/dist/utils/SynapseClient.d.ts +37 -9
  144. package/dist/utils/SynapseClient.js +66 -13
  145. package/dist/utils/SynapseClient.js.map +1 -1
  146. package/dist/utils/functions/EntityTypeUtils.d.ts +2 -1
  147. package/dist/utils/functions/EntityTypeUtils.js +2 -1
  148. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  149. package/dist/utils/hooks/SynapseAPI/index.d.ts +1 -0
  150. package/dist/utils/hooks/SynapseAPI/index.js +1 -0
  151. package/dist/utils/hooks/SynapseAPI/index.js.map +1 -1
  152. package/dist/utils/hooks/SynapseAPI/oauth/index.d.ts +1 -0
  153. package/dist/utils/hooks/SynapseAPI/oauth/index.js +5 -0
  154. package/dist/utils/hooks/SynapseAPI/oauth/index.js.map +1 -0
  155. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.d.ts +9 -0
  156. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js +79 -0
  157. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js.map +1 -0
  158. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.d.ts +6 -0
  159. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js +81 -0
  160. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js.map +1 -0
  161. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.d.ts +4 -0
  162. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js +21 -0
  163. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js.map +1 -0
  164. package/dist/utils/hooks/useGetInfoFromIds.js +2 -1
  165. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  166. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.d.ts +20 -22
  167. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js +28 -32
  168. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  169. package/dist/utils/synapseTypes/EntityHeader.d.ts +2 -0
  170. package/dist/utils/synapseTypes/OAuthClient.d.ts +31 -0
  171. package/dist/utils/synapseTypes/OAuthClient.js +12 -0
  172. package/dist/utils/synapseTypes/OAuthClient.js.map +1 -0
  173. package/dist/utils/synapseTypes/Provenance/Provenance.d.ts +41 -0
  174. package/dist/utils/synapseTypes/Provenance/Provenance.js +6 -0
  175. package/dist/utils/synapseTypes/Provenance/Provenance.js.map +1 -0
  176. package/dist/utils/synapseTypes/Table/Dataset.d.ts +13 -9
  177. package/dist/utils/synapseTypes/Table/Dataset.js.map +1 -1
  178. package/dist/utils/synapseTypes/TrashedEntity.d.ts +17 -0
  179. package/dist/utils/synapseTypes/TrashedEntity.js +3 -0
  180. package/dist/utils/synapseTypes/TrashedEntity.js.map +1 -0
  181. package/dist/utils/synapseTypes/VersionInfo.d.ts +2 -2
  182. package/dist/utils/synapseTypes/index.d.ts +1 -0
  183. package/dist/utils/synapseTypes/index.js +1 -0
  184. package/dist/utils/synapseTypes/index.js.map +1 -1
  185. package/package.json +10 -4
  186. package/dist/containers/HasAccess.d.ts +0 -85
  187. package/dist/containers/HasAccess.js +0 -353
  188. 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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"}