UNPKG

@wavequery/conductor

Version:
37 lines 1.23 kB
export class NodeComponent { constructor(options = {}) { this.options = { radius: 20, fill: '#fff', stroke: '#333', strokeWidth: 2, labelOffset: 30, ...options }; } render(context, node) { // Draw circle context.beginPath(); context.arc(node.position.x, node.position.y, this.options.radius, 0, Math.PI * 2); context.fillStyle = this.getNodeColor(node.status); context.fill(); context.strokeStyle = this.options.stroke; context.lineWidth = this.options.strokeWidth; context.stroke(); // Draw label context.fillStyle = this.options.stroke; context.font = '12px Arial'; context.textAlign = 'center'; context.fillText(node.label, node.position.x, node.position.y + this.options.labelOffset); } getNodeColor(status) { switch (status) { case 'running': return '#3498db'; case 'completed': return '#2ecc71'; case 'error': return '#e74c3c'; case 'pending': return '#95a5a6'; default: return this.options.fill; } } } //# sourceMappingURL=node.js.map