@finos/legend-application-query 5.2.6 → 5.2.7
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 +22 -11
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.js +12 -7
- package/lib/components/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/QueryBuilderSetupPanel.js +1 -1
- package/lib/components/QueryBuilderSetupPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts +1 -2
- package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/explorer/QueryBuilderExplorerPanel.js +14 -16
- package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/explorer/QueryBuilderPropertySearchPanel.js +2 -2
- package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js +22 -105
- package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts +1 -2
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js +8 -10
- 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 +23 -17
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderProjectionPanel.d.ts +2 -2
- package/lib/components/fetch-structure/QueryBuilderProjectionPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js +15 -12
- package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts +2 -2
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +23 -28
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +7 -7
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/shared/QueryBuilderPanelIssueCountBadge.d.ts.map +1 -1
- package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js +1 -1
- package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js.map +1 -1
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +5 -3
- package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +7 -7
- package/lib/stores/QueryBuilderPreviewDataHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPreviewDataHelper.js +17 -14
- package/lib/stores/QueryBuilderPreviewDataHelper.js.map +1 -1
- package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPropertyEditorState.js +34 -24
- package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +1 -2
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +17 -26
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderStateBuilder.d.ts +124 -0
- package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -0
- package/lib/stores/QueryBuilderStateBuilder.js +310 -0
- package/lib/stores/QueryBuilderStateBuilder.js.map +1 -0
- package/lib/stores/{QueryBuilderTestUtils.d.ts → QueryBuilderStateTestUtils.d.ts} +2 -2
- package/lib/stores/QueryBuilderStateTestUtils.d.ts.map +1 -0
- package/lib/stores/{QueryBuilderTestUtils.js → QueryBuilderStateTestUtils.js} +2 -2
- package/lib/stores/QueryBuilderStateTestUtils.js.map +1 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderTypeaheadHelper.js +14 -12
- package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts +3 -11
- package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js +10 -319
- package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts +27 -0
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +1 -0
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +153 -0
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -0
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +37 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationHelper.js +79 -2
- package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.d.ts +12 -11
- package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js +53 -20
- package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.d.ts +1 -1
- package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.d.ts.map +1 -1
- package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.js +3 -1
- package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.js.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +17 -0
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +10 -0
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts +3 -20
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js +31 -73
- package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts +17 -4
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +110 -21
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.d.ts +20 -0
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js +62 -0
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts +2 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js +3 -8
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.d.ts +9 -2
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.js +28 -5
- package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js +2 -2
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts +10 -2
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js +102 -39
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.d.ts +25 -0
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.js +186 -0
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts +9 -4
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js +129 -13
- package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.d.ts +20 -0
- package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.js +96 -0
- package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js +1 -1
- package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/{QueryBuilderPostFilterValueSpecificationProcessor.d.ts → QueryBuilderPostFilterStateBuilder.d.ts} +4 -3
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.d.ts.map +1 -0
- package/lib/stores/fetch-structure/projection/post-filter/{QueryBuilderPostFilterValueSpecificationProcessor.js → QueryBuilderPostFilterStateBuilder.js} +30 -21
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -0
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js +1 -4
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +1 -1
- package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts +19 -0
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.d.ts.map +1 -0
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js +74 -0
- package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -0
- package/lib/stores/filter/{QueryBuilderValueSpecificationBuilder.d.ts → QueryBuilderFilterValueSpecificationBuilder.d.ts} +1 -1
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.d.ts.map +1 -0
- package/lib/stores/filter/{QueryBuilderValueSpecificationBuilder.js → QueryBuilderFilterValueSpecificationBuilder.js} +1 -1
- package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js.map +1 -0
- package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.d.ts.map +1 -1
- package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.js +5 -5
- package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.js.map +1 -1
- package/package.json +14 -14
- package/src/components/QueryBuilder.tsx +47 -28
- package/src/components/QueryBuilderResultPanel.tsx +21 -14
- package/src/components/QueryBuilderSetupPanel.tsx +1 -1
- package/src/components/explorer/QueryBuilderExplorerPanel.tsx +23 -38
- package/src/components/explorer/QueryBuilderPropertySearchPanel.tsx +2 -2
- package/src/components/fetch-structure/QueryBuilderFetchStructurePanel.tsx +41 -175
- package/src/components/fetch-structure/QueryBuilderGraphFetchTreePanel.tsx +9 -12
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +62 -28
- package/src/components/fetch-structure/QueryBuilderProjectionPanel.tsx +74 -48
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +33 -41
- package/src/components/filter/QueryBuilderFilterPanel.tsx +7 -7
- package/src/components/shared/QueryBuilderPanelIssueCountBadge.tsx +3 -1
- package/src/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +5 -8
- package/src/stores/QueryBuilderPreviewDataHelper.ts +27 -18
- package/src/stores/QueryBuilderPropertyEditorState.ts +40 -31
- package/src/stores/QueryBuilderState.ts +26 -32
- package/src/stores/QueryBuilderStateBuilder.ts +584 -0
- package/src/stores/{QueryBuilderTestUtils.ts → QueryBuilderStateTestUtils.ts} +1 -1
- package/src/stores/QueryBuilderTypeaheadHelper.ts +23 -16
- package/src/stores/QueryBuilderValueSpecificationBuilder.ts +24 -584
- package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +248 -0
- package/src/stores/QueryBuilderValueSpecificationHelper.ts +114 -0
- package/src/stores/explorer/QueryBuilderExplorerState.ts +73 -33
- package/src/stores/explorer/QueryBuilderPropertySearchPanelState.ts +3 -1
- package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +33 -2
- package/src/stores/fetch-structure/QueryBuilderFetchStructureState.ts +53 -118
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +166 -26
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.ts +131 -0
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts +10 -19
- package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.ts +68 -4
- package/src/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.ts +2 -2
- package/src/stores/fetch-structure/projection/QueryBuilderProjectionState.ts +172 -67
- package/src/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.ts +426 -0
- package/src/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +266 -21
- package/src/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationStateBuilder.ts +228 -0
- package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/{QueryBuilderPostFilterValueSpecificationProcessor.ts → QueryBuilderPostFilterStateBuilder.ts} +68 -48
- package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.ts +1 -11
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +1 -1
- package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +1 -1
- package/src/stores/filter/QueryBuilderFilterStateBuilder.ts +155 -0
- package/src/stores/filter/{QueryBuilderValueSpecificationBuilder.ts → QueryBuilderFilterValueSpecificationBuilder.ts} +0 -0
- package/src/stores/filter/operators/QueryBuilderFilterOperatorHelper.ts +5 -5
- package/tsconfig.json +10 -5
- package/tsconfig.package.json +1 -1
- package/lib/stores/QueryBuilderTestUtils.d.ts.map +0 -1
- package/lib/stores/QueryBuilderTestUtils.js.map +0 -1
- package/lib/stores/QueryBuilderValueSpecificationProcessor.d.ts +0 -56
- package/lib/stores/QueryBuilderValueSpecificationProcessor.d.ts.map +0 -1
- package/lib/stores/QueryBuilderValueSpecificationProcessor.js +0 -548
- package/lib/stores/QueryBuilderValueSpecificationProcessor.js.map +0 -1
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.d.ts.map +0 -1
- package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.js.map +0 -1
- package/lib/stores/filter/QueryBuilderValueSpecificationBuilder.d.ts.map +0 -1
- package/lib/stores/filter/QueryBuilderValueSpecificationBuilder.js.map +0 -1
- package/src/stores/QueryBuilderValueSpecificationProcessor.ts +0 -1254
package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.ts
CHANGED
@@ -25,12 +25,15 @@ import {
|
|
25
25
|
TYPICAL_MULTIPLICITY_TYPE,
|
26
26
|
type ValueSpecification,
|
27
27
|
type LambdaFunction,
|
28
|
+
RootGraphFetchTreeInstanceValue,
|
28
29
|
} from '@finos/legend-graph';
|
29
|
-
import { guaranteeType } from '@finos/legend-shared';
|
30
|
+
import { guaranteeNonNullable, guaranteeType } from '@finos/legend-shared';
|
30
31
|
import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../QueryBuilder_Const.js';
|
31
32
|
import type { QueryBuilderState } from '../../QueryBuilderState.js';
|
33
|
+
import type { QueryBuilderGraphFetchTreeState } from './QueryBuilderGraphFetchTreeState.js';
|
34
|
+
import { isGraphFetchTreeDataEmpty } from './QueryBuilderGraphFetchTreeUtil.js';
|
32
35
|
|
33
|
-
|
36
|
+
const appendTakeLimit = (
|
34
37
|
queryBuilderState: QueryBuilderState,
|
35
38
|
lambda: LambdaFunction,
|
36
39
|
previewLimit?: number | undefined,
|
@@ -67,8 +70,8 @@ export const appendTakeLimit = (
|
|
67
70
|
multiplicityOne,
|
68
71
|
);
|
69
72
|
|
70
|
-
// NOTE: `take()` does not work on `graphFetch()` or `serialize()` so we
|
71
|
-
//
|
73
|
+
// NOTE: `take()` does not work on `graphFetch()` or `serialize()` so we need to
|
74
|
+
// put it next to `all()`
|
72
75
|
const serializeFunction = func;
|
73
76
|
const graphFetchFunc = guaranteeType(
|
74
77
|
serializeFunction.parametersValues[0],
|
@@ -88,3 +91,64 @@ export const appendTakeLimit = (
|
|
88
91
|
}
|
89
92
|
return lambda;
|
90
93
|
};
|
94
|
+
|
95
|
+
export const appendGraphFetch = (
|
96
|
+
graphFetchTreeState: QueryBuilderGraphFetchTreeState,
|
97
|
+
lambdaFunction: LambdaFunction,
|
98
|
+
options?: {
|
99
|
+
/**
|
100
|
+
* Set queryBuilderState to `true` when we construct query for execution within the app.
|
101
|
+
* queryBuilderState will make the lambda function building process overrides several query values, such as the row limit.
|
102
|
+
*/
|
103
|
+
isBuildingExecutionQuery?: boolean | undefined;
|
104
|
+
keepSourceInformation?: boolean | undefined;
|
105
|
+
},
|
106
|
+
): void => {
|
107
|
+
const queryBuilderState = graphFetchTreeState.queryBuilderState;
|
108
|
+
const precedingExpression = guaranteeNonNullable(
|
109
|
+
lambdaFunction.expressionSequence[0],
|
110
|
+
`Can't build graph-fetch tree expression: preceding expression is not defined`,
|
111
|
+
);
|
112
|
+
const multiplicityOne =
|
113
|
+
queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
|
114
|
+
TYPICAL_MULTIPLICITY_TYPE.ONE,
|
115
|
+
);
|
116
|
+
|
117
|
+
// build graph-fetch tree
|
118
|
+
if (
|
119
|
+
graphFetchTreeState.treeData &&
|
120
|
+
!isGraphFetchTreeDataEmpty(graphFetchTreeState.treeData)
|
121
|
+
) {
|
122
|
+
const graphFetchInstance = new RootGraphFetchTreeInstanceValue(
|
123
|
+
multiplicityOne,
|
124
|
+
);
|
125
|
+
graphFetchInstance.values = [graphFetchTreeState.treeData.tree];
|
126
|
+
const serializeFunction = new SimpleFunctionExpression(
|
127
|
+
extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.SERIALIZE),
|
128
|
+
multiplicityOne,
|
129
|
+
);
|
130
|
+
const graphFetchFunc = new SimpleFunctionExpression(
|
131
|
+
graphFetchTreeState.isChecked
|
132
|
+
? extractElementNameFromPath(
|
133
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH_CHECKED,
|
134
|
+
)
|
135
|
+
: extractElementNameFromPath(
|
136
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH,
|
137
|
+
),
|
138
|
+
multiplicityOne,
|
139
|
+
);
|
140
|
+
|
141
|
+
graphFetchFunc.parametersValues = [precedingExpression, graphFetchInstance];
|
142
|
+
serializeFunction.parametersValues = [graphFetchFunc, graphFetchInstance];
|
143
|
+
lambdaFunction.expressionSequence[0] = serializeFunction;
|
144
|
+
}
|
145
|
+
|
146
|
+
// build result set modifier: i.e. preview limit
|
147
|
+
if (options?.isBuildingExecutionQuery) {
|
148
|
+
appendTakeLimit(
|
149
|
+
queryBuilderState,
|
150
|
+
lambdaFunction,
|
151
|
+
queryBuilderState.resultState.previewLimit,
|
152
|
+
);
|
153
|
+
}
|
154
|
+
};
|
@@ -131,8 +131,8 @@ export class QueryBuilderSimpleProjectionColumnState extends QueryBuilderProject
|
|
131
131
|
.nonNullableTreeData,
|
132
132
|
node,
|
133
133
|
this.projectionState.queryBuilderState.graphManagerState.graph,
|
134
|
-
this.projectionState.queryBuilderState.explorerState
|
135
|
-
.
|
134
|
+
this.projectionState.queryBuilderState.explorerState.propertySearchState
|
135
|
+
.allMappedPropertyNodes,
|
136
136
|
),
|
137
137
|
);
|
138
138
|
this.columnName = getPropertyChainName(
|
@@ -42,10 +42,13 @@ import {
|
|
42
42
|
LAMBDA_PIPE,
|
43
43
|
RawLambda,
|
44
44
|
isStubbed_RawLambda,
|
45
|
+
Class,
|
46
|
+
type LambdaFunction,
|
47
|
+
type ValueSpecification,
|
45
48
|
AbstractPropertyExpression,
|
46
49
|
matchFunctionName,
|
47
50
|
SimpleFunctionExpression,
|
48
|
-
|
51
|
+
getAllSuperclasses,
|
49
52
|
} from '@finos/legend-graph';
|
50
53
|
import {
|
51
54
|
DEFAULT_LAMBDA_VARIABLE_NAME,
|
@@ -54,7 +57,10 @@ import {
|
|
54
57
|
} from '../../../QueryBuilder_Const.js';
|
55
58
|
import { QueryBuilderAggregationState } from './aggregation/QueryBuilderAggregationState.js';
|
56
59
|
import { buildGenericLambdaFunctionInstanceValue } from '../../QueryBuilderValueSpecificationHelper.js';
|
57
|
-
import {
|
60
|
+
import {
|
61
|
+
FETCH_STRUCTURE_IMPLEMENTATION,
|
62
|
+
QueryBuilderFetchStructureImplementationState,
|
63
|
+
} from '../QueryBuilderFetchStructureImplementationState.js';
|
58
64
|
import { QueryResultSetModifierState } from './QueryResultSetModifierState.js';
|
59
65
|
import { QueryBuilderPostFilterState } from './post-filter/QueryBuilderPostFilterState.js';
|
60
66
|
import type { QueryBuilderPostFilterOperator } from './post-filter/QueryBuilderPostFilterOperator.js';
|
@@ -68,9 +74,17 @@ import {
|
|
68
74
|
} from './QueryBuilderProjectionColumnState.js';
|
69
75
|
import type { QueryBuilderFetchStructureState } from '../QueryBuilderFetchStructureState.js';
|
70
76
|
import {
|
71
|
-
|
72
|
-
|
77
|
+
buildPropertyExpressionFromExplorerTreeNodeData,
|
78
|
+
generateExplorerTreePropertyNodeID,
|
79
|
+
generateExplorerTreeSubtypeNodeID,
|
80
|
+
type QueryBuilderExplorerTreePropertyNodeData,
|
73
81
|
} from '../../explorer/QueryBuilderExplorerState.js';
|
82
|
+
import {
|
83
|
+
ActionAlertActionType,
|
84
|
+
ActionAlertType,
|
85
|
+
} from '@finos/legend-application';
|
86
|
+
import type { LambdaFunctionBuilderOption } from '../../QueryBuilderValueSpecificationBuilderHelper.js';
|
87
|
+
import { appendProjection } from './QueryBuilderProjectionValueSpecificationBuilder.js';
|
74
88
|
|
75
89
|
export class QueryBuilderProjectionState extends QueryBuilderFetchStructureImplementationState {
|
76
90
|
columns: QueryBuilderProjectionColumnState[] = [];
|
@@ -100,7 +114,6 @@ export class QueryBuilderProjectionState extends QueryBuilderFetchStructureImple
|
|
100
114
|
showPostFilterPanel: observable,
|
101
115
|
derivations: computed,
|
102
116
|
hasParserError: computed,
|
103
|
-
validationIssues: computed,
|
104
117
|
addColumn: action,
|
105
118
|
moveColumn: action,
|
106
119
|
replaceColumn: action,
|
@@ -119,6 +132,10 @@ export class QueryBuilderProjectionState extends QueryBuilderFetchStructureImple
|
|
119
132
|
);
|
120
133
|
}
|
121
134
|
|
135
|
+
get type(): string {
|
136
|
+
return FETCH_STRUCTURE_IMPLEMENTATION.PROJECTION;
|
137
|
+
}
|
138
|
+
|
122
139
|
get derivations(): QueryBuilderDerivationProjectionColumnState[] {
|
123
140
|
return this.columns.filter(
|
124
141
|
filterByType(QueryBuilderDerivationProjectionColumnState),
|
@@ -131,6 +148,80 @@ export class QueryBuilderProjectionState extends QueryBuilderFetchStructureImple
|
|
131
148
|
);
|
132
149
|
}
|
133
150
|
|
151
|
+
get usedExplorerTreePropertyNodeIDs(): string[] {
|
152
|
+
let nodeIDs: string[] = [];
|
153
|
+
this.columns.forEach((column) => {
|
154
|
+
if (column instanceof QueryBuilderSimpleProjectionColumnState) {
|
155
|
+
let chunks: (string | Class)[] = [];
|
156
|
+
let currentExpression: ValueSpecification =
|
157
|
+
column.propertyExpressionState.propertyExpression;
|
158
|
+
while (currentExpression instanceof AbstractPropertyExpression) {
|
159
|
+
chunks.push(currentExpression.func.name);
|
160
|
+
currentExpression = guaranteeNonNullable(
|
161
|
+
currentExpression.parametersValues[0],
|
162
|
+
);
|
163
|
+
while (currentExpression instanceof SimpleFunctionExpression) {
|
164
|
+
if (
|
165
|
+
matchFunctionName(
|
166
|
+
currentExpression.functionName,
|
167
|
+
QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE,
|
168
|
+
) &&
|
169
|
+
currentExpression.parametersValues.length >= 1 &&
|
170
|
+
currentExpression.parametersValues[1]?.genericType?.value
|
171
|
+
.rawType instanceof Class
|
172
|
+
) {
|
173
|
+
// flatten subtype casting chain: stop pushing more classes
|
174
|
+
if (!(chunks[chunks.length - 1] instanceof Class)) {
|
175
|
+
chunks.push(
|
176
|
+
currentExpression.parametersValues[1]?.genericType?.value
|
177
|
+
.rawType,
|
178
|
+
);
|
179
|
+
}
|
180
|
+
currentExpression = guaranteeNonNullable(
|
181
|
+
currentExpression.parametersValues[0],
|
182
|
+
);
|
183
|
+
} else {
|
184
|
+
// unknown property expression
|
185
|
+
return;
|
186
|
+
}
|
187
|
+
}
|
188
|
+
}
|
189
|
+
chunks = chunks.reverse();
|
190
|
+
const chunkIDs: string[] = [];
|
191
|
+
const ids: string[] = [];
|
192
|
+
|
193
|
+
for (let i = 0; i < chunks.length; i++) {
|
194
|
+
const currentChunk = guaranteeNonNullable(chunks[i]);
|
195
|
+
const previousID = i > 0 ? guaranteeNonNullable(chunkIDs[i - 1]) : '';
|
196
|
+
if (currentChunk instanceof Class) {
|
197
|
+
getAllSuperclasses(currentChunk)
|
198
|
+
.concat(currentChunk)
|
199
|
+
.forEach((_class) =>
|
200
|
+
ids.push(
|
201
|
+
generateExplorerTreeSubtypeNodeID(previousID, _class.path),
|
202
|
+
),
|
203
|
+
);
|
204
|
+
chunkIDs.push(
|
205
|
+
generateExplorerTreeSubtypeNodeID(previousID, currentChunk.path),
|
206
|
+
);
|
207
|
+
} else {
|
208
|
+
const id = generateExplorerTreePropertyNodeID(
|
209
|
+
previousID,
|
210
|
+
currentChunk,
|
211
|
+
);
|
212
|
+
chunkIDs.push(id);
|
213
|
+
ids.push(id);
|
214
|
+
}
|
215
|
+
}
|
216
|
+
|
217
|
+
nodeIDs = nodeIDs.concat(ids);
|
218
|
+
}
|
219
|
+
});
|
220
|
+
|
221
|
+
// deduplicate
|
222
|
+
return Array.from(new Set(nodeIDs).values());
|
223
|
+
}
|
224
|
+
|
134
225
|
get validationIssues(): string[] | undefined {
|
135
226
|
const hasDuplicatedProjectionColumns = this.columns.some(
|
136
227
|
(column) =>
|
@@ -147,6 +238,17 @@ export class QueryBuilderProjectionState extends QueryBuilderFetchStructureImple
|
|
147
238
|
return undefined;
|
148
239
|
}
|
149
240
|
|
241
|
+
onClassChange(_class: Class | undefined): void {
|
242
|
+
return;
|
243
|
+
}
|
244
|
+
|
245
|
+
appendFetchStructure(
|
246
|
+
lambdaFunction: LambdaFunction,
|
247
|
+
options?: LambdaFunctionBuilderOption,
|
248
|
+
): void {
|
249
|
+
appendProjection(this, lambdaFunction, options);
|
250
|
+
}
|
251
|
+
|
150
252
|
setShowPostFilterPanel(val: boolean): void {
|
151
253
|
this.showPostFilterPanel = val;
|
152
254
|
}
|
@@ -397,68 +499,71 @@ export class QueryBuilderProjectionState extends QueryBuilderFetchStructureImple
|
|
397
499
|
);
|
398
500
|
}
|
399
501
|
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
)
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
.rawType.path,
|
432
|
-
);
|
433
|
-
currentPropertyExpression = guaranteeNonNullable(
|
434
|
-
currentPropertyExpression.parametersValues[0],
|
435
|
-
);
|
436
|
-
}
|
437
|
-
}
|
438
|
-
nodeIds = nodeIds.reverse();
|
439
|
-
if (
|
440
|
-
nodeIds.length &&
|
441
|
-
subClassNames.includes(guaranteeNonNullable(nodeIds[0]))
|
442
|
-
) {
|
443
|
-
nodeIds[0] = getPropertyNodeIdForSubType(
|
444
|
-
'',
|
445
|
-
guaranteeNonNullable(nodeIds[0]),
|
446
|
-
);
|
447
|
-
}
|
448
|
-
for (let i = 1; i < nodeIds.length; i++) {
|
449
|
-
nodeIds[i] = subClassNames.includes(guaranteeNonNullable(nodeIds[i]))
|
450
|
-
? getPropertyNodeIdForSubType(
|
451
|
-
guaranteeNonNullable(nodeIds[i - 1]),
|
452
|
-
guaranteeNonNullable(nodeIds[i]),
|
453
|
-
)
|
454
|
-
: getPropertyNodeId(
|
455
|
-
guaranteeNonNullable(nodeIds[i - 1]),
|
456
|
-
guaranteeNonNullable(nodeIds[i]),
|
457
|
-
);
|
458
|
-
}
|
459
|
-
usedNodeIds = usedNodeIds.concat(nodeIds);
|
460
|
-
}
|
502
|
+
fetchProperty(node: QueryBuilderExplorerTreePropertyNodeData): void {
|
503
|
+
this.addColumn(
|
504
|
+
new QueryBuilderSimpleProjectionColumnState(
|
505
|
+
this,
|
506
|
+
buildPropertyExpressionFromExplorerTreeNodeData(
|
507
|
+
this.queryBuilderState.explorerState.nonNullableTreeData,
|
508
|
+
node,
|
509
|
+
this.queryBuilderState.graphManagerState.graph,
|
510
|
+
this.queryBuilderState.explorerState.propertySearchState
|
511
|
+
.allMappedPropertyNodes,
|
512
|
+
),
|
513
|
+
this.queryBuilderState.explorerState.humanizePropertyName,
|
514
|
+
),
|
515
|
+
);
|
516
|
+
}
|
517
|
+
|
518
|
+
fetchProperties(nodes: QueryBuilderExplorerTreePropertyNodeData[]): void {
|
519
|
+
nodes.forEach((nodeToAdd) => {
|
520
|
+
this.addColumn(
|
521
|
+
new QueryBuilderSimpleProjectionColumnState(
|
522
|
+
this,
|
523
|
+
buildPropertyExpressionFromExplorerTreeNodeData(
|
524
|
+
this.queryBuilderState.explorerState.nonNullableTreeData,
|
525
|
+
nodeToAdd,
|
526
|
+
this.queryBuilderState.graphManagerState.graph,
|
527
|
+
this.queryBuilderState.explorerState.propertySearchState
|
528
|
+
.allMappedPropertyNodes,
|
529
|
+
),
|
530
|
+
this.queryBuilderState.explorerState.humanizePropertyName,
|
531
|
+
),
|
532
|
+
);
|
461
533
|
});
|
462
|
-
|
534
|
+
}
|
535
|
+
|
536
|
+
checkBeforeChangingImplementation(onChange: () => void): void {
|
537
|
+
if (
|
538
|
+
this.columns.length > 0
|
539
|
+
// NOTE: here we could potentially check for the presence of post-filter as well
|
540
|
+
// but we make the assumption that if there is no projection column, there should
|
541
|
+
// not be any post-filter at all
|
542
|
+
) {
|
543
|
+
this.queryBuilderState.applicationStore.setActionAlertInfo({
|
544
|
+
message:
|
545
|
+
this.showPostFilterPanel && this.postFilterState.nodes.size > 0
|
546
|
+
? 'With graph-fetch mode, post filter is not supported. Current projection columns and post filters will be lost when switching to the graph-fetch mode. Do you still want to proceed?'
|
547
|
+
: 'Current projection columns will be lost when switching to the graph-fetch mode. Do you still want to proceed?',
|
548
|
+
type: ActionAlertType.CAUTION,
|
549
|
+
actions: [
|
550
|
+
{
|
551
|
+
label: 'Proceed',
|
552
|
+
type: ActionAlertActionType.PROCEED_WITH_CAUTION,
|
553
|
+
handler:
|
554
|
+
this.queryBuilderState.applicationStore.guardUnhandledError(
|
555
|
+
async () => onChange(),
|
556
|
+
),
|
557
|
+
},
|
558
|
+
{
|
559
|
+
label: 'Cancel',
|
560
|
+
type: ActionAlertActionType.PROCEED,
|
561
|
+
default: true,
|
562
|
+
},
|
563
|
+
],
|
564
|
+
});
|
565
|
+
} else {
|
566
|
+
onChange();
|
567
|
+
}
|
463
568
|
}
|
464
569
|
}
|