@finos/legend-query-builder 4.2.4 → 4.3.1
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/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +3 -1
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.js +11 -2
- package/lib/components/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/QueryBuilderSideBar.d.ts +16 -0
- package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +85 -7
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/QueryChat.d.ts.map +1 -1
- package/lib/components/QueryChat.js +1 -1
- package/lib/components/QueryChat.js.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js +2 -2
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js +5 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/workflows/ClassQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/ClassQueryBuilder.js +13 -9
- package/lib/components/workflows/ClassQueryBuilder.js.map +1 -1
- package/lib/components/workflows/MappingQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/MappingQueryBuilder.js +13 -11
- package/lib/components/workflows/MappingQueryBuilder.js.map +1 -1
- package/lib/components/workflows/ServiceQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/ServiceQueryBuilder.js +3 -2
- package/lib/components/workflows/ServiceQueryBuilder.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/QueryBuilderExecutionContextState.d.ts +34 -0
- package/lib/stores/QueryBuilderExecutionContextState.d.ts.map +1 -0
- package/lib/stores/QueryBuilderExecutionContextState.js +59 -0
- package/lib/stores/QueryBuilderExecutionContextState.js.map +1 -0
- package/lib/stores/QueryBuilderInternalizeState.d.ts +24 -0
- package/lib/stores/QueryBuilderInternalizeState.d.ts.map +1 -0
- package/lib/stores/QueryBuilderInternalizeState.js +26 -0
- package/lib/stores/QueryBuilderInternalizeState.js.map +1 -0
- package/lib/stores/QueryBuilderResultState.js +5 -5
- package/lib/stores/QueryBuilderResultState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +7 -5
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +19 -17
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.d.ts +1 -1
- package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js +27 -2
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js +28 -2
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.d.ts.map +1 -1
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.js +2 -2
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.js.map +1 -1
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.d.ts.map +1 -1
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js +6 -4
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js +9 -9
- package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.d.ts +2 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js +25 -2
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +3 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.js +2 -1
- package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/workflows/ClassQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/ClassQueryBuilderState.js +2 -1
- package/lib/stores/workflows/ClassQueryBuilderState.js.map +1 -1
- package/lib/stores/workflows/FunctionQueryBuilderState.d.ts +23 -0
- package/lib/stores/workflows/FunctionQueryBuilderState.d.ts.map +1 -0
- package/lib/stores/workflows/FunctionQueryBuilderState.js +27 -0
- package/lib/stores/workflows/FunctionQueryBuilderState.js.map +1 -0
- package/lib/stores/workflows/ServiceQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/ServiceQueryBuilderState.js +7 -7
- package/lib/stores/workflows/ServiceQueryBuilderState.js.map +1 -1
- package/package.json +4 -4
- package/src/components/QueryBuilder.tsx +5 -1
- package/src/components/QueryBuilderResultPanel.tsx +13 -3
- package/src/components/QueryBuilderSideBar.tsx +211 -7
- package/src/components/QueryChat.tsx +2 -1
- package/src/components/__test-utils__/QueryBuilderComponentTestUtils.tsx +2 -2
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +5 -1
- package/src/components/workflows/ClassQueryBuilder.tsx +17 -9
- package/src/components/workflows/MappingQueryBuilder.tsx +15 -11
- package/src/components/workflows/ServiceQueryBuilder.tsx +3 -2
- package/src/index.ts +1 -0
- package/src/stores/QueryBuilderExecutionContextState.ts +69 -0
- package/src/stores/QueryBuilderInternalizeState.ts +34 -0
- package/src/stores/QueryBuilderResultState.ts +6 -6
- package/src/stores/QueryBuilderState.ts +28 -21
- package/src/stores/QueryBuilderStateBuilder.ts +79 -1
- package/src/stores/QueryBuilderValueSpecificationBuilder.ts +50 -1
- package/src/stores/__test-utils__/QueryBuilderStateTestUtils.ts +4 -2
- package/src/stores/entitlements/QueryBuilderCheckEntitlementsState.ts +6 -4
- package/src/stores/explorer/QueryBuilderExplorerState.ts +9 -9
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.ts +64 -2
- package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +1 -1
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +4 -2
- package/src/stores/filter/QueryBuilderFilterState.ts +5 -2
- package/src/stores/workflows/ClassQueryBuilderState.ts +2 -1
- package/src/stores/workflows/FunctionQueryBuilderState.ts +38 -0
- package/src/stores/workflows/ServiceQueryBuilderState.ts +7 -11
- package/tsconfig.json +3 -0
|
@@ -53,16 +53,18 @@ export class QueryBuilderCheckEntitlementsState implements Hashable {
|
|
|
53
53
|
|
|
54
54
|
this.dataAccessState = undefined;
|
|
55
55
|
if (
|
|
56
|
-
this.queryBuilderState.mapping &&
|
|
57
|
-
this.queryBuilderState.runtimeValue instanceof
|
|
56
|
+
this.queryBuilderState.executionContextState.mapping &&
|
|
57
|
+
this.queryBuilderState.executionContextState.runtimeValue instanceof
|
|
58
|
+
RuntimePointer
|
|
58
59
|
) {
|
|
59
60
|
this.dataAccessState = new DataAccessState(
|
|
60
61
|
this.queryBuilderState.applicationStore,
|
|
61
62
|
this.queryBuilderState.graphManagerState,
|
|
62
63
|
{
|
|
63
|
-
mapping: this.queryBuilderState.mapping.path,
|
|
64
|
+
mapping: this.queryBuilderState.executionContextState.mapping.path,
|
|
64
65
|
runtime:
|
|
65
|
-
this.queryBuilderState.runtimeValue
|
|
66
|
+
this.queryBuilderState.executionContextState.runtimeValue
|
|
67
|
+
.packageableRuntime.value.path,
|
|
66
68
|
getQuery: async () =>
|
|
67
69
|
this.createExecutableQuery(
|
|
68
70
|
this.queryBuilderState.buildQuery(),
|
|
@@ -660,7 +660,7 @@ export class QueryBuilderExplorerState {
|
|
|
660
660
|
|
|
661
661
|
refreshTreeData(): void {
|
|
662
662
|
const _class = this.queryBuilderState.class;
|
|
663
|
-
const _mapping = this.queryBuilderState.mapping;
|
|
663
|
+
const _mapping = this.queryBuilderState.executionContextState.mapping;
|
|
664
664
|
this.setTreeData(
|
|
665
665
|
_class && _mapping && this.mappingModelCoverageAnalysisResult
|
|
666
666
|
? getQueryBuilderTreeData(
|
|
@@ -675,9 +675,9 @@ export class QueryBuilderExplorerState {
|
|
|
675
675
|
// We will only refetch if the analysis result's mapping has changed.
|
|
676
676
|
// This makes the assumption that the mapping has not been edited, which is a valid assumption since query is not for editing mappings
|
|
677
677
|
if (
|
|
678
|
-
this.queryBuilderState.mapping &&
|
|
679
|
-
this.queryBuilderState.mapping
|
|
680
|
-
this.mappingModelCoverageAnalysisResult?.mapping
|
|
678
|
+
this.queryBuilderState.executionContextState.mapping &&
|
|
679
|
+
this.queryBuilderState.executionContextState.mapping !==
|
|
680
|
+
this.mappingModelCoverageAnalysisResult?.mapping
|
|
681
681
|
) {
|
|
682
682
|
this.mappingModelCoverageAnalysisState.inProgress();
|
|
683
683
|
QueryBuilderTelemetryHelper.logEvent_QueryMappingModelCoverageAnalysisLaunched(
|
|
@@ -692,7 +692,7 @@ export class QueryBuilderExplorerState {
|
|
|
692
692
|
try {
|
|
693
693
|
this.mappingModelCoverageAnalysisResult = (yield flowResult(
|
|
694
694
|
this.queryBuilderState.graphManagerState.graphManager.analyzeMappingModelCoverage(
|
|
695
|
-
this.queryBuilderState.mapping,
|
|
695
|
+
this.queryBuilderState.executionContextState.mapping,
|
|
696
696
|
this.queryBuilderState.graphManagerState.graph,
|
|
697
697
|
),
|
|
698
698
|
)) as MappingModelCoverageAnalysisResult;
|
|
@@ -720,7 +720,7 @@ export class QueryBuilderExplorerState {
|
|
|
720
720
|
*previewData(
|
|
721
721
|
node: QueryBuilderExplorerTreePropertyNodeData,
|
|
722
722
|
): GeneratorFn<void> {
|
|
723
|
-
const runtime = this.queryBuilderState.runtimeValue;
|
|
723
|
+
const runtime = this.queryBuilderState.executionContextState.runtimeValue;
|
|
724
724
|
if (!runtime) {
|
|
725
725
|
this.queryBuilderState.applicationStore.notificationService.notifyWarning(
|
|
726
726
|
`Can't preview data for property '${node.property.name}': runtime is not specified`,
|
|
@@ -730,7 +730,7 @@ export class QueryBuilderExplorerState {
|
|
|
730
730
|
if (
|
|
731
731
|
!node.mappingData.mapped ||
|
|
732
732
|
!this.queryBuilderState.class ||
|
|
733
|
-
!this.queryBuilderState.mapping
|
|
733
|
+
!this.queryBuilderState.executionContextState.mapping
|
|
734
734
|
) {
|
|
735
735
|
return;
|
|
736
736
|
}
|
|
@@ -759,7 +759,7 @@ export class QueryBuilderExplorerState {
|
|
|
759
759
|
this.queryBuilderState,
|
|
760
760
|
propertyExpression,
|
|
761
761
|
),
|
|
762
|
-
this.queryBuilderState.mapping,
|
|
762
|
+
this.queryBuilderState.executionContextState.mapping,
|
|
763
763
|
runtime,
|
|
764
764
|
this.queryBuilderState.graphManagerState.graph,
|
|
765
765
|
)) as ExecutionResult;
|
|
@@ -796,7 +796,7 @@ export class QueryBuilderExplorerState {
|
|
|
796
796
|
this.queryBuilderState,
|
|
797
797
|
propertyExpression,
|
|
798
798
|
),
|
|
799
|
-
this.queryBuilderState.mapping,
|
|
799
|
+
this.queryBuilderState.executionContextState.mapping,
|
|
800
800
|
runtime,
|
|
801
801
|
this.queryBuilderState.graphManagerState.graph,
|
|
802
802
|
)) as ExecutionResult;
|
|
@@ -32,11 +32,13 @@ import {
|
|
|
32
32
|
CollectionInstanceValue,
|
|
33
33
|
getClassProperty,
|
|
34
34
|
PrimitiveType,
|
|
35
|
+
VariableExpression,
|
|
35
36
|
} from '@finos/legend-graph';
|
|
36
37
|
import {
|
|
37
38
|
assertIsBoolean,
|
|
38
39
|
assertIsString,
|
|
39
40
|
assertTrue,
|
|
41
|
+
assertType,
|
|
40
42
|
guaranteeIsString,
|
|
41
43
|
guaranteeNonNullable,
|
|
42
44
|
guaranteeType,
|
|
@@ -45,7 +47,7 @@ import {
|
|
|
45
47
|
QUERY_BUILDER_PURE_PATH,
|
|
46
48
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS,
|
|
47
49
|
} from '../../../graph/QueryBuilderMetaModelConst.js';
|
|
48
|
-
import type
|
|
50
|
+
import { type QueryBuilderState } from '../../QueryBuilderState.js';
|
|
49
51
|
import { QueryBuilderValueSpecificationProcessor } from '../../QueryBuilderStateBuilder.js';
|
|
50
52
|
import { FETCH_STRUCTURE_IMPLEMENTATION } from '../QueryBuilderFetchStructureImplementationState.js';
|
|
51
53
|
import {
|
|
@@ -56,6 +58,7 @@ import {
|
|
|
56
58
|
} from './QueryBuilderGraphFetchTreeState.js';
|
|
57
59
|
import { buildGraphFetchTreeData } from './QueryBuilderGraphFetchTreeUtil.js';
|
|
58
60
|
import {} from 'mobx';
|
|
61
|
+
import { QueryBuilderInternalizeState } from '../../QueryBuilderInternalizeState.js';
|
|
59
62
|
|
|
60
63
|
export const processGraphFetchExpression = (
|
|
61
64
|
expression: SimpleFunctionExpression,
|
|
@@ -105,6 +108,65 @@ export const processGraphFetchExpression = (
|
|
|
105
108
|
}
|
|
106
109
|
};
|
|
107
110
|
|
|
111
|
+
export const processInternalizeExpression = (
|
|
112
|
+
expression: SimpleFunctionExpression,
|
|
113
|
+
queryBuilderState: QueryBuilderState,
|
|
114
|
+
parentLambda: LambdaFunction,
|
|
115
|
+
): void => {
|
|
116
|
+
// update fetch-structure
|
|
117
|
+
queryBuilderState.fetchStructureState.changeImplementation(
|
|
118
|
+
FETCH_STRUCTURE_IMPLEMENTATION.GRAPH_FETCH,
|
|
119
|
+
);
|
|
120
|
+
const functionName = expression.functionName;
|
|
121
|
+
// check parameters
|
|
122
|
+
assertTrue(
|
|
123
|
+
expression.parametersValues.length === 3,
|
|
124
|
+
`Can't process ${functionName}() expression: ${functionName}() expects 2 argument`,
|
|
125
|
+
);
|
|
126
|
+
|
|
127
|
+
// first param classs
|
|
128
|
+
const classVal = expression.parametersValues[0];
|
|
129
|
+
const _class = classVal?.genericType?.value.rawType;
|
|
130
|
+
assertType(
|
|
131
|
+
_class,
|
|
132
|
+
Class,
|
|
133
|
+
`Can't process internalize() expression: internalize() return type is missing`,
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
queryBuilderState.setClass(_class);
|
|
137
|
+
queryBuilderState.milestoningState.clearMilestoningDates();
|
|
138
|
+
queryBuilderState.explorerState.refreshTreeData();
|
|
139
|
+
|
|
140
|
+
// binding
|
|
141
|
+
const instanceExpression = guaranteeType(
|
|
142
|
+
expression.parametersValues[1],
|
|
143
|
+
InstanceValue,
|
|
144
|
+
`Can't process internalize() expression: only support internalize() with 1st parameter as instance value`,
|
|
145
|
+
);
|
|
146
|
+
const binding = guaranteeType(
|
|
147
|
+
guaranteeType(
|
|
148
|
+
instanceExpression.values[0],
|
|
149
|
+
PackageableElementReference,
|
|
150
|
+
`Can't process internalize() expression: only support internalize() with 1st parameter as packagableElement value`,
|
|
151
|
+
).value,
|
|
152
|
+
Binding,
|
|
153
|
+
`Can't process internalize() expression: only support internalize() with 1st parameter as binding value`,
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
const variableExpression = guaranteeType(
|
|
157
|
+
expression.parametersValues[2],
|
|
158
|
+
VariableExpression,
|
|
159
|
+
);
|
|
160
|
+
|
|
161
|
+
const inernalize = new QueryBuilderInternalizeState(
|
|
162
|
+
binding,
|
|
163
|
+
variableExpression,
|
|
164
|
+
queryBuilderState,
|
|
165
|
+
);
|
|
166
|
+
|
|
167
|
+
queryBuilderState.setInternalize(inernalize);
|
|
168
|
+
};
|
|
169
|
+
|
|
108
170
|
type PropertyValue = object | string | number | boolean;
|
|
109
171
|
|
|
110
172
|
// Dynamically sets key values of config
|
|
@@ -327,6 +389,7 @@ export const processGraphFetchExternalizeExpression = (
|
|
|
327
389
|
matchFunctionName(precedingExpression.functionName, [
|
|
328
390
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH,
|
|
329
391
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH_CHECKED,
|
|
392
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.INTERNALIZE,
|
|
330
393
|
]),
|
|
331
394
|
`Can't process externalize() expression: only support externalize() in graph-fetch expression`,
|
|
332
395
|
);
|
|
@@ -373,7 +436,6 @@ export const processGraphFetchExternalizeExpression = (
|
|
|
373
436
|
Binding,
|
|
374
437
|
`Can't process externalize() expression: only support externalize() with 1st parameter as binding value`,
|
|
375
438
|
);
|
|
376
|
-
|
|
377
439
|
const externalizeState = new GraphFetchExternalFormatSerializationState(
|
|
378
440
|
graphFetchTreeState,
|
|
379
441
|
binding,
|
|
@@ -452,7 +452,7 @@ export class QueryBuilderTDSState
|
|
|
452
452
|
new QueryBuilderDerivationProjectionColumnState(
|
|
453
453
|
this,
|
|
454
454
|
guaranteeType(
|
|
455
|
-
this.queryBuilderState.graphManagerState.graphManager.
|
|
455
|
+
this.queryBuilderState.graphManagerState.graphManager.transformValueSpecToRawValueSpec(
|
|
456
456
|
columnColumnLambda,
|
|
457
457
|
this.queryBuilderState.graphManagerState.graph,
|
|
458
458
|
),
|
|
@@ -380,10 +380,12 @@ export class PostFilterConditionState implements Hashable {
|
|
|
380
380
|
this.value,
|
|
381
381
|
),
|
|
382
382
|
guaranteeNonNullable(
|
|
383
|
-
this.postFilterState.tdsState.queryBuilderState
|
|
383
|
+
this.postFilterState.tdsState.queryBuilderState
|
|
384
|
+
.executionContextState.mapping,
|
|
384
385
|
),
|
|
385
386
|
guaranteeNonNullable(
|
|
386
|
-
this.postFilterState.tdsState.queryBuilderState
|
|
387
|
+
this.postFilterState.tdsState.queryBuilderState
|
|
388
|
+
.executionContextState.runtimeValue,
|
|
387
389
|
),
|
|
388
390
|
this.postFilterState.tdsState.queryBuilderState.graphManagerState
|
|
389
391
|
.graph,
|
|
@@ -134,9 +134,12 @@ export class FilterConditionState implements Hashable {
|
|
|
134
134
|
this.propertyExpressionState.propertyExpression,
|
|
135
135
|
this.value,
|
|
136
136
|
),
|
|
137
|
-
guaranteeNonNullable(this.filterState.queryBuilderState.mapping),
|
|
138
137
|
guaranteeNonNullable(
|
|
139
|
-
this.filterState.queryBuilderState.
|
|
138
|
+
this.filterState.queryBuilderState.executionContextState.mapping,
|
|
139
|
+
),
|
|
140
|
+
guaranteeNonNullable(
|
|
141
|
+
this.filterState.queryBuilderState.executionContextState
|
|
142
|
+
.runtimeValue,
|
|
140
143
|
),
|
|
141
144
|
this.filterState.queryBuilderState.graphManagerState.graph,
|
|
142
145
|
)) as ExecutionResult;
|
|
@@ -44,7 +44,8 @@ export class ClassQueryBuilderState extends QueryBuilderState {
|
|
|
44
44
|
);
|
|
45
45
|
// cascading
|
|
46
46
|
const isCurrentMappingCompatible =
|
|
47
|
-
this.mapping &&
|
|
47
|
+
this.executionContextState.mapping &&
|
|
48
|
+
compatibleMappings.includes(this.executionContextState.mapping);
|
|
48
49
|
if (this.isMappingReadOnly || isCurrentMappingCompatible) {
|
|
49
50
|
return;
|
|
50
51
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import type { GenericLegendApplicationStore } from '@finos/legend-application';
|
|
18
|
+
import type {
|
|
19
|
+
ConcreteFunctionDefinition,
|
|
20
|
+
GraphManagerState,
|
|
21
|
+
} from '@finos/legend-graph';
|
|
22
|
+
import { ClassQueryBuilderState } from './ClassQueryBuilderState.js';
|
|
23
|
+
|
|
24
|
+
// Note: We may want to move it to extend QueryBuilderState directly
|
|
25
|
+
// but for now we will use the same setup as class as class, mapping, runtime are editable
|
|
26
|
+
export class FunctionQueryBuilderState extends ClassQueryBuilderState {
|
|
27
|
+
readonly functionElement: ConcreteFunctionDefinition;
|
|
28
|
+
|
|
29
|
+
constructor(
|
|
30
|
+
applicationStore: GenericLegendApplicationStore,
|
|
31
|
+
graphManagerState: GraphManagerState,
|
|
32
|
+
functionElemenet: ConcreteFunctionDefinition,
|
|
33
|
+
) {
|
|
34
|
+
super(applicationStore, graphManagerState);
|
|
35
|
+
this.functionElement = functionElemenet;
|
|
36
|
+
this.showParametersPanel = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -78,12 +78,8 @@ export class ServiceQueryBuilderState extends QueryBuilderState {
|
|
|
78
78
|
this.onExecutionContextChange = onExecutionContextChange;
|
|
79
79
|
|
|
80
80
|
if (service.execution instanceof PureSingleExecution) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
'Service queries without runtime/mapping are not supported',
|
|
84
|
-
);
|
|
85
|
-
this.mapping = service.execution.mapping?.value;
|
|
86
|
-
this.runtimeValue = service.execution.runtime;
|
|
81
|
+
this.executionContextState.mapping = service.execution.mapping?.value;
|
|
82
|
+
this.executionContextState.runtimeValue = service.execution.runtime;
|
|
87
83
|
} else if (service.execution instanceof PureMultiExecution) {
|
|
88
84
|
this.executionContexts = service.execution.executionParameters.map(
|
|
89
85
|
(ep) => ({
|
|
@@ -92,7 +88,6 @@ export class ServiceQueryBuilderState extends QueryBuilderState {
|
|
|
92
88
|
runtimeValue: ep.runtime,
|
|
93
89
|
}),
|
|
94
90
|
);
|
|
95
|
-
|
|
96
91
|
let selectedExecutionContext: ServiceExecutionContext;
|
|
97
92
|
if (executionContextKey) {
|
|
98
93
|
const matchingExecutionContext = this.executionContexts.find(
|
|
@@ -115,8 +110,9 @@ export class ServiceQueryBuilderState extends QueryBuilderState {
|
|
|
115
110
|
}
|
|
116
111
|
|
|
117
112
|
this.setSelectedExecutionContext(selectedExecutionContext);
|
|
118
|
-
this.mapping = selectedExecutionContext.mapping;
|
|
119
|
-
this.runtimeValue =
|
|
113
|
+
this.executionContextState.mapping = selectedExecutionContext.mapping;
|
|
114
|
+
this.executionContextState.runtimeValue =
|
|
115
|
+
selectedExecutionContext.runtimeValue;
|
|
120
116
|
}
|
|
121
117
|
}
|
|
122
118
|
|
|
@@ -131,11 +127,11 @@ export class ServiceQueryBuilderState extends QueryBuilderState {
|
|
|
131
127
|
}
|
|
132
128
|
|
|
133
129
|
override get isMappingReadOnly(): boolean {
|
|
134
|
-
return
|
|
130
|
+
return !this.executionContextState.specifiedInQuery;
|
|
135
131
|
}
|
|
136
132
|
|
|
137
133
|
override get isRuntimeReadOnly(): boolean {
|
|
138
|
-
return
|
|
134
|
+
return !this.executionContextState.specifiedInQuery;
|
|
139
135
|
}
|
|
140
136
|
|
|
141
137
|
/**
|
package/tsconfig.json
CHANGED
|
@@ -58,7 +58,9 @@
|
|
|
58
58
|
"./src/stores/QueryBuilderCommand.ts",
|
|
59
59
|
"./src/stores/QueryBuilderConfig.ts",
|
|
60
60
|
"./src/stores/QueryBuilderConstantsState.ts",
|
|
61
|
+
"./src/stores/QueryBuilderExecutionContextState.ts",
|
|
61
62
|
"./src/stores/QueryBuilderGroupOperationHelper.ts",
|
|
63
|
+
"./src/stores/QueryBuilderInternalizeState.ts",
|
|
62
64
|
"./src/stores/QueryBuilderParametersState.ts",
|
|
63
65
|
"./src/stores/QueryBuilderPreviewDataHelper.ts",
|
|
64
66
|
"./src/stores/QueryBuilderPropertyEditorState.ts",
|
|
@@ -205,6 +207,7 @@
|
|
|
205
207
|
"./src/stores/watermark/QueryBuilderWatermarkStateBuilder.ts",
|
|
206
208
|
"./src/stores/watermark/QueryBuilderWatermarkValueSpecificationBuilder.ts",
|
|
207
209
|
"./src/stores/workflows/ClassQueryBuilderState.ts",
|
|
210
|
+
"./src/stores/workflows/FunctionQueryBuilderState.ts",
|
|
208
211
|
"./src/stores/workflows/MappingQueryBuilderState.ts",
|
|
209
212
|
"./src/stores/workflows/ServiceQueryBuilderState.ts",
|
|
210
213
|
"./src/components/QueryBuilder.tsx",
|