@finos/legend-query-builder 4.1.14 → 4.2.0

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.
Files changed (86) hide show
  1. package/lib/components/filter/QueryBuilderFilterPanel.d.ts +6 -1
  2. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  3. package/lib/components/filter/QueryBuilderFilterPanel.js +189 -13
  4. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  5. package/lib/index.css +17 -1
  6. package/lib/index.css.map +1 -1
  7. package/lib/package.json +6 -6
  8. package/lib/stores/QueryBuilderStateHashUtils.d.ts +1 -0
  9. package/lib/stores/QueryBuilderStateHashUtils.d.ts.map +1 -1
  10. package/lib/stores/QueryBuilderStateHashUtils.js +1 -0
  11. package/lib/stores/QueryBuilderStateHashUtils.js.map +1 -1
  12. package/lib/stores/filter/QueryBuilderFilterOperator.d.ts +1 -1
  13. package/lib/stores/filter/QueryBuilderFilterOperator.d.ts.map +1 -1
  14. package/lib/stores/filter/QueryBuilderFilterOperator.js.map +1 -1
  15. package/lib/stores/filter/QueryBuilderFilterState.d.ts +16 -5
  16. package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
  17. package/lib/stores/filter/QueryBuilderFilterState.js +78 -18
  18. package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
  19. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -1
  20. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +125 -2
  21. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
  22. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.d.ts.map +1 -1
  23. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js +62 -3
  24. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js.map +1 -1
  25. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts +1 -1
  26. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts.map +1 -1
  27. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js +12 -192
  28. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js.map +1 -1
  29. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts +2 -2
  30. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
  31. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +4 -4
  32. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
  33. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts +2 -2
  34. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
  35. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +4 -4
  36. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
  37. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts +2 -2
  38. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
  39. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +4 -4
  40. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
  41. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts +1 -1
  42. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
  43. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +2 -2
  44. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
  45. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts +1 -1
  46. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  47. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +2 -2
  48. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
  49. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts +2 -2
  50. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts.map +1 -1
  51. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js +4 -4
  52. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
  53. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts +2 -2
  54. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts.map +1 -1
  55. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js +4 -4
  56. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -1
  57. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts +1 -1
  58. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
  59. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +2 -2
  60. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
  61. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts +1 -1
  62. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
  63. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +2 -2
  64. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
  65. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts +2 -2
  66. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
  67. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +4 -4
  68. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
  69. package/package.json +14 -14
  70. package/src/components/filter/QueryBuilderFilterPanel.tsx +355 -24
  71. package/src/stores/QueryBuilderStateHashUtils.ts +1 -0
  72. package/src/stores/filter/QueryBuilderFilterOperator.ts +1 -0
  73. package/src/stores/filter/QueryBuilderFilterState.ts +115 -27
  74. package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +244 -0
  75. package/src/stores/filter/QueryBuilderFilterValueSpecificationBuilder.ts +94 -1
  76. package/src/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.ts +37 -377
  77. package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +7 -1
  78. package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +7 -1
  79. package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +7 -1
  80. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +2 -0
  81. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +2 -0
  82. package/src/stores/filter/operators/QueryBuilderFilterOperator_In.ts +7 -1
  83. package/src/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.ts +7 -1
  84. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +2 -0
  85. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +2 -0
  86. package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +7 -1
@@ -13,12 +13,25 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { AbstractPropertyExpression, LambdaFunctionInstanceValue, matchFunctionName, SimpleFunctionExpression, VariableExpression, } from '@finos/legend-graph';
16
+ import { AbstractPropertyExpression, extractElementNameFromPath, LambdaFunction, LambdaFunctionInstanceValue, matchFunctionName, SimpleFunctionExpression, VariableExpression, } from '@finos/legend-graph';
17
17
  import { assertTrue, assertType, guaranteeNonNullable, guaranteeType, returnUndefOnError, UnsupportedOperationError, } from '@finos/legend-shared';
18
18
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../graph/QueryBuilderMetaModelConst.js';
19
19
  import { toGroupOperation } from '../QueryBuilderGroupOperationHelper.js';
20
20
  import { validatePropertyExpressionChain } from '../QueryBuilderValueSpecificationHelper.js';
21
- import { QueryBuilderFilterTreeConditionNodeData, QueryBuilderFilterTreeGroupNodeData, } from './QueryBuilderFilterState.js';
21
+ import { QueryBuilderFilterTreeConditionNodeData, QueryBuilderFilterTreeGroupNodeData, QueryBuilderFilterTreeExistsNodeData, QueryBuilderFilterTreeOperationNodeData, } from './QueryBuilderFilterState.js';
22
+ const getPropertyExpressionChainVariable = (propertyExpression) => {
23
+ let currentExpression = propertyExpression;
24
+ while (currentExpression instanceof AbstractPropertyExpression) {
25
+ currentExpression = guaranteeNonNullable(currentExpression.parametersValues[0]);
26
+ // Take care of chains of subtype (a pattern that is not useful, but we want to support and rectify)
27
+ // $x.employees->subType(@Person)->subType(@Staff)
28
+ while (currentExpression instanceof SimpleFunctionExpression &&
29
+ matchFunctionName(currentExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE)) {
30
+ currentExpression = guaranteeNonNullable(currentExpression.parametersValues[0]);
31
+ }
32
+ }
33
+ return guaranteeType(currentExpression, VariableExpression);
34
+ };
22
35
  const processFilterTree = (expression, filterState, parentFilterNodeId) => {
23
36
  const parentNode = parentFilterNodeId
24
37
  ? filterState.getNode(parentFilterNodeId)
@@ -29,9 +42,113 @@ const processFilterTree = (expression, filterState, parentFilterNodeId) => {
29
42
  ])) {
30
43
  const groupNode = new QueryBuilderFilterTreeGroupNodeData(parentFilterNodeId, toGroupOperation(expression.functionName));
31
44
  filterState.nodes.set(groupNode.id, groupNode);
45
+ if (parentNode) {
46
+ groupNode.lambdaParameterName = guaranteeType(parentNode, QueryBuilderFilterTreeOperationNodeData).lambdaParameterName;
47
+ }
32
48
  expression.parametersValues.forEach((filterExpression) => processFilterTree(guaranteeType(filterExpression, SimpleFunctionExpression, `Can't process filter group expression: each child expression must be a function expression`), filterState, groupNode.id));
33
49
  filterState.addNodeFromNode(groupNode, parentNode);
34
50
  }
51
+ else if (matchFunctionName(expression.functionName, [
52
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.EXISTS,
53
+ ])) {
54
+ const propertyExpression = guaranteeType(expression.parametersValues[0], AbstractPropertyExpression);
55
+ if (propertyExpression.func.value.multiplicity.upperBound === undefined ||
56
+ propertyExpression.func.value.multiplicity.upperBound > 1) {
57
+ const existsNode = new QueryBuilderFilterTreeExistsNodeData(parentFilterNodeId);
58
+ const lambdaFunctionInstance = guaranteeType(expression.parametersValues[1], LambdaFunctionInstanceValue, `Can't process filter expression: only supports exists with second paramter as LambdaFunctionInstanceValue`);
59
+ const lambdaFunction = guaranteeType(lambdaFunctionInstance.values[0], LambdaFunction);
60
+ const filterExpression = guaranteeType(lambdaFunction.expressionSequence[0], SimpleFunctionExpression);
61
+ existsNode.setPropertyExpression(propertyExpression);
62
+ existsNode.lambdaParameterName =
63
+ lambdaFunction.functionType.parameters[0]?.name;
64
+ filterState.nodes.set(existsNode.id, existsNode);
65
+ processFilterTree(filterExpression, filterState, existsNode.id);
66
+ filterState.addNodeFromNode(existsNode, parentNode);
67
+ }
68
+ else {
69
+ // Build property chain if we have exists filter() and the multiplicity of the property
70
+ // is of multiplicity less than or equal to one. This will auto-fix the exists into the
71
+ // desired filter expression
72
+ // 1. Decompose the exists() lambda chain into property expression chains
73
+ const existsLambdaParameterNames = [];
74
+ const existsLambdaExpressions = [];
75
+ let mainFilterExpression = expression;
76
+ while (matchFunctionName(mainFilterExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.EXISTS)) {
77
+ const existsLambda = guaranteeNonNullable(guaranteeType(mainFilterExpression.parametersValues[1], LambdaFunctionInstanceValue).values[0], `Can't process exists() expression: exists() lambda is missing`);
78
+ assertTrue(existsLambda.expressionSequence.length === 1, `Can't process exists() expression: exists() lambda body should hold an expression`);
79
+ mainFilterExpression = guaranteeType(existsLambda.expressionSequence[0], SimpleFunctionExpression, `Can't process exists() expression: exists() lambda body should hold an expression`);
80
+ // record the lambda parameter name
81
+ assertTrue(existsLambda.functionType.parameters.length === 1, `Can't process exists() expression: exists() lambda should have 1 parameter`);
82
+ existsLambdaParameterNames.push(guaranteeType(existsLambda.functionType.parameters[0], VariableExpression, `Can't process exists() expression: exists() lambda should have 1 parameter`).name);
83
+ // record the lambda property expression
84
+ if (mainFilterExpression.parametersValues[0] instanceof
85
+ AbstractPropertyExpression &&
86
+ !(mainFilterExpression.parametersValues[0].func.value.multiplicity
87
+ .upperBound === undefined ||
88
+ mainFilterExpression.parametersValues[0].func.value.multiplicity
89
+ .upperBound > 1)) {
90
+ existsLambdaExpressions.push(mainFilterExpression.parametersValues[0]);
91
+ }
92
+ else {
93
+ break;
94
+ }
95
+ }
96
+ // 2. Build the property expression
97
+ const initialPropertyExpression = guaranteeType(expression.parametersValues[0], AbstractPropertyExpression);
98
+ let flattenedPropertyExpressionChain = new AbstractPropertyExpression('');
99
+ flattenedPropertyExpressionChain.func = initialPropertyExpression.func;
100
+ flattenedPropertyExpressionChain.parametersValues = [
101
+ ...initialPropertyExpression.parametersValues,
102
+ ];
103
+ for (const exp of existsLambdaExpressions) {
104
+ // when rebuilding the property expression chain, disregard the initial variable that starts the chain
105
+ const expressions = [];
106
+ let currentExpression = exp;
107
+ while (currentExpression instanceof AbstractPropertyExpression ||
108
+ (currentExpression instanceof SimpleFunctionExpression &&
109
+ matchFunctionName(currentExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE))) {
110
+ if (currentExpression instanceof SimpleFunctionExpression) {
111
+ const functionExpression = new SimpleFunctionExpression(extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE));
112
+ functionExpression.parametersValues.unshift(guaranteeNonNullable(currentExpression.parametersValues[1]));
113
+ expressions.push(functionExpression);
114
+ }
115
+ else if (currentExpression instanceof AbstractPropertyExpression) {
116
+ const propertyExp = new AbstractPropertyExpression('');
117
+ propertyExp.func = currentExpression.func;
118
+ // NOTE: we must retain the rest of the parameters as those are derived property parameters
119
+ propertyExp.parametersValues =
120
+ currentExpression.parametersValues.length > 1
121
+ ? currentExpression.parametersValues.slice(1)
122
+ : [];
123
+ expressions.push(propertyExp);
124
+ }
125
+ currentExpression = guaranteeNonNullable(currentExpression.parametersValues[0]);
126
+ }
127
+ assertTrue(expressions.length > 0, `Can't process exists() expression: exists() usage with non-chain property expression is not supported`);
128
+ for (let i = 0; i < expressions.length - 1; ++i) {
129
+ expressions[i].parametersValues.unshift(expressions[i + 1]);
130
+ }
131
+ expressions[expressions.length - 1].parametersValues.unshift(flattenedPropertyExpressionChain);
132
+ flattenedPropertyExpressionChain = guaranteeType(expressions[0], AbstractPropertyExpression, `Can't process exists() expression: can't flatten to a property expression`);
133
+ }
134
+ mainFilterExpression.parametersValues =
135
+ mainFilterExpression.parametersValues.map((p) => {
136
+ if (p instanceof SimpleFunctionExpression &&
137
+ p.parametersValues[0] instanceof AbstractPropertyExpression) {
138
+ p.parametersValues[0].parametersValues[0] =
139
+ flattenedPropertyExpressionChain;
140
+ }
141
+ else if (p instanceof AbstractPropertyExpression) {
142
+ p.parametersValues[0] = guaranteeNonNullable(flattenedPropertyExpressionChain.parametersValues[0]);
143
+ }
144
+ else if (p instanceof VariableExpression) {
145
+ return flattenedPropertyExpressionChain;
146
+ }
147
+ return p;
148
+ });
149
+ processFilterTree(mainFilterExpression, filterState, parentFilterNodeId);
150
+ }
151
+ }
35
152
  else {
36
153
  const propertyExpression = expression.parametersValues[0];
37
154
  if (propertyExpression instanceof AbstractPropertyExpression) {
@@ -46,6 +163,12 @@ const processFilterTree = (expression, filterState, parentFilterNodeId) => {
46
163
  // considered as not supporting the lambda.
47
164
  const filterConditionState = returnUndefOnError(() => operator.buildFilterConditionState(filterState, expression));
48
165
  if (filterConditionState) {
166
+ const variableName = getPropertyExpressionChainVariable(filterConditionState.propertyExpressionState.propertyExpression).name;
167
+ const parentLambdaVariableName = parentNode instanceof QueryBuilderFilterTreeOperationNodeData &&
168
+ parentNode.lambdaParameterName
169
+ ? parentNode.lambdaParameterName
170
+ : filterState.lambdaParameterName;
171
+ assertTrue(parentLambdaVariableName === variableName, `Can't process ${extractElementNameFromPath(filterConditionState.operator.getLabel(filterConditionState))}() expression: expects variable used in lambda body '${variableName}' to match lambda parameter '${parentLambdaVariableName}'`);
49
172
  filterState.addNodeFromNode(new QueryBuilderFilterTreeConditionNodeData(undefined, filterConditionState), parentNode);
50
173
  return;
51
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderFilterStateBuilder.js","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterStateBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilderFilterStateBuilder.js","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterStateBuilder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderFilterValueSpecificationBuilder.d.ts","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterValueSpecificationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAEL,KAAK,cAAc,EAGpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,uBAAuB,EAI7B,MAAM,8BAA8B,CAAC;AAmDtC,eAAO,MAAM,qBAAqB,gBACnB,uBAAuB,kBACpB,cAAc,KAC7B,IA4BF,CAAC"}
1
+ {"version":3,"file":"QueryBuilderFilterValueSpecificationBuilder.d.ts","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterValueSpecificationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAEL,KAAK,cAAc,EAGpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,KAAK,uBAAuB,EAM7B,MAAM,8BAA8B,CAAC;AA0ItC,eAAO,MAAM,qBAAqB,gBACnB,uBAAuB,kBACpB,cAAc,KAC7B,IA4BF,CAAC"}
@@ -13,15 +13,19 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { isNonNullable, guaranteeNonNullable } from '@finos/legend-shared';
16
+ import { isNonNullable, guaranteeNonNullable, guaranteeType, } from '@finos/legend-shared';
17
17
  import { extractElementNameFromPath, SimpleFunctionExpression, } from '@finos/legend-graph';
18
18
  import { buildGenericLambdaFunctionInstanceValue } from '../QueryBuilderValueSpecificationHelper.js';
19
19
  import { fromGroupOperation } from '../QueryBuilderGroupOperationHelper.js';
20
- import { QueryBuilderFilterTreeConditionNodeData, QueryBuilderFilterTreeGroupNodeData, } from './QueryBuilderFilterState.js';
20
+ import { QueryBuilderFilterTreeConditionNodeData, QueryBuilderFilterTreeGroupNodeData, QueryBuilderFilterTreeExistsNodeData, QueryBuilderFilterTreeOperationNodeData, } from './QueryBuilderFilterState.js';
21
21
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../graph/QueryBuilderMetaModelConst.js';
22
+ import { DEFAULT_LAMBDA_VARIABLE_NAME } from '../QueryBuilderConfig.js';
22
23
  const buildFilterConditionExpression = (filterState, node) => {
23
24
  if (node instanceof QueryBuilderFilterTreeConditionNodeData) {
24
- return node.condition.operator.buildFilterConditionExpression(node.condition);
25
+ const parentNode = node.parentId
26
+ ? guaranteeType(filterState.nodes.get(node.parentId), QueryBuilderFilterTreeOperationNodeData)
27
+ : undefined;
28
+ return node.condition.operator.buildFilterConditionExpression(node.condition, parentNode?.lambdaParameterName);
25
29
  }
26
30
  else if (node instanceof QueryBuilderFilterTreeGroupNodeData) {
27
31
  const func = new SimpleFunctionExpression(extractElementNameFromPath(fromGroupOperation(node.groupOperation)));
@@ -55,6 +59,61 @@ const buildFilterConditionExpression = (filterState, node) => {
55
59
  }
56
60
  return func.parametersValues.length ? func : undefined;
57
61
  }
62
+ else if (node instanceof QueryBuilderFilterTreeExistsNodeData) {
63
+ const func = new SimpleFunctionExpression(extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.EXISTS));
64
+ let parentNode = node.parentId
65
+ ? guaranteeType(filterState.nodes.get(guaranteeNonNullable(node.parentId)), QueryBuilderFilterTreeOperationNodeData)
66
+ : undefined;
67
+ while (parentNode &&
68
+ !(parentNode instanceof QueryBuilderFilterTreeGroupNodeData)) {
69
+ parentNode = parentNode.parentId
70
+ ? guaranteeType(filterState.nodes.get(guaranteeNonNullable(parentNode.parentId)), QueryBuilderFilterTreeOperationNodeData)
71
+ : undefined;
72
+ }
73
+ const propertyExpression = guaranteeNonNullable(node.propertyExpression);
74
+ const clauses = node.childrenIds
75
+ .map((e) => filterState.nodes.get(e))
76
+ .filter(isNonNullable)
77
+ .map((e) => buildFilterConditionExpression(filterState, e))
78
+ .filter(isNonNullable);
79
+ /**
80
+ * NOTE: Due to a limitation (or perhaps design decision) in the engine, group operations
81
+ * like and/or do not take more than 2 parameters, as such, if we have more than 2, we need
82
+ * to create a chain of this operation to accomondate.
83
+ *
84
+ * This means that in the read direction, we might need to flatten the chains down to group with
85
+ * multiple clauses. This means user's intended grouping will not be kept.
86
+ */
87
+ let parametersValues;
88
+ if (clauses.length > 2) {
89
+ const firstClause = clauses[0];
90
+ let currentClause = clauses[clauses.length - 1];
91
+ for (let i = clauses.length - 2; i > 0; --i) {
92
+ const clause1 = clauses[i];
93
+ const clause2 = currentClause;
94
+ const groupClause = new SimpleFunctionExpression(guaranteeNonNullable(parentNode).groupOperation);
95
+ groupClause.parametersValues = [clause1, clause2];
96
+ currentClause = groupClause;
97
+ }
98
+ parametersValues = [firstClause, currentClause];
99
+ }
100
+ else if (clauses.length === 1) {
101
+ const lambdaFunctionInstanceValue = buildGenericLambdaFunctionInstanceValue(node.lambdaParameterName ?? DEFAULT_LAMBDA_VARIABLE_NAME, clauses, filterState.queryBuilderState.graphManagerState.graph);
102
+ func.parametersValues = [propertyExpression, lambdaFunctionInstanceValue];
103
+ return func;
104
+ }
105
+ else {
106
+ parametersValues = clauses;
107
+ }
108
+ if (!parametersValues.length) {
109
+ return undefined;
110
+ }
111
+ const simp = new SimpleFunctionExpression(extractElementNameFromPath(fromGroupOperation(guaranteeNonNullable(parentNode).groupOperation)));
112
+ simp.parametersValues = parametersValues;
113
+ const lambdaFunctionInstanceValue = buildGenericLambdaFunctionInstanceValue(node.lambdaParameterName ?? DEFAULT_LAMBDA_VARIABLE_NAME, [simp], filterState.queryBuilderState.graphManagerState.graph);
114
+ func.parametersValues = [propertyExpression, lambdaFunctionInstanceValue];
115
+ return func;
116
+ }
58
117
  return undefined;
59
118
  };
60
119
  export const buildFilterExpression = (filterState, lambdaFunction) => {
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderFilterValueSpecificationBuilder.js","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterValueSpecificationBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilderFilterValueSpecificationBuilder.js","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterValueSpecificationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uCAAuC,EAAE,MAAM,4CAA4C,CAAC;AACrG,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAEL,uCAAuC,EACvC,mCAAmC,EAEnC,oCAAoC,EACpC,uCAAuC,GACxC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iCAAiC,EAAE,MAAM,2CAA2C,CAAC;AAC9F,OAAO,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAExE,MAAM,8BAA8B,GAAG,CACrC,WAAoC,EACpC,IAAoC,EACJ,EAAE;IAClC,IAAI,IAAI,YAAY,uCAAuC,EAAE;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ;YAC9B,CAAC,CAAC,aAAa,CACX,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EACpC,uCAAuC,CACxC;YACH,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,8BAA8B,CAC3D,IAAI,CAAC,SAAS,EACd,UAAU,EAAE,mBAAmB,CAChC,CAAC;KACH;SAAM,IAAI,IAAI,YAAY,mCAAmC,EAAE;QAC9D,MAAM,IAAI,GAAG,IAAI,wBAAwB,CACvC,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CACpE,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACpC,MAAM,CAAC,aAAa,CAAC;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;QACzB;;;;;;;WAOG;QACH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAuB,CAAC;YACrD,IAAI,aAAa,GAAuB,OAAO,CAC7C,OAAO,CAAC,MAAM,GAAG,CAAC,CACG,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAuB,CAAC;gBACjD,MAAM,OAAO,GAAG,aAAa,CAAC;gBAC9B,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAC9C,0BAA0B,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CACpE,CAAC;gBACF,WAAW,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClD,aAAa,GAAG,WAAW,CAAC;aAC7B;YACD,IAAI,CAAC,gBAAgB,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACtD;aAAM;YACL,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;KACxD;SAAM,IAAI,IAAI,YAAY,oCAAoC,EAAE;QAC/D,MAAM,IAAI,GAAG,IAAI,wBAAwB,CACvC,0BAA0B,CAAC,iCAAiC,CAAC,MAAM,CAAC,CACrE,CAAC;QACF,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ;YAC5B,CAAC,CAAC,aAAa,CACX,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAC1D,uCAAuC,CACxC;YACH,CAAC,CAAC,SAAS,CAAC;QACd,OACE,UAAU;YACV,CAAC,CAAC,UAAU,YAAY,mCAAmC,CAAC,EAC5D;YACA,UAAU,GAAG,UAAU,CAAC,QAAQ;gBAC9B,CAAC,CAAC,aAAa,CACX,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,EAChE,uCAAuC,CACxC;gBACH,CAAC,CAAC,SAAS,CAAC;SACf;QACD,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACpC,MAAM,CAAC,aAAa,CAAC;aACrB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;aAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;QACzB;;;;;;;WAOG;QACH,IAAI,gBAAgB,CAAC;QACrB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAuB,CAAC;YACrD,IAAI,aAAa,GAAuB,OAAO,CAC7C,OAAO,CAAC,MAAM,GAAG,CAAC,CACG,CAAC;YACxB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAuB,CAAC;gBACjD,MAAM,OAAO,GAAG,aAAa,CAAC;gBAC9B,MAAM,WAAW,GAAG,IAAI,wBAAwB,CAC9C,oBAAoB,CAAC,UAAU,CAAC,CAAC,cAAc,CAChD,CAAC;gBACF,WAAW,CAAC,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAClD,aAAa,GAAG,WAAW,CAAC;aAC7B;YACD,gBAAgB,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACjD;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC/B,MAAM,2BAA2B,GAC/B,uCAAuC,CACrC,IAAI,CAAC,mBAAmB,IAAI,4BAA4B,EACxD,OAAO,EACP,WAAW,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CACtD,CAAC;YACJ,IAAI,CAAC,gBAAgB,GAAG,CAAC,kBAAkB,EAAE,2BAA2B,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;SACb;aAAM;YACL,gBAAgB,GAAG,OAAO,CAAC;SAC5B;QACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,IAAI,GAAG,IAAI,wBAAwB,CACvC,0BAA0B,CACxB,kBAAkB,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,cAAc,CAAC,CACpE,CACF,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,MAAM,2BAA2B,GAAG,uCAAuC,CACzE,IAAI,CAAC,mBAAmB,IAAI,4BAA4B,EACxD,CAAC,IAAI,CAAC,EACN,WAAW,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CACtD,CAAC;QACF,IAAI,CAAC,gBAAgB,GAAG,CAAC,kBAAkB,EAAE,2BAA2B,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;KACb;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,WAAoC,EACpC,cAA8B,EACxB,EAAE;IACR,MAAM,0BAA0B,GAAG,WAAW,CAAC,OAAO;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,8BAA8B,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SAC1D,MAAM,CAAC,aAAa,CAAC,CAAC;IAEzB,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE;QACtC,OAAO;KACR;IACD,yBAAyB;IACzB,MAAM,gBAAgB,GAAG,IAAI,wBAAwB,CACnD,0BAA0B,CAAC,iCAAiC,CAAC,MAAM,CAAC,CACrE,CAAC;IACF,MAAM,iBAAiB,GAAG,oBAAoB,CAC5C,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CACrC,CAAC;IACF,YAAY;IACZ,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC1D,YAAY;IACZ,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CACpC,uCAAuC,CACrC,WAAW,CAAC,mBAAmB,EAC/B,0BAA0B,EAC1B,WAAW,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CACtD,CACF,CAAC;IACF,sCAAsC;IACtC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAC1D,CAAC,CAAC"}
@@ -16,6 +16,6 @@
16
16
  import { type ValueSpecification, SimpleFunctionExpression } from '@finos/legend-graph';
17
17
  import { FilterConditionState, type QueryBuilderFilterState } from '../QueryBuilderFilterState.js';
18
18
  import type { QueryBuilderFilterOperator } from '../QueryBuilderFilterOperator.js';
19
- export declare const buildFilterConditionExpression: (filterConditionState: FilterConditionState, operatorFunctionFullPath: string) => ValueSpecification;
19
+ export declare const buildFilterConditionExpression: (filterConditionState: FilterConditionState, operatorFunctionFullPath: string, lambdaParameterName?: string | undefined) => ValueSpecification;
20
20
  export declare const buildFilterConditionState: (filterState: QueryBuilderFilterState, expression: SimpleFunctionExpression, operatorFunctionFullPath: string, operator: QueryBuilderFilterOperator, hasNoValue?: boolean) => FilterConditionState | undefined;
21
21
  //# sourceMappingURL=QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAMvB,wBAAwB,EAEzB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,EACL,oBAAoB,EACpB,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AAMvC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AA8KnF,eAAO,MAAM,8BAA8B,yBACnB,oBAAoB,4BAChB,MAAM,KAC/B,kBAqBF,CAAC;AAkLF,eAAO,MAAM,yBAAyB,gBACvB,uBAAuB,cACxB,wBAAwB,4BACV,MAAM,YACtB,0BAA0B,2BAOnC,oBAAoB,GAAG,SAsFzB,CAAC"}
1
+ {"version":3,"file":"QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,kBAAkB,EAKvB,wBAAwB,EAEzB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,oBAAoB,EACpB,KAAK,uBAAuB,EAC7B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAGnF,eAAO,MAAM,8BAA8B,yBACnB,oBAAoB,4BAChB,MAAM,wBACV,MAAM,GAAG,SAAS,KACvC,kBAeF,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBACvB,uBAAuB,cACxB,wBAAwB,4BACV,MAAM,YACtB,0BAA0B,2BAOnC,oBAAoB,GAAG,SAuGzB,CAAC"}
@@ -13,114 +13,15 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { extractElementNameFromPath, matchFunctionName, LambdaFunctionInstanceValue, VariableExpression, AbstractPropertyExpression, SimpleFunctionExpression, Multiplicity, } from '@finos/legend-graph';
17
- import { guaranteeType, guaranteeNonNullable, assertTrue, generateEnumerableNameFromToken, } from '@finos/legend-shared';
16
+ import { extractElementNameFromPath, matchFunctionName, LambdaFunctionInstanceValue, AbstractPropertyExpression, SimpleFunctionExpression, LambdaFunction, } from '@finos/legend-graph';
17
+ import { guaranteeType, guaranteeNonNullable, assertTrue, } from '@finos/legend-shared';
18
18
  import { FilterConditionState, } from '../QueryBuilderFilterState.js';
19
19
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../graph/QueryBuilderMetaModelConst.js';
20
- import { buildGenericLambdaFunctionInstanceValue, simplifyValueExpression, } from '../../QueryBuilderValueSpecificationHelper.js';
20
+ import { simplifyValueExpression } from '../../QueryBuilderValueSpecificationHelper.js';
21
21
  import { buildPropertyExpressionChain } from '../../QueryBuilderValueSpecificationBuilderHelper.js';
22
- const getPropertyExpressionChainVariable = (propertyExpression) => {
23
- let currentExpression = propertyExpression;
24
- while (currentExpression instanceof AbstractPropertyExpression) {
25
- currentExpression = guaranteeNonNullable(currentExpression.parametersValues[0]);
26
- // Take care of chains of subtype (a pattern that is not useful, but we want to support and rectify)
27
- // $x.employees->subType(@Person)->subType(@Staff)
28
- while (currentExpression instanceof SimpleFunctionExpression &&
29
- matchFunctionName(currentExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE)) {
30
- currentExpression = guaranteeNonNullable(currentExpression.parametersValues[0]);
31
- }
32
- }
33
- return guaranteeType(currentExpression, VariableExpression);
34
- };
35
- const buildFilterConditionExpressionWithExists = (filterConditionState, operatorFunctionFullPath) => {
36
- assertTrue(filterConditionState.propertyExpressionState.requiresExistsHandling);
37
- // 1. Decompose property expression
38
- const expressions = [];
39
- let currentPropertyExpression = buildPropertyExpressionChain(filterConditionState.propertyExpressionState.propertyExpression, filterConditionState.propertyExpressionState.queryBuilderState, filterConditionState.filterState.lambdaParameterName);
40
- while (currentPropertyExpression instanceof AbstractPropertyExpression ||
41
- (currentPropertyExpression instanceof SimpleFunctionExpression &&
42
- matchFunctionName(currentPropertyExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE))) {
43
- let exp;
44
- if (currentPropertyExpression instanceof SimpleFunctionExpression) {
45
- exp = new SimpleFunctionExpression(extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE));
46
- }
47
- else {
48
- exp = new AbstractPropertyExpression('');
49
- exp.func = currentPropertyExpression.func;
50
- }
51
- // NOTE: we must retain the rest of the parameters as those are derived property parameters
52
- exp.parametersValues =
53
- currentPropertyExpression.parametersValues.length > 1
54
- ? currentPropertyExpression.parametersValues.slice(1)
55
- : [];
56
- expressions.push(exp);
57
- currentPropertyExpression = guaranteeNonNullable(currentPropertyExpression.parametersValues[0]);
58
- }
59
- const rootVariable = guaranteeType(currentPropertyExpression, VariableExpression);
60
- // 2. Traverse the list of decomposed property expression backward, every time we encounter a property of
61
- // multiplicity many, create a new property expression and keep track of it to later form the lambda chain
62
- const existsLambdaParamNames = [
63
- ...filterConditionState.existsLambdaParamNames,
64
- ];
65
- const existsLambdaPropertyChains = [rootVariable];
66
- let currentParamNameIndex = 0;
67
- for (let i = expressions.length - 1; i >= 0; --i) {
68
- const exp = expressions[i];
69
- // just keep adding to the property chain
70
- exp.parametersValues.unshift(existsLambdaPropertyChains[existsLambdaPropertyChains.length - 1]);
71
- existsLambdaPropertyChains[existsLambdaPropertyChains.length - 1] = exp;
72
- // ... but if the property is of multiplicity multiple, start a new property chain
73
- if (exp instanceof AbstractPropertyExpression &&
74
- (exp.func.value.multiplicity.upperBound === undefined ||
75
- exp.func.value.multiplicity.upperBound > 1)) {
76
- // NOTE: we need to find/generate the property chain variable name
77
- // here, by doing this, we try our best to respect original/user-input variable name
78
- if (currentParamNameIndex > existsLambdaParamNames.length - 1) {
79
- existsLambdaParamNames.push(generateEnumerableNameFromToken(existsLambdaParamNames, filterConditionState.filterState.lambdaParameterName));
80
- assertTrue(currentParamNameIndex === existsLambdaParamNames.length - 1);
81
- }
82
- existsLambdaPropertyChains.push(new VariableExpression(existsLambdaParamNames[currentParamNameIndex], Multiplicity.ONE));
83
- currentParamNameIndex++;
84
- }
85
- }
86
- // 3. Build each property chain into an exists() simple function expression
87
- const simpleFunctionExpressions = [];
88
- for (let i = 0; i < existsLambdaPropertyChains.length - 1; ++i) {
89
- const simpleFunctionExpression = new SimpleFunctionExpression(extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.EXISTS));
90
- simpleFunctionExpression.parametersValues.push(existsLambdaPropertyChains[i]);
91
- simpleFunctionExpressions.push(simpleFunctionExpression);
92
- }
93
- // build the leaf simple function expression which uses the operator
94
- const operatorEpression = new SimpleFunctionExpression(extractElementNameFromPath(operatorFunctionFullPath));
95
- operatorEpression.parametersValues.push(existsLambdaPropertyChains[existsLambdaPropertyChains.length - 1]);
96
- // NOTE: there are simple operators which do not require any params (e.g. isEmpty)
97
- if (filterConditionState.value) {
98
- operatorEpression.parametersValues.push(filterConditionState.value);
99
- }
100
- simpleFunctionExpressions.push(operatorEpression);
101
- // 4. Build the exists() lambda chain
102
- assertTrue(simpleFunctionExpressions.length >= 2);
103
- for (let i = simpleFunctionExpressions.length - 2; i >= 0; --i) {
104
- const currentSFE = simpleFunctionExpressions[i];
105
- const childSFE = simpleFunctionExpressions[i + 1];
106
- // build child SFE lambda
107
- const _existsLambdaVariable = childSFE.parametersValues[0];
108
- const existsLambdaVariable = _existsLambdaVariable instanceof AbstractPropertyExpression
109
- ? getPropertyExpressionChainVariable(_existsLambdaVariable)
110
- : guaranteeType(_existsLambdaVariable, VariableExpression);
111
- const existsLambda = buildGenericLambdaFunctionInstanceValue(existsLambdaVariable.name, [childSFE], filterConditionState.filterState.queryBuilderState.graphManagerState
112
- .graph);
113
- // add the child SFE lambda to the current SFE parameters
114
- currentSFE.parametersValues.push(existsLambda);
115
- }
116
- return simpleFunctionExpressions[0];
117
- };
118
- export const buildFilterConditionExpression = (filterConditionState, operatorFunctionFullPath) => {
119
- if (filterConditionState.propertyExpressionState.requiresExistsHandling) {
120
- return buildFilterConditionExpressionWithExists(filterConditionState, operatorFunctionFullPath);
121
- }
22
+ export const buildFilterConditionExpression = (filterConditionState, operatorFunctionFullPath, lambdaParameterName) => {
122
23
  const expression = new SimpleFunctionExpression(extractElementNameFromPath(operatorFunctionFullPath));
123
- const propertyExpression = buildPropertyExpressionChain(filterConditionState.propertyExpressionState.propertyExpression, filterConditionState.propertyExpressionState.queryBuilderState, filterConditionState.filterState.lambdaParameterName);
24
+ const propertyExpression = buildPropertyExpressionChain(filterConditionState.propertyExpressionState.propertyExpression, filterConditionState.propertyExpressionState.queryBuilderState, lambdaParameterName ?? filterConditionState.filterState.lambdaParameterName);
124
25
  expression.parametersValues.push(guaranteeNonNullable(propertyExpression));
125
26
  // NOTE: there are simple operators which do not require any params (e.g. isEmpty)
126
27
  if (filterConditionState.value) {
@@ -128,90 +29,6 @@ export const buildFilterConditionExpression = (filterConditionState, operatorFun
128
29
  }
129
30
  return expression;
130
31
  };
131
- /**
132
- * Handling exists() lambda found in the filter condition expression.
133
- * The general approach for handling exists() is we will flat out the chain
134
- * of exists() expressions into a normal filter condition state.
135
- *
136
- * When we build the condition function expression from the filter condition state,
137
- * we walk the property expression chain, find property with multiplitiy upper bound
138
- * other than 1 and create an exists() lambda there
139
- *
140
- * NOTE: to ensure we respect user's choice of variable name, as we build the state
141
- * we record the lambda parameter names, so we can use those while re-building the function
142
- * If for some reason, this list is stale, we can start adding our own parameter names
143
- */
144
- const buildFilterConditionStateWithExists = (filterState, parentExpression, operatorFunctionFullPath) => {
145
- if (matchFunctionName(parentExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.EXISTS)) {
146
- // 1. Decompose the exists() lambda chain into property expression chains
147
- const existsLambdaParameterNames = [];
148
- // `existsLambdaExpressions` should be a list of `AbstractPropertyExpression`
149
- // e.g. |Firm.all()->filter(x|$x.employees->exists(x_1|$x_1->subType(@Develper).id->exists(x_2|$x_2 == 1))
150
- // In the first exists() lambda, `$x_1->subType(@Develper).id` is an `AbstractPropertyExpression`.
151
- const existsLambdaExpressions = [];
152
- let mainFilterExpression = parentExpression;
153
- while (matchFunctionName(mainFilterExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.EXISTS)) {
154
- const existsLambda = guaranteeNonNullable(guaranteeType(mainFilterExpression.parametersValues[1], LambdaFunctionInstanceValue).values[0], `Can't process exists() expression: exists() lambda is missing`);
155
- assertTrue(existsLambda.expressionSequence.length === 1, `Can't process exists() expression: exists() lambda body should hold an expression`);
156
- mainFilterExpression = guaranteeType(existsLambda.expressionSequence[0], SimpleFunctionExpression, `Can't process exists() expression: exists() lambda body should hold an expression`);
157
- // record the lambda parameter name
158
- assertTrue(existsLambda.functionType.parameters.length === 1, `Can't process exists() expression: exists() lambda should have 1 parameter`);
159
- existsLambdaParameterNames.push(guaranteeType(existsLambda.functionType.parameters[0], VariableExpression, `Can't process exists() expression: exists() lambda should have 1 parameter`).name);
160
- // record the lambda property expression
161
- if (mainFilterExpression.parametersValues[0] instanceof
162
- AbstractPropertyExpression) {
163
- existsLambdaExpressions.push(mainFilterExpression.parametersValues[0]);
164
- }
165
- }
166
- // NOTE: make sure that the inner most function expression is the one we support
167
- if (!matchFunctionName(mainFilterExpression.functionName, operatorFunctionFullPath)) {
168
- return [undefined, undefined];
169
- }
170
- // 2. Build the property expression
171
- const initialPropertyExpression = guaranteeType(parentExpression.parametersValues[0], AbstractPropertyExpression);
172
- let flattenedPropertyExpressionChain = new AbstractPropertyExpression('');
173
- flattenedPropertyExpressionChain.func = initialPropertyExpression.func;
174
- flattenedPropertyExpressionChain.parametersValues = [
175
- ...initialPropertyExpression.parametersValues,
176
- ];
177
- for (const expression of existsLambdaExpressions) {
178
- // when rebuilding the property expression chain, disregard the initial variable that starts the chain
179
- const expressions = [];
180
- let currentExpression = expression;
181
- while (currentExpression instanceof AbstractPropertyExpression ||
182
- (currentExpression instanceof SimpleFunctionExpression &&
183
- matchFunctionName(currentExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE))) {
184
- if (currentExpression instanceof SimpleFunctionExpression) {
185
- const functionExpression = new SimpleFunctionExpression(extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE));
186
- functionExpression.parametersValues.unshift(guaranteeNonNullable(currentExpression.parametersValues[1]));
187
- expressions.push(functionExpression);
188
- }
189
- else if (currentExpression instanceof AbstractPropertyExpression) {
190
- const propertyExpression = new AbstractPropertyExpression('');
191
- propertyExpression.func = currentExpression.func;
192
- // NOTE: we must retain the rest of the parameters as those are derived property parameters
193
- propertyExpression.parametersValues =
194
- currentExpression.parametersValues.length > 1
195
- ? currentExpression.parametersValues.slice(1)
196
- : [];
197
- expressions.push(propertyExpression);
198
- }
199
- currentExpression = guaranteeNonNullable(currentExpression.parametersValues[0]);
200
- }
201
- assertTrue(expressions.length > 0, `Can't process exists() expression: exists() usage with non-chain property expression is not supported`);
202
- for (let i = 0; i < expressions.length - 1; ++i) {
203
- expressions[i].parametersValues.unshift(expressions[i + 1]);
204
- }
205
- expressions[expressions.length - 1].parametersValues.unshift(flattenedPropertyExpressionChain);
206
- flattenedPropertyExpressionChain = guaranteeType(expressions[0], AbstractPropertyExpression, `Can't process exists() expression: can't flatten to a property expression`);
207
- }
208
- // 3. Build the filter condition state with the simplified property expression
209
- const filterConditionState = new FilterConditionState(filterState, flattenedPropertyExpressionChain);
210
- existsLambdaParameterNames.forEach((paramName) => filterConditionState.addExistsLambdaParamNames(paramName));
211
- return [filterConditionState, mainFilterExpression];
212
- }
213
- return [undefined, undefined];
214
- };
215
32
  export const buildFilterConditionState = (filterState, expression, operatorFunctionFullPath, operator,
216
33
  /**
217
34
  * Use this flag for operator that does not require any param (e.g. isEmpty)
@@ -227,14 +44,17 @@ hasNoValue = false) => {
227
44
  if (matchFunctionName(expression.functionName, operatorFunctionFullPath)) {
228
45
  assertTrue(expression.parametersValues.length === (hasNoValue ? 1 : 2), `Can't process ${extractElementNameFromPath(operatorFunctionFullPath)}() expression: ${extractElementNameFromPath(operatorFunctionFullPath)}() expects ${hasNoValue ? 'no argument' : '1 argument'}`);
229
46
  const propertyExpression = guaranteeType(expression.parametersValues[0], AbstractPropertyExpression, `Can't process ${extractElementNameFromPath(operatorFunctionFullPath)}() expression: expects property expression in lambda body`);
230
- const variableName = getPropertyExpressionChainVariable(propertyExpression).name;
231
- assertTrue(filterState.lambdaParameterName === variableName, `Can't process ${extractElementNameFromPath(operatorFunctionFullPath)}() expression: expects variable used in lambda body '${variableName}' to match lambda parameter '${filterState.lambdaParameterName}'`);
232
47
  filterConditionState = new FilterConditionState(filterState, propertyExpression);
233
48
  mainExpressionWithOperator = expression;
234
49
  }
235
50
  else if (matchFunctionName(expression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.EXISTS)) {
236
- [filterConditionState, mainExpressionWithOperator] =
237
- buildFilterConditionStateWithExists(filterState, expression, operatorFunctionFullPath);
51
+ const lambdaFunctionInstance = guaranteeType(expression.parametersValues[1], LambdaFunctionInstanceValue);
52
+ const lambdaFunction = guaranteeType(lambdaFunctionInstance.values[0], LambdaFunction);
53
+ const filterExpression = guaranteeType(lambdaFunction.expressionSequence[0], SimpleFunctionExpression);
54
+ assertTrue(filterExpression.parametersValues.length === (hasNoValue ? 1 : 2), `Can't process ${extractElementNameFromPath(operatorFunctionFullPath)}() expression: ${extractElementNameFromPath(operatorFunctionFullPath)}() expects ${hasNoValue ? 'no argument' : '1 argument'}`);
55
+ const propertyExpression = guaranteeType(filterExpression.parametersValues[0], AbstractPropertyExpression, `Can't process ${extractElementNameFromPath(operatorFunctionFullPath)}() expression: expects property expression in lambda body`);
56
+ filterConditionState = new FilterConditionState(filterState, propertyExpression);
57
+ mainExpressionWithOperator = filterExpression;
238
58
  }
239
59
  // Post-build check: make sure the simple filter condition LHS, RHS, and operator are compatible
240
60
  // and set the value of the condition in the state accordingly.
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderFilterOperatorValueSpecificationBuilder.js","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilderFilterOperatorValueSpecificationBuilder.js","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.ts"],"names":[],"mappings":"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"}
@@ -22,13 +22,13 @@ export declare class QueryBuilderFilterOperator_Contain extends QueryBuilderFilt
22
22
  isCompatibleWithFilterConditionProperty(filterConditionState: FilterConditionState): boolean;
23
23
  isCompatibleWithFilterConditionValue(filterConditionState: FilterConditionState): boolean;
24
24
  getDefaultFilterConditionValue(filterConditionState: FilterConditionState): ValueSpecification | undefined;
25
- buildFilterConditionExpression(filterConditionState: FilterConditionState): ValueSpecification;
25
+ buildFilterConditionExpression(filterConditionState: FilterConditionState, lambdaParameterName?: string | undefined): ValueSpecification;
26
26
  buildFilterConditionState(filterState: QueryBuilderFilterState, expression: SimpleFunctionExpression): FilterConditionState | undefined;
27
27
  get hashCode(): string;
28
28
  }
29
29
  export declare class QueryBuilderFilterOperator_NotContain extends QueryBuilderFilterOperator_Contain {
30
30
  getLabel(filterConditionState: FilterConditionState): string;
31
- buildFilterConditionExpression(filterConditionState: FilterConditionState): ValueSpecification;
31
+ buildFilterConditionExpression(filterConditionState: FilterConditionState, lambdaParameterName?: string | undefined): ValueSpecification;
32
32
  buildFilterConditionState(filterState: QueryBuilderFilterState, expression: SimpleFunctionExpression): FilterConditionState | undefined;
33
33
  get hashCode(): string;
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderFilterOperator_Contain.d.ts","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperator_Contain.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;AAe9B,qBAAa,kCACX,SAAQ,0BACR,YAAW,QAAQ;IAEnB,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,MAAM;IAI5D,uCAAuC,CACrC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO;IAQV,oCAAoC,CAClC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO;IAOV,8BAA8B,CAC5B,oBAAoB,EAAE,oBAAoB,GACzC,kBAAkB,GAAG,SAAS;IAuBjC,8BAA8B,CAC5B,oBAAoB,EAAE,oBAAoB,GACzC,kBAAkB;IAOrB,yBAAyB,CACvB,WAAW,EAAE,uBAAuB,EACpC,UAAU,EAAE,wBAAwB,GACnC,oBAAoB,GAAG,SAAS;IASnC,IAAI,QAAQ,IAAI,MAAM,CAIrB;CACF;AAED,qBAAa,qCAAsC,SAAQ,kCAAkC;IAClF,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,MAAM;IAI5D,8BAA8B,CACrC,oBAAoB,EAAE,oBAAoB,GACzC,kBAAkB;IAMZ,yBAAyB,CAChC,WAAW,EAAE,uBAAuB,EACpC,UAAU,EAAE,wBAAwB,GACnC,oBAAoB,GAAG,SAAS;IAOnC,IAAa,QAAQ,IAAI,MAAM,CAI9B;CACF"}
1
+ {"version":3,"file":"QueryBuilderFilterOperator_Contain.d.ts","sourceRoot":"","sources":["../../../../src/stores/filter/operators/QueryBuilderFilterOperator_Contain.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;AAe9B,qBAAa,kCACX,SAAQ,0BACR,YAAW,QAAQ;IAEnB,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,MAAM;IAI5D,uCAAuC,CACrC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO;IAQV,oCAAoC,CAClC,oBAAoB,EAAE,oBAAoB,GACzC,OAAO;IAOV,8BAA8B,CAC5B,oBAAoB,EAAE,oBAAoB,GACzC,kBAAkB,GAAG,SAAS;IAuBjC,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,qCAAsC,SAAQ,kCAAkC;IAClF,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,MAAM;IAI5D,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"}