UNPKG

@ng-flexy/form

Version:

Flexy components and tools to build Angular 8+ applications

23 lines 3.13 kB
import { FormArray, FormControl, FormGroup } from '@angular/forms'; export function isRequired(control) { if (!control) { return null; } let required = false; const formControl = new FormControl(); if (control.validator) { const validationResult = control.validator(formControl); required = validationResult !== null && validationResult.required === true; } return required; } export function markAsDirtyDeep(control) { control.markAsDirty(); if (control instanceof FormGroup) { Object.keys(control.controls).forEach(key => markAsDirtyDeep(control.controls[key])); } else if (control instanceof FormArray) { control.controls.forEach(child => markAsDirtyDeep(child)); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mb3JtL3NyYy9saWIvdWx0aWxzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRixNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQXdCO0lBQ2pELElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDWixPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3JCLE1BQU0sV0FBVyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFDdEMsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3JCLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RCxRQUFRLEdBQUcsZ0JBQWdCLEtBQUssSUFBSSxJQUFJLGdCQUFnQixDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7S0FDNUU7SUFDRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxPQUF3QjtJQUN0RCxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEIsSUFBSSxPQUFPLFlBQVksU0FBUyxFQUFFO1FBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN0RjtTQUFNLElBQUksT0FBTyxZQUFZLFNBQVMsRUFBRTtRQUN2QyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQzNEO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXF1aXJlZChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBib29sZWFuIHtcbiAgaWYgKCFjb250cm9sKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbiAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gIGNvbnN0IGZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGlmIChjb250cm9sLnZhbGlkYXRvcikge1xuICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBjb250cm9sLnZhbGlkYXRvcihmb3JtQ29udHJvbCk7XG4gICAgcmVxdWlyZWQgPSB2YWxpZGF0aW9uUmVzdWx0ICE9PSBudWxsICYmIHZhbGlkYXRpb25SZXN1bHQucmVxdWlyZWQgPT09IHRydWU7XG4gIH1cbiAgcmV0dXJuIHJlcXVpcmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWFya0FzRGlydHlEZWVwKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xuICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgT2JqZWN0LmtleXMoY29udHJvbC5jb250cm9scykuZm9yRWFjaChrZXkgPT4gbWFya0FzRGlydHlEZWVwKGNvbnRyb2wuY29udHJvbHNba2V5XSkpO1xuICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICBjb250cm9sLmNvbnRyb2xzLmZvckVhY2goY2hpbGQgPT4gbWFya0FzRGlydHlEZWVwKGNoaWxkKSk7XG4gIH1cbn1cbiJdfQ==