synapse-react-client
Version:
[](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [](https://badge.fury.io/js/synaps
59 lines • 5.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var React = (0, tslib_1.__importStar)(require("react"));
var lodash_1 = require("lodash");
var sqlFunctions_1 = require("../../utils/functions/sqlFunctions");
var StackedBarChart_1 = (0, tslib_1.__importDefault)(require("../StackedBarChart"));
var SynapseTable_1 = (0, tslib_1.__importDefault)(require("./SynapseTable"));
var synapseTypes_1 = require("../../utils/synapseTypes");
var utils_1 = require("../../utils");
var QueryWrapper_1 = (0, tslib_1.__importDefault)(require("../QueryWrapper"));
var TopLevelControls_1 = (0, tslib_1.__importDefault)(require("./TopLevelControls"));
var FullTextSearch_1 = (0, tslib_1.__importDefault)(require("../FullTextSearch"));
var SearchV2_1 = (0, tslib_1.__importDefault)(require("../SearchV2"));
var useEntity_1 = require("../../utils/hooks/SynapseAPI/useEntity");
var TotalQueryResults_1 = (0, tslib_1.__importDefault)(require("../TotalQueryResults"));
var generateInitQueryRequest = function (sql) {
return (0, lodash_1.cloneDeep)({
partMask: utils_1.SynapseConstants.BUNDLE_MASK_QUERY_FACETS |
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COUNT |
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_SELECT_COLUMNS |
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_COLUMN_MODELS |
utils_1.SynapseConstants.BUNDLE_MASK_QUERY_RESULTS,
entityId: (0, sqlFunctions_1.parseEntityIdFromSqlStatement)(sql),
concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',
query: {
sql: sql,
limit: 25,
offset: 0,
},
});
};
/**
* This component was initially implemented on the portal side. It renders a StackedBarChart if link and linkText are provided, and renders a SynapseTable if a title is provided.
* If showTopLevelControls is set to true, then the SynapseTable will also include the TopLevelControls (search, export table, column selection).
*/
var StandaloneQueryWrapper = function (props) {
var link = props.link, linkText = props.linkText, title = props.title, searchParams = props.searchParams, sqlOperator = props.sqlOperator, showAccessColumn = props.showAccessColumn, sql = props.sql, hideDownload = props.hideDownload, hideQueryCount = props.hideQueryCount, name = props.name, _a = props.showTopLevelControls, showTopLevelControls = _a === void 0 ? false : _a, searchConfiguration = props.searchConfiguration, rest = (0, tslib_1.__rest)(props, ["link", "linkText", "title", "searchParams", "sqlOperator", "showAccessColumn", "sql", "hideDownload", "hideQueryCount", "name", "showTopLevelControls", "searchConfiguration"]);
var derivedQueryRequestFromSearchParams = generateInitQueryRequest(sql);
if (searchParams) {
derivedQueryRequestFromSearchParams.query.sql = (0, sqlFunctions_1.insertConditionsFromSearchParams)(derivedQueryRequestFromSearchParams.query.sql, searchParams, sqlOperator);
}
var entityId = (0, sqlFunctions_1.parseEntityIdFromSqlStatement)(sql);
var entity = (0, useEntity_1.useGetEntity)(entityId).data;
return (React.createElement(QueryWrapper_1.default, (0, tslib_1.__assign)({}, rest, { initQueryRequest: derivedQueryRequestFromSearchParams }), function (queryWrapperChildProps) {
var _a;
return (React.createElement(React.Fragment, null,
link && linkText ? (React.createElement(StackedBarChart_1.default, (0, tslib_1.__assign)({}, queryWrapperChildProps, { link: link, linkText: linkText }))) : (React.createElement(React.Fragment, null)),
title ? (React.createElement(React.Fragment, null,
showTopLevelControls && React.createElement(TopLevelControls_1.default, (0, tslib_1.__assign)({}, queryWrapperChildProps, { showColumnSelection: true, name: name, entityId: entityId, sql: derivedQueryRequestFromSearchParams.query.sql, hideDownload: hideDownload, hideQueryCount: hideQueryCount, hideFacetFilterControl: true, hideVisualizationsControl: true })),
entity &&
(0, synapseTypes_1.isTableEntity)(entity) &&
entity.isSearchEnabled ? (React.createElement(FullTextSearch_1.default, (0, tslib_1.__assign)({}, queryWrapperChildProps))) : (React.createElement(SearchV2_1.default, (0, tslib_1.__assign)({}, queryWrapperChildProps, searchConfiguration))),
showTopLevelControls && React.createElement(TotalQueryResults_1.default, { isLoading: queryWrapperChildProps.isLoading, executeQueryRequest: queryWrapperChildProps.executeQueryRequest, lastQueryRequest: (_a = queryWrapperChildProps.getLastQueryRequest) === null || _a === void 0 ? void 0 : _a.call(queryWrapperChildProps), getInitQueryRequest: queryWrapperChildProps.getInitQueryRequest, unitDescription: 'Results', frontText: '', showNotch: false, topLevelControlsState: queryWrapperChildProps.topLevelControlsState }),
React.createElement(SynapseTable_1.default, (0, tslib_1.__assign)({}, queryWrapperChildProps, { showAccessColumn: showAccessColumn, title: title, "data-testid": 'SynapseTable' })))) : (React.createElement(React.Fragment, null))));
}));
};
exports.default = StandaloneQueryWrapper;
//# sourceMappingURL=StandaloneQueryWrapper.js.map