@finos/legend-application-studio 22.2.1 → 22.3.0
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/editor/StatusBar.js +1 -1
- package/lib/components/editor/StatusBar.js.map +1 -1
- package/lib/components/editor/command-center/ProjectSearchCommand.d.ts.map +1 -1
- package/lib/components/editor/command-center/ProjectSearchCommand.js +1 -0
- package/lib/components/editor/command-center/ProjectSearchCommand.js.map +1 -1
- package/lib/components/editor/edit-panel/EditPanel.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/EditPanel.js +24 -11
- package/lib/components/editor/edit-panel/EditPanel.js.map +1 -1
- package/lib/components/editor/edit-panel/GenerationSpecificationEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js +2 -1
- package/lib/components/editor/edit-panel/GenerationSpecificationEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js +1 -0
- package/lib/components/editor/edit-panel/connection-editor/ConnectionEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.js +4 -3
- package/lib/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/element-generation-editor/ElementXTGenerationEditor.d.ts +32 -0
- package/lib/components/editor/edit-panel/element-generation-editor/ElementXTGenerationEditor.d.ts.map +1 -0
- package/lib/components/editor/edit-panel/element-generation-editor/ElementXTGenerationEditor.js +66 -0
- package/lib/components/editor/edit-panel/element-generation-editor/ElementXTGenerationEditor.js.map +1 -0
- package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.d.ts +0 -23
- package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js +6 -58
- package/lib/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/element-generation-editor/FileSystemViewer.d.ts +41 -0
- package/lib/components/editor/edit-panel/element-generation-editor/FileSystemViewer.d.ts.map +1 -0
- package/lib/components/editor/edit-panel/element-generation-editor/FileSystemViewer.js +77 -0
- package/lib/components/editor/edit-panel/element-generation-editor/FileSystemViewer.js.map +1 -0
- package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.d.ts +7 -0
- package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.js +19 -14
- package/lib/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.js +3 -1
- package/lib/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationSourceSelectorModal.js +3 -1
- package/lib/components/editor/edit-panel/mapping-editor/InstanceSetImplementationSourceSelectorModal.js.map +1 -1
- package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js +3 -0
- package/lib/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.js.map +1 -1
- package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js +3 -1
- package/lib/components/editor/edit-panel/mapping-editor/NewMappingElementModal.js.map +1 -1
- package/lib/components/editor/edit-panel/service-editor/ServiceEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js +51 -13
- package/lib/components/editor/edit-panel/service-editor/ServiceEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js +18 -10
- package/lib/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.d.ts +1 -3
- package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js +2 -20
- package/lib/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.js.map +1 -1
- package/lib/components/editor/edit-panel/uml-editor/ClassEditor.d.ts.map +1 -1
- package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js +9 -3
- package/lib/components/editor/edit-panel/uml-editor/ClassEditor.js.map +1 -1
- package/lib/components/editor/side-bar/CreateNewElementModal.d.ts.map +1 -1
- package/lib/components/editor/side-bar/CreateNewElementModal.js +1 -0
- package/lib/components/editor/side-bar/CreateNewElementModal.js.map +1 -1
- package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
- package/lib/components/editor/side-bar/Explorer.js +29 -8
- package/lib/components/editor/side-bar/Explorer.js.map +1 -1
- package/lib/components/editor/side-bar/testable/GlobalTestRunner.d.ts.map +1 -1
- package/lib/components/editor/side-bar/testable/GlobalTestRunner.js +17 -3
- package/lib/components/editor/side-bar/testable/GlobalTestRunner.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/package.json +3 -3
- package/lib/stores/DSL_Generation_LegendStudioApplicationPlugin_Extension.d.ts +2 -2
- package/lib/stores/DSL_Generation_LegendStudioApplicationPlugin_Extension.d.ts.map +1 -1
- package/lib/stores/DependencyProjectViewerHelper.d.ts +19 -0
- package/lib/stores/DependencyProjectViewerHelper.d.ts.map +1 -0
- package/lib/stores/DependencyProjectViewerHelper.js +23 -0
- package/lib/stores/DependencyProjectViewerHelper.js.map +1 -0
- package/lib/stores/EditorGraphState.d.ts +9 -2
- package/lib/stores/EditorGraphState.d.ts.map +1 -1
- package/lib/stores/EditorGraphState.js +35 -97
- package/lib/stores/EditorGraphState.js.map +1 -1
- package/lib/stores/EditorStore.d.ts.map +1 -1
- package/lib/stores/EditorStore.js +7 -1
- package/lib/stores/EditorStore.js.map +1 -1
- package/lib/stores/EditorTabManagerState.d.ts +1 -1
- package/lib/stores/EditorTabManagerState.d.ts.map +1 -1
- package/lib/stores/EditorTabManagerState.js +11 -13
- package/lib/stores/EditorTabManagerState.js.map +1 -1
- package/lib/stores/ExplorerTreeState.d.ts +4 -4
- package/lib/stores/ExplorerTreeState.d.ts.map +1 -1
- package/lib/stores/ExplorerTreeState.js +12 -13
- package/lib/stores/ExplorerTreeState.js.map +1 -1
- package/lib/stores/editor/NewElementState.d.ts.map +1 -1
- package/lib/stores/editor/NewElementState.js +0 -3
- package/lib/stores/editor/NewElementState.js.map +1 -1
- package/lib/stores/editor-state/ExternalFormatState.d.ts +2 -0
- package/lib/stores/editor-state/ExternalFormatState.d.ts.map +1 -1
- package/lib/stores/editor-state/ExternalFormatState.js +6 -0
- package/lib/stores/editor-state/ExternalFormatState.js.map +1 -1
- package/lib/stores/editor-state/FileGenerationState.d.ts +18 -18
- package/lib/stores/editor-state/FileGenerationState.d.ts.map +1 -1
- package/lib/stores/editor-state/FileGenerationState.js +86 -133
- package/lib/stores/editor-state/FileGenerationState.js.map +1 -1
- package/lib/stores/editor-state/FileGenerationViewerState.d.ts +3 -3
- package/lib/stores/editor-state/FileGenerationViewerState.d.ts.map +1 -1
- package/lib/stores/editor-state/FileGenerationViewerState.js.map +1 -1
- package/lib/stores/editor-state/FileSystemState.d.ts +30 -0
- package/lib/stores/editor-state/FileSystemState.d.ts.map +1 -0
- package/lib/stores/editor-state/FileSystemState.js +82 -0
- package/lib/stores/editor-state/FileSystemState.js.map +1 -0
- package/lib/stores/editor-state/GraphGenerationState.d.ts +9 -9
- package/lib/stores/editor-state/GraphGenerationState.d.ts.map +1 -1
- package/lib/stores/editor-state/GraphGenerationState.js +14 -15
- package/lib/stores/editor-state/GraphGenerationState.js.map +1 -1
- package/lib/stores/editor-state/element-editor-state/ElementEditorState.d.ts +25 -2
- package/lib/stores/editor-state/element-editor-state/ElementEditorState.d.ts.map +1 -1
- package/lib/stores/editor-state/element-editor-state/ElementEditorState.js +50 -7
- package/lib/stores/editor-state/element-editor-state/ElementEditorState.js.map +1 -1
- package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.d.ts +44 -0
- package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.d.ts.map +1 -0
- package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.js +172 -0
- package/lib/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.js.map +1 -0
- package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js +1 -1
- package/lib/stores/editor-state/element-editor-state/mapping/MappingExecutionState.js.map +1 -1
- package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js +2 -2
- package/lib/stores/editor-state/element-editor-state/mapping/MappingTestState.js.map +1 -1
- package/lib/stores/editor-state/element-editor-state/service/ServiceEditorState.d.ts +3 -0
- package/lib/stores/editor-state/element-editor-state/service/ServiceEditorState.d.ts.map +1 -1
- package/lib/stores/editor-state/element-editor-state/service/ServiceEditorState.js +14 -2
- package/lib/stores/editor-state/element-editor-state/service/ServiceEditorState.js.map +1 -1
- package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.d.ts +9 -6
- package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.d.ts.map +1 -1
- package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js +38 -28
- package/lib/stores/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
- package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.d.ts.map +1 -1
- package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js +6 -3
- package/lib/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.js.map +1 -1
- package/lib/stores/shared/FileSystemTreeUtils.d.ts +56 -0
- package/lib/stores/shared/FileSystemTreeUtils.d.ts.map +1 -0
- package/lib/stores/shared/{FileGenerationTreeUtils.js → FileSystemTreeUtils.js} +31 -32
- package/lib/stores/shared/FileSystemTreeUtils.js.map +1 -0
- package/lib/stores/shared/PackageTreeUtils.d.ts +6 -4
- package/lib/stores/shared/PackageTreeUtils.d.ts.map +1 -1
- package/lib/stores/shared/PackageTreeUtils.js +90 -11
- package/lib/stores/shared/PackageTreeUtils.js.map +1 -1
- package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.d.ts +3 -3
- package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.d.ts.map +1 -1
- package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.js +37 -1
- package/lib/stores/sidebar-state/testable/GlobalTestRunnerState.js.map +1 -1
- package/package.json +12 -12
- package/src/components/editor/StatusBar.tsx +1 -1
- package/src/components/editor/command-center/ProjectSearchCommand.tsx +1 -0
- package/src/components/editor/edit-panel/EditPanel.tsx +79 -25
- package/src/components/editor/edit-panel/GenerationSpecificationEditor.tsx +2 -1
- package/src/components/editor/edit-panel/connection-editor/ConnectionEditor.tsx +1 -0
- package/src/components/editor/edit-panel/element-generation-editor/ElementGenerationEditor.tsx +5 -7
- package/src/components/editor/edit-panel/element-generation-editor/ElementXTGenerationEditor.tsx +194 -0
- package/src/components/editor/edit-panel/element-generation-editor/FileGenerationEditor.tsx +6 -270
- package/src/components/editor/edit-panel/element-generation-editor/FileSystemViewer.tsx +296 -0
- package/src/components/editor/edit-panel/external-format-editor/DSL_ExternalFormat_BindingElementEditor.tsx +177 -155
- package/src/components/editor/edit-panel/mapping-editor/EnumerationMappingEditor.tsx +3 -1
- package/src/components/editor/edit-panel/mapping-editor/InstanceSetImplementationSourceSelectorModal.tsx +3 -3
- package/src/components/editor/edit-panel/mapping-editor/MappingExecutionQueryBuilder.tsx +3 -0
- package/src/components/editor/edit-panel/mapping-editor/NewMappingElementModal.tsx +3 -1
- package/src/components/editor/edit-panel/service-editor/ServiceEditor.tsx +243 -184
- package/src/components/editor/edit-panel/service-editor/ServiceExecutionQueryEditor.tsx +42 -15
- package/src/components/editor/edit-panel/service-editor/testable/ServiceTestableEditor.tsx +2 -65
- package/src/components/editor/edit-panel/uml-editor/ClassEditor.tsx +9 -3
- package/src/components/editor/side-bar/CreateNewElementModal.tsx +1 -0
- package/src/components/editor/side-bar/Explorer.tsx +82 -13
- package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +31 -9
- package/src/index.ts +5 -2
- package/src/stores/DSL_Generation_LegendStudioApplicationPlugin_Extension.ts +2 -2
- package/src/stores/DependencyProjectViewerHelper.ts +39 -0
- package/src/stores/EditorGraphState.ts +56 -155
- package/src/stores/EditorStore.ts +15 -5
- package/src/stores/EditorTabManagerState.ts +17 -20
- package/src/stores/ExplorerTreeState.ts +26 -18
- package/src/stores/editor/NewElementState.ts +0 -2
- package/src/stores/editor-state/ExternalFormatState.ts +9 -0
- package/src/stores/editor-state/FileGenerationState.ts +129 -180
- package/src/stores/editor-state/FileGenerationViewerState.ts +3 -3
- package/src/stores/editor-state/FileSystemState.ts +111 -0
- package/src/stores/editor-state/GraphGenerationState.ts +35 -31
- package/src/stores/editor-state/element-editor-state/ElementEditorState.ts +91 -6
- package/src/stores/editor-state/element-editor-state/ElementExternalFormatGenerationState.ts +266 -0
- package/src/stores/editor-state/element-editor-state/mapping/MappingExecutionState.ts +1 -1
- package/src/stores/editor-state/element-editor-state/mapping/MappingTestState.ts +2 -2
- package/src/stores/editor-state/element-editor-state/service/ServiceEditorState.ts +23 -2
- package/src/stores/editor-state/element-editor-state/service/ServiceExecutionState.ts +60 -55
- package/src/stores/editor-state/element-editor-state/service/testable/ServiceTestEditorState.ts +6 -2
- package/src/stores/shared/{FileGenerationTreeUtils.ts → FileSystemTreeUtils.ts} +77 -76
- package/src/stores/shared/PackageTreeUtils.ts +144 -10
- package/src/stores/sidebar-state/testable/GlobalTestRunnerState.ts +42 -3
- package/tsconfig.json +6 -1
- package/lib/stores/shared/FileGenerationTreeUtils.d.ts +0 -56
- package/lib/stores/shared/FileGenerationTreeUtils.d.ts.map +0 -1
- package/lib/stores/shared/FileGenerationTreeUtils.js.map +0 -1
|
@@ -24,19 +24,12 @@ import {
|
|
|
24
24
|
ContextMenu,
|
|
25
25
|
Dialog,
|
|
26
26
|
BlankPanelPlaceholder,
|
|
27
|
-
Panel,
|
|
28
|
-
LockIcon,
|
|
29
27
|
ModalTitle,
|
|
30
28
|
MenuContent,
|
|
31
29
|
MenuContentItem,
|
|
32
30
|
} from '@finos/legend-art';
|
|
33
31
|
import { observer } from 'mobx-react-lite';
|
|
34
|
-
import {
|
|
35
|
-
PureMultiExecution,
|
|
36
|
-
PureSingleExecution,
|
|
37
|
-
type ServiceExecution,
|
|
38
|
-
type ServiceTestSuite,
|
|
39
|
-
} from '@finos/legend-graph';
|
|
32
|
+
import type { ServiceTestSuite } from '@finos/legend-graph';
|
|
40
33
|
import { ServiceTestDataEditor } from './ServiceTestDataEditor.js';
|
|
41
34
|
import { ServiceTestsEditor } from './ServiceTestsEditor.js';
|
|
42
35
|
import { forwardRef, useState } from 'react';
|
|
@@ -48,7 +41,6 @@ import type {
|
|
|
48
41
|
} from '../../../../../stores/editor-state/element-editor-state/service/testable/ServiceTestableState.js';
|
|
49
42
|
import { useApplicationNavigationContext } from '@finos/legend-application';
|
|
50
43
|
import { LEGEND_STUDIO_APPLICATION_NAVIGATION_CONTEXT_KEY } from '../../../../../stores/LegendStudioApplicationNavigationContext.js';
|
|
51
|
-
import { UnsupportedEditorPanel } from '../../UnsupportedElementEditor.js';
|
|
52
44
|
|
|
53
45
|
export const ServiceTestSuiteEditor = observer(
|
|
54
46
|
(props: { serviceTestSuiteState: ServiceTestSuiteState }) => {
|
|
@@ -143,7 +135,7 @@ export const RenameModal = observer(
|
|
|
143
135
|
},
|
|
144
136
|
);
|
|
145
137
|
|
|
146
|
-
const ServiceTestableEditor = observer(
|
|
138
|
+
export const ServiceTestableEditor = observer(
|
|
147
139
|
(props: { serviceTestableState: ServiceTestableState }) => {
|
|
148
140
|
const { serviceTestableState } = props;
|
|
149
141
|
const serviceEditorState = serviceTestableState.serviceEditorState;
|
|
@@ -238,58 +230,3 @@ const ServiceTestableEditor = observer(
|
|
|
238
230
|
);
|
|
239
231
|
},
|
|
240
232
|
);
|
|
241
|
-
|
|
242
|
-
const ServiceTestableUnsupportedEditor = observer(
|
|
243
|
-
(props: { serviceTestableState: ServiceTestableState }) => {
|
|
244
|
-
const { serviceTestableState } = props;
|
|
245
|
-
const serviceEditorState = serviceTestableState.serviceEditorState;
|
|
246
|
-
const isReadOnly = serviceEditorState.isReadOnly;
|
|
247
|
-
return (
|
|
248
|
-
<div className="unsupported-element-editor">
|
|
249
|
-
<Panel>
|
|
250
|
-
<div className="panel__header">
|
|
251
|
-
<div className="panel__header__title">
|
|
252
|
-
{isReadOnly && (
|
|
253
|
-
<div className="uml-element-editor__header__lock">
|
|
254
|
-
<LockIcon />
|
|
255
|
-
</div>
|
|
256
|
-
)}
|
|
257
|
-
<div className="panel__header__title__label">Service Tests</div>
|
|
258
|
-
</div>
|
|
259
|
-
</div>
|
|
260
|
-
<div className="panel__content unsupported-element-editor__content">
|
|
261
|
-
<UnsupportedEditorPanel
|
|
262
|
-
text="Service Test Editor does not support services with no mapping and runtime. Please edit in text mode."
|
|
263
|
-
isReadOnly={isReadOnly}
|
|
264
|
-
/>
|
|
265
|
-
</div>
|
|
266
|
-
</Panel>
|
|
267
|
-
</div>
|
|
268
|
-
);
|
|
269
|
-
},
|
|
270
|
-
);
|
|
271
|
-
|
|
272
|
-
export const ServiceTestableWrapperEditor = observer(
|
|
273
|
-
(props: {
|
|
274
|
-
serviceTestableState: ServiceTestableState;
|
|
275
|
-
serviceExecution: ServiceExecution;
|
|
276
|
-
}) => {
|
|
277
|
-
if (
|
|
278
|
-
(props.serviceExecution instanceof PureSingleExecution &&
|
|
279
|
-
props.serviceExecution.runtime) ||
|
|
280
|
-
props.serviceExecution instanceof PureMultiExecution
|
|
281
|
-
) {
|
|
282
|
-
return (
|
|
283
|
-
<ServiceTestableEditor
|
|
284
|
-
serviceTestableState={props.serviceTestableState}
|
|
285
|
-
/>
|
|
286
|
-
);
|
|
287
|
-
} else {
|
|
288
|
-
return (
|
|
289
|
-
<ServiceTestableUnsupportedEditor
|
|
290
|
-
serviceTestableState={props.serviceTestableState}
|
|
291
|
-
/>
|
|
292
|
-
);
|
|
293
|
-
}
|
|
294
|
-
},
|
|
295
|
-
);
|
|
@@ -322,7 +322,9 @@ const PropertyBasicEditor = observer(
|
|
|
322
322
|
value={selectedPropertyType}
|
|
323
323
|
placeholder="Choose a type..."
|
|
324
324
|
filterOption={filterOption}
|
|
325
|
-
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
325
|
+
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
326
|
+
pureModel: editorStore.graphManagerState.graph,
|
|
327
|
+
})}
|
|
326
328
|
/>
|
|
327
329
|
)}
|
|
328
330
|
{!isIndirectProperty && !isReadOnly && !isEditingType && (
|
|
@@ -681,7 +683,9 @@ const DerivedPropertyBasicEditor = observer(
|
|
|
681
683
|
value={selectedPropertyType}
|
|
682
684
|
placeholder="Choose a type..."
|
|
683
685
|
filterOption={filterOption}
|
|
684
|
-
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
686
|
+
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
687
|
+
pureModel: editorStore.graphManagerState.graph,
|
|
688
|
+
})}
|
|
685
689
|
/>
|
|
686
690
|
)}
|
|
687
691
|
{!isInheritedProperty && !isReadOnly && !isEditingType && (
|
|
@@ -1086,7 +1090,9 @@ const SuperTypeEditor = observer(
|
|
|
1086
1090
|
value={selectedType}
|
|
1087
1091
|
placeholder="Choose a class"
|
|
1088
1092
|
filterOption={filterOption}
|
|
1089
|
-
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
1093
|
+
formatOptionLabel={getPackageableElementOptionFormatter({
|
|
1094
|
+
pureModel: editorStore.graphManagerState.graph,
|
|
1095
|
+
})}
|
|
1090
1096
|
/>
|
|
1091
1097
|
<button
|
|
1092
1098
|
className="uml-element-editor__basic__detail-btn"
|
|
@@ -61,12 +61,19 @@ import {
|
|
|
61
61
|
} from '../../../stores/shared/PackageTreeUtils.js';
|
|
62
62
|
import type { PackageTreeNodeData } from '../../../stores/shared/TreeUtils.js';
|
|
63
63
|
import {
|
|
64
|
-
type
|
|
65
|
-
|
|
66
|
-
} from '../../../stores/shared/
|
|
67
|
-
import {
|
|
68
|
-
import {
|
|
69
|
-
|
|
64
|
+
type FileSystemTreeNodeData,
|
|
65
|
+
getFileSystemChildNodes,
|
|
66
|
+
} from '../../../stores/shared/FileSystemTreeUtils.js';
|
|
67
|
+
import { FileSystemTree } from '../edit-panel/element-generation-editor/FileSystemViewer.js';
|
|
68
|
+
import {
|
|
69
|
+
generateViewEntityRoute,
|
|
70
|
+
generateViewProjectByGAVRoute,
|
|
71
|
+
} from '../../../stores/LegendStudioRouter.js';
|
|
72
|
+
import {
|
|
73
|
+
guaranteeNonEmptyString,
|
|
74
|
+
guaranteeNonNullable,
|
|
75
|
+
toTitleCase,
|
|
76
|
+
} from '@finos/legend-shared';
|
|
70
77
|
import { flowResult } from 'mobx';
|
|
71
78
|
import { useEditorStore } from '../EditorStoreProvider.js';
|
|
72
79
|
import {
|
|
@@ -89,6 +96,11 @@ import { useApplicationStore } from '@finos/legend-application';
|
|
|
89
96
|
import { PACKAGEABLE_ELEMENT_TYPE } from '../../../stores/shared/ModelClassifierUtils.js';
|
|
90
97
|
import { useLegendStudioApplicationStore } from '../../LegendStudioBaseStoreProvider.js';
|
|
91
98
|
import { queryClass } from '../edit-panel/uml-editor/ClassQueryBuilder.js';
|
|
99
|
+
import { createViewSDLCProjectHandler } from '../../../stores/DependencyProjectViewerHelper.js';
|
|
100
|
+
import {
|
|
101
|
+
MASTER_SNAPSHOT_ALIAS,
|
|
102
|
+
SNAPSHOT_VERSION_ALIAS,
|
|
103
|
+
} from '@finos/legend-server-depot';
|
|
92
104
|
|
|
93
105
|
const ElementRenamer = observer(() => {
|
|
94
106
|
const editorStore = useEditorStore();
|
|
@@ -291,6 +303,60 @@ const ExplorerContextMenu = observer(
|
|
|
291
303
|
(type: string): (() => void) =>
|
|
292
304
|
(): void =>
|
|
293
305
|
editorStore.newElementState.openModal(type, _package);
|
|
306
|
+
const isDependencyProjectRoot = (): boolean =>
|
|
307
|
+
node?.packageableElement instanceof Package &&
|
|
308
|
+
editorStore.graphManagerState.graph.dependencyManager.roots.includes(
|
|
309
|
+
node.packageableElement,
|
|
310
|
+
);
|
|
311
|
+
const viewProject = (): void => {
|
|
312
|
+
const projectDependency =
|
|
313
|
+
editorStore.projectConfigurationEditorState.projectConfiguration?.projectDependencies.find(
|
|
314
|
+
(dep) => dep.projectId === node?.label,
|
|
315
|
+
);
|
|
316
|
+
if (projectDependency && !projectDependency.isLegacyDependency) {
|
|
317
|
+
applicationStore.navigator.visitAddress(
|
|
318
|
+
applicationStore.navigator.generateAddress(
|
|
319
|
+
generateViewProjectByGAVRoute(
|
|
320
|
+
guaranteeNonNullable(projectDependency.groupId),
|
|
321
|
+
guaranteeNonNullable(projectDependency.artifactId),
|
|
322
|
+
projectDependency.versionId === MASTER_SNAPSHOT_ALIAS
|
|
323
|
+
? SNAPSHOT_VERSION_ALIAS
|
|
324
|
+
: projectDependency.versionId,
|
|
325
|
+
),
|
|
326
|
+
),
|
|
327
|
+
);
|
|
328
|
+
}
|
|
329
|
+
};
|
|
330
|
+
const viewSDLCProject = (): void => {
|
|
331
|
+
const dependency =
|
|
332
|
+
editorStore.projectConfigurationEditorState.projectConfiguration?.projectDependencies.find(
|
|
333
|
+
(dep) => dep.projectId === node?.label,
|
|
334
|
+
);
|
|
335
|
+
if (dependency) {
|
|
336
|
+
createViewSDLCProjectHandler(
|
|
337
|
+
applicationStore,
|
|
338
|
+
editorStore.depotServerClient,
|
|
339
|
+
)(
|
|
340
|
+
guaranteeNonEmptyString(dependency.groupId),
|
|
341
|
+
guaranteeNonEmptyString(dependency.artifactId),
|
|
342
|
+
).catch(applicationStore.alertUnhandledError);
|
|
343
|
+
}
|
|
344
|
+
};
|
|
345
|
+
|
|
346
|
+
if (isDependencyProjectRoot()) {
|
|
347
|
+
return (
|
|
348
|
+
<MenuContent data-testid={LEGEND_STUDIO_TEST_ID.EXPLORER_CONTEXT_MENU}>
|
|
349
|
+
<MenuContentItem onClick={viewProject}>
|
|
350
|
+
<MenuContentItemLabel>View Project</MenuContentItemLabel>
|
|
351
|
+
</MenuContentItem>
|
|
352
|
+
{node && (
|
|
353
|
+
<MenuContentItem onClick={viewSDLCProject}>
|
|
354
|
+
<MenuContentItemLabel>View SDLC Project</MenuContentItemLabel>
|
|
355
|
+
</MenuContentItem>
|
|
356
|
+
)}
|
|
357
|
+
</MenuContent>
|
|
358
|
+
);
|
|
359
|
+
}
|
|
294
360
|
|
|
295
361
|
if (_package && !isReadOnly) {
|
|
296
362
|
return (
|
|
@@ -414,7 +480,10 @@ const PackageTreeNodeContainer = observer(
|
|
|
414
480
|
? 'color--generated'
|
|
415
481
|
: isSystemElement(node.packageableElement)
|
|
416
482
|
? 'color--system'
|
|
417
|
-
: isDependencyElement(
|
|
483
|
+
: isDependencyElement(
|
|
484
|
+
node.packageableElement,
|
|
485
|
+
editorStore.graphManagerState.graph,
|
|
486
|
+
)
|
|
418
487
|
? 'color--dependency'
|
|
419
488
|
: '';
|
|
420
489
|
|
|
@@ -562,15 +631,15 @@ const ExplorerTrees = observer(() => {
|
|
|
562
631
|
// Generated Files Tree
|
|
563
632
|
const generationFileTreeData =
|
|
564
633
|
editorStore.explorerTreeState.getFileGenerationTreeData();
|
|
565
|
-
const onGenerationFileTreeNodeSelect = (node:
|
|
634
|
+
const onGenerationFileTreeNodeSelect = (node: FileSystemTreeNodeData): void =>
|
|
566
635
|
editorStore.graphState.graphGenerationState.onTreeNodeSelect(
|
|
567
636
|
node,
|
|
568
637
|
generationFileTreeData,
|
|
569
638
|
);
|
|
570
639
|
const getGenerationFileTreeChildNodes = (
|
|
571
|
-
node:
|
|
572
|
-
):
|
|
573
|
-
|
|
640
|
+
node: FileSystemTreeNodeData,
|
|
641
|
+
): FileSystemTreeNodeData[] =>
|
|
642
|
+
getFileSystemChildNodes(node, generationFileTreeData);
|
|
574
643
|
|
|
575
644
|
// System Tree
|
|
576
645
|
const systemTreeData = editorStore.explorerTreeState.getTreeData(
|
|
@@ -600,7 +669,7 @@ const ExplorerTrees = observer(() => {
|
|
|
600
669
|
const getDependencyTreeChildNodes = (
|
|
601
670
|
node: PackageTreeNodeData,
|
|
602
671
|
): PackageTreeNodeData[] =>
|
|
603
|
-
getTreeChildNodes(editorStore, node, dependencyTreeData);
|
|
672
|
+
getTreeChildNodes(editorStore, node, dependencyTreeData, true);
|
|
604
673
|
const showPackageTrees =
|
|
605
674
|
treeData.nodes.size || graph.dependencyManager.hasDependencies;
|
|
606
675
|
|
|
@@ -684,7 +753,7 @@ const ExplorerTrees = observer(() => {
|
|
|
684
753
|
) && (
|
|
685
754
|
<>
|
|
686
755
|
<div className="explorer__content__separator" />
|
|
687
|
-
<
|
|
756
|
+
<FileSystemTree
|
|
688
757
|
selectedNode={editorStore.explorerTreeState.selectedNode}
|
|
689
758
|
directoryTreeData={generationFileTreeData}
|
|
690
759
|
onNodeSelect={onGenerationFileTreeNodeSelect}
|
|
@@ -42,6 +42,7 @@ import {
|
|
|
42
42
|
} from '@finos/legend-art';
|
|
43
43
|
import {
|
|
44
44
|
AssertFail,
|
|
45
|
+
AssertionStatus,
|
|
45
46
|
EqualToJsonAssertFail,
|
|
46
47
|
PackageableElement,
|
|
47
48
|
TestError,
|
|
@@ -122,7 +123,7 @@ export const getTestableResultIcon = (
|
|
|
122
123
|
const getOptionalError = (
|
|
123
124
|
node: TestableExplorerTreeNodeData,
|
|
124
125
|
testableState: TestableState,
|
|
125
|
-
): TestError | AssertFail | undefined => {
|
|
126
|
+
): TestError | AssertFail | Map<string, AssertFail> | undefined => {
|
|
126
127
|
if (node instanceof AtomicTestTreeNodeData) {
|
|
127
128
|
const result = getAtomicTest_TestResult(
|
|
128
129
|
node.atomicTest,
|
|
@@ -135,6 +136,14 @@ const getOptionalError = (
|
|
|
135
136
|
const status = getAssertionStatus(node.assertion, testableState.results);
|
|
136
137
|
if (status instanceof AssertFail) {
|
|
137
138
|
return status;
|
|
139
|
+
} else if (status && !(status instanceof AssertionStatus)) {
|
|
140
|
+
const errorState = new Map<string, AssertFail>();
|
|
141
|
+
Array.from(status.entries()).forEach(([key, assertionStatus]) => {
|
|
142
|
+
if (assertionStatus instanceof AssertFail) {
|
|
143
|
+
errorState.set(key, assertionStatus);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
return errorState;
|
|
138
147
|
}
|
|
139
148
|
}
|
|
140
149
|
return undefined;
|
|
@@ -215,15 +224,15 @@ const TestableExplorerContextMenu = observer(
|
|
|
215
224
|
testableState: TestableState;
|
|
216
225
|
node: TestableExplorerTreeNodeData;
|
|
217
226
|
treeData: TreeData<TestableExplorerTreeNodeData>;
|
|
218
|
-
error?: TestError | AssertFail | undefined;
|
|
227
|
+
error?: TestError | AssertFail | Map<string, AssertFail> | undefined;
|
|
219
228
|
}
|
|
220
229
|
>(function TestableExplorerContextMenu(props, ref) {
|
|
221
230
|
const { node, error, globalTestRunnerState, testableState } = props;
|
|
222
231
|
const runTest = (): void => {
|
|
223
232
|
testableState.run(node);
|
|
224
233
|
};
|
|
225
|
-
const viewError = (): void =>
|
|
226
|
-
globalTestRunnerState.setFailureViewing(
|
|
234
|
+
const viewError = (err: TestError | AssertFail): void =>
|
|
235
|
+
globalTestRunnerState.setFailureViewing(err);
|
|
227
236
|
return (
|
|
228
237
|
<MenuContent data-testid={LEGEND_STUDIO_TEST_ID.EXPLORER_CONTEXT_MENU}>
|
|
229
238
|
<MenuContentItem
|
|
@@ -232,11 +241,24 @@ const TestableExplorerContextMenu = observer(
|
|
|
232
241
|
>
|
|
233
242
|
Run
|
|
234
243
|
</MenuContentItem>
|
|
235
|
-
{error &&
|
|
236
|
-
|
|
237
|
-
{
|
|
238
|
-
|
|
239
|
-
|
|
244
|
+
{error &&
|
|
245
|
+
(error instanceof TestError || error instanceof AssertFail) && (
|
|
246
|
+
<MenuContentItem onClick={(): void => viewError(error)}>
|
|
247
|
+
{error instanceof TestError ? 'View Error' : 'View assert fail'}
|
|
248
|
+
</MenuContentItem>
|
|
249
|
+
)}
|
|
250
|
+
{error &&
|
|
251
|
+
!(error instanceof TestError || error instanceof AssertFail) &&
|
|
252
|
+
Array.from(error.entries()).map(([key, testError]) => (
|
|
253
|
+
<MenuContentItem
|
|
254
|
+
key={key}
|
|
255
|
+
onClick={(): void => viewError(testError)}
|
|
256
|
+
>
|
|
257
|
+
{testError instanceof TestError
|
|
258
|
+
? `View Error for ${key}`
|
|
259
|
+
: `View assert fail for ${key}`}
|
|
260
|
+
</MenuContentItem>
|
|
261
|
+
))}
|
|
240
262
|
</MenuContent>
|
|
241
263
|
);
|
|
242
264
|
}),
|
package/src/index.ts
CHANGED
|
@@ -98,8 +98,11 @@ export { MINIMUM_SERVICE_OWNERS } from './stores/editor-state/element-editor-sta
|
|
|
98
98
|
export { generateServiceManagementUrl } from './stores/editor-state/element-editor-state/service/ServiceRegistrationState.js';
|
|
99
99
|
export { ServicePureExecutionState } from './stores/editor-state/element-editor-state/service/ServiceExecutionState.js';
|
|
100
100
|
export { NewServiceModal } from './components/editor/edit-panel/service-editor/NewServiceModal.js';
|
|
101
|
-
export { GenerationFile } from './stores/shared/
|
|
102
|
-
export {
|
|
101
|
+
export { FileSystem_File as GenerationFile } from './stores/shared/FileSystemTreeUtils.js';
|
|
102
|
+
export {
|
|
103
|
+
FileGenerationState,
|
|
104
|
+
GeneratedFileStructureState,
|
|
105
|
+
} from './stores/editor-state/FileGenerationState.js';
|
|
103
106
|
export { DSL_ExternalFormat_LegendStudioApplicationPlugin } from './components/DSL_ExternalFormat_LegendStudioApplicationPlugin.js';
|
|
104
107
|
export {
|
|
105
108
|
externalFormatData_setData,
|
|
@@ -15,13 +15,13 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import type { PackageableElement } from '@finos/legend-graph';
|
|
18
|
-
import type {
|
|
18
|
+
import type { GeneratedFileStructureState } from './editor-state/FileGenerationState.js';
|
|
19
19
|
import type { DSL_LegendStudioApplicationPlugin_Extension } from './LegendStudioApplicationPlugin.js';
|
|
20
20
|
|
|
21
21
|
export type FileGenerationResultViewerActionConfiguration = {
|
|
22
22
|
key: string;
|
|
23
23
|
renderer: (
|
|
24
|
-
fileGenerationState:
|
|
24
|
+
fileGenerationState: GeneratedFileStructureState,
|
|
25
25
|
) => React.ReactNode | undefined;
|
|
26
26
|
};
|
|
27
27
|
|
|
@@ -0,0 +1,39 @@
|
|
|
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 DepotServerClient,
|
|
19
|
+
ProjectData,
|
|
20
|
+
} from '@finos/legend-server-depot';
|
|
21
|
+
import type { LegendStudioApplicationStore } from './LegendStudioBaseStore.js';
|
|
22
|
+
import { generateViewProjectRoute } from './LegendStudioRouter.js';
|
|
23
|
+
|
|
24
|
+
export const createViewSDLCProjectHandler =
|
|
25
|
+
(
|
|
26
|
+
applicationStore: LegendStudioApplicationStore,
|
|
27
|
+
depotServerClient: DepotServerClient,
|
|
28
|
+
) =>
|
|
29
|
+
async (groupId: string, artifactId: string): Promise<void> => {
|
|
30
|
+
// fetch project data
|
|
31
|
+
const project = ProjectData.serialization.fromJson(
|
|
32
|
+
await depotServerClient.getProject(groupId, artifactId),
|
|
33
|
+
);
|
|
34
|
+
applicationStore.navigator.visitAddress(
|
|
35
|
+
applicationStore.navigator.generateAddress(
|
|
36
|
+
generateViewProjectRoute(project.projectId),
|
|
37
|
+
),
|
|
38
|
+
);
|
|
39
|
+
};
|