@finos/legend-query-builder 4.14.87 → 4.14.89
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/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +2 -4
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js +17 -3
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +4 -4
- 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 -3
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js +12 -2
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js +5 -5
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.d.ts +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js +32 -20
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +5 -5
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +5 -5
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +6 -6
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +4 -4
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +4 -4
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.d.ts +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js +5 -5
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +4 -4
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts +2 -2
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +4 -4
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts +3 -3
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +5 -5
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuidler.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuidler.js +13 -3
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuidler.js.map +1 -1
- package/package.json +5 -5
- package/src/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +4 -5
- package/src/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.ts +23 -7
- package/src/index.ts +7 -0
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.ts +2 -0
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +14 -3
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts +14 -11
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.ts +9 -3
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.ts +51 -27
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +7 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +7 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +7 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +5 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +5 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +7 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +5 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +5 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +5 -2
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +7 -2
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +0 -2
- package/src/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuidler.ts +30 -2
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
guaranteeType,
|
|
24
24
|
isNonNullable,
|
|
25
25
|
returnUndefOnError,
|
|
26
|
+
UnsupportedOperationError,
|
|
26
27
|
} from '@finos/legend-shared';
|
|
27
28
|
import {
|
|
28
29
|
type V1_GraphBuilderContext,
|
|
@@ -62,6 +63,10 @@ import {
|
|
|
62
63
|
ColSpecArrayInstance,
|
|
63
64
|
ColSpecArray,
|
|
64
65
|
ColSpec,
|
|
66
|
+
Relation_RelationType,
|
|
67
|
+
Relation_RelationalColumn,
|
|
68
|
+
getValueSpecificationReturnType,
|
|
69
|
+
Relation_Relation,
|
|
65
70
|
} from '@finos/legend-graph';
|
|
66
71
|
import {
|
|
67
72
|
QUERY_BUILDER_PURE_PATH,
|
|
@@ -641,7 +646,7 @@ const V1_buildTypedProjectFunctionExpression = (
|
|
|
641
646
|
const processedExpression = new ColSpecArrayInstance(Multiplicity.ONE);
|
|
642
647
|
const processedColSpecArray = new ColSpecArray();
|
|
643
648
|
processedExpression.values = [processedColSpecArray];
|
|
644
|
-
|
|
649
|
+
const relationType = new Relation_RelationType(Relation_RelationType.ID);
|
|
645
650
|
processedColSpecArray.colSpecs = specArray.colSpecs.map((colSpec) => {
|
|
646
651
|
const pColSpec = new ColSpec();
|
|
647
652
|
let lambda: ValueSpecification;
|
|
@@ -667,6 +672,16 @@ const V1_buildTypedProjectFunctionExpression = (
|
|
|
667
672
|
}
|
|
668
673
|
pColSpec.function1 = lambda;
|
|
669
674
|
pColSpec.name = colSpec.name;
|
|
675
|
+
const returnType = getValueSpecificationReturnType(lambda);
|
|
676
|
+
if (returnType) {
|
|
677
|
+
relationType.columns.push(
|
|
678
|
+
new Relation_RelationalColumn(colSpec.name, returnType),
|
|
679
|
+
);
|
|
680
|
+
} else {
|
|
681
|
+
throw new UnsupportedOperationError(
|
|
682
|
+
'Unable to get return type for current lambda',
|
|
683
|
+
);
|
|
684
|
+
}
|
|
670
685
|
return pColSpec;
|
|
671
686
|
});
|
|
672
687
|
|
|
@@ -675,12 +690,13 @@ const V1_buildTypedProjectFunctionExpression = (
|
|
|
675
690
|
functionName,
|
|
676
691
|
compileContext,
|
|
677
692
|
);
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
),
|
|
682
|
-
|
|
683
|
-
|
|
693
|
+
const relationGenericType = new GenericType(Relation_Relation.INSTANCE);
|
|
694
|
+
const relationTypeGenericType = new GenericType(relationType);
|
|
695
|
+
relationGenericType.typeArguments = [
|
|
696
|
+
GenericTypeExplicitReference.create(relationTypeGenericType),
|
|
697
|
+
];
|
|
698
|
+
expression.genericType =
|
|
699
|
+
GenericTypeExplicitReference.create(relationGenericType);
|
|
684
700
|
return expression;
|
|
685
701
|
};
|
|
686
702
|
|
package/src/index.ts
CHANGED
|
@@ -35,6 +35,8 @@ export { QUERY_BUILDER_COMPONENT_ELEMENT_ID } from './components/QueryBuilderCom
|
|
|
35
35
|
export {
|
|
36
36
|
type QueryableSourceInfo as QuerySDLC,
|
|
37
37
|
QueryBuilderState,
|
|
38
|
+
QUERY_BUILDER_LAMBDA_WRITER_MODE,
|
|
39
|
+
INTERNAL__BasicQueryBuilderState,
|
|
38
40
|
} from './stores/QueryBuilderState.js';
|
|
39
41
|
export {
|
|
40
42
|
getTDSColumnDerivedProperyFromType,
|
|
@@ -59,6 +61,10 @@ export {
|
|
|
59
61
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS,
|
|
60
62
|
QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS,
|
|
61
63
|
} from './graph/QueryBuilderMetaModelConst.js';
|
|
64
|
+
export {
|
|
65
|
+
TEST__LegendApplicationPluginManager,
|
|
66
|
+
TEST__getGenericApplicationConfig,
|
|
67
|
+
} from './stores/__test-utils__/QueryBuilderStateTestUtils.js';
|
|
62
68
|
export { getQueryBuilderGraphManagerExtension } from './graph-manager/protocol/pure/QueryBuilder_PureGraphManagerExtension.js';
|
|
63
69
|
export type { ServiceExecutionAnalysisResult } from './graph-manager/action/analytics/ServiceExecutionAnalysis.js';
|
|
64
70
|
export type { MappingRuntimeCompatibilityAnalysisResult } from './graph-manager/action/analytics/MappingRuntimeCompatibilityAnalysis.js';
|
|
@@ -87,6 +93,7 @@ export {
|
|
|
87
93
|
getQueryBuilderExplorerTreeNodeSortRank,
|
|
88
94
|
QueryBuilderSubclassInfoTooltip,
|
|
89
95
|
} from './components/explorer/QueryBuilderExplorerPanel.js';
|
|
96
|
+
export { QueryBuilderActionConfig } from './stores/query-workflow/QueryBuilderWorkFlowState.js';
|
|
90
97
|
// ------------------------------------------- Shared components -------------------------------------------
|
|
91
98
|
|
|
92
99
|
export * from './components/shared/LambdaEditor.js';
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
import type {
|
|
18
18
|
FunctionExpression,
|
|
19
|
+
LambdaFunction,
|
|
19
20
|
Type,
|
|
20
21
|
ValueSpecification,
|
|
21
22
|
} from '@finos/legend-graph';
|
|
@@ -57,6 +58,7 @@ export abstract class QueryBuilderPostFilterOperator implements Hashable {
|
|
|
57
58
|
|
|
58
59
|
abstract buildPostFilterConditionExpression(
|
|
59
60
|
postFilterConditionState: PostFilterConditionState,
|
|
61
|
+
parentExpression: LambdaFunction | undefined,
|
|
60
62
|
): ValueSpecification | undefined;
|
|
61
63
|
|
|
62
64
|
abstract buildPostFilterConditionState(
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
PrimitiveType,
|
|
27
27
|
CollectionInstanceValue,
|
|
28
28
|
InstanceValue,
|
|
29
|
+
type LambdaFunction,
|
|
29
30
|
} from '@finos/legend-graph';
|
|
30
31
|
import {
|
|
31
32
|
type GeneratorFn,
|
|
@@ -298,7 +299,10 @@ export abstract class PostFilterConditionValueState implements Hashable {
|
|
|
298
299
|
]);
|
|
299
300
|
}
|
|
300
301
|
|
|
301
|
-
abstract appendConditionValue(
|
|
302
|
+
abstract appendConditionValue(
|
|
303
|
+
expressionVal: SimpleFunctionExpression,
|
|
304
|
+
parentExpression: LambdaFunction | undefined,
|
|
305
|
+
): void;
|
|
302
306
|
}
|
|
303
307
|
|
|
304
308
|
export class PostFilterValueSpecConditionValueState extends PostFilterConditionValueState {
|
|
@@ -341,7 +345,10 @@ export class PostFilterValueSpecConditionValueState extends PostFilterConditionV
|
|
|
341
345
|
: undefined;
|
|
342
346
|
return this.value;
|
|
343
347
|
}
|
|
344
|
-
override appendConditionValue(
|
|
348
|
+
override appendConditionValue(
|
|
349
|
+
expressionVal: SimpleFunctionExpression,
|
|
350
|
+
parentExpression: LambdaFunction | undefined,
|
|
351
|
+
): void {
|
|
345
352
|
if (this.value) {
|
|
346
353
|
expressionVal.parametersValues.push(this.value);
|
|
347
354
|
}
|
|
@@ -381,13 +388,17 @@ export class PostFilterTDSColumnValueConditionValueState extends PostFilterCondi
|
|
|
381
388
|
override get isCollection(): boolean {
|
|
382
389
|
return false;
|
|
383
390
|
}
|
|
384
|
-
override appendConditionValue(
|
|
391
|
+
override appendConditionValue(
|
|
392
|
+
expressionVal: SimpleFunctionExpression,
|
|
393
|
+
parentExpression: LambdaFunction | undefined,
|
|
394
|
+
): void {
|
|
385
395
|
const tdsPropertyExpression = buildtdsPropertyExpressionFromColState(
|
|
386
396
|
this.conditionState,
|
|
387
397
|
this.tdsColumn,
|
|
388
398
|
this.conditionState.postFilterState.tdsState.queryBuilderState
|
|
389
399
|
.graphManagerState.graph,
|
|
390
400
|
undefined,
|
|
401
|
+
parentExpression,
|
|
391
402
|
);
|
|
392
403
|
expressionVal.parametersValues.push(tdsPropertyExpression);
|
|
393
404
|
}
|
|
@@ -188,17 +188,20 @@ export const buildPostFilterConditionState = (
|
|
|
188
188
|
);
|
|
189
189
|
|
|
190
190
|
// get projection column
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
191
|
+
const paramValue = expression.parametersValues[0];
|
|
192
|
+
let columnState: QueryBuilderTDSColumnState;
|
|
193
|
+
if (paramValue instanceof AbstractPropertyExpression) {
|
|
194
|
+
columnState = findProjectionColumnState(paramValue, postFilterState);
|
|
195
|
+
} else if (paramValue instanceof FunctionExpression) {
|
|
196
|
+
const columnName = paramValue.functionName;
|
|
197
|
+
columnState = getTDSColumnState(postFilterState.tdsState, columnName);
|
|
198
|
+
} else {
|
|
199
|
+
throw new UnsupportedOperationError(
|
|
200
|
+
`Can't process ${extractElementNameFromPath(
|
|
201
|
+
operatorFunctionFullPath,
|
|
202
|
+
)}() expression: expects property expression in lambda body`,
|
|
203
|
+
);
|
|
204
|
+
}
|
|
202
205
|
|
|
203
206
|
// get operation value specification
|
|
204
207
|
const rightSide = expression.parametersValues[1];
|
|
@@ -34,10 +34,12 @@ import {
|
|
|
34
34
|
const buildPostFilterExpression = (
|
|
35
35
|
postFilterState: QueryBuilderPostFilterState,
|
|
36
36
|
node: QueryBuilderPostFilterTreeNodeData,
|
|
37
|
+
parentExpression: LambdaFunction | undefined,
|
|
37
38
|
): ValueSpecification | undefined => {
|
|
38
39
|
if (node instanceof QueryBuilderPostFilterTreeConditionNodeData) {
|
|
39
40
|
return node.condition.operator.buildPostFilterConditionExpression(
|
|
40
41
|
node.condition,
|
|
42
|
+
parentExpression,
|
|
41
43
|
);
|
|
42
44
|
} else if (node instanceof QueryBuilderPostFilterTreeGroupNodeData) {
|
|
43
45
|
const func = new SimpleFunctionExpression(
|
|
@@ -46,7 +48,9 @@ const buildPostFilterExpression = (
|
|
|
46
48
|
const clauses = node.childrenIds
|
|
47
49
|
.map((e) => postFilterState.nodes.get(e))
|
|
48
50
|
.filter(isNonNullable)
|
|
49
|
-
.map((e) =>
|
|
51
|
+
.map((e) =>
|
|
52
|
+
buildPostFilterExpression(postFilterState, e, parentExpression),
|
|
53
|
+
)
|
|
50
54
|
.filter(isNonNullable);
|
|
51
55
|
/**
|
|
52
56
|
* NOTE: Due to a limitation (or perhaps design decision) in the engine, group operations
|
|
@@ -84,8 +88,10 @@ export const appendPostFilter = (
|
|
|
84
88
|
lambdaFunction: LambdaFunction,
|
|
85
89
|
): LambdaFunction => {
|
|
86
90
|
const postFilterConditionExpressions = postFilterState.rootIds
|
|
87
|
-
.map((
|
|
88
|
-
.map((
|
|
91
|
+
.map((node) => guaranteeNonNullable(postFilterState.nodes.get(node)))
|
|
92
|
+
.map((_node) =>
|
|
93
|
+
buildPostFilterExpression(postFilterState, _node, lambdaFunction),
|
|
94
|
+
)
|
|
89
95
|
.filter(isNonNullable);
|
|
90
96
|
if (
|
|
91
97
|
!postFilterConditionExpressions.length ||
|
|
@@ -15,9 +15,9 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import {
|
|
18
|
-
type FunctionExpression,
|
|
19
18
|
AbstractPropertyExpression,
|
|
20
19
|
extractElementNameFromPath,
|
|
20
|
+
FunctionExpression,
|
|
21
21
|
GenericType,
|
|
22
22
|
GenericTypeExplicitReference,
|
|
23
23
|
PrimitiveInstanceValue,
|
|
@@ -28,6 +28,8 @@ import {
|
|
|
28
28
|
Multiplicity,
|
|
29
29
|
PrimitiveType,
|
|
30
30
|
type PureModel,
|
|
31
|
+
type LambdaFunction,
|
|
32
|
+
getRelationTypeGenericType,
|
|
31
33
|
} from '@finos/legend-graph';
|
|
32
34
|
import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
33
35
|
import type { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
|
|
@@ -44,38 +46,55 @@ export const buildtdsPropertyExpressionFromColState = (
|
|
|
44
46
|
colState: QueryBuilderTDSColumnState,
|
|
45
47
|
graph: PureModel,
|
|
46
48
|
operator: QueryBuilderPostFilterOperator | undefined,
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
? operator.getTDSColumnGetter()
|
|
49
|
+
parentExpression: LambdaFunction | undefined,
|
|
50
|
+
): FunctionExpression => {
|
|
51
|
+
const relationType = parentExpression?.expressionSequence[0]
|
|
52
|
+
? getRelationTypeGenericType(parentExpression.expressionSequence[0])
|
|
52
53
|
: undefined;
|
|
53
|
-
if (correspondingTDSDerivedProperty) {
|
|
54
|
-
tdsDerivedPropertyName = correspondingTDSDerivedProperty;
|
|
55
|
-
} else {
|
|
56
|
-
const type = guaranteeNonNullable(colState.getColumnType());
|
|
57
|
-
tdsDerivedPropertyName = getTDSColumnDerivedProperyFromType(type);
|
|
58
|
-
}
|
|
59
|
-
tdsPropertyExpression.func = PropertyExplicitReference.create(
|
|
60
|
-
guaranteeNonNullable(
|
|
61
|
-
getAllClassDerivedProperties(
|
|
62
|
-
graph.getClass(QUERY_BUILDER_PURE_PATH.TDS_ROW),
|
|
63
|
-
).find((p) => p.name === tdsDerivedPropertyName),
|
|
64
|
-
),
|
|
65
|
-
);
|
|
66
54
|
const variableName = new VariableExpression(
|
|
67
55
|
filterConditionState.postFilterState.lambdaParameterName,
|
|
68
56
|
Multiplicity.ONE,
|
|
69
57
|
);
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
58
|
+
if (relationType) {
|
|
59
|
+
const col = guaranteeNonNullable(
|
|
60
|
+
relationType.columns.find((e) => colState.columnName === e.name),
|
|
61
|
+
`Can't find property ${colState.columnName} in relation`,
|
|
62
|
+
);
|
|
63
|
+
const _funcExp = new FunctionExpression(col.name);
|
|
64
|
+
_funcExp.func = col;
|
|
65
|
+
_funcExp.parametersValues = [variableName];
|
|
66
|
+
return _funcExp;
|
|
67
|
+
} else {
|
|
68
|
+
const tdsPropertyExpression = new AbstractPropertyExpression('');
|
|
69
|
+
let tdsDerivedPropertyName: TDS_COLUMN_GETTER;
|
|
70
|
+
const correspondingTDSDerivedProperty = operator
|
|
71
|
+
? operator.getTDSColumnGetter()
|
|
72
|
+
: undefined;
|
|
73
|
+
if (correspondingTDSDerivedProperty) {
|
|
74
|
+
tdsDerivedPropertyName = correspondingTDSDerivedProperty;
|
|
75
|
+
} else {
|
|
76
|
+
const type = guaranteeNonNullable(colState.getColumnType());
|
|
77
|
+
tdsDerivedPropertyName = getTDSColumnDerivedProperyFromType(type);
|
|
78
|
+
}
|
|
79
|
+
tdsPropertyExpression.func = PropertyExplicitReference.create(
|
|
80
|
+
guaranteeNonNullable(
|
|
81
|
+
getAllClassDerivedProperties(
|
|
82
|
+
graph.getClass(QUERY_BUILDER_PURE_PATH.TDS_ROW),
|
|
83
|
+
).find((p) => p.name === tdsDerivedPropertyName),
|
|
84
|
+
),
|
|
85
|
+
);
|
|
86
|
+
const colInstanceValue = new PrimitiveInstanceValue(
|
|
87
|
+
GenericTypeExplicitReference.create(
|
|
88
|
+
new GenericType(PrimitiveType.STRING),
|
|
89
|
+
),
|
|
90
|
+
);
|
|
91
|
+
colInstanceValue.values = [colState.columnName];
|
|
92
|
+
tdsPropertyExpression.parametersValues = [variableName, colInstanceValue];
|
|
93
|
+
return tdsPropertyExpression;
|
|
94
|
+
}
|
|
76
95
|
};
|
|
77
96
|
|
|
78
|
-
export const
|
|
97
|
+
export const buildPostFilterConditionExpressionHelper = (
|
|
79
98
|
filterConditionState: PostFilterConditionState,
|
|
80
99
|
operator: QueryBuilderPostFilterOperator,
|
|
81
100
|
/**
|
|
@@ -85,6 +104,7 @@ export const buildPostFilterConditionExpression = (
|
|
|
85
104
|
* This is the case because with TDS, we are provided some filter-like operators, e.g. IS_NULL, IS_NOT_NULL, etc.
|
|
86
105
|
*/
|
|
87
106
|
operatorFunctionFullPath: string | undefined,
|
|
107
|
+
parentExpression: LambdaFunction | undefined,
|
|
88
108
|
): FunctionExpression => {
|
|
89
109
|
// primitives
|
|
90
110
|
const graph =
|
|
@@ -96,6 +116,7 @@ export const buildPostFilterConditionExpression = (
|
|
|
96
116
|
filterConditionState.leftConditionValue,
|
|
97
117
|
graph,
|
|
98
118
|
operator,
|
|
119
|
+
parentExpression,
|
|
99
120
|
);
|
|
100
121
|
|
|
101
122
|
if (operatorFunctionFullPath) {
|
|
@@ -103,7 +124,10 @@ export const buildPostFilterConditionExpression = (
|
|
|
103
124
|
extractElementNameFromPath(operatorFunctionFullPath),
|
|
104
125
|
);
|
|
105
126
|
expression.parametersValues.push(tdsPropertyExpression);
|
|
106
|
-
filterConditionState.rightConditionValue.appendConditionValue(
|
|
127
|
+
filterConditionState.rightConditionValue.appendConditionValue(
|
|
128
|
+
expression,
|
|
129
|
+
parentExpression,
|
|
130
|
+
);
|
|
107
131
|
return expression;
|
|
108
132
|
} else {
|
|
109
133
|
return tdsPropertyExpression;
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
type SimpleFunctionExpression,
|
|
19
19
|
type Type,
|
|
20
20
|
type ValueSpecification,
|
|
21
|
+
type LambdaFunction,
|
|
21
22
|
type FunctionExpression,
|
|
22
23
|
PRIMITIVE_TYPE,
|
|
23
24
|
PrimitiveType,
|
|
@@ -38,7 +39,7 @@ import {
|
|
|
38
39
|
buildNotExpression,
|
|
39
40
|
unwrapNotExpression,
|
|
40
41
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
41
|
-
import {
|
|
42
|
+
import { buildPostFilterConditionExpressionHelper } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
42
43
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graph/QueryBuilderMetaModelConst.js';
|
|
43
44
|
import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../../QueryBuilderStateHashUtils.js';
|
|
44
45
|
import { buildDefaultInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
@@ -93,11 +94,13 @@ export class QueryBuilderPostFilterOperator_Contain
|
|
|
93
94
|
|
|
94
95
|
buildPostFilterConditionExpression(
|
|
95
96
|
postFilterConditionState: PostFilterConditionState,
|
|
97
|
+
parentExpression: LambdaFunction | undefined,
|
|
96
98
|
): ValueSpecification | undefined {
|
|
97
|
-
return
|
|
99
|
+
return buildPostFilterConditionExpressionHelper(
|
|
98
100
|
postFilterConditionState,
|
|
99
101
|
this,
|
|
100
102
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS.CONTAINS,
|
|
103
|
+
parentExpression,
|
|
101
104
|
);
|
|
102
105
|
}
|
|
103
106
|
|
|
@@ -126,9 +129,11 @@ export class QueryBuilderPostFilterOperator_NotContain extends QueryBuilderPostF
|
|
|
126
129
|
}
|
|
127
130
|
override buildPostFilterConditionExpression(
|
|
128
131
|
postFilterConditionState: PostFilterConditionState,
|
|
132
|
+
parentExpression: LambdaFunction | undefined,
|
|
129
133
|
): ValueSpecification | undefined {
|
|
130
134
|
const expression = super.buildPostFilterConditionExpression(
|
|
131
135
|
postFilterConditionState,
|
|
136
|
+
parentExpression,
|
|
132
137
|
);
|
|
133
138
|
return expression ? buildNotExpression(expression) : undefined;
|
|
134
139
|
}
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
type Type,
|
|
19
19
|
type ValueSpecification,
|
|
20
20
|
type FunctionExpression,
|
|
21
|
+
type LambdaFunction,
|
|
21
22
|
PRIMITIVE_TYPE,
|
|
22
23
|
PrimitiveType,
|
|
23
24
|
} from '@finos/legend-graph';
|
|
@@ -36,7 +37,7 @@ import {
|
|
|
36
37
|
buildNotExpression,
|
|
37
38
|
unwrapNotExpression,
|
|
38
39
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
39
|
-
import {
|
|
40
|
+
import { buildPostFilterConditionExpressionHelper } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
40
41
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graph/QueryBuilderMetaModelConst.js';
|
|
41
42
|
import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../../QueryBuilderStateHashUtils.js';
|
|
42
43
|
import { buildDefaultInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
@@ -88,11 +89,13 @@ export class QueryBuilderPostFilterOperator_EndWith
|
|
|
88
89
|
|
|
89
90
|
buildPostFilterConditionExpression(
|
|
90
91
|
postFilterConditionState: PostFilterConditionState,
|
|
92
|
+
parentExpression: LambdaFunction | undefined,
|
|
91
93
|
): ValueSpecification | undefined {
|
|
92
|
-
return
|
|
94
|
+
return buildPostFilterConditionExpressionHelper(
|
|
93
95
|
postFilterConditionState,
|
|
94
96
|
this,
|
|
95
97
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS.ENDS_WITH,
|
|
98
|
+
parentExpression,
|
|
96
99
|
);
|
|
97
100
|
}
|
|
98
101
|
|
|
@@ -122,9 +125,11 @@ export class QueryBuilderPostFilterOperator_NotEndWith extends QueryBuilderPostF
|
|
|
122
125
|
|
|
123
126
|
override buildPostFilterConditionExpression(
|
|
124
127
|
postFilterConditionState: PostFilterConditionState,
|
|
128
|
+
parentExpression: LambdaFunction | undefined,
|
|
125
129
|
): ValueSpecification | undefined {
|
|
126
130
|
const expression = super.buildPostFilterConditionExpression(
|
|
127
131
|
postFilterConditionState,
|
|
132
|
+
parentExpression,
|
|
128
133
|
);
|
|
129
134
|
return expression ? buildNotExpression(expression) : undefined;
|
|
130
135
|
}
|
package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
type ValueSpecification,
|
|
20
20
|
type SimpleFunctionExpression,
|
|
21
21
|
type FunctionExpression,
|
|
22
|
+
type LambdaFunction,
|
|
22
23
|
AbstractPropertyExpression,
|
|
23
24
|
Enumeration,
|
|
24
25
|
PRIMITIVE_TYPE,
|
|
@@ -40,7 +41,7 @@ import {
|
|
|
40
41
|
isTypeCompatibleForAssignment,
|
|
41
42
|
unwrapNotExpression,
|
|
42
43
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
43
|
-
import {
|
|
44
|
+
import { buildPostFilterConditionExpressionHelper } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
44
45
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graph/QueryBuilderMetaModelConst.js';
|
|
45
46
|
import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../../QueryBuilderStateHashUtils.js';
|
|
46
47
|
import { buildDefaultInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
@@ -106,8 +107,9 @@ export class QueryBuilderPostFilterOperator_Equal
|
|
|
106
107
|
|
|
107
108
|
buildPostFilterConditionExpression(
|
|
108
109
|
postFilterConditionState: PostFilterConditionState,
|
|
110
|
+
parentExpression: LambdaFunction | undefined,
|
|
109
111
|
): ValueSpecification | undefined {
|
|
110
|
-
return
|
|
112
|
+
return buildPostFilterConditionExpressionHelper(
|
|
111
113
|
postFilterConditionState,
|
|
112
114
|
this,
|
|
113
115
|
postFilterConditionState.leftConditionValue.getColumnType() ===
|
|
@@ -116,6 +118,7 @@ export class QueryBuilderPostFilterOperator_Equal
|
|
|
116
118
|
PrimitiveType.DATETIME
|
|
117
119
|
? QUERY_BUILDER_SUPPORTED_FUNCTIONS.IS_ON_DAY
|
|
118
120
|
: QUERY_BUILDER_SUPPORTED_FUNCTIONS.EQUAL,
|
|
121
|
+
parentExpression,
|
|
119
122
|
);
|
|
120
123
|
}
|
|
121
124
|
|
|
@@ -150,9 +153,11 @@ export class QueryBuilderPostFilterOperator_NotEqual extends QueryBuilderPostFil
|
|
|
150
153
|
|
|
151
154
|
override buildPostFilterConditionExpression(
|
|
152
155
|
postFilterConditionState: PostFilterConditionState,
|
|
156
|
+
parentExpression: LambdaFunction | undefined,
|
|
153
157
|
): ValueSpecification | undefined {
|
|
154
158
|
const expression = super.buildPostFilterConditionExpression(
|
|
155
159
|
postFilterConditionState,
|
|
160
|
+
parentExpression,
|
|
156
161
|
);
|
|
157
162
|
return expression ? buildNotExpression(expression) : undefined;
|
|
158
163
|
}
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
type Type,
|
|
19
19
|
type ValueSpecification,
|
|
20
20
|
type FunctionExpression,
|
|
21
|
+
type LambdaFunction,
|
|
21
22
|
AbstractPropertyExpression,
|
|
22
23
|
PRIMITIVE_TYPE,
|
|
23
24
|
PrimitiveType,
|
|
@@ -35,7 +36,7 @@ import type {
|
|
|
35
36
|
QueryBuilderPostFilterState,
|
|
36
37
|
} from '../QueryBuilderPostFilterState.js';
|
|
37
38
|
import { isTypeCompatibleForAssignment } from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
38
|
-
import {
|
|
39
|
+
import { buildPostFilterConditionExpressionHelper } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
39
40
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graph/QueryBuilderMetaModelConst.js';
|
|
40
41
|
import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../../QueryBuilderStateHashUtils.js';
|
|
41
42
|
import { buildDefaultInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
@@ -107,8 +108,9 @@ export class QueryBuilderPostFilterOperator_GreaterThan
|
|
|
107
108
|
|
|
108
109
|
buildPostFilterConditionExpression(
|
|
109
110
|
postFilterConditionState: PostFilterConditionState,
|
|
111
|
+
parentExpression: LambdaFunction | undefined,
|
|
110
112
|
): ValueSpecification | undefined {
|
|
111
|
-
return
|
|
113
|
+
return buildPostFilterConditionExpressionHelper(
|
|
112
114
|
postFilterConditionState,
|
|
113
115
|
this,
|
|
114
116
|
postFilterConditionState.leftConditionValue.getColumnType() ===
|
|
@@ -117,6 +119,7 @@ export class QueryBuilderPostFilterOperator_GreaterThan
|
|
|
117
119
|
PrimitiveType.DATETIME
|
|
118
120
|
? QUERY_BUILDER_SUPPORTED_FUNCTIONS.IS_AFTER_DAY
|
|
119
121
|
: QUERY_BUILDER_SUPPORTED_FUNCTIONS.GREATER_THAN,
|
|
122
|
+
parentExpression,
|
|
120
123
|
);
|
|
121
124
|
}
|
|
122
125
|
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
import {
|
|
18
18
|
type FunctionExpression,
|
|
19
19
|
type ValueSpecification,
|
|
20
|
+
type LambdaFunction,
|
|
20
21
|
AbstractPropertyExpression,
|
|
21
22
|
PRIMITIVE_TYPE,
|
|
22
23
|
PrimitiveType,
|
|
@@ -26,7 +27,7 @@ import type {
|
|
|
26
27
|
PostFilterConditionState,
|
|
27
28
|
QueryBuilderPostFilterState,
|
|
28
29
|
} from '../QueryBuilderPostFilterState.js';
|
|
29
|
-
import {
|
|
30
|
+
import { buildPostFilterConditionExpressionHelper } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
30
31
|
import { QueryBuilderPostFilterOperator_GreaterThan } from './QueryBuilderPostFilterOperator_GreaterThan.js';
|
|
31
32
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graph/QueryBuilderMetaModelConst.js';
|
|
32
33
|
import { hashArray } from '@finos/legend-shared';
|
|
@@ -39,8 +40,9 @@ export class QueryBuilderPostFilterOperator_GreaterThanEqual extends QueryBuilde
|
|
|
39
40
|
|
|
40
41
|
override buildPostFilterConditionExpression(
|
|
41
42
|
postFilterConditionState: PostFilterConditionState,
|
|
43
|
+
parentExpression: LambdaFunction | undefined,
|
|
42
44
|
): ValueSpecification | undefined {
|
|
43
|
-
return
|
|
45
|
+
return buildPostFilterConditionExpressionHelper(
|
|
44
46
|
postFilterConditionState,
|
|
45
47
|
this,
|
|
46
48
|
postFilterConditionState.leftConditionValue.getColumnType() ===
|
|
@@ -49,6 +51,7 @@ export class QueryBuilderPostFilterOperator_GreaterThanEqual extends QueryBuilde
|
|
|
49
51
|
PrimitiveType.DATETIME
|
|
50
52
|
? QUERY_BUILDER_SUPPORTED_FUNCTIONS.IS_ON_OR_AFTER_DAY
|
|
51
53
|
: QUERY_BUILDER_SUPPORTED_FUNCTIONS.GREATER_THAN_EQUAL,
|
|
54
|
+
parentExpression,
|
|
52
55
|
);
|
|
53
56
|
}
|
|
54
57
|
|
package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.ts
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
type ValueSpecification,
|
|
20
20
|
type SimpleFunctionExpression,
|
|
21
21
|
type FunctionExpression,
|
|
22
|
+
type LambdaFunction,
|
|
22
23
|
CollectionInstanceValue,
|
|
23
24
|
Enumeration,
|
|
24
25
|
PRIMITIVE_TYPE,
|
|
@@ -39,7 +40,7 @@ import {
|
|
|
39
40
|
type PostFilterConditionState,
|
|
40
41
|
type QueryBuilderPostFilterState,
|
|
41
42
|
} from '../QueryBuilderPostFilterState.js';
|
|
42
|
-
import {
|
|
43
|
+
import { buildPostFilterConditionExpressionHelper } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
43
44
|
import {
|
|
44
45
|
buildNotExpression,
|
|
45
46
|
getCollectionValueSpecificationType,
|
|
@@ -139,11 +140,13 @@ export class QueryBuilderPostFilterOperator_In
|
|
|
139
140
|
|
|
140
141
|
buildPostFilterConditionExpression(
|
|
141
142
|
postFilterConditionState: PostFilterConditionState,
|
|
143
|
+
parentExpression: LambdaFunction | undefined,
|
|
142
144
|
): ValueSpecification | undefined {
|
|
143
|
-
return
|
|
145
|
+
return buildPostFilterConditionExpressionHelper(
|
|
144
146
|
postFilterConditionState,
|
|
145
147
|
this,
|
|
146
148
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS.IN,
|
|
149
|
+
parentExpression,
|
|
147
150
|
);
|
|
148
151
|
}
|
|
149
152
|
|
|
@@ -173,9 +176,11 @@ export class QueryBuilderPostFilterOperator_NotIn extends QueryBuilderPostFilter
|
|
|
173
176
|
|
|
174
177
|
override buildPostFilterConditionExpression(
|
|
175
178
|
postFilterConditionState: PostFilterConditionState,
|
|
179
|
+
parentExpression: LambdaFunction | undefined,
|
|
176
180
|
): ValueSpecification | undefined {
|
|
177
181
|
const expression = super.buildPostFilterConditionExpression(
|
|
178
182
|
postFilterConditionState,
|
|
183
|
+
parentExpression,
|
|
179
184
|
);
|
|
180
185
|
return expression ? buildNotExpression(expression) : undefined;
|
|
181
186
|
}
|
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
type Type,
|
|
19
19
|
type ValueSpecification,
|
|
20
20
|
type FunctionExpression,
|
|
21
|
+
type LambdaFunction,
|
|
21
22
|
Enumeration,
|
|
22
23
|
PrimitiveType,
|
|
23
24
|
} from '@finos/legend-graph';
|
|
@@ -29,7 +30,7 @@ import {
|
|
|
29
30
|
PostFilterValueSpecConditionValueState,
|
|
30
31
|
} from '../QueryBuilderPostFilterState.js';
|
|
31
32
|
import { QueryBuilderSimpleProjectionColumnState } from '../../projection/QueryBuilderProjectionColumnState.js';
|
|
32
|
-
import {
|
|
33
|
+
import { buildPostFilterConditionExpressionHelper } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
33
34
|
import { isPropertyExpressionChainOptional } from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
34
35
|
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
35
36
|
import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from '../../../../QueryBuilderStateHashUtils.js';
|
|
@@ -91,11 +92,13 @@ export class QueryBuilderPostFilterOperator_IsEmpty
|
|
|
91
92
|
|
|
92
93
|
buildPostFilterConditionExpression(
|
|
93
94
|
postFilterConditionState: PostFilterConditionState,
|
|
95
|
+
parentExpression: LambdaFunction | undefined,
|
|
94
96
|
): ValueSpecification | undefined {
|
|
95
|
-
return
|
|
97
|
+
return buildPostFilterConditionExpressionHelper(
|
|
96
98
|
postFilterConditionState,
|
|
97
99
|
this,
|
|
98
100
|
undefined,
|
|
101
|
+
parentExpression,
|
|
99
102
|
);
|
|
100
103
|
}
|
|
101
104
|
|