// vim: set tw=80 ts=2 sw=2 sts=2 : import { Component, OnInit, OnChanges, Input, Output, EventEmitter } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { Operation } from './operation'; @Component({ selector: 'operation-form', exportAs: 'operationForm', template: `

The operation date is required.

The operation label is required.

The operation value is required.

The operation category is required.

` }) export class OperationFormComponent implements OnInit { public form: FormGroup; @Input() operation: Operation; @Output() submitEventEmitter: EventEmitter = new EventEmitter(); //dateMask = [/\d{4}/, '-', /0[1-9]|1[0-2]/, '-', /[0-2]\d|3[0-1]/]; dateMask = ['2', '0', /\d/, /\d/, '-', /[0-1]/, /\d/, '-', /[0-3]/, /\d/]; constructor(private formBuilder: FormBuilder) {} ngOnInit() { this.form = this.formBuilder.group({ operationDate: ['', Validators.required], label: ['', Validators.required], value: ['', Validators.required], category: ['', Validators.required], }); this.form.patchValue({ operationDate: this.operation.operation_date, label: this.operation.label, value: this.operation.value, category: this.operation.category, }); } submit() { if(this.form.valid) { this.submitEventEmitter.emit(); } } get operationDate() { return this.form.get('operationDate'); } get label() { return this.form.get('label'); } get value() { return this.form.get('value'); } get category() { return this.form.get('category'); } }