ngx-mat-dynamic-form-builder
Version:
Build dynamic forms in Angular Material using Reactive forms.
43 lines • 4.19 kB
JavaScript
import { Validators } from '@angular/forms';
// @dynamic
export class FormValidators {
static get(validatorString) {
const validator = this.validators.find(v => v.name === validatorString);
return validator ? validator.validators : [];
}
}
FormValidators.validators = [
{
name: 'required',
validators: [
Validators.required
]
},
{
name: 'integer',
validators: [
Validators.pattern(/^[0-9]*$/)
]
},
{
name: 'positiveInteger',
validators: [
Validators.min(0),
Validators.pattern(/^[0-9]*$/)
]
},
{
name: 'positiveNumber',
validators: [
Validators.min(0),
Validators.pattern(/^[0-9]*$/)
]
},
{
name: 'string',
validators: [
Validators.pattern(/^[A-Za-z]+$/)
]
}
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXQtZHluYW1pYy1mb3JtLWJ1aWxkZXIvc3JjL2xpYi9jb21wb25lbnRzL2hlbHBlci1jbGFzc2VzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxnQkFBZ0IsQ0FBQztBQU1wRSxXQUFXO0FBQ1gsTUFBTSxPQUFPLGNBQWM7SUFxQ3ZCLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBdUI7UUFDOUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakQsQ0FBQzs7QUF0Q2MseUJBQVUsR0FBRztJQUN4QjtRQUNJLElBQUksRUFBRSxVQUFVO1FBQ2hCLFVBQVUsRUFBRTtZQUNSLFVBQVUsQ0FBQyxRQUFRO1NBQ3RCO0tBQ0o7SUFDRDtRQUNJLElBQUksRUFBRSxTQUFTO1FBQ2YsVUFBVSxFQUFFO1lBQ1IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUM7U0FDakM7S0FDSjtJQUNEO1FBQ0ksSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixVQUFVLEVBQUU7WUFDUixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNqQixVQUFVLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztTQUNqQztLQUNKO0lBQ0Q7UUFDSSxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLFVBQVUsRUFBRTtZQUNSLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLFVBQVUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ2pDO0tBQ0o7SUFDRDtRQUNJLElBQUksRUFBRSxRQUFRO1FBQ2QsVUFBVSxFQUFFO1lBQ1IsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7U0FDcEM7S0FDSjtDQUNKLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWYWxpZHMge1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG4gICAgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXVxyXG59XHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdG9ycyB7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgdmFsaWRhdG9ycyA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdyZXF1aXJlZCcsXHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWRcclxuICAgICAgICAgICAgXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBuYW1lOiAnaW50ZWdlcicsXHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTldKiQvKVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdwb3NpdGl2ZUludGVnZXInLFxyXG4gICAgICAgICAgICB2YWxpZGF0b3JzOiBbXHJcbiAgICAgICAgICAgICAgICBWYWxpZGF0b3JzLm1pbigwKSxcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTldKiQvKVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdwb3NpdGl2ZU51bWJlcicsXHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMubWluKDApLFxyXG4gICAgICAgICAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKC9eWzAtOV0qJC8pXHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbmFtZTogJ3N0cmluZycsXHJcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IFtcclxuICAgICAgICAgICAgICAgIFZhbGlkYXRvcnMucGF0dGVybigvXltBLVphLXpdKyQvKVxyXG4gICAgICAgICAgICBdXHJcbiAgICAgICAgfVxyXG4gICAgXVxyXG5cclxuICAgIHN0YXRpYyBnZXQodmFsaWRhdG9yU3RyaW5nOiBzdHJpbmcpOiBWYWxpZGF0b3JGbltdIHtcclxuICAgICAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLnZhbGlkYXRvcnMuZmluZCh2ID0+IHYubmFtZSA9PT0gdmFsaWRhdG9yU3RyaW5nKTtcclxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yID8gdmFsaWRhdG9yLnZhbGlkYXRvcnMgOiBbXTtcclxuICAgIH1cclxuXHJcbn0iXX0=