@finos/legend-application-studio
Version:
Legend Studio application core
56 lines • 2.73 kB
TypeScript
/**
* Copyright (c) 2020-present, Goldman Sachs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import type { EditorStore } from '../editor/EditorStore.js';
import { type GeneratorFn } from '@finos/legend-shared';
import { type ProjectViewerPathParams } from '../../__lib__/LegendStudioNavigation.js';
import { type Entity, type ProjectGAVCoordinates, type EntitiesWithOrigin } from '@finos/legend-storage';
import { Revision, Version } from '@finos/legend-server-sdlc';
import { type WorkflowManagerState } from '../editor/sidebar-state/WorkflowManagerState.js';
export declare class ProjectViewerStore {
readonly editorStore: EditorStore;
currentRevision?: Revision | undefined;
latestVersion?: Version | undefined;
revision?: Revision | undefined;
version?: Version | undefined;
initialEntityPath?: string | undefined;
projectGAVCoordinates?: ProjectGAVCoordinates | undefined;
workflowManagerState: WorkflowManagerState | undefined;
constructor(editorStore: EditorStore);
get onLatestVersion(): boolean;
get onCurrentRevision(): boolean;
/**
* Since we don't dynamically change the route based on the currently opened element
* We have to handle the following cases:
* 1. if the element is found and then the user opens another element
* 2. if the elemnt is not found
* in either case, the most suitable behavior at the moment is to internalize/swallow up the entity path param
*/
internalizeEntityPath(params: ProjectViewerPathParams): void;
/**
* Initialize the graph by fetching project information from the SDLC server.
*/
private initializeWithProjectInformation;
/**
* Initialize the viewer store given GAV coordinate of a project.
* This flow is different than the SDLC flow as we need to fetch the project
* from Depot server here, where SDLC objects like project configurations
* are not available.
*/
private initializeWithGAV;
buildGraph(entities: Entity[], dependencyEntitiesIndex: Map<string, EntitiesWithOrigin>): GeneratorFn<boolean>;
initialize(params: ProjectViewerPathParams): GeneratorFn<void>;
}
//# sourceMappingURL=ProjectViewerStore.d.ts.map