synapse-react-client 2.1.23 → 3.0.2
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/EntityLink.js +2 -2
- package/dist/containers/EntityLink.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/HasAccess.js +3 -2
- package/dist/containers/HasAccess.js.map +1 -1
- package/dist/containers/MarkdownPopover.js +1 -1
- package/dist/containers/MarkdownPopover.js.map +1 -1
- package/dist/containers/MissingQueryResultsWarning.d.ts +12 -0
- package/dist/containers/MissingQueryResultsWarning.js +64 -0
- package/dist/containers/MissingQueryResultsWarning.js.map +1 -0
- package/dist/containers/QueryCount.js +16 -44
- 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 +188 -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 +4 -4
- package/dist/containers/download_list/DownloadConfirmation.js +15 -17
- 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 +31 -44
- 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/table/table-top/ProgrammaticTableDownload.js +15 -8
- package/dist/containers/table/table-top/ProgrammaticTableDownload.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/style/base/_icons.scss +4 -0
- package/dist/style/components/_dataset-editor.scss +6 -0
- package/dist/style/components/_markdown.scss +1 -1
- package/dist/style/components/entity_finder/_details-view.scss +6 -6
- package/dist/style/components/entity_finder/_entity-finder.scss +3 -7
- package/dist/style/components/entity_finder/_tree-node-browse.scss +1 -3
- package/dist/style/components/entity_finder/_tree-node-select.scss +0 -4
- package/dist/style/components/query_filter/_enum-facet-filter.scss +4 -1
- package/dist/style/main.css +887 -19
- package/dist/template_style/_form.scss +150 -105
- package/dist/umd/synapse-react-client.development.css +805 -19
- package/dist/umd/synapse-react-client.development.css.map +2 -2
- package/dist/umd/synapse-react-client.development.js +3792 -3581
- 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 +89 -89
- package/dist/utils/APIConstants.d.ts +3 -0
- package/dist/utils/APIConstants.js +12 -2
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/SynapseClient.d.ts +47 -20
- package/dist/utils/SynapseClient.js +278 -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.d.ts +4 -0
- package/dist/utils/functions/sqlFunctions.js +14 -2
- 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/Entity/Entity.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 +46 -39
- 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
|
@@ -44,7 +44,7 @@ var MarkdownPopover = function (_a) {
|
|
|
44
44
|
showCloseButton && (react_1.default.createElement(react_bootstrap_1.Button, { variant: "light", className: "pill", onClick: function () { return setShow(false); } }, "Close"))),
|
|
45
45
|
react_1.default.createElement("div", { className: "arrow", "data-popper-arrow": true, ref: setArrowElement, style: styles.arrow }))));
|
|
46
46
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
47
|
-
react_1.default.createElement("span", { className: "PopoverContainer bootstrap-4-backport", onClick: function () { return setShow(function (val) { return !val; }); }, ref: setReferenceElement }, children),
|
|
47
|
+
react_1.default.createElement("span", { role: "button", className: "PopoverContainer bootstrap-4-backport", onClick: function () { return setShow(function (val) { return !val; }); }, ref: setReferenceElement }, children),
|
|
48
48
|
popover));
|
|
49
49
|
};
|
|
50
50
|
exports.MarkdownPopover = MarkdownPopover;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownPopover.js","sourceRoot":"","sources":["../../src/lib/containers/MarkdownPopover.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"MarkdownPopover.js","sourceRoot":"","sources":["../../src/lib/containers/MarkdownPopover.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Table } from '../utils/synapseTypes/';
|
|
3
|
+
export declare type MissingQueryResultsWarningProps = {
|
|
4
|
+
entity: Table;
|
|
5
|
+
versionNumber?: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* If possible, this component will render a warning message if results may be missing from the query due to user permissions or
|
|
9
|
+
* entities being deleted. If not possible, it will render an empty fragment.
|
|
10
|
+
*/
|
|
11
|
+
declare const MissingQueryResultsWarning: React.FunctionComponent<MissingQueryResultsWarningProps>;
|
|
12
|
+
export default MissingQueryResultsWarning;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var icons_1 = require("@material-ui/icons");
|
|
5
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
6
|
+
var utils_1 = require("../utils/");
|
|
7
|
+
var EntityTypeUtils_1 = require("../utils/functions/EntityTypeUtils");
|
|
8
|
+
var useGetQueryResultBundle_1 = (0, tslib_1.__importDefault)(require("../utils/hooks/SynapseAPI/useGetQueryResultBundle"));
|
|
9
|
+
var Typography_1 = (0, tslib_1.__importDefault)(require("../utils/typography/Typography"));
|
|
10
|
+
var HelpPopover_1 = require("./HelpPopover");
|
|
11
|
+
var DATASETS_CURRENT_VERSION_HELP = 'Files may be unavailable because you do not have permission to see them, they have been deleted, or the Dataset has been misconfigured.';
|
|
12
|
+
// Help text for snapshot does not indicate that files were deleted, because the deleted file would have been captured in the snapshot
|
|
13
|
+
var DATASETS_SNAPSHOT_HELP = 'Files may be unavailable because you do not have permission to see them or the Dataset was misconfigured.';
|
|
14
|
+
/**
|
|
15
|
+
* If possible, this component will render a warning message if results may be missing from the query due to user permissions or
|
|
16
|
+
* entities being deleted. If not possible, it will render an empty fragment.
|
|
17
|
+
*/
|
|
18
|
+
var MissingQueryResultsWarning = function (_a) {
|
|
19
|
+
var _b, _c;
|
|
20
|
+
var entity = _a.entity;
|
|
21
|
+
// Currently, Datasets are the only table type for which we can reliably get this info.
|
|
22
|
+
// Other cases will need a new service, tracked by PLFM-7046
|
|
23
|
+
var isMissingResultsCalculable = entity && (0, EntityTypeUtils_1.isDataset)(entity);
|
|
24
|
+
var request = {
|
|
25
|
+
concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',
|
|
26
|
+
query: {
|
|
27
|
+
sql: "SELECT * FROM " + entity.id + (!entity.isLatestVersion && entity.versionNumber
|
|
28
|
+
? "." + entity.versionNumber
|
|
29
|
+
: ''),
|
|
30
|
+
},
|
|
31
|
+
entityId: entity.id,
|
|
32
|
+
partMask: utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COUNT,
|
|
33
|
+
};
|
|
34
|
+
var queryResult = (0, useGetQueryResultBundle_1.default)(request, {
|
|
35
|
+
enabled: isMissingResultsCalculable,
|
|
36
|
+
}).data;
|
|
37
|
+
if (isMissingResultsCalculable && queryResult && entity) {
|
|
38
|
+
var totalVisibleResults = queryResult.queryCount;
|
|
39
|
+
var totalResults = (_c = (_b = entity.items) === null || _b === void 0 ? void 0 : _b.length) !== null && _c !== void 0 ? _c : 0;
|
|
40
|
+
if (totalVisibleResults === totalResults) {
|
|
41
|
+
// All of the results are visible, so there is no need to show a warning.
|
|
42
|
+
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
43
|
+
}
|
|
44
|
+
var difference = totalResults - totalVisibleResults;
|
|
45
|
+
var helpMessage = '';
|
|
46
|
+
if (entity.isLatestVersion) {
|
|
47
|
+
helpMessage = DATASETS_CURRENT_VERSION_HELP;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
helpMessage = DATASETS_SNAPSHOT_HELP;
|
|
51
|
+
}
|
|
52
|
+
return (react_1.default.createElement(Typography_1.default, { className: "SRC-centerContent", style: {
|
|
53
|
+
marginLeft: 10,
|
|
54
|
+
}, variant: "smallText1", color: "textSecondary" },
|
|
55
|
+
react_1.default.createElement(icons_1.WarningSharp, { className: "SRC-color-warning", style: { fontSize: '16px' } }),
|
|
56
|
+
difference.toLocaleString() + ' Unavailable',
|
|
57
|
+
react_1.default.createElement(HelpPopover_1.HelpPopover, { className: "SRC-margin-left-5", markdownText: helpMessage, placement: "right" })));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return react_1.default.createElement(react_1.default.Fragment, null);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
exports.default = MissingQueryResultsWarning;
|
|
64
|
+
//# sourceMappingURL=MissingQueryResultsWarning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MissingQueryResultsWarning.js","sourceRoot":"","sources":["../../src/lib/containers/MissingQueryResultsWarning.tsx"],"names":[],"mappings":";;;AAAA,4CAAiD;AACjD,6DAAyB;AACzB,mCAA4C;AAC5C,sEAA8D;AAC9D,2HAAuF;AAEvF,2FAAuD;AACvD,6CAA2C;AAE3C,IAAM,6BAA6B,GACjC,yIAAyI,CAAA;AAE3I,sIAAsI;AACtI,IAAM,sBAAsB,GAC1B,2GAA2G,CAAA;AAO7G;;;GAGG;AACH,IAAM,0BAA0B,GAC9B,UAAC,EAAU;;QAAR,MAAM,YAAA;IACP,uFAAuF;IACvF,4DAA4D;IAC5D,IAAM,0BAA0B,GAAG,MAAM,IAAI,IAAA,2BAAS,EAAC,MAAM,CAAC,CAAA;IAE9D,IAAM,OAAO,GAAuB;QAClC,YAAY,EAAE,yDAAyD;QACvE,KAAK,EAAE;YACL,GAAG,EAAE,mBAAiB,MAAM,CAAC,EAAG,IAC9B,CAAC,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,aAAa;gBAC7C,CAAC,CAAC,MAAI,MAAM,CAAC,aAAe;gBAC5B,CAAC,CAAC,EAAE,CACN;SACH;QACD,QAAQ,EAAE,MAAM,CAAC,EAAG;QACpB,QAAQ,EAAE,wBAAgB,CAAC,uBAAuB;KACnD,CAAA;IAEO,IAAM,WAAW,GAAK,IAAA,iCAAuB,EAAC,OAAO,EAAE;QAC7D,OAAO,EAAE,0BAA0B;KACpC,CAAC,KAFuB,CAEvB;IACF,IAAI,0BAA0B,IAAI,WAAW,IAAI,MAAM,EAAE;QACvD,IAAM,mBAAmB,GAAG,WAAW,CAAC,UAAW,CAAA;QACnD,IAAM,YAAY,GAAG,MAAA,MAAA,MAAM,CAAC,KAAK,0CAAE,MAAM,mCAAI,CAAC,CAAA;QAE9C,IAAI,mBAAmB,KAAK,YAAY,EAAE;YACxC,yEAAyE;YACzE,OAAO,6DAAK,CAAA;SACb;QAED,IAAM,UAAU,GAAG,YAAY,GAAG,mBAAmB,CAAA;QAErD,IAAI,WAAW,GAAG,EAAE,CAAA;QAEpB,IAAI,MAAM,CAAC,eAAe,EAAE;YAC1B,WAAW,GAAG,6BAA6B,CAAA;SAC5C;aAAM;YACL,WAAW,GAAG,sBAAsB,CAAA;SACrC;QAED,OAAO,CACL,8BAAC,oBAAU,IACT,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE;gBACL,UAAU,EAAE,EAAE;aACf,EACD,OAAO,EAAC,YAAY,EACpB,KAAK,EAAC,eAAe;YAErB,8BAAC,oBAAY,IACX,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAC3B;YACD,UAAU,CAAC,cAAc,EAAE,GAAG,cAAc;YAC7C,8BAAC,yBAAW,IACV,SAAS,EAAC,mBAAmB,EAC7B,YAAY,EAAE,WAAW,EACzB,SAAS,EAAC,OAAO,GACJ,CACJ,CACd,CAAA;KACF;SAAM;QACL,OAAO,6DAAK,CAAA;KACb;AACH,CAAC,CAAA;AAEH,kBAAe,0BAA0B,CAAA"}
|
|
@@ -1,55 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
|
+
var react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
4
5
|
var utils_1 = require("../utils/");
|
|
5
|
-
var react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
6
6
|
var sqlFunctions_1 = require("../utils/functions/sqlFunctions");
|
|
7
|
-
var
|
|
7
|
+
var useGetQueryResultBundle_1 = (0, tslib_1.__importDefault)(require("../utils/hooks/SynapseAPI/useGetQueryResultBundle"));
|
|
8
8
|
var QueryCount = function (_a) {
|
|
9
|
+
var _b;
|
|
9
10
|
var sql = _a.sql, selectedFacets = _a.selectedFacets, parens = _a.parens;
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// its either in progress or its already been calculated
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
var request = {
|
|
26
|
-
concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',
|
|
27
|
-
query: {
|
|
28
|
-
sql: sql,
|
|
29
|
-
selectedFacets: selectedFacets,
|
|
30
|
-
},
|
|
31
|
-
entityId: entityId,
|
|
32
|
-
partMask: utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COUNT,
|
|
33
|
-
};
|
|
34
|
-
var newIsCalculatingQueryCountForSql = (0, tslib_1.__assign)({}, isCalculatingQueryCountForSql);
|
|
35
|
-
newIsCalculatingQueryCountForSql[sql + "-" + accessToken] = true;
|
|
36
|
-
setIsCalculatingQueryCountForSql(newIsCalculatingQueryCountForSql);
|
|
37
|
-
utils_1.SynapseClient.getQueryTableResults(request, accessToken).then(function (data) {
|
|
38
|
-
var newStoredSqlQueryCount = (0, tslib_1.__assign)({}, storedSqlQueryCount);
|
|
39
|
-
newStoredSqlQueryCount[sql + "-" + accessToken] = data.queryCount;
|
|
40
|
-
setStoredSqlQueryCount(newStoredSqlQueryCount);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
calculateRowCount();
|
|
45
|
-
return function () {
|
|
46
|
-
mounted = false;
|
|
47
|
-
};
|
|
48
|
-
}, [sql, selectedFacets, accessToken]);
|
|
49
|
-
var count = storedSqlQueryCount[sql + "-" + accessToken];
|
|
50
|
-
var localCount = count === null || count === void 0 ? void 0 : count.toLocaleString();
|
|
11
|
+
var entityId = (0, sqlFunctions_1.parseEntityIdFromSqlStatement)(sql);
|
|
12
|
+
var request = {
|
|
13
|
+
concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',
|
|
14
|
+
query: {
|
|
15
|
+
sql: sql,
|
|
16
|
+
selectedFacets: selectedFacets,
|
|
17
|
+
},
|
|
18
|
+
entityId: entityId,
|
|
19
|
+
partMask: utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COUNT,
|
|
20
|
+
};
|
|
21
|
+
var queryResult = (0, useGetQueryResultBundle_1.default)(request).data;
|
|
22
|
+
var localCount = (_b = queryResult === null || queryResult === void 0 ? void 0 : queryResult.queryCount) === null || _b === void 0 ? void 0 : _b.toLocaleString();
|
|
51
23
|
/* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Using_toLocaleString */
|
|
52
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
24
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, localCount && (parens ? "(" + localCount + ")" : localCount)));
|
|
53
25
|
};
|
|
54
26
|
exports.default = QueryCount;
|
|
55
27
|
//# sourceMappingURL=QueryCount.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryCount.js","sourceRoot":"","sources":["../../src/lib/containers/QueryCount.tsx"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"QueryCount.js","sourceRoot":"","sources":["../../src/lib/containers/QueryCount.tsx"],"names":[],"mappings":";;;AAAA,6DAAyB;AACzB,mCAA4C;AAC5C,gEAA+E;AAC/E,2HAAuF;AAYvF,IAAM,UAAU,GAA6C,UAAC,EAI7D;;QAHC,GAAG,SAAA,EACH,cAAc,oBAAA,EACd,MAAM,YAAA;IAEN,IAAM,QAAQ,GAAG,IAAA,4CAA6B,EAAC,GAAG,CAAC,CAAA;IAEnD,IAAM,OAAO,GAAuB;QAClC,YAAY,EAAE,yDAAyD;QACvE,KAAK,EAAE;YACL,GAAG,KAAA;YACH,cAAc,gBAAA;SACf;QACD,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,MAAI,UAAU,MAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CACzC,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;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueryVisualizationWrapper = exports.QueryVisualizationContextConsumer = exports.useQueryVisualizationContext = exports.QueryVisualizationContextProvider = exports.QueryVisualizationContext = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
6
|
+
var QueryWrapper_1 = require("./QueryWrapper");
|
|
7
|
+
/**
|
|
8
|
+
* This must be exported to use the context in class components.
|
|
9
|
+
*/
|
|
10
|
+
exports.QueryVisualizationContext = (0, react_1.createContext)(undefined);
|
|
11
|
+
/**
|
|
12
|
+
* Provides fields and functions related to visualizing a Synapse table query. For actual query data, see QueryContextProvider.
|
|
13
|
+
*/
|
|
14
|
+
var QueryVisualizationContextProvider = function (_a) {
|
|
15
|
+
var children = _a.children, queryVisualizationContext = _a.queryVisualizationContext;
|
|
16
|
+
return (react_1.default.createElement(exports.QueryVisualizationContext.Provider, { value: queryVisualizationContext }, children));
|
|
17
|
+
};
|
|
18
|
+
exports.QueryVisualizationContextProvider = QueryVisualizationContextProvider;
|
|
19
|
+
function useQueryVisualizationContext() {
|
|
20
|
+
var context = (0, react_1.useContext)(exports.QueryVisualizationContext);
|
|
21
|
+
if (context === undefined) {
|
|
22
|
+
throw new Error('useQueryVisualizationContext must be used within a QueryWrapper');
|
|
23
|
+
}
|
|
24
|
+
return context;
|
|
25
|
+
}
|
|
26
|
+
exports.useQueryVisualizationContext = useQueryVisualizationContext;
|
|
27
|
+
exports.QueryVisualizationContextConsumer = exports.QueryVisualizationContext.Consumer;
|
|
28
|
+
/**
|
|
29
|
+
* QueryVisualizationWrapper manages UI state for components that query tables in Synapse. That state can be accessed
|
|
30
|
+
* or updated using QueryVisualizationContext. A QueryVisualizationWrapper must be used within a QueryWrapper.
|
|
31
|
+
*/
|
|
32
|
+
function QueryVisualizationWrapper(props) {
|
|
33
|
+
var _a;
|
|
34
|
+
var _b = (0, QueryWrapper_1.useQueryContext)(), data = _b.data, getLastQueryRequest = _b.getLastQueryRequest, isFacetsAvailable = _b.isFacetsAvailable, isLoadingNewBundle = _b.isLoadingNewBundle;
|
|
35
|
+
var _c = (0, react_1.useState)({
|
|
36
|
+
showColumnFilter: true,
|
|
37
|
+
showFacetFilter: true,
|
|
38
|
+
showFacetVisualization: (_a = props.defaultShowFacetVisualization) !== null && _a !== void 0 ? _a : true,
|
|
39
|
+
showSearchBar: false,
|
|
40
|
+
showDownloadConfirmation: false,
|
|
41
|
+
showColumnSelectDropdown: false,
|
|
42
|
+
showSqlEditor: false,
|
|
43
|
+
}), topLevelControlsState = _c[0], setTopLevelControlsState = _c[1];
|
|
44
|
+
(0, react_1.useEffect)(function () {
|
|
45
|
+
if (!isFacetsAvailable) {
|
|
46
|
+
setTopLevelControlsState(function (state) { return ((0, tslib_1.__assign)((0, tslib_1.__assign)({}, state), { showFacetFilter: false, showFacetVisualization: false })); });
|
|
47
|
+
}
|
|
48
|
+
}, [isFacetsAvailable]);
|
|
49
|
+
(0, react_1.useEffect)(function () {
|
|
50
|
+
if (isLoadingNewBundle) {
|
|
51
|
+
setSelectedRowIndices([]);
|
|
52
|
+
}
|
|
53
|
+
}, [isLoadingNewBundle]);
|
|
54
|
+
var _d = (0, react_1.useState)([]), isColumnSelected = _d[0], setIsColumnSelected = _d[1];
|
|
55
|
+
var _e = (0, react_1.useState)([]), selectedRowIndices = _e[0], setSelectedRowIndices = _e[1];
|
|
56
|
+
var lastQueryRequest = getLastQueryRequest();
|
|
57
|
+
var selectColumns = data === null || data === void 0 ? void 0 : data.selectColumns;
|
|
58
|
+
(0, react_1.useEffect)(function () {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
// SWC-6030: If sql changes, reset what columns are visible
|
|
61
|
+
setIsColumnSelected((_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 : []);
|
|
62
|
+
}, [selectColumns, lastQueryRequest.query.sql, props.visibleColumnCount]);
|
|
63
|
+
var context = {
|
|
64
|
+
topLevelControlsState: topLevelControlsState,
|
|
65
|
+
setTopLevelControlsState: setTopLevelControlsState,
|
|
66
|
+
columnsToShowInTable: isColumnSelected,
|
|
67
|
+
setColumnsToShowInTable: setIsColumnSelected,
|
|
68
|
+
selectedRowIndices: selectedRowIndices,
|
|
69
|
+
setSelectedRowIndices: setSelectedRowIndices,
|
|
70
|
+
facetAliases: props.facetAliases,
|
|
71
|
+
rgbIndex: props.rgbIndex,
|
|
72
|
+
unitDescription: props.unitDescription,
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Render the children without any formatting
|
|
76
|
+
*/
|
|
77
|
+
var children = props.children;
|
|
78
|
+
return (react_1.default.createElement(exports.QueryVisualizationContextProvider, { queryVisualizationContext: context }, children));
|
|
79
|
+
}
|
|
80
|
+
exports.QueryVisualizationWrapper = QueryVisualizationWrapper;
|
|
81
|
+
//# sourceMappingURL=QueryVisualizationWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QueryVisualizationWrapper.js","sourceRoot":"","sources":["../../src/lib/containers/QueryVisualizationWrapper.tsx"],"names":[],"mappings":";;;;AAAA,0DAA6E;AAC7E,+CAAgD;AAiBhD;;GAEG;AACU,QAAA,yBAAyB,GAAG,IAAA,qBAAa,EAEpD,SAAS,CAAC,CAAA;AAMZ;;GAEG;AACI,IAAM,iCAAiC,GAC5C,UAAC,EAAuC;QAArC,QAAQ,cAAA,EAAE,yBAAyB,+BAAA;IACpC,OAAO,CACL,8BAAC,iCAAyB,CAAC,QAAQ,IAAC,KAAK,EAAE,yBAAyB,IACjE,QAAQ,CAC0B,CACtC,CAAA;AACH,CAAC,CAAA;AAPU,QAAA,iCAAiC,qCAO3C;AAEH,SAAgB,4BAA4B;IAC1C,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,iCAAyB,CAAC,CAAA;IACrD,IAAI,OAAO,KAAK,SAAS,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAA;KACF;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AARD,oEAQC;AAEY,QAAA,iCAAiC,GAC5C,iCAAyB,CAAC,QAAQ,CAAA;AAsBpC;;;GAGG;AACH,SAAgB,yBAAyB,CACvC,KAAqC;;IAE/B,IAAA,KACJ,IAAA,8BAAe,GAAE,EADX,IAAI,UAAA,EAAE,mBAAmB,yBAAA,EAAE,iBAAiB,uBAAA,EAAE,kBAAkB,wBACrD,CAAA;IAEb,IAAA,KACJ,IAAA,gBAAQ,EAAwB;QAC9B,gBAAgB,EAAE,IAAI;QACtB,eAAe,EAAE,IAAI;QACrB,sBAAsB,EAAE,MAAA,KAAK,CAAC,6BAA6B,mCAAI,IAAI;QACnE,aAAa,EAAE,KAAK;QACpB,wBAAwB,EAAE,KAAK;QAC/B,wBAAwB,EAAE,KAAK;QAC/B,aAAa,EAAE,KAAK;KACrB,CAAC,EATG,qBAAqB,QAAA,EAAE,wBAAwB,QASlD,CAAA;IAEJ,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,iBAAiB,EAAE;YACtB,wBAAwB,CAAC,UAAA,KAAK,IAAI,OAAA,iDAC7B,KAAK,KACR,eAAe,EAAE,KAAK,EACtB,sBAAsB,EAAE,KAAK,IAC7B,EAJgC,CAIhC,CAAC,CAAA;SACJ;IACH,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAEvB,IAAA,iBAAS,EAAC;QACR,IAAI,kBAAkB,EAAE;YACtB,qBAAqB,CAAC,EAAE,CAAC,CAAA;SAC1B;IACH,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAElB,IAAA,KAA0C,IAAA,gBAAQ,EAAW,EAAE,CAAC,EAA/D,gBAAgB,QAAA,EAAE,mBAAmB,QAA0B,CAAA;IAChE,IAAA,KAA8C,IAAA,gBAAQ,EAAW,EAAE,CAAC,EAAnE,kBAAkB,QAAA,EAAE,qBAAqB,QAA0B,CAAA;IAE1E,IAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAA;IAC9C,IAAM,aAAa,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,CAAA;IAEzC,IAAA,iBAAS,EAAC;;QACR,2DAA2D;QAC3D,mBAAmB,CACjB,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CACT,KAAK,CAAC,CAAC,EAAE,MAAA,KAAK,CAAC,kBAAkB,mCAAI,QAAQ,EAC9C,GAAG,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,IAAI,EAAP,CAAO,CAAC,mCAAI,EAAE,CAC5B,CAAA;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;IAEzE,IAAM,OAAO,GAAkC;QAC7C,qBAAqB,uBAAA;QACrB,wBAAwB,0BAAA;QACxB,oBAAoB,EAAE,gBAAgB;QACtC,uBAAuB,EAAE,mBAAmB;QAC5C,kBAAkB,oBAAA;QAClB,qBAAqB,uBAAA;QAErB,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,eAAe,EAAE,KAAK,CAAC,eAAe;KACvC,CAAA;IACD;;OAEG;IACK,IAAA,QAAQ,GAAK,KAAK,SAAV,CAAU;IAC1B,OAAO,CACL,8BAAC,yCAAiC,IAAC,yBAAyB,EAAE,OAAO,IAClE,QAAQ,CACyB,CACrC,CAAA;AACH,CAAC;AArED,8DAqEC"}
|
|
@@ -1,34 +1,66 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { AsynchronousJobStatus, QueryBundleRequest, QueryResultBundle, SelectColumn } from '../utils/synapseTypes/';
|
|
3
2
|
import { SynapseClientError } from '../utils/SynapseClient';
|
|
3
|
+
import { AsynchronousJobStatus, QueryBundleRequest, QueryResultBundle, Table } from '../utils/synapseTypes';
|
|
4
|
+
export declare const QUERY_FILTERS_EXPANDED_CSS: string;
|
|
5
|
+
export declare const QUERY_FILTERS_COLLAPSED_CSS: string;
|
|
6
|
+
export declare type QueryContextType = {
|
|
7
|
+
/** The entity being queried. Will be undefined while initially fetching */
|
|
8
|
+
entity: Table | undefined;
|
|
9
|
+
/** The query results, which will be undefined while initially fetching a new bundle, but will not be unloaded when fetching new pages */
|
|
10
|
+
data: QueryResultBundle | undefined;
|
|
11
|
+
/** Returns a deep clone of the current query bundle request */
|
|
12
|
+
getLastQueryRequest: () => QueryBundleRequest;
|
|
13
|
+
/** Returns a deep clone of the initial query bundle request */
|
|
14
|
+
getInitQueryRequest: () => QueryBundleRequest;
|
|
15
|
+
/** Updates the current query with the passed request */
|
|
16
|
+
executeQueryRequest: (param: QueryBundleRequest) => void;
|
|
17
|
+
/** Returns true when loading a new page of query results */
|
|
18
|
+
isLoadingNewPage: boolean;
|
|
19
|
+
/** Returns true when loading a brand new query result bundle. Will not be true when just loading the next page of query results. */
|
|
20
|
+
isLoadingNewBundle: boolean;
|
|
21
|
+
/** The error returned by the query request, if one is encountered */
|
|
22
|
+
error: SynapseClientError | null;
|
|
23
|
+
/** The status of the asynchronous job. */
|
|
24
|
+
asyncJobStatus?: AsynchronousJobStatus<QueryBundleRequest, QueryResultBundle>;
|
|
25
|
+
/** Whether or not the query result bundle has a next page */
|
|
26
|
+
hasNextPage: boolean;
|
|
27
|
+
/** Invoke this method to fetch and append the next page of rows to the data */
|
|
28
|
+
appendNextPageToResults: () => Promise<void>;
|
|
29
|
+
/** Invoke to fetch and update the data with the next page of query results */
|
|
30
|
+
goToNextPage: () => Promise<void>;
|
|
31
|
+
/** Whether or not the query result bundle has a previous page */
|
|
32
|
+
hasPreviousPage: boolean;
|
|
33
|
+
/** Invoke to fetch and update the data with the previous page of query results */
|
|
34
|
+
goToPreviousPage: () => Promise<void>;
|
|
35
|
+
/** Whether or not facets are available to be filtered upon based on the current data */
|
|
36
|
+
isFacetsAvailable: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* A facet may be "locked" so that it is not modifiable by the user, for example when showing only data relevant to a particular facet value on a Details Page.
|
|
39
|
+
* The value of a locked facet will result in a client-side modification of the result bundle data.
|
|
40
|
+
*/
|
|
41
|
+
lockedFacet?: LockedFacet;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* This must be exported to use the context in class components.
|
|
45
|
+
*/
|
|
46
|
+
export declare const QueryContext: React.Context<QueryContextType | undefined>;
|
|
47
|
+
export declare type QueryContextProviderProps = {
|
|
48
|
+
queryContext: QueryContextType;
|
|
49
|
+
};
|
|
4
50
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* This wasn't done because Enzyme's shallow renderer is not currently
|
|
8
|
-
* compatible with the `contextType` field in the React 16+ context API.
|
|
9
|
-
*
|
|
10
|
-
* This can be fixed by rewriting tests to not rely on the shallow renderer.
|
|
11
|
-
*
|
|
12
|
-
* See here: https://github.com/enzymejs/enzyme/issues/1553
|
|
51
|
+
* Provides data related to a Synapse table query, and functions for iterating through pages of the data.
|
|
13
52
|
*/
|
|
53
|
+
export declare const QueryContextProvider: React.FC<QueryContextProviderProps>;
|
|
54
|
+
export declare function useQueryContext(): QueryContextType;
|
|
55
|
+
export declare const QueryContextConsumer: React.Consumer<QueryContextType | undefined>;
|
|
14
56
|
export declare type QueryWrapperProps = {
|
|
15
|
-
|
|
57
|
+
children: React.ReactNode | React.ReactNode[];
|
|
16
58
|
initQueryRequest: QueryBundleRequest;
|
|
17
|
-
rgbIndex?: number;
|
|
18
|
-
token?: string;
|
|
19
|
-
facet?: string;
|
|
20
|
-
unitDescription?: string;
|
|
21
|
-
facetAliases?: Record<string, string>;
|
|
22
|
-
loadNow?: boolean;
|
|
23
|
-
showBarChart?: boolean;
|
|
24
59
|
componentIndex?: number;
|
|
25
60
|
shouldDeepLink?: boolean;
|
|
26
61
|
onQueryChange?: (newQueryJson: string) => void;
|
|
27
62
|
onQueryResultBundleChange?: (newQueryResultBundleJson: string) => void;
|
|
28
|
-
hiddenColumns?: string[];
|
|
29
63
|
lockedFacet?: LockedFacet;
|
|
30
|
-
defaultShowFacetVisualization?: boolean;
|
|
31
|
-
children?: (queryWrapperChildProps: QueryWrapperChildProps) => React.ReactNode | React.ReactNode[];
|
|
32
64
|
};
|
|
33
65
|
export declare type TopLevelControlsState = {
|
|
34
66
|
showFacetVisualization: boolean;
|
|
@@ -43,134 +75,12 @@ export declare type SearchQuery = {
|
|
|
43
75
|
columnName: string;
|
|
44
76
|
searchText: string;
|
|
45
77
|
};
|
|
46
|
-
export declare type QueryWrapperState = {
|
|
47
|
-
isAllFilterSelectedForFacet: Record<string, boolean>;
|
|
48
|
-
data: QueryResultBundle | undefined;
|
|
49
|
-
isLoadingNewData: boolean;
|
|
50
|
-
isLoading: boolean;
|
|
51
|
-
lastQueryRequest: QueryBundleRequest;
|
|
52
|
-
hasMoreData: boolean;
|
|
53
|
-
lastFacetSelection: FacetSelection;
|
|
54
|
-
chartSelectionIndex: number;
|
|
55
|
-
asyncJobStatus?: AsynchronousJobStatus;
|
|
56
|
-
facetAliases?: Record<string, string>;
|
|
57
|
-
loadNowStarted: boolean;
|
|
58
|
-
topLevelControlsState?: TopLevelControlsState;
|
|
59
|
-
isColumnSelected: string[];
|
|
60
|
-
selectedRowIndices?: number[];
|
|
61
|
-
error: SynapseClientError | undefined;
|
|
62
|
-
isFacetsAvailable: boolean;
|
|
63
|
-
};
|
|
64
78
|
export declare type LockedFacet = {
|
|
65
79
|
facet?: string;
|
|
66
80
|
value?: string;
|
|
67
81
|
};
|
|
68
|
-
export declare type FacetSelection = {
|
|
69
|
-
columnName: string;
|
|
70
|
-
facetValue: string;
|
|
71
|
-
selector: string;
|
|
72
|
-
};
|
|
73
|
-
export declare type QueryWrapperChildProps = {
|
|
74
|
-
isAllFilterSelectedForFacet?: Record<string, boolean>;
|
|
75
|
-
isLoading?: boolean;
|
|
76
|
-
token?: string;
|
|
77
|
-
entityId?: string;
|
|
78
|
-
isLoadingNewData?: boolean;
|
|
79
|
-
executeQueryRequest?: (param: QueryBundleRequest) => void;
|
|
80
|
-
executeInitialQueryRequest?: () => void;
|
|
81
|
-
getNextPageOfData?: (queryRequest: QueryBundleRequest) => void;
|
|
82
|
-
getLastQueryRequest?: () => QueryBundleRequest;
|
|
83
|
-
getInitQueryRequest?: () => QueryBundleRequest;
|
|
84
|
-
data?: QueryResultBundle;
|
|
85
|
-
facet?: string;
|
|
86
|
-
updateParentState?: <K extends keyof QueryWrapperState>(param: Pick<QueryWrapperState, K>) => void;
|
|
87
|
-
rgbIndex?: number;
|
|
88
|
-
unitDescription?: string;
|
|
89
|
-
facetAliases?: Record<string, string>;
|
|
90
|
-
lastFacetSelection?: FacetSelection;
|
|
91
|
-
chartSelectionIndex?: number;
|
|
92
|
-
asyncJobStatus?: AsynchronousJobStatus;
|
|
93
|
-
showBarChart?: boolean;
|
|
94
|
-
hasMoreData?: boolean;
|
|
95
|
-
topLevelControlsState?: TopLevelControlsState;
|
|
96
|
-
isColumnSelected?: string[];
|
|
97
|
-
selectedRowIndices?: number[];
|
|
98
|
-
error?: SynapseClientError | undefined;
|
|
99
|
-
lockedFacet?: LockedFacet;
|
|
100
|
-
isFacetsAvailable?: boolean;
|
|
101
|
-
};
|
|
102
|
-
export declare const QUERY_FILTERS_EXPANDED_CSS: string;
|
|
103
|
-
export declare const QUERY_FILTERS_COLLAPSED_CSS: string;
|
|
104
82
|
/**
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
108
|
-
* @class QueryWrapper
|
|
109
|
-
* @extends {React.Component}
|
|
83
|
+
* Component that manages the state of a Synapse table query. Data can be accessed via QueryContext using
|
|
84
|
+
* either `useQueryContext` or `QueryContextConsumer`.
|
|
110
85
|
*/
|
|
111
|
-
export
|
|
112
|
-
private componentIndex;
|
|
113
|
-
constructor(props: QueryWrapperProps);
|
|
114
|
-
/**
|
|
115
|
-
* Compute default query request
|
|
116
|
-
*
|
|
117
|
-
* @memberof QueryWrapper
|
|
118
|
-
*/
|
|
119
|
-
componentDidMount(): void;
|
|
120
|
-
/**
|
|
121
|
-
* @memberof QueryWrapper
|
|
122
|
-
*/
|
|
123
|
-
componentDidUpdate(prevProps: QueryWrapperProps): void;
|
|
124
|
-
/**
|
|
125
|
-
* Pass down a deep clone (so no side affects on the child's part) of the
|
|
126
|
-
* last query request made
|
|
127
|
-
*
|
|
128
|
-
* @returns
|
|
129
|
-
* @memberof QueryWrapper
|
|
130
|
-
*/
|
|
131
|
-
getLastQueryRequest(): QueryBundleRequest;
|
|
132
|
-
/**
|
|
133
|
-
* Pass down a deep clone (so no side affects on the child's part) of the
|
|
134
|
-
* first query request made
|
|
135
|
-
*
|
|
136
|
-
* @returns
|
|
137
|
-
* @memberof QueryWrapper
|
|
138
|
-
*/
|
|
139
|
-
getInitQueryRequest(): QueryBundleRequest;
|
|
140
|
-
getSelectedColumns(isReset: boolean, selectColumns?: SelectColumn[]): string[];
|
|
141
|
-
/**
|
|
142
|
-
* Execute the given query
|
|
143
|
-
*
|
|
144
|
-
* @param {*} queryRequest Query request as specified by
|
|
145
|
-
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Query.html
|
|
146
|
-
* @memberof QueryWrapper
|
|
147
|
-
*/
|
|
148
|
-
executeQueryRequest(queryRequest: QueryBundleRequest): Promise<void>;
|
|
149
|
-
/**
|
|
150
|
-
* Grab the next page of data, pulling in 25 more rows.
|
|
151
|
-
*
|
|
152
|
-
* @param {*} queryRequest Query request as specified by
|
|
153
|
-
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Query.html
|
|
154
|
-
* @memberof QueryWrapper
|
|
155
|
-
*/
|
|
156
|
-
getNextPageOfData(queryRequest: QueryBundleRequest): Promise<void>;
|
|
157
|
-
/**
|
|
158
|
-
* Execute the initial query passed into the component
|
|
159
|
-
*
|
|
160
|
-
* @param {*} queryRequest Query request as specified by
|
|
161
|
-
* https://rest-docs.synapse.org/rest/org/sagebionetworks/repo/model/table/Query.html
|
|
162
|
-
* @memberof QueryWrapper
|
|
163
|
-
*/
|
|
164
|
-
executeInitialQueryRequest(initQueryRequest?: QueryBundleRequest): void;
|
|
165
|
-
updateParentState<K extends keyof QueryWrapperState>(update: Pick<QueryWrapperState, K>): void;
|
|
166
|
-
/**
|
|
167
|
-
* remove a particular facet name (e.g. study) and its all possible values based on the parameter specified in the url
|
|
168
|
-
* this is to remove the facet from the charts, search and filter.
|
|
169
|
-
* @return data: QueryResultBundle
|
|
170
|
-
*/
|
|
171
|
-
removeLockedFacetData(): QueryResultBundle | undefined;
|
|
172
|
-
/**
|
|
173
|
-
* Render the children without any formatting
|
|
174
|
-
*/
|
|
175
|
-
render(): JSX.Element;
|
|
176
|
-
}
|
|
86
|
+
export declare function QueryWrapper(props: QueryWrapperProps): JSX.Element;
|