@finos/legend-application-studio 25.0.7 → 26.0.1
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/LegendStudio.d.ts.map +1 -1
- package/lib/application/LegendStudio.js +2 -0
- package/lib/application/LegendStudio.js.map +1 -1
- package/lib/components/editor/editor-group/GenerationSpecificationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/GenerationSpecificationEditor.js +5 -5
- package/lib/components/editor/editor-group/GenerationSpecificationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/GrammarTextEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/GrammarTextEditor.js +1 -28
- package/lib/components/editor/editor-group/GrammarTextEditor.js.map +1 -1
- package/lib/components/editor/editor-group/ModelImporter.d.ts.map +1 -1
- package/lib/components/editor/editor-group/ModelImporter.js +4 -4
- package/lib/components/editor/editor-group/ModelImporter.js.map +1 -1
- package/lib/components/editor/editor-group/RuntimeEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/RuntimeEditor.js +2 -2
- package/lib/components/editor/editor-group/RuntimeEditor.js.map +1 -1
- package/lib/components/editor/editor-group/UnsupportedElementEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/UnsupportedElementEditor.js +3 -3
- package/lib/components/editor/editor-group/UnsupportedElementEditor.js.map +1 -1
- package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.d.ts.map +1 -1
- package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.js +1 -0
- package/lib/components/editor/editor-group/connection-editor/DatabaseBuilder.js.map +1 -1
- package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js +13 -11
- package/lib/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.js.map +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js +11 -22
- package/lib/components/editor/editor-group/element-generation-editor/FileGenerationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/ClassMappingEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/ClassMappingEditor.js +7 -3
- package/lib/components/editor/editor-group/mapping-editor/ClassMappingEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js +1 -4
- package/lib/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.js.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js +2 -2
- package/lib/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js +3 -3
- package/lib/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.js +5 -10
- package/lib/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.js +1 -4
- package/lib/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js +2 -2
- package/lib/components/editor/editor-group/service-editor/ServicePostValidationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.js +2 -1
- package/lib/components/editor/editor-group/service-editor/ServiceRegistrationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/uml-editor/AssociationEditor.d.ts.map +1 -1
- package/lib/components/editor/editor-group/uml-editor/AssociationEditor.js +2 -2
- package/lib/components/editor/editor-group/uml-editor/AssociationEditor.js.map +1 -1
- package/lib/components/editor/editor-group/uml-editor/ClassQueryBuilder.js +2 -2
- package/lib/components/editor/editor-group/uml-editor/ClassQueryBuilder.js.map +1 -1
- package/lib/components/editor/side-bar/Explorer.d.ts.map +1 -1
- package/lib/components/editor/side-bar/Explorer.js +14 -5
- package/lib/components/editor/side-bar/Explorer.js.map +1 -1
- package/lib/components/editor/side-bar/ProjectOverview.d.ts.map +1 -1
- package/lib/components/editor/side-bar/ProjectOverview.js +0 -5
- package/lib/components/editor/side-bar/ProjectOverview.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 +2 -2
- package/lib/components/editor/side-bar/testable/GlobalTestRunner.js.map +1 -1
- package/lib/components/extensions/Core_LegendStudioApplicationPlugin.d.ts.map +1 -1
- package/lib/components/extensions/Core_LegendStudioApplicationPlugin.js +0 -3
- package/lib/components/extensions/Core_LegendStudioApplicationPlugin.js.map +1 -1
- package/lib/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.d.ts +1 -3
- package/lib/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.d.ts.map +1 -1
- package/lib/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.js +0 -16
- package/lib/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.js.map +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +0 -1
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/LegendStudioApplicationPlugin.d.ts +0 -8
- package/lib/stores/LegendStudioApplicationPlugin.d.ts.map +1 -1
- package/lib/stores/LegendStudioBaseStore.d.ts +1 -0
- package/lib/stores/LegendStudioBaseStore.d.ts.map +1 -1
- package/lib/stores/LegendStudioBaseStore.js +7 -4
- package/lib/stores/LegendStudioBaseStore.js.map +1 -1
- package/lib/stores/editor/EditorGraphState.d.ts.map +1 -1
- package/lib/stores/editor/EditorGraphState.js +2 -2
- package/lib/stores/editor/EditorGraphState.js.map +1 -1
- package/lib/stores/editor/EditorSDLCState.d.ts +8 -5
- package/lib/stores/editor/EditorSDLCState.d.ts.map +1 -1
- package/lib/stores/editor/EditorSDLCState.js +25 -5
- package/lib/stores/editor/EditorSDLCState.js.map +1 -1
- package/lib/stores/editor/EditorStore.d.ts +0 -2
- package/lib/stores/editor/EditorStore.d.ts.map +1 -1
- package/lib/stores/editor/EditorStore.js +10 -15
- package/lib/stores/editor/EditorStore.js.map +1 -1
- package/lib/stores/editor/EditorTabManagerState.d.ts.map +1 -1
- package/lib/stores/editor/EditorTabManagerState.js +1 -1
- package/lib/stores/editor/EditorTabManagerState.js.map +1 -1
- package/lib/stores/editor/ExplorerTreeState.d.ts +5 -1
- package/lib/stores/editor/ExplorerTreeState.d.ts.map +1 -1
- package/lib/stores/editor/ExplorerTreeState.js +13 -0
- package/lib/stores/editor/ExplorerTreeState.js.map +1 -1
- package/lib/stores/editor/GraphEditGrammarModeState.d.ts +0 -3
- package/lib/stores/editor/GraphEditGrammarModeState.d.ts.map +1 -1
- package/lib/stores/editor/GraphEditGrammarModeState.js +26 -21
- package/lib/stores/editor/GraphEditGrammarModeState.js.map +1 -1
- package/lib/stores/editor/editor-state/GrammarTextEditorState.d.ts +3 -4
- package/lib/stores/editor/editor-state/GrammarTextEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/GrammarTextEditorState.js +5 -111
- package/lib/stores/editor/editor-state/GrammarTextEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts +2 -4
- package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js +6 -8
- package/lib/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.d.ts +4 -2
- package/lib/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.js +8 -4
- package/lib/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.d.ts +4 -7
- package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.js +0 -3
- package/lib/stores/editor/editor-state/element-editor-state/data/DataEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.d.ts +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js +19 -2
- package/lib/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.js +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js +5 -2
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.d.ts +3 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.js +6 -0
- package/lib/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.js +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.d.ts +1 -0
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.js +23 -3
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.js.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.js +4 -3
- package/lib/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.js.map +1 -1
- package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.d.ts +3 -4
- package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.d.ts.map +1 -1
- package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js +2 -4
- package/lib/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.js.map +1 -1
- package/lib/stores/editor/sidebar-state/ProjectOverviewState.d.ts +0 -4
- package/lib/stores/editor/sidebar-state/ProjectOverviewState.d.ts.map +1 -1
- package/lib/stores/editor/sidebar-state/ProjectOverviewState.js +0 -48
- package/lib/stores/editor/sidebar-state/ProjectOverviewState.js.map +1 -1
- package/lib/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.d.ts +1 -1
- package/lib/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.d.ts.map +1 -1
- package/lib/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.js +1 -4
- package/lib/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.js.map +1 -1
- package/lib/stores/editor/utils/ModelClassifierUtils.d.ts +2 -1
- package/lib/stores/editor/utils/ModelClassifierUtils.d.ts.map +1 -1
- package/lib/stores/editor/utils/ModelClassifierUtils.js +2 -1
- package/lib/stores/editor/utils/ModelClassifierUtils.js.map +1 -1
- package/lib/stores/editor/utils/TestableUtils.d.ts +3 -1
- package/lib/stores/editor/utils/TestableUtils.d.ts.map +1 -1
- package/lib/stores/editor/utils/TestableUtils.js +6 -0
- package/lib/stores/editor/utils/TestableUtils.js.map +1 -1
- package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts +2 -2
- package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.d.ts.map +1 -1
- package/lib/stores/graph-modifier/STO_Relational_GraphModifierHelper.js.map +1 -1
- package/lib/stores/project-view/ProjectViewerStore.d.ts.map +1 -1
- package/lib/stores/project-view/ProjectViewerStore.js +8 -5
- package/lib/stores/project-view/ProjectViewerStore.js.map +1 -1
- package/package.json +11 -11
- package/src/application/LegendStudio.tsx +2 -0
- package/src/components/editor/editor-group/GenerationSpecificationEditor.tsx +21 -22
- package/src/components/editor/editor-group/GrammarTextEditor.tsx +1 -41
- package/src/components/editor/editor-group/ModelImporter.tsx +13 -10
- package/src/components/editor/editor-group/RuntimeEditor.tsx +2 -9
- package/src/components/editor/editor-group/UnsupportedElementEditor.tsx +16 -10
- package/src/components/editor/editor-group/connection-editor/DatabaseBuilder.tsx +3 -0
- package/src/components/editor/editor-group/connection-editor/RelationalDatabaseConnectionEditor.tsx +22 -23
- package/src/components/editor/editor-group/element-generation-editor/FileGenerationEditor.tsx +51 -83
- package/src/components/editor/editor-group/mapping-editor/ClassMappingEditor.tsx +23 -8
- package/src/components/editor/editor-group/mapping-editor/DEPRECATED__MappingTestEditor.tsx +5 -4
- package/src/components/editor/editor-group/mapping-editor/InstanceSetImplementationEditor.tsx +39 -29
- package/src/components/editor/editor-group/project-configuration-editor/ProjectDependencyEditor.tsx +21 -23
- package/src/components/editor/editor-group/service-editor/BulkServiceRegistrationEditor.tsx +24 -55
- package/src/components/editor/editor-group/service-editor/ServiceExecutionQueryEditor.tsx +3 -4
- package/src/components/editor/editor-group/service-editor/ServicePostValidationEditor.tsx +20 -24
- package/src/components/editor/editor-group/service-editor/ServiceRegistrationEditor.tsx +4 -1
- package/src/components/editor/editor-group/uml-editor/AssociationEditor.tsx +5 -4
- package/src/components/editor/editor-group/uml-editor/ClassQueryBuilder.tsx +3 -3
- package/src/components/editor/side-bar/Explorer.tsx +40 -2
- package/src/components/editor/side-bar/ProjectOverview.tsx +0 -5
- package/src/components/editor/side-bar/testable/GlobalTestRunner.tsx +2 -4
- package/src/components/extensions/Core_LegendStudioApplicationPlugin.tsx +0 -8
- package/src/components/extensions/DSL_ExternalFormat_LegendStudioApplicationPlugin.tsx +0 -18
- package/src/index.ts +0 -1
- package/src/stores/LegendStudioApplicationPlugin.ts +0 -10
- package/src/stores/LegendStudioBaseStore.ts +7 -4
- package/src/stores/editor/EditorGraphState.ts +2 -4
- package/src/stores/editor/EditorSDLCState.ts +33 -4
- package/src/stores/editor/EditorStore.ts +24 -19
- package/src/stores/editor/EditorTabManagerState.ts +1 -4
- package/src/stores/editor/ExplorerTreeState.ts +22 -0
- package/src/stores/editor/GraphEditGrammarModeState.ts +49 -39
- package/src/stores/editor/editor-state/GrammarTextEditorState.ts +6 -145
- package/src/stores/editor/editor-state/element-editor-state/connection/ConnectionEditorState.ts +8 -18
- package/src/stores/editor/editor-state/element-editor-state/connection/DatabaseBuilderState.ts +17 -4
- package/src/stores/editor/editor-state/element-editor-state/data/DataEditorState.ts +5 -7
- package/src/stores/editor/editor-state/element-editor-state/mapping/DEPRECATED__MappingTestState.ts +24 -2
- package/src/stores/editor/editor-state/element-editor-state/mapping/FlatDataInstanceSetImplementationState.ts +1 -1
- package/src/stores/editor/editor-state/element-editor-state/mapping/MappingEditorState.ts +4 -1
- package/src/stores/editor/editor-state/element-editor-state/mapping/MappingElementDecorator.ts +13 -0
- package/src/stores/editor/editor-state/element-editor-state/mapping/relational/RelationalInstanceSetImplementationState.ts +1 -1
- package/src/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.ts +30 -7
- package/src/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.ts +7 -5
- package/src/stores/editor/editor-state/project-configuration-editor-state/ProjectConfigurationEditorState.ts +4 -5
- package/src/stores/editor/sidebar-state/ProjectOverviewState.ts +0 -87
- package/src/stores/editor/sidebar-state/WorkspaceUpdateConflictResolutionState.ts +3 -7
- package/src/stores/editor/utils/ModelClassifierUtils.ts +3 -1
- package/src/stores/editor/utils/TestableUtils.ts +13 -0
- package/src/stores/graph-modifier/STO_Relational_GraphModifierHelper.ts +1 -2
- package/src/stores/project-view/ProjectViewerStore.ts +10 -8
- package/tsconfig.json +0 -3
- package/lib/components/editor/side-bar/ProjectDependantsEditor.d.ts +0 -19
- package/lib/components/editor/side-bar/ProjectDependantsEditor.d.ts.map +0 -1
- package/lib/components/editor/side-bar/ProjectDependantsEditor.js +0 -76
- package/lib/components/editor/side-bar/ProjectDependantsEditor.js.map +0 -1
- package/lib/stores/editor/EditorDepotState.d.ts +0 -25
- package/lib/stores/editor/EditorDepotState.d.ts.map +0 -1
- package/lib/stores/editor/EditorDepotState.js +0 -49
- package/lib/stores/editor/EditorDepotState.js.map +0 -1
- package/lib/stores/editor/sidebar-state/ProjectDependantEditorState.d.ts +0 -31
- package/lib/stores/editor/sidebar-state/ProjectDependantEditorState.d.ts.map +0 -1
- package/lib/stores/editor/sidebar-state/ProjectDependantEditorState.js +0 -42
- package/lib/stores/editor/sidebar-state/ProjectDependantEditorState.js.map +0 -1
- package/src/components/editor/side-bar/ProjectDependantsEditor.tsx +0 -219
- package/src/stores/editor/EditorDepotState.ts +0 -70
- package/src/stores/editor/sidebar-state/ProjectDependantEditorState.ts +0 -50
@@ -181,7 +181,7 @@ export class EmbeddedRelationalInstanceSetImplementationState
|
|
181
181
|
return [];
|
182
182
|
}
|
183
183
|
|
184
|
-
// dummy lambda editor states needed because embedded flat-data should be seen as `
|
184
|
+
// dummy lambda editor states needed because embedded flat-data should be seen as `PropertyMappingState`
|
185
185
|
lambdaPrefix = '';
|
186
186
|
lambdaString = '';
|
187
187
|
parserError?: ParserError | undefined;
|
package/src/stores/editor/editor-state/element-editor-state/service/ServiceExecutionState.ts
CHANGED
@@ -466,6 +466,9 @@ export abstract class ServicePureExecutionState extends ServiceExecutionState {
|
|
466
466
|
execution: PureExecution,
|
467
467
|
) {
|
468
468
|
super(editorStore, serviceEditorState, execution);
|
469
|
+
makeObservable(this, {
|
470
|
+
cancelQuery: flow,
|
471
|
+
});
|
469
472
|
|
470
473
|
this.execution = execution;
|
471
474
|
this.queryState = new ServicePureExecutionQueryState(
|
@@ -618,15 +621,14 @@ export abstract class ServicePureExecutionState extends ServiceExecutionState {
|
|
618
621
|
this.editorStore.applicationStore.telemetryService,
|
619
622
|
);
|
620
623
|
|
624
|
+
let promise;
|
621
625
|
try {
|
622
626
|
this.isRunningQuery = true;
|
623
|
-
|
624
627
|
const stopWatch = new StopWatch();
|
625
628
|
const report = reportGraphAnalytics(
|
626
629
|
this.editorStore.graphManagerState.graph,
|
627
630
|
);
|
628
|
-
|
629
|
-
const promise = this.editorStore.graphManagerState.graphManager.runQuery(
|
631
|
+
promise = this.editorStore.graphManagerState.graphManager.runQuery(
|
630
632
|
this.getExecutionQuery(),
|
631
633
|
this.selectedExecutionContextState?.executionContext.mapping.value,
|
632
634
|
this.selectedExecutionContextState?.executionContext.runtime,
|
@@ -640,7 +642,6 @@ export abstract class ServicePureExecutionState extends ServiceExecutionState {
|
|
640
642
|
},
|
641
643
|
report,
|
642
644
|
);
|
643
|
-
|
644
645
|
this.setQueryRunPromise(promise);
|
645
646
|
const result = (yield promise) as ExecutionResult;
|
646
647
|
if (this.queryRunPromise === promise) {
|
@@ -648,7 +649,6 @@ export abstract class ServicePureExecutionState extends ServiceExecutionState {
|
|
648
649
|
stringifyLosslessJSON(result, undefined, DEFAULT_TAB_SIZE),
|
649
650
|
);
|
650
651
|
this.parameterState.setParameters([]);
|
651
|
-
|
652
652
|
// report
|
653
653
|
report.timings =
|
654
654
|
this.editorStore.applicationStore.timeService.finalizeTimingsRecord(
|
@@ -661,17 +661,40 @@ export abstract class ServicePureExecutionState extends ServiceExecutionState {
|
|
661
661
|
);
|
662
662
|
}
|
663
663
|
} catch (error) {
|
664
|
-
|
664
|
+
// When user cancels the query by calling the cancelQuery api, it will throw an exeuction failure error.
|
665
|
+
// For now, we don't want to notify users about this failure. Therefore we check to ensure the promise is still the same one.
|
666
|
+
// When cancelled the query, we set the queryRunPromise as undefined.
|
665
667
|
this.editorStore.applicationStore.logService.error(
|
666
668
|
LogEvent.create(GRAPH_MANAGER_EVENT.EXECUTION_FAILURE),
|
667
669
|
error,
|
668
670
|
);
|
669
|
-
this.
|
671
|
+
if (this.queryRunPromise === promise) {
|
672
|
+
assertErrorThrown(error);
|
673
|
+
this.editorStore.applicationStore.notificationService.notifyError(
|
674
|
+
error,
|
675
|
+
);
|
676
|
+
}
|
670
677
|
} finally {
|
671
678
|
this.isRunningQuery = false;
|
672
679
|
}
|
673
680
|
}
|
674
681
|
|
682
|
+
*cancelQuery(): GeneratorFn<void> {
|
683
|
+
this.setIsRunningQuery(false);
|
684
|
+
this.setQueryRunPromise(undefined);
|
685
|
+
try {
|
686
|
+
yield this.editorStore.graphManagerState.graphManager.cancelUserExecutions(
|
687
|
+
true,
|
688
|
+
);
|
689
|
+
} catch (error) {
|
690
|
+
// Don't notify users about success or failure
|
691
|
+
this.editorStore.applicationStore.logService.error(
|
692
|
+
LogEvent.create(GRAPH_MANAGER_EVENT.EXECUTION_FAILURE),
|
693
|
+
error,
|
694
|
+
);
|
695
|
+
}
|
696
|
+
}
|
697
|
+
|
675
698
|
getExecutionQuery(): RawLambda {
|
676
699
|
return getExecutionQueryFromRawLambda(
|
677
700
|
this.queryState.query,
|
package/src/stores/editor/editor-state/element-editor-state/service/ServiceRegistrationState.ts
CHANGED
@@ -163,12 +163,13 @@ export class ServiceConfigState {
|
|
163
163
|
this.enableModesWithVersioning &&
|
164
164
|
this.serviceExecutionMode !== ServiceExecutionMode.FULL_INTERACTIVE
|
165
165
|
) {
|
166
|
-
const semVerVersions = this.editorStore.
|
166
|
+
const semVerVersions = this.editorStore.sdlcState.projectPublishedVersions
|
167
167
|
.filter((v) => v.match(PROJECT_SEMANTIC_VERSION_PATTERN))
|
168
168
|
.sort((v1, v2) => compareSemVerVersions(v2, v1));
|
169
|
-
const snapshotVersions =
|
170
|
-
.
|
171
|
-
|
169
|
+
const snapshotVersions =
|
170
|
+
this.editorStore.sdlcState.projectPublishedVersions
|
171
|
+
.filter((v) => !v.match(PROJECT_SEMANTIC_VERSION_PATTERN))
|
172
|
+
.sort((v1, v2) => v1.localeCompare(v2));
|
172
173
|
const options: ServiceVersionOption[] = snapshotVersions
|
173
174
|
.concat(semVerVersions)
|
174
175
|
.map((version) => ({
|
@@ -229,7 +230,8 @@ export class ServiceConfigState {
|
|
229
230
|
if (this.serviceExecutionMode === ServiceExecutionMode.SEMI_INTERACTIVE) {
|
230
231
|
this.projectVersion = LATEST_PROJECT_REVISION;
|
231
232
|
} else if (this.serviceExecutionMode === ServiceExecutionMode.PROD) {
|
232
|
-
this.projectVersion =
|
233
|
+
this.projectVersion =
|
234
|
+
this.editorStore.sdlcState.projectPublishedVersions[0];
|
233
235
|
} else {
|
234
236
|
this.projectVersion = undefined;
|
235
237
|
}
|
@@ -51,7 +51,10 @@ export enum CONFIGURATION_EDITOR_TAB {
|
|
51
51
|
}
|
52
52
|
|
53
53
|
export class ProjectConfigurationEditorState extends EditorState {
|
54
|
-
sdlcState: EditorSDLCState;
|
54
|
+
readonly sdlcState: EditorSDLCState;
|
55
|
+
readonly updatingConfigurationState = ActionState.create();
|
56
|
+
readonly fetchingProjectVersionsState = ActionState.create();
|
57
|
+
|
55
58
|
projectDependencyEditorState: ProjectDependencyEditorState;
|
56
59
|
originalProjectConfiguration?: ProjectConfiguration | undefined; // TODO: we might want to remove this when we do change detection for project configuration
|
57
60
|
projectConfiguration?: ProjectConfiguration | undefined;
|
@@ -59,11 +62,8 @@ export class ProjectConfigurationEditorState extends EditorState {
|
|
59
62
|
isReadOnly = false;
|
60
63
|
projects = new Map<string, StoreProjectData>();
|
61
64
|
versions = new Map<string, string[]>();
|
62
|
-
queryHistory = new Set<string>();
|
63
65
|
latestProjectStructureVersion: ProjectStructureVersion | undefined;
|
64
66
|
|
65
|
-
updatingConfigurationState = ActionState.create();
|
66
|
-
fetchingProjectVersionsState = ActionState.create();
|
67
67
|
associatedProjectsAndVersionsFetched = false;
|
68
68
|
|
69
69
|
constructor(editorStore: EditorStore, sdlcState: EditorSDLCState) {
|
@@ -77,7 +77,6 @@ export class ProjectConfigurationEditorState extends EditorState {
|
|
77
77
|
isReadOnly: observable,
|
78
78
|
projects: observable,
|
79
79
|
versions: observable,
|
80
|
-
queryHistory: observable,
|
81
80
|
associatedProjectsAndVersionsFetched: observable,
|
82
81
|
fetchingProjectVersionsState: observable,
|
83
82
|
latestProjectStructureVersion: observable,
|
@@ -37,17 +37,10 @@ import {
|
|
37
37
|
areWorkspacesEquivalent,
|
38
38
|
} from '@finos/legend-server-sdlc';
|
39
39
|
import { LEGEND_STUDIO_APP_EVENT } from '../../../__lib__/LegendStudioEvent.js';
|
40
|
-
import { ProjectDependantEditorState } from './ProjectDependantEditorState.js';
|
41
|
-
import {
|
42
|
-
StoreProjectData,
|
43
|
-
ProjectVersionPlatformDependency,
|
44
|
-
} from '@finos/legend-server-depot';
|
45
|
-
import { compareSemVerVersions } from '@finos/legend-storage';
|
46
40
|
|
47
41
|
export enum PROJECT_OVERVIEW_ACTIVITY_MODE {
|
48
42
|
RELEASE = 'RELEASE',
|
49
43
|
OVERVIEW = 'OVERVIEW',
|
50
|
-
DEPENDANTS = 'DEPENDANTS',
|
51
44
|
VERSIONS = 'VERSIONS',
|
52
45
|
WORKSPACES = 'WORKSPACES',
|
53
46
|
}
|
@@ -61,7 +54,6 @@ export class ProjectOverviewState {
|
|
61
54
|
latestProjectVersion?: Version | null; // `undefined` if API is not yet called, `null` if fetched but no version exists
|
62
55
|
currentProjectRevision?: Revision | undefined;
|
63
56
|
projectWorkspaces: Workspace[] = [];
|
64
|
-
projectDependantEditorState: ProjectDependantEditorState;
|
65
57
|
|
66
58
|
isCreatingVersion = false;
|
67
59
|
isFetchingProjectWorkspaces = false;
|
@@ -84,23 +76,17 @@ export class ProjectOverviewState {
|
|
84
76
|
isUpdatingProject: observable,
|
85
77
|
isFetchingLatestVersion: observable,
|
86
78
|
isFetchingCurrentProjectRevision: observable,
|
87
|
-
projectDependantEditorState: observable,
|
88
79
|
setActivityMode: action,
|
89
80
|
fetchProjectWorkspaces: flow,
|
90
81
|
deleteWorkspace: flow,
|
91
82
|
updateProject: flow,
|
92
83
|
fetchLatestProjectVersion: flow,
|
93
|
-
fetchDependants: flow,
|
94
84
|
createVersion: flow,
|
95
85
|
});
|
96
86
|
|
97
87
|
this.editorStore = editorStore;
|
98
88
|
this.sdlcState = sdlcState;
|
99
89
|
this.releaseVersion = new CreateVersionCommand();
|
100
|
-
this.projectDependantEditorState = new ProjectDependantEditorState(
|
101
|
-
this,
|
102
|
-
this.editorStore,
|
103
|
-
);
|
104
90
|
}
|
105
91
|
|
106
92
|
setActivityMode(activityMode: PROJECT_OVERVIEW_ACTIVITY_MODE): void {
|
@@ -197,79 +183,6 @@ export class ProjectOverviewState {
|
|
197
183
|
}
|
198
184
|
}
|
199
185
|
|
200
|
-
*fetchDependants(): GeneratorFn<void> {
|
201
|
-
const groupId =
|
202
|
-
this.editorStore.projectConfigurationEditorState
|
203
|
-
.currentProjectConfiguration.groupId;
|
204
|
-
const artifactId =
|
205
|
-
this.editorStore.projectConfigurationEditorState
|
206
|
-
.currentProjectConfiguration.artifactId;
|
207
|
-
const latestVersion = this.editorStore.sdlcState.projectVersions[0]?.id.id;
|
208
|
-
if (!groupId || !artifactId || !latestVersion) {
|
209
|
-
return;
|
210
|
-
}
|
211
|
-
|
212
|
-
try {
|
213
|
-
this.projectDependantEditorState.fetchingDependantInfoState.inProgress();
|
214
|
-
|
215
|
-
const fetchedDependants = (
|
216
|
-
(yield this.editorStore.depotServerClient.getIndexedDependantProjects(
|
217
|
-
groupId,
|
218
|
-
artifactId,
|
219
|
-
latestVersion,
|
220
|
-
)) as PlainObject<ProjectVersionPlatformDependency>[]
|
221
|
-
)
|
222
|
-
.map((v) => ProjectVersionPlatformDependency.serialization.fromJson(v))
|
223
|
-
.sort(
|
224
|
-
(
|
225
|
-
a: { groupId: string; artifactId: string },
|
226
|
-
b: { groupId: string; artifactId: string },
|
227
|
-
) => (a.groupId + a.artifactId > b.groupId + b.artifactId ? 1 : -1),
|
228
|
-
)
|
229
|
-
.sort((a: { versionId: string }, b: { versionId: string }) =>
|
230
|
-
compareSemVerVersions(a.versionId, b.versionId) > 0 ? 1 : -1,
|
231
|
-
)
|
232
|
-
.filter(
|
233
|
-
(filteredDependant: ProjectVersionPlatformDependency) =>
|
234
|
-
filteredDependant.versionId !== 'master-SNAPSHOT',
|
235
|
-
);
|
236
|
-
|
237
|
-
const uniqueProjects = [
|
238
|
-
...new Map(
|
239
|
-
fetchedDependants.map((item: ProjectVersionPlatformDependency) => [
|
240
|
-
`${item.groupId}:${item.artifactId}`,
|
241
|
-
item,
|
242
|
-
]),
|
243
|
-
).values(),
|
244
|
-
];
|
245
|
-
|
246
|
-
this.projectDependantEditorState.setDependants(uniqueProjects);
|
247
|
-
this.projectDependantEditorState.dependants?.map(
|
248
|
-
async (dependant: ProjectVersionPlatformDependency): Promise<void> => {
|
249
|
-
try {
|
250
|
-
const project = StoreProjectData.serialization.fromJson(
|
251
|
-
await this.editorStore.depotServerClient.getProject(
|
252
|
-
dependant.groupId,
|
253
|
-
dependant.artifactId,
|
254
|
-
),
|
255
|
-
);
|
256
|
-
dependant.projectId = project.projectId;
|
257
|
-
} catch (error) {
|
258
|
-
assertErrorThrown(error);
|
259
|
-
}
|
260
|
-
},
|
261
|
-
);
|
262
|
-
this.projectDependantEditorState.fetchingDependantInfoState.complete();
|
263
|
-
} catch (error) {
|
264
|
-
assertErrorThrown(error);
|
265
|
-
this.projectDependantEditorState.fetchingDependantInfoState.fail();
|
266
|
-
this.editorStore.applicationStore.logService.error(
|
267
|
-
LogEvent.create(LEGEND_STUDIO_APP_EVENT.DEPOT_MANAGER_FAILURE),
|
268
|
-
error,
|
269
|
-
);
|
270
|
-
}
|
271
|
-
}
|
272
|
-
|
273
186
|
*fetchLatestProjectVersion(): GeneratorFn<void> {
|
274
187
|
try {
|
275
188
|
this.isFetchingLatestVersion = true;
|
@@ -59,8 +59,7 @@ export class WorkspaceUpdateConflictResolutionState extends AbstractConflictReso
|
|
59
59
|
super(editorStore, sdlcState);
|
60
60
|
makeObservable<
|
61
61
|
WorkspaceUpdateConflictResolutionState,
|
62
|
-
|
63
|
-
| 'initChangeDetectionInConflictResolutionMode'
|
62
|
+
'initChangeDetectionInConflictResolutionMode'
|
64
63
|
>(this, {
|
65
64
|
editorStore: false,
|
66
65
|
sdlcState: false,
|
@@ -230,7 +229,7 @@ export class WorkspaceUpdateConflictResolutionState extends AbstractConflictReso
|
|
230
229
|
this.mergeEditorStates = []; // make sure we clean this to avoid any potential memory-leak
|
231
230
|
}
|
232
231
|
|
233
|
-
|
232
|
+
*initProjectConfigurationInConflictResolutionMode(): GeneratorFn<void> {
|
234
233
|
assertTrue(
|
235
234
|
this.editorStore.isInConflictResolutionMode,
|
236
235
|
'Editor must be in conflict resolution mode to call this method',
|
@@ -296,10 +295,7 @@ export class WorkspaceUpdateConflictResolutionState extends AbstractConflictReso
|
|
296
295
|
);
|
297
296
|
try {
|
298
297
|
this.isInitializingConflictResolution = true;
|
299
|
-
yield
|
300
|
-
this.initProjectConfigurationInConflictResolutionMode(),
|
301
|
-
this.initChangeDetectionInConflictResolutionMode(),
|
302
|
-
]);
|
298
|
+
yield flowResult(this.initChangeDetectionInConflictResolutionMode());
|
303
299
|
/**
|
304
300
|
* NOTE: There is a weird case where conflict resolution operations failed to delete the conflict resolution
|
305
301
|
* workspace, so the user after accepting conflict resolution, ending up in conflict resolution mode
|
@@ -68,7 +68,9 @@ export enum PACKAGEABLE_ELEMENT_TYPE {
|
|
68
68
|
FILE_GENERATION = 'FILE_GENERATION',
|
69
69
|
GENERATION_SPECIFICATION = 'GENERATION_SPECIFICATION',
|
70
70
|
SECTION_INDEX = 'SECTION_INDEX',
|
71
|
-
DATA = '
|
71
|
+
DATA = 'DATA',
|
72
|
+
|
73
|
+
UNKNOWN = 'UNKNOWN',
|
72
74
|
}
|
73
75
|
|
74
76
|
export enum BASIC_SET_IMPLEMENTATION_TYPE {
|
@@ -37,6 +37,7 @@ import {
|
|
37
37
|
EqualToJson,
|
38
38
|
DEFAULT_TEST_ASSERTION_PREFIX,
|
39
39
|
RelationalCSVDataTable,
|
40
|
+
type INTERNAL__UnknownConnection,
|
40
41
|
} from '@finos/legend-graph';
|
41
42
|
import {
|
42
43
|
assertTrue,
|
@@ -128,6 +129,12 @@ export class TEMPORARY__EmbeddedDataConnectionVisitor
|
|
128
129
|
visit_Connection(connection: Connection): EmbeddedData {
|
129
130
|
throw new UnsupportedOperationError();
|
130
131
|
}
|
132
|
+
visit_INTERNAL__UnknownConnection(
|
133
|
+
connection: INTERNAL__UnknownConnection,
|
134
|
+
): EmbeddedData {
|
135
|
+
throw new UnsupportedOperationError();
|
136
|
+
}
|
137
|
+
|
131
138
|
visit_ConnectionPointer(connection: ConnectionPointer): EmbeddedData {
|
132
139
|
const packageableConnection =
|
133
140
|
connection.packageableConnection.value.connectionValue;
|
@@ -166,6 +173,12 @@ export class EmbeddedDataConnectionTypeVisitor
|
|
166
173
|
visit_Connection(connection: Connection): string {
|
167
174
|
return EmbeddedDataType.EXTERNAL_FORMAT_DATA;
|
168
175
|
}
|
176
|
+
visit_INTERNAL__UnknownConnection(
|
177
|
+
connection: INTERNAL__UnknownConnection,
|
178
|
+
): string {
|
179
|
+
return EmbeddedDataType.EXTERNAL_FORMAT_DATA;
|
180
|
+
}
|
181
|
+
|
169
182
|
visit_ConnectionPointer(connection: ConnectionPointer): string {
|
170
183
|
const packageableConnection =
|
171
184
|
connection.packageableConnection.value.connectionValue;
|
@@ -20,7 +20,6 @@ import {
|
|
20
20
|
type BigQueryDatasourceSpecification,
|
21
21
|
type BindingTransformer,
|
22
22
|
type DatabaseConnection,
|
23
|
-
type DatabaseType,
|
24
23
|
type DatabricksDatasourceSpecification,
|
25
24
|
type DatasourceSpecification,
|
26
25
|
type DelegatedKerberosAuthenticationStrategy,
|
@@ -66,7 +65,7 @@ import type { RelationalDatabaseConnectionValueState } from '../editor/editor-st
|
|
66
65
|
// --------------------------------------------- DB Connection -------------------------------------
|
67
66
|
|
68
67
|
export const dBConnection_setType = action(
|
69
|
-
(con: DatabaseConnection, val:
|
68
|
+
(con: DatabaseConnection, val: string): void => {
|
70
69
|
con.type = val;
|
71
70
|
},
|
72
71
|
);
|
@@ -179,10 +179,6 @@ export class ProjectViewerStore {
|
|
179
179
|
)) as PlainObject<Version>,
|
180
180
|
);
|
181
181
|
|
182
|
-
// fetch project versions
|
183
|
-
yield flowResult(this.editorStore.sdlcState.fetchProjectVersions());
|
184
|
-
yield flowResult(this.editorStore.depotState.fetchProjectVersions());
|
185
|
-
|
186
182
|
// ensure only either version or revision is specified
|
187
183
|
if (versionId && revisionId) {
|
188
184
|
throw new IllegalStateError(
|
@@ -262,19 +258,25 @@ export class ProjectViewerStore {
|
|
262
258
|
this.editorStore.initState.setMessage(undefined);
|
263
259
|
stopWatch.record(GRAPH_MANAGER_EVENT.FETCH_GRAPH_ENTITIES__SUCCESS);
|
264
260
|
|
265
|
-
|
261
|
+
// fetch project configuration
|
266
262
|
const projectConfiguration = ProjectConfiguration.serialization.fromJson(
|
267
263
|
graphBuildingMaterial[1],
|
268
264
|
);
|
269
|
-
|
270
265
|
this.editorStore.projectConfigurationEditorState.setProjectConfiguration(
|
271
266
|
projectConfiguration,
|
272
267
|
);
|
273
|
-
|
274
|
-
// make sure we set the original project configuration to a different object
|
275
268
|
this.editorStore.projectConfigurationEditorState.setOriginalProjectConfiguration(
|
276
269
|
projectConfiguration,
|
277
270
|
);
|
271
|
+
|
272
|
+
// fetch project versions
|
273
|
+
yield Promise.all([
|
274
|
+
this.editorStore.sdlcState.fetchProjectVersions(),
|
275
|
+
this.editorStore.sdlcState.fetchPublishedProjectVersions(),
|
276
|
+
]);
|
277
|
+
|
278
|
+
// fetch entities
|
279
|
+
const entities = graphBuildingMaterial[0];
|
278
280
|
this.editorStore.changeDetectionState.workspaceLocalLatestRevisionState.setEntities(
|
279
281
|
entities,
|
280
282
|
);
|
package/tsconfig.json
CHANGED
@@ -56,7 +56,6 @@
|
|
56
56
|
"./src/stores/editor/ChangeDetectionState.ts",
|
57
57
|
"./src/stores/editor/DependencyProjectViewerHelper.ts",
|
58
58
|
"./src/stores/editor/EditorConfig.ts",
|
59
|
-
"./src/stores/editor/EditorDepotState.ts",
|
60
59
|
"./src/stores/editor/EditorGraphState.ts",
|
61
60
|
"./src/stores/editor/EditorMode.ts",
|
62
61
|
"./src/stores/editor/EditorSDLCState.ts",
|
@@ -126,7 +125,6 @@
|
|
126
125
|
"./src/stores/editor/panel-group/DevToolPanelState.ts",
|
127
126
|
"./src/stores/editor/sidebar-state/BulkServiceRegistrationState.ts",
|
128
127
|
"./src/stores/editor/sidebar-state/LocalChangesState.ts",
|
129
|
-
"./src/stores/editor/sidebar-state/ProjectDependantEditorState.ts",
|
130
128
|
"./src/stores/editor/sidebar-state/ProjectOverviewState.ts",
|
131
129
|
"./src/stores/editor/sidebar-state/WorkflowManagerState.ts",
|
132
130
|
"./src/stores/editor/sidebar-state/WorkspaceReviewState.ts",
|
@@ -254,7 +252,6 @@
|
|
254
252
|
"./src/components/editor/side-bar/CreateNewElementModal.tsx",
|
255
253
|
"./src/components/editor/side-bar/Explorer.tsx",
|
256
254
|
"./src/components/editor/side-bar/LocalChanges.tsx",
|
257
|
-
"./src/components/editor/side-bar/ProjectDependantsEditor.tsx",
|
258
255
|
"./src/components/editor/side-bar/ProjectOverview.tsx",
|
259
256
|
"./src/components/editor/side-bar/RegisterService.tsx",
|
260
257
|
"./src/components/editor/side-bar/SideBar.tsx",
|
@@ -1,19 +0,0 @@
|
|
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
|
-
export declare const ProjectDependantsEditor: (() => import("react/jsx-runtime").JSX.Element) & {
|
17
|
-
displayName: string;
|
18
|
-
};
|
19
|
-
//# sourceMappingURL=ProjectDependantsEditor.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ProjectDependantsEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/editor/side-bar/ProjectDependantsEditor.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiIH,eAAO,MAAM,uBAAuB;;CA2ElC,CAAC"}
|
@@ -1,76 +0,0 @@
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
2
|
-
/**
|
3
|
-
* Copyright (c) 2020-present, Goldman Sachs
|
4
|
-
*
|
5
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
-
* you may not use this file except in compliance with the License.
|
7
|
-
* You may obtain a copy of the License at
|
8
|
-
*
|
9
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
-
*
|
11
|
-
* Unless required by applicable law or agreed to in writing, software
|
12
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
-
* See the License for the specific language governing permissions and
|
15
|
-
* limitations under the License.
|
16
|
-
*/
|
17
|
-
import { useEffect } from 'react';
|
18
|
-
import { useApplicationStore } from '@finos/legend-application';
|
19
|
-
import { PanelListItem, Badge, DropdownMenu, MenuContent, MenuContentItem, CaretDownIcon, PanelLoadingIndicator, PanelDivider, PanelFormSection, Panel, InfoCircleIcon, } from '@finos/legend-art';
|
20
|
-
import { MASTER_SNAPSHOT_ALIAS, SNAPSHOT_VERSION_ALIAS, } from '@finos/legend-server-depot';
|
21
|
-
import { generateGAVCoordinates } from '@finos/legend-storage';
|
22
|
-
import { flowResult } from 'mobx';
|
23
|
-
import { observer } from 'mobx-react-lite';
|
24
|
-
import { PROJECT_OVERVIEW_ACTIVITY_MODE } from '../../../stores/editor/sidebar-state/ProjectOverviewState.js';
|
25
|
-
import { useEditorStore } from '../EditorStoreProvider.js';
|
26
|
-
import { generateViewProjectByGAVRoute, generateViewProjectRoute, generateViewVersionRoute, } from '../../../__lib__/LegendStudioNavigation.js';
|
27
|
-
const ProjectDependantEditor = observer((props) => {
|
28
|
-
const { dependant } = props;
|
29
|
-
const editorStore = useEditorStore();
|
30
|
-
const applicationStore = useApplicationStore();
|
31
|
-
const configState = editorStore.projectConfigurationEditorState;
|
32
|
-
const viewProject = (dependency) => {
|
33
|
-
applicationStore.navigationService.navigator.visitAddress(applicationStore.navigationService.navigator.generateAddress(generateViewProjectByGAVRoute(dependency.groupId, dependency.artifactId, dependency.versionId === MASTER_SNAPSHOT_ALIAS
|
34
|
-
? SNAPSHOT_VERSION_ALIAS
|
35
|
-
: dependency.versionId)));
|
36
|
-
};
|
37
|
-
// NOTE: This assumes that the dependant project is in the same studio instance as the current project
|
38
|
-
// In the future, the studio instance may be part of the project data
|
39
|
-
const viewSDLCProject = (dependency) => {
|
40
|
-
if (dependency.projectId && dependency.versionId) {
|
41
|
-
applicationStore.navigationService.navigator.visitAddress(applicationStore.navigationService.navigator.generateAddress(dependency.versionId === MASTER_SNAPSHOT_ALIAS
|
42
|
-
? generateViewProjectRoute(dependency.projectId)
|
43
|
-
: generateViewVersionRoute(dependency.projectId, dependency.versionId)));
|
44
|
-
}
|
45
|
-
};
|
46
|
-
return (_jsx("div", { className: "project-dependency-editor", children: _jsxs(PanelListItem, { className: "panel__content__form__list__item--expand-width", children: [_jsx("div", { className: "project-dependency-editor", children: _jsxs("div", { className: "project-overview__dependants__label", children: [_jsx("div", { className: "project-overview__dependants__label__tag", children: dependant.projectId ?? 'UAT-52849100' }), _jsxs("div", { className: "project-overview__dependants__label__name", children: [generateGAVCoordinates(dependant.groupId, dependant.artifactId, undefined), _jsx(Badge, { className: "badge--right", tooltip: `Depends on parent project ${configState.currentProjectConfiguration.projectId} version ${dependant.dependency.versionId}`, title: dependant.dependency.versionId })] })] }) }), _jsxs(DropdownMenu, { className: "project-dependency-editor__visit-project-btn__dropdown-trigger btn--medium", content: _jsxs(MenuContent, { children: [_jsx(MenuContentItem, { onClick: () => viewProject(dependant), title: "View project", children: "Project" }), _jsx(MenuContentItem, { title: "View SDLC project", disabled: !dependant.projectId || !dependant.versionId, onClick: () => viewSDLCProject(dependant), children: "SDLC project" })] }), children: ["Go to...", _jsx(CaretDownIcon, { title: "Show more options..." })] })] }) }, dependant.artifactId + dependant.groupId));
|
47
|
-
});
|
48
|
-
export const ProjectDependantsEditor = observer(() => {
|
49
|
-
const editorStore = useEditorStore();
|
50
|
-
const applicationStore = useApplicationStore();
|
51
|
-
const projectOverviewState = editorStore.projectOverviewState;
|
52
|
-
const dependantEditorState = projectOverviewState.projectDependantEditorState;
|
53
|
-
const dependants = dependantEditorState.dependants;
|
54
|
-
const isLoading = dependantEditorState.fetchingDependantInfoState.isInProgress;
|
55
|
-
useEffect(() => {
|
56
|
-
flowResult(projectOverviewState.fetchDependants()).catch(applicationStore.alertUnhandledError);
|
57
|
-
}, [applicationStore, projectOverviewState]);
|
58
|
-
return (_jsxs(Panel, { className: "side-bar__panel project-overview__panel", children: [_jsxs("div", { className: "panel__header", children: [_jsxs("div", { className: "panel__header__title", children: [_jsx("div", { className: "panel__header__title__content", children: PROJECT_OVERVIEW_ACTIVITY_MODE.DEPENDANTS }), _jsx("div", { className: "side-bar__panel__title__info", title: `List of projects that depend on current project (${projectOverviewState.sdlcState.currentProject?.projectId})`, children: _jsx(InfoCircleIcon, {}) })] }), _jsx("div", { className: "side-bar__panel__header__changes-count", children: projectOverviewState.projectDependantEditorState.dependants
|
59
|
-
?.length ?? 0 })] }), _jsx(PanelFormSection, { children: _jsxs("div", { className: "panel__content__lists", children: [_jsx(PanelLoadingIndicator, { isLoading: isLoading }), isLoading && (_jsx("div", { className: "project-dependency-editor__progress-msg", children: "Fetching dependant versions" })), dependants?.map((dependant) => (_jsx(ProjectDependantEditor, { dependant: dependant }, dependant.groupId + dependant.artifactId))), _jsx(PanelDivider, {}), _jsx("button", { className: "btn btn--dark", tabIndex: -1,
|
60
|
-
// FIXME: @xannem we must modularize this instead of depending on an extension-specific logic like this
|
61
|
-
// onClick={() => {
|
62
|
-
// applicationStore.navigationService.navigator.visitAddress(
|
63
|
-
// generateExtensionUrlPattern(
|
64
|
-
// generateDependencyDashboardRoute(
|
65
|
-
// configState.currentProjectConfiguration.projectId,
|
66
|
-
// configState.currentProjectConfiguration.groupId,
|
67
|
-
// configState.currentProjectConfiguration.artifactId,
|
68
|
-
// undefined,
|
69
|
-
// undefined,
|
70
|
-
// ),
|
71
|
-
// ),
|
72
|
-
// );
|
73
|
-
// }}
|
74
|
-
title: "Open dependants dashboard", children: "Open Dependants Dashboard" })] }) })] }));
|
75
|
-
});
|
76
|
-
//# sourceMappingURL=ProjectDependantsEditor.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ProjectDependantsEditor.js","sourceRoot":"","sources":["../../../../src/components/editor/side-bar/ProjectDependantsEditor.tsx"],"names":[],"mappings":"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"}
|
@@ -1,25 +0,0 @@
|
|
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
|
-
import type { EditorStore } from './EditorStore.js';
|
17
|
-
import { type GeneratorFn } from '@finos/legend-shared';
|
18
|
-
export declare class EditorDepotState {
|
19
|
-
readonly editorStore: EditorStore;
|
20
|
-
projectVersions: string[];
|
21
|
-
isFetchingProjectVersions: boolean;
|
22
|
-
constructor(editorStore: EditorStore);
|
23
|
-
fetchProjectVersions(): GeneratorFn<void>;
|
24
|
-
}
|
25
|
-
//# sourceMappingURL=EditorDepotState.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"EditorDepotState.d.ts","sourceRoot":"","sources":["../../../src/stores/editor/EditorDepotState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,sBAAsB,CAAC;AAI9B,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,eAAe,EAAE,MAAM,EAAE,CAAM;IAC/B,yBAAyB,UAAS;gBAEtB,WAAW,EAAE,WAAW;IAUnC,oBAAoB,IAAI,WAAW,CAAC,IAAI,CAAC;CAyB3C"}
|
@@ -1,49 +0,0 @@
|
|
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
|
-
import { flow, makeObservable, observable } from 'mobx';
|
17
|
-
import { guaranteeNonNullable, LogEvent, assertErrorThrown, } from '@finos/legend-shared';
|
18
|
-
import { StoreProjectData } from '@finos/legend-server-depot';
|
19
|
-
import { LEGEND_STUDIO_APP_EVENT } from '../../__lib__/LegendStudioEvent.js';
|
20
|
-
export class EditorDepotState {
|
21
|
-
editorStore;
|
22
|
-
projectVersions = [];
|
23
|
-
isFetchingProjectVersions = false;
|
24
|
-
constructor(editorStore) {
|
25
|
-
makeObservable(this, {
|
26
|
-
projectVersions: observable,
|
27
|
-
isFetchingProjectVersions: observable,
|
28
|
-
fetchProjectVersions: flow,
|
29
|
-
});
|
30
|
-
this.editorStore = editorStore;
|
31
|
-
}
|
32
|
-
*fetchProjectVersions() {
|
33
|
-
try {
|
34
|
-
this.isFetchingProjectVersions = true;
|
35
|
-
// NOTE: this is not necessary. groupId and artifactId could be gotten from this.editorStore.projectConfigurationEditorState
|
36
|
-
const currentProject = (yield this.editorStore.depotServerClient.getProjectById(this.editorStore.sdlcState.activeProject.projectId)).map((v) => StoreProjectData.serialization.fromJson(v))[0];
|
37
|
-
this.projectVersions =
|
38
|
-
(yield this.editorStore.depotServerClient.getVersions(guaranteeNonNullable(currentProject).groupId, guaranteeNonNullable(currentProject).artifactId, true));
|
39
|
-
}
|
40
|
-
catch (error) {
|
41
|
-
assertErrorThrown(error);
|
42
|
-
this.editorStore.applicationStore.logService.error(LogEvent.create(LEGEND_STUDIO_APP_EVENT.DEPOT_MANAGER_FAILURE), error);
|
43
|
-
}
|
44
|
-
finally {
|
45
|
-
this.isFetchingProjectVersions = false;
|
46
|
-
}
|
47
|
-
}
|
48
|
-
}
|
49
|
-
//# sourceMappingURL=EditorDepotState.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"EditorDepotState.js","sourceRoot":"","sources":["../../../src/stores/editor/EditorDepotState.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAExD,OAAO,EACL,oBAAoB,EAEpB,QAAQ,EACR,iBAAiB,GAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,MAAM,OAAO,gBAAgB;IAClB,WAAW,CAAc;IAElC,eAAe,GAAa,EAAE,CAAC;IAC/B,yBAAyB,GAAG,KAAK,CAAC;IAElC,YAAY,WAAwB;QAClC,cAAc,CAAC,IAAI,EAAE;YACnB,eAAe,EAAE,UAAU;YAC3B,yBAAyB,EAAE,UAAU;YACrC,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED,CAAC,oBAAoB;QACnB,IAAI;YACF,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YACtC,4HAA4H;YAC5H,MAAM,cAAc,GAClB,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,cAAc,CACtD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CACnD,CACF,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,eAAe;gBAClB,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CACnD,oBAAoB,CAAC,cAAc,CAAC,CAAC,OAAO,EAC5C,oBAAoB,CAAC,cAAc,CAAC,CAAC,UAAU,EAC/C,IAAI,CACL,CAAa,CAAC;SAClB;QAAC,OAAO,KAAK,EAAE;YACd,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAChD,QAAQ,CAAC,MAAM,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,EAC9D,KAAK,CACN,CAAC;SACH;gBAAS;YACR,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;SACxC;IACH,CAAC;CACF"}
|