synapse-react-client 3.0.32 → 3.0.35
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/CardContainer.js +3 -1
- package/dist/containers/CardContainer.js.map +1 -1
- 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 +20 -9
- package/dist/containers/GenericCard.js +85 -93
- 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/QueryContext.d.ts +1 -1
- package/dist/containers/QueryVisualizationWrapper.js +7 -5
- package/dist/containers/QueryVisualizationWrapper.js.map +1 -1
- package/dist/containers/QueryWrapper.js +5 -10
- package/dist/containers/QueryWrapper.js.map +1 -1
- package/dist/containers/SubsectionRowRenderer.js +5 -1
- package/dist/containers/SubsectionRowRenderer.js.map +1 -1
- package/dist/containers/SynapseNavDrawer.js +1 -1
- package/dist/containers/SynapseNavDrawer.js.map +1 -1
- package/dist/containers/TableFeedCards.js +8 -4
- package/dist/containers/TableFeedCards.js.map +1 -1
- package/dist/containers/UpsetPlot.js +3 -0
- package/dist/containers/UpsetPlot.js.map +1 -1
- package/dist/containers/UserCardList.js +7 -4
- package/dist/containers/UserCardList.js.map +1 -1
- package/dist/containers/UserCardListRotate.js +3 -1
- package/dist/containers/UserCardListRotate.js.map +1 -1
- package/dist/containers/UserCardSmall.js +18 -20
- package/dist/containers/UserCardSmall.js.map +1 -1
- package/dist/containers/dataaccess/SubmissionPage.js +6 -6
- package/dist/containers/dataaccess/SubmissionPage.js.map +1 -1
- package/dist/containers/download_list_v2/DownloadCartPage.js +10 -5
- package/dist/containers/download_list_v2/DownloadCartPage.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/EntityFinderHeader.d.ts +21 -0
- package/dist/containers/entity_finder/EntityFinderHeader.js +3 -0
- package/dist/containers/entity_finder/EntityFinderHeader.js.map +1 -0
- package/dist/containers/entity_finder/details/EntityDetailsList.d.ts +5 -2
- 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.d.ts +3 -0
- package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js +7 -3
- package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js.map +1 -1
- package/dist/containers/entity_finder/details/configurations/SearchDetails.js +13 -1
- package/dist/containers/entity_finder/details/configurations/SearchDetails.js.map +1 -1
- package/dist/containers/entity_finder/details/view/DetailsView.d.ts +4 -4
- package/dist/containers/entity_finder/details/view/DetailsView.js +2 -2
- 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/tree/EntityTree.js +3 -3
- package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -1
- package/dist/containers/entity_finder/tree/VirtualizedTree.d.ts +3 -3
- package/dist/containers/entity_finder/tree/VirtualizedTree.js +26 -3
- package/dist/containers/entity_finder/tree/VirtualizedTree.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/featured_tools/FeaturedToolsList.js +10 -5
- package/dist/containers/home_page/featured_tools/FeaturedToolsList.js.map +1 -1
- package/dist/containers/home_page/goals/Goals.js +9 -1
- package/dist/containers/home_page/goals/Goals.js.map +1 -1
- package/dist/containers/home_page/programs/Programs.js +13 -6
- package/dist/containers/home_page/programs/Programs.js.map +1 -1
- package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js +17 -5
- package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js.map +1 -1
- package/dist/containers/home_page/resources/Resources.js +3 -0
- package/dist/containers/home_page/resources/Resources.js.map +1 -1
- package/dist/containers/oauth/CreateOAuthClient.d.ts +12 -0
- package/dist/containers/oauth/CreateOAuthClient.js +204 -0
- package/dist/containers/oauth/CreateOAuthClient.js.map +1 -0
- package/dist/containers/oauth/OAuthManagement.d.ts +2 -0
- package/dist/containers/oauth/OAuthManagement.js +128 -0
- package/dist/containers/oauth/OAuthManagement.js.map +1 -0
- 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.d.ts +2 -2
- 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.d.ts +0 -7
- package/dist/containers/table/SynapseTable.js +4 -21
- 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/TopLevelControls.js +1 -1
- package/dist/containers/table/TopLevelControls.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/table/table-top/ColumnSelection.js +2 -6
- package/dist/containers/table/table-top/ColumnSelection.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/ElementWithTooltip.js +2 -8
- package/dist/containers/widgets/ElementWithTooltip.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/base/_core.scss +1 -2
- package/dist/style/bootstrap4_backports/_base-import.scss +3 -0
- package/dist/style/bootstrap4_backports/_overrides.scss +7 -2
- 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/components/entity_finder/_tree-node-browse.scss +2 -1
- package/dist/style/components/entity_finder/_tree-view.scss +0 -3
- package/dist/style/main.css +119 -71
- package/dist/umd/synapse-react-client.development.css +120 -71
- package/dist/umd/synapse-react-client.development.css.map +2 -2
- package/dist/umd/synapse-react-client.development.js +79555 -64473
- 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 +96 -93
- package/dist/umd.index.d.ts +6 -3
- package/dist/umd.index.js +7 -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 +48 -13
- package/dist/utils/SynapseClient.js +250 -208
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.d.ts +3 -1
- package/dist/utils/functions/EntityTypeUtils.js +37 -7
- 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/Entity/Entity.d.ts +8 -5
- package/dist/utils/synapseTypes/Entity/Entity.js +5 -1
- package/dist/utils/synapseTypes/Entity/Entity.js.map +1 -1
- package/dist/utils/synapseTypes/EntityHeader.d.ts +2 -0
- package/dist/utils/synapseTypes/OAuthClient.d.ts +39 -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/Table/QueryResult.d.ts +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
|
@@ -53,6 +53,7 @@ export * from './Submission';
|
|
|
53
53
|
export * from './SubmissionContributor';
|
|
54
54
|
export * from './SynapseVersion';
|
|
55
55
|
export * from './Table';
|
|
56
|
+
export * from './TrashedEntity';
|
|
56
57
|
export * from './UserBundle';
|
|
57
58
|
export * from './UserEntityPermissions';
|
|
58
59
|
export * from './UserGroupHeader';
|
|
@@ -58,6 +58,7 @@ tslib_1.__exportStar(require("./Submission"), exports);
|
|
|
58
58
|
tslib_1.__exportStar(require("./SubmissionContributor"), exports);
|
|
59
59
|
tslib_1.__exportStar(require("./SynapseVersion"), exports);
|
|
60
60
|
tslib_1.__exportStar(require("./Table"), exports);
|
|
61
|
+
tslib_1.__exportStar(require("./TrashedEntity"), exports);
|
|
61
62
|
tslib_1.__exportStar(require("./UserBundle"), exports);
|
|
62
63
|
tslib_1.__exportStar(require("./UserEntityPermissions"), exports);
|
|
63
64
|
tslib_1.__exportStar(require("./UserGroupHeader"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/synapseTypes/index.ts"],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,+DAA+D;AAC/D,2DAAgC;AAChC,+DAAoC;AACpC,8DAAmC;AACnC,8DAAmC;AACnC,wDAA6B;AAC7B,0EAA+C;AAC/C,2EAAgD;AAChD,4DAAiC;AACjC,wDAA6B;AAC7B,2DAAgC;AAChC,6DAAkC;AAClC,4DAAiC;AACjC,2EAAgD;AAChD,4EAAiD;AACjD,oEAAyC;AACzC,qEAA0C;AAC1C,2DAAgC;AAChC,qDAA0B;AAC1B,mDAAwB;AACxB,yDAA8B;AAC9B,2DAAgC;AAChC,yDAA8B;AAC9B,qDAA0B;AAC1B,gEAAqC;AACrC,uDAA4B;AAC5B,uDAA4B;AAC5B,iEAAsC;AACtC,wEAA6C;AAC7C,gEAAqC;AACrC,uDAA4B;AAC5B,kEAAuC;AACvC,8DAAmC;AACnC,uDAA4B;AAC5B,+DAAoC;AACpC,kDAAuB;AACvB,yDAA8B;AAC9B,0DAA+B;AAC/B,mEAAwC;AACxC,kEAAuC;AACvC,8DAAmC;AACnC,wEAA6C;AAC7C,uDAA4B;AAC5B,qEAA0C;AAC1C,gFAAqD;AACrD,6DAAkC;AAClC,6DAAkC;AAClC,0DAA+B;AAC/B,0DAA+B;AAC/B,2DAAgC;AAChC,mEAAwC;AACxC,uDAA4B;AAC5B,uDAA4B;AAC5B,kEAAuC;AACvC,2DAAgC;AAChC,kDAAuB;AACvB,uDAA4B;AAC5B,kEAAuC;AACvC,4DAAiC;AACjC,wEAA6C;AAC7C,2DAAgC;AAChC,wDAA6B;AAC7B,mEAAwC;AACxC,qDAA0B;AAC1B,wDAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/synapseTypes/index.ts"],"names":[],"mappings":";;;AAAA,iBAAiB;AACjB,+DAA+D;AAC/D,2DAAgC;AAChC,+DAAoC;AACpC,8DAAmC;AACnC,8DAAmC;AACnC,wDAA6B;AAC7B,0EAA+C;AAC/C,2EAAgD;AAChD,4DAAiC;AACjC,wDAA6B;AAC7B,2DAAgC;AAChC,6DAAkC;AAClC,4DAAiC;AACjC,2EAAgD;AAChD,4EAAiD;AACjD,oEAAyC;AACzC,qEAA0C;AAC1C,2DAAgC;AAChC,qDAA0B;AAC1B,mDAAwB;AACxB,yDAA8B;AAC9B,2DAAgC;AAChC,yDAA8B;AAC9B,qDAA0B;AAC1B,gEAAqC;AACrC,uDAA4B;AAC5B,uDAA4B;AAC5B,iEAAsC;AACtC,wEAA6C;AAC7C,gEAAqC;AACrC,uDAA4B;AAC5B,kEAAuC;AACvC,8DAAmC;AACnC,uDAA4B;AAC5B,+DAAoC;AACpC,kDAAuB;AACvB,yDAA8B;AAC9B,0DAA+B;AAC/B,mEAAwC;AACxC,kEAAuC;AACvC,8DAAmC;AACnC,wEAA6C;AAC7C,uDAA4B;AAC5B,qEAA0C;AAC1C,gFAAqD;AACrD,6DAAkC;AAClC,6DAAkC;AAClC,0DAA+B;AAC/B,0DAA+B;AAC/B,2DAAgC;AAChC,mEAAwC;AACxC,uDAA4B;AAC5B,uDAA4B;AAC5B,kEAAuC;AACvC,2DAAgC;AAChC,kDAAuB;AACvB,0DAA+B;AAC/B,uDAA4B;AAC5B,kEAAuC;AACvC,4DAAiC;AACjC,wEAA6C;AAC7C,2DAAgC;AAChC,wDAA6B;AAC7B,mEAAwC;AACxC,qDAA0B;AAC1B,wDAA6B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "synapse-react-client",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.35",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@material-ui/lab": "^4.0.0-alpha.57",
|
|
23
23
|
"@popperjs/core": "^2.10.2",
|
|
24
24
|
"@rjsf/core": "^4.0.1",
|
|
25
|
-
"@sage-bionetworks/react-base-table": "^1.
|
|
25
|
+
"@sage-bionetworks/react-base-table": "^1.13.2",
|
|
26
26
|
"@sage-bionetworks/rjsf-core": "^3.1.4",
|
|
27
27
|
"@types/ua-parser-js": "^0.7.36",
|
|
28
28
|
"@upsetjs/react": "^1.6.2",
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
"bootstrap": "^4.6.1",
|
|
31
31
|
"classnames": "^2.3.1",
|
|
32
32
|
"column-resizer": "^1.3.5",
|
|
33
|
+
"dagre": "^0.8.5",
|
|
33
34
|
"downshift": "^6.1.2",
|
|
34
35
|
"gh-pages": "^3.2.3",
|
|
35
36
|
"immutable": "4.1.0",
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
"react-compound-slider": "^2.5.0",
|
|
60
61
|
"react-datetime": "^3.0.4",
|
|
61
62
|
"react-error-boundary": "^3.1.1",
|
|
63
|
+
"react-flow-renderer": "^10.3.11",
|
|
62
64
|
"react-hot-toast": "^2.1.0",
|
|
63
65
|
"react-intersection-observer": "^8.31.0",
|
|
64
66
|
"react-mailchimp-subscribe": "^2.1.0",
|
|
@@ -109,6 +111,7 @@
|
|
|
109
111
|
"@esbuild-plugins/node-globals-polyfill": "^0.1.1",
|
|
110
112
|
"@esbuild-plugins/node-modules-polyfill": "^0.1.4",
|
|
111
113
|
"@fal-works/esbuild-plugin-global-externals": "^2.1.2",
|
|
114
|
+
"@juggle/resize-observer": "^3.3.1",
|
|
112
115
|
"@sage-bionetworks/esbuild-plugin-svgr": "^0.0.4",
|
|
113
116
|
"@storybook/addon-actions": "^6.5.9",
|
|
114
117
|
"@storybook/addon-essentials": "^6.5.9",
|
|
@@ -123,9 +126,10 @@
|
|
|
123
126
|
"@testing-library/react-hooks": "^7.0.1",
|
|
124
127
|
"@testing-library/user-event": "13.0.16",
|
|
125
128
|
"@types/brainhubeu__react-carousel": "1.15.0",
|
|
129
|
+
"@types/dagre": "^0.7.47",
|
|
126
130
|
"@types/enzyme": "^3.10.8",
|
|
127
131
|
"@types/enzyme-adapter-react-16": "^1.0.5",
|
|
128
|
-
"@types/jest": "^28.1.
|
|
132
|
+
"@types/jest": "^28.1.5",
|
|
129
133
|
"@types/jest-when": "^3.5.0",
|
|
130
134
|
"@types/jquery": "^3.5.14",
|
|
131
135
|
"@types/katex": "^0.10.2",
|
|
@@ -176,7 +180,7 @@
|
|
|
176
180
|
"https-browserify": "^1.0.0",
|
|
177
181
|
"husky": ">=6",
|
|
178
182
|
"identity-obj-proxy": "^3.0.0",
|
|
179
|
-
"jest": "^28.1.
|
|
183
|
+
"jest": "^28.1.3",
|
|
180
184
|
"jest-environment-jsdom": "^28.1.1",
|
|
181
185
|
"jest-mock-promise": "^1.1.10",
|
|
182
186
|
"jest-when": "^3.5.1",
|
|
@@ -190,6 +194,7 @@
|
|
|
190
194
|
"prettier": "^2.6.2",
|
|
191
195
|
"process": "^0.11.10",
|
|
192
196
|
"react-select-event": "^5.3.0",
|
|
197
|
+
"react-test-renderer": "16.14.0",
|
|
193
198
|
"sinon": "^7.2.2",
|
|
194
199
|
"stream-browserify": "^3.0.0",
|
|
195
200
|
"stream-http": "^3.2.0",
|
|
@@ -198,6 +203,7 @@
|
|
|
198
203
|
"typescript": "4.7.4",
|
|
199
204
|
"vite": "^2.9.12",
|
|
200
205
|
"vite-plugin-externals": "^0.5.0",
|
|
206
|
+
"weak-napi": "^2.0.2",
|
|
201
207
|
"yarn": "^1.22.17"
|
|
202
208
|
},
|
|
203
209
|
"scripts": {
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* To be reworked so that HasAccess component doesn't need to request file handle information
|
|
3
|
-
* because that information can be obtained in the parent component
|
|
4
|
-
*
|
|
5
|
-
* For example in SynapseTable.tsx, the variable "fileEntityHandle" is available
|
|
6
|
-
* for each row Synapse id to store file handle information.
|
|
7
|
-
* If the row Synapse id doesn't return a file handle, "fileEntityHandle" will contain
|
|
8
|
-
* an object { success:boolean = false , message:string }
|
|
9
|
-
* If the row Synapse id returns a file handle, "fileEntityHandle" will contain
|
|
10
|
-
* an object { success:boolean = true, data: {fileEntity, fileHandle} }
|
|
11
|
-
*
|
|
12
|
-
* To set up "fileEntityHandle", the parent component should import "FileEntityHandleQueryWrapper"
|
|
13
|
-
* and pass a callback function to "FileEntityHandleQueryWrapper" so that once the file handle information
|
|
14
|
-
* is returned, the success for failure result can be saved in the parent state.
|
|
15
|
-
* See SynapseTable.tsx as an example.
|
|
16
|
-
*/
|
|
17
|
-
import * as React from 'react';
|
|
18
|
-
import { FileHandle, RestrictionInformationResponse, AccessRequirement } from '../utils/synapseTypes/';
|
|
19
|
-
import { AccessRequirementListProps } from './access_requirement_list/AccessRequirementList';
|
|
20
|
-
import { Icon } from './IconSvg';
|
|
21
|
-
export declare type HasAccessProps = {
|
|
22
|
-
onHide?: () => void;
|
|
23
|
-
fileHandle?: FileHandle;
|
|
24
|
-
entityId: string;
|
|
25
|
-
isInDownloadList?: boolean;
|
|
26
|
-
entityVersionNumber?: string;
|
|
27
|
-
forceSamePage?: boolean;
|
|
28
|
-
set_arPropsFromHasAccess?: (props: AccessRequirementListProps) => void;
|
|
29
|
-
className?: string;
|
|
30
|
-
};
|
|
31
|
-
declare type HasAccessState = {
|
|
32
|
-
restrictionInformation?: RestrictionInformationResponse;
|
|
33
|
-
fileHandleDownloadType?: FileHandleDownloadTypeEnum;
|
|
34
|
-
displayAccessRequirement: boolean;
|
|
35
|
-
accessRequirements?: Array<AccessRequirement>;
|
|
36
|
-
isGettingRestrictionInformation: boolean;
|
|
37
|
-
isGettingEntityInformation: boolean;
|
|
38
|
-
errorOnGetRestrictionInformation: boolean;
|
|
39
|
-
};
|
|
40
|
-
export declare const GIGABYTE_SIZE: number;
|
|
41
|
-
export declare enum FileHandleDownloadTypeEnum {
|
|
42
|
-
ExternalCloudFile = "ExternalCloudFile",
|
|
43
|
-
ExternalFileLink = "ExternalFileLink",
|
|
44
|
-
TooLarge = "TooLarge",
|
|
45
|
-
Accessible = "Accessible",
|
|
46
|
-
AccessBlockedByRestriction = "AccessBlockedByRestriction",
|
|
47
|
-
AccessBlockedByACL = "AccessBlockedByACL",
|
|
48
|
-
AccessBlockedToAnonymous = "AccessBlockedToAnonymous",
|
|
49
|
-
NoFileHandle = "NoFileHandle"
|
|
50
|
-
}
|
|
51
|
-
export declare const getDownloadTypeForFileHandle: (fileHandle: FileHandle, isInDownloadList?: boolean) => FileHandleDownloadTypeEnum.ExternalCloudFile | FileHandleDownloadTypeEnum.ExternalFileLink | FileHandleDownloadTypeEnum.TooLarge | FileHandleDownloadTypeEnum.Accessible;
|
|
52
|
-
/**
|
|
53
|
-
* HasAccess shows if the user has access to the file or not.
|
|
54
|
-
*
|
|
55
|
-
* The component's behavior changes whether it's passed in a FileHandle or not.
|
|
56
|
-
* If passed a file handle then it will give more detailed information about the download.
|
|
57
|
-
*
|
|
58
|
-
* @export
|
|
59
|
-
* @class HasAccess
|
|
60
|
-
* @extends {React.Component<HasAccessProps, HasAccessState>}
|
|
61
|
-
*/
|
|
62
|
-
export default class HasAccess extends React.Component<HasAccessProps, HasAccessState> {
|
|
63
|
-
static tooltipText: {
|
|
64
|
-
AccessBlockedToAnonymous: string;
|
|
65
|
-
AccessBlockedByRestriction: string;
|
|
66
|
-
AccessBlockedByACL: string;
|
|
67
|
-
TooLarge: string;
|
|
68
|
-
ExternalFileLink: string;
|
|
69
|
-
ExternalCloudFile: string;
|
|
70
|
-
};
|
|
71
|
-
static contextType: React.Context<import("../utils/SynapseContext").SynapseContextType | undefined>;
|
|
72
|
-
constructor(props: HasAccessProps);
|
|
73
|
-
componentDidUpdate(prevProps: HasAccessProps): void;
|
|
74
|
-
componentDidMount(): void;
|
|
75
|
-
refresh: (forceRefresh?: boolean) => void;
|
|
76
|
-
updateStateFileHandleAccessBlocked: () => void;
|
|
77
|
-
getFileEntityFileHandle: (forceRefresh?: boolean) => Promise<void> | undefined;
|
|
78
|
-
getRestrictionInformation: (forceRefresh?: boolean) => Promise<void> | undefined;
|
|
79
|
-
renderIconSvg(icon: Icon, color: string): JSX.Element;
|
|
80
|
-
renderIcon: (downloadType: FileHandleDownloadTypeEnum | string, restrictionInformation?: RestrictionInformationResponse) => JSX.Element;
|
|
81
|
-
handleGetAccess: () => void;
|
|
82
|
-
renderARsLink: () => JSX.Element;
|
|
83
|
-
render(): JSX.Element;
|
|
84
|
-
}
|
|
85
|
-
export {};
|
|
@@ -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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"}
|