@finos/legend-application-query 13.4.12 → 13.4.13
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/Core_LegendQueryApplicationPlugin.d.ts +3 -0
- package/lib/components/Core_LegendQueryApplicationPlugin.d.ts.map +1 -1
- package/lib/components/Core_LegendQueryApplicationPlugin.js +250 -5
- package/lib/components/Core_LegendQueryApplicationPlugin.js.map +1 -1
- package/lib/components/QueryEditor.d.ts +8 -0
- package/lib/components/QueryEditor.d.ts.map +1 -1
- package/lib/components/QueryEditor.js +15 -136
- package/lib/components/QueryEditor.js.map +1 -1
- package/lib/components/__test-utils__/QueryEditorComponentTestUtils.d.ts.map +1 -1
- package/lib/components/__test-utils__/QueryEditorComponentTestUtils.js +2 -0
- package/lib/components/__test-utils__/QueryEditorComponentTestUtils.js.map +1 -1
- package/lib/components/data-space/DataSpaceQuerySetup.d.ts.map +1 -1
- package/lib/components/data-space/DataSpaceQuerySetup.js +7 -6
- package/lib/components/data-space/DataSpaceQuerySetup.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/LegendQueryApplicationPlugin.d.ts +4 -4
- package/lib/stores/LegendQueryApplicationPlugin.d.ts.map +1 -1
- package/lib/stores/LegendQueryApplicationPlugin.js +1 -0
- package/lib/stores/LegendQueryApplicationPlugin.js.map +1 -1
- package/lib/stores/QueryEditorStore.d.ts +5 -1
- package/lib/stores/QueryEditorStore.d.ts.map +1 -1
- package/lib/stores/QueryEditorStore.js +12 -4
- package/lib/stores/QueryEditorStore.js.map +1 -1
- package/lib/stores/__test-utils__/LegendQueryApplicationTestUtils.js +1 -1
- package/lib/stores/__test-utils__/LegendQueryApplicationTestUtils.js.map +1 -1
- package/lib/stores/data-space/DataSpaceQueryCreatorStore.d.ts.map +1 -1
- package/lib/stores/data-space/DataSpaceQueryCreatorStore.js +2 -2
- package/lib/stores/data-space/DataSpaceQueryCreatorStore.js.map +1 -1
- package/lib/stores/data-space/DataSpaceQuerySetupState.d.ts +2 -1
- package/lib/stores/data-space/DataSpaceQuerySetupState.d.ts.map +1 -1
- package/lib/stores/data-space/DataSpaceQuerySetupState.js +6 -3
- package/lib/stores/data-space/DataSpaceQuerySetupState.js.map +1 -1
- package/lib/stores/data-space/DataSpaceTemplateQueryCreatorStore.d.ts.map +1 -1
- package/lib/stores/data-space/DataSpaceTemplateQueryCreatorStore.js +2 -2
- package/lib/stores/data-space/DataSpaceTemplateQueryCreatorStore.js.map +1 -1
- package/package.json +6 -6
- package/src/components/Core_LegendQueryApplicationPlugin.tsx +593 -1
- package/src/components/QueryEditor.tsx +30 -468
- package/src/components/__test-utils__/QueryEditorComponentTestUtils.tsx +2 -0
- package/src/components/data-space/DataSpaceQuerySetup.tsx +52 -53
- package/src/index.ts +2 -1
- package/src/stores/{LegendQueryApplicationPlugin.ts → LegendQueryApplicationPlugin.tsx} +11 -6
- package/src/stores/QueryEditorStore.ts +16 -0
- package/src/stores/__test-utils__/LegendQueryApplicationTestUtils.ts +1 -1
- package/src/stores/data-space/DataSpaceQueryCreatorStore.ts +2 -0
- package/src/stores/data-space/DataSpaceQuerySetupState.ts +8 -0
- package/src/stores/data-space/DataSpaceTemplateQueryCreatorStore.ts +2 -0
- package/tsconfig.json +2 -2
@@ -21,10 +21,10 @@ import { flowResult } from 'mobx';
|
|
21
21
|
import { QueryBuilderClassSelector } from '@finos/legend-query-builder';
|
22
22
|
import {
|
23
23
|
CustomSelectorInput,
|
24
|
+
PanelHeader,
|
24
25
|
SearchIcon,
|
25
26
|
type SelectComponent,
|
26
27
|
} from '@finos/legend-art';
|
27
|
-
import { DataSpaceIcon } from '@finos/legend-extension-dsl-data-space/application';
|
28
28
|
import {
|
29
29
|
useLegendQueryApplicationStore,
|
30
30
|
useLegendQueryBaseStore,
|
@@ -82,8 +82,9 @@ const DataSpaceQuerySetupSetupPanelContent = observer(
|
|
82
82
|
const applicationStore = useApplicationStore();
|
83
83
|
const dataSpaceSearchRef = useRef<SelectComponent>(null);
|
84
84
|
// data space
|
85
|
-
const dataSpaceOptions =
|
86
|
-
|
85
|
+
const dataSpaceOptions = queryBuilderState.dataSpaces
|
86
|
+
.map(buildDataSpaceOption)
|
87
|
+
.sort((a, b) => a.label.localeCompare(b.label));
|
87
88
|
const selectedDataSpaceOption = null;
|
88
89
|
const onDataSpaceOptionChange = (option: DataSpaceOption): void => {
|
89
90
|
queryBuilderState.onDataSpaceChange(option.value);
|
@@ -101,59 +102,57 @@ const DataSpaceQuerySetupSetupPanelContent = observer(
|
|
101
102
|
useEffect(() => dataSpaceSearchRef.current?.focus());
|
102
103
|
|
103
104
|
return (
|
104
|
-
|
105
|
-
<
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
105
|
+
<div className="query-builder__setup__config-group">
|
106
|
+
<PanelHeader title="properties" />
|
107
|
+
<div className="query-builder__setup__config-group__content">
|
108
|
+
<div className="query-builder__setup__config-group__item">
|
109
|
+
<label
|
110
|
+
className="btn--sm query-builder__setup__config-group__item__label"
|
111
|
+
title="data space"
|
112
|
+
htmlFor="query-builder__setup__data-space-selector"
|
113
|
+
>
|
114
|
+
Data Space
|
115
|
+
</label>
|
116
|
+
<CustomSelectorInput
|
117
|
+
inputId="query-builder__setup__data-space-selector"
|
118
|
+
ref={dataSpaceSearchRef}
|
119
|
+
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
120
|
+
options={dataSpaceOptions}
|
121
|
+
isLoading={queryBuilderState.loadDataSpacesState.isInProgress}
|
122
|
+
onChange={onDataSpaceOptionChange}
|
123
|
+
value={selectedDataSpaceOption}
|
124
|
+
placeholder="Search for data space..."
|
125
|
+
escapeClearsValue={true}
|
126
|
+
darkMode={
|
127
|
+
!applicationStore.layoutService
|
128
|
+
.TEMPORARY__isLightColorThemeEnabled
|
129
|
+
}
|
130
|
+
formatOptionLabel={formatDataSpaceOptionLabel}
|
131
|
+
/>
|
132
|
+
<button
|
133
|
+
tabIndex={-1}
|
134
|
+
className="query-builder__setup__data-space-searcher__btn btn--dark"
|
135
|
+
onClick={openDataSpaceAdvancedSearch}
|
136
|
+
title="Open advanced search for data space..."
|
137
|
+
>
|
138
|
+
<SearchIcon />
|
139
|
+
</button>
|
140
|
+
{queryBuilderState.advancedSearchState && (
|
141
|
+
<DataSpaceAdvancedSearchModal
|
142
|
+
searchState={queryBuilderState.advancedSearchState}
|
143
|
+
onClose={() => queryBuilderState.hideAdvancedSearchPanel()}
|
133
144
|
/>
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
{queryBuilderState.advancedSearchState && (
|
143
|
-
<DataSpaceAdvancedSearchModal
|
144
|
-
searchState={queryBuilderState.advancedSearchState}
|
145
|
-
onClose={() => queryBuilderState.hideAdvancedSearchPanel()}
|
146
|
-
/>
|
147
|
-
)}
|
148
|
-
</div>
|
145
|
+
)}
|
146
|
+
</div>
|
147
|
+
<div className="query-builder__setup__config-group__item">
|
148
|
+
<QueryBuilderClassSelector
|
149
|
+
queryBuilderState={queryBuilderState}
|
150
|
+
classes={[]}
|
151
|
+
noMatchMessage="No compatible entity found"
|
152
|
+
/>
|
149
153
|
</div>
|
150
154
|
</div>
|
151
|
-
|
152
|
-
queryBuilderState={queryBuilderState}
|
153
|
-
classes={[]}
|
154
|
-
noMatchMessage="No compatible class found"
|
155
|
-
/>
|
156
|
-
</>
|
155
|
+
</div>
|
157
156
|
);
|
158
157
|
},
|
159
158
|
);
|
package/src/index.ts
CHANGED
@@ -36,11 +36,12 @@ export type { LegendQueryApplicationStore } from './stores/LegendQueryBaseStore.
|
|
36
36
|
export * from './stores/LegendQueryApplicationPlugin.js';
|
37
37
|
export { BaseQuerySetupStore } from './stores/QuerySetupStore.js';
|
38
38
|
export {
|
39
|
+
type QueryPersistConfiguration,
|
39
40
|
createViewProjectHandler,
|
40
41
|
createViewSDLCProjectHandler,
|
41
42
|
QueryEditorStore,
|
42
43
|
ExistingQueryEditorStore,
|
43
|
-
|
44
|
+
QueryBuilderActionConfig_QueryApplication,
|
44
45
|
} from './stores/QueryEditorStore.js';
|
45
46
|
export { QUERY_EDITOR_TEST_ID } from './__lib__/LegendQueryTesting.js';
|
46
47
|
// components
|
@@ -16,12 +16,14 @@
|
|
16
16
|
|
17
17
|
import { LegendApplicationPlugin } from '@finos/legend-application';
|
18
18
|
import type { Query } from '@finos/legend-graph';
|
19
|
-
import type { QueryBuilderState } from '@finos/legend-query-builder';
|
20
|
-
import type React from 'react';
|
21
|
-
import type { LegendQueryPluginManager } from '../application/LegendQueryPluginManager.js';
|
22
19
|
import type {
|
23
|
-
|
24
|
-
|
20
|
+
QueryBuilderState,
|
21
|
+
QueryBuilder_LegendApplicationPlugin_Extension,
|
22
|
+
} from '@finos/legend-query-builder';
|
23
|
+
import type { LegendQueryPluginManager } from '../application/LegendQueryPluginManager.js';
|
24
|
+
import {
|
25
|
+
type ExistingQueryEditorStore,
|
26
|
+
type QueryEditorStore,
|
25
27
|
} from './QueryEditorStore.js';
|
26
28
|
import type { QuerySetupLandingPageStore } from './QuerySetupStore.js';
|
27
29
|
|
@@ -77,7 +79,10 @@ export type QueryEditorHelpMenuActionConfiguration = {
|
|
77
79
|
icon?: React.ReactNode;
|
78
80
|
};
|
79
81
|
|
80
|
-
export
|
82
|
+
export class LegendQueryApplicationPlugin
|
83
|
+
extends LegendApplicationPlugin
|
84
|
+
implements QueryBuilder_LegendApplicationPlugin_Extension
|
85
|
+
{
|
81
86
|
/**
|
82
87
|
* This helps to better type-check for this empty abtract type
|
83
88
|
* See https://github.com/finos/legend-studio/blob/master/docs/technical/typescript-usage.md#understand-typescript-structual-type-system
|
@@ -106,6 +106,7 @@ import {
|
|
106
106
|
ServiceQueryBuilderState,
|
107
107
|
QueryLoaderState,
|
108
108
|
QueryBuilderDataBrowserWorkflow,
|
109
|
+
QueryBuilderActionConfig,
|
109
110
|
} from '@finos/legend-query-builder';
|
110
111
|
import { LegendQueryUserDataHelper } from '../__lib__/LegendQueryUserDataHelper.js';
|
111
112
|
import { LegendQueryTelemetryHelper } from '../__lib__/LegendQueryTelemetryHelper.js';
|
@@ -654,6 +655,15 @@ export abstract class QueryEditorStore {
|
|
654
655
|
}
|
655
656
|
}
|
656
657
|
|
658
|
+
export class QueryBuilderActionConfig_QueryApplication extends QueryBuilderActionConfig {
|
659
|
+
editorStore: QueryEditorStore;
|
660
|
+
|
661
|
+
constructor(editorStore: QueryEditorStore) {
|
662
|
+
super();
|
663
|
+
this.editorStore = editorStore;
|
664
|
+
}
|
665
|
+
}
|
666
|
+
|
657
667
|
export class MappingQueryCreatorStore extends QueryEditorStore {
|
658
668
|
readonly groupId: string;
|
659
669
|
readonly artifactId: string;
|
@@ -698,6 +708,7 @@ export class MappingQueryCreatorStore extends QueryEditorStore {
|
|
698
708
|
this.applicationStore,
|
699
709
|
this.graphManagerState,
|
700
710
|
QueryBuilderDataBrowserWorkflow.INSTANCE,
|
711
|
+
new QueryBuilderActionConfig_QueryApplication(this),
|
701
712
|
(val: Mapping) => {
|
702
713
|
this.applicationStore.navigationService.navigator.updateCurrentLocation(
|
703
714
|
generateMappingQueryCreatorRoute(
|
@@ -807,6 +818,7 @@ export class ServiceQueryCreatorStore extends QueryEditorStore {
|
|
807
818
|
this.applicationStore,
|
808
819
|
this.graphManagerState,
|
809
820
|
QueryBuilderDataBrowserWorkflow.INSTANCE,
|
821
|
+
new QueryBuilderActionConfig_QueryApplication(this),
|
810
822
|
service,
|
811
823
|
this.graphManagerState.usableServices,
|
812
824
|
this.executionKey,
|
@@ -1220,6 +1232,7 @@ export class ExistingQueryEditorStore extends QueryEditorStore {
|
|
1220
1232
|
this.graphManagerState,
|
1221
1233
|
this.depotServerClient,
|
1222
1234
|
QueryBuilderDataBrowserWorkflow.INSTANCE,
|
1235
|
+
new QueryBuilderActionConfig_QueryApplication(this),
|
1223
1236
|
dataSpace,
|
1224
1237
|
matchingExecutionContext,
|
1225
1238
|
(dataSpaceInfo: DataSpaceInfo) => {
|
@@ -1332,6 +1345,9 @@ export class ExistingQueryEditorStore extends QueryEditorStore {
|
|
1332
1345
|
this.applicationStore.config.options.queryBuilderConfig,
|
1333
1346
|
sourceInfo,
|
1334
1347
|
);
|
1348
|
+
classQueryBuilderState.workflowState.updateActionConfig(
|
1349
|
+
new QueryBuilderActionConfig_QueryApplication(this),
|
1350
|
+
);
|
1335
1351
|
classQueryBuilderState.executionContextState.setMapping(
|
1336
1352
|
exec.mapping.value,
|
1337
1353
|
);
|
@@ -18,7 +18,7 @@ import { TEST__getApplicationVersionData } from '@finos/legend-application/test'
|
|
18
18
|
import { LegendQueryApplicationConfig } from '../../application/LegendQueryApplicationConfig.js';
|
19
19
|
|
20
20
|
const TEST_DATA__appConfig = {
|
21
|
-
appName: '
|
21
|
+
appName: 'query',
|
22
22
|
env: 'test-env',
|
23
23
|
engine: {
|
24
24
|
url: 'https://testEngineUrl',
|
@@ -45,6 +45,7 @@ import {
|
|
45
45
|
retrieveAnalyticsResultCache,
|
46
46
|
} from '@finos/legend-extension-dsl-data-space/graph';
|
47
47
|
import {
|
48
|
+
QueryBuilderActionConfig_QueryApplication,
|
48
49
|
QueryEditorStore,
|
49
50
|
createViewProjectHandler,
|
50
51
|
createViewSDLCProjectHandler,
|
@@ -148,6 +149,7 @@ export class DataSpaceQueryCreatorStore extends QueryEditorStore {
|
|
148
149
|
this.graphManagerState,
|
149
150
|
this.depotServerClient,
|
150
151
|
QueryBuilderDataBrowserWorkflow.INSTANCE,
|
152
|
+
new QueryBuilderActionConfig_QueryApplication(this),
|
151
153
|
dataSpace,
|
152
154
|
executionContext,
|
153
155
|
(dataSpaceInfo: DataSpaceInfo) => {
|
@@ -42,6 +42,7 @@ import {
|
|
42
42
|
} from '@finos/legend-extension-dsl-data-space/application';
|
43
43
|
import { DATA_SPACE_ELEMENT_CLASSIFIER_PATH } from '@finos/legend-extension-dsl-data-space/graph';
|
44
44
|
import {
|
45
|
+
QueryBuilderActionConfig_QueryApplication,
|
45
46
|
QueryEditorStore,
|
46
47
|
createViewProjectHandler,
|
47
48
|
createViewSDLCProjectHandler,
|
@@ -52,6 +53,7 @@ import { renderDataSpaceQuerySetupSetupPanelContent } from '../../components/dat
|
|
52
53
|
import { DataSpaceAdvancedSearchState } from '@finos/legend-extension-dsl-data-space/application-query';
|
53
54
|
|
54
55
|
export class DataSpaceQuerySetupState extends QueryBuilderState {
|
56
|
+
editorStore: QueryEditorStore;
|
55
57
|
readonly depotServerClient: DepotServerClient;
|
56
58
|
readonly loadDataSpacesState = ActionState.create();
|
57
59
|
readonly onDataSpaceChange: (val: DataSpaceInfo) => void;
|
@@ -75,6 +77,7 @@ export class DataSpaceQuerySetupState extends QueryBuilderState {
|
|
75
77
|
advancedSearchState?: DataSpaceAdvancedSearchState | undefined;
|
76
78
|
|
77
79
|
constructor(
|
80
|
+
editorStore: QueryEditorStore,
|
78
81
|
applicationStore: GenericLegendApplicationStore,
|
79
82
|
graphManagerState: GraphManagerState,
|
80
83
|
depotServerClient: DepotServerClient,
|
@@ -107,6 +110,10 @@ export class DataSpaceQuerySetupState extends QueryBuilderState {
|
|
107
110
|
loadDataSpaces: flow,
|
108
111
|
});
|
109
112
|
|
113
|
+
this.editorStore = editorStore;
|
114
|
+
this.workflowState.updateActionConfig(
|
115
|
+
new QueryBuilderActionConfig_QueryApplication(editorStore),
|
116
|
+
);
|
110
117
|
this.depotServerClient = depotServerClient;
|
111
118
|
this.onDataSpaceChange = onDataSpaceChange;
|
112
119
|
this.viewProject = viewProject;
|
@@ -175,6 +182,7 @@ export class DataSpaceQuerySetupStore extends QueryEditorStore {
|
|
175
182
|
|
176
183
|
async initializeQueryBuilderState(): Promise<QueryBuilderState> {
|
177
184
|
const queryBuilderState = new DataSpaceQuerySetupState(
|
185
|
+
this,
|
178
186
|
this.applicationStore,
|
179
187
|
this.graphManagerState,
|
180
188
|
this.depotServerClient,
|
@@ -30,6 +30,7 @@ import {
|
|
30
30
|
} from '@finos/legend-query-builder';
|
31
31
|
import type { ProjectGAVCoordinates } from '@finos/legend-storage';
|
32
32
|
import {
|
33
|
+
QueryBuilderActionConfig_QueryApplication,
|
33
34
|
QueryEditorStore,
|
34
35
|
createViewProjectHandler,
|
35
36
|
createViewSDLCProjectHandler,
|
@@ -142,6 +143,7 @@ export class DataSpaceTemplateQueryCreatorStore extends QueryEditorStore {
|
|
142
143
|
this.graphManagerState,
|
143
144
|
this.depotServerClient,
|
144
145
|
QueryBuilderDataBrowserWorkflow.INSTANCE,
|
146
|
+
new QueryBuilderActionConfig_QueryApplication(this),
|
145
147
|
dataSpace,
|
146
148
|
executionContext,
|
147
149
|
(dataSpaceInfo: DataSpaceInfo) => {
|
package/tsconfig.json
CHANGED
@@ -66,7 +66,6 @@
|
|
66
66
|
"./src/stores/CloneServiceQuerySetupStore.ts",
|
67
67
|
"./src/stores/CreateMappingQuerySetupStore.ts",
|
68
68
|
"./src/stores/EditExistingQuerySetupStore.ts",
|
69
|
-
"./src/stores/LegendQueryApplicationPlugin.ts",
|
70
69
|
"./src/stores/LegendQueryBaseStore.ts",
|
71
70
|
"./src/stores/LoadProjectServiceQuerySetupStore.ts",
|
72
71
|
"./src/stores/QueryEditorStore.ts",
|
@@ -94,7 +93,8 @@
|
|
94
93
|
"./src/components/__test-utils__/QueryEditorComponentTestUtils.tsx",
|
95
94
|
"./src/components/data-space/DataSpaceQueryCreator.tsx",
|
96
95
|
"./src/components/data-space/DataSpaceQuerySetup.tsx",
|
97
|
-
"./src/components/data-space/DataSpaceTemplateQueryCreator.tsx"
|
96
|
+
"./src/components/data-space/DataSpaceTemplateQueryCreator.tsx",
|
97
|
+
"./src/stores/LegendQueryApplicationPlugin.tsx"
|
98
98
|
],
|
99
99
|
"include": [
|
100
100
|
"src/**/*.ts",
|