synapse-react-client 3.0.31 → 3.0.34

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 (226) 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/FullWidthAlert.js +0 -4
  9. package/dist/containers/FullWidthAlert.js.map +1 -1
  10. package/dist/containers/GenericCard.d.ts +18 -7
  11. package/dist/containers/GenericCard.js +84 -92
  12. package/dist/containers/GenericCard.js.map +1 -1
  13. package/dist/containers/IconSvg.d.ts +1 -1
  14. package/dist/containers/IconSvg.js +6 -0
  15. package/dist/containers/IconSvg.js.map +1 -1
  16. package/dist/containers/MarkdownSynapse.d.ts +23 -9
  17. package/dist/containers/MarkdownSynapse.js +30 -30
  18. package/dist/containers/MarkdownSynapse.js.map +1 -1
  19. package/dist/containers/UserCardSmall.js +18 -20
  20. package/dist/containers/UserCardSmall.js.map +1 -1
  21. package/dist/containers/dataaccess/SubmissionPage.js +6 -6
  22. package/dist/containers/dataaccess/SubmissionPage.js.map +1 -1
  23. package/dist/containers/download_list_v2/DownloadCartPage.js +10 -5
  24. package/dist/containers/download_list_v2/DownloadCartPage.js.map +1 -1
  25. package/dist/containers/entity/metadata/EntityModal.js +4 -8
  26. package/dist/containers/entity/metadata/EntityModal.js.map +1 -1
  27. package/dist/containers/entity_finder/EntityFinder.js +12 -49
  28. package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
  29. package/dist/containers/entity_finder/EntityFinderHeader.d.ts +21 -0
  30. package/dist/containers/entity_finder/EntityFinderHeader.js +3 -0
  31. package/dist/containers/entity_finder/EntityFinderHeader.js.map +1 -0
  32. package/dist/containers/entity_finder/details/EntityDetailsList.d.ts +5 -2
  33. package/dist/containers/entity_finder/details/EntityDetailsList.js +3 -3
  34. package/dist/containers/entity_finder/details/EntityDetailsList.js.map +1 -1
  35. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +1 -1
  36. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
  37. package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js +1 -1
  38. package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js.map +1 -1
  39. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.d.ts +3 -0
  40. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js +7 -3
  41. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js.map +1 -1
  42. package/dist/containers/entity_finder/details/configurations/SearchDetails.js +13 -1
  43. package/dist/containers/entity_finder/details/configurations/SearchDetails.js.map +1 -1
  44. package/dist/containers/entity_finder/details/view/DetailsView.d.ts +4 -4
  45. package/dist/containers/entity_finder/details/view/DetailsView.js +4 -5
  46. package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
  47. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js +3 -8
  48. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js.map +1 -1
  49. package/dist/containers/entity_finder/tree/EntityTree.js +3 -3
  50. package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -1
  51. package/dist/containers/entity_finder/tree/VirtualizedTree.d.ts +3 -3
  52. package/dist/containers/entity_finder/tree/VirtualizedTree.js +26 -3
  53. package/dist/containers/entity_finder/tree/VirtualizedTree.js.map +1 -1
  54. package/dist/containers/entity_finder/useEntitySelection.d.ts +4 -0
  55. package/dist/containers/entity_finder/useEntitySelection.js +56 -0
  56. package/dist/containers/entity_finder/useEntitySelection.js.map +1 -0
  57. package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js +5 -2
  58. package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js.map +1 -1
  59. package/dist/containers/evaluation_queues/EvaluationCard.js +4 -4
  60. package/dist/containers/evaluation_queues/EvaluationCard.js.map +1 -1
  61. package/dist/containers/evaluation_queues/EvaluationEditor.js +15 -15
  62. package/dist/containers/evaluation_queues/EvaluationEditor.js.map +1 -1
  63. package/dist/containers/evaluation_queues/EvaluationEditorPage.js +1 -1
  64. package/dist/containers/evaluation_queues/EvaluationEditorPage.js.map +1 -1
  65. package/dist/containers/evaluation_queues/EvaluationRoundEditor.js +1 -1
  66. package/dist/containers/evaluation_queues/EvaluationRoundEditor.js.map +1 -1
  67. package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js +1 -1
  68. package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js.map +1 -1
  69. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js +1 -1
  70. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  71. package/dist/containers/home_page/programs/Programs.js +8 -5
  72. package/dist/containers/home_page/programs/Programs.js.map +1 -1
  73. package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js +8 -1
  74. package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js.map +1 -1
  75. package/dist/containers/oauth/CreateOAuthClient.d.ts +12 -0
  76. package/dist/containers/oauth/CreateOAuthClient.js +204 -0
  77. package/dist/containers/oauth/CreateOAuthClient.js.map +1 -0
  78. package/dist/containers/oauth/OAuthManagement.d.ts +2 -0
  79. package/dist/containers/oauth/OAuthManagement.js +128 -0
  80. package/dist/containers/oauth/OAuthManagement.js.map +1 -0
  81. package/dist/containers/personal_access_token/AccessTokenPage.js +11 -39
  82. package/dist/containers/personal_access_token/AccessTokenPage.js.map +1 -1
  83. package/dist/containers/personal_access_token/CreateAccessTokenModal.js +4 -4
  84. package/dist/containers/personal_access_token/CreateAccessTokenModal.js.map +1 -1
  85. package/dist/containers/provenance/ActivityNodeLabel.d.ts +3 -0
  86. package/dist/containers/provenance/ActivityNodeLabel.js +27 -0
  87. package/dist/containers/provenance/ActivityNodeLabel.js.map +1 -0
  88. package/dist/containers/provenance/EntityNodeLabel.d.ts +3 -0
  89. package/dist/containers/provenance/EntityNodeLabel.js +29 -0
  90. package/dist/containers/provenance/EntityNodeLabel.js.map +1 -0
  91. package/dist/containers/provenance/EntityPlaceholderNodeLabel.d.ts +6 -0
  92. package/dist/containers/provenance/EntityPlaceholderNodeLabel.js +23 -0
  93. package/dist/containers/provenance/EntityPlaceholderNodeLabel.js.map +1 -0
  94. package/dist/containers/provenance/ExpandGraphNodeLabel.d.ts +7 -0
  95. package/dist/containers/provenance/ExpandGraphNodeLabel.js +18 -0
  96. package/dist/containers/provenance/ExpandGraphNodeLabel.js.map +1 -0
  97. package/dist/containers/provenance/ExternalGraphNodeLabel.d.ts +3 -0
  98. package/dist/containers/provenance/ExternalGraphNodeLabel.js +16 -0
  99. package/dist/containers/provenance/ExternalGraphNodeLabel.js.map +1 -0
  100. package/dist/containers/provenance/ProvenanceEntityIcon.d.ts +6 -0
  101. package/dist/containers/provenance/ProvenanceEntityIcon.js +87 -0
  102. package/dist/containers/provenance/ProvenanceEntityIcon.js.map +1 -0
  103. package/dist/containers/provenance/ProvenanceExternalIcon.d.ts +5 -0
  104. package/dist/containers/provenance/ProvenanceExternalIcon.js +26 -0
  105. package/dist/containers/provenance/ProvenanceExternalIcon.js.map +1 -0
  106. package/dist/containers/provenance/ProvenanceGraph.d.ts +12 -0
  107. package/dist/containers/provenance/ProvenanceGraph.js +309 -0
  108. package/dist/containers/provenance/ProvenanceGraph.js.map +1 -0
  109. package/dist/containers/provenance/ProvenanceGraphUtils.d.ts +66 -0
  110. package/dist/containers/provenance/ProvenanceGraphUtils.js +175 -0
  111. package/dist/containers/provenance/ProvenanceGraphUtils.js.map +1 -0
  112. package/dist/containers/provenance/ProvenanceUtils.d.ts +32 -0
  113. package/dist/containers/provenance/ProvenanceUtils.js +145 -0
  114. package/dist/containers/provenance/ProvenanceUtils.js.map +1 -0
  115. package/dist/containers/provenance/UndefinedNodeLabel.d.ts +2 -0
  116. package/dist/containers/provenance/UndefinedNodeLabel.js +14 -0
  117. package/dist/containers/provenance/UndefinedNodeLabel.js.map +1 -0
  118. package/dist/containers/row_renderers/utils/CardFooter.js +1 -1
  119. package/dist/containers/row_renderers/utils/CardFooter.js.map +1 -1
  120. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.d.ts +6 -0
  121. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js +43 -0
  122. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js.map +1 -0
  123. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.d.ts +0 -4
  124. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +14 -45
  125. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
  126. package/dist/containers/synapse_table_functions/SynapseTableCell.js +3 -1
  127. package/dist/containers/synapse_table_functions/SynapseTableCell.js.map +1 -1
  128. package/dist/containers/table/SynapseTable.js +6 -4
  129. package/dist/containers/table/SynapseTable.js.map +1 -1
  130. package/dist/containers/table/TablePagination.js +7 -2
  131. package/dist/containers/table/TablePagination.js.map +1 -1
  132. package/dist/containers/table/datasets/DatasetItemsEditor.d.ts +18 -7
  133. package/dist/containers/table/datasets/DatasetItemsEditor.js +97 -31
  134. package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
  135. package/dist/containers/trash/TrashCanList.d.ts +2 -0
  136. package/dist/containers/trash/TrashCanList.js +144 -0
  137. package/dist/containers/trash/TrashCanList.js.map +1 -0
  138. package/dist/containers/widgets/Checkbox.d.ts +1 -0
  139. package/dist/containers/widgets/Checkbox.js +4 -4
  140. package/dist/containers/widgets/Checkbox.js.map +1 -1
  141. package/dist/containers/widgets/Range.d.ts +1 -1
  142. package/dist/containers/widgets/Range.js +2 -2
  143. package/dist/containers/widgets/Range.js.map +1 -1
  144. package/dist/containers/widgets/SynapseImage.d.ts +1 -1
  145. package/dist/containers/widgets/facet-nav/FacetNavPanel.js +9 -1
  146. package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  147. package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +1 -1
  148. package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  149. package/dist/index.d.ts +2 -1
  150. package/dist/index.js +4 -2
  151. package/dist/index.js.map +1 -1
  152. package/dist/style/base/_core.scss +0 -1
  153. package/dist/style/bootstrap4_backports/_base-import.scss +3 -0
  154. package/dist/style/bootstrap4_backports/_overrides.scss +7 -2
  155. package/dist/style/components/_all.scss +2 -1
  156. package/dist/style/components/_copy-to-clipboard.scss +2 -0
  157. package/dist/style/components/_dataset-editor.scss +4 -1
  158. package/dist/style/components/_oauth-editor.scss +33 -0
  159. package/dist/style/components/_provenance.scss +71 -0
  160. package/dist/style/components/entity_finder/_tree-node-browse.scss +2 -1
  161. package/dist/style/components/entity_finder/_tree-view.scss +0 -3
  162. package/dist/style/main.css +118 -70
  163. package/dist/umd/synapse-react-client.development.css +119 -70
  164. package/dist/umd/synapse-react-client.development.css.map +2 -2
  165. package/dist/umd/synapse-react-client.development.js +80088 -67116
  166. package/dist/umd/synapse-react-client.development.js.map +3 -3
  167. package/dist/umd/synapse-react-client.production.min.css +1 -1
  168. package/dist/umd/synapse-react-client.production.min.js +96 -229
  169. package/dist/umd.index.d.ts +6 -3
  170. package/dist/umd.index.js +7 -3
  171. package/dist/umd.index.js.map +1 -1
  172. package/dist/utils/APIConstants.d.ts +8 -0
  173. package/dist/utils/APIConstants.js +19 -1
  174. package/dist/utils/APIConstants.js.map +1 -1
  175. package/dist/utils/SynapseClient.d.ts +48 -13
  176. package/dist/utils/SynapseClient.js +250 -208
  177. package/dist/utils/SynapseClient.js.map +1 -1
  178. package/dist/utils/functions/EntityTypeUtils.d.ts +3 -1
  179. package/dist/utils/functions/EntityTypeUtils.js +37 -7
  180. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  181. package/dist/utils/hooks/SynapseAPI/index.d.ts +1 -0
  182. package/dist/utils/hooks/SynapseAPI/index.js +1 -0
  183. package/dist/utils/hooks/SynapseAPI/index.js.map +1 -1
  184. package/dist/utils/hooks/SynapseAPI/oauth/index.d.ts +1 -0
  185. package/dist/utils/hooks/SynapseAPI/oauth/index.js +5 -0
  186. package/dist/utils/hooks/SynapseAPI/oauth/index.js.map +1 -0
  187. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.d.ts +9 -0
  188. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js +79 -0
  189. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js.map +1 -0
  190. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.d.ts +6 -0
  191. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js +81 -0
  192. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js.map +1 -0
  193. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.d.ts +4 -0
  194. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js +21 -0
  195. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js.map +1 -0
  196. package/dist/utils/hooks/useGetInfoFromIds.js +2 -1
  197. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  198. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.d.ts +20 -22
  199. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js +28 -32
  200. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  201. package/dist/utils/synapseTypes/Entity/Entity.d.ts +8 -5
  202. package/dist/utils/synapseTypes/Entity/Entity.js +5 -1
  203. package/dist/utils/synapseTypes/Entity/Entity.js.map +1 -1
  204. package/dist/utils/synapseTypes/EntityHeader.d.ts +2 -0
  205. package/dist/utils/synapseTypes/OAuthClient.d.ts +39 -0
  206. package/dist/utils/synapseTypes/OAuthClient.js +12 -0
  207. package/dist/utils/synapseTypes/OAuthClient.js.map +1 -0
  208. package/dist/utils/synapseTypes/Provenance/Provenance.d.ts +41 -0
  209. package/dist/utils/synapseTypes/Provenance/Provenance.js +6 -0
  210. package/dist/utils/synapseTypes/Provenance/Provenance.js.map +1 -0
  211. package/dist/utils/synapseTypes/Table/Dataset.d.ts +13 -9
  212. package/dist/utils/synapseTypes/Table/Dataset.js.map +1 -1
  213. package/dist/utils/synapseTypes/TrashedEntity.d.ts +17 -0
  214. package/dist/utils/synapseTypes/TrashedEntity.js +3 -0
  215. package/dist/utils/synapseTypes/TrashedEntity.js.map +1 -0
  216. package/dist/utils/synapseTypes/VersionInfo.d.ts +2 -2
  217. package/dist/utils/synapseTypes/index.d.ts +1 -0
  218. package/dist/utils/synapseTypes/index.js +1 -0
  219. package/dist/utils/synapseTypes/index.js.map +1 -1
  220. package/package.json +11 -5
  221. package/dist/containers/HasAccess.d.ts +0 -85
  222. package/dist/containers/HasAccess.js +0 -353
  223. package/dist/containers/HasAccess.js.map +0 -1
  224. package/dist/utils/functions/TooltipUtils.d.ts +0 -7
  225. package/dist/utils/functions/TooltipUtils.js +0 -16
  226. package/dist/utils/functions/TooltipUtils.js.map +0 -1
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProvenanceGraph = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importStar(require("react"));
6
+ var react_flow_renderer_1 = tslib_1.__importStar(require("react-flow-renderer"));
7
+ var ProvenanceUtils_1 = require("./ProvenanceUtils");
8
+ var Provenance_1 = require("../../utils/synapseTypes/Provenance/Provenance");
9
+ var SynapseContext_1 = require("../../utils/SynapseContext");
10
+ var utils_1 = require("../../utils");
11
+ var SynapseAPI_1 = require("../../utils/hooks/SynapseAPI");
12
+ var core_1 = require("@material-ui/core");
13
+ var ToastMessage_1 = require("../ToastMessage");
14
+ var ErrorBanner_1 = require("../ErrorBanner");
15
+ var react_error_boundary_1 = require("react-error-boundary");
16
+ var ProvenanceGraphUtils_1 = require("./ProvenanceGraphUtils");
17
+ var MAX_ACTIVITY_EXPAND_NODES = 400;
18
+ var DEFAULT_ZOOM = 0.85;
19
+ /**
20
+ * Renders a Provenance Graph for a set of entities.
21
+ * New Nodes are added to tempNodes, and new Edges are added to tempEdges.
22
+ * On change, these are fed into the dagre js graph library to figure out the node positions,
23
+ * and the output stored in 'nodes' and 'edges'. The 'nodes' and 'edges' arrays are used by the
24
+ * ReactFlow component.
25
+ */
26
+ var ProvenanceReactFlow = function (props) {
27
+ var rootEntityRefs = props.entityRefs, _a = props.containerHeight, containerHeight = _a === void 0 ? '200px' : _a, _b = props.initialNodes, initialNodes = _b === void 0 ? [] : _b, _c = props.initialEdges, initialEdges = _c === void 0 ? [] : _c, onNodesChangedListener = props.onNodesChangedListener, onEdgesChangedListener = props.onEdgesChangedListener;
28
+ var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
29
+ var _d = react_1.default.useState(initialNodes), tempNodes = _d[0], setTempNodes = _d[1];
30
+ var _e = react_1.default.useState(initialEdges), tempEdges = _e[0], setTempEdges = _e[1];
31
+ var _f = (0, react_flow_renderer_1.useNodesState)([]), nodes = _f[0], setNodes = _f[1], onNodesChange = _f[2];
32
+ var _g = (0, react_flow_renderer_1.useEdgesState)([]), edges = _g[0], setEdges = _g[1], onEdgesChange = _g[2];
33
+ var _h = (0, react_1.useState)(), clickedNode = _h[0], setClickedNode = _h[1];
34
+ var handleError = (0, react_error_boundary_1.useErrorHandler)();
35
+ var _j = (0, SynapseAPI_1.useGetEntityHeaders)(rootEntityRefs, { useErrorBoundary: true }), rootEntityHeadersPage = _j.data, isSuccess = _j.isSuccess;
36
+ if (isSuccess && rootEntityHeadersPage.totalNumberOfResults == 0) {
37
+ var synapseIds = rootEntityRefs.map(function (ref) { return ref.targetId; }).join(',');
38
+ handleError("Unable to load provenance for the given Synapse IDs: ".concat(synapseIds));
39
+ }
40
+ var rootEntityHeaders = rootEntityHeadersPage === null || rootEntityHeadersPage === void 0 ? void 0 : rootEntityHeadersPage.results;
41
+ var _k = react_1.default.useState(false), initializedPosition = _k[0], setInitializedPosition = _k[1];
42
+ // Get the react flow instance so we attempt to properly center the view.
43
+ var reactFlowInstance = (0, react_flow_renderer_1.useReactFlow)();
44
+ var onClickNode = (0, react_1.useCallback)(function (_event, node) {
45
+ setClickedNode(node);
46
+ }, []);
47
+ /**
48
+ * Called when we have a new entity to add to the graph. This will result in adding
49
+ * a new Entity Node to the nodesCopy, a link from the usedInActivity to the new Entity Node,
50
+ * AND it will look for an Activity associated with the new entity. If an Activity is found,
51
+ * it will add an Expand Node for the user to click (to expand to see this Activity!).
52
+ * If this is a root node (starting entity node), then we automatically add the Activity Node
53
+ * and process it.
54
+ */
55
+ var addEntity = (0, react_1.useCallback)(function (params) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
56
+ var entityHeader, nodesCopy, edgesCopy, usedInActivity, activity, e_1;
57
+ var _a;
58
+ return tslib_1.__generator(this, function (_b) {
59
+ switch (_b.label) {
60
+ case 0:
61
+ entityHeader = params.entityHeader, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy, usedInActivity = params.usedInActivity;
62
+ (0, ProvenanceGraphUtils_1.addEntityNode)({
63
+ entityHeader: entityHeader,
64
+ activity: usedInActivity,
65
+ nodesCopy: nodesCopy,
66
+ edgesCopy: edgesCopy,
67
+ });
68
+ _b.label = 1;
69
+ case 1:
70
+ _b.trys.push([1, 3, , 4]);
71
+ return [4 /*yield*/, utils_1.SynapseClient.getActivityForEntity(entityHeader.id, entityHeader.versionNumber, accessToken)
72
+ // if this is not a root node (or there are too many items to show), add an expand node
73
+ ];
74
+ case 2:
75
+ activity = _b.sent();
76
+ // if this is not a root node (or there are too many items to show), add an expand node
77
+ if (!(0, ProvenanceGraphUtils_1.isRootEntity)({ entityHeader: entityHeader, rootEntityHeaders: rootEntityHeaders }) ||
78
+ (activity.used && activity.used.length >= MAX_ACTIVITY_EXPAND_NODES)) {
79
+ (0, ProvenanceGraphUtils_1.addExpandNode)({
80
+ entityHeader: entityHeader,
81
+ itemCount: (_a = activity.used) === null || _a === void 0 ? void 0 : _a.length,
82
+ nodesCopy: nodesCopy,
83
+ edgesCopy: edgesCopy,
84
+ });
85
+ }
86
+ return [3 /*break*/, 4];
87
+ case 3:
88
+ e_1 = _b.sent();
89
+ // Activity is not accessible
90
+ console.error(e_1);
91
+ if ((0, ProvenanceGraphUtils_1.isRootEntity)({
92
+ entityHeader: entityHeader,
93
+ rootEntityHeaders: rootEntityHeaders,
94
+ })) {
95
+ // add provenance undefined node
96
+ (0, ProvenanceGraphUtils_1.addUndefinedNode)({
97
+ entityHeader: entityHeader,
98
+ nodesCopy: nodesCopy,
99
+ edgesCopy: edgesCopy,
100
+ });
101
+ }
102
+ return [3 /*break*/, 4];
103
+ case 4: return [2 /*return*/];
104
+ }
105
+ });
106
+ }); }, [accessToken, rootEntityHeaders]);
107
+ /**
108
+ * This effect attempts to center the graph on one of the root nodes.
109
+ * Only initializes after after a root node has been added to the graph.
110
+ */
111
+ (0, react_1.useEffect)(function () {
112
+ if (!initializedPosition && nodes.length > 0) {
113
+ setTimeout(function () {
114
+ if (rootEntityHeaders) {
115
+ var rootEntityNode = (0, ProvenanceGraphUtils_1.findEntityNode)(rootEntityHeaders[0], nodes);
116
+ if (rootEntityNode) {
117
+ var currentZoom = reactFlowInstance.getZoom();
118
+ var zoom = currentZoom > DEFAULT_ZOOM ? DEFAULT_ZOOM : currentZoom;
119
+ reactFlowInstance === null || reactFlowInstance === void 0 ? void 0 : reactFlowInstance.setCenter(rootEntityNode.position.x + 150, rootEntityNode.position.y - 30, { zoom: zoom, duration: 0 });
120
+ }
121
+ setInitializedPosition(true);
122
+ }
123
+ });
124
+ }
125
+ }, [initializedPosition, nodes, reactFlowInstance, rootEntityHeaders]);
126
+ /**
127
+ * This is called when the user clicks on an Expand Node. It will add the associated Activity
128
+ * and all "used" items (entities and urls) to the graph by adding items to the nodesCopy and edgesCopy arrays.
129
+ */
130
+ var onExpandEntity = (0, react_1.useCallback)(function (params) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
131
+ var entityHeader, nodesCopy, edgesCopy, activity_1, usedEntityReferences_1, usedEntityHeadersPage, usedEntityHeaderPageResults_1, refsMissingEntityHeaders, addEntityPromises_1, e_2;
132
+ return tslib_1.__generator(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0:
135
+ entityHeader = params.entityHeader, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy;
136
+ _a.label = 1;
137
+ case 1:
138
+ _a.trys.push([1, 6, , 7]);
139
+ return [4 /*yield*/, utils_1.SynapseClient.getActivityForEntity(entityHeader.id, entityHeader.versionNumber, accessToken)];
140
+ case 2:
141
+ activity_1 = _a.sent();
142
+ (0, ProvenanceGraphUtils_1.addActivityNode)({
143
+ activity: activity_1,
144
+ entityHeader: entityHeader,
145
+ nodesCopy: nodesCopy,
146
+ edgesCopy: edgesCopy,
147
+ });
148
+ if (!(activity_1.used && activity_1.used.length < MAX_ACTIVITY_EXPAND_NODES)) return [3 /*break*/, 5];
149
+ usedEntityReferences_1 = [];
150
+ activity_1.used.forEach(function (usedItem) {
151
+ if (usedItem.concreteType == Provenance_1.USED_ENTITY_CONCRETE_TYPE_VALUE) {
152
+ usedEntityReferences_1.push(usedItem.reference);
153
+ }
154
+ else {
155
+ // UsedURL
156
+ var usedURL = usedItem;
157
+ (0, ProvenanceGraphUtils_1.addExternalNode)({ usedURL: usedURL, activity: activity_1, nodesCopy: nodesCopy, edgesCopy: edgesCopy });
158
+ }
159
+ });
160
+ return [4 /*yield*/, utils_1.SynapseClient.getEntityHeaders(usedEntityReferences_1, accessToken)];
161
+ case 3:
162
+ usedEntityHeadersPage = _a.sent();
163
+ usedEntityHeaderPageResults_1 = usedEntityHeadersPage.results;
164
+ refsMissingEntityHeaders = usedEntityReferences_1.filter(function (ref) {
165
+ return (usedEntityHeaderPageResults_1.find(function (header) {
166
+ return header.id == ref.targetId;
167
+ }) == undefined);
168
+ });
169
+ refsMissingEntityHeaders.forEach(function (ref) {
170
+ (0, ProvenanceGraphUtils_1.addEntityPlaceholderNode)({ ref: ref, activity: activity_1, nodesCopy: nodesCopy, edgesCopy: edgesCopy });
171
+ });
172
+ addEntityPromises_1 = [];
173
+ usedEntityHeaderPageResults_1.forEach(function (header) {
174
+ addEntityPromises_1.push(addEntity({
175
+ entityHeader: header,
176
+ nodesCopy: nodesCopy,
177
+ edgesCopy: edgesCopy,
178
+ usedInActivity: activity_1,
179
+ }));
180
+ });
181
+ return [4 /*yield*/, Promise.allSettled(addEntityPromises_1)];
182
+ case 4:
183
+ _a.sent();
184
+ _a.label = 5;
185
+ case 5: return [3 /*break*/, 7];
186
+ case 6:
187
+ e_2 = _a.sent();
188
+ // Activity is not accessible
189
+ console.error(e_2);
190
+ return [3 /*break*/, 7];
191
+ case 7: return [2 /*return*/];
192
+ }
193
+ });
194
+ }); }, [accessToken, addEntity]);
195
+ /**
196
+ * This effect code executes when no nodes have been added.
197
+ * It will add the root nodes, and attempt to expand the root nodes.
198
+ */
199
+ (0, react_1.useEffect)(function () {
200
+ if (rootEntityHeaders && tempNodes.length == 0) {
201
+ var nodesCopy_1 = tslib_1.__spreadArray([], tempNodes, true);
202
+ var edgesCopy_1 = tslib_1.__spreadArray([], tempEdges, true);
203
+ var addAndExpandPromises_1 = [];
204
+ rootEntityHeaders.forEach(function (header) {
205
+ var addEntityPromise = addEntity({
206
+ entityHeader: header,
207
+ nodesCopy: nodesCopy_1,
208
+ edgesCopy: edgesCopy_1,
209
+ });
210
+ addAndExpandPromises_1.push(addEntityPromise);
211
+ var expandEntityPromise = onExpandEntity({
212
+ entityHeader: header,
213
+ nodesCopy: nodesCopy_1,
214
+ edgesCopy: edgesCopy_1,
215
+ });
216
+ addAndExpandPromises_1.push(expandEntityPromise);
217
+ });
218
+ Promise.allSettled(addAndExpandPromises_1).finally(function () {
219
+ setTempNodes(nodesCopy_1);
220
+ setTempEdges(edgesCopy_1);
221
+ });
222
+ }
223
+ }, [
224
+ addEntity,
225
+ handleError,
226
+ onExpandEntity,
227
+ rootEntityHeaders,
228
+ rootEntityRefs,
229
+ tempEdges,
230
+ tempNodes,
231
+ ]);
232
+ /**
233
+ * This effect code executes when a node is clicked.
234
+ * We check to see if it is an expand node. If it is, then we remove the expand node (and associated edge)
235
+ * and ask for the Activity and associated "used" nodes (entities and URLs)
236
+ */
237
+ (0, react_1.useEffect)(function () {
238
+ var nodeData = clickedNode === null || clickedNode === void 0 ? void 0 : clickedNode.data;
239
+ if (clickedNode && (nodeData === null || nodeData === void 0 ? void 0 : nodeData.type) == ProvenanceUtils_1.NodeType.EXPAND) {
240
+ var expandNodeDataProps = nodeData.props;
241
+ if (expandNodeDataProps.itemCount > MAX_ACTIVITY_EXPAND_NODES) {
242
+ (0, ToastMessage_1.displayToast)('Web visualization does not support expanding this many items at this time.', 'danger');
243
+ return;
244
+ }
245
+ else {
246
+ // graph will be used outside of synapse, so show a non-branded spinner
247
+ nodeData.label = react_1.default.createElement(core_1.CircularProgress, { size: 30 });
248
+ // remove clicked node
249
+ var nodesWithoutExpandNode_1 = tempNodes.filter(function (node) { return node.id != clickedNode.id; });
250
+ var edgeToRemove_1 = (0, react_flow_renderer_1.getConnectedEdges)([clickedNode], tempEdges)[0];
251
+ var edgesWithoutExpandEdge_1 = tempEdges.filter(function (edge) { return edge != edgeToRemove_1; });
252
+ onExpandEntity({
253
+ entityHeader: expandNodeDataProps.entityHeader,
254
+ nodesCopy: nodesWithoutExpandNode_1,
255
+ edgesCopy: edgesWithoutExpandEdge_1,
256
+ }).finally(function () {
257
+ setTempNodes(nodesWithoutExpandNode_1);
258
+ setTempEdges(edgesWithoutExpandEdge_1);
259
+ });
260
+ }
261
+ setClickedNode(undefined);
262
+ }
263
+ }, [clickedNode, tempNodes, tempEdges, onExpandEntity]);
264
+ /**
265
+ * This effect code is run when the graph nodes or edges change.
266
+ * It feeds the nodes and edges into our layout library to figure out where they should be positioned.
267
+ * The result is saved in the state variable "nodes" and "edges".
268
+ */
269
+ (0, react_1.useEffect)(function () {
270
+ var _a = (0, ProvenanceUtils_1.getLayoutedElements)(tempNodes, tempEdges, 'TB'), layoutedNodes = _a.nodes, layoutedEdges = _a.edges;
271
+ // hack: ProvenanceUtils.getProvenanceNode() returns a new object every time, so check to see if
272
+ // there were any real changes
273
+ if (!(0, ProvenanceUtils_1.isArrayEqual)(layoutedNodes, nodes)) {
274
+ setNodes(layoutedNodes);
275
+ if (onNodesChangedListener) {
276
+ onNodesChangedListener(layoutedNodes);
277
+ }
278
+ }
279
+ if (!(0, ProvenanceUtils_1.isArrayEqual)(layoutedEdges, edges)) {
280
+ setEdges(layoutedEdges);
281
+ if (onEdgesChangedListener) {
282
+ onEdgesChangedListener(layoutedEdges);
283
+ }
284
+ }
285
+ }, [
286
+ tempNodes,
287
+ tempEdges,
288
+ nodes,
289
+ edges,
290
+ setNodes,
291
+ setEdges,
292
+ initializedPosition,
293
+ reactFlowInstance,
294
+ rootEntityRefs,
295
+ onNodesChangedListener,
296
+ onEdgesChangedListener,
297
+ ]);
298
+ return (react_1.default.createElement("div", { className: "bootstrap-4-backport ProvenanceWidget", role: "graphics-doc" //https://www.w3.org/wiki/SVG_Accessibility/ARIA_roles_for_charts#Document_Roles
299
+ , style: { width: '100%', height: containerHeight } },
300
+ react_1.default.createElement(react_flow_renderer_1.default, { defaultZoom: DEFAULT_ZOOM, nodes: nodes, edges: edges, onNodeClick: onClickNode, onNodesChange: onNodesChange, onEdgesChange: onEdgesChange, attributionPosition: "bottom-right", onConnect: undefined },
301
+ react_1.default.createElement(react_flow_renderer_1.Controls, null))));
302
+ };
303
+ var ProvenanceGraph = function (props) {
304
+ return (react_1.default.createElement(ErrorBanner_1.SynapseErrorBoundary, null,
305
+ react_1.default.createElement(react_flow_renderer_1.ReactFlowProvider, null,
306
+ react_1.default.createElement(ProvenanceReactFlow, tslib_1.__assign({}, props)))));
307
+ };
308
+ exports.ProvenanceGraph = ProvenanceGraph;
309
+ //# sourceMappingURL=ProvenanceGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvenanceGraph.js","sourceRoot":"","sources":["../../../src/lib/containers/provenance/ProvenanceGraph.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { Edge, Node } from 'react-flow-renderer';
2
+ import { EntityHeader, Reference } from '../../utils/synapseTypes';
3
+ import { Activity, UsedURL } from '../../utils/synapseTypes/Provenance/Provenance';
4
+ import { ProvenanceNodeProps } from './ProvenanceUtils';
5
+ /**
6
+ * Is one of the root Entities given by the user
7
+ */
8
+ export declare const isRootEntity: (params: {
9
+ entityHeader: EntityHeader;
10
+ rootEntityHeaders?: EntityHeader[] | undefined;
11
+ }) => boolean;
12
+ /**
13
+ * Given the node properties, will return true if this node is already in the nodesCopy array.
14
+ */
15
+ export declare const isNodeNotFound: (nodeProps: ProvenanceNodeProps, nodesCopy: Node[]) => boolean;
16
+ export declare const findEntityNode: (entityHeader: EntityHeader, nodesCopy: Node[]) => Node<any> | undefined;
17
+ /**
18
+ * Given the node properties, will return true if this edge is already in the edgesCopy array.
19
+ */
20
+ export declare const isEdgeNotFound: (nodeProps1: ProvenanceNodeProps, nodeProps2: ProvenanceNodeProps, edgesCopy: Edge[]) => boolean;
21
+ /**
22
+ * Given node properties of the new node and existing node, this function creates and adds a new node to
23
+ * nodesCopy, and creates an edge from the new node to the existing node. Note, this will only create
24
+ * a new node or edge if these items are not found in the input nodesCopy array and edgesCopy array.
25
+ */
26
+ export declare const addNodeAndEdge: (params: {
27
+ newNodeProps: ProvenanceNodeProps;
28
+ existingNodeProps: ProvenanceNodeProps;
29
+ nodesCopy: Node[];
30
+ edgesCopy: Edge[];
31
+ }) => void;
32
+ export declare const addActivityNode: (params: {
33
+ activity: Activity;
34
+ entityHeader: EntityHeader;
35
+ nodesCopy: Node[];
36
+ edgesCopy: Edge[];
37
+ }) => void;
38
+ export declare const addExpandNode: (params: {
39
+ entityHeader: EntityHeader;
40
+ itemCount: number | undefined;
41
+ nodesCopy: Node[];
42
+ edgesCopy: Edge[];
43
+ }) => void;
44
+ export declare const addEntityPlaceholderNode: (params: {
45
+ ref: Reference;
46
+ activity: Activity;
47
+ nodesCopy: Node[];
48
+ edgesCopy: Edge[];
49
+ }) => void;
50
+ export declare const addUndefinedNode: (params: {
51
+ entityHeader: EntityHeader;
52
+ nodesCopy: Node[];
53
+ edgesCopy: Edge[];
54
+ }) => void;
55
+ export declare const addExternalNode: (params: {
56
+ usedURL: UsedURL;
57
+ activity: Activity;
58
+ nodesCopy: Node[];
59
+ edgesCopy: Edge[];
60
+ }) => void;
61
+ export declare const addEntityNode: (params: {
62
+ entityHeader: EntityHeader;
63
+ activity: Activity | undefined;
64
+ nodesCopy: Node[];
65
+ edgesCopy: Edge[];
66
+ }) => void;
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.addEntityNode = exports.addExternalNode = exports.addUndefinedNode = exports.addEntityPlaceholderNode = exports.addExpandNode = exports.addActivityNode = exports.addNodeAndEdge = exports.isEdgeNotFound = exports.findEntityNode = exports.isNodeNotFound = exports.isRootEntity = void 0;
4
+ var ProvenanceUtils_1 = require("./ProvenanceUtils");
5
+ /**
6
+ * Is one of the root Entities given by the user
7
+ */
8
+ var isRootEntity = function (params) {
9
+ var entityHeader = params.entityHeader, rootEntityHeaders = params.rootEntityHeaders;
10
+ var foundNode = rootEntityHeaders === null || rootEntityHeaders === void 0 ? void 0 : rootEntityHeaders.find(function (header) {
11
+ return (entityHeader.id == header.id &&
12
+ entityHeader.versionNumber == header.versionNumber);
13
+ });
14
+ return foundNode !== undefined;
15
+ };
16
+ exports.isRootEntity = isRootEntity;
17
+ /**
18
+ * Given the node properties, will return true if this node is already in the nodesCopy array.
19
+ */
20
+ var isNodeNotFound = function (nodeProps, nodesCopy) {
21
+ var foundNode = nodesCopy.find(function (node) {
22
+ return node.id === (0, ProvenanceUtils_1.getNodeId)(nodeProps);
23
+ });
24
+ return foundNode === undefined;
25
+ };
26
+ exports.isNodeNotFound = isNodeNotFound;
27
+ var findEntityNode = function (entityHeader, nodesCopy) {
28
+ var nodeProps = {
29
+ type: ProvenanceUtils_1.NodeType.ENTITY,
30
+ data: entityHeader,
31
+ };
32
+ return nodesCopy.find(function (node) {
33
+ return node.id === (0, ProvenanceUtils_1.getNodeId)(nodeProps);
34
+ });
35
+ };
36
+ exports.findEntityNode = findEntityNode;
37
+ /**
38
+ * Given the node properties, will return true if this edge is already in the edgesCopy array.
39
+ */
40
+ var isEdgeNotFound = function (nodeProps1, nodeProps2, edgesCopy) {
41
+ var foundEdge = edgesCopy.find(function (edge) {
42
+ return (edge.source === (0, ProvenanceUtils_1.getNodeId)(nodeProps1) &&
43
+ edge.target === (0, ProvenanceUtils_1.getNodeId)(nodeProps2));
44
+ });
45
+ return foundEdge === undefined;
46
+ };
47
+ exports.isEdgeNotFound = isEdgeNotFound;
48
+ /**
49
+ * Given node properties of the new node and existing node, this function creates and adds a new node to
50
+ * nodesCopy, and creates an edge from the new node to the existing node. Note, this will only create
51
+ * a new node or edge if these items are not found in the input nodesCopy array and edgesCopy array.
52
+ */
53
+ var addNodeAndEdge = function (params) {
54
+ var newNodeProps = params.newNodeProps, existingNodeProps = params.existingNodeProps, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy;
55
+ if ((0, exports.isNodeNotFound)(newNodeProps, nodesCopy)) {
56
+ nodesCopy.push((0, ProvenanceUtils_1.getProvenanceNode)(newNodeProps));
57
+ }
58
+ if ((0, exports.isEdgeNotFound)(newNodeProps, existingNodeProps, edgesCopy)) {
59
+ edgesCopy.push((0, ProvenanceUtils_1.getProvenanceEdge)(newNodeProps, existingNodeProps));
60
+ }
61
+ };
62
+ exports.addNodeAndEdge = addNodeAndEdge;
63
+ var addActivityNode = function (params) {
64
+ var activity = params.activity, entityHeader = params.entityHeader, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy;
65
+ var activityNodeProps = {
66
+ type: ProvenanceUtils_1.NodeType.ACTIVITY,
67
+ data: activity,
68
+ };
69
+ var entityNodeProps = {
70
+ type: ProvenanceUtils_1.NodeType.ENTITY,
71
+ data: entityHeader,
72
+ };
73
+ (0, exports.addNodeAndEdge)({
74
+ newNodeProps: activityNodeProps,
75
+ existingNodeProps: entityNodeProps,
76
+ nodesCopy: nodesCopy,
77
+ edgesCopy: edgesCopy,
78
+ });
79
+ };
80
+ exports.addActivityNode = addActivityNode;
81
+ var addExpandNode = function (params) {
82
+ var entityHeader = params.entityHeader, _a = params.itemCount, itemCount = _a === void 0 ? 0 : _a, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy;
83
+ var expandNodeProps = {
84
+ type: ProvenanceUtils_1.NodeType.EXPAND,
85
+ data: {
86
+ itemCount: itemCount,
87
+ entityHeader: entityHeader,
88
+ },
89
+ };
90
+ var entityNodeProps = {
91
+ type: ProvenanceUtils_1.NodeType.ENTITY,
92
+ data: entityHeader,
93
+ };
94
+ (0, exports.addNodeAndEdge)({
95
+ newNodeProps: expandNodeProps,
96
+ existingNodeProps: entityNodeProps,
97
+ nodesCopy: nodesCopy,
98
+ edgesCopy: edgesCopy,
99
+ });
100
+ };
101
+ exports.addExpandNode = addExpandNode;
102
+ var addEntityPlaceholderNode = function (params) {
103
+ var ref = params.ref, activity = params.activity, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy;
104
+ var entityPlaceholderNodeProps = {
105
+ type: ProvenanceUtils_1.NodeType.ENTITY_PLACEHOLDER,
106
+ data: ref,
107
+ };
108
+ var activityNodeProps = {
109
+ type: ProvenanceUtils_1.NodeType.ACTIVITY,
110
+ data: activity,
111
+ };
112
+ (0, exports.addNodeAndEdge)({
113
+ newNodeProps: entityPlaceholderNodeProps,
114
+ existingNodeProps: activityNodeProps,
115
+ nodesCopy: nodesCopy,
116
+ edgesCopy: edgesCopy,
117
+ });
118
+ };
119
+ exports.addEntityPlaceholderNode = addEntityPlaceholderNode;
120
+ var addUndefinedNode = function (params) {
121
+ var entityHeader = params.entityHeader, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy;
122
+ var undefinedNodeProps = {
123
+ type: ProvenanceUtils_1.NodeType.UNDEFINED,
124
+ data: entityHeader,
125
+ };
126
+ var entityNodeProps = {
127
+ type: ProvenanceUtils_1.NodeType.ENTITY,
128
+ data: entityHeader,
129
+ };
130
+ (0, exports.addNodeAndEdge)({
131
+ newNodeProps: undefinedNodeProps,
132
+ existingNodeProps: entityNodeProps,
133
+ nodesCopy: nodesCopy,
134
+ edgesCopy: edgesCopy,
135
+ });
136
+ };
137
+ exports.addUndefinedNode = addUndefinedNode;
138
+ var addExternalNode = function (params) {
139
+ var usedURL = params.usedURL, activity = params.activity, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy;
140
+ var activityNodeProps = {
141
+ type: ProvenanceUtils_1.NodeType.ACTIVITY,
142
+ data: activity,
143
+ };
144
+ var externalNodeProps = {
145
+ type: ProvenanceUtils_1.NodeType.EXTERNAL,
146
+ data: usedURL,
147
+ };
148
+ (0, exports.addNodeAndEdge)({
149
+ newNodeProps: externalNodeProps,
150
+ existingNodeProps: activityNodeProps,
151
+ nodesCopy: nodesCopy,
152
+ edgesCopy: edgesCopy,
153
+ });
154
+ };
155
+ exports.addExternalNode = addExternalNode;
156
+ var addEntityNode = function (params) {
157
+ var entityHeader = params.entityHeader, activity = params.activity, nodesCopy = params.nodesCopy, edgesCopy = params.edgesCopy;
158
+ var entityNodeProps = {
159
+ type: ProvenanceUtils_1.NodeType.ENTITY,
160
+ data: entityHeader,
161
+ };
162
+ if ((0, exports.isNodeNotFound)(entityNodeProps, nodesCopy)) {
163
+ // add the new entity node
164
+ nodesCopy.push((0, ProvenanceUtils_1.getProvenanceNode)(entityNodeProps));
165
+ if (activity) {
166
+ var activityNodeProps = {
167
+ type: ProvenanceUtils_1.NodeType.ACTIVITY,
168
+ data: activity,
169
+ };
170
+ edgesCopy.push((0, ProvenanceUtils_1.getProvenanceEdge)(entityNodeProps, activityNodeProps));
171
+ }
172
+ }
173
+ };
174
+ exports.addEntityNode = addEntityNode;
175
+ //# sourceMappingURL=ProvenanceGraphUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvenanceGraphUtils.js","sourceRoot":"","sources":["../../../src/lib/containers/provenance/ProvenanceGraphUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /// <reference types="react" />
2
+ import { Node, Edge } from 'react-flow-renderer';
3
+ import { ExpandGraphNodeDataProps } from './ExpandGraphNodeLabel';
4
+ import { EntityHeader, Reference } from '../../utils/synapseTypes';
5
+ import { Activity, UsedURL } from '../../utils/synapseTypes/Provenance/Provenance';
6
+ export declare enum NodeType {
7
+ ENTITY = "EntityNode",
8
+ ENTITY_PLACEHOLDER = "EntityPlaceholderNode",
9
+ EXTERNAL = "ExternalNode",
10
+ ACTIVITY = "ActivityNode",
11
+ EXPAND = "ExpandNode",
12
+ UNDEFINED = "UndefinedNode"
13
+ }
14
+ declare type ProvenanceNodeLabelProps = UsedURL | Activity | ExpandGraphNodeDataProps | EntityHeader | Reference;
15
+ export declare type ProvenanceNodeProps = {
16
+ type: NodeType;
17
+ data: ProvenanceNodeLabelProps;
18
+ };
19
+ export declare type ProvenanceNodeData = {
20
+ label: JSX.Element;
21
+ props: ProvenanceNodeLabelProps;
22
+ type: NodeType;
23
+ };
24
+ export declare const getProvenanceNode: (props: ProvenanceNodeProps) => Node;
25
+ export declare const getProvenanceEdge: (node1Props: ProvenanceNodeProps, node2Props: ProvenanceNodeProps) => Edge;
26
+ export declare const getNodeId: (props: ProvenanceNodeProps) => string;
27
+ export declare const getLayoutedElements: (nodes: Node[], edges: Edge[], direction: string) => {
28
+ nodes: Node<any>[];
29
+ edges: Edge<any>[];
30
+ };
31
+ export declare const isArrayEqual: (x: any[], y: any[]) => boolean;
32
+ export {};