@finos/legend-query-builder 1.0.3 → 1.0.4

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 (194) hide show
  1. package/lib/components/QueryBuilderConstantExpressionPanel.d.ts.map +1 -1
  2. package/lib/components/QueryBuilderConstantExpressionPanel.js +3 -3
  3. package/lib/components/QueryBuilderConstantExpressionPanel.js.map +1 -1
  4. package/lib/components/QueryBuilderParametersPanel.js +2 -2
  5. package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
  6. package/lib/components/QueryBuilderPropertyExpressionEditor.js +5 -6
  7. package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
  8. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  9. package/lib/components/QueryBuilderResultPanel.js +7 -12
  10. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  11. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
  12. package/lib/components/explorer/QueryBuilderExplorerPanel.js +6 -6
  13. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  14. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -1
  15. package/lib/components/explorer/QueryBuilderMilestoningEditor.js +3 -5
  16. package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -1
  17. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
  18. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js +5 -6
  19. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
  20. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +1 -1
  21. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  22. package/lib/components/filter/QueryBuilderFilterPanel.js +1 -1
  23. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  24. package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
  25. package/lib/components/shared/BasicValueSpecificationEditor.js +87 -76
  26. package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
  27. package/lib/components/shared/CustomDatePicker.d.ts.map +1 -1
  28. package/lib/components/shared/CustomDatePicker.js +13 -14
  29. package/lib/components/shared/CustomDatePicker.js.map +1 -1
  30. package/lib/components/watermark/QueryBuilderWatermark.d.ts.map +1 -1
  31. package/lib/components/watermark/QueryBuilderWatermark.js +1 -1
  32. package/lib/components/watermark/QueryBuilderWatermark.js.map +1 -1
  33. package/lib/graphManager/QueryBuilderSupportedFunctions.d.ts +1 -0
  34. package/lib/graphManager/QueryBuilderSupportedFunctions.d.ts.map +1 -1
  35. package/lib/graphManager/QueryBuilderSupportedFunctions.js +1 -0
  36. package/lib/graphManager/QueryBuilderSupportedFunctions.js.map +1 -1
  37. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
  38. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts +8 -8
  39. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -1
  40. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js +17 -26
  41. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
  42. package/lib/index.css +2 -2
  43. package/lib/index.css.map +1 -1
  44. package/lib/package.json +11 -10
  45. package/lib/stores/QueryBuilderChangeDetectionState.d.ts +4 -4
  46. package/lib/stores/QueryBuilderChangeDetectionState.d.ts.map +1 -1
  47. package/lib/stores/QueryBuilderChangeDetectionState.js +9 -9
  48. package/lib/stores/QueryBuilderChangeDetectionState.js.map +1 -1
  49. package/lib/stores/QueryBuilderConstantsState.d.ts.map +1 -1
  50. package/lib/stores/QueryBuilderConstantsState.js +4 -4
  51. package/lib/stores/QueryBuilderConstantsState.js.map +1 -1
  52. package/lib/stores/QueryBuilderPropertyEditorState.d.ts +2 -3
  53. package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
  54. package/lib/stores/QueryBuilderPropertyEditorState.js +9 -12
  55. package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
  56. package/lib/stores/QueryBuilderState.d.ts +4 -2
  57. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  58. package/lib/stores/QueryBuilderState.js +7 -7
  59. package/lib/stores/QueryBuilderState.js.map +1 -1
  60. package/lib/stores/QueryBuilderStateBuilder.d.ts +2 -2
  61. package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
  62. package/lib/stores/QueryBuilderStateBuilder.js +10 -12
  63. package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
  64. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +1 -1
  65. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -1
  66. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +9 -1
  67. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
  68. package/lib/stores/QueryBuilderValueSpecificationHelper.js +22 -1
  69. package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
  70. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts.map +1 -1
  71. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js +2 -2
  72. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
  73. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +1 -1
  74. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
  75. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.d.ts +1 -1
  76. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.d.ts.map +1 -1
  77. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js +22 -15
  78. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
  79. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -1
  80. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +2 -1
  81. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
  82. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -1
  83. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +2 -1
  84. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
  85. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
  86. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +6 -3
  87. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
  88. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
  89. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +4 -2
  90. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
  91. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
  92. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +4 -2
  93. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
  94. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -1
  95. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +2 -1
  96. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
  97. package/lib/stores/filter/QueryBuilderFilterState.js +2 -2
  98. package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
  99. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -1
  100. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +1 -14
  101. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
  102. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts.map +1 -1
  103. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js +9 -2
  104. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js.map +1 -1
  105. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
  106. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +1 -1
  107. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
  108. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
  109. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +1 -1
  110. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
  111. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
  112. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +4 -3
  113. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
  114. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
  115. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +2 -2
  116. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
  117. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  118. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +2 -2
  119. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
  120. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
  121. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +2 -2
  122. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
  123. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
  124. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +2 -2
  125. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
  126. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
  127. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +1 -1
  128. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
  129. package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts.map +1 -1
  130. package/lib/stores/milestoning/QueryBuilderMilestoningState.js +3 -3
  131. package/lib/stores/milestoning/QueryBuilderMilestoningState.js.map +1 -1
  132. package/lib/stores/shared/LambdaParameterState.d.ts +2 -2
  133. package/lib/stores/shared/LambdaParameterState.d.ts.map +1 -1
  134. package/lib/stores/shared/LambdaParameterState.js +5 -5
  135. package/lib/stores/shared/LambdaParameterState.js.map +1 -1
  136. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts +4 -4
  137. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -1
  138. package/lib/stores/shared/ValueSpecificationEditorHelper.js +11 -15
  139. package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -1
  140. package/lib/stores/shared/ValueSpecificationModifierHelper.d.ts +8 -8
  141. package/lib/stores/shared/ValueSpecificationModifierHelper.d.ts.map +1 -1
  142. package/lib/stores/shared/ValueSpecificationModifierHelper.js +20 -17
  143. package/lib/stores/shared/ValueSpecificationModifierHelper.js.map +1 -1
  144. package/lib/stores/watermark/QueryBuilderWatermarkState.d.ts.map +1 -1
  145. package/lib/stores/watermark/QueryBuilderWatermarkState.js +1 -1
  146. package/lib/stores/watermark/QueryBuilderWatermarkState.js.map +1 -1
  147. package/package.json +18 -17
  148. package/src/components/QueryBuilderConstantExpressionPanel.tsx +3 -1
  149. package/src/components/QueryBuilderParametersPanel.tsx +2 -2
  150. package/src/components/QueryBuilderPropertyExpressionEditor.tsx +6 -6
  151. package/src/components/QueryBuilderResultPanel.tsx +18 -14
  152. package/src/components/explorer/QueryBuilderExplorerPanel.tsx +10 -11
  153. package/src/components/explorer/QueryBuilderMilestoningEditor.tsx +7 -5
  154. package/src/components/explorer/QueryBuilderPropertySearchPanel.tsx +9 -6
  155. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +1 -1
  156. package/src/components/filter/QueryBuilderFilterPanel.tsx +1 -1
  157. package/src/components/shared/BasicValueSpecificationEditor.tsx +180 -106
  158. package/src/components/shared/CustomDatePicker.tsx +54 -26
  159. package/src/components/watermark/QueryBuilderWatermark.tsx +1 -3
  160. package/src/graphManager/QueryBuilderSupportedFunctions.ts +4 -0
  161. package/src/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +1 -1
  162. package/src/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.ts +67 -68
  163. package/src/stores/QueryBuilderChangeDetectionState.ts +13 -11
  164. package/src/stores/QueryBuilderConstantsState.ts +4 -3
  165. package/src/stores/QueryBuilderPropertyEditorState.ts +17 -13
  166. package/src/stores/QueryBuilderState.ts +7 -9
  167. package/src/stores/QueryBuilderStateBuilder.ts +10 -12
  168. package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +1 -1
  169. package/src/stores/QueryBuilderValueSpecificationHelper.ts +36 -0
  170. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts +10 -2
  171. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +1 -1
  172. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts +26 -20
  173. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +2 -0
  174. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +2 -0
  175. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +14 -3
  176. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +4 -0
  177. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +4 -0
  178. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +2 -0
  179. package/src/stores/filter/QueryBuilderFilterState.ts +2 -2
  180. package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +0 -20
  181. package/src/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.ts +17 -4
  182. package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +1 -0
  183. package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +1 -0
  184. package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +12 -3
  185. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +2 -0
  186. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +2 -0
  187. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +2 -0
  188. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +2 -0
  189. package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +1 -0
  190. package/src/stores/milestoning/QueryBuilderMilestoningState.ts +3 -9
  191. package/src/stores/shared/LambdaParameterState.ts +9 -5
  192. package/src/stores/shared/ValueSpecificationEditorHelper.ts +24 -9
  193. package/src/stores/shared/ValueSpecificationModifierHelper.ts +42 -20
  194. package/src/stores/watermark/QueryBuilderWatermarkState.ts +1 -4
@@ -24,6 +24,7 @@ export enum QUERY_BUILDER_SUPPORTED_FUNCTIONS {
24
24
  OR = 'meta::pure::functions::boolean::or',
25
25
  TAKE = 'meta::pure::functions::collection::take',
26
26
  SUBTYPE = 'meta::pure::functions::lang::subType',
27
+ MINUS = 'meta::pure::functions::math::minus',
27
28
 
28
29
  // graph-fetch
29
30
  GRAPH_FETCH = 'meta::pure::graphFetch::execution::graphFetch',
@@ -53,6 +54,7 @@ export enum QUERY_BUILDER_SUPPORTED_FUNCTIONS {
53
54
  LESS_THAN = 'meta::pure::functions::lang::tests::lessThan',
54
55
  LESS_THAN_EQUAL = 'meta::pure::functions::lang::tests::lessThanEqual',
55
56
  STARTS_WITH = 'meta::pure::functions::string::startsWith',
57
+
56
58
  // aggregation
57
59
  AVERAGE = 'meta::pure::functions::math::average',
58
60
  COUNT = 'meta::pure::functions::collection::count',
@@ -66,8 +68,10 @@ export enum QUERY_BUILDER_SUPPORTED_FUNCTIONS {
66
68
  STD_DEV_SAMPLE = 'meta::pure::functions::math::stdDevSample',
67
69
  SUM = 'meta::pure::functions::math::sum',
68
70
  UNIQUE_VALUE_ONLY = 'meta::pure::functions::collection::uniqueValueOnly',
71
+
69
72
  // watermark
70
73
  WATERMARK = 'meta::datalake::functions::forWatermark',
74
+
71
75
  // OLAP
72
76
  OLAP_GROUPBY = 'meta::pure::tds::olapGroupBy',
73
77
  OLAP_RANK = 'meta::pure::functions::math::olap::rank',
@@ -57,7 +57,7 @@ export class QueryBuilder_PureProtocolProcessorPlugin extends PureProtocolProces
57
57
  openVariables: string[],
58
58
  compileContext: V1_GraphBuilderContext,
59
59
  processingContext: V1_ProcessingContext,
60
- ): [SimpleFunctionExpression, ValueSpecification[]] | undefined => {
60
+ ): SimpleFunctionExpression | undefined => {
61
61
  if (
62
62
  matchFunctionName(
63
63
  functionName,
@@ -201,8 +201,8 @@ export const V1_buildGetAllFunctionExpression = (
201
201
  openVariables: string[],
202
202
  compileContext: V1_GraphBuilderContext,
203
203
  processingContext: V1_ProcessingContext,
204
- ): [SimpleFunctionExpression, ValueSpecification[]] => {
205
- const [expression, processedParams] = V1_buildGenericFunctionExpression(
204
+ ): SimpleFunctionExpression => {
205
+ const expression = V1_buildGenericFunctionExpression(
206
206
  functionName,
207
207
  parameters,
208
208
  openVariables,
@@ -218,7 +218,8 @@ export const V1_buildGetAllFunctionExpression = (
218
218
  );
219
219
  expression.genericType = precedingExpression.genericType;
220
220
  expression.multiplicity = precedingExpression.multiplicity;
221
- return [expression, processedParams];
221
+
222
+ return expression;
222
223
  };
223
224
 
224
225
  export const V1_buildExistsFunctionExpression = (
@@ -227,7 +228,7 @@ export const V1_buildExistsFunctionExpression = (
227
228
  openVariables: string[],
228
229
  compileContext: V1_GraphBuilderContext,
229
230
  processingContext: V1_ProcessingContext,
230
- ): [SimpleFunctionExpression, ValueSpecification[]] => {
231
+ ): SimpleFunctionExpression => {
231
232
  assertTrue(
232
233
  parameters.length === 2,
233
234
  `Can't build exists() expression: exists() expects 1 argument`,
@@ -262,22 +263,21 @@ export const V1_buildExistsFunctionExpression = (
262
263
  }
263
264
  });
264
265
  }
265
- const processedParameters = [
266
- precedingExpression,
267
- (parameters[1] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
268
- new V1_ValueSpecificationBuilder(
269
- compileContext,
270
- processingContext,
271
- openVariables,
266
+
267
+ return V1_buildBaseSimpleFunctionExpression(
268
+ [
269
+ precedingExpression,
270
+ (parameters[1] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
271
+ new V1_ValueSpecificationBuilder(
272
+ compileContext,
273
+ processingContext,
274
+ openVariables,
275
+ ),
272
276
  ),
273
- ),
274
- ];
275
- const expression = V1_buildBaseSimpleFunctionExpression(
276
- processedParameters,
277
+ ],
277
278
  functionName,
278
279
  compileContext,
279
280
  );
280
- return [expression, processedParameters];
281
281
  };
282
282
 
283
283
  export const V1_buildFilterFunctionExpression = (
@@ -286,7 +286,7 @@ export const V1_buildFilterFunctionExpression = (
286
286
  openVariables: string[],
287
287
  compileContext: V1_GraphBuilderContext,
288
288
  processingContext: V1_ProcessingContext,
289
- ): [SimpleFunctionExpression, ValueSpecification[]] => {
289
+ ): SimpleFunctionExpression => {
290
290
  assertTrue(
291
291
  parameters.length === 2,
292
292
  `Can't build filter() expression: filter() expects 1 argument`,
@@ -318,19 +318,18 @@ export const V1_buildFilterFunctionExpression = (
318
318
  });
319
319
  }
320
320
  }
321
- const processedParams = [
322
- precedingExpression,
323
- (parameters[1] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
324
- new V1_ValueSpecificationBuilder(
325
- compileContext,
326
- processingContext,
327
- openVariables,
328
- ),
329
- ),
330
- ];
331
321
 
332
322
  const expression = V1_buildBaseSimpleFunctionExpression(
333
- processedParams,
323
+ [
324
+ precedingExpression,
325
+ (parameters[1] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
326
+ new V1_ValueSpecificationBuilder(
327
+ compileContext,
328
+ processingContext,
329
+ openVariables,
330
+ ),
331
+ ),
332
+ ],
334
333
  functionName,
335
334
  compileContext,
336
335
  );
@@ -338,7 +337,8 @@ export const V1_buildFilterFunctionExpression = (
338
337
  // return type of filter() is the same as that of the function precedes it
339
338
  expression.genericType = precedingExpression.genericType;
340
339
  expression.multiplicity = precedingExpression.multiplicity;
341
- return [expression, processedParams];
340
+
341
+ return expression;
342
342
  };
343
343
 
344
344
  export const V1_buildProjectFunctionExpression = (
@@ -347,7 +347,7 @@ export const V1_buildProjectFunctionExpression = (
347
347
  openVariables: string[],
348
348
  compileContext: V1_GraphBuilderContext,
349
349
  processingContext: V1_ProcessingContext,
350
- ): [SimpleFunctionExpression, ValueSpecification[]] => {
350
+ ): SimpleFunctionExpression => {
351
351
  assertTrue(
352
352
  parameters.length === 3,
353
353
  `Can't build project() expression: project() expects 2 arguments`,
@@ -417,26 +417,26 @@ export const V1_buildProjectFunctionExpression = (
417
417
  }
418
418
  });
419
419
 
420
- const processedParams = [
421
- precedingExperession,
422
- processedColumnExpressions,
423
- (parameters[2] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
424
- new V1_ValueSpecificationBuilder(
425
- compileContext,
426
- processingContext,
427
- openVariables,
428
- ),
429
- ),
430
- ];
431
420
  const expression = V1_buildBaseSimpleFunctionExpression(
432
- processedParams,
421
+ [
422
+ precedingExperession,
423
+ processedColumnExpressions,
424
+ (parameters[2] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
425
+ new V1_ValueSpecificationBuilder(
426
+ compileContext,
427
+ processingContext,
428
+ openVariables,
429
+ ),
430
+ ),
431
+ ],
433
432
  functionName,
434
433
  compileContext,
435
434
  );
436
435
  expression.genericType = GenericTypeExplicitReference.create(
437
436
  new GenericType(compileContext.resolveType(CORE_PURE_PATH.TDS_ROW).value),
438
437
  );
439
- return [expression, processedParams];
438
+
439
+ return expression;
440
440
  };
441
441
 
442
442
  export const V1_buildGroupByFunctionExpression = (
@@ -445,7 +445,7 @@ export const V1_buildGroupByFunctionExpression = (
445
445
  openVariables: string[],
446
446
  compileContext: V1_GraphBuilderContext,
447
447
  processingContext: V1_ProcessingContext,
448
- ): [SimpleFunctionExpression, ValueSpecification[]] => {
448
+ ): SimpleFunctionExpression => {
449
449
  let topLevelLambdaParameters: V1_Variable[] = [];
450
450
  assertTrue(
451
451
  parameters.length === 4,
@@ -557,27 +557,27 @@ export const V1_buildGroupByFunctionExpression = (
557
557
  ),
558
558
  );
559
559
 
560
- const processedParams = [
561
- precedingExperession,
562
- processedColumnExpressions,
563
- processedAggregationExpressions,
564
- (parameters[3] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
565
- new V1_ValueSpecificationBuilder(
566
- compileContext,
567
- processingContext,
568
- openVariables,
569
- ),
570
- ),
571
- ];
572
560
  const expression = V1_buildBaseSimpleFunctionExpression(
573
- processedParams,
561
+ [
562
+ precedingExperession,
563
+ processedColumnExpressions,
564
+ processedAggregationExpressions,
565
+ (parameters[3] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
566
+ new V1_ValueSpecificationBuilder(
567
+ compileContext,
568
+ processingContext,
569
+ openVariables,
570
+ ),
571
+ ),
572
+ ],
574
573
  functionName,
575
574
  compileContext,
576
575
  );
577
576
  expression.genericType = GenericTypeExplicitReference.create(
578
577
  new GenericType(compileContext.resolveType(CORE_PURE_PATH.TDS_ROW).value),
579
578
  );
580
- return [expression, processedParams];
579
+
580
+ return expression;
581
581
  };
582
582
 
583
583
  export const V1_buildWatermarkFunctionExpression = (
@@ -586,7 +586,7 @@ export const V1_buildWatermarkFunctionExpression = (
586
586
  openVariables: string[],
587
587
  compileContext: V1_GraphBuilderContext,
588
588
  processingContext: V1_ProcessingContext,
589
- ): [SimpleFunctionExpression, ValueSpecification[]] | undefined => {
589
+ ): SimpleFunctionExpression | undefined => {
590
590
  assertTrue(
591
591
  parameters.length === 2,
592
592
  `Can't build forWatermark() expression: forWatermark() expects 1 argument`,
@@ -622,8 +622,7 @@ export const V1_buildWatermarkFunctionExpression = (
622
622
  });
623
623
  }
624
624
 
625
- const processedParams = [
626
- precedingExpression,
625
+ const watermarkValueParam = guaranteeNonNullable(
627
626
  (parameters[1] as V1_ValueSpecification).accept_ValueSpecificationVisitor(
628
627
  new V1_ValueSpecificationBuilder(
629
628
  compileContext,
@@ -631,9 +630,7 @@ export const V1_buildWatermarkFunctionExpression = (
631
630
  openVariables,
632
631
  ),
633
632
  ),
634
- ];
635
-
636
- const watermarkValueParam = guaranteeNonNullable(processedParams[1]);
633
+ );
637
634
  const watermarkValueParamType =
638
635
  watermarkValueParam.genericType?.value.rawType;
639
636
  assertTrue(
@@ -642,14 +639,15 @@ export const V1_buildWatermarkFunctionExpression = (
642
639
  );
643
640
 
644
641
  const expression = V1_buildBaseSimpleFunctionExpression(
645
- processedParams,
642
+ [precedingExpression, watermarkValueParam],
646
643
  functionName,
647
644
  compileContext,
648
645
  );
649
646
 
650
647
  expression.genericType = precedingExpression.genericType;
651
648
  expression.multiplicity = precedingExpression.multiplicity;
652
- return [expression, processedParams];
649
+
650
+ return expression;
653
651
  };
654
652
 
655
653
  export const V1_buildOLAPGroupByFunctionExpression = (
@@ -658,7 +656,7 @@ export const V1_buildOLAPGroupByFunctionExpression = (
658
656
  openVariables: string[],
659
657
  compileContext: V1_GraphBuilderContext,
660
658
  processingContext: V1_ProcessingContext,
661
- ): [SimpleFunctionExpression, ValueSpecification[]] | undefined => {
659
+ ): SimpleFunctionExpression | undefined => {
662
660
  const processedParams: ValueSpecification[] = [];
663
661
  assertTrue(
664
662
  parameters.length === 5 || parameters.length === 4,
@@ -778,7 +776,8 @@ export const V1_buildOLAPGroupByFunctionExpression = (
778
776
  expression.genericType = GenericTypeExplicitReference.create(
779
777
  new GenericType(compileContext.resolveType(CORE_PURE_PATH.TDS_ROW).value),
780
778
  );
781
- return [expression, processedParams];
779
+
780
+ return expression;
782
781
  };
783
782
 
784
783
  export const V1_buildSubTypePropertyExpressionTypeInference = (
@@ -91,17 +91,19 @@ export class QueryBuilderDiffViewState {
91
91
  }
92
92
 
93
93
  export class QueryBuilderChangeDetectionState {
94
- querybuilderState: QueryBuilderState;
95
- initState = ActionState.create();
94
+ readonly querybuilderState: QueryBuilderState;
95
+
96
+ readonly initState = ActionState.create();
97
+
98
+ querySnapshot?: RawLambda | undefined;
99
+ hashCodeSnapshot?: string | undefined;
96
100
  diffViewState?: QueryBuilderDiffViewState | undefined;
97
- initialQuery?: RawLambda | undefined;
98
- initialHashCode?: string | undefined;
99
101
 
100
102
  constructor(queryBuilderState: QueryBuilderState) {
101
103
  makeObservable(this, {
102
104
  diffViewState: observable,
103
- initialHashCode: observable,
104
- initialQuery: observable,
105
+ querySnapshot: observable,
106
+ hashCodeSnapshot: observable,
105
107
  hasChanged: computed,
106
108
  initialize: action,
107
109
  showDiffViewPanel: action,
@@ -113,12 +115,12 @@ export class QueryBuilderChangeDetectionState {
113
115
 
114
116
  showDiffViewPanel(): void {
115
117
  assertNonNullable(
116
- this.initialQuery,
118
+ this.querySnapshot,
117
119
  `Can't show changes: change detection is not properly initialized`,
118
120
  );
119
121
  this.diffViewState = new QueryBuilderDiffViewState(
120
122
  this,
121
- this.initialQuery,
123
+ this.querySnapshot,
122
124
  this.querybuilderState.buildQuery(),
123
125
  );
124
126
  }
@@ -131,13 +133,13 @@ export class QueryBuilderChangeDetectionState {
131
133
  if (!this.initState.hasCompleted) {
132
134
  return false;
133
135
  }
134
- return this.querybuilderState.hashCode !== this.initialHashCode;
136
+ return this.querybuilderState.hashCode !== this.hashCodeSnapshot;
135
137
  }
136
138
 
137
139
  initialize(initialQuery: RawLambda): void {
138
140
  this.initState.inProgress();
139
- this.initialHashCode = this.querybuilderState.hashCode;
140
- this.initialQuery = initialQuery;
141
+ this.hashCodeSnapshot = this.querybuilderState.hashCode;
142
+ this.querySnapshot = initialQuery;
141
143
  this.initState.complete();
142
144
  }
143
145
 
@@ -57,11 +57,11 @@ export class QueryBuilderConstantExpressionState implements Hashable {
57
57
  this.queryBuilderState = queryBuilderState;
58
58
  this.value = observe_ValueSpecification(
59
59
  value,
60
- this.queryBuilderState.observableContext,
60
+ this.queryBuilderState.observerContext,
61
61
  );
62
62
  observe_ValueSpecification(
63
63
  variable,
64
- this.queryBuilderState.observableContext,
64
+ this.queryBuilderState.observerContext,
65
65
  );
66
66
  this.variable = variable;
67
67
  }
@@ -73,6 +73,7 @@ export class QueryBuilderConstantExpressionState implements Hashable {
73
73
  const valSpec = buildDefaultInstanceValue(
74
74
  this.queryBuilderState.graphManagerState.graph,
75
75
  type,
76
+ this.queryBuilderState.observerContext,
76
77
  );
77
78
  this.setValueSpec(valSpec);
78
79
  } catch (error) {
@@ -92,7 +93,7 @@ export class QueryBuilderConstantExpressionState implements Hashable {
92
93
  }
93
94
  this.value = observe_ValueSpecification(
94
95
  value,
95
- this.queryBuilderState.observableContext,
96
+ this.queryBuilderState.observerContext,
96
97
  );
97
98
  const valueSpecType = value.genericType?.value.rawType;
98
99
  if (
@@ -21,8 +21,6 @@ import {
21
21
  guaranteeType,
22
22
  type Hashable,
23
23
  hashArray,
24
- isCamelCase,
25
- prettyCamelCase,
26
24
  prettyCONSTName,
27
25
  } from '@finos/legend-shared';
28
26
  import {
@@ -48,6 +46,7 @@ import {
48
46
  GenericType,
49
47
  PropertyExplicitReference,
50
48
  PrimitiveType,
49
+ type ObserverContext,
51
50
  } from '@finos/legend-graph';
52
51
  import {
53
52
  createNullishValue,
@@ -63,15 +62,12 @@ import {
63
62
  } from './shared/ValueSpecificationModifierHelper.js';
64
63
  import { generateMilestonedPropertyParameterValue } from './milestoning/QueryBuilderMilestoningHelper.js';
65
64
 
66
- export const prettyPropertyName = (value: string): string =>
67
- isCamelCase(value) ? prettyCamelCase(value) : prettyCONSTName(value);
68
-
69
65
  export const getPropertyChainName = (
70
66
  propertyExpression: AbstractPropertyExpression,
71
67
  humanizePropertyName: boolean,
72
68
  ): string => {
73
69
  const propertyNameDecorator = humanizePropertyName
74
- ? prettyPropertyName
70
+ ? prettyCONSTName
75
71
  : (val: string): string => val;
76
72
  const chunks = [propertyNameDecorator(propertyExpression.func.value.name)];
77
73
  let currentExpression: ValueSpecification | undefined = propertyExpression;
@@ -146,6 +142,7 @@ export const getPropertyPath = (
146
142
  export const generateValueSpecificationForParameter = (
147
143
  parameter: VariableExpression,
148
144
  graph: PureModel,
145
+ observerContext: ObserverContext,
149
146
  ): ValueSpecification => {
150
147
  if (parameter.genericType) {
151
148
  const type = parameter.genericType.value.rawType;
@@ -161,9 +158,11 @@ export const generateValueSpecificationForParameter = (
161
158
  ),
162
159
  );
163
160
  if (type !== PrimitiveType.LATESTDATE) {
164
- instanceValue_setValues(primitiveInstanceValue, [
165
- generateDefaultValueForPrimitiveType(type.name as PRIMITIVE_TYPE),
166
- ]);
161
+ instanceValue_setValues(
162
+ primitiveInstanceValue,
163
+ [generateDefaultValueForPrimitiveType(type.name as PRIMITIVE_TYPE)],
164
+ observerContext,
165
+ );
167
166
  }
168
167
  return primitiveInstanceValue;
169
168
  } else if (type instanceof Enumeration) {
@@ -174,7 +173,11 @@ export const generateValueSpecificationForParameter = (
174
173
  const enumValueRef = EnumValueExplicitReference.create(
175
174
  type.values[0] as Enum,
176
175
  );
177
- instanceValue_setValues(enumValueInstanceValue, [enumValueRef]);
176
+ instanceValue_setValues(
177
+ enumValueInstanceValue,
178
+ [enumValueRef],
179
+ observerContext,
180
+ );
178
181
  }
179
182
  return enumValueInstanceValue;
180
183
  }
@@ -213,6 +216,7 @@ const fillDerivedPropertyParameterValues = (
213
216
  parameter,
214
217
  derivedPropertyExpressionState.queryBuilderState.graphManagerState
215
218
  .graph,
219
+ derivedPropertyExpressionState.queryBuilderState.observerContext,
216
220
  ),
217
221
  );
218
222
  });
@@ -224,7 +228,7 @@ const fillDerivedPropertyParameterValues = (
224
228
  ),
225
229
  ...parameterValues,
226
230
  ],
227
- derivedPropertyExpressionState.queryBuilderState.observableContext,
231
+ derivedPropertyExpressionState.queryBuilderState.observerContext,
228
232
  );
229
233
  };
230
234
 
@@ -246,7 +250,7 @@ export class QueryBuilderDerivedPropertyExpressionState {
246
250
  this.title = getPropertyChainName(propertyExpression, true);
247
251
  this.propertyExpression = observe_AbstractPropertyExpression(
248
252
  propertyExpression,
249
- queryBuilderState.observableContext,
253
+ queryBuilderState.observerContext,
250
254
  );
251
255
  this.queryBuilderState = queryBuilderState;
252
256
  this.derivedProperty = guaranteeType(
@@ -341,7 +345,7 @@ export class QueryBuilderPropertyExpressionState implements Hashable {
341
345
  this.queryBuilderState = queryBuilderState;
342
346
  this.propertyExpression = observe_AbstractPropertyExpression(
343
347
  propertyExpression,
344
- queryBuilderState.observableContext,
348
+ queryBuilderState.observerContext,
345
349
  );
346
350
  this.path = getPropertyPath(propertyExpression);
347
351
  this.title = getPropertyChainName(propertyExpression, true);
@@ -86,7 +86,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
86
86
 
87
87
  readonly changeDetectionState: QueryBuilderChangeDetectionState;
88
88
  readonly queryCompileState = ActionState.create();
89
- readonly observableContext: ObserverContext;
89
+ readonly observerContext: ObserverContext;
90
90
 
91
91
  explorerState: QueryBuilderExplorerState;
92
92
  functionsExplorerState: QueryFunctionsExplorerState;
@@ -183,7 +183,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
183
183
  this.resultState = new QueryBuilderResultState(this);
184
184
  this.textEditorState = new QueryBuilderTextEditorState(this);
185
185
  this.unsupportedQueryState = new QueryBuilderUnsupportedQueryState(this);
186
- this.observableContext = new ObserverContext(
186
+ this.observerContext = new ObserverContext(
187
187
  this.graphManagerState.pluginManager.getPureGraphManagerPlugins(),
188
188
  );
189
189
  this.changeDetectionState = new QueryBuilderChangeDetectionState(this);
@@ -295,10 +295,10 @@ export abstract class QueryBuilderState implements CommandRegistrar {
295
295
  );
296
296
  }
297
297
 
298
- resetQueryResult(preserveResult?: boolean): void {
298
+ resetQueryResult(options?: { preserveResult?: boolean | undefined }): void {
299
299
  const resultState = new QueryBuilderResultState(this);
300
300
  resultState.setPreviewLimit(this.resultState.previewLimit);
301
- if (preserveResult) {
301
+ if (options?.preserveResult) {
302
302
  resultState.setExecutionResult(this.resultState.executionResult);
303
303
  resultState.setExecutionDuration(this.resultState.executionDuration);
304
304
  resultState.latestRunHashCode = this.resultState.latestRunHashCode;
@@ -408,7 +408,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
408
408
  previousStateParameterValues.set(ps.parameter, ps.value);
409
409
  });
410
410
  }
411
- this.resetQueryResult(options?.preserveResult);
411
+ this.resetQueryResult({ preserveResult: options?.preserveResult });
412
412
  this.resetQueryContent();
413
413
 
414
414
  if (!isStubbed_RawLambda(query)) {
@@ -419,7 +419,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
419
419
  ),
420
420
  this.graphManagerState.graph,
421
421
  ),
422
- this.observableContext,
422
+ this.observerContext,
423
423
  );
424
424
  const compiledValueSpecification = guaranteeType(
425
425
  valueSpec,
@@ -446,9 +446,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
446
446
  query,
447
447
  this.graphManagerState,
448
448
  )
449
- .map((param) =>
450
- observe_ValueSpecification(param, this.observableContext),
451
- )
449
+ .map((param) => observe_ValueSpecification(param, this.observerContext))
452
450
  .filter(filterByType(VariableExpression));
453
451
  processParameters(parameters, this);
454
452
  }
@@ -607,27 +607,25 @@ export class QueryBuilderValueSpecificationProcessor
607
607
  export const processParameters = (
608
608
  parameters: VariableExpression[],
609
609
  queryBuilderState: QueryBuilderState,
610
- preservedParameters?: Map<VariableExpression, ValueSpecification | undefined>,
610
+ parameterValues?: Map<VariableExpression, ValueSpecification | undefined>,
611
611
  ): void => {
612
612
  const queryParameterState = queryBuilderState.parametersState;
613
- // Here we won't mock the values for parameters which are present in the previous state
614
- // because we don't want to lose the parameter value
615
613
  parameters.forEach((parameter) => {
616
- let oldParamterValue: ValueSpecification | undefined;
617
- if (preservedParameters) {
618
- Array.from(preservedParameters.entries()).forEach(([key, value]) => {
614
+ let matchingParameterValue: ValueSpecification | undefined;
615
+ if (parameterValues) {
616
+ Array.from(parameterValues.entries()).forEach(([key, value]) => {
619
617
  if (checkIfEquivalent(key, parameter)) {
620
- oldParamterValue = value;
618
+ matchingParameterValue = value;
621
619
  }
622
620
  });
623
621
  }
624
622
  const parameterState = new LambdaParameterState(
625
623
  parameter,
626
- queryBuilderState.observableContext,
624
+ queryBuilderState.observerContext,
627
625
  queryBuilderState.graphManagerState.graph,
628
626
  );
629
- if (oldParamterValue) {
630
- parameterState.setValue(oldParamterValue);
627
+ if (matchingParameterValue) {
628
+ parameterState.setValue(matchingParameterValue);
631
629
  } else {
632
630
  parameterState.mockParameterValue();
633
631
  }
@@ -639,13 +637,13 @@ export const processParameters = (
639
637
  export const processQueryLambdaFunction = (
640
638
  lambdaFunction: LambdaFunction,
641
639
  queryBuilderState: QueryBuilderState,
642
- preservedParameters?: Map<VariableExpression, ValueSpecification | undefined>,
640
+ parameterValues?: Map<VariableExpression, ValueSpecification | undefined>,
643
641
  ): void => {
644
642
  if (lambdaFunction.functionType.parameters.length) {
645
643
  processParameters(
646
644
  lambdaFunction.functionType.parameters,
647
645
  queryBuilderState,
648
- preservedParameters,
646
+ parameterValues,
649
647
  );
650
648
  }
651
649
  lambdaFunction.expressionSequence.map((expression) =>
@@ -114,7 +114,7 @@ export const buildPropertyExpressionChain = (
114
114
  functionExpression_setParametersValues(
115
115
  currentExpression,
116
116
  [guaranteeNonNullable(currentExpression.parametersValues[0])],
117
- queryBuilderState.observableContext,
117
+ queryBuilderState.observerContext,
118
118
  );
119
119
  }
120
120
  } else {
@@ -44,6 +44,8 @@ import {
44
44
  GenericTypeExplicitReference,
45
45
  GenericType,
46
46
  INTERNAL__PropagatedValue,
47
+ isSubType,
48
+ type ObserverContext,
47
49
  } from '@finos/legend-graph';
48
50
  import {
49
51
  addUniqueEntry,
@@ -59,6 +61,7 @@ import {
59
61
  getDerivedPropertyMilestoningSteoreotype,
60
62
  validateMilestoningPropertyExpressionChain,
61
63
  } from './milestoning/QueryBuilderMilestoningHelper.js';
64
+ import { instanceValue_setValues } from './shared/ValueSpecificationModifierHelper.js';
62
65
 
63
66
  export const getNonCollectionValueSpecificationType = (
64
67
  valueSpecification: ValueSpecification,
@@ -355,3 +358,36 @@ export const isValueExpressionReferencedInValue = (
355
358
  }
356
359
  return false;
357
360
  };
361
+
362
+ /**
363
+ * Some expression which represents a value and can be simplified to make
364
+ * editing experience easier
365
+ *
366
+ * e.g. -5 is often represented as minus(5), which is a function expression
367
+ * but we want to simplify it to a primitive instance value with value -5
368
+ */
369
+ export const simplifyValueExpression = (
370
+ value: ValueSpecification,
371
+ observerContext: ObserverContext,
372
+ ): ValueSpecification => {
373
+ if (
374
+ value instanceof SimpleFunctionExpression &&
375
+ matchFunctionName(
376
+ value.functionName,
377
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.MINUS,
378
+ ) &&
379
+ value.parametersValues.length === 1 &&
380
+ value.parametersValues[0] instanceof PrimitiveInstanceValue
381
+ ) {
382
+ const val = value.parametersValues[0];
383
+ if (isSubType(val.genericType.value.rawType, PrimitiveType.NUMBER)) {
384
+ instanceValue_setValues(
385
+ val,
386
+ [(val.values[0] as number) * -1],
387
+ observerContext,
388
+ );
389
+ }
390
+ return val;
391
+ }
392
+ return value;
393
+ };