import { experimentOn } from '@islavi/ng2-component-lab'; import { RegexPatterns } from '../../src/angular/common/enums'; import { DropDownOptionType, IDropDownOption } from './../../src/angular/form-elements/dropdown/dropdown-models'; const options1: IDropDownOption[] = [ { label: 'First Option', value: 'First Option', }, { label: 'Second Option', value: 'Second Option', }, { label: 'Third Option', value: 'Third Option', type: DropDownOptionType.Simple } ]; export default experimentOn('Validation') .group("Validation", [ { id: 'validation1', showSource: true, title: 'Simple validation', description: 'Simple validation (validating that email is valid and that user inserted something in the field). \ By default the validation starts after first key press', context: { emailPattern: RegexPatterns.email }, template: ` ` }, { id: 'validation2', showSource: true, title: 'Simple validation', description: 'Simple validation', context: { numbersPattern: RegexPatterns.numbers, isValueHundred: (value: any) => { return (Number(value) === 100) ? true : false; } }, template: ` ` }, { id: 'validation3', showSource: true, title: 'Disabled validation', description: 'Disabled validation', context: { emailPattern: RegexPatterns.email }, template: ` ` }, { id: 'validation4', showSource: true, title: 'Validation with value already entered', description: 'Validation with value already entered', context: { emailPattern: RegexPatterns.email }, template: ` ` }, { id: 'validation5', showSource: true, title: 'Validation with validity changed callback', description: 'Simple validation with alert when validity changes', context: { numbersPattern: RegexPatterns.numbers, validityChanged: (newState: boolean) => { alert("Validity has changed to " + newState); } }, template: ` ` }, { id: 'dropdownWithValidation', showSource: true, context: { options: options1, isThirdOption: (value: any) => { return value === 'Third Option'; } }, title: 'DropDown with validation', description: 'DropDown with validation', template: ` ` }, { id: 'validationGroup', showSource: true, context: { options: options1, emailPattern: RegexPatterns.email, isThirdOption: (value: any) => { return value === 'Third Option'; }, validateGroup: (validationGroup) => { validationGroup.validate(); } }, title: 'Validation group', description: 'Validation group (activating validation from code)', template: ` ` } ]);