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: `
`
}
]);