358 lines
13 KiB
TypeScript
358 lines
13 KiB
TypeScript
/**
|
|
* @author Martin Karkowski
|
|
* @email m.karkowski@zema.de
|
|
* @create date 2019-05-06 08:28:53
|
|
* @modify date 2020-10-29 19:18:14
|
|
* @desc [description]
|
|
*/
|
|
|
|
import { ISelection } from '../../layout/interfaces/ISelection';
|
|
import { IBasicTemplate } from '../interfaces/IBasicTemplate';
|
|
|
|
/**
|
|
* Function to Generate the Default Configuration of the Selection Sidebar.
|
|
* In this Object default Shapes for a Product, Process and Equipment are
|
|
* provided.
|
|
*/
|
|
export function generateDefaultSelection<N=any,E=any>(): ISelection<IBasicTemplate<N,E>>
|
|
{
|
|
const ret: ISelection<IBasicTemplate<N,E>> = [
|
|
{
|
|
groupName: 'Graph Elements',
|
|
items: [
|
|
{
|
|
keywords: 'swimlane,horizontal',
|
|
label: 'Horizontal Swimlane',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
font: {
|
|
background: 'white'
|
|
},
|
|
label: 'label',
|
|
shape: 'swimlane-horizontal'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'swimlane,vertical',
|
|
label: 'Vertical Swimlane',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
font: {
|
|
background: 'white'
|
|
},
|
|
label: 'label',
|
|
shape: 'swimlane-vertical'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'rectangle',
|
|
label: 'Rectangle',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
dropable: true,
|
|
label: 'label',
|
|
shape: 'box'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'circle',
|
|
label: 'Circle',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
dropable: true,
|
|
label: 'label',
|
|
shape: 'circle'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'ellipse',
|
|
label: 'Ellipse',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
label: 'label',
|
|
shape: 'ellipse'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'hexagon',
|
|
label: 'Hexagon',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
label: 'label',
|
|
shape: 'hexagon'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'triangle',
|
|
label: 'Triangle',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
label: 'label',
|
|
shape: 'triangle'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'triangle-down',
|
|
label: 'Triangle-Down',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
label: 'label',
|
|
shape: 'triangleDown'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'square',
|
|
label: 'Square',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
label: 'label',
|
|
shape: 'square'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'diamond',
|
|
label: 'Diamond',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
label: 'label',
|
|
shape: 'diamond'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords: 'star',
|
|
label: 'Star',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
label: 'label',
|
|
shape: 'star'
|
|
}
|
|
], edges: []
|
|
}
|
|
},
|
|
{
|
|
keywords:'database',
|
|
label: 'Database',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: '',
|
|
label: 'label',
|
|
shape: 'database'
|
|
}
|
|
], edges: []
|
|
}
|
|
}
|
|
]
|
|
}, {
|
|
groupName: 'Products',
|
|
items: [
|
|
{
|
|
keywords: 'generic,roduct',
|
|
label: 'Sample Product',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: 'parent',
|
|
label: 'label',
|
|
shape: 'product',
|
|
receiveDropableElements: true,
|
|
editorComponentSelector: 'parent',
|
|
dropable: true,
|
|
segment: {
|
|
description: {
|
|
label: 'Description',
|
|
// Defined Background-Color
|
|
hidden: false,
|
|
// Defined Height
|
|
height: 50
|
|
}
|
|
}
|
|
},
|
|
{
|
|
id: 'resizer',
|
|
shape: 'dot',
|
|
color: 'black',
|
|
size: 5,
|
|
isResizer: true,
|
|
resizingSegment: 'container',
|
|
parent: 'parent',
|
|
level: 1,
|
|
},
|
|
], edges: []
|
|
}
|
|
}
|
|
]
|
|
},{
|
|
groupName: 'Process',
|
|
items: [
|
|
{
|
|
keywords: 'generic,process',
|
|
label: 'Sample Process',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: 'parent',
|
|
label: 'label',
|
|
shape: 'process',
|
|
editorComponentSelector: 'parent',
|
|
receiveDropableElements: true,
|
|
dropable: true,
|
|
segment: {
|
|
description: {
|
|
label: 'Description',
|
|
// Defined Background-Color
|
|
hidden: false,
|
|
// Defined Height
|
|
height: 50
|
|
}
|
|
}
|
|
},
|
|
{
|
|
id: '',
|
|
shape: 'dot',
|
|
color: 'black',
|
|
size: 5,
|
|
isResizer: true,
|
|
resizingSegment: 'container',
|
|
parent: 'parent',
|
|
level: 1,
|
|
}
|
|
], edges: []
|
|
}
|
|
}
|
|
]
|
|
},{
|
|
groupName: 'Equipment',
|
|
items: [
|
|
{
|
|
keywords: 'generic,equipment',
|
|
label: 'Sample Equipment',
|
|
template: {
|
|
type: 'element',
|
|
nodes: [
|
|
{
|
|
id: 'parent',
|
|
label: 'label',
|
|
shape: 'equipment',
|
|
editorComponentSelector: 'parent',
|
|
receiveDropableElements: true,
|
|
dropable: true,
|
|
segment: {
|
|
description: {
|
|
label: 'Description',
|
|
// Defined Background-Color
|
|
hidden: false,
|
|
// Defined Height
|
|
height: 50
|
|
}
|
|
}
|
|
},
|
|
{
|
|
id: '',
|
|
shape: 'dot',
|
|
color: 'black',
|
|
size: 5,
|
|
isResizer: true,
|
|
resizingSegment: 'container',
|
|
parent: 'parent',
|
|
level: 1,
|
|
}
|
|
], edges: []
|
|
}
|
|
}
|
|
]
|
|
}, {
|
|
groupName: 'Edges',
|
|
items: [
|
|
{
|
|
label: 'Normal-Line',
|
|
keywords: 'edge,dash,dashes',
|
|
template: {
|
|
type: 'element',
|
|
edges: [
|
|
{
|
|
to: 'replaced',
|
|
from: 'replaced',
|
|
dashes: false,
|
|
}
|
|
],
|
|
nodes: []
|
|
}
|
|
},
|
|
{
|
|
label: 'Dashed-Line',
|
|
keywords: 'edge,dash,dashes',
|
|
template: {
|
|
type: 'element',
|
|
edges: [
|
|
{
|
|
to: 'replaced',
|
|
from: 'replaced',
|
|
dashes: true,
|
|
}
|
|
],
|
|
nodes: []
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
|
|
return ret;
|
|
} |