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.
Files changed (253) hide show
  1. package/dist/containers/CardContainer.js +3 -1
  2. package/dist/containers/CardContainer.js.map +1 -1
  3. package/dist/containers/Carousel.js +5 -2
  4. package/dist/containers/Carousel.js.map +1 -1
  5. package/dist/containers/CopyToClipboardInput.js +2 -2
  6. package/dist/containers/CopyToClipboardInput.js.map +1 -1
  7. package/dist/containers/EntityIcon.d.ts +1 -0
  8. package/dist/containers/EntityIcon.js +3 -2
  9. package/dist/containers/EntityIcon.js.map +1 -1
  10. package/dist/containers/GenericCard.d.ts +20 -9
  11. package/dist/containers/GenericCard.js +85 -93
  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/QueryContext.d.ts +1 -1
  20. package/dist/containers/QueryVisualizationWrapper.js +7 -5
  21. package/dist/containers/QueryVisualizationWrapper.js.map +1 -1
  22. package/dist/containers/QueryWrapper.js +5 -10
  23. package/dist/containers/QueryWrapper.js.map +1 -1
  24. package/dist/containers/SubsectionRowRenderer.js +5 -1
  25. package/dist/containers/SubsectionRowRenderer.js.map +1 -1
  26. package/dist/containers/SynapseNavDrawer.js +1 -1
  27. package/dist/containers/SynapseNavDrawer.js.map +1 -1
  28. package/dist/containers/TableFeedCards.js +8 -4
  29. package/dist/containers/TableFeedCards.js.map +1 -1
  30. package/dist/containers/UpsetPlot.js +3 -0
  31. package/dist/containers/UpsetPlot.js.map +1 -1
  32. package/dist/containers/UserCardList.js +7 -4
  33. package/dist/containers/UserCardList.js.map +1 -1
  34. package/dist/containers/UserCardListRotate.js +3 -1
  35. package/dist/containers/UserCardListRotate.js.map +1 -1
  36. package/dist/containers/UserCardSmall.js +18 -20
  37. package/dist/containers/UserCardSmall.js.map +1 -1
  38. package/dist/containers/dataaccess/SubmissionPage.js +6 -6
  39. package/dist/containers/dataaccess/SubmissionPage.js.map +1 -1
  40. package/dist/containers/download_list_v2/DownloadCartPage.js +10 -5
  41. package/dist/containers/download_list_v2/DownloadCartPage.js.map +1 -1
  42. package/dist/containers/entity_finder/EntityFinder.js +12 -49
  43. package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
  44. package/dist/containers/entity_finder/EntityFinderHeader.d.ts +21 -0
  45. package/dist/containers/entity_finder/EntityFinderHeader.js +3 -0
  46. package/dist/containers/entity_finder/EntityFinderHeader.js.map +1 -0
  47. package/dist/containers/entity_finder/details/EntityDetailsList.d.ts +5 -2
  48. package/dist/containers/entity_finder/details/EntityDetailsList.js +3 -3
  49. package/dist/containers/entity_finder/details/EntityDetailsList.js.map +1 -1
  50. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +1 -1
  51. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
  52. package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js +1 -1
  53. package/dist/containers/entity_finder/details/configurations/FavoritesDetails.js.map +1 -1
  54. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.d.ts +3 -0
  55. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js +7 -3
  56. package/dist/containers/entity_finder/details/configurations/ProjectListDetails.js.map +1 -1
  57. package/dist/containers/entity_finder/details/configurations/SearchDetails.js +13 -1
  58. package/dist/containers/entity_finder/details/configurations/SearchDetails.js.map +1 -1
  59. package/dist/containers/entity_finder/details/view/DetailsView.d.ts +4 -4
  60. package/dist/containers/entity_finder/details/view/DetailsView.js +2 -2
  61. package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
  62. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js +2 -2
  63. package/dist/containers/entity_finder/details/view/DetailsViewTableRenderers.js.map +1 -1
  64. package/dist/containers/entity_finder/tree/EntityTree.js +3 -3
  65. package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -1
  66. package/dist/containers/entity_finder/tree/VirtualizedTree.d.ts +3 -3
  67. package/dist/containers/entity_finder/tree/VirtualizedTree.js +26 -3
  68. package/dist/containers/entity_finder/tree/VirtualizedTree.js.map +1 -1
  69. package/dist/containers/entity_finder/useEntitySelection.d.ts +4 -0
  70. package/dist/containers/entity_finder/useEntitySelection.js +56 -0
  71. package/dist/containers/entity_finder/useEntitySelection.js.map +1 -0
  72. package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js +5 -2
  73. package/dist/containers/evaluation_queues/CalendarWithIconFormGroup.js.map +1 -1
  74. package/dist/containers/evaluation_queues/EvaluationCard.js +4 -4
  75. package/dist/containers/evaluation_queues/EvaluationCard.js.map +1 -1
  76. package/dist/containers/evaluation_queues/EvaluationEditor.js +15 -15
  77. package/dist/containers/evaluation_queues/EvaluationEditor.js.map +1 -1
  78. package/dist/containers/evaluation_queues/EvaluationEditorPage.js +1 -1
  79. package/dist/containers/evaluation_queues/EvaluationEditorPage.js.map +1 -1
  80. package/dist/containers/evaluation_queues/EvaluationRoundEditor.js +1 -1
  81. package/dist/containers/evaluation_queues/EvaluationRoundEditor.js.map +1 -1
  82. package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js +1 -1
  83. package/dist/containers/evaluation_queues/EvaluationRoundEditorDropdown.js.map +1 -1
  84. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js +1 -1
  85. package/dist/containers/evaluation_queues/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
  86. package/dist/containers/home_page/featured_tools/FeaturedToolsList.js +10 -5
  87. package/dist/containers/home_page/featured_tools/FeaturedToolsList.js.map +1 -1
  88. package/dist/containers/home_page/goals/Goals.js +9 -1
  89. package/dist/containers/home_page/goals/Goals.js.map +1 -1
  90. package/dist/containers/home_page/programs/Programs.js +13 -6
  91. package/dist/containers/home_page/programs/Programs.js.map +1 -1
  92. package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js +17 -5
  93. package/dist/containers/home_page/project_view_carousel/ProjectViewCarousel.js.map +1 -1
  94. package/dist/containers/home_page/resources/Resources.js +3 -0
  95. package/dist/containers/home_page/resources/Resources.js.map +1 -1
  96. package/dist/containers/oauth/CreateOAuthClient.d.ts +12 -0
  97. package/dist/containers/oauth/CreateOAuthClient.js +204 -0
  98. package/dist/containers/oauth/CreateOAuthClient.js.map +1 -0
  99. package/dist/containers/oauth/OAuthManagement.d.ts +2 -0
  100. package/dist/containers/oauth/OAuthManagement.js +128 -0
  101. package/dist/containers/oauth/OAuthManagement.js.map +1 -0
  102. package/dist/containers/personal_access_token/AccessTokenPage.js +11 -39
  103. package/dist/containers/personal_access_token/AccessTokenPage.js.map +1 -1
  104. package/dist/containers/personal_access_token/CreateAccessTokenModal.js +4 -4
  105. package/dist/containers/personal_access_token/CreateAccessTokenModal.js.map +1 -1
  106. package/dist/containers/provenance/ActivityNodeLabel.d.ts +3 -0
  107. package/dist/containers/provenance/ActivityNodeLabel.js +27 -0
  108. package/dist/containers/provenance/ActivityNodeLabel.js.map +1 -0
  109. package/dist/containers/provenance/EntityNodeLabel.d.ts +3 -0
  110. package/dist/containers/provenance/EntityNodeLabel.js +29 -0
  111. package/dist/containers/provenance/EntityNodeLabel.js.map +1 -0
  112. package/dist/containers/provenance/EntityPlaceholderNodeLabel.d.ts +6 -0
  113. package/dist/containers/provenance/EntityPlaceholderNodeLabel.js +23 -0
  114. package/dist/containers/provenance/EntityPlaceholderNodeLabel.js.map +1 -0
  115. package/dist/containers/provenance/ExpandGraphNodeLabel.d.ts +7 -0
  116. package/dist/containers/provenance/ExpandGraphNodeLabel.js +18 -0
  117. package/dist/containers/provenance/ExpandGraphNodeLabel.js.map +1 -0
  118. package/dist/containers/provenance/ExternalGraphNodeLabel.d.ts +3 -0
  119. package/dist/containers/provenance/ExternalGraphNodeLabel.js +16 -0
  120. package/dist/containers/provenance/ExternalGraphNodeLabel.js.map +1 -0
  121. package/dist/containers/provenance/ProvenanceEntityIcon.d.ts +6 -0
  122. package/dist/containers/provenance/ProvenanceEntityIcon.js +87 -0
  123. package/dist/containers/provenance/ProvenanceEntityIcon.js.map +1 -0
  124. package/dist/containers/provenance/ProvenanceExternalIcon.d.ts +5 -0
  125. package/dist/containers/provenance/ProvenanceExternalIcon.js +26 -0
  126. package/dist/containers/provenance/ProvenanceExternalIcon.js.map +1 -0
  127. package/dist/containers/provenance/ProvenanceGraph.d.ts +12 -0
  128. package/dist/containers/provenance/ProvenanceGraph.js +309 -0
  129. package/dist/containers/provenance/ProvenanceGraph.js.map +1 -0
  130. package/dist/containers/provenance/ProvenanceGraphUtils.d.ts +66 -0
  131. package/dist/containers/provenance/ProvenanceGraphUtils.js +175 -0
  132. package/dist/containers/provenance/ProvenanceGraphUtils.js.map +1 -0
  133. package/dist/containers/provenance/ProvenanceUtils.d.ts +32 -0
  134. package/dist/containers/provenance/ProvenanceUtils.js +145 -0
  135. package/dist/containers/provenance/ProvenanceUtils.js.map +1 -0
  136. package/dist/containers/provenance/UndefinedNodeLabel.d.ts +2 -0
  137. package/dist/containers/provenance/UndefinedNodeLabel.js +14 -0
  138. package/dist/containers/provenance/UndefinedNodeLabel.js.map +1 -0
  139. package/dist/containers/row_renderers/utils/CardFooter.js +1 -1
  140. package/dist/containers/row_renderers/utils/CardFooter.js.map +1 -1
  141. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.d.ts +6 -0
  142. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js +43 -0
  143. package/dist/containers/synapse_form_wrapper/SynapseFormUtils.js.map +1 -0
  144. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.d.ts +0 -4
  145. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +14 -45
  146. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
  147. package/dist/containers/synapse_table_functions/SynapseTableCell.d.ts +2 -2
  148. package/dist/containers/synapse_table_functions/SynapseTableCell.js +3 -1
  149. package/dist/containers/synapse_table_functions/SynapseTableCell.js.map +1 -1
  150. package/dist/containers/table/SynapseTable.d.ts +0 -7
  151. package/dist/containers/table/SynapseTable.js +4 -21
  152. package/dist/containers/table/SynapseTable.js.map +1 -1
  153. package/dist/containers/table/TablePagination.js +7 -2
  154. package/dist/containers/table/TablePagination.js.map +1 -1
  155. package/dist/containers/table/TopLevelControls.js +1 -1
  156. package/dist/containers/table/TopLevelControls.js.map +1 -1
  157. package/dist/containers/table/datasets/DatasetItemsEditor.d.ts +18 -7
  158. package/dist/containers/table/datasets/DatasetItemsEditor.js +95 -28
  159. package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
  160. package/dist/containers/table/table-top/ColumnSelection.js +2 -6
  161. package/dist/containers/table/table-top/ColumnSelection.js.map +1 -1
  162. package/dist/containers/trash/TrashCanList.d.ts +2 -0
  163. package/dist/containers/trash/TrashCanList.js +144 -0
  164. package/dist/containers/trash/TrashCanList.js.map +1 -0
  165. package/dist/containers/widgets/Checkbox.d.ts +1 -0
  166. package/dist/containers/widgets/Checkbox.js +4 -4
  167. package/dist/containers/widgets/Checkbox.js.map +1 -1
  168. package/dist/containers/widgets/ElementWithTooltip.js +2 -8
  169. package/dist/containers/widgets/ElementWithTooltip.js.map +1 -1
  170. package/dist/containers/widgets/Range.d.ts +1 -1
  171. package/dist/containers/widgets/Range.js +2 -2
  172. package/dist/containers/widgets/Range.js.map +1 -1
  173. package/dist/containers/widgets/SynapseImage.d.ts +1 -1
  174. package/dist/containers/widgets/facet-nav/FacetNavPanel.js +9 -1
  175. package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  176. package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +1 -1
  177. package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  178. package/dist/index.d.ts +2 -1
  179. package/dist/index.js +4 -2
  180. package/dist/index.js.map +1 -1
  181. package/dist/style/base/_core.scss +1 -2
  182. package/dist/style/bootstrap4_backports/_base-import.scss +3 -0
  183. package/dist/style/bootstrap4_backports/_overrides.scss +7 -2
  184. package/dist/style/components/_all.scss +2 -1
  185. package/dist/style/components/_copy-to-clipboard.scss +2 -0
  186. package/dist/style/components/_dataset-editor.scss +4 -1
  187. package/dist/style/components/_oauth-editor.scss +33 -0
  188. package/dist/style/components/_provenance.scss +71 -0
  189. package/dist/style/components/entity_finder/_tree-node-browse.scss +2 -1
  190. package/dist/style/components/entity_finder/_tree-view.scss +0 -3
  191. package/dist/style/main.css +119 -71
  192. package/dist/umd/synapse-react-client.development.css +120 -71
  193. package/dist/umd/synapse-react-client.development.css.map +2 -2
  194. package/dist/umd/synapse-react-client.development.js +79555 -64473
  195. package/dist/umd/synapse-react-client.development.js.map +3 -3
  196. package/dist/umd/synapse-react-client.production.min.css +1 -1
  197. package/dist/umd/synapse-react-client.production.min.js +96 -93
  198. package/dist/umd.index.d.ts +6 -3
  199. package/dist/umd.index.js +7 -3
  200. package/dist/umd.index.js.map +1 -1
  201. package/dist/utils/APIConstants.d.ts +8 -0
  202. package/dist/utils/APIConstants.js +19 -1
  203. package/dist/utils/APIConstants.js.map +1 -1
  204. package/dist/utils/SynapseClient.d.ts +48 -13
  205. package/dist/utils/SynapseClient.js +250 -208
  206. package/dist/utils/SynapseClient.js.map +1 -1
  207. package/dist/utils/functions/EntityTypeUtils.d.ts +3 -1
  208. package/dist/utils/functions/EntityTypeUtils.js +37 -7
  209. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  210. package/dist/utils/hooks/SynapseAPI/index.d.ts +1 -0
  211. package/dist/utils/hooks/SynapseAPI/index.js +1 -0
  212. package/dist/utils/hooks/SynapseAPI/index.js.map +1 -1
  213. package/dist/utils/hooks/SynapseAPI/oauth/index.d.ts +1 -0
  214. package/dist/utils/hooks/SynapseAPI/oauth/index.js +5 -0
  215. package/dist/utils/hooks/SynapseAPI/oauth/index.js.map +1 -0
  216. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.d.ts +9 -0
  217. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js +79 -0
  218. package/dist/utils/hooks/SynapseAPI/oauth/useOAuthClient.js.map +1 -0
  219. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.d.ts +6 -0
  220. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js +81 -0
  221. package/dist/utils/hooks/SynapseAPI/trash/useTrashCan.js.map +1 -0
  222. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.d.ts +4 -0
  223. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js +21 -0
  224. package/dist/utils/hooks/SynapseAPI/user/usePersonalAccessToken.js.map +1 -0
  225. package/dist/utils/hooks/useGetInfoFromIds.js +2 -1
  226. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  227. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.d.ts +20 -22
  228. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js +28 -32
  229. package/dist/utils/hooks/useGetIsAllSelectedInfiniteList.js.map +1 -1
  230. package/dist/utils/synapseTypes/Entity/Entity.d.ts +8 -5
  231. package/dist/utils/synapseTypes/Entity/Entity.js +5 -1
  232. package/dist/utils/synapseTypes/Entity/Entity.js.map +1 -1
  233. package/dist/utils/synapseTypes/EntityHeader.d.ts +2 -0
  234. package/dist/utils/synapseTypes/OAuthClient.d.ts +39 -0
  235. package/dist/utils/synapseTypes/OAuthClient.js +12 -0
  236. package/dist/utils/synapseTypes/OAuthClient.js.map +1 -0
  237. package/dist/utils/synapseTypes/Provenance/Provenance.d.ts +41 -0
  238. package/dist/utils/synapseTypes/Provenance/Provenance.js +6 -0
  239. package/dist/utils/synapseTypes/Provenance/Provenance.js.map +1 -0
  240. package/dist/utils/synapseTypes/Table/Dataset.d.ts +13 -9
  241. package/dist/utils/synapseTypes/Table/Dataset.js.map +1 -1
  242. package/dist/utils/synapseTypes/Table/QueryResult.d.ts +1 -1
  243. package/dist/utils/synapseTypes/TrashedEntity.d.ts +17 -0
  244. package/dist/utils/synapseTypes/TrashedEntity.js +3 -0
  245. package/dist/utils/synapseTypes/TrashedEntity.js.map +1 -0
  246. package/dist/utils/synapseTypes/VersionInfo.d.ts +2 -2
  247. package/dist/utils/synapseTypes/index.d.ts +1 -0
  248. package/dist/utils/synapseTypes/index.js +1 -0
  249. package/dist/utils/synapseTypes/index.js.map +1 -1
  250. package/package.json +10 -4
  251. package/dist/containers/HasAccess.d.ts +0 -85
  252. package/dist/containers/HasAccess.js +0 -353
  253. package/dist/containers/HasAccess.js.map +0 -1
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { Reference } from '../../utils/synapseTypes';
3
+ /**
4
+ * This node type is used if the user cannot access the entity for some reason
5
+ */
6
+ export declare const EntityPlaceholderNodeLabel: (data: Reference) => JSX.Element;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EntityPlaceholderNodeLabel = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importStar(require("react"));
6
+ var IconSvg_1 = tslib_1.__importDefault(require("../IconSvg"));
7
+ /**
8
+ * This node type is used if the user cannot access the entity for some reason
9
+ */
10
+ var EntityPlaceholderNodeLabel = function (data) {
11
+ var targetVersionNumberString = data.targetVersionNumber
12
+ ? ".".concat(data.targetVersionNumber)
13
+ : '';
14
+ var entityVersionString = "".concat(data.targetId).concat(targetVersionNumberString);
15
+ return (0, react_1.useMemo)(function () { return (react_1.default.createElement(react_1.default.Fragment, null,
16
+ react_1.default.createElement("div", null,
17
+ react_1.default.createElement(IconSvg_1.default, { options: {
18
+ icon: 'fileOutlined',
19
+ } })),
20
+ react_1.default.createElement("span", null, entityVersionString))); }, [entityVersionString]);
21
+ };
22
+ exports.EntityPlaceholderNodeLabel = EntityPlaceholderNodeLabel;
23
+ //# sourceMappingURL=EntityPlaceholderNodeLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityPlaceholderNodeLabel.js","sourceRoot":"","sources":["../../../src/lib/containers/provenance/EntityPlaceholderNodeLabel.tsx"],"names":[],"mappings":";;;;AAAA,qDAAsC;AAEtC,+DAAgC;AAEhC;;GAEG;AACI,IAAM,0BAA0B,GAAG,UAAC,IAAe;IACxD,IAAM,yBAAyB,GAAG,IAAI,CAAC,mBAAmB;QACxD,CAAC,CAAC,WAAI,IAAI,CAAC,mBAAmB,CAAE;QAChC,CAAC,CAAC,EAAE,CAAA;IACN,IAAM,mBAAmB,GAAG,UAAG,IAAI,CAAC,QAAQ,SAAG,yBAAyB,CAAE,CAAA;IAC1E,OAAO,IAAA,eAAO,EACZ,cAAM,OAAA,CACJ;QACE;YACE,8BAAC,iBAAO,IACN,OAAO,EAAE;oBACP,IAAI,EAAE,cAAc;iBACrB,GACD,CACE;QACN,4CAAO,mBAAmB,CAAQ,CACjC,CACJ,EAXK,CAWL,EACD,CAAC,mBAAmB,CAAC,CACtB,CAAA;AACH,CAAC,CAAA;AApBY,QAAA,0BAA0B,8BAoBtC"}
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { EntityHeader } from '../../utils/synapseTypes';
3
+ export declare type ExpandGraphNodeDataProps = {
4
+ entityHeader: EntityHeader;
5
+ itemCount: number;
6
+ };
7
+ export declare const ExpandGraphNodeLabel: (props: ExpandGraphNodeDataProps) => JSX.Element;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpandGraphNodeLabel = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var pluralize_1 = tslib_1.__importDefault(require("pluralize"));
6
+ var react_1 = tslib_1.__importStar(require("react"));
7
+ var ExpandGraphNodeLabel = function (props) {
8
+ var itemCount = props.itemCount;
9
+ return (0, react_1.useMemo)(function () { return (react_1.default.createElement(react_1.default.Fragment, null,
10
+ react_1.default.createElement("a", null,
11
+ "Show ",
12
+ itemCount,
13
+ " ",
14
+ (0, pluralize_1.default)('item', itemCount),
15
+ "\u2026"))); }, [itemCount]);
16
+ };
17
+ exports.ExpandGraphNodeLabel = ExpandGraphNodeLabel;
18
+ //# sourceMappingURL=ExpandGraphNodeLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandGraphNodeLabel.js","sourceRoot":"","sources":["../../../src/lib/containers/provenance/ExpandGraphNodeLabel.tsx"],"names":[],"mappings":";;;;AAAA,gEAAiC;AACjC,qDAAsC;AAO/B,IAAM,oBAAoB,GAAG,UAAC,KAA+B;IAC1D,IAAA,SAAS,GAAK,KAAK,UAAV,CAAU;IAC3B,OAAO,IAAA,eAAO,EACZ,cAAM,OAAA,CACJ;QACE;;YACQ,SAAS;;YAAG,IAAA,mBAAS,EAAC,MAAM,EAAE,SAAS,CAAC;qBAC5C,CACH,CACJ,EANK,CAML,EACD,CAAC,SAAS,CAAC,CACZ,CAAA;AACH,CAAC,CAAA;AAZY,QAAA,oBAAoB,wBAYhC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { UsedURL } from '../../utils/synapseTypes/Provenance/Provenance';
3
+ export declare const ExternalGraphNodeLabel: (data: UsedURL) => JSX.Element;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExternalGraphNodeLabel = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importStar(require("react"));
6
+ var Tooltip_1 = tslib_1.__importDefault(require("../../utils/tooltip/Tooltip"));
7
+ var ProvenanceExternalIcon_1 = require("./ProvenanceExternalIcon");
8
+ var ExternalGraphNodeLabel = function (data) {
9
+ return (0, react_1.useMemo)(function () { return (react_1.default.createElement(react_1.default.Fragment, null,
10
+ react_1.default.createElement("div", null,
11
+ react_1.default.createElement(ProvenanceExternalIcon_1.ProvenanceExternalIcon, { url: data.url })),
12
+ react_1.default.createElement(Tooltip_1.default, { title: data.name, placement: "top", enterNextDelay: 300 },
13
+ react_1.default.createElement("a", { href: data.url, rel: "noopener noreferrer" }, data.name)))); }, [data.name, data.url]);
14
+ };
15
+ exports.ExternalGraphNodeLabel = ExternalGraphNodeLabel;
16
+ //# sourceMappingURL=ExternalGraphNodeLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExternalGraphNodeLabel.js","sourceRoot":"","sources":["../../../src/lib/containers/provenance/ExternalGraphNodeLabel.tsx"],"names":[],"mappings":";;;;AAAA,qDAAsC;AAEtC,gFAAiD;AACjD,mEAAiE;AAE1D,IAAM,sBAAsB,GAAG,UAAC,IAAa;IAClD,OAAO,IAAA,eAAO,EACZ,cAAM,OAAA,CACJ;QACE;YACE,8BAAC,+CAAsB,IAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAI,CACrC;QACN,8BAAC,iBAAO,IAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAC,KAAK,EAAC,cAAc,EAAE,GAAG;YAC5D,qCAAG,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAC,qBAAqB,IACzC,IAAI,CAAC,IAAI,CACR,CACI,CACT,CACJ,EAXK,CAWL,EACD,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CACtB,CAAA;AACH,CAAC,CAAA;AAhBY,QAAA,sBAAsB,0BAgBlC"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { EntityHeader } from '../../utils/synapseTypes';
3
+ export declare type ProvenanceEntityIconProps = {
4
+ entityHeader?: EntityHeader;
5
+ };
6
+ export declare const ProvenanceEntityIcon: (props: ProvenanceEntityIconProps) => JSX.Element;
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProvenanceEntityIcon = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ var EntityTypeUtils_1 = require("../../utils/functions/EntityTypeUtils");
7
+ var synapseTypes_1 = require("../../utils/synapseTypes");
8
+ var EntityIcon_1 = require("../EntityIcon");
9
+ var IconSvg_1 = tslib_1.__importDefault(require("../IconSvg"));
10
+ var codeFileExtensionSet = new Set([
11
+ '.awk',
12
+ '.bat',
13
+ '.btm',
14
+ '.c',
15
+ '.cmd',
16
+ '.cpp',
17
+ '.cxx',
18
+ '.def',
19
+ '.dlg',
20
+ '.dpc',
21
+ '.dpj',
22
+ '.dtd',
23
+ '.h',
24
+ '.hdl',
25
+ '.hpp',
26
+ '.hrc',
27
+ '.html',
28
+ '.hxx',
29
+ '.inc',
30
+ '.ini',
31
+ '.inl',
32
+ '.ins',
33
+ '.ipy',
34
+ '.java',
35
+ '.js',
36
+ '.jsp',
37
+ '.l',
38
+ '.lgt',
39
+ '.ll',
40
+ '.par',
41
+ '.pl',
42
+ '.py',
43
+ '.r',
44
+ '.rc',
45
+ '.rdb',
46
+ '.res',
47
+ '.s',
48
+ '.sbl',
49
+ '.scp',
50
+ '.sh',
51
+ '.sql',
52
+ '.src',
53
+ '.srs',
54
+ '.xml',
55
+ '.xrb',
56
+ '.y',
57
+ '.yaml',
58
+ '.yxx',
59
+ '.cwl',
60
+ '.wdl',
61
+ '.json',
62
+ ]);
63
+ var ProvenanceEntityIcon = function (props) {
64
+ var entityHeader = props.entityHeader;
65
+ if (entityHeader) {
66
+ var entityType = (0, EntityTypeUtils_1.convertToEntityType)(entityHeader === null || entityHeader === void 0 ? void 0 : entityHeader.type);
67
+ if (entityType == synapseTypes_1.EntityType.FILE) {
68
+ // this is a file, may want to use a special icon in this case
69
+ var lastPeriodIndex = entityHeader.name.lastIndexOf('.');
70
+ if (lastPeriodIndex > -1) {
71
+ var extension = entityHeader.name.slice(lastPeriodIndex);
72
+ if (codeFileExtensionSet.has(extension.toLowerCase())) {
73
+ return (react_1.default.createElement(IconSvg_1.default, { options: {
74
+ icon: 'code',
75
+ } }));
76
+ }
77
+ }
78
+ }
79
+ else {
80
+ return react_1.default.createElement(EntityIcon_1.EntityTypeIcon, { type: entityType, includeTooltip: false });
81
+ }
82
+ }
83
+ // return the default (File icon)
84
+ return react_1.default.createElement(EntityIcon_1.EntityTypeIcon, { type: synapseTypes_1.EntityType.FILE, includeTooltip: false });
85
+ };
86
+ exports.ProvenanceEntityIcon = ProvenanceEntityIcon;
87
+ //# sourceMappingURL=ProvenanceEntityIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvenanceEntityIcon.js","sourceRoot":"","sources":["../../../src/lib/containers/provenance/ProvenanceEntityIcon.tsx"],"names":[],"mappings":";;;;AAAA,wDAAyB;AACzB,yEAA2E;AAC3E,yDAAmE;AACnE,4CAA8C;AAC9C,+DAAgC;AAMhC,IAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,IAAI;IACJ,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,MAAM;IACN,MAAM;IACN,IAAI;IACJ,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,IAAI;IACJ,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;CACR,CAAC,CAAA;AAEK,IAAM,oBAAoB,GAAG,UAAC,KAAgC;IAC3D,IAAA,YAAY,GAAK,KAAK,aAAV,CAAU;IAC9B,IAAI,YAAY,EAAE;QAChB,IAAM,UAAU,GAAe,IAAA,qCAAmB,EAAC,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI,CAAC,CAAA;QACtE,IAAI,UAAU,IAAI,yBAAU,CAAC,IAAI,EAAE;YACjC,8DAA8D;YAC9D,IAAM,eAAe,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;YAC1D,IAAI,eAAe,GAAG,CAAC,CAAC,EAAE;gBACxB,IAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;gBAC1D,IAAI,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE;oBACrD,OAAO,CACL,8BAAC,iBAAO,IACN,OAAO,EAAE;4BACP,IAAI,EAAE,MAAM;yBACb,GACD,CACH,CAAA;iBACF;aACF;SACF;aAAM;YACL,OAAO,8BAAC,2BAAc,IAAC,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,GAAI,CAAA;SACnE;KACF;IAED,iCAAiC;IACjC,OAAO,8BAAC,2BAAc,IAAC,IAAI,EAAE,yBAAU,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,GAAI,CAAA;AACzE,CAAC,CAAA;AA1BY,QAAA,oBAAoB,wBA0BhC"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ export declare type ProvenanceExternalIconProps = {
3
+ url: string;
4
+ };
5
+ export declare const ProvenanceExternalIcon: (props: ProvenanceExternalIconProps) => JSX.Element;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProvenanceExternalIcon = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ var IconSvg_1 = tslib_1.__importDefault(require("../IconSvg"));
7
+ var githubRegex = /^(.+?\.)?github\.com$/;
8
+ var githubusercontentRegex = /^(.+?\.)?githubusercontent\.com$/;
9
+ var ProvenanceExternalIcon = function (props) {
10
+ var url = props.url;
11
+ var icon = 'link';
12
+ var parsedUrl = new URL(url);
13
+ var hostname = parsedUrl.hostname;
14
+ if (hostname.match(githubRegex) || hostname.match(githubusercontentRegex)) {
15
+ icon = 'github';
16
+ }
17
+ // else if (url.includes("genomespace.org")) {
18
+ // icon = 'genomespace'
19
+ // }
20
+ // return the default (File icon)
21
+ return (react_1.default.createElement(IconSvg_1.default, { options: {
22
+ icon: icon,
23
+ } }));
24
+ };
25
+ exports.ProvenanceExternalIcon = ProvenanceExternalIcon;
26
+ //# sourceMappingURL=ProvenanceExternalIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProvenanceExternalIcon.js","sourceRoot":"","sources":["../../../src/lib/containers/provenance/ProvenanceExternalIcon.tsx"],"names":[],"mappings":";;;;AAAA,wDAAyB;AACzB,+DAA0C;AAK1C,IAAM,WAAW,GAAG,uBAAuB,CAAA;AAC3C,IAAM,sBAAsB,GAAG,kCAAkC,CAAA;AAE1D,IAAM,sBAAsB,GAAG,UAAC,KAAkC;IAC/D,IAAA,GAAG,GAAK,KAAK,IAAV,CAAU;IACrB,IAAI,IAAI,GAAS,MAAM,CAAA;IACvB,IAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;IACtB,IAAA,QAAQ,GAAK,SAAS,SAAd,CAAc;IAE9B,IAAI,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;QACzE,IAAI,GAAG,QAAQ,CAAA;KAChB;IACD,8CAA8C;IAC9C,yBAAyB;IACzB,IAAI;IAEJ,iCAAiC;IACjC,OAAO,CACL,8BAAC,iBAAO,IACN,OAAO,EAAE;YACP,IAAI,MAAA;SACL,GACD,CACH,CAAA;AACH,CAAC,CAAA;AArBY,QAAA,sBAAsB,0BAqBlC"}
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { Node, Edge } from 'react-flow-renderer';
3
+ import { ReferenceList } from '../../utils/synapseTypes';
4
+ export declare type ProvenanceProps = {
5
+ entityRefs: ReferenceList;
6
+ containerHeight: string;
7
+ initialNodes?: Node[];
8
+ initialEdges?: Edge[];
9
+ onNodesChangedListener?: (nodes: Node[]) => void;
10
+ onEdgesChangedListener?: (edges: Edge[]) => void;
11
+ };
12
+ export declare const ProvenanceGraph: (props: ProvenanceProps) => JSX.Element;
@@ -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;