@finos/legend-query-builder 4.14.47 → 4.14.49

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 (249) hide show
  1. package/lib/__lib__/QueryBuilderDocumentation.d.ts +3 -1
  2. package/lib/__lib__/QueryBuilderDocumentation.d.ts.map +1 -1
  3. package/lib/__lib__/QueryBuilderDocumentation.js +2 -0
  4. package/lib/__lib__/QueryBuilderDocumentation.js.map +1 -1
  5. package/lib/components/QueryBuilder.d.ts +1 -1
  6. package/lib/components/QueryBuilder.d.ts.map +1 -1
  7. package/lib/components/QueryBuilder.js +59 -46
  8. package/lib/components/QueryBuilder.js.map +1 -1
  9. package/lib/components/QueryBuilderConstantExpressionPanel.d.ts +1 -1
  10. package/lib/components/QueryBuilderConstantExpressionPanel.d.ts.map +1 -1
  11. package/lib/components/QueryBuilderConstantExpressionPanel.js +22 -22
  12. package/lib/components/QueryBuilderConstantExpressionPanel.js.map +1 -1
  13. package/lib/components/QueryBuilderDiffPanel.d.ts +2 -2
  14. package/lib/components/QueryBuilderDiffPanel.js +7 -6
  15. package/lib/components/QueryBuilderDiffPanel.js.map +1 -1
  16. package/lib/components/QueryBuilderParametersPanel.d.ts +1 -1
  17. package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
  18. package/lib/components/QueryBuilderParametersPanel.js +29 -10
  19. package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
  20. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +3 -3
  21. package/lib/components/QueryBuilderPropertyExpressionEditor.js +14 -13
  22. package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
  23. package/lib/components/QueryBuilderSideBar.d.ts +2 -2
  24. package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
  25. package/lib/components/QueryBuilderSideBar.js +14 -24
  26. package/lib/components/QueryBuilderSideBar.js.map +1 -1
  27. package/lib/components/QueryBuilderTextEditor.d.ts +1 -1
  28. package/lib/components/QueryBuilderTextEditor.js +8 -7
  29. package/lib/components/QueryBuilderTextEditor.js.map +1 -1
  30. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts +1 -1
  31. package/lib/components/QueryBuilderUnsupportedQueryEditor.js +4 -3
  32. package/lib/components/QueryBuilderUnsupportedQueryEditor.js.map +1 -1
  33. package/lib/components/QueryChat.d.ts +1 -1
  34. package/lib/components/QueryChat.js +3 -2
  35. package/lib/components/QueryChat.js.map +1 -1
  36. package/lib/components/QueryLoader.d.ts +2 -2
  37. package/lib/components/QueryLoader.js +25 -24
  38. package/lib/components/QueryLoader.js.map +1 -1
  39. package/lib/components/QueryUsageViewer.d.ts +1 -1
  40. package/lib/components/QueryUsageViewer.js +4 -3
  41. package/lib/components/QueryUsageViewer.js.map +1 -1
  42. package/lib/components/ServiceQuerySetupUtils.js +4 -3
  43. package/lib/components/ServiceQuerySetupUtils.js.map +1 -1
  44. package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js +3 -2
  45. package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
  46. package/lib/components/data-access/DataAccessOverview.d.ts +1 -1
  47. package/lib/components/data-access/DataAccessOverview.js +17 -16
  48. package/lib/components/data-access/DataAccessOverview.js.map +1 -1
  49. package/lib/components/execution-plan/AllocationExecutionNodeViewer.js +4 -3
  50. package/lib/components/execution-plan/AllocationExecutionNodeViewer.js.map +1 -1
  51. package/lib/components/execution-plan/ConstantExecutionNodeViewer.js +3 -2
  52. package/lib/components/execution-plan/ConstantExecutionNodeViewer.js.map +1 -1
  53. package/lib/components/execution-plan/DataTypeResultTypeViewer.js +4 -3
  54. package/lib/components/execution-plan/DataTypeResultTypeViewer.js.map +1 -1
  55. package/lib/components/execution-plan/ExecutionPlanViewer.d.ts +3 -3
  56. package/lib/components/execution-plan/ExecutionPlanViewer.js +34 -33
  57. package/lib/components/execution-plan/ExecutionPlanViewer.js.map +1 -1
  58. package/lib/components/execution-plan/FunctionParametersValidationNodeViewer.js +3 -2
  59. package/lib/components/execution-plan/FunctionParametersValidationNodeViewer.js.map +1 -1
  60. package/lib/components/execution-plan/ImplementationViewer.js +4 -3
  61. package/lib/components/execution-plan/ImplementationViewer.js.map +1 -1
  62. package/lib/components/execution-plan/PartialClassResultViewer.js +3 -2
  63. package/lib/components/execution-plan/PartialClassResultViewer.js.map +1 -1
  64. package/lib/components/execution-plan/RelationalClassQueryTempTableGraphFetchExecutionNodeViewer.js +6 -5
  65. package/lib/components/execution-plan/RelationalClassQueryTempTableGraphFetchExecutionNodeViewer.js.map +1 -1
  66. package/lib/components/execution-plan/RelationalCrossRootQueryTempTableGraphFetchExecutionNodeViewer.js +7 -6
  67. package/lib/components/execution-plan/RelationalCrossRootQueryTempTableGraphFetchExecutionNodeViewer.js.map +1 -1
  68. package/lib/components/execution-plan/RelationalRootQueryTempTableGraphFetchExecutionNodeViewer.js +6 -5
  69. package/lib/components/execution-plan/RelationalRootQueryTempTableGraphFetchExecutionNodeViewer.js.map +1 -1
  70. package/lib/components/execution-plan/RelationalTDSInstantiationExecutionNodeViewer.js +4 -3
  71. package/lib/components/execution-plan/RelationalTDSInstantiationExecutionNodeViewer.js.map +1 -1
  72. package/lib/components/execution-plan/ResultTypeViewer.js +5 -4
  73. package/lib/components/execution-plan/ResultTypeViewer.js.map +1 -1
  74. package/lib/components/execution-plan/SQLExecutionNodeViewer.js +7 -6
  75. package/lib/components/execution-plan/SQLExecutionNodeViewer.js.map +1 -1
  76. package/lib/components/execution-plan/SequenceExecutionNodeViewer.js +6 -5
  77. package/lib/components/execution-plan/SequenceExecutionNodeViewer.js.map +1 -1
  78. package/lib/components/execution-plan/StoreMappingGlobalGraphFetchExecutionNodeViewer.js +6 -5
  79. package/lib/components/execution-plan/StoreMappingGlobalGraphFetchExecutionNodeViewer.js.map +1 -1
  80. package/lib/components/execution-plan/TDSResultTypeViewer.js +4 -3
  81. package/lib/components/execution-plan/TDSResultTypeViewer.js.map +1 -1
  82. package/lib/components/execution-plan/TempTableStrategyViewer.js +3 -2
  83. package/lib/components/execution-plan/TempTableStrategyViewer.js.map +1 -1
  84. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts +1 -1
  85. package/lib/components/explorer/QueryBuilderExplorerPanel.js +31 -30
  86. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  87. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts +1 -1
  88. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +20 -19
  89. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
  90. package/lib/components/explorer/{QueryBuilderMilestoningEditor.d.ts → QueryBuilderMilestoningParameterEditor.d.ts} +6 -3
  91. package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.d.ts.map +1 -0
  92. package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.js +53 -0
  93. package/lib/components/explorer/QueryBuilderMilestoningParameterEditor.js.map +1 -0
  94. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts +1 -1
  95. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js +18 -17
  96. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
  97. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts +1 -1
  98. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js +9 -8
  99. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js.map +1 -1
  100. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts +3 -3
  101. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js +24 -23
  102. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js.map +1 -1
  103. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts +4 -3
  104. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  105. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +76 -54
  106. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  107. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.d.ts +1 -1
  108. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.js +3 -2
  109. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.js.map +1 -1
  110. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts +1 -1
  111. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
  112. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +201 -29
  113. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
  114. package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.js +9 -8
  115. package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.js.map +1 -1
  116. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts +1 -1
  117. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
  118. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +55 -36
  119. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
  120. package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.d.ts +1 -1
  121. package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js +29 -28
  122. package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
  123. package/lib/components/filter/QueryBuilderFilterPanel.d.ts +1 -1
  124. package/lib/components/filter/QueryBuilderFilterPanel.js +20 -19
  125. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  126. package/lib/components/result/QueryBuilderResultPanel.d.ts +2 -2
  127. package/lib/components/result/QueryBuilderResultPanel.d.ts.map +1 -1
  128. package/lib/components/result/QueryBuilderResultPanel.js +19 -17
  129. package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
  130. package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts +1 -1
  131. package/lib/components/result/tds/QueryBuilderTDSGridResult.js +11 -10
  132. package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
  133. package/lib/components/result/tds/QueryBuilderTDSResultShared.js +5 -4
  134. package/lib/components/result/tds/QueryBuilderTDSResultShared.js.map +1 -1
  135. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts +1 -1
  136. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js +9 -8
  137. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -1
  138. package/lib/components/shared/BasicValueSpecificationEditor.js +38 -37
  139. package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
  140. package/lib/components/shared/CustomDatePicker.js +21 -20
  141. package/lib/components/shared/CustomDatePicker.js.map +1 -1
  142. package/lib/components/shared/LambdaEditor.d.ts +2 -2
  143. package/lib/components/shared/LambdaEditor.js +14 -13
  144. package/lib/components/shared/LambdaEditor.js.map +1 -1
  145. package/lib/components/shared/LambdaParameterValuesEditor.d.ts +1 -1
  146. package/lib/components/shared/LambdaParameterValuesEditor.js +7 -6
  147. package/lib/components/shared/LambdaParameterValuesEditor.js.map +1 -1
  148. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js +4 -3
  149. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js.map +1 -1
  150. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js +10 -9
  151. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js.map +1 -1
  152. package/lib/components/shared/QueryBuilderRootClassInfoTooltip.js +4 -3
  153. package/lib/components/shared/QueryBuilderRootClassInfoTooltip.js.map +1 -1
  154. package/lib/components/shared/QueryBuilderVariableSelector.d.ts +2 -2
  155. package/lib/components/shared/QueryBuilderVariableSelector.d.ts.map +1 -1
  156. package/lib/components/shared/QueryBuilderVariableSelector.js +15 -7
  157. package/lib/components/shared/QueryBuilderVariableSelector.js.map +1 -1
  158. package/lib/components/workflows/ClassQueryBuilder.js +6 -5
  159. package/lib/components/workflows/ClassQueryBuilder.js.map +1 -1
  160. package/lib/components/workflows/MappingQueryBuilder.js +6 -5
  161. package/lib/components/workflows/MappingQueryBuilder.js.map +1 -1
  162. package/lib/components/workflows/ServiceQueryBuilder.js +6 -5
  163. package/lib/components/workflows/ServiceQueryBuilder.js.map +1 -1
  164. package/lib/graph-manager/QueryBuilderConfig.d.ts +4 -0
  165. package/lib/graph-manager/QueryBuilderConfig.d.ts.map +1 -1
  166. package/lib/graph-manager/QueryBuilderConfig.js +5 -0
  167. package/lib/graph-manager/QueryBuilderConfig.js.map +1 -1
  168. package/lib/index.css +2 -2
  169. package/lib/index.css.map +1 -1
  170. package/lib/package.json +1 -1
  171. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +2 -1
  172. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
  173. package/lib/stores/QueryBuilderValueSpecificationHelper.js +3 -3
  174. package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
  175. package/lib/stores/QueryLoaderState.d.ts +1 -0
  176. package/lib/stores/QueryLoaderState.d.ts.map +1 -1
  177. package/lib/stores/QueryLoaderState.js +1 -0
  178. package/lib/stores/QueryLoaderState.js.map +1 -1
  179. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +1 -0
  180. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
  181. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +8 -0
  182. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
  183. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Percentile.d.ts.map +1 -1
  184. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Percentile.js +4 -2
  185. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Percentile.js.map +1 -1
  186. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.d.ts.map +1 -1
  187. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js +1 -1
  188. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
  189. package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -1
  190. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +1 -1
  191. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
  192. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.d.ts +2 -0
  193. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.d.ts.map +1 -1
  194. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.js +13 -2
  195. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.js.map +1 -1
  196. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.d.ts +2 -0
  197. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.d.ts.map +1 -1
  198. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.js +8 -1
  199. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.js.map +1 -1
  200. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.d.ts +1 -1
  201. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.d.ts.map +1 -1
  202. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.js +25 -1
  203. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.js.map +1 -1
  204. package/lib/stores/milestoning/QueryBuilderMilestoningImplementation.d.ts +2 -0
  205. package/lib/stores/milestoning/QueryBuilderMilestoningImplementation.d.ts.map +1 -1
  206. package/lib/stores/milestoning/QueryBuilderMilestoningImplementation.js.map +1 -1
  207. package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts +5 -0
  208. package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts.map +1 -1
  209. package/lib/stores/milestoning/QueryBuilderMilestoningState.js +62 -3
  210. package/lib/stores/milestoning/QueryBuilderMilestoningState.js.map +1 -1
  211. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.d.ts +2 -0
  212. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.d.ts.map +1 -1
  213. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.js +8 -1
  214. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.js.map +1 -1
  215. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts +1 -0
  216. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -1
  217. package/lib/stores/shared/ValueSpecificationEditorHelper.js +7 -1
  218. package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -1
  219. package/package.json +4 -4
  220. package/src/__lib__/QueryBuilderDocumentation.ts +2 -0
  221. package/src/components/QueryBuilder.tsx +44 -0
  222. package/src/components/QueryBuilderConstantExpressionPanel.tsx +13 -4
  223. package/src/components/QueryBuilderParametersPanel.tsx +55 -0
  224. package/src/components/QueryBuilderSideBar.tsx +0 -42
  225. package/src/components/explorer/QueryBuilderMilestoningParameterEditor.tsx +114 -0
  226. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +143 -78
  227. package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +445 -19
  228. package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +134 -21
  229. package/src/components/result/QueryBuilderResultPanel.tsx +9 -1
  230. package/src/components/shared/QueryBuilderVariableSelector.tsx +22 -0
  231. package/src/graph-manager/QueryBuilderConfig.ts +6 -0
  232. package/src/stores/QueryBuilderValueSpecificationHelper.ts +4 -1
  233. package/src/stores/QueryLoaderState.ts +1 -0
  234. package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +11 -0
  235. package/src/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Percentile.ts +6 -2
  236. package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.ts +1 -0
  237. package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +1 -0
  238. package/src/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.ts +23 -0
  239. package/src/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.ts +13 -0
  240. package/src/stores/milestoning/QueryBuilderMilestoningHelper.ts +45 -0
  241. package/src/stores/milestoning/QueryBuilderMilestoningImplementation.ts +3 -0
  242. package/src/stores/milestoning/QueryBuilderMilestoningState.ts +95 -7
  243. package/src/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.ts +13 -0
  244. package/src/stores/shared/ValueSpecificationEditorHelper.ts +11 -0
  245. package/tsconfig.json +1 -1
  246. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +0 -1
  247. package/lib/components/explorer/QueryBuilderMilestoningEditor.js +0 -102
  248. package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +0 -1
  249. package/src/components/explorer/QueryBuilderMilestoningEditor.tsx +0 -364
@@ -700,7 +700,7 @@ const QueryBuilderProjectionColumnEditor = observer(
700
700
  aggregateColumnState.operator instanceof
701
701
  QueryBuilderAggregateOperator_Percentile &&
702
702
  aggregateColumnState.operator.percentile !== undefined
703
- ? (aggregateColumnState.operator.percentile * 100).toString()
703
+ ? aggregateColumnState.operator.percentile.toString()
704
704
  : '',
705
705
  );
706
706
  const [acending, setAcending] = useState(
@@ -904,7 +904,7 @@ const QueryBuilderProjectionColumnEditor = observer(
904
904
  percentileOperator.setPercentile(undefined);
905
905
  } else {
906
906
  percentileOperator.setPercentile(
907
- Number(percentileValue) / 100,
907
+ Number(percentileValue),
908
908
  );
909
909
  }
910
910
  if (acending !== undefined && continuous !== undefined) {
@@ -1342,27 +1342,134 @@ export const QueryBuilderTDSPanel = observer(
1342
1342
  >
1343
1343
  <div className="query-builder__projection__result-modifier-prompt__header">
1344
1344
  <button
1345
- className="query-builder__projection__result-modifier-prompt__header__label"
1345
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1346
1346
  onClick={openResultSetModifierEditor}
1347
- title="Configure result set modifiers..."
1347
+ title="Configure Query Options..."
1348
1348
  >
1349
1349
  <CogIcon className="query-builder__projection__result-modifier-prompt__header__label__icon" />
1350
1350
  <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1351
- Query Options
1351
+ {tdsState.isQueryOptionsSet
1352
+ ? 'Query Options'
1353
+ : 'Set Query Options'}
1352
1354
  </div>
1353
1355
  </button>
1356
+ <div className="query-builder__projection__result-modifier-prompt__divider">
1357
+ {tdsState.isQueryOptionsSet && ' - '}
1358
+ </div>
1359
+ {tdsState.queryBuilderState.milestoningState
1360
+ .isAllVersionsEnabled &&
1361
+ !tdsState.queryBuilderState.milestoningState
1362
+ .isAllVersionsInRangeEnabled && (
1363
+ <div className="query-builder__projection__result-modifier-prompt__group">
1364
+ <div className="query-builder__projection__result-modifier-prompt__group__label">
1365
+ All Versions
1366
+ </div>
1367
+ <button
1368
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1369
+ onClick={openResultSetModifierEditor}
1370
+ >
1371
+ <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1372
+ Yes
1373
+ </div>
1374
+ </button>
1375
+ </div>
1376
+ )}
1377
+ {tdsState.queryBuilderState.milestoningState
1378
+ .isAllVersionsInRangeEnabled &&
1379
+ tdsState.queryBuilderState.milestoningState.startDate &&
1380
+ tdsState.queryBuilderState.milestoningState.endDate && (
1381
+ <div className="query-builder__projection__result-modifier-prompt__group">
1382
+ <div className="query-builder__projection__result-modifier-prompt__group__label">
1383
+ All Versions
1384
+ </div>
1385
+ <button
1386
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1387
+ onClick={openResultSetModifierEditor}
1388
+ >
1389
+ <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1390
+ (
1391
+ {getNameOfValueSpecification(
1392
+ tdsState.queryBuilderState.milestoningState.getMilestoningParameterValue(
1393
+ tdsState.queryBuilderState.milestoningState
1394
+ .startDate,
1395
+ ) ??
1396
+ tdsState.queryBuilderState.milestoningState
1397
+ .startDate,
1398
+ tdsState.queryBuilderState,
1399
+ )}{' '}
1400
+ -{' '}
1401
+ {getNameOfValueSpecification(
1402
+ tdsState.queryBuilderState.milestoningState.getMilestoningParameterValue(
1403
+ tdsState.queryBuilderState.milestoningState.endDate,
1404
+ ) ??
1405
+ tdsState.queryBuilderState.milestoningState.endDate,
1406
+ tdsState.queryBuilderState,
1407
+ )}
1408
+ )
1409
+ </div>
1410
+ </button>
1411
+ </div>
1412
+ )}
1413
+ {tdsState.queryBuilderState.milestoningState.businessDate && (
1414
+ <div className="query-builder__projection__result-modifier-prompt__group">
1415
+ <div className="query-builder__projection__result-modifier-prompt__group__label">
1416
+ Business Date
1417
+ </div>
1418
+ <button
1419
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1420
+ onClick={openResultSetModifierEditor}
1421
+ >
1422
+ <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1423
+ {getNameOfValueSpecification(
1424
+ tdsState.queryBuilderState.milestoningState.getMilestoningParameterValue(
1425
+ tdsState.queryBuilderState.milestoningState
1426
+ .businessDate,
1427
+ ) ??
1428
+ tdsState.queryBuilderState.milestoningState
1429
+ .businessDate,
1430
+ tdsState.queryBuilderState,
1431
+ )}
1432
+ </div>
1433
+ </button>
1434
+ </div>
1435
+ )}
1436
+ {tdsState.queryBuilderState.milestoningState.processingDate && (
1437
+ <div className="query-builder__projection__result-modifier-prompt__group">
1438
+ <div className="query-builder__projection__result-modifier-prompt__group__label">
1439
+ Processing Date
1440
+ </div>
1441
+ <button
1442
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1443
+ onClick={openResultSetModifierEditor}
1444
+ >
1445
+ <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1446
+ {getNameOfValueSpecification(
1447
+ tdsState.queryBuilderState.milestoningState.getMilestoningParameterValue(
1448
+ tdsState.queryBuilderState.milestoningState
1449
+ .processingDate,
1450
+ ) ??
1451
+ tdsState.queryBuilderState.milestoningState
1452
+ .processingDate,
1453
+ tdsState.queryBuilderState,
1454
+ )}
1455
+ </div>
1456
+ </button>
1457
+ </div>
1458
+ )}
1354
1459
  </div>
1355
1460
  {tdsState.resultSetModifierState.limit && (
1356
1461
  <div className="query-builder__projection__result-modifier-prompt__group">
1357
1462
  <div className="query-builder__projection__result-modifier-prompt__group__label">
1358
1463
  Max Rows
1359
1464
  </div>
1360
- <div
1361
- className="query-builder__projection__result-modifier-prompt__group__content"
1465
+ <button
1466
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1362
1467
  onClick={openResultSetModifierEditor}
1363
1468
  >
1364
- {tdsState.resultSetModifierState.limit}
1365
- </div>
1469
+ <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1470
+ {tdsState.resultSetModifierState.limit}
1471
+ </div>
1472
+ </button>
1366
1473
  </div>
1367
1474
  )}
1368
1475
  {tdsState.resultSetModifierState.distinct && (
@@ -1370,12 +1477,14 @@ export const QueryBuilderTDSPanel = observer(
1370
1477
  <div className="query-builder__projection__result-modifier-prompt__group__label">
1371
1478
  Eliminate Duplicate Rows
1372
1479
  </div>
1373
- <div
1374
- className="query-builder__projection__result-modifier-prompt__group__content"
1480
+ <button
1481
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1375
1482
  onClick={openResultSetModifierEditor}
1376
1483
  >
1377
- Yes
1378
- </div>
1484
+ <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1485
+ Yes
1486
+ </div>
1487
+ </button>
1379
1488
  </div>
1380
1489
  )}
1381
1490
  {tdsState.resultSetModifierState.sortColumns.length > 0 && (
@@ -1385,13 +1494,15 @@ export const QueryBuilderTDSPanel = observer(
1385
1494
  </div>
1386
1495
  {tdsState.resultSetModifierState.sortColumns.map(
1387
1496
  (columnState) => (
1388
- <div
1389
- className="query-builder__projection__result-modifier-prompt__group__content"
1497
+ <button
1390
1498
  key={columnState.columnState.uuid}
1499
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1391
1500
  onClick={openResultSetModifierEditor}
1392
1501
  >
1393
- {`${columnState.columnState.columnName} ${columnState.sortType}`}
1394
- </div>
1502
+ <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1503
+ {`${columnState.columnState.columnName} ${columnState.sortType}`}
1504
+ </div>
1505
+ </button>
1395
1506
  ),
1396
1507
  )}
1397
1508
  </div>
@@ -1401,12 +1512,14 @@ export const QueryBuilderTDSPanel = observer(
1401
1512
  <div className="query-builder__projection__result-modifier-prompt__group__label">
1402
1513
  Slice
1403
1514
  </div>
1404
- <div
1405
- className="query-builder__projection__result-modifier-prompt__group__content"
1515
+ <button
1516
+ className="query-builder__projection__result-modifier-prompt__header__label editable-value"
1406
1517
  onClick={openResultSetModifierEditor}
1407
1518
  >
1408
- {`${tdsState.resultSetModifierState.slice[0]},${tdsState.resultSetModifierState.slice[1]}`}
1409
- </div>
1519
+ <div className="query-builder__projection__result-modifier-prompt__header__label__title">
1520
+ {`${tdsState.resultSetModifierState.slice[0]},${tdsState.resultSetModifierState.slice[1]}`}
1521
+ </div>
1522
+ </button>
1410
1523
  </div>
1411
1524
  )}
1412
1525
  {tdsState.queryBuilderState.watermarkState.value && (
@@ -204,7 +204,15 @@ export const QueryBuilderResultPanel = observer(
204
204
  const runQuery = (): void => {
205
205
  resultState.setSelectedCells([]);
206
206
  resultState.pressedRunQuery.inProgress();
207
- if (queryParametersState.parameterStates.length) {
207
+ if (
208
+ queryParametersState.parameterStates.length &&
209
+ queryParametersState.parameterStates.find(
210
+ (param) =>
211
+ !queryBuilderState.milestoningState.isMilestoningParameter(
212
+ param.parameter,
213
+ ),
214
+ )
215
+ ) {
208
216
  queryParametersState.parameterValuesEditorState.open(
209
217
  (): Promise<void> =>
210
218
  flowResult(resultState.runQuery()).catch(
@@ -149,6 +149,18 @@ export const VariableViewer = observer(
149
149
  const variableTypeName =
150
150
  variable.genericType?.value.rawType.name ??
151
151
  (isConstant ? CALCULATED : undefined);
152
+ const isMilestoningParameter =
153
+ queryBuilderState.milestoningState.isMilestoningParameter(variable);
154
+ const milestoningParameterValue =
155
+ queryBuilderState.milestoningState.getMilestoningParameterValue(variable);
156
+ const milestoningParameterValueString = isMilestoningParameter
157
+ ? milestoningParameterValue
158
+ ? getNameOfValueSpecification(
159
+ milestoningParameterValue,
160
+ queryBuilderState,
161
+ )
162
+ : undefined
163
+ : undefined;
152
164
  const deleteDisabled = isReadOnly || isVariableUsed;
153
165
  const deleteTitle = isVariableUsed ? 'Used in query' : 'Remove';
154
166
  const editVariable = (): void => {
@@ -227,6 +239,16 @@ export const VariableViewer = observer(
227
239
  <div className="query-builder__variables__variable__type__label">
228
240
  {variableTypeName ?? 'unknown'}
229
241
  </div>
242
+ {isMilestoningParameter && (
243
+ <>
244
+ <div className="query-builder__variables__variable__type__label query-builder__variables__variable__type__label--milestoning">
245
+ milestoning
246
+ </div>
247
+ <div className="query-builder__constants__value">
248
+ {milestoningParameterValueString}
249
+ </div>
250
+ </>
251
+ )}
230
252
  </div>
231
253
  )}
232
254
  </div>
@@ -28,10 +28,16 @@ export class QueryBuilderConfig {
28
28
  */
29
29
  TEMPORARY__enableGridEnterpriseMode = false;
30
30
 
31
+ /**
32
+ * This is the URL of the LegendAI service
33
+ */
34
+ legendAIServiceURL = '';
35
+
31
36
  static readonly serialization = new SerializationFactory(
32
37
  createModelSchema(QueryBuilderConfig, {
33
38
  TEMPORARY__disableQueryBuilderChat: optional(primitive()),
34
39
  TEMPORARY__enableGridEnterpriseMode: optional(primitive()),
40
+ legendAIServiceURL: optional(primitive()),
35
41
  }),
36
42
  );
37
43
  }
@@ -63,6 +63,7 @@ import {
63
63
  validateMilestoningPropertyExpressionChain,
64
64
  } from './milestoning/QueryBuilderMilestoningHelper.js';
65
65
  import { instanceValue_setValues } from './shared/ValueSpecificationModifierHelper.js';
66
+ import type { QueryBuilderState } from './QueryBuilderState.js';
66
67
 
67
68
  export const getNonCollectionValueSpecificationType = (
68
69
  valueSpecification: ValueSpecification,
@@ -239,7 +240,7 @@ export const isTypeCompatibleForAssignment = (
239
240
  // Pure function used for the operation
240
241
  // e.g. LHS(DateTime) = RHS(Date) -> we use isOnDay() instead of is()
241
242
  DATE_PRIMITIVE_TYPES.includes(type.path) ||
242
- type === assignmentType ||
243
+ type.path === assignmentType.path ||
243
244
  isSuperType(assignmentType, type))
244
245
  );
245
246
  };
@@ -329,6 +330,7 @@ export const buildGenericLambdaFunctionInstanceValue = (
329
330
  export const validatePropertyExpressionChain = (
330
331
  propertyExpression: AbstractPropertyExpression,
331
332
  graph: PureModel,
333
+ queryBuilderState: QueryBuilderState,
332
334
  ): void => {
333
335
  if (
334
336
  propertyExpression.func.value.genericType.value.rawType instanceof Class &&
@@ -355,6 +357,7 @@ export const validatePropertyExpressionChain = (
355
357
  sourceStereotype,
356
358
  targetStereotype,
357
359
  propertyExpression,
360
+ queryBuilderState,
358
361
  );
359
362
  }
360
363
  }
@@ -43,6 +43,7 @@ import type {
43
43
  } from './QueryBuilder_LegendApplicationPlugin_Extension.js';
44
44
 
45
45
  export const QUERY_LOADER_TYPEAHEAD_SEARCH_LIMIT = 50;
46
+ export const QUERY_LOADER_DEFAULT_QUERY_SEARCH_LIMIT = 10;
46
47
 
47
48
  export class QueryLoaderState {
48
49
  readonly applicationStore: GenericLegendApplicationStore;
@@ -147,6 +147,7 @@ export class QueryBuilderTDSState
147
147
  TEMPORARY__showPostFetchStructurePanel: computed,
148
148
  derivations: computed,
149
149
  hasParserError: computed,
150
+ isQueryOptionsSet: computed,
150
151
  addColumn: action,
151
152
  moveColumn: action,
152
153
  removeAllColumns: action,
@@ -361,6 +362,16 @@ export class QueryBuilderTDSState
361
362
  return fetchStructureValidationIssues;
362
363
  }
363
364
 
365
+ get isQueryOptionsSet(): boolean {
366
+ return (
367
+ this.resultSetModifierState.limit !== undefined ||
368
+ this.queryBuilderState.milestoningState.isMilestonedQuery ||
369
+ this.resultSetModifierState.slice !== undefined ||
370
+ this.resultSetModifierState.sortColumns.length > 0 ||
371
+ this.resultSetModifierState.distinct
372
+ );
373
+ }
374
+
364
375
  get tdsColumns(): QueryBuilderTDSColumnState[] {
365
376
  const aggregationStateCols = this.aggregationState.columns.map(
366
377
  (c) => c.projectionColumnState,
@@ -107,7 +107,9 @@ export class QueryBuilderAggregateOperator_Percentile
107
107
  variableName: string,
108
108
  graph: PureModel,
109
109
  ): ValueSpecification {
110
- const percentileValue = this.percentile ?? 0;
110
+ const percentileValue = this.percentile
111
+ ? Number((this.percentile / 100).toFixed(10))
112
+ : 0;
111
113
  const expression = new SimpleFunctionExpression(
112
114
  extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.PERCENTILE),
113
115
  );
@@ -193,7 +195,9 @@ export class QueryBuilderAggregateOperator_Percentile
193
195
  PrimitiveInstanceValue,
194
196
  `Can't process percentile() expression: percentile() expects arugment #2 to be a primitive instance value`,
195
197
  );
196
- currentOperator.percentile = percentile.values[0] as number;
198
+ currentOperator.percentile = parseFloat(
199
+ ((percentile.values[0] as number) * 100).toFixed(10),
200
+ );
197
201
 
198
202
  if (expression.parametersValues.length === 4) {
199
203
  const acending = guaranteeType(
@@ -159,6 +159,7 @@ export const processTDSProjectionColumnPropertyExpression = (
159
159
  validatePropertyExpressionChain(
160
160
  currentPropertyExpression,
161
161
  queryBuilderState.graphManagerState.graph,
162
+ queryBuilderState,
162
163
  );
163
164
  currentPropertyExpression = guaranteeNonNullable(
164
165
  currentPropertyExpression.parametersValues[0],
@@ -309,6 +309,7 @@ const processFilterTree = (
309
309
  validatePropertyExpressionChain(
310
310
  currentPropertyExpression,
311
311
  filterState.queryBuilderState.graphManagerState.graph,
312
+ filterState.queryBuilderState,
312
313
  );
313
314
  }
314
315
  }
@@ -23,18 +23,21 @@ import {
23
23
  MILESTONING_STEREOTYPE,
24
24
  INTERNAL__PropagatedValue,
25
25
  PrimitiveType,
26
+ VariableExpression,
26
27
  } from '@finos/legend-graph';
27
28
  import {
28
29
  UnsupportedOperationError,
29
30
  assertTrue,
30
31
  guaranteeNonNullable,
31
32
  guaranteeType,
33
+ isNonNullable,
32
34
  } from '@finos/legend-shared';
33
35
  import { getParameterValue } from '../../components/QueryBuilderSideBar.js';
34
36
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../graph/QueryBuilderMetaModelConst.js';
35
37
  import type { QueryBuilderDerivedPropertyExpressionState } from '../QueryBuilderPropertyEditorState.js';
36
38
  import { createSupportedFunctionExpression } from '../shared/ValueSpecificationEditorHelper.js';
37
39
  import { QueryBuilderMilestoningImplementation } from './QueryBuilderMilestoningImplementation.js';
40
+ import type { LambdaParameterState } from '../shared/LambdaParameterState.js';
38
41
 
39
42
  export class QueryBuilderBitemporalMilestoningImplementation extends QueryBuilderMilestoningImplementation {
40
43
  getMilestoningDate(index?: number): ValueSpecification | undefined {
@@ -70,6 +73,26 @@ export class QueryBuilderBitemporalMilestoningImplementation extends QueryBuilde
70
73
  this.milestoningState.queryBuilderState.setShowParametersPanel(true);
71
74
  }
72
75
 
76
+ buildParameterStatesFromMilestoningParameters(): LambdaParameterState[] {
77
+ const businessState =
78
+ this.milestoningState.buildParameterStateFromMilestoningParameter(
79
+ this.milestoningState.businessDate &&
80
+ this.milestoningState.businessDate instanceof VariableExpression
81
+ ? this.milestoningState.businessDate.name
82
+ : BUSINESS_DATE_MILESTONING_PROPERTY_NAME,
83
+ );
84
+
85
+ const processingState =
86
+ this.milestoningState.buildParameterStateFromMilestoningParameter(
87
+ this.milestoningState.processingDate &&
88
+ this.milestoningState.processingDate instanceof VariableExpression
89
+ ? this.milestoningState.processingDate.name
90
+ : PROCESSING_DATE_MILESTONING_PROPERTY_NAME,
91
+ );
92
+
93
+ return [businessState, processingState].filter(isNonNullable);
94
+ }
95
+
73
96
  processGetAllParamaters(parameterValues: ValueSpecification[]): void {
74
97
  assertTrue(
75
98
  parameterValues.length === 3,
@@ -22,6 +22,7 @@ import {
22
22
  MILESTONING_STEREOTYPE,
23
23
  INTERNAL__PropagatedValue,
24
24
  PrimitiveType,
25
+ VariableExpression,
25
26
  } from '@finos/legend-graph';
26
27
  import {
27
28
  UnsupportedOperationError,
@@ -32,6 +33,7 @@ import { getParameterValue } from '../../components/QueryBuilderSideBar.js';
32
33
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../graph/QueryBuilderMetaModelConst.js';
33
34
  import { createSupportedFunctionExpression } from '../shared/ValueSpecificationEditorHelper.js';
34
35
  import { QueryBuilderMilestoningImplementation } from './QueryBuilderMilestoningImplementation.js';
36
+ import type { LambdaParameterState } from '../shared/LambdaParameterState.js';
35
37
 
36
38
  export class QueryBuilderBusinessTemporalMilestoningImplementation extends QueryBuilderMilestoningImplementation {
37
39
  getMilestoningDate(): ValueSpecification | undefined {
@@ -54,6 +56,17 @@ export class QueryBuilderBusinessTemporalMilestoningImplementation extends Query
54
56
  this.milestoningState.queryBuilderState.setShowParametersPanel(true);
55
57
  }
56
58
 
59
+ buildParameterStatesFromMilestoningParameters(): LambdaParameterState[] {
60
+ const state =
61
+ this.milestoningState.buildParameterStateFromMilestoningParameter(
62
+ this.milestoningState.businessDate &&
63
+ this.milestoningState.businessDate instanceof VariableExpression
64
+ ? this.milestoningState.businessDate.name
65
+ : BUSINESS_DATE_MILESTONING_PROPERTY_NAME,
66
+ );
67
+ return state ? [state] : [];
68
+ }
69
+
57
70
  processGetAllParamaters(parameterValues: ValueSpecification[]): void {
58
71
  assertTrue(
59
72
  parameterValues.length === 2,
@@ -294,6 +294,7 @@ export const validateMilestoningPropertyExpressionChain = (
294
294
  sourceStereotype: MILESTONING_STEREOTYPE | undefined,
295
295
  targetStereotype: MILESTONING_STEREOTYPE,
296
296
  propertyExpression: AbstractPropertyExpression,
297
+ queryBuilderState: QueryBuilderState,
297
298
  ): void => {
298
299
  if (
299
300
  sourceStereotype !== MILESTONING_STEREOTYPE.BITEMPORAL &&
@@ -316,10 +317,54 @@ export const validateMilestoningPropertyExpressionChain = (
316
317
  `Property of milestoning sterotype '${MILESTONING_STEREOTYPE.BITEMPORAL}' should not have more than two parameters`,
317
318
  );
318
319
  }
320
+ queryBuilderState.milestoningState.setProcessingDate(
321
+ propertyExpression.parametersValues[1],
322
+ );
323
+ queryBuilderState.milestoningState.setBusinessDate(
324
+ propertyExpression.parametersValues[2],
325
+ );
319
326
  } else if (propertyExpression.parametersValues.length !== 2) {
320
327
  throw new UnsupportedOperationError(
321
328
  `Property of milestoning sterotype '${targetStereotype}' should have exactly one parameter`,
322
329
  );
323
330
  }
331
+ if (targetStereotype === MILESTONING_STEREOTYPE.BUSINESS_TEMPORAL) {
332
+ queryBuilderState.milestoningState.setBusinessDate(
333
+ propertyExpression.parametersValues[1],
334
+ );
335
+ } else if (
336
+ targetStereotype === MILESTONING_STEREOTYPE.PROCESSING_TEMPORAL
337
+ ) {
338
+ queryBuilderState.milestoningState.setProcessingDate(
339
+ propertyExpression.parametersValues[1],
340
+ );
341
+ }
342
+ }
343
+ // we still need to do a loose milestoningState initialization for other cases e.g. the getAllVersion is used
344
+ else {
345
+ if (
346
+ propertyExpression.parametersValues.length === 3 &&
347
+ targetStereotype === MILESTONING_STEREOTYPE.BITEMPORAL
348
+ ) {
349
+ queryBuilderState.milestoningState.setProcessingDate(
350
+ propertyExpression.parametersValues[1],
351
+ );
352
+ queryBuilderState.milestoningState.setBusinessDate(
353
+ propertyExpression.parametersValues[2],
354
+ );
355
+ }
356
+ if (propertyExpression.parametersValues.length === 2) {
357
+ if (targetStereotype === MILESTONING_STEREOTYPE.BUSINESS_TEMPORAL) {
358
+ queryBuilderState.milestoningState.setBusinessDate(
359
+ propertyExpression.parametersValues[1],
360
+ );
361
+ } else if (
362
+ targetStereotype === MILESTONING_STEREOTYPE.PROCESSING_TEMPORAL
363
+ ) {
364
+ queryBuilderState.milestoningState.setProcessingDate(
365
+ propertyExpression.parametersValues[1],
366
+ );
367
+ }
368
+ }
324
369
  }
325
370
  };
@@ -22,6 +22,7 @@ import type {
22
22
  } from '@finos/legend-graph';
23
23
  import type { QueryBuilderDerivedPropertyExpressionState } from '../QueryBuilderPropertyEditorState.js';
24
24
  import type { QueryBuilderMilestoningState } from './QueryBuilderMilestoningState.js';
25
+ import type { LambdaParameterState } from '../shared/LambdaParameterState.js';
25
26
 
26
27
  export abstract class QueryBuilderMilestoningImplementation {
27
28
  milestoningState: QueryBuilderMilestoningState;
@@ -88,4 +89,6 @@ export abstract class QueryBuilderMilestoningImplementation {
88
89
  idx?: number,
89
90
  derivedPropertyExpressionState?: QueryBuilderDerivedPropertyExpressionState,
90
91
  ): ValueSpecification;
92
+
93
+ abstract buildParameterStatesFromMilestoningParameters(): LambdaParameterState[];
91
94
  }