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.
- package/dist/containers/CardContainer.d.ts +0 -8
- package/dist/containers/CardContainer.js +13 -23
- package/dist/containers/CardContainer.js.map +1 -1
- package/dist/containers/CardContainerLogic.d.ts +3 -76
- package/dist/containers/CardContainerLogic.js +29 -150
- package/dist/containers/CardContainerLogic.js.map +1 -1
- package/dist/containers/ChangePassword.d.ts +3 -0
- package/dist/containers/ChangePassword.js +88 -0
- package/dist/containers/ChangePassword.js.map +1 -0
- package/dist/containers/FileUpload.d.ts +1 -1
- package/dist/containers/FileUpload.js.map +1 -1
- package/dist/containers/FluidModal.d.ts +2 -0
- package/dist/containers/FluidModal.js +6 -1
- package/dist/containers/FluidModal.js.map +1 -1
- package/dist/containers/FullTextSearch.d.ts +1 -5
- package/dist/containers/FullTextSearch.js +9 -9
- package/dist/containers/FullTextSearch.js.map +1 -1
- package/dist/containers/LoadingScreen.d.ts +7 -1
- package/dist/containers/LoadingScreen.js +15 -4
- package/dist/containers/LoadingScreen.js.map +1 -1
- package/dist/containers/QueryCount.js.map +1 -1
- package/dist/containers/QueryVisualizationWrapper.d.ts +48 -0
- package/dist/containers/QueryVisualizationWrapper.js +81 -0
- package/dist/containers/QueryVisualizationWrapper.js.map +1 -0
- package/dist/containers/QueryWrapper.d.ts +55 -145
- package/dist/containers/QueryWrapper.js +206 -263
- package/dist/containers/QueryWrapper.js.map +1 -1
- package/dist/containers/QueryWrapperErrorBanner.d.ts +5 -0
- package/dist/containers/QueryWrapperErrorBanner.js +16 -0
- package/dist/containers/QueryWrapperErrorBanner.js.map +1 -0
- package/dist/containers/SearchV2.d.ts +6 -2
- package/dist/containers/SearchV2.js +11 -11
- package/dist/containers/SearchV2.js.map +1 -1
- package/dist/containers/SqlEditor.d.ts +1 -5
- package/dist/containers/SqlEditor.js +8 -7
- package/dist/containers/SqlEditor.js.map +1 -1
- package/dist/containers/ToastMessage.d.ts +1 -1
- package/dist/containers/TotalQueryResults.d.ts +3 -6
- package/dist/containers/TotalQueryResults.js +42 -58
- package/dist/containers/TotalQueryResults.js.map +1 -1
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.d.ts +1 -7
- package/dist/containers/access_requirement_list/managedACTAccess/RequestDataAccessStep2.js.map +1 -1
- package/dist/containers/download_list/DownloadConfirmation.d.ts +0 -5
- package/dist/containers/download_list/DownloadConfirmation.js +16 -18
- package/dist/containers/download_list/DownloadConfirmation.js.map +1 -1
- package/dist/containers/entity/annotations/AdditionalPropertiesSchemaField.d.ts +1 -1
- package/dist/containers/entity_finder/EntityFinder.d.ts +1 -1
- package/dist/containers/entity_finder/EntityFinder.js +4 -4
- package/dist/containers/entity_finder/EntityFinder.js.map +1 -1
- package/dist/containers/entity_finder/EntityFinderModal.d.ts +2 -0
- package/dist/containers/entity_finder/EntityFinderModal.js +1 -1
- package/dist/containers/entity_finder/EntityFinderModal.js.map +1 -1
- package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js +6 -4
- package/dist/containers/entity_finder/details/configurations/EntityChildrenDetails.js.map +1 -1
- package/dist/containers/entity_finder/details/view/DetailsView.d.ts +5 -1
- package/dist/containers/entity_finder/details/view/DetailsView.js +9 -2
- package/dist/containers/entity_finder/details/view/DetailsView.js.map +1 -1
- package/dist/containers/entity_finder/tree/{TreeView.d.ts → EntityTree.d.ts} +4 -4
- package/dist/containers/entity_finder/tree/{TreeView.js → EntityTree.js} +43 -30
- package/dist/containers/entity_finder/tree/EntityTree.js.map +1 -0
- package/dist/containers/entity_finder/tree/VirtualizedTree.d.ts +89 -0
- package/dist/containers/entity_finder/tree/VirtualizedTree.js +379 -0
- package/dist/containers/entity_finder/tree/VirtualizedTree.js.map +1 -0
- package/dist/containers/home_page/featured-data/FacetPlotsCard.d.ts +1 -4
- package/dist/containers/home_page/featured-data/FacetPlotsCard.js +11 -8
- package/dist/containers/home_page/featured-data/FacetPlotsCard.js.map +1 -1
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.d.ts +1 -1
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js +8 -9
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.js.map +1 -1
- package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.d.ts +1 -1
- package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js +10 -11
- package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/containers/query_wrapper_plot_nav/FilterAndView.d.ts +2 -4
- package/dist/containers/query_wrapper_plot_nav/FilterAndView.js +12 -5
- package/dist/containers/query_wrapper_plot_nav/FilterAndView.js.map +1 -1
- package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.d.ts +1 -2
- package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.js +9 -10
- package/dist/containers/query_wrapper_plot_nav/QueryFilterToggleButton.js.map +1 -1
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.d.ts +4 -4
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js +53 -35
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js +1 -1
- package/dist/containers/synapse_form_wrapper/SynapseFormWrapper.js.map +1 -1
- package/dist/containers/table/StandaloneQueryWrapper.d.ts +4 -6
- package/dist/containers/table/StandaloneQueryWrapper.js +29 -19
- package/dist/containers/table/StandaloneQueryWrapper.js.map +1 -1
- package/dist/containers/table/SynapseTable.d.ts +12 -13
- package/dist/containers/table/SynapseTable.js +100 -136
- package/dist/containers/table/SynapseTable.js.map +1 -1
- package/dist/containers/table/TopLevelControls.d.ts +1 -4
- package/dist/containers/table/TopLevelControls.js +27 -43
- package/dist/containers/table/TopLevelControls.js.map +1 -1
- package/dist/containers/table/datasets/DatasetItemsEditor.js +5 -2
- package/dist/containers/table/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/containers/table/table-top/ColumnSelection.d.ts +1 -1
- package/dist/containers/table/table-top/ColumnSelection.js +3 -5
- package/dist/containers/table/table-top/ColumnSelection.js.map +1 -1
- package/dist/containers/table/table-top/DownloadOptions.d.ts +0 -2
- package/dist/containers/table/table-top/DownloadOptions.js +7 -6
- package/dist/containers/table/table-top/DownloadOptions.js.map +1 -1
- package/dist/containers/widgets/facet-nav/FacetNav.d.ts +1 -3
- package/dist/containers/widgets/facet-nav/FacetNav.js +14 -10
- package/dist/containers/widgets/facet-nav/FacetNav.js.map +1 -1
- package/dist/containers/widgets/facet-nav/FacetNavPanel.d.ts +5 -8
- package/dist/containers/widgets/facet-nav/FacetNavPanel.js +15 -12
- package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/containers/widgets/query-filter/EnumFacetFilter.d.ts +3 -3
- package/dist/containers/widgets/query-filter/EnumFacetFilter.js +2 -2
- package/dist/containers/widgets/query-filter/EnumFacetFilter.js.map +1 -1
- package/dist/containers/widgets/query-filter/QueryFilter.d.ts +7 -12
- package/dist/containers/widgets/query-filter/QueryFilter.js +12 -9
- package/dist/containers/widgets/query-filter/QueryFilter.js.map +1 -1
- package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +4 -4
- package/dist/containers/widgets/query-filter/RangeFacetFilter.js +4 -4
- package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/index.d.ts +6 -9
- package/dist/index.js +6 -6
- package/dist/index.js.map +1 -1
- package/dist/style/abstracts/_variables.scss +14 -0
- package/dist/style/components/_bar-loader.scss +11 -2
- package/dist/style/components/_spinner.scss +2 -2
- package/dist/style/components/entity_finder/_tree-node-browse.scss +5 -10
- package/dist/style/components/entity_finder/_tree-node-select.scss +17 -23
- package/dist/style/components/entity_finder/_tree-view.scss +17 -20
- package/dist/style/main.css +42 -27
- package/dist/umd/synapse-react-client.development.css +67 -27
- package/dist/umd/synapse-react-client.development.css.map +3 -3
- package/dist/umd/synapse-react-client.development.js +9865 -3080
- package/dist/umd/synapse-react-client.development.js.map +3 -3
- package/dist/umd/synapse-react-client.production.min.css +1 -1
- package/dist/umd/synapse-react-client.production.min.js +106 -79
- package/dist/umd.index.d.ts +2 -1
- package/dist/umd.index.js +2 -0
- package/dist/umd.index.js.map +1 -1
- package/dist/utils/APIConstants.d.ts +1 -0
- package/dist/utils/APIConstants.js +3 -2
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +62 -20
- package/dist/utils/SynapseClient.js +308 -211
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/SynapseConstants.d.ts +1 -0
- package/dist/utils/SynapseConstants.js +3 -2
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.d.ts +13 -1
- package/dist/utils/functions/EntityTypeUtils.js +25 -1
- package/dist/utils/functions/EntityTypeUtils.js.map +1 -1
- package/dist/utils/functions/queryUtils.d.ts +2 -2
- package/dist/utils/functions/queryUtils.js +22 -5
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/sqlFunctions.js +1 -1
- package/dist/utils/functions/sqlFunctions.js.map +1 -1
- package/dist/utils/functions/unCamelCase.d.ts +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/useGetEntityChildren.js +3 -3
- package/dist/utils/hooks/SynapseAPI/useGetEntityChildren.js.map +1 -1
- package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.d.ts +4 -3
- package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.js +67 -1
- package/dist/utils/hooks/SynapseAPI/useGetQueryResultBundle.js.map +1 -1
- package/dist/utils/synapseTypes/ChangePasswordRequests.d.ts +25 -0
- package/dist/utils/synapseTypes/{DownloadListV2/DownloadListQueryResponse.js → ChangePasswordRequests.js} +1 -1
- package/dist/utils/synapseTypes/ChangePasswordRequests.js.map +1 -0
- package/dist/utils/synapseTypes/FileUploadComplete.d.ts +6 -0
- package/dist/utils/synapseTypes/Table/AsynchronousJobStatus.d.ts +5 -4
- package/dist/utils/synapseTypes/Table/EntityView.d.ts +8 -0
- package/dist/utils/synapseTypes/Table/EntityView.js +9 -0
- package/dist/utils/synapseTypes/Table/EntityView.js.map +1 -1
- package/dist/utils/synapseTypes/Table/FacetColumnRequest.d.ts +1 -1
- package/dist/utils/synapseTypes/Table/FacetColumnResult.d.ts +10 -10
- package/dist/utils/synapseTypes/Table/QueryResultBundle.d.ts +1 -0
- package/dist/utils/synapseTypes/VerificationSubmission.d.ts +22 -5
- package/dist/utils/synapseTypes/VerificationSubmission.js +8 -0
- package/dist/utils/synapseTypes/VerificationSubmission.js.map +1 -1
- package/dist/utils/types/Writable.d.ts +8 -0
- package/dist/utils/{synapseTypes/DownloadListV2/DownloadListManifestResponse.js → types/Writable.js} +1 -1
- package/dist/utils/types/Writable.js.map +1 -0
- package/dist/utils/typography/Typography.styles.d.ts +1 -1
- package/package.json +47 -37
- package/dist/containers/Facets.d.ts +0 -43
- package/dist/containers/Facets.js +0 -199
- package/dist/containers/Facets.js.map +0 -1
- package/dist/containers/StackedBarChart.d.ts +0 -63
- package/dist/containers/StackedBarChart.js +0 -229
- package/dist/containers/StackedBarChart.js.map +0 -1
- package/dist/containers/entity_finder/tree/TreeNode.d.ts +0 -25
- package/dist/containers/entity_finder/tree/TreeNode.js +0 -89
- package/dist/containers/entity_finder/tree/TreeNode.js.map +0 -1
- package/dist/containers/entity_finder/tree/TreeView.js.map +0 -1
- package/dist/utils/functions/facetUtils.d.ts +0 -44
- package/dist/utils/functions/facetUtils.js +0 -84
- package/dist/utils/functions/facetUtils.js.map +0 -1
- package/dist/utils/synapseTypes/DownloadListV2/DownloadListManifestResponse.d.ts +0 -4
- package/dist/utils/synapseTypes/DownloadListV2/DownloadListManifestResponse.js.map +0 -1
- package/dist/utils/synapseTypes/DownloadListV2/DownloadListQueryResponse.d.ts +0 -5
- 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
|
-
|
|
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,
|
|
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,
|
|
33
|
-
var _c = (0,
|
|
34
|
-
var _d = (0, react_1.useState)(
|
|
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 (
|
|
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
|
-
|
|
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":";;;AAAA,wDAA8B;AAC9B,2FAAyC;AAEzC,iFAA2D;AAC3D,6CAAqC;
|
|
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
|
|
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(
|
|
41
|
-
|
|
42
|
-
React.createElement(
|
|
43
|
-
React.createElement(FacetPlotsCard_1.default,
|
|
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,
|
|
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"}
|