@finos/legend-application-query 13.6.0 → 13.6.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/components/CloneQueryServiceSetup.d.ts.map +1 -1
- package/lib/components/CloneQueryServiceSetup.js +6 -2
- package/lib/components/CloneQueryServiceSetup.js.map +1 -1
- package/lib/components/Core_LegendQueryApplicationPlugin.js +4 -4
- package/lib/components/Core_LegendQueryApplicationPlugin.js.map +1 -1
- package/lib/components/CreateMappingQuerySetup.d.ts.map +1 -1
- package/lib/components/CreateMappingQuerySetup.js +6 -2
- package/lib/components/CreateMappingQuerySetup.js.map +1 -1
- package/lib/components/LegendQueryWebApplication.d.ts.map +1 -1
- package/lib/components/LegendQueryWebApplication.js +4 -32
- package/lib/components/LegendQueryWebApplication.js.map +1 -1
- package/lib/components/QueryEditor.d.ts.map +1 -1
- package/lib/components/QueryEditor.js +8 -8
- package/lib/components/QueryEditor.js.map +1 -1
- package/lib/components/QueryEdtiorExistingQueryVersionRevertModal.d.ts.map +1 -1
- package/lib/components/QueryEdtiorExistingQueryVersionRevertModal.js +1 -1
- package/lib/components/QueryEdtiorExistingQueryVersionRevertModal.js.map +1 -1
- package/lib/components/UpdateExistingServiceQuerySetup.js +1 -1
- package/lib/components/UpdateExistingServiceQuerySetup.js.map +1 -1
- package/lib/components/__test-utils__/QueryEditorComponentTestUtils.d.ts.map +1 -1
- package/lib/components/__test-utils__/QueryEditorComponentTestUtils.js +3 -1
- package/lib/components/__test-utils__/QueryEditorComponentTestUtils.js.map +1 -1
- package/lib/components/data-cube/ExistingQueryDataCubeViewer.d.ts.map +1 -1
- package/lib/components/data-cube/ExistingQueryDataCubeViewer.js +2 -1
- package/lib/components/data-cube/ExistingQueryDataCubeViewer.js.map +1 -1
- package/lib/components/data-space/DataSpaceQueryCreator.d.ts.map +1 -1
- package/lib/components/data-space/DataSpaceQueryCreator.js +3 -3
- package/lib/components/data-space/DataSpaceQueryCreator.js.map +1 -1
- package/lib/components/data-space/DataSpaceQuerySetup.js +1 -1
- package/lib/components/data-space/DataSpaceQuerySetup.js.map +1 -1
- package/lib/components/data-space/DataSpaceTemplateQueryCreator.d.ts.map +1 -1
- package/lib/components/data-space/DataSpaceTemplateQueryCreator.js +4 -3
- package/lib/components/data-space/DataSpaceTemplateQueryCreator.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +5 -5
- package/lib/stores/data-cube/ExistingQueryDataCubeViewer.d.ts.map +1 -1
- package/lib/stores/data-cube/ExistingQueryDataCubeViewer.js +7 -1
- package/lib/stores/data-cube/ExistingQueryDataCubeViewer.js.map +1 -1
- package/package.json +17 -17
- package/src/components/CloneQueryServiceSetup.tsx +10 -2
- package/src/components/Core_LegendQueryApplicationPlugin.tsx +4 -4
- package/src/components/CreateMappingQuerySetup.tsx +10 -2
- package/src/components/LegendQueryWebApplication.tsx +31 -85
- package/src/components/QueryEditor.tsx +24 -10
- package/src/components/QueryEdtiorExistingQueryVersionRevertModal.tsx +1 -3
- package/src/components/UpdateExistingServiceQuerySetup.tsx +1 -1
- package/src/components/__test-utils__/QueryEditorComponentTestUtils.tsx +14 -2
- package/src/components/data-cube/ExistingQueryDataCubeViewer.tsx +6 -1
- package/src/components/data-space/DataSpaceQueryCreator.tsx +4 -6
- package/src/components/data-space/DataSpaceQuerySetup.tsx +1 -1
- package/src/components/data-space/DataSpaceTemplateQueryCreator.tsx +10 -6
- package/src/stores/data-cube/ExistingQueryDataCubeViewer.ts +7 -0
@@ -89,7 +89,11 @@ import {
|
|
89
89
|
import { LATEST_VERSION_ALIAS } from '@finos/legend-server-depot';
|
90
90
|
import { buildVersionOption, type VersionOption } from './QuerySetup.js';
|
91
91
|
import { QueryEditorExistingQueryVersionRevertModal } from './QueryEdtiorExistingQueryVersionRevertModal.js';
|
92
|
-
import {
|
92
|
+
import {
|
93
|
+
debounce,
|
94
|
+
compareSemVerVersions,
|
95
|
+
guaranteeNonNullable,
|
96
|
+
} from '@finos/legend-shared';
|
93
97
|
import { LegendQueryInfo } from './LegendQueryAppInfo.js';
|
94
98
|
import { QueryEditorDataspaceInfoModal } from './data-space/DataSpaceInfo.js';
|
95
99
|
import { DataSpaceQueryBuilderState } from '@finos/legend-extension-dsl-data-space/application';
|
@@ -422,9 +426,7 @@ const QueryEditorExistingQueryInfoModal = observer(
|
|
422
426
|
const selectedVersionOption = updateState.queryVersionId
|
423
427
|
? buildVersionOption(updateState.queryVersionId)
|
424
428
|
: buildVersionOption(query.versionId);
|
425
|
-
const onVersionOptionChange =
|
426
|
-
option: VersionOption | null,
|
427
|
-
): Promise<void> => {
|
429
|
+
const onVersionOptionChange = (option: VersionOption | null) => {
|
428
430
|
if (option?.value && option.value !== updateState.queryVersionId) {
|
429
431
|
updateState.setQueryVersionId(option.value);
|
430
432
|
}
|
@@ -816,7 +818,9 @@ const processQueryParams = (
|
|
816
818
|
export const ExistingQueryEditor = observer(() => {
|
817
819
|
const applicationStore = useApplicationStore();
|
818
820
|
const params = useParams<ExistingQueryEditorPathParams>();
|
819
|
-
const queryId =
|
821
|
+
const queryId = guaranteeNonNullable(
|
822
|
+
params[LEGEND_QUERY_ROUTE_PATTERN_TOKEN.QUERY_ID],
|
823
|
+
);
|
820
824
|
const queryParams =
|
821
825
|
applicationStore.navigationService.navigator.getCurrentLocationParameters();
|
822
826
|
const processed = processQueryParams(queryParams);
|
@@ -839,8 +843,12 @@ export const ExistingQueryEditor = observer(() => {
|
|
839
843
|
export const ServiceQueryCreator = observer(() => {
|
840
844
|
const applicationStore = useApplicationStore();
|
841
845
|
const parameters = useParams<ServiceQueryCreatorPathParams>();
|
842
|
-
const gav =
|
843
|
-
|
846
|
+
const gav = guaranteeNonNullable(
|
847
|
+
parameters[LEGEND_QUERY_ROUTE_PATTERN_TOKEN.GAV],
|
848
|
+
);
|
849
|
+
const servicePath = guaranteeNonNullable(
|
850
|
+
parameters[LEGEND_QUERY_ROUTE_PATTERN_TOKEN.SERVICE_PATH],
|
851
|
+
);
|
844
852
|
const executionKey =
|
845
853
|
applicationStore.navigationService.navigator.getCurrentLocationParameterValue(
|
846
854
|
LEGEND_QUERY_QUERY_PARAM_TOKEN.SERVICE_EXECUTION_KEY,
|
@@ -859,9 +867,15 @@ export const ServiceQueryCreator = observer(() => {
|
|
859
867
|
|
860
868
|
export const MappingQueryCreator = observer(() => {
|
861
869
|
const params = useParams<MappingQueryCreatorPathParams>();
|
862
|
-
const gav =
|
863
|
-
|
864
|
-
|
870
|
+
const gav = guaranteeNonNullable(
|
871
|
+
params[LEGEND_QUERY_ROUTE_PATTERN_TOKEN.GAV],
|
872
|
+
);
|
873
|
+
const mappingPath = guaranteeNonNullable(
|
874
|
+
params[LEGEND_QUERY_ROUTE_PATTERN_TOKEN.MAPPING_PATH],
|
875
|
+
);
|
876
|
+
const runtimePath = guaranteeNonNullable(
|
877
|
+
params[LEGEND_QUERY_ROUTE_PATTERN_TOKEN.RUNTIME_PATH],
|
878
|
+
);
|
865
879
|
|
866
880
|
return (
|
867
881
|
<MappingQueryCreatorStoreProvider
|
@@ -49,9 +49,7 @@ export const QueryEditorExistingQueryVersionRevertModal = observer(
|
|
49
49
|
const selectedVersionOption = queryVersion
|
50
50
|
? buildVersionOption(queryVersion)
|
51
51
|
: null;
|
52
|
-
const onVersionOptionChange =
|
53
|
-
option: VersionOption | null,
|
54
|
-
): Promise<void> => {
|
52
|
+
const onVersionOptionChange = (option: VersionOption | null) => {
|
55
53
|
if (option?.value && option.value !== queryVersion) {
|
56
54
|
setQueryVersion(option.value);
|
57
55
|
}
|
@@ -131,7 +131,7 @@ const UpdateExistingServiceQuerySetupContent = observer(() => {
|
|
131
131
|
<SearchIcon />
|
132
132
|
</div>
|
133
133
|
<CustomSelectorInput
|
134
|
-
|
134
|
+
inputRef={serviceSearchRef}
|
135
135
|
className="query-setup__wizard__selector"
|
136
136
|
options={serviceOptions}
|
137
137
|
isLoading={setupStore.loadServicesState.isInProgress}
|
@@ -44,6 +44,11 @@ import {
|
|
44
44
|
import { LegendQueryFrameworkProvider } from '../LegendQueryFrameworkProvider.js';
|
45
45
|
import { TEST__BrowserEnvironmentProvider } from '@finos/legend-application/test';
|
46
46
|
import { Core_LegendQueryApplicationPlugin } from '../Core_LegendQueryApplicationPlugin.js';
|
47
|
+
import { Route, Routes } from '@finos/legend-application/browser';
|
48
|
+
import {
|
49
|
+
generateExistingQueryEditorRoute,
|
50
|
+
LEGEND_QUERY_ROUTE_PATTERN,
|
51
|
+
} from '../../__lib__/LegendQueryNavigation.js';
|
47
52
|
|
48
53
|
const TEST_QUERY_ID = 'test-query-id';
|
49
54
|
export const TEST_QUERY_NAME = 'MyTestQuery';
|
@@ -170,9 +175,16 @@ export const TEST__setUpQueryEditor = async (
|
|
170
175
|
|
171
176
|
const renderResult = render(
|
172
177
|
<ApplicationStoreProvider store={MOCK__editorStore.applicationStore}>
|
173
|
-
<TEST__BrowserEnvironmentProvider
|
178
|
+
<TEST__BrowserEnvironmentProvider
|
179
|
+
initialEntries={[generateExistingQueryEditorRoute(lightQuery.id)]}
|
180
|
+
>
|
174
181
|
<LegendQueryFrameworkProvider>
|
175
|
-
<
|
182
|
+
<Routes>
|
183
|
+
<Route
|
184
|
+
path={LEGEND_QUERY_ROUTE_PATTERN.EDIT_EXISTING_QUERY}
|
185
|
+
element={<ExistingQueryEditor />}
|
186
|
+
/>
|
187
|
+
</Routes>
|
176
188
|
</LegendQueryFrameworkProvider>
|
177
189
|
</TEST__BrowserEnvironmentProvider>
|
178
190
|
</ApplicationStoreProvider>,
|
@@ -29,6 +29,7 @@ import { useEffect } from 'react';
|
|
29
29
|
import { flowResult } from 'mobx';
|
30
30
|
import { DataCube, DataCubeProvider } from '@finos/legend-data-cube';
|
31
31
|
import { QueryBuilderDataCubeApplicationEngine } from '@finos/legend-query-builder';
|
32
|
+
import { guaranteeNonNullable } from '@finos/legend-shared';
|
32
33
|
|
33
34
|
export const DataCubeWrapper = observer(() => {
|
34
35
|
const applicationStore = useApplicationStore();
|
@@ -44,6 +45,7 @@ export const DataCubeWrapper = observer(() => {
|
|
44
45
|
const _appEngine = new QueryBuilderDataCubeApplicationEngine(
|
45
46
|
applicationStore,
|
46
47
|
);
|
48
|
+
|
47
49
|
return (
|
48
50
|
<DataCubeProvider application={_appEngine} engine={store.engine}>
|
49
51
|
<DataCube />
|
@@ -53,7 +55,10 @@ export const DataCubeWrapper = observer(() => {
|
|
53
55
|
|
54
56
|
export const ExistingQueryDataCubeViewer = observer(() => {
|
55
57
|
const params = useParams<ExistingQueryEditorPathParams>();
|
56
|
-
const queryId =
|
58
|
+
const queryId = guaranteeNonNullable(
|
59
|
+
params[LEGEND_QUERY_ROUTE_PATTERN_TOKEN.QUERY_ID],
|
60
|
+
);
|
61
|
+
|
57
62
|
return (
|
58
63
|
<ExistingQueryDataCubeEditorStoreProvider queryId={queryId}>
|
59
64
|
<DataCubeWrapper />
|
@@ -88,14 +88,12 @@ const DataSpaceQueryCreatorStoreProvider: React.FC<{
|
|
88
88
|
|
89
89
|
export const DataSpaceQueryCreator = observer(() => {
|
90
90
|
const applicationStore = useApplicationStore();
|
91
|
-
const parameters = useParams<DataSpaceQueryCreatorPathParams
|
92
|
-
const gav = parameters
|
91
|
+
const parameters = useParams<DataSpaceQueryCreatorPathParams>();
|
92
|
+
const gav = parameters[DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV];
|
93
93
|
const dataSpacePath =
|
94
|
-
parameters
|
94
|
+
parameters[DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH];
|
95
95
|
const executionContext =
|
96
|
-
parameters
|
97
|
-
DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.EXECUTION_CONTEXT
|
98
|
-
];
|
96
|
+
parameters[DATA_SPACE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.EXECUTION_CONTEXT];
|
99
97
|
const runtimePath =
|
100
98
|
applicationStore.navigationService.navigator.getCurrentLocationParameterValue(
|
101
99
|
DATA_SPACE_QUERY_CREATOR_QUERY_PARAM_TOKEN.RUNTIME_PATH,
|
@@ -82,7 +82,7 @@ const DataSpaceQuerySetupSetupPanelContent = observer(
|
|
82
82
|
</label>
|
83
83
|
<CustomSelectorInput
|
84
84
|
inputId="query-builder__setup__data-space-selector"
|
85
|
-
|
85
|
+
inputRef={dataSpaceSearchRef}
|
86
86
|
className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
|
87
87
|
options={dataSpaceOptions}
|
88
88
|
isLoading={queryBuilderState.loadDataSpacesState.isInProgress}
|
@@ -28,6 +28,7 @@ import {
|
|
28
28
|
type DataSpaceTemplateQueryCreatorPathParams,
|
29
29
|
} from '../../__lib__/DSL_DataSpace_LegendQueryNavigation.js';
|
30
30
|
import { QueryEditor } from '../QueryEditor.js';
|
31
|
+
import { guaranteeNonNullable } from '@finos/legend-shared';
|
31
32
|
|
32
33
|
const DataSpaceTemplateQueryCreatorStoreProvider: React.FC<{
|
33
34
|
children: React.ReactNode;
|
@@ -59,16 +60,19 @@ const DataSpaceTemplateQueryCreatorStoreProvider: React.FC<{
|
|
59
60
|
|
60
61
|
export const DataSpaceTemplateQueryCreator = observer(() => {
|
61
62
|
const parameters = useParams<DataSpaceTemplateQueryCreatorPathParams>();
|
62
|
-
const gav =
|
63
|
-
parameters[DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV]
|
64
|
-
|
63
|
+
const gav = guaranteeNonNullable(
|
64
|
+
parameters[DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.GAV],
|
65
|
+
);
|
66
|
+
const dataSpacePath = guaranteeNonNullable(
|
65
67
|
parameters[
|
66
68
|
DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.DATA_SPACE_PATH
|
67
|
-
]
|
68
|
-
|
69
|
+
],
|
70
|
+
);
|
71
|
+
const templateQueryId = guaranteeNonNullable(
|
69
72
|
parameters[
|
70
73
|
DATA_SPACE_TEMPLATE_QUERY_CREATOR_ROUTE_PATTERN_TOKEN.TEMPLATE_QUERY_ID
|
71
|
-
]
|
74
|
+
],
|
75
|
+
);
|
72
76
|
|
73
77
|
return (
|
74
78
|
<DataSpaceTemplateQueryCreatorStoreProvider
|
@@ -24,6 +24,7 @@ import {
|
|
24
24
|
import { DEFAULT_TAB_SIZE } from '@finos/legend-application';
|
25
25
|
import { assertErrorThrown, type GeneratorFn } from '@finos/legend-shared';
|
26
26
|
import { QueryBuilderDataCubeEngine } from '@finos/legend-query-builder';
|
27
|
+
import { flow, makeObservable, observable } from 'mobx';
|
27
28
|
|
28
29
|
export class ExistingQueryDataCubeEditorStore {
|
29
30
|
readonly applicationStore: LegendQueryApplicationStore;
|
@@ -37,6 +38,10 @@ export class ExistingQueryDataCubeEditorStore {
|
|
37
38
|
depotServerClient: DepotServerClient,
|
38
39
|
queryId: string,
|
39
40
|
) {
|
41
|
+
makeObservable(this, {
|
42
|
+
initialize: flow,
|
43
|
+
engine: observable,
|
44
|
+
});
|
40
45
|
this.applicationStore = applicationStore;
|
41
46
|
this.depotServerClient = depotServerClient;
|
42
47
|
this.graphManagerState = new GraphManagerState(
|
@@ -81,8 +86,10 @@ export class ExistingQueryDataCubeEditorStore {
|
|
81
86
|
(yield this.graphManagerState.graphManager.pureCodeToLambda(
|
82
87
|
content,
|
83
88
|
)) as unknown as RawLambda;
|
89
|
+
// TODO: we should be able to call engine and convert lambda to relation if not one.
|
84
90
|
const engine = new QueryBuilderDataCubeEngine(
|
85
91
|
lambda,
|
92
|
+
undefined,
|
86
93
|
execConext.mapping,
|
87
94
|
execConext.runtime,
|
88
95
|
this.graphManagerState,
|