@finos/legend-application-query 5.0.2 → 5.2.2
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/application/LegendQueryApplicationConfig.d.ts +19 -1
- package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -1
- package/lib/application/LegendQueryApplicationConfig.js +25 -1
- package/lib/application/LegendQueryApplicationConfig.js.map +1 -1
- package/lib/components/LegendQueryApplication.d.ts.map +1 -1
- package/lib/components/LegendQueryApplication.js +15 -5
- package/lib/components/LegendQueryApplication.js.map +1 -1
- package/lib/components/LegendQueryBaseStoreProvider.d.ts.map +1 -1
- package/lib/components/LegendQueryBaseStoreProvider.js +3 -1
- package/lib/components/LegendQueryBaseStoreProvider.js.map +1 -1
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +3 -1
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderExplorerPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderExplorerPanel.js +7 -34
- package/lib/components/QueryBuilderExplorerPanel.js.map +1 -1
- package/lib/components/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFetchStructurePanel.js +77 -66
- package/lib/components/QueryBuilderFetchStructurePanel.js.map +1 -1
- package/lib/components/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFilterPanel.js +42 -59
- package/lib/components/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderFunctionsExplorerPanel.js +9 -39
- package/lib/components/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
- package/lib/components/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderGraphFetchTreePanel.js +5 -5
- package/lib/components/QueryBuilderGraphFetchTreePanel.js.map +1 -1
- package/lib/components/QueryBuilderLambdaEditor.d.ts +1 -0
- package/lib/components/QueryBuilderLambdaEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderLambdaEditor.js +2 -2
- package/lib/components/QueryBuilderLambdaEditor.js.map +1 -1
- package/lib/components/QueryBuilderMilestoneEditor.js +5 -5
- package/lib/components/QueryBuilderMilestoneEditor.js.map +1 -1
- package/lib/components/QueryBuilderPanelIssueCountBadge.d.ts +20 -0
- package/lib/components/QueryBuilderPanelIssueCountBadge.d.ts.map +1 -0
- package/lib/components/QueryBuilderPanelIssueCountBadge.js +28 -0
- package/lib/components/QueryBuilderPanelIssueCountBadge.js.map +1 -0
- package/lib/components/QueryBuilderParameterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderParameterPanel.js +13 -33
- package/lib/components/QueryBuilderParameterPanel.js.map +1 -1
- package/lib/components/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderPostFilterPanel.js +47 -59
- package/lib/components/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/QueryBuilderProjectionPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderProjectionPanel.js +47 -63
- package/lib/components/QueryBuilderProjectionPanel.js.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertyExpressionEditor.js +11 -11
- package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
- package/lib/components/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderPropertySearchPanel.js +3 -6
- package/lib/components/QueryBuilderPropertySearchPanel.js.map +1 -1
- package/lib/components/QueryBuilderResultModifierPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultModifierPanel.js +3 -1
- package/lib/components/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderResultPanel.js +28 -18
- package/lib/components/QueryBuilderResultPanel.js.map +1 -1
- package/lib/components/QueryBuilderSetupPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderSetupPanel.js +10 -9
- package/lib/components/QueryBuilderSetupPanel.js.map +1 -1
- package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts.map +1 -1
- package/lib/components/QueryBuilderUnsupportedQueryEditor.js +4 -2
- package/lib/components/QueryBuilderUnsupportedQueryEditor.js.map +1 -1
- package/lib/components/QueryEditor.d.ts.map +1 -1
- package/lib/components/QueryEditor.js +16 -4
- package/lib/components/QueryEditor.js.map +1 -1
- package/lib/components/QueryEditorComponentTestUtils.d.ts +2 -0
- package/lib/components/QueryEditorComponentTestUtils.d.ts.map +1 -1
- package/lib/components/QueryEditorComponentTestUtils.js +3 -2
- package/lib/components/QueryEditorComponentTestUtils.js.map +1 -1
- package/lib/components/QueryEditorStoreProvider.d.ts.map +1 -1
- package/lib/components/QueryEditorStoreProvider.js +7 -3
- package/lib/components/QueryEditorStoreProvider.js.map +1 -1
- package/lib/components/QuerySetupStoreProvider.d.ts.map +1 -1
- package/lib/components/QuerySetupStoreProvider.js +3 -1
- package/lib/components/QuerySetupStoreProvider.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/package.json +11 -9
- package/lib/stores/LegendQueryBaseStore.d.ts +4 -2
- package/lib/stores/LegendQueryBaseStore.d.ts.map +1 -1
- package/lib/stores/LegendQueryBaseStore.js +5 -1
- package/lib/stores/LegendQueryBaseStore.js.map +1 -1
- package/lib/stores/QueryBuilderExplorerState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderExplorerState.js +5 -0
- package/lib/stores/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/QueryBuilderFetchStructureState.d.ts +8 -1
- package/lib/stores/QueryBuilderFetchStructureState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderFetchStructureState.js +10 -2
- package/lib/stores/QueryBuilderFetchStructureState.js.map +1 -1
- package/lib/stores/QueryBuilderFilterState.d.ts +8 -9
- package/lib/stores/QueryBuilderFilterState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderFilterState.js +34 -13
- package/lib/stores/QueryBuilderFilterState.js.map +1 -1
- package/lib/stores/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderGraphFetchTreeState.js +6 -3
- package/lib/stores/QueryBuilderGraphFetchTreeState.js.map +1 -1
- package/lib/stores/QueryBuilderLambdaProcessor.d.ts.map +1 -1
- package/lib/stores/QueryBuilderLambdaProcessor.js +2 -0
- package/lib/stores/QueryBuilderLambdaProcessor.js.map +1 -1
- package/lib/stores/QueryBuilderOperatorLoader.d.ts +47 -0
- package/lib/stores/QueryBuilderOperatorLoader.d.ts.map +1 -0
- package/lib/stores/QueryBuilderOperatorLoader.js +94 -0
- package/lib/stores/QueryBuilderOperatorLoader.js.map +1 -0
- package/lib/stores/QueryBuilderPostFilterState.d.ts +9 -6
- package/lib/stores/QueryBuilderPostFilterState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPostFilterState.js +31 -7
- package/lib/stores/QueryBuilderPostFilterState.js.map +1 -1
- package/lib/stores/QueryBuilderPreviewDataHelper.d.ts +4 -3
- package/lib/stores/QueryBuilderPreviewDataHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderPreviewDataHelper.js +77 -97
- package/lib/stores/QueryBuilderPreviewDataHelper.js.map +1 -1
- package/lib/stores/QueryBuilderProjectionState.d.ts +4 -8
- package/lib/stores/QueryBuilderProjectionState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderProjectionState.js +17 -44
- package/lib/stores/QueryBuilderProjectionState.js.map +1 -1
- package/lib/stores/QueryBuilderSetupState.js +1 -1
- package/lib/stores/QueryBuilderSetupState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +7 -1
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +17 -60
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilderTestUtils.d.ts +24 -0
- package/lib/stores/QueryBuilderTestUtils.d.ts.map +1 -0
- package/lib/stores/QueryBuilderTestUtils.js +49 -0
- package/lib/stores/QueryBuilderTestUtils.js.map +1 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.d.ts +24 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.d.ts.map +1 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.js +89 -0
- package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -0
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +1 -1
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +7 -7
- package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -1
- package/lib/stores/QueryEditorStore.d.ts +6 -4
- package/lib/stores/QueryEditorStore.d.ts.map +1 -1
- package/lib/stores/QueryEditorStore.js +23 -10
- package/lib/stores/QueryEditorStore.js.map +1 -1
- package/lib/stores/QueryEditorStoreTestUtils.d.ts.map +1 -1
- package/lib/stores/QueryEditorStoreTestUtils.js +1 -0
- package/lib/stores/QueryEditorStoreTestUtils.js.map +1 -1
- package/lib/stores/QueryFunctionsExplorerState.d.ts +2 -6
- package/lib/stores/QueryFunctionsExplorerState.d.ts.map +1 -1
- package/lib/stores/QueryFunctionsExplorerState.js +2 -11
- package/lib/stores/QueryFunctionsExplorerState.js.map +1 -1
- package/lib/stores/QueryParametersState.d.ts +1 -3
- package/lib/stores/QueryParametersState.d.ts.map +1 -1
- package/lib/stores/QueryParametersState.js +1 -4
- package/lib/stores/QueryParametersState.js.map +1 -1
- package/lib/stores/QuerySetupStore.d.ts +3 -1
- package/lib/stores/QuerySetupStore.d.ts.map +1 -1
- package/lib/stores/QuerySetupStore.js +3 -1
- package/lib/stores/QuerySetupStore.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js +4 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js +4 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js +4 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js +4 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js +4 -1
- package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js +4 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js +4 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js +4 -1
- package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
- package/package.json +18 -16
- package/src/application/LegendQueryApplicationConfig.ts +41 -2
- package/src/components/LegendQueryApplication.tsx +27 -10
- package/src/components/LegendQueryBaseStoreProvider.tsx +3 -0
- package/src/components/QueryBuilder.tsx +13 -2
- package/src/components/QueryBuilderExplorerPanel.tsx +17 -56
- package/src/components/QueryBuilderFetchStructurePanel.tsx +93 -77
- package/src/components/QueryBuilderFilterPanel.tsx +205 -219
- package/src/components/QueryBuilderFunctionsExplorerPanel.tsx +24 -68
- package/src/components/QueryBuilderGraphFetchTreePanel.tsx +34 -25
- package/src/components/QueryBuilderLambdaEditor.tsx +3 -0
- package/src/components/QueryBuilderMilestoneEditor.tsx +34 -34
- package/src/components/QueryBuilderPanelIssueCountBadge.tsx +38 -0
- package/src/components/QueryBuilderParameterPanel.tsx +23 -55
- package/src/components/QueryBuilderPostFilterPanel.tsx +223 -230
- package/src/components/QueryBuilderProjectionPanel.tsx +127 -154
- package/src/components/QueryBuilderPropertyExpressionEditor.tsx +61 -57
- package/src/components/QueryBuilderPropertySearchPanel.tsx +8 -9
- package/src/components/QueryBuilderResultModifierPanel.tsx +4 -2
- package/src/components/QueryBuilderResultPanel.tsx +75 -50
- package/src/components/QueryBuilderSetupPanel.tsx +13 -12
- package/src/components/QueryBuilderUnsupportedQueryEditor.tsx +4 -2
- package/src/components/QueryEditor.tsx +39 -1
- package/src/components/QueryEditorComponentTestUtils.tsx +15 -5
- package/src/components/QueryEditorStoreProvider.tsx +7 -0
- package/src/components/QuerySetupStoreProvider.tsx +3 -0
- package/src/stores/LegendQueryBaseStore.ts +14 -1
- package/src/stores/QueryBuilderExplorerState.ts +5 -0
- package/src/stores/QueryBuilderFetchStructureState.ts +18 -2
- package/src/stores/QueryBuilderFilterState.ts +50 -12
- package/src/stores/QueryBuilderGraphFetchTreeState.ts +14 -8
- package/src/stores/QueryBuilderLambdaProcessor.ts +8 -0
- package/src/stores/QueryBuilderOperatorLoader.ts +133 -0
- package/src/stores/QueryBuilderPostFilterState.ts +47 -8
- package/src/stores/QueryBuilderPreviewDataHelper.ts +122 -217
- package/src/stores/QueryBuilderProjectionState.ts +30 -58
- package/src/stores/QueryBuilderSetupState.ts +1 -1
- package/src/stores/QueryBuilderState.ts +33 -96
- package/src/stores/QueryBuilderTestUtils.ts +93 -0
- package/src/stores/QueryBuilderTypeaheadHelper.ts +149 -0
- package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +9 -7
- package/src/stores/QueryEditorStore.ts +29 -6
- package/src/stores/QueryEditorStoreTestUtils.ts +1 -0
- package/src/stores/QueryFunctionsExplorerState.ts +1 -11
- package/src/stores/QueryParametersState.ts +1 -3
- package/src/stores/QuerySetupStore.ts +4 -0
- package/src/stores/filterOperators/QueryBuilderFilterOperator_Equal.ts +8 -1
- package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.ts +8 -1
- package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.ts +8 -1
- package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThan.ts +8 -1
- package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts +8 -1
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts +8 -1
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts +8 -1
- package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts +8 -1
- package/tsconfig.json +4 -0
@@ -62,76 +62,33 @@ import {
|
|
62
62
|
buildLambdaVariableExpressions,
|
63
63
|
buildRawLambdaFromLambdaFunction,
|
64
64
|
} from '@finos/legend-graph';
|
65
|
-
import {
|
66
|
-
QueryBuilderFilterOperator_Equal,
|
67
|
-
QueryBuilderFilterOperator_NotEqual,
|
68
|
-
} from './filterOperators/QueryBuilderFilterOperator_Equal.js';
|
69
|
-
import { QueryBuilderFilterOperator_GreaterThan } from './filterOperators/QueryBuilderFilterOperator_GreaterThan.js';
|
70
|
-
import {
|
71
|
-
QueryBuilderFilterOperator_NotStartWith,
|
72
|
-
QueryBuilderFilterOperator_StartWith,
|
73
|
-
} from './filterOperators/QueryBuilderFilterOperator_StartWith.js';
|
74
|
-
import { QueryBuilderFilterOperator_GreaterThanEqual } from './filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js';
|
75
|
-
import { QueryBuilderFilterOperator_LessThanEqual } from './filterOperators/QueryBuilderFilterOperator_LessThanEqual.js';
|
76
|
-
import { QueryBuilderFilterOperator_LessThan } from './filterOperators/QueryBuilderFilterOperator_LessThan.js';
|
77
|
-
import {
|
78
|
-
QueryBuilderFilterOperator_EndWith,
|
79
|
-
QueryBuilderFilterOperator_NotEndWith,
|
80
|
-
} from './filterOperators/QueryBuilderFilterOperator_EndWith.js';
|
81
|
-
import {
|
82
|
-
QueryBuilderFilterOperator_Contain,
|
83
|
-
QueryBuilderFilterOperator_NotContain,
|
84
|
-
} from './filterOperators/QueryBuilderFilterOperator_Contain.js';
|
85
|
-
import {
|
86
|
-
QueryBuilderFilterOperator_IsEmpty,
|
87
|
-
QueryBuilderFilterOperator_IsNotEmpty,
|
88
|
-
} from './filterOperators/QueryBuilderFilterOperator_IsEmpty.js';
|
89
|
-
import {
|
90
|
-
QueryBuilderFilterOperator_In,
|
91
|
-
QueryBuilderFilterOperator_NotIn,
|
92
|
-
} from './filterOperators/QueryBuilderFilterOperator_In.js';
|
93
65
|
import { buildLambdaFunction } from './QueryBuilderLambdaBuilder.js';
|
94
66
|
import {
|
95
67
|
LambdaParameterState,
|
96
68
|
type GenericLegendApplicationStore,
|
97
69
|
} from '@finos/legend-application';
|
98
70
|
import { QueryBuilderPostFilterState } from './QueryBuilderPostFilterState.js';
|
99
|
-
import {
|
100
|
-
QueryBuilderPostFilterOperator_Equal,
|
101
|
-
QueryBuilderPostFilterOperator_NotEqual,
|
102
|
-
} from './postFilterOperators/QueryBuilderPostFilterOperator_Equal.js';
|
103
|
-
import { QueryBuilderPostFilterOperator_LessThan } from './postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js';
|
104
|
-
import { QueryBuilderPostFilterOperator_LessThanEqual } from './postFilterOperators/QueryBuilderPostFilterOperator_LessThanEqual.js';
|
105
|
-
import { QueryBuilderPostFilterOperator_GreaterThan } from './postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js';
|
106
|
-
import { QueryBuilderPostFilterOperator_GreaterThanEqual } from './postFilterOperators/QueryBuilderPostFilterOperator_GreaterThanEqual.js';
|
107
|
-
import {
|
108
|
-
QueryBuilderPostFilterOperator_NotStartWith,
|
109
|
-
QueryBuilderPostFilterOperator_StartWith,
|
110
|
-
} from './postFilterOperators/QueryBuilderPostFilterOperator_StartWith.js';
|
111
|
-
import {
|
112
|
-
QueryBuilderPostFilterOperator_Contain,
|
113
|
-
QueryBuilderPostFilterOperator_NotContain,
|
114
|
-
} from './postFilterOperators/QueryBuilderPostFilterOperator_Contain.js';
|
115
|
-
import {
|
116
|
-
QueryBuilderPostFilterOperator_EndWith,
|
117
|
-
QueryBuilderPostFilterOperator_NotEndWith,
|
118
|
-
} from './postFilterOperators/QueryBuilderPostFilterOperator_EndWith.js';
|
119
71
|
import type { QueryBuilderPostFilterOperator } from './QueryBuilderPostFilterOperator.js';
|
120
|
-
import {
|
121
|
-
QueryBuilderPostFilterOperator_In,
|
122
|
-
QueryBuilderPostFilterOperator_NotIn,
|
123
|
-
} from './postFilterOperators/QueryBuilderPostFilterOperator_In.js';
|
124
|
-
import {
|
125
|
-
QueryBuilderPostFilterOperator_IsEmpty,
|
126
|
-
QueryBuilderPostFilterOperator_IsNotEmpty,
|
127
|
-
} from './postFilterOperators/QueryBuilderPostFilterOperator_IsEmpty.js';
|
128
72
|
import { QueryFunctionsExplorerState } from './QueryFunctionsExplorerState.js';
|
129
73
|
import { QueryParametersState } from './QueryParametersState.js';
|
74
|
+
import {
|
75
|
+
AGGREGATION_OPERATORS,
|
76
|
+
FILTER_OPERATORS,
|
77
|
+
POST_FILTER_OPERATORS,
|
78
|
+
} from './QueryBuilderOperatorLoader.js';
|
130
79
|
|
131
80
|
export abstract class QueryBuilderMode {
|
132
81
|
abstract get isParametersDisabled(): boolean;
|
133
82
|
|
134
83
|
abstract get isResultPanelHidden(): boolean;
|
84
|
+
|
85
|
+
/**
|
86
|
+
* This flag is for turning on/off dnd from projection panel to filter panel,
|
87
|
+
* and will be leveraged when the concepts of workflows are introduced into query builder.
|
88
|
+
*/
|
89
|
+
get isDnDProjectionToFilterSupported(): boolean {
|
90
|
+
return true;
|
91
|
+
}
|
135
92
|
}
|
136
93
|
|
137
94
|
export class StandardQueryBuilderMode extends QueryBuilderMode {
|
@@ -179,42 +136,8 @@ export class QueryBuilderState {
|
|
179
136
|
queryTextEditorState: QueryTextEditorState;
|
180
137
|
queryUnsupportedState: QueryBuilderUnsupportedState;
|
181
138
|
observableContext: ObserverContext;
|
182
|
-
filterOperators: QueryBuilderFilterOperator[] =
|
183
|
-
|
184
|
-
new QueryBuilderFilterOperator_NotEqual(),
|
185
|
-
new QueryBuilderFilterOperator_LessThan(),
|
186
|
-
new QueryBuilderFilterOperator_LessThanEqual(),
|
187
|
-
new QueryBuilderFilterOperator_GreaterThan(),
|
188
|
-
new QueryBuilderFilterOperator_GreaterThanEqual(),
|
189
|
-
new QueryBuilderFilterOperator_StartWith(),
|
190
|
-
new QueryBuilderFilterOperator_NotStartWith(),
|
191
|
-
new QueryBuilderFilterOperator_Contain(),
|
192
|
-
new QueryBuilderFilterOperator_NotContain(),
|
193
|
-
new QueryBuilderFilterOperator_EndWith(),
|
194
|
-
new QueryBuilderFilterOperator_NotEndWith(),
|
195
|
-
new QueryBuilderFilterOperator_In(),
|
196
|
-
new QueryBuilderFilterOperator_NotIn(),
|
197
|
-
new QueryBuilderFilterOperator_IsEmpty(),
|
198
|
-
new QueryBuilderFilterOperator_IsNotEmpty(),
|
199
|
-
];
|
200
|
-
postFilterOperators: QueryBuilderPostFilterOperator[] = [
|
201
|
-
new QueryBuilderPostFilterOperator_Equal(),
|
202
|
-
new QueryBuilderPostFilterOperator_NotEqual(),
|
203
|
-
new QueryBuilderPostFilterOperator_LessThan(),
|
204
|
-
new QueryBuilderPostFilterOperator_LessThanEqual(),
|
205
|
-
new QueryBuilderPostFilterOperator_GreaterThan(),
|
206
|
-
new QueryBuilderPostFilterOperator_GreaterThanEqual(),
|
207
|
-
new QueryBuilderPostFilterOperator_StartWith(),
|
208
|
-
new QueryBuilderPostFilterOperator_NotStartWith(),
|
209
|
-
new QueryBuilderPostFilterOperator_Contain(),
|
210
|
-
new QueryBuilderPostFilterOperator_NotContain(),
|
211
|
-
new QueryBuilderPostFilterOperator_EndWith(),
|
212
|
-
new QueryBuilderPostFilterOperator_NotEndWith(),
|
213
|
-
new QueryBuilderPostFilterOperator_In(),
|
214
|
-
new QueryBuilderPostFilterOperator_NotIn(),
|
215
|
-
new QueryBuilderPostFilterOperator_IsEmpty(),
|
216
|
-
new QueryBuilderPostFilterOperator_IsNotEmpty(),
|
217
|
-
];
|
139
|
+
filterOperators: QueryBuilderFilterOperator[] = FILTER_OPERATORS;
|
140
|
+
postFilterOperators: QueryBuilderPostFilterOperator[] = POST_FILTER_OPERATORS;
|
218
141
|
isCompiling = false;
|
219
142
|
backdrop = false;
|
220
143
|
showFunctionPanel = false;
|
@@ -267,7 +190,10 @@ export class QueryBuilderState {
|
|
267
190
|
this.explorerState = new QueryBuilderExplorerState(this);
|
268
191
|
this.queryParametersState = new QueryParametersState(this);
|
269
192
|
this.queryFunctionsExplorerState = new QueryFunctionsExplorerState(this);
|
270
|
-
this.fetchStructureState = new QueryBuilderFetchStructureState(
|
193
|
+
this.fetchStructureState = new QueryBuilderFetchStructureState(
|
194
|
+
this,
|
195
|
+
AGGREGATION_OPERATORS,
|
196
|
+
);
|
271
197
|
this.filterState = new QueryBuilderFilterState(this, this.filterOperators);
|
272
198
|
this.postFilterState = new QueryBuilderPostFilterState(
|
273
199
|
this,
|
@@ -338,7 +264,10 @@ export class QueryBuilderState {
|
|
338
264
|
this.explorerState.refreshTreeData();
|
339
265
|
this.queryParametersState = new QueryParametersState(this);
|
340
266
|
this.queryFunctionsExplorerState = new QueryFunctionsExplorerState(this);
|
341
|
-
const fetchStructureState = new QueryBuilderFetchStructureState(
|
267
|
+
const fetchStructureState = new QueryBuilderFetchStructureState(
|
268
|
+
this,
|
269
|
+
this.fetchStructureState.projectionState.aggregationState.operators,
|
270
|
+
);
|
342
271
|
fetchStructureState.setFetchStructureMode(
|
343
272
|
this.fetchStructureState.fetchStructureMode,
|
344
273
|
);
|
@@ -559,7 +488,15 @@ export class QueryBuilderState {
|
|
559
488
|
}
|
560
489
|
}
|
561
490
|
|
562
|
-
|
563
|
-
return this.fetchStructureState.
|
491
|
+
get validationIssues(): string[] | undefined {
|
492
|
+
return this.fetchStructureState.validationIssues;
|
493
|
+
}
|
494
|
+
|
495
|
+
createBareBuilderState(): QueryBuilderState {
|
496
|
+
return new QueryBuilderState(
|
497
|
+
this.applicationStore,
|
498
|
+
this.graphManagerState,
|
499
|
+
this.mode,
|
500
|
+
);
|
564
501
|
}
|
565
502
|
}
|
@@ -0,0 +1,93 @@
|
|
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 { TEST__getTestApplicationStore } from '@finos/legend-application';
|
18
|
+
import {
|
19
|
+
type RawLambda,
|
20
|
+
type RawMappingModelCoverageAnalysisResult,
|
21
|
+
TEST__buildGraphWithEntities,
|
22
|
+
TEST__getTestGraphManagerState,
|
23
|
+
} from '@finos/legend-graph';
|
24
|
+
import type { Entity } from '@finos/legend-storage';
|
25
|
+
import { jest } from '@jest/globals';
|
26
|
+
import { LegendQueryPluginManager } from '../application/LegendQueryPluginManager.js';
|
27
|
+
import { QueryBuilder_GraphManagerPreset } from '../graphManager/QueryBuilder_GraphManagerPreset.js';
|
28
|
+
import {
|
29
|
+
QueryBuilderState,
|
30
|
+
StandardQueryBuilderMode,
|
31
|
+
} from './QueryBuilderState.js';
|
32
|
+
import { TEST__getTestLegendQueryApplicationConfig } from './QueryEditorStoreTestUtils.js';
|
33
|
+
|
34
|
+
export const TEST_setUpQueryBuilderState = async (
|
35
|
+
entities: Entity[],
|
36
|
+
rawLambda?: RawLambda | undefined,
|
37
|
+
executionContext?:
|
38
|
+
| {
|
39
|
+
_class: string;
|
40
|
+
mapping: string;
|
41
|
+
runtime?: string | undefined;
|
42
|
+
}
|
43
|
+
| undefined,
|
44
|
+
rawMappingModelCoverageAnalysisResult?:
|
45
|
+
| RawMappingModelCoverageAnalysisResult
|
46
|
+
| undefined,
|
47
|
+
): Promise<QueryBuilderState> => {
|
48
|
+
const pluginManager = LegendQueryPluginManager.create();
|
49
|
+
pluginManager.usePresets([new QueryBuilder_GraphManagerPreset()]).install();
|
50
|
+
const applicationStore = TEST__getTestApplicationStore(
|
51
|
+
TEST__getTestLegendQueryApplicationConfig(),
|
52
|
+
LegendQueryPluginManager.create(),
|
53
|
+
);
|
54
|
+
const graphManagerState = TEST__getTestGraphManagerState(pluginManager);
|
55
|
+
await TEST__buildGraphWithEntities(graphManagerState, entities);
|
56
|
+
const queryBuilderState = new QueryBuilderState(
|
57
|
+
applicationStore,
|
58
|
+
graphManagerState,
|
59
|
+
new StandardQueryBuilderMode(),
|
60
|
+
);
|
61
|
+
if (rawLambda) {
|
62
|
+
queryBuilderState.buildStateFromRawLambda(rawLambda);
|
63
|
+
}
|
64
|
+
if (executionContext) {
|
65
|
+
const graph = queryBuilderState.graphManagerState.graph;
|
66
|
+
queryBuilderState.querySetupState._class = graph.getClass(
|
67
|
+
executionContext._class,
|
68
|
+
);
|
69
|
+
queryBuilderState.querySetupState.mapping = graph.getMapping(
|
70
|
+
executionContext.mapping,
|
71
|
+
);
|
72
|
+
if (executionContext.runtime) {
|
73
|
+
queryBuilderState.querySetupState.runtimeValue = graph.getRuntime(
|
74
|
+
executionContext.runtime,
|
75
|
+
);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
if (rawMappingModelCoverageAnalysisResult) {
|
79
|
+
jest
|
80
|
+
.spyOn(
|
81
|
+
queryBuilderState.graphManagerState.graphManager,
|
82
|
+
'analyzeMappingModelCoverage',
|
83
|
+
)
|
84
|
+
.mockResolvedValue(
|
85
|
+
queryBuilderState.graphManagerState.graphManager.buildMappingModelCoverageAnalysisResult(
|
86
|
+
rawMappingModelCoverageAnalysisResult,
|
87
|
+
),
|
88
|
+
);
|
89
|
+
|
90
|
+
await queryBuilderState.explorerState.analyzeMappingModelCoverage();
|
91
|
+
}
|
92
|
+
return queryBuilderState;
|
93
|
+
};
|
@@ -0,0 +1,149 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2020-present, Goldman Sachs
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
|
17
|
+
import {
|
18
|
+
type AbstractPropertyExpression,
|
19
|
+
type ExecutionResult,
|
20
|
+
type ValueSpecification,
|
21
|
+
PrimitiveInstanceValue,
|
22
|
+
PRIMITIVE_TYPE,
|
23
|
+
TdsExecutionResult,
|
24
|
+
} from '@finos/legend-graph';
|
25
|
+
import { guaranteeType, isNonNullable, isString } from '@finos/legend-shared';
|
26
|
+
import { QueryBuilderPostFilterOperator_StartWith } from './postFilterOperators/QueryBuilderPostFilterOperator_StartWith.js';
|
27
|
+
import type { QueryBuilderAggregateColumnState } from './QueryBuilderAggregationState.js';
|
28
|
+
import {
|
29
|
+
PostFilterConditionState,
|
30
|
+
QueryBuilderPostFilterTreeConditionNodeData,
|
31
|
+
} from './QueryBuilderPostFilterState.js';
|
32
|
+
import {
|
33
|
+
QueryBuilderProjectionColumnState,
|
34
|
+
QueryBuilderSimpleProjectionColumnState,
|
35
|
+
} from './QueryBuilderProjectionState.js';
|
36
|
+
import type { QueryBuilderState } from './QueryBuilderState.js';
|
37
|
+
|
38
|
+
const TYPEAHEAD_TAKE_LIMIT = 10;
|
39
|
+
const START_LENGTH = 3;
|
40
|
+
|
41
|
+
const createAndSetupQueryBuilderStateForTypeAhead = (
|
42
|
+
queryBuilderState: QueryBuilderState,
|
43
|
+
): QueryBuilderState => {
|
44
|
+
// builderState to build dummy query
|
45
|
+
const builderState = queryBuilderState.createBareBuilderState();
|
46
|
+
// setup
|
47
|
+
builderState.querySetupState = queryBuilderState.querySetupState;
|
48
|
+
// result modifiers
|
49
|
+
builderState.resultSetModifierState.distinct = true;
|
50
|
+
builderState.resultSetModifierState.limit = TYPEAHEAD_TAKE_LIMIT;
|
51
|
+
return builderState;
|
52
|
+
};
|
53
|
+
|
54
|
+
const buildColumnTypeAheadQuery = (
|
55
|
+
builderState: QueryBuilderState,
|
56
|
+
columnState:
|
57
|
+
| QueryBuilderProjectionColumnState
|
58
|
+
| QueryBuilderAggregateColumnState,
|
59
|
+
value: ValueSpecification | undefined,
|
60
|
+
): QueryBuilderState => {
|
61
|
+
// projection column
|
62
|
+
let projectionState;
|
63
|
+
if (columnState instanceof QueryBuilderProjectionColumnState) {
|
64
|
+
projectionState = columnState;
|
65
|
+
} else {
|
66
|
+
projectionState = columnState.projectionColumnState;
|
67
|
+
const aggregationState =
|
68
|
+
builderState.fetchStructureState.projectionState.aggregationState;
|
69
|
+
aggregationState.columns = [columnState];
|
70
|
+
}
|
71
|
+
builderState.fetchStructureState.projectionState.columns = [projectionState];
|
72
|
+
// post filter
|
73
|
+
const postConditionState = new PostFilterConditionState(
|
74
|
+
builderState.postFilterState,
|
75
|
+
columnState,
|
76
|
+
value,
|
77
|
+
new QueryBuilderPostFilterOperator_StartWith(),
|
78
|
+
);
|
79
|
+
const postFilterNode = new QueryBuilderPostFilterTreeConditionNodeData(
|
80
|
+
undefined,
|
81
|
+
postConditionState,
|
82
|
+
);
|
83
|
+
builderState.postFilterState.addNodeFromNode(postFilterNode, undefined);
|
84
|
+
return builderState;
|
85
|
+
};
|
86
|
+
|
87
|
+
export const buildPropertyTypeAheadQuery = (
|
88
|
+
queryBuilderState: QueryBuilderState,
|
89
|
+
propertyExpression: AbstractPropertyExpression,
|
90
|
+
value: ValueSpecification | undefined,
|
91
|
+
): QueryBuilderState => {
|
92
|
+
// builderState to build dummy query
|
93
|
+
const builderState =
|
94
|
+
createAndSetupQueryBuilderStateForTypeAhead(queryBuilderState);
|
95
|
+
const projectionState = new QueryBuilderSimpleProjectionColumnState(
|
96
|
+
builderState.fetchStructureState.projectionState,
|
97
|
+
propertyExpression,
|
98
|
+
false,
|
99
|
+
);
|
100
|
+
return buildColumnTypeAheadQuery(builderState, projectionState, value);
|
101
|
+
};
|
102
|
+
|
103
|
+
export const buildProjectionColumnTypeAheadQuery = (
|
104
|
+
queryBuilderState: QueryBuilderState,
|
105
|
+
columnState:
|
106
|
+
| QueryBuilderProjectionColumnState
|
107
|
+
| QueryBuilderAggregateColumnState,
|
108
|
+
value: ValueSpecification | undefined,
|
109
|
+
): QueryBuilderState => {
|
110
|
+
// builderState to build dummy query
|
111
|
+
const builderState =
|
112
|
+
createAndSetupQueryBuilderStateForTypeAhead(queryBuilderState);
|
113
|
+
return buildColumnTypeAheadQuery(builderState, columnState, value);
|
114
|
+
};
|
115
|
+
|
116
|
+
export const buildTypeAheadOptions = (result: ExecutionResult): string[] => {
|
117
|
+
const tdsResult = guaranteeType(
|
118
|
+
result,
|
119
|
+
TdsExecutionResult,
|
120
|
+
'Type ahead search is only supported for tds result sets',
|
121
|
+
);
|
122
|
+
const options: string[] = [];
|
123
|
+
tdsResult.result.rows
|
124
|
+
.map((r) => r.values[0])
|
125
|
+
.filter(isNonNullable)
|
126
|
+
.forEach((r) => {
|
127
|
+
if (isString(r)) {
|
128
|
+
options.push(r);
|
129
|
+
}
|
130
|
+
});
|
131
|
+
return options;
|
132
|
+
};
|
133
|
+
|
134
|
+
export const performTypeAhead = (
|
135
|
+
val: ValueSpecification | undefined,
|
136
|
+
): boolean => {
|
137
|
+
if (val instanceof PrimitiveInstanceValue) {
|
138
|
+
const _type = val.genericType.value.rawType;
|
139
|
+
switch (_type.path) {
|
140
|
+
case PRIMITIVE_TYPE.STRING: {
|
141
|
+
const value = val.values[0] as string;
|
142
|
+
return value.length >= START_LENGTH;
|
143
|
+
}
|
144
|
+
default:
|
145
|
+
return false;
|
146
|
+
}
|
147
|
+
}
|
148
|
+
return false;
|
149
|
+
};
|
@@ -64,13 +64,15 @@ export const buildGenericLambdaFunctionInstanceValue = (
|
|
64
64
|
TYPICAL_MULTIPLICITY_TYPE.ONE,
|
65
65
|
);
|
66
66
|
const typeAny = graph.getType(CORE_PURE_PATH.ANY);
|
67
|
-
const
|
68
|
-
|
69
|
-
|
67
|
+
const functionInstanceValue = new LambdaFunctionInstanceValue(
|
68
|
+
multiplicityOne,
|
69
|
+
);
|
70
|
+
const functionType = new FunctionType(typeAny, multiplicityOne);
|
71
|
+
functionType.parameters.push(
|
70
72
|
new VariableExpression(lambdaParameterName, multiplicityOne),
|
71
73
|
);
|
72
|
-
const
|
73
|
-
|
74
|
-
|
75
|
-
return
|
74
|
+
const lambdaFunction = new LambdaFunction(functionType);
|
75
|
+
lambdaFunction.expressionSequence = lambdaBodyExpressions;
|
76
|
+
functionInstanceValue.values.push(lambdaFunction);
|
77
|
+
return functionInstanceValue;
|
76
78
|
};
|
@@ -50,6 +50,7 @@ import {
|
|
50
50
|
type GraphBuilderReport,
|
51
51
|
GraphManagerTelemetry,
|
52
52
|
extractElementNameFromPath,
|
53
|
+
isSystemElement,
|
53
54
|
} from '@finos/legend-graph';
|
54
55
|
import {
|
55
56
|
QueryBuilderState,
|
@@ -67,6 +68,7 @@ import { TAB_SIZE, APPLICATION_EVENT } from '@finos/legend-application';
|
|
67
68
|
import type { LegendQueryPluginManager } from '../application/LegendQueryPluginManager.js';
|
68
69
|
import { LegendQueryEventService } from './LegendQueryEventService.js';
|
69
70
|
import type { LegendQueryApplicationStore } from './LegendQueryBaseStore.js';
|
71
|
+
import type { SDLCServerClient } from '@finos/legend-server-sdlc';
|
70
72
|
|
71
73
|
export interface QueryExportConfiguration {
|
72
74
|
defaultName?: string | undefined;
|
@@ -198,6 +200,7 @@ export class QueryExportState {
|
|
198
200
|
export abstract class QueryEditorStore {
|
199
201
|
applicationStore: LegendQueryApplicationStore;
|
200
202
|
depotServerClient: DepotServerClient;
|
203
|
+
sdlcServerClient: SDLCServerClient;
|
201
204
|
pluginManager: LegendQueryPluginManager;
|
202
205
|
graphManagerState: GraphManagerState;
|
203
206
|
|
@@ -208,6 +211,7 @@ export abstract class QueryEditorStore {
|
|
208
211
|
constructor(
|
209
212
|
applicationStore: LegendQueryApplicationStore,
|
210
213
|
depotServerClient: DepotServerClient,
|
214
|
+
sdlcServerClient: SDLCServerClient,
|
211
215
|
pluginManager: LegendQueryPluginManager,
|
212
216
|
) {
|
213
217
|
makeObservable(this, {
|
@@ -229,6 +233,7 @@ export abstract class QueryEditorStore {
|
|
229
233
|
this.graphManagerState,
|
230
234
|
new StandardQueryBuilderMode(),
|
231
235
|
);
|
236
|
+
this.sdlcServerClient = sdlcServerClient;
|
232
237
|
}
|
233
238
|
|
234
239
|
setExportState(val: QueryExportState | undefined): void {
|
@@ -403,6 +408,7 @@ export class CreateQueryEditorStore extends QueryEditorStore {
|
|
403
408
|
constructor(
|
404
409
|
applicationStore: LegendQueryApplicationStore,
|
405
410
|
depotServerClient: DepotServerClient,
|
411
|
+
sdlcServerClient: SDLCServerClient,
|
406
412
|
pluginManager: LegendQueryPluginManager,
|
407
413
|
groupId: string,
|
408
414
|
artifactId: string,
|
@@ -411,7 +417,7 @@ export class CreateQueryEditorStore extends QueryEditorStore {
|
|
411
417
|
runtimePath: string,
|
412
418
|
classPath: string | undefined,
|
413
419
|
) {
|
414
|
-
super(applicationStore, depotServerClient, pluginManager);
|
420
|
+
super(applicationStore, depotServerClient, sdlcServerClient, pluginManager);
|
415
421
|
|
416
422
|
this.groupId = groupId;
|
417
423
|
this.artifactId = artifactId;
|
@@ -448,15 +454,30 @@ export class CreateQueryEditorStore extends QueryEditorStore {
|
|
448
454
|
);
|
449
455
|
this.queryBuilderState.querySetupState.setClassIsReadOnly(true);
|
450
456
|
} else {
|
451
|
-
|
457
|
+
// try to find a class to set
|
458
|
+
// first, find classes which is mapped by the mapping
|
459
|
+
// then, find any classes except for class coming from system
|
460
|
+
// if none found, default to a dummy blank query
|
461
|
+
const defaultClass =
|
452
462
|
getNullableFirstElement(
|
453
463
|
this.queryBuilderState.querySetupState.mapping
|
454
464
|
? getAllClassMappings(
|
455
465
|
this.queryBuilderState.querySetupState.mapping,
|
456
466
|
).map((classMapping) => classMapping.class.value)
|
457
467
|
: [],
|
458
|
-
)
|
459
|
-
|
468
|
+
) ??
|
469
|
+
getNullableFirstElement(
|
470
|
+
this.queryBuilderState.graphManagerState.graph.classes.filter(
|
471
|
+
(el) => !isSystemElement(el),
|
472
|
+
),
|
473
|
+
);
|
474
|
+
if (defaultClass) {
|
475
|
+
this.queryBuilderState.changeClass(defaultClass);
|
476
|
+
} else {
|
477
|
+
this.queryBuilderState.initialize(
|
478
|
+
this.queryBuilderState.graphManagerState.graphManager.createDefaultBasicRawLambda(),
|
479
|
+
);
|
480
|
+
}
|
460
481
|
}
|
461
482
|
}
|
462
483
|
|
@@ -482,6 +503,7 @@ export class ServiceQueryEditorStore extends QueryEditorStore {
|
|
482
503
|
constructor(
|
483
504
|
applicationStore: LegendQueryApplicationStore,
|
484
505
|
depotServerClient: DepotServerClient,
|
506
|
+
sdlcServerClient: SDLCServerClient,
|
485
507
|
pluginManager: LegendQueryPluginManager,
|
486
508
|
groupId: string,
|
487
509
|
artifactId: string,
|
@@ -489,7 +511,7 @@ export class ServiceQueryEditorStore extends QueryEditorStore {
|
|
489
511
|
servicePath: string,
|
490
512
|
executionKey: string | undefined,
|
491
513
|
) {
|
492
|
-
super(applicationStore, depotServerClient, pluginManager);
|
514
|
+
super(applicationStore, depotServerClient, sdlcServerClient, pluginManager);
|
493
515
|
|
494
516
|
this.groupId = groupId;
|
495
517
|
this.artifactId = artifactId;
|
@@ -573,10 +595,11 @@ export class ExistingQueryEditorStore extends QueryEditorStore {
|
|
573
595
|
constructor(
|
574
596
|
applicationStore: LegendQueryApplicationStore,
|
575
597
|
depotServerClient: DepotServerClient,
|
598
|
+
sdlcServerClient: SDLCServerClient,
|
576
599
|
pluginManager: LegendQueryPluginManager,
|
577
600
|
queryId: string,
|
578
601
|
) {
|
579
|
-
super(applicationStore, depotServerClient, pluginManager);
|
602
|
+
super(applicationStore, depotServerClient, sdlcServerClient, pluginManager);
|
580
603
|
|
581
604
|
makeObservable<ExistingQueryEditorStore, '_query'>(this, {
|
582
605
|
_query: observable,
|
@@ -31,10 +31,7 @@ import { action, makeObservable, observable } from 'mobx';
|
|
31
31
|
import type { QueryBuilderState } from './QueryBuilderState.js';
|
32
32
|
import type { TreeNodeData, TreeData } from '@finos/legend-art';
|
33
33
|
|
34
|
-
export
|
35
|
-
FUNCTION = 'FUNCTION',
|
36
|
-
PACKAGE = 'PACKAGE',
|
37
|
-
}
|
34
|
+
export const QUERY_BUILDER_FUNCTION_DND_TYPE = 'QUERY_BUILDER_FUNCTION';
|
38
35
|
|
39
36
|
export interface QueryBuilderFunctionsExplorerDragSource {
|
40
37
|
node: QueryBuilderFunctionsExplorerTreeNodeData;
|
@@ -43,7 +40,6 @@ export interface QueryBuilderFunctionsExplorerDragSource {
|
|
43
40
|
export class QueryBuilderFunctionsExplorerTreeNodeData implements TreeNodeData {
|
44
41
|
id: string;
|
45
42
|
label: string;
|
46
|
-
dndType: string;
|
47
43
|
childrenIds: string[] = [];
|
48
44
|
isOpen?: boolean | undefined;
|
49
45
|
packageableElement: PackageableElement;
|
@@ -51,12 +47,10 @@ export class QueryBuilderFunctionsExplorerTreeNodeData implements TreeNodeData {
|
|
51
47
|
constructor(
|
52
48
|
id: string,
|
53
49
|
label: string,
|
54
|
-
dndType: string,
|
55
50
|
packageableElement: PackageableElement,
|
56
51
|
) {
|
57
52
|
this.id = id;
|
58
53
|
this.label = label;
|
59
|
-
this.dndType = dndType;
|
60
54
|
this.packageableElement = packageableElement;
|
61
55
|
}
|
62
56
|
}
|
@@ -81,10 +75,6 @@ export const generateFunctionsExplorerTreeNodeData = (
|
|
81
75
|
rootPackageName: ROOT_PACKAGE_NAME,
|
82
76
|
): QueryBuilderFunctionsExplorerTreeNodeData => ({
|
83
77
|
id: element.path,
|
84
|
-
dndType:
|
85
|
-
element instanceof Package
|
86
|
-
? QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE.PACKAGE
|
87
|
-
: QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE.FUNCTION,
|
88
78
|
label: element.name,
|
89
79
|
childrenIds:
|
90
80
|
element instanceof Package
|
@@ -21,9 +21,7 @@ import {
|
|
21
21
|
import { observable, makeObservable, action } from 'mobx';
|
22
22
|
import type { QueryBuilderState } from './QueryBuilderState.js';
|
23
23
|
|
24
|
-
export
|
25
|
-
VARIABLE = 'VARIABLE',
|
26
|
-
}
|
24
|
+
export const QUERY_BUILDER_PARAMETER_DND_TYPE = 'PARAMETER';
|
27
25
|
|
28
26
|
export interface QueryBuilderParameterDragSource {
|
29
27
|
variable: LambdaParameterState;
|
@@ -49,6 +49,7 @@ import type { MappingRuntimeCompatibilityAnalysisResult } from '../graphManager/
|
|
49
49
|
import { APPLICATION_EVENT, TAB_SIZE } from '@finos/legend-application';
|
50
50
|
import type { LegendQueryPluginManager } from '../application/LegendQueryPluginManager.js';
|
51
51
|
import type { LegendQueryApplicationStore } from './LegendQueryBaseStore.js';
|
52
|
+
import type { SDLCServerClient } from '@finos/legend-server-sdlc';
|
52
53
|
|
53
54
|
export abstract class QuerySetupState {
|
54
55
|
setupStore: QuerySetupStore;
|
@@ -353,6 +354,7 @@ export class QuerySetupStore {
|
|
353
354
|
applicationStore: LegendQueryApplicationStore;
|
354
355
|
graphManagerState: BasicGraphManagerState;
|
355
356
|
depotServerClient: DepotServerClient;
|
357
|
+
sdlcServerClient: SDLCServerClient;
|
356
358
|
pluginManager: LegendQueryPluginManager;
|
357
359
|
querySetupState?: QuerySetupState | undefined;
|
358
360
|
initState = ActionState.create();
|
@@ -360,6 +362,7 @@ export class QuerySetupStore {
|
|
360
362
|
constructor(
|
361
363
|
applicationStore: LegendQueryApplicationStore,
|
362
364
|
depotServerClient: DepotServerClient,
|
365
|
+
sdlcServerClient: SDLCServerClient,
|
363
366
|
pluginManager: LegendQueryPluginManager,
|
364
367
|
) {
|
365
368
|
makeObservable(this, {
|
@@ -374,6 +377,7 @@ export class QuerySetupStore {
|
|
374
377
|
applicationStore.log,
|
375
378
|
);
|
376
379
|
this.depotServerClient = depotServerClient;
|
380
|
+
this.sdlcServerClient = sdlcServerClient;
|
377
381
|
this.pluginManager = pluginManager;
|
378
382
|
}
|
379
383
|
|
@@ -99,7 +99,6 @@ export class QueryBuilderFilterOperator_Equal extends QueryBuilderFilterOperator
|
|
99
99
|
switch (propertyType.path) {
|
100
100
|
case PRIMITIVE_TYPE.STRING:
|
101
101
|
case PRIMITIVE_TYPE.BOOLEAN:
|
102
|
-
case PRIMITIVE_TYPE.DATE:
|
103
102
|
case PRIMITIVE_TYPE.STRICTDATE:
|
104
103
|
case PRIMITIVE_TYPE.DATETIME:
|
105
104
|
case PRIMITIVE_TYPE.NUMBER:
|
@@ -113,6 +112,14 @@ export class QueryBuilderFilterOperator_Equal extends QueryBuilderFilterOperator
|
|
113
112
|
generateDefaultValueForPrimitiveType(propertyType.path),
|
114
113
|
);
|
115
114
|
}
|
115
|
+
case PRIMITIVE_TYPE.DATE: {
|
116
|
+
return buildPrimitiveInstanceValue(
|
117
|
+
filterConditionState.filterState.queryBuilderState.graphManagerState
|
118
|
+
.graph,
|
119
|
+
PRIMITIVE_TYPE.STRICTDATE,
|
120
|
+
generateDefaultValueForPrimitiveType(propertyType.path),
|
121
|
+
);
|
122
|
+
}
|
116
123
|
default:
|
117
124
|
if (propertyType instanceof Enumeration) {
|
118
125
|
if (propertyType.values.length > 0) {
|