@eang/core
Version:
eang - model driven enterprise event processing
79 lines (78 loc) • 2.52 kB
TypeScript
export interface DiagramViewport {
scale: number;
translateX: number;
translateY: number;
}
export interface DiagramPoint {
x: number;
y: number;
}
export interface DiagramSize {
width: number;
height: number;
}
export interface DiagramObjOccurrencePort {
x?: number;
y?: number;
side?: string;
}
export interface DiagramObjOccurrence {
id: string;
entityId: string;
position: DiagramPoint;
size?: DiagramSize;
angle?: number;
z?: number;
shape?: string;
style?: Record<string, unknown>;
ports?: Record<string, DiagramObjOccurrencePort>;
label?: string;
}
export interface DiagramCnxOccurrenceLabel {
id: string;
text: string;
position?: number;
}
export interface DiagramCnxOccurrence {
id: string;
entityId?: string;
sourceOccurrenceId: string;
targetOccurrenceId: string;
sourcePortId?: string;
targetPortId?: string;
vertices?: DiagramPoint[];
labels?: DiagramCnxOccurrenceLabel[];
style?: Record<string, unknown>;
z?: number;
}
export interface DiagramTextOccurrence {
id: string;
text: string;
position: DiagramPoint;
size?: DiagramSize;
style?: Record<string, unknown>;
z?: number;
}
export interface DiagramOccurrences {
objs: Record<string, DiagramObjOccurrence>;
cnxs: Record<string, DiagramCnxOccurrence>;
texts?: Record<string, DiagramTextOccurrence>;
}
export interface DiagramDocumentV1 extends Record<string, unknown> {
version: 1;
viewport: DiagramViewport;
occurrences: DiagramOccurrences;
order?: string[];
}
export type DiagramDocument = DiagramDocumentV1;
export type DiagramOccurrenceType = 'obj' | 'cnx' | 'text';
export interface DiagramPatchOperation {
op: 'set_viewport' | 'put_obj_occurrence' | 'patch_obj_occurrence' | 'delete_obj_occurrence' | 'put_cnx_occurrence' | 'patch_cnx_occurrence' | 'delete_cnx_occurrence' | 'put_text_occurrence' | 'patch_text_occurrence' | 'delete_text_occurrence' | 'reorder';
occurrenceType?: DiagramOccurrenceType;
occurrenceId?: string;
value?: unknown;
}
export declare function createEmptyDiagramDocument(): DiagramDocumentV1;
export declare function isDiagramDocument(value: unknown): value is DiagramDocument;
export declare function applyDiagramPatch(document: DiagramDocument, patch: DiagramPatchOperation[]): DiagramDocument;
export declare function applyDiagramPatchOperation(document: DiagramDocument, operation: DiagramPatchOperation): DiagramDocument;