synapse-react-client 2.1.23 → 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/FullTextSearch.d.ts +1 -5
- package/dist/containers/FullTextSearch.js +9 -9
- package/dist/containers/FullTextSearch.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/TotalQueryResults.d.ts +3 -6
- package/dist/containers/TotalQueryResults.js +42 -58
- package/dist/containers/TotalQueryResults.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/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/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 +3 -6
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/umd/synapse-react-client.development.js +2700 -2533
- package/dist/umd/synapse-react-client.development.js.map +3 -3
- package/dist/umd/synapse-react-client.production.min.js +89 -89
- package/dist/utils/APIConstants.js +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +47 -20
- package/dist/utils/SynapseClient.js +275 -209
- 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/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/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/package.json +42 -37
- 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/utils/functions/facetUtils.d.ts +0 -20
- package/dist/utils/functions/facetUtils.js +0 -37
- 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 +0 -3
- 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 +0 -3
- package/dist/utils/synapseTypes/DownloadListV2/DownloadListQueryResponse.js.map +0 -1
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { QueryBundleRequest, QueryResultBundle } from '../utils/synapseTypes/';
|
|
3
2
|
import { CardConfiguration } from './CardContainerLogic';
|
|
4
3
|
export declare type CardContainerProps = {
|
|
5
|
-
data?: QueryResultBundle;
|
|
6
4
|
isHeader?: boolean;
|
|
7
5
|
isAlignToLeftNav?: boolean;
|
|
8
6
|
title?: string;
|
|
9
|
-
executeQueryRequest?: (param: QueryBundleRequest) => void;
|
|
10
7
|
facetAliases?: Record<string, string>;
|
|
11
|
-
getLastQueryRequest?: () => QueryBundleRequest;
|
|
12
|
-
getNextPageOfData?: (queryRequest: QueryBundleRequest) => void;
|
|
13
8
|
isLoading?: boolean;
|
|
14
|
-
facet?: string;
|
|
15
9
|
unitDescription?: string;
|
|
16
|
-
hasMoreData?: boolean;
|
|
17
|
-
showBarChart?: boolean;
|
|
18
10
|
} & CardConfiguration;
|
|
19
11
|
export declare const CardContainer: (props: CardContainerProps) => JSX.Element;
|
|
20
12
|
export default CardContainer;
|
|
@@ -8,6 +8,7 @@ var useGetInfoFromIds_1 = (0, tslib_1.__importDefault)(require("../utils/hooks/u
|
|
|
8
8
|
var SynapseConstants_1 = require("../utils/SynapseConstants");
|
|
9
9
|
var GenericCard_1 = (0, tslib_1.__importDefault)(require("./GenericCard"));
|
|
10
10
|
var LoadingScreen_1 = (0, tslib_1.__importDefault)(require("./LoadingScreen"));
|
|
11
|
+
var QueryWrapper_1 = require("./QueryWrapper");
|
|
11
12
|
var row_renderers_1 = require("./row_renderers");
|
|
12
13
|
var ObservationCard_1 = require("./row_renderers/ObservationCard");
|
|
13
14
|
var NoContentAvailable_1 = (0, tslib_1.__importDefault)(require("./table/NoContentAvailable"));
|
|
@@ -15,21 +16,9 @@ var SearchResultsNotFound_1 = (0, tslib_1.__importDefault)(require("./table/Sear
|
|
|
15
16
|
var TotalQueryResults_1 = (0, tslib_1.__importDefault)(require("./TotalQueryResults"));
|
|
16
17
|
var UserCardList_1 = (0, tslib_1.__importDefault)(require("./UserCardList"));
|
|
17
18
|
var CardContainer = function (props) {
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
|
|
21
|
-
* Handle a click on next or previous
|
|
22
|
-
*
|
|
23
|
-
* @memberof SynapseTable
|
|
24
|
-
*/
|
|
25
|
-
var handleViewMore = function () {
|
|
26
|
-
var _a;
|
|
27
|
-
var offset = queryRequest.query.offset;
|
|
28
|
-
// paginate forward
|
|
29
|
-
offset += (_a = queryRequest.query.limit) !== null && _a !== void 0 ? _a : SynapseConstants_1.DEFAULT_PAGE_SIZE;
|
|
30
|
-
queryRequest.query.offset = offset;
|
|
31
|
-
props.getNextPageOfData(queryRequest);
|
|
32
|
-
};
|
|
19
|
+
var _a = props.isHeader, isHeader = _a === void 0 ? false : _a, unitDescription = props.unitDescription, type = props.type, isLoading = props.isLoading, _b = props.secondaryLabelLimit, secondaryLabelLimit = _b === void 0 ? 3 : _b, title = props.title, rest = (0, tslib_1.__rest)(props, ["isHeader", "unitDescription", "type", "isLoading", "secondaryLabelLimit", "title"]);
|
|
20
|
+
var _c = (0, QueryWrapper_1.useQueryContext)(), data = _c.data, getLastQueryRequest = _c.getLastQueryRequest, appendNextPageToResults = _c.appendNextPageToResults, hasNextPage = _c.hasNextPage;
|
|
21
|
+
var queryRequest = getLastQueryRequest();
|
|
33
22
|
var renderCard = function (props, type) {
|
|
34
23
|
switch (type) {
|
|
35
24
|
case SynapseConstants_1.DATASET:
|
|
@@ -53,9 +42,9 @@ var CardContainer = function (props) {
|
|
|
53
42
|
});
|
|
54
43
|
// the cards only show the loading screen on initial load, this occurs when data is undefined
|
|
55
44
|
if (!data) {
|
|
56
|
-
return react_1.default.createElement("div", null,
|
|
45
|
+
return (react_1.default.createElement("div", null,
|
|
57
46
|
isLoading && type === SynapseConstants_1.OBSERVATION_CARD && react_1.default.createElement(ObservationCard_1.LoadingObservationCard, null),
|
|
58
|
-
isLoading && type !== SynapseConstants_1.OBSERVATION_CARD && LoadingScreen_1.default);
|
|
47
|
+
isLoading && type !== SynapseConstants_1.OBSERVATION_CARD && LoadingScreen_1.default));
|
|
59
48
|
}
|
|
60
49
|
else if (data && data.queryResult.queryResults.rows.length === 0) {
|
|
61
50
|
// data was retrieved from the backend but there is none to show.
|
|
@@ -63,14 +52,16 @@ var CardContainer = function (props) {
|
|
|
63
52
|
return react_1.default.createElement(SearchResultsNotFound_1.default, null);
|
|
64
53
|
}
|
|
65
54
|
// else show "no results" UI (see PORTALS-1497)
|
|
66
|
-
return
|
|
55
|
+
return react_1.default.createElement(NoContentAvailable_1.default, null);
|
|
67
56
|
}
|
|
68
57
|
var schema = {};
|
|
69
58
|
data.queryResult.queryResults.headers.forEach(function (element, index) {
|
|
70
59
|
schema[element.name] = index;
|
|
71
60
|
});
|
|
72
|
-
var showViewMoreButton =
|
|
73
|
-
react_1.default.createElement(react_bootstrap_1.Button, { variant: "secondary", className: "pill-xl", onClick:
|
|
61
|
+
var showViewMoreButton = hasNextPage && (react_1.default.createElement("div", { className: "SRC-viewMore bootstrap-4-backport" },
|
|
62
|
+
react_1.default.createElement(react_bootstrap_1.Button, { variant: "secondary", className: "pill-xl", onClick: function () {
|
|
63
|
+
appendNextPageToResults();
|
|
64
|
+
} }, "View More")));
|
|
74
65
|
var cards;
|
|
75
66
|
if (type === SynapseConstants_1.MEDIUM_USER_CARD) {
|
|
76
67
|
// Hard coding ownerId as a column name containing the user profile ownerId
|
|
@@ -86,15 +77,14 @@ var CardContainer = function (props) {
|
|
|
86
77
|
// render the cards
|
|
87
78
|
var cardsData = data.queryResult.queryResults.rows;
|
|
88
79
|
cards = cardsData.length ? (cardsData.map(function (rowData) {
|
|
89
|
-
var _a;
|
|
90
80
|
var key = JSON.stringify(rowData.values);
|
|
91
|
-
var propsForCard = (0, tslib_1.__assign)({ key: key, type: type, schema: schema, isHeader: isHeader, secondaryLabelLimit: secondaryLabelLimit, data: rowData.values, selectColumns: data.selectColumns, columnModels: data.columnModels, tableEntityConcreteType: tableEntityConcreteType[0] && tableEntityConcreteType[0].type, tableId:
|
|
81
|
+
var propsForCard = (0, tslib_1.__assign)({ key: key, type: type, schema: schema, isHeader: isHeader, secondaryLabelLimit: secondaryLabelLimit, data: rowData.values, selectColumns: data.selectColumns, columnModels: data.columnModels, tableEntityConcreteType: tableEntityConcreteType[0] && tableEntityConcreteType[0].type, tableId: data === null || data === void 0 ? void 0 : data.queryResult.queryResults.tableId }, rest);
|
|
92
82
|
return renderCard(propsForCard, type);
|
|
93
83
|
})) : (react_1.default.createElement(react_1.default.Fragment, null));
|
|
94
84
|
}
|
|
95
85
|
return (react_1.default.createElement("div", { role: "list" },
|
|
96
86
|
title && react_1.default.createElement("h2", { className: "SRC-card-overview-title" }, title),
|
|
97
|
-
!title && unitDescription &&
|
|
87
|
+
!title && unitDescription && (react_1.default.createElement(TotalQueryResults_1.default, { frontText: 'Displaying' })),
|
|
98
88
|
cards,
|
|
99
89
|
showViewMoreButton));
|
|
100
90
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardContainer.js","sourceRoot":"","sources":["../../src/lib/containers/CardContainer.tsx"],"names":[],"mappings":";;;;AAAA,6DAAyB;AACzB,mDAAwC;AACxC,oGAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"CardContainer.js","sourceRoot":"","sources":["../../src/lib/containers/CardContainer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { KeyValue, SQLOperator } from '../utils/functions/sqlFunctions';
|
|
3
|
-
import { QueryBundleRequest, QueryResultBundle } from '../utils/synapseTypes/';
|
|
4
3
|
import { GenericCardSchema, IconOptions } from './GenericCard';
|
|
5
4
|
import { IconSvgOptions } from './IconSvg';
|
|
6
|
-
/**
|
|
7
|
-
* TODO: SWC-5612 - Replace token prop with SynapseContext.accessToken
|
|
8
|
-
*
|
|
9
|
-
* This wasn't done because Enzyme's shallow renderer is not currently
|
|
10
|
-
* compatible with the `contextType` field in the React 16+ context API.
|
|
11
|
-
*
|
|
12
|
-
* This can be fixed by rewriting tests to not rely on the shallow renderer.
|
|
13
|
-
*
|
|
14
|
-
* See here: https://github.com/enzymejs/enzyme/issues/1553
|
|
15
|
-
*/
|
|
16
5
|
/**
|
|
17
6
|
* Used when a column value should link to an external URL defined by a value in another column.
|
|
18
7
|
* Currently only works in SynapseTable (not cards!)
|
|
@@ -66,81 +55,19 @@ export declare type CardConfiguration = {
|
|
|
66
55
|
iconOptions?: IconOptions;
|
|
67
56
|
} & CommonCardProps;
|
|
68
57
|
export declare type CardContainerLogicProps = {
|
|
69
|
-
token?: string;
|
|
70
58
|
limit?: number;
|
|
71
59
|
title?: string;
|
|
72
60
|
unitDescription?: string;
|
|
73
61
|
sqlOperator?: SQLOperator;
|
|
74
62
|
searchParams?: KeyValue;
|
|
75
|
-
facet?: string;
|
|
76
63
|
facetAliases?: Record<string, string>;
|
|
77
64
|
rgbIndex?: number;
|
|
78
65
|
isHeader?: boolean;
|
|
79
66
|
isAlignToLeftNav?: boolean;
|
|
80
67
|
sql: string;
|
|
81
68
|
} & CardConfiguration;
|
|
82
|
-
declare type State = {
|
|
83
|
-
data: QueryResultBundle | undefined;
|
|
84
|
-
isLoading: boolean;
|
|
85
|
-
queryRequest: QueryBundleRequest;
|
|
86
|
-
totalResultsNoFacet: number;
|
|
87
|
-
hasMoreData: boolean;
|
|
88
|
-
};
|
|
89
69
|
/**
|
|
90
70
|
* Class wraps around CardContainer and serves as a standalone logic container for rendering cards.
|
|
91
|
-
* This same logic exists in QueryWrapper, but the two serve two distinct purposes, making this component
|
|
92
|
-
* sufficiently distinct.
|
|
93
|
-
*
|
|
94
|
-
* @class CardContainerLogic
|
|
95
|
-
* @extends {React.Component}
|
|
96
71
|
*/
|
|
97
|
-
export
|
|
98
|
-
|
|
99
|
-
data: undefined;
|
|
100
|
-
isLoading: boolean;
|
|
101
|
-
queryRequest: QueryBundleRequest;
|
|
102
|
-
totalResultsNoFacet: number;
|
|
103
|
-
hasMoreData: boolean;
|
|
104
|
-
};
|
|
105
|
-
constructor(props: CardContainerLogicProps);
|
|
106
|
-
/**
|
|
107
|
-
* Compute default query request
|
|
108
|
-
*
|
|
109
|
-
* @memberof QueryWrapper
|
|
110
|
-
*/
|
|
111
|
-
componentDidMount(): void;
|
|
112
|
-
/**
|
|
113
|
-
* @memberof QueryWrapper
|
|
114
|
-
*
|
|
115
|
-
*/
|
|
116
|
-
componentDidUpdate(prevProps: CardContainerLogicProps): void;
|
|
117
|
-
/**
|
|
118
|
-
* Pass down a deep clone (so no side affects on the child's part) of the
|
|
119
|
-
* last query request made
|
|
120
|
-
*
|
|
121
|
-
* @returns
|
|
122
|
-
* @memberof QueryWrapper
|
|
123
|
-
*/
|
|
124
|
-
getLastQueryRequest(): QueryBundleRequest;
|
|
125
|
-
/**
|
|
126
|
-
* Grab the next page of data, pulling in 25 more rows.
|
|
127
|
-
*
|
|
128
|
-
* @param {*} queryRequest Query request as specified by
|
|
129
|
-
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Query.html
|
|
130
|
-
* @memberof QueryWrapper
|
|
131
|
-
*/
|
|
132
|
-
getNextPageOfData(queryRequest: QueryBundleRequest): Promise<void>;
|
|
133
|
-
/**
|
|
134
|
-
* Execute the initial query passed into the component
|
|
135
|
-
*
|
|
136
|
-
* @param {*} queryRequest Query request as specified by
|
|
137
|
-
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Query.html
|
|
138
|
-
* @memberof QueryWrapper
|
|
139
|
-
*/
|
|
140
|
-
executeInitialQueryRequest(): void;
|
|
141
|
-
/**
|
|
142
|
-
* Render the children without any formatting
|
|
143
|
-
*/
|
|
144
|
-
render(): JSX.Element;
|
|
145
|
-
}
|
|
146
|
-
export {};
|
|
72
|
+
export declare const CardContainerLogic: (props: CardContainerLogicProps) => JSX.Element;
|
|
73
|
+
export default CardContainerLogic;
|
|
@@ -1,161 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CardContainerLogic = void 0;
|
|
3
4
|
var tslib_1 = require("tslib");
|
|
4
|
-
var lodash_es_1 = require("lodash-es");
|
|
5
5
|
var React = (0, tslib_1.__importStar)(require("react"));
|
|
6
|
-
var
|
|
7
|
-
var queryUtils_1 = require("../utils/functions/queryUtils");
|
|
6
|
+
var __1 = require("..");
|
|
8
7
|
var sqlFunctions_1 = require("../utils/functions/sqlFunctions");
|
|
9
|
-
var SynapseConstants_1 = require("../utils/SynapseConstants");
|
|
10
8
|
var CardContainer_1 = (0, tslib_1.__importDefault)(require("./CardContainer"));
|
|
9
|
+
var ErrorBanner_1 = require("./ErrorBanner");
|
|
10
|
+
var QueryVisualizationWrapper_1 = require("./QueryVisualizationWrapper");
|
|
11
|
+
var QueryWrapper_1 = require("./QueryWrapper");
|
|
11
12
|
/**
|
|
12
13
|
* Class wraps around CardContainer and serves as a standalone logic container for rendering cards.
|
|
13
|
-
* This same logic exists in QueryWrapper, but the two serve two distinct purposes, making this component
|
|
14
|
-
* sufficiently distinct.
|
|
15
|
-
*
|
|
16
|
-
* @class CardContainerLogic
|
|
17
|
-
* @extends {React.Component}
|
|
18
14
|
*/
|
|
19
|
-
var CardContainerLogic =
|
|
20
|
-
(0,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
15
|
+
var CardContainerLogic = function (props) {
|
|
16
|
+
var sql = (0, sqlFunctions_1.insertConditionsFromSearchParams)(props.sql, props.searchParams, props.sqlOperator);
|
|
17
|
+
var initQueryRequest = {
|
|
18
|
+
concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',
|
|
19
|
+
entityId: (0, sqlFunctions_1.parseEntityIdFromSqlStatement)(sql),
|
|
20
|
+
query: {
|
|
21
|
+
sql: sql,
|
|
22
|
+
limit: props.limit,
|
|
23
|
+
},
|
|
24
|
+
partMask: __1.SynapseConstants.BUNDLE_MASK_QUERY_RESULTS |
|
|
25
|
+
__1.SynapseConstants.BUNDLE_MASK_QUERY_COUNT |
|
|
26
|
+
__1.SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |
|
|
27
|
+
__1.SynapseConstants.BUNDLE_MASK_QUERY_MAX_ROWS_PER_PAGE |
|
|
28
|
+
__1.SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |
|
|
29
|
+
__1.SynapseConstants.BUNDLE_MASK_QUERY_FACETS |
|
|
30
|
+
__1.SynapseConstants.BUNDLE_MASK_SUM_FILES_SIZE_BYTES |
|
|
31
|
+
__1.SynapseConstants.BUNDLE_MASK_LAST_UPDATED_ON,
|
|
36
32
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
* or search params have updated then perform an update.
|
|
45
|
-
*/
|
|
46
|
-
var _a = prevProps.searchParams, prevSearchParams = _a === void 0 ? {} : _a;
|
|
47
|
-
var _b = this.props.searchParams, currentSearchParams = _b === void 0 ? {} : _b;
|
|
48
|
-
var hasSearchParamsChanged = !(0, lodash_es_1.isEqual)(prevSearchParams, currentSearchParams);
|
|
49
|
-
var hasTokenChanged = this.props.token !== prevProps.token;
|
|
50
|
-
var hasSqlChanged = this.props.sql !== prevProps.sql;
|
|
51
|
-
if (hasTokenChanged || hasSqlChanged || hasSearchParamsChanged) {
|
|
52
|
-
this.executeInitialQueryRequest();
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
/**
|
|
56
|
-
* Pass down a deep clone (so no side affects on the child's part) of the
|
|
57
|
-
* last query request made
|
|
58
|
-
*
|
|
59
|
-
* @returns
|
|
60
|
-
* @memberof QueryWrapper
|
|
61
|
-
*/
|
|
62
|
-
CardContainerLogic.prototype.getLastQueryRequest = function () {
|
|
63
|
-
return (0, lodash_es_1.cloneDeep)(this.state.queryRequest);
|
|
64
|
-
};
|
|
65
|
-
/**
|
|
66
|
-
* Grab the next page of data, pulling in 25 more rows.
|
|
67
|
-
*
|
|
68
|
-
* @param {*} queryRequest Query request as specified by
|
|
69
|
-
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Query.html
|
|
70
|
-
* @memberof QueryWrapper
|
|
71
|
-
*/
|
|
72
|
-
CardContainerLogic.prototype.getNextPageOfData = function (queryRequest) {
|
|
73
|
-
return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
|
|
74
|
-
var _this = this;
|
|
75
|
-
return (0, tslib_1.__generator)(this, function (_a) {
|
|
76
|
-
switch (_a.label) {
|
|
77
|
-
case 0:
|
|
78
|
-
this.setState({
|
|
79
|
-
isLoading: true,
|
|
80
|
-
});
|
|
81
|
-
return [4 /*yield*/, (0, queryUtils_1.getNextPageOfData)(queryRequest, this.state.data, this.props.token).then(function (newState) {
|
|
82
|
-
_this.setState((0, tslib_1.__assign)((0, tslib_1.__assign)({}, newState), { isLoading: false, queryRequest: (0, lodash_es_1.cloneDeep)(queryRequest) }));
|
|
83
|
-
})];
|
|
84
|
-
case 1:
|
|
85
|
-
_a.sent();
|
|
86
|
-
return [2 /*return*/];
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* Execute the initial query passed into the component
|
|
93
|
-
*
|
|
94
|
-
* @param {*} queryRequest Query request as specified by
|
|
95
|
-
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Query.html
|
|
96
|
-
* @memberof QueryWrapper
|
|
97
|
-
*/
|
|
98
|
-
CardContainerLogic.prototype.executeInitialQueryRequest = function () {
|
|
99
|
-
var _this = this;
|
|
100
|
-
var _a;
|
|
101
|
-
this.setState({
|
|
102
|
-
isLoading: true,
|
|
103
|
-
});
|
|
104
|
-
var sqlUsed = (0, sqlFunctions_1.insertConditionsFromSearchParams)(this.props.sql, this.props.searchParams, this.props.sqlOperator);
|
|
105
|
-
var entityId = (0, sqlFunctions_1.parseEntityIdFromSqlStatement)(sqlUsed);
|
|
106
|
-
var limit = (_a = this.props.limit) !== null && _a !== void 0 ? _a : SynapseConstants_1.DEFAULT_PAGE_SIZE;
|
|
107
|
-
// we don't set this in the state because it hardcodes the sql query, on componentDidUpdate
|
|
108
|
-
// we need the sql to change
|
|
109
|
-
var initQueryRequest = {
|
|
110
|
-
concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',
|
|
111
|
-
partMask: utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |
|
|
112
|
-
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_FACETS |
|
|
113
|
-
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_RESULTS |
|
|
114
|
-
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COUNT,
|
|
115
|
-
entityId: entityId,
|
|
116
|
-
query: {
|
|
117
|
-
sql: sqlUsed,
|
|
118
|
-
limit: limit,
|
|
119
|
-
offset: 0,
|
|
120
|
-
},
|
|
121
|
-
};
|
|
122
|
-
utils_1.SynapseClient.getQueryTableResults(initQueryRequest, this.props.token)
|
|
123
|
-
.then(function (data) {
|
|
124
|
-
var queryRequestWithoutCount = (0, lodash_es_1.cloneDeep)(initQueryRequest);
|
|
125
|
-
queryRequestWithoutCount.partMask =
|
|
126
|
-
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |
|
|
127
|
-
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_FACETS |
|
|
128
|
-
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_RESULTS;
|
|
129
|
-
var hasMoreData = data.queryResult.queryResults.rows.length === limit;
|
|
130
|
-
var newState = {
|
|
131
|
-
hasMoreData: hasMoreData,
|
|
132
|
-
data: data,
|
|
133
|
-
queryRequest: queryRequestWithoutCount,
|
|
134
|
-
isLoading: false,
|
|
135
|
-
totalResultsNoFacet: data.queryCount,
|
|
136
|
-
};
|
|
137
|
-
_this.setState(newState);
|
|
138
|
-
})
|
|
139
|
-
.catch(function (err) {
|
|
140
|
-
console.log('Failed to get data ', err);
|
|
141
|
-
});
|
|
142
|
-
};
|
|
143
|
-
/**
|
|
144
|
-
* Render the children without any formatting
|
|
145
|
-
*/
|
|
146
|
-
CardContainerLogic.prototype.render = function () {
|
|
147
|
-
// only forward the necessary props
|
|
148
|
-
var _a = this.props, sql = _a.sql, searchParams = _a.searchParams, token = _a.token, rest = (0, tslib_1.__rest)(_a, ["sql", "searchParams", "token"]);
|
|
149
|
-
return (React.createElement(CardContainer_1.default, (0, tslib_1.__assign)({}, rest, { data: this.state.data, getLastQueryRequest: this.getLastQueryRequest, getNextPageOfData: this.getNextPageOfData, hasMoreData: this.state.hasMoreData, isLoading: this.state.isLoading })));
|
|
150
|
-
};
|
|
151
|
-
CardContainerLogic.defaultState = {
|
|
152
|
-
data: undefined,
|
|
153
|
-
isLoading: true,
|
|
154
|
-
queryRequest: {},
|
|
155
|
-
totalResultsNoFacet: 0,
|
|
156
|
-
hasMoreData: true,
|
|
157
|
-
};
|
|
158
|
-
return CardContainerLogic;
|
|
159
|
-
}(React.Component));
|
|
160
|
-
exports.default = CardContainerLogic;
|
|
33
|
+
return (React.createElement(QueryWrapper_1.QueryWrapper, (0, tslib_1.__assign)({}, props, { initQueryRequest: initQueryRequest }),
|
|
34
|
+
React.createElement(QueryVisualizationWrapper_1.QueryVisualizationWrapper, { rgbIndex: props.rgbIndex, unitDescription: props.unitDescription, facetAliases: props.facetAliases },
|
|
35
|
+
React.createElement(CardContainer_1.default, (0, tslib_1.__assign)({}, props)),
|
|
36
|
+
React.createElement(QueryWrapper_1.QueryContextConsumer, null, function (queryContext) { return React.createElement(ErrorBanner_1.ErrorBanner, { error: queryContext === null || queryContext === void 0 ? void 0 : queryContext.error }); }))));
|
|
37
|
+
};
|
|
38
|
+
exports.CardContainerLogic = CardContainerLogic;
|
|
39
|
+
exports.default = exports.CardContainerLogic;
|
|
161
40
|
//# sourceMappingURL=CardContainerLogic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardContainerLogic.js","sourceRoot":"","sources":["../../src/lib/containers/CardContainerLogic.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CardContainerLogic.js","sourceRoot":"","sources":["../../src/lib/containers/CardContainerLogic.tsx"],"names":[],"mappings":";;;;AAAA,wDAA8B;AAC9B,wBAAqC;AACrC,gEAKwC;AAExC,+EAA2C;AAC3C,6CAA2C;AAG3C,yEAAuE;AACvE,+CAAmE;AAsFnE;;GAEG;AACI,IAAM,kBAAkB,GAAG,UAAC,KAA8B;IAC/D,IAAM,GAAG,GAAG,IAAA,+CAAgC,EAC1C,KAAK,CAAC,GAAG,EACT,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,WAAW,CAClB,CAAA;IACD,IAAM,gBAAgB,GAAuB;QAC3C,YAAY,EAAE,yDAAyD;QACvE,QAAQ,EAAE,IAAA,4CAA6B,EAAC,GAAG,CAAC;QAC5C,KAAK,EAAE;YACL,GAAG,EAAE,GAAG;YACR,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB;QACD,QAAQ,EACN,oBAAgB,CAAC,yBAAyB;YAC1C,oBAAgB,CAAC,uBAAuB;YACxC,oBAAgB,CAAC,gCAAgC;YACjD,oBAAgB,CAAC,mCAAmC;YACpD,oBAAgB,CAAC,+BAA+B;YAChD,oBAAgB,CAAC,wBAAwB;YACzC,oBAAgB,CAAC,gCAAgC;YACjD,oBAAgB,CAAC,2BAA2B;KAC/C,CAAA;IAED,OAAO,CACL,oBAAC,2BAAY,4BAAK,KAAK,IAAE,gBAAgB,EAAE,gBAAgB;QACzD,oBAAC,qDAAyB,IACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,YAAY,EAAE,KAAK,CAAC,YAAY;YAEhC,oBAAC,uBAAa,4BAAK,KAAK,EAAI;YAC5B,oBAAC,mCAAoB,QAClB,UAAA,YAAY,IAAI,OAAA,oBAAC,yBAAW,IAAC,KAAK,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,KAAK,GAAI,EAA3C,CAA2C,CACvC,CACG,CACf,CAChB,CAAA;AACH,CAAC,CAAA;AAtCY,QAAA,kBAAkB,sBAsC9B;AAED,kBAAe,0BAAkB,CAAA"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
export declare type FullTextSearchProps = Pick<QueryWrapperChildProps, 'executeQueryRequest' | 'getLastQueryRequest'> & {
|
|
4
|
-
topLevelControlsState?: Pick<TopLevelControlsState, 'showSearchBar' | 'showFacetFilter'>;
|
|
5
|
-
};
|
|
6
|
-
export declare function FullTextSearch(props: FullTextSearchProps): JSX.Element;
|
|
2
|
+
export declare function FullTextSearch(): JSX.Element;
|
|
7
3
|
export default FullTextSearch;
|
|
@@ -8,15 +8,17 @@ var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
|
|
|
8
8
|
var core_1 = require("@material-ui/core");
|
|
9
9
|
var react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
10
10
|
var QueryWrapper_1 = require("./QueryWrapper");
|
|
11
|
+
var QueryWrapper_2 = require("./QueryWrapper");
|
|
12
|
+
var QueryVisualizationWrapper_1 = require("./QueryVisualizationWrapper");
|
|
11
13
|
fontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faSearch);
|
|
12
14
|
fontawesome_svg_core_1.library.add(free_solid_svg_icons_1.faTimes);
|
|
13
15
|
// See PLFM-7011
|
|
14
16
|
var MIN_SEARCH_QUERY_LENGTH = 3;
|
|
15
|
-
function FullTextSearch(
|
|
16
|
-
var _a;
|
|
17
|
-
var _b = (0,
|
|
17
|
+
function FullTextSearch() {
|
|
18
|
+
var _a = (0, QueryWrapper_2.useQueryContext)(), executeQueryRequest = _a.executeQueryRequest, getLastQueryRequest = _a.getLastQueryRequest;
|
|
19
|
+
var _b = (0, QueryVisualizationWrapper_1.useQueryVisualizationContext)().topLevelControlsState, showSearchBar = _b.showSearchBar, showFacetFilter = _b.showFacetFilter;
|
|
20
|
+
var _c = (0, react_1.useState)(''), searchText = _c[0], setSearchText = _c[1];
|
|
18
21
|
var searchInputRef = (0, react_1.useRef)(null);
|
|
19
|
-
var showSearchBar = (_a = props === null || props === void 0 ? void 0 : props.topLevelControlsState) === null || _a === void 0 ? void 0 : _a.showSearchBar;
|
|
20
22
|
(0, react_1.useEffect)(function () {
|
|
21
23
|
var _a;
|
|
22
24
|
if (showSearchBar) {
|
|
@@ -32,7 +34,6 @@ function FullTextSearch(props) {
|
|
|
32
34
|
(_a = searchInputRef.current) === null || _a === void 0 ? void 0 : _a.setCustomValidity("Search term must have a minimum of " + MIN_SEARCH_QUERY_LENGTH + " characters");
|
|
33
35
|
}
|
|
34
36
|
else {
|
|
35
|
-
var executeQueryRequest = props.executeQueryRequest, getLastQueryRequest = props.getLastQueryRequest;
|
|
36
37
|
var lastQueryRequestDeepClone = getLastQueryRequest();
|
|
37
38
|
var _b = lastQueryRequestDeepClone.query.additionalFilters, additionalFilters = _b === void 0 ? [] : _b;
|
|
38
39
|
var textMatchesQueryFilter_1 = {
|
|
@@ -42,7 +43,8 @@ function FullTextSearch(props) {
|
|
|
42
43
|
// PORTALS-2093: does this additional filter already exist?
|
|
43
44
|
var found = additionalFilters.find(function (filter) {
|
|
44
45
|
return filter.concreteType == textMatchesQueryFilter_1.concreteType &&
|
|
45
|
-
filter.searchExpression ==
|
|
46
|
+
filter.searchExpression ==
|
|
47
|
+
textMatchesQueryFilter_1.searchExpression;
|
|
46
48
|
});
|
|
47
49
|
if (found) {
|
|
48
50
|
return;
|
|
@@ -59,12 +61,10 @@ function FullTextSearch(props) {
|
|
|
59
61
|
(_a = searchInputRef.current) === null || _a === void 0 ? void 0 : _a.setCustomValidity('');
|
|
60
62
|
setSearchText(event.currentTarget.value);
|
|
61
63
|
};
|
|
62
|
-
var topLevelControlsState = props.topLevelControlsState;
|
|
63
|
-
var showFacetFilter = topLevelControlsState === null || topLevelControlsState === void 0 ? void 0 : topLevelControlsState.showFacetFilter;
|
|
64
64
|
return (react_1.default.createElement("div", { className: "QueryWrapperTextInput " + (showFacetFilter
|
|
65
65
|
? QueryWrapper_1.QUERY_FILTERS_EXPANDED_CSS
|
|
66
66
|
: QueryWrapper_1.QUERY_FILTERS_COLLAPSED_CSS) },
|
|
67
|
-
react_1.default.createElement(core_1.Collapse, { in:
|
|
67
|
+
react_1.default.createElement(core_1.Collapse, { in: showSearchBar, timeout: { enter: 300, exit: 300 } },
|
|
68
68
|
react_1.default.createElement("form", { className: "QueryWrapperTextInput__searchbar", onSubmit: search },
|
|
69
69
|
react_1.default.createElement(react_fontawesome_1.FontAwesomeIcon, { className: "QueryWrapperTextInput__searchbar__searchicon", size: 'sm', icon: 'search' }),
|
|
70
70
|
react_1.default.createElement("input", { ref: searchInputRef, minLength: MIN_SEARCH_QUERY_LENGTH, onChange: handleChange, placeholder: "Enter Search Terms", value: searchText, type: "text" }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FullTextSearch.js","sourceRoot":"","sources":["../../src/lib/containers/FullTextSearch.tsx"],"names":[],"mappings":";;;;AAAA,0EAA2D;AAC3D,0EAAqE;AACrE,oEAAgE;AAChE,0CAA4C;AAC5C,0DAA0D;AAE1D,+
|
|
1
|
+
{"version":3,"file":"FullTextSearch.js","sourceRoot":"","sources":["../../src/lib/containers/FullTextSearch.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryCount.js","sourceRoot":"","sources":["../../src/lib/containers/QueryCount.tsx"],"names":[],"mappings":";;;AAAA,mCAA2D;AAC3D,0DAAkD;AAKlD,gEAA+E;AAC/E,0DAA2D;AAQ3D,IAAM,UAAU,GAA6C,UAAC,EAI7D;QAHC,GAAG,SAAA,EACH,cAAc,oBAAA,EACd,MAAM,YAAA;IAEE,IAAA,WAAW,GAAK,IAAA,kCAAiB,GAAE,YAAxB,CAAwB;
|
|
1
|
+
{"version":3,"file":"QueryCount.js","sourceRoot":"","sources":["../../src/lib/containers/QueryCount.tsx"],"names":[],"mappings":";;;AAAA,mCAA2D;AAC3D,0DAAkD;AAKlD,gEAA+E;AAC/E,0DAA2D;AAQ3D,IAAM,UAAU,GAA6C,UAAC,EAI7D;QAHC,GAAG,SAAA,EACH,cAAc,oBAAA,EACd,MAAM,YAAA;IAEE,IAAA,WAAW,GAAK,IAAA,kCAAiB,GAAE,YAAxB,CAAwB;IAErC,IAAA,KAAgD,IAAA,gBAAQ,EAAK,EAAE,CAAC,EAA/D,mBAAmB,QAAA,EAAE,sBAAsB,QAAoB,CAAA;IACtE,2FAA2F;IAC3F,4BAA4B;IACtB,IAAA,KACJ,IAAA,gBAAQ,EAAK,EAAE,CAAC,EADX,6BAA6B,QAAA,EAAE,gCAAgC,QACpD,CAAA;IAClB,IAAI,OAAO,GAAG,IAAI,CAAA;IAElB,IAAA,iBAAS,EAAC;QACR,IAAM,iBAAiB,GAAG;YACxB,IAAI,OAAO,EAAE;gBACX,IAAM,QAAQ,GAAG,IAAA,4CAA6B,EAAC,GAAG,CAAC,CAAA;gBACnD,IACE,6BAA6B,CAAI,GAAG,SAAI,WAAa,CAAC;oBACtD,mBAAmB,CAAI,GAAG,SAAI,WAAa,CAAC,EAC5C;oBACA,wDAAwD;oBACxD,OAAM;iBACP;gBACD,IAAM,OAAO,GAAuB;oBAClC,YAAY,EACV,yDAAyD;oBAC3D,KAAK,EAAE;wBACL,GAAG,KAAA;wBACH,cAAc,gBAAA;qBACf;oBACD,QAAQ,UAAA;oBACR,QAAQ,EAAE,wBAAgB,CAAC,uBAAuB;iBACnD,CAAA;gBACD,IAAM,gCAAgC,6BACjC,6BAA6B,CACjC,CAAA;gBACD,gCAAgC,CAAI,GAAG,SAAI,WAAa,CAAC,GAAG,IAAI,CAAA;gBAChE,gCAAgC,CAAC,gCAAgC,CAAC,CAAA;gBAClE,qBAAa,CAAC,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,UAAA,IAAI;oBAChE,IAAM,sBAAsB,6BACvB,mBAAmB,CACvB,CAAA;oBACD,sBAAsB,CAAI,GAAG,SAAI,WAAa,CAAC,GAAG,IAAK,CAAC,UAAU,CAAA;oBAClE,sBAAsB,CAAC,sBAAsB,CAAC,CAAA;gBAChD,CAAC,CAAC,CAAA;aACH;QACH,CAAC,CAAA;QAED,iBAAiB,EAAE,CAAA;QAEnB,OAAO;YACL,OAAO,GAAG,KAAK,CAAA;QACjB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC,CAAA;IAEtC,IAAM,KAAK,GAAG,mBAAmB,CAAI,GAAG,SAAI,WAAa,CAAC,CAAA;IAC1D,IAAM,UAAU,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,EAAE,CAAA;IAC1C,iIAAiI;IACjI,OAAO,CACL,8BAAC,eAAK,CAAC,QAAQ,QACZ,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAI,UAAU,MAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CACpC,CAClB,CAAA;AACH,CAAC,CAAA;AACD,kBAAe,UAAU,CAAA"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type QueryVisualizationContextType = {
|
|
3
|
+
topLevelControlsState: TopLevelControlsState;
|
|
4
|
+
setTopLevelControlsState: React.Dispatch<React.SetStateAction<TopLevelControlsState>>;
|
|
5
|
+
columnsToShowInTable: string[];
|
|
6
|
+
setColumnsToShowInTable: (newState: string[]) => void;
|
|
7
|
+
selectedRowIndices: number[];
|
|
8
|
+
setSelectedRowIndices: (newState: number[]) => void;
|
|
9
|
+
facetAliases?: Record<string, string>;
|
|
10
|
+
rgbIndex?: number;
|
|
11
|
+
unitDescription?: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* This must be exported to use the context in class components.
|
|
15
|
+
*/
|
|
16
|
+
export declare const QueryVisualizationContext: React.Context<QueryVisualizationContextType | undefined>;
|
|
17
|
+
export declare type QueryVisualizationContextProviderProps = {
|
|
18
|
+
queryVisualizationContext: QueryVisualizationContextType;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Provides fields and functions related to visualizing a Synapse table query. For actual query data, see QueryContextProvider.
|
|
22
|
+
*/
|
|
23
|
+
export declare const QueryVisualizationContextProvider: React.FunctionComponent<QueryVisualizationContextProviderProps>;
|
|
24
|
+
export declare function useQueryVisualizationContext(): QueryVisualizationContextType;
|
|
25
|
+
export declare const QueryVisualizationContextConsumer: React.Consumer<QueryVisualizationContextType | undefined>;
|
|
26
|
+
export declare type QueryVisualizationWrapperProps = {
|
|
27
|
+
children: React.ReactNode | React.ReactNode[];
|
|
28
|
+
rgbIndex?: number;
|
|
29
|
+
unitDescription?: string;
|
|
30
|
+
facetAliases?: Record<string, string>;
|
|
31
|
+
visibleColumnCount?: number;
|
|
32
|
+
hiddenColumns?: string[];
|
|
33
|
+
defaultShowFacetVisualization?: boolean;
|
|
34
|
+
};
|
|
35
|
+
export declare type TopLevelControlsState = {
|
|
36
|
+
showFacetVisualization: boolean;
|
|
37
|
+
showFacetFilter?: boolean;
|
|
38
|
+
showColumnFilter: boolean;
|
|
39
|
+
showSearchBar: boolean;
|
|
40
|
+
showDownloadConfirmation: boolean;
|
|
41
|
+
showColumnSelectDropdown: boolean;
|
|
42
|
+
showSqlEditor: boolean;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* QueryVisualizationWrapper manages UI state for components that query tables in Synapse. That state can be accessed
|
|
46
|
+
* or updated using QueryVisualizationContext. A QueryVisualizationWrapper must be used within a QueryWrapper.
|
|
47
|
+
*/
|
|
48
|
+
export declare function QueryVisualizationWrapper(props: QueryVisualizationWrapperProps): JSX.Element;
|