LayoutModel
23 Sep 20258 minutes to read
Interface for a class Layout
Properties
arrangement ChildArrangement
connect the node’s without overlapping in automatic layout
bounds Rect
Aligns the layout within the given bounds
connectionDirection ConnectionDirection
Sets how to define the connection direction (first segment direction & last segment direction).
- Auto - Defines the first segment direction based on the type of the layout
- Orientation - Defines the first segment direction based on the orientation of the layout
- Custom - Defines the first segment direction dynamically by the user
connectionPointOrigin ConnectionPointOrigin
connect the node’s without overlapping in automatic layout
connectorSegments ConnectorSegments
Sets whether the segments have to be customized based on the layout or not
- Default - Routes the connectors like a default diagram
- Layout - Routes the connectors based on the type of the layout
enableAnimation boolean
Enables/Disables animation option when a node is expanded/collapsed
<div id='diagram'></div>let nodes: NodeModel[] = [{
id: 'node1', width: 100, height: 100, offsetX: 100, offsetY: 100,
annotations: [{ content: 'Default Shape' }]
},
{
id: 'node2', width: 100, height: 100, offsetX: 300, offsetY: 100,
shape: {
type: 'Basic', shape: 'Ellipse'
},
annotations: [{ content: 'Path Element' }]
}
];
let connectors: ConnectorModel[] = [{
id: 'connector1',
type: 'Straight',
sourcePoint: { x: 100, y: 300 },
targetPoint: { x: 200, y: 400 },
}];
let diagram: Diagram = new Diagram({
connectors: connectors, nodes: nodes,
...
layout: {
enableAnimation: true, orientation: 'TopToBottom',
type: 'OrganizationalChart', margin: { top: 20 },
horizontalSpacing: 30, verticalSpacing: 30,
},
...
});
diagram.appendTo('#diagram');enableRouting boolean
Enable / Disable connector routing for the layout
fixedNode string
Sets the name of the node with respect to which all other nodes will be translated
flowchartLayoutSettings FlowchartLayoutSettingsModel
Defines the flow chart settings of the layout
getBranch Function|string
Defines whether an object should be at the left/right of the mind map. Applicable only for the direct children of the root node
getLayoutInfo Function|string
getLayoutInfo is used to configure every subtree of the organizational chart
<div id='diagram'></div>let nodes: NodeModel[] = [{
id: 'node1', width: 100, height: 100, offsetX: 100, offsetY: 100,
annotations: [{ content: 'Default Shape' }]
},
{
id: 'node2', width: 100, height: 100, offsetX: 300, offsetY: 100,
shape: {
type: 'Basic', shape: 'Ellipse'
},
annotations: [{ content: 'Path Element' }]
}
];
let connectors: ConnectorModel[] = [{
id: 'connector1',
type: 'Straight',
sourcePoint: { x: 100, y: 300 },
targetPoint: { x: 200, y: 400 },
}];
let diagram: Diagram = new Diagram({
...
connectors: connectors, nodes: nodes,
layout: {
enableAnimation: true,
type: 'OrganizationalChart', margin: { top: 20 },
getLayoutInfo: (node: Node, tree: TreeInfo) => {
if (!tree.hasSubTree) {
tree.orientation = 'Vertical';
tree.type = 'Alternate';
}
}
},
...
});
diagram.appendTo('#diagram');horizontalAlignment HorizontalAlignment
Defines how the layout has to be horizontally aligned
- Stretch - Stretches the diagram element throughout its immediate parent
- Left - Aligns the diagram element at the left of its immediate parent
- Right - Aligns the diagram element at the right of its immediate parent
- Center - Aligns the diagram element at the center of its immediate parent
- Auto - Aligns the diagram element based on the characteristics of its immediate parent
horizontalSpacing number
Sets the space that has to be horizontally left between the nodes
layoutInfo TreeInfo
getLayoutInfo is used to configure every subtree of the organizational chart
margin MarginModel
- Defines the space between the viewport and the layout
maxIteration number
Sets the Maximum no of iteration of the symmetrical layout
orientation LayoutOrientation
Defines the orientation of layout
- TopToBottom - Renders the layout from top to bottom
- BottomToTop - Renders the layout from bottom to top
- LeftToRight - Renders the layout from left to right
- RightToLeft - Renders the layout from right to left
- Horizontal - Renders only the MindMap from left to right
- Vertical - Renders only the MindMap from top to bottom
root string
Defines the root of the hierarchical tree layout
springFactor number
Defines the Edge attraction and vertex repulsion forces, i.e., the more sibling nodes repel each other
<div id='diagram'></div>let diagram: Diagram = new Diagram({
...
layout: { type: 'SymmetricalLayout', springLength: 80, springFactor: 0.8,
maxIteration: 500, margin: { left: 20, top: 20 } },
...
});
diagram.appendTo('#diagram');springLength number
Sets how long edges should be, ideally of the symmetrical layout
type LayoutType
Defines the type of the layout
- None - None of the layouts is applied
- HierarchicalTree - Defines the type of the layout as Hierarchical Tree
- OrganizationalChart - Defines the type of the layout as Organizational Chart
- ComplexHierarchicalTree - Defines the type of the layout as complex HierarchicalTree
- RadialTree - Defines the type of the layout as Radial tree
- MindMap - Defines the type of the layout as MindMap
- SymmetricalLayout - Defines the type of the layout as SymmetricalLayout
- Flowchart - Defines the type of the layout as Flowchart
verticalAlignment VerticalAlignment
Defines how the layout has to be vertically aligned
- Stretch - Stretches the diagram element throughout its immediate parent
- Top - Aligns the diagram element at the top of its immediate parent
- Bottom - Aligns the diagram element at the bottom of its immediate parent
- Center - Aligns the diagram element at the center of its immediate parent
- Auto - Aligns the diagram element based on the characteristics of its immediate parent
verticalSpacing number
Sets the space that has to be Vertically left between the nodes