{"version":3,"file":"linch90-od-validators.mjs","sources":["../../../projects/od-validators/src/lib/atLeastOne.validator.ts","../../../projects/od-validators/src/lib/atLeastOneConditionally.validator.ts","../../../projects/od-validators/src/lib/requiredConditionally.validator.ts","../../../projects/od-validators/src/lib/conditionalValidator.ts","../../../projects/od-validators/src/public-api.ts","../../../projects/od-validators/src/linch90-od-validators.ts"],"sourcesContent":["import { FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport const atLeastOne =\n  (\n    validator: ValidatorFn,\n    controls: string[] | null = null,\n    index: number = 1\n  ) =>\n  (group: FormGroup): ValidationErrors | null => {\n    if (!controls) {\n      controls = Object.keys(group.controls);\n    }\n\n    const hasAtLeastOne =\n      group &&\n      group.controls &&\n      controls.some((k) => !validator(group.controls[k]));\n\n    if (!hasAtLeastOne) {\n      controls.forEach((k) => {\n        const control = group.controls[k];\n        control.setErrors({\n          atLeastOne: {\n            index: index,\n          },\n        });\n      });\n    }\n\n    return hasAtLeastOne\n      ? null\n      : {\n          atLeastOne: true,\n        };\n  };\n","import { FormGroup, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nexport const atLeastOneConditionally =\n  (\n    validator: ValidatorFn,\n    dependedControl: string,\n    dependedValue: any,\n    controls: string[] | null = null,\n    index: number = 1\n  ) =>\n  (group: FormGroup): ValidationErrors | null => {\n    if (!controls) {\n      controls = Object.keys(group.controls);\n    }\n\n    const value = group.get(dependedControl)?.value;\n    if (value !== dependedValue) {\n      return null;\n    }\n\n    const hasAtLeastOne =\n      group &&\n      group.controls &&\n      controls.some((k) => !validator(group.controls[k]));\n\n    if (!hasAtLeastOne) {\n      controls.forEach((k) => {\n        const control = group.controls[k];\n        control.setErrors({\n          atLeastOne: {\n            index: index,\n          },\n        });\n      });\n    }\n\n    return hasAtLeastOne\n      ? null\n      : {\n          atLeastOne: true,\n        };\n  };\n","import { FormGroup, ValidationErrors, Validators } from '@angular/forms';\n\nexport const requiredConditionally =\n  (\n    dependedControl: string,\n    dependedValue: any,\n    controls: string[] | null = null\n  ) =>\n  (group: FormGroup): ValidationErrors | null => {\n    if (!controls) {\n      controls = Object.keys(group.controls);\n    }\n\n    const value = group.get(dependedControl)?.value;\n    if (value !== dependedValue) {\n      return null;\n    }\n\n    const required =\n      group &&\n      group.controls &&\n      controls.every((k) => !Validators.required(group.controls[k]));\n\n    if (!required) {\n      controls.forEach((k) => {\n        const control = group.controls[k];\n        control.setErrors({ required: true });\n      });\n    }\n\n    return required\n      ? null\n      : {\n          required: true,\n        };\n  };\n\nexport const requiredConditionally2 =\n  (dependedControl: string, dependedValue: any) =>\n  (\n    dependedControl2: string,\n    dependedValue2: any,\n    controls: string[] | null = null\n  ) =>\n  (group: FormGroup): ValidationErrors | null => {\n    if (!controls) {\n      controls = Object.keys(group.controls);\n    }\n\n    const value = group.get(dependedControl)?.value;\n    if (value !== dependedValue) {\n      return null;\n    }\n\n    const value2 = group.get(dependedControl2)?.value;\n    if (value2 !== dependedValue2) {\n      return null;\n    }\n\n    const required =\n      group &&\n      group.controls &&\n      controls.every((k) => !Validators.required(group.controls[k]));\n\n    if (!required) {\n      controls.forEach((k) => {\n        const control = group.controls[k];\n        control.setErrors({ required: true });\n      });\n    }\n\n    return required\n      ? null\n      : {\n          required: true,\n        };\n  };\n","import { ValidationErrors, ValidatorFn, FormControl } from '@angular/forms';\n\nexport const conditionalValidator =\n  (predicate: () => boolean, validator: ValidatorFn) =>\n  (control: FormControl): ValidationErrors | null => {\n    if (!control.parent) return null;\n    if (!predicate()) return null;\n    return validator(control);\n  };\n","/*\n * Public API Surface of od-validators\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}