@finos/legend-application-studio
Version:
Legend Studio application core
133 lines • 7.33 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 { DSL_LegendStudioApplicationPlugin_Extension } from '../LegendStudioApplicationPlugin.js';
import type { ConnectionValueState } from '../editor/editor-state/element-editor-state/connection/ConnectionEditorState.js';
import type { EditorStore } from '../editor/EditorStore.js';
import type { Store, Connection, SetImplementation, InstanceSetImplementation } from '@finos/legend-graph';
import type { NewConnectionValueDriver } from '../editor/NewElementState.js';
import type { MappingElement, MappingElementSource } from '../editor/editor-state/element-editor-state/mapping/MappingEditorState.js';
import type { InstanceSetImplementationState, MappingElementState, PropertyMappingState } from '../editor/editor-state/element-editor-state/mapping/MappingElementState.js';
import type { PureGrammarTextSuggestion } from '@finos/legend-code-editor';
type MappingSourceTypeInfo = {
sourceType: string;
sourceName: string;
};
export type PureGrammarConnectionLabeler = (connection: Connection) => string | undefined;
export type SetImplementationDecorator = (setImplementation: SetImplementation) => void;
export type SetImplementationDecorationCleaner = (setImplementation: SetImplementation) => void;
export interface MappingElementLabel {
value: string;
root: boolean;
tooltip: string;
}
export type SetImplementationMappingElementLabelInfoBuilder = (setImplementation: SetImplementation) => MappingElementLabel | undefined;
export type MappingElementSourceExtractor = (mappingElement: MappingElement) => MappingElementSource;
export type MappingElementStateCreator = (mappingElement: MappingElement | undefined, editorStore: EditorStore) => MappingElementState | undefined;
export type DefaultConnectionValueBuilder = (store: Store) => Connection | undefined;
export type ConnectionValueEditorStateBuilder = (editorStore: EditorStore, connection: Connection) => ConnectionValueState | undefined;
export type ConnectionEditorRenderer = (connectionValueState: ConnectionValueState, isReadOnly: boolean) => React.ReactNode | undefined;
export type RuntimeConnectionTooltipTextBuilder = (connection: Connection) => string | undefined;
export type NewConnectionDriverCreator = (editorStore: EditorStore, typeOrStore: Store | string) => NewConnectionValueDriver<Connection> | undefined;
export type ConnectionTypeOption = {
value: string;
label: string;
};
export type NewConnectionSnippetSuggestion = PureGrammarTextSuggestion;
/**
* @returns a boolean indicating whether the update has ocurred or not
*/
export type InstanceSetImplementationSourceUpdater = (setImplementation: InstanceSetImplementation, newSource: unknown) => boolean;
export type MappingSourceTypeInfoGetter = (setImplementation: SetImplementation) => MappingSourceTypeInfo | undefined;
export type PropertyMappingEditorRenderer = (instanceSetImplementationState: InstanceSetImplementationState, propertyMappingState: PropertyMappingState) => React.ReactNode | undefined;
export type InstanceSetImplementationBlockingErrorChecker = (setImplementationState: InstanceSetImplementationState) => boolean | undefined;
export type InstanceSetImplementationStoreExtractor = (sourceElement: MappingElementSource) => Store | undefined;
export interface DSL_Mapping_LegendStudioApplicationPlugin_Extension extends DSL_LegendStudioApplicationPlugin_Extension {
/**
* Get the list of Pure grammar type labelers for connections.
*/
getExtraPureGrammarConnectionLabelers?(): PureGrammarConnectionLabeler[];
/**
* Get the list of set implementation decorators.
*/
getExtraSetImplementationDecorationCleaners?(): SetImplementationDecorationCleaner[];
/**
* Get the list of set implementation decorators.
*/
getExtraSetImplementationDecorators?(): SetImplementationDecorator[];
/**
* Get the list of mapping element info builders for set implemenetation.
*/
getExtraSetImplementationMappingElementLabelInfoBuilders?(): SetImplementationMappingElementLabelInfoBuilder[];
/**
* Get the list of the mapping element state creators for the given class mapping.
*/
getExtraMappingElementStateCreators?(): MappingElementStateCreator[];
/**
* Get the list of source extractors for the specified mapping element.
*/
getExtraMappingElementSourceExtractors?(): MappingElementSourceExtractor[];
/**
* Get extra connection type options.
*/
getExtraConnectionTypeOptions?(): ConnectionTypeOption[];
/**
* Get the list of the default connection value builder for a specified store.
*/
getExtraDefaultConnectionValueBuilders?(): DefaultConnectionValueBuilder[];
/**
* Get the list of editor state builders for a specified connection value.
*/
getExtraConnectionValueEditorStateBuilders?(): ConnectionValueEditorStateBuilder[];
/**
* Get the list of renderers for a specified connection editor state.
*/
getExtraConnectionEditorRenderers?(): ConnectionEditorRenderer[];
/**
* Get the list of the runtime connection tooltip text builders for a specified connection.
*/
getExtraRuntimeConnectionTooltipTextBuilders?(): RuntimeConnectionTooltipTextBuilder[];
/**
* Get the list of creators for connection creation state driver given the store.
*/
getExtraNewConnectionDriverCreators?(): NewConnectionDriverCreator[];
/**
* Get the list of creators for connection creation state driver given the store.
*/
getExtraNewConnectionSnippetSuggestions?(): NewConnectionSnippetSuggestion[];
/**
* Get the list of instance set implementation source updaters.
*/
getExtraInstanceSetImplementationSourceUpdaters?(): InstanceSetImplementationSourceUpdater[];
/**
* Get the list of source-type info getters for mapping.
*/
getExtraMappingSourceTypeInfoGetters?(): MappingSourceTypeInfoGetter[];
/**
* Get the list of renderers for property mapping editor.
*/
getExtraPropertyMappingEditorRenderers?(): PropertyMappingEditorRenderer[];
/**
* Get the list of checkers for errors in the specified instance set implementation that could
* potentially block the user interaction until fixed (e.g. parser error in some property mapping transform lambda editor).
*/
getExtraInstanceSetImplementationBlockingErrorCheckers?(): InstanceSetImplementationBlockingErrorChecker[];
/**
* Get the list of store extractor for the given set implementation source.
*/
getExtraInstanceSetImplementationStoreExtractors?(): InstanceSetImplementationStoreExtractor[];
}
export {};
//# sourceMappingURL=DSL_Mapping_LegendStudioApplicationPlugin_Extension.d.ts.map