UNPKG

synapse-react-client

Version:

[![Build Status](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client.svg?branch=main)](https://travis-ci.com/Sage-Bionetworks/Synapse-React-Client) [![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synaps

59 lines 5.3 kB
"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