Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 207x 207x 207x 207x 80x 80x 80x 80x 80x 80x 40x 40x 120x | /*
* Copyright 2020 Harness Inc. All rights reserved.
* Use of this source code is governed by the PolyForm Shield 1.0.0 license
* that can be found in the licenses directory at the root of this repository, also available at
* https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt.
*/
import { DefaultNodeModel, DefaultNodeModelOptions } from '../DefaultNodeModel'
import { DiagramType, PortName } from '../../Constants'
import { DefaultPortModel } from '../../port/DefaultPortModel'
export interface NodeStartModelOptions extends Omit<DefaultNodeModelOptions, 'name'> {
color?: string
isStart?: boolean
}
export class NodeStartModel extends DefaultNodeModel {
color: string
isStart: boolean
constructor(options: NodeStartModelOptions = {}) {
const { isStart = true, color } = options
super({
...options,
type: DiagramType.StartNode,
icon: isStart ? 'play' : 'stop',
name: isStart ? 'Start' : 'Stop'
})
this.isStart = isStart
const defaultColor = isStart ? 'var(--diagram-start-node)' : 'var(--diagram-stop-node)'
this.color = color ? color : defaultColor
if (this.isStart) {
this.addPort(
new DefaultPortModel({
in: false,
name: PortName.Out
})
)
} else {
this.addPort(
new DefaultPortModel({
in: true,
name: PortName.In
})
)
}
}
serialize(): any {
return {
...super.serialize(),
color: this.color
}
}
deserialize(event: any): void {
super.deserialize(event)
this.color = event.data.color
}
}
|