import { Component, Input, Inject, Host, OnChanges, OnInit, SimpleChanges } from 'ng-metadata/core'; import { LinearWorkflowComponent } from './linear-workflow.component'; /** * A component which displays a single section in a linear workflow. */ @Component({ selector: 'linear-workflow-section', templateUrl: '/static/js/directives/ui/linear-workflow/linear-workflow-section.component.html', legacy: { transclude: true } }) export class LinearWorkflowSectionComponent implements OnChanges, OnInit { @Input('@') public sectionId: string; @Input('@') public sectionTitle: string; @Input() public sectionValid: boolean = false; public sectionVisible: boolean = false; public isCurrentSection: boolean = false; constructor(@Host() @Inject(LinearWorkflowComponent) private parent: LinearWorkflowComponent) { } public ngOnInit(): void { this.parent.addSection(this); } public ngOnChanges(changes: SimpleChanges): void { if (changes['sectionValid'] !== undefined && !changes['sectionValid'].currentValue) { this.parent.onSectionInvalid(this.sectionId); } } public onSubmitSection(): void { if (this.sectionValid) { this.parent.onNextSection(); } } }