@finos/legend-query-builder 4.14.34 → 4.14.36
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/__lib__/QueryBuilderTesting.d.ts +1 -0
- package/lib/__lib__/QueryBuilderTesting.d.ts.map +1 -1
- package/lib/__lib__/QueryBuilderTesting.js +1 -0
- package/lib/__lib__/QueryBuilderTesting.js.map +1 -1
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +37 -17
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderConstantExpressionPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderConstantExpressionPanel.js +30 -13
- package/lib/components/QueryBuilderConstantExpressionPanel.js.map +1 -1
- package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.js +2 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
- package/lib/components/QueryBuilderSideBar.d.ts +2 -18
- package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +32 -104
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/QueryLoader.js.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
- package/lib/components/data-access/DataAccessOverview.js.map +1 -1
- package/lib/components/execution-plan/ConstantExecutionNodeViewer.js.map +1 -1
- package/lib/components/execution-plan/DataTypeResultTypeViewer.js.map +1 -1
- package/lib/components/execution-plan/ExecutionPlanViewer.js.map +1 -1
- package/lib/components/execution-plan/FunctionParametersValidationNodeViewer.d.ts.map +1 -1
- package/lib/components/execution-plan/FunctionParametersValidationNodeViewer.js +1 -2
- package/lib/components/execution-plan/FunctionParametersValidationNodeViewer.js.map +1 -1
- package/lib/components/execution-plan/ImplementationViewer.js.map +1 -1
- package/lib/components/execution-plan/ResultTypeViewer.js.map +1 -1
- package/lib/components/execution-plan/SQLExecutionNodeViewer.js.map +1 -1
- package/lib/components/execution-plan/SequenceExecutionNodeViewer.js.map +1 -1
- package/lib/components/execution-plan/StoreMappingGlobalGraphFetchExecutionNodeViewer.js.map +1 -1
- package/lib/components/execution-plan/TempTableStrategyViewer.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -1
- package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +2 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +50 -5
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +2 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +2 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSResultShared.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts +0 -1
- package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
- package/lib/components/shared/BasicValueSpecificationEditor.js +62 -28
- package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
- package/lib/components/shared/CustomDatePicker.d.ts +1 -0
- package/lib/components/shared/CustomDatePicker.d.ts.map +1 -1
- package/lib/components/shared/CustomDatePicker.js +15 -10
- package/lib/components/shared/CustomDatePicker.js.map +1 -1
- package/lib/components/shared/LambdaEditor.js +1 -1
- package/lib/components/shared/LambdaEditor.js.map +1 -1
- package/lib/components/shared/LambdaParameterValuesEditor.js.map +1 -1
- package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js.map +1 -1
- package/lib/components/shared/QueryBuilderVariableSelector.d.ts +1 -0
- package/lib/components/shared/QueryBuilderVariableSelector.d.ts.map +1 -1
- package/lib/components/shared/QueryBuilderVariableSelector.js +2 -2
- package/lib/components/shared/QueryBuilderVariableSelector.js.map +1 -1
- package/lib/components/workflows/ClassQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/ClassQueryBuilder.js +19 -16
- package/lib/components/workflows/ClassQueryBuilder.js.map +1 -1
- package/lib/components/workflows/MappingQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/MappingQueryBuilder.js +18 -15
- package/lib/components/workflows/MappingQueryBuilder.js.map +1 -1
- package/lib/components/workflows/ServiceQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/ServiceQueryBuilder.js +13 -10
- package/lib/components/workflows/ServiceQueryBuilder.js.map +1 -1
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryBuilder_PureGraphManagerExtension.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +16 -16
- package/lib/stores/QueryBuilderChangeDetectionState.js.map +1 -1
- package/lib/stores/QueryBuilderChangeHistoryState.js.map +1 -1
- package/lib/stores/QueryBuilderConstantsState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderConstantsState.js +2 -1
- package/lib/stores/QueryBuilderConstantsState.js.map +1 -1
- package/lib/stores/QueryBuilderGroupOperationHelper.js.map +1 -1
- package/lib/stores/QueryBuilderPropertyEditorState.d.ts +1 -1
- package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPropertyEditorState.js +14 -35
- package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
- package/lib/stores/QueryBuilderResultState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +3 -0
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +15 -1
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
- package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +2 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.js +23 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
- package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts +13 -0
- package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts.map +1 -1
- package/lib/stores/QueryLoaderState.js.map +1 -1
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.js.map +1 -1
- package/lib/stores/data-access/DataAccessState.js.map +1 -1
- package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js.map +1 -1
- package/lib/stores/execution-plan/ExecutionPlanState.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderPropertySearchState.js.map +1 -1
- package/lib/stores/explorer/QueryFunctionsExplorerState.js.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +2 -0
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +2 -0
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts +2 -0
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +6 -0
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +2 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +16 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperatorValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Average.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Count.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Max.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Min.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Sum.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +3 -0
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +42 -3
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +6 -5
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +6 -5
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +8 -37
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +7 -10
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +7 -10
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +6 -5
- package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuidler.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Count.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Max.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Min.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Sum.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_AverageRank.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_DenseRank.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_Rank.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.d.ts +3 -0
- package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterState.js +30 -2
- package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +5 -4
- 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 +5 -4
- 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 +7 -35
- 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 +6 -8
- 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 +6 -8
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
- 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 +6 -8
- 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 +6 -8
- 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 +5 -4
- package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
- package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.js.map +1 -1
- package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.js.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningHelper.js.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningState.js.map +1 -1
- package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.js.map +1 -1
- package/lib/stores/query-workflow/QueryBuilderWorkFlowState.d.ts +5 -0
- package/lib/stores/query-workflow/QueryBuilderWorkFlowState.d.ts.map +1 -1
- package/lib/stores/query-workflow/QueryBuilderWorkFlowState.js +7 -0
- package/lib/stores/query-workflow/QueryBuilderWorkFlowState.js.map +1 -1
- package/lib/stores/shared/LambdaEditorState.js.map +1 -1
- package/lib/stores/shared/LambdaParameterState.js.map +1 -1
- package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts +1 -1
- package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -1
- package/lib/stores/shared/ValueSpecificationEditorHelper.js +20 -10
- package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -1
- package/lib/stores/watermark/QueryBuilderWatermarkState.d.ts +0 -2
- package/lib/stores/watermark/QueryBuilderWatermarkState.d.ts.map +1 -1
- package/lib/stores/watermark/QueryBuilderWatermarkState.js +0 -6
- package/lib/stores/watermark/QueryBuilderWatermarkState.js.map +1 -1
- package/lib/stores/watermark/QueryBuilderWatermarkValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/workflows/ClassQueryBuilderState.js.map +1 -1
- package/lib/stores/workflows/MappingQueryBuilderState.d.ts +2 -2
- package/lib/stores/workflows/MappingQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/MappingQueryBuilderState.js +2 -1
- package/lib/stores/workflows/MappingQueryBuilderState.js.map +1 -1
- package/lib/stores/workflows/ServiceQueryBuilderState.d.ts +2 -2
- package/lib/stores/workflows/ServiceQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/ServiceQueryBuilderState.js +2 -1
- package/lib/stores/workflows/ServiceQueryBuilderState.js.map +1 -1
- package/package.json +24 -24
- package/src/__lib__/QueryBuilderTesting.ts +1 -0
- package/src/components/QueryBuilder.tsx +89 -46
- package/src/components/QueryBuilderConstantExpressionPanel.tsx +41 -19
- package/src/components/QueryBuilderParametersPanel.tsx +7 -7
- package/src/components/QueryBuilderPropertyExpressionEditor.tsx +2 -0
- package/src/components/QueryBuilderSideBar.tsx +138 -339
- package/src/components/execution-plan/FunctionParametersValidationNodeViewer.tsx +3 -2
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +4 -4
- package/src/components/explorer/QueryBuilderPropertySearchPanel.tsx +4 -4
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +8 -3
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +139 -1
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +21 -4
- package/src/components/fetch-structure/QueryBuilderTDSWindowPanel.tsx +4 -4
- package/src/components/filter/QueryBuilderFilterPanel.tsx +12 -6
- package/src/components/result/tds/QueryBuilderTDSResultShared.tsx +2 -2
- package/src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx +1 -1
- package/src/components/shared/BasicValueSpecificationEditor.tsx +96 -34
- package/src/components/shared/CustomDatePicker.tsx +30 -22
- package/src/components/shared/QueryBuilderVariableSelector.tsx +2 -2
- package/src/components/workflows/ClassQueryBuilder.tsx +79 -77
- package/src/components/workflows/MappingQueryBuilder.tsx +75 -76
- package/src/components/workflows/ServiceQueryBuilder.tsx +71 -70
- package/src/index.ts +2 -1
- package/src/stores/QueryBuilderConstantsState.ts +2 -0
- package/src/stores/QueryBuilderPropertyEditorState.ts +17 -56
- package/src/stores/QueryBuilderState.ts +23 -1
- package/src/stores/QueryBuilderValueSpecificationHelper.ts +32 -0
- package/src/stores/QueryBuilder_LegendApplicationPlugin_Extension.ts +18 -0
- package/src/stores/explorer/QueryBuilderExplorerState.ts +2 -2
- package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +4 -0
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +8 -0
- package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +33 -0
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +59 -0
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +5 -5
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +5 -5
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +10 -69
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +7 -18
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +7 -18
- package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +5 -5
- package/src/stores/filter/QueryBuilderFilterState.ts +48 -2
- 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 +10 -71
- package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +6 -14
- package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +6 -14
- package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +6 -14
- package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +6 -14
- package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +5 -5
- package/src/stores/query-workflow/QueryBuilderWorkFlowState.ts +10 -0
- package/src/stores/shared/ValueSpecificationEditorHelper.ts +32 -16
- package/src/stores/watermark/QueryBuilderWatermarkState.ts +0 -7
- package/src/stores/workflows/MappingQueryBuilderState.ts +7 -1
- package/src/stores/workflows/ServiceQueryBuilderState.ts +6 -1
- package/tsconfig.json +17 -2
- package/tsconfig.package.json +17 -1
- package/lib/components/watermark/QueryBuilderWatermark.d.ts +0 -22
- package/lib/components/watermark/QueryBuilderWatermark.d.ts.map +0 -1
- package/lib/components/watermark/QueryBuilderWatermark.js +0 -83
- package/lib/components/watermark/QueryBuilderWatermark.js.map +0 -1
- package/src/components/watermark/QueryBuilderWatermark.tsx +0 -218
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { CustomSelectorInput,
|
|
17
|
+
import { CustomSelectorInput, PanelHeader } from '@finos/legend-art';
|
|
18
18
|
import { observer } from 'mobx-react-lite';
|
|
19
19
|
import { getMappingCompatibleClasses, type Service } from '@finos/legend-graph';
|
|
20
20
|
import { useApplicationStore } from '@finos/legend-application';
|
|
@@ -55,7 +55,9 @@ const ServiceQueryBuilderSetupPanelContent = observer(
|
|
|
55
55
|
|
|
56
56
|
// execution context
|
|
57
57
|
const serviceOptions =
|
|
58
|
-
queryBuilderState.usableServices
|
|
58
|
+
queryBuilderState.usableServices
|
|
59
|
+
?.map(buildElementOption)
|
|
60
|
+
.sort((a, b) => a.label.localeCompare(b.label)) ?? [];
|
|
59
61
|
const selectedServiceOption = buildElementOption(queryBuilderState.service);
|
|
60
62
|
const onServiceOptionChange = (
|
|
61
63
|
option: PackageableElementOption<Service>,
|
|
@@ -67,9 +69,9 @@ const ServiceQueryBuilderSetupPanelContent = observer(
|
|
|
67
69
|
};
|
|
68
70
|
|
|
69
71
|
// execution context
|
|
70
|
-
const executionContextOptions = queryBuilderState.executionContexts
|
|
71
|
-
buildExecutionContextOption
|
|
72
|
-
|
|
72
|
+
const executionContextOptions = queryBuilderState.executionContexts
|
|
73
|
+
.map(buildExecutionContextOption)
|
|
74
|
+
.sort((a, b) => a.label.localeCompare(b.label));
|
|
73
75
|
const selectedExecutionContextOption =
|
|
74
76
|
queryBuilderState.selectedExecutionContext
|
|
75
77
|
? buildExecutionContextOption(
|
|
@@ -96,75 +98,74 @@ const ServiceQueryBuilderSetupPanelContent = observer(
|
|
|
96
98
|
: [];
|
|
97
99
|
|
|
98
100
|
return (
|
|
99
|
-
|
|
100
|
-
<
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
101
|
+
<div className="query-builder__setup__config-group">
|
|
102
|
+
<PanelHeader title="properties" />
|
|
103
|
+
<div className="query-builder__setup__config-group__content">
|
|
104
|
+
<div className="query-builder__setup__config-group__item">
|
|
105
|
+
<label
|
|
106
|
+
className="btn--sm query-builder__setup__config-group__item__label"
|
|
107
|
+
title="service"
|
|
108
|
+
htmlFor="query-builder__setup__service-selector"
|
|
109
|
+
>
|
|
110
|
+
Service
|
|
111
|
+
</label>
|
|
112
|
+
<CustomSelectorInput
|
|
113
|
+
inputId="query-builder__setup__service-selector"
|
|
114
|
+
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
115
|
+
placeholder="Choose a service..."
|
|
116
|
+
options={serviceOptions}
|
|
117
|
+
disabled={
|
|
118
|
+
serviceOptions.length < 1 ||
|
|
119
|
+
(serviceOptions.length === 1 && Boolean(selectedServiceOption))
|
|
120
|
+
}
|
|
121
|
+
onChange={onServiceOptionChange}
|
|
122
|
+
value={selectedServiceOption}
|
|
123
|
+
darkMode={
|
|
124
|
+
!applicationStore.layoutService
|
|
125
|
+
.TEMPORARY__isLightColorThemeEnabled
|
|
126
|
+
}
|
|
127
|
+
/>
|
|
105
128
|
</div>
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
129
|
+
{/* We will display mapping and runtime selector for single-execution and execution context for multi-execution */}
|
|
130
|
+
{Boolean(queryBuilderState.executionContexts.length) && (
|
|
131
|
+
<>
|
|
132
|
+
<div className="query-builder__setup__config-group__item">
|
|
133
|
+
<label
|
|
134
|
+
className="btn--sm query-builder__setup__config-group__item__label"
|
|
135
|
+
title="execution context"
|
|
136
|
+
htmlFor="query-builder__setup__context-selector"
|
|
137
|
+
>
|
|
138
|
+
Context
|
|
139
|
+
</label>
|
|
140
|
+
<CustomSelectorInput
|
|
141
|
+
inputId="query-builder__setup__context-selector"
|
|
142
|
+
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
143
|
+
placeholder="Choose an execution context..."
|
|
144
|
+
options={executionContextOptions}
|
|
145
|
+
disabled={
|
|
146
|
+
executionContextOptions.length < 1 ||
|
|
147
|
+
(executionContextOptions.length === 1 &&
|
|
148
|
+
Boolean(selectedExecutionContextOption))
|
|
149
|
+
}
|
|
150
|
+
onChange={onExecutionContextOptionChange}
|
|
151
|
+
value={selectedExecutionContextOption}
|
|
152
|
+
darkMode={
|
|
153
|
+
!applicationStore.layoutService
|
|
154
|
+
.TEMPORARY__isLightColorThemeEnabled
|
|
155
|
+
}
|
|
156
|
+
/>
|
|
113
157
|
</div>
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
onChange={onServiceOptionChange}
|
|
124
|
-
value={selectedServiceOption}
|
|
125
|
-
darkMode={
|
|
126
|
-
!applicationStore.layoutService
|
|
127
|
-
.TEMPORARY__isLightColorThemeEnabled
|
|
128
|
-
}
|
|
129
|
-
/>
|
|
130
|
-
</div>
|
|
131
|
-
{/* We will display mapping and runtime selector for single-execution and execution context for multi-execution */}
|
|
132
|
-
{Boolean(queryBuilderState.executionContexts.length) && (
|
|
133
|
-
<>
|
|
134
|
-
<div className="query-builder__setup__config-group__item">
|
|
135
|
-
<div
|
|
136
|
-
className="btn--sm query-builder__setup__config-group__item__label"
|
|
137
|
-
title="execution context"
|
|
138
|
-
>
|
|
139
|
-
<PlayIcon className="query-builder__setup__service__icon__execution-context" />
|
|
140
|
-
</div>
|
|
141
|
-
<CustomSelectorInput
|
|
142
|
-
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
143
|
-
placeholder="Choose an execution context..."
|
|
144
|
-
options={executionContextOptions}
|
|
145
|
-
disabled={
|
|
146
|
-
executionContextOptions.length < 1 ||
|
|
147
|
-
(executionContextOptions.length === 1 &&
|
|
148
|
-
Boolean(selectedExecutionContextOption))
|
|
149
|
-
}
|
|
150
|
-
onChange={onExecutionContextOptionChange}
|
|
151
|
-
value={selectedExecutionContextOption}
|
|
152
|
-
darkMode={
|
|
153
|
-
!applicationStore.layoutService
|
|
154
|
-
.TEMPORARY__isLightColorThemeEnabled
|
|
155
|
-
}
|
|
156
|
-
/>
|
|
157
|
-
</div>
|
|
158
|
-
</>
|
|
159
|
-
)}
|
|
158
|
+
</>
|
|
159
|
+
)}
|
|
160
|
+
<div className="query-builder__setup__config-group__item">
|
|
161
|
+
<QueryBuilderClassSelector
|
|
162
|
+
queryBuilderState={queryBuilderState}
|
|
163
|
+
classes={classes}
|
|
164
|
+
noMatchMessage="No compatible entity found for specified execution context"
|
|
165
|
+
/>
|
|
160
166
|
</div>
|
|
161
167
|
</div>
|
|
162
|
-
|
|
163
|
-
queryBuilderState={queryBuilderState}
|
|
164
|
-
classes={classes}
|
|
165
|
-
noMatchMessage="No compatible class found for specified execution context"
|
|
166
|
-
/>
|
|
167
|
-
</>
|
|
168
|
+
</div>
|
|
168
169
|
);
|
|
169
170
|
},
|
|
170
171
|
);
|
package/src/index.ts
CHANGED
|
@@ -21,6 +21,7 @@ export * from './__lib__/QueryBuilderEvent.js';
|
|
|
21
21
|
export { QueryBuilder_GraphManagerPreset } from './graph-manager/QueryBuilder_GraphManagerPreset.js';
|
|
22
22
|
export { QueryBuilderConfig } from './graph-manager/QueryBuilderConfig.js';
|
|
23
23
|
export { QUERY_BUILDER_TEST_ID } from './__lib__/QueryBuilderTesting.js';
|
|
24
|
+
export { dragAndDrop } from './components/__test-utils__/QueryBuilderComponentTestUtils.js';
|
|
24
25
|
export {
|
|
25
26
|
type CheckEntitlementEditorRender,
|
|
26
27
|
QueryBuilder_LegendApplicationPlugin,
|
|
@@ -29,8 +30,8 @@ export { QueryBuilderNavigationBlocker } from './components/QueryBuilderNavigati
|
|
|
29
30
|
export { QueryBuilder } from './components/QueryBuilder.js';
|
|
30
31
|
export { QUERY_BUILDER_COMPONENT_ELEMENT_ID } from './components/QueryBuilderComponentElement.js';
|
|
31
32
|
export {
|
|
32
|
-
QueryBuilderState,
|
|
33
33
|
type QuerySDLC,
|
|
34
|
+
QueryBuilderState,
|
|
34
35
|
} from './stores/QueryBuilderState.js';
|
|
35
36
|
export {
|
|
36
37
|
getTDSColumnDerivedProperyFromType,
|
|
@@ -131,6 +131,8 @@ export class QueryBuilderSimpleConstantExpressionState
|
|
|
131
131
|
this.queryBuilderState.graphManagerState.graph,
|
|
132
132
|
type,
|
|
133
133
|
this.queryBuilderState.observerContext,
|
|
134
|
+
this.queryBuilderState
|
|
135
|
+
.INTERNAL__enableInitializingDefaultSimpleExpressionValue,
|
|
134
136
|
);
|
|
135
137
|
this.setValueSpec(valSpec);
|
|
136
138
|
} catch (error) {
|
|
@@ -26,17 +26,13 @@ import {
|
|
|
26
26
|
import {
|
|
27
27
|
Class,
|
|
28
28
|
type AbstractProperty,
|
|
29
|
-
type Enum,
|
|
30
29
|
type ValueSpecification,
|
|
31
30
|
type PureModel,
|
|
32
31
|
AbstractPropertyExpression,
|
|
33
32
|
DerivedProperty,
|
|
34
33
|
Enumeration,
|
|
35
|
-
EnumValueExplicitReference,
|
|
36
|
-
EnumValueInstanceValue,
|
|
37
34
|
InstanceValue,
|
|
38
35
|
PrimitiveInstanceValue,
|
|
39
|
-
type PRIMITIVE_TYPE,
|
|
40
36
|
VariableExpression,
|
|
41
37
|
SimpleFunctionExpression,
|
|
42
38
|
matchFunctionName,
|
|
@@ -50,7 +46,7 @@ import {
|
|
|
50
46
|
} from '@finos/legend-graph';
|
|
51
47
|
import {
|
|
52
48
|
createNullishValue,
|
|
53
|
-
|
|
49
|
+
isValidInstanceValue,
|
|
54
50
|
} from './QueryBuilderValueSpecificationHelper.js';
|
|
55
51
|
import type { QueryBuilderState } from './QueryBuilderState.js';
|
|
56
52
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../graph/QueryBuilderMetaModelConst.js';
|
|
@@ -58,9 +54,9 @@ import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from './QueryBuilderStateHashUtils
|
|
|
58
54
|
import {
|
|
59
55
|
propertyExpression_setFunc,
|
|
60
56
|
functionExpression_setParametersValues,
|
|
61
|
-
instanceValue_setValues,
|
|
62
57
|
} from './shared/ValueSpecificationModifierHelper.js';
|
|
63
58
|
import { generateMilestonedPropertyParameterValue } from './milestoning/QueryBuilderMilestoningHelper.js';
|
|
59
|
+
import { buildDefaultInstanceValue } from './shared/ValueSpecificationEditorHelper.js';
|
|
64
60
|
|
|
65
61
|
export const getPropertyChainName = (
|
|
66
62
|
propertyExpression: AbstractPropertyExpression,
|
|
@@ -107,9 +103,8 @@ export const getPropertyChainName = (
|
|
|
107
103
|
processedChunks[processedChunks.length - 1],
|
|
108
104
|
);
|
|
109
105
|
if (latestProcessedChunk.startsWith(TYPE_CAST_TOKEN)) {
|
|
110
|
-
processedChunks[
|
|
111
|
-
|
|
112
|
-
] = `${latestProcessedChunk}${chunk}`;
|
|
106
|
+
processedChunks[processedChunks.length - 1] =
|
|
107
|
+
`${latestProcessedChunk}${chunk}`;
|
|
113
108
|
} else {
|
|
114
109
|
processedChunks.push(chunk);
|
|
115
110
|
}
|
|
@@ -142,44 +137,23 @@ export const getPropertyPath = (
|
|
|
142
137
|
export const generateValueSpecificationForParameter = (
|
|
143
138
|
parameter: VariableExpression,
|
|
144
139
|
graph: PureModel,
|
|
140
|
+
initializeDefaultValue: boolean,
|
|
145
141
|
observerContext: ObserverContext,
|
|
146
142
|
): ValueSpecification => {
|
|
147
143
|
if (parameter.genericType) {
|
|
148
144
|
const type = parameter.genericType.value.rawType;
|
|
149
|
-
if (type instanceof PrimitiveType) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
new GenericType(
|
|
153
|
-
// NOTE: since the default generated value for type Date is a StrictDate
|
|
154
|
-
// we need to adjust the generic type accordingly
|
|
155
|
-
// See https://github.com/finos/legend-studio/issues/1391
|
|
156
|
-
type === PrimitiveType.DATE ? PrimitiveType.STRICTDATE : type,
|
|
157
|
-
),
|
|
158
|
-
),
|
|
159
|
-
);
|
|
160
|
-
if (type !== PrimitiveType.LATESTDATE) {
|
|
161
|
-
instanceValue_setValues(
|
|
162
|
-
primitiveInstanceValue,
|
|
163
|
-
[generateDefaultValueForPrimitiveType(type.name as PRIMITIVE_TYPE)],
|
|
164
|
-
observerContext,
|
|
145
|
+
if (type instanceof PrimitiveType || type instanceof Enumeration) {
|
|
146
|
+
if (type === PrimitiveType.LATESTDATE) {
|
|
147
|
+
return new PrimitiveInstanceValue(
|
|
148
|
+
GenericTypeExplicitReference.create(new GenericType(type)),
|
|
165
149
|
);
|
|
166
150
|
}
|
|
167
|
-
return
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
151
|
+
return buildDefaultInstanceValue(
|
|
152
|
+
graph,
|
|
153
|
+
type,
|
|
154
|
+
observerContext,
|
|
155
|
+
initializeDefaultValue || parameter.multiplicity.lowerBound === 0,
|
|
171
156
|
);
|
|
172
|
-
if (type.values.length) {
|
|
173
|
-
const enumValueRef = EnumValueExplicitReference.create(
|
|
174
|
-
type.values[0] as Enum,
|
|
175
|
-
);
|
|
176
|
-
instanceValue_setValues(
|
|
177
|
-
enumValueInstanceValue,
|
|
178
|
-
[enumValueRef],
|
|
179
|
-
observerContext,
|
|
180
|
-
);
|
|
181
|
-
}
|
|
182
|
-
return enumValueInstanceValue;
|
|
183
157
|
}
|
|
184
158
|
}
|
|
185
159
|
// for arguments of types we don't support, we will fill them with `[]`
|
|
@@ -216,6 +190,8 @@ const fillDerivedPropertyParameterValues = (
|
|
|
216
190
|
parameter,
|
|
217
191
|
derivedPropertyExpressionState.queryBuilderState.graphManagerState
|
|
218
192
|
.graph,
|
|
193
|
+
derivedPropertyExpressionState.queryBuilderState
|
|
194
|
+
.INTERNAL__enableInitializingDefaultSimpleExpressionValue,
|
|
219
195
|
derivedPropertyExpressionState.queryBuilderState.observerContext,
|
|
220
196
|
),
|
|
221
197
|
);
|
|
@@ -285,22 +261,7 @@ export class QueryBuilderDerivedPropertyExpressionState {
|
|
|
285
261
|
// TODO: more type matching logic here (take into account multiplicity, type, etc.)
|
|
286
262
|
return this.parameterValues.every((paramValue) => {
|
|
287
263
|
if (paramValue instanceof InstanceValue) {
|
|
288
|
-
|
|
289
|
-
// required and no values provided. LatestDate doesn't have any values so we skip that check for it.
|
|
290
|
-
if (
|
|
291
|
-
isRequired &&
|
|
292
|
-
paramValue.genericType?.value.rawType !== PrimitiveType.LATESTDATE &&
|
|
293
|
-
!paramValue.values.length
|
|
294
|
-
) {
|
|
295
|
-
return false;
|
|
296
|
-
}
|
|
297
|
-
// more values than allowed
|
|
298
|
-
if (
|
|
299
|
-
paramValue.multiplicity.upperBound &&
|
|
300
|
-
paramValue.values.length > paramValue.multiplicity.upperBound
|
|
301
|
-
) {
|
|
302
|
-
return false;
|
|
303
|
-
}
|
|
264
|
+
return isValidInstanceValue(paramValue);
|
|
304
265
|
}
|
|
305
266
|
return true;
|
|
306
267
|
});
|
|
@@ -156,6 +156,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
|
|
|
156
156
|
isCalendarEnabled = false;
|
|
157
157
|
isQueryChatOpened = false;
|
|
158
158
|
isLocalModeEnabled = false;
|
|
159
|
+
INTERNAL__enableInitializingDefaultSimpleExpressionValue = false;
|
|
159
160
|
|
|
160
161
|
lambdaWriteMode = QUERY_BUILDER_LAMBDA_WRITER_MODE.STANDARD;
|
|
161
162
|
|
|
@@ -207,10 +208,12 @@ export abstract class QueryBuilderState implements CommandRegistrar {
|
|
|
207
208
|
isLocalModeEnabled: observable,
|
|
208
209
|
getAllFunction: observable,
|
|
209
210
|
lambdaWriteMode: observable,
|
|
211
|
+
INTERNAL__enableInitializingDefaultSimpleExpressionValue: observable,
|
|
210
212
|
|
|
211
213
|
sideBarClassName: computed,
|
|
212
214
|
isQuerySupported: computed,
|
|
213
215
|
allValidationIssues: computed,
|
|
216
|
+
canBuildQuery: computed,
|
|
214
217
|
|
|
215
218
|
setShowFunctionsExplorerPanel: action,
|
|
216
219
|
setShowParametersPanel: action,
|
|
@@ -222,6 +225,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
|
|
|
222
225
|
setIsLocalModeEnabled: action,
|
|
223
226
|
setGetAllFunction: action,
|
|
224
227
|
setLambdaWriteMode: action,
|
|
228
|
+
setINTERNAL__enableInitializingDefaultSimpleExpressionValue: action,
|
|
225
229
|
|
|
226
230
|
resetQueryResult: action,
|
|
227
231
|
resetQueryContent: action,
|
|
@@ -402,6 +406,12 @@ export abstract class QueryBuilderState implements CommandRegistrar {
|
|
|
402
406
|
this.getAllFunction = val;
|
|
403
407
|
}
|
|
404
408
|
|
|
409
|
+
setINTERNAL__enableInitializingDefaultSimpleExpressionValue(
|
|
410
|
+
val: boolean,
|
|
411
|
+
): void {
|
|
412
|
+
this.INTERNAL__enableInitializingDefaultSimpleExpressionValue = val;
|
|
413
|
+
}
|
|
414
|
+
|
|
405
415
|
get isQuerySupported(): boolean {
|
|
406
416
|
return !this.unsupportedQueryState.rawLambda;
|
|
407
417
|
}
|
|
@@ -802,7 +812,19 @@ export abstract class QueryBuilderState implements CommandRegistrar {
|
|
|
802
812
|
}
|
|
803
813
|
|
|
804
814
|
get allValidationIssues(): string[] {
|
|
805
|
-
return this.fetchStructureState.implementation.allValidationIssues
|
|
815
|
+
return this.fetchStructureState.implementation.allValidationIssues.concat(
|
|
816
|
+
this.filterState.allValidationIssues,
|
|
817
|
+
);
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
get canBuildQuery(): boolean {
|
|
821
|
+
return (
|
|
822
|
+
!this.filterState.hasInvalidFilterValues &&
|
|
823
|
+
!this.filterState.hasInvalidDerivedPropertyParameters &&
|
|
824
|
+
!this.fetchStructureState.implementation.hasInvalidFilterValues &&
|
|
825
|
+
!this.fetchStructureState.implementation
|
|
826
|
+
.hasInvalidDerivedPropertyParameters
|
|
827
|
+
);
|
|
806
828
|
}
|
|
807
829
|
|
|
808
830
|
/**
|
|
@@ -46,6 +46,7 @@ import {
|
|
|
46
46
|
INTERNAL__PropagatedValue,
|
|
47
47
|
isSubType,
|
|
48
48
|
type ObserverContext,
|
|
49
|
+
InstanceValue,
|
|
49
50
|
} from '@finos/legend-graph';
|
|
50
51
|
import {
|
|
51
52
|
addUniqueEntry,
|
|
@@ -130,6 +131,37 @@ export const getCollectionValueSpecificationType = (
|
|
|
130
131
|
return undefined;
|
|
131
132
|
};
|
|
132
133
|
|
|
134
|
+
export const isValidInstanceValue = (value: InstanceValue): boolean => {
|
|
135
|
+
const isRequired = value.multiplicity.lowerBound >= 1;
|
|
136
|
+
// required and no values provided. LatestDate doesn't have any values so we skip that check for it.
|
|
137
|
+
if (
|
|
138
|
+
isRequired &&
|
|
139
|
+
value.genericType?.value.rawType !== PrimitiveType.LATESTDATE &&
|
|
140
|
+
(!value.values.length ||
|
|
141
|
+
value.values.some((val) => val === null || val === undefined))
|
|
142
|
+
) {
|
|
143
|
+
return false;
|
|
144
|
+
}
|
|
145
|
+
// more values than allowed
|
|
146
|
+
if (
|
|
147
|
+
!(value instanceof CollectionInstanceValue) &&
|
|
148
|
+
value.multiplicity.upperBound &&
|
|
149
|
+
value.values.length > value.multiplicity.upperBound
|
|
150
|
+
) {
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
// collection instance with invalid values
|
|
154
|
+
if (
|
|
155
|
+
value instanceof CollectionInstanceValue &&
|
|
156
|
+
value.values.some(
|
|
157
|
+
(val) => val instanceof InstanceValue && !isValidInstanceValue(val),
|
|
158
|
+
)
|
|
159
|
+
) {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
return true;
|
|
163
|
+
};
|
|
164
|
+
|
|
133
165
|
export const unwrapNotExpression = (
|
|
134
166
|
expression: SimpleFunctionExpression,
|
|
135
167
|
): SimpleFunctionExpression | undefined => {
|
|
@@ -75,6 +75,14 @@ export type TemplateQueryPanelContentRenderer = (
|
|
|
75
75
|
queryBuilderState: QueryBuilderState,
|
|
76
76
|
) => React.ReactNode;
|
|
77
77
|
|
|
78
|
+
export type QueryBuilderHeaderActionConfiguration = {
|
|
79
|
+
key: string;
|
|
80
|
+
category: number;
|
|
81
|
+
renderer: (
|
|
82
|
+
queryBuilderState: QueryBuilderState,
|
|
83
|
+
) => React.ReactNode | undefined;
|
|
84
|
+
};
|
|
85
|
+
|
|
78
86
|
export interface QueryBuilder_LegendApplicationPlugin_Extension
|
|
79
87
|
extends LegendApplicationPlugin {
|
|
80
88
|
/**
|
|
@@ -118,4 +126,14 @@ export interface QueryBuilder_LegendApplicationPlugin_Extension
|
|
|
118
126
|
* Get the list of template query panel content render
|
|
119
127
|
*/
|
|
120
128
|
getExtraTemplateQueryPanelContentRenderer?(): TemplateQueryPanelContentRenderer[];
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Get the list of action configurations
|
|
132
|
+
*/
|
|
133
|
+
getExtraQueryBuilderHeaderActionConfigurations?(): QueryBuilderHeaderActionConfiguration[];
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* Get the list of action configurations
|
|
137
|
+
*/
|
|
138
|
+
getExtraQueryBuilderHeaderTitleConfigurations?(): QueryBuilderHeaderActionConfiguration[];
|
|
121
139
|
}
|
|
@@ -586,8 +586,8 @@ export const getQueryBuilderSubTypeNodeData = (
|
|
|
586
586
|
parentNode instanceof QueryBuilderExplorerTreePropertyNodeData
|
|
587
587
|
? parentNode.property.multiplicity
|
|
588
588
|
: parentNode instanceof QueryBuilderExplorerTreeSubTypeNodeData
|
|
589
|
-
|
|
590
|
-
|
|
589
|
+
? parentNode.multiplicity
|
|
590
|
+
: Multiplicity.ONE,
|
|
591
591
|
);
|
|
592
592
|
subTypeNode.childrenIds =
|
|
593
593
|
generateExplorerTreeClassNodeChildrenIDs(subTypeNode);
|
|
@@ -47,6 +47,8 @@ export abstract class QueryBuilderFetchStructureImplementationState
|
|
|
47
47
|
usedExplorerTreePropertyNodeIDs: computed,
|
|
48
48
|
fetchStructureValidationIssues: computed,
|
|
49
49
|
allValidationIssues: computed,
|
|
50
|
+
hasInvalidFilterValues: computed,
|
|
51
|
+
hasInvalidDerivedPropertyParameters: computed,
|
|
50
52
|
hashCode: computed,
|
|
51
53
|
});
|
|
52
54
|
|
|
@@ -75,6 +77,8 @@ export abstract class QueryBuilderFetchStructureImplementationState
|
|
|
75
77
|
): void;
|
|
76
78
|
abstract initialize(): void;
|
|
77
79
|
abstract initializeWithQuery(): void;
|
|
80
|
+
abstract get hasInvalidFilterValues(): boolean;
|
|
81
|
+
abstract get hasInvalidDerivedPropertyParameters(): boolean;
|
|
78
82
|
abstract get hashCode(): string;
|
|
79
83
|
|
|
80
84
|
get TEMPORARY__showPostFetchStructurePanel(): boolean {
|
|
@@ -529,6 +529,14 @@ export class QueryBuilderGraphFetchTreeState
|
|
|
529
529
|
);
|
|
530
530
|
}
|
|
531
531
|
|
|
532
|
+
get hasInvalidFilterValues(): boolean {
|
|
533
|
+
return false;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
get hasInvalidDerivedPropertyParameters(): boolean {
|
|
537
|
+
return false;
|
|
538
|
+
}
|
|
539
|
+
|
|
532
540
|
get hashCode(): string {
|
|
533
541
|
return hashArray([
|
|
534
542
|
QUERY_BUILDER_STATE_HASH_STRUCTURE.GRAPH_FETCH_STATE,
|
|
@@ -149,6 +149,7 @@ export class QueryBuilderTDSState
|
|
|
149
149
|
addColumn: action,
|
|
150
150
|
moveColumn: action,
|
|
151
151
|
removeAllColumns: action,
|
|
152
|
+
removeColumn: action,
|
|
152
153
|
replaceColumn: action,
|
|
153
154
|
initialize: action,
|
|
154
155
|
initializeWithQuery: action,
|
|
@@ -328,6 +329,20 @@ export class QueryBuilderTDSState
|
|
|
328
329
|
if (hasNoProjectionColumns) {
|
|
329
330
|
validationIssues.push('Query has no projection columns');
|
|
330
331
|
}
|
|
332
|
+
|
|
333
|
+
this.projectionColumns.forEach((column) => {
|
|
334
|
+
if (
|
|
335
|
+
column instanceof QueryBuilderSimpleProjectionColumnState &&
|
|
336
|
+
column.propertyExpressionState.derivedPropertyExpressionStates.some(
|
|
337
|
+
(p) => !p.isValid,
|
|
338
|
+
)
|
|
339
|
+
) {
|
|
340
|
+
validationIssues.push(
|
|
341
|
+
`Derived property parameter value for ${column.propertyExpressionState.title} is missing`,
|
|
342
|
+
);
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
|
|
331
346
|
return validationIssues;
|
|
332
347
|
}
|
|
333
348
|
|
|
@@ -335,6 +350,7 @@ export class QueryBuilderTDSState
|
|
|
335
350
|
const fetchStructureValidationIssues = [
|
|
336
351
|
...this.fetchStructureValidationIssues,
|
|
337
352
|
...this.windowState.windowValidationIssues,
|
|
353
|
+
...this.postFilterState.allValidationIssues,
|
|
338
354
|
];
|
|
339
355
|
|
|
340
356
|
return fetchStructureValidationIssues;
|
|
@@ -785,6 +801,23 @@ export class QueryBuilderTDSState
|
|
|
785
801
|
return Boolean(usedInProjection ?? usedInPostFilter);
|
|
786
802
|
}
|
|
787
803
|
|
|
804
|
+
get hasInvalidFilterValues(): boolean {
|
|
805
|
+
return (
|
|
806
|
+
this.postFilterState.hasInvalidFilterValues ||
|
|
807
|
+
this.postFilterState.hasInvalidDerivedPropertyParameters
|
|
808
|
+
);
|
|
809
|
+
}
|
|
810
|
+
|
|
811
|
+
get hasInvalidDerivedPropertyParameters(): boolean {
|
|
812
|
+
return this.projectionColumns.some(
|
|
813
|
+
(column) =>
|
|
814
|
+
column instanceof QueryBuilderSimpleProjectionColumnState &&
|
|
815
|
+
column.propertyExpressionState.derivedPropertyExpressionStates.some(
|
|
816
|
+
(p) => !p.isValid,
|
|
817
|
+
),
|
|
818
|
+
);
|
|
819
|
+
}
|
|
820
|
+
|
|
788
821
|
get hashCode(): string {
|
|
789
822
|
return hashArray([
|
|
790
823
|
QUERY_BUILDER_STATE_HASH_STRUCTURE.PROJECTION_STATE,
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
observe_ValueSpecification,
|
|
26
26
|
PrimitiveType,
|
|
27
27
|
CollectionInstanceValue,
|
|
28
|
+
InstanceValue,
|
|
28
29
|
} from '@finos/legend-graph';
|
|
29
30
|
import {
|
|
30
31
|
type GeneratorFn,
|
|
@@ -59,6 +60,7 @@ import {
|
|
|
59
60
|
QueryBuilderProjectionColumnState,
|
|
60
61
|
type QueryBuilderProjectionColumnDragSource,
|
|
61
62
|
QueryBuilderDerivationProjectionColumnState,
|
|
63
|
+
QueryBuilderSimpleProjectionColumnState,
|
|
62
64
|
} from '../projection/QueryBuilderProjectionColumnState.js';
|
|
63
65
|
import {
|
|
64
66
|
buildProjectionColumnTypeaheadQuery,
|
|
@@ -72,6 +74,7 @@ import type { QueryBuilderTDSColumnState } from '../QueryBuilderTDSColumnState.j
|
|
|
72
74
|
import {
|
|
73
75
|
getCollectionValueSpecificationType,
|
|
74
76
|
getNonCollectionValueSpecificationType,
|
|
77
|
+
isValidInstanceValue,
|
|
75
78
|
isValueExpressionReferencedInValue,
|
|
76
79
|
} from '../../../QueryBuilderValueSpecificationHelper.js';
|
|
77
80
|
import { buildtdsPropertyExpressionFromColState } from './operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
|
|
@@ -604,6 +607,9 @@ export class QueryBuilderPostFilterState
|
|
|
604
607
|
replaceBlankNodeWithNode: action,
|
|
605
608
|
setRearrangingConditions: action,
|
|
606
609
|
setDerivedColumnBeingDropped: action,
|
|
610
|
+
allValidationIssues: computed,
|
|
611
|
+
hasInvalidFilterValues: computed,
|
|
612
|
+
hasInvalidDerivedPropertyParameters: computed,
|
|
607
613
|
hashCode: computed,
|
|
608
614
|
});
|
|
609
615
|
|
|
@@ -986,6 +992,59 @@ export class QueryBuilderPostFilterState
|
|
|
986
992
|
);
|
|
987
993
|
}
|
|
988
994
|
|
|
995
|
+
get allValidationIssues(): string[] {
|
|
996
|
+
const validationIssues: string[] = [];
|
|
997
|
+
Array.from(this.nodes.values()).forEach((node) => {
|
|
998
|
+
if (node instanceof QueryBuilderPostFilterTreeConditionNodeData) {
|
|
999
|
+
if (
|
|
1000
|
+
node.condition.rightConditionValue instanceof
|
|
1001
|
+
PostFilterValueSpecConditionValueState &&
|
|
1002
|
+
node.condition.rightConditionValue.value instanceof InstanceValue &&
|
|
1003
|
+
!isValidInstanceValue(node.condition.rightConditionValue.value) &&
|
|
1004
|
+
node.condition.leftConditionValue instanceof
|
|
1005
|
+
QueryBuilderSimpleProjectionColumnState
|
|
1006
|
+
) {
|
|
1007
|
+
validationIssues.push(
|
|
1008
|
+
`Filter value for ${node.condition.leftConditionValue.propertyExpressionState.title} is missing or invalid`,
|
|
1009
|
+
);
|
|
1010
|
+
}
|
|
1011
|
+
if (
|
|
1012
|
+
node.condition.leftConditionValue instanceof
|
|
1013
|
+
QueryBuilderSimpleProjectionColumnState &&
|
|
1014
|
+
!node.condition.leftConditionValue.propertyExpressionState.isValid
|
|
1015
|
+
) {
|
|
1016
|
+
validationIssues.push(
|
|
1017
|
+
`Derived property parameter value for ${node.condition.leftConditionValue.propertyExpressionState.title} is missing or invalid`,
|
|
1018
|
+
);
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
});
|
|
1022
|
+
return validationIssues;
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
get hasInvalidFilterValues(): boolean {
|
|
1026
|
+
return Array.from(this.nodes.values()).some(
|
|
1027
|
+
(node) =>
|
|
1028
|
+
node instanceof QueryBuilderPostFilterTreeConditionNodeData &&
|
|
1029
|
+
node.condition.rightConditionValue instanceof
|
|
1030
|
+
PostFilterValueSpecConditionValueState &&
|
|
1031
|
+
node.condition.rightConditionValue.value instanceof InstanceValue &&
|
|
1032
|
+
!isValidInstanceValue(node.condition.rightConditionValue.value) &&
|
|
1033
|
+
node.condition.leftConditionValue instanceof
|
|
1034
|
+
QueryBuilderSimpleProjectionColumnState,
|
|
1035
|
+
);
|
|
1036
|
+
}
|
|
1037
|
+
|
|
1038
|
+
get hasInvalidDerivedPropertyParameters(): boolean {
|
|
1039
|
+
return Array.from(this.nodes.values()).some(
|
|
1040
|
+
(node) =>
|
|
1041
|
+
node instanceof QueryBuilderPostFilterTreeConditionNodeData &&
|
|
1042
|
+
node.condition.leftConditionValue instanceof
|
|
1043
|
+
QueryBuilderSimpleProjectionColumnState &&
|
|
1044
|
+
!node.condition.leftConditionValue.propertyExpressionState.isValid,
|
|
1045
|
+
);
|
|
1046
|
+
}
|
|
1047
|
+
|
|
989
1048
|
get hashCode(): string {
|
|
990
1049
|
return hashArray([
|
|
991
1050
|
QUERY_BUILDER_STATE_HASH_STRUCTURE.POST_FILTER_STATE,
|