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
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeLockedColumnFromFacetData = exports.isSingleNotSetValue = exports.isFacetAvailable = exports.getNextPageOfData = exports.getFieldIndex = void 0;
|
|
3
|
+
exports.hasResettableFilters = exports.removeLockedColumnFromFacetData = exports.isSingleNotSetValue = exports.isFacetAvailable = exports.getNextPageOfData = exports.getFieldIndex = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var lodash_es_1 = require("lodash-es");
|
|
6
6
|
var __1 = require("..");
|
|
7
|
+
var QueryFilter_1 = require("../synapseTypes/Table/QueryFilter");
|
|
7
8
|
/**
|
|
8
9
|
* Retrieve the index of a column using the column name
|
|
9
10
|
* @param name the column name
|
|
@@ -77,6 +78,7 @@ var isSingleNotSetValue = function (facet) {
|
|
|
77
78
|
__1.SynapseConstants.VALUE_NOT_SET);
|
|
78
79
|
};
|
|
79
80
|
exports.isSingleNotSetValue = isSingleNotSetValue;
|
|
81
|
+
// TODO Instead of removing the facet from the data, the facet renderers should just be aware of what to hide
|
|
80
82
|
function removeLockedColumnFromFacetData(data, lockedColumn) {
|
|
81
83
|
var _a;
|
|
82
84
|
var lockedColumnName = lockedColumn === null || lockedColumn === void 0 ? void 0 : lockedColumn.columnName;
|
|
@@ -93,4 +95,21 @@ function removeLockedColumnFromFacetData(data, lockedColumn) {
|
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
97
|
exports.removeLockedColumnFromFacetData = removeLockedColumnFromFacetData;
|
|
98
|
+
/**
|
|
99
|
+
* Returns true iff the query has filters applied that can be reset.
|
|
100
|
+
* This includes facet filters and additional filters that are not applied to a locked column.
|
|
101
|
+
*/
|
|
102
|
+
function hasResettableFilters(query, lockedColumn) {
|
|
103
|
+
var hasFacetFilters = Array.isArray(query.selectedFacets) &&
|
|
104
|
+
query.selectedFacets.filter(function (facet) { return facet.columnName !== (lockedColumn === null || lockedColumn === void 0 ? void 0 : lockedColumn.columnName); }).length > 0;
|
|
105
|
+
var hasAdditionalFilters = Array.isArray(query.additionalFilters) &&
|
|
106
|
+
query.additionalFilters.filter(function (queryFilter) {
|
|
107
|
+
return (0, QueryFilter_1.isColumnSingleValueQueryFilter)(queryFilter) ||
|
|
108
|
+
(0, QueryFilter_1.isColumnMultiValueFunctionQueryFilter)(queryFilter)
|
|
109
|
+
? queryFilter.columnName !== (lockedColumn === null || lockedColumn === void 0 ? void 0 : lockedColumn.columnName)
|
|
110
|
+
: true;
|
|
111
|
+
}).length > 0;
|
|
112
|
+
return hasFacetFilters || hasAdditionalFilters;
|
|
113
|
+
}
|
|
114
|
+
exports.hasResettableFilters = hasResettableFilters;
|
|
96
115
|
//# sourceMappingURL=queryUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryUtils.js","sourceRoot":"","sources":["../../../src/lib/utils/functions/queryUtils.ts"],"names":[],"mappings":";;;;AAAA,uCAAqC;AACrC,wBAAoD;
|
|
1
|
+
{"version":3,"file":"queryUtils.js","sourceRoot":"","sources":["../../../src/lib/utils/functions/queryUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
[index: string]: string;
|
|
4
|
-
};
|
|
1
|
+
import { Row, SelectColumn } from '../synapseTypes';
|
|
2
|
+
import { QueryFilter } from '../synapseTypes/Table/QueryFilter';
|
|
5
3
|
export declare type SQLOperator = 'LIKE' | '=' | 'HAS';
|
|
6
|
-
export declare const isGroupByInSql: (sql: string) => boolean;
|
|
7
|
-
export declare const getWhereInsertIndex: (tokens: string[][]) => number;
|
|
8
4
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
5
|
+
* Given the search params, return a set of QueryFilters to narrow the the query to view just related data. May return null if a QueryFilter should not be added.
|
|
6
|
+
* @param sql
|
|
7
|
+
* @param searchParams
|
|
8
|
+
* @param operator
|
|
9
|
+
* @returns
|
|
12
10
|
*/
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const formatSQLFromParser: (tokens: string[][]) => string;
|
|
11
|
+
export declare const generateQueryFilterFromSearchParams: (searchParams?: Record<string, string>, operator?: SQLOperator) => QueryFilter[] | undefined;
|
|
15
12
|
export declare const parseEntityIdFromSqlStatement: (sql: string) => string;
|
|
16
13
|
export declare const parseEntityIdAndVersionFromSqlStatement: (sql: string) => {
|
|
17
14
|
entityId: string;
|
|
@@ -1,165 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resultToJson = exports.parseEntityIdAndVersionFromSqlStatement = exports.parseEntityIdFromSqlStatement = exports.
|
|
4
|
-
var tslib_1 = require("tslib");
|
|
5
|
-
var sql_parser_1 = require("sql-parser");
|
|
3
|
+
exports.resultToJson = exports.parseEntityIdAndVersionFromSqlStatement = exports.parseEntityIdFromSqlStatement = exports.generateQueryFilterFromSearchParams = void 0;
|
|
6
4
|
var RegularExpressions_1 = require("../functions/RegularExpressions");
|
|
7
|
-
|
|
8
|
-
var GROUP_BY_REGEX = /group by/im;
|
|
9
|
-
var isGroupByInSql = function (sql) {
|
|
10
|
-
return GROUP_BY_REGEX.test(sql);
|
|
11
|
-
};
|
|
12
|
-
exports.isGroupByInSql = isGroupByInSql;
|
|
5
|
+
var QueryFilter_1 = require("../synapseTypes/Table/QueryFilter");
|
|
13
6
|
var WITHOUT_SYN_PREFIX = 3;
|
|
14
|
-
var generateTokenUsingOperator = function (literal, operator, match) {
|
|
15
|
-
var usedMatchForLike = match;
|
|
16
|
-
if (match.match(RegularExpressions_1.SYNAPSE_ENTITY_ID_REGEX)) {
|
|
17
|
-
// If we use a LIKE statement with a synId the backend will look for a string with the first three
|
|
18
|
-
// characters being 'syn', however, it stores synIds without 'syn', so the query will fail
|
|
19
|
-
// The backend usually parses 'syn' out, but not with the LIKE clause since its expecting a regex, so we
|
|
20
|
-
// parse this out. This will cause a bug if something matches the synId regex but is in free text.
|
|
21
|
-
usedMatchForLike = match.substring(WITHOUT_SYN_PREFIX);
|
|
22
|
-
}
|
|
23
|
-
// form the has clause, e.g sql = ".... HAS ('condition1', 'condition2',...,'conditionN')
|
|
24
|
-
var matchForHas = match
|
|
25
|
-
.split(',')
|
|
26
|
-
// NOTE - Using single quotes to surround the search term is necessary for the backend parser.
|
|
27
|
-
.map(function (el) { return "'".concat(el, "'"); })
|
|
28
|
-
.join(',');
|
|
29
|
-
switch (operator) {
|
|
30
|
-
case 'LIKE':
|
|
31
|
-
return [
|
|
32
|
-
['LITERAL', literal, '1'],
|
|
33
|
-
['OPERATOR', operator, '1'],
|
|
34
|
-
['STRING', "%".concat(usedMatchForLike, "%"), '1'],
|
|
35
|
-
];
|
|
36
|
-
case 'HAS':
|
|
37
|
-
return [
|
|
38
|
-
['LITERAL', literal, '1'],
|
|
39
|
-
['OPERATOR', operator, '1'],
|
|
40
|
-
/*
|
|
41
|
-
Using PARAMETER as hack, the parser will use the exact value for a PARAMETER value,
|
|
42
|
-
it won't add quotes around the argument or remove parens (which is the standard behavior
|
|
43
|
-
for type STRING) that would cause an error on the backend
|
|
44
|
-
*/
|
|
45
|
-
['PARAMETER', "(".concat(matchForHas, ")"), '1'],
|
|
46
|
-
];
|
|
47
|
-
default:
|
|
48
|
-
// default use operator as-is
|
|
49
|
-
return [
|
|
50
|
-
['LITERAL', literal, '1'],
|
|
51
|
-
['OPERATOR', operator, '1'],
|
|
52
|
-
['STRING', match, '1'],
|
|
53
|
-
];
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
var getWhereInsertIndex = function (tokens) {
|
|
57
|
-
var existingWhereIndex = tokens.findIndex(function (el) { return el[0] === 'WHERE'; });
|
|
58
|
-
if (existingWhereIndex !== -1) {
|
|
59
|
-
return existingWhereIndex;
|
|
60
|
-
}
|
|
61
|
-
var targetIndex = tokens.findIndex(function (el) { return el[0] === 'GROUP'; });
|
|
62
|
-
if (targetIndex !== -1) {
|
|
63
|
-
return targetIndex;
|
|
64
|
-
}
|
|
65
|
-
targetIndex = tokens.findIndex(function (el) { return el[0] === 'HAVING'; });
|
|
66
|
-
if (targetIndex !== -1) {
|
|
67
|
-
return targetIndex;
|
|
68
|
-
}
|
|
69
|
-
targetIndex = tokens.findIndex(function (el) { return el[0] === 'ORDER'; });
|
|
70
|
-
if (targetIndex !== -1) {
|
|
71
|
-
return targetIndex;
|
|
72
|
-
}
|
|
73
|
-
//else insert it at the end
|
|
74
|
-
targetIndex = tokens.findIndex(function (el) { return el[0] === 'EOF'; });
|
|
75
|
-
return targetIndex;
|
|
76
|
-
};
|
|
77
|
-
exports.getWhereInsertIndex = getWhereInsertIndex;
|
|
78
7
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
8
|
+
* Given the search params, return a set of QueryFilters to narrow the the query to view just related data. May return null if a QueryFilter should not be added.
|
|
9
|
+
* @param sql
|
|
10
|
+
* @param searchParams
|
|
11
|
+
* @param operator
|
|
12
|
+
* @returns
|
|
82
13
|
*/
|
|
83
|
-
var
|
|
14
|
+
var generateQueryFilterFromSearchParams = function (searchParams, operator) {
|
|
84
15
|
if (operator === void 0) { operator = 'LIKE'; }
|
|
85
|
-
// TODO: Replace SQL manipulation with QueryFilters. See PORTALS-2157
|
|
86
|
-
// if there are no search params, or if all search params are QueryWrapper queries
|
|
87
16
|
if (!searchParams) {
|
|
88
|
-
return
|
|
17
|
+
return;
|
|
89
18
|
}
|
|
90
19
|
var isQueryWrapperKey = function (key) { return key.startsWith('QueryWrapper'); };
|
|
91
20
|
var searchParamKeys = Object.keys(searchParams);
|
|
92
21
|
if (searchParamKeys.length === 0 ||
|
|
93
22
|
searchParamKeys.every(isQueryWrapperKey)) {
|
|
94
|
-
return
|
|
95
|
-
}
|
|
96
|
-
var tokens = sql_parser_1.lexer.tokenize(sql);
|
|
97
|
-
// we want to either create a where clause or insert into the where clause
|
|
98
|
-
var foundIndex = tokens.findIndex(function (el) { return el[0] === 'WHERE'; });
|
|
99
|
-
var whereClauseIndex = (0, exports.getWhereInsertIndex)(tokens);
|
|
100
|
-
var indexAfterWhereClause = whereClauseIndex + 1;
|
|
101
|
-
if (foundIndex === -1) {
|
|
102
|
-
// insert a where clause
|
|
103
|
-
tokens.splice(whereClauseIndex, 0, ['WHERE', 'WHERE', '1']);
|
|
23
|
+
return;
|
|
104
24
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
25
|
+
return Object.keys(searchParams)
|
|
26
|
+
.filter(function (key) { return !isQueryWrapperKey(key); })
|
|
27
|
+
.map(function (key) {
|
|
28
|
+
if (operator === 'HAS') {
|
|
29
|
+
var filter = {
|
|
30
|
+
concreteType: 'org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter',
|
|
31
|
+
columnName: key,
|
|
32
|
+
function: QueryFilter_1.ColumnMultiValueFunction.HAS,
|
|
33
|
+
values: searchParams[key].split(','),
|
|
34
|
+
};
|
|
35
|
+
return filter;
|
|
115
36
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
37
|
+
else if (operator === 'LIKE') {
|
|
38
|
+
var value = searchParams[key];
|
|
39
|
+
if (value.match(RegularExpressions_1.SYNAPSE_ENTITY_ID_REGEX)) {
|
|
40
|
+
// If we use a LIKE statement with a synId the backend will look for a string with the first three
|
|
41
|
+
// characters being 'syn', however, it stores synIds without 'syn', so the query will fail
|
|
42
|
+
// The backend usually parses 'syn' out, but not with the LIKE clause since its expecting a regex, so we
|
|
43
|
+
// parse this out. This will cause a bug if something matches the synId regex but is in free text.
|
|
44
|
+
value = value.substring(WITHOUT_SYN_PREFIX);
|
|
45
|
+
}
|
|
46
|
+
var filter = {
|
|
47
|
+
concreteType: 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',
|
|
48
|
+
columnName: key,
|
|
49
|
+
operator: QueryFilter_1.ColumnSingleValueFilterOperator.LIKE,
|
|
50
|
+
// Add wildcards around the value
|
|
51
|
+
values: ["%".concat(value, "%")],
|
|
52
|
+
};
|
|
53
|
+
return filter;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// operator is '='
|
|
57
|
+
// The backend doesn't have an '=' operator for query filters, but we can just use LIKE without wildcards.
|
|
58
|
+
var filter = {
|
|
59
|
+
concreteType: 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',
|
|
60
|
+
columnName: key,
|
|
61
|
+
operator: QueryFilter_1.ColumnSingleValueFilterOperator.LIKE,
|
|
62
|
+
values: [searchParams[key]],
|
|
63
|
+
};
|
|
64
|
+
return filter;
|
|
126
65
|
}
|
|
127
66
|
});
|
|
128
|
-
// if synId has a DOT (e.g. 'syn123.2') then we have to alter the sql produced
|
|
129
|
-
var dotIndex = tokens.findIndex(function (val) { return val[0] === 'DOT'; });
|
|
130
|
-
if (dotIndex !== -1) {
|
|
131
|
-
// Given sql with a versioned entity, e.g. "select * from syn123.2"
|
|
132
|
-
// Tokens has the form:
|
|
133
|
-
/*
|
|
134
|
-
[
|
|
135
|
-
["SELECT" , "select"],
|
|
136
|
-
..
|
|
137
|
-
["FROM", "from"],
|
|
138
|
-
["LITERAL", "syn123"],
|
|
139
|
-
["DOT", "."],
|
|
140
|
-
["LITERAL", "2"],
|
|
141
|
-
|
|
142
|
-
which we need to transform to
|
|
143
|
-
|
|
144
|
-
["SELECT" , "select"],
|
|
145
|
-
..
|
|
146
|
-
["FROM", "from"],
|
|
147
|
-
["LITERAL", "syn123.2"],
|
|
148
|
-
*/
|
|
149
|
-
var synId_1 = tokens[dotIndex - 1][1];
|
|
150
|
-
var version = tokens[dotIndex + 1][1];
|
|
151
|
-
var synIdWithVersion = "".concat(synId_1, ".").concat(version);
|
|
152
|
-
tokens.splice(dotIndex, 2);
|
|
153
|
-
tokens[dotIndex - 1] = ['LITERAL', synIdWithVersion];
|
|
154
|
-
}
|
|
155
|
-
var newSql = sql_parser_1.parser.parse(tokens).toString();
|
|
156
|
-
// construct the sql using their formatter and then alter it to remove erroneous
|
|
157
|
-
// backticks from the table identifier: e.g. (their output) `syn1234` -> (our output) syn1234
|
|
158
|
-
var synId = tokens[tokens.findIndex(function (el) { return el[0] === 'FROM'; }) + 1][1];
|
|
159
|
-
var synIdWithBackticks = "`".concat(synId, "`");
|
|
160
|
-
return newSql.replace(synIdWithBackticks, synId);
|
|
161
67
|
};
|
|
162
|
-
exports.
|
|
68
|
+
exports.generateQueryFilterFromSearchParams = generateQueryFilterFromSearchParams;
|
|
163
69
|
//parses synapse entity id from a sql query string
|
|
164
70
|
//look for a pattern of 'from[some number of spaces]syn[somenumbers]` case insensitive
|
|
165
71
|
var parseEntityIdFromSqlStatement = function (sql) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlFunctions.js","sourceRoot":"","sources":["../../../src/lib/utils/functions/sqlFunctions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sqlFunctions.js","sourceRoot":"","sources":["../../../src/lib/utils/functions/sqlFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const unCamelCase: (str: string
|
|
1
|
+
export declare const unCamelCase: (str: string) => string;
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.unCamelCase = void 0;
|
|
4
|
-
|
|
5
|
-
var forceDisplayOriginalColumnName = localStorage.getItem('force-display-original-column-names') === 'true';
|
|
6
|
-
var unCamelCase = function (str, facetAliases) {
|
|
4
|
+
var unCamelCase = function (str) {
|
|
7
5
|
// https://stackoverflow.com/questions/4149276/how-to-convert-camelcase-to-camel-case
|
|
8
|
-
// SWC-5982: if force-display-original-column-names is set, then just return the string
|
|
9
|
-
if (!str || forceDisplayOriginalColumnName) {
|
|
10
|
-
return str;
|
|
11
|
-
}
|
|
12
|
-
if (facetAliases === null || facetAliases === void 0 ? void 0 : facetAliases[str]) {
|
|
13
|
-
return facetAliases[str];
|
|
14
|
-
}
|
|
15
6
|
return (str
|
|
16
7
|
// insert a space between lower & upper
|
|
17
8
|
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unCamelCase.js","sourceRoot":"","sources":["../../../src/lib/utils/functions/unCamelCase.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"unCamelCase.js","sourceRoot":"","sources":["../../../src/lib/utils/functions/unCamelCase.ts"],"names":[],"mappings":";;;AAAO,IAAM,WAAW,GAAG,UAAC,GAAW;IACrC,qFAAqF;IACrF,OAAO,CACL,GAAG;QACD,uCAAuC;SACtC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;QACpC,0DAA0D;SACzD,OAAO,CAAC,0BAA0B,EAAE,SAAS,CAAC;QAC/C,gCAAgC;SAC/B,OAAO,CAAC,IAAI,EAAE,UAAC,GAAW;QACzB,OAAO,GAAG,CAAC,WAAW,EAAE,CAAA;IAC1B,CAAC,CAAC,CACL,CAAA;AACH,CAAC,CAAA;AAbY,QAAA,WAAW,eAavB"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { EntityHeader, UserGroupHeader } from '../synapseTypes';
|
|
2
|
-
export declare type HookType = 'ENTITY_HEADER' | 'USER_PROFILE';
|
|
1
|
+
import { EntityHeader, Evaluation, UserGroupHeader } from '../synapseTypes';
|
|
2
|
+
export declare type HookType = 'ENTITY_HEADER' | 'USER_PROFILE' | 'EVALUATION_QUEUE';
|
|
3
3
|
export declare type UseGetInfoFromIdsProps = {
|
|
4
4
|
ids: string[];
|
|
5
5
|
type: HookType;
|
|
6
6
|
};
|
|
7
7
|
/**
|
|
8
|
-
* React hook to get user profiles or entities. Utilizes a custom cache in sessionStorage.
|
|
8
|
+
* React hook to get user profiles or entities or evaluation queues. Utilizes a custom cache in sessionStorage.
|
|
9
9
|
*
|
|
10
10
|
* For fetching just one entity or usergroup, see useGetEntity/useGetUserGroupHeader hooks powered by react-query
|
|
11
11
|
* @returns
|
|
12
12
|
*/
|
|
13
|
-
export default function useGetInfoFromIds<T extends EntityHeader | UserGroupHeader>(props: UseGetInfoFromIdsProps): T[];
|
|
13
|
+
export default function useGetInfoFromIds<T extends EntityHeader | UserGroupHeader | Evaluation>(props: UseGetInfoFromIdsProps): T[];
|
|
@@ -27,6 +27,17 @@ var entityHeaderTemplate = {
|
|
|
27
27
|
modifiedBy: 'null',
|
|
28
28
|
isLatestVersion: true, // If this version is the latest version of the entity
|
|
29
29
|
};
|
|
30
|
+
var evaluationTemplate = {
|
|
31
|
+
id: 'unknown',
|
|
32
|
+
etag: 'Unknown',
|
|
33
|
+
name: 'Unknown',
|
|
34
|
+
description: 'Unknown',
|
|
35
|
+
ownerId: 'null',
|
|
36
|
+
createdOn: 'null',
|
|
37
|
+
contentSource: 'Unknown',
|
|
38
|
+
submissionInstructionsMessage: 'Unknown',
|
|
39
|
+
submissionReceiptMessage: 'Unknown', // Message to display to users upon successful submission to this Evaluation.
|
|
40
|
+
};
|
|
30
41
|
var getEntityHeaderItems = function (lookupList, token) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
31
42
|
var newData, notFound, notFoundPlaceholders;
|
|
32
43
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -53,8 +64,21 @@ var getUserGroupHeaderItems = function (lookupList) { return tslib_1.__awaiter(v
|
|
|
53
64
|
}
|
|
54
65
|
});
|
|
55
66
|
}); };
|
|
67
|
+
var getEvaluationItems = function (lookupList, token) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
68
|
+
var newData, notFound, notFoundPlaceholders;
|
|
69
|
+
return tslib_1.__generator(this, function (_a) {
|
|
70
|
+
switch (_a.label) {
|
|
71
|
+
case 0: return [4 /*yield*/, (0, SynapseClient_1.getEvaluations)(lookupList, token)];
|
|
72
|
+
case 1:
|
|
73
|
+
newData = _a.sent();
|
|
74
|
+
notFound = lookupList.filter(function (item) { return newData.results.map(function (item) { return item.id; }).indexOf(item) === -1; });
|
|
75
|
+
notFoundPlaceholders = notFound.map(function (item) { return (tslib_1.__assign(tslib_1.__assign({}, evaluationTemplate), { id: item, name: item })); });
|
|
76
|
+
return [2 /*return*/, tslib_1.__spreadArray(tslib_1.__spreadArray([], newData.results, true), notFoundPlaceholders, true)];
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}); };
|
|
56
80
|
/**
|
|
57
|
-
* React hook to get user profiles or entities. Utilizes a custom cache in sessionStorage.
|
|
81
|
+
* React hook to get user profiles or entities or evaluation queues. Utilizes a custom cache in sessionStorage.
|
|
58
82
|
*
|
|
59
83
|
* For fetching just one entity or usergroup, see useGetEntity/useGetUserGroupHeader hooks powered by react-query
|
|
60
84
|
* @returns
|
|
@@ -68,40 +92,50 @@ function useGetInfoFromIds(props) {
|
|
|
68
92
|
return type === 'USER_PROFILE' ? 'ownerId' : 'id';
|
|
69
93
|
};
|
|
70
94
|
var storageKey = function (type) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
95
|
+
switch (type) {
|
|
96
|
+
case 'USER_PROFILE':
|
|
97
|
+
return __1.SynapseConstants.USER_PROFILE_STORAGE_KEY;
|
|
98
|
+
case 'ENTITY_HEADER':
|
|
99
|
+
return __1.SynapseConstants.ENTITY_HEADER_STORAGE_KEY;
|
|
100
|
+
case 'EVALUATION_QUEUE':
|
|
101
|
+
return __1.SynapseConstants.EVALUATIONS_STORAGE_KEY;
|
|
102
|
+
default:
|
|
103
|
+
return '';
|
|
104
|
+
}
|
|
74
105
|
};
|
|
75
106
|
// look at current list of data, see if incoming ids has new data,
|
|
76
107
|
// if so grab those ids
|
|
77
108
|
var curList = data.map(function (el) { return el[idProp(type)]; });
|
|
78
109
|
var incomingList = ids.filter(function (el) { return el !== __1.SynapseConstants.VALUE_NOT_SET; });
|
|
79
110
|
var newValues = (0, lodash_es_1.uniq)(lodash_es_1.without.apply(void 0, tslib_1.__spreadArray([incomingList], curList, false)));
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
var
|
|
95
|
-
|
|
96
|
-
|
|
111
|
+
(0, react_1.useEffect)(function () {
|
|
112
|
+
var saveToSessionStorage = function (data, type) {
|
|
113
|
+
if (!data.length) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
//get what's there
|
|
117
|
+
var dataInStorage = sessionStorage.getItem(storageKey(type));
|
|
118
|
+
try {
|
|
119
|
+
var dataInStorageAsObjectArr = dataInStorage
|
|
120
|
+
? JSON.parse(dataInStorage)
|
|
121
|
+
: [];
|
|
122
|
+
//get an array of ids for items already in storage
|
|
123
|
+
var ids_1 = dataInStorageAsObjectArr.map(function (item) { return item[idProp(type)]; });
|
|
124
|
+
//push all the new data if ids are new
|
|
125
|
+
for (var _i = 0, data_1 = data; _i < data_1.length; _i++) {
|
|
126
|
+
var dataObject = data_1[_i];
|
|
127
|
+
if (!ids_1.includes(dataObject[idProp(type)])) {
|
|
128
|
+
dataInStorageAsObjectArr.push(dataObject);
|
|
129
|
+
}
|
|
97
130
|
}
|
|
131
|
+
sessionStorage.setItem(storageKey(type), JSON.stringify(dataInStorageAsObjectArr));
|
|
98
132
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
};
|
|
133
|
+
catch (e) {
|
|
134
|
+
sessionStorage.setItem(storageKey(type), JSON.stringify(data));
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
saveToSessionStorage(data, type);
|
|
138
|
+
}, [data, type]);
|
|
105
139
|
// Alina TODO: check if the items are already in Local Storage before making server call.
|
|
106
140
|
// Michael TODO: There's a bug where the data held in useGetInfoFromIds will be stale if the user token changes,
|
|
107
141
|
// this can be solved by using the useCompare hook on the token to track when it changes
|
|
@@ -112,49 +146,57 @@ function useGetInfoFromIds(props) {
|
|
|
112
146
|
return tslib_1.__generator(this, function (_b) {
|
|
113
147
|
switch (_b.label) {
|
|
114
148
|
case 0:
|
|
115
|
-
if (!(newValues.length > 0)) return [3 /*break*/,
|
|
149
|
+
if (!(newValues.length > 0)) return [3 /*break*/, 13];
|
|
116
150
|
_b.label = 1;
|
|
117
151
|
case 1:
|
|
118
|
-
_b.trys.push([1,
|
|
152
|
+
_b.trys.push([1, 12, , 13]);
|
|
119
153
|
newIds = Array.from(newValues);
|
|
120
|
-
newReferences = type === '
|
|
121
|
-
? newIds
|
|
122
|
-
: newIds
|
|
154
|
+
newReferences = type === 'ENTITY_HEADER'
|
|
155
|
+
? newIds.map(function (el) { return ({ targetId: el }); })
|
|
156
|
+
: newIds;
|
|
123
157
|
newReferencesChunks = (0, lodash_es_1.chunk)(newReferences, 45);
|
|
124
158
|
totalData_1 = [];
|
|
125
159
|
_i = 0, newReferencesChunks_1 = newReferencesChunks;
|
|
126
160
|
_b.label = 2;
|
|
127
161
|
case 2:
|
|
128
|
-
if (!(_i < newReferencesChunks_1.length)) return [3 /*break*/,
|
|
162
|
+
if (!(_i < newReferencesChunks_1.length)) return [3 /*break*/, 11];
|
|
129
163
|
newReferences_1 = newReferencesChunks_1[_i];
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
164
|
+
newData = [];
|
|
165
|
+
_a = type;
|
|
166
|
+
switch (_a) {
|
|
167
|
+
case 'USER_PROFILE': return [3 /*break*/, 3];
|
|
168
|
+
case 'ENTITY_HEADER': return [3 /*break*/, 5];
|
|
169
|
+
case 'EVALUATION_QUEUE': return [3 /*break*/, 7];
|
|
170
|
+
}
|
|
171
|
+
return [3 /*break*/, 9];
|
|
172
|
+
case 3: return [4 /*yield*/, getUserGroupHeaderItems(newReferences_1)];
|
|
173
|
+
case 4:
|
|
174
|
+
newData = _b.sent();
|
|
175
|
+
return [3 /*break*/, 9];
|
|
176
|
+
case 5: return [4 /*yield*/, getEntityHeaderItems(newReferences_1, accessToken)];
|
|
139
177
|
case 6:
|
|
140
|
-
newData =
|
|
178
|
+
newData = _b.sent();
|
|
179
|
+
return [3 /*break*/, 9];
|
|
180
|
+
case 7: return [4 /*yield*/, getEvaluationItems(newReferences_1, accessToken)];
|
|
181
|
+
case 8:
|
|
182
|
+
newData = _b.sent();
|
|
183
|
+
return [3 /*break*/, 9];
|
|
184
|
+
case 9:
|
|
141
185
|
totalData_1.push.apply(totalData_1, newData);
|
|
142
|
-
_b.label =
|
|
143
|
-
case
|
|
186
|
+
_b.label = 10;
|
|
187
|
+
case 10:
|
|
144
188
|
_i++;
|
|
145
189
|
return [3 /*break*/, 2];
|
|
146
|
-
case
|
|
190
|
+
case 11:
|
|
147
191
|
if (!isCancelled) {
|
|
148
192
|
setData(function (oldData) { return oldData.concat.apply(oldData, totalData_1); });
|
|
149
193
|
}
|
|
150
|
-
return [3 /*break*/,
|
|
151
|
-
case
|
|
194
|
+
return [3 /*break*/, 13];
|
|
195
|
+
case 12:
|
|
152
196
|
error_1 = _b.sent();
|
|
153
197
|
console.error('Error on data retrieval', error_1);
|
|
154
|
-
return [3 /*break*/,
|
|
155
|
-
case
|
|
156
|
-
saveToSessionStorage(data, type);
|
|
157
|
-
return [2 /*return*/];
|
|
198
|
+
return [3 /*break*/, 13];
|
|
199
|
+
case 13: return [2 /*return*/];
|
|
158
200
|
}
|
|
159
201
|
});
|
|
160
202
|
}); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetInfoFromIds.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useGetInfoFromIds.ts"],"names":[],"mappings":";;;AAAA,uCAAgD;AAChD,+
|
|
1
|
+
{"version":3,"file":"useGetInfoFromIds.js","sourceRoot":"","sources":["../../../src/lib/utils/hooks/useGetInfoFromIds.ts"],"names":[],"mappings":"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"}
|