@finos/legend-query-builder 0.1.2 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +1 -1
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderComponentTestUtils.d.ts.map +1 -1
- package/lib/components/QueryBuilderComponentTestUtils.js +1 -3
- package/lib/components/QueryBuilderComponentTestUtils.js.map +1 -1
- package/lib/components/QueryBuilderDiffPanel.js +1 -2
- package/lib/components/QueryBuilderDiffPanel.js.map +1 -1
- package/lib/components/QueryBuilderParametersPanel.d.ts +1 -1
- package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderParametersPanel.js +8 -5
- package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.js +11 -8
- package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
- package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.js +6 -4
- package/lib/components/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/QueryBuilderTextEditor.js +2 -2
- package/lib/components/QueryBuilderTextEditor.js.map +1 -1
- package/lib/components/QueryBuilder_TestID.d.ts +1 -0
- package/lib/components/QueryBuilder_TestID.d.ts.map +1 -1
- package/lib/components/QueryBuilder_TestID.js +1 -0
- package/lib/components/QueryBuilder_TestID.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js +2 -2
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningEditor.js +5 -4
- package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +4 -2
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +7 -4
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts +53 -0
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -0
- package/lib/components/shared/BasicValueSpecificationEditor.js +323 -0
- package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -0
- package/lib/components/shared/CustomDatePicker.d.ts +39 -0
- package/lib/components/shared/CustomDatePicker.d.ts.map +1 -0
- package/lib/components/shared/CustomDatePicker.js +622 -0
- package/lib/components/shared/CustomDatePicker.js.map +1 -0
- package/lib/components/shared/LambdaEditor.d.ts +92 -0
- package/lib/components/shared/LambdaEditor.d.ts.map +1 -0
- package/lib/components/shared/LambdaEditor.js +432 -0
- package/lib/components/shared/LambdaEditor.js.map +1 -0
- package/lib/{graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.d.ts → components/shared/LambdaParameterValuesEditor.d.ts} +11 -3
- package/lib/components/shared/LambdaParameterValuesEditor.d.ts.map +1 -0
- package/lib/components/shared/LambdaParameterValuesEditor.js +52 -0
- package/lib/components/shared/LambdaParameterValuesEditor.js.map +1 -0
- package/lib/components/shared/QueryBuilderLambdaEditor.d.ts +1 -1
- package/lib/components/shared/QueryBuilderLambdaEditor.d.ts.map +1 -1
- package/lib/components/shared/QueryBuilderLambdaEditor.js +3 -2
- package/lib/components/shared/QueryBuilderLambdaEditor.js.map +1 -1
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +1 -2
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graphManager/protocol/pure/v1/{V1_QueryBuilder_FunctionExpressionBuilder.d.ts → V1_QueryValueSpecificationBuilderHelper.d.ts} +3 -2
- package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -0
- package/lib/graphManager/protocol/pure/v1/{V1_QueryBuilder_FunctionExpressionBuilder.js → V1_QueryValueSpecificationBuilderHelper.js} +3 -2
- package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -0
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +7 -10
- package/lib/stores/QueryBuilderMilestoningState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderMilestoningState.js +6 -6
- package/lib/stores/QueryBuilderMilestoningState.js.map +1 -1
- package/lib/stores/QueryBuilderParametersState.d.ts +1 -1
- package/lib/stores/QueryBuilderParametersState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderParametersState.js +1 -1
- package/lib/stores/QueryBuilderParametersState.js.map +1 -1
- package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPropertyEditorState.js +35 -38
- package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
- package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderResultState.js +2 -1
- package/lib/stores/QueryBuilderResultState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +2 -2
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +5 -5
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderTextEditorState.d.ts +1 -1
- package/lib/stores/QueryBuilderTextEditorState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderTextEditorState.js +2 -1
- package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js +2 -2
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +23 -20
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.js +10 -9
- package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js +4 -3
- package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/{QueryBuilderGraphFetchValueSpecificationBuilder.d.ts → QueryBuilderGraphFetchTreeValueSpecificationBuilder.d.ts} +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeValueSpecificationBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/graph-fetch/{QueryBuilderGraphFetchValueSpecificationBuilder.js → QueryBuilderGraphFetchTreeValueSpecificationBuilder.js} +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeValueSpecificationBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js +3 -3
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.js +4 -4
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js +6 -6
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/{QueryBuilderAggregateOperatorHelper.d.ts → QueryBuilderAggregateOperatorValueSpecificationBuilder.d.ts} +2 -2
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorValueSpecificationBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/projection/aggregation/operators/{QueryBuilderAggregateOperatorHelper.js → QueryBuilderAggregateOperatorValueSpecificationBuilder.js} +2 -2
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorValueSpecificationBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js +3 -3
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js +3 -3
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js +3 -3
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js +5 -5
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js +5 -5
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js +3 -3
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js +3 -3
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js +3 -3
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.js +2 -2
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js +10 -10
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts +1 -4
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js +3 -46
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js.map +1 -1
- package/{src/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.ts → lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.d.ts} +5 -13
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js +61 -0
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +5 -4
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +5 -4
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +10 -8
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +5 -4
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +3 -3
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js +3 -3
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +5 -4
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +3 -3
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +5 -4
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
- package/lib/stores/filter/operators/{QueryBuilderFilterOperatorHelper.d.ts → QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts} +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts.map +1 -0
- package/lib/stores/filter/operators/{QueryBuilderFilterOperatorHelper.js → QueryBuilderFilterOperatorValueSpecificationBuilder.js} +11 -13
- package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js.map +1 -0
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +7 -6
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +7 -6
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +13 -11
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +8 -7
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +8 -7
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js +6 -6
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js +4 -4
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +8 -7
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +8 -7
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +7 -6
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
- package/lib/stores/shared/LambdaEditorState.d.ts +40 -0
- package/lib/stores/shared/LambdaEditorState.d.ts.map +1 -0
- package/lib/stores/shared/LambdaEditorState.js +81 -0
- package/lib/stores/shared/LambdaEditorState.js.map +1 -0
- package/lib/stores/shared/LambdaParameterState.d.ts +62 -0
- package/lib/stores/shared/LambdaParameterState.d.ts.map +1 -0
- package/lib/stores/shared/LambdaParameterState.js +157 -0
- package/lib/stores/shared/LambdaParameterState.js.map +1 -0
- package/lib/{graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.js → stores/shared/ValueSpecificationEditorHelper.d.ts} +5 -3
- package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -0
- package/lib/stores/shared/ValueSpecificationEditorHelper.js +77 -0
- package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -0
- package/lib/stores/shared/ValueSpecificationModifierHelper.d.ts +33 -0
- package/lib/stores/shared/ValueSpecificationModifierHelper.d.ts.map +1 -0
- package/lib/stores/shared/ValueSpecificationModifierHelper.js +71 -0
- package/lib/stores/shared/ValueSpecificationModifierHelper.js.map +1 -0
- package/package.json +14 -17
- package/src/components/QueryBuilder.tsx +4 -1
- package/src/components/QueryBuilderComponentTestUtils.tsx +2 -2
- package/src/components/QueryBuilderDiffPanel.tsx +1 -1
- package/src/components/QueryBuilderParametersPanel.tsx +8 -7
- package/src/components/QueryBuilderPropertyExpressionEditor.tsx +15 -12
- package/src/components/QueryBuilderResultPanel.tsx +8 -6
- package/src/components/QueryBuilderTextEditor.tsx +2 -2
- package/src/components/QueryBuilder_TestID.ts +2 -0
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +2 -2
- package/src/components/explorer/QueryBuilderMilestoningEditor.tsx +5 -3
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +6 -4
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +1 -1
- package/src/components/filter/QueryBuilderFilterPanel.tsx +9 -6
- package/src/components/shared/BasicValueSpecificationEditor.tsx +837 -0
- package/src/components/shared/CustomDatePicker.tsx +1363 -0
- package/src/components/shared/LambdaEditor.tsx +858 -0
- package/src/components/shared/LambdaParameterValuesEditor.tsx +121 -0
- package/src/components/shared/QueryBuilderLambdaEditor.tsx +5 -5
- package/src/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +2 -2
- package/src/graphManager/protocol/pure/v1/{V1_QueryBuilder_FunctionExpressionBuilder.ts → V1_QueryValueSpecificationBuilderHelper.ts} +9 -1
- package/src/index.ts +11 -0
- package/src/stores/QueryBuilderMilestoningState.ts +7 -7
- package/src/stores/QueryBuilderParametersState.ts +4 -4
- package/src/stores/QueryBuilderPropertyEditorState.ts +49 -56
- package/src/stores/QueryBuilderResultState.ts +2 -4
- package/src/stores/QueryBuilderState.ts +5 -5
- package/src/stores/QueryBuilderStateBuilder.ts +1 -1
- package/src/stores/QueryBuilderTextEditorState.ts +2 -1
- package/src/stores/QueryBuilderValueSpecificationBuilder.ts +5 -2
- package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +30 -42
- package/src/stores/QueryBuilderValueSpecificationHelper.ts +13 -8
- package/src/stores/explorer/QueryBuilderExplorerState.ts +12 -2
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +1 -1
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts +3 -3
- package/src/stores/fetch-structure/graph-fetch/{QueryBuilderGraphFetchValueSpecificationBuilder.ts → QueryBuilderGraphFetchTreeValueSpecificationBuilder.ts} +0 -1
- package/src/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.ts +3 -3
- package/src/stores/fetch-structure/projection/QueryBuilderProjectionState.ts +1 -1
- package/src/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.ts +4 -4
- package/src/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +6 -9
- package/src/stores/fetch-structure/projection/aggregation/operators/{QueryBuilderAggregateOperatorHelper.ts → QueryBuilderAggregateOperatorValueSpecificationBuilder.ts} +1 -1
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.ts +3 -3
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.ts +3 -3
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.ts +3 -3
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.ts +1 -1
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.ts +1 -1
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.ts +5 -5
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.ts +5 -5
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.ts +3 -3
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.ts +3 -3
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.ts +3 -3
- package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.ts +2 -2
- package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.ts +12 -10
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.ts +2 -86
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.ts +104 -0
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +3 -3
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +3 -3
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +8 -7
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +4 -4
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +3 -3
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +2 -2
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +4 -4
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +3 -3
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +3 -3
- package/src/stores/filter/operators/{QueryBuilderFilterOperatorHelper.ts → QueryBuilderFilterOperatorValueSpecificationBuilder.ts} +10 -11
- package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +5 -5
- package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +5 -5
- package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +11 -10
- package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +7 -7
- package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +7 -7
- package/src/stores/filter/operators/QueryBuilderFilterOperator_In.ts +5 -5
- package/src/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.ts +3 -3
- package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +7 -7
- package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +7 -7
- package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +5 -5
- package/src/stores/shared/LambdaEditorState.ts +118 -0
- package/src/stores/shared/LambdaParameterState.ts +259 -0
- package/src/stores/shared/ValueSpecificationEditorHelper.ts +143 -0
- package/src/stores/shared/ValueSpecificationModifierHelper.ts +177 -0
- package/tsconfig.json +14 -7
- package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.d.ts.map +0 -1
- package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.js.map +0 -1
- package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.d.ts.map +0 -1
- package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.js.map +0 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.d.ts.map +0 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.js.map +0 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorHelper.d.ts.map +0 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorHelper.js.map +0 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.d.ts.map +0 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.js.map +0 -1
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
import {
|
|
32
32
|
buildAggregateColumnState,
|
|
33
33
|
buildAggregateExpression,
|
|
34
|
-
} from './
|
|
34
|
+
} from './QueryBuilderAggregateOperatorValueSpecificationBuilder.js';
|
|
35
35
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
36
36
|
import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
|
|
37
37
|
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
@@ -52,7 +52,7 @@ export class QueryBuilderAggregateOperator_Sum
|
|
|
52
52
|
) {
|
|
53
53
|
const propertyType =
|
|
54
54
|
projectionColumnState.propertyExpressionState.propertyExpression.func
|
|
55
|
-
.genericType.value.rawType;
|
|
55
|
+
.value.genericType.value.rawType;
|
|
56
56
|
return (
|
|
57
57
|
[
|
|
58
58
|
PRIMITIVE_TYPE.NUMBER,
|
|
@@ -72,8 +72,8 @@ export class QueryBuilderAggregateOperator_Sum
|
|
|
72
72
|
): ValueSpecification {
|
|
73
73
|
return buildAggregateExpression(
|
|
74
74
|
QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUM,
|
|
75
|
-
graph,
|
|
76
75
|
variableName,
|
|
76
|
+
graph,
|
|
77
77
|
);
|
|
78
78
|
}
|
|
79
79
|
|
package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.ts
CHANGED
|
@@ -57,7 +57,7 @@ const findProjectionColumnState = (
|
|
|
57
57
|
postFilterState: QueryBuilderPostFilterState,
|
|
58
58
|
): QueryBuilderProjectionColumnState | QueryBuilderAggregateColumnState => {
|
|
59
59
|
const projectionState = postFilterState.projectionState;
|
|
60
|
-
const properyExpressionName = propertyExpression.func.name;
|
|
60
|
+
const properyExpressionName = propertyExpression.func.value.name;
|
|
61
61
|
assertTrue(
|
|
62
62
|
Object.values(TDS_COLUMN_GETTER).includes(
|
|
63
63
|
properyExpressionName as TDS_COLUMN_GETTER,
|
|
@@ -121,7 +121,7 @@ export const buildPostFilterConditionState = (
|
|
|
121
121
|
if (
|
|
122
122
|
tdsColumnGetter &&
|
|
123
123
|
expression instanceof AbstractPropertyExpression &&
|
|
124
|
-
expression.func.name === tdsColumnGetter
|
|
124
|
+
expression.func.value.name === tdsColumnGetter
|
|
125
125
|
) {
|
|
126
126
|
const columnState = findProjectionColumnState(expression, postFilterState);
|
|
127
127
|
postConditionState = new PostFilterConditionState(
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
} from './QueryBuilderPostFilterState.js';
|
|
34
34
|
|
|
35
35
|
const buildPostFilterExpression = (
|
|
36
|
-
|
|
36
|
+
postFilterState: QueryBuilderPostFilterState,
|
|
37
37
|
node: QueryBuilderPostFilterTreeNodeData,
|
|
38
38
|
): ValueSpecification | undefined => {
|
|
39
39
|
if (node instanceof QueryBuilderPostFilterTreeConditionNodeData) {
|
|
@@ -42,7 +42,7 @@ const buildPostFilterExpression = (
|
|
|
42
42
|
);
|
|
43
43
|
} else if (node instanceof QueryBuilderPostFilterTreeGroupNodeData) {
|
|
44
44
|
const multiplicityOne =
|
|
45
|
-
|
|
45
|
+
postFilterState.projectionState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
|
|
46
46
|
TYPICAL_MULTIPLICITY_TYPE.ONE,
|
|
47
47
|
);
|
|
48
48
|
const func = new SimpleFunctionExpression(
|
|
@@ -50,9 +50,9 @@ const buildPostFilterExpression = (
|
|
|
50
50
|
multiplicityOne,
|
|
51
51
|
);
|
|
52
52
|
const clauses = node.childrenIds
|
|
53
|
-
.map((e) =>
|
|
53
|
+
.map((e) => postFilterState.nodes.get(e))
|
|
54
54
|
.filter(isNonNullable)
|
|
55
|
-
.map((e) => buildPostFilterExpression(
|
|
55
|
+
.map((e) => buildPostFilterExpression(postFilterState, e))
|
|
56
56
|
.filter(isNonNullable);
|
|
57
57
|
/**
|
|
58
58
|
* NOTE: Due to a limitation (or perhaps design decision) in the engine, group operations
|
|
@@ -88,7 +88,7 @@ const buildPostFilterExpression = (
|
|
|
88
88
|
|
|
89
89
|
export const appendPostFilter = (
|
|
90
90
|
postFilterState: QueryBuilderPostFilterState,
|
|
91
|
-
|
|
91
|
+
lambdaFunction: LambdaFunction,
|
|
92
92
|
): LambdaFunction => {
|
|
93
93
|
const postFilterConditionExpressions = postFilterState.rootIds
|
|
94
94
|
.map((e) => guaranteeNonNullable(postFilterState.nodes.get(e)))
|
|
@@ -96,9 +96,9 @@ export const appendPostFilter = (
|
|
|
96
96
|
.filter(isNonNullable);
|
|
97
97
|
if (
|
|
98
98
|
!postFilterConditionExpressions.length ||
|
|
99
|
-
|
|
99
|
+
lambdaFunction.expressionSequence.length !== 1
|
|
100
100
|
) {
|
|
101
|
-
return
|
|
101
|
+
return lambdaFunction;
|
|
102
102
|
}
|
|
103
103
|
const multiplicityOne =
|
|
104
104
|
postFilterState.projectionState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
|
|
@@ -114,8 +114,10 @@ export const appendPostFilter = (
|
|
|
114
114
|
extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER),
|
|
115
115
|
multiplicityOne,
|
|
116
116
|
);
|
|
117
|
-
const currentExpression = guaranteeNonNullable(
|
|
117
|
+
const currentExpression = guaranteeNonNullable(
|
|
118
|
+
lambdaFunction.expressionSequence[0],
|
|
119
|
+
);
|
|
118
120
|
filterExpression.parametersValues = [currentExpression, filterLambda];
|
|
119
|
-
|
|
120
|
-
return
|
|
121
|
+
lambdaFunction.expressionSequence[0] = filterExpression;
|
|
122
|
+
return lambdaFunction;
|
|
121
123
|
};
|
|
@@ -16,30 +16,10 @@
|
|
|
16
16
|
|
|
17
17
|
import {
|
|
18
18
|
type Multiplicity,
|
|
19
|
-
type FunctionExpression,
|
|
20
|
-
AbstractPropertyExpression,
|
|
21
|
-
extractElementNameFromPath,
|
|
22
|
-
GenericType,
|
|
23
|
-
GenericTypeExplicitReference,
|
|
24
|
-
PrimitiveInstanceValue,
|
|
25
|
-
PRIMITIVE_TYPE,
|
|
26
|
-
SimpleFunctionExpression,
|
|
27
19
|
TYPICAL_MULTIPLICITY_TYPE,
|
|
28
|
-
VariableExpression,
|
|
29
|
-
getAllClassDerivedProperties,
|
|
30
|
-
CORE_PURE_PATH,
|
|
31
20
|
} from '@finos/legend-graph';
|
|
32
|
-
import {
|
|
33
|
-
guaranteeNonNullable,
|
|
34
|
-
UnsupportedOperationError,
|
|
35
|
-
} from '@finos/legend-shared';
|
|
21
|
+
import { UnsupportedOperationError } from '@finos/legend-shared';
|
|
36
22
|
import { QueryBuilderAggregateColumnState } from '../../aggregation/QueryBuilderAggregationState.js';
|
|
37
|
-
import type { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
|
|
38
|
-
import {
|
|
39
|
-
type PostFilterConditionState,
|
|
40
|
-
type TDS_COLUMN_GETTER,
|
|
41
|
-
getTDSColumnDerivedProperyFromType,
|
|
42
|
-
} from '../QueryBuilderPostFilterState.js';
|
|
43
23
|
import {
|
|
44
24
|
type QueryBuilderProjectionColumnState,
|
|
45
25
|
QueryBuilderSimpleProjectionColumnState,
|
|
@@ -55,7 +35,7 @@ export const getColumnMultiplicity = (
|
|
|
55
35
|
TYPICAL_MULTIPLICITY_TYPE.ONE,
|
|
56
36
|
);
|
|
57
37
|
} else if (columnState instanceof QueryBuilderSimpleProjectionColumnState) {
|
|
58
|
-
return columnState.propertyExpressionState.propertyExpression.func
|
|
38
|
+
return columnState.propertyExpressionState.propertyExpression.func.value
|
|
59
39
|
.multiplicity;
|
|
60
40
|
}
|
|
61
41
|
throw new UnsupportedOperationError(
|
|
@@ -63,67 +43,3 @@ export const getColumnMultiplicity = (
|
|
|
63
43
|
columnState,
|
|
64
44
|
);
|
|
65
45
|
};
|
|
66
|
-
|
|
67
|
-
export const buildPostFilterConditionExpression = (
|
|
68
|
-
filterConditionState: PostFilterConditionState,
|
|
69
|
-
operator: QueryBuilderPostFilterOperator,
|
|
70
|
-
/**
|
|
71
|
-
* If provided, this will be used to construct the simple
|
|
72
|
-
* function expression for the function with the specified
|
|
73
|
-
* name. If not provided, we will fall back to use the TDS column getter function expression.
|
|
74
|
-
* This is the case because with TDS, we are provided some filter-like operators, e.g. IS_NULL, IS_NOT_NULL, etc.
|
|
75
|
-
*/
|
|
76
|
-
operatorFunctionFullPath: string | undefined,
|
|
77
|
-
): FunctionExpression => {
|
|
78
|
-
// primitives
|
|
79
|
-
const graph =
|
|
80
|
-
filterConditionState.postFilterState.projectionState.queryBuilderState
|
|
81
|
-
.graphManagerState.graph;
|
|
82
|
-
const multiplicityOne = graph.getTypicalMultiplicity(
|
|
83
|
-
TYPICAL_MULTIPLICITY_TYPE.ONE,
|
|
84
|
-
);
|
|
85
|
-
const typeString = graph.getPrimitiveType(PRIMITIVE_TYPE.STRING);
|
|
86
|
-
// property expression
|
|
87
|
-
const colState = filterConditionState.columnState;
|
|
88
|
-
const tdsPropertyExpression = new AbstractPropertyExpression(
|
|
89
|
-
'',
|
|
90
|
-
multiplicityOne,
|
|
91
|
-
);
|
|
92
|
-
let tdsDerivedPropertyName: TDS_COLUMN_GETTER;
|
|
93
|
-
const correspondingTdsDerivedProperty = operator.getTdsColumnGetter();
|
|
94
|
-
if (correspondingTdsDerivedProperty) {
|
|
95
|
-
tdsDerivedPropertyName = correspondingTdsDerivedProperty;
|
|
96
|
-
} else {
|
|
97
|
-
const type = guaranteeNonNullable(colState.getReturnType());
|
|
98
|
-
tdsDerivedPropertyName = getTDSColumnDerivedProperyFromType(type);
|
|
99
|
-
}
|
|
100
|
-
tdsPropertyExpression.func = guaranteeNonNullable(
|
|
101
|
-
getAllClassDerivedProperties(graph.getClass(CORE_PURE_PATH.TDS_ROW)).find(
|
|
102
|
-
(p) => p.name === tdsDerivedPropertyName,
|
|
103
|
-
),
|
|
104
|
-
);
|
|
105
|
-
const variableName = new VariableExpression(
|
|
106
|
-
filterConditionState.postFilterState.lambdaParameterName,
|
|
107
|
-
multiplicityOne,
|
|
108
|
-
);
|
|
109
|
-
const colInstanceValue = new PrimitiveInstanceValue(
|
|
110
|
-
GenericTypeExplicitReference.create(new GenericType(typeString)),
|
|
111
|
-
multiplicityOne,
|
|
112
|
-
);
|
|
113
|
-
colInstanceValue.values = [colState.columnName];
|
|
114
|
-
tdsPropertyExpression.parametersValues = [variableName, colInstanceValue];
|
|
115
|
-
|
|
116
|
-
if (operatorFunctionFullPath) {
|
|
117
|
-
const expression = new SimpleFunctionExpression(
|
|
118
|
-
extractElementNameFromPath(operatorFunctionFullPath),
|
|
119
|
-
multiplicityOne,
|
|
120
|
-
);
|
|
121
|
-
expression.parametersValues.push(tdsPropertyExpression);
|
|
122
|
-
if (filterConditionState.value) {
|
|
123
|
-
expression.parametersValues.push(filterConditionState.value);
|
|
124
|
-
}
|
|
125
|
-
return expression;
|
|
126
|
-
} else {
|
|
127
|
-
return tdsPropertyExpression;
|
|
128
|
-
}
|
|
129
|
-
};
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
type FunctionExpression,
|
|
19
|
+
AbstractPropertyExpression,
|
|
20
|
+
extractElementNameFromPath,
|
|
21
|
+
GenericType,
|
|
22
|
+
GenericTypeExplicitReference,
|
|
23
|
+
PrimitiveInstanceValue,
|
|
24
|
+
PRIMITIVE_TYPE,
|
|
25
|
+
SimpleFunctionExpression,
|
|
26
|
+
TYPICAL_MULTIPLICITY_TYPE,
|
|
27
|
+
VariableExpression,
|
|
28
|
+
getAllClassDerivedProperties,
|
|
29
|
+
CORE_PURE_PATH,
|
|
30
|
+
PropertyExplicitReference,
|
|
31
|
+
} from '@finos/legend-graph';
|
|
32
|
+
import { guaranteeNonNullable } from '@finos/legend-shared';
|
|
33
|
+
import type { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
|
|
34
|
+
import {
|
|
35
|
+
type PostFilterConditionState,
|
|
36
|
+
type TDS_COLUMN_GETTER,
|
|
37
|
+
getTDSColumnDerivedProperyFromType,
|
|
38
|
+
} from '../QueryBuilderPostFilterState.js';
|
|
39
|
+
|
|
40
|
+
export const buildPostFilterConditionExpression = (
|
|
41
|
+
filterConditionState: PostFilterConditionState,
|
|
42
|
+
operator: QueryBuilderPostFilterOperator,
|
|
43
|
+
/**
|
|
44
|
+
* If provided, this will be used to construct the simple
|
|
45
|
+
* function expression for the function with the specified
|
|
46
|
+
* name. If not provided, we will fall back to use the TDS column getter function expression.
|
|
47
|
+
* This is the case because with TDS, we are provided some filter-like operators, e.g. IS_NULL, IS_NOT_NULL, etc.
|
|
48
|
+
*/
|
|
49
|
+
operatorFunctionFullPath: string | undefined,
|
|
50
|
+
): FunctionExpression => {
|
|
51
|
+
// primitives
|
|
52
|
+
const graph =
|
|
53
|
+
filterConditionState.postFilterState.projectionState.queryBuilderState
|
|
54
|
+
.graphManagerState.graph;
|
|
55
|
+
const multiplicityOne = graph.getTypicalMultiplicity(
|
|
56
|
+
TYPICAL_MULTIPLICITY_TYPE.ONE,
|
|
57
|
+
);
|
|
58
|
+
const typeString = graph.getPrimitiveType(PRIMITIVE_TYPE.STRING);
|
|
59
|
+
// property expression
|
|
60
|
+
const colState = filterConditionState.columnState;
|
|
61
|
+
const tdsPropertyExpression = new AbstractPropertyExpression(
|
|
62
|
+
'',
|
|
63
|
+
multiplicityOne,
|
|
64
|
+
);
|
|
65
|
+
let tdsDerivedPropertyName: TDS_COLUMN_GETTER;
|
|
66
|
+
const correspondingTdsDerivedProperty = operator.getTdsColumnGetter();
|
|
67
|
+
if (correspondingTdsDerivedProperty) {
|
|
68
|
+
tdsDerivedPropertyName = correspondingTdsDerivedProperty;
|
|
69
|
+
} else {
|
|
70
|
+
const type = guaranteeNonNullable(colState.getReturnType());
|
|
71
|
+
tdsDerivedPropertyName = getTDSColumnDerivedProperyFromType(type);
|
|
72
|
+
}
|
|
73
|
+
tdsPropertyExpression.func = PropertyExplicitReference.create(
|
|
74
|
+
guaranteeNonNullable(
|
|
75
|
+
getAllClassDerivedProperties(graph.getClass(CORE_PURE_PATH.TDS_ROW)).find(
|
|
76
|
+
(p) => p.name === tdsDerivedPropertyName,
|
|
77
|
+
),
|
|
78
|
+
),
|
|
79
|
+
);
|
|
80
|
+
const variableName = new VariableExpression(
|
|
81
|
+
filterConditionState.postFilterState.lambdaParameterName,
|
|
82
|
+
multiplicityOne,
|
|
83
|
+
);
|
|
84
|
+
const colInstanceValue = new PrimitiveInstanceValue(
|
|
85
|
+
GenericTypeExplicitReference.create(new GenericType(typeString)),
|
|
86
|
+
multiplicityOne,
|
|
87
|
+
);
|
|
88
|
+
colInstanceValue.values = [colState.columnName];
|
|
89
|
+
tdsPropertyExpression.parametersValues = [variableName, colInstanceValue];
|
|
90
|
+
|
|
91
|
+
if (operatorFunctionFullPath) {
|
|
92
|
+
const expression = new SimpleFunctionExpression(
|
|
93
|
+
extractElementNameFromPath(operatorFunctionFullPath),
|
|
94
|
+
multiplicityOne,
|
|
95
|
+
);
|
|
96
|
+
expression.parametersValues.push(tdsPropertyExpression);
|
|
97
|
+
if (filterConditionState.value) {
|
|
98
|
+
expression.parametersValues.push(filterConditionState.value);
|
|
99
|
+
}
|
|
100
|
+
return expression;
|
|
101
|
+
} else {
|
|
102
|
+
return tdsPropertyExpression;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
@@ -20,7 +20,6 @@ import {
|
|
|
20
20
|
type ValueSpecification,
|
|
21
21
|
type FunctionExpression,
|
|
22
22
|
PRIMITIVE_TYPE,
|
|
23
|
-
buildPrimitiveInstanceValue,
|
|
24
23
|
} from '@finos/legend-graph';
|
|
25
24
|
import {
|
|
26
25
|
guaranteeNonNullable,
|
|
@@ -40,9 +39,10 @@ import {
|
|
|
40
39
|
getNonCollectionValueSpecificationType,
|
|
41
40
|
unwrapNotExpression,
|
|
42
41
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
43
|
-
import { buildPostFilterConditionExpression } from './
|
|
42
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
44
43
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
45
44
|
import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
|
|
45
|
+
import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
46
46
|
|
|
47
47
|
export class QueryBuilderPostFilterOperator_Contain
|
|
48
48
|
extends QueryBuilderPostFilterOperator
|
|
@@ -133,9 +133,9 @@ export class QueryBuilderPostFilterOperator_NotContain extends QueryBuilderPostF
|
|
|
133
133
|
);
|
|
134
134
|
return expression
|
|
135
135
|
? buildNotExpression(
|
|
136
|
+
expression,
|
|
136
137
|
postFilterConditionState.postFilterState.projectionState
|
|
137
138
|
.queryBuilderState.graphManagerState.graph,
|
|
138
|
-
expression,
|
|
139
139
|
)
|
|
140
140
|
: undefined;
|
|
141
141
|
}
|
|
@@ -19,7 +19,6 @@ import {
|
|
|
19
19
|
type ValueSpecification,
|
|
20
20
|
type FunctionExpression,
|
|
21
21
|
PRIMITIVE_TYPE,
|
|
22
|
-
buildPrimitiveInstanceValue,
|
|
23
22
|
} from '@finos/legend-graph';
|
|
24
23
|
import {
|
|
25
24
|
type Hashable,
|
|
@@ -38,9 +37,10 @@ import {
|
|
|
38
37
|
getNonCollectionValueSpecificationType,
|
|
39
38
|
unwrapNotExpression,
|
|
40
39
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
41
|
-
import { buildPostFilterConditionExpression } from './
|
|
40
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
42
41
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
43
42
|
import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
|
|
43
|
+
import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
44
44
|
|
|
45
45
|
export class QueryBuilderPostFilterOperator_EndWith
|
|
46
46
|
extends QueryBuilderPostFilterOperator
|
|
@@ -130,9 +130,9 @@ export class QueryBuilderPostFilterOperator_NotEndWith extends QueryBuilderPostF
|
|
|
130
130
|
);
|
|
131
131
|
return expression
|
|
132
132
|
? buildNotExpression(
|
|
133
|
+
expression,
|
|
133
134
|
postFilterConditionState.postFilterState.projectionState
|
|
134
135
|
.queryBuilderState.graphManagerState.graph,
|
|
135
|
-
expression,
|
|
136
136
|
)
|
|
137
137
|
: undefined;
|
|
138
138
|
}
|
|
@@ -29,7 +29,6 @@ import {
|
|
|
29
29
|
PRIMITIVE_TYPE,
|
|
30
30
|
TYPICAL_MULTIPLICITY_TYPE,
|
|
31
31
|
SUPPORTED_FUNCTIONS,
|
|
32
|
-
buildPrimitiveInstanceValue,
|
|
33
32
|
} from '@finos/legend-graph';
|
|
34
33
|
import {
|
|
35
34
|
guaranteeNonNullable,
|
|
@@ -50,9 +49,11 @@ import {
|
|
|
50
49
|
isTypeCompatibleForAssignment,
|
|
51
50
|
unwrapNotExpression,
|
|
52
51
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
53
|
-
import { buildPostFilterConditionExpression } from './
|
|
52
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
54
53
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
55
54
|
import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
|
|
55
|
+
import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
56
|
+
import { instanceValue_setValues } from '../../../../shared/ValueSpecificationModifierHelper.js';
|
|
56
57
|
|
|
57
58
|
export class QueryBuilderPostFilterOperator_Equal
|
|
58
59
|
extends QueryBuilderPostFilterOperator
|
|
@@ -140,9 +141,9 @@ export class QueryBuilderPostFilterOperator_Equal
|
|
|
140
141
|
),
|
|
141
142
|
multiplicityOne,
|
|
142
143
|
);
|
|
143
|
-
enumValueInstanceValue
|
|
144
|
+
instanceValue_setValues(enumValueInstanceValue, [
|
|
144
145
|
EnumValueExplicitReference.create(propertyType.values[0] as Enum),
|
|
145
|
-
];
|
|
146
|
+
]);
|
|
146
147
|
return enumValueInstanceValue;
|
|
147
148
|
}
|
|
148
149
|
throw new UnsupportedOperationError(
|
|
@@ -182,8 +183,8 @@ export class QueryBuilderPostFilterOperator_Equal
|
|
|
182
183
|
postFilterState,
|
|
183
184
|
expression,
|
|
184
185
|
expression.parametersValues[0] instanceof AbstractPropertyExpression &&
|
|
185
|
-
expression.parametersValues[0].func.genericType.value.rawType
|
|
186
|
-
PRIMITIVE_TYPE.DATETIME &&
|
|
186
|
+
expression.parametersValues[0].func.value.genericType.value.rawType
|
|
187
|
+
.path === PRIMITIVE_TYPE.DATETIME &&
|
|
187
188
|
expression.parametersValues[1]?.genericType?.value.rawType.path !==
|
|
188
189
|
PRIMITIVE_TYPE.DATETIME
|
|
189
190
|
? SUPPORTED_FUNCTIONS.IS_ON_DAY
|
|
@@ -209,9 +210,9 @@ export class QueryBuilderPostFilterOperator_NotEqual extends QueryBuilderPostFil
|
|
|
209
210
|
);
|
|
210
211
|
return expression
|
|
211
212
|
? buildNotExpression(
|
|
213
|
+
expression,
|
|
212
214
|
postFilterConditionState.postFilterState.projectionState
|
|
213
215
|
.queryBuilderState.graphManagerState.graph,
|
|
214
|
-
expression,
|
|
215
216
|
)
|
|
216
217
|
: undefined;
|
|
217
218
|
}
|
|
@@ -21,7 +21,6 @@ import {
|
|
|
21
21
|
AbstractPropertyExpression,
|
|
22
22
|
PRIMITIVE_TYPE,
|
|
23
23
|
SUPPORTED_FUNCTIONS,
|
|
24
|
-
buildPrimitiveInstanceValue,
|
|
25
24
|
} from '@finos/legend-graph';
|
|
26
25
|
import {
|
|
27
26
|
guaranteeNonNullable,
|
|
@@ -40,9 +39,10 @@ import {
|
|
|
40
39
|
getNonCollectionValueSpecificationType,
|
|
41
40
|
isTypeCompatibleForAssignment,
|
|
42
41
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
43
|
-
import { buildPostFilterConditionExpression } from './
|
|
42
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
44
43
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
45
44
|
import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
|
|
45
|
+
import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
46
46
|
|
|
47
47
|
export class QueryBuilderPostFilterOperator_GreaterThan
|
|
48
48
|
extends QueryBuilderPostFilterOperator
|
|
@@ -137,8 +137,8 @@ export class QueryBuilderPostFilterOperator_GreaterThan
|
|
|
137
137
|
postFilterState,
|
|
138
138
|
expression,
|
|
139
139
|
expression.parametersValues[0] instanceof AbstractPropertyExpression &&
|
|
140
|
-
expression.parametersValues[0].func.genericType.value.rawType
|
|
141
|
-
PRIMITIVE_TYPE.DATETIME &&
|
|
140
|
+
expression.parametersValues[0].func.value.genericType.value.rawType
|
|
141
|
+
.path === PRIMITIVE_TYPE.DATETIME &&
|
|
142
142
|
expression.parametersValues[1]?.genericType?.value.rawType.path !==
|
|
143
143
|
PRIMITIVE_TYPE.DATETIME
|
|
144
144
|
? SUPPORTED_FUNCTIONS.IS_AFTER_DAY
|
|
@@ -26,7 +26,7 @@ import type {
|
|
|
26
26
|
PostFilterConditionState,
|
|
27
27
|
QueryBuilderPostFilterState,
|
|
28
28
|
} from '../QueryBuilderPostFilterState.js';
|
|
29
|
-
import { buildPostFilterConditionExpression } from './
|
|
29
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
30
30
|
import { QueryBuilderPostFilterOperator_GreaterThan } from './QueryBuilderPostFilterOperator_GreaterThan.js';
|
|
31
31
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
32
32
|
import { hashArray } from '@finos/legend-shared';
|
|
@@ -60,8 +60,8 @@ export class QueryBuilderPostFilterOperator_GreaterThanEqual extends QueryBuilde
|
|
|
60
60
|
postFilterState,
|
|
61
61
|
expression,
|
|
62
62
|
expression.parametersValues[0] instanceof AbstractPropertyExpression &&
|
|
63
|
-
expression.parametersValues[0].func.genericType.value.rawType
|
|
64
|
-
PRIMITIVE_TYPE.DATETIME &&
|
|
63
|
+
expression.parametersValues[0].func.value.genericType.value.rawType
|
|
64
|
+
.path === PRIMITIVE_TYPE.DATETIME &&
|
|
65
65
|
expression.parametersValues[1]?.genericType?.value.rawType.path !==
|
|
66
66
|
PRIMITIVE_TYPE.DATETIME
|
|
67
67
|
? SUPPORTED_FUNCTIONS.IS_AFTER_DAY
|
|
@@ -38,7 +38,7 @@ import type {
|
|
|
38
38
|
PostFilterConditionState,
|
|
39
39
|
QueryBuilderPostFilterState,
|
|
40
40
|
} from '../QueryBuilderPostFilterState.js';
|
|
41
|
-
import { buildPostFilterConditionExpression } from './
|
|
41
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
42
42
|
import {
|
|
43
43
|
buildNotExpression,
|
|
44
44
|
getCollectionValueSpecificationType,
|
|
@@ -176,9 +176,9 @@ export class QueryBuilderPostFilterOperator_NotIn extends QueryBuilderPostFilter
|
|
|
176
176
|
);
|
|
177
177
|
return expression
|
|
178
178
|
? buildNotExpression(
|
|
179
|
+
expression,
|
|
179
180
|
postFilterConditionState.postFilterState.projectionState
|
|
180
181
|
.queryBuilderState.graphManagerState.graph,
|
|
181
|
-
expression,
|
|
182
182
|
)
|
|
183
183
|
: undefined;
|
|
184
184
|
}
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
TDS_COLUMN_GETTER,
|
|
30
30
|
} from '../QueryBuilderPostFilterState.js';
|
|
31
31
|
import { QueryBuilderSimpleProjectionColumnState } from '../../QueryBuilderProjectionColumnState.js';
|
|
32
|
-
import { buildPostFilterConditionExpression } from './
|
|
32
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
33
33
|
import { isPropertyExpressionChainOptional } from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
34
34
|
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
35
35
|
import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
|
|
@@ -21,7 +21,6 @@ import {
|
|
|
21
21
|
type FunctionExpression,
|
|
22
22
|
PRIMITIVE_TYPE,
|
|
23
23
|
SUPPORTED_FUNCTIONS,
|
|
24
|
-
buildPrimitiveInstanceValue,
|
|
25
24
|
} from '@finos/legend-graph';
|
|
26
25
|
import {
|
|
27
26
|
guaranteeNonNullable,
|
|
@@ -40,9 +39,10 @@ import {
|
|
|
40
39
|
getNonCollectionValueSpecificationType,
|
|
41
40
|
isTypeCompatibleForAssignment,
|
|
42
41
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
43
|
-
import { buildPostFilterConditionExpression } from './
|
|
42
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
44
43
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
45
44
|
import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
|
|
45
|
+
import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
46
46
|
|
|
47
47
|
export class QueryBuilderPostFilterOperator_LessThan
|
|
48
48
|
extends QueryBuilderPostFilterOperator
|
|
@@ -137,8 +137,8 @@ export class QueryBuilderPostFilterOperator_LessThan
|
|
|
137
137
|
postFilterState,
|
|
138
138
|
expression,
|
|
139
139
|
expression.parametersValues[0] instanceof AbstractPropertyExpression &&
|
|
140
|
-
expression.parametersValues[0].func.genericType.value.rawType
|
|
141
|
-
PRIMITIVE_TYPE.DATETIME &&
|
|
140
|
+
expression.parametersValues[0].func.value.genericType.value.rawType
|
|
141
|
+
.path === PRIMITIVE_TYPE.DATETIME &&
|
|
142
142
|
expression.parametersValues[1]?.genericType?.value.rawType.path !==
|
|
143
143
|
PRIMITIVE_TYPE.DATETIME
|
|
144
144
|
? SUPPORTED_FUNCTIONS.IS_BEFORE_DAY
|
|
@@ -26,7 +26,7 @@ import type {
|
|
|
26
26
|
PostFilterConditionState,
|
|
27
27
|
QueryBuilderPostFilterState,
|
|
28
28
|
} from '../QueryBuilderPostFilterState.js';
|
|
29
|
-
import { buildPostFilterConditionExpression } from './
|
|
29
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
30
30
|
import { QueryBuilderPostFilterOperator_LessThan } from './QueryBuilderPostFilterOperator_LessThan.js';
|
|
31
31
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
32
32
|
import { type Hashable, hashArray } from '@finos/legend-shared';
|
|
@@ -63,8 +63,8 @@ export class QueryBuilderPostFilterOperator_LessThanEqual
|
|
|
63
63
|
postFilterState,
|
|
64
64
|
expression,
|
|
65
65
|
expression.parametersValues[0] instanceof AbstractPropertyExpression &&
|
|
66
|
-
expression.parametersValues[0].func.genericType.value.rawType
|
|
67
|
-
PRIMITIVE_TYPE.DATETIME &&
|
|
66
|
+
expression.parametersValues[0].func.value.genericType.value.rawType
|
|
67
|
+
.path === PRIMITIVE_TYPE.DATETIME &&
|
|
68
68
|
expression.parametersValues[1]?.genericType?.value.rawType.path !==
|
|
69
69
|
PRIMITIVE_TYPE.DATETIME
|
|
70
70
|
? SUPPORTED_FUNCTIONS.IS_ON_OR_BEFORE_DAY
|
|
@@ -20,7 +20,6 @@ import {
|
|
|
20
20
|
type SimpleFunctionExpression,
|
|
21
21
|
type FunctionExpression,
|
|
22
22
|
PRIMITIVE_TYPE,
|
|
23
|
-
buildPrimitiveInstanceValue,
|
|
24
23
|
} from '@finos/legend-graph';
|
|
25
24
|
import {
|
|
26
25
|
type Hashable,
|
|
@@ -39,9 +38,10 @@ import {
|
|
|
39
38
|
getNonCollectionValueSpecificationType,
|
|
40
39
|
unwrapNotExpression,
|
|
41
40
|
} from '../../../../QueryBuilderValueSpecificationHelper.js';
|
|
42
|
-
import { buildPostFilterConditionExpression } from './
|
|
41
|
+
import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
43
42
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
|
|
44
43
|
import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
|
|
44
|
+
import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
|
|
45
45
|
|
|
46
46
|
export class QueryBuilderPostFilterOperator_StartWith
|
|
47
47
|
extends QueryBuilderPostFilterOperator
|
|
@@ -133,9 +133,9 @@ export class QueryBuilderPostFilterOperator_NotStartWith
|
|
|
133
133
|
);
|
|
134
134
|
return expression
|
|
135
135
|
? buildNotExpression(
|
|
136
|
+
expression,
|
|
136
137
|
postFilterConditionState.postFilterState.projectionState
|
|
137
138
|
.queryBuilderState.graphManagerState.graph,
|
|
138
|
-
expression,
|
|
139
139
|
)
|
|
140
140
|
: undefined;
|
|
141
141
|
}
|
|
@@ -138,8 +138,8 @@ const buildFilterConditionExpressionWithExists = (
|
|
|
138
138
|
// ... but if the property is of multiplicity multiple, start a new property chain
|
|
139
139
|
if (
|
|
140
140
|
exp instanceof AbstractPropertyExpression &&
|
|
141
|
-
(exp.func.multiplicity.upperBound === undefined ||
|
|
142
|
-
exp.func.multiplicity.upperBound > 1)
|
|
141
|
+
(exp.func.value.multiplicity.upperBound === undefined ||
|
|
142
|
+
exp.func.value.multiplicity.upperBound > 1)
|
|
143
143
|
) {
|
|
144
144
|
// NOTE: we need to find/generate the property chain variable name
|
|
145
145
|
// here, by doing this, we try our best to respect original/user-input variable name
|
|
@@ -346,8 +346,9 @@ const buildFilterConditionStateWithExists = (
|
|
|
346
346
|
multiplicityOne,
|
|
347
347
|
);
|
|
348
348
|
flattenedPropertyExpressionChain.func = initialPropertyExpression.func;
|
|
349
|
-
flattenedPropertyExpressionChain.parametersValues =
|
|
350
|
-
initialPropertyExpression.parametersValues
|
|
349
|
+
flattenedPropertyExpressionChain.parametersValues = [
|
|
350
|
+
...initialPropertyExpression.parametersValues,
|
|
351
|
+
];
|
|
351
352
|
|
|
352
353
|
for (const expression of existsLambdaExpressions) {
|
|
353
354
|
// when rebuilding the property expression chain, disregard the initial variable that starts the chain
|
|
@@ -381,13 +382,11 @@ const buildFilterConditionStateWithExists = (
|
|
|
381
382
|
multiplicityOne,
|
|
382
383
|
);
|
|
383
384
|
propertyExpression.func = currentExpression.func;
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
currentExpression.parametersValues.slice(1)
|
|
388
|
-
|
|
389
|
-
propertyExpression.parametersValues = [];
|
|
390
|
-
}
|
|
385
|
+
// NOTE: we must retain the rest of the parameters as those are derived property parameters
|
|
386
|
+
propertyExpression.parametersValues =
|
|
387
|
+
currentExpression.parametersValues.length > 1
|
|
388
|
+
? currentExpression.parametersValues.slice(1)
|
|
389
|
+
: [];
|
|
391
390
|
expressions.push(propertyExpression);
|
|
392
391
|
}
|
|
393
392
|
currentExpression = guaranteeNonNullable(
|