@finos/legend-query-builder 4.17.100 → 4.18.1
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/__test__.d.ts +1 -0
- package/lib/__test__.d.ts.map +1 -1
- package/lib/__test__.js +1 -0
- package/lib/__test__.js.map +1 -1
- 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/__test-utils__/QueryBuilderComponentTestUtils.d.ts +5 -0
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts.map +1 -1
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js +28 -2
- package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.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/fetch-structure/QueryBuilderTDSWindowPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js +8 -2
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.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/components/workflows/DataProductQueryBuilder.d.ts.map +1 -1
- package/lib/components/workflows/DataProductQueryBuilder.js +13 -12
- package/lib/components/workflows/DataProductQueryBuilder.js.map +1 -1
- package/lib/data-access-overview.css +1 -1
- package/lib/graph/QueryBuilderMetaModelConst.d.ts +6 -0
- package/lib/graph/QueryBuilderMetaModelConst.d.ts.map +1 -1
- package/lib/graph/QueryBuilderMetaModelConst.js +6 -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 +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -1
- 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 +6 -2
- 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 +2 -0
- package/lib/stores/QueryBuilderStateHashUtils.d.ts.map +1 -1
- package/lib/stores/QueryBuilderStateHashUtils.js +2 -0
- package/lib/stores/QueryBuilderStateHashUtils.js.map +1 -1
- package/lib/stores/QueryBuilderTypeaheadHelper.js +6 -6
- 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/QueryBuilderValueSpecificationHelper.d.ts +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.js +2 -2
- package/lib/stores/QueryBuilderValueSpecificationHelper.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/__test-utils__/TEST_DATA__QueryBuilder_Accessors.d.ts +374 -0
- package/lib/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.d.ts.map +1 -0
- package/lib/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.js +625 -0
- package/lib/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.js.map +1 -0
- 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 +61 -13
- package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.js +2 -2
- package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js +1 -1
- package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.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.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js +11 -9
- 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 +12 -3
- 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/QueryBuilderWindowGroupByOperatorLoader.d.ts.map +1 -1
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowGroupByOperatorLoader.js +2 -0
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowGroupByOperatorLoader.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 +83 -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 +130 -9
- package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.d.ts +2 -1
- 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_PercentRank.d.ts +25 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_PercentRank.d.ts.map +1 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_PercentRank.js +54 -0
- package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_PercentRank.js.map +1 -0
- 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/filter/QueryBuilderFilterValueSpecificationBuilder.js +3 -3
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.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 +58 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.d.ts.map +1 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.js +129 -0
- package/lib/stores/workflows/accessor/AccessorQueryBuilderState.js.map +1 -0
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.d.ts +31 -6
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.js +164 -17
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.js.map +1 -1
- package/package.json +7 -7
- package/src/__test__.ts +1 -0
- package/src/components/QueryBuilder.tsx +2 -1
- package/src/components/QueryBuilderSideBar.tsx +12 -8
- package/src/components/__test-utils__/QueryBuilderComponentTestUtils.tsx +73 -1
- 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/fetch-structure/QueryBuilderTDSWindowPanel.tsx +10 -4
- package/src/components/workflows/AccessorQueryBuilder.tsx +211 -0
- package/src/components/workflows/ClassQueryBuilder.tsx +5 -5
- package/src/components/workflows/DataProductQueryBuilder.tsx +40 -62
- package/src/graph/QueryBuilderMetaModelConst.ts +7 -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 +5 -0
- package/src/stores/QueryBuilderConfig.ts +3 -0
- package/src/stores/QueryBuilderResultState.ts +12 -8
- package/src/stores/QueryBuilderState.ts +47 -12
- package/src/stores/QueryBuilderStateBuilder.ts +107 -43
- package/src/stores/QueryBuilderStateHashUtils.ts +2 -0
- package/src/stores/QueryBuilderTypeaheadHelper.ts +6 -6
- package/src/stores/QueryBuilderValueSpecificationBuilder.ts +72 -59
- package/src/stores/QueryBuilderValueSpecificationHelper.ts +5 -3
- package/src/stores/__test-utils__/QueryBuilderStateTestUtils.ts +1 -1
- package/src/stores/__test-utils__/TEST_DATA__QueryBuilder_Accessors.ts +630 -0
- 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 +137 -20
- package/src/stores/fetch-structure/tds/aggregation/QueryBuilderRelationAggregationValueSpecBuilder.ts +2 -2
- package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.ts +1 -1
- 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 +11 -9
- package/src/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuilder.ts +22 -1
- package/src/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.ts +25 -16
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowGroupByOperatorLoader.ts +2 -0
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowState.ts +23 -9
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.ts +206 -4
- package/src/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.ts +250 -12
- package/src/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator.ts +3 -1
- 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_PercentRank.ts +57 -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/filter/QueryBuilderFilterValueSpecificationBuilder.ts +3 -3
- 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 +200 -0
- package/src/stores/workflows/dataProduct/DataProductQueryBuilderState.ts +277 -26
- package/tsconfig.json +6 -0
|
@@ -233,6 +233,9 @@ const QueryBuilderWindowColumnModalEditor = observer(
|
|
|
233
233
|
|
|
234
234
|
// Window operator
|
|
235
235
|
const operators = windowState.operators;
|
|
236
|
+
const supportedOperators = tdsState.queryBuilderState.useRelation
|
|
237
|
+
? operators.filter((op) => op.relationFunc !== undefined)
|
|
238
|
+
: operators.filter((op) => op.pureFunc !== undefined);
|
|
236
239
|
const operatorState = windowColumnState.operatorState;
|
|
237
240
|
const [selectedOperatorState, setSelectedOperatorState] = useState(() => {
|
|
238
241
|
if (
|
|
@@ -449,10 +452,10 @@ const QueryBuilderWindowColumnModalEditor = observer(
|
|
|
449
452
|
<ControlledDropdownMenu
|
|
450
453
|
className="query-builder__olap__column__operation__operator__dropdown"
|
|
451
454
|
title="Choose Window Function Operator..."
|
|
452
|
-
disabled={!
|
|
455
|
+
disabled={!supportedOperators.length}
|
|
453
456
|
content={
|
|
454
457
|
<MenuContent>
|
|
455
|
-
{
|
|
458
|
+
{supportedOperators.map((op) => (
|
|
456
459
|
<MenuContentItem
|
|
457
460
|
key={op.uuid}
|
|
458
461
|
className="query-builder__olap__column__operation__operator__dropdown__option"
|
|
@@ -779,6 +782,9 @@ const QueryBuilderWindowColumnEditor = observer(
|
|
|
779
782
|
const windowState = windowColumnState.windowState;
|
|
780
783
|
const tdsState = windowState.tdsState;
|
|
781
784
|
const operators = windowState.operators;
|
|
785
|
+
const supportedOperators = tdsState.queryBuilderState.useRelation
|
|
786
|
+
? operators.filter((op) => op.relationFunc !== undefined)
|
|
787
|
+
: operators.filter((op) => op.pureFunc !== undefined);
|
|
782
788
|
// state
|
|
783
789
|
const ref = useRef<HTMLDivElement>(null);
|
|
784
790
|
const handleRef = useRef<HTMLDivElement>(null);
|
|
@@ -1021,11 +1027,11 @@ const QueryBuilderWindowColumnEditor = observer(
|
|
|
1021
1027
|
</div>
|
|
1022
1028
|
<ControlledDropdownMenu
|
|
1023
1029
|
className="query-builder__olap__column__operation__operator__dropdown"
|
|
1024
|
-
disabled={!
|
|
1030
|
+
disabled={!supportedOperators.length}
|
|
1025
1031
|
title="Choose Window Function Operator..."
|
|
1026
1032
|
content={
|
|
1027
1033
|
<MenuContent>
|
|
1028
|
-
{
|
|
1034
|
+
{supportedOperators.map((op) => (
|
|
1029
1035
|
<MenuContentItem
|
|
1030
1036
|
key={op.uuid}
|
|
1031
1037
|
className="query-builder__olap__column__operation__operator__dropdown__option"
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
CustomSelectorInput,
|
|
19
|
+
PanelHeader,
|
|
20
|
+
compareLabelFn,
|
|
21
|
+
createFilter,
|
|
22
|
+
} from '@finos/legend-art';
|
|
23
|
+
import { observer } from 'mobx-react-lite';
|
|
24
|
+
import {
|
|
25
|
+
type Runtime,
|
|
26
|
+
RuntimePointer,
|
|
27
|
+
PackageableElementExplicitReference,
|
|
28
|
+
} from '@finos/legend-graph';
|
|
29
|
+
import { useApplicationStore } from '@finos/legend-application';
|
|
30
|
+
import {
|
|
31
|
+
buildRuntimeValueOption,
|
|
32
|
+
getRuntimeOptionFormatter,
|
|
33
|
+
} from '../QueryBuilderSideBar.js';
|
|
34
|
+
import type {
|
|
35
|
+
AccessorQueryBuilderState,
|
|
36
|
+
AccessorOwnerOption,
|
|
37
|
+
} from '../../stores/workflows/accessor/AccessorQueryBuilderState.js';
|
|
38
|
+
import { getPackageableElementOptionFormatter } from '@finos/legend-lego/graph-editor';
|
|
39
|
+
|
|
40
|
+
type AccessorOption = {
|
|
41
|
+
label: string;
|
|
42
|
+
value: { schemaName?: string | undefined; tableName: string };
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const AccessorQueryBuilderSetupPanelContent = observer(
|
|
46
|
+
(props: { queryBuilderState: AccessorQueryBuilderState }) => {
|
|
47
|
+
const { queryBuilderState } = props;
|
|
48
|
+
const applicationStore = useApplicationStore();
|
|
49
|
+
|
|
50
|
+
// accessor owner (IngestDefinition or Database)
|
|
51
|
+
const accessorOwnerOptions =
|
|
52
|
+
queryBuilderState.accessorOwnerOptions.sort(compareLabelFn);
|
|
53
|
+
const selectedAccessorOwnerOption = queryBuilderState.selectedAccessorOwner
|
|
54
|
+
? (queryBuilderState.accessorOwnerOptions.find(
|
|
55
|
+
(opt) => opt.value === queryBuilderState.selectedAccessorOwner,
|
|
56
|
+
) ?? null)
|
|
57
|
+
: null;
|
|
58
|
+
const changeAccessorOwner = (val: AccessorOwnerOption): void => {
|
|
59
|
+
if (val.value === queryBuilderState.selectedAccessorOwner) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
queryBuilderState.changeAccessorOwner(val.value);
|
|
63
|
+
};
|
|
64
|
+
const accessorOwnerFilterOption = createFilter({
|
|
65
|
+
ignoreCase: true,
|
|
66
|
+
ignoreAccents: false,
|
|
67
|
+
stringify: (option: { data: AccessorOwnerOption }): string =>
|
|
68
|
+
option.data.value.path,
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// accessor (dataset / table)
|
|
72
|
+
const accessorOptions =
|
|
73
|
+
queryBuilderState.accessorsOptions.sort(compareLabelFn);
|
|
74
|
+
const selectedAccessorOption = queryBuilderState.sourceAccessor
|
|
75
|
+
? (queryBuilderState.accessorsOptions.find(
|
|
76
|
+
(opt) =>
|
|
77
|
+
opt.value.tableName ===
|
|
78
|
+
queryBuilderState.sourceAccessor?.accessor &&
|
|
79
|
+
opt.value.schemaName === queryBuilderState.sourceAccessor.schema,
|
|
80
|
+
) ?? null)
|
|
81
|
+
: null;
|
|
82
|
+
const changeAccessor = (val: AccessorOption): void => {
|
|
83
|
+
queryBuilderState.changeAccessor(val.value);
|
|
84
|
+
};
|
|
85
|
+
const showAccessorSelector = accessorOptions.length > 0;
|
|
86
|
+
|
|
87
|
+
// runtime
|
|
88
|
+
const runtimeOptions = queryBuilderState.compatibleRuntimes
|
|
89
|
+
.map(
|
|
90
|
+
(rt) =>
|
|
91
|
+
new RuntimePointer(PackageableElementExplicitReference.create(rt)),
|
|
92
|
+
)
|
|
93
|
+
.map(buildRuntimeValueOption)
|
|
94
|
+
.sort(compareLabelFn);
|
|
95
|
+
const selectedRuntimeOption = queryBuilderState.executionContextState
|
|
96
|
+
.runtimeValue
|
|
97
|
+
? buildRuntimeValueOption(
|
|
98
|
+
queryBuilderState.executionContextState.runtimeValue,
|
|
99
|
+
)
|
|
100
|
+
: null;
|
|
101
|
+
const changeRuntime = (val: { value: Runtime }): void => {
|
|
102
|
+
if (val.value === queryBuilderState.executionContextState.runtimeValue) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
queryBuilderState.changeRuntime(val.value);
|
|
106
|
+
};
|
|
107
|
+
const runtimeFilterOption = createFilter({
|
|
108
|
+
ignoreCase: true,
|
|
109
|
+
ignoreAccents: false,
|
|
110
|
+
stringify: (option: { data: { value: Runtime } }): string =>
|
|
111
|
+
option.data.value instanceof RuntimePointer
|
|
112
|
+
? option.data.value.packageableRuntime.value.path
|
|
113
|
+
: 'custom',
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
return (
|
|
117
|
+
<div className="query-builder__setup__config-group">
|
|
118
|
+
<PanelHeader title="properties" />
|
|
119
|
+
<div className="query-builder__setup__config-group__content">
|
|
120
|
+
<div className="query-builder__setup__config-group__item">
|
|
121
|
+
<label
|
|
122
|
+
className="btn--sm query-builder__setup__config-group__item__label"
|
|
123
|
+
title="source"
|
|
124
|
+
htmlFor="query-builder__setup__source-selector"
|
|
125
|
+
>
|
|
126
|
+
Source
|
|
127
|
+
</label>
|
|
128
|
+
<CustomSelectorInput
|
|
129
|
+
inputId="query-builder__setup__source-selector"
|
|
130
|
+
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
131
|
+
placeholder="Choose a source..."
|
|
132
|
+
options={accessorOwnerOptions}
|
|
133
|
+
onChange={changeAccessorOwner}
|
|
134
|
+
value={selectedAccessorOwnerOption}
|
|
135
|
+
darkMode={
|
|
136
|
+
!applicationStore.layoutService
|
|
137
|
+
.TEMPORARY__isLightColorThemeEnabled
|
|
138
|
+
}
|
|
139
|
+
filterOption={accessorOwnerFilterOption}
|
|
140
|
+
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
141
|
+
darkMode:
|
|
142
|
+
!applicationStore.layoutService
|
|
143
|
+
.TEMPORARY__isLightColorThemeEnabled,
|
|
144
|
+
})}
|
|
145
|
+
/>
|
|
146
|
+
</div>
|
|
147
|
+
{showAccessorSelector && (
|
|
148
|
+
<div className="query-builder__setup__config-group__item">
|
|
149
|
+
<label
|
|
150
|
+
className="btn--sm query-builder__setup__config-group__item__label"
|
|
151
|
+
title="accessor"
|
|
152
|
+
htmlFor="query-builder__setup__accessor-selector"
|
|
153
|
+
>
|
|
154
|
+
{queryBuilderState.accessorLabel}
|
|
155
|
+
</label>
|
|
156
|
+
<CustomSelectorInput
|
|
157
|
+
inputId="query-builder__setup__accessor-selector"
|
|
158
|
+
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
159
|
+
placeholder={`Choose a ${queryBuilderState.accessorLabel.toLocaleLowerCase()}...`}
|
|
160
|
+
options={accessorOptions}
|
|
161
|
+
onChange={changeAccessor}
|
|
162
|
+
value={selectedAccessorOption}
|
|
163
|
+
darkMode={
|
|
164
|
+
!applicationStore.layoutService
|
|
165
|
+
.TEMPORARY__isLightColorThemeEnabled
|
|
166
|
+
}
|
|
167
|
+
/>
|
|
168
|
+
</div>
|
|
169
|
+
)}
|
|
170
|
+
<div className="query-builder__setup__config-group__item">
|
|
171
|
+
<label
|
|
172
|
+
className="btn--sm query-builder__setup__config-group__item__label"
|
|
173
|
+
title="runtime"
|
|
174
|
+
htmlFor="query-builder__setup__runtime-selector"
|
|
175
|
+
>
|
|
176
|
+
Runtime
|
|
177
|
+
</label>
|
|
178
|
+
<CustomSelectorInput
|
|
179
|
+
inputId="query-builder__setup__runtime-selector"
|
|
180
|
+
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
181
|
+
placeholder="Choose a runtime..."
|
|
182
|
+
noMatchMessage="No compatible runtime found"
|
|
183
|
+
disabled={!queryBuilderState.selectedAccessorOwner}
|
|
184
|
+
options={runtimeOptions}
|
|
185
|
+
onChange={changeRuntime}
|
|
186
|
+
value={selectedRuntimeOption}
|
|
187
|
+
darkMode={
|
|
188
|
+
!applicationStore.layoutService
|
|
189
|
+
.TEMPORARY__isLightColorThemeEnabled
|
|
190
|
+
}
|
|
191
|
+
filterOption={runtimeFilterOption}
|
|
192
|
+
formatOptionLabel={getRuntimeOptionFormatter({
|
|
193
|
+
darkMode:
|
|
194
|
+
!applicationStore.layoutService
|
|
195
|
+
.TEMPORARY__isLightColorThemeEnabled,
|
|
196
|
+
})}
|
|
197
|
+
/>
|
|
198
|
+
</div>
|
|
199
|
+
</div>
|
|
200
|
+
</div>
|
|
201
|
+
);
|
|
202
|
+
},
|
|
203
|
+
);
|
|
204
|
+
|
|
205
|
+
export const renderAccessorQueryBuilderSetupPanelContent = (
|
|
206
|
+
queryBuilderState: AccessorQueryBuilderState,
|
|
207
|
+
): React.ReactNode => (
|
|
208
|
+
<AccessorQueryBuilderSetupPanelContent
|
|
209
|
+
queryBuilderState={queryBuilderState}
|
|
210
|
+
/>
|
|
211
|
+
);
|
|
@@ -64,9 +64,9 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
|
64
64
|
|
|
65
65
|
// mapping
|
|
66
66
|
const mappingOptions = (
|
|
67
|
-
queryBuilderState.
|
|
67
|
+
queryBuilderState.sourceClass
|
|
68
68
|
? getClassCompatibleMappings(
|
|
69
|
-
queryBuilderState.
|
|
69
|
+
queryBuilderState.sourceClass,
|
|
70
70
|
queryBuilderState.graphManagerState.usableMappings,
|
|
71
71
|
)
|
|
72
72
|
: []
|
|
@@ -79,7 +79,7 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
|
79
79
|
: null;
|
|
80
80
|
const changeMapping = (val: PackageableElementOption<Mapping>): void => {
|
|
81
81
|
if (
|
|
82
|
-
!queryBuilderState.
|
|
82
|
+
!queryBuilderState.sourceElement ||
|
|
83
83
|
val.value === queryBuilderState.executionContextState.mapping
|
|
84
84
|
) {
|
|
85
85
|
return;
|
|
@@ -152,7 +152,7 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
|
152
152
|
: 'No compatible mapping found for class'
|
|
153
153
|
}
|
|
154
154
|
noMatchMessage="No compatible mapping found for specified class"
|
|
155
|
-
disabled={!queryBuilderState.
|
|
155
|
+
disabled={!queryBuilderState.sourceElement}
|
|
156
156
|
options={mappingOptions}
|
|
157
157
|
onChange={changeMapping}
|
|
158
158
|
value={selectedMappingOption}
|
|
@@ -182,7 +182,7 @@ const ClassQueryBuilderSetupPanelContent = observer(
|
|
|
182
182
|
placeholder="Choose a runtime..."
|
|
183
183
|
noMatchMessage="No compatible runtime found for specified mapping"
|
|
184
184
|
disabled={
|
|
185
|
-
!queryBuilderState.
|
|
185
|
+
!queryBuilderState.sourceElement ||
|
|
186
186
|
!queryBuilderState.executionContextState.mapping
|
|
187
187
|
}
|
|
188
188
|
options={runtimeOptions}
|
|
@@ -18,6 +18,8 @@ import { useApplicationStore } from '@finos/legend-application';
|
|
|
18
18
|
import {
|
|
19
19
|
type DataProductOption,
|
|
20
20
|
type DataProductQueryBuilderState,
|
|
21
|
+
type ExecutionIdOption,
|
|
22
|
+
LakehouseDataProductExecutionState,
|
|
21
23
|
ModelAccessPointDataProductExecutionState,
|
|
22
24
|
} from '../../stores/workflows/dataProduct/DataProductQueryBuilderState.js';
|
|
23
25
|
import {
|
|
@@ -27,11 +29,7 @@ import {
|
|
|
27
29
|
import { CustomSelectorInput } from '@finos/legend-art';
|
|
28
30
|
import { QueryBuilderClassSelector } from '../QueryBuilderSideBar.js';
|
|
29
31
|
import { observer } from 'mobx-react-lite';
|
|
30
|
-
import type {
|
|
31
|
-
PackageableRuntime,
|
|
32
|
-
NativeModelExecutionContext,
|
|
33
|
-
ModelAccessPointGroup,
|
|
34
|
-
} from '@finos/legend-graph';
|
|
32
|
+
import type { PackageableRuntime } from '@finos/legend-graph';
|
|
35
33
|
import { useEffect } from 'react';
|
|
36
34
|
import { flowResult } from 'mobx';
|
|
37
35
|
|
|
@@ -95,29 +93,35 @@ export const DataProductQueryBuilderSetupFormContent = observer(
|
|
|
95
93
|
{...(formatOptionLabel ? { formatOptionLabel } : {})}
|
|
96
94
|
/>
|
|
97
95
|
</div>
|
|
98
|
-
{Boolean(queryBuilderState.
|
|
96
|
+
{Boolean(queryBuilderState.showExecutionIdSelector) && (
|
|
99
97
|
<div className="query-builder__setup__config-group__item">
|
|
100
98
|
<label
|
|
101
99
|
className="btn--sm query-builder__setup__config-group__item__label"
|
|
102
|
-
title="execution
|
|
103
|
-
htmlFor="query-
|
|
100
|
+
title="execution id"
|
|
101
|
+
htmlFor="query-builder__setup__execution-id-selector"
|
|
104
102
|
>
|
|
105
|
-
|
|
103
|
+
Execution ID
|
|
106
104
|
</label>
|
|
107
105
|
<CustomSelectorInput
|
|
108
|
-
inputId="query-
|
|
106
|
+
inputId="query-builder__setup__execution-id-selector"
|
|
109
107
|
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
110
|
-
placeholder="Choose an execution
|
|
111
|
-
options={queryBuilderState.
|
|
112
|
-
disabled={
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
108
|
+
placeholder="Choose an execution id..."
|
|
109
|
+
options={queryBuilderState.executionIdOptions}
|
|
110
|
+
disabled={queryBuilderState.executionIdOptions.length < 2}
|
|
111
|
+
onChange={(option: ExecutionIdOption) => {
|
|
112
|
+
queryBuilderState
|
|
113
|
+
.changeExecutionId(option)
|
|
114
|
+
.catch(applicationStore.alertUnhandledError);
|
|
115
|
+
}}
|
|
116
|
+
value={queryBuilderState.selectedExecutionIdOption}
|
|
117
|
+
formatOptionLabel={(option: ExecutionIdOption) => (
|
|
118
|
+
<div className="query-builder__setup__config-group__item__selector__option">
|
|
119
|
+
<span>{option.label}</span>
|
|
120
|
+
<span className="query-builder__setup__config-group__item__selector__option__tag">
|
|
121
|
+
{option.tag}
|
|
122
|
+
</span>
|
|
123
|
+
</div>
|
|
124
|
+
)}
|
|
121
125
|
darkMode={
|
|
122
126
|
!applicationStore.layoutService
|
|
123
127
|
.TEMPORARY__isLightColorThemeEnabled
|
|
@@ -125,42 +129,16 @@ export const DataProductQueryBuilderSetupFormContent = observer(
|
|
|
125
129
|
/>
|
|
126
130
|
</div>
|
|
127
131
|
)}
|
|
128
|
-
{
|
|
132
|
+
{!queryBuilderState.isLakehouseMode && (
|
|
129
133
|
<div className="query-builder__setup__config-group__item">
|
|
130
|
-
<
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
Access Point Group
|
|
136
|
-
</label>
|
|
137
|
-
<CustomSelectorInput
|
|
138
|
-
inputId="query-builder__setup__access-point-group-selector"
|
|
139
|
-
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
|
140
|
-
placeholder="Choose an access point group..."
|
|
141
|
-
options={queryBuilderState.modelAccessPointGroupOptions}
|
|
142
|
-
disabled={
|
|
143
|
-
queryBuilderState.modelAccessPointGroupOptions.length < 1
|
|
144
|
-
}
|
|
145
|
-
onChange={(option: { value: ModelAccessPointGroup }) =>
|
|
146
|
-
queryBuilderState.changeModelAccessPointGroupValue(option.value)
|
|
147
|
-
}
|
|
148
|
-
value={queryBuilderState.selectedModelAccessPointGroupOption}
|
|
149
|
-
darkMode={
|
|
150
|
-
!applicationStore.layoutService
|
|
151
|
-
.TEMPORARY__isLightColorThemeEnabled
|
|
152
|
-
}
|
|
134
|
+
<QueryBuilderClassSelector
|
|
135
|
+
queryBuilderState={queryBuilderState}
|
|
136
|
+
classes={queryBuilderState.usableClasses}
|
|
137
|
+
onClassChange={queryBuilderState.onClassChange}
|
|
138
|
+
noMatchMessage="No compatible entity found for specified execution context"
|
|
153
139
|
/>
|
|
154
140
|
</div>
|
|
155
141
|
)}
|
|
156
|
-
<div className="query-builder__setup__config-group__item">
|
|
157
|
-
<QueryBuilderClassSelector
|
|
158
|
-
queryBuilderState={queryBuilderState}
|
|
159
|
-
classes={queryBuilderState.usableClasses}
|
|
160
|
-
onClassChange={queryBuilderState.onClassChange}
|
|
161
|
-
noMatchMessage="No compatible entity found for specified execution context"
|
|
162
|
-
/>
|
|
163
|
-
</div>
|
|
164
142
|
</>
|
|
165
143
|
);
|
|
166
144
|
},
|
|
@@ -173,23 +151,23 @@ const DataProductQueryBuilderSetupPanelContent = observer(
|
|
|
173
151
|
const executionState = queryBuilderState.executionState;
|
|
174
152
|
|
|
175
153
|
// runtime options (only for model access point group)
|
|
154
|
+
const runtimeRequired =
|
|
155
|
+
executionState instanceof ModelAccessPointDataProductExecutionState ||
|
|
156
|
+
executionState instanceof LakehouseDataProductExecutionState;
|
|
176
157
|
const showRuntimeSelector =
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
? executionState.compatibleRuntimes.map(buildElementOption)
|
|
182
|
-
: [];
|
|
158
|
+
runtimeRequired && executionState.showRuntimeOptions;
|
|
159
|
+
const runtimeOptions = runtimeRequired
|
|
160
|
+
? executionState.compatibleRuntimes.map(buildElementOption)
|
|
161
|
+
: [];
|
|
183
162
|
const selectedRuntimeOption =
|
|
184
|
-
|
|
185
|
-
executionState.selectedRuntime
|
|
163
|
+
runtimeRequired && executionState.selectedRuntime
|
|
186
164
|
? buildElementOption(executionState.selectedRuntime)
|
|
187
165
|
: null;
|
|
188
166
|
|
|
189
167
|
const onRuntimeOptionChange = (
|
|
190
168
|
option: PackageableElementOption<PackageableRuntime>,
|
|
191
169
|
): void => {
|
|
192
|
-
if (
|
|
170
|
+
if (runtimeRequired) {
|
|
193
171
|
if (option.value === executionState.selectedRuntime) {
|
|
194
172
|
return;
|
|
195
173
|
}
|
|
@@ -127,6 +127,13 @@ export enum QUERY_BUILDER_SUPPORTED_FUNCTIONS {
|
|
|
127
127
|
RELATION_SORT = 'meta::pure::functions::relation::sort',
|
|
128
128
|
RELATION_SLICE = 'meta::pure::functions::relation::slice',
|
|
129
129
|
RELATION_GROUP_BY = 'meta::pure::functions::relation::groupBy',
|
|
130
|
+
RELATION_EXTEND = 'meta::pure::functions::relation::extend',
|
|
131
|
+
RELATION_OVER = 'meta::pure::functions::relation::over',
|
|
132
|
+
RELATION_RANK = 'meta::pure::functions::relation::rank',
|
|
133
|
+
RELATION_DENSE_RANK = 'meta::pure::functions::relation::denseRank',
|
|
134
|
+
RELATION_ROW_NUMBER = 'meta::pure::functions::relation::rowNumber',
|
|
135
|
+
RELATION_PERCENT_RANK = 'meta::pure::functions::relation::percentRank',
|
|
136
|
+
|
|
130
137
|
// filter
|
|
131
138
|
CONTAINS = 'meta::pure::functions::string::contains',
|
|
132
139
|
ENDS_WITH = 'meta::pure::functions::string::endsWith',
|
|
@@ -26,6 +26,8 @@ import {
|
|
|
26
26
|
V1_buildSubTypePropertyExpressionTypeInference,
|
|
27
27
|
V1_buildWatermarkFunctionExpression,
|
|
28
28
|
V1_buildGroupByFunctionExpression,
|
|
29
|
+
V1_buildOverFunctionExpression,
|
|
30
|
+
V1_buildExtendFunctionExpression,
|
|
29
31
|
} from './v1/V1_QueryValueSpecificationBuilderHelper.js';
|
|
30
32
|
import {
|
|
31
33
|
type V1_GraphBuilderContext,
|
|
@@ -237,6 +239,32 @@ export class QueryBuilder_PureProtocolProcessorPlugin extends PureProtocolProces
|
|
|
237
239
|
new GenericType(PrimitiveType.DATE),
|
|
238
240
|
);
|
|
239
241
|
return expression;
|
|
242
|
+
} else if (
|
|
243
|
+
matchFunctionName(
|
|
244
|
+
functionName,
|
|
245
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_EXTEND,
|
|
246
|
+
)
|
|
247
|
+
) {
|
|
248
|
+
return V1_buildExtendFunctionExpression(
|
|
249
|
+
functionName,
|
|
250
|
+
parameters,
|
|
251
|
+
openVariables,
|
|
252
|
+
compileContext,
|
|
253
|
+
processingContext,
|
|
254
|
+
);
|
|
255
|
+
} else if (
|
|
256
|
+
matchFunctionName(
|
|
257
|
+
functionName,
|
|
258
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.RELATION_OVER,
|
|
259
|
+
)
|
|
260
|
+
) {
|
|
261
|
+
return V1_buildOverFunctionExpression(
|
|
262
|
+
functionName,
|
|
263
|
+
parameters,
|
|
264
|
+
openVariables,
|
|
265
|
+
compileContext,
|
|
266
|
+
processingContext,
|
|
267
|
+
);
|
|
240
268
|
} else if (
|
|
241
269
|
matchFunctionName(
|
|
242
270
|
functionName,
|