UNPKG

ng-fveh

Version:

NG-FVEH - Some helpers to help you with form validation :)

41 lines (40 loc) 3.75 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ /** * @param {?} controls * @return {?} */ function markControlsAsTouched(controls) { Object.keys(controls).forEach(field => { const /** @type {?} */ formGroup = /** @type {?} */ (controls[field]); if (formGroup.controls) { const /** @type {?} */ groupControls = formGroup.controls; markControlsAsTouched(groupControls); } else { formGroup.markAsTouched({ onlySelf: true }); } }); } /** * @param {?} formName * @return {?} */ export function FvehFormIsValid(formName) { return function (target, decoratedPropOrFunctionName, descriptor) { const /** @type {?} */ originalMethod = descriptor.value; descriptor.value = function () { const /** @type {?} */ form = this[formName]; if (form.valid) { originalMethod.apply(this, arguments); } else { markControlsAsTouched(form.controls); } }; return descriptor; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pcy12YWxpZC5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1mdmVoLyIsInNvdXJjZXMiOlsibGliL2RlY29yYXRvcnMvZm9ybS1pcy12YWxpZC5kZWNvcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFFQSwrQkFBK0IsUUFBNEM7SUFDekUsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDcEMsdUJBQU0sU0FBUyxxQkFBRyxRQUFRLENBQUMsS0FBSyxDQUFjLENBQUEsQ0FBQztRQUUvQyxJQUFJLFNBQVMsQ0FBQyxRQUFRLEVBQUU7WUFDdEIsdUJBQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUM7WUFDekMscUJBQXFCLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNMLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUM3QztLQUNGLENBQUMsQ0FBQztDQUNKOzs7OztBQUVELE1BQU0sMEJBQTBCLFFBQWdCO0lBQzlDLE9BQU8sVUFDTCxNQUFXLEVBQ1gsMkJBQW1DLEVBQ25DLFVBQThCO1FBRTlCLHVCQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBRXhDLFVBQVUsQ0FBQyxLQUFLLEdBQUc7WUFDakIsdUJBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ2QsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1NBQ0YsQ0FBQztRQUVGLE9BQU8sVUFBVSxDQUFDO0tBQ25CLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZnVuY3Rpb24gbWFya0NvbnRyb2xzQXNUb3VjaGVkKGNvbnRyb2xzOiB7IFtrZXk6IHN0cmluZ106IEFic3RyYWN0Q29udHJvbCB9KSB7XHJcbiAgT2JqZWN0LmtleXMoY29udHJvbHMpLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgY29uc3QgZm9ybUdyb3VwID0gY29udHJvbHNbZmllbGRdIGFzIEZvcm1Hcm91cDtcclxuXHJcbiAgICBpZiAoZm9ybUdyb3VwLmNvbnRyb2xzKSB7XHJcbiAgICAgIGNvbnN0IGdyb3VwQ29udHJvbHMgPSBmb3JtR3JvdXAuY29udHJvbHM7XHJcbiAgICAgIG1hcmtDb250cm9sc0FzVG91Y2hlZChncm91cENvbnRyb2xzKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGZvcm1Hcm91cC5tYXJrQXNUb3VjaGVkKHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBGdmVoRm9ybUlzVmFsaWQoZm9ybU5hbWU6IHN0cmluZykge1xyXG4gIHJldHVybiBmdW5jdGlvbihcclxuICAgIHRhcmdldDogYW55LFxyXG4gICAgZGVjb3JhdGVkUHJvcE9yRnVuY3Rpb25OYW1lOiBzdHJpbmcsXHJcbiAgICBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IsXHJcbiAgKSB7XHJcbiAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XHJcblxyXG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICBjb25zdCBmb3JtID0gdGhpc1tmb3JtTmFtZV07XHJcbiAgICAgIGlmIChmb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtYXJrQ29udHJvbHNBc1RvdWNoZWQoZm9ybS5jb250cm9scyk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XHJcbiAgfTtcclxufVxyXG4iXX0=