UNPKG

@reactodia/workspace

Version:

Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.

94 lines 4.13 kB
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