File size: 3,152 Bytes
bc20498 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
/*******************************************************************************
* Copyright (c) 2019 TypeFox and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*******************************************************************************/
export interface LayoutOptions {
[key: string]: string
}
export interface ElkPoint {
x: number
y: number
}
export interface ElkGraphElement {
id?: string
labels?: ElkLabel[]
layoutOptions?: LayoutOptions
}
export interface ElkShape extends ElkGraphElement {
x?: number
y?: number
width?: number
height?: number
}
export interface ElkNode extends ElkShape {
id: string
children?: ElkNode[]
ports?: ElkPort[]
edges?: ElkExtendedEdge[]
}
export interface ElkPort extends ElkShape {
id: string
}
export interface ElkLabel extends ElkShape {
text?: string
}
/**
* @deprecated use ElkExtendedEdge directly
*/
export interface ElkEdge extends ElkGraphElement {
id: string
junctionPoints?: ElkPoint[]
}
/**
* @deprecated use ElkExtendedEdge instead
*/
export interface ElkPrimitiveEdge extends ElkEdge {
source: string
sourcePort?: string
target: string
targetPort?: string
sourcePoint?: ElkPoint
targetPoint?: ElkPoint
bendPoints?: ElkPoint[]
}
export interface ElkExtendedEdge extends ElkEdge {
sources: string[]
targets: string[]
sections?: ElkEdgeSection[]
}
export interface ElkEdgeSection extends ElkGraphElement {
id: string
startPoint: ElkPoint
endPoint: ElkPoint
bendPoints?: ElkPoint[]
incomingShape?: string
outgoingShape?: string
incomingSections?: string[]
outgoingSections?: string[]
}
export interface ElkLayoutArguments {
layoutOptions?: LayoutOptions
logging?: boolean
measureExecutionTime?: boolean
}
export interface ElkCommonDescription {
id?: string
name?: string
description?: string
}
export interface ElkLayoutAlgorithmDescription extends ElkCommonDescription {
category?: string
knownOptions?: string[]
supportedFeatures?: string[]
}
export interface ElkLayoutOptionDescription extends ElkCommonDescription {
group?: string
type?: string
targets?: string[]
}
export interface ElkLayoutCategoryDescription extends ElkCommonDescription {
knownLayouters?: string[]
}
export interface ELK {
layout(graph: ElkNode, args?: ElkLayoutArguments): Promise<ElkNode>;
knownLayoutAlgorithms(): Promise<ElkLayoutAlgorithmDescription[]>
knownLayoutOptions(): Promise<ElkLayoutOptionDescription[]>
knownLayoutCategories(): Promise<ElkLayoutCategoryDescription[]>
terminateWorker(): void;
}
export interface ELKConstructorArguments {
defaultLayoutOptions?: LayoutOptions
algorithms?: string[]
workerUrl?: string
workerFactory?: (url?: string) => Worker
}
declare const ElkConstructor: {
new(args?: ELKConstructorArguments): ELK;
};
export default ElkConstructor;
|