{"version":3,"file":"mosaic-design-infosec-components-validators.mjs","sources":["../../../libs/validators/src/lib/forms/comparison.validator.ts","../../../libs/validators/src/lib/forms/empty-form.validator.ts","../../../libs/validators/src/lib/non-empty-array/non-empty-array.ts","../../../libs/validators/src/lib/truthy-or-array-of-truthy/truthy-or-array-of-truthy.ts","../../../libs/validators/mosaic-design-infosec-components-validators.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nimport { isString, normalizeString } from '@mosaic-design/infosec-components/utils';\n\nconst defaultComparisonFn = (value1: unknown, value2: unknown): boolean => {\n    if (!value1 && !value2) {\n        return true;\n    }\n\n    if (isString(value1) && isString(value2)) {\n        return normalizeString(value1) === normalizeString(value2);\n    }\n\n    return value1 === value2;\n};\n\nexport const comparisonValidator =\n    (\n        comparisonValue: unknown,\n        comparisonFn: (value1: unknown, value2: unknown) => boolean = defaultComparisonFn\n    ): ValidatorFn =>\n    (control: AbstractControl): ValidationErrors | null => {\n        const value: unknown = control.value;\n\n        if (!value) {\n            return null;\n        }\n\n        return comparisonFn(value, comparisonValue) ? null : { comparisonError: true };\n    };\n","import { ValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { isFormEmpty } from '@mosaic-design/infosec-components/utils';\n\nexport const emptyFormValidator: ValidatorFn = (form: AbstractControl): ValidationErrors | null =>\n    isFormEmpty(form) ? { empty: true } : null;\n","import { ValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { isArray } from '@mosaic-design/infosec-components/utils';\n\nexport const nonEmptyArrayError = 'nonEmptyArray';\n\nexport const nonEmptyArrayValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\n    if (isArray(control.value) && control.value.length === 0) {\n        return {\n            [nonEmptyArrayError]: true\n        };\n    } else {\n        return null;\n    }\n};\n","import { ValidatorFn, AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { isArray, isTruthy } from '@mosaic-design/infosec-components/utils';\n\nexport const truthyOrArrayOfTruthyError = 'truthyOrArrayOfTruthy';\n\nexport const truthyOrArrayOfTruthyValidator: ValidatorFn = <\n    T extends boolean | string | number | undefined | null | object\n>(\n    control: AbstractControl<T | T[] | null>\n): ValidationErrors | null => {\n    const errors: ValidationErrors = {\n        [truthyOrArrayOfTruthyError]: true\n    };\n\n    if (isArray(control.value)) {\n        return control.value.length > 0 && control.value.every((item) => isTruthy(item)) ? null : errors;\n    } else {\n        return isTruthy(control.value) ? null : errors;\n    }\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAIA,MAAM,mBAAmB,GAAG,CAAC,MAAe,EAAE,MAAe,KAAa;AACtE,IAAA,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE;AACpB,QAAA,OAAO,IAAI,CAAC;KACf;IAED,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;QACtC,OAAO,eAAe,CAAC,MAAM,CAAC,KAAK,eAAe,CAAC,MAAM,CAAC,CAAC;KAC9D;IAED,OAAO,MAAM,KAAK,MAAM,CAAC;AAC7B,CAAC,CAAC;AAEK,MAAM,mBAAmB,GAC5B,CACI,eAAwB,EACxB,YAA8D,GAAA,mBAAmB,KAErF,CAAC,OAAwB,KAA6B;AAClD,IAAA,MAAM,KAAK,GAAY,OAAO,CAAC,KAAK,CAAC;IAErC,IAAI,CAAC,KAAK,EAAE;AACR,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,OAAO,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,GAAG,IAAI,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;AACnF;;ACzBS,MAAA,kBAAkB,GAAgB,CAAC,IAAqB,KACjE,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG;;ACDnC,MAAM,kBAAkB,GAAG,gBAAgB;AAErC,MAAA,sBAAsB,GAAgB,CAAC,OAAwB,KAA6B;AACrG,IAAA,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtD,OAAO;YACH,CAAC,kBAAkB,GAAG,IAAI;SAC7B,CAAC;KACL;SAAM;AACH,QAAA,OAAO,IAAI,CAAC;KACf;AACL;;ACVO,MAAM,0BAA0B,GAAG,wBAAwB;AAErD,MAAA,8BAA8B,GAAgB,CAGvD,OAAwC,KACf;AACzB,IAAA,MAAM,MAAM,GAAqB;QAC7B,CAAC,0BAA0B,GAAG,IAAI;KACrC,CAAC;AAEF,IAAA,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,QAAA,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;KACpG;SAAM;AACH,QAAA,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC;KAClD;AACL;;ACpBA;;AAEG;;;;"}