@finos/legend-application-studio 28.18.73 → 28.18.75
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/__lib__/LegendStudioNavigation.d.ts.map +1 -1
- package/lib/__lib__/LegendStudioNavigation.js +0 -18
- package/lib/__lib__/LegendStudioNavigation.js.map +1 -1
- package/lib/components/editor/Editor.d.ts.map +1 -1
- package/lib/components/editor/Editor.js +1 -1
- package/lib/components/editor/Editor.js.map +1 -1
- package/lib/components/editor/editor-group/function-activator/FunctionEditor.js +1 -1
- package/lib/components/editor/editor-group/function-activator/FunctionEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceEditor.js +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.js +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
- package/lib/components/editor/panel-group/DevToolPanel.js +1 -1
- package/lib/components/editor/side-bar/Explorer.js +1 -1
- package/lib/components/editor/side-bar/Explorer.js.map +1 -1
- package/lib/components/project-reviewer/ProjectReviewStoreProvider.d.ts +2 -2
- package/lib/components/project-reviewer/ProjectReviewStoreProvider.d.ts.map +1 -1
- package/lib/components/project-reviewer/ProjectReviewStoreProvider.js +2 -1
- package/lib/components/project-reviewer/ProjectReviewStoreProvider.js.map +1 -1
- package/lib/components/showcase/ShowcaseViewer.d.ts.map +1 -1
- package/lib/components/showcase/ShowcaseViewer.js +1 -1
- package/lib/components/showcase/ShowcaseViewer.js.map +1 -1
- package/lib/index.css +1 -1
- package/lib/package.json +3 -2
- package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
- package/lib/stores/LegendStudioBaseStore.js +3 -2
- package/lib/stores/LegendStudioBaseStore.js.map +1 -1
- package/lib/stores/editor/EditorGraphState.d.ts.map +1 -1
- package/lib/stores/editor/EditorGraphState.js +1 -0
- package/lib/stores/editor/EditorGraphState.js.map +1 -1
- package/lib/stores/editor/EditorStore.d.ts +3 -3
- package/lib/stores/editor/EditorStore.d.ts.map +1 -1
- package/lib/stores/editor/EditorStore.js +5 -4
- package/lib/stores/editor/EditorStore.js.map +1 -1
- package/lib/stores/editor/data-cube/{DataCubeViewerState.d.ts → LegendStudioDataCubeHelper.d.ts} +1 -1
- package/lib/stores/editor/data-cube/LegendStudioDataCubeHelper.d.ts.map +1 -0
- package/lib/stores/editor/data-cube/{DataCubeViewerState.js → LegendStudioDataCubeHelper.js} +8 -4
- package/lib/stores/editor/data-cube/LegendStudioDataCubeHelper.js.map +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.js +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
- package/lib/stores/project-view/ProjectViewerStore.d.ts.map +1 -1
- package/lib/stores/project-view/ProjectViewerStore.js +1 -0
- package/lib/stores/project-view/ProjectViewerStore.js.map +1 -1
- package/lib/stores/showcase/ShowcaseViewerStore.d.ts.map +1 -1
- package/lib/stores/showcase/ShowcaseViewerStore.js +1 -0
- package/lib/stores/showcase/ShowcaseViewerStore.js.map +1 -1
- package/package.json +14 -13
- package/src/__lib__/LegendStudioNavigation.ts +1 -19
- package/src/components/editor/Editor.tsx +5 -3
- package/src/components/editor/editor-group/function-activator/FunctionEditor.tsx +1 -1
- package/src/components/editor/editor-group/service-editor/ServiceEditor.tsx +1 -2
- package/src/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.tsx +1 -1
- package/src/components/editor/panel-group/DevToolPanel.tsx +1 -1
- package/src/components/editor/side-bar/Explorer.tsx +1 -1
- package/src/components/project-reviewer/ProjectReviewStoreProvider.tsx +3 -4
- package/src/components/showcase/ShowcaseViewer.tsx +5 -3
- package/src/stores/LegendStudioBaseStore.ts +3 -3
- package/src/stores/editor/EditorGraphState.ts +4 -0
- package/src/stores/editor/EditorStore.ts +9 -5
- package/src/stores/editor/data-cube/{DataCubeViewerState.ts → LegendStudioDataCubeHelper.ts} +15 -3
- package/src/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.ts +1 -1
- package/src/stores/project-view/ProjectViewerStore.ts +4 -0
- package/src/stores/showcase/ShowcaseViewerStore.ts +4 -0
- package/tsconfig.json +1 -1
- package/lib/stores/editor/data-cube/DataCubeViewerState.d.ts.map +0 -1
- package/lib/stores/editor/data-cube/DataCubeViewerState.js.map +0 -1
@@ -526,8 +526,7 @@ const ServiceGeneralEditor = observer(() => {
|
|
526
526
|
>
|
527
527
|
<ErrorIcon />
|
528
528
|
<div className="service-editor__owner__validation-label">
|
529
|
-
Service requires at least {MINIMUM_SERVICE_OWNERS}
|
530
|
-
owners
|
529
|
+
{`Service requires at least ${MINIMUM_SERVICE_OWNERS} owners`}
|
531
530
|
</div>
|
532
531
|
</div>
|
533
532
|
)}
|
@@ -69,7 +69,7 @@ import { EXTERNAL_APPLICATION_NAVIGATION__generateServiceQueryCreatorUrl } from
|
|
69
69
|
import type { EditorStore } from '../../../../stores/editor/EditorStore.js';
|
70
70
|
import { pureExecution_setFunction } from '../../../../stores/graph-modifier/DSL_Service_GraphModifierHelper.js';
|
71
71
|
import { ServiceEditorState } from '../../../../stores/editor/editor-state/element-editor-state/service/ServiceEditorState.js';
|
72
|
-
import { openDataCube } from '../../../../stores/editor/data-cube/
|
72
|
+
import { openDataCube } from '../../../../stores/editor/data-cube/LegendStudioDataCubeHelper.js';
|
73
73
|
|
74
74
|
const ServiceExecutionResultViewer = observer(
|
75
75
|
(props: { executionState: ServicePureExecutionState }) => {
|
@@ -154,7 +154,7 @@ export const DevToolPanel = observer(() => {
|
|
154
154
|
/>
|
155
155
|
<PanelFormBooleanField
|
156
156
|
name="Use Dev client protocol version"
|
157
|
-
prompt="Specifies if development client
|
157
|
+
prompt="Specifies if development client protocol (v_X_X_X) version should be used for execution"
|
158
158
|
value={engineConfig.useDevClientProtocol}
|
159
159
|
isReadOnly={false}
|
160
160
|
update={toggleSetUseDevClientProtocol}
|
@@ -147,7 +147,7 @@ import { QueryDatabaseState } from '../../../stores/editor/editor-state/element-
|
|
147
147
|
import {
|
148
148
|
isElementSupportedByDataCube,
|
149
149
|
openDataCube,
|
150
|
-
} from '../../../stores/editor/data-cube/
|
150
|
+
} from '../../../stores/editor/data-cube/LegendStudioDataCubeHelper.js';
|
151
151
|
|
152
152
|
const ElementRenamer = observer(() => {
|
153
153
|
const editorStore = useEditorStore();
|
@@ -25,11 +25,10 @@ const ProjectReviewerStoreContext = createContext<
|
|
25
25
|
ProjectReviewerStore | undefined
|
26
26
|
>(undefined);
|
27
27
|
|
28
|
-
export const ProjectReviewerStoreProvider = ({
|
29
|
-
children,
|
30
|
-
}: {
|
28
|
+
export const ProjectReviewerStoreProvider = (props: {
|
31
29
|
children: React.ReactNode;
|
32
|
-
})
|
30
|
+
}) => {
|
31
|
+
const { children } = props;
|
33
32
|
const editorStore = useEditorStore();
|
34
33
|
editorStore.setMode(EDITOR_MODE.REVIEW);
|
35
34
|
const store = useLocalObservable(() => new ProjectReviewerStore(editorStore));
|
@@ -410,10 +410,12 @@ export const ShowcaseViewer = withEditorStore(
|
|
410
410
|
)}
|
411
411
|
<ShowcaseViewerStatusBar />
|
412
412
|
<EmbeddedQueryBuilder />
|
413
|
-
{editorStore.
|
413
|
+
{editorStore.embeddedDataCubeViewerState && (
|
414
414
|
<QueryDataCubeViewer
|
415
|
-
|
416
|
-
close={() =>
|
415
|
+
state={editorStore.embeddedDataCubeViewerState}
|
416
|
+
close={() =>
|
417
|
+
editorStore.setEmbeddedDataCubeViewerState(undefined)
|
418
|
+
}
|
417
419
|
options={{
|
418
420
|
fullScreen: true,
|
419
421
|
}}
|
@@ -22,7 +22,6 @@ import {
|
|
22
22
|
ActionState,
|
23
23
|
LogEvent,
|
24
24
|
assertErrorThrown,
|
25
|
-
NetworkClient,
|
26
25
|
} from '@finos/legend-shared';
|
27
26
|
import {
|
28
27
|
type ApplicationStore,
|
@@ -48,6 +47,7 @@ import type { LegendStudioApplicationConfig } from '../application/LegendStudioA
|
|
48
47
|
import { LegendStudioEventHelper } from '../__lib__/LegendStudioEventHelper.js';
|
49
48
|
import { LEGEND_STUDIO_SDLC_BYPASSED_ROUTE_PATTERN } from '../__lib__/LegendStudioNavigation.js';
|
50
49
|
import { ShowcaseManagerState } from './ShowcaseManagerState.js';
|
50
|
+
import { getCurrentUserIDFromEngineServer } from '@finos/legend-graph';
|
51
51
|
|
52
52
|
export type LegendStudioApplicationStore = ApplicationStore<
|
53
53
|
LegendStudioApplicationConfig,
|
@@ -168,8 +168,8 @@ export class LegendStudioBaseStore {
|
|
168
168
|
if (this.applicationStore.identityService.isAnonymous) {
|
169
169
|
try {
|
170
170
|
this.applicationStore.identityService.setCurrentUser(
|
171
|
-
(yield
|
172
|
-
|
171
|
+
(yield getCurrentUserIDFromEngineServer(
|
172
|
+
this.applicationStore.config.engineServerUrl,
|
173
173
|
)) as string,
|
174
174
|
);
|
175
175
|
} catch (error) {
|
@@ -453,6 +453,10 @@ export class EditorGraphState {
|
|
453
453
|
this.editorStore.applicationStore.notificationService.notifyError(
|
454
454
|
`Can't build graph. Redirected to text mode for debugging. Error: ${error.message}`,
|
455
455
|
);
|
456
|
+
this.editorStore.applicationStore.logService.error(
|
457
|
+
LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE),
|
458
|
+
error,
|
459
|
+
);
|
456
460
|
try {
|
457
461
|
yield flowResult(
|
458
462
|
this.editorStore.switchModes(GRAPH_EDITOR_MODE.GRAMMAR_TEXT, {
|
@@ -117,7 +117,7 @@ import {
|
|
117
117
|
GraphEditLazyGrammarModeState,
|
118
118
|
LazyTextEditorStore,
|
119
119
|
} from '../lazy-text-editor/LazyTextEditorStore.js';
|
120
|
-
import type {
|
120
|
+
import type { QueryBuilderDataCubeViewerState } from '@finos/legend-query-builder';
|
121
121
|
|
122
122
|
export abstract class EditorExtensionState {
|
123
123
|
/**
|
@@ -179,7 +179,7 @@ export class EditorStore implements CommandRegistrar {
|
|
179
179
|
modelImporterState: ModelImporterState;
|
180
180
|
projectConfigurationEditorState: ProjectConfigurationEditorState;
|
181
181
|
embeddedQueryBuilderState: EmbeddedQueryBuilderState;
|
182
|
-
|
182
|
+
embeddedDataCubeViewerState: QueryBuilderDataCubeViewerState | undefined;
|
183
183
|
newElementState: NewElementState;
|
184
184
|
/**
|
185
185
|
* Since we want to share element generation state across all element in the editor, we will create 1 element generate state
|
@@ -225,7 +225,6 @@ export class EditorStore implements CommandRegistrar {
|
|
225
225
|
showSearchElementCommand: observable,
|
226
226
|
quickInputState: observable,
|
227
227
|
lazyTextEditorStore: observable,
|
228
|
-
embeddedDataCubeViewerEngine: observable,
|
229
228
|
|
230
229
|
isInViewerMode: computed,
|
231
230
|
disableGraphEditing: computed,
|
@@ -250,6 +249,9 @@ export class EditorStore implements CommandRegistrar {
|
|
250
249
|
buildGraph: flow,
|
251
250
|
toggleTextMode: flow,
|
252
251
|
switchModes: flow,
|
252
|
+
|
253
|
+
embeddedDataCubeViewerState: observable,
|
254
|
+
setEmbeddedDataCubeViewerState: action,
|
253
255
|
});
|
254
256
|
|
255
257
|
this.applicationStore = applicationStore;
|
@@ -377,8 +379,10 @@ export class EditorStore implements CommandRegistrar {
|
|
377
379
|
this.showSearchElementCommand = val;
|
378
380
|
}
|
379
381
|
|
380
|
-
|
381
|
-
|
382
|
+
setEmbeddedDataCubeViewerState(
|
383
|
+
val: QueryBuilderDataCubeViewerState | undefined,
|
384
|
+
): void {
|
385
|
+
this.embeddedDataCubeViewerState = val;
|
382
386
|
}
|
383
387
|
|
384
388
|
setQuickInputState<T>(val: QuickInputState<T> | undefined): void {
|
package/src/stores/editor/data-cube/{DataCubeViewerState.ts → LegendStudioDataCubeHelper.ts}
RENAMED
@@ -26,13 +26,17 @@ import {
|
|
26
26
|
Service,
|
27
27
|
} from '@finos/legend-graph';
|
28
28
|
import type { EditorStore } from '../EditorStore.js';
|
29
|
-
import {
|
29
|
+
import {
|
30
|
+
QueryBuilderDataCubeEngine,
|
31
|
+
QueryBuilderDataCubeViewerState,
|
32
|
+
} from '@finos/legend-query-builder';
|
30
33
|
import {
|
31
34
|
assertErrorThrown,
|
32
35
|
guaranteeNonNullable,
|
33
36
|
guaranteeType,
|
34
37
|
UnsupportedOperationError,
|
35
38
|
} from '@finos/legend-shared';
|
39
|
+
import { type DataCubeQuery } from '@finos/legend-data-cube';
|
36
40
|
|
37
41
|
export const isElementSupportedByDataCube = (
|
38
42
|
element: PackageableElement,
|
@@ -44,7 +48,9 @@ export const openDataCube = async (
|
|
44
48
|
editorStore: EditorStore,
|
45
49
|
): Promise<void> => {
|
46
50
|
try {
|
51
|
+
let query: DataCubeQuery;
|
47
52
|
let engine: QueryBuilderDataCubeEngine;
|
53
|
+
|
48
54
|
if (element instanceof ConcreteFunctionDefinition) {
|
49
55
|
const body = element.expressionSequence;
|
50
56
|
const rawLambda = new RawLambda([], body);
|
@@ -55,6 +61,7 @@ export const openDataCube = async (
|
|
55
61
|
undefined,
|
56
62
|
editorStore.graphManagerState,
|
57
63
|
);
|
64
|
+
query = await engine.generateInitialQuery();
|
58
65
|
} else if (element instanceof Service) {
|
59
66
|
const exec = guaranteeType(
|
60
67
|
element.execution,
|
@@ -92,20 +99,25 @@ export const openDataCube = async (
|
|
92
99
|
runtime?.packageableRuntime.value.path,
|
93
100
|
editorStore.graphManagerState,
|
94
101
|
);
|
102
|
+
query = await engine.generateInitialQuery();
|
95
103
|
} else {
|
96
104
|
throw new UnsupportedOperationError(
|
97
105
|
'Element not supported to open Data Cube with',
|
98
106
|
);
|
99
107
|
}
|
108
|
+
|
100
109
|
try {
|
101
|
-
await engine.
|
110
|
+
await engine.getRelationType(engine.selectInitialQuery);
|
102
111
|
} catch (error) {
|
103
112
|
assertErrorThrown(error);
|
104
113
|
throw new UnsupportedOperationError(
|
105
114
|
'Only relation type queries supported in Data Cube',
|
106
115
|
);
|
107
116
|
}
|
108
|
-
|
117
|
+
|
118
|
+
editorStore.setEmbeddedDataCubeViewerState(
|
119
|
+
new QueryBuilderDataCubeViewerState(query, engine),
|
120
|
+
);
|
109
121
|
} catch (error) {
|
110
122
|
assertErrorThrown(error);
|
111
123
|
editorStore.applicationStore.notificationService.notifyError(
|
package/src/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.ts
CHANGED
@@ -221,7 +221,7 @@ export class ServicePureExecutionQueryState extends LambdaEditorState {
|
|
221
221
|
this.execution = execution;
|
222
222
|
this.queryLoaderState = new QueryLoaderState(
|
223
223
|
editorStore.applicationStore,
|
224
|
-
editorStore.graphManagerState,
|
224
|
+
editorStore.graphManagerState.graphManager,
|
225
225
|
{
|
226
226
|
loadQuery: (query: LightQuery): void => {
|
227
227
|
flowResult(this.importQuery(query.id)).catch(
|
@@ -479,6 +479,10 @@ export class ProjectViewerStore {
|
|
479
479
|
this.editorStore.applicationStore.notificationService.notifyError(
|
480
480
|
`Can't build graph. Redirected to text mode for debugging. Error: ${error.message}`,
|
481
481
|
);
|
482
|
+
this.editorStore.applicationStore.logService.error(
|
483
|
+
LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE),
|
484
|
+
error,
|
485
|
+
);
|
482
486
|
yield flowResult(
|
483
487
|
this.editorStore.switchModes(GRAPH_EDITOR_MODE.GRAMMAR_TEXT, {
|
484
488
|
isGraphBuildFailure: true,
|
@@ -270,6 +270,10 @@ export class ShowcaseViewerStore {
|
|
270
270
|
this.editorStore.applicationStore.notificationService.notifyError(
|
271
271
|
`Can't build graph. Redirected to text mode for debugging. Error: ${error.message}`,
|
272
272
|
);
|
273
|
+
this.editorStore.applicationStore.logService.error(
|
274
|
+
LogEvent.create(GRAPH_MANAGER_EVENT.GRAPH_BUILDER_FAILURE),
|
275
|
+
error,
|
276
|
+
);
|
273
277
|
yield flowResult(
|
274
278
|
this.editorStore.switchModes(GRAPH_EDITOR_MODE.GRAMMAR_TEXT, {
|
275
279
|
isGraphBuildFailure: true,
|
package/tsconfig.json
CHANGED
@@ -93,7 +93,7 @@
|
|
93
93
|
"./src/stores/editor/QuickInputState.ts",
|
94
94
|
"./src/stores/editor/StandardEditorMode.ts",
|
95
95
|
"./src/stores/editor/__test-utils__/EditorStoreTestUtils.ts",
|
96
|
-
"./src/stores/editor/data-cube/
|
96
|
+
"./src/stores/editor/data-cube/LegendStudioDataCubeHelper.ts",
|
97
97
|
"./src/stores/editor/editor-state/ArtifactGenerationViewerState.ts",
|
98
98
|
"./src/stores/editor/editor-state/EditorState.ts",
|
99
99
|
"./src/stores/editor/editor-state/ExternalFormatState.ts",
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"DataCubeViewerState.d.ts","sourceRoot":"","sources":["../../../../src/stores/editor/data-cube/DataCubeViewerState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,kBAAkB,EAOxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrD,eAAO,MAAM,4BAA4B,YAC9B,kBAAkB,KAC1B,OAC0E,CAAC;AAE9E,eAAO,MAAM,YAAY,YACd,kBAAkB,eACd,WAAW,KACvB,OAAO,CAAC,IAAI,CAsEd,CAAC"}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"DataCubeViewerState.js","sourceRoot":"","sources":["../../../../src/stores/editor/data-cube/DataCubeViewerState.ts"],"names":[],"mappings":"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"}
|