@finos/legend-query-builder 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/lib/components/QueryBuilderConstantExpressionPanel.js +1 -1
  2. package/lib/components/QueryBuilderResultPanel.js +1 -1
  3. package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
  4. package/lib/components/shared/BasicValueSpecificationEditor.js +41 -2
  5. package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
  6. package/lib/components/shared/LambdaEditor.d.ts.map +1 -1
  7. package/lib/components/shared/LambdaEditor.js +1 -1
  8. package/lib/components/shared/LambdaEditor.js.map +1 -1
  9. package/lib/index.css +1 -1
  10. package/lib/package.json +1 -1
  11. package/lib/stores/QueryBuilderState.d.ts +5 -4
  12. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  13. package/lib/stores/QueryBuilderState.js +21 -17
  14. package/lib/stores/QueryBuilderState.js.map +1 -1
  15. package/lib/stores/QueryBuilderStateBuilder.d.ts +2 -2
  16. package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
  17. package/lib/stores/QueryBuilderStateBuilder.js +17 -11
  18. package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
  19. package/lib/stores/QueryBuilderTextEditorState.d.ts.map +1 -1
  20. package/lib/stores/QueryBuilderTextEditorState.js +4 -1
  21. package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
  22. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.d.ts +1 -1
  23. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.d.ts.map +1 -1
  24. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js +14 -1
  25. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
  26. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -1
  27. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +14 -1
  28. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
  29. package/package.json +7 -7
  30. package/src/components/QueryBuilderConstantExpressionPanel.tsx +1 -1
  31. package/src/components/QueryBuilderResultPanel.tsx +1 -1
  32. package/src/components/shared/BasicValueSpecificationEditor.tsx +72 -2
  33. package/src/components/shared/LambdaEditor.tsx +0 -1
  34. package/src/stores/QueryBuilderState.ts +31 -18
  35. package/src/stores/QueryBuilderStateBuilder.ts +21 -17
  36. package/src/stores/QueryBuilderTextEditorState.ts +4 -1
  37. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts +20 -1
  38. package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +20 -0
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderTextEditorState.d.ts","sourceRoot":"","sources":["../../src/stores/QueryBuilderTextEditorState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAIL,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,WAAW,EAGhB,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,qBAAa,0BAA0B;IACrC,MAAM,EAAE,SAAS,CAAC;gBAEN,MAAM,EAAE,SAAS;IAS7B,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;CAGnC;AAED,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,qBAAa,2BAA4B,SAAQ,iBAAiB;IAChE,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,0BAA0B,CAAC;IAC3C,0BAA0B,UAAS;IACnC,IAAI,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC7C,iBAAiB,cAAwB;IAEzC;;;OAGG;IACH,kBAAkB,SAAM;gBAEZ,iBAAiB,EAAE,iBAAiB;IAiBhD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,sBAAsB,CAAC,cAAc,EAAE,0BAA0B,GAAG,IAAI;IAIxE,OAAO,CAAC,SAAS,EAAE,0BAA0B,GAAG,SAAS,GAAG,IAAI;IAIhE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAItC,kCAAkC,IAAI,WAAW,CAAC,IAAI,CAAC;IA4BvD,kCAAkC,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IAuCvE,SAAS,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI;IAqBhD,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC;CAkBjC"}
1
+ {"version":3,"file":"QueryBuilderTextEditorState.d.ts","sourceRoot":"","sources":["../../src/stores/QueryBuilderTextEditorState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAIL,SAAS,EAGV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,WAAW,EAGhB,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,qBAAa,0BAA0B;IACrC,MAAM,EAAE,SAAS,CAAC;gBAEN,MAAM,EAAE,SAAS;IAS7B,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;CAGnC;AAED,oBAAY,0BAA0B;IACpC,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,qBAAa,2BAA4B,SAAQ,iBAAiB;IAChE,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,cAAc,EAAE,0BAA0B,CAAC;IAC3C,0BAA0B,UAAS;IACnC,IAAI,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC7C,iBAAiB,cAAwB;IAEzC;;;OAGG;IACH,kBAAkB,SAAM;gBAEZ,iBAAiB,EAAE,iBAAiB;IAiBhD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,sBAAsB,CAAC,cAAc,EAAE,0BAA0B,GAAG,IAAI;IAIxE,OAAO,CAAC,SAAS,EAAE,0BAA0B,GAAG,SAAS,GAAG,IAAI;IAIhE,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAItC,kCAAkC,IAAI,WAAW,CAAC,IAAI,CAAC;IA4BvD,kCAAkC,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC;IAuCvE,SAAS,CAAC,IAAI,EAAE,0BAA0B,GAAG,IAAI;IAqBhD,UAAU,IAAI,WAAW,CAAC,IAAI,CAAC;CAqBjC"}
@@ -137,7 +137,10 @@ export class QueryBuilderTextEditorState extends LambdaEditorState {
137
137
  this.queryBuilderState.applicationStore.notificationService.notifyError(`Can't parse query. Please fix error before closing: ${this.parserError.message}`);
138
138
  }
139
139
  else {
140
- this.queryBuilderState.rebuildWithQuery(this.rawLambdaState.lambda);
140
+ this.queryBuilderState.rebuildWithQuery(this.rawLambdaState.lambda, {
141
+ preserveParameterValues: true,
142
+ preserveResult: true,
143
+ });
141
144
  this.setMode(undefined);
142
145
  }
143
146
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderTextEditorState.js","sourceRoot":"","sources":["../../src/stores/QueryBuilderTextEditorState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"QueryBuilderTextEditorState.js","sourceRoot":"","sources":["../../src/stores/QueryBuilderTextEditorState.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { FunctionExpression, type SimpleFunctionExpression } from '@finos/legend-graph';
16
+ import { FunctionExpression, SimpleFunctionExpression } from '@finos/legend-graph';
17
17
  import type { QueryBuilderPostFilterOperator } from './QueryBuilderPostFilterOperator.js';
18
18
  import { type QueryBuilderPostFilterState, PostFilterConditionState } from './QueryBuilderPostFilterState.js';
19
19
  import type { QueryBuilderState } from '../../../QueryBuilderState.js';
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderPostFilterStateBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAOL,kBAAkB,EAClB,KAAK,wBAAwB,EAC9B,MAAM,qBAAqB,CAAC;AAY7B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EACL,KAAK,2BAA2B,EAEhC,wBAAwB,EAKzB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAuDvE,eAAO,MAAM,6BAA6B,oBACvB,2BAA2B,cAChC,kBAAkB,4BACJ,MAAM,GAAG,SAAS,YAClC,8BAA8B,KACvC,wBAAwB,GAAG,SAiE7B,CAAC;AAyDF,eAAO,MAAM,8BAA8B,eAC7B,wBAAwB,qBACjB,iBAAiB,KACnC,IAqDF,CAAC"}
1
+ {"version":3,"file":"QueryBuilderPostFilterStateBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAOL,kBAAkB,EAClB,wBAAwB,EAEzB,MAAM,qBAAqB,CAAC;AAY7B,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAC1F,OAAO,EACL,KAAK,2BAA2B,EAEhC,wBAAwB,EAKzB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAuDvE,eAAO,MAAM,6BAA6B,oBACvB,2BAA2B,cAChC,kBAAkB,4BACJ,MAAM,GAAG,SAAS,YAClC,8BAA8B,KACvC,wBAAwB,GAAG,SAiE7B,CAAC;AA2EF,eAAO,MAAM,8BAA8B,eAC7B,wBAAwB,qBACjB,iBAAiB,KACnC,IAqDF,CAAC"}
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { LambdaFunctionInstanceValue, AbstractPropertyExpression, extractElementNameFromPath, PrimitiveInstanceValue, matchFunctionName, VariableExpression, FunctionExpression, } from '@finos/legend-graph';
16
+ import { LambdaFunctionInstanceValue, AbstractPropertyExpression, extractElementNameFromPath, PrimitiveInstanceValue, matchFunctionName, VariableExpression, FunctionExpression, SimpleFunctionExpression, MINUS_STRING, } from '@finos/legend-graph';
17
17
  import { assertTrue, assertType, guaranteeIsString, guaranteeNonNullable, guaranteeType, UnsupportedOperationError, } from '@finos/legend-shared';
18
18
  import { QueryBuilderDerivationProjectionColumnState } from '../projection/QueryBuilderProjectionColumnState.js';
19
19
  import { getTDSColumnState } from '../QueryBuilderTDSHelper.js';
@@ -71,6 +71,19 @@ export const buildPostFilterConditionState = (postFilterState, expression, opera
71
71
  return postConditionState;
72
72
  };
73
73
  const processPostFilterTree = (expression, postFilterState, parentPostFilterNodeId) => {
74
+ // NOTE: This checks if the expression is a simple function expression of Minus
75
+ // since negative numbers are returned as a SimpleFunctionExpression of minus(number)
76
+ // rather than a PrimitiveInstanceValue of -number, so here
77
+ // we replace the parameter value of the expression directly with a PrimitiveInstanceValue
78
+ if (expression.parametersValues[1] instanceof SimpleFunctionExpression &&
79
+ expression.parametersValues[1].functionName === MINUS_STRING &&
80
+ expression.parametersValues[1].parametersValues[0] instanceof
81
+ PrimitiveInstanceValue) {
82
+ expression.parametersValues[1].parametersValues[0].values[0] =
83
+ parseFloat(expression.parametersValues[1].parametersValues[0].values[0]) * -1;
84
+ expression.parametersValues[1] =
85
+ expression.parametersValues[1].parametersValues[0];
86
+ }
74
87
  const parentNode = parentPostFilterNodeId
75
88
  ? postFilterState.getNode(parentPostFilterNodeId)
76
89
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderPostFilterStateBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,aAAa,EACb,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,2CAA2C,EAAE,MAAM,oDAAoD,CAAC;AAEjH,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EAEL,kCAAkC,EAClC,wBAAwB,EACxB,2CAA2C,EAC3C,uCAAuC,EACvC,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,iCAAiC,EAAE,MAAM,4DAA4D,CAAC;AAE/G,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAEhF,MAAM,yBAAyB,GAAG,CAChC,kBAA8C,EAC9C,eAA4C,EAChB,EAAE;IAC9B,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC;IACjD,MAAM,qBAAqB,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACjE,UAAU,CACR,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CACvC,qBAA0C,CAC3C,EACD,6DAA6D,qBAAqB,wCAAwC,MAAM,CAAC,MAAM,CACrI,iBAAiB,CAClB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CACd,CAAC;IACF,MAAM,eAAe,GAAG,qBAA0C,CAAC;IACnE,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACpE,MAAM,UAAU,GAAG,iBAAiB,CAClC,aAAa,CACX,oBAAoB,EACpB,sBAAsB,EACtB,kFAAkF,CACnF,CAAC,MAAM,CAAC,CAAC,CAAC,EACX,yFAAyF,CAC1F,CAAC;IACF,MAAM,WAAW,GAAG,iBAAiB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;IACnE,IACE,eAAe,KAAK,iBAAiB,CAAC,OAAO;QAC7C,eAAe,KAAK,iBAAiB,CAAC,WAAW,EACjD;QACA,IAAI,WAAW,YAAY,2CAA2C,EAAE;YACtE,MAAM,IAAI,GAAG,0BAA0B,CACrC,eAAe,EACf,eAAe,CAAC,QAAQ,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CACnE,CAAC;YACF,IAAI,IAAI,EAAE;gBACR,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;aACjC;YACD,OAAO,WAAW,CAAC;SACpB;QACD,MAAM,UAAU,GAAG,oBAAoB,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;QACrE,UAAU,CACP,kCAAkC,CAAC,UAAU,CAAY;YACxD,eAAe,EACjB,6DAA6D,kCAAkC,CAC7F,UAAU,CACX,SAAS,eAAe,GAAG,CAC7B,CAAC;KACH;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC3C,eAA4C,EAC5C,UAA8B,EAC9B,wBAA4C,EAC5C,QAAwC,EACF,EAAE;IACxC,IAAI,kBAAwD,CAAC;IAC7D,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC;IACtD,IACE,eAAe;QACf,UAAU,YAAY,0BAA0B;QAChD,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,eAAe,EAC9C;QACA,MAAM,WAAW,GAAG,yBAAyB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAC3E,kBAAkB,GAAG,IAAI,wBAAwB,CAC/C,eAAe,EACf,WAAW,EACX,SAAS,EACT,QAAQ,CACT,CAAC;QACF,OAAO,kBAAkB,CAAC;KAC3B;SAAM,IACL,wBAAwB;QACxB,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE,wBAAwB,CAAC,EACpE;QACA,UAAU,CACR,UAAU,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,EACxC,iBAAiB,0BAA0B,CACzC,wBAAwB,CACzB,kBAAkB,0BAA0B,CAC3C,wBAAwB,CACzB,yBAAyB,CAC3B,CAAC;QAEF,wBAAwB;QACxB,MAAM,2BAA2B,GAAG,aAAa,CAC/C,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAC9B,0BAA0B,EAC1B,iBAAiB,0BAA0B,CACzC,wBAAwB,CACzB,2DAA2D,CAC7D,CAAC;QACF,MAAM,WAAW,GAAG,yBAAyB,CAC3C,2BAA2B,EAC3B,eAAe,CAChB,CAAC;QAEF,oCAAoC;QACpC,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7C,eAAe;QACf,kBAAkB,GAAG,IAAI,wBAAwB,CAC/C,eAAe,EACf,WAAW,EACX,KAAK,EACL,QAAQ,CACT,CAAC;QAEF,aAAa;QACb,UAAU,CACR,QAAQ,CAAC,gCAAgC,CAAC,kBAAkB,CAAC,EAC7D,iBAAiB,0BAA0B,CACzC,wBAAwB,CACzB,qEAAqE,CACvE,CAAC;QACF,UAAU,CACR,QAAQ,CAAC,8BAA8B,CAAC,kBAAkB,CAAC,EAC3D,aAAa,QAAQ,CAAC,QAAQ,EAAE,6CAA6C,KAAK,EAAE,QAAQ,EAAE,EAAE,CACjG,CAAC;KACH;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAC5B,UAA8B,EAC9B,eAA4C,EAC5C,sBAA0C,EACpC,EAAE;IACR,MAAM,UAAU,GAAG,sBAAsB;QACvC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,sBAAsB,CAAC;QACjD,CAAC,CAAC,SAAS,CAAC;IACd,IACE,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE;QACzC,iCAAiC,CAAC,GAAG;QACrC,iCAAiC,CAAC,EAAE;KACrC,CAAC,EACF;QACA,MAAM,SAAS,GAAG,IAAI,uCAAuC,CAC3D,sBAAsB,EACtB,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAC1C,CAAC;QACF,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QACnD,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAC3D,qBAAqB,CACnB,aAAa,CACX,oBAAoB,EACpB,kBAAkB,EAClB,iGAAiG,CAClG,EACD,eAAe,EACf,SAAS,CAAC,EAAE,CACb,CACF,CAAC;QACF,eAAe,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;KACxD;SAAM;QACL,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,SAAS,EAAE;YAChD,8DAA8D;YAC9D,MAAM,wBAAwB,GAAG,QAAQ,CAAC,6BAA6B,CACrE,eAAe,EACf,UAAU,CACX,CAAC;YACF,IAAI,wBAAwB,EAAE;gBAC5B,eAAe,CAAC,eAAe,CAC7B,IAAI,2CAA2C,CAC7C,SAAS,EACT,wBAAwB,CACzB,EACD,UAAU,CACX,CAAC;gBACF,OAAO;aACR;SACF;QACD,MAAM,IAAI,yBAAyB,CACjC,2GAA2G,CAC5G,CAAC;KACH;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,UAAoC,EACpC,iBAAoC,EAC9B,EAAE;IACR,IACE,iBAAiB,CAAC,mBAAmB,CAAC,cAAc;QACpD,oBAAoB,EACpB;QACA,MAAM,QAAQ,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,cAAc,CAAC;QACtE,MAAM,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;QACjD,MAAM,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAC;QACzD,MAAM,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACxD,UAAU,CACR,gBAAgB,EAChB,2BAA2B,EAC3B,mFAAmF,CACpF,CAAC;QAEF,UAAU,CACR,mBAAmB,CAAC,cAAc,EAClC,oBAAoB,EACpB,0FAA0F,CAC3F,CAAC;QACF,UAAU,CACR,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAC1C,gGAAgG,CACjG,CAAC;QACF,MAAM,UAAU,GAAG,oBAAoB,CACrC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAC1B,0EAA0E,CAC3E,CAAC;QACF,UAAU,CACR,UAAU,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAC1C,0FAA0F,CAC3F,CAAC;QACF,MAAM,cAAc,GAAG,aAAa,CAClC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAChC,kBAAkB,EAClB,qGAAqG,CACtG,CAAC;QACF,UAAU,CACR,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAC/C,oFAAoF,CACrF,CAAC;QACF,eAAe,CAAC,sBAAsB,CACpC,aAAa,CACX,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EACrC,kBAAkB,EAClB,8GAA8G,CAC/G,CAAC,IAAI,CACP,CAAC;QACF,qBAAqB,CAAC,cAAc,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;QAElE,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QACtC,eAAe,CAAC,YAAY,EAAE,CAAC;KAChC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"QueryBuilderPostFilterStateBuilder.js","sourceRoot":"","sources":["../../../../../src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderFilterStateBuilder.d.ts","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAIL,wBAAwB,EAEzB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA0EjE,eAAO,MAAM,uBAAuB,eACtB,wBAAwB,qBACjB,iBAAiB,KACnC,IA4CF,CAAC"}
1
+ {"version":3,"file":"QueryBuilderFilterStateBuilder.d.ts","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAML,wBAAwB,EAEzB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AA4FjE,eAAO,MAAM,uBAAuB,eACtB,wBAAwB,qBACjB,iBAAiB,KACnC,IA4CF,CAAC"}
@@ -13,13 +13,26 @@
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, LambdaFunctionInstanceValue, matchFunctionName, MINUS_STRING, PrimitiveInstanceValue, 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 '../../graphManager/QueryBuilderSupportedFunctions.js';
19
19
  import { toGroupOperation } from '../QueryBuilderGroupOperationHelper.js';
20
20
  import { validatePropertyExpressionChain } from '../QueryBuilderValueSpecificationHelper.js';
21
21
  import { QueryBuilderFilterTreeConditionNodeData, QueryBuilderFilterTreeGroupNodeData, } from './QueryBuilderFilterState.js';
22
22
  const processFilterTree = (expression, filterState, parentFilterNodeId) => {
23
+ // NOTE: This checks if the expression is a simple function expression of Minus
24
+ // since negative numbers are returned as a SimpleFunctionExpression of minus(number)
25
+ // rather than a PrimitiveInstanceValue of -number, so here
26
+ // we replace the parameter value of the expression directly with a PrimitiveInstanceValue
27
+ if (expression.parametersValues[1] instanceof SimpleFunctionExpression &&
28
+ expression.parametersValues[1].functionName === MINUS_STRING &&
29
+ expression.parametersValues[1].parametersValues[0] instanceof
30
+ PrimitiveInstanceValue) {
31
+ expression.parametersValues[1].parametersValues[0].values[0] =
32
+ parseFloat(expression.parametersValues[1].parametersValues[0].values[0]) * -1;
33
+ expression.parametersValues[1] =
34
+ expression.parametersValues[1].parametersValues[0];
35
+ }
23
36
  const parentNode = parentFilterNodeId
24
37
  ? filterState.getNode(parentFilterNodeId)
25
38
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"QueryBuilderFilterStateBuilder.js","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterStateBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,iCAAiC,EAAE,MAAM,sDAAsD,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAC7F,OAAO,EAEL,uCAAuC,EACvC,mCAAmC,GACpC,MAAM,8BAA8B,CAAC;AAEtC,MAAM,iBAAiB,GAAG,CACxB,UAAoC,EACpC,WAAoC,EACpC,kBAAsC,EAChC,EAAE;IACR,MAAM,UAAU,GAAG,kBAAkB;QACnC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC;QACzC,CAAC,CAAC,SAAS,CAAC;IACd,IACE,iBAAiB,CAAC,UAAU,CAAC,YAAY,EAAE;QACzC,iCAAiC,CAAC,GAAG;QACrC,iCAAiC,CAAC,EAAE;KACrC,CAAC,EACF;QACA,MAAM,SAAS,GAAG,IAAI,mCAAmC,CACvD,kBAAkB,EAClB,gBAAgB,CAAC,UAAU,CAAC,YAAY,CAAC,CAC1C,CAAC;QACF,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;QAC/C,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,EAAE,CACvD,iBAAiB,CACf,aAAa,CACX,gBAAgB,EAChB,wBAAwB,EACxB,4FAA4F,CAC7F,EACD,WAAW,EACX,SAAS,CAAC,EAAE,CACb,CACF,CAAC;QACF,WAAW,CAAC,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;KACpD;SAAM;QACL,MAAM,kBAAkB,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1D,IAAI,kBAAkB,YAAY,0BAA0B,EAAE;YAC5D,MAAM,yBAAyB,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACzE,IAAI,yBAAyB,YAAY,0BAA0B,EAAE;gBACnE,+BAA+B,CAC7B,yBAAyB,EACzB,WAAW,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CACtD,CAAC;aACH;SACF;QACD,KAAK,MAAM,QAAQ,IAAI,WAAW,CAAC,SAAS,EAAE;YAC5C,6EAA6E;YAC7E,6EAA6E;YAC7E,2CAA2C;YAC3C,MAAM,oBAAoB,GAAG,kBAAkB,CAAC,GAAG,EAAE,CACnD,QAAQ,CAAC,yBAAyB,CAAC,WAAW,EAAE,UAAU,CAAC,CAC5D,CAAC;YACF,IAAI,oBAAoB,EAAE;gBACxB,WAAW,CAAC,eAAe,CACzB,IAAI,uCAAuC,CACzC,SAAS,EACT,oBAAoB,CACrB,EACD,UAAU,CACX,CAAC;gBACF,OAAO;aACR;SACF;QACD,MAAM,IAAI,yBAAyB,CACjC,mGAAmG,CACpG,CAAC;KACH;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,UAAoC,EACpC,iBAAoC,EAC9B,EAAE;IACR,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;IAClD,MAAM,YAAY,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACpD,UAAU,CACR,YAAY,EACZ,2BAA2B,EAC3B,yFAAyF,CAC1F,CAAC;IAEF,MAAM,UAAU,GAAG,oBAAoB,CACrC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EACtB,oEAAoE,CACrE,CAAC;IACF,UAAU,CACR,UAAU,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAC1C,oFAAoF,CACrF,CAAC;IACF,MAAM,cAAc,GAAG,aAAa,CAClC,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAChC,wBAAwB,EACxB,oFAAoF,CACrF,CAAC;IAEF,UAAU,CACR,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAC/C,8EAA8E,CAC/E,CAAC;IACF,WAAW,CAAC,sBAAsB,CAChC,aAAa,CACX,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,EACrC,kBAAkB,EAClB,8EAA8E,CAC/E,CAAC,IAAI,CACP,CAAC;IAEF,iBAAiB,CAAC,cAAc,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAE1D;;;;;OAKG;IACH,WAAW,CAAC,YAAY,EAAE,CAAC;AAC7B,CAAC,CAAC"}
1
+ {"version":3,"file":"QueryBuilderFilterStateBuilder.js","sourceRoot":"","sources":["../../../src/stores/filter/QueryBuilderFilterStateBuilder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finos/legend-query-builder",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Legend query builder core",
5
5
  "keywords": [
6
6
  "legend",
@@ -45,12 +45,12 @@
45
45
  "@ag-grid-community/core": "29.1.0",
46
46
  "@ag-grid-community/react": "29.1.0",
47
47
  "@ag-grid-community/styles": "29.1.0",
48
- "@finos/legend-application": "13.0.2",
49
- "@finos/legend-art": "5.0.36",
50
- "@finos/legend-graph": "24.0.1",
51
- "@finos/legend-server-depot": "4.4.6",
52
- "@finos/legend-shared": "8.0.1",
53
- "@finos/legend-storage": "3.0.41",
48
+ "@finos/legend-application": "13.0.3",
49
+ "@finos/legend-art": "5.0.37",
50
+ "@finos/legend-graph": "24.1.0",
51
+ "@finos/legend-server-depot": "4.4.7",
52
+ "@finos/legend-shared": "8.0.2",
53
+ "@finos/legend-storage": "3.0.42",
54
54
  "@testing-library/react": "14.0.0",
55
55
  "@types/papaparse": "5.3.7",
56
56
  "@types/react": "18.0.28",
@@ -52,7 +52,7 @@ import { BasicValueSpecificationEditor } from './shared/BasicValueSpecificationE
52
52
  import { VariableViewer } from './shared/QueryBuilderVariableSelector.js';
53
53
  import { QUERY_BUILDER_TEST_ID } from '../application/QueryBuilderTesting.js';
54
54
 
55
- // Note: We currently only allow constant variables for primitive types of multiplicity ONE.
55
+ // NOTE: We currently only allow constant variables for primitive types of multiplicity ONE.
56
56
  // This is why we don't show multiplicity in the editor.
57
57
  const QueryBuilderConstantExpressionEditor = observer(
58
58
  (props: { constantState: QueryBuilderConstantExpressionState }) => {
@@ -370,7 +370,7 @@ const QueryBuilderGridResult = observer(
370
370
  },
371
371
  }}
372
372
  modules={[ClientSideRowModelModule]}
373
- // Note: we use onCellMouseOver as a bit of a workaround
373
+ // NOTE: we use onCellMouseOver as a bit of a workaround
374
374
  // since we use the context menu so we want the user to be
375
375
  // able to right click any cell and have the context menu
376
376
  // options use the data belonging to the row that they are
@@ -362,13 +362,82 @@ const NumberPrimitiveInstanceValueEditor = observer(
362
362
  resetValue,
363
363
  setValueSpecification,
364
364
  } = props;
365
+
366
+ const DECIMAL_POINT = '.';
367
+ const NEGATIVE_SIGN = '-';
368
+
369
+ // NOTE: Although we want to allow the user to type
370
+ // '-' and '.' for negative and decimal numbers respectively,
371
+ // we want to check for when user leaves the input to not
372
+ // leave the number value at an invalid state (i.e. if
373
+ // user just left '-' without an actual number)
374
+ const onBlur = (): void => {
375
+ if (valueSpecification.values[0] === NEGATIVE_SIGN) {
376
+ instanceValue_setValue(valueSpecification, 0, 0);
377
+ }
378
+ const numberInputValue = valueSpecification.values[0] as string;
379
+ if (
380
+ numberInputValue.length > 0 &&
381
+ numberInputValue.at(-1) === DECIMAL_POINT
382
+ ) {
383
+ instanceValue_setValue(
384
+ valueSpecification,
385
+ parseInt(
386
+ numberInputValue.substring(0, numberInputValue.length - 1),
387
+ 10,
388
+ ),
389
+ 0,
390
+ );
391
+ }
392
+ const val = isInteger
393
+ ? parseInt(numberInputValue, 10)
394
+ : parseFloat(numberInputValue);
395
+ instanceValue_setValue(valueSpecification, val, 0);
396
+ setValueSpecification(valueSpecification);
397
+ };
398
+
365
399
  const value = valueSpecification.values[0] as number;
366
400
  const changeValue: React.ChangeEventHandler<HTMLInputElement> = (event) => {
401
+ const valueIsDecimalPoint =
402
+ (event.nativeEvent as InputEvent).data === DECIMAL_POINT;
403
+
404
+ const valueIsNegativeSymbol =
405
+ (event.nativeEvent as InputEvent).data === NEGATIVE_SIGN;
406
+
407
+ if (
408
+ !isInteger &&
409
+ valueIsDecimalPoint &&
410
+ value.toString().length > 0 &&
411
+ !value.toString().includes(DECIMAL_POINT)
412
+ ) {
413
+ instanceValue_setValue(
414
+ valueSpecification,
415
+ valueSpecification.values[0] + DECIMAL_POINT,
416
+ 0,
417
+ );
418
+ return;
419
+ }
420
+ if (
421
+ value.toString().includes(DECIMAL_POINT) &&
422
+ (event.nativeEvent as InputEvent).data === '0'
423
+ ) {
424
+ instanceValue_setValue(
425
+ valueSpecification,
426
+ `${valueSpecification.values[0]}0`,
427
+ 0,
428
+ );
429
+ setValueSpecification(valueSpecification);
430
+ return;
431
+ }
432
+
367
433
  let inputVal = isInteger
368
434
  ? parseInt(event.target.value, 10)
369
435
  : parseFloat(event.target.value);
370
436
  inputVal = isNaN(inputVal) ? 0 : inputVal;
371
- instanceValue_setValue(valueSpecification, inputVal, 0);
437
+
438
+ valueIsNegativeSymbol
439
+ ? instanceValue_setValue(valueSpecification, NEGATIVE_SIGN, 0)
440
+ : instanceValue_setValue(valueSpecification, inputVal, 0);
372
441
  setValueSpecification(valueSpecification);
373
442
  };
374
443
 
@@ -377,8 +446,9 @@ const NumberPrimitiveInstanceValueEditor = observer(
377
446
  <input
378
447
  className="panel__content__form__section__input value-spec-editor__input"
379
448
  spellCheck={false}
380
- type="number"
449
+ type="text"
381
450
  value={value}
451
+ onBlur={onBlur}
382
452
  onChange={changeValue}
383
453
  />
384
454
  <button
@@ -584,7 +584,6 @@ const LambdaEditorPopUp = observer(
584
584
  >
585
585
  <Modal
586
586
  darkMode={true}
587
- data-testid={QUERY_BUILDER_TEST_ID.LAMBDA_EDITOR__EDITOR_INPUT}
588
587
  className={clsx(
589
588
  'editor-modal lambda-editor__popup__modal',
590
589
  {
@@ -61,6 +61,7 @@ import {
61
61
  isStubbed_RawLambda,
62
62
  buildLambdaVariableExpressions,
63
63
  buildRawLambdaFromLambdaFunction,
64
+ type ValueSpecification,
64
65
  } from '@finos/legend-graph';
65
66
  import { buildLambdaFunction } from './QueryBuilderValueSpecificationBuilder.js';
66
67
  import type {
@@ -158,8 +159,6 @@ export abstract class QueryBuilderState implements CommandRegistrar {
158
159
 
159
160
  resetQueryResult: action,
160
161
  resetQueryContent: action,
161
- resetQueryBodyContent: action,
162
- resetQueryParameterContent: action,
163
162
  changeClass: action,
164
163
  changeMapping: action,
165
164
 
@@ -296,13 +295,18 @@ export abstract class QueryBuilderState implements CommandRegistrar {
296
295
  );
297
296
  }
298
297
 
299
- resetQueryResult(): void {
298
+ resetQueryResult(preserveResult?: boolean): void {
300
299
  const resultState = new QueryBuilderResultState(this);
301
300
  resultState.setPreviewLimit(this.resultState.previewLimit);
301
+ if (preserveResult) {
302
+ resultState.setExecutionResult(this.resultState.executionResult);
303
+ resultState.setExecutionDuration(this.resultState.executionDuration);
304
+ resultState.latestRunHashCode = this.resultState.latestRunHashCode;
305
+ }
302
306
  this.resultState = resultState;
303
307
  }
304
308
 
305
- resetQueryBodyContent(): void {
309
+ resetQueryContent(): void {
306
310
  this.textEditorState = new QueryBuilderTextEditorState(this);
307
311
  this.unsupportedQueryState = new QueryBuilderUnsupportedQueryState(this);
308
312
  this.milestoningState = new QueryBuilderMilestoningState(this);
@@ -316,6 +320,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
316
320
  this.explorerState.refreshTreeData();
317
321
  this.constantState = new QueryBuilderConstantsState(this);
318
322
  this.functionsExplorerState = new QueryFunctionsExplorerState(this);
323
+ this.parametersState = new QueryBuilderParametersState(this);
319
324
  this.filterState = new QueryBuilderFilterState(this, this.filterOperators);
320
325
  this.watermarkState = new QueryBuilderWatermarkState(this);
321
326
  this.checkEntitlementsState = new QueryBuilderCheckEntitlementsState(this);
@@ -333,15 +338,6 @@ export abstract class QueryBuilderState implements CommandRegistrar {
333
338
  }
334
339
  }
335
340
 
336
- resetQueryParameterContent(): void {
337
- this.parametersState = new QueryBuilderParametersState(this);
338
- }
339
-
340
- resetQueryContent(): void {
341
- this.resetQueryParameterContent();
342
- this.resetQueryBodyContent();
343
- }
344
-
345
341
  changeClass(val: Class): void {
346
342
  this.resetQueryResult();
347
343
  this.resetQueryContent();
@@ -386,18 +382,34 @@ export abstract class QueryBuilderState implements CommandRegistrar {
386
382
  }
387
383
 
388
384
  initializeWithQuery(query: RawLambda): void {
389
- this.resetQueryParameterContent();
390
385
  this.rebuildWithQuery(query);
386
+ this.resetQueryResult();
391
387
  this.changeDetectionState.initialize(query);
392
388
  }
393
389
 
394
390
  /**
395
391
  * Process the provided query, and rebuild the query builder state.
396
392
  */
397
- rebuildWithQuery(query: RawLambda): void {
393
+ rebuildWithQuery(
394
+ query: RawLambda,
395
+ options?: {
396
+ preserveParameterValues?: boolean | undefined;
397
+ preserveResult?: boolean | undefined;
398
+ },
399
+ ): void {
400
+ const previousStateParameterValues = new Map<
401
+ VariableExpression,
402
+ ValueSpecification | undefined
403
+ >();
398
404
  try {
399
- this.resetQueryResult();
400
- this.resetQueryBodyContent();
405
+ if (options?.preserveParameterValues) {
406
+ // Preserving parameter values
407
+ this.parametersState.parameterStates.forEach((ps) => {
408
+ previousStateParameterValues.set(ps.parameter, ps.value);
409
+ });
410
+ }
411
+ this.resetQueryResult(options?.preserveResult);
412
+ this.resetQueryContent();
401
413
 
402
414
  if (!isStubbed_RawLambda(query)) {
403
415
  const valueSpec = observe_ValueSpecification(
@@ -417,6 +429,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
417
429
  processQueryLambdaFunction(
418
430
  guaranteeNonNullable(compiledValueSpecification.values[0]),
419
431
  this,
432
+ previousStateParameterValues,
420
433
  );
421
434
  }
422
435
  if (this.parametersState.parameterStates.length > 0) {
@@ -424,8 +437,8 @@ export abstract class QueryBuilderState implements CommandRegistrar {
424
437
  }
425
438
  } catch (error) {
426
439
  assertErrorThrown(error);
427
- this.resetQueryBodyContent();
428
440
  this.resetQueryResult();
441
+ this.resetQueryContent();
429
442
  this.unsupportedQueryState.setLambdaError(error);
430
443
  this.unsupportedQueryState.setRawLambda(query);
431
444
  this.setClass(undefined);
@@ -70,7 +70,6 @@ import { processTDS_OLAPGroupByExpression } from './fetch-structure/tds/window/Q
70
70
  import { processWatermarkExpression } from './watermark/QueryBuilderWatermarkStateBuilder.js';
71
71
  import { QueryBuilderConstantExpressionState } from './QueryBuilderConstantsState.js';
72
72
  import { checkIfEquivalent } from './milestoning/QueryBuilderMilestoningHelper.js';
73
- import { QueryBuilderParametersState } from './QueryBuilderParametersState.js';
74
73
 
75
74
  const processGetAllExpression = (
76
75
  expression: SimpleFunctionExpression,
@@ -608,28 +607,31 @@ export class QueryBuilderValueSpecificationProcessor
608
607
  export const processParameters = (
609
608
  parameters: VariableExpression[],
610
609
  queryBuilderState: QueryBuilderState,
610
+ preservedParameters?: Map<VariableExpression, ValueSpecification | undefined>,
611
611
  ): void => {
612
- const queryParameterState = new QueryBuilderParametersState(
613
- queryBuilderState,
614
- );
615
- // Here we won't process the parameters which are present in the previous state
612
+ const queryParameterState = queryBuilderState.parametersState;
613
+ // Here we won't mock the values for parameters which are present in the previous state
616
614
  // because we don't want to lose the parameter value
617
615
  parameters.forEach((parameter) => {
618
- const oldParamterState =
619
- queryBuilderState.parametersState.parameterStates.find((ps) =>
620
- checkIfEquivalent(ps.parameter, parameter),
621
- );
622
- if (oldParamterState) {
623
- queryParameterState.addParameter(oldParamterState);
616
+ let oldParamterValue: ValueSpecification | undefined;
617
+ if (preservedParameters) {
618
+ Array.from(preservedParameters.entries()).forEach(([key, value]) => {
619
+ if (checkIfEquivalent(key, parameter)) {
620
+ oldParamterValue = value;
621
+ }
622
+ });
623
+ }
624
+ const parameterState = new LambdaParameterState(
625
+ parameter,
626
+ queryBuilderState.observableContext,
627
+ queryBuilderState.graphManagerState.graph,
628
+ );
629
+ if (oldParamterValue) {
630
+ parameterState.setValue(oldParamterValue);
624
631
  } else {
625
- const parameterState = new LambdaParameterState(
626
- parameter,
627
- queryBuilderState.observableContext,
628
- queryBuilderState.graphManagerState.graph,
629
- );
630
632
  parameterState.mockParameterValue();
631
- queryParameterState.addParameter(parameterState);
632
633
  }
634
+ queryParameterState.addParameter(parameterState);
633
635
  });
634
636
  queryBuilderState.parametersState = queryParameterState;
635
637
  };
@@ -637,11 +639,13 @@ export const processParameters = (
637
639
  export const processQueryLambdaFunction = (
638
640
  lambdaFunction: LambdaFunction,
639
641
  queryBuilderState: QueryBuilderState,
642
+ preservedParameters?: Map<VariableExpression, ValueSpecification | undefined>,
640
643
  ): void => {
641
644
  if (lambdaFunction.functionType.parameters.length) {
642
645
  processParameters(
643
646
  lambdaFunction.functionType.parameters,
644
647
  queryBuilderState,
648
+ preservedParameters,
645
649
  );
646
650
  }
647
651
  lambdaFunction.expressionSequence.map((expression) =>
@@ -198,7 +198,10 @@ export class QueryBuilderTextEditorState extends LambdaEditorState {
198
198
  `Can't parse query. Please fix error before closing: ${this.parserError.message}`,
199
199
  );
200
200
  } else {
201
- this.queryBuilderState.rebuildWithQuery(this.rawLambdaState.lambda);
201
+ this.queryBuilderState.rebuildWithQuery(this.rawLambdaState.lambda, {
202
+ preserveParameterValues: true,
203
+ preserveResult: true,
204
+ });
202
205
  this.setMode(undefined);
203
206
  }
204
207
  return;
@@ -22,7 +22,8 @@ import {
22
22
  matchFunctionName,
23
23
  VariableExpression,
24
24
  FunctionExpression,
25
- type SimpleFunctionExpression,
25
+ SimpleFunctionExpression,
26
+ MINUS_STRING,
26
27
  } from '@finos/legend-graph';
27
28
  import {
28
29
  assertTrue,
@@ -178,6 +179,24 @@ const processPostFilterTree = (
178
179
  postFilterState: QueryBuilderPostFilterState,
179
180
  parentPostFilterNodeId: string | undefined,
180
181
  ): void => {
182
+ // NOTE: This checks if the expression is a simple function expression of Minus
183
+ // since negative numbers are returned as a SimpleFunctionExpression of minus(number)
184
+ // rather than a PrimitiveInstanceValue of -number, so here
185
+ // we replace the parameter value of the expression directly with a PrimitiveInstanceValue
186
+ if (
187
+ expression.parametersValues[1] instanceof SimpleFunctionExpression &&
188
+ expression.parametersValues[1].functionName === MINUS_STRING &&
189
+ expression.parametersValues[1].parametersValues[0] instanceof
190
+ PrimitiveInstanceValue
191
+ ) {
192
+ expression.parametersValues[1].parametersValues[0].values[0] =
193
+ parseFloat(
194
+ expression.parametersValues[1].parametersValues[0].values[0] as string,
195
+ ) * -1;
196
+ expression.parametersValues[1] =
197
+ expression.parametersValues[1].parametersValues[0];
198
+ }
199
+
181
200
  const parentNode = parentPostFilterNodeId
182
201
  ? postFilterState.getNode(parentPostFilterNodeId)
183
202
  : undefined;
@@ -18,6 +18,8 @@ import {
18
18
  AbstractPropertyExpression,
19
19
  LambdaFunctionInstanceValue,
20
20
  matchFunctionName,
21
+ MINUS_STRING,
22
+ PrimitiveInstanceValue,
21
23
  SimpleFunctionExpression,
22
24
  VariableExpression,
23
25
  } from '@finos/legend-graph';
@@ -44,6 +46,24 @@ const processFilterTree = (
44
46
  filterState: QueryBuilderFilterState,
45
47
  parentFilterNodeId: string | undefined,
46
48
  ): void => {
49
+ // NOTE: This checks if the expression is a simple function expression of Minus
50
+ // since negative numbers are returned as a SimpleFunctionExpression of minus(number)
51
+ // rather than a PrimitiveInstanceValue of -number, so here
52
+ // we replace the parameter value of the expression directly with a PrimitiveInstanceValue
53
+ if (
54
+ expression.parametersValues[1] instanceof SimpleFunctionExpression &&
55
+ expression.parametersValues[1].functionName === MINUS_STRING &&
56
+ expression.parametersValues[1].parametersValues[0] instanceof
57
+ PrimitiveInstanceValue
58
+ ) {
59
+ expression.parametersValues[1].parametersValues[0].values[0] =
60
+ parseFloat(
61
+ expression.parametersValues[1].parametersValues[0].values[0] as string,
62
+ ) * -1;
63
+ expression.parametersValues[1] =
64
+ expression.parametersValues[1].parametersValues[0];
65
+ }
66
+
47
67
  const parentNode = parentFilterNodeId
48
68
  ? filterState.getNode(parentFilterNodeId)
49
69
  : undefined;