@finos/legend-query-builder 4.17.99 → 4.18.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 +2 -1
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +9 -8
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js +48 -5
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderRelationExplorerPanel.d.ts +24 -0
- package/lib/components/explorer/QueryBuilderRelationExplorerPanel.d.ts.map +1 -0
- package/lib/components/explorer/QueryBuilderRelationExplorerPanel.js +202 -0
- package/lib/components/explorer/QueryBuilderRelationExplorerPanel.js.map +1 -0
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +3 -3
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +25 -6
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.js +1 -1
- package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSAsyncCellSelectionStats.d.ts +42 -0
- package/lib/components/result/tds/QueryBuilderTDSAsyncCellSelectionStats.d.ts.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSAsyncCellSelectionStats.js +212 -0
- package/lib/components/result/tds/QueryBuilderTDSAsyncCellSelectionStats.js.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSCellSelectionStats.d.ts +66 -0
- package/lib/components/result/tds/QueryBuilderTDSCellSelectionStats.d.ts.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSCellSelectionStats.js +265 -0
- package/lib/components/result/tds/QueryBuilderTDSCellSelectionStats.js.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSCellSelectionStatsBar.d.ts +28 -0
- package/lib/components/result/tds/QueryBuilderTDSCellSelectionStatsBar.d.ts.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSCellSelectionStatsBar.js +148 -0
- package/lib/components/result/tds/QueryBuilderTDSCellSelectionStatsBar.js.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSGridKeyboardShortcuts.d.ts +19 -0
- package/lib/components/result/tds/QueryBuilderTDSGridKeyboardShortcuts.d.ts.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSGridKeyboardShortcuts.js +196 -0
- package/lib/components/result/tds/QueryBuilderTDSGridKeyboardShortcuts.js.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts +5 -0
- package/lib/components/result/tds/QueryBuilderTDSGridResult.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js +64 -87
- package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSGridShared.d.ts +26 -0
- package/lib/components/result/tds/QueryBuilderTDSGridShared.d.ts.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSGridShared.js +51 -0
- package/lib/components/result/tds/QueryBuilderTDSGridShared.js.map +1 -0
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts +5 -0
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.d.ts.map +1 -1
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js +169 -60
- package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -1
- package/lib/components/workflows/AccessorQueryBuilder.d.ts +18 -0
- package/lib/components/workflows/AccessorQueryBuilder.d.ts.map +1 -0
- package/lib/components/workflows/AccessorQueryBuilder.js +87 -0
- package/lib/components/workflows/AccessorQueryBuilder.js.map +1 -0
- package/lib/components/workflows/ClassQueryBuilder.js +5 -5
- package/lib/components/workflows/ClassQueryBuilder.js.map +1 -1
- package/lib/data-access-overview.css +1 -1
- package/lib/graph/QueryBuilderMetaModelConst.d.ts +4 -0
- package/lib/graph/QueryBuilderMetaModelConst.d.ts.map +1 -1
- package/lib/graph/QueryBuilderMetaModelConst.js +4 -0
- package/lib/graph/QueryBuilderMetaModelConst.js.map +1 -1
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +7 -1
- package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts +2 -0
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js +93 -3
- 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 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/QueryBuilderConfig.d.ts +3 -0
- package/lib/stores/QueryBuilderConfig.d.ts.map +1 -1
- package/lib/stores/QueryBuilderConfig.js +3 -0
- package/lib/stores/QueryBuilderConfig.js.map +1 -1
- package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderResultState.js +13 -3
- package/lib/stores/QueryBuilderResultState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +14 -4
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +41 -13
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.d.ts +2 -1
- package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.js +51 -20
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderStateHashUtils.d.ts +1 -0
- package/lib/stores/QueryBuilderStateHashUtils.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateHashUtils.js +1 -0
- package/lib/stores/QueryBuilderStateHashUtils.js.map +1 -1
- package/lib/stores/QueryBuilderTypeaheadHelper.js +2 -2
- package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js +54 -45
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.js +1 -1
- package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.d.ts +12 -2
- package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js +12 -2
- package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +2 -2
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts +2 -2
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +4 -3
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.d.ts +2 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.js +19 -0
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.js.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +7 -4
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +59 -12
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.d.ts +16 -3
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js +102 -24
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.d.ts +2 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js +16 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js +3 -3
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.js +11 -2
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.js +16 -12
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowState.d.ts +4 -3
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowState.js +19 -9
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.js +57 -5
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.d.ts +4 -3
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.js +85 -6
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.js +3 -0
- 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.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Count.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Count.js +3 -0
- 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.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Max.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Max.js +3 -0
- 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.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Min.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Min.js +3 -0
- 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.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Sum.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Sum.js +3 -0
- 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.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_AverageRank.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_AverageRank.js +4 -0
- 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.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_DenseRank.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_DenseRank.js +3 -0
- 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.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_Rank.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_Rank.js +3 -0
- 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.d.ts +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.js +3 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.js.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningState.js +4 -4
- package/lib/stores/milestoning/QueryBuilderMilestoningState.js.map +1 -1
- package/lib/stores/workflows/MappingQueryBuilderState.js +2 -2
- package/lib/stores/workflows/MappingQueryBuilderState.js.map +1 -1
- package/lib/stores/workflows/ServiceQueryBuilderState.js +2 -2
- package/lib/stores/workflows/ServiceQueryBuilderState.js.map +1 -1
- package/lib/stores/workflows/accessor/AccessorQueryBuilderHelper.d.ts +18 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderHelper.d.ts.map +1 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderHelper.js +32 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderHelper.js.map +1 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.d.ts +57 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.d.ts.map +1 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.js +125 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.js.map +1 -0
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.js +4 -4
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.js.map +1 -1
- package/package.json +7 -7
- package/src/components/QueryBuilder.tsx +2 -1
- package/src/components/QueryBuilderSideBar.tsx +12 -8
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +77 -14
- package/src/components/explorer/QueryBuilderRelationExplorerPanel.tsx +536 -0
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +1 -0
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +3 -3
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +62 -4
- package/src/components/result/QueryBuilderResultPanel.tsx +6 -2
- package/src/components/result/tds/QueryBuilderTDSAsyncCellSelectionStats.ts +254 -0
- package/src/components/result/tds/QueryBuilderTDSCellSelectionStats.ts +397 -0
- package/src/components/result/tds/QueryBuilderTDSCellSelectionStatsBar.tsx +439 -0
- package/src/components/result/tds/QueryBuilderTDSGridKeyboardShortcuts.ts +270 -0
- package/src/components/result/tds/QueryBuilderTDSGridResult.tsx +107 -112
- package/src/components/result/tds/QueryBuilderTDSGridShared.ts +76 -0
- package/src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx +272 -99
- package/src/components/workflows/AccessorQueryBuilder.tsx +211 -0
- package/src/components/workflows/ClassQueryBuilder.tsx +5 -5
- package/src/graph/QueryBuilderMetaModelConst.ts +5 -0
- package/src/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +28 -0
- package/src/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.ts +223 -4
- package/src/index.ts +2 -0
- package/src/stores/QueryBuilderConfig.ts +3 -0
- package/src/stores/QueryBuilderResultState.ts +22 -9
- package/src/stores/QueryBuilderState.ts +47 -12
- package/src/stores/QueryBuilderStateBuilder.ts +107 -43
- package/src/stores/QueryBuilderStateHashUtils.ts +1 -0
- package/src/stores/QueryBuilderTypeaheadHelper.ts +2 -2
- package/src/stores/QueryBuilderValueSpecificationBuilder.ts +72 -59
- package/src/stores/__test-utils__/QueryBuilderStateTestUtils.ts +1 -1
- package/src/stores/explorer/QueryBuilderExplorerState.ts +26 -2
- package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +1 -2
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +4 -3
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.ts +1 -1
- package/src/stores/fetch-structure/tds/QueryBuilderTDSHelper.ts +42 -0
- package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +135 -19
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.ts +197 -38
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.ts +30 -0
- package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +3 -3
- package/src/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.ts +21 -0
- package/src/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.ts +25 -16
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowState.ts +23 -9
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.ts +146 -4
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.ts +145 -10
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.ts +2 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.ts +4 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Count.ts +4 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Max.ts +4 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Min.ts +4 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Sum.ts +4 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_AverageRank.ts +5 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_DenseRank.ts +4 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_Rank.ts +4 -0
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.ts +4 -0
- package/src/stores/milestoning/QueryBuilderMilestoningState.ts +4 -4
- package/src/stores/workflows/MappingQueryBuilderState.ts +2 -2
- package/src/stores/workflows/ServiceQueryBuilderState.ts +2 -2
- package/src/stores/workflows/accessor/AccessorQueryBuilderHelper.ts +51 -0
- package/src/stores/workflows/accessor/AccessorQueryBuilderState.ts +195 -0
- package/src/stores/workflows/dataProduct/DataProductQueryBuilderState.ts +4 -4
- package/tsconfig.json +9 -0
|
@@ -27,8 +27,8 @@ import {
|
|
|
27
27
|
import type { QueryBuilderState } from './QueryBuilderState.js';
|
|
28
28
|
import {
|
|
29
29
|
AbstractPropertyExpression,
|
|
30
|
+
FunctionExpression,
|
|
30
31
|
type EnumValueInstanceValue,
|
|
31
|
-
type FunctionExpression,
|
|
32
32
|
type GraphFetchTreeInstanceValue,
|
|
33
33
|
type ValueSpecificationVisitor,
|
|
34
34
|
type LambdaFunction,
|
|
@@ -55,6 +55,8 @@ import {
|
|
|
55
55
|
PackageableElementExplicitReference,
|
|
56
56
|
MILESTONING_STEREOTYPE,
|
|
57
57
|
type ColSpecInstanceValue,
|
|
58
|
+
type AccessorInstanceValue,
|
|
59
|
+
RelationColumn,
|
|
58
60
|
} from '@finos/legend-graph';
|
|
59
61
|
import { processTDSPostFilterExpression } from './fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js';
|
|
60
62
|
import { processFilterExpression } from './filter/QueryBuilderFilterStateBuilder.js';
|
|
@@ -76,6 +78,7 @@ import {
|
|
|
76
78
|
processTDSProjectExpression,
|
|
77
79
|
processTDSProjectionColumnPropertyExpression,
|
|
78
80
|
processTDSProjectionDerivationExpression,
|
|
81
|
+
processTDSRelationColumn,
|
|
79
82
|
processTDSSliceExpression,
|
|
80
83
|
processTDSSortDirectionExpression,
|
|
81
84
|
processTDSSortExpression,
|
|
@@ -87,7 +90,10 @@ import {
|
|
|
87
90
|
QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS,
|
|
88
91
|
} from '../graph/QueryBuilderMetaModelConst.js';
|
|
89
92
|
import { LambdaParameterState } from './shared/LambdaParameterState.js';
|
|
90
|
-
import {
|
|
93
|
+
import {
|
|
94
|
+
processTDS_ExtendExpression,
|
|
95
|
+
processTDS_OLAPGroupByExpression,
|
|
96
|
+
} from './fetch-structure/tds/window/QueryBuilderWindowStateBuilder.js';
|
|
91
97
|
import { processWatermarkExpression } from './watermark/QueryBuilderWatermarkStateBuilder.js';
|
|
92
98
|
import {
|
|
93
99
|
type QueryBuilderConstantExpressionState,
|
|
@@ -117,7 +123,7 @@ const processGetAllExpression = (
|
|
|
117
123
|
Class,
|
|
118
124
|
`Can't process getAll() expression: getAll() return type is missing`,
|
|
119
125
|
);
|
|
120
|
-
queryBuilderState.
|
|
126
|
+
queryBuilderState.setSourceElement(_class);
|
|
121
127
|
queryBuilderState.milestoningState.clearMilestoningDates();
|
|
122
128
|
queryBuilderState.explorerState.refreshTreeData();
|
|
123
129
|
|
|
@@ -149,7 +155,7 @@ const processGetAllVersionsExpression = (
|
|
|
149
155
|
Class,
|
|
150
156
|
`Can't process getAllVersions() expression: getAllVersions() return type is missing`,
|
|
151
157
|
);
|
|
152
|
-
queryBuilderState.
|
|
158
|
+
queryBuilderState.setSourceElement(_class);
|
|
153
159
|
queryBuilderState.milestoningState.clearMilestoningDates();
|
|
154
160
|
queryBuilderState.explorerState.refreshTreeData();
|
|
155
161
|
|
|
@@ -183,7 +189,7 @@ const processGetAllVersionsInRangeExpression = (
|
|
|
183
189
|
Class,
|
|
184
190
|
`Can't process getAllVersionsInRange() expression: getAllVersionsInRange() return type is missing`,
|
|
185
191
|
);
|
|
186
|
-
queryBuilderState.
|
|
192
|
+
queryBuilderState.setSourceElement(_class);
|
|
187
193
|
queryBuilderState.milestoningState.clearMilestoningDates();
|
|
188
194
|
queryBuilderState.explorerState.refreshTreeData();
|
|
189
195
|
|
|
@@ -309,24 +315,34 @@ const processFromFunction = (
|
|
|
309
315
|
expression: SimpleFunctionExpression,
|
|
310
316
|
queryBuilderState: QueryBuilderState,
|
|
311
317
|
): void => {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
318
|
+
const mappingParameter =
|
|
319
|
+
expression.parametersValues[2] !== undefined
|
|
320
|
+
? expression.parametersValues[1]
|
|
321
|
+
: undefined;
|
|
322
|
+
const runtimeParameter = mappingParameter
|
|
323
|
+
? expression.parametersValues[2]
|
|
324
|
+
: expression.parametersValues[1];
|
|
325
|
+
let mapping: Mapping | undefined;
|
|
326
|
+
if (mappingParameter) {
|
|
327
|
+
// mapping
|
|
328
|
+
const mappingInstanceExpression = guaranteeType(
|
|
329
|
+
mappingParameter,
|
|
330
|
+
InstanceValue,
|
|
331
|
+
`Can't process from() expression: only support from() with 1st parameter as instance value`,
|
|
332
|
+
);
|
|
333
|
+
mapping = guaranteeType(
|
|
334
|
+
guaranteeType(
|
|
335
|
+
mappingInstanceExpression.values[0],
|
|
336
|
+
PackageableElementReference,
|
|
337
|
+
`Can't process from() expression: only support from() with 1st parameter as packagableElement value`,
|
|
338
|
+
).value,
|
|
339
|
+
Mapping,
|
|
340
|
+
`Can't process from() expression: only support from() with 1st parameter as mapping value`,
|
|
341
|
+
);
|
|
342
|
+
}
|
|
327
343
|
// runtime
|
|
328
344
|
const runtimeInstanceExpression = guaranteeType(
|
|
329
|
-
|
|
345
|
+
runtimeParameter,
|
|
330
346
|
InstanceValue,
|
|
331
347
|
`Can't process from() expression: only support from() with 2nd parameter as instance value`,
|
|
332
348
|
);
|
|
@@ -516,6 +532,16 @@ export class QueryBuilderValueSpecificationProcessor
|
|
|
516
532
|
throw new UnsupportedOperationError();
|
|
517
533
|
}
|
|
518
534
|
|
|
535
|
+
visit_AccessorInstanceValue(
|
|
536
|
+
valueAccessorInstanceValue: AccessorInstanceValue,
|
|
537
|
+
): void {
|
|
538
|
+
const value = guaranteeNonNullable(
|
|
539
|
+
valueAccessorInstanceValue.values[0],
|
|
540
|
+
`Accessor instance value must have a value`,
|
|
541
|
+
);
|
|
542
|
+
this.queryBuilderState.setSourceElement(value);
|
|
543
|
+
}
|
|
544
|
+
|
|
519
545
|
visit_SimpleFunctionExpression(
|
|
520
546
|
valueSpecification: SimpleFunctionExpression,
|
|
521
547
|
): void {
|
|
@@ -832,8 +858,8 @@ export class QueryBuilderValueSpecificationProcessor
|
|
|
832
858
|
} else if (matchFunctionName(functionName, [SUPPORTED_FUNCTIONS.FROM])) {
|
|
833
859
|
const parameters = valueSpecification.parametersValues;
|
|
834
860
|
assertTrue(
|
|
835
|
-
parameters.length === 3,
|
|
836
|
-
'From function expects
|
|
861
|
+
parameters.length === 3 || parameters.length === 2,
|
|
862
|
+
'From function expects an optional mapping with required runtime',
|
|
837
863
|
);
|
|
838
864
|
processFromFunction(valueSpecification, this.queryBuilderState);
|
|
839
865
|
QueryBuilderValueSpecificationProcessor.processChild(
|
|
@@ -874,6 +900,18 @@ export class QueryBuilderValueSpecificationProcessor
|
|
|
874
900
|
this.parentLambda,
|
|
875
901
|
);
|
|
876
902
|
return;
|
|
903
|
+
} else if (
|
|
904
|
+
matchFunctionName(
|
|
905
|
+
functionName,
|
|
906
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_EXTEND,
|
|
907
|
+
)
|
|
908
|
+
) {
|
|
909
|
+
processTDS_ExtendExpression(
|
|
910
|
+
valueSpecification,
|
|
911
|
+
this.queryBuilderState,
|
|
912
|
+
this.parentLambda,
|
|
913
|
+
);
|
|
914
|
+
return;
|
|
877
915
|
}
|
|
878
916
|
throw new UnsupportedOperationError(
|
|
879
917
|
`Can't process expression of function ${functionName}()`,
|
|
@@ -983,38 +1021,64 @@ export class QueryBuilderValueSpecificationProcessor
|
|
|
983
1021
|
`Can't process col spec array instance: value expected to be of size 1`,
|
|
984
1022
|
);
|
|
985
1023
|
guaranteeNonNullable(spec[0]).colSpecs.forEach((col) => {
|
|
986
|
-
const _function1 =
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
assertTrue(lambdaVal.expressionSequence.length === 1);
|
|
994
|
-
const expression = guaranteeNonNullable(
|
|
995
|
-
lambdaVal.expressionSequence[0],
|
|
996
|
-
);
|
|
997
|
-
|
|
998
|
-
if (expression instanceof AbstractPropertyExpression) {
|
|
999
|
-
processTDSProjectionColumnPropertyExpression(
|
|
1000
|
-
expression,
|
|
1001
|
-
col.name,
|
|
1002
|
-
this.queryBuilderState,
|
|
1024
|
+
const _function1 = col.function1;
|
|
1025
|
+
if (_function1 instanceof LambdaFunctionInstanceValue) {
|
|
1026
|
+
assertTrue(_function1.values.length === 1);
|
|
1027
|
+
const lambdaVal = guaranteeNonNullable(_function1.values[0]);
|
|
1028
|
+
assertTrue(lambdaVal.expressionSequence.length === 1);
|
|
1029
|
+
const expression = guaranteeNonNullable(
|
|
1030
|
+
lambdaVal.expressionSequence[0],
|
|
1003
1031
|
);
|
|
1004
|
-
|
|
1032
|
+
if (expression instanceof AbstractPropertyExpression) {
|
|
1033
|
+
processTDSProjectionColumnPropertyExpression(
|
|
1034
|
+
expression,
|
|
1035
|
+
col.name,
|
|
1036
|
+
this.queryBuilderState,
|
|
1037
|
+
);
|
|
1038
|
+
} else if (expression instanceof FunctionExpression) {
|
|
1039
|
+
const func = expression.func;
|
|
1040
|
+
const relationCol = guaranteeType(
|
|
1041
|
+
func,
|
|
1042
|
+
RelationColumn,
|
|
1043
|
+
'Can`t process col spec: function1 lambda function does not contain a relation column',
|
|
1044
|
+
);
|
|
1045
|
+
processTDSRelationColumn(
|
|
1046
|
+
expression,
|
|
1047
|
+
col.name,
|
|
1048
|
+
relationCol,
|
|
1049
|
+
this.queryBuilderState,
|
|
1050
|
+
);
|
|
1051
|
+
} else if (
|
|
1052
|
+
expression instanceof INTERNAL__UnknownValueSpecification
|
|
1053
|
+
) {
|
|
1054
|
+
assertNonNullable(
|
|
1055
|
+
this.parentExpression,
|
|
1056
|
+
`Can't process unknown value: parent expression cannot be retrieved`,
|
|
1057
|
+
);
|
|
1058
|
+
processTDSProjectionDerivationExpression(
|
|
1059
|
+
expression,
|
|
1060
|
+
col.name,
|
|
1061
|
+
this.parentExpression,
|
|
1062
|
+
this.queryBuilderState,
|
|
1063
|
+
);
|
|
1064
|
+
}
|
|
1065
|
+
} else if (_function1 instanceof INTERNAL__UnknownValueSpecification) {
|
|
1005
1066
|
assertNonNullable(
|
|
1006
1067
|
this.parentExpression,
|
|
1007
1068
|
`Can't process unknown value: parent expression cannot be retrieved`,
|
|
1008
1069
|
);
|
|
1009
1070
|
processTDSProjectionDerivationExpression(
|
|
1010
|
-
|
|
1071
|
+
_function1,
|
|
1011
1072
|
col.name,
|
|
1012
1073
|
this.parentExpression,
|
|
1013
1074
|
this.queryBuilderState,
|
|
1014
1075
|
);
|
|
1076
|
+
} else {
|
|
1077
|
+
throw new UnsupportedOperationError(
|
|
1078
|
+
`Can't process col spec: only support col spec with function lambda value`,
|
|
1079
|
+
);
|
|
1015
1080
|
}
|
|
1016
1081
|
});
|
|
1017
|
-
|
|
1018
1082
|
return;
|
|
1019
1083
|
} else if (
|
|
1020
1084
|
matchFunctionName(this.parentExpression.functionName, [
|
|
@@ -36,6 +36,7 @@ export enum QUERY_BUILDER_STATE_HASH_STRUCTURE {
|
|
|
36
36
|
AGGREGATE_OPERATOR_PERCENTILE = 'AGGREGATE_OPERATOR_PERCENTILE',
|
|
37
37
|
AGGREGATION_STATE = 'AGGREGATION_STATE',
|
|
38
38
|
SIMPLE_PROJECTION_COLUMN_STATE = 'SIMPLE_PROJECTION_COLUMN_STATE',
|
|
39
|
+
RELATION_COLUMN_PROJECTION_COLUMN_STATE = 'RELATION_COLUMN_PROJECTION_COLUMN_STATE',
|
|
39
40
|
PROPERTY_EXPRESSION_STATE = 'PROPERTY_EXPRESSION_STATE',
|
|
40
41
|
DERIVATION_PROJECTION_COLUMN_STATE = 'DERIVATION_PROJECTION_COLUMN_STATE',
|
|
41
42
|
RESULT_SET_MODIFIER_STATE = 'RESULT_SET_MODIFIER_STATE',
|
|
@@ -180,9 +180,9 @@ const buildRawLambda = (
|
|
|
180
180
|
);
|
|
181
181
|
|
|
182
182
|
// build getAll function
|
|
183
|
-
const _class = guaranteeNonNullable(queryBuilderState.
|
|
183
|
+
const _class = guaranteeNonNullable(queryBuilderState.sourceClass);
|
|
184
184
|
const getAllFn = buildGetAllFunction(
|
|
185
|
-
guaranteeNonNullable(queryBuilderState.
|
|
185
|
+
guaranteeNonNullable(queryBuilderState.sourceClass),
|
|
186
186
|
Multiplicity.ONE,
|
|
187
187
|
);
|
|
188
188
|
const milestoningStereotype = getMilestoneTemporalStereotype(
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
isNonNullable,
|
|
21
21
|
} from '@finos/legend-shared';
|
|
22
22
|
import {
|
|
23
|
-
|
|
23
|
+
Class,
|
|
24
24
|
Multiplicity,
|
|
25
25
|
getMilestoneTemporalStereotype,
|
|
26
26
|
extractElementNameFromPath,
|
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
SimpleFunctionExpression,
|
|
35
35
|
SUPPORTED_FUNCTIONS,
|
|
36
36
|
RuntimePointer,
|
|
37
|
+
AccessorInstanceValue,
|
|
37
38
|
} from '@finos/legend-graph';
|
|
38
39
|
import type { QueryBuilderState } from './QueryBuilderState.js';
|
|
39
40
|
import { buildFilterExpression } from './filter/QueryBuilderFilterValueSpecificationBuilder.js';
|
|
@@ -154,10 +155,6 @@ export const buildLambdaFunction = (
|
|
|
154
155
|
queryBuilderState: QueryBuilderState,
|
|
155
156
|
options?: LambdaFunctionBuilderOption,
|
|
156
157
|
): LambdaFunction => {
|
|
157
|
-
const _class = guaranteeNonNullable(
|
|
158
|
-
queryBuilderState.class,
|
|
159
|
-
'Class is required to build query',
|
|
160
|
-
);
|
|
161
158
|
const lambdaFunction = new LambdaFunction(
|
|
162
159
|
new FunctionType(
|
|
163
160
|
PackageableElementExplicitReference.create(
|
|
@@ -167,70 +164,86 @@ export const buildLambdaFunction = (
|
|
|
167
164
|
),
|
|
168
165
|
);
|
|
169
166
|
|
|
170
|
-
const
|
|
171
|
-
|
|
172
|
-
|
|
167
|
+
const sourceElement = guaranteeNonNullable(
|
|
168
|
+
queryBuilderState.sourceElement,
|
|
169
|
+
'Source element of type class or accessor is required to build query',
|
|
173
170
|
);
|
|
171
|
+
if (sourceElement instanceof Class) {
|
|
172
|
+
const _class = guaranteeNonNullable(
|
|
173
|
+
queryBuilderState.sourceClass,
|
|
174
|
+
'Class is required to build query',
|
|
175
|
+
);
|
|
174
176
|
|
|
175
|
-
|
|
176
|
-
// build getAllVersions() when we preview data for milestoned classes
|
|
177
|
-
// because if we use getAll() we need to pass in data to execute the query
|
|
178
|
-
// but we don't give user that option in this flow.
|
|
179
|
-
const getAllVersionsFunction = buildGetAllVersionsFunction(
|
|
177
|
+
const milestoningStereotype = getMilestoneTemporalStereotype(
|
|
180
178
|
_class,
|
|
181
|
-
|
|
179
|
+
queryBuilderState.graphManagerState.graph,
|
|
182
180
|
);
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
)
|
|
181
|
+
|
|
182
|
+
if (milestoningStereotype && options?.useAllVersionsForMilestoning) {
|
|
183
|
+
// build getAllVersions() when we preview data for milestoned classes
|
|
184
|
+
// because if we use getAll() we need to pass in data to execute the query
|
|
185
|
+
// but we don't give user that option in this flow.
|
|
186
|
+
const getAllVersionsFunction = buildGetAllVersionsFunction(
|
|
187
|
+
_class,
|
|
188
|
+
Multiplicity.ONE,
|
|
189
|
+
);
|
|
190
|
+
lambdaFunction.expressionSequence[0] = getAllVersionsFunction;
|
|
191
|
+
} else {
|
|
192
|
+
switch (queryBuilderState.getAllFunction) {
|
|
193
|
+
case QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS.GET_ALL_VERSIONS: {
|
|
194
|
+
if (milestoningStereotype) {
|
|
195
|
+
const getAllVersionsFunction = buildGetAllVersionsFunction(
|
|
196
|
+
_class,
|
|
197
|
+
Multiplicity.ONE,
|
|
198
|
+
);
|
|
199
|
+
lambdaFunction.expressionSequence[0] = getAllVersionsFunction;
|
|
200
|
+
} else {
|
|
201
|
+
throw new UnsupportedOperationError(
|
|
202
|
+
`Unable to build query lamdba: getAllVersions() expects source class to be milestoned`,
|
|
203
|
+
);
|
|
204
|
+
}
|
|
205
|
+
break;
|
|
197
206
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
207
|
+
case QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS.GET_ALL_VERSIONS_IN_RANGE: {
|
|
208
|
+
if (milestoningStereotype) {
|
|
209
|
+
const getAllVersionsInRangeFunction =
|
|
210
|
+
buildGetAllVersionsInRangeFunction(_class, Multiplicity.ONE);
|
|
211
|
+
queryBuilderState.milestoningState
|
|
212
|
+
.getMilestoningImplementation(milestoningStereotype)
|
|
213
|
+
.buildGetAllVersionsInRangeParameters(
|
|
214
|
+
getAllVersionsInRangeFunction,
|
|
215
|
+
);
|
|
216
|
+
lambdaFunction.expressionSequence[0] =
|
|
217
|
+
getAllVersionsInRangeFunction;
|
|
218
|
+
} else {
|
|
219
|
+
throw new UnsupportedOperationError(
|
|
220
|
+
`Unable to build query lamdba: getAllVersionsInRange() expects source class to be milestoned`,
|
|
208
221
|
);
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
throw new UnsupportedOperationError(
|
|
212
|
-
`Unable to build query lamdba: getAllVersionsInRange() expects source class to be milestoned`,
|
|
213
|
-
);
|
|
222
|
+
}
|
|
223
|
+
break;
|
|
214
224
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
+
case QUERY_BUILDER_SUPPORTED_GET_ALL_FUNCTIONS.GET_ALL: {
|
|
226
|
+
// build getAll()
|
|
227
|
+
const getAllFunction = buildGetAllFunction(_class, Multiplicity.ONE);
|
|
228
|
+
if (milestoningStereotype) {
|
|
229
|
+
// build milestoning parameter(s) for getAll()
|
|
230
|
+
queryBuilderState.milestoningState
|
|
231
|
+
.getMilestoningImplementation(milestoningStereotype)
|
|
232
|
+
.buildGetAllParameters(getAllFunction);
|
|
233
|
+
}
|
|
234
|
+
lambdaFunction.expressionSequence[0] = getAllFunction;
|
|
235
|
+
break;
|
|
225
236
|
}
|
|
226
|
-
|
|
227
|
-
|
|
237
|
+
default:
|
|
238
|
+
throw new UnsupportedOperationError(
|
|
239
|
+
`Unable to build query lambda: unknown ${queryBuilderState.getAllFunction} function`,
|
|
240
|
+
);
|
|
228
241
|
}
|
|
229
|
-
default:
|
|
230
|
-
throw new UnsupportedOperationError(
|
|
231
|
-
`Unable to build query lambda: unknown ${queryBuilderState.getAllFunction} function`,
|
|
232
|
-
);
|
|
233
242
|
}
|
|
243
|
+
} else {
|
|
244
|
+
const accessorInstanceValue = new AccessorInstanceValue();
|
|
245
|
+
accessorInstanceValue.values = [sourceElement];
|
|
246
|
+
lambdaFunction.expressionSequence[0] = accessorInstanceValue;
|
|
234
247
|
}
|
|
235
248
|
|
|
236
249
|
// build watermark
|
|
@@ -140,7 +140,7 @@ export const TEST__setUpQueryBuilderState = async (
|
|
|
140
140
|
}
|
|
141
141
|
if (executionContext) {
|
|
142
142
|
const graph = queryBuilderState.graphManagerState.graph;
|
|
143
|
-
queryBuilderState.
|
|
143
|
+
queryBuilderState.sourceElement = graph.getClass(executionContext._class);
|
|
144
144
|
queryBuilderState.executionContextState.mapping = graph.getMapping(
|
|
145
145
|
executionContext.mapping,
|
|
146
146
|
);
|
|
@@ -60,6 +60,7 @@ import {
|
|
|
60
60
|
getAllSubclasses,
|
|
61
61
|
PropertyExplicitReference,
|
|
62
62
|
reportGraphAnalytics,
|
|
63
|
+
type RelationColumn,
|
|
63
64
|
} from '@finos/legend-graph';
|
|
64
65
|
import type { QueryBuilderState } from '../QueryBuilderState.js';
|
|
65
66
|
import { action, flow, flowResult, makeObservable, observable } from 'mobx';
|
|
@@ -80,6 +81,7 @@ export enum QUERY_BUILDER_EXPLORER_TREE_DND_TYPE {
|
|
|
80
81
|
CLASS_PROPERTY = 'CLASS_PROPERTY',
|
|
81
82
|
ENUM_PROPERTY = 'ENUM_PROPERTY',
|
|
82
83
|
PRIMITIVE_PROPERTY = 'PRIMITIVE_PROPERTY',
|
|
84
|
+
RELATION_COLUMN = 'RELATION_COLUMN',
|
|
83
85
|
}
|
|
84
86
|
|
|
85
87
|
export const generateExplorerTreePropertyNodeID = (
|
|
@@ -96,6 +98,10 @@ export interface QueryBuilderExplorerTreeDragSource {
|
|
|
96
98
|
node: QueryBuilderExplorerTreePropertyNodeData;
|
|
97
99
|
}
|
|
98
100
|
|
|
101
|
+
export interface QueryBuilderExplorerTreeRelationColumnDragSource {
|
|
102
|
+
node: QueryBuilderExplorerTreeRelationColumnNodeData;
|
|
103
|
+
}
|
|
104
|
+
|
|
99
105
|
export abstract class QueryBuilderExplorerTreeNodeData implements TreeNodeData {
|
|
100
106
|
isSelected?: boolean | undefined;
|
|
101
107
|
isOpen?: boolean | undefined;
|
|
@@ -221,6 +227,24 @@ export class QueryBuilderExplorerTreeSubTypeNodeData extends QueryBuilderExplore
|
|
|
221
227
|
}
|
|
222
228
|
}
|
|
223
229
|
|
|
230
|
+
export class QueryBuilderExplorerTreeRelationRootNodeData extends QueryBuilderExplorerTreeNodeData {}
|
|
231
|
+
|
|
232
|
+
export class QueryBuilderExplorerTreeRelationColumnNodeData extends QueryBuilderExplorerTreeNodeData {
|
|
233
|
+
column: RelationColumn;
|
|
234
|
+
|
|
235
|
+
constructor(
|
|
236
|
+
id: string,
|
|
237
|
+
label: string,
|
|
238
|
+
dndText: string,
|
|
239
|
+
column: RelationColumn,
|
|
240
|
+
type: Type,
|
|
241
|
+
mappingData: QueryBuilderExplorerTreeNodeMappingData,
|
|
242
|
+
) {
|
|
243
|
+
super(id, label, dndText, false, type, mappingData);
|
|
244
|
+
this.column = column;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
224
248
|
export const buildPropertyExpressionFromExplorerTreeNodeData = (
|
|
225
249
|
node: QueryBuilderExplorerTreePropertyNodeData,
|
|
226
250
|
explorerState: QueryBuilderExplorerState,
|
|
@@ -807,7 +831,7 @@ export class QueryBuilderExplorerState {
|
|
|
807
831
|
}
|
|
808
832
|
|
|
809
833
|
refreshTreeData(): void {
|
|
810
|
-
const _class = this.queryBuilderState.
|
|
834
|
+
const _class = this.queryBuilderState.sourceClass;
|
|
811
835
|
const _mapping = this.queryBuilderState.executionContextState.mapping;
|
|
812
836
|
this.setTreeData(
|
|
813
837
|
_class && _mapping && this.mappingModelCoverageAnalysisResult
|
|
@@ -984,7 +1008,7 @@ export class QueryBuilderExplorerState {
|
|
|
984
1008
|
}
|
|
985
1009
|
if (
|
|
986
1010
|
!node.mappingData.mapped ||
|
|
987
|
-
!this.queryBuilderState.
|
|
1011
|
+
!this.queryBuilderState.sourceClass ||
|
|
988
1012
|
!this.queryBuilderState.executionContextState.mapping
|
|
989
1013
|
) {
|
|
990
1014
|
return;
|
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import type {
|
|
18
|
-
Class,
|
|
19
18
|
CompilationError,
|
|
20
19
|
LambdaFunction,
|
|
21
20
|
VariableExpression,
|
|
@@ -63,7 +62,7 @@ export abstract class QueryBuilderFetchStructureImplementationState
|
|
|
63
62
|
abstract get fetchLabel(): string;
|
|
64
63
|
abstract get canBeExportedToCube(): boolean;
|
|
65
64
|
|
|
66
|
-
abstract onClassChange(
|
|
65
|
+
abstract onClassChange(): void;
|
|
67
66
|
abstract revealCompilationError(compilationError: CompilationError): boolean;
|
|
68
67
|
abstract clearCompilationError(): void;
|
|
69
68
|
abstract fetchProperty(node: QueryBuilderExplorerTreePropertyNodeData): void;
|
|
@@ -296,7 +296,7 @@ export class QueryBuilderGraphFetchTreeState
|
|
|
296
296
|
});
|
|
297
297
|
|
|
298
298
|
// try to initialize the graph-fetch tree data using the setup class
|
|
299
|
-
this.updateTreeData(this.queryBuilderState.
|
|
299
|
+
this.updateTreeData(this.queryBuilderState.sourceClass);
|
|
300
300
|
// we will default to standard pure serialization with no config
|
|
301
301
|
this.serializationState = new GraphFetchPureSerializationState(this);
|
|
302
302
|
}
|
|
@@ -426,8 +426,9 @@ export class QueryBuilderGraphFetchTreeState
|
|
|
426
426
|
return;
|
|
427
427
|
}
|
|
428
428
|
|
|
429
|
-
onClassChange(
|
|
430
|
-
|
|
429
|
+
onClassChange(): void {
|
|
430
|
+
// graph-fetch is only applicable for Class sources
|
|
431
|
+
this.updateTreeData(this.queryBuilderState.sourceClass);
|
|
431
432
|
}
|
|
432
433
|
|
|
433
434
|
appendFetchStructure(
|
|
@@ -136,7 +136,7 @@ export const processInternalizeExpression = (
|
|
|
136
136
|
`Can't process internalize() expression: internalize() return type is missing`,
|
|
137
137
|
);
|
|
138
138
|
|
|
139
|
-
queryBuilderState.
|
|
139
|
+
queryBuilderState.setSourceElement(_class);
|
|
140
140
|
queryBuilderState.milestoningState.clearMilestoningDates();
|
|
141
141
|
queryBuilderState.explorerState.refreshTreeData();
|
|
142
142
|
|
|
@@ -86,6 +86,48 @@ export const getFunctionNameFromTDSSortColumn = (
|
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
88
|
|
|
89
|
+
export const getFunctionNameFromRelationSortColumn = (
|
|
90
|
+
columnSortType: COLUMN_SORT_TYPE,
|
|
91
|
+
): string => {
|
|
92
|
+
switch (columnSortType) {
|
|
93
|
+
case COLUMN_SORT_TYPE.ASC:
|
|
94
|
+
return extractElementNameFromPath(
|
|
95
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_ASC,
|
|
96
|
+
);
|
|
97
|
+
case COLUMN_SORT_TYPE.DESC:
|
|
98
|
+
return extractElementNameFromPath(
|
|
99
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_DESC,
|
|
100
|
+
);
|
|
101
|
+
default:
|
|
102
|
+
throw new UnsupportedOperationError(
|
|
103
|
+
`Unsupported column sort type ${columnSortType}`,
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
export const getRelationSortColumnFromFunctionName = (
|
|
109
|
+
functionName: string,
|
|
110
|
+
): COLUMN_SORT_TYPE => {
|
|
111
|
+
if (
|
|
112
|
+
matchFunctionName(
|
|
113
|
+
functionName,
|
|
114
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_ASC,
|
|
115
|
+
)
|
|
116
|
+
) {
|
|
117
|
+
return COLUMN_SORT_TYPE.ASC;
|
|
118
|
+
} else if (
|
|
119
|
+
matchFunctionName(
|
|
120
|
+
functionName,
|
|
121
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_DESC,
|
|
122
|
+
)
|
|
123
|
+
) {
|
|
124
|
+
return COLUMN_SORT_TYPE.DESC;
|
|
125
|
+
}
|
|
126
|
+
throw new UnsupportedOperationError(
|
|
127
|
+
`Unsupported relation sort function: ${functionName}`,
|
|
128
|
+
);
|
|
129
|
+
};
|
|
130
|
+
|
|
89
131
|
export const buildTDSSortTypeExpression = (
|
|
90
132
|
sortType: COLUMN_SORT_TYPE,
|
|
91
133
|
column: string,
|