synapse-react-client 2.1.21 → 3.0.0

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 (194) hide show
  1. package/dist/containers/CardContainer.d.ts +0 -8
  2. package/dist/containers/CardContainer.js +13 -23
  3. package/dist/containers/CardContainer.js.map +1 -1
  4. package/dist/containers/CardContainerLogic.d.ts +3 -76
  5. package/dist/containers/CardContainerLogic.js +29 -150
  6. package/dist/containers/CardContainerLogic.js.map +1 -1
  7. package/dist/containers/ChangePassword.d.ts +3 -0
  8. package/dist/containers/ChangePassword.js +88 -0
  9. package/dist/containers/ChangePassword.js.map +1 -0
  10. package/dist/containers/FileUpload.d.ts +1 -1
  11. package/dist/containers/FileUpload.js.map +1 -1
  12. package/dist/containers/FluidModal.d.ts +2 -0
  13. package/dist/containers/FluidModal.js +6 -1
  14. package/dist/containers/FluidModal.js.map +1 -1
  15. package/dist/containers/FullTextSearch.d.ts +1 -5
  16. package/dist/containers/FullTextSearch.js +9 -9
  17. package/dist/containers/FullTextSearch.js.map +1 -1
  18. package/dist/containers/LoadingScreen.d.ts +7 -1
  19. package/dist/containers/LoadingScreen.js +15 -4
  20. package/dist/containers/LoadingScreen.js.map +1 -1
  21. package/dist/containers/QueryCount.js.map +1 -1
  22. package/dist/containers/QueryVisualizationWrapper.d.ts +48 -0
  23. package/dist/containers/QueryVisualizationWrapper.js +81 -0
  24. package/dist/containers/QueryVisualizationWrapper.js.map +1 -0
  25. package/dist/containers/QueryWrapper.d.ts +55 -145
  26. package/dist/containers/QueryWrapper.js +206 -263
  27. package/dist/containers/QueryWrapper.js.map +1 -1
  28. package/dist/containers/QueryWrapperErrorBanner.d.ts +5 -0
  29. package/dist/containers/QueryWrapperErrorBanner.js +16 -0
  30. package/dist/containers/QueryWrapperErrorBanner.js.map +1 -0
  31. package/dist/containers/SearchV2.d.ts +6 -2
  32. package/dist/containers/SearchV2.js +11 -11
  33. package/dist/containers/SearchV2.js.map +1 -1
  34. package/dist/containers/SqlEditor.d.ts +1 -5
  35. package/dist/containers/SqlEditor.js +8 -7
  36. package/dist/containers/SqlEditor.js.map +1 -1
  37. package/dist/containers/ToastMessage.d.ts +1 -1
  38. package/dist/containers/TotalQueryResults.d.ts +3 -6
  39. package/dist/containers/TotalQueryResults.js +42 -58
  40. package/dist/containers/TotalQueryResults.js.map +1 -1
  41. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.d.ts +1 -7
  42. package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js.map +1 -1
  43. package/dist/containers/download_list/DownloadConfirmation.d.ts +0 -5
  44. package/dist/containers/download_list/DownloadConfirmation.js +16 -18
  45. package/dist/containers/download_list/DownloadConfirmation.js.map +1 -1
  46. package/dist/containers/entity/annotations/AdditionalPropertiesSchemaField.d.ts +1 -1
  47. package/dist/containers/entity_finder/EntityFinder.d.ts +1 -1
  48. package/dist/containers/entity_finder/EntityFinder.js +4 -4
  49. package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
  50. package/dist/containers/entity_finder/EntityFinderModal.d.ts +2 -0
  51. package/dist/containers/entity_finder/EntityFinderModal.js +1 -1
  52. package/dist/containers/entity_finder/EntityFinderModal.js.map +1 -1
  53. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +6 -4
  54. package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
  55. package/dist/containers/entity_finder/details/view/DetailsView.d.ts +5 -1
  56. package/dist/containers/entity_finder/details/view/DetailsView.js +9 -2
  57. package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
  58. package/dist/containers/entity_finder/tree/{TreeView.d.ts → EntityTree.d.ts} +4 -4
  59. package/dist/containers/entity_finder/tree/{TreeView.js → EntityTree.js} +43 -30
  60. package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -0
  61. package/dist/containers/entity_finder/tree/VirtualizedTree.d.ts +89 -0
  62. package/dist/containers/entity_finder/tree/VirtualizedTree.js +379 -0
  63. package/dist/containers/entity_finder/tree/VirtualizedTree.js.map +1 -0
  64. package/dist/containers/home_page/featured-data/FacetPlotsCard.d.ts +1 -4
  65. package/dist/containers/home_page/featured-data/FacetPlotsCard.js +11 -8
  66. package/dist/containers/home_page/featured-data/FacetPlotsCard.js.map +1 -1
  67. package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.d.ts +1 -1
  68. package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js +8 -9
  69. package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js.map +1 -1
  70. package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.d.ts +1 -1
  71. package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js +10 -11
  72. package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js.map +1 -1
  73. package/dist/containers/query_wrapper_plot_nav/FilterAndView.d.ts +2 -4
  74. package/dist/containers/query_wrapper_plot_nav/FilterAndView.js +12 -5
  75. package/dist/containers/query_wrapper_plot_nav/FilterAndView.js.map +1 -1
  76. package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.d.ts +1 -2
  77. package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.js +9 -10
  78. package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.js.map +1 -1
  79. package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.d.ts +4 -4
  80. package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js +53 -35
  81. package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js.map +1 -1
  82. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +1 -1
  83. package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
  84. package/dist/containers/table/StandaloneQueryWrapper.d.ts +4 -6
  85. package/dist/containers/table/StandaloneQueryWrapper.js +29 -19
  86. package/dist/containers/table/StandaloneQueryWrapper.js.map +1 -1
  87. package/dist/containers/table/SynapseTable.d.ts +12 -13
  88. package/dist/containers/table/SynapseTable.js +100 -136
  89. package/dist/containers/table/SynapseTable.js.map +1 -1
  90. package/dist/containers/table/TopLevelControls.d.ts +1 -4
  91. package/dist/containers/table/TopLevelControls.js +27 -43
  92. package/dist/containers/table/TopLevelControls.js.map +1 -1
  93. package/dist/containers/table/datasets/DatasetItemsEditor.js +5 -2
  94. package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
  95. package/dist/containers/table/table-top/ColumnSelection.d.ts +1 -1
  96. package/dist/containers/table/table-top/ColumnSelection.js +3 -5
  97. package/dist/containers/table/table-top/ColumnSelection.js.map +1 -1
  98. package/dist/containers/table/table-top/DownloadOptions.d.ts +0 -2
  99. package/dist/containers/table/table-top/DownloadOptions.js +7 -6
  100. package/dist/containers/table/table-top/DownloadOptions.js.map +1 -1
  101. package/dist/containers/widgets/facet-nav/FacetNav.d.ts +1 -3
  102. package/dist/containers/widgets/facet-nav/FacetNav.js +14 -10
  103. package/dist/containers/widgets/facet-nav/FacetNav.js.map +1 -1
  104. package/dist/containers/widgets/facet-nav/FacetNavPanel.d.ts +5 -8
  105. package/dist/containers/widgets/facet-nav/FacetNavPanel.js +15 -12
  106. package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  107. package/dist/containers/widgets/query-filter/EnumFacetFilter.d.ts +3 -3
  108. package/dist/containers/widgets/query-filter/EnumFacetFilter.js +2 -2
  109. package/dist/containers/widgets/query-filter/EnumFacetFilter.js.map +1 -1
  110. package/dist/containers/widgets/query-filter/QueryFilter.d.ts +7 -12
  111. package/dist/containers/widgets/query-filter/QueryFilter.js +12 -9
  112. package/dist/containers/widgets/query-filter/QueryFilter.js.map +1 -1
  113. package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +4 -4
  114. package/dist/containers/widgets/query-filter/RangeFacetFilter.js +4 -4
  115. package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
  116. package/dist/index.d.ts +6 -9
  117. package/dist/index.js +6 -6
  118. package/dist/index.js.map +1 -1
  119. package/dist/style/abstracts/_variables.scss +14 -0
  120. package/dist/style/components/_bar-loader.scss +11 -2
  121. package/dist/style/components/_spinner.scss +2 -2
  122. package/dist/style/components/entity_finder/_tree-node-browse.scss +5 -10
  123. package/dist/style/components/entity_finder/_tree-node-select.scss +17 -23
  124. package/dist/style/components/entity_finder/_tree-view.scss +17 -20
  125. package/dist/style/main.css +42 -27
  126. package/dist/umd/synapse-react-client.development.css +67 -27
  127. package/dist/umd/synapse-react-client.development.css.map +3 -3
  128. package/dist/umd/synapse-react-client.development.js +9865 -3080
  129. package/dist/umd/synapse-react-client.development.js.map +3 -3
  130. package/dist/umd/synapse-react-client.production.min.css +1 -1
  131. package/dist/umd/synapse-react-client.production.min.js +106 -79
  132. package/dist/umd.index.d.ts +2 -1
  133. package/dist/umd.index.js +2 -0
  134. package/dist/umd.index.js.map +1 -1
  135. package/dist/utils/APIConstants.d.ts +1 -0
  136. package/dist/utils/APIConstants.js +3 -2
  137. package/dist/utils/APIConstants.js.map +1 -1
  138. package/dist/utils/SynapseClient.d.ts +62 -20
  139. package/dist/utils/SynapseClient.js +308 -211
  140. package/dist/utils/SynapseClient.js.map +1 -1
  141. package/dist/utils/SynapseConstants.d.ts +1 -0
  142. package/dist/utils/SynapseConstants.js +3 -2
  143. package/dist/utils/SynapseConstants.js.map +1 -1
  144. package/dist/utils/functions/EntityTypeUtils.d.ts +13 -1
  145. package/dist/utils/functions/EntityTypeUtils.js +25 -1
  146. package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
  147. package/dist/utils/functions/queryUtils.d.ts +2 -2
  148. package/dist/utils/functions/queryUtils.js +22 -5
  149. package/dist/utils/functions/queryUtils.js.map +1 -1
  150. package/dist/utils/functions/sqlFunctions.js +1 -1
  151. package/dist/utils/functions/sqlFunctions.js.map +1 -1
  152. package/dist/utils/functions/unCamelCase.d.ts +1 -1
  153. package/dist/utils/functions/unCamelCase.js.map +1 -1
  154. package/dist/utils/hooks/SynapseAPI/useGetEntityChildren.js +3 -3
  155. package/dist/utils/hooks/SynapseAPI/useGetEntityChildren.js.map +1 -1
  156. package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.d.ts +4 -3
  157. package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.js +67 -1
  158. package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.js.map +1 -1
  159. package/dist/utils/synapseTypes/ChangePasswordRequests.d.ts +25 -0
  160. package/dist/utils/synapseTypes/{DownloadListV2/DownloadListQueryResponse.js → ChangePasswordRequests.js} +1 -1
  161. package/dist/utils/synapseTypes/ChangePasswordRequests.js.map +1 -0
  162. package/dist/utils/synapseTypes/FileUploadComplete.d.ts +6 -0
  163. package/dist/utils/synapseTypes/Table/AsynchronousJobStatus.d.ts +5 -4
  164. package/dist/utils/synapseTypes/Table/EntityView.d.ts +8 -0
  165. package/dist/utils/synapseTypes/Table/EntityView.js +9 -0
  166. package/dist/utils/synapseTypes/Table/EntityView.js.map +1 -1
  167. package/dist/utils/synapseTypes/Table/FacetColumnRequest.d.ts +1 -1
  168. package/dist/utils/synapseTypes/Table/FacetColumnResult.d.ts +10 -10
  169. package/dist/utils/synapseTypes/Table/QueryResultBundle.d.ts +1 -0
  170. package/dist/utils/synapseTypes/VerificationSubmission.d.ts +22 -5
  171. package/dist/utils/synapseTypes/VerificationSubmission.js +8 -0
  172. package/dist/utils/synapseTypes/VerificationSubmission.js.map +1 -1
  173. package/dist/utils/types/Writable.d.ts +8 -0
  174. package/dist/utils/{synapseTypes/DownloadListV2/DownloadListManifestResponse.js → types/Writable.js} +1 -1
  175. package/dist/utils/types/Writable.js.map +1 -0
  176. package/dist/utils/typography/Typography.styles.d.ts +1 -1
  177. package/package.json +47 -37
  178. package/dist/containers/Facets.d.ts +0 -43
  179. package/dist/containers/Facets.js +0 -199
  180. package/dist/containers/Facets.js.map +0 -1
  181. package/dist/containers/StackedBarChart.d.ts +0 -63
  182. package/dist/containers/StackedBarChart.js +0 -229
  183. package/dist/containers/StackedBarChart.js.map +0 -1
  184. package/dist/containers/entity_finder/tree/TreeNode.d.ts +0 -25
  185. package/dist/containers/entity_finder/tree/TreeNode.js +0 -89
  186. package/dist/containers/entity_finder/tree/TreeNode.js.map +0 -1
  187. package/dist/containers/entity_finder/tree/TreeView.js.map +0 -1
  188. package/dist/utils/functions/facetUtils.d.ts +0 -44
  189. package/dist/utils/functions/facetUtils.js +0 -84
  190. package/dist/utils/functions/facetUtils.js.map +0 -1
  191. package/dist/utils/synapseTypes/DownloadListV2/DownloadListManifestResponse.d.ts +0 -4
  192. package/dist/utils/synapseTypes/DownloadListV2/DownloadListManifestResponse.js.map +0 -1
  193. package/dist/utils/synapseTypes/DownloadListV2/DownloadListQueryResponse.d.ts +0 -5
  194. package/dist/utils/synapseTypes/DownloadListV2/DownloadListQueryResponse.js.map +0 -1
@@ -0,0 +1,89 @@
1
+ /// <reference types="react" />
2
+ import { Map } from 'immutable';
3
+ import { TreeWalker, TreeWalkerValue, VariableSizeNodeData, VariableSizeNodePublicState } from 'react-vtree';
4
+ import { NodeComponentProps } from 'react-vtree/dist/es/Tree';
5
+ import { EntityHeader, EntityType, ProjectHeader } from '../../../utils/synapseTypes';
6
+ import { Writable } from '../../../utils/types/Writable';
7
+ export declare enum EntityTreeNodeType {
8
+ /** The tree component's appearance and interactions will facilitate selection. Nodes will be larger and styles will indicate primary selection */
9
+ SINGLE_PANE = 0,
10
+ /** The tree component's appearance and interactions will facilitate browsing. Nodes will be smaller and styles will indicate secondary selection */
11
+ DUAL_PANE = 1
12
+ }
13
+ declare type EntityFinderHeader = Pick<EntityHeader, 'id' | 'name' | 'type'> | ProjectHeader;
14
+ declare type NodeChildren = Readonly<{
15
+ /** The node's children. If undefined, then children have not been fetched. */
16
+ children?: EntityHeaderNode[];
17
+ /** The token used to fetch the next page of children for this entity. If this property is nullish and children is defined, then all children have been fetched. */
18
+ childrenNextPageToken?: string | null;
19
+ }>;
20
+ declare type EntityHeaderNode = EntityFinderHeader & NodeChildren;
21
+ declare type PaginationNode = {
22
+ __paginationNode: true;
23
+ };
24
+ declare type TreeNode = EntityHeaderNode | RootNodeConfiguration | PaginationNode;
25
+ export declare type TreeData = VariableSizeNodeData & Readonly<{
26
+ node: TreeNode;
27
+ getNextPageOfChildren: () => Promise<void>;
28
+ isLeaf: boolean;
29
+ nestingLevel: number;
30
+ setSelectedId: (entityId: string) => void;
31
+ treeNodeType: EntityTreeNodeType;
32
+ isSelected: boolean;
33
+ isDisabled: boolean;
34
+ }>;
35
+ declare type NodeMeta = Readonly<{
36
+ nestingLevel: number;
37
+ node: TreeNode;
38
+ }>;
39
+ export declare type RootNodeConfiguration = {
40
+ show: boolean;
41
+ nodeText: string;
42
+ children: EntityHeaderNode[];
43
+ /** If undefined, no more entities to fetch */
44
+ fetchNextPage: () => Promise<void>;
45
+ hasNextPage: boolean;
46
+ };
47
+ /**
48
+ * Converts a TreeNode and related data into a TreeWalkerValue that react-vtree can use to render the tree.
49
+ * Exported for testing purposes only.
50
+ * @param config
51
+ * @returns
52
+ */
53
+ export declare const getNodeData: (config: {
54
+ node: TreeNode;
55
+ nestingLevel: number;
56
+ getNextPageOfChildren: () => Promise<void>;
57
+ setSelectedId: (entityId: string) => void;
58
+ treeNodeType: EntityTreeNodeType;
59
+ selected: Map<string, number>;
60
+ selectableTypes: EntityType[];
61
+ autoExpand: (entityId: string) => boolean;
62
+ defaultHeight: number;
63
+ currentContainer?: string | null | undefined;
64
+ }) => TreeWalkerValue<TreeData, NodeMeta>;
65
+ /**
66
+ * Node component for the react-vtree virtualized tree. Exported only for testing purposes
67
+ */
68
+ export declare function Node(props: NodeComponentProps<TreeData, VariableSizeNodePublicState<TreeData>>): JSX.Element;
69
+ /**
70
+ * Extracted from the React component for testing purposes
71
+ * @returns a generator function compatible with react-vtree
72
+ */
73
+ export declare function getTreeWalkerFunction(rootNode: RootNodeConfiguration, setSelectedId: VirtualizedTreeProps['setSelectedId'], treeNodeType: VirtualizedTreeProps['treeNodeType'], selected: VirtualizedTreeProps['selected'], selectableTypes: VirtualizedTreeProps['selectableTypes'], autoExpand: VirtualizedTreeProps['autoExpand'], itemSize: (index?: number) => number, currentContainer: VirtualizedTreeProps['currentContainer'], fetchNextPageOfChildren: (node: Writable<EntityHeaderNode>) => Promise<void>): TreeWalker<TreeData, NodeMeta>;
74
+ export declare type VirtualizedTreeProps = Readonly<{
75
+ treeNodeType: EntityTreeNodeType;
76
+ rootNodeConfiguration: RootNodeConfiguration;
77
+ setSelectedId: (entityId: string) => void;
78
+ selected: Map<string, number>;
79
+ currentContainer?: string | 'root' | null;
80
+ autoExpand: (entityId: string) => boolean;
81
+ selectableTypes: EntityType[];
82
+ visibleTypes: EntityType[];
83
+ }>;
84
+ /**
85
+ * Component that utilizes react-vtree to efficiently display a tree of entities. react-vtree utilizes react-window
86
+ * to only render visible nodes, which eliminates performance issues as seen in SWC-5978.
87
+ */
88
+ export declare const VirtualizedTree: (props: VirtualizedTreeProps) => JSX.Element;
89
+ export {};
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VirtualizedTree = exports.getTreeWalkerFunction = exports.Node = exports.getNodeData = exports.EntityTreeNodeType = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var lab_1 = require("@material-ui/lab");
6
+ var lodash_1 = require("lodash");
7
+ var react_1 = (0, tslib_1.__importStar)(require("react"));
8
+ var react_intersection_observer_1 = require("react-intersection-observer");
9
+ var react_virtualized_auto_sizer_1 = (0, tslib_1.__importDefault)(require("react-virtualized-auto-sizer"));
10
+ var react_vtree_1 = require("react-vtree");
11
+ var utils_1 = require("../../../utils");
12
+ var EntityTypeUtils_1 = require("../../../utils/functions/EntityTypeUtils");
13
+ var SynapseContext_1 = require("../../../utils/SynapseContext");
14
+ var EntityBadgeIcons_1 = require("../../EntityBadgeIcons");
15
+ var EntityIcon_1 = require("../../EntityIcon");
16
+ var LoadingScreen_1 = require("../../LoadingScreen");
17
+ var EntityTreeNodeType;
18
+ (function (EntityTreeNodeType) {
19
+ /** The tree component's appearance and interactions will facilitate selection. Nodes will be larger and styles will indicate primary selection */
20
+ EntityTreeNodeType[EntityTreeNodeType["SINGLE_PANE"] = 0] = "SINGLE_PANE";
21
+ /** The tree component's appearance and interactions will facilitate browsing. Nodes will be smaller and styles will indicate secondary selection */
22
+ EntityTreeNodeType[EntityTreeNodeType["DUAL_PANE"] = 1] = "DUAL_PANE";
23
+ })(EntityTreeNodeType = exports.EntityTreeNodeType || (exports.EntityTreeNodeType = {}));
24
+ function getTreeNodeType(node) {
25
+ if ('__paginationNode' in node) {
26
+ return 'pagination';
27
+ }
28
+ return 'id' in node ? 'entityHeader' : 'rootNodeConfiguration';
29
+ }
30
+ function isPaginationNode(node) {
31
+ return getTreeNodeType(node) === 'pagination';
32
+ }
33
+ function isEntityHeaderNode(node) {
34
+ return getTreeNodeType(node) === 'entityHeader';
35
+ }
36
+ function isRootNodeConfiguration(node) {
37
+ return getTreeNodeType(node) === 'rootNodeConfiguration';
38
+ }
39
+ function hasMoreChildren(node) {
40
+ if (isPaginationNode(node)) {
41
+ return true;
42
+ }
43
+ else if (isRootNodeConfiguration(node)) {
44
+ return node.hasNextPage;
45
+ }
46
+ return node.children == null || node.childrenNextPageToken != null;
47
+ }
48
+ function isLeafNode(node) {
49
+ if (isPaginationNode(node)) {
50
+ return true;
51
+ }
52
+ else if (isRootNodeConfiguration(node)) {
53
+ return false;
54
+ }
55
+ else {
56
+ return (
57
+ // Entity is not a container
58
+ !(0, EntityTypeUtils_1.isContainerType)((0, EntityTypeUtils_1.getEntityTypeFromHeader)(node)) ||
59
+ // OR Children have been fetched (nonnull) and there are 0 children
60
+ (node.children != null && node.children.length === 0));
61
+ }
62
+ }
63
+ /**
64
+ * Converts a TreeNode and related data into a TreeWalkerValue that react-vtree can use to render the tree.
65
+ * Exported for testing purposes only.
66
+ * @param config
67
+ * @returns
68
+ */
69
+ var getNodeData = function (config) {
70
+ var node = config.node, nestingLevel = config.nestingLevel, getNextPageOfChildren = config.getNextPageOfChildren, setSelectedId = config.setSelectedId, treeNodeType = config.treeNodeType, selected = config.selected, selectableTypes = config.selectableTypes, autoExpand = config.autoExpand, defaultHeight = config.defaultHeight, currentContainer = config.currentContainer;
71
+ if (isPaginationNode(node)) {
72
+ throw new Error('Cannot create data for a pagination node');
73
+ }
74
+ var id = isRootNodeConfiguration(node) ? 'root' : node.id;
75
+ var isOpenByDefault = autoExpand(id);
76
+ var isSelected = treeNodeType === EntityTreeNodeType.SINGLE_PANE
77
+ ? selected.has(id)
78
+ : currentContainer === id;
79
+ var isDisabled = !isRootNodeConfiguration(node) &&
80
+ !selectableTypes.includes((0, EntityTypeUtils_1.getEntityTypeFromHeader)(node));
81
+ /*
82
+ * If the node is open by default and we haven't fetched its children,
83
+ * fetch the first page (otherwise we won't fetch unless re-toggled)
84
+ */
85
+ if (isOpenByDefault && node.children == null && hasMoreChildren(node)) {
86
+ getNextPageOfChildren();
87
+ }
88
+ return {
89
+ data: {
90
+ node: node,
91
+ getNextPageOfChildren: getNextPageOfChildren,
92
+ id: id,
93
+ isLeaf: isLeafNode(node),
94
+ isOpenByDefault: isOpenByDefault,
95
+ nestingLevel: nestingLevel,
96
+ setSelectedId: setSelectedId,
97
+ treeNodeType: treeNodeType,
98
+ isSelected: isSelected,
99
+ isDisabled: isDisabled,
100
+ defaultHeight: defaultHeight,
101
+ },
102
+ nestingLevel: nestingLevel,
103
+ node: node,
104
+ };
105
+ };
106
+ exports.getNodeData = getNodeData;
107
+ /**
108
+ * Node component for the react-vtree virtualized tree. Exported only for testing purposes
109
+ */
110
+ function Node(props) {
111
+ var _this = this;
112
+ var _a = props.data, node = _a.node, getNextPageOfChildren = _a.getNextPageOfChildren, isLeaf = _a.isLeaf, id = _a.id, nestingLevel = _a.nestingLevel, setSelectedId = _a.setSelectedId, treeNodeType = _a.treeNodeType, isSelected = _a.isSelected, isDisabled = _a.isDisabled, isOpen = props.isOpen, style = props.style, setOpen = props.setOpen;
113
+ var _b = (0, react_1.useState)(false), isLoading = _b[0], setLoading = _b[1];
114
+ var nodeText = isEntityHeaderNode(node) ? (node.name) : isRootNodeConfiguration(node) ? (node.nodeText) : (
115
+ // Pagination node
116
+ react_1.default.createElement(lab_1.Skeleton, { width: 100 }));
117
+ // We only use this for pagination nodes. If the pagination node comes into view, then immediately call `getNextPageOfChildren`
118
+ var _c = (0, react_intersection_observer_1.useInView)(), ref = _c.ref, inView = _c.inView;
119
+ (0, react_1.useEffect)(function () {
120
+ if (isPaginationNode(node) && inView) {
121
+ getNextPageOfChildren();
122
+ }
123
+ }, [node, inView, getNextPageOfChildren]);
124
+ /**
125
+ * If the height is 0, the node is purposefully hidden. Just render a fragment.
126
+ */
127
+ if ('height' in style && style.height === 0) {
128
+ return react_1.default.createElement(react_1.default.Fragment, null);
129
+ }
130
+ function toggleExpand() {
131
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
132
+ return (0, tslib_1.__generator)(this, function (_a) {
133
+ switch (_a.label) {
134
+ case 0:
135
+ if (!hasMoreChildren(node)) return [3 /*break*/, 3];
136
+ setLoading(true);
137
+ return [4 /*yield*/, getNextPageOfChildren()];
138
+ case 1:
139
+ _a.sent();
140
+ return [4 /*yield*/, setOpen(!isOpen)];
141
+ case 2:
142
+ _a.sent();
143
+ setLoading(false);
144
+ return [3 /*break*/, 5];
145
+ case 3: return [4 /*yield*/, setOpen(!isOpen)];
146
+ case 4:
147
+ _a.sent();
148
+ _a.label = 5;
149
+ case 5: return [2 /*return*/];
150
+ }
151
+ });
152
+ });
153
+ }
154
+ return (react_1.default.createElement("div", { className: "Node " + (treeNodeType === EntityTreeNodeType.SINGLE_PANE
155
+ ? 'SelectNode'
156
+ : 'BrowseNode'), "aria-selected": isSelected, "aria-disabled": isDisabled, onClick: function (event) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
157
+ return (0, tslib_1.__generator)(this, function (_a) {
158
+ switch (_a.label) {
159
+ case 0:
160
+ event.stopPropagation();
161
+ if (!isDisabled) {
162
+ setSelectedId(id);
163
+ }
164
+ if (!(treeNodeType === EntityTreeNodeType.DUAL_PANE &&
165
+ !isOpen &&
166
+ !isSelected)) return [3 /*break*/, 2];
167
+ return [4 /*yield*/, toggleExpand()];
168
+ case 1:
169
+ _a.sent();
170
+ _a.label = 2;
171
+ case 2: return [2 /*return*/];
172
+ }
173
+ });
174
+ }); }, style: (0, tslib_1.__assign)((0, tslib_1.__assign)({}, style), { paddingLeft: 20 + nestingLevel * 20 + "px" }) },
175
+ !isLeaf && (react_1.default.createElement("button", { className: "ExpandButton", type: "button", onClick: function (event) { return (0, tslib_1.__awaiter)(_this, void 0, void 0, function () {
176
+ return (0, tslib_1.__generator)(this, function (_a) {
177
+ switch (_a.label) {
178
+ case 0:
179
+ event.stopPropagation();
180
+ return [4 /*yield*/, toggleExpand()];
181
+ case 1:
182
+ _a.sent();
183
+ return [2 /*return*/];
184
+ }
185
+ });
186
+ }); } }, isLoading ? react_1.default.createElement(LoadingScreen_1.SynapseSpinner, { size: 10 }) : isOpen ? '▾' : '▸')),
187
+ treeNodeType === EntityTreeNodeType.SINGLE_PANE && ( // SWC-5592
188
+ react_1.default.createElement("div", { className: "EntityIcon" }, isEntityHeaderNode(node) && (react_1.default.createElement(EntityIcon_1.EntityTypeIcon, { type: (0, EntityTypeUtils_1.getEntityTypeFromHeader)(node) })))),
189
+ react_1.default.createElement("div", { className: "EntityName", ref: ref }, nodeText),
190
+ treeNodeType === EntityTreeNodeType.SINGLE_PANE && (react_1.default.createElement(EntityBadgeIcons_1.EntityBadgeIcons, { entityId: id, showHasDiscussionThread: false, showHasWiki: false, showUnlink: false, canOpenModal: false, renderTooltipComponent: true }))));
191
+ }
192
+ exports.Node = Node;
193
+ /**
194
+ * Extracted from the React component for testing purposes
195
+ * @returns a generator function compatible with react-vtree
196
+ */
197
+ function getTreeWalkerFunction(rootNode, setSelectedId, treeNodeType, selected, selectableTypes, autoExpand, itemSize, currentContainer, fetchNextPageOfChildren) {
198
+ return function treeWalker() {
199
+ var parentMeta, _loop_1, i, paginationNode, paginationTreeWalkerValue;
200
+ var _a;
201
+ return (0, tslib_1.__generator)(this, function (_b) {
202
+ switch (_b.label) {
203
+ case 0:
204
+ // Step [1]: Define the root node of our tree.
205
+ return [4 /*yield*/, (0, exports.getNodeData)({
206
+ node: rootNode,
207
+ nestingLevel: 0,
208
+ getNextPageOfChildren: rootNode.fetchNextPage,
209
+ setSelectedId: setSelectedId,
210
+ treeNodeType: treeNodeType,
211
+ selected: selected,
212
+ selectableTypes: selectableTypes,
213
+ autoExpand: autoExpand,
214
+ defaultHeight: itemSize(),
215
+ currentContainer: currentContainer,
216
+ })];
217
+ case 1:
218
+ // Step [1]: Define the root node of our tree.
219
+ _b.sent();
220
+ _b.label = 2;
221
+ case 2:
222
+ if (!true) return [3 /*break*/, 10];
223
+ return [4 /*yield*/];
224
+ case 3:
225
+ parentMeta = _b.sent();
226
+ if (!(!isPaginationNode(parentMeta.node) &&
227
+ (parentMeta.node.children || hasMoreChildren(parentMeta.node)))) return [3 /*break*/, 9];
228
+ _loop_1 = function (i) {
229
+ var childNode;
230
+ return (0, tslib_1.__generator)(this, function (_c) {
231
+ switch (_c.label) {
232
+ case 0:
233
+ childNode = parentMeta.node.children[i];
234
+ return [4 /*yield*/, (0, exports.getNodeData)({
235
+ node: childNode,
236
+ nestingLevel: parentMeta.nestingLevel + 1,
237
+ getNextPageOfChildren: function () { return fetchNextPageOfChildren(childNode); },
238
+ setSelectedId: setSelectedId,
239
+ treeNodeType: treeNodeType,
240
+ selected: selected,
241
+ selectableTypes: selectableTypes,
242
+ autoExpand: autoExpand,
243
+ defaultHeight: itemSize(),
244
+ currentContainer: currentContainer,
245
+ })];
246
+ case 1:
247
+ _c.sent();
248
+ return [2 /*return*/];
249
+ }
250
+ });
251
+ };
252
+ i = 0;
253
+ _b.label = 4;
254
+ case 4:
255
+ if (!(i < ((_a = parentMeta.node.children) !== null && _a !== void 0 ? _a : []).length)) return [3 /*break*/, 7];
256
+ return [5 /*yield**/, _loop_1(i)];
257
+ case 5:
258
+ _b.sent();
259
+ _b.label = 6;
260
+ case 6:
261
+ i++;
262
+ return [3 /*break*/, 4];
263
+ case 7:
264
+ if (!(parentMeta.node.children != null &&
265
+ hasMoreChildren(parentMeta.node))) return [3 /*break*/, 9];
266
+ paginationNode = {
267
+ __paginationNode: true,
268
+ };
269
+ paginationTreeWalkerValue = {
270
+ data: {
271
+ id: parentMeta.data.id + '-pagination',
272
+ node: paginationNode,
273
+ isOpenByDefault: false,
274
+ getNextPageOfChildren: parentMeta.data.getNextPageOfChildren,
275
+ isLeaf: true,
276
+ isSelected: false,
277
+ defaultHeight: itemSize(),
278
+ isDisabled: true,
279
+ nestingLevel: parentMeta.nestingLevel + 1,
280
+ setSelectedId: function () { },
281
+ treeNodeType: treeNodeType,
282
+ },
283
+ nestingLevel: parentMeta.nestingLevel + 1,
284
+ node: {
285
+ __paginationNode: true,
286
+ },
287
+ };
288
+ return [4 /*yield*/, paginationTreeWalkerValue];
289
+ case 8:
290
+ _b.sent();
291
+ _b.label = 9;
292
+ case 9: return [3 /*break*/, 2];
293
+ case 10: return [2 /*return*/];
294
+ }
295
+ });
296
+ };
297
+ }
298
+ exports.getTreeWalkerFunction = getTreeWalkerFunction;
299
+ /**
300
+ * Component that utilizes react-vtree to efficiently display a tree of entities. react-vtree utilizes react-window
301
+ * to only render visible nodes, which eliminates performance issues as seen in SWC-5978.
302
+ */
303
+ var VirtualizedTree = function (props) {
304
+ var rootNodeConfiguration = props.rootNodeConfiguration, setSelectedId = props.setSelectedId, treeNodeType = props.treeNodeType, selected = props.selected, currentContainer = props.currentContainer, selectableTypes = props.selectableTypes, visibleTypes = props.visibleTypes, autoExpand = props.autoExpand;
305
+ var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
306
+ var _a = (0, react_1.useState)(rootNodeConfiguration), rootNode = _a[0], setRootNode = _a[1];
307
+ (0, react_1.useEffect)(function () {
308
+ setRootNode(rootNodeConfiguration);
309
+ }, [rootNodeConfiguration, rootNodeConfiguration.children]);
310
+ // This function is used by VariableSizeTree to identify the size of each node in the tree.
311
+ var itemSize = (0, react_1.useCallback)(function (index) {
312
+ /**
313
+ * We must have a root node, but we don't always want to show it.
314
+ * In those cases, set the height of the root node to 0.
315
+ */
316
+ if (index === 0 && !rootNodeConfiguration.show) {
317
+ return 0;
318
+ }
319
+ /**
320
+ * The height of all other nodes in the tree varies depending on the tree node type.
321
+ */
322
+ return treeNodeType === EntityTreeNodeType.DUAL_PANE ? 28 : 60;
323
+ }, [treeNodeType, rootNodeConfiguration.show]);
324
+ /**
325
+ * Fetches the next page of children for a given node. After fetching the children, this method will make a deep clone of the
326
+ * full tree, including the new data, and updates the state of the component
327
+ */
328
+ var fetchNextPageOfChildren = (0, react_1.useCallback)(
329
+ // Because we update the root node with a copy at the end of this function, we can write to the node under update.
330
+ function (node) { return (0, tslib_1.__awaiter)(void 0, void 0, void 0, function () {
331
+ var children;
332
+ var _a;
333
+ return (0, tslib_1.__generator)(this, function (_b) {
334
+ switch (_b.label) {
335
+ case 0: return [4 /*yield*/, utils_1.SynapseClient.getEntityChildren({
336
+ parentId: node.id,
337
+ nextPageToken: node.childrenNextPageToken,
338
+ includeTypes: visibleTypes,
339
+ }, accessToken)
340
+ // Update the node data -- add the children and store the nextPageToken
341
+ ];
342
+ case 1:
343
+ children = _b.sent();
344
+ // Update the node data -- add the children and store the nextPageToken
345
+ if (node.children) {
346
+ (_a = node.children).push.apply(_a, children.page);
347
+ }
348
+ else {
349
+ node.children = children.page;
350
+ }
351
+ node.childrenNextPageToken = children.nextPageToken;
352
+ // cloneDeep is required to re-render the tree with the new children
353
+ setRootNode((0, lodash_1.cloneDeep)(rootNode));
354
+ return [2 /*return*/];
355
+ }
356
+ });
357
+ }); }, [rootNode, accessToken, visibleTypes]);
358
+ /**
359
+ * treeWalker is a generator function used by react-vtree to generate the tree structure. The tree is re-built when the function is updated,
360
+ * so the dependencies specified in useCallback are important.
361
+ */
362
+ var memoizedTreeWalker = (0, react_1.useCallback)(getTreeWalkerFunction(rootNode, setSelectedId, treeNodeType, selected, selectableTypes, autoExpand, itemSize, currentContainer, fetchNextPageOfChildren), [
363
+ rootNode,
364
+ setSelectedId,
365
+ treeNodeType,
366
+ selected,
367
+ selectableTypes,
368
+ autoExpand,
369
+ currentContainer,
370
+ fetchNextPageOfChildren,
371
+ itemSize,
372
+ ]);
373
+ return (react_1.default.createElement(react_virtualized_auto_sizer_1.default, { disableWidth: true }, function (_a) {
374
+ var height = _a.height;
375
+ return (react_1.default.createElement(react_vtree_1.VariableSizeTree, { treeWalker: memoizedTreeWalker, itemSize: itemSize, height: height, async: true, width: "100%" }, Node));
376
+ }));
377
+ };
378
+ exports.VirtualizedTree = VirtualizedTree;
379
+ //# sourceMappingURL=VirtualizedTree.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualizedTree.js","sourceRoot":"","sources":["../../../../src/lib/containers/entity_finder/tree/VirtualizedTree.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,9 @@
1
1
  import * as React from 'react';
2
- import { QueryWrapperChildProps } from '../../../containers/QueryWrapper';
3
- export declare type FacetPlotsCardOwnProps = {
2
+ export declare type FacetPlotsCardProps = {
4
3
  title?: string;
5
4
  description?: string;
6
- rgbIndex?: number;
7
5
  facetsToPlot?: string[];
8
6
  detailsPagePath?: string;
9
7
  };
10
- declare type FacetPlotsCardProps = FacetPlotsCardOwnProps & QueryWrapperChildProps;
11
8
  declare const FacetPlotsCard: React.FunctionComponent<FacetPlotsCardProps>;
12
9
  export default FacetPlotsCard;
@@ -12,6 +12,8 @@ var LoadingScreen_1 = (0, tslib_1.__importDefault)(require("../../LoadingScreen"
12
12
  var FacetNavPanel_1 = require("../../widgets/facet-nav/FacetNavPanel");
13
13
  var FacetNav_1 = require("../../widgets/facet-nav/FacetNav");
14
14
  var SynapseContext_1 = require("../../../utils/SynapseContext");
15
+ var QueryWrapper_1 = require("../../QueryWrapper");
16
+ var QueryVisualizationWrapper_1 = require("../../QueryVisualizationWrapper");
15
17
  var Plot = (0, factory_1.default)(plotly_js_basic_dist_1.default);
16
18
  var layout = {
17
19
  showlegend: false,
@@ -27,11 +29,13 @@ var layout = {
27
29
  },
28
30
  };
29
31
  var FacetPlotsCard = function (_a) {
30
- var title = _a.title, description = _a.description, isLoadingNewData = _a.isLoadingNewData, rgbIndex = _a.rgbIndex, facetsToPlot = _a.facetsToPlot, detailsPagePath = _a.detailsPagePath, data = _a.data, isLoading = _a.isLoading, facetAliases = _a.facetAliases;
32
+ var title = _a.title, description = _a.description, facetsToPlot = _a.facetsToPlot, detailsPagePath = _a.detailsPagePath;
31
33
  var accessToken = (0, SynapseContext_1.useSynapseContext)().accessToken;
32
- var _b = (0, react_1.useState)([]), facetPlotDataArray = _b[0], setFacetPlotDataArray = _b[1];
33
- var _c = (0, react_1.useState)([]), facetDataArray = _c[0], setFacetDataArray = _c[1];
34
- var _d = (0, react_1.useState)(''), selectedFacetValue = _d[0], setSelectedFacetValue = _d[1];
34
+ var _b = (0, QueryWrapper_1.useQueryContext)(), data = _b.data, isLoadingNewBundle = _b.isLoadingNewBundle;
35
+ var _c = (0, QueryVisualizationWrapper_1.useQueryVisualizationContext)(), facetAliases = _c.facetAliases, rgbIndex = _c.rgbIndex;
36
+ var _d = (0, react_1.useState)([]), facetPlotDataArray = _d[0], setFacetPlotDataArray = _d[1];
37
+ var _e = (0, react_1.useState)([]), facetDataArray = _e[0], setFacetDataArray = _e[1];
38
+ var _f = (0, react_1.useState)(''), selectedFacetValue = _f[0], setSelectedFacetValue = _f[1];
35
39
  var colorPalette = (0, ColorGradient_1.getColorPalette)(rgbIndex !== null && rgbIndex !== void 0 ? rgbIndex : 0, 2).colorPalette;
36
40
  (0, react_1.useEffect)(function () {
37
41
  var _a;
@@ -59,8 +63,7 @@ var FacetPlotsCard = function (_a) {
59
63
  }); })).then(function (newPlotData) { return setFacetPlotDataArray(newPlotData); });
60
64
  // If we are showing a facet selection based card, then set the selectedFacetValue. For example, facet column "study" with value "ROSMAP"
61
65
  var selectedFacet = (_a = data === null || data === void 0 ? void 0 : data.facets) === null || _a === void 0 ? void 0 : _a.map(function (item) {
62
- var facetValues = item
63
- .facetValues;
66
+ var facetValues = item.facetValues;
64
67
  if (facetValues) {
65
68
  var filteredFacetValues = facetValues.filter(function (facetValue) {
66
69
  return facetValue.isSelected;
@@ -78,7 +81,7 @@ var FacetPlotsCard = function (_a) {
78
81
  }
79
82
  }
80
83
  }, [facetsToPlot, data]);
81
- if (isLoadingNewData ||
84
+ if (isLoadingNewBundle ||
82
85
  !facetPlotDataArray ||
83
86
  !facetDataArray ||
84
87
  facetDataArray.length === 0) {
@@ -101,7 +104,7 @@ var FacetPlotsCard = function (_a) {
101
104
  React.createElement("span", { className: "FacetPlotsCard__title" }, cardTitle),
102
105
  description && (React.createElement("span", { className: "FacetPlotsCard__description" }, description)),
103
106
  detailsPageLink,
104
- isLoading && (React.createElement("span", { style: { marginLeft: '2px' }, className: 'spinner' }))),
107
+ isLoadingNewBundle && (React.createElement("span", { style: { marginLeft: '2px' }, className: 'spinner' }))),
105
108
  React.createElement("div", { className: "FacetPlotsCard__body" }, facetPlotDataArray.map(function (plotData, index) {
106
109
  return (React.createElement("div", { key: index },
107
110
  index !== 0 && React.createElement("hr", null),
@@ -1 +1 @@
1
- {"version":3,"file":"FacetPlotsCard.js","sourceRoot":"","sources":["../../../../src/lib/containers/home_page/featured-data/FacetPlotsCard.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FacetPlotsCard.js","sourceRoot":"","sources":["../../../../src/lib/containers/home_page/featured-data/FacetPlotsCard.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export declare type QueryPerFacetPlotsCardProps = {
5
5
  description?: string;
6
6
  rgbIndex?: number;
7
7
  facetsToPlot?: string[];
8
- facetAliases?: {};
8
+ facetAliases?: Record<string, string>;
9
9
  selectFacetColumnName: string;
10
10
  selectFacetColumnValue: string;
11
11
  sql?: string;
@@ -3,12 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getQueryRequest = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var React = (0, tslib_1.__importStar)(require("react"));
6
- var QueryWrapper_1 = (0, tslib_1.__importDefault)(require("../../QueryWrapper"));
7
- var sqlFunctions_1 = require("../../../utils/functions/sqlFunctions");
8
6
  var utils_1 = require("../../../utils");
9
- var ErrorBanner_1 = require("../../ErrorBanner");
7
+ var sqlFunctions_1 = require("../../../utils/functions/sqlFunctions");
8
+ var QueryVisualizationWrapper_1 = require("../../QueryVisualizationWrapper");
9
+ var QueryWrapper_1 = require("../../QueryWrapper");
10
+ var QueryWrapperErrorBanner_1 = require("../../QueryWrapperErrorBanner");
10
11
  var FacetPlotsCard_1 = (0, tslib_1.__importDefault)(require("./FacetPlotsCard"));
11
- var SynapseContext_1 = require("../../../utils/SynapseContext");
12
12
  function getQueryRequest(sql, selectFacetColumnName, selectFacetColumnValue) {
13
13
  var entityId = (0, sqlFunctions_1.parseEntityIdFromSqlStatement)(sql);
14
14
  return {
@@ -37,11 +37,10 @@ var QueryPerFacetPlotsCard = function (props) {
37
37
  var title = props.title, description = props.description, sql = props.sql, facetsToPlot = props.facetsToPlot, rgbIndex = props.rgbIndex, selectFacetColumnName = props.selectFacetColumnName, selectFacetColumnValue = props.selectFacetColumnValue, detailsPagePath = props.detailsPagePath, rest = (0, tslib_1.__rest)(props, ["title", "description", "sql", "facetsToPlot", "rgbIndex", "selectFacetColumnName", "selectFacetColumnValue", "detailsPagePath"]);
38
38
  var initQueryRequest = getQueryRequest(sql, selectFacetColumnName, selectFacetColumnValue);
39
39
  return (React.createElement("div", { className: "QueryPerFacetPlotsCard" },
40
- React.createElement(SynapseContext_1.SynapseContextConsumer, null, function (context) { return (React.createElement(QueryWrapper_1.default, (0, tslib_1.__assign)({}, rest, { token: context === null || context === void 0 ? void 0 : context.accessToken, initQueryRequest: initQueryRequest }), function (queryWrapperChildProps) {
41
- return (React.createElement(React.Fragment, null,
42
- React.createElement(ErrorBanner_1.ErrorBanner, (0, tslib_1.__assign)({}, queryWrapperChildProps)),
43
- React.createElement(FacetPlotsCard_1.default, (0, tslib_1.__assign)({}, queryWrapperChildProps, { title: title, description: description, facetsToPlot: facetsToPlot, rgbIndex: rgbIndex, detailsPagePath: detailsPagePath }))));
44
- })); })));
40
+ React.createElement(QueryWrapper_1.QueryWrapper, (0, tslib_1.__assign)({}, rest, { initQueryRequest: initQueryRequest }),
41
+ React.createElement(QueryVisualizationWrapper_1.QueryVisualizationWrapper, (0, tslib_1.__assign)({ rgbIndex: rgbIndex }, rest),
42
+ React.createElement(QueryWrapperErrorBanner_1.QueryWrapperErrorBanner, null),
43
+ React.createElement(FacetPlotsCard_1.default, { title: title, description: description, facetsToPlot: facetsToPlot, detailsPagePath: detailsPagePath })))));
45
44
  };
46
45
  exports.default = QueryPerFacetPlotsCard;
47
46
  //# sourceMappingURL=QueryPerFacetPlotsCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryPerFacetPlotsCard.js","sourceRoot":"","sources":["../../../../src/lib/containers/home_page/featured-data/QueryPerFacetPlotsCard.tsx"],"names":[],"mappings":";;;;AAAA,wDAA8B;AAC9B,iFAA6C;AAC7C,sEAAqF;AACrF,wCAAiD;AAEjD,iDAA+C;AAC/C,iFAA6C;AAC7C,gEAAsE;AAatE,SAAgB,eAAe,CAC7B,GAAW,EACX,qBAA6B,EAC7B,sBAA8B;IAE9B,IAAM,QAAQ,GAAG,IAAA,4CAA6B,EAAC,GAAG,CAAC,CAAA;IACnD,OAAO;QACL,QAAQ,UAAA;QACR,YAAY,EAAE,yDAAyD;QACvE,QAAQ,EACN,wBAAgB,CAAC,+BAA+B;YAChD,wBAAgB,CAAC,wBAAwB;YACzC,wBAAgB,CAAC,gCAAgC;YACjD,wBAAgB,CAAC,yBAAyB;QAC5C,KAAK,EAAE;YACL,GAAG,KAAA;YACH,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,EAAE;YACT,cAAc,EAAE;gBACd;oBACE,UAAU,EAAE,qBAAqB;oBACjC,WAAW,EAAE,CAAC,sBAAsB,CAAC;oBACrC,YAAY,EACV,+DAA+D;iBAClE;aACF;SACF;KACF,CAAA;AACH,CAAC;AA5BD,0CA4BC;AACD,IAAM,sBAAsB,GAC1B,UAAA,KAAK;IAED,IAAA,KAAK,GASH,KAAK,MATF,EACL,WAAW,GAQT,KAAK,YARI,EACX,GAAG,GAOD,KAAK,IAPJ,EACH,YAAY,GAMV,KAAK,aANK,EACZ,QAAQ,GAKN,KAAK,SALC,EACR,qBAAqB,GAInB,KAAK,sBAJc,EACrB,sBAAsB,GAGpB,KAAK,uBAHe,EACtB,eAAe,GAEb,KAAK,gBAFQ,EACZ,IAAI,uBACL,KAAK,EAVH,iIAUL,CADQ,CACA;IACT,IAAM,gBAAgB,GAAuB,eAAe,CAC1D,GAAI,EACJ,qBAAqB,EACrB,sBAAsB,CACvB,CAAA;IACD,OAAO,CACL,6BAAK,SAAS,EAAC,wBAAwB;QACrC,oBAAC,uCAAsB,QACpB,UAAA,OAAO,IAAI,OAAA,CACV,oBAAC,sBAAY,4BACP,IAAI,IACR,KAAK,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,EAC3B,gBAAgB,EAAE,gBAAgB,KAEjC,UAAA,sBAAsB;YACrB,OAAO,CACL;gBACE,oBAAC,yBAAW,4BAAK,sBAAsB,EAAI;gBAC3C,oBAAC,wBAAc,4BACT,sBAAsB,IAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,IAChC,CACD,CACJ,CAAA;QACH,CAAC,CACY,CAChB,EAtBW,CAsBX,CACsB,CACrB,CACP,CAAA;AACH,CAAC,CAAA;AAEH,kBAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"QueryPerFacetPlotsCard.js","sourceRoot":"","sources":["../../../../src/lib/containers/home_page/featured-data/QueryPerFacetPlotsCard.tsx"],"names":[],"mappings":";;;;AAAA,wDAA8B;AAC9B,wCAAiD;AACjD,sEAAqF;AAErF,6EAA2E;AAC3E,mDAAiD;AACjD,yEAAuE;AACvE,iFAA6C;AAa7C,SAAgB,eAAe,CAC7B,GAAW,EACX,qBAA6B,EAC7B,sBAA8B;IAE9B,IAAM,QAAQ,GAAG,IAAA,4CAA6B,EAAC,GAAG,CAAC,CAAA;IACnD,OAAO;QACL,QAAQ,UAAA;QACR,YAAY,EAAE,yDAAyD;QACvE,QAAQ,EACN,wBAAgB,CAAC,+BAA+B;YAChD,wBAAgB,CAAC,wBAAwB;YACzC,wBAAgB,CAAC,gCAAgC;YACjD,wBAAgB,CAAC,yBAAyB;QAC5C,KAAK,EAAE;YACL,GAAG,KAAA;YACH,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,EAAE;YACT,cAAc,EAAE;gBACd;oBACE,UAAU,EAAE,qBAAqB;oBACjC,WAAW,EAAE,CAAC,sBAAsB,CAAC;oBACrC,YAAY,EACV,+DAA+D;iBAClE;aACF;SACF;KACF,CAAA;AACH,CAAC;AA5BD,0CA4BC;AACD,IAAM,sBAAsB,GAC1B,UAAA,KAAK;IAED,IAAA,KAAK,GASH,KAAK,MATF,EACL,WAAW,GAQT,KAAK,YARI,EACX,GAAG,GAOD,KAAK,IAPJ,EACH,YAAY,GAMV,KAAK,aANK,EACZ,QAAQ,GAKN,KAAK,SALC,EACR,qBAAqB,GAInB,KAAK,sBAJc,EACrB,sBAAsB,GAGpB,KAAK,uBAHe,EACtB,eAAe,GAEb,KAAK,gBAFQ,EACZ,IAAI,uBACL,KAAK,EAVH,iIAUL,CADQ,CACA;IACT,IAAM,gBAAgB,GAAuB,eAAe,CAC1D,GAAI,EACJ,qBAAqB,EACrB,sBAAsB,CACvB,CAAA;IACD,OAAO,CACL,6BAAK,SAAS,EAAC,wBAAwB;QACrC,oBAAC,2BAAY,4BAAK,IAAI,IAAE,gBAAgB,EAAE,gBAAgB;YACxD,oBAAC,qDAAyB,0BAAC,QAAQ,EAAE,QAAQ,IAAM,IAAI;gBACrD,oBAAC,iDAAuB,OAAG;gBAC3B,oBAAC,wBAAc,IACb,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,GAChC,CACwB,CACf,CACX,CACP,CAAA;AACH,CAAC,CAAA;AAEH,kBAAe,sBAAsB,CAAA"}