diff --git a/frontend/modules/logistique/components/WeighingBlock.vue b/frontend/modules/logistique/components/WeighingBlock.vue index 95927f6..890cb95 100644 --- a/frontend/modules/logistique/components/WeighingBlock.vue +++ b/frontend/modules/logistique/components/WeighingBlock.vue @@ -67,12 +67,14 @@ :error="errors.dsd" /> - c.toUpperCase() } }, } +// Masque « Tout format » (RG-5.01) : plaques anciennes / étrangères / engins. On +// autorise lettres, chiffres, espace et tiret, en MAJUSCULES, longueur libre — +// mais on filtre tout le reste (accents, ponctuation, symboles : « &é"'(_ç… »). +// Pattern maska charset du projet (cf. shared/utils/textSanitize) : `preProcess` +// retire d'abord les caractères hors charset (le token `multiple` glouton +// s'arrêterait sinon au 1er invalide), puis le token laisse passer le reste. +const FREE_PLATE_MASK = { + mask: 'P', + tokens: { P: { pattern: /[A-Z0-9 -]/, multiple: true } }, + preProcess: (value: string) => value.toUpperCase().replace(/[^A-Z0-9 -]/g, ''), +} + // Masque « chiffres uniquement » (maska, longueur libre) pour Poids et DSD : // ces champs texte sont verrouillés sur des entiers, et de toute façon désactivés // (remplis par la pesée).