@finos/legend-query-builder 4.15.2 → 4.15.4
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/__lib__/QueryBuilderTesting.d.ts +1 -0
- package/lib/__lib__/QueryBuilderTesting.d.ts.map +1 -1
- package/lib/__lib__/QueryBuilderTesting.js +2 -0
- package/lib/__lib__/QueryBuilderTesting.js.map +1 -1
- package/lib/components/data-cube/QueryBuilderDataCube.d.ts.map +1 -1
- package/lib/components/data-cube/QueryBuilderDataCube.js +6 -7
- package/lib/components/data-cube/QueryBuilderDataCube.js.map +1 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +38 -33
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +12 -5
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +2 -2
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js +4 -3
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSResultShared.d.ts +2 -2
- package/lib/components/result/tds/QueryBuilderTDSResultShared.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSResultShared.js +157 -19
- package/lib/components/result/tds/QueryBuilderTDSResultShared.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/QueryBuilderState.d.ts +6 -1
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +3 -0
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/explorer/QueryFunctionsExplorerState.d.ts +17 -6
- package/lib/stores/explorer/QueryFunctionsExplorerState.d.ts.map +1 -1
- package/lib/stores/explorer/QueryFunctionsExplorerState.js +142 -59
- package/lib/stores/explorer/QueryFunctionsExplorerState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterOperator.d.ts +1 -1
- package/lib/stores/filter/QueryBuilderFilterOperator.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.js +8 -3
- package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +1 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +3 -3
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +3 -3
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts +2 -2
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +3 -3
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
- package/package.json +6 -6
- package/src/__lib__/QueryBuilderTesting.ts +2 -0
- package/src/components/data-cube/QueryBuilderDataCube.tsx +15 -25
- package/src/components/explorer/QueryBuilderFunctionsExplorerPanel.tsx +63 -70
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +23 -11
- package/src/components/filter/QueryBuilderFilterPanel.tsx +2 -2
- package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +7 -3
- package/src/components/result/tds/QueryBuilderTDSResultShared.tsx +334 -26
- package/src/index.ts +1 -0
- package/src/stores/QueryBuilderState.ts +12 -0
- package/src/stores/explorer/QueryFunctionsExplorerState.ts +227 -94
- package/src/stores/filter/QueryBuilderFilterOperator.ts +1 -1
- package/src/stores/filter/QueryBuilderFilterState.ts +10 -5
- package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +1 -1
- package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +3 -5
- package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +3 -5
- package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +2 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +2 -4
- package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +2 -4
- package/src/stores/filter/operators/QueryBuilderFilterOperator_In.ts +2 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.ts +2 -2
- package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +2 -4
- package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +2 -4
- package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +3 -5
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderFilterOperator_LessThanEqual.js","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EACL,cAAc,GAIf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,yBAAyB,EACzB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAC9F,OAAO,EAAE,kCAAkC,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAE3F,MAAM,OAAO,wCACX,SAAQ,0BAA0B;IAGlC,QAAQ
|
1
|
+
{"version":3,"file":"QueryBuilderFilterOperator_LessThanEqual.js","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts"],"names":[],"mappings":"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"}
|
@@ -18,7 +18,7 @@ import { QueryBuilderFilterOperator } from '../QueryBuilderFilterOperator.js';
|
|
18
18
|
import { type ValueSpecification, type SimpleFunctionExpression } from '@finos/legend-graph';
|
19
19
|
import { type Hashable } from '@finos/legend-shared';
|
20
20
|
export declare class QueryBuilderFilterOperator_StartWith extends QueryBuilderFilterOperator implements Hashable {
|
21
|
-
getLabel(
|
21
|
+
getLabel(): string;
|
22
22
|
isCompatibleWithFilterConditionProperty(filterConditionState: FilterConditionState): boolean;
|
23
23
|
isCompatibleWithFilterConditionValue(filterConditionState: FilterConditionState): boolean;
|
24
24
|
getDefaultFilterConditionValue(filterConditionState: FilterConditionState): ValueSpecification | undefined;
|
@@ -27,7 +27,7 @@ export declare class QueryBuilderFilterOperator_StartWith extends QueryBuilderFi
|
|
27
27
|
get hashCode(): string;
|
28
28
|
}
|
29
29
|
export declare class QueryBuilderFilterOperator_NotStartWith extends QueryBuilderFilterOperator_StartWith {
|
30
|
-
getLabel(
|
30
|
+
getLabel(): string;
|
31
31
|
buildFilterConditionExpression(filterConditionState: FilterConditionState, lambdaParameterName?: string | undefined): ValueSpecification;
|
32
32
|
buildFilterConditionState(filterState: QueryBuilderFilterState, expression: SimpleFunctionExpression): FilterConditionState | undefined;
|
33
33
|
get hashCode(): string;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderFilterOperator_StartWith.d.ts","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAE9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,sBAAsB,CAAC;AAa9B,qBAAa,oCACX,SAAQ,0BACR,YAAW,QAAQ;IAEnB,QAAQ,
|
1
|
+
{"version":3,"file":"QueryBuilderFilterOperator_StartWith.d.ts","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,EAE9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,sBAAsB,CAAC;AAa9B,qBAAa,oCACX,SAAQ,0BACR,YAAW,QAAQ;IAEnB,QAAQ,IAAI,MAAM;IAIlB,uCAAuC,CACrC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO;IAQV,oCAAoC,CAClC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO;IASV,8BAA8B,CAC5B,oBAAoB,EAAE,oBAAoB,GACzC,kBAAkB,GAAG,SAAS;IAsBjC,8BAA8B,CAC5B,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,GACvC,kBAAkB;IAQrB,yBAAyB,CACvB,WAAW,EAAE,uBAAuB,EACpC,UAAU,EAAE,wBAAwB,GACnC,oBAAoB,GAAG,SAAS;IASnC,IAAI,QAAQ,IAAI,MAAM,CAIrB;CACF;AAED,qBAAa,uCAAwC,SAAQ,oCAAoC;IACtF,QAAQ,IAAI,MAAM;IAIlB,8BAA8B,CACrC,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,GACvC,kBAAkB;IASZ,yBAAyB,CAChC,WAAW,EAAE,uBAAuB,EACpC,UAAU,EAAE,wBAAwB,GACnC,oBAAoB,GAAG,SAAS;IAOnC,IAAa,QAAQ,IAAI,MAAM,CAI9B;CACF"}
|
@@ -22,7 +22,7 @@ import { buildNotExpression, unwrapNotExpression, } from '../../QueryBuilderValu
|
|
22
22
|
import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../QueryBuilderStateHashUtils.js';
|
23
23
|
import { buildDefaultInstanceValue } from '../../shared/ValueSpecificationEditorHelper.js';
|
24
24
|
export class QueryBuilderFilterOperator_StartWith extends QueryBuilderFilterOperator {
|
25
|
-
getLabel(
|
25
|
+
getLabel() {
|
26
26
|
return 'starts with';
|
27
27
|
}
|
28
28
|
isCompatibleWithFilterConditionProperty(filterConditionState) {
|
@@ -47,7 +47,7 @@ export class QueryBuilderFilterOperator_StartWith extends QueryBuilderFilterOper
|
|
47
47
|
.INTERNAL__enableInitializingDefaultSimpleExpressionValue);
|
48
48
|
}
|
49
49
|
default:
|
50
|
-
throw new UnsupportedOperationError(`Can't get default value for filter operator '${this.getLabel(
|
50
|
+
throw new UnsupportedOperationError(`Can't get default value for filter operator '${this.getLabel()}' when the LHS property is of type '${propertyType.path}'`);
|
51
51
|
}
|
52
52
|
}
|
53
53
|
buildFilterConditionExpression(filterConditionState, lambdaParameterName) {
|
@@ -63,7 +63,7 @@ export class QueryBuilderFilterOperator_StartWith extends QueryBuilderFilterOper
|
|
63
63
|
}
|
64
64
|
}
|
65
65
|
export class QueryBuilderFilterOperator_NotStartWith extends QueryBuilderFilterOperator_StartWith {
|
66
|
-
getLabel(
|
66
|
+
getLabel() {
|
67
67
|
return `doesn't start with`;
|
68
68
|
}
|
69
69
|
buildFilterConditionExpression(filterConditionState, lambdaParameterName) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"QueryBuilderFilterOperator_StartWith.js","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EACL,cAAc,EAGd,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,yBAAyB,EACzB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,0DAA0D,CAAC;AAClE,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,kCAAkC,EAAE,MAAM,qCAAqC,CAAC;AACzF,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAE3F,MAAM,OAAO,oCACX,SAAQ,0BAA0B;IAGlC,QAAQ
|
1
|
+
{"version":3,"file":"QueryBuilderFilterOperator_StartWith.js","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@finos/legend-query-builder",
|
3
|
-
"version": "4.15.
|
3
|
+
"version": "4.15.4",
|
4
4
|
"description": "Legend query builder core",
|
5
5
|
"keywords": [
|
6
6
|
"legend",
|
@@ -44,11 +44,11 @@
|
|
44
44
|
"dependencies": {
|
45
45
|
"@finos/legend-application": "16.0.3",
|
46
46
|
"@finos/legend-art": "7.1.62",
|
47
|
-
"@finos/legend-code-editor": "2.0.
|
48
|
-
"@finos/legend-data-cube": "0.0.
|
49
|
-
"@finos/legend-graph": "31.10.
|
50
|
-
"@finos/legend-lego": "2.0.
|
51
|
-
"@finos/legend-server-depot": "6.0.
|
47
|
+
"@finos/legend-code-editor": "2.0.5",
|
48
|
+
"@finos/legend-data-cube": "0.0.10",
|
49
|
+
"@finos/legend-graph": "31.10.39",
|
50
|
+
"@finos/legend-lego": "2.0.7",
|
51
|
+
"@finos/legend-server-depot": "6.0.63",
|
52
52
|
"@finos/legend-shared": "10.0.57",
|
53
53
|
"@finos/legend-storage": "3.0.107",
|
54
54
|
"@testing-library/dom": "10.4.0",
|
@@ -53,6 +53,8 @@ export enum QUERY_BUILDER_TEST_ID {
|
|
53
53
|
QUERY_BUILDER_PARAMETERS = 'query-builder__parameters',
|
54
54
|
// constant panel
|
55
55
|
QUERY_BUILDER_CONSTANTS = 'query-builder__constants',
|
56
|
+
// function panel
|
57
|
+
QUERY_BUILDER_FUNCTIONS = 'query-builder__functions',
|
56
58
|
// other
|
57
59
|
QUERY_BUILDER_TOOLTIP_ICON = 'query-builder__tooltip__icon',
|
58
60
|
// result panel
|
@@ -21,12 +21,11 @@ import { QueryBuilderDataCubeApplicationEngine } from '../../stores/data-cube/Qu
|
|
21
21
|
import {
|
22
22
|
clsx,
|
23
23
|
Dialog,
|
24
|
-
EmptyWindowRestoreIcon,
|
25
24
|
Modal,
|
25
|
+
ModalFooter,
|
26
|
+
ModalFooterButton,
|
26
27
|
TimesIcon,
|
27
|
-
WindowMaximizeIcon,
|
28
28
|
} from '@finos/legend-art';
|
29
|
-
import { useState } from 'react';
|
30
29
|
import { createDataCubeEngineFromQueryBuilder } from '../../stores/data-cube/QueryBuilderDataCubeEngineHelper.js';
|
31
30
|
|
32
31
|
const QueryBuilderDataCube = observer(
|
@@ -55,37 +54,25 @@ const QueryBuilderDataCube = observer(
|
|
55
54
|
export const QueryBuilderDataCubeDialog = observer(
|
56
55
|
(props: { queryBuilderState: QueryBuilderState }) => {
|
57
56
|
const { queryBuilderState } = props;
|
58
|
-
const [isMaximized, setIsMaximized] = useState(false);
|
59
|
-
const toggleMaximize = (): void => setIsMaximized(!isMaximized);
|
60
57
|
const closeModal = () => queryBuilderState.setIsCubeEnabled(false);
|
61
58
|
return (
|
62
59
|
<Dialog
|
63
60
|
open={true}
|
64
61
|
onClose={closeModal}
|
65
|
-
classes={{
|
62
|
+
classes={{
|
63
|
+
root: 'editor-modal__root-container',
|
64
|
+
container: 'editor-modal__container',
|
65
|
+
paper: 'editor-modal__content',
|
66
|
+
}}
|
66
67
|
>
|
67
68
|
<Modal
|
68
69
|
darkMode={false}
|
69
|
-
className={clsx('editor-modal query-
|
70
|
-
'query-builder__dialog--expanded': isMaximized,
|
71
|
-
})}
|
70
|
+
className={clsx('editor-modal query-builder-data-cube__dialog')}
|
72
71
|
>
|
73
|
-
<div className="query-
|
74
|
-
<div className="query-
|
72
|
+
<div className="query-builder-data-cube__dialog__header">
|
73
|
+
<div className="query-builder-data-cube__dialog__header__actions">
|
75
74
|
<button
|
76
|
-
className="query-
|
77
|
-
tabIndex={-1}
|
78
|
-
onClick={toggleMaximize}
|
79
|
-
title={isMaximized ? 'Minimize' : 'Maximize'}
|
80
|
-
>
|
81
|
-
{isMaximized ? (
|
82
|
-
<EmptyWindowRestoreIcon />
|
83
|
-
) : (
|
84
|
-
<WindowMaximizeIcon />
|
85
|
-
)}
|
86
|
-
</button>
|
87
|
-
<button
|
88
|
-
className="query-builder__dialog__header__action"
|
75
|
+
className="query-builder-data-cube__dialog__header__action"
|
89
76
|
tabIndex={-1}
|
90
77
|
onClick={closeModal}
|
91
78
|
title="Close"
|
@@ -94,9 +81,12 @@ export const QueryBuilderDataCubeDialog = observer(
|
|
94
81
|
</button>
|
95
82
|
</div>
|
96
83
|
</div>
|
97
|
-
<div className="query-
|
84
|
+
<div className="query-builder-data-cube__dialog__content">
|
98
85
|
<QueryBuilderDataCube queryBuilderState={queryBuilderState} />
|
99
86
|
</div>
|
87
|
+
<ModalFooter>
|
88
|
+
<ModalFooterButton onClick={closeModal}>Close</ModalFooterButton>
|
89
|
+
</ModalFooter>
|
100
90
|
</Modal>
|
101
91
|
</Dialog>
|
102
92
|
);
|
@@ -44,16 +44,14 @@ import {
|
|
44
44
|
import {
|
45
45
|
type QueryBuilderFunctionsExplorerTreeNodeData,
|
46
46
|
type QueryBuilderFunctionsExplorerDragSource,
|
47
|
-
generateFunctionsExplorerTreeNodeData,
|
48
47
|
getFunctionsExplorerTreeNodeChildren,
|
49
48
|
QUERY_BUILDER_FUNCTION_DND_TYPE,
|
49
|
+
generateFunctionsExplorerTreeNodeDataFromFunctionAnalysisInfo,
|
50
50
|
} from '../../stores/explorer/QueryFunctionsExplorerState.js';
|
51
51
|
import { useDrag } from 'react-dnd';
|
52
52
|
import {
|
53
|
-
|
54
|
-
generateFunctionPrettyName,
|
53
|
+
type FunctionAnalysisInfo,
|
55
54
|
getElementRootPackage,
|
56
|
-
Package,
|
57
55
|
ROOT_PACKAGE_NAME,
|
58
56
|
getMultiplicityDescription,
|
59
57
|
CORE_PURE_PATH,
|
@@ -61,20 +59,22 @@ import {
|
|
61
59
|
} from '@finos/legend-graph';
|
62
60
|
import type { QueryBuilderState } from '../../stores/QueryBuilderState.js';
|
63
61
|
import { QueryBuilderTelemetryHelper } from '../../__lib__/QueryBuilderTelemetryHelper.js';
|
62
|
+
import { QUERY_BUILDER_TEST_ID } from '../../__lib__/QueryBuilderTesting.js';
|
64
63
|
|
65
64
|
const isDependencyTreeNode = (
|
66
65
|
node: QueryBuilderFunctionsExplorerTreeNodeData,
|
67
66
|
): boolean =>
|
68
|
-
|
69
|
-
|
67
|
+
node.package !== undefined &&
|
68
|
+
getElementRootPackage(node.package).name ===
|
69
|
+
ROOT_PACKAGE_NAME.PROJECT_DEPENDENCY_ROOT;
|
70
70
|
|
71
71
|
const QueryBuilderFunctionInfoTooltip: React.FC<{
|
72
|
-
element: ConcreteFunctionDefinition;
|
73
72
|
children: React.ReactElement;
|
74
73
|
placement?: TooltipPlacement | undefined;
|
74
|
+
functionInfo: FunctionAnalysisInfo;
|
75
75
|
}> = (props) => {
|
76
|
-
const {
|
77
|
-
const documentation =
|
76
|
+
const { children, placement, functionInfo } = props;
|
77
|
+
const documentation = functionInfo.taggedValues
|
78
78
|
.filter(
|
79
79
|
(taggedValue) =>
|
80
80
|
taggedValue.tag.ownerReference.value.path ===
|
@@ -83,6 +83,23 @@ const QueryBuilderFunctionInfoTooltip: React.FC<{
|
|
83
83
|
)
|
84
84
|
.map((taggedValue) => taggedValue.value);
|
85
85
|
|
86
|
+
const generateParameterCallString = (): string => {
|
87
|
+
if (
|
88
|
+
functionInfo.parameterInfoList.length &&
|
89
|
+
functionInfo.parameterInfoList.length > 0
|
90
|
+
) {
|
91
|
+
return functionInfo.parameterInfoList
|
92
|
+
.map(
|
93
|
+
(param) =>
|
94
|
+
`${param.name}: ${
|
95
|
+
param.type
|
96
|
+
}${getMultiplicityDescription(param.multiplicity)}`,
|
97
|
+
)
|
98
|
+
.join('; ');
|
99
|
+
}
|
100
|
+
return '';
|
101
|
+
};
|
102
|
+
|
86
103
|
return (
|
87
104
|
<Tooltip
|
88
105
|
arrow={true}
|
@@ -102,7 +119,7 @@ const QueryBuilderFunctionInfoTooltip: React.FC<{
|
|
102
119
|
Function Name
|
103
120
|
</div>
|
104
121
|
<div className="query-builder__tooltip__item__value">
|
105
|
-
{
|
122
|
+
{functionInfo.functionPath}
|
106
123
|
</div>
|
107
124
|
</div>
|
108
125
|
<div className="query-builder__tooltip__item">
|
@@ -110,14 +127,7 @@ const QueryBuilderFunctionInfoTooltip: React.FC<{
|
|
110
127
|
Parameters
|
111
128
|
</div>
|
112
129
|
<div className="query-builder__tooltip__item__value">
|
113
|
-
{
|
114
|
-
.map(
|
115
|
-
(param) =>
|
116
|
-
`${param.name}: ${
|
117
|
-
param.type.value.name
|
118
|
-
}${getMultiplicityDescription(param.multiplicity)}`,
|
119
|
-
)
|
120
|
-
.join('; ')}
|
130
|
+
{generateParameterCallString()}
|
121
131
|
</div>
|
122
132
|
</div>
|
123
133
|
{Boolean(documentation.length) && (
|
@@ -135,7 +145,7 @@ const QueryBuilderFunctionInfoTooltip: React.FC<{
|
|
135
145
|
Return Type
|
136
146
|
</div>
|
137
147
|
<div className="query-builder__tooltip__item__value">
|
138
|
-
{
|
148
|
+
{functionInfo.returnType}
|
139
149
|
</div>
|
140
150
|
</div>
|
141
151
|
</div>
|
@@ -147,20 +157,10 @@ const QueryBuilderFunctionInfoTooltip: React.FC<{
|
|
147
157
|
};
|
148
158
|
|
149
159
|
const QueryBuilderFunctionsExplorerListEntry = observer(
|
150
|
-
(props: {
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
}) => {
|
155
|
-
const { queryBuilderState, element, rootPackageName } = props;
|
156
|
-
const node = generateFunctionsExplorerTreeNodeData(
|
157
|
-
queryBuilderState,
|
158
|
-
element,
|
159
|
-
rootPackageName,
|
160
|
-
);
|
161
|
-
const functionPrettyName = generateFunctionPrettyName(element, {
|
162
|
-
fullPath: true,
|
163
|
-
});
|
160
|
+
(props: { element: FunctionAnalysisInfo }) => {
|
161
|
+
const { element } = props;
|
162
|
+
const node =
|
163
|
+
generateFunctionsExplorerTreeNodeDataFromFunctionAnalysisInfo(element);
|
164
164
|
const [, dragConnector, dragPreviewConnector] = useDrag(
|
165
165
|
() => ({
|
166
166
|
type: QUERY_BUILDER_FUNCTION_DND_TYPE,
|
@@ -183,15 +183,13 @@ const QueryBuilderFunctionsExplorerListEntry = observer(
|
|
183
183
|
</div>
|
184
184
|
<div
|
185
185
|
className="query-builder__functions-explorer__function__label"
|
186
|
-
title={functionPrettyName}
|
186
|
+
title={element.functionPrettyName}
|
187
187
|
>
|
188
|
-
{functionPrettyName}
|
188
|
+
{element.functionPrettyName}
|
189
189
|
</div>
|
190
190
|
</div>
|
191
191
|
<div className="query-builder__functions-explorer__function__actions">
|
192
|
-
<QueryBuilderFunctionInfoTooltip
|
193
|
-
element={node.packageableElement as ConcreteFunctionDefinition}
|
194
|
-
>
|
192
|
+
<QueryBuilderFunctionInfoTooltip functionInfo={element}>
|
195
193
|
<div className="query-builder__functions-explorer__function__action query-builder__functions-explorer__function__node__info">
|
196
194
|
<InfoCircleIcon />
|
197
195
|
</div>
|
@@ -212,11 +210,11 @@ const QueryBuilderFunctionsExplorerTreeNodeContainer = observer(
|
|
212
210
|
>,
|
213
211
|
) => {
|
214
212
|
const { node, level, stepPaddingInRem, onNodeSelect } = props;
|
215
|
-
const
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
213
|
+
const name = node.functionAnalysisInfo
|
214
|
+
? node.functionAnalysisInfo.functionPrettyName.split(
|
215
|
+
`${node.functionAnalysisInfo.packagePath}::`,
|
216
|
+
)[1]
|
217
|
+
: (node.package?.name ?? '');
|
220
218
|
const isExpandable = Boolean(node.childrenIds.length);
|
221
219
|
const nodeExpandIcon = isExpandable ? (
|
222
220
|
node.isOpen ? (
|
@@ -231,7 +229,7 @@ const QueryBuilderFunctionsExplorerTreeNodeContainer = observer(
|
|
231
229
|
const iconPackageColor = isDependencyTreeNode(node)
|
232
230
|
? 'color--dependency'
|
233
231
|
: '';
|
234
|
-
const nodeTypeIcon =
|
232
|
+
const nodeTypeIcon = node.package ? (
|
235
233
|
node.isOpen ? (
|
236
234
|
<FolderOpenIcon className={iconPackageColor} />
|
237
235
|
) : (
|
@@ -248,10 +246,7 @@ const QueryBuilderFunctionsExplorerTreeNodeContainer = observer(
|
|
248
246
|
}>(
|
249
247
|
() => ({
|
250
248
|
type: QUERY_BUILDER_FUNCTION_DND_TYPE,
|
251
|
-
item: () =>
|
252
|
-
node.packageableElement instanceof ConcreteFunctionDefinition
|
253
|
-
? { node }
|
254
|
-
: {},
|
249
|
+
item: () => (node.functionAnalysisInfo ? { node } : {}),
|
255
250
|
}),
|
256
251
|
[node],
|
257
252
|
);
|
@@ -289,10 +284,9 @@ const QueryBuilderFunctionsExplorerTreeNodeContainer = observer(
|
|
289
284
|
{name}
|
290
285
|
</div>
|
291
286
|
<div className="query-builder__functions-explorer__tree__node__actions">
|
292
|
-
{node.
|
293
|
-
ConcreteFunctionDefinition && (
|
287
|
+
{node.functionAnalysisInfo && (
|
294
288
|
<QueryBuilderFunctionInfoTooltip
|
295
|
-
|
289
|
+
functionInfo={node.functionAnalysisInfo}
|
296
290
|
>
|
297
291
|
<div className="query-builder__functions-explorer__tree__node__action query-builder__functions-explorer__tree__node__info">
|
298
292
|
<InfoCircleIcon />
|
@@ -331,6 +325,7 @@ const QueryBuilderPackableElementExplorerTree = observer(
|
|
331
325
|
const dependencyTreeData = queryFunctionsState.getTreeData(
|
332
326
|
ROOT_PACKAGE_NAME.PROJECT_DEPENDENCY_ROOT,
|
333
327
|
);
|
328
|
+
|
334
329
|
const onDependencyTreeSelect = (
|
335
330
|
node: QueryBuilderFunctionsExplorerTreeNodeData,
|
336
331
|
): void => {
|
@@ -431,6 +426,10 @@ export const QueryBuilderFunctionsExplorerPanel = observer(
|
|
431
426
|
setShowDependencyFuncions(!showDependencyFuncions);
|
432
427
|
};
|
433
428
|
|
429
|
+
useEffect(() => {
|
430
|
+
queryFunctionsState.initializeTreeData();
|
431
|
+
}, [queryFunctionsState]);
|
432
|
+
|
434
433
|
useEffect(() => {
|
435
434
|
QueryBuilderTelemetryHelper.logEvent_RenderPanelFunctionExplorer(
|
436
435
|
queryBuilderState.applicationStore.telemetryService,
|
@@ -438,7 +437,10 @@ export const QueryBuilderFunctionsExplorerPanel = observer(
|
|
438
437
|
}, [queryBuilderState.applicationStore]);
|
439
438
|
|
440
439
|
return (
|
441
|
-
<div
|
440
|
+
<div
|
441
|
+
data-testid={QUERY_BUILDER_TEST_ID.QUERY_BUILDER_FUNCTIONS}
|
442
|
+
className="panel query-builder__functions-explorer"
|
443
|
+
>
|
442
444
|
<div className="panel__header">
|
443
445
|
<div className="panel__header__title">
|
444
446
|
<div className="panel__header__title__label">functions</div>
|
@@ -494,16 +496,13 @@ export const QueryBuilderFunctionsExplorerPanel = observer(
|
|
494
496
|
labelGetter={(
|
495
497
|
item: QueryBuilderFunctionsExplorerDragSource,
|
496
498
|
): string =>
|
497
|
-
|
498
|
-
item.node.packageableElement as ConcreteFunctionDefinition,
|
499
|
-
{ fullPath: true },
|
500
|
-
)
|
499
|
+
item.node.functionAnalysisInfo?.functionPrettyName ?? ''
|
501
500
|
}
|
502
501
|
types={[QUERY_BUILDER_FUNCTION_DND_TYPE]}
|
503
502
|
/>
|
504
503
|
{((showDependencyFuncions &&
|
505
|
-
|
506
|
-
|
504
|
+
queryFunctionsState.dependencyFunctionExplorerStates.length ===
|
505
|
+
0) ||
|
507
506
|
!showDependencyFuncions) &&
|
508
507
|
queryFunctionsState.treeData?.rootIds.length === 0 && (
|
509
508
|
<BlankPanelContent>
|
@@ -521,8 +520,8 @@ export const QueryBuilderFunctionsExplorerPanel = observer(
|
|
521
520
|
/>
|
522
521
|
)}
|
523
522
|
{showDependencyFuncions &&
|
524
|
-
queryFunctionsState.
|
525
|
-
|
523
|
+
queryFunctionsState.dependencyFunctionExplorerStates.length !==
|
524
|
+
0 && (
|
526
525
|
<QueryBuilderPackableElementExplorerTree
|
527
526
|
queryBuilderState={queryBuilderState}
|
528
527
|
rootPackageName={ROOT_PACKAGE_NAME.PROJECT_DEPENDENCY_ROOT}
|
@@ -538,15 +537,13 @@ export const QueryBuilderFunctionsExplorerPanel = observer(
|
|
538
537
|
(funcExplorerState) => (
|
539
538
|
<QueryBuilderFunctionsExplorerListEntry
|
540
539
|
key={funcExplorerState.uuid}
|
541
|
-
|
542
|
-
element={funcExplorerState.concreteFunctionDefinition}
|
543
|
-
rootPackageName={ROOT_PACKAGE_NAME.MAIN}
|
540
|
+
element={funcExplorerState.functionAnalysisInfo}
|
544
541
|
/>
|
545
542
|
),
|
546
543
|
)}
|
547
544
|
{showDependencyFuncions &&
|
548
|
-
queryFunctionsState.
|
549
|
-
|
545
|
+
queryFunctionsState.dependencyFunctionExplorerStates.length >
|
546
|
+
0 && (
|
550
547
|
<>
|
551
548
|
{queryFunctionsState.treeData?.rootIds.length !== 0 && (
|
552
549
|
<div className="query-builder__functions-explorer__separator" />
|
@@ -555,11 +552,7 @@ export const QueryBuilderFunctionsExplorerPanel = observer(
|
|
555
552
|
(funcExplorerState) => (
|
556
553
|
<QueryBuilderFunctionsExplorerListEntry
|
557
554
|
key={funcExplorerState.uuid}
|
558
|
-
|
559
|
-
element={funcExplorerState.concreteFunctionDefinition}
|
560
|
-
rootPackageName={
|
561
|
-
ROOT_PACKAGE_NAME.PROJECT_DEPENDENCY_ROOT
|
562
|
-
}
|
555
|
+
element={funcExplorerState.functionAnalysisInfo}
|
563
556
|
/>
|
564
557
|
),
|
565
558
|
)}
|
@@ -71,8 +71,7 @@ import { QUERY_BUILDER_TEST_ID } from '../../__lib__/QueryBuilderTesting.js';
|
|
71
71
|
import { flowResult } from 'mobx';
|
72
72
|
import { useApplicationStore } from '@finos/legend-application';
|
73
73
|
import {
|
74
|
-
type
|
75
|
-
generateFunctionCallString,
|
74
|
+
type ValueSpecification,
|
76
75
|
LAMBDA_PIPE,
|
77
76
|
VARIABLE_REFERENCE_TOKEN,
|
78
77
|
AbstractPropertyExpression,
|
@@ -81,12 +80,12 @@ import {
|
|
81
80
|
PropertyExplicitReference,
|
82
81
|
VariableExpression,
|
83
82
|
Multiplicity,
|
84
|
-
type ValueSpecification,
|
85
83
|
PrimitiveType,
|
86
84
|
GenericType,
|
87
85
|
GenericTypeExplicitReference,
|
88
86
|
observe_PrimitiveInstanceValue,
|
89
87
|
PrimitiveInstanceValue,
|
88
|
+
generateFunctionCallStringFromFunctionAnalysisInfo,
|
90
89
|
} from '@finos/legend-graph';
|
91
90
|
import {
|
92
91
|
type QueryBuilderFunctionsExplorerDragSource,
|
@@ -239,13 +238,20 @@ const QueryBuilderDerivationProjectionColumnEditor = observer(
|
|
239
238
|
}`,
|
240
239
|
);
|
241
240
|
} else if (type === QUERY_BUILDER_FUNCTION_DND_TYPE) {
|
241
|
+
const functionAnalysisInfo = (
|
242
|
+
item as QueryBuilderFunctionsExplorerDragSource
|
243
|
+
).node.functionAnalysisInfo;
|
244
|
+
const functionPrettyName = functionAnalysisInfo
|
245
|
+
? generateFunctionCallStringFromFunctionAnalysisInfo(
|
246
|
+
projectionColumnState.tdsState.queryBuilderState
|
247
|
+
.graphManagerState.graph,
|
248
|
+
functionAnalysisInfo,
|
249
|
+
)
|
250
|
+
: '';
|
242
251
|
projectionColumnState.derivationLambdaEditorState.setLambdaString(
|
243
252
|
`${
|
244
253
|
projectionColumnState.derivationLambdaEditorState.lambdaString
|
245
|
-
}${
|
246
|
-
(item as QueryBuilderFunctionsExplorerDragSource).node
|
247
|
-
.packageableElement as ConcreteFunctionDefinition,
|
248
|
-
)}`}`,
|
254
|
+
}${functionPrettyName}`,
|
249
255
|
);
|
250
256
|
} else {
|
251
257
|
projectionColumnState.derivationLambdaEditorState.setLambdaString(
|
@@ -1262,11 +1268,17 @@ export const QueryBuilderTDSPanel = observer(
|
|
1262
1268
|
{ addDummyParameter: true },
|
1263
1269
|
),
|
1264
1270
|
);
|
1271
|
+
const functionAnalysisInfo = (
|
1272
|
+
item as QueryBuilderFunctionsExplorerDragSource
|
1273
|
+
).node.functionAnalysisInfo;
|
1274
|
+
const functionPrettyName = functionAnalysisInfo
|
1275
|
+
? generateFunctionCallStringFromFunctionAnalysisInfo(
|
1276
|
+
tdsState.queryBuilderState.graphManagerState.graph,
|
1277
|
+
functionAnalysisInfo,
|
1278
|
+
)
|
1279
|
+
: '';
|
1265
1280
|
derivationProjectionColumn.derivationLambdaEditorState.setLambdaString(
|
1266
|
-
`${DEFAULT_LAMBDA_VARIABLE_NAME}${LAMBDA_PIPE}${
|
1267
|
-
(item as QueryBuilderFunctionsExplorerDragSource).node
|
1268
|
-
.packageableElement as ConcreteFunctionDefinition,
|
1269
|
-
)}`,
|
1281
|
+
`${DEFAULT_LAMBDA_VARIABLE_NAME}${LAMBDA_PIPE}${functionPrettyName} `,
|
1270
1282
|
);
|
1271
1283
|
tdsState.addColumn(derivationProjectionColumn);
|
1272
1284
|
break;
|
@@ -1110,7 +1110,7 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
1110
1110
|
className="query-builder-filter-tree__condition-node__operator__dropdown__option"
|
1111
1111
|
onClick={changeOperator(op)}
|
1112
1112
|
>
|
1113
|
-
{op.getLabel(
|
1113
|
+
{op.getLabel()}
|
1114
1114
|
</MenuContentItem>
|
1115
1115
|
))}
|
1116
1116
|
</MenuContent>
|
@@ -1122,7 +1122,7 @@ const QueryBuilderFilterConditionEditor = observer(
|
|
1122
1122
|
}}
|
1123
1123
|
>
|
1124
1124
|
<div className="query-builder-filter-tree__condition-node__operator__label">
|
1125
|
-
{node.condition.operator.getLabel(
|
1125
|
+
{node.condition.operator.getLabel()}
|
1126
1126
|
</div>
|
1127
1127
|
<div className="query-builder-filter-tree__condition-node__operator__dropdown__trigger">
|
1128
1128
|
<CaretDownIcon />
|
@@ -20,6 +20,7 @@ import { PRIMITIVE_TYPE, type TDSExecutionResult } from '@finos/legend-graph';
|
|
20
20
|
import { useState, useCallback, useEffect } from 'react';
|
21
21
|
import {
|
22
22
|
DataGrid,
|
23
|
+
type DataGridCellSelectionChangedEvent,
|
23
24
|
type DataGridApi,
|
24
25
|
type DataGridCellRange,
|
25
26
|
type DataGridColumnDefinition,
|
@@ -347,7 +348,7 @@ export const QueryBuilderTDSGridResult = observer(
|
|
347
348
|
resultState.mousedOverCell,
|
348
349
|
true,
|
349
350
|
fetchStructureImplementation,
|
350
|
-
);
|
351
|
+
).catch(queryBuilderState.applicationStore.alertUnhandledError);
|
351
352
|
},
|
352
353
|
},
|
353
354
|
{
|
@@ -358,7 +359,7 @@ export const QueryBuilderTDSGridResult = observer(
|
|
358
359
|
resultState.mousedOverCell,
|
359
360
|
false,
|
360
361
|
fetchStructureImplementation,
|
361
|
-
);
|
362
|
+
).catch(queryBuilderState.applicationStore.alertUnhandledError);
|
362
363
|
},
|
363
364
|
},
|
364
365
|
'copy',
|
@@ -377,6 +378,7 @@ export const QueryBuilderTDSGridResult = observer(
|
|
377
378
|
applicationStore,
|
378
379
|
resultState.mousedOverCell,
|
379
380
|
resultState.queryBuilderState.fetchStructureState.implementation,
|
381
|
+
queryBuilderState.applicationStore.alertUnhandledError,
|
380
382
|
],
|
381
383
|
);
|
382
384
|
|
@@ -554,7 +556,9 @@ export const QueryBuilderTDSGridResult = observer(
|
|
554
556
|
onRowDataUpdated={(params) => {
|
555
557
|
params.api.refreshCells({ force: true });
|
556
558
|
}}
|
557
|
-
|
559
|
+
onCellSelectionChanged={(
|
560
|
+
event: DataGridCellSelectionChangedEvent<QueryBuilderTDSRowDataType>,
|
561
|
+
) => {
|
558
562
|
const selectedCells = getSelectedCells(event.api);
|
559
563
|
resultState.setSelectedCells([]);
|
560
564
|
selectedCells.forEach((cell) =>
|