{"version":3,"file":"form_validation_controller-C8cwDdw7.js","names":[],"sources":["../../../app/javascript/entrypoints/controllers/form_validation_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\n\nexport default class extends Controller {\n static targets = [\"field\", \"error\"]\n\n connect() {\n this.setupValidation()\n }\n\n setupValidation() {\n const form = this.element\n\n form.addEventListener('submit', (event) => {\n let isValid = true\n\n this.fieldTargets.forEach((field) => {\n if (field.required && !field.value) {\n event.preventDefault()\n isValid = false\n field.classList.add('border-red-500')\n\n // Avec Simple Form, trouver le champ d'erreur associƩ\n const formGroup = field.closest('.form-group')\n if (formGroup) {\n const errorSpan = formGroup.querySelector('.invalid-feedback')\n if (errorSpan) errorSpan.classList.remove('hidden')\n }\n } else if (field.type === 'email' && field.value && !this.validateEmail(field.value)) {\n event.preventDefault()\n isValid = false\n field.classList.add('border-red-500')\n\n const formGroup = field.closest('.form-group')\n if (formGroup) {\n const errorSpan = formGroup.querySelector('.invalid-feedback')\n if (errorSpan) errorSpan.classList.remove('hidden')\n }\n } else {\n field.classList.remove('border-red-500')\n\n const formGroup = field.closest('.form-group')\n if (formGroup) {\n const errorSpan = formGroup.querySelector('.invalid-feedback')\n if (errorSpan) errorSpan.classList.add('hidden')\n }\n }\n })\n\n return isValid\n })\n }\n\n validateEmail(email) {\n const re = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n return re.test(email)\n }\n}\n"],"mappings":"4GAEA,EAAA,cAA6B,CAAW,CACpC,OAAO,QAAU,CAAC,QAAS,QAAQ,CAEnC,SAAU,CACN,KAAK,iBAAiB,CAG1B,iBAAkB,CACD,KAAK,QAEb,iBAAiB,SAAW,GAAU,CACvC,IAAI,EAAU,GAmCd,OAjCA,KAAK,aAAa,QAAS,GAAU,CACjC,GAAI,EAAM,UAAY,CAAC,EAAM,MAAO,CAChC,EAAM,gBAAgB,CACtB,EAAU,GACV,EAAM,UAAU,IAAI,iBAAiB,CAGrC,IAAM,EAAY,EAAM,QAAQ,cAAc,CAC9C,GAAI,EAAW,CACX,IAAM,EAAY,EAAU,cAAc,oBAAoB,CAC1D,GAAW,EAAU,UAAU,OAAO,SAAS,UAEhD,EAAM,OAAS,SAAW,EAAM,OAAS,CAAC,KAAK,cAAc,EAAM,MAAM,CAAE,CAClF,EAAM,gBAAgB,CACtB,EAAU,GACV,EAAM,UAAU,IAAI,iBAAiB,CAErC,IAAM,EAAY,EAAM,QAAQ,cAAc,CAC9C,GAAI,EAAW,CACX,IAAM,EAAY,EAAU,cAAc,oBAAoB,CAC1D,GAAW,EAAU,UAAU,OAAO,SAAS,MAEpD,CACH,EAAM,UAAU,OAAO,iBAAiB,CAExC,IAAM,EAAY,EAAM,QAAQ,cAAc,CAC9C,GAAI,EAAW,CACX,IAAM,EAAY,EAAU,cAAc,oBAAoB,CAC1D,GAAW,EAAU,UAAU,IAAI,SAAS,IAG1D,CAEK,GACT,CAGN,cAAc,EAAO,CAEjB,MADW,6BACD,KAAK,EAAM"}