UNPKG

@finos/legend-application-studio

Version:
103 lines (86 loc) 3.31 kB
/** * 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 { Connection, EmbeddedData, SetImplementation, StoreTestData, } from '@finos/legend-graph'; import type { EmbeddedDataTypeOption } from '../editor/editor-state/element-editor-state/data/DataEditorState.js'; import type { EmbeddedDataState } from '../editor/editor-state/element-editor-state/data/EmbeddedDataState.js'; import type { EditorStore } from '../editor/EditorStore.js'; import type { DSL_LegendStudioApplicationPlugin_Extension } from '../LegendStudioApplicationPlugin.js'; import type { ElementEmbeddedContentSnippetSuggestion } from '@finos/legend-code-editor'; export type EmbeddedDataEditorStateBuilder = ( editorStore: EditorStore, embeddedData: EmbeddedData, ) => EmbeddedDataState | undefined; export type EmbeddedDataEditorRenderer = ( embeddedDataState: EmbeddedDataState, isReadOnly: boolean, ) => React.ReactNode | undefined; export type EmbeddedDataCreator = ( embeddedDataType: string, ) => EmbeddedData | undefined; export type EmbeddedDataCloner = ( embeddedData: EmbeddedData, ) => EmbeddedData | undefined; export type StoreTestDataCreators = ( setImp: SetImplementation, ) => StoreTestData | undefined; export type EmbeddedDataTypeFromConnectionMatcher = ( connection: Connection, ) => string | undefined; /** * NOTE: The tab-stop index of the snippet must start from 2 */ export type EmbeddedDataSnippetSuggestion = ElementEmbeddedContentSnippetSuggestion; export interface DSL_Data_LegendStudioApplicationPlugin_Extension extends DSL_LegendStudioApplicationPlugin_Extension { /** * Get the list of extra embedded data editor state builders. */ getExtraEmbeddedDataEditorStateBuilders?(): EmbeddedDataEditorStateBuilder[]; /** * Get the list extra renderers for a specified embedded data editor state. */ getExtraEmbeddedDataEditorRenderers?(): EmbeddedDataEditorRenderer[]; /** * Get the list extra embedded data type options. */ getExtraEmbeddedDataTypeOptions?(): EmbeddedDataTypeOption[]; /** * Get the list of Pure grammar suggestion snippet getters for embedded data */ getExtraEmbeddedDataSnippetSuggestions?(): EmbeddedDataSnippetSuggestion[]; /** * Get the list of embedded data creators */ getExtraEmbeddedDataCreators?(): EmbeddedDataCreator[]; /** * Get the list of embedded data type from connection matchers */ getExtraEmbeddedDataTypeFromConnectionMatchers?(): EmbeddedDataTypeFromConnectionMatcher[]; /** * Get the list of store test data creators */ getExtraStoreTestDataCreators?(): StoreTestDataCreators[]; /** * Get the list of embedded data cloners */ getExtraEmbeddedDataCloners?(): EmbeddedDataCloner[]; }