UNPKG

@reactodia/workspace

Version:

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

89 lines 2.95 kB
import { ElementIri, ElementModel, LinkTypeIri } from '../data/model'; import { Element, ElementTemplateState, Link, LinkTemplateState, LinkTypeVisibility } from '../diagram/elements'; import { Vector } from '../diagram/geometry'; export interface SerializedDiagram { '@context': any; '@type': 'Diagram'; layoutData: SerializedLayout; linkTypeOptions?: ReadonlyArray<SerializedLinkOptions>; } export interface SerializedLinkOptions { '@type': 'LinkTypeOptions'; property: LinkTypeIri; visible: boolean; showLabel?: boolean; } export interface SerializedLayout { '@type': 'Layout'; elements: ReadonlyArray<SerializedLayoutElement | SerializedLayoutElementGroup>; links: ReadonlyArray<SerializedLayoutLink | SerializedLayoutLinkGroup>; } export interface SerializedLayoutElement { '@type': 'Element'; '@id': string; iri?: ElementIri; position: Vector; isExpanded?: boolean; elementState?: ElementTemplateState; } export interface SerializedLayoutElementGroup { '@type': 'ElementGroup'; '@id': string; items: ReadonlyArray<SerializedLayoutElementItem>; position: Vector; elementState?: ElementTemplateState; } export interface SerializedLayoutElementItem { '@type': 'ElementItem'; iri: ElementIri; elementState?: ElementTemplateState; } export interface SerializedLayoutLink { '@type': 'Link'; '@id': string; property: LinkTypeIri; source: { '@id': string; }; target: { '@id': string; }; targetIri?: ElementIri; sourceIri?: ElementIri; vertices?: ReadonlyArray<Vector>; linkState?: LinkTemplateState; } export interface SerializedLayoutLinkGroup { '@type': 'LinkGroup'; '@id': string; property: LinkTypeIri; source: { '@id': string; }; target: { '@id': string; }; items: ReadonlyArray<SerializedLayoutLinkItem>; vertices?: ReadonlyArray<Vector>; linkState?: LinkTemplateState; } export interface SerializedLayoutLinkItem { '@type': 'LinkItem'; targetIri: ElementIri; sourceIri: ElementIri; linkState?: LinkTemplateState; } export declare function emptyDiagram(): SerializedDiagram; export interface DeserializedDiagram { elements: ReadonlyArray<Element>; links: ReadonlyArray<Link>; linkTypeVisibility: ReadonlyMap<LinkTypeIri, LinkTypeVisibility>; } export declare function serializeDiagram(diagram: DeserializedDiagram): SerializedDiagram; export interface DeserializeDiagramOptions { readonly preloadedElements?: ReadonlyMap<ElementIri, ElementModel>; readonly markLinksAsLayoutOnly?: boolean; } export declare function deserializeDiagram(diagram: SerializedDiagram, options?: DeserializeDiagramOptions): DeserializedDiagram; export declare function markLayoutOnly(linkState: LinkTemplateState | undefined, value: boolean): LinkTemplateState | undefined; //# sourceMappingURL=serializedDiagram.d.ts.map