import {Component} from '@angular/core'; import {NavigationComponent} from '@vendasta/fec-nav'; import {DomSanitizer, SafeHtml} from '@angular/platform-browser'; import { FormArray, FormBuilder, FormControl, Validators } from '@angular/forms'; import {ErrorMessagesMap} from '@vendasta/forms'; import {arrayTruthyItemRequired} from '../../../../src/forms/validators/arrays'; @Component({ template: `
`, styles: [require('../../../assets/doc.scss')] }) export class FormsInputRepeatedDocComponent { readMe: SafeHtml; public controlArray1: FormArray; public controlArray2: FormArray; public controlArray3: FormArray; public customErrorMessage: ErrorMessagesMap = { 'email': 'Must be a valid email address', 'required': 'Its required!!!!', 'maxlength': (err: any) => { return `Hey, thats way more than ${err.requiredLength}`; } }; constructor(private nav: NavigationComponent, public sanitizer: DomSanitizer, private fb: FormBuilder) { nav.activeMenuId = 'forms-input-repeated-doc'; this.controlArray1 = this.fb.array([this.fb.control('')], arrayTruthyItemRequired()); this.controlArray2 = this.fb.array([this.emailControlFactory()], Validators.compose([Validators.maxLength(3), arrayTruthyItemRequired()])); this.controlArray3 = this.fb.array([[{value: 'Value Here', disabled: true}], [{value: 'Value There', disabled: true}]]); this.readMe = this.sanitizer.bypassSecurityTrustHtml(require('./README.html')); } emailControlFactory(): FormControl { return this.fb.control('', [Validators.email, Validators.required]); } }