@reactodia/workspace
Version:
Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.
94 lines • 4.13 kB
TypeScript
import type * as Rdf from './rdf/rdfModel';
import type { ElementModel, ElementTypeIri, LinkTypeIri, PropertyTypeIri, LinkModel } from './model';
export interface MetadataProvider {
getLiteralLanguages(): ReadonlyArray<string>;
createEntity(type: ElementTypeIri, options: {
readonly signal?: AbortSignal;
}): Promise<ElementModel>;
createRelation(source: ElementModel, target: ElementModel, linkType: LinkTypeIri, options: {
readonly signal?: AbortSignal;
}): Promise<LinkModel>;
canConnect(source: ElementModel, target: ElementModel | undefined, linkType: LinkTypeIri | undefined, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataCanConnect[]>;
canModifyEntity(entity: ElementModel, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataCanModifyEntity>;
canModifyRelation(link: LinkModel, source: ElementModel, target: ElementModel, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataCanModifyRelation>;
getEntityShape(types: ReadonlyArray<ElementTypeIri>, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataEntityShape>;
getRelationShape(linkType: LinkTypeIri, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataRelationShape>;
filterConstructibleTypes(types: ReadonlySet<ElementTypeIri>, options: {
readonly signal?: AbortSignal;
}): Promise<ReadonlySet<ElementTypeIri>>;
}
export interface MetadataCanConnect {
readonly targetTypes: ReadonlySet<ElementTypeIri>;
readonly inLinks: ReadonlyArray<LinkTypeIri>;
readonly outLinks: ReadonlyArray<LinkTypeIri>;
}
export interface MetadataCanModifyEntity {
readonly canChangeIri?: boolean;
readonly canEdit?: boolean;
readonly canDelete?: boolean;
}
export interface MetadataCanModifyRelation {
readonly canChangeType?: boolean;
readonly canEdit?: boolean;
readonly canDelete?: boolean;
}
export interface MetadataEntityShape {
readonly extraProperty?: MetadataPropertyShape;
readonly properties: ReadonlyMap<PropertyTypeIri, MetadataPropertyShape>;
}
export interface MetadataRelationShape {
readonly extraProperty?: MetadataPropertyShape;
readonly properties: ReadonlyMap<PropertyTypeIri, MetadataPropertyShape>;
}
export interface MetadataPropertyShape {
readonly valueShape: MetadataValueShape;
readonly minCount?: number;
readonly maxCount?: number;
}
export type MetadataValueShape = {
readonly termType: 'NamedNode';
} | {
readonly termType: 'Literal';
readonly datatype?: Rdf.NamedNode;
};
export declare class BaseMetadataProvider implements MetadataProvider {
private readonly methods;
private readonly emptyProperties;
constructor(methods?: Partial<MetadataProvider>);
getLiteralLanguages(): ReadonlyArray<string>;
createEntity(type: ElementTypeIri, options: {
readonly signal?: AbortSignal;
}): Promise<ElementModel>;
createRelation(source: ElementModel, target: ElementModel, linkType: LinkTypeIri, options: {
readonly signal?: AbortSignal;
}): Promise<LinkModel>;
canConnect(source: ElementModel, target: ElementModel | undefined, linkType: LinkTypeIri | undefined, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataCanConnect[]>;
canModifyEntity(entity: ElementModel, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataCanModifyEntity>;
canModifyRelation(link: LinkModel, source: ElementModel, target: ElementModel, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataCanModifyRelation>;
getEntityShape(types: ReadonlyArray<ElementTypeIri>, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataEntityShape>;
getRelationShape(linkType: LinkTypeIri, options: {
readonly signal?: AbortSignal;
}): Promise<MetadataRelationShape>;
filterConstructibleTypes(types: ReadonlySet<ElementTypeIri>, options: {
readonly signal?: AbortSignal;
}): Promise<ReadonlySet<ElementTypeIri>>;
}
//# sourceMappingURL=metadataProvider.d.ts.map