synapse-react-client 3.1.7 → 3.1.9
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 -1
- package/dist/containers/CardContainer.js +25 -27
- package/dist/containers/CardContainer.js.map +1 -1
- package/dist/containers/CardContainerLogic.d.ts +4 -6
- package/dist/containers/CardContainerLogic.js +14 -10
- package/dist/containers/CardContainerLogic.js.map +1 -1
- package/dist/containers/FilePreview/FileHandleContentRenderer.js +1 -1
- package/dist/containers/GenericCard.d.ts +3 -2
- package/dist/containers/GenericCard.js +10 -11
- package/dist/containers/GenericCard.js.map +1 -1
- package/dist/containers/IconSvg.d.ts +1 -1
- package/dist/containers/IconSvg.js +24 -0
- package/dist/containers/IconSvg.js.map +1 -1
- package/dist/containers/InfiniteQueryWrapper.d.ts +0 -4
- package/dist/containers/InfiniteQueryWrapper.js +24 -9
- package/dist/containers/InfiniteQueryWrapper.js.map +1 -1
- package/dist/containers/QueryContext.d.ts +17 -5
- package/dist/containers/QueryContext.js.map +1 -1
- package/dist/containers/QueryCount.d.ts +7 -5
- package/dist/containers/QueryCount.js +10 -10
- package/dist/containers/QueryCount.js.map +1 -1
- package/dist/containers/QuerySortSelector.d.ts +0 -1
- package/dist/containers/QuerySortSelector.js +4 -3
- package/dist/containers/QuerySortSelector.js.map +1 -1
- package/dist/containers/QueryVisualizationWrapper.d.ts +12 -2
- package/dist/containers/QueryVisualizationWrapper.js +41 -6
- package/dist/containers/QueryVisualizationWrapper.js.map +1 -1
- package/dist/containers/QueryWrapper.d.ts +1 -5
- package/dist/containers/QueryWrapper.js +29 -14
- package/dist/containers/QueryWrapper.js.map +1 -1
- package/dist/containers/SearchV2.js +2 -3
- package/dist/containers/SearchV2.js.map +1 -1
- package/dist/containers/SubsectionRowRenderer.d.ts +2 -2
- package/dist/containers/SubsectionRowRenderer.js +4 -3
- package/dist/containers/SubsectionRowRenderer.js.map +1 -1
- package/dist/containers/TotalQueryResults.d.ts +2 -2
- package/dist/containers/TotalQueryResults.js +12 -193
- package/dist/containers/TotalQueryResults.js.map +1 -1
- package/dist/containers/UserCardListRotate.d.ts +2 -2
- package/dist/containers/UserCardListRotate.js +4 -3
- package/dist/containers/UserCardListRotate.js.map +1 -1
- package/dist/containers/home_page/featured-data/FacetPlotsCard.js +3 -4
- package/dist/containers/home_page/featured-data/FacetPlotsCard.js.map +1 -1
- package/dist/containers/home_page/featured-data/QueryPerFacetPlotsCard.d.ts +0 -1
- 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 +2 -2
- package/dist/containers/home_page/featured-data/SingleQueryFacetPlotsCards.js.map +1 -1
- package/dist/containers/home_page/goals/Goals.Desktop.js +1 -1
- package/dist/containers/home_page/goals/Goals.Desktop.js.map +1 -1
- package/dist/containers/home_page/goals/Goals.Mobile.js +1 -1
- package/dist/containers/home_page/goals/Goals.Mobile.js.map +1 -1
- package/dist/containers/oauth/CreateOAuthClient.js +62 -61
- package/dist/containers/oauth/CreateOAuthClient.js.map +1 -1
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.d.ts +4 -9
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js +7 -5
- package/dist/containers/query_wrapper_plot_nav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/containers/row_renderers/utils/Icon.d.ts +1 -2
- package/dist/containers/row_renderers/utils/Icon.js.map +1 -1
- package/dist/containers/table/NoContentPlaceholderType.d.ts +11 -0
- package/dist/containers/table/NoContentPlaceholderType.js +16 -0
- package/dist/containers/table/NoContentPlaceholderType.js.map +1 -0
- package/dist/containers/table/StandaloneQueryWrapper.d.ts +2 -8
- package/dist/containers/table/StandaloneQueryWrapper.js +9 -7
- package/dist/containers/table/StandaloneQueryWrapper.js.map +1 -1
- package/dist/containers/table/SynapseTable.d.ts +1 -8
- package/dist/containers/table/SynapseTable.js +15 -45
- package/dist/containers/table/SynapseTable.js.map +1 -1
- package/dist/containers/table/SynapseTableUtils.d.ts +1 -16
- package/dist/containers/table/SynapseTableUtils.js +1 -101
- package/dist/containers/table/SynapseTableUtils.js.map +1 -1
- package/dist/containers/table/TableIsEmpty.d.ts +2 -0
- package/dist/containers/table/TableIsEmpty.js +12 -0
- package/dist/containers/table/TableIsEmpty.js.map +1 -0
- package/dist/containers/table/TopLevelControls.js +23 -6
- package/dist/containers/table/TopLevelControls.js.map +1 -1
- package/dist/containers/table/table-top/ColumnSelection.d.ts +0 -1
- package/dist/containers/table/table-top/ColumnSelection.js +5 -4
- package/dist/containers/table/table-top/ColumnSelection.js.map +1 -1
- package/dist/containers/table/table-top/DownloadOptions.js +1 -2
- package/dist/containers/table/table-top/DownloadOptions.js.map +1 -1
- package/dist/containers/useImmutableTableQuery.d.ts +12 -1
- package/dist/containers/useImmutableTableQuery.js +93 -11
- package/dist/containers/useImmutableTableQuery.js.map +1 -1
- package/dist/containers/widgets/ElementWithTooltip.d.ts +1 -2
- package/dist/containers/widgets/ElementWithTooltip.js +2 -2
- package/dist/containers/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/containers/widgets/facet-nav/FacetNav.js +2 -2
- package/dist/containers/widgets/facet-nav/FacetNav.js.map +1 -1
- package/dist/containers/widgets/facet-nav/FacetNavPanel.js +12 -13
- package/dist/containers/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/containers/widgets/facet-nav/SelectionCriteriaPill.d.ts +12 -17
- package/dist/containers/widgets/facet-nav/SelectionCriteriaPill.js +11 -42
- package/dist/containers/widgets/facet-nav/SelectionCriteriaPill.js.map +1 -1
- package/dist/containers/widgets/facet-nav/SelectionCriteriaPills.d.ts +3 -0
- package/dist/containers/widgets/facet-nav/SelectionCriteriaPills.js +117 -0
- package/dist/containers/widgets/facet-nav/SelectionCriteriaPills.js.map +1 -0
- package/dist/containers/widgets/query-filter/EnumFacetFilter.d.ts +0 -1
- package/dist/containers/widgets/query-filter/EnumFacetFilter.js +18 -6
- package/dist/containers/widgets/query-filter/EnumFacetFilter.js.map +1 -1
- package/dist/containers/widgets/query-filter/FacetChip.js +2 -3
- package/dist/containers/widgets/query-filter/FacetChip.js.map +1 -1
- package/dist/containers/widgets/query-filter/{QueryFilter.d.ts → FacetFilterControls.d.ts} +4 -6
- package/dist/containers/widgets/query-filter/{QueryFilter.js → FacetFilterControls.js} +28 -27
- package/dist/containers/widgets/query-filter/FacetFilterControls.js.map +1 -0
- package/dist/containers/widgets/query-filter/FacetFilterHeader.d.ts +1 -2
- package/dist/containers/widgets/query-filter/FacetFilterHeader.js +4 -3
- package/dist/containers/widgets/query-filter/FacetFilterHeader.js.map +1 -1
- package/dist/containers/widgets/query-filter/RangeFacetFilter.d.ts +0 -1
- package/dist/containers/widgets/query-filter/RangeFacetFilter.js +2 -2
- package/dist/containers/widgets/query-filter/RangeFacetFilter.js.map +1 -1
- package/dist/containers/widgets/themes-plot/ThemesPlot.js +1 -1
- package/dist/containers/widgets/themes-plot/ThemesPlot.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/style/components/_all.scss +2 -1
- package/dist/style/components/_markdown-editor.scss +28 -0
- package/dist/style/components/_oauth-editor.scss +0 -6
- package/dist/style/components/_query-filter.scss +1 -1
- package/dist/style/components/_query-wrapper-plot-nav.scss +6 -6
- package/dist/umd/synapse-react-client.development.css +72 -18
- package/dist/umd/synapse-react-client.development.css.map +2 -2
- package/dist/umd/synapse-react-client.development.js +7981 -12858
- package/dist/umd/synapse-react-client.development.js.map +4 -4
- package/dist/umd/synapse-react-client.production.min.css +1 -1
- package/dist/umd/synapse-react-client.production.min.js +71 -84
- package/dist/umd.index.d.ts +1 -0
- 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 +5 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +5 -0
- package/dist/utils/SynapseClient.js +12 -4
- package/dist/utils/SynapseClient.js.map +1 -1
- package/dist/utils/SynapseConstants.d.ts +1 -0
- package/dist/utils/SynapseConstants.js +2 -1
- package/dist/utils/SynapseConstants.js.map +1 -1
- package/dist/utils/functions/getDataFromFromStorage.d.ts +2 -3
- package/dist/utils/functions/getDataFromFromStorage.js +42 -3
- package/dist/utils/functions/getDataFromFromStorage.js.map +1 -1
- package/dist/utils/functions/queryUtils.d.ts +6 -1
- package/dist/utils/functions/queryUtils.js +20 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/sqlFunctions.d.ts +8 -11
- package/dist/utils/functions/sqlFunctions.js +50 -144
- package/dist/utils/functions/sqlFunctions.js.map +1 -1
- package/dist/utils/functions/unCamelCase.d.ts +1 -1
- package/dist/utils/functions/unCamelCase.js +1 -10
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.d.ts +4 -4
- package/dist/utils/hooks/useGetInfoFromIds.js +94 -52
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/synapseTypes/Table/FacetColumnRequest.d.ts +17 -6
- package/dist/utils/synapseTypes/Table/FacetColumnRequest.js +6 -1
- package/dist/utils/synapseTypes/Table/FacetColumnRequest.js.map +1 -1
- package/package.json +3 -8
- package/dist/containers/widgets/query-filter/QueryFilter.js.map +0 -1
|
@@ -5,8 +5,7 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var React = tslib_1.__importStar(require("react"));
|
|
6
6
|
var react_1 = require("react");
|
|
7
7
|
var queryUtils_1 = require("../utils/functions/queryUtils");
|
|
8
|
-
var
|
|
9
|
-
var useGetQueryResultBundle_1 = require("../utils/hooks/SynapseAPI/entity/useGetQueryResultBundle");
|
|
8
|
+
var SynapseAPI_1 = require("../utils/hooks/SynapseAPI");
|
|
10
9
|
var QueryContext_1 = require("./QueryContext");
|
|
11
10
|
var useImmutableTableQuery_1 = tslib_1.__importDefault(require("./useImmutableTableQuery"));
|
|
12
11
|
exports.QUERY_FILTERS_EXPANDED_CSS = 'isShowingFacetFilters';
|
|
@@ -23,17 +22,17 @@ function InfiniteQueryWrapper(props) {
|
|
|
23
22
|
componentIndex: componentIndex,
|
|
24
23
|
shouldDeepLink: shouldDeepLink,
|
|
25
24
|
onQueryChange: onQueryChange,
|
|
26
|
-
}), entityId = _b.entityId, versionNumber = _b.versionNumber, getInitQueryRequest = _b.getInitQueryRequest, getLastQueryRequest = _b.getLastQueryRequest, setQuery = _b.setQuery;
|
|
25
|
+
}), entityId = _b.entityId, versionNumber = _b.versionNumber, getInitQueryRequest = _b.getInitQueryRequest, getLastQueryRequest = _b.getLastQueryRequest, setQuery = _b.setQuery, resetQuery = _b.resetQuery, removeQueryFilter = _b.removeQueryFilter, removeValueFromQueryFilter = _b.removeValueFromQueryFilter, removeSelectedFacet = _b.removeSelectedFacet, removeValueFromSelectedFacet = _b.removeValueFromSelectedFacet;
|
|
27
26
|
var lastQueryRequest = (0, react_1.useMemo)(function () {
|
|
28
27
|
return getLastQueryRequest();
|
|
29
28
|
}, [getLastQueryRequest]);
|
|
30
|
-
var _c = (0,
|
|
29
|
+
var _c = (0, SynapseAPI_1.useInfiniteQueryResultBundle)(lastQueryRequest, {
|
|
31
30
|
// We use `keepPreviousData` because we don't want to clear out the current data when the query is modified via the UI
|
|
32
31
|
keepPreviousData: true,
|
|
33
32
|
}, setCurrentAsyncStatus), infiniteData = _c.data, hasNextPage = _c.hasNextPage, fetchPreviousPage = _c.fetchPreviousPage, fetchNextPage = _c.fetchNextPage, isFetchingNextPage = _c.isFetchingNextPage, queryIsLoading = _c.isLoading, error = _c.error, newQueryIsFetching = _c.isPreviousData;
|
|
34
|
-
// Indicate if we're fetching data for the first time (queryIsLoading) or if we're fetching data for a brand
|
|
33
|
+
// Indicate if we're fetching data for the first time (queryIsLoading) or if we're fetching data for a brand-new query (newQueryIsFetching)
|
|
35
34
|
var isLoadingNewBundle = queryIsLoading || newQueryIsFetching;
|
|
36
|
-
var entity = (0,
|
|
35
|
+
var entity = (0, SynapseAPI_1.useGetEntity)(entityId, versionNumber).data;
|
|
37
36
|
/**
|
|
38
37
|
* Since we're showing an infinite list of data, use custom pagination handling instead of pagination utils provided by
|
|
39
38
|
* useImmutableTableQuery
|
|
@@ -105,7 +104,7 @@ function InfiniteQueryWrapper(props) {
|
|
|
105
104
|
return undefined;
|
|
106
105
|
}
|
|
107
106
|
if (currentPage === 'ALL') {
|
|
108
|
-
// Modify the first page so the result is the concatenation of all
|
|
107
|
+
// Modify the first page so the result is the concatenation of all the fetched rows.
|
|
109
108
|
return tslib_1.__assign(tslib_1.__assign({}, infiniteData === null || infiniteData === void 0 ? void 0 : infiniteData.pages[0].responseBody), { queryResult: tslib_1.__assign(tslib_1.__assign({}, (_a = infiniteData === null || infiniteData === void 0 ? void 0 : infiniteData.pages[0].responseBody) === null || _a === void 0 ? void 0 : _a.queryResult), { queryResults: tslib_1.__assign(tslib_1.__assign({}, (_c = (_b = infiniteData === null || infiniteData === void 0 ? void 0 : infiniteData.pages[0].responseBody) === null || _b === void 0 ? void 0 : _b.queryResult) === null || _c === void 0 ? void 0 : _c.queryResults), { rows: (_d = infiniteData.pages.flatMap(function (page) { var _a; return (_a = page.responseBody.queryResult) === null || _a === void 0 ? void 0 : _a.queryResults.rows; })) !== null && _d !== void 0 ? _d : [] }) }) });
|
|
110
109
|
}
|
|
111
110
|
return infiniteData === null || infiniteData === void 0 ? void 0 : infiniteData.pages[currentPage].responseBody;
|
|
@@ -119,18 +118,26 @@ function InfiniteQueryWrapper(props) {
|
|
|
119
118
|
? (0, queryUtils_1.isFacetAvailable)(data.facets, data.selectColumns)
|
|
120
119
|
: true;
|
|
121
120
|
/**
|
|
122
|
-
*
|
|
121
|
+
* Remove a particular facet name (e.g. study) and all possible values based on the parameter specified in the url
|
|
123
122
|
* this is to remove the facet from the charts, search and filter.
|
|
124
123
|
* @return data: QueryResultBundle
|
|
125
124
|
*/
|
|
126
125
|
var dataWithLockedColumnFacetRemoved = (0, react_1.useMemo)(function () {
|
|
127
126
|
return (0, queryUtils_1.removeLockedColumnFromFacetData)(data, lockedColumn);
|
|
128
127
|
}, [data, lockedColumn]);
|
|
128
|
+
var hasResettableFilters = (0, react_1.useMemo)(function () {
|
|
129
|
+
var request = getLastQueryRequest();
|
|
130
|
+
return (0, queryUtils_1.hasResettableFilters)(request.query, lockedColumn);
|
|
131
|
+
}, [getLastQueryRequest, lockedColumn]);
|
|
132
|
+
var getColumnModel = (0, react_1.useCallback)(function (columnName) {
|
|
133
|
+
var _a, _b;
|
|
134
|
+
return (_b = (_a = data === null || data === void 0 ? void 0 : data.columnModels) === null || _a === void 0 ? void 0 : _a.find(function (cm) { return cm.name === columnName; })) !== null && _b !== void 0 ? _b : null;
|
|
135
|
+
}, [data === null || data === void 0 ? void 0 : data.columnModels]);
|
|
129
136
|
var context = {
|
|
130
137
|
data: dataWithLockedColumnFacetRemoved,
|
|
131
138
|
isLoadingNewPage: isFetchingNextPage,
|
|
132
139
|
hasNextPage: !!hasNextPage,
|
|
133
|
-
hasPreviousPage:
|
|
140
|
+
hasPreviousPage: hasPreviousPage,
|
|
134
141
|
isLoadingNewBundle: isLoadingNewBundle,
|
|
135
142
|
getLastQueryRequest: getLastQueryRequest,
|
|
136
143
|
getInitQueryRequest: getInitQueryRequest,
|
|
@@ -142,6 +149,14 @@ function InfiniteQueryWrapper(props) {
|
|
|
142
149
|
appendNextPageToResults: appendNextPageToResults,
|
|
143
150
|
goToNextPage: goToNextPage,
|
|
144
151
|
goToPreviousPage: goToPreviousPage,
|
|
152
|
+
hasResettableFilters: hasResettableFilters,
|
|
153
|
+
resetQuery: resetQuery,
|
|
154
|
+
removeQueryFilter: removeQueryFilter,
|
|
155
|
+
removeValueFromQueryFilter: removeValueFromQueryFilter,
|
|
156
|
+
removeSelectedFacet: removeSelectedFacet,
|
|
157
|
+
removeValueFromSelectedFacet: removeValueFromSelectedFacet,
|
|
158
|
+
lockedColumn: lockedColumn,
|
|
159
|
+
getColumnModel: getColumnModel,
|
|
145
160
|
};
|
|
146
161
|
/**
|
|
147
162
|
* Render the children without any formatting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InfiniteQueryWrapper.js","sourceRoot":"","sources":["../../src/lib/containers/InfiniteQueryWrapper.tsx"],"names":[],"mappings":";;;;AAAA,mDAA8B;AAC9B,+
|
|
1
|
+
{"version":3,"file":"InfiniteQueryWrapper.js","sourceRoot":"","sources":["../../src/lib/containers/InfiniteQueryWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { SynapseClientError } from '../utils/SynapseClientError';
|
|
3
|
-
import { AsynchronousJobStatus, QueryBundleRequest, QueryResultBundle, Table } from '../utils/synapseTypes';
|
|
3
|
+
import { AsynchronousJobStatus, ColumnModel, QueryBundleRequest, QueryResultBundle, Table } from '../utils/synapseTypes';
|
|
4
|
+
import { ImmutableTableQueryResult } from './useImmutableTableQuery';
|
|
4
5
|
export declare const QUERY_FILTERS_EXPANDED_CSS: string;
|
|
5
6
|
export declare const QUERY_FILTERS_COLLAPSED_CSS: string;
|
|
6
7
|
export declare type LockedColumn = {
|
|
@@ -18,13 +19,21 @@ export declare type QueryContextType = {
|
|
|
18
19
|
getInitQueryRequest: () => QueryBundleRequest;
|
|
19
20
|
/** Updates the current query with the passed request */
|
|
20
21
|
executeQueryRequest: (param: QueryBundleRequest) => void;
|
|
21
|
-
/**
|
|
22
|
+
/** Resets the query to its initial state, clearing all filters added by the user */
|
|
23
|
+
resetQuery: ImmutableTableQueryResult['resetQuery'];
|
|
24
|
+
removeSelectedFacet: ImmutableTableQueryResult['removeSelectedFacet'];
|
|
25
|
+
removeValueFromSelectedFacet: ImmutableTableQueryResult['removeValueFromSelectedFacet'];
|
|
26
|
+
/** Removes a matching QueryFilter from the query */
|
|
27
|
+
removeQueryFilter: ImmutableTableQueryResult['removeQueryFilter'];
|
|
28
|
+
/** Removes a value from a QueryFilter. If no more values remain in the filter, the filter is also removed */
|
|
29
|
+
removeValueFromQueryFilter: ImmutableTableQueryResult['removeValueFromQueryFilter'];
|
|
30
|
+
/** Returns true when loading a brand-new query result bundle. Will not be true when just loading the next page of query results. */
|
|
22
31
|
isLoadingNewBundle: boolean;
|
|
23
32
|
/** The error returned by the query request, if one is encountered */
|
|
24
33
|
error: SynapseClientError | null;
|
|
25
34
|
/** The status of the asynchronous job. */
|
|
26
35
|
asyncJobStatus?: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>;
|
|
27
|
-
/** Whether
|
|
36
|
+
/** Whether facets are available to be filtered upon based on the current data */
|
|
28
37
|
isFacetsAvailable: boolean;
|
|
29
38
|
/**
|
|
30
39
|
* A column name may be "locked" so that it is both (1) not shown to the user that the filter is active, and (2) not modifiable by the user.
|
|
@@ -32,6 +41,9 @@ export declare type QueryContextType = {
|
|
|
32
41
|
* The presence of a locked filter will result in a client-side modification of the active query and result bundle data.
|
|
33
42
|
*/
|
|
34
43
|
lockedColumn?: LockedColumn;
|
|
44
|
+
/** Returns true iff the current request has resettable filters applied via facet filters or additionalFilters. Excludes filters applied to a locked column */
|
|
45
|
+
hasResettableFilters: boolean;
|
|
46
|
+
getColumnModel: (columnName: string) => ColumnModel | null;
|
|
35
47
|
};
|
|
36
48
|
export declare type PaginatedQueryContextType = QueryContextType & {
|
|
37
49
|
/** Navigates to a particular page, where the first page has value 1 */
|
|
@@ -46,13 +58,13 @@ export declare type PaginatedQueryContextType = QueryContextType & {
|
|
|
46
58
|
export declare type InfiniteQueryContextType = QueryContextType & {
|
|
47
59
|
/** Returns true when loading a new page of query results */
|
|
48
60
|
isLoadingNewPage: boolean;
|
|
49
|
-
/** Whether
|
|
61
|
+
/** Whether the query result bundle has a next page */
|
|
50
62
|
hasNextPage: boolean;
|
|
51
63
|
/** Invoke this method to fetch and append the next page of rows to the data */
|
|
52
64
|
appendNextPageToResults: () => Promise<void>;
|
|
53
65
|
/** Invoke to fetch and update the data with the next page of query results */
|
|
54
66
|
goToNextPage: () => Promise<void>;
|
|
55
|
-
/** Whether
|
|
67
|
+
/** Whether the query result bundle has a previous page */
|
|
56
68
|
hasPreviousPage: boolean;
|
|
57
69
|
/** Invoke to fetch and update the data with the previous page of query results */
|
|
58
70
|
goToPreviousPage: () => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryContext.js","sourceRoot":"","sources":["../../src/lib/containers/QueryContext.tsx"],"names":[],"mappings":";;;;AAAA,mDAA8B;AAC9B,+BAAiD;
|
|
1
|
+
{"version":3,"file":"QueryContext.js","sourceRoot":"","sources":["../../src/lib/containers/QueryContext.tsx"],"names":[],"mappings":";;;;AAAA,mDAA8B;AAC9B,+BAAiD;AAWpC,QAAA,0BAA0B,GAAW,uBAAuB,CAAA;AAC5D,QAAA,2BAA2B,GAAW,sBAAsB,CAAA;AA2EzE;;GAEG;AACU,QAAA,YAAY,GAAG,IAAA,qBAAa,EACvC,SAAS,CACV,CAAA;AAMD;;GAEG;AACI,IAAM,oBAAoB,GAAG,UAAC,EAGT;QAF1B,QAAQ,cAAA,EACR,YAAY,kBAAA;IAEZ,OAAO,CACL,oBAAC,oBAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,IACvC,QAAQ,CACa,CACzB,CAAA;AACH,CAAC,CAAA;AATY,QAAA,oBAAoB,wBAShC;AAED,SAAgB,eAAe;IAC7B,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,oBAAY,CAAC,CAAA;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAA;KACtE;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAND,0CAMC;AAED,SAAgB,wBAAwB;IACtC,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,oBAAY,CAAC,CAAA;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAA;KACF;IACD,uDAAuD;IACvD,OAAO,OAAoC,CAAA;AAC7C,CAAC;AATD,4DASC;AAED,SAAgB,uBAAuB;IACrC,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,oBAAY,CAAC,CAAA;IACxC,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;KACF;IACD,uDAAuD;IACvD,OAAO,OAAmC,CAAA;AAC5C,CAAC;AATD,0DASC;AAEY,QAAA,oBAAoB,GAAG,oBAAY,CAAC,QAAQ,CAAA"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Query } from '../utils/synapseTypes/';
|
|
3
3
|
export declare type QueryCountProps = {
|
|
4
|
-
|
|
5
|
-
selectedFacets?: FacetColumnValuesRequest[];
|
|
4
|
+
query: Query;
|
|
6
5
|
parens?: boolean;
|
|
7
6
|
};
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Shows the total count of results for a table query.
|
|
9
|
+
*/
|
|
10
|
+
declare function QueryCount(props: QueryCountProps): JSX.Element;
|
|
9
11
|
export default QueryCount;
|
|
@@ -5,23 +5,23 @@ var react_1 = tslib_1.__importDefault(require("react"));
|
|
|
5
5
|
var utils_1 = require("../utils/");
|
|
6
6
|
var sqlFunctions_1 = require("../utils/functions/sqlFunctions");
|
|
7
7
|
var useGetQueryResultBundle_1 = tslib_1.__importDefault(require("../utils/hooks/SynapseAPI/entity/useGetQueryResultBundle"));
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Shows the total count of results for a table query.
|
|
10
|
+
*/
|
|
11
|
+
function QueryCount(props) {
|
|
12
|
+
var _a;
|
|
13
|
+
var query = props.query, parens = props.parens;
|
|
14
|
+
var entityId = (0, sqlFunctions_1.parseEntityIdFromSqlStatement)(query.sql);
|
|
12
15
|
var request = {
|
|
13
16
|
concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',
|
|
14
|
-
query:
|
|
15
|
-
sql: sql,
|
|
16
|
-
selectedFacets: selectedFacets,
|
|
17
|
-
},
|
|
17
|
+
query: query,
|
|
18
18
|
entityId: entityId,
|
|
19
19
|
partMask: utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COUNT,
|
|
20
20
|
};
|
|
21
21
|
var queryResult = (0, useGetQueryResultBundle_1.default)(request).data;
|
|
22
|
-
var localCount = (
|
|
22
|
+
var localCount = (_a = queryResult === null || queryResult === void 0 ? void 0 : queryResult.queryCount) === null || _a === void 0 ? void 0 : _a.toLocaleString();
|
|
23
23
|
/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Using_toLocaleString */
|
|
24
24
|
return (react_1.default.createElement(react_1.default.Fragment, null, localCount && (parens ? "(".concat(localCount, ")") : localCount)));
|
|
25
|
-
}
|
|
25
|
+
}
|
|
26
26
|
exports.default = QueryCount;
|
|
27
27
|
//# sourceMappingURL=QueryCount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryCount.js","sourceRoot":"","sources":["../../src/lib/containers/QueryCount.tsx"],"names":[],"mappings":";;;AAAA,wDAAyB;AACzB,mCAA4C;AAC5C,gEAA+E;AAC/E,6HAA8F;
|
|
1
|
+
{"version":3,"file":"QueryCount.js","sourceRoot":"","sources":["../../src/lib/containers/QueryCount.tsx"],"names":[],"mappings":";;;AAAA,wDAAyB;AACzB,mCAA4C;AAC5C,gEAA+E;AAC/E,6HAA8F;AAQ9F;;GAEG;AACH,SAAS,UAAU,CAAC,KAAsB;;IAChC,IAAA,KAAK,GAAa,KAAK,MAAlB,EAAE,MAAM,GAAK,KAAK,OAAV,CAAU;IAC/B,IAAM,QAAQ,GAAG,IAAA,4CAA6B,EAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAEzD,IAAM,OAAO,GAAuB;QAClC,YAAY,EAAE,yDAAyD;QACvE,KAAK,EAAE,KAAK;QACZ,QAAQ,UAAA;QACR,QAAQ,EAAE,wBAAgB,CAAC,uBAAuB;KACnD,CAAA;IAEO,IAAM,WAAW,GAAK,IAAA,iCAAuB,EAAC,OAAO,CAAC,KAArC,CAAqC;IAE9D,IAAM,UAAU,GAAG,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,UAAU,0CAAE,cAAc,EAAE,CAAA;IAC5D,iIAAiI;IACjI,OAAO,CACL,8BAAC,eAAK,CAAC,QAAQ,QACZ,UAAU,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,WAAI,UAAU,MAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CACzC,CAClB,CAAA;AACH,CAAC;AACD,kBAAe,UAAU,CAAA"}
|
|
@@ -2,7 +2,6 @@ import React from 'react';
|
|
|
2
2
|
import { SortConfiguration } from './CardContainerLogic';
|
|
3
3
|
export declare type QuerySortSelectorProps = {
|
|
4
4
|
sortConfig: SortConfiguration;
|
|
5
|
-
facetAliases?: Record<string, string>;
|
|
6
5
|
};
|
|
7
6
|
declare const QuerySortSelector: React.FunctionComponent<QuerySortSelectorProps>;
|
|
8
7
|
export default QuerySortSelector;
|
|
@@ -3,21 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
4
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
5
5
|
var QueryContext_1 = require("./QueryContext");
|
|
6
|
-
var unCamelCase_1 = require("../utils/functions/unCamelCase");
|
|
7
6
|
var Typography_1 = tslib_1.__importDefault(require("../utils/typography/Typography"));
|
|
8
7
|
var react_select_1 = tslib_1.__importDefault(require("react-select"));
|
|
9
8
|
var CustomSelectWidget_1 = require("./entity/annotations/CustomSelectWidget");
|
|
9
|
+
var QueryVisualizationWrapper_1 = require("./QueryVisualizationWrapper");
|
|
10
10
|
var QuerySortSelector = function (_a) {
|
|
11
|
-
var sortConfig = _a.sortConfig
|
|
11
|
+
var sortConfig = _a.sortConfig;
|
|
12
12
|
var defaultColumn = sortConfig.defaultColumn, defaultDirection = sortConfig.defaultDirection, sortableColumns = sortConfig.sortableColumns;
|
|
13
13
|
var queryContext = (0, QueryContext_1.useQueryContext)();
|
|
14
14
|
var getLastQueryRequest = queryContext.getLastQueryRequest, executeQueryRequest = queryContext.executeQueryRequest;
|
|
15
|
+
var getColumnDisplayName = (0, QueryVisualizationWrapper_1.useQueryVisualizationContext)().getColumnDisplayName;
|
|
15
16
|
var _b = (0, react_1.useState)(defaultColumn), sortColumn = _b[0], setSortColumn = _b[1];
|
|
16
17
|
var _c = (0, react_1.useState)(defaultDirection), sortDirection = _c[0], setSortDirection = _c[1];
|
|
17
18
|
var enumOptions = sortableColumns.map(function (sortableColumn) {
|
|
18
19
|
return {
|
|
19
20
|
value: sortableColumn,
|
|
20
|
-
label: (
|
|
21
|
+
label: getColumnDisplayName(sortableColumn),
|
|
21
22
|
};
|
|
22
23
|
});
|
|
23
24
|
var onChange = function (value) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuerySortSelector.js","sourceRoot":"","sources":["../../src/lib/containers/QuerySortSelector.tsx"],"names":[],"mappings":";;;AAAA,qDAAuC;AAEvC,+CAAgD;AAEhD,
|
|
1
|
+
{"version":3,"file":"QuerySortSelector.js","sourceRoot":"","sources":["../../src/lib/containers/QuerySortSelector.tsx"],"names":[],"mappings":";;;AAAA,qDAAuC;AAEvC,+CAAgD;AAEhD,sFAAuD;AACvD,sEAAiC;AACjC,8EAIgD;AAChD,yEAA0E;AAM1E,IAAM,iBAAiB,GAAoD,UAAC,EAE3E;QADC,UAAU,gBAAA;IAEF,IAAA,aAAa,GAAwC,UAAU,cAAlD,EAAE,gBAAgB,GAAsB,UAAU,iBAAhC,EAAE,eAAe,GAAK,UAAU,gBAAf,CAAe;IACvE,IAAM,YAAY,GAAG,IAAA,8BAAe,GAAE,CAAA;IAC9B,IAAA,mBAAmB,GAA0B,YAAY,oBAAtC,EAAE,mBAAmB,GAAK,YAAY,oBAAjB,CAAiB;IACzD,IAAA,oBAAoB,GAAK,IAAA,wDAA4B,GAAE,qBAAnC,CAAmC;IACzD,IAAA,KAA8B,IAAA,gBAAQ,EAC1C,aAAa,CACd,EAFM,UAAU,QAAA,EAAE,aAAa,QAE/B,CAAA;IACK,IAAA,KAAoC,IAAA,gBAAQ,EAAC,gBAAgB,CAAC,EAA7D,aAAa,QAAA,EAAE,gBAAgB,QAA8B,CAAA;IAEpE,IAAM,WAAW,GAAiB,eAAe,CAAC,GAAG,CAAC,UAAA,cAAc;QAClE,OAAO;YACL,KAAK,EAAE,cAAc;YACrB,KAAK,EAAE,oBAAoB,CAAC,cAAc,CAAE;SAC7C,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,IAAM,QAAQ,GAAG,UAAC,KAAc;QAC9B,IAAM,yBAAyB,GAAG,mBAAmB,EAAE,CAAA;QACvD,IAAI,gBAAgB,GAAkB,KAAK,CAAA;QAC3C,IAAI,KAAK,KAAK,UAAU,EAAE;YACxB,sBAAsB;YACtB,gBAAgB,GAAG,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;SAC5D;QAED,IAAM,YAAY,GAA2B,KAAK;YAChD,CAAC,CAAC;gBACE;oBACE,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,gBAAgB;iBAC5B;aACF;YACH,CAAC,CAAC,SAAS,CAAA;QACb,yBAAyB,CAAC,KAAK,CAAC,IAAI,GAAG,YAAY,CAAA;QACnD,mBAAmB,CAAC,yBAAyB,CAAC,CAAA;QAC9C,aAAa,CAAC,KAAK,CAAC,CAAA;QACpB,gBAAgB,CAAC,gBAAgB,CAAC,CAAA;IACpC,CAAC,CAAA;IAED,OAAO,CACL,uCAAK,SAAS,EAAC,wCAAwC;QACrD,8BAAC,oBAAU,IAAC,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,+BAA+B,cAExD;QACb,8BAAC,sBAAM,IACL,SAAS,EAAC,wCAAwC,EAClD,KAAK,EAAE,IAAA,oCAAe,EAAC,UAAU,EAAE,WAAW,CAAC,EAC/C,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,UAAA,MAAM,IAAI,OAAA,QAAQ,CAAE,MAA4B,aAA5B,MAAM,uBAAN,MAAM,CAAwB,KAAK,CAAC,EAA9C,CAA8C,EAClE,UAAU,EAAE,EAAE,OAAO,8BAAA,EAAE,EACvB,MAAM,EAAE;gBACN,OAAO,EAAE,UAAA,QAAQ,IAAI,OAAA,uCAChB,QAAQ,KACX,UAAU,EAAE,MAAM,IAClB,EAHmB,CAGnB;aACH,GACD,CACE,CACP,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,iBAAiB,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { NoContentPlaceholderType } from './table/NoContentPlaceholderType';
|
|
3
|
+
import { ColumnType } from '../utils/synapseTypes';
|
|
2
4
|
export declare type QueryVisualizationContextType = {
|
|
3
5
|
topLevelControlsState: TopLevelControlsState;
|
|
4
6
|
setTopLevelControlsState: React.Dispatch<React.SetStateAction<TopLevelControlsState>>;
|
|
@@ -6,11 +8,16 @@ export declare type QueryVisualizationContextType = {
|
|
|
6
8
|
setColumnsToShowInTable: (newState: string[]) => void;
|
|
7
9
|
selectedRowIndices: number[];
|
|
8
10
|
setSelectedRowIndices: (newState: number[]) => void;
|
|
9
|
-
facetAliases?: Record<string, string>;
|
|
10
11
|
rgbIndex?: number;
|
|
11
12
|
unitDescription?: string;
|
|
12
13
|
/** Whether to show when the table or view was last updated. */
|
|
13
14
|
showLastUpdatedOn?: boolean;
|
|
15
|
+
/** Given a column name, return the display name for the column */
|
|
16
|
+
getColumnDisplayName: (columnName?: string) => string | undefined;
|
|
17
|
+
/** Given a cell value and a column type, returns the displayed value for the data */
|
|
18
|
+
getDisplayValue: (value: string, columnType: ColumnType) => string;
|
|
19
|
+
/** React node to display in place of cards/table when there are no results. */
|
|
20
|
+
NoContentPlaceholder: () => JSX.Element;
|
|
14
21
|
};
|
|
15
22
|
/**
|
|
16
23
|
* This must be exported to use the context in class components.
|
|
@@ -29,12 +36,15 @@ export declare type QueryVisualizationWrapperProps = {
|
|
|
29
36
|
children: React.ReactNode | React.ReactNode[];
|
|
30
37
|
rgbIndex?: number;
|
|
31
38
|
unitDescription?: string;
|
|
32
|
-
|
|
39
|
+
/** Mapping from column name to the name that should be shown for the column */
|
|
40
|
+
columnAliases?: Record<string, string>;
|
|
33
41
|
visibleColumnCount?: number;
|
|
34
42
|
hiddenColumns?: string[];
|
|
35
43
|
defaultShowFacetVisualization?: boolean;
|
|
36
44
|
defaultShowSearchBar?: boolean;
|
|
37
45
|
showLastUpdatedOn?: boolean;
|
|
46
|
+
/** Default is INTERACTIVE */
|
|
47
|
+
noContentPlaceholderType?: NoContentPlaceholderType;
|
|
38
48
|
};
|
|
39
49
|
export declare type TopLevelControlsState = {
|
|
40
50
|
showFacetVisualization: boolean;
|
|
@@ -5,6 +5,12 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
6
|
var use_deep_compare_effect_1 = require("use-deep-compare-effect");
|
|
7
7
|
var QueryContext_1 = require("./QueryContext");
|
|
8
|
+
var NoContentAvailable_1 = tslib_1.__importDefault(require("./table/NoContentAvailable"));
|
|
9
|
+
var NoContentPlaceholderType_1 = require("./table/NoContentPlaceholderType");
|
|
10
|
+
var SearchResultsNotFound_1 = tslib_1.__importDefault(require("./table/SearchResultsNotFound"));
|
|
11
|
+
var TableIsEmpty_1 = tslib_1.__importDefault(require("./table/TableIsEmpty"));
|
|
12
|
+
var unCamelCase_1 = require("../utils/functions/unCamelCase");
|
|
13
|
+
var getDataFromFromStorage_1 = require("../utils/functions/getDataFromFromStorage");
|
|
8
14
|
/**
|
|
9
15
|
* This must be exported to use the context in class components.
|
|
10
16
|
*/
|
|
@@ -32,8 +38,10 @@ exports.QueryVisualizationContextConsumer = exports.QueryVisualizationContext.Co
|
|
|
32
38
|
*/
|
|
33
39
|
function QueryVisualizationWrapper(props) {
|
|
34
40
|
var _a, _b;
|
|
35
|
-
var _c =
|
|
36
|
-
var _d = (0,
|
|
41
|
+
var _c = props.noContentPlaceholderType, noContentPlaceholderType = _c === void 0 ? NoContentPlaceholderType_1.NoContentPlaceholderType.INTERACTIVE : _c;
|
|
42
|
+
var _d = (0, QueryContext_1.useQueryContext)(), data = _d.data, getLastQueryRequest = _d.getLastQueryRequest, isFacetsAvailable = _d.isFacetsAvailable, isLoadingNewBundle = _d.isLoadingNewBundle, hasResettableFilters = _d.hasResettableFilters;
|
|
43
|
+
var _e = props.columnAliases, columnAliases = _e === void 0 ? {} : _e;
|
|
44
|
+
var _f = (0, react_1.useState)({
|
|
37
45
|
showColumnFilter: true,
|
|
38
46
|
showFacetFilter: true,
|
|
39
47
|
showFacetVisualization: (_a = props.defaultShowFacetVisualization) !== null && _a !== void 0 ? _a : true,
|
|
@@ -41,7 +49,7 @@ function QueryVisualizationWrapper(props) {
|
|
|
41
49
|
showDownloadConfirmation: false,
|
|
42
50
|
showColumnSelectDropdown: false,
|
|
43
51
|
showSqlEditor: false,
|
|
44
|
-
}), topLevelControlsState =
|
|
52
|
+
}), topLevelControlsState = _f[0], setTopLevelControlsState = _f[1];
|
|
45
53
|
(0, react_1.useEffect)(function () {
|
|
46
54
|
if (!isFacetsAvailable) {
|
|
47
55
|
setTopLevelControlsState(function (state) { return (tslib_1.__assign(tslib_1.__assign({}, state), { showFacetFilter: false, showFacetVisualization: false })); });
|
|
@@ -52,8 +60,8 @@ function QueryVisualizationWrapper(props) {
|
|
|
52
60
|
setSelectedRowIndices([]);
|
|
53
61
|
}
|
|
54
62
|
}, [isLoadingNewBundle]);
|
|
55
|
-
var
|
|
56
|
-
var
|
|
63
|
+
var _g = (0, react_1.useState)([]), visibleColumns = _g[0], setVisibleColumns = _g[1];
|
|
64
|
+
var _h = (0, react_1.useState)([]), selectedRowIndices = _h[0], setSelectedRowIndices = _h[1];
|
|
57
65
|
var lastQueryRequest = getLastQueryRequest();
|
|
58
66
|
// We deep-compare-memoize the selectColumns so we don't reset visible columns when the reference changes, but not the contents (e.g. on page change)
|
|
59
67
|
var selectColumns = (0, use_deep_compare_effect_1.useDeepCompareMemoize)(data === null || data === void 0 ? void 0 : data.selectColumns);
|
|
@@ -62,6 +70,31 @@ function QueryVisualizationWrapper(props) {
|
|
|
62
70
|
// SWC-6030: If sql changes, reset what columns are visible
|
|
63
71
|
setVisibleColumns((_b = selectColumns === null || selectColumns === void 0 ? void 0 : selectColumns.slice(0, (_a = props.visibleColumnCount) !== null && _a !== void 0 ? _a : Infinity).map(function (el) { return el.name; })) !== null && _b !== void 0 ? _b : []);
|
|
64
72
|
}, [selectColumns, lastQueryRequest.query.sql, props.visibleColumnCount]);
|
|
73
|
+
var getColumnDisplayName = (0, react_1.useCallback)(function (columnName) {
|
|
74
|
+
// SWC-5982: if force-display-original-column-names is set, then just return the string
|
|
75
|
+
var forceDisplayOriginalColumnName = localStorage.getItem('force-display-original-column-names') === 'true';
|
|
76
|
+
if (!columnName || forceDisplayOriginalColumnName) {
|
|
77
|
+
return columnName;
|
|
78
|
+
}
|
|
79
|
+
if (columnAliases[columnName]) {
|
|
80
|
+
return columnAliases[columnName];
|
|
81
|
+
}
|
|
82
|
+
return (0, unCamelCase_1.unCamelCase)(columnName);
|
|
83
|
+
}, [columnAliases]);
|
|
84
|
+
var NoContentPlaceholder = (0, react_1.useCallback)(function () {
|
|
85
|
+
switch (noContentPlaceholderType) {
|
|
86
|
+
case NoContentPlaceholderType_1.NoContentPlaceholderType.INTERACTIVE:
|
|
87
|
+
if (hasResettableFilters) {
|
|
88
|
+
return react_1.default.createElement(SearchResultsNotFound_1.default, null);
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
return react_1.default.createElement(TableIsEmpty_1.default, null);
|
|
92
|
+
}
|
|
93
|
+
case NoContentPlaceholderType_1.NoContentPlaceholderType.STATIC:
|
|
94
|
+
default:
|
|
95
|
+
return react_1.default.createElement(NoContentAvailable_1.default, null);
|
|
96
|
+
}
|
|
97
|
+
}, [noContentPlaceholderType, hasResettableFilters]);
|
|
65
98
|
var context = {
|
|
66
99
|
topLevelControlsState: topLevelControlsState,
|
|
67
100
|
setTopLevelControlsState: setTopLevelControlsState,
|
|
@@ -69,10 +102,12 @@ function QueryVisualizationWrapper(props) {
|
|
|
69
102
|
setColumnsToShowInTable: setVisibleColumns,
|
|
70
103
|
selectedRowIndices: selectedRowIndices,
|
|
71
104
|
setSelectedRowIndices: setSelectedRowIndices,
|
|
72
|
-
facetAliases: props.facetAliases,
|
|
73
105
|
rgbIndex: props.rgbIndex,
|
|
74
106
|
unitDescription: props.unitDescription,
|
|
75
107
|
showLastUpdatedOn: props.showLastUpdatedOn,
|
|
108
|
+
getColumnDisplayName: getColumnDisplayName,
|
|
109
|
+
getDisplayValue: getDataFromFromStorage_1.getDisplayValue,
|
|
110
|
+
NoContentPlaceholder: NoContentPlaceholder,
|
|
76
111
|
};
|
|
77
112
|
/**
|
|
78
113
|
* Render the children without any formatting
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryVisualizationWrapper.js","sourceRoot":"","sources":["../../src/lib/containers/QueryVisualizationWrapper.tsx"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"QueryVisualizationWrapper.js","sourceRoot":"","sources":["../../src/lib/containers/QueryVisualizationWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { QueryBundleRequest } from '../utils/synapseTypes';
|
|
3
3
|
import { LockedColumn } from './QueryContext';
|
|
4
4
|
export declare const QUERY_FILTERS_EXPANDED_CSS: string;
|
|
@@ -12,10 +12,6 @@ export declare type QueryWrapperProps = {
|
|
|
12
12
|
onQueryResultBundleChange?: (newQueryResultBundleJson: string) => void;
|
|
13
13
|
lockedColumn?: LockedColumn;
|
|
14
14
|
};
|
|
15
|
-
export declare type SearchQuery = {
|
|
16
|
-
columnName: string;
|
|
17
|
-
searchText: string;
|
|
18
|
-
};
|
|
19
15
|
/**
|
|
20
16
|
* Component that manages the state of a Synapse table query. Data can be accessed via QueryContext using
|
|
21
17
|
* either `useQueryContext` or `QueryContextConsumer`.
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.QueryWrapper = exports.QUERY_FILTERS_COLLAPSED_CSS = exports.QUERY_FILTERS_EXPANDED_CSS = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var react_2 = require("react");
|
|
7
7
|
var use_deep_compare_effect_1 = require("use-deep-compare-effect");
|
|
8
8
|
var queryUtils_1 = require("../utils/functions/queryUtils");
|
|
9
|
-
var
|
|
10
|
-
var useGetQueryResultBundle_1 = require("../utils/hooks/SynapseAPI/entity/useGetQueryResultBundle");
|
|
9
|
+
var SynapseAPI_1 = require("../utils/hooks/SynapseAPI");
|
|
11
10
|
var QueryContext_1 = require("./QueryContext");
|
|
12
11
|
var useImmutableTableQuery_1 = tslib_1.__importDefault(require("./useImmutableTableQuery"));
|
|
13
12
|
exports.QUERY_FILTERS_EXPANDED_CSS = 'isShowingFacetFilters';
|
|
@@ -18,24 +17,24 @@ exports.QUERY_FILTERS_COLLAPSED_CSS = 'isHidingFacetFilters';
|
|
|
18
17
|
*/
|
|
19
18
|
function QueryWrapper(props) {
|
|
20
19
|
var initQueryRequest = props.initQueryRequest, onQueryChange = props.onQueryChange, onQueryResultBundleChange = props.onQueryResultBundleChange, lockedColumn = props.lockedColumn, componentIndex = props.componentIndex, shouldDeepLink = props.shouldDeepLink;
|
|
21
|
-
var _a = (0,
|
|
20
|
+
var _a = (0, react_2.useState)(undefined), currentAsyncStatus = _a[0], setCurrentAsyncStatus = _a[1];
|
|
22
21
|
var _b = (0, useImmutableTableQuery_1.default)({
|
|
23
22
|
initQueryRequest: initQueryRequest,
|
|
24
23
|
shouldDeepLink: shouldDeepLink,
|
|
25
24
|
componentIndex: componentIndex,
|
|
26
25
|
onQueryChange: onQueryChange,
|
|
27
|
-
}), entityId = _b.entityId, versionNumber = _b.versionNumber, getInitQueryRequest = _b.getInitQueryRequest, getLastQueryRequest = _b.getLastQueryRequest, setQuery = _b.setQuery, currentPage = _b.currentPage, pageSize = _b.pageSize, goToPage = _b.goToPage, setPageSize = _b.setPageSize;
|
|
28
|
-
var lastQueryRequest = (0,
|
|
26
|
+
}), entityId = _b.entityId, versionNumber = _b.versionNumber, getInitQueryRequest = _b.getInitQueryRequest, getLastQueryRequest = _b.getLastQueryRequest, setQuery = _b.setQuery, currentPage = _b.currentPage, pageSize = _b.pageSize, goToPage = _b.goToPage, setPageSize = _b.setPageSize, resetQuery = _b.resetQuery, removeSelectedFacet = _b.removeSelectedFacet, removeValueFromSelectedFacet = _b.removeValueFromSelectedFacet, removeQueryFilter = _b.removeQueryFilter, removeValueFromQueryFilter = _b.removeValueFromQueryFilter;
|
|
27
|
+
var lastQueryRequest = (0, react_2.useMemo)(function () {
|
|
29
28
|
return getLastQueryRequest();
|
|
30
29
|
}, [getLastQueryRequest]);
|
|
31
|
-
var _c = (0,
|
|
30
|
+
var _c = (0, SynapseAPI_1.useGetQueryResultBundleWithAsyncStatus)(lastQueryRequest, {
|
|
32
31
|
// We use `keepPreviousData` because we don't want to clear out the current data when the query is modified via the UI
|
|
33
32
|
keepPreviousData: true,
|
|
34
33
|
}, setCurrentAsyncStatus), asyncJobStatus = _c.data, queryIsLoading = _c.isLoading, error = _c.error, newQueryIsFetching = _c.isPreviousData;
|
|
35
34
|
var data = asyncJobStatus === null || asyncJobStatus === void 0 ? void 0 : asyncJobStatus.responseBody;
|
|
36
|
-
// Indicate if we're fetching data for the first time (queryIsLoading) or if we're fetching data for a brand
|
|
35
|
+
// Indicate if we're fetching data for the first time (queryIsLoading) or if we're fetching data for a brand-new query (newQueryIsFetching)
|
|
37
36
|
var isLoadingNewBundle = queryIsLoading || newQueryIsFetching;
|
|
38
|
-
var entity = (0,
|
|
37
|
+
var entity = (0, SynapseAPI_1.useGetEntity)(entityId, versionNumber).data;
|
|
39
38
|
// data is sometimes undefined, which useDeepCompareEffect doesn't like, so use useDeepCompareEffectNoCheck instead
|
|
40
39
|
(0, use_deep_compare_effect_1.useDeepCompareEffectNoCheck)(function () {
|
|
41
40
|
if (data && onQueryResultBundleChange) {
|
|
@@ -46,13 +45,21 @@ function QueryWrapper(props) {
|
|
|
46
45
|
? (0, queryUtils_1.isFacetAvailable)(data.facets, data.selectColumns)
|
|
47
46
|
: true;
|
|
48
47
|
/**
|
|
49
|
-
*
|
|
48
|
+
* Remove a particular facet name (e.g. study) and all possible values based on the parameter specified in the url
|
|
50
49
|
* this is to remove the facet from the charts, search and filter.
|
|
51
50
|
* @return data: QueryResultBundle
|
|
52
51
|
*/
|
|
53
|
-
var dataWithLockedColumnFacetRemoved = (0,
|
|
52
|
+
var dataWithLockedColumnFacetRemoved = (0, react_2.useMemo)(function () {
|
|
54
53
|
return (0, queryUtils_1.removeLockedColumnFromFacetData)(data, lockedColumn);
|
|
55
54
|
}, [data, lockedColumn]);
|
|
55
|
+
var hasResettableFilters = (0, react_2.useMemo)(function () {
|
|
56
|
+
var request = getLastQueryRequest();
|
|
57
|
+
return (0, queryUtils_1.hasResettableFilters)(request.query, lockedColumn);
|
|
58
|
+
}, [getLastQueryRequest, lockedColumn]);
|
|
59
|
+
var getColumnModel = (0, react_1.useCallback)(function (columnName) {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
return (_b = (_a = data === null || data === void 0 ? void 0 : data.columnModels) === null || _a === void 0 ? void 0 : _a.find(function (cm) { return cm.name === columnName; })) !== null && _b !== void 0 ? _b : null;
|
|
62
|
+
}, [data === null || data === void 0 ? void 0 : data.columnModels]);
|
|
56
63
|
var context = {
|
|
57
64
|
data: dataWithLockedColumnFacetRemoved,
|
|
58
65
|
currentPage: currentPage,
|
|
@@ -67,14 +74,22 @@ function QueryWrapper(props) {
|
|
|
67
74
|
isFacetsAvailable: isFacetsAvailable,
|
|
68
75
|
asyncJobStatus: currentAsyncStatus,
|
|
69
76
|
goToPage: goToPage,
|
|
77
|
+
hasResettableFilters: hasResettableFilters,
|
|
78
|
+
removeSelectedFacet: removeSelectedFacet,
|
|
79
|
+
removeValueFromSelectedFacet: removeValueFromSelectedFacet,
|
|
80
|
+
resetQuery: resetQuery,
|
|
81
|
+
removeQueryFilter: removeQueryFilter,
|
|
82
|
+
removeValueFromQueryFilter: removeValueFromQueryFilter,
|
|
83
|
+
lockedColumn: lockedColumn,
|
|
84
|
+
getColumnModel: getColumnModel,
|
|
70
85
|
};
|
|
71
86
|
/**
|
|
72
87
|
* Render the children without any formatting
|
|
73
88
|
*/
|
|
74
89
|
var children = props.children;
|
|
75
90
|
var loadingCursorClass = isLoadingNewBundle ? 'SRC-logo-cursor' : '';
|
|
76
|
-
return (
|
|
77
|
-
|
|
91
|
+
return (react_1.default.createElement(QueryContext_1.QueryContextProvider, { queryContext: context },
|
|
92
|
+
react_1.default.createElement("div", { className: "SRC-wrapper ".concat(loadingCursorClass, " ").concat(isFacetsAvailable ? 'has-facets' : '') }, children)));
|
|
78
93
|
}
|
|
79
94
|
exports.QueryWrapper = QueryWrapper;
|
|
80
95
|
//# sourceMappingURL=QueryWrapper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryWrapper.js","sourceRoot":"","sources":["../../src/lib/containers/QueryWrapper.tsx"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"QueryWrapper.js","sourceRoot":"","sources":["../../src/lib/containers/QueryWrapper.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ var tslib_1 = require("tslib");
|
|
|
4
4
|
var core_1 = require("@material-ui/core");
|
|
5
5
|
var react_1 = tslib_1.__importDefault(require("react"));
|
|
6
6
|
var react_transition_group_1 = require("react-transition-group");
|
|
7
|
-
var unCamelCase_1 = require("../utils/functions/unCamelCase");
|
|
8
7
|
var synapseTypes_1 = require("../utils/synapseTypes");
|
|
9
8
|
var QueryFilter_1 = require("../utils/synapseTypes/Table/QueryFilter");
|
|
10
9
|
var QueryWrapper_1 = require("./QueryWrapper");
|
|
@@ -153,7 +152,7 @@ var Search = /** @class */ (function (_super) {
|
|
|
153
152
|
Search.prototype.render = function () {
|
|
154
153
|
var _this = this;
|
|
155
154
|
var _a;
|
|
156
|
-
var _b = this.props, searchable = _b.searchable, lockedColumn = _b.lockedColumn, data = _b.queryContext.data, _c = _b.queryVisualizationContext, topLevelControlsState = _c.topLevelControlsState,
|
|
155
|
+
var _b = this.props, searchable = _b.searchable, lockedColumn = _b.lockedColumn, data = _b.queryContext.data, _c = _b.queryVisualizationContext, topLevelControlsState = _c.topLevelControlsState, getColumnDisplayName = _c.getColumnDisplayName;
|
|
157
156
|
var _d = this.state, searchText = _d.searchText, show = _d.show, columnName = _d.columnName;
|
|
158
157
|
var searchColumns = [];
|
|
159
158
|
// searchable specifies the order of the columns to search
|
|
@@ -197,7 +196,7 @@ var Search = /** @class */ (function (_super) {
|
|
|
197
196
|
react_1.default.createElement("p", { className: "deemphasized" },
|
|
198
197
|
react_1.default.createElement("i", null, " Search In Field: ")),
|
|
199
198
|
searchColumns.map(function (name, index) {
|
|
200
|
-
var displayName = (
|
|
199
|
+
var displayName = getColumnDisplayName(name);
|
|
201
200
|
var isSelected = (columnName === '' && index === 0) || columnName === name;
|
|
202
201
|
return (react_1.default.createElement("div", { className: "radio", key: "search-field-".concat(name, "-").concat(index) },
|
|
203
202
|
react_1.default.createElement("label", null,
|