This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
quay/static/js/directives/ui/linear-workflow/linear-workflow-section.component.ts
2017-02-28 16:51:44 -05:00

40 lines
1.1 KiB
TypeScript

import { Component, Output, Input } from 'angular-ts-decorators';
import { LinearWorkflowComponent } from './linear-workflow.component';
/**
* A component which displays a single section in a linear workflow.
*/
@Component({
selector: 'linearWorkflowSection',
templateUrl: '/static/js/directives/ui/linear-workflow/linear-workflow-section.component.html',
transclude: true,
require: {
parent: '^^linearWorkflow'
}
})
export class LinearWorkflowSectionComponent implements ng.IComponentController {
@Input('@') public sectionId: string;
@Input('@') public sectionTitle: string;
@Input() public sectionValid: boolean = false;
public sectionVisible: boolean = false;
public isCurrentSection: boolean = false;
public parent: LinearWorkflowComponent;
public $onInit(): void {
this.parent.addSection(this);
}
public $onChanges(changes: ng.IOnChangesObject): void {
if (changes['sectionValid'] !== undefined && !changes['sectionValid'].currentValue) {
this.parent.onSectionInvalid(this.sectionId);
}
}
public onSubmitSection(): void {
if (this.sectionValid) {
this.parent.onNextSection();
}
}
}