import {Injectable} from "@angular/core"; import {Step} from "./step"; @Injectable() export class InputComponentManagerService { private components:Step[] = []; public constructor() { } public register(component:Step):void { this.components.push(component); } public getAllComponents():Step[] { return this.components; } public getNext(component:Step):Step { let index:number = component.index; if (index == this.components.length - 1) { this.addComponent(); } return this.components[index + 1]; } public getFirst():Step { if (this.components.length == 0) { this.addComponent(); } return this.components[0]; } private addComponent():void { this.register(new Step(this.components.length)); } }