{"version":3,"file":"ng-input-validation.mjs","sources":["../../../projects/ng-input-validation/src/lib/ng-input-validation.ts","../../../projects/ng-input-validation/src/lib/validations.ts","../../../projects/ng-input-validation/src/public-api.ts","../../../projects/ng-input-validation/src/ng-input-validation.ts"],"sourcesContent":["import {Component, input} from '@angular/core';\r\nimport {AbstractControl} from '@angular/forms';\r\n\r\n@Component({\r\n    selector: 'ng-input-validation',\r\n    imports: [],\r\n    standalone: true,\r\n    template: `\r\n        @if (control() && control()!.invalid && (control()!.dirty || control()!.touched)) {\r\n            @if (control()!.errors; as error) {\r\n                <div class=\"text-error-validation\">\r\n                    <i class=\"error-icon\"></i>\r\n                    @if (error['required']) {\r\n                        <span>{{ errorMessages()?.required || 'Ce champ est requis' }}</span>\r\n                    }\r\n                    @if (error['email']) {\r\n                        <span>{{ errorMessages()?.email || 'Adresse email invalide' }}</span>\r\n                    }\r\n                    @if (error['minlength']) {\r\n                        <span>{{ errorMessages()?.minlength || (error['minlength']?.requiredLength + ' caractères minimum') }}</span>\r\n                    }\r\n                    @if (error['maxlength']) {\r\n                        <span>{{ errorMessages()?.maxlength || (error['maxlength']?.requiredLength + ' caractères maximum') }}</span>\r\n                    }\r\n                    @if (error['min']) {\r\n                        <span>{{ errorMessages()?.min || ('La valeur minimale autorisée est ' + error['min']?.min) }}</span>\r\n                    }\r\n                    @if (error['max']) {\r\n                        <span>{{ errorMessages()?.max || ('La valeur maximale autorisée est ' + error['max']?.max) }}</span>\r\n                    }\r\n                    @if (error['telephone']) {\r\n                        <span>{{ errorMessages()?.telephone || 'Le numéro de téléphone est invalide. Il doit commencer par 077, 066, 065, 074, 062, ou 011.' }}</span>\r\n                    }\r\n                    @if (error['pattern']) {\r\n                        <span>{{ errorMessages()?.pattern || 'Le format du champ est invalide.' }}</span>\r\n                    }\r\n                </div>\r\n            }\r\n        }\r\n\r\n        @if (backendError() && formField() && Array.isArray(backendError()[formField()])) {\r\n            <div class=\"text-error-validation\">\r\n                @for (error of backendError()[formField()]; track error) {\r\n                    <i class=\"error-icon\"></i>\r\n                    <span>{{ error }}</span>\r\n                }\r\n            </div>\r\n        }\r\n    `,\r\n    styleUrl: './ng-input-validation.css'\r\n})\r\nexport class NgInputValidationComponent {\r\n    control = input.required<AbstractControl | any>();\r\n    backendError = input<any[]>([])\r\n    errorMessages = input<any>()\r\n    formField = input<string | any>('');\r\n    protected readonly Array = Array;\r\n}\r\n","import {AbstractControl, ValidationErrors, ValidatorFn} from '@angular/forms';\r\n\r\n\r\n/**\r\n * Validateur pour le téléphone\r\n * Format attendu: 077 XX XX XX\r\n * Préfixes acceptés: 077, 066, 065, 074, 062, 011\r\n */\r\nexport function telephoneValidator(): ValidatorFn {\r\n    return (control: AbstractControl): ValidationErrors | null => {\r\n        if (!control.value) {\r\n            return null;\r\n        }\r\n        const cleanValue = control.value.replace(/\\s/g, '');\r\n        const telephonePattern = /^(077|066|065|074|062|011)\\d{7}$/;\r\n        if (!telephonePattern.test(cleanValue)) {\r\n            return {telephone: true};\r\n        }\r\n        return null;\r\n    };\r\n}\r\n","/*\r\n * Public API Surface of ng-input-validation\r\n */\r\n\r\n\r\nexport * from './lib/ng-input-validation';\r\nexport * from './lib/validations';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAmDa,0BAA0B,CAAA;AACnC,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,kDAAyB;AACjD,IAAA,YAAY,GAAG,KAAK,CAAQ,EAAE,wDAAC;IAC/B,aAAa,GAAG,KAAK,CAAA,IAAA,SAAA,GAAA,CAAA,SAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAO;AAC5B,IAAA,SAAS,GAAG,KAAK,CAAe,EAAE,qDAAC;IAChB,KAAK,GAAG,KAAK;uGALvB,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA1B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EA5CzB,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,4kCAAA,CAAA,EAAA,CAAA;;2FAGQ,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAhDtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,OAAA,EACtB,EAAE,EAAA,UAAA,EACC,IAAI,EAAA,QAAA,EACN,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCT,IAAA,CAAA,EAAA,MAAA,EAAA,CAAA,4kCAAA,CAAA,EAAA;;;AC7CL;;;;AAIG;SACa,kBAAkB,GAAA;IAC9B,OAAO,CAAC,OAAwB,KAA6B;AACzD,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAChB,YAAA,OAAO,IAAI;QACf;AACA,QAAA,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,gBAAgB,GAAG,kCAAkC;QAC3D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACpC,YAAA,OAAO,EAAC,SAAS,EAAE,IAAI,EAAC;QAC5B;AACA,QAAA,OAAO,IAAI;AACf,IAAA,CAAC;AACL;;ACpBA;;AAEG;;ACFH;;AAEG;;;;"}